diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..d9a042c6ca --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# Ignore all compiled files +*.pyc +*.o +*.mod + +# Ignore exec folder +exec/ + +# Ignore sorc folders from externals +sorc/logs/ +sorc/fv3gfs.fd/ +sorc/gfs_post.fd/ +sorc/gsi.fd/ +sorc/ufs_utils.fd/ +sorc/gfs_wafs.fd/ +sorc/verif-global.fd/ diff --git a/Externals.cfg b/Externals.cfg new file mode 100644 index 0000000000..5a756aa7b8 --- /dev/null +++ b/Externals.cfg @@ -0,0 +1,53 @@ +# External sub-modules of global-workflow + +[FV3GFS] +tag = GFS.v16.0.15 +local_path = sorc/fv3gfs.fd +repo_url = https://github.com/ufs-community/ufs-weather-model.git +protocol = git +required = True + +[GSI] +tag = gfsda.v16.0.0 +local_path = sorc/gsi.fd +repo_url = https://github.com/NOAA-EMC/GSI.git +protocol = git +required = True + +[GLDAS] +tag = gldas_gfsv16_release.v1.12.0 +local_path = sorc/gldas.fd +repo_url = https://github.com/NOAA-EMC/GLDAS.git +protocol = git +required = True + +[EMC_post] +tag = upp_gfsv16_release.v1.1.3 +local_path = sorc/gfs_post.fd +repo_url = https://github.com/NOAA-EMC/EMC_post.git +protocol = git +required = True + +[UFS_UTILS] +tag = ops-gfsv16.0.0 +local_path = sorc/ufs_utils.fd +repo_url = https://github.com/NOAA-EMC/UFS_UTILS.git +protocol = git +required = True + +[EMC_verif-global] +tag = verif_global_v1.11.0 +local_path = sorc/verif-global.fd +repo_url = https://github.com/NOAA-EMC/EMC_verif-global.git +protocol = git +required = True + +[EMC_gfs_wafs] +tag = gfs_wafs.v6.0.19 +local_path = sorc/gfs_wafs.fd +repo_url = https://github.com/NOAA-EMC/EMC_gfs_wafs.git +protocol = git +required = False + +[externals_description] +schema_version = 1.0.0 diff --git a/README.md b/README.md new file mode 100644 index 0000000000..1d8231e6d1 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# global-workflow +Global Superstructure/Workflow currently supporting the Finite-Volume on a Cubed-Sphere Global Forecast System (FV3GFS) + +The global-workflow depends on the following prerequisities to be available on the system: + +* workload management platform / scheduler - LSF or SLURM +* workflow manager - ROCOTO (https://github.com/christopherwharrop/rocoto) +* modules - NCEPLIBS (various), esmf v8.0.0bs48, hdf5, intel/ips v18, impi v18, wgrib2, netcdf v4.7.0, hpss, gempak (see module files under /modulefiles for additional details) + +The global-workflow current supports the following machines: + +* WCOSS-Dell +* WCOSS-Cray +* Hera + +## Build global-workflow: + +### 1. Check out components + +While in /sorc folder: +``` +$ sh checkout.sh +``` + +### 2. Build components + +While in /sorc folder: +``` +$ sh build_all.sh +``` + +### 3. Link components + +While in /sorc folder: +``` +$ sh link_fv3gfs.sh emc $MACHINE +``` + +...where $MACHINE is "dell", "cray", or "hera". diff --git a/docs/Release_Notes.gfs.v16.0.0.md b/docs/Release_Notes.gfs.v16.0.0.md new file mode 100644 index 0000000000..19ce4e5600 --- /dev/null +++ b/docs/Release_Notes.gfs.v16.0.0.md @@ -0,0 +1,413 @@ +GFS RELEASE NOTES (GFS.v16.0.0) -- October 9, 2020 + +------- +PRELUDE +------- + +* GFS version 16.0 is the first major upgrade to Finite Volume Cubed Sphere (FV3) dynamical core based GFS which replaced the spectral dynamical core in June 2019. In this upgrade, the number of model vertical layers is increased from 64 to 127 and the model top is extended from the upper stratosphere (~55 km height) to the mesopause (~80 km height). With this upgrade, for the first time, the operational stand alone global deterministic WAVEWATCH III based wave model Multi_1 (wave_multi_1.v3.3) is merged into the GFS system. The WAVEWATCH III model is updated and coupled to the GFS using a one-way coupling scheme where the atmospheric model provides forcing to the wave model using the NOAA Environmental Modeling System (NEMS). Major changes have also been made in other components of the forecast system including model physics, data assimilation, system infrastructure, post-processing and product generation. + +EMC has conducted a set of retrospective and real-time experiments, covering part of the 2018 hurricane season and the entire period from May 10, 2019 to the present, for a comprehensive evaluation of the model upgrades. GFSv16 showed improved forecast skills in many areas. For more details please refer to the Science Change Notice: https://docs.google.com/document/d/1pDLqP6ne2grEJ2vMfw7RnkwyzRsGpGPMb1d2DeDuu2E/edit. + +* GFS.v16 has been reorganized to use a COMPONENT directory structure to separate the atmos and wave components. + +* This release note describes the overall changes made to the entire system. More details about changes in science and structure of the data assimilation system are documented in gfs.v16.0.0/sorc/gsi.fd/doc/Release_Notes.gfsda.v16.0.0.txt. Details about downstream product generation is documented in Release_Notes.gfs_downstream.v16.0.0.txt. + +--------------------------- +IMPLEMENTATION INSTRUCTIONS +--------------------------- + +* The NOAA VLab and both the NOAA-EMC and NCAR organization spaces on GitHub.com are used to manage the GFS.v16 code. The SPA(s) handling the GFS.v16 implementation need to have permissions to clone VLab gerrit repositories and the private NCAR UPP_GTG repository. All NOAA-EMC organization repositories are publicly readable and do not require access permissions. Please contact Fanglin.Yang@noaa.gov if there is any VLAB access issue and/or the individual code managers listed under item #6) below. Please follow the following steps to install the package on WCOSS-Dell: + + 1) cd $NWROOTp3 + 2) mkdir gfs.v16.0.0 + 3) cd gfs.v16.0.0 + 4) git clone -b EMC-v16.0.0 https://github.com/NOAA-EMC/global-workflow.git . + 5) cd sorc + 6) ./checkout.sh -o + * This script extracts the following GFS components: + MODEL tag GFS.v16.0.13 Jun.Wang@noaa.gov + GSI tag gfsda.v16.0.0 Russ.Treadon@noaa.gov + GLDAS tag gldas_gfsv16_release.v1.11.0 Helin.Wei@noaa.gov + UFS_UTIL tag ops-gfsv16.0.0 George.Gayno@noaa.gov + POST tag upp_gfsv16_release.v1.1.0 Wen.Meng@noaa.gov + WAFS tag gfs_wafs.v6.0.9 Yali.Mao@noaa.gov + + 7) ./build_all.sh + *This script compiles all GFS components. Runtime output from the build for each package is written to log files in directory logs. To build an individual program, for instance, gsi, use build_gsi.sh. + + 8) ./link_fv3gfs.sh nco dell + + 9) Please use the script /gpfs/dell6/emc/modeling/noscrub/emc.glopara/para_gfs/misc/copyic_v16rt2_nco.sh on Mars to copy initial conditions from EMC real-time parallel v16rt2 to $COM directory to start NCO’s parallel from the dump step of next cycle. Please remember to change the COMROOT setting in this script to /gpfs/dell1/nco/ops/com. It will rsync v16rt2 data from the dev machine to either dev or prod machine. + +Instruction notes: +------------------ + +* The GSI build script ($HOMEgfs/sorc/build_gsi.sh) must be executed prior to $HOMEgfs/sorc/build_enkf_chgres_recenter_nc.sh. This automatically happens when executing $HOMEgfs/sorc/build_all.sh to build all GFS v16 executables. + +* The RTOFS curfile*h variable settings must be updated in scripts/exgfs_wave_prep.sh when the RTOFS implementation occurs. The “_1hrly” and “_3hrly” text will be removed to update the filenames: + + Before RTOFS implementation (current settings): + + curfile1h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fh3_rtofs}_1hrly_prog.nc + curfile3h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fh3_rtofs}_3hrly_prog.nc + + After RTOFS implementation: + + curfile1h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fh3_rtofs}_prog.nc + curfile3h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fh3_rtofs}_prog.nc + +* ecflow suite definition and scripts are saved in gfs.v16.0.0/ecflow/ecf + +* POST contains restricted GTG (Graphic Turbulence Guidance) code provided NCAR. Please do not post the GTG code in any public domain. + +----------- +JOB CHANGES +----------- + +Many job scripts have been added, removed or renamed to meet NCO script naming conventions for GFS.v16. + +Renamed job scripts are: + +* JGDAS_ENKF_RECENTER -> JGDAS_ENKF_ECEN +* JGDAS_GEMPAK -> JGDAS_ATMOS_GEMPAK +* JGDAS_GEMPAK_META -> JGDAS_ATMOS_GEMPAK_META_NCDC +* JGDAS_VMINMON -> JGDAS_ATMOS_VMINMON +* JGDAS_VERFRAD -> JGDAS_ATMOS_VERFRAD +* JGDAS_VERFOZN -> JGDAS_ATMOS_VERFOZN +* JGFS_AWIPS_20KM_1P0DEG -> JGFS_ATMOS_AWIPS_20KM_1P0DEG +* JGFS_AWIPS_G2 -> JGFS_ATMOS_AWIPS_G2 +* JGFS_CYCLONE_GENESIS -> JGFS_ATMOS_CYCLONE_GENESIS +* JGFS_CYCLONE_TRACKER -> JGFS_ATMOS_CYCLONE_TRACKER +* JGFS_FBWIND -> JGFS_ATMOS_FBWIND +* JGFS_GEMPAK -> JGFS_ATMOS_GEMPAK +* JGFS_GEMPAK_META -> JGFS_ATMOS_GEMPAK_META +* JGFS_GEMPAK_NCDC_UPAPGIF -> JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF +* JGFS_GEMPAK_PGRB2_SPEC -> JGFS_ATMOS_GEMPAK_PGRB2_SPEC +* JGFS_PGRB2_SPEC_NPOESS -> JGFS_ATMOS_PGRB2_SPEC_NPOESS +* JGFS_POSTSND -> JGFS_ATMOS_POSTSND +* JGFS_VMINMON -> JGFS_ATMOS_VMINMON +* JGFS_WAFS -> JGFS_ATMOS_WAFS +* JGFS_WAFS_BLENDING -> JGFS_ATMOS_WAFS_BLENDING +* JGFS_WAFS_GCIP -> JGFS_ATMOS_WAFS_GCIP +* JGFS_WAFS_GRIB2 -> JGFS_ATMOS_WAFS_GRIB2 +* JGLOBAL_ANALYSIS -> JGLOBAL_ATMOS_ANALYSIS +* JGLOBAL_EMCSFC_SFC_PREP -> JGLOBAL_ATMOS_EMCSFC_SFC_PREP +* JGLOBAL_ENKF_SELECT_OBS -> JGDAS_ENKF_SELECT_OBS +* JGLOBAL_ENKF_UPDATE -> JGDAS_ENKF_UPDATE +* JGLOBAL_TROPCY_QC_RELOC -> JGLOBAL_ATMOS_TROPCY_QC_RELOC +* JGLOBAL_NCEPPOST -> JGLOBAL_ATMOS_NCEPPOST +* JGLOBAL_POST_MANAGER -> JGLOBAL_ATMOS_POST_MANAGER + +New job scripts are: + +* JGDAS_ATMOS_ANALYSIS_DIAG +* JGDAS_ATMOS_CHGRES_FORENKF +* JGDAS_ATMOS_GLDAS +* JGDAS_ENKF_DIAG +* JGDAS_ENKF_SFC +* JGFS_ATMOS_FSU_GENESIS +* JGFS_ATMOS_WAFS_GRIB2_0P25 +* JGFS_ATMOS_WAFS_BLENDING_0P25 +* JGLOBAL_ATMOS_ANALYSIS_CALC +* JGLOBAL_WAVE_GEMPAK +* JGLOBAL_WAVE_INIT +* JGLOBAL_WAVE_POST_BNDPNT +* JGLOBAL_WAVE_POST_PNT +* JGLOBAL_WAVE_POST_SBS +* JGLOBAL_WAVE_PRDGEN_BULLS +* JGLOBAL_WAVE_PRDGEN_GRIDDED +* JGLOBAL_WAVE_PREP + +Removed job scripts are: + +* JGDAS_BULLS_NAVY +* JGDAS_TROPC +* JGFS_FAX +* JGFS_FAX_WAFS +* JGLOBAL_ENKF_INNOVATE_OBS + +-------------- +SCRIPT CHANGES +-------------- + +Many scripts have been added, removed or renamed to meet NCO script naming conventions for GFS.v16. + +Renamed scripts are: + +* exemcsfc_global_sfc_prep.sh.ecf -> exemcsfc_global_sfc_prep.sh +* exgdas_nawips.sh.ecf -> exgdas_atmos_nawips.sh +* exgdas_nceppost.sh.ecf -> exgdas_atmos_nceppost.sh +* exgdas_vrfminmon.sh.ecf -> exgdas_atmos_vminmon.sh +* exgdas_vrfyrad.sh.ecf -> exgdas_atmos_verfrad.sh +* exgdas_vrfyozn.sh.ecf -> exgdas_atmos_verfozn.sh +* exgempak_gdas_gif_ncdc.sh.ecf -> exgdas_atmos_gempak_gif_ncdc.sh +* exgempak_gfs_gif_ncdc_skew_t.sh.ecf -> exgfs_atmos_gempak_gif_ncdc_skew_t.sh +* exgfs_awips_20km_1p0deg.sh.ecf -> exgfs_atmos_awips_20km_1p0deg.sh +* exgfs_fbwind.sh.ecf -> exgfs_atmos_fbwind.sh +* exgfs_gempak_meta.sh.ecf -> exgfs_atmos_gempak_meta.sh +* exgfs_grib_awips.sh.ecf -> exgfs_atmos_grib_awips.sh +* exgfs_nawips.sh.ecf -> exgfs_atmos_nawips.sh +* exgfs_nceppost.sh.ecf -> exgfs_atmos_nceppost.sh +* exgfs_pmgr.sh.ecf -> exgfs_pmgr.sh +* exgfs_postsnd.sh.ecf -> exgfs_atmos_postsnd.sh +* exgfs_prdgen_manager.sh.ecf -> exgfs_prdgen_manager.sh +* exgfs_vrfminmon.sh.ecf -> exgfs_atmos_vminmon.sh +* exgfs_wafs_blending.sh.ecf -> exgfs_atmos_wafs_blending.sh +* exgfs_wafs_gcip.sh.ecf -> exgfs_atmos_wafs_gcip.sh +* exgfs_wafs_grib.sh.ecf -> exgfs_atmos_wafs_grib.sh +* exgfs_wafs_grib2.sh.ecf -> exgfs_atmos_wafs_grib2.sh +* exglobal_analysis_fv3gfs.sh.ecf -> exglobal_atmos_analysis.sh +* exglobal_enkf_fcst_fv3gfs.sh.ecf -> exgdas_enkf_fcst.sh +* exglobal_enkf_recenter_fv3gfs.sh.ecf -> exgdas_enkf_ecen.sh +* exglobal_enkf_post_fv3gfs.sh.ecf -> exgdas_enkf_post.sh +* exglobal_enkf_update_fv3gfs.sh.ecf -> exgdas_enkf_update.sh +* exglobal_fcst_nemsfv3gfs.sh -> exglobal_forecast.sh +* exglobal_grib2_special_npoess.sh.ecf -> exgfs_atmos_grib2_special_npoess.sh +* exglobal_innovate_obs_fv3gfs.sh.ecf -> exgdas_enkf_select_obs.sh +* exglobal_pmgr.sh.ecf -> exglobal_atmos_pmgr.sh +* exgoes_nawips.sh.ecf -> exgfs_atmos_goes_nawips.sh +* exnawips.sh.ecf -> exgfs_atmos_nawips.sh +* extropcy_qc_reloc.sh.ecf -> exglobal_atmos_tropcy_qc_reloc.sh + +New scripts are: + +* exgdas_atmos_gldas.sh +* exgdas_enkf_sfc.sh +* exgfs_atmos_wafs_grib2_0p25.sh +* exgfs_atmos_wafs_blending_0p25.sh +* exgfs_wave_init.sh +* exgfs_wave_nawips.sh +* exgfs_wave_post_bndpnt.sh +* exgfs_wave_post_gridded_sbs.sh +* exgfs_wave_post_pnt.sh +* exgfs_wave_prdgen_bulls.sh +* exgfs_wave_prdgen_gridded.sh +* exgfs_wave_prep.sh +* exgdas_atmos_chgres_forenkf.sh +* exglobal_atmos_analysis_calc.sh +* exglobal_diag.sh + +Removed scripts are: + +* exgdas_bulls_navy.sh.ecf +* exgdas_tropc.sh.ecf +* exgfs_fax.sh.ecf +* exgfs_fax_wafs.sh.ecf +* exgfs_grib_awips_g2.sh.ecf +* exgfs_grib_wafs.sh.ecf + +------------------- +PARM/CONFIG CHANGES +------------------- + +All JJOBS except for those used by downstream product generation source config files under ./gfs.v16.0.0/parm/config to set up job-specific parameters. The config.base is sourced by all JJOBS to set parameters that are common to either all JJOBS or are shared by more than one JJOBS. The config.anal is shared by a few analysis steps, config.wave is shared by the wave steps, and config.wafs is shared by the WAFS jobs. Below are the parm (config) files modified or added in GFS.v16. + +Modified configs: + +* config.anal +* config.arch +* config.awips +* config.base.emc.dyn +* config.base.nco.static +* config.earc +* config.ecen +* config.efcs +* config.eobs +* config.epos +* config.eupd +* config.fcst +* config.fv3 +* config.fv3ic +* config.gempak +* config.post +* config.postsnd +* config.prep +* config.prepbufr +* config.resources +* config.vrfy + +New configs: + +* config.analcalc +* config.analdiag +* config.echgres +* config.ediag +* config.esfc +* config.gldas +* config.metp +* config.wafs +* config.wafsblending +* config.wafsblending0p25 +* config.wafsgcip +* config.wafsgrib2 +* config.wafsgrib20p25 +* config.wave +* config.waveawipsbulls +* config.waveawipsgridded +* config.wavegempak +* config.waveinit +* config.wavepostbndpnt +* config.wavepostpnt +* config.wavepostsbs +* config.waveprep + +----------- +FIX CHANGES +----------- + +* All fixed fields used by the system are placed under gfs.v16.0.0/fix, and further categorized based on the type of applications. During the NCO implementation process the fix_gsi and wafs fix files are copied from external repositories via sorc/checkout.sh and linked under /fix via sorc/link_fv3gfs.sh. All other fix files are copied from EMC's local archives via sorc/link_fv3gfs.sh: fix_am, fix_fv3_gmted2010, fix_gldas, fix_orog, fix_verif, fix_wave_gfs + +The entire package takes 165 GB disk space to install. This ./fix directory alone takes ~153G. + +New fix files: + +* fix_am - new solar constants, Thompson MP climatology, salinity climatology +* fix_fv3_gmted2010 - new fix_sfc subfolder +* fix_gldas - new folder with files for GLDAS package +* fix_orog - new global lake files +* fix_verif - new grid2obs files +* fix_wave_gfs - new folder with files for wave component + +--------------- +PRODUCT CHANGES +--------------- + +* Please refer to GFSv16 SCN: https://docs.google.com/document/d/1pDLqP6ne2grEJ2vMfw7RnkwyzRsGpGPMb1d2DeDuu2E/edit + +-------------------- +RESOURCE INFORMATION +-------------------- + +* Frequency of run - 6 hourly cycle (00, 06, 12, 18Z) - no change from current operations + +* Commonly used libraries, compiler, and modules are defined in gfs.v16.0.0/modulefiles. For FV3, GSI, GLDAS, UPP, WAFS they maintain their own module files under gfs.v16.0.0/sorc/(fv3gfs gsi gldas gfs_post gfs_wafs).fd/modulefiles + +* Data retention time under $COMROOTp3 for GFS.v16 should be the same as GFS.v15. + +* Disk space: The current operational GFS.v15 takes about 10.7 TB online COM disk space per cycle, while GFS.v16 will require about 8.0 TB per cycle. + +* Computational resources and run times: + + * Please refer to the following document for the details of node usage,threading, and walltimes set in ECFLOW job cards for all jobs: + https://docs.google.com/spreadsheets/d/1XAa5mDWLQJSMgyxhR8W7RRuENJN7koJN-rIHLkTgieo/edit#gid=0 + + * Please refer to the following document for the high watermark test results for the overall computational cost of the system: + https://docs.google.com/presentation/d/1aNi5doryHO_lNhtTq-jGzFh9Wi4Xu1Z5DNb921nhw74/edit#slide=id.ga069802256_0_377 + +* Information about the major steps and actual runtimes from EMC high watermark tests are listed below: + + * JGLOBAL_FORECAST (GFS) + * 484 nodes, 3388 tasks, ptile=7, 4 threads/task + * Runtime: 125 minutes + + * JGLOBAL_FORECAST (GDAS) + * 119 nodes, 833 tasks, ptile=7, 4 threads/task + * Runtime: 22 minutes + + * JGLOBAL_ATMOS_ANALYSIS (GFS) + * 250 nodes, 1000 tasks, ptile=4, 7 threads/task + * Runtime: 29 minutes + + * JGLOBAL_ATMOS_ANALYSIS (GDAS) + * 250 nodes, 1000 tasks, ptile=4, 7 threads/task + * Runtime: 38 minutes + + * JGDAS_ENKF_SELECT_OBS + * 120 nodes, 480 tasks, ptile=4, 7 threads/task + * Runtime: 3.8 minutes + + * JGDAS_ENKF_UPDATE + * 240 nodes, 960 tasks, ptile=4, 7 threads/task + * Runtime: 26 minutes + + * JGDAS_ENKF_ECEN + * 20 nodes, 80 tasks, ptile=4, 7 threads/task + * Runtime: 4.4 minutes per realization + * Concurrently run 3 realizations of JGDAS_ENKF_ECEN. Total node usage for 3 jobs x 20 nodes each = 60 nodes. + + * JGDAS_ENKF_FCST + * 15 nodes, 420 tasks, ptile=28, 1 threads/task + * Runtime: 29 minutes per realization + * Concurrently run 40 realizations of JGDAS_ENKF_FCST. Each job processes 2 EnKF + members. Total node usage for 40 jobs x 15 nodes each = 600 nodes + * 40 EnKF forecast groups for GFS.v16 is an increase from the 20 EnKF forecast groups + currently run in operations. + + * JGDAS_ENKF_POST + * 20 nodes, 80 tasks, ptile=4, 7 threads/task + * Runtime: 11 minutes per realization + * Concurrently run 7 realizations of JGDAS_ENKF_POST. 7 forecasts processed, one + per job. Total node usage for 7 jobs x 20 nodes each = 140 nodes. + +--------------------------------------- +PRE-IMPLEMENTATION TESTING REQUIREMENTS +--------------------------------------- + +* Which production jobs should be tested as part of this implementation? + * All components of this package need to be tested. EMC is running a real-time parallel using the same system. We will work with the SPA to provide initial conditions from this parallel to run the NCO parallel during the implementation process. We will compare results from EMC and NCO parallels to ensure they reproduce each other. + +* Does this change require a 30-day evaluation? + * Yes, the entire GFS.v16 package requires a 30-day evaluation + +* Suggested evaluators + * Please contact fanglin.yang@noaa.gov, russ.treadon@noaa.gov, and kate.friedman@noaa.gov for evaluation. + +------------------------- +DISSEMINATION INFORMATION +------------------------- + +* Where should this output be sent? + * Please refer to GFSv16 SCN. Additionally, we have sent a request to NCO Dataflow to start sending new files WAFS_0p25_blended_YYYYMMDDHHfFF.grib2 to AWC only. + +* Who are the users? + * same as current operations plus multi_1 users + +* Which output files should be transferred from PROD WCOSS to DEV WCOSS? + * Same as current operational gfs, plus wave products. As there are certain changes in product names and types, EMC will provide support for NCO dataflow team to finalize the list.The amount of data to be transferred also depends on NCO’s network bandwidth. + +* Directory changes + + * Add $COMPONENT subfolder to gfs, gdas, and enkf paths for atmospheric component underneath the $cyc folder: + + $COMROOTp3/gfs/prod/gfs.$PDY/$cyc/atmos + $COMROOTp3/gfs/prod/gdas.$PDY/$cyc/atmos + $COMROOTp3/gfs/prod/enkf.gdas.$PDY/$cyc/atmos/memXXX + + * Introduce wave model via $COMPONENT subfolder under gfs and gfs $cyc folders: + + $COMROOTp3/gfs/prod/gfs.$PDY/$cyc/wave + $COMROOTp3/gfs/prod/gdas.$PDY/$cyc/wave + +* File changes + + * The UPP(post) file changes can be referred to: + https://docs.google.com/spreadsheets/d/1I-nqfVO67qE3uHah1p9UNbBPgcStXptEj91MBucSTb4/edit?usp=sharing + +------------ +HPSS ARCHIVE +------------ + +Please refer to the following document for current operational GFS.v15 archives and the proposed archives for GFS.v16: +https://docs.google.com/spreadsheets/d/1KkyXa-ZyWCjKul_kijUM4241VBzAerMifMOShLy0crY/edit#gid=0 + +Please check WCOSS /gpfs/dell1/nco/ops/nwprod/runhistory.v2.3.2/parm/gfs to see a full list of GFS.v15 files archived in HPSS tape. + +------------------------------- +JOB DEPENDENCIES & FLOW DIAGRAM +------------------------------- + +GDAS and GFS flowchart (downstream jobs compressed): +https://docs.google.com/presentation/d/1grydJSn3LxNishdHOxwOQMyxkLsEzlIfj1PHiTUrAkE/edit#slide=id.g6ee6c85d17_0_0 + +=========== +Prepared by +Kate.Friedman@noaa.gov +Fanglin.Yang@noaa.gov +Russ.Treadon@noaa.gov +Jun.Wang@noaa.gov +Helin.Wei@noaa.gov +George.Gayno@noaa.gov +Wen.Meng@noaa.gov +Yali.Mao@noaa.gov +Jessica.Meixner@noaa.gov +=========== diff --git a/docs/Release_Notes.gfs_downstream.v16.0.0.txt b/docs/Release_Notes.gfs_downstream.v16.0.0.txt new file mode 100644 index 0000000000..5ee6238b9d --- /dev/null +++ b/docs/Release_Notes.gfs_downstream.v16.0.0.txt @@ -0,0 +1,114 @@ +RELEASE NOTES: GFS.v16.0.0 downstream products - released March 31, 2020 (tentative date) + +CODE CHANGES + No code change + +AWIPS CHANGES + Removed field "5WAVH" in All parm crads for AWIPS 20km and 1.0 deg (UPP planed to remove in GFS v16.0) + +GEMPAK CHANGES + Removed simulated GOES 12/13 in GEMPAK and PGRB2 + Added simulated GOES 16/17 in GEMPAK and PGRB2 in LAT/LON 0.25 deg + +JOB CHANGES + - Removed JGDAS_BULLS_NAVY - to be retired in GFS V16.0 + - Removed JGDAS_TROPC - Rteired in GFS v15.2.0 + + The remain GFS downstream jobs are following: + - JGDAS_ATMOS_GEMPAK + - JGDAS_ATMOS_GEMPAK_META_NCDC + - JGFS_ATMOS_AWIPS_G2 + - JGFS_ATMOS_FBWIND + - JGFS_ATMOS_GEMPAK + - JGFS_ATMOS_GEMPAK_META + - JGFS_ATMOS_GEMPAK_PGRB2_SPEC + - JGFS_ATMOS_AWIPS_20KM_1P0DEG + - JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF + - JGFS_ATMOS_PGRB2_SPEC_NPOESS + +SCRIPTS CHANGES + The following script have been removed from GFS v16.0.0 + - exgfs_grib_awips_g2.sh.ecf (retired in June 12, 2019) + - exgdas_bulls_navy.sh.ecf (Plan to retire in GFSS v16.0.0) GDAS and NAVY bulletins + - Removed WINTEMV bulltin in script exgfs_atmos_fbwind.sh (WINTEMV bulletin plan to retire in GFS v16.0.0) + +PARM/wmo + - Removed parm in grid 160,161,213,254,225 -----> Retired in GFS v15.2.7 + +-DRIVER + All Job cards have same setting for testing on DELL with real-time GFS v15.2 data. + ( An example: JGFS_ATMOS_GEMPAK ) + # LSBATCH: User input + #BSUB -J gfs_gempak_00 + #BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_00.o%J + #BSUB -q debug + #BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output + #BSUB -W 00:30 + #BSUB -P GFS-DEV + #BSUB -n 24 # 24 tasks + #BSUB -R span[ptile=12] # 12 task per node + #BSUB -R affinity[core(1):distribute=balance] # using 12 cores on node and bind to 1 + # core per task and distribute across sockets + + #################################### + ## Load the GRIB Utilities modules + #################################### + module load EnvVars/1.0.2 + module load ips/18.0.1.163 + module load CFP/2.0.1 + module load impi/18.0.1 + module load lsf/10.1 + module load prod_util/1.1.4 + module load prod_envir/1.0.3 + module load grib_util/1.1.0 + ########################################### + # Now set up GEMPAK/NTRANS environment + ########################################### + module load gempak/7.3.3 + module list + +FV3 GFS DRIVER: + All drivers are used to test GFS downtream jobs in gfs.v16.0.0/driver/product/run_*_dell.sh_xx where is xx is cycle + +The followig jobs, scripts, parm have been modified to meet NCO - EE2 implementation standards. +JOB CHANGES (no changes) + JGDAS_ATMOS_GEMPAK + JGDAS_ATMOS_GEMPAK_META_NCDC + JGFS_ATMOS_AWIPS_G2 + JGFS_ATMOS_FBWIND + JGFS_ATMOS_GEMPAK + JGFS_ATMOS_GEMPAK_META + JGFS_ATMOS_GEMPAK_PGRB2_SPEC + JGFS_ATMOS_AWIPS_20KM_1P0DEG + JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF + JGFS_ATMOS_PGRB2_SPEC_NPOESS + +SCRIPTS CHANGES + exgdas_atmos_nawips.sh + exgdas_atmos_gempak_gif_ncdc.sh + exgfs_atmos_gempak_gif_ncdc_skew_t.sh + exgfs_atmos_awips_20km_1p0deg.sh + exgfs_atmos_fbwind.sh + exgfs_atmos_gempak_meta.sh + exgfs_atmos_grib_awips.sh + exgfs_atmos_nawips.sh + exgFS_atmos_grib2_special_npoess.sh + exgfs_atmos_goes_nawips.sh -removed dependencies for gempak on phase 1 + exgfs_atmos_nawips.sh -removed dependencies for gempak on phase 1 + +PARM CHANGES + Removed 5WAVH in parm cards for AWIPS products in GFS v16.0.0 + (NCEP POST stopped producing 5WAVH (plan to retire "5WAVH") in GFS v16.0.0 + +USH CHANGES + No changes + +GEMPAK CHANGES + - Added nagrib.tbl file in gempak's FIX directory + +ECFLOW CHANGES + -Removed GFS FAX, GFS FAX WAFS and GDAS_TROPC in ecflow suite definition and scripts + +=========== +Prepared by +Boi.Vuong@noaa.gov diff --git a/docs/archive/README_bufr b/docs/archive/README_bufr index 1e7ab86cde..17067531cc 100644 --- a/docs/archive/README_bufr +++ b/docs/archive/README_bufr @@ -1,11 +1,11 @@ changes for 2017GFS upgrades Bufr soundings Bufr sounding subversion log: SURGE-slogin1 > svn status -M jobs/JGFS_POSTSND +M jobs/JGFS_ATMOS_POSTSND A parm/bufr_gfs_class1.tbl A parm/bufr_stalist.meteo.gfs D parm/bufr_stalist.meteo.gfs3.update -M scripts/exgfs_postsnd.sh.ecf +M scripts/exgfs_atmos_postsnd.sh M sorc/build_gfs_bufrsnd.sh M sorc/gfs_bufr.fd/buff.f M sorc/gfs_bufr.fd/gfsbufr.f @@ -16,7 +16,7 @@ M ush/gfs_bufr.sh M ush/gfs_sndp.sh ------------------------------------------------------------- -M jobs/JGFS_POSTSND +M jobs/JGFS_ATMOS_POSTSND change aprun parameters to speed up the wall time. ------------------------------------------------------------- A parm/bufr_gfs_class1.tbl @@ -29,7 +29,7 @@ D parm/bufr_stalist.meteo.gfs3.update parm/bufr_stalist.meteo.gfs3.update is deleted for it is no longer needed. The two files names have been changed by removing "3" in the file names. ------------------------------------------------------------- -M scripts/exgfs_postsnd.sh.ecf +M scripts/exgfs_atmos_postsnd.sh M sorc/gfs_bufr.fd/buff.f M sorc/gfs_bufr.fd/gfsbufr.f M sorc/gfs_bufr.fd/meteorg.f diff --git a/docs/doxygen/compile b/docs/doxygen/compile index 9acc27cf56..e5f95b673a 100755 --- a/docs/doxygen/compile +++ b/docs/doxygen/compile @@ -3,8 +3,8 @@ machine=${1:-${machine:-"WCOSS_C"}} machine=$(echo $machine | tr '[a-z]' '[A-Z]') -if [ $machine = "THEIA" ]; then - doxygen=/scratch3/NCEPDEV/hwrf/save/Samuel.Trahan/doxygen-1.8.10/bin/doxygen +if [ $machine = "HERA" ]; then + doxygen=/usr/bin/doxygen elif [ $machine = "WCOSS_C" ]; then doxygen=/gpfs/hps3/emc/hwrf/noscrub/soft/doxygen-1.8.10/bin/doxygen elif [ $machine = "WCOSS" ]; then diff --git a/docs/doxygen/mainpage.h b/docs/doxygen/mainpage.h index adc5df958b..ac26cd861c 100644 --- a/docs/doxygen/mainpage.h +++ b/docs/doxygen/mainpage.h @@ -21,7 +21,7 @@ This is a very much a work in progress and any issues should be reported back an To setup an experiment, a python script \c setup_expt.py (located in \c fv3gfs/ush) can be used: $> setup_expt.py -h - usage: setup_expt.py [-h] [--machine {THEIA,WCOSS_C}] --pslot PSLOT + usage: setup_expt.py [-h] [--machine {HERA,WCOSS_C}] --pslot PSLOT [--configdir CONFIGDIR] [--idate IDATE] [--icsdir ICSDIR] [--resdet RESDET] [--resens RESENS] [--comrot COMROT] [--expdir EXPDIR] [--nens NENS] [--cdump CDUMP] diff --git a/docs/note_fixfield.txt b/docs/note_fixfield.txt index 76496c6d36..292947353c 100644 --- a/docs/note_fixfield.txt +++ b/docs/note_fixfield.txt @@ -4,7 +4,7 @@ They are saved locally on all platforms Venus/Mars: /gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix Surge/Luna: /gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix -THEIA: /scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix +Hera: /scratch1/NCEPDEV/global/glopara/fix ------------------------------------------------------------------------------ 09/28/2018 diff --git a/driver/gdas/para_config.gdas_gldas b/driver/gdas/para_config.gdas_gldas new file mode 100755 index 0000000000..a766601e22 --- /dev/null +++ b/driver/gdas/para_config.gdas_gldas @@ -0,0 +1,63 @@ +################################################################## +# This parameter file set up the environment variables used in +# the J-Job scripts to run the gldas land analsis system +################################################################## +# module load for untility in run_all of lsf directory + +export GDATE=${PDY:-20191025} +export cyc=${cyc:-00} +export model=${model:-noah} +export QUEUE=debug +export PROJECT_CODE=NLDAS-T2O + +#export workdir=/gpfs/dell2/emc/modeling/noscrub/$LOGNAME/global-workflow +export workdir=${workdir:-$HOMEgfs} + +export gldas_ver=${gldas_ver:-v2.3.0} +export HOMEgldas=${HOMEgldas:-$workdir/sorc/gldas.fd} +export FIXgldas=${FIXgldas:-$HOMEgldas/fix} +export PARMgldas=${PARMgldas:-$HOMEgldas/parm} +export EXECgldas=${EXECgldas:-$HOMEgldas/exec} +export USHgldas=${USHgldas:-$HOMEgldas/ush} + +#export FIXgldas=/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix/fix_gldas +#export topodir=/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix/fix_fv3_gmted2010/C768/ +export FIXgldas=${FIXgldas:-$workdir/fix/fix_gldas} +export topodir=${topodir:-$workdir/fix/fix_fv3_gmted2010/C768} + + +export COM_IN=${COM_IN:-$workdir/com/gldas.${gldas_ver}} +export COM_OUT=${COM_OUT:-$COM_IN} + +# set up com and decom directory used +# GFS OPS +if [ ${model} == 'noah' ]; then +export COMROOT=/gpfs/dell1/nco/ops/com +export DCOMROOT=/gpfs/dell1/nco/ops/dcom +fi + +##GFS Retrospective test +#if [ ${model} == 'noah' ]; then +#export COMROOT=/gpfs/dell2/emc/retros/noscrub/Youlong.Xia/com +#export DCOMROOT=/gpfs/dell2/emc/retros/noscrub/Youlong.Xia/com +#fi + +# gfsv16 systhesis test +if [ ${model} == 'noahmp' ]; then +export COMROOT=/gpfs/dell2/emc/retros/noscrub/Youlong.Xia/com +export DCOMROOT=/gpfs/dell2/emc/retros/noscrub/Youlong.Xia/com +fi + +export COMINgdas=${COMINgdas:-${COMROOT}/gfs/prod} +export DCOMIN=${DCOM_IN:-${DCOMROOT}/prod} + + +#export DATA_IN=/gpfs/dell2/ptmp/$LOGNAME/tmpnwprd +#export jlogfile=$DATA_IN/jlogfile +export DATA=/gpfs/dell2/ptmp/$LOGNAME/tmpnwprd +export jlogfile=$DATA/jlogfile + +export SENDCOM=${SENDCOM:-YES} +export SENDECF=${SENDECF:-NO} +export SENDDBN=${SENDDBN:-NO} + diff --git a/driver/gdas/test_gdas_gldas.sh b/driver/gdas/test_gdas_gldas.sh new file mode 100755 index 0000000000..46b5391b54 --- /dev/null +++ b/driver/gdas/test_gdas_gldas.sh @@ -0,0 +1,127 @@ +#!/bin/sh + +#BSUB -o /gpfs/dell2/ptmp/Youlong.Xia/gdas_gldas.o%J +#BSUB -e /gpfs/dell2/ptmp/Youlong.Xia/gdas_gldas.o%J +#BSUB -P NLDAS-T2O +#BSUB -J jgdas_gldas_12 +#BSUB -W 01:00 +#BSUB -q dev +#BSUB -n 112 # number of tasks +#BSUB -R span[ptile=28] # tasks per node +#BSUB -R affinity[core(1):distribute=balance] +#BSUB -M 3072 +#BSUB -extsched 'CRAYLINUX[]' + +set -x + +date + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export launcher="mpirun -n" +export npe_gaussian=6 +export npe_gldas=112 +export APRUN_GAUSSIAN="$launcher $npe_gaussian" +export APRUN_GLDAS="$launcher $npe_gldas" + +export CDATE=${CDATE:-2019110700} + +############################################################# +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=`echo $CDATE | cut -c1-8` + +export PDY1=`expr $PDY - 1` + +export cyc=`echo $CDATE | cut -c9-10` +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load theUtilities module +##################################### +module purge +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_envir/1.0.2 +module load prod_util/1.1.4 +module load grib_util/1.1.0 +module load NetCDF/4.5.0 +########################################### +# Now set up environment +########################################### +module list + +############################################ +# GDAS META PRODUCT GENERATION +############################################ +# set envir=prod or para to test with data in prod or para +# export envir=prod + export envir=para + +export RUN=${RUN:-gdas} + +export SENDCOM=YES +export KEEPDATA=YES +export job=gdas_gldas_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## + export HOMEgw=/gpfs/dell2/emc/modeling/noscrub/$LOGNAME/global-workflow +if [ $envir = "prod" ] ; then +# This setting is for testing with GDAS (production) + export HOMEgldas=/nwprod/gldas.${gldas_ver} + export COMIN=/gpfs/dell1/nco/ops/com/gfs/prod/${RUN}.${PDY} ### NCO PROD + export COMROOT=/gpfs/dell1/nco/ops/com + export DCOMROOT=/gpfs/dell1/nco/ops/dcom +elif [ $envir = "para" ] ; then +# This setting is for testing with GDAS (production) + export HOMEgldas=${HOMEgldas:-$HOMEgfs/sorc/gldas.fd} + export COMIN=/gpfs/dell1/nco/ops/com/gfs/prod/${RUN}.${PDY} ### NCO PROD + export COMROOT=/gpfs/dell1/nco/ops/com + export DCOMROOT=/gpfs/dell1/nco/ops/dcom +else +# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/${RUN}.${PDY}/${cyc}/nawips ### EMC PARA Realtime +# export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/${RUN} ### EMC PARA Realtime + export workdir=${workdir:-$HOMEgfs} + export HOMEgldas=$workdir/sorc/gldas.fd + export COMROOT=$workdir/com + export DCOMROOT=$workdir/dcom + export COMINgdas=$COMROOT + export DCOMIN=$DCOMROOT + export COMIN=$workdir/comin + export COMOUT=$workdir/comout +fi + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf +fi + +# Set user specific variables +############################################################# +#export NWTEST=/gpfs/hps/emc/global/noscrub/emc.glopara/svn/gfs/work +export PARA_CONFIG=$HOMEgw/driver/gdas/para_config.gdas_gldas +#export JOBGLOBAL=$NWTEST/gdas.${gdas_ver}/jobs +export JOBGLOBAL=$HOMEgldas/jobs + +############################################################# +# Execute job +############################################################# +echo $JOBGLOBAL/JGDAS_ATMOS_GLDAS +$JOBGLOBAL/JGDAS_ATMOS_GLDAS + +exit + diff --git a/driver/gdas/test_jgdas_tropcy_qc_reloc.ecf b/driver/gdas/test_jgdas_tropcy_qc_reloc.ecf index 1a65b3ed48..c413513dcf 100755 --- a/driver/gdas/test_jgdas_tropcy_qc_reloc.ecf +++ b/driver/gdas/test_jgdas_tropcy_qc_reloc.ecf @@ -85,7 +85,7 @@ export HOMERELO=$shared_global_home #export HOMERELO=${NWROOT}/tropcy_qc_reloc.${tropcy_qc_reloc_ver}_r62774_phase2 export HOMESYND=${HOMERELO} #export envir_getges=prod -$gdas_global_home/jobs/JGDAS_TROPCY_QC_RELOC +$gdas_global_home/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC if [ $? -ne 0 ]; then # ecflow_client --abort @@ -95,18 +95,18 @@ fi #%include #%manual ###################################################################### -#PURPOSE: Executes the job JGDAS_TROPCY_QC_RELOC +#PURPOSE: Executes the job JGLOBAL_ATMOS_TROPCY_QC_RELOC ###################################################################### ############################################################# # Function been tested: TCvital quality control and archive, hurricane relocation # -# Calling sequence: JGFS_TROPCY_QC_RELOC, extropcy_qc_reloc.sh.ecf, +# Calling sequence: JGLOBAL_ATMOS_TROPCY_QC_RELOC, exglobal_atmos_tropcy_qc_reloc.sh, # # syndat_qctropcy.sh, tropcy_relocate.sh,syndat_getjtbul.sh, # # tropcy_relocate_extrkr.sh,parse-storm-type.pl # # Initial condition: provide hours (cyc=?) # -# Usage: bsub < test_jgdas_tropcy_qc_reloc.ecf +# Usage: bsub < test_jgdas_tropcy_qc_reloc # # Data_In: COMINgfs=/com/gfs/prod/gfs.${PDY} # COMINgdas=/com/gfs/prod/gdas.${PDY} diff --git a/driver/gdas/test_jgdas_tropcy_qc_reloc_cray.sh b/driver/gdas/test_jgdas_tropcy_qc_reloc_cray.sh index 8a77f1e6c4..15ef49ea23 100755 --- a/driver/gdas/test_jgdas_tropcy_qc_reloc_cray.sh +++ b/driver/gdas/test_jgdas_tropcy_qc_reloc_cray.sh @@ -112,7 +112,7 @@ export HOMERELO=$shared_global_home #export HOMERELO=${NWROOT}/tropcy_qc_reloc.${tropcy_qc_reloc_ver}_r62774_phase2 export HOMESYND=${HOMERELO} #export envir_getges=prod -$gdas_global_home/jobs/JGDAS_TROPCY_QC_RELOC +$gdas_global_home/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC if [ $? -ne 0 ]; then # ecflow_client --abort @@ -122,18 +122,18 @@ fi #%include #%manual ###################################################################### -#PURPOSE: Executes the job JGDAS_TROPCY_QC_RELOC +#PURPOSE: Executes the job JGLOBAL_ATMOS_TROPCY_QC_RELOC ###################################################################### ############################################################# # Function been tested: TCvital quality control and archive, hurricane relocation # -# Calling sequence: JGFS_TROPCY_QC_RELOC, extropcy_qc_reloc.sh.ecf, +# Calling sequence: JGLOBAL_ATMOS_TROPCY_QC_RELOC, exglobal_atmos_tropcy_qc_reloc.sh, # # syndat_qctropcy.sh, tropcy_relocate.sh,syndat_getjtbul.sh, # # tropcy_relocate_extrkr.sh,parse-storm-type.pl # # Initial condition: provide hours (cyc=?) # -# Usage: bsub < test_jgdas_tropcy_qc_reloc.ecf +# Usage: bsub < test_jgdas_tropcy_qc_reloc # # Data_In: COMINgfs=/com/gfs/prod/gfs.${PDY} # COMINgdas=/com/gfs/prod/gdas.${PDY} diff --git a/driver/gdas/test_jgdas_verfozn_theia.sh b/driver/gdas/test_jgdas_verfozn_theia.sh deleted file mode 100755 index da52cd11de..0000000000 --- a/driver/gdas/test_jgdas_verfozn_theia.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/ksh - -#PBS -o gdas_verfozn.log -#PBS -e gdas_verfozn.err -#PBS -N gdas_verfozn -#PBS -A glbss -#PBS -l procs=1,walltime=0:10:00 -#PBS -V - -set -x - -export PDATE=${PDATE:-2017071806} - -############################################################# -# Specify whether the run is production or development -############################################################# -export PDY=`echo $PDATE | cut -c1-8` -export cyc=`echo $PDATE | cut -c9-10` -export job=gdas_verfozn.${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} -export envir=para -export DATAROOT=${DATAROOT:-/scratch4/NCEPDEV/da/noscrub/Edward.Safford/ozn_test_data} -export COMROOT=${COMROOT:-/scratch4/NCEPDEV/stmp3/$LOGNAME/com} - - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.0.0 - - -############################################################# -# Add nwpara tools to path -############################################################# -NWPROD=${NWPROD:-/scratch4/NCEPDEV/global/save/glopara/nwpara/util} -NWPRODush=${NWPRODush:=${NWPROD}/ush} -NWPRODexec=${NWPRODexec:=${NWPROD}/exec} -export PATH=${PATH}:${NWPRODush}:${NWPRODexec} - -############################################################# -# Set user specific variables -############################################################# - -export OZNMON_SUFFIX=${OZNMON_SUFFIX:-testozn} -export NWTEST=${NWTEST:-/scratch4/NCEPDEV/da/noscrub/${LOGNAME}/gfs.${gfs_ver}} -export HOMEgfs_ozn=${HOMEgfs_ozn:-${NWTEST}} -export JOBGLOBAL=${JOBGLOBAL:-${HOMEgfs_ozn}/jobs} -export HOMEoznmon=${HOMEoznmon:-${NWTEST}} -export COM_IN=${COM_IN:-${DATAROOT}} -export OZN_TANKDIR=${OZN_TANKDIR:-${COMROOT}/${OZNMON_SUFFIX}} - -export SUB=${SUB:-/apps/torque/default/bin/qsub} -export NDATE=${NDATE:-ndate} - - -####################################################################### -# theia specific hacks for no prod_utils module & no setpdy.sh script -####################################################################### -export MY_MACHINE=theia -prevday=`$NDATE -24 $PDATE` -export PDYm1=`echo $prevday | cut -c1-8` -ln -s ${NWPRODush}/startmsg.sh ${COMROOT}/startmsg -ln -s ${NWPRODush}/postmsg.sh ${COMROOT}/postmsg -ln -s ${NWPRODush}/prep_step.sh ${COMROOT}/prep_step -ln -s ${NWPRODush}/err_chk.sh ${COMROOT}/err_chk -export PATH=$PATH:${COMROOT} -export utilscript=${utilscript:-${NWPRODush}} # err_chk calls postmsg.sh - # directly so need to override - # utilscript location for theia -############################################################# -# Execute job -############################################################# -$JOBGLOBAL/JGDAS_VERFOZN - -exit - diff --git a/driver/gdas/test_jgdas_verfrad_theia.sh b/driver/gdas/test_jgdas_verfrad_theia.sh deleted file mode 100755 index 8f0a3cab9b..0000000000 --- a/driver/gdas/test_jgdas_verfrad_theia.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/ksh - -#PBS -o gdas_verfrad.log -#PBS -e gdas_verfrad.err -#PBS -N gdas_verfrad -#PBS -A glbss -#PBS -l procs=1,walltime=0:10:00 -#PBS -V - -set -x - -export PDATE=${PDATE:-2017020606} - -############################################################# -# Specify whether the run is production or development -############################################################# -export PDY=`echo $PDATE | cut -c1-8` -export cyc=`echo $PDATE | cut -c9-10` -export job=gdas_verfrad.${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} -export envir=para -export DATAROOT=${DATAROOT:-/scratch4/NCEPDEV/da/noscrub/Edward.Safford/test_data} -export COMROOT=${COMROOT:-/scratch4/NCEPDEV/stmp3/$LOGNAME/com} -export STMP_USER=${STMP_USER:-/scratch4/NCEPDEV/stmp3/$LOGNAME} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.0.0 - - -############################################################# -# Add nwpara tools to path -############################################################# -NWPROD=${NWPROD:-/scratch4/NCEPDEV/global/save/glopara/nwpara/util} -NWPRODush=${NWPRODush:=${NWPROD}/ush} -NWPRODexec=${NWPRODexec:=${NWPROD}/exec} -export PATH=${PATH}:${NWPRODush}:${NWPRODexec} - -############################################################# -# Set user specific variables -############################################################# - -export RADMON_SUFFIX=${RADMON_SUFFIX:-testrad} -export NWTEST=${NWTEST:-/scratch4/NCEPDEV/da/noscrub/${LOGNAME}/gfs.${gfs_ver}} -export HOMEgfs=${HOMEgfs:-${NWTEST}} -export JOBGLOBAL=${JOBGLOBAL:-${HOMEgfs}/jobs} -export HOMEradmon=${HOMEradmon:-${NWTEST}} -export COM_IN=${COM_IN:-${DATAROOT}} -export TANKverf=${TANKverf:-${COMROOT}/${RADMON_SUFFIX}} - -export SUB=${SUB:-/apps/torque/default/bin/qsub} -export NDATE=${NDATE:-ndate} - - -####################################################################### -# theia specific hacks for no prod_utils module & no setpdy.sh script -####################################################################### -export MY_MACHINE=theia -prevday=`$NDATE -24 $PDATE` -export PDYm1=`echo $prevday | cut -c1-8` -ln -s ${NWPRODush}/startmsg.sh ${STMP_USER}/startmsg -ln -s ${NWPRODush}/postmsg.sh ${STMP_USER}/postmsg -ln -s ${NWPRODush}/prep_step.sh ${STMP_USER}/prep_step -ln -s ${NWPRODush}/err_chk.sh ${STMP_USER}/err_chk -export PATH=$PATH:${STMP_USER} -export utilscript=${utilscript:-${NWPRODush}} # err_chk calls postmsg.sh - # directly so need to override - # utilscript location for theia -############################################################# -# Execute job -############################################################# -$JOBGLOBAL/JGDAS_VERFRAD - -exit - diff --git a/driver/gdas/test_jgdas_vminmon_theia.sh b/driver/gdas/test_jgdas_vminmon_theia.sh deleted file mode 100755 index 750936ef26..0000000000 --- a/driver/gdas/test_jgdas_vminmon_theia.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/ksh - -#PBS -o gdas_vminmon.log -#PBS -e gdas_vminmon.err -#PBS -N gdas_vminmon -#PBS -A glbss -#PBS -l procs=1,walltime=0:05:00 -#PBS -V - -set -x - -export PDATE=${PDATE:-2016030706} - -############################################################# -# Specify whether the run is production or development -############################################################# -export PDY=`echo $PDATE | cut -c1-8` -export cyc=`echo $PDATE | cut -c9-10` -export job=gdas_vminmon.${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} -export envir=para -export DATAROOT=${DATAROOT:-/scratch4/NCEPDEV/da/noscrub/Edward.Safford/test_data} -export COMROOT=${COMROOT:-/scratch4/NCEPDEV/stmp3/$LOGNAME/com} -export STMP_USER=${STMP_USER:-/scratch4/NCEPDEV/stmp3/$LOGNAME} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.0.0 - - -############################################################# -# Add nwpara tools to path -############################################################# -NWPROD=${NWPROD:-/scratch4/NCEPDEV/global/save/glopara/nwpara/util} -NWPRODush=${NWPRODush:=${NWPROD}/ush} -NWPRODexec=${NWPRODexec:=${NWPROD}/exec} -export PATH=${PATH}:${NWPRODush}:${NWPRODexec} - - -############################################################# -# Set user specific variables -############################################################# -export MINMON_SUFFIX=${MINMON_SUFFIX:-testminmon} -export NWTEST=${NWTEST:-/scratch4/NCEPDEV/da/noscrub/${LOGNAME}/gfs.${gfs_ver}} -export HOMEgfs=${HOMEgfs:-${NWTEST}} -export JOBGLOBAL=${HOMEgfs}/jobs -export HOMEminmon=${HOMEminmon:-${NWTEST}} -export COM_IN=${COM_IN:-${DATAROOT}} -export M_TANKverf=${M_TANKverf:-${COMROOT}/${MINMON_SUFFIX}} - -####################################################################### -# theia specific hacks for no prod_utils module & no setpdy.sh script -####################################################################### -export MY_MACHINE=theia - -export NDATE=/scratch4/NCEPDEV/global/save/glopara/nwpara/util/exec/ndate -prevday=`$NDATE -24 $PDATE` -export PDYm1=`echo $prevday | cut -c1-8` - -ln -s ${NWPRODush}/startmsg.sh ${STMP_USER}/startmsg -ln -s ${NWPRODush}/postmsg.sh ${STMP_USER}/postmsg -ln -s ${NWPRODush}/prep_step.sh ${STMP_USER}/prep_step -ln -s ${NWPRODush}/err_chk.sh ${STMP_USER}/err_chk -export PATH=$PATH:${STMP_USER} -export utilscript=${utilscript:-${NWPRODush}} # err_chk calls postmsg.sh - # directly so need to override - # utilscript location - -############################################################# -# Execute job -############################################################# -$JOBGLOBAL/JGDAS_VMINMON - -exit - diff --git a/driver/gfs/test_jgfs_cyclone_tracker.ecf b/driver/gfs/test_jgfs_cyclone_tracker.ecf index b2dedd4f52..326ac94fc3 100755 --- a/driver/gfs/test_jgfs_cyclone_tracker.ecf +++ b/driver/gfs/test_jgfs_cyclone_tracker.ecf @@ -82,7 +82,7 @@ fi export HOMERELO=$shared_global_home export HOMESYND=${HOMERELO} #export envir_getges=prod -$gfs_global_home/jobs/JGFS_CYCLONE_TRACKER +$gfs_global_home/jobs/JGFS_ATMOS_CYCLONE_TRACKER if [ $? -ne 0 ]; then # ecflow_client --abort @@ -93,16 +93,16 @@ fi #%manual ######################################################################## ###################################################################### -#PURPOSE: Executes the job JGFS_CYCLONE_TRACKER +#PURPOSE: Executes the job JGFS_ATMOS_CYCLONE_TRACKER ###################################################################### ############################################################### ## Function been tested: creates GFS TC forecast track ## -## Calling sequence: JGFS_CYCLONE_TRACKER, global_extrkr.sh +## Calling sequence: JGFS_ATMOS_CYCLONE_TRACKER, global_extrkr.sh ## ## Initial condition: provide hours (cyc=?) ## -## Usage: bsub < test_jgfs_cyclone_tracker.ecf +## Usage: bsub < test_jgfs_cyclone_tracker ## ## Data_In: COMINgfs=/com/gfs/prod/gfs.${PDY} ## COMINgdas=/com/gfs/prod/gdas.${PDY} diff --git a/driver/gfs/test_jgfs_cyclone_tracker_cray.sh b/driver/gfs/test_jgfs_cyclone_tracker_cray.sh index 61ec26cf04..ece85d163f 100755 --- a/driver/gfs/test_jgfs_cyclone_tracker_cray.sh +++ b/driver/gfs/test_jgfs_cyclone_tracker_cray.sh @@ -126,7 +126,7 @@ export HOMERELO=$shared_global_home #export HOMERELO=${NWROOT}/tropcy_qc_reloc.${tropcy_qc_reloc_ver}_r62774_phase2 export HOMESYND=${HOMERELO} #export envir_getges=prod -$gfs_global_home/jobs/JGFS_CYCLONE_TRACKER_test +$gfs_global_home/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC if [ $? -ne 0 ]; then # ecflow_client --abort @@ -136,18 +136,18 @@ fi #%include #%manual ###################################################################### -#PURPOSE: Executes the job JGDAS_TROPCY_QC_RELOC +#PURPOSE: Executes the job JGLOBAL_ATMOS_TROPCY_QC_RELOC ###################################################################### ############################################################# # Function been tested: TCvital quality control and archive, hurricane relocation # -# Calling sequence: JGFS_TROPCY_QC_RELOC, extropcy_qc_reloc.sh.ecf, +# Calling sequence: JGLOBAL_ATMOS_TROPCY_QC_RELOC, exglobal_atmos_tropcy_qc_reloc.sh, # # syndat_qctropcy.sh, tropcy_relocate.sh,syndat_getjtbul.sh, # # tropcy_relocate_extrkr.sh,parse-storm-type.pl # # Initial condition: provide hours (cyc=?) # -# Usage: bsub < test_jgfs_tropcy_qc_reloc.ecf +# Usage: bsub < test_jgfs_tropcy_qc_reloc # # Data_In: COMINgfs=/com/gfs/prod/gfs.${PDY} # COMINgdas=/com/gfs/prod/gdas.${PDY} diff --git a/driver/gfs/test_jgfs_tropcy_qc_reloc.ecf b/driver/gfs/test_jgfs_tropcy_qc_reloc.ecf index fe6fd33537..07c85f36b9 100755 --- a/driver/gfs/test_jgfs_tropcy_qc_reloc.ecf +++ b/driver/gfs/test_jgfs_tropcy_qc_reloc.ecf @@ -83,7 +83,7 @@ export HOMERELO=$shared_global_home #export HOMERELO=${NWROOT}/tropcy_qc_reloc.${tropcy_qc_reloc_ver}_r62774_phase2 export HOMESYND=${HOMERELO} #export envir_getges=prod -$gfs_global_home/jobs/JGFS_TROPCY_QC_RELOC +$gfs_global_home/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC if [ $? -ne 0 ]; then # ecflow_client --abort @@ -93,18 +93,18 @@ fi #%include #%manual ###################################################################### -##PURPOSE: Executes the job JGFS_TROPCY_QC_RELOC +##PURPOSE: Executes the job JGLOBAL_ATMOS_TROPCY_QC_RELOC ####################################################################### ############################################################## # Function been tested: TCvital quality control and archive, hurricane relocation # -# Calling sequence: JGFS_TROPCY_QC_RELOC, extropcy_qc_reloc.sh.ecf, +# Calling sequence: JGLOBAL_ATMOS_TROPCY_QC_RELOC, exglobal_atmos_tropcy_qc_reloc.sh, # syndat_qctropcy.sh, tropcy_relocate.sh,syndat_getjtbul.sh, # tropcy_relocate_extrkr.sh,parse-storm-type.pl # # Initial condition: provide hours (cyc=?) # -# Usage: bsub < test_jgfs_tropcy_qc_reloc.ecf +# Usage: bsub < test_jgfs_tropcy_qc_reloc # # Data_In: COMINgfs=/com/gfs/prod/gfs.${PDY} # COMINgdas=/com/gfs/prod/gdas.${PDY} diff --git a/driver/gfs/test_jgfs_tropcy_qc_reloc_cray.sh b/driver/gfs/test_jgfs_tropcy_qc_reloc_cray.sh index 9c43a88f64..e6f4060f19 100755 --- a/driver/gfs/test_jgfs_tropcy_qc_reloc_cray.sh +++ b/driver/gfs/test_jgfs_tropcy_qc_reloc_cray.sh @@ -112,7 +112,7 @@ export HOMERELO=$shared_global_home #export HOMERELO=${NWROOT}/tropcy_qc_reloc.${tropcy_qc_reloc_ver}_r62774_phase2 export HOMESYND=${HOMERELO} #export envir_getges=prod -$gfs_global_home/jobs/JGFS_TROPCY_QC_RELOC +$gfs_global_home/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC if [ $? -ne 0 ]; then @@ -123,18 +123,18 @@ fi #%include #%manual ###################################################################### -#PURPOSE: Executes the job JGFS_TROPCY_QC_RELOC +#PURPOSE: Executes the job JGLOBAL_ATMOS_TROPCY_QC_RELOC ###################################################################### ############################################################# # Function been tested: TCvital quality control and archive, hurricane relocation # -# Calling sequence: JGFS_TROPCY_QC_RELOC, extropcy_qc_reloc.sh.ecf, +# Calling sequence: JGLOBAL_ATMOS_TROPCY_QC_RELOC, exglobal_atmos_tropcy_qc_reloc.sh, # # syndat_qctropcy.sh, tropcy_relocate.sh,syndat_getjtbul.sh, # # tropcy_relocate_extrkr.sh,parse-storm-type.pl # # Initial condition: provide hours (cyc=?) # -# Usage: bsub < test_jgfs_tropcy_qc_reloc.ecf +# Usage: bsub < test_jgfs_tropcy_qc_reloc # # Data_In: COMINgfs=/com/gfs/prod/gfs.${PDY} # COMINgdas=/com/gfs/prod/gdas.${PDY} diff --git a/driver/gfs/test_jgfs_vminmon_theia.sh b/driver/gfs/test_jgfs_vminmon_theia.sh deleted file mode 100755 index ab8b485d77..0000000000 --- a/driver/gfs/test_jgfs_vminmon_theia.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/ksh - -#PBS -o gfs_vminmon.log -#PBS -e gfs_vminmon.err -#PBS -N gfs_vminmon -#PBS -A glbss -#PBS -l procs=1,walltime=0:05:00 -#PBS -V - -set -x - -export PDATE=${PDATE:-2016030718} - -############################################################# -# Specify whether the run is production or development -############################################################# -export PDY=`echo $PDATE | cut -c1-8` -export cyc=`echo $PDATE | cut -c9-10` -export job=gfs_vminmon.${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} -export envir=para -export DATAROOT=${DATAROOT:-/scratch4/NCEPDEV/da/noscrub/Edward.Safford/test_data} -export COMROOT=${COMROOT:-/scratch4/NCEPDEV/stmp3/$LOGNAME/com} -export STMP_USER=${STMP_USER:-/scratch4/NCEPDEV/stmp3/$LOGNAME} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.0.0 - - -############################################################# -# Add nwpara tools to path -############################################################# -NWPROD=${NWPROD:-/scratch4/NCEPDEV/global/save/glopara/nwpara/util} -NWPRODush=${NWPRODush:=${NWPROD}/ush} -NWPRODexec=${NWPRODexec:=${NWPROD}/exec} -export PATH=${PATH}:${NWPRODush}:${NWPRODexec} - - -############################################################# -# Set user specific variables -############################################################# -export MINMON_SUFFIX=${MINMON_SUFFIX:-testminmon} -export NWTEST=${NWTEST:-/scratch4/NCEPDEV/da/noscrub/${LOGNAME}/gfs.${gfs_ver}} -export HOMEgfs=${HOMEgfs:-${NWTEST}} -export JOBGLOBAL=${HOMEgfs}/jobs -export HOMEminmon=${HOMEminmon:-${NWTEST}} -export COM_IN=${COM_IN:-${DATAROOT}} -export M_TANKverf=${M_TANKverf:-${COMROOT}/${MINMON_SUFFIX}} - -####################################################################### -# theia specific hacks for no prod_utils module & no setpdy.sh script -####################################################################### -export MY_MACHINE=theia - -export NDATE=/scratch4/NCEPDEV/global/save/glopara/nwpara/util/exec/ndate -prevday=`$NDATE -24 $PDATE` -export PDYm1=`echo $prevday | cut -c1-8` - -ln -s ${NWPRODush}/startmsg.sh ${STMP_USER}/startmsg -ln -s ${NWPRODush}/postmsg.sh ${STMP_USER}/postmsg -ln -s ${NWPRODush}/prep_step.sh ${STMP_USER}/prep_step -ln -s ${NWPRODush}/err_chk.sh ${STMP_USER}/err_chk -export PATH=$PATH:${STMP_USER} -export utilscript=${utilscript:-${NWPRODush}} # err_chk calls postmsg.sh - # directly so need to override - # utilscript location - -############################################################# -# Execute job -############################################################# -$JOBGLOBAL/JGFS_VMINMON - -exit - diff --git a/driver/product/change_gfs_downstream_date.sh b/driver/product/change_gfs_downstream_date.sh index 537e2c432a..70f01324d2 100755 --- a/driver/product/change_gfs_downstream_date.sh +++ b/driver/product/change_gfs_downstream_date.sh @@ -7,8 +7,8 @@ export dir=` pwd ` export PDY=`date -u +%Y%m%d` export PDY1=`expr $PDY - 1` -export var=20190829 -export var1=20190827 +export olddate=20200712 +export newdate=20200922 export gdas=/gpfs/dell1/nco/ops/com/gfs/prod/gdas.${PDY}/${cyc} export gdasgp=/gpfs/dell1/nco/ops/com/gfs/prod/gdas.${PDY}/${cyc}/gempak @@ -21,15 +21,26 @@ export gdastestmeta=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/prod/gdas.${PDY}/${cyc}/g for cyc in 00 06 12 18 # for cyc in 00 do -sed -i "s/${var1}/${var}/g" run_JGDAS_GEMPAK_dell.sh_${cyc} -sed -i "s/${var1}/${var}/g" run_JGDAS_GEMPAK_META_NCDC_dell.sh_${cyc} -sed -i "s/${var1}/${var}/g" run_JGFS_GEMPAK_dell.sh_${cyc} -sed -i "s/${var1}/${var}/g" run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_${cyc} -sed -i "s/${var1}/${var}/g" run_JGFS_AWIPS_G2_dell.sh_${cyc} -sed -i "s/${var1}/${var}/g" run_JGFS_FBWIND_dell.sh_${cyc} -sed -i "s/${var1}/${var}/g" run_JGFS_GEMPAK_META_dell.sh_${cyc} -sed -i "s/${var1}/${var}/g" run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_${cyc} -sed -i "s/${var1}/${var}/g" run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_${cyc} -sed -i "s/${var1}/${var}/g" run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_${cyc} -sed -i "s/${var1}/${var}/g" run_JGDAS_BULLS_NAVY_dell.sh_${cyc} +sed -i "s/${olddate}/${newdate}/g" run_JGDAS_ATMOS_GEMPAK_dell.sh_${cyc} +sed -i "s/${olddate}/${newdate}/g" run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_${cyc} +sed -i "s/${olddate}/${newdate}/g" run_JGFS_ATMOS_GEMPAK_dell.sh_${cyc} +sed -i "s/${olddate}/${newdate}/g" run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_${cyc} +sed -i "s/${olddate}/${newdate}/g" run_JGFS_ATMOS_AWIPS_G2_dell.sh_${cyc} +sed -i "s/${olddate}/${newdate}/g" run_JGFS_ATMOS_FBWIND_dell.sh_${cyc} +sed -i "s/${olddate}/${newdate}/g" run_JGFS_ATMOS_GEMPAK_META_dell.sh_${cyc} +sed -i "s/${olddate}/${newdate}/g" run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_${cyc} +sed -i "s/${olddate}/${newdate}/g" run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_${cyc} +sed -i "s/${olddate}/${newdate}/g" run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_${cyc} + +sed -i s/envir=prod/envir=para/g run_JGDAS_ATMOS_GEMPAK_dell.sh_${cyc} +sed -i s/envir=prod/envir=para/g run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_${cyc} +sed -i s/envir=prod/envir=para/g run_JGFS_ATMOS_GEMPAK_dell.sh_${cyc} +sed -i s/envir=prod/envir=para/g run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_${cyc} +sed -i s/envir=prod/envir=para/g run_JGFS_ATMOS_AWIPS_G2_dell.sh_${cyc} +sed -i s/envir=prod/envir=para/g run_JGFS_ATMOS_FBWIND_dell.sh_${cyc} +sed -i s/envir=prod/envir=para/g run_JGFS_ATMOS_GEMPAK_META_dell.sh_${cyc} +sed -i s/envir=prod/envir=para/g run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_${cyc} +sed -i s/envir=prod/envir=para/g run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_${cyc} +sed -i s/envir=prod/envir=para/g run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_${cyc} + done diff --git a/driver/product/change_gfs_downstream_envir.sh b/driver/product/change_gfs_downstream_envir.sh new file mode 100755 index 0000000000..11fa6bddac --- /dev/null +++ b/driver/product/change_gfs_downstream_envir.sh @@ -0,0 +1,35 @@ +set -x + +# export cyc=12 +# export cyc=18 +export fhr=012 +export dir=` pwd ` +export PDY=`date -u +%Y%m%d` +export PDY1=`expr $PDY - 1` + +export olddate=20200106 +export newdate=20200712 + +export gdas=/gpfs/dell1/nco/ops/com/gfs/prod/gdas.${PDY}/${cyc} +export gdasgp=/gpfs/dell1/nco/ops/com/gfs/prod/gdas.${PDY}/${cyc}/gempak +export gdasmeta=/gpfs/dell1/nco/ops/com/gfs/prod/gdas.${PDY}/${cyc}/gempak/meta + +export gdastest=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/prod/gdas.${PDY}/${cyc} +export gdastestgp=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/prod/gdas.${PDY}/${cyc}/gempak +export gdastestmeta=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/prod/gdas.${PDY}/${cyc}/gempak/meta + +# for cyc in 00 06 12 18 +for cyc in 00 +do + vi run_JGDAS_ATMOS_GEMPAK_dell.sh_${cyc} + vi run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_${cyc} + vi run_JGFS_ATMOS_GEMPAK_dell.sh_${cyc} + vi run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_${cyc} + vi run_JGFS_ATMOS_AWIPS_G2_dell.sh_${cyc} + vi run_JGFS_ATMOS_FBWIND_dell.sh_${cyc} + vi run_JGFS_ATMOS_GEMPAK_META_dell.sh_${cyc} + vi run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_${cyc} + vi run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_${cyc} + vi run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_${cyc} + +done diff --git a/driver/product/compile_gfsv160.sh b/driver/product/compile_gfsv160.sh new file mode 100755 index 0000000000..0c80153378 --- /dev/null +++ b/driver/product/compile_gfsv160.sh @@ -0,0 +1,17 @@ + + +set -x + +export version=v16.0.0 + +cd /gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/gfs.$version/sorc + +build_gfs_fbwndgfs.sh +build_gfs_util.sh + +cp /gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/trim_rh.sh /gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/gfs.$version/ush + +cd /gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/gfs.$version/util/sorc +compile_gfs_util_wcoss.sh + + diff --git a/driver/product/compile_gfsv160_hera.sh b/driver/product/compile_gfsv160_hera.sh new file mode 100755 index 0000000000..2d555e9977 --- /dev/null +++ b/driver/product/compile_gfsv160_hera.sh @@ -0,0 +1,15 @@ + + +set -x + +export version=v16.0.0 + +cd /scratch2/NCEPDEV/stmp3/Boi.Vuong/gfs.v16.0.0/sorc + +./build_gfs_fbwndgfs.sh +./build_gfs_util.sh + +cp /scratch2/NCEPDEV/stmp3/Boi.Vuong/trim_rh.sh /scratch2/NCEPDEV/stmp3/Boi.Vuong/gfs.$version/ush + +cd /scratch2/NCEPDEV/stmp3/Boi.Vuong/gfs.$version/util/sorc +sh compile_gfs_util_wcoss.sh diff --git a/driver/product/driver_WAFS.README b/driver/product/driver_WAFS.README deleted file mode 100755 index 9ba164ca0f..0000000000 --- a/driver/product/driver_WAFS.README +++ /dev/null @@ -1,111 +0,0 @@ -********************************************************************* -How to use the drivers for WAFS jobs -********************************************************************* - -There are 4 WAFS jobs and their corresponding drivers -JGFS_WAFS <-> run_JGFS_WAFS.cray -JGFS_WAFS_GRIB2 <-> run_JGFS_WAFS_GRIB2.cray -JGFS_WAFS_BLENDING <-> run_JGFS_WAFS_BLENDING.cray -JGFS_WAFS_GCIP <-> run_JGFS_WAFS_GCIP.cray - -JGFS_WAFS_BLENDING is a downstream of JGFS_WAFS_GRIB2 and -should run after JGFS_WAFS_GRIB2 - -JGFS_WAFS_GCIP has satellite and radar data inputs, and METAR SHIP PIREPs -data which are dumped from DCOMROOT by using 'dumpjb' - -Step 1: -===================== -After a user downloads/checkouts the project tag. -1) cd sorc -2) sh build_wafs_cray.sh - -Project location, defined by HOMEgfs -export NWROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/project -export HOMEgfs=${HOMEgfs:-${NWROOT}/wafs_cray.${gfs_ver}} - -A user needs to modify NWROOT or HOMEgfs to the project location - - -Step 2: -===================== -Canned model data: -/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/com2/gfs/para/gfs.20161101 - -So first set the specific data: -export PDY=20161101 - -1) For run_JGFS_WAFS.cray, run_JGFS_WAFS_GRIB2.cray, -It's optional for a user to modify the input data location, COMROOT or COMIN: -export COMROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/com2 -export COMIN=$COMROOT/gfs/$envir/gfs.$PDY - -2) JGFS_WAFS_BLENDING has two inputs, UK and US. -US data is a downstream product of JGFS_WAFS_GRIB2, so COMINus needs to point to -PCOM of run_JGFS_WAFS_GRIB2.cray: -export COMINus= - -UK data is from DCOM, currently copied DCOM from Phase 1. For canned data, it's at: -/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/dcom/us007003/20161101/wgrbbul/ukmet_wafs -export DCOMROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/dcom -export COMINuk=${COMINuk:-$DCOMROOT/us007003/$PDY/wgrbbul/ukmet_wafs} - -It's optional for a user to change either DCOMROOT or COMINuk to where the input UK data is. - -3) JGFS_WAFS_GCIP has 4 inputs: model data, bufr, satellite and radar - -Canned model data location: -/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/com2/gfs/para/gfs.20161101 -It's optional for a user to modify the input data location, COMROOT or COMINgfs: -export COMROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/com2 -export COMINgfs=$COMROOT/gfs/$envir/gfs.$PDY - -BUFR data is dumped from DCOM. -export DCOMROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/dcom -dumpjb searches data in b000 b001 b004 b007 under DCOMROOT. -Though it's optional to modify DCOMROOT for dumping BUFR data, it should be mentioned -DCOMROOT of satellite data may be affected. - -Satellite data, currently copied from DCOM on Phase1. For canned data, it's at: -/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/dcom/us007003/20161101/mcidas/ -It's optional for a user to modify the input data location, DCOMROOT or COMINsat: -export DCOMROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/dcom -export COMINsat=${COMINsat:-$DCOMROOT/us007003/$PDY/mcidas} - -Radar data, currently copied from COM on Phase1. For canned data, it's at: -/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/com/hourly/prod/radar.20161101/ -It's optional for a user to modify the input data location, COMROOTp1 or COMINradar -export COMROOTp1=/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/com -export COMINradar=${COMINradar:-$COMROOTp1/hourly/prod/radar.$PDY} - -Step 3: -===================== -Change working folder: -export DATA= - -Change product output folder: -export COMOUT= -(for run_JGFS_WAFS_GRIB2.cray, PCOM needs to be specified to be an input of JGFS_WAFS_BLENDING) -export PCOMROOT= -export PCOM= - -Change file names of error messages and script printout: -#BSUB -oo -#BSUB -eo - - -********************************************************************* -How to test and test results -********************************************************************* -Test by comparing outputs to operational products in different ways. -1) Use wgrib2 to check date, cycle and forecast hour are correct. -2) Check the number of fields and records are correct by comparing the - control files generated by g2ctl -3) Plot and compare by using GrADS to have a sanity check whether - the differences are reasonable. - -The operational products are saved at: -/gpfs/hps/emc/global/noscrub/Yali.Mao/dataprod/com2/gfs/prod/gfs.20161101 - -The parallel WAFS outputs and sample test results are displayed by *.png images at: -/gpfs/hps/emc/global/noscrub/Yali.Mao/dataoutput diff --git a/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_00 b/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_00 new file mode 100755 index 0000000000..7dfd1e5bc4 --- /dev/null +++ b/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_00 @@ -0,0 +1,129 @@ +#!/bin/sh + +#BSUB -J jgdas_gempak_meta_ncdc_00 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_meta_ncdc_00.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=00 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GDAS GEMPAK META PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para + export envir=para +# export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gdas_gempak_meta_ncdc_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export model=${model:-gdas} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} +export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} + +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime + export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN} ### EMC PARA Realtime + +fi +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} +export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} + +export COMOUTncdc=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMOUTukmet=${COMOUT} +export COMOUTecmwf=${COMOUT} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC diff --git a/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_06 b/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_06 new file mode 100755 index 0000000000..2a39094bcf --- /dev/null +++ b/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_06 @@ -0,0 +1,129 @@ +#!/bin/sh + +#BSUB -J jgdas_gempak_meta_ncdc_06 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_meta_ncdc_06.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=06 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GDAS GEMPAK META PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para +# export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gdas_gempak_meta_ncdc_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export model=${model:-gdas} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} +export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} + +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime + export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN} ### EMC PARA Realtime + +fi +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} +export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} + +export COMOUTncdc=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMOUTukmet=${COMOUT} +export COMOUTecmwf=${COMOUT} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC diff --git a/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_12 b/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_12 new file mode 100755 index 0000000000..7dd7070ef7 --- /dev/null +++ b/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_12 @@ -0,0 +1,132 @@ +#!/bin/sh + +#BSUB -J jgdas_gempak_meta_ncdc_12 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_meta_ncdc_12.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=12 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GDAS GEMPAK META PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para +# export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gdas_gempak_meta_ncdc_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export model=${model:-gdas} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} +export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} + +else + +# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime +# export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN} ### EMC PARA Realtime + export COMIN=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/para/gdas.20200922/12/atmos/gempak ### Boi PARA Realtime + export COMINgdas=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/para/gdas ### Boi PARA Realtime + +fi +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} +export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} + +export COMOUTncdc=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMOUTukmet=${COMOUT} +export COMOUTecmwf=${COMOUT} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC diff --git a/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_18 b/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_18 new file mode 100755 index 0000000000..4cee23853a --- /dev/null +++ b/driver/product/run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_18 @@ -0,0 +1,130 @@ +#!/bin/sh + +#BSUB -J jgdas_gempak_meta_ncdc_18 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_meta_ncdc_18.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=18 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GDAS GEMPAK META PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para +# export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gdas_gempak_meta_ncdc_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export model=${model:-gdas} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} +export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} + +else + + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime + export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN} ### EMC PARA Realtime + +fi +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} +export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} + +export COMOUTncdc=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMOUTukmet=${COMOUT} +export COMOUTecmwf=${COMOUT} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC diff --git a/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_00 b/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_00 new file mode 100755 index 0000000000..05b5cb53c6 --- /dev/null +++ b/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_00 @@ -0,0 +1,118 @@ +#!/bin/sh + +#BSUB -J gdas_gempak_00 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_00.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=00 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GDAS GEMPAK PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para + export envir=para +# export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gdas_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export model=${model:-gdas} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGDAS_ATMOS_GEMPAK diff --git a/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_06 b/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_06 new file mode 100755 index 0000000000..ca6dfe61b1 --- /dev/null +++ b/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_06 @@ -0,0 +1,119 @@ +#!/bin/sh + +#BSUB -J gdas_gempak_06 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_06.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=06 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GDAS GEMPAK PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gdas_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export model=${model:-gdas} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGDAS_ATMOS_GEMPAK diff --git a/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_12 b/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_12 new file mode 100755 index 0000000000..8ae9c25818 --- /dev/null +++ b/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_12 @@ -0,0 +1,118 @@ +#!/bin/sh + +#BSUB -J gdas_gempak_12 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_12.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=12 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GDAS GEMPAK PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gdas_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export model=${model:-gdas} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGDAS_ATMOS_GEMPAK diff --git a/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_18 b/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_18 new file mode 100755 index 0000000000..38441aacbd --- /dev/null +++ b/driver/product/run_JGDAS_ATMOS_GEMPAK_dell.sh_18 @@ -0,0 +1,119 @@ +#!/bin/sh + +#BSUB -J gdas_gempak_18 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_18.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=18 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GDAS GEMPAK PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gdas_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export model=${model:-gdas} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGDAS_ATMOS_GEMPAK diff --git a/driver/product/run_JGDAS_BULLS_NAVY_dell.sh_00 b/driver/product/run_JGDAS_BULLS_NAVY_dell.sh_00 deleted file mode 100755 index aa256eaf58..0000000000 --- a/driver/product/run_JGDAS_BULLS_NAVY_dell.sh_00 +++ /dev/null @@ -1,124 +0,0 @@ -#!/bin/sh - -#BSUB -J jgdas_bulls_navy_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_bulls_navy_00.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190903 - -export PDY1=`expr $PDY - 1` -export PDYm1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -############################################### -# GDAS BULLS NAVYL BULLETIN PRODUCT GENERATION -############################################### -# set envir=prod or para to test with data in prod or para -# export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gdas_bulls_navy_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/gempak/fix} -export USHgfs=${USHgfs:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})} - export COMINm1=${COMINm1:-$(compath.py ${NET}/${envir}/${RUN}.${PDYm1})} - export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY} ### Boi PARA - export COMINm1=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY1} ### Boi PARA - export COMINgdas=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN} ### Boi PARA - -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/${RUN}.${PDY} ### EMC PARA Realtime -# export COMINm1=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/${RUN}.${PDY1} ### EMC PARA Realtime -# export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/${RUN} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGDAS_BULLS_NAVY diff --git a/driver/product/run_JGDAS_BULLS_NAVY_dell.sh_12 b/driver/product/run_JGDAS_BULLS_NAVY_dell.sh_12 deleted file mode 100755 index 57df71f25b..0000000000 --- a/driver/product/run_JGDAS_BULLS_NAVY_dell.sh_12 +++ /dev/null @@ -1,124 +0,0 @@ -#!/bin/sh - -#BSUB -J jgdas_bulls_navy_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_bulls_navy_12.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190903 - -export PDY1=`expr $PDY - 1` -export PDYm1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -############################################### -# GDAS BULLS NAVYL BULLETIN PRODUCT GENERATION -############################################### -# set envir=prod or para to test with data in prod or para -# export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gdas_bulls_navy_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/gempak/fix} -export USHgfs=${USHgfs:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})} - export COMINm1=${COMINm1:-$(compath.py ${NET}/${envir}/${RUN}.${PDYm1})} - export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY} ### Boi PARA - export COMINm1=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY1} ### Boi PARA - export COMINgdas=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN} ### Boi PARA - -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/${RUN}.${PDY} ### EMC PARA Realtime -# export COMINm1=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/${RUN}.${PDY1} ### EMC PARA Realtime -# export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/${RUN} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGDAS_BULLS_NAVY diff --git a/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_00 b/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_00 deleted file mode 100755 index a46faeacdc..0000000000 --- a/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_00 +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/sh - -#BSUB -J jgdas_gempak_meta_ncdc_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_meta_ncdc_00.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GDAS GEMPAK META PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para -# export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gdas_gempak_meta_ncdc_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} -export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} - -else - - export COMIN=/gpfs/dell1/nco/ops/com/gfs/para/${RUN}.${PDY}/${cyc}/gempak ### NCO PARA Realtime -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/${RUN}.${PDY}/${cyc}/gempak ### EMC PARA Realtime -# export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/${RUN} ### EMC PARA Realtime -# export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA -# export COMINgdas=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN} ### Boi PARA -fi - -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py nawips/prod/ecmwf)} - -export COMOUTncdc=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak/meta - -export COMOUTukmet=${COMOUT} -export COMOUTecmwf=${COMOUT} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGDAS_GEMPAK_META_NCDC diff --git a/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_06 b/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_06 deleted file mode 100755 index 9ec2a213bf..0000000000 --- a/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_06 +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/sh - -#BSUB -J jgdas_gempak_meta_ncdc_06 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_meta_ncdc_06.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=06 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GDAS GEMPAK META PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para -# export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gdas_gempak_meta_ncdc_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} -export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} - -else - - export COMIN=/gpfs/dell1/nco/ops/com/gfs/para/${RUN}.${PDY}/${cyc}/gempak ### NCO PARA Realtime -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/${RUN}.${PDY}/${cyc}/gempak ### EMC PARA Realtime -# export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/${RUN} ### EMC PARA Realtime -# export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA -# export COMINgdas=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN} ### Boi PARA -fi - -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py nawips/prod/ecmwf)} - -export COMOUTncdc=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak/meta - -export COMOUTukmet=${COMOUT} -export COMOUTecmwf=${COMOUT} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGDAS_GEMPAK_META_NCDC diff --git a/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_12 b/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_12 deleted file mode 100755 index 1c6ec05b31..0000000000 --- a/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_12 +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/sh - -#BSUB -J jgdas_gempak_meta_ncdc_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_meta_ncdc_12.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GDAS GEMPAK META PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para -# export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gdas_gempak_meta_ncdc_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} -export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} - -else - - export COMIN=/gpfs/dell1/nco/ops/com/gfs/para/${RUN}.${PDY}/${cyc}/gempak ### NCO PARA Realtime -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/${RUN}.${PDY}/${cyc}/gempak ### EMC PARA Realtime -# export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/${RUN} ### EMC PARA Realtime -# export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA -# export COMINgdas=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN} ### Boi PARA -fi - -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py nawips/prod/ecmwf)} - -export COMOUTncdc=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak/meta - -export COMOUTukmet=${COMOUT} -export COMOUTecmwf=${COMOUT} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGDAS_GEMPAK_META_NCDC diff --git a/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_18 b/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_18 deleted file mode 100755 index b6adf20034..0000000000 --- a/driver/product/run_JGDAS_GEMPAK_META_NCDC_dell.sh_18 +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/sh - -#BSUB -J jgdas_gempak_meta_ncdc_18 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_meta_ncdc_18.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=18 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GDAS GEMPAK META PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para -# export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gdas_gempak_meta_ncdc_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} -export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} - -else - - export COMIN=/gpfs/dell1/nco/ops/com/gfs/para/${RUN}.${PDY}/${cyc}/gempak ### NCO PARA Realtime -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/${RUN}.${PDY}/${cyc}/gempak ### EMC PARA Realtime -# export COMINgdas=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/${RUN} ### EMC PARA Realtime -# export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA -# export COMINgdas=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN} ### Boi PARA -fi - -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py nawips/prod/ecmwf)} - -export COMOUTncdc=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak/meta - -export COMOUTukmet=${COMOUT} -export COMOUTecmwf=${COMOUT} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGDAS_GEMPAK_META_NCDC diff --git a/driver/product/run_JGDAS_GEMPAK_dell.sh_00 b/driver/product/run_JGDAS_GEMPAK_dell.sh_00 deleted file mode 100755 index 2c1e79b3bf..0000000000 --- a/driver/product/run_JGDAS_GEMPAK_dell.sh_00 +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh - -#BSUB -J gdas_gempak_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_00.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GDAS GEMPAK PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para -# export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gdas_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else -# export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA - export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGDAS_GEMPAK diff --git a/driver/product/run_JGDAS_GEMPAK_dell.sh_06 b/driver/product/run_JGDAS_GEMPAK_dell.sh_06 deleted file mode 100755 index f151af2458..0000000000 --- a/driver/product/run_JGDAS_GEMPAK_dell.sh_06 +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh - -#BSUB -J gdas_gempak_06 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_06.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=06 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GDAS GEMPAK PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gdas_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGDAS_GEMPAK diff --git a/driver/product/run_JGDAS_GEMPAK_dell.sh_12 b/driver/product/run_JGDAS_GEMPAK_dell.sh_12 deleted file mode 100755 index 0e3a48c9b0..0000000000 --- a/driver/product/run_JGDAS_GEMPAK_dell.sh_12 +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh - -#BSUB -J gdas_gempak_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_12.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GDAS GEMPAK PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gdas_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGDAS_GEMPAK diff --git a/driver/product/run_JGDAS_GEMPAK_dell.sh_18 b/driver/product/run_JGDAS_GEMPAK_dell.sh_18 deleted file mode 100755 index 4b875b833c..0000000000 --- a/driver/product/run_JGDAS_GEMPAK_dell.sh_18 +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh - -#BSUB -J gdas_gempak_18 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gdas_gempak_18.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=18 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GDAS GEMPAK PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gdas_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGDAS_GEMPAK diff --git a/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_00 b/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_00 new file mode 100755 index 0000000000..f796569dd6 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_00 @@ -0,0 +1,123 @@ +#!/bin/sh + +#BSUB -J jgfs_awips_f012_20km_1p00_00 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f012_20km_1p00_00.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=00 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +################################################ +# GFS_AWIPS_20KM_1P00 AWIPS PRODUCT GENERATION +################################################ + +export fcsthrs=012 + +############################################ +# user defined +############################################ +# set envir=para or para to test with data in prod or para +# export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_awips_f${fcsthrs}_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +export MPIRUN_AWIPSCFP="mpirun -n 4 cfp " + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG diff --git a/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_06 b/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_06 new file mode 100755 index 0000000000..7ee93467bd --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_06 @@ -0,0 +1,123 @@ +#!/bin/sh + +#BSUB -J jgfs_awips_f012_20km_1p00_06 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f012_20km_1p00_06.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=06 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +################################################ +# GFS_AWIPS_20KM_1P00 AWIPS PRODUCT GENERATION +################################################ + +export fcsthrs=012 + +############################################ +# user defined +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_awips_f${fcsthrs}_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +export MPIRUN_AWIPSCFP="mpirun -n 4 cfp " + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG diff --git a/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_12 b/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_12 new file mode 100755 index 0000000000..b115bee0a1 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_12 @@ -0,0 +1,123 @@ +#!/bin/sh + +#BSUB -J jgfs_awips_f012_20km_1p00_12 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f012_20km_1p00_12.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=12 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +################################################ +# GFS_AWIPS_20KM_1P00 AWIPS PRODUCT GENERATION +################################################ + +export fcsthrs=012 + +############################################ +# user defined +############################################ +# set envir=para or para to test with data in prod or para + export envir=para +# export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_awips_f${fcsthrs}_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +export MPIRUN_AWIPSCFP="mpirun -n 4 cfp " + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG diff --git a/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_18 b/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_18 new file mode 100755 index 0000000000..69124df7f4 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_18 @@ -0,0 +1,123 @@ +#!/bin/sh + +#BSUB -J jgfs_awips_f012_20km_1p00_18 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f012_20km_1p00_18.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=18 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +################################################ +# GFS_AWIPS_20KM_1P00 AWIPS PRODUCT GENERATION +################################################ + +export fcsthrs=012 + +############################################ +# user defined +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_awips_f${fcsthrs}_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +export MPIRUN_AWIPSCFP="mpirun -n 4 cfp " + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG diff --git a/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_00 b/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_00 new file mode 100755 index 0000000000..cea1667c3b --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_00 @@ -0,0 +1,121 @@ +#!/bin/sh + +#BSUB -J jgfs_awips_f12_00 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f12_00.o%J +#BSUB -q debug +#BSUB -n 4 # number of tasks +#BSUB -R span[ptile=2] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=00 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +######################################## +# GFS_AWIPS_G2 AWIPS PRODUCT GENERATION +######################################## + +export fcsthrs=012 + +############################################ +# User Define COM, COMOUTwmo, COMIN directories +############################################ +# set envir=para or para to test with data in prod or para + export envir=para +export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_awips_f${fcsthrs}_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 diff --git a/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_06 b/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_06 new file mode 100755 index 0000000000..ac96fa6ceb --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_06 @@ -0,0 +1,121 @@ +#!/bin/sh + +#BSUB -J jgfs_awips_f12_06 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f12_06.o%J +#BSUB -q debug +#BSUB -n 4 # number of tasks +#BSUB -R span[ptile=2] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=06 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +######################################## +# GFS_AWIPS_G2 AWIPS PRODUCT GENERATION +######################################## + +export fcsthrs=012 + +############################################ +# User Define COM, COMOUTwmo, COMIN directories +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_awips_f${fcsthrs}_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 diff --git a/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_12 b/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_12 new file mode 100755 index 0000000000..59175f1b05 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_12 @@ -0,0 +1,121 @@ +#!/bin/sh + +#BSUB -J jgfs_awips_f12_12 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f12_12.o%J +#BSUB -q debug +#BSUB -n 4 # number of tasks +#BSUB -R span[ptile=2] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=12 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +######################################## +# GFS_AWIPS_G2 AWIPS PRODUCT GENERATION +######################################## + +export fcsthrs=012 + +############################################ +# User Define COM, COMOUTwmo, COMIN directories +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_awips_f${fcsthrs}_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 diff --git a/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_18 b/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_18 new file mode 100755 index 0000000000..7826e2c5d7 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_AWIPS_G2_dell.sh_18 @@ -0,0 +1,121 @@ +#!/bin/sh + +#BSUB -J jgfs_awips_f12_18 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f12_18.o%J +#BSUB -q debug +#BSUB -n 4 # number of tasks +#BSUB -R span[ptile=2] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=18 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +######################################## +# GFS_AWIPS_G2 AWIPS PRODUCT GENERATION +######################################## + +export fcsthrs=012 + +############################################ +# User Define COM, COMOUTwmo, COMIN directories +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_awips_f${fcsthrs}_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 diff --git a/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_00 b/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_00 new file mode 100755 index 0000000000..38686454bd --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_00 @@ -0,0 +1,113 @@ +#!/bin/sh + +#BSUB -J gfs_fbwind_00 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_fbwind_00.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=00 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +# set envir=para or para to test with data in prod or para + export envir=para +export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_fbwind_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_FBWIND diff --git a/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_06 b/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_06 new file mode 100755 index 0000000000..bea42a7e22 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_06 @@ -0,0 +1,113 @@ +#!/bin/sh + +#BSUB -J gfs_fbwind_06 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_fbwind_06.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=06 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_fbwind_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_FBWIND diff --git a/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_12 b/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_12 new file mode 100755 index 0000000000..bab3ba0612 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_12 @@ -0,0 +1,113 @@ +#!/bin/sh + +#BSUB -J gfs_fbwind_12 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_fbwind_12.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=12 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +# set envir=para or para to test with data in prod or para + export envir=para +# export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_fbwind_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_FBWIND diff --git a/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_18 b/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_18 new file mode 100755 index 0000000000..de6b7fae14 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_FBWIND_dell.sh_18 @@ -0,0 +1,113 @@ +#!/bin/sh + +#BSUB -J gfs_fbwind_18 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_fbwind_18.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=18 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_fbwind_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_FBWIND diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_00 b/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_00 new file mode 100755 index 0000000000..359337ea00 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_00 @@ -0,0 +1,131 @@ +#!/bin/sh + +#BSUB -J gfs_gempak_meta_00 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_meta_00.o%J +#BSUB -q debug +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -n 28 # 28 tasks +#BSUB -R span[ptile=14] # 14 task per node +#BSUB -R affinity[core(1):distribute=balance] # using 14 cores on node and bind to 1 + # core per task and distribute across sockets + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200114 + +export PDY1=`expr $PDY - 1` + +export cyc=00 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_meta_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################# +#set the fcst hrs for all the cycles +############################################# +export fhbeg=00 +export fhend=384 +export fhinc=12 + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p -m 775 $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} + export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime + export COMINgempak=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para ### EMC PARA Realtime + +fi +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} +export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} +export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} + +if [ ! -f $COMOUT ] ; then + mkdir -p -m 775 $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_META diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_06 b/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_06 new file mode 100755 index 0000000000..e9413d4053 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_06 @@ -0,0 +1,131 @@ +#!/bin/sh + +#BSUB -J gfs_gempak_meta_06 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_meta_06.o%J +#BSUB -q debug +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -n 28 # 28 tasks +#BSUB -R span[ptile=14] # 14 task per node +#BSUB -R affinity[core(1):distribute=balance] # using 14 cores on node and bind to 1 + # core per task and distribute across sockets + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=06 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_meta_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################# +#set the fcst hrs for all the cycles +############################################# +export fhbeg=00 +export fhend=384 +export fhinc=12 + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p -m 775 $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} + export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime + export COMINgempak=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para ### EMC PARA Realtime + +fi +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} +export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} +export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} + +if [ ! -f $COMOUT ] ; then + mkdir -p -m 775 $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_META diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_12 b/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_12 new file mode 100755 index 0000000000..cc15bb32d3 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_12 @@ -0,0 +1,133 @@ +#!/bin/sh + +#BSUB -J gfs_gempak_meta_12 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_meta_12.o%J +#BSUB -q debug +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -n 28 # 28 tasks +#BSUB -R span[ptile=14] # 14 task per node +#BSUB -R affinity[core(1):distribute=balance] # using 14 cores on node and bind to 1 + # core per task and distribute across sockets + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=12 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_meta_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################# +#set the fcst hrs for all the cycles +############################################# +export fhbeg=00 +export fhend=384 +export fhinc=12 + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p -m 775 $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} + export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} +else +# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime +# export COMINgempak=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para ### EMC PARA Realtime + export COMIN=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/para/gfs.20200922/12/atmos/gempak + export COMINgempak=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/para + +fi +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} +export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} +export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} + +if [ ! -f $COMOUT ] ; then + mkdir -p -m 775 $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_META diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_18 b/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_18 new file mode 100755 index 0000000000..19be9606a7 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_META_dell.sh_18 @@ -0,0 +1,131 @@ +#!/bin/sh + +#BSUB -J gfs_gempak_meta_18 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_meta_18.o%J +#BSUB -q debug +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -n 28 # 28 tasks +#BSUB -R span[ptile=14] # 14 task per node +#BSUB -R affinity[core(1):distribute=balance] # using 14 cores on node and bind to 1 + # core per task and distribute across sockets + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=18 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_meta_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################# +#set the fcst hrs for all the cycles +############################################# +export fhbeg=00 +export fhend=384 +export fhinc=12 + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p -m 775 $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} + export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime + export COMINgempak=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para ### EMC PARA Realtime + +fi +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak/meta + +export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} +export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} +export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} + +if [ ! -f $COMOUT ] ; then + mkdir -p -m 775 $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_META diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_00 b/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_00 new file mode 100755 index 0000000000..7f52fe5e16 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_00 @@ -0,0 +1,123 @@ +#!/bin/sh + +#BSUB -J jgfs_gempak_upapgif_00 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_upapgif_00.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200114 + +export PDY1=`expr $PDY - 1` + +export cyc=00 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## + +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_upapgif_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export MODEL=GFS + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} + export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime + export COMINgfs=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_06 b/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_06 new file mode 100755 index 0000000000..bd17a3725c --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_06 @@ -0,0 +1,123 @@ +#!/bin/sh + +#BSUB -J jgfs_gempak_upapgif_06 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_upapgif_06.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=06 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## + +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_upapgif_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export MODEL=GFS + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} + export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime + export COMINgfs=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_12 b/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_12 new file mode 100755 index 0000000000..16a86904d6 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_12 @@ -0,0 +1,125 @@ +#!/bin/sh + +#BSUB -J jgfs_gempak_upapgif_12 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_upapgif_12.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=12 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## + +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_upapgif_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export MODEL=GFS + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} + export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} +else +# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime +# export COMINgfs=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + + export COMIN=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/para/gfs.20200922/12/atmos/gempak *** Boi PARA realtime + export COMINgfs=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/para/gfs.20200922/12/atmos *** Boi PARA realtime +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_18 b/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_18 new file mode 100755 index 0000000000..2a78d848d0 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_18 @@ -0,0 +1,123 @@ +#!/bin/sh + +#BSUB -J jgfs_gempak_upapgif_18 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_upapgif_18.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=18 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## + +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_upapgif_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export MODEL=GFS + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} + export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos/gempak ### EMC PARA Realtime + export COMINgfs=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_00 b/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_00 new file mode 100755 index 0000000000..7b906e14d5 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_00 @@ -0,0 +1,139 @@ +#!/bin/sh + +#BSUB -J jgfs_pgrb2_spec_gempak_00 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_gempak_00.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=2] # 2 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 +export PDY1=`expr $PDY - 1` + +export cyc=00 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION +############################################ + +export LAUNCH_MODE=MPI + +############################################### +# Set MP variables +############################################### +export OMP_NUM_THREADS=1 +export MP_LABELIO=yes +export MP_PULSE=0 +export MP_DEBUG_NOTIMEOUT=yes + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## + +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_pgrb2_spec_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=gfs + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}} + export COMIN=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/prod/gfs.20200922/00 +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${NET}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +################################################################# +# Execute the script for the regular grib +################################################################# +export DATA_HOLD=$DATA +export DATA=$DATA_HOLD/SPECIAL +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_06 b/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_06 new file mode 100755 index 0000000000..b7c5bd9067 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_06 @@ -0,0 +1,138 @@ +#!/bin/sh + +#BSUB -J jgfs_pgrb2_spec_gempak_06 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_gempak_06.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=2] # 2 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 +export PDY1=`expr $PDY - 1` + +export cyc=06 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION +############################################ + +export LAUNCH_MODE=MPI + +############################################### +# Set MP variables +############################################### +export OMP_NUM_THREADS=1 +export MP_LABELIO=yes +export MP_PULSE=0 +export MP_DEBUG_NOTIMEOUT=yes + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## + +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_pgrb2_spec_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=gfs + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}} +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${NET}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +################################################################# +# Execute the script for the regular grib +################################################################# +export DATA_HOLD=$DATA +export DATA=$DATA_HOLD/SPECIAL +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_12 b/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_12 new file mode 100755 index 0000000000..80cd68ed52 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_12 @@ -0,0 +1,140 @@ +#!/bin/sh + +#BSUB -J jgfs_pgrb2_spec_gempak_12 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_gempak_12.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=2] # 2 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 +export PDY1=`expr $PDY - 1` + +export cyc=12 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION +############################################ + +export LAUNCH_MODE=MPI + +############################################### +# Set MP variables +############################################### +export OMP_NUM_THREADS=1 +export MP_LABELIO=yes +export MP_PULSE=0 +export MP_DEBUG_NOTIMEOUT=yes + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## + +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_pgrb2_spec_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=gfs + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}} + export COMIN=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/prod/gfs.20200922/12 +else +# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + export COMIN=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/para/gfs.20200922/12/atmos %%%% Boi PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${NET}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +################################################################# +# Execute the script for the regular grib +################################################################# +export DATA_HOLD=$DATA +export DATA=$DATA_HOLD/SPECIAL +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_18 b/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_18 new file mode 100755 index 0000000000..5a455d5577 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_18 @@ -0,0 +1,138 @@ +#!/bin/sh + +#BSUB -J jgfs_pgrb2_spec_gempak_18 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_gempak_18.o%J +#BSUB -q debug +#BSUB -n 2 # number of tasks +#BSUB -R span[ptile=2] # 2 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 +export PDY1=`expr $PDY - 1` + +export cyc=18 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION +############################################ + +export LAUNCH_MODE=MPI + +############################################### +# Set MP variables +############################################### +export OMP_NUM_THREADS=1 +export MP_LABELIO=yes +export MP_PULSE=0 +export MP_DEBUG_NOTIMEOUT=yes + +############################################## +# Define COM, COMOUTwmo, COMIN directories +############################################## + +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_pgrb2_spec_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=gfs + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}} +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${NET}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +################################################################# +# Execute the script for the regular grib +################################################################# +export DATA_HOLD=$DATA +export DATA=$DATA_HOLD/SPECIAL +mkdir -p $DATA +cd $DATA + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_00 b/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_00 new file mode 100755 index 0000000000..4fa3355b6e --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_00 @@ -0,0 +1,119 @@ +#!/bin/sh + +#BSUB -J gfs_gempak_00 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_00.o%J +#BSUB -q debug +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -n 24 # 24 tasks +#BSUB -R span[ptile=12] # 12 task per node +#BSUB -R affinity[core(1):distribute=balance] # using 12 cores on node and bind to 1 core per task and distribute across sockets + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=00 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# Define COM, COMOUTwmo, COMIN directories +############################################ +# set envir=para or para to test with data in prod or para + export envir=para +export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else +# export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA +# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs.20200922/00 +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_06 b/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_06 new file mode 100755 index 0000000000..7dc444431f --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_06 @@ -0,0 +1,119 @@ +#!/bin/sh + +#BSUB -J gfs_gempak_06 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_06.o%J +#BSUB -q debug +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -n 24 # 24 tasks +#BSUB -R span[ptile=12] # 12 task per node +#BSUB -R affinity[core(1):distribute=balance] # using 12 cores on node and bind to 1 core per task and distribute across sockets + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=06 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# Define COM, COMOUTwmo, COMIN directories +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else +# export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/gfs.${PDY}/${cyc}/atmos ### EMC PARA Realtime + export ILPOST=3 +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_12 b/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_12 new file mode 100755 index 0000000000..42ccc2faa5 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_12 @@ -0,0 +1,119 @@ +#!/bin/sh + +#BSUB -J gfs_gempak_12 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_12.o%J +#BSUB -q debug +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -n 24 # 24 tasks +#BSUB -R span[ptile=12] # 12 task per node +#BSUB -R affinity[core(1):distribute=balance] # using 12 cores on node and bind to 1 core per task and distribute across sockets + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=12 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# Define COM, COMOUTwmo, COMIN directories +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else +# export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/gfs.${PDY}/${cyc}/atmos ### EMC PARA Realtime + export ILPOST=3 +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK diff --git a/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_18 b/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_18 new file mode 100755 index 0000000000..4d6aa38911 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_GEMPAK_dell.sh_18 @@ -0,0 +1,119 @@ +#!/bin/sh + +#BSUB -J gfs_gempak_18 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_18.o%J +#BSUB -q debug +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -n 24 # 24 tasks +#BSUB -R span[ptile=12] # 12 task per node +#BSUB -R affinity[core(1):distribute=balance] # using 12 cores on node and bind to 1 core per task and distribute across sockets + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=18 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +#################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +########################################### +# Now set up GEMPAK/NTRANS environment +########################################### +module load gempak/7.3.3 +module list + +############################################ +# Define COM, COMOUTwmo, COMIN directories +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_gempak_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else +# export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/gfs.${PDY}/${cyc}/atmos ### EMC PARA Realtime + export ILPOST=3 +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos/gempak + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_GEMPAK diff --git a/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_00 b/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_00 new file mode 100755 index 0000000000..e288c4d488 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_00 @@ -0,0 +1,116 @@ +#!/bin/sh + +#BSUB -J jgfs_pgrb2_spec_npoess_00 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_npoess_00.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=00 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +############################################ +# GFS PGRB2_SPECIAL_POST PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_pgrb2_spec_npoess_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS diff --git a/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_06 b/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_06 new file mode 100755 index 0000000000..ca1da8d8fa --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_06 @@ -0,0 +1,116 @@ +#!/bin/sh + +#BSUB -J jgfs_pgrb2_spec_npoess_06 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_npoess_06.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=06 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +############################################ +# GFS PGRB2_SPECIAL_POST PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_pgrb2_spec_npoess_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS diff --git a/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_12 b/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_12 new file mode 100755 index 0000000000..304fa2ede9 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_12 @@ -0,0 +1,117 @@ +#!/bin/sh + +#BSUB -J jgfs_pgrb2_spec_npoess_12 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_npoess_12.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=12 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +############################################ +# GFS PGRB2_SPECIAL_POST PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_pgrb2_spec_npoess_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD + export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/gfs.20200922/12 +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS diff --git a/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_18 b/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_18 new file mode 100755 index 0000000000..e1e0085826 --- /dev/null +++ b/driver/product/run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_18 @@ -0,0 +1,116 @@ +#!/bin/sh + +#BSUB -J jgfs_pgrb2_spec_npoess_18 +#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_npoess_18.o%J +#BSUB -q debug +#BSUB -n 1 # number of tasks +#BSUB -R span[ptile=1] # 1 task per node +#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output +#BSUB -W 00:30 +#BSUB -P GFS-DEV +#BSUB -R affinity[core(1):distribute=balance] + +export KMP_AFFINITY=disabled + +export PDY=`date -u +%Y%m%d` +export PDY=20200922 + +export PDY1=`expr $PDY - 1` + +export cyc=18 +export cycle=t${cyc}z + +set -xa +export PS4='$SECONDS + ' +date + +#################################### +## Load the GRIB Utilities module +##################################### +module load EnvVars/1.0.2 +module load ips/18.0.1.163 +module load CFP/2.0.1 +module load impi/18.0.1 +module load lsf/10.1 +module load prod_util/1.1.4 +module load prod_envir/1.0.3 +module load grib_util/1.1.0 +module list + +############################################ +# GFS PGRB2_SPECIAL_POST PRODUCT GENERATION +############################################ +# set envir=para or para to test with data in prod or para + export envir=para + export envir=para + +export SENDCOM=YES +export KEEPDATA=YES +export job=gfs_pgrb2_spec_npoess_${cyc} +export pid=${pid:-$$} +export jobid=${job}.${pid} + +# Set FAKE DBNET for testing +export SENDDBN=YES +export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn + +export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output +export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git +export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com + +mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles +export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} + +############################################################# +# Specify versions +############################################################# +export gfs_ver=v16.0.0 + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid}} +mkdir -p $DATA +cd $DATA + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} + +############################################## +# Define COM directories +############################################## +if [ $envir = "prod" ] ; then +# This setting is for testing with GFS (production) + export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD +else + export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/gfs/para/${RUN}.${PDY}/${cyc}/atmos ### EMC PARA Realtime + +fi + +export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/atmos +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +############################################# +# run the GFS job +############################################# +sh $HOMEgfs/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS diff --git a/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_00 b/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_00 deleted file mode 100755 index 4bca270e13..0000000000 --- a/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_00 +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_awips_f012_20km_1p00_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f012_20km_1p00_00.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -################################################ -# GFS_AWIPS_20KM_1P00 AWIPS PRODUCT GENERATION -################################################ - -export fcsthrs=012 - -############################################ -# user defined -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_awips_f${fcsthrs}_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -export MPIRUN_AWIPSCFP="mpirun -n 4 cfp " - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG diff --git a/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_06 b/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_06 deleted file mode 100755 index e741bd9574..0000000000 --- a/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_06 +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_awips_f012_20km_1p00_06 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f012_20km_1p00_06.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=06 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -################################################ -# GFS_AWIPS_20KM_1P00 AWIPS PRODUCT GENERATION -################################################ - -export fcsthrs=012 - -############################################ -# user defined -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_awips_f${fcsthrs}_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -export MPIRUN_AWIPSCFP="mpirun -n 4 cfp " - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG diff --git a/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_12 b/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_12 deleted file mode 100755 index c13d0d1bf0..0000000000 --- a/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_12 +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_awips_f012_20km_1p00_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f012_20km_1p00_12.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -################################################ -# GFS_AWIPS_20KM_1P00 AWIPS PRODUCT GENERATION -################################################ - -export fcsthrs=012 - -############################################ -# user defined -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_awips_f${fcsthrs}_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -export MPIRUN_AWIPSCFP="mpirun -n 4 cfp " - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG diff --git a/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_18 b/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_18 deleted file mode 100755 index dfab05cc72..0000000000 --- a/driver/product/run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_18 +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_awips_f012_20km_1p00_18 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f012_20km_1p00_18.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=18 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -################################################ -# GFS_AWIPS_20KM_1P00 AWIPS PRODUCT GENERATION -################################################ - -export fcsthrs=012 - -############################################ -# user defined -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_awips_f${fcsthrs}_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -export MPIRUN_AWIPSCFP="mpirun -n 4 cfp " - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG diff --git a/driver/product/run_JGFS_AWIPS_G2_dell.sh_00 b/driver/product/run_JGFS_AWIPS_G2_dell.sh_00 deleted file mode 100755 index 14e7a04e30..0000000000 --- a/driver/product/run_JGFS_AWIPS_G2_dell.sh_00 +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_awips_f12_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f12_00.o%J -#BSUB -q debug -#BSUB -n 4 # number of tasks -#BSUB -R span[ptile=2] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -######################################## -# GFS_AWIPS_G2 AWIPS PRODUCT GENERATION -######################################## - -export fcsthrs=012 - -############################################ -# User Define COM, COMOUTwmo, COMIN directories -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_awips_f${fcsthrs}_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_AWIPS_G2 diff --git a/driver/product/run_JGFS_AWIPS_G2_dell.sh_06 b/driver/product/run_JGFS_AWIPS_G2_dell.sh_06 deleted file mode 100755 index db124f3f59..0000000000 --- a/driver/product/run_JGFS_AWIPS_G2_dell.sh_06 +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_awips_f12_06 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f12_06.o%J -#BSUB -q debug -#BSUB -n 4 # number of tasks -#BSUB -R span[ptile=2] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=06 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -######################################## -# GFS_AWIPS_G2 AWIPS PRODUCT GENERATION -######################################## - -export fcsthrs=012 - -############################################ -# User Define COM, COMOUTwmo, COMIN directories -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_awips_f${fcsthrs}_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_AWIPS_G2 diff --git a/driver/product/run_JGFS_AWIPS_G2_dell.sh_12 b/driver/product/run_JGFS_AWIPS_G2_dell.sh_12 deleted file mode 100755 index 6d69a2c60d..0000000000 --- a/driver/product/run_JGFS_AWIPS_G2_dell.sh_12 +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_awips_f12_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f12_12.o%J -#BSUB -q debug -#BSUB -n 4 # number of tasks -#BSUB -R span[ptile=2] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -######################################## -# GFS_AWIPS_G2 AWIPS PRODUCT GENERATION -######################################## - -export fcsthrs=012 - -############################################ -# User Define COM, COMOUTwmo, COMIN directories -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_awips_f${fcsthrs}_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_AWIPS_G2 diff --git a/driver/product/run_JGFS_AWIPS_G2_dell.sh_18 b/driver/product/run_JGFS_AWIPS_G2_dell.sh_18 deleted file mode 100755 index b0c51418e3..0000000000 --- a/driver/product/run_JGFS_AWIPS_G2_dell.sh_18 +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_awips_f12_18 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_awips_f12_18.o%J -#BSUB -q debug -#BSUB -n 4 # number of tasks -#BSUB -R span[ptile=2] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=18 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -######################################## -# GFS_AWIPS_G2 AWIPS PRODUCT GENERATION -######################################## - -export fcsthrs=012 - -############################################ -# User Define COM, COMOUTwmo, COMIN directories -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_awips_f${fcsthrs}_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_AWIPS_G2 diff --git a/driver/product/run_JGFS_FBWIND_dell.sh_00 b/driver/product/run_JGFS_FBWIND_dell.sh_00 deleted file mode 100755 index c193663938..0000000000 --- a/driver/product/run_JGFS_FBWIND_dell.sh_00 +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_fbwind_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_fbwind_00.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_fbwind_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_FBWIND diff --git a/driver/product/run_JGFS_FBWIND_dell.sh_06 b/driver/product/run_JGFS_FBWIND_dell.sh_06 deleted file mode 100755 index f7cedf6e80..0000000000 --- a/driver/product/run_JGFS_FBWIND_dell.sh_06 +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_fbwind_06 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_fbwind_06.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=06 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_fbwind_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_FBWIND diff --git a/driver/product/run_JGFS_FBWIND_dell.sh_12 b/driver/product/run_JGFS_FBWIND_dell.sh_12 deleted file mode 100755 index f49bd9c387..0000000000 --- a/driver/product/run_JGFS_FBWIND_dell.sh_12 +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_fbwind_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_fbwind_12.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_fbwind_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_FBWIND diff --git a/driver/product/run_JGFS_FBWIND_dell.sh_18 b/driver/product/run_JGFS_FBWIND_dell.sh_18 deleted file mode 100755 index f047ac64df..0000000000 --- a/driver/product/run_JGFS_FBWIND_dell.sh_18 +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_fbwind_18 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_fbwind_18.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=18 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_fbwind_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_FBWIND diff --git a/driver/product/run_JGFS_GEMPAK_META_dell.sh_00 b/driver/product/run_JGFS_GEMPAK_META_dell.sh_00 deleted file mode 100755 index 74f53aa436..0000000000 --- a/driver/product/run_JGFS_GEMPAK_META_dell.sh_00 +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_gempak_meta_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_meta_00.o%J -#BSUB -q debug -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -n 28 # 28 tasks -#BSUB -R span[ptile=14] # 14 task per node -#BSUB -R affinity[core(1):distribute=balance] # using 14 cores on node and bind to 1 - # core per task and distribute across sockets - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_meta_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################# -#set the fcst hrs for all the cycles -############################################# -export fhbeg=00 -export fhend=384 -export fhinc=12 - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p -m 775 $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} - export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} -else -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/gfs.${PDY}/${cyc}/gempak ### EMC PARA Realtime -# export COMINgempak=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1 ### EMC PARA Realtime - - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA - export COMINgempak=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir} ### Boi PARA -fi - -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py nawips/prod/ecmwf)} -export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak/meta - -if [ ! -f $COMOUT ] ; then - mkdir -p -m 775 $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK_META diff --git a/driver/product/run_JGFS_GEMPAK_META_dell.sh_06 b/driver/product/run_JGFS_GEMPAK_META_dell.sh_06 deleted file mode 100755 index 1e5456c210..0000000000 --- a/driver/product/run_JGFS_GEMPAK_META_dell.sh_06 +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_gempak_meta_06 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_meta_06.o%J -#BSUB -q debug -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -n 28 # 28 tasks -#BSUB -R span[ptile=14] # 14 task per node -#BSUB -R affinity[core(1):distribute=balance] # using 14 cores on node and bind to 1 - # core per task and distribute across sockets - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=06 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_meta_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################# -#set the fcst hrs for all the cycles -############################################# -export fhbeg=00 -export fhend=384 -export fhinc=12 - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p -m 775 $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} - export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} -else -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/gfs.${PDY}/${cyc}/gempak ### EMC PARA Realtime -# export COMINgempak=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1 ### EMC PARA Realtime - - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA - export COMINgempak=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir} ### Boi PARA -fi - -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py nawips/prod/ecmwf)} -export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak/meta - -if [ ! -f $COMOUT ] ; then - mkdir -p -m 775 $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK_META diff --git a/driver/product/run_JGFS_GEMPAK_META_dell.sh_12 b/driver/product/run_JGFS_GEMPAK_META_dell.sh_12 deleted file mode 100755 index 14fdabd535..0000000000 --- a/driver/product/run_JGFS_GEMPAK_META_dell.sh_12 +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_gempak_meta_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_meta_12.o%J -#BSUB -q debug -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -n 28 # 28 tasks -#BSUB -R span[ptile=14] # 14 task per node -#BSUB -R affinity[core(1):distribute=balance] # using 14 cores on node and bind to 1 - # core per task and distribute across sockets - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_meta_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################# -#set the fcst hrs for all the cycles -############################################# -export fhbeg=00 -export fhend=384 -export fhinc=12 - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p -m 775 $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} - export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} -else -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/gfs.${PDY}/${cyc}/gempak ### EMC PARA Realtime -# export COMINgempak=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1 ### EMC PARA Realtime - - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA - export COMINgempak=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir} ### Boi PARA -fi - -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py nawips/prod/ecmwf)} -export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak/meta - -if [ ! -f $COMOUT ] ; then - mkdir -p -m 775 $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK_META diff --git a/driver/product/run_JGFS_GEMPAK_META_dell.sh_18 b/driver/product/run_JGFS_GEMPAK_META_dell.sh_18 deleted file mode 100755 index f2b1553e7e..0000000000 --- a/driver/product/run_JGFS_GEMPAK_META_dell.sh_18 +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_gempak_meta_18 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_meta_18.o%J -#BSUB -q debug -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -n 28 # 28 tasks -#BSUB -R span[ptile=14] # 14 task per node -#BSUB -R affinity[core(1):distribute=balance] # using 14 cores on node and bind to 1 - # core per task and distribute across sockets - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=18 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_meta_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################# -#set the fcst hrs for all the cycles -############################################# -export fhbeg=00 -export fhend=384 -export fhinc=12 - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p -m 775 $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} - export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} -else -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1/gfs.${PDY}/${cyc}/gempak ### EMC PARA Realtime -# export COMINgempak=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt1 ### EMC PARA Realtime - - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA - export COMINgempak=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir} ### Boi PARA -fi - -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py nawips/prod/ecmwf)} -export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak/meta - -if [ ! -f $COMOUT ] ; then - mkdir -p -m 775 $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK_META diff --git a/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_00 b/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_00 deleted file mode 100755 index 785e09f30c..0000000000 --- a/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_00 +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_gempak_upapgif_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_upapgif_00.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## - -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_upapgif_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} -export MODEL=GFS - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} - export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA - export COMINgfs=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc} -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK_NCDC_UPAPGIF diff --git a/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_06 b/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_06 deleted file mode 100755 index 09ced228bb..0000000000 --- a/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_06 +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_gempak_upapgif_06 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_upapgif_06.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=06 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## - -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_upapgif_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} -export MODEL=GFS - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} - export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA - export COMINgfs=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc} -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK_NCDC_UPAPGIF diff --git a/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_12 b/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_12 deleted file mode 100755 index 40d315203c..0000000000 --- a/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_12 +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_gempak_upapgif_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_upapgif_12.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## - -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_upapgif_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} -export MODEL=GFS - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} - export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA - export COMINgfs=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc} -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK_NCDC_UPAPGIF diff --git a/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_18 b/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_18 deleted file mode 100755 index ead98fc978..0000000000 --- a/driver/product/run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_18 +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_gempak_upapgif_18 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_upapgif_18.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=18 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## - -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_upapgif_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} -export MODEL=GFS - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} - export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak ### Boi PARA - export COMINgfs=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${NET}/${envir}/${RUN}.${PDY}/${cyc} -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK_NCDC_UPAPGIF diff --git a/driver/product/run_JGFS_GEMPAK_dell.sh_00 b/driver/product/run_JGFS_GEMPAK_dell.sh_00 deleted file mode 100755 index 1b4d796753..0000000000 --- a/driver/product/run_JGFS_GEMPAK_dell.sh_00 +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_gempak_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_00.o%J -#BSUB -q debug -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -n 24 # 24 tasks -#BSUB -R span[ptile=12] # 12 task per node -#BSUB -R affinity[core(1):distribute=balance] # using 12 cores on node and bind to 1 core per task and distribute across sockets - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# Define COM, COMOUTwmo, COMIN directories -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK diff --git a/driver/product/run_JGFS_GEMPAK_dell.sh_06 b/driver/product/run_JGFS_GEMPAK_dell.sh_06 deleted file mode 100755 index 37c3776ff4..0000000000 --- a/driver/product/run_JGFS_GEMPAK_dell.sh_06 +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_gempak_06 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_06.o%J -#BSUB -q debug -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -n 24 # 24 tasks -#BSUB -R span[ptile=12] # 12 task per node -#BSUB -R affinity[core(1):distribute=balance] # using 12 cores on node and bind to 1 core per task and distribute across sockets - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=06 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# Define COM, COMOUTwmo, COMIN directories -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK diff --git a/driver/product/run_JGFS_GEMPAK_dell.sh_12 b/driver/product/run_JGFS_GEMPAK_dell.sh_12 deleted file mode 100755 index 8d8c6f3027..0000000000 --- a/driver/product/run_JGFS_GEMPAK_dell.sh_12 +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_gempak_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_12.o%J -#BSUB -q debug -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -n 24 # 24 tasks -#BSUB -R span[ptile=12] # 12 task per node -#BSUB -R affinity[core(1):distribute=balance] # using 12 cores on node and bind to 1 core per task and distribute across sockets - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# Define COM, COMOUTwmo, COMIN directories -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK diff --git a/driver/product/run_JGFS_GEMPAK_dell.sh_18 b/driver/product/run_JGFS_GEMPAK_dell.sh_18 deleted file mode 100755 index 296a6b96b1..0000000000 --- a/driver/product/run_JGFS_GEMPAK_dell.sh_18 +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_gempak_18 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_gempak_18.o%J -#BSUB -q debug -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -n 24 # 24 tasks -#BSUB -R span[ptile=12] # 12 task per node -#BSUB -R affinity[core(1):distribute=balance] # using 12 cores on node and bind to 1 core per task and distribute across sockets - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=18 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# Define COM, COMOUTwmo, COMIN directories -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_GEMPAK diff --git a/driver/product/run_JGFS_NCEPPOST.sh b/driver/product/run_JGFS_NCEPPOST.sh index 05bd354b7f..88285cbf8d 100755 --- a/driver/product/run_JGFS_NCEPPOST.sh +++ b/driver/product/run_JGFS_NCEPPOST.sh @@ -16,7 +16,7 @@ ############################################################# # Function been tested: GFS master pgb file for a giving hour. # -# Calling sequence: run_JGFS_NCEPPOST.sh -> JGFS_NCEPPOST -> exgfs_nceppost.sh.ecf -> global_nceppost.sh -> ncep_post +# Calling sequence: run_JGFS_NCEPPOST.sh -> JGFS_NCEPPOST -> exgfs_nceppost.sh -> global_nceppost.sh -> ncep_post # # Initial condition: CDATE=2016020900 (where /global/noscrub/emc.glopara/com/gfs/para/gfs.${PDY}${cyc} has data # post_times="12" (Which hour of the master grib2 file to generate) diff --git a/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_00 b/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_00 deleted file mode 100755 index ea6dd55cfe..0000000000 --- a/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_00 +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_pgrb2_spec_gempak_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_gempak_00.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=2] # 2 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 -export PDY1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION -############################################ - -export LAUNCH_MODE=MPI - -############################################### -# Set MP variables -############################################### -export OMP_NUM_THREADS=1 -export MP_LABELIO=yes -export MP_PULSE=0 -export MP_DEBUG_NOTIMEOUT=yes - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## - -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_pgrb2_spec_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=gfs - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}} -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${NET}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -################################################################# -# Execute the script for the regular grib -################################################################# -export DATA_HOLD=$DATA -export DATA=$DATA_HOLD/SPECIAL -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_PGRB2_SPEC_GEMPAK diff --git a/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_06 b/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_06 deleted file mode 100755 index 4b41c1254c..0000000000 --- a/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_06 +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_pgrb2_spec_gempak_06 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_gempak_06.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=2] # 2 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 -export PDY1=`expr $PDY - 1` - -export cyc=06 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION -############################################ - -export LAUNCH_MODE=MPI - -############################################### -# Set MP variables -############################################### -export OMP_NUM_THREADS=1 -export MP_LABELIO=yes -export MP_PULSE=0 -export MP_DEBUG_NOTIMEOUT=yes - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## - -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_pgrb2_spec_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=gfs - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}} -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${NET}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -################################################################# -# Execute the script for the regular grib -################################################################# -export DATA_HOLD=$DATA -export DATA=$DATA_HOLD/SPECIAL -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_PGRB2_SPEC_GEMPAK diff --git a/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_12 b/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_12 deleted file mode 100755 index 153f1ba28d..0000000000 --- a/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_12 +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_pgrb2_spec_gempak_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_gempak_12.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=2] # 2 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 -export PDY1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION -############################################ - -export LAUNCH_MODE=MPI - -############################################### -# Set MP variables -############################################### -export OMP_NUM_THREADS=1 -export MP_LABELIO=yes -export MP_PULSE=0 -export MP_DEBUG_NOTIMEOUT=yes - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## - -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_pgrb2_spec_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=gfs - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}} -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${NET}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -################################################################# -# Execute the script for the regular grib -################################################################# -export DATA_HOLD=$DATA -export DATA=$DATA_HOLD/SPECIAL -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_PGRB2_SPEC_GEMPAK diff --git a/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_18 b/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_18 deleted file mode 100755 index 5157c58aa4..0000000000 --- a/driver/product/run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_18 +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_pgrb2_spec_gempak_18 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_gempak_18.o%J -#BSUB -q debug -#BSUB -n 2 # number of tasks -#BSUB -R span[ptile=2] # 2 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 -export PDY1=`expr $PDY - 1` - -export cyc=18 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -#################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -########################################### -# Now set up GEMPAK/NTRANS environment -########################################### -module load gempak/7.3.1 -module list - -############################################ -# GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION -############################################ - -export LAUNCH_MODE=MPI - -############################################### -# Set MP variables -############################################### -export OMP_NUM_THREADS=1 -export MP_LABELIO=yes -export MP_PULSE=0 -export MP_DEBUG_NOTIMEOUT=yes - -############################################## -# Define COM, COMOUTwmo, COMIN directories -############################################## - -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_pgrb2_spec_gempak_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=gfs - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}} -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${NET}.${PDY}/${cyc}/gempak - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -################################################################# -# Execute the script for the regular grib -################################################################# -export DATA_HOLD=$DATA -export DATA=$DATA_HOLD/SPECIAL -mkdir -p $DATA -cd $DATA - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_PGRB2_SPEC_GEMPAK diff --git a/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_00 b/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_00 deleted file mode 100755 index ce93ef06f3..0000000000 --- a/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_00 +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_pgrb2_spec_npoess_00 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_npoess_00.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=00 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -############################################ -# GFS PGRB2_SPECIAL_POST PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_pgrb2_spec_npoess_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_PGRB2_SPEC_NPOESS diff --git a/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_06 b/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_06 deleted file mode 100755 index ec22a80f35..0000000000 --- a/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_06 +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_pgrb2_spec_npoess_06 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_npoess_06.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=06 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -############################################ -# GFS PGRB2_SPECIAL_POST PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_pgrb2_spec_npoess_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_PGRB2_SPEC_NPOESS diff --git a/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_12 b/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_12 deleted file mode 100755 index 8be27ac95e..0000000000 --- a/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_12 +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_pgrb2_spec_npoess_12 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_npoess_12.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=12 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -############################################ -# GFS PGRB2_SPECIAL_POST PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_pgrb2_spec_npoess_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_PGRB2_SPEC_NPOESS diff --git a/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_18 b/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_18 deleted file mode 100755 index ff647c282f..0000000000 --- a/driver/product/run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_18 +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/sh - -#BSUB -J jgfs_pgrb2_spec_npoess_18 -#BSUB -o /gpfs/dell2/ptmp/Boi.Vuong/output/gfs_pgrb2_spec_npoess_18.o%J -#BSUB -q debug -#BSUB -n 1 # number of tasks -#BSUB -R span[ptile=1] # 1 task per node -#BSUB -cwd /gpfs/dell2/ptmp/Boi.Vuong/output -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core(1):distribute=balance] - -export KMP_AFFINITY=disabled - -export PDY=`date -u +%Y%m%d` -export PDY=20190829 - -export PDY1=`expr $PDY - 1` - -export cyc=18 -export cycle=t${cyc}z - -set -xa -export PS4='$SECONDS + ' -date - -#################################### -## Load the GRIB Utilities module -##################################### -module load EnvVars/1.0.2 -module load ips/18.0.1.163 -module load CFP/2.0.1 -module load impi/18.0.1 -module load lsf/10.1 -module load prod_util/1.1.3 -module load prod_envir/1.0.3 -module load grib_util/1.1.0 -module list - -############################################ -# GFS PGRB2_SPECIAL_POST PRODUCT GENERATION -############################################ -# set envir=prod or para to test with data in prod or para - export envir=para - export envir=prod - -export SENDCOM=YES -export KEEPDATA=YES -export job=gfs_pgrb2_spec_npoess_${cyc} -export pid=${pid:-$$} -export jobid=${job}.${pid} - -# Set FAKE DBNET for testing -export SENDDBN=YES -export DBNROOT=/gpfs/hps/nco/ops/nwprod/prod_util.v1.0.24/fakedbn - -export DATAROOT=/gpfs/dell2/ptmp/Boi.Vuong/output -export NWROOT=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git -export COMROOT2=/gpfs/dell2/ptmp/Boi.Vuong/com - -mkdir -m 775 -p ${COMROOT2} ${COMROOT2}/logs ${COMROOT2}/logs/jlogfiles -export jlogfile=${COMROOT2}/logs/jlogfiles/jlogfile.${jobid} - -############################################################# -# Specify versions -############################################################# -export gfs_ver=v15.2.0 - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid}} -mkdir -p $DATA -cd $DATA - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -if [ $envir = "prod" ] ; then -# This setting is for testing with GFS (production) - export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} ### NCO PROD -else - export COMIN=/gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/git/${RUN}.${PDY}/${cyc} ### Boi PARA -# export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/prfv3rt3b/gfs.${PDY}/${cyc} ### EMC PARA Realtime -fi - -export COMOUT=${COMROOT2}/${NET}/${envir}/${RUN}.${PDY}/${cyc} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -############################################# -# run the GFS job -############################################# -sh $HOMEgfs/jobs/JGFS_PGRB2_SPEC_NPOESS diff --git a/driver/product/run_JGFS_WAFS b/driver/product/run_JGFS_WAFS deleted file mode 100755 index 90d7e3e4c9..0000000000 --- a/driver/product/run_JGFS_WAFS +++ /dev/null @@ -1,158 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_wafs -#BSUB -oo /ptmpp1/Yali.Mao/gfs_wafs.o%J -#BSUB -eo /ptmpp1/Yali.Mao/gfs_wafs.o%J -#BSUB -L /bin/sh -#BSUB -q debug -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R rusage[mem=500] -#BSUB -R affinity[core] - -set -xa - -export OMP_NUM_THREADS=1 -export MP_MPILIB=mpich2 -export MP_EUILIB=us -export MP_LABELIO=yes -export MP_COMPILER=intel - - -############################################ -# Loading module -############################################ -. /usrx/local/Modules/default/init/ksh -module load prod_util/v1.0.2 -module load grib_util/v1.0.1 - -############################################ -# required exports! -############################################ -### envir: prod/dev/para/bkup/ges/test bkup2/ges2/para2/prod2/prd_p6 -export envir=prod - -export cyc=${cyc:-00} -export fcsthrs=30 - -# gfs_wafs for octants (8 WAFS files) -export job=gfs_wafs_f${fcsthrs}_${cyc} - -############################################ -# set NET RUN -############################################ -### NET: gfs/para/parallel-test/nam/rap/ dump/ens/nawips/nesdis/ -export NET=gfs -export RUN=gfs - - -############################################ -# Specify versions -############################################ -export gfs_ver=v13.0.0 - - -############################################ -# user defined -############################################ -export pid=${pid:-$$} -export jobid=${job}.${pid} - -#needs to be the current date to make sure comparison is good at $PCOM -export PDY=`cut -c 7-14 /com2/date/t00z` - -USER=`whoami` - -############################################ -# SENDCOM=YES--Copy output file to /com -# SENDECF=YES--Allow to talk back to ECF -# SENDDBN=YES--Alert output file to TOC -# KEEPDATA=NO--Remove temporary working -############################################ -export SENDCOM=YES -export SENDDBN=NO -export SENDDBN_NTC=NO -export KEEPDATA=YES - -############################################ -# Define ROOT directories -############################################ -export COMROOT=/com -#export NWROOTp1=/nwprod -export PCOMROOT=/ptmpp1/${USER}/pcom -export NWROOT=/global/save/Yali.Mao/project -export DATAROOT=/ptmpp1/${USER} - -############################################ -# Define DATA PCOM, COMOUT and COMIN -############################################ -export DATA=${DATA:-${DATAROOT}/${jobid}} -export PCOM=${PCOM:-$PCOMROOT/${NET}} -export COMOUT=/ptmpp1/${USER}/gfs_wafs.$PDY -#export COMIN=/com/${NET}/${envir}/${RUN}.${PDY} - -export jlogfile=/$DATA/jlogfile.${jobid} - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} - -############################################# -# run the job -############################################# -sh $HOMEgfs/jobs/JGFS_WAFS - -############################################# -# compare the output (optional) -############################################# -if [ $USER = 'Yali.Mao' ] ; then - # the standard data to be compared to - stdout=/com/${NET}/$envir/${RUN}.${PDY} - if [ $envir = prod ]; then - stdpcom=/pcom/gfs - else - stdpcom=/pcom/${envir}/gfs - fi - - for gid in 37 38 39 40 41 42 43 44 ; do - - # comparing $COMOUT products - cmp $COMOUT/wafs${NET}${gid}.t${cyc}z.gribf${fcsthrs} $stdout/wafs${NET}${gid}.t${cyc}z.gribf${fcsthrs} - cmp $COMOUT/wafs${NET}${gid}.t${cyc}z.gribf${fcsthrs}.grib2 $stdout/wafs${NET}${gid}.t${cyc}z.gribf${fcsthrs}.grib2 - - # $PCOM data on develop machine may be out of date, so skip the comparison - continue - #stdpcom=/ptmpp2/Jiayi.Peng/data - - # comparing $PCOM products - if [ $fcsthrs -eq 30 ] ; then - sets=b - for fhr in 12 18 24 30 ; do - cmp $PCOM/com.wafs${cyc}${fhr}${sets}.$job $stdpcom/com.wafs${cyc}${fhr}${sets}.$job - cmp $PCOM/xtrn.wfs${NET}${cyc}${fhr}${sets}.$job $stdpcom/xtrn.wfs${NET}${cyc}${fhr}${sets}.$job - done - sets= - for fhr in 00 06 ; do - cmp $PCOM/com.wafs${cyc}${fhr}${sets}.$job $stdpcom/com.wafs${cyc}${fhr}${sets}.$job - cmp $PCOM/xtrn.wfs${NET}${cyc}${fhr}${sets}.$job $stdpcom/xtrn.wfs${NET}${cyc}${fhr}${sets}.$job - done - fi - if [ $fcsthrs -ge 12 -a $fcsthrs -le 30 ] ; then - sets=a - cmp $PCOM/com.wafs${cyc}${fcsthrs}${sets}.$job $stdpcom/com.wafs${cyc}${fcsthrs}${sets}.$job - cmp $PCOM/xtrn.wfs${NET}${cyc}${fcsthrs}${sets}.$job $stdpcom/xtrn.wfs${NET}${cyc}${fcsthrs}${sets}.$job - elif [ $fcsthrs -ge 36 ] ; then - sets= - cmp $PCOM/com.wafs${cyc}${fcsthrs}${sets}.$job $stdpcom/com.wafs${cyc}${fcsthrs}${sets}.$job - cmp $PCOM/xtrn.wfs${NET}${cyc}${fcsthrs}${sets}.$job $stdpcom/xtrn.wfs${NET}${cyc}${fcsthrs}${sets}.$job - # elif [ $fcsthrs -le 36 ] ; then - # no comparison - fi - - done - -fi - -exit - diff --git a/driver/product/run_JGFS_WAFS.cray b/driver/product/run_JGFS_WAFS.cray deleted file mode 100755 index d16275e52f..0000000000 --- a/driver/product/run_JGFS_WAFS.cray +++ /dev/null @@ -1,195 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_wafs -#BSUB -cwd /gpfs/hps/ptmp/Yali.Mao -#BSUB -oo /gpfs/hps/ptmp/Yali.Mao/gfs_wafs.o%J -#BSUB -eo /gpfs/hps/ptmp/Yali.Mao/gfs_wafs.o%J -##BSUB -L /bin/sh -#BSUB -q debug -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -M 500 -#BSUB -extsched 'CRAYLINUX[]' -R '1*{select[craylinux && !vnode]} + 1*{select[craylinux && vnode]span[ptile=1] cu[type=cabinet]}' - -# The following two lines will speed up 'cnvgrib' -module load iobuf - -# 8 means octants - -############################################ -# Loading module -############################################ -. $MODULESHOME/init/ksh -module load PrgEnv-intel ESMF-intel-haswell/3_1_0rp5 cfp-intel-sandybridge iobuf craype-hugepages2M craype-haswell -#module load cfp-intel-sandybridge/1.1.0 -module use /gpfs/hps/nco/ops/nwprod/modulefiles -module load prod_envir -module load prod_util -module load prod_util/1.0.4 -module load grib_util/1.0.3 - -set -xa - -export OMP_NUM_THREADS=1 -export KMP_AFFINITY=disabled -export OMP_STACKSIZE=1024m -export MP_LABELIO=yes -export MP_STDOUTMODE=ordered - -####export OMP_NUM_THREADS=1 -####export MP_MPILIB=mpich2 -####export MP_EUILIB=us -####export MP_LABELIO=yes -####export MP_COMPILER=intel - -############################################ -# required exports! -############################################ -### envir: prod/dev/para/bkup/ges/test bkup2/ges2/para2/prod2/prd_p6 -export envir=para - -export cyc=${cyc:-00} -# 00 06 12 30 33 -export fcsthrs=30 - -# gfs_wafs for octants (8 WAFS files) -export job=gfs_wafs_f${fcsthrs}_${cyc} - -############################################ -# set NET RUN -############################################ -### NET: gfs/para/parallel-test/nam/rap/ dump/ens/nawips/nesdis/ -export NET=gfs -export RUN=gfs - - -############################################ -# Specify versions -############################################ -export gfs_ver=v4.0.0 - - -############################################ -# user defined -############################################ -export pid=${pid:-$$} -export jobid=${job}.${pid} - -#needs to be the current date to make sure comparison is good at $PCOM -#export PDY=`$NDATE -24 | cut -c 1-8` -export PDY=`cut -c 7-14 $COMROOT/date/t00z` -export PDY=20161101 - -USER=`whoami` - -############################################ -# SENDCOM=YES--Copy output file to /com -# SENDECF=YES--Allow to talk back to ECF -# SENDDBN=YES--Alert output file to TOC -# KEEPDATA=NO--Remove temporary working -############################################ -export SENDCOM=YES -export SENDDBN=NO -export SENDDBN_NTC=NO -export KEEPDATA=YES - -############################################ -# Define ROOT directories -############################################ -export COMROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/com2 -#export NWROOTp1=/nwprod -export PCOMROOT=/gpfs/hps/ptmp/${USER}/pcom -export NWROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/project -export DATAROOT=/gpfs/hps/ptmp/${USER} - -############################################ -# Define DATA PCOM, COMOUT and COMIN -############################################ -export DATA=${DATA:-${DATAROOT}/${jobid}} -export PCOM=${PCOM:-$PCOMROOT/${NET}} -export COMOUT=/gpfs/hps/ptmp/${USER}/gfs_wafs.$PDY -export COMIN=$COMROOT/gfs/$envir/gfs.$PDY - -export jlogfile=/$DATA/jlogfile.${jobid} - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/wafs_cray.${gfs_ver}} - -############################################# -# run the job -############################################# -sh $HOMEgfs/jobs/JGFS_WAFS - -exit - - -############################################# -# compare the output (optional) -############################################# - -DIFFGB="/gpfs/hps/emc/global/noscrub/Yali.Mao/save/bin/diffgb -x" - -stdpcom=/gpfs/gp1/ptmp/Yali.Mao/pcomop -files=`ls $PCOM/` -for file in $files ; do - $DIFFGB $PCOM/$file $stdpcom/$file > $file.diff -done - - -stdcom=/gpfs/gp2/nco/ops/com/gfs/prod/gfs.$PDY -files=`ls $COMOUT/` -for file in $files ; do - $DIFFGB $COMOUT/$file $stdcom/$file > $file.diff -done - -if [ $USER = 'Yali.Mao' ] ; then - # the standard data to be compared to - stdout=/com/${NET}/$envir/${RUN}.${PDY} - if [ $envir = prod ]; then - stdpcom=/pcom/gfs - else - stdpcom=/pcom/${envir}/gfs - fi - - for gid in 37 38 39 40 41 42 43 44 ; do - - # comparing $COMOUT products - cmp $COMOUT/wafs${NET}${gid}.t${cyc}z.gribf${fcsthrs} $stdout/wafs${NET}${gid}.t${cyc}z.gribf${fcsthrs} - cmp $COMOUT/wafs${NET}${gid}.t${cyc}z.gribf${fcsthrs}.grib2 $stdout/wafs${NET}${gid}.t${cyc}z.gribf${fcsthrs}.grib2 - - # $PCOM data on develop machine may be out of date, so skip the comparison - continue - #stdpcom=/ptmpp2/Jiayi.Peng/data - - # comparing $PCOM products - if [ $fcsthrs -eq 30 ] ; then - sets=b - for fhr in 12 18 24 30 ; do - cmp $PCOM/com.wafs${cyc}${fhr}${sets}.$job $stdpcom/com.wafs${cyc}${fhr}${sets}.$job - cmp $PCOM/xtrn.wfs${NET}${cyc}${fhr}${sets}.$job $stdpcom/xtrn.wfs${NET}${cyc}${fhr}${sets}.$job - done - sets= - for fhr in 00 06 ; do - cmp $PCOM/com.wafs${cyc}${fhr}${sets}.$job $stdpcom/com.wafs${cyc}${fhr}${sets}.$job - cmp $PCOM/xtrn.wfs${NET}${cyc}${fhr}${sets}.$job $stdpcom/xtrn.wfs${NET}${cyc}${fhr}${sets}.$job - done - fi - if [ $fcsthrs -ge 12 -a $fcsthrs -le 30 ] ; then - sets=a - cmp $PCOM/com.wafs${cyc}${fcsthrs}${sets}.$job $stdpcom/com.wafs${cyc}${fcsthrs}${sets}.$job - cmp $PCOM/xtrn.wfs${NET}${cyc}${fcsthrs}${sets}.$job $stdpcom/xtrn.wfs${NET}${cyc}${fcsthrs}${sets}.$job - elif [ $fcsthrs -ge 36 ] ; then - sets= - cmp $PCOM/com.wafs${cyc}${fcsthrs}${sets}.$job $stdpcom/com.wafs${cyc}${fcsthrs}${sets}.$job - cmp $PCOM/xtrn.wfs${NET}${cyc}${fcsthrs}${sets}.$job $stdpcom/xtrn.wfs${NET}${cyc}${fcsthrs}${sets}.$job - # elif [ $fcsthrs -le 36 ] ; then - # no comparison - fi - - done - -fi - -exit diff --git a/driver/product/run_JGFS_WAFS_BLENDING b/driver/product/run_JGFS_WAFS_BLENDING deleted file mode 100755 index 83ba8e1ee3..0000000000 --- a/driver/product/run_JGFS_WAFS_BLENDING +++ /dev/null @@ -1,150 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_wafs_blending -#BSUB -oo /ptmpp1/Yali.Mao/gfs_wafs_blending.o%J -#BSUB -eo /ptmpp1/Yali.Mao/gfs_wafs_blending.o%J -#BSUB -L /bin/sh -#BSUB -q debug -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R rusage[mem=500] -#BSUB -R affinity[core] - -set -xa - -export OMP_NUM_THREADS=1 -export MP_MPILIB=mpich2 -export MP_EUILIB=us -export MP_LABELIO=yes -export MP_COMPILER=intel - - -############################################ -# Loading module -############################################ -. /usrx/local/Modules/default/init/ksh -module load prod_util/v1.0.2 -module load grib_util/v1.0.1 -module use /nwpara2/modulefiles -module load util_shared/v1.0.3 - -############################################ -# required exports! -############################################ -### envir: prod/dev/para/bkup/ges/test bkup2/ges2/para2/prod2/prd_p6 -export envir=prod - -export cyc=${cyc:-00} - -# gfs_wafs_blending for blending icing turbulence of US and UK -export job=gfs_wafs_blending_${cyc} - -############################################ -# set NET RUN -############################################ -### NET: gfs/para/parallel-test/nam/rap/ dump/ens/nawips/nesdis/ -export NET=gfs -export RUN=gfs - - -############################################ -# Specify versions -############################################ -export gfs_ver=v13.0.0 - - -############################################ -# user defined -############################################ -export pid=${pid:-$$} -export jobid=${job}.${pid} - -#needs to be the current date to make sure comparison is good at $PCOM -export PDY=`cut -c 7-14 /com2/date/t00z` - -USER=`whoami` - -############################################ -# SENDCOM=YES--Copy output file to /com -# SENDECF=YES--Allow to talk back to ECF -# SENDDBN=YES--Alert output file to TOC -# KEEPDATA=NO--Remove temporary working -############################################ -export SENDCOM=YES -export SENDDBN=NO -export SENDDBN_NTC=NO -export SENDDBN_GB2=NO -export KEEPDATA=YES - -############################################ -# Define ROOT directories -############################################ -export COMROOT=/com -#export NWROOTp1=/nwprod -export PCOMROOT=/ptmpp1/${USER}/pcom -export NWROOT=/global/save/Yali.Mao/project -export DATAROOT=/ptmpp1/${USER} -export DCOMROOT=/dcom - -############################################ -# Define DATA PCOM, COMOUT and COMIN -############################################ -export DATA=${DATA:-${DATAROOT}/${jobid}} -export PCOM=${PCOM:-$PCOMROOT/wafs} -export COMOUT=/ptmpp1/${USER}/gfs_wafs_blending.$PDY - -export COMINus=${COMINus:-/pcom/wafs} -export COMINuk=${COMINuk:-$DCOMROOT/us007003/$PDY/wgrbbul/ukmet_wafs} - -export jlogfile=/$DATA/jlogfile.${jobid} - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} - - -############################################ -# run the job -############################################# -export SHOUR=06 -export EHOUR=09 -export FHINC=03 - -sh $HOMEgfs/jobs/JGFS_WAFS_BLENDING - -############################################# -# compare the output (optional) -############################################# -if [ $USER = 'Yali.Mao' ] ; then - - # the standard data to be compared to - stdout=/com/${NET}/$envir/${RUN}.${PDY} - if [ $envir = prod ]; then - stdpcom=/pcom/wafs - else - stdpcom=/pcom/${envir}/wafs - fi - - ffhr=$SHOUR - - while test $ffhr -le $EHOUR ; do - - cmp $COMOUT/WAFS_blended_${PDY}${cyc}f${ffhr}.grib2 $stdout/WAFS_blended_${PDY}${cyc}f${ffhr}.grib2 - - # $PCOM data on develop machine may be out of date, so skip the comparison - continue - - cmp $PCOM/grib2.t${cyc}z.WAFS_blended_f${ffhr} $stdpcom/grib2.t${cyc}z.WAFS_blended_f${ffhr} - - ffhr=`expr $ffhr + $FHINC` - if test $ffhr -lt 10 - then - ffhr=0${ffhr} - fi - - done - -fi -exit - diff --git a/driver/product/run_JGFS_WAFS_BLENDING.cray b/driver/product/run_JGFS_WAFS_BLENDING.cray deleted file mode 100755 index febc5cb621..0000000000 --- a/driver/product/run_JGFS_WAFS_BLENDING.cray +++ /dev/null @@ -1,171 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_wafs_blending -#BSUB -cwd /gpfs/hps/ptmp/Yali.Mao -#BSUB -oo /gpfs/hps/ptmp/Yali.Mao/gfs_wafs_blending.o%J -#BSUB -eo /gpfs/hps/ptmp/Yali.Mao/gfs_wafs_blending.o%J -#BSUB -L /bin/sh -#BSUB -q debug -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -M 500 -#BSUB -extsched 'CRAYLINUX[]' -R '1*{select[craylinux && !vnode]} + 1*{select[craylinux && vnode]span[ptile=24] cu[type=cabinet]}' - -############################################ -# Loading module -############################################ -. $MODULESHOME/init/ksh -module load PrgEnv-intel ESMF-intel-haswell/3_1_0rp5 cfp-intel-sandybridge iobuf craype-hugepages2M craype-haswell -#module load cfp-intel-sandybridge/1.1.0 -module use /gpfs/hps/nco/ops/nwprod/modulefiles -module load prod_envir -module load prod_util -module load prod_util/1.0.4 -module load grib_util/1.0.3 - - -set -xa - -export OMP_NUM_THREADS=1 -export KMP_AFFINITY=disabled -export OMP_STACKSIZE=1024m -export MP_LABELIO=yes -export MP_STDOUTMODE=ordered - -####export OMP_NUM_THREADS=1 -####export MP_MPILIB=mpich2 -####export MP_EUILIB=us -####export MP_LABELIO=yes -####export MP_COMPILER=intel - -############################################ -# required exports! -############################################ -### envir: prod/dev/para/bkup/ges/test bkup2/ges2/para2/prod2/prd_p6 -export envir=para - -export cyc=${cyc:-00} - -# gfs_wafs_blending for blending icing turbulence of US and UK -export job=gfs_wafs_blending_${cyc} - -############################################ -# set NET RUN -############################################ -### NET: gfs/para/parallel-test/nam/rap/ dump/ens/nawips/nesdis/ -export NET=gfs -export RUN=gfs - - -############################################ -# Specify versions -############################################ -export gfs_ver=v4.0.0 - - -############################################ -# user defined -############################################ -export pid=${pid:-$$} -export jobid=${job}.${pid} - -#needs to be the current date to make sure comparison is good at $PCOM -#export PDY=`$NDATE -24 | cut -c 1-8` -export PDY=`cut -c 7-14 $COMROOT/date/t00z` -export PDY=20161101 - -USER=`whoami` - -############################################ -# SENDCOM=YES--Copy output file to /com -# SENDECF=YES--Allow to talk back to ECF -# SENDDBN=YES--Alert output file to TOC -# KEEPDATA=NO--Remove temporary working -############################################ -export SENDCOM=YES -export SENDDBN=NO -export SENDDBN_NTC=NO -export KEEPDATA=YES - -############################################ -# Define ROOT directories -############################################ -echo $COMROOT -#export NWROOTp1=/nwprod -export PCOMROOT=/gpfs/hps/ptmp/${USER}/pcom -#export PCOMROOT=/gpfs/gp1/ptmp/Yali.Mao -export NWROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/project -export DATAROOT=/gpfs/hps/ptmp/${USER} -# for UK data -if [[ `hostname` =~ "^l" ]] ; then ! LUNA/TIDE - export DCOMROOT=/gpfs/tp1/nco/ops/dcom -else ! SURGE/GYRE - export DCOMROOT=/gpfs/gp1/nco/ops/dcom -fi -# For canned data: -export DCOMROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/dcom - -############################################ -# Define DATA PCOM, COMOUT and COMIN -############################################ -export DATA=${DATA:-${DATAROOT}/${jobid}} -export PCOM=${PCOM:-$PCOMROOT/wafs} -export COMOUT=/gpfs/hps/ptmp/${USER}/gfs_wafs_blending.$PDY - -export COMINus=$PCOM -#export COMINus=/gpfs/gp2/nco/ops/pcom/prod/wafs -export COMINuk=${COMINuk:-$DCOMROOT/us007003/$PDY/wgrbbul/ukmet_wafs} - -export jlogfile=/$DATA/jlogfile.${jobid} - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/wafs_cray.${gfs_ver}} - - -############################################ -# run the job -############################################# -export SHOUR=06 -export EHOUR=36 -export FHINC=03 - -sh $HOMEgfs/jobs/JGFS_WAFS_BLENDING - -exit - -############################################# -# compare the output (optional) -############################################# -if [ $USER = 'Yali.Mao' ] ; then - - # the standard data to be compared to - stdout=/com/${NET}/$envir/${RUN}.${PDY} - if [ $envir = prod ]; then - stdpcom=/pcom/wafs - else - stdpcom=/pcom/${envir}/wafs - fi - - ffhr=$SHOUR - - while test $ffhr -le $EHOUR ; do - - cmp $COMOUT/WAFS_blended_${PDY}${cyc}f${ffhr}.grib2 $stdout/WAFS_blended_${PDY}${cyc}f${ffhr}.grib2 - - # $PCOM data on develop machine may be out of date, so skip the comparison - continue - - cmp $PCOM/grib2.t${cyc}z.WAFS_blended_f${ffhr} $stdpcom/grib2.t${cyc}z.WAFS_blended_f${ffhr} - - ffhr=`expr $ffhr + $FHINC` - if test $ffhr -lt 10 - then - ffhr=0${ffhr} - fi - - done - -fi -exit \ No newline at end of file diff --git a/driver/product/run_JGFS_WAFS_GCIP b/driver/product/run_JGFS_WAFS_GCIP deleted file mode 100755 index 7482b3731c..0000000000 --- a/driver/product/run_JGFS_WAFS_GCIP +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_wafs_gcip -#BSUB -oo /ptmpp1/Yali.Mao/gfs_wafs_gcip.o%J -#BSUB -eo /ptmpp1/Yali.Mao/gfs_wafs_gcip.o%J -#BSUB -L /bin/sh -#BSUB -q debug -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core] - -set -xa - -export OMP_NUM_THREADS=1 -export MP_MPILIB=mpich2 -export MP_EUILIB=us -export MP_LABELIO=yes -export MP_COMPILER=intel - - -############################################ -# Loading module -############################################ -. /usrx/local/Modules/default/init/ksh -module load prod_util/v1.0.2 -module load grib_util/v1.0.1 - -############################################ -# required exports! -############################################ -### envir: prod/dev/para/bkup/ges/test bkup2/ges2/para2/prod2/prd_p6 -export envir=prod - -export cyc=${cyc:-00} - -# gfs_wafs_gcip for generating global icing analysis for every 3 hours -export job=gfs_wafs_gcip_${cyc} - -############################################ -# set NET RUN -############################################ -### NET: gfs/para/parallel-test/nam/rap/ dump/ens/nawips/nesdis/ -export NET=gfs -export RUN=gfs - - -############################################ -# Specify versions -############################################ -export gfs_ver=v13.0.0 -export obsproc_dump_ver=v3.2.0 -export obsproc_shared_bufr_dumplist_ver=v1.1.0 - -############################################ -# user defined -############################################ -export pid=${pid:-$$} -export jobid=${job}.${pid} - -#needs to be the current date to make sure comparison is good at $PCOM -export PDY=`cut -c 7-14 /com2/date/t00z` - -USER=`whoami` - -############################################ -# SENDCOM=YES--Copy output file to /com -# SENDECF=YES--Allow to talk back to ECF -# SENDDBN=YES--Alert output file to TOC -# KEEPDATA=NO--Remove temporary working -############################################ -export SENDCOM=YES -export SENDDBN=NO -#export SENDDBN_NTC=NO -#export SENDDBN_GB2=NO -export KEEPDATA=YES - -############################################ -# Define ROOT directories -############################################ -export COMROOT=/com -export NWROOTp1=/nwprod -export PCOMROOT=/ptmpp1/${USER}/pcom -export NWROOT=/global/save/Yali.Mao/project -export DATAROOT=/ptmpp1/${USER} -#export DCOMROOT=/dcom - -############################################ -# Define DATA PCOM, COMOUT and COMIN -############################################ -export DATA=${DATA:-${DATAROOT}/${jobid}} -export PCOM=${PCOM:-$PCOMROOT/wafs} -export COMOUT=/ptmpp1/${USER}/gfs_wafs_gcip.$PDY - -export COMINsat=${COMINsat:-/dcom/us007003/$PDY/mcidas} -export COMINradar=${COMINradar:-/com/hourly/prod/radar.$PDY} - -export jlogfile=/$DATA/jlogfile.${jobid} - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} - - -############################################ -# run the job -############################################# -export SHOUR=00 -export EHOUR=03 -export FHINC=03 - -sh $HOMEgfs/jobs/JGFS_WAFS_GCIP - -############################################# -# compare the output (optional) -############################################# -if [ $USER = 'Yali.Mao' ] ; then - echo "" -fi -exit \ No newline at end of file diff --git a/driver/product/run_JGFS_WAFS_GRIB2 b/driver/product/run_JGFS_WAFS_GRIB2 deleted file mode 100755 index 9db40a213d..0000000000 --- a/driver/product/run_JGFS_WAFS_GRIB2 +++ /dev/null @@ -1,169 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_wafs_grib2 -#BSUB -oo /ptmpp1/Yali.Mao/gfs_wafs_grib2.o%J -#BSUB -eo /ptmpp1/Yali.Mao/gfs_wafs_grib2.o%J -#BSUB -L /bin/sh -#BSUB -q debug -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -R affinity[core] - -set -xa - -export OMP_NUM_THREADS=1 -export MP_MPILIB=mpich2 -export MP_EUILIB=us -export MP_LABELIO=yes -export MP_COMPILER=intel - - -############################################ -# Loading module -############################################ -. /usrx/local/Modules/default/init/ksh -module load prod_util/v1.0.2 -module load grib_util/v1.0.1 - -############################################ -# required exports! -############################################ -### envir: prod/dev/para/bkup/ges/test bkup2/ges2/para2/prod2/prd_p6 -export envir=prod - -export cyc=${cyc:-00} - -# gfs_wafs_grib2 for generating global WAFS on grid 45 -export job=gfs_wafs_grib2_${cyc} - -############################################ -# set NET RUN -############################################ -### NET: gfs/para/parallel-test/nam/rap/ dump/ens/nawips/nesdis/ -export NET=gfs -export RUN=gfs - - -############################################ -# Specify versions -############################################ -export gfs_ver=v13.0.0 - - -############################################ -# user defined -############################################ -export pid=${pid:-$$} -export jobid=${job}.${pid} - -#needs to be the current date to make sure comparison is good at $PCOM -export PDY=`cut -c 7-14 /com2/date/t00z` - -USER=`whoami` - -############################################ -# SENDCOM=YES--Copy output file to /com -# SENDECF=YES--Allow to talk back to ECF -# SENDDBN=YES--Alert output file to TOC -# KEEPDATA=NO--Remove temporary working -############################################ -export SENDCOM=YES -export SENDDBN=NO -export SENDDBN_NTC=NO -export SENDDBN_GB2=NO -export KEEPDATA=YES - -############################################ -# Define ROOT directories -############################################ -export COMROOT=/com -#export NWROOTp1=/nwprod -export PCOMROOT=/ptmpp1/${USER}/pcom -export NWROOT=/global/save/Yali.Mao/project -export DATAROOT=/ptmpp1/${USER} -#export DCOMROOT=/dcom - -############################################ -# Define DATA PCOM, COMOUT and COMIN -############################################ -export DATA=${DATA:-${DATAROOT}/${jobid}} -export PCOM=${PCOM:-$PCOMROOT/wafs} -export COMOUT=/ptmpp1/${USER}/gfs_wafs_grib2.$PDY -#export COMIN=${COMIN:-$COMROOT/${NET}/prod/$RUN.$PDY} - -export jlogfile=/$DATA/jlogfile.${jobid} - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} - - -############################################ -# run the job -############################################# -export SHOUR=06 -export EHOUR=36 -export FHINC=03 - -sh $HOMEgfs/jobs/JGFS_WAFS_GRIB2 - -############################################# -# compare the output (optional) -############################################# -if [ $USER = 'Yali.Mao' ] ; then - - # the standard data to be compared to - stdout=/com/${NET}/$envir/${RUN}.${PDY} - if [ $envir = prod ]; then - stdpcom=/pcom/wafs - else - stdpcom=/pcom/${envir}/wafs - fi - - ffhr=$SHOUR - - cd $COMOUT - # Filter 775mb and 750mb since the operational 775mb is going to be replaced by 750mb - while test $ffhr -le $EHOUR ; do - # cmp $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr}.grib2 $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr}.grib2 - wgrib2 $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr}.grib2 | grep -v "750 mb" | wgrib2 -i $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr}.grib2 -grib my.grb2 - wgrib2 $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr}.grib2 | grep -v "775 mb" | wgrib2 -i $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr}.grib2 -grib com.grb2 - cmp my.grb2 com.grb2 - - # cmp $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr} $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr} - #wgrib $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr} | grep -v ":kpds7=750:" | wgrib -i -grib $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr} -o my.grb - #wgrib $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr} | grep -v ":kpds7=775:" | wgrib -i -grib $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr} -o com.grb - cmp my.grb com.grb - - # cmp $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr}.nouswafs.grib2 $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr}.nouswafs.grib2 - wgrib2 $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr}.nouswafs.grib2 | grep -v "750 mb" | wgrib2 -i $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr}.nouswafs.grib2 -grib my45.grb2 - wgrib2 $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr}.nouswafs.grib2 | grep -v "775 mb" | wgrib2 -i $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr}.nouswafs.grib2 -grib com45.grb2 - cmp my45.grb2 com45.grb2 - - # $PCOM data on develop machine may be out of date, so skip the comparison - continue - - - # cmp $PCOM/grib2.t${cyc}z.wafs_grbf${ffhr}.45 $stdpcom/grib2.t${cyc}z.wafs_grbf${ffhr}.45 - wgrib2 $PCOM/grib2.t${cyc}z.wafs_grbf${ffhr}.45 | grep -v "750 mb" | wgrib2 -i $PCOM/grib2.t${cyc}z.wafs_grbf${ffhr}.45 -grib mypcom.grb2 - wgrib2 $stdpcom/grib2.t${cyc}z.wafs_grbf${ffhr}.45 | grep -v "775 mb" | wgrib2 -i $stdpcom/grib2.t${cyc}z.wafs_grbf${ffhr}.45 -grib pcom.grb2 - cmp mypcom.grb2 pcom.grb2 - - # cmp $PCOM/grib2.t${cyc}z.wafs_grb_wifsf${ffhr}.45 $stdpcom/grib2.t${cyc}z.wafs_grb_wifsf${ffhr}.45 - wgrib2 $PCOM/grib2.t${cyc}z.wafs_grb_wifsf${ffhr}.45 | grep -v "750 mb" | wgrib2 -i $PCOM/grib2.t${cyc}z.wafs_grb_wifsf${ffhr}.45 -grib mypcomwifs.grb2 - wgrib2 $stdpcom/grib2.t${cyc}z.wafs_grb_wifsf${ffhr}.45 | grep -v "775 mb" | wgrib2 -i $stdpcom/grib2.t${cyc}z.wafs_grb_wifsf${ffhr}.45 -grib pcomwifs.grb2 - cmp mypcomwifs.grb2 pcomwifs.grb2 - - - ffhr=`expr $ffhr + $FHINC` - if test $ffhr -lt 10 - then - ffhr=0${ffhr} - fi - - done - -fi -exit - diff --git a/driver/product/run_JGFS_WAFS_GRIB2.cray b/driver/product/run_JGFS_WAFS_GRIB2.cray deleted file mode 100755 index 27e8ffedca..0000000000 --- a/driver/product/run_JGFS_WAFS_GRIB2.cray +++ /dev/null @@ -1,166 +0,0 @@ -#!/bin/sh - -#BSUB -J gfs_wafs_grib2 -#BSUB -cwd /gpfs/hps/ptmp/Yali.Mao -#BSUB -oo /gpfs/hps/ptmp/Yali.Mao/gfs_wafs_grib2.o%J -#BSUB -eo /gpfs/hps/ptmp/Yali.Mao/gfs_wafs_grib2.o%J -#BSUB -L /bin/sh -#BSUB -q debug -#BSUB -W 00:30 -#BSUB -P GFS-T2O -#BSUB -M 500 -#BSUB -extsched 'CRAYLINUX[]' -R '1*{select[craylinux && !vnode]} + 1*{select[craylinux && vnode]span[ptile=24] cu[type=cabinet]}' - -############################################ -# Loading module -############################################ -. $MODULESHOME/init/ksh -module load PrgEnv-intel ESMF-intel-haswell/3_1_0rp5 cfp-intel-sandybridge iobuf craype-hugepages2M craype-haswell -#module load cfp-intel-sandybridge/1.1.0 -module use /gpfs/hps/nco/ops/nwprod/modulefiles -module load prod_envir -module load prod_util -module load prod_util/1.0.4 -module load grib_util/1.0.3 - - -set -xa - -export OMP_NUM_THREADS=1 -export KMP_AFFINITY=disabled -export OMP_STACKSIZE=1024m -export MP_LABELIO=yes -export MP_STDOUTMODE=ordered - -####export OMP_NUM_THREADS=1 -####export MP_MPILIB=mpich2 -####export MP_EUILIB=us -####export MP_LABELIO=yes -####export MP_COMPILER=intel - -############################################ -# required exports! -############################################ -### envir: prod/dev/para/bkup/ges/test bkup2/ges2/para2/prod2/prd_p6 -export envir=para - -export cyc=${cyc:-00} - -# gfs_wafs_grib2 for generating global WAFS on grid 45 -export job=gfs_wafs_grib2_${cyc} - -############################################ -# set NET RUN -############################################ -### NET: gfs/para/parallel-test/nam/rap/ dump/ens/nawips/nesdis/ -export NET=gfs -export RUN=gfs - - -############################################ -# Specify versions -############################################ -export gfs_ver=v4.0.0 - - -############################################ -# user defined -############################################ -export pid=${pid:-$$} -export jobid=${job}.${pid} - -#needs to be the current date to make sure comparison is good at $PCOM -#export PDY=`$NDATE -24 | cut -c 1-8` -export PDY=`cut -c 7-14 $COMROOT/date/t00z` -export PDY=20161101 - -USER=`whoami` - -############################################ -# SENDCOM=YES--Copy output file to /com -# SENDECF=YES--Allow to talk back to ECF -# SENDDBN=YES--Alert output file to TOC -# KEEPDATA=NO--Remove temporary working -############################################ -export SENDCOM=YES -export SENDDBN=NO -export SENDDBN_NTC=NO -export KEEPDATA=YES - -############################################ -# Define ROOT directories -############################################ -export COMROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/datainput/com2 -#export NWROOTp1=/nwprod -export PCOMROOT=/gpfs/hps/ptmp/${USER}/pcom -export NWROOT=/gpfs/hps/emc/global/noscrub/Yali.Mao/project -export DATAROOT=/gpfs/hps/ptmp/${USER} - -############################################ -# Define DATA PCOM, COMOUT and COMIN -############################################ -export DATA=${DATA:-${DATAROOT}/${jobid}} -export PCOM=${PCOM:-$PCOMROOT/wafs} -export COMOUT=/gpfs/hps/ptmp/${USER}/gfs_wafs_grib2.$PDY -export COMIN=$COMROOT/gfs/$envir/gfs.$PDY -#export COMIN=$COMROOTp2/gfs/prod/gfs.$PDY - -export jlogfile=/$DATA/jlogfile.${jobid} - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/wafs_cray.${gfs_ver}} - - -############################################ -# run the job -############################################# -export SHOUR=06 -export EHOUR=36 -export FHINC=03 - -sh $HOMEgfs/jobs/JGFS_WAFS_GRIB2 - -exit - -############################################# -# compare the output (optional) -############################################# -if [ $USER = 'Yali.Mao' ] ; then - - # the standard data to be compared to - stdout=/com2/${NET}/$envir/${RUN}.${PDY} - if [ $envir = prod ]; then - stdpcom=/pcom/wafs - else - stdpcom=/pcom/${envir}/wafs - fi - - ffhr=$SHOUR - - cd $COMOUT - - while test $ffhr -le $EHOUR ; do - cmp $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr}.grib2 $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr}.grib2 - - cmp $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr} $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr} - - cmp $COMOUT/gfs.t${cyc}z.wafs_grb45f${ffhr}.nouswafs.grib2 $stdout/gfs.t${cyc}z.wafs_grb45f${ffhr}.nouswafs.grib2 - - # $PCOM data on develop machine may be out of date, so skip the comparison - continue - #cmp $PCOM/grib2.t${cyc}z.wafs_grbf${ffhr}.45 $stdpcom/grib2.t${cyc}z.wafs_grbf${ffhr}.45 - #cmp $PCOM/grib2.t${cyc}z.wafs_grb_wifsf${ffhr}.45 $stdpcom/grib2.t${cyc}z.wafs_grb_wifsf${ffhr}.45 - - - ffhr=`expr $ffhr + $FHINC` - if test $ffhr -lt 10 - then - ffhr=0${ffhr} - fi - - done - -fi -exit diff --git a/driver/product/run_gfs_downstream.sh b/driver/product/run_gfs_downstream.sh index f907cdafb0..fa7c407cc2 100755 --- a/driver/product/run_gfs_downstream.sh +++ b/driver/product/run_gfs_downstream.sh @@ -17,18 +17,14 @@ export gdastestmeta=/gpfs/dell2/ptmp/Boi.Vuong/com/gfs/prod/gdas.${PDY}/${cyc}/g for cyc in 00 do -bsub < run_JGDAS_GEMPAK_dell.sh_${cyc} -bsub < run_JGDAS_GEMPAK_META_NCDC_dell.sh_${cyc} -bsub < run_JGFS_GEMPAK_dell.sh_${cyc} -bsub < run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_${cyc} -bsub < run_JGFS_AWIPS_G2_dell.sh_${cyc} -bsub < run_JGFS_FBWIND_dell.sh_${cyc} -bsub < run_JGFS_GEMPAK_META_dell.sh_${cyc} -bsub < run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_${cyc} -bsub < run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_${cyc} -bsub < run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_${cyc} -if [ $cyc -eq 00 -o $cyc -eq 12 ] ; then -# bsub < run_JGDAS_BULLS_NAVY_dell.sh_${cyc} - echo "" -fi +bsub < run_JGDAS_ATMOS_GEMPAK_dell.sh_${cyc} +bsub < run_JGDAS_ATMOS_GEMPAK_META_NCDC_dell.sh_${cyc} +bsub < run_JGFS_ATMOS_GEMPAK_dell.sh_${cyc} +bsub < run_JGFS_ATMOS_AWIPS_20KM_1P0DEG_dell.sh_${cyc} +bsub < run_JGFS_ATMOS_AWIPS_G2_dell.sh_${cyc} +bsub < run_JGFS_ATMOS_FBWIND_dell.sh_${cyc} +bsub < run_JGFS_ATMOS_GEMPAK_META_dell.sh_${cyc} +bsub < run_JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF_dell.sh_${cyc} +bsub < run_JGFS_ATMOS_PGRB2_SPEC_NPOESS_dell.sh_${cyc} +bsub < run_JGFS_ATMOS_GEMPAK_PGRB2_SPEC_dell.sh_${cyc} done diff --git a/driver/product/run_gfs_downstream_00Z b/driver/product/run_gfs_downstream_00Z deleted file mode 100755 index 3a878288ce..0000000000 --- a/driver/product/run_gfs_downstream_00Z +++ /dev/null @@ -1,12 +0,0 @@ -set -x -bsub < run_JGDAS_BULLS_NAVY_dell.sh_00 -bsub < run_JGDAS_GEMPAK_dell.sh_00 -bsub < run_JGDAS_GEMPAK_META_NCDC_dell.sh_00 -bsub < run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_00 -bsub < run_JGFS_AWIPS_G2_dell.sh_00 -bsub < run_JGFS_FBWIND_dell.sh_00 -bsub < run_JGFS_GEMPAK_META_dell.sh_00 -bsub < run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_00 -bsub < run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_00 -bsub < run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_00 -bsub < run_JGFS_GEMPAK_dell.sh_00 diff --git a/driver/product/run_gfs_downstream_06Z b/driver/product/run_gfs_downstream_06Z deleted file mode 100755 index 85c13a97c8..0000000000 --- a/driver/product/run_gfs_downstream_06Z +++ /dev/null @@ -1,12 +0,0 @@ - -set -x -bsub < run_JGDAS_GEMPAK_META_NCDC_dell.sh_06 -bsub < run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_06 -bsub < run_JGFS_AWIPS_G2_dell.sh_06 -bsub < run_JGFS_FBWIND_dell.sh_06 -bsub < run_JGFS_GEMPAK_META_dell.sh_06 -bsub < run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_06 -bsub < run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_06 -bsub < run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_06 -bsub < run_JGDAS_GEMPAK_dell.sh_06 -bsub < run_JGFS_GEMPAK_dell.sh_06 diff --git a/driver/product/run_gfs_downstream_12Z b/driver/product/run_gfs_downstream_12Z deleted file mode 100755 index 8414a81b4c..0000000000 --- a/driver/product/run_gfs_downstream_12Z +++ /dev/null @@ -1,12 +0,0 @@ -set -x -bsub < run_JGDAS_GEMPAK_dell.sh_12 -bsub < run_JGDAS_GEMPAK_META_NCDC_dell.sh_12 -bsub < run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_12 -bsub < run_JGFS_AWIPS_G2_dell.sh_12 -bsub < run_JGFS_FBWIND_dell.sh_12 -bsub < run_JGFS_GEMPAK_META_dell.sh_12 -bsub < run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_12 -bsub < run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_12 -bsub < run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_12 -bsub < run_JGFS_GEMPAK_dell.sh_12 -bsub < run_JGDAS_BULLS_NAVY_dell.sh_12 diff --git a/driver/product/run_gfs_downstream_18Z b/driver/product/run_gfs_downstream_18Z deleted file mode 100755 index 51ac565988..0000000000 --- a/driver/product/run_gfs_downstream_18Z +++ /dev/null @@ -1,11 +0,0 @@ -set -x -bsub < run_JGDAS_GEMPAK_dell.sh_18 -bsub < run_JGDAS_GEMPAK_META_NCDC_dell.sh_18 -bsub < run_JGFS_AWIPS_20KM_1P0DEG_dell.sh_18 -bsub < run_JGFS_AWIPS_G2_dell.sh_18 -bsub < run_JGFS_FBWIND_dell.sh_18 -bsub < run_JGFS_GEMPAK_META_dell.sh_18 -bsub < run_JGFS_GEMPAK_NCDC_UPAPGIF_dell.sh_18 -bsub < run_JGFS_PGRB2_SPEC_NPOESS_dell.sh_18 -bsub < run_JGFS_PGRB2_SPEC_GEMPAK_dell.sh_18 -bsub < run_GFS_GEMPAK_dell.sh_18 diff --git a/driver/product/run_postsnd.sh b/driver/product/run_postsnd.sh index 72f7c26ebb..89045010bc 100755 --- a/driver/product/run_postsnd.sh +++ b/driver/product/run_postsnd.sh @@ -5,10 +5,10 @@ #BSUB -J postsnd #BSUB -W 01:30 #BSUB -q dev -#BSUB -P FV3GFS-T2O -#BSUB -cwd /gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/fv3gfs/driver/product -#BSUB -R span[ptile=4] -#BSUB -n 12 +#BSUB -P GFS-DEV +#BSUB -cwd /gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/gfsv16bnetcdf2/driver/product +#BSUB -R span[ptile=13] +#BSUB -n 127 #BSUB -R affinity[core(1):distribute=balance] ############################################ @@ -20,15 +20,20 @@ module load EnvVars/1.0.2 module load ips/18.0.1.163 module load impi/18.0.1 module load lsf/10.1 -module load prod_util/1.1.0 +module load prod_util/1.1.4 module load grib_util/1.0.6 module load prod_envir/1.0.2 module load CFP/2.0.1 - -#module use -a /gpfs/dell1/nco/ops/nwpara/modulefiles/ -#module load gempak/7.3.1 -module use /gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/modulefiles -module load gempak/7.3.0 +##module load NetCDF/4.5.0 +##module load HDF5-parallel/1.10.1 +module load python/3.6.3 + +module use -a /gpfs/dell1/nco/ops/nwpara/modulefiles/ +module load gempak/7.3.3 +module use /usrx/local/nceplibs/dev/NCEPLIBS/modulefiles +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 +module load w3emc_para/2.4.0 module list #module use /usrx/local/dev/modulefiles @@ -47,24 +52,43 @@ export MP_STDOUTMODE=ordered #export machine="WCOSS_C" machine="WCOSS_DELL_P3" #machine="THEIA" +#machine="JET" +export npe_postsnd=127 +export npe_postsndcfp=10 +##export OUTPUT_FILE="nemsio" +export OUTPUT_FILE=${OUTPUT_FILE:-netcdf} if [ $machine == "WCOSS_C" ]; then ##For WCOSS-Cray################## +export FHMAX_HF_GFS=120 +export FHOUT_HF_GFS=6 export launcher="aprun" -export npe_postsnd=12 export npe_node_postsnd=3 export NTHREADS_POSTSND=1 -export npe_postsndcfp=10 export npe_node_postsndcfp=3 export NTHREADS_POSTSNDCFP=1 export APRUN_POSTSND="$launcher -j 1 -n $npe_postsnd -N $npe_node_postsnd -d $NTHREADS_POSTSND -cc depth" export APRUN_POSTSNDCFP="$launcher -j 1 -n $npe_postsndcfp -N $npe_node_postsndcfp -d $NTHREADS_POSTSNDCFP cfp" -else -##For WCOSS-Dell and Theia, Jet################ +elif [ $machine == "WCOSS_DELL_P3" ]; then +##For WCOSS-Dell ################ + if [ $OUTPUT_FILE == "netcdf" ]; then + export FHMAX_HF_GFS=120 + export FHOUT_HF_GFS=3 + export FHOUT_GFS=3 + else + export FHMAX_HF_GFS=120 + export FHOUT_HF_GFS=1 + export FHOUT_GFS=3 + fi export launcher="mpirun -n" -export npe_postsnd=12 -export npe_postsndcfp=10 export APRUN_POSTSND="$launcher $npe_postsnd" export APRUN_POSTSNDCFP="$launcher $npe_postsndcfp cfp" +else +##For Theia, Jet################ +export FHMAX_HF_GFS=0 +export FHOUT_HF_GFS=0 +export launcher="mpirun -np" +export APRUN_POSTSND="$launcher $npe_postsnd" +export APRUN_POSTSNDCFP="$launcher $npe_postsndcfp" fi #export PS4='$SECONDS + ' @@ -91,10 +115,11 @@ export DATA_IN=${DATA_IN:-/gpfs/dell2/ptmp/$USER} export DATA=$DATA_IN/postsnd.${pid} mkdir -p $DATA cd $DATA -export PDY=20180502 +export PDY=20200203 export cyc=00 export STARTHOUR=00 export ENDHOUR=180 +export KEEPDATA="YES" #################################### # File To Log Msgs @@ -125,14 +150,22 @@ mkdir -p $pcom # Set up the UTILITIES ################################### -export HOMEbufrsnd=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/fv3gfs +export HOMEgfs=/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/global-workflow/feature_gfsv16b +export HOMEbufrsnd=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/gfsv16bnetcdf2 +##export HOMEbufrsnd=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/fv3gfs ##export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/fv3gfs ############################## # Define COM Directories ############################## -export EXPDIR=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou -export COMIN=${EXPDIR}/fv3gfs_data/${RUN}.${PDY}/$cyc + if [ $OUTPUT_FILE == "netcdf" ]; then +export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/${RUN}.${PDY}/$cyc + else +export COMIN=/gpfs/dell1/nco/ops/com/gfs/prod/${RUN}.${PDY}/$cyc + fi +##export EXPDIR=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou +##export COMIN=${EXPDIR}/data_netcdf/${RUN}.${PDY} +#export COMIN=${EXPDIR}/fv3gfs_data/${RUN}.${PDY}/$cyc #export COMIN=/gpfs/dell2/ptmp/Russ.Treadon/ROTDIRS/prfv3rt1/${RUN}.${PDY}/$cyc #export COMIN=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/fv3gfs_data/${RUN}.${PDY}/$cyc #export COMIN=/gpfs/hps3/ptmp/emc.glopara/fv3fy18retro2/${RUN}.${PDY}/$cyc @@ -146,8 +179,8 @@ env ######################################################## # Execute the script. -#$SCRbufrsnd/exgfs_postsnd.sh.ecf -${HOMEbufrsnd}/jobs/JGFS_POSTSND +#$SCRbufrsnd/exgfs_atmos_postsnd.sh +${HOMEbufrsnd}/jobs/JGFS_ATMOS_POSTSND ######################################################## #cat $pgmout diff --git a/driver/product/run_postsnd.sh.cray b/driver/product/run_postsnd.sh.cray index 6679562b16..19e86dc731 100755 --- a/driver/product/run_postsnd.sh.cray +++ b/driver/product/run_postsnd.sh.cray @@ -39,7 +39,6 @@ export MP_STDOUTMODE=ordered export machine="WCOSS_C" #machine="WCOSS_DELL_P3" -#machine="THEIA" #machine="JET" export FHMAX_HF_GFS=120 export FHOUT_HF_GFS=1 @@ -150,8 +149,8 @@ env ######################################################## # Execute the script. -#$SCRbufrsnd/exgfs_postsnd.sh.ecf -${HOMEbufrsnd}/jobs/JGFS_POSTSND +#$SCRbufrsnd/exgfs_atmos_postsnd.sh +${HOMEbufrsnd}/jobs/JGFS_ATMOS_POSTSND ######################################################## #cat $pgmout diff --git a/driver/product/run_postsnd.sh.dell b/driver/product/run_postsnd.sh.dell index e7d3a17d66..f81cd2ac33 100755 --- a/driver/product/run_postsnd.sh.dell +++ b/driver/product/run_postsnd.sh.dell @@ -5,10 +5,10 @@ #BSUB -J postsnd #BSUB -W 01:30 #BSUB -q dev -#BSUB -P FV3GFS-T2O -#BSUB -cwd /gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/fv3gfs/driver/product +#BSUB -P GFS-DEV +#BSUB -cwd /gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/gfsv16bnetcdf_mpmd/driver/product #BSUB -R span[ptile=4] -#BSUB -n 12 +#BSUB -n 40 #BSUB -R affinity[core(1):distribute=balance] ############################################ @@ -24,11 +24,16 @@ module load prod_util/1.1.0 module load grib_util/1.0.6 module load prod_envir/1.0.2 module load CFP/2.0.1 +##module load NetCDF/4.5.0 +##module load HDF5-parallel/1.10.1 +module load python/3.6.3 module use -a /gpfs/dell1/nco/ops/nwpara/modulefiles/ -module load gempak/7.3.1 -#module use /gpfs/dell2/emc/modeling/noscrub/Boi.Vuong/modulefiles -#module load gempak/7.3.0 +module load gempak/7.3.3 +module use /usrx/local/nceplibs/dev/NCEPLIBS/modulefiles +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 +module load w3emc_para/2.4.0 module list #module use /usrx/local/dev/modulefiles @@ -48,12 +53,14 @@ export MP_STDOUTMODE=ordered machine="WCOSS_DELL_P3" #machine="THEIA" #machine="JET" -export npe_postsnd=12 -export npe_postsndcfp=10 +export npe_postsnd=40 +export npe_postsndcfp=9 +##export OUTPUT_FILE="nemsio" +export OUTPUT_FILE=${OUTPUT_FILE:-netcdf} if [ $machine == "WCOSS_C" ]; then ##For WCOSS-Cray################## export FHMAX_HF_GFS=120 -export FHOUT_HF_GFS=1 +export FHOUT_HF_GFS=6 export launcher="aprun" export npe_node_postsnd=3 export NTHREADS_POSTSND=1 @@ -63,8 +70,15 @@ export APRUN_POSTSND="$launcher -j 1 -n $npe_postsnd -N $npe_node_postsnd -d $NT export APRUN_POSTSNDCFP="$launcher -j 1 -n $npe_postsndcfp -N $npe_node_postsndcfp -d $NTHREADS_POSTSNDCFP cfp" elif [ $machine == "WCOSS_DELL_P3" ]; then ##For WCOSS-Dell ################ -export FHMAX_HF_GFS=120 -export FHOUT_HF_GFS=1 + if [ $OUTPUT_FILE == "netcdf" ]; then + export FHMAX_HF_GFS=120 + export FHOUT_HF_GFS=3 + export FHOUT_GFS=3 + else + export FHMAX_HF_GFS=120 + export FHOUT_HF_GFS=1 + export FHOUT_GFS=3 + fi export launcher="mpirun -n" export APRUN_POSTSND="$launcher $npe_postsnd" export APRUN_POSTSNDCFP="$launcher $npe_postsndcfp cfp" @@ -101,10 +115,11 @@ export DATA_IN=${DATA_IN:-/gpfs/dell2/ptmp/$USER} export DATA=$DATA_IN/postsnd.${pid} mkdir -p $DATA cd $DATA -export PDY=20180502 +export PDY=20200315 export cyc=00 export STARTHOUR=00 export ENDHOUR=180 +export KEEPDATA="YES" #################################### # File To Log Msgs @@ -135,14 +150,23 @@ mkdir -p $pcom # Set up the UTILITIES ################################### -export HOMEbufrsnd=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/fv3gfs +export HOMEgfs=/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/global-workflow/feature_gfsv16b +export HOMEbufrsnd=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/gfsv16bnetcdf_mpmd +##export HOMEbufrsnd=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/fv3gfs ##export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/fv3gfs ############################## # Define COM Directories ############################## -export EXPDIR=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou -export COMIN=${EXPDIR}/fv3gfs_data/${RUN}.${PDY}/$cyc + if [ $OUTPUT_FILE == "netcdf" ]; then +export COMIN=/gpfs/dell3/ptmp/emc.glopara/ROTDIRS/v16rt2/${RUN}.${PDY}/$cyc +##export COMIN=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/gfs_v16_data/2020021500 + else +export COMIN=/gpfs/dell1/nco/ops/com/gfs/prod/${RUN}.${PDY}/$cyc + fi +##export EXPDIR=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou +##export COMIN=${EXPDIR}/data_netcdf/${RUN}.${PDY} +#export COMIN=${EXPDIR}/fv3gfs_data/${RUN}.${PDY}/$cyc #export COMIN=/gpfs/dell2/ptmp/Russ.Treadon/ROTDIRS/prfv3rt1/${RUN}.${PDY}/$cyc #export COMIN=/gpfs/dell2/emc/verification/noscrub/Guang.Ping.Lou/fv3gfs_data/${RUN}.${PDY}/$cyc #export COMIN=/gpfs/hps3/ptmp/emc.glopara/fv3fy18retro2/${RUN}.${PDY}/$cyc @@ -156,8 +180,8 @@ env ######################################################## # Execute the script. -#$SCRbufrsnd/exgfs_postsnd.sh.ecf -${HOMEbufrsnd}/jobs/JGFS_POSTSND +#$SCRbufrsnd/exgfs_atmos_postsnd.sh +${HOMEbufrsnd}/jobs/JGFS_ATMOS_POSTSND ######################################################## #cat $pgmout diff --git a/driver/product/run_postsnd.sh.hera b/driver/product/run_postsnd.sh.hera new file mode 100644 index 0000000000..e9efd7ad32 --- /dev/null +++ b/driver/product/run_postsnd.sh.hera @@ -0,0 +1,185 @@ +#!/bin/ksh -l +#SBATCH -A fv3-cam # Use a valid account +#SBATCH --time=2:30:00 # For big directories you may want 8:00:00 hrs +#SBATCH -N 20 # Probably 2 to 4 depending on amount of data +#SBATCH -n 40 +#SBATCH -o %x.o%j +#SBATCH -J postsnd + +############################################ +# Loading module +############################################ +. $MODULESHOME/init/ksh + +# Loading Intel Compiler Suite +module load intel +module load impi + +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles + +# Loding nceplibs modules +module load sigio/v2.0.1 +module load bacio/v2.0.1 +module load sp/v2.0.2 +module load w3emc/v2.2.0 +module load w3nco/v2.0.6 +module load bufr/v10.2.5 +module load nemsio/v2.2.1 +module load gempak/7.4.2 +module load prod_util + +module load netcdf_parallel/4.7.4 +module load hdf5_parallel/1.10.6 +module load intelpython/3.6.8 + +module use -a /contrib/modulefiles +module load anaconda/2.3.0 +######################################## +# Runs GFS BUFR SOUNDINGS +######################################## +set -xa + +export OMP_NUM_THREADS=1 +export KMP_AFFINITY=disabled +export OMP_STACKSIZE=2048m +export MP_LABELIO=yes +export MP_STDOUTMODE=ordered + +#export machine="WCOSS_C" +#machine="WCOSS_DELL_P3" +machine="HERA" +#machine="JET" +export npe_postsnd=40 +export npe_postsndcfp=10 +export OUTPUT_FILE=${OUTPUT_FILE:-netcdf} +if [ $machine == "WCOSS_C" ]; then +##For WCOSS-Cray################## +export FHMAX_HF_GFS=120 +export FHOUT_HF_GFS=1 +export launcher="aprun" +export npe_node_postsnd=3 +export NTHREADS_POSTSND=1 +export npe_node_postsndcfp=3 +export NTHREADS_POSTSNDCFP=1 +export APRUN_POSTSND="$launcher -j 1 -n $npe_postsnd -N $npe_node_postsnd -d $NTHREADS_POSTSND -cc depth" +export APRUN_POSTSNDCFP="$launcher -j 1 -n $npe_postsndcfp -N $npe_node_postsndcfp -d $NTHREADS_POSTSNDCFP cfp" +elif [ $machine == "WCOSS_DELL_P3" ]; then +##For WCOSS-Dell ################ +export FHMAX_HF_GFS=120 +export FHOUT_HF_GFS=1 +export launcher="mpirun -n" +export APRUN_POSTSND="$launcher $npe_postsnd" +export APRUN_POSTSNDCFP="$launcher $npe_postsndcfp" +else +##For Theia, Jet,hera################ +##export FHMAX_HF_GFS=120 +##export FHOUT_HF_GFS=1 +export FHMAX_HF_GFS=120 +export FHOUT_HF_GFS=3 +export npe_postsnd=40 +export npe_node_postsnd=20 +export launcher="mpirun" +#export APRUN_POSTSND=srun +export APRUN_POSTSND="$launcher -n $npe_postsnd" +export APRUN_POSTSNDCFP="$launcher -n $npe_postsndcfp" +fi + +#export PS4='$SECONDS + ' +date +# #### 08/25/1999 ################### +# SET SHELL PROCESSING VARIABLES +# ################################### +# +#Specify whether the run is production or development +# +export envir=${envir:-prod} + +#################################### +# Specify version numbers +#################################### +export gfs_bufrsnd_ver=${gfs_bufrsnd_ver:-v1.0.2} +export gsm_ver=${gsm_ver:-v12.0.0} +export util_ver=${util_ver:-v1.0.0} + +# obtain unique process id (pid) and make temp directories +# +export pid=$$ +#export DATA_IN=${DATA_IN:-/tmpnwprd1} +#export DATA=$DATA_IN/${job}.${pid} +export DATA_IN=${DATA_IN:-/scratch2/NCEPDEV/stmp1/$USER} +export DATA=$DATA_IN/postsnd.${pid} +mkdir -p $DATA +cd $DATA +export PDY=20190223 +export cyc=00 +##export PDY=20200113 +##export cyc=12 +export STARTHOUR=00 +export ENDHOUR=180 + +#################################### +# File To Log Msgs +#################################### +job=gfs_postsnd_test +export jlogfile=/com/logs/jlogfiles/jlogfile.${job}.${pid} + +#################################### +# Determine Job Output Name on System +#################################### +export outid="LL$job" +export jobid="${outid}.o${pid}" +export pgmout="OUTPUT.${pid}" + +export cycle=t${cyc}z + +export SENDCOM=YES +export SENDECF=YES +export SENDDBN=YES + +export NET=gfs +export RUN=gfs +export model=gfs +export pcom=$DATA_IN/pcom/gfs +mkdir -p $pcom + +################################### +# Set up the UTILITIES +################################### + +export HOMEbufrsnd=/scratch2/NCEPDEV/fv3-cam/noscrub/Guang.Ping.Lou/gfsv16bnetcd4 +#export HOMEbufrsnd=/scratch2/NCEPDEV/fv3-cam/noscrub/Guang.Ping.Lou/global-workflow +#export HOMEbufrsnd=/scratch4/NCEPDEV/meso/save/Guang.Ping.Lou/fv3gfs +#export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/fv3gfs +#export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/Bufr_sounding +#export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/bufr_fnl_mpmd2_test + +############################## +# Define COM Directories +############################## +##export COMIN=/gpfs/hps/ptmp/emc.glopara/com2/${NET}/para/${RUN}.${PDY} +##export COMIN=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/fv3data/${RUN}.${PDY}/$cyc +##export COMIN=/gpfs/hps/nco/ops/com/gfs/prod/${RUN}.${PDY} +#export COMIN=/scratch4/NCEPDEV/meso/save/Guang.Ping.Lou/fv3data/${RUN}.${PDY}/$cyc +##export COMIN=/scratch2/NCEPDEV/fv3-cam//noscrub/Guang.Ping.Lou/gfs.${PDY}_nc_lossy/$cyc +##export COMIN=/scratch2/NCEPDEV/fv3-cam//noscrub/Guang.Ping.Lou/data_v16rt2 +export COMIN=/scratch1/NCEPDEV/global/glopara/ptmp/v16retro1/gfs.${PDY}/$cyc + +export COMOUT=$DATA_IN/com2/${NET}/${envir}/${RUN}.${PDY} +mkdir -p $COMOUT +export COMAWP=$DATA_IN/com2/nawips/${envir}/${RUN}.${PDY} +mkdir -p $COMAWP +env + +export KEEPDATA=YES +######################################################## +# Execute the script. +#$SCRbufrsnd/exgfs_atmos_postsnd.sh +${HOMEbufrsnd}/jobs/JGFS_ATMOS_POSTSND +######################################################## + +#cat $pgmout + +#cd /tmpnwprd1 +#rm -rf $DATA +date + diff --git a/driver/product/run_postsnd.sh.jet b/driver/product/run_postsnd.sh.jet index 0f0365fd95..23038d6d2b 100755 --- a/driver/product/run_postsnd.sh.jet +++ b/driver/product/run_postsnd.sh.jet @@ -47,7 +47,6 @@ export MP_STDOUTMODE=ordered #export machine="WCOSS_C" #machine="WCOSS_DELL_P3" -#machine="THEIA" machine="JET" export npe_postsnd=12 export npe_postsndcfp=10 @@ -161,8 +160,8 @@ env export KEEPDATA=YES ######################################################## # Execute the script. -#$SCRbufrsnd/exgfs_postsnd.sh.ecf -${HOMEbufrsnd}/jobs/JGFS_POSTSND +#$SCRbufrsnd/exgfs_atmos_postsnd.sh +${HOMEbufrsnd}/jobs/JGFS_ATMOS_POSTSND ######################################################## #cat $pgmout diff --git a/driver/product/run_postsnd.sh.theia b/driver/product/run_postsnd.sh.theia deleted file mode 100755 index b0fe4f1974..0000000000 --- a/driver/product/run_postsnd.sh.theia +++ /dev/null @@ -1,166 +0,0 @@ -#!/bin/ksh -l -#PBS -o /scratch4/NCEPDEV/meso/save/Guang.Ping.Lou/fv3gfs/driver/product/postsnd_00.out19 -#PBS -e /scratch4/NCEPDEV/meso/save/Guang.Ping.Lou/fv3gfs/driver/product/postsnd_00.out19 -#PBS -N postsnd -##PBS -A fv3-cam -#PBS -A fv3-cpu -#PBS -l nodes=6:ppn=3 -#PBS -l walltime=02:30:00 - -############################################ -# Loading module -############################################ -. $MODULESHOME/init/ksh - -# Loading Intel Compiler Suite -module load intel -module load impi - -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles - -# Loding nceplibs modules -module load sigio/v2.0.1 -module load bacio/v2.0.1 -module load sp/v2.0.2 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load bufr/v10.2.5 -module load nemsio/v2.2.1 -module load gempak/7.4.2 - -######################################## -# Runs GFS BUFR SOUNDINGS -######################################## -set -xa - -export OMP_NUM_THREADS=1 -export KMP_AFFINITY=disabled -export OMP_STACKSIZE=2048m -export MP_LABELIO=yes -export MP_STDOUTMODE=ordered - -#export machine="WCOSS_C" -#machine="WCOSS_DELL_P3" -machine="THEIA" -#machine="JET" -export npe_postsnd=12 -export npe_postsndcfp=10 -if [ $machine == "WCOSS_C" ]; then -##For WCOSS-Cray################## -export FHMAX_HF_GFS=120 -export FHOUT_HF_GFS=1 -export launcher="aprun" -export npe_node_postsnd=3 -export NTHREADS_POSTSND=1 -export npe_node_postsndcfp=3 -export NTHREADS_POSTSNDCFP=1 -export APRUN_POSTSND="$launcher -j 1 -n $npe_postsnd -N $npe_node_postsnd -d $NTHREADS_POSTSND -cc depth" -export APRUN_POSTSNDCFP="$launcher -j 1 -n $npe_postsndcfp -N $npe_node_postsndcfp -d $NTHREADS_POSTSNDCFP cfp" -elif [ $machine == "WCOSS_DELL_P3" ]; then -##For WCOSS-Dell ################ -export FHMAX_HF_GFS=120 -export FHOUT_HF_GFS=1 -export launcher="mpirun -n" -export APRUN_POSTSND="$launcher $npe_postsnd" -export APRUN_POSTSNDCFP="$launcher $npe_postsndcfp" -else -##For Theia, Jet################ -export FHMAX_HF_GFS=120 -export FHOUT_HF_GFS=1 -export launcher="mpirun -np" -export APRUN_POSTSND="$launcher $npe_postsnd" -export APRUN_POSTSNDCFP="$launcher $npe_postsndcfp" -fi - -#export PS4='$SECONDS + ' -date -# #### 08/25/1999 ################### -# SET SHELL PROCESSING VARIABLES -# ################################### -# -#Specify whether the run is production or development -# -export envir=${envir:-prod} - -#################################### -# Specify version numbers -#################################### -export gfs_bufrsnd_ver=${gfs_bufrsnd_ver:-v1.0.2} -export gsm_ver=${gsm_ver:-v12.0.0} -export util_ver=${util_ver:-v1.0.0} - -# obtain unique process id (pid) and make temp directories -# -export pid=$$ -#export DATA_IN=${DATA_IN:-/tmpnwprd1} -#export DATA=$DATA_IN/${job}.${pid} -export DATA_IN=${DATA_IN:-/scratch4/NCEPDEV/meso/scrub/$USER} -export DATA=$DATA_IN/postsnd.${pid} -mkdir -p $DATA -cd $DATA -export PDY=20180305 -export cyc=00 -export STARTHOUR=00 -export ENDHOUR=180 - -#################################### -# File To Log Msgs -#################################### -job=gfs_postsnd_test -export jlogfile=/com/logs/jlogfiles/jlogfile.${job}.${pid} - -#################################### -# Determine Job Output Name on System -#################################### -export outid="LL$job" -export jobid="${outid}.o${pid}" -export pgmout="OUTPUT.${pid}" - -export cycle=t${cyc}z - -export SENDCOM=YES -export SENDECF=YES -export SENDDBN=YES - -export NET=gfs -export RUN=gfs -export model=gfs -export pcom=$DATA_IN/pcom/gfs -mkdir -p $pcom - -################################### -# Set up the UTILITIES -################################### - -export HOMEbufrsnd=/scratch4/NCEPDEV/meso/save/Guang.Ping.Lou/fv3gfs -#export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/fv3gfs -#export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/Bufr_sounding -#export HOMEbufrsnd=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/bufr_fnl_mpmd2_test - -############################## -# Define COM Directories -############################## -##export COMIN=/gpfs/hps/ptmp/emc.glopara/com2/${NET}/para/${RUN}.${PDY} -##export COMIN=/gpfs/hps3/emc/meso/noscrub/Guang.Ping.Lou/fv3data/${RUN}.${PDY}/$cyc -##export COMIN=/gpfs/hps/nco/ops/com/gfs/prod/${RUN}.${PDY} -export COMIN=/scratch4/NCEPDEV/meso/save/Guang.Ping.Lou/fv3data/${RUN}.${PDY}/$cyc - -export COMOUT=$DATA_IN/com2/${NET}/${envir}/${RUN}.${PDY} -mkdir -p $COMOUT -export COMAWP=$DATA_IN/com2/nawips/${envir}/${RUN}.${PDY} -mkdir -p $COMAWP -env - -export KEEPDATA=YES -######################################################## -# Execute the script. -#$SCRbufrsnd/exgfs_postsnd.sh.ecf -${HOMEbufrsnd}/jobs/JGFS_POSTSND -######################################################## - -#cat $pgmout - -#cd /tmpnwprd1 -#rm -rf $DATA -date - diff --git a/ecflow/ecf/defs/gdas_00.def b/ecflow/ecf/defs/gdas_00.def deleted file mode 100644 index 0b9d020578..0000000000 --- a/ecflow/ecf/defs/gdas_00.def +++ /dev/null @@ -1,246 +0,0 @@ - family gdas - edit CYC '00' - edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3' - edit PROJ 'GDAS-OPS' - edit NET 'gfs' - edit RUN 'gdas' - edit COM '/gpfs/dell1/nco/ops/com' - edit QUEUESHARED 'prod_shared' - edit QUEUESERV 'prod_transfer' - edit QUEUE 'prod' - family dump - task jgdas_tropcy_qc_reloc - time 05:45 - task jgdas_dump - event 1 release_sfcprep - time 05:50 - task jgdas_dump_post - trigger jgdas_dump == complete - event 1 release_gdas00_dump_alert - task jgdas_dump_alert - trigger jgdas_dump_post:release_gdas00_dump_alert - task jmodel_realtime_gdas - trigger jgdas_dump_alert == complete - endfamily - family prep - task jgdas_emcsfc_sfc_prep - trigger ../dump/jgdas_dump:release_sfcprep - task jgdas_prep - trigger ../dump/jgdas_dump == complete and ../dump/jgdas_tropcy_qc_reloc == complete - task jgdas_prep_post - trigger jgdas_prep == complete and ../analysis/jgdas_analysis_high == complete - endfamily - family analysis - task jgdas_analysis_high - trigger ../prep/jgdas_prep == complete and ../prep/jgdas_emcsfc_sfc_prep == complete - event 1 release_fcst - endfamily - task jgdas_vminmon - trigger analysis/jgdas_analysis_high == complete - family forecast - task jgdas_forecast_high - trigger ../analysis/jgdas_analysis_high:release_fcst - endfamily - family post_processing - family bulletins - task jgdas_mknavybulls - trigger ../../dump/jgdas_dump_post == complete - endfamily - endfamily - family gempak - task jgdas_gempak - trigger ../forecast/jgdas_forecast_high == complete - task jgdas_gempak_meta_ncdc - trigger ./jgdas_gempak == complete - endfamily - family post - task jgdas_post_manager - trigger ../forecast == active - event 1 release_postanl - event 2 release_post000 - event 3 release_post001 - event 4 release_post002 - event 5 release_post003 - event 6 release_post004 - event 7 release_post005 - event 8 release_post006 - event 9 release_post007 - event 10 release_post008 - event 11 release_post009 - task jgdas_post_anl - trigger ./jgdas_post_manager:release_postanl - edit FHRGRP '000' - edit FHRLST 'anl' - edit HR 'anl' - edit FHR 'anl' - event 1 release_postanl - task jgdas_post_f000 - trigger ./jgdas_post_manager:release_post000 - edit FHR 'f000' - edit HR '000' - edit FHRGRP '001' - edit FHRLST 'f000' - task jgdas_post_f001 - trigger ./jgdas_post_manager:release_post001 - edit FHR 'f001' - edit HR '001' - edit FHRGRP '002' - edit FHRLST 'f001' - task jgdas_post_f002 - trigger ./jgdas_post_manager:release_post002 - edit FHR 'f002' - edit HR '002' - edit FHRGRP '003' - edit FHRLST 'f002' - task jgdas_post_f003 - trigger ./jgdas_post_manager:release_post003 - edit FHR 'f003' - edit HR '003' - edit FHRGRP '004' - edit FHRLST 'f003' - task jgdas_post_f004 - trigger ./jgdas_post_manager:release_post004 - edit FHR 'f004' - edit HR '004' - edit FHRGRP '005' - edit FHRLST 'f004' - task jgdas_post_f005 - trigger ./jgdas_post_manager:release_post005 - edit FHR 'f005' - edit HR '005' - edit FHRGRP '006' - edit FHRLST 'f005' - task jgdas_post_f006 - trigger ./jgdas_post_manager:release_post006 - edit FHR 'f006' - edit HR '006' - edit FHRGRP '007' - edit FHRLST 'f006' - task jgdas_post_f007 - trigger ./jgdas_post_manager:release_post007 - edit FHR 'f007' - edit HR '007' - edit FHRGRP '008' - edit FHRLST 'f007' - task jgdas_post_f008 - trigger ./jgdas_post_manager:release_post008 - edit FHR 'f008' - edit HR '008' - edit FHRGRP '009' - edit FHRLST 'f008' - task jgdas_post_f009 - trigger ./jgdas_post_manager:release_post009 - edit FHR 'f009' - edit HR '009' - edit FHRGRP '010' - edit FHRLST 'f009' - endfamily - family enkf - task jgdas_enkf_select_obs - trigger ../prep/jgdas_prep == complete - family innovate - trigger ./jgdas_enkf_select_obs == complete - task jgdas_enkf_innovate_obs_grp1 - edit ENSGRP '01' - task jgdas_enkf_innovate_obs_grp2 - edit ENSGRP '02' - task jgdas_enkf_innovate_obs_grp3 - edit ENSGRP '03' - task jgdas_enkf_innovate_obs_grp4 - edit ENSGRP '04' - task jgdas_enkf_innovate_obs_grp5 - edit ENSGRP '05' - task jgdas_enkf_innovate_obs_grp6 - edit ENSGRP '06' - task jgdas_enkf_innovate_obs_grp7 - edit ENSGRP '07' - task jgdas_enkf_innovate_obs_grp8 - edit ENSGRP '08' - task jgdas_enkf_innovate_obs_grp9 - edit ENSGRP '09' - task jgdas_enkf_innovate_obs_grp10 - edit ENSGRP '10' - endfamily - task jgdas_enkf_update - trigger ./innovate == complete - task jgdas_enkf_inflate_recenter - trigger ./jgdas_enkf_update == complete and ../analysis/jgdas_analysis_high == complete - family forecast - trigger ./jgdas_enkf_inflate_recenter == complete - task jgdas_enkf_fcst_grp1 - edit ENSGRP '01' - task jgdas_enkf_fcst_grp2 - edit ENSGRP '02' - task jgdas_enkf_fcst_grp3 - edit ENSGRP '03' - task jgdas_enkf_fcst_grp4 - edit ENSGRP '04' - task jgdas_enkf_fcst_grp5 - edit ENSGRP '05' - task jgdas_enkf_fcst_grp6 - edit ENSGRP '06' - task jgdas_enkf_fcst_grp7 - edit ENSGRP '07' - task jgdas_enkf_fcst_grp8 - edit ENSGRP '08' - task jgdas_enkf_fcst_grp9 - edit ENSGRP '09' - task jgdas_enkf_fcst_grp10 - edit ENSGRP '10' - task jgdas_enkf_fcst_grp11 - edit ENSGRP '11' - task jgdas_enkf_fcst_grp12 - edit ENSGRP '12' - task jgdas_enkf_fcst_grp13 - edit ENSGRP '13' - task jgdas_enkf_fcst_grp14 - edit ENSGRP '14' - task jgdas_enkf_fcst_grp15 - edit ENSGRP '15' - task jgdas_enkf_fcst_grp16 - edit ENSGRP '16' - task jgdas_enkf_fcst_grp17 - edit ENSGRP '17' - task jgdas_enkf_fcst_grp18 - edit ENSGRP '18' - task jgdas_enkf_fcst_grp19 - edit ENSGRP '19' - task jgdas_enkf_fcst_grp20 - edit ENSGRP '20' - endfamily - family post - trigger ./forecast == complete - task jgdas_enkf_post_f003 - edit FHMIN_EPOS '003' - edit FHMAX_EPOS '003' - edit FHOUT_EPOS '003' - task jgdas_enkf_post_f004 - edit FHMIN_EPOS '004' - edit FHMAX_EPOS '004' - edit FHOUT_EPOS '004' - task jgdas_enkf_post_f005 - edit FHMIN_EPOS '005' - edit FHMAX_EPOS '005' - edit FHOUT_EPOS '005' - task jgdas_enkf_post_f006 - edit FHMIN_EPOS '006' - edit FHMAX_EPOS '006' - edit FHOUT_EPOS '006' - task jgdas_enkf_post_f007 - edit FHMIN_EPOS '007' - edit FHMAX_EPOS '007' - edit FHOUT_EPOS '007' - task jgdas_enkf_post_f008 - edit FHMIN_EPOS '008' - edit FHMAX_EPOS '008' - edit FHOUT_EPOS '008' - task jgdas_enkf_post_f009 - edit FHMIN_EPOS '009' - edit FHMAX_EPOS '009' - edit FHOUT_EPOS '009' - endfamily - endfamily - task jgdas_verfrad - trigger enkf == complete - endfamily - diff --git a/ecflow/ecf/defs/gdas_06.def b/ecflow/ecf/defs/gdas_06.def deleted file mode 100644 index 391d8c90d2..0000000000 --- a/ecflow/ecf/defs/gdas_06.def +++ /dev/null @@ -1,241 +0,0 @@ - family gdas - edit CYC '06' - edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3' - edit PROJ 'GDAS-OPS' - edit NET 'gfs' - edit RUN 'gdas' - edit COM '/gpfs/dell1/nco/ops/com' - edit QUEUESHARED 'prod_shared' - edit QUEUESERV 'prod_transfer' - edit QUEUE 'prod' - edit MACHINE_SITE 'production' - family dump - task jgdas_tropcy_qc_reloc - time 11:45 - task jgdas_dump - event 1 release_sfcprep - time 11:50 - task jgdas_dump_post - trigger jgdas_dump == complete - event 1 release_gdas06_dump_alert - task jgdas_dump_alert - trigger jgdas_dump_post:release_gdas06_dump_alert - task jmodel_realtime_gdas - trigger jgdas_dump_alert == complete - endfamily - family prep - task jgdas_emcsfc_sfc_prep - trigger ../dump/jgdas_dump:release_sfcprep - task jgdas_prep - trigger ../dump/jgdas_dump == complete and ../dump/jgdas_tropcy_qc_reloc == complete - task jgdas_prep_post - trigger jgdas_prep == complete and ../analysis/jgdas_analysis_high == complete - endfamily - family analysis - task jgdas_analysis_high - trigger ../prep/jgdas_prep == complete and ../prep/jgdas_emcsfc_sfc_prep == complete - event 1 release_fcst - endfamily - task jgdas_vminmon - trigger analysis/jgdas_analysis_high == complete - family forecast - task jgdas_forecast_high - trigger ../analysis/jgdas_analysis_high:release_fcst - endfamily - family gempak - task jgdas_gempak - trigger ../forecast/jgdas_forecast_high == complete - task jgdas_gempak_meta_ncdc - trigger ./jgdas_gempak == complete - endfamily - family post - task jgdas_post_manager - trigger ../forecast == active - event 1 release_postanl - event 2 release_post000 - event 3 release_post001 - event 4 release_post002 - event 5 release_post003 - event 6 release_post004 - event 7 release_post005 - event 8 release_post006 - event 9 release_post007 - event 10 release_post008 - event 11 release_post009 - task jgdas_post_anl - trigger ./jgdas_post_manager:release_postanl - edit FHRGRP '000' - edit FHRLST 'anl' - edit HR 'anl' - edit FHR 'anl' - event 1 release_postanl - task jgdas_post_f000 - trigger ./jgdas_post_manager:release_post000 - edit FHR 'f000' - edit HR '000' - edit FHRGRP '001' - edit FHRLST 'f000' - task jgdas_post_f001 - trigger ./jgdas_post_manager:release_post001 - edit FHR 'f001' - edit HR '001' - edit FHRGRP '002' - edit FHRLST 'f001' - task jgdas_post_f002 - trigger ./jgdas_post_manager:release_post002 - edit FHR 'f002' - edit HR '002' - edit FHRGRP '003' - edit FHRLST 'f002' - task jgdas_post_f003 - trigger ./jgdas_post_manager:release_post003 - edit FHR 'f003' - edit HR '003' - edit FHRGRP '004' - edit FHRLST 'f003' - task jgdas_post_f004 - trigger ./jgdas_post_manager:release_post004 - edit FHR 'f004' - edit HR '004' - edit FHRGRP '005' - edit FHRLST 'f004' - task jgdas_post_f005 - trigger ./jgdas_post_manager:release_post005 - edit FHR 'f005' - edit HR '005' - edit FHRGRP '006' - edit FHRLST 'f005' - task jgdas_post_f006 - trigger ./jgdas_post_manager:release_post006 - edit FHR 'f006' - edit HR '006' - edit FHRGRP '007' - edit FHRLST 'f006' - task jgdas_post_f007 - trigger ./jgdas_post_manager:release_post007 - edit FHR 'f007' - edit HR '007' - edit FHRGRP '008' - edit FHRLST 'f007' - task jgdas_post_f008 - trigger ./jgdas_post_manager:release_post008 - edit FHR 'f008' - edit HR '008' - edit FHRGRP '009' - edit FHRLST 'f008' - task jgdas_post_f009 - trigger ./jgdas_post_manager:release_post009 - edit FHR 'f009' - edit HR '009' - edit FHRGRP '010' - edit FHRLST 'f009' - endfamily - family enkf - task jgdas_enkf_select_obs - trigger ../prep/jgdas_prep == complete - family innovate - trigger ./jgdas_enkf_select_obs == complete - task jgdas_enkf_innovate_obs_grp1 - edit ENSGRP '01' - task jgdas_enkf_innovate_obs_grp2 - edit ENSGRP '02' - task jgdas_enkf_innovate_obs_grp3 - edit ENSGRP '03' - task jgdas_enkf_innovate_obs_grp4 - edit ENSGRP '04' - task jgdas_enkf_innovate_obs_grp5 - edit ENSGRP '05' - task jgdas_enkf_innovate_obs_grp6 - edit ENSGRP '06' - task jgdas_enkf_innovate_obs_grp7 - edit ENSGRP '07' - task jgdas_enkf_innovate_obs_grp8 - edit ENSGRP '08' - task jgdas_enkf_innovate_obs_grp9 - edit ENSGRP '09' - task jgdas_enkf_innovate_obs_grp10 - edit ENSGRP '10' - endfamily - task jgdas_enkf_update - trigger ./innovate == complete - task jgdas_enkf_inflate_recenter - trigger ./jgdas_enkf_update == complete and ../analysis/jgdas_analysis_high == complete - family forecast - trigger ./jgdas_enkf_inflate_recenter == complete - task jgdas_enkf_fcst_grp1 - edit ENSGRP '01' - task jgdas_enkf_fcst_grp2 - edit ENSGRP '02' - task jgdas_enkf_fcst_grp3 - edit ENSGRP '03' - task jgdas_enkf_fcst_grp4 - edit ENSGRP '04' - task jgdas_enkf_fcst_grp5 - edit ENSGRP '05' - task jgdas_enkf_fcst_grp6 - edit ENSGRP '06' - task jgdas_enkf_fcst_grp7 - edit ENSGRP '07' - task jgdas_enkf_fcst_grp8 - edit ENSGRP '08' - task jgdas_enkf_fcst_grp9 - edit ENSGRP '09' - task jgdas_enkf_fcst_grp10 - edit ENSGRP '10' - task jgdas_enkf_fcst_grp11 - edit ENSGRP '11' - task jgdas_enkf_fcst_grp12 - edit ENSGRP '12' - task jgdas_enkf_fcst_grp13 - edit ENSGRP '13' - task jgdas_enkf_fcst_grp14 - edit ENSGRP '14' - task jgdas_enkf_fcst_grp15 - edit ENSGRP '15' - task jgdas_enkf_fcst_grp16 - edit ENSGRP '16' - task jgdas_enkf_fcst_grp17 - edit ENSGRP '17' - task jgdas_enkf_fcst_grp18 - edit ENSGRP '18' - task jgdas_enkf_fcst_grp19 - edit ENSGRP '19' - task jgdas_enkf_fcst_grp20 - edit ENSGRP '20' - endfamily - family post - trigger ./forecast == complete - task jgdas_enkf_post_f003 - edit FHMIN_EPOS '003' - edit FHMAX_EPOS '003' - edit FHOUT_EPOS '003' - task jgdas_enkf_post_f004 - edit FHMIN_EPOS '004' - edit FHMAX_EPOS '004' - edit FHOUT_EPOS '004' - task jgdas_enkf_post_f005 - edit FHMIN_EPOS '005' - edit FHMAX_EPOS '005' - edit FHOUT_EPOS '005' - task jgdas_enkf_post_f006 - edit FHMIN_EPOS '006' - edit FHMAX_EPOS '006' - edit FHOUT_EPOS '006' - task jgdas_enkf_post_f007 - edit FHMIN_EPOS '007' - edit FHMAX_EPOS '007' - edit FHOUT_EPOS '007' - task jgdas_enkf_post_f008 - edit FHMIN_EPOS '008' - edit FHMAX_EPOS '008' - edit FHOUT_EPOS '008' - task jgdas_enkf_post_f009 - edit FHMIN_EPOS '009' - edit FHMAX_EPOS '009' - edit FHOUT_EPOS '009' - endfamily - endfamily - task jgdas_verfrad - trigger enkf == complete - endfamily - diff --git a/ecflow/ecf/defs/gdas_12.def b/ecflow/ecf/defs/gdas_12.def deleted file mode 100644 index 90a6c915f5..0000000000 --- a/ecflow/ecf/defs/gdas_12.def +++ /dev/null @@ -1,246 +0,0 @@ - family gdas - edit CYC '12' - edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3' - edit PROJ 'GDAS-OPS' - edit NET 'gfs' - edit RUN 'gdas' - edit COM '/gpfs/dell1/nco/ops/com' - edit QUEUESHARED 'prod_shared' - edit QUEUESERV 'prod_transfer' - edit QUEUE 'prod' - family dump - task jgdas_tropcy_qc_reloc - time 17:45 - task jgdas_dump - event 1 release_sfcprep - time 17:50 - task jgdas_dump_post - trigger jgdas_dump == complete - event 1 release_gdas12_dump_alert - task jgdas_dump_alert - trigger jgdas_dump_post:release_gdas12_dump_alert - task jmodel_realtime_gdas - trigger jgdas_dump_alert == complete - endfamily - family prep - task jgdas_emcsfc_sfc_prep - trigger ../dump/jgdas_dump:release_sfcprep - task jgdas_prep - trigger ../dump/jgdas_dump == complete and ../dump/jgdas_tropcy_qc_reloc == complete - task jgdas_prep_post - trigger jgdas_prep == complete and ../analysis/jgdas_analysis_high == complete - endfamily - family analysis - task jgdas_analysis_high - trigger ../prep/jgdas_prep == complete and ../prep/jgdas_emcsfc_sfc_prep == complete - event 1 release_fcst - endfamily - task jgdas_vminmon - trigger analysis/jgdas_analysis_high == complete - family forecast - task jgdas_forecast_high - trigger ../analysis/jgdas_analysis_high:release_fcst - endfamily - family post_processing - family bulletins - task jgdas_mknavybulls - trigger ../../post == complete - endfamily - endfamily - family gempak - task jgdas_gempak - trigger ../forecast/jgdas_forecast_high == complete - task jgdas_gempak_meta_ncdc - trigger ./jgdas_gempak == complete - endfamily - family post - task jgdas_post_manager - trigger ../forecast == active - event 1 release_postanl - event 2 release_post000 - event 3 release_post001 - event 4 release_post002 - event 5 release_post003 - event 6 release_post004 - event 7 release_post005 - event 8 release_post006 - event 9 release_post007 - event 10 release_post008 - event 11 release_post009 - task jgdas_post_anl - trigger ./jgdas_post_manager:release_postanl - edit FHRGRP '000' - edit FHRLST 'anl' - edit HR 'anl' - edit FHR 'anl' - event 1 release_postanl - task jgdas_post_f000 - trigger ./jgdas_post_manager:release_post000 - edit FHR 'f000' - edit HR '000' - edit FHRGRP '001' - edit FHRLST 'f000' - task jgdas_post_f001 - trigger ./jgdas_post_manager:release_post001 - edit FHR 'f001' - edit HR '001' - edit FHRGRP '002' - edit FHRLST 'f001' - task jgdas_post_f002 - trigger ./jgdas_post_manager:release_post002 - edit FHR 'f002' - edit HR '002' - edit FHRGRP '003' - edit FHRLST 'f002' - task jgdas_post_f003 - trigger ./jgdas_post_manager:release_post003 - edit FHR 'f003' - edit HR '003' - edit FHRGRP '004' - edit FHRLST 'f003' - task jgdas_post_f004 - trigger ./jgdas_post_manager:release_post004 - edit FHR 'f004' - edit HR '004' - edit FHRGRP '005' - edit FHRLST 'f004' - task jgdas_post_f005 - trigger ./jgdas_post_manager:release_post005 - edit FHR 'f005' - edit HR '005' - edit FHRGRP '006' - edit FHRLST 'f005' - task jgdas_post_f006 - trigger ./jgdas_post_manager:release_post006 - edit FHR 'f006' - edit HR '006' - edit FHRGRP '007' - edit FHRLST 'f006' - task jgdas_post_f007 - trigger ./jgdas_post_manager:release_post007 - edit FHR 'f007' - edit HR '007' - edit FHRGRP '008' - edit FHRLST 'f007' - task jgdas_post_f008 - trigger ./jgdas_post_manager:release_post008 - edit FHR 'f008' - edit HR '008' - edit FHRGRP '009' - edit FHRLST 'f008' - task jgdas_post_f009 - trigger ./jgdas_post_manager:release_post009 - edit FHR 'f009' - edit HR '009' - edit FHRGRP '010' - edit FHRLST 'f009' - endfamily - family enkf - task jgdas_enkf_select_obs - trigger ../prep/jgdas_prep == complete - family innovate - trigger ./jgdas_enkf_select_obs == complete - task jgdas_enkf_innovate_obs_grp1 - edit ENSGRP '01' - task jgdas_enkf_innovate_obs_grp2 - edit ENSGRP '02' - task jgdas_enkf_innovate_obs_grp3 - edit ENSGRP '03' - task jgdas_enkf_innovate_obs_grp4 - edit ENSGRP '04' - task jgdas_enkf_innovate_obs_grp5 - edit ENSGRP '05' - task jgdas_enkf_innovate_obs_grp6 - edit ENSGRP '06' - task jgdas_enkf_innovate_obs_grp7 - edit ENSGRP '07' - task jgdas_enkf_innovate_obs_grp8 - edit ENSGRP '08' - task jgdas_enkf_innovate_obs_grp9 - edit ENSGRP '09' - task jgdas_enkf_innovate_obs_grp10 - edit ENSGRP '10' - endfamily - task jgdas_enkf_update - trigger ./innovate == complete - task jgdas_enkf_inflate_recenter - trigger ./jgdas_enkf_update == complete and ../analysis/jgdas_analysis_high == complete - family forecast - trigger ./jgdas_enkf_inflate_recenter == complete - task jgdas_enkf_fcst_grp1 - edit ENSGRP '01' - task jgdas_enkf_fcst_grp2 - edit ENSGRP '02' - task jgdas_enkf_fcst_grp3 - edit ENSGRP '03' - task jgdas_enkf_fcst_grp4 - edit ENSGRP '04' - task jgdas_enkf_fcst_grp5 - edit ENSGRP '05' - task jgdas_enkf_fcst_grp6 - edit ENSGRP '06' - task jgdas_enkf_fcst_grp7 - edit ENSGRP '07' - task jgdas_enkf_fcst_grp8 - edit ENSGRP '08' - task jgdas_enkf_fcst_grp9 - edit ENSGRP '09' - task jgdas_enkf_fcst_grp10 - edit ENSGRP '10' - task jgdas_enkf_fcst_grp11 - edit ENSGRP '11' - task jgdas_enkf_fcst_grp12 - edit ENSGRP '12' - task jgdas_enkf_fcst_grp13 - edit ENSGRP '13' - task jgdas_enkf_fcst_grp14 - edit ENSGRP '14' - task jgdas_enkf_fcst_grp15 - edit ENSGRP '15' - task jgdas_enkf_fcst_grp16 - edit ENSGRP '16' - task jgdas_enkf_fcst_grp17 - edit ENSGRP '17' - task jgdas_enkf_fcst_grp18 - edit ENSGRP '18' - task jgdas_enkf_fcst_grp19 - edit ENSGRP '19' - task jgdas_enkf_fcst_grp20 - edit ENSGRP '20' - endfamily - family post - trigger ./forecast == complete - task jgdas_enkf_post_f003 - edit FHMIN_EPOS '003' - edit FHMAX_EPOS '003' - edit FHOUT_EPOS '003' - task jgdas_enkf_post_f004 - edit FHMIN_EPOS '004' - edit FHMAX_EPOS '004' - edit FHOUT_EPOS '004' - task jgdas_enkf_post_f005 - edit FHMIN_EPOS '005' - edit FHMAX_EPOS '005' - edit FHOUT_EPOS '005' - task jgdas_enkf_post_f006 - edit FHMIN_EPOS '006' - edit FHMAX_EPOS '006' - edit FHOUT_EPOS '006' - task jgdas_enkf_post_f007 - edit FHMIN_EPOS '007' - edit FHMAX_EPOS '007' - edit FHOUT_EPOS '007' - task jgdas_enkf_post_f008 - edit FHMIN_EPOS '008' - edit FHMAX_EPOS '008' - edit FHOUT_EPOS '008' - task jgdas_enkf_post_f009 - edit FHMIN_EPOS '009' - edit FHMAX_EPOS '009' - edit FHOUT_EPOS '009' - endfamily - endfamily - task jgdas_verfrad - trigger enkf == complete - endfamily - diff --git a/ecflow/ecf/defs/gdas_18.def b/ecflow/ecf/defs/gdas_18.def deleted file mode 100644 index 10b0415530..0000000000 --- a/ecflow/ecf/defs/gdas_18.def +++ /dev/null @@ -1,240 +0,0 @@ - family gdas - edit CYC '18' - edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3' - edit PROJ 'GDAS-OPS' - edit NET 'gfs' - edit RUN 'gdas' - edit COM '/gpfs/dell1/nco/ops/com' - edit QUEUESHARED 'prod_shared' - edit QUEUESERV 'prod_transfer' - edit QUEUE 'prod' - family dump - task jgdas_tropcy_qc_reloc - time 23:45 - task jgdas_dump - event 1 release_sfcprep - time 23:50 - task jgdas_dump_post - trigger jgdas_dump == complete - event 1 release_gdas18_dump_alert - task jgdas_dump_alert - trigger jgdas_dump_post:release_gdas18_dump_alert - task jmodel_realtime_gdas - trigger jgdas_dump_alert == complete - endfamily - family prep - task jgdas_emcsfc_sfc_prep - trigger ../dump/jgdas_dump:release_sfcprep - task jgdas_prep - trigger ../dump/jgdas_dump == complete and ../dump/jgdas_tropcy_qc_reloc == complete - task jgdas_prep_post - trigger jgdas_prep == complete and ../analysis/jgdas_analysis_high == complete - endfamily - family analysis - task jgdas_analysis_high - trigger ../prep/jgdas_prep == complete and ../prep/jgdas_emcsfc_sfc_prep == complete - event 1 release_fcst - endfamily - task jgdas_vminmon - trigger analysis/jgdas_analysis_high == complete - family forecast - task jgdas_forecast_high - trigger ../analysis/jgdas_analysis_high:release_fcst and ../enkf/innovate == complete - endfamily - family gempak - task jgdas_gempak - trigger ../forecast/jgdas_forecast_high == complete - task jgdas_gempak_meta_ncdc - trigger ./jgdas_gempak == complete - endfamily - family post - task jgdas_post_manager - trigger ../forecast == active - event 1 release_postanl - event 2 release_post000 - event 3 release_post001 - event 4 release_post002 - event 5 release_post003 - event 6 release_post004 - event 7 release_post005 - event 8 release_post006 - event 9 release_post007 - event 10 release_post008 - event 11 release_post009 - task jgdas_post_anl - trigger ./jgdas_post_manager:release_postanl - edit FHRGRP '000' - edit FHRLST 'anl' - edit HR 'anl' - edit FHR 'anl' - event 1 release_postanl - task jgdas_post_f000 - trigger ./jgdas_post_manager:release_post000 - edit FHR 'f000' - edit HR '000' - edit FHRGRP '001' - edit FHRLST 'f000' - task jgdas_post_f001 - trigger ./jgdas_post_manager:release_post001 - edit FHR 'f001' - edit HR '001' - edit FHRGRP '002' - edit FHRLST 'f001' - task jgdas_post_f002 - trigger ./jgdas_post_manager:release_post002 - edit FHR 'f002' - edit HR '002' - edit FHRGRP '003' - edit FHRLST 'f002' - task jgdas_post_f003 - trigger ./jgdas_post_manager:release_post003 - edit FHR 'f003' - edit HR '003' - edit FHRGRP '004' - edit FHRLST 'f003' - task jgdas_post_f004 - trigger ./jgdas_post_manager:release_post004 - edit FHR 'f004' - edit HR '004' - edit FHRGRP '005' - edit FHRLST 'f004' - task jgdas_post_f005 - trigger ./jgdas_post_manager:release_post005 - edit FHR 'f005' - edit HR '005' - edit FHRGRP '006' - edit FHRLST 'f005' - task jgdas_post_f006 - trigger ./jgdas_post_manager:release_post006 - edit FHR 'f006' - edit HR '006' - edit FHRGRP '007' - edit FHRLST 'f006' - task jgdas_post_f007 - trigger ./jgdas_post_manager:release_post007 - edit FHR 'f007' - edit HR '007' - edit FHRGRP '008' - edit FHRLST 'f007' - task jgdas_post_f008 - trigger ./jgdas_post_manager:release_post008 - edit FHR 'f008' - edit HR '008' - edit FHRGRP '009' - edit FHRLST 'f008' - task jgdas_post_f009 - trigger ./jgdas_post_manager:release_post009 - edit FHR 'f009' - edit HR '009' - edit FHRGRP '010' - edit FHRLST 'f009' - endfamily - family enkf - task jgdas_enkf_select_obs - trigger ../prep/jgdas_prep == complete - family innovate - trigger ./jgdas_enkf_select_obs == complete - task jgdas_enkf_innovate_obs_grp1 - edit ENSGRP '01' - task jgdas_enkf_innovate_obs_grp2 - edit ENSGRP '02' - task jgdas_enkf_innovate_obs_grp3 - edit ENSGRP '03' - task jgdas_enkf_innovate_obs_grp4 - edit ENSGRP '04' - task jgdas_enkf_innovate_obs_grp5 - edit ENSGRP '05' - task jgdas_enkf_innovate_obs_grp6 - edit ENSGRP '06' - task jgdas_enkf_innovate_obs_grp7 - edit ENSGRP '07' - task jgdas_enkf_innovate_obs_grp8 - edit ENSGRP '08' - task jgdas_enkf_innovate_obs_grp9 - edit ENSGRP '09' - task jgdas_enkf_innovate_obs_grp10 - edit ENSGRP '10' - endfamily - task jgdas_enkf_update - trigger ./innovate == complete - task jgdas_enkf_inflate_recenter - trigger ./jgdas_enkf_update == complete and ../analysis/jgdas_analysis_high == complete - family forecast - trigger ./jgdas_enkf_inflate_recenter == complete - task jgdas_enkf_fcst_grp1 - edit ENSGRP '01' - task jgdas_enkf_fcst_grp2 - edit ENSGRP '02' - task jgdas_enkf_fcst_grp3 - edit ENSGRP '03' - task jgdas_enkf_fcst_grp4 - edit ENSGRP '04' - task jgdas_enkf_fcst_grp5 - edit ENSGRP '05' - task jgdas_enkf_fcst_grp6 - edit ENSGRP '06' - task jgdas_enkf_fcst_grp7 - edit ENSGRP '07' - task jgdas_enkf_fcst_grp8 - edit ENSGRP '08' - task jgdas_enkf_fcst_grp9 - edit ENSGRP '09' - task jgdas_enkf_fcst_grp10 - edit ENSGRP '10' - task jgdas_enkf_fcst_grp11 - edit ENSGRP '11' - task jgdas_enkf_fcst_grp12 - edit ENSGRP '12' - task jgdas_enkf_fcst_grp13 - edit ENSGRP '13' - task jgdas_enkf_fcst_grp14 - edit ENSGRP '14' - task jgdas_enkf_fcst_grp15 - edit ENSGRP '15' - task jgdas_enkf_fcst_grp16 - edit ENSGRP '16' - task jgdas_enkf_fcst_grp17 - edit ENSGRP '17' - task jgdas_enkf_fcst_grp18 - edit ENSGRP '18' - task jgdas_enkf_fcst_grp19 - edit ENSGRP '19' - task jgdas_enkf_fcst_grp20 - edit ENSGRP '20' - endfamily - family post - trigger ./forecast == complete - task jgdas_enkf_post_f003 - edit FHMIN_EPOS '003' - edit FHMAX_EPOS '003' - edit FHOUT_EPOS '003' - task jgdas_enkf_post_f004 - edit FHMIN_EPOS '004' - edit FHMAX_EPOS '004' - edit FHOUT_EPOS '004' - task jgdas_enkf_post_f005 - edit FHMIN_EPOS '005' - edit FHMAX_EPOS '005' - edit FHOUT_EPOS '005' - task jgdas_enkf_post_f006 - edit FHMIN_EPOS '006' - edit FHMAX_EPOS '006' - edit FHOUT_EPOS '006' - task jgdas_enkf_post_f007 - edit FHMIN_EPOS '007' - edit FHMAX_EPOS '007' - edit FHOUT_EPOS '007' - task jgdas_enkf_post_f008 - edit FHMIN_EPOS '008' - edit FHMAX_EPOS '008' - edit FHOUT_EPOS '008' - task jgdas_enkf_post_f009 - edit FHMIN_EPOS '009' - edit FHMAX_EPOS '009' - edit FHOUT_EPOS '009' - endfamily - endfamily - task jgdas_verfrad - trigger enkf == complete - endfamily - diff --git a/ecflow/ecf/defs/gfs_00.def b/ecflow/ecf/defs/gfs_00.def deleted file mode 100644 index ba53c61198..0000000000 --- a/ecflow/ecf/defs/gfs_00.def +++ /dev/null @@ -1,2300 +0,0 @@ - family gfs - edit CYC '00' - edit ECF_FILES '/ecf/ecfnets/scripts/gfs_FV3' - edit PROJ 'GFS-OPS' - edit NET 'gfs' - edit RUN 'gfs' - edit COM '/gpfs/dell1/nco/ops/com' - edit QUEUESHARED 'prod_shared' - edit QUEUESERV 'prod_transfer' - edit QUEUE 'prod' - family dump - task jgfs_tropcy_qc_reloc - event 1 jtwc_bull_email - time 02:41 - task jgfs_dump - event 1 release_sfcprep - time 02:47 - task jgfs_dump_post - trigger jgfs_dump eq complete - event 1 release_gfs00_dump_alert - task jgfs_dump_alert - trigger jgfs_dump_post:release_gfs00_dump_alert - task jmodel_realtime_gfs - trigger jgfs_dump_alert eq complete - endfamily - family prep - task jgfs_emcsfc_sfc_prep - trigger ../dump/jgfs_dump:release_sfcprep - task jgfs_prep - trigger ../dump/jgfs_dump eq complete and ../dump/jgfs_tropcy_qc_reloc eq complete - task jgfs_prep_post - trigger jgfs_prep eq complete and ../jgfs_analysis eq complete - endfamily - task jgfs_analysis - trigger prep/jgfs_prep eq complete and prep/jgfs_emcsfc_sfc_prep == complete - event 1 release_fcst - task jgfs_vminmon - trigger jgfs_analysis == complete - family forecast - task jgfs_forecast_high - trigger ../jgfs_analysis:release_fcst - endfamily - family post - task jgfs_post_manager - trigger ../jgfs_analysis eq complete - event 1 release_postanl - event 2 release_post000 - event 3 release_post001 - event 4 release_post002 - event 5 release_post003 - event 6 release_post004 - event 7 release_post005 - event 8 release_post006 - event 9 release_post007 - event 10 release_post008 - event 11 release_post009 - event 12 release_post010 - event 13 release_post011 - event 14 release_post012 - event 15 release_post013 - event 16 release_post014 - event 17 release_post015 - event 18 release_post016 - event 19 release_post017 - event 20 release_post018 - event 21 release_post019 - event 22 release_post020 - event 23 release_post021 - event 24 release_post022 - event 25 release_post023 - event 26 release_post024 - event 27 release_post025 - event 28 release_post026 - event 29 release_post027 - event 30 release_post028 - event 31 release_post029 - event 32 release_post030 - event 33 release_post031 - event 34 release_post032 - event 35 release_post033 - event 36 release_post034 - event 37 release_post035 - event 38 release_post036 - event 39 release_post037 - event 40 release_post038 - event 41 release_post039 - event 42 release_post040 - event 43 release_post041 - event 44 release_post042 - event 45 release_post043 - event 46 release_post044 - event 47 release_post045 - event 48 release_post046 - event 49 release_post047 - event 50 release_post048 - event 51 release_post049 - event 52 release_post050 - event 53 release_post051 - event 54 release_post052 - event 55 release_post053 - event 56 release_post054 - event 57 release_post055 - event 58 release_post056 - event 59 release_post057 - event 60 release_post058 - event 61 release_post059 - event 62 release_post060 - event 63 release_post061 - event 64 release_post062 - event 65 release_post063 - event 66 release_post064 - event 67 release_post065 - event 68 release_post066 - event 69 release_post067 - event 70 release_post068 - event 71 release_post069 - event 72 release_post070 - event 73 release_post071 - event 74 release_post072 - event 75 release_post073 - event 76 release_post074 - event 77 release_post075 - event 78 release_post076 - event 79 release_post077 - event 80 release_post078 - event 81 release_post079 - event 82 release_post080 - event 83 release_post081 - event 84 release_post082 - event 85 release_post083 - event 86 release_post084 - event 87 release_post085 - event 88 release_post086 - event 89 release_post087 - event 90 release_post088 - event 91 release_post089 - event 92 release_post090 - event 93 release_post091 - event 94 release_post092 - event 95 release_post093 - event 96 release_post094 - event 97 release_post095 - event 98 release_post096 - event 99 release_post097 - event 100 release_post098 - event 101 release_post099 - event 102 release_post100 - event 103 release_post101 - event 104 release_post102 - event 105 release_post103 - event 106 release_post104 - event 107 release_post105 - event 108 release_post106 - event 109 release_post107 - event 110 release_post108 - event 111 release_post109 - event 112 release_post110 - event 113 release_post111 - event 114 release_post112 - event 115 release_post113 - event 116 release_post114 - event 117 release_post115 - event 118 release_post116 - event 119 release_post117 - event 120 release_post118 - event 121 release_post119 - event 122 release_post120 - event 123 release_post123 - event 124 release_post126 - event 125 release_post129 - event 126 release_post132 - event 127 release_post135 - event 128 release_post138 - event 129 release_post141 - event 130 release_post144 - event 131 release_post147 - event 132 release_post150 - event 133 release_post153 - event 134 release_post156 - event 135 release_post159 - event 136 release_post162 - event 137 release_post165 - event 138 release_post168 - event 139 release_post171 - event 140 release_post174 - event 141 release_post177 - event 142 release_post180 - event 143 release_post183 - event 144 release_post186 - event 145 release_post189 - event 146 release_post192 - event 147 release_post195 - event 148 release_post198 - event 149 release_post201 - event 150 release_post204 - event 151 release_post207 - event 152 release_post210 - event 153 release_post213 - event 154 release_post216 - event 155 release_post219 - event 156 release_post222 - event 157 release_post225 - event 158 release_post228 - event 159 release_post231 - event 160 release_post234 - event 161 release_post237 - event 162 release_post240 - event 163 release_post243 - event 164 release_post246 - event 165 release_post249 - event 166 release_post252 - event 167 release_post255 - event 168 release_post258 - event 169 release_post261 - event 170 release_post264 - event 171 release_post267 - event 172 release_post270 - event 173 release_post273 - event 174 release_post276 - event 175 release_post279 - event 176 release_post282 - event 177 release_post285 - event 178 release_post288 - event 179 release_post291 - event 180 release_post294 - event 181 release_post297 - event 182 release_post300 - event 183 release_post303 - event 184 release_post306 - event 185 release_post309 - event 186 release_post312 - event 187 release_post315 - event 188 release_post318 - event 189 release_post321 - event 190 release_post324 - event 191 release_post327 - event 192 release_post330 - event 193 release_post333 - event 194 release_post336 - event 195 release_post339 - event 196 release_post342 - event 197 release_post345 - event 198 release_post348 - event 199 release_post351 - event 200 release_post354 - event 201 release_post357 - event 202 release_post360 - event 203 release_post363 - event 204 release_post366 - event 205 release_post369 - event 206 release_post372 - event 207 release_post375 - event 208 release_post378 - event 209 release_post381 - event 210 release_post384 - task jgfs_post_anl - trigger ./jgfs_post_manager:release_postanl - edit FHRGRP '000' - edit FHRLST 'anl' - edit HR 'anl' - edit FHR 'anl' - event 1 release_postanl - task jgfs_post_f000 - trigger ./jgfs_post_manager:release_post000 - edit FHRGRP '001' - edit FHRLST 'f000' - edit FHR 'f000' - edit HR '000' - task jgfs_post_f001 - trigger ./jgfs_post_manager:release_post001 - edit FHRGRP '002' - edit FHRLST 'f001' - edit FHR 'f001' - edit HR '001' - task jgfs_post_f002 - trigger ./jgfs_post_manager:release_post002 - edit FHRGRP '003' - edit FHRLST 'f002' - edit FHR 'f002' - edit HR '002' - task jgfs_post_f003 - trigger ./jgfs_post_manager:release_post003 - edit FHRGRP '004' - edit FHRLST 'f003' - edit FHR 'f003' - edit HR '003' - task jgfs_post_f004 - trigger ./jgfs_post_manager:release_post004 - edit FHRGRP '005' - edit FHRLST 'f004' - edit FHR 'f004' - edit HR '004' - task jgfs_post_f005 - trigger ./jgfs_post_manager:release_post005 - edit FHRGRP '006' - edit FHRLST 'f005' - edit FHR 'f005' - edit HR '005' - task jgfs_post_f006 - trigger ./jgfs_post_manager:release_post006 - edit FHRGRP '007' - edit FHRLST 'f006' - edit FHR 'f006' - edit HR '006' - task jgfs_post_f007 - trigger ./jgfs_post_manager:release_post007 - edit FHRGRP '008' - edit FHRLST 'f007' - edit FHR 'f007' - edit HR '007' - task jgfs_post_f008 - trigger ./jgfs_post_manager:release_post008 - edit FHRGRP '009' - edit FHRLST 'f008' - edit FHR 'f008' - edit HR '008' - task jgfs_post_f009 - trigger ./jgfs_post_manager:release_post009 - edit FHRGRP '010' - edit FHRLST 'f009' - edit FHR 'f009' - edit HR '009' - task jgfs_post_f010 - trigger ./jgfs_post_manager:release_post010 - edit FHRGRP '011' - edit FHRLST 'f010' - edit FHR 'f010' - edit HR '010' - task jgfs_post_f011 - trigger ./jgfs_post_manager:release_post011 - edit FHRGRP '012' - edit FHRLST 'f011' - edit FHR 'f011' - edit HR '011' - task jgfs_post_f012 - trigger ./jgfs_post_manager:release_post012 - edit FHRGRP '013' - edit FHRLST 'f012' - edit FHR 'f012' - edit HR '012' - task jgfs_post_f013 - trigger ./jgfs_post_manager:release_post013 - edit FHRGRP '014' - edit FHRLST 'f013' - edit FHR 'f013' - edit HR '013' - task jgfs_post_f014 - trigger ./jgfs_post_manager:release_post014 - edit FHRGRP '015' - edit FHRLST 'f014' - edit FHR 'f014' - edit HR '014' - task jgfs_post_f015 - trigger ./jgfs_post_manager:release_post015 - edit FHRGRP '016' - edit FHRLST 'f015' - edit FHR 'f015' - edit HR '015' - task jgfs_post_f016 - trigger ./jgfs_post_manager:release_post016 - edit FHRGRP '017' - edit FHRLST 'f016' - edit FHR 'f016' - edit HR '016' - task jgfs_post_f017 - trigger ./jgfs_post_manager:release_post017 - edit FHRGRP '018' - edit FHRLST 'f017' - edit FHR 'f017' - edit HR '017' - task jgfs_post_f018 - trigger ./jgfs_post_manager:release_post018 - edit FHRGRP '019' - edit FHRLST 'f018' - edit FHR 'f018' - edit HR '018' - task jgfs_post_f019 - trigger ./jgfs_post_manager:release_post019 - edit FHRGRP '020' - edit FHRLST 'f019' - edit FHR 'f019' - edit HR '019' - task jgfs_post_f020 - trigger ./jgfs_post_manager:release_post020 - edit FHRGRP '021' - edit FHRLST 'f020' - edit FHR 'f020' - edit HR '020' - task jgfs_post_f021 - trigger ./jgfs_post_manager:release_post021 - edit FHRGRP '022' - edit FHRLST 'f021' - edit FHR 'f021' - edit HR '021' - task jgfs_post_f022 - trigger ./jgfs_post_manager:release_post022 - edit FHRGRP '023' - edit FHRLST 'f022' - edit FHR 'f022' - edit HR '022' - task jgfs_post_f023 - trigger ./jgfs_post_manager:release_post023 - edit FHRGRP '024' - edit FHRLST 'f023' - edit FHR 'f023' - edit HR '023' - task jgfs_post_f024 - trigger ./jgfs_post_manager:release_post024 - edit FHRGRP '025' - edit FHRLST 'f024' - edit FHR 'f024' - edit HR '024' - task jgfs_post_f025 - trigger ./jgfs_post_manager:release_post025 - edit FHRGRP '026' - edit FHRLST 'f025' - edit FHR 'f025' - edit HR '025' - task jgfs_post_f026 - trigger ./jgfs_post_manager:release_post026 - edit FHRGRP '027' - edit FHRLST 'f026' - edit FHR 'f026' - edit HR '026' - task jgfs_post_f027 - trigger ./jgfs_post_manager:release_post027 - edit FHRGRP '028' - edit FHRLST 'f027' - edit FHR 'f027' - edit HR '027' - task jgfs_post_f028 - trigger ./jgfs_post_manager:release_post028 - edit FHRGRP '029' - edit FHRLST 'f028' - edit FHR 'f028' - edit HR '028' - task jgfs_post_f029 - trigger ./jgfs_post_manager:release_post029 - edit FHRGRP '030' - edit FHRLST 'f029' - edit FHR 'f029' - edit HR '029' - task jgfs_post_f030 - trigger ./jgfs_post_manager:release_post030 - edit FHRGRP '031' - edit FHRLST 'f030' - edit FHR 'f030' - edit HR '030' - task jgfs_post_f031 - trigger ./jgfs_post_manager:release_post031 - edit FHRGRP '032' - edit FHRLST 'f031' - edit FHR 'f031' - edit HR '031' - task jgfs_post_f032 - trigger ./jgfs_post_manager:release_post032 - edit FHRGRP '033' - edit FHRLST 'f032' - edit FHR 'f032' - edit HR '032' - task jgfs_post_f033 - trigger ./jgfs_post_manager:release_post033 - edit FHRGRP '034' - edit FHRLST 'f033' - edit FHR 'f033' - edit HR '033' - task jgfs_post_f034 - trigger ./jgfs_post_manager:release_post034 - edit FHRGRP '035' - edit FHRLST 'f034' - edit FHR 'f034' - edit HR '034' - task jgfs_post_f035 - trigger ./jgfs_post_manager:release_post035 - edit FHRGRP '036' - edit FHRLST 'f035' - edit FHR 'f035' - edit HR '035' - task jgfs_post_f036 - trigger ./jgfs_post_manager:release_post036 - edit FHRGRP '037' - edit FHRLST 'f036' - edit FHR 'f036' - edit HR '036' - task jgfs_post_f037 - trigger ./jgfs_post_manager:release_post037 - edit FHRGRP '038' - edit FHRLST 'f037' - edit FHR 'f037' - edit HR '037' - task jgfs_post_f038 - trigger ./jgfs_post_manager:release_post038 - edit FHRGRP '039' - edit FHRLST 'f038' - edit FHR 'f038' - edit HR '038' - task jgfs_post_f039 - trigger ./jgfs_post_manager:release_post039 - edit FHRGRP '040' - edit FHRLST 'f039' - edit FHR 'f039' - edit HR '039' - task jgfs_post_f040 - trigger ./jgfs_post_manager:release_post040 - edit FHRGRP '041' - edit FHRLST 'f040' - edit FHR 'f040' - edit HR '040' - task jgfs_post_f041 - trigger ./jgfs_post_manager:release_post041 - edit FHRGRP '042' - edit FHRLST 'f041' - edit FHR 'f041' - edit HR '041' - task jgfs_post_f042 - trigger ./jgfs_post_manager:release_post042 - edit FHRGRP '043' - edit FHRLST 'f042' - edit FHR 'f042' - edit HR '042' - task jgfs_post_f043 - trigger ./jgfs_post_manager:release_post043 - edit FHRGRP '044' - edit FHRLST 'f043' - edit FHR 'f043' - edit HR '043' - task jgfs_post_f044 - trigger ./jgfs_post_manager:release_post044 - edit FHRGRP '045' - edit FHRLST 'f044' - edit FHR 'f044' - edit HR '044' - task jgfs_post_f045 - trigger ./jgfs_post_manager:release_post045 - edit FHRGRP '046' - edit FHRLST 'f045' - edit FHR 'f045' - edit HR '045' - task jgfs_post_f046 - trigger ./jgfs_post_manager:release_post046 - edit FHRGRP '047' - edit FHRLST 'f046' - edit FHR 'f046' - edit HR '046' - task jgfs_post_f047 - trigger ./jgfs_post_manager:release_post047 - edit FHRGRP '048' - edit FHRLST 'f047' - edit FHR 'f047' - edit HR '047' - task jgfs_post_f048 - trigger ./jgfs_post_manager:release_post048 - edit FHRGRP '049' - edit FHRLST 'f048' - edit FHR 'f048' - edit HR '048' - task jgfs_post_f049 - trigger ./jgfs_post_manager:release_post049 - edit FHRGRP '050' - edit FHRLST 'f049' - edit FHR 'f049' - edit HR '049' - task jgfs_post_f050 - trigger ./jgfs_post_manager:release_post050 - edit FHRGRP '051' - edit FHRLST 'f050' - edit FHR 'f050' - edit HR '050' - task jgfs_post_f051 - trigger ./jgfs_post_manager:release_post051 - edit FHRGRP '052' - edit FHRLST 'f051' - edit FHR 'f051' - edit HR '051' - task jgfs_post_f052 - trigger ./jgfs_post_manager:release_post052 - edit FHRGRP '053' - edit FHRLST 'f052' - edit FHR 'f052' - edit HR '052' - task jgfs_post_f053 - trigger ./jgfs_post_manager:release_post053 - edit FHRGRP '054' - edit FHRLST 'f053' - edit FHR 'f053' - edit HR '053' - task jgfs_post_f054 - trigger ./jgfs_post_manager:release_post054 - edit FHRGRP '055' - edit FHRLST 'f054' - edit FHR 'f054' - edit HR '054' - task jgfs_post_f055 - trigger ./jgfs_post_manager:release_post055 - edit FHRGRP '056' - edit FHRLST 'f055' - edit FHR 'f055' - edit HR '055' - task jgfs_post_f056 - trigger ./jgfs_post_manager:release_post056 - edit FHRGRP '057' - edit FHRLST 'f056' - edit FHR 'f056' - edit HR '056' - task jgfs_post_f057 - trigger ./jgfs_post_manager:release_post057 - edit FHRGRP '058' - edit FHRLST 'f057' - edit FHR 'f057' - edit HR '057' - task jgfs_post_f058 - trigger ./jgfs_post_manager:release_post058 - edit FHRGRP '059' - edit FHRLST 'f058' - edit FHR 'f058' - edit HR '058' - task jgfs_post_f059 - trigger ./jgfs_post_manager:release_post059 - edit FHRGRP '060' - edit FHRLST 'f059' - edit FHR 'f059' - edit HR '059' - task jgfs_post_f060 - trigger ./jgfs_post_manager:release_post060 - edit FHRGRP '061' - edit FHRLST 'f060' - edit FHR 'f060' - edit HR '060' - task jgfs_post_f061 - trigger ./jgfs_post_manager:release_post061 - edit FHRGRP '062' - edit FHRLST 'f061' - edit FHR 'f061' - edit HR '061' - task jgfs_post_f062 - trigger ./jgfs_post_manager:release_post062 - edit FHRGRP '063' - edit FHRLST 'f062' - edit FHR 'f062' - edit HR '062' - task jgfs_post_f063 - trigger ./jgfs_post_manager:release_post063 - edit FHRGRP '064' - edit FHRLST 'f063' - edit FHR 'f063' - edit HR '063' - task jgfs_post_f064 - trigger ./jgfs_post_manager:release_post064 - edit FHRGRP '065' - edit FHRLST 'f064' - edit FHR 'f064' - edit HR '064' - task jgfs_post_f065 - trigger ./jgfs_post_manager:release_post065 - edit FHRGRP '066' - edit FHRLST 'f065' - edit FHR 'f065' - edit HR '065' - task jgfs_post_f066 - trigger ./jgfs_post_manager:release_post066 - edit FHRGRP '067' - edit FHRLST 'f066' - edit FHR 'f066' - edit HR '066' - task jgfs_post_f067 - trigger ./jgfs_post_manager:release_post067 - edit FHRGRP '068' - edit FHRLST 'f067' - edit FHR 'f067' - edit HR '067' - task jgfs_post_f068 - trigger ./jgfs_post_manager:release_post068 - edit FHRGRP '069' - edit FHRLST 'f068' - edit FHR 'f068' - edit HR '068' - task jgfs_post_f069 - trigger ./jgfs_post_manager:release_post069 - edit FHRGRP '070' - edit FHRLST 'f069' - edit FHR 'f069' - edit HR '069' - task jgfs_post_f070 - trigger ./jgfs_post_manager:release_post070 - edit FHRGRP '071' - edit FHRLST 'f070' - edit FHR 'f070' - edit HR '070' - task jgfs_post_f071 - trigger ./jgfs_post_manager:release_post071 - edit FHRGRP '072' - edit FHRLST 'f071' - edit FHR 'f071' - edit HR '071' - task jgfs_post_f072 - trigger ./jgfs_post_manager:release_post072 - edit FHRGRP '073' - edit FHRLST 'f072' - edit FHR 'f072' - edit HR '072' - task jgfs_post_f073 - trigger ./jgfs_post_manager:release_post073 - edit FHRGRP '074' - edit FHRLST 'f073' - edit FHR 'f073' - edit HR '073' - task jgfs_post_f074 - trigger ./jgfs_post_manager:release_post074 - edit FHRGRP '075' - edit FHRLST 'f074' - edit FHR 'f074' - edit HR '074' - task jgfs_post_f075 - trigger ./jgfs_post_manager:release_post075 - edit FHRGRP '076' - edit FHRLST 'f075' - edit FHR 'f075' - edit HR '075' - task jgfs_post_f076 - trigger ./jgfs_post_manager:release_post076 - edit FHRGRP '077' - edit FHRLST 'f076' - edit FHR 'f076' - edit HR '076' - task jgfs_post_f077 - trigger ./jgfs_post_manager:release_post077 - edit FHRGRP '078' - edit FHRLST 'f077' - edit FHR 'f077' - edit HR '077' - task jgfs_post_f078 - trigger ./jgfs_post_manager:release_post078 - edit FHRGRP '079' - edit FHRLST 'f078' - edit FHR 'f078' - edit HR '078' - task jgfs_post_f079 - trigger ./jgfs_post_manager:release_post079 - edit FHRGRP '080' - edit FHRLST 'f079' - edit FHR 'f079' - edit HR '079' - task jgfs_post_f080 - trigger ./jgfs_post_manager:release_post080 - edit FHRGRP '081' - edit FHRLST 'f080' - edit FHR 'f080' - edit HR '080' - task jgfs_post_f081 - trigger ./jgfs_post_manager:release_post081 - edit FHRGRP '082' - edit FHRLST 'f081' - edit FHR 'f081' - edit HR '081' - task jgfs_post_f082 - trigger ./jgfs_post_manager:release_post082 - edit FHRGRP '083' - edit FHRLST 'f082' - edit FHR 'f082' - edit HR '082' - task jgfs_post_f083 - trigger ./jgfs_post_manager:release_post083 - edit FHRGRP '084' - edit FHRLST 'f083' - edit FHR 'f083' - edit HR '083' - task jgfs_post_f084 - trigger ./jgfs_post_manager:release_post084 - edit FHRGRP '085' - edit FHRLST 'f084' - edit FHR 'f084' - edit HR '084' - task jgfs_post_f085 - trigger ./jgfs_post_manager:release_post085 - edit FHRGRP '086' - edit FHRLST 'f085' - edit FHR 'f085' - edit HR '085' - task jgfs_post_f086 - trigger ./jgfs_post_manager:release_post086 - edit FHRGRP '087' - edit FHRLST 'f086' - edit FHR 'f086' - edit HR '086' - task jgfs_post_f087 - trigger ./jgfs_post_manager:release_post087 - edit FHRGRP '088' - edit FHRLST 'f087' - edit FHR 'f087' - edit HR '087' - task jgfs_post_f088 - trigger ./jgfs_post_manager:release_post088 - edit FHRGRP '089' - edit FHRLST 'f088' - edit FHR 'f088' - edit HR '088' - task jgfs_post_f089 - trigger ./jgfs_post_manager:release_post089 - edit FHRGRP '090' - edit FHRLST 'f089' - edit FHR 'f089' - edit HR '089' - task jgfs_post_f090 - trigger ./jgfs_post_manager:release_post090 - edit FHRGRP '091' - edit FHRLST 'f090' - edit FHR 'f090' - edit HR '090' - task jgfs_post_f091 - trigger ./jgfs_post_manager:release_post091 - edit FHRGRP '092' - edit FHRLST 'f091' - edit FHR 'f091' - edit HR '091' - task jgfs_post_f092 - trigger ./jgfs_post_manager:release_post092 - edit FHRGRP '093' - edit FHRLST 'f092' - edit FHR 'f092' - edit HR '092' - task jgfs_post_f093 - trigger ./jgfs_post_manager:release_post093 - edit FHRGRP '094' - edit FHRLST 'f093' - edit FHR 'f093' - edit HR '093' - task jgfs_post_f094 - trigger ./jgfs_post_manager:release_post094 - edit FHRGRP '095' - edit FHRLST 'f094' - edit FHR 'f094' - edit HR '094' - task jgfs_post_f095 - trigger ./jgfs_post_manager:release_post095 - edit FHRGRP '096' - edit FHRLST 'f095' - edit FHR 'f095' - edit HR '095' - task jgfs_post_f096 - trigger ./jgfs_post_manager:release_post096 - edit FHRGRP '097' - edit FHRLST 'f096' - edit FHR 'f096' - edit HR '096' - task jgfs_post_f097 - trigger ./jgfs_post_manager:release_post097 - edit FHRGRP '098' - edit FHRLST 'f097' - edit FHR 'f097' - edit HR '097' - task jgfs_post_f098 - trigger ./jgfs_post_manager:release_post098 - edit FHRGRP '099' - edit FHRLST 'f098' - edit FHR 'f098' - edit HR '098' - task jgfs_post_f099 - trigger ./jgfs_post_manager:release_post099 - edit FHRGRP '100' - edit FHRLST 'f099' - edit FHR 'f099' - edit HR '099' - task jgfs_post_f100 - trigger ./jgfs_post_manager:release_post100 - edit FHRGRP '101' - edit FHRLST 'f100' - edit FHR 'f100' - edit HR '100' - task jgfs_post_f101 - trigger ./jgfs_post_manager:release_post101 - edit FHRGRP '102' - edit FHRLST 'f101' - edit FHR 'f101' - edit HR '101' - task jgfs_post_f102 - trigger ./jgfs_post_manager:release_post102 - edit FHRGRP '103' - edit FHRLST 'f102' - edit FHR 'f102' - edit HR '102' - task jgfs_post_f103 - trigger ./jgfs_post_manager:release_post103 - edit FHRGRP '104' - edit FHRLST 'f103' - edit FHR 'f103' - edit HR '103' - task jgfs_post_f104 - trigger ./jgfs_post_manager:release_post104 - edit FHRGRP '105' - edit FHRLST 'f104' - edit FHR 'f104' - edit HR '104' - task jgfs_post_f105 - trigger ./jgfs_post_manager:release_post105 - edit FHRGRP '106' - edit FHRLST 'f105' - edit FHR 'f105' - edit HR '105' - task jgfs_post_f106 - trigger ./jgfs_post_manager:release_post106 - edit FHRGRP '107' - edit FHRLST 'f106' - edit FHR 'f106' - edit HR '106' - task jgfs_post_f107 - trigger ./jgfs_post_manager:release_post107 - edit FHRGRP '108' - edit FHRLST 'f107' - edit FHR 'f107' - edit HR '107' - task jgfs_post_f108 - trigger ./jgfs_post_manager:release_post108 - edit FHRGRP '109' - edit FHRLST 'f108' - edit FHR 'f108' - edit HR '108' - task jgfs_post_f109 - trigger ./jgfs_post_manager:release_post109 - edit FHRGRP '110' - edit FHRLST 'f109' - edit FHR 'f109' - edit HR '109' - task jgfs_post_f110 - trigger ./jgfs_post_manager:release_post110 - edit FHRGRP '111' - edit FHRLST 'f110' - edit FHR 'f110' - edit HR '110' - task jgfs_post_f111 - trigger ./jgfs_post_manager:release_post111 - edit FHRGRP '112' - edit FHRLST 'f111' - edit FHR 'f111' - edit HR '111' - task jgfs_post_f112 - trigger ./jgfs_post_manager:release_post112 - edit FHRGRP '113' - edit FHRLST 'f112' - edit FHR 'f112' - edit HR '112' - task jgfs_post_f113 - trigger ./jgfs_post_manager:release_post113 - edit FHRGRP '114' - edit FHRLST 'f113' - edit FHR 'f113' - edit HR '113' - task jgfs_post_f114 - trigger ./jgfs_post_manager:release_post114 - edit FHRGRP '115' - edit FHRLST 'f114' - edit FHR 'f114' - edit HR '114' - task jgfs_post_f115 - trigger ./jgfs_post_manager:release_post115 - edit FHRGRP '116' - edit FHRLST 'f115' - edit FHR 'f115' - edit HR '115' - task jgfs_post_f116 - trigger ./jgfs_post_manager:release_post116 - edit FHRGRP '117' - edit FHRLST 'f116' - edit FHR 'f116' - edit HR '116' - task jgfs_post_f117 - trigger ./jgfs_post_manager:release_post117 - edit FHRGRP '118' - edit FHRLST 'f117' - edit FHR 'f117' - edit HR '117' - task jgfs_post_f118 - trigger ./jgfs_post_manager:release_post118 - edit FHRGRP '119' - edit FHRLST 'f118' - edit FHR 'f118' - edit HR '118' - task jgfs_post_f119 - trigger ./jgfs_post_manager:release_post119 - edit FHRGRP '120' - edit FHRLST 'f119' - edit FHR 'f119' - edit HR '119' - task jgfs_post_f120 - trigger ./jgfs_post_manager:release_post120 - edit FHRGRP '121' - edit FHRLST 'f120' - edit FHR 'f120' - edit HR '120' - task jgfs_post_f123 - trigger ./jgfs_post_manager:release_post123 - edit FHRGRP '122' - edit FHRLST 'f123' - edit FHR 'f123' - edit HR '123' - task jgfs_post_f126 - trigger ./jgfs_post_manager:release_post126 - edit FHRGRP '123' - edit FHRLST 'f126' - edit FHR 'f126' - edit HR '126' - task jgfs_post_f129 - trigger ./jgfs_post_manager:release_post129 - edit FHRGRP '124' - edit FHRLST 'f129' - edit FHR 'f129' - edit HR '129' - task jgfs_post_f132 - trigger ./jgfs_post_manager:release_post132 - edit FHRGRP '125' - edit FHRLST 'f132' - edit FHR 'f132' - edit HR '132' - task jgfs_post_f135 - trigger ./jgfs_post_manager:release_post135 - edit FHRGRP '126' - edit FHRLST 'f135' - edit FHR 'f135' - edit HR '135' - task jgfs_post_f138 - trigger ./jgfs_post_manager:release_post138 - edit FHRGRP '127' - edit FHRLST 'f138' - edit FHR 'f138' - edit HR '138' - task jgfs_post_f141 - trigger ./jgfs_post_manager:release_post141 - edit FHRGRP '128' - edit FHRLST 'f141' - edit FHR 'f141' - edit HR '141' - task jgfs_post_f144 - trigger ./jgfs_post_manager:release_post144 - edit FHRGRP '129' - edit FHRLST 'f144' - edit FHR 'f144' - edit HR '144' - task jgfs_post_f147 - trigger ./jgfs_post_manager:release_post147 - edit FHRGRP '130' - edit FHRLST 'f147' - edit FHR 'f147' - edit HR '147' - task jgfs_post_f150 - trigger ./jgfs_post_manager:release_post150 - edit FHRGRP '131' - edit FHRLST 'f150' - edit FHR 'f150' - edit HR '150' - task jgfs_post_f153 - trigger ./jgfs_post_manager:release_post153 - edit FHRGRP '132' - edit FHRLST 'f153' - edit FHR 'f153' - edit HR '153' - task jgfs_post_f156 - trigger ./jgfs_post_manager:release_post156 - edit FHRGRP '133' - edit FHRLST 'f156' - edit FHR 'f156' - edit HR '156' - task jgfs_post_f159 - trigger ./jgfs_post_manager:release_post159 - edit FHRGRP '134' - edit FHRLST 'f159' - edit FHR 'f159' - edit HR '159' - task jgfs_post_f162 - trigger ./jgfs_post_manager:release_post162 - edit FHRGRP '135' - edit FHRLST 'f162' - edit FHR 'f162' - edit HR '162' - task jgfs_post_f165 - trigger ./jgfs_post_manager:release_post165 - edit FHRGRP '136' - edit FHRLST 'f165' - edit FHR 'f165' - edit HR '165' - task jgfs_post_f168 - trigger ./jgfs_post_manager:release_post168 - edit FHRGRP '137' - edit FHRLST 'f168' - edit FHR 'f168' - edit HR '168' - task jgfs_post_f171 - trigger ./jgfs_post_manager:release_post171 - edit FHRGRP '138' - edit FHRLST 'f171' - edit FHR 'f171' - edit HR '171' - task jgfs_post_f174 - trigger ./jgfs_post_manager:release_post174 - edit FHRGRP '139' - edit FHRLST 'f174' - edit FHR 'f174' - edit HR '174' - task jgfs_post_f177 - trigger ./jgfs_post_manager:release_post177 - edit FHRGRP '140' - edit FHRLST 'f177' - edit FHR 'f177' - edit HR '177' - task jgfs_post_f180 - trigger ./jgfs_post_manager:release_post180 - edit FHRGRP '141' - edit FHRLST 'f180' - edit FHR 'f180' - edit HR '180' - task jgfs_post_f183 - trigger ./jgfs_post_manager:release_post183 - edit FHRGRP '142' - edit FHRLST 'f183' - edit FHR 'f183' - edit HR '183' - task jgfs_post_f186 - trigger ./jgfs_post_manager:release_post186 - edit FHRGRP '143' - edit FHRLST 'f186' - edit FHR 'f186' - edit HR '186' - task jgfs_post_f189 - trigger ./jgfs_post_manager:release_post189 - edit FHRGRP '144' - edit FHRLST 'f189' - edit FHR 'f189' - edit HR '189' - task jgfs_post_f192 - trigger ./jgfs_post_manager:release_post192 - edit FHRGRP '145' - edit FHRLST 'f192' - edit FHR 'f192' - edit HR '192' - task jgfs_post_f195 - trigger ./jgfs_post_manager:release_post195 - edit FHRGRP '146' - edit FHRLST 'f195' - edit FHR 'f195' - edit HR '195' - task jgfs_post_f198 - trigger ./jgfs_post_manager:release_post198 - edit FHRGRP '147' - edit FHRLST 'f198' - edit FHR 'f198' - edit HR '198' - task jgfs_post_f201 - trigger ./jgfs_post_manager:release_post201 - edit FHRGRP '148' - edit FHRLST 'f201' - edit FHR 'f201' - edit HR '201' - task jgfs_post_f204 - trigger ./jgfs_post_manager:release_post204 - edit FHRGRP '149' - edit FHRLST 'f204' - edit FHR 'f204' - edit HR '204' - task jgfs_post_f207 - trigger ./jgfs_post_manager:release_post207 - edit FHRGRP '150' - edit FHRLST 'f207' - edit FHR 'f207' - edit HR '207' - task jgfs_post_f210 - trigger ./jgfs_post_manager:release_post210 - edit FHRGRP '151' - edit FHRLST 'f210' - edit FHR 'f210' - edit HR '210' - task jgfs_post_f213 - trigger ./jgfs_post_manager:release_post213 - edit FHRGRP '152' - edit FHRLST 'f213' - edit FHR 'f213' - edit HR '213' - task jgfs_post_f216 - trigger ./jgfs_post_manager:release_post216 - edit FHRGRP '153' - edit FHRLST 'f216' - edit FHR 'f216' - edit HR '216' - task jgfs_post_f219 - trigger ./jgfs_post_manager:release_post219 - edit FHRGRP '154' - edit FHRLST 'f219' - edit FHR 'f219' - edit HR '219' - task jgfs_post_f222 - trigger ./jgfs_post_manager:release_post222 - edit FHRGRP '155' - edit FHRLST 'f222' - edit FHR 'f222' - edit HR '222' - task jgfs_post_f225 - trigger ./jgfs_post_manager:release_post225 - edit FHRGRP '156' - edit FHRLST 'f225' - edit FHR 'f225' - edit HR '225' - task jgfs_post_f228 - trigger ./jgfs_post_manager:release_post228 - edit FHRGRP '157' - edit FHRLST 'f228' - edit FHR 'f228' - edit HR '228' - task jgfs_post_f231 - trigger ./jgfs_post_manager:release_post231 - edit FHRGRP '158' - edit FHRLST 'f231' - edit FHR 'f231' - edit HR '231' - task jgfs_post_f234 - trigger ./jgfs_post_manager:release_post234 - edit FHRGRP '159' - edit FHRLST 'f234' - edit FHR 'f234' - edit HR '234' - task jgfs_post_f237 - trigger ./jgfs_post_manager:release_post237 - edit FHRGRP '160' - edit FHRLST 'f237' - edit FHR 'f237' - edit HR '237' - task jgfs_post_f240 - trigger ./jgfs_post_manager:release_post240 - edit FHRGRP '161' - edit FHRLST 'f240' - edit FHR 'f240' - edit HR '240' - task jgfs_post_f243 - trigger ./jgfs_post_manager:release_post243 - edit FHRGRP '162' - edit FHRLST 'f243' - edit FHR 'f243' - edit HR '243' - task jgfs_post_f246 - trigger ./jgfs_post_manager:release_post246 - edit FHRGRP '163' - edit FHRLST 'f246' - edit FHR 'f246' - edit HR '246' - task jgfs_post_f249 - trigger ./jgfs_post_manager:release_post249 - edit FHRGRP '164' - edit FHRLST 'f249' - edit FHR 'f249' - edit HR '249' - task jgfs_post_f252 - trigger ./jgfs_post_manager:release_post252 - edit FHRGRP '165' - edit FHRLST 'f252' - edit FHR 'f252' - edit HR '252' - task jgfs_post_f255 - trigger ./jgfs_post_manager:release_post255 - edit FHRGRP '166' - edit FHRLST 'f255' - edit FHR 'f255' - edit HR '255' - task jgfs_post_f258 - trigger ./jgfs_post_manager:release_post258 - edit FHRGRP '167' - edit FHRLST 'f258' - edit FHR 'f258' - edit HR '258' - task jgfs_post_f261 - trigger ./jgfs_post_manager:release_post261 - edit FHRGRP '168' - edit FHRLST 'f261' - edit FHR 'f261' - edit HR '261' - task jgfs_post_f264 - trigger ./jgfs_post_manager:release_post264 - edit FHRGRP '169' - edit FHRLST 'f264' - edit FHR 'f264' - edit HR '264' - task jgfs_post_f267 - trigger ./jgfs_post_manager:release_post267 - edit FHRGRP '170' - edit FHRLST 'f267' - edit FHR 'f267' - edit HR '267' - task jgfs_post_f270 - trigger ./jgfs_post_manager:release_post270 - edit FHRGRP '171' - edit FHRLST 'f270' - edit FHR 'f270' - edit HR '270' - task jgfs_post_f273 - trigger ./jgfs_post_manager:release_post273 - edit FHRGRP '172' - edit FHRLST 'f273' - edit FHR 'f273' - edit HR '273' - task jgfs_post_f276 - trigger ./jgfs_post_manager:release_post276 - edit FHRGRP '173' - edit FHRLST 'f276' - edit FHR 'f276' - edit HR '276' - task jgfs_post_f279 - trigger ./jgfs_post_manager:release_post279 - edit FHRGRP '174' - edit FHRLST 'f279' - edit FHR 'f279' - edit HR '279' - task jgfs_post_f282 - trigger ./jgfs_post_manager:release_post282 - edit FHRGRP '175' - edit FHRLST 'f282' - edit FHR 'f282' - edit HR '282' - task jgfs_post_f285 - trigger ./jgfs_post_manager:release_post285 - edit FHRGRP '176' - edit FHRLST 'f285' - edit FHR 'f285' - edit HR '285' - task jgfs_post_f288 - trigger ./jgfs_post_manager:release_post288 - edit FHRGRP '177' - edit FHRLST 'f288' - edit FHR 'f288' - edit HR '288' - task jgfs_post_f291 - trigger ./jgfs_post_manager:release_post291 - edit FHRGRP '178' - edit FHRLST 'f291' - edit FHR 'f291' - edit HR '291' - task jgfs_post_f294 - trigger ./jgfs_post_manager:release_post294 - edit FHRGRP '179' - edit FHRLST 'f294' - edit FHR 'f294' - edit HR '294' - task jgfs_post_f297 - trigger ./jgfs_post_manager:release_post297 - edit FHRGRP '180' - edit FHRLST 'f297' - edit FHR 'f297' - edit HR '297' - task jgfs_post_f300 - trigger ./jgfs_post_manager:release_post300 - edit FHRGRP '181' - edit FHRLST 'f300' - edit FHR 'f300' - edit HR '300' - task jgfs_post_f303 - trigger ./jgfs_post_manager:release_post303 - edit FHRGRP '182' - edit FHRLST 'f303' - edit FHR 'f303' - edit HR '303' - task jgfs_post_f306 - trigger ./jgfs_post_manager:release_post306 - edit FHRGRP '183' - edit FHRLST 'f306' - edit FHR 'f306' - edit HR '306' - task jgfs_post_f309 - trigger ./jgfs_post_manager:release_post309 - edit FHRGRP '184' - edit FHRLST 'f309' - edit FHR 'f309' - edit HR '309' - task jgfs_post_f312 - trigger ./jgfs_post_manager:release_post312 - edit FHRGRP '185' - edit FHRLST 'f312' - edit FHR 'f312' - edit HR '312' - task jgfs_post_f315 - trigger ./jgfs_post_manager:release_post315 - edit FHRGRP '186' - edit FHRLST 'f315' - edit FHR 'f315' - edit HR '315' - task jgfs_post_f318 - trigger ./jgfs_post_manager:release_post318 - edit FHRGRP '187' - edit FHRLST 'f318' - edit FHR 'f318' - edit HR '318' - task jgfs_post_f321 - trigger ./jgfs_post_manager:release_post321 - edit FHRGRP '188' - edit FHRLST 'f321' - edit FHR 'f321' - edit HR '321' - task jgfs_post_f324 - trigger ./jgfs_post_manager:release_post324 - edit FHRGRP '189' - edit FHRLST 'f324' - edit FHR 'f324' - edit HR '324' - task jgfs_post_f327 - trigger ./jgfs_post_manager:release_post327 - edit FHRGRP '190' - edit FHRLST 'f327' - edit FHR 'f327' - edit HR '327' - task jgfs_post_f330 - trigger ./jgfs_post_manager:release_post330 - edit FHRGRP '191' - edit FHRLST 'f330' - edit FHR 'f330' - edit HR '330' - task jgfs_post_f333 - trigger ./jgfs_post_manager:release_post333 - edit FHRGRP '192' - edit FHRLST 'f333' - edit FHR 'f333' - edit HR '333' - task jgfs_post_f336 - trigger ./jgfs_post_manager:release_post336 - edit FHRGRP '193' - edit FHRLST 'f336' - edit FHR 'f336' - edit HR '336' - task jgfs_post_f339 - trigger ./jgfs_post_manager:release_post339 - edit FHRGRP '194' - edit FHRLST 'f339' - edit FHR 'f339' - edit HR '339' - task jgfs_post_f342 - trigger ./jgfs_post_manager:release_post342 - edit FHRGRP '195' - edit FHRLST 'f342' - edit FHR 'f342' - edit HR '342' - task jgfs_post_f345 - trigger ./jgfs_post_manager:release_post345 - edit FHRGRP '196' - edit FHRLST 'f345' - edit FHR 'f345' - edit HR '345' - task jgfs_post_f348 - trigger ./jgfs_post_manager:release_post348 - edit FHRGRP '197' - edit FHRLST 'f348' - edit FHR 'f348' - edit HR '348' - task jgfs_post_f351 - trigger ./jgfs_post_manager:release_post351 - edit FHRGRP '198' - edit FHRLST 'f351' - edit FHR 'f351' - edit HR '351' - task jgfs_post_f354 - trigger ./jgfs_post_manager:release_post354 - edit FHRGRP '199' - edit FHRLST 'f354' - edit FHR 'f354' - edit HR '354' - task jgfs_post_f357 - trigger ./jgfs_post_manager:release_post357 - edit FHRGRP '200' - edit FHRLST 'f357' - edit FHR 'f357' - edit HR '357' - task jgfs_post_f360 - trigger ./jgfs_post_manager:release_post360 - edit FHRGRP '201' - edit FHRLST 'f360' - edit FHR 'f360' - edit HR '360' - task jgfs_post_f363 - trigger ./jgfs_post_manager:release_post363 - edit FHRGRP '202' - edit FHRLST 'f363' - edit FHR 'f363' - edit HR '363' - task jgfs_post_f366 - trigger ./jgfs_post_manager:release_post366 - edit FHRGRP '203' - edit FHRLST 'f366' - edit FHR 'f366' - edit HR '366' - task jgfs_post_f369 - trigger ./jgfs_post_manager:release_post369 - edit FHRGRP '204' - edit FHRLST 'f369' - edit FHR 'f369' - edit HR '369' - task jgfs_post_f372 - trigger ./jgfs_post_manager:release_post372 - edit FHRGRP '205' - edit FHRLST 'f372' - edit FHR 'f372' - edit HR '372' - task jgfs_post_f375 - trigger ./jgfs_post_manager:release_post375 - edit FHRGRP '206' - edit FHRLST 'f375' - edit FHR 'f375' - edit HR '375' - task jgfs_post_f378 - trigger ./jgfs_post_manager:release_post378 - edit FHRGRP '207' - edit FHRLST 'f378' - edit FHR 'f378' - edit HR '378' - task jgfs_post_f381 - trigger ./jgfs_post_manager:release_post381 - edit FHRGRP '208' - edit FHRLST 'f381' - edit FHR 'f381' - edit HR '381' - task jgfs_post_f384 - trigger ./jgfs_post_manager:release_post384 - edit FHRGRP '209' - edit FHRLST 'f384' - edit FHR 'f384' - edit HR '384' - endfamily - family post_processing - task jgfs_wafs_gcip - trigger ../post/jgfs_post_f003 == complete - time 04:40 - family grib_wafs - task jgfs_wafs_f00 - trigger ../../post/jgfs_post_f000 == complete and ../../post/jgfs_post_f120 == complete and ../grib2_wafs/jgfs_wafs_grib2 == complete - edit FCSTHR '00' - task jgfs_wafs_f06 - trigger ../../post/jgfs_post_f006 == complete and ./jgfs_wafs_f00 == complete - edit FCSTHR '06' - task jgfs_wafs_f12 - trigger ../../post/jgfs_post_f012 == complete and ./jgfs_wafs_f06 == complete - edit FCSTHR '12' - task jgfs_wafs_f18 - trigger ../../post/jgfs_post_f018 == complete and ./jgfs_wafs_f12 == complete - edit FCSTHR '18' - task jgfs_wafs_f24 - trigger ../../post/jgfs_post_f024 == complete and ./jgfs_wafs_f18 == complete - edit FCSTHR '24' - task jgfs_wafs_f30 - trigger ../../post/jgfs_post_f030 == complete and ./jgfs_wafs_f24 == complete - edit FCSTHR '30' - task jgfs_wafs_f36 - trigger ../../post/jgfs_post_f036 == complete and ./jgfs_wafs_f30 == complete - edit FCSTHR '36' - task jgfs_wafs_f42 - trigger ../../post/jgfs_post_f042 == complete and ./jgfs_wafs_f36 == complete - edit FCSTHR '42' - task jgfs_wafs_f48 - trigger ../../post/jgfs_post_f048 == complete and ./jgfs_wafs_f42 == complete - edit FCSTHR '48' - task jgfs_wafs_f54 - trigger ../../post/jgfs_post_f054 == complete and ./jgfs_wafs_f48 == complete - edit FCSTHR '54' - task jgfs_wafs_f60 - trigger ../../post/jgfs_post_f060 == complete and ./jgfs_wafs_f54 == complete - edit FCSTHR '60' - task jgfs_wafs_f66 - trigger ../../post/jgfs_post_f066 == complete and ./jgfs_wafs_f60 == complete - edit FCSTHR '66' - task jgfs_wafs_f72 - trigger ../../post/jgfs_post_f072 == complete and ./jgfs_wafs_f66 == complete - edit FCSTHR '72' - task jgfs_wafs_f78 - trigger ../../post/jgfs_post_f078 == complete and ./jgfs_wafs_f72 == complete - edit FCSTHR '78' - task jgfs_wafs_f84 - trigger ../../post/jgfs_post_f084 == complete and ./jgfs_wafs_f78 == complete - edit FCSTHR '84' - task jgfs_wafs_f90 - trigger ../../post/jgfs_post_f090 == complete and ./jgfs_wafs_f84 == complete - edit FCSTHR '90' - task jgfs_wafs_f96 - trigger ../../post/jgfs_post_f096 == complete and ./jgfs_wafs_f90 == complete - edit FCSTHR '96' - task jgfs_wafs_f102 - trigger ../../post/jgfs_post_f102 == complete and ./jgfs_wafs_f96 == complete - edit FCSTHR '102' - task jgfs_wafs_f108 - trigger ../../post/jgfs_post_f108 == complete and ./jgfs_wafs_f102 == complete - edit FCSTHR '108' - task jgfs_wafs_f114 - trigger ../../post/jgfs_post_f114 == complete and ./jgfs_wafs_f108 == complete - edit FCSTHR '114' - task jgfs_wafs_f120 - trigger ../../post/jgfs_post_f120 == complete and ./jgfs_wafs_f114 == complete - edit FCSTHR '120' - endfamily - family bufr_sounding - task jgfs_postsnd - trigger ../../post/jgfs_post_manager:release_post000 - endfamily - family bulletins - task jgfs_fbwind - trigger ../../post/jgfs_post_f006 == complete and ../../post/jgfs_post_f012 == complete and ../../post/jgfs_post_f024 == complete - endfamily - family grib2_wafs - task jgfs_wafs_grib2 - trigger ../../post/jgfs_post_f000 == complete - task jgfs_wafs_blending - trigger ./jgfs_wafs_grib2 == complete - time 04:33 - endfamily - family awips_20km_1p0 - task jgfs_awips_f000 - trigger ../../post/jgfs_post_f000 == complete - edit FHRGRP '000' - edit FHRLST 'f000' - edit FCSTHR '000' - edit TRDRUN 'YES' - task jgfs_awips_f003 - trigger ../../post/jgfs_post_f003 == complete - edit FHRGRP '003' - edit FHRLST 'f003' - edit FCSTHR '003' - edit TRDRUN 'NO' - task jgfs_awips_f006 - trigger ../../post/jgfs_post_f006 == complete - edit FHRGRP '006' - edit FHRLST 'f006' - edit FCSTHR '006' - edit TRDRUN 'YES' - task jgfs_awips_f009 - trigger ../../post/jgfs_post_f009 == complete - edit FHRGRP '009' - edit FHRLST 'f009' - edit FCSTHR '009' - edit TRDRUN 'NO' - task jgfs_awips_f012 - trigger ../../post/jgfs_post_f012 == complete - edit FHRGRP '012' - edit FHRLST 'f012' - edit FCSTHR '012' - edit TRDRUN 'YES' - task jgfs_awips_f015 - trigger ../../post/jgfs_post_f015 == complete - edit FHRGRP '015' - edit FHRLST 'f015' - edit FCSTHR '015' - edit TRDRUN 'NO' - task jgfs_awips_f018 - trigger ../../post/jgfs_post_f018 == complete - edit FHRGRP '018' - edit FHRLST 'f018' - edit FCSTHR '018' - edit TRDRUN 'YES' - task jgfs_awips_f021 - trigger ../../post/jgfs_post_f021 == complete - edit FHRGRP '021' - edit FHRLST 'f021' - edit FCSTHR '021' - edit TRDRUN 'NO' - task jgfs_awips_f024 - trigger ../../post/jgfs_post_f024 == complete - edit FHRGRP '024' - edit FHRLST 'f024' - edit FCSTHR '024' - edit TRDRUN 'YES' - task jgfs_awips_f027 - trigger ../../post/jgfs_post_f027 == complete - edit FHRGRP '027' - edit FHRLST 'f027' - edit FCSTHR '027' - edit TRDRUN 'NO' - task jgfs_awips_f030 - trigger ../../post/jgfs_post_f030 == complete - edit FHRGRP '030' - edit FHRLST 'f030' - edit FCSTHR '030' - edit TRDRUN 'YES' - task jgfs_awips_f033 - trigger ../../post/jgfs_post_f033 == complete - edit FHRGRP '033' - edit FHRLST 'f033' - edit FCSTHR '033' - edit TRDRUN 'NO' - task jgfs_awips_f036 - trigger ../../post/jgfs_post_f036 == complete - edit FHRGRP '036' - edit FHRLST 'f036' - edit FCSTHR '036' - edit TRDRUN 'YES' - task jgfs_awips_f039 - trigger ../../post/jgfs_post_f039 == complete - edit FHRGRP '039' - edit FHRLST 'f039' - edit FCSTHR '039' - edit TRDRUN 'NO' - task jgfs_awips_f042 - trigger ../../post/jgfs_post_f042 == complete - edit FHRGRP '042' - edit FHRLST 'f042' - edit FCSTHR '042' - edit TRDRUN 'YES' - task jgfs_awips_f045 - trigger ../../post/jgfs_post_f045 == complete - edit FHRGRP '045' - edit FHRLST 'f045' - edit FCSTHR '045' - edit TRDRUN 'NO' - task jgfs_awips_f048 - trigger ../../post/jgfs_post_f048 == complete - edit FHRGRP '048' - edit FHRLST 'f048' - edit FCSTHR '048' - edit TRDRUN 'YES' - task jgfs_awips_f051 - trigger ../../post/jgfs_post_f051 == complete - edit FHRGRP '051' - edit FHRLST 'f051' - edit FCSTHR '051' - edit TRDRUN 'NO' - task jgfs_awips_f054 - trigger ../../post/jgfs_post_f054 == complete - edit FHRGRP '054' - edit FHRLST 'f054' - edit FCSTHR '054' - edit TRDRUN 'YES' - task jgfs_awips_f057 - trigger ../../post/jgfs_post_f057 == complete - edit FHRGRP '057' - edit FHRLST 'f057' - edit FCSTHR '057' - edit TRDRUN 'NO' - task jgfs_awips_f060 - trigger ../../post/jgfs_post_f060 == complete - edit FHRGRP '060' - edit FHRLST 'f060' - edit FCSTHR '060' - edit TRDRUN 'YES' - task jgfs_awips_f063 - trigger ../../post/jgfs_post_f063 == complete - edit FHRGRP '063' - edit FHRLST 'f063' - edit FCSTHR '063' - edit TRDRUN 'NO' - task jgfs_awips_f066 - trigger ../../post/jgfs_post_f066 == complete - edit FHRGRP '066' - edit FHRLST 'f066' - edit FCSTHR '066' - edit TRDRUN 'YES' - task jgfs_awips_f069 - trigger ../../post/jgfs_post_f069 == complete - edit FHRGRP '069' - edit FHRLST 'f069' - edit FCSTHR '069' - edit TRDRUN 'NO' - task jgfs_awips_f072 - trigger ../../post/jgfs_post_f072 == complete - edit FHRGRP '072' - edit FHRLST 'f072' - edit FCSTHR '072' - edit TRDRUN 'YES' - task jgfs_awips_f075 - trigger ../../post/jgfs_post_f075 == complete - edit FHRGRP '075' - edit FHRLST 'f075' - edit FCSTHR '075' - edit TRDRUN 'NO' - task jgfs_awips_f078 - trigger ../../post/jgfs_post_f078 == complete - edit FHRGRP '078' - edit FHRLST 'f078' - edit FCSTHR '078' - edit TRDRUN 'YES' - task jgfs_awips_f081 - trigger ../../post/jgfs_post_f081 == complete - edit FHRGRP '081' - edit FHRLST 'f081' - edit FCSTHR '081' - edit TRDRUN 'NO' - task jgfs_awips_f084 - trigger ../../post/jgfs_post_f084 == complete - edit FHRGRP '084' - edit FHRLST 'f084' - edit FCSTHR '084' - edit TRDRUN 'YES' - task jgfs_awips_f090 - trigger ../../post/jgfs_post_f090 == complete - edit FHRGRP '090' - edit FHRLST 'f090' - edit FCSTHR '090' - edit TRDRUN 'YES' - task jgfs_awips_f096 - trigger ../../post/jgfs_post_f096 == complete - edit FHRGRP '096' - edit FHRLST 'f096' - edit FCSTHR '096' - edit TRDRUN 'YES' - task jgfs_awips_f102 - trigger ../../post/jgfs_post_f102 == complete - edit FHRGRP '102' - edit FHRLST 'f102' - edit FCSTHR '102' - edit TRDRUN 'YES' - task jgfs_awips_f108 - trigger ../../post/jgfs_post_f108 == complete - edit FHRGRP '108' - edit FHRLST 'f108' - edit FCSTHR '108' - edit TRDRUN 'YES' - task jgfs_awips_f114 - trigger ../../post/jgfs_post_f114 == complete - edit FHRGRP '114' - edit FHRLST 'f114' - edit FCSTHR '114' - edit TRDRUN 'YES' - task jgfs_awips_f120 - trigger ../../post/jgfs_post_f120 == complete - edit FHRGRP '120' - edit FHRLST 'f120' - edit FCSTHR '120' - edit TRDRUN 'YES' - task jgfs_awips_f126 - trigger ../../post/jgfs_post_f126 == complete - edit FHRGRP '126' - edit FHRLST 'f126' - edit FCSTHR '126' - edit TRDRUN 'YES' - task jgfs_awips_f132 - trigger ../../post/jgfs_post_f132 == complete - edit FHRGRP '132' - edit FHRLST 'f132' - edit FCSTHR '132' - edit TRDRUN 'YES' - task jgfs_awips_f138 - trigger ../../post/jgfs_post_f138 == complete - edit FHRGRP '138' - edit FHRLST 'f138' - edit FCSTHR '138' - edit TRDRUN 'YES' - task jgfs_awips_f144 - trigger ../../post/jgfs_post_f144 == complete - edit FHRGRP '144' - edit FHRLST 'f144' - edit FCSTHR '144' - edit TRDRUN 'YES' - task jgfs_awips_f150 - trigger ../../post/jgfs_post_f150 == complete - edit FHRGRP '150' - edit FHRLST 'f150' - edit FCSTHR '150' - edit TRDRUN 'YES' - task jgfs_awips_f156 - trigger ../../post/jgfs_post_f156 == complete - edit FHRGRP '156' - edit FHRLST 'f156' - edit FCSTHR '156' - edit TRDRUN 'YES' - task jgfs_awips_f162 - trigger ../../post/jgfs_post_f162 == complete - edit FHRGRP '162' - edit FHRLST 'f162' - edit FCSTHR '162' - edit TRDRUN 'YES' - task jgfs_awips_f168 - trigger ../../post/jgfs_post_f168 == complete - edit FHRGRP '168' - edit FHRLST 'f168' - edit FCSTHR '168' - edit TRDRUN 'YES' - task jgfs_awips_f174 - trigger ../../post/jgfs_post_f174 == complete - edit FHRGRP '174' - edit FHRLST 'f174' - edit FCSTHR '174' - edit TRDRUN 'YES' - task jgfs_awips_f180 - trigger ../../post/jgfs_post_f180 == complete - edit FHRGRP '180' - edit FHRLST 'f180' - edit FCSTHR '180' - edit TRDRUN 'YES' - task jgfs_awips_f186 - trigger ../../post/jgfs_post_f186 == complete - edit FHRGRP '186' - edit FHRLST 'f186' - edit FCSTHR '186' - edit TRDRUN 'YES' - task jgfs_awips_f192 - trigger ../../post/jgfs_post_f192 == complete - edit FHRGRP '192' - edit FHRLST 'f192' - edit FCSTHR '192' - edit TRDRUN 'YES' - task jgfs_awips_f198 - trigger ../../post/jgfs_post_f198 == complete - edit FHRGRP '198' - edit FHRLST 'f198' - edit FCSTHR '198' - edit TRDRUN 'YES' - task jgfs_awips_f204 - trigger ../../post/jgfs_post_f204 == complete - edit FHRGRP '204' - edit FHRLST 'f204' - edit FCSTHR '204' - edit TRDRUN 'YES' - task jgfs_awips_f210 - trigger ../../post/jgfs_post_f210 == complete - edit FHRGRP '210' - edit FHRLST 'f210' - edit FCSTHR '210' - edit TRDRUN 'YES' - task jgfs_awips_f216 - trigger ../../post/jgfs_post_f216 == complete - edit FHRGRP '216' - edit FHRLST 'f216' - edit FCSTHR '216' - edit TRDRUN 'YES' - task jgfs_awips_f222 - trigger ../../post/jgfs_post_f222 == complete - edit FHRGRP '222' - edit FHRLST 'f222' - edit FCSTHR '222' - edit TRDRUN 'YES' - task jgfs_awips_f228 - trigger ../../post/jgfs_post_f228 == complete - edit FHRGRP '228' - edit FHRLST 'f228' - edit FCSTHR '228' - edit TRDRUN 'YES' - task jgfs_awips_f234 - trigger ../../post/jgfs_post_f234 == complete - edit FHRGRP '234' - edit FHRLST 'f234' - edit FCSTHR '234' - edit TRDRUN 'YES' - task jgfs_awips_f240 - trigger ../../post/jgfs_post_f240 == complete - edit FHRGRP '240' - edit FHRLST 'f240' - edit FCSTHR '240' - edit TRDRUN 'YES' - endfamily - family awips_g2 - task jgfs_awips_g2_f000 - trigger ../../post/jgfs_post_f000 == complete - edit FHRGRP '000' - edit FHRLST 'f000' - edit FCSTHR '000' - edit TRDRUN 'YES' - task jgfs_awips_g2_f006 - trigger ../../post/jgfs_post_f006 == complete - edit FHRGRP '006' - edit FHRLST 'f006' - edit FCSTHR '006' - edit TRDRUN 'YES' - task jgfs_awips_g2_f012 - trigger ../../post/jgfs_post_f012 == complete - edit FHRGRP '012' - edit FHRLST 'f012' - edit FCSTHR '012' - edit TRDRUN 'YES' - task jgfs_awips_g2_f018 - trigger ../../post/jgfs_post_f018 == complete - edit FHRGRP '018' - edit FHRLST 'f018' - edit FCSTHR '018' - edit TRDRUN 'YES' - task jgfs_awips_g2_f024 - trigger ../../post/jgfs_post_f024 == complete - edit FHRGRP '024' - edit FHRLST 'f024' - edit FCSTHR '024' - edit TRDRUN 'YES' - task jgfs_awips_g2_f030 - trigger ../../post/jgfs_post_f030 == complete - edit FHRGRP '030' - edit FHRLST 'f030' - edit FCSTHR '030' - edit TRDRUN 'YES' - task jgfs_awips_g2_f036 - trigger ../../post/jgfs_post_f036 == complete - edit FHRGRP '036' - edit FHRLST 'f036' - edit FCSTHR '036' - edit TRDRUN 'YES' - task jgfs_awips_g2_f042 - trigger ../../post/jgfs_post_f042 == complete - edit FHRGRP '042' - edit FHRLST 'f042' - edit FCSTHR '042' - edit TRDRUN 'YES' - task jgfs_awips_g2_f048 - trigger ../../post/jgfs_post_f048 == complete - edit FHRGRP '048' - edit FHRLST 'f048' - edit FCSTHR '048' - edit TRDRUN 'YES' - task jgfs_awips_g2_f054 - trigger ../../post/jgfs_post_f054 == complete - edit FHRGRP '054' - edit FHRLST 'f054' - edit FCSTHR '054' - edit TRDRUN 'YES' - task jgfs_awips_g2_f060 - trigger ../../post/jgfs_post_f060 == complete - edit FHRGRP '060' - edit FHRLST 'f060' - edit FCSTHR '060' - edit TRDRUN 'YES' - task jgfs_awips_g2_f066 - trigger ../../post/jgfs_post_f066 == complete - edit FHRGRP '066' - edit FHRLST 'f066' - edit FCSTHR '066' - edit TRDRUN 'YES' - task jgfs_awips_g2_f072 - trigger ../../post/jgfs_post_f072 == complete - edit FHRGRP '072' - edit FHRLST 'f072' - edit FCSTHR '072' - edit TRDRUN 'YES' - task jgfs_awips_g2_f078 - trigger ../../post/jgfs_post_f078 == complete - edit FHRGRP '078' - edit FHRLST 'f078' - edit FCSTHR '078' - edit TRDRUN 'YES' - task jgfs_awips_g2_f084 - trigger ../../post/jgfs_post_f084 == complete - edit FHRGRP '084' - edit FHRLST 'f084' - edit FCSTHR '084' - edit TRDRUN 'YES' - task jgfs_awips_g2_f090 - trigger ../../post/jgfs_post_f090 == complete - edit FHRGRP '090' - edit FHRLST 'f090' - edit FCSTHR '090' - edit TRDRUN 'YES' - task jgfs_awips_g2_f096 - trigger ../../post/jgfs_post_f096 == complete - edit FHRGRP '096' - edit FHRLST 'f096' - edit FCSTHR '096' - edit TRDRUN 'YES' - task jgfs_awips_g2_f102 - trigger ../../post/jgfs_post_f102 == complete - edit FHRGRP '102' - edit FHRLST 'f102' - edit FCSTHR '102' - edit TRDRUN 'YES' - task jgfs_awips_g2_f108 - trigger ../../post/jgfs_post_f108 == complete - edit FHRGRP '108' - edit FHRLST 'f108' - edit FCSTHR '108' - edit TRDRUN 'YES' - task jgfs_awips_g2_f114 - trigger ../../post/jgfs_post_f114 == complete - edit FHRGRP '114' - edit FHRLST 'f114' - edit FCSTHR '114' - edit TRDRUN 'YES' - task jgfs_awips_g2_f120 - trigger ../../post/jgfs_post_f120 == complete - edit FHRGRP '120' - edit FHRLST 'f120' - edit FCSTHR '120' - edit TRDRUN 'YES' - task jgfs_awips_g2_f126 - trigger ../../post/jgfs_post_f126 == complete - edit FHRGRP '126' - edit FHRLST 'f126' - edit FCSTHR '126' - edit TRDRUN 'YES' - task jgfs_awips_g2_f132 - trigger ../../post/jgfs_post_f132 == complete - edit FHRGRP '132' - edit FHRLST 'f132' - edit FCSTHR '132' - edit TRDRUN 'YES' - task jgfs_awips_g2_f138 - trigger ../../post/jgfs_post_f138 == complete - edit FHRGRP '138' - edit FHRLST 'f138' - edit FCSTHR '138' - edit TRDRUN 'YES' - task jgfs_awips_g2_f144 - trigger ../../post/jgfs_post_f144 == complete - edit FHRGRP '144' - edit FHRLST 'f144' - edit FCSTHR '144' - edit TRDRUN 'YES' - task jgfs_awips_g2_f150 - trigger ../../post/jgfs_post_f150 == complete - edit FHRGRP '150' - edit FHRLST 'f150' - edit FCSTHR '150' - edit TRDRUN 'YES' - task jgfs_awips_g2_f156 - trigger ../../post/jgfs_post_f156 == complete - edit FHRGRP '156' - edit FHRLST 'f156' - edit FCSTHR '156' - edit TRDRUN 'YES' - task jgfs_awips_g2_f162 - trigger ../../post/jgfs_post_f162 == complete - edit FHRGRP '162' - edit FHRLST 'f162' - edit FCSTHR '162' - edit TRDRUN 'YES' - task jgfs_awips_g2_f168 - trigger ../../post/jgfs_post_f168 == complete - edit FHRGRP '168' - edit FHRLST 'f168' - edit FCSTHR '168' - edit TRDRUN 'YES' - task jgfs_awips_g2_f174 - trigger ../../post/jgfs_post_f174 == complete - edit FHRGRP '174' - edit FHRLST 'f174' - edit FCSTHR '174' - edit TRDRUN 'YES' - task jgfs_awips_g2_f180 - trigger ../../post/jgfs_post_f180 == complete - edit FHRGRP '180' - edit FHRLST 'f180' - edit FCSTHR '180' - edit TRDRUN 'YES' - task jgfs_awips_g2_f186 - trigger ../../post/jgfs_post_f186 == complete - edit FHRGRP '186' - edit FHRLST 'f186' - edit FCSTHR '186' - edit TRDRUN 'YES' - task jgfs_awips_g2_f192 - trigger ../../post/jgfs_post_f192 == complete - edit FHRGRP '192' - edit FHRLST 'f192' - edit FCSTHR '192' - edit TRDRUN 'YES' - task jgfs_awips_g2_f198 - trigger ../../post/jgfs_post_f198 == complete - edit FHRGRP '198' - edit FHRLST 'f198' - edit FCSTHR '198' - edit TRDRUN 'YES' - task jgfs_awips_g2_f204 - trigger ../../post/jgfs_post_f204 == complete - edit FHRGRP '204' - edit FHRLST 'f204' - edit FCSTHR '204' - edit TRDRUN 'YES' - task jgfs_awips_g2_f210 - trigger ../../post/jgfs_post_f210 == complete - edit FHRGRP '210' - edit FHRLST 'f210' - edit FCSTHR '210' - edit TRDRUN 'YES' - task jgfs_awips_g2_f216 - trigger ../../post/jgfs_post_f216 == complete - edit FHRGRP '216' - edit FHRLST 'f216' - edit FCSTHR '216' - edit TRDRUN 'YES' - task jgfs_awips_g2_f222 - trigger ../../post/jgfs_post_f222 == complete - edit FHRGRP '222' - edit FHRLST 'f222' - edit FCSTHR '222' - edit TRDRUN 'YES' - task jgfs_awips_g2_f228 - trigger ../../post/jgfs_post_f228 == complete - edit FHRGRP '228' - edit FHRLST 'f228' - edit FCSTHR '228' - edit TRDRUN 'YES' - task jgfs_awips_g2_f234 - trigger ../../post/jgfs_post_f234 == complete - edit FHRGRP '234' - edit FHRLST 'f234' - edit FCSTHR '234' - edit TRDRUN 'YES' - task jgfs_awips_g2_f240 - trigger ../../post/jgfs_post_f240 == complete - edit FHRGRP '240' - edit FHRLST 'f240' - edit FCSTHR '240' - edit TRDRUN 'YES' - endfamily - endfamily - family mos - edit ECF_FILES '/ecf/ecfnets/scripts/gfs/mos' - edit PROJ 'GFS-%PROJENVIR%' - edit COM '/gpfs/hps/nco/ops/com' - edit QUEUESERV 'prod_transfer' - edit MODULES 'module load cfp-intel-sandybridge/1.1.0 grib_util gempak/6.32.0' - edit QUEUE 'prod' - family prep - task jgfsmos_stn_prep - trigger /prod00/gfs/post/jgfs_post_f096 == complete - edit NTASK '3' - edit PTILE '3' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_grd_prep - trigger /prod00/gfs/post/jgfs_post_f096 == complete - edit NTASK '4' - edit PTILE '4' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_stn_prep - trigger /prod00/gfs/post == complete - edit NTASK '2' - edit PTILE '2' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_grd_prep - trigger /prod00/gfs/post == complete - edit NTASK '7' - edit PTILE '4' - edit OMP_NUM_THREADS '1' - edit NODES '2' - endfamily - family forecast - task jgfsmos_stn_fcst - trigger ../prep/jgfsmos_stn_prep == complete - edit NTASK '5' - edit PTILE '5' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_grd_fcst - trigger ../prep/jgfsmos_stn_prep == complete and ../prep/jgfsmos_grd_prep == complete - edit NTASK '7' - edit PTILE '4' - edit OMP_NUM_THREADS '1' - edit NODES '2' - task jgfsmos_ext_stn_fcst - trigger ../prep/jgfsmos_ext_stn_prep == complete and ../prdgen/jgfsmos_stn_prdgen == complete - edit NTASK '3' - edit PTILE '3' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_grd_fcst - trigger ../prep/jgfsmos_ext_stn_prep == complete and ../prep/jgfsmos_ext_grd_prep == complete and jgfsmos_grd_fcst == complete - edit NTASK '7' - edit PTILE '4' - edit OMP_NUM_THREADS '1' - edit NODES '2' - endfamily - family prdgen - task jgfsmos_stn_prdgen - trigger ../forecast/jgfsmos_stn_fcst == complete - edit NTASK '1' - edit PTILE '1' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_grd_prdgen - trigger ../forecast/jgfsmos_grd_fcst == complete and jgfsmos_stn_prdgen == complete - edit NTASK '14' - edit PTILE '1' - edit OMP_NUM_THREADS '20' - edit NODES '14' - task jgfsmos_ext_stn_prdgen - trigger ../forecast/jgfsmos_ext_stn_fcst == complete and jgfsmos_stn_prdgen == complete - edit NTASK '1' - edit PTILE '1' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_grd_prdgen - trigger ../forecast/jgfsmos_ext_grd_fcst == complete and jgfsmos_grd_prdgen == complete and jgfsmos_ext_stn_prdgen == complete - edit NTASK '12' - edit PTILE '1' - edit OMP_NUM_THREADS '20' - edit NODES '12' - task jgfsmos_wx_prdgen - trigger ../prdgen/jgfsmos_grd_prdgen == complete - edit NTASK '2' - edit PTILE '1' - edit OMP_NUM_THREADS '20' - edit NODES '2' - task jgfsmos_wx_ext_prdgen - trigger ../prdgen/jgfsmos_ext_grd_prdgen == complete and jgfsmos_wx_prdgen == complete - edit NTASK '2' - edit PTILE '1' - edit OMP_NUM_THREADS '20' - edit NODES '2' - endfamily - family gempak - task jgfs_gempak_mdl - trigger ../prdgen == complete - task jmrf_gempak_mdl - trigger ../prdgen == complete - endfamily - endfamily - family gempak - task jgfs_gempak_ncdc_upapgif - trigger ./jgfs_gempak == active or ./jgfs_gempak == complete - task jgfs_gempak - trigger ../jgfs_analysis eq complete - task jgfs_gempak_meta - trigger ../jgfs_analysis == complete - task jgfs_pgrb2_spec_gempak - trigger ./jgfs_npoess_pgrb2_0p5deg == complete - task jgfs_npoess_pgrb2_0p5deg - trigger ../post/jgfs_post_anl eq active or ../post/jgfs_post_anl == complete - endfamily - endfamily - diff --git a/ecflow/ecf/defs/gfs_06.def b/ecflow/ecf/defs/gfs_06.def deleted file mode 100644 index 0a3c2f1d18..0000000000 --- a/ecflow/ecf/defs/gfs_06.def +++ /dev/null @@ -1,2244 +0,0 @@ - family gfs - edit CYC '06' - edit ECF_FILES '/ecf/ecfnets/scripts/gfs_FV3' - edit PROJ 'GFS-OPS' - edit NET 'gfs' - edit RUN 'gfs' - edit COM '/gpfs/dell1/nco/ops/com' - edit QUEUESHARED 'prod_shared' - edit QUEUESERV 'prod_transfer' - edit QUEUE 'prod' - family dump - task jgfs_tropcy_qc_reloc - event 1 jtwc_bull_email - time 08:41 - task jgfs_dump - event 1 release_sfcprep - time 08:47 - task jgfs_dump_post - trigger jgfs_dump eq complete - event 1 release_gfs06_dump_alert - task jgfs_dump_alert - trigger jgfs_dump_post:release_gfs06_dump_alert - task jmodel_realtime_gfs - trigger jgfs_dump_alert eq complete - endfamily - family prep - task jgfs_emcsfc_sfc_prep - trigger ../dump/jgfs_dump:release_sfcprep - task jgfs_prep - trigger ../dump/jgfs_dump eq complete and ../dump/jgfs_tropcy_qc_reloc eq complete - task jgfs_prep_post - trigger jgfs_prep eq complete and ../jgfs_analysis eq complete - endfamily - task jgfs_analysis - trigger prep/jgfs_prep eq complete and prep/jgfs_emcsfc_sfc_prep == complete - event 1 release_fcst - task jgfs_vminmon - trigger jgfs_analysis == complete - family forecast - task jgfs_forecast_high - trigger ../jgfs_analysis:release_fcst - endfamily - family post - task jgfs_post_manager - trigger ../jgfs_analysis eq complete - event 1 release_postanl - event 2 release_post000 - event 3 release_post001 - event 4 release_post002 - event 5 release_post003 - event 6 release_post004 - event 7 release_post005 - event 8 release_post006 - event 9 release_post007 - event 10 release_post008 - event 11 release_post009 - event 12 release_post010 - event 13 release_post011 - event 14 release_post012 - event 15 release_post013 - event 16 release_post014 - event 17 release_post015 - event 18 release_post016 - event 19 release_post017 - event 20 release_post018 - event 21 release_post019 - event 22 release_post020 - event 23 release_post021 - event 24 release_post022 - event 25 release_post023 - event 26 release_post024 - event 27 release_post025 - event 28 release_post026 - event 29 release_post027 - event 30 release_post028 - event 31 release_post029 - event 32 release_post030 - event 33 release_post031 - event 34 release_post032 - event 35 release_post033 - event 36 release_post034 - event 37 release_post035 - event 38 release_post036 - event 39 release_post037 - event 40 release_post038 - event 41 release_post039 - event 42 release_post040 - event 43 release_post041 - event 44 release_post042 - event 45 release_post043 - event 46 release_post044 - event 47 release_post045 - event 48 release_post046 - event 49 release_post047 - event 50 release_post048 - event 51 release_post049 - event 52 release_post050 - event 53 release_post051 - event 54 release_post052 - event 55 release_post053 - event 56 release_post054 - event 57 release_post055 - event 58 release_post056 - event 59 release_post057 - event 60 release_post058 - event 61 release_post059 - event 62 release_post060 - event 63 release_post061 - event 64 release_post062 - event 65 release_post063 - event 66 release_post064 - event 67 release_post065 - event 68 release_post066 - event 69 release_post067 - event 70 release_post068 - event 71 release_post069 - event 72 release_post070 - event 73 release_post071 - event 74 release_post072 - event 75 release_post073 - event 76 release_post074 - event 77 release_post075 - event 78 release_post076 - event 79 release_post077 - event 80 release_post078 - event 81 release_post079 - event 82 release_post080 - event 83 release_post081 - event 84 release_post082 - event 85 release_post083 - event 86 release_post084 - event 87 release_post085 - event 88 release_post086 - event 89 release_post087 - event 90 release_post088 - event 91 release_post089 - event 92 release_post090 - event 93 release_post091 - event 94 release_post092 - event 95 release_post093 - event 96 release_post094 - event 97 release_post095 - event 98 release_post096 - event 99 release_post097 - event 100 release_post098 - event 101 release_post099 - event 102 release_post100 - event 103 release_post101 - event 104 release_post102 - event 105 release_post103 - event 106 release_post104 - event 107 release_post105 - event 108 release_post106 - event 109 release_post107 - event 110 release_post108 - event 111 release_post109 - event 112 release_post110 - event 113 release_post111 - event 114 release_post112 - event 115 release_post113 - event 116 release_post114 - event 117 release_post115 - event 118 release_post116 - event 119 release_post117 - event 120 release_post118 - event 121 release_post119 - event 122 release_post120 - event 123 release_post123 - event 124 release_post126 - event 125 release_post129 - event 126 release_post132 - event 127 release_post135 - event 128 release_post138 - event 129 release_post141 - event 130 release_post144 - event 131 release_post147 - event 132 release_post150 - event 133 release_post153 - event 134 release_post156 - event 135 release_post159 - event 136 release_post162 - event 137 release_post165 - event 138 release_post168 - event 139 release_post171 - event 140 release_post174 - event 141 release_post177 - event 142 release_post180 - event 143 release_post183 - event 144 release_post186 - event 145 release_post189 - event 146 release_post192 - event 147 release_post195 - event 148 release_post198 - event 149 release_post201 - event 150 release_post204 - event 151 release_post207 - event 152 release_post210 - event 153 release_post213 - event 154 release_post216 - event 155 release_post219 - event 156 release_post222 - event 157 release_post225 - event 158 release_post228 - event 159 release_post231 - event 160 release_post234 - event 161 release_post237 - event 162 release_post240 - event 163 release_post243 - event 164 release_post246 - event 165 release_post249 - event 166 release_post252 - event 167 release_post255 - event 168 release_post258 - event 169 release_post261 - event 170 release_post264 - event 171 release_post267 - event 172 release_post270 - event 173 release_post273 - event 174 release_post276 - event 175 release_post279 - event 176 release_post282 - event 177 release_post285 - event 178 release_post288 - event 179 release_post291 - event 180 release_post294 - event 181 release_post297 - event 182 release_post300 - event 183 release_post303 - event 184 release_post306 - event 185 release_post309 - event 186 release_post312 - event 187 release_post315 - event 188 release_post318 - event 189 release_post321 - event 190 release_post324 - event 191 release_post327 - event 192 release_post330 - event 193 release_post333 - event 194 release_post336 - event 195 release_post339 - event 196 release_post342 - event 197 release_post345 - event 198 release_post348 - event 199 release_post351 - event 200 release_post354 - event 201 release_post357 - event 202 release_post360 - event 203 release_post363 - event 204 release_post366 - event 205 release_post369 - event 206 release_post372 - event 207 release_post375 - event 208 release_post378 - event 209 release_post381 - event 210 release_post384 - task jgfs_post_anl - trigger ./jgfs_post_manager:release_postanl - edit FHRGRP '000' - edit FHRLST 'anl' - edit HR 'anl' - edit FHR 'anl' - event 1 release_postanl - task jgfs_post_f000 - trigger ./jgfs_post_manager:release_post000 - edit FHRGRP '001' - edit FHRLST 'f000' - edit FHR 'f000' - edit HR '000' - task jgfs_post_f001 - trigger ./jgfs_post_manager:release_post001 - edit FHRGRP '002' - edit FHRLST 'f001' - edit FHR 'f001' - edit HR '001' - task jgfs_post_f002 - trigger ./jgfs_post_manager:release_post002 - edit FHRGRP '003' - edit FHRLST 'f002' - edit FHR 'f002' - edit HR '002' - task jgfs_post_f003 - trigger ./jgfs_post_manager:release_post003 - edit FHRGRP '004' - edit FHRLST 'f003' - edit FHR 'f003' - edit HR '003' - task jgfs_post_f004 - trigger ./jgfs_post_manager:release_post004 - edit FHRGRP '005' - edit FHRLST 'f004' - edit FHR 'f004' - edit HR '004' - task jgfs_post_f005 - trigger ./jgfs_post_manager:release_post005 - edit FHRGRP '006' - edit FHRLST 'f005' - edit FHR 'f005' - edit HR '005' - task jgfs_post_f006 - trigger ./jgfs_post_manager:release_post006 - edit FHRGRP '007' - edit FHRLST 'f006' - edit FHR 'f006' - edit HR '006' - task jgfs_post_f007 - trigger ./jgfs_post_manager:release_post007 - edit FHRGRP '008' - edit FHRLST 'f007' - edit FHR 'f007' - edit HR '007' - task jgfs_post_f008 - trigger ./jgfs_post_manager:release_post008 - edit FHRGRP '009' - edit FHRLST 'f008' - edit FHR 'f008' - edit HR '008' - task jgfs_post_f009 - trigger ./jgfs_post_manager:release_post009 - edit FHRGRP '010' - edit FHRLST 'f009' - edit FHR 'f009' - edit HR '009' - task jgfs_post_f010 - trigger ./jgfs_post_manager:release_post010 - edit FHRGRP '011' - edit FHRLST 'f010' - edit FHR 'f010' - edit HR '010' - task jgfs_post_f011 - trigger ./jgfs_post_manager:release_post011 - edit FHRGRP '012' - edit FHRLST 'f011' - edit FHR 'f011' - edit HR '011' - task jgfs_post_f012 - trigger ./jgfs_post_manager:release_post012 - edit FHRGRP '013' - edit FHRLST 'f012' - edit FHR 'f012' - edit HR '012' - task jgfs_post_f013 - trigger ./jgfs_post_manager:release_post013 - edit FHRGRP '014' - edit FHRLST 'f013' - edit FHR 'f013' - edit HR '013' - task jgfs_post_f014 - trigger ./jgfs_post_manager:release_post014 - edit FHRGRP '015' - edit FHRLST 'f014' - edit FHR 'f014' - edit HR '014' - task jgfs_post_f015 - trigger ./jgfs_post_manager:release_post015 - edit FHRGRP '016' - edit FHRLST 'f015' - edit FHR 'f015' - edit HR '015' - task jgfs_post_f016 - trigger ./jgfs_post_manager:release_post016 - edit FHRGRP '017' - edit FHRLST 'f016' - edit FHR 'f016' - edit HR '016' - task jgfs_post_f017 - trigger ./jgfs_post_manager:release_post017 - edit FHRGRP '018' - edit FHRLST 'f017' - edit FHR 'f017' - edit HR '017' - task jgfs_post_f018 - trigger ./jgfs_post_manager:release_post018 - edit FHRGRP '019' - edit FHRLST 'f018' - edit FHR 'f018' - edit HR '018' - task jgfs_post_f019 - trigger ./jgfs_post_manager:release_post019 - edit FHRGRP '020' - edit FHRLST 'f019' - edit FHR 'f019' - edit HR '019' - task jgfs_post_f020 - trigger ./jgfs_post_manager:release_post020 - edit FHRGRP '021' - edit FHRLST 'f020' - edit FHR 'f020' - edit HR '020' - task jgfs_post_f021 - trigger ./jgfs_post_manager:release_post021 - edit FHRGRP '022' - edit FHRLST 'f021' - edit FHR 'f021' - edit HR '021' - task jgfs_post_f022 - trigger ./jgfs_post_manager:release_post022 - edit FHRGRP '023' - edit FHRLST 'f022' - edit FHR 'f022' - edit HR '022' - task jgfs_post_f023 - trigger ./jgfs_post_manager:release_post023 - edit FHRGRP '024' - edit FHRLST 'f023' - edit FHR 'f023' - edit HR '023' - task jgfs_post_f024 - trigger ./jgfs_post_manager:release_post024 - edit FHRGRP '025' - edit FHRLST 'f024' - edit FHR 'f024' - edit HR '024' - task jgfs_post_f025 - trigger ./jgfs_post_manager:release_post025 - edit FHRGRP '026' - edit FHRLST 'f025' - edit FHR 'f025' - edit HR '025' - task jgfs_post_f026 - trigger ./jgfs_post_manager:release_post026 - edit FHRGRP '027' - edit FHRLST 'f026' - edit FHR 'f026' - edit HR '026' - task jgfs_post_f027 - trigger ./jgfs_post_manager:release_post027 - edit FHRGRP '028' - edit FHRLST 'f027' - edit FHR 'f027' - edit HR '027' - task jgfs_post_f028 - trigger ./jgfs_post_manager:release_post028 - edit FHRGRP '029' - edit FHRLST 'f028' - edit FHR 'f028' - edit HR '028' - task jgfs_post_f029 - trigger ./jgfs_post_manager:release_post029 - edit FHRGRP '030' - edit FHRLST 'f029' - edit FHR 'f029' - edit HR '029' - task jgfs_post_f030 - trigger ./jgfs_post_manager:release_post030 - edit FHRGRP '031' - edit FHRLST 'f030' - edit FHR 'f030' - edit HR '030' - task jgfs_post_f031 - trigger ./jgfs_post_manager:release_post031 - edit FHRGRP '032' - edit FHRLST 'f031' - edit FHR 'f031' - edit HR '031' - task jgfs_post_f032 - trigger ./jgfs_post_manager:release_post032 - edit FHRGRP '033' - edit FHRLST 'f032' - edit FHR 'f032' - edit HR '032' - task jgfs_post_f033 - trigger ./jgfs_post_manager:release_post033 - edit FHRGRP '034' - edit FHRLST 'f033' - edit FHR 'f033' - edit HR '033' - task jgfs_post_f034 - trigger ./jgfs_post_manager:release_post034 - edit FHRGRP '035' - edit FHRLST 'f034' - edit FHR 'f034' - edit HR '034' - task jgfs_post_f035 - trigger ./jgfs_post_manager:release_post035 - edit FHRGRP '036' - edit FHRLST 'f035' - edit FHR 'f035' - edit HR '035' - task jgfs_post_f036 - trigger ./jgfs_post_manager:release_post036 - edit FHRGRP '037' - edit FHRLST 'f036' - edit FHR 'f036' - edit HR '036' - task jgfs_post_f037 - trigger ./jgfs_post_manager:release_post037 - edit FHRGRP '038' - edit FHRLST 'f037' - edit FHR 'f037' - edit HR '037' - task jgfs_post_f038 - trigger ./jgfs_post_manager:release_post038 - edit FHRGRP '039' - edit FHRLST 'f038' - edit FHR 'f038' - edit HR '038' - task jgfs_post_f039 - trigger ./jgfs_post_manager:release_post039 - edit FHRGRP '040' - edit FHRLST 'f039' - edit FHR 'f039' - edit HR '039' - task jgfs_post_f040 - trigger ./jgfs_post_manager:release_post040 - edit FHRGRP '041' - edit FHRLST 'f040' - edit FHR 'f040' - edit HR '040' - task jgfs_post_f041 - trigger ./jgfs_post_manager:release_post041 - edit FHRGRP '042' - edit FHRLST 'f041' - edit FHR 'f041' - edit HR '041' - task jgfs_post_f042 - trigger ./jgfs_post_manager:release_post042 - edit FHRGRP '043' - edit FHRLST 'f042' - edit FHR 'f042' - edit HR '042' - task jgfs_post_f043 - trigger ./jgfs_post_manager:release_post043 - edit FHRGRP '044' - edit FHRLST 'f043' - edit FHR 'f043' - edit HR '043' - task jgfs_post_f044 - trigger ./jgfs_post_manager:release_post044 - edit FHRGRP '045' - edit FHRLST 'f044' - edit FHR 'f044' - edit HR '044' - task jgfs_post_f045 - trigger ./jgfs_post_manager:release_post045 - edit FHRGRP '046' - edit FHRLST 'f045' - edit FHR 'f045' - edit HR '045' - task jgfs_post_f046 - trigger ./jgfs_post_manager:release_post046 - edit FHRGRP '047' - edit FHRLST 'f046' - edit FHR 'f046' - edit HR '046' - task jgfs_post_f047 - trigger ./jgfs_post_manager:release_post047 - edit FHRGRP '048' - edit FHRLST 'f047' - edit FHR 'f047' - edit HR '047' - task jgfs_post_f048 - trigger ./jgfs_post_manager:release_post048 - edit FHRGRP '049' - edit FHRLST 'f048' - edit FHR 'f048' - edit HR '048' - task jgfs_post_f049 - trigger ./jgfs_post_manager:release_post049 - edit FHRGRP '050' - edit FHRLST 'f049' - edit FHR 'f049' - edit HR '049' - task jgfs_post_f050 - trigger ./jgfs_post_manager:release_post050 - edit FHRGRP '051' - edit FHRLST 'f050' - edit FHR 'f050' - edit HR '050' - task jgfs_post_f051 - trigger ./jgfs_post_manager:release_post051 - edit FHRGRP '052' - edit FHRLST 'f051' - edit FHR 'f051' - edit HR '051' - task jgfs_post_f052 - trigger ./jgfs_post_manager:release_post052 - edit FHRGRP '053' - edit FHRLST 'f052' - edit FHR 'f052' - edit HR '052' - task jgfs_post_f053 - trigger ./jgfs_post_manager:release_post053 - edit FHRGRP '054' - edit FHRLST 'f053' - edit FHR 'f053' - edit HR '053' - task jgfs_post_f054 - trigger ./jgfs_post_manager:release_post054 - edit FHRGRP '055' - edit FHRLST 'f054' - edit FHR 'f054' - edit HR '054' - task jgfs_post_f055 - trigger ./jgfs_post_manager:release_post055 - edit FHRGRP '056' - edit FHRLST 'f055' - edit FHR 'f055' - edit HR '055' - task jgfs_post_f056 - trigger ./jgfs_post_manager:release_post056 - edit FHRGRP '057' - edit FHRLST 'f056' - edit FHR 'f056' - edit HR '056' - task jgfs_post_f057 - trigger ./jgfs_post_manager:release_post057 - edit FHRGRP '058' - edit FHRLST 'f057' - edit FHR 'f057' - edit HR '057' - task jgfs_post_f058 - trigger ./jgfs_post_manager:release_post058 - edit FHRGRP '059' - edit FHRLST 'f058' - edit FHR 'f058' - edit HR '058' - task jgfs_post_f059 - trigger ./jgfs_post_manager:release_post059 - edit FHRGRP '060' - edit FHRLST 'f059' - edit FHR 'f059' - edit HR '059' - task jgfs_post_f060 - trigger ./jgfs_post_manager:release_post060 - edit FHRGRP '061' - edit FHRLST 'f060' - edit FHR 'f060' - edit HR '060' - task jgfs_post_f061 - trigger ./jgfs_post_manager:release_post061 - edit FHRGRP '062' - edit FHRLST 'f061' - edit FHR 'f061' - edit HR '061' - task jgfs_post_f062 - trigger ./jgfs_post_manager:release_post062 - edit FHRGRP '063' - edit FHRLST 'f062' - edit FHR 'f062' - edit HR '062' - task jgfs_post_f063 - trigger ./jgfs_post_manager:release_post063 - edit FHRGRP '064' - edit FHRLST 'f063' - edit FHR 'f063' - edit HR '063' - task jgfs_post_f064 - trigger ./jgfs_post_manager:release_post064 - edit FHRGRP '065' - edit FHRLST 'f064' - edit FHR 'f064' - edit HR '064' - task jgfs_post_f065 - trigger ./jgfs_post_manager:release_post065 - edit FHRGRP '066' - edit FHRLST 'f065' - edit FHR 'f065' - edit HR '065' - task jgfs_post_f066 - trigger ./jgfs_post_manager:release_post066 - edit FHRGRP '067' - edit FHRLST 'f066' - edit FHR 'f066' - edit HR '066' - task jgfs_post_f067 - trigger ./jgfs_post_manager:release_post067 - edit FHRGRP '068' - edit FHRLST 'f067' - edit FHR 'f067' - edit HR '067' - task jgfs_post_f068 - trigger ./jgfs_post_manager:release_post068 - edit FHRGRP '069' - edit FHRLST 'f068' - edit FHR 'f068' - edit HR '068' - task jgfs_post_f069 - trigger ./jgfs_post_manager:release_post069 - edit FHRGRP '070' - edit FHRLST 'f069' - edit FHR 'f069' - edit HR '069' - task jgfs_post_f070 - trigger ./jgfs_post_manager:release_post070 - edit FHRGRP '071' - edit FHRLST 'f070' - edit FHR 'f070' - edit HR '070' - task jgfs_post_f071 - trigger ./jgfs_post_manager:release_post071 - edit FHRGRP '072' - edit FHRLST 'f071' - edit FHR 'f071' - edit HR '071' - task jgfs_post_f072 - trigger ./jgfs_post_manager:release_post072 - edit FHRGRP '073' - edit FHRLST 'f072' - edit FHR 'f072' - edit HR '072' - task jgfs_post_f073 - trigger ./jgfs_post_manager:release_post073 - edit FHRGRP '074' - edit FHRLST 'f073' - edit FHR 'f073' - edit HR '073' - task jgfs_post_f074 - trigger ./jgfs_post_manager:release_post074 - edit FHRGRP '075' - edit FHRLST 'f074' - edit FHR 'f074' - edit HR '074' - task jgfs_post_f075 - trigger ./jgfs_post_manager:release_post075 - edit FHRGRP '076' - edit FHRLST 'f075' - edit FHR 'f075' - edit HR '075' - task jgfs_post_f076 - trigger ./jgfs_post_manager:release_post076 - edit FHRGRP '077' - edit FHRLST 'f076' - edit FHR 'f076' - edit HR '076' - task jgfs_post_f077 - trigger ./jgfs_post_manager:release_post077 - edit FHRGRP '078' - edit FHRLST 'f077' - edit FHR 'f077' - edit HR '077' - task jgfs_post_f078 - trigger ./jgfs_post_manager:release_post078 - edit FHRGRP '079' - edit FHRLST 'f078' - edit FHR 'f078' - edit HR '078' - task jgfs_post_f079 - trigger ./jgfs_post_manager:release_post079 - edit FHRGRP '080' - edit FHRLST 'f079' - edit FHR 'f079' - edit HR '079' - task jgfs_post_f080 - trigger ./jgfs_post_manager:release_post080 - edit FHRGRP '081' - edit FHRLST 'f080' - edit FHR 'f080' - edit HR '080' - task jgfs_post_f081 - trigger ./jgfs_post_manager:release_post081 - edit FHRGRP '082' - edit FHRLST 'f081' - edit FHR 'f081' - edit HR '081' - task jgfs_post_f082 - trigger ./jgfs_post_manager:release_post082 - edit FHRGRP '083' - edit FHRLST 'f082' - edit FHR 'f082' - edit HR '082' - task jgfs_post_f083 - trigger ./jgfs_post_manager:release_post083 - edit FHRGRP '084' - edit FHRLST 'f083' - edit FHR 'f083' - edit HR '083' - task jgfs_post_f084 - trigger ./jgfs_post_manager:release_post084 - edit FHRGRP '085' - edit FHRLST 'f084' - edit FHR 'f084' - edit HR '084' - task jgfs_post_f085 - trigger ./jgfs_post_manager:release_post085 - edit FHRGRP '086' - edit FHRLST 'f085' - edit FHR 'f085' - edit HR '085' - task jgfs_post_f086 - trigger ./jgfs_post_manager:release_post086 - edit FHRGRP '087' - edit FHRLST 'f086' - edit FHR 'f086' - edit HR '086' - task jgfs_post_f087 - trigger ./jgfs_post_manager:release_post087 - edit FHRGRP '088' - edit FHRLST 'f087' - edit FHR 'f087' - edit HR '087' - task jgfs_post_f088 - trigger ./jgfs_post_manager:release_post088 - edit FHRGRP '089' - edit FHRLST 'f088' - edit FHR 'f088' - edit HR '088' - task jgfs_post_f089 - trigger ./jgfs_post_manager:release_post089 - edit FHRGRP '090' - edit FHRLST 'f089' - edit FHR 'f089' - edit HR '089' - task jgfs_post_f090 - trigger ./jgfs_post_manager:release_post090 - edit FHRGRP '091' - edit FHRLST 'f090' - edit FHR 'f090' - edit HR '090' - task jgfs_post_f091 - trigger ./jgfs_post_manager:release_post091 - edit FHRGRP '092' - edit FHRLST 'f091' - edit FHR 'f091' - edit HR '091' - task jgfs_post_f092 - trigger ./jgfs_post_manager:release_post092 - edit FHRGRP '093' - edit FHRLST 'f092' - edit FHR 'f092' - edit HR '092' - task jgfs_post_f093 - trigger ./jgfs_post_manager:release_post093 - edit FHRGRP '094' - edit FHRLST 'f093' - edit FHR 'f093' - edit HR '093' - task jgfs_post_f094 - trigger ./jgfs_post_manager:release_post094 - edit FHRGRP '095' - edit FHRLST 'f094' - edit FHR 'f094' - edit HR '094' - task jgfs_post_f095 - trigger ./jgfs_post_manager:release_post095 - edit FHRGRP '096' - edit FHRLST 'f095' - edit FHR 'f095' - edit HR '095' - task jgfs_post_f096 - trigger ./jgfs_post_manager:release_post096 - edit FHRGRP '097' - edit FHRLST 'f096' - edit FHR 'f096' - edit HR '096' - task jgfs_post_f097 - trigger ./jgfs_post_manager:release_post097 - edit FHRGRP '098' - edit FHRLST 'f097' - edit FHR 'f097' - edit HR '097' - task jgfs_post_f098 - trigger ./jgfs_post_manager:release_post098 - edit FHRGRP '099' - edit FHRLST 'f098' - edit FHR 'f098' - edit HR '098' - task jgfs_post_f099 - trigger ./jgfs_post_manager:release_post099 - edit FHRGRP '100' - edit FHRLST 'f099' - edit FHR 'f099' - edit HR '099' - task jgfs_post_f100 - trigger ./jgfs_post_manager:release_post100 - edit FHRGRP '101' - edit FHRLST 'f100' - edit FHR 'f100' - edit HR '100' - task jgfs_post_f101 - trigger ./jgfs_post_manager:release_post101 - edit FHRGRP '102' - edit FHRLST 'f101' - edit FHR 'f101' - edit HR '101' - task jgfs_post_f102 - trigger ./jgfs_post_manager:release_post102 - edit FHRGRP '103' - edit FHRLST 'f102' - edit FHR 'f102' - edit HR '102' - task jgfs_post_f103 - trigger ./jgfs_post_manager:release_post103 - edit FHRGRP '104' - edit FHRLST 'f103' - edit FHR 'f103' - edit HR '103' - task jgfs_post_f104 - trigger ./jgfs_post_manager:release_post104 - edit FHRGRP '105' - edit FHRLST 'f104' - edit FHR 'f104' - edit HR '104' - task jgfs_post_f105 - trigger ./jgfs_post_manager:release_post105 - edit FHRGRP '106' - edit FHRLST 'f105' - edit FHR 'f105' - edit HR '105' - task jgfs_post_f106 - trigger ./jgfs_post_manager:release_post106 - edit FHRGRP '107' - edit FHRLST 'f106' - edit FHR 'f106' - edit HR '106' - task jgfs_post_f107 - trigger ./jgfs_post_manager:release_post107 - edit FHRGRP '108' - edit FHRLST 'f107' - edit FHR 'f107' - edit HR '107' - task jgfs_post_f108 - trigger ./jgfs_post_manager:release_post108 - edit FHRGRP '109' - edit FHRLST 'f108' - edit FHR 'f108' - edit HR '108' - task jgfs_post_f109 - trigger ./jgfs_post_manager:release_post109 - edit FHRGRP '110' - edit FHRLST 'f109' - edit FHR 'f109' - edit HR '109' - task jgfs_post_f110 - trigger ./jgfs_post_manager:release_post110 - edit FHRGRP '111' - edit FHRLST 'f110' - edit FHR 'f110' - edit HR '110' - task jgfs_post_f111 - trigger ./jgfs_post_manager:release_post111 - edit FHRGRP '112' - edit FHRLST 'f111' - edit FHR 'f111' - edit HR '111' - task jgfs_post_f112 - trigger ./jgfs_post_manager:release_post112 - edit FHRGRP '113' - edit FHRLST 'f112' - edit FHR 'f112' - edit HR '112' - task jgfs_post_f113 - trigger ./jgfs_post_manager:release_post113 - edit FHRGRP '114' - edit FHRLST 'f113' - edit FHR 'f113' - edit HR '113' - task jgfs_post_f114 - trigger ./jgfs_post_manager:release_post114 - edit FHRGRP '115' - edit FHRLST 'f114' - edit FHR 'f114' - edit HR '114' - task jgfs_post_f115 - trigger ./jgfs_post_manager:release_post115 - edit FHRGRP '116' - edit FHRLST 'f115' - edit FHR 'f115' - edit HR '115' - task jgfs_post_f116 - trigger ./jgfs_post_manager:release_post116 - edit FHRGRP '117' - edit FHRLST 'f116' - edit FHR 'f116' - edit HR '116' - task jgfs_post_f117 - trigger ./jgfs_post_manager:release_post117 - edit FHRGRP '118' - edit FHRLST 'f117' - edit FHR 'f117' - edit HR '117' - task jgfs_post_f118 - trigger ./jgfs_post_manager:release_post118 - edit FHRGRP '119' - edit FHRLST 'f118' - edit FHR 'f118' - edit HR '118' - task jgfs_post_f119 - trigger ./jgfs_post_manager:release_post119 - edit FHRGRP '120' - edit FHRLST 'f119' - edit FHR 'f119' - edit HR '119' - task jgfs_post_f120 - trigger ./jgfs_post_manager:release_post120 - edit FHRGRP '121' - edit FHRLST 'f120' - edit FHR 'f120' - edit HR '120' - task jgfs_post_f123 - trigger ./jgfs_post_manager:release_post123 - edit FHRGRP '122' - edit FHRLST 'f123' - edit FHR 'f123' - edit HR '123' - task jgfs_post_f126 - trigger ./jgfs_post_manager:release_post126 - edit FHRGRP '123' - edit FHRLST 'f126' - edit FHR 'f126' - edit HR '126' - task jgfs_post_f129 - trigger ./jgfs_post_manager:release_post129 - edit FHRGRP '124' - edit FHRLST 'f129' - edit FHR 'f129' - edit HR '129' - task jgfs_post_f132 - trigger ./jgfs_post_manager:release_post132 - edit FHRGRP '125' - edit FHRLST 'f132' - edit FHR 'f132' - edit HR '132' - task jgfs_post_f135 - trigger ./jgfs_post_manager:release_post135 - edit FHRGRP '126' - edit FHRLST 'f135' - edit FHR 'f135' - edit HR '135' - task jgfs_post_f138 - trigger ./jgfs_post_manager:release_post138 - edit FHRGRP '127' - edit FHRLST 'f138' - edit FHR 'f138' - edit HR '138' - task jgfs_post_f141 - trigger ./jgfs_post_manager:release_post141 - edit FHRGRP '128' - edit FHRLST 'f141' - edit FHR 'f141' - edit HR '141' - task jgfs_post_f144 - trigger ./jgfs_post_manager:release_post144 - edit FHRGRP '129' - edit FHRLST 'f144' - edit FHR 'f144' - edit HR '144' - task jgfs_post_f147 - trigger ./jgfs_post_manager:release_post147 - edit FHRGRP '130' - edit FHRLST 'f147' - edit FHR 'f147' - edit HR '147' - task jgfs_post_f150 - trigger ./jgfs_post_manager:release_post150 - edit FHRGRP '131' - edit FHRLST 'f150' - edit FHR 'f150' - edit HR '150' - task jgfs_post_f153 - trigger ./jgfs_post_manager:release_post153 - edit FHRGRP '132' - edit FHRLST 'f153' - edit FHR 'f153' - edit HR '153' - task jgfs_post_f156 - trigger ./jgfs_post_manager:release_post156 - edit FHRGRP '133' - edit FHRLST 'f156' - edit FHR 'f156' - edit HR '156' - task jgfs_post_f159 - trigger ./jgfs_post_manager:release_post159 - edit FHRGRP '134' - edit FHRLST 'f159' - edit FHR 'f159' - edit HR '159' - task jgfs_post_f162 - trigger ./jgfs_post_manager:release_post162 - edit FHRGRP '135' - edit FHRLST 'f162' - edit FHR 'f162' - edit HR '162' - task jgfs_post_f165 - trigger ./jgfs_post_manager:release_post165 - edit FHRGRP '136' - edit FHRLST 'f165' - edit FHR 'f165' - edit HR '165' - task jgfs_post_f168 - trigger ./jgfs_post_manager:release_post168 - edit FHRGRP '137' - edit FHRLST 'f168' - edit FHR 'f168' - edit HR '168' - task jgfs_post_f171 - trigger ./jgfs_post_manager:release_post171 - edit FHRGRP '138' - edit FHRLST 'f171' - edit FHR 'f171' - edit HR '171' - task jgfs_post_f174 - trigger ./jgfs_post_manager:release_post174 - edit FHRGRP '139' - edit FHRLST 'f174' - edit FHR 'f174' - edit HR '174' - task jgfs_post_f177 - trigger ./jgfs_post_manager:release_post177 - edit FHRGRP '140' - edit FHRLST 'f177' - edit FHR 'f177' - edit HR '177' - task jgfs_post_f180 - trigger ./jgfs_post_manager:release_post180 - edit FHRGRP '141' - edit FHRLST 'f180' - edit FHR 'f180' - edit HR '180' - task jgfs_post_f183 - trigger ./jgfs_post_manager:release_post183 - edit FHRGRP '142' - edit FHRLST 'f183' - edit FHR 'f183' - edit HR '183' - task jgfs_post_f186 - trigger ./jgfs_post_manager:release_post186 - edit FHRGRP '143' - edit FHRLST 'f186' - edit FHR 'f186' - edit HR '186' - task jgfs_post_f189 - trigger ./jgfs_post_manager:release_post189 - edit FHRGRP '144' - edit FHRLST 'f189' - edit FHR 'f189' - edit HR '189' - task jgfs_post_f192 - trigger ./jgfs_post_manager:release_post192 - edit FHRGRP '145' - edit FHRLST 'f192' - edit FHR 'f192' - edit HR '192' - task jgfs_post_f195 - trigger ./jgfs_post_manager:release_post195 - edit FHRGRP '146' - edit FHRLST 'f195' - edit FHR 'f195' - edit HR '195' - task jgfs_post_f198 - trigger ./jgfs_post_manager:release_post198 - edit FHRGRP '147' - edit FHRLST 'f198' - edit FHR 'f198' - edit HR '198' - task jgfs_post_f201 - trigger ./jgfs_post_manager:release_post201 - edit FHRGRP '148' - edit FHRLST 'f201' - edit FHR 'f201' - edit HR '201' - task jgfs_post_f204 - trigger ./jgfs_post_manager:release_post204 - edit FHRGRP '149' - edit FHRLST 'f204' - edit FHR 'f204' - edit HR '204' - task jgfs_post_f207 - trigger ./jgfs_post_manager:release_post207 - edit FHRGRP '150' - edit FHRLST 'f207' - edit FHR 'f207' - edit HR '207' - task jgfs_post_f210 - trigger ./jgfs_post_manager:release_post210 - edit FHRGRP '151' - edit FHRLST 'f210' - edit FHR 'f210' - edit HR '210' - task jgfs_post_f213 - trigger ./jgfs_post_manager:release_post213 - edit FHRGRP '152' - edit FHRLST 'f213' - edit FHR 'f213' - edit HR '213' - task jgfs_post_f216 - trigger ./jgfs_post_manager:release_post216 - edit FHRGRP '153' - edit FHRLST 'f216' - edit FHR 'f216' - edit HR '216' - task jgfs_post_f219 - trigger ./jgfs_post_manager:release_post219 - edit FHRGRP '154' - edit FHRLST 'f219' - edit FHR 'f219' - edit HR '219' - task jgfs_post_f222 - trigger ./jgfs_post_manager:release_post222 - edit FHRGRP '155' - edit FHRLST 'f222' - edit FHR 'f222' - edit HR '222' - task jgfs_post_f225 - trigger ./jgfs_post_manager:release_post225 - edit FHRGRP '156' - edit FHRLST 'f225' - edit FHR 'f225' - edit HR '225' - task jgfs_post_f228 - trigger ./jgfs_post_manager:release_post228 - edit FHRGRP '157' - edit FHRLST 'f228' - edit FHR 'f228' - edit HR '228' - task jgfs_post_f231 - trigger ./jgfs_post_manager:release_post231 - edit FHRGRP '158' - edit FHRLST 'f231' - edit FHR 'f231' - edit HR '231' - task jgfs_post_f234 - trigger ./jgfs_post_manager:release_post234 - edit FHRGRP '159' - edit FHRLST 'f234' - edit FHR 'f234' - edit HR '234' - task jgfs_post_f237 - trigger ./jgfs_post_manager:release_post237 - edit FHRGRP '160' - edit FHRLST 'f237' - edit FHR 'f237' - edit HR '237' - task jgfs_post_f240 - trigger ./jgfs_post_manager:release_post240 - edit FHRGRP '161' - edit FHRLST 'f240' - edit FHR 'f240' - edit HR '240' - task jgfs_post_f243 - trigger ./jgfs_post_manager:release_post243 - edit FHRGRP '162' - edit FHRLST 'f243' - edit FHR 'f243' - edit HR '243' - task jgfs_post_f246 - trigger ./jgfs_post_manager:release_post246 - edit FHRGRP '163' - edit FHRLST 'f246' - edit FHR 'f246' - edit HR '246' - task jgfs_post_f249 - trigger ./jgfs_post_manager:release_post249 - edit FHRGRP '164' - edit FHRLST 'f249' - edit FHR 'f249' - edit HR '249' - task jgfs_post_f252 - trigger ./jgfs_post_manager:release_post252 - edit FHRGRP '165' - edit FHRLST 'f252' - edit FHR 'f252' - edit HR '252' - task jgfs_post_f255 - trigger ./jgfs_post_manager:release_post255 - edit FHRGRP '166' - edit FHRLST 'f255' - edit FHR 'f255' - edit HR '255' - task jgfs_post_f258 - trigger ./jgfs_post_manager:release_post258 - edit FHRGRP '167' - edit FHRLST 'f258' - edit FHR 'f258' - edit HR '258' - task jgfs_post_f261 - trigger ./jgfs_post_manager:release_post261 - edit FHRGRP '168' - edit FHRLST 'f261' - edit FHR 'f261' - edit HR '261' - task jgfs_post_f264 - trigger ./jgfs_post_manager:release_post264 - edit FHRGRP '169' - edit FHRLST 'f264' - edit FHR 'f264' - edit HR '264' - task jgfs_post_f267 - trigger ./jgfs_post_manager:release_post267 - edit FHRGRP '170' - edit FHRLST 'f267' - edit FHR 'f267' - edit HR '267' - task jgfs_post_f270 - trigger ./jgfs_post_manager:release_post270 - edit FHRGRP '171' - edit FHRLST 'f270' - edit FHR 'f270' - edit HR '270' - task jgfs_post_f273 - trigger ./jgfs_post_manager:release_post273 - edit FHRGRP '172' - edit FHRLST 'f273' - edit FHR 'f273' - edit HR '273' - task jgfs_post_f276 - trigger ./jgfs_post_manager:release_post276 - edit FHRGRP '173' - edit FHRLST 'f276' - edit FHR 'f276' - edit HR '276' - task jgfs_post_f279 - trigger ./jgfs_post_manager:release_post279 - edit FHRGRP '174' - edit FHRLST 'f279' - edit FHR 'f279' - edit HR '279' - task jgfs_post_f282 - trigger ./jgfs_post_manager:release_post282 - edit FHRGRP '175' - edit FHRLST 'f282' - edit FHR 'f282' - edit HR '282' - task jgfs_post_f285 - trigger ./jgfs_post_manager:release_post285 - edit FHRGRP '176' - edit FHRLST 'f285' - edit FHR 'f285' - edit HR '285' - task jgfs_post_f288 - trigger ./jgfs_post_manager:release_post288 - edit FHRGRP '177' - edit FHRLST 'f288' - edit FHR 'f288' - edit HR '288' - task jgfs_post_f291 - trigger ./jgfs_post_manager:release_post291 - edit FHRGRP '178' - edit FHRLST 'f291' - edit FHR 'f291' - edit HR '291' - task jgfs_post_f294 - trigger ./jgfs_post_manager:release_post294 - edit FHRGRP '179' - edit FHRLST 'f294' - edit FHR 'f294' - edit HR '294' - task jgfs_post_f297 - trigger ./jgfs_post_manager:release_post297 - edit FHRGRP '180' - edit FHRLST 'f297' - edit FHR 'f297' - edit HR '297' - task jgfs_post_f300 - trigger ./jgfs_post_manager:release_post300 - edit FHRGRP '181' - edit FHRLST 'f300' - edit FHR 'f300' - edit HR '300' - task jgfs_post_f303 - trigger ./jgfs_post_manager:release_post303 - edit FHRGRP '182' - edit FHRLST 'f303' - edit FHR 'f303' - edit HR '303' - task jgfs_post_f306 - trigger ./jgfs_post_manager:release_post306 - edit FHRGRP '183' - edit FHRLST 'f306' - edit FHR 'f306' - edit HR '306' - task jgfs_post_f309 - trigger ./jgfs_post_manager:release_post309 - edit FHRGRP '184' - edit FHRLST 'f309' - edit FHR 'f309' - edit HR '309' - task jgfs_post_f312 - trigger ./jgfs_post_manager:release_post312 - edit FHRGRP '185' - edit FHRLST 'f312' - edit FHR 'f312' - edit HR '312' - task jgfs_post_f315 - trigger ./jgfs_post_manager:release_post315 - edit FHRGRP '186' - edit FHRLST 'f315' - edit FHR 'f315' - edit HR '315' - task jgfs_post_f318 - trigger ./jgfs_post_manager:release_post318 - edit FHRGRP '187' - edit FHRLST 'f318' - edit FHR 'f318' - edit HR '318' - task jgfs_post_f321 - trigger ./jgfs_post_manager:release_post321 - edit FHRGRP '188' - edit FHRLST 'f321' - edit FHR 'f321' - edit HR '321' - task jgfs_post_f324 - trigger ./jgfs_post_manager:release_post324 - edit FHRGRP '189' - edit FHRLST 'f324' - edit FHR 'f324' - edit HR '324' - task jgfs_post_f327 - trigger ./jgfs_post_manager:release_post327 - edit FHRGRP '190' - edit FHRLST 'f327' - edit FHR 'f327' - edit HR '327' - task jgfs_post_f330 - trigger ./jgfs_post_manager:release_post330 - edit FHRGRP '191' - edit FHRLST 'f330' - edit FHR 'f330' - edit HR '330' - task jgfs_post_f333 - trigger ./jgfs_post_manager:release_post333 - edit FHRGRP '192' - edit FHRLST 'f333' - edit FHR 'f333' - edit HR '333' - task jgfs_post_f336 - trigger ./jgfs_post_manager:release_post336 - edit FHRGRP '193' - edit FHRLST 'f336' - edit FHR 'f336' - edit HR '336' - task jgfs_post_f339 - trigger ./jgfs_post_manager:release_post339 - edit FHRGRP '194' - edit FHRLST 'f339' - edit FHR 'f339' - edit HR '339' - task jgfs_post_f342 - trigger ./jgfs_post_manager:release_post342 - edit FHRGRP '195' - edit FHRLST 'f342' - edit FHR 'f342' - edit HR '342' - task jgfs_post_f345 - trigger ./jgfs_post_manager:release_post345 - edit FHRGRP '196' - edit FHRLST 'f345' - edit FHR 'f345' - edit HR '345' - task jgfs_post_f348 - trigger ./jgfs_post_manager:release_post348 - edit FHRGRP '197' - edit FHRLST 'f348' - edit FHR 'f348' - edit HR '348' - task jgfs_post_f351 - trigger ./jgfs_post_manager:release_post351 - edit FHRGRP '198' - edit FHRLST 'f351' - edit FHR 'f351' - edit HR '351' - task jgfs_post_f354 - trigger ./jgfs_post_manager:release_post354 - edit FHRGRP '199' - edit FHRLST 'f354' - edit FHR 'f354' - edit HR '354' - task jgfs_post_f357 - trigger ./jgfs_post_manager:release_post357 - edit FHRGRP '200' - edit FHRLST 'f357' - edit FHR 'f357' - edit HR '357' - task jgfs_post_f360 - trigger ./jgfs_post_manager:release_post360 - edit FHRGRP '201' - edit FHRLST 'f360' - edit FHR 'f360' - edit HR '360' - task jgfs_post_f363 - trigger ./jgfs_post_manager:release_post363 - edit FHRGRP '202' - edit FHRLST 'f363' - edit FHR 'f363' - edit HR '363' - task jgfs_post_f366 - trigger ./jgfs_post_manager:release_post366 - edit FHRGRP '203' - edit FHRLST 'f366' - edit FHR 'f366' - edit HR '366' - task jgfs_post_f369 - trigger ./jgfs_post_manager:release_post369 - edit FHRGRP '204' - edit FHRLST 'f369' - edit FHR 'f369' - edit HR '369' - task jgfs_post_f372 - trigger ./jgfs_post_manager:release_post372 - edit FHRGRP '205' - edit FHRLST 'f372' - edit FHR 'f372' - edit HR '372' - task jgfs_post_f375 - trigger ./jgfs_post_manager:release_post375 - edit FHRGRP '206' - edit FHRLST 'f375' - edit FHR 'f375' - edit HR '375' - task jgfs_post_f378 - trigger ./jgfs_post_manager:release_post378 - edit FHRGRP '207' - edit FHRLST 'f378' - edit FHR 'f378' - edit HR '378' - task jgfs_post_f381 - trigger ./jgfs_post_manager:release_post381 - edit FHRGRP '208' - edit FHRLST 'f381' - edit FHR 'f381' - edit HR '381' - task jgfs_post_f384 - trigger ./jgfs_post_manager:release_post384 - edit FHRGRP '209' - edit FHRLST 'f384' - edit FHR 'f384' - edit HR '384' - endfamily - family post_processing - task jgfs_wafs_gcip - trigger ../post/jgfs_post_f003 == complete - time 10:40 - family grib_wafs - task jgfs_wafs_f00 - trigger ../../post/jgfs_post_f000 == complete and ../../post/jgfs_post_f120 == complete and ../grib2_wafs/jgfs_wafs_grib2 == complete - edit FCSTHR '00' - task jgfs_wafs_f06 - trigger ../../post/jgfs_post_f006 == complete and ./jgfs_wafs_f00 == complete - edit FCSTHR '06' - task jgfs_wafs_f12 - trigger ../../post/jgfs_post_f012 == complete and ./jgfs_wafs_f06 == complete - edit FCSTHR '12' - task jgfs_wafs_f18 - trigger ../../post/jgfs_post_f018 == complete and ./jgfs_wafs_f12 == complete - edit FCSTHR '18' - task jgfs_wafs_f24 - trigger ../../post/jgfs_post_f024 == complete and ./jgfs_wafs_f18 == complete - edit FCSTHR '24' - task jgfs_wafs_f30 - trigger ../../post/jgfs_post_f030 == complete and ./jgfs_wafs_f24 == complete - edit FCSTHR '30' - task jgfs_wafs_f36 - trigger ../../post/jgfs_post_f036 == complete and ./jgfs_wafs_f30 == complete - edit FCSTHR '36' - task jgfs_wafs_f42 - trigger ../../post/jgfs_post_f042 == complete and ./jgfs_wafs_f36 == complete - edit FCSTHR '42' - task jgfs_wafs_f48 - trigger ../../post/jgfs_post_f048 == complete and ./jgfs_wafs_f42 == complete - edit FCSTHR '48' - task jgfs_wafs_f54 - trigger ../../post/jgfs_post_f054 == complete and ./jgfs_wafs_f48 == complete - edit FCSTHR '54' - task jgfs_wafs_f60 - trigger ../../post/jgfs_post_f060 == complete and ./jgfs_wafs_f54 == complete - edit FCSTHR '60' - task jgfs_wafs_f66 - trigger ../../post/jgfs_post_f066 == complete and ./jgfs_wafs_f60 == complete - edit FCSTHR '66' - task jgfs_wafs_f72 - trigger ../../post/jgfs_post_f072 == complete and ./jgfs_wafs_f66 == complete - edit FCSTHR '72' - task jgfs_wafs_f78 - trigger ../../post/jgfs_post_f078 == complete and ./jgfs_wafs_f72 == complete - edit FCSTHR '78' - task jgfs_wafs_f84 - trigger ../../post/jgfs_post_f084 == complete and ./jgfs_wafs_f78 == complete - edit FCSTHR '84' - task jgfs_wafs_f90 - trigger ../../post/jgfs_post_f090 == complete and ./jgfs_wafs_f84 == complete - edit FCSTHR '90' - task jgfs_wafs_f96 - trigger ../../post/jgfs_post_f096 == complete and ./jgfs_wafs_f90 == complete - edit FCSTHR '96' - task jgfs_wafs_f102 - trigger ../../post/jgfs_post_f102 == complete and ./jgfs_wafs_f96 == complete - edit FCSTHR '102' - task jgfs_wafs_f108 - trigger ../../post/jgfs_post_f108 == complete and ./jgfs_wafs_f102 == complete - edit FCSTHR '108' - task jgfs_wafs_f114 - trigger ../../post/jgfs_post_f114 == complete and ./jgfs_wafs_f108 == complete - edit FCSTHR '114' - task jgfs_wafs_f120 - trigger ../../post/jgfs_post_f120 == complete and ./jgfs_wafs_f114 == complete - edit FCSTHR '120' - endfamily - family bufr_sounding - task jgfs_postsnd - trigger ../../post/jgfs_post_manager:release_post000 - endfamily - family bulletins - task jgfs_fbwind - trigger ../../post/jgfs_post_f006 == complete and ../../post/jgfs_post_f012 == complete and ../../post/jgfs_post_f024 == complete - endfamily - family grib2_wafs - task jgfs_wafs_grib2 - trigger ../../post/jgfs_post_f000 == complete - task jgfs_wafs_blending - trigger ./jgfs_wafs_grib2 == complete - time 10:33 - endfamily - family awips_20km_1p0 - task jgfs_awips_f000 - trigger ../../post/jgfs_post_f000 == complete - edit FHRGRP '000' - edit FHRLST 'f000' - edit FCSTHR '000' - edit TRDRUN 'YES' - task jgfs_awips_f003 - trigger ../../post/jgfs_post_f003 == complete - edit FHRGRP '003' - edit FHRLST 'f003' - edit FCSTHR '003' - edit TRDRUN 'NO' - task jgfs_awips_f006 - trigger ../../post/jgfs_post_f006 == complete - edit FHRGRP '006' - edit FHRLST 'f006' - edit FCSTHR '006' - edit TRDRUN 'YES' - task jgfs_awips_f009 - trigger ../../post/jgfs_post_f009 == complete - edit FHRGRP '009' - edit FHRLST 'f009' - edit FCSTHR '009' - edit TRDRUN 'NO' - task jgfs_awips_f012 - trigger ../../post/jgfs_post_f012 == complete - edit FHRGRP '012' - edit FHRLST 'f012' - edit FCSTHR '012' - edit TRDRUN 'YES' - task jgfs_awips_f015 - trigger ../../post/jgfs_post_f015 == complete - edit FHRGRP '015' - edit FHRLST 'f015' - edit FCSTHR '015' - edit TRDRUN 'NO' - task jgfs_awips_f018 - trigger ../../post/jgfs_post_f018 == complete - edit FHRGRP '018' - edit FHRLST 'f018' - edit FCSTHR '018' - edit TRDRUN 'YES' - task jgfs_awips_f021 - trigger ../../post/jgfs_post_f021 == complete - edit FHRGRP '021' - edit FHRLST 'f021' - edit FCSTHR '021' - edit TRDRUN 'NO' - task jgfs_awips_f024 - trigger ../../post/jgfs_post_f024 == complete - edit FHRGRP '024' - edit FHRLST 'f024' - edit FCSTHR '024' - edit TRDRUN 'YES' - task jgfs_awips_f027 - trigger ../../post/jgfs_post_f027 == complete - edit FHRGRP '027' - edit FHRLST 'f027' - edit FCSTHR '027' - edit TRDRUN 'NO' - task jgfs_awips_f030 - trigger ../../post/jgfs_post_f030 == complete - edit FHRGRP '030' - edit FHRLST 'f030' - edit FCSTHR '030' - edit TRDRUN 'YES' - task jgfs_awips_f033 - trigger ../../post/jgfs_post_f033 == complete - edit FHRGRP '033' - edit FHRLST 'f033' - edit FCSTHR '033' - edit TRDRUN 'NO' - task jgfs_awips_f036 - trigger ../../post/jgfs_post_f036 == complete - edit FHRGRP '036' - edit FHRLST 'f036' - edit FCSTHR '036' - edit TRDRUN 'YES' - task jgfs_awips_f039 - trigger ../../post/jgfs_post_f039 == complete - edit FHRGRP '039' - edit FHRLST 'f039' - edit FCSTHR '039' - edit TRDRUN 'NO' - task jgfs_awips_f042 - trigger ../../post/jgfs_post_f042 == complete - edit FHRGRP '042' - edit FHRLST 'f042' - edit FCSTHR '042' - edit TRDRUN 'YES' - task jgfs_awips_f045 - trigger ../../post/jgfs_post_f045 == complete - edit FHRGRP '045' - edit FHRLST 'f045' - edit FCSTHR '045' - edit TRDRUN 'NO' - task jgfs_awips_f048 - trigger ../../post/jgfs_post_f048 == complete - edit FHRGRP '048' - edit FHRLST 'f048' - edit FCSTHR '048' - edit TRDRUN 'YES' - task jgfs_awips_f051 - trigger ../../post/jgfs_post_f051 == complete - edit FHRGRP '051' - edit FHRLST 'f051' - edit FCSTHR '051' - edit TRDRUN 'NO' - task jgfs_awips_f054 - trigger ../../post/jgfs_post_f054 == complete - edit FHRGRP '054' - edit FHRLST 'f054' - edit FCSTHR '054' - edit TRDRUN 'YES' - task jgfs_awips_f057 - trigger ../../post/jgfs_post_f057 == complete - edit FHRGRP '057' - edit FHRLST 'f057' - edit FCSTHR '057' - edit TRDRUN 'NO' - task jgfs_awips_f060 - trigger ../../post/jgfs_post_f060 == complete - edit FHRGRP '060' - edit FHRLST 'f060' - edit FCSTHR '060' - edit TRDRUN 'YES' - task jgfs_awips_f063 - trigger ../../post/jgfs_post_f063 == complete - edit FHRGRP '063' - edit FHRLST 'f063' - edit FCSTHR '063' - edit TRDRUN 'NO' - task jgfs_awips_f066 - trigger ../../post/jgfs_post_f066 == complete - edit FHRGRP '066' - edit FHRLST 'f066' - edit FCSTHR '066' - edit TRDRUN 'YES' - task jgfs_awips_f069 - trigger ../../post/jgfs_post_f069 == complete - edit FHRGRP '069' - edit FHRLST 'f069' - edit FCSTHR '069' - edit TRDRUN 'NO' - task jgfs_awips_f072 - trigger ../../post/jgfs_post_f072 == complete - edit FHRGRP '072' - edit FHRLST 'f072' - edit FCSTHR '072' - edit TRDRUN 'YES' - task jgfs_awips_f075 - trigger ../../post/jgfs_post_f075 == complete - edit FHRGRP '075' - edit FHRLST 'f075' - edit FCSTHR '075' - edit TRDRUN 'NO' - task jgfs_awips_f078 - trigger ../../post/jgfs_post_f078 == complete - edit FHRGRP '078' - edit FHRLST 'f078' - edit FCSTHR '078' - edit TRDRUN 'YES' - task jgfs_awips_f081 - trigger ../../post/jgfs_post_f081 == complete - edit FHRGRP '081' - edit FHRLST 'f081' - edit FCSTHR '081' - edit TRDRUN 'NO' - task jgfs_awips_f084 - trigger ../../post/jgfs_post_f084 == complete - edit FHRGRP '084' - edit FHRLST 'f084' - edit FCSTHR '084' - edit TRDRUN 'YES' - task jgfs_awips_f090 - trigger ../../post/jgfs_post_f090 == complete - edit FHRGRP '090' - edit FHRLST 'f090' - edit FCSTHR '090' - edit TRDRUN 'YES' - task jgfs_awips_f096 - trigger ../../post/jgfs_post_f096 == complete - edit FHRGRP '096' - edit FHRLST 'f096' - edit FCSTHR '096' - edit TRDRUN 'YES' - task jgfs_awips_f102 - trigger ../../post/jgfs_post_f102 == complete - edit FHRGRP '102' - edit FHRLST 'f102' - edit FCSTHR '102' - edit TRDRUN 'YES' - task jgfs_awips_f108 - trigger ../../post/jgfs_post_f108 == complete - edit FHRGRP '108' - edit FHRLST 'f108' - edit FCSTHR '108' - edit TRDRUN 'YES' - task jgfs_awips_f114 - trigger ../../post/jgfs_post_f114 == complete - edit FHRGRP '114' - edit FHRLST 'f114' - edit FCSTHR '114' - edit TRDRUN 'YES' - task jgfs_awips_f120 - trigger ../../post/jgfs_post_f120 == complete - edit FHRGRP '120' - edit FHRLST 'f120' - edit FCSTHR '120' - edit TRDRUN 'YES' - task jgfs_awips_f126 - trigger ../../post/jgfs_post_f126 == complete - edit FHRGRP '126' - edit FHRLST 'f126' - edit FCSTHR '126' - edit TRDRUN 'YES' - task jgfs_awips_f132 - trigger ../../post/jgfs_post_f132 == complete - edit FHRGRP '132' - edit FHRLST 'f132' - edit FCSTHR '132' - edit TRDRUN 'YES' - task jgfs_awips_f138 - trigger ../../post/jgfs_post_f138 == complete - edit FHRGRP '138' - edit FHRLST 'f138' - edit FCSTHR '138' - edit TRDRUN 'YES' - task jgfs_awips_f144 - trigger ../../post/jgfs_post_f144 == complete - edit FHRGRP '144' - edit FHRLST 'f144' - edit FCSTHR '144' - edit TRDRUN 'YES' - task jgfs_awips_f150 - trigger ../../post/jgfs_post_f150 == complete - edit FHRGRP '150' - edit FHRLST 'f150' - edit FCSTHR '150' - edit TRDRUN 'YES' - task jgfs_awips_f156 - trigger ../../post/jgfs_post_f156 == complete - edit FHRGRP '156' - edit FHRLST 'f156' - edit FCSTHR '156' - edit TRDRUN 'YES' - task jgfs_awips_f162 - trigger ../../post/jgfs_post_f162 == complete - edit FHRGRP '162' - edit FHRLST 'f162' - edit FCSTHR '162' - edit TRDRUN 'YES' - task jgfs_awips_f168 - trigger ../../post/jgfs_post_f168 == complete - edit FHRGRP '168' - edit FHRLST 'f168' - edit FCSTHR '168' - edit TRDRUN 'YES' - task jgfs_awips_f174 - trigger ../../post/jgfs_post_f174 == complete - edit FHRGRP '174' - edit FHRLST 'f174' - edit FCSTHR '174' - edit TRDRUN 'YES' - task jgfs_awips_f180 - trigger ../../post/jgfs_post_f180 == complete - edit FHRGRP '180' - edit FHRLST 'f180' - edit FCSTHR '180' - edit TRDRUN 'YES' - task jgfs_awips_f186 - trigger ../../post/jgfs_post_f186 == complete - edit FHRGRP '186' - edit FHRLST 'f186' - edit FCSTHR '186' - edit TRDRUN 'YES' - task jgfs_awips_f192 - trigger ../../post/jgfs_post_f192 == complete - edit FHRGRP '192' - edit FHRLST 'f192' - edit FCSTHR '192' - edit TRDRUN 'YES' - task jgfs_awips_f198 - trigger ../../post/jgfs_post_f198 == complete - edit FHRGRP '198' - edit FHRLST 'f198' - edit FCSTHR '198' - edit TRDRUN 'YES' - task jgfs_awips_f204 - trigger ../../post/jgfs_post_f204 == complete - edit FHRGRP '204' - edit FHRLST 'f204' - edit FCSTHR '204' - edit TRDRUN 'YES' - task jgfs_awips_f210 - trigger ../../post/jgfs_post_f210 == complete - edit FHRGRP '210' - edit FHRLST 'f210' - edit FCSTHR '210' - edit TRDRUN 'YES' - task jgfs_awips_f216 - trigger ../../post/jgfs_post_f216 == complete - edit FHRGRP '216' - edit FHRLST 'f216' - edit FCSTHR '216' - edit TRDRUN 'YES' - task jgfs_awips_f222 - trigger ../../post/jgfs_post_f222 == complete - edit FHRGRP '222' - edit FHRLST 'f222' - edit FCSTHR '222' - edit TRDRUN 'YES' - task jgfs_awips_f228 - trigger ../../post/jgfs_post_f228 == complete - edit FHRGRP '228' - edit FHRLST 'f228' - edit FCSTHR '228' - edit TRDRUN 'YES' - task jgfs_awips_f234 - trigger ../../post/jgfs_post_f234 == complete - edit FHRGRP '234' - edit FHRLST 'f234' - edit FCSTHR '234' - edit TRDRUN 'YES' - task jgfs_awips_f240 - trigger ../../post/jgfs_post_f240 == complete - edit FHRGRP '240' - edit FHRLST 'f240' - edit FCSTHR '240' - edit TRDRUN 'YES' - endfamily - family awips_g2 - task jgfs_awips_g2_f000 - trigger ../../post/jgfs_post_f000 == complete - edit FHRGRP '000' - edit FHRLST 'f000' - edit FCSTHR '000' - edit TRDRUN 'YES' - task jgfs_awips_g2_f006 - trigger ../../post/jgfs_post_f006 == complete - edit FHRGRP '006' - edit FHRLST 'f006' - edit FCSTHR '006' - edit TRDRUN 'YES' - task jgfs_awips_g2_f012 - trigger ../../post/jgfs_post_f012 == complete - edit FHRGRP '012' - edit FHRLST 'f012' - edit FCSTHR '012' - edit TRDRUN 'YES' - task jgfs_awips_g2_f018 - trigger ../../post/jgfs_post_f018 == complete - edit FHRGRP '018' - edit FHRLST 'f018' - edit FCSTHR '018' - edit TRDRUN 'YES' - task jgfs_awips_g2_f024 - trigger ../../post/jgfs_post_f024 == complete - edit FHRGRP '024' - edit FHRLST 'f024' - edit FCSTHR '024' - edit TRDRUN 'YES' - task jgfs_awips_g2_f030 - trigger ../../post/jgfs_post_f030 == complete - edit FHRGRP '030' - edit FHRLST 'f030' - edit FCSTHR '030' - edit TRDRUN 'YES' - task jgfs_awips_g2_f036 - trigger ../../post/jgfs_post_f036 == complete - edit FHRGRP '036' - edit FHRLST 'f036' - edit FCSTHR '036' - edit TRDRUN 'YES' - task jgfs_awips_g2_f042 - trigger ../../post/jgfs_post_f042 == complete - edit FHRGRP '042' - edit FHRLST 'f042' - edit FCSTHR '042' - edit TRDRUN 'YES' - task jgfs_awips_g2_f048 - trigger ../../post/jgfs_post_f048 == complete - edit FHRGRP '048' - edit FHRLST 'f048' - edit FCSTHR '048' - edit TRDRUN 'YES' - task jgfs_awips_g2_f054 - trigger ../../post/jgfs_post_f054 == complete - edit FHRGRP '054' - edit FHRLST 'f054' - edit FCSTHR '054' - edit TRDRUN 'YES' - task jgfs_awips_g2_f060 - trigger ../../post/jgfs_post_f060 == complete - edit FHRGRP '060' - edit FHRLST 'f060' - edit FCSTHR '060' - edit TRDRUN 'YES' - task jgfs_awips_g2_f066 - trigger ../../post/jgfs_post_f066 == complete - edit FHRGRP '066' - edit FHRLST 'f066' - edit FCSTHR '066' - edit TRDRUN 'YES' - task jgfs_awips_g2_f072 - trigger ../../post/jgfs_post_f072 == complete - edit FHRGRP '072' - edit FHRLST 'f072' - edit FCSTHR '072' - edit TRDRUN 'YES' - task jgfs_awips_g2_f078 - trigger ../../post/jgfs_post_f078 == complete - edit FHRGRP '078' - edit FHRLST 'f078' - edit FCSTHR '078' - edit TRDRUN 'YES' - task jgfs_awips_g2_f084 - trigger ../../post/jgfs_post_f084 == complete - edit FHRGRP '084' - edit FHRLST 'f084' - edit FCSTHR '084' - edit TRDRUN 'YES' - task jgfs_awips_g2_f090 - trigger ../../post/jgfs_post_f090 == complete - edit FHRGRP '090' - edit FHRLST 'f090' - edit FCSTHR '090' - edit TRDRUN 'YES' - task jgfs_awips_g2_f096 - trigger ../../post/jgfs_post_f096 == complete - edit FHRGRP '096' - edit FHRLST 'f096' - edit FCSTHR '096' - edit TRDRUN 'YES' - task jgfs_awips_g2_f102 - trigger ../../post/jgfs_post_f102 == complete - edit FHRGRP '102' - edit FHRLST 'f102' - edit FCSTHR '102' - edit TRDRUN 'YES' - task jgfs_awips_g2_f108 - trigger ../../post/jgfs_post_f108 == complete - edit FHRGRP '108' - edit FHRLST 'f108' - edit FCSTHR '108' - edit TRDRUN 'YES' - task jgfs_awips_g2_f114 - trigger ../../post/jgfs_post_f114 == complete - edit FHRGRP '114' - edit FHRLST 'f114' - edit FCSTHR '114' - edit TRDRUN 'YES' - task jgfs_awips_g2_f120 - trigger ../../post/jgfs_post_f120 == complete - edit FHRGRP '120' - edit FHRLST 'f120' - edit FCSTHR '120' - edit TRDRUN 'YES' - task jgfs_awips_g2_f126 - trigger ../../post/jgfs_post_f126 == complete - edit FHRGRP '126' - edit FHRLST 'f126' - edit FCSTHR '126' - edit TRDRUN 'YES' - task jgfs_awips_g2_f132 - trigger ../../post/jgfs_post_f132 == complete - edit FHRGRP '132' - edit FHRLST 'f132' - edit FCSTHR '132' - edit TRDRUN 'YES' - task jgfs_awips_g2_f138 - trigger ../../post/jgfs_post_f138 == complete - edit FHRGRP '138' - edit FHRLST 'f138' - edit FCSTHR '138' - edit TRDRUN 'YES' - task jgfs_awips_g2_f144 - trigger ../../post/jgfs_post_f144 == complete - edit FHRGRP '144' - edit FHRLST 'f144' - edit FCSTHR '144' - edit TRDRUN 'YES' - task jgfs_awips_g2_f150 - trigger ../../post/jgfs_post_f150 == complete - edit FHRGRP '150' - edit FHRLST 'f150' - edit FCSTHR '150' - edit TRDRUN 'YES' - task jgfs_awips_g2_f156 - trigger ../../post/jgfs_post_f156 == complete - edit FHRGRP '156' - edit FHRLST 'f156' - edit FCSTHR '156' - edit TRDRUN 'YES' - task jgfs_awips_g2_f162 - trigger ../../post/jgfs_post_f162 == complete - edit FHRGRP '162' - edit FHRLST 'f162' - edit FCSTHR '162' - edit TRDRUN 'YES' - task jgfs_awips_g2_f168 - trigger ../../post/jgfs_post_f168 == complete - edit FHRGRP '168' - edit FHRLST 'f168' - edit FCSTHR '168' - edit TRDRUN 'YES' - task jgfs_awips_g2_f174 - trigger ../../post/jgfs_post_f174 == complete - edit FHRGRP '174' - edit FHRLST 'f174' - edit FCSTHR '174' - edit TRDRUN 'YES' - task jgfs_awips_g2_f180 - trigger ../../post/jgfs_post_f180 == complete - edit FHRGRP '180' - edit FHRLST 'f180' - edit FCSTHR '180' - edit TRDRUN 'YES' - task jgfs_awips_g2_f186 - trigger ../../post/jgfs_post_f186 == complete - edit FHRGRP '186' - edit FHRLST 'f186' - edit FCSTHR '186' - edit TRDRUN 'YES' - task jgfs_awips_g2_f192 - trigger ../../post/jgfs_post_f192 == complete - edit FHRGRP '192' - edit FHRLST 'f192' - edit FCSTHR '192' - edit TRDRUN 'YES' - task jgfs_awips_g2_f198 - trigger ../../post/jgfs_post_f198 == complete - edit FHRGRP '198' - edit FHRLST 'f198' - edit FCSTHR '198' - edit TRDRUN 'YES' - task jgfs_awips_g2_f204 - trigger ../../post/jgfs_post_f204 == complete - edit FHRGRP '204' - edit FHRLST 'f204' - edit FCSTHR '204' - edit TRDRUN 'YES' - task jgfs_awips_g2_f210 - trigger ../../post/jgfs_post_f210 == complete - edit FHRGRP '210' - edit FHRLST 'f210' - edit FCSTHR '210' - edit TRDRUN 'YES' - task jgfs_awips_g2_f216 - trigger ../../post/jgfs_post_f216 == complete - edit FHRGRP '216' - edit FHRLST 'f216' - edit FCSTHR '216' - edit TRDRUN 'YES' - task jgfs_awips_g2_f222 - trigger ../../post/jgfs_post_f222 == complete - edit FHRGRP '222' - edit FHRLST 'f222' - edit FCSTHR '222' - edit TRDRUN 'YES' - task jgfs_awips_g2_f228 - trigger ../../post/jgfs_post_f228 == complete - edit FHRGRP '228' - edit FHRLST 'f228' - edit FCSTHR '228' - edit TRDRUN 'YES' - task jgfs_awips_g2_f234 - trigger ../../post/jgfs_post_f234 == complete - edit FHRGRP '234' - edit FHRLST 'f234' - edit FCSTHR '234' - edit TRDRUN 'YES' - task jgfs_awips_g2_f240 - trigger ../../post/jgfs_post_f240 == complete - edit FHRGRP '240' - edit FHRLST 'f240' - edit FCSTHR '240' - edit TRDRUN 'YES' - endfamily - endfamily - family mos - edit ECF_FILES '/ecf/ecfnets/scripts/gfs/mos' - edit PROJ 'GFS-%PROJENVIR%' - edit COM '/gpfs/hps/nco/ops/com' - edit QUEUESERV 'prod_transfer' - edit MODULES 'module load cfp-intel-sandybridge/1.1.0 grib_util gempak/6.32.0' - edit QUEUE 'prod' - family prep - task jgfsmos_stn_prep - trigger /prod06/gfs/post/jgfs_post_f096 == complete - edit NTASK '3' - edit PTILE '3' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_stn_prep - trigger /prod06/gfs/post == complete - edit NTASK '2' - edit PTILE '2' - edit OMP_NUM_THREADS '1' - edit NODES '1' - endfamily - family forecast - task jgfsmos_stn_fcst - trigger ../prep/jgfsmos_stn_prep == complete - edit NTASK '5' - edit PTILE '5' - edit OMP_NUM_THREADS '1' - edit NODES '1' - endfamily - family prdgen - task jgfsmos_stn_prdgen - trigger ../forecast/jgfsmos_stn_fcst == complete - edit NTASK '1' - edit PTILE '1' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_stn_prdgen - trigger jgfsmos_stn_prdgen == complete - edit NTASK '1' - edit PTILE '1' - edit OMP_NUM_THREADS '1' - edit NODES '1' - endfamily - family gempak - task jgfs_gempak_mdl - trigger ../prdgen == complete - endfamily - endfamily - family gempak - task jgfs_gempak_ncdc_upapgif - trigger ./jgfs_gempak == active or ./jgfs_gempak == complete - task jgfs_gempak - trigger ../jgfs_analysis eq complete - task jgfs_gempak_meta - trigger ../jgfs_analysis == complete - task jgfs_pgrb2_spec_gempak - trigger ./jgfs_npoess_pgrb2_0p5deg == complete - task jgfs_npoess_pgrb2_0p5deg - trigger ../post/jgfs_post_anl eq active or ../post/jgfs_post_anl == complete - endfamily - endfamily - diff --git a/ecflow/ecf/defs/gfs_12.def b/ecflow/ecf/defs/gfs_12.def deleted file mode 100644 index d12c47968e..0000000000 --- a/ecflow/ecf/defs/gfs_12.def +++ /dev/null @@ -1,2298 +0,0 @@ - family gfs - edit CYC '12' - edit ECF_FILES '/ecf/ecfnets/scripts/gfs_FV3' - edit PROJ 'GFS-OPS' - edit NET 'gfs' - edit RUN 'gfs' - edit COM '/gpfs/dell1/nco/ops/com' - edit QUEUESHARED 'prod_shared' - edit QUEUESERV 'prod_transfer' - edit QUEUE 'prod' - family dump - task jgfs_tropcy_qc_reloc - event 1 jtwc_bull_email - time 14:41 - task jgfs_dump - event 1 release_sfcprep - time 14:47 - task jgfs_dump_post - trigger jgfs_dump eq complete - event 1 release_gfs12_dump_alert - task jgfs_dump_alert - trigger jgfs_dump_post:release_gfs12_dump_alert - task jmodel_realtime_gfs - trigger jgfs_dump_alert eq complete - endfamily - family prep - task jgfs_emcsfc_sfc_prep - trigger ../dump/jgfs_dump:release_sfcprep - task jgfs_prep - trigger ../dump/jgfs_dump eq complete and ../dump/jgfs_tropcy_qc_reloc eq complete - task jgfs_prep_post - trigger jgfs_prep eq complete and ../jgfs_analysis eq complete - endfamily - task jgfs_analysis - trigger prep/jgfs_prep eq complete and prep/jgfs_emcsfc_sfc_prep == complete - event 1 release_fcst - task jgfs_vminmon - trigger jgfs_analysis == complete - family forecast - task jgfs_forecast_high - trigger ../jgfs_analysis:release_fcst - endfamily - family post - task jgfs_post_manager - trigger ../jgfs_analysis eq complete - event 1 release_postanl - event 2 release_post000 - event 3 release_post001 - event 4 release_post002 - event 5 release_post003 - event 6 release_post004 - event 7 release_post005 - event 8 release_post006 - event 9 release_post007 - event 10 release_post008 - event 11 release_post009 - event 12 release_post010 - event 13 release_post011 - event 14 release_post012 - event 15 release_post013 - event 16 release_post014 - event 17 release_post015 - event 18 release_post016 - event 19 release_post017 - event 20 release_post018 - event 21 release_post019 - event 22 release_post020 - event 23 release_post021 - event 24 release_post022 - event 25 release_post023 - event 26 release_post024 - event 27 release_post025 - event 28 release_post026 - event 29 release_post027 - event 30 release_post028 - event 31 release_post029 - event 32 release_post030 - event 33 release_post031 - event 34 release_post032 - event 35 release_post033 - event 36 release_post034 - event 37 release_post035 - event 38 release_post036 - event 39 release_post037 - event 40 release_post038 - event 41 release_post039 - event 42 release_post040 - event 43 release_post041 - event 44 release_post042 - event 45 release_post043 - event 46 release_post044 - event 47 release_post045 - event 48 release_post046 - event 49 release_post047 - event 50 release_post048 - event 51 release_post049 - event 52 release_post050 - event 53 release_post051 - event 54 release_post052 - event 55 release_post053 - event 56 release_post054 - event 57 release_post055 - event 58 release_post056 - event 59 release_post057 - event 60 release_post058 - event 61 release_post059 - event 62 release_post060 - event 63 release_post061 - event 64 release_post062 - event 65 release_post063 - event 66 release_post064 - event 67 release_post065 - event 68 release_post066 - event 69 release_post067 - event 70 release_post068 - event 71 release_post069 - event 72 release_post070 - event 73 release_post071 - event 74 release_post072 - event 75 release_post073 - event 76 release_post074 - event 77 release_post075 - event 78 release_post076 - event 79 release_post077 - event 80 release_post078 - event 81 release_post079 - event 82 release_post080 - event 83 release_post081 - event 84 release_post082 - event 85 release_post083 - event 86 release_post084 - event 87 release_post085 - event 88 release_post086 - event 89 release_post087 - event 90 release_post088 - event 91 release_post089 - event 92 release_post090 - event 93 release_post091 - event 94 release_post092 - event 95 release_post093 - event 96 release_post094 - event 97 release_post095 - event 98 release_post096 - event 99 release_post097 - event 100 release_post098 - event 101 release_post099 - event 102 release_post100 - event 103 release_post101 - event 104 release_post102 - event 105 release_post103 - event 106 release_post104 - event 107 release_post105 - event 108 release_post106 - event 109 release_post107 - event 110 release_post108 - event 111 release_post109 - event 112 release_post110 - event 113 release_post111 - event 114 release_post112 - event 115 release_post113 - event 116 release_post114 - event 117 release_post115 - event 118 release_post116 - event 119 release_post117 - event 120 release_post118 - event 121 release_post119 - event 122 release_post120 - event 123 release_post123 - event 124 release_post126 - event 125 release_post129 - event 126 release_post132 - event 127 release_post135 - event 128 release_post138 - event 129 release_post141 - event 130 release_post144 - event 131 release_post147 - event 132 release_post150 - event 133 release_post153 - event 134 release_post156 - event 135 release_post159 - event 136 release_post162 - event 137 release_post165 - event 138 release_post168 - event 139 release_post171 - event 140 release_post174 - event 141 release_post177 - event 142 release_post180 - event 143 release_post183 - event 144 release_post186 - event 145 release_post189 - event 146 release_post192 - event 147 release_post195 - event 148 release_post198 - event 149 release_post201 - event 150 release_post204 - event 151 release_post207 - event 152 release_post210 - event 153 release_post213 - event 154 release_post216 - event 155 release_post219 - event 156 release_post222 - event 157 release_post225 - event 158 release_post228 - event 159 release_post231 - event 160 release_post234 - event 161 release_post237 - event 162 release_post240 - event 163 release_post243 - event 164 release_post246 - event 165 release_post249 - event 166 release_post252 - event 167 release_post255 - event 168 release_post258 - event 169 release_post261 - event 170 release_post264 - event 171 release_post267 - event 172 release_post270 - event 173 release_post273 - event 174 release_post276 - event 175 release_post279 - event 176 release_post282 - event 177 release_post285 - event 178 release_post288 - event 179 release_post291 - event 180 release_post294 - event 181 release_post297 - event 182 release_post300 - event 183 release_post303 - event 184 release_post306 - event 185 release_post309 - event 186 release_post312 - event 187 release_post315 - event 188 release_post318 - event 189 release_post321 - event 190 release_post324 - event 191 release_post327 - event 192 release_post330 - event 193 release_post333 - event 194 release_post336 - event 195 release_post339 - event 196 release_post342 - event 197 release_post345 - event 198 release_post348 - event 199 release_post351 - event 200 release_post354 - event 201 release_post357 - event 202 release_post360 - event 203 release_post363 - event 204 release_post366 - event 205 release_post369 - event 206 release_post372 - event 207 release_post375 - event 208 release_post378 - event 209 release_post381 - event 210 release_post384 - task jgfs_post_anl - trigger ./jgfs_post_manager:release_postanl - edit FHRGRP '000' - edit FHRLST 'anl' - edit HR 'anl' - edit FHR 'anl' - event 1 release_postanl - task jgfs_post_f000 - trigger ./jgfs_post_manager:release_post000 - edit FHRGRP '001' - edit FHRLST 'f000' - edit FHR 'f000' - edit HR '000' - task jgfs_post_f001 - trigger ./jgfs_post_manager:release_post001 - edit FHRGRP '002' - edit FHRLST 'f001' - edit FHR 'f001' - edit HR '001' - task jgfs_post_f002 - trigger ./jgfs_post_manager:release_post002 - edit FHRGRP '003' - edit FHRLST 'f002' - edit FHR 'f002' - edit HR '002' - task jgfs_post_f003 - trigger ./jgfs_post_manager:release_post003 - edit FHRGRP '004' - edit FHRLST 'f003' - edit FHR 'f003' - edit HR '003' - task jgfs_post_f004 - trigger ./jgfs_post_manager:release_post004 - edit FHRGRP '005' - edit FHRLST 'f004' - edit FHR 'f004' - edit HR '004' - task jgfs_post_f005 - trigger ./jgfs_post_manager:release_post005 - edit FHRGRP '006' - edit FHRLST 'f005' - edit FHR 'f005' - edit HR '005' - task jgfs_post_f006 - trigger ./jgfs_post_manager:release_post006 - edit FHRGRP '007' - edit FHRLST 'f006' - edit FHR 'f006' - edit HR '006' - task jgfs_post_f007 - trigger ./jgfs_post_manager:release_post007 - edit FHRGRP '008' - edit FHRLST 'f007' - edit FHR 'f007' - edit HR '007' - task jgfs_post_f008 - trigger ./jgfs_post_manager:release_post008 - edit FHRGRP '009' - edit FHRLST 'f008' - edit FHR 'f008' - edit HR '008' - task jgfs_post_f009 - trigger ./jgfs_post_manager:release_post009 - edit FHRGRP '010' - edit FHRLST 'f009' - edit FHR 'f009' - edit HR '009' - task jgfs_post_f010 - trigger ./jgfs_post_manager:release_post010 - edit FHRGRP '011' - edit FHRLST 'f010' - edit FHR 'f010' - edit HR '010' - task jgfs_post_f011 - trigger ./jgfs_post_manager:release_post011 - edit FHRGRP '012' - edit FHRLST 'f011' - edit FHR 'f011' - edit HR '011' - task jgfs_post_f012 - trigger ./jgfs_post_manager:release_post012 - edit FHRGRP '013' - edit FHRLST 'f012' - edit FHR 'f012' - edit HR '012' - task jgfs_post_f013 - trigger ./jgfs_post_manager:release_post013 - edit FHRGRP '014' - edit FHRLST 'f013' - edit FHR 'f013' - edit HR '013' - task jgfs_post_f014 - trigger ./jgfs_post_manager:release_post014 - edit FHRGRP '015' - edit FHRLST 'f014' - edit FHR 'f014' - edit HR '014' - task jgfs_post_f015 - trigger ./jgfs_post_manager:release_post015 - edit FHRGRP '016' - edit FHRLST 'f015' - edit FHR 'f015' - edit HR '015' - task jgfs_post_f016 - trigger ./jgfs_post_manager:release_post016 - edit FHRGRP '017' - edit FHRLST 'f016' - edit FHR 'f016' - edit HR '016' - task jgfs_post_f017 - trigger ./jgfs_post_manager:release_post017 - edit FHRGRP '018' - edit FHRLST 'f017' - edit FHR 'f017' - edit HR '017' - task jgfs_post_f018 - trigger ./jgfs_post_manager:release_post018 - edit FHRGRP '019' - edit FHRLST 'f018' - edit FHR 'f018' - edit HR '018' - task jgfs_post_f019 - trigger ./jgfs_post_manager:release_post019 - edit FHRGRP '020' - edit FHRLST 'f019' - edit FHR 'f019' - edit HR '019' - task jgfs_post_f020 - trigger ./jgfs_post_manager:release_post020 - edit FHRGRP '021' - edit FHRLST 'f020' - edit FHR 'f020' - edit HR '020' - task jgfs_post_f021 - trigger ./jgfs_post_manager:release_post021 - edit FHRGRP '022' - edit FHRLST 'f021' - edit FHR 'f021' - edit HR '021' - task jgfs_post_f022 - trigger ./jgfs_post_manager:release_post022 - edit FHRGRP '023' - edit FHRLST 'f022' - edit FHR 'f022' - edit HR '022' - task jgfs_post_f023 - trigger ./jgfs_post_manager:release_post023 - edit FHRGRP '024' - edit FHRLST 'f023' - edit FHR 'f023' - edit HR '023' - task jgfs_post_f024 - trigger ./jgfs_post_manager:release_post024 - edit FHRGRP '025' - edit FHRLST 'f024' - edit FHR 'f024' - edit HR '024' - task jgfs_post_f025 - trigger ./jgfs_post_manager:release_post025 - edit FHRGRP '026' - edit FHRLST 'f025' - edit FHR 'f025' - edit HR '025' - task jgfs_post_f026 - trigger ./jgfs_post_manager:release_post026 - edit FHRGRP '027' - edit FHRLST 'f026' - edit FHR 'f026' - edit HR '026' - task jgfs_post_f027 - trigger ./jgfs_post_manager:release_post027 - edit FHRGRP '028' - edit FHRLST 'f027' - edit FHR 'f027' - edit HR '027' - task jgfs_post_f028 - trigger ./jgfs_post_manager:release_post028 - edit FHRGRP '029' - edit FHRLST 'f028' - edit FHR 'f028' - edit HR '028' - task jgfs_post_f029 - trigger ./jgfs_post_manager:release_post029 - edit FHRGRP '030' - edit FHRLST 'f029' - edit FHR 'f029' - edit HR '029' - task jgfs_post_f030 - trigger ./jgfs_post_manager:release_post030 - edit FHRGRP '031' - edit FHRLST 'f030' - edit FHR 'f030' - edit HR '030' - task jgfs_post_f031 - trigger ./jgfs_post_manager:release_post031 - edit FHRGRP '032' - edit FHRLST 'f031' - edit FHR 'f031' - edit HR '031' - task jgfs_post_f032 - trigger ./jgfs_post_manager:release_post032 - edit FHRGRP '033' - edit FHRLST 'f032' - edit FHR 'f032' - edit HR '032' - task jgfs_post_f033 - trigger ./jgfs_post_manager:release_post033 - edit FHRGRP '034' - edit FHRLST 'f033' - edit FHR 'f033' - edit HR '033' - task jgfs_post_f034 - trigger ./jgfs_post_manager:release_post034 - edit FHRGRP '035' - edit FHRLST 'f034' - edit FHR 'f034' - edit HR '034' - task jgfs_post_f035 - trigger ./jgfs_post_manager:release_post035 - edit FHRGRP '036' - edit FHRLST 'f035' - edit FHR 'f035' - edit HR '035' - task jgfs_post_f036 - trigger ./jgfs_post_manager:release_post036 - edit FHRGRP '037' - edit FHRLST 'f036' - edit FHR 'f036' - edit HR '036' - task jgfs_post_f037 - trigger ./jgfs_post_manager:release_post037 - edit FHRGRP '038' - edit FHRLST 'f037' - edit FHR 'f037' - edit HR '037' - task jgfs_post_f038 - trigger ./jgfs_post_manager:release_post038 - edit FHRGRP '039' - edit FHRLST 'f038' - edit FHR 'f038' - edit HR '038' - task jgfs_post_f039 - trigger ./jgfs_post_manager:release_post039 - edit FHRGRP '040' - edit FHRLST 'f039' - edit FHR 'f039' - edit HR '039' - task jgfs_post_f040 - trigger ./jgfs_post_manager:release_post040 - edit FHRGRP '041' - edit FHRLST 'f040' - edit FHR 'f040' - edit HR '040' - task jgfs_post_f041 - trigger ./jgfs_post_manager:release_post041 - edit FHRGRP '042' - edit FHRLST 'f041' - edit FHR 'f041' - edit HR '041' - task jgfs_post_f042 - trigger ./jgfs_post_manager:release_post042 - edit FHRGRP '043' - edit FHRLST 'f042' - edit FHR 'f042' - edit HR '042' - task jgfs_post_f043 - trigger ./jgfs_post_manager:release_post043 - edit FHRGRP '044' - edit FHRLST 'f043' - edit FHR 'f043' - edit HR '043' - task jgfs_post_f044 - trigger ./jgfs_post_manager:release_post044 - edit FHRGRP '045' - edit FHRLST 'f044' - edit FHR 'f044' - edit HR '044' - task jgfs_post_f045 - trigger ./jgfs_post_manager:release_post045 - edit FHRGRP '046' - edit FHRLST 'f045' - edit FHR 'f045' - edit HR '045' - task jgfs_post_f046 - trigger ./jgfs_post_manager:release_post046 - edit FHRGRP '047' - edit FHRLST 'f046' - edit FHR 'f046' - edit HR '046' - task jgfs_post_f047 - trigger ./jgfs_post_manager:release_post047 - edit FHRGRP '048' - edit FHRLST 'f047' - edit FHR 'f047' - edit HR '047' - task jgfs_post_f048 - trigger ./jgfs_post_manager:release_post048 - edit FHRGRP '049' - edit FHRLST 'f048' - edit FHR 'f048' - edit HR '048' - task jgfs_post_f049 - trigger ./jgfs_post_manager:release_post049 - edit FHRGRP '050' - edit FHRLST 'f049' - edit FHR 'f049' - edit HR '049' - task jgfs_post_f050 - trigger ./jgfs_post_manager:release_post050 - edit FHRGRP '051' - edit FHRLST 'f050' - edit FHR 'f050' - edit HR '050' - task jgfs_post_f051 - trigger ./jgfs_post_manager:release_post051 - edit FHRGRP '052' - edit FHRLST 'f051' - edit FHR 'f051' - edit HR '051' - task jgfs_post_f052 - trigger ./jgfs_post_manager:release_post052 - edit FHRGRP '053' - edit FHRLST 'f052' - edit FHR 'f052' - edit HR '052' - task jgfs_post_f053 - trigger ./jgfs_post_manager:release_post053 - edit FHRGRP '054' - edit FHRLST 'f053' - edit FHR 'f053' - edit HR '053' - task jgfs_post_f054 - trigger ./jgfs_post_manager:release_post054 - edit FHRGRP '055' - edit FHRLST 'f054' - edit FHR 'f054' - edit HR '054' - task jgfs_post_f055 - trigger ./jgfs_post_manager:release_post055 - edit FHRGRP '056' - edit FHRLST 'f055' - edit FHR 'f055' - edit HR '055' - task jgfs_post_f056 - trigger ./jgfs_post_manager:release_post056 - edit FHRGRP '057' - edit FHRLST 'f056' - edit FHR 'f056' - edit HR '056' - task jgfs_post_f057 - trigger ./jgfs_post_manager:release_post057 - edit FHRGRP '058' - edit FHRLST 'f057' - edit FHR 'f057' - edit HR '057' - task jgfs_post_f058 - trigger ./jgfs_post_manager:release_post058 - edit FHRGRP '059' - edit FHRLST 'f058' - edit FHR 'f058' - edit HR '058' - task jgfs_post_f059 - trigger ./jgfs_post_manager:release_post059 - edit FHRGRP '060' - edit FHRLST 'f059' - edit FHR 'f059' - edit HR '059' - task jgfs_post_f060 - trigger ./jgfs_post_manager:release_post060 - edit FHRGRP '061' - edit FHRLST 'f060' - edit FHR 'f060' - edit HR '060' - task jgfs_post_f061 - trigger ./jgfs_post_manager:release_post061 - edit FHRGRP '062' - edit FHRLST 'f061' - edit FHR 'f061' - edit HR '061' - task jgfs_post_f062 - trigger ./jgfs_post_manager:release_post062 - edit FHRGRP '063' - edit FHRLST 'f062' - edit FHR 'f062' - edit HR '062' - task jgfs_post_f063 - trigger ./jgfs_post_manager:release_post063 - edit FHRGRP '064' - edit FHRLST 'f063' - edit FHR 'f063' - edit HR '063' - task jgfs_post_f064 - trigger ./jgfs_post_manager:release_post064 - edit FHRGRP '065' - edit FHRLST 'f064' - edit FHR 'f064' - edit HR '064' - task jgfs_post_f065 - trigger ./jgfs_post_manager:release_post065 - edit FHRGRP '066' - edit FHRLST 'f065' - edit FHR 'f065' - edit HR '065' - task jgfs_post_f066 - trigger ./jgfs_post_manager:release_post066 - edit FHRGRP '067' - edit FHRLST 'f066' - edit FHR 'f066' - edit HR '066' - task jgfs_post_f067 - trigger ./jgfs_post_manager:release_post067 - edit FHRGRP '068' - edit FHRLST 'f067' - edit FHR 'f067' - edit HR '067' - task jgfs_post_f068 - trigger ./jgfs_post_manager:release_post068 - edit FHRGRP '069' - edit FHRLST 'f068' - edit FHR 'f068' - edit HR '068' - task jgfs_post_f069 - trigger ./jgfs_post_manager:release_post069 - edit FHRGRP '070' - edit FHRLST 'f069' - edit FHR 'f069' - edit HR '069' - task jgfs_post_f070 - trigger ./jgfs_post_manager:release_post070 - edit FHRGRP '071' - edit FHRLST 'f070' - edit FHR 'f070' - edit HR '070' - task jgfs_post_f071 - trigger ./jgfs_post_manager:release_post071 - edit FHRGRP '072' - edit FHRLST 'f071' - edit FHR 'f071' - edit HR '071' - task jgfs_post_f072 - trigger ./jgfs_post_manager:release_post072 - edit FHRGRP '073' - edit FHRLST 'f072' - edit FHR 'f072' - edit HR '072' - task jgfs_post_f073 - trigger ./jgfs_post_manager:release_post073 - edit FHRGRP '074' - edit FHRLST 'f073' - edit FHR 'f073' - edit HR '073' - task jgfs_post_f074 - trigger ./jgfs_post_manager:release_post074 - edit FHRGRP '075' - edit FHRLST 'f074' - edit FHR 'f074' - edit HR '074' - task jgfs_post_f075 - trigger ./jgfs_post_manager:release_post075 - edit FHRGRP '076' - edit FHRLST 'f075' - edit FHR 'f075' - edit HR '075' - task jgfs_post_f076 - trigger ./jgfs_post_manager:release_post076 - edit FHRGRP '077' - edit FHRLST 'f076' - edit FHR 'f076' - edit HR '076' - task jgfs_post_f077 - trigger ./jgfs_post_manager:release_post077 - edit FHRGRP '078' - edit FHRLST 'f077' - edit FHR 'f077' - edit HR '077' - task jgfs_post_f078 - trigger ./jgfs_post_manager:release_post078 - edit FHRGRP '079' - edit FHRLST 'f078' - edit FHR 'f078' - edit HR '078' - task jgfs_post_f079 - trigger ./jgfs_post_manager:release_post079 - edit FHRGRP '080' - edit FHRLST 'f079' - edit FHR 'f079' - edit HR '079' - task jgfs_post_f080 - trigger ./jgfs_post_manager:release_post080 - edit FHRGRP '081' - edit FHRLST 'f080' - edit FHR 'f080' - edit HR '080' - task jgfs_post_f081 - trigger ./jgfs_post_manager:release_post081 - edit FHRGRP '082' - edit FHRLST 'f081' - edit FHR 'f081' - edit HR '081' - task jgfs_post_f082 - trigger ./jgfs_post_manager:release_post082 - edit FHRGRP '083' - edit FHRLST 'f082' - edit FHR 'f082' - edit HR '082' - task jgfs_post_f083 - trigger ./jgfs_post_manager:release_post083 - edit FHRGRP '084' - edit FHRLST 'f083' - edit FHR 'f083' - edit HR '083' - task jgfs_post_f084 - trigger ./jgfs_post_manager:release_post084 - edit FHRGRP '085' - edit FHRLST 'f084' - edit FHR 'f084' - edit HR '084' - task jgfs_post_f085 - trigger ./jgfs_post_manager:release_post085 - edit FHRGRP '086' - edit FHRLST 'f085' - edit FHR 'f085' - edit HR '085' - task jgfs_post_f086 - trigger ./jgfs_post_manager:release_post086 - edit FHRGRP '087' - edit FHRLST 'f086' - edit FHR 'f086' - edit HR '086' - task jgfs_post_f087 - trigger ./jgfs_post_manager:release_post087 - edit FHRGRP '088' - edit FHRLST 'f087' - edit FHR 'f087' - edit HR '087' - task jgfs_post_f088 - trigger ./jgfs_post_manager:release_post088 - edit FHRGRP '089' - edit FHRLST 'f088' - edit FHR 'f088' - edit HR '088' - task jgfs_post_f089 - trigger ./jgfs_post_manager:release_post089 - edit FHRGRP '090' - edit FHRLST 'f089' - edit FHR 'f089' - edit HR '089' - task jgfs_post_f090 - trigger ./jgfs_post_manager:release_post090 - edit FHRGRP '091' - edit FHRLST 'f090' - edit FHR 'f090' - edit HR '090' - task jgfs_post_f091 - trigger ./jgfs_post_manager:release_post091 - edit FHRGRP '092' - edit FHRLST 'f091' - edit FHR 'f091' - edit HR '091' - task jgfs_post_f092 - trigger ./jgfs_post_manager:release_post092 - edit FHRGRP '093' - edit FHRLST 'f092' - edit FHR 'f092' - edit HR '092' - task jgfs_post_f093 - trigger ./jgfs_post_manager:release_post093 - edit FHRGRP '094' - edit FHRLST 'f093' - edit FHR 'f093' - edit HR '093' - task jgfs_post_f094 - trigger ./jgfs_post_manager:release_post094 - edit FHRGRP '095' - edit FHRLST 'f094' - edit FHR 'f094' - edit HR '094' - task jgfs_post_f095 - trigger ./jgfs_post_manager:release_post095 - edit FHRGRP '096' - edit FHRLST 'f095' - edit FHR 'f095' - edit HR '095' - task jgfs_post_f096 - trigger ./jgfs_post_manager:release_post096 - edit FHRGRP '097' - edit FHRLST 'f096' - edit FHR 'f096' - edit HR '096' - task jgfs_post_f097 - trigger ./jgfs_post_manager:release_post097 - edit FHRGRP '098' - edit FHRLST 'f097' - edit FHR 'f097' - edit HR '097' - task jgfs_post_f098 - trigger ./jgfs_post_manager:release_post098 - edit FHRGRP '099' - edit FHRLST 'f098' - edit FHR 'f098' - edit HR '098' - task jgfs_post_f099 - trigger ./jgfs_post_manager:release_post099 - edit FHRGRP '100' - edit FHRLST 'f099' - edit FHR 'f099' - edit HR '099' - task jgfs_post_f100 - trigger ./jgfs_post_manager:release_post100 - edit FHRGRP '101' - edit FHRLST 'f100' - edit FHR 'f100' - edit HR '100' - task jgfs_post_f101 - trigger ./jgfs_post_manager:release_post101 - edit FHRGRP '102' - edit FHRLST 'f101' - edit FHR 'f101' - edit HR '101' - task jgfs_post_f102 - trigger ./jgfs_post_manager:release_post102 - edit FHRGRP '103' - edit FHRLST 'f102' - edit FHR 'f102' - edit HR '102' - task jgfs_post_f103 - trigger ./jgfs_post_manager:release_post103 - edit FHRGRP '104' - edit FHRLST 'f103' - edit FHR 'f103' - edit HR '103' - task jgfs_post_f104 - trigger ./jgfs_post_manager:release_post104 - edit FHRGRP '105' - edit FHRLST 'f104' - edit FHR 'f104' - edit HR '104' - task jgfs_post_f105 - trigger ./jgfs_post_manager:release_post105 - edit FHRGRP '106' - edit FHRLST 'f105' - edit FHR 'f105' - edit HR '105' - task jgfs_post_f106 - trigger ./jgfs_post_manager:release_post106 - edit FHRGRP '107' - edit FHRLST 'f106' - edit FHR 'f106' - edit HR '106' - task jgfs_post_f107 - trigger ./jgfs_post_manager:release_post107 - edit FHRGRP '108' - edit FHRLST 'f107' - edit FHR 'f107' - edit HR '107' - task jgfs_post_f108 - trigger ./jgfs_post_manager:release_post108 - edit FHRGRP '109' - edit FHRLST 'f108' - edit FHR 'f108' - edit HR '108' - task jgfs_post_f109 - trigger ./jgfs_post_manager:release_post109 - edit FHRGRP '110' - edit FHRLST 'f109' - edit FHR 'f109' - edit HR '109' - task jgfs_post_f110 - trigger ./jgfs_post_manager:release_post110 - edit FHRGRP '111' - edit FHRLST 'f110' - edit FHR 'f110' - edit HR '110' - task jgfs_post_f111 - trigger ./jgfs_post_manager:release_post111 - edit FHRGRP '112' - edit FHRLST 'f111' - edit FHR 'f111' - edit HR '111' - task jgfs_post_f112 - trigger ./jgfs_post_manager:release_post112 - edit FHRGRP '113' - edit FHRLST 'f112' - edit FHR 'f112' - edit HR '112' - task jgfs_post_f113 - trigger ./jgfs_post_manager:release_post113 - edit FHRGRP '114' - edit FHRLST 'f113' - edit FHR 'f113' - edit HR '113' - task jgfs_post_f114 - trigger ./jgfs_post_manager:release_post114 - edit FHRGRP '115' - edit FHRLST 'f114' - edit FHR 'f114' - edit HR '114' - task jgfs_post_f115 - trigger ./jgfs_post_manager:release_post115 - edit FHRGRP '116' - edit FHRLST 'f115' - edit FHR 'f115' - edit HR '115' - task jgfs_post_f116 - trigger ./jgfs_post_manager:release_post116 - edit FHRGRP '117' - edit FHRLST 'f116' - edit FHR 'f116' - edit HR '116' - task jgfs_post_f117 - trigger ./jgfs_post_manager:release_post117 - edit FHRGRP '118' - edit FHRLST 'f117' - edit FHR 'f117' - edit HR '117' - task jgfs_post_f118 - trigger ./jgfs_post_manager:release_post118 - edit FHRGRP '119' - edit FHRLST 'f118' - edit FHR 'f118' - edit HR '118' - task jgfs_post_f119 - trigger ./jgfs_post_manager:release_post119 - edit FHRGRP '120' - edit FHRLST 'f119' - edit FHR 'f119' - edit HR '119' - task jgfs_post_f120 - trigger ./jgfs_post_manager:release_post120 - edit FHRGRP '121' - edit FHRLST 'f120' - edit FHR 'f120' - edit HR '120' - task jgfs_post_f123 - trigger ./jgfs_post_manager:release_post123 - edit FHRGRP '122' - edit FHRLST 'f123' - edit FHR 'f123' - edit HR '123' - task jgfs_post_f126 - trigger ./jgfs_post_manager:release_post126 - edit FHRGRP '123' - edit FHRLST 'f126' - edit FHR 'f126' - edit HR '126' - task jgfs_post_f129 - trigger ./jgfs_post_manager:release_post129 - edit FHRGRP '124' - edit FHRLST 'f129' - edit FHR 'f129' - edit HR '129' - task jgfs_post_f132 - trigger ./jgfs_post_manager:release_post132 - edit FHRGRP '125' - edit FHRLST 'f132' - edit FHR 'f132' - edit HR '132' - task jgfs_post_f135 - trigger ./jgfs_post_manager:release_post135 - edit FHRGRP '126' - edit FHRLST 'f135' - edit FHR 'f135' - edit HR '135' - task jgfs_post_f138 - trigger ./jgfs_post_manager:release_post138 - edit FHRGRP '127' - edit FHRLST 'f138' - edit FHR 'f138' - edit HR '138' - task jgfs_post_f141 - trigger ./jgfs_post_manager:release_post141 - edit FHRGRP '128' - edit FHRLST 'f141' - edit FHR 'f141' - edit HR '141' - task jgfs_post_f144 - trigger ./jgfs_post_manager:release_post144 - edit FHRGRP '129' - edit FHRLST 'f144' - edit FHR 'f144' - edit HR '144' - task jgfs_post_f147 - trigger ./jgfs_post_manager:release_post147 - edit FHRGRP '130' - edit FHRLST 'f147' - edit FHR 'f147' - edit HR '147' - task jgfs_post_f150 - trigger ./jgfs_post_manager:release_post150 - edit FHRGRP '131' - edit FHRLST 'f150' - edit FHR 'f150' - edit HR '150' - task jgfs_post_f153 - trigger ./jgfs_post_manager:release_post153 - edit FHRGRP '132' - edit FHRLST 'f153' - edit FHR 'f153' - edit HR '153' - task jgfs_post_f156 - trigger ./jgfs_post_manager:release_post156 - edit FHRGRP '133' - edit FHRLST 'f156' - edit FHR 'f156' - edit HR '156' - task jgfs_post_f159 - trigger ./jgfs_post_manager:release_post159 - edit FHRGRP '134' - edit FHRLST 'f159' - edit FHR 'f159' - edit HR '159' - task jgfs_post_f162 - trigger ./jgfs_post_manager:release_post162 - edit FHRGRP '135' - edit FHRLST 'f162' - edit FHR 'f162' - edit HR '162' - task jgfs_post_f165 - trigger ./jgfs_post_manager:release_post165 - edit FHRGRP '136' - edit FHRLST 'f165' - edit FHR 'f165' - edit HR '165' - task jgfs_post_f168 - trigger ./jgfs_post_manager:release_post168 - edit FHRGRP '137' - edit FHRLST 'f168' - edit FHR 'f168' - edit HR '168' - task jgfs_post_f171 - trigger ./jgfs_post_manager:release_post171 - edit FHRGRP '138' - edit FHRLST 'f171' - edit FHR 'f171' - edit HR '171' - task jgfs_post_f174 - trigger ./jgfs_post_manager:release_post174 - edit FHRGRP '139' - edit FHRLST 'f174' - edit FHR 'f174' - edit HR '174' - task jgfs_post_f177 - trigger ./jgfs_post_manager:release_post177 - edit FHRGRP '140' - edit FHRLST 'f177' - edit FHR 'f177' - edit HR '177' - task jgfs_post_f180 - trigger ./jgfs_post_manager:release_post180 - edit FHRGRP '141' - edit FHRLST 'f180' - edit FHR 'f180' - edit HR '180' - task jgfs_post_f183 - trigger ./jgfs_post_manager:release_post183 - edit FHRGRP '142' - edit FHRLST 'f183' - edit FHR 'f183' - edit HR '183' - task jgfs_post_f186 - trigger ./jgfs_post_manager:release_post186 - edit FHRGRP '143' - edit FHRLST 'f186' - edit FHR 'f186' - edit HR '186' - task jgfs_post_f189 - trigger ./jgfs_post_manager:release_post189 - edit FHRGRP '144' - edit FHRLST 'f189' - edit FHR 'f189' - edit HR '189' - task jgfs_post_f192 - trigger ./jgfs_post_manager:release_post192 - edit FHRGRP '145' - edit FHRLST 'f192' - edit FHR 'f192' - edit HR '192' - task jgfs_post_f195 - trigger ./jgfs_post_manager:release_post195 - edit FHRGRP '146' - edit FHRLST 'f195' - edit FHR 'f195' - edit HR '195' - task jgfs_post_f198 - trigger ./jgfs_post_manager:release_post198 - edit FHRGRP '147' - edit FHRLST 'f198' - edit FHR 'f198' - edit HR '198' - task jgfs_post_f201 - trigger ./jgfs_post_manager:release_post201 - edit FHRGRP '148' - edit FHRLST 'f201' - edit FHR 'f201' - edit HR '201' - task jgfs_post_f204 - trigger ./jgfs_post_manager:release_post204 - edit FHRGRP '149' - edit FHRLST 'f204' - edit FHR 'f204' - edit HR '204' - task jgfs_post_f207 - trigger ./jgfs_post_manager:release_post207 - edit FHRGRP '150' - edit FHRLST 'f207' - edit FHR 'f207' - edit HR '207' - task jgfs_post_f210 - trigger ./jgfs_post_manager:release_post210 - edit FHRGRP '151' - edit FHRLST 'f210' - edit FHR 'f210' - edit HR '210' - task jgfs_post_f213 - trigger ./jgfs_post_manager:release_post213 - edit FHRGRP '152' - edit FHRLST 'f213' - edit FHR 'f213' - edit HR '213' - task jgfs_post_f216 - trigger ./jgfs_post_manager:release_post216 - edit FHRGRP '153' - edit FHRLST 'f216' - edit FHR 'f216' - edit HR '216' - task jgfs_post_f219 - trigger ./jgfs_post_manager:release_post219 - edit FHRGRP '154' - edit FHRLST 'f219' - edit FHR 'f219' - edit HR '219' - task jgfs_post_f222 - trigger ./jgfs_post_manager:release_post222 - edit FHRGRP '155' - edit FHRLST 'f222' - edit FHR 'f222' - edit HR '222' - task jgfs_post_f225 - trigger ./jgfs_post_manager:release_post225 - edit FHRGRP '156' - edit FHRLST 'f225' - edit FHR 'f225' - edit HR '225' - task jgfs_post_f228 - trigger ./jgfs_post_manager:release_post228 - edit FHRGRP '157' - edit FHRLST 'f228' - edit FHR 'f228' - edit HR '228' - task jgfs_post_f231 - trigger ./jgfs_post_manager:release_post231 - edit FHRGRP '158' - edit FHRLST 'f231' - edit FHR 'f231' - edit HR '231' - task jgfs_post_f234 - trigger ./jgfs_post_manager:release_post234 - edit FHRGRP '159' - edit FHRLST 'f234' - edit FHR 'f234' - edit HR '234' - task jgfs_post_f237 - trigger ./jgfs_post_manager:release_post237 - edit FHRGRP '160' - edit FHRLST 'f237' - edit FHR 'f237' - edit HR '237' - task jgfs_post_f240 - trigger ./jgfs_post_manager:release_post240 - edit FHRGRP '161' - edit FHRLST 'f240' - edit FHR 'f240' - edit HR '240' - task jgfs_post_f243 - trigger ./jgfs_post_manager:release_post243 - edit FHRGRP '162' - edit FHRLST 'f243' - edit FHR 'f243' - edit HR '243' - task jgfs_post_f246 - trigger ./jgfs_post_manager:release_post246 - edit FHRGRP '163' - edit FHRLST 'f246' - edit FHR 'f246' - edit HR '246' - task jgfs_post_f249 - trigger ./jgfs_post_manager:release_post249 - edit FHRGRP '164' - edit FHRLST 'f249' - edit FHR 'f249' - edit HR '249' - task jgfs_post_f252 - trigger ./jgfs_post_manager:release_post252 - edit FHRGRP '165' - edit FHRLST 'f252' - edit FHR 'f252' - edit HR '252' - task jgfs_post_f255 - trigger ./jgfs_post_manager:release_post255 - edit FHRGRP '166' - edit FHRLST 'f255' - edit FHR 'f255' - edit HR '255' - task jgfs_post_f258 - trigger ./jgfs_post_manager:release_post258 - edit FHRGRP '167' - edit FHRLST 'f258' - edit FHR 'f258' - edit HR '258' - task jgfs_post_f261 - trigger ./jgfs_post_manager:release_post261 - edit FHRGRP '168' - edit FHRLST 'f261' - edit FHR 'f261' - edit HR '261' - task jgfs_post_f264 - trigger ./jgfs_post_manager:release_post264 - edit FHRGRP '169' - edit FHRLST 'f264' - edit FHR 'f264' - edit HR '264' - task jgfs_post_f267 - trigger ./jgfs_post_manager:release_post267 - edit FHRGRP '170' - edit FHRLST 'f267' - edit FHR 'f267' - edit HR '267' - task jgfs_post_f270 - trigger ./jgfs_post_manager:release_post270 - edit FHRGRP '171' - edit FHRLST 'f270' - edit FHR 'f270' - edit HR '270' - task jgfs_post_f273 - trigger ./jgfs_post_manager:release_post273 - edit FHRGRP '172' - edit FHRLST 'f273' - edit FHR 'f273' - edit HR '273' - task jgfs_post_f276 - trigger ./jgfs_post_manager:release_post276 - edit FHRGRP '173' - edit FHRLST 'f276' - edit FHR 'f276' - edit HR '276' - task jgfs_post_f279 - trigger ./jgfs_post_manager:release_post279 - edit FHRGRP '174' - edit FHRLST 'f279' - edit FHR 'f279' - edit HR '279' - task jgfs_post_f282 - trigger ./jgfs_post_manager:release_post282 - edit FHRGRP '175' - edit FHRLST 'f282' - edit FHR 'f282' - edit HR '282' - task jgfs_post_f285 - trigger ./jgfs_post_manager:release_post285 - edit FHRGRP '176' - edit FHRLST 'f285' - edit FHR 'f285' - edit HR '285' - task jgfs_post_f288 - trigger ./jgfs_post_manager:release_post288 - edit FHRGRP '177' - edit FHRLST 'f288' - edit FHR 'f288' - edit HR '288' - task jgfs_post_f291 - trigger ./jgfs_post_manager:release_post291 - edit FHRGRP '178' - edit FHRLST 'f291' - edit FHR 'f291' - edit HR '291' - task jgfs_post_f294 - trigger ./jgfs_post_manager:release_post294 - edit FHRGRP '179' - edit FHRLST 'f294' - edit FHR 'f294' - edit HR '294' - task jgfs_post_f297 - trigger ./jgfs_post_manager:release_post297 - edit FHRGRP '180' - edit FHRLST 'f297' - edit FHR 'f297' - edit HR '297' - task jgfs_post_f300 - trigger ./jgfs_post_manager:release_post300 - edit FHRGRP '181' - edit FHRLST 'f300' - edit FHR 'f300' - edit HR '300' - task jgfs_post_f303 - trigger ./jgfs_post_manager:release_post303 - edit FHRGRP '182' - edit FHRLST 'f303' - edit FHR 'f303' - edit HR '303' - task jgfs_post_f306 - trigger ./jgfs_post_manager:release_post306 - edit FHRGRP '183' - edit FHRLST 'f306' - edit FHR 'f306' - edit HR '306' - task jgfs_post_f309 - trigger ./jgfs_post_manager:release_post309 - edit FHRGRP '184' - edit FHRLST 'f309' - edit FHR 'f309' - edit HR '309' - task jgfs_post_f312 - trigger ./jgfs_post_manager:release_post312 - edit FHRGRP '185' - edit FHRLST 'f312' - edit FHR 'f312' - edit HR '312' - task jgfs_post_f315 - trigger ./jgfs_post_manager:release_post315 - edit FHRGRP '186' - edit FHRLST 'f315' - edit FHR 'f315' - edit HR '315' - task jgfs_post_f318 - trigger ./jgfs_post_manager:release_post318 - edit FHRGRP '187' - edit FHRLST 'f318' - edit FHR 'f318' - edit HR '318' - task jgfs_post_f321 - trigger ./jgfs_post_manager:release_post321 - edit FHRGRP '188' - edit FHRLST 'f321' - edit FHR 'f321' - edit HR '321' - task jgfs_post_f324 - trigger ./jgfs_post_manager:release_post324 - edit FHRGRP '189' - edit FHRLST 'f324' - edit FHR 'f324' - edit HR '324' - task jgfs_post_f327 - trigger ./jgfs_post_manager:release_post327 - edit FHRGRP '190' - edit FHRLST 'f327' - edit FHR 'f327' - edit HR '327' - task jgfs_post_f330 - trigger ./jgfs_post_manager:release_post330 - edit FHRGRP '191' - edit FHRLST 'f330' - edit FHR 'f330' - edit HR '330' - task jgfs_post_f333 - trigger ./jgfs_post_manager:release_post333 - edit FHRGRP '192' - edit FHRLST 'f333' - edit FHR 'f333' - edit HR '333' - task jgfs_post_f336 - trigger ./jgfs_post_manager:release_post336 - edit FHRGRP '193' - edit FHRLST 'f336' - edit FHR 'f336' - edit HR '336' - task jgfs_post_f339 - trigger ./jgfs_post_manager:release_post339 - edit FHRGRP '194' - edit FHRLST 'f339' - edit FHR 'f339' - edit HR '339' - task jgfs_post_f342 - trigger ./jgfs_post_manager:release_post342 - edit FHRGRP '195' - edit FHRLST 'f342' - edit FHR 'f342' - edit HR '342' - task jgfs_post_f345 - trigger ./jgfs_post_manager:release_post345 - edit FHRGRP '196' - edit FHRLST 'f345' - edit FHR 'f345' - edit HR '345' - task jgfs_post_f348 - trigger ./jgfs_post_manager:release_post348 - edit FHRGRP '197' - edit FHRLST 'f348' - edit FHR 'f348' - edit HR '348' - task jgfs_post_f351 - trigger ./jgfs_post_manager:release_post351 - edit FHRGRP '198' - edit FHRLST 'f351' - edit FHR 'f351' - edit HR '351' - task jgfs_post_f354 - trigger ./jgfs_post_manager:release_post354 - edit FHRGRP '199' - edit FHRLST 'f354' - edit FHR 'f354' - edit HR '354' - task jgfs_post_f357 - trigger ./jgfs_post_manager:release_post357 - edit FHRGRP '200' - edit FHRLST 'f357' - edit FHR 'f357' - edit HR '357' - task jgfs_post_f360 - trigger ./jgfs_post_manager:release_post360 - edit FHRGRP '201' - edit FHRLST 'f360' - edit FHR 'f360' - edit HR '360' - task jgfs_post_f363 - trigger ./jgfs_post_manager:release_post363 - edit FHRGRP '202' - edit FHRLST 'f363' - edit FHR 'f363' - edit HR '363' - task jgfs_post_f366 - trigger ./jgfs_post_manager:release_post366 - edit FHRGRP '203' - edit FHRLST 'f366' - edit FHR 'f366' - edit HR '366' - task jgfs_post_f369 - trigger ./jgfs_post_manager:release_post369 - edit FHRGRP '204' - edit FHRLST 'f369' - edit FHR 'f369' - edit HR '369' - task jgfs_post_f372 - trigger ./jgfs_post_manager:release_post372 - edit FHRGRP '205' - edit FHRLST 'f372' - edit FHR 'f372' - edit HR '372' - task jgfs_post_f375 - trigger ./jgfs_post_manager:release_post375 - edit FHRGRP '206' - edit FHRLST 'f375' - edit FHR 'f375' - edit HR '375' - task jgfs_post_f378 - trigger ./jgfs_post_manager:release_post378 - edit FHRGRP '207' - edit FHRLST 'f378' - edit FHR 'f378' - edit HR '378' - task jgfs_post_f381 - trigger ./jgfs_post_manager:release_post381 - edit FHRGRP '208' - edit FHRLST 'f381' - edit FHR 'f381' - edit HR '381' - task jgfs_post_f384 - trigger ./jgfs_post_manager:release_post384 - edit FHRGRP '209' - edit FHRLST 'f384' - edit FHR 'f384' - edit HR '384' - endfamily - family post_processing - task jgfs_wafs_gcip - trigger ../post/jgfs_post_f003 == complete - time 16:40 - family grib_wafs - task jgfs_wafs_f00 - trigger ../../post/jgfs_post_f000 == complete and ../../post/jgfs_post_f120 == complete and ../grib2_wafs/jgfs_wafs_grib2 == complete - edit FCSTHR '00' - task jgfs_wafs_f06 - trigger ../../post/jgfs_post_f006 == complete and ./jgfs_wafs_f00 == complete - edit FCSTHR '06' - task jgfs_wafs_f12 - trigger ../../post/jgfs_post_f012 == complete and ./jgfs_wafs_f06 == complete - edit FCSTHR '12' - task jgfs_wafs_f18 - trigger ../../post/jgfs_post_f018 == complete and ./jgfs_wafs_f12 == complete - edit FCSTHR '18' - task jgfs_wafs_f24 - trigger ../../post/jgfs_post_f024 == complete and ./jgfs_wafs_f18 == complete - edit FCSTHR '24' - task jgfs_wafs_f30 - trigger ../../post/jgfs_post_f030 == complete and ./jgfs_wafs_f24 == complete - edit FCSTHR '30' - task jgfs_wafs_f36 - trigger ../../post/jgfs_post_f036 == complete and ./jgfs_wafs_f30 == complete - edit FCSTHR '36' - task jgfs_wafs_f42 - trigger ../../post/jgfs_post_f042 == complete and ./jgfs_wafs_f36 == complete - edit FCSTHR '42' - task jgfs_wafs_f48 - trigger ../../post/jgfs_post_f048 == complete and ./jgfs_wafs_f42 == complete - edit FCSTHR '48' - task jgfs_wafs_f54 - trigger ../../post/jgfs_post_f054 == complete and ./jgfs_wafs_f48 == complete - edit FCSTHR '54' - task jgfs_wafs_f60 - trigger ../../post/jgfs_post_f060 == complete and ./jgfs_wafs_f54 == complete - edit FCSTHR '60' - task jgfs_wafs_f66 - trigger ../../post/jgfs_post_f066 == complete and ./jgfs_wafs_f60 == complete - edit FCSTHR '66' - task jgfs_wafs_f72 - trigger ../../post/jgfs_post_f072 == complete and ./jgfs_wafs_f66 == complete - edit FCSTHR '72' - task jgfs_wafs_f78 - trigger ../../post/jgfs_post_f078 == complete and ./jgfs_wafs_f72 == complete - edit FCSTHR '78' - task jgfs_wafs_f84 - trigger ../../post/jgfs_post_f084 == complete and ./jgfs_wafs_f78 == complete - edit FCSTHR '84' - task jgfs_wafs_f90 - trigger ../../post/jgfs_post_f090 == complete and ./jgfs_wafs_f84 == complete - edit FCSTHR '90' - task jgfs_wafs_f96 - trigger ../../post/jgfs_post_f096 == complete and ./jgfs_wafs_f90 == complete - edit FCSTHR '96' - task jgfs_wafs_f102 - trigger ../../post/jgfs_post_f102 == complete and ./jgfs_wafs_f96 == complete - edit FCSTHR '102' - task jgfs_wafs_f108 - trigger ../../post/jgfs_post_f108 == complete and ./jgfs_wafs_f102 == complete - edit FCSTHR '108' - task jgfs_wafs_f114 - trigger ../../post/jgfs_post_f114 == complete and ./jgfs_wafs_f108 == complete - edit FCSTHR '114' - task jgfs_wafs_f120 - trigger ../../post/jgfs_post_f120 == complete and ./jgfs_wafs_f114 == complete - edit FCSTHR '120' - endfamily - family bufr_sounding - task jgfs_postsnd - trigger ../../post/jgfs_post_manager:release_post000 - endfamily - family bulletins - task jgfs_fbwind - trigger ../../post/jgfs_post_f006 == complete and ../../post/jgfs_post_f012 == complete and ../../post/jgfs_post_f024 == complete - endfamily - family grib2_wafs - task jgfs_wafs_grib2 - trigger ../../post/jgfs_post_f000 == complete - task jgfs_wafs_blending - trigger ./jgfs_wafs_grib2 == complete - time 16:33 - endfamily - family awips_20km_1p0 - task jgfs_awips_f000 - trigger ../../post/jgfs_post_f000 == complete - edit FHRGRP '000' - edit FHRLST 'f000' - edit FCSTHR '000' - edit TRDRUN 'YES' - task jgfs_awips_f003 - trigger ../../post/jgfs_post_f003 == complete - edit FHRGRP '003' - edit FHRLST 'f003' - edit FCSTHR '003' - edit TRDRUN 'NO' - task jgfs_awips_f006 - trigger ../../post/jgfs_post_f006 == complete - edit FHRGRP '006' - edit FHRLST 'f006' - edit FCSTHR '006' - edit TRDRUN 'YES' - task jgfs_awips_f009 - trigger ../../post/jgfs_post_f009 == complete - edit FHRGRP '009' - edit FHRLST 'f009' - edit FCSTHR '009' - edit TRDRUN 'NO' - task jgfs_awips_f012 - trigger ../../post/jgfs_post_f012 == complete - edit FHRGRP '012' - edit FHRLST 'f012' - edit FCSTHR '012' - edit TRDRUN 'YES' - task jgfs_awips_f015 - trigger ../../post/jgfs_post_f015 == complete - edit FHRGRP '015' - edit FHRLST 'f015' - edit FCSTHR '015' - edit TRDRUN 'NO' - task jgfs_awips_f018 - trigger ../../post/jgfs_post_f018 == complete - edit FHRGRP '018' - edit FHRLST 'f018' - edit FCSTHR '018' - edit TRDRUN 'YES' - task jgfs_awips_f021 - trigger ../../post/jgfs_post_f021 == complete - edit FHRGRP '021' - edit FHRLST 'f021' - edit FCSTHR '021' - edit TRDRUN 'NO' - task jgfs_awips_f024 - trigger ../../post/jgfs_post_f024 == complete - edit FHRGRP '024' - edit FHRLST 'f024' - edit FCSTHR '024' - edit TRDRUN 'YES' - task jgfs_awips_f027 - trigger ../../post/jgfs_post_f027 == complete - edit FHRGRP '027' - edit FHRLST 'f027' - edit FCSTHR '027' - edit TRDRUN 'NO' - task jgfs_awips_f030 - trigger ../../post/jgfs_post_f030 == complete - edit FHRGRP '030' - edit FHRLST 'f030' - edit FCSTHR '030' - edit TRDRUN 'YES' - task jgfs_awips_f033 - trigger ../../post/jgfs_post_f033 == complete - edit FHRGRP '033' - edit FHRLST 'f033' - edit FCSTHR '033' - edit TRDRUN 'NO' - task jgfs_awips_f036 - trigger ../../post/jgfs_post_f036 == complete - edit FHRGRP '036' - edit FHRLST 'f036' - edit FCSTHR '036' - edit TRDRUN 'YES' - task jgfs_awips_f039 - trigger ../../post/jgfs_post_f039 == complete - edit FHRGRP '039' - edit FHRLST 'f039' - edit FCSTHR '039' - edit TRDRUN 'NO' - task jgfs_awips_f042 - trigger ../../post/jgfs_post_f042 == complete - edit FHRGRP '042' - edit FHRLST 'f042' - edit FCSTHR '042' - edit TRDRUN 'YES' - task jgfs_awips_f045 - trigger ../../post/jgfs_post_f045 == complete - edit FHRGRP '045' - edit FHRLST 'f045' - edit FCSTHR '045' - edit TRDRUN 'NO' - task jgfs_awips_f048 - trigger ../../post/jgfs_post_f048 == complete - edit FHRGRP '048' - edit FHRLST 'f048' - edit FCSTHR '048' - edit TRDRUN 'YES' - task jgfs_awips_f051 - trigger ../../post/jgfs_post_f051 == complete - edit FHRGRP '051' - edit FHRLST 'f051' - edit FCSTHR '051' - edit TRDRUN 'NO' - task jgfs_awips_f054 - trigger ../../post/jgfs_post_f054 == complete - edit FHRGRP '054' - edit FHRLST 'f054' - edit FCSTHR '054' - edit TRDRUN 'YES' - task jgfs_awips_f057 - trigger ../../post/jgfs_post_f057 == complete - edit FHRGRP '057' - edit FHRLST 'f057' - edit FCSTHR '057' - edit TRDRUN 'NO' - task jgfs_awips_f060 - trigger ../../post/jgfs_post_f060 == complete - edit FHRGRP '060' - edit FHRLST 'f060' - edit FCSTHR '060' - edit TRDRUN 'YES' - task jgfs_awips_f063 - trigger ../../post/jgfs_post_f063 == complete - edit FHRGRP '063' - edit FHRLST 'f063' - edit FCSTHR '063' - edit TRDRUN 'NO' - task jgfs_awips_f066 - trigger ../../post/jgfs_post_f066 == complete - edit FHRGRP '066' - edit FHRLST 'f066' - edit FCSTHR '066' - edit TRDRUN 'YES' - task jgfs_awips_f069 - trigger ../../post/jgfs_post_f069 == complete - edit FHRGRP '069' - edit FHRLST 'f069' - edit FCSTHR '069' - edit TRDRUN 'NO' - task jgfs_awips_f072 - trigger ../../post/jgfs_post_f072 == complete - edit FHRGRP '072' - edit FHRLST 'f072' - edit FCSTHR '072' - edit TRDRUN 'YES' - task jgfs_awips_f075 - trigger ../../post/jgfs_post_f075 == complete - edit FHRGRP '075' - edit FHRLST 'f075' - edit FCSTHR '075' - edit TRDRUN 'NO' - task jgfs_awips_f078 - trigger ../../post/jgfs_post_f078 == complete - edit FHRGRP '078' - edit FHRLST 'f078' - edit FCSTHR '078' - edit TRDRUN 'YES' - task jgfs_awips_f081 - trigger ../../post/jgfs_post_f081 == complete - edit FHRGRP '081' - edit FHRLST 'f081' - edit FCSTHR '081' - edit TRDRUN 'NO' - task jgfs_awips_f084 - trigger ../../post/jgfs_post_f084 == complete - edit FHRGRP '084' - edit FHRLST 'f084' - edit FCSTHR '084' - edit TRDRUN 'YES' - task jgfs_awips_f090 - trigger ../../post/jgfs_post_f090 == complete - edit FHRGRP '090' - edit FHRLST 'f090' - edit FCSTHR '090' - edit TRDRUN 'YES' - task jgfs_awips_f096 - trigger ../../post/jgfs_post_f096 == complete - edit FHRGRP '096' - edit FHRLST 'f096' - edit FCSTHR '096' - edit TRDRUN 'YES' - task jgfs_awips_f102 - trigger ../../post/jgfs_post_f102 == complete - edit FHRGRP '102' - edit FHRLST 'f102' - edit FCSTHR '102' - edit TRDRUN 'YES' - task jgfs_awips_f108 - trigger ../../post/jgfs_post_f108 == complete - edit FHRGRP '108' - edit FHRLST 'f108' - edit FCSTHR '108' - edit TRDRUN 'YES' - task jgfs_awips_f114 - trigger ../../post/jgfs_post_f114 == complete - edit FHRGRP '114' - edit FHRLST 'f114' - edit FCSTHR '114' - edit TRDRUN 'YES' - task jgfs_awips_f120 - trigger ../../post/jgfs_post_f120 == complete - edit FHRGRP '120' - edit FHRLST 'f120' - edit FCSTHR '120' - edit TRDRUN 'YES' - task jgfs_awips_f126 - trigger ../../post/jgfs_post_f126 == complete - edit FHRGRP '126' - edit FHRLST 'f126' - edit FCSTHR '126' - edit TRDRUN 'YES' - task jgfs_awips_f132 - trigger ../../post/jgfs_post_f132 == complete - edit FHRGRP '132' - edit FHRLST 'f132' - edit FCSTHR '132' - edit TRDRUN 'YES' - task jgfs_awips_f138 - trigger ../../post/jgfs_post_f138 == complete - edit FHRGRP '138' - edit FHRLST 'f138' - edit FCSTHR '138' - edit TRDRUN 'YES' - task jgfs_awips_f144 - trigger ../../post/jgfs_post_f144 == complete - edit FHRGRP '144' - edit FHRLST 'f144' - edit FCSTHR '144' - edit TRDRUN 'YES' - task jgfs_awips_f150 - trigger ../../post/jgfs_post_f150 == complete - edit FHRGRP '150' - edit FHRLST 'f150' - edit FCSTHR '150' - edit TRDRUN 'YES' - task jgfs_awips_f156 - trigger ../../post/jgfs_post_f156 == complete - edit FHRGRP '156' - edit FHRLST 'f156' - edit FCSTHR '156' - edit TRDRUN 'YES' - task jgfs_awips_f162 - trigger ../../post/jgfs_post_f162 == complete - edit FHRGRP '162' - edit FHRLST 'f162' - edit FCSTHR '162' - edit TRDRUN 'YES' - task jgfs_awips_f168 - trigger ../../post/jgfs_post_f168 == complete - edit FHRGRP '168' - edit FHRLST 'f168' - edit FCSTHR '168' - edit TRDRUN 'YES' - task jgfs_awips_f174 - trigger ../../post/jgfs_post_f174 == complete - edit FHRGRP '174' - edit FHRLST 'f174' - edit FCSTHR '174' - edit TRDRUN 'YES' - task jgfs_awips_f180 - trigger ../../post/jgfs_post_f180 == complete - edit FHRGRP '180' - edit FHRLST 'f180' - edit FCSTHR '180' - edit TRDRUN 'YES' - task jgfs_awips_f186 - trigger ../../post/jgfs_post_f186 == complete - edit FHRGRP '186' - edit FHRLST 'f186' - edit FCSTHR '186' - edit TRDRUN 'YES' - task jgfs_awips_f192 - trigger ../../post/jgfs_post_f192 == complete - edit FHRGRP '192' - edit FHRLST 'f192' - edit FCSTHR '192' - edit TRDRUN 'YES' - task jgfs_awips_f198 - trigger ../../post/jgfs_post_f198 == complete - edit FHRGRP '198' - edit FHRLST 'f198' - edit FCSTHR '198' - edit TRDRUN 'YES' - task jgfs_awips_f204 - trigger ../../post/jgfs_post_f204 == complete - edit FHRGRP '204' - edit FHRLST 'f204' - edit FCSTHR '204' - edit TRDRUN 'YES' - task jgfs_awips_f210 - trigger ../../post/jgfs_post_f210 == complete - edit FHRGRP '210' - edit FHRLST 'f210' - edit FCSTHR '210' - edit TRDRUN 'YES' - task jgfs_awips_f216 - trigger ../../post/jgfs_post_f216 == complete - edit FHRGRP '216' - edit FHRLST 'f216' - edit FCSTHR '216' - edit TRDRUN 'YES' - task jgfs_awips_f222 - trigger ../../post/jgfs_post_f222 == complete - edit FHRGRP '222' - edit FHRLST 'f222' - edit FCSTHR '222' - edit TRDRUN 'YES' - task jgfs_awips_f228 - trigger ../../post/jgfs_post_f228 == complete - edit FHRGRP '228' - edit FHRLST 'f228' - edit FCSTHR '228' - edit TRDRUN 'YES' - task jgfs_awips_f234 - trigger ../../post/jgfs_post_f234 == complete - edit FHRGRP '234' - edit FHRLST 'f234' - edit FCSTHR '234' - edit TRDRUN 'YES' - task jgfs_awips_f240 - trigger ../../post/jgfs_post_f240 == complete - edit FHRGRP '240' - edit FHRLST 'f240' - edit FCSTHR '240' - edit TRDRUN 'YES' - endfamily - family awips_g2 - task jgfs_awips_g2_f000 - trigger ../../post/jgfs_post_f000 == complete - edit FHRGRP '000' - edit FHRLST 'f000' - edit FCSTHR '000' - edit TRDRUN 'YES' - task jgfs_awips_g2_f006 - trigger ../../post/jgfs_post_f006 == complete - edit FHRGRP '006' - edit FHRLST 'f006' - edit FCSTHR '006' - edit TRDRUN 'YES' - task jgfs_awips_g2_f012 - trigger ../../post/jgfs_post_f012 == complete - edit FHRGRP '012' - edit FHRLST 'f012' - edit FCSTHR '012' - edit TRDRUN 'YES' - task jgfs_awips_g2_f018 - trigger ../../post/jgfs_post_f018 == complete - edit FHRGRP '018' - edit FHRLST 'f018' - edit FCSTHR '018' - edit TRDRUN 'YES' - task jgfs_awips_g2_f024 - trigger ../../post/jgfs_post_f024 == complete - edit FHRGRP '024' - edit FHRLST 'f024' - edit FCSTHR '024' - edit TRDRUN 'YES' - task jgfs_awips_g2_f030 - trigger ../../post/jgfs_post_f030 == complete - edit FHRGRP '030' - edit FHRLST 'f030' - edit FCSTHR '030' - edit TRDRUN 'YES' - task jgfs_awips_g2_f036 - trigger ../../post/jgfs_post_f036 == complete - edit FHRGRP '036' - edit FHRLST 'f036' - edit FCSTHR '036' - edit TRDRUN 'YES' - task jgfs_awips_g2_f042 - trigger ../../post/jgfs_post_f042 == complete - edit FHRGRP '042' - edit FHRLST 'f042' - edit FCSTHR '042' - edit TRDRUN 'YES' - task jgfs_awips_g2_f048 - trigger ../../post/jgfs_post_f048 == complete - edit FHRGRP '048' - edit FHRLST 'f048' - edit FCSTHR '048' - edit TRDRUN 'YES' - task jgfs_awips_g2_f054 - trigger ../../post/jgfs_post_f054 == complete - edit FHRGRP '054' - edit FHRLST 'f054' - edit FCSTHR '054' - edit TRDRUN 'YES' - task jgfs_awips_g2_f060 - trigger ../../post/jgfs_post_f060 == complete - edit FHRGRP '060' - edit FHRLST 'f060' - edit FCSTHR '060' - edit TRDRUN 'YES' - task jgfs_awips_g2_f066 - trigger ../../post/jgfs_post_f066 == complete - edit FHRGRP '066' - edit FHRLST 'f066' - edit FCSTHR '066' - edit TRDRUN 'YES' - task jgfs_awips_g2_f072 - trigger ../../post/jgfs_post_f072 == complete - edit FHRGRP '072' - edit FHRLST 'f072' - edit FCSTHR '072' - edit TRDRUN 'YES' - task jgfs_awips_g2_f078 - trigger ../../post/jgfs_post_f078 == complete - edit FHRGRP '078' - edit FHRLST 'f078' - edit FCSTHR '078' - edit TRDRUN 'YES' - task jgfs_awips_g2_f084 - trigger ../../post/jgfs_post_f084 == complete - edit FHRGRP '084' - edit FHRLST 'f084' - edit FCSTHR '084' - edit TRDRUN 'YES' - task jgfs_awips_g2_f090 - trigger ../../post/jgfs_post_f090 == complete - edit FHRGRP '090' - edit FHRLST 'f090' - edit FCSTHR '090' - edit TRDRUN 'YES' - task jgfs_awips_g2_f096 - trigger ../../post/jgfs_post_f096 == complete - edit FHRGRP '096' - edit FHRLST 'f096' - edit FCSTHR '096' - edit TRDRUN 'YES' - task jgfs_awips_g2_f102 - trigger ../../post/jgfs_post_f102 == complete - edit FHRGRP '102' - edit FHRLST 'f102' - edit FCSTHR '102' - edit TRDRUN 'YES' - task jgfs_awips_g2_f108 - trigger ../../post/jgfs_post_f108 == complete - edit FHRGRP '108' - edit FHRLST 'f108' - edit FCSTHR '108' - edit TRDRUN 'YES' - task jgfs_awips_g2_f114 - trigger ../../post/jgfs_post_f114 == complete - edit FHRGRP '114' - edit FHRLST 'f114' - edit FCSTHR '114' - edit TRDRUN 'YES' - task jgfs_awips_g2_f120 - trigger ../../post/jgfs_post_f120 == complete - edit FHRGRP '120' - edit FHRLST 'f120' - edit FCSTHR '120' - edit TRDRUN 'YES' - task jgfs_awips_g2_f126 - trigger ../../post/jgfs_post_f126 == complete - edit FHRGRP '126' - edit FHRLST 'f126' - edit FCSTHR '126' - edit TRDRUN 'YES' - task jgfs_awips_g2_f132 - trigger ../../post/jgfs_post_f132 == complete - edit FHRGRP '132' - edit FHRLST 'f132' - edit FCSTHR '132' - edit TRDRUN 'YES' - task jgfs_awips_g2_f138 - trigger ../../post/jgfs_post_f138 == complete - edit FHRGRP '138' - edit FHRLST 'f138' - edit FCSTHR '138' - edit TRDRUN 'YES' - task jgfs_awips_g2_f144 - trigger ../../post/jgfs_post_f144 == complete - edit FHRGRP '144' - edit FHRLST 'f144' - edit FCSTHR '144' - edit TRDRUN 'YES' - task jgfs_awips_g2_f150 - trigger ../../post/jgfs_post_f150 == complete - edit FHRGRP '150' - edit FHRLST 'f150' - edit FCSTHR '150' - edit TRDRUN 'YES' - task jgfs_awips_g2_f156 - trigger ../../post/jgfs_post_f156 == complete - edit FHRGRP '156' - edit FHRLST 'f156' - edit FCSTHR '156' - edit TRDRUN 'YES' - task jgfs_awips_g2_f162 - trigger ../../post/jgfs_post_f162 == complete - edit FHRGRP '162' - edit FHRLST 'f162' - edit FCSTHR '162' - edit TRDRUN 'YES' - task jgfs_awips_g2_f168 - trigger ../../post/jgfs_post_f168 == complete - edit FHRGRP '168' - edit FHRLST 'f168' - edit FCSTHR '168' - edit TRDRUN 'YES' - task jgfs_awips_g2_f174 - trigger ../../post/jgfs_post_f174 == complete - edit FHRGRP '174' - edit FHRLST 'f174' - edit FCSTHR '174' - edit TRDRUN 'YES' - task jgfs_awips_g2_f180 - trigger ../../post/jgfs_post_f180 == complete - edit FHRGRP '180' - edit FHRLST 'f180' - edit FCSTHR '180' - edit TRDRUN 'YES' - task jgfs_awips_g2_f186 - trigger ../../post/jgfs_post_f186 == complete - edit FHRGRP '186' - edit FHRLST 'f186' - edit FCSTHR '186' - edit TRDRUN 'YES' - task jgfs_awips_g2_f192 - trigger ../../post/jgfs_post_f192 == complete - edit FHRGRP '192' - edit FHRLST 'f192' - edit FCSTHR '192' - edit TRDRUN 'YES' - task jgfs_awips_g2_f198 - trigger ../../post/jgfs_post_f198 == complete - edit FHRGRP '198' - edit FHRLST 'f198' - edit FCSTHR '198' - edit TRDRUN 'YES' - task jgfs_awips_g2_f204 - trigger ../../post/jgfs_post_f204 == complete - edit FHRGRP '204' - edit FHRLST 'f204' - edit FCSTHR '204' - edit TRDRUN 'YES' - task jgfs_awips_g2_f210 - trigger ../../post/jgfs_post_f210 == complete - edit FHRGRP '210' - edit FHRLST 'f210' - edit FCSTHR '210' - edit TRDRUN 'YES' - task jgfs_awips_g2_f216 - trigger ../../post/jgfs_post_f216 == complete - edit FHRGRP '216' - edit FHRLST 'f216' - edit FCSTHR '216' - edit TRDRUN 'YES' - task jgfs_awips_g2_f222 - trigger ../../post/jgfs_post_f222 == complete - edit FHRGRP '222' - edit FHRLST 'f222' - edit FCSTHR '222' - edit TRDRUN 'YES' - task jgfs_awips_g2_f228 - trigger ../../post/jgfs_post_f228 == complete - edit FHRGRP '228' - edit FHRLST 'f228' - edit FCSTHR '228' - edit TRDRUN 'YES' - task jgfs_awips_g2_f234 - trigger ../../post/jgfs_post_f234 == complete - edit FHRGRP '234' - edit FHRLST 'f234' - edit FCSTHR '234' - edit TRDRUN 'YES' - task jgfs_awips_g2_f240 - trigger ../../post/jgfs_post_f240 == complete - edit FHRGRP '240' - edit FHRLST 'f240' - edit FCSTHR '240' - edit TRDRUN 'YES' - endfamily - endfamily - family mos - edit ECF_FILES '/ecf/ecfnets/scripts/gfs/mos' - edit PROJ 'GFS-%PROJENVIR%' - edit COM '/gpfs/hps/nco/ops/com' - edit QUEUESERV 'prod_transfer' - edit MODULES 'module load cfp-intel-sandybridge/1.1.0 grib_util gempak/6.32.0' - edit QUEUE 'prod' - family prep - task jgfsmos_stn_prep - trigger /prod12/gfs/post/jgfs_post_f096 == complete - edit NTASK '3' - edit PTILE '3' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_grd_prep - trigger /prod12/gfs/post/jgfs_post_f096 == complete - edit NTASK '4' - edit PTILE '4' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_stn_prep - trigger /prod12/gfs/post == complete - edit NTASK '2' - edit PTILE '2' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_grd_prep - trigger /prod12/gfs/post == complete - edit NTASK '7' - edit PTILE '4' - edit OMP_NUM_THREADS '1' - edit NODES '2' - endfamily - family forecast - task jgfsmos_stn_fcst - trigger ../prep/jgfsmos_stn_prep == complete - edit NTASK '5' - edit PTILE '5' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_grd_fcst - trigger ../prep/jgfsmos_stn_prep == complete and ../prep/jgfsmos_grd_prep == complete - edit NTASK '7' - edit PTILE '4' - edit OMP_NUM_THREADS '1' - edit NODES '2' - task jgfsmos_ext_stn_fcst - trigger ../prep/jgfsmos_ext_stn_prep == complete and ../prdgen/jgfsmos_stn_prdgen == complete - edit NTASK '3' - edit PTILE '3' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_grd_fcst - trigger ../prep/jgfsmos_ext_stn_prep == complete and ../prep/jgfsmos_ext_grd_prep == complete and jgfsmos_grd_fcst == complete - edit NTASK '7' - edit PTILE '4' - edit OMP_NUM_THREADS '1' - edit NODES '2' - endfamily - family prdgen - task jgfsmos_stn_prdgen - trigger ../forecast/jgfsmos_stn_fcst == complete - edit NTASK '1' - edit PTILE '1' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_grd_prdgen - trigger ../forecast/jgfsmos_grd_fcst == complete and jgfsmos_stn_prdgen == complete - edit NTASK '14' - edit PTILE '1' - edit OMP_NUM_THREADS '20' - edit NODES '14' - task jgfsmos_ext_stn_prdgen - trigger ../forecast/jgfsmos_ext_stn_fcst == complete and jgfsmos_stn_prdgen == complete - edit NTASK '1' - edit PTILE '1' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_grd_prdgen - trigger ../forecast/jgfsmos_ext_grd_fcst == complete and jgfsmos_grd_prdgen == complete and jgfsmos_ext_stn_prdgen == complete - edit NTASK '12' - edit PTILE '1' - edit OMP_NUM_THREADS '20' - edit NODES '12' - task jgfsmos_wx_prdgen - trigger ../prdgen/jgfsmos_grd_prdgen == complete - edit NTASK '2' - edit PTILE '1' - edit OMP_NUM_THREADS '20' - edit NODES '2' - task jgfsmos_wx_ext_prdgen - trigger ../prdgen/jgfsmos_ext_grd_prdgen == complete and jgfsmos_wx_prdgen == complete - edit NTASK '2' - edit PTILE '1' - edit OMP_NUM_THREADS '20' - edit NODES '2' - endfamily - family gempak - task jgfs_gempak_mdl - trigger ../prdgen == complete - endfamily - endfamily - family gempak - task jgfs_gempak_ncdc_upapgif - trigger ./jgfs_gempak == active or ./jgfs_gempak == complete - task jgfs_gempak - trigger ../jgfs_analysis eq complete - task jgfs_gempak_meta - trigger ../jgfs_analysis == complete - task jgfs_pgrb2_spec_gempak - trigger ./jgfs_npoess_pgrb2_0p5deg == complete - task jgfs_npoess_pgrb2_0p5deg - trigger ../post/jgfs_post_anl eq active or ../post/jgfs_post_anl == complete - endfamily - endfamily - diff --git a/ecflow/ecf/defs/gfs_18.def b/ecflow/ecf/defs/gfs_18.def deleted file mode 100644 index 9dcd240e88..0000000000 --- a/ecflow/ecf/defs/gfs_18.def +++ /dev/null @@ -1,2244 +0,0 @@ - family gfs - edit CYC '18' - edit ECF_FILES '/ecf/ecfnets/scripts/gfs_FV3' - edit PROJ 'GFS-OPS' - edit NET 'gfs' - edit RUN 'gfs' - edit COM '/gpfs/dell1/nco/ops/com' - edit QUEUESHARED 'prod_shared' - edit QUEUESERV 'prod_transfer' - edit QUEUE 'prod' - family dump - task jgfs_tropcy_qc_reloc - event 1 jtwc_bull_email - time 20:41 - task jgfs_dump - event 1 release_sfcprep - time 20:47 - task jgfs_dump_post - trigger jgfs_dump eq complete - event 1 release_gfs18_dump_alert - task jgfs_dump_alert - trigger jgfs_dump_post:release_gfs18_dump_alert - task jmodel_realtime_gfs - trigger jgfs_dump_alert eq complete - endfamily - family prep - task jgfs_emcsfc_sfc_prep - trigger ../dump/jgfs_dump:release_sfcprep - task jgfs_prep - trigger ../dump/jgfs_dump eq complete and ../dump/jgfs_tropcy_qc_reloc eq complete - task jgfs_prep_post - trigger jgfs_prep eq complete and ../jgfs_analysis eq complete - endfamily - task jgfs_analysis - trigger prep/jgfs_prep eq complete and prep/jgfs_emcsfc_sfc_prep == complete - event 1 release_fcst - task jgfs_vminmon - trigger jgfs_analysis == complete - family forecast - task jgfs_forecast_high - trigger ../jgfs_analysis:release_fcst - endfamily - family post - task jgfs_post_manager - trigger ../jgfs_analysis eq complete - event 1 release_postanl - event 2 release_post000 - event 3 release_post001 - event 4 release_post002 - event 5 release_post003 - event 6 release_post004 - event 7 release_post005 - event 8 release_post006 - event 9 release_post007 - event 10 release_post008 - event 11 release_post009 - event 12 release_post010 - event 13 release_post011 - event 14 release_post012 - event 15 release_post013 - event 16 release_post014 - event 17 release_post015 - event 18 release_post016 - event 19 release_post017 - event 20 release_post018 - event 21 release_post019 - event 22 release_post020 - event 23 release_post021 - event 24 release_post022 - event 25 release_post023 - event 26 release_post024 - event 27 release_post025 - event 28 release_post026 - event 29 release_post027 - event 30 release_post028 - event 31 release_post029 - event 32 release_post030 - event 33 release_post031 - event 34 release_post032 - event 35 release_post033 - event 36 release_post034 - event 37 release_post035 - event 38 release_post036 - event 39 release_post037 - event 40 release_post038 - event 41 release_post039 - event 42 release_post040 - event 43 release_post041 - event 44 release_post042 - event 45 release_post043 - event 46 release_post044 - event 47 release_post045 - event 48 release_post046 - event 49 release_post047 - event 50 release_post048 - event 51 release_post049 - event 52 release_post050 - event 53 release_post051 - event 54 release_post052 - event 55 release_post053 - event 56 release_post054 - event 57 release_post055 - event 58 release_post056 - event 59 release_post057 - event 60 release_post058 - event 61 release_post059 - event 62 release_post060 - event 63 release_post061 - event 64 release_post062 - event 65 release_post063 - event 66 release_post064 - event 67 release_post065 - event 68 release_post066 - event 69 release_post067 - event 70 release_post068 - event 71 release_post069 - event 72 release_post070 - event 73 release_post071 - event 74 release_post072 - event 75 release_post073 - event 76 release_post074 - event 77 release_post075 - event 78 release_post076 - event 79 release_post077 - event 80 release_post078 - event 81 release_post079 - event 82 release_post080 - event 83 release_post081 - event 84 release_post082 - event 85 release_post083 - event 86 release_post084 - event 87 release_post085 - event 88 release_post086 - event 89 release_post087 - event 90 release_post088 - event 91 release_post089 - event 92 release_post090 - event 93 release_post091 - event 94 release_post092 - event 95 release_post093 - event 96 release_post094 - event 97 release_post095 - event 98 release_post096 - event 99 release_post097 - event 100 release_post098 - event 101 release_post099 - event 102 release_post100 - event 103 release_post101 - event 104 release_post102 - event 105 release_post103 - event 106 release_post104 - event 107 release_post105 - event 108 release_post106 - event 109 release_post107 - event 110 release_post108 - event 111 release_post109 - event 112 release_post110 - event 113 release_post111 - event 114 release_post112 - event 115 release_post113 - event 116 release_post114 - event 117 release_post115 - event 118 release_post116 - event 119 release_post117 - event 120 release_post118 - event 121 release_post119 - event 122 release_post120 - event 123 release_post123 - event 124 release_post126 - event 125 release_post129 - event 126 release_post132 - event 127 release_post135 - event 128 release_post138 - event 129 release_post141 - event 130 release_post144 - event 131 release_post147 - event 132 release_post150 - event 133 release_post153 - event 134 release_post156 - event 135 release_post159 - event 136 release_post162 - event 137 release_post165 - event 138 release_post168 - event 139 release_post171 - event 140 release_post174 - event 141 release_post177 - event 142 release_post180 - event 143 release_post183 - event 144 release_post186 - event 145 release_post189 - event 146 release_post192 - event 147 release_post195 - event 148 release_post198 - event 149 release_post201 - event 150 release_post204 - event 151 release_post207 - event 152 release_post210 - event 153 release_post213 - event 154 release_post216 - event 155 release_post219 - event 156 release_post222 - event 157 release_post225 - event 158 release_post228 - event 159 release_post231 - event 160 release_post234 - event 161 release_post237 - event 162 release_post240 - event 163 release_post243 - event 164 release_post246 - event 165 release_post249 - event 166 release_post252 - event 167 release_post255 - event 168 release_post258 - event 169 release_post261 - event 170 release_post264 - event 171 release_post267 - event 172 release_post270 - event 173 release_post273 - event 174 release_post276 - event 175 release_post279 - event 176 release_post282 - event 177 release_post285 - event 178 release_post288 - event 179 release_post291 - event 180 release_post294 - event 181 release_post297 - event 182 release_post300 - event 183 release_post303 - event 184 release_post306 - event 185 release_post309 - event 186 release_post312 - event 187 release_post315 - event 188 release_post318 - event 189 release_post321 - event 190 release_post324 - event 191 release_post327 - event 192 release_post330 - event 193 release_post333 - event 194 release_post336 - event 195 release_post339 - event 196 release_post342 - event 197 release_post345 - event 198 release_post348 - event 199 release_post351 - event 200 release_post354 - event 201 release_post357 - event 202 release_post360 - event 203 release_post363 - event 204 release_post366 - event 205 release_post369 - event 206 release_post372 - event 207 release_post375 - event 208 release_post378 - event 209 release_post381 - event 210 release_post384 - task jgfs_post_anl - trigger ./jgfs_post_manager:release_postanl - edit FHRGRP '000' - edit FHRLST 'anl' - edit HR 'anl' - edit FHR 'anl' - event 1 release_postanl - task jgfs_post_f000 - trigger ./jgfs_post_manager:release_post000 - edit FHRGRP '001' - edit FHRLST 'f000' - edit FHR 'f000' - edit HR '000' - task jgfs_post_f001 - trigger ./jgfs_post_manager:release_post001 - edit FHRGRP '002' - edit FHRLST 'f001' - edit FHR 'f001' - edit HR '001' - task jgfs_post_f002 - trigger ./jgfs_post_manager:release_post002 - edit FHRGRP '003' - edit FHRLST 'f002' - edit FHR 'f002' - edit HR '002' - task jgfs_post_f003 - trigger ./jgfs_post_manager:release_post003 - edit FHRGRP '004' - edit FHRLST 'f003' - edit FHR 'f003' - edit HR '003' - task jgfs_post_f004 - trigger ./jgfs_post_manager:release_post004 - edit FHRGRP '005' - edit FHRLST 'f004' - edit FHR 'f004' - edit HR '004' - task jgfs_post_f005 - trigger ./jgfs_post_manager:release_post005 - edit FHRGRP '006' - edit FHRLST 'f005' - edit FHR 'f005' - edit HR '005' - task jgfs_post_f006 - trigger ./jgfs_post_manager:release_post006 - edit FHRGRP '007' - edit FHRLST 'f006' - edit FHR 'f006' - edit HR '006' - task jgfs_post_f007 - trigger ./jgfs_post_manager:release_post007 - edit FHRGRP '008' - edit FHRLST 'f007' - edit FHR 'f007' - edit HR '007' - task jgfs_post_f008 - trigger ./jgfs_post_manager:release_post008 - edit FHRGRP '009' - edit FHRLST 'f008' - edit FHR 'f008' - edit HR '008' - task jgfs_post_f009 - trigger ./jgfs_post_manager:release_post009 - edit FHRGRP '010' - edit FHRLST 'f009' - edit FHR 'f009' - edit HR '009' - task jgfs_post_f010 - trigger ./jgfs_post_manager:release_post010 - edit FHRGRP '011' - edit FHRLST 'f010' - edit FHR 'f010' - edit HR '010' - task jgfs_post_f011 - trigger ./jgfs_post_manager:release_post011 - edit FHRGRP '012' - edit FHRLST 'f011' - edit FHR 'f011' - edit HR '011' - task jgfs_post_f012 - trigger ./jgfs_post_manager:release_post012 - edit FHRGRP '013' - edit FHRLST 'f012' - edit FHR 'f012' - edit HR '012' - task jgfs_post_f013 - trigger ./jgfs_post_manager:release_post013 - edit FHRGRP '014' - edit FHRLST 'f013' - edit FHR 'f013' - edit HR '013' - task jgfs_post_f014 - trigger ./jgfs_post_manager:release_post014 - edit FHRGRP '015' - edit FHRLST 'f014' - edit FHR 'f014' - edit HR '014' - task jgfs_post_f015 - trigger ./jgfs_post_manager:release_post015 - edit FHRGRP '016' - edit FHRLST 'f015' - edit FHR 'f015' - edit HR '015' - task jgfs_post_f016 - trigger ./jgfs_post_manager:release_post016 - edit FHRGRP '017' - edit FHRLST 'f016' - edit FHR 'f016' - edit HR '016' - task jgfs_post_f017 - trigger ./jgfs_post_manager:release_post017 - edit FHRGRP '018' - edit FHRLST 'f017' - edit FHR 'f017' - edit HR '017' - task jgfs_post_f018 - trigger ./jgfs_post_manager:release_post018 - edit FHRGRP '019' - edit FHRLST 'f018' - edit FHR 'f018' - edit HR '018' - task jgfs_post_f019 - trigger ./jgfs_post_manager:release_post019 - edit FHRGRP '020' - edit FHRLST 'f019' - edit FHR 'f019' - edit HR '019' - task jgfs_post_f020 - trigger ./jgfs_post_manager:release_post020 - edit FHRGRP '021' - edit FHRLST 'f020' - edit FHR 'f020' - edit HR '020' - task jgfs_post_f021 - trigger ./jgfs_post_manager:release_post021 - edit FHRGRP '022' - edit FHRLST 'f021' - edit FHR 'f021' - edit HR '021' - task jgfs_post_f022 - trigger ./jgfs_post_manager:release_post022 - edit FHRGRP '023' - edit FHRLST 'f022' - edit FHR 'f022' - edit HR '022' - task jgfs_post_f023 - trigger ./jgfs_post_manager:release_post023 - edit FHRGRP '024' - edit FHRLST 'f023' - edit FHR 'f023' - edit HR '023' - task jgfs_post_f024 - trigger ./jgfs_post_manager:release_post024 - edit FHRGRP '025' - edit FHRLST 'f024' - edit FHR 'f024' - edit HR '024' - task jgfs_post_f025 - trigger ./jgfs_post_manager:release_post025 - edit FHRGRP '026' - edit FHRLST 'f025' - edit FHR 'f025' - edit HR '025' - task jgfs_post_f026 - trigger ./jgfs_post_manager:release_post026 - edit FHRGRP '027' - edit FHRLST 'f026' - edit FHR 'f026' - edit HR '026' - task jgfs_post_f027 - trigger ./jgfs_post_manager:release_post027 - edit FHRGRP '028' - edit FHRLST 'f027' - edit FHR 'f027' - edit HR '027' - task jgfs_post_f028 - trigger ./jgfs_post_manager:release_post028 - edit FHRGRP '029' - edit FHRLST 'f028' - edit FHR 'f028' - edit HR '028' - task jgfs_post_f029 - trigger ./jgfs_post_manager:release_post029 - edit FHRGRP '030' - edit FHRLST 'f029' - edit FHR 'f029' - edit HR '029' - task jgfs_post_f030 - trigger ./jgfs_post_manager:release_post030 - edit FHRGRP '031' - edit FHRLST 'f030' - edit FHR 'f030' - edit HR '030' - task jgfs_post_f031 - trigger ./jgfs_post_manager:release_post031 - edit FHRGRP '032' - edit FHRLST 'f031' - edit FHR 'f031' - edit HR '031' - task jgfs_post_f032 - trigger ./jgfs_post_manager:release_post032 - edit FHRGRP '033' - edit FHRLST 'f032' - edit FHR 'f032' - edit HR '032' - task jgfs_post_f033 - trigger ./jgfs_post_manager:release_post033 - edit FHRGRP '034' - edit FHRLST 'f033' - edit FHR 'f033' - edit HR '033' - task jgfs_post_f034 - trigger ./jgfs_post_manager:release_post034 - edit FHRGRP '035' - edit FHRLST 'f034' - edit FHR 'f034' - edit HR '034' - task jgfs_post_f035 - trigger ./jgfs_post_manager:release_post035 - edit FHRGRP '036' - edit FHRLST 'f035' - edit FHR 'f035' - edit HR '035' - task jgfs_post_f036 - trigger ./jgfs_post_manager:release_post036 - edit FHRGRP '037' - edit FHRLST 'f036' - edit FHR 'f036' - edit HR '036' - task jgfs_post_f037 - trigger ./jgfs_post_manager:release_post037 - edit FHRGRP '038' - edit FHRLST 'f037' - edit FHR 'f037' - edit HR '037' - task jgfs_post_f038 - trigger ./jgfs_post_manager:release_post038 - edit FHRGRP '039' - edit FHRLST 'f038' - edit FHR 'f038' - edit HR '038' - task jgfs_post_f039 - trigger ./jgfs_post_manager:release_post039 - edit FHRGRP '040' - edit FHRLST 'f039' - edit FHR 'f039' - edit HR '039' - task jgfs_post_f040 - trigger ./jgfs_post_manager:release_post040 - edit FHRGRP '041' - edit FHRLST 'f040' - edit FHR 'f040' - edit HR '040' - task jgfs_post_f041 - trigger ./jgfs_post_manager:release_post041 - edit FHRGRP '042' - edit FHRLST 'f041' - edit FHR 'f041' - edit HR '041' - task jgfs_post_f042 - trigger ./jgfs_post_manager:release_post042 - edit FHRGRP '043' - edit FHRLST 'f042' - edit FHR 'f042' - edit HR '042' - task jgfs_post_f043 - trigger ./jgfs_post_manager:release_post043 - edit FHRGRP '044' - edit FHRLST 'f043' - edit FHR 'f043' - edit HR '043' - task jgfs_post_f044 - trigger ./jgfs_post_manager:release_post044 - edit FHRGRP '045' - edit FHRLST 'f044' - edit FHR 'f044' - edit HR '044' - task jgfs_post_f045 - trigger ./jgfs_post_manager:release_post045 - edit FHRGRP '046' - edit FHRLST 'f045' - edit FHR 'f045' - edit HR '045' - task jgfs_post_f046 - trigger ./jgfs_post_manager:release_post046 - edit FHRGRP '047' - edit FHRLST 'f046' - edit FHR 'f046' - edit HR '046' - task jgfs_post_f047 - trigger ./jgfs_post_manager:release_post047 - edit FHRGRP '048' - edit FHRLST 'f047' - edit FHR 'f047' - edit HR '047' - task jgfs_post_f048 - trigger ./jgfs_post_manager:release_post048 - edit FHRGRP '049' - edit FHRLST 'f048' - edit FHR 'f048' - edit HR '048' - task jgfs_post_f049 - trigger ./jgfs_post_manager:release_post049 - edit FHRGRP '050' - edit FHRLST 'f049' - edit FHR 'f049' - edit HR '049' - task jgfs_post_f050 - trigger ./jgfs_post_manager:release_post050 - edit FHRGRP '051' - edit FHRLST 'f050' - edit FHR 'f050' - edit HR '050' - task jgfs_post_f051 - trigger ./jgfs_post_manager:release_post051 - edit FHRGRP '052' - edit FHRLST 'f051' - edit FHR 'f051' - edit HR '051' - task jgfs_post_f052 - trigger ./jgfs_post_manager:release_post052 - edit FHRGRP '053' - edit FHRLST 'f052' - edit FHR 'f052' - edit HR '052' - task jgfs_post_f053 - trigger ./jgfs_post_manager:release_post053 - edit FHRGRP '054' - edit FHRLST 'f053' - edit FHR 'f053' - edit HR '053' - task jgfs_post_f054 - trigger ./jgfs_post_manager:release_post054 - edit FHRGRP '055' - edit FHRLST 'f054' - edit FHR 'f054' - edit HR '054' - task jgfs_post_f055 - trigger ./jgfs_post_manager:release_post055 - edit FHRGRP '056' - edit FHRLST 'f055' - edit FHR 'f055' - edit HR '055' - task jgfs_post_f056 - trigger ./jgfs_post_manager:release_post056 - edit FHRGRP '057' - edit FHRLST 'f056' - edit FHR 'f056' - edit HR '056' - task jgfs_post_f057 - trigger ./jgfs_post_manager:release_post057 - edit FHRGRP '058' - edit FHRLST 'f057' - edit FHR 'f057' - edit HR '057' - task jgfs_post_f058 - trigger ./jgfs_post_manager:release_post058 - edit FHRGRP '059' - edit FHRLST 'f058' - edit FHR 'f058' - edit HR '058' - task jgfs_post_f059 - trigger ./jgfs_post_manager:release_post059 - edit FHRGRP '060' - edit FHRLST 'f059' - edit FHR 'f059' - edit HR '059' - task jgfs_post_f060 - trigger ./jgfs_post_manager:release_post060 - edit FHRGRP '061' - edit FHRLST 'f060' - edit FHR 'f060' - edit HR '060' - task jgfs_post_f061 - trigger ./jgfs_post_manager:release_post061 - edit FHRGRP '062' - edit FHRLST 'f061' - edit FHR 'f061' - edit HR '061' - task jgfs_post_f062 - trigger ./jgfs_post_manager:release_post062 - edit FHRGRP '063' - edit FHRLST 'f062' - edit FHR 'f062' - edit HR '062' - task jgfs_post_f063 - trigger ./jgfs_post_manager:release_post063 - edit FHRGRP '064' - edit FHRLST 'f063' - edit FHR 'f063' - edit HR '063' - task jgfs_post_f064 - trigger ./jgfs_post_manager:release_post064 - edit FHRGRP '065' - edit FHRLST 'f064' - edit FHR 'f064' - edit HR '064' - task jgfs_post_f065 - trigger ./jgfs_post_manager:release_post065 - edit FHRGRP '066' - edit FHRLST 'f065' - edit FHR 'f065' - edit HR '065' - task jgfs_post_f066 - trigger ./jgfs_post_manager:release_post066 - edit FHRGRP '067' - edit FHRLST 'f066' - edit FHR 'f066' - edit HR '066' - task jgfs_post_f067 - trigger ./jgfs_post_manager:release_post067 - edit FHRGRP '068' - edit FHRLST 'f067' - edit FHR 'f067' - edit HR '067' - task jgfs_post_f068 - trigger ./jgfs_post_manager:release_post068 - edit FHRGRP '069' - edit FHRLST 'f068' - edit FHR 'f068' - edit HR '068' - task jgfs_post_f069 - trigger ./jgfs_post_manager:release_post069 - edit FHRGRP '070' - edit FHRLST 'f069' - edit FHR 'f069' - edit HR '069' - task jgfs_post_f070 - trigger ./jgfs_post_manager:release_post070 - edit FHRGRP '071' - edit FHRLST 'f070' - edit FHR 'f070' - edit HR '070' - task jgfs_post_f071 - trigger ./jgfs_post_manager:release_post071 - edit FHRGRP '072' - edit FHRLST 'f071' - edit FHR 'f071' - edit HR '071' - task jgfs_post_f072 - trigger ./jgfs_post_manager:release_post072 - edit FHRGRP '073' - edit FHRLST 'f072' - edit FHR 'f072' - edit HR '072' - task jgfs_post_f073 - trigger ./jgfs_post_manager:release_post073 - edit FHRGRP '074' - edit FHRLST 'f073' - edit FHR 'f073' - edit HR '073' - task jgfs_post_f074 - trigger ./jgfs_post_manager:release_post074 - edit FHRGRP '075' - edit FHRLST 'f074' - edit FHR 'f074' - edit HR '074' - task jgfs_post_f075 - trigger ./jgfs_post_manager:release_post075 - edit FHRGRP '076' - edit FHRLST 'f075' - edit FHR 'f075' - edit HR '075' - task jgfs_post_f076 - trigger ./jgfs_post_manager:release_post076 - edit FHRGRP '077' - edit FHRLST 'f076' - edit FHR 'f076' - edit HR '076' - task jgfs_post_f077 - trigger ./jgfs_post_manager:release_post077 - edit FHRGRP '078' - edit FHRLST 'f077' - edit FHR 'f077' - edit HR '077' - task jgfs_post_f078 - trigger ./jgfs_post_manager:release_post078 - edit FHRGRP '079' - edit FHRLST 'f078' - edit FHR 'f078' - edit HR '078' - task jgfs_post_f079 - trigger ./jgfs_post_manager:release_post079 - edit FHRGRP '080' - edit FHRLST 'f079' - edit FHR 'f079' - edit HR '079' - task jgfs_post_f080 - trigger ./jgfs_post_manager:release_post080 - edit FHRGRP '081' - edit FHRLST 'f080' - edit FHR 'f080' - edit HR '080' - task jgfs_post_f081 - trigger ./jgfs_post_manager:release_post081 - edit FHRGRP '082' - edit FHRLST 'f081' - edit FHR 'f081' - edit HR '081' - task jgfs_post_f082 - trigger ./jgfs_post_manager:release_post082 - edit FHRGRP '083' - edit FHRLST 'f082' - edit FHR 'f082' - edit HR '082' - task jgfs_post_f083 - trigger ./jgfs_post_manager:release_post083 - edit FHRGRP '084' - edit FHRLST 'f083' - edit FHR 'f083' - edit HR '083' - task jgfs_post_f084 - trigger ./jgfs_post_manager:release_post084 - edit FHRGRP '085' - edit FHRLST 'f084' - edit FHR 'f084' - edit HR '084' - task jgfs_post_f085 - trigger ./jgfs_post_manager:release_post085 - edit FHRGRP '086' - edit FHRLST 'f085' - edit FHR 'f085' - edit HR '085' - task jgfs_post_f086 - trigger ./jgfs_post_manager:release_post086 - edit FHRGRP '087' - edit FHRLST 'f086' - edit FHR 'f086' - edit HR '086' - task jgfs_post_f087 - trigger ./jgfs_post_manager:release_post087 - edit FHRGRP '088' - edit FHRLST 'f087' - edit FHR 'f087' - edit HR '087' - task jgfs_post_f088 - trigger ./jgfs_post_manager:release_post088 - edit FHRGRP '089' - edit FHRLST 'f088' - edit FHR 'f088' - edit HR '088' - task jgfs_post_f089 - trigger ./jgfs_post_manager:release_post089 - edit FHRGRP '090' - edit FHRLST 'f089' - edit FHR 'f089' - edit HR '089' - task jgfs_post_f090 - trigger ./jgfs_post_manager:release_post090 - edit FHRGRP '091' - edit FHRLST 'f090' - edit FHR 'f090' - edit HR '090' - task jgfs_post_f091 - trigger ./jgfs_post_manager:release_post091 - edit FHRGRP '092' - edit FHRLST 'f091' - edit FHR 'f091' - edit HR '091' - task jgfs_post_f092 - trigger ./jgfs_post_manager:release_post092 - edit FHRGRP '093' - edit FHRLST 'f092' - edit FHR 'f092' - edit HR '092' - task jgfs_post_f093 - trigger ./jgfs_post_manager:release_post093 - edit FHRGRP '094' - edit FHRLST 'f093' - edit FHR 'f093' - edit HR '093' - task jgfs_post_f094 - trigger ./jgfs_post_manager:release_post094 - edit FHRGRP '095' - edit FHRLST 'f094' - edit FHR 'f094' - edit HR '094' - task jgfs_post_f095 - trigger ./jgfs_post_manager:release_post095 - edit FHRGRP '096' - edit FHRLST 'f095' - edit FHR 'f095' - edit HR '095' - task jgfs_post_f096 - trigger ./jgfs_post_manager:release_post096 - edit FHRGRP '097' - edit FHRLST 'f096' - edit FHR 'f096' - edit HR '096' - task jgfs_post_f097 - trigger ./jgfs_post_manager:release_post097 - edit FHRGRP '098' - edit FHRLST 'f097' - edit FHR 'f097' - edit HR '097' - task jgfs_post_f098 - trigger ./jgfs_post_manager:release_post098 - edit FHRGRP '099' - edit FHRLST 'f098' - edit FHR 'f098' - edit HR '098' - task jgfs_post_f099 - trigger ./jgfs_post_manager:release_post099 - edit FHRGRP '100' - edit FHRLST 'f099' - edit FHR 'f099' - edit HR '099' - task jgfs_post_f100 - trigger ./jgfs_post_manager:release_post100 - edit FHRGRP '101' - edit FHRLST 'f100' - edit FHR 'f100' - edit HR '100' - task jgfs_post_f101 - trigger ./jgfs_post_manager:release_post101 - edit FHRGRP '102' - edit FHRLST 'f101' - edit FHR 'f101' - edit HR '101' - task jgfs_post_f102 - trigger ./jgfs_post_manager:release_post102 - edit FHRGRP '103' - edit FHRLST 'f102' - edit FHR 'f102' - edit HR '102' - task jgfs_post_f103 - trigger ./jgfs_post_manager:release_post103 - edit FHRGRP '104' - edit FHRLST 'f103' - edit FHR 'f103' - edit HR '103' - task jgfs_post_f104 - trigger ./jgfs_post_manager:release_post104 - edit FHRGRP '105' - edit FHRLST 'f104' - edit FHR 'f104' - edit HR '104' - task jgfs_post_f105 - trigger ./jgfs_post_manager:release_post105 - edit FHRGRP '106' - edit FHRLST 'f105' - edit FHR 'f105' - edit HR '105' - task jgfs_post_f106 - trigger ./jgfs_post_manager:release_post106 - edit FHRGRP '107' - edit FHRLST 'f106' - edit FHR 'f106' - edit HR '106' - task jgfs_post_f107 - trigger ./jgfs_post_manager:release_post107 - edit FHRGRP '108' - edit FHRLST 'f107' - edit FHR 'f107' - edit HR '107' - task jgfs_post_f108 - trigger ./jgfs_post_manager:release_post108 - edit FHRGRP '109' - edit FHRLST 'f108' - edit FHR 'f108' - edit HR '108' - task jgfs_post_f109 - trigger ./jgfs_post_manager:release_post109 - edit FHRGRP '110' - edit FHRLST 'f109' - edit FHR 'f109' - edit HR '109' - task jgfs_post_f110 - trigger ./jgfs_post_manager:release_post110 - edit FHRGRP '111' - edit FHRLST 'f110' - edit FHR 'f110' - edit HR '110' - task jgfs_post_f111 - trigger ./jgfs_post_manager:release_post111 - edit FHRGRP '112' - edit FHRLST 'f111' - edit FHR 'f111' - edit HR '111' - task jgfs_post_f112 - trigger ./jgfs_post_manager:release_post112 - edit FHRGRP '113' - edit FHRLST 'f112' - edit FHR 'f112' - edit HR '112' - task jgfs_post_f113 - trigger ./jgfs_post_manager:release_post113 - edit FHRGRP '114' - edit FHRLST 'f113' - edit FHR 'f113' - edit HR '113' - task jgfs_post_f114 - trigger ./jgfs_post_manager:release_post114 - edit FHRGRP '115' - edit FHRLST 'f114' - edit FHR 'f114' - edit HR '114' - task jgfs_post_f115 - trigger ./jgfs_post_manager:release_post115 - edit FHRGRP '116' - edit FHRLST 'f115' - edit FHR 'f115' - edit HR '115' - task jgfs_post_f116 - trigger ./jgfs_post_manager:release_post116 - edit FHRGRP '117' - edit FHRLST 'f116' - edit FHR 'f116' - edit HR '116' - task jgfs_post_f117 - trigger ./jgfs_post_manager:release_post117 - edit FHRGRP '118' - edit FHRLST 'f117' - edit FHR 'f117' - edit HR '117' - task jgfs_post_f118 - trigger ./jgfs_post_manager:release_post118 - edit FHRGRP '119' - edit FHRLST 'f118' - edit FHR 'f118' - edit HR '118' - task jgfs_post_f119 - trigger ./jgfs_post_manager:release_post119 - edit FHRGRP '120' - edit FHRLST 'f119' - edit FHR 'f119' - edit HR '119' - task jgfs_post_f120 - trigger ./jgfs_post_manager:release_post120 - edit FHRGRP '121' - edit FHRLST 'f120' - edit FHR 'f120' - edit HR '120' - task jgfs_post_f123 - trigger ./jgfs_post_manager:release_post123 - edit FHRGRP '122' - edit FHRLST 'f123' - edit FHR 'f123' - edit HR '123' - task jgfs_post_f126 - trigger ./jgfs_post_manager:release_post126 - edit FHRGRP '123' - edit FHRLST 'f126' - edit FHR 'f126' - edit HR '126' - task jgfs_post_f129 - trigger ./jgfs_post_manager:release_post129 - edit FHRGRP '124' - edit FHRLST 'f129' - edit FHR 'f129' - edit HR '129' - task jgfs_post_f132 - trigger ./jgfs_post_manager:release_post132 - edit FHRGRP '125' - edit FHRLST 'f132' - edit FHR 'f132' - edit HR '132' - task jgfs_post_f135 - trigger ./jgfs_post_manager:release_post135 - edit FHRGRP '126' - edit FHRLST 'f135' - edit FHR 'f135' - edit HR '135' - task jgfs_post_f138 - trigger ./jgfs_post_manager:release_post138 - edit FHRGRP '127' - edit FHRLST 'f138' - edit FHR 'f138' - edit HR '138' - task jgfs_post_f141 - trigger ./jgfs_post_manager:release_post141 - edit FHRGRP '128' - edit FHRLST 'f141' - edit FHR 'f141' - edit HR '141' - task jgfs_post_f144 - trigger ./jgfs_post_manager:release_post144 - edit FHRGRP '129' - edit FHRLST 'f144' - edit FHR 'f144' - edit HR '144' - task jgfs_post_f147 - trigger ./jgfs_post_manager:release_post147 - edit FHRGRP '130' - edit FHRLST 'f147' - edit FHR 'f147' - edit HR '147' - task jgfs_post_f150 - trigger ./jgfs_post_manager:release_post150 - edit FHRGRP '131' - edit FHRLST 'f150' - edit FHR 'f150' - edit HR '150' - task jgfs_post_f153 - trigger ./jgfs_post_manager:release_post153 - edit FHRGRP '132' - edit FHRLST 'f153' - edit FHR 'f153' - edit HR '153' - task jgfs_post_f156 - trigger ./jgfs_post_manager:release_post156 - edit FHRGRP '133' - edit FHRLST 'f156' - edit FHR 'f156' - edit HR '156' - task jgfs_post_f159 - trigger ./jgfs_post_manager:release_post159 - edit FHRGRP '134' - edit FHRLST 'f159' - edit FHR 'f159' - edit HR '159' - task jgfs_post_f162 - trigger ./jgfs_post_manager:release_post162 - edit FHRGRP '135' - edit FHRLST 'f162' - edit FHR 'f162' - edit HR '162' - task jgfs_post_f165 - trigger ./jgfs_post_manager:release_post165 - edit FHRGRP '136' - edit FHRLST 'f165' - edit FHR 'f165' - edit HR '165' - task jgfs_post_f168 - trigger ./jgfs_post_manager:release_post168 - edit FHRGRP '137' - edit FHRLST 'f168' - edit FHR 'f168' - edit HR '168' - task jgfs_post_f171 - trigger ./jgfs_post_manager:release_post171 - edit FHRGRP '138' - edit FHRLST 'f171' - edit FHR 'f171' - edit HR '171' - task jgfs_post_f174 - trigger ./jgfs_post_manager:release_post174 - edit FHRGRP '139' - edit FHRLST 'f174' - edit FHR 'f174' - edit HR '174' - task jgfs_post_f177 - trigger ./jgfs_post_manager:release_post177 - edit FHRGRP '140' - edit FHRLST 'f177' - edit FHR 'f177' - edit HR '177' - task jgfs_post_f180 - trigger ./jgfs_post_manager:release_post180 - edit FHRGRP '141' - edit FHRLST 'f180' - edit FHR 'f180' - edit HR '180' - task jgfs_post_f183 - trigger ./jgfs_post_manager:release_post183 - edit FHRGRP '142' - edit FHRLST 'f183' - edit FHR 'f183' - edit HR '183' - task jgfs_post_f186 - trigger ./jgfs_post_manager:release_post186 - edit FHRGRP '143' - edit FHRLST 'f186' - edit FHR 'f186' - edit HR '186' - task jgfs_post_f189 - trigger ./jgfs_post_manager:release_post189 - edit FHRGRP '144' - edit FHRLST 'f189' - edit FHR 'f189' - edit HR '189' - task jgfs_post_f192 - trigger ./jgfs_post_manager:release_post192 - edit FHRGRP '145' - edit FHRLST 'f192' - edit FHR 'f192' - edit HR '192' - task jgfs_post_f195 - trigger ./jgfs_post_manager:release_post195 - edit FHRGRP '146' - edit FHRLST 'f195' - edit FHR 'f195' - edit HR '195' - task jgfs_post_f198 - trigger ./jgfs_post_manager:release_post198 - edit FHRGRP '147' - edit FHRLST 'f198' - edit FHR 'f198' - edit HR '198' - task jgfs_post_f201 - trigger ./jgfs_post_manager:release_post201 - edit FHRGRP '148' - edit FHRLST 'f201' - edit FHR 'f201' - edit HR '201' - task jgfs_post_f204 - trigger ./jgfs_post_manager:release_post204 - edit FHRGRP '149' - edit FHRLST 'f204' - edit FHR 'f204' - edit HR '204' - task jgfs_post_f207 - trigger ./jgfs_post_manager:release_post207 - edit FHRGRP '150' - edit FHRLST 'f207' - edit FHR 'f207' - edit HR '207' - task jgfs_post_f210 - trigger ./jgfs_post_manager:release_post210 - edit FHRGRP '151' - edit FHRLST 'f210' - edit FHR 'f210' - edit HR '210' - task jgfs_post_f213 - trigger ./jgfs_post_manager:release_post213 - edit FHRGRP '152' - edit FHRLST 'f213' - edit FHR 'f213' - edit HR '213' - task jgfs_post_f216 - trigger ./jgfs_post_manager:release_post216 - edit FHRGRP '153' - edit FHRLST 'f216' - edit FHR 'f216' - edit HR '216' - task jgfs_post_f219 - trigger ./jgfs_post_manager:release_post219 - edit FHRGRP '154' - edit FHRLST 'f219' - edit FHR 'f219' - edit HR '219' - task jgfs_post_f222 - trigger ./jgfs_post_manager:release_post222 - edit FHRGRP '155' - edit FHRLST 'f222' - edit FHR 'f222' - edit HR '222' - task jgfs_post_f225 - trigger ./jgfs_post_manager:release_post225 - edit FHRGRP '156' - edit FHRLST 'f225' - edit FHR 'f225' - edit HR '225' - task jgfs_post_f228 - trigger ./jgfs_post_manager:release_post228 - edit FHRGRP '157' - edit FHRLST 'f228' - edit FHR 'f228' - edit HR '228' - task jgfs_post_f231 - trigger ./jgfs_post_manager:release_post231 - edit FHRGRP '158' - edit FHRLST 'f231' - edit FHR 'f231' - edit HR '231' - task jgfs_post_f234 - trigger ./jgfs_post_manager:release_post234 - edit FHRGRP '159' - edit FHRLST 'f234' - edit FHR 'f234' - edit HR '234' - task jgfs_post_f237 - trigger ./jgfs_post_manager:release_post237 - edit FHRGRP '160' - edit FHRLST 'f237' - edit FHR 'f237' - edit HR '237' - task jgfs_post_f240 - trigger ./jgfs_post_manager:release_post240 - edit FHRGRP '161' - edit FHRLST 'f240' - edit FHR 'f240' - edit HR '240' - task jgfs_post_f243 - trigger ./jgfs_post_manager:release_post243 - edit FHRGRP '162' - edit FHRLST 'f243' - edit FHR 'f243' - edit HR '243' - task jgfs_post_f246 - trigger ./jgfs_post_manager:release_post246 - edit FHRGRP '163' - edit FHRLST 'f246' - edit FHR 'f246' - edit HR '246' - task jgfs_post_f249 - trigger ./jgfs_post_manager:release_post249 - edit FHRGRP '164' - edit FHRLST 'f249' - edit FHR 'f249' - edit HR '249' - task jgfs_post_f252 - trigger ./jgfs_post_manager:release_post252 - edit FHRGRP '165' - edit FHRLST 'f252' - edit FHR 'f252' - edit HR '252' - task jgfs_post_f255 - trigger ./jgfs_post_manager:release_post255 - edit FHRGRP '166' - edit FHRLST 'f255' - edit FHR 'f255' - edit HR '255' - task jgfs_post_f258 - trigger ./jgfs_post_manager:release_post258 - edit FHRGRP '167' - edit FHRLST 'f258' - edit FHR 'f258' - edit HR '258' - task jgfs_post_f261 - trigger ./jgfs_post_manager:release_post261 - edit FHRGRP '168' - edit FHRLST 'f261' - edit FHR 'f261' - edit HR '261' - task jgfs_post_f264 - trigger ./jgfs_post_manager:release_post264 - edit FHRGRP '169' - edit FHRLST 'f264' - edit FHR 'f264' - edit HR '264' - task jgfs_post_f267 - trigger ./jgfs_post_manager:release_post267 - edit FHRGRP '170' - edit FHRLST 'f267' - edit FHR 'f267' - edit HR '267' - task jgfs_post_f270 - trigger ./jgfs_post_manager:release_post270 - edit FHRGRP '171' - edit FHRLST 'f270' - edit FHR 'f270' - edit HR '270' - task jgfs_post_f273 - trigger ./jgfs_post_manager:release_post273 - edit FHRGRP '172' - edit FHRLST 'f273' - edit FHR 'f273' - edit HR '273' - task jgfs_post_f276 - trigger ./jgfs_post_manager:release_post276 - edit FHRGRP '173' - edit FHRLST 'f276' - edit FHR 'f276' - edit HR '276' - task jgfs_post_f279 - trigger ./jgfs_post_manager:release_post279 - edit FHRGRP '174' - edit FHRLST 'f279' - edit FHR 'f279' - edit HR '279' - task jgfs_post_f282 - trigger ./jgfs_post_manager:release_post282 - edit FHRGRP '175' - edit FHRLST 'f282' - edit FHR 'f282' - edit HR '282' - task jgfs_post_f285 - trigger ./jgfs_post_manager:release_post285 - edit FHRGRP '176' - edit FHRLST 'f285' - edit FHR 'f285' - edit HR '285' - task jgfs_post_f288 - trigger ./jgfs_post_manager:release_post288 - edit FHRGRP '177' - edit FHRLST 'f288' - edit FHR 'f288' - edit HR '288' - task jgfs_post_f291 - trigger ./jgfs_post_manager:release_post291 - edit FHRGRP '178' - edit FHRLST 'f291' - edit FHR 'f291' - edit HR '291' - task jgfs_post_f294 - trigger ./jgfs_post_manager:release_post294 - edit FHRGRP '179' - edit FHRLST 'f294' - edit FHR 'f294' - edit HR '294' - task jgfs_post_f297 - trigger ./jgfs_post_manager:release_post297 - edit FHRGRP '180' - edit FHRLST 'f297' - edit FHR 'f297' - edit HR '297' - task jgfs_post_f300 - trigger ./jgfs_post_manager:release_post300 - edit FHRGRP '181' - edit FHRLST 'f300' - edit FHR 'f300' - edit HR '300' - task jgfs_post_f303 - trigger ./jgfs_post_manager:release_post303 - edit FHRGRP '182' - edit FHRLST 'f303' - edit FHR 'f303' - edit HR '303' - task jgfs_post_f306 - trigger ./jgfs_post_manager:release_post306 - edit FHRGRP '183' - edit FHRLST 'f306' - edit FHR 'f306' - edit HR '306' - task jgfs_post_f309 - trigger ./jgfs_post_manager:release_post309 - edit FHRGRP '184' - edit FHRLST 'f309' - edit FHR 'f309' - edit HR '309' - task jgfs_post_f312 - trigger ./jgfs_post_manager:release_post312 - edit FHRGRP '185' - edit FHRLST 'f312' - edit FHR 'f312' - edit HR '312' - task jgfs_post_f315 - trigger ./jgfs_post_manager:release_post315 - edit FHRGRP '186' - edit FHRLST 'f315' - edit FHR 'f315' - edit HR '315' - task jgfs_post_f318 - trigger ./jgfs_post_manager:release_post318 - edit FHRGRP '187' - edit FHRLST 'f318' - edit FHR 'f318' - edit HR '318' - task jgfs_post_f321 - trigger ./jgfs_post_manager:release_post321 - edit FHRGRP '188' - edit FHRLST 'f321' - edit FHR 'f321' - edit HR '321' - task jgfs_post_f324 - trigger ./jgfs_post_manager:release_post324 - edit FHRGRP '189' - edit FHRLST 'f324' - edit FHR 'f324' - edit HR '324' - task jgfs_post_f327 - trigger ./jgfs_post_manager:release_post327 - edit FHRGRP '190' - edit FHRLST 'f327' - edit FHR 'f327' - edit HR '327' - task jgfs_post_f330 - trigger ./jgfs_post_manager:release_post330 - edit FHRGRP '191' - edit FHRLST 'f330' - edit FHR 'f330' - edit HR '330' - task jgfs_post_f333 - trigger ./jgfs_post_manager:release_post333 - edit FHRGRP '192' - edit FHRLST 'f333' - edit FHR 'f333' - edit HR '333' - task jgfs_post_f336 - trigger ./jgfs_post_manager:release_post336 - edit FHRGRP '193' - edit FHRLST 'f336' - edit FHR 'f336' - edit HR '336' - task jgfs_post_f339 - trigger ./jgfs_post_manager:release_post339 - edit FHRGRP '194' - edit FHRLST 'f339' - edit FHR 'f339' - edit HR '339' - task jgfs_post_f342 - trigger ./jgfs_post_manager:release_post342 - edit FHRGRP '195' - edit FHRLST 'f342' - edit FHR 'f342' - edit HR '342' - task jgfs_post_f345 - trigger ./jgfs_post_manager:release_post345 - edit FHRGRP '196' - edit FHRLST 'f345' - edit FHR 'f345' - edit HR '345' - task jgfs_post_f348 - trigger ./jgfs_post_manager:release_post348 - edit FHRGRP '197' - edit FHRLST 'f348' - edit FHR 'f348' - edit HR '348' - task jgfs_post_f351 - trigger ./jgfs_post_manager:release_post351 - edit FHRGRP '198' - edit FHRLST 'f351' - edit FHR 'f351' - edit HR '351' - task jgfs_post_f354 - trigger ./jgfs_post_manager:release_post354 - edit FHRGRP '199' - edit FHRLST 'f354' - edit FHR 'f354' - edit HR '354' - task jgfs_post_f357 - trigger ./jgfs_post_manager:release_post357 - edit FHRGRP '200' - edit FHRLST 'f357' - edit FHR 'f357' - edit HR '357' - task jgfs_post_f360 - trigger ./jgfs_post_manager:release_post360 - edit FHRGRP '201' - edit FHRLST 'f360' - edit FHR 'f360' - edit HR '360' - task jgfs_post_f363 - trigger ./jgfs_post_manager:release_post363 - edit FHRGRP '202' - edit FHRLST 'f363' - edit FHR 'f363' - edit HR '363' - task jgfs_post_f366 - trigger ./jgfs_post_manager:release_post366 - edit FHRGRP '203' - edit FHRLST 'f366' - edit FHR 'f366' - edit HR '366' - task jgfs_post_f369 - trigger ./jgfs_post_manager:release_post369 - edit FHRGRP '204' - edit FHRLST 'f369' - edit FHR 'f369' - edit HR '369' - task jgfs_post_f372 - trigger ./jgfs_post_manager:release_post372 - edit FHRGRP '205' - edit FHRLST 'f372' - edit FHR 'f372' - edit HR '372' - task jgfs_post_f375 - trigger ./jgfs_post_manager:release_post375 - edit FHRGRP '206' - edit FHRLST 'f375' - edit FHR 'f375' - edit HR '375' - task jgfs_post_f378 - trigger ./jgfs_post_manager:release_post378 - edit FHRGRP '207' - edit FHRLST 'f378' - edit FHR 'f378' - edit HR '378' - task jgfs_post_f381 - trigger ./jgfs_post_manager:release_post381 - edit FHRGRP '208' - edit FHRLST 'f381' - edit FHR 'f381' - edit HR '381' - task jgfs_post_f384 - trigger ./jgfs_post_manager:release_post384 - edit FHRGRP '209' - edit FHRLST 'f384' - edit FHR 'f384' - edit HR '384' - endfamily - family post_processing - task jgfs_wafs_gcip - trigger ../post/jgfs_post_f003 == complete - time 22:40 - family grib_wafs - task jgfs_wafs_f00 - trigger ../../post/jgfs_post_f000 == complete and ../../post/jgfs_post_f120 == complete and ../grib2_wafs/jgfs_wafs_grib2 == complete - edit FCSTHR '00' - task jgfs_wafs_f06 - trigger ../../post/jgfs_post_f006 == complete and ./jgfs_wafs_f00 == complete - edit FCSTHR '06' - task jgfs_wafs_f12 - trigger ../../post/jgfs_post_f012 == complete and ./jgfs_wafs_f06 == complete - edit FCSTHR '12' - task jgfs_wafs_f18 - trigger ../../post/jgfs_post_f018 == complete and ./jgfs_wafs_f12 == complete - edit FCSTHR '18' - task jgfs_wafs_f24 - trigger ../../post/jgfs_post_f024 == complete and ./jgfs_wafs_f18 == complete - edit FCSTHR '24' - task jgfs_wafs_f30 - trigger ../../post/jgfs_post_f030 == complete and ./jgfs_wafs_f24 == complete - edit FCSTHR '30' - task jgfs_wafs_f36 - trigger ../../post/jgfs_post_f036 == complete and ./jgfs_wafs_f30 == complete - edit FCSTHR '36' - task jgfs_wafs_f42 - trigger ../../post/jgfs_post_f042 == complete and ./jgfs_wafs_f36 == complete - edit FCSTHR '42' - task jgfs_wafs_f48 - trigger ../../post/jgfs_post_f048 == complete and ./jgfs_wafs_f42 == complete - edit FCSTHR '48' - task jgfs_wafs_f54 - trigger ../../post/jgfs_post_f054 == complete and ./jgfs_wafs_f48 == complete - edit FCSTHR '54' - task jgfs_wafs_f60 - trigger ../../post/jgfs_post_f060 == complete and ./jgfs_wafs_f54 == complete - edit FCSTHR '60' - task jgfs_wafs_f66 - trigger ../../post/jgfs_post_f066 == complete and ./jgfs_wafs_f60 == complete - edit FCSTHR '66' - task jgfs_wafs_f72 - trigger ../../post/jgfs_post_f072 == complete and ./jgfs_wafs_f66 == complete - edit FCSTHR '72' - task jgfs_wafs_f78 - trigger ../../post/jgfs_post_f078 == complete and ./jgfs_wafs_f72 == complete - edit FCSTHR '78' - task jgfs_wafs_f84 - trigger ../../post/jgfs_post_f084 == complete and ./jgfs_wafs_f78 == complete - edit FCSTHR '84' - task jgfs_wafs_f90 - trigger ../../post/jgfs_post_f090 == complete and ./jgfs_wafs_f84 == complete - edit FCSTHR '90' - task jgfs_wafs_f96 - trigger ../../post/jgfs_post_f096 == complete and ./jgfs_wafs_f90 == complete - edit FCSTHR '96' - task jgfs_wafs_f102 - trigger ../../post/jgfs_post_f102 == complete and ./jgfs_wafs_f96 == complete - edit FCSTHR '102' - task jgfs_wafs_f108 - trigger ../../post/jgfs_post_f108 == complete and ./jgfs_wafs_f102 == complete - edit FCSTHR '108' - task jgfs_wafs_f114 - trigger ../../post/jgfs_post_f114 == complete and ./jgfs_wafs_f108 == complete - edit FCSTHR '114' - task jgfs_wafs_f120 - trigger ../../post/jgfs_post_f120 == complete and ./jgfs_wafs_f114 == complete - edit FCSTHR '120' - endfamily - family bufr_sounding - task jgfs_postsnd - trigger ../../post/jgfs_post_manager:release_post000 - endfamily - family bulletins - task jgfs_fbwind - trigger ../../post/jgfs_post_f006 == complete and ../../post/jgfs_post_f012 == complete and ../../post/jgfs_post_f024 == complete - endfamily - family grib2_wafs - task jgfs_wafs_grib2 - trigger ../../post/jgfs_post_f000 == complete - task jgfs_wafs_blending - trigger ./jgfs_wafs_grib2 == complete - time 22:40 - endfamily - family awips_20km_1p0 - task jgfs_awips_f000 - trigger ../../post/jgfs_post_f000 == complete - edit FHRGRP '000' - edit FHRLST 'f000' - edit FCSTHR '000' - edit TRDRUN 'YES' - task jgfs_awips_f003 - trigger ../../post/jgfs_post_f003 == complete - edit FHRGRP '003' - edit FHRLST 'f003' - edit FCSTHR '003' - edit TRDRUN 'NO' - task jgfs_awips_f006 - trigger ../../post/jgfs_post_f006 == complete - edit FHRGRP '006' - edit FHRLST 'f006' - edit FCSTHR '006' - edit TRDRUN 'YES' - task jgfs_awips_f009 - trigger ../../post/jgfs_post_f009 == complete - edit FHRGRP '009' - edit FHRLST 'f009' - edit FCSTHR '009' - edit TRDRUN 'NO' - task jgfs_awips_f012 - trigger ../../post/jgfs_post_f012 == complete - edit FHRGRP '012' - edit FHRLST 'f012' - edit FCSTHR '012' - edit TRDRUN 'YES' - task jgfs_awips_f015 - trigger ../../post/jgfs_post_f015 == complete - edit FHRGRP '015' - edit FHRLST 'f015' - edit FCSTHR '015' - edit TRDRUN 'NO' - task jgfs_awips_f018 - trigger ../../post/jgfs_post_f018 == complete - edit FHRGRP '018' - edit FHRLST 'f018' - edit FCSTHR '018' - edit TRDRUN 'YES' - task jgfs_awips_f021 - trigger ../../post/jgfs_post_f021 == complete - edit FHRGRP '021' - edit FHRLST 'f021' - edit FCSTHR '021' - edit TRDRUN 'NO' - task jgfs_awips_f024 - trigger ../../post/jgfs_post_f024 == complete - edit FHRGRP '024' - edit FHRLST 'f024' - edit FCSTHR '024' - edit TRDRUN 'YES' - task jgfs_awips_f027 - trigger ../../post/jgfs_post_f027 == complete - edit FHRGRP '027' - edit FHRLST 'f027' - edit FCSTHR '027' - edit TRDRUN 'NO' - task jgfs_awips_f030 - trigger ../../post/jgfs_post_f030 == complete - edit FHRGRP '030' - edit FHRLST 'f030' - edit FCSTHR '030' - edit TRDRUN 'YES' - task jgfs_awips_f033 - trigger ../../post/jgfs_post_f033 == complete - edit FHRGRP '033' - edit FHRLST 'f033' - edit FCSTHR '033' - edit TRDRUN 'NO' - task jgfs_awips_f036 - trigger ../../post/jgfs_post_f036 == complete - edit FHRGRP '036' - edit FHRLST 'f036' - edit FCSTHR '036' - edit TRDRUN 'YES' - task jgfs_awips_f039 - trigger ../../post/jgfs_post_f039 == complete - edit FHRGRP '039' - edit FHRLST 'f039' - edit FCSTHR '039' - edit TRDRUN 'NO' - task jgfs_awips_f042 - trigger ../../post/jgfs_post_f042 == complete - edit FHRGRP '042' - edit FHRLST 'f042' - edit FCSTHR '042' - edit TRDRUN 'YES' - task jgfs_awips_f045 - trigger ../../post/jgfs_post_f045 == complete - edit FHRGRP '045' - edit FHRLST 'f045' - edit FCSTHR '045' - edit TRDRUN 'NO' - task jgfs_awips_f048 - trigger ../../post/jgfs_post_f048 == complete - edit FHRGRP '048' - edit FHRLST 'f048' - edit FCSTHR '048' - edit TRDRUN 'YES' - task jgfs_awips_f051 - trigger ../../post/jgfs_post_f051 == complete - edit FHRGRP '051' - edit FHRLST 'f051' - edit FCSTHR '051' - edit TRDRUN 'NO' - task jgfs_awips_f054 - trigger ../../post/jgfs_post_f054 == complete - edit FHRGRP '054' - edit FHRLST 'f054' - edit FCSTHR '054' - edit TRDRUN 'YES' - task jgfs_awips_f057 - trigger ../../post/jgfs_post_f057 == complete - edit FHRGRP '057' - edit FHRLST 'f057' - edit FCSTHR '057' - edit TRDRUN 'NO' - task jgfs_awips_f060 - trigger ../../post/jgfs_post_f060 == complete - edit FHRGRP '060' - edit FHRLST 'f060' - edit FCSTHR '060' - edit TRDRUN 'YES' - task jgfs_awips_f063 - trigger ../../post/jgfs_post_f063 == complete - edit FHRGRP '063' - edit FHRLST 'f063' - edit FCSTHR '063' - edit TRDRUN 'NO' - task jgfs_awips_f066 - trigger ../../post/jgfs_post_f066 == complete - edit FHRGRP '066' - edit FHRLST 'f066' - edit FCSTHR '066' - edit TRDRUN 'YES' - task jgfs_awips_f069 - trigger ../../post/jgfs_post_f069 == complete - edit FHRGRP '069' - edit FHRLST 'f069' - edit FCSTHR '069' - edit TRDRUN 'NO' - task jgfs_awips_f072 - trigger ../../post/jgfs_post_f072 == complete - edit FHRGRP '072' - edit FHRLST 'f072' - edit FCSTHR '072' - edit TRDRUN 'YES' - task jgfs_awips_f075 - trigger ../../post/jgfs_post_f075 == complete - edit FHRGRP '075' - edit FHRLST 'f075' - edit FCSTHR '075' - edit TRDRUN 'NO' - task jgfs_awips_f078 - trigger ../../post/jgfs_post_f078 == complete - edit FHRGRP '078' - edit FHRLST 'f078' - edit FCSTHR '078' - edit TRDRUN 'YES' - task jgfs_awips_f081 - trigger ../../post/jgfs_post_f081 == complete - edit FHRGRP '081' - edit FHRLST 'f081' - edit FCSTHR '081' - edit TRDRUN 'NO' - task jgfs_awips_f084 - trigger ../../post/jgfs_post_f084 == complete - edit FHRGRP '084' - edit FHRLST 'f084' - edit FCSTHR '084' - edit TRDRUN 'YES' - task jgfs_awips_f090 - trigger ../../post/jgfs_post_f090 == complete - edit FHRGRP '090' - edit FHRLST 'f090' - edit FCSTHR '090' - edit TRDRUN 'YES' - task jgfs_awips_f096 - trigger ../../post/jgfs_post_f096 == complete - edit FHRGRP '096' - edit FHRLST 'f096' - edit FCSTHR '096' - edit TRDRUN 'YES' - task jgfs_awips_f102 - trigger ../../post/jgfs_post_f102 == complete - edit FHRGRP '102' - edit FHRLST 'f102' - edit FCSTHR '102' - edit TRDRUN 'YES' - task jgfs_awips_f108 - trigger ../../post/jgfs_post_f108 == complete - edit FHRGRP '108' - edit FHRLST 'f108' - edit FCSTHR '108' - edit TRDRUN 'YES' - task jgfs_awips_f114 - trigger ../../post/jgfs_post_f114 == complete - edit FHRGRP '114' - edit FHRLST 'f114' - edit FCSTHR '114' - edit TRDRUN 'YES' - task jgfs_awips_f120 - trigger ../../post/jgfs_post_f120 == complete - edit FHRGRP '120' - edit FHRLST 'f120' - edit FCSTHR '120' - edit TRDRUN 'YES' - task jgfs_awips_f126 - trigger ../../post/jgfs_post_f126 == complete - edit FHRGRP '126' - edit FHRLST 'f126' - edit FCSTHR '126' - edit TRDRUN 'YES' - task jgfs_awips_f132 - trigger ../../post/jgfs_post_f132 == complete - edit FHRGRP '132' - edit FHRLST 'f132' - edit FCSTHR '132' - edit TRDRUN 'YES' - task jgfs_awips_f138 - trigger ../../post/jgfs_post_f138 == complete - edit FHRGRP '138' - edit FHRLST 'f138' - edit FCSTHR '138' - edit TRDRUN 'YES' - task jgfs_awips_f144 - trigger ../../post/jgfs_post_f144 == complete - edit FHRGRP '144' - edit FHRLST 'f144' - edit FCSTHR '144' - edit TRDRUN 'YES' - task jgfs_awips_f150 - trigger ../../post/jgfs_post_f150 == complete - edit FHRGRP '150' - edit FHRLST 'f150' - edit FCSTHR '150' - edit TRDRUN 'YES' - task jgfs_awips_f156 - trigger ../../post/jgfs_post_f156 == complete - edit FHRGRP '156' - edit FHRLST 'f156' - edit FCSTHR '156' - edit TRDRUN 'YES' - task jgfs_awips_f162 - trigger ../../post/jgfs_post_f162 == complete - edit FHRGRP '162' - edit FHRLST 'f162' - edit FCSTHR '162' - edit TRDRUN 'YES' - task jgfs_awips_f168 - trigger ../../post/jgfs_post_f168 == complete - edit FHRGRP '168' - edit FHRLST 'f168' - edit FCSTHR '168' - edit TRDRUN 'YES' - task jgfs_awips_f174 - trigger ../../post/jgfs_post_f174 == complete - edit FHRGRP '174' - edit FHRLST 'f174' - edit FCSTHR '174' - edit TRDRUN 'YES' - task jgfs_awips_f180 - trigger ../../post/jgfs_post_f180 == complete - edit FHRGRP '180' - edit FHRLST 'f180' - edit FCSTHR '180' - edit TRDRUN 'YES' - task jgfs_awips_f186 - trigger ../../post/jgfs_post_f186 == complete - edit FHRGRP '186' - edit FHRLST 'f186' - edit FCSTHR '186' - edit TRDRUN 'YES' - task jgfs_awips_f192 - trigger ../../post/jgfs_post_f192 == complete - edit FHRGRP '192' - edit FHRLST 'f192' - edit FCSTHR '192' - edit TRDRUN 'YES' - task jgfs_awips_f198 - trigger ../../post/jgfs_post_f198 == complete - edit FHRGRP '198' - edit FHRLST 'f198' - edit FCSTHR '198' - edit TRDRUN 'YES' - task jgfs_awips_f204 - trigger ../../post/jgfs_post_f204 == complete - edit FHRGRP '204' - edit FHRLST 'f204' - edit FCSTHR '204' - edit TRDRUN 'YES' - task jgfs_awips_f210 - trigger ../../post/jgfs_post_f210 == complete - edit FHRGRP '210' - edit FHRLST 'f210' - edit FCSTHR '210' - edit TRDRUN 'YES' - task jgfs_awips_f216 - trigger ../../post/jgfs_post_f216 == complete - edit FHRGRP '216' - edit FHRLST 'f216' - edit FCSTHR '216' - edit TRDRUN 'YES' - task jgfs_awips_f222 - trigger ../../post/jgfs_post_f222 == complete - edit FHRGRP '222' - edit FHRLST 'f222' - edit FCSTHR '222' - edit TRDRUN 'YES' - task jgfs_awips_f228 - trigger ../../post/jgfs_post_f228 == complete - edit FHRGRP '228' - edit FHRLST 'f228' - edit FCSTHR '228' - edit TRDRUN 'YES' - task jgfs_awips_f234 - trigger ../../post/jgfs_post_f234 == complete - edit FHRGRP '234' - edit FHRLST 'f234' - edit FCSTHR '234' - edit TRDRUN 'YES' - task jgfs_awips_f240 - trigger ../../post/jgfs_post_f240 == complete - edit FHRGRP '240' - edit FHRLST 'f240' - edit FCSTHR '240' - edit TRDRUN 'YES' - endfamily - family awips_g2 - task jgfs_awips_g2_f000 - trigger ../../post/jgfs_post_f000 == complete - edit FHRGRP '000' - edit FHRLST 'f000' - edit FCSTHR '000' - edit TRDRUN 'YES' - task jgfs_awips_g2_f006 - trigger ../../post/jgfs_post_f006 == complete - edit FHRGRP '006' - edit FHRLST 'f006' - edit FCSTHR '006' - edit TRDRUN 'YES' - task jgfs_awips_g2_f012 - trigger ../../post/jgfs_post_f012 == complete - edit FHRGRP '012' - edit FHRLST 'f012' - edit FCSTHR '012' - edit TRDRUN 'YES' - task jgfs_awips_g2_f018 - trigger ../../post/jgfs_post_f018 == complete - edit FHRGRP '018' - edit FHRLST 'f018' - edit FCSTHR '018' - edit TRDRUN 'YES' - task jgfs_awips_g2_f024 - trigger ../../post/jgfs_post_f024 == complete - edit FHRGRP '024' - edit FHRLST 'f024' - edit FCSTHR '024' - edit TRDRUN 'YES' - task jgfs_awips_g2_f030 - trigger ../../post/jgfs_post_f030 == complete - edit FHRGRP '030' - edit FHRLST 'f030' - edit FCSTHR '030' - edit TRDRUN 'YES' - task jgfs_awips_g2_f036 - trigger ../../post/jgfs_post_f036 == complete - edit FHRGRP '036' - edit FHRLST 'f036' - edit FCSTHR '036' - edit TRDRUN 'YES' - task jgfs_awips_g2_f042 - trigger ../../post/jgfs_post_f042 == complete - edit FHRGRP '042' - edit FHRLST 'f042' - edit FCSTHR '042' - edit TRDRUN 'YES' - task jgfs_awips_g2_f048 - trigger ../../post/jgfs_post_f048 == complete - edit FHRGRP '048' - edit FHRLST 'f048' - edit FCSTHR '048' - edit TRDRUN 'YES' - task jgfs_awips_g2_f054 - trigger ../../post/jgfs_post_f054 == complete - edit FHRGRP '054' - edit FHRLST 'f054' - edit FCSTHR '054' - edit TRDRUN 'YES' - task jgfs_awips_g2_f060 - trigger ../../post/jgfs_post_f060 == complete - edit FHRGRP '060' - edit FHRLST 'f060' - edit FCSTHR '060' - edit TRDRUN 'YES' - task jgfs_awips_g2_f066 - trigger ../../post/jgfs_post_f066 == complete - edit FHRGRP '066' - edit FHRLST 'f066' - edit FCSTHR '066' - edit TRDRUN 'YES' - task jgfs_awips_g2_f072 - trigger ../../post/jgfs_post_f072 == complete - edit FHRGRP '072' - edit FHRLST 'f072' - edit FCSTHR '072' - edit TRDRUN 'YES' - task jgfs_awips_g2_f078 - trigger ../../post/jgfs_post_f078 == complete - edit FHRGRP '078' - edit FHRLST 'f078' - edit FCSTHR '078' - edit TRDRUN 'YES' - task jgfs_awips_g2_f084 - trigger ../../post/jgfs_post_f084 == complete - edit FHRGRP '084' - edit FHRLST 'f084' - edit FCSTHR '084' - edit TRDRUN 'YES' - task jgfs_awips_g2_f090 - trigger ../../post/jgfs_post_f090 == complete - edit FHRGRP '090' - edit FHRLST 'f090' - edit FCSTHR '090' - edit TRDRUN 'YES' - task jgfs_awips_g2_f096 - trigger ../../post/jgfs_post_f096 == complete - edit FHRGRP '096' - edit FHRLST 'f096' - edit FCSTHR '096' - edit TRDRUN 'YES' - task jgfs_awips_g2_f102 - trigger ../../post/jgfs_post_f102 == complete - edit FHRGRP '102' - edit FHRLST 'f102' - edit FCSTHR '102' - edit TRDRUN 'YES' - task jgfs_awips_g2_f108 - trigger ../../post/jgfs_post_f108 == complete - edit FHRGRP '108' - edit FHRLST 'f108' - edit FCSTHR '108' - edit TRDRUN 'YES' - task jgfs_awips_g2_f114 - trigger ../../post/jgfs_post_f114 == complete - edit FHRGRP '114' - edit FHRLST 'f114' - edit FCSTHR '114' - edit TRDRUN 'YES' - task jgfs_awips_g2_f120 - trigger ../../post/jgfs_post_f120 == complete - edit FHRGRP '120' - edit FHRLST 'f120' - edit FCSTHR '120' - edit TRDRUN 'YES' - task jgfs_awips_g2_f126 - trigger ../../post/jgfs_post_f126 == complete - edit FHRGRP '126' - edit FHRLST 'f126' - edit FCSTHR '126' - edit TRDRUN 'YES' - task jgfs_awips_g2_f132 - trigger ../../post/jgfs_post_f132 == complete - edit FHRGRP '132' - edit FHRLST 'f132' - edit FCSTHR '132' - edit TRDRUN 'YES' - task jgfs_awips_g2_f138 - trigger ../../post/jgfs_post_f138 == complete - edit FHRGRP '138' - edit FHRLST 'f138' - edit FCSTHR '138' - edit TRDRUN 'YES' - task jgfs_awips_g2_f144 - trigger ../../post/jgfs_post_f144 == complete - edit FHRGRP '144' - edit FHRLST 'f144' - edit FCSTHR '144' - edit TRDRUN 'YES' - task jgfs_awips_g2_f150 - trigger ../../post/jgfs_post_f150 == complete - edit FHRGRP '150' - edit FHRLST 'f150' - edit FCSTHR '150' - edit TRDRUN 'YES' - task jgfs_awips_g2_f156 - trigger ../../post/jgfs_post_f156 == complete - edit FHRGRP '156' - edit FHRLST 'f156' - edit FCSTHR '156' - edit TRDRUN 'YES' - task jgfs_awips_g2_f162 - trigger ../../post/jgfs_post_f162 == complete - edit FHRGRP '162' - edit FHRLST 'f162' - edit FCSTHR '162' - edit TRDRUN 'YES' - task jgfs_awips_g2_f168 - trigger ../../post/jgfs_post_f168 == complete - edit FHRGRP '168' - edit FHRLST 'f168' - edit FCSTHR '168' - edit TRDRUN 'YES' - task jgfs_awips_g2_f174 - trigger ../../post/jgfs_post_f174 == complete - edit FHRGRP '174' - edit FHRLST 'f174' - edit FCSTHR '174' - edit TRDRUN 'YES' - task jgfs_awips_g2_f180 - trigger ../../post/jgfs_post_f180 == complete - edit FHRGRP '180' - edit FHRLST 'f180' - edit FCSTHR '180' - edit TRDRUN 'YES' - task jgfs_awips_g2_f186 - trigger ../../post/jgfs_post_f186 == complete - edit FHRGRP '186' - edit FHRLST 'f186' - edit FCSTHR '186' - edit TRDRUN 'YES' - task jgfs_awips_g2_f192 - trigger ../../post/jgfs_post_f192 == complete - edit FHRGRP '192' - edit FHRLST 'f192' - edit FCSTHR '192' - edit TRDRUN 'YES' - task jgfs_awips_g2_f198 - trigger ../../post/jgfs_post_f198 == complete - edit FHRGRP '198' - edit FHRLST 'f198' - edit FCSTHR '198' - edit TRDRUN 'YES' - task jgfs_awips_g2_f204 - trigger ../../post/jgfs_post_f204 == complete - edit FHRGRP '204' - edit FHRLST 'f204' - edit FCSTHR '204' - edit TRDRUN 'YES' - task jgfs_awips_g2_f210 - trigger ../../post/jgfs_post_f210 == complete - edit FHRGRP '210' - edit FHRLST 'f210' - edit FCSTHR '210' - edit TRDRUN 'YES' - task jgfs_awips_g2_f216 - trigger ../../post/jgfs_post_f216 == complete - edit FHRGRP '216' - edit FHRLST 'f216' - edit FCSTHR '216' - edit TRDRUN 'YES' - task jgfs_awips_g2_f222 - trigger ../../post/jgfs_post_f222 == complete - edit FHRGRP '222' - edit FHRLST 'f222' - edit FCSTHR '222' - edit TRDRUN 'YES' - task jgfs_awips_g2_f228 - trigger ../../post/jgfs_post_f228 == complete - edit FHRGRP '228' - edit FHRLST 'f228' - edit FCSTHR '228' - edit TRDRUN 'YES' - task jgfs_awips_g2_f234 - trigger ../../post/jgfs_post_f234 == complete - edit FHRGRP '234' - edit FHRLST 'f234' - edit FCSTHR '234' - edit TRDRUN 'YES' - task jgfs_awips_g2_f240 - trigger ../../post/jgfs_post_f240 == complete - edit FHRGRP '240' - edit FHRLST 'f240' - edit FCSTHR '240' - edit TRDRUN 'YES' - endfamily - endfamily - family mos - edit ECF_FILES '/ecf/ecfnets/scripts/gfs/mos' - edit PROJ 'GFS-%PROJENVIR%' - edit COM '/gpfs/hps/nco/ops/com' - edit QUEUESERV 'prod_transfer' - edit MODULES 'module load cfp-intel-sandybridge/1.1.0 grib_util gempak/6.32.0' - edit QUEUE 'prod' - family prep - task jgfsmos_stn_prep - trigger /prod18/gfs/post/jgfs_post_f096 == complete - edit NTASK '3' - edit PTILE '3' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_stn_prep - trigger /prod18/gfs/post == complete - edit NTASK '2' - edit PTILE '2' - edit OMP_NUM_THREADS '1' - edit NODES '1' - endfamily - family forecast - task jgfsmos_stn_fcst - trigger ../prep/jgfsmos_stn_prep == complete - edit NTASK '5' - edit PTILE '5' - edit OMP_NUM_THREADS '1' - edit NODES '1' - endfamily - family prdgen - task jgfsmos_stn_prdgen - trigger ../forecast/jgfsmos_stn_fcst == complete - edit NTASK '1' - edit PTILE '1' - edit OMP_NUM_THREADS '1' - edit NODES '1' - task jgfsmos_ext_stn_prdgen - trigger jgfsmos_stn_prdgen == complete - edit NTASK '1' - edit PTILE '1' - edit OMP_NUM_THREADS '1' - edit NODES '1' - endfamily - family gempak - task jgfs_gempak_mdl - trigger ../prdgen == complete - endfamily - endfamily - family gempak - task jgfs_gempak_ncdc_upapgif - trigger ./jgfs_gempak == active or ./jgfs_gempak == complete - task jgfs_gempak - trigger ../jgfs_analysis eq complete - task jgfs_gempak_meta - trigger ../jgfs_analysis == complete - task jgfs_pgrb2_spec_gempak - trigger ./jgfs_npoess_pgrb2_0p5deg == complete - task jgfs_npoess_pgrb2_0p5deg - trigger ../post/jgfs_post_anl eq active or ../post/jgfs_post_anl == complete - endfamily - endfamily - diff --git a/ecflow/ecf/defs/prod00.def b/ecflow/ecf/defs/prod00.def new file mode 100644 index 0000000000..c791b5dfed --- /dev/null +++ b/ecflow/ecf/defs/prod00.def @@ -0,0 +1,2642 @@ +extern /prod18/gdas/jgdas_forecast +extern /prod18/gdas/atmos/post +extern /prod18/gdas/enkf/post +#### ecen +extern /prod18/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf + +suite prod00 + repeat day 1 + edit ECF_TRIES '1' + edit CYC '00' + edit ENVIR 'prod' + edit PROJ 'OPS' + edit E 'j' + edit QUEUE 'prod' + edit QUEUESHARED 'dev_shared' + edit QUEUESERV 'dev_transfer' + edit PROJENVIR 'OPS' + edit MACHINE_SITE 'production' + + family gfs + edit CYC '00' + edit ECF_FILES '/ecf/ecfnets/scripts/gfs_FV3' + edit PROJ 'GFS-OPS' + edit NET 'gfs' + edit RUN 'gfs' + edit COM '/gpfs/dell1/nco/ops/com' + edit QUEUESHARED 'prod_shared' + edit QUEUESERV 'prod_transfer' + edit QUEUE 'prod' + family atmos + family obsproc + family dump + task jgfs_atmos_tropcy_qc_reloc + event 1 jtwc_bull_email + time 02:41 + task jgfs_atmos_dump + event 1 release_sfcprep + time 02:47 + task jgfs_atmos_dump_post + trigger jgfs_atmos_dump == complete + event 1 release_gfs00_dump_alert + task jgfs_atmos_dump_alert + trigger jgfs_atmos_dump_post:release_gfs00_dump_alert + endfamily + family prep + task jgfs_atmos_emcsfc_sfc_prep + trigger ../dump/jgfs_atmos_dump:release_sfcprep + task jgfs_atmos_prep + trigger ../dump/jgfs_atmos_dump == complete and ../dump/jgfs_atmos_tropcy_qc_reloc == complete + task jgfs_atmos_prep_post + trigger ./jgfs_atmos_prep == complete and ../../analysis/jgfs_atmos_analysis == complete + endfamily + endfamily + family analysis + task jgfs_atmos_analysis + trigger ../obsproc/prep/jgfs_atmos_prep == complete and ../obsproc/prep/jgfs_atmos_emcsfc_sfc_prep == complete + event 1 release_fcst + task jgfs_atmos_analysis_calc + trigger ./jgfs_atmos_analysis == complete + endfamily + family post + task jgfs_atmos_post_manager + trigger ../analysis/jgfs_atmos_analysis == complete + event 1 release_postanl + event 2 release_post000 + event 3 release_post001 + event 4 release_post002 + event 5 release_post003 + event 6 release_post004 + event 7 release_post005 + event 8 release_post006 + event 9 release_post007 + event 10 release_post008 + event 11 release_post009 + event 12 release_post010 + event 13 release_post011 + event 14 release_post012 + event 15 release_post013 + event 16 release_post014 + event 17 release_post015 + event 18 release_post016 + event 19 release_post017 + event 20 release_post018 + event 21 release_post019 + event 22 release_post020 + event 23 release_post021 + event 24 release_post022 + event 25 release_post023 + event 26 release_post024 + event 27 release_post025 + event 28 release_post026 + event 29 release_post027 + event 30 release_post028 + event 31 release_post029 + event 32 release_post030 + event 33 release_post031 + event 34 release_post032 + event 35 release_post033 + event 36 release_post034 + event 37 release_post035 + event 38 release_post036 + event 39 release_post037 + event 40 release_post038 + event 41 release_post039 + event 42 release_post040 + event 43 release_post041 + event 44 release_post042 + event 45 release_post043 + event 46 release_post044 + event 47 release_post045 + event 48 release_post046 + event 49 release_post047 + event 50 release_post048 + event 51 release_post049 + event 52 release_post050 + event 53 release_post051 + event 54 release_post052 + event 55 release_post053 + event 56 release_post054 + event 57 release_post055 + event 58 release_post056 + event 59 release_post057 + event 60 release_post058 + event 61 release_post059 + event 62 release_post060 + event 63 release_post061 + event 64 release_post062 + event 65 release_post063 + event 66 release_post064 + event 67 release_post065 + event 68 release_post066 + event 69 release_post067 + event 70 release_post068 + event 71 release_post069 + event 72 release_post070 + event 73 release_post071 + event 74 release_post072 + event 75 release_post073 + event 76 release_post074 + event 77 release_post075 + event 78 release_post076 + event 79 release_post077 + event 80 release_post078 + event 81 release_post079 + event 82 release_post080 + event 83 release_post081 + event 84 release_post082 + event 85 release_post083 + event 86 release_post084 + event 87 release_post085 + event 88 release_post086 + event 89 release_post087 + event 90 release_post088 + event 91 release_post089 + event 92 release_post090 + event 93 release_post091 + event 94 release_post092 + event 95 release_post093 + event 96 release_post094 + event 97 release_post095 + event 98 release_post096 + event 99 release_post097 + event 100 release_post098 + event 101 release_post099 + event 102 release_post100 + event 103 release_post101 + event 104 release_post102 + event 105 release_post103 + event 106 release_post104 + event 107 release_post105 + event 108 release_post106 + event 109 release_post107 + event 110 release_post108 + event 111 release_post109 + event 112 release_post110 + event 113 release_post111 + event 114 release_post112 + event 115 release_post113 + event 116 release_post114 + event 117 release_post115 + event 118 release_post116 + event 119 release_post117 + event 120 release_post118 + event 121 release_post119 + event 122 release_post120 + event 123 release_post123 + event 124 release_post126 + event 125 release_post129 + event 126 release_post132 + event 127 release_post135 + event 128 release_post138 + event 129 release_post141 + event 130 release_post144 + event 131 release_post147 + event 132 release_post150 + event 133 release_post153 + event 134 release_post156 + event 135 release_post159 + event 136 release_post162 + event 137 release_post165 + event 138 release_post168 + event 139 release_post171 + event 140 release_post174 + event 141 release_post177 + event 142 release_post180 + event 143 release_post183 + event 144 release_post186 + event 145 release_post189 + event 146 release_post192 + event 147 release_post195 + event 148 release_post198 + event 149 release_post201 + event 150 release_post204 + event 151 release_post207 + event 152 release_post210 + event 153 release_post213 + event 154 release_post216 + event 155 release_post219 + event 156 release_post222 + event 157 release_post225 + event 158 release_post228 + event 159 release_post231 + event 160 release_post234 + event 161 release_post237 + event 162 release_post240 + event 163 release_post243 + event 164 release_post246 + event 165 release_post249 + event 166 release_post252 + event 167 release_post255 + event 168 release_post258 + event 169 release_post261 + event 170 release_post264 + event 171 release_post267 + event 172 release_post270 + event 173 release_post273 + event 174 release_post276 + event 175 release_post279 + event 176 release_post282 + event 177 release_post285 + event 178 release_post288 + event 179 release_post291 + event 180 release_post294 + event 181 release_post297 + event 182 release_post300 + event 183 release_post303 + event 184 release_post306 + event 185 release_post309 + event 186 release_post312 + event 187 release_post315 + event 188 release_post318 + event 189 release_post321 + event 190 release_post324 + event 191 release_post327 + event 192 release_post330 + event 193 release_post333 + event 194 release_post336 + event 195 release_post339 + event 196 release_post342 + event 197 release_post345 + event 198 release_post348 + event 199 release_post351 + event 200 release_post354 + event 201 release_post357 + event 202 release_post360 + event 203 release_post363 + event 204 release_post366 + event 205 release_post369 + event 206 release_post372 + event 207 release_post375 + event 208 release_post378 + event 209 release_post381 + event 210 release_post384 + task jgfs_atmos_post_anl + trigger ./jgfs_atmos_post_manager:release_postanl + edit FHRGRP '000' + edit FHRLST 'anl' + edit HR 'anl' + edit FHR 'anl' + task jgfs_atmos_post_f000 + trigger ./jgfs_atmos_post_manager:release_post000 + edit FHRGRP '001' + edit FHRLST 'f000' + edit FHR 'f000' + edit HR '000' + task jgfs_atmos_post_f001 + trigger ./jgfs_atmos_post_manager:release_post001 + edit FHRGRP '002' + edit FHRLST 'f001' + edit FHR 'f001' + edit HR '001' + task jgfs_atmos_post_f002 + trigger ./jgfs_atmos_post_manager:release_post002 + edit FHRGRP '003' + edit FHRLST 'f002' + edit FHR 'f002' + edit HR '002' + task jgfs_atmos_post_f003 + trigger ./jgfs_atmos_post_manager:release_post003 + edit FHRGRP '004' + edit FHRLST 'f003' + edit FHR 'f003' + edit HR '003' + task jgfs_atmos_post_f004 + trigger ./jgfs_atmos_post_manager:release_post004 + edit FHRGRP '005' + edit FHRLST 'f004' + edit FHR 'f004' + edit HR '004' + task jgfs_atmos_post_f005 + trigger ./jgfs_atmos_post_manager:release_post005 + edit FHRGRP '006' + edit FHRLST 'f005' + edit FHR 'f005' + edit HR '005' + task jgfs_atmos_post_f006 + trigger ./jgfs_atmos_post_manager:release_post006 + edit FHRGRP '007' + edit FHRLST 'f006' + edit FHR 'f006' + edit HR '006' + task jgfs_atmos_post_f007 + trigger ./jgfs_atmos_post_manager:release_post007 + edit FHRGRP '008' + edit FHRLST 'f007' + edit FHR 'f007' + edit HR '007' + task jgfs_atmos_post_f008 + trigger ./jgfs_atmos_post_manager:release_post008 + edit FHRGRP '009' + edit FHRLST 'f008' + edit FHR 'f008' + edit HR '008' + task jgfs_atmos_post_f009 + trigger ./jgfs_atmos_post_manager:release_post009 + edit FHRGRP '010' + edit FHRLST 'f009' + edit FHR 'f009' + edit HR '009' + task jgfs_atmos_post_f010 + trigger ./jgfs_atmos_post_manager:release_post010 + edit FHRGRP '011' + edit FHRLST 'f010' + edit FHR 'f010' + edit HR '010' + task jgfs_atmos_post_f011 + trigger ./jgfs_atmos_post_manager:release_post011 + edit FHRGRP '012' + edit FHRLST 'f011' + edit FHR 'f011' + edit HR '011' + task jgfs_atmos_post_f012 + trigger ./jgfs_atmos_post_manager:release_post012 + edit FHRGRP '013' + edit FHRLST 'f012' + edit FHR 'f012' + edit HR '012' + task jgfs_atmos_post_f013 + trigger ./jgfs_atmos_post_manager:release_post013 + edit FHRGRP '014' + edit FHRLST 'f013' + edit FHR 'f013' + edit HR '013' + task jgfs_atmos_post_f014 + trigger ./jgfs_atmos_post_manager:release_post014 + edit FHRGRP '015' + edit FHRLST 'f014' + edit FHR 'f014' + edit HR '014' + task jgfs_atmos_post_f015 + trigger ./jgfs_atmos_post_manager:release_post015 + edit FHRGRP '016' + edit FHRLST 'f015' + edit FHR 'f015' + edit HR '015' + task jgfs_atmos_post_f016 + trigger ./jgfs_atmos_post_manager:release_post016 + edit FHRGRP '017' + edit FHRLST 'f016' + edit FHR 'f016' + edit HR '016' + task jgfs_atmos_post_f017 + trigger ./jgfs_atmos_post_manager:release_post017 + edit FHRGRP '018' + edit FHRLST 'f017' + edit FHR 'f017' + edit HR '017' + task jgfs_atmos_post_f018 + trigger ./jgfs_atmos_post_manager:release_post018 + edit FHRGRP '019' + edit FHRLST 'f018' + edit FHR 'f018' + edit HR '018' + task jgfs_atmos_post_f019 + trigger ./jgfs_atmos_post_manager:release_post019 + edit FHRGRP '020' + edit FHRLST 'f019' + edit FHR 'f019' + edit HR '019' + task jgfs_atmos_post_f020 + trigger ./jgfs_atmos_post_manager:release_post020 + edit FHRGRP '021' + edit FHRLST 'f020' + edit FHR 'f020' + edit HR '020' + task jgfs_atmos_post_f021 + trigger ./jgfs_atmos_post_manager:release_post021 + edit FHRGRP '022' + edit FHRLST 'f021' + edit FHR 'f021' + edit HR '021' + task jgfs_atmos_post_f022 + trigger ./jgfs_atmos_post_manager:release_post022 + edit FHRGRP '023' + edit FHRLST 'f022' + edit FHR 'f022' + edit HR '022' + task jgfs_atmos_post_f023 + trigger ./jgfs_atmos_post_manager:release_post023 + edit FHRGRP '024' + edit FHRLST 'f023' + edit FHR 'f023' + edit HR '023' + task jgfs_atmos_post_f024 + trigger ./jgfs_atmos_post_manager:release_post024 + edit FHRGRP '025' + edit FHRLST 'f024' + edit FHR 'f024' + edit HR '024' + task jgfs_atmos_post_f025 + trigger ./jgfs_atmos_post_manager:release_post025 + edit FHRGRP '026' + edit FHRLST 'f025' + edit FHR 'f025' + edit HR '025' + task jgfs_atmos_post_f026 + trigger ./jgfs_atmos_post_manager:release_post026 + edit FHRGRP '027' + edit FHRLST 'f026' + edit FHR 'f026' + edit HR '026' + task jgfs_atmos_post_f027 + trigger ./jgfs_atmos_post_manager:release_post027 + edit FHRGRP '028' + edit FHRLST 'f027' + edit FHR 'f027' + edit HR '027' + task jgfs_atmos_post_f028 + trigger ./jgfs_atmos_post_manager:release_post028 + edit FHRGRP '029' + edit FHRLST 'f028' + edit FHR 'f028' + edit HR '028' + task jgfs_atmos_post_f029 + trigger ./jgfs_atmos_post_manager:release_post029 + edit FHRGRP '030' + edit FHRLST 'f029' + edit FHR 'f029' + edit HR '029' + task jgfs_atmos_post_f030 + trigger ./jgfs_atmos_post_manager:release_post030 + edit FHRGRP '031' + edit FHRLST 'f030' + edit FHR 'f030' + edit HR '030' + task jgfs_atmos_post_f031 + trigger ./jgfs_atmos_post_manager:release_post031 + edit FHRGRP '032' + edit FHRLST 'f031' + edit FHR 'f031' + edit HR '031' + task jgfs_atmos_post_f032 + trigger ./jgfs_atmos_post_manager:release_post032 + edit FHRGRP '033' + edit FHRLST 'f032' + edit FHR 'f032' + edit HR '032' + task jgfs_atmos_post_f033 + trigger ./jgfs_atmos_post_manager:release_post033 + edit FHRGRP '034' + edit FHRLST 'f033' + edit FHR 'f033' + edit HR '033' + task jgfs_atmos_post_f034 + trigger ./jgfs_atmos_post_manager:release_post034 + edit FHRGRP '035' + edit FHRLST 'f034' + edit FHR 'f034' + edit HR '034' + task jgfs_atmos_post_f035 + trigger ./jgfs_atmos_post_manager:release_post035 + edit FHRGRP '036' + edit FHRLST 'f035' + edit FHR 'f035' + edit HR '035' + task jgfs_atmos_post_f036 + trigger ./jgfs_atmos_post_manager:release_post036 + edit FHRGRP '037' + edit FHRLST 'f036' + edit FHR 'f036' + edit HR '036' + task jgfs_atmos_post_f037 + trigger ./jgfs_atmos_post_manager:release_post037 + edit FHRGRP '038' + edit FHRLST 'f037' + edit FHR 'f037' + edit HR '037' + task jgfs_atmos_post_f038 + trigger ./jgfs_atmos_post_manager:release_post038 + edit FHRGRP '039' + edit FHRLST 'f038' + edit FHR 'f038' + edit HR '038' + task jgfs_atmos_post_f039 + trigger ./jgfs_atmos_post_manager:release_post039 + edit FHRGRP '040' + edit FHRLST 'f039' + edit FHR 'f039' + edit HR '039' + task jgfs_atmos_post_f040 + trigger ./jgfs_atmos_post_manager:release_post040 + edit FHRGRP '041' + edit FHRLST 'f040' + edit FHR 'f040' + edit HR '040' + task jgfs_atmos_post_f041 + trigger ./jgfs_atmos_post_manager:release_post041 + edit FHRGRP '042' + edit FHRLST 'f041' + edit FHR 'f041' + edit HR '041' + task jgfs_atmos_post_f042 + trigger ./jgfs_atmos_post_manager:release_post042 + edit FHRGRP '043' + edit FHRLST 'f042' + edit FHR 'f042' + edit HR '042' + task jgfs_atmos_post_f043 + trigger ./jgfs_atmos_post_manager:release_post043 + edit FHRGRP '044' + edit FHRLST 'f043' + edit FHR 'f043' + edit HR '043' + task jgfs_atmos_post_f044 + trigger ./jgfs_atmos_post_manager:release_post044 + edit FHRGRP '045' + edit FHRLST 'f044' + edit FHR 'f044' + edit HR '044' + task jgfs_atmos_post_f045 + trigger ./jgfs_atmos_post_manager:release_post045 + edit FHRGRP '046' + edit FHRLST 'f045' + edit FHR 'f045' + edit HR '045' + task jgfs_atmos_post_f046 + trigger ./jgfs_atmos_post_manager:release_post046 + edit FHRGRP '047' + edit FHRLST 'f046' + edit FHR 'f046' + edit HR '046' + task jgfs_atmos_post_f047 + trigger ./jgfs_atmos_post_manager:release_post047 + edit FHRGRP '048' + edit FHRLST 'f047' + edit FHR 'f047' + edit HR '047' + task jgfs_atmos_post_f048 + trigger ./jgfs_atmos_post_manager:release_post048 + edit FHRGRP '049' + edit FHRLST 'f048' + edit FHR 'f048' + edit HR '048' + task jgfs_atmos_post_f049 + trigger ./jgfs_atmos_post_manager:release_post049 + edit FHRGRP '050' + edit FHRLST 'f049' + edit FHR 'f049' + edit HR '049' + task jgfs_atmos_post_f050 + trigger ./jgfs_atmos_post_manager:release_post050 + edit FHRGRP '051' + edit FHRLST 'f050' + edit FHR 'f050' + edit HR '050' + task jgfs_atmos_post_f051 + trigger ./jgfs_atmos_post_manager:release_post051 + edit FHRGRP '052' + edit FHRLST 'f051' + edit FHR 'f051' + edit HR '051' + task jgfs_atmos_post_f052 + trigger ./jgfs_atmos_post_manager:release_post052 + edit FHRGRP '053' + edit FHRLST 'f052' + edit FHR 'f052' + edit HR '052' + task jgfs_atmos_post_f053 + trigger ./jgfs_atmos_post_manager:release_post053 + edit FHRGRP '054' + edit FHRLST 'f053' + edit FHR 'f053' + edit HR '053' + task jgfs_atmos_post_f054 + trigger ./jgfs_atmos_post_manager:release_post054 + edit FHRGRP '055' + edit FHRLST 'f054' + edit FHR 'f054' + edit HR '054' + task jgfs_atmos_post_f055 + trigger ./jgfs_atmos_post_manager:release_post055 + edit FHRGRP '056' + edit FHRLST 'f055' + edit FHR 'f055' + edit HR '055' + task jgfs_atmos_post_f056 + trigger ./jgfs_atmos_post_manager:release_post056 + edit FHRGRP '057' + edit FHRLST 'f056' + edit FHR 'f056' + edit HR '056' + task jgfs_atmos_post_f057 + trigger ./jgfs_atmos_post_manager:release_post057 + edit FHRGRP '058' + edit FHRLST 'f057' + edit FHR 'f057' + edit HR '057' + task jgfs_atmos_post_f058 + trigger ./jgfs_atmos_post_manager:release_post058 + edit FHRGRP '059' + edit FHRLST 'f058' + edit FHR 'f058' + edit HR '058' + task jgfs_atmos_post_f059 + trigger ./jgfs_atmos_post_manager:release_post059 + edit FHRGRP '060' + edit FHRLST 'f059' + edit FHR 'f059' + edit HR '059' + task jgfs_atmos_post_f060 + trigger ./jgfs_atmos_post_manager:release_post060 + edit FHRGRP '061' + edit FHRLST 'f060' + edit FHR 'f060' + edit HR '060' + task jgfs_atmos_post_f061 + trigger ./jgfs_atmos_post_manager:release_post061 + edit FHRGRP '062' + edit FHRLST 'f061' + edit FHR 'f061' + edit HR '061' + task jgfs_atmos_post_f062 + trigger ./jgfs_atmos_post_manager:release_post062 + edit FHRGRP '063' + edit FHRLST 'f062' + edit FHR 'f062' + edit HR '062' + task jgfs_atmos_post_f063 + trigger ./jgfs_atmos_post_manager:release_post063 + edit FHRGRP '064' + edit FHRLST 'f063' + edit FHR 'f063' + edit HR '063' + task jgfs_atmos_post_f064 + trigger ./jgfs_atmos_post_manager:release_post064 + edit FHRGRP '065' + edit FHRLST 'f064' + edit FHR 'f064' + edit HR '064' + task jgfs_atmos_post_f065 + trigger ./jgfs_atmos_post_manager:release_post065 + edit FHRGRP '066' + edit FHRLST 'f065' + edit FHR 'f065' + edit HR '065' + task jgfs_atmos_post_f066 + trigger ./jgfs_atmos_post_manager:release_post066 + edit FHRGRP '067' + edit FHRLST 'f066' + edit FHR 'f066' + edit HR '066' + task jgfs_atmos_post_f067 + trigger ./jgfs_atmos_post_manager:release_post067 + edit FHRGRP '068' + edit FHRLST 'f067' + edit FHR 'f067' + edit HR '067' + task jgfs_atmos_post_f068 + trigger ./jgfs_atmos_post_manager:release_post068 + edit FHRGRP '069' + edit FHRLST 'f068' + edit FHR 'f068' + edit HR '068' + task jgfs_atmos_post_f069 + trigger ./jgfs_atmos_post_manager:release_post069 + edit FHRGRP '070' + edit FHRLST 'f069' + edit FHR 'f069' + edit HR '069' + task jgfs_atmos_post_f070 + trigger ./jgfs_atmos_post_manager:release_post070 + edit FHRGRP '071' + edit FHRLST 'f070' + edit FHR 'f070' + edit HR '070' + task jgfs_atmos_post_f071 + trigger ./jgfs_atmos_post_manager:release_post071 + edit FHRGRP '072' + edit FHRLST 'f071' + edit FHR 'f071' + edit HR '071' + task jgfs_atmos_post_f072 + trigger ./jgfs_atmos_post_manager:release_post072 + edit FHRGRP '073' + edit FHRLST 'f072' + edit FHR 'f072' + edit HR '072' + task jgfs_atmos_post_f073 + trigger ./jgfs_atmos_post_manager:release_post073 + edit FHRGRP '074' + edit FHRLST 'f073' + edit FHR 'f073' + edit HR '073' + task jgfs_atmos_post_f074 + trigger ./jgfs_atmos_post_manager:release_post074 + edit FHRGRP '075' + edit FHRLST 'f074' + edit FHR 'f074' + edit HR '074' + task jgfs_atmos_post_f075 + trigger ./jgfs_atmos_post_manager:release_post075 + edit FHRGRP '076' + edit FHRLST 'f075' + edit FHR 'f075' + edit HR '075' + task jgfs_atmos_post_f076 + trigger ./jgfs_atmos_post_manager:release_post076 + edit FHRGRP '077' + edit FHRLST 'f076' + edit FHR 'f076' + edit HR '076' + task jgfs_atmos_post_f077 + trigger ./jgfs_atmos_post_manager:release_post077 + edit FHRGRP '078' + edit FHRLST 'f077' + edit FHR 'f077' + edit HR '077' + task jgfs_atmos_post_f078 + trigger ./jgfs_atmos_post_manager:release_post078 + edit FHRGRP '079' + edit FHRLST 'f078' + edit FHR 'f078' + edit HR '078' + task jgfs_atmos_post_f079 + trigger ./jgfs_atmos_post_manager:release_post079 + edit FHRGRP '080' + edit FHRLST 'f079' + edit FHR 'f079' + edit HR '079' + task jgfs_atmos_post_f080 + trigger ./jgfs_atmos_post_manager:release_post080 + edit FHRGRP '081' + edit FHRLST 'f080' + edit FHR 'f080' + edit HR '080' + task jgfs_atmos_post_f081 + trigger ./jgfs_atmos_post_manager:release_post081 + edit FHRGRP '082' + edit FHRLST 'f081' + edit FHR 'f081' + edit HR '081' + task jgfs_atmos_post_f082 + trigger ./jgfs_atmos_post_manager:release_post082 + edit FHRGRP '083' + edit FHRLST 'f082' + edit FHR 'f082' + edit HR '082' + task jgfs_atmos_post_f083 + trigger ./jgfs_atmos_post_manager:release_post083 + edit FHRGRP '084' + edit FHRLST 'f083' + edit FHR 'f083' + edit HR '083' + task jgfs_atmos_post_f084 + trigger ./jgfs_atmos_post_manager:release_post084 + edit FHRGRP '085' + edit FHRLST 'f084' + edit FHR 'f084' + edit HR '084' + task jgfs_atmos_post_f085 + trigger ./jgfs_atmos_post_manager:release_post085 + edit FHRGRP '086' + edit FHRLST 'f085' + edit FHR 'f085' + edit HR '085' + task jgfs_atmos_post_f086 + trigger ./jgfs_atmos_post_manager:release_post086 + edit FHRGRP '087' + edit FHRLST 'f086' + edit FHR 'f086' + edit HR '086' + task jgfs_atmos_post_f087 + trigger ./jgfs_atmos_post_manager:release_post087 + edit FHRGRP '088' + edit FHRLST 'f087' + edit FHR 'f087' + edit HR '087' + task jgfs_atmos_post_f088 + trigger ./jgfs_atmos_post_manager:release_post088 + edit FHRGRP '089' + edit FHRLST 'f088' + edit FHR 'f088' + edit HR '088' + task jgfs_atmos_post_f089 + trigger ./jgfs_atmos_post_manager:release_post089 + edit FHRGRP '090' + edit FHRLST 'f089' + edit FHR 'f089' + edit HR '089' + task jgfs_atmos_post_f090 + trigger ./jgfs_atmos_post_manager:release_post090 + edit FHRGRP '091' + edit FHRLST 'f090' + edit FHR 'f090' + edit HR '090' + task jgfs_atmos_post_f091 + trigger ./jgfs_atmos_post_manager:release_post091 + edit FHRGRP '092' + edit FHRLST 'f091' + edit FHR 'f091' + edit HR '091' + task jgfs_atmos_post_f092 + trigger ./jgfs_atmos_post_manager:release_post092 + edit FHRGRP '093' + edit FHRLST 'f092' + edit FHR 'f092' + edit HR '092' + task jgfs_atmos_post_f093 + trigger ./jgfs_atmos_post_manager:release_post093 + edit FHRGRP '094' + edit FHRLST 'f093' + edit FHR 'f093' + edit HR '093' + task jgfs_atmos_post_f094 + trigger ./jgfs_atmos_post_manager:release_post094 + edit FHRGRP '095' + edit FHRLST 'f094' + edit FHR 'f094' + edit HR '094' + task jgfs_atmos_post_f095 + trigger ./jgfs_atmos_post_manager:release_post095 + edit FHRGRP '096' + edit FHRLST 'f095' + edit FHR 'f095' + edit HR '095' + task jgfs_atmos_post_f096 + trigger ./jgfs_atmos_post_manager:release_post096 + edit FHRGRP '097' + edit FHRLST 'f096' + edit FHR 'f096' + edit HR '096' + task jgfs_atmos_post_f097 + trigger ./jgfs_atmos_post_manager:release_post097 + edit FHRGRP '098' + edit FHRLST 'f097' + edit FHR 'f097' + edit HR '097' + task jgfs_atmos_post_f098 + trigger ./jgfs_atmos_post_manager:release_post098 + edit FHRGRP '099' + edit FHRLST 'f098' + edit FHR 'f098' + edit HR '098' + task jgfs_atmos_post_f099 + trigger ./jgfs_atmos_post_manager:release_post099 + edit FHRGRP '100' + edit FHRLST 'f099' + edit FHR 'f099' + edit HR '099' + task jgfs_atmos_post_f100 + trigger ./jgfs_atmos_post_manager:release_post100 + edit FHRGRP '101' + edit FHRLST 'f100' + edit FHR 'f100' + edit HR '100' + task jgfs_atmos_post_f101 + trigger ./jgfs_atmos_post_manager:release_post101 + edit FHRGRP '102' + edit FHRLST 'f101' + edit FHR 'f101' + edit HR '101' + task jgfs_atmos_post_f102 + trigger ./jgfs_atmos_post_manager:release_post102 + edit FHRGRP '103' + edit FHRLST 'f102' + edit FHR 'f102' + edit HR '102' + task jgfs_atmos_post_f103 + trigger ./jgfs_atmos_post_manager:release_post103 + edit FHRGRP '104' + edit FHRLST 'f103' + edit FHR 'f103' + edit HR '103' + task jgfs_atmos_post_f104 + trigger ./jgfs_atmos_post_manager:release_post104 + edit FHRGRP '105' + edit FHRLST 'f104' + edit FHR 'f104' + edit HR '104' + task jgfs_atmos_post_f105 + trigger ./jgfs_atmos_post_manager:release_post105 + edit FHRGRP '106' + edit FHRLST 'f105' + edit FHR 'f105' + edit HR '105' + task jgfs_atmos_post_f106 + trigger ./jgfs_atmos_post_manager:release_post106 + edit FHRGRP '107' + edit FHRLST 'f106' + edit FHR 'f106' + edit HR '106' + task jgfs_atmos_post_f107 + trigger ./jgfs_atmos_post_manager:release_post107 + edit FHRGRP '108' + edit FHRLST 'f107' + edit FHR 'f107' + edit HR '107' + task jgfs_atmos_post_f108 + trigger ./jgfs_atmos_post_manager:release_post108 + edit FHRGRP '109' + edit FHRLST 'f108' + edit FHR 'f108' + edit HR '108' + task jgfs_atmos_post_f109 + trigger ./jgfs_atmos_post_manager:release_post109 + edit FHRGRP '110' + edit FHRLST 'f109' + edit FHR 'f109' + edit HR '109' + task jgfs_atmos_post_f110 + trigger ./jgfs_atmos_post_manager:release_post110 + edit FHRGRP '111' + edit FHRLST 'f110' + edit FHR 'f110' + edit HR '110' + task jgfs_atmos_post_f111 + trigger ./jgfs_atmos_post_manager:release_post111 + edit FHRGRP '112' + edit FHRLST 'f111' + edit FHR 'f111' + edit HR '111' + task jgfs_atmos_post_f112 + trigger ./jgfs_atmos_post_manager:release_post112 + edit FHRGRP '113' + edit FHRLST 'f112' + edit FHR 'f112' + edit HR '112' + task jgfs_atmos_post_f113 + trigger ./jgfs_atmos_post_manager:release_post113 + edit FHRGRP '114' + edit FHRLST 'f113' + edit FHR 'f113' + edit HR '113' + task jgfs_atmos_post_f114 + trigger ./jgfs_atmos_post_manager:release_post114 + edit FHRGRP '115' + edit FHRLST 'f114' + edit FHR 'f114' + edit HR '114' + task jgfs_atmos_post_f115 + trigger ./jgfs_atmos_post_manager:release_post115 + edit FHRGRP '116' + edit FHRLST 'f115' + edit FHR 'f115' + edit HR '115' + task jgfs_atmos_post_f116 + trigger ./jgfs_atmos_post_manager:release_post116 + edit FHRGRP '117' + edit FHRLST 'f116' + edit FHR 'f116' + edit HR '116' + task jgfs_atmos_post_f117 + trigger ./jgfs_atmos_post_manager:release_post117 + edit FHRGRP '118' + edit FHRLST 'f117' + edit FHR 'f117' + edit HR '117' + task jgfs_atmos_post_f118 + trigger ./jgfs_atmos_post_manager:release_post118 + edit FHRGRP '119' + edit FHRLST 'f118' + edit FHR 'f118' + edit HR '118' + task jgfs_atmos_post_f119 + trigger ./jgfs_atmos_post_manager:release_post119 + edit FHRGRP '120' + edit FHRLST 'f119' + edit FHR 'f119' + edit HR '119' + task jgfs_atmos_post_f120 + trigger ./jgfs_atmos_post_manager:release_post120 + edit FHRGRP '121' + edit FHRLST 'f120' + edit FHR 'f120' + edit HR '120' + task jgfs_atmos_post_f123 + trigger ./jgfs_atmos_post_manager:release_post123 + edit FHRGRP '122' + edit FHRLST 'f123' + edit FHR 'f123' + edit HR '123' + task jgfs_atmos_post_f126 + trigger ./jgfs_atmos_post_manager:release_post126 + edit FHRGRP '123' + edit FHRLST 'f126' + edit FHR 'f126' + edit HR '126' + task jgfs_atmos_post_f129 + trigger ./jgfs_atmos_post_manager:release_post129 + edit FHRGRP '124' + edit FHRLST 'f129' + edit FHR 'f129' + edit HR '129' + task jgfs_atmos_post_f132 + trigger ./jgfs_atmos_post_manager:release_post132 + edit FHRGRP '125' + edit FHRLST 'f132' + edit FHR 'f132' + edit HR '132' + task jgfs_atmos_post_f135 + trigger ./jgfs_atmos_post_manager:release_post135 + edit FHRGRP '126' + edit FHRLST 'f135' + edit FHR 'f135' + edit HR '135' + task jgfs_atmos_post_f138 + trigger ./jgfs_atmos_post_manager:release_post138 + edit FHRGRP '127' + edit FHRLST 'f138' + edit FHR 'f138' + edit HR '138' + task jgfs_atmos_post_f141 + trigger ./jgfs_atmos_post_manager:release_post141 + edit FHRGRP '128' + edit FHRLST 'f141' + edit FHR 'f141' + edit HR '141' + task jgfs_atmos_post_f144 + trigger ./jgfs_atmos_post_manager:release_post144 + edit FHRGRP '129' + edit FHRLST 'f144' + edit FHR 'f144' + edit HR '144' + task jgfs_atmos_post_f147 + trigger ./jgfs_atmos_post_manager:release_post147 + edit FHRGRP '130' + edit FHRLST 'f147' + edit FHR 'f147' + edit HR '147' + task jgfs_atmos_post_f150 + trigger ./jgfs_atmos_post_manager:release_post150 + edit FHRGRP '131' + edit FHRLST 'f150' + edit FHR 'f150' + edit HR '150' + task jgfs_atmos_post_f153 + trigger ./jgfs_atmos_post_manager:release_post153 + edit FHRGRP '132' + edit FHRLST 'f153' + edit FHR 'f153' + edit HR '153' + task jgfs_atmos_post_f156 + trigger ./jgfs_atmos_post_manager:release_post156 + edit FHRGRP '133' + edit FHRLST 'f156' + edit FHR 'f156' + edit HR '156' + task jgfs_atmos_post_f159 + trigger ./jgfs_atmos_post_manager:release_post159 + edit FHRGRP '134' + edit FHRLST 'f159' + edit FHR 'f159' + edit HR '159' + task jgfs_atmos_post_f162 + trigger ./jgfs_atmos_post_manager:release_post162 + edit FHRGRP '135' + edit FHRLST 'f162' + edit FHR 'f162' + edit HR '162' + task jgfs_atmos_post_f165 + trigger ./jgfs_atmos_post_manager:release_post165 + edit FHRGRP '136' + edit FHRLST 'f165' + edit FHR 'f165' + edit HR '165' + task jgfs_atmos_post_f168 + trigger ./jgfs_atmos_post_manager:release_post168 + edit FHRGRP '137' + edit FHRLST 'f168' + edit FHR 'f168' + edit HR '168' + task jgfs_atmos_post_f171 + trigger ./jgfs_atmos_post_manager:release_post171 + edit FHRGRP '138' + edit FHRLST 'f171' + edit FHR 'f171' + edit HR '171' + task jgfs_atmos_post_f174 + trigger ./jgfs_atmos_post_manager:release_post174 + edit FHRGRP '139' + edit FHRLST 'f174' + edit FHR 'f174' + edit HR '174' + task jgfs_atmos_post_f177 + trigger ./jgfs_atmos_post_manager:release_post177 + edit FHRGRP '140' + edit FHRLST 'f177' + edit FHR 'f177' + edit HR '177' + task jgfs_atmos_post_f180 + trigger ./jgfs_atmos_post_manager:release_post180 + edit FHRGRP '141' + edit FHRLST 'f180' + edit FHR 'f180' + edit HR '180' + task jgfs_atmos_post_f183 + trigger ./jgfs_atmos_post_manager:release_post183 + edit FHRGRP '142' + edit FHRLST 'f183' + edit FHR 'f183' + edit HR '183' + task jgfs_atmos_post_f186 + trigger ./jgfs_atmos_post_manager:release_post186 + edit FHRGRP '143' + edit FHRLST 'f186' + edit FHR 'f186' + edit HR '186' + task jgfs_atmos_post_f189 + trigger ./jgfs_atmos_post_manager:release_post189 + edit FHRGRP '144' + edit FHRLST 'f189' + edit FHR 'f189' + edit HR '189' + task jgfs_atmos_post_f192 + trigger ./jgfs_atmos_post_manager:release_post192 + edit FHRGRP '145' + edit FHRLST 'f192' + edit FHR 'f192' + edit HR '192' + task jgfs_atmos_post_f195 + trigger ./jgfs_atmos_post_manager:release_post195 + edit FHRGRP '146' + edit FHRLST 'f195' + edit FHR 'f195' + edit HR '195' + task jgfs_atmos_post_f198 + trigger ./jgfs_atmos_post_manager:release_post198 + edit FHRGRP '147' + edit FHRLST 'f198' + edit FHR 'f198' + edit HR '198' + task jgfs_atmos_post_f201 + trigger ./jgfs_atmos_post_manager:release_post201 + edit FHRGRP '148' + edit FHRLST 'f201' + edit FHR 'f201' + edit HR '201' + task jgfs_atmos_post_f204 + trigger ./jgfs_atmos_post_manager:release_post204 + edit FHRGRP '149' + edit FHRLST 'f204' + edit FHR 'f204' + edit HR '204' + task jgfs_atmos_post_f207 + trigger ./jgfs_atmos_post_manager:release_post207 + edit FHRGRP '150' + edit FHRLST 'f207' + edit FHR 'f207' + edit HR '207' + task jgfs_atmos_post_f210 + trigger ./jgfs_atmos_post_manager:release_post210 + edit FHRGRP '151' + edit FHRLST 'f210' + edit FHR 'f210' + edit HR '210' + task jgfs_atmos_post_f213 + trigger ./jgfs_atmos_post_manager:release_post213 + edit FHRGRP '152' + edit FHRLST 'f213' + edit FHR 'f213' + edit HR '213' + task jgfs_atmos_post_f216 + trigger ./jgfs_atmos_post_manager:release_post216 + edit FHRGRP '153' + edit FHRLST 'f216' + edit FHR 'f216' + edit HR '216' + task jgfs_atmos_post_f219 + trigger ./jgfs_atmos_post_manager:release_post219 + edit FHRGRP '154' + edit FHRLST 'f219' + edit FHR 'f219' + edit HR '219' + task jgfs_atmos_post_f222 + trigger ./jgfs_atmos_post_manager:release_post222 + edit FHRGRP '155' + edit FHRLST 'f222' + edit FHR 'f222' + edit HR '222' + task jgfs_atmos_post_f225 + trigger ./jgfs_atmos_post_manager:release_post225 + edit FHRGRP '156' + edit FHRLST 'f225' + edit FHR 'f225' + edit HR '225' + task jgfs_atmos_post_f228 + trigger ./jgfs_atmos_post_manager:release_post228 + edit FHRGRP '157' + edit FHRLST 'f228' + edit FHR 'f228' + edit HR '228' + task jgfs_atmos_post_f231 + trigger ./jgfs_atmos_post_manager:release_post231 + edit FHRGRP '158' + edit FHRLST 'f231' + edit FHR 'f231' + edit HR '231' + task jgfs_atmos_post_f234 + trigger ./jgfs_atmos_post_manager:release_post234 + edit FHRGRP '159' + edit FHRLST 'f234' + edit FHR 'f234' + edit HR '234' + task jgfs_atmos_post_f237 + trigger ./jgfs_atmos_post_manager:release_post237 + edit FHRGRP '160' + edit FHRLST 'f237' + edit FHR 'f237' + edit HR '237' + task jgfs_atmos_post_f240 + trigger ./jgfs_atmos_post_manager:release_post240 + edit FHRGRP '161' + edit FHRLST 'f240' + edit FHR 'f240' + edit HR '240' + task jgfs_atmos_post_f243 + trigger ./jgfs_atmos_post_manager:release_post243 + edit FHRGRP '162' + edit FHRLST 'f243' + edit FHR 'f243' + edit HR '243' + task jgfs_atmos_post_f246 + trigger ./jgfs_atmos_post_manager:release_post246 + edit FHRGRP '163' + edit FHRLST 'f246' + edit FHR 'f246' + edit HR '246' + task jgfs_atmos_post_f249 + trigger ./jgfs_atmos_post_manager:release_post249 + edit FHRGRP '164' + edit FHRLST 'f249' + edit FHR 'f249' + edit HR '249' + task jgfs_atmos_post_f252 + trigger ./jgfs_atmos_post_manager:release_post252 + edit FHRGRP '165' + edit FHRLST 'f252' + edit FHR 'f252' + edit HR '252' + task jgfs_atmos_post_f255 + trigger ./jgfs_atmos_post_manager:release_post255 + edit FHRGRP '166' + edit FHRLST 'f255' + edit FHR 'f255' + edit HR '255' + task jgfs_atmos_post_f258 + trigger ./jgfs_atmos_post_manager:release_post258 + edit FHRGRP '167' + edit FHRLST 'f258' + edit FHR 'f258' + edit HR '258' + task jgfs_atmos_post_f261 + trigger ./jgfs_atmos_post_manager:release_post261 + edit FHRGRP '168' + edit FHRLST 'f261' + edit FHR 'f261' + edit HR '261' + task jgfs_atmos_post_f264 + trigger ./jgfs_atmos_post_manager:release_post264 + edit FHRGRP '169' + edit FHRLST 'f264' + edit FHR 'f264' + edit HR '264' + task jgfs_atmos_post_f267 + trigger ./jgfs_atmos_post_manager:release_post267 + edit FHRGRP '170' + edit FHRLST 'f267' + edit FHR 'f267' + edit HR '267' + task jgfs_atmos_post_f270 + trigger ./jgfs_atmos_post_manager:release_post270 + edit FHRGRP '171' + edit FHRLST 'f270' + edit FHR 'f270' + edit HR '270' + task jgfs_atmos_post_f273 + trigger ./jgfs_atmos_post_manager:release_post273 + edit FHRGRP '172' + edit FHRLST 'f273' + edit FHR 'f273' + edit HR '273' + task jgfs_atmos_post_f276 + trigger ./jgfs_atmos_post_manager:release_post276 + edit FHRGRP '173' + edit FHRLST 'f276' + edit FHR 'f276' + edit HR '276' + task jgfs_atmos_post_f279 + trigger ./jgfs_atmos_post_manager:release_post279 + edit FHRGRP '174' + edit FHRLST 'f279' + edit FHR 'f279' + edit HR '279' + task jgfs_atmos_post_f282 + trigger ./jgfs_atmos_post_manager:release_post282 + edit FHRGRP '175' + edit FHRLST 'f282' + edit FHR 'f282' + edit HR '282' + task jgfs_atmos_post_f285 + trigger ./jgfs_atmos_post_manager:release_post285 + edit FHRGRP '176' + edit FHRLST 'f285' + edit FHR 'f285' + edit HR '285' + task jgfs_atmos_post_f288 + trigger ./jgfs_atmos_post_manager:release_post288 + edit FHRGRP '177' + edit FHRLST 'f288' + edit FHR 'f288' + edit HR '288' + task jgfs_atmos_post_f291 + trigger ./jgfs_atmos_post_manager:release_post291 + edit FHRGRP '178' + edit FHRLST 'f291' + edit FHR 'f291' + edit HR '291' + task jgfs_atmos_post_f294 + trigger ./jgfs_atmos_post_manager:release_post294 + edit FHRGRP '179' + edit FHRLST 'f294' + edit FHR 'f294' + edit HR '294' + task jgfs_atmos_post_f297 + trigger ./jgfs_atmos_post_manager:release_post297 + edit FHRGRP '180' + edit FHRLST 'f297' + edit FHR 'f297' + edit HR '297' + task jgfs_atmos_post_f300 + trigger ./jgfs_atmos_post_manager:release_post300 + edit FHRGRP '181' + edit FHRLST 'f300' + edit FHR 'f300' + edit HR '300' + task jgfs_atmos_post_f303 + trigger ./jgfs_atmos_post_manager:release_post303 + edit FHRGRP '182' + edit FHRLST 'f303' + edit FHR 'f303' + edit HR '303' + task jgfs_atmos_post_f306 + trigger ./jgfs_atmos_post_manager:release_post306 + edit FHRGRP '183' + edit FHRLST 'f306' + edit FHR 'f306' + edit HR '306' + task jgfs_atmos_post_f309 + trigger ./jgfs_atmos_post_manager:release_post309 + edit FHRGRP '184' + edit FHRLST 'f309' + edit FHR 'f309' + edit HR '309' + task jgfs_atmos_post_f312 + trigger ./jgfs_atmos_post_manager:release_post312 + edit FHRGRP '185' + edit FHRLST 'f312' + edit FHR 'f312' + edit HR '312' + task jgfs_atmos_post_f315 + trigger ./jgfs_atmos_post_manager:release_post315 + edit FHRGRP '186' + edit FHRLST 'f315' + edit FHR 'f315' + edit HR '315' + task jgfs_atmos_post_f318 + trigger ./jgfs_atmos_post_manager:release_post318 + edit FHRGRP '187' + edit FHRLST 'f318' + edit FHR 'f318' + edit HR '318' + task jgfs_atmos_post_f321 + trigger ./jgfs_atmos_post_manager:release_post321 + edit FHRGRP '188' + edit FHRLST 'f321' + edit FHR 'f321' + edit HR '321' + task jgfs_atmos_post_f324 + trigger ./jgfs_atmos_post_manager:release_post324 + edit FHRGRP '189' + edit FHRLST 'f324' + edit FHR 'f324' + edit HR '324' + task jgfs_atmos_post_f327 + trigger ./jgfs_atmos_post_manager:release_post327 + edit FHRGRP '190' + edit FHRLST 'f327' + edit FHR 'f327' + edit HR '327' + task jgfs_atmos_post_f330 + trigger ./jgfs_atmos_post_manager:release_post330 + edit FHRGRP '191' + edit FHRLST 'f330' + edit FHR 'f330' + edit HR '330' + task jgfs_atmos_post_f333 + trigger ./jgfs_atmos_post_manager:release_post333 + edit FHRGRP '192' + edit FHRLST 'f333' + edit FHR 'f333' + edit HR '333' + task jgfs_atmos_post_f336 + trigger ./jgfs_atmos_post_manager:release_post336 + edit FHRGRP '193' + edit FHRLST 'f336' + edit FHR 'f336' + edit HR '336' + task jgfs_atmos_post_f339 + trigger ./jgfs_atmos_post_manager:release_post339 + edit FHRGRP '194' + edit FHRLST 'f339' + edit FHR 'f339' + edit HR '339' + task jgfs_atmos_post_f342 + trigger ./jgfs_atmos_post_manager:release_post342 + edit FHRGRP '195' + edit FHRLST 'f342' + edit FHR 'f342' + edit HR '342' + task jgfs_atmos_post_f345 + trigger ./jgfs_atmos_post_manager:release_post345 + edit FHRGRP '196' + edit FHRLST 'f345' + edit FHR 'f345' + edit HR '345' + task jgfs_atmos_post_f348 + trigger ./jgfs_atmos_post_manager:release_post348 + edit FHRGRP '197' + edit FHRLST 'f348' + edit FHR 'f348' + edit HR '348' + task jgfs_atmos_post_f351 + trigger ./jgfs_atmos_post_manager:release_post351 + edit FHRGRP '198' + edit FHRLST 'f351' + edit FHR 'f351' + edit HR '351' + task jgfs_atmos_post_f354 + trigger ./jgfs_atmos_post_manager:release_post354 + edit FHRGRP '199' + edit FHRLST 'f354' + edit FHR 'f354' + edit HR '354' + task jgfs_atmos_post_f357 + trigger ./jgfs_atmos_post_manager:release_post357 + edit FHRGRP '200' + edit FHRLST 'f357' + edit FHR 'f357' + edit HR '357' + task jgfs_atmos_post_f360 + trigger ./jgfs_atmos_post_manager:release_post360 + edit FHRGRP '201' + edit FHRLST 'f360' + edit FHR 'f360' + edit HR '360' + task jgfs_atmos_post_f363 + trigger ./jgfs_atmos_post_manager:release_post363 + edit FHRGRP '202' + edit FHRLST 'f363' + edit FHR 'f363' + edit HR '363' + task jgfs_atmos_post_f366 + trigger ./jgfs_atmos_post_manager:release_post366 + edit FHRGRP '203' + edit FHRLST 'f366' + edit FHR 'f366' + edit HR '366' + task jgfs_atmos_post_f369 + trigger ./jgfs_atmos_post_manager:release_post369 + edit FHRGRP '204' + edit FHRLST 'f369' + edit FHR 'f369' + edit HR '369' + task jgfs_atmos_post_f372 + trigger ./jgfs_atmos_post_manager:release_post372 + edit FHRGRP '205' + edit FHRLST 'f372' + edit FHR 'f372' + edit HR '372' + task jgfs_atmos_post_f375 + trigger ./jgfs_atmos_post_manager:release_post375 + edit FHRGRP '206' + edit FHRLST 'f375' + edit FHR 'f375' + edit HR '375' + task jgfs_atmos_post_f378 + trigger ./jgfs_atmos_post_manager:release_post378 + edit FHRGRP '207' + edit FHRLST 'f378' + edit FHR 'f378' + edit HR '378' + task jgfs_atmos_post_f381 + trigger ./jgfs_atmos_post_manager:release_post381 + edit FHRGRP '208' + edit FHRLST 'f381' + edit FHR 'f381' + edit HR '381' + task jgfs_atmos_post_f384 + trigger ./jgfs_atmos_post_manager:release_post384 + edit FHRGRP '209' + edit FHRLST 'f384' + edit FHR 'f384' + edit HR '384' + endfamily + family post_processing + task jgfs_atmos_wafs_gcip + trigger ../post/jgfs_atmos_post_f003 == complete + time 04:40 + family grib_wafs + task jgfs_atmos_wafs_f00 + trigger ../../post/jgfs_atmos_post_f000 == complete and ../../post/jgfs_atmos_post_f120 == complete and ../grib2_wafs/jgfs_atmos_wafs_grib2 == complete + edit FCSTHR '00' + task jgfs_atmos_wafs_f06 + trigger ../../post/jgfs_atmos_post_f006 == complete and ./jgfs_atmos_wafs_f00 == complete + edit FCSTHR '06' + task jgfs_atmos_wafs_f12 + trigger ../../post/jgfs_atmos_post_f012 == complete and ./jgfs_atmos_wafs_f06 == complete + edit FCSTHR '12' + task jgfs_atmos_wafs_f18 + trigger ../../post/jgfs_atmos_post_f018 == complete and ./jgfs_atmos_wafs_f12 == complete + edit FCSTHR '18' + task jgfs_atmos_wafs_f24 + trigger ../../post/jgfs_atmos_post_f024 == complete and ./jgfs_atmos_wafs_f18 == complete + edit FCSTHR '24' + task jgfs_atmos_wafs_f30 + trigger ../../post/jgfs_atmos_post_f030 == complete and ./jgfs_atmos_wafs_f24 == complete + edit FCSTHR '30' + task jgfs_atmos_wafs_f36 + trigger ../../post/jgfs_atmos_post_f036 == complete and ./jgfs_atmos_wafs_f30 == complete + edit FCSTHR '36' + task jgfs_atmos_wafs_f42 + trigger ../../post/jgfs_atmos_post_f042 == complete and ./jgfs_atmos_wafs_f36 == complete + edit FCSTHR '42' + task jgfs_atmos_wafs_f48 + trigger ../../post/jgfs_atmos_post_f048 == complete and ./jgfs_atmos_wafs_f42 == complete + edit FCSTHR '48' + task jgfs_atmos_wafs_f54 + trigger ../../post/jgfs_atmos_post_f054 == complete and ./jgfs_atmos_wafs_f48 == complete + edit FCSTHR '54' + task jgfs_atmos_wafs_f60 + trigger ../../post/jgfs_atmos_post_f060 == complete and ./jgfs_atmos_wafs_f54 == complete + edit FCSTHR '60' + task jgfs_atmos_wafs_f66 + trigger ../../post/jgfs_atmos_post_f066 == complete and ./jgfs_atmos_wafs_f60 == complete + edit FCSTHR '66' + task jgfs_atmos_wafs_f72 + trigger ../../post/jgfs_atmos_post_f072 == complete and ./jgfs_atmos_wafs_f66 == complete + edit FCSTHR '72' + task jgfs_atmos_wafs_f78 + trigger ../../post/jgfs_atmos_post_f078 == complete and ./jgfs_atmos_wafs_f72 == complete + edit FCSTHR '78' + task jgfs_atmos_wafs_f84 + trigger ../../post/jgfs_atmos_post_f084 == complete and ./jgfs_atmos_wafs_f78 == complete + edit FCSTHR '84' + task jgfs_atmos_wafs_f90 + trigger ../../post/jgfs_atmos_post_f090 == complete and ./jgfs_atmos_wafs_f84 == complete + edit FCSTHR '90' + task jgfs_atmos_wafs_f96 + trigger ../../post/jgfs_atmos_post_f096 == complete and ./jgfs_atmos_wafs_f90 == complete + edit FCSTHR '96' + task jgfs_atmos_wafs_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete and ./jgfs_atmos_wafs_f96 == complete + edit FCSTHR '102' + task jgfs_atmos_wafs_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete and ./jgfs_atmos_wafs_f102 == complete + edit FCSTHR '108' + task jgfs_atmos_wafs_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete and ./jgfs_atmos_wafs_f108 == complete + edit FCSTHR '114' + task jgfs_atmos_wafs_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete and ./jgfs_atmos_wafs_f114 == complete + edit FCSTHR '120' + endfamily + family grib2_wafs + task jgfs_atmos_wafs_grib2 + trigger ../../post/jgfs_atmos_post_f000 == complete + task jgfs_atmos_wafs_grib2_0p25 + trigger ../../post/jgfs_atmos_post_f036 == complete + task jgfs_atmos_wafs_blending + trigger ./jgfs_atmos_wafs_grib2 == complete + time 04:33 + task jgfs_atmos_wafs_blending_0p25 + trigger ./jgfs_atmos_wafs_grib2_0p25 == complete + endfamily + family bufr_sounding + task jgfs_atmos_postsnd + trigger ../../post/jgfs_atmos_post_manager:release_post000 + endfamily + family bulletins + task jgfs_atmos_fbwind + trigger ../../post/jgfs_atmos_post_f006 == complete and ../../post/jgfs_atmos_post_f012 == complete and ../../post/jgfs_atmos_post_f024 == complete + endfamily + family awips_20km_1p0 + task jgfs_atmos_awips_f000 + trigger ../../post/jgfs_atmos_post_f000 == complete + edit FHRGRP '000' + edit FHRLST 'f000' + edit FCSTHR '000' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f003 + trigger ../../post/jgfs_atmos_post_f003 == complete + edit FHRGRP '003' + edit FHRLST 'f003' + edit FCSTHR '003' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f006 + trigger ../../post/jgfs_atmos_post_f006 == complete + edit FHRGRP '006' + edit FHRLST 'f006' + edit FCSTHR '006' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f009 + trigger ../../post/jgfs_atmos_post_f009 == complete + edit FHRGRP '009' + edit FHRLST 'f009' + edit FCSTHR '009' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f012 + trigger ../../post/jgfs_atmos_post_f012 == complete + edit FHRGRP '012' + edit FHRLST 'f012' + edit FCSTHR '012' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f015 + trigger ../../post/jgfs_atmos_post_f015 == complete + edit FHRGRP '015' + edit FHRLST 'f015' + edit FCSTHR '015' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f018 + trigger ../../post/jgfs_atmos_post_f018 == complete + edit FHRGRP '018' + edit FHRLST 'f018' + edit FCSTHR '018' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f021 + trigger ../../post/jgfs_atmos_post_f021 == complete + edit FHRGRP '021' + edit FHRLST 'f021' + edit FCSTHR '021' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f024 + trigger ../../post/jgfs_atmos_post_f024 == complete + edit FHRGRP '024' + edit FHRLST 'f024' + edit FCSTHR '024' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f027 + trigger ../../post/jgfs_atmos_post_f027 == complete + edit FHRGRP '027' + edit FHRLST 'f027' + edit FCSTHR '027' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f030 + trigger ../../post/jgfs_atmos_post_f030 == complete + edit FHRGRP '030' + edit FHRLST 'f030' + edit FCSTHR '030' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f033 + trigger ../../post/jgfs_atmos_post_f033 == complete + edit FHRGRP '033' + edit FHRLST 'f033' + edit FCSTHR '033' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f036 + trigger ../../post/jgfs_atmos_post_f036 == complete + edit FHRGRP '036' + edit FHRLST 'f036' + edit FCSTHR '036' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f039 + trigger ../../post/jgfs_atmos_post_f039 == complete + edit FHRGRP '039' + edit FHRLST 'f039' + edit FCSTHR '039' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f042 + trigger ../../post/jgfs_atmos_post_f042 == complete + edit FHRGRP '042' + edit FHRLST 'f042' + edit FCSTHR '042' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f045 + trigger ../../post/jgfs_atmos_post_f045 == complete + edit FHRGRP '045' + edit FHRLST 'f045' + edit FCSTHR '045' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f048 + trigger ../../post/jgfs_atmos_post_f048 == complete + edit FHRGRP '048' + edit FHRLST 'f048' + edit FCSTHR '048' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f051 + trigger ../../post/jgfs_atmos_post_f051 == complete + edit FHRGRP '051' + edit FHRLST 'f051' + edit FCSTHR '051' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f054 + trigger ../../post/jgfs_atmos_post_f054 == complete + edit FHRGRP '054' + edit FHRLST 'f054' + edit FCSTHR '054' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f057 + trigger ../../post/jgfs_atmos_post_f057 == complete + edit FHRGRP '057' + edit FHRLST 'f057' + edit FCSTHR '057' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f060 + trigger ../../post/jgfs_atmos_post_f060 == complete + edit FHRGRP '060' + edit FHRLST 'f060' + edit FCSTHR '060' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f063 + trigger ../../post/jgfs_atmos_post_f063 == complete + edit FHRGRP '063' + edit FHRLST 'f063' + edit FCSTHR '063' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f066 + trigger ../../post/jgfs_atmos_post_f066 == complete + edit FHRGRP '066' + edit FHRLST 'f066' + edit FCSTHR '066' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f069 + trigger ../../post/jgfs_atmos_post_f069 == complete + edit FHRGRP '069' + edit FHRLST 'f069' + edit FCSTHR '069' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f072 + trigger ../../post/jgfs_atmos_post_f072 == complete + edit FHRGRP '072' + edit FHRLST 'f072' + edit FCSTHR '072' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f075 + trigger ../../post/jgfs_atmos_post_f075 == complete + edit FHRGRP '075' + edit FHRLST 'f075' + edit FCSTHR '075' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f078 + trigger ../../post/jgfs_atmos_post_f078 == complete + edit FHRGRP '078' + edit FHRLST 'f078' + edit FCSTHR '078' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f081 + trigger ../../post/jgfs_atmos_post_f081 == complete + edit FHRGRP '081' + edit FHRLST 'f081' + edit FCSTHR '081' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f084 + trigger ../../post/jgfs_atmos_post_f084 == complete + edit FHRGRP '084' + edit FHRLST 'f084' + edit FCSTHR '084' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f090 + trigger ../../post/jgfs_atmos_post_f090 == complete + edit FHRGRP '090' + edit FHRLST 'f090' + edit FCSTHR '090' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f096 + trigger ../../post/jgfs_atmos_post_f096 == complete + edit FHRGRP '096' + edit FHRLST 'f096' + edit FCSTHR '096' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete + edit FHRGRP '102' + edit FHRLST 'f102' + edit FCSTHR '102' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete + edit FHRGRP '108' + edit FHRLST 'f108' + edit FCSTHR '108' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete + edit FHRGRP '114' + edit FHRLST 'f114' + edit FCSTHR '114' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete + edit FHRGRP '120' + edit FHRLST 'f120' + edit FCSTHR '120' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f126 + trigger ../../post/jgfs_atmos_post_f126 == complete + edit FHRGRP '126' + edit FHRLST 'f126' + edit FCSTHR '126' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f132 + trigger ../../post/jgfs_atmos_post_f132 == complete + edit FHRGRP '132' + edit FHRLST 'f132' + edit FCSTHR '132' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f138 + trigger ../../post/jgfs_atmos_post_f138 == complete + edit FHRGRP '138' + edit FHRLST 'f138' + edit FCSTHR '138' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f144 + trigger ../../post/jgfs_atmos_post_f144 == complete + edit FHRGRP '144' + edit FHRLST 'f144' + edit FCSTHR '144' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f150 + trigger ../../post/jgfs_atmos_post_f150 == complete + edit FHRGRP '150' + edit FHRLST 'f150' + edit FCSTHR '150' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f156 + trigger ../../post/jgfs_atmos_post_f156 == complete + edit FHRGRP '156' + edit FHRLST 'f156' + edit FCSTHR '156' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f162 + trigger ../../post/jgfs_atmos_post_f162 == complete + edit FHRGRP '162' + edit FHRLST 'f162' + edit FCSTHR '162' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f168 + trigger ../../post/jgfs_atmos_post_f168 == complete + edit FHRGRP '168' + edit FHRLST 'f168' + edit FCSTHR '168' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f174 + trigger ../../post/jgfs_atmos_post_f174 == complete + edit FHRGRP '174' + edit FHRLST 'f174' + edit FCSTHR '174' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f180 + trigger ../../post/jgfs_atmos_post_f180 == complete + edit FHRGRP '180' + edit FHRLST 'f180' + edit FCSTHR '180' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f186 + trigger ../../post/jgfs_atmos_post_f186 == complete + edit FHRGRP '186' + edit FHRLST 'f186' + edit FCSTHR '186' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f192 + trigger ../../post/jgfs_atmos_post_f192 == complete + edit FHRGRP '192' + edit FHRLST 'f192' + edit FCSTHR '192' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f198 + trigger ../../post/jgfs_atmos_post_f198 == complete + edit FHRGRP '198' + edit FHRLST 'f198' + edit FCSTHR '198' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f204 + trigger ../../post/jgfs_atmos_post_f204 == complete + edit FHRGRP '204' + edit FHRLST 'f204' + edit FCSTHR '204' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f210 + trigger ../../post/jgfs_atmos_post_f210 == complete + edit FHRGRP '210' + edit FHRLST 'f210' + edit FCSTHR '210' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f216 + trigger ../../post/jgfs_atmos_post_f216 == complete + edit FHRGRP '216' + edit FHRLST 'f216' + edit FCSTHR '216' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f222 + trigger ../../post/jgfs_atmos_post_f222 == complete + edit FHRGRP '222' + edit FHRLST 'f222' + edit FCSTHR '222' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f228 + trigger ../../post/jgfs_atmos_post_f228 == complete + edit FHRGRP '228' + edit FHRLST 'f228' + edit FCSTHR '228' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f234 + trigger ../../post/jgfs_atmos_post_f234 == complete + edit FHRGRP '234' + edit FHRLST 'f234' + edit FCSTHR '234' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f240 + trigger ../../post/jgfs_atmos_post_f240 == complete + edit FHRGRP '240' + edit FHRLST 'f240' + edit FCSTHR '240' + edit TRDRUN 'YES' + endfamily + family awips_g2 + task jgfs_atmos_awips_g2_f000 + trigger ../../post/jgfs_atmos_post_f000 == complete + edit FHRGRP '000' + edit FHRLST 'f000' + edit FCSTHR '000' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f006 + trigger ../../post/jgfs_atmos_post_f006 == complete + edit FHRGRP '006' + edit FHRLST 'f006' + edit FCSTHR '006' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f012 + trigger ../../post/jgfs_atmos_post_f012 == complete + edit FHRGRP '012' + edit FHRLST 'f012' + edit FCSTHR '012' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f018 + trigger ../../post/jgfs_atmos_post_f018 == complete + edit FHRGRP '018' + edit FHRLST 'f018' + edit FCSTHR '018' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f024 + trigger ../../post/jgfs_atmos_post_f024 == complete + edit FHRGRP '024' + edit FHRLST 'f024' + edit FCSTHR '024' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f030 + trigger ../../post/jgfs_atmos_post_f030 == complete + edit FHRGRP '030' + edit FHRLST 'f030' + edit FCSTHR '030' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f036 + trigger ../../post/jgfs_atmos_post_f036 == complete + edit FHRGRP '036' + edit FHRLST 'f036' + edit FCSTHR '036' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f042 + trigger ../../post/jgfs_atmos_post_f042 == complete + edit FHRGRP '042' + edit FHRLST 'f042' + edit FCSTHR '042' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f048 + trigger ../../post/jgfs_atmos_post_f048 == complete + edit FHRGRP '048' + edit FHRLST 'f048' + edit FCSTHR '048' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f054 + trigger ../../post/jgfs_atmos_post_f054 == complete + edit FHRGRP '054' + edit FHRLST 'f054' + edit FCSTHR '054' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f060 + trigger ../../post/jgfs_atmos_post_f060 == complete + edit FHRGRP '060' + edit FHRLST 'f060' + edit FCSTHR '060' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f066 + trigger ../../post/jgfs_atmos_post_f066 == complete + edit FHRGRP '066' + edit FHRLST 'f066' + edit FCSTHR '066' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f072 + trigger ../../post/jgfs_atmos_post_f072 == complete + edit FHRGRP '072' + edit FHRLST 'f072' + edit FCSTHR '072' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f078 + trigger ../../post/jgfs_atmos_post_f078 == complete + edit FHRGRP '078' + edit FHRLST 'f078' + edit FCSTHR '078' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f084 + trigger ../../post/jgfs_atmos_post_f084 == complete + edit FHRGRP '084' + edit FHRLST 'f084' + edit FCSTHR '084' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f090 + trigger ../../post/jgfs_atmos_post_f090 == complete + edit FHRGRP '090' + edit FHRLST 'f090' + edit FCSTHR '090' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f096 + trigger ../../post/jgfs_atmos_post_f096 == complete + edit FHRGRP '096' + edit FHRLST 'f096' + edit FCSTHR '096' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete + edit FHRGRP '102' + edit FHRLST 'f102' + edit FCSTHR '102' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete + edit FHRGRP '108' + edit FHRLST 'f108' + edit FCSTHR '108' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete + edit FHRGRP '114' + edit FHRLST 'f114' + edit FCSTHR '114' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete + edit FHRGRP '120' + edit FHRLST 'f120' + edit FCSTHR '120' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f126 + trigger ../../post/jgfs_atmos_post_f126 == complete + edit FHRGRP '126' + edit FHRLST 'f126' + edit FCSTHR '126' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f132 + trigger ../../post/jgfs_atmos_post_f132 == complete + edit FHRGRP '132' + edit FHRLST 'f132' + edit FCSTHR '132' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f138 + trigger ../../post/jgfs_atmos_post_f138 == complete + edit FHRGRP '138' + edit FHRLST 'f138' + edit FCSTHR '138' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f144 + trigger ../../post/jgfs_atmos_post_f144 == complete + edit FHRGRP '144' + edit FHRLST 'f144' + edit FCSTHR '144' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f150 + trigger ../../post/jgfs_atmos_post_f150 == complete + edit FHRGRP '150' + edit FHRLST 'f150' + edit FCSTHR '150' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f156 + trigger ../../post/jgfs_atmos_post_f156 == complete + edit FHRGRP '156' + edit FHRLST 'f156' + edit FCSTHR '156' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f162 + trigger ../../post/jgfs_atmos_post_f162 == complete + edit FHRGRP '162' + edit FHRLST 'f162' + edit FCSTHR '162' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f168 + trigger ../../post/jgfs_atmos_post_f168 == complete + edit FHRGRP '168' + edit FHRLST 'f168' + edit FCSTHR '168' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f174 + trigger ../../post/jgfs_atmos_post_f174 == complete + edit FHRGRP '174' + edit FHRLST 'f174' + edit FCSTHR '174' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f180 + trigger ../../post/jgfs_atmos_post_f180 == complete + edit FHRGRP '180' + edit FHRLST 'f180' + edit FCSTHR '180' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f186 + trigger ../../post/jgfs_atmos_post_f186 == complete + edit FHRGRP '186' + edit FHRLST 'f186' + edit FCSTHR '186' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f192 + trigger ../../post/jgfs_atmos_post_f192 == complete + edit FHRGRP '192' + edit FHRLST 'f192' + edit FCSTHR '192' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f198 + trigger ../../post/jgfs_atmos_post_f198 == complete + edit FHRGRP '198' + edit FHRLST 'f198' + edit FCSTHR '198' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f204 + trigger ../../post/jgfs_atmos_post_f204 == complete + edit FHRGRP '204' + edit FHRLST 'f204' + edit FCSTHR '204' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f210 + trigger ../../post/jgfs_atmos_post_f210 == complete + edit FHRGRP '210' + edit FHRLST 'f210' + edit FCSTHR '210' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f216 + trigger ../../post/jgfs_atmos_post_f216 == complete + edit FHRGRP '216' + edit FHRLST 'f216' + edit FCSTHR '216' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f222 + trigger ../../post/jgfs_atmos_post_f222 == complete + edit FHRGRP '222' + edit FHRLST 'f222' + edit FCSTHR '222' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f228 + trigger ../../post/jgfs_atmos_post_f228 == complete + edit FHRGRP '228' + edit FHRLST 'f228' + edit FCSTHR '228' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f234 + trigger ../../post/jgfs_atmos_post_f234 == complete + edit FHRGRP '234' + edit FHRLST 'f234' + edit FCSTHR '234' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f240 + trigger ../../post/jgfs_atmos_post_f240 == complete + edit FHRGRP '240' + edit FHRLST 'f240' + edit FCSTHR '240' + edit TRDRUN 'YES' + endfamily + endfamily + family gempak + task jgfs_atmos_gempak + trigger ../../atmos/analysis/jgfs_atmos_analysis == complete + task jgfs_atmos_gempak_meta + trigger ../../atmos/analysis/jgfs_atmos_analysis == complete + task jgfs_atmos_gempak_ncdc_upapgif + trigger ./jgfs_atmos_gempak == active or ./jgfs_atmos_gempak == complete + task jgfs_atmos_npoess_pgrb2_0p5deg + trigger ../post/jgfs_atmos_post_manager:release_post180 + task jgfs_atmos_pgrb2_spec_gempak + trigger ./jgfs_atmos_npoess_pgrb2_0p5deg == complete + endfamily + family verf + task jgfs_atmos_vminmon + trigger ../analysis/jgfs_atmos_analysis == complete + endfamily + endfamily + family wave + family init + task jgfs_wave_init + trigger ../../atmos/obsproc/prep/jgfs_atmos_prep == complete + endfamily + family prep + task jgfs_wave_prep + trigger ../init/jgfs_wave_init == complete + endfamily + family post + task jgfs_wave_postsbs + trigger ../../atmos/post/jgfs_atmos_post_manager:release_post000 + task jgfs_wave_postpnt + trigger ../../jgfs_forecast == complete + task jgfs_wave_post_bndpnt + trigger ../../atmos/post/jgfs_atmos_post_manager:release_post180 + task jgfs_wave_prdgen_gridded + trigger ./jgfs_wave_postsbs == active or ./jgfs_wave_postsbs == complete + task jgfs_wave_prdgen_bulls + trigger ./jgfs_wave_postpnt == complete and ./jgfs_wave_postsbs == complete + endfamily + family gempak + task jgfs_wave_gempak + trigger ../post/jgfs_wave_postsbs == active or ../post/jgfs_wave_postsbs == complete + endfamily + endfamily + task jgfs_forecast + trigger ./atmos/analysis/jgfs_atmos_analysis:release_fcst and ./wave/prep/jgfs_wave_prep == complete + endfamily + family gdas + edit CYC '00' + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3' + edit PROJ 'GDAS-OPS' + edit NET 'gfs' + edit RUN 'gdas' + edit COM '/gpfs/dell1/nco/ops/com' + edit QUEUESHARED 'prod_shared' + edit QUEUESERV 'prod_transfer' + edit QUEUE 'prod' + family atmos + family obsproc + family dump + task jgdas_atmos_tropcy_qc_reloc + time 05:45 + task jgdas_atmos_dump + event 1 release_sfcprep + time 05:50 + task jgdas_atmos_dump_post + trigger jgdas_atmos_dump == complete + event 1 release_gdas00_dump_alert + task jgdas_atmos_dump_alert + trigger jgdas_atmos_dump_post:release_gdas00_dump_alert + endfamily + family prep + task jgdas_atmos_emcsfc_sfc_prep + trigger ../dump/jgdas_atmos_dump:release_sfcprep + task jgdas_atmos_prep + trigger ../dump/jgdas_atmos_dump == complete and ../dump/jgdas_atmos_tropcy_qc_reloc == complete + task jgdas_atmos_prep_post + trigger ./jgdas_atmos_prep == complete and ../../analysis/jgdas_atmos_analysis == complete + endfamily + endfamily + family init + task jgdas_atmos_gldas + trigger ../analysis/jgdas_atmos_analysis == complete + endfamily + family analysis + task jgdas_atmos_analysis + trigger ../obsproc/prep/jgdas_atmos_prep == complete and ../obsproc/prep/jgdas_atmos_emcsfc_sfc_prep == complete + event 1 release_fcst + task jgdas_atmos_analysis_calc + trigger ./jgdas_atmos_analysis == complete + task jgdas_atmos_analysis_diag + trigger ./jgdas_atmos_analysis == complete + endfamily + family post + task jgdas_atmos_post_manager + trigger ../../jgdas_forecast == active + event 1 release_postanl + event 2 release_post000 + event 3 release_post001 + event 4 release_post002 + event 5 release_post003 + event 6 release_post004 + event 7 release_post005 + event 8 release_post006 + event 9 release_post007 + event 10 release_post008 + event 11 release_post009 + task jgdas_atmos_post_anl + trigger ./jgdas_atmos_post_manager:release_postanl + edit FHRGRP '000' + edit FHRLST 'anl' + edit HR 'anl' + edit FHR 'anl' + task jgdas_atmos_post_f000 + trigger ./jgdas_atmos_post_manager:release_post000 + edit FHR 'f000' + edit HR '000' + edit FHRGRP '001' + edit FHRLST 'f000' + task jgdas_atmos_post_f001 + trigger ./jgdas_atmos_post_manager:release_post001 + edit FHR 'f001' + edit HR '001' + edit FHRGRP '002' + edit FHRLST 'f001' + task jgdas_atmos_post_f002 + trigger ./jgdas_atmos_post_manager:release_post002 + edit FHR 'f002' + edit HR '002' + edit FHRGRP '003' + edit FHRLST 'f002' + task jgdas_atmos_post_f003 + trigger ./jgdas_atmos_post_manager:release_post003 + edit FHR 'f003' + edit HR '003' + edit FHRGRP '004' + edit FHRLST 'f003' + task jgdas_atmos_post_f004 + trigger ./jgdas_atmos_post_manager:release_post004 + edit FHR 'f004' + edit HR '004' + edit FHRGRP '005' + edit FHRLST 'f004' + task jgdas_atmos_post_f005 + trigger ./jgdas_atmos_post_manager:release_post005 + edit FHR 'f005' + edit HR '005' + edit FHRGRP '006' + edit FHRLST 'f005' + task jgdas_atmos_post_f006 + trigger ./jgdas_atmos_post_manager:release_post006 + edit FHR 'f006' + edit HR '006' + edit FHRGRP '007' + edit FHRLST 'f006' + task jgdas_atmos_post_f007 + trigger ./jgdas_atmos_post_manager:release_post007 + edit FHR 'f007' + edit HR '007' + edit FHRGRP '008' + edit FHRLST 'f007' + task jgdas_atmos_post_f008 + trigger ./jgdas_atmos_post_manager:release_post008 + edit FHR 'f008' + edit HR '008' + edit FHRGRP '009' + edit FHRLST 'f008' + task jgdas_atmos_post_f009 + trigger ./jgdas_atmos_post_manager:release_post009 + edit FHR 'f009' + edit HR '009' + edit FHRGRP '010' + edit FHRLST 'f009' + endfamily + family post_processing + task jgdas_atmos_chgres_forenkf + trigger ../../jgdas_forecast == complete and ../../enkf/forecast == complete + endfamily + family gempak + task jgdas_atmos_gempak + trigger ../../jgdas_forecast == complete + task jgdas_atmos_gempak_meta_ncdc + trigger ./jgdas_atmos_gempak == complete + endfamily + family verf + task jgdas_atmos_vminmon + trigger ../analysis/jgdas_atmos_analysis == complete + task jgdas_atmos_verfrad + trigger ../analysis/jgdas_atmos_analysis_diag == complete + task jgdas_atmos_verfozn + trigger ../analysis/jgdas_atmos_analysis_diag == complete + endfamily + endfamily + family wave + family init + task jgdas_wave_init + trigger ../../atmos/obsproc/prep/jgdas_atmos_prep == complete + endfamily + family prep + task jgdas_wave_prep + trigger ../init/jgdas_wave_init == complete + endfamily + family post + task jgdas_wave_postsbs + trigger ../../atmos/post/jgdas_atmos_post_manager:release_post000 + task jgdas_wave_postpnt + trigger ../../jgdas_forecast == complete + endfamily + endfamily + task jgdas_forecast + trigger ./atmos/analysis/jgdas_atmos_analysis:release_fcst and ./wave/prep/jgdas_wave_prep == complete and ./atmos/init/jgdas_atmos_gldas == complete + family enkf + family analysis + family create + task jgdas_enkf_select_obs + trigger ../../../atmos/obsproc/prep/jgdas_atmos_prep == complete and /prod18/gdas/enkf/post == complete + task jgdas_enkf_diag + trigger ./jgdas_enkf_select_obs == complete + task jgdas_enkf_update + trigger ./jgdas_enkf_diag == complete + endfamily + family recenter + family ecen + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3/enkf/analysis/recenter/ecen' + trigger ../create/jgdas_enkf_update == complete and ../../../atmos/analysis/jgdas_atmos_analysis_calc == complete and /prod18/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf == complete + family grp1 + edit FHRGRP '003' + task jgdas_enkf_ecen + endfamily + family grp2 + edit FHRGRP '006' + task jgdas_enkf_ecen + endfamily + family grp3 + edit FHRGRP '009' + task jgdas_enkf_ecen + endfamily + endfamily + task jgdas_enkf_sfc + trigger ../create/jgdas_enkf_update == complete and ../../../atmos/analysis/jgdas_atmos_analysis_calc == complete + endfamily + endfamily + family forecast + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3/enkf/forecast' + trigger ./analysis/recenter/ecen == complete and ./analysis/recenter/jgdas_enkf_sfc == complete + family grp1 + edit ENSGRP '01' + task jgdas_enkf_fcst + endfamily + family grp2 + edit ENSGRP '02' + task jgdas_enkf_fcst + endfamily + family grp3 + edit ENSGRP '03' + task jgdas_enkf_fcst + endfamily + family grp4 + edit ENSGRP '04' + task jgdas_enkf_fcst + endfamily + family grp5 + edit ENSGRP '05' + task jgdas_enkf_fcst + endfamily + family grp6 + edit ENSGRP '06' + task jgdas_enkf_fcst + endfamily + family grp7 + edit ENSGRP '07' + task jgdas_enkf_fcst + endfamily + family grp8 + edit ENSGRP '08' + task jgdas_enkf_fcst + endfamily + family grp9 + edit ENSGRP '09' + task jgdas_enkf_fcst + endfamily + family grp10 + edit ENSGRP '10' + task jgdas_enkf_fcst + endfamily + family grp11 + edit ENSGRP '11' + task jgdas_enkf_fcst + endfamily + family grp12 + edit ENSGRP '12' + task jgdas_enkf_fcst + endfamily + family grp13 + edit ENSGRP '13' + task jgdas_enkf_fcst + endfamily + family grp14 + edit ENSGRP '14' + task jgdas_enkf_fcst + endfamily + family grp15 + edit ENSGRP '15' + task jgdas_enkf_fcst + endfamily + family grp16 + edit ENSGRP '16' + task jgdas_enkf_fcst + endfamily + family grp17 + edit ENSGRP '17' + task jgdas_enkf_fcst + endfamily + family grp18 + edit ENSGRP '18' + task jgdas_enkf_fcst + endfamily + family grp19 + edit ENSGRP '19' + task jgdas_enkf_fcst + endfamily + family grp20 + edit ENSGRP '20' + task jgdas_enkf_fcst + endfamily + family grp21 + edit ENSGRP '21' + task jgdas_enkf_fcst + endfamily + family grp22 + edit ENSGRP '22' + task jgdas_enkf_fcst + endfamily + family grp23 + edit ENSGRP '23' + task jgdas_enkf_fcst + endfamily + family grp24 + edit ENSGRP '24' + task jgdas_enkf_fcst + endfamily + family grp25 + edit ENSGRP '25' + task jgdas_enkf_fcst + endfamily + family grp26 + edit ENSGRP '26' + task jgdas_enkf_fcst + endfamily + family grp27 + edit ENSGRP '27' + task jgdas_enkf_fcst + endfamily + family grp28 + edit ENSGRP '28' + task jgdas_enkf_fcst + endfamily + family grp29 + edit ENSGRP '29' + task jgdas_enkf_fcst + endfamily + family grp30 + edit ENSGRP '30' + task jgdas_enkf_fcst + endfamily + family grp31 + edit ENSGRP '31' + task jgdas_enkf_fcst + endfamily + family grp32 + edit ENSGRP '32' + task jgdas_enkf_fcst + endfamily + family grp33 + edit ENSGRP '33' + task jgdas_enkf_fcst + endfamily + family grp34 + edit ENSGRP '34' + task jgdas_enkf_fcst + endfamily + family grp35 + edit ENSGRP '35' + task jgdas_enkf_fcst + endfamily + family grp36 + edit ENSGRP '36' + task jgdas_enkf_fcst + endfamily + family grp37 + edit ENSGRP '37' + task jgdas_enkf_fcst + endfamily + family grp38 + edit ENSGRP '38' + task jgdas_enkf_fcst + endfamily + family grp39 + edit ENSGRP '39' + task jgdas_enkf_fcst + endfamily + family grp40 + edit ENSGRP '40' + task jgdas_enkf_fcst + endfamily + endfamily + family post + trigger ./forecast == complete + task jgdas_enkf_post_f003 + edit FHMIN_EPOS '003' + edit FHMAX_EPOS '003' + edit FHOUT_EPOS '003' + task jgdas_enkf_post_f004 + edit FHMIN_EPOS '004' + edit FHMAX_EPOS '004' + edit FHOUT_EPOS '004' + task jgdas_enkf_post_f005 + edit FHMIN_EPOS '005' + edit FHMAX_EPOS '005' + edit FHOUT_EPOS '005' + task jgdas_enkf_post_f006 + edit FHMIN_EPOS '006' + edit FHMAX_EPOS '006' + edit FHOUT_EPOS '006' + task jgdas_enkf_post_f007 + edit FHMIN_EPOS '007' + edit FHMAX_EPOS '007' + edit FHOUT_EPOS '007' + task jgdas_enkf_post_f008 + edit FHMIN_EPOS '008' + edit FHMAX_EPOS '008' + edit FHOUT_EPOS '008' + task jgdas_enkf_post_f009 + edit FHMIN_EPOS '009' + edit FHMAX_EPOS '009' + edit FHOUT_EPOS '009' + endfamily #### epos + endfamily #### enkf + endfamily #### gdas +endsuite diff --git a/ecflow/ecf/defs/prod06.def b/ecflow/ecf/defs/prod06.def new file mode 100644 index 0000000000..7e0ad46ac1 --- /dev/null +++ b/ecflow/ecf/defs/prod06.def @@ -0,0 +1,2642 @@ +extern /prod00/gdas/jgdas_forecast +extern /prod00/gdas/atmos/post +extern /prod00/gdas/enkf/post +#### ecen +extern /prod00/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf + +suite prod06 + repeat day 1 + edit ECF_TRIES '1' + edit CYC '06' + edit ENVIR 'prod' + edit PROJ 'OPS' + edit E 'j' + edit QUEUE 'prod' + edit QUEUESHARED 'dev_shared' + edit QUEUESERV 'dev_transfer' + edit PROJENVIR 'OPS' + edit MACHINE_SITE 'production' + + family gfs + edit CYC '06' + edit ECF_FILES '/ecf/ecfnets/scripts/gfs_FV3' + edit PROJ 'GFS-OPS' + edit NET 'gfs' + edit RUN 'gfs' + edit COM '/gpfs/dell1/nco/ops/com' + edit QUEUESHARED 'prod_shared' + edit QUEUESERV 'prod_transfer' + edit QUEUE 'prod' + family atmos + family obsproc + family dump + task jgfs_atmos_tropcy_qc_reloc + event 1 jtwc_bull_email + time 02:41 + task jgfs_atmos_dump + event 1 release_sfcprep + time 02:47 + task jgfs_atmos_dump_post + trigger jgfs_atmos_dump == complete + event 1 release_gfs06_dump_alert + task jgfs_atmos_dump_alert + trigger jgfs_atmos_dump_post:release_gfs06_dump_alert + endfamily + family prep + task jgfs_atmos_emcsfc_sfc_prep + trigger ../dump/jgfs_atmos_dump:release_sfcprep + task jgfs_atmos_prep + trigger ../dump/jgfs_atmos_dump == complete and ../dump/jgfs_atmos_tropcy_qc_reloc == complete + task jgfs_atmos_prep_post + trigger ./jgfs_atmos_prep == complete and ../../analysis/jgfs_atmos_analysis == complete + endfamily + endfamily + family analysis + task jgfs_atmos_analysis + trigger ../obsproc/prep/jgfs_atmos_prep == complete and ../obsproc/prep/jgfs_atmos_emcsfc_sfc_prep == complete + event 1 release_fcst + task jgfs_atmos_analysis_calc + trigger ./jgfs_atmos_analysis == complete + endfamily + family post + task jgfs_atmos_post_manager + trigger ../analysis/jgfs_atmos_analysis == complete + event 1 release_postanl + event 2 release_post000 + event 3 release_post001 + event 4 release_post002 + event 5 release_post003 + event 6 release_post004 + event 7 release_post005 + event 8 release_post006 + event 9 release_post007 + event 10 release_post008 + event 11 release_post009 + event 12 release_post010 + event 13 release_post011 + event 14 release_post012 + event 15 release_post013 + event 16 release_post014 + event 17 release_post015 + event 18 release_post016 + event 19 release_post017 + event 20 release_post018 + event 21 release_post019 + event 22 release_post020 + event 23 release_post021 + event 24 release_post022 + event 25 release_post023 + event 26 release_post024 + event 27 release_post025 + event 28 release_post026 + event 29 release_post027 + event 30 release_post028 + event 31 release_post029 + event 32 release_post030 + event 33 release_post031 + event 34 release_post032 + event 35 release_post033 + event 36 release_post034 + event 37 release_post035 + event 38 release_post036 + event 39 release_post037 + event 40 release_post038 + event 41 release_post039 + event 42 release_post040 + event 43 release_post041 + event 44 release_post042 + event 45 release_post043 + event 46 release_post044 + event 47 release_post045 + event 48 release_post046 + event 49 release_post047 + event 50 release_post048 + event 51 release_post049 + event 52 release_post050 + event 53 release_post051 + event 54 release_post052 + event 55 release_post053 + event 56 release_post054 + event 57 release_post055 + event 58 release_post056 + event 59 release_post057 + event 60 release_post058 + event 61 release_post059 + event 62 release_post060 + event 63 release_post061 + event 64 release_post062 + event 65 release_post063 + event 66 release_post064 + event 67 release_post065 + event 68 release_post066 + event 69 release_post067 + event 70 release_post068 + event 71 release_post069 + event 72 release_post070 + event 73 release_post071 + event 74 release_post072 + event 75 release_post073 + event 76 release_post074 + event 77 release_post075 + event 78 release_post076 + event 79 release_post077 + event 80 release_post078 + event 81 release_post079 + event 82 release_post080 + event 83 release_post081 + event 84 release_post082 + event 85 release_post083 + event 86 release_post084 + event 87 release_post085 + event 88 release_post086 + event 89 release_post087 + event 90 release_post088 + event 91 release_post089 + event 92 release_post090 + event 93 release_post091 + event 94 release_post092 + event 95 release_post093 + event 96 release_post094 + event 97 release_post095 + event 98 release_post096 + event 99 release_post097 + event 100 release_post098 + event 101 release_post099 + event 102 release_post100 + event 103 release_post101 + event 104 release_post102 + event 105 release_post103 + event 106 release_post104 + event 107 release_post105 + event 108 release_post106 + event 109 release_post107 + event 110 release_post108 + event 111 release_post109 + event 112 release_post110 + event 113 release_post111 + event 114 release_post112 + event 115 release_post113 + event 116 release_post114 + event 117 release_post115 + event 118 release_post116 + event 119 release_post117 + event 120 release_post118 + event 121 release_post119 + event 122 release_post120 + event 123 release_post123 + event 124 release_post126 + event 125 release_post129 + event 126 release_post132 + event 127 release_post135 + event 128 release_post138 + event 129 release_post141 + event 130 release_post144 + event 131 release_post147 + event 132 release_post150 + event 133 release_post153 + event 134 release_post156 + event 135 release_post159 + event 136 release_post162 + event 137 release_post165 + event 138 release_post168 + event 139 release_post171 + event 140 release_post174 + event 141 release_post177 + event 142 release_post180 + event 143 release_post183 + event 144 release_post186 + event 145 release_post189 + event 146 release_post192 + event 147 release_post195 + event 148 release_post198 + event 149 release_post201 + event 150 release_post204 + event 151 release_post207 + event 152 release_post210 + event 153 release_post213 + event 154 release_post216 + event 155 release_post219 + event 156 release_post222 + event 157 release_post225 + event 158 release_post228 + event 159 release_post231 + event 160 release_post234 + event 161 release_post237 + event 162 release_post240 + event 163 release_post243 + event 164 release_post246 + event 165 release_post249 + event 166 release_post252 + event 167 release_post255 + event 168 release_post258 + event 169 release_post261 + event 170 release_post264 + event 171 release_post267 + event 172 release_post270 + event 173 release_post273 + event 174 release_post276 + event 175 release_post279 + event 176 release_post282 + event 177 release_post285 + event 178 release_post288 + event 179 release_post291 + event 180 release_post294 + event 181 release_post297 + event 182 release_post300 + event 183 release_post303 + event 184 release_post306 + event 185 release_post309 + event 186 release_post312 + event 187 release_post315 + event 188 release_post318 + event 189 release_post321 + event 190 release_post324 + event 191 release_post327 + event 192 release_post330 + event 193 release_post333 + event 194 release_post336 + event 195 release_post339 + event 196 release_post342 + event 197 release_post345 + event 198 release_post348 + event 199 release_post351 + event 200 release_post354 + event 201 release_post357 + event 202 release_post360 + event 203 release_post363 + event 204 release_post366 + event 205 release_post369 + event 206 release_post372 + event 207 release_post375 + event 208 release_post378 + event 209 release_post381 + event 210 release_post384 + task jgfs_atmos_post_anl + trigger ./jgfs_atmos_post_manager:release_postanl + edit FHRGRP '000' + edit FHRLST 'anl' + edit HR 'anl' + edit FHR 'anl' + task jgfs_atmos_post_f000 + trigger ./jgfs_atmos_post_manager:release_post000 + edit FHRGRP '001' + edit FHRLST 'f000' + edit FHR 'f000' + edit HR '000' + task jgfs_atmos_post_f001 + trigger ./jgfs_atmos_post_manager:release_post001 + edit FHRGRP '002' + edit FHRLST 'f001' + edit FHR 'f001' + edit HR '001' + task jgfs_atmos_post_f002 + trigger ./jgfs_atmos_post_manager:release_post002 + edit FHRGRP '003' + edit FHRLST 'f002' + edit FHR 'f002' + edit HR '002' + task jgfs_atmos_post_f003 + trigger ./jgfs_atmos_post_manager:release_post003 + edit FHRGRP '004' + edit FHRLST 'f003' + edit FHR 'f003' + edit HR '003' + task jgfs_atmos_post_f004 + trigger ./jgfs_atmos_post_manager:release_post004 + edit FHRGRP '005' + edit FHRLST 'f004' + edit FHR 'f004' + edit HR '004' + task jgfs_atmos_post_f005 + trigger ./jgfs_atmos_post_manager:release_post005 + edit FHRGRP '006' + edit FHRLST 'f005' + edit FHR 'f005' + edit HR '005' + task jgfs_atmos_post_f006 + trigger ./jgfs_atmos_post_manager:release_post006 + edit FHRGRP '007' + edit FHRLST 'f006' + edit FHR 'f006' + edit HR '006' + task jgfs_atmos_post_f007 + trigger ./jgfs_atmos_post_manager:release_post007 + edit FHRGRP '008' + edit FHRLST 'f007' + edit FHR 'f007' + edit HR '007' + task jgfs_atmos_post_f008 + trigger ./jgfs_atmos_post_manager:release_post008 + edit FHRGRP '009' + edit FHRLST 'f008' + edit FHR 'f008' + edit HR '008' + task jgfs_atmos_post_f009 + trigger ./jgfs_atmos_post_manager:release_post009 + edit FHRGRP '010' + edit FHRLST 'f009' + edit FHR 'f009' + edit HR '009' + task jgfs_atmos_post_f010 + trigger ./jgfs_atmos_post_manager:release_post010 + edit FHRGRP '011' + edit FHRLST 'f010' + edit FHR 'f010' + edit HR '010' + task jgfs_atmos_post_f011 + trigger ./jgfs_atmos_post_manager:release_post011 + edit FHRGRP '012' + edit FHRLST 'f011' + edit FHR 'f011' + edit HR '011' + task jgfs_atmos_post_f012 + trigger ./jgfs_atmos_post_manager:release_post012 + edit FHRGRP '013' + edit FHRLST 'f012' + edit FHR 'f012' + edit HR '012' + task jgfs_atmos_post_f013 + trigger ./jgfs_atmos_post_manager:release_post013 + edit FHRGRP '014' + edit FHRLST 'f013' + edit FHR 'f013' + edit HR '013' + task jgfs_atmos_post_f014 + trigger ./jgfs_atmos_post_manager:release_post014 + edit FHRGRP '015' + edit FHRLST 'f014' + edit FHR 'f014' + edit HR '014' + task jgfs_atmos_post_f015 + trigger ./jgfs_atmos_post_manager:release_post015 + edit FHRGRP '016' + edit FHRLST 'f015' + edit FHR 'f015' + edit HR '015' + task jgfs_atmos_post_f016 + trigger ./jgfs_atmos_post_manager:release_post016 + edit FHRGRP '017' + edit FHRLST 'f016' + edit FHR 'f016' + edit HR '016' + task jgfs_atmos_post_f017 + trigger ./jgfs_atmos_post_manager:release_post017 + edit FHRGRP '018' + edit FHRLST 'f017' + edit FHR 'f017' + edit HR '017' + task jgfs_atmos_post_f018 + trigger ./jgfs_atmos_post_manager:release_post018 + edit FHRGRP '019' + edit FHRLST 'f018' + edit FHR 'f018' + edit HR '018' + task jgfs_atmos_post_f019 + trigger ./jgfs_atmos_post_manager:release_post019 + edit FHRGRP '020' + edit FHRLST 'f019' + edit FHR 'f019' + edit HR '019' + task jgfs_atmos_post_f020 + trigger ./jgfs_atmos_post_manager:release_post020 + edit FHRGRP '021' + edit FHRLST 'f020' + edit FHR 'f020' + edit HR '020' + task jgfs_atmos_post_f021 + trigger ./jgfs_atmos_post_manager:release_post021 + edit FHRGRP '022' + edit FHRLST 'f021' + edit FHR 'f021' + edit HR '021' + task jgfs_atmos_post_f022 + trigger ./jgfs_atmos_post_manager:release_post022 + edit FHRGRP '023' + edit FHRLST 'f022' + edit FHR 'f022' + edit HR '022' + task jgfs_atmos_post_f023 + trigger ./jgfs_atmos_post_manager:release_post023 + edit FHRGRP '024' + edit FHRLST 'f023' + edit FHR 'f023' + edit HR '023' + task jgfs_atmos_post_f024 + trigger ./jgfs_atmos_post_manager:release_post024 + edit FHRGRP '025' + edit FHRLST 'f024' + edit FHR 'f024' + edit HR '024' + task jgfs_atmos_post_f025 + trigger ./jgfs_atmos_post_manager:release_post025 + edit FHRGRP '026' + edit FHRLST 'f025' + edit FHR 'f025' + edit HR '025' + task jgfs_atmos_post_f026 + trigger ./jgfs_atmos_post_manager:release_post026 + edit FHRGRP '027' + edit FHRLST 'f026' + edit FHR 'f026' + edit HR '026' + task jgfs_atmos_post_f027 + trigger ./jgfs_atmos_post_manager:release_post027 + edit FHRGRP '028' + edit FHRLST 'f027' + edit FHR 'f027' + edit HR '027' + task jgfs_atmos_post_f028 + trigger ./jgfs_atmos_post_manager:release_post028 + edit FHRGRP '029' + edit FHRLST 'f028' + edit FHR 'f028' + edit HR '028' + task jgfs_atmos_post_f029 + trigger ./jgfs_atmos_post_manager:release_post029 + edit FHRGRP '030' + edit FHRLST 'f029' + edit FHR 'f029' + edit HR '029' + task jgfs_atmos_post_f030 + trigger ./jgfs_atmos_post_manager:release_post030 + edit FHRGRP '031' + edit FHRLST 'f030' + edit FHR 'f030' + edit HR '030' + task jgfs_atmos_post_f031 + trigger ./jgfs_atmos_post_manager:release_post031 + edit FHRGRP '032' + edit FHRLST 'f031' + edit FHR 'f031' + edit HR '031' + task jgfs_atmos_post_f032 + trigger ./jgfs_atmos_post_manager:release_post032 + edit FHRGRP '033' + edit FHRLST 'f032' + edit FHR 'f032' + edit HR '032' + task jgfs_atmos_post_f033 + trigger ./jgfs_atmos_post_manager:release_post033 + edit FHRGRP '034' + edit FHRLST 'f033' + edit FHR 'f033' + edit HR '033' + task jgfs_atmos_post_f034 + trigger ./jgfs_atmos_post_manager:release_post034 + edit FHRGRP '035' + edit FHRLST 'f034' + edit FHR 'f034' + edit HR '034' + task jgfs_atmos_post_f035 + trigger ./jgfs_atmos_post_manager:release_post035 + edit FHRGRP '036' + edit FHRLST 'f035' + edit FHR 'f035' + edit HR '035' + task jgfs_atmos_post_f036 + trigger ./jgfs_atmos_post_manager:release_post036 + edit FHRGRP '037' + edit FHRLST 'f036' + edit FHR 'f036' + edit HR '036' + task jgfs_atmos_post_f037 + trigger ./jgfs_atmos_post_manager:release_post037 + edit FHRGRP '038' + edit FHRLST 'f037' + edit FHR 'f037' + edit HR '037' + task jgfs_atmos_post_f038 + trigger ./jgfs_atmos_post_manager:release_post038 + edit FHRGRP '039' + edit FHRLST 'f038' + edit FHR 'f038' + edit HR '038' + task jgfs_atmos_post_f039 + trigger ./jgfs_atmos_post_manager:release_post039 + edit FHRGRP '040' + edit FHRLST 'f039' + edit FHR 'f039' + edit HR '039' + task jgfs_atmos_post_f040 + trigger ./jgfs_atmos_post_manager:release_post040 + edit FHRGRP '041' + edit FHRLST 'f040' + edit FHR 'f040' + edit HR '040' + task jgfs_atmos_post_f041 + trigger ./jgfs_atmos_post_manager:release_post041 + edit FHRGRP '042' + edit FHRLST 'f041' + edit FHR 'f041' + edit HR '041' + task jgfs_atmos_post_f042 + trigger ./jgfs_atmos_post_manager:release_post042 + edit FHRGRP '043' + edit FHRLST 'f042' + edit FHR 'f042' + edit HR '042' + task jgfs_atmos_post_f043 + trigger ./jgfs_atmos_post_manager:release_post043 + edit FHRGRP '044' + edit FHRLST 'f043' + edit FHR 'f043' + edit HR '043' + task jgfs_atmos_post_f044 + trigger ./jgfs_atmos_post_manager:release_post044 + edit FHRGRP '045' + edit FHRLST 'f044' + edit FHR 'f044' + edit HR '044' + task jgfs_atmos_post_f045 + trigger ./jgfs_atmos_post_manager:release_post045 + edit FHRGRP '046' + edit FHRLST 'f045' + edit FHR 'f045' + edit HR '045' + task jgfs_atmos_post_f046 + trigger ./jgfs_atmos_post_manager:release_post046 + edit FHRGRP '047' + edit FHRLST 'f046' + edit FHR 'f046' + edit HR '046' + task jgfs_atmos_post_f047 + trigger ./jgfs_atmos_post_manager:release_post047 + edit FHRGRP '048' + edit FHRLST 'f047' + edit FHR 'f047' + edit HR '047' + task jgfs_atmos_post_f048 + trigger ./jgfs_atmos_post_manager:release_post048 + edit FHRGRP '049' + edit FHRLST 'f048' + edit FHR 'f048' + edit HR '048' + task jgfs_atmos_post_f049 + trigger ./jgfs_atmos_post_manager:release_post049 + edit FHRGRP '050' + edit FHRLST 'f049' + edit FHR 'f049' + edit HR '049' + task jgfs_atmos_post_f050 + trigger ./jgfs_atmos_post_manager:release_post050 + edit FHRGRP '051' + edit FHRLST 'f050' + edit FHR 'f050' + edit HR '050' + task jgfs_atmos_post_f051 + trigger ./jgfs_atmos_post_manager:release_post051 + edit FHRGRP '052' + edit FHRLST 'f051' + edit FHR 'f051' + edit HR '051' + task jgfs_atmos_post_f052 + trigger ./jgfs_atmos_post_manager:release_post052 + edit FHRGRP '053' + edit FHRLST 'f052' + edit FHR 'f052' + edit HR '052' + task jgfs_atmos_post_f053 + trigger ./jgfs_atmos_post_manager:release_post053 + edit FHRGRP '054' + edit FHRLST 'f053' + edit FHR 'f053' + edit HR '053' + task jgfs_atmos_post_f054 + trigger ./jgfs_atmos_post_manager:release_post054 + edit FHRGRP '055' + edit FHRLST 'f054' + edit FHR 'f054' + edit HR '054' + task jgfs_atmos_post_f055 + trigger ./jgfs_atmos_post_manager:release_post055 + edit FHRGRP '056' + edit FHRLST 'f055' + edit FHR 'f055' + edit HR '055' + task jgfs_atmos_post_f056 + trigger ./jgfs_atmos_post_manager:release_post056 + edit FHRGRP '057' + edit FHRLST 'f056' + edit FHR 'f056' + edit HR '056' + task jgfs_atmos_post_f057 + trigger ./jgfs_atmos_post_manager:release_post057 + edit FHRGRP '058' + edit FHRLST 'f057' + edit FHR 'f057' + edit HR '057' + task jgfs_atmos_post_f058 + trigger ./jgfs_atmos_post_manager:release_post058 + edit FHRGRP '059' + edit FHRLST 'f058' + edit FHR 'f058' + edit HR '058' + task jgfs_atmos_post_f059 + trigger ./jgfs_atmos_post_manager:release_post059 + edit FHRGRP '060' + edit FHRLST 'f059' + edit FHR 'f059' + edit HR '059' + task jgfs_atmos_post_f060 + trigger ./jgfs_atmos_post_manager:release_post060 + edit FHRGRP '061' + edit FHRLST 'f060' + edit FHR 'f060' + edit HR '060' + task jgfs_atmos_post_f061 + trigger ./jgfs_atmos_post_manager:release_post061 + edit FHRGRP '062' + edit FHRLST 'f061' + edit FHR 'f061' + edit HR '061' + task jgfs_atmos_post_f062 + trigger ./jgfs_atmos_post_manager:release_post062 + edit FHRGRP '063' + edit FHRLST 'f062' + edit FHR 'f062' + edit HR '062' + task jgfs_atmos_post_f063 + trigger ./jgfs_atmos_post_manager:release_post063 + edit FHRGRP '064' + edit FHRLST 'f063' + edit FHR 'f063' + edit HR '063' + task jgfs_atmos_post_f064 + trigger ./jgfs_atmos_post_manager:release_post064 + edit FHRGRP '065' + edit FHRLST 'f064' + edit FHR 'f064' + edit HR '064' + task jgfs_atmos_post_f065 + trigger ./jgfs_atmos_post_manager:release_post065 + edit FHRGRP '066' + edit FHRLST 'f065' + edit FHR 'f065' + edit HR '065' + task jgfs_atmos_post_f066 + trigger ./jgfs_atmos_post_manager:release_post066 + edit FHRGRP '067' + edit FHRLST 'f066' + edit FHR 'f066' + edit HR '066' + task jgfs_atmos_post_f067 + trigger ./jgfs_atmos_post_manager:release_post067 + edit FHRGRP '068' + edit FHRLST 'f067' + edit FHR 'f067' + edit HR '067' + task jgfs_atmos_post_f068 + trigger ./jgfs_atmos_post_manager:release_post068 + edit FHRGRP '069' + edit FHRLST 'f068' + edit FHR 'f068' + edit HR '068' + task jgfs_atmos_post_f069 + trigger ./jgfs_atmos_post_manager:release_post069 + edit FHRGRP '070' + edit FHRLST 'f069' + edit FHR 'f069' + edit HR '069' + task jgfs_atmos_post_f070 + trigger ./jgfs_atmos_post_manager:release_post070 + edit FHRGRP '071' + edit FHRLST 'f070' + edit FHR 'f070' + edit HR '070' + task jgfs_atmos_post_f071 + trigger ./jgfs_atmos_post_manager:release_post071 + edit FHRGRP '072' + edit FHRLST 'f071' + edit FHR 'f071' + edit HR '071' + task jgfs_atmos_post_f072 + trigger ./jgfs_atmos_post_manager:release_post072 + edit FHRGRP '073' + edit FHRLST 'f072' + edit FHR 'f072' + edit HR '072' + task jgfs_atmos_post_f073 + trigger ./jgfs_atmos_post_manager:release_post073 + edit FHRGRP '074' + edit FHRLST 'f073' + edit FHR 'f073' + edit HR '073' + task jgfs_atmos_post_f074 + trigger ./jgfs_atmos_post_manager:release_post074 + edit FHRGRP '075' + edit FHRLST 'f074' + edit FHR 'f074' + edit HR '074' + task jgfs_atmos_post_f075 + trigger ./jgfs_atmos_post_manager:release_post075 + edit FHRGRP '076' + edit FHRLST 'f075' + edit FHR 'f075' + edit HR '075' + task jgfs_atmos_post_f076 + trigger ./jgfs_atmos_post_manager:release_post076 + edit FHRGRP '077' + edit FHRLST 'f076' + edit FHR 'f076' + edit HR '076' + task jgfs_atmos_post_f077 + trigger ./jgfs_atmos_post_manager:release_post077 + edit FHRGRP '078' + edit FHRLST 'f077' + edit FHR 'f077' + edit HR '077' + task jgfs_atmos_post_f078 + trigger ./jgfs_atmos_post_manager:release_post078 + edit FHRGRP '079' + edit FHRLST 'f078' + edit FHR 'f078' + edit HR '078' + task jgfs_atmos_post_f079 + trigger ./jgfs_atmos_post_manager:release_post079 + edit FHRGRP '080' + edit FHRLST 'f079' + edit FHR 'f079' + edit HR '079' + task jgfs_atmos_post_f080 + trigger ./jgfs_atmos_post_manager:release_post080 + edit FHRGRP '081' + edit FHRLST 'f080' + edit FHR 'f080' + edit HR '080' + task jgfs_atmos_post_f081 + trigger ./jgfs_atmos_post_manager:release_post081 + edit FHRGRP '082' + edit FHRLST 'f081' + edit FHR 'f081' + edit HR '081' + task jgfs_atmos_post_f082 + trigger ./jgfs_atmos_post_manager:release_post082 + edit FHRGRP '083' + edit FHRLST 'f082' + edit FHR 'f082' + edit HR '082' + task jgfs_atmos_post_f083 + trigger ./jgfs_atmos_post_manager:release_post083 + edit FHRGRP '084' + edit FHRLST 'f083' + edit FHR 'f083' + edit HR '083' + task jgfs_atmos_post_f084 + trigger ./jgfs_atmos_post_manager:release_post084 + edit FHRGRP '085' + edit FHRLST 'f084' + edit FHR 'f084' + edit HR '084' + task jgfs_atmos_post_f085 + trigger ./jgfs_atmos_post_manager:release_post085 + edit FHRGRP '086' + edit FHRLST 'f085' + edit FHR 'f085' + edit HR '085' + task jgfs_atmos_post_f086 + trigger ./jgfs_atmos_post_manager:release_post086 + edit FHRGRP '087' + edit FHRLST 'f086' + edit FHR 'f086' + edit HR '086' + task jgfs_atmos_post_f087 + trigger ./jgfs_atmos_post_manager:release_post087 + edit FHRGRP '088' + edit FHRLST 'f087' + edit FHR 'f087' + edit HR '087' + task jgfs_atmos_post_f088 + trigger ./jgfs_atmos_post_manager:release_post088 + edit FHRGRP '089' + edit FHRLST 'f088' + edit FHR 'f088' + edit HR '088' + task jgfs_atmos_post_f089 + trigger ./jgfs_atmos_post_manager:release_post089 + edit FHRGRP '090' + edit FHRLST 'f089' + edit FHR 'f089' + edit HR '089' + task jgfs_atmos_post_f090 + trigger ./jgfs_atmos_post_manager:release_post090 + edit FHRGRP '091' + edit FHRLST 'f090' + edit FHR 'f090' + edit HR '090' + task jgfs_atmos_post_f091 + trigger ./jgfs_atmos_post_manager:release_post091 + edit FHRGRP '092' + edit FHRLST 'f091' + edit FHR 'f091' + edit HR '091' + task jgfs_atmos_post_f092 + trigger ./jgfs_atmos_post_manager:release_post092 + edit FHRGRP '093' + edit FHRLST 'f092' + edit FHR 'f092' + edit HR '092' + task jgfs_atmos_post_f093 + trigger ./jgfs_atmos_post_manager:release_post093 + edit FHRGRP '094' + edit FHRLST 'f093' + edit FHR 'f093' + edit HR '093' + task jgfs_atmos_post_f094 + trigger ./jgfs_atmos_post_manager:release_post094 + edit FHRGRP '095' + edit FHRLST 'f094' + edit FHR 'f094' + edit HR '094' + task jgfs_atmos_post_f095 + trigger ./jgfs_atmos_post_manager:release_post095 + edit FHRGRP '096' + edit FHRLST 'f095' + edit FHR 'f095' + edit HR '095' + task jgfs_atmos_post_f096 + trigger ./jgfs_atmos_post_manager:release_post096 + edit FHRGRP '097' + edit FHRLST 'f096' + edit FHR 'f096' + edit HR '096' + task jgfs_atmos_post_f097 + trigger ./jgfs_atmos_post_manager:release_post097 + edit FHRGRP '098' + edit FHRLST 'f097' + edit FHR 'f097' + edit HR '097' + task jgfs_atmos_post_f098 + trigger ./jgfs_atmos_post_manager:release_post098 + edit FHRGRP '099' + edit FHRLST 'f098' + edit FHR 'f098' + edit HR '098' + task jgfs_atmos_post_f099 + trigger ./jgfs_atmos_post_manager:release_post099 + edit FHRGRP '100' + edit FHRLST 'f099' + edit FHR 'f099' + edit HR '099' + task jgfs_atmos_post_f100 + trigger ./jgfs_atmos_post_manager:release_post100 + edit FHRGRP '101' + edit FHRLST 'f100' + edit FHR 'f100' + edit HR '100' + task jgfs_atmos_post_f101 + trigger ./jgfs_atmos_post_manager:release_post101 + edit FHRGRP '102' + edit FHRLST 'f101' + edit FHR 'f101' + edit HR '101' + task jgfs_atmos_post_f102 + trigger ./jgfs_atmos_post_manager:release_post102 + edit FHRGRP '103' + edit FHRLST 'f102' + edit FHR 'f102' + edit HR '102' + task jgfs_atmos_post_f103 + trigger ./jgfs_atmos_post_manager:release_post103 + edit FHRGRP '104' + edit FHRLST 'f103' + edit FHR 'f103' + edit HR '103' + task jgfs_atmos_post_f104 + trigger ./jgfs_atmos_post_manager:release_post104 + edit FHRGRP '105' + edit FHRLST 'f104' + edit FHR 'f104' + edit HR '104' + task jgfs_atmos_post_f105 + trigger ./jgfs_atmos_post_manager:release_post105 + edit FHRGRP '106' + edit FHRLST 'f105' + edit FHR 'f105' + edit HR '105' + task jgfs_atmos_post_f106 + trigger ./jgfs_atmos_post_manager:release_post106 + edit FHRGRP '107' + edit FHRLST 'f106' + edit FHR 'f106' + edit HR '106' + task jgfs_atmos_post_f107 + trigger ./jgfs_atmos_post_manager:release_post107 + edit FHRGRP '108' + edit FHRLST 'f107' + edit FHR 'f107' + edit HR '107' + task jgfs_atmos_post_f108 + trigger ./jgfs_atmos_post_manager:release_post108 + edit FHRGRP '109' + edit FHRLST 'f108' + edit FHR 'f108' + edit HR '108' + task jgfs_atmos_post_f109 + trigger ./jgfs_atmos_post_manager:release_post109 + edit FHRGRP '110' + edit FHRLST 'f109' + edit FHR 'f109' + edit HR '109' + task jgfs_atmos_post_f110 + trigger ./jgfs_atmos_post_manager:release_post110 + edit FHRGRP '111' + edit FHRLST 'f110' + edit FHR 'f110' + edit HR '110' + task jgfs_atmos_post_f111 + trigger ./jgfs_atmos_post_manager:release_post111 + edit FHRGRP '112' + edit FHRLST 'f111' + edit FHR 'f111' + edit HR '111' + task jgfs_atmos_post_f112 + trigger ./jgfs_atmos_post_manager:release_post112 + edit FHRGRP '113' + edit FHRLST 'f112' + edit FHR 'f112' + edit HR '112' + task jgfs_atmos_post_f113 + trigger ./jgfs_atmos_post_manager:release_post113 + edit FHRGRP '114' + edit FHRLST 'f113' + edit FHR 'f113' + edit HR '113' + task jgfs_atmos_post_f114 + trigger ./jgfs_atmos_post_manager:release_post114 + edit FHRGRP '115' + edit FHRLST 'f114' + edit FHR 'f114' + edit HR '114' + task jgfs_atmos_post_f115 + trigger ./jgfs_atmos_post_manager:release_post115 + edit FHRGRP '116' + edit FHRLST 'f115' + edit FHR 'f115' + edit HR '115' + task jgfs_atmos_post_f116 + trigger ./jgfs_atmos_post_manager:release_post116 + edit FHRGRP '117' + edit FHRLST 'f116' + edit FHR 'f116' + edit HR '116' + task jgfs_atmos_post_f117 + trigger ./jgfs_atmos_post_manager:release_post117 + edit FHRGRP '118' + edit FHRLST 'f117' + edit FHR 'f117' + edit HR '117' + task jgfs_atmos_post_f118 + trigger ./jgfs_atmos_post_manager:release_post118 + edit FHRGRP '119' + edit FHRLST 'f118' + edit FHR 'f118' + edit HR '118' + task jgfs_atmos_post_f119 + trigger ./jgfs_atmos_post_manager:release_post119 + edit FHRGRP '120' + edit FHRLST 'f119' + edit FHR 'f119' + edit HR '119' + task jgfs_atmos_post_f120 + trigger ./jgfs_atmos_post_manager:release_post120 + edit FHRGRP '121' + edit FHRLST 'f120' + edit FHR 'f120' + edit HR '120' + task jgfs_atmos_post_f123 + trigger ./jgfs_atmos_post_manager:release_post123 + edit FHRGRP '122' + edit FHRLST 'f123' + edit FHR 'f123' + edit HR '123' + task jgfs_atmos_post_f126 + trigger ./jgfs_atmos_post_manager:release_post126 + edit FHRGRP '123' + edit FHRLST 'f126' + edit FHR 'f126' + edit HR '126' + task jgfs_atmos_post_f129 + trigger ./jgfs_atmos_post_manager:release_post129 + edit FHRGRP '124' + edit FHRLST 'f129' + edit FHR 'f129' + edit HR '129' + task jgfs_atmos_post_f132 + trigger ./jgfs_atmos_post_manager:release_post132 + edit FHRGRP '125' + edit FHRLST 'f132' + edit FHR 'f132' + edit HR '132' + task jgfs_atmos_post_f135 + trigger ./jgfs_atmos_post_manager:release_post135 + edit FHRGRP '126' + edit FHRLST 'f135' + edit FHR 'f135' + edit HR '135' + task jgfs_atmos_post_f138 + trigger ./jgfs_atmos_post_manager:release_post138 + edit FHRGRP '127' + edit FHRLST 'f138' + edit FHR 'f138' + edit HR '138' + task jgfs_atmos_post_f141 + trigger ./jgfs_atmos_post_manager:release_post141 + edit FHRGRP '128' + edit FHRLST 'f141' + edit FHR 'f141' + edit HR '141' + task jgfs_atmos_post_f144 + trigger ./jgfs_atmos_post_manager:release_post144 + edit FHRGRP '129' + edit FHRLST 'f144' + edit FHR 'f144' + edit HR '144' + task jgfs_atmos_post_f147 + trigger ./jgfs_atmos_post_manager:release_post147 + edit FHRGRP '130' + edit FHRLST 'f147' + edit FHR 'f147' + edit HR '147' + task jgfs_atmos_post_f150 + trigger ./jgfs_atmos_post_manager:release_post150 + edit FHRGRP '131' + edit FHRLST 'f150' + edit FHR 'f150' + edit HR '150' + task jgfs_atmos_post_f153 + trigger ./jgfs_atmos_post_manager:release_post153 + edit FHRGRP '132' + edit FHRLST 'f153' + edit FHR 'f153' + edit HR '153' + task jgfs_atmos_post_f156 + trigger ./jgfs_atmos_post_manager:release_post156 + edit FHRGRP '133' + edit FHRLST 'f156' + edit FHR 'f156' + edit HR '156' + task jgfs_atmos_post_f159 + trigger ./jgfs_atmos_post_manager:release_post159 + edit FHRGRP '134' + edit FHRLST 'f159' + edit FHR 'f159' + edit HR '159' + task jgfs_atmos_post_f162 + trigger ./jgfs_atmos_post_manager:release_post162 + edit FHRGRP '135' + edit FHRLST 'f162' + edit FHR 'f162' + edit HR '162' + task jgfs_atmos_post_f165 + trigger ./jgfs_atmos_post_manager:release_post165 + edit FHRGRP '136' + edit FHRLST 'f165' + edit FHR 'f165' + edit HR '165' + task jgfs_atmos_post_f168 + trigger ./jgfs_atmos_post_manager:release_post168 + edit FHRGRP '137' + edit FHRLST 'f168' + edit FHR 'f168' + edit HR '168' + task jgfs_atmos_post_f171 + trigger ./jgfs_atmos_post_manager:release_post171 + edit FHRGRP '138' + edit FHRLST 'f171' + edit FHR 'f171' + edit HR '171' + task jgfs_atmos_post_f174 + trigger ./jgfs_atmos_post_manager:release_post174 + edit FHRGRP '139' + edit FHRLST 'f174' + edit FHR 'f174' + edit HR '174' + task jgfs_atmos_post_f177 + trigger ./jgfs_atmos_post_manager:release_post177 + edit FHRGRP '140' + edit FHRLST 'f177' + edit FHR 'f177' + edit HR '177' + task jgfs_atmos_post_f180 + trigger ./jgfs_atmos_post_manager:release_post180 + edit FHRGRP '141' + edit FHRLST 'f180' + edit FHR 'f180' + edit HR '180' + task jgfs_atmos_post_f183 + trigger ./jgfs_atmos_post_manager:release_post183 + edit FHRGRP '142' + edit FHRLST 'f183' + edit FHR 'f183' + edit HR '183' + task jgfs_atmos_post_f186 + trigger ./jgfs_atmos_post_manager:release_post186 + edit FHRGRP '143' + edit FHRLST 'f186' + edit FHR 'f186' + edit HR '186' + task jgfs_atmos_post_f189 + trigger ./jgfs_atmos_post_manager:release_post189 + edit FHRGRP '144' + edit FHRLST 'f189' + edit FHR 'f189' + edit HR '189' + task jgfs_atmos_post_f192 + trigger ./jgfs_atmos_post_manager:release_post192 + edit FHRGRP '145' + edit FHRLST 'f192' + edit FHR 'f192' + edit HR '192' + task jgfs_atmos_post_f195 + trigger ./jgfs_atmos_post_manager:release_post195 + edit FHRGRP '146' + edit FHRLST 'f195' + edit FHR 'f195' + edit HR '195' + task jgfs_atmos_post_f198 + trigger ./jgfs_atmos_post_manager:release_post198 + edit FHRGRP '147' + edit FHRLST 'f198' + edit FHR 'f198' + edit HR '198' + task jgfs_atmos_post_f201 + trigger ./jgfs_atmos_post_manager:release_post201 + edit FHRGRP '148' + edit FHRLST 'f201' + edit FHR 'f201' + edit HR '201' + task jgfs_atmos_post_f204 + trigger ./jgfs_atmos_post_manager:release_post204 + edit FHRGRP '149' + edit FHRLST 'f204' + edit FHR 'f204' + edit HR '204' + task jgfs_atmos_post_f207 + trigger ./jgfs_atmos_post_manager:release_post207 + edit FHRGRP '150' + edit FHRLST 'f207' + edit FHR 'f207' + edit HR '207' + task jgfs_atmos_post_f210 + trigger ./jgfs_atmos_post_manager:release_post210 + edit FHRGRP '151' + edit FHRLST 'f210' + edit FHR 'f210' + edit HR '210' + task jgfs_atmos_post_f213 + trigger ./jgfs_atmos_post_manager:release_post213 + edit FHRGRP '152' + edit FHRLST 'f213' + edit FHR 'f213' + edit HR '213' + task jgfs_atmos_post_f216 + trigger ./jgfs_atmos_post_manager:release_post216 + edit FHRGRP '153' + edit FHRLST 'f216' + edit FHR 'f216' + edit HR '216' + task jgfs_atmos_post_f219 + trigger ./jgfs_atmos_post_manager:release_post219 + edit FHRGRP '154' + edit FHRLST 'f219' + edit FHR 'f219' + edit HR '219' + task jgfs_atmos_post_f222 + trigger ./jgfs_atmos_post_manager:release_post222 + edit FHRGRP '155' + edit FHRLST 'f222' + edit FHR 'f222' + edit HR '222' + task jgfs_atmos_post_f225 + trigger ./jgfs_atmos_post_manager:release_post225 + edit FHRGRP '156' + edit FHRLST 'f225' + edit FHR 'f225' + edit HR '225' + task jgfs_atmos_post_f228 + trigger ./jgfs_atmos_post_manager:release_post228 + edit FHRGRP '157' + edit FHRLST 'f228' + edit FHR 'f228' + edit HR '228' + task jgfs_atmos_post_f231 + trigger ./jgfs_atmos_post_manager:release_post231 + edit FHRGRP '158' + edit FHRLST 'f231' + edit FHR 'f231' + edit HR '231' + task jgfs_atmos_post_f234 + trigger ./jgfs_atmos_post_manager:release_post234 + edit FHRGRP '159' + edit FHRLST 'f234' + edit FHR 'f234' + edit HR '234' + task jgfs_atmos_post_f237 + trigger ./jgfs_atmos_post_manager:release_post237 + edit FHRGRP '160' + edit FHRLST 'f237' + edit FHR 'f237' + edit HR '237' + task jgfs_atmos_post_f240 + trigger ./jgfs_atmos_post_manager:release_post240 + edit FHRGRP '161' + edit FHRLST 'f240' + edit FHR 'f240' + edit HR '240' + task jgfs_atmos_post_f243 + trigger ./jgfs_atmos_post_manager:release_post243 + edit FHRGRP '162' + edit FHRLST 'f243' + edit FHR 'f243' + edit HR '243' + task jgfs_atmos_post_f246 + trigger ./jgfs_atmos_post_manager:release_post246 + edit FHRGRP '163' + edit FHRLST 'f246' + edit FHR 'f246' + edit HR '246' + task jgfs_atmos_post_f249 + trigger ./jgfs_atmos_post_manager:release_post249 + edit FHRGRP '164' + edit FHRLST 'f249' + edit FHR 'f249' + edit HR '249' + task jgfs_atmos_post_f252 + trigger ./jgfs_atmos_post_manager:release_post252 + edit FHRGRP '165' + edit FHRLST 'f252' + edit FHR 'f252' + edit HR '252' + task jgfs_atmos_post_f255 + trigger ./jgfs_atmos_post_manager:release_post255 + edit FHRGRP '166' + edit FHRLST 'f255' + edit FHR 'f255' + edit HR '255' + task jgfs_atmos_post_f258 + trigger ./jgfs_atmos_post_manager:release_post258 + edit FHRGRP '167' + edit FHRLST 'f258' + edit FHR 'f258' + edit HR '258' + task jgfs_atmos_post_f261 + trigger ./jgfs_atmos_post_manager:release_post261 + edit FHRGRP '168' + edit FHRLST 'f261' + edit FHR 'f261' + edit HR '261' + task jgfs_atmos_post_f264 + trigger ./jgfs_atmos_post_manager:release_post264 + edit FHRGRP '169' + edit FHRLST 'f264' + edit FHR 'f264' + edit HR '264' + task jgfs_atmos_post_f267 + trigger ./jgfs_atmos_post_manager:release_post267 + edit FHRGRP '170' + edit FHRLST 'f267' + edit FHR 'f267' + edit HR '267' + task jgfs_atmos_post_f270 + trigger ./jgfs_atmos_post_manager:release_post270 + edit FHRGRP '171' + edit FHRLST 'f270' + edit FHR 'f270' + edit HR '270' + task jgfs_atmos_post_f273 + trigger ./jgfs_atmos_post_manager:release_post273 + edit FHRGRP '172' + edit FHRLST 'f273' + edit FHR 'f273' + edit HR '273' + task jgfs_atmos_post_f276 + trigger ./jgfs_atmos_post_manager:release_post276 + edit FHRGRP '173' + edit FHRLST 'f276' + edit FHR 'f276' + edit HR '276' + task jgfs_atmos_post_f279 + trigger ./jgfs_atmos_post_manager:release_post279 + edit FHRGRP '174' + edit FHRLST 'f279' + edit FHR 'f279' + edit HR '279' + task jgfs_atmos_post_f282 + trigger ./jgfs_atmos_post_manager:release_post282 + edit FHRGRP '175' + edit FHRLST 'f282' + edit FHR 'f282' + edit HR '282' + task jgfs_atmos_post_f285 + trigger ./jgfs_atmos_post_manager:release_post285 + edit FHRGRP '176' + edit FHRLST 'f285' + edit FHR 'f285' + edit HR '285' + task jgfs_atmos_post_f288 + trigger ./jgfs_atmos_post_manager:release_post288 + edit FHRGRP '177' + edit FHRLST 'f288' + edit FHR 'f288' + edit HR '288' + task jgfs_atmos_post_f291 + trigger ./jgfs_atmos_post_manager:release_post291 + edit FHRGRP '178' + edit FHRLST 'f291' + edit FHR 'f291' + edit HR '291' + task jgfs_atmos_post_f294 + trigger ./jgfs_atmos_post_manager:release_post294 + edit FHRGRP '179' + edit FHRLST 'f294' + edit FHR 'f294' + edit HR '294' + task jgfs_atmos_post_f297 + trigger ./jgfs_atmos_post_manager:release_post297 + edit FHRGRP '180' + edit FHRLST 'f297' + edit FHR 'f297' + edit HR '297' + task jgfs_atmos_post_f300 + trigger ./jgfs_atmos_post_manager:release_post300 + edit FHRGRP '181' + edit FHRLST 'f300' + edit FHR 'f300' + edit HR '300' + task jgfs_atmos_post_f303 + trigger ./jgfs_atmos_post_manager:release_post303 + edit FHRGRP '182' + edit FHRLST 'f303' + edit FHR 'f303' + edit HR '303' + task jgfs_atmos_post_f306 + trigger ./jgfs_atmos_post_manager:release_post306 + edit FHRGRP '183' + edit FHRLST 'f306' + edit FHR 'f306' + edit HR '306' + task jgfs_atmos_post_f309 + trigger ./jgfs_atmos_post_manager:release_post309 + edit FHRGRP '184' + edit FHRLST 'f309' + edit FHR 'f309' + edit HR '309' + task jgfs_atmos_post_f312 + trigger ./jgfs_atmos_post_manager:release_post312 + edit FHRGRP '185' + edit FHRLST 'f312' + edit FHR 'f312' + edit HR '312' + task jgfs_atmos_post_f315 + trigger ./jgfs_atmos_post_manager:release_post315 + edit FHRGRP '186' + edit FHRLST 'f315' + edit FHR 'f315' + edit HR '315' + task jgfs_atmos_post_f318 + trigger ./jgfs_atmos_post_manager:release_post318 + edit FHRGRP '187' + edit FHRLST 'f318' + edit FHR 'f318' + edit HR '318' + task jgfs_atmos_post_f321 + trigger ./jgfs_atmos_post_manager:release_post321 + edit FHRGRP '188' + edit FHRLST 'f321' + edit FHR 'f321' + edit HR '321' + task jgfs_atmos_post_f324 + trigger ./jgfs_atmos_post_manager:release_post324 + edit FHRGRP '189' + edit FHRLST 'f324' + edit FHR 'f324' + edit HR '324' + task jgfs_atmos_post_f327 + trigger ./jgfs_atmos_post_manager:release_post327 + edit FHRGRP '190' + edit FHRLST 'f327' + edit FHR 'f327' + edit HR '327' + task jgfs_atmos_post_f330 + trigger ./jgfs_atmos_post_manager:release_post330 + edit FHRGRP '191' + edit FHRLST 'f330' + edit FHR 'f330' + edit HR '330' + task jgfs_atmos_post_f333 + trigger ./jgfs_atmos_post_manager:release_post333 + edit FHRGRP '192' + edit FHRLST 'f333' + edit FHR 'f333' + edit HR '333' + task jgfs_atmos_post_f336 + trigger ./jgfs_atmos_post_manager:release_post336 + edit FHRGRP '193' + edit FHRLST 'f336' + edit FHR 'f336' + edit HR '336' + task jgfs_atmos_post_f339 + trigger ./jgfs_atmos_post_manager:release_post339 + edit FHRGRP '194' + edit FHRLST 'f339' + edit FHR 'f339' + edit HR '339' + task jgfs_atmos_post_f342 + trigger ./jgfs_atmos_post_manager:release_post342 + edit FHRGRP '195' + edit FHRLST 'f342' + edit FHR 'f342' + edit HR '342' + task jgfs_atmos_post_f345 + trigger ./jgfs_atmos_post_manager:release_post345 + edit FHRGRP '196' + edit FHRLST 'f345' + edit FHR 'f345' + edit HR '345' + task jgfs_atmos_post_f348 + trigger ./jgfs_atmos_post_manager:release_post348 + edit FHRGRP '197' + edit FHRLST 'f348' + edit FHR 'f348' + edit HR '348' + task jgfs_atmos_post_f351 + trigger ./jgfs_atmos_post_manager:release_post351 + edit FHRGRP '198' + edit FHRLST 'f351' + edit FHR 'f351' + edit HR '351' + task jgfs_atmos_post_f354 + trigger ./jgfs_atmos_post_manager:release_post354 + edit FHRGRP '199' + edit FHRLST 'f354' + edit FHR 'f354' + edit HR '354' + task jgfs_atmos_post_f357 + trigger ./jgfs_atmos_post_manager:release_post357 + edit FHRGRP '200' + edit FHRLST 'f357' + edit FHR 'f357' + edit HR '357' + task jgfs_atmos_post_f360 + trigger ./jgfs_atmos_post_manager:release_post360 + edit FHRGRP '201' + edit FHRLST 'f360' + edit FHR 'f360' + edit HR '360' + task jgfs_atmos_post_f363 + trigger ./jgfs_atmos_post_manager:release_post363 + edit FHRGRP '202' + edit FHRLST 'f363' + edit FHR 'f363' + edit HR '363' + task jgfs_atmos_post_f366 + trigger ./jgfs_atmos_post_manager:release_post366 + edit FHRGRP '203' + edit FHRLST 'f366' + edit FHR 'f366' + edit HR '366' + task jgfs_atmos_post_f369 + trigger ./jgfs_atmos_post_manager:release_post369 + edit FHRGRP '204' + edit FHRLST 'f369' + edit FHR 'f369' + edit HR '369' + task jgfs_atmos_post_f372 + trigger ./jgfs_atmos_post_manager:release_post372 + edit FHRGRP '205' + edit FHRLST 'f372' + edit FHR 'f372' + edit HR '372' + task jgfs_atmos_post_f375 + trigger ./jgfs_atmos_post_manager:release_post375 + edit FHRGRP '206' + edit FHRLST 'f375' + edit FHR 'f375' + edit HR '375' + task jgfs_atmos_post_f378 + trigger ./jgfs_atmos_post_manager:release_post378 + edit FHRGRP '207' + edit FHRLST 'f378' + edit FHR 'f378' + edit HR '378' + task jgfs_atmos_post_f381 + trigger ./jgfs_atmos_post_manager:release_post381 + edit FHRGRP '208' + edit FHRLST 'f381' + edit FHR 'f381' + edit HR '381' + task jgfs_atmos_post_f384 + trigger ./jgfs_atmos_post_manager:release_post384 + edit FHRGRP '209' + edit FHRLST 'f384' + edit FHR 'f384' + edit HR '384' + endfamily + family post_processing + task jgfs_atmos_wafs_gcip + trigger ../post/jgfs_atmos_post_f003 == complete + time 04:40 + family grib_wafs + task jgfs_atmos_wafs_f00 + trigger ../../post/jgfs_atmos_post_f000 == complete and ../../post/jgfs_atmos_post_f120 == complete and ../grib2_wafs/jgfs_atmos_wafs_grib2 == complete + edit FCSTHR '00' + task jgfs_atmos_wafs_f06 + trigger ../../post/jgfs_atmos_post_f006 == complete and ./jgfs_atmos_wafs_f00 == complete + edit FCSTHR '06' + task jgfs_atmos_wafs_f12 + trigger ../../post/jgfs_atmos_post_f012 == complete and ./jgfs_atmos_wafs_f06 == complete + edit FCSTHR '12' + task jgfs_atmos_wafs_f18 + trigger ../../post/jgfs_atmos_post_f018 == complete and ./jgfs_atmos_wafs_f12 == complete + edit FCSTHR '18' + task jgfs_atmos_wafs_f24 + trigger ../../post/jgfs_atmos_post_f024 == complete and ./jgfs_atmos_wafs_f18 == complete + edit FCSTHR '24' + task jgfs_atmos_wafs_f30 + trigger ../../post/jgfs_atmos_post_f030 == complete and ./jgfs_atmos_wafs_f24 == complete + edit FCSTHR '30' + task jgfs_atmos_wafs_f36 + trigger ../../post/jgfs_atmos_post_f036 == complete and ./jgfs_atmos_wafs_f30 == complete + edit FCSTHR '36' + task jgfs_atmos_wafs_f42 + trigger ../../post/jgfs_atmos_post_f042 == complete and ./jgfs_atmos_wafs_f36 == complete + edit FCSTHR '42' + task jgfs_atmos_wafs_f48 + trigger ../../post/jgfs_atmos_post_f048 == complete and ./jgfs_atmos_wafs_f42 == complete + edit FCSTHR '48' + task jgfs_atmos_wafs_f54 + trigger ../../post/jgfs_atmos_post_f054 == complete and ./jgfs_atmos_wafs_f48 == complete + edit FCSTHR '54' + task jgfs_atmos_wafs_f60 + trigger ../../post/jgfs_atmos_post_f060 == complete and ./jgfs_atmos_wafs_f54 == complete + edit FCSTHR '60' + task jgfs_atmos_wafs_f66 + trigger ../../post/jgfs_atmos_post_f066 == complete and ./jgfs_atmos_wafs_f60 == complete + edit FCSTHR '66' + task jgfs_atmos_wafs_f72 + trigger ../../post/jgfs_atmos_post_f072 == complete and ./jgfs_atmos_wafs_f66 == complete + edit FCSTHR '72' + task jgfs_atmos_wafs_f78 + trigger ../../post/jgfs_atmos_post_f078 == complete and ./jgfs_atmos_wafs_f72 == complete + edit FCSTHR '78' + task jgfs_atmos_wafs_f84 + trigger ../../post/jgfs_atmos_post_f084 == complete and ./jgfs_atmos_wafs_f78 == complete + edit FCSTHR '84' + task jgfs_atmos_wafs_f90 + trigger ../../post/jgfs_atmos_post_f090 == complete and ./jgfs_atmos_wafs_f84 == complete + edit FCSTHR '90' + task jgfs_atmos_wafs_f96 + trigger ../../post/jgfs_atmos_post_f096 == complete and ./jgfs_atmos_wafs_f90 == complete + edit FCSTHR '96' + task jgfs_atmos_wafs_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete and ./jgfs_atmos_wafs_f96 == complete + edit FCSTHR '102' + task jgfs_atmos_wafs_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete and ./jgfs_atmos_wafs_f102 == complete + edit FCSTHR '108' + task jgfs_atmos_wafs_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete and ./jgfs_atmos_wafs_f108 == complete + edit FCSTHR '114' + task jgfs_atmos_wafs_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete and ./jgfs_atmos_wafs_f114 == complete + edit FCSTHR '120' + endfamily + family grib2_wafs + task jgfs_atmos_wafs_grib2 + trigger ../../post/jgfs_atmos_post_f000 == complete + task jgfs_atmos_wafs_grib2_0p25 + trigger ../../post/jgfs_atmos_post_f036 == complete + task jgfs_atmos_wafs_blending + trigger ./jgfs_atmos_wafs_grib2 == complete + time 04:33 + task jgfs_atmos_wafs_blending_0p25 + trigger ./jgfs_atmos_wafs_grib2_0p25 == complete + endfamily + family bufr_sounding + task jgfs_atmos_postsnd + trigger ../../post/jgfs_atmos_post_manager:release_post000 + endfamily + family bulletins + task jgfs_atmos_fbwind + trigger ../../post/jgfs_atmos_post_f006 == complete and ../../post/jgfs_atmos_post_f012 == complete and ../../post/jgfs_atmos_post_f024 == complete + endfamily + family awips_20km_1p0 + task jgfs_atmos_awips_f000 + trigger ../../post/jgfs_atmos_post_f000 == complete + edit FHRGRP '000' + edit FHRLST 'f000' + edit FCSTHR '000' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f003 + trigger ../../post/jgfs_atmos_post_f003 == complete + edit FHRGRP '003' + edit FHRLST 'f003' + edit FCSTHR '003' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f006 + trigger ../../post/jgfs_atmos_post_f006 == complete + edit FHRGRP '006' + edit FHRLST 'f006' + edit FCSTHR '006' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f009 + trigger ../../post/jgfs_atmos_post_f009 == complete + edit FHRGRP '009' + edit FHRLST 'f009' + edit FCSTHR '009' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f012 + trigger ../../post/jgfs_atmos_post_f012 == complete + edit FHRGRP '012' + edit FHRLST 'f012' + edit FCSTHR '012' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f015 + trigger ../../post/jgfs_atmos_post_f015 == complete + edit FHRGRP '015' + edit FHRLST 'f015' + edit FCSTHR '015' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f018 + trigger ../../post/jgfs_atmos_post_f018 == complete + edit FHRGRP '018' + edit FHRLST 'f018' + edit FCSTHR '018' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f021 + trigger ../../post/jgfs_atmos_post_f021 == complete + edit FHRGRP '021' + edit FHRLST 'f021' + edit FCSTHR '021' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f024 + trigger ../../post/jgfs_atmos_post_f024 == complete + edit FHRGRP '024' + edit FHRLST 'f024' + edit FCSTHR '024' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f027 + trigger ../../post/jgfs_atmos_post_f027 == complete + edit FHRGRP '027' + edit FHRLST 'f027' + edit FCSTHR '027' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f030 + trigger ../../post/jgfs_atmos_post_f030 == complete + edit FHRGRP '030' + edit FHRLST 'f030' + edit FCSTHR '030' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f033 + trigger ../../post/jgfs_atmos_post_f033 == complete + edit FHRGRP '033' + edit FHRLST 'f033' + edit FCSTHR '033' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f036 + trigger ../../post/jgfs_atmos_post_f036 == complete + edit FHRGRP '036' + edit FHRLST 'f036' + edit FCSTHR '036' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f039 + trigger ../../post/jgfs_atmos_post_f039 == complete + edit FHRGRP '039' + edit FHRLST 'f039' + edit FCSTHR '039' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f042 + trigger ../../post/jgfs_atmos_post_f042 == complete + edit FHRGRP '042' + edit FHRLST 'f042' + edit FCSTHR '042' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f045 + trigger ../../post/jgfs_atmos_post_f045 == complete + edit FHRGRP '045' + edit FHRLST 'f045' + edit FCSTHR '045' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f048 + trigger ../../post/jgfs_atmos_post_f048 == complete + edit FHRGRP '048' + edit FHRLST 'f048' + edit FCSTHR '048' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f051 + trigger ../../post/jgfs_atmos_post_f051 == complete + edit FHRGRP '051' + edit FHRLST 'f051' + edit FCSTHR '051' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f054 + trigger ../../post/jgfs_atmos_post_f054 == complete + edit FHRGRP '054' + edit FHRLST 'f054' + edit FCSTHR '054' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f057 + trigger ../../post/jgfs_atmos_post_f057 == complete + edit FHRGRP '057' + edit FHRLST 'f057' + edit FCSTHR '057' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f060 + trigger ../../post/jgfs_atmos_post_f060 == complete + edit FHRGRP '060' + edit FHRLST 'f060' + edit FCSTHR '060' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f063 + trigger ../../post/jgfs_atmos_post_f063 == complete + edit FHRGRP '063' + edit FHRLST 'f063' + edit FCSTHR '063' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f066 + trigger ../../post/jgfs_atmos_post_f066 == complete + edit FHRGRP '066' + edit FHRLST 'f066' + edit FCSTHR '066' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f069 + trigger ../../post/jgfs_atmos_post_f069 == complete + edit FHRGRP '069' + edit FHRLST 'f069' + edit FCSTHR '069' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f072 + trigger ../../post/jgfs_atmos_post_f072 == complete + edit FHRGRP '072' + edit FHRLST 'f072' + edit FCSTHR '072' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f075 + trigger ../../post/jgfs_atmos_post_f075 == complete + edit FHRGRP '075' + edit FHRLST 'f075' + edit FCSTHR '075' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f078 + trigger ../../post/jgfs_atmos_post_f078 == complete + edit FHRGRP '078' + edit FHRLST 'f078' + edit FCSTHR '078' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f081 + trigger ../../post/jgfs_atmos_post_f081 == complete + edit FHRGRP '081' + edit FHRLST 'f081' + edit FCSTHR '081' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f084 + trigger ../../post/jgfs_atmos_post_f084 == complete + edit FHRGRP '084' + edit FHRLST 'f084' + edit FCSTHR '084' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f090 + trigger ../../post/jgfs_atmos_post_f090 == complete + edit FHRGRP '090' + edit FHRLST 'f090' + edit FCSTHR '090' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f096 + trigger ../../post/jgfs_atmos_post_f096 == complete + edit FHRGRP '096' + edit FHRLST 'f096' + edit FCSTHR '096' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete + edit FHRGRP '102' + edit FHRLST 'f102' + edit FCSTHR '102' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete + edit FHRGRP '108' + edit FHRLST 'f108' + edit FCSTHR '108' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete + edit FHRGRP '114' + edit FHRLST 'f114' + edit FCSTHR '114' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete + edit FHRGRP '120' + edit FHRLST 'f120' + edit FCSTHR '120' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f126 + trigger ../../post/jgfs_atmos_post_f126 == complete + edit FHRGRP '126' + edit FHRLST 'f126' + edit FCSTHR '126' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f132 + trigger ../../post/jgfs_atmos_post_f132 == complete + edit FHRGRP '132' + edit FHRLST 'f132' + edit FCSTHR '132' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f138 + trigger ../../post/jgfs_atmos_post_f138 == complete + edit FHRGRP '138' + edit FHRLST 'f138' + edit FCSTHR '138' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f144 + trigger ../../post/jgfs_atmos_post_f144 == complete + edit FHRGRP '144' + edit FHRLST 'f144' + edit FCSTHR '144' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f150 + trigger ../../post/jgfs_atmos_post_f150 == complete + edit FHRGRP '150' + edit FHRLST 'f150' + edit FCSTHR '150' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f156 + trigger ../../post/jgfs_atmos_post_f156 == complete + edit FHRGRP '156' + edit FHRLST 'f156' + edit FCSTHR '156' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f162 + trigger ../../post/jgfs_atmos_post_f162 == complete + edit FHRGRP '162' + edit FHRLST 'f162' + edit FCSTHR '162' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f168 + trigger ../../post/jgfs_atmos_post_f168 == complete + edit FHRGRP '168' + edit FHRLST 'f168' + edit FCSTHR '168' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f174 + trigger ../../post/jgfs_atmos_post_f174 == complete + edit FHRGRP '174' + edit FHRLST 'f174' + edit FCSTHR '174' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f180 + trigger ../../post/jgfs_atmos_post_f180 == complete + edit FHRGRP '180' + edit FHRLST 'f180' + edit FCSTHR '180' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f186 + trigger ../../post/jgfs_atmos_post_f186 == complete + edit FHRGRP '186' + edit FHRLST 'f186' + edit FCSTHR '186' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f192 + trigger ../../post/jgfs_atmos_post_f192 == complete + edit FHRGRP '192' + edit FHRLST 'f192' + edit FCSTHR '192' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f198 + trigger ../../post/jgfs_atmos_post_f198 == complete + edit FHRGRP '198' + edit FHRLST 'f198' + edit FCSTHR '198' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f204 + trigger ../../post/jgfs_atmos_post_f204 == complete + edit FHRGRP '204' + edit FHRLST 'f204' + edit FCSTHR '204' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f210 + trigger ../../post/jgfs_atmos_post_f210 == complete + edit FHRGRP '210' + edit FHRLST 'f210' + edit FCSTHR '210' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f216 + trigger ../../post/jgfs_atmos_post_f216 == complete + edit FHRGRP '216' + edit FHRLST 'f216' + edit FCSTHR '216' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f222 + trigger ../../post/jgfs_atmos_post_f222 == complete + edit FHRGRP '222' + edit FHRLST 'f222' + edit FCSTHR '222' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f228 + trigger ../../post/jgfs_atmos_post_f228 == complete + edit FHRGRP '228' + edit FHRLST 'f228' + edit FCSTHR '228' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f234 + trigger ../../post/jgfs_atmos_post_f234 == complete + edit FHRGRP '234' + edit FHRLST 'f234' + edit FCSTHR '234' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f240 + trigger ../../post/jgfs_atmos_post_f240 == complete + edit FHRGRP '240' + edit FHRLST 'f240' + edit FCSTHR '240' + edit TRDRUN 'YES' + endfamily + family awips_g2 + task jgfs_atmos_awips_g2_f000 + trigger ../../post/jgfs_atmos_post_f000 == complete + edit FHRGRP '000' + edit FHRLST 'f000' + edit FCSTHR '000' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f006 + trigger ../../post/jgfs_atmos_post_f006 == complete + edit FHRGRP '006' + edit FHRLST 'f006' + edit FCSTHR '006' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f012 + trigger ../../post/jgfs_atmos_post_f012 == complete + edit FHRGRP '012' + edit FHRLST 'f012' + edit FCSTHR '012' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f018 + trigger ../../post/jgfs_atmos_post_f018 == complete + edit FHRGRP '018' + edit FHRLST 'f018' + edit FCSTHR '018' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f024 + trigger ../../post/jgfs_atmos_post_f024 == complete + edit FHRGRP '024' + edit FHRLST 'f024' + edit FCSTHR '024' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f030 + trigger ../../post/jgfs_atmos_post_f030 == complete + edit FHRGRP '030' + edit FHRLST 'f030' + edit FCSTHR '030' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f036 + trigger ../../post/jgfs_atmos_post_f036 == complete + edit FHRGRP '036' + edit FHRLST 'f036' + edit FCSTHR '036' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f042 + trigger ../../post/jgfs_atmos_post_f042 == complete + edit FHRGRP '042' + edit FHRLST 'f042' + edit FCSTHR '042' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f048 + trigger ../../post/jgfs_atmos_post_f048 == complete + edit FHRGRP '048' + edit FHRLST 'f048' + edit FCSTHR '048' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f054 + trigger ../../post/jgfs_atmos_post_f054 == complete + edit FHRGRP '054' + edit FHRLST 'f054' + edit FCSTHR '054' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f060 + trigger ../../post/jgfs_atmos_post_f060 == complete + edit FHRGRP '060' + edit FHRLST 'f060' + edit FCSTHR '060' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f066 + trigger ../../post/jgfs_atmos_post_f066 == complete + edit FHRGRP '066' + edit FHRLST 'f066' + edit FCSTHR '066' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f072 + trigger ../../post/jgfs_atmos_post_f072 == complete + edit FHRGRP '072' + edit FHRLST 'f072' + edit FCSTHR '072' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f078 + trigger ../../post/jgfs_atmos_post_f078 == complete + edit FHRGRP '078' + edit FHRLST 'f078' + edit FCSTHR '078' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f084 + trigger ../../post/jgfs_atmos_post_f084 == complete + edit FHRGRP '084' + edit FHRLST 'f084' + edit FCSTHR '084' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f090 + trigger ../../post/jgfs_atmos_post_f090 == complete + edit FHRGRP '090' + edit FHRLST 'f090' + edit FCSTHR '090' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f096 + trigger ../../post/jgfs_atmos_post_f096 == complete + edit FHRGRP '096' + edit FHRLST 'f096' + edit FCSTHR '096' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete + edit FHRGRP '102' + edit FHRLST 'f102' + edit FCSTHR '102' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete + edit FHRGRP '108' + edit FHRLST 'f108' + edit FCSTHR '108' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete + edit FHRGRP '114' + edit FHRLST 'f114' + edit FCSTHR '114' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete + edit FHRGRP '120' + edit FHRLST 'f120' + edit FCSTHR '120' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f126 + trigger ../../post/jgfs_atmos_post_f126 == complete + edit FHRGRP '126' + edit FHRLST 'f126' + edit FCSTHR '126' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f132 + trigger ../../post/jgfs_atmos_post_f132 == complete + edit FHRGRP '132' + edit FHRLST 'f132' + edit FCSTHR '132' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f138 + trigger ../../post/jgfs_atmos_post_f138 == complete + edit FHRGRP '138' + edit FHRLST 'f138' + edit FCSTHR '138' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f144 + trigger ../../post/jgfs_atmos_post_f144 == complete + edit FHRGRP '144' + edit FHRLST 'f144' + edit FCSTHR '144' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f150 + trigger ../../post/jgfs_atmos_post_f150 == complete + edit FHRGRP '150' + edit FHRLST 'f150' + edit FCSTHR '150' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f156 + trigger ../../post/jgfs_atmos_post_f156 == complete + edit FHRGRP '156' + edit FHRLST 'f156' + edit FCSTHR '156' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f162 + trigger ../../post/jgfs_atmos_post_f162 == complete + edit FHRGRP '162' + edit FHRLST 'f162' + edit FCSTHR '162' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f168 + trigger ../../post/jgfs_atmos_post_f168 == complete + edit FHRGRP '168' + edit FHRLST 'f168' + edit FCSTHR '168' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f174 + trigger ../../post/jgfs_atmos_post_f174 == complete + edit FHRGRP '174' + edit FHRLST 'f174' + edit FCSTHR '174' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f180 + trigger ../../post/jgfs_atmos_post_f180 == complete + edit FHRGRP '180' + edit FHRLST 'f180' + edit FCSTHR '180' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f186 + trigger ../../post/jgfs_atmos_post_f186 == complete + edit FHRGRP '186' + edit FHRLST 'f186' + edit FCSTHR '186' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f192 + trigger ../../post/jgfs_atmos_post_f192 == complete + edit FHRGRP '192' + edit FHRLST 'f192' + edit FCSTHR '192' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f198 + trigger ../../post/jgfs_atmos_post_f198 == complete + edit FHRGRP '198' + edit FHRLST 'f198' + edit FCSTHR '198' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f204 + trigger ../../post/jgfs_atmos_post_f204 == complete + edit FHRGRP '204' + edit FHRLST 'f204' + edit FCSTHR '204' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f210 + trigger ../../post/jgfs_atmos_post_f210 == complete + edit FHRGRP '210' + edit FHRLST 'f210' + edit FCSTHR '210' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f216 + trigger ../../post/jgfs_atmos_post_f216 == complete + edit FHRGRP '216' + edit FHRLST 'f216' + edit FCSTHR '216' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f222 + trigger ../../post/jgfs_atmos_post_f222 == complete + edit FHRGRP '222' + edit FHRLST 'f222' + edit FCSTHR '222' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f228 + trigger ../../post/jgfs_atmos_post_f228 == complete + edit FHRGRP '228' + edit FHRLST 'f228' + edit FCSTHR '228' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f234 + trigger ../../post/jgfs_atmos_post_f234 == complete + edit FHRGRP '234' + edit FHRLST 'f234' + edit FCSTHR '234' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f240 + trigger ../../post/jgfs_atmos_post_f240 == complete + edit FHRGRP '240' + edit FHRLST 'f240' + edit FCSTHR '240' + edit TRDRUN 'YES' + endfamily + endfamily + family gempak + task jgfs_atmos_gempak + trigger ../../atmos/analysis/jgfs_atmos_analysis == complete + task jgfs_atmos_gempak_meta + trigger ../../atmos/analysis/jgfs_atmos_analysis == complete + task jgfs_atmos_gempak_ncdc_upapgif + trigger ./jgfs_atmos_gempak == active or ./jgfs_atmos_gempak == complete + task jgfs_atmos_npoess_pgrb2_0p5deg + trigger ../post/jgfs_atmos_post_manager:release_post180 + task jgfs_atmos_pgrb2_spec_gempak + trigger ./jgfs_atmos_npoess_pgrb2_0p5deg == complete + endfamily + family verf + task jgfs_atmos_vminmon + trigger ../analysis/jgfs_atmos_analysis == complete + endfamily + endfamily + family wave + family init + task jgfs_wave_init + trigger ../../atmos/obsproc/prep/jgfs_atmos_prep == complete + endfamily + family prep + task jgfs_wave_prep + trigger ../init/jgfs_wave_init == complete + endfamily + family post + task jgfs_wave_postsbs + trigger ../../atmos/post/jgfs_atmos_post_manager:release_post000 + task jgfs_wave_postpnt + trigger ../../jgfs_forecast == complete + task jgfs_wave_post_bndpnt + trigger ../../atmos/post/jgfs_atmos_post_manager:release_post180 + task jgfs_wave_prdgen_gridded + trigger ./jgfs_wave_postsbs == active or ./jgfs_wave_postsbs == complete + task jgfs_wave_prdgen_bulls + trigger ./jgfs_wave_postpnt == complete and ./jgfs_wave_postsbs == complete + endfamily + family gempak + task jgfs_wave_gempak + trigger ../post/jgfs_wave_postsbs == active or ../post/jgfs_wave_postsbs == complete + endfamily + endfamily + task jgfs_forecast + trigger ./atmos/analysis/jgfs_atmos_analysis:release_fcst and ./wave/prep/jgfs_wave_prep == complete + endfamily + family gdas + edit CYC '06' + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3' + edit PROJ 'GDAS-OPS' + edit NET 'gfs' + edit RUN 'gdas' + edit COM '/gpfs/dell1/nco/ops/com' + edit QUEUESHARED 'prod_shared' + edit QUEUESERV 'prod_transfer' + edit QUEUE 'prod' + family atmos + family obsproc + family dump + task jgdas_atmos_tropcy_qc_reloc + time 05:45 + task jgdas_atmos_dump + event 1 release_sfcprep + time 05:50 + task jgdas_atmos_dump_post + trigger jgdas_atmos_dump == complete + event 1 release_gdas06_dump_alert + task jgdas_atmos_dump_alert + trigger jgdas_atmos_dump_post:release_gdas06_dump_alert + endfamily + family prep + task jgdas_atmos_emcsfc_sfc_prep + trigger ../dump/jgdas_atmos_dump:release_sfcprep + task jgdas_atmos_prep + trigger ../dump/jgdas_atmos_dump == complete and ../dump/jgdas_atmos_tropcy_qc_reloc == complete + task jgdas_atmos_prep_post + trigger ./jgdas_atmos_prep == complete and ../../analysis/jgdas_atmos_analysis == complete + endfamily + endfamily + family init + task jgdas_atmos_gldas + trigger ../analysis/jgdas_atmos_analysis == complete + endfamily + family analysis + task jgdas_atmos_analysis + trigger ../obsproc/prep/jgdas_atmos_prep == complete and ../obsproc/prep/jgdas_atmos_emcsfc_sfc_prep == complete + event 1 release_fcst + task jgdas_atmos_analysis_calc + trigger ./jgdas_atmos_analysis == complete + task jgdas_atmos_analysis_diag + trigger ./jgdas_atmos_analysis == complete + endfamily + family post + task jgdas_atmos_post_manager + trigger ../../jgdas_forecast == active + event 1 release_postanl + event 2 release_post000 + event 3 release_post001 + event 4 release_post002 + event 5 release_post003 + event 6 release_post004 + event 7 release_post005 + event 8 release_post006 + event 9 release_post007 + event 10 release_post008 + event 11 release_post009 + task jgdas_atmos_post_anl + trigger ./jgdas_atmos_post_manager:release_postanl + edit FHRGRP '000' + edit FHRLST 'anl' + edit HR 'anl' + edit FHR 'anl' + task jgdas_atmos_post_f000 + trigger ./jgdas_atmos_post_manager:release_post000 + edit FHR 'f000' + edit HR '000' + edit FHRGRP '001' + edit FHRLST 'f000' + task jgdas_atmos_post_f001 + trigger ./jgdas_atmos_post_manager:release_post001 + edit FHR 'f001' + edit HR '001' + edit FHRGRP '002' + edit FHRLST 'f001' + task jgdas_atmos_post_f002 + trigger ./jgdas_atmos_post_manager:release_post002 + edit FHR 'f002' + edit HR '002' + edit FHRGRP '003' + edit FHRLST 'f002' + task jgdas_atmos_post_f003 + trigger ./jgdas_atmos_post_manager:release_post003 + edit FHR 'f003' + edit HR '003' + edit FHRGRP '004' + edit FHRLST 'f003' + task jgdas_atmos_post_f004 + trigger ./jgdas_atmos_post_manager:release_post004 + edit FHR 'f004' + edit HR '004' + edit FHRGRP '005' + edit FHRLST 'f004' + task jgdas_atmos_post_f005 + trigger ./jgdas_atmos_post_manager:release_post005 + edit FHR 'f005' + edit HR '005' + edit FHRGRP '006' + edit FHRLST 'f005' + task jgdas_atmos_post_f006 + trigger ./jgdas_atmos_post_manager:release_post006 + edit FHR 'f006' + edit HR '006' + edit FHRGRP '007' + edit FHRLST 'f006' + task jgdas_atmos_post_f007 + trigger ./jgdas_atmos_post_manager:release_post007 + edit FHR 'f007' + edit HR '007' + edit FHRGRP '008' + edit FHRLST 'f007' + task jgdas_atmos_post_f008 + trigger ./jgdas_atmos_post_manager:release_post008 + edit FHR 'f008' + edit HR '008' + edit FHRGRP '009' + edit FHRLST 'f008' + task jgdas_atmos_post_f009 + trigger ./jgdas_atmos_post_manager:release_post009 + edit FHR 'f009' + edit HR '009' + edit FHRGRP '010' + edit FHRLST 'f009' + endfamily + family post_processing + task jgdas_atmos_chgres_forenkf + trigger ../../jgdas_forecast == complete and ../../enkf/forecast == complete + endfamily + family gempak + task jgdas_atmos_gempak + trigger ../../jgdas_forecast == complete + task jgdas_atmos_gempak_meta_ncdc + trigger ./jgdas_atmos_gempak == complete + endfamily + family verf + task jgdas_atmos_vminmon + trigger ../analysis/jgdas_atmos_analysis == complete + task jgdas_atmos_verfrad + trigger ../analysis/jgdas_atmos_analysis_diag == complete + task jgdas_atmos_verfozn + trigger ../analysis/jgdas_atmos_analysis_diag == complete + endfamily + endfamily + family wave + family init + task jgdas_wave_init + trigger ../../atmos/obsproc/prep/jgdas_atmos_prep == complete + endfamily + family prep + task jgdas_wave_prep + trigger ../init/jgdas_wave_init == complete + endfamily + family post + task jgdas_wave_postsbs + trigger ../../atmos/post/jgdas_atmos_post_manager:release_post000 + task jgdas_wave_postpnt + trigger ../../jgdas_forecast == complete + endfamily + endfamily + task jgdas_forecast + trigger ./atmos/analysis/jgdas_atmos_analysis:release_fcst and ./wave/prep/jgdas_wave_prep == complete and ./atmos/init/jgdas_atmos_gldas == complete + family enkf + family analysis + family create + task jgdas_enkf_select_obs + trigger ../../../atmos/obsproc/prep/jgdas_atmos_prep == complete and /prod00/gdas/enkf/post == complete + task jgdas_enkf_diag + trigger ./jgdas_enkf_select_obs == complete + task jgdas_enkf_update + trigger ./jgdas_enkf_diag == complete + endfamily + family recenter + family ecen + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3/enkf/analysis/recenter/ecen' + trigger ../create/jgdas_enkf_update == complete and ../../../atmos/analysis/jgdas_atmos_analysis_calc == complete and /prod00/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf == complete + family grp1 + edit FHRGRP '003' + task jgdas_enkf_ecen + endfamily + family grp2 + edit FHRGRP '006' + task jgdas_enkf_ecen + endfamily + family grp3 + edit FHRGRP '009' + task jgdas_enkf_ecen + endfamily + endfamily + task jgdas_enkf_sfc + trigger ../create/jgdas_enkf_update == complete and ../../../atmos/analysis/jgdas_atmos_analysis_calc == complete + endfamily + endfamily + family forecast + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3/enkf/forecast' + trigger ./analysis/recenter/ecen == complete and ./analysis/recenter/jgdas_enkf_sfc == complete + family grp1 + edit ENSGRP '01' + task jgdas_enkf_fcst + endfamily + family grp2 + edit ENSGRP '02' + task jgdas_enkf_fcst + endfamily + family grp3 + edit ENSGRP '03' + task jgdas_enkf_fcst + endfamily + family grp4 + edit ENSGRP '04' + task jgdas_enkf_fcst + endfamily + family grp5 + edit ENSGRP '05' + task jgdas_enkf_fcst + endfamily + family grp6 + edit ENSGRP '06' + task jgdas_enkf_fcst + endfamily + family grp7 + edit ENSGRP '07' + task jgdas_enkf_fcst + endfamily + family grp8 + edit ENSGRP '08' + task jgdas_enkf_fcst + endfamily + family grp9 + edit ENSGRP '09' + task jgdas_enkf_fcst + endfamily + family grp10 + edit ENSGRP '10' + task jgdas_enkf_fcst + endfamily + family grp11 + edit ENSGRP '11' + task jgdas_enkf_fcst + endfamily + family grp12 + edit ENSGRP '12' + task jgdas_enkf_fcst + endfamily + family grp13 + edit ENSGRP '13' + task jgdas_enkf_fcst + endfamily + family grp14 + edit ENSGRP '14' + task jgdas_enkf_fcst + endfamily + family grp15 + edit ENSGRP '15' + task jgdas_enkf_fcst + endfamily + family grp16 + edit ENSGRP '16' + task jgdas_enkf_fcst + endfamily + family grp17 + edit ENSGRP '17' + task jgdas_enkf_fcst + endfamily + family grp18 + edit ENSGRP '18' + task jgdas_enkf_fcst + endfamily + family grp19 + edit ENSGRP '19' + task jgdas_enkf_fcst + endfamily + family grp20 + edit ENSGRP '20' + task jgdas_enkf_fcst + endfamily + family grp21 + edit ENSGRP '21' + task jgdas_enkf_fcst + endfamily + family grp22 + edit ENSGRP '22' + task jgdas_enkf_fcst + endfamily + family grp23 + edit ENSGRP '23' + task jgdas_enkf_fcst + endfamily + family grp24 + edit ENSGRP '24' + task jgdas_enkf_fcst + endfamily + family grp25 + edit ENSGRP '25' + task jgdas_enkf_fcst + endfamily + family grp26 + edit ENSGRP '26' + task jgdas_enkf_fcst + endfamily + family grp27 + edit ENSGRP '27' + task jgdas_enkf_fcst + endfamily + family grp28 + edit ENSGRP '28' + task jgdas_enkf_fcst + endfamily + family grp29 + edit ENSGRP '29' + task jgdas_enkf_fcst + endfamily + family grp30 + edit ENSGRP '30' + task jgdas_enkf_fcst + endfamily + family grp31 + edit ENSGRP '31' + task jgdas_enkf_fcst + endfamily + family grp32 + edit ENSGRP '32' + task jgdas_enkf_fcst + endfamily + family grp33 + edit ENSGRP '33' + task jgdas_enkf_fcst + endfamily + family grp34 + edit ENSGRP '34' + task jgdas_enkf_fcst + endfamily + family grp35 + edit ENSGRP '35' + task jgdas_enkf_fcst + endfamily + family grp36 + edit ENSGRP '36' + task jgdas_enkf_fcst + endfamily + family grp37 + edit ENSGRP '37' + task jgdas_enkf_fcst + endfamily + family grp38 + edit ENSGRP '38' + task jgdas_enkf_fcst + endfamily + family grp39 + edit ENSGRP '39' + task jgdas_enkf_fcst + endfamily + family grp40 + edit ENSGRP '40' + task jgdas_enkf_fcst + endfamily + endfamily + family post + trigger ./forecast == complete + task jgdas_enkf_post_f003 + edit FHMIN_EPOS '003' + edit FHMAX_EPOS '003' + edit FHOUT_EPOS '003' + task jgdas_enkf_post_f004 + edit FHMIN_EPOS '004' + edit FHMAX_EPOS '004' + edit FHOUT_EPOS '004' + task jgdas_enkf_post_f005 + edit FHMIN_EPOS '005' + edit FHMAX_EPOS '005' + edit FHOUT_EPOS '005' + task jgdas_enkf_post_f006 + edit FHMIN_EPOS '006' + edit FHMAX_EPOS '006' + edit FHOUT_EPOS '006' + task jgdas_enkf_post_f007 + edit FHMIN_EPOS '007' + edit FHMAX_EPOS '007' + edit FHOUT_EPOS '007' + task jgdas_enkf_post_f008 + edit FHMIN_EPOS '008' + edit FHMAX_EPOS '008' + edit FHOUT_EPOS '008' + task jgdas_enkf_post_f009 + edit FHMIN_EPOS '009' + edit FHMAX_EPOS '009' + edit FHOUT_EPOS '009' + endfamily #### epos + endfamily #### enkf + endfamily #### gdas +endsuite diff --git a/ecflow/ecf/defs/prod12.def b/ecflow/ecf/defs/prod12.def new file mode 100644 index 0000000000..a0c8c943ba --- /dev/null +++ b/ecflow/ecf/defs/prod12.def @@ -0,0 +1,2642 @@ +extern /prod06/gdas/jgdas_forecast +extern /prod06/gdas/atmos/post +extern /prod06/gdas/enkf/post +#### ecen +extern /prod06/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf + +suite prod12 + repeat day 1 + edit ECF_TRIES '1' + edit CYC '12' + edit ENVIR 'prod' + edit PROJ 'OPS' + edit E 'j' + edit QUEUE 'prod' + edit QUEUESHARED 'dev_shared' + edit QUEUESERV 'dev_transfer' + edit PROJENVIR 'OPS' + edit MACHINE_SITE 'production' + + family gfs + edit CYC '12' + edit ECF_FILES '/ecf/ecfnets/scripts/gfs_FV3' + edit PROJ 'GFS-OPS' + edit NET 'gfs' + edit RUN 'gfs' + edit COM '/gpfs/dell1/nco/ops/com' + edit QUEUESHARED 'prod_shared' + edit QUEUESERV 'prod_transfer' + edit QUEUE 'prod' + family atmos + family obsproc + family dump + task jgfs_atmos_tropcy_qc_reloc + event 1 jtwc_bull_email + time 02:41 + task jgfs_atmos_dump + event 1 release_sfcprep + time 02:47 + task jgfs_atmos_dump_post + trigger jgfs_atmos_dump == complete + event 1 release_gfs12_dump_alert + task jgfs_atmos_dump_alert + trigger jgfs_atmos_dump_post:release_gfs12_dump_alert + endfamily + family prep + task jgfs_atmos_emcsfc_sfc_prep + trigger ../dump/jgfs_atmos_dump:release_sfcprep + task jgfs_atmos_prep + trigger ../dump/jgfs_atmos_dump == complete and ../dump/jgfs_atmos_tropcy_qc_reloc == complete + task jgfs_atmos_prep_post + trigger ./jgfs_atmos_prep == complete and ../../analysis/jgfs_atmos_analysis == complete + endfamily + endfamily + family analysis + task jgfs_atmos_analysis + trigger ../obsproc/prep/jgfs_atmos_prep == complete and ../obsproc/prep/jgfs_atmos_emcsfc_sfc_prep == complete + event 1 release_fcst + task jgfs_atmos_analysis_calc + trigger ./jgfs_atmos_analysis == complete + endfamily + family post + task jgfs_atmos_post_manager + trigger ../analysis/jgfs_atmos_analysis == complete + event 1 release_postanl + event 2 release_post000 + event 3 release_post001 + event 4 release_post002 + event 5 release_post003 + event 6 release_post004 + event 7 release_post005 + event 8 release_post006 + event 9 release_post007 + event 10 release_post008 + event 11 release_post009 + event 12 release_post010 + event 13 release_post011 + event 14 release_post012 + event 15 release_post013 + event 16 release_post014 + event 17 release_post015 + event 18 release_post016 + event 19 release_post017 + event 20 release_post018 + event 21 release_post019 + event 22 release_post020 + event 23 release_post021 + event 24 release_post022 + event 25 release_post023 + event 26 release_post024 + event 27 release_post025 + event 28 release_post026 + event 29 release_post027 + event 30 release_post028 + event 31 release_post029 + event 32 release_post030 + event 33 release_post031 + event 34 release_post032 + event 35 release_post033 + event 36 release_post034 + event 37 release_post035 + event 38 release_post036 + event 39 release_post037 + event 40 release_post038 + event 41 release_post039 + event 42 release_post040 + event 43 release_post041 + event 44 release_post042 + event 45 release_post043 + event 46 release_post044 + event 47 release_post045 + event 48 release_post046 + event 49 release_post047 + event 50 release_post048 + event 51 release_post049 + event 52 release_post050 + event 53 release_post051 + event 54 release_post052 + event 55 release_post053 + event 56 release_post054 + event 57 release_post055 + event 58 release_post056 + event 59 release_post057 + event 60 release_post058 + event 61 release_post059 + event 62 release_post060 + event 63 release_post061 + event 64 release_post062 + event 65 release_post063 + event 66 release_post064 + event 67 release_post065 + event 68 release_post066 + event 69 release_post067 + event 70 release_post068 + event 71 release_post069 + event 72 release_post070 + event 73 release_post071 + event 74 release_post072 + event 75 release_post073 + event 76 release_post074 + event 77 release_post075 + event 78 release_post076 + event 79 release_post077 + event 80 release_post078 + event 81 release_post079 + event 82 release_post080 + event 83 release_post081 + event 84 release_post082 + event 85 release_post083 + event 86 release_post084 + event 87 release_post085 + event 88 release_post086 + event 89 release_post087 + event 90 release_post088 + event 91 release_post089 + event 92 release_post090 + event 93 release_post091 + event 94 release_post092 + event 95 release_post093 + event 96 release_post094 + event 97 release_post095 + event 98 release_post096 + event 99 release_post097 + event 100 release_post098 + event 101 release_post099 + event 102 release_post100 + event 103 release_post101 + event 104 release_post102 + event 105 release_post103 + event 106 release_post104 + event 107 release_post105 + event 108 release_post106 + event 109 release_post107 + event 110 release_post108 + event 111 release_post109 + event 112 release_post110 + event 113 release_post111 + event 114 release_post112 + event 115 release_post113 + event 116 release_post114 + event 117 release_post115 + event 118 release_post116 + event 119 release_post117 + event 120 release_post118 + event 121 release_post119 + event 122 release_post120 + event 123 release_post123 + event 124 release_post126 + event 125 release_post129 + event 126 release_post132 + event 127 release_post135 + event 128 release_post138 + event 129 release_post141 + event 130 release_post144 + event 131 release_post147 + event 132 release_post150 + event 133 release_post153 + event 134 release_post156 + event 135 release_post159 + event 136 release_post162 + event 137 release_post165 + event 138 release_post168 + event 139 release_post171 + event 140 release_post174 + event 141 release_post177 + event 142 release_post180 + event 143 release_post183 + event 144 release_post186 + event 145 release_post189 + event 146 release_post192 + event 147 release_post195 + event 148 release_post198 + event 149 release_post201 + event 150 release_post204 + event 151 release_post207 + event 152 release_post210 + event 153 release_post213 + event 154 release_post216 + event 155 release_post219 + event 156 release_post222 + event 157 release_post225 + event 158 release_post228 + event 159 release_post231 + event 160 release_post234 + event 161 release_post237 + event 162 release_post240 + event 163 release_post243 + event 164 release_post246 + event 165 release_post249 + event 166 release_post252 + event 167 release_post255 + event 168 release_post258 + event 169 release_post261 + event 170 release_post264 + event 171 release_post267 + event 172 release_post270 + event 173 release_post273 + event 174 release_post276 + event 175 release_post279 + event 176 release_post282 + event 177 release_post285 + event 178 release_post288 + event 179 release_post291 + event 180 release_post294 + event 181 release_post297 + event 182 release_post300 + event 183 release_post303 + event 184 release_post306 + event 185 release_post309 + event 186 release_post312 + event 187 release_post315 + event 188 release_post318 + event 189 release_post321 + event 190 release_post324 + event 191 release_post327 + event 192 release_post330 + event 193 release_post333 + event 194 release_post336 + event 195 release_post339 + event 196 release_post342 + event 197 release_post345 + event 198 release_post348 + event 199 release_post351 + event 200 release_post354 + event 201 release_post357 + event 202 release_post360 + event 203 release_post363 + event 204 release_post366 + event 205 release_post369 + event 206 release_post372 + event 207 release_post375 + event 208 release_post378 + event 209 release_post381 + event 210 release_post384 + task jgfs_atmos_post_anl + trigger ./jgfs_atmos_post_manager:release_postanl + edit FHRGRP '000' + edit FHRLST 'anl' + edit HR 'anl' + edit FHR 'anl' + task jgfs_atmos_post_f000 + trigger ./jgfs_atmos_post_manager:release_post000 + edit FHRGRP '001' + edit FHRLST 'f000' + edit FHR 'f000' + edit HR '000' + task jgfs_atmos_post_f001 + trigger ./jgfs_atmos_post_manager:release_post001 + edit FHRGRP '002' + edit FHRLST 'f001' + edit FHR 'f001' + edit HR '001' + task jgfs_atmos_post_f002 + trigger ./jgfs_atmos_post_manager:release_post002 + edit FHRGRP '003' + edit FHRLST 'f002' + edit FHR 'f002' + edit HR '002' + task jgfs_atmos_post_f003 + trigger ./jgfs_atmos_post_manager:release_post003 + edit FHRGRP '004' + edit FHRLST 'f003' + edit FHR 'f003' + edit HR '003' + task jgfs_atmos_post_f004 + trigger ./jgfs_atmos_post_manager:release_post004 + edit FHRGRP '005' + edit FHRLST 'f004' + edit FHR 'f004' + edit HR '004' + task jgfs_atmos_post_f005 + trigger ./jgfs_atmos_post_manager:release_post005 + edit FHRGRP '006' + edit FHRLST 'f005' + edit FHR 'f005' + edit HR '005' + task jgfs_atmos_post_f006 + trigger ./jgfs_atmos_post_manager:release_post006 + edit FHRGRP '007' + edit FHRLST 'f006' + edit FHR 'f006' + edit HR '006' + task jgfs_atmos_post_f007 + trigger ./jgfs_atmos_post_manager:release_post007 + edit FHRGRP '008' + edit FHRLST 'f007' + edit FHR 'f007' + edit HR '007' + task jgfs_atmos_post_f008 + trigger ./jgfs_atmos_post_manager:release_post008 + edit FHRGRP '009' + edit FHRLST 'f008' + edit FHR 'f008' + edit HR '008' + task jgfs_atmos_post_f009 + trigger ./jgfs_atmos_post_manager:release_post009 + edit FHRGRP '010' + edit FHRLST 'f009' + edit FHR 'f009' + edit HR '009' + task jgfs_atmos_post_f010 + trigger ./jgfs_atmos_post_manager:release_post010 + edit FHRGRP '011' + edit FHRLST 'f010' + edit FHR 'f010' + edit HR '010' + task jgfs_atmos_post_f011 + trigger ./jgfs_atmos_post_manager:release_post011 + edit FHRGRP '012' + edit FHRLST 'f011' + edit FHR 'f011' + edit HR '011' + task jgfs_atmos_post_f012 + trigger ./jgfs_atmos_post_manager:release_post012 + edit FHRGRP '013' + edit FHRLST 'f012' + edit FHR 'f012' + edit HR '012' + task jgfs_atmos_post_f013 + trigger ./jgfs_atmos_post_manager:release_post013 + edit FHRGRP '014' + edit FHRLST 'f013' + edit FHR 'f013' + edit HR '013' + task jgfs_atmos_post_f014 + trigger ./jgfs_atmos_post_manager:release_post014 + edit FHRGRP '015' + edit FHRLST 'f014' + edit FHR 'f014' + edit HR '014' + task jgfs_atmos_post_f015 + trigger ./jgfs_atmos_post_manager:release_post015 + edit FHRGRP '016' + edit FHRLST 'f015' + edit FHR 'f015' + edit HR '015' + task jgfs_atmos_post_f016 + trigger ./jgfs_atmos_post_manager:release_post016 + edit FHRGRP '017' + edit FHRLST 'f016' + edit FHR 'f016' + edit HR '016' + task jgfs_atmos_post_f017 + trigger ./jgfs_atmos_post_manager:release_post017 + edit FHRGRP '018' + edit FHRLST 'f017' + edit FHR 'f017' + edit HR '017' + task jgfs_atmos_post_f018 + trigger ./jgfs_atmos_post_manager:release_post018 + edit FHRGRP '019' + edit FHRLST 'f018' + edit FHR 'f018' + edit HR '018' + task jgfs_atmos_post_f019 + trigger ./jgfs_atmos_post_manager:release_post019 + edit FHRGRP '020' + edit FHRLST 'f019' + edit FHR 'f019' + edit HR '019' + task jgfs_atmos_post_f020 + trigger ./jgfs_atmos_post_manager:release_post020 + edit FHRGRP '021' + edit FHRLST 'f020' + edit FHR 'f020' + edit HR '020' + task jgfs_atmos_post_f021 + trigger ./jgfs_atmos_post_manager:release_post021 + edit FHRGRP '022' + edit FHRLST 'f021' + edit FHR 'f021' + edit HR '021' + task jgfs_atmos_post_f022 + trigger ./jgfs_atmos_post_manager:release_post022 + edit FHRGRP '023' + edit FHRLST 'f022' + edit FHR 'f022' + edit HR '022' + task jgfs_atmos_post_f023 + trigger ./jgfs_atmos_post_manager:release_post023 + edit FHRGRP '024' + edit FHRLST 'f023' + edit FHR 'f023' + edit HR '023' + task jgfs_atmos_post_f024 + trigger ./jgfs_atmos_post_manager:release_post024 + edit FHRGRP '025' + edit FHRLST 'f024' + edit FHR 'f024' + edit HR '024' + task jgfs_atmos_post_f025 + trigger ./jgfs_atmos_post_manager:release_post025 + edit FHRGRP '026' + edit FHRLST 'f025' + edit FHR 'f025' + edit HR '025' + task jgfs_atmos_post_f026 + trigger ./jgfs_atmos_post_manager:release_post026 + edit FHRGRP '027' + edit FHRLST 'f026' + edit FHR 'f026' + edit HR '026' + task jgfs_atmos_post_f027 + trigger ./jgfs_atmos_post_manager:release_post027 + edit FHRGRP '028' + edit FHRLST 'f027' + edit FHR 'f027' + edit HR '027' + task jgfs_atmos_post_f028 + trigger ./jgfs_atmos_post_manager:release_post028 + edit FHRGRP '029' + edit FHRLST 'f028' + edit FHR 'f028' + edit HR '028' + task jgfs_atmos_post_f029 + trigger ./jgfs_atmos_post_manager:release_post029 + edit FHRGRP '030' + edit FHRLST 'f029' + edit FHR 'f029' + edit HR '029' + task jgfs_atmos_post_f030 + trigger ./jgfs_atmos_post_manager:release_post030 + edit FHRGRP '031' + edit FHRLST 'f030' + edit FHR 'f030' + edit HR '030' + task jgfs_atmos_post_f031 + trigger ./jgfs_atmos_post_manager:release_post031 + edit FHRGRP '032' + edit FHRLST 'f031' + edit FHR 'f031' + edit HR '031' + task jgfs_atmos_post_f032 + trigger ./jgfs_atmos_post_manager:release_post032 + edit FHRGRP '033' + edit FHRLST 'f032' + edit FHR 'f032' + edit HR '032' + task jgfs_atmos_post_f033 + trigger ./jgfs_atmos_post_manager:release_post033 + edit FHRGRP '034' + edit FHRLST 'f033' + edit FHR 'f033' + edit HR '033' + task jgfs_atmos_post_f034 + trigger ./jgfs_atmos_post_manager:release_post034 + edit FHRGRP '035' + edit FHRLST 'f034' + edit FHR 'f034' + edit HR '034' + task jgfs_atmos_post_f035 + trigger ./jgfs_atmos_post_manager:release_post035 + edit FHRGRP '036' + edit FHRLST 'f035' + edit FHR 'f035' + edit HR '035' + task jgfs_atmos_post_f036 + trigger ./jgfs_atmos_post_manager:release_post036 + edit FHRGRP '037' + edit FHRLST 'f036' + edit FHR 'f036' + edit HR '036' + task jgfs_atmos_post_f037 + trigger ./jgfs_atmos_post_manager:release_post037 + edit FHRGRP '038' + edit FHRLST 'f037' + edit FHR 'f037' + edit HR '037' + task jgfs_atmos_post_f038 + trigger ./jgfs_atmos_post_manager:release_post038 + edit FHRGRP '039' + edit FHRLST 'f038' + edit FHR 'f038' + edit HR '038' + task jgfs_atmos_post_f039 + trigger ./jgfs_atmos_post_manager:release_post039 + edit FHRGRP '040' + edit FHRLST 'f039' + edit FHR 'f039' + edit HR '039' + task jgfs_atmos_post_f040 + trigger ./jgfs_atmos_post_manager:release_post040 + edit FHRGRP '041' + edit FHRLST 'f040' + edit FHR 'f040' + edit HR '040' + task jgfs_atmos_post_f041 + trigger ./jgfs_atmos_post_manager:release_post041 + edit FHRGRP '042' + edit FHRLST 'f041' + edit FHR 'f041' + edit HR '041' + task jgfs_atmos_post_f042 + trigger ./jgfs_atmos_post_manager:release_post042 + edit FHRGRP '043' + edit FHRLST 'f042' + edit FHR 'f042' + edit HR '042' + task jgfs_atmos_post_f043 + trigger ./jgfs_atmos_post_manager:release_post043 + edit FHRGRP '044' + edit FHRLST 'f043' + edit FHR 'f043' + edit HR '043' + task jgfs_atmos_post_f044 + trigger ./jgfs_atmos_post_manager:release_post044 + edit FHRGRP '045' + edit FHRLST 'f044' + edit FHR 'f044' + edit HR '044' + task jgfs_atmos_post_f045 + trigger ./jgfs_atmos_post_manager:release_post045 + edit FHRGRP '046' + edit FHRLST 'f045' + edit FHR 'f045' + edit HR '045' + task jgfs_atmos_post_f046 + trigger ./jgfs_atmos_post_manager:release_post046 + edit FHRGRP '047' + edit FHRLST 'f046' + edit FHR 'f046' + edit HR '046' + task jgfs_atmos_post_f047 + trigger ./jgfs_atmos_post_manager:release_post047 + edit FHRGRP '048' + edit FHRLST 'f047' + edit FHR 'f047' + edit HR '047' + task jgfs_atmos_post_f048 + trigger ./jgfs_atmos_post_manager:release_post048 + edit FHRGRP '049' + edit FHRLST 'f048' + edit FHR 'f048' + edit HR '048' + task jgfs_atmos_post_f049 + trigger ./jgfs_atmos_post_manager:release_post049 + edit FHRGRP '050' + edit FHRLST 'f049' + edit FHR 'f049' + edit HR '049' + task jgfs_atmos_post_f050 + trigger ./jgfs_atmos_post_manager:release_post050 + edit FHRGRP '051' + edit FHRLST 'f050' + edit FHR 'f050' + edit HR '050' + task jgfs_atmos_post_f051 + trigger ./jgfs_atmos_post_manager:release_post051 + edit FHRGRP '052' + edit FHRLST 'f051' + edit FHR 'f051' + edit HR '051' + task jgfs_atmos_post_f052 + trigger ./jgfs_atmos_post_manager:release_post052 + edit FHRGRP '053' + edit FHRLST 'f052' + edit FHR 'f052' + edit HR '052' + task jgfs_atmos_post_f053 + trigger ./jgfs_atmos_post_manager:release_post053 + edit FHRGRP '054' + edit FHRLST 'f053' + edit FHR 'f053' + edit HR '053' + task jgfs_atmos_post_f054 + trigger ./jgfs_atmos_post_manager:release_post054 + edit FHRGRP '055' + edit FHRLST 'f054' + edit FHR 'f054' + edit HR '054' + task jgfs_atmos_post_f055 + trigger ./jgfs_atmos_post_manager:release_post055 + edit FHRGRP '056' + edit FHRLST 'f055' + edit FHR 'f055' + edit HR '055' + task jgfs_atmos_post_f056 + trigger ./jgfs_atmos_post_manager:release_post056 + edit FHRGRP '057' + edit FHRLST 'f056' + edit FHR 'f056' + edit HR '056' + task jgfs_atmos_post_f057 + trigger ./jgfs_atmos_post_manager:release_post057 + edit FHRGRP '058' + edit FHRLST 'f057' + edit FHR 'f057' + edit HR '057' + task jgfs_atmos_post_f058 + trigger ./jgfs_atmos_post_manager:release_post058 + edit FHRGRP '059' + edit FHRLST 'f058' + edit FHR 'f058' + edit HR '058' + task jgfs_atmos_post_f059 + trigger ./jgfs_atmos_post_manager:release_post059 + edit FHRGRP '060' + edit FHRLST 'f059' + edit FHR 'f059' + edit HR '059' + task jgfs_atmos_post_f060 + trigger ./jgfs_atmos_post_manager:release_post060 + edit FHRGRP '061' + edit FHRLST 'f060' + edit FHR 'f060' + edit HR '060' + task jgfs_atmos_post_f061 + trigger ./jgfs_atmos_post_manager:release_post061 + edit FHRGRP '062' + edit FHRLST 'f061' + edit FHR 'f061' + edit HR '061' + task jgfs_atmos_post_f062 + trigger ./jgfs_atmos_post_manager:release_post062 + edit FHRGRP '063' + edit FHRLST 'f062' + edit FHR 'f062' + edit HR '062' + task jgfs_atmos_post_f063 + trigger ./jgfs_atmos_post_manager:release_post063 + edit FHRGRP '064' + edit FHRLST 'f063' + edit FHR 'f063' + edit HR '063' + task jgfs_atmos_post_f064 + trigger ./jgfs_atmos_post_manager:release_post064 + edit FHRGRP '065' + edit FHRLST 'f064' + edit FHR 'f064' + edit HR '064' + task jgfs_atmos_post_f065 + trigger ./jgfs_atmos_post_manager:release_post065 + edit FHRGRP '066' + edit FHRLST 'f065' + edit FHR 'f065' + edit HR '065' + task jgfs_atmos_post_f066 + trigger ./jgfs_atmos_post_manager:release_post066 + edit FHRGRP '067' + edit FHRLST 'f066' + edit FHR 'f066' + edit HR '066' + task jgfs_atmos_post_f067 + trigger ./jgfs_atmos_post_manager:release_post067 + edit FHRGRP '068' + edit FHRLST 'f067' + edit FHR 'f067' + edit HR '067' + task jgfs_atmos_post_f068 + trigger ./jgfs_atmos_post_manager:release_post068 + edit FHRGRP '069' + edit FHRLST 'f068' + edit FHR 'f068' + edit HR '068' + task jgfs_atmos_post_f069 + trigger ./jgfs_atmos_post_manager:release_post069 + edit FHRGRP '070' + edit FHRLST 'f069' + edit FHR 'f069' + edit HR '069' + task jgfs_atmos_post_f070 + trigger ./jgfs_atmos_post_manager:release_post070 + edit FHRGRP '071' + edit FHRLST 'f070' + edit FHR 'f070' + edit HR '070' + task jgfs_atmos_post_f071 + trigger ./jgfs_atmos_post_manager:release_post071 + edit FHRGRP '072' + edit FHRLST 'f071' + edit FHR 'f071' + edit HR '071' + task jgfs_atmos_post_f072 + trigger ./jgfs_atmos_post_manager:release_post072 + edit FHRGRP '073' + edit FHRLST 'f072' + edit FHR 'f072' + edit HR '072' + task jgfs_atmos_post_f073 + trigger ./jgfs_atmos_post_manager:release_post073 + edit FHRGRP '074' + edit FHRLST 'f073' + edit FHR 'f073' + edit HR '073' + task jgfs_atmos_post_f074 + trigger ./jgfs_atmos_post_manager:release_post074 + edit FHRGRP '075' + edit FHRLST 'f074' + edit FHR 'f074' + edit HR '074' + task jgfs_atmos_post_f075 + trigger ./jgfs_atmos_post_manager:release_post075 + edit FHRGRP '076' + edit FHRLST 'f075' + edit FHR 'f075' + edit HR '075' + task jgfs_atmos_post_f076 + trigger ./jgfs_atmos_post_manager:release_post076 + edit FHRGRP '077' + edit FHRLST 'f076' + edit FHR 'f076' + edit HR '076' + task jgfs_atmos_post_f077 + trigger ./jgfs_atmos_post_manager:release_post077 + edit FHRGRP '078' + edit FHRLST 'f077' + edit FHR 'f077' + edit HR '077' + task jgfs_atmos_post_f078 + trigger ./jgfs_atmos_post_manager:release_post078 + edit FHRGRP '079' + edit FHRLST 'f078' + edit FHR 'f078' + edit HR '078' + task jgfs_atmos_post_f079 + trigger ./jgfs_atmos_post_manager:release_post079 + edit FHRGRP '080' + edit FHRLST 'f079' + edit FHR 'f079' + edit HR '079' + task jgfs_atmos_post_f080 + trigger ./jgfs_atmos_post_manager:release_post080 + edit FHRGRP '081' + edit FHRLST 'f080' + edit FHR 'f080' + edit HR '080' + task jgfs_atmos_post_f081 + trigger ./jgfs_atmos_post_manager:release_post081 + edit FHRGRP '082' + edit FHRLST 'f081' + edit FHR 'f081' + edit HR '081' + task jgfs_atmos_post_f082 + trigger ./jgfs_atmos_post_manager:release_post082 + edit FHRGRP '083' + edit FHRLST 'f082' + edit FHR 'f082' + edit HR '082' + task jgfs_atmos_post_f083 + trigger ./jgfs_atmos_post_manager:release_post083 + edit FHRGRP '084' + edit FHRLST 'f083' + edit FHR 'f083' + edit HR '083' + task jgfs_atmos_post_f084 + trigger ./jgfs_atmos_post_manager:release_post084 + edit FHRGRP '085' + edit FHRLST 'f084' + edit FHR 'f084' + edit HR '084' + task jgfs_atmos_post_f085 + trigger ./jgfs_atmos_post_manager:release_post085 + edit FHRGRP '086' + edit FHRLST 'f085' + edit FHR 'f085' + edit HR '085' + task jgfs_atmos_post_f086 + trigger ./jgfs_atmos_post_manager:release_post086 + edit FHRGRP '087' + edit FHRLST 'f086' + edit FHR 'f086' + edit HR '086' + task jgfs_atmos_post_f087 + trigger ./jgfs_atmos_post_manager:release_post087 + edit FHRGRP '088' + edit FHRLST 'f087' + edit FHR 'f087' + edit HR '087' + task jgfs_atmos_post_f088 + trigger ./jgfs_atmos_post_manager:release_post088 + edit FHRGRP '089' + edit FHRLST 'f088' + edit FHR 'f088' + edit HR '088' + task jgfs_atmos_post_f089 + trigger ./jgfs_atmos_post_manager:release_post089 + edit FHRGRP '090' + edit FHRLST 'f089' + edit FHR 'f089' + edit HR '089' + task jgfs_atmos_post_f090 + trigger ./jgfs_atmos_post_manager:release_post090 + edit FHRGRP '091' + edit FHRLST 'f090' + edit FHR 'f090' + edit HR '090' + task jgfs_atmos_post_f091 + trigger ./jgfs_atmos_post_manager:release_post091 + edit FHRGRP '092' + edit FHRLST 'f091' + edit FHR 'f091' + edit HR '091' + task jgfs_atmos_post_f092 + trigger ./jgfs_atmos_post_manager:release_post092 + edit FHRGRP '093' + edit FHRLST 'f092' + edit FHR 'f092' + edit HR '092' + task jgfs_atmos_post_f093 + trigger ./jgfs_atmos_post_manager:release_post093 + edit FHRGRP '094' + edit FHRLST 'f093' + edit FHR 'f093' + edit HR '093' + task jgfs_atmos_post_f094 + trigger ./jgfs_atmos_post_manager:release_post094 + edit FHRGRP '095' + edit FHRLST 'f094' + edit FHR 'f094' + edit HR '094' + task jgfs_atmos_post_f095 + trigger ./jgfs_atmos_post_manager:release_post095 + edit FHRGRP '096' + edit FHRLST 'f095' + edit FHR 'f095' + edit HR '095' + task jgfs_atmos_post_f096 + trigger ./jgfs_atmos_post_manager:release_post096 + edit FHRGRP '097' + edit FHRLST 'f096' + edit FHR 'f096' + edit HR '096' + task jgfs_atmos_post_f097 + trigger ./jgfs_atmos_post_manager:release_post097 + edit FHRGRP '098' + edit FHRLST 'f097' + edit FHR 'f097' + edit HR '097' + task jgfs_atmos_post_f098 + trigger ./jgfs_atmos_post_manager:release_post098 + edit FHRGRP '099' + edit FHRLST 'f098' + edit FHR 'f098' + edit HR '098' + task jgfs_atmos_post_f099 + trigger ./jgfs_atmos_post_manager:release_post099 + edit FHRGRP '100' + edit FHRLST 'f099' + edit FHR 'f099' + edit HR '099' + task jgfs_atmos_post_f100 + trigger ./jgfs_atmos_post_manager:release_post100 + edit FHRGRP '101' + edit FHRLST 'f100' + edit FHR 'f100' + edit HR '100' + task jgfs_atmos_post_f101 + trigger ./jgfs_atmos_post_manager:release_post101 + edit FHRGRP '102' + edit FHRLST 'f101' + edit FHR 'f101' + edit HR '101' + task jgfs_atmos_post_f102 + trigger ./jgfs_atmos_post_manager:release_post102 + edit FHRGRP '103' + edit FHRLST 'f102' + edit FHR 'f102' + edit HR '102' + task jgfs_atmos_post_f103 + trigger ./jgfs_atmos_post_manager:release_post103 + edit FHRGRP '104' + edit FHRLST 'f103' + edit FHR 'f103' + edit HR '103' + task jgfs_atmos_post_f104 + trigger ./jgfs_atmos_post_manager:release_post104 + edit FHRGRP '105' + edit FHRLST 'f104' + edit FHR 'f104' + edit HR '104' + task jgfs_atmos_post_f105 + trigger ./jgfs_atmos_post_manager:release_post105 + edit FHRGRP '106' + edit FHRLST 'f105' + edit FHR 'f105' + edit HR '105' + task jgfs_atmos_post_f106 + trigger ./jgfs_atmos_post_manager:release_post106 + edit FHRGRP '107' + edit FHRLST 'f106' + edit FHR 'f106' + edit HR '106' + task jgfs_atmos_post_f107 + trigger ./jgfs_atmos_post_manager:release_post107 + edit FHRGRP '108' + edit FHRLST 'f107' + edit FHR 'f107' + edit HR '107' + task jgfs_atmos_post_f108 + trigger ./jgfs_atmos_post_manager:release_post108 + edit FHRGRP '109' + edit FHRLST 'f108' + edit FHR 'f108' + edit HR '108' + task jgfs_atmos_post_f109 + trigger ./jgfs_atmos_post_manager:release_post109 + edit FHRGRP '110' + edit FHRLST 'f109' + edit FHR 'f109' + edit HR '109' + task jgfs_atmos_post_f110 + trigger ./jgfs_atmos_post_manager:release_post110 + edit FHRGRP '111' + edit FHRLST 'f110' + edit FHR 'f110' + edit HR '110' + task jgfs_atmos_post_f111 + trigger ./jgfs_atmos_post_manager:release_post111 + edit FHRGRP '112' + edit FHRLST 'f111' + edit FHR 'f111' + edit HR '111' + task jgfs_atmos_post_f112 + trigger ./jgfs_atmos_post_manager:release_post112 + edit FHRGRP '113' + edit FHRLST 'f112' + edit FHR 'f112' + edit HR '112' + task jgfs_atmos_post_f113 + trigger ./jgfs_atmos_post_manager:release_post113 + edit FHRGRP '114' + edit FHRLST 'f113' + edit FHR 'f113' + edit HR '113' + task jgfs_atmos_post_f114 + trigger ./jgfs_atmos_post_manager:release_post114 + edit FHRGRP '115' + edit FHRLST 'f114' + edit FHR 'f114' + edit HR '114' + task jgfs_atmos_post_f115 + trigger ./jgfs_atmos_post_manager:release_post115 + edit FHRGRP '116' + edit FHRLST 'f115' + edit FHR 'f115' + edit HR '115' + task jgfs_atmos_post_f116 + trigger ./jgfs_atmos_post_manager:release_post116 + edit FHRGRP '117' + edit FHRLST 'f116' + edit FHR 'f116' + edit HR '116' + task jgfs_atmos_post_f117 + trigger ./jgfs_atmos_post_manager:release_post117 + edit FHRGRP '118' + edit FHRLST 'f117' + edit FHR 'f117' + edit HR '117' + task jgfs_atmos_post_f118 + trigger ./jgfs_atmos_post_manager:release_post118 + edit FHRGRP '119' + edit FHRLST 'f118' + edit FHR 'f118' + edit HR '118' + task jgfs_atmos_post_f119 + trigger ./jgfs_atmos_post_manager:release_post119 + edit FHRGRP '120' + edit FHRLST 'f119' + edit FHR 'f119' + edit HR '119' + task jgfs_atmos_post_f120 + trigger ./jgfs_atmos_post_manager:release_post120 + edit FHRGRP '121' + edit FHRLST 'f120' + edit FHR 'f120' + edit HR '120' + task jgfs_atmos_post_f123 + trigger ./jgfs_atmos_post_manager:release_post123 + edit FHRGRP '122' + edit FHRLST 'f123' + edit FHR 'f123' + edit HR '123' + task jgfs_atmos_post_f126 + trigger ./jgfs_atmos_post_manager:release_post126 + edit FHRGRP '123' + edit FHRLST 'f126' + edit FHR 'f126' + edit HR '126' + task jgfs_atmos_post_f129 + trigger ./jgfs_atmos_post_manager:release_post129 + edit FHRGRP '124' + edit FHRLST 'f129' + edit FHR 'f129' + edit HR '129' + task jgfs_atmos_post_f132 + trigger ./jgfs_atmos_post_manager:release_post132 + edit FHRGRP '125' + edit FHRLST 'f132' + edit FHR 'f132' + edit HR '132' + task jgfs_atmos_post_f135 + trigger ./jgfs_atmos_post_manager:release_post135 + edit FHRGRP '126' + edit FHRLST 'f135' + edit FHR 'f135' + edit HR '135' + task jgfs_atmos_post_f138 + trigger ./jgfs_atmos_post_manager:release_post138 + edit FHRGRP '127' + edit FHRLST 'f138' + edit FHR 'f138' + edit HR '138' + task jgfs_atmos_post_f141 + trigger ./jgfs_atmos_post_manager:release_post141 + edit FHRGRP '128' + edit FHRLST 'f141' + edit FHR 'f141' + edit HR '141' + task jgfs_atmos_post_f144 + trigger ./jgfs_atmos_post_manager:release_post144 + edit FHRGRP '129' + edit FHRLST 'f144' + edit FHR 'f144' + edit HR '144' + task jgfs_atmos_post_f147 + trigger ./jgfs_atmos_post_manager:release_post147 + edit FHRGRP '130' + edit FHRLST 'f147' + edit FHR 'f147' + edit HR '147' + task jgfs_atmos_post_f150 + trigger ./jgfs_atmos_post_manager:release_post150 + edit FHRGRP '131' + edit FHRLST 'f150' + edit FHR 'f150' + edit HR '150' + task jgfs_atmos_post_f153 + trigger ./jgfs_atmos_post_manager:release_post153 + edit FHRGRP '132' + edit FHRLST 'f153' + edit FHR 'f153' + edit HR '153' + task jgfs_atmos_post_f156 + trigger ./jgfs_atmos_post_manager:release_post156 + edit FHRGRP '133' + edit FHRLST 'f156' + edit FHR 'f156' + edit HR '156' + task jgfs_atmos_post_f159 + trigger ./jgfs_atmos_post_manager:release_post159 + edit FHRGRP '134' + edit FHRLST 'f159' + edit FHR 'f159' + edit HR '159' + task jgfs_atmos_post_f162 + trigger ./jgfs_atmos_post_manager:release_post162 + edit FHRGRP '135' + edit FHRLST 'f162' + edit FHR 'f162' + edit HR '162' + task jgfs_atmos_post_f165 + trigger ./jgfs_atmos_post_manager:release_post165 + edit FHRGRP '136' + edit FHRLST 'f165' + edit FHR 'f165' + edit HR '165' + task jgfs_atmos_post_f168 + trigger ./jgfs_atmos_post_manager:release_post168 + edit FHRGRP '137' + edit FHRLST 'f168' + edit FHR 'f168' + edit HR '168' + task jgfs_atmos_post_f171 + trigger ./jgfs_atmos_post_manager:release_post171 + edit FHRGRP '138' + edit FHRLST 'f171' + edit FHR 'f171' + edit HR '171' + task jgfs_atmos_post_f174 + trigger ./jgfs_atmos_post_manager:release_post174 + edit FHRGRP '139' + edit FHRLST 'f174' + edit FHR 'f174' + edit HR '174' + task jgfs_atmos_post_f177 + trigger ./jgfs_atmos_post_manager:release_post177 + edit FHRGRP '140' + edit FHRLST 'f177' + edit FHR 'f177' + edit HR '177' + task jgfs_atmos_post_f180 + trigger ./jgfs_atmos_post_manager:release_post180 + edit FHRGRP '141' + edit FHRLST 'f180' + edit FHR 'f180' + edit HR '180' + task jgfs_atmos_post_f183 + trigger ./jgfs_atmos_post_manager:release_post183 + edit FHRGRP '142' + edit FHRLST 'f183' + edit FHR 'f183' + edit HR '183' + task jgfs_atmos_post_f186 + trigger ./jgfs_atmos_post_manager:release_post186 + edit FHRGRP '143' + edit FHRLST 'f186' + edit FHR 'f186' + edit HR '186' + task jgfs_atmos_post_f189 + trigger ./jgfs_atmos_post_manager:release_post189 + edit FHRGRP '144' + edit FHRLST 'f189' + edit FHR 'f189' + edit HR '189' + task jgfs_atmos_post_f192 + trigger ./jgfs_atmos_post_manager:release_post192 + edit FHRGRP '145' + edit FHRLST 'f192' + edit FHR 'f192' + edit HR '192' + task jgfs_atmos_post_f195 + trigger ./jgfs_atmos_post_manager:release_post195 + edit FHRGRP '146' + edit FHRLST 'f195' + edit FHR 'f195' + edit HR '195' + task jgfs_atmos_post_f198 + trigger ./jgfs_atmos_post_manager:release_post198 + edit FHRGRP '147' + edit FHRLST 'f198' + edit FHR 'f198' + edit HR '198' + task jgfs_atmos_post_f201 + trigger ./jgfs_atmos_post_manager:release_post201 + edit FHRGRP '148' + edit FHRLST 'f201' + edit FHR 'f201' + edit HR '201' + task jgfs_atmos_post_f204 + trigger ./jgfs_atmos_post_manager:release_post204 + edit FHRGRP '149' + edit FHRLST 'f204' + edit FHR 'f204' + edit HR '204' + task jgfs_atmos_post_f207 + trigger ./jgfs_atmos_post_manager:release_post207 + edit FHRGRP '150' + edit FHRLST 'f207' + edit FHR 'f207' + edit HR '207' + task jgfs_atmos_post_f210 + trigger ./jgfs_atmos_post_manager:release_post210 + edit FHRGRP '151' + edit FHRLST 'f210' + edit FHR 'f210' + edit HR '210' + task jgfs_atmos_post_f213 + trigger ./jgfs_atmos_post_manager:release_post213 + edit FHRGRP '152' + edit FHRLST 'f213' + edit FHR 'f213' + edit HR '213' + task jgfs_atmos_post_f216 + trigger ./jgfs_atmos_post_manager:release_post216 + edit FHRGRP '153' + edit FHRLST 'f216' + edit FHR 'f216' + edit HR '216' + task jgfs_atmos_post_f219 + trigger ./jgfs_atmos_post_manager:release_post219 + edit FHRGRP '154' + edit FHRLST 'f219' + edit FHR 'f219' + edit HR '219' + task jgfs_atmos_post_f222 + trigger ./jgfs_atmos_post_manager:release_post222 + edit FHRGRP '155' + edit FHRLST 'f222' + edit FHR 'f222' + edit HR '222' + task jgfs_atmos_post_f225 + trigger ./jgfs_atmos_post_manager:release_post225 + edit FHRGRP '156' + edit FHRLST 'f225' + edit FHR 'f225' + edit HR '225' + task jgfs_atmos_post_f228 + trigger ./jgfs_atmos_post_manager:release_post228 + edit FHRGRP '157' + edit FHRLST 'f228' + edit FHR 'f228' + edit HR '228' + task jgfs_atmos_post_f231 + trigger ./jgfs_atmos_post_manager:release_post231 + edit FHRGRP '158' + edit FHRLST 'f231' + edit FHR 'f231' + edit HR '231' + task jgfs_atmos_post_f234 + trigger ./jgfs_atmos_post_manager:release_post234 + edit FHRGRP '159' + edit FHRLST 'f234' + edit FHR 'f234' + edit HR '234' + task jgfs_atmos_post_f237 + trigger ./jgfs_atmos_post_manager:release_post237 + edit FHRGRP '160' + edit FHRLST 'f237' + edit FHR 'f237' + edit HR '237' + task jgfs_atmos_post_f240 + trigger ./jgfs_atmos_post_manager:release_post240 + edit FHRGRP '161' + edit FHRLST 'f240' + edit FHR 'f240' + edit HR '240' + task jgfs_atmos_post_f243 + trigger ./jgfs_atmos_post_manager:release_post243 + edit FHRGRP '162' + edit FHRLST 'f243' + edit FHR 'f243' + edit HR '243' + task jgfs_atmos_post_f246 + trigger ./jgfs_atmos_post_manager:release_post246 + edit FHRGRP '163' + edit FHRLST 'f246' + edit FHR 'f246' + edit HR '246' + task jgfs_atmos_post_f249 + trigger ./jgfs_atmos_post_manager:release_post249 + edit FHRGRP '164' + edit FHRLST 'f249' + edit FHR 'f249' + edit HR '249' + task jgfs_atmos_post_f252 + trigger ./jgfs_atmos_post_manager:release_post252 + edit FHRGRP '165' + edit FHRLST 'f252' + edit FHR 'f252' + edit HR '252' + task jgfs_atmos_post_f255 + trigger ./jgfs_atmos_post_manager:release_post255 + edit FHRGRP '166' + edit FHRLST 'f255' + edit FHR 'f255' + edit HR '255' + task jgfs_atmos_post_f258 + trigger ./jgfs_atmos_post_manager:release_post258 + edit FHRGRP '167' + edit FHRLST 'f258' + edit FHR 'f258' + edit HR '258' + task jgfs_atmos_post_f261 + trigger ./jgfs_atmos_post_manager:release_post261 + edit FHRGRP '168' + edit FHRLST 'f261' + edit FHR 'f261' + edit HR '261' + task jgfs_atmos_post_f264 + trigger ./jgfs_atmos_post_manager:release_post264 + edit FHRGRP '169' + edit FHRLST 'f264' + edit FHR 'f264' + edit HR '264' + task jgfs_atmos_post_f267 + trigger ./jgfs_atmos_post_manager:release_post267 + edit FHRGRP '170' + edit FHRLST 'f267' + edit FHR 'f267' + edit HR '267' + task jgfs_atmos_post_f270 + trigger ./jgfs_atmos_post_manager:release_post270 + edit FHRGRP '171' + edit FHRLST 'f270' + edit FHR 'f270' + edit HR '270' + task jgfs_atmos_post_f273 + trigger ./jgfs_atmos_post_manager:release_post273 + edit FHRGRP '172' + edit FHRLST 'f273' + edit FHR 'f273' + edit HR '273' + task jgfs_atmos_post_f276 + trigger ./jgfs_atmos_post_manager:release_post276 + edit FHRGRP '173' + edit FHRLST 'f276' + edit FHR 'f276' + edit HR '276' + task jgfs_atmos_post_f279 + trigger ./jgfs_atmos_post_manager:release_post279 + edit FHRGRP '174' + edit FHRLST 'f279' + edit FHR 'f279' + edit HR '279' + task jgfs_atmos_post_f282 + trigger ./jgfs_atmos_post_manager:release_post282 + edit FHRGRP '175' + edit FHRLST 'f282' + edit FHR 'f282' + edit HR '282' + task jgfs_atmos_post_f285 + trigger ./jgfs_atmos_post_manager:release_post285 + edit FHRGRP '176' + edit FHRLST 'f285' + edit FHR 'f285' + edit HR '285' + task jgfs_atmos_post_f288 + trigger ./jgfs_atmos_post_manager:release_post288 + edit FHRGRP '177' + edit FHRLST 'f288' + edit FHR 'f288' + edit HR '288' + task jgfs_atmos_post_f291 + trigger ./jgfs_atmos_post_manager:release_post291 + edit FHRGRP '178' + edit FHRLST 'f291' + edit FHR 'f291' + edit HR '291' + task jgfs_atmos_post_f294 + trigger ./jgfs_atmos_post_manager:release_post294 + edit FHRGRP '179' + edit FHRLST 'f294' + edit FHR 'f294' + edit HR '294' + task jgfs_atmos_post_f297 + trigger ./jgfs_atmos_post_manager:release_post297 + edit FHRGRP '180' + edit FHRLST 'f297' + edit FHR 'f297' + edit HR '297' + task jgfs_atmos_post_f300 + trigger ./jgfs_atmos_post_manager:release_post300 + edit FHRGRP '181' + edit FHRLST 'f300' + edit FHR 'f300' + edit HR '300' + task jgfs_atmos_post_f303 + trigger ./jgfs_atmos_post_manager:release_post303 + edit FHRGRP '182' + edit FHRLST 'f303' + edit FHR 'f303' + edit HR '303' + task jgfs_atmos_post_f306 + trigger ./jgfs_atmos_post_manager:release_post306 + edit FHRGRP '183' + edit FHRLST 'f306' + edit FHR 'f306' + edit HR '306' + task jgfs_atmos_post_f309 + trigger ./jgfs_atmos_post_manager:release_post309 + edit FHRGRP '184' + edit FHRLST 'f309' + edit FHR 'f309' + edit HR '309' + task jgfs_atmos_post_f312 + trigger ./jgfs_atmos_post_manager:release_post312 + edit FHRGRP '185' + edit FHRLST 'f312' + edit FHR 'f312' + edit HR '312' + task jgfs_atmos_post_f315 + trigger ./jgfs_atmos_post_manager:release_post315 + edit FHRGRP '186' + edit FHRLST 'f315' + edit FHR 'f315' + edit HR '315' + task jgfs_atmos_post_f318 + trigger ./jgfs_atmos_post_manager:release_post318 + edit FHRGRP '187' + edit FHRLST 'f318' + edit FHR 'f318' + edit HR '318' + task jgfs_atmos_post_f321 + trigger ./jgfs_atmos_post_manager:release_post321 + edit FHRGRP '188' + edit FHRLST 'f321' + edit FHR 'f321' + edit HR '321' + task jgfs_atmos_post_f324 + trigger ./jgfs_atmos_post_manager:release_post324 + edit FHRGRP '189' + edit FHRLST 'f324' + edit FHR 'f324' + edit HR '324' + task jgfs_atmos_post_f327 + trigger ./jgfs_atmos_post_manager:release_post327 + edit FHRGRP '190' + edit FHRLST 'f327' + edit FHR 'f327' + edit HR '327' + task jgfs_atmos_post_f330 + trigger ./jgfs_atmos_post_manager:release_post330 + edit FHRGRP '191' + edit FHRLST 'f330' + edit FHR 'f330' + edit HR '330' + task jgfs_atmos_post_f333 + trigger ./jgfs_atmos_post_manager:release_post333 + edit FHRGRP '192' + edit FHRLST 'f333' + edit FHR 'f333' + edit HR '333' + task jgfs_atmos_post_f336 + trigger ./jgfs_atmos_post_manager:release_post336 + edit FHRGRP '193' + edit FHRLST 'f336' + edit FHR 'f336' + edit HR '336' + task jgfs_atmos_post_f339 + trigger ./jgfs_atmos_post_manager:release_post339 + edit FHRGRP '194' + edit FHRLST 'f339' + edit FHR 'f339' + edit HR '339' + task jgfs_atmos_post_f342 + trigger ./jgfs_atmos_post_manager:release_post342 + edit FHRGRP '195' + edit FHRLST 'f342' + edit FHR 'f342' + edit HR '342' + task jgfs_atmos_post_f345 + trigger ./jgfs_atmos_post_manager:release_post345 + edit FHRGRP '196' + edit FHRLST 'f345' + edit FHR 'f345' + edit HR '345' + task jgfs_atmos_post_f348 + trigger ./jgfs_atmos_post_manager:release_post348 + edit FHRGRP '197' + edit FHRLST 'f348' + edit FHR 'f348' + edit HR '348' + task jgfs_atmos_post_f351 + trigger ./jgfs_atmos_post_manager:release_post351 + edit FHRGRP '198' + edit FHRLST 'f351' + edit FHR 'f351' + edit HR '351' + task jgfs_atmos_post_f354 + trigger ./jgfs_atmos_post_manager:release_post354 + edit FHRGRP '199' + edit FHRLST 'f354' + edit FHR 'f354' + edit HR '354' + task jgfs_atmos_post_f357 + trigger ./jgfs_atmos_post_manager:release_post357 + edit FHRGRP '200' + edit FHRLST 'f357' + edit FHR 'f357' + edit HR '357' + task jgfs_atmos_post_f360 + trigger ./jgfs_atmos_post_manager:release_post360 + edit FHRGRP '201' + edit FHRLST 'f360' + edit FHR 'f360' + edit HR '360' + task jgfs_atmos_post_f363 + trigger ./jgfs_atmos_post_manager:release_post363 + edit FHRGRP '202' + edit FHRLST 'f363' + edit FHR 'f363' + edit HR '363' + task jgfs_atmos_post_f366 + trigger ./jgfs_atmos_post_manager:release_post366 + edit FHRGRP '203' + edit FHRLST 'f366' + edit FHR 'f366' + edit HR '366' + task jgfs_atmos_post_f369 + trigger ./jgfs_atmos_post_manager:release_post369 + edit FHRGRP '204' + edit FHRLST 'f369' + edit FHR 'f369' + edit HR '369' + task jgfs_atmos_post_f372 + trigger ./jgfs_atmos_post_manager:release_post372 + edit FHRGRP '205' + edit FHRLST 'f372' + edit FHR 'f372' + edit HR '372' + task jgfs_atmos_post_f375 + trigger ./jgfs_atmos_post_manager:release_post375 + edit FHRGRP '206' + edit FHRLST 'f375' + edit FHR 'f375' + edit HR '375' + task jgfs_atmos_post_f378 + trigger ./jgfs_atmos_post_manager:release_post378 + edit FHRGRP '207' + edit FHRLST 'f378' + edit FHR 'f378' + edit HR '378' + task jgfs_atmos_post_f381 + trigger ./jgfs_atmos_post_manager:release_post381 + edit FHRGRP '208' + edit FHRLST 'f381' + edit FHR 'f381' + edit HR '381' + task jgfs_atmos_post_f384 + trigger ./jgfs_atmos_post_manager:release_post384 + edit FHRGRP '209' + edit FHRLST 'f384' + edit FHR 'f384' + edit HR '384' + endfamily + family post_processing + task jgfs_atmos_wafs_gcip + trigger ../post/jgfs_atmos_post_f003 == complete + time 04:40 + family grib_wafs + task jgfs_atmos_wafs_f00 + trigger ../../post/jgfs_atmos_post_f000 == complete and ../../post/jgfs_atmos_post_f120 == complete and ../grib2_wafs/jgfs_atmos_wafs_grib2 == complete + edit FCSTHR '00' + task jgfs_atmos_wafs_f06 + trigger ../../post/jgfs_atmos_post_f006 == complete and ./jgfs_atmos_wafs_f00 == complete + edit FCSTHR '06' + task jgfs_atmos_wafs_f12 + trigger ../../post/jgfs_atmos_post_f012 == complete and ./jgfs_atmos_wafs_f06 == complete + edit FCSTHR '12' + task jgfs_atmos_wafs_f18 + trigger ../../post/jgfs_atmos_post_f018 == complete and ./jgfs_atmos_wafs_f12 == complete + edit FCSTHR '18' + task jgfs_atmos_wafs_f24 + trigger ../../post/jgfs_atmos_post_f024 == complete and ./jgfs_atmos_wafs_f18 == complete + edit FCSTHR '24' + task jgfs_atmos_wafs_f30 + trigger ../../post/jgfs_atmos_post_f030 == complete and ./jgfs_atmos_wafs_f24 == complete + edit FCSTHR '30' + task jgfs_atmos_wafs_f36 + trigger ../../post/jgfs_atmos_post_f036 == complete and ./jgfs_atmos_wafs_f30 == complete + edit FCSTHR '36' + task jgfs_atmos_wafs_f42 + trigger ../../post/jgfs_atmos_post_f042 == complete and ./jgfs_atmos_wafs_f36 == complete + edit FCSTHR '42' + task jgfs_atmos_wafs_f48 + trigger ../../post/jgfs_atmos_post_f048 == complete and ./jgfs_atmos_wafs_f42 == complete + edit FCSTHR '48' + task jgfs_atmos_wafs_f54 + trigger ../../post/jgfs_atmos_post_f054 == complete and ./jgfs_atmos_wafs_f48 == complete + edit FCSTHR '54' + task jgfs_atmos_wafs_f60 + trigger ../../post/jgfs_atmos_post_f060 == complete and ./jgfs_atmos_wafs_f54 == complete + edit FCSTHR '60' + task jgfs_atmos_wafs_f66 + trigger ../../post/jgfs_atmos_post_f066 == complete and ./jgfs_atmos_wafs_f60 == complete + edit FCSTHR '66' + task jgfs_atmos_wafs_f72 + trigger ../../post/jgfs_atmos_post_f072 == complete and ./jgfs_atmos_wafs_f66 == complete + edit FCSTHR '72' + task jgfs_atmos_wafs_f78 + trigger ../../post/jgfs_atmos_post_f078 == complete and ./jgfs_atmos_wafs_f72 == complete + edit FCSTHR '78' + task jgfs_atmos_wafs_f84 + trigger ../../post/jgfs_atmos_post_f084 == complete and ./jgfs_atmos_wafs_f78 == complete + edit FCSTHR '84' + task jgfs_atmos_wafs_f90 + trigger ../../post/jgfs_atmos_post_f090 == complete and ./jgfs_atmos_wafs_f84 == complete + edit FCSTHR '90' + task jgfs_atmos_wafs_f96 + trigger ../../post/jgfs_atmos_post_f096 == complete and ./jgfs_atmos_wafs_f90 == complete + edit FCSTHR '96' + task jgfs_atmos_wafs_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete and ./jgfs_atmos_wafs_f96 == complete + edit FCSTHR '102' + task jgfs_atmos_wafs_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete and ./jgfs_atmos_wafs_f102 == complete + edit FCSTHR '108' + task jgfs_atmos_wafs_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete and ./jgfs_atmos_wafs_f108 == complete + edit FCSTHR '114' + task jgfs_atmos_wafs_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete and ./jgfs_atmos_wafs_f114 == complete + edit FCSTHR '120' + endfamily + family grib2_wafs + task jgfs_atmos_wafs_grib2 + trigger ../../post/jgfs_atmos_post_f000 == complete + task jgfs_atmos_wafs_grib2_0p25 + trigger ../../post/jgfs_atmos_post_f036 == complete + task jgfs_atmos_wafs_blending + trigger ./jgfs_atmos_wafs_grib2 == complete + time 04:33 + task jgfs_atmos_wafs_blending_0p25 + trigger ./jgfs_atmos_wafs_grib2_0p25 == complete + endfamily + family bufr_sounding + task jgfs_atmos_postsnd + trigger ../../post/jgfs_atmos_post_manager:release_post000 + endfamily + family bulletins + task jgfs_atmos_fbwind + trigger ../../post/jgfs_atmos_post_f006 == complete and ../../post/jgfs_atmos_post_f012 == complete and ../../post/jgfs_atmos_post_f024 == complete + endfamily + family awips_20km_1p0 + task jgfs_atmos_awips_f000 + trigger ../../post/jgfs_atmos_post_f000 == complete + edit FHRGRP '000' + edit FHRLST 'f000' + edit FCSTHR '000' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f003 + trigger ../../post/jgfs_atmos_post_f003 == complete + edit FHRGRP '003' + edit FHRLST 'f003' + edit FCSTHR '003' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f006 + trigger ../../post/jgfs_atmos_post_f006 == complete + edit FHRGRP '006' + edit FHRLST 'f006' + edit FCSTHR '006' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f009 + trigger ../../post/jgfs_atmos_post_f009 == complete + edit FHRGRP '009' + edit FHRLST 'f009' + edit FCSTHR '009' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f012 + trigger ../../post/jgfs_atmos_post_f012 == complete + edit FHRGRP '012' + edit FHRLST 'f012' + edit FCSTHR '012' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f015 + trigger ../../post/jgfs_atmos_post_f015 == complete + edit FHRGRP '015' + edit FHRLST 'f015' + edit FCSTHR '015' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f018 + trigger ../../post/jgfs_atmos_post_f018 == complete + edit FHRGRP '018' + edit FHRLST 'f018' + edit FCSTHR '018' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f021 + trigger ../../post/jgfs_atmos_post_f021 == complete + edit FHRGRP '021' + edit FHRLST 'f021' + edit FCSTHR '021' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f024 + trigger ../../post/jgfs_atmos_post_f024 == complete + edit FHRGRP '024' + edit FHRLST 'f024' + edit FCSTHR '024' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f027 + trigger ../../post/jgfs_atmos_post_f027 == complete + edit FHRGRP '027' + edit FHRLST 'f027' + edit FCSTHR '027' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f030 + trigger ../../post/jgfs_atmos_post_f030 == complete + edit FHRGRP '030' + edit FHRLST 'f030' + edit FCSTHR '030' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f033 + trigger ../../post/jgfs_atmos_post_f033 == complete + edit FHRGRP '033' + edit FHRLST 'f033' + edit FCSTHR '033' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f036 + trigger ../../post/jgfs_atmos_post_f036 == complete + edit FHRGRP '036' + edit FHRLST 'f036' + edit FCSTHR '036' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f039 + trigger ../../post/jgfs_atmos_post_f039 == complete + edit FHRGRP '039' + edit FHRLST 'f039' + edit FCSTHR '039' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f042 + trigger ../../post/jgfs_atmos_post_f042 == complete + edit FHRGRP '042' + edit FHRLST 'f042' + edit FCSTHR '042' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f045 + trigger ../../post/jgfs_atmos_post_f045 == complete + edit FHRGRP '045' + edit FHRLST 'f045' + edit FCSTHR '045' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f048 + trigger ../../post/jgfs_atmos_post_f048 == complete + edit FHRGRP '048' + edit FHRLST 'f048' + edit FCSTHR '048' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f051 + trigger ../../post/jgfs_atmos_post_f051 == complete + edit FHRGRP '051' + edit FHRLST 'f051' + edit FCSTHR '051' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f054 + trigger ../../post/jgfs_atmos_post_f054 == complete + edit FHRGRP '054' + edit FHRLST 'f054' + edit FCSTHR '054' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f057 + trigger ../../post/jgfs_atmos_post_f057 == complete + edit FHRGRP '057' + edit FHRLST 'f057' + edit FCSTHR '057' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f060 + trigger ../../post/jgfs_atmos_post_f060 == complete + edit FHRGRP '060' + edit FHRLST 'f060' + edit FCSTHR '060' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f063 + trigger ../../post/jgfs_atmos_post_f063 == complete + edit FHRGRP '063' + edit FHRLST 'f063' + edit FCSTHR '063' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f066 + trigger ../../post/jgfs_atmos_post_f066 == complete + edit FHRGRP '066' + edit FHRLST 'f066' + edit FCSTHR '066' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f069 + trigger ../../post/jgfs_atmos_post_f069 == complete + edit FHRGRP '069' + edit FHRLST 'f069' + edit FCSTHR '069' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f072 + trigger ../../post/jgfs_atmos_post_f072 == complete + edit FHRGRP '072' + edit FHRLST 'f072' + edit FCSTHR '072' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f075 + trigger ../../post/jgfs_atmos_post_f075 == complete + edit FHRGRP '075' + edit FHRLST 'f075' + edit FCSTHR '075' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f078 + trigger ../../post/jgfs_atmos_post_f078 == complete + edit FHRGRP '078' + edit FHRLST 'f078' + edit FCSTHR '078' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f081 + trigger ../../post/jgfs_atmos_post_f081 == complete + edit FHRGRP '081' + edit FHRLST 'f081' + edit FCSTHR '081' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f084 + trigger ../../post/jgfs_atmos_post_f084 == complete + edit FHRGRP '084' + edit FHRLST 'f084' + edit FCSTHR '084' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f090 + trigger ../../post/jgfs_atmos_post_f090 == complete + edit FHRGRP '090' + edit FHRLST 'f090' + edit FCSTHR '090' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f096 + trigger ../../post/jgfs_atmos_post_f096 == complete + edit FHRGRP '096' + edit FHRLST 'f096' + edit FCSTHR '096' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete + edit FHRGRP '102' + edit FHRLST 'f102' + edit FCSTHR '102' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete + edit FHRGRP '108' + edit FHRLST 'f108' + edit FCSTHR '108' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete + edit FHRGRP '114' + edit FHRLST 'f114' + edit FCSTHR '114' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete + edit FHRGRP '120' + edit FHRLST 'f120' + edit FCSTHR '120' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f126 + trigger ../../post/jgfs_atmos_post_f126 == complete + edit FHRGRP '126' + edit FHRLST 'f126' + edit FCSTHR '126' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f132 + trigger ../../post/jgfs_atmos_post_f132 == complete + edit FHRGRP '132' + edit FHRLST 'f132' + edit FCSTHR '132' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f138 + trigger ../../post/jgfs_atmos_post_f138 == complete + edit FHRGRP '138' + edit FHRLST 'f138' + edit FCSTHR '138' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f144 + trigger ../../post/jgfs_atmos_post_f144 == complete + edit FHRGRP '144' + edit FHRLST 'f144' + edit FCSTHR '144' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f150 + trigger ../../post/jgfs_atmos_post_f150 == complete + edit FHRGRP '150' + edit FHRLST 'f150' + edit FCSTHR '150' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f156 + trigger ../../post/jgfs_atmos_post_f156 == complete + edit FHRGRP '156' + edit FHRLST 'f156' + edit FCSTHR '156' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f162 + trigger ../../post/jgfs_atmos_post_f162 == complete + edit FHRGRP '162' + edit FHRLST 'f162' + edit FCSTHR '162' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f168 + trigger ../../post/jgfs_atmos_post_f168 == complete + edit FHRGRP '168' + edit FHRLST 'f168' + edit FCSTHR '168' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f174 + trigger ../../post/jgfs_atmos_post_f174 == complete + edit FHRGRP '174' + edit FHRLST 'f174' + edit FCSTHR '174' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f180 + trigger ../../post/jgfs_atmos_post_f180 == complete + edit FHRGRP '180' + edit FHRLST 'f180' + edit FCSTHR '180' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f186 + trigger ../../post/jgfs_atmos_post_f186 == complete + edit FHRGRP '186' + edit FHRLST 'f186' + edit FCSTHR '186' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f192 + trigger ../../post/jgfs_atmos_post_f192 == complete + edit FHRGRP '192' + edit FHRLST 'f192' + edit FCSTHR '192' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f198 + trigger ../../post/jgfs_atmos_post_f198 == complete + edit FHRGRP '198' + edit FHRLST 'f198' + edit FCSTHR '198' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f204 + trigger ../../post/jgfs_atmos_post_f204 == complete + edit FHRGRP '204' + edit FHRLST 'f204' + edit FCSTHR '204' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f210 + trigger ../../post/jgfs_atmos_post_f210 == complete + edit FHRGRP '210' + edit FHRLST 'f210' + edit FCSTHR '210' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f216 + trigger ../../post/jgfs_atmos_post_f216 == complete + edit FHRGRP '216' + edit FHRLST 'f216' + edit FCSTHR '216' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f222 + trigger ../../post/jgfs_atmos_post_f222 == complete + edit FHRGRP '222' + edit FHRLST 'f222' + edit FCSTHR '222' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f228 + trigger ../../post/jgfs_atmos_post_f228 == complete + edit FHRGRP '228' + edit FHRLST 'f228' + edit FCSTHR '228' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f234 + trigger ../../post/jgfs_atmos_post_f234 == complete + edit FHRGRP '234' + edit FHRLST 'f234' + edit FCSTHR '234' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f240 + trigger ../../post/jgfs_atmos_post_f240 == complete + edit FHRGRP '240' + edit FHRLST 'f240' + edit FCSTHR '240' + edit TRDRUN 'YES' + endfamily + family awips_g2 + task jgfs_atmos_awips_g2_f000 + trigger ../../post/jgfs_atmos_post_f000 == complete + edit FHRGRP '000' + edit FHRLST 'f000' + edit FCSTHR '000' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f006 + trigger ../../post/jgfs_atmos_post_f006 == complete + edit FHRGRP '006' + edit FHRLST 'f006' + edit FCSTHR '006' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f012 + trigger ../../post/jgfs_atmos_post_f012 == complete + edit FHRGRP '012' + edit FHRLST 'f012' + edit FCSTHR '012' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f018 + trigger ../../post/jgfs_atmos_post_f018 == complete + edit FHRGRP '018' + edit FHRLST 'f018' + edit FCSTHR '018' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f024 + trigger ../../post/jgfs_atmos_post_f024 == complete + edit FHRGRP '024' + edit FHRLST 'f024' + edit FCSTHR '024' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f030 + trigger ../../post/jgfs_atmos_post_f030 == complete + edit FHRGRP '030' + edit FHRLST 'f030' + edit FCSTHR '030' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f036 + trigger ../../post/jgfs_atmos_post_f036 == complete + edit FHRGRP '036' + edit FHRLST 'f036' + edit FCSTHR '036' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f042 + trigger ../../post/jgfs_atmos_post_f042 == complete + edit FHRGRP '042' + edit FHRLST 'f042' + edit FCSTHR '042' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f048 + trigger ../../post/jgfs_atmos_post_f048 == complete + edit FHRGRP '048' + edit FHRLST 'f048' + edit FCSTHR '048' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f054 + trigger ../../post/jgfs_atmos_post_f054 == complete + edit FHRGRP '054' + edit FHRLST 'f054' + edit FCSTHR '054' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f060 + trigger ../../post/jgfs_atmos_post_f060 == complete + edit FHRGRP '060' + edit FHRLST 'f060' + edit FCSTHR '060' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f066 + trigger ../../post/jgfs_atmos_post_f066 == complete + edit FHRGRP '066' + edit FHRLST 'f066' + edit FCSTHR '066' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f072 + trigger ../../post/jgfs_atmos_post_f072 == complete + edit FHRGRP '072' + edit FHRLST 'f072' + edit FCSTHR '072' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f078 + trigger ../../post/jgfs_atmos_post_f078 == complete + edit FHRGRP '078' + edit FHRLST 'f078' + edit FCSTHR '078' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f084 + trigger ../../post/jgfs_atmos_post_f084 == complete + edit FHRGRP '084' + edit FHRLST 'f084' + edit FCSTHR '084' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f090 + trigger ../../post/jgfs_atmos_post_f090 == complete + edit FHRGRP '090' + edit FHRLST 'f090' + edit FCSTHR '090' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f096 + trigger ../../post/jgfs_atmos_post_f096 == complete + edit FHRGRP '096' + edit FHRLST 'f096' + edit FCSTHR '096' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete + edit FHRGRP '102' + edit FHRLST 'f102' + edit FCSTHR '102' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete + edit FHRGRP '108' + edit FHRLST 'f108' + edit FCSTHR '108' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete + edit FHRGRP '114' + edit FHRLST 'f114' + edit FCSTHR '114' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete + edit FHRGRP '120' + edit FHRLST 'f120' + edit FCSTHR '120' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f126 + trigger ../../post/jgfs_atmos_post_f126 == complete + edit FHRGRP '126' + edit FHRLST 'f126' + edit FCSTHR '126' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f132 + trigger ../../post/jgfs_atmos_post_f132 == complete + edit FHRGRP '132' + edit FHRLST 'f132' + edit FCSTHR '132' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f138 + trigger ../../post/jgfs_atmos_post_f138 == complete + edit FHRGRP '138' + edit FHRLST 'f138' + edit FCSTHR '138' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f144 + trigger ../../post/jgfs_atmos_post_f144 == complete + edit FHRGRP '144' + edit FHRLST 'f144' + edit FCSTHR '144' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f150 + trigger ../../post/jgfs_atmos_post_f150 == complete + edit FHRGRP '150' + edit FHRLST 'f150' + edit FCSTHR '150' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f156 + trigger ../../post/jgfs_atmos_post_f156 == complete + edit FHRGRP '156' + edit FHRLST 'f156' + edit FCSTHR '156' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f162 + trigger ../../post/jgfs_atmos_post_f162 == complete + edit FHRGRP '162' + edit FHRLST 'f162' + edit FCSTHR '162' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f168 + trigger ../../post/jgfs_atmos_post_f168 == complete + edit FHRGRP '168' + edit FHRLST 'f168' + edit FCSTHR '168' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f174 + trigger ../../post/jgfs_atmos_post_f174 == complete + edit FHRGRP '174' + edit FHRLST 'f174' + edit FCSTHR '174' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f180 + trigger ../../post/jgfs_atmos_post_f180 == complete + edit FHRGRP '180' + edit FHRLST 'f180' + edit FCSTHR '180' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f186 + trigger ../../post/jgfs_atmos_post_f186 == complete + edit FHRGRP '186' + edit FHRLST 'f186' + edit FCSTHR '186' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f192 + trigger ../../post/jgfs_atmos_post_f192 == complete + edit FHRGRP '192' + edit FHRLST 'f192' + edit FCSTHR '192' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f198 + trigger ../../post/jgfs_atmos_post_f198 == complete + edit FHRGRP '198' + edit FHRLST 'f198' + edit FCSTHR '198' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f204 + trigger ../../post/jgfs_atmos_post_f204 == complete + edit FHRGRP '204' + edit FHRLST 'f204' + edit FCSTHR '204' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f210 + trigger ../../post/jgfs_atmos_post_f210 == complete + edit FHRGRP '210' + edit FHRLST 'f210' + edit FCSTHR '210' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f216 + trigger ../../post/jgfs_atmos_post_f216 == complete + edit FHRGRP '216' + edit FHRLST 'f216' + edit FCSTHR '216' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f222 + trigger ../../post/jgfs_atmos_post_f222 == complete + edit FHRGRP '222' + edit FHRLST 'f222' + edit FCSTHR '222' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f228 + trigger ../../post/jgfs_atmos_post_f228 == complete + edit FHRGRP '228' + edit FHRLST 'f228' + edit FCSTHR '228' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f234 + trigger ../../post/jgfs_atmos_post_f234 == complete + edit FHRGRP '234' + edit FHRLST 'f234' + edit FCSTHR '234' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f240 + trigger ../../post/jgfs_atmos_post_f240 == complete + edit FHRGRP '240' + edit FHRLST 'f240' + edit FCSTHR '240' + edit TRDRUN 'YES' + endfamily + endfamily + family gempak + task jgfs_atmos_gempak + trigger ../../atmos/analysis/jgfs_atmos_analysis == complete + task jgfs_atmos_gempak_meta + trigger ../../atmos/analysis/jgfs_atmos_analysis == complete + task jgfs_atmos_gempak_ncdc_upapgif + trigger ./jgfs_atmos_gempak == active or ./jgfs_atmos_gempak == complete + task jgfs_atmos_npoess_pgrb2_0p5deg + trigger ../post/jgfs_atmos_post_manager:release_post180 + task jgfs_atmos_pgrb2_spec_gempak + trigger ./jgfs_atmos_npoess_pgrb2_0p5deg == complete + endfamily + family verf + task jgfs_atmos_vminmon + trigger ../analysis/jgfs_atmos_analysis == complete + endfamily + endfamily + family wave + family init + task jgfs_wave_init + trigger ../../atmos/obsproc/prep/jgfs_atmos_prep == complete + endfamily + family prep + task jgfs_wave_prep + trigger ../init/jgfs_wave_init == complete + endfamily + family post + task jgfs_wave_postsbs + trigger ../../atmos/post/jgfs_atmos_post_manager:release_post000 + task jgfs_wave_postpnt + trigger ../../jgfs_forecast == complete + task jgfs_wave_post_bndpnt + trigger ../../atmos/post/jgfs_atmos_post_manager:release_post180 + task jgfs_wave_prdgen_gridded + trigger ./jgfs_wave_postsbs == active or ./jgfs_wave_postsbs == complete + task jgfs_wave_prdgen_bulls + trigger ./jgfs_wave_postpnt == complete and ./jgfs_wave_postsbs == complete + endfamily + family gempak + task jgfs_wave_gempak + trigger ../post/jgfs_wave_postsbs == active or ../post/jgfs_wave_postsbs == complete + endfamily + endfamily + task jgfs_forecast + trigger ./atmos/analysis/jgfs_atmos_analysis:release_fcst and ./wave/prep/jgfs_wave_prep == complete + endfamily + family gdas + edit CYC '12' + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3' + edit PROJ 'GDAS-OPS' + edit NET 'gfs' + edit RUN 'gdas' + edit COM '/gpfs/dell1/nco/ops/com' + edit QUEUESHARED 'prod_shared' + edit QUEUESERV 'prod_transfer' + edit QUEUE 'prod' + family atmos + family obsproc + family dump + task jgdas_atmos_tropcy_qc_reloc + time 05:45 + task jgdas_atmos_dump + event 1 release_sfcprep + time 05:50 + task jgdas_atmos_dump_post + trigger jgdas_atmos_dump == complete + event 1 release_gdas12_dump_alert + task jgdas_atmos_dump_alert + trigger jgdas_atmos_dump_post:release_gdas12_dump_alert + endfamily + family prep + task jgdas_atmos_emcsfc_sfc_prep + trigger ../dump/jgdas_atmos_dump:release_sfcprep + task jgdas_atmos_prep + trigger ../dump/jgdas_atmos_dump == complete and ../dump/jgdas_atmos_tropcy_qc_reloc == complete + task jgdas_atmos_prep_post + trigger ./jgdas_atmos_prep == complete and ../../analysis/jgdas_atmos_analysis == complete + endfamily + endfamily + family init + task jgdas_atmos_gldas + trigger ../analysis/jgdas_atmos_analysis == complete + endfamily + family analysis + task jgdas_atmos_analysis + trigger ../obsproc/prep/jgdas_atmos_prep == complete and ../obsproc/prep/jgdas_atmos_emcsfc_sfc_prep == complete + event 1 release_fcst + task jgdas_atmos_analysis_calc + trigger ./jgdas_atmos_analysis == complete + task jgdas_atmos_analysis_diag + trigger ./jgdas_atmos_analysis == complete + endfamily + family post + task jgdas_atmos_post_manager + trigger ../../jgdas_forecast == active + event 1 release_postanl + event 2 release_post000 + event 3 release_post001 + event 4 release_post002 + event 5 release_post003 + event 6 release_post004 + event 7 release_post005 + event 8 release_post006 + event 9 release_post007 + event 10 release_post008 + event 11 release_post009 + task jgdas_atmos_post_anl + trigger ./jgdas_atmos_post_manager:release_postanl + edit FHRGRP '000' + edit FHRLST 'anl' + edit HR 'anl' + edit FHR 'anl' + task jgdas_atmos_post_f000 + trigger ./jgdas_atmos_post_manager:release_post000 + edit FHR 'f000' + edit HR '000' + edit FHRGRP '001' + edit FHRLST 'f000' + task jgdas_atmos_post_f001 + trigger ./jgdas_atmos_post_manager:release_post001 + edit FHR 'f001' + edit HR '001' + edit FHRGRP '002' + edit FHRLST 'f001' + task jgdas_atmos_post_f002 + trigger ./jgdas_atmos_post_manager:release_post002 + edit FHR 'f002' + edit HR '002' + edit FHRGRP '003' + edit FHRLST 'f002' + task jgdas_atmos_post_f003 + trigger ./jgdas_atmos_post_manager:release_post003 + edit FHR 'f003' + edit HR '003' + edit FHRGRP '004' + edit FHRLST 'f003' + task jgdas_atmos_post_f004 + trigger ./jgdas_atmos_post_manager:release_post004 + edit FHR 'f004' + edit HR '004' + edit FHRGRP '005' + edit FHRLST 'f004' + task jgdas_atmos_post_f005 + trigger ./jgdas_atmos_post_manager:release_post005 + edit FHR 'f005' + edit HR '005' + edit FHRGRP '006' + edit FHRLST 'f005' + task jgdas_atmos_post_f006 + trigger ./jgdas_atmos_post_manager:release_post006 + edit FHR 'f006' + edit HR '006' + edit FHRGRP '007' + edit FHRLST 'f006' + task jgdas_atmos_post_f007 + trigger ./jgdas_atmos_post_manager:release_post007 + edit FHR 'f007' + edit HR '007' + edit FHRGRP '008' + edit FHRLST 'f007' + task jgdas_atmos_post_f008 + trigger ./jgdas_atmos_post_manager:release_post008 + edit FHR 'f008' + edit HR '008' + edit FHRGRP '009' + edit FHRLST 'f008' + task jgdas_atmos_post_f009 + trigger ./jgdas_atmos_post_manager:release_post009 + edit FHR 'f009' + edit HR '009' + edit FHRGRP '010' + edit FHRLST 'f009' + endfamily + family post_processing + task jgdas_atmos_chgres_forenkf + trigger ../../jgdas_forecast == complete and ../../enkf/forecast == complete + endfamily + family gempak + task jgdas_atmos_gempak + trigger ../../jgdas_forecast == complete + task jgdas_atmos_gempak_meta_ncdc + trigger ./jgdas_atmos_gempak == complete + endfamily + family verf + task jgdas_atmos_vminmon + trigger ../analysis/jgdas_atmos_analysis == complete + task jgdas_atmos_verfrad + trigger ../analysis/jgdas_atmos_analysis_diag == complete + task jgdas_atmos_verfozn + trigger ../analysis/jgdas_atmos_analysis_diag == complete + endfamily + endfamily + family wave + family init + task jgdas_wave_init + trigger ../../atmos/obsproc/prep/jgdas_atmos_prep == complete + endfamily + family prep + task jgdas_wave_prep + trigger ../init/jgdas_wave_init == complete + endfamily + family post + task jgdas_wave_postsbs + trigger ../../atmos/post/jgdas_atmos_post_manager:release_post000 + task jgdas_wave_postpnt + trigger ../../jgdas_forecast == complete + endfamily + endfamily + task jgdas_forecast + trigger ./atmos/analysis/jgdas_atmos_analysis:release_fcst and ./wave/prep/jgdas_wave_prep == complete and ./atmos/init/jgdas_atmos_gldas == complete + family enkf + family analysis + family create + task jgdas_enkf_select_obs + trigger ../../../atmos/obsproc/prep/jgdas_atmos_prep == complete and /prod06/gdas/enkf/post == complete + task jgdas_enkf_diag + trigger ./jgdas_enkf_select_obs == complete + task jgdas_enkf_update + trigger ./jgdas_enkf_diag == complete + endfamily + family recenter + family ecen + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3/enkf/analysis/recenter/ecen' + trigger ../create/jgdas_enkf_update == complete and ../../../atmos/analysis/jgdas_atmos_analysis_calc == complete and /prod06/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf == complete + family grp1 + edit FHRGRP '003' + task jgdas_enkf_ecen + endfamily + family grp2 + edit FHRGRP '006' + task jgdas_enkf_ecen + endfamily + family grp3 + edit FHRGRP '009' + task jgdas_enkf_ecen + endfamily + endfamily + task jgdas_enkf_sfc + trigger ../create/jgdas_enkf_update == complete and ../../../atmos/analysis/jgdas_atmos_analysis_calc == complete + endfamily + endfamily + family forecast + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3/enkf/forecast' + trigger ./analysis/recenter/ecen == complete and ./analysis/recenter/jgdas_enkf_sfc == complete + family grp1 + edit ENSGRP '01' + task jgdas_enkf_fcst + endfamily + family grp2 + edit ENSGRP '02' + task jgdas_enkf_fcst + endfamily + family grp3 + edit ENSGRP '03' + task jgdas_enkf_fcst + endfamily + family grp4 + edit ENSGRP '04' + task jgdas_enkf_fcst + endfamily + family grp5 + edit ENSGRP '05' + task jgdas_enkf_fcst + endfamily + family grp6 + edit ENSGRP '06' + task jgdas_enkf_fcst + endfamily + family grp7 + edit ENSGRP '07' + task jgdas_enkf_fcst + endfamily + family grp8 + edit ENSGRP '08' + task jgdas_enkf_fcst + endfamily + family grp9 + edit ENSGRP '09' + task jgdas_enkf_fcst + endfamily + family grp10 + edit ENSGRP '10' + task jgdas_enkf_fcst + endfamily + family grp11 + edit ENSGRP '11' + task jgdas_enkf_fcst + endfamily + family grp12 + edit ENSGRP '12' + task jgdas_enkf_fcst + endfamily + family grp13 + edit ENSGRP '13' + task jgdas_enkf_fcst + endfamily + family grp14 + edit ENSGRP '14' + task jgdas_enkf_fcst + endfamily + family grp15 + edit ENSGRP '15' + task jgdas_enkf_fcst + endfamily + family grp16 + edit ENSGRP '16' + task jgdas_enkf_fcst + endfamily + family grp17 + edit ENSGRP '17' + task jgdas_enkf_fcst + endfamily + family grp18 + edit ENSGRP '18' + task jgdas_enkf_fcst + endfamily + family grp19 + edit ENSGRP '19' + task jgdas_enkf_fcst + endfamily + family grp20 + edit ENSGRP '20' + task jgdas_enkf_fcst + endfamily + family grp21 + edit ENSGRP '21' + task jgdas_enkf_fcst + endfamily + family grp22 + edit ENSGRP '22' + task jgdas_enkf_fcst + endfamily + family grp23 + edit ENSGRP '23' + task jgdas_enkf_fcst + endfamily + family grp24 + edit ENSGRP '24' + task jgdas_enkf_fcst + endfamily + family grp25 + edit ENSGRP '25' + task jgdas_enkf_fcst + endfamily + family grp26 + edit ENSGRP '26' + task jgdas_enkf_fcst + endfamily + family grp27 + edit ENSGRP '27' + task jgdas_enkf_fcst + endfamily + family grp28 + edit ENSGRP '28' + task jgdas_enkf_fcst + endfamily + family grp29 + edit ENSGRP '29' + task jgdas_enkf_fcst + endfamily + family grp30 + edit ENSGRP '30' + task jgdas_enkf_fcst + endfamily + family grp31 + edit ENSGRP '31' + task jgdas_enkf_fcst + endfamily + family grp32 + edit ENSGRP '32' + task jgdas_enkf_fcst + endfamily + family grp33 + edit ENSGRP '33' + task jgdas_enkf_fcst + endfamily + family grp34 + edit ENSGRP '34' + task jgdas_enkf_fcst + endfamily + family grp35 + edit ENSGRP '35' + task jgdas_enkf_fcst + endfamily + family grp36 + edit ENSGRP '36' + task jgdas_enkf_fcst + endfamily + family grp37 + edit ENSGRP '37' + task jgdas_enkf_fcst + endfamily + family grp38 + edit ENSGRP '38' + task jgdas_enkf_fcst + endfamily + family grp39 + edit ENSGRP '39' + task jgdas_enkf_fcst + endfamily + family grp40 + edit ENSGRP '40' + task jgdas_enkf_fcst + endfamily + endfamily + family post + trigger ./forecast == complete + task jgdas_enkf_post_f003 + edit FHMIN_EPOS '003' + edit FHMAX_EPOS '003' + edit FHOUT_EPOS '003' + task jgdas_enkf_post_f004 + edit FHMIN_EPOS '004' + edit FHMAX_EPOS '004' + edit FHOUT_EPOS '004' + task jgdas_enkf_post_f005 + edit FHMIN_EPOS '005' + edit FHMAX_EPOS '005' + edit FHOUT_EPOS '005' + task jgdas_enkf_post_f006 + edit FHMIN_EPOS '006' + edit FHMAX_EPOS '006' + edit FHOUT_EPOS '006' + task jgdas_enkf_post_f007 + edit FHMIN_EPOS '007' + edit FHMAX_EPOS '007' + edit FHOUT_EPOS '007' + task jgdas_enkf_post_f008 + edit FHMIN_EPOS '008' + edit FHMAX_EPOS '008' + edit FHOUT_EPOS '008' + task jgdas_enkf_post_f009 + edit FHMIN_EPOS '009' + edit FHMAX_EPOS '009' + edit FHOUT_EPOS '009' + endfamily #### epos + endfamily #### enkf + endfamily #### gdas +endsuite diff --git a/ecflow/ecf/defs/prod18.def b/ecflow/ecf/defs/prod18.def new file mode 100644 index 0000000000..c7b93dbb52 --- /dev/null +++ b/ecflow/ecf/defs/prod18.def @@ -0,0 +1,2642 @@ +extern /prod12/gdas/jgdas_forecast +extern /prod12/gdas/atmos/post +extern /prod12/gdas/enkf/post +#### ecen +extern /prod12/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf + +suite prod18 + repeat day 1 + edit ECF_TRIES '1' + edit CYC '18' + edit ENVIR 'prod' + edit PROJ 'OPS' + edit E 'j' + edit QUEUE 'prod' + edit QUEUESHARED 'dev_shared' + edit QUEUESERV 'dev_transfer' + edit PROJENVIR 'OPS' + edit MACHINE_SITE 'production' + + family gfs + edit CYC '18' + edit ECF_FILES '/ecf/ecfnets/scripts/gfs_FV3' + edit PROJ 'GFS-OPS' + edit NET 'gfs' + edit RUN 'gfs' + edit COM '/gpfs/dell1/nco/ops/com' + edit QUEUESHARED 'prod_shared' + edit QUEUESERV 'prod_transfer' + edit QUEUE 'prod' + family atmos + family obsproc + family dump + task jgfs_atmos_tropcy_qc_reloc + event 1 jtwc_bull_email + time 02:41 + task jgfs_atmos_dump + event 1 release_sfcprep + time 02:47 + task jgfs_atmos_dump_post + trigger jgfs_atmos_dump == complete + event 1 release_gfs18_dump_alert + task jgfs_atmos_dump_alert + trigger jgfs_atmos_dump_post:release_gfs18_dump_alert + endfamily + family prep + task jgfs_atmos_emcsfc_sfc_prep + trigger ../dump/jgfs_atmos_dump:release_sfcprep + task jgfs_atmos_prep + trigger ../dump/jgfs_atmos_dump == complete and ../dump/jgfs_atmos_tropcy_qc_reloc == complete + task jgfs_atmos_prep_post + trigger ./jgfs_atmos_prep == complete and ../../analysis/jgfs_atmos_analysis == complete + endfamily + endfamily + family analysis + task jgfs_atmos_analysis + trigger ../obsproc/prep/jgfs_atmos_prep == complete and ../obsproc/prep/jgfs_atmos_emcsfc_sfc_prep == complete + event 1 release_fcst + task jgfs_atmos_analysis_calc + trigger ./jgfs_atmos_analysis == complete + endfamily + family post + task jgfs_atmos_post_manager + trigger ../analysis/jgfs_atmos_analysis == complete + event 1 release_postanl + event 2 release_post000 + event 3 release_post001 + event 4 release_post002 + event 5 release_post003 + event 6 release_post004 + event 7 release_post005 + event 8 release_post006 + event 9 release_post007 + event 10 release_post008 + event 11 release_post009 + event 12 release_post010 + event 13 release_post011 + event 14 release_post012 + event 15 release_post013 + event 16 release_post014 + event 17 release_post015 + event 18 release_post016 + event 19 release_post017 + event 20 release_post018 + event 21 release_post019 + event 22 release_post020 + event 23 release_post021 + event 24 release_post022 + event 25 release_post023 + event 26 release_post024 + event 27 release_post025 + event 28 release_post026 + event 29 release_post027 + event 30 release_post028 + event 31 release_post029 + event 32 release_post030 + event 33 release_post031 + event 34 release_post032 + event 35 release_post033 + event 36 release_post034 + event 37 release_post035 + event 38 release_post036 + event 39 release_post037 + event 40 release_post038 + event 41 release_post039 + event 42 release_post040 + event 43 release_post041 + event 44 release_post042 + event 45 release_post043 + event 46 release_post044 + event 47 release_post045 + event 48 release_post046 + event 49 release_post047 + event 50 release_post048 + event 51 release_post049 + event 52 release_post050 + event 53 release_post051 + event 54 release_post052 + event 55 release_post053 + event 56 release_post054 + event 57 release_post055 + event 58 release_post056 + event 59 release_post057 + event 60 release_post058 + event 61 release_post059 + event 62 release_post060 + event 63 release_post061 + event 64 release_post062 + event 65 release_post063 + event 66 release_post064 + event 67 release_post065 + event 68 release_post066 + event 69 release_post067 + event 70 release_post068 + event 71 release_post069 + event 72 release_post070 + event 73 release_post071 + event 74 release_post072 + event 75 release_post073 + event 76 release_post074 + event 77 release_post075 + event 78 release_post076 + event 79 release_post077 + event 80 release_post078 + event 81 release_post079 + event 82 release_post080 + event 83 release_post081 + event 84 release_post082 + event 85 release_post083 + event 86 release_post084 + event 87 release_post085 + event 88 release_post086 + event 89 release_post087 + event 90 release_post088 + event 91 release_post089 + event 92 release_post090 + event 93 release_post091 + event 94 release_post092 + event 95 release_post093 + event 96 release_post094 + event 97 release_post095 + event 98 release_post096 + event 99 release_post097 + event 100 release_post098 + event 101 release_post099 + event 102 release_post100 + event 103 release_post101 + event 104 release_post102 + event 105 release_post103 + event 106 release_post104 + event 107 release_post105 + event 108 release_post106 + event 109 release_post107 + event 110 release_post108 + event 111 release_post109 + event 112 release_post110 + event 113 release_post111 + event 114 release_post112 + event 115 release_post113 + event 116 release_post114 + event 117 release_post115 + event 118 release_post116 + event 119 release_post117 + event 120 release_post118 + event 121 release_post119 + event 122 release_post120 + event 123 release_post123 + event 124 release_post126 + event 125 release_post129 + event 126 release_post132 + event 127 release_post135 + event 128 release_post138 + event 129 release_post141 + event 130 release_post144 + event 131 release_post147 + event 132 release_post150 + event 133 release_post153 + event 134 release_post156 + event 135 release_post159 + event 136 release_post162 + event 137 release_post165 + event 138 release_post168 + event 139 release_post171 + event 140 release_post174 + event 141 release_post177 + event 142 release_post180 + event 143 release_post183 + event 144 release_post186 + event 145 release_post189 + event 146 release_post192 + event 147 release_post195 + event 148 release_post198 + event 149 release_post201 + event 150 release_post204 + event 151 release_post207 + event 152 release_post210 + event 153 release_post213 + event 154 release_post216 + event 155 release_post219 + event 156 release_post222 + event 157 release_post225 + event 158 release_post228 + event 159 release_post231 + event 160 release_post234 + event 161 release_post237 + event 162 release_post240 + event 163 release_post243 + event 164 release_post246 + event 165 release_post249 + event 166 release_post252 + event 167 release_post255 + event 168 release_post258 + event 169 release_post261 + event 170 release_post264 + event 171 release_post267 + event 172 release_post270 + event 173 release_post273 + event 174 release_post276 + event 175 release_post279 + event 176 release_post282 + event 177 release_post285 + event 178 release_post288 + event 179 release_post291 + event 180 release_post294 + event 181 release_post297 + event 182 release_post300 + event 183 release_post303 + event 184 release_post306 + event 185 release_post309 + event 186 release_post312 + event 187 release_post315 + event 188 release_post318 + event 189 release_post321 + event 190 release_post324 + event 191 release_post327 + event 192 release_post330 + event 193 release_post333 + event 194 release_post336 + event 195 release_post339 + event 196 release_post342 + event 197 release_post345 + event 198 release_post348 + event 199 release_post351 + event 200 release_post354 + event 201 release_post357 + event 202 release_post360 + event 203 release_post363 + event 204 release_post366 + event 205 release_post369 + event 206 release_post372 + event 207 release_post375 + event 208 release_post378 + event 209 release_post381 + event 210 release_post384 + task jgfs_atmos_post_anl + trigger ./jgfs_atmos_post_manager:release_postanl + edit FHRGRP '000' + edit FHRLST 'anl' + edit HR 'anl' + edit FHR 'anl' + task jgfs_atmos_post_f000 + trigger ./jgfs_atmos_post_manager:release_post000 + edit FHRGRP '001' + edit FHRLST 'f000' + edit FHR 'f000' + edit HR '000' + task jgfs_atmos_post_f001 + trigger ./jgfs_atmos_post_manager:release_post001 + edit FHRGRP '002' + edit FHRLST 'f001' + edit FHR 'f001' + edit HR '001' + task jgfs_atmos_post_f002 + trigger ./jgfs_atmos_post_manager:release_post002 + edit FHRGRP '003' + edit FHRLST 'f002' + edit FHR 'f002' + edit HR '002' + task jgfs_atmos_post_f003 + trigger ./jgfs_atmos_post_manager:release_post003 + edit FHRGRP '004' + edit FHRLST 'f003' + edit FHR 'f003' + edit HR '003' + task jgfs_atmos_post_f004 + trigger ./jgfs_atmos_post_manager:release_post004 + edit FHRGRP '005' + edit FHRLST 'f004' + edit FHR 'f004' + edit HR '004' + task jgfs_atmos_post_f005 + trigger ./jgfs_atmos_post_manager:release_post005 + edit FHRGRP '006' + edit FHRLST 'f005' + edit FHR 'f005' + edit HR '005' + task jgfs_atmos_post_f006 + trigger ./jgfs_atmos_post_manager:release_post006 + edit FHRGRP '007' + edit FHRLST 'f006' + edit FHR 'f006' + edit HR '006' + task jgfs_atmos_post_f007 + trigger ./jgfs_atmos_post_manager:release_post007 + edit FHRGRP '008' + edit FHRLST 'f007' + edit FHR 'f007' + edit HR '007' + task jgfs_atmos_post_f008 + trigger ./jgfs_atmos_post_manager:release_post008 + edit FHRGRP '009' + edit FHRLST 'f008' + edit FHR 'f008' + edit HR '008' + task jgfs_atmos_post_f009 + trigger ./jgfs_atmos_post_manager:release_post009 + edit FHRGRP '010' + edit FHRLST 'f009' + edit FHR 'f009' + edit HR '009' + task jgfs_atmos_post_f010 + trigger ./jgfs_atmos_post_manager:release_post010 + edit FHRGRP '011' + edit FHRLST 'f010' + edit FHR 'f010' + edit HR '010' + task jgfs_atmos_post_f011 + trigger ./jgfs_atmos_post_manager:release_post011 + edit FHRGRP '012' + edit FHRLST 'f011' + edit FHR 'f011' + edit HR '011' + task jgfs_atmos_post_f012 + trigger ./jgfs_atmos_post_manager:release_post012 + edit FHRGRP '013' + edit FHRLST 'f012' + edit FHR 'f012' + edit HR '012' + task jgfs_atmos_post_f013 + trigger ./jgfs_atmos_post_manager:release_post013 + edit FHRGRP '014' + edit FHRLST 'f013' + edit FHR 'f013' + edit HR '013' + task jgfs_atmos_post_f014 + trigger ./jgfs_atmos_post_manager:release_post014 + edit FHRGRP '015' + edit FHRLST 'f014' + edit FHR 'f014' + edit HR '014' + task jgfs_atmos_post_f015 + trigger ./jgfs_atmos_post_manager:release_post015 + edit FHRGRP '016' + edit FHRLST 'f015' + edit FHR 'f015' + edit HR '015' + task jgfs_atmos_post_f016 + trigger ./jgfs_atmos_post_manager:release_post016 + edit FHRGRP '017' + edit FHRLST 'f016' + edit FHR 'f016' + edit HR '016' + task jgfs_atmos_post_f017 + trigger ./jgfs_atmos_post_manager:release_post017 + edit FHRGRP '018' + edit FHRLST 'f017' + edit FHR 'f017' + edit HR '017' + task jgfs_atmos_post_f018 + trigger ./jgfs_atmos_post_manager:release_post018 + edit FHRGRP '019' + edit FHRLST 'f018' + edit FHR 'f018' + edit HR '018' + task jgfs_atmos_post_f019 + trigger ./jgfs_atmos_post_manager:release_post019 + edit FHRGRP '020' + edit FHRLST 'f019' + edit FHR 'f019' + edit HR '019' + task jgfs_atmos_post_f020 + trigger ./jgfs_atmos_post_manager:release_post020 + edit FHRGRP '021' + edit FHRLST 'f020' + edit FHR 'f020' + edit HR '020' + task jgfs_atmos_post_f021 + trigger ./jgfs_atmos_post_manager:release_post021 + edit FHRGRP '022' + edit FHRLST 'f021' + edit FHR 'f021' + edit HR '021' + task jgfs_atmos_post_f022 + trigger ./jgfs_atmos_post_manager:release_post022 + edit FHRGRP '023' + edit FHRLST 'f022' + edit FHR 'f022' + edit HR '022' + task jgfs_atmos_post_f023 + trigger ./jgfs_atmos_post_manager:release_post023 + edit FHRGRP '024' + edit FHRLST 'f023' + edit FHR 'f023' + edit HR '023' + task jgfs_atmos_post_f024 + trigger ./jgfs_atmos_post_manager:release_post024 + edit FHRGRP '025' + edit FHRLST 'f024' + edit FHR 'f024' + edit HR '024' + task jgfs_atmos_post_f025 + trigger ./jgfs_atmos_post_manager:release_post025 + edit FHRGRP '026' + edit FHRLST 'f025' + edit FHR 'f025' + edit HR '025' + task jgfs_atmos_post_f026 + trigger ./jgfs_atmos_post_manager:release_post026 + edit FHRGRP '027' + edit FHRLST 'f026' + edit FHR 'f026' + edit HR '026' + task jgfs_atmos_post_f027 + trigger ./jgfs_atmos_post_manager:release_post027 + edit FHRGRP '028' + edit FHRLST 'f027' + edit FHR 'f027' + edit HR '027' + task jgfs_atmos_post_f028 + trigger ./jgfs_atmos_post_manager:release_post028 + edit FHRGRP '029' + edit FHRLST 'f028' + edit FHR 'f028' + edit HR '028' + task jgfs_atmos_post_f029 + trigger ./jgfs_atmos_post_manager:release_post029 + edit FHRGRP '030' + edit FHRLST 'f029' + edit FHR 'f029' + edit HR '029' + task jgfs_atmos_post_f030 + trigger ./jgfs_atmos_post_manager:release_post030 + edit FHRGRP '031' + edit FHRLST 'f030' + edit FHR 'f030' + edit HR '030' + task jgfs_atmos_post_f031 + trigger ./jgfs_atmos_post_manager:release_post031 + edit FHRGRP '032' + edit FHRLST 'f031' + edit FHR 'f031' + edit HR '031' + task jgfs_atmos_post_f032 + trigger ./jgfs_atmos_post_manager:release_post032 + edit FHRGRP '033' + edit FHRLST 'f032' + edit FHR 'f032' + edit HR '032' + task jgfs_atmos_post_f033 + trigger ./jgfs_atmos_post_manager:release_post033 + edit FHRGRP '034' + edit FHRLST 'f033' + edit FHR 'f033' + edit HR '033' + task jgfs_atmos_post_f034 + trigger ./jgfs_atmos_post_manager:release_post034 + edit FHRGRP '035' + edit FHRLST 'f034' + edit FHR 'f034' + edit HR '034' + task jgfs_atmos_post_f035 + trigger ./jgfs_atmos_post_manager:release_post035 + edit FHRGRP '036' + edit FHRLST 'f035' + edit FHR 'f035' + edit HR '035' + task jgfs_atmos_post_f036 + trigger ./jgfs_atmos_post_manager:release_post036 + edit FHRGRP '037' + edit FHRLST 'f036' + edit FHR 'f036' + edit HR '036' + task jgfs_atmos_post_f037 + trigger ./jgfs_atmos_post_manager:release_post037 + edit FHRGRP '038' + edit FHRLST 'f037' + edit FHR 'f037' + edit HR '037' + task jgfs_atmos_post_f038 + trigger ./jgfs_atmos_post_manager:release_post038 + edit FHRGRP '039' + edit FHRLST 'f038' + edit FHR 'f038' + edit HR '038' + task jgfs_atmos_post_f039 + trigger ./jgfs_atmos_post_manager:release_post039 + edit FHRGRP '040' + edit FHRLST 'f039' + edit FHR 'f039' + edit HR '039' + task jgfs_atmos_post_f040 + trigger ./jgfs_atmos_post_manager:release_post040 + edit FHRGRP '041' + edit FHRLST 'f040' + edit FHR 'f040' + edit HR '040' + task jgfs_atmos_post_f041 + trigger ./jgfs_atmos_post_manager:release_post041 + edit FHRGRP '042' + edit FHRLST 'f041' + edit FHR 'f041' + edit HR '041' + task jgfs_atmos_post_f042 + trigger ./jgfs_atmos_post_manager:release_post042 + edit FHRGRP '043' + edit FHRLST 'f042' + edit FHR 'f042' + edit HR '042' + task jgfs_atmos_post_f043 + trigger ./jgfs_atmos_post_manager:release_post043 + edit FHRGRP '044' + edit FHRLST 'f043' + edit FHR 'f043' + edit HR '043' + task jgfs_atmos_post_f044 + trigger ./jgfs_atmos_post_manager:release_post044 + edit FHRGRP '045' + edit FHRLST 'f044' + edit FHR 'f044' + edit HR '044' + task jgfs_atmos_post_f045 + trigger ./jgfs_atmos_post_manager:release_post045 + edit FHRGRP '046' + edit FHRLST 'f045' + edit FHR 'f045' + edit HR '045' + task jgfs_atmos_post_f046 + trigger ./jgfs_atmos_post_manager:release_post046 + edit FHRGRP '047' + edit FHRLST 'f046' + edit FHR 'f046' + edit HR '046' + task jgfs_atmos_post_f047 + trigger ./jgfs_atmos_post_manager:release_post047 + edit FHRGRP '048' + edit FHRLST 'f047' + edit FHR 'f047' + edit HR '047' + task jgfs_atmos_post_f048 + trigger ./jgfs_atmos_post_manager:release_post048 + edit FHRGRP '049' + edit FHRLST 'f048' + edit FHR 'f048' + edit HR '048' + task jgfs_atmos_post_f049 + trigger ./jgfs_atmos_post_manager:release_post049 + edit FHRGRP '050' + edit FHRLST 'f049' + edit FHR 'f049' + edit HR '049' + task jgfs_atmos_post_f050 + trigger ./jgfs_atmos_post_manager:release_post050 + edit FHRGRP '051' + edit FHRLST 'f050' + edit FHR 'f050' + edit HR '050' + task jgfs_atmos_post_f051 + trigger ./jgfs_atmos_post_manager:release_post051 + edit FHRGRP '052' + edit FHRLST 'f051' + edit FHR 'f051' + edit HR '051' + task jgfs_atmos_post_f052 + trigger ./jgfs_atmos_post_manager:release_post052 + edit FHRGRP '053' + edit FHRLST 'f052' + edit FHR 'f052' + edit HR '052' + task jgfs_atmos_post_f053 + trigger ./jgfs_atmos_post_manager:release_post053 + edit FHRGRP '054' + edit FHRLST 'f053' + edit FHR 'f053' + edit HR '053' + task jgfs_atmos_post_f054 + trigger ./jgfs_atmos_post_manager:release_post054 + edit FHRGRP '055' + edit FHRLST 'f054' + edit FHR 'f054' + edit HR '054' + task jgfs_atmos_post_f055 + trigger ./jgfs_atmos_post_manager:release_post055 + edit FHRGRP '056' + edit FHRLST 'f055' + edit FHR 'f055' + edit HR '055' + task jgfs_atmos_post_f056 + trigger ./jgfs_atmos_post_manager:release_post056 + edit FHRGRP '057' + edit FHRLST 'f056' + edit FHR 'f056' + edit HR '056' + task jgfs_atmos_post_f057 + trigger ./jgfs_atmos_post_manager:release_post057 + edit FHRGRP '058' + edit FHRLST 'f057' + edit FHR 'f057' + edit HR '057' + task jgfs_atmos_post_f058 + trigger ./jgfs_atmos_post_manager:release_post058 + edit FHRGRP '059' + edit FHRLST 'f058' + edit FHR 'f058' + edit HR '058' + task jgfs_atmos_post_f059 + trigger ./jgfs_atmos_post_manager:release_post059 + edit FHRGRP '060' + edit FHRLST 'f059' + edit FHR 'f059' + edit HR '059' + task jgfs_atmos_post_f060 + trigger ./jgfs_atmos_post_manager:release_post060 + edit FHRGRP '061' + edit FHRLST 'f060' + edit FHR 'f060' + edit HR '060' + task jgfs_atmos_post_f061 + trigger ./jgfs_atmos_post_manager:release_post061 + edit FHRGRP '062' + edit FHRLST 'f061' + edit FHR 'f061' + edit HR '061' + task jgfs_atmos_post_f062 + trigger ./jgfs_atmos_post_manager:release_post062 + edit FHRGRP '063' + edit FHRLST 'f062' + edit FHR 'f062' + edit HR '062' + task jgfs_atmos_post_f063 + trigger ./jgfs_atmos_post_manager:release_post063 + edit FHRGRP '064' + edit FHRLST 'f063' + edit FHR 'f063' + edit HR '063' + task jgfs_atmos_post_f064 + trigger ./jgfs_atmos_post_manager:release_post064 + edit FHRGRP '065' + edit FHRLST 'f064' + edit FHR 'f064' + edit HR '064' + task jgfs_atmos_post_f065 + trigger ./jgfs_atmos_post_manager:release_post065 + edit FHRGRP '066' + edit FHRLST 'f065' + edit FHR 'f065' + edit HR '065' + task jgfs_atmos_post_f066 + trigger ./jgfs_atmos_post_manager:release_post066 + edit FHRGRP '067' + edit FHRLST 'f066' + edit FHR 'f066' + edit HR '066' + task jgfs_atmos_post_f067 + trigger ./jgfs_atmos_post_manager:release_post067 + edit FHRGRP '068' + edit FHRLST 'f067' + edit FHR 'f067' + edit HR '067' + task jgfs_atmos_post_f068 + trigger ./jgfs_atmos_post_manager:release_post068 + edit FHRGRP '069' + edit FHRLST 'f068' + edit FHR 'f068' + edit HR '068' + task jgfs_atmos_post_f069 + trigger ./jgfs_atmos_post_manager:release_post069 + edit FHRGRP '070' + edit FHRLST 'f069' + edit FHR 'f069' + edit HR '069' + task jgfs_atmos_post_f070 + trigger ./jgfs_atmos_post_manager:release_post070 + edit FHRGRP '071' + edit FHRLST 'f070' + edit FHR 'f070' + edit HR '070' + task jgfs_atmos_post_f071 + trigger ./jgfs_atmos_post_manager:release_post071 + edit FHRGRP '072' + edit FHRLST 'f071' + edit FHR 'f071' + edit HR '071' + task jgfs_atmos_post_f072 + trigger ./jgfs_atmos_post_manager:release_post072 + edit FHRGRP '073' + edit FHRLST 'f072' + edit FHR 'f072' + edit HR '072' + task jgfs_atmos_post_f073 + trigger ./jgfs_atmos_post_manager:release_post073 + edit FHRGRP '074' + edit FHRLST 'f073' + edit FHR 'f073' + edit HR '073' + task jgfs_atmos_post_f074 + trigger ./jgfs_atmos_post_manager:release_post074 + edit FHRGRP '075' + edit FHRLST 'f074' + edit FHR 'f074' + edit HR '074' + task jgfs_atmos_post_f075 + trigger ./jgfs_atmos_post_manager:release_post075 + edit FHRGRP '076' + edit FHRLST 'f075' + edit FHR 'f075' + edit HR '075' + task jgfs_atmos_post_f076 + trigger ./jgfs_atmos_post_manager:release_post076 + edit FHRGRP '077' + edit FHRLST 'f076' + edit FHR 'f076' + edit HR '076' + task jgfs_atmos_post_f077 + trigger ./jgfs_atmos_post_manager:release_post077 + edit FHRGRP '078' + edit FHRLST 'f077' + edit FHR 'f077' + edit HR '077' + task jgfs_atmos_post_f078 + trigger ./jgfs_atmos_post_manager:release_post078 + edit FHRGRP '079' + edit FHRLST 'f078' + edit FHR 'f078' + edit HR '078' + task jgfs_atmos_post_f079 + trigger ./jgfs_atmos_post_manager:release_post079 + edit FHRGRP '080' + edit FHRLST 'f079' + edit FHR 'f079' + edit HR '079' + task jgfs_atmos_post_f080 + trigger ./jgfs_atmos_post_manager:release_post080 + edit FHRGRP '081' + edit FHRLST 'f080' + edit FHR 'f080' + edit HR '080' + task jgfs_atmos_post_f081 + trigger ./jgfs_atmos_post_manager:release_post081 + edit FHRGRP '082' + edit FHRLST 'f081' + edit FHR 'f081' + edit HR '081' + task jgfs_atmos_post_f082 + trigger ./jgfs_atmos_post_manager:release_post082 + edit FHRGRP '083' + edit FHRLST 'f082' + edit FHR 'f082' + edit HR '082' + task jgfs_atmos_post_f083 + trigger ./jgfs_atmos_post_manager:release_post083 + edit FHRGRP '084' + edit FHRLST 'f083' + edit FHR 'f083' + edit HR '083' + task jgfs_atmos_post_f084 + trigger ./jgfs_atmos_post_manager:release_post084 + edit FHRGRP '085' + edit FHRLST 'f084' + edit FHR 'f084' + edit HR '084' + task jgfs_atmos_post_f085 + trigger ./jgfs_atmos_post_manager:release_post085 + edit FHRGRP '086' + edit FHRLST 'f085' + edit FHR 'f085' + edit HR '085' + task jgfs_atmos_post_f086 + trigger ./jgfs_atmos_post_manager:release_post086 + edit FHRGRP '087' + edit FHRLST 'f086' + edit FHR 'f086' + edit HR '086' + task jgfs_atmos_post_f087 + trigger ./jgfs_atmos_post_manager:release_post087 + edit FHRGRP '088' + edit FHRLST 'f087' + edit FHR 'f087' + edit HR '087' + task jgfs_atmos_post_f088 + trigger ./jgfs_atmos_post_manager:release_post088 + edit FHRGRP '089' + edit FHRLST 'f088' + edit FHR 'f088' + edit HR '088' + task jgfs_atmos_post_f089 + trigger ./jgfs_atmos_post_manager:release_post089 + edit FHRGRP '090' + edit FHRLST 'f089' + edit FHR 'f089' + edit HR '089' + task jgfs_atmos_post_f090 + trigger ./jgfs_atmos_post_manager:release_post090 + edit FHRGRP '091' + edit FHRLST 'f090' + edit FHR 'f090' + edit HR '090' + task jgfs_atmos_post_f091 + trigger ./jgfs_atmos_post_manager:release_post091 + edit FHRGRP '092' + edit FHRLST 'f091' + edit FHR 'f091' + edit HR '091' + task jgfs_atmos_post_f092 + trigger ./jgfs_atmos_post_manager:release_post092 + edit FHRGRP '093' + edit FHRLST 'f092' + edit FHR 'f092' + edit HR '092' + task jgfs_atmos_post_f093 + trigger ./jgfs_atmos_post_manager:release_post093 + edit FHRGRP '094' + edit FHRLST 'f093' + edit FHR 'f093' + edit HR '093' + task jgfs_atmos_post_f094 + trigger ./jgfs_atmos_post_manager:release_post094 + edit FHRGRP '095' + edit FHRLST 'f094' + edit FHR 'f094' + edit HR '094' + task jgfs_atmos_post_f095 + trigger ./jgfs_atmos_post_manager:release_post095 + edit FHRGRP '096' + edit FHRLST 'f095' + edit FHR 'f095' + edit HR '095' + task jgfs_atmos_post_f096 + trigger ./jgfs_atmos_post_manager:release_post096 + edit FHRGRP '097' + edit FHRLST 'f096' + edit FHR 'f096' + edit HR '096' + task jgfs_atmos_post_f097 + trigger ./jgfs_atmos_post_manager:release_post097 + edit FHRGRP '098' + edit FHRLST 'f097' + edit FHR 'f097' + edit HR '097' + task jgfs_atmos_post_f098 + trigger ./jgfs_atmos_post_manager:release_post098 + edit FHRGRP '099' + edit FHRLST 'f098' + edit FHR 'f098' + edit HR '098' + task jgfs_atmos_post_f099 + trigger ./jgfs_atmos_post_manager:release_post099 + edit FHRGRP '100' + edit FHRLST 'f099' + edit FHR 'f099' + edit HR '099' + task jgfs_atmos_post_f100 + trigger ./jgfs_atmos_post_manager:release_post100 + edit FHRGRP '101' + edit FHRLST 'f100' + edit FHR 'f100' + edit HR '100' + task jgfs_atmos_post_f101 + trigger ./jgfs_atmos_post_manager:release_post101 + edit FHRGRP '102' + edit FHRLST 'f101' + edit FHR 'f101' + edit HR '101' + task jgfs_atmos_post_f102 + trigger ./jgfs_atmos_post_manager:release_post102 + edit FHRGRP '103' + edit FHRLST 'f102' + edit FHR 'f102' + edit HR '102' + task jgfs_atmos_post_f103 + trigger ./jgfs_atmos_post_manager:release_post103 + edit FHRGRP '104' + edit FHRLST 'f103' + edit FHR 'f103' + edit HR '103' + task jgfs_atmos_post_f104 + trigger ./jgfs_atmos_post_manager:release_post104 + edit FHRGRP '105' + edit FHRLST 'f104' + edit FHR 'f104' + edit HR '104' + task jgfs_atmos_post_f105 + trigger ./jgfs_atmos_post_manager:release_post105 + edit FHRGRP '106' + edit FHRLST 'f105' + edit FHR 'f105' + edit HR '105' + task jgfs_atmos_post_f106 + trigger ./jgfs_atmos_post_manager:release_post106 + edit FHRGRP '107' + edit FHRLST 'f106' + edit FHR 'f106' + edit HR '106' + task jgfs_atmos_post_f107 + trigger ./jgfs_atmos_post_manager:release_post107 + edit FHRGRP '108' + edit FHRLST 'f107' + edit FHR 'f107' + edit HR '107' + task jgfs_atmos_post_f108 + trigger ./jgfs_atmos_post_manager:release_post108 + edit FHRGRP '109' + edit FHRLST 'f108' + edit FHR 'f108' + edit HR '108' + task jgfs_atmos_post_f109 + trigger ./jgfs_atmos_post_manager:release_post109 + edit FHRGRP '110' + edit FHRLST 'f109' + edit FHR 'f109' + edit HR '109' + task jgfs_atmos_post_f110 + trigger ./jgfs_atmos_post_manager:release_post110 + edit FHRGRP '111' + edit FHRLST 'f110' + edit FHR 'f110' + edit HR '110' + task jgfs_atmos_post_f111 + trigger ./jgfs_atmos_post_manager:release_post111 + edit FHRGRP '112' + edit FHRLST 'f111' + edit FHR 'f111' + edit HR '111' + task jgfs_atmos_post_f112 + trigger ./jgfs_atmos_post_manager:release_post112 + edit FHRGRP '113' + edit FHRLST 'f112' + edit FHR 'f112' + edit HR '112' + task jgfs_atmos_post_f113 + trigger ./jgfs_atmos_post_manager:release_post113 + edit FHRGRP '114' + edit FHRLST 'f113' + edit FHR 'f113' + edit HR '113' + task jgfs_atmos_post_f114 + trigger ./jgfs_atmos_post_manager:release_post114 + edit FHRGRP '115' + edit FHRLST 'f114' + edit FHR 'f114' + edit HR '114' + task jgfs_atmos_post_f115 + trigger ./jgfs_atmos_post_manager:release_post115 + edit FHRGRP '116' + edit FHRLST 'f115' + edit FHR 'f115' + edit HR '115' + task jgfs_atmos_post_f116 + trigger ./jgfs_atmos_post_manager:release_post116 + edit FHRGRP '117' + edit FHRLST 'f116' + edit FHR 'f116' + edit HR '116' + task jgfs_atmos_post_f117 + trigger ./jgfs_atmos_post_manager:release_post117 + edit FHRGRP '118' + edit FHRLST 'f117' + edit FHR 'f117' + edit HR '117' + task jgfs_atmos_post_f118 + trigger ./jgfs_atmos_post_manager:release_post118 + edit FHRGRP '119' + edit FHRLST 'f118' + edit FHR 'f118' + edit HR '118' + task jgfs_atmos_post_f119 + trigger ./jgfs_atmos_post_manager:release_post119 + edit FHRGRP '120' + edit FHRLST 'f119' + edit FHR 'f119' + edit HR '119' + task jgfs_atmos_post_f120 + trigger ./jgfs_atmos_post_manager:release_post120 + edit FHRGRP '121' + edit FHRLST 'f120' + edit FHR 'f120' + edit HR '120' + task jgfs_atmos_post_f123 + trigger ./jgfs_atmos_post_manager:release_post123 + edit FHRGRP '122' + edit FHRLST 'f123' + edit FHR 'f123' + edit HR '123' + task jgfs_atmos_post_f126 + trigger ./jgfs_atmos_post_manager:release_post126 + edit FHRGRP '123' + edit FHRLST 'f126' + edit FHR 'f126' + edit HR '126' + task jgfs_atmos_post_f129 + trigger ./jgfs_atmos_post_manager:release_post129 + edit FHRGRP '124' + edit FHRLST 'f129' + edit FHR 'f129' + edit HR '129' + task jgfs_atmos_post_f132 + trigger ./jgfs_atmos_post_manager:release_post132 + edit FHRGRP '125' + edit FHRLST 'f132' + edit FHR 'f132' + edit HR '132' + task jgfs_atmos_post_f135 + trigger ./jgfs_atmos_post_manager:release_post135 + edit FHRGRP '126' + edit FHRLST 'f135' + edit FHR 'f135' + edit HR '135' + task jgfs_atmos_post_f138 + trigger ./jgfs_atmos_post_manager:release_post138 + edit FHRGRP '127' + edit FHRLST 'f138' + edit FHR 'f138' + edit HR '138' + task jgfs_atmos_post_f141 + trigger ./jgfs_atmos_post_manager:release_post141 + edit FHRGRP '128' + edit FHRLST 'f141' + edit FHR 'f141' + edit HR '141' + task jgfs_atmos_post_f144 + trigger ./jgfs_atmos_post_manager:release_post144 + edit FHRGRP '129' + edit FHRLST 'f144' + edit FHR 'f144' + edit HR '144' + task jgfs_atmos_post_f147 + trigger ./jgfs_atmos_post_manager:release_post147 + edit FHRGRP '130' + edit FHRLST 'f147' + edit FHR 'f147' + edit HR '147' + task jgfs_atmos_post_f150 + trigger ./jgfs_atmos_post_manager:release_post150 + edit FHRGRP '131' + edit FHRLST 'f150' + edit FHR 'f150' + edit HR '150' + task jgfs_atmos_post_f153 + trigger ./jgfs_atmos_post_manager:release_post153 + edit FHRGRP '132' + edit FHRLST 'f153' + edit FHR 'f153' + edit HR '153' + task jgfs_atmos_post_f156 + trigger ./jgfs_atmos_post_manager:release_post156 + edit FHRGRP '133' + edit FHRLST 'f156' + edit FHR 'f156' + edit HR '156' + task jgfs_atmos_post_f159 + trigger ./jgfs_atmos_post_manager:release_post159 + edit FHRGRP '134' + edit FHRLST 'f159' + edit FHR 'f159' + edit HR '159' + task jgfs_atmos_post_f162 + trigger ./jgfs_atmos_post_manager:release_post162 + edit FHRGRP '135' + edit FHRLST 'f162' + edit FHR 'f162' + edit HR '162' + task jgfs_atmos_post_f165 + trigger ./jgfs_atmos_post_manager:release_post165 + edit FHRGRP '136' + edit FHRLST 'f165' + edit FHR 'f165' + edit HR '165' + task jgfs_atmos_post_f168 + trigger ./jgfs_atmos_post_manager:release_post168 + edit FHRGRP '137' + edit FHRLST 'f168' + edit FHR 'f168' + edit HR '168' + task jgfs_atmos_post_f171 + trigger ./jgfs_atmos_post_manager:release_post171 + edit FHRGRP '138' + edit FHRLST 'f171' + edit FHR 'f171' + edit HR '171' + task jgfs_atmos_post_f174 + trigger ./jgfs_atmos_post_manager:release_post174 + edit FHRGRP '139' + edit FHRLST 'f174' + edit FHR 'f174' + edit HR '174' + task jgfs_atmos_post_f177 + trigger ./jgfs_atmos_post_manager:release_post177 + edit FHRGRP '140' + edit FHRLST 'f177' + edit FHR 'f177' + edit HR '177' + task jgfs_atmos_post_f180 + trigger ./jgfs_atmos_post_manager:release_post180 + edit FHRGRP '141' + edit FHRLST 'f180' + edit FHR 'f180' + edit HR '180' + task jgfs_atmos_post_f183 + trigger ./jgfs_atmos_post_manager:release_post183 + edit FHRGRP '142' + edit FHRLST 'f183' + edit FHR 'f183' + edit HR '183' + task jgfs_atmos_post_f186 + trigger ./jgfs_atmos_post_manager:release_post186 + edit FHRGRP '143' + edit FHRLST 'f186' + edit FHR 'f186' + edit HR '186' + task jgfs_atmos_post_f189 + trigger ./jgfs_atmos_post_manager:release_post189 + edit FHRGRP '144' + edit FHRLST 'f189' + edit FHR 'f189' + edit HR '189' + task jgfs_atmos_post_f192 + trigger ./jgfs_atmos_post_manager:release_post192 + edit FHRGRP '145' + edit FHRLST 'f192' + edit FHR 'f192' + edit HR '192' + task jgfs_atmos_post_f195 + trigger ./jgfs_atmos_post_manager:release_post195 + edit FHRGRP '146' + edit FHRLST 'f195' + edit FHR 'f195' + edit HR '195' + task jgfs_atmos_post_f198 + trigger ./jgfs_atmos_post_manager:release_post198 + edit FHRGRP '147' + edit FHRLST 'f198' + edit FHR 'f198' + edit HR '198' + task jgfs_atmos_post_f201 + trigger ./jgfs_atmos_post_manager:release_post201 + edit FHRGRP '148' + edit FHRLST 'f201' + edit FHR 'f201' + edit HR '201' + task jgfs_atmos_post_f204 + trigger ./jgfs_atmos_post_manager:release_post204 + edit FHRGRP '149' + edit FHRLST 'f204' + edit FHR 'f204' + edit HR '204' + task jgfs_atmos_post_f207 + trigger ./jgfs_atmos_post_manager:release_post207 + edit FHRGRP '150' + edit FHRLST 'f207' + edit FHR 'f207' + edit HR '207' + task jgfs_atmos_post_f210 + trigger ./jgfs_atmos_post_manager:release_post210 + edit FHRGRP '151' + edit FHRLST 'f210' + edit FHR 'f210' + edit HR '210' + task jgfs_atmos_post_f213 + trigger ./jgfs_atmos_post_manager:release_post213 + edit FHRGRP '152' + edit FHRLST 'f213' + edit FHR 'f213' + edit HR '213' + task jgfs_atmos_post_f216 + trigger ./jgfs_atmos_post_manager:release_post216 + edit FHRGRP '153' + edit FHRLST 'f216' + edit FHR 'f216' + edit HR '216' + task jgfs_atmos_post_f219 + trigger ./jgfs_atmos_post_manager:release_post219 + edit FHRGRP '154' + edit FHRLST 'f219' + edit FHR 'f219' + edit HR '219' + task jgfs_atmos_post_f222 + trigger ./jgfs_atmos_post_manager:release_post222 + edit FHRGRP '155' + edit FHRLST 'f222' + edit FHR 'f222' + edit HR '222' + task jgfs_atmos_post_f225 + trigger ./jgfs_atmos_post_manager:release_post225 + edit FHRGRP '156' + edit FHRLST 'f225' + edit FHR 'f225' + edit HR '225' + task jgfs_atmos_post_f228 + trigger ./jgfs_atmos_post_manager:release_post228 + edit FHRGRP '157' + edit FHRLST 'f228' + edit FHR 'f228' + edit HR '228' + task jgfs_atmos_post_f231 + trigger ./jgfs_atmos_post_manager:release_post231 + edit FHRGRP '158' + edit FHRLST 'f231' + edit FHR 'f231' + edit HR '231' + task jgfs_atmos_post_f234 + trigger ./jgfs_atmos_post_manager:release_post234 + edit FHRGRP '159' + edit FHRLST 'f234' + edit FHR 'f234' + edit HR '234' + task jgfs_atmos_post_f237 + trigger ./jgfs_atmos_post_manager:release_post237 + edit FHRGRP '160' + edit FHRLST 'f237' + edit FHR 'f237' + edit HR '237' + task jgfs_atmos_post_f240 + trigger ./jgfs_atmos_post_manager:release_post240 + edit FHRGRP '161' + edit FHRLST 'f240' + edit FHR 'f240' + edit HR '240' + task jgfs_atmos_post_f243 + trigger ./jgfs_atmos_post_manager:release_post243 + edit FHRGRP '162' + edit FHRLST 'f243' + edit FHR 'f243' + edit HR '243' + task jgfs_atmos_post_f246 + trigger ./jgfs_atmos_post_manager:release_post246 + edit FHRGRP '163' + edit FHRLST 'f246' + edit FHR 'f246' + edit HR '246' + task jgfs_atmos_post_f249 + trigger ./jgfs_atmos_post_manager:release_post249 + edit FHRGRP '164' + edit FHRLST 'f249' + edit FHR 'f249' + edit HR '249' + task jgfs_atmos_post_f252 + trigger ./jgfs_atmos_post_manager:release_post252 + edit FHRGRP '165' + edit FHRLST 'f252' + edit FHR 'f252' + edit HR '252' + task jgfs_atmos_post_f255 + trigger ./jgfs_atmos_post_manager:release_post255 + edit FHRGRP '166' + edit FHRLST 'f255' + edit FHR 'f255' + edit HR '255' + task jgfs_atmos_post_f258 + trigger ./jgfs_atmos_post_manager:release_post258 + edit FHRGRP '167' + edit FHRLST 'f258' + edit FHR 'f258' + edit HR '258' + task jgfs_atmos_post_f261 + trigger ./jgfs_atmos_post_manager:release_post261 + edit FHRGRP '168' + edit FHRLST 'f261' + edit FHR 'f261' + edit HR '261' + task jgfs_atmos_post_f264 + trigger ./jgfs_atmos_post_manager:release_post264 + edit FHRGRP '169' + edit FHRLST 'f264' + edit FHR 'f264' + edit HR '264' + task jgfs_atmos_post_f267 + trigger ./jgfs_atmos_post_manager:release_post267 + edit FHRGRP '170' + edit FHRLST 'f267' + edit FHR 'f267' + edit HR '267' + task jgfs_atmos_post_f270 + trigger ./jgfs_atmos_post_manager:release_post270 + edit FHRGRP '171' + edit FHRLST 'f270' + edit FHR 'f270' + edit HR '270' + task jgfs_atmos_post_f273 + trigger ./jgfs_atmos_post_manager:release_post273 + edit FHRGRP '172' + edit FHRLST 'f273' + edit FHR 'f273' + edit HR '273' + task jgfs_atmos_post_f276 + trigger ./jgfs_atmos_post_manager:release_post276 + edit FHRGRP '173' + edit FHRLST 'f276' + edit FHR 'f276' + edit HR '276' + task jgfs_atmos_post_f279 + trigger ./jgfs_atmos_post_manager:release_post279 + edit FHRGRP '174' + edit FHRLST 'f279' + edit FHR 'f279' + edit HR '279' + task jgfs_atmos_post_f282 + trigger ./jgfs_atmos_post_manager:release_post282 + edit FHRGRP '175' + edit FHRLST 'f282' + edit FHR 'f282' + edit HR '282' + task jgfs_atmos_post_f285 + trigger ./jgfs_atmos_post_manager:release_post285 + edit FHRGRP '176' + edit FHRLST 'f285' + edit FHR 'f285' + edit HR '285' + task jgfs_atmos_post_f288 + trigger ./jgfs_atmos_post_manager:release_post288 + edit FHRGRP '177' + edit FHRLST 'f288' + edit FHR 'f288' + edit HR '288' + task jgfs_atmos_post_f291 + trigger ./jgfs_atmos_post_manager:release_post291 + edit FHRGRP '178' + edit FHRLST 'f291' + edit FHR 'f291' + edit HR '291' + task jgfs_atmos_post_f294 + trigger ./jgfs_atmos_post_manager:release_post294 + edit FHRGRP '179' + edit FHRLST 'f294' + edit FHR 'f294' + edit HR '294' + task jgfs_atmos_post_f297 + trigger ./jgfs_atmos_post_manager:release_post297 + edit FHRGRP '180' + edit FHRLST 'f297' + edit FHR 'f297' + edit HR '297' + task jgfs_atmos_post_f300 + trigger ./jgfs_atmos_post_manager:release_post300 + edit FHRGRP '181' + edit FHRLST 'f300' + edit FHR 'f300' + edit HR '300' + task jgfs_atmos_post_f303 + trigger ./jgfs_atmos_post_manager:release_post303 + edit FHRGRP '182' + edit FHRLST 'f303' + edit FHR 'f303' + edit HR '303' + task jgfs_atmos_post_f306 + trigger ./jgfs_atmos_post_manager:release_post306 + edit FHRGRP '183' + edit FHRLST 'f306' + edit FHR 'f306' + edit HR '306' + task jgfs_atmos_post_f309 + trigger ./jgfs_atmos_post_manager:release_post309 + edit FHRGRP '184' + edit FHRLST 'f309' + edit FHR 'f309' + edit HR '309' + task jgfs_atmos_post_f312 + trigger ./jgfs_atmos_post_manager:release_post312 + edit FHRGRP '185' + edit FHRLST 'f312' + edit FHR 'f312' + edit HR '312' + task jgfs_atmos_post_f315 + trigger ./jgfs_atmos_post_manager:release_post315 + edit FHRGRP '186' + edit FHRLST 'f315' + edit FHR 'f315' + edit HR '315' + task jgfs_atmos_post_f318 + trigger ./jgfs_atmos_post_manager:release_post318 + edit FHRGRP '187' + edit FHRLST 'f318' + edit FHR 'f318' + edit HR '318' + task jgfs_atmos_post_f321 + trigger ./jgfs_atmos_post_manager:release_post321 + edit FHRGRP '188' + edit FHRLST 'f321' + edit FHR 'f321' + edit HR '321' + task jgfs_atmos_post_f324 + trigger ./jgfs_atmos_post_manager:release_post324 + edit FHRGRP '189' + edit FHRLST 'f324' + edit FHR 'f324' + edit HR '324' + task jgfs_atmos_post_f327 + trigger ./jgfs_atmos_post_manager:release_post327 + edit FHRGRP '190' + edit FHRLST 'f327' + edit FHR 'f327' + edit HR '327' + task jgfs_atmos_post_f330 + trigger ./jgfs_atmos_post_manager:release_post330 + edit FHRGRP '191' + edit FHRLST 'f330' + edit FHR 'f330' + edit HR '330' + task jgfs_atmos_post_f333 + trigger ./jgfs_atmos_post_manager:release_post333 + edit FHRGRP '192' + edit FHRLST 'f333' + edit FHR 'f333' + edit HR '333' + task jgfs_atmos_post_f336 + trigger ./jgfs_atmos_post_manager:release_post336 + edit FHRGRP '193' + edit FHRLST 'f336' + edit FHR 'f336' + edit HR '336' + task jgfs_atmos_post_f339 + trigger ./jgfs_atmos_post_manager:release_post339 + edit FHRGRP '194' + edit FHRLST 'f339' + edit FHR 'f339' + edit HR '339' + task jgfs_atmos_post_f342 + trigger ./jgfs_atmos_post_manager:release_post342 + edit FHRGRP '195' + edit FHRLST 'f342' + edit FHR 'f342' + edit HR '342' + task jgfs_atmos_post_f345 + trigger ./jgfs_atmos_post_manager:release_post345 + edit FHRGRP '196' + edit FHRLST 'f345' + edit FHR 'f345' + edit HR '345' + task jgfs_atmos_post_f348 + trigger ./jgfs_atmos_post_manager:release_post348 + edit FHRGRP '197' + edit FHRLST 'f348' + edit FHR 'f348' + edit HR '348' + task jgfs_atmos_post_f351 + trigger ./jgfs_atmos_post_manager:release_post351 + edit FHRGRP '198' + edit FHRLST 'f351' + edit FHR 'f351' + edit HR '351' + task jgfs_atmos_post_f354 + trigger ./jgfs_atmos_post_manager:release_post354 + edit FHRGRP '199' + edit FHRLST 'f354' + edit FHR 'f354' + edit HR '354' + task jgfs_atmos_post_f357 + trigger ./jgfs_atmos_post_manager:release_post357 + edit FHRGRP '200' + edit FHRLST 'f357' + edit FHR 'f357' + edit HR '357' + task jgfs_atmos_post_f360 + trigger ./jgfs_atmos_post_manager:release_post360 + edit FHRGRP '201' + edit FHRLST 'f360' + edit FHR 'f360' + edit HR '360' + task jgfs_atmos_post_f363 + trigger ./jgfs_atmos_post_manager:release_post363 + edit FHRGRP '202' + edit FHRLST 'f363' + edit FHR 'f363' + edit HR '363' + task jgfs_atmos_post_f366 + trigger ./jgfs_atmos_post_manager:release_post366 + edit FHRGRP '203' + edit FHRLST 'f366' + edit FHR 'f366' + edit HR '366' + task jgfs_atmos_post_f369 + trigger ./jgfs_atmos_post_manager:release_post369 + edit FHRGRP '204' + edit FHRLST 'f369' + edit FHR 'f369' + edit HR '369' + task jgfs_atmos_post_f372 + trigger ./jgfs_atmos_post_manager:release_post372 + edit FHRGRP '205' + edit FHRLST 'f372' + edit FHR 'f372' + edit HR '372' + task jgfs_atmos_post_f375 + trigger ./jgfs_atmos_post_manager:release_post375 + edit FHRGRP '206' + edit FHRLST 'f375' + edit FHR 'f375' + edit HR '375' + task jgfs_atmos_post_f378 + trigger ./jgfs_atmos_post_manager:release_post378 + edit FHRGRP '207' + edit FHRLST 'f378' + edit FHR 'f378' + edit HR '378' + task jgfs_atmos_post_f381 + trigger ./jgfs_atmos_post_manager:release_post381 + edit FHRGRP '208' + edit FHRLST 'f381' + edit FHR 'f381' + edit HR '381' + task jgfs_atmos_post_f384 + trigger ./jgfs_atmos_post_manager:release_post384 + edit FHRGRP '209' + edit FHRLST 'f384' + edit FHR 'f384' + edit HR '384' + endfamily + family post_processing + task jgfs_atmos_wafs_gcip + trigger ../post/jgfs_atmos_post_f003 == complete + time 04:40 + family grib_wafs + task jgfs_atmos_wafs_f00 + trigger ../../post/jgfs_atmos_post_f000 == complete and ../../post/jgfs_atmos_post_f120 == complete and ../grib2_wafs/jgfs_atmos_wafs_grib2 == complete + edit FCSTHR '00' + task jgfs_atmos_wafs_f06 + trigger ../../post/jgfs_atmos_post_f006 == complete and ./jgfs_atmos_wafs_f00 == complete + edit FCSTHR '06' + task jgfs_atmos_wafs_f12 + trigger ../../post/jgfs_atmos_post_f012 == complete and ./jgfs_atmos_wafs_f06 == complete + edit FCSTHR '12' + task jgfs_atmos_wafs_f18 + trigger ../../post/jgfs_atmos_post_f018 == complete and ./jgfs_atmos_wafs_f12 == complete + edit FCSTHR '18' + task jgfs_atmos_wafs_f24 + trigger ../../post/jgfs_atmos_post_f024 == complete and ./jgfs_atmos_wafs_f18 == complete + edit FCSTHR '24' + task jgfs_atmos_wafs_f30 + trigger ../../post/jgfs_atmos_post_f030 == complete and ./jgfs_atmos_wafs_f24 == complete + edit FCSTHR '30' + task jgfs_atmos_wafs_f36 + trigger ../../post/jgfs_atmos_post_f036 == complete and ./jgfs_atmos_wafs_f30 == complete + edit FCSTHR '36' + task jgfs_atmos_wafs_f42 + trigger ../../post/jgfs_atmos_post_f042 == complete and ./jgfs_atmos_wafs_f36 == complete + edit FCSTHR '42' + task jgfs_atmos_wafs_f48 + trigger ../../post/jgfs_atmos_post_f048 == complete and ./jgfs_atmos_wafs_f42 == complete + edit FCSTHR '48' + task jgfs_atmos_wafs_f54 + trigger ../../post/jgfs_atmos_post_f054 == complete and ./jgfs_atmos_wafs_f48 == complete + edit FCSTHR '54' + task jgfs_atmos_wafs_f60 + trigger ../../post/jgfs_atmos_post_f060 == complete and ./jgfs_atmos_wafs_f54 == complete + edit FCSTHR '60' + task jgfs_atmos_wafs_f66 + trigger ../../post/jgfs_atmos_post_f066 == complete and ./jgfs_atmos_wafs_f60 == complete + edit FCSTHR '66' + task jgfs_atmos_wafs_f72 + trigger ../../post/jgfs_atmos_post_f072 == complete and ./jgfs_atmos_wafs_f66 == complete + edit FCSTHR '72' + task jgfs_atmos_wafs_f78 + trigger ../../post/jgfs_atmos_post_f078 == complete and ./jgfs_atmos_wafs_f72 == complete + edit FCSTHR '78' + task jgfs_atmos_wafs_f84 + trigger ../../post/jgfs_atmos_post_f084 == complete and ./jgfs_atmos_wafs_f78 == complete + edit FCSTHR '84' + task jgfs_atmos_wafs_f90 + trigger ../../post/jgfs_atmos_post_f090 == complete and ./jgfs_atmos_wafs_f84 == complete + edit FCSTHR '90' + task jgfs_atmos_wafs_f96 + trigger ../../post/jgfs_atmos_post_f096 == complete and ./jgfs_atmos_wafs_f90 == complete + edit FCSTHR '96' + task jgfs_atmos_wafs_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete and ./jgfs_atmos_wafs_f96 == complete + edit FCSTHR '102' + task jgfs_atmos_wafs_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete and ./jgfs_atmos_wafs_f102 == complete + edit FCSTHR '108' + task jgfs_atmos_wafs_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete and ./jgfs_atmos_wafs_f108 == complete + edit FCSTHR '114' + task jgfs_atmos_wafs_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete and ./jgfs_atmos_wafs_f114 == complete + edit FCSTHR '120' + endfamily + family grib2_wafs + task jgfs_atmos_wafs_grib2 + trigger ../../post/jgfs_atmos_post_f000 == complete + task jgfs_atmos_wafs_grib2_0p25 + trigger ../../post/jgfs_atmos_post_f036 == complete + task jgfs_atmos_wafs_blending + trigger ./jgfs_atmos_wafs_grib2 == complete + time 04:33 + task jgfs_atmos_wafs_blending_0p25 + trigger ./jgfs_atmos_wafs_grib2_0p25 == complete + endfamily + family bufr_sounding + task jgfs_atmos_postsnd + trigger ../../post/jgfs_atmos_post_manager:release_post000 + endfamily + family bulletins + task jgfs_atmos_fbwind + trigger ../../post/jgfs_atmos_post_f006 == complete and ../../post/jgfs_atmos_post_f012 == complete and ../../post/jgfs_atmos_post_f024 == complete + endfamily + family awips_20km_1p0 + task jgfs_atmos_awips_f000 + trigger ../../post/jgfs_atmos_post_f000 == complete + edit FHRGRP '000' + edit FHRLST 'f000' + edit FCSTHR '000' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f003 + trigger ../../post/jgfs_atmos_post_f003 == complete + edit FHRGRP '003' + edit FHRLST 'f003' + edit FCSTHR '003' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f006 + trigger ../../post/jgfs_atmos_post_f006 == complete + edit FHRGRP '006' + edit FHRLST 'f006' + edit FCSTHR '006' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f009 + trigger ../../post/jgfs_atmos_post_f009 == complete + edit FHRGRP '009' + edit FHRLST 'f009' + edit FCSTHR '009' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f012 + trigger ../../post/jgfs_atmos_post_f012 == complete + edit FHRGRP '012' + edit FHRLST 'f012' + edit FCSTHR '012' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f015 + trigger ../../post/jgfs_atmos_post_f015 == complete + edit FHRGRP '015' + edit FHRLST 'f015' + edit FCSTHR '015' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f018 + trigger ../../post/jgfs_atmos_post_f018 == complete + edit FHRGRP '018' + edit FHRLST 'f018' + edit FCSTHR '018' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f021 + trigger ../../post/jgfs_atmos_post_f021 == complete + edit FHRGRP '021' + edit FHRLST 'f021' + edit FCSTHR '021' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f024 + trigger ../../post/jgfs_atmos_post_f024 == complete + edit FHRGRP '024' + edit FHRLST 'f024' + edit FCSTHR '024' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f027 + trigger ../../post/jgfs_atmos_post_f027 == complete + edit FHRGRP '027' + edit FHRLST 'f027' + edit FCSTHR '027' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f030 + trigger ../../post/jgfs_atmos_post_f030 == complete + edit FHRGRP '030' + edit FHRLST 'f030' + edit FCSTHR '030' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f033 + trigger ../../post/jgfs_atmos_post_f033 == complete + edit FHRGRP '033' + edit FHRLST 'f033' + edit FCSTHR '033' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f036 + trigger ../../post/jgfs_atmos_post_f036 == complete + edit FHRGRP '036' + edit FHRLST 'f036' + edit FCSTHR '036' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f039 + trigger ../../post/jgfs_atmos_post_f039 == complete + edit FHRGRP '039' + edit FHRLST 'f039' + edit FCSTHR '039' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f042 + trigger ../../post/jgfs_atmos_post_f042 == complete + edit FHRGRP '042' + edit FHRLST 'f042' + edit FCSTHR '042' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f045 + trigger ../../post/jgfs_atmos_post_f045 == complete + edit FHRGRP '045' + edit FHRLST 'f045' + edit FCSTHR '045' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f048 + trigger ../../post/jgfs_atmos_post_f048 == complete + edit FHRGRP '048' + edit FHRLST 'f048' + edit FCSTHR '048' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f051 + trigger ../../post/jgfs_atmos_post_f051 == complete + edit FHRGRP '051' + edit FHRLST 'f051' + edit FCSTHR '051' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f054 + trigger ../../post/jgfs_atmos_post_f054 == complete + edit FHRGRP '054' + edit FHRLST 'f054' + edit FCSTHR '054' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f057 + trigger ../../post/jgfs_atmos_post_f057 == complete + edit FHRGRP '057' + edit FHRLST 'f057' + edit FCSTHR '057' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f060 + trigger ../../post/jgfs_atmos_post_f060 == complete + edit FHRGRP '060' + edit FHRLST 'f060' + edit FCSTHR '060' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f063 + trigger ../../post/jgfs_atmos_post_f063 == complete + edit FHRGRP '063' + edit FHRLST 'f063' + edit FCSTHR '063' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f066 + trigger ../../post/jgfs_atmos_post_f066 == complete + edit FHRGRP '066' + edit FHRLST 'f066' + edit FCSTHR '066' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f069 + trigger ../../post/jgfs_atmos_post_f069 == complete + edit FHRGRP '069' + edit FHRLST 'f069' + edit FCSTHR '069' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f072 + trigger ../../post/jgfs_atmos_post_f072 == complete + edit FHRGRP '072' + edit FHRLST 'f072' + edit FCSTHR '072' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f075 + trigger ../../post/jgfs_atmos_post_f075 == complete + edit FHRGRP '075' + edit FHRLST 'f075' + edit FCSTHR '075' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f078 + trigger ../../post/jgfs_atmos_post_f078 == complete + edit FHRGRP '078' + edit FHRLST 'f078' + edit FCSTHR '078' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f081 + trigger ../../post/jgfs_atmos_post_f081 == complete + edit FHRGRP '081' + edit FHRLST 'f081' + edit FCSTHR '081' + edit TRDRUN 'NO' + task jgfs_atmos_awips_f084 + trigger ../../post/jgfs_atmos_post_f084 == complete + edit FHRGRP '084' + edit FHRLST 'f084' + edit FCSTHR '084' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f090 + trigger ../../post/jgfs_atmos_post_f090 == complete + edit FHRGRP '090' + edit FHRLST 'f090' + edit FCSTHR '090' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f096 + trigger ../../post/jgfs_atmos_post_f096 == complete + edit FHRGRP '096' + edit FHRLST 'f096' + edit FCSTHR '096' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete + edit FHRGRP '102' + edit FHRLST 'f102' + edit FCSTHR '102' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete + edit FHRGRP '108' + edit FHRLST 'f108' + edit FCSTHR '108' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete + edit FHRGRP '114' + edit FHRLST 'f114' + edit FCSTHR '114' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete + edit FHRGRP '120' + edit FHRLST 'f120' + edit FCSTHR '120' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f126 + trigger ../../post/jgfs_atmos_post_f126 == complete + edit FHRGRP '126' + edit FHRLST 'f126' + edit FCSTHR '126' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f132 + trigger ../../post/jgfs_atmos_post_f132 == complete + edit FHRGRP '132' + edit FHRLST 'f132' + edit FCSTHR '132' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f138 + trigger ../../post/jgfs_atmos_post_f138 == complete + edit FHRGRP '138' + edit FHRLST 'f138' + edit FCSTHR '138' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f144 + trigger ../../post/jgfs_atmos_post_f144 == complete + edit FHRGRP '144' + edit FHRLST 'f144' + edit FCSTHR '144' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f150 + trigger ../../post/jgfs_atmos_post_f150 == complete + edit FHRGRP '150' + edit FHRLST 'f150' + edit FCSTHR '150' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f156 + trigger ../../post/jgfs_atmos_post_f156 == complete + edit FHRGRP '156' + edit FHRLST 'f156' + edit FCSTHR '156' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f162 + trigger ../../post/jgfs_atmos_post_f162 == complete + edit FHRGRP '162' + edit FHRLST 'f162' + edit FCSTHR '162' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f168 + trigger ../../post/jgfs_atmos_post_f168 == complete + edit FHRGRP '168' + edit FHRLST 'f168' + edit FCSTHR '168' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f174 + trigger ../../post/jgfs_atmos_post_f174 == complete + edit FHRGRP '174' + edit FHRLST 'f174' + edit FCSTHR '174' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f180 + trigger ../../post/jgfs_atmos_post_f180 == complete + edit FHRGRP '180' + edit FHRLST 'f180' + edit FCSTHR '180' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f186 + trigger ../../post/jgfs_atmos_post_f186 == complete + edit FHRGRP '186' + edit FHRLST 'f186' + edit FCSTHR '186' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f192 + trigger ../../post/jgfs_atmos_post_f192 == complete + edit FHRGRP '192' + edit FHRLST 'f192' + edit FCSTHR '192' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f198 + trigger ../../post/jgfs_atmos_post_f198 == complete + edit FHRGRP '198' + edit FHRLST 'f198' + edit FCSTHR '198' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f204 + trigger ../../post/jgfs_atmos_post_f204 == complete + edit FHRGRP '204' + edit FHRLST 'f204' + edit FCSTHR '204' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f210 + trigger ../../post/jgfs_atmos_post_f210 == complete + edit FHRGRP '210' + edit FHRLST 'f210' + edit FCSTHR '210' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f216 + trigger ../../post/jgfs_atmos_post_f216 == complete + edit FHRGRP '216' + edit FHRLST 'f216' + edit FCSTHR '216' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f222 + trigger ../../post/jgfs_atmos_post_f222 == complete + edit FHRGRP '222' + edit FHRLST 'f222' + edit FCSTHR '222' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f228 + trigger ../../post/jgfs_atmos_post_f228 == complete + edit FHRGRP '228' + edit FHRLST 'f228' + edit FCSTHR '228' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f234 + trigger ../../post/jgfs_atmos_post_f234 == complete + edit FHRGRP '234' + edit FHRLST 'f234' + edit FCSTHR '234' + edit TRDRUN 'YES' + task jgfs_atmos_awips_f240 + trigger ../../post/jgfs_atmos_post_f240 == complete + edit FHRGRP '240' + edit FHRLST 'f240' + edit FCSTHR '240' + edit TRDRUN 'YES' + endfamily + family awips_g2 + task jgfs_atmos_awips_g2_f000 + trigger ../../post/jgfs_atmos_post_f000 == complete + edit FHRGRP '000' + edit FHRLST 'f000' + edit FCSTHR '000' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f006 + trigger ../../post/jgfs_atmos_post_f006 == complete + edit FHRGRP '006' + edit FHRLST 'f006' + edit FCSTHR '006' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f012 + trigger ../../post/jgfs_atmos_post_f012 == complete + edit FHRGRP '012' + edit FHRLST 'f012' + edit FCSTHR '012' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f018 + trigger ../../post/jgfs_atmos_post_f018 == complete + edit FHRGRP '018' + edit FHRLST 'f018' + edit FCSTHR '018' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f024 + trigger ../../post/jgfs_atmos_post_f024 == complete + edit FHRGRP '024' + edit FHRLST 'f024' + edit FCSTHR '024' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f030 + trigger ../../post/jgfs_atmos_post_f030 == complete + edit FHRGRP '030' + edit FHRLST 'f030' + edit FCSTHR '030' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f036 + trigger ../../post/jgfs_atmos_post_f036 == complete + edit FHRGRP '036' + edit FHRLST 'f036' + edit FCSTHR '036' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f042 + trigger ../../post/jgfs_atmos_post_f042 == complete + edit FHRGRP '042' + edit FHRLST 'f042' + edit FCSTHR '042' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f048 + trigger ../../post/jgfs_atmos_post_f048 == complete + edit FHRGRP '048' + edit FHRLST 'f048' + edit FCSTHR '048' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f054 + trigger ../../post/jgfs_atmos_post_f054 == complete + edit FHRGRP '054' + edit FHRLST 'f054' + edit FCSTHR '054' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f060 + trigger ../../post/jgfs_atmos_post_f060 == complete + edit FHRGRP '060' + edit FHRLST 'f060' + edit FCSTHR '060' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f066 + trigger ../../post/jgfs_atmos_post_f066 == complete + edit FHRGRP '066' + edit FHRLST 'f066' + edit FCSTHR '066' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f072 + trigger ../../post/jgfs_atmos_post_f072 == complete + edit FHRGRP '072' + edit FHRLST 'f072' + edit FCSTHR '072' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f078 + trigger ../../post/jgfs_atmos_post_f078 == complete + edit FHRGRP '078' + edit FHRLST 'f078' + edit FCSTHR '078' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f084 + trigger ../../post/jgfs_atmos_post_f084 == complete + edit FHRGRP '084' + edit FHRLST 'f084' + edit FCSTHR '084' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f090 + trigger ../../post/jgfs_atmos_post_f090 == complete + edit FHRGRP '090' + edit FHRLST 'f090' + edit FCSTHR '090' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f096 + trigger ../../post/jgfs_atmos_post_f096 == complete + edit FHRGRP '096' + edit FHRLST 'f096' + edit FCSTHR '096' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f102 + trigger ../../post/jgfs_atmos_post_f102 == complete + edit FHRGRP '102' + edit FHRLST 'f102' + edit FCSTHR '102' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f108 + trigger ../../post/jgfs_atmos_post_f108 == complete + edit FHRGRP '108' + edit FHRLST 'f108' + edit FCSTHR '108' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f114 + trigger ../../post/jgfs_atmos_post_f114 == complete + edit FHRGRP '114' + edit FHRLST 'f114' + edit FCSTHR '114' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f120 + trigger ../../post/jgfs_atmos_post_f120 == complete + edit FHRGRP '120' + edit FHRLST 'f120' + edit FCSTHR '120' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f126 + trigger ../../post/jgfs_atmos_post_f126 == complete + edit FHRGRP '126' + edit FHRLST 'f126' + edit FCSTHR '126' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f132 + trigger ../../post/jgfs_atmos_post_f132 == complete + edit FHRGRP '132' + edit FHRLST 'f132' + edit FCSTHR '132' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f138 + trigger ../../post/jgfs_atmos_post_f138 == complete + edit FHRGRP '138' + edit FHRLST 'f138' + edit FCSTHR '138' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f144 + trigger ../../post/jgfs_atmos_post_f144 == complete + edit FHRGRP '144' + edit FHRLST 'f144' + edit FCSTHR '144' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f150 + trigger ../../post/jgfs_atmos_post_f150 == complete + edit FHRGRP '150' + edit FHRLST 'f150' + edit FCSTHR '150' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f156 + trigger ../../post/jgfs_atmos_post_f156 == complete + edit FHRGRP '156' + edit FHRLST 'f156' + edit FCSTHR '156' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f162 + trigger ../../post/jgfs_atmos_post_f162 == complete + edit FHRGRP '162' + edit FHRLST 'f162' + edit FCSTHR '162' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f168 + trigger ../../post/jgfs_atmos_post_f168 == complete + edit FHRGRP '168' + edit FHRLST 'f168' + edit FCSTHR '168' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f174 + trigger ../../post/jgfs_atmos_post_f174 == complete + edit FHRGRP '174' + edit FHRLST 'f174' + edit FCSTHR '174' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f180 + trigger ../../post/jgfs_atmos_post_f180 == complete + edit FHRGRP '180' + edit FHRLST 'f180' + edit FCSTHR '180' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f186 + trigger ../../post/jgfs_atmos_post_f186 == complete + edit FHRGRP '186' + edit FHRLST 'f186' + edit FCSTHR '186' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f192 + trigger ../../post/jgfs_atmos_post_f192 == complete + edit FHRGRP '192' + edit FHRLST 'f192' + edit FCSTHR '192' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f198 + trigger ../../post/jgfs_atmos_post_f198 == complete + edit FHRGRP '198' + edit FHRLST 'f198' + edit FCSTHR '198' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f204 + trigger ../../post/jgfs_atmos_post_f204 == complete + edit FHRGRP '204' + edit FHRLST 'f204' + edit FCSTHR '204' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f210 + trigger ../../post/jgfs_atmos_post_f210 == complete + edit FHRGRP '210' + edit FHRLST 'f210' + edit FCSTHR '210' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f216 + trigger ../../post/jgfs_atmos_post_f216 == complete + edit FHRGRP '216' + edit FHRLST 'f216' + edit FCSTHR '216' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f222 + trigger ../../post/jgfs_atmos_post_f222 == complete + edit FHRGRP '222' + edit FHRLST 'f222' + edit FCSTHR '222' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f228 + trigger ../../post/jgfs_atmos_post_f228 == complete + edit FHRGRP '228' + edit FHRLST 'f228' + edit FCSTHR '228' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f234 + trigger ../../post/jgfs_atmos_post_f234 == complete + edit FHRGRP '234' + edit FHRLST 'f234' + edit FCSTHR '234' + edit TRDRUN 'YES' + task jgfs_atmos_awips_g2_f240 + trigger ../../post/jgfs_atmos_post_f240 == complete + edit FHRGRP '240' + edit FHRLST 'f240' + edit FCSTHR '240' + edit TRDRUN 'YES' + endfamily + endfamily + family gempak + task jgfs_atmos_gempak + trigger ../../atmos/analysis/jgfs_atmos_analysis == complete + task jgfs_atmos_gempak_meta + trigger ../../atmos/analysis/jgfs_atmos_analysis == complete + task jgfs_atmos_gempak_ncdc_upapgif + trigger ./jgfs_atmos_gempak == active or ./jgfs_atmos_gempak == complete + task jgfs_atmos_npoess_pgrb2_0p5deg + trigger ../post/jgfs_atmos_post_manager:release_post180 + task jgfs_atmos_pgrb2_spec_gempak + trigger ./jgfs_atmos_npoess_pgrb2_0p5deg == complete + endfamily + family verf + task jgfs_atmos_vminmon + trigger ../analysis/jgfs_atmos_analysis == complete + endfamily + endfamily + family wave + family init + task jgfs_wave_init + trigger ../../atmos/obsproc/prep/jgfs_atmos_prep == complete + endfamily + family prep + task jgfs_wave_prep + trigger ../init/jgfs_wave_init == complete + endfamily + family post + task jgfs_wave_postsbs + trigger ../../atmos/post/jgfs_atmos_post_manager:release_post000 + task jgfs_wave_postpnt + trigger ../../jgfs_forecast == complete + task jgfs_wave_post_bndpnt + trigger ../../atmos/post/jgfs_atmos_post_manager:release_post180 + task jgfs_wave_prdgen_gridded + trigger ./jgfs_wave_postsbs == active or ./jgfs_wave_postsbs == complete + task jgfs_wave_prdgen_bulls + trigger ./jgfs_wave_postpnt == complete and ./jgfs_wave_postsbs == complete + endfamily + family gempak + task jgfs_wave_gempak + trigger ../post/jgfs_wave_postsbs == active or ../post/jgfs_wave_postsbs == complete + endfamily + endfamily + task jgfs_forecast + trigger ./atmos/analysis/jgfs_atmos_analysis:release_fcst and ./wave/prep/jgfs_wave_prep == complete + endfamily + family gdas + edit CYC '18' + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3' + edit PROJ 'GDAS-OPS' + edit NET 'gfs' + edit RUN 'gdas' + edit COM '/gpfs/dell1/nco/ops/com' + edit QUEUESHARED 'prod_shared' + edit QUEUESERV 'prod_transfer' + edit QUEUE 'prod' + family atmos + family obsproc + family dump + task jgdas_atmos_tropcy_qc_reloc + time 05:45 + task jgdas_atmos_dump + event 1 release_sfcprep + time 05:50 + task jgdas_atmos_dump_post + trigger jgdas_atmos_dump == complete + event 1 release_gdas18_dump_alert + task jgdas_atmos_dump_alert + trigger jgdas_atmos_dump_post:release_gdas18_dump_alert + endfamily + family prep + task jgdas_atmos_emcsfc_sfc_prep + trigger ../dump/jgdas_atmos_dump:release_sfcprep + task jgdas_atmos_prep + trigger ../dump/jgdas_atmos_dump == complete and ../dump/jgdas_atmos_tropcy_qc_reloc == complete + task jgdas_atmos_prep_post + trigger ./jgdas_atmos_prep == complete and ../../analysis/jgdas_atmos_analysis == complete + endfamily + endfamily + family init + task jgdas_atmos_gldas + trigger ../analysis/jgdas_atmos_analysis == complete + endfamily + family analysis + task jgdas_atmos_analysis + trigger ../obsproc/prep/jgdas_atmos_prep == complete and ../obsproc/prep/jgdas_atmos_emcsfc_sfc_prep == complete + event 1 release_fcst + task jgdas_atmos_analysis_calc + trigger ./jgdas_atmos_analysis == complete + task jgdas_atmos_analysis_diag + trigger ./jgdas_atmos_analysis == complete + endfamily + family post + task jgdas_atmos_post_manager + trigger ../../jgdas_forecast == active + event 1 release_postanl + event 2 release_post000 + event 3 release_post001 + event 4 release_post002 + event 5 release_post003 + event 6 release_post004 + event 7 release_post005 + event 8 release_post006 + event 9 release_post007 + event 10 release_post008 + event 11 release_post009 + task jgdas_atmos_post_anl + trigger ./jgdas_atmos_post_manager:release_postanl + edit FHRGRP '000' + edit FHRLST 'anl' + edit HR 'anl' + edit FHR 'anl' + task jgdas_atmos_post_f000 + trigger ./jgdas_atmos_post_manager:release_post000 + edit FHR 'f000' + edit HR '000' + edit FHRGRP '001' + edit FHRLST 'f000' + task jgdas_atmos_post_f001 + trigger ./jgdas_atmos_post_manager:release_post001 + edit FHR 'f001' + edit HR '001' + edit FHRGRP '002' + edit FHRLST 'f001' + task jgdas_atmos_post_f002 + trigger ./jgdas_atmos_post_manager:release_post002 + edit FHR 'f002' + edit HR '002' + edit FHRGRP '003' + edit FHRLST 'f002' + task jgdas_atmos_post_f003 + trigger ./jgdas_atmos_post_manager:release_post003 + edit FHR 'f003' + edit HR '003' + edit FHRGRP '004' + edit FHRLST 'f003' + task jgdas_atmos_post_f004 + trigger ./jgdas_atmos_post_manager:release_post004 + edit FHR 'f004' + edit HR '004' + edit FHRGRP '005' + edit FHRLST 'f004' + task jgdas_atmos_post_f005 + trigger ./jgdas_atmos_post_manager:release_post005 + edit FHR 'f005' + edit HR '005' + edit FHRGRP '006' + edit FHRLST 'f005' + task jgdas_atmos_post_f006 + trigger ./jgdas_atmos_post_manager:release_post006 + edit FHR 'f006' + edit HR '006' + edit FHRGRP '007' + edit FHRLST 'f006' + task jgdas_atmos_post_f007 + trigger ./jgdas_atmos_post_manager:release_post007 + edit FHR 'f007' + edit HR '007' + edit FHRGRP '008' + edit FHRLST 'f007' + task jgdas_atmos_post_f008 + trigger ./jgdas_atmos_post_manager:release_post008 + edit FHR 'f008' + edit HR '008' + edit FHRGRP '009' + edit FHRLST 'f008' + task jgdas_atmos_post_f009 + trigger ./jgdas_atmos_post_manager:release_post009 + edit FHR 'f009' + edit HR '009' + edit FHRGRP '010' + edit FHRLST 'f009' + endfamily + family post_processing + task jgdas_atmos_chgres_forenkf + trigger ../../jgdas_forecast == complete and ../../enkf/forecast == complete + endfamily + family gempak + task jgdas_atmos_gempak + trigger ../../jgdas_forecast == complete + task jgdas_atmos_gempak_meta_ncdc + trigger ./jgdas_atmos_gempak == complete + endfamily + family verf + task jgdas_atmos_vminmon + trigger ../analysis/jgdas_atmos_analysis == complete + task jgdas_atmos_verfrad + trigger ../analysis/jgdas_atmos_analysis_diag == complete + task jgdas_atmos_verfozn + trigger ../analysis/jgdas_atmos_analysis_diag == complete + endfamily + endfamily + family wave + family init + task jgdas_wave_init + trigger ../../atmos/obsproc/prep/jgdas_atmos_prep == complete + endfamily + family prep + task jgdas_wave_prep + trigger ../init/jgdas_wave_init == complete + endfamily + family post + task jgdas_wave_postsbs + trigger ../../atmos/post/jgdas_atmos_post_manager:release_post000 + task jgdas_wave_postpnt + trigger ../../jgdas_forecast == complete + endfamily + endfamily + task jgdas_forecast + trigger ./atmos/analysis/jgdas_atmos_analysis:release_fcst and ./wave/prep/jgdas_wave_prep == complete and ./atmos/init/jgdas_atmos_gldas == complete + family enkf + family analysis + family create + task jgdas_enkf_select_obs + trigger ../../../atmos/obsproc/prep/jgdas_atmos_prep == complete and /prod12/gdas/enkf/post == complete + task jgdas_enkf_diag + trigger ./jgdas_enkf_select_obs == complete + task jgdas_enkf_update + trigger ./jgdas_enkf_diag == complete + endfamily + family recenter + family ecen + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3/enkf/analysis/recenter/ecen' + trigger ../create/jgdas_enkf_update == complete and ../../../atmos/analysis/jgdas_atmos_analysis_calc == complete and /prod12/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf == complete + family grp1 + edit FHRGRP '003' + task jgdas_enkf_ecen + endfamily + family grp2 + edit FHRGRP '006' + task jgdas_enkf_ecen + endfamily + family grp3 + edit FHRGRP '009' + task jgdas_enkf_ecen + endfamily + endfamily + task jgdas_enkf_sfc + trigger ../create/jgdas_enkf_update == complete and ../../../atmos/analysis/jgdas_atmos_analysis_calc == complete + endfamily + endfamily + family forecast + edit ECF_FILES '/ecf/ecfnets/scripts/gdas_FV3/enkf/forecast' + trigger ./analysis/recenter/ecen == complete and ./analysis/recenter/jgdas_enkf_sfc == complete + family grp1 + edit ENSGRP '01' + task jgdas_enkf_fcst + endfamily + family grp2 + edit ENSGRP '02' + task jgdas_enkf_fcst + endfamily + family grp3 + edit ENSGRP '03' + task jgdas_enkf_fcst + endfamily + family grp4 + edit ENSGRP '04' + task jgdas_enkf_fcst + endfamily + family grp5 + edit ENSGRP '05' + task jgdas_enkf_fcst + endfamily + family grp6 + edit ENSGRP '06' + task jgdas_enkf_fcst + endfamily + family grp7 + edit ENSGRP '07' + task jgdas_enkf_fcst + endfamily + family grp8 + edit ENSGRP '08' + task jgdas_enkf_fcst + endfamily + family grp9 + edit ENSGRP '09' + task jgdas_enkf_fcst + endfamily + family grp10 + edit ENSGRP '10' + task jgdas_enkf_fcst + endfamily + family grp11 + edit ENSGRP '11' + task jgdas_enkf_fcst + endfamily + family grp12 + edit ENSGRP '12' + task jgdas_enkf_fcst + endfamily + family grp13 + edit ENSGRP '13' + task jgdas_enkf_fcst + endfamily + family grp14 + edit ENSGRP '14' + task jgdas_enkf_fcst + endfamily + family grp15 + edit ENSGRP '15' + task jgdas_enkf_fcst + endfamily + family grp16 + edit ENSGRP '16' + task jgdas_enkf_fcst + endfamily + family grp17 + edit ENSGRP '17' + task jgdas_enkf_fcst + endfamily + family grp18 + edit ENSGRP '18' + task jgdas_enkf_fcst + endfamily + family grp19 + edit ENSGRP '19' + task jgdas_enkf_fcst + endfamily + family grp20 + edit ENSGRP '20' + task jgdas_enkf_fcst + endfamily + family grp21 + edit ENSGRP '21' + task jgdas_enkf_fcst + endfamily + family grp22 + edit ENSGRP '22' + task jgdas_enkf_fcst + endfamily + family grp23 + edit ENSGRP '23' + task jgdas_enkf_fcst + endfamily + family grp24 + edit ENSGRP '24' + task jgdas_enkf_fcst + endfamily + family grp25 + edit ENSGRP '25' + task jgdas_enkf_fcst + endfamily + family grp26 + edit ENSGRP '26' + task jgdas_enkf_fcst + endfamily + family grp27 + edit ENSGRP '27' + task jgdas_enkf_fcst + endfamily + family grp28 + edit ENSGRP '28' + task jgdas_enkf_fcst + endfamily + family grp29 + edit ENSGRP '29' + task jgdas_enkf_fcst + endfamily + family grp30 + edit ENSGRP '30' + task jgdas_enkf_fcst + endfamily + family grp31 + edit ENSGRP '31' + task jgdas_enkf_fcst + endfamily + family grp32 + edit ENSGRP '32' + task jgdas_enkf_fcst + endfamily + family grp33 + edit ENSGRP '33' + task jgdas_enkf_fcst + endfamily + family grp34 + edit ENSGRP '34' + task jgdas_enkf_fcst + endfamily + family grp35 + edit ENSGRP '35' + task jgdas_enkf_fcst + endfamily + family grp36 + edit ENSGRP '36' + task jgdas_enkf_fcst + endfamily + family grp37 + edit ENSGRP '37' + task jgdas_enkf_fcst + endfamily + family grp38 + edit ENSGRP '38' + task jgdas_enkf_fcst + endfamily + family grp39 + edit ENSGRP '39' + task jgdas_enkf_fcst + endfamily + family grp40 + edit ENSGRP '40' + task jgdas_enkf_fcst + endfamily + endfamily + family post + trigger ./forecast == complete + task jgdas_enkf_post_f003 + edit FHMIN_EPOS '003' + edit FHMAX_EPOS '003' + edit FHOUT_EPOS '003' + task jgdas_enkf_post_f004 + edit FHMIN_EPOS '004' + edit FHMAX_EPOS '004' + edit FHOUT_EPOS '004' + task jgdas_enkf_post_f005 + edit FHMIN_EPOS '005' + edit FHMAX_EPOS '005' + edit FHOUT_EPOS '005' + task jgdas_enkf_post_f006 + edit FHMIN_EPOS '006' + edit FHMAX_EPOS '006' + edit FHOUT_EPOS '006' + task jgdas_enkf_post_f007 + edit FHMIN_EPOS '007' + edit FHMAX_EPOS '007' + edit FHOUT_EPOS '007' + task jgdas_enkf_post_f008 + edit FHMIN_EPOS '008' + edit FHMAX_EPOS '008' + edit FHOUT_EPOS '008' + task jgdas_enkf_post_f009 + edit FHMIN_EPOS '009' + edit FHMAX_EPOS '009' + edit FHOUT_EPOS '009' + endfamily #### epos + endfamily #### enkf + endfamily #### gdas +endsuite diff --git a/ecflow/ecf/include/envir-p3.h b/ecflow/ecf/include/envir-p3.h index 1ea81cc705..a57a706bed 100644 --- a/ecflow/ecf/include/envir-p3.h +++ b/ecflow/ecf/include/envir-p3.h @@ -8,7 +8,9 @@ export SENDDBN=${SENDDBN:-%SENDDBN:YES%} export SENDDBN_NTC=${SENDDBN_NTC:-%SENDDBN_NTC:YES%} FILESYSTEMROOT=/gpfs/%FILESYSTEM:dell1% -module load prod_envir/%prod_envir_ver% prod_util/%prod_util_ver% +module load prod_envir/%prod_envir_ver% prod_util/%prod_util_ver% EnvVars/%EnvVars_ver% + +if [ -n "%PARATEST:%" ]; then export PARATEST=${PARATEST:-%PARATEST:%}; fi case $envir in prod) @@ -23,7 +25,11 @@ case $envir in export envir=para export DATAROOT=${DATAROOT:-${FILESYSTEMROOT}/nco/ops/tmpnwprd} if [ "$SENDDBN" == "YES" ]; then - export DBNROOT=${UTILROOT}/para_dbn + if [ "$PARATEST" == "YES" ]; then + export DBNROOT=${UTILROOT}/fakedbn + else + export DBNROOT=${UTILROOT}/para_dbn + fi SENDDBN_NTC=NO else export DBNROOT=${UTILROOT}/fakedbn @@ -40,11 +46,13 @@ case $envir in esac export COMROOT=${FILESYSTEMROOT}/nco/ops/com +export GESROOT=${FILESYSTEMROOT}/nco/ops/nwges export COREROOT=${FILESYSTEMROOT}/ptmp/production.core/$jobid export NWROOT=/gpfs/dell1/nco/ops/nw${envir} export SENDECF=${SENDECF:-YES} export SENDCOM=${SENDCOM:-YES} export KEEPDATA=${KEEPDATA:-%KEEPDATA:NO%} +export TMPDIR=${TMPDIR:-${DATAROOT:?}} if [ -n "%PDY:%" ]; then export PDY=${PDY:-%PDY:%}; fi if [ -n "%COMPATH:%" ]; then export COMPATH=${COMPATH:-%COMPATH:%}; fi diff --git a/ecflow/ecf/include/head.h b/ecflow/ecf/include/head.h index 48efa72bcb..2c49be2b5b 100644 --- a/ecflow/ecf/include/head.h +++ b/ecflow/ecf/include/head.h @@ -18,15 +18,13 @@ if [ -d /opt/modules ]; then . /opt/modules/default/init/sh module load ecflow POST_OUT=/gpfs/hps/tmpfs/ecflow/ecflow_post_in.$LSB_BATCH_JID -elif [ -d /usrx/local/Modules ]; then - # WCOSS Phase 1 & 2 (IBM iDataPlex) - . /usrx/local/Modules/default/init/sh - module load ecflow - POST_OUT=/var/lsf/ecflow_post_in.$LSB_BATCH_JID else # WCOSS Phase 3 (Dell PowerEdge) . /usrx/local/prod/lmod/lmod/init/sh - module load ips/18.0.1.163 ecflow/%ECF_VERSION% + . /gpfs/dell1/nco/ops/nwprod/versions/ecflow_p3.ver + module load ips/$ips_ver + module load EnvVars/$EnvVars_ver + module load ecflow/$ecflow_ver POST_OUT=/var/lsf/ecflow_post_in.$USER.$LSB_BATCH_JID fi ecflow_client --init=${ECF_RID} diff --git a/ecflow/ecf/scripts/gdas/atmos/analysis/jgdas_atmos_analysis.ecf b/ecflow/ecf/scripts/gdas/atmos/analysis/jgdas_atmos_analysis.ecf new file mode 100755 index 0000000000..834e5e5b50 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/analysis/jgdas_atmos_analysis.ecf @@ -0,0 +1,81 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_analysis_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_analysis_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 1:00 +#BSUB -n 1000 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=250 +export ntasks=1000 +export ptile=4 +export threads=7 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +export model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load python/${python_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load grib_util/${grib_util_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export KMP_AFFINITY=scatter +export OMP_NUM_THREADS=$threads +export FORT_BUFFERED=true +export OMP_NUM_THREADS_CY=28 +export NTHREADS=$OMP_NUM_THREADS_CY +export NTHREADS_GSI=$threads +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export PREINP='' + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_ATMOS_ANALYSIS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/analysis/jgdas_atmos_analysis_calc.ecf b/ecflow/ecf/scripts/gdas/atmos/analysis/jgdas_atmos_analysis_calc.ecf new file mode 100755 index 0000000000..f82f50cdaa --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/analysis/jgdas_atmos_analysis_calc.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_analysis_calc_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_analysis_calc_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 140 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=5 +export ntasks=140 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load python/${python_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/analysis/jgdas_atmos_analysis_diag.ecf b/ecflow/ecf/scripts/gdas/atmos/analysis/jgdas_atmos_analysis_diag.ecf new file mode 100755 index 0000000000..8c9f597853 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/analysis/jgdas_atmos_analysis_diag.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_analysis_diag_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_analysis_diag_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +export model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGDAS_ATMOS_ANALYSIS_DIAG +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/gempak/jgdas_atmos_gempak.ecf b/ecflow/ecf/scripts/gdas/atmos/gempak/jgdas_atmos_gempak.ecf new file mode 100755 index 0000000000..c1b6625f86 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/gempak/jgdas_atmos_gempak.ecf @@ -0,0 +1,57 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_gempak_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_gempak_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:15 +#BSUB -n 2 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load ips/$ips_ver +module load impi/$impi_ver +module load EnvVars/$EnvVars_ver +module load lsf/$lsf_ver +module load CFP/$CFP_ver +module load grib_util/$grib_util_ver +module load gempak/$gempak_ver + +module list + +#%include +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +export model=gdas +${HOMEgfs}/jobs/JGDAS_ATMOS_GEMPAK + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/gempak/jgdas_atmos_gempak_meta_ncdc.ecf b/ecflow/ecf/scripts/gdas/atmos/gempak/jgdas_atmos_gempak_meta_ncdc.ecf new file mode 100755 index 0000000000..9cd8353126 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/gempak/jgdas_atmos_gempak_meta_ncdc.ecf @@ -0,0 +1,56 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_gempak_meta_ncdc_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_gempak_meta_ncdc_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:30 +#BSUB -n 2 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export model=%model:gdas% +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load ips/$ips_ver +module load impi/$impi_ver +module load EnvVars/$EnvVars_ver +module load lsf/$lsf_ver +module load CFP/$CFP_ver +module load grib_util/$grib_util_ver +module load gempak/${gempak_ver} + +module list + +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/init/jgdas_atmos_gldas.ecf b/ecflow/ecf/scripts/gdas/atmos/init/jgdas_atmos_gldas.ecf new file mode 100755 index 0000000000..0479289614 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/init/jgdas_atmos_gldas.ecf @@ -0,0 +1,72 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_gldas_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_gldas_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGDAS_ATMOS_GLDAS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_dump.ecf b/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_dump.ecf new file mode 100755 index 0000000000..7d150e0c94 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_dump.ecf @@ -0,0 +1,62 @@ +#BSUB -J %E%%RUN%_atmos_dump_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_atmos_dump_%CYC%.o%J +#BSUB -cwd /tmp +#BSUB -q %QUEUE% +#BSUB -W 00:15 +#BSUB -P %PROJ% +#BSUB -n 14 +#BSUB -R span[ptile=14] +#BSUB -R affinity[core(1):distribute=balance] + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +export model=obsproc_global +%include + +############################################################# +## Load modules +############################################################## +module load ips/$ips_ver +module load impi/$impi_ver +module load CFP/$CFP_ver + +module load grib_util/${grib_util_ver} +module list + +############################################################# +## WCOSS_C environment settings +############################################################## + +################################################ +# EXPORT list here + +set -x +export cyc=%CYC% +export COMPONENT=${COMPONENT:-atmos} + +# CALL executable job script here +${HOMEobsproc_global}/jobs/JGLOBAL_DUMP + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_dump_alert.ecf b/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_dump_alert.ecf new file mode 100755 index 0000000000..5436c7ef23 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_dump_alert.ecf @@ -0,0 +1,52 @@ +#BSUB -J %E%gdas_atmos_dump_alert_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_dump_alert_%CYC%.o%J +#BSUB -q %QUEUESERV% +#BSUB -R rusage[mem=1000] +#BSUB -R affinity[core] +#BSUB -cwd /tmp +#BSUB -W 00:05 +#BSUB -P %PROJ% + +%include +%include + +set -x + +export model=obsproc_dump_alert +%include + +############################################################# +# Load modules +############################################################# +#. $MODULESHOME/init/sh +module list + +############################################################# +# WCOSS environment settings +############################################################# + +# EXPORT list here + +set -x +export cyc=%CYC% +export NET=gfs +export RUN=gdas + +# CALL executable job script here +$HOMEobsproc_dump_alert/jobs/JDUMP_ALERT + +%include +%manual +###################################################################### +# Purpose: Job to execute the gfs data dump alert processing for the +# 00Z cycle +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_dump_post.ecf b/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_dump_post.ecf new file mode 100755 index 0000000000..8a06e14641 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_dump_post.ecf @@ -0,0 +1,63 @@ +#BSUB -J %E%%RUN%_atmos_dump_post_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_atmos_dump_post_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -cwd /tmp +#BSUB -W 00:10 +#BSUB -P %PROJ% +#BSUB -n 14 +#BSUB -R span[ptile=14] +#BSUB -R affinity[core(1):distribute=balance] + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +export model=obsproc_global +%include + +############################################################# +## Load modules +############################################################## +# . $MODULESHOME/init/sh +module load EnvVars/$EnvVars_ver +module load ips/$ips_ver +module load impi/$impi_ver +module load CFP/$CFP_ver +module list + +############################################################# +## WCOSS_C environment settings +############################################################## + +################################################ +# EXPORT list here + +set -x +export cyc=%CYC% +export COMPONENT=${COMPONENT:-atmos} + +# CALL executable job script here +$HOMEobsproc_global/jobs/JGLOBAL_DUMP_POST + +%include +%manual +###################################################################### +# Purpose: Job to execute the gfs data dump post-processing for the +# 00Z cycle (listing contents of dump files; conversion +# of dump file format) +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end + diff --git a/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_tropcy_qc_reloc.ecf b/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_tropcy_qc_reloc.ecf new file mode 100755 index 0000000000..7d3a7de813 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/obsproc/dump/jgdas_atmos_tropcy_qc_reloc.ecf @@ -0,0 +1,58 @@ +#! /bin/sh +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -J %E%gdas_atmos_tropcy_qc_reloc_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_tropcy_qc_reloc_%CYC%.o%J +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load EnvVars/$EnvVars_ver +module load lsf/$lsf_ver +module load ips/$ips_ver +module load impi/$impi_ver +module load CFP/$CFP_ver +module load grib_util/$grib_util_ver + +module list + +#%include +export USE_CFP=YES +export PROCESS_TROPCY=YES +export DO_RELOCATE=YES +# JY export ROTDIR=%COM%/$NET/$envir +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/obsproc/prep/jgdas_atmos_emcsfc_sfc_prep.ecf b/ecflow/ecf/scripts/gdas/atmos/obsproc/prep/jgdas_atmos_emcsfc_sfc_prep.ecf new file mode 100755 index 0000000000..46583871e9 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/obsproc/prep/jgdas_atmos_emcsfc_sfc_prep.ecf @@ -0,0 +1,52 @@ +#BSUB -J %E%gdas_atmos_emcsfc_sfc_prep_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_emcsfc_sfc_prep_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -L /bin/sh +#BSUB -W 0:08 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load grib_util/$grib_util_ver + +module list + +#%include +export USE_CFP=YES +# JY export ROTDIR=%COM%/$NET/$envir +export cyc=%CYC% +export cycle=t%CYC%z +# JY export SCRgfs=${HOMEgfs}/scripts + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/obsproc/prep/jgdas_atmos_prep.ecf b/ecflow/ecf/scripts/gdas/atmos/obsproc/prep/jgdas_atmos_prep.ecf new file mode 100755 index 0000000000..ce13a514de --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/obsproc/prep/jgdas_atmos_prep.ecf @@ -0,0 +1,69 @@ +#BSUB -J %E%%RUN%_atmos_prep_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_atmos_prep_%CYC%.o%J +#BSUB -cwd /tmp +#BSUB -q %QUEUE% +#BSUB -L /bin/sh +#BSUB -P %PROJ% +#BSUB -W 00:20 +#BSUB -R span[ptile=2]; -R affinity[core(1)] +#BSUB -n 4 + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=obsproc_global +%include + +############################################################# +## Load modules +############################################################## +# JY module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +#module load HDF5-parallel/${hdf5_parallel_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} + +module list + +############################################################# +## WCOSS_C environment settings +############################################################## +# export BACK="NO" +# export POE="YES" +export COMPONENT=${COMPONENT:-atmos} +export cyc=%CYC% + +# Not sure if need the following , comment them now - JY 10/20 +#export DO_MAKEPREPBUFR=YES +#export ROTDIR_DUMP=YES +#export OPREFIX=$CDUMP.t${cyc}z. +#export EXPDIR="$HOMEgfs/parm/config" +#export ROTDIR=%COM%/$NET/$envir +#export CDATE=${PDY}${cyc} + +set -x + +${HOMEobsproc_global}/jobs/JGLOBAL_PREP + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/obsproc/prep/jgdas_atmos_prep_post.ecf b/ecflow/ecf/scripts/gdas/atmos/obsproc/prep/jgdas_atmos_prep_post.ecf new file mode 100755 index 0000000000..fcaa522449 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/obsproc/prep/jgdas_atmos_prep_post.ecf @@ -0,0 +1,59 @@ +#BSUB -J %E%%RUN%_atmos_prep_post_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_atmos_prep_post_%CYC%.o%J +#BSUB -q %QUEUESERV% +#BSUB -cwd /tmp +#BSUB -W 00:15 +#BSUB -P %PROJ% +#BSUB -M 1000 +#BSUB -R affinity[core] + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +export model=obsproc_global +%include + +############################################################# +## Load modules +############################################################## +module load ips/$ips_ver +module load impi/$impi_ver +module load CFP/$CFP_ver +module list + +############################################################# +## WCOSS_C environment settings +############################################################## + +################################################ +# EXPORT list here + +set -x +export cyc=%CYC% +export COMPONENT=${COMPONENT:-atmos} + +# CALL executable job script here +$HOMEobsproc_global/jobs/JGLOBAL_PREP_POST + +%include +%manual +###################################################################### +# Purpose: Job to execute the GFS PREPBUFR post-processing for +# the 00Z cycle (creating unrestricted PREPBUFR files) +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end + diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_anl.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_anl.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_anl.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f000.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f000.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f000.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f001.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f001.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f001.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f002.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f002.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f002.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f003.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f003.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f003.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f004.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f004.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f004.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f005.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f005.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f005.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f006.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f006.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f006.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f007.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f007.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f007.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f008.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f008.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f008.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f009.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f009.ecf new file mode 100755 index 0000000000..d558576617 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_f009.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:12 +#BSUB -n 98 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=7 +export ntasks=98 +export ptile=14 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_manager.ecf b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_manager.ecf new file mode 100755 index 0000000000..b4c48ffec4 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post/jgdas_atmos_post_manager.ecf @@ -0,0 +1,55 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_post_manager_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_post_manager_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 1:15 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} + +module list + +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_ATMOS_POST_MANAGER + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf.ecf b/ecflow/ecf/scripts/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf.ecf new file mode 100755 index 0000000000..eacfc6ec67 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/post_processing/jgdas_atmos_chgres_forenkf.ecf @@ -0,0 +1,61 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_enkf_chgres_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_enkf_chgres_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 3 +#BSUB -R affinity[core(28)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=3 +export ntasks=3 +export ptile=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load python/${python_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGDAS_ATMOS_CHGRES_FORENKF + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/verf/jgdas_atmos_verfozn.ecf b/ecflow/ecf/scripts/gdas/atmos/verf/jgdas_atmos_verfozn.ecf new file mode 100755 index 0000000000..6bd62b703e --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/verf/jgdas_atmos_verfozn.ecf @@ -0,0 +1,60 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_verfozn_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_verfozn_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load util_shared/${util_shared_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export VERBOSE=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGDAS_ATMOS_VERFOZN + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/verf/jgdas_atmos_verfrad.ecf b/ecflow/ecf/scripts/gdas/atmos/verf/jgdas_atmos_verfrad.ecf new file mode 100755 index 0000000000..36196477df --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/verf/jgdas_atmos_verfrad.ecf @@ -0,0 +1,60 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_verfrad_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_verfrad_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load util_shared/${util_shared_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export VERBOSE=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGDAS_ATMOS_VERFRAD + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/atmos/verf/jgdas_atmos_vminmon.ecf b/ecflow/ecf/scripts/gdas/atmos/verf/jgdas_atmos_vminmon.ecf new file mode 100755 index 0000000000..6ecc32564c --- /dev/null +++ b/ecflow/ecf/scripts/gdas/atmos/verf/jgdas_atmos_vminmon.ecf @@ -0,0 +1,60 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_atmos_vminmon_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_atmos_vminmon_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load pm5/${pm5_ver} +#module load metplus/${metplus_ver} +module load util_shared/${util_shared_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export VERBOSE=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGDAS_ATMOS_VMINMON + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/analysis/create/jgdas_enkf_diag.ecf b/ecflow/ecf/scripts/gdas/enkf/analysis/create/jgdas_enkf_diag.ecf new file mode 100755 index 0000000000..d276de6d8d --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/analysis/create/jgdas_enkf_diag.ecf @@ -0,0 +1,59 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_diag_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_diag_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:06 +#BSUB -n 56 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=2 +export ntasks=56 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGDAS_ENKF_DIAG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/analysis/create/jgdas_enkf_select_obs.ecf b/ecflow/ecf/scripts/gdas/enkf/analysis/create/jgdas_enkf_select_obs.ecf new file mode 100755 index 0000000000..22629aa83a --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/analysis/create/jgdas_enkf_select_obs.ecf @@ -0,0 +1,62 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_select_obs_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_select_obs_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 480 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=120 +export ntasks=480 +export ptile=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load CFP/${CFP_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load python/${python_ver} +module load crtm/${crtm_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGDAS_ENKF_SELECT_OBS + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/analysis/create/jgdas_enkf_update.ecf b/ecflow/ecf/scripts/gdas/enkf/analysis/create/jgdas_enkf_update.ecf new file mode 100755 index 0000000000..5c4dad7b5c --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/analysis/create/jgdas_enkf_update.ecf @@ -0,0 +1,61 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_update_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_update_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:30 +#BSUB -n 960 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=240 +export ntasks=960 +export ptile=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load CFP/${CFP_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load python/${python_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGDAS_ENKF_UPDATE + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/analysis/recenter/ecen/jgdas_enkf_ecen.ecf b/ecflow/ecf/scripts/gdas/enkf/analysis/recenter/ecen/jgdas_enkf_ecen.ecf new file mode 100755 index 0000000000..948ecdc304 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/analysis/recenter/ecen/jgdas_enkf_ecen.ecf @@ -0,0 +1,63 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_ecen_%FHRGRP%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_ecen_%FHRGRP%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 80 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=20 +export ntasks=80 +export ptile=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHRGRP=%FHRGRP% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHMIN_ECEN=$FHRGRP +export FHMAX_ECEN=$FHRGRP +export FHOUT_ECEN=$FHRGRP + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGDAS_ENKF_ECEN + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/analysis/recenter/jgdas_enkf_sfc.ecf b/ecflow/ecf/scripts/gdas/enkf/analysis/recenter/jgdas_enkf_sfc.ecf new file mode 100755 index 0000000000..20779921f6 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/analysis/recenter/jgdas_enkf_sfc.ecf @@ -0,0 +1,62 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_sfc_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_sfc_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:06 +#BSUB -n 84 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=3 +export ntasks=84 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load python/${python_ver} +module load grib_util/${grib_util_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGDAS_ENKF_SFC + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/forecast/jgdas_enkf_fcst.ecf b/ecflow/ecf/scripts/gdas/enkf/forecast/jgdas_enkf_fcst.ecf new file mode 100755 index 0000000000..1e6dc6f1d6 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/forecast/jgdas_enkf_fcst.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:40 +#BSUB -n 420 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=15 +export ntasks=420 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load ESMF/${ESMF_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +###############i############################################# +export ENSGRP=%ENSGRP% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGDAS_ENKF_FCST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f003.ecf b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f003.ecf new file mode 100755 index 0000000000..f65d7f756f --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f003.ecf @@ -0,0 +1,62 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:15 +#BSUB -n 80 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=20 +export ntasks=80 +export ptile=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHMIN_EPOS=%FHOUT_EPOS% +export FHMAX_EPOS=%FHOUT_EPOS% +export FHOUT_EPOS=%FHOUT_EPOS% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGDAS_ENKF_POST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f004.ecf b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f004.ecf new file mode 100755 index 0000000000..f65d7f756f --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f004.ecf @@ -0,0 +1,62 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:15 +#BSUB -n 80 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=20 +export ntasks=80 +export ptile=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHMIN_EPOS=%FHOUT_EPOS% +export FHMAX_EPOS=%FHOUT_EPOS% +export FHOUT_EPOS=%FHOUT_EPOS% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGDAS_ENKF_POST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f005.ecf b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f005.ecf new file mode 100755 index 0000000000..f65d7f756f --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f005.ecf @@ -0,0 +1,62 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:15 +#BSUB -n 80 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=20 +export ntasks=80 +export ptile=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHMIN_EPOS=%FHOUT_EPOS% +export FHMAX_EPOS=%FHOUT_EPOS% +export FHOUT_EPOS=%FHOUT_EPOS% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGDAS_ENKF_POST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f006.ecf b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f006.ecf new file mode 100755 index 0000000000..f65d7f756f --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f006.ecf @@ -0,0 +1,62 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:15 +#BSUB -n 80 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=20 +export ntasks=80 +export ptile=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHMIN_EPOS=%FHOUT_EPOS% +export FHMAX_EPOS=%FHOUT_EPOS% +export FHOUT_EPOS=%FHOUT_EPOS% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGDAS_ENKF_POST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f007.ecf b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f007.ecf new file mode 100755 index 0000000000..f65d7f756f --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f007.ecf @@ -0,0 +1,62 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:15 +#BSUB -n 80 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=20 +export ntasks=80 +export ptile=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHMIN_EPOS=%FHOUT_EPOS% +export FHMAX_EPOS=%FHOUT_EPOS% +export FHOUT_EPOS=%FHOUT_EPOS% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGDAS_ENKF_POST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f008.ecf b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f008.ecf new file mode 100755 index 0000000000..f65d7f756f --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f008.ecf @@ -0,0 +1,62 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:15 +#BSUB -n 80 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=20 +export ntasks=80 +export ptile=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHMIN_EPOS=%FHOUT_EPOS% +export FHMAX_EPOS=%FHOUT_EPOS% +export FHOUT_EPOS=%FHOUT_EPOS% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGDAS_ENKF_POST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f009.ecf b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f009.ecf new file mode 100755 index 0000000000..f65d7f756f --- /dev/null +++ b/ecflow/ecf/scripts/gdas/enkf/post/jgdas_enkf_post_f009.ecf @@ -0,0 +1,62 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:15 +#BSUB -n 80 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=20 +export ntasks=80 +export ptile=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHMIN_EPOS=%FHOUT_EPOS% +export FHMAX_EPOS=%FHOUT_EPOS% +export FHOUT_EPOS=%FHOUT_EPOS% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGDAS_ENKF_POST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/jgdas_forecast.ecf b/ecflow/ecf/scripts/gdas/jgdas_forecast.ecf new file mode 100755 index 0000000000..f40a270a3a --- /dev/null +++ b/ecflow/ecf/scripts/gdas/jgdas_forecast.ecf @@ -0,0 +1,63 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gdas_forecast_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gdas_forecast_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 1:00 +#BSUB -n 833 +#BSUB -R affinity[core(4)] +#BSUB -R span[ptile=7] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=119 +export ntasks=833 +export ptile=7 +export threads=4 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load ESMF/${ESMF_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_FORECAST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gdas/wave/init/jgdas_wave_init.ecf b/ecflow/ecf/scripts/gdas/wave/init/jgdas_wave_init.ecf new file mode 100755 index 0000000000..3644fe681b --- /dev/null +++ b/ecflow/ecf/scripts/gdas/wave/init/jgdas_wave_init.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_init_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_init_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 00:10 +#BSUB -R span[ptile=28]; -R affinity[core(1)] +#BSUB -n 28 + +%include +%include + +set -x + +export NODES=1 +export ntasks=28 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_INIT + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas/wave/post/jgdas_wave_postpnt.ecf b/ecflow/ecf/scripts/gdas/wave/post/jgdas_wave_postpnt.ecf new file mode 100755 index 0000000000..531b68dd0e --- /dev/null +++ b/ecflow/ecf/scripts/gdas/wave/post/jgdas_wave_postpnt.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_postpnt_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_postpnt_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 0:12 +#BSUB -R span[ptile=28]; -R affinity[core] +#BSUB -n 280 + +%include +%include + +set -x + +export NODES=10 +export ntasks=280 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_POST_PNT + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas/wave/post/jgdas_wave_postsbs.ecf b/ecflow/ecf/scripts/gdas/wave/post/jgdas_wave_postsbs.ecf new file mode 100755 index 0000000000..4c187dcfd5 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/wave/post/jgdas_wave_postsbs.ecf @@ -0,0 +1,70 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_postsbs_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_postsbs_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 0:20 +#BSUB -R span[ptile=28]; -R affinity[core(1)] +#BSUB -n 28 + +%include +%include + +set -x + +export NODES=1 +export ntasks=28 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_POST_SBS + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas/wave/prep/jgdas_wave_prep.ecf b/ecflow/ecf/scripts/gdas/wave/prep/jgdas_wave_prep.ecf new file mode 100755 index 0000000000..5c5b213e97 --- /dev/null +++ b/ecflow/ecf/scripts/gdas/wave/prep/jgdas_wave_prep.ecf @@ -0,0 +1,74 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_prep_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_prep_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 0:10 +#BSUB -R span[ptile=28]; -R affinity[core(1)] +#BSUB -n 84 + +%include +%include + +set -x + +export NODES=3 +export ntasks=84 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NCO/${NCO_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load cdo/${cdo_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_PREP + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gdas_FV3/analysis/jgdas_analysis_high.ecf b/ecflow/ecf/scripts/gdas_FV3/analysis/jgdas_analysis_high.ecf deleted file mode 100755 index f57ba2682e..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/analysis/jgdas_analysis_high.ecf +++ /dev/null @@ -1,60 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_analysis_high_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_analysis_high_%CYC%.o%J -#BSUB -W 1:00 -#BSUB -n 480 -#BSUB -R affinity[core(14)] -#BSUB -R span[ptile=2] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export PREINP=${CDUMP}.${cycle}. - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ANALYSIS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_dump.ecf b/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_dump.ecf deleted file mode 100755 index c01733c8e5..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_dump.ecf +++ /dev/null @@ -1,60 +0,0 @@ -#BSUB -J %E%%RUN%_dump_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_dump_%CYC%.o%J -#BSUB -cwd /tmp -#BSUB -q %QUEUE% -#BSUB -W 00:15 -#BSUB -L /bin/sh -#BSUB -P %PROJ% -#BSUB -n 14 -#BSUB -R span[ptile=14] -#BSUB -R affinity[core(1):distribute=balance] - -%include -%include - -set -x - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -#. $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver - -module load grib_util/${grib_util_ver} -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x -export cyc=%CYC% - -# CALL executable job script here -${HOMEobsproc_global}/jobs/JGLOBAL_DUMP - -%include -%manual -###################################################################### -# Purpose: -# -# -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_dump_alert.ecf b/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_dump_alert.ecf deleted file mode 100755 index a12461eb3f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_dump_alert.ecf +++ /dev/null @@ -1,53 +0,0 @@ -#BSUB -J %E%gdas_dump_alert_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_dump_alert_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q %QUEUESERV% -#BSUB -R rusage[mem=1000] -#BSUB -R affinity[core] -#BSUB -cwd /tmp -#BSUB -W 00:05 -#BSUB -P %PROJ% - -%include -%include - -set -x - -export model=obsproc_dump_alert -%include - -############################################################# -# Load modules -############################################################# -#. $MODULESHOME/init/sh -module list - -############################################################# -# WCOSS environment settings -############################################################# - -# EXPORT list here - -set -x -export cyc=%CYC% -export NET=gfs -export RUN=gdas - -# CALL executable job script here -$HOMEobsproc_dump_alert/jobs/JDUMP_ALERT - -%include -%manual -###################################################################### -# Purpose: Job to execute the gfs data dump alert processing for the -# 00Z cycle -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_dump_post.ecf b/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_dump_post.ecf deleted file mode 100755 index c42264bf49..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_dump_post.ecf +++ /dev/null @@ -1,61 +0,0 @@ -#BSUB -J %E%%RUN%_dump_post_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_dump_post_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q %QUEUE% -#BSUB -cwd /tmp -#BSUB -W 00:10 -#BSUB -P %PROJ% -#BSUB -n 14 -#BSUB -R span[ptile=14] -#BSUB -R affinity[core(1):distribute=balance] - -%include -%include - -set -x - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -# . $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x -export cyc=%CYC% - -#export PROCESS_DATACOUNTS=NO - -# CALL executable job script here -$HOMEobsproc_global/jobs/JGLOBAL_DUMP_POST - -%include -%manual -###################################################################### -# Purpose: Job to execute the gfs data dump post-processing for the -# 00Z cycle (listing contents of dump files; conversion -# of dump file format) -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end - diff --git a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_tcvital_copy.ecf b/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_tcvital_copy.ecf deleted file mode 100755 index e8e15c46b0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_tcvital_copy.ecf +++ /dev/null @@ -1,53 +0,0 @@ -#BSUB -J %E%gdas_tcvital_copy_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_tcvital_copy_%CYC%.o%J -#BSUB -e %COM%/output/%ENVIR%/today/gdas_tcvital_copy_%CYC%.o%J -#BSUB -cwd /tmp -#BSUB -R rusage[mem=1000]; -R span[ptile=1]; -R affinity[core] -#BSUB -n 1 -#BSUB -q %QUEUESERV% -#BSUB -W 00:15 -#BSUB -L /bin/sh -#BSUB -P %PROJ% - -%include -%include - -# EXPORT list here -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver - -set -x -export cyc=%CYC% -export mod=nhc -export RUN=gdas - -# CALL executable job script here -VERSION_FILE=$NWROOT/versions/gfs.ver -if [ -f $VERSION_FILE ]; then - . $VERSION_FILE -else - ecflow_client --msg="***JOB ${ECF_NAME} ERROR: Version File $VERSION_FILE does not exist ***" - ecflow_client --abort - exit -fi - -$NWROOT/gdas.${gdas_ver}/jobs/JTCVITAL_COPY - -%include -%manual -###################################################################### -# Purpose: -# -# -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_tcvital_prod.ecf b/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_tcvital_prod.ecf deleted file mode 100755 index 4bd2d49886..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_tcvital_prod.ecf +++ /dev/null @@ -1,52 +0,0 @@ -#BSUB -J %E%gdas_tcvital_prod_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_tcvital_prod_%CYC%.o%J -#BSUB -e %COM%/output/%ENVIR%/today/gdas_tcvital_prod_%CYC%.o%J -#BSUB -cwd /tmp -#BSUB -R rusage[mem=1000]; -R span[ptile=1]; -R affinity[core] -#BSUB -n 1 -#BSUB -q %QUEUESERV% -#BSUB -W 00:15 -#BSUB -L /bin/sh -#BSUB -P %PROJ% - -%include -%include - -# EXPORT list here -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver - -set -x -export cyc=%CYC% -export RUN=gdas - -# CALL executable job script here -VERSION_FILE=$NWROOT/versions/gfs.ver -if [ -f $VERSION_FILE ]; then - . $VERSION_FILE -else - ecflow_client --msg="***JOB ${ECF_NAME} ERROR: Version File $VERSION_FILE does not exist ***" - ecflow_client --abort - exit -fi - -$NWROOT/gdas.${gdas_ver}/jobs/JTCVITAL_COPY - -%include -%manual -###################################################################### -# Purpose: -# -# -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_tropcy_qc_reloc.ecf b/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_tropcy_qc_reloc.ecf deleted file mode 100755 index 412c69f511..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/dump/jgdas_tropcy_qc_reloc.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_tropcy_qc_reloc_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_tropcy_qc_reloc_%CYC%.o%J -#BSUB -W 0:05 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export PROCESS_TROPCY=YES -export DO_RELOCATE=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_TROPCY_QC_RELOC - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/dump/jmodel_realtime_gdas.ecf b/ecflow/ecf/scripts/gdas_FV3/dump/jmodel_realtime_gdas.ecf deleted file mode 100755 index 7cd142a51c..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/dump/jmodel_realtime_gdas.ecf +++ /dev/null @@ -1,53 +0,0 @@ -#BSUB -J %E%model_realtime_gdas_%CYC% -#BSUB -o /com/output/%ENVIR%/today/model_realtime_gdas_%CYC%.o%J -#BSUB -e /com/output/%ENVIR%/today/model_realtime_gdas_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q prod_serv2 -#BSUB -cwd /tmp -#BSUB -W 00:10 -#BSUB -R rusage[mem=500] -#BSUB -R affinity[core] -#BSUB -R "span[ptile=8]" -#BSUB -n 16 -#BSUB -P %PROJ% -#BSUB -a poe -##BSUB MP_TASK_AFFINITY=cpu:1 - -%include -%include - -# EXPORT list here -set -x -export NET=gfs -export RUNM=gdas -export cyc=%CYC% - -export job=model_realtime_${NET}_${cyc} -export output=/com/output/${envir}/today/model_realtime_${NET}_${cyc} -export error=/com/output/${envir}/today/model_realtime_${NET}_${cyc} - -# CALL executable job script here -VERSION_FILE=/nw${envir}/versions/models_realtime.ver -if [ -f $VERSION_FILE ]; then - . $VERSION_FILE -else - ecflow_client --msg="***JOB ${ECFNAME} ERROR: Version File $VERSION_FILE does not exist ***" - ecflow_client --abort - exit -fi - -/nw${envir}/models_realtime.${code_ver}/jobs/JMODELS_REALTIME - -%include -%manual -###################################################################### -# PURPOSE: To read the hourly and its monthly mean data dump counts and compares -# to the monthly averages. -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp1.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp1.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp1.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp10.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp10.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp10.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp11.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp11.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp11.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp12.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp12.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp12.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp13.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp13.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp13.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp14.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp14.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp14.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp15.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp15.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp15.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp16.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp16.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp16.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp17.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp17.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp17.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp18.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp18.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp18.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp19.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp19.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp19.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp2.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp2.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp2.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp20.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp20.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp20.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp3.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp3.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp3.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp4.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp4.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp4.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp5.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp5.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp5.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp6.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp6.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp6.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp7.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp7.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp7.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp8.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp8.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp8.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp9.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp9.ecf deleted file mode 100755 index 991f2dde2f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/forecast/jgdas_enkf_fcst_grp9.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_fcst_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_fcst_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 168 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_FCST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp1.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp1.ecf deleted file mode 100755 index 8a861deef0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp1.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_innovate_obs_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_innovate_obs_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_INNOVATE_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp10.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp10.ecf deleted file mode 100755 index 8a861deef0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp10.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_innovate_obs_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_innovate_obs_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_INNOVATE_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp2.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp2.ecf deleted file mode 100755 index 8a861deef0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp2.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_innovate_obs_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_innovate_obs_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_INNOVATE_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp3.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp3.ecf deleted file mode 100755 index 8a861deef0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp3.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_innovate_obs_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_innovate_obs_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_INNOVATE_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp4.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp4.ecf deleted file mode 100755 index 8a861deef0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp4.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_innovate_obs_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_innovate_obs_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_INNOVATE_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp5.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp5.ecf deleted file mode 100755 index 8a861deef0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp5.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_innovate_obs_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_innovate_obs_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_INNOVATE_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp6.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp6.ecf deleted file mode 100755 index 8a861deef0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp6.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_innovate_obs_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_innovate_obs_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_INNOVATE_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp7.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp7.ecf deleted file mode 100755 index 8a861deef0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp7.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_innovate_obs_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_innovate_obs_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_INNOVATE_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp8.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp8.ecf deleted file mode 100755 index 8a861deef0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp8.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_innovate_obs_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_innovate_obs_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_INNOVATE_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp9.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp9.ecf deleted file mode 100755 index 8a861deef0..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/innovate/jgdas_enkf_innovate_obs_grp9.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_innovate_obs_%ENSGRP%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_innovate_obs_%ENSGRP%_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export ENSGRP=%ENSGRP% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_INNOVATE_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/jgdas_enkf_inflate_recenter.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/jgdas_enkf_inflate_recenter.ecf deleted file mode 100755 index 34149727cd..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/jgdas_enkf_inflate_recenter.ecf +++ /dev/null @@ -1,56 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_inflate_recenter_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_inflate_recenter_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 80 -#BSUB -R affinity[core(7)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load NetCDF/$NetCDF_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_ENKF_RECENTER - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/jgdas_enkf_select_obs.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/jgdas_enkf_select_obs.ecf deleted file mode 100755 index d5f4fa5916..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/jgdas_enkf_select_obs.ecf +++ /dev/null @@ -1,56 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_select_obs_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_select_obs_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 140 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_SELECT_OBS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/jgdas_enkf_update.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/jgdas_enkf_update.ecf deleted file mode 100755 index b96d6de93f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/jgdas_enkf_update.ecf +++ /dev/null @@ -1,55 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_update_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_update_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 360 -#BSUB -R affinity[core(7)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$CFP_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ENKF_UPDATE - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f003.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f003.ecf deleted file mode 100755 index eff90bc45f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f003.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 80 -#BSUB -R affinity[core(7)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHMIN_EPOS=%FHMIN_EPOS% -export FHMAX_EPOS=%FHMAX_EPOS% -export FHOUT_EPOS=%FHOUT_EPOS% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGDAS_ENKF_POST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f004.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f004.ecf deleted file mode 100755 index eff90bc45f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f004.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 80 -#BSUB -R affinity[core(7)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHMIN_EPOS=%FHMIN_EPOS% -export FHMAX_EPOS=%FHMAX_EPOS% -export FHOUT_EPOS=%FHOUT_EPOS% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGDAS_ENKF_POST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f005.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f005.ecf deleted file mode 100755 index eff90bc45f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f005.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 80 -#BSUB -R affinity[core(7)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHMIN_EPOS=%FHMIN_EPOS% -export FHMAX_EPOS=%FHMAX_EPOS% -export FHOUT_EPOS=%FHOUT_EPOS% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGDAS_ENKF_POST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f006.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f006.ecf deleted file mode 100755 index eff90bc45f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f006.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 80 -#BSUB -R affinity[core(7)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHMIN_EPOS=%FHMIN_EPOS% -export FHMAX_EPOS=%FHMAX_EPOS% -export FHOUT_EPOS=%FHOUT_EPOS% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGDAS_ENKF_POST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f007.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f007.ecf deleted file mode 100755 index eff90bc45f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f007.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 80 -#BSUB -R affinity[core(7)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHMIN_EPOS=%FHMIN_EPOS% -export FHMAX_EPOS=%FHMAX_EPOS% -export FHOUT_EPOS=%FHOUT_EPOS% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGDAS_ENKF_POST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f008.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f008.ecf deleted file mode 100755 index eff90bc45f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f008.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 80 -#BSUB -R affinity[core(7)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHMIN_EPOS=%FHMIN_EPOS% -export FHMAX_EPOS=%FHMAX_EPOS% -export FHOUT_EPOS=%FHOUT_EPOS% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGDAS_ENKF_POST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f009.ecf b/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f009.ecf deleted file mode 100755 index eff90bc45f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/enkf/post/jgdas_enkf_post_f009.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_enkf_post_f%FHOUT_EPOS%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_enkf_post_f%FHOUT_EPOS%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 80 -#BSUB -R affinity[core(7)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHMIN_EPOS=%FHMIN_EPOS% -export FHMAX_EPOS=%FHMAX_EPOS% -export FHOUT_EPOS=%FHOUT_EPOS% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGDAS_ENKF_POST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/forecast/jgdas_forecast_high.ecf b/ecflow/ecf/scripts/gdas_FV3/forecast/jgdas_forecast_high.ecf deleted file mode 100755 index 28ac6ff13e..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/forecast/jgdas_forecast_high.ecf +++ /dev/null @@ -1,57 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_forecast_high_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_forecast_high_%CYC%.o%J -#BSUB -W 0:25 -#BSUB -n 336 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_FORECAST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/gempak/jgdas_gempak.ecf b/ecflow/ecf/scripts/gdas_FV3/gempak/jgdas_gempak.ecf deleted file mode 100755 index f39728d23d..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/gempak/jgdas_gempak.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_gempak_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_gempak_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 2 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -export model=gdas -${HOMEgfs}/jobs/JGDAS_GEMPAK - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/gempak/jgdas_gempak_meta_ncdc.ecf b/ecflow/ecf/scripts/gdas_FV3/gempak/jgdas_gempak_meta_ncdc.ecf deleted file mode 100755 index 128eeb6dcc..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/gempak/jgdas_gempak_meta_ncdc.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_gempak_meta_ncdc_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_gempak_meta_ncdc_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 2 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gdas% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_GEMPAK_META_NCDC - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/gempak_20190514/jgdas_gempak.ecf b/ecflow/ecf/scripts/gdas_FV3/gempak_20190514/jgdas_gempak.ecf deleted file mode 100755 index e9ccfec1e9..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/gempak_20190514/jgdas_gempak.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_gempak_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_gempak_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 2 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -export model=gdas -${HOMEgfs}/jobs/JGDAS_GEMPAK - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/gempak_20190514/jgdas_gempak_meta_ncdc.ecf b/ecflow/ecf/scripts/gdas_FV3/gempak_20190514/jgdas_gempak_meta_ncdc.ecf deleted file mode 100755 index cd0bebeb50..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/gempak_20190514/jgdas_gempak_meta_ncdc.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_gempak_meta_ncdc_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_gempak_meta_ncdc_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 2 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gdas% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_GEMPAK_META_NCDC - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/jgdas_verfrad.ecf b/ecflow/ecf/scripts/gdas_FV3/jgdas_verfrad.ecf deleted file mode 100755 index 3a1a8bf35e..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/jgdas_verfrad.ecf +++ /dev/null @@ -1,50 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_verfrad_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_verfrad_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGDAS_VERFRAD - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/jgdas_vminmon.ecf b/ecflow/ecf/scripts/gdas_FV3/jgdas_vminmon.ecf deleted file mode 100755 index 71a1536cfe..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/jgdas_vminmon.ecf +++ /dev/null @@ -1,52 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_vminmon_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_vminmon_%CYC%.o%J -#BSUB -W 0:05 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gdas% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load pm5/$pm5_ver -module load ips/$ips_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGDAS_VMINMON - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_anl.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_anl.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_anl.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f000.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f000.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f000.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f001.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f001.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f001.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f002.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f002.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f002.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f003.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f003.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f003.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f004.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f004.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f004.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f005.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f005.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f005.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f006.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f006.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f006.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f007.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f007.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f007.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f008.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f008.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f008.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f009.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f009.ecf deleted file mode 100755 index db61ca3bb8..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_f009.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_%FHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHR=%FHR% -export post_times=%HR% -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_manager.ecf b/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_manager.ecf deleted file mode 100755 index 70bc45b8b4..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post/jgdas_post_manager.ecf +++ /dev/null @@ -1,50 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_post_manager_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_post_manager_%CYC%.o%J -#BSUB -W 1:15 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_POST_MANAGER - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/post_processing/bulletins/jgdas_mknavybulls.ecf b/ecflow/ecf/scripts/gdas_FV3/post_processing/bulletins/jgdas_mknavybulls.ecf deleted file mode 100755 index a67839245f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/post_processing/bulletins/jgdas_mknavybulls.ecf +++ /dev/null @@ -1,56 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_mknavybulls_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_mknavybulls_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gdas% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGDAS_BULLS_NAVY - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_emcsfc_sfc_prep.ecf b/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_emcsfc_sfc_prep.ecf deleted file mode 100755 index d2d1247f41..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_emcsfc_sfc_prep.ecf +++ /dev/null @@ -1,52 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gdas_emcsfc_sfc_prep_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_emcsfc_sfc_prep_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export SCRgfs=${HOMEgfs}/scripts - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_EMCSFC_SFC_PREP - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_prep.ecf b/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_prep.ecf deleted file mode 100755 index a9fc222c67..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_prep.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#BSUB -J %E%%RUN%_prep_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_prep_%CYC%.o%J -#BSUB -cwd /tmp -#BSUB -q %QUEUE% -#BSUB -L /bin/sh -#BSUB -P %PROJ% -#BSUB -W 00:20 -#BSUB -R span[ptile=3]; -R affinity[core] -#BSUB -n 3 -#BSUB -M 18000 - -%include -%include - -export NODES=1 - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -#. $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x - -export cyc=%CYC% - -# CALL executable job script here -${HOMEobsproc_global}/jobs/JGLOBAL_PREP - -%include -%manual -###################################################################### -# Purpose: -# -# -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_prep_post.ecf b/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_prep_post.ecf deleted file mode 100755 index cff57bb245..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_prep_post.ecf +++ /dev/null @@ -1,60 +0,0 @@ -#BSUB -J %E%%RUN%_prep_post_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_prep_post_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q %QUEUESERV% -#BSUB -cwd /tmp -##BSUB -W 00:30 -#BSUB -W 00:15 -#BSUB -P %PROJ% -#BSUB -M 1000 -#BSUB -R affinity[core] - -%include -%include - -set -x - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -#. $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x -export cyc=%CYC% - -#export PROCESS_ALL_REPORT_COUNTS=NO - -# CALL executable job script here -$HOMEobsproc_global/jobs/JGLOBAL_PREP_POST - -%include -%manual -###################################################################### -# Purpose: Job to execute the GFS PREPBUFR post-processing for -# the 00Z cycle (creating unrestricted PREPBUFR files) -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end - diff --git a/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_prep_post.ecf.18z b/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_prep_post.ecf.18z deleted file mode 100755 index 750cf386c7..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/prep/jgdas_prep_post.ecf.18z +++ /dev/null @@ -1,60 +0,0 @@ -#BSUB -J %E%gdas_prep_post_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gdas_prep_post_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q %QUEUESERV% -#BSUB -cwd /tmp -#BSUB -W 00:30 -#BSUB -P %PROJ% -#BSUB -M 1000 -##BSUB -extsched 'CRAYLINUX[]' - -%include -%include - -set -x -export NODES=1 - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -. $MODULESHOME/init/sh -module load cfp-intel-sandybridge/${cfp_intel_sandybridge_ver} -module load grib_util/${grib_util_ver} -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here -set -x -export cyc=%CYC% - -#export PROCESS_ALL_REPORT_COUNTS=NO - -export REBUILD_MAINPAGE=YES -export monsummary_dat=$PDY - -# CALL executable job script here -$HOMEobsproc_global/jobs/JGDAS_PREP_POST - -%include -%manual -###################################################################### -# Purpose: Job to execute the GFS PREPBUFR post-processing for -# the 00Z cycle (creating unrestricted PREPBUFR files) -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end - diff --git a/ecflow/ecf/scripts/gdas_FV3/prep/jglobal_prep.ecf b/ecflow/ecf/scripts/gdas_FV3/prep/jglobal_prep.ecf deleted file mode 100755 index 0c7097fd96..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/prep/jglobal_prep.ecf +++ /dev/null @@ -1,60 +0,0 @@ -#BSUB -J %E%%RUN%_prep_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_prep_%CYC%.o%J -#BSUB -cwd /tmp -#BSUB -q %QUEUE% -#BSUB -L /bin/sh -#BSUB -P %PROJ% -##BSUB -W 00:30 -#BSUB -W 00:35 -#BSUB -R span[ptile=3]; -R affinity[core] -#BSUB -n 3 -#BSUB -M 18000 - -%include -%include - -export NODES=1 - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -#. $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x - -export cyc=%CYC% - -# CALL executable job script here -${HOMEobsproc_global}/jobs/JGLOBAL_PREP - -%include -%manual -###################################################################### -# Purpose: -# -# -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gdas_FV3/prep/jglobal_prep_post.ecf b/ecflow/ecf/scripts/gdas_FV3/prep/jglobal_prep_post.ecf deleted file mode 100755 index 31ec73452f..0000000000 --- a/ecflow/ecf/scripts/gdas_FV3/prep/jglobal_prep_post.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#BSUB -J %E%%RUN%_prep_post_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_prep_post_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q %QUEUESERV% -#BSUB -cwd /tmp -##BSUB -W 00:30 -#BSUB -W 00:15 -#BSUB -P %PROJ% -#BSUB -M 1000 - -%include -%include - -set -x - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -#. $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x -export cyc=%CYC% - -#export PROCESS_ALL_REPORT_COUNTS=NO - -# CALL executable job script here -$HOMEobsproc_global/jobs/JGLOBAL_PREP_POST - -%include -%manual -###################################################################### -# Purpose: Job to execute the GFS PREPBUFR post-processing for -# the 00Z cycle (creating unrestricted PREPBUFR files) -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end - diff --git a/ecflow/ecf/scripts/gfs/atmos/analysis/jgfs_atmos_analysis.ecf b/ecflow/ecf/scripts/gfs/atmos/analysis/jgfs_atmos_analysis.ecf new file mode 100755 index 0000000000..0e34711b10 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/analysis/jgfs_atmos_analysis.ecf @@ -0,0 +1,83 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_analysis_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_analysis_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:40 +#BSUB -n 1000 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=250 +export ntasks=1000 +export ptile=4 +export threads=7 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +export model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load python/${python_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load grib_util/${grib_util_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export KMP_AFFINITY=scatter +export OMP_NUM_THREADS=$threads +export FORT_BUFFERED=true +export OMP_NUM_THREADS_CY=28 +export NTHREADS=$OMP_NUM_THREADS_CY +export NTHREADS_GSI=$threads + +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export PREINP='' + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_ATMOS_ANALYSIS + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/analysis/jgfs_atmos_analysis_calc.ecf b/ecflow/ecf/scripts/gfs/atmos/analysis/jgfs_atmos_analysis_calc.ecf new file mode 100755 index 0000000000..49164823f2 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/analysis/jgfs_atmos_analysis_calc.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_analysis_calc_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_analysis_calc_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 140 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=5 +export ntasks=140 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load python/${python_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak.ecf b/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak.ecf new file mode 100755 index 0000000000..2732985eaf --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak.ecf @@ -0,0 +1,57 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_gempak_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_gempak_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 3:00 +#BSUB -n 24 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=12] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} +module load gempak/$gempak_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_GEMPAK + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak_meta.ecf b/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak_meta.ecf new file mode 100755 index 0000000000..58b890a4c4 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak_meta.ecf @@ -0,0 +1,56 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_gempak_meta_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_gempak_meta_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 3:00 +#BSUB -n 28 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=14] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} +module load gempak/$gempak_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_GEMPAK_META + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak_ncdc_upapgif.ecf b/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak_ncdc_upapgif.ecf new file mode 100755 index 0000000000..849783dbb4 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak_ncdc_upapgif.ecf @@ -0,0 +1,55 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_gempak_upapgif_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_gempak_upapgif_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 2:00 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} +module load gempak/$gempak_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_npoess_pgrb2_0p5deg.ecf b/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_npoess_pgrb2_0p5deg.ecf new file mode 100755 index 0000000000..23a139b81f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_npoess_pgrb2_0p5deg.ecf @@ -0,0 +1,55 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_npoess_pgrb2_0p5deg_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_npoess_pgrb2_0p5deg_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 2:00 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_pgrb2_spec_gempak.ecf b/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_pgrb2_spec_gempak.ecf new file mode 100755 index 0000000000..3ea1050a01 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/gempak/jgfs_atmos_pgrb2_spec_gempak.ecf @@ -0,0 +1,56 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_pgrb2_spec_gempak_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_pgrb2_spec_gempak_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:30 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} +module load gempak/$gempak_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_dump.ecf b/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_dump.ecf new file mode 100755 index 0000000000..7555a94f4d --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_dump.ecf @@ -0,0 +1,62 @@ +#BSUB -J %E%%RUN%_atmos_dump_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_atmos_dump_%CYC%.o%J +#BSUB -cwd /tmp +#BSUB -q %QUEUE% +#BSUB -W 00:20 +#BSUB -P %PROJ% +#BSUB -n 14 +#BSUB -R span[ptile=14] +#BSUB -R affinity[core(1):distribute=balance] + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +export model=obsproc_global +%include + +############################################################# +## Load modules +############################################################## +module load ips/$ips_ver +module load impi/$impi_ver +module load CFP/$CFP_ver + +module load grib_util/${grib_util_ver} +module list + +############################################################# +## WCOSS_C environment settings +############################################################## + +################################################ +# EXPORT list here + +set -x +export cyc=%CYC% +export COMPONENT=${COMPONENT:-atmos} + +# CALL executable job script here +${HOMEobsproc_global}/jobs/JGLOBAL_DUMP + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_dump_alert.ecf b/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_dump_alert.ecf new file mode 100755 index 0000000000..306a3f3321 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_dump_alert.ecf @@ -0,0 +1,51 @@ +#BSUB -J %E%gfs_atmos_dump_alert_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_dump_alert_%CYC%.o%J +#BSUB -q %QUEUESERV% +#BSUB -R rusage[mem=1000] +#BSUB -R affinity[core] +#BSUB -cwd /tmp +#BSUB -W 00:05 +#BSUB -P %PROJ% + +%include +%include + +set -x + +export model=obsproc_dump_alert +%include + +############################################################# +# Load modules +############################################################# +. $MODULESHOME/init/sh +module list + +############################################################# +# WCOSS environment settings +############################################################# + +# EXPORT list here +set -x +export cyc=%CYC% +export NET=gfs +export RUN=gfs + +# CALL executable job script here +$HOMEobsproc_dump_alert/jobs/JDUMP_ALERT + +%include +%manual +###################################################################### +# Purpose: Job to execute the gfs data dump alert processing for the +# 00Z cycle +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_dump_post.ecf b/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_dump_post.ecf new file mode 100755 index 0000000000..47f8ccaf2b --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_dump_post.ecf @@ -0,0 +1,62 @@ +#BSUB -J %E%%RUN%_atmos_dump_post_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_atmos_dump_post_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -cwd /tmp +#BSUB -W 00:15 +#BSUB -P %PROJ% +#BSUB -n 14 +#BSUB -R span[ptile=14] +#BSUB -R affinity[core(1):distribute=balance] + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +export model=obsproc_global +%include + +############################################################# +## Load modules +############################################################## +# . $MODULESHOME/init/sh +module load ips/$ips_ver +module load impi/$impi_ver +module load CFP/$CFP_ver +module list + +############################################################# +## WCOSS_C environment settings +############################################################## + +################################################ +# EXPORT list here + +set -x +export cyc=%CYC% +export COMPONENT=${COMPONENT:-atmos} + +# CALL executable job script here +$HOMEobsproc_global/jobs/JGLOBAL_DUMP_POST + +%include +%manual +###################################################################### +# Purpose: Job to execute the gfs data dump post-processing for the +# 00Z cycle (listing contents of dump files; conversion +# of dump file format) +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end + diff --git a/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_tropcy_qc_reloc.ecf b/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_tropcy_qc_reloc.ecf new file mode 100755 index 0000000000..6d952cc452 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/obsproc/dump/jgfs_atmos_tropcy_qc_reloc.ecf @@ -0,0 +1,59 @@ +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -J %E%gfs_atmos_tropcy_qc_reloc_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_tropcy_qc_reloc_%CYC%.o%J +#BSUB -W 0:05 +#BSUB -L /bin/sh +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +# Configuration files +export EXPDIR=${HOMEgfs}/parm/config + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load ips/$ips_ver +module load impi/$impi_ver +module load CFP/$CFP_ver +module load grib_util/$grib_util_ver + +module list + +export USE_CFP=YES +export PROCESS_TROPCY=YES +export DO_RELOCATE=YES +#export ROTDIR=%COM%/$NET/$envir +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/obsproc/prep/jgfs_atmos_emcsfc_sfc_prep.ecf b/ecflow/ecf/scripts/gfs/atmos/obsproc/prep/jgfs_atmos_emcsfc_sfc_prep.ecf new file mode 100755 index 0000000000..201f06f3db --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/obsproc/prep/jgfs_atmos_emcsfc_sfc_prep.ecf @@ -0,0 +1,52 @@ +#BSUB -J %E%gfs_atmos_emcsfc_sfc_prep_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_emcsfc_sfc_prep_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -L /bin/sh +#BSUB -W 0:07 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load grib_util/$grib_util_ver + +module list + +#%include +export USE_CFP=YES +#export ROTDIR=%COM%/$NET/$envir +export cyc=%CYC% +export cycle=t%CYC%z +# JY 10/20 export SCRgfs=${HOMEgfs}/scripts + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/obsproc/prep/jgfs_atmos_prep.ecf b/ecflow/ecf/scripts/gfs/atmos/obsproc/prep/jgfs_atmos_prep.ecf new file mode 100755 index 0000000000..ce13a514de --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/obsproc/prep/jgfs_atmos_prep.ecf @@ -0,0 +1,69 @@ +#BSUB -J %E%%RUN%_atmos_prep_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_atmos_prep_%CYC%.o%J +#BSUB -cwd /tmp +#BSUB -q %QUEUE% +#BSUB -L /bin/sh +#BSUB -P %PROJ% +#BSUB -W 00:20 +#BSUB -R span[ptile=2]; -R affinity[core(1)] +#BSUB -n 4 + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=obsproc_global +%include + +############################################################# +## Load modules +############################################################## +# JY module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +#module load HDF5-parallel/${hdf5_parallel_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} + +module list + +############################################################# +## WCOSS_C environment settings +############################################################## +# export BACK="NO" +# export POE="YES" +export COMPONENT=${COMPONENT:-atmos} +export cyc=%CYC% + +# Not sure if need the following , comment them now - JY 10/20 +#export DO_MAKEPREPBUFR=YES +#export ROTDIR_DUMP=YES +#export OPREFIX=$CDUMP.t${cyc}z. +#export EXPDIR="$HOMEgfs/parm/config" +#export ROTDIR=%COM%/$NET/$envir +#export CDATE=${PDY}${cyc} + +set -x + +${HOMEobsproc_global}/jobs/JGLOBAL_PREP + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/obsproc/prep/jgfs_atmos_prep_post.ecf b/ecflow/ecf/scripts/gfs/atmos/obsproc/prep/jgfs_atmos_prep_post.ecf new file mode 100755 index 0000000000..fef4780381 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/obsproc/prep/jgfs_atmos_prep_post.ecf @@ -0,0 +1,59 @@ +#BSUB -J %E%%RUN%_atmos_prep_post_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_atmos_prep_post_%CYC%.o%J +#BSUB -q %QUEUESERV% +#BSUB -cwd /tmp +#BSUB -W 00:05 +#BSUB -P %PROJ% +#BSUB -M 1000 +#BSUB -R affinity[core] + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +export model=obsproc_global +%include + +############################################################# +## Load modules +############################################################## +module load ips/$ips_ver +module load impi/$impi_ver +module load CFP/$CFP_ver +module list + +############################################################# +## WCOSS_C environment settings +############################################################## + +################################################ +# EXPORT list here + +set -x +export cyc=%CYC% +export COMPONENT=${COMPONENT:-atmos} + +# CALL executable job script here +$HOMEobsproc_global/jobs/JGLOBAL_PREP_POST + +%include +%manual +###################################################################### +# Purpose: Job to execute the GFS PREPBUFR post-processing for +# the 00Z cycle (creating unrestricted PREPBUFR files) +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end + diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_anl.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_anl.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_anl.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f000.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f000.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f000.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f001.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f001.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f001.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f002.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f002.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f002.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f003.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f003.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f003.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f004.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f004.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f004.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f005.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f005.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f005.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f006.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f006.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f006.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f007.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f007.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f007.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f008.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f008.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f008.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f009.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f009.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f009.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f010.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f010.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f010.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f011.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f011.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f011.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f012.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f012.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f012.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f013.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f013.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f013.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f014.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f014.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f014.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f015.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f015.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f015.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f016.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f016.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f016.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f017.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f017.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f017.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f018.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f018.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f018.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f019.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f019.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f019.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f020.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f020.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f020.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f021.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f021.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f021.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f022.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f022.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f022.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f023.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f023.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f023.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f024.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f024.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f024.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f025.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f025.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f025.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f026.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f026.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f026.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f027.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f027.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f027.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f028.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f028.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f028.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f029.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f029.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f029.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f030.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f030.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f030.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f031.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f031.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f031.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f032.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f032.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f032.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f033.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f033.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f033.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f034.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f034.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f034.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f035.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f035.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f035.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f036.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f036.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f036.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f037.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f037.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f037.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f038.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f038.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f038.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f039.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f039.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f039.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f040.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f040.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f040.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f041.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f041.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f041.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f042.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f042.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f042.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f043.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f043.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f043.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f044.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f044.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f044.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f045.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f045.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f045.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f046.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f046.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f046.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f047.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f047.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f047.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f048.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f048.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f048.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f049.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f049.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f049.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f050.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f050.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f050.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f051.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f051.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f051.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f052.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f052.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f052.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f053.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f053.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f053.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f054.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f054.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f054.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f055.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f055.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f055.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f056.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f056.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f056.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f057.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f057.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f057.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f058.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f058.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f058.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f059.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f059.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f059.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f060.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f060.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f060.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f061.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f061.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f061.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f062.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f062.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f062.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f063.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f063.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f063.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f064.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f064.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f064.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f065.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f065.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f065.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f066.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f066.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f066.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f067.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f067.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f067.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f068.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f068.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f068.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f069.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f069.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f069.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f070.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f070.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f070.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f071.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f071.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f071.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f072.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f072.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f072.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f073.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f073.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f073.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f074.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f074.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f074.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f075.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f075.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f075.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f076.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f076.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f076.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f077.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f077.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f077.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f078.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f078.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f078.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f079.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f079.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f079.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f080.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f080.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f080.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f081.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f081.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f081.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f082.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f082.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f082.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f083.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f083.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f083.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f084.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f084.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f084.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f085.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f085.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f085.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f086.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f086.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f086.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f087.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f087.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f087.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f088.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f088.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f088.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f089.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f089.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f089.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f090.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f090.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f090.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f091.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f091.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f091.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f092.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f092.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f092.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f093.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f093.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f093.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f094.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f094.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f094.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f095.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f095.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f095.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f096.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f096.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f096.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f097.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f097.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f097.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f098.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f098.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f098.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f099.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f099.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f099.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f100.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f100.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f100.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f101.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f101.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f101.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f102.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f102.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f102.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f103.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f103.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f103.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f104.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f104.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f104.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f105.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f105.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f105.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f106.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f106.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f106.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f107.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f107.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f107.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f108.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f108.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f108.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f109.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f109.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f109.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f110.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f110.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f110.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f111.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f111.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f111.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f112.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f112.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f112.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f113.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f113.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f113.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f114.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f114.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f114.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f115.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f115.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f115.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f116.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f116.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f116.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f117.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f117.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f117.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f118.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f118.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f118.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f119.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f119.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f119.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f120.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f120.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f120.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f123.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f123.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f123.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f126.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f126.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f126.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f129.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f129.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f129.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f132.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f132.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f132.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f135.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f135.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f135.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f138.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f138.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f138.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f141.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f141.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f141.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f144.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f144.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f144.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f147.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f147.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f147.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f150.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f150.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f150.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f153.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f153.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f153.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f156.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f156.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f156.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f159.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f159.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f159.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f162.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f162.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f162.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f165.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f165.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f165.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f168.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f168.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f168.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f171.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f171.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f171.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f174.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f174.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f174.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f177.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f177.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f177.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f180.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f180.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f180.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f183.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f183.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f183.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f186.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f186.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f186.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f189.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f189.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f189.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f192.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f192.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f192.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f195.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f195.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f195.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f198.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f198.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f198.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f201.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f201.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f201.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f204.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f204.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f204.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f207.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f207.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f207.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f210.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f210.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f210.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f213.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f213.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f213.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f216.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f216.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f216.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f219.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f219.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f219.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f222.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f222.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f222.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f225.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f225.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f225.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f228.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f228.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f228.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f231.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f231.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f231.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f234.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f234.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f234.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f237.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f237.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f237.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f240.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f240.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f240.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f243.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f243.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f243.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f246.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f246.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f246.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f249.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f249.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f249.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f252.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f252.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f252.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f255.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f255.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f255.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f258.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f258.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f258.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f261.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f261.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f261.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f264.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f264.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f264.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f267.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f267.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f267.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f270.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f270.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f270.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f273.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f273.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f273.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f276.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f276.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f276.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f279.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f279.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f279.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f282.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f282.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f282.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f285.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f285.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f285.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f288.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f288.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f288.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f291.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f291.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f291.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f294.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f294.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f294.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f297.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f297.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f297.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f300.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f300.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f300.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f303.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f303.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f303.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f306.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f306.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f306.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f309.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f309.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f309.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f312.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f312.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f312.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f315.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f315.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f315.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f318.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f318.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f318.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f321.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f321.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f321.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f324.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f324.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f324.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f327.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f327.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f327.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f330.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f330.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f330.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f333.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f333.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f333.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f336.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f336.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f336.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f339.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f339.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f339.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f342.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f342.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f342.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f345.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f345.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f345.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f348.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f348.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f348.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f351.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f351.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f351.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f354.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f354.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f354.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f357.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f357.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f357.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f360.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f360.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f360.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f363.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f363.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f363.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f366.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f366.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f366.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f369.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f369.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f369.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f372.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f372.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f372.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f375.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f375.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f375.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f378.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f378.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f378.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f381.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f381.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f381.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f384.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f384.ecf new file mode 100755 index 0000000000..f2a37b6727 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_f384.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_%FHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_%FHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:20 +#BSUB -n 112 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=28] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=4 +export ntasks=112 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export FHR=%FHR% +export post_times=%HR% + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load crtm/${crtm_ver} +module load g2tmpl/${g2tmpl_ver} +module list + +############################################################# +# WCOSS environment settings +############################################################# +export FHR=%FHR% +export post_times=%HR% +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export g2tmpl_ver=v${g2tmpl_ver} + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_manager.ecf b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_manager.ecf new file mode 100755 index 0000000000..9a0beaae9e --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post/jgfs_atmos_post_manager.ecf @@ -0,0 +1,55 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_post_manager_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_post_manager_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 4:00 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} + +module list + +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_ATMOS_POST_MANAGER + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f000.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f000.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f000.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f003.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f003.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f003.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f006.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f006.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f006.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f009.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f009.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f009.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f012.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f012.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f012.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f015.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f015.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f015.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f018.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f018.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f018.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f021.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f021.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f021.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f024.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f024.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f024.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f027.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f027.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f027.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f030.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f030.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f030.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f033.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f033.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f033.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f036.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f036.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f036.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f039.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f039.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f039.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f042.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f042.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f042.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f045.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f045.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f045.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f048.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f048.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f048.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f051.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f051.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f051.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f054.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f054.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f054.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f057.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f057.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f057.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f060.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f060.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f060.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f063.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f063.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f063.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f066.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f066.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f066.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f069.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f069.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f069.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f072.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f072.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f072.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f075.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f075.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f075.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f078.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f078.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f078.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f081.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f081.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f081.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f084.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f084.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f084.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f090.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f090.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f090.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f096.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f096.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f096.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f102.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f102.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f102.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f108.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f108.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f108.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f114.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f114.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f114.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f120.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f120.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f120.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f126.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f126.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f126.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f132.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f132.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f132.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f138.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f138.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f138.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f144.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f144.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f144.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f150.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f150.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f150.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f156.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f156.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f156.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f162.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f162.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f162.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f168.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f168.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f168.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f174.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f174.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f174.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f180.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f180.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f180.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f186.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f186.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f186.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f192.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f192.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f192.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f198.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f198.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f198.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f204.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f204.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f204.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f210.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f210.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f210.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f216.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f216.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f216.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f222.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f222.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f222.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f228.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f228.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f228.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f234.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f234.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f234.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f240.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f240.ecf new file mode 100755 index 0000000000..4cdf02407f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_20km_1p0/jgfs_atmos_awips_f240.ecf @@ -0,0 +1,58 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:10 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% +export job=jgfs_awips_f%FCSTHR%_%CYC% + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f000.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f000.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f000.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f003.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f003.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f003.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f006.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f006.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f006.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f009.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f009.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f009.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f012.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f012.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f012.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f015.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f015.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f015.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f018.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f018.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f018.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f021.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f021.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f021.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f024.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f024.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f024.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f027.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f027.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f027.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f030.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f030.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f030.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f033.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f033.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f033.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f036.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f036.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f036.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f039.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f039.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f039.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f042.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f042.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f042.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f045.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f045.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f045.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f048.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f048.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f048.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f051.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f051.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f051.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f054.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f054.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f054.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f057.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f057.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f057.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f060.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f060.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f060.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f063.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f063.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f063.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f066.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f066.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f066.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f069.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f069.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f069.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f072.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f072.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f072.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f075.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f075.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f075.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f078.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f078.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f078.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f081.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f081.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f081.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f084.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f084.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f084.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f090.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f090.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f090.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f096.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f096.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f096.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f102.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f102.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f102.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f108.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f108.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f108.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f114.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f114.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f114.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f120.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f120.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f120.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f126.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f126.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f126.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f132.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f132.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f132.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f138.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f138.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f138.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f144.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f144.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f144.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f150.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f150.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f150.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f156.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f156.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f156.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f162.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f162.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f162.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f168.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f168.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f168.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f174.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f174.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f174.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f180.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f180.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f180.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f186.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f186.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f186.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f192.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f192.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f192.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f198.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f198.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f198.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f204.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f204.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f204.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f210.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f210.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f210.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f216.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f216.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f216.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f222.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f222.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f222.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f228.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f228.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f228.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f234.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f234.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f234.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f240.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f240.ecf new file mode 100755 index 0000000000..91b0c7073f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/awips_g2/jgfs_atmos_awips_g2_f240.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_awips_g2_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_awips_g2_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUESHARED% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -M 1000 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export FHRGRP=%FHRGRP% +export FHRLST=%FHRLST% +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +trdrun=%TRDRUN% +export job="jgfs_awips_f${fcsthrs}_${cyc}" + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 + +############################################################### + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/bufr_sounding/jgfs_atmos_postsnd.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/bufr_sounding/jgfs_atmos_postsnd.ecf new file mode 100755 index 0000000000..e6a5e78ec9 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/bufr_sounding/jgfs_atmos_postsnd.ecf @@ -0,0 +1,64 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_postsnd_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_postsnd_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 2:00 +#BSUB -n 40 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=5] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=8 +export ntasks=40 +export ptile=5 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/${impi_ver} +module load lsf/${lsf_ver} +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} +module load python/${python_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load gempak/${gempak_ver} + + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_POSTSND + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/bulletins/jgfs_atmos_fbwind.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/bulletins/jgfs_atmos_fbwind.ecf new file mode 100755 index 0000000000..da4359f781 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/bulletins/jgfs_atmos_fbwind.ecf @@ -0,0 +1,60 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_fbwind_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_fbwind_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver +module load CFP/${CFP_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_FBWIND + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_blending.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_blending.ecf new file mode 100755 index 0000000000..dcbb7fb9dc --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_blending.ecf @@ -0,0 +1,60 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_blending_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_blending_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:30 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/${impi_ver} +module load lsf/${lsf_ver} +module load grib_util/${grib_util_ver} +module load util_shared/${util_shared_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS_BLENDING + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_blending_0p25.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_blending_0p25.ecf new file mode 100755 index 0000000000..e19693e090 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_blending_0p25.ecf @@ -0,0 +1,60 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_blending_0p25_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_blending_0p25_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:30 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/${grib_util_ver} +module load util_shared/${util_shared_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS_BLENDING_0P25 + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_grib2.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_grib2.ecf new file mode 100755 index 0000000000..5ae0749e45 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_grib2.ecf @@ -0,0 +1,70 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_grib2_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_grib2_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:30 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load CFP/${CFP_ver} +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS_GRIB2 +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_grib2_0p25.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_grib2_0p25.ecf new file mode 100755 index 0000000000..0c47dccb0a --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib2_wafs/jgfs_atmos_wafs_grib2_0p25.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_grib2_0p25_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_grib2_0p25_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:30 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS_GRIB2_0P25 +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f00.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f00.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f00.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f06.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f06.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f06.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f102.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f102.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f102.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f108.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f108.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f108.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f114.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f114.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f114.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f12.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f12.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f12.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f120.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f120.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f120.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f18.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f18.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f18.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f24.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f24.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f24.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f30.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f30.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f30.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f36.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f36.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f36.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f42.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f42.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f42.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f48.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f48.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f48.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f54.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f54.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f54.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f60.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f60.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f60.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f66.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f66.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f66.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f72.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f72.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f72.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f78.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f78.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f78.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f84.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f84.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f84.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f90.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f90.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f90.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f96.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f96.ecf new file mode 100755 index 0000000000..0296c5e2fb --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/grib_wafs/jgfs_atmos_wafs_f96.ecf @@ -0,0 +1,71 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_%FCSTHR%_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_%FCSTHR%_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +export fcsthrs=%FCSTHR% + +############################################################ +# Load modules +############################################################ +module load impi/$impi_ver +module load lsf/$lsf_ver +module load grib_util/$grib_util_ver + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/post_processing/jgfs_atmos_wafs_gcip.ecf b/ecflow/ecf/scripts/gfs/atmos/post_processing/jgfs_atmos_wafs_gcip.ecf new file mode 100755 index 0000000000..0399bc9be9 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/post_processing/jgfs_atmos_wafs_gcip.ecf @@ -0,0 +1,73 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_wafs_gcip_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_wafs_gcip_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:30 +#BSUB -n 2 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=2 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load bufr_dumplist/${bufr_dumplist_ver} +module load dumpjb/${dumpjb_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGFS_ATMOS_WAFS_GCIP + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: To execute the job that prepares initial condition for +# gdas. +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/atmos/verf/jgfs_atmos_vminmon.ecf b/ecflow/ecf/scripts/gfs/atmos/verf/jgfs_atmos_vminmon.ecf new file mode 100755 index 0000000000..3ef4782c44 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/atmos/verf/jgfs_atmos_vminmon.ecf @@ -0,0 +1,60 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_atmos_vminmon_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_atmos_vminmon_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 0:05 +#BSUB -n 1 +#BSUB -R affinity[core(1)] +#BSUB -R span[ptile=1] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/${lsf_ver} +module load pm5/${pm5_ver} +#module load metplus/${metplus_ver} +module load util_shared/${util_shared_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export VERBOSE=YES + +############################################################ +# CALL executable job script here +############################################################ +$HOMEgfs/jobs/JGFS_ATMOS_VMINMON + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/jgfs_forecast.ecf b/ecflow/ecf/scripts/gfs/jgfs_forecast.ecf new file mode 100755 index 0000000000..8fc18335e9 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/jgfs_forecast.ecf @@ -0,0 +1,63 @@ +#BSUB -L /bin/sh +#BSUB -J %E%gfs_forecast_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/gfs_forecast_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -W 2:30 +#BSUB -n 2424 +#BSUB -R affinity[core(7)] +#BSUB -R span[ptile=4] +#BSUB -cwd /tmp + +%include +%include + +set -x + +export NODES=606 +export ntasks=2424 +export ptile=4 +export threads=7 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +# Load modules +############################################################ +module load lsf/$lsf_ver +module load impi/$impi_ver +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load ESMF/${ESMF_ver} + +module list + +############################################################# +# WCOSS environment settings +############################################################# +export cyc=%CYC% +export cycle=t%CYC%z +export USE_CFP=YES + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_FORECAST + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual + +%end diff --git a/ecflow/ecf/scripts/gfs/wave/gempak/jgfs_wave_gempak.ecf b/ecflow/ecf/scripts/gfs/wave/gempak/jgfs_wave_gempak.ecf new file mode 100755 index 0000000000..c89cf5b1d6 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/wave/gempak/jgfs_wave_gempak.ecf @@ -0,0 +1,70 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_gempak_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_gempak_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 02:00 +#BSUB -R span[ptile=1]; -R affinity[core(1)] +#BSUB -n 1 + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load gempak/${gempak_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_GEMPAK + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/wave/init/jgfs_wave_init.ecf b/ecflow/ecf/scripts/gfs/wave/init/jgfs_wave_init.ecf new file mode 100755 index 0000000000..3644fe681b --- /dev/null +++ b/ecflow/ecf/scripts/gfs/wave/init/jgfs_wave_init.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_init_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_init_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 00:10 +#BSUB -R span[ptile=28]; -R affinity[core(1)] +#BSUB -n 28 + +%include +%include + +set -x + +export NODES=1 +export ntasks=28 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_INIT + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_post_bndpnt.ecf b/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_post_bndpnt.ecf new file mode 100755 index 0000000000..819ddd7798 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_post_bndpnt.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_post_bndpnt_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_post_bndpnt_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 01:00 +#BSUB -R span[ptile=28]; -R affinity[core(1)] +#BSUB -n 280 + +%include +%include + +set -x + +export NODES=10 +export ntasks=280 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_POST_BNDPNT + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_postpnt.ecf b/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_postpnt.ecf new file mode 100755 index 0000000000..e2325ed97f --- /dev/null +++ b/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_postpnt.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_postpnt_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_postpnt_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 01:30 +#BSUB -R span[ptile=28]; -R affinity[core] +#BSUB -n 280 + +%include +%include + +set -x + +export NODES=10 +export ntasks=280 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_POST_PNT + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_postsbs.ecf b/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_postsbs.ecf new file mode 100755 index 0000000000..f82f03966e --- /dev/null +++ b/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_postsbs.ecf @@ -0,0 +1,70 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_postsbs_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_postsbs_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 03:00 +#BSUB -R span[ptile=28]; -R affinity[core] +#BSUB -n 280 + +%include +%include + +set -x + +export NODES=10 +export ntasks=280 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_POST_SBS + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_prdgen_bulls.ecf b/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_prdgen_bulls.ecf new file mode 100755 index 0000000000..c4fe591341 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_prdgen_bulls.ecf @@ -0,0 +1,75 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_prdgen_bulls_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_prdgen_bulls_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 00:20 +#BSUB -R span[ptile=1]; -R affinity[core(1)] +#BSUB -n 1 + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} +module load bufr/${bufr_ver} +module load HDF5-serial/${HDF5_serial_ver} +module load NetCDF/${NetCDF_ver} +module load CFP/${CFP_ver} +module load util_shared/${util_shared_ver} +module load gempak/${gempak_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_PRDGEN_BULLS + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_prdgen_gridded.ecf b/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_prdgen_gridded.ecf new file mode 100755 index 0000000000..a608ee48ca --- /dev/null +++ b/ecflow/ecf/scripts/gfs/wave/post/jgfs_wave_prdgen_gridded.ecf @@ -0,0 +1,69 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_prdgen_gridded_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_prdgen_gridded_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 02:00 +#BSUB -R span[ptile=1]; -R affinity[core(1)] +#BSUB -n 1 + +%include +%include + +set -x + +export NODES=1 +export ntasks=1 +export ptile=1 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load grib_util/${grib_util_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs/wave/prep/jgfs_wave_prep.ecf b/ecflow/ecf/scripts/gfs/wave/prep/jgfs_wave_prep.ecf new file mode 100755 index 0000000000..fa45a661f1 --- /dev/null +++ b/ecflow/ecf/scripts/gfs/wave/prep/jgfs_wave_prep.ecf @@ -0,0 +1,74 @@ +#BSUB -L /bin/sh +#BSUB -J %E%%RUN%_wave_prep_%CYC% +#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_wave_prep_%CYC%.o%J +#BSUB -q %QUEUE% +#BSUB -P %PROJ% +#BSUB -cwd /tmp +#BSUB -W 00:30 +#BSUB -R span[ptile=28]; -R affinity[core] +#BSUB -n 84 + +%include +%include + +set -x + +export NODES=3 +export ntasks=84 +export ptile=28 +export threads=1 + +export NET=%NET:gfs% +export RUN=%RUN% +export CDUMP=%RUN% + +model=gfs +%include + +############################################################ +## Load modules +############################################################ +module load lsf/${lsf_ver} +module load impi/${impi_ver} +module load CFP/${CFP_ver} +module load grib_util/${grib_util_ver} +module load NCO/${NCO_ver} +module load NetCDF-parallel/${netcdf_parallel_ver} +module load HDF5-parallel/${hdf5_parallel_ver} +module load cdo/${cdo_ver} + +module list + +############################################################ +## WCOSS_C environment settings +############################################################ +export cyc=%CYC% +export cycle=t%CYC%z + +############################################################ +# CALL executable job script here +############################################################ +${HOMEgfs}/jobs/JGLOBAL_WAVE_PREP + +if [ $? -ne 0 ]; then + ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" + ecflow_client --abort + exit +fi + +%include +%manual +###################################################################### +# Purpose: +# +# +###################################################################### + +###################################################################### +# Job specific troubleshooting instructions: +# see generic troubleshoot manual page +# +###################################################################### + +# include manual page below +%end diff --git a/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_dump.ecf b/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_dump.ecf deleted file mode 100755 index 213c4f455e..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_dump.ecf +++ /dev/null @@ -1,61 +0,0 @@ -#BSUB -J %E%%RUN%_dump_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_dump_%CYC%.o%J -#BSUB -cwd /tmp -#BSUB -q %QUEUE% -##BSUB -W 00:20 -#BSUB -W 00:30 -#BSUB -L /bin/sh -#BSUB -P %PROJ% -#BSUB -n 14 -#BSUB -R span[ptile=14] -#BSUB -R affinity[core(1):distribute=balance] - -%include -%include - -set -x - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -#. $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver - -module load grib_util/${grib_util_ver} -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x -export cyc=%CYC% - -# CALL executable job script here -${HOMEobsproc_global}/jobs/JGLOBAL_DUMP - -%include -%manual -###################################################################### -# Purpose: -# -# -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_dump_alert.ecf b/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_dump_alert.ecf deleted file mode 100755 index c6f541b9fb..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_dump_alert.ecf +++ /dev/null @@ -1,52 +0,0 @@ -#BSUB -J %E%gfs_dump_alert_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_dump_alert_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q %QUEUESERV% -#BSUB -R rusage[mem=1000] -#BSUB -R affinity[core] -#BSUB -cwd /tmp -#BSUB -W 00:10 -#BSUB -P %PROJ% - -%include -%include - -set -x - -export model=obsproc_dump_alert -%include - -############################################################# -# Load modules -############################################################# -. $MODULESHOME/init/sh -module list - -############################################################# -# WCOSS environment settings -############################################################# - -# EXPORT list here -set -x -export cyc=%CYC% -export NET=gfs -export RUN=gfs - -# CALL executable job script here -$HOMEobsproc_dump_alert/jobs/JDUMP_ALERT - -%include -%manual -###################################################################### -# Purpose: Job to execute the gfs data dump alert processing for the -# 00Z cycle -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_dump_post.ecf b/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_dump_post.ecf deleted file mode 100755 index 1ba477972b..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_dump_post.ecf +++ /dev/null @@ -1,61 +0,0 @@ -#BSUB -J %E%%RUN%_dump_post_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_dump_post_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q %QUEUE% -#BSUB -cwd /tmp -#BSUB -W 00:15 -#BSUB -P %PROJ% -#BSUB -n 14 -#BSUB -R span[ptile=14] -#BSUB -R affinity[core(1):distribute=balance] - -%include -%include - -set -x - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -# . $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x -export cyc=%CYC% - -#export PROCESS_DATACOUNTS=NO - -# CALL executable job script here -$HOMEobsproc_global/jobs/JGLOBAL_DUMP_POST - -%include -%manual -###################################################################### -# Purpose: Job to execute the gfs data dump post-processing for the -# 00Z cycle (listing contents of dump files; conversion -# of dump file format) -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end - diff --git a/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_jtwc_bull_email.ecf b/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_jtwc_bull_email.ecf deleted file mode 100755 index cdc58e21d0..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_jtwc_bull_email.ecf +++ /dev/null @@ -1,53 +0,0 @@ -#BSUB -J %E%gfs_jtwc_bull_email_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_jtwc_bull_email_%CYC%.o%J -#BSUB -cwd /tmp -#BSUB -W 00:15 -#BSUB -R rusage[mem=500] -R affinity[core] -#BSUB -n 1 -#BSUB -q %QUEUESERV% -#BSUB -L /bin/sh -#BSUB -P %PROJ% - -%include -%include - -set -x - -export model=????? -%include - -############################################################# -## Load modules -############################################################## -. $MODULESHOME/init/sh -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here -set -x -export cyc=%CYC% -export NET=gfs -export RUN=gfs - -# CALL executable job script here -${NWROOTprod}/util_shared.${util_shared_ver}/jobs/JEMAIL_OUT - -%include -%manual -###################################################################### -# Purpose: To execute the job that prepares initial condition for -# gfs. -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_tropcy_qc_reloc.ecf b/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_tropcy_qc_reloc.ecf deleted file mode 100755 index 352428dff0..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/dump/jgfs_tropcy_qc_reloc.ecf +++ /dev/null @@ -1,60 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_tropcy_qc_reloc_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_tropcy_qc_reloc_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -# Configuration files -export EXPDIR=${HOMEgfs}/parm/config - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -export USE_CFP=YES -export PROCESS_TROPCY=YES -export DO_RELOCATE=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_TROPCY_QC_RELOC - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/dump/jmodel_realtime_gfs.ecf b/ecflow/ecf/scripts/gfs_FV3/dump/jmodel_realtime_gfs.ecf deleted file mode 100755 index 3ec5179eac..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/dump/jmodel_realtime_gfs.ecf +++ /dev/null @@ -1,53 +0,0 @@ -#BSUB -J %E%model_realtime_gfs_%CYC% -#BSUB -o /com/output/%ENVIR%/today/model_realtime_gfs_%CYC%.o%J -#BSUB -e /com/output/%ENVIR%/today/model_realtime_gfs_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q prod_serv2 -#BSUB -R rusage[mem=1000] -#BSUB -R affinity[core] -#BSUB -cwd /tmpnwprd -#BSUB -W 00:10 -#BSUB -R "span[ptile=8]" -#BSUB -n 16 -#BSUB -P %PROJ% -#BSUB -a poe - -%include -%include - -# EXPORT list here -set -x -export NET=gfs -export RUNM=gfs -export cyc=%CYC% - -export job=model_realtime_${NET}_${cyc} -export output=/com/output/${envir}/today/model_realtime_${NET}_${cyc} -export error=/com/output/${envir}/today/model_realtime_${NET}_${cyc} - -# CALL executable job script here - -VERSION_FILE=/nw${envir}/versions/models_realtime.ver -if [ -f $VERSION_FILE ]; then - . $VERSION_FILE -else - ecflow_client --msg="***JOB ${ECFNAME} ERROR: Version File $VERSION_FILE does not exist ***" - ecflow_client --abort - exit -fi - -/nw${envir}/models_realtime.${code_ver}/jobs/JMODELS_REALTIME - -%include -%manual -###################################################################### -# PURPOSE: To read the hourly and its monthly mean data dump counts and compares -# to the monthly averages. -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/forecast/jgfs_forecast_high.ecf b/ecflow/ecf/scripts/gfs_FV3/forecast/jgfs_forecast_high.ecf deleted file mode 100755 index f941e6e345..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/forecast/jgfs_forecast_high.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_forecast_high_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_forecast_high_%CYC%.o%J -#BSUB -W 3:00 -#BSUB -n 1776 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -# Configuration files -export EXPDIR=${HOMEgfs}/parm/config - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_FORECAST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/forecast/jgfs_forecast_high.usr b/ecflow/ecf/scripts/gfs_FV3/forecast/jgfs_forecast_high.usr deleted file mode 100644 index b926f71899..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/forecast/jgfs_forecast_high.usr +++ /dev/null @@ -1,192 +0,0 @@ -%comment - ecf user variables -COM = /gpfs/dell1/nco/ops/com -COMPATH: = -CYC = 12 -DBNLOG: = -E = t -ECF_LOGHOST = tecflow2 -ECF_VERSION = 4.7.1 -ENVIR = test -FILESYSTEM:dell1 = dell1 -KEEPDATA:NO = NO -MAILTO: = -NET:gfs = gfs -PDY: = 20190523 -PROJ = GFS-T2O -QUEUE = prod -RUN = gfs -SENDDBN:YES = YES -SENDDBN_NTC:YES = YES -prod_envir_ver = 1.0.3 -prod_util_ver = 1.1.0 -%end - ecf user variables -#! /bin/sh -#BSUB -q prod -#BSUB -P GFS-T2O -#BSUB -J tgfs_forecast_high_12 -#BSUB -o /gpfs/dell1/nco/ops/com/output/test/today/gfs_forecast_high_12.o%J -#BSUB -W 3:00 -#BSUB -n 6384 -#BSUB -R affinity[core(2)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -set -xe # print commands as they are executed and enable signal trapping - -export PS4='+ $SECONDS + ' - -# Variables needed for communication with ecFlow -export ECF_NAME=/test/WSC/gfs_FV3_12/forecast/jgfs_forecast_high -#export ECF_HOST=t14z1 -export ECF_HOST=tecflow2 -export ECF_PORT=31415 -export ECF_PASS=0RwK7D8y -export ECF_TRYNO=16 -export ECF_RID=$LSB_JOBID - -# Tell ecFlow we have started -# POST_OUT variable enables LSF post_exec to communicate with ecFlow -if [ -d /opt/modules ]; then - # WCOSS TO4 (Cray XC40) - . /opt/modules/default/init/sh - module load ecflow - POST_OUT=/gpfs/hps/tmpfs/ecflow/ecflow_post_in.$LSB_BATCH_JID -elif [ -d /usrx/local/Modules ]; then - # WCOSS Phase 1 & 2 (IBM iDataPlex) - . /usrx/local/Modules/default/init/sh - module load ecflow - POST_OUT=/var/lsf/ecflow_post_in.$LSB_BATCH_JID -else - # WCOSS Phase 3 (Dell PowerEdge) - . /usrx/local/prod/lmod/lmod/init/sh - module load ips/18.0.1.163 ecflow/4.7.1 - POST_OUT=/var/lsf/ecflow_post_in.$USER.$LSB_BATCH_JID -fi -ecflow_client --init=${ECF_RID} - -cat > $POST_OUT <>$POST_OUT - trap $1; exit $1 -} -# Trap all error and exit signals -trap 'ERROR $?' ERR EXIT - -# envir-p3.h -export job=${job:-$LSB_JOBNAME} #Can't use $job in filenames! -export jobid=${jobid:-$job.$LSB_JOBID} - -export RUN_ENVIR=${RUN_ENVIR:-nco} -export envir=test -export SENDDBN=${SENDDBN:-YES} -export SENDDBN_NTC=${SENDDBN_NTC:-YES} -FILESYSTEMROOT=/gpfs/dell1 - -module load prod_envir/1.0.3 prod_util/1.1.0 - -case $envir in - prod) - export DATAROOT=${DATAROOT:-${FILESYSTEMROOT}/nco/ops/tmpnwprd} - if [ "$SENDDBN" == "YES" ]; then - export DBNROOT=/iodprod_dell/dbnet_siphon - else - export DBNROOT=${UTILROOT}/fakedbn - fi - ;; - eval) - export envir=para - export DATAROOT=${DATAROOT:-${FILESYSTEMROOT}/nco/ops/tmpnwprd} - if [ "$SENDDBN" == "YES" ]; then - export DBNROOT=${UTILROOT}/para_dbn - SENDDBN_NTC=NO - else - export DBNROOT=${UTILROOT}/fakedbn - fi - ;; - para|test) - export DATAROOT=${DATAROOT:-${FILESYSTEMROOT}/nco/ops/tmpnwprd} - export DBNROOT=${UTILROOT}/fakedbn - ;; - *) - ecflow_client --abort="ENVIR must be prod, para, eval, or test [envir.h]" - exit - ;; -esac - -export COMROOT=${FILESYSTEMROOT}/nco/ops/com -export COREROOT=${FILESYSTEMROOT}/ptmp/production.core/$jobid -export NWROOT=/gpfs/dell1/nco/ops/nw${envir} -export SENDECF=${SENDECF:-YES} -export SENDCOM=${SENDCOM:-YES} -export KEEPDATA=${KEEPDATA:-NO} - -if [ -n "20190523" ]; then export PDY=${PDY:-20190523}; fi -if [ -n "" ]; then export COMPATH=${COMPATH:-}; fi -if [ -n "" ]; then export MAILTO=${MAILTO:-}; fi -if [ -n "" ]; then export DBNLOG=${DBNLOG:-}; fi - -set -x - -export NET=gfs -export RUN=gfs -export CDUMP=gfs - -model=gfs -. ${NWROOT:?}/versions/${model:?}.ver -eval export HOME${model}=${NWROOT}/${model}.\${${model}_ver:?} - -# Configuration files -export EXPDIR=${HOMEgfs}/parm/config - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load ESMF/$ESMF_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver - -module list - -export USE_CFP=YES -export ROTDIR=/gpfs/dell1/nco/ops/com -export cyc=12 -export cycle=t12z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_FORECAST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -ecflow_client --complete # Notify ecFlow of a normal end -trap 0 # Remove all traps -exit 0 # End the shell -%manual - -%end \ No newline at end of file diff --git a/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_gempak.ecf b/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_gempak.ecf deleted file mode 100755 index 81a18c7bd1..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_gempak.ecf +++ /dev/null @@ -1,57 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_gempak_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_gempak_%CYC%.o%J -#BSUB -W 3:00 -#BSUB -n 24 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_GEMPAK - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_gempak_meta.ecf b/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_gempak_meta.ecf deleted file mode 100755 index 8128434530..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_gempak_meta.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_gempak_meta_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_gempak_meta_%CYC%.o%J -#BSUB -W 3:00 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -# Configuration files - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_GEMPAK_META - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_gempak_ncdc_upapgif.ecf b/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_gempak_ncdc_upapgif.ecf deleted file mode 100755 index 6662d271c9..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_gempak_ncdc_upapgif.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_gempak_upapgif_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_gempak_upapgif_%CYC%.o%J -#BSUB -W 3:00 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export MODEL=GFS -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_GEMPAK_NCDC_UPAPGIF - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_npoess_pgrb2_0p5deg.ecf b/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_npoess_pgrb2_0p5deg.ecf deleted file mode 100755 index 7ded2d5ae1..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_npoess_pgrb2_0p5deg.ecf +++ /dev/null @@ -1,56 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_npoess_pgrb2_0p5deg_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_npoess_pgrb2_0p5deg_%CYC%.o%J -#BSUB -W 2:00 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_PGRB2_SPEC_NPOESS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_pgrb2_spec_gempak.ecf b/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_pgrb2_spec_gempak.ecf deleted file mode 100755 index ba776501c6..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/gempak/jgfs_pgrb2_spec_gempak.ecf +++ /dev/null @@ -1,57 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_pgrb2_spec_gempak_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_pgrb2_spec_gempak_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 2 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=2] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_PGRB2_SPEC_GEMPAK - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_gempak.ecf b/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_gempak.ecf deleted file mode 100755 index 9774a0aa52..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_gempak.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_gempak_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_gempak_%CYC%.o%J -#BSUB -W 3:00 -#BSUB -n 24 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=12] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_GEMPAK - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_gempak_meta.ecf b/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_gempak_meta.ecf deleted file mode 100755 index 43fe76b77b..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_gempak_meta.ecf +++ /dev/null @@ -1,60 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_gempak_meta_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_gempak_meta_%CYC%.o%J -#BSUB -W 3:00 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -# Configuration files - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_GEMPAK_META - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_gempak_ncdc_upapgif.ecf b/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_gempak_ncdc_upapgif.ecf deleted file mode 100755 index 4049a752ce..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_gempak_ncdc_upapgif.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_gempak_upapgif_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_gempak_upapgif_%CYC%.o%J -#BSUB -W 3:00 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export MODEL=GFS -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_GEMPAK_NCDC_UPAPGIF - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_npoess_pgrb2_0p5deg.ecf b/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_npoess_pgrb2_0p5deg.ecf deleted file mode 100755 index 7ded2d5ae1..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_npoess_pgrb2_0p5deg.ecf +++ /dev/null @@ -1,56 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_npoess_pgrb2_0p5deg_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_npoess_pgrb2_0p5deg_%CYC%.o%J -#BSUB -W 2:00 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_PGRB2_SPEC_NPOESS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_pgrb2_spec_gempak.ecf b/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_pgrb2_spec_gempak.ecf deleted file mode 100755 index e4ec28fc71..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/gempak_20190514/jgfs_pgrb2_spec_gempak.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_pgrb2_spec_gempak_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_pgrb2_spec_gempak_%CYC%.o%J -#BSUB -W 0:40 -#BSUB -n 2 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=2] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ -module load gempak/$gempak_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_PGRB2_SPEC_GEMPAK - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/jgfs_analysis.ecf b/ecflow/ecf/scripts/gfs_FV3/jgfs_analysis.ecf deleted file mode 100755 index 3307958636..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/jgfs_analysis.ecf +++ /dev/null @@ -1,60 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_analysis_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_analysis_%CYC%.o%J -#BSUB -W 0:50 -#BSUB -n 480 -#BSUB -R affinity[core(14)] -#BSUB -R span[ptile=2] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load NetCDF/$NetCDF_ver -module load HDF5-serial/$HDF5_serial_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export PREINP=${CDUMP}.${cycle}. - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_ANALYSIS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/jgfs_vminmon.ecf b/ecflow/ecf/scripts/gfs_FV3/jgfs_vminmon.ecf deleted file mode 100755 index b9300d7401..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/jgfs_vminmon.ecf +++ /dev/null @@ -1,52 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_vminmon_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_vminmon_%CYC%.o%J -#BSUB -W 0:05 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load pm5/$pm5_ver -module load ips/$ips_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_VMINMON - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_anl.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_anl.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_anl.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f000.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f000.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f000.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f001.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f001.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f001.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f002.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f002.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f002.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f003.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f003.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f003.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f004.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f004.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f004.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f005.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f005.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f005.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f006.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f006.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f006.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f007.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f007.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f007.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f008.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f008.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f008.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f009.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f009.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f009.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f010.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f010.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f010.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f011.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f011.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f011.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f012.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f012.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f012.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f013.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f013.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f013.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f014.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f014.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f014.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f015.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f015.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f015.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f016.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f016.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f016.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f017.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f017.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f017.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f018.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f018.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f018.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f019.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f019.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f019.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f020.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f020.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f020.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f021.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f021.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f021.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f022.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f022.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f022.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f023.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f023.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f023.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f024.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f024.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f024.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f025.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f025.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f025.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f026.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f026.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f026.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f027.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f027.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f027.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f028.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f028.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f028.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f029.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f029.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f029.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f030.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f030.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f030.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f031.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f031.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f031.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f032.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f032.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f032.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f033.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f033.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f033.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f034.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f034.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f034.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f035.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f035.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f035.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f036.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f036.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f036.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f037.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f037.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f037.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f038.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f038.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f038.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f039.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f039.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f039.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f040.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f040.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f040.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f041.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f041.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f041.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f042.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f042.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f042.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f043.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f043.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f043.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f044.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f044.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f044.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f045.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f045.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f045.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f046.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f046.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f046.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f047.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f047.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f047.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f048.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f048.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f048.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f049.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f049.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f049.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f050.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f050.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f050.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f051.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f051.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f051.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f052.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f052.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f052.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f053.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f053.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f053.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f054.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f054.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f054.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f055.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f055.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f055.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f056.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f056.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f056.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f057.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f057.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f057.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f058.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f058.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f058.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f059.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f059.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f059.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f060.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f060.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f060.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f061.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f061.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f061.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f062.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f062.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f062.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f063.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f063.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f063.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f064.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f064.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f064.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f065.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f065.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f065.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f066.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f066.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f066.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f067.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f067.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f067.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f068.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f068.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f068.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f069.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f069.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f069.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f070.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f070.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f070.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f071.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f071.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f071.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f072.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f072.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f072.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f073.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f073.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f073.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f074.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f074.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f074.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f075.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f075.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f075.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f076.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f076.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f076.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f077.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f077.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f077.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f078.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f078.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f078.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f079.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f079.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f079.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f080.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f080.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f080.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f081.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f081.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f081.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f082.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f082.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f082.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f083.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f083.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f083.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f084.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f084.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f084.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f085.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f085.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f085.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f086.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f086.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f086.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f087.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f087.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f087.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f088.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f088.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f088.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f089.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f089.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f089.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f090.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f090.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f090.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f091.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f091.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f091.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f092.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f092.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f092.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f093.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f093.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f093.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f094.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f094.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f094.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f095.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f095.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f095.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f096.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f096.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f096.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f097.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f097.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f097.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f098.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f098.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f098.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f099.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f099.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f099.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f100.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f100.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f100.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f101.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f101.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f101.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f102.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f102.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f102.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f103.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f103.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f103.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f104.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f104.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f104.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f105.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f105.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f105.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f106.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f106.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f106.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f107.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f107.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f107.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f108.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f108.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f108.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f109.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f109.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f109.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f110.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f110.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f110.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f111.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f111.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f111.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f112.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f112.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f112.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f113.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f113.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f113.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f114.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f114.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f114.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f115.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f115.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f115.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f116.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f116.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f116.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f117.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f117.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f117.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f118.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f118.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f118.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f119.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f119.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f119.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f120.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f120.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f120.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f123.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f123.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f123.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f126.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f126.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f126.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f129.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f129.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f129.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f132.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f132.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f132.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f135.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f135.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f135.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f138.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f138.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f138.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f141.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f141.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f141.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f144.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f144.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f144.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f147.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f147.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f147.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f150.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f150.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f150.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f153.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f153.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f153.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f156.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f156.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f156.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f159.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f159.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f159.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f162.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f162.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f162.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f165.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f165.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f165.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f168.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f168.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f168.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f171.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f171.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f171.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f174.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f174.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f174.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f177.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f177.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f177.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f180.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f180.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f180.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f183.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f183.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f183.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f186.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f186.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f186.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f189.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f189.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f189.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f192.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f192.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f192.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f195.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f195.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f195.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f198.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f198.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f198.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f201.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f201.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f201.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f204.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f204.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f204.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f207.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f207.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f207.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f210.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f210.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f210.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f213.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f213.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f213.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f216.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f216.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f216.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f219.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f219.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f219.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f222.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f222.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f222.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f225.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f225.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f225.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f228.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f228.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f228.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f231.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f231.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f231.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f234.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f234.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f234.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f237.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f237.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f237.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f240.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f240.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f240.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f243.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f243.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f243.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f246.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f246.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f246.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f249.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f249.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f249.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f252.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f252.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f252.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f255.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f255.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f255.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f258.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f258.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f258.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f261.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f261.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f261.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f264.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f264.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f264.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f267.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f267.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f267.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f270.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f270.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f270.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f273.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f273.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f273.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f276.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f276.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f276.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f279.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f279.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f279.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f282.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f282.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f282.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f285.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f285.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f285.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f288.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f288.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f288.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f291.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f291.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f291.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f294.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f294.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f294.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f297.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f297.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f297.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f300.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f300.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f300.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f303.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f303.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f303.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f306.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f306.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f306.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f309.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f309.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f309.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f312.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f312.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f312.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f315.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f315.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f315.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f318.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f318.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f318.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f321.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f321.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f321.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f324.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f324.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f324.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f327.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f327.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f327.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f330.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f330.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f330.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f333.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f333.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f333.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f336.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f336.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f336.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f339.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f339.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f339.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f342.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f342.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f342.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f345.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f345.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f345.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f348.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f348.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f348.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f351.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f351.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f351.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f354.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f354.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f354.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f357.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f357.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f357.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f360.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f360.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f360.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f363.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f363.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f363.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f366.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f366.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f366.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f369.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f369.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f369.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f372.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f372.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f372.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f375.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f375.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f375.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f378.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f378.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f378.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f381.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f381.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f381.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f384.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f384.ecf deleted file mode 100755 index 603f59f5e3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_f384.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_%FHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_%FHR%_%CYC%.o%J -#BSUB -W 0:15 -#BSUB -n 84 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=14] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export FHR=%FHR% -export post_times=%HR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load g2tmpl/$g2tmpl_ver -module load crtm/$crtm_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export g2tmpl_ver=v${g2tmpl_ver} - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGLOBAL_NCEPPOST - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_manager.ecf b/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_manager.ecf deleted file mode 100755 index 9978b0b825..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post/jgfs_post_manager.ecf +++ /dev/null @@ -1,54 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_post_manager_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_post_manager_%CYC%.o%J -#BSUB -W 4:00 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -# Configuration files -export EXPDIR=${HOMEgfs}/parm/config - -############################################################ -# Load modules -############################################################ - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export job=gfs_post_manager_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_POST_MANAGER - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f000.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f000.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f000.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f003.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f003.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f003.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f006.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f006.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f006.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f009.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f009.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f009.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f012.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f012.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f012.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f015.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f015.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f015.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f018.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f018.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f018.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f021.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f021.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f021.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f024.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f024.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f024.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f027.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f027.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f027.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f030.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f030.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f030.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f033.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f033.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f033.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f036.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f036.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f036.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f039.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f039.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f039.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f042.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f042.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f042.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f045.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f045.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f045.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f048.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f048.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f048.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f051.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f051.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f051.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f054.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f054.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f054.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f057.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f057.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f057.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f060.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f060.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f060.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f063.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f063.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f063.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f066.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f066.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f066.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f069.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f069.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f069.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f072.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f072.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f072.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f075.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f075.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f075.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f078.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f078.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f078.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f081.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f081.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f081.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f084.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f084.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f084.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f090.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f090.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f090.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f096.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f096.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f096.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f102.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f102.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f102.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f108.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f108.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f108.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f114.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f114.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f114.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f120.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f120.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f120.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f126.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f126.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f126.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f132.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f132.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f132.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f138.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f138.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f138.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f144.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f144.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f144.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f150.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f150.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f150.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f156.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f156.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f156.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f162.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f162.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f162.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f168.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f168.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f168.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f174.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f174.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f174.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f180.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f180.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f180.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f186.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f186.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f186.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f192.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f192.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f192.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f198.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f198.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f198.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f204.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f204.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f204.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f210.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f210.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f210.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f216.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f216.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f216.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f222.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f222.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f222.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f228.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f228.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f228.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f234.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f234.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f234.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f240.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f240.ecf deleted file mode 100755 index b4d48c5d34..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_20km_1p0/jgfs_awips_f240.ecf +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 28 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=28] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -# CALL executable job script here -export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR% -export job=jgfs_awips_f%FCSTHR%_%CYC% - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f000.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f000.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f000.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f000.ecf.BAK b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f000.ecf.BAK deleted file mode 100755 index aad9179552..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f000.ecf.BAK +++ /dev/null @@ -1,66 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:06 -#BSUB -n 2 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=2] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f003.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f003.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f003.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f006.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f006.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f006.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f009.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f009.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f009.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f012.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f012.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f012.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f015.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f015.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f015.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f018.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f018.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f018.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f021.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f021.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f021.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f024.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f024.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f024.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f027.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f027.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f027.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f030.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f030.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f030.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f033.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f033.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f033.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f036.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f036.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f036.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f039.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f039.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f039.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f042.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f042.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f042.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f045.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f045.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f045.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f048.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f048.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f048.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f051.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f051.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f051.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f054.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f054.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f054.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f057.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f057.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f057.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f060.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f060.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f060.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f063.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f063.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f063.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f066.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f066.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f066.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f069.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f069.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f069.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f072.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f072.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f072.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f075.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f075.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f075.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f078.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f078.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f078.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f081.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f081.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f081.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f084.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f084.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f084.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f090.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f090.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f090.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f096.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f096.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f096.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f102.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f102.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f102.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f108.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f108.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f108.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f114.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f114.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f114.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f120.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f120.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f120.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f126.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f126.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f126.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f132.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f132.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f132.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f138.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f138.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f138.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f144.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f144.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f144.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f150.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f150.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f150.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f156.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f156.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f156.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f162.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f162.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f162.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f168.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f168.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f168.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f174.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f174.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f174.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f180.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f180.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f180.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f186.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f186.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f186.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f192.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f192.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f192.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f198.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f198.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f198.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f204.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f204.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f204.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f210.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f210.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f210.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f216.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f216.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f216.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f222.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f222.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f222.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f228.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f228.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f228.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f234.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f234.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f234.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f240.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f240.ecf deleted file mode 100755 index 51ff6d8277..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/awips_g2/jgfs_awips_g2_f240.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUESHARED% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_awips_g2_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_awips_g2_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -M 1000 -#BSUB -R affinity[core(1)] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export FHRGRP=%FHRGRP% -export FHRLST=%FHRLST% -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -trdrun=%TRDRUN% - -export job="jgfs_awips_f${fcsthrs}_${cyc}" - -############################################################ -# CALL executable job script here -############################################################ -$HOMEgfs/jobs/JGFS_AWIPS_G2 - -############################################################### - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/bufr_sounding.20190514/jgfs_postsnd.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/bufr_sounding.20190514/jgfs_postsnd.ecf deleted file mode 100755 index 29ee2c9a1b..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/bufr_sounding.20190514/jgfs_postsnd.ecf +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_postsnd_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_postsnd_%CYC%.o%J -#BSUB -W 2:00 -#BSUB -n 12 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver -module load CFP/$CFP_ver -module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ -module load gempak/$gempak_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} - -. ${EXPDIR}/config.base -. ${EXPDIR}/config.postsnd -. ${HOMEgfs}/env/WCOSS_DELL_P3.env postsnd - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_POSTSND - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/bufr_sounding/jgfs_postsnd.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/bufr_sounding/jgfs_postsnd.ecf deleted file mode 100755 index cd5dd5ef22..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/bufr_sounding/jgfs_postsnd.ecf +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_postsnd_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_postsnd_%CYC%.o%J -#BSUB -W 2:00 -#BSUB -n 12 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=4] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver -module load CFP/$CFP_ver -module load gempak/$gempak_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} - -. ${EXPDIR}/config.base -. ${EXPDIR}/config.postsnd -. ${HOMEgfs}/env/WCOSS_DELL_P3.env postsnd - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_POSTSND - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/bulletins/jgfs_fbwind.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/bulletins/jgfs_fbwind.ecf deleted file mode 100755 index 7097c0c890..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/bulletins/jgfs_fbwind.ecf +++ /dev/null @@ -1,56 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_fbwind_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_fbwind_%CYC%.o%J -#BSUB -W 0:05 -#BSUB -n 2 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=2] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load ips/$ips_ver -module load impi/$impi_ver -module load EnvVars/$EnvVars_ver -module load CFP/$CFP_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_FBWIND - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib2_wafs/jgfs_wafs_blending.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib2_wafs/jgfs_wafs_blending.ecf deleted file mode 100755 index 7750291cd9..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib2_wafs/jgfs_wafs_blending.ecf +++ /dev/null @@ -1,60 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_blending_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_blending_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -export SHOUR=06 -export EHOUR=36 -export FHINC=03 - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS_BLENDING - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib2_wafs/jgfs_wafs_grib2.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib2_wafs/jgfs_wafs_grib2.ecf deleted file mode 100755 index 6ce66bc2d3..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib2_wafs/jgfs_wafs_grib2.ecf +++ /dev/null @@ -1,60 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_grib2_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_grib2_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -export SHOUR=06 -export EHOUR=36 -export FHINC=03 - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS_GRIB2 - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f00.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f00.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f00.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f06.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f06.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f06.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f102.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f102.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f102.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f108.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f108.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f108.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f114.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f114.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f114.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f12.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f12.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f12.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f120.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f120.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f120.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f18.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f18.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f18.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f24.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f24.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f24.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f30.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f30.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f30.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f36.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f36.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f36.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f42.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f42.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f42.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f48.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f48.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f48.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f54.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f54.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f54.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f60.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f60.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f60.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f66.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f66.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f66.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f72.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f72.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f72.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f78.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f78.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f78.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f84.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f84.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f84.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f90.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f90.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f90.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f96.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f96.ecf deleted file mode 100755 index 0786461cef..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/grib_wafs/jgfs_wafs_f96.ecf +++ /dev/null @@ -1,58 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_%FCSTHR%_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_%FCSTHR%_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export model=%model:gfs% -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -export fcsthrs=%FCSTHR% - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/post_processing/jgfs_wafs_gcip.ecf b/ecflow/ecf/scripts/gfs_FV3/post_processing/jgfs_wafs_gcip.ecf deleted file mode 100755 index 462f8edc77..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/post_processing/jgfs_wafs_gcip.ecf +++ /dev/null @@ -1,57 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_wafs_gcip_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_wafs_gcip_%CYC%.o%J -#BSUB -W 0:30 -#BSUB -n 2 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load lsf/$lsf_ver -module load CFP/$CFP_ver -module load grib_util/$grib_util_ver -module load bufr_dumplist/$bufr_dumplist_ver -module load dumpjb/$dumpjb_ver - -module list - -#%include -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGFS_WAFS_GCIP - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/prep/jgfs_emcsfc_sfc_prep.ecf b/ecflow/ecf/scripts/gfs_FV3/prep/jgfs_emcsfc_sfc_prep.ecf deleted file mode 100755 index d7551a00c1..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/prep/jgfs_emcsfc_sfc_prep.ecf +++ /dev/null @@ -1,52 +0,0 @@ -#! /bin/sh -#BSUB -q %QUEUE% -#BSUB -P %PROJ% -#BSUB -J %E%gfs_emcsfc_sfc_prep_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/gfs_emcsfc_sfc_prep_%CYC%.o%J -#BSUB -W 0:10 -#BSUB -n 1 -#BSUB -R affinity[core(1)] -#BSUB -R span[ptile=1] -#BSUB -cwd /tmp - -%include -%include - -set -x - -export NET=%NET:gfs% -export RUN=%RUN% -export CDUMP=%RUN% - -model=gfs -%include - -############################################################ -# Load modules -############################################################ -module load grib_util/$grib_util_ver - -module list - -#%include -export USE_CFP=YES -export ROTDIR=%COM% -export cyc=%CYC% -export cycle=t%CYC%z -export SCRgfs=${HOMEgfs}/scripts - -############################################################ -# CALL executable job script here -############################################################ -${HOMEgfs}/jobs/JGLOBAL_EMCSFC_SFC_PREP - -if [ $? -ne 0 ]; then - ecflow_client --msg="***JOB ${ECF_NAME} ERROR RUNNING J-SCRIPT ***" - ecflow_client --abort - exit -fi - -%include -%manual - -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/prep/jgfs_prep.ecf b/ecflow/ecf/scripts/gfs_FV3/prep/jgfs_prep.ecf deleted file mode 100755 index a9fc222c67..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/prep/jgfs_prep.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#BSUB -J %E%%RUN%_prep_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_prep_%CYC%.o%J -#BSUB -cwd /tmp -#BSUB -q %QUEUE% -#BSUB -L /bin/sh -#BSUB -P %PROJ% -#BSUB -W 00:20 -#BSUB -R span[ptile=3]; -R affinity[core] -#BSUB -n 3 -#BSUB -M 18000 - -%include -%include - -export NODES=1 - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -#. $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x - -export cyc=%CYC% - -# CALL executable job script here -${HOMEobsproc_global}/jobs/JGLOBAL_PREP - -%include -%manual -###################################################################### -# Purpose: -# -# -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/prep/jgfs_prep_post.ecf b/ecflow/ecf/scripts/gfs_FV3/prep/jgfs_prep_post.ecf deleted file mode 100755 index 02583bca40..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/prep/jgfs_prep_post.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#BSUB -J %E%%RUN%_prep_post_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_prep_post_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q %QUEUESERV% -#BSUB -cwd /tmp -#BSUB -W 00:10 -#BSUB -P %PROJ% -#BSUB -M 1000 -#BSUB -R affinity[core] - -%include -%include - -set -x - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -#. $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x -export cyc=%CYC% - -#export PROCESS_ALL_REPORT_COUNTS=NO - -# CALL executable job script here -$HOMEobsproc_global/jobs/JGLOBAL_PREP_POST - -%include -%manual -###################################################################### -# Purpose: Job to execute the GFS PREPBUFR post-processing for -# the 00Z cycle (creating unrestricted PREPBUFR files) -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end - diff --git a/ecflow/ecf/scripts/gfs_FV3/prep/jglobal_prep.ecf b/ecflow/ecf/scripts/gfs_FV3/prep/jglobal_prep.ecf deleted file mode 100755 index 0c7097fd96..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/prep/jglobal_prep.ecf +++ /dev/null @@ -1,60 +0,0 @@ -#BSUB -J %E%%RUN%_prep_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_prep_%CYC%.o%J -#BSUB -cwd /tmp -#BSUB -q %QUEUE% -#BSUB -L /bin/sh -#BSUB -P %PROJ% -##BSUB -W 00:30 -#BSUB -W 00:35 -#BSUB -R span[ptile=3]; -R affinity[core] -#BSUB -n 3 -#BSUB -M 18000 - -%include -%include - -export NODES=1 - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -#. $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x - -export cyc=%CYC% - -# CALL executable job script here -${HOMEobsproc_global}/jobs/JGLOBAL_PREP - -%include -%manual -###################################################################### -# Purpose: -# -# -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end diff --git a/ecflow/ecf/scripts/gfs_FV3/prep/jglobal_prep_post.ecf b/ecflow/ecf/scripts/gfs_FV3/prep/jglobal_prep_post.ecf deleted file mode 100755 index 31ec73452f..0000000000 --- a/ecflow/ecf/scripts/gfs_FV3/prep/jglobal_prep_post.ecf +++ /dev/null @@ -1,59 +0,0 @@ -#BSUB -J %E%%RUN%_prep_post_%CYC% -#BSUB -o %COM%/output/%ENVIR%/today/%RUN%_prep_post_%CYC%.o%J -#BSUB -L /bin/sh -#BSUB -q %QUEUESERV% -#BSUB -cwd /tmp -##BSUB -W 00:30 -#BSUB -W 00:15 -#BSUB -P %PROJ% -#BSUB -M 1000 - -%include -%include - -set -x - -export model=obsproc_global -%include - -############################################################# -## Load modules -############################################################## -#. $MODULESHOME/init/sh -module load EnvVars/$EnvVars_ver -module load ips/$ips_ver -module load impi/$impi_ver -module load CFP/$cfp_ver -module list - -############################################################# -## WCOSS_C environment settings -############################################################## - -################################################ -# EXPORT list here - -set -x -export cyc=%CYC% - -#export PROCESS_ALL_REPORT_COUNTS=NO - -# CALL executable job script here -$HOMEobsproc_global/jobs/JGLOBAL_PREP_POST - -%include -%manual -###################################################################### -# Purpose: Job to execute the GFS PREPBUFR post-processing for -# the 00Z cycle (creating unrestricted PREPBUFR files) -###################################################################### - -###################################################################### -# Job specific troubleshooting instructions: -# see generic troubleshoot manual page -# -###################################################################### - -# include manual page below -%end - diff --git a/ecflow/ecf/versions/gfs.ver b/ecflow/ecf/versions/gfs.ver index c16b91fb51..d53b8c5256 100644 --- a/ecflow/ecf/versions/gfs.ver +++ b/ecflow/ecf/versions/gfs.ver @@ -1,22 +1,30 @@ -export gfs_ver="v15.1.1" -export EnvVars_ver="1.0.2" +export gfs_ver="v16.0.0" +export EnvVars_ver="1.0.3" export lsf_ver="10.1" export emc_utils_ver="1.0.0" export ips_ver="18.0.1.163" export NetCDF_ver="4.5.0" export HDF5_serial_ver="1.10.1" +export hdf5_parallel_ver="1.10.6" +export netcdf_parallel_ver="4.7.4" export impi_ver="18.0.1" -export bufr_ver="11.2.0" -export crtm_ver="2.2.6" +export bufr_ver="11.3.0" +export crtm_ver="2.3.0" export grib_util_ver="1.1.0" -export g2tmpl_ver="1.5.0" -export ESMF_ver="7_1_0r" -export CFP_ver="2.0.1" +export g2tmpl_ver="1.6.0" +export ESMF_ver="8.0.1bs08" +export CFP_ver="2.0.2" +export NCO_ver="4.7.0" export pm5_ver="1.0" -export gempak_ver="7.3.1" +export gempak_ver="7.3.3" export bufr_dumplist_ver="2.0.0" -export dumpjb_ver="5.0.2" +export dumpjb_ver="5.1.0" export NCL_ver="6.4.0" -# +export python_ver="3.6.3" +export prod_envir_ver="1.1.0" +export util_shared_ver="1.1.2" +export prod_util_ver="1.1.4" +export metplus_ver="2.1" +export w3emc_para_ver="2.4.0" +export cdo_ver="1.9.8" export PATH=.:$PATH -#export COMPATH=/gpfs/dell1/nco/ops/com/gfs diff --git a/ecflow/ecf/versions/obsproc_global.ver b/ecflow/ecf/versions/obsproc_global.ver new file mode 100644 index 0000000000..6867013532 --- /dev/null +++ b/ecflow/ecf/versions/obsproc_global.ver @@ -0,0 +1,42 @@ +## main "model" software +export obsproc_global_ver=v3.2.6 + +## main shared software versions +export obsproc_dump_ver=v5.0.3 # shared DUMP software +export obsproc_prep_ver=v5.2.0 # shared PREP software +export obsproc_dump_post_ver=v3.3.1 # shared DUMP_POST software +export obsproc_prep_post_ver=v3.1.0 # shared PREP_POST software + +## software shared between shared packages +export obsproc_shared_bufr_avgdata_ver=v2.1.0 # used in DUMP_POST +export obsproc_shared_bufr_remorest_ver=v2.1.0 # used in DUMP_POST and PREP_POST +export obsproc_shared_bufr_dumplist_ver=v2.2.0 # used in DUMP and DUMP_POST + +## deocder dictionaries +export dictionaries_ver=v3.3.0 # used in PREP software + +## module versions +#export lsf_ver=10.1 +export ips_ver=18.0.1.163 +export impi_ver=18.0.1 +export cfp_ver=2.0.2 + +export grib_util_ver=1.1.1 # used in DUMP jobs +#export cfp_intel_sandybridge_ver=1.1.0 # used in DUMP jobs + +export PROCESS_MASTER_SHIP_STNLST=NO # turn off the ship/names/stn_lst process in 18z gdas_prep_post job + # since the process has moved to sfcship model on Dell + +# SPA settings +export PATH=$PATH:. +export BACK=off + +gfs_ver=v16.0.0 +export HOMEobsproc_global=/gpfs/dell1/nco/ops/nwpara/obsproc_global.v3.4.0 +export HOMEobsproc_dump=/gpfs/dell1/nco/ops/nwpara/obsproc_dump.v5.1.0 +export HOMEobsproc_shared_bufr_dumplist=/gpfs/dell1/nco/ops/nwpara/obsproc_shared/bufr_dumplist.v2.3.0 +export HOMEobsproc_dump_post=/gpfs/dell1/nco/ops/nwpara/obsproc_dump_post.v3.4.0 +export HOMEobsproc_shared_bufr_remorest=/gpfs/dell1/nco/ops/nwpara/obsproc_shared/bufr_remorest.v2.1.1 +export HOMEobsproc_prep=/gpfs/dell1/nco/ops/nwpara/obsproc_prep.v5.4.0 +export HOMEobsproc_prep_post=/gpfs/dell1/nco/ops/nwpara/obsproc_prep_post.v3.2.0 +export HOMEobsproc_network=$HOMEobsproc_global diff --git a/env/HERA.env b/env/HERA.env new file mode 100755 index 0000000000..49ecaa3e27 --- /dev/null +++ b/env/HERA.env @@ -0,0 +1,232 @@ +#!/bin/ksh -x + +if [ $# -ne 1 ]; then + + echo "Must specify an input argument to set runtime environment variables!" + echo "argument can be any one of the following:" + echo "anal fcst post vrfy metp" + echo "eobs eupd ecen efcs epos" + echo "postsnd awips gempak" + exit 1 + +fi + +step=$1 + +export npe_node_max=40 +export launcher="srun --export=ALL" + +# Configure MPI environment +#export I_MPI_ADJUST_ALLREDUCE=5 +#export MPI_BUFS_PER_PROC=2048 +#export MPI_BUFS_PER_HOST=2048 +#export MPI_GROUP_MAX=256 +#export MPI_MEMMAP_OFF=1 +#export MP_STDOUTMODE="ORDERED" +export OMP_STACKSIZE=2048000 +export NTHSTACK=1024000000 +##export LD_BIND_NOW=1 +export job=${PBS_JOBNAME:-$step} +export jobid=${job}.${PBS_JOBID:-$$} + + +if [ $step = "prep" -o $step = "prepbufr" ]; then + + nth_max=$(($npe_node_max / $npe_node_prep)) + + export POE="NO" + export BACK="NO" + export sys_tp="HERA" + + module unload netcdfp/4.7.4 + module load netcdf/4.7.0 + +elif [ $step = "waveinit" -o $step = "waveprep" -o $step = "wavepostsbs" -o $step = "wavepostbndpnt" -o $step = "wavepostpnt" ]; then + export mpmd="--multi-prog" + export CFP_MP="YES" + if [ $step = "waveprep" ]; then export MP_PULSE=0 ; fi + export wavempexec=${launcher} + export wave_mpmd=${mpmd} + +elif [ $step = "anal" ]; then + + export MKL_NUM_THREADS=4 + export MKL_CBWR=AUTO + + nth_max=$(($npe_node_max / $npe_node_anal)) + + export NTHREADS_GSI=${nth_anal:-$nth_max} + [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max + export APRUN_GSI="$launcher" + + export NTHREADS_CALCINC=${nth_calcinc:-1} + [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max + export APRUN_CALCINC="$launcher" + + export NTHREADS_CYCLE=${nth_cycle:-12} + [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max + npe_cycle=${ntiles:-6} + export APRUN_CYCLE="$launcher -n $npe_cycle" + + + export NTHREADS_GAUSFCANL=1 + npe_gausfcanl=${npe_gausfcanl:-1} + export APRUN_GAUSFCANL="$launcher -n $npe_gausfcanl" + + export NTHREADS_CHGRES=${nth_echgres:-1} + [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max + export APRUN_CHGRES="" + + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -n \$ncmd --multi-prog" + +elif [ $step = "gldas" ]; then + + nth_max=$(($npe_node_max / $npe_node_gldas)) + + export NTHREADS_GLDAS=${nth_gldas:-$nth_max} + [[ $NTHREADS_GLDAS -gt $nth_max ]] && export NTHREADS_GLDAS=$nth_max + export APRUN_GLDAS="$launcher -n $npe_gldas" + + export NTHREADS_GAUSSIAN=${nth_gaussian:-1} + [[ $NTHREADS_GAUSSIAN -gt $nth_max ]] && export NTHREADS_GAUSSIAN=$nth_max + export APRUN_GAUSSIAN="$launcher -n $npe_gaussian" + +# Must run data processing with exactly the number of tasks as time +# periods being processed. + + npe_gldas_data_proc=$(($gldas_spinup_hours + 12)) + export APRUN_GLDAS_DATA_PROC="$launcher -n $npe_gldas_data_proc --multi-prog" + +elif [ $step = "eobs" ]; then + + export MKL_NUM_THREADS=4 + export MKL_CBWR=AUTO + + nth_max=$(($npe_node_max / $npe_node_eobs)) + + export NTHREADS_GSI=${nth_eobs:-$nth_max} + [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max + export APRUN_GSI="$launcher" + + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -n \$ncmd --multi-prog" + +elif [ $step = "eupd" ]; then + + nth_max=$(($npe_node_max / $npe_node_eupd)) + + export NTHREADS_ENKF=${nth_eupd:-$nth_max} + [[ $NTHREADS_ENKF -gt $nth_max ]] && export NTHREADS_ENKF=$nth_max + export APRUN_ENKF="$launcher" + + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher -n \$ncmd --multi-prog" + +elif [ $step = "fcst" ]; then + + nth_max=$(($npe_node_max / $npe_node_fcst)) + + export NTHREADS_FV3=${nth_fv3:-$nth_max} + [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max + export cores_per_node=$npe_node_max + export APRUN_FV3="$launcher" + + export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} + [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max + export APRUN_REGRID_NEMSIO="$launcher" + + export NTHREADS_REMAP=${nth_remap:-2} + [[ $NTHREADS_REMAP -gt $nth_max ]] && export NTHREADS_REMAP=$nth_max + export APRUN_REMAP="$launcher" + +elif [ $step = "efcs" ]; then + + nth_max=$(($npe_node_max / $npe_node_efcs)) + + export NTHREADS_FV3=${nth_efcs:-$nth_max} + [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max + export cores_per_node=$npe_node_max + export APRUN_FV3="$launcher" + + export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} + [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max + export APRUN_REGRID_NEMSIO="$launcher $LEVS" + +elif [ $step = "post" ]; then + + nth_max=$(($npe_node_max / $npe_node_post)) + + export NTHREADS_NP=${nth_np:-1} + [[ $NTHREADS_NP -gt $nth_max ]] && export NTHREADS_NP=$nth_max + export APRUN_NP="$launcher" + + export NTHREADS_DWN=${nth_dwn:-1} + [[ $NTHREADS_DWN -gt $nth_max ]] && export NTHREADS_DWN=$nth_max + export APRUN_DWN="$launcher" + +elif [ $step = "ecen" ]; then + + nth_max=$(($npe_node_max / $npe_node_ecen)) + + export NTHREADS_ECEN=${nth_ecen:-$nth_max} + [[ $NTHREADS_ECEN -gt $nth_max ]] && export NTHREADS_ECEN=$nth_max + export APRUN_ECEN="$launcher" + + export NTHREADS_CHGRES=${nth_chgres:-12} + [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max + export APRUN_CHGRES="time" + + export NTHREADS_CALCINC=${nth_calcinc:-1} + [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max + export APRUN_CALCINC="$launcher" + +elif [ $step = "esfc" ]; then + + nth_max=$(($npe_node_max / $npe_node_esfc)) + + export NTHREADS_ESFC=${nth_esfc:-$nth_max} + [[ $NTHREADS_ESFC -gt $nth_max ]] && export NTHREADS_ESFC=$nth_max + export APRUN_ESFC="$launcher -n $npe_esfc" + + export NTHREADS_CYCLE=${nth_cycle:-14} + [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max + export APRUN_CYCLE="$launcher -n $npe_esfc" + +elif [ $step = "epos" ]; then + + nth_max=$(($npe_node_max / $npe_node_epos)) + + export NTHREADS_EPOS=${nth_epos:-$nth_max} + [[ $NTHREADS_EPOS -gt $nth_max ]] && export NTHREADS_EPOS=$nth_max + export APRUN_EPOS="$launcher" + +elif [ $step = "fv3ic" ]; then + + export NTHREADS_CHGRES=${nth_chgres:-$npe_node_max} + [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max + export APRUN_CHGRES="time" + +elif [ $step = "postsnd" ]; then + + nth_max=$(($npe_node_max / $npe_node_postsnd)) + + export NTHREADS_POSTSND=${nth_postsnd:-1} + [[ $NTHREADS_POSTSND -gt $nth_max ]] && export NTHREADS_POSTSND=$nth_max + export APRUN_POSTSND="$launcher" + + export NTHREADS_POSTSNDCFP=${nth_postsndcfp:-1} + [[ $NTHREADS_POSTSNDCFP -gt $nth_max ]] && export NTHREADS_POSTSNDCFP=$nth_max + export APRUN_POSTSNDCFP="$launcher" + +elif [ $step = "awips" ]; then + + echo "WARNING: $step is not enabled on $machine!" + +elif [ $step = "gempak" ]; then + + echo "WARNING: $step is not enabled on $machine!" +fi diff --git a/env/JET.env b/env/JET.env index 2bb02c3d92..ef37e468df 100755 --- a/env/JET.env +++ b/env/JET.env @@ -4,7 +4,7 @@ if [ $# -ne 1 ]; then echo "Must specify an input argument to set runtime environment variables!" echo "argument can be any one of the following:" - echo "anal fcst post vrfy" + echo "anal fcst post vrfy metp" echo "eobs eupd ecen efcs epos" echo "postsnd awips gempak" exit 1 @@ -37,6 +37,12 @@ if [ $step = "prep" -o $step = "prepbufr" ]; then export BACK=${BACK:-"YES"} export sys_tp="Cray-CS400" +elif [ $step = "waveinit" -o $step = "waveprep" -o $step = "wavepostsbs" -o $step = "wavepostbndpnt" -o $step = "wavepostpnt" ]; then + + if [ $step = "waveprep" ]; then export MP_PULSE=0 ; fi + export wavempexec=${launcher} + export wave_mpmd=${mpmd} + elif [ $step = "anal" ]; then nth_max=$(($npe_node_max / $npe_node_anal)) @@ -58,6 +64,22 @@ elif [ $step = "anal" ]; then npe_gausfcanl=${npe_gausfcanl:-1} export APRUN_GAUSFCANL="$launcher $npe_gausfcanl" + export NTHREADS_CHGRES=${nth_echgres:-1} + [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max + export APRUN_CHGRES="" + +elif [ $step = "gldas" ]; then + + nth_max=$(($npe_node_max / $npe_node_gldas)) + + export NTHREADS_GLDAS=${nth_gldas:-$nth_max} + [[ $NTHREADS_GLDAS -gt $nth_max ]] && export NTHREADS_GLDAS=$nth_max + export APRUN_GLDAS="$launcher $npe_gldas" + + export NTHREADS_GAUSSIAN=${nth_gaussian:-1} + [[ $NTHREADS_GAUSSIAN -gt $nth_max ]] && export NTHREADS_GAUSSIAN=$nth_max + export APRUN_GAUSSIAN="$launcher $npe_gaussian" + elif [ $step = "eobs" ]; then nth_max=$(($npe_node_max / $npe_node_eobs)) @@ -81,8 +103,12 @@ elif [ $step = "fcst" ]; then export NTHREADS_FV3=${nth_fv3:-$nth_max} [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max export cores_per_node=$npe_node_max - export APRUN_FV3="$launcher ${npe_fv3:-${npe_fcst:-$PBS_NP}}" - + #export APRUN_FV3="$launcher ${npe_fv3:-${npe_fcst:-$PBS_NP}}" + if [ $CDUMP = "gdas" ]; then + export APRUN_FV3="$launcher ${npe_fcst:-$PBS_NP}" + else + export APRUN_FV3="$launcher ${npe_fcst_gfs:-$PBS_NP}" + fi export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max export APRUN_REGRID_NEMSIO="$launcher $LEVS" @@ -132,6 +158,19 @@ elif [ $step = "ecen" ]; then [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max export APRUN_CALCINC="$launcher ${npe_ecen:-$PBS_NP}" +elif [ $step = "esfc" ]; then + + nth_max=$(($npe_node_max / $npe_node_esfc)) + + export NTHREADS_ESFC=${nth_esfc:-$nth_max} + [[ $NTHREADS_ESFC -gt $nth_max ]] && export NTHREADS_ESFC=$nth_max + export APRUN_ESFC="$launcher ${npe_esfc:-$PBS_NP}" + + export NTHREADS_CYCLE=${nth_cycle:-12} + [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max + export APRUN_CYCLE="$launcher $npe_esfc" + + elif [ $step = "epos" ]; then nth_max=$(($npe_node_max / $npe_node_epos)) diff --git a/env/THEIA.env b/env/THEIA.env deleted file mode 100755 index 5f33ffe0bf..0000000000 --- a/env/THEIA.env +++ /dev/null @@ -1,170 +0,0 @@ -#!/bin/ksh -x - -if [ $# -ne 1 ]; then - - echo "Must specify an input argument to set runtime environment variables!" - echo "argument can be any one of the following:" - echo "anal fcst post vrfy" - echo "eobs eupd ecen efcs epos" - echo "postsnd awips gempak" - exit 1 - -fi - -step=$1 - -# Theia information -export npe_node_max=24 -export launcher="srun --export=ALL" - -# Configure MPI environment -export I_MPI_ADJUST_ALLREDUCE=5 -export MPI_BUFS_PER_PROC=2048 -export MPI_BUFS_PER_HOST=2048 -export MPI_GROUP_MAX=256 -export MPI_MEMMAP_OFF=1 -export MP_STDOUTMODE="ORDERED" -export OMP_STACKSIZE=2048000 -export NTHSTACK=1024000000 -#export LD_BIND_NOW=1 -export job=${PBS_JOBNAME:-$step} -export jobid=${job}.${PBS_JOBID:-$$} - -if [ $step = "prep" -o $step = "prepbufr" ]; then - - nth_max=$(($npe_node_max / $npe_node_prep)) - - export POE="NO" - export BACK=${BACK:-"YES"} - export sys_tp="Cray-CS400" - -elif [ $step = "anal" ]; then - - nth_max=$(($npe_node_max / $npe_node_anal)) - - export NTHREADS_GSI=${nth_gsi:-$nth_max} - [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max - export APRUN_GSI="$launcher" - - export NTHREADS_CALCINC=${nth_calcinc:-1} - [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max - export APRUN_CALCINC="$launcher" - - export NTHREADS_CYCLE=${nth_cycle:-12} - [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max - npe_cycle=${ntiles:-6} - export APRUN_CYCLE="$launcher" - - export NTHREADS_GAUSFCANL=1 - npe_gausfcanl=${npe_gausfcanl:-1} - export APRUN_GAUSFCANL="$launcher" - -elif [ $step = "eobs" ]; then - - nth_max=$(($npe_node_max / $npe_node_eobs)) - - export NTHREADS_GSI=${nth_gsi:-$nth_max} - [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max - export APRUN_GSI="$launcher" - -elif [ $step = "eupd" ]; then - - nth_max=$(($npe_node_max / $npe_node_eupd)) - - export NTHREADS_ENKF=${nth_enkf:-$nth_max} - [[ $NTHREADS_ENKF -gt $nth_max ]] && export NTHREADS_ENKF=$nth_max - export APRUN_ENKF="$launcher" - -elif [ $step = "fcst" ]; then - - nth_max=$(($npe_node_max / $npe_node_fcst)) - - export NTHREADS_FV3=${nth_fv3:-$nth_max} - [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max - export cores_per_node=$npe_node_max - export APRUN_FV3="$launcher" - - export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} - [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max - export APRUN_REGRID_NEMSIO="$launcher" - - export NTHREADS_REMAP=${nth_remap:-2} - [[ $NTHREADS_REMAP -gt $nth_max ]] && export NTHREADS_REMAP=$nth_max - export APRUN_REMAP="$launcher" - -elif [ $step = "efcs" ]; then - - nth_max=$(($npe_node_max / $npe_node_efcs)) - - export NTHREADS_FV3=${nth_fv3:-$nth_max} - [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max - export cores_per_node=$npe_node_max - export APRUN_FV3="$launcher" - - export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} - [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max - export APRUN_REGRID_NEMSIO="$launcher" - -elif [ $step = "post" ]; then - - nth_max=$(($npe_node_max / $npe_node_post)) - - export NTHREADS_NP=${nth_np:-1} - [[ $NTHREADS_NP -gt $nth_max ]] && export NTHREADS_NP=$nth_max - export APRUN_NP="$launcher" - - export NTHREADS_DWN=${nth_dwn:-1} - [[ $NTHREADS_DWN -gt $nth_max ]] && export NTHREADS_DWN=$nth_max - export APRUN_DWN="$launcher" - -elif [ $step = "ecen" ]; then - - nth_max=$(($npe_node_max / $npe_node_ecen)) - - export NTHREADS_ECEN=${nth_ecen:-$nth_max} - [[ $NTHREADS_ECEN -gt $nth_max ]] && export NTHREADS_ECEN=$nth_max - export APRUN_ECEN="$launcher" - - export NTHREADS_CHGRES=${nth_chgres:-12} - [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max - export APRUN_CHGRES="time" - - export NTHREADS_CALCINC=${nth_calcinc:-1} - [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max - export APRUN_CALCINC="$launcher" - -elif [ $step = "epos" ]; then - - nth_max=$(($npe_node_max / $npe_node_epos)) - - export NTHREADS_EPOS=${nth_epos:-$nth_max} - [[ $NTHREADS_EPOS -gt $nth_max ]] && export NTHREADS_EPOS=$nth_max - export APRUN_EPOS="$launcher" - -elif [ $step = "fv3ic" ]; then - - export NTHREADS_CHGRES=${nth_chgres:-$npe_node_max} - [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max - export APRUN_CHGRES="time" - -elif [ $step = "postsnd" ]; then - - nth_max=$(($npe_node_max / $npe_node_postsnd)) - - export NTHREADS_POSTSND=${nth_postsnd:-1} - [[ $NTHREADS_POSTSND -gt $nth_max ]] && export NTHREADS_POSTSND=$nth_max - export APRUN_POSTSND="$launcher" - - export NTHREADS_POSTSNDCFP=${nth_postsndcfp:-1} - [[ $NTHREADS_POSTSNDCFP -gt $nth_max ]] && export NTHREADS_POSTSNDCFP=$nth_max - export APRUN_POSTSNDCFP="$launcher" - -elif [ $step = "awips" ]; then - - echo "WARNING: $step is not enabled on $machine!" - -elif [ $step = "gempak" ]; then - - echo "WARNING: $step is not enabled on $machine!" - -fi diff --git a/env/WCOSS_C.env b/env/WCOSS_C.env index 3b1e99efcf..4885a966a0 100755 --- a/env/WCOSS_C.env +++ b/env/WCOSS_C.env @@ -4,7 +4,7 @@ if [ $# -ne 1 ]; then echo "Must specify an input argument to set runtime environment variables!" echo "argument can be any one of the following:" - echo "anal fcst post vrfy" + echo "anal fcst post vrfy metp" echo "eobs eupd ecen efcs epos" echo "postsnd awips gempak" exit 1 @@ -15,6 +15,7 @@ step=$1 # Cray information export launcher="aprun" +export mpmd="cfp" export npe_node_max=24 # Configure MPI environment @@ -36,11 +37,16 @@ if [ $step = "prep" -o $step = "prepbufr" ]; then export POE=${POE:-"YES"} export sys_tp="Cray-XC40" +elif [ $step = "waveinit" -o $step = "waveprep" -o $step = "wavepostsbs" -o $step = "wavepostbndpnt" -o $step = "wavepostpnt" ]; then + if [ $step = "waveprep" ]; then export MP_PULSE=0 ; fi + export wavempexec=${launcher} + export wave_mpmd=${mpmd} + elif [ $step = "anal" ]; then nth_max=$(($npe_node_max / $npe_node_anal)) - export NTHREADS_GSI=${nth_gsi:-$nth_max} + export NTHREADS_GSI=${nth_anal:-$nth_max} [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max export APRUN_GSI="$launcher -j 1 -n ${npe_gsi:-$npe_anal} -N $npe_node_anal -d $NTHREADS_GSI -cc depth" @@ -49,7 +55,7 @@ elif [ $step = "anal" ]; then export APRUN_CALCINC="$launcher -j 1 -n \$ncmd -N 1 -d $NTHREADS_CALCINC -cc depth" if [ ${USE_CFP:-"NO"} = "YES" ]; then - export APRUNCFP="$launcher -q -j 1 -n \$ncmd -N \$ncmd_max -d 1 cfp" + export APRUNCFP="$launcher -q -j 1 -n \$ncmd -N \$ncmd_max -d 1 $mpmd" fi export NTHREADS_CYCLE=${nth_cycle:-12} @@ -65,16 +71,34 @@ elif [ $step = "anal" ]; then [[ $npe_node_gausfcanl -gt $npe_gausfcanl ]] && npe_node_gausfcanl=$npe_gausfcanl export APRUN_GAUSFCANL="$launcher -j 1 -n $npe_gausfcanl -N $npe_node_gausfcanl -d $NTHREADS_GAUSFCANL -cc depth" + export NTHREADS_CHGRES=${nth_echgres:-1} + [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max + export APRUN_CHGRES="$launcher -j 1 -n 1 -N 1 -d $NTHREADS_CHGRES -cc depth" + +elif [ $step = "gldas" ]; then + + nth_max=$(($npe_node_max / $npe_node_gldas)) + + export NTHREADS_GLDAS=${nth_gldas:-$nth_max} + [[ $NTHREADS_GLDAS -gt $nth_max ]] && export NTHREADS_GLDAS=$nth_max + export APRUN_GLDAS="$launcher -j 1 -n $npe_gldas -N $npe_node_gldas -d $NTHREADS_GLDAS -cc depth" + + export NTHREADS_GAUSSIAN=${nth_gaussian:-1} + [[ $NTHREADS_GAUSSIAN -gt $nth_max ]] && export NTHREADS_GAUSSIAN=$nth_max + export APRUN_GAUSSIAN="$launcher -j 1 -n $npe_gaussian -N $npe_node_gaussian -d $NTHREADS_GAUSSIAN -cc depth" + + export APRUN_GLDAS_DATA_PROC="$launcher -j 1 -n $npe_gldas -N $npe_node_gldas -d 1 $mpmd" + elif [ $step = "eobs" ]; then nth_max=$(($npe_node_max / $npe_node_eobs)) - export NTHREADS_GSI=${nth_gsi:-$nth_max} + export NTHREADS_GSI=${nth_anal:-$nth_max} [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max export APRUN_GSI="$launcher -j 1 -n ${npe_gsi:-$npe_eobs} -N $npe_node_eobs -d $NTHREADS_GSI -cc depth" if [ ${USE_CFP:-"NO"} = "YES" ]; then - export APRUNCFP="$launcher -q -j 1 -n \$ncmd -N \$ncmd_max -d 1 cfp" + export APRUNCFP="$launcher -q -j 1 -n \$ncmd -N \$ncmd_max -d 1 $mpmd" fi elif [ $step = "eupd" ]; then @@ -86,7 +110,7 @@ elif [ $step = "eupd" ]; then export APRUN_ENKF="$launcher -j 1 -n ${npe_enkf:-$npe_eupd} -N $npe_node_eupd -d $NTHREADS_ENKF -cc depth" if [ ${USE_CFP:-"NO"} = "YES" ]; then - export APRUNCFP="$launcher -q -j 1 -n \$ncmd -N \$ncmd_max -d 1 cfp" + export APRUNCFP="$launcher -q -j 1 -n \$ncmd -N \$ncmd_max -d 1 $mpmd" fi elif [ $step = "fcst" ]; then @@ -96,7 +120,12 @@ elif [ $step = "fcst" ]; then export NTHREADS_FV3=${nth_fv3:-$nth_max} [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max export cores_per_node=$npe_node_max - export APRUN_FV3="$launcher -j 1 -n ${npe_fv3:-$npe_fcst} -N $npe_node_fcst -d $NTHREADS_FV3 -cc depth" + #export APRUN_FV3="$launcher -j 1 -n ${npe_fv3:-$npe_fcst} -N $npe_node_fcst -d $NTHREADS_FV3 -cc depth" + if [ $CDUMP = "gdas" ]; then + export APRUN_FV3="$launcher -j 1 -n ${npe_fcst} -N $npe_node_fcst -d $NTHREADS_FV3 -cc depth" + else + export APRUN_FV3="$launcher -j 1 -n ${npe_fcst_gfs} -N $npe_node_fcst -d $NTHREADS_FV3 -cc depth" + fi export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max @@ -129,7 +158,7 @@ elif [ $step = "post" ]; then export NTHREADS_DWN=${nth_dwn:-1} [[ $NTHREADS_DWN -gt $nth_max ]] && export NTHREADS_DWN=$nth_max - export APRUN_DWN="$launcher -j 1 -n $npe_dwn -N $npe_node_dwn -d $NTHREADS_DWN cfp" + export APRUN_DWN="$launcher -j 1 -n $npe_dwn -N $npe_node_dwn -d $NTHREADS_DWN $mpmd" elif [ $step = "ecen" ]; then @@ -147,6 +176,20 @@ elif [ $step = "ecen" ]; then [[ $NTHREADS_CALCINC -gt $nth_max ]] && export NTHREADS_CALCINC=$nth_max export APRUN_CALCINC="$launcher -j 1 -n $npe_ecen -N $npe_node_ecen -d $NTHREADS_CALCINC -cc depth" +elif [ $step = "esfc" ]; then + + nth_max=$(($npe_node_max / $npe_node_esfc)) + + export NTHREADS_ESFC=${nth_esfc:-$nth_max} + [[ $NTHREADS_ESFC -gt $nth_max ]] && export NTHREADS_ESFC=$nth_max + npe_node_esfc=$(($npe_node_max / $NTHREADS_ESFC)) + export APRUN_ESFC="$launcher -j 1 -n $npe_esfc -N $npe_node_esfc -d $NTHREADS_ESFC -cc depth" + + export NTHREADS_CYCLE=${nth_cycle:-12} + [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max + npe_node_cycle=$(($npe_node_max / $NTHREADS_CYCLE)) + export APRUN_CYCLE="$launcher -j 1 -n $npe_esfc -N $npe_node_cycle -d $NTHREADS_CYCLE -cc depth" + elif [ $step = "epos" ]; then nth_max=$(($npe_node_max / $npe_node_epos)) @@ -166,6 +209,11 @@ elif [ $step = "vrfy" ]; then export IOBUF_PARAMS="*:size=32M:count=4:verbose" export APRUNTRACK="$launcher -j1 -n1 -N1 -d1 -cc depth" +elif [ $step = "metp" ]; then + + export IOBUF_PARAMS="*:size=32M:count=4:verbose" + export APRUNTRACK="$launcher -j1 -n1 -N1 -d1 -cc depth" + elif [ $step = "postsnd" ]; then export IOBUF_PARAMS="sigf*:size=128M:count=20:prefetch=0:verbose,gfs_collectiv*:size=128M:count=2:prefetch=0:verbose,*.snd:size=128M:count=3:prefetch=0:verbose,*.sfc:size=32M:count=3:prefetch=0:verbose,bufr.*:size=8M:count=20:prefetch=0:verbose" @@ -177,20 +225,20 @@ elif [ $step = "postsnd" ]; then export NTHREADS_POSTSNDCFP=${nth_postsndcfp:-1} [[ $NTHREADS_POSTSNDCFP -gt $nth_max ]] && export NTHREADS_POSTSNDCFP=$nth_max - export APRUN_POSTSNDCFP="$launcher -j 1 -n $npe_postsndcfp -N $npe_node_postsndcfp -d $NTHREADS_POSTSNDCFP cfp" + export APRUN_POSTSNDCFP="$launcher -j 1 -n $npe_postsndcfp -N $npe_node_postsndcfp -d $NTHREADS_POSTSNDCFP $mpmd" elif [ $step = "awips" ]; then nth_max=$(($npe_node_max / $npe_node_awips)) export NTHREADS_AWIPS=${nth_awips:-2} [[ $NTHREADS_AWIPS -gt $nth_max ]] && export NTHREADS_AWIPS=$nth_max - export APRUN_AWIPSCFP="$launcher -j 1 -n $npe_awips -N $npe_node_awips -d $NTHREADS_AWIPS -cc depth cfp" + export APRUN_AWIPSCFP="$launcher -j 1 -n $npe_awips -N $npe_node_awips -d $NTHREADS_AWIPS -cc depth $mpmd" elif [ $step = "gempak" ]; then nth_max=$(($npe_node_max / $npe_node_gempak)) export NTHREADS_GEMPAK=${nth_gempak:-3} [[ $NTHREADS_GEMPAK -gt $nth_max ]] && export NTHREADS_GEMPAK=$nth_max - export APRUN_GEMPAKCFP="$launcher -j 1 -n $npe_gempak -N $npe_node_gempak -d $NTHREADS_GEMPAK cfp" + export APRUN_GEMPAKCFP="$launcher -j 1 -n $npe_gempak -N $npe_node_gempak -d $NTHREADS_GEMPAK $mpmd" fi diff --git a/env/WCOSS_DELL_P3.env b/env/WCOSS_DELL_P3.env index 853f62d651..a028826b93 100755 --- a/env/WCOSS_DELL_P3.env +++ b/env/WCOSS_DELL_P3.env @@ -4,8 +4,8 @@ if [ $# -ne 1 ]; then echo "Must specify an input argument to set runtime environment variables!" echo "argument can be any one of the following:" - echo "anal fcst post vrfy" - echo "eobs eupd ecen efcs epos" + echo "anal fcst post vrfy metp" + echo "eobs eupd ecen esfc efcs epos" echo "postsnd awips gempak" exit 1 @@ -14,12 +14,12 @@ fi step=$1 # WCOSS_DELL_P3 information -export npe_node_max=28 export launcher="mpirun -n" +export mpmd="cfp" -# Due to ESMF issue, fv3gfs model must run with npe_node_max=24 -if [ $step = "fcst" -o $step = "efcs" ]; then - export npe_node_max=24 +export npe_node_max=28 +if [ "$QUEUE" = "dev2" -o "$QUEUE" = "devonprod2" -o "$QUEUE" = "devmax2" ]; then # WCOSS Dell 3.5 + export npe_node_max=40 fi # Configure MPI environment @@ -41,10 +41,16 @@ if [ $step = "prep" -o $step = "prepbufr" ]; then nth_max=$(($npe_node_max / $npe_node_prep)) - export POE="NO" - export BACK=${BACK:-"YES"} + export POE=${POE:-"YES"} + export BACK=${BACK:-"off"} export sys_tp="Dell-p3" +elif [ $step = "waveinit" -o $step = "waveprep" -o $step = "wavepostsbs" -o $step = "wavepostbndpnt" -o $step = "wavepostpnt" ]; then + + if [ $step = "waveprep" ]; then export MP_PULSE=0 ; fi + export wavempexec=${launcher} + export wave_mpmd=${mpmd} + elif [ $step = "anal" ]; then nth_max=$(($npe_node_max / $npe_node_anal)) @@ -66,9 +72,27 @@ elif [ $step = "anal" ]; then npe_gausfcanl=${npe_gausfcanl:-1} export APRUN_GAUSFCANL="$launcher $npe_gausfcanl" - if [ ${USE_CFP:-"NO"} = "YES" ]; then - export APRUNCFP="$launcher \$ncmd cfp" - fi + export NTHREADS_CHGRES=${nth_echgres:-14} + [[ $NTHREADS_CHGRES -gt $npe_node_max ]] && export NTHREADS_CHGRES=$npe_node_max + export APRUN_CHGRES="" + + export CFP_MP=${CFP_MP:-"NO"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher \$ncmd $mpmd" + +elif [ $step = "gldas" ]; then + + nth_max=$(($npe_node_max / $npe_node_gldas)) + + export NTHREADS_GLDAS=${nth_gldas:-$nth_max} + [[ $NTHREADS_GLDAS -gt $nth_max ]] && export NTHREADS_GLDAS=$nth_max + export APRUN_GLDAS="$launcher $npe_gldas" + + export NTHREADS_GAUSSIAN=${nth_gaussian:-1} + [[ $NTHREADS_GAUSSIAN -gt $nth_max ]] && export NTHREADS_GAUSSIAN=$nth_max + export APRUN_GAUSSIAN="$launcher $npe_gaussian" + + export APRUN_GLDAS_DATA_PROC="$launcher $npe_gldas $mpmd" elif [ $step = "eobs" ]; then @@ -78,9 +102,9 @@ elif [ $step = "eobs" ]; then [[ $NTHREADS_GSI -gt $nth_max ]] && export NTHREADS_GSI=$nth_max export APRUN_GSI="$launcher ${npe_gsi:-${npe_eobs:-$PBS_NP}}" - if [ ${USE_CFP:-"NO"} = "YES" ]; then - export APRUNCFP="$launcher \$ncmd cfp" - fi + export CFP_MP=${CFP_MP:-"NO"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher \$ncmd $mpmd" elif [ $step = "eupd" ]; then @@ -90,9 +114,9 @@ elif [ $step = "eupd" ]; then [[ $NTHREADS_ENKF -gt $nth_max ]] && export NTHREADS_ENKF=$nth_max export APRUN_ENKF="$launcher ${npe_enkf:-${npe_eupd:-$PBS_NP}}" - if [ ${USE_CFP:-"NO"} = "YES" ]; then - export APRUNCFP="$launcher \$ncmd cfp" - fi + export CFP_MP=${CFP_MP:-"NO"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="$launcher \$ncmd $mpmd" elif [ $step = "fcst" ]; then @@ -101,8 +125,12 @@ elif [ $step = "fcst" ]; then export NTHREADS_FV3=${nth_fv3:-$nth_max} [[ $NTHREADS_FV3 -gt $nth_max ]] && export NTHREADS_FV3=$nth_max export cores_per_node=$npe_node_max - export APRUN_FV3="$launcher ${npe_fv3:-${npe_fcst:-$PBS_NP}}" - + if [ $CDUMP = "gdas" ]; then + #export APRUN_FV3="$launcher ${npe_fv3:-${npe_fcst:-$PBS_NP}}" + export APRUN_FV3="$launcher ${npe_fcst:-$PBS_NP}" + else + export APRUN_FV3="$launcher ${npe_fcst_gfs:-$PBS_NP}" + fi export NTHREADS_REGRID_NEMSIO=${nth_regrid_nemsio:-1} [[ $NTHREADS_REGRID_NEMSIO -gt $nth_max ]] && export NTHREADS_REGRID_NEMSIO=$nth_max export APRUN_REGRID_NEMSIO="$launcher $LEVS" @@ -134,7 +162,7 @@ elif [ $step = "post" ]; then export NTHREADS_DWN=${nth_dwn:-1} [[ $NTHREADS_DWN -gt $nth_max ]] && export NTHREADS_DWN=$nth_max - export APRUN_DWN="$launcher ${npe_dwn:-$PBS_NP} cfp" + export APRUN_DWN="$launcher ${npe_dwn:-$PBS_NP} $mpmd" elif [ $step = "ecen" ]; then @@ -156,6 +184,18 @@ elif [ $step = "ecen" ]; then [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max export APRUN_CYCLE="$launcher $npe_ecen" +elif [ $step = "esfc" ]; then + + nth_max=$(($npe_node_max / $npe_node_esfc)) + + export NTHREADS_ESFC=${nth_esfc:-$nth_max} + [[ $NTHREADS_ESFC -gt $nth_max ]] && export NTHREADS_ESFC=$nth_max + export APRUN_ESFC="$launcher ${npe_esfc:-$PBS_NP}" + + export NTHREADS_CYCLE=${nth_cycle:-14} + [[ $NTHREADS_CYCLE -gt $npe_node_max ]] && export NTHREADS_CYCLE=$npe_node_max + export APRUN_CYCLE="$launcher $npe_esfc" + elif [ $step = "epos" ]; then nth_max=$(($npe_node_max / $npe_node_epos)) @@ -180,7 +220,7 @@ elif [ $step = "postsnd" ]; then export NTHREADS_POSTSNDCFP=${nth_postsndcfp:-1} [[ $NTHREADS_POSTSNDCFP -gt $nth_max ]] && export NTHREADS_POSTSNDCFP=$nth_max - export APRUN_POSTSNDCFP="$launcher $npe_postsndcfp cfp" + export APRUN_POSTSNDCFP="$launcher $npe_postsndcfp $mpmd" elif [ $step = "awips" ]; then @@ -188,7 +228,7 @@ elif [ $step = "awips" ]; then export NTHREADS_AWIPS=${nth_awips:-2} [[ $NTHREADS_AWIPS -gt $nth_max ]] && export NTHREADS_AWIPS=$nth_max - export APRUN_AWIPSCFP="$launcher ${npe_awips:-$PBS_NP} cfp" + export APRUN_AWIPSCFP="$launcher ${npe_awips:-$PBS_NP} $mpmd" elif [ $step = "gempak" ]; then @@ -196,7 +236,7 @@ elif [ $step = "gempak" ]; then export NTHREADS_GEMPAK=${nth_gempak:-1} [[ $NTHREADS_GEMPAK -gt $nth_max ]] && export NTHREADS_GEMPAK=$nth_max - export APRUN_GEMPAKCFP="$launcher \$ntasks cfp" + export APRUN_GEMPAKCFP="$launcher \$ntasks $mpmd" fi diff --git a/env/gfs.ver b/env/gfs.ver index efd4a1d9c3..a8f32bd289 100644 --- a/env/gfs.ver +++ b/env/gfs.ver @@ -10,11 +10,11 @@ export cfp_intel_sandybridge_ver=1.1.0 export iobuf_ver=2.0.7 export ESMF_intel_sandybridge_ver=3_1_0rp5 export ESMF_intel_haswell_ver=3_1_0rp5 -export gempak_ver=7.3.0 +export gempak_ver=7.3.3 export old_gempak_ver=6.32.0 export NCL_gnu_sandybridge_ver=6.3.0 export ncarg_intel_sandybridge_ver=6.1.0 -export dumpjb_ver=4.0.0 +export dumpjb_ver=5.1.0 ## FOLLOWING are used by JGDAS_TROPC export obsproc_dump_ver=v4.0.0 diff --git a/gempak/fix/g2varsncep1.tbl b/gempak/fix/g2varsncep1.tbl index b9f78041b4..594db33899 100755 --- a/gempak/fix/g2varsncep1.tbl +++ b/gempak/fix/g2varsncep1.tbl @@ -216,6 +216,10 @@ 003 192 001 000 Sim Brightness T, Channel 3 K SBT123 0 -9999.00 003 192 002 000 Sim Brightness T, Channel 4 K SBT124 0 -9999.00 003 192 003 000 Sim Brightness T, Channel 6 K SBT126 0 -9999.00 +003 192 053 000 Sim Brightness T ABI, Band-8 K SBTAGR8 0 -9999.00 +003 192 054 000 Sim Brightness T ABI, Band-9 K SBTAGR9 0 -9999.00 +003 192 055 000 Sim Brightness T ABI, Band-10 K SBTAGR10 0 -9999.00 +003 192 058 000 Sim Brightness T ABI, Band-13 K SBTAGR13 0 -9999.00 ! ! Product Discipline 10 - Oceanographic Products ! CATEGORY 0 - Waves category diff --git a/gempak/fix/g2varswmo2.tbl b/gempak/fix/g2varswmo2.tbl index 820d6faa48..61151b12b5 100755 --- a/gempak/fix/g2varswmo2.tbl +++ b/gempak/fix/g2varswmo2.tbl @@ -428,7 +428,7 @@ 010 001 002 000 u-component of current m s-1 URELC 0 -9999.00 010 001 003 000 v-component of current m s-1 VRELC 0 -9999.00 ! -010 002 000 000 Ice cover Proportion ICE 0 -9999.00 +010 002 000 000 Ice cover Proportion ICEC 0 -9999.00 010 002 001 000 Ice thickness m ICET 0 -9999.00 010 002 002 000 Direction of ice drift Degree true DRCTI 0 -9999.00 010 002 003 000 Speed of ice drift m s-1 SPEDI 0 -9999.00 diff --git a/gempak/fix/waf1 b/gempak/fix/waf1 deleted file mode 100755 index 17ea4619e5..0000000000 --- a/gempak/fix/waf1 +++ /dev/null @@ -1,18 +0,0 @@ -$MAPFIL locowo.gsf -GVCORD PRES -GDPFUN tmpc ! kntv(wnd) -MAP 1//2/yes -BOXLIN 1//4 -REGION plot -POSN 0/WAFT -TITLE 0 -TXTYPE -TXTFIL -TXTLOC -SCALE 0 ! 0 -TYPE p ! b -FILTER no -SKIP 0/4;4 -WIND bk1/1.0//132 -CINT ! 5 -LINE 4/31/2/1/1 diff --git a/gempak/fix/waf2 b/gempak/fix/waf2 deleted file mode 100755 index cd4d7422d9..0000000000 --- a/gempak/fix/waf2 +++ /dev/null @@ -1,3 +0,0 @@ -CLEAR no -MAP 0 -BOXLIN 0 diff --git a/gempak/fix/waf_tiff3.parm b/gempak/fix/waf_tiff3.parm deleted file mode 100755 index 437d743b30..0000000000 --- a/gempak/fix/waf_tiff3.parm +++ /dev/null @@ -1,5043 +0,0 @@ - -! <<<<< A_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -57;-126;69;-21 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWNQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-51.5;-120.5/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/53.0;-25.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-85.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_85.t - TXTLOC = #68.48;-38.93 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.50;-39.35 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWNQ85.wmo - TXTLOC = #68.27;-119.57 - r - - -! <<<<< A_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -57;-126;69;-21 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWNQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-51.5;-120.5/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/53.0;-25.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-85.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_70.t - TXTLOC = #68.48;-38.93 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.50;-39.35 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWNQ70.wmo - TXTLOC = #68.27;-119.57 - r - - -! <<<<< A_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -57;-126;69;-21 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWNQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-51.5;-120.5/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/53.0;-25.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-85.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_50.t - TXTLOC = #68.48;-38.93 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.50;-39.35 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWNQ50.wmo - TXTLOC = #68.27;-119.57 - r - - -! <<<<< A_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -57;-126;69;-21 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWNQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-51.5;-120.5/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/53.0;-25.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-85.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_40.t - TXTLOC = #68.48;-38.93 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.50;-39.35 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWNQ40.wmo - TXTLOC = #68.27;-119.57 - r - - -! <<<<< A_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -57;-126;69;-21 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWNQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-51.5;-120.5/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/53.0;-25.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-85.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_30.t - TXTLOC = #68.48;-38.93 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.50;-39.35 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWNQ30.wmo - TXTLOC = #68.27;-119.57 - r - - -! <<<<< A_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -57;-126;69;-21 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWNQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-51.5;-120.5/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/53.0;-25.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-85.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_25.t - TXTLOC = #68.48;-38.93 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.50;-39.35 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWNQ25.wmo - TXTLOC = #68.27;-119.57 - r - - -! <<<<< A_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -57;-126;69;-21 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWNQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-51.5;-120.5/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/53.0;-25.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-85.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_20.t - TXTLOC = #68.48;-38.93 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.50;-39.35 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWNQ20.wmo - TXTLOC = #68.27;-119.57 - r - - -! <<<<< B_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -44;-126;53;37 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWSQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-41.0;-118.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/52.5;37.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;32.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_85.t - TXTLOC = #-31.05;-107.20 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-41.20;-108.22 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWSQ85.wmo - TXTLOC = #51.80;-119.35 - r - - -! <<<<< B_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -44;-126;53;37 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWSQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-41.0;-118.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/52.5;37.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;32.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_70.t - TXTLOC = #-31.05;-107.20 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-41.20;-108.22 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWSQ70.wmo - TXTLOC = #51.80;-119.35 - r - - -! <<<<< B_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -44;-126;53;37 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWSQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-41.0;-118.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/52.5;37.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;32.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_50.t - TXTLOC = #-31.05;-107.20 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-41.20;-108.22 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWSQ50.wmo - TXTLOC = #51.80;-119.35 - r - - -! <<<<< B_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -44;-126;53;37 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWSQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-41.0;-118.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/52.5;37.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;32.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_40.t - TXTLOC = #-31.05;-107.20 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-41.20;-108.22 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWSQ40.wmo - TXTLOC = #51.80;-119.35 - r - - -! <<<<< B_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -44;-126;53;37 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWSQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-41.0;-118.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/52.5;37.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;32.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_30.t - TXTLOC = #-31.05;-107.20 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-41.20;-108.22 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWSQ30.wmo - TXTLOC = #51.80;-119.35 - r - - -! <<<<< B_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -44;-126;53;37 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWSQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-41.0;-118.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/52.5;37.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;32.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_25.t - TXTLOC = #-31.05;-107.20 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-41.20;-108.22 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWSQ25.wmo - TXTLOC = #51.80;-119.35 - r - - -! <<<<< B_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -44;-126;53;37 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWSQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-41.0;-118.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/52.5;37.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;32.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_20.t - TXTLOC = #-31.05;-107.20 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-41.20;-108.22 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWSQ20.wmo - TXTLOC = #51.80;-119.35 - r - - -! <<<<< B_150 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 150 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -44;-126;53;37 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWSQ15 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-41.0;-118.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/52.5;37.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;32.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_15.t - TXTLOC = #-31.05;-107.20 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-41.20;-108.22 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWSQ15.wmo - TXTLOC = #51.80;-119.35 - r - - -! <<<<< B_70 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 70 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -44;-126;53;37 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWSQ07 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-41.0;-118.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/52.5;37.0/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;32.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_07.t - TXTLOC = #-31.05;-107.20 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-41.20;-108.22 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWSQ07.wmo - TXTLOC = #51.80;-119.35 - r - - -! <<<<< C_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -39;-28;69;63 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWRQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-37.0;-23.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;60.5/2 - r - - LATLON = 1/90/1/1/10;10/24.0;19.4/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_85.t - TXTLOC = #68.55;47.95 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.9;47.53 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWRQ85.wmo - TXTLOC = #68.40;-22.55 - r - - -! <<<<< C_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -39;-28;69;63 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWRQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-37.0;-23.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;60.5/2 - r - - LATLON = 1/90/1/1/10;10/24.0;19.4/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_70.t - TXTLOC = #68.55;47.95 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.9;47.53 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWRQ70.wmo - TXTLOC = #68.40;-22.55 - r - - -! <<<<< C_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -39;-28;69;63 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWRQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-37.0;-23.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;60.5/2 - r - - LATLON = 1/90/1/1/10;10/24.0;19.4/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_50.t - TXTLOC = #68.55;47.95 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.9;47.53 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWRQ50.wmo - TXTLOC = #68.40;-22.55 - r - - -! <<<<< C_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -39;-28;69;63 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWRQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-37.0;-23.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;60.5/2 - r - - LATLON = 1/90/1/1/10;10/24.0;19.4/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_40.t - TXTLOC = #68.55;47.95 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.9;47.53 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWRQ40.wmo - TXTLOC = #68.40;-22.55 - r - - -! <<<<< C_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -39;-28;69;63 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWRQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-37.0;-23.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;60.5/2 - r - - LATLON = 1/90/1/1/10;10/24.0;19.4/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_30.t - TXTLOC = #68.55;47.95 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.9;47.53 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWRQ30.wmo - TXTLOC = #68.40;-22.55 - r - - -! <<<<< C_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -39;-28;69;63 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWRQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-37.0;-23.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;60.5/2 - r - - LATLON = 1/90/1/1/10;10/24.0;19.4/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_25.t - TXTLOC = #68.55;47.95 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.9;47.53 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWRQ25.wmo - TXTLOC = #68.40;-22.55 - r - - -! <<<<< C_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -39;-28;69;63 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWRQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-37.0;-23.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;60.5/2 - r - - LATLON = 1/90/1/1/10;10/24.0;19.4/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_20.t - TXTLOC = #68.55;47.95 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.9;47.53 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWRQ20.wmo - TXTLOC = #68.40;-22.55 - r - - -! <<<<< C_150 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 150 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -39;-28;69;63 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWRQ15 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-37.0;-23.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;60.5/2 - r - - LATLON = 1/90/1/1/10;10/24.0;19.4/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_15.t - TXTLOC = #68.55;47.95 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.9;47.53 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWRQ15.wmo - TXTLOC = #68.40;-22.55 - r - - -! <<<<< C_70 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 70 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -39;-28;69;63 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWRQ07 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-37.0;-23.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;60.5/2 - r - - LATLON = 1/90/1/1/10;10/24.0;19.4/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_07.t - TXTLOC = #68.55;47.95 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #63.9;47.53 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWRQ07.wmo - TXTLOC = #68.40;-22.55 - r - - -! <<<<< D_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -30;-25;63;133 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWZQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-26.7;-16.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;129.5/2 - r - - LATLON = 1/90/1/1/10;10/34.0;145.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_85.t - TXTLOC = #-14.60;-11.90 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = #-27.86;-11.90 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWZQ85.wmo - TXTLOC = #62.01;-18.30 - r - - -! <<<<< D_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -30;-25;63;133 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWZQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-26.7;-16.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;129.5/2 - r - - LATLON = 1/90/1/1/10;10/34.0;145.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_70.t - TXTLOC = #-14.60;-11.90 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = #-27.86;-11.90 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWZQ70.wmo - TXTLOC = #62.01;-18.30 - r - - -! <<<<< D_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -30;-25;63;133 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWZQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-26.7;-16.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;129.5/2 - r - - LATLON = 1/90/1/1/10;10/34.0;145.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_50.t - TXTLOC = #-14.60;-11.90 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = #-27.86;-11.90 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWZQ50.wmo - TXTLOC = #62.01;-18.30 - r - - -! <<<<< D_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -30;-25;63;133 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWZQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-26.7;-16.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;129.5/2 - r - - LATLON = 1/90/1/1/10;10/34.0;145.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_40.t - TXTLOC = #-14.60;-11.90 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = #-27.86;-11.90 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWZQ40.wmo - TXTLOC = #62.01;-18.30 - r - - -! <<<<< D_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -30;-25;63;133 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWZQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-26.7;-16.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;129.5/2 - r - - LATLON = 1/90/1/1/10;10/34.0;145.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_30.t - TXTLOC = #-14.60;-11.90 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = #-27.86;-11.90 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWZQ30.wmo - TXTLOC = #62.01;-18.30 - r - - -! <<<<< D_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -30;-25;63;133 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWZQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-26.7;-16.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;129.5/2 - r - - LATLON = 1/90/1/1/10;10/34.0;145.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_25.t - TXTLOC = #-14.60;-11.90 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = #-27.86;-11.90 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWZQ25.wmo - TXTLOC = #62.01;-18.30 - r - - -! <<<<< D_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -30;-25;63;133 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWZQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-26.7;-16.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;129.5/2 - r - - LATLON = 1/90/1/1/10;10/34.0;145.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_20.t - TXTLOC = #-14.60;-11.90 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = #-27.86;-11.90 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWZQ20.wmo - TXTLOC = #62.01;-18.30 - r - - -! <<<<< D_150 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 150 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -30;-25;63;133 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWZQ15 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-26.7;-16.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;129.5/2 - r - - LATLON = 1/90/1/1/10;10/34.0;145.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_15.t - TXTLOC = #-14.60;-11.90 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = #-27.86;-11.90 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWZQ15.wmo - TXTLOC = #62.01;-18.30 - r - - -! <<<<< D_70 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 70 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -30;-25;63;133 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWZQ07 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-26.7;-16.0/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/62.5;129.5/2 - r - - LATLON = 1/90/1/1/10;10/34.0;145.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_07.t - TXTLOC = #-14.60;-11.90 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = #-27.86;-11.90 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWZQ07.wmo - TXTLOC = #62.01;-18.30 - r - - -! <<<<< E_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;21;49;180 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWGQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;29.8/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;178.2/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-30.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_85.t - TXTLOC = #-36.90;40.10 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;38.75 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWGQ85.wmo - TXTLOC = #47.67;173.42 - r - - -! <<<<< E_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;21;49;180 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWGQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;29.8/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;178.2/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-30.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_70.t - TXTLOC = #-36.90;40.10 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;38.75 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWGQ70.wmo - TXTLOC = #47.67;173.42 - r - - -! <<<<< E_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;21;49;180 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWGQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;29.8/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;178.2/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-30.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_50.t - TXTLOC = #-36.90;40.10 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;38.75 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWGQ50.wmo - TXTLOC = #47.67;173.42 - r - - -! <<<<< E_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;21;49;180 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWGQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;29.8/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;178.2/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-30.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_40.t - TXTLOC = #-36.90;40.10 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;38.75 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWGQ40.wmo - TXTLOC = #47.67;173.42 - r - - -! <<<<< E_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;21;49;180 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWGQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;29.8/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;178.2/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-30.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_30.t - TXTLOC = #-36.90;40.10 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;38.75 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWGQ30.wmo - TXTLOC = #47.67;173.42 - r - - -! <<<<< E_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;21;49;180 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWGQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;29.8/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;178.2/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-30.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_25.t - TXTLOC = #-36.90;40.10 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;38.75 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWGQ25.wmo - TXTLOC = #47.67;173.42 - r - - -! <<<<< E_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;21;49;180 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWGQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;29.8/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;178.2/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-30.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_20.t - TXTLOC = #-36.90;40.10 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;38.75 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWGQ20.wmo - TXTLOC = #47.67;173.42 - r - - -! <<<<< E_150 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 150 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;21;49;180 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWGQ15 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;29.8/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;178.2/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-30.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_15.t - TXTLOC = #-36.90;40.10 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;38.75 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWGQ15.wmo - TXTLOC = #47.67;173.42 - r - - -! <<<<< E_70 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 70 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;21;49;180 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWGQ07 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;29.8/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;178.2/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;-30.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_07.t - TXTLOC = #-36.90;40.10 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;38.75 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWGQ07.wmo - TXTLOC = #47.67;173.42 - r - - -! <<<<< F_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;103;49;264 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWFQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;111.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;264.5/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;182.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_85.t - TXTLOC = #-36.90;245.13 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;244.85 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWFQ85.wmo - TXTLOC = #47.60;109.75 - r - - -! <<<<< F_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;103;49;264 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWFQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;111.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;264.5/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;182.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_70.t - TXTLOC = #-36.90;245.13 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;244.85 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWFQ70.wmo - TXTLOC = #47.60;109.75 - r - - -! <<<<< F_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;103;49;264 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWFQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;111.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;264.5/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;182.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_50.t - TXTLOC = #-36.90;245.13 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;244.85 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWFQ50.wmo - TXTLOC = #47.60;109.75 - r - - -! <<<<< F_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;103;49;264 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWFQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;111.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;264.5/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;182.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_40.t - TXTLOC = #-36.90;245.13 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;244.85 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWFQ40.wmo - TXTLOC = #47.60;109.75 - r - - -! <<<<< F_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;103;49;264 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWFQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;111.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;264.5/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;182.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_30.t - TXTLOC = #-36.90;245.13 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;244.85 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWFQ30.wmo - TXTLOC = #47.60;109.75 - r - - -! <<<<< F_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;103;49;264 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWFQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;111.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;264.5/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;182.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_25.t - TXTLOC = #-36.90;245.13 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;244.85 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWFQ25.wmo - TXTLOC = #47.60;109.75 - r - - -! <<<<< F_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;103;49;264 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWFQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;111.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;264.5/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;182.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_20.t - TXTLOC = #-36.90;245.13 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;244.85 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWFQ20.wmo - TXTLOC = #47.60;109.75 - r - - -! <<<<< F_150 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 150 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;103;49;264 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWFQ15 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;111.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;264.5/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;182.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_15.t - TXTLOC = #-36.90;245.13 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;244.85 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWFQ15.wmo - TXTLOC = #47.60;109.75 - r - - -! <<<<< F_70 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 70 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -49;103;49;264 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWFQ07 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/90/1/1/10;10/-46.5;111.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/90/1/1/10;10/48.5;264.5/2 - r - - LATLON = 1/90/1/1/10;10/-1.5;182.0/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_07.t - TXTLOC = #-36.90;245.13 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-46.50;244.85 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWFQ07.wmo - TXTLOC = #47.60;109.75 - r - - -! <<<<< G_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -1.5;33;23;151 - PROJ = str/90;65;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWCQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_85.t - TXTLOC = 0.101;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = 0.103;0.056 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWCQ85.wmo - TXTLOC = 0.059;0.990 - r - - -! <<<<< G_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -1.5;33;23;151 - PROJ = str/90;65;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWCQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_70.t - TXTLOC = 0.101;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = 0.103;0.056 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWCQ70.wmo - TXTLOC = 0.059;0.990 - r - -! <<<<< G_600 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 600 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -1.5;33;23;151 - PROJ = str/90;65;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWCQ60 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_60.t - TXTLOC = 0.101;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = 0.103;0.056 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWCQ60.wmo - TXTLOC = 0.059;0.990 - r - - -! <<<<< G_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -1.5;33;23;151 - PROJ = str/90;65;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWCQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_50.t - TXTLOC = 0.101;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = 0.103;0.056 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWCQ50.wmo - TXTLOC = 0.059;0.990 - r - - -! <<<<< G_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -1.5;33;23;151 - PROJ = str/90;65;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWCQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_40.t - TXTLOC = 0.101;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = 0.103;0.056 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWCQ40.wmo - TXTLOC = 0.059;0.990 - r - - -! <<<<< G_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -1.5;33;23;151 - PROJ = str/90;65;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWCQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_30.t - TXTLOC = 0.101;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = 0.103;0.056 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWCQ30.wmo - TXTLOC = 0.059;0.990 - r - - -! <<<<< G_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -1.5;33;23;151 - PROJ = str/90;65;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWCQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_25.t - TXTLOC = 0.101;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = 0.103;0.056 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWCQ25.wmo - TXTLOC = 0.059;0.990 - r - - -! <<<<< G_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -1.5;33;23;151 - PROJ = str/90;65;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWCQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_20.t - TXTLOC = 0.101;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = 0.103;0.056 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWCQ20.wmo - TXTLOC = 0.059;0.990 - r - - -! <<<<< G_150 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 150 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -1.5;33;23;151 - PROJ = str/90;65;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWCQ15 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_15.t - TXTLOC = 0.101;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = 0.103;0.056 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWCQ15.wmo - TXTLOC = 0.059;0.990 - r - - -! <<<<< G_70 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 70 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -1.5;33;23;151 - PROJ = str/90;65;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWCQ07 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = tall_stamp_07.t - TXTLOC = 0.101;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = tall_ur_perm.t - TXTLOC = 0.103;0.056 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWCQ07.wmo - TXTLOC = 0.059;0.990 - r - - -! <<<<< H_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = 4.5;-85;27;53.5 - PROJ = str/90;-45;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWAQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_85.t - TXTLOC = 0.854;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.858;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWAQ85.wmo - TXTLOC = 0.046;0.990 - r - - -! <<<<< H_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = 4.5;-85;27;53.5 - PROJ = str/90;-45;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWAQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;9 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_70.t - TXTLOC = 0.854;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.858;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWAQ70.wmo - TXTLOC = 0.046;0.990 - r - -! <<<<< H_600 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 600 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = 4.5;-85;27;53.5 - PROJ = str/90;-45;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWAQ60 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_60.t - TXTLOC = 0.854;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.858;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWAQ60.wmo - TXTLOC = 0.046;0.990 - r - - -! <<<<< H_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = 4.5;-85;27;53.5 - PROJ = str/90;-45;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWAQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_50.t - TXTLOC = 0.854;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.858;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWAQ50.wmo - TXTLOC = 0.046;0.990 - r - - -! <<<<< H_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = 4.5;-85;27;53.5 - PROJ = str/90;-45;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWAQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_40.t - TXTLOC = 0.854;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.858;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWAQ40.wmo - TXTLOC = 0.046;0.990 - r - - -! <<<<< H_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = 4.5;-85;27;53.5 - PROJ = str/90;-45;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWAQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_30.t - TXTLOC = 0.854;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.858;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWAQ30.wmo - TXTLOC = 0.046;0.990 - r - - -! <<<<< H_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = 4.5;-85;27;53.5 - PROJ = str/90;-45;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWAQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_25.t - TXTLOC = 0.854;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.858;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWAQ25.wmo - TXTLOC = 0.046;0.990 - r - - -! <<<<< H_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = 4.5;-85;27;53.5 - PROJ = str/90;-45;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWAQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_20.t - TXTLOC = 0.854;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.858;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWAQ20.wmo - TXTLOC = 0.046;0.990 - r - - -! <<<<< H_150 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 150 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = 4.5;-85;27;53.5 - PROJ = str/90;-45;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWAQ15 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_15.t - TXTLOC = 0.854;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.858;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWAQ15.wmo - TXTLOC = 0.046;0.990 - r - - -! <<<<< H_70 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 70 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = 4.5;-85;27;53.5 - PROJ = str/90;-45;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWAQ07 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/19;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_07.t - TXTLOC = 0.854;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.858;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWAQ07.wmo - TXTLOC = 0.046;0.990 - r - - -! <<<<< I_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -4.0;164.0;33.0;-60 - PROJ = str/90;-155;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWYQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_85.t - TXTLOC = 0.838;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.842;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWYQ85.wmo - TXTLOC = 0.062;0.990 - r - - -! <<<<< I_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -4.0;164.0;33.0;-60 - PROJ = str/90;-155;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWYQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_70.t - TXTLOC = 0.838;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.842;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWYQ70.wmo - TXTLOC = 0.062;0.990 - r - - -! <<<<< I_600 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 600 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -4.0;164.0;33.0;-60 - PROJ = str/90;-155;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWYQ60 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_60.t - TXTLOC = 0.838;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.842;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWYQ60.wmo - TXTLOC = 0.062;0.990 - r - - -! <<<<< I_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -4.0;164.0;33.0;-60 - PROJ = str/90;-155;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWYQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_50.t - TXTLOC = 0.838;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.842;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWYQ50.wmo - TXTLOC = 0.062;0.990 - r - - -! <<<<< I_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -4.0;164.0;33.0;-60 - PROJ = str/90;-155;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWYQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_40.t - TXTLOC = 0.838;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.842;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWYQ40.wmo - TXTLOC = 0.062;0.990 - r - - -! <<<<< I_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -4.0;164.0;33.0;-60 - PROJ = str/90;-155;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWYQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_30.t - TXTLOC = 0.838;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.842;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWYQ30.wmo - TXTLOC = 0.062;0.990 - r - - -! <<<<< I_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -4.0;164.0;33.0;-60 - PROJ = str/90;-155;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWYQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_25.t - TXTLOC = 0.838;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.842;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWYQ25.wmo - TXTLOC = 0.062;0.990 - r - - -! <<<<< I_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -4.0;164.0;33.0;-60 - PROJ = str/90;-155;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWYQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_20.t - TXTLOC = 0.838;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.842;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWYQ20.wmo - TXTLOC = 0.062;0.990 - r - - -! <<<<< I_150 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 150 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -4.0;164.0;33.0;-60 - PROJ = str/90;-155;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWYQ15 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_15.t - TXTLOC = 0.838;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.842;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWYQ15.wmo - TXTLOC = 0.062;0.990 - r - - -! <<<<< I_70 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 70 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -4.0;164.0;33.0;-60 - PROJ = str/90;-155;0/2;2;2;2 - GDPFUN = mask(tmpc,sle(mul(latr,rtd),45)) ! vmsk(kntv(wnd),sle(mul(latr,rtd),45)) - SKIP = 0/4;4 - DEVICE = tiff | PWYQ07 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),45,75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),45,75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),75,85)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),75,85)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10//2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_07.t - TXTLOC = 0.838;0.182 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.842;0.066 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWYQ07.wmo - TXTLOC = 0.062;0.990 - r - - -! <<<<< J_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10.0;115.0;-5.0;260.0 - PROJ = str/-90;-140;0/2;2;2;2 - GDPFUN = mask(tmpc,sgt(mul(latr,rtd),-45)) ! vmsk(kntv(wnd),sgt(mul(latr,rtd),-45)) - SKIP = 0/4;4 - DEVICE = tiff | PWJQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-45,-75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-45,-75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-75,-88)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-75,-88)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10/-33;-144/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_85.t - TXTLOC = 0.860;0.985 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.864;0.869 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWJQ85.wmo - TXTLOC = 0.039;0.990 - r - - -! <<<<< J_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10.0;115.0;-5.0;260.0 - PROJ = str/-90;-140;0/2;2;2;2 - GDPFUN = mask(tmpc,sgt(mul(latr,rtd),-45)) ! vmsk(kntv(wnd),sgt(mul(latr,rtd),-45)) - SKIP = 0/4;4 - DEVICE = tiff | PWJQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-45,-75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-45,-75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-75,-88)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-75,-88)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10/-33;-144/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_70.t - TXTLOC = 0.860;0.985 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.864;0.869 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWJQ70.wmo - TXTLOC = 0.039;0.990 - r - - -! <<<<< J_600 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 600 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10.0;115.0;-5.0;260.0 - PROJ = str/-90;-140;0/2;2;2;2 - GDPFUN = mask(tmpc,sgt(mul(latr,rtd),-45)) ! vmsk(kntv(wnd),sgt(mul(latr,rtd),-45)) - SKIP = 0/4;4 - DEVICE = tiff | PWJQ60 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-45,-75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-45,-75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-75,-88)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-75,-88)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10/-33;-144/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_60.t - TXTLOC = 0.860;0.985 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.864;0.869 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWJQ60.wmo - TXTLOC = 0.039;0.990 - r - - -! <<<<< J_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10.0;115.0;-5.0;260.0 - PROJ = str/-90;-140;0/2;2;2;2 - GDPFUN = mask(tmpc,sgt(mul(latr,rtd),-45)) ! vmsk(kntv(wnd),sgt(mul(latr,rtd),-45)) - SKIP = 0/4;4 - DEVICE = tiff | PWJQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-45,-75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-45,-75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-75,-88)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-75,-88)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10/-33;-144/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_50.t - TXTLOC = 0.860;0.985 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.864;0.869 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWJQ50.wmo - TXTLOC = 0.039;0.990 - r - - -! <<<<< J_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10.0;115.0;-5.0;260.0 - PROJ = str/-90;-140;0/2;2;2;2 - GDPFUN = mask(tmpc,sgt(mul(latr,rtd),-45)) ! vmsk(kntv(wnd),sgt(mul(latr,rtd),-45)) - SKIP = 0/4;4 - DEVICE = tiff | PWJQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-45,-75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-45,-75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-75,-88)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-75,-88)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10/-33;-144/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_40.t - TXTLOC = 0.860;0.985 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.864;0.869 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWJQ40.wmo - TXTLOC = 0.039;0.990 - r - - -! <<<<< J_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10.0;115.0;-5.0;260.0 - PROJ = str/-90;-140;0/2;2;2;2 - GDPFUN = mask(tmpc,sgt(mul(latr,rtd),-45)) ! vmsk(kntv(wnd),sgt(mul(latr,rtd),-45)) - SKIP = 0/4;4 - DEVICE = tiff | PWJQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-45,-75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-45,-75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-75,-88)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-75,-88)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10/-33;-144/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_30.t - TXTLOC = 0.860;0.985 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.864;0.869 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWJQ30.wmo - TXTLOC = 0.039;0.990 - r - - -! <<<<< J_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10.0;115.0;-5.0;260.0 - PROJ = str/-90;-140;0/2;2;2;2 - GDPFUN = mask(tmpc,sgt(mul(latr,rtd),-45)) ! vmsk(kntv(wnd),sgt(mul(latr,rtd),-45)) - SKIP = 0/4;4 - DEVICE = tiff | PWJQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-45,-75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-45,-75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-75,-88)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-75,-88)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10/-33;-144/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_25.t - TXTLOC = 0.860;0.985 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.864;0.869 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWJQ25.wmo - TXTLOC = 0.039;0.990 - r - - -! <<<<< J_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10.0;115.0;-5.0;260.0 - PROJ = str/-90;-140;0/2;2;2;2 - GDPFUN = mask(tmpc,sgt(mul(latr,rtd),-45)) ! vmsk(kntv(wnd),sgt(mul(latr,rtd),-45)) - SKIP = 0/4;4 - DEVICE = tiff | PWJQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-45,-75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-45,-75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-75,-88)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-75,-88)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10/-33;-144/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_20.t - TXTLOC = 0.860;0.985 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.864;0.869 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWJQ20.wmo - TXTLOC = 0.039;0.990 - r - - -! <<<<< J_150 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 150 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10.0;115.0;-5.0;260.0 - PROJ = str/-90;-140;0/2;2;2;2 - GDPFUN = mask(tmpc,sgt(mul(latr,rtd),-45)) ! vmsk(kntv(wnd),sgt(mul(latr,rtd),-45)) - SKIP = 0/4;4 - DEVICE = tiff | PWJQ15 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-45,-75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-45,-75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-75,-88)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-75,-88)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10/-33;-144/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_15.t - TXTLOC = 0.860;0.985 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.864;0.869 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWJQ15.wmo - TXTLOC = 0.039;0.990 - r - - -! <<<<< J_70 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 70 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10.0;115.0;-5.0;260.0 - PROJ = str/-90;-140;0/2;2;2;2 - GDPFUN = mask(tmpc,sgt(mul(latr,rtd),-45)) ! vmsk(kntv(wnd),sgt(mul(latr,rtd),-45)) - SKIP = 0/4;4 - DEVICE = tiff | PWJQ07 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-45,-75)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-45,-75)) - SKIP = 0/9;4 - r - - GDPFUN = mask(tmpc,sbtw(mul(latr,rtd),-75,-88)) ! vmsk(kntv(wnd),sbtw(mul(latr,rtd),-75,-88)) - SKIP = 0/29;4 - r - - LATLON = 1/22/1/1/10;10/-33;-144/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_07.t - TXTLOC = 0.860;0.985 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = 0.864;0.869 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWJQ07.wmo - TXTLOC = 0.039;0.990 - r - - -! <<<<< M_850 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 850 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10;100;70;250 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWMQ85 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/22/1/1/10;10/-7.5;106.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/22/1/1/10;10/68.10;247.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_85.t - TXTLOC = #6.00;231.70 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-7.16;231.20 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWMQ85.wmo - TXTLOC = #69.33;106.50 - r - - -! <<<<< M_700 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 700 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10;100;70;250 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWMQ70 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/22/1/1/10;10/-7.5;106.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/22/1/1/10;10/68.10;247.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_70.t - TXTLOC = #6.00;231.70 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-7.16;231.20 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWMQ70.wmo - TXTLOC = #69.33;106.50 - r - - -! <<<<< M_500 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 500 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10;100;70;250 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWMQ50 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/22/1/1/10;10/-7.5;106.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/22/1/1/10;10/68.10;247.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_50.t - TXTLOC = #6.00;231.70 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-7.16;231.20 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWMQ50.wmo - TXTLOC = #69.33;106.50 - r - - -! <<<<< M_400 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 400 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10;100;70;250 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWMQ40 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/22/1/1/10;10/-7.5;106.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/22/1/1/10;10/68.10;247.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_40.t - TXTLOC = #6.00;231.70 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-7.16;231.20 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWMQ40.wmo - TXTLOC = #69.33;106.50 - r - - -! <<<<< M_300 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 300 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10;100;70;250 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWMQ30 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/22/1/1/10;10/-7.5;106.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/22/1/1/10;10/68.10;247.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_30.t - TXTLOC = #6.00;231.70 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-7.16;231.20 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWMQ30.wmo - TXTLOC = #69.33;106.50 - r - - -! <<<<< M_250 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 250 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10;100;70;250 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWMQ25 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/22/1/1/10;10/-7.5;106.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/22/1/1/10;10/68.10;247.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_25.t - TXTLOC = #6.00;231.70 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-7.16;231.20 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWMQ25.wmo - TXTLOC = #69.33;106.50 - r - - -! <<<<< M_200 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 200 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10;100;70;250 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWMQ20 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/22/1/1/10;10/-7.5;106.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/22/1/1/10;10/68.10;247.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_20.t - TXTLOC = #6.00;231.70 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-7.16;231.20 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWMQ20.wmo - TXTLOC = #69.33;106.50 - r - - -! <<<<< M_150 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 150 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10;100;70;250 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWMQ15 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/22/1/1/10;10/-7.5;106.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/22/1/1/10;10/68.10;247.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_15.t - TXTLOC = #6.00;231.70 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-7.16;231.20 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWMQ15.wmo - TXTLOC = #69.33;106.50 - r - - -! <<<<< M_70 >>>>> - - restore ./waf1 - - CLEAR = yes - GLEVEL = 70 - GDFILE = gem_grids.gem - GDATTIM = SUBDATE - GAREA = -10;100;70;250 - PROJ = mer//2;2;2;2 - GDPFUN = tmpc ! kntv(wnd) - SKIP = 0/4;4 - DEVICE = tiff | PWMQ07 - TEXT = 1.0/21/sw - LATLON = 0 - r - - restore ./waf2 - - GDPFUN = - SKIP = - r - - LATLON = 1/22/1/1/10;10/-7.5;106.2/2 - TEXT = 1.5/21/sw - GDPFUN = - r - - LATLON = 1/22/1/1/10;10/68.10;247.5/2 - r - - LATLON = 0 - TXTYPE = 1.3/21//221//c/sw - TXTFIL = stamp_07.t - TXTLOC = #6.00;231.70 - r - - TXTYPE = 0.8/21//111//c/sw - TXTFIL = ur_perm.t - TXTLOC = #-7.16;231.20 - r - - TXTYPE = 2/21//221//c/sw - TXTFIL = PWMQ07.wmo - TXTLOC = #69.33;106.50 - r - - exit diff --git a/gempak/ush/gdas_meta_loop.sh b/gempak/ush/gdas_meta_loop.sh index 4d3d9fe128..90c30af771 100755 --- a/gempak/ush/gdas_meta_loop.sh +++ b/gempak/ush/gdas_meta_loop.sh @@ -27,6 +27,7 @@ else export m_title="GDAS" fi +export COMPONENT=${COMPONENT:-atmos} export pgm=gdplot2_nc;. prep_step; startmsg # @@ -73,8 +74,8 @@ for day in $verdays do # Test with GDAS in PROD # grid="${COMROOT}/nawips/${envir}/gdas.${day}/gdas_${day}${cycle}f000" - export COMIN=${COMINgdas}.${day}/${cycle}/gempak - grid="${COMINgdas}.${day}/${cycle}/gempak/gdas_${day}${cycle}f000" + export COMIN=${COMINgdas}.${day}/${cycle}/${COMPONENT}/gempak + grid="${COMINgdas}.${day}/${cycle}/${COMPONENT}/gempak/gdas_${day}${cycle}f000" $GEMEXE/gdplot2_nc << EOF \$MAPFIL = mepowo.gsf @@ -177,8 +178,8 @@ for day in $verdays do # Test with GDAS in PROD # grid="${COMROOT}/nawips/${envir}/gdas.${day}/gdas_${day}${cycle}f000" - export COMIN=${COMINgdas}.${day}/${cycle}/gempak - grid="${COMINgdas}.${day}/${cycle}/gempak/gdas_${day}${cycle}f000" + export COMIN=${COMINgdas}.${day}/${cycle}/${COMPONENT}/gempak + grid="${COMINgdas}.${day}/${cycle}/${COMPONENT}/gempak/gdas_${day}${cycle}f000" $GEMEXE/gdplot2_nc << EOF \$MAPFIL = mepowo.gsf diff --git a/gempak/ush/gfs_meta_comp.sh b/gempak/ush/gfs_meta_comp.sh index 9d53f1a2ee..ff7f31378e 100755 --- a/gempak/ush/gfs_meta_comp.sh +++ b/gempak/ush/gfs_meta_comp.sh @@ -31,6 +31,8 @@ mkdir -p -m 775 $DATA/COMP $DATA/GEMPAK_META_COMP cd $DATA/COMP cp $FIXgempak/datatype.tbl datatype.tbl +export COMPONENT=${COMPONENT:-atmos} + mdl=gfs MDL=GFS metatype="comp" @@ -41,11 +43,11 @@ PDY2=`echo $PDY | cut -c3-` #XXW export MODEL=$COMROOT/nawips/prod # BV export MODEL=$COMROOT/nawips/${envir} # BV export HPCGFS=${MODEL}/${mdl}.$PDY -export HPCGFS=${COMINgempak}/${mdl}.${PDY}/${cyc}/gempak -export COMIN00=${COMINgempak}/${mdl}.${PDY}/00/gempak -export COMIN06=${COMINgempak}/${mdl}.${PDY}/06/gempak -export COMIN12=${COMINgempak}/${mdl}.${PDY}/12/gempak -export COMIN18=${COMINgempak}/${mdl}.${PDY}/18/gempak +export HPCGFS=${COMINgempak}/${mdl}.${PDY}/${cyc}/${COMPONENT}/gempak +export COMIN00=${COMINgempak}/${mdl}.${PDY}/00/${COMPONENT}/gempak +export COMIN06=${COMINgempak}/${mdl}.${PDY}/06/${COMPONENT}/gempak +export COMIN12=${COMINgempak}/${mdl}.${PDY}/12/${COMPONENT}/gempak +export COMIN18=${COMINgempak}/${mdl}.${PDY}/18/${COMPONENT}/gempak if [ ${cyc} -eq 00 ] ; then cp $COMIN00/gfs_${PDY}00f* $DATA/GEMPAK_META_COMP elif [ ${cyc} -eq 06 ] ; then @@ -116,7 +118,7 @@ if [ ${cyc} -eq 12 ] ; then desc="Y" #XXW export HPCGFS=${MODEL}/gfs.${PDYm1} # BV export HPCGFS=$COMROOT/nawips/${envir}/gfs.${PDYm1} - export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/1200" add="24" @@ -126,7 +128,7 @@ if [ ${cyc} -eq 12 ] ; then desc="Y2" #XXW export HPCGFS=${MODEL}/gfs.${PDYm2} # BV export HPCGFS=$COMROOT/nawips/${esnvir}/gfs.${PDYm2} - export HPCGFS=${COMINgempak}/${mdl}.${PDYm2}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm2}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m2}/1200" add="48" @@ -478,7 +480,7 @@ if [ ${cyc} -eq 00 ] ; then cyc2="18" desc="Y" # BV export HPCGFS=${MODEL}/gfs.${PDYm1} - export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/1800" add="06" @@ -486,7 +488,7 @@ if [ ${cyc} -eq 00 ] ; then elif [ ${runtime} = "12" ] ; then cyc2="12" desc="Y" - export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/1200" add="12" @@ -494,7 +496,7 @@ if [ ${cyc} -eq 00 ] ; then elif [ ${runtime} = "00y" ] ; then cyc2="00" desc="Y" - export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/0000" add="24" @@ -502,7 +504,7 @@ if [ ${cyc} -eq 00 ] ; then elif [ ${runtime} = "002d" ] ; then cyc2="00" desc="Y2" - export HPCGFS=${COMINgempak}/${mdl}.${PDYm2}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm2}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m2}/0000" add="48" @@ -873,7 +875,7 @@ if [ ${cyc} -eq 18 ] ; then elif [ ${runtime} = "18y" ] ; then cyc2="18" desc="Y" - export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/1800" add="24" @@ -987,7 +989,7 @@ if [ ${cyc} -eq 06 ] ; then elif [ ${runtime} -eq 18 ] ; then cyc2="18" desc="Y" - export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/1800" add="12" @@ -995,7 +997,7 @@ if [ ${cyc} -eq 06 ] ; then elif [ ${runtime} -eq 12 ] ; then cyc2="12" desc="Y" - export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/1200" add="18" @@ -1003,7 +1005,7 @@ if [ ${cyc} -eq 06 ] ; then elif [ ${runtime} -eq 06 ] ; then cyc2="06" desc="Y" - export HPCGFS=${COMINgempak}/${NET}/${envir}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${NET}/${envir}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/0600" add="24" diff --git a/gempak/ush/gfs_meta_mar_comp.sh b/gempak/ush/gfs_meta_mar_comp.sh index e6ca1b6738..c475542131 100755 --- a/gempak/ush/gfs_meta_mar_comp.sh +++ b/gempak/ush/gfs_meta_mar_comp.sh @@ -20,6 +20,8 @@ mkdir -p -m 775 $DATA/GEMPAK_META_MAR $DATA/MAR_COMP cd $DATA/MAR_COMP cp $FIXgempak/datatype.tbl datatype.tbl +export COMPONENT=${COMPONENT:-atmos} + mdl=gfs MDL="GFS" metatype="mar_comp" @@ -30,11 +32,11 @@ PDY2=`echo $PDY | cut -c3-` # BV export MODEL=/com/nawips/prod #XXW export HPCGFS=${MODEL}/${mdl}.$PDY # BV export HPCGFS=${COMROOT}/nawips/${envir}/${mdl}.$PDY -export HPCGFS=${COMINgempak}/${mdl}.${PDY}/${cyc}/gempak -export COMIN00=${COMINgempak}/${mdl}.${PDY}/00/gempak -export COMIN06=${COMINgempak}/${mdl}.${PDY}/06/gempak -export COMIN12=${COMINgempak}/${mdl}.${PDY}/12/gempak -export COMIN18=${COMINgempak}/${mdl}.${PDY}/18/gempak +export HPCGFS=${COMINgempak}/${mdl}.${PDY}/${cyc}/${COMPONENT}/gempak +export COMIN00=${COMINgempak}/${mdl}.${PDY}/00/${COMPONENT}/gempak +export COMIN06=${COMINgempak}/${mdl}.${PDY}/06/${COMPONENT}/gempak +export COMIN12=${COMINgempak}/${mdl}.${PDY}/12/${COMPONENT}/gempak +export COMIN18=${COMINgempak}/${mdl}.${PDY}/18/${COMPONENT}/gempak if [ ${cyc} -eq 00 ] ; then cp $COMIN00/gfs_${PDY}00f* $DATA/GEMPAK_META_MAR elif [ ${cyc} -eq 06 ] ; then @@ -436,7 +438,7 @@ if [ ${cyc} = "00" ] ; then cyc2="18" #XXW export HPCGFS=${MODEL}/${mdl}.${PDYm1} # BV export HPCGFS=$COMROOT/nawips/${envir}/${mdl}.${PDYm1} - export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/1800" add="06" @@ -444,7 +446,7 @@ if [ ${cyc} = "00" ] ; then elif [ ${runtime} = "12" ] ; then cyc2="12" #XXW export HPCGFS=${MODEL}/${mdl}.${PDYm1} - export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/1200" add="12" @@ -905,7 +907,7 @@ if [ ${cyc} -eq "06" ] ; then elif [ ${runtime} = "18" ] ; then cyc2="18" #XXW export HPCGFS=${MODEL}/${mdl}.${PDYm1} - export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${PDYm1}/${cyc2}/${COMPONENT}/gempak grid2="F-GFSHPC | ${PDY2m1}/1800" add="12" testgfsfhr="72" diff --git a/gempak/ush/gfs_meta_mar_vgf.sh b/gempak/ush/gfs_meta_mar_vgf.sh deleted file mode 100755 index 2e12082a27..0000000000 --- a/gempak/ush/gfs_meta_mar_vgf.sh +++ /dev/null @@ -1,461 +0,0 @@ -#!/bin/sh -# -# Metafile Script : gfs_meta_mar_vgf.sh -# -# Log : -# J. Carr/PMB 12/02/04 Pushed into production. -# C.Janota/OPC 02/13/06 added garea to Atl sfc pres -# C.Janota/OPC 02/13/06 changed text size and label freq on sfc isobars -# -# Set up Local Variables -# -set -x -# -export PS4='OPC_MAR_VGF:$SECONDS + ' -workdir="${DATA}/OPC_MAR_VGF" -mkdir -p -m 775 ${workdir} -cd ${workdir} - -cp $FIXgempak/datatype.tbl datatype.tbl - -mdl=gfs -MDL="GFS" -PDY2=`echo $PDY | cut -c3-` - -export DBN_ALERT_TYPE=VGF -export DBN_ALERT_SUBTYPE=OPC - -# SET UP A FLAG FOR WHAT CYCLES TO RUN VARIOUS PRODUCTS. -runflag="yes" - -if [ ${cyc} -eq 12 ] ; then - runflag="yes" -elif [ ${cyc} -eq 00 ] ; then - runflag="yes" -else - runflag="no" -fi - -# 500 MB FOR ATL/PAC - -if [ ${runflag} == "yes" ] ; then - for fcsthr in 00 24 36 48 96 - do - for ocean in ATL PAC - do - if [ ${ocean} == "ATL" ] ; then - garea="17;-98;64;10" - proj="mer" - else - garea="17;136;64;-116" - proj="mer" - fi - vgfile="500_${ocean}_${PDY2}_${cyc}_f${fcsthr}.vgf" - -$GEMEXE/gdplot2_vg << EOF -gdfile = F-${MDL} | ${PDY2}/${cyc}00 -gdattim = f${fcsthr} -GLEVEL = 500 -GVCORD = PRES -PANEL = 0 -SKIP = 0/9;4 -SCALE = -1 -GDPFUN = hght!hght -TYPE = c!c -CONTUR = 0 -CINT = 6/-99/558!6/570/999 -LINE = 20/1/3/-2/2/.03!20/1/3/-2/2/.03 -FINT = -FLINE = -HILO = 6;2/H#;L#///5;5!0 -HLSYM = 3.7;2.5/2/22;31/3;3/hw! -CLRBAR = -WIND = -REFVEC = -TITLE = -TEXT = 1.5/21/2.2/121/hw -CLEAR = y -STNPLT = -SATFIL = -RADFIL = -STREAM = -POSN = 4 -COLORS = 2 -MARKER = 2 -GRDLBL = 5 -LUTFIL = none -FILTER = no -GAREA = ${garea} -PROJ = ${proj} -MAP = 0 -LATLON = 0 -DEVICE = vg | ${vgfile} -STNPLT = -list -run - -clear = no -gdpfun = hght!vge(kntv(wnd),30) -type = c!b -cint = 6/564/564 -line = 20/1/6/-2/2/.03 -wind = bk25/1.6/803/114 -hilo = -hlsym = -list -run - -ex -EOF - - if [ $SENDCOM = "YES" ] ; then - mv *.vgf ${COMOUT} - if [ $SENDDBN = "YES" ] ; then - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${vgfile} - fi - fi - done - done - -# CONTINUE LOOP OF 12 OR 00 UTC CYCLE... - -$GEMEXE/gdplot2_vg << EOF -GAREA = 10;-113;45;-38 -PROJ = str/90;-67;1/0;0;0;1 -gdattim = f24 -device = vg | 500_${PDY2}_${cyc}_f24.vgf -GDPFUN = hght!hght -TYPE = c!c -CINT = 6/-99/558!6/570/999 -LINE = 20/1/3/-2/2/.03!20/1/3/-2/2/.03 -WIND = -HILO = 6;2/H#;L#///5;5!0 -HLSYM = 3.7;2.5/2/22;31/3;3/hw! -list -run - -clear = no -gdpfun = hght!vge(kntv(wnd),30) -type = c!b -cint = 6/564/564 -line = 20/1/6/-2/2/.03 -wind = bk25/1.6/803/114 -hilo = -hlsym = -list -run - -exit -EOF - - if [ $SENDCOM = "YES" ] ; then - mv *.vgf ${COMOUT} - if [ $SENDDBN = "YES" ] ; then - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/500_${PDY2}_${cyc}_f24.vgf - fi - fi -else - -# 06Z AND 18Z CYCLES... - -$GEMEXE/gdplot2_vg << EOFplt -gdfile = F-${MDL} | ${PDY2}/${cyc}00 -gdattim = f06 -GLEVEL = 500 -GVCORD = PRES -PANEL = 0 -SKIP = 0/9;4 -SCALE = -1 -GDPFUN = hght!hght -TYPE = c!c -CONTUR = 0 -CINT = 6/-99/558!6/570/999 -LINE = 20/1/3/-2/2/.03!20/1/3/-2/2/.03 -FINT = -FLINE = -HILO = 6;2/H#;L#///5;5!0 -HLSYM = 3.7;2.5/2/22;31/3;3/hw! -CLRBAR = -WIND = -REFVEC = -TITLE = -TEXT = 1.5/21/2.2/121/hw -CLEAR = y -STNPLT = -SATFIL = -RADFIL = -STREAM = -POSN = 4 -COLORS = 2 -MARKER = 2 -GRDLBL = 5 -LUTFIL = none -FILTER = no -GAREA = 17;-98;64;10 -PROJ = mer -MAP = 0 -LATLON = 0 -DEVICE = vg | 500_ATL_${PDY2}_${cyc}_f06.vgf -STNPLT = -list -run - -clear = no -gdpfun = hght!vge(kntv(wnd),30) -type = c!b -cint = 6/564/564 -line = 20/1/6/-2/2/.03 -wind = bk25/1.6/803/114 -hilo = -hlsym = -list -run - -clear = yes -device = vg | 500_PAC_${PDY2}_${cyc}_f06.vgf -garea = 17;136;64;-116 -GDPFUN = hght!hght -TYPE = c!c -CINT = 6/-99/558!6/570/999 -LINE = 20/1/3/-2/2/.03!20/1/3/-2/2/.03 -WIND = -HILO = 6;2/H#;L#///5;5!0 -HLSYM = 3.7;2.5/2/22;31/3;3/hw! -list -run - -clear = no -gdpfun = hght!vge(kntv(wnd),30) -type = c!b -cint = 6/564/564 -line = 20/1/6/-2/2/.03 -wind = bk25/1.6/803/114 -hilo = -hlsym = -list -run - -exit -EOFplt - - if [ $SENDCOM = "YES" ] ; then - mv *.vgf ${COMOUT} - if [ $SENDDBN = "YES" ] ; then - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/500_PAC_${PDY2}_${cyc}_f06.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/500_ATL_${PDY2}_${cyc}_f06.vgf - fi - fi -fi - -# SFC FOR F48 ON ATL/PAC FOR 00z/12z CYCLES - -if [ ${runflag} == "yes" ] ; then - for fcsthr in 48 96 - do - for ocean in ATL PAC - do - if [ ${ocean} == "ATL" ] ; then - garea="17;-98;64;10" - proj="mer" - elif [ ${ocean} == "PAC" ] ; then - garea="17;136;64;-116" - proj="mer" - fi - vgfile="${mdl}_${PDY2}_${cyc}_${fcsthr}${ocean}sfc.vgf" - -$GEMEXE/gdplot2_vg << EOF -gdattim = f${fcsthr} -garea = ${garea} -proj = ${proj} -latlon = -map = 0 -clear = yes -device = vg | ${vgfile} -glevel = 0 -gvcord = none -panel = 0 -skip = 0 -scale = 0 -gdpfun = sm5s(pmsl) -type = c -contur = 0 -cint = 4 -line = 5//3/-1/2/.10 -fint = -fline = -!hilo = 7;7/h#;l# -!hlsym = 1//21/1/hw -hilo = -hlsym = -clrbar = 0 -wind = -refvec = -title = -text = 1/21/2/hw -list -run - -ex -EOF - - if [ $SENDCOM = "YES" ] ; then - mv *.vgf ${COMOUT} - if [ $SENDDBN = "YES" ] ; then - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${vgfile} - fi - fi - done - done - -gdplot2_vg << EOF -device = vg | ${mdl}_${PDY2}_${cyc}_48ATLwind.vgf -GLEVEL = 9950 -GAREA = 17;-98;64;10 -GVCORD = sgma -PANEL = 0 -SKIP = /3 -SCALE = 0 -GDPFUN = vmsk(vge(kntv(wnd),35),sea) -TYPE = b -CONTUR = 0 -CINT = -LINE = -FINT = -FLINE = -HILO = 0 -FILTER = n -HLSYM = -CLRBAR = 0 -WIND = bk25/1.6/803/114 -REFVEC = -TITLE = -GDATTIM = f48 -TEXT = 1/21/1/121/hw -list -run - -gdattim = f96 -device = vg | ${mdl}_${PDY2}_${cyc}_96ATLwind.vgf -list -run - -GDATTIM = f24 -GAREA = 12;-135;80;159 -PROJ = STR/90;-100;1 -DEVICE = vg | ${mdl}_${PDY2}_${cyc}_24PACwwind.vgf -CLEAR = yes -GAREA = 38.17;169.78;47.80;-106.15 -PROJ = STR/90;-175;1/0;2;0;0 -list -run - -GDATTIM = f48 -GAREA = 17;136;64;-116 -PROJ = mer -CLEAR = yes -DEVICE = vg | ${mdl}_${PDY2}_${cyc}_48PACwind.vgf -list -run - -gdattim = f96 -device = vg | ${mdl}_${PDY2}_${cyc}_96PACwind.vgf -list -run - -gdattim = f48 -garea = 17;-98;64;10 -device = vg | ${mdl}_${PDY2}_${cyc}_48ATLwwind.vgf -SKIP = 0/5 -GDPFUN = vmsk(vge(kntv(wnd),10),sea) -list -run - -gdattim = f96 -device = vg | ${mdl}_${PDY2}_${cyc}_96ATLwwind.vgf -GDPFUN = vmsk(vge(kntv(wnd),10),sea) -list -run - -gdattim = f48 -GDPFUN = vmsk(vge(kntv(wnd),10),sea) -GAREA = 17;136;64;-116 -CLEAR = yes -DEVICE = vg | ${mdl}_${PDY2}_${cyc}_48PACwwind.vgf -list -run - -gdattim = f96 -device = vg | ${mdl}_${PDY2}_${cyc}_96PACwwind.vgf -GDPFUN = vmsk(vge(kntv(wnd),10),sea) -list -run - -exit -EOF - - if [ $SENDCOM = "YES" ] ; then - mv *.vgf ${COMOUT} - if [ $SENDDBN = "YES" ] ; then - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_48ATLwind.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_96ATLwind.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_24PACwwind.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_48PACwind.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_96PACwind.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_48ATLwwind.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_96ATLwwind.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_48PACwwind.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_96PACwwind.vgf - fi - fi -fi - -# PRODUCE GUESS FIELDS FOR SFC ANALYSIS ON ALL CYCLES. - -gdplot2_vg << EOF -gdattim = f06 -garea = -8.50;-55.50;52.60;75.00 -proj = STR/90;-15;0/NM -latlon = -map = 0 -clear = yes -device = vg | ATL_SFC_${PDY2}_${cyc}_f06.vgf -glevel = 0 -gvcord = none -panel = 0 -skip = 0 -scale = 0 -gdpfun = sm5s(pmsl) -type = c -contur = 0 -cint = 4 -line = 5//3/-1/2/.10 -fint = -fline = -hilo = -hlsym = -clrbar = 0 -wind = -refvec = -title = -text = 1/21/2/121/hw -list -run - -garea = 3.37;128.89;16.77;-105.30 -proj = STR/90;165;0/NM -clear = yes -device = vg | PAC_SFC_${PDY2}_${cyc}_f06.vgf -list -run - -exit -EOF - - if [ $SENDCOM = "YES" ] ; then - mv *.vgf ${COMOUT} - if [ $SENDDBN = "YES" ] ; then - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/ATL_SFC_${PDY2}_${cyc}_f06.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/PAC_SFC_${PDY2}_${cyc}_f06.vgf - fi - fi -exit diff --git a/gempak/ush/gfs_meta_opc_na_ver b/gempak/ush/gfs_meta_opc_na_ver index 57da78ce10..ef1ae56d60 100755 --- a/gempak/ush/gfs_meta_opc_na_ver +++ b/gempak/ush/gfs_meta_opc_na_ver @@ -14,6 +14,8 @@ mkdir -p -m 775 $DATA/OPC_NA_VER_F${fend} cd $DATA/OPC_NA_VER_F${fend} cp $FIXgempak/datatype.tbl datatype.tbl +export COMPONENT=${COMPONENT:-atmos} + mdl=gfs MDL="GFS" metatype="ver" @@ -147,91 +149,91 @@ for verday in ${verdays} cominday=`echo ${verday} | cut -c -8` #XXW export HPCGFS=$COMROOT/nawips/prod/${mdl}.${cominday} # BV export HPCGFS=$COMROOT/nawips/${envir}/${mdl}.${cominday} - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cyc}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cyc}/${COMPONENT}/gempak if [ ${verday} -eq ${dc1} ] ; then dgdattim=f006 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle1}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle1}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate1}/${cycle1}00" elif [ ${verday} -eq ${dc2} ] ; then dgdattim=f012 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle2}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate2}/${cycle2}00" elif [ ${verday} -eq ${dc3} ] ; then dgdattim=f018 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle3}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle3}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate3}/${cycle3}00" elif [ ${verday} -eq ${dc4} ] ; then dgdattim=f024 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle4}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle4}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate4}/${cycle4}00" elif [ ${verday} -eq ${dc5} ] ; then dgdattim=f030 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle5}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle5}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate5}/${cycle5}00" elif [ ${verday} -eq ${dc6} ] ; then dgdattim=f036 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle6}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle6}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate6}/${cycle6}00" elif [ ${verday} -eq ${dc7} ] ; then dgdattim=f042 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle7}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle7}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate7}/${cycle7}00" elif [ ${verday} -eq ${dc8} ] ; then dgdattim=f048 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle8}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle8}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate8}/${cycle8}00" elif [ ${verday} -eq ${dc9} ] ; then dgdattim=f054 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle9}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle9}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate9}/${cycle9}00" elif [ ${verday} -eq ${dc10} ] ; then dgdattim=f060 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle10}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle10}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate10}/${cycle10}00" elif [ ${verday} -eq ${dc11} ] ; then dgdattim=f066 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle11}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle11}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate11}/${cycle11}00" elif [ ${verday} -eq ${dc12} ] ; then dgdattim=f072 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle12}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle12}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate12}/${cycle12}00" elif [ ${verday} -eq ${dc13} ] ; then dgdattim=f078 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle13}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle13}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate13}/${cycle13}00" elif [ ${verday} -eq ${dc14} ] ; then dgdattim=f084 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle14}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle14}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate14}/${cycle14}00" elif [ ${verday} -eq ${dc15} ] ; then dgdattim=f090 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle15}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle15}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate15}/${cycle15}00" elif [ ${verday} -eq ${dc16} ] ; then dgdattim=f096 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle16}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle16}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate16}/${cycle16}00" elif [ ${verday} -eq ${dc17} ] ; then dgdattim=f102 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle17}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle17}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate17}/${cycle17}00" elif [ ${verday} -eq ${dc18} ] ; then dgdattim=f108 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle18}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle18}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate18}/${cycle18}00" elif [ ${verday} -eq ${dc19} ] ; then dgdattim=f114 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle19}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle19}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate19}/${cycle19}00" elif [ ${verday} -eq ${dc20} ] ; then dgdattim=f120 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle20}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle20}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate20}/${cycle20}00" elif [ ${verday} -eq ${dc21} ] ; then dgdattim=f126 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle21}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle21}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate21}/${cycle21}00" fi diff --git a/gempak/ush/gfs_meta_opc_np_ver b/gempak/ush/gfs_meta_opc_np_ver index abb0179707..dfb320ea82 100755 --- a/gempak/ush/gfs_meta_opc_np_ver +++ b/gempak/ush/gfs_meta_opc_np_ver @@ -14,6 +14,8 @@ mkdir -p -m 775 $DATA/OPC_NP_VER_F${fend} cd $DATA/OPC_NP_VER_F${fend} cp $FIXgempak/datatype.tbl datatype.tbl # +export COMPONENT=${COMPONENT:-atmos} + mdl=gfs MDL="GFS" metatype="ver" @@ -148,91 +150,91 @@ for verday in ${verdays} cominday=`echo ${verday} | cut -c -8` #XXW export HPCGFS=$COMROOT/nawips/prod/${mdl}.${cominday} # BV export HPCGFS=$COMROOT/nawips/${envir}/${mdl}.${cominday} - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cyc}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cyc}/${COMPONENT}/gempak if [ ${verday} -eq ${dc1} ] ; then dgdattim=f006 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle1}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle1}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate1}/${cycle1}00" elif [ ${verday} -eq ${dc2} ] ; then dgdattim=f012 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle2}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle2}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate2}/${cycle2}00" elif [ ${verday} -eq ${dc3} ] ; then dgdattim=f018 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle3}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle3}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate3}/${cycle3}00" elif [ ${verday} -eq ${dc4} ] ; then dgdattim=f024 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle4}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle4}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate4}/${cycle4}00" elif [ ${verday} -eq ${dc5} ] ; then dgdattim=f030 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle5}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle5}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate5}/${cycle5}00" elif [ ${verday} -eq ${dc6} ] ; then dgdattim=f036 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle6}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle6}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate6}/${cycle6}00" elif [ ${verday} -eq ${dc7} ] ; then dgdattim=f042 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle7}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle7}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate7}/${cycle7}00" elif [ ${verday} -eq ${dc8} ] ; then dgdattim=f048 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle8}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle8}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate8}/${cycle8}00" elif [ ${verday} -eq ${dc9} ] ; then dgdattim=f054 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle9}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle9}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate9}/${cycle9}00" elif [ ${verday} -eq ${dc10} ] ; then dgdattim=f060 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle10}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle10}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate10}/${cycle10}00" elif [ ${verday} -eq ${dc11} ] ; then dgdattim=f066 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle11}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle11}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate11}/${cycle11}00" elif [ ${verday} -eq ${dc12} ] ; then dgdattim=f072 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle12}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle12}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate12}/${cycle12}00" elif [ ${verday} -eq ${dc13} ] ; then dgdattim=f078 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle13}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle13}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate13}/${cycle13}00" elif [ ${verday} -eq ${dc14} ] ; then dgdattim=f084 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle14}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle14}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate14}/${cycle14}00" elif [ ${verday} -eq ${dc15} ] ; then dgdattim=f090 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle15}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle15}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate15}/${cycle15}00" elif [ ${verday} -eq ${dc16} ] ; then dgdattim=f096 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle16}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle16}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate16}/${cycle16}00" elif [ ${verday} -eq ${dc17} ] ; then dgdattim=f102 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle17}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle17}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate17}/${cycle17}00" elif [ ${verday} -eq ${dc18} ] ; then dgdattim=f108 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle18}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle18}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate18}/${cycle18}00" elif [ ${verday} -eq ${dc19} ] ; then dgdattim=f114 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle19}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle19}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate19}/${cycle19}00" elif [ ${verday} -eq ${dc20} ] ; then dgdattim=f120 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle20}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle20}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate20}/${cycle20}00" elif [ ${verday} -eq ${dc21} ] ; then dgdattim=f126 - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle21}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle21}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate21}/${cycle21}00" fi diff --git a/gempak/ush/gfs_meta_opc_sw_vgf.sh b/gempak/ush/gfs_meta_opc_sw_vgf.sh deleted file mode 100755 index 5ee1a010b0..0000000000 --- a/gempak/ush/gfs_meta_opc_sw_vgf.sh +++ /dev/null @@ -1,151 +0,0 @@ -#! /bin/sh -# -# Metafile Script : gfs_meta_opc_sw_vgf.sh -# -# Log : -# J.L. Partain/MPC 12/5/97 Original creation - create VGF files of AVN guidance for -# 24-hr SFC progs for ATL and PAC -# J.L. Partain/MPC 12/11/97 Modified 06z and 18z runs to produce 30-hr guidance -# J.L. Partain/MPC 12/12/97 smoother contours & better overlay characteristics -# J.L. Partain/MPC 6/6/98 Chg map bg for PAC to match IG -# J.Partain/MPC 6/26/98 Chg smoothing to get less vertices -# J.Partain/MPC 7/22/98 Chg EPAC background -# J.Partain/MPC 8/21/98 Add AVN wind barb VGF -# J.Partain/MPC 11/4/98 Chg from 5 to 9-pt smoother for PMSL -# J.Partain/MPC 1/20/99 Setup to run from hpcops rather than hp47:modtdg -# J.L.Partain/MPC 2/23/99 cp VGF files to hp68 for backup -# J.L.Partain/MPC 2/24/99 add smoothing attr; chg contour labels -# J.L.Partain/MPC 10/05/99 Y2K CHECK COMPLETE (for 10/15 model name changes) -# J.L.Partain/MPC 09/29/00 ready for ops on IBM in mpcops account -# J.L.Partain/MPC 10/03/00 make 2-digit years for VG filenames -# J.L.Partain/MPC 01/02/01 chg garea and proj for epac -# J.L.Partain/MPC 05/07/01 add ftp to hp43 -# J.L.Partain/MPC 05/22/01 chgs to run on either asp or bsp -# J.L.Partain/MPC 06/12/02 extend 4swpac area to include AK -# C.Janota/OPC 01/13/04 changed ftp hp41 to scp opcpr -# C.Janota/OPC 01/16/04 changed ftp hp68 to scp opcol -# C.Janota/OPC 01/16/04 changed ftp hp49 to scp opcar -# C.Janota/OPC 01/30/04 changed hp43 to opcbkup -# J. Carr/PMB 12/02/04 Pushed into production. -# C.Janota/OPC 10/14/05 changed 4sw garea -# -# Set up Local Variables -# -set -x -# -export PS4='OPC_SW_VGF:$SECONDS + ' -workdir="${DATA}/OPC_SW_VGF" -mkdir -p -m 775 ${workdir} -cd ${workdir} - -cp $FIXgempak/datatype.tbl datatype.tbl - -mdl=gfs -MDL="GFS" -PDY2=`echo $PDY | cut -c3-` - -if [ ${cyc} -eq 06 ] ; then - fhr="030" -elif [ ${cyc} -eq 18 ] ; then - fhr="030" -else - fhr="024" -fi - -atlfilename="${mdl}_${PDY2}_${cyc}_4swatl.vgf" -pacfilename="${mdl}_${PDY2}_${cyc}_4swpac.vgf" -atlwindname="${mdl}_${PDY2}_${cyc}_4wwatl_wind.vgf" -pacwindname="${mdl}_${PDY2}_${cyc}_4wwpac_wind.vgf" - -device1="vg|${atlfilename}" -device2="vg|${pacfilename}" -device3="vg|${atlwindname}" -device4="vg|${pacwindname}" - -export pgm=gdplot2_vg;. prep_step; startmsg - -$GEMEXE/gdplot2_vg << EOFplt -GDFILE = F-${MDL} | ${PDY2}/${cyc}00 -GDATTIM = F${fhr} -GAREA = 25;-84;46;-38 -PROJ = str/90;-67;1 -LATLON = -MAP = 0 -CLEAR = y -DEVICE = ${device1} -GLEVEL = 0 -GVCORD = none -PANEL = 0 -SKIP = 0 -SCALE = 0 -GDPFUN = sm9s(pmsl) -TYPE = c -CONTUR = 0 -CINT = 4 -LINE = 5/1/3/-5/2/.13 -FINT = -FLINE = -!HILO = 7;7/h#;l# -!HLSYM = 1//21/1/hw -HILO = -HLSYM = -CLRBAR = 0 -WIND = -REFVEC = -TITLE = -TEXT = 1.3/21/2/121/c/s/hw -li -ru - -GAREA = 4;135;89;-102 -PROJ = ced -DEVICE = ${device2} -CLEAR = Y -li -run - -GAREA = 25;-84;46;-38 -PROJ = str/90;-67;1 -DEVICE = ${device3} -CLEAR = Y -SKIP = /-4;1 -GDPFUN = vmsk(kntv(wnd@9950%sgma),sea) -TYPE = b -CONTUR = 0 -CINT = -LINE = -FILTER = n -HILO = 0 -HLSYM = -WIND = bk25/1.6/803/214 -l -run - -GAREA = 12;-134;69;-132 -PROJ = str/90;-100;1 -DEVICE = ${device4} -SKIP = /-10;1 -WIND = bk25/1.6/803/214 -CLEAR = Y -l -run -exit -EOFplt - -export err=$?;err_chk -export err=$?;export pgm="GEMPAK CHECK FILE";err_chk - -export DBN_ALERT_TYPE=VGF -export DBN_ALERT_SUBTYPE=OPC - -if [ $SENDCOM = "YES" ] ; then - mv *.vgf ${COMOUT} - if [ $SENDDBN = "YES" ] ; then - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_4swatl.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_4swpac.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_4wwatl_wind.vgf - ${DBNROOT}/bin/dbn_alert ${DBN_ALERT_TYPE} ${DBN_ALERT_SUBTYPE} $job ${COMOUT}/${mdl}_${PDY2}_${cyc}_4wwpac_wind.vgf - fi -fi - -exit diff --git a/gempak/ush/gfs_meta_sa2.sh b/gempak/ush/gfs_meta_sa2.sh index b71b158a7b..eab320e4cd 100755 --- a/gempak/ush/gfs_meta_sa2.sh +++ b/gempak/ush/gfs_meta_sa2.sh @@ -21,6 +21,8 @@ echo " start with ukmet_gfs_meta_sa2.sh" export PS4='SA2:$SECONDS + ' cp $FIXgempak/datatype.tbl datatype.tbl +export COMPONENT=${COMPONENT:-atmos} + mdl=gfs MDL=GFS @@ -44,7 +46,7 @@ fi PDY2=`echo ${PDY} | cut -c3-` # export HPCGFS=$COMROOT/nawips/${envir}/gfs.${PDY} -export HPCGFS=${COMINgempak}/${mdl}.${PDY}/${cyc}/gempak +export HPCGFS=${COMINgempak}/${mdl}.${PDY}/${cyc}/${COMPONENT}/gempak grid1="F-GFSHPC | ${PDY2}/${cyc}00" diff --git a/gempak/ush/gfs_meta_ver.sh b/gempak/ush/gfs_meta_ver.sh index 2bd9076599..54697264be 100755 --- a/gempak/ush/gfs_meta_ver.sh +++ b/gempak/ush/gfs_meta_ver.sh @@ -28,6 +28,8 @@ mkdir -p -m 775 $DATA/VER cd $DATA/VER cp $FIXgempak/datatype.tbl datatype.tbl +export COMPONENT=${COMPONENT:-atmos} + mdl=gfs MDL=GFS metatype="ver" @@ -225,139 +227,139 @@ for verday in ${verdays} cominday=`echo ${verday} | cut -c -8` #XXW export HPCGFS=$COMROOT/nawips/prod/${mdl}.${cominday} # BV export HPCGFS=$COMROOT/nawips/${envir}/${mdl}.${cominday} - export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cyc}/gempak + export HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cyc}/${COMPONENT}/gempak if [ ${verday} -eq ${dc1} ] ; then dgdattim=f006 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle1}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle1}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate1}/${cycle1}00" elif [ ${verday} -eq ${dc2} ] ; then dgdattim=f012 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle2}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle2}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate2}/${cycle2}00" elif [ ${verday} -eq ${dc3} ] ; then dgdattim=f018 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle3}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle3}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate3}/${cycle3}00" elif [ ${verday} -eq ${dc4} ] ; then dgdattim=f024 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle4}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle4}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate4}/${cycle4}00" elif [ ${verday} -eq ${dc5} ] ; then dgdattim=f030 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle5}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle5}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate5}/${cycle5}00" elif [ ${verday} -eq ${dc6} ] ; then dgdattim=f036 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle6}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle6}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate6}/${cycle6}00" elif [ ${verday} -eq ${dc7} ] ; then dgdattim=f042 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle7}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle7}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate7}/${cycle7}00" elif [ ${verday} -eq ${dc8} ] ; then dgdattim=f048 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle8}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle8}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate8}/${cycle8}00" elif [ ${verday} -eq ${dc9} ] ; then dgdattim=f054 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle9}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle9}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate9}/${cycle9}00" elif [ ${verday} -eq ${dc10} ] ; then dgdattim=f060 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle10}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle10}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate10}/${cycle10}00" elif [ ${verday} -eq ${dc11} ] ; then dgdattim=f066 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle11}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle11}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate11}/${cycle11}00" elif [ ${verday} -eq ${dc12} ] ; then dgdattim=f072 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle12}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle12}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate12}/${cycle12}00" elif [ ${verday} -eq ${dc13} ] ; then dgdattim=f078 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle13}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle13}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate13}/${cycle13}00" elif [ ${verday} -eq ${dc14} ] ; then dgdattim=f084 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle14}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle14}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate14}/${cycle14}00" elif [ ${verday} -eq ${dc15} ] ; then dgdattim=f090 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle15}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle15}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate15}/${cycle15}00" elif [ ${verday} -eq ${dc16} ] ; then dgdattim=f096 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle16}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle16}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate16}/${cycle16}00" elif [ ${verday} -eq ${dc17} ] ; then dgdattim=f102 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle17}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle17}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate17}/${cycle17}00" elif [ ${verday} -eq ${dc18} ] ; then dgdattim=f108 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle18}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle18}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate18}/${cycle18}00" elif [ ${verday} -eq ${dc19} ] ; then dgdattim=f114 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle19}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle19}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate19}/${cycle19}00" elif [ ${verday} -eq ${dc20} ] ; then dgdattim=f120 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle20}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle20}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate20}/${cycle20}00" elif [ ${verday} -eq ${dc21} ] ; then dgdattim=f126 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle21}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle21}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate21}/${cycle21}00" elif [ ${verday} -eq ${dc22} ] ; then dgdattim=f132 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle22}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle22}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate22}/${cycle22}00" elif [ ${verday} -eq ${dc23} ] ; then dgdattim=f138 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle23}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle23}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate23}/${cycle23}00" elif [ ${verday} -eq ${dc24} ] ; then dgdattim=f144 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle24}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle24}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate24}/${cycle24}00" elif [ ${verday} -eq ${dc25} ] ; then dgdattim=f150 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle25}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle25}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate25}/${cycle25}00" elif [ ${verday} -eq ${dc26} ] ; then dgdattim=f156 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle26}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle26}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate26}/${cycle26}00" elif [ ${verday} -eq ${dc27} ] ; then dgdattim=f162 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle27}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle27}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate27}/${cycle27}00" elif [ ${verday} -eq ${dc28} ] ; then dgdattim=f168 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle28}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle28}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate28}/${cycle28}00" elif [ ${verday} -eq ${dc29} ] ; then dgdattim=f174 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle29}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle29}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate29}/${cycle29}00" elif [ ${verday} -eq ${dc30} ] ; then dgdattim=f180 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle30}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle30}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate30}/${cycle30}00" elif [ ${verday} -eq ${dc31} ] ; then dgdattim=f192 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle31}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle31}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate31}/${cycle31}00" elif [ ${verday} -eq ${dc32} ] ; then dgdattim=f204 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle32}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle32}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate32}/${cycle32}00" elif [ ${verday} -eq ${dc33} ] ; then dgdattim=f216 - HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle33}/gempak + HPCGFS=${COMINgempak}/${mdl}.${cominday}/${cycle33}/${COMPONENT}/gempak grid="F-${MDL2} | ${sdate33}/${cycle33}00" fi diff --git a/jobs/JGDAS_ATMOS_GEMPAK b/jobs/JGDAS_ATMOS_GEMPAK new file mode 100755 index 0000000000..e2d3d89da7 --- /dev/null +++ b/jobs/JGDAS_ATMOS_GEMPAK @@ -0,0 +1,129 @@ +#!/bin/sh + +set -xa +export PS4='$SECONDS + ' +date + +############################################ +# GDAS GEMPAK PRODUCT GENERATION +############################################ + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +setpdy.sh +. PDY + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} +export UTILgfs=${UTILgfs:-$HOMEgfs/util} + +############################################ +# Set up model and cycle specific variables +############################################ + +export fend=09 +export finc=3 +export fstart=00 +export GRIB=pgrb2f +export EXT="" +export DBN_ALERT_TYPE=GDAS_GEMPAK + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export model=${model:-gdas} +export COMPONENT=${COMPONENT:-atmos} + +############################################## +# Define COM directories +############################################## +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +export pgmout=OUTPUT.$$ + +env + +if [ -f $DATA/poescrip ]; then + rm $DATA/poescript +fi + +######################################################## +# Execute the script. +echo "$SRCgfs/exgdas_atmos_nawips.sh gdas 009 GDAS_GEMPAK " >> poescript +######################################################## + +######################################################## +# Execute the script for quater-degree grib +echo "$SRCgfs/exgdas_atmos_nawips.sh gdas_0p25 009 GDAS_GEMPAK " >>poescript +######################################################## + +cat poescript + +chmod 775 $DATA/poescript +export MP_PGMMODEL=mpmd +export MP_CMDFILE=$DATA/poescript + +ntasks=${NTASKS_GEMPAK:-$(cat $DATA/poescript | wc -l)} +ptile=${PTILE_GEMPAK:-4} +threads=${NTHREADS_GEMPAK:-1} +export OMP_NUM_THREADS=$threads +APRUN="mpirun -n $ntasks cfp " + +APRUN_GEMPAKCFP=${APRUN_GEMPAKCFP:-$APRUN} +APRUNCFP=$(eval echo $APRUN_GEMPAKCFP) + +$APRUNCFP $DATA/poescript +export err=$?; err_chk + +######################################################## + +msg="JOB $job HAS COMPLETED NORMALLY!" +postmsg $jlogfile "$msg" + +############################################ +# print exec I/O output +############################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ] ; then + rm -rf $DATA +fi + +date diff --git a/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC new file mode 100755 index 0000000000..12951c2c53 --- /dev/null +++ b/jobs/JGDAS_ATMOS_GEMPAK_META_NCDC @@ -0,0 +1,127 @@ +#!/bin/sh + +set -xa +export PS4='$SECONDS + ' +date + +############################################ +# GDAS GEMPAK META NCDC PRODUCT GENERATION +############################################ + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +setpdy.sh +. PDY + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} +export UTILgfs=${UTILgfs:-$HOMEgfs/util} + +# +# Now set up GEMPAK/NTRANS environment +# + +cp $FIXgempak/datatype.tbl datatype.tbl + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gdas} +export COMPONENT=${COMPONENT:-atmos} +export MODEL=GDAS +export GRID_NAME=gdas +export fend=09 + +###################################################### +# set increment to 6 hours -- 3 hours is available. +###################################################### +export finc=6 +export fstart=00 + +export DBN_ALERT_TYPE=GDAS_METAFILE + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +############################################## +# Define COM directories +############################################## +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak} +export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak/meta} +export COMOUTncdc=${COMOUTncdc:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} + +export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} +export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} + +export COMOUTukmet=${COMOUT} +export COMOUTecmwf=${COMOUT} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf +fi + +export pgmout=OUTPUT.$$ + +env + +######################################################## +# Execute the script. +$USHgempak/gdas_meta_na.sh +$USHgempak/gdas_ecmwf_meta_ver.sh +$USHgempak/gdas_meta_loop.sh +$USHgempak/gdas_ukmet_meta_ver.sh +export err=$?; err_chk +######################################################## + +############################################ +# GDAS GEMPAK NCDC PRODUCT GENERATION +############################################ + +######################################################## +# Execute the script. +$SRCgfs/exgdas_atmos_gempak_gif_ncdc.sh +export err=$?; err_chk +######################################################## + +msg="JOB $job HAS COMPLETED NORMALLY!" +postmsg $jlogfile "$msg" + +############################################ +# print exec I/O output +############################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ] ; then + rm -rf $DATA +fi + +date diff --git a/jobs/JGDAS_BULLS_NAVY b/jobs/JGDAS_BULLS_NAVY deleted file mode 100755 index 53be2b6db5..0000000000 --- a/jobs/JGDAS_BULLS_NAVY +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -date - -############################################ -# GDAS BULLETIN PRODUCT GENERATION -############################################ - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/gempak/fix} -export USHgfs=${USHgfs:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} - -################################# -# Set up the NET and RUN -################################# -export NET=gfs -export RUN=gdas -export model=gdas - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})} -export COMINm1=${COMINm1:-$(compath.py ${NET}/${envir}/${RUN}.${PDYm1})} -export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/${cyc}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -export pgmout=OUTPUT.$$ - -env - -######################################################## -# Execute the script. -$SRCgfs/exgdas_bulls_navy.sh.ecf -export err=$?; err_chk -######################################################## - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGDAS_GEMPAK b/jobs/JGDAS_GEMPAK deleted file mode 100755 index 2ae8d08c3f..0000000000 --- a/jobs/JGDAS_GEMPAK +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -date - -############################################ -# GDAS GEMPAK PRODUCT GENERATION -############################################ - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} - -############################################ -# Set up model and cycle specific variables -############################################ - -export fend=09 -export finc=3 -export fstart=00 -export GRIB=pgrb2f -export EXT="" -export DBN_ALERT_TYPE=GDAS_GEMPAK - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export model=${model:-gdas} - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -export pgmout=OUTPUT.$$ - -env - -if [ -f $DATA/poescrip ]; then - rm $DATA/poescript -fi - -######################################################## -# Execute the script. -echo "$SRCgfs/exgdas_nawips.sh.ecf gdas 009 GDAS_GEMPAK " >> poescript -######################################################## - -######################################################## -# Execute the script for quater-degree grib -echo "$SRCgfs/exgdas_nawips.sh.ecf gdas_0p25 009 GDAS_GEMPAK " >>poescript -######################################################## - -cat poescript - -chmod 775 $DATA/poescript -export MP_PGMMODEL=mpmd -export MP_CMDFILE=$DATA/poescript - -ntasks=${NTASKS_GEMPAK:-$(cat $DATA/poescript | wc -l)} -ptile=${PTILE_GEMPAK:-4} -threads=${NTHREADS_GEMPAK:-1} -export OMP_NUM_THREADS=$threads -APRUN="mpirun -n $ntasks cfp " - -APRUN_GEMPAKCFP=${APRUN_GEMPAKCFP:-$APRUN} -APRUNCFP=$(eval echo $APRUN_GEMPAKCFP) - -$APRUNCFP $DATA/poescript -export err=$?; err_chk - -######################################################## - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGDAS_GEMPAK_META_NCDC b/jobs/JGDAS_GEMPAK_META_NCDC deleted file mode 100755 index 6edc4b6eff..0000000000 --- a/jobs/JGDAS_GEMPAK_META_NCDC +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -date - -############################################ -# GDAS GEMPAK META NCDC PRODUCT GENERATION -############################################ - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} - -# -# Now set up GEMPAK/NTRANS environment -# - -cp $FIXgempak/datatype.tbl datatype.tbl - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gdas} -export MODEL=GDAS -export GRID_NAME=gdas -export fend=09 - -###################################################### -# set increment to 6 hours -- 3 hours is available. -###################################################### -export finc=6 -export fstart=00 - -export DBN_ALERT_TYPE=GDAS_METAFILE - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} -export COMINgdas=${COMINgdas:-$(compath.py ${NET}/${envir}/${RUN})} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak/meta} -export COMOUTncdc=${COMOUTncdc:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}} - -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} - -export COMOUTukmet=${COMOUT} -export COMOUTecmwf=${COMOUT} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTncdc $COMOUTukmet $COMOUTecmwf -fi - -export pgmout=OUTPUT.$$ - -env - -######################################################## -# Execute the script. -$USHgempak/gdas_meta_na.sh -$USHgempak/gdas_ecmwf_meta_ver.sh -$USHgempak/gdas_meta_loop.sh -$USHgempak/gdas_ukmet_meta_ver.sh -export err=$?; err_chk -######################################################## - -############################################ -# GDAS GEMPAK NCDC PRODUCT GENERATION -############################################ - -######################################################## -# Execute the script. -$SRCgfs/exgempak_gdas_gif_ncdc.sh.ecf -export err=$?; err_chk -######################################################## - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG new file mode 100755 index 0000000000..ea70ae7b14 --- /dev/null +++ b/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG @@ -0,0 +1,96 @@ +#!/bin/sh + +set -xa +export PS4='$SECONDS + ' +export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} +date + +########################################### +# GFS_AWIPS_20KM AWIPS PRODUCT GENERATION +########################################### + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +setpdy.sh +. PDY + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export COMPONENT=${COMPONENT:-atmos} + +############################################## +# Define COM directories +############################################## +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +export pgmout=OUTPUT.$$ + +env + +######################################################## +# Execute the script. +# Forecast hours from F00 - F84 at 3-hour interval +# Forecast hours from F90 - F240 at 6-hour interval +######################################################### + +######################################################## +# Execute the script. +$HOMEgfs/scripts/exgfs_atmos_awips_20km_1p0deg.sh $fcsthrs +export err=$?; err_chk +######################################################## + +msg="JOB $job HAS COMPLETED NORMALLY!" +postmsg $jlogfile "$msg" + +############################################ +# print exec I/O output +############################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ] ; then + rm -rf $DATA +fi + +date diff --git a/jobs/JGFS_ATMOS_AWIPS_G2 b/jobs/JGFS_ATMOS_AWIPS_G2 new file mode 100755 index 0000000000..634cf07cdd --- /dev/null +++ b/jobs/JGFS_ATMOS_AWIPS_G2 @@ -0,0 +1,93 @@ +#!/bin/sh + +set -xa +export PS4='$SECONDS + ' +date +export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} + +######################################## +# GFS_AWIPS_G2 AWIPS PRODUCT GENERATION +######################################## + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +setpdy.sh +. PDY + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} +export UTILgfs=${UTILgfs:-$HOMEgfs/util} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export COMPONENT=${COMPONENT:-atmos} + +############################################## +# Define COM directories +############################################## +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +export pgmout=OUTPUT.$$ + +env + +######################################################## +# Execute the script. +######################################################### +mkdir -m 775 awips_g1 +cd $DATA/awips_g1 +$HOMEgfs/scripts/exgfs_atmos_grib_awips.sh $fcsthrs +export err=$?; err_chk + +msg="JOB $job HAS COMPLETED NORMALLY!" +postmsg $jlogfile "$msg" + +############################################ +# print exec I/O output +############################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ] ; then + rm -rf $DATA +fi + +date diff --git a/jobs/JGFS_ATMOS_CYCLONE_GENESIS b/jobs/JGFS_ATMOS_CYCLONE_GENESIS new file mode 100755 index 0000000000..e43edbbaca --- /dev/null +++ b/jobs/JGFS_ATMOS_CYCLONE_GENESIS @@ -0,0 +1,139 @@ +#!/bin/ksh +set -x + +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4='$SECONDS + ' +date + + +############################# +# Source relevant config files +############################# +configs="base vrfy" +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env vrfy +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################## +# Obtain unique process id (pid) and make temp directory +############################################## +if [ $RUN_ENVIR = "nco" ]; then + export DATA=${DATA:-${DATAROOT}/${jobid:?}} +else + export job="gfs_cyclone_genesis" + export DATA="$DATAROOT/${job}$$" + [[ -d $DATA ]] && rm -rf $DATA +fi +mkdir -p $DATA +cd $DATA + + +############################################## +# Run setpdy and initialize PDY variables +############################################## +export cycle="t${cyc}z" +setpdy.sh +. ./PDY + + +#################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-atmos} + +############################################## +# Determine Job Output Name on System +############################################## +export pgmout="OUTPUT.${pid}" +export pgmerr=errfile + +############################################## +# Set variables used in the exglobal script +############################################## +export CDATE=${CDATE:-${PDY}${cyc}} +export CDUMP=${CDUMP:-${RUN:-"gfs"}} +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi +export cmodel=$CDUMP + +#################################### +# SENDCOM - Copy Files From TMPDIR to $COMOUT +# SENDDBN - Issue DBNet Client Calls +#################################### +export SENDCOM=YES +export SENDDBN=${SENDDBN:-NO} +export SENDECF=${SENDECF:-NO} + +#################################### +# Specify Execution Areas +#################################### +export HOMEens_tracker=${HOMEens_tracker:-${NWROOT:?}/ens_tracker.${ens_tracker_ver}} +export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} +export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} +export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} +export SCRIPTens_tracker=${SCRIPTens_tracker:-$HOMEens_tracker/scripts} + +############################################## +# Define COM directories +############################################## +export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT +export gfsdir=${COMIN} +export COMINgfs=${COMIN} +export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT + +export JYYYY=`echo ${PDY} | cut -c1-4` +export COMINgenvit=${COMINgenvit:-${COMOUT}/genesis_vital_${JYYYY}} +export COMOUTgenvit=${COMOUTgenvit:-${COMOUT}/genesis_vital_${JYYYY}} +#export COMINgenvit=${COMINgenvit:-${DATA}/genesis_vital_${JYYYY}} +#export COMOUTgenvit=${COMOUTgenvit:-${DATA}/genesis_vital_${JYYYY}} + +export COMINsyn=${COMINsyn:-$(compath.py arch/prod/syndat)} + +mkdir -m 775 -p $COMOUTgenvit + +############################################## +# Run relevant script +############################################## +env +msg="HAS BEGUN on `hostname`" +postmsg "$jlogfile" "$msg" +$LOGSCRIPT + + +${SCRIPTens_tracker}/exgfs_tc_genesis.sh +export err=$?; err_chk + +############################################## +# Final processing +############################################## +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + + +msg="ENDED NORMALLY." +postmsg "$jlogfile" "$msg" + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/JGFS_ATMOS_CYCLONE_TRACKER b/jobs/JGFS_ATMOS_CYCLONE_TRACKER new file mode 100755 index 0000000000..a26393cb27 --- /dev/null +++ b/jobs/JGFS_ATMOS_CYCLONE_TRACKER @@ -0,0 +1,181 @@ +#!/bin/ksh +set -x + +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4='$SECONDS + ' +date + + +############################# +# Source relevant config files +############################# +configs="base vrfy" +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env vrfy +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################## +# Obtain unique process id (pid) and make temp directory +############################################## +if [ $RUN_ENVIR = "nco" ]; then + export DATA=${DATA:-${DATAROOT}/${jobid:?}} +else + export job="gfs_cyclone_tracker" + export DATA="$DATAROOT/${job}$$" + [[ -d $DATA ]] && rm -rf $DATA +fi +mkdir -p $DATA +cd $DATA + + +############################################## +# Run setpdy and initialize PDY variables +############################################## +export cycle="t${cyc}z" +setpdy.sh +. ./PDY + + +#################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-atmos} + + +############################################## +# Determine Job Output Name on System +############################################## +export pgmout="OUTPUT.${pid}" +export pgmerr=errfile + + +############################################## +# Set variables used in the exglobal script +############################################## +export CDATE=${CDATE:-${PDY}${cyc}} +export CDUMP=${CDUMP:-${RUN:-"gfs"}} +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi + + +#################################### +# SENDCOM - Copy Files From TMPDIR to $COMOUT +# SENDDBN - Issue DBNet Client Calls +#################################### +export SENDCOM=YES +export SENDDBN=${SENDDBN:-NO} +export SENDECF=${SENDECF:-NO} + +#################################### +# Specify Execution Areas +#################################### +export HOMEens_tracker=${HOMEens_tracker:-${NWROOT:?}/ens_tracker.${ens_tracker_ver}} +export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} +export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} +export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} + + +############################################## +# Define COM and Data directories +############################################## +export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT +export COMINgfs=${COMIN} +export gfsdir=${COMINgfs} +export COMINgdas=${COMIN} +export gdasdir=${COMINgdas} +export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT +export COMINsyn=${COMINsyn:-$(compath.py arch/prod/syndat)} + +if [ $RUN_ENVIR = "nco" ]; then + export COMOUThur=${COMROOTp1:?}/hur/${envir}/global + export COMOUTatcf=${COMROOTp1:?}/nhc/${envir}/atcf + mkdir -m 775 -p $COMOUThur $COMOUTatcf +else +# export COMOUThur=$COMOUT +# export COMOUTatcf=$COMOUT + export COMOUThur=$DATA + export COMOUTatcf=$DATA +fi + +############################################## +# Run relevant script +############################################## +env +msg="HAS BEGUN on `hostname`" +postmsg "$jlogfile" "$msg" +$LOGSCRIPT + +############################################################# +# Execute the script +export pert="p01" +export cmodel=$CDUMP +export loopnum=1 + +#-----------input data checking ----------------- +${USHens_tracker}/data_check_gfs.sh +# exit code 6 = missing data of opportunity +if [ $? -eq 6 ]; then exit; fi +#------------------------------------------------ + +machine=${machine:-`echo ${SITE}`} +if [ $machine = TIDE -o $machine = GYRE ] ; then # For WCOSS + machine=wcoss + ${USHens_tracker}/extrkr_gfs.sh ${loopnum} ${cmodel} ${CDATE} ${pert} ${DATA} +elif [ $machine = LUNA -o $machine = SURGE -o $machine = WCOSS_C ] ; then # For CRAY + machine=cray + ${APRUNTRACK} ${USHens_tracker}/extrkr_gfs.sh ${loopnum} ${cmodel} ${CDATE} ${pert} ${DATA} +elif [ $machine = VENUS -o $machine = MARS -o $machine = WCOSS_DELL_P3 ] ; then # For DELL + machine=dell + mpirun -n 1 ${USHens_tracker}/extrkr_gfs.sh ${loopnum} ${cmodel} ${CDATE} ${pert} ${DATA} +elif [ $machine = HERA ]; then # For HERA + machine=hera + ${USHens_tracker}/extrkr_gfs.sh ${loopnum} ${cmodel} ${CDATE} ${pert} ${DATA} +fi +export err=$?; err_chk + + +#if [ "$SENDCOM" = 'YES' ]; then +# cat ${DATA}/trak.avnx.atcfunix.${PDY}${cyc} | \ +# sed s:AVNX:GFSO:g \ +# > ${COMOUT}/gfso.t${cyc}z.cyclone.trackatcfunix +# +# cat ${DATA}/trak.avnx.atcfunix.${PDY}${cyc} | \ +# sed s:AVNX:AVNO:g \ +# > ${COMOUT}/avn.t${cyc}z.cyclone.trackatcfunix +#fi + +############################################## +# Final processing +############################################## +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + + +msg="ENDED NORMALLY." +postmsg "$jlogfile" "$msg" + + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/JGFS_ATMOS_FBWIND b/jobs/JGFS_ATMOS_FBWIND new file mode 100755 index 0000000000..0c43bf2643 --- /dev/null +++ b/jobs/JGFS_ATMOS_FBWIND @@ -0,0 +1,90 @@ +#!/bin/sh + +set -xa +export PS4='$SECONDS + ' +date + +############################################ +# GFS FBWIND PRODUCT GENERATION +############################################ + +########################################################### +# obtain unique process id (pid) and make temp directory +########################################################### +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +setpdy.sh +. PDY + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} +export UTILgfs=${UTILgfs:-$HOMEgfs/util} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export COMPONENT=${COMPONENT:-atmos} + +############################################## +# Define COM directories +############################################## +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +export pgmout=OUTPUT.$$ + +env + +######################################################## +# Execute the script. +$HOMEgfs/scripts/exgfs_atmos_fbwind.sh +export err=$?;err_chk +######################################################## + +msg="JOB $job HAS COMPLETED NORMALLY!" +postmsg $jlogfile "$msg" + +############################################ +# print exec I/O output +############################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ] ; then + rm -rf $DATA +fi + +date diff --git a/jobs/JGFS_ATMOS_FSU_GENESIS b/jobs/JGFS_ATMOS_FSU_GENESIS new file mode 100755 index 0000000000..5a9f738434 --- /dev/null +++ b/jobs/JGFS_ATMOS_FSU_GENESIS @@ -0,0 +1,149 @@ +#!/bin/ksh +set -x + +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4='$SECONDS + ' +date + + +############################# +# Source relevant config files +############################# +configs="base vrfy" +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +##exit + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env vrfy +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################## +# Obtain unique process id (pid) and make temp directory +############################################## +if [ $RUN_ENVIR = "nco" ]; then + export DATA=${DATA:-${DATAROOT}/${jobid:?}} +else + export job="gfs_fsu_genesis" + export DATA="$DATAROOT/${job}$$" + [[ -d $DATA ]] && rm -rf $DATA +fi +mkdir -p $DATA +cd $DATA + + +############################################## +# Run setpdy and initialize PDY variables +############################################## +export cycle="t${cyc}z" +setpdy.sh +. ./PDY + + +#################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-atmos} + + +############################################## +# Determine Job Output Name on System +############################################## +export pgmout="OUTPUT.${pid}" +export pgmerr=errfile + + +############################################## +# Set variables used in the exglobal script +############################################## +export CDATE=${CDATE:-${PDY}${cyc}} +export CDUMP=${CDUMP:-${RUN:-"gfs"}} +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi + + +#################################### +# SENDCOM - Copy Files From TMPDIR to $COMOUT +# SENDDBN - Issue DBNet Client Calls +#################################### +export SENDCOM=YES +export SENDDBN=${SENDDBN:-NO} +export SENDECF=${SENDECF:-NO} + +#################################### +# Specify Execution Areas +#################################### +export HOMEens_tracker=${HOMEens_tracker:-${NWROOT:?}/ens_tracker.${ens_tracker_ver}} +export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} +export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} +export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} +export SCRIPTens_tracker=${SCRIPTens_tracker:-$HOMEens_tracker/scripts} +export BINens_tracker=${BINens_tracker:-$HOMEens_tracker/ush/FSUgenesisPY/bin} +export PYTHONPATH=${USHens_tracker}/FSUgenesisPY:${PYTHONPATH} + +############################################## +# Define COM and Data directories +############################################## +export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT} +export COMINgfs=${COMIN} +#export gfsdir=${COMINgfs} +export gfsdir=${ROTDIR} +export COMINgdas=${COMIN} +export gdasdir=${COMINgdas} +export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/${COMPONENT} +export COMINsyn=${COMINsyn:-$(compath.py arch/prod/syndat)} + +if [ $RUN_ENVIR = "nco" ]; then + export COMOUThur=${COMROOTp1:?}/hur/${envir}/global + export COMOUTatcf=${COMROOTp1:?}/nhc/${envir}/atcf + mkdir -m 775 -p $COMOUThur $COMOUTatcf +else +# export COMOUThur=$COMOUT +# export COMOUTatcf=$COMOUT + export COMOUThur=$DATA + export COMOUTatcf=$DATA +fi + +############################################## +# Run relevant script +############################################## +env +msg="HAS BEGUN on `hostname`" +postmsg "$jlogfile" "$msg" +$LOGSCRIPT + +############################################################# +# Execute the script +${SCRIPTens_tracker}/exgfs_fsu_genesis.sh +export err=$?; err_chk + +############################################## +# Final processing +############################################## +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +msg="ENDED NORMALLY." +postmsg "$jlogfile" "$msg" + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/JGFS_ATMOS_GEMPAK b/jobs/JGFS_ATMOS_GEMPAK new file mode 100755 index 0000000000..173fad7d51 --- /dev/null +++ b/jobs/JGFS_ATMOS_GEMPAK @@ -0,0 +1,169 @@ +#!/bin/sh + +set -xa +export PS4='$SECONDS + ' +date + +############################################ +# GFS GEMPAK PRODUCT GENERATION +############################################ + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +setpdy.sh +. PDY + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +# For half-degree P Grib files +export DO_HD_PGRB=${DO_HD_PGRB:-YES} + +############################################ +# Set up model and cycle specific variables +############################################ +export finc=${finc:-3} +export fstart=${fstart:-0} +export model=${model:-gfs} +export GRIB=${GRIB:-pgrb2f} +export EXT="" +export DBN_ALERT_TYPE=${DBN_ALERT_TYPE:-GFS_GEMPAK} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export COMPONENT=${COMPONENT:-atmos} + +############################################## +# Define COM directories +############################################## +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +export pgmout=OUTPUT.$$ + +env + +rm -f poescript + +################################################################# +# Execute the script for the 384 hour 1 degree grib +################################################################## +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.1 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.2 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.3 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.4 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.5 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.6 " >>poescript + +################################################################# +# Execute the script for the half-degree grib +################################################################## +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.1 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.2 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.3 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.4 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.5 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.6 " >>poescript + +################################################################# +# Execute the script for the quater-degree grib +#################################################################### +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.1 " >> poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.2 " >> poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.3 " >> poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.4 " >> poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.5 " >> poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.6 " >> poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.7 " >> poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.8 " >> poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.9 " >> poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.10 " >> poescript + +#################################################################### +# Execute the script to create the 35km Pacific grids for OPC +##################################################################### +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs35_pac 180 GFS_GEMPAK_WWB &> $DATA/gfs35_pac.$$.1 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs35_pac 180 GFS_GEMPAK_WWB &> $DATA/gfs35_pac.$$.2 " >>poescript + +#################################################################### +# Execute the script to create the 35km Atlantic grids for OPC +##################################################################### +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs35_atl 180 GFS_GEMPAK_WWB &> $DATA/gfs35_atl.$$.1 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs35_atl 180 GFS_GEMPAK_WWB &> $DATA/gfs35_atl.$$.2 " >>poescript + +##################################################################### +# Execute the script to create the 40km grids for HPC +###################################################################### +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs40 180 GFS_GEMPAK_WWB &> $DATA/gfs40.$$.1 " >>poescript +echo "time $SRCgfs/exgfs_atmos_nawips.sh gfs40 180 GFS_GEMPAK_WWB &> $DATA/gfs40.$$.2 " >>poescript + +cat poescript + +chmod 775 $DATA/poescript +export MP_PGMMODEL=mpmd +export MP_CMDFILE=$DATA/poescript + +ntasks=${NTASKS_GEMPAK:-$(cat $DATA/poescript | wc -l)} +ptile=${PTILE_GEMPAK:-4} +threads=${NTHREADS_GEMPAK:-1} +export OMP_NUM_THREADS=$threads +APRUN="mpirun -n $ntasks cfp " + +APRUN_GEMPAKCFP=${APRUN_GEMPAKCFP:-$APRUN} +APRUNCFP=$(eval echo $APRUN_GEMPAKCFP) + +$APRUNCFP $DATA/poescript +export err=$?; err_chk + +cat $DATA/gfs*.$$.? + +msg="JOB $job HAS COMPLETED NORMALLY!" +postmsg $jlogfile "$msg" + +############################################ +# print exec I/O output +############################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ] ; then + rm -rf $DATA +fi + +date diff --git a/jobs/JGFS_ATMOS_GEMPAK_META b/jobs/JGFS_ATMOS_GEMPAK_META new file mode 100755 index 0000000000..d3590b88bf --- /dev/null +++ b/jobs/JGFS_ATMOS_GEMPAK_META @@ -0,0 +1,120 @@ +#!/bin/sh + +set -xa +export PS4='$SECONDS + ' +date + +############################################ +# GFS GEMPAK META PRODUCT GENERATION +############################################ + +export LAUNCH_MODE=MPI + +############################################### +# Set MP variables +############################################### +export OMP_NUM_THREADS=1 +export MP_LABELIO=yes +export MP_PULSE=0 +export MP_DEBUG_NOTIMEOUT=yes + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +setpdy.sh +. PDY + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +cp $FIXgempak/datatype.tbl datatype.tbl + +############################################# +#set the fcst hrs for all the cycles +############################################# +export fhbeg=00 +export fhend=384 +export fhinc=12 + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export COMPONENT=${COMPONENT:-atmos} + +############################################## +# Set up model and cycle specific variables +############################################## +export DBN_ALERT_TYPE=GFS_METAFILE + +############################################## +# Define COM directories +############################################## +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak/meta} +export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} + +export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} +export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} +export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +msg="Begin job for $job" +postmsg "$jlogfile" "$msg" + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +export pgmout=OUTPUT.$$ + +env + +######################################################## +# Execute the script. +$SRCgfs/exgfs_atmos_gempak_meta.sh +export err=$?; err_chk +######################################################## + +msg="JOB $job HAS COMPLETED NORMALLY!" +postmsg $jlogfile "$msg" + +############################################ +# print exec I/O output +############################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ] ; then + rm -rf $DATA +fi + +date diff --git a/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF new file mode 100755 index 0000000000..cc24556892 --- /dev/null +++ b/jobs/JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF @@ -0,0 +1,115 @@ +#!/bin/sh + +set -xa +export PS4='$SECONDS + ' +date + +############################################ +# GFS GEMPAK NCDC PRODUCT GENERATION +############################################ + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +setpdy.sh +. PDY + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgfs=${FIXgfs:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} +export UTILgfs=${UTILgfs:-$HOMEgfs/util} + +###################################### +# Set up the GEMPAK directory +####################################### +export HOMEgempak=${HOMEgempak:-$HOMEgfs/gempak} +export FIXgempak=${FIXgempak:-$HOMEgempak/fix} +export USHgempak=${USHgempak:-$HOMEgempak/ush} + +export MP_PULSE=0 +export MP_TIMEOUT=2000 +export cycle=t${cyc}z + +# +# Set up model and cycle specific variables +# +export MODEL=GFS +export fend=384 + +# set increment to 6 hours -- 3 hours is available. +export finc=6 +export fstart=00 + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export COMPONENT=${COMPONENT:-atmos} + +############################################## +# Define COM directories +############################################## +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT/gempak} +export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +export pgmout=OUTPUT.$$ + +env + +msg="Begin job for $job" +postmsg "$jlogfile" "$msg" + +######################################################## +# Execute the script. +$SRCgfs/exgfs_atmos_gempak_gif_ncdc_skew_t.sh +export err=$?; err_chk +######################################################## + +msg="JOB $job HAS COMPLETED NORMALLY!" +postmsg $jlogfile "$msg" + +############################################ +# print exec I/O output +############################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ] ; then + rm -rf $DATA +fi + +date diff --git a/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC new file mode 100755 index 0000000000..0f57c6adb2 --- /dev/null +++ b/jobs/JGFS_ATMOS_GEMPAK_PGRB2_SPEC @@ -0,0 +1,141 @@ +#!/bin/sh + +set -xa +export PS4='$SECONDS + ' +date + +############################################ +# GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION +############################################ + +######################################################### +# obtain unique process id (pid) and make temp directory +######################################################### +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +setpdy.sh +. PDY + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} +export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} +export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} + +# For half-degree P Grib files +#export DO_HD_PGRB=YES + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=gfs +export RUN=gfs_goessim +export COMPONENT=${COMPONENT:-atmos} +export finc=3 +export model=gfs +export EXT="" + +############################################## +# Define COM directories +############################################## +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${NET}.${PDY}/${cyc}/$COMPONENT/gempak} + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + +env + +export DATA_HOLD=$DATA + +msg="Begin job for $job" +postmsg "$jlogfile" "$msg" + +################################################################# +# Execute the script for the regular grib +################################################################# +export DATA=$DATA_HOLD/SPECIAL +mkdir -p $DATA +cd $DATA + +export DBN_ALERT_TYPE=GFS_GOESSIM_GEMPAK +export GRIB=goessimpgrb2.0p25.f +export EXT=" " +export fend=180 +export finc=3 +export fstart=000 + +echo "RUNS the Program" +set -xa + +######################################################## +# Execute the script. +$SRCgfs/exgfs_atmos_goes_nawips.sh + +################################################################# +# Execute the script for the 221 grib + +export DATA=$DATA_HOLD/SPECIAL221 +mkdir -p $DATA +cd $DATA + +export DBN_ALERT_TYPE=GFS_GOESSIM221_GEMPAK +export RUN=gfs_goessim221 +export GRIB=goessimpgrb2f +export EXT=".grd221" +export fend=180 +export finc=3 +export fstart=000 + +echo "RUNS the Program" +set -xa + +######################################################## +# Execute the script. +$SRCgfs/exgfs_atmos_goes_nawips.sh +export err=$?; err_chk +######################################################## + +msg="JOB $job HAS COMPLETED NORMALLY!" +postmsg $jlogfile "$msg" + +echo "end of program" +cd $DATA_HOLD +echo "######################################" +echo " SPECIAL.OUT " +echo "######################################" + +############################################ +# print exec I/O output +############################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ] ; then + rm -rf $DATA +fi + +date diff --git a/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS new file mode 100755 index 0000000000..704950ead6 --- /dev/null +++ b/jobs/JGFS_ATMOS_PGRB2_SPEC_NPOESS @@ -0,0 +1,144 @@ +#!/bin/sh + +set -xa +export PS4='$SECONDS + ' +date + +export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} + +############################################ +# GFS PGRB2_SPECIAL_POST PRODUCT GENERATION +############################################ + +########################################################## +# obtain unique process id (pid) and make temp directory +########################################################## +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +setpdy.sh +. PDY + + +################################ +# Set up the HOME directory +################################ +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export USHgfs=${USHgfs:-$HOMEgfs/ush} +export EXECgfs=${EXECgfs:-$HOMEgfs/exec} +export PARMgfs=${PARMgfs:-$HOMEgfs/parm} +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} +export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} +export FIXgfs=${FIXgfs:-$HOMEgfs/fix} + +################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export model=${model:-gfs} +export COMPONENT=${COMPONENT:-atmos} + +############################################## +# Define COM directories +############################################## +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT $COMOUTwmo +fi + +export pgmout=OUTPUT.$$ + +env + +#################################### +# Specify Forecast Hour Range +#################################### +export SHOUR=000 +export FHOUR=180 +export FHINC=003 + +####################################### +# Specify Restart File Name to Key Off +####################################### +restart_file=$COMIN/${RUN}.t${cyc}z.special.grb2if + +#################################### +# Specify Timeout Behavior of Post +# +# SLEEP_TIME - Amount of time to wait for +# a restart file before exiting +# SLEEP_INT - Amount of time to wait between +# checking for restart files +#################################### +export SLEEP_TIME=900 +export SLEEP_INT=5 + +#################################### +# Check if this is a restart +#################################### +if test -f $COMIN/$RUN.t${cyc}z.control.goessimpgrb2 +then + modelrecvy=`cat < $COMIN/$RUN.t${cyc}z.control.goessimpgrb` + recvy_pdy=`echo $modelrecvy | cut -c1-8` + recvy_cyc=`echo $modelrecvy | cut -c9-10` + recvy_shour=`echo $modelrecvy | cut -c11-13` + + if test $RERUN = "NO" + then + NEW_SHOUR=`expr $recvy_shour + $FHINC` + if test $NEW_SHOUR -ge $SHOUR + then + export SHOUR=$NEW_SHOUR + fi + if test $recvy_shour -ge $FHOUR + then + msg="Forecast Pgrb Generation Already Completed to $FHOUR" + postmsg "$jlogfile" "$msg" + else + msg="Starting: PDY=$PDY cycle=t${recvy_cyc}z SHOUR=$SHOUR ." + postmsg "$jlogfile" "$msg" + fi + fi +fi + +############################################################# +# Execute the script +$HOMEgfs/scripts/exgfs_atmos_grib2_special_npoess.sh +export err=$?;err_chk +############################################################# + +msg="JOB $job HAS COMPLETED NORMALLY!" +postmsg $jlogfile "$msg" + +############################################ +# print exec I/O output +############################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ] ; then + rm -rf $DATA +fi + +date diff --git a/jobs/JGFS_ATMOS_POSTSND b/jobs/JGFS_ATMOS_POSTSND new file mode 100755 index 0000000000..5faf16f778 --- /dev/null +++ b/jobs/JGFS_ATMOS_POSTSND @@ -0,0 +1,126 @@ +#!/bin/ksh +set -x + +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4='$SECONDS + ' +date + +############################# +# Source relevant config files +############################# +configs="base postsnd" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env postsnd +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################## +# Obtain unique process id (pid) and make temp directory +############################################## +export pid=${pid:-$$} +export outid=${outid:-"LL$job"} +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + + +############################################## +# Run setpdy and initialize PDY variables +############################################## +export cycle="t${cyc}z" +setpdy.sh +. ./PDY + +############################################## +# Determine Job Output Name on System +############################################## +export pgmout="OUTPUT.${pid}" +export pgmerr=errfile + + +############################################## +# Set variables used in the exglobal script +############################################## +export CDATE=${CDATE:-${PDY}${cyc}} +export CDUMP=${CDUMP:-${RUN:-"gfs"}} +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi + + +######################################## +# Runs GFS BUFR SOUNDINGS +######################################## + +export model=${model:-gfs} +export SENDCOM=${SENDCOM:-YES} +export SENDDBN=${SENDDBN:-YES} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +################################### +# Set up the source directories +################################### + +export HOMEbufrsnd=${HOMEbufrsnd:-$HOMEgfs} +export EXECbufrsnd=${EXECbufrsnd:-$HOMEbufrsnd/exec} +export FIXbufrsnd=${FIXbufrsnd:-$HOMEbufrsnd/fix/product} +export PARMbufrsnd=${PARMbufrsnd:-$HOMEbufrsnd/parm/product} +export USHbufrsnd=${USHbufrsnd:-$HOMEbufrsnd/ush} +export SCRbufrsnd=${SCRbufrsnd:-$HOMEbufrsnd/scripts} + +############################## +# Define COM Directories +############################## +export COMIN=${COMIN:-$ROTDIR/${CDUMP}.${PDY}/${cyc}/atmos} +export COMOUT=${COMOUT:-$ROTDIR/${CDUMP}.${PDY}/${cyc}/atmos} +export pcom=${pcom:-${COMOUT}/wmo} +export COMAWP=${COMAWP:-${COMOUT}/gempak} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} +[[ ! -d $COMOUT ]] && mkdir -p $COMOUT +[[ ! -d $pcom ]] && mkdir -p $pcom +[[ ! -d $COMAWP ]] && mkdir -p $COMAWP + +env + +######################################################## +# Execute the script. +$SCRbufrsnd/exgfs_atmos_postsnd.sh +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################## +# End JOB SPECIFIC work +############################################## + +############################################## +# Final processing +############################################## +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +msg="ENDED NORMALLY." +postmsg "$jlogfile" "$msg" + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 + diff --git a/jobs/JGFS_AWIPS_20KM_1P0DEG b/jobs/JGFS_AWIPS_20KM_1P0DEG deleted file mode 100755 index c05386fe65..0000000000 --- a/jobs/JGFS_AWIPS_20KM_1P0DEG +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} -date - -########################################### -# GFS_AWIPS_20KM AWIPS PRODUCT GENERATION -########################################### - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -export pgmout=OUTPUT.$$ - -env - -######################################################## -# Execute the script. -# Forecast hours from F00 - F84 at 3-hour interval -# Forecast hours from F90 - F240 at 6-hour interval -######################################################### - -######################################################## -# Execute the script. -$HOMEgfs/scripts/exgfs_awips_20km_1p0deg.sh.ecf $fcsthrs -export err=$?; err_chk -######################################################## - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGFS_AWIPS_G2 b/jobs/JGFS_AWIPS_G2 deleted file mode 100755 index 6840bff2cc..0000000000 --- a/jobs/JGFS_AWIPS_G2 +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -date -export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} - -######################################## -# GFS_AWIPS_G2 AWIPS PRODUCT GENERATION -######################################## - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -export pgmout=OUTPUT.$$ - -env - -######################################################## -# Execute the script. -######################################################### -mkdir -m 775 awips_g1 -cd $DATA/awips_g1 -$HOMEgfs/scripts/exgfs_grib_awips.sh.ecf $fcsthrs -export err=$?; err_chk - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGFS_CYCLONE_GENESIS b/jobs/JGFS_CYCLONE_GENESIS deleted file mode 100755 index 4247a08948..0000000000 --- a/jobs/JGFS_CYCLONE_GENESIS +++ /dev/null @@ -1,137 +0,0 @@ -#!/bin/ksh -set -x - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} -export PS4='$SECONDS + ' -date - - -############################# -# Source relevant config files -############################# -configs="base vrfy" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config - status=$? - [[ $status -ne 0 ]] && exit $status -done - - -########################################## -# Source machine runtime environment -########################################## -. $HOMEgfs/env/${machine}.env vrfy -status=$? -[[ $status -ne 0 ]] && exit $status - - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -if [ $RUN_ENVIR = "nco" ]; then - export DATA=${DATA:-${DATAROOT}/${jobid:?}} -else - export job="gfs_cyclone_genesis" - export DATA="$DATAROOT/${job}$$" - [[ -d $DATA ]] && rm -rf $DATA -fi -mkdir -p $DATA -cd $DATA - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -#################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} - - -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - -############################################## -# Set variables used in the exglobal script -############################################## -export CDATE=${CDATE:-${PDY}${cyc}} -export CDUMP=${CDUMP:-${RUN:-"gfs"}} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi - -#################################### -# SENDCOM - Copy Files From TMPDIR to $COMOUT -# SENDDBN - Issue DBNet Client Calls -#################################### -export SENDCOM=YES -export SENDDBN=${SENDDBN:-NO} -export SENDECF=${SENDECF:-NO} - -#################################### -# Specify Execution Areas -#################################### -export HOMEens_tracker=${HOMEens_tracker:-${NWROOT:?}/ens_tracker.${ens_tracker_ver}} -export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} -export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} -export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} -export SCRIPTens_tracker=${SCRIPTens_tracker:-$HOMEens_tracker/scripts} - -############################################## -# Define COM directories -############################################## -export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc} -export gfsdir=${COMIN} -export COMINgfs=${COMIN} -export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc} - -export JYYYY=`echo ${PDY} | cut -c1-4` -#export COMINgenvit=${COMINgenvit:-${COMOUT}/genesis_vital_${JYYYY}} -#export COMOUTgenvit=${COMOUTgenvit:-${COMOUT}/genesis_vital_${JYYYY}} -export COMINgenvit=${COMINgenvit:-${DATA}/genesis_vital_${JYYYY}} -export COMOUTgenvit=${COMOUTgenvit:-${DATA}/genesis_vital_${JYYYY}} -export COMINsyn=${COMINsyn:-$(compath.py arch/prod/syndat)} - -mkdir -m 775 -p $COMOUTgenvit - -############################################## -# Run relevant script -############################################## -env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" -$LOGSCRIPT - - -${SCRIPTens_tracker}/exgfs_tc_genesis.sh -export err=$?; err_chk - -############################################## -# Final processing -############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - - -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" - -########################################## -# Remove the Temporary working directory -########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA - -date -exit 0 diff --git a/jobs/JGFS_CYCLONE_TRACKER b/jobs/JGFS_CYCLONE_TRACKER deleted file mode 100755 index c0492c79d7..0000000000 --- a/jobs/JGFS_CYCLONE_TRACKER +++ /dev/null @@ -1,180 +0,0 @@ -#!/bin/ksh -set -x - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} -export PS4='$SECONDS + ' -date - - -############################# -# Source relevant config files -############################# -configs="base vrfy" -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config - status=$? - [[ $status -ne 0 ]] && exit $status -done - - -########################################## -# Source machine runtime environment -########################################## -. $HOMEgfs/env/${machine}.env vrfy -status=$? -[[ $status -ne 0 ]] && exit $status - - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -if [ $RUN_ENVIR = "nco" ]; then - export DATA=${DATA:-${DATAROOT}/${jobid:?}} -else - export job="gfs_cyclone_tracker" - export DATA="$DATAROOT/${job}$$" - [[ -d $DATA ]] && rm -rf $DATA -fi -mkdir -p $DATA -cd $DATA - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -#################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} - - -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################################## -# Set variables used in the exglobal script -############################################## -export CDATE=${CDATE:-${PDY}${cyc}} -export CDUMP=${CDUMP:-${RUN:-"gfs"}} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi - - -#################################### -# SENDCOM - Copy Files From TMPDIR to $COMOUT -# SENDDBN - Issue DBNet Client Calls -#################################### -export SENDCOM=YES -export SENDDBN=${SENDDBN:-NO} -export SENDECF=${SENDECF:-NO} - -#################################### -# Specify Execution Areas -#################################### -export HOMEens_tracker=${HOMEens_tracker:-${NWROOT:?}/ens_tracker.${ens_tracker_ver}} -export EXECens_tracker=${EXECens_tracker:-$HOMEens_tracker/exec} -export FIXens_tracker=${FIXens_tracker:-$HOMEens_tracker/fix} -export USHens_tracker=${USHens_tracker:-$HOMEens_tracker/ush} - - -############################################## -# Define COM and Data directories -############################################## -export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc} -export COMINgfs=${COMIN} -export gfsdir=${COMINgfs} -export COMINgdas=${COMIN} -export gdasdir=${COMINgdas} -export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc} -export COMINsyn=${COMINsyn:-$(compath.py gfs/prod/syndat)} - -if [ $RUN_ENVIR = "nco" ]; then - export COMOUThur=${COMROOTp1:?}/hur/${envir}/global - export COMOUTatcf=${COMROOTp1:?}/nhc/${envir}/atcf - mkdir -m 775 -p $COMOUThur $COMOUTatcf -else -# export COMOUThur=$COMOUT -# export COMOUTatcf=$COMOUT - export COMOUThur=$DATA - export COMOUTatcf=$DATA -fi - -############################################## -# Run relevant script -############################################## -env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" -$LOGSCRIPT - -############################################################# -# Execute the script -export pert="p01" -export cmodel=$CDUMP -export loopnum=1 - -#-----------input data checking ----------------- -${USHens_tracker}/data_check.sh -# exit code 6 = missing data of opportunity -if [ $? -eq 6 ]; then exit; fi -#------------------------------------------------ - -mac=`echo ${SITE}` -if [ $mac = TIDE -o $mac = GYRE ] ; then # For WCOSS - machine=wcoss - ${USHens_tracker}/extrkr_g2.sh ${loopnum} ${cmodel} ${CDATE} ${pert} ${DATA} -elif [ $mac = LUNA -o $mac = SURGE ] ; then # For CRAY - machine=cray - ${APRUNTRACK} ${USHens_tracker}/extrkr_g2.sh ${loopnum} ${cmodel} ${CDATE} ${pert} ${DATA} -elif [ $mac = VENUS -o $mac = MARS ] ; then # For DELL - machine=dell - mpirun -n 1 ${USHens_tracker}/extrkr_g2.sh ${loopnum} ${cmodel} ${CDATE} ${pert} ${DATA} -else # For THEIA - machine=theia - ${USHens_tracker}/extrkr_g2.sh ${loopnum} ${cmodel} ${CDATE} ${pert} ${DATA} -fi -export err=$?; err_chk - - -#if [ "$SENDCOM" = 'YES' ]; then -# cat ${DATA}/trak.avnx.atcfunix.${PDY}${cyc} | \ -# sed s:AVNX:GFSO:g \ -# > ${COMOUT}/gfso.t${cyc}z.cyclone.trackatcfunix -# -# cat ${DATA}/trak.avnx.atcfunix.${PDY}${cyc} | \ -# sed s:AVNX:AVNO:g \ -# > ${COMOUT}/avn.t${cyc}z.cyclone.trackatcfunix -#fi - -############################################## -# Final processing -############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - - -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" - - -########################################## -# Remove the Temporary working directory -########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA - -date -exit 0 diff --git a/jobs/JGFS_FBWIND b/jobs/JGFS_FBWIND deleted file mode 100755 index abec894b84..0000000000 --- a/jobs/JGFS_FBWIND +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -date - -############################################ -# GFS FBWIND PRODUCT GENERATION -############################################ - -########################################################### -# obtain unique process id (pid) and make temp directory -########################################################### -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -export pgmout=OUTPUT.$$ - -env - -######################################################## -# Execute the script. -$HOMEgfs/scripts/exgfs_fbwind.sh.ecf -export err=$?;err_chk -######################################################## - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGFS_GEMPAK b/jobs/JGFS_GEMPAK deleted file mode 100755 index 888b970a3f..0000000000 --- a/jobs/JGFS_GEMPAK +++ /dev/null @@ -1,165 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -date - -############################################ -# GFS GEMPAK PRODUCT GENERATION -############################################ - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -# For half-degree P Grib files -export DO_HD_PGRB=${DO_HD_PGRB:-YES} - -############################################ -# Set up model and cycle specific variables -############################################ -export finc=${finc:-3} -export fstart=${fstart:-0} -export model=${model:-gfs} -export GRIB=${GRIB:-pgrb2f} -export EXT="" -export DBN_ALERT_TYPE=${DBN_ALERT_TYPE:-GFS_GEMPAK} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -export pgmout=OUTPUT.$$ - -env - -rm -f poescript - -################################################################# -# Execute the script for the 384 hour 1 degree grib -################################################################## -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.1 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.2 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.3 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.4 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.5 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs 384 GFS_GEMPAK &> $DATA/gfs_1p0.$$.6 " >>poescript - -################################################################# -# Execute the script for the half-degree grib -################################################################## -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.1 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.2 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.3 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.4 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.5 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p50 384 GFS_GEMPAK &> $DATA/gfs_0p5.$$.6 " >>poescript - -################################################################# -# Execute the script for the quater-degree grib -#################################################################### -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.1 " >> poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.2 " >> poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.3 " >> poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.4 " >> poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.5 " >> poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.6 " >> poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.7 " >> poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.8 " >> poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.9 " >> poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs_0p25 384 GFS_GEMPAK &> $DATA/gfs_0p25.$$.10 " >> poescript - -#################################################################### -# Execute the script to create the 35km Pacific grids for OPC -##################################################################### -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs35_pac 180 GFS_GEMPAK_WWB &> $DATA/gfs35_pac.$$.1 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs35_pac 180 GFS_GEMPAK_WWB &> $DATA/gfs35_pac.$$.2 " >>poescript - -#################################################################### -# Execute the script to create the 35km Atlantic grids for OPC -##################################################################### -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs35_atl 180 GFS_GEMPAK_WWB &> $DATA/gfs35_atl.$$.1 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs35_atl 180 GFS_GEMPAK_WWB &> $DATA/gfs35_atl.$$.2 " >>poescript - -##################################################################### -# Execute the script to create the 40km grids for HPC -###################################################################### -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs40 180 GFS_GEMPAK_WWB &> $DATA/gfs40.$$.1 " >>poescript -echo "time $SRCgfs/exgfs_nawips.sh.ecf gfs40 180 GFS_GEMPAK_WWB &> $DATA/gfs40.$$.2 " >>poescript - -cat poescript - -chmod 775 $DATA/poescript -export MP_PGMMODEL=mpmd -export MP_CMDFILE=$DATA/poescript - -ntasks=${NTASKS_GEMPAK:-$(cat $DATA/poescript | wc -l)} -ptile=${PTILE_GEMPAK:-4} -threads=${NTHREADS_GEMPAK:-1} -export OMP_NUM_THREADS=$threads -APRUN="mpirun -n $ntasks cfp " - -APRUN_GEMPAKCFP=${APRUN_GEMPAKCFP:-$APRUN} -APRUNCFP=$(eval echo $APRUN_GEMPAKCFP) - -$APRUNCFP $DATA/poescript -export err=$?; err_chk - -cat $DATA/gfs*.$$.? - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGFS_GEMPAK_META b/jobs/JGFS_GEMPAK_META deleted file mode 100755 index 45c6a0153d..0000000000 --- a/jobs/JGFS_GEMPAK_META +++ /dev/null @@ -1,116 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -date - -############################################ -# GFS GEMPAK META PRODUCT GENERATION -############################################ - -export LAUNCH_MODE=MPI - -############################################### -# Set MP variables -############################################### -export OMP_NUM_THREADS=1 -export MP_LABELIO=yes -export MP_PULSE=0 -export MP_DEBUG_NOTIMEOUT=yes - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -cp $FIXgempak/datatype.tbl datatype.tbl - -############################################# -#set the fcst hrs for all the cycles -############################################# -export fhbeg=00 -export fhend=384 -export fhinc=12 - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Set up model and cycle specific variables -############################################## -export DBN_ALERT_TYPE=GFS_METAFILE - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/gempak/meta} -export COMINgempak=${COMINgempak:-${COMROOT}/${NET}/${envir}} - -export COMINukmet=${COMINukmet:-$(compath.py nawips/prod/ukmet)} -export COMINecmwf=${COMINecmwf:-$(compath.py ecmwf/prod/ecmwf)} -export COMINnam=${COMINnam:-$(compath.py nam/prod/nam)} - -msg="Begin job for $job" -postmsg "$jlogfile" "$msg" - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -export pgmout=OUTPUT.$$ - -env - -######################################################## -# Execute the script. -$SRCgfs/exgfs_gempak_meta.sh.ecf -export err=$?; err_chk -######################################################## - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGFS_GEMPAK_NCDC_UPAPGIF b/jobs/JGFS_GEMPAK_NCDC_UPAPGIF deleted file mode 100755 index bf09cbf578..0000000000 --- a/jobs/JGFS_GEMPAK_NCDC_UPAPGIF +++ /dev/null @@ -1,111 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -date - -############################################ -# GFS GEMPAK NCDC PRODUCT GENERATION -############################################ - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgfs=${FIXgfs:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} -export UTILgfs=${UTILgfs:-$HOMEgfs/util} - -###################################### -# Set up the GEMPAK directory -####################################### -export HOMEgempak=${HOMEgempak:-$HOMEgfs/gempak} -export FIXgempak=${FIXgempak:-$HOMEgempak/fix} -export USHgempak=${USHgempak:-$HOMEgempak/ush} - -export MP_PULSE=0 -export MP_TIMEOUT=2000 -export cycle=t${cyc}z - -# -# Set up model and cycle specific variables -# -export MODEL=GFS -export fend=384 - -# set increment to 6 hours -- 3 hours is available. -export finc=6 -export fstart=00 - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/gempak} -export COMINgfs=${COMINgfs:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -export pgmout=OUTPUT.$$ - -env - -msg="Begin job for $job" -postmsg "$jlogfile" "$msg" - -######################################################## -# Execute the script. -$SRCgfs/exgempak_gfs_gif_ncdc_skew_t.sh.ecf -export err=$?; err_chk -######################################################## - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGFS_PGRB2_SPEC_GEMPAK b/jobs/JGFS_PGRB2_SPEC_GEMPAK deleted file mode 100755 index 5474510ea1..0000000000 --- a/jobs/JGFS_PGRB2_SPEC_GEMPAK +++ /dev/null @@ -1,137 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -date - -############################################ -# GFS_PGRB2_SPEC_GEMPAK PRODUCT GENERATION -############################################ - -######################################################### -# obtain unique process id (pid) and make temp directory -######################################################### -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export FIXgempak=${FIXgempak:-$HOMEgfs/gempak/fix} -export USHgempak=${USHgempak:-$HOMEgfs/gempak/ush} -export SRCgfs=${SRCgfs:-$HOMEgfs/scripts} - -# For half-degree P Grib files -#export DO_HD_PGRB=YES - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=gfs -export RUN=gfs_goessim -export finc=3 -export model=gfs -export EXT="" - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${NET}.${PDY})/${cyc}} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${NET}.${PDY}/${cyc}/gempak} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT -fi - -env - -export DATA_HOLD=$DATA - -msg="Begin job for $job" -postmsg "$jlogfile" "$msg" - -################################################################# -# Execute the script for the regular grib -################################################################# -export DATA=$DATA_HOLD/SPECIAL -mkdir -p $DATA -cd $DATA - -export DBN_ALERT_TYPE=GFS_GOESSIM_GEMPAK -export GRIB=goessimpgrb2.1p00.f -export EXT=" " -export fend=180 -export finc=3 -export fstart=000 - -echo "RUNS the Program" -set -xa - -######################################################## -# Execute the script. -$SRCgfs/exgoes_nawips.sh.ecf - -################################################################# -# Execute the script for the 221 grib - -export DATA=$DATA_HOLD/SPECIAL221 -mkdir -p $DATA -cd $DATA - -export DBN_ALERT_TYPE=GFS_GOESSIM221_GEMPAK -export RUN=gfs_goessim221 -export GRIB=goessimpgrb2f -export EXT=".grd221" -export fend=180 -export finc=3 -export fstart=000 - -echo "RUNS the Program" -set -xa - -######################################################## -# Execute the script. -$SRCgfs/exgoes_nawips.sh.ecf -export err=$?; err_chk -######################################################## - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -echo "end of program" -cd $DATA_HOLD -echo "######################################" -echo " SPECIAL.OUT " -echo "######################################" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGFS_PGRB2_SPEC_NPOESS b/jobs/JGFS_PGRB2_SPEC_NPOESS deleted file mode 100755 index af9478237c..0000000000 --- a/jobs/JGFS_PGRB2_SPEC_NPOESS +++ /dev/null @@ -1,140 +0,0 @@ -#!/bin/sh - -set -xa -export PS4='$SECONDS + ' -date - -export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} - -############################################ -# GFS PGRB2_SPECIAL_POST PRODUCT GENERATION -############################################ - -########################################################## -# obtain unique process id (pid) and make temp directory -########################################################## -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - -###################################### -# Set up the cycle variable -###################################### -export cycle=${cycle:-t${cyc}z} - -########################################### -# Run setpdy and initialize PDY variables -########################################### -setpdy.sh -. PDY - - -################################ -# Set up the HOME directory -################################ -export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} -export PARMgfs=${PARMgfs:-$HOMEgfs/parm} -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -export PARMwmo=${PARMwmo:-$HOMEgfs/parm/wmo} -export PARMproduct=${PARMproduct:-$HOMEgfs/parm/product} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} - -################################### -# Specify NET and RUN Name and model -#################################### -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -############################################## -# Define COM directories -############################################## -export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}} -export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}} -export COMOUTwmo=${COMOUTwmo:-${COMOUT}/wmo} - -if [ $SENDCOM = YES ] ; then - mkdir -m 775 -p $COMOUT $COMOUTwmo -fi - -export pgmout=OUTPUT.$$ - -env - -#################################### -# Specify Forecast Hour Range -#################################### -export SHOUR=000 -export FHOUR=180 -export FHINC=003 - -####################################### -# Specify Restart File Name to Key Off -####################################### -restart_file=$COMIN/${RUN}.t${cyc}z.special.grb2if - -#################################### -# Specify Timeout Behavior of Post -# -# SLEEP_TIME - Amount of time to wait for -# a restart file before exiting -# SLEEP_INT - Amount of time to wait between -# checking for restart files -#################################### -export SLEEP_TIME=900 -export SLEEP_INT=5 - -#################################### -# Check if this is a restart -#################################### -if test -f $COMIN/$RUN.t${cyc}z.control.goessimpgrb2 -then - modelrecvy=`cat < $COMIN/$RUN.t${cyc}z.control.goessimpgrb` - recvy_pdy=`echo $modelrecvy | cut -c1-8` - recvy_cyc=`echo $modelrecvy | cut -c9-10` - recvy_shour=`echo $modelrecvy | cut -c11-13` - - if test $RERUN = "NO" - then - NEW_SHOUR=`expr $recvy_shour + $FHINC` - if test $NEW_SHOUR -ge $SHOUR - then - export SHOUR=$NEW_SHOUR - fi - if test $recvy_shour -ge $FHOUR - then - msg="Forecast Pgrb Generation Already Completed to $FHOUR" - postmsg "$jlogfile" "$msg" - else - msg="Starting: PDY=$PDY cycle=t${recvy_cyc}z SHOUR=$SHOUR ." - postmsg "$jlogfile" "$msg" - fi - fi -fi - -############################################################# -# Execute the script -$HOMEgfs/scripts/exglobal_grib2_special_npoess.sh.ecf -export err=$?;err_chk -############################################################# - -msg="JOB $job HAS COMPLETED NORMALLY!" -postmsg $jlogfile "$msg" - -############################################ -# print exec I/O output -############################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################### -# Remove temp directories -################################### -if [ "$KEEPDATA" != "YES" ] ; then - rm -rf $DATA -fi - -date diff --git a/jobs/JGFS_POSTSND b/jobs/JGFS_POSTSND deleted file mode 100755 index dc778ce1b2..0000000000 --- a/jobs/JGFS_POSTSND +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh -export PS4='$SECONDS + ' -date -set -xa -######################################## -# Runs GFS BUFR SOUNDINGS -######################################## - -############################ -export MP_EUIDEVELOP=min -export KMP_STACKSIZE=2048m -export MPICH_ALLTOALL_THROTTLE=0 -export MP_SINGLE_THREAD=yes -export MP_EAGER_LIMIT=65536 -export MP_USE_BULK_XFER=no -export MP_COLLECTIVE_OFFLOAD=no -export MP_SHARED_MEMORY=yes -export MP_MPILIB=mpich2 -export MP_LABELIO=yes -#################################### -# obtain unique process id (pid) and make temp directories -export DATA=/gpfs/dell2/nco/ops/tmpnwprd/${jobid:?} -mkdir $DATA -cd $DATA - -#################################### -# Determine Job Output Name on System -#################################### -export outid="LL$job" -export pgmout="OUTPUT.${pid}" - -export cycle=t${cyc}z - -export NET=${NET:-gfs} -export RUN=${RUN:-gfs} -export model=${model:-gfs} - -################################### -# Set up the UTILITIES -################################### - -export HOMEbufrsnd=${HOMEbufrsnd:-$NWROOT/gfs.${gfs_ver}} -export EXECbufrsnd=${EXECbufrsnd:-$HOMEbufrsnd/exec} -export FIXbufrsnd=${FIXbufrsnd:-$HOMEbufrsnd/fix/product} -export PARMbufrsnd=${PARMbufrsnd:-$HOMEbufrsnd/parm/product} -export USHbufrsnd=${USHbufrsnd:-$HOMEbufrsnd/ush} -export SCRbufrsnd=${SCRbufrsnd:-$HOMEbufrsnd/scripts} - -# Run setpdy and initialize PDY variables -setpdy.sh -. ./PDY - -############################## -# Define COM Directories -############################## -export COMIN=${COMIN:-$COMROOT/${NET}/${envir}/${RUN}.${PDY}/${cyc}} -export COMOUT=${COMOUT:-$COMROOT/${NET}/${envir}/${RUN}.${PDY}/${cyc}} -export pcom=${pcom:-${COMOUT}/wmo} -export COMAWP=${COMAWP:-${COMOUT}/gempak} -mkdir -p $COMOUT $pcom $COMAWP -env - -######################################################## -# Execute the script. -$SCRbufrsnd/exgfs_postsnd.sh.ecf -######################################################## - -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -########################################## -# Remove the Temporary working directory -########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA - -date -exit 0 diff --git a/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP new file mode 100755 index 0000000000..96db26e907 --- /dev/null +++ b/jobs/JGLOBAL_ATMOS_EMCSFC_SFC_PREP @@ -0,0 +1,106 @@ +#!/bin/ksh +set -x + +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4='$SECONDS + ' +date + +############################# +# Source relevant config files +############################# +configs="base" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + + +############################################## +# Obtain unique process id (pid) and make temp directory +############################################## +export pid=${pid:-$$} +export outid=${outid:-"LL$job"} +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + + +############################################## +# Run setpdy and initialize PDY variables +############################################## +export cycle="t${cyc}z" +setpdy.sh +. ./PDY + + +############################################## +# Determine Job Output Name on System +############################################## +export pgmout="OUTPUT.${pid}" +export pgmerr=errfile + +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + +############################################## +# Set CDATE +############################################## + +CDATE=${CDATE:-${PDY}${cyc}} +GDATE=$($NDATE -06 $CDATE) +PDY_m6hrs=$(echo $GDATE | cut -c1-8) +cyc_m6hrs=$(echo $GDATE | cut -c9-10) +export cycle_m6hrs=t${cyc_m6hrs}z + +export COMPONENT=${COMPONENT:-atmos} +export COMOUT=${COMOUT:-${COMROOT}/$NET/$envir/$RUN.$PDY/$cyc/$COMPONENT} + +export COMINgfs=${COMINgfs:-$(compath.py $NET/$envir/$RUN.$PDY)/$cyc/$COMPONENT} +export COMINgfs_m6hrs=${COMINgfs_m6hrs:-$(compath.py $NET/$envir/$RUN.$PDY_m6hrs)/$cyc_m6hrs/$COMPONENT} + +export IMS_FILE=${COMINgfs}/${RUN}.${cycle}.imssnow96.grib2 +export FIVE_MIN_ICE_FILE=${COMINgfs}/${RUN}.${cycle}.seaice.5min.grib2 +export AFWA_NH_FILE=${COMINgfs}/${RUN}.${cycle}.NPR.SNWN.SP.S1200.MESH16.grb +export AFWA_SH_FILE=${COMINgfs}/${RUN}.${cycle}.NPR.SNWS.SP.S1200.MESH16.grb + +export BLENDED_ICE_FILE=${BLENDED_ICE_FILE:-${RUN}.${cycle}.seaice.5min.blend.grb} +export BLENDED_ICE_FILE_m6hrs=${BLENDED_ICE_FILE_m6hrs:-${COMINgfs_m6hrs}/${RUN}.${cycle_m6hrs}.seaice.5min.blend.grb} + +############################################################### +# Run relevant script +############################################################### + +env +msg="HAS BEGUN on `hostname`" +postmsg "$jlogfile" "$msg" + +${EMCSFCPREPSH:-$SCRgfs/exemcsfc_global_sfc_prep.sh} +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################## +# End JOB SPECIFIC work +############################################## + +############################################## +# Final processing +############################################## +if [ -e ${pgmout} ]; then + cat $pgmout +fi + +msg="ENDED NORMALLY." +postmsg "$jlogfile" "$msg" + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date + +exit 0 diff --git a/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC new file mode 100755 index 0000000000..3b387919a7 --- /dev/null +++ b/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC @@ -0,0 +1,136 @@ +#!/bin/ksh +set -x + +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4='$SECONDS + ' +date + + +############################# +# Source relevant config files +############################# +configs="base prep" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env prep +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################## +# Obtain unique process id (pid) and make temp directory +############################################## +export pid=${pid:-$$} +export outid=${outid:-"LL$job"} +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + + +############################################## +# Run setpdy and initialize PDY variables +############################################## +export cycle="t${cyc}z" +setpdy.sh +. ./PDY + + +############################################## +# Determine Job Output Name on System +############################################## +export pgmout="OUTPUT.${pid}" +export pgmerr=errfile + + +############################################## +# Set variables used in the exglobal script +############################################## +export CDATE=${CDATE:-${PDY}${cyc}} +export CDUMP=${CDUMP:-${RUN:-"gfs"}} +export COMPONENT=${COMPONENT:-atmos} +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi + + +############################################## +# Begin JOB SPECIFIC work +############################################## + +export PROCESS_TROPCY=${PROCESS_TROPCY:-YES} # Turn on tropical cyclone tcvitals QC proc. if YES +export DO_RELOCATE=${DO_RELOCATE:-NO} # Turn on tropical cyclone relocation proc. if YES + + +export tmmark=tm00 +if [ $RUN_ENVIR = "nco" ]; then + export ARCHSYND=$COMROOTp3/gfs/${envir}/syndat # this location is unique, do not change +else + export ARCHSYND=${ROTDIR}/syndat +fi +if [ ! -d ${ARCHSYND} ]; then mkdir -p $ARCHSYND; fi + +export HOMENHCp1=${HOMENHCp1:-/gpfs/?p1/nhc/save/guidance/storm-data/ncep} +export HOMENHC=${HOMENHC:-/gpfs/dell2/nhc/save/guidance/storm-data/ncep} + +# JY export TANK_TROPCY=${TANK_TROPCY:-${DCOMROOT}/${envir}} # path to tropical cyclone record database +export TANK_TROPCY=${TANK_TROPCY:-${DCOMROOT}/prod} # path to tropical cyclone record database + + +############################################## +# Define COM directories +############################################## +export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT +export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc}/$COMPONENT +if [ ! -d ${COMOUT} ]; then mkdir -p $COMOUT; fi +#export COMINgdas=${ROTDIR}/gdas.${PDY}/${cyc} +#export COMINgfs=${ROTDIR}/gfs.${PDY}/${cyc} + +export CRES=$(echo $CASE | cut -c2-) +export LATB=$((CRES*2)) +export LONB=$((CRES*4)) +export BKGFREQ=1 # for hourly relocation + + +############################################## +# Run relevant script +############################################## +env +msg="HAS BEGUN on `hostname`" +postmsg "$jlogfile" "$msg" +$LOGSCRIPT + + +${TROPCYQCRELOSH:-$SCRgfs/exglobal_atmos_tropcy_qc_reloc.sh} +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################## +# Final processing +############################################## +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +msg="ENDED NORMALLY." +postmsg "$jlogfile" "$msg" + + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/JGLOBAL_EMCSFC_SFC_PREP b/jobs/JGLOBAL_EMCSFC_SFC_PREP deleted file mode 100755 index c4c713a2f5..0000000000 --- a/jobs/JGLOBAL_EMCSFC_SFC_PREP +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/ksh -set -x - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} -export PS4='$SECONDS + ' -date - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################################## -# Set CDATE -############################################## - -CDATE=${CDATE:-${PDY}${cyc}} -GDATE=$($NDATE -06 $CDATE) -PDY_m6hrs=$(echo $GDATE | cut -c1-8) -cyc_m6hrs=$(echo $GDATE | cut -c9-10) -export cycle_m6hrs=t${cyc_m6hrs}z - -#### Lin Gan request for change -#### export COMOUT=${COMROOT}/$NET/$envir/$RUN.$PDY/$cyc -export COMOUT=${COMOUT:-${COMROOT}/$NET/$envir/$RUN.$PDY/$cyc} - -export COMINgfs=${COMINgfs:-$(compath.py $NET/$envir/$RUN.$PDY)/$cyc} -export COMINgfs_m6hrs=${COMINgfs_m6hrs:-$(compath.py $NET/$envir/$RUN.$PDY_m6hrs)/$cyc_m6hrs} - -export IMS_FILE=${COMINgfs}/${RUN}.${cycle}.imssnow96.grib2 -export FIVE_MIN_ICE_FILE=${COMINgfs}/${RUN}.${cycle}.seaice.5min.grib2 -export AFWA_NH_FILE=${COMINgfs}/${RUN}.${cycle}.NPR.SNWN.SP.S1200.MESH16.grb -export AFWA_SH_FILE=${COMINgfs}/${RUN}.${cycle}.NPR.SNWS.SP.S1200.MESH16.grb - -export BLENDED_ICE_FILE=${BLENDED_ICE_FILE:-${RUN}.${cycle}.seaice.5min.blend.grb} -export BLENDED_ICE_FILE_m6hrs=${BLENDED_ICE_FILE_m6hrs:-${COMINgfs_m6hrs}/${RUN}.${cycle_m6hrs}.seaice.5min.blend.grb} - -############################################################### -# Run relevant script -############################################################### - -env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" - -${EMCSFCPREPSH:-$SCRgfs/exemcsfc_global_sfc_prep.sh.ecf} -status=$? -[[ $status -ne 0 ]] && exit $status - -############################################## -# End JOB SPECIFIC work -############################################## - -############################################## -# Final processing -############################################## -if [ -e ${pgmout} ]; then - cat $pgmout -fi - -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" - -########################################## -# Remove the Temporary working directory -########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA - -date - -exit 0 diff --git a/jobs/JGLOBAL_FORECAST b/jobs/JGLOBAL_FORECAST index ef9b75f80d..004436c65b 100755 --- a/jobs/JGLOBAL_FORECAST +++ b/jobs/JGLOBAL_FORECAST @@ -5,6 +5,9 @@ export RUN_ENVIR=${RUN_ENVIR:-"nco"} export PS4='$SECONDS + ' date +#-------------------------------- +if [ $RUN_ENVIR = "emc" ]; then +#-------------------------------- ############################# # Source relevant config files @@ -17,7 +20,15 @@ for config in $configs; do status=$? [[ $status -ne 0 ]] && exit $status done - +# Source additional configs +if [ ${DO_WAVE:-"NO"} = "YES" ]; then + configs="wave" + for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status + done +fi ########################################## # Source machine runtime environment @@ -26,6 +37,9 @@ done status=$? [[ $status -ne 0 ]] && exit $status +#-------------------------------- +fi +#-------------------------------- ############################################## # Obtain unique process id (pid) and make temp directory @@ -36,7 +50,6 @@ export DATA=${DATA:-${DATAROOT}/${jobid:?}} mkdir -p $DATA cd $DATA - ############################################## # Run setpdy and initialize PDY variables ############################################## @@ -57,12 +70,58 @@ export pgmerr=errfile ############################################## export CDATE=${CDATE:-${PDY}${cyc}} export CDUMP=${CDUMP:-${RUN:-"gfs"}} + if [ $RUN_ENVIR = "nco" ]; then export ROTDIR=${COMROOT:?}/$NET/$envir export RSTDIR=${GESROOT:?}/$envir fi +#-------------------------------- +if [ $RUN_ENVIR = "nco" ]; then +#-------------------------------- + +############################# +# Source relevant config files +############################# +configs="base fcst" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done +# Source additional configs +if [ ${DO_WAVE:-"NO"} = "YES" ]; then + configs="wave" + for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status + done +fi + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env fcst +status=$? +[[ $status -ne 0 ]] && exit $status + +#-------------------------------- +fi +#-------------------------------- + + +# Set wave variables +if [ ${DO_WAVE:-"NO"} = "YES" ]; then + # WAVE component directory + export CDUMPwave=${CDUMPwave:-${CDUMP}wave} + export COMINwave=${COMINwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave} + export COMOUTwave=${COMOUTwave:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave} +fi + ############################################## # Begin JOB SPECIFIC work ############################################## @@ -91,7 +150,7 @@ postmsg "$jlogfile" "$msg" $LOGSCRIPT -${FORECASTSH:-$SCRgfs/exglobal_fcst_nemsfv3gfs.sh.ecf} +${FORECASTSH:-$SCRgfs/exglobal_forecast.sh} status=$? [[ $status -ne 0 ]] && exit $status diff --git a/jobs/JGLOBAL_TROPCY_QC_RELOC b/jobs/JGLOBAL_TROPCY_QC_RELOC deleted file mode 100755 index 95fd4fb5ae..0000000000 --- a/jobs/JGLOBAL_TROPCY_QC_RELOC +++ /dev/null @@ -1,135 +0,0 @@ -#!/bin/ksh -set -x - -export RUN_ENVIR=${RUN_ENVIR:-"nco"} -export PS4='$SECONDS + ' -date - - -############################# -# Source relevant config files -############################# -configs="base prep" -export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} -config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} -for config in $configs; do - . $config_path/config.$config - status=$? - [[ $status -ne 0 ]] && exit $status -done - - -########################################## -# Source machine runtime environment -########################################## -. $HOMEgfs/env/${machine}.env prep -status=$? -[[ $status -ne 0 ]] && exit $status - - -############################################## -# Obtain unique process id (pid) and make temp directory -############################################## -export pid=${pid:-$$} -export outid=${outid:-"LL$job"} -export DATA=${DATA:-${DATAROOT}/${jobid:?}} -mkdir -p $DATA -cd $DATA - - -############################################## -# Run setpdy and initialize PDY variables -############################################## -export cycle="t${cyc}z" -setpdy.sh -. ./PDY - - -############################################## -# Determine Job Output Name on System -############################################## -export pgmout="OUTPUT.${pid}" -export pgmerr=errfile - - -############################################## -# Set variables used in the exglobal script -############################################## -export CDATE=${CDATE:-${PDY}${cyc}} -export CDUMP=${CDUMP:-${RUN:-"gfs"}} -if [ $RUN_ENVIR = "nco" ]; then - export ROTDIR=${COMROOT:?}/$NET/$envir -fi - - -############################################## -# Begin JOB SPECIFIC work -############################################## - -export PROCESS_TROPCY=${PROCESS_TROPCY:-YES} # Turn on tropical cyclone tcvitals QC proc. if YES -export DO_RELOCATE=${DO_RELOCATE:-NO} # Turn on tropical cyclone relocation proc. if YES - - -export tmmark=tm00 -if [ $RUN_ENVIR = "nco" ]; then - export ARCHSYND=$COMROOTp3/gfs/${envir}/syndat # this location is unique, do not change -else - export ARCHSYND=${ROTDIR}/syndat -fi -if [ ! -d ${ARCHSYND} ]; then mkdir -p $ARCHSYND; fi - -export HOMENHCp1=${HOMENHCp1:-/gpfs/?p1/nhc/save/guidance/storm-data/ncep} -export HOMENHC=${HOMENHC:-/gpfs/dell2/nhc/save/guidance/storm-data/ncep} - -# JY export TANK_TROPCY=${TANK_TROPCY:-${DCOMROOT}/${envir}} # path to tropical cyclone record database -export TANK_TROPCY=${TANK_TROPCY:-${DCOMROOT}/prod} # path to tropical cyclone record database - - -############################################## -# Define COM directories -############################################## -export COMIN=${ROTDIR}/${RUN}.${PDY}/${cyc} -export COMOUT=${ROTDIR}/${RUN}.${PDY}/${cyc} -if [ ! -d ${COMOUT} ]; then mkdir -p $COMOUT; fi -#export COMINgdas=${ROTDIR}/gdas.${PDY}/${cyc} -#export COMINgfs=${ROTDIR}/gfs.${PDY}/${cyc} - -export CRES=$(echo $CASE | cut -c2-) -export LATB=$((CRES*2)) -export LONB=$((CRES*4)) -export BKGFREQ=1 # for hourly relocation - - -############################################## -# Run relevant script -############################################## -env -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" -$LOGSCRIPT - - -${TROPCYQCRELOSH:-$SCRgfs/extropcy_qc_reloc.sh.ecf} -status=$? -[[ $status -ne 0 ]] && exit $status - - -############################################## -# Final processing -############################################## -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -msg="ENDED NORMALLY." -postmsg "$jlogfile" "$msg" - - -########################################## -# Remove the Temporary working directory -########################################## -cd $DATAROOT -[[ $KEEPDATA = "NO" ]] && rm -rf $DATA - -date -exit 0 diff --git a/jobs/JGLOBAL_WAVE_GEMPAK b/jobs/JGLOBAL_WAVE_GEMPAK new file mode 100755 index 0000000000..1a613f020a --- /dev/null +++ b/jobs/JGLOBAL_WAVE_GEMPAK @@ -0,0 +1,67 @@ +#!/bin/bash + + +date +set -xa +export PS4='$SECONDS + ' + +# JY - 10/29, move the block in the front, otherwise PDY is not defined for COMIN +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +setpdy.sh +. PDY +env +msg="Begin job for $job" +postmsg "$jlogfile" "$msg" + + +# +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-wave} +export machine=${machine:-WCOSS_DELL_P3} +export HOMEgfs=${HOMEgfs:-$(dirname $(dirname $0))} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +################################### +# Set COM Paths +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT/gempak} +#export pid=$$ +export pgmout="OUTPUT.$$" + +export DBN_ALERT_TYPE=GFS_WAVE_GEMPAK +export SENDCOM=${SENDCOM:-YES} +export SENDDBN=${SENDDBN:-YES} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + + +if [ $SENDCOM = YES ] ; then + mkdir -m 775 -p $COMOUT +fi + + +######################################################## +# Execute the script. +${HOMEgfs}/scripts/exgfs_wave_nawips.sh +status=$? +[[ $status -ne 0 ]] && exit $status +################################### +# Remove temp directories +if [ "$KEEPDATA" != "YES" ]; then + cd $DATAROOT + rm -rf $DATA +fi + +date +exit 0 diff --git a/jobs/JGLOBAL_WAVE_INIT b/jobs/JGLOBAL_WAVE_INIT new file mode 100755 index 0000000000..bab8f04742 --- /dev/null +++ b/jobs/JGLOBAL_WAVE_INIT @@ -0,0 +1,83 @@ +#!/bin/bash + +date +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave waveinit" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env waveinit +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-wave} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +# Create and go to DATA directory +export DATA=${DATA:-${DATAROOT:?}/${jobid}} +mkdir -p $DATA +cd $DATA + +cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + +# Set PDY +setpdy.sh +. PDY + +export pgmout=OUTPUT.$$ + +export MP_PULSE=0 + +# Path to HOME Directory +export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} +export USHwave=${USHwave:-$HOMEgfs/ush} +export EXECwave=${EXECwave:-$HOMEgfs/exec} + +# Set COM Paths and GETGES environment +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +[[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT + +if [ $SENDCOM = YES ]; then + mkdir -p $COMOUT/rundata +fi + +# Set mpi serial command +export wavempexec=${launcher:-"mpirun -n"} +export wave_mpmd=${mpmd:-"cfp"} + +# Execute the Script +$HOMEgfs/scripts/exgfs_wave_init.sh + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/JGLOBAL_WAVE_POST_BNDPNT b/jobs/JGLOBAL_WAVE_POST_BNDPNT new file mode 100755 index 0000000000..6305b4a03b --- /dev/null +++ b/jobs/JGLOBAL_WAVE_POST_BNDPNT @@ -0,0 +1,105 @@ +#!/bin/bash + +date +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave wavepostsbs wavepostbndpnt" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env wavepostbndpnt +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-wave} + +export HOMEgefs=${HOMEgefs:-$NWROOT/$NET.${gefs_ver}} +export HOMEgfs=${HOMEgfs:-$NWROOT/$NET.${gfs_ver}} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +# Create and go to DATA directory +export DATA=${DATA:-${DATAROOT:?}/${jobid}} +mkdir -p $DATA +cd $DATA + +export cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + +# Set PDY +setpdy.sh +. PDY + +export CDATE=$PDY$cyc + +export pgmout=OUTPUT.$$ + +export MP_PULSE=0 + +# Path to HOME Directory +export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} +export USHwave=${USHwave:-$HOMEgfs/ush} +export EXECwave=${EXECwave:-$HOMEgfs/exec} + +# Set COM Paths and GETGES environment +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} + +export COMINice=${COMINice:-${COMROOTp2}/omb/prod} +export COMINwnd=${COMINwnd:-${COMROOT}/gfs/prod} +export COMIN_WAV_CUR=${COMIN_WAV_CUR:-${COMROOTp2}/rtofs/prod} + +mkdir -p $COMOUT/station + +env | sort + +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +membTAG='p' +if [ "${waveMEMB}" == "00" ]; then membTAG='c'; fi +export membTAG +export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} + +export CFP_VERBOSE=1 + +# Execute the Script +$HOMEgfs/scripts/exgfs_wave_post_bndpnt.sh +err=$? +if [ $err -ne 0 ]; then + msg="FATAL ERROR: ex-script of GWES_POST failed!" +else + msg="$job completed normally!" +fi +postmsg "$jlogfile" "$msg" + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/JGLOBAL_WAVE_POST_PNT b/jobs/JGLOBAL_WAVE_POST_PNT new file mode 100755 index 0000000000..6ebc032ac1 --- /dev/null +++ b/jobs/JGLOBAL_WAVE_POST_PNT @@ -0,0 +1,105 @@ +#!/bin/bash + +date +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave wavepostsbs wavepostpnt" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env wavepostpnt +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-wave} + +export HOMEgefs=${HOMEgefs:-$NWROOT/$NET.${gefs_ver}} +export HOMEgfs=${HOMEgfs:-$NWROOT/$NET.${gfs_ver}} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +# Create and go to DATA directory +export DATA=${DATA:-${DATAROOT:?}/${jobid}} +mkdir -p $DATA +cd $DATA + +export cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + +# Set PDY +setpdy.sh +. ./PDY + +export CDATE=$PDY$cyc + +export pgmout=OUTPUT.$$ + +export MP_PULSE=0 + +# Path to HOME Directory +export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} +export USHwave=${USHwave:-$HOMEgfs/ush} +export EXECwave=${EXECwave:-$HOMEgfs/exec} + +# Set COM Paths and GETGES environment +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} + +export COMINice=${COMINice:-${COMROOTp2}/omb/prod} +export COMINwnd=${COMINwnd:-${COMROOT}/gfs/prod} +export COMIN_WAV_CUR=${COMIN_WAV_CUR:-${COMROOTp2}/rtofs/prod} + +mkdir -p $COMOUT/station + +env | sort + +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +membTAG='p' +if [ "${waveMEMB}" == "00" ]; then membTAG='c'; fi +export membTAG +export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} + +export CFP_VERBOSE=1 + +# Execute the Script +$HOMEgfs/scripts/exgfs_wave_post_pnt.sh +err=$? +if [ $err -ne 0 ]; then + msg="FATAL ERROR: ex-script of GWES_POST failed!" +else + msg="$job completed normally!" +fi +postmsg "$jlogfile" "$msg" + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/JGLOBAL_WAVE_POST_SBS b/jobs/JGLOBAL_WAVE_POST_SBS new file mode 100755 index 0000000000..d798e28def --- /dev/null +++ b/jobs/JGLOBAL_WAVE_POST_SBS @@ -0,0 +1,105 @@ +#!/bin/bash + +date +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave wavepostsbs" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env wavepostsbs +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-wave} + +export HOMEgefs=${HOMEgefs:-$NWROOT/$NET.${gefs_ver}} +export HOMEgfs=${HOMEgfs:-$NWROOT/$NET.${gfs_ver}} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +# Create and go to DATA directory +export DATA=${DATA:-${DATAROOT:?}/${jobid}} +mkdir -p $DATA +cd $DATA + +export cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + +# Set PDY +setpdy.sh +. ./PDY + +export CDATE=$PDY$cyc + +export pgmout=OUTPUT.$$ + +export MP_PULSE=0 + +# Path to HOME Directory +export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} +export USHwave=${USHwave:-$HOMEgfs/ush} +export EXECwave=${EXECwave:-$HOMEgfs/exec} + +# Set COM Paths and GETGES environment +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} + +export COMINice=${COMINice:-${COMROOTp2}/omb/prod} +export COMINwnd=${COMINwnd:-${COMROOT}/gfs/prod} +export COMIN_WAV_CUR=${COMIN_WAV_CUR:-${COMROOTp2}/rtofs/prod} + +mkdir -p $COMOUT/gridded + +env | sort + +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +# Set wave model ID tag to include member number +# if ensemble; waveMEMB var empty in deterministic +membTAG='p' +if [ "${waveMEMB}" == "00" ]; then membTAG='c'; fi +export membTAG +export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} + +export CFP_VERBOSE=1 + +# Execute the Script +$HOMEgfs/scripts/exgfs_wave_post_gridded_sbs.sh +err=$? +if [ $err -ne 0 ]; then + msg="FATAL ERROR: ex-script of GWES_POST failed!" +else + msg="$job completed normally!" +fi +postmsg "$jlogfile" "$msg" + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_BULLS b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS new file mode 100755 index 0000000000..db8738dcb9 --- /dev/null +++ b/jobs/JGLOBAL_WAVE_PRDGEN_BULLS @@ -0,0 +1,61 @@ +#!/bin/bash + +date +export PS4=' $SECONDS + ' +set -xa + +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +# Set PDY + setpdy.sh + . PDY +env + +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-wave} +export HOMEgfs=${HOMEgfs:-$(dirname $(dirname $0))} # parent directory of current job card + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +################################### +# Set COM Paths +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export PCOM=${PCOM:-${COMOUT}/wmo} + +export SENDCOM=${SENDCOM:-YES} +export SENDDBN_NTC=${SENDDBN_NTC:-YES} +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + + +if [ $SENDCOM = YES ]; then + mkdir -p $COMOUT $PCOM +fi + + +################################### +# Execute the Script + +$HOMEgfs/scripts/exgfs_wave_prdgen_bulls.sh +status=$? +[[ $status -ne 0 ]] && exit $status +################################### +# Remove temp directories + +if [ "$KEEPDATA" != "YES" ]; then + cd $DATAROOT + rm -rf $DATA +fi +date +exit 0 + diff --git a/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED new file mode 100755 index 0000000000..6e9f8ea5c2 --- /dev/null +++ b/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED @@ -0,0 +1,78 @@ +#!/bin/bash + +date +export PS4=' $SECONDS + ' +set -xa + +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + +###################################### +# Set up the cycle variable +###################################### +export cycle=${cycle:-t${cyc}z} + +# Set PDY + setpdy.sh + . PDY + env + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-wave} +export HOMEgfs=${HOMEgfs:-$(dirname $(dirname $0))} # parent directory of current job card + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +################################### +# Set COM Paths +################################### +export COMIN=${COMIN:-$(compath.py ${NET}/${envir}/${RUN}.${PDY})/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${COMROOT}/${NET}/${envir}/${RUN}.${PDY}/${cyc}/$COMPONENT} +export PCOM=${PCOM:-${COMOUT}/wmo} + + +export SENDCOM=${SENDCOM:-YES} +export SENDDBN_NTC=${SENDDBN_NTC:-YES} +export SENDDBN=${SENDDBN:-NO} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} + + +if [ $SENDCOM = YES ]; then + mkdir -p $COMOUT $PCOM +fi + +# JY - move up +#export DATA=${DATA:-${DATAROOT}/${jobid:?}} +#mkdir -p $DATA +#cd $DATA +# +####################################### +### Set up the cycle variable +####################################### +#export cycle=${cycle:-t${cyc}z} + +## Set PDY +# setpdy.sh +# . PDY +# env + +################################### +# Execute the Script +################################### +$HOMEgfs/scripts/exgfs_wave_prdgen_gridded.sh +status=$? +[[ $status -ne 0 ]] && exit $status +################################### +# Remove temp directories +################################### +if [ "$KEEPDATA" != "YES" ]; then + cd $DATAROOT + rm -rf $DATA +fi +date +exit 0 + diff --git a/jobs/JGLOBAL_WAVE_PREP b/jobs/JGLOBAL_WAVE_PREP new file mode 100755 index 0000000000..4fe921c9ab --- /dev/null +++ b/jobs/JGLOBAL_WAVE_PREP @@ -0,0 +1,97 @@ +#!/bin/bash + +date +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4=' $SECONDS + ' +set -x -e + +############################# +# Source relevant config files +############################# +configs="base wave waveprep" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env waveprep +status=$? +[[ $status -ne 0 ]] && exit $status + +# PATH for working directory +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-wave} + +export HOMEgfs=${HOMEgfs:-$NWROOT/gfs.${gfs_ver}} + +# Add default errchk = err_chk +export errchk=${errchk:-err_chk} + +# Create and go to DATA directory +export DATA=${DATA:-${DATAROOT:?}/${jobid}} +mkdir -p $DATA +cd $DATA + +cyc=${cyc:-00} +export cycle=${cycle:-t${cyc}z} + +# Set PDY +setpdy.sh +. ./PDY +# Set rtofs PDY +export RPDY=$PDY + +export pgmout=OUTPUT.$$ + +export MP_PULSE=0 + +# CDO required for processing RTOFS currents +export CDO=${CDO_ROOT}/bin/cdo + +# Path to HOME Directory +export FIXwave=${FIXwave:-$HOMEgfs/fix/fix_wave_${NET}} +export PARMwave=${PARMwave:-$HOMEgfs/parm/wave} +export USHwave=${USHwave:-$HOMEgfs/ush} +export EXECwave=${EXECwave:-$HOMEgfs/exec} + +# Set COM Paths and GETGES environment +if [ $RUN_ENVIR = "nco" ]; then + export ROTDIR=${COMROOT:?}/$NET/$envir +fi +export COMIN=${COMIN:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +export COMOUT=${COMOUT:-${ROTDIR}/${CDUMP}.${PDY}/${cyc}/$COMPONENT} +[[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT + +if [ $RUN_ENVIR = "nco" ]; then + export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$(compath.py gfs/prod)}/${CDUMP}.${PDY}/${cyc}/atmos + export COMIN_WAV_RTOFS=${COMIN_WAV_RTOFS:-$(compath.py ${WAVECUR_DID}/prod)} +else + if [ ! -d $DMPDIR/${WAVECUR_DID}.${RPDY} ]; then export RPDY=`$NDATE -24 ${PDY}00 | cut -c1-8`; fi + if [ ! -L $ROTDIR/${WAVECUR_DID}.${RPDY} ]; then # Check if symlink already exists in ROTDIR + $NLN $DMPDIR/${WAVECUR_DID}.${RPDY} $ROTDIR/${WAVECUR_DID}.${RPDY} + fi + if [ ! -L $ROTDIR/${CDUMP}.${PDY}/${cyc}/atmos/${WAVICEFILE} ]; then # Check if symlink already exists in ROTDIR + $NLN $DMPDIR/$CDUMP.${PDY}/$cyc/${WAVICEFILE} $ROTDIR/$CDUMP.${PDY}/$cyc/atmos/${WAVICEFILE} + fi + export COMIN_WAV_ICE=${COMIN_WAV_ICE:-$ROTDIR/$RUN.$PDY/$cyc/atmos} + export COMIN_WAV_RTOFS=${COMIN_WAV_RTOFS:-$ROTDIR} +fi + +# Execute the Script +$HOMEgfs/scripts/exgfs_wave_prep.sh + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/rocoto/anal.sh b/jobs/rocoto/anal.sh index 4a9e2a8f3e..6520d967f0 100755 --- a/jobs/rocoto/anal.sh +++ b/jobs/rocoto/anal.sh @@ -8,6 +8,6 @@ status=$? ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_ANALYSIS +$HOMEgfs/jobs/JGLOBAL_ATMOS_ANALYSIS status=$? exit $status diff --git a/jobs/rocoto/analcalc.sh b/jobs/rocoto/analcalc.sh new file mode 100755 index 0000000000..5003d6c776 --- /dev/null +++ b/jobs/rocoto/analcalc.sh @@ -0,0 +1,13 @@ +#!/bin/ksh -x + +############################################################### +# Source FV3GFS workflow modules +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Execute the JJOB +$HOMEgfs/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC +status=$? +exit $status diff --git a/jobs/rocoto/analdiag.sh b/jobs/rocoto/analdiag.sh new file mode 100755 index 0000000000..413f97e9fa --- /dev/null +++ b/jobs/rocoto/analdiag.sh @@ -0,0 +1,13 @@ +#!/bin/ksh -x + +############################################################### +# Source FV3GFS workflow modules +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Execute the JJOB +$HOMEgfs/jobs/JGDAS_ATMOS_ANALYSIS_DIAG +status=$? +exit $status diff --git a/jobs/rocoto/arch.sh b/jobs/rocoto/arch.sh index 60ebe642b5..ee3af795c2 100755 --- a/jobs/rocoto/arch.sh +++ b/jobs/rocoto/arch.sh @@ -36,7 +36,14 @@ fi # CURRENT CYCLE APREFIX="${CDUMP}.t${cyc}z." -ASUFFIX=".nemsio" +ASUFFIX=${ASUFFIX:-$SUFFIX} + +if [ $ASUFFIX = ".nc" ]; then + format="netcdf" +else + format="nemsio" +fi + # Realtime parallels run GFS MOS on 1 day delay # If realtime parallel, back up CDATE_MOS one day @@ -50,30 +57,30 @@ PDY_MOS=$(echo $CDATE_MOS | cut -c1-8) # Archive online for verification and diagnostics ############################################################### -COMIN="$ROTDIR/$CDUMP.$PDY/$cyc" +COMIN=${COMINatmos:-"$ROTDIR/$CDUMP.$PDY/$cyc/atmos"} cd $COMIN [[ ! -d $ARCDIR ]] && mkdir -p $ARCDIR $NCP ${APREFIX}gsistat $ARCDIR/gsistat.${CDUMP}.${CDATE} -$NCP ${APREFIX}pgrb.1p00.anl $ARCDIR/pgbanl.${CDUMP}.${CDATE} +$NCP ${APREFIX}pgrb2.1p00.anl $ARCDIR/pgbanl.${CDUMP}.${CDATE}.grib2 -# Archive 1 degree forecast GRIB1 files for verification +# Archive 1 degree forecast GRIB2 files for verification if [ $CDUMP = "gfs" ]; then fhmax=$FHMAX_GFS fhr=0 while [ $fhr -le $fhmax ]; do fhr2=$(printf %02i $fhr) fhr3=$(printf %03i $fhr) - $NCP ${APREFIX}pgrb.1p00.f$fhr3 $ARCDIR/pgbf${fhr2}.${CDUMP}.${CDATE} + $NCP ${APREFIX}pgrb2.1p00.f$fhr3 $ARCDIR/pgbf${fhr2}.${CDUMP}.${CDATE}.grib2 (( fhr = $fhr + $FHOUT_GFS )) done fi if [ $CDUMP = "gdas" ]; then flist="000 003 006 009" for fhr in $flist; do - fname=${APREFIX}pgrb.1p00.f${fhr} + fname=${APREFIX}pgrb2.1p00.f${fhr} fhr2=$(printf %02i $fhr) - $NCP $fname $ARCDIR/pgbf${fhr2}.${CDUMP}.${CDATE} + $NCP $fname $ARCDIR/pgbf${fhr2}.${CDUMP}.${CDATE}.grib2 done fi @@ -82,15 +89,28 @@ if [ -s avno.t${cyc}z.cyclone.trackatcfunix ]; then cat avno.t${cyc}z.cyclone.trackatcfunix | sed s:AVNO:${PLSOT4}:g > ${ARCDIR}/atcfunix.${CDUMP}.$CDATE cat avnop.t${cyc}z.cyclone.trackatcfunix | sed s:AVNO:${PLSOT4}:g > ${ARCDIR}/atcfunixp.${CDUMP}.$CDATE fi + +if [ $CDUMP = "gdas" -a -s gdas.t${cyc}z.cyclone.trackatcfunix ]; then + PLSOT4=`echo $PSLOT|cut -c 1-4 |tr '[a-z]' '[A-Z]'` + cat gdas.t${cyc}z.cyclone.trackatcfunix | sed s:AVNO:${PLSOT4}:g > ${ARCDIR}/atcfunix.${CDUMP}.$CDATE + cat gdasp.t${cyc}z.cyclone.trackatcfunix | sed s:AVNO:${PLSOT4}:g > ${ARCDIR}/atcfunixp.${CDUMP}.$CDATE +fi + if [ $CDUMP = "gfs" ]; then $NCP storms.gfso.atcf_gen.$CDATE ${ARCDIR}/. $NCP storms.gfso.atcf_gen.altg.$CDATE ${ARCDIR}/. $NCP trak.gfso.atcfunix.$CDATE ${ARCDIR}/. $NCP trak.gfso.atcfunix.altg.$CDATE ${ARCDIR}/. + + mkdir -p ${ARCDIR}/tracker.$CDATE/$CDUMP + blist="epac natl" + for basin in $blist; do + cp -rp $basin ${ARCDIR}/tracker.$CDATE/$CDUMP + done fi -# Archive atmospheric nemsio gfs forecast files for fit2obs -VFYARC=$ROTDIR/vrfyarch +# Archive atmospheric gaussian gfs forecast files for fit2obs +VFYARC=${VFYARC:-$ROTDIR/vrfyarch} [[ ! -d $VFYARC ]] && mkdir -p $VFYARC if [ $CDUMP = "gfs" -a $FITSARC = "YES" ]; then mkdir -p $VFYARC/${CDUMP}.$PDY/$cyc @@ -98,8 +118,8 @@ if [ $CDUMP = "gfs" -a $FITSARC = "YES" ]; then fhr=0 while [[ $fhr -le $fhmax ]]; do fhr3=$(printf %03i $fhr) - sfcfile=${CDUMP}.t${cyc}z.sfcf${fhr3}.nemsio - sigfile=${CDUMP}.t${cyc}z.atmf${fhr3}.nemsio + sfcfile=${CDUMP}.t${cyc}z.sfcf${fhr3}${ASUFFIX} + sigfile=${CDUMP}.t${cyc}z.atmf${fhr3}${ASUFFIX} $NCP $sfcfile $VFYARC/${CDUMP}.$PDY/$cyc/ $NCP $sigfile $VFYARC/${CDUMP}.$PDY/$cyc/ (( fhr = $fhr + 6 )) @@ -112,7 +132,7 @@ fi if [ $HPSSARCH = "YES" ]; then ############################################################### -#--determine when to save ICs for warm start and forecat-only runs +#--determine when to save ICs for warm start and forecast-only runs SAVEWARMICA="NO" SAVEWARMICB="NO" SAVEFCSTIC="NO" @@ -159,34 +179,59 @@ if [ $CDUMP = "gfs" ]; then htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` done - #for targrp in gfs_flux gfs_nemsio gfs_pgrb2b; do - for targrp in gfs_flux gfs_nemsioa gfs_nemsiob; do - htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` + #for targrp in gfs_flux gfs_netcdf/nemsio gfs_pgrb2b; do + if [ ${SAVEFCSTNEMSIO:-"YES"} = "YES" ]; then + for targrp in gfs_flux gfs_${format}a gfs_${format}b gfs_pgrb2b; do + htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` + status=$? + if [ $status -ne 0 -a $CDATE -ge $firstday ]; then + echo "HTAR $CDATE ${targrp}.tar failed" + exit $status + fi + done + fi + + #for targrp in gfswave + if [ $DO_WAVE = "YES" -a "$WAVE_CDUMP" != "gdas" ]; then + for targrp in gfswave; do + htar -P -cvf $ATARDIR/$CDATE/${targrp}.tar `cat $ARCH_LIST/${targrp}.txt` + status=$? + if [ $status -ne 0 -a $CDATE -ge $firstday ]; then + echo "HTAR $CDATE ${targrp}.tar failed" + exit $status + fi + done + fi + + #for restarts + if [ $SAVEFCSTIC = "YES" ]; then + htar -P -cvf $ATARDIR/$CDATE/gfs_restarta.tar `cat $ARCH_LIST/gfs_restarta.txt` status=$? if [ $status -ne 0 -a $CDATE -ge $firstday ]; then - echo "HTAR $CDATE ${targrp}.tar failed" + echo "HTAR $CDATE gfs_restarta.tar failed" exit $status fi - done - - if [ $SAVEFCSTIC = "YES" ]; then - htar -P -cvf $ATARDIR/$CDATE/gfs_restarta.tar `cat $ARCH_LIST/gfs_restarta.txt` + fi + + #for downstream products + if [ $DO_BUFRSND = "YES" -o $WAFSF = "YES" ]; then + htar -P -cvf $ATARDIR/$CDATE/gfs_downstream.tar `cat $ARCH_LIST/gfs_downstream.txt` status=$? if [ $status -ne 0 -a $CDATE -ge $firstday ]; then - echo "HTAR $CDATE gfs_restarta.tar failed" + echo "HTAR $CDATE gfs_downstream.tar failed" exit $status fi fi - #--save mdl gfsmos output from all cycles in the 18Z archive directory - if [ -d gfsmos.$PDY_MOS -a $cyc -eq 18 ]; then + #--save mdl gfsmos output from all cycles in the 18Z archive directory + if [ -d gfsmos.$PDY_MOS -a $cyc -eq 18 ]; then htar -P -cvf $ATARDIR/$CDATE_MOS/gfsmos.tar ./gfsmos.$PDY_MOS status=$? if [ $status -ne 0 -a $CDATE -ge $firstday ]; then echo "HTAR $CDATE gfsmos.tar failed" exit $status fi - fi + fi fi @@ -200,6 +245,16 @@ if [ $CDUMP = "gdas" ]; then exit $status fi + #gdaswave + if [ $DO_WAVE = "YES" ]; then + htar -P -cvf $ATARDIR/$CDATE/gdaswave.tar `cat $ARCH_LIST/gdaswave.txt` + status=$? + if [ $status -ne 0 -a $CDATE -ge $firstday ]; then + echo "HTAR $CDATE gdaswave.tar failed" + exit $status + fi + fi + if [ $SAVEWARMICA = "YES" -o $SAVEFCSTIC = "YES" ]; then htar -P -cvf $ATARDIR/$CDATE/gdas_restarta.tar `cat $ARCH_LIST/gdas_restarta.txt` status=$? @@ -207,7 +262,16 @@ if [ $CDUMP = "gdas" ]; then echo "HTAR $CDATE gdas_restarta.tar failed" exit $status fi + if [ $DO_WAVE = "YES" ]; then + htar -P -cvf $ATARDIR/$CDATE/gdaswave_restart.tar `cat $ARCH_LIST/gdaswave_restart.txt` + status=$? + if [ $status -ne 0 -a $CDATE -ge $firstday ]; then + echo "HTAR $CDATE gdaswave_restart.tar failed" + exit $status + fi + fi fi + if [ $SAVEWARMICB = "YES" -o $SAVEFCSTIC = "YES" ]; then htar -P -cvf $ATARDIR/$CDATE/gdas_restartb.tar `cat $ARCH_LIST/gdas_restartb.txt` status=$? @@ -216,6 +280,7 @@ if [ $CDUMP = "gdas" ]; then exit $status fi fi + fi ############################################################### @@ -245,27 +310,48 @@ fi # Step back every assim_freq hours # and remove old rotating directories for successful cycles # defaults from 24h to 120h +DO_GLDAS=${DO_GLDAS:-"NO"} GDATEEND=$($NDATE -${RMOLDEND:-24} $CDATE) -GDATE=$( $NDATE -${RMOLDSTD:-120} $CDATE) +GDATE=$($NDATE -${RMOLDSTD:-120} $CDATE) +GLDAS_DATE=$($NDATE -96 $CDATE) +RTOFS_DATE=$($NDATE -48 $CDATE) while [ $GDATE -le $GDATEEND ]; do gPDY=$(echo $GDATE | cut -c1-8) gcyc=$(echo $GDATE | cut -c9-10) - COMIN="$ROTDIR/$CDUMP.$gPDY/$gcyc" + COMIN="$ROTDIR/${CDUMP}.$gPDY/$gcyc/atmos" + COMINwave="$ROTDIR/${CDUMP}.$gPDY/$gcyc/wave" + COMINrtofs="$ROTDIR/rtofs.$gPDY" if [ -d $COMIN ]; then rocotolog="$EXPDIR/logs/${GDATE}.log" if [ -f $rocotolog ]; then testend=$(tail -n 1 $rocotolog | grep "This cycle is complete: Success") rc=$? - [[ $rc -eq 0 ]] && rm -rf $COMIN + if [ $rc -eq 0 ]; then + if [ -d $COMINwave ]; then rm -rf $COMINwave ; fi + if [ -d $COMINrtofs -a $GDATE -lt $RTOFS_DATE ]; then rm -rf $COMINrtofs ; fi + if [ $CDUMP != "gdas" -o $DO_GLDAS = "NO" -o $GDATE -lt $GLDAS_DATE ]; then + rm -rf $COMIN + else + for file in `ls $COMIN |grep -v sflux |grep -v RESTART`; do + rm -rf $COMIN/$file + done + for file in `ls $COMIN/RESTART |grep -v sfcanl `; do + rm -rf $COMIN/RESTART/$file + done + fi + fi fi fi # Remove any empty directories - COMIN="$ROTDIR/$CDUMP.$gPDY" if [ -d $COMIN ]; then [[ ! "$(ls -A $COMIN)" ]] && rm -rf $COMIN fi + if [ -d $COMINwave ]; then + [[ ! "$(ls -A $COMINwave)" ]] && rm -rf $COMINwave + fi + # Remove mdl gfsmos directory if [ $CDUMP = "gfs" ]; then COMIN="$ROTDIR/gfsmos.$gPDY" @@ -275,13 +361,23 @@ while [ $GDATE -le $GDATEEND ]; do GDATE=$($NDATE +$assim_freq $GDATE) done -# Remove archived stuff in $VFYARC that are (48+$FHMAX_GFS) hrs behind -# 1. atmospheric nemsio files used for fit2obs +# Remove archived atmospheric gaussian files used for fit2obs in $VFYARC that are $FHMAX_FITS hrs behind. +# touch existing files to prevent the files from being removed by the operation system. if [ $CDUMP = "gfs" ]; then - GDATE=$($NDATE -$FHMAX_GFS $GDATE) - gPDY=$(echo $GDATE | cut -c1-8) - COMIN="$VFYARC/$CDUMP.$gPDY" + fhmax=$((FHMAX_FITS+36)) + RDATE=$($NDATE -$fhmax $CDATE) + rPDY=$(echo $RDATE | cut -c1-8) + COMIN="$VFYARC/$CDUMP.$rPDY" [[ -d $COMIN ]] && rm -rf $COMIN + + TDATE=$($NDATE -$FHMAX_FITS $CDATE) + while [ $TDATE -lt $CDATE ]; do + tPDY=$(echo $TDATE | cut -c1-8) + tcyc=$(echo $TDATE | cut -c9-10) + TDIR=$VFYARC/$CDUMP.$tPDY/$tcyc + [[ -d $TDIR ]] && touch $TDIR/* + TDATE=$($NDATE +6 $TDATE) + done fi ############################################################### diff --git a/jobs/rocoto/awips.sh b/jobs/rocoto/awips.sh index 4c04f75f19..40c5db8cb4 100755 --- a/jobs/rocoto/awips.sh +++ b/jobs/rocoto/awips.sh @@ -40,10 +40,11 @@ status=$? [[ $status -ne 0 ]] && exit $status ############################################################### +export COMPONENT=${COMPONENT:-atmos} export CDATEm1=$($NDATE -24 $CDATE) export PDYm1=$(echo $CDATEm1 | cut -c1-8) -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc" +export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export DATAROOT="$RUNDIR/$CDATE/$CDUMP/awips$FHRGRP" [[ -d $DATAROOT ]] && rm -rf $DATAROOT mkdir -p $DATAROOT @@ -53,7 +54,7 @@ mkdir -p $DATAROOT echo echo "=============== BEGIN AWIPS ===============" export SENDCOM="YES" -export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" +export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export PCOM="$COMOUT/wmo" export jlogfile="$ROTDIR/logs/$CDATE/jgfs_awips.log" diff --git a/jobs/rocoto/earc.sh b/jobs/rocoto/earc.sh index fa658c8d89..54dc87e3cb 100755 --- a/jobs/rocoto/earc.sh +++ b/jobs/rocoto/earc.sh @@ -28,6 +28,8 @@ for config in $configs; do [[ $status -ne 0 ]] && exit $status done +export COMPONENT=${COMPONENT:-atmos} + n=$((ENSGRP)) # ICS are restarts and always lag INC by $assim_freq hours. @@ -40,7 +42,7 @@ fi # EnKF update in GFS, GDAS or both CDUMP_ENKF=$(echo ${EUPD_CYC:-"gdas"} | tr a-z A-Z) -ARCH_LIST="$ROTDIR/enkf${CDUMP}.$PDY/$cyc/earc$ENSGRP" +ARCH_LIST="$ROTDIR/enkf${CDUMP}.$PDY/$cyc/$COMPONENT/earc$ENSGRP" [[ -d $ARCH_LIST ]] && rm -rf $ARCH_LIST mkdir -p $ARCH_LIST cd $ARCH_LIST @@ -80,30 +82,34 @@ if [[ $ENSGRP -gt 0 ]] && [[ $HPSSARCH = "YES" ]]; then if [ $CDATE -eq $SDATE -a $cyc -eq $EARCICS_CYC ] ; then SAVEWARMICB="YES" ; fi fi - htar -P -cvf $ATARDIR/$CDATE/enkf${CDUMP}_grp${ENSGRP}.tar `cat $ARCH_LIST/enkf${CDUMP}_grp${n}.txt` - status=$? - if [ $status -ne 0 -a $CDATE -ge $firstday ]; then - echo "HTAR $CDATE enkf${CDUMP}_grp${ENSGRP}.tar failed" - exit $status - fi + if [ $CDATE -gt $SDATE ]; then # Don't run for first half cycle + + htar -P -cvf $ATARDIR/$CDATE/enkf${CDUMP}_grp${ENSGRP}.tar `cat $ARCH_LIST/enkf${CDUMP}_grp${n}.txt` + status=$? + if [ $status -ne 0 -a $CDATE -ge $firstday ]; then + echo "HTAR $CDATE enkf${CDUMP}_grp${ENSGRP}.tar failed" + exit $status + fi - if [ $SAVEWARMICA = "YES" -a $cyc -eq $EARCINC_CYC ]; then + if [ $SAVEWARMICA = "YES" -a $cyc -eq $EARCINC_CYC ]; then htar -P -cvf $ATARDIR/$CDATE/enkf${CDUMP}_restarta_grp${ENSGRP}.tar `cat $ARCH_LIST/enkf${CDUMP}_restarta_grp${n}.txt` status=$? if [ $status -ne 0 ]; then echo "HTAR $CDATE enkf${CDUMP}_restarta_grp${ENSGRP}.tar failed" exit $status fi - fi + fi - if [ $SAVEWARMICB = "YES" -a $cyc -eq $EARCICS_CYC ]; then + if [ $SAVEWARMICB = "YES" -a $cyc -eq $EARCICS_CYC ]; then htar -P -cvf $ATARDIR/$CDATE/enkf${CDUMP}_restartb_grp${ENSGRP}.tar `cat $ARCH_LIST/enkf${CDUMP}_restartb_grp${n}.txt` status=$? if [ $status -ne 0 ]; then echo "HTAR $CDATE enkf${CDUMP}_restartb_grp${ENSGRP}.tar failed" exit $status fi - fi + fi + + fi # CDATE>SDATE fi @@ -126,12 +132,12 @@ if [ $ENSGRP -eq 0 ]; then [[ ! -d $ARCDIR ]] && mkdir -p $ARCDIR cd $ARCDIR - $NCP $ROTDIR/enkf${CDUMP}.$PDY/$cyc/${CDUMP}.t${cyc}z.enkfstat enkfstat.${CDUMP}.$CDATE - $NCP $ROTDIR/enkf$CDUMP.$PDY/$cyc/${CDUMP}.t${cyc}z.gsistat.ensmean gsistat.${CDUMP}.${CDATE}.ensmean + $NCP $ROTDIR/enkf${CDUMP}.$PDY/$cyc/$COMPONENT/${CDUMP}.t${cyc}z.enkfstat enkfstat.${CDUMP}.$CDATE + $NCP $ROTDIR/enkf${CDUMP}.$PDY/$cyc/$COMPONENT/${CDUMP}.t${cyc}z.gsistat.ensmean gsistat.${CDUMP}.${CDATE}.ensmean if [ $CDUMP_ENKF != "GDAS" ]; then - $NCP $ROTDIR/enkfgfs.$PDY/$cyc/${CDUMP}.t${cyc}z.enkfstat enkfstat.gfs.$CDATE - $NCP $ROTDIR/enkfgfs.$PDY/$cyc/${CDUMP}.t${cyc}z.gsistat.ensmean gsistat.gfs.${CDATE}.ensmean + $NCP $ROTDIR/enkfgfs.$PDY/$cyc/$COMPONENT/${CDUMP}.t${cyc}z.enkfstat enkfstat.gfs.$CDATE + $NCP $ROTDIR/enkfgfs.$PDY/$cyc/$COMPONENT/${CDUMP}.t${cyc}z.gsistat.ensmean gsistat.gfs.${CDATE}.ensmean fi fi @@ -144,33 +150,35 @@ fi ############################################################### # ENSGRP 0 also does clean-up if [ $ENSGRP -eq 0 ]; then - ############################################################### - # Clean up previous cycles; various depths - # PRIOR CYCLE: Leave the prior cycle alone - GDATE=$($NDATE -$assim_freq $CDATE) - # PREVIOUS to the PRIOR CYCLE - # Now go 2 cycles back and remove the directory - GDATE=$($NDATE -$assim_freq $GDATE) - gPDY=$(echo $GDATE | cut -c1-8) - gcyc=$(echo $GDATE | cut -c9-10) + # Start start and end dates to remove + GDATEEND=$($NDATE -${RMOLDEND_ENKF:-24} $CDATE) + GDATE=$($NDATE -${RMOLDSTD_ENKF:-120} $CDATE) + while [ $GDATE -le $GDATEEND ]; do + + gPDY=$(echo $GDATE | cut -c1-8) + gcyc=$(echo $GDATE | cut -c9-10) # Handle GDAS and GFS EnKF directories separately - COMIN_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc" - [[ -d $COMIN_ENS ]] && rm -rf $COMIN_ENS - COMIN_ENS="$ROTDIR/enkfgfs.$gPDY/$gcyc" - [[ -d $COMIN_ENS ]] && rm -rf $COMIN_ENS + COMIN_ENS="$ROTDIR/enkfgdas.$gPDY/$gcyc/$COMPONENT" + [[ -d $COMIN_ENS ]] && rm -rf $COMIN_ENS + COMIN_ENS="$ROTDIR/enkfgfs.$gPDY/$gcyc/$COMPONENT" + [[ -d $COMIN_ENS ]] && rm -rf $COMIN_ENS + + # Remove any empty directories + COMIN_ENS="$ROTDIR/enkfgdas.$gPDY/$COMPONENT" + if [ -d $COMIN_ENS ] ; then + [[ ! "$(ls -A $COMIN_ENS)" ]] && rm -rf $COMIN_ENS + fi + COMIN_ENS="$ROTDIR/enkfgfs.$gPDY/$COMPONENT" + if [ -d $COMIN_ENS ] ; then + [[ ! "$(ls -A $COMIN_ENS)" ]] && rm -rf $COMIN_ENS + fi - # PREVIOUS day 00Z remove the whole day - GDATE=$($NDATE -48 $CDATE) - gPDY=$(echo $GDATE | cut -c1-8) - gcyc=$(echo $GDATE | cut -c9-10) + # Advance to next cycle + GDATE=$($NDATE +$assim_freq $GDATE) - # Handle GDAS and GFS EnKF directories separately - COMIN_ENS="$ROTDIR/enkfgdas.$gPDY" - [[ -d $COMIN_ENS ]] && rm -rf $COMIN_ENS - COMIN_ENS="$ROTDIR/enkfgfs.$gPDY" - [[ -d $COMIN_ENS ]] && rm -rf $COMIN_ENS + done fi diff --git a/jobs/rocoto/ecen.sh b/jobs/rocoto/ecen.sh index f4d9ae8bdf..353621de64 100755 --- a/jobs/rocoto/ecen.sh +++ b/jobs/rocoto/ecen.sh @@ -7,7 +7,21 @@ status=$? [[ $status -ne 0 ]] && exit $status ############################################################### -# Execute the JJOB -$HOMEgfs/jobs/JGDAS_ENKF_RECENTER -status=$? -exit $status +# Loop over groups to Execute the JJOB +fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') +for fhr in $fhrlst; do + + export FHMIN_ECEN=$fhr + export FHMAX_ECEN=$fhr + export FHOUT_ECEN=$fhr + export job=ecen${fhr} + + $HOMEgfs/jobs/JGDAS_ENKF_ECEN + status=$? + [[ $status -ne 0 ]] && exit $status + +done + +############################################################### +# Exit out cleanly +exit 0 diff --git a/jobs/rocoto/echgres.sh b/jobs/rocoto/echgres.sh new file mode 100755 index 0000000000..f921a09d6b --- /dev/null +++ b/jobs/rocoto/echgres.sh @@ -0,0 +1,13 @@ +#!/bin/ksh -x + +############################################################### +# Source FV3GFS workflow modules +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Execute the JJOB +$HOMEgfs/jobs/JGDAS_ATMOS_CHGRES_FORENKF +status=$? +exit $status diff --git a/jobs/rocoto/ediag.sh b/jobs/rocoto/ediag.sh new file mode 100755 index 0000000000..71df7e3754 --- /dev/null +++ b/jobs/rocoto/ediag.sh @@ -0,0 +1,13 @@ +#!/bin/ksh -x + +############################################################### +# Source FV3GFS workflow modules +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Execute the JJOB +$HOMEgfs/jobs/JGDAS_ENKF_DIAG +status=$? +exit $status diff --git a/jobs/rocoto/eobs.sh b/jobs/rocoto/eobs.sh index 664e332953..cf63fabaae 100755 --- a/jobs/rocoto/eobs.sh +++ b/jobs/rocoto/eobs.sh @@ -8,6 +8,6 @@ status=$? ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_ENKF_SELECT_OBS +$HOMEgfs/jobs/JGDAS_ENKF_SELECT_OBS status=$? exit $status diff --git a/jobs/rocoto/eomg.sh b/jobs/rocoto/eomg.sh index 11dbaeeb1e..683269c2a8 100755 --- a/jobs/rocoto/eomg.sh +++ b/jobs/rocoto/eomg.sh @@ -8,6 +8,6 @@ status=$? ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_ENKF_INNOVATE_OBS +$HOMEgfs/jobs/JGDAS_ENKF_INNOVATE_OBS status=$? exit $status diff --git a/jobs/rocoto/esfc.sh b/jobs/rocoto/esfc.sh new file mode 100755 index 0000000000..2c2a65cb8e --- /dev/null +++ b/jobs/rocoto/esfc.sh @@ -0,0 +1,13 @@ +#!/bin/ksh -x + +############################################################### +# Source FV3GFS workflow modules +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Execute the JJOB +$HOMEgfs/jobs/JGDAS_ENKF_SFC +status=$? +exit $status diff --git a/jobs/rocoto/eupd.sh b/jobs/rocoto/eupd.sh index 7954c1db5e..d367b7ecd3 100755 --- a/jobs/rocoto/eupd.sh +++ b/jobs/rocoto/eupd.sh @@ -8,6 +8,6 @@ status=$? ############################################################### # Execute the JJOB -$HOMEgfs/jobs/JGLOBAL_ENKF_UPDATE +$HOMEgfs/jobs/JGDAS_ENKF_UPDATE status=$? exit $status diff --git a/jobs/rocoto/fv3ic.sh b/jobs/rocoto/fv3ic.sh index 8087d2e5ae..b5c2e40b48 100755 --- a/jobs/rocoto/fv3ic.sh +++ b/jobs/rocoto/fv3ic.sh @@ -33,19 +33,17 @@ done status=$? [[ $status -ne 0 ]] && exit $status +# Set component +export COMPONENT=${COMPONENT:-atmos} + # Temporary runtime directory export DATA="$RUNDIR/$CDATE/$CDUMP/fv3ic$$" [[ -d $DATA ]] && rm -rf $DATA -# Input GFS initial condition files -export INIDIR="$ICSDIR/$CDATE/$CDUMP" -export ATMANL="$ICSDIR/$CDATE/$CDUMP/siganl.${CDUMP}.$CDATE" -export SFCANL="$ICSDIR/$CDATE/$CDUMP/sfcanl.${CDUMP}.$CDATE" -if [ -f $ICSDIR/$CDATE/$CDUMP/nstanl.${CDUMP}.$CDATE ]; then - export NSTANL="$ICSDIR/$CDATE/$CDUMP/nstanl.${CDUMP}.$CDATE" -fi +# Input GFS initial condition directory +export INIDIR="$ICSDIR/$CDATE/$CDUMP/$CDUMP.$PDY/$cyc" -# Output FV3 initial condition files +# Output FV3 initial condition directory export OUTDIR="$ICSDIR/$CDATE/$CDUMP/$CASE/INPUT" export OMP_NUM_THREADS_CH=$NTHREADS_CHGRES @@ -60,7 +58,7 @@ if [ $status -ne 0 ]; then fi # Stage the FV3 initial conditions to ROTDIR -COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" +COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" [[ ! -d $COMOUT ]] && mkdir -p $COMOUT cd $COMOUT || exit 99 rm -rf INPUT diff --git a/jobs/rocoto/gempak.sh b/jobs/rocoto/gempak.sh index 8e7545dd8b..599c6f3766 100755 --- a/jobs/rocoto/gempak.sh +++ b/jobs/rocoto/gempak.sh @@ -39,10 +39,11 @@ status=$? [[ $status -ne 0 ]] && exit $status ############################################################### +export COMPONENT=${COMPONENT:-atmos} export CDATEm1=$($NDATE -24 $CDATE) export PDYm1=$(echo $CDATEm1 | cut -c1-8) -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc" +export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export DATAROOT="$RUNDIR/$CDATE/$CDUMP/gempak" [[ -d $DATAROOT ]] && rm -rf $DATAROOT mkdir -p $DATAROOT @@ -55,7 +56,7 @@ export job="jgfs_gempak_${cyc}" export jlogfile="$ROTDIR/logs/$CDATE/$job.log" export DATA="${DATAROOT}/$job" export SENDCOM="YES" -export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/nawips" +export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT/gempak" export FIXgfs="" # set blank so that GEMPAKSH defaults FIXgfs to HOMEgfs/gempak/fix export USHgfs="" # set blank so that GEMPAKSH defaults FIXgfs to HOMEgfs/gempak/ush diff --git a/jobs/rocoto/getic.sh b/jobs/rocoto/getic.sh index de6ad7320b..fc938a1531 100755 --- a/jobs/rocoto/getic.sh +++ b/jobs/rocoto/getic.sh @@ -39,6 +39,9 @@ status=$? yyyy=$(echo $CDATE | cut -c1-4) mm=$(echo $CDATE | cut -c5-6) dd=$(echo $CDATE | cut -c7-8) +cyc=${cyc:-$(echo $CDATE | cut -c9-10)} + +export COMPONENT=${COMPONENT:-atmos} ############################################################### @@ -46,34 +49,44 @@ target_dir=$ICSDIR/$CDATE/$CDUMP mkdir -p $target_dir cd $target_dir -# Save the files as legacy EMC filenames -ftanal[1]="pgbanl.${CDUMP}.$CDATE" -ftanal[2]="siganl.${CDUMP}.$CDATE" -ftanal[3]="sfcanl.${CDUMP}.$CDATE" -ftanal[4]="nstanl.${CDUMP}.$CDATE" - # Initialize return code to 0 rc=1 if [ $ics_from = "opsgfs" ]; then + # Location of production tarballs on HPSS + hpssdir="/NCEPPROD/hpssprod/runhistory/rh$yyyy/$yyyy$mm/$PDY" + # Handle nemsio and pre-nemsio GFS filenames - if [ $CDATE -gt "2017072000" ]; then + if [ $CDATE -le "2019061118" ]; then #GFSv14 + # Add CDUMP.PDY/CYC to target_dir + target_dir=$ICSDIR/$CDATE/$CDUMP/${CDUMP}.$yyyy$mm$dd/$cyc + mkdir -p $target_dir + cd $target_dir + nfanal=4 - fanal[1]="./${CDUMP}.t${cyc}z.pgrbanl" - fanal[2]="./${CDUMP}.t${cyc}z.atmanl.nemsio" - fanal[3]="./${CDUMP}.t${cyc}z.sfcanl.nemsio" - fanal[4]="./${CDUMP}.t${cyc}z.nstanl.nemsio" + fanal[1]="./${CDUMP}.t${cyc}z.atmanl.nemsio" + fanal[2]="./${CDUMP}.t${cyc}z.sfcanl.nemsio" + fanal[3]="./${CDUMP}.t${cyc}z.nstanl.nemsio" + fanal[4]="./${CDUMP}.t${cyc}z.pgrbanl" flanal="${fanal[1]} ${fanal[2]} ${fanal[3]} ${fanal[4]}" tarpref="gpfs_hps_nco_ops_com" - else - nfanal=3 - [[ $CDUMP = "gdas" ]] && str1=1 - fanal[1]="./${CDUMP}${str1}.t${cyc}z.pgrbanl" - fanal[2]="./${CDUMP}${str1}.t${cyc}z.sanl" - fanal[3]="./${CDUMP}${str1}.t${cyc}z.sfcanl" - flanal="${fanal[1]} ${fanal[2]} ${fanal[3]}" - tarpref="com2" + if [ $CDUMP = "gdas" ]; then + tarball="$hpssdir/${tarpref}_gfs_prod_${CDUMP}.${CDATE}.tar" + elif [ $CDUMP = "gfs" ]; then + tarball="$hpssdir/${tarpref}_gfs_prod_${CDUMP}.${CDATE}.anl.tar" + fi + else #GFSv15 + nfanal=2 + fanal[1]="./${CDUMP}.$yyyy$mm$dd/$cyc/${CDUMP}.t${cyc}z.atmanl.nemsio" + fanal[2]="./${CDUMP}.$yyyy$mm$dd/$cyc/${CDUMP}.t${cyc}z.sfcanl.nemsio" + flanal="${fanal[1]} ${fanal[2]}" + tarpref="gpfs_dell1_nco_ops_com" + if [ $CDUMP = "gdas" ]; then + tarball="$hpssdir/${tarpref}_gfs_prod_${CDUMP}.${yyyy}${mm}${dd}_${cyc}.${CDUMP}_nemsio.tar" + elif [ $CDUMP = "gfs" ]; then + tarball="$hpssdir/${tarpref}_gfs_prod_${CDUMP}.${yyyy}${mm}${dd}_${cyc}.${CDUMP}_nemsioa.tar" + fi fi # First check the COMROOT for files, if present copy over @@ -86,7 +99,7 @@ if [ $ics_from = "opsgfs" ]; then rc=0 for i in `seq 1 $nfanal`; do if [ -f $comdir/${fanal[i]} ]; then - $NCP $comdir/${fanal[i]} ${ftanal[i]} + $NCP $comdir/${fanal[i]} ${fanal[i]} else rb=1 ; ((rc+=rb)) fi @@ -97,13 +110,6 @@ if [ $ics_from = "opsgfs" ]; then # Get initial conditions from HPSS if [ $rc -ne 0 ]; then - hpssdir="/NCEPPROD/hpssprod/runhistory/rh$yyyy/$yyyy$mm/$PDY" - if [ $CDUMP = "gdas" ]; then - tarball="$hpssdir/${tarpref}_gfs_prod_${CDUMP}.${CDATE}.tar" - elif [ $CDUMP = "gfs" ]; then - tarball="$hpssdir/${tarpref}_gfs_prod_${CDUMP}.${CDATE}.anl.tar" - fi - # check if the tarball exists hsi ls -l $tarball rc=$? @@ -120,9 +126,11 @@ if [ $ics_from = "opsgfs" ]; then fi # Move the files to legacy EMC filenames - for i in `seq 1 $nfanal`; do - $NMV ${fanal[i]} ${ftanal[i]} - done + if [ $CDATE -le "2019061118" ]; then #GFSv14 + for i in `seq 1 $nfanal`; do + $NMV ${fanal[i]} ${flanal[i]} + done + fi fi @@ -134,12 +142,17 @@ if [ $ics_from = "opsgfs" ]; then elif [ $ics_from = "pargfs" ]; then + # Add CDUMP.PDY/CYC to target_dir + target_dir=$ICSDIR/$CDATE/$CDUMP/${CDUMP}.$yyyy$mm$dd/$cyc + mkdir -p $target_dir + cd $target_dir + # Filenames in parallel nfanal=4 - fanal[1]="pgbanl.${CDUMP}.$CDATE" - fanal[2]="gfnanl.${CDUMP}.$CDATE" - fanal[3]="sfnanl.${CDUMP}.$CDATE" - fanal[4]="nsnanl.${CDUMP}.$CDATE" + fanal[1]="gfnanl.${CDUMP}.$CDATE" + fanal[2]="sfnanl.${CDUMP}.$CDATE" + fanal[3]="nsnanl.${CDUMP}.$CDATE" + fanal[4]="pgbanl.${CDUMP}.$CDATE" flanal="${fanal[1]} ${fanal[2]} ${fanal[3]} ${fanal[4]}" # Get initial conditions from HPSS from retrospective parallel @@ -160,11 +173,6 @@ elif [ $ics_from = "pargfs" ]; then exit $rc fi - # Move the files to legacy EMC filenames - for i in $(seq 1 $nfanal); do - $NMV ${fanal[i]} ${ftanal[i]} - done - # If found, exit out if [ $rc -ne 0 ]; then echo "Unable to obtain parallel GFS initial conditions, ABORT!" @@ -179,10 +187,12 @@ else fi ############################################################### -# Copy pgbanl file to COMROT for verification -COMROT=$ROTDIR/${CDUMP}.$PDY/$cyc -[[ ! -d $COMROT ]] && mkdir -p $COMROT -$NCP ${ftanal[1]} $COMROT/${CDUMP}.t${cyc}z.pgrbanl +# Copy pgbanl file to COMROT for verification - GFSv14 only +if [ $CDATE -le "2019061118" ]; then #GFSv14 + COMROT=$ROTDIR/${CDUMP}.$PDY/$cyc/$COMPONENT + [[ ! -d $COMROT ]] && mkdir -p $COMROT + $NCP ${fanal[4]} $COMROT/${CDUMP}.t${cyc}z.pgrbanl +fi ############################################################### # Exit out cleanly diff --git a/jobs/rocoto/gldas.sh b/jobs/rocoto/gldas.sh new file mode 100755 index 0000000000..dbd2555180 --- /dev/null +++ b/jobs/rocoto/gldas.sh @@ -0,0 +1,15 @@ +#!/bin/ksh -x + +############################################################### +# Source FV3GFS workflow modules +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Execute the JJOB. GLDAS only runs once per day. + +$HOMEgfs/jobs/JGDAS_ATMOS_GLDAS +status=$? + +exit $status diff --git a/jobs/rocoto/metp.sh b/jobs/rocoto/metp.sh new file mode 100755 index 0000000000..789810d6a7 --- /dev/null +++ b/jobs/rocoto/metp.sh @@ -0,0 +1,72 @@ +#!/bin/ksh -x + +############################################################### +## Abstract: +## Inline METplus verification and diagnostics driver script +## RUN_ENVIR : runtime environment (emc | nco) +## HOMEgfs : /full/path/to/workflow +## EXPDIR : /full/path/to/config/files +## CDATE : current analysis date (YYYYMMDDHH) +## CDUMP : cycle name (gdas / gfs) +## PDY : current date (YYYYMMDD) +## cyc : current cycle (HH) +## METPCASE : METplus verification use case (g2g1 | g2o1 | pcp1) +############################################################### + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################################### +echo +echo "=============== START TO SOURCE RELEVANT CONFIGS ===============" +configs="base vrfy metp" +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + + +############################################################### +echo +echo "=============== START TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" +. $BASE_ENV/${machine}.env metp +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +export COMPONENT=${COMPONENT:-atmos} +export CDATEm1=$($NDATE -24 $CDATE) +export PDYm1=$(echo $CDATEm1 | cut -c1-8) + +export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" +export DATAROOT="$RUNDIR/$CDATE/$CDUMP/vrfy" +[[ -d $DATAROOT ]] && rm -rf $DATAROOT +mkdir -p $DATAROOT + + +############################################################### +echo +echo "=============== START TO RUN METPLUS VERIFICATION ===============" +if [ $CDUMP = "gfs" ]; then + + if [ $RUN_GRID2GRID_STEP1 = "YES" -o $RUN_GRID2OBS_STEP1 = "YES" -o $RUN_PRECIP_STEP1 = "YES" ]; then + + $VERIF_GLOBALSH + + fi +fi + + +if [ $CDUMP = "gdas" ]; then + echo "METplus verification currently not supported for CDUMP=${CDUMP}" +fi +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/post.sh b/jobs/rocoto/post.sh index 2e32d5f252..de8893abce 100755 --- a/jobs/rocoto/post.sh +++ b/jobs/rocoto/post.sh @@ -11,28 +11,37 @@ status=$? [[ $status -ne 0 ]] && exit $status +export COMPONENT=${COMPONENT:-atmos} if [ $FHRGRP -eq 0 ]; then fhrlst="anl" - restart_file=$ROTDIR/${CDUMP}.${PDY}/${cyc}/${CDUMP}.t${cyc}z.atm + restart_file=$ROTDIR/${CDUMP}.${PDY}/${cyc}/$COMPONENT/${CDUMP}.t${cyc}z.atm else fhrlst=$(echo $FHRLST | sed -e 's/_/ /g; s/f/ /g; s/,/ /g') - restart_file=$ROTDIR/${CDUMP}.${PDY}/${cyc}/${CDUMP}.t${cyc}z.logf + restart_file=$ROTDIR/${CDUMP}.${PDY}/${cyc}/$COMPONENT/${CDUMP}.t${cyc}z.logf fi #--------------------------------------------------------------- for fhr in $fhrlst; do - if [ ! -f $restart_file${fhr}.nemsio ]; then - echo "Nothing to process for FHR = $fhr, cycle" + if [ ! -f $restart_file${fhr}.nemsio -a ! -f $restart_file${fhr}.nc -a ! -f $restart_file${fhr}.txt ]; then + echo "Nothing to process for FHR = $fhr, cycle, wait for 5 minutes" + sleep 300 + fi + if [ ! -f $restart_file${fhr}.nemsio -a ! -f $restart_file${fhr}.nc -a ! -f $restart_file${fhr}.txt ]; then + echo "Nothing to process for FHR = $fhr, cycle, skip" continue fi - export post_times=$fhr - $HOMEgfs/jobs/JGLOBAL_NCEPPOST - status=$? - [[ $status -ne 0 ]] && exit $status + #master=$ROTDIR/${CDUMP}.${PDY}/${cyc}/$COMPONENT/${CDUMP}.t${cyc}z.master.grb2f${fhr} + pgb0p25=$ROTDIR/${CDUMP}.${PDY}/${cyc}/$COMPONENT/${CDUMP}.t${cyc}z.pgrb2.0p25.f${fhr} + if [ ! -s $pgb0p25 ]; then + export post_times=$fhr + $HOMEgfs/jobs/JGLOBAL_ATMOS_NCEPPOST + status=$? + [[ $status -ne 0 ]] && exit $status + fi done diff --git a/jobs/rocoto/postsnd.sh b/jobs/rocoto/postsnd.sh index 7e31959453..deb6ebe4e9 100755 --- a/jobs/rocoto/postsnd.sh +++ b/jobs/rocoto/postsnd.sh @@ -1,70 +1,16 @@ #!/bin/ksh -x ############################################################### -## Abstract: -## Inline postsnd driver script -## RUN_ENVIR : runtime environment (emc | nco) -## HOMEgfs : /full/path/to/workflow -## EXPDIR : /full/path/to/config/files -## CDATE : current analysis date (YYYYMMDDHH) -## CDUMP : cycle name (gdas / gfs) -## PDY : current date (YYYYMMDD) -## cyc : current cycle (HH) -############################################################### +# Source FV3GFS workflow modules -############################################################### -echo -echo "=============== BEGIN TO SOURCE FV3GFS WORKFLOW MODULES ===============" . $HOMEgfs/ush/load_fv3gfs_modules.sh status=$? [[ $status -ne 0 ]] && exit $status ############################################################### -echo -echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" -configs="base postsnd" -for config in $configs; do - . $EXPDIR/config.${config} - status=$? - [[ $status -ne 0 ]] && exit $status -done - - -############################################################### -echo -echo "=============== BEGIN TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" -. $BASE_ENV/${machine}.env postsnd +# Execute the JJOB +$HOMEgfs/jobs/JGFS_ATMOS_POSTSND status=$? -[[ $status -ne 0 ]] && exit $status - -############################################################### -export CDATEm1=$($NDATE -24 $CDATE) -export PDYm1=$(echo $CDATEm1 | cut -c1-8) - -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc" -export DATAROOT="$RUNDIR/$CDATE/$CDUMP/postsnd" -[[ -d $DATAROOT ]] && rm -rf $DATAROOT -mkdir -p $DATAROOT - - -################################################################################ -echo -echo "=============== BEGIN POSTSND ===============" -export job="jgfs_postsnd_${cyc}" -export jlogfile="$ROTDIR/logs/$CDATE/$job.log" -export DATA="${DATAROOT}/$job" -export SENDCOM="YES" -export SENDDBN="YES" -export HOMEbufrsnd=$HOMEgfs -export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" -export pcom="$COMOUT/wmo" -export COMAWP="$COMOUT/nawips" +exit $status -$POSTSNDSH - - -############################################################### -# Force Exit out cleanly -if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi -exit 0 diff --git a/jobs/rocoto/prep.sh b/jobs/rocoto/prep.sh index 225ea187f5..81aab252a8 100755 --- a/jobs/rocoto/prep.sh +++ b/jobs/rocoto/prep.sh @@ -23,29 +23,30 @@ status=$? ############################################################### # Set script and dependency variables +export COMPONENT=${COMPONENT:-atmos} export OPREFIX="${CDUMP}.t${cyc}z." -export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" +export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" [[ ! -d $COMOUT ]] && mkdir -p $COMOUT ############################################################### # If ROTDIR_DUMP=YES, copy dump files to rotdir if [ $ROTDIR_DUMP = "YES" ]; then - $HOMEgfs/ush/getdump.sh $CDATE $CDUMP $DMPDIR/${CDATE}/${CDUMP}${DUMP_SUFFIX} $COMOUT - status=$? - [[ $status -ne 0 ]] && exit $status - -# Ensure previous cycle gdas dumps are available (used by cycle & downstream) - GDATE=$($NDATE -$assim_freq $CDATE) - gPDY=$(echo $GDATE | cut -c1-8) - gcyc=$(echo $GDATE | cut -c9-10) - GDUMP=gdas - gCOMOUT="$ROTDIR/$GDUMP.$gPDY/$gcyc" - if [ ! -s $gCOMOUT/$GDUMP.t${gcyc}z.updated.status.tm00.bufr_d ]; then - $HOMEgfs/ush/getdump.sh $GDATE $GDUMP $DMPDIR/${GDATE}/${GDUMP}${DUMP_SUFFIX} $gCOMOUT + $HOMEgfs/ush/getdump.sh $CDATE $CDUMP $DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc} $COMOUT + status=$? + [[ $status -ne 0 ]] && exit $status + +# Ensure previous cycle gdas dumps are available (used by cycle & downstream) + GDATE=$($NDATE -$assim_freq $CDATE) + gPDY=$(echo $GDATE | cut -c1-8) + gcyc=$(echo $GDATE | cut -c9-10) + GDUMP=gdas + gCOMOUT="$ROTDIR/$GDUMP.$gPDY/$gcyc/$COMPONENT" + if [ ! -s $gCOMOUT/$GDUMP.t${gcyc}z.updated.status.tm00.bufr_d ]; then + $HOMEgfs/ush/getdump.sh $GDATE $GDUMP $DMPDIR/${GDUMP}${DUMP_SUFFIX}.${gPDY}/${gcyc} $gCOMOUT status=$? [[ $status -ne 0 ]] && exit $status - fi - + fi + fi ############################################################### @@ -70,12 +71,12 @@ if [ $PROCESS_TROPCY = "YES" ]; then [[ $ROTDIR_DUMP = "YES" ]] && rm $COMOUT${CDUMP}.t${cyc}z.syndata.tcvitals.tm00 - $HOMEgfs/jobs/JGLOBAL_TROPCY_QC_RELOC + $HOMEgfs/jobs/JGLOBAL_ATMOS_TROPCY_QC_RELOC status=$? [[ $status -ne 0 ]] && exit $status else - [[ $ROTDIR_DUMP = "NO" ]] && cp $DMPDIR/$CDATE/$CDUMP/${CDUMP}.t${cyc}z.syndata.tcvitals.tm00 $COMOUT/ + [[ $ROTDIR_DUMP = "NO" ]] && cp $DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc}/${CDUMP}.t${cyc}z.syndata.tcvitals.tm00 $COMOUT/ fi @@ -87,31 +88,29 @@ if [ $DO_MAKEPREPBUFR = "YES" ]; then rm $COMOUT/${OPREFIX}prepbufr.acft_profiles rm $COMOUT/${OPREFIX}nsstbufr fi - if [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" -o $machine = "THEIA" ]; then - - export job="j${CDUMP}_prep_${cyc}" - export DATAROOT="$RUNDIR/$CDATE/$CDUMP/prepbufr" - if [ $ROTDIR_DUMP = "NO" ]; then - COMIN_OBS=${COMIN_OBS:-$DMPDIR/$CDATE/$CDUMP} - export COMSP=${COMSP:-$COMIN_OBS/$CDUMP.t${cyc}z.} - fi - export COMIN=${COMIN:-$ROTDIR/$CDUMP.$PDY/$cyc} - export COMINgdas=${COMINgdas:-$ROTDIR/gdas.$PDY/$cyc} - export COMINgfs=${COMINgfs:-$ROTDIR/gfs.$PDY/$cyc} - - $HOMEobsproc_network/jobs/JGLOBAL_PREP - status=$? - [[ $status -ne 0 ]] && exit $status + export job="j${CDUMP}_prep_${cyc}" + export DATAROOT="$RUNDIR/$CDATE/$CDUMP/prepbufr" + #export COMIN=${COMIN:-$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT} + export COMIN=${COMIN:-$ROTDIR} + export COMINgdas=${COMINgdas:-$ROTDIR/gdas.$PDY/$cyc/$COMPONENT} + export COMINgfs=${COMINgfs:-$ROTDIR/gfs.$PDY/$cyc/$COMPONENT} + if [ $ROTDIR_DUMP = "NO" ]; then + COMIN_OBS=${COMIN_OBS:-$DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc}} + export COMSP=${COMSP:-$COMIN_OBS/$CDUMP.t${cyc}z.} else - echo "WARNING: prep step is not supported on $machine, exit" - exit 1 + export COMSP=${COMSP:-$ROTDIR/${CDUMP}.${PDY}/${cyc}/$COMPONENT/$CDUMP.t${cyc}z.} fi + + $HOMEobsproc_network/jobs/JGLOBAL_PREP + status=$? + [[ $status -ne 0 ]] && exit $status + else if [ $ROTDIR_DUMP = "NO" ]; then - $NCP $DMPDIR/$CDATE/$CDUMP/${OPREFIX}prepbufr $COMOUT/${OPREFIX}prepbufr - $NCP $DMPDIR/$CDATE/$CDUMP/${OPREFIX}prepbufr.acft_profiles $COMOUT/${OPREFIX}prepbufr.acft_profiles - [[ $DONST = "YES" ]] && $NCP $DMPDIR/$CDATE/$CDUMP/${OPREFIX}nsstbufr $COMOUT/${OPREFIX}nsstbufr + $NCP $DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc}/${OPREFIX}prepbufr $COMOUT/${OPREFIX}prepbufr + $NCP $DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc}/${OPREFIX}prepbufr.acft_profiles $COMOUT/${OPREFIX}prepbufr.acft_profiles + [[ $DONST = "YES" ]] && $NCP $DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc}/${OPREFIX}nsstbufr $COMOUT/${OPREFIX}nsstbufr fi fi diff --git a/jobs/rocoto/vrfy.sh b/jobs/rocoto/vrfy.sh index 0b304c33cb..b9a625bf0e 100755 --- a/jobs/rocoto/vrfy.sh +++ b/jobs/rocoto/vrfy.sh @@ -39,10 +39,11 @@ status=$? [[ $status -ne 0 ]] && exit $status ############################################################### +export COMPONENT=${COMPONENT:-atmos} export CDATEm1=$($NDATE -24 $CDATE) export PDYm1=$(echo $CDATEm1 | cut -c1-8) -export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc" +export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export DATAROOT="$RUNDIR/$CDATE/$CDUMP/vrfy" [[ -d $DATAROOT ]] && rm -rf $DATAROOT mkdir -p $DATAROOT @@ -55,20 +56,16 @@ if [ $MKPGB4PRCP = "YES" -a $CDUMP = "gfs" ]; then nthreads_env=${OMP_NUM_THREADS:-1} # get threads set in env export OMP_NUM_THREADS=1 cd $COMIN - fhmax=$vhr_rain + fhmax=${vhr_rain:-$FHMAX_GFS} fhr=0 while [ $fhr -le $fhmax ]; do fhr2=$(printf %02i $fhr) fhr3=$(printf %03i $fhr) fname=${CDUMP}.t${cyc}z.sfluxgrbf$fhr3.grib2 - rm -f sflux_outtmp - $WGRIB2 $fname -match "(:PRATE:surface:)|(:TMP:2 m above ground:)" -grib sflux_outtmp - fileout=$ARCDIR/pgbq${fhr2}.${CDUMP}.${CDATE} - $CNVGRIB -g21 sflux_outtmp $fileout - rm -f sflux_outtmp + fileout=$ARCDIR/pgbq${fhr2}.${CDUMP}.${CDATE}.grib2 + $WGRIB2 $fname -match "(:PRATE:surface:)|(:TMP:2 m above ground:)" -grib $fileout (( fhr = $fhr + 6 )) done - cd $DATAROOT export OMP_NUM_THREADS=$nthreads_env # revert to threads set in env fi @@ -84,13 +81,21 @@ fi ############################################################### echo echo "=============== START TO RUN FIT2OBS VERIFICATION ===============" -if [ $VRFYFITS = "YES" -a $CDUMP = $CDFNL ]; then +if [ $VRFYFITS = "YES" -a $CDUMP = $CDFNL -a $CDATE != $SDATE ]; then export CDUMPFCST=$VDUMP export TMPDIR="$RUNDIR/$CDATE/$CDUMP" [[ ! -d $TMPDIR ]] && mkdir -p $TMPDIR - $PREPQFITSH $PSLOT $CDATE $ROTDIR $ARCDIR $TMPDIR + xdate=$($NDATE -${VBACKUP_FITS} $CDATE) + + + export RUN_ENVIR_SAVE=$RUN_ENVIR + export RUN_ENVIR=$OUTPUT_FILE + + $PREPQFITSH $PSLOT $xdate $ROTDIR $ARCDIR $TMPDIR + + export RUN_ENVIR=$RUN_ENVIR_SAVE fi @@ -101,25 +106,23 @@ echo "=============== START TO RUN VSDB STEP1, VERIFY PRCIP AND GRID2OBS ======= if [ $CDUMP = "gfs" ]; then if [ $VSDB_STEP1 = "YES" -o $VRFYPRCP = "YES" -o $VRFYG2OBS = "YES" ]; then - + xdate=$(echo $($NDATE -${BACKDATEVSDB} $CDATE) | cut -c1-8) export ARCDIR1="$NOSCRUB/archive" export rundir="$RUNDIR/$CDUMP/$CDATE/vrfy/vsdb_exp" export COMROT="$ARCDIR1/dummy" - $VSDBSH $xdate $xdate $vlength $cyc $PSLOT $CDATE $CDUMP $gfs_cyc $rain_bucket - + $VSDBJOBSH $VSDBSH $xdate $vlength $cyc $PSLOT $CDATE $CDUMP $gfs_cyc $rain_bucket $machine fi fi - ############################################################### echo echo "=============== START TO RUN RADMON DATA EXTRACTION ===============" -if [ $VRFYRAD = "YES" -a $CDUMP = $CDFNL ]; then +if [ $VRFYRAD = "YES" -a $CDUMP = $CDFNL -a $CDATE != $SDATE ]; then export EXP=$PSLOT - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" + export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export jlogfile="$ROTDIR/logs/$CDATE/${CDUMP}radmon.log" export TANKverf_rad="$TANKverf/stats/$PSLOT/$CDUMP.$PDY" export TANKverf_radM1="$TANKverf/stats/$PSLOT/$CDUMP.$PDYm1" @@ -133,10 +136,10 @@ fi ############################################################### echo echo "=============== START TO RUN OZMON DATA EXTRACTION ===============" -if [ $VRFYOZN = "YES" -a $CDUMP = $CDFNL ]; then +if [ $VRFYOZN = "YES" -a $CDUMP = $CDFNL -a $CDATE != $SDATE ]; then export EXP=$PSLOT - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" + export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export jlogfile="$ROTDIR/logs/$CDATE/${CDUMP}oznmon.log" export TANKverf_ozn="$TANKverf_ozn/stats/$PSLOT/$CDUMP.$PDY" export TANKverf_oznM1="$TANKverf_ozn/stats/$PSLOT/$CDUMP.$PDYm1" @@ -150,9 +153,9 @@ fi ############################################################### echo echo "=============== START TO RUN MINMON ===============" -if [ $VRFYMINMON = "YES" ]; then +if [ $VRFYMINMON = "YES" -a $CDATE != $SDATE ]; then - export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc" + export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" export jlogfile="$ROTDIR/logs/$CDATE/${CDUMP}minmon.log" export M_TANKverfM0="$M_TANKverf/stats/$PSLOT/$CDUMP.$PDY" export M_TANKverfM1="$M_TANKverf/stats/$PSLOT/$CDUMP.$PDYm1" @@ -178,6 +181,15 @@ if [ $VRFYGENESIS = "YES" -a $CDUMP = "gfs" ]; then $GENESISSH fi + +################################################################################ +echo +echo "=============== START TO RUN CYCLONE GENESIS VERIFICATION (FSU) ===============" +if [ $VRFYFSU = "YES" -a $CDUMP = "gfs" ]; then + $GENESISFSU +fi + + ############################################################### # Force Exit out cleanly if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi diff --git a/jobs/rocoto/wafs.sh b/jobs/rocoto/wafs.sh new file mode 100755 index 0000000000..f3de9a141c --- /dev/null +++ b/jobs/rocoto/wafs.sh @@ -0,0 +1,55 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" +configs="base wafs" +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### + +export pid=${pid:-$$} +export jobid=${job}.${pid} +export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafs.$jobid" +[[ -d $DATAROOT ]] && rm -rf $DATAROOT +mkdir -p $DATAROOT + +export DATA="${DATAROOT}/$job" + +############################################################### +echo +echo "=============== START TO RUN WAFS ===============" + +# Loop through fcsthrs +hr=0 +while [ $hr -le 120 ]; do + + if [ $hr -le 100 ]; then + export fcsthrs="$(printf "%02d" $(( 10#$hr )) )" + else + export fcsthrs=$hr + fi + + # Execute the JJOB + $HOMEgfs/jobs/JGFS_ATMOS_WAFS + status=$? + [[ $status -ne 0 ]] && exit $status + + hr=`expr $hr + 6` + +done + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/wafsblending.sh b/jobs/rocoto/wafsblending.sh new file mode 100755 index 0000000000..3817c3b4e4 --- /dev/null +++ b/jobs/rocoto/wafsblending.sh @@ -0,0 +1,40 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" +configs="base wafsblending" +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### + +export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsblending" +[[ -d $DATAROOT ]] && rm -rf $DATAROOT +mkdir -p $DATAROOT + +export pid=${pid:-$$} +export jobid=${job}.${pid} +export DATA="${DATAROOT}/$job" + +############################################################### +echo +echo "=============== START TO RUN WAFSBLENDING ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGFS_ATMOS_WAFS_BLENDING +status=$? +exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/wafsblending0p25.sh b/jobs/rocoto/wafsblending0p25.sh new file mode 100755 index 0000000000..a0125f851c --- /dev/null +++ b/jobs/rocoto/wafsblending0p25.sh @@ -0,0 +1,40 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" +configs="base wafsblending0p25" +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### + +export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsblending0p25" +[[ -d $DATAROOT ]] && rm -rf $DATAROOT +mkdir -p $DATAROOT + +export pid=${pid:-$$} +export jobid=${job}.${pid} +export DATA="${DATAROOT}/$job" + +############################################################### +echo +echo "=============== START TO RUN WAFSBLENDING0P25 ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGFS_ATMOS_WAFS_BLENDING_0P25 +status=$? +exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/wafsgcip.sh b/jobs/rocoto/wafsgcip.sh new file mode 100755 index 0000000000..61c8dff538 --- /dev/null +++ b/jobs/rocoto/wafsgcip.sh @@ -0,0 +1,40 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" +configs="base wafsgcip" +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### + +export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsgcip" +[[ -d $DATAROOT ]] && rm -rf $DATAROOT +mkdir -p $DATAROOT + +export pid=${pid:-$$} +export jobid=${job}.${pid} +export DATA="${DATAROOT}/$job" + +############################################################### +echo +echo "=============== START TO RUN WAFSGCIP ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGFS_ATMOS_WAFS_GCIP +status=$? +exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/wafsgrib2.sh b/jobs/rocoto/wafsgrib2.sh new file mode 100755 index 0000000000..2fd4899da0 --- /dev/null +++ b/jobs/rocoto/wafsgrib2.sh @@ -0,0 +1,40 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" +configs="base wafsgrib2" +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### + +export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsgrib2" +[[ -d $DATAROOT ]] && rm -rf $DATAROOT +mkdir -p $DATAROOT + +export pid=${pid:-$$} +export jobid=${job}.${pid} +export DATA="${DATAROOT}/$job" + +############################################################### +echo +echo "=============== START TO RUN WAFSGRIB2 ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGFS_ATMOS_WAFS_GRIB2 +status=$? +exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/wafsgrib20p25.sh b/jobs/rocoto/wafsgrib20p25.sh new file mode 100755 index 0000000000..8a1847881c --- /dev/null +++ b/jobs/rocoto/wafsgrib20p25.sh @@ -0,0 +1,40 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" +configs="base wafsgrib20p25" +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### + +export DATAROOT="$RUNDIR/$CDATE/$CDUMP/wafsgrib20p25" +[[ -d $DATAROOT ]] && rm -rf $DATAROOT +mkdir -p $DATAROOT + +export pid=${pid:-$$} +export jobid=${job}.${pid} +export DATA="${DATAROOT}/$job" + +############################################################### +echo +echo "=============== START TO RUN WAFSGRIB20p25 ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGFS_ATMOS_WAFS_GRIB2_0P25 +status=$? +exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/waveawipsbulls.sh b/jobs/rocoto/waveawipsbulls.sh new file mode 100755 index 0000000000..e3db491aad --- /dev/null +++ b/jobs/rocoto/waveawipsbulls.sh @@ -0,0 +1,36 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" +configs="base waveawipsbulls" +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### +echo +echo "=============== BEGIN TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" +. $BASE_ENV/${machine}.env waveawipsbulls +status=$? +[[ $status -ne 0 ]] && exit $status + +export DBNROOT=/dev/null + +############################################################### +echo +echo "=============== START TO RUN WAVE PRDGEN BULLS ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGLOBAL_WAVE_PRDGEN_BULLS +status=$? +exit $status + diff --git a/jobs/rocoto/waveawipsgridded.sh b/jobs/rocoto/waveawipsgridded.sh new file mode 100755 index 0000000000..1bf60677dc --- /dev/null +++ b/jobs/rocoto/waveawipsgridded.sh @@ -0,0 +1,35 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" +configs="base waveawipsgridded" +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### +echo +echo "=============== BEGIN TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" +. $BASE_ENV/${machine}.env waveawipsgridded +status=$? +[[ $status -ne 0 ]] && exit $status + +export DBNROOT=/dev/null + +############################################################### +echo +echo "=============== START TO RUN WAVE PRDGEN GRIDDED ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGLOBAL_WAVE_PRDGEN_GRIDDED +status=$? +exit $status diff --git a/jobs/rocoto/wavegempak.sh b/jobs/rocoto/wavegempak.sh new file mode 100755 index 0000000000..ea2d1dafaf --- /dev/null +++ b/jobs/rocoto/wavegempak.sh @@ -0,0 +1,33 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== BEGIN TO SOURCE RELEVANT CONFIGS ===============" +configs="base wavegempak" +for config in $configs; do + . $EXPDIR/config.${config} + status=$? + [[ $status -ne 0 ]] && exit $status +done + +############################################################### +echo +echo "=============== BEGIN TO SOURCE MACHINE RUNTIME ENVIRONMENT ===============" +. $BASE_ENV/${machine}.env wavegempak +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== START TO RUN WAVE GEMPAK ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGLOBAL_WAVE_GEMPAK +status=$? +exit $status diff --git a/jobs/rocoto/waveinit.sh b/jobs/rocoto/waveinit.sh new file mode 100755 index 0000000000..41f52c4ff2 --- /dev/null +++ b/jobs/rocoto/waveinit.sh @@ -0,0 +1,21 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== START TO RUN WAVE INIT ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGLOBAL_WAVE_INIT +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/wavepostbndpnt.sh b/jobs/rocoto/wavepostbndpnt.sh new file mode 100755 index 0000000000..4290ad76ce --- /dev/null +++ b/jobs/rocoto/wavepostbndpnt.sh @@ -0,0 +1,21 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== START TO RUN WAVE_POST_BNDPNT ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGLOBAL_WAVE_POST_BNDPNT +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/wavepostpnt.sh b/jobs/rocoto/wavepostpnt.sh new file mode 100755 index 0000000000..6d13558e96 --- /dev/null +++ b/jobs/rocoto/wavepostpnt.sh @@ -0,0 +1,21 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== START TO RUN WAVE_POST_PNT ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGLOBAL_WAVE_POST_PNT +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/wavepostsbs.sh b/jobs/rocoto/wavepostsbs.sh new file mode 100755 index 0000000000..66d6463bd7 --- /dev/null +++ b/jobs/rocoto/wavepostsbs.sh @@ -0,0 +1,21 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== START TO RUN WAVE POST_SBS ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGLOBAL_WAVE_POST_SBS +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/jobs/rocoto/waveprep.sh b/jobs/rocoto/waveprep.sh new file mode 100755 index 0000000000..e1b3b89174 --- /dev/null +++ b/jobs/rocoto/waveprep.sh @@ -0,0 +1,21 @@ +#!/bin/ksh -x + +############################################################### +echo +echo "=============== START TO SOURCE FV3GFS WORKFLOW MODULES ===============" +. $HOMEgfs/ush/load_fv3gfs_modules.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +echo +echo "=============== START TO RUN WAVE PREP ===============" +# Execute the JJOB +$HOMEgfs/jobs/JGLOBAL_WAVE_PREP +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################################### +# Force Exit out cleanly +if [ ${KEEPDATA:-"NO"} = "NO" ] ; then rm -rf $DATAROOT ; fi +exit 0 diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.hera b/modulefiles/fv3gfs/enkf_chgres_recenter.hera new file mode 100644 index 0000000000..ed37493828 --- /dev/null +++ b/modulefiles/fv3gfs/enkf_chgres_recenter.hera @@ -0,0 +1,12 @@ +#%Module##################################################### +## enkf_chgres_recenter component - hera +############################################################# + +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load nemsio/2.2.3 +module load bacio/2.0.2 +module load w3nco/2.0.6 +module load ip/3.0.1 +module load sp/2.0.2 + +export FC=ifort diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.theia b/modulefiles/fv3gfs/enkf_chgres_recenter.theia deleted file mode 100644 index 369c013f33..0000000000 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.theia +++ /dev/null @@ -1,14 +0,0 @@ -#%Module##################################################### -## enkf_chgres_recenter component - theia -############################################################# - -module load intel/16.1.150 - -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles -module load nemsio/v2.2.3 -module load bacio/v2.0.2 -module load w3nco/v2.0.6 -module load ip/v3.0.0 -module load sp/v2.0.2 - -export FC=ifort diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 b/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 index 668853dca5..77c76bbb82 100644 --- a/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 +++ b/modulefiles/fv3gfs/enkf_chgres_recenter.wcoss_dell_p3 @@ -5,11 +5,15 @@ module load ips/18.0.1.163 module load impi/18.0.1 -module load NetCDF/4.5.0 module load nemsio/2.2.3 module load bacio/2.0.2 module load w3nco/2.0.6 module load ip/3.0.1 module load sp/2.0.2 +module use /usrx/local/nceplibs/dev/NCEPLIBS/modulefiles +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 + + export FC=ifort diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter_nc.hera b/modulefiles/fv3gfs/enkf_chgres_recenter_nc.hera new file mode 100644 index 0000000000..9acce54639 --- /dev/null +++ b/modulefiles/fv3gfs/enkf_chgres_recenter_nc.hera @@ -0,0 +1,14 @@ +#%Module##################################################### +## enkf_chgres_recenter component - hera +############################################################# + +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load bacio/2.0.2 +module load w3nco/2.0.6 +module load ip/3.0.1 +module load sp/2.0.2 +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 + + +export FC=ifort diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter_nc.wcoss_cray b/modulefiles/fv3gfs/enkf_chgres_recenter_nc.wcoss_cray new file mode 100644 index 0000000000..d619dd8644 --- /dev/null +++ b/modulefiles/fv3gfs/enkf_chgres_recenter_nc.wcoss_cray @@ -0,0 +1,25 @@ +#%Module##################################################### +## enkf_chgres_recenter component - wcoss_cray +############################################################# + +module load ncep/1.0 +module load PrgEnv-intel/5.2.56 +module unload intel/15.0.3.187 +module load intel/18.1.163 +module load craype-haswell +module load cray-mpich/7.2.0 + +# Loading netcdf modules +module use /usrx/local/dev/modulefiles +module load NetCDF-intel-sandybridge/4.7.4 +module load HDF5-parallel-intel-sandybridge/1.10.6 + +module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles +module load ip-intel/3.0.0 +module load sp-intel/2.0.2 +module load w3nco-intel/2.0.6 + +module use /usrx/local/nceplibs/modulefiles +module load bacio-intel/2.0.2 + +export FC=ftn diff --git a/modulefiles/fv3gfs/enkf_chgres_recenter_nc.wcoss_dell_p3 b/modulefiles/fv3gfs/enkf_chgres_recenter_nc.wcoss_dell_p3 new file mode 100644 index 0000000000..cbc9fcfb03 --- /dev/null +++ b/modulefiles/fv3gfs/enkf_chgres_recenter_nc.wcoss_dell_p3 @@ -0,0 +1,16 @@ +#%Module##################################################### +## enkf_chgres_recenter component - wcoss_dell_p3 +############################################################# + +module load ips/18.0.1.163 +module load impi/18.0.1 + +module load bacio/2.0.3 +module load w3nco/2.2.0 +module load ip/3.0.2 +module load sp/2.0.3 + +module load NetCDF-parallel/4.7.4 +module load HDF5-parallel/1.10.6 + +export FC=ifort diff --git a/modulefiles/fv3gfs/fre-nctools.gaea b/modulefiles/fv3gfs/fre-nctools.gaea deleted file mode 100644 index edce663573..0000000000 --- a/modulefiles/fv3gfs/fre-nctools.gaea +++ /dev/null @@ -1,10 +0,0 @@ -#%Module##################################################### -## Module file for fre-nctools -############################################################# - module rm PrgEnv-pgi PrgEnv-pathscale PrgEnv-intel PrgEnv-cray PrgEnv-gnu - module load PrgEnv-intel - module swap intel intel/15.0.2.164 - module load cray-hdf5 - module load cray-netcdf - #setenv LIBRARY_PATH ${LIBRARY_PATH}:${NETCDF_DIR}/lib:${HDF5}/lib - diff --git a/modulefiles/fv3gfs/fre-nctools.theia b/modulefiles/fv3gfs/fre-nctools.theia deleted file mode 100644 index c1b6784111..0000000000 --- a/modulefiles/fv3gfs/fre-nctools.theia +++ /dev/null @@ -1,7 +0,0 @@ -#%Module##################################################### -## Module file for fre-nctools -############################################################# -module load intel/14.0.2 -module load impi/4.1.3.048 -module load netcdf/4.3.0 -module load hdf5/1.8.14 diff --git a/modulefiles/fv3gfs/fre-nctools.wcoss b/modulefiles/fv3gfs/fre-nctools.wcoss deleted file mode 100644 index ce886dcab3..0000000000 --- a/modulefiles/fv3gfs/fre-nctools.wcoss +++ /dev/null @@ -1,6 +0,0 @@ -#%Module##################################################### -## Module file for fre-nctools -############################################################# - -module load ics/16.0.3 -module load NetCDF/4.2/serial diff --git a/modulefiles/fv3gfs/fre-nctools.wcoss_cray b/modulefiles/fv3gfs/fre-nctools.wcoss_cray deleted file mode 100755 index c143b3a35e..0000000000 --- a/modulefiles/fv3gfs/fre-nctools.wcoss_cray +++ /dev/null @@ -1,9 +0,0 @@ -#%Module##################################################### -## Module file for fre-nctools -############################################################# -module load PrgEnv-intel -module rm intel -module load intel/16.3.210 -module load craype-haswell -module load cray-netcdf -module load cray-hdf5 diff --git a/modulefiles/fv3gfs/fre-nctools.wcoss_dell_p3 b/modulefiles/fv3gfs/fre-nctools.wcoss_dell_p3 deleted file mode 100755 index 75a933a350..0000000000 --- a/modulefiles/fv3gfs/fre-nctools.wcoss_dell_p3 +++ /dev/null @@ -1,9 +0,0 @@ -#%Module##################################################### -## Module file for fre-nctools, wcoss_dell_p3 -############################################################# -# -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load NetCDF/4.5.0 -module load HDF5-serial/1.10.1 diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.hera b/modulefiles/fv3gfs/gaussian_sfcanl.hera new file mode 100644 index 0000000000..faa9921f48 --- /dev/null +++ b/modulefiles/fv3gfs/gaussian_sfcanl.hera @@ -0,0 +1,17 @@ +#%Module##################################################### +## gaussian_sfcanl build module for Hera +############################################################# + +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load w3nco/2.0.6 +module load bacio/2.0.2 +module load nemsio/2.2.3 +module load sp/2.0.2 +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 + + +export NETCDF_INCLUDE="-I${NETCDF}/include" +export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" + +#export FCOMP=$FCOMP diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.theia b/modulefiles/fv3gfs/gaussian_sfcanl.theia deleted file mode 100644 index d70de3df8f..0000000000 --- a/modulefiles/fv3gfs/gaussian_sfcanl.theia +++ /dev/null @@ -1,19 +0,0 @@ -#%Module##################################################### -## gaussian_sfcanl build module for Theia -############################################################# - -# Loading Intel Compiler Suite -module load intel/15.1.133 - -# Loding nceplibs modules -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles -module load w3nco/v2.0.6 -module load bacio/v2.0.2 -module load nemsio/v2.2.3 -module load sp/v2.0.2 -module load netcdf/4.3.0 -module load hdf5/1.8.14 -export NETCDF_INCLUDE="-I${NETCDF}/include" -export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" - -export FCOMP=ifort diff --git a/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 b/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 index e16660ae5e..f54ba00169 100644 --- a/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 +++ b/modulefiles/fv3gfs/gaussian_sfcanl.wcoss_dell_p3 @@ -8,11 +8,13 @@ set ver v15.0.0 module load ips/18.0.1.163 module load impi/18.0.1 -module load NetCDF/4.5.0 -module load HDF5-serial/1.10.1 -module load nemsio/2.2.3 -module load w3nco/2.0.6 -module load bacio/2.0.2 -module load sp/2.0.2 +module load nemsio/2.2.4 +module load w3nco/2.2.0 +module load bacio/2.0.3 +module load sp/2.0.3 + +# Load prod modules +module load NetCDF-parallel/4.7.4 +module load HDF5-parallel/1.10.6 export FCOMP=ifort diff --git a/modulefiles/fv3gfs/global_chgres.theia b/modulefiles/fv3gfs/global_chgres.theia deleted file mode 100644 index 8b6806bd82..0000000000 --- a/modulefiles/fv3gfs/global_chgres.theia +++ /dev/null @@ -1,36 +0,0 @@ -#%Module##################################################### -## global_chgres component - theia -############################################################# - -# Loading Intel Compiler Suite -module load intel/14.0.2 -module load impi/5.1.2.150 - -## this one is missing from nwprod/lib (compiled locally) -#module use lib/modulefiles -#module load nemsiogfs/v2.0.1 - -# Loding nceplibs modules -module use -a $MOD_PATH -module load sigio/v2.0.1 -module load w3nco/v2.0.6 -module load w3emc/v2.2.0 -module load sp/v2.0.2 -module load bacio/v2.0.2 -module load nemsio/v2.2.3 -module load nemsiogfs/v2.0.1 -export NEMSIOGFS_INC=/scratch4/NCEPDEV/global/save/glopara/svn/nceplibs/branches/nemsiogfsv2.0.1/include/nemsiogfs -export NEMSIOGFS_LIB=/scratch4/NCEPDEV/global/save/glopara/svn/nceplibs/branches/nemsiogfsv2.0.1/libnemsiogfs.a - -module load ip/v3.0.0 -module load sfcio/v1.0.0 -module load gfsio/v1.1.0 -module load landsfcutil/v2.1.0 -module load netcdf/4.3.0 -module load hdf5/1.8.14 - - -export NETCDF_INCLUDE="-I${NETCDF}/include" -export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" - -set FCMP ifort diff --git a/modulefiles/fv3gfs/global_chgres.wcoss b/modulefiles/fv3gfs/global_chgres.wcoss deleted file mode 100644 index 80e60faafa..0000000000 --- a/modulefiles/fv3gfs/global_chgres.wcoss +++ /dev/null @@ -1,22 +0,0 @@ -#%Module##################################################### -## global_chgres component - wcoss -############################################################# - -# Loading Intel Compiler Suite -module load ics/14.0.1 - -# Loading nceplibs modules -module load sigio/v2.1.0 -module load w3nco/v2.0.6 -module load w3emc/v2.2.0 -module load sp/v2.0.2 -module load bacio/v2.0.2 -module load nemsio/v2.2.1 -module load nemsiogfs/v2.0.1 -module load ip/v3.0.0 -module load sfcio/v1.0.0 -module load gfsio/v1.1.0 -module load landsfcutil/v2.1.0 -module load NetCDF/4.2/serial - -export FCMP=ifort diff --git a/modulefiles/fv3gfs/global_chgres.wcoss_cray b/modulefiles/fv3gfs/global_chgres.wcoss_cray deleted file mode 100644 index e24138b2e8..0000000000 --- a/modulefiles/fv3gfs/global_chgres.wcoss_cray +++ /dev/null @@ -1,27 +0,0 @@ -#%Module##################################################### -## global_chgres component - wcoss -############################################################# -module load ncep/1.0 -module load PrgEnv-intel/5.2.56 -module rm intel -module load intel/16.3.210 -module load cray-mpich/7.2.0 -module load craype-haswell -module load cray-netcdf - -# Load NCEPLIBS modules -module load sigio-intel/2.1.0 -module load w3nco-intel/2.0.6 -module load w3emc-intel/2.2.0 -module load sp-intel/2.0.2 -module load nemsio-intel/2.2.2 -module load nemsiogfs-intel/2.0.1 -module load ip-intel/3.0.0 -module load sfcio-intel/1.0.0 -module load gfsio-intel/1.1.0 -module load landsfcutil-intel/2.1.0 -module load bacio-intel/2.0.1 - -export FCMP=ftn -export NETCDF_INCLUDE="" -export NETCDF_LDFLAGS_F="" diff --git a/modulefiles/fv3gfs/global_chgres.wcoss_cray_userlib b/modulefiles/fv3gfs/global_chgres.wcoss_cray_userlib deleted file mode 100644 index 79f19b35f7..0000000000 --- a/modulefiles/fv3gfs/global_chgres.wcoss_cray_userlib +++ /dev/null @@ -1,29 +0,0 @@ -#%Module##################################################### -## global_chgres component - wcoss -############################################################# -module load ncep/1.0 -module load PrgEnv-intel/5.2.56 -module rm intel -module load intel/16.3.210 -module load cray-mpich/7.2.0 -module load craype-haswell -module load cray-netcdf - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load nemsiogfs/v2.0.1 -module load sigio/v2.0.1 -module load w3nco/v2.0.6 -module load w3emc/v2.2.0 -module load sp/v2.0.2 -module load bacio/v2.0.2 -module load nemsio/v2.2.3 - -module load ip/v3.0.0 -module load sfcio/v1.0.0 -module load gfsio/v1.1.0 -module load landsfcutil/v2.1.0 - -export FCMP=ftn -export NETCDF_INCLUDE="" -export NETCDF_LDFLAGS_F="" diff --git a/modulefiles/fv3gfs/global_chgres.wcoss_dell_p3 b/modulefiles/fv3gfs/global_chgres.wcoss_dell_p3 deleted file mode 100644 index 660c5ec009..0000000000 --- a/modulefiles/fv3gfs/global_chgres.wcoss_dell_p3 +++ /dev/null @@ -1,25 +0,0 @@ -#%Module##################################################### -## global_chgres component - wcoss_dell_p3 -############################################################# -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load NetCDF/4.5.0 - -module load w3nco/2.0.6 -module load w3emc/2.3.0 -module load sp/2.0.2 -module load nemsio/2.2.3 -module load nemsiogfs/2.0.1 -module load ip/3.0.1 -module load sfcio/1.0.0 -module load gfsio/1.1.0 -module load landsfcutil/2.1.0 -module load bacio/2.0.2 -module load sigio/2.1.0 - - -# -export FCMP=ifort -export LDFLAGSM="-qopenmp -auto" -export OMPFLAGM="-qopenmp -auto" diff --git a/modulefiles/fv3gfs/global_cycle.theia b/modulefiles/fv3gfs/global_cycle.theia deleted file mode 100644 index 2f0f82cec8..0000000000 --- a/modulefiles/fv3gfs/global_cycle.theia +++ /dev/null @@ -1,20 +0,0 @@ -#%Module##################################################### -## global_cycle component - theia -############################################################# - -# Loading Intel Compiler Suite -module load intel/16.1.150 -module load impi - -# Loding nceplibs modules -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles -module load w3nco/v2.0.6 -module load sp/v2.0.2 -module load bacio/v2.0.1 -module load ip/v3.0.0 -module load netcdf/4.3.0 -module load hdf5/1.8.14 -export NETCDF_INCLUDE="-I${NETCDF}/include" -export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" - -export FCMP=mpiifort diff --git a/modulefiles/fv3gfs/global_cycle.wcoss b/modulefiles/fv3gfs/global_cycle.wcoss deleted file mode 100644 index fbab1cc947..0000000000 --- a/modulefiles/fv3gfs/global_cycle.wcoss +++ /dev/null @@ -1,16 +0,0 @@ -#%Module##################################################### -## global_cycle component - wcoss -############################################################# - -# Loading Intel Compiler Suite -module load ics/16.0.3 -module load ibmpe/1.3.0.12 - -# Loading nceplibs modules -module load w3nco/v2.0.6 -module load sp/v2.0.2 -module load bacio/v2.0.2 -module load ip/v3.0.0 -module load NetCDF/4.2/serial - -export FCMP=mpfort diff --git a/modulefiles/fv3gfs/global_cycle.wcoss_cray b/modulefiles/fv3gfs/global_cycle.wcoss_cray deleted file mode 100644 index e1a4ed9d11..0000000000 --- a/modulefiles/fv3gfs/global_cycle.wcoss_cray +++ /dev/null @@ -1,21 +0,0 @@ -#%Module##################################################### -## global_cycle component - wcoss_cray -############################################################# -# Load ncep environment -module load ncep/1.0 - -# Load Intel environment -module load PrgEnv-intel/5.2.56 -module rm intel -module load intel/16.3.210 -module load cray-mpich/7.2.0 -module load craype-haswell -module load cray-netcdf - -# Load NCEPLIBS modules -module load w3nco-intel/2.0.6 -module load sp-intel/2.0.2 -module load ip-intel/3.0.0 -module load bacio-intel/2.0.1 - -export FCMP=ftn diff --git a/modulefiles/fv3gfs/global_cycle.wcoss_cray_userlib b/modulefiles/fv3gfs/global_cycle.wcoss_cray_userlib deleted file mode 100644 index de700b6de8..0000000000 --- a/modulefiles/fv3gfs/global_cycle.wcoss_cray_userlib +++ /dev/null @@ -1,24 +0,0 @@ -#%Module##################################################### -## global_cycle component - wcoss_cray -############################################################# -module purge -# Load ncep environment -module load ncep/1.0 - -# Load Intel environment -module load PrgEnv-intel/5.2.56 -module rm intel -module load intel/16.3.210 -module load cray-mpich/7.2.0 -module load craype-haswell -module load cray-netcdf - -# Load NCEPLIBS modules -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load w3nco-intel/2.0.6 -module load sp-intel/2.0.2 -module load ip-intel/3.0.0 -module load bacio-intel/2.0.1 - -export FCMP=ftn diff --git a/modulefiles/fv3gfs/global_cycle.wcoss_dell_p3 b/modulefiles/fv3gfs/global_cycle.wcoss_dell_p3 deleted file mode 100644 index 3e1ff1e9a3..0000000000 --- a/modulefiles/fv3gfs/global_cycle.wcoss_dell_p3 +++ /dev/null @@ -1,15 +0,0 @@ -#%Module##################################################### -## global_cycle component - wcoss_dell_p3 -############################################################# - -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load NetCDF/4.5.0 -module load w3nco/2.0.6 -module load sp/2.0.2 -module load ip/3.0.1 -module load bacio/2.0.2 - -export FCMP=mpif90 - diff --git a/modulefiles/fv3gfs/orog.theia b/modulefiles/fv3gfs/orog.theia deleted file mode 100644 index b0543289b5..0000000000 --- a/modulefiles/fv3gfs/orog.theia +++ /dev/null @@ -1,16 +0,0 @@ -#%Module##################################################### -## Module file for orog -############################################################# -# Loading Intel Compiler Suite -module unload intel -module load intel/16.1.150 - -module load netcdf/4.3.0 - -# Loding nceplibs modules -module use -a $MOD_PATH -module load ip/v2.0.0 -module load sp/v2.0.2 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load bacio/v2.0.2 diff --git a/modulefiles/fv3gfs/orog.wcoss b/modulefiles/fv3gfs/orog.wcoss deleted file mode 100644 index 9aa30c5b23..0000000000 --- a/modulefiles/fv3gfs/orog.wcoss +++ /dev/null @@ -1,16 +0,0 @@ -#%Module##################################################### -## Module file for orog -############################################################# - -# Loading Intel Compiler Suite -module load ics/16.0.3 - -# Loding nceplibs modules -module load w3nco/v2.0.6 -module load w3emc/v2.2.0 -module load sp/v2.0.2 -module load ip/v2.0.0 -module load bacio/v2.0.2 -module load NetCDF - -export FCMP=ifort diff --git a/modulefiles/fv3gfs/orog.wcoss_cray b/modulefiles/fv3gfs/orog.wcoss_cray deleted file mode 100644 index 51cb66a186..0000000000 --- a/modulefiles/fv3gfs/orog.wcoss_cray +++ /dev/null @@ -1,18 +0,0 @@ -#%Module##################################################### -## Module file for orog -############################################################# -module load ncep/1.0 -module load PrgEnv-intel/5.2.56 -module rm intel -module load intel/16.3.210 -module load cray-mpich/7.2.0 -module load craype-haswell -module load cray-netcdf - -module load w3emc-intel/2.2.0 -module load ip-intel/2.0.0 -module load sp-intel/2.0.2 -module load w3nco-intel/2.0.6 -module load bacio-intel/2.0.1 - -export FCMP=ftn diff --git a/modulefiles/fv3gfs/orog.wcoss_cray_userlib b/modulefiles/fv3gfs/orog.wcoss_cray_userlib deleted file mode 100644 index 4698b9cb37..0000000000 --- a/modulefiles/fv3gfs/orog.wcoss_cray_userlib +++ /dev/null @@ -1,20 +0,0 @@ -#%Module##################################################### -## Module file for orog -############################################################# -module load ncep/1.0 -module load PrgEnv-intel/5.2.56 -module rm intel -module load intel/16.3.210 -module load cray-mpich/7.2.0 -module load craype-haswell -module load cray-netcdf - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load ip/v2.0.0 -module load sp/v2.0.2 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load bacio/v2.0.2 - -export FCMP=ftn diff --git a/modulefiles/fv3gfs/orog.wcoss_dell_p3 b/modulefiles/fv3gfs/orog.wcoss_dell_p3 deleted file mode 100644 index adde9c2aa5..0000000000 --- a/modulefiles/fv3gfs/orog.wcoss_dell_p3 +++ /dev/null @@ -1,14 +0,0 @@ -#%Module##################################################### -## Module file for orog, wcoss_dell_p3 -############################################################# -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load NetCDF/4.5.0 -module load w3emc/2.3.0 -module load w3nco/2.0.6 -module load sp/2.0.2 -module load ip/3.0.1 -module load bacio/2.0.2 - -export FCMP=ifort diff --git a/modulefiles/gdas_gridbull.theia b/modulefiles/gdas_gridbull.theia deleted file mode 100644 index e7cd769a1f..0000000000 --- a/modulefiles/gdas_gridbull.theia +++ /dev/null @@ -1,7 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_gridbull -######################################################## -module load intel/14.0.2 -module use -a $MOD_PATH -module load bacio/v2.0.2 -module load w3nco/v2.0.6 diff --git a/modulefiles/gdas_gridbull.wcoss b/modulefiles/gdas_gridbull.wcoss deleted file mode 100644 index 261631cd30..0000000000 --- a/modulefiles/gdas_gridbull.wcoss +++ /dev/null @@ -1,10 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_gridbull -######################################################## - -# Loading Intel Compiler Suite -module load ics/12.1 - -# Loding nceplibs modules -module load bacio/v2.0.2 -module load w3nco/v2.0.6 diff --git a/modulefiles/gdas_gridbull.wcoss_cray b/modulefiles/gdas_gridbull.wcoss_cray deleted file mode 100644 index 702dd9166c..0000000000 --- a/modulefiles/gdas_gridbull.wcoss_cray +++ /dev/null @@ -1,11 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_gridbull -######################################################## -module unload PrgEnv-cray -module load PrgEnv-intel/5.2.56 -module switch intel intel/15.0.6.233 -module load craype-sandybridge -module load iobuf/2.0.7 - -module load bacio-intel/2.0.1 -module load w3nco-intel/2.0.6 diff --git a/modulefiles/gdas_gridbull.wcoss_cray_userlib b/modulefiles/gdas_gridbull.wcoss_cray_userlib deleted file mode 100644 index 3a56144485..0000000000 --- a/modulefiles/gdas_gridbull.wcoss_cray_userlib +++ /dev/null @@ -1,13 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_gridbull -######################################################## -module load ncep/1.0 -module unload PrgEnv-cray -module load PrgEnv-intel/5.2.56 -module switch intel intel/15.0.6.233 -module load craype-sandybridge - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load bacio/v2.0.2 -module load w3nco/v2.0.6 diff --git a/modulefiles/gdas_gridbull.wcoss_dell_p3 b/modulefiles/gdas_gridbull.wcoss_dell_p3 deleted file mode 100644 index f496889671..0000000000 --- a/modulefiles/gdas_gridbull.wcoss_dell_p3 +++ /dev/null @@ -1,8 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_gridbull -######################################################## -## -module load ips/18.0.1.163 - -module load bacio/2.0.2 -module load w3nco/2.0.6 diff --git a/modulefiles/gdas_navybull.theia b/modulefiles/gdas_navybull.theia deleted file mode 100644 index a6c29a4014..0000000000 --- a/modulefiles/gdas_navybull.theia +++ /dev/null @@ -1,12 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_navybull -######################################################## - -# Loading Intel Compiler Suite -module load intel - -# Loding nceplibs modules -module use -a $MOD_PATH -module load w3emc/v2.0.3 -module load w3nco/v2.0.6 -module load bufr/v10.2.5 diff --git a/modulefiles/gdas_navybull.wcoss b/modulefiles/gdas_navybull.wcoss deleted file mode 100644 index 3d60e7871e..0000000000 --- a/modulefiles/gdas_navybull.wcoss +++ /dev/null @@ -1,11 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_navybull -######################################################## - -# Loading Intel Compiler Suite -module load ics/12.1 - -# Loding nceplibs modules -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load bufr/v11.0.1 diff --git a/modulefiles/gdas_navybull.wcoss_cray b/modulefiles/gdas_navybull.wcoss_cray deleted file mode 100644 index 6fdb707bb8..0000000000 --- a/modulefiles/gdas_navybull.wcoss_cray +++ /dev/null @@ -1,29 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_navybull -######################################################## - -# From default environment -module load modules -module load xt-lsfhpc -module load ncep -module load alps -module load dvs -module load xpmem -module load ugni -module load craype-network-aries -module load switch - -# Loading Intel Compiler Suite -module unload PrgEnv-cray -module load PrgEnv-intel/5.2.56 -module switch intel intel/15.0.6.233 - -module load craype-sandybridge - -# Loading IOBUF -module load iobuf/2.0.7 - -module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module load w3emc-intel/2.2.0 -module load w3nco-intel/2.0.6 -module load bufr-intel/11.3.0 diff --git a/modulefiles/gdas_navybull.wcoss_dell_p3 b/modulefiles/gdas_navybull.wcoss_dell_p3 deleted file mode 100644 index c9b007d1cb..0000000000 --- a/modulefiles/gdas_navybull.wcoss_dell_p3 +++ /dev/null @@ -1,10 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_navybull -######################################################## - -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load w3emc/2.3.0 -module load w3nco/2.0.6 -module load bufr/11.3.0 diff --git a/modulefiles/gdas_trpsfcmv.theia b/modulefiles/gdas_trpsfcmv.theia deleted file mode 100644 index ae1a167315..0000000000 --- a/modulefiles/gdas_trpsfcmv.theia +++ /dev/null @@ -1,12 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_trpsfcmv -######################################################## -module load intel/14.0.2 -module load impi/5.1.2.150 -module load ncl/6.3.0 -module use -a $MOD_PATH -module load bufr/v10.2.5 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load w3nco/v2.0.6 -module load bacio/v2.0.1 diff --git a/modulefiles/gdas_trpsfcmv.wcoss b/modulefiles/gdas_trpsfcmv.wcoss deleted file mode 100644 index 79f0d535c8..0000000000 --- a/modulefiles/gdas_trpsfcmv.wcoss +++ /dev/null @@ -1,12 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_trpsfcmv -######################################################## - -module load ics/14.0.1 - -module load ncarg/v6.1.0 -module load bufr/v11.0.1 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load w3nco/v2.0.6 -module load bacio/v2.0.2 diff --git a/modulefiles/gdas_trpsfcmv.wcoss_cray b/modulefiles/gdas_trpsfcmv.wcoss_cray deleted file mode 100644 index feabdfa548..0000000000 --- a/modulefiles/gdas_trpsfcmv.wcoss_cray +++ /dev/null @@ -1,16 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_trpsfcmv -######################################################## -module load ncep/1.0 -module load gcc -module load PrgEnv-intel/5.2.56 -module load cray-mpich/7.2.0 -module load craype-haswell - -module load NCL-gnu-haswell/6.3.0 - -module load bufr-intel/11.3.0 -module load ip-intel/2.0.0 -module load sp-intel/2.0.2 -module load w3nco-intel/2.0.6 -module load bacio-intel/2.0.2 diff --git a/modulefiles/gdas_trpsfcmv.wcoss_cray_userlib b/modulefiles/gdas_trpsfcmv.wcoss_cray_userlib deleted file mode 100644 index 91286d9499..0000000000 --- a/modulefiles/gdas_trpsfcmv.wcoss_cray_userlib +++ /dev/null @@ -1,18 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_trpsfcmv -######################################################## -module load ncep/1.0 -module load gcc -module load PrgEnv-intel/5.2.56 -module load cray-mpich/7.2.0 -module load craype-haswell - -module load NCL-gnu-haswell/6.3.0 - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load bufr-intel/11.3.0 -module load ip-intel/2.0.0 -module load sp-intel/2.0.2 -module load w3nco-intel/2.0.6 -module load bacio-intel/2.0.2 diff --git a/modulefiles/gdas_trpsfcmv.wcoss_dell_p3 b/modulefiles/gdas_trpsfcmv.wcoss_dell_p3 deleted file mode 100644 index 51b183026a..0000000000 --- a/modulefiles/gdas_trpsfcmv.wcoss_dell_p3 +++ /dev/null @@ -1,11 +0,0 @@ -#%Module################################################ -# Modfule file for gdas_trpsfcmv -######################################################## -module load ips/18.0.1.163 - -module load NCL/6.4.0 -module load bufr/11.3.0 -module load ip/3.0.1 -module load sp/2.0.2 -module load w3nco/2.0.6 -module load bacio/2.0.2 diff --git a/modulefiles/gfs_bufr.hera b/modulefiles/gfs_bufr.hera new file mode 100644 index 0000000000..5d4ef5f7ac --- /dev/null +++ b/modulefiles/gfs_bufr.hera @@ -0,0 +1,27 @@ +#%Module##################################################### +## bufrsnd +############################################################# + +# Loading Intel Compiler Suite +module load intel +module load impi +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +# Loading nceplibs modules +module load sigio/2.1.1 +module load bacio/2.0.3 +module load w3nco/2.0.6 +module load bufr/11.3.0 +module load nemsio/2.2.3 +module load intelpython/3.6.8 +module load w3emc/2.3.1 + +module use /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load hdf5_parallel/1.10.6 +module load netcdf_parallel/4.7.4 +#module load w3emc_para/2.4.0 + + +export myFC=$FCOMP +export myFCFLAGS="-O3 -convert big_endian -traceback -g -fp-model source -qopenmp" +export myCPP=/lib/cpp +export myCPPFLAGS="-P" diff --git a/modulefiles/gfs_bufr.theia b/modulefiles/gfs_bufr.theia deleted file mode 100644 index c433c9ca1e..0000000000 --- a/modulefiles/gfs_bufr.theia +++ /dev/null @@ -1,22 +0,0 @@ -#%Module##################################################### -## bufrsnd -############################################################# - -# Loading Intel Compiler Suite -module load intel -module load impi - -module use -a $MOD_PATH - -# Loding nceplibs modules -module load sigio/v2.0.1 -module load bacio/v2.0.1 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load bufr/v10.2.5 -module load nemsio/v2.2.1 - -export myFC=mpiifort -export myFCFLAGS="-O3 -convert big_endian -traceback -g -fp-model source -openmp" -export myCPP=/lib/cpp -export myCPPFLAGS="-P" diff --git a/modulefiles/gfs_bufr.wcoss_dell_p3 b/modulefiles/gfs_bufr.wcoss_dell_p3 index 0fa98c8eb5..acb1431e79 100755 --- a/modulefiles/gfs_bufr.wcoss_dell_p3 +++ b/modulefiles/gfs_bufr.wcoss_dell_p3 @@ -2,6 +2,7 @@ ## bufrsnd ############################################################# +####. $MODULESHOME/init/ksh # Loading pe environment module load ips/18.0.1.163 module load impi/18.0.1 @@ -9,15 +10,15 @@ module load impi/18.0.1 # Loding nceplibs modules module load nemsio/2.2.3 module load bacio/2.0.2 -module load w3emc/2.3.0 module load w3nco/2.0.6 module load bufr/11.3.0 module load sigio/2.1.0 -# module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ -# module load gempak/7.3.1 +module load w3emc/2.4.0 +module load NetCDF-parallel/4.7.4 +module load HDF5-parallel/1.10.6 -module use -a /gpfs/dell1/nco/ops/nwpara/modulefiles/compiler_prod/ips/18.0.1 +module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ module load gempak/7.3.3 export myFC=mpiifort diff --git a/modulefiles/gfs_cnvgrib21_gfs.theia b/modulefiles/gfs_cnvgrib21_gfs.theia deleted file mode 100644 index f2190a2bcc..0000000000 --- a/modulefiles/gfs_cnvgrib21_gfs.theia +++ /dev/null @@ -1,16 +0,0 @@ -#%Module##################################################### -## Module file for cnvgrib21 -############################################################# - -# Loading Intel Compiler Suite -module load intel - -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles - -# Loding nceplibs modules -module load bacio/v2.0.1 -module load w3nco/v2.0.6 -module load g2/v2.5.0 -module load jasper/v1.900.1 -module load z/v1.2.6 -module load png/v1.2.44 diff --git a/modulefiles/gfs_cnvgrib21_gfs.wcoss b/modulefiles/gfs_cnvgrib21_gfs.wcoss deleted file mode 100644 index 85232df670..0000000000 --- a/modulefiles/gfs_cnvgrib21_gfs.wcoss +++ /dev/null @@ -1,18 +0,0 @@ -#%Module##################################################### -## Module file for cnvgrib21 -############################################################# -#module-whatis "cnvgrib21_gfs" - -# -# Loading required system modules -# - module load ics - module switch ics/15.0.6 - module load jasper/v1.900.1 - module load png/v1.2.44 - module load z/v1.2.6 - -# Loading Intel-Compiled NCEP Libraries - module load bacio/v2.0.2 - module load w3nco/v2.0.6 - module load g2/v3.1.0 diff --git a/modulefiles/gfs_cnvgrib21_gfs.wcoss_cray b/modulefiles/gfs_cnvgrib21_gfs.wcoss_cray deleted file mode 100755 index c24818d30c..0000000000 --- a/modulefiles/gfs_cnvgrib21_gfs.wcoss_cray +++ /dev/null @@ -1,29 +0,0 @@ -#%Module##################################################### -## Module file for cnvgrib21 -############################################################# -#module-whatis "convgrib21_gfs" - -set ver v14.1.0 - -# -# Loading required Cray system modules -# - module load modules - - module load craype-sandybridge - module load jasper-gnu-sandybridge/1.900.1 - module load png-intel-sandybridge/1.2.49 - module load zlib-intel-sandybridge/1.2.7 - -# Loading Intel-Compiled NCEP Libraries - module load PrgEnv-intel/5.2.56 - module switch intel intel/15.0.6.233 - module load bacio-intel/2.0.1 - module load w3emc-intel/2.2.0 - module load w3nco-intel/2.0.6 - module load ip-intel/3.0.0 - module load sp-intel/2.0.2 - module load g2-intel/3.1.0 - -# Loading IOBUF - module load iobuf/2.0.7 diff --git a/modulefiles/gfs_cnvgrib21_gfs.wcoss_dell_p3 b/modulefiles/gfs_cnvgrib21_gfs.wcoss_dell_p3 deleted file mode 100755 index 0dac89def8..0000000000 --- a/modulefiles/gfs_cnvgrib21_gfs.wcoss_dell_p3 +++ /dev/null @@ -1,16 +0,0 @@ -#%Module##################################################### -## Module file for cnvgrib21 -############################################################# -#module-whatis "convgrib21_gfs" - -set ver v15.0.0 - -module load ips/18.0.1.163 - -module load jasper/1.900.1 -module load libpng/1.2.59 -module load zlib/1.2.11 - -module load bacio/2.0.2 -module load w3nco/2.0.6 -module load g2/3.1.0 diff --git a/modulefiles/gfs_fbwndgfs.hera b/modulefiles/gfs_fbwndgfs.hera new file mode 100644 index 0000000000..60a8ccad54 --- /dev/null +++ b/modulefiles/gfs_fbwndgfs.hera @@ -0,0 +1,10 @@ +#%Module##################################################### +## Module file for fbwndgfs +############################################################# + +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load bacio/2.0.3 +module load w3emc/2.3.1 +module load w3nco/2.0.6 +module load ip/3.0.1 +module load sp/2.0.2 diff --git a/modulefiles/gfs_fbwndgfs.theia b/modulefiles/gfs_fbwndgfs.theia deleted file mode 100644 index 9a896baf6a..0000000000 --- a/modulefiles/gfs_fbwndgfs.theia +++ /dev/null @@ -1,14 +0,0 @@ -#%Module##################################################### -## Module file for fbwndgfs -############################################################# - -# Loading Intel Compiler Suite -module load intel/14.0.2 - -# Loding nceplibs modules -module use -a $MOD_PATH -module load bacio/v2.0.1 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load ip/v3.0.0 -module load sp/v2.0.2 diff --git a/modulefiles/gfs_fbwndgfs.wcoss_cray b/modulefiles/gfs_fbwndgfs.wcoss_cray index e327319fb4..ab149ad5ad 100755 --- a/modulefiles/gfs_fbwndgfs.wcoss_cray +++ b/modulefiles/gfs_fbwndgfs.wcoss_cray @@ -6,15 +6,15 @@ # module load modules module load craype-sandybridge - module load PrgEnv-intel/5.2.56 - module switch intel intel/15.0.6.233 + module load PrgEnv-intel/5.2.82 + module switch intel intel/18.1.163 # Loading Intel-Compiled NCEP Libraries - module load bacio-intel/2.0.1 - module load w3emc-intel/2.2.0 - module load w3nco-intel/2.0.6 - module load ip-intel/3.0.0 - module load sp-intel/2.0.2 + module load bacio-intel/2.0.3 + module load w3emc-intel/2.4.0 + module load w3nco-intel/2.2.0 + module load ip-intel/3.0.2 + module load sp-intel/2.0.3 # Loading IOBUF - module load iobuf/2.0.7 +# module load iobuf/2.0.7 diff --git a/modulefiles/gfs_fbwndgfs.wcoss_dell_p3 b/modulefiles/gfs_fbwndgfs.wcoss_dell_p3 index 3271ea2396..5782e1d110 100755 --- a/modulefiles/gfs_fbwndgfs.wcoss_dell_p3 +++ b/modulefiles/gfs_fbwndgfs.wcoss_dell_p3 @@ -5,8 +5,8 @@ module load ips/18.0.1.163 module load impi/18.0.1 -module load bacio/2.0.2 -module load w3nco/2.0.6 -module load w3emc/2.3.0 -module load ip/3.0.1 -module load sp/2.0.2 +module load bacio/2.0.3 +module load w3nco/2.2.0 +module load w3emc/2.4.0 +module load ip/3.0.2 +module load sp/2.0.3 diff --git a/modulefiles/gfs_overpdtg2.theia b/modulefiles/gfs_overpdtg2.theia deleted file mode 100644 index 3bddf7c572..0000000000 --- a/modulefiles/gfs_overpdtg2.theia +++ /dev/null @@ -1,15 +0,0 @@ -#%Module##################################################### -## Module file for overpdtg2 -############################################################# - -# Loading Intel Compiler Suite -module load intel - -# Loding nceplibs modules -module use $MOD_PATH -module load bacio/v2.0.1 -module load w3nco/v2.0.6 -module load g2/v2.5.0 -module load jasper/v1.900.1 -module load z/v1.2.6 -module load png/v1.2.44 diff --git a/modulefiles/gfs_overpdtg2.wcoss b/modulefiles/gfs_overpdtg2.wcoss deleted file mode 100644 index 0c00194cbb..0000000000 --- a/modulefiles/gfs_overpdtg2.wcoss +++ /dev/null @@ -1,17 +0,0 @@ -#%Module##################################################### -## Module file for overpdtg2 -############################################################# -# -# Loading required system modules -# - module load ics - module switch ics/15.0.6 - - module load jasper/v1.900.1 - module load png/v1.2.44 - module load z/v1.2.6 - -# Loading Intel-Compiled NCEP Libraries - module load bacio/v2.0.2 - module load w3nco/v2.0.6 - module load g2/v3.1.0 diff --git a/modulefiles/gfs_overpdtg2.wcoss_cray b/modulefiles/gfs_overpdtg2.wcoss_cray deleted file mode 100755 index 0ea5247d83..0000000000 --- a/modulefiles/gfs_overpdtg2.wcoss_cray +++ /dev/null @@ -1,22 +0,0 @@ -#%Module##################################################### -## Module file for overpdtg2 -############################################################# - -# -# Loading required Cray system modules -# - module load modules - module load craype-sandybridge - module load jasper-gnu-sandybridge/1.900.1 - module load png-intel-sandybridge/1.2.49 - module load zlib-intel-sandybridge/1.2.7 - -# Loading Intel-Compiled NCEP Libraries - module load PrgEnv-intel/5.2.56 - module switch intel intel/15.0.6.233 - module load bacio-intel/2.0.1 - module load w3nco-intel/2.0.6 - module load g2-intel/3.1.0 - -# Loading IOBUF - module load iobuf/2.0.7 diff --git a/modulefiles/gfs_overpdtg2.wcoss_dell_p3 b/modulefiles/gfs_overpdtg2.wcoss_dell_p3 deleted file mode 100755 index 0b82443a36..0000000000 --- a/modulefiles/gfs_overpdtg2.wcoss_dell_p3 +++ /dev/null @@ -1,13 +0,0 @@ -#%Module##################################################### -## Module file for overpdtg2 -############################################################# -# -module load ips/18.0.1.163 - -module load jasper/1.900.1 -module load libpng/1.2.59 -module load zlib/1.2.11 - -module load bacio/2.0.2 -module load w3nco/2.0.6 -module load g2/3.1.0 diff --git a/modulefiles/gfs_wintemv.theia b/modulefiles/gfs_wintemv.theia deleted file mode 100644 index 8205dd4a67..0000000000 --- a/modulefiles/gfs_wintemv.theia +++ /dev/null @@ -1,12 +0,0 @@ -#%Module##################################################### -## Module file for wintemv -############################################################# - -# Loading Intel Compiler Suite -module load intel - -# Loding nceplibs modules -module use -a $MOD_PATH -module load bacio/v2.0.1 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 diff --git a/modulefiles/gfs_wintemv.wcoss b/modulefiles/gfs_wintemv.wcoss deleted file mode 100644 index aa225ab82e..0000000000 --- a/modulefiles/gfs_wintemv.wcoss +++ /dev/null @@ -1,14 +0,0 @@ -#%Module##################################################### -## Module file for wintemv -############################################################# - -# Loading required system modules - -module load ics -module switch ics/15.0.6 - -# Loading Intel-Compiled NCEP Libraries - -module load bacio/v2.0.2 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 diff --git a/modulefiles/gfs_wintemv.wcoss_cray b/modulefiles/gfs_wintemv.wcoss_cray deleted file mode 100644 index ef5f1d8bfc..0000000000 --- a/modulefiles/gfs_wintemv.wcoss_cray +++ /dev/null @@ -1,21 +0,0 @@ -#%Module##################################################### -## Module file for wintemv -############################################################# -#module-whatis "wintemv" - -# -# Loading required Cray system modules -# - module load modules - module load craype-sandybridge - -# Loading Intel-Compiled NCEP Libraries - module load PrgEnv-intel/5.2.56 - module switch intel intel/15.0.6.233 - - module load bacio-intel/2.0.1 - module load w3emc-intel/2.2.0 - module load w3nco-intel/2.0.6 - -# Loading IOBUF - module load iobuf/2.0.7 diff --git a/modulefiles/gfs_wintemv.wcoss_dell_p3 b/modulefiles/gfs_wintemv.wcoss_dell_p3 deleted file mode 100644 index 10a652ef54..0000000000 --- a/modulefiles/gfs_wintemv.wcoss_dell_p3 +++ /dev/null @@ -1,11 +0,0 @@ -#%Module##################################################### -## Module file for wintemv -############################################################# -#module-whatis "wintemv" - -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load bacio/2.0.2 -module load w3emc/2.3.0 -module load w3nco/2.0.6 diff --git a/modulefiles/module-setup.csh.inc b/modulefiles/module-setup.csh.inc index a93b21a3c4..7917d2878c 100644 --- a/modulefiles/module-setup.csh.inc +++ b/modulefiles/module-setup.csh.inc @@ -7,6 +7,12 @@ if ( { test -d /lfs3 } ) then source /apps/lmod/lmod/init/$__ms_shell endif module purge +else if ( { test -d /scratch1 } ) then + # We are on NOAA Hera + if ( ! { module help >& /dev/null } ) then + source /apps/lmod/lmod/init/$__ms_shell + endif + module purge else if ( { test -d /scratch3 } ) then # We are on NOAA Theia if ( ! { module help >& /dev/null } ) then diff --git a/modulefiles/module-setup.sh.inc b/modulefiles/module-setup.sh.inc index 6815b1a464..f4aad8b9f1 100644 --- a/modulefiles/module-setup.sh.inc +++ b/modulefiles/module-setup.sh.inc @@ -22,6 +22,12 @@ if [[ -d /lfs3 ]] ; then source /apps/lmod/lmod/init/$__ms_shell fi module purge +elif [[ -d /scratch1 ]] ; then + # We are on NOAA Hera + if ( ! eval module help > /dev/null 2>&1 ) ; then + source /apps/lmod/lmod/init/$__ms_shell + fi + module purge elif [[ -d /scratch3 ]] ; then # We are on NOAA Theia if ( ! eval module help > /dev/null 2>&1 ) ; then diff --git a/modulefiles/module_base.hera b/modulefiles/module_base.hera new file mode 100644 index 0000000000..a60234f5f5 --- /dev/null +++ b/modulefiles/module_base.hera @@ -0,0 +1,34 @@ +#%Module###################################################################### +## +## FV3GFS prerequisites +## + +module load intel/18.0.5.274 +module load impi/2018.0.4 +module load wgrib2/2.0.8 +module load hpss/hpss +module load nco/4.7.0 +module load gempak/7.4.2 + +#Load from official NCEPLIBS +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load hdf5_parallel/1.10.6 +#module load netcdf_parallel/4.7.4 +module load g2tmpl/1.6.0 +module load grib_util/1.1.1 +module load crtm/2.3.0 +module load prod_util/1.1.0 + +module use -a /scratch1/NCEPDEV/global/gwv/lp/lib/modulefiles +module load netcdfp/4.7.4 +module load esmflocal/8.0.1.08bs + +#module use -a /scratch1/NCEPDEV/nems/emc.nemspara/soft/modulefiles +#module load esmf/8.0.1bs08 + +# python +module use -a /contrib/anaconda/modulefiles +module load anaconda/2.3.0 + +# waveprep +module load cdo/1.9.5 diff --git a/modulefiles/module_base.theia b/modulefiles/module_base.theia deleted file mode 100644 index ac2864736f..0000000000 --- a/modulefiles/module_base.theia +++ /dev/null @@ -1,17 +0,0 @@ -#%Module###################################################################### -## -## FV3GFS prerequisites -## - -module load intel/16.1.150 -module load impi/5.1.2.150 -module load wgrib2/0.2.0.6c -module load hpss/hpss -module load pnetcdf/1.5.0-impi -module load netcdf/4.3.0 -module load nco/4.7.0 -module load hdf5/1.8.14 -module load gempak/6.7.0 - -module use /scratch4/NCEPDEV/global/save/glopara/git/NCEPLIBS-prod_util/modulefiles -module load prod_util/v1.1.0_slurm diff --git a/modulefiles/module_base.wcoss_c b/modulefiles/module_base.wcoss_c index 8b69912394..67cd115d7e 100644 --- a/modulefiles/module_base.wcoss_c +++ b/modulefiles/module_base.wcoss_c @@ -52,3 +52,12 @@ module load util_shared/1.0.7 module load gcc/6.3.0 module unload grib_util/1.0.3 module load grib_util/1.1.0 + +module use -a /gpfs/hps3/emc/nems/noscrub/emc.nemspara/soft/modulefiles +module unload intel +module load intel/16.3.210 +module load cray-netcdf +module load esmf/8.0.0bs48 + +# python +module load python/3.6.3 diff --git a/modulefiles/module_base.wcoss_cray b/modulefiles/module_base.wcoss_cray deleted file mode 100755 index 65e1a9a8af..0000000000 --- a/modulefiles/module_base.wcoss_cray +++ /dev/null @@ -1,51 +0,0 @@ -#%Module###################################################################### -## -## FV3GFS prerequisites - -# From default environment - -module load modules - -module load xt-lsfhpc -module load ncep -module load alps -module load dvs -module load xpmem -module load ugni -module load craype-network-aries -module load switch -#module load eswrap -module load PrgEnv-intel -module load craype -#module switch craype-haswell - -# Is this needed? -module load subversion - -## WCOSS Cray execution prereqs: -module load rca -module load alps -module load xpmem -module load gni-headers -module load udreg -module load ugni -module load hpss - -module load prod_util -module load g2tmpl-intel/1.4.0 -module load crtm-intel/2.2.6 -module load iobuf/2.0.7 - -# module load gempak/7.3.0 -module use -a /gpfs/hps/nco/ops/nwpara/modulefiles -module load gempak/7.3.3 - -module load nco-gnu-sandybridge/4.4.4 -module load NetCDF-intel-sandybridge/4.2 -module load cfp-intel-sandybridge/1.1.0 -setenv USE_CFP YES - -module load gcc/6.3.0 -module unload grib_util/1.0.3 -module load grib_util/1.1.0 - diff --git a/modulefiles/module_base.wcoss_dell_p3 b/modulefiles/module_base.wcoss_dell_p3 index d70e1bb9e9..f3a76c9a22 100755 --- a/modulefiles/module_base.wcoss_dell_p3 +++ b/modulefiles/module_base.wcoss_dell_p3 @@ -7,28 +7,37 @@ module load ips/18.0.1.163 module load impi/18.0.1 module load lsf/10.1 -module load EnvVars/1.0.2 +module load EnvVars/1.0.3 module load HPSS/5.0.2.5 -module load prod_util/1.1.0 -module load prod_envir/1.0.2 -module load g2tmpl/1.5.0 -module load crtm/2.2.6 -module load ESMF/7_1_0r +module load prod_util/1.1.4 +module load prod_envir/1.1.0 module unload grib_util/1.0.6 module load grib_util/1.1.0 module load NCO/4.7.0 -module load HDF5-serial/1.10.1 -module load NetCDF/4.5.0 -module load CFP/2.0.1 +module load CFP/2.0.2 setenv USE_CFP YES - -# modules used by vrfy module load pm5 -# module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ -# module load gempak/7.3.1 +module load NetCDF-parallel/4.7.4 +module load ESMF/8.0.1 +module load HDF5-parallel/1.10.6 -module use -a /gpfs/dell1/nco/ops/nwpara/modulefiles/compiler_prod/ips/18.0.1 +module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ module load gempak/7.3.3 +module load g2tmpl/1.6.0 + +# Load for WAFS +module load bufr_dumplist/2.0.0 +module load dumpjb/5.1.0 +module load util_shared/1.1.2 + +# python +module load python/3.6.3 + +# Load crtm +module load crtm/2.3.0 + +# waveprep +module load cdo/1.9.8 diff --git a/modulefiles/module_nemsutil.theia b/modulefiles/module_nemsutil.theia deleted file mode 100644 index 45685118eb..0000000000 --- a/modulefiles/module_nemsutil.theia +++ /dev/null @@ -1,15 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -# Loading Intel Compiler Suite -module load intel/14.0.2 -module load impi/5.1.2.150 - -# Loding nceplibs modules -module use -a $MOD_PATH -module load w3nco/v2.0.6 -module load bacio/v2.0.1 -module load nemsio/v2.2.1 - -export FCMP=ifort diff --git a/modulefiles/module_nemsutil.wcoss b/modulefiles/module_nemsutil.wcoss deleted file mode 100644 index f421c1a88b..0000000000 --- a/modulefiles/module_nemsutil.wcoss +++ /dev/null @@ -1,13 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -# Loading Intel Compiler Suite -module load ics/14.0.1 - -# Loding nceplibs modules -module load w3nco/v2.0.6 -module load bacio/v2.0.1 -module load nemsio/v2.2.1 - -export FCMP=ifort diff --git a/modulefiles/module_nemsutil.wcoss_cray b/modulefiles/module_nemsutil.wcoss_cray deleted file mode 100644 index 371c8e0245..0000000000 --- a/modulefiles/module_nemsutil.wcoss_cray +++ /dev/null @@ -1,17 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -module purge -module load modules -module load PrgEnv-intel -module load cray-mpich -module load craype-sandybridge - -module load w3nco-intel/2.0.6 -module load bacio-intel/2.0.1 - -export NEMSIO_INC=/usrx/local/nceplibs/nemsio/nemsio_v2.2.3/incmod -export NEMSIO_LIB=/usrx/local/nceplibs/nemsio/nemsio_v2.2.3/libnemsio_v2.2.3.a - -export FCMP=ftn diff --git a/modulefiles/module_nemsutil.wcoss_cray_userlib b/modulefiles/module_nemsutil.wcoss_cray_userlib deleted file mode 100644 index 53fad475a5..0000000000 --- a/modulefiles/module_nemsutil.wcoss_cray_userlib +++ /dev/null @@ -1,19 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -# Load Intel environment -module purge -module load modules -module load PrgEnv-intel -module load cray-mpich -module load craype-sandybridge - -# Load NCEPLIBS modules -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use $MOD_PATH -module load w3nco/v2.0.6 -module load bacio/v2.0.2 -module load nemsio/v2.2.3 - -export FCMP=ftn diff --git a/modulefiles/module_nemsutil.wcoss_dell_p3 b/modulefiles/module_nemsutil.wcoss_dell_p3 deleted file mode 100644 index e93d581651..0000000000 --- a/modulefiles/module_nemsutil.wcoss_dell_p3 +++ /dev/null @@ -1,12 +0,0 @@ -#%Module##################################################### -## Module file for nemsutil -############################################################# - -module load ips/18.0.1.163 -module load impi/18.0.1 - -module load bacio/2.0.2 -module load w3nco/2.0.6 -module load nemsio/2.2.3 - -export FCMP=ifort diff --git a/modulefiles/modulefile.fv3nc2nemsio.hera b/modulefiles/modulefile.fv3nc2nemsio.hera new file mode 100644 index 0000000000..c18bab3def --- /dev/null +++ b/modulefiles/modulefile.fv3nc2nemsio.hera @@ -0,0 +1,13 @@ +#%Module##################################################### +## Module file for fv3nc2nemsio +############################################################# + +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load netcdf/4.7.0 +module load hdf5/1.10.5 +module load bacio/2.0.2 +module load nemsio/2.2.3 +module load w3nco/2.0.6 + +export FCMP="ifort" +export FFLAGS="-g -O2 -traceback" diff --git a/modulefiles/modulefile.fv3nc2nemsio.theia b/modulefiles/modulefile.fv3nc2nemsio.theia deleted file mode 100644 index 83bf6bff1c..0000000000 --- a/modulefiles/modulefile.fv3nc2nemsio.theia +++ /dev/null @@ -1,14 +0,0 @@ -#%Module##################################################### -## Module file for fv3nc2nemsio -############################################################# - -module load intel/14.0.2 -module load netcdf/4.3.0 -module load hdf5/1.8.14 -module use -a $MOD_PATH -module load bacio/v2.0.2 -module load nemsio/v2.2.3 -module load w3nco/v2.0.6 - -export FCMP="ifort" -export FFLAGS="-g -O2 -traceback" diff --git a/modulefiles/modulefile.global_emcsfc_ice_blend.theia b/modulefiles/modulefile.global_emcsfc_ice_blend.theia deleted file mode 100644 index d42fb6ac8e..0000000000 --- a/modulefiles/modulefile.global_emcsfc_ice_blend.theia +++ /dev/null @@ -1,17 +0,0 @@ -#%Module##################################################### -## emcsfc_ice_blend build module for Theia -############################################################# - -module load intel/14.0.2 -export FCOMP=ifort -export FFLAGS="-O0 -i4" - -# load ncep library modules - -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles -module load w3nco/v2.0.6 -module load bacio/v2.0.1 -module load jasper -module load z -module load png -module load g2/v2.5.0 diff --git a/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss b/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss deleted file mode 100755 index c4ccccfb88..0000000000 --- a/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss +++ /dev/null @@ -1,14 +0,0 @@ -#%Module##################################################### -## Module file for emcsfc_ice_blend -############################################################# - -module load ics/12.1 -export FCOMP=ifort -export FFLAGS="-O0 -i4" - -module load w3nco/v2.0.6 -module load bacio/v2.0.2 -module load jasper/v1.900.1 -module load z/v1.2.6 -module load png/v1.2.44 -module load g2/v2.5.0 diff --git a/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss_cray b/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss_cray deleted file mode 100755 index 76f18d2873..0000000000 --- a/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss_cray +++ /dev/null @@ -1,17 +0,0 @@ -#%Module##################################################### -## Module file for emcsfc_ice_blend -############################################################# - -# intel compiler - -module load PrgEnv-intel -module load craype-haswell -export FCOMP=ftn -export FFLAGS="-O0 -i4 -craype-verbose" - -module load w3nco-intel/2.0.6 -module load bacio-intel/2.0.1 -export JASPER_LIB=/usrx/local/prod/jasper/1.900.1/intel/haswell/lib/libjasper.a -module load zlib-intel-haswell/1.2.7 -module load png-intel-haswell/1.2.49 -module load g2-intel/2.5.0 diff --git a/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss_cray_userlib b/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss_cray_userlib deleted file mode 100755 index ca64e02e8a..0000000000 --- a/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss_cray_userlib +++ /dev/null @@ -1,20 +0,0 @@ -#%Module##################################################### -## Module file for emcsfc_ice_blend -############################################################# - -# intel compiler - -module load PrgEnv-intel -module load craype-haswell -export FCOMP=ftn -export FFLAGS="-O0 -i4 -craype-verbose" - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH - -module load w3nco-intel/2.0.6 -module load bacio-intel/2.0.1 -export JASPER_LIB=/usrx/local/prod/jasper/1.900.1/intel/haswell/lib/libjasper.a -module load zlib-intel-haswell/1.2.7 -module load png-intel-haswell/1.2.49 -module load g2-intel/2.5.0 diff --git a/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss_dell_p3 b/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss_dell_p3 deleted file mode 100755 index 369695ec06..0000000000 --- a/modulefiles/modulefile.global_emcsfc_ice_blend.wcoss_dell_p3 +++ /dev/null @@ -1,17 +0,0 @@ -#%Module##################################################### -## Module file for emcsfc_ice_blend -############################################################# - -# intel compiler - -module load ips/18.0.1.163 - -export FCOMP=ifort -export FFLAGS="-O0 -i4" - -module load w3nco/2.0.6 -module load bacio/2.0.2 -module load jasper/1.900.1 -module load libpng/1.2.59 -module load zlib/1.2.11 -module load g2/3.1.0 diff --git a/modulefiles/modulefile.global_emcsfc_snow2mdl.theia b/modulefiles/modulefile.global_emcsfc_snow2mdl.theia deleted file mode 100644 index b364fbe471..0000000000 --- a/modulefiles/modulefile.global_emcsfc_snow2mdl.theia +++ /dev/null @@ -1,23 +0,0 @@ -#%Module##################################################### -## emcsfc_snow2mdl build module for Theia -############################################################# - -# load intel compiler - -module load intel/14.0.2 - -# load ncep library modules - -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles -module load ip/v3.0.0 -module load sp/v2.0.2 -module load w3nco/v2.0.6 -module load bacio/v2.0.1 -module load jasper -module load z -module load png -module load g2/v2.5.0 -module load landsfcutil/v2.1.0 - -export FCOMP=ifort -export FFLAGS="-O0 -r8 -i4 -FR -I${IP_INCd} -openmp -convert big_endian -assume byterecl" diff --git a/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss b/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss deleted file mode 100755 index 8a6a883478..0000000000 --- a/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss +++ /dev/null @@ -1,18 +0,0 @@ -#%Module##################################################### -## Module file for emcsfc_snow2mdl -############################################################# - -module load ics/12.1 - -module load ip/v3.0.0 -module load sp/v2.0.2 -module load w3nco/v2.0.6 -module load bacio/v2.0.2 -module load jasper/v1.900.1 -module load z/v1.2.6 -module load png/v1.2.44 -module load g2/v2.5.0 -module load landsfcutil/v2.1.0 - -export FCOMP=ifort -export FFLAGS="-O0 -r8 -i4 -FR -I${IP_INCd} -openmp -convert big_endian -assume byterecl" diff --git a/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss_cray b/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss_cray deleted file mode 100755 index de17f8570e..0000000000 --- a/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss_cray +++ /dev/null @@ -1,21 +0,0 @@ -#%Module##################################################### -## Module file for emcsfc_snow2mdl -############################################################# - -# intel compiler - -module load PrgEnv-intel -module load craype-haswell - -module load ip-intel/3.0.0 -module load sp-intel/2.0.2 -module load w3nco-intel/2.0.6 -module load bacio-intel/2.0.1 -export JASPER_LIB=/usrx/local/prod/jasper/1.900.1/intel/haswell/lib/libjasper.a -module load zlib-intel-haswell/1.2.7 -module load png-intel-haswell/1.2.49 -module load g2-intel/2.5.0 -module load landsfcutil-intel/2.1.0 - -export FCOMP=ftn -export FFLAGS="-O0 -r8 -i4 -FR -I${IP_INCd} -openmp -convert big_endian -assume byterecl -craype-verbose" diff --git a/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss_cray_userlib b/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss_cray_userlib deleted file mode 100755 index 192136afec..0000000000 --- a/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss_cray_userlib +++ /dev/null @@ -1,24 +0,0 @@ -#%Module##################################################### -## Module file for emcsfc_snow2mdl -############################################################# - -# intel compiler - -module load PrgEnv-intel -module load craype-haswell - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH - -module load ip-intel/3.0.0 -module load sp-intel/2.0.2 -module load w3nco-intel/2.0.6 -module load bacio-intel/2.0.1 -export JASPER_LIB=/usrx/local/prod/jasper/1.900.1/intel/haswell/lib/libjasper.a -module load zlib-intel-haswell/1.2.7 -module load png-intel-haswell/1.2.49 -module load g2-intel/2.5.0 -module load landsfcutil-intel/2.1.0 - -export FCOMP=ftn -export FFLAGS="-O0 -r8 -i4 -FR -I${IP_INCd} -openmp -convert big_endian -assume byterecl -craype-verbose" diff --git a/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss_dell_p3 b/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss_dell_p3 deleted file mode 100755 index 207c6f846a..0000000000 --- a/modulefiles/modulefile.global_emcsfc_snow2mdl.wcoss_dell_p3 +++ /dev/null @@ -1,20 +0,0 @@ -#%Module##################################################### -## Module file for emcsfc_snow2mdl -############################################################# - -# intel compiler - -module load ips/18.0.1.163 - -module load w3nco/2.0.6 -module load bacio/2.0.2 -module load ip/3.0.1 -module load sp/2.0.2 -module load jasper/1.900.1 -module load libpng/1.2.59 -module load zlib/1.2.11 -module load g2/3.1.0 -module load landsfcutil/2.1.0 - -export FCOMP=ifort -export FFLAGS="-O0 -r8 -i4 -FR -I${IP_INCd} -qopenmp -convert big_endian -assume byterecl " diff --git a/modulefiles/modulefile.grib_util.hera b/modulefiles/modulefile.grib_util.hera new file mode 100644 index 0000000000..b912ecc12d --- /dev/null +++ b/modulefiles/modulefile.grib_util.hera @@ -0,0 +1,18 @@ +#%Module###################################################################### +# Module file for grib_util +############################################################################## +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load intel/18.0.5.274 +module load bacio/2.0.3 +module load w3emc/2.3.1 +module load w3nco/2.0.6 +module load ip/3.0.1 +module load sp/2.0.2 + +module load jasper/1.900.1 +module load png/1.2.44 +module load z/1.2.11 + +export FCMP=ifort +export CCMP=icc + diff --git a/modulefiles/modulefile.grib_util.theia b/modulefiles/modulefile.grib_util.theia deleted file mode 100644 index ecdd678049..0000000000 --- a/modulefiles/modulefile.grib_util.theia +++ /dev/null @@ -1,20 +0,0 @@ -#%Module###################################################################### -module use -a $MOD_PATH - -module load intel/14.0.2 - -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 - - -module load bacio/v2.0.2 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load g2/v3.1.0 - -export FCMP=ifort -export CCMP=icc - diff --git a/modulefiles/modulefile.grib_util.wcoss b/modulefiles/modulefile.grib_util.wcoss deleted file mode 100644 index 0ae2e8f49e..0000000000 --- a/modulefiles/modulefile.grib_util.wcoss +++ /dev/null @@ -1,32 +0,0 @@ -#%Module###################################################################### -proc ModulesHelp { } { - puts stderr "Load modules for building GRIB utilities" -} -module-whatis "This module loads the modules and libraries for building\ - the GRIB utilities, including jasper, png, zlib, bacio, g2,\ - w3emc, w3nco, ip, sp, and iobuf." - -conflict build_grib_util - -# -# Loading required system modules -# - module load ics - module switch ics/15.0.6 - module load jasper/v1.900.1 - module load png/v1.2.44 - module load z/v1.2.6 - -# Loading Intel-Compiled NCEP Libraries - module load bacio/v2.0.1 - module load w3emc/v2.2.0 - module load w3nco/v2.0.6 - module load ip/v3.0.0 - module load sp/v2.0.2 - - # pre-implemented g2 v3.1.0 - module use /nwtest2/lib/modulefiles - module load g2/v3.1.0 - -setenv FCMP ifort -setenv CCMP icc diff --git a/modulefiles/modulefile.grib_util.wcoss_cray b/modulefiles/modulefile.grib_util.wcoss_cray deleted file mode 100644 index 191baa15df..0000000000 --- a/modulefiles/modulefile.grib_util.wcoss_cray +++ /dev/null @@ -1,22 +0,0 @@ -#%Module###################################################################### -module unload craype-haswell -module load craype-sandybridge -module unload PrgEnv-cray -module load PrgEnv-intel/5.2.56 -module switch intel/15.0.6.233 -module load iobuf/2.0.7 - -module load bacio-intel/2.0.1 -module load w3emc-intel/2.2.0 -module load w3nco-intel/2.0.6 -module load ip-intel/3.0.0 -module load sp-intel/2.0.2 -module load jasper-gnu-sandybridge/1.900.1 -module load png-intel-sandybridge/1.2.49 -module load zlib-intel-sandybridge/1.2.7 - -module use /gpfs/hps/nco/ops/nwtest/lib/modulefiles -module load g2-intel/3.1.0 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.grib_util.wcoss_cray_userlib b/modulefiles/modulefile.grib_util.wcoss_cray_userlib deleted file mode 100644 index 56ebe0c336..0000000000 --- a/modulefiles/modulefile.grib_util.wcoss_cray_userlib +++ /dev/null @@ -1,22 +0,0 @@ -#%Module###################################################################### -module unload craype-haswell -module load craype-sandybridge -module unload PrgEnv-cray -module load PrgEnv-intel/5.2.56 -module switch intel/15.0.6.233 -module load iobuf/2.0.7 - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load bacio/v2.0.2 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 -module load g2/v3.1.0 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.grib_util.wcoss_dell_p3 b/modulefiles/modulefile.grib_util.wcoss_dell_p3 deleted file mode 100644 index bbebec9cbf..0000000000 --- a/modulefiles/modulefile.grib_util.wcoss_dell_p3 +++ /dev/null @@ -1,15 +0,0 @@ -#%Module###################################################################### - -module load bacio/2.0.2 -module load w3emc/2.3.0 -module load w3nco/2.0.6 -module load ip/3.0.1 -module load sp/2.0.2 - -module load jasper/1.900.1 -module load libpng/1.2.59 -module load zlib/1.2.11 -module load g2/3.1.0 - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/modulefile.prod_util.theia b/modulefiles/modulefile.prod_util.theia deleted file mode 100644 index 3ad4d37bf6..0000000000 --- a/modulefiles/modulefile.prod_util.theia +++ /dev/null @@ -1,8 +0,0 @@ -#%Module###################################################################### -## -module load intel/16.1.150 -module use -a $MOD_PATH -module load w3nco/v2.0.6 - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/modulefile.prod_util.wcoss_cray b/modulefiles/modulefile.prod_util.wcoss_cray deleted file mode 100644 index 51031c6bdd..0000000000 --- a/modulefiles/modulefile.prod_util.wcoss_cray +++ /dev/null @@ -1,11 +0,0 @@ -#%Module##################################################### -module purge -module load modules -module load PrgEnv-intel -module load cray-mpich -module load craype-sandybridge - -module load w3nco-intel/2.0.6 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.prod_util.wcoss_cray_userlib b/modulefiles/modulefile.prod_util.wcoss_cray_userlib deleted file mode 100644 index dd5209fcf0..0000000000 --- a/modulefiles/modulefile.prod_util.wcoss_cray_userlib +++ /dev/null @@ -1,13 +0,0 @@ -#%Module##################################################### -module purge -module load modules -module load PrgEnv-intel -module load cray-mpich -module load craype-sandybridge - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load w3nco/v2.0.6 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.prod_util.wcoss_dell_p3 b/modulefiles/modulefile.prod_util.wcoss_dell_p3 deleted file mode 100644 index 9186e13eb8..0000000000 --- a/modulefiles/modulefile.prod_util.wcoss_dell_p3 +++ /dev/null @@ -1,6 +0,0 @@ -#%Module##################################################### - -module load w3nco/2.0.6 - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/modulefile.regrid_nemsio.hera b/modulefiles/modulefile.regrid_nemsio.hera new file mode 100644 index 0000000000..6280a02436 --- /dev/null +++ b/modulefiles/modulefile.regrid_nemsio.hera @@ -0,0 +1,17 @@ +#%Module##################################################### +## Module file for regrid_nemsio +############################################################# + +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load netcdf/4.7.0 +module load hdf5/1.10.5 +module load bacio/2.0.2 +module load nemsio/2.2.3 +module load w3nco/2.0.6 +module load sp/2.0.2 + +export FCMP="$FCOMP" +export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -lnetcdf -L${HDF5}/lib -lhdf5 -lhdf5_hl -lhdf5 -lz" +export NETCDF_LDFLAGS="-L${NETCDF}/lib -lnetcdf -lnetcdff -lnetcdf -L${HDF5}/lib -lhdf5 -lhdf5_hl -lhdf5 -lz" +export NETCDF_INCLUDE=-I$NETCDF/include +#export FCMP="mpif90 -f90=ifort" diff --git a/modulefiles/modulefile.regrid_nemsio.theia b/modulefiles/modulefile.regrid_nemsio.theia deleted file mode 100644 index bcc0d169f1..0000000000 --- a/modulefiles/modulefile.regrid_nemsio.theia +++ /dev/null @@ -1,16 +0,0 @@ -#%Module##################################################### -## Module file for regrid_nemsio -############################################################# - -module load intel/14.0.2 -module load impi/4.1.3.048 -module load netcdf/4.3.0 -module load hdf5/1.8.14 - -module use -a $MOD_PATH -module load bacio/v2.0.2 -module load nemsio/v2.2.3 -module load w3nco/v2.0.6 -module load sp/v2.0.2 - -export FCMP="mpif90 -f90=ifort" diff --git a/modulefiles/modulefile.storm_reloc_v6.0.0.hera b/modulefiles/modulefile.storm_reloc_v6.0.0.hera new file mode 100644 index 0000000000..36f96e01b9 --- /dev/null +++ b/modulefiles/modulefile.storm_reloc_v6.0.0.hera @@ -0,0 +1,18 @@ +#%Module##################################################### +## Module file for storm_reloc_v6.0.0 - Hera +############################################################# + +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load w3emc/2.3.0 +module load w3nco/2.0.6 +module load bacio/2.0.2 +module load sp/2.0.2 +module load nemsio/2.2.3 +module load nemsiogfs/2.2.1 +module load sigio/2.1.1 +module load jasper/1.900.1 +module load png/1.2.44 +module load z/1.2.11 +module load g2/3.1.0 + +set FC mpiifort diff --git a/modulefiles/modulefile.storm_reloc_v6.0.0.theia b/modulefiles/modulefile.storm_reloc_v6.0.0.theia deleted file mode 100644 index f9835db930..0000000000 --- a/modulefiles/modulefile.storm_reloc_v6.0.0.theia +++ /dev/null @@ -1,26 +0,0 @@ -#%Module##################################################### -## Module file for storm_reloc_v6.0.0 -############################################################# - -module use /scratch3/NCEPDEV/nwprod/lib/modulefiles - -module load intel -module load impi -module load nco - -module load sigio/v2.0.1 -module load sfcio/v1.0.0 -module load g2/v2.5.0 -module load w3nco/v2.0.6 -module load w3emc/v2.0.5 -module load bacio/v2.0.1 -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 -module load sp/v2.0.2 -module load ip/v2.0.0 -module load bufr/v10.2.5 -module load nemsio/v2.2.2 -module load nemsiogfs/v2.0.1 - -set FC mpiifort diff --git a/modulefiles/modulefile.storm_reloc_v6.0.0.wcoss_cray b/modulefiles/modulefile.storm_reloc_v6.0.0.wcoss_cray new file mode 100644 index 0000000000..980f92a175 --- /dev/null +++ b/modulefiles/modulefile.storm_reloc_v6.0.0.wcoss_cray @@ -0,0 +1,23 @@ +#%Module##################################################### +## Module file for storm_reloc_v6.0.0 +############################################################# +module load craype-network-aries +module load craype-haswell +module load craype/2.3.0 +module load PrgEnv-intel/5.2.56 +module load intel/15.0.3.187 +module load cray-mpich/7.2.0 + +module load jasper-gnu-haswell/1.900.1 +module load png-intel-haswell/1.2.49 +module load zlib-intel-haswell/1.2.7 +module load bacio-intel/2.0.1 +module load w3emc-intel/2.2.0 +module load w3nco-intel/2.0.6 +module load sigio-intel/2.1.0 +module load sp-intel/2.0.2 +module load nemsio-intel/2.2.2 +module load nemsiogfs-intel/2.0.1 +module load g2-intel/2.5.0 + +export FC=ftn diff --git a/modulefiles/modulefile.storm_reloc_v6.0.0.wcoss_dell_p3 b/modulefiles/modulefile.storm_reloc_v6.0.0.wcoss_dell_p3 new file mode 100644 index 0000000000..e59b2fd454 --- /dev/null +++ b/modulefiles/modulefile.storm_reloc_v6.0.0.wcoss_dell_p3 @@ -0,0 +1,22 @@ +#%Module##################################################### +## Module file for storm_reloc_v6.0.0 +############################################################# + +module load ips/18.0.1.163 +module load impi/18.0.1 + +module load w3emc/2.3.0 +module load w3nco/2.0.6 +module load bacio/2.0.2 +module load sp/2.0.2 +module load nemsio/2.2.3 +module load nemsiogfs/2.0.1 +module load sigio/2.1.0 + +module load jasper/1.900.1 +module load libpng/1.2.59 +module load zlib/1.2.11 +module load g2/3.1.0 + + +export FC=ifort diff --git a/modulefiles/modulefile.wgrib2.theia b/modulefiles/modulefile.wgrib2.theia deleted file mode 100644 index b1568e8cea..0000000000 --- a/modulefiles/modulefile.wgrib2.theia +++ /dev/null @@ -1,19 +0,0 @@ -#%Module###################################################################### - -module load intel/14.0.2 -module load netcdf/4.3.0 -module load hdf5/1.8.14 -module load szip/2.1 - -module use -a $MOD_PATH -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load g2c/v1.5.0 - -export NETCDF_INCLUDE="-I${NETCDF}/include" - -export FCMP=ifort -export CCMP=icc diff --git a/modulefiles/modulefile.wgrib2.wcoss b/modulefiles/modulefile.wgrib2.wcoss deleted file mode 100644 index 0eea72e391..0000000000 --- a/modulefiles/modulefile.wgrib2.wcoss +++ /dev/null @@ -1,24 +0,0 @@ -#%Module###################################################################### -############################################################# -## Lin.Gan@noaa.gov -## EMC -## wgrib2 v2.0.5 -############################################################# -proc ModulesHelp { } { -puts stderr "Set environment veriables for wgrib2" -puts stderr "This module initializes the users environment" -puts stderr "to build the wgrib2 for WCOSS production.\n" -} -module-whatis "wgrib2" - -set ver v2.0.5 - -module load ics/15.0.6 -module load NetCDF/4.2/serial -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load g2c/v1.5.0 - diff --git a/modulefiles/modulefile.wgrib2.wcoss_cray b/modulefiles/modulefile.wgrib2.wcoss_cray deleted file mode 100644 index 4d933141ad..0000000000 --- a/modulefiles/modulefile.wgrib2.wcoss_cray +++ /dev/null @@ -1,13 +0,0 @@ -#%Module###################################################################### -module load PrgEnv-gnu/5.2.56 -module load cray-netcdf/4.3.2 -module load craype/2.3.0 -module load craype-sandybridge -module load /gpfs/hps/nco/ops/nwtest/lib/modulefiles/g2c-gnu/1.5.0 - -module load jasper-gnu-sandybridge/1.900.1 -module load png-gnu-sandybridge/1.2.49 -module load zlib-gnu-sandybridge/1.2.7 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.wgrib2.wcoss_cray_userlib b/modulefiles/modulefile.wgrib2.wcoss_cray_userlib deleted file mode 100644 index 7b41a17f9f..0000000000 --- a/modulefiles/modulefile.wgrib2.wcoss_cray_userlib +++ /dev/null @@ -1,15 +0,0 @@ -#%Module###################################################################### -module load PrgEnv-gnu/5.2.56 -module load cray-netcdf/4.3.2 -module load craype/2.3.0 -module load craype-sandybridge - -module unuse /gpfs/hps/nco/ops/nwprod/lib/modulefiles -module use -a $MOD_PATH -module load jasper/v1.900.1 -module load png/v1.2.44 -module load z/v1.2.6 -module load g2c/v1.5.0 - -export FCMP=ftn -export CCMP=cc diff --git a/modulefiles/modulefile.wgrib2.wcoss_dell_p3 b/modulefiles/modulefile.wgrib2.wcoss_dell_p3 deleted file mode 100644 index 9a43e3ffd9..0000000000 --- a/modulefiles/modulefile.wgrib2.wcoss_dell_p3 +++ /dev/null @@ -1,11 +0,0 @@ -#%Module###################################################################### - -module load ips/18.0.1.163 - -module load g2c/1.5.0 -module load jasper/1.900.1 -module load libpng/1.2.59 -module load zlib/1.2.11 - -export FCMP=ifort -export CCMP=icc diff --git a/parm/config/config.anal b/parm/config/config.anal index eb08963ebc..a20fe40345 100755 --- a/parm/config/config.anal +++ b/parm/config/config.anal @@ -15,69 +15,124 @@ fi if [[ "$CDUMP" = "gfs" ]] ; then export USE_RADSTAT="NO" # This can be only used when bias correction is not-zero. export GENDIAG="NO" - export SETUP='diag_rad=.false.,diag_pcp=.false.,diag_conv=.false.,diag_ozone=.false.,write_diag(3)=.false.,' + export SETUP='diag_rad=.false.,diag_pcp=.false.,diag_conv=.false.,diag_ozone=.false.,write_diag(3)=.false.,niter(2)=100,' export DIAG_TARBALL="NO" fi -export ANALYSISSH="$HOMEgsi/scripts/exglobal_analysis_fv3gfs.sh.ecf" export npe_gsi=$npe_anal +if [[ "$CDUMP" == "gfs" ]] ; then + export npe_gsi=$npe_anal_gfs + export nth_anal=$nth_anal_gfs +fi + +# Set parameters specific to L127 +if [ $LEVS = "128" ]; then + export GRIDOPTS="nlayers(63)=1,nlayers(64)=1," + export SETUP="gpstop=55,nsig_ext=56,$SETUP" +fi + +# Set namelist option for LETKF +export lobsdiag_forenkf=".false." # anal does not need to write out jacobians + # set to .true. in config.eobs and config.eupd + +if [ $OUTPUT_FILE = "nemsio" ]; then + export DO_CALC_INCREMENT="YES" + export DO_CALC_ANALYSIS="NO" +fi + # Do not process the following datasets export GSNDBF=${GSNDBF:-/dev/null} export AMSREBF=${AMSREBF:-/dev/null} export SSMITBF=${SSMITBF:-/dev/null} export AMSR2BF=${AMSR2BF:-/dev/null} -# Set CONVINFO and SATINFO for retrospective parallels -if [ $REALTIME = "NO" ]; then - - CDATE=${CDATE:-9999} # provide default in case CDATE undefined - -# Set CONVINFO - if [[ "$CDATE" -ge "2018022818" ]]; then - export CONVINFO=$FIXgsi/fv3_historical/global_convinfo.txt.2018022818 - elif [[ "$CDATE" -ge "2018010512" ]]; then - export CONVINFO=$FIXgsi/fv3_historical/global_convinfo.txt.2018010512 - elif [[ "$CDATE" -ge "2017071912" ]]; then - export CONVINFO=$FIXgsi/fv3_historical/global_convinfo.txt.2017071912 - elif [[ "$CDATE" -ge "2016031512" ]]; then - export CONVINFO=$FIXgsi/fv3_historical/global_convinfo.txt.2016031512 - elif [[ "$CDATE" -ge "2014041400" ]]; then - export CONVINFO=$FIXgsi/fv3_historical/global_convinfo.txt.2014041400 - else - echo "WARNING: No CONVINFO for $CDATE" + +# Set default values for info files and observation error +# NOTE: Remember to set PRVT in config.prep as OBERROR is set below +export CONVINFO=$FIXgsi/global_convinfo.txt +export OZINFO=$FIXgsi/global_ozinfo.txt +export SATINFO=$FIXgsi/global_satinfo.txt +export OBERROR=$FIXgsi/prepobs_errtable.global + + +# Use experimental dumps in EMC GFS v16 parallels +if [[ $RUN_ENVIR == "emc" ]]; then + export ABIBF="/dev/null" + if [[ "$CDATE" -ge "2019022800" ]] ; then + export ABIBF="$DMPDIR/${CDUMP}x.${PDY}/${cyc}/${CDUMP}.t${cyc}z.gsrcsr.tm00.bufr_d" + if [[ "$CDATE" -ge "2019111000" && "$CDATE" -le "2020052612" ]]; then + export ABIBF="$DMPDIR/${CDUMP}y.${PDY}/${cyc}/${CDUMP}.t${cyc}z.gsrcsr.tm00.bufr_d" + fi + fi + + export AHIBF="/dev/null" + if [[ "$CDATE" -ge "2019042300" ]]; then + export AHIBF="$DMPDIR/${CDUMP}x.${PDY}/${cyc}/${CDUMP}.t${cyc}z.ahicsr.tm00.bufr_d" + fi + + export HDOB=$DMPDIR/${CDUMP}x.${PDY}/${cyc}/${CDUMP}.t${cyc}z.hdob.tm00.bufr_d + +# Use dumps from NCO GFS v16 parallel + if [[ "$CDATE" -ge "2020103012" ]]; then + export ABIBF="" + export AHIBF="" + export HDOB="" fi -# Set SATINFO - if [[ "$CDATE" -ge "2018053012" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2018053012 - elif [[ "$CDATE" -ge "2018021212" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2018021212 - elif [[ "$CDATE" -ge "2017103118" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2017103118 - elif [[ "$CDATE" -ge "2017031612" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2017031612 - elif [[ "$CDATE" -ge "2017030812" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2017030812 - elif [[ "$CDATE" -ge "2016110812" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2016110812 - elif [[ "$CDATE" -ge "2016090912" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2016090912 - elif [[ "$CDATE" -ge "2016020312" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2016020312 - elif [[ "$CDATE" -ge "2016011912" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2016011912 - elif [[ "$CDATE" -ge "2015111012" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2015111012 - elif [[ "$CDATE" -ge "2015100118" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2015100118 - elif [[ "$CDATE" -ge "2015070218" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2015070218 - elif [[ "$CDATE" -ge "2015011412" ]]; then - export SATINFO=$FIXgsi/fv3_historical/global_satinfo.txt.2015011412 - else - echo "WARNING: No SATINFO for $CDATE" +# Set info files and prepobs.errtable.global for GFS v16 retrospective parallels + if [[ "$CDATE" -ge "2019021900" && "$CDATE" -lt "2019110706" ]]; then + export CONVINFO=$FIXgsi/gfsv16_historical/global_convinfo.txt.2019021900 + export OBERROR=$FIXgsi/gfsv16_historical/prepobs_errtable.global.2019021900 fi + +# Place GOES-15 AMVs in monitor, assimilate GOES-17 AMVs, assimilate KOMPSAT-5 gps + if [[ "$CDATE" -ge "2019110706" && "$CDATE" -lt "2020040718" ]]; then + export CONVINFO=$FIXgsi/gfsv16_historical/global_convinfo.txt.2019110706 + export OBERROR=$FIXgsi/gfsv16_historical/prepobs_errtable.global.2019110706 + fi + +# Assimilate 135 (T) & 235 (uv) Canadian AMDAR observations + if [[ "$CDATE" -ge "2020040718" && "$CDATE" -lt "2020052612" ]]; then + export CONVINFO=$FIXgsi/gfsv16_historical/global_convinfo.txt.2020040718 + fi + +# NOTE: +# As of 2020052612, gfsv16_historical/global_convinfo.txt.2020052612 is +# identical to ../global_convinfo.txt. Thus, the logic below is not +# needed at this time. +# Assimilate COSMIC-2 GPS +# if [[ "$CDATE" -ge "2020052612" && "$CDATE" -lt "YYYYMMDDHH" ]]; then +# export CONVINFO=$FIXgsi/gfsv16_historical/global_convinfo.txt.2020052612 +# fi + + +# Turn off assmilation of OMPS during period of bad data + if [[ "$CDATE" -ge "2020011600" && "$CDATE" -lt "2020011806" ]]; then + export OZINFO=$FIXgsi/gfsv16_historical/global_ozinfo.txt.2020011600 + fi + + +# Set satinfo for start of GFS v16 parallels + if [[ "$CDATE" -ge "2019021900" && "$CDATE" -lt "2019110706" ]]; then + export SATINFO=$FIXgsi/gfsv16_historical/global_satinfo.txt.2019021900 + fi + +# Turn on assimilation of Metop-C AMSUA and MHS + if [[ "$CDATE" -ge "2019110706" && "$CDATE" -lt "2020022012" ]]; then + export SATINFO=$FIXgsi/gfsv16_historical/global_satinfo.txt.2019110706 + fi + +# NOTE: +# As of 2020022012, gfsv16_historical/global_satinfo.txt.2020022012 is +# identical to ../global_satinfo.txt. Thus, the logic below is not +# needed at this time +# +# Turn off assmilation of all Metop-A MHS +# if [[ "$CDATE" -ge "2020022012" && "$CDATE" -lt "YYYYMMDDHH" ]]; then +# export SATINFO=$FIXgsi/gfsv16_historical/global_satinfo.txt.2020022012 +# fi + fi echo "END: config.anal" diff --git a/parm/config/config.analcalc b/parm/config/config.analcalc new file mode 100755 index 0000000000..5866ce5ac6 --- /dev/null +++ b/parm/config/config.analcalc @@ -0,0 +1,11 @@ +#!/bin/ksh -x + +########## config.analcalc ########## +# GFS post-anal specific (non-diag) + +echo "BEGIN: config.analcalc" + +# Get task specific resources +. $EXPDIR/config.resources analcalc + +echo "END: config.analcalc" diff --git a/parm/config/config.analdiag b/parm/config/config.analdiag new file mode 100755 index 0000000000..285e614d37 --- /dev/null +++ b/parm/config/config.analdiag @@ -0,0 +1,11 @@ +#!/bin/ksh -x + +########## config.analdiag ########## +# GFS post-anal specific (diag) + +echo "BEGIN: config.analdiag" + +# Get task specific resources +. $EXPDIR/config.resources analdiag + +echo "END: config.analdiag" diff --git a/parm/config/config.arch b/parm/config/config.arch index e9aec65d19..fe4363613a 100755 --- a/parm/config/config.arch +++ b/parm/config/config.arch @@ -15,6 +15,11 @@ export FHMAX_FITS=132 #--starting and ending hours of previous cycles to be removed from rotating directory export RMOLDSTD=144 -export RMOLDEND=72 +export RMOLDEND=24 + +#--keep forcing data for running gldas step +if [[ "$DO_GLDAS" == "YES" && "$CDUMP" == "gdas" ]]; then + [[ $RMOLDSTD -lt 144 ]] && export RMOLDSTD=144 +fi echo "END: config.arch" diff --git a/parm/config/config.awips b/parm/config/config.awips index c5a8d45caa..6167b91f7e 100755 --- a/parm/config/config.awips +++ b/parm/config/config.awips @@ -8,10 +8,10 @@ echo "BEGIN: config.awips" # Get task specific resources . $EXPDIR/config.resources awips -export AWIPS20SH=$HOMEgfs/jobs/JGFS_AWIPS_20KM_1P0DEG -export AWIPSG2SH=$HOMEgfs/jobs/JGFS_AWIPS_G2 +export AWIPS20SH=$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_20KM_1P0DEG +export AWIPSG2SH=$HOMEgfs/jobs/JGFS_ATMOS_AWIPS_G2 # No. of concurrent awips jobs -export NAWIPSGRP=21 +export NAWIPSGRP=42 echo "END: config.awips" diff --git a/parm/config/config.base.emc.dyn b/parm/config/config.base.emc.dyn index ebddbb110f..582cb561aa 100755 --- a/parm/config/config.base.emc.dyn +++ b/parm/config/config.base.emc.dyn @@ -12,19 +12,9 @@ export machine="@MACHINE@" export RUN_ENVIR="emc" # Account, queue, etc. -if [ $machine = "THEIA" ]; then - - export ACCOUNT="fv3-cpu" - export QUEUE="batch" - export QUEUE_ARCH="service" - -elif [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" ]; then - - export ACCOUNT="GFS-DEV" - export QUEUE="dev" - export QUEUE_ARCH="dev_transfer" - -fi +export ACCOUNT="@ACCOUNT@" +export QUEUE="@QUEUE@" +export QUEUE_ARCH="@QUEUE_ARCH@" # Project to use in mass store: HPSS_PROJECT=emc-global @@ -41,100 +31,29 @@ export SCRgfs=$HOMEgfs/scripts ######################################################################## # GLOBAL static environment parameters -if [ $machine = "THEIA" ]; then - - export NWPROD="/scratch4/NCEPDEV/global/save/glopara/nwpara" - export DMPDIR="/scratch4/NCEPDEV/global/noscrub/dump" - export RTMFIX="/scratch4/NCEPDEV/da/save/Michael.Lueken/nwprod/lib/crtm/2.2.3/fix_update" - -elif [ $machine = "WCOSS_C" ]; then - - export NWPROD="/gpfs/hps/nco/ops/nwprod" - if [ -d /gpfs/tp1 ]; then - export SITE="LUNA" - export DMPDIR="/gpfs/tp1/emc/globaldump" - elif [ -d /gpfs/gp1 ]; then - export SITE="SURGE" - export DMPDIR="/gpfs/gp1/emc/globaldump" - fi - export RTMFIX=$CRTM_FIX - -elif [ $machine = "WCOSS_DELL_P3" ]; then - - export NWPROD="/gpfs/dell1/nco/ops/nwprod" - if [ -d /gpfs/tp1 ]; then - export SITE="MARS" - export DMPDIR="/gpfs/tp1/emc/globaldump" - elif [ -d /gpfs/gp1 ]; then - export SITE="VENUS" - export DMPDIR="/gpfs/gp1/emc/globaldump" - fi - export RTMFIX=$CRTM_FIX -fi - - -# Machine specific paths used everywhere -if [ $machine = "THEIA" ]; then - - # USER specific paths - export HOMEDIR="/scratch4/NCEPDEV/global/save/$USER" - export STMP="/scratch4/NCEPDEV/stmp3/$USER" - export PTMP="/scratch4/NCEPDEV/stmp4/$USER" - export NOSCRUB="/scratch4/NCEPDEV/global/noscrub/$USER" - - # Base directories for various builds - export BASE_GIT="/scratch4/NCEPDEV/global/save/glopara/git" - export BASE_SVN="/scratch4/NCEPDEV/global/save/glopara/svn" - -elif [ $machine = "WCOSS_C" ]; then - - # USER specific paths - export HOMEDIR="/gpfs/hps3/emc/global/noscrub/$USER" - export STMP="/gpfs/hps2/stmp/$USER" - export PTMP="/gpfs/hps2/ptmp/$USER" - export NOSCRUB="/gpfs/hps3/emc/global/noscrub/$USER" - - # Base directories for various builds - export BASE_GIT="/gpfs/hps3/emc/global/noscrub/emc.glopara/git" - export BASE_SVN="/gpfs/hps3/emc/global/noscrub/emc.glopara/svn" - -elif [ $machine = "WCOSS_DELL_P3" ]; then +export NWPROD="@NWPROD@" +export DMPDIR="@DMPDIR@" +export RTMFIX=$CRTM_FIX - # USER specific paths - export HOMEDIR="/gpfs/dell2/emc/modeling/noscrub/$USER" - export STMP="/gpfs/dell3/stmp/$USER" - export PTMP="/gpfs/dell3/ptmp/$USER" - export NOSCRUB="/gpfs/dell2/emc/modeling/noscrub/$USER" +# USER specific paths +export HOMEDIR="@HOMEDIR@" +export STMP="@STMP@" +export PTMP="@PTMP@" +export NOSCRUB="@NOSCRUB@" - # Base directories for various builds - export BASE_GIT="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git" - export BASE_SVN="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git" - -fi - -# Utilities needed in the scripts (mostly post) -if [ $machine = "THEIA" ]; then - - export NDATE="$NWPROD/util/exec/ndate" - export NHOUR="$NWPROD/util/exec/nhour" - export WGRIB="$NWPROD/util/exec/wgrib" - export WGRIB2="/scratch3/NCEPDEV/nwprod/utils/wgrib2.v2.0.6c/wgrib2/wgrib2" - export COPYGB="$NWPROD/util/exec/copygb" - export COPYGB2="$NWPROD/util/exec/copygb2" - export GRBINDEX="$NWPROD/util/exec/grbindex" - export GRB2INDEX="$NWPROD/util/exec/grb2index" - export GRBINDEX2="$NWPROD/util/exec/grb2index" - export CNVGRIB="/apps/cnvgrib/1.4.0/bin/cnvgrib" - export POSTGRB2TBL="/scratch3/NCEPDEV/nwprod/lib/g2tmpl/v1.5.0/sorc/params_grib2_tbl_new" - -fi +# Base directories for various builds +export BASE_GIT="@BASE_GIT@" # Toggle to turn on/off GFS downstream processing. -export DO_BUFRSND="YES" -export DO_GEMPAK="YES" -export DO_AWIPS="YES" +export DO_BUFRSND="YES" # BUFR sounding products +export DO_GEMPAK="NO" # GEMPAK products +export DO_AWIPS="NO" # AWIPS products +export WAFSF="NO" # WAFS products # NO for retrospective parallel; YES for real-time parallel +# arch.sh uses REALTIME for MOS. Need to set REALTIME=YES +# if want MOS written to HPSS. Should update arch.sh to +# use RUNMOS flag (currently in config.vrfy) export REALTIME="YES" @@ -145,14 +64,13 @@ export REALTIME="YES" # CLEAR #################################################### # Build paths relative to $HOMEgfs -export HOMEgsi="$HOMEgfs" export FIXgsi="$HOMEgfs/fix/fix_gsi" export HOMEfv3gfs="$HOMEgfs/sorc/fv3gfs.fd" export HOMEpost="$HOMEgfs" -export HOMEobsproc_prep="$BASE_GIT/obsproc/obsproc_prep.v5.2.0" -export HOMEobsproc_network="$BASE_GIT/obsproc/obsproc_global.v3.2.6" +export HOMEobsproc_prep="$BASE_GIT/obsproc/gfsv16b/obsproc_prep.iss70457.netcdfhistory" +export HOMEobsproc_network="$BASE_GIT/obsproc/gfsv16b/obsproc_global_RB-3.4.0" export HOMEobsproc_global=$HOMEobsproc_network -export BASE_VERIF="$BASE_SVN/verif/global/tags/vsdb" +export BASE_VERIF="$BASE_GIT/verif/global/tags/vsdb" # CONVENIENT utility scripts and other environment parameters export NCP="/bin/cp -p" @@ -162,6 +80,8 @@ export VERBOSE="YES" export KEEPDATA="NO" export CHGRP_CMD="chgrp rstprod" export NEMSIOGET="$HOMEgfs/exec/nemsio_get" +export NCDUMP="$NETCDF/bin/ncdump" +export NCLEN="$HOMEgfs/ush/getncdimlen" # Machine environment, jobs, and other utility scripts export BASE_ENV="$HOMEgfs/env" @@ -174,8 +94,11 @@ export assim_freq=6 export PSLOT="@PSLOT@" export EXPDIR="@EXPDIR@/$PSLOT" export ROTDIR="@ROTDIR@/$PSLOT" -export ROTDIR_DUMP="NO" +export ROTDIR_DUMP="YES" #Note: A value of "NO" does not currently work export DUMP_SUFFIX="" +if [[ "$CDATE" -ge "2019092100" && "$CDATE" -le "2019110700" ]]; then + export DUMP_SUFFIX="p" # Use dumps from NCO GFS v15.3 parallel +fi export RUNDIR="$STMP/RUNDIRS/$PSLOT" export DATAROOT="$RUNDIR/$CDATE/$CDUMP" export ARCDIR="$NOSCRUB/archive/$PSLOT" @@ -186,6 +109,11 @@ export ATARDIR="/NCEPDEV/$HPSS_PROJECT/1year/$USER/$machine/scratch/$PSLOT" export envir=${envir:-"prod"} export NET="gfs" export RUN=${RUN:-${CDUMP:-"gfs"}} +export COMINatmos=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos +export COMOUTatmos=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos +export COMINwave=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave +export COMOUTwave=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave + export jlogfile="${EXPDIR}/logs/jlogfile" export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} export LOGSCRIPT=${LOGSCRIPT:-""} @@ -194,13 +122,15 @@ export LOGSCRIPT=${LOGSCRIPT:-""} export REDOUT="1>" export REDERR="2>" -export SENDECF="NO" -export SENDCOM="NO" -export SENDDBN="NO" -export SENDSDM="NO" +export SENDECF=${SENDECF:-"NO"} +export SENDCOM=${SENDCOM:-"NO"} +export SENDSDM=${SENDSDM:-"NO"} +export SENDDBN_NTC=${SENDDBN_NTC:-"NO"} +export SENDDBN=${SENDDBN:-"NO"} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} # Resolution specific parameters -export LEVS=65 +export LEVS=128 export CASE="@CASECTL@" export CASE_ENKF="@CASEENS@" @@ -217,6 +147,9 @@ export FHMIN=0 export FHMAX=9 export FHOUT=3 +# Cycle to run EnKF (set to BOTH for both gfs and gdas) +export EUPD_CYC="gdas" + # GFS cycle info export gfs_cyc=@gfs_cyc@ # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4: all 4 cycles. @@ -230,15 +163,58 @@ export FHMAX_GFS_18=384 export FHMAX_GFS=$(eval echo \${FHMAX_GFS_$cyc}) export FHOUT_GFS=3 -export FHMAX_HF_GFS=120 +export FHMAX_HF_GFS=0 export FHOUT_HF_GFS=1 +export ILPOST=1 # gempak output frequency up to F120 + +# GFS restart interval in hours +export restart_interval_gfs=0 + # I/O QUILTING, true--use Write Component; false--use GFDL FMS # if quilting=true, choose OUTPUT_GRID as cubed_sphere_grid in netcdf or gaussian_grid # if gaussian_grid, set OUTPUT_FILE for nemsio or netcdf +# WRITE_DOPOST=true, use inline POST export QUILTING=".true." export OUTPUT_GRID="gaussian_grid" -export OUTPUT_FILE="nemsio" +export OUTPUT_FILE="netcdf" +export WRITE_DOPOST=".true." + +# suffix options depending on file format +if [ $OUTPUT_FILE = "netcdf" ]; then + export SUFFIX=".nc" + export NEMSIO_IN=".false." + export NETCDF_IN=".true." +else + export SUFFIX=".nemsio" + export NEMSIO_IN=".true." + export NETCDF_IN=".false." +fi + +# IAU related parameters +export DOIAU="YES" # Enable 4DIAU for control with 3 increments +export IAUFHRS="3,6,9" +export IAU_FHROT=`echo $IAUFHRS | cut -c1` +export IAU_DELTHRS=6 +export IAU_OFFSET=6 +export DOIAU_ENKF="YES" # Enable 4DIAU for EnKF ensemble +export IAUFHRS_ENKF="3,6,9" +export IAU_DELTHRS_ENKF=6 +if [[ "$SDATE" = "$CDATE" ]]; then + export IAU_OFFSET=0 + export IAU_FHROT=0 +fi + +# Use Jacobians in eupd and thereby remove need to run eomg +export lobsdiag_forenkf=".true." + +# run GLDAS to spin up land ICs +export DO_GLDAS=YES +export gldas_cyc=00 + +# run wave component +export DO_WAVE=YES +export WAVE_CDUMP="both" # Microphysics Options: 99-ZhaoCarr, 8-Thompson; 6-WSM6, 10-MG, 11-GFDL export imp_physics=11 @@ -247,9 +223,9 @@ export imp_physics=11 # Hybrid related export DOHYBVAR="YES" export NMEM_ENKF=@NMEM_ENKF@ -export SMOOTH_ENKF="YES" +export SMOOTH_ENKF="NO" export l4densvar=".true." -export lwrite4danl=".false." +export lwrite4danl=".true." # EnKF output frequency if [ $DOHYBVAR = "YES" ]; then @@ -271,14 +247,32 @@ if [ $DONST = "YES" ]; then export FNTSFA=" "; fi export nst_anl=.true. # Analysis increments to zero in CALCINCEXEC -export INCREMENTS_TO_ZERO="'delz_inc','clwmr_inc','icmr_inc'" +export INCREMENTS_TO_ZERO="'liq_wat_inc','icmr_inc'" + +if [ $OUTPUT_FILE = "nemsio" ]; then + export DO_CALC_INCREMENT="YES" + export DO_CALC_ANALYSIS="NO" +fi + +# Stratospheric increments to zero +export INCVARS_ZERO_STRAT="'sphum_inc','liq_wat_inc','icmr_inc'" +export INCVARS_EFOLD="5" + +# Swith to generate netcdf or binary diagnostic files. If not specified, +# script default to binary diagnostic files. Set diagnostic file +# variables here since used in both DA and vrfy jobs +export netcdf_diag=".true." +export binary_diag=".false." +# Verification options +export DO_METP="YES" # Run MET+ jobs # Archiving options export HPSSARCH="YES" # save data to HPSS archive export ARCH_CYC=00 # Archive data at this cycle for warm_start capability -export ARCH_WARMICFREQ=2 # Archive frequency in days for warm_start capability +export ARCH_WARMICFREQ=4 # Archive frequency in days for warm_start capability export ARCH_FCSTICFREQ=1 # Archive frequency in days for gdas and gfs forecast-only capability +export DELETE_COM_IN_ARCHIVE_JOB="YES" # NO=retain ROTDIR. YES default in arch.sh and earc.sh. echo "END: config.base" diff --git a/parm/config/config.base.nco.static b/parm/config/config.base.nco.static old mode 100644 new mode 100755 index bc3ebf35f1..0a7076f4cf --- a/parm/config/config.base.nco.static +++ b/parm/config/config.base.nco.static @@ -12,7 +12,7 @@ export machine="WCOSS_DELL_P3" export RUN_ENVIR="nco" # Account, queue, etc. -export ACCOUNT="FV3GFS-T2O" +export ACCOUNT="GFS-T2O" export QUEUE="prod" export QUEUE_ARCH="dev_transfer" @@ -32,42 +32,28 @@ export SCRgfs=$HOMEgfs/scripts # GLOBAL static environment parameters export NWPROD="/gpfs/dell1/nco/ops/nwprod" -if [ -d /gpfs/tp1 ]; then - export SITE="MARS" - export DMPDIR="/gpfs/tp1/emc/globaldump" -elif [ -d /gpfs/gp1 ]; then - export SITE="VENUS" - export DMPDIR="/gpfs/gp1/emc/globaldump" -fi export RTMFIX=$CRTM_FIX - # Machine specific paths used everywhere # USER specific paths -# export HOMEDIR="/gpfs/dell2/emc/modeling/noscrub/$USER" - export HOMEDIR=$EXPDIR/HOMEDIR -# export STMP="/gpfs/dell3/stmp/$USER" - export STMP=$DATAROOT -# export PTMP="/gpfs/dell3/ptmp/$USER" - export PTMP=$ROTDIR -# export NOSCRUB="/gpfs/dell2/emc/modeling/noscrub/$USER" - export NOSCRUB=$EXPDIR/NOSCRUB - - # Base directories for various builds - export BASE_GIT="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git" - export BASE_SVN="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git" +export HOMEDIR=$EXPDIR/HOMEDIR +export STMP=$DATAROOT +export PTMP=$ROTDIR +export NOSCRUB=$EXPDIR/NOSCRUB +# Base directories for various builds +export BASE_GIT="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git" # Toggle to turn on/off GFS downstream processing. -export DO_BUFRSND="YES" -export DO_GEMPAK="YES" -export DO_AWIPS="YES" +export DO_BUFRSND="YES" # BUFR sounding products +export DO_GEMPAK="YES" # GEMPAK products +export DO_AWIPS="YES" # AWIPS products +export WAFSF="YES" # WAFS products # NO for retrospective parallel; YES for real-time parallel export REALTIME="YES" - #################################################### # DO NOT ADD MACHINE DEPENDENT STUFF BELOW THIS LINE # IF YOU HAVE TO MAKE MACHINE SPECIFIC CHANGES BELOW @@ -75,22 +61,23 @@ export REALTIME="YES" # CLEAR #################################################### # Build paths relative to $HOMEgfs -export HOMEgsi="$HOMEgfs" export FIXgsi="$HOMEgfs/fix/fix_gsi" export HOMEfv3gfs="$HOMEgfs/sorc/fv3gfs.fd" export HOMEpost="$HOMEgfs" -export HOMEobsproc_prep="$BASE_GIT/obsproc/obsproc_prep.iss-46886.fv3gfs" -export HOMEobsproc_network="$BASE_GIT/obsproc/obsproc_global.iss-46886.fv3gfs" -export BASE_VERIF="$BASE_SVN/verif/global/tags/vsdb" +export HOMEobsproc_prep="$BASE_GIT/obsproc/gfsv16b/obsproc_prep.iss70457.netcdfhistory" +export HOMEobsproc_network="$BASE_GIT/obsproc/gfsv16b/obsproc_global.iss71402.supportGFSv16" +export HOMEobsproc_global=$HOMEobsproc_network +export BASE_VERIF="$BASE_GIT/verif/global/tags/vsdb" # CONVENIENT utility scripts and other environment parameters export NCP="/bin/cp -p" export NMV="/bin/mv" export NLN="/bin/ln -sf" export VERBOSE="YES" -export KEEPDATA="NO" export CHGRP_CMD="chgrp rstprod" export NEMSIOGET="$HOMEgfs/exec/nemsio_get" +export NCDUMP="$NETCDF/bin/ncdump" +export NCLEN="$HOMEgfs/ush/getncdimlen" # Machine environment, jobs, and other utility scripts export BASE_ENV="$HOMEgfs/env" @@ -100,20 +87,24 @@ export BASE_JOB="$HOMEgfs/jobs/rocoto" export SDATE=2018080600 export EDATE=2039123100 export assim_freq=6 -export PSLOT="rtecffv3" +export PSLOT="test" export EXPDIR="$EXPDIR" export ROTDIR="$ROTDIR" export ROTDIR_DUMP="YES" export DUMP_SUFFIX="" export RUNDIR="$DATAROOT" export ARCDIR="$NOSCRUB/archive/$PSLOT" -export ICSDIR="/gpfs/dell2/ptmp/$USER/FV3ICS" export ATARDIR="/NCEPDEV/$HPSS_PROJECT/1year/$USER/$machine/scratch/$PSLOT" # Commonly defined parameters in JJOBS export envir=${envir:-"prod"} export NET="gfs" export RUN=${RUN:-${CDUMP:-"gfs"}} +export COMINatmos=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos +export COMOUTatmos=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos +export COMINwave=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave +export COMOUTwave=${ROTDIR}/${CDUMP}.${PDY}/${cyc}/wave + export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} export LOGSCRIPT=${LOGSCRIPT:-""} #export ERRSCRIPT=${ERRSCRIPT:-"err_chk"} @@ -121,13 +112,15 @@ export LOGSCRIPT=${LOGSCRIPT:-""} export REDOUT="1>" export REDERR="2>" -export SENDECF=${SENDECF:-"NO"} +export SENDECF=${SENDECF:-"YES"} export SENDCOM=${SENDCOM:-"YES"} +export SENDSDM=${SENDSDM:-"YES"} +export SENDDBN_NTC=${SENDDBN_NTC:-"YES"} export SENDDBN=${SENDDBN:-"YES"} -export SENDSDM=${SENDSDM:-"NO"} +export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn} # Resolution specific parameters -export LEVS=65 +export LEVS=128 export CASE="C768" export CASE_ENKF="C384" @@ -139,12 +132,14 @@ elif [[ "$CDUMP" == "gfs" ]] ; then export FHCYC=24 fi - # Output frequency of the forecast model (for cycling) export FHMIN=0 export FHMAX=9 export FHOUT=3 +# Cycle to run EnKF (set to BOTH for both gfs and gdas) +export EUPD_CYC="gdas" + # GFS cycle info export gfs_cyc=4 # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4: all 4 cycles. @@ -160,17 +155,55 @@ export FHMAX_GFS=$(eval echo \${FHMAX_GFS_$cyc}) export FHOUT_GFS=3 export FHMAX_HF_GFS=120 export FHOUT_HF_GFS=1 +export ILPOST=1 # gempak output frequency up to F120 # frequency for saving restart files. set to 6,12,24,48 etc export restart_interval_gfs=12 - # I/O QUILTING, true--use Write Component; false--use GFDL FMS # if quilting=true, choose OUTPUT_GRID as cubed_sphere_grid in netcdf or gaussian_grid # if gaussian_grid, set OUTPUT_FILE for nemsio or netcdf +# WRITE_DOPOST=true, use inline POST export QUILTING=".true." export OUTPUT_GRID="gaussian_grid" -export OUTPUT_FILE="nemsio" +export OUTPUT_FILE="netcdf" +export WRITE_DOPOST=".true." + +# suffix options depending on file format +if [ $OUTPUT_FILE = "netcdf" ]; then + export SUFFIX=".nc" + export NEMSIO_IN=".false." + export NETCDF_IN=".true." +else + export SUFFIX=".nemsio" + export NEMSIO_IN=".true." + export NETCDF_IN=".false." +fi + +# IAU related parameters +export DOIAU="YES" # Enable 4DIAU for control with 3 increments +export IAUFHRS="3,6,9" +export IAU_FHROT=`echo $IAUFHRS | cut -c1` +export IAU_DELTHRS=6 +export IAU_OFFSET=6 +export DOIAU_ENKF="YES" # Enable 4DIAU for EnKF ensemble +export IAUFHRS_ENKF="3,6,9" +export IAU_DELTHRS_ENKF=6 +if [[ "$SDATE" = "$CDATE" ]]; then + export IAU_OFFSET=0 + export IAU_FHROT=0 +fi + +# Use Jacobians in eupd and thereby remove need to run eomg +export lobsdiag_forenkf=".true." + +# run GLDAS to spin up land ICs +export DO_GLDAS=YES +export gldas_cyc=00 + +# run wave component +export DO_WAVE=YES +export WAVE_CDUMP="both" # Microphysics Options: 99-ZhaoCarr, 8-Thompson; 6-WSM6, 10-MG, 11-GFDL export imp_physics=11 @@ -178,10 +211,10 @@ export imp_physics=11 # Shared parameters # Hybrid related export DOHYBVAR="YES" -export NMEM_ENKF=80 -export SMOOTH_ENKF="YES" +export NMEM_ENKF="80" +export SMOOTH_ENKF="NO" export l4densvar=".true." -export lwrite4danl=".false." +export lwrite4danl=".true." # EnKF output frequency if [ $DOHYBVAR = "YES" ]; then @@ -204,15 +237,31 @@ if [ $DONST = "YES" ]; then export FNTSFA=" "; fi export nst_anl=.true. # Analysis increments to zero in CALCINCEXEC -export INCREMENTS_TO_ZERO="'delz_inc','clwmr_inc','icmr_inc'" +export INCREMENTS_TO_ZERO="'liq_wat_inc','icmr_inc'" +if [ $OUTPUT_FILE = "nemsio" ]; then + export DO_CALC_INCREMENT="YES" + export DO_CALC_ANALYSIS="NO" +fi + +# Stratospheric increments to zero +export INCVARS_ZERO_STRAT="'sphum_inc','liq_wat_inc','icmr_inc'" +export INCVARS_EFOLD="5" + +# Swith to generate netcdf or binary diagnostic files. If not specified, +# script default to binary diagnostic files. Set diagnostic file +# variables here since used in both DA and vrfy jobs +export netcdf_diag=".true." +export binary_diag=".false." + +# Verification options +export DO_METP="NO" # Run MET+ jobs # Archiving options -export DELETE_COM_IN_ARCHIVE_JOB=YES export HPSSARCH="NO" # save data to HPSS archive export ARCH_CYC=00 # Archive data at this cycle for warm_start capability export ARCH_WARMICFREQ=1 # Archive frequency in days for warm_start capability export ARCH_FCSTICFREQ=1 # Archive frequency in days for gdas and gfs forecast-only capability - +export DELETE_COM_IN_ARCHIVE_JOB="YES" # NO=retain ROTDIR. YES default in arch.sh and earc.sh. echo "END: config.base" diff --git a/parm/config/config.earc b/parm/config/config.earc index 01ecfd3c38..7cb1de235f 100755 --- a/parm/config/config.earc +++ b/parm/config/config.earc @@ -10,4 +10,8 @@ echo "BEGIN: config.earc" export NMEM_EARCGRP=10 +#--starting and ending hours of previous cycles to be removed from rotating directory +export RMOLDSTD_ENKF=144 +export RMOLDEND_ENKF=24 + echo "END: config.earc" diff --git a/parm/config/config.ecen b/parm/config/config.ecen index f69dccc19f..c9609e3ff8 100755 --- a/parm/config/config.ecen +++ b/parm/config/config.ecen @@ -8,8 +8,14 @@ echo "BEGIN: config.ecen" # Get task specific resources . $EXPDIR/config.resources ecen -export ENKFRECENSH="$HOMEgsi/scripts/exglobal_enkf_recenter_fv3gfs.sh.ecf" - -export CHGRESEXEC="$HOMEgfs/exec/chgres_recenter.exe" +# Number of concurrent ecen jobs [1 implies sequential] +# Usually IAUFHRS_ENKF=3,6,9, so NECENGRP=3. Scripting +# below queries IAUFHRS_ENKF to determine NECENGRP +export NECENGRP=1 +if [ $DOIAU_ENKF = "YES" ]; then + ngrps=$(grep -o ',' <<<"$IAUFHRS_ENKF" | grep -c .) + ((ngrps++)) + export NECENGRP=$ngrps +fi echo "END: config.ecen" diff --git a/parm/config/config.echgres b/parm/config/config.echgres new file mode 100755 index 0000000000..cbf176c92f --- /dev/null +++ b/parm/config/config.echgres @@ -0,0 +1,11 @@ +#!/bin/ksh -x + +########## config.echgres ########## +# regrid full-res forecast for use in ensemble-res analysis generation + +echo "BEGIN: config.echgres" + +# Get task specific resources +. $EXPDIR/config.resources echgres + +echo "END: config.echgres" diff --git a/parm/config/config.ediag b/parm/config/config.ediag new file mode 100755 index 0000000000..192b5d0b48 --- /dev/null +++ b/parm/config/config.ediag @@ -0,0 +1,11 @@ +#!/bin/ksh -x + +########## config.ediag ########## +# GFS ensemble post-eobs specific + +echo "BEGIN: config.ediag" + +# Get task specific resources +. $EXPDIR/config.resources ediag + +echo "END: config.ediag" diff --git a/parm/config/config.efcs b/parm/config/config.efcs index 72409169b3..c326117d5d 100755 --- a/parm/config/config.efcs +++ b/parm/config/config.efcs @@ -18,18 +18,23 @@ if [ $QUILTING = ".true." ]; then export npe_efcs=$npe_fv3 fi -export ENKFFCSTSH="$HOMEgsi/scripts/exglobal_enkf_fcst_fv3gfs.sh.ecf" -export NMEM_EFCSGRP=4 +# Number of enkf members per fcst job +export NMEM_EFCSGRP=2 export RERUN_EFCSGRP="NO" +# Turn off inline UPP for EnKF forecast +export WRITE_DOPOST=".false." + # Stochastic physics parameters (only for ensemble forecasts) -export DO_SKEB="NO" -export SKEB=-999. +export DO_SKEB="YES" +export SKEB=0.3 export SKEB_TAU=21600. -export SKEB_LSCALE=500000. -export SKEBNORM=1 +export SKEB_LSCALE=250000. +export SKEBNORM=0 +export SKEB_NPASS=30 +export SKEB_VDOF=5 export DO_SHUM="YES" -export SHUM=0.006 +export SHUM=0.005 export SHUM_TAU=21600. export SHUM_LSCALE=500000. export DO_SPPT="YES" @@ -46,8 +51,40 @@ else fi # FV3 model namelist parameters to over-ride -export restart_interval=6 -export k_split=1 # model is unstable with k_split=2, n_split=6 and stochastic physics -export n_split=12 # make the model stable with k_split=1, n_split=12 +export restart_interval=${restart_interval:-6} + +# For IAU, write restarts at beginning of window also +if [ $DOIAU_ENKF = "YES" ]; then + export restart_interval="6 -1" + if [[ "$SDATE" = "$CDATE" ]]; then export restart_interval="3 -1"; fi +fi + +export OUTPUT_FILETYPES="$OUTPUT_FILE" +if [[ "$OUTPUT_FILE" == "netcdf" ]]; then + export ichunk2d=0; export jchunk2d=0 + export ichunk3d=0; export jchunk3d=0; export kchunk3d=0 + RESTILE=`echo $CASE_ENKF |cut -c 2-` + if [[ "$machine" == "WCOSS_DELL_P3" ]]; then + if [ $RESTILE -ge 384 ]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf' " + export ichunk2d=$((4*RESTILE)) + export jchunk2d=$((2*RESTILE)) + export ichunk3d=$((4*RESTILE)) + export jchunk3d=$((2*RESTILE)) + export kchunk3d=1 + else + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf' " + fi + fi + if [[ "$machine" == "HERA" ]]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf_parallel' " + if [ $RESTILE -le 192 ]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf' " + fi + fi +fi + +# wave model +export cplwav=.false. echo "END: config.efcs" diff --git a/parm/config/config.eobs b/parm/config/config.eobs index 3ae94a762f..8fa99c10fb 100755 --- a/parm/config/config.eobs +++ b/parm/config/config.eobs @@ -8,8 +8,7 @@ echo "BEGIN: config.eobs" # Get task specific resources . $EXPDIR/config.resources eobs -export INVOBSSH="$HOMEgsi/scripts/exglobal_innovate_obs_fv3gfs.sh.ecf" -export ENKFINVOBSSH="$HOMEgsi/scripts/exglobal_enkf_innovate_obs_fv3gfs.sh.ecf" +# Number of enkf members per innovation job export NMEM_EOMGGRP=8 export RERUN_EOMGGRP="YES" export npe_gsi=$npe_eobs @@ -17,8 +16,16 @@ export npe_gsi=$npe_eobs # GSI namelist options related to observer for EnKF export OBSINPUT_INVOBS="dmesh(1)=225.0,dmesh(2)=225.0" export OBSQC_INVOBS="tcp_width=60.0,tcp_ermin=2.0,tcp_ermax=12.0" +if [ $LEVS = "128" ]; then + export GRIDOPTS_INVOBS="nlayers(63)=1,nlayers(64)=1," + export SETUP_INVOBS="gpstop=55,nsig_ext=56," +fi + export USE_RADSTAT="NO" # This can be only used when bias correction is non-zero. export GENDIAG="YES" # Diagnostic files must be created for EnKF +export lobsdiag_forenkf=".true." # write out jacobians from eobs + # need to specify .true. setting since config.anal sets to .false. + echo "END: config.eobs" diff --git a/parm/config/config.epos b/parm/config/config.epos index cb3c0c7b3d..441a1ff995 100755 --- a/parm/config/config.epos +++ b/parm/config/config.epos @@ -8,12 +8,13 @@ echo "BEGIN: config.epos" # Get task specific resources . $EXPDIR/config.resources epos -export ENKFPOSTSH="$HOMEgsi/scripts/exglobal_enkf_post_fv3gfs.sh.ecf" - # No. of concurrent epos jobs [1 implies sequential] export NEPOSGRP=7 if [ $l4densvar = ".false." ]; then export NEPOSGRP=3 fi +# Generate ensemble spread files +export ENKF_SPREAD="YES" + echo "END: config.epos" diff --git a/parm/config/config.esfc b/parm/config/config.esfc new file mode 100755 index 0000000000..53cbb09175 --- /dev/null +++ b/parm/config/config.esfc @@ -0,0 +1,19 @@ +#!/bin/ksh -x + +########## config.esfc ########## +# Ensemble surface specific + +echo "BEGIN: config.esfc" + +# Get task specific resources +. $EXPDIR/config.resources esfc + +# With IAU only need surface analysis at start of IAU window. +# Set DOSFCANL_ENKF=NO to prevent creation of sfcanl at +# center of analysis window. + +if [ $DOIAU_ENKF = "YES" ]; then + export DOSFCANL_ENKF="NO" +fi + +echo "END: config.esfc" diff --git a/parm/config/config.eupd b/parm/config/config.eupd index 61cb790a83..0e9d42e093 100755 --- a/parm/config/config.eupd +++ b/parm/config/config.eupd @@ -8,9 +8,27 @@ echo "BEGIN: config.eupd" # Get task specific resources . $EXPDIR/config.resources eupd -export ENKFUPDSH="$HOMEgsi/scripts/exglobal_enkf_update_fv3gfs.sh.ecf" export npe_enkf=$npe_eupd -export NAM_ENKF="analpertwtnh=0.9,analpertwtsh=0.9,analpertwttr=0.9" +# Use NAM_ENKF below for serial EnKF +##export NAM_ENKF="analpertwtnh=0.9,analpertwtsh=0.9,analpertwttr=0.9" + +# LETKF specific settings with model space localization +export modelspace_vloc=".true." # model space localization +export letkf_flag=".true." # use LETKF instead of serial filter +export getkf=".true." # Gain form of LETKF (needed for model-space localization) +export denkf=".true." # EnKF approximation (beneficial since less spread removed by analysis) +export nobsl_max=10000 # max number of obs in each LETKF volume (uses closest nobsl_max). can + # be reduced to speed up execution time. +export analpertwt=0.85 # relaxation to prior spread inflation factor +export readin_localization_enkf=".false." # Don’t read in localization scales from file (doesn’t make + # sense for LETKF if model space localization on and nobsl_max>0) +export corrlength=1250 # Horizontal localization scale (max horizontal distance to search for nobsl_max local obs) +export lnsigcutoff=2.75 # ignored if modelspace_vloc=.true. + +export lobsdiag_forenkf=".true." # use jacobian. must be .true. if modelspace_vloc=".true." + # need to specify .true. setting since config.anal sets to .false. + +export NAM_ENKF="smoothparm=35," echo "END: config.eupd" diff --git a/parm/config/config.fcst b/parm/config/config.fcst index c8a0913099..5ca778f891 100755 --- a/parm/config/config.fcst +++ b/parm/config/config.fcst @@ -7,6 +7,7 @@ echo "BEGIN: config.fcst" # Source model specific information that is resolution dependent . $EXPDIR/config.fv3 $CASE +[[ "$CDUMP" == "gfs" ]] && export nth_fv3=$nth_fv3_gfs # Get task specific resources . $EXPDIR/config.resources fcst @@ -15,11 +16,10 @@ if [ $DONST = "YES" ]; then . $EXPDIR/config.nsst fi -export FORECASTSH="$HOMEgfs/scripts/exglobal_fcst_nemsfv3gfs.sh" -#export FCSTEXECDIR="$HOMEfv3gfs/NEMS/exe" +export FORECASTSH="$HOMEgfs/scripts/exglobal_forecast.sh" export FCSTEXECDIR="$HOMEgfs/exec" export FCSTEXEC="global_fv3gfs.x" -export npe_fv3=$npe_fcst # This is model resolution dependent, see note above +export npe_fv3=$npe_fcst if [[ "$CDUMP" == "gfs" ]] ; then export npe_fv3=$npe_fcst_gfs @@ -35,6 +35,14 @@ if [ $QUILTING = ".true." ]; then export npe_fcst_gfs=$(echo " $npe_fcst_gfs + $WRITE_GROUP_GFS * $WRTTASK_PER_GROUP_GFS" | bc) fi +if [ $DO_WAVE = "YES" ] ; then + export npe_fcst=$((npe_fcst + npe_wav)) + if [ "$WAVE_CDUMP" = "gfs" -o "$WAVE_CDUMP" = "both" ]; then + export npe_fcst_gfs=$((npe_fcst_gfs + npe_wav_gfs)) + if [ "$CDUMP" = "gfs" ]; then npe_wav=$npe_wav_gfs ; fi + fi +fi + # Model configuration export TYPE="nh" export MONO="non-mono" @@ -45,6 +53,48 @@ export h2o_phys=".true." # Options of stratosphere O3 physics reaction coefficients export new_o3forc="YES" +# do_ugwp=T: use unified CGWD and OGWD, and turbulent orographic form drag (TOFD) +# do_ugwp=F: use unified CGWD but old OGWD, TOFD is not uded. +export do_ugwp=".false." +export do_tofd=".true." +export launch_level=$(echo "$LEVS/2.35" |bc) + +export n_sponge=42 +export d2_bg_k1=0.20 +export d2_bg_k2=0.04 + +# Sponge layer settings for L127 +if [ $LEVS = "128" -a "$CDUMP" = "gdas" ]; then + export tau=5.0 + export rf_cutoff=1.0e3 + export d2_bg_k1=0.20 + export d2_bg_k2=0.0 +fi + +# PBL/turbulance schemes +export hybedmf=".false." +export satmedmf=".true." +export isatmedmf=1 +tbf="" +if [ $satmedmf = ".true." ]; then tbf="_satmedmf" ; fi + +# Land surface model. (2--NoahMP, landice=F); (1--Noah, landice=T) +export lsm=1 +if [ $lsm -eq 2 ]; then + export lheatstrg=".false." + export landice=".false." +else + export lheatstrg=".false." + export landice=".true." +fi + +# Radiation options +export IAER=5111 ;#spectral band mapping method for aerosol optical properties +export iovr_lw=3 ;#de-correlation length cloud overlap method (Barker, 2008) +export iovr_sw=3 ;#de-correlation length cloud overlap method (Barker, 2008) +export icliq_sw=2 ;#cloud optical coeffs from AER's newer version v3.9-v4.0 for hu and stamnes + + # Microphysics configuration export dnats=0 export cal_pre=".true." @@ -53,22 +103,22 @@ export random_clds=".true." if [ $imp_physics -eq 99 ]; then # ZhaoCarr export ncld=1 - export FIELD_TABLE="$HOMEgfs/parm/parm_fv3diag/field_table_zhaocarr" + export FIELD_TABLE="$HOMEgfs/parm/parm_fv3diag/field_table_zhaocarr${tbf}" export nwat=2 elif [ $imp_physics -eq 6 ]; then # WSM6 export ncld=2 - export FIELD_TABLE="$HOMEgfs/parm/parm_fv3diag/field_table_wsm6" + export FIELD_TABLE="$HOMEgfs/parm/parm_fv3diag/field_table_wsm6${tbf}" export nwat=6 elif [ $imp_physics -eq 8 ]; then # Thompson export ncld=2 - export FIELD_TABLE="$HOMEgfs/parm/parm_fv3diag/field_table_thompson" + export FIELD_TABLE="$HOMEgfs/parm/parm_fv3diag/field_table_thompson${tbf}" export nwat=6 elif [ $imp_physics -eq 11 ]; then # GFDL export ncld=5 - export FIELD_TABLE="$HOMEgfs/parm/parm_fv3diag/field_table_gfdl" + export FIELD_TABLE="$HOMEgfs/parm/parm_fv3diag/field_table_gfdl${tbf}" export nwat=6 export dnats=1 export cal_pre=".false." @@ -76,14 +126,10 @@ elif [ $imp_physics -eq 11 ]; then # GFDL export random_clds=".false." export lgfdlmprad=".true." export effr_in=".true." + export reiflag=2 - if [[ "$CDUMP" == "gdas" ]] ; then - export hord_mt_nh_nonmono=6 - export hord_xx_nh_nonmono=6 - else - export hord_mt_nh_nonmono=5 - export hord_xx_nh_nonmono=5 - fi + export hord_mt_nh_nonmono=5 + export hord_xx_nh_nonmono=5 export vtdm4_nh_nonmono=0.02 export nord=2 export dddmp=0.1 @@ -95,7 +141,40 @@ else fi #--------------------------------------------------------------------- +# ideflate: netcdf zlib lossless compression (0-9): 0 no compression +# nbits: netcdf lossy compression level (0-32): 0 lossless +export ideflate=1 +export nbits=14 +export ishuffle=0 +# compression for RESTART files written by FMS +export shuffle=1 +export deflate_level=1 + +export OUTPUT_FILETYPES="$OUTPUT_FILE" +if [[ "$OUTPUT_FILE" == "netcdf" ]]; then + export ichunk2d=0; export jchunk2d=0 + export ichunk3d=0; export jchunk3d=0; export kchunk3d=0 + RESTILE=`echo $CASE |cut -c 2-` + if [[ "$machine" == "WCOSS_DELL_P3" ]]; then + if [ $RESTILE -ge 768 ]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf_parallel' " + export ichunk3d=$((4*RESTILE)) + export jchunk3d=$((2*RESTILE)) + export kchunk3d=1 + else + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf' " + fi + fi + if [[ "$machine" == "HERA" ]]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf_parallel' " + if [ $RESTILE -le 192 ]; then + export OUTPUT_FILETYPES=" 'netcdf_parallel' 'netcdf' " + fi + fi +fi + +#--------------------------------------------------------------------- # Disable the use of coupler.res; get model start time from model_configure export USE_COUPLER_RES="NO" @@ -108,8 +187,27 @@ if [[ "$CDUMP" == "gdas" ]] ; then # GDAS cycle specific parameters export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table_da_orig" fi - # Write restart files at next assimilation time - export restart_interval=6 + # Write restart files, where $number is current model start time. + # restart_interval: $number + # number=0, writes out restart files at the end of forecast. + # number>0, writes out restart files at the frequency of $number and at the end of forecast. + # restart_interval: "$number -1" + # writes out restart files only once at $number forecast hour. + # restart_interval: "$number1 $number2 $number3 ..." + # writes out restart file at the specified forecast hours + export restart_interval=${restart_interval:-6} + + # For IAU, write restarts at beginning of window also + if [ $DOIAU = "YES" ]; then + export restart_interval="6 9" + if [[ "$SDATE" = "$CDATE" ]]; then export restart_interval="3 6"; fi + fi + + # Choose coupling with wave + if [ $DO_WAVE = "YES" ]; then export cplwav=".true." ; fi + + # Turn on dry mass adjustment in GDAS + export adjust_dry_mass=".true." elif [[ "$CDUMP" == "gfs" ]] ; then # GFS cycle specific parameters @@ -121,9 +219,41 @@ elif [[ "$CDUMP" == "gfs" ]] ; then # GFS cycle specific parameters fi # Write gfs restart files to rerun fcst from any break point - export restart_interval=${restart_interval_gfs:-0} + export restart_interval_gfs=${restart_interval_gfs:-0} + if [ $restart_interval_gfs -le 0 ]; then + export restart_interval=0 + else + rst_list="" + IAU_OFFSET=${IAU_OFFSET:-0} + [[ $DOIAU = "NO" ]] && export IAU_OFFSET=0 + xfh=$((restart_interval_gfs+(IAU_OFFSET/2))) + while [ $xfh -le $FHMAX_GFS ]; do + rst_list="$rst_list $xfh" + xfh=$((xfh+restart_interval_gfs)) + done + export restart_interval="$rst_list" + fi + + + # Choose coupling with wave + if [ $DO_WAVE = "YES" -a "$WAVE_CDUMP" != "gdas" ]; then + export cplwav=".true." + fi + + # Turn off dry mass adjustment in GFS + export adjust_dry_mass=".false." + + # Write each restart file in 16 small files to save time + export io_layout="4,4" + + fi + ## Debug load balancing + # export KEEPDATA="YES" + # export ESMF_RUNTIME_PROFILE=ON + # export ESMF_RUNTIME_PROFILE_OUTPUT=SUMMARY + # Regrid tiles to global Gaussian grid in NEMSIO export REGRID_NEMSIO_SH="$HOMEgfs/ush/fv3gfs_regrid_nemsio.sh" diff --git a/parm/config/config.fv3 b/parm/config/config.fv3 index 924924bc70..5f38177fed 100755 --- a/parm/config/config.fv3 +++ b/parm/config/config.fv3 @@ -19,6 +19,20 @@ case_in=$1 echo "BEGIN: config.fv3" + +if [[ "$machine" = "WCOSS_DELL_P3" ]]; then + export npe_node_max=28 +elif [[ "$machine" = "WCOSS_C" ]]; then + export npe_node_max=24 +elif [[ "$machine" = "THEIA" ]]; then + export npe_node_max=24 +elif [[ "$machine" = "JET" ]]; then + export npe_node_max=24 +elif [[ "$machine" = "HERA" ]]; then + export npe_node_max=40 +fi + + # (Standard) Model resolution dependent variables case $case_in in "C48") @@ -27,13 +41,15 @@ case $case_in in export layout_y=4 export layout_x_gfs=2 export layout_y_gfs=4 - export npe_node_fcst=24 + export npe_wav=14 + export npe_wav_gfs=14 export nth_fv3=1 - export cdmbgwd="0.062,3.5" # mountain blocking and gravity wave drag + export nth_fv3_gfs=1 + export cdmbgwd="0.071,2.1,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=1 - export WRTTASK_PER_GROUP=24 + export WRTTASK_PER_GROUP=$npe_node_max export WRITE_GROUP_GFS=1 - export WRTTASK_PER_GROUP_GFS=24 + export WRTTASK_PER_GROUP_GFS=$npe_node_max export WRTIOBUF="4M" ;; "C96") @@ -42,13 +58,15 @@ case $case_in in export layout_y=4 export layout_x_gfs=4 export layout_y_gfs=4 - export npe_node_fcst=24 + export npe_wav=14 + export npe_wav_gfs=14 export nth_fv3=1 - export cdmbgwd="0.125,3.0" # mountain blocking and gravity wave drag + export nth_fv3_gfs=1 + export cdmbgwd="0.14,1.8,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=1 - export WRTTASK_PER_GROUP=24 + export WRTTASK_PER_GROUP=$npe_node_max export WRITE_GROUP_GFS=1 - export WRTTASK_PER_GROUP_GFS=24 + export WRTTASK_PER_GROUP_GFS=$npe_node_max export WRTIOBUF="4M" ;; "C192") @@ -57,57 +75,66 @@ case $case_in in export layout_y=6 export layout_x_gfs=4 export layout_y_gfs=6 - export npe_node_fcst=12 + export npe_wav=21 + export npe_wav_gfs=21 export nth_fv3=2 - export cdmbgwd="0.2,2.5" # mountain blocking and gravity wave drag - export WRITE_GROUP=2 - export WRTTASK_PER_GROUP=24 + export nth_fv3_gfs=2 + export cdmbgwd="0.23,1.5,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling + export WRITE_GROUP=1 + export WRTTASK_PER_GROUP=$npe_node_max export WRITE_GROUP_GFS=2 - export WRTTASK_PER_GROUP_GFS=24 + export WRTTASK_PER_GROUP_GFS=$npe_node_max export WRTIOBUF="8M" ;; "C384") - export DELTIM=300 - export layout_x=4 - export layout_y=6 - export layout_x_gfs=4 + export DELTIM=240 + export layout_x=8 + export layout_y=8 + export layout_x_gfs=6 export layout_y_gfs=6 - export npe_node_fcst=12 - export nth_fv3=2 - export cdmbgwd="1.0,1.2" # mountain blocking and gravity wave drag + export npe_wav=35 + export npe_wav_gfs=35 + export nth_fv3=1 + export nth_fv3_gfs=1 + export cdmbgwd="1.1,0.72,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=1 - export WRTTASK_PER_GROUP=24 - export WRITE_GROUP_GFS=1 - export WRTTASK_PER_GROUP_GFS=24 + export WRTTASK_PER_GROUP=$npe_node_max + export WRITE_GROUP_GFS=2 + export WRTTASK_PER_GROUP_GFS=$npe_node_max export WRTIOBUF="16M" ;; "C768") - export DELTIM=225 - export layout_x=6 - export layout_y=8 + export DELTIM=150 + export layout_x=8 + export layout_y=12 export layout_x_gfs=16 export layout_y_gfs=16 - export npe_node_fcst=12 - export nth_fv3=2 - export cdmbgwd="3.5,0.25" # mountain blocking and gravity wave drag - export WRITE_GROUP=1 - export WRTTASK_PER_GROUP=48 - export WRITE_GROUP_GFS=4 - export WRTTASK_PER_GROUP_GFS=60 + export npe_wav=140 + export npe_wav_gfs=440 + export nth_fv3=4 + export nth_fv3_gfs=7 + export cdmbgwd="4.0,0.15,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling + export WRITE_GROUP=2 + export WRTTASK_PER_GROUP=$(echo "2*$npe_node_max" |bc) + export WRITE_GROUP_GFS=8 + export WRTTASK_PER_GROUP_GFS=$(echo "2*$npe_node_max" |bc) export WRTIOBUF="32M" ;; "C1152") - export DELTIM=150 + export DELTIM=120 export layout_x=8 export layout_y=16 export layout_x_gfs=8 export layout_y_gfs=16 - export npe_node_fcst=6 + export npe_wav=140 + export npe_wav_gfs=140 export nth_fv3=4 + export nth_fv3_gfs=4 + export cdmbgwd="4.0,0.10,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=4 - export WRTTASK_PER_GROUP=84 + export WRTTASK_PER_GROUP=$(echo "2*$npe_node_max" |bc) export WRITE_GROUP_GFS=4 - export WRTTASK_PER_GROUP_GFS=84 + export WRTTASK_PER_GROUP_GFS=$(echo "2*$npe_node_max" |bc) export WRTIOBUF="48M" ;; "C3072") @@ -116,12 +143,15 @@ case $case_in in export layout_y=32 export layout_x_gfs=16 export layout_y_gfs=32 - export npe_node_fcst=6 + export npe_wav=140 + export npe_wav_gfs=140 export nth_fv3=4 + export nth_fv3_gfs=4 + export cdmbgwd="4.0,0.05,1.0,1.0" # mountain blocking, ogwd, cgwd, cgwd src scaling export WRITE_GROUP=4 - export WRTTASK_PER_GROUP=120 + export WRTTASK_PER_GROUP=$(echo "3*$npe_node_max" |bc) export WRITE_GROUP_GFS=4 - export WRTTASK_PER_GROUP_GFS=120 + export WRTTASK_PER_GROUP_GFS=$(echo "3*$npe_node_max" |bc) export WRTIOBUF="64M" ;; *) diff --git a/parm/config/config.fv3ic b/parm/config/config.fv3ic index d290dc6779..eaed3892ea 100755 --- a/parm/config/config.fv3ic +++ b/parm/config/config.fv3ic @@ -9,10 +9,11 @@ echo "BEGIN: config.fv3ic" export wtime_fv3ic="00:30:00" export npe_fv3ic=1 export npe_node_fv3ic=1 -if [ $machine = THEIA ]; then +export nth_fv3ic=${NTHREADS_CHGRES:-24} +if [ $machine = HERA ]; then export npe_fv3ic=4 export npe_node_fv3ic=4 -fi -export nth_fv3ic=${NTHREADS_CHGRES:-24} + export nth_fv3ic=1 +fi echo "END: config.fv3ic" diff --git a/parm/config/config.gempak b/parm/config/config.gempak index 647f474e90..2bc49dcf17 100755 --- a/parm/config/config.gempak +++ b/parm/config/config.gempak @@ -8,6 +8,6 @@ echo "BEGIN: config.gempak" # Get task specific resources . $EXPDIR/config.resources gempak -export GEMPAKSH=$HOMEgfs/jobs/JGFS_GEMPAK +export GEMPAKSH=$HOMEgfs/jobs/JGFS_ATMOS_GEMPAK echo "END: config.gempak" diff --git a/parm/config/config.gldas b/parm/config/config.gldas new file mode 100755 index 0000000000..7456f9728c --- /dev/null +++ b/parm/config/config.gldas @@ -0,0 +1,16 @@ +#!/bin/ksh -x + +########## config.gldas ########## +# GDAS gldas step specific + +echo "BEGIN: config.gldas" + +# Get task specific resources +. $EXPDIR/config.resources gldas + +export GLDASSH=$HOMEgfs/scripts/exgdas_atmos_gldas.sh +export gldas_spinup_hours=72 +export CPCGAUGE=$DMPDIR + + +echo "END: config.gldas" diff --git a/parm/config/config.metp b/parm/config/config.metp new file mode 100755 index 0000000000..aaea79db62 --- /dev/null +++ b/parm/config/config.metp @@ -0,0 +1,69 @@ +#!/bin/ksh -x + +########## config.metp ########## +# METplus verification step specific + +echo "BEGIN: config.metp" + +# Get task specific resources +. $EXPDIR/config.resources metp + +export RUN_GRID2GRID_STEP1="YES" # Run grid-to-grid verification using METplus +export RUN_GRID2OBS_STEP1="YES" # Run grid-to-obs verification using METplus +export RUN_PRECIP_STEP1="YES" # Run precip verification using METplus + + +#---------------------------------------------------------- +# METplus, Verify grid-to-grid, and/or grid-to-obs, and/or precipitation options +#---------------------------------------------------------- + +if [ "$CDUMP" = "gfs" ] ; then + if [ $RUN_GRID2GRID_STEP1 = "YES" -o $RUN_GRID2OBS_STEP1 = "YES" -o $RUN_PRECIP_STEP1 = "YES" ]; then + export HOMEverif_global=${HOMEgfs}/sorc/verif-global.fd + export VERIF_GLOBALSH=$HOMEverif_global/ush/run_verif_global_in_global_workflow.sh + ## INPUT DATA SETTINGS + export model_list=$PSLOT + export model_data_dir_list=$ARCDIR/.. + export model_fileformat_list="pgbf{lead?fmt=%H}.${CDUMP}.{init?fmt=%Y%m%d%H}.grib2" + export model_hpssdir_list=$ATARDIR/.. + export get_data_from_hpss="NO" + export hpss_walltime="10" + ## OUTPUT SETTINGS + export OUTPUTROOT=$RUNDIR/$CDUMP/$CDATE/vrfy/metplus_exp + export model_arch_dir_list=$ARCDIR/.. + export make_met_data_by="VALID" + export gather_by="VSDB" + ## DATE SETTINGS + export VRFYBACK_HRS="24" + ## METPLUS SETTINGS + export METplus_verbosity="INFO" + export MET_verbosity="2" + export log_MET_output_to_METplus="yes" + ## FORECAST VERIFICATION SETTINGS + export fhr_min=$FHMIN_GFS + export fhr_max=$FHMAX_GFS + # GRID-TO-GRID STEP 1 + export g2g1_type_list="anom pres sfc" + export g2g1_anl_name="self_anl" + export g2g1_anl_fileformat_list="pgbanl.gfs.{valid?fmt=%Y%m%d%H}.grib2" + export g2g1_grid="G002" + # GRID-TO-OBS STEP 1 + export g2o1_type_list="upper_air conus_sfc" + export g2o1_obtype_upper_air="ADPUPA" + export g2o1_grid_upper_air="G003" + export g2o1_fhr_out_upper_air="6" + export g2o1_obtype_conus_sfc="ONLYSF ADPUPA" + export g2o1_grid_conus_sfc="G104" + export g2o1_fhr_out_conus_sfc="3" + export g2o1_prepbufr_data_runhpss="YES" + # PRECIP STEP 1 + export precip1_obtype="ccpa" + export precip1_accum_length="24" + export precip1_model_bucket_list="06" + export precip1_model_varname_list="APCP" + export precip1_model_fileformat_list="pgbf{lead?fmt=%H}.gfs.{init?fmt=%Y%m%d%H}.grib2" + export precip1_grid="G211" + fi +fi + +echo "END: config.metp" diff --git a/parm/config/config.post b/parm/config/config.post index a37cf4ffe9..4e33da0cbe 100755 --- a/parm/config/config.post +++ b/parm/config/config.post @@ -13,6 +13,11 @@ echo "BEGIN: config.post" # No. of concurrent post jobs [0 implies sequential] export NPOSTGRP=42 +export OUTTYP=4 +export MODEL_OUT_FORM=binarynemsiompiio +if [ $OUTPUT_FILE = "netcdf" ]; then + export MODEL_OUT_FORM=netcdfpara +fi # Post driver job that calls gfs_nceppost.sh and downstream jobs export POSTJJOBSH="$HOMEpost/jobs/JGLOBAL_NCEPPOST" @@ -22,13 +27,7 @@ export GFSDWNSH="$HOMEpost/ush/fv3gfs_dwn_nems.sh" export POSTGPSH="$HOMEpost/ush/gfs_nceppost.sh" export POSTGPEXEC="$HOMEpost/exec/gfs_ncep_post" export GOESF=YES # goes image -export GTGF=NO # gtg icing product export FLXF=YES # grib2 flux file written by post -export PGB1F=YES -if [ $RUN_ENVIR = "nco" ]; then - export PGB1F=NO - export GTGF=YES -fi export npe_postgp=$npe_post export nth_postgp=1 @@ -44,10 +43,4 @@ fi export GRIBVERSION='grib2' export SENDCOM="YES" -if [ $machine = "THEIA" ] ; then - export CRTM_FIX=/scratch3/NCEPDEV/nceplibs/dev/crtm/v2.2.3/fix -else - echo "UPP using CRTM_FIX = $CRTM_FIX" -fi - echo "END: config.post" diff --git a/parm/config/config.postsnd b/parm/config/config.postsnd index 9c68e5284e..33e7ea55c9 100755 --- a/parm/config/config.postsnd +++ b/parm/config/config.postsnd @@ -8,6 +8,6 @@ echo "BEGIN: config.postsnd" # Get task specific resources . $EXPDIR/config.resources postsnd -export POSTSNDSH=$HOMEgfs/jobs/JGFS_POSTSND +export POSTSNDSH=$HOMEgfs/jobs/JGFS_ATMOS_POSTSND echo "END: config.postsnd" diff --git a/parm/config/config.prep b/parm/config/config.prep index 379f36fd2a..8b84b1a0e1 100755 --- a/parm/config/config.prep +++ b/parm/config/config.prep @@ -10,12 +10,11 @@ echo "BEGIN: config.prep" export DO_MAKEPREPBUFR="YES" # if NO, will copy prepbufr from globaldump - # Relocation and syndata QC export PROCESS_TROPCY=${PROCESS_TROPCY:-NO} [[ $RUN_ENVIR == "nco" && $envir == "prod" ]] && export PROCESS_TROPCY="YES" export DO_RELOCATE="NO" -export TROPCYQCRELOSH="$HOMEgfs/scripts/extropcy_qc_reloc.sh.ecf" +export TROPCYQCRELOSH="$HOMEgfs/scripts/exglobal_atmos_tropcy_qc_reloc.sh" export SENDCOM=YES export HOMERELO=$HOMEgfs @@ -23,6 +22,35 @@ export EXECRELO=${HOMERELO}/exec export FIXRELO=${HOMERELO}/fix/fix_am export USHRELO=${HOMERELO}/ush -export dictionaries_ver=v3.3.0 +# Adjust observation error for GFS v16 parallels +# +# NOTE: Remember to set OBERROR in config.anal as PRVT is set below +# +# Set default prepobs_errtable.global +export PRVT=$FIXgsi/prepobs_errtable.global + + +# Set prepobs.errtable.global for GFS v16 retrospective parallels +if [[ $RUN_ENVIR == "emc" ]]; then + if [[ "$CDATE" -ge "2019021900" && "$CDATE" -lt "2019110706" ]]; then + export PRVT=$FIXgsi/gfsv16_historical/prepobs_errtable.global.2019021900 + fi + +# Place GOES-15 AMVs in monitor, assimilate GOES-17 AMVs, assimilate KOMPSAT-5 gps + if [[ "$CDATE" -ge "2019110706" && "$CDATE" -lt "2020040718" ]]; then + export PRVT=$FIXgsi/gfsv16_historical/prepobs_errtable.global.2019110706 + fi + +# NOTE: +# As of 2020040718, gfsv16_historical/prepobs_errtable.global.2020040718 is +# identical to ../prepobs_errtable.global. Thus, the logic below is not +# needed at this time + +# Set observation errors for type 135 (T) & 235 (uv) Canadian AMDAR observations +# if [[ "$CDATE" -ge "2020040718" && "$CDATE" -lt "YYYMMDDHH" ]]; then +# export PRVT=$EXPDIR/prepobs_errtable.global +# fi + +fi echo "END: config.prep" diff --git a/parm/config/config.prepbufr b/parm/config/config.prepbufr index f5ac80edec..c90a732c41 100755 --- a/parm/config/config.prepbufr +++ b/parm/config/config.prepbufr @@ -10,12 +10,8 @@ echo "BEGIN: config.prepbufr" # Set variables -#------------------------------ -if [ $machine = "THEIA" ]; then -#------------------------------ - - export GESROOT=/scratch4/NCEPDEV/rstprod/nwges/prod # set by module prod_envir on WCOSS_C - +if [ $machine = "HERA" ]; then + export GESROOT=/scratch1/NCEPDEV/rstprod # set by module prod_envir on WCOSS_C fi echo "END: config.prepbufr" diff --git a/parm/config/config.resources b/parm/config/config.resources index 294c35c89b..4ce335a65d 100755 --- a/parm/config/config.resources +++ b/parm/config/config.resources @@ -8,9 +8,12 @@ if [ $# -ne 1 ]; then echo "Must specify an input task argument to set resource variables!" echo "argument can be any one of the following:" - echo "anal fcst post vrfy arch" - echo "eobs eomg eupd ecen efcs epos earc" + echo "anal analcalc analdiag gldas fcst post vrfy metp arch echgres" + echo "eobs ediag eomg eupd ecen esfc efcs epos earc" + echo "waveinit waveprep wavepostsbs wavepostbndpnt wavepostpnt" + echo "wavegempak waveawipsbulls waveawipsgridded" echo "postsnd awips gempak" + echo "wafs wafsgrib2 wafsblending wafsgrib20p25 wafsblending0p25 wafsgcip" exit 1 fi @@ -19,71 +22,234 @@ step=$1 echo "BEGIN: config.resources" +if [[ "$machine" = "WCOSS_DELL_P3" ]]; then + export npe_node_max=28 + if [ "$QUEUE" = "dev2" -o "$QUEUE" = "devonprod2" -o "$QUEUE" = "devmax2" ]; then # WCOSS Dell 3.5 + export npe_node_max=40 + fi +elif [[ "$machine" = "WCOSS_C" ]]; then + export npe_node_max=24 +elif [[ "$machine" = "JET" ]]; then + export npe_node_max=24 +elif [[ "$machine" = "HERA" ]]; then + export npe_node_max=40 +fi + if [ $step = "prep" -o $step = "prepbufr" ]; then eval "export wtime_$step='00:45:00'" eval "export npe_$step=4" - eval "export npe_node_$step=4" + eval "export npe_node_$step=2" eval "export nth_$step=1" +elif [ $step = "waveinit" ]; then + + export wtime_waveinit="00:10:00" + export npe_waveinit=10 + export nth_waveinit=1 + export npe_node_waveinit=$(echo "$npe_node_max / $nth_waveinit" | bc) + export NTASKS=${npe_waveinit} + +elif [ $step = "waveprep" ]; then + + export wtime_waveprep="00:30:00" + export npe_waveprep=65 + export nth_waveprep=1 + export npe_node_waveprep=$(echo "$npe_node_max / $nth_waveprep" | bc) + export NTASKS=${npe_waveprep} + +elif [ $step = "wavepostsbs" ]; then + + export wtime_wavepostsbs="06:00:00" + export npe_wavepostsbs=10 + export nth_wavepostsbs=1 + export npe_node_wavepostsbs=$(echo "$npe_node_max / $nth_wavepostsbs" | bc) + export NTASKS=${npe_wavepostsbs} + +elif [ $step = "wavepostbndpnt" ]; then + + export wtime_wavepostbndpnt="01:00:00" + export npe_wavepostbndpnt=280 + export nth_wavepostbndpnt=1 + export npe_node_wavepostbndpnt=$(echo "$npe_node_max / $nth_wavepostbndpnt" | bc) + export NTASKS=${npe_wavepostbndpnt} + +elif [ $step = "wavepostpnt" ]; then + + export wtime_wavepostpnt="01:30:00" + export npe_wavepostpnt=280 + export nth_wavepostpnt=1 + export npe_node_wavepostpnt=$(echo "$npe_node_max / $nth_wavepostpnt" | bc) + export NTASKS=${npe_wavepostpnt} + +elif [ $step = "wavegempak" ]; then + + export wtime_wavegempak="01:00:00" + export npe_wavegempak=$npe_node_max + export nth_wavegempak=1 + export npe_node_wavegempak=$(echo "$npe_node_max / $nth_wavegempak" | bc) + export NTASKS=${npe_wavegempak} + +elif [ $step = "waveawipsbulls" ]; then + + export wtime_waveawipsbulls="00:30:00" + export npe_waveawipsbulls=$npe_node_max + export nth_waveawipsbulls=1 + export npe_node_waveawipsbulls=$(echo "$npe_node_max / $nth_waveawipsbulls" | bc) + export NTASKS=${npe_waveawipsbulls} + +elif [ $step = "waveawipsgridded" ]; then + + export wtime_waveawipsgridded="00:30:00" + export npe_waveawipsgridded=$npe_node_max + export nth_waveawipsgridded=1 + export npe_node_waveawipsgridded=$(echo "$npe_node_max / $nth_waveawipsgridded" | bc) + export NTASKS=${npe_waveawipsgridded} + elif [ $step = "anal" ]; then - export wtime_anal="02:30:00" - export npe_anal=480 - export npe_node_anal=2 - export nth_anal=12 - export nth_cycle=24 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_anal=14 - export nth_cycle=28 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_anal="3072M" + export wtime_anal="00:45:00" + export npe_anal=1000 + export nth_anal=4 + export npe_anal_gfs=1000 + if [ $CASE = "C384" ]; then + export npe_anal=160 + export nth_anal=10 fi + if [ $CASE = "C192" -o $CASE = "C96" -o $CASE = "C48" ]; then export npe_anal=84; fi + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export nth_anal=7; fi + export npe_node_anal=$(echo "$npe_node_max / $nth_anal" | bc) + export nth_cycle=$npe_node_max + if [[ "$machine" == "WCOSS_C" ]]; then export memory_anal="3072M"; fi + +elif [ $step = "analcalc" ]; then + + export wtime_analcalc="00:10:00" + export npe_analcalc=127 + export nth_analcalc=1 + export npe_node_analcalc=$npe_node_max + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export npe_analcalc=127 ; fi + +elif [ $step = "analdiag" ]; then + + export wtime_analdiag="00:10:00" + export npe_analdiag=112 + export nth_analdiag=1 + export npe_node_analdiag=$npe_node_max + if [[ "$machine" == "WCOSS_C" ]]; then export memory_analdiag="3072M"; fi + +elif [ $step = "gldas" ]; then + + export wtime_gldas="00:10:00" + export npe_gldas=96 + export nth_gldas=1 + export npe_node_gldas=$npe_node_max + export npe_gaussian=96 + export nth_gaussian=1 + export npe_node_gaussian=24 + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export npe_gldas=112 ; fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_gldas="3072M"; fi elif [ $step = "fcst" ]; then - export wtime_fcst="01:00:00" - export wtime_fcst_gfs="06:00:00" + export wtime_fcst="00:30:00" + export wtime_fcst_gfs="02:30:00" export npe_fcst=$(echo "$layout_x * $layout_y * 6" | bc) export npe_fcst_gfs=$(echo "$layout_x_gfs * $layout_y_gfs * 6" | bc) - export npe_node_fcst=${npe_node_fcst:-12} export nth_fcst=${nth_fv3:-2} - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_fcst="1024M" - fi + export npe_node_fcst=$(echo "$npe_node_max / $nth_fcst" | bc) + if [[ "$machine" == "WCOSS_C" ]]; then export memory_fcst="1024M"; fi elif [ $step = "post" ]; then export wtime_post="02:00:00" export wtime_post_gfs="06:00:00" - export npe_post=84 + export npe_post=112 export nth_post=1 export npe_node_post=12 - export npe_node_dwn=24 - if [[ "$machine" == "WCOSS_DELL_P3" ]]; then - export npe_node_post=14 - export npe_node_dwn=28 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_post="3072M" - fi + export npe_node_dwn=$npe_node_max + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export npe_node_post=28 ; fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_post="3072M"; fi + +elif [ $step = "wafs" ]; then + + export wtime_wafs="00:30:00" + export npe_wafs=1 + export npe_node_wafs=1 + export nth_wafs=1 + +elif [ $step = "wafsgcip" ]; then + + export wtime_wafsgcip="00:30:00" + export npe_wafsgcip=2 + export npe_node_wafsgcip=1 + export nth_wafsgcip=1 + +elif [ $step = "wafsgrib2" ]; then + + export wtime_wafsgrib2="00:30:00" + export npe_wafsgrib2=1 + export npe_node_wafsgrib2=1 + export nth_wafsgrib2=1 + +elif [ $step = "wafsblending" ]; then + + export wtime_wafsblending="00:30:00" + export npe_wafsblending=1 + export npe_node_wafsblending=1 + export nth_wafsblending=1 + +elif [ $step = "wafsgrib20p25" ]; then + + export wtime_wafsgrib20p25="00:30:00" + export npe_wafsgrib20p25=1 + export npe_node_wafsgrib20p25=1 + export nth_wafsgrib20p25=1 + +elif [ $step = "wafsblending0p25" ]; then + + export wtime_wafsblending0p25="00:30:00" + export npe_wafsblending0p25=1 + export npe_node_wafsblending0p25=1 + export nth_wafsblending0p25=1 elif [ $step = "vrfy" ]; then export wtime_vrfy="03:00:00" export wtime_vrfy_gfs="06:00:00" - export npe_vrfy=1 + export npe_vrfy=3 export nth_vrfy=1 export npe_node_vrfy=1 export npe_vrfy_gfs=1 export npe_node_vrfy_gfs=1 if [[ "$machine" == "WCOSS_C" ]]; then export memory_vrfy="3072M" - elif [[ "$machine" == "THEIA" ]]; then + elif [[ "$machine" == "HERA" ]]; then export memory_vrfy="16384M" fi +elif [ $step = "metp" ]; then + + export nth_metp=1 + export wtime_metp="03:00:00" + export npe_metp=4 + export npe_node_metp=4 + export wtime_metp_gfs="06:00:00" + export npe_metp_gfs=4 + export npe_node_metp_gfs=4 + if [[ "$machine" == "WCOSS_C" ]]; then + export memory_metp="3072M" + elif [[ "$machine" == "THEIA" ]]; then + export memory_metp="16384M" + fi + +elif [ $step = "echgres" ]; then + + export wtime_echgres="00:10:00" + export npe_echgres=3 + export nth_echgres=$npe_node_max + export npe_node_echgres=1 + elif [ $step = "arch" -o $step = "earc" -o $step = "getic" ]; then eval "export wtime_$step='06:00:00'" @@ -94,83 +260,110 @@ elif [ $step = "arch" -o $step = "earc" -o $step = "getic" ]; then elif [ $step = "eobs" -o $step = "eomg" ]; then - export wtime_eobs="00:30:00" + + export wtime_eobs="00:10:00" export wtime_eomg="01:00:00" - export npe_eobs=308 - export nth_eobs=1 - export npe_node_eobs=12 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export npe_node_eobs=28 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_eobs="3072M" + if [ $CASE = "C768" ]; then + export npe_eobs=480 + elif [ $CASE = "C384" ]; then + export npe_eobs=42 + elif [ $CASE = "C192" ]; then + export npe_eobs=28 + elif [ $CASE = "C96" -o $CASE = "C48" ]; then + export npe_eobs=14 fi + export nth_eobs=2 + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export nth_eobs=7; fi + export npe_node_eobs=$(echo "$npe_node_max / $nth_eobs" | bc) + if [[ "$machine" == "WCOSS_C" ]]; then export memory_eobs="3072M"; fi + +elif [ $step = "ediag" ]; then + + export wtime_ediag="00:06:00" + export npe_ediag=56 + export nth_ediag=1 + export npe_node_ediag=$npe_node_max + if [[ "$machine" == "WCOSS_C" ]]; then export memory_ediag="3072M"; fi elif [ $step = "eupd" ]; then export wtime_eupd="00:30:00" - export npe_eupd=360 - export npe_node_eupd=4 - export nth_eupd=6 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then + if [ $CASE = "C768" ]; then + export npe_eupd=960 + export nth_eupd=6 + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export nth_eupd=7 + fi + elif [ $CASE = "C384" ]; then + export npe_eupd=270 + export nth_eupd=2 + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then + export nth_eupd=9 + fi + if [[ "$machine" = "HERA" ]]; then + export npe_eupd=84 + export nth_eupd=10 + fi + elif [ $CASE = "C192" -o $CASE = "C96" -o $CASE = "C48" ]; then + export npe_eupd=42 + export nth_eupd=2 fi + export npe_node_eupd=$(echo "$npe_node_max / $nth_eupd" | bc) if [[ "$machine" == "WCOSS_C" ]]; then export memory_eupd="3072M" fi elif [ $step = "ecen" ]; then - export wtime_ecen="01:00:00" + export wtime_ecen="00:10:00" export npe_ecen=80 - export npe_node_ecen=4 export nth_ecen=6 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_ecen=7 - fi + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export nth_ecen=7; fi + if [ $CASE = "C384" -o $CASE = "C192" -o $CASE = "C96" -o $CASE = "C48" ]; then export nth_ecen=2; fi + export npe_node_ecen=$(echo "$npe_node_max / $nth_ecen" | bc) export nth_cycle=$nth_ecen - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_ecen="3072M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_ecen="3072M"; fi + +elif [ $step = "esfc" ]; then + + export wtime_esfc="00:06:00" + export npe_esfc=80 + export npe_node_esfc=$npe_node_max + export nth_esfc=1 + export nth_cycle=$nth_esfc + if [[ "$machine" == "WCOSS_C" ]]; then export memory_esfc="3072M"; fi elif [ $step = "efcs" ]; then - export wtime_efcs="03:00:00" + export wtime_efcs="00:40:00" export npe_efcs=$(echo "$layout_x * $layout_y * 6" | bc) - export npe_node_efcs=${npe_node_fcst:-12} export nth_efcs=${nth_fv3:-2} - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_efcs="254M" - fi + export npe_node_efcs=$(echo "$npe_node_max / $nth_efcs" | bc) + if [[ "$machine" == "WCOSS_C" ]]; then export memory_efcs="254M"; fi elif [ $step = "epos" ]; then - export wtime_epos="02:00:00" + export wtime_epos="00:15:00" export npe_epos=80 - export npe_node_epos=4 export nth_epos=6 - if [[ "$machine" = "WCOSS_DELL_P3" ]]; then - export nth_epos=7 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_epos="254M" - fi + if [[ "$machine" = "WCOSS_DELL_P3" ]]; then export nth_epos=7; fi + export npe_node_epos=$(echo "$npe_node_max / $nth_epos" | bc) + if [[ "$machine" == "WCOSS_C" ]]; then export memory_epos="254M"; fi elif [ $step = "postsnd" ]; then export wtime_postsnd="02:00:00" - export npe_postsnd=12 + export npe_postsnd=40 export nth_postsnd=1 - export npe_node_postsnd=3 - export npe_postsndcfp=10 + export npe_node_postsnd=5 + export npe_postsndcfp=9 export npe_node_postsndcfp=3 - if [[ "$machine" == "WCOSS_DELL_P3" ]]; then + if [ $OUTPUT_FILE == "nemsio" ]; then + export npe_postsnd=13 export npe_node_postsnd=4 - export npe_postsndcfp=9 - fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_postsnd="254M" fi + if [[ "$machine" = "HERA" ]]; then export npe_node_postsnd=2; fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_postsnd="254M"; fi elif [ $step = "awips" ]; then @@ -183,9 +376,7 @@ elif [ $step = "awips" ]; then export npe_node_awips=2 export nth_awips=1 fi - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_awips="2048M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_awips="2048M"; fi elif [ $step = "gempak" ]; then @@ -193,9 +384,7 @@ elif [ $step = "gempak" ]; then export npe_gempak=17 export npe_node_gempak=4 export nth_gempak=3 - if [[ "$machine" == "WCOSS_C" ]]; then - export memory_gempak="254M" - fi + if [[ "$machine" == "WCOSS_C" ]]; then export memory_gempak="254M"; fi else diff --git a/parm/config/config.resources.nco.static b/parm/config/config.resources.nco.static new file mode 100755 index 0000000000..a6a2c88c0a --- /dev/null +++ b/parm/config/config.resources.nco.static @@ -0,0 +1,323 @@ +#!/bin/ksh -x + +########## config.resources ########## +# Set resource information for job tasks +# e.g. walltime, node, cores per node, memory etc. + +if [ $# -ne 1 ]; then + + echo "Must specify an input task argument to set resource variables!" + echo "argument can be any one of the following:" + echo "anal analcalc analdiag gldas fcst post vrfy metp arch echgres" + echo "eobs ediag eomg eupd ecen esfc efcs epos earc" + echo "waveinit waveprep wavepostsbs wavepostbndpnt wavepostpnt" + echo "wavegempak waveawipsbulls waveawipsgridded" + echo "postsnd awips gempak" + echo "wafs wafsgrib2 wafsblending wafsgrib20p25 wafsblending0p25 wafsgcip" + exit 1 + +fi + +step=$1 + +echo "BEGIN: config.resources" + +export npe_node_max=28 +if [ "$QUEUE" = "dev2" -o "$QUEUE" = "devonprod2" -o "$QUEUE" = "devmax2" ]; then # WCOSS Dell 3.5 + export npe_node_max=40 +fi + +if [ $step = "prep" -o $step = "prepbufr" ]; then + + eval "export wtime_$step='00:45:00'" + eval "export npe_$step=4" + eval "export npe_node_$step=2" + eval "export nth_$step=1" + +elif [ $step = "waveinit" ]; then + + export wtime_waveinit="00:10:00" + export npe_waveinit=12 + export nth_waveinit=1 + export npe_node_waveinit=$(echo "$npe_node_max / $nth_waveinit" | bc) + export NTASKS=${npe_waveinit} + +elif [ $step = "waveprep" ]; then + + export wtime_waveprep="00:10:00" + export wtime_waveprep_gfs="00:30:00" + export npe_waveprep=84 + export nth_waveprep=1 + export npe_node_waveprep=$(echo "$npe_node_max / $nth_waveprep" | bc) + export NTASKS=${npe_waveprep} + +elif [ $step = "wavepostsbs" ]; then + + export wtime_wavepostsbs="00:20:00" + export wtime_wavepostsbs_gfs="03:00:00" + export npe_wavepostsbs=28 + export npe_wavepostsbs_gfs=280 + export nth_wavepostsbs=1 + export npe_node_wavepostsbs=$(echo "$npe_node_max / $nth_wavepostsbs" | bc) + export NTASKS=${npe_wavepostsbs} + +elif [ $step = "wavepostbndpnt" ]; then + + export wtime_wavepostbndpnt="01:00:00" + export npe_wavepostbndpnt=280 + export nth_wavepostbndpnt=1 + export npe_node_wavepostbndpnt=$(echo "$npe_node_max / $nth_wavepostbndpnt" | bc) + export NTASKS=${npe_wavepostbndpnt} + +elif [ $step = "wavepostpnt" ]; then + + export wtime_wavepostpnt="00:12:00" + export wtime_wavepostpnt_gfs="01:30:00" + export npe_wavepostpnt=280 + export nth_wavepostpnt=1 + export npe_node_wavepostpnt=$(echo "$npe_node_max / $nth_wavepostpnt" | bc) + export NTASKS=${npe_wavepostpnt} + +elif [ $step = "wavegempak" ]; then + + export wtime_wavegempak="01:00:00" + export npe_wavegempak=$npe_node_max + export nth_wavegempak=1 + export npe_node_wavegempak=$(echo "$npe_node_max / $nth_wavegempak" | bc) + export NTASKS=${npe_wavegempak} + +elif [ $step = "waveawipsbulls" ]; then + + export wtime_waveawipsbulls="00:30:00" + export npe_waveawipsbulls=$npe_node_max + export nth_waveawipsbulls=1 + export npe_node_waveawipsbulls=$(echo "$npe_node_max / $nth_waveawipsbulls" | bc) + export NTASKS=${npe_waveawipsbulls} + +elif [ $step = "waveawipsgridded" ]; then + + export wtime_waveawipsgridded="00:30:00" + export npe_waveawipsgridded=$npe_node_max + export nth_waveawipsgridded=1 + export npe_node_waveawipsgridded=$(echo "$npe_node_max / $nth_waveawipsgridded" | bc) + export NTASKS=${npe_waveawipsgridded} + +elif [ $step = "anal" ]; then + + export wtime_anal="01:00:00" + export wtime_anal_gfs="00:40:00" + export npe_anal=1000 + export npe_anal_gfs=1000 + export nth_anal=7 + export npe_node_anal=$(echo "$npe_node_max / $nth_anal" | bc) + export nth_cycle=$npe_node_max + +elif [ $step = "analcalc" ]; then + + export wtime_analcalc="00:10:00" + export npe_analcalc=127 + export nth_analcalc=1 + export npe_node_analcalc=$npe_node_max + +elif [ $step = "analdiag" ]; then + + export wtime_analdiag="00:10:00" + export npe_analdiag=112 + export nth_analdiag=1 + export npe_node_analdiag=$npe_node_max + +elif [ $step = "gldas" ]; then + + export wtime_gldas="00:20:00" + export npe_gldas=112 + export nth_gldas=1 + export npe_node_gldas=$npe_node_max + export npe_gaussian=96 + export nth_gaussian=1 + export npe_node_gaussian=24 + +elif [ $step = "fcst" ]; then + + export wtime_fcst="01:00:00" + export wtime_fcst_gfs="02:30:00" + export npe_fcst=$(echo "$layout_x * $layout_y * 6" | bc) + export npe_fcst_gfs=$(echo "$layout_x_gfs * $layout_y_gfs * 6" | bc) + export nth_fcst=${nth_fv3:-2} + export npe_node_fcst=$(echo "$npe_node_max / $nth_fcst" | bc) + +elif [ $step = "post" ]; then + + export wtime_post="00:12:00" + export wtime_post_gfs="00:20:00" + export npe_post=98 + export npe_post_gfs=112 + export nth_post=1 + export npe_node_post=14 + export npe_node_post_gfs=28 + export npe_node_dwn=$npe_node_max + +elif [ $step = "wafs" ]; then + + export wtime_wafs="00:30:00" + export npe_wafs=1 + export npe_node_wafs=1 + export nth_wafs=1 + +elif [ $step = "wafsgcip" ]; then + + export wtime_wafsgcip="00:30:00" + export npe_wafsgcip=2 + export npe_node_wafsgcip=1 + export nth_wafsgcip=1 + +elif [ $step = "wafsgrib2" ]; then + + export wtime_wafsgrib2="00:30:00" + export npe_wafsgrib2=1 + export npe_node_wafsgrib2=1 + export nth_wafsgrib2=1 + +elif [ $step = "wafsblending" ]; then + + export wtime_wafsblending="00:30:00" + export npe_wafsblending=1 + export npe_node_wafsblending=1 + export nth_wafsblending=1 + +elif [ $step = "wafsgrib20p25" ]; then + + export wtime_wafsgrib20p25="00:30:00" + export npe_wafsgrib20p25=1 + export npe_node_wafsgrib20p25=1 + export nth_wafsgrib20p25=1 + +elif [ $step = "wafsblending0p25" ]; then + + export wtime_wafsblending0p25="00:30:00" + export npe_wafsblending0p25=1 + export npe_node_wafsblending0p25=1 + export nth_wafsblending0p25=1 + +elif [ $step = "vrfy" ]; then + + export wtime_vrfy="03:00:00" + export wtime_vrfy_gfs="06:00:00" + export npe_vrfy=3 + export nth_vrfy=1 + export npe_node_vrfy=1 + export npe_vrfy_gfs=1 + export npe_node_vrfy_gfs=1 + +elif [ $step = "metp" ]; then + + export nth_metp=1 + export wtime_metp="03:00:00" + export npe_metp=4 + export npe_node_metp=4 + export wtime_metp_gfs="06:00:00" + export npe_metp_gfs=4 + export npe_node_metp_gfs=4 + +elif [ $step = "echgres" ]; then + + export wtime_echgres="00:10:00" + export npe_echgres=3 + export nth_echgres=$npe_node_max + export npe_node_echgres=1 + +elif [ $step = "arch" -o $step = "earc" -o $step = "getic" ]; then + + eval "export wtime_$step='06:00:00'" + eval "export npe_$step=1" + eval "export npe_node_$step=1" + eval "export nth_$step=1" + eval "export memory_$step=2048M" + +elif [ $step = "eobs" -o $step = "eomg" ]; then + + + export wtime_eobs="00:10:00" + export wtime_eomg="01:00:00" + export npe_eobs=480 + export nth_eobs=7 + export npe_node_eobs=$(echo "$npe_node_max / $nth_eobs" | bc) + +elif [ $step = "ediag" ]; then + + export wtime_ediag="00:06:00" + export npe_ediag=56 + export nth_ediag=1 + export npe_node_ediag=$npe_node_max + +elif [ $step = "eupd" ]; then + + export wtime_eupd="00:30:00" + export npe_eupd=960 + export nth_eupd=7 + export npe_node_eupd=$(echo "$npe_node_max / $nth_eupd" | bc) + +elif [ $step = "ecen" ]; then + + export wtime_ecen="00:10:00" + export npe_ecen=80 + export nth_ecen=7 + export npe_node_ecen=$(echo "$npe_node_max / $nth_ecen" | bc) + export nth_cycle=$nth_ecen + +elif [ $step = "esfc" ]; then + + export wtime_esfc="00:06:00" + export npe_esfc=80 + export npe_node_esfc=$npe_node_max + export nth_esfc=1 + export nth_cycle=$nth_esfc + +elif [ $step = "efcs" ]; then + + export wtime_efcs="00:40:00" + export npe_efcs=$(echo "$layout_x * $layout_y * 6" | bc) + export nth_efcs=${nth_fv3:-2} + export npe_node_efcs=$(echo "$npe_node_max / $nth_efcs" | bc) + +elif [ $step = "epos" ]; then + + export wtime_epos="00:15:00" + export npe_epos=80 + export nth_epos=7 + export npe_node_epos=$(echo "$npe_node_max / $nth_epos" | bc) + +elif [ $step = "postsnd" ]; then + + export wtime_postsnd="02:00:00" + export npe_postsnd=40 + export nth_postsnd=1 + export npe_node_postsnd=5 + export npe_postsndcfp=9 + export npe_node_postsndcfp=3 + if [ $OUTPUT_FILE == "nemsio" ]; then + export npe_postsnd=13 + export npe_node_postsnd=4 + fi + +elif [ $step = "awips" ]; then + + export wtime_awips="03:30:00" + export npe_awips=2 + export npe_node_awips=2 + export nth_awips=1 + +elif [ $step = "gempak" ]; then + + export wtime_gempak="02:00:00" + export npe_gempak=17 + export npe_node_gempak=4 + export nth_gempak=3 + +else + + echo "Invalid step = $step, ABORT!" + exit 2 + +fi + +echo "END: config.resources" diff --git a/parm/config/config.vrfy b/parm/config/config.vrfy index 80bb89e75a..841f3a8d0a 100755 --- a/parm/config/config.vrfy +++ b/parm/config/config.vrfy @@ -8,23 +8,23 @@ echo "BEGIN: config.vrfy" # Get task specific resources . $EXPDIR/config.resources vrfy -export VDUMP="gfs" # verifying dump -export CDUMPFCST="gdas" # Fit-to-obs with GDAS/GFS prepbufr -export CDFNL="gdas" # Scores verification against GDAS/GFS analysis +export VDUMP="gfs" # Verifying dump +export CDUMPFCST="gdas" # Fit-to-obs with GDAS/GFS prepbufr +export CDFNL="gdas" # Scores verification against GDAS/GFS analysis -export MKPGB4PRCP="YES" # make 0.25-deg pgb files in ARCDIR for precip verification -export VRFYFITS="YES" # Fit to observations -export VSDB_STEP1="YES" # populate VSDB database +export MKPGB4PRCP="YES" # Make 0.25-deg pgb files in ARCDIR for precip verification +export VRFYFITS="YES" # Fit to observations +export VSDB_STEP1="YES" # Populate VSDB database export VSDB_STEP2="NO" -export VRFYG2OBS="YES" # Grid to observations, see note below if turning ON -export VRFYPRCP="YES" # Precip threat scores -export VRFYRAD="YES" # Radiance data assimilation monitoring -export VRFYOZN="YES" # Ozone data assimilation monitoring -export VRFYMINMON="YES" # GSI minimization monitoring -export VRFYTRAK="YES" # Hurricane track verification -export VRFYGENESIS="YES" # Cyclone genesis verification -export RUNMOS="YES" # whether to run entire MOS package - +export VRFYG2OBS="YES" # Grid to observations, see note below if turning ON +export VRFYPRCP="YES" # Precip threat scores +export VRFYRAD="YES" # Radiance data assimilation monitoring +export VRFYOZN="YES" # Ozone data assimilation monitoring +export VRFYMINMON="YES" # GSI minimization monitoring +export VRFYTRAK="YES" # Hurricane track verification +export VRFYGENESIS="YES" # Cyclone genesis verification +export VRFYFSU="NO" # Cyclone genesis verification (FSU) +export RUNMOS="NO" # whether to run entire MOS package #------------------------------------------------- # Fit to Observations @@ -33,18 +33,25 @@ export RUNMOS="YES" # whether to run entire MOS package if [ $VRFYFITS = "YES" ]; then export PRVT=$HOMEgfs/fix/fix_gsi/prepobs_errtable.global - export HYBLEVS=$HOMEgfs/fix/fix_am/global_hyblev.l65.txt + export HYBLEVS=$HOMEgfs/fix/fix_am/global_hyblev.l${LEVS}.txt export CUE2RUN=$QUEUE + export VBACKUP_FITS=24 + + export CONVNETC="NO" + if [ ${netcdf_diag:-".false."} = ".true." ]; then + export CONVNETC="YES" + fi + if [ $machine = "WCOSS_C" ]; then - export fitdir="$BASE_SVN/verif/global/parafits.fv3nems/batrun" + export fitdir="$BASE_GIT/verif/global/parafits.fv3nems/batrun" export PREPQFITSH="$fitdir/subfits_cray_nems" elif [ $machine = "WCOSS_DELL_P3" ]; then - export fitdir="$BASE_SVN/verif/global/parafits.fv3nems/batrun" + export fitdir="$BASE_GIT/verif/global/Fit2Obs/newm.1.3/batrun" export PREPQFITSH="$fitdir/subfits_dell_nems" - elif [ $machine = "THEIA" ]; then - export fitdir="$BASE_SVN/verif/global/parafits.fv3nems/batrun" - export PREPQFITSH="$fitdir/subfits_theia_nems" + elif [ $machine = "HERA" ]; then + export fitdir="$BASE_GIT/verif/global/Fit2Obs/newm.1.3/batrun" + export PREPQFITSH="$fitdir/subfits_hera_slurm" fi fi @@ -65,6 +72,7 @@ if [ "$CDUMP" = "gfs" ] ; then export vsdbsave="$NOSCRUB/archive/vsdb_data" # place to save vsdb database export vsdbhome=$BASE_VERIF # location of global verification scripts export VSDBSH="$vsdbhome/vsdbjob.sh" # VSDB job script + export VSDBJOBSH=$SCRgfs/vsdbjob_submit.sh # VSDB submission job export vlength=$FHMAX_GFS # verification length export vhr_rain=$FHMAX_GFS # verification length for precip export ftyplist="pgbq" # verif. files used for computing QPF ETS scores @@ -95,12 +103,7 @@ if [ $VRFYRAD = "YES" -o $VRFYMINMON = "YES" -o $VRFYOZN = "YES" ]; then export RADMON_SUFFIX=$PSLOT export TANKverf="$NOSCRUB/monitor/radmon" - if [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" -o $machine = "THEIA" ]; then - export VRFYRADSH="$HOMEgfs/jobs/JGDAS_VERFRAD" - else - echo "WARNING: Radiance monitoring is not enabled on $machine!" - export VRFYRAD="NO" - fi + export VRFYRADSH="$HOMEgfs/jobs/JGDAS_ATMOS_VERFRAD" fi @@ -109,15 +112,10 @@ if [ $VRFYRAD = "YES" -o $VRFYMINMON = "YES" -o $VRFYOZN = "YES" ]; then export MINMON_SUFFIX=$PSLOT export M_TANKverf="$NOSCRUB/monitor/minmon" - if [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" -o $machine = "THEIA" ]; then - if [[ "$CDUMP" = "gdas" ]] ; then - export VRFYMINSH="$HOMEgfs/jobs/JGDAS_VMINMON" - elif [[ "$CDUMP" = "gfs" ]] ; then - export VRFYMINSH="$HOMEgfs/jobs/JGFS_VMINMON" - fi - else - echo "WARNING: Minimization monitoring is not enabled on $machine!" - export VRFYMINMON="NO" + if [[ "$CDUMP" = "gdas" ]] ; then + export VRFYMINSH="$HOMEgfs/jobs/JGDAS_ATMOS_VMINMON" + elif [[ "$CDUMP" = "gfs" ]] ; then + export VRFYMINSH="$HOMEgfs/jobs/JGFS_ATMOS_VMINMON" fi fi @@ -128,12 +126,7 @@ if [ $VRFYRAD = "YES" -o $VRFYMINMON = "YES" -o $VRFYOZN = "YES" ]; then export HOMEgfs_ozn="$HOMEgfs" export OZNMON_SUFFIX=$PSLOT export TANKverf_ozn="$NOSCRUB/monitor/oznmon" - if [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" -o $machine = "THEIA" ]; then - export VRFYOZNSH="$HOMEgfs/jobs/JGDAS_VERFOZN" - else - echo "WARNING: Ozone monitoring is not enabled on $machine!" - export VRFYOZN="NO" - fi + export VRFYOZNSH="$HOMEgfs/jobs/JGDAS_ATMOS_VERFOZN" fi @@ -144,25 +137,16 @@ fi # Cyclone genesis and cyclone track verification #------------------------------------------------- -if [ $machine = "WCOSS_C" ] ; then - export ens_tracker_ver=v1.1.13.1 - export HOMEens_tracker=$BASE_GIT/ens_tracker.${ens_tracker_ver} -elif [ $machine = "WCOSS_DELL_P3" ] ; then - export ens_tracker_ver=v1.1.13.1 - export HOMEens_tracker=$BASE_GIT/ens_tracker.${ens_tracker_ver} -elif [ $machine = "THEIA" ] ; then - export ens_tracker_ver=v1.1.13.2 - export HOMEens_tracker=$BASE_GIT/tracker/ens_tracker.${ens_tracker_ver} -else - echo "WARNING: Genesis and cyclone verifications are not enabled on $machine!" - export VRFYGENESIS="NO" - export VRFYTRAK="NO" +export ens_tracker_ver=v1.1.15.1 +if [ $machine = "WCOSS_DELL_P3" ] ; then + export ens_tracker_ver=v1.1.15.3 fi +export HOMEens_tracker=$BASE_GIT/tracker/ens_tracker.${ens_tracker_ver} if [ "$VRFYTRAK" = "YES" ]; then - export TRACKERSH="$HOMEgfs/jobs/JGFS_CYCLONE_TRACKER" + export TRACKERSH="$HOMEgfs/jobs/JGFS_ATMOS_CYCLONE_TRACKER" if [ "$CDUMP" = "gdas" ]; then export FHOUT_CYCLONE=3 export FHMAX_CYCLONE=$FHMAX @@ -170,22 +154,23 @@ if [ "$VRFYTRAK" = "YES" ]; then export FHOUT_CYCLONE=6 export FHMAX_CYCLONE=$(( FHMAX_GFS<240 ? FHMAX_GFS : 240 )) fi - if [ $machine = "THEIA" ]; then - export COMROOTp1="/scratch4/NCEPDEV/rstprod/com" - export COMINsyn="$COMROOTp1/arch/prod/syndat" + if [ $machine = "HERA" ]; then + export COMROOTp1="/scratch1/NCEPDEV/global/glopara/com" + export COMINsyn=${COMINsyn:-${COMROOTp1}/gfs/prod/syndat} + else + export COMINsyn=${COMINsyn:-${COMROOT}/gfs/prod/syndat} fi fi if [[ "$VRFYGENESIS" == "YES" && "$CDUMP" == "gfs" ]]; then - if [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" -o $machine = "THEIA" ] ; then - export GENESISSH="$HOMEgfs/jobs/JGFS_CYCLONE_GENESIS" - else - echo "WARNING: Genesis verification is not enabled on $machine!" - export VRFYGENESIS="NO" - export GENESISSH="" - fi + export GENESISSH="$HOMEgfs/jobs/JGFS_ATMOS_CYCLONE_GENESIS" +fi + +if [[ "$VRFYFSU" == "YES" && "$CDUMP" == "gfs" ]]; then + + export GENESISFSU="$HOMEgfs/jobs/JGFS_ATMOS_FSU_GENESIS" fi if [[ "$RUNMOS" == "YES" && "$CDUMP" == "gfs" ]]; then @@ -194,6 +179,8 @@ if [[ "$RUNMOS" == "YES" && "$CDUMP" == "gfs" ]]; then export RUNGFSMOSSH="$HOMEgfs/scripts/run_gfsmos_master.sh.cray" elif [ $machine = "WCOSS_DELL_P3" ] ; then export RUNGFSMOSSH="$HOMEgfs/scripts/run_gfsmos_master.sh.dell" + elif [ $machine = "HERA" ] ; then + export RUNGFSMOSSH="$HOMEgfs/scripts/run_gfsmos_master.sh.hera" else echo "WARNING: MOS package is not enabled on $machine!" export RUNMOS="NO" diff --git a/parm/config/config.wafs b/parm/config/config.wafs new file mode 100755 index 0000000000..8bf5577030 --- /dev/null +++ b/parm/config/config.wafs @@ -0,0 +1,14 @@ +#!/bin/ksh -x + +########## config.wafs ########## + +echo "BEGIN: config.wafs" + +# Get task specific resources +. $EXPDIR/config.resources wafs + +export COMIN=$COMINatmos +export COMOUT=$COMOUTatmos +export SENDCOM="YES" + +echo "END: config.wafs" diff --git a/parm/config/config.wafsblending b/parm/config/config.wafsblending new file mode 100755 index 0000000000..dfd7d1715e --- /dev/null +++ b/parm/config/config.wafsblending @@ -0,0 +1,14 @@ +#!/bin/ksh -x + +########## config.wafsblending ########## + +echo "BEGIN: config.wafsblending" + +# Get task specific resources +. $EXPDIR/config.resources wafsblending + +export COMIN=$COMINatmos +export COMOUT=$COMOUTatmos +export SENDCOM="YES" + +echo "END: config.wafsblending" diff --git a/parm/config/config.wafsblending0p25 b/parm/config/config.wafsblending0p25 new file mode 100755 index 0000000000..28a2de90ff --- /dev/null +++ b/parm/config/config.wafsblending0p25 @@ -0,0 +1,14 @@ +#!/bin/ksh -x + +########## config.wafsblending0p25 ########## + +echo "BEGIN: config.wafsblending0p25" + +# Get task specific resources +. $EXPDIR/config.resources wafsblending0p25 + +export COMIN=$COMINatmos +export COMOUT=$COMOUTatmos +export SENDCOM="YES" + +echo "END: config.wafsblending0p25" diff --git a/parm/config/config.wafsgcip b/parm/config/config.wafsgcip new file mode 100755 index 0000000000..5c166a541b --- /dev/null +++ b/parm/config/config.wafsgcip @@ -0,0 +1,15 @@ +#!/bin/ksh -x + +########## config.wafsgcip ########## + +echo "BEGIN: config.wafsgcip" + +# Get task specific resources +. $EXPDIR/config.resources wafsgcip + +export COMIN=$COMINatmos +export COMINgfs=$COMIN +export COMOUT=$COMOUTatmos +export SENDCOM="YES" + +echo "END: config.wafsgcip" diff --git a/parm/config/config.wafsgrib2 b/parm/config/config.wafsgrib2 new file mode 100755 index 0000000000..27b137cd8c --- /dev/null +++ b/parm/config/config.wafsgrib2 @@ -0,0 +1,15 @@ +#!/bin/ksh -x + +########## config.wafsgrib2 ########## +# Post specific + +echo "BEGIN: config.wafsgrib2" + +# Get task specific resources +. $EXPDIR/config.resources wafsgrib2 + +export COMIN=$COMINatmos +export COMOUT=$COMOUTatmos +export SENDCOM="YES" + +echo "END: config.wafsgrib2" diff --git a/parm/config/config.wafsgrib20p25 b/parm/config/config.wafsgrib20p25 new file mode 100755 index 0000000000..8b55333c00 --- /dev/null +++ b/parm/config/config.wafsgrib20p25 @@ -0,0 +1,14 @@ +#!/bin/ksh -x + +########## config.wafsgrib20p25 ########## + +echo "BEGIN: config.wafsgrib20p25" + +# Get task specific resources +. $EXPDIR/config.resources wafsgrib20p25 + +export COMIN=$COMINatmos +export COMOUT=$COMOUTatmos +export SENDCOM="YES" + +echo "END: config.wafsgrib20p25" diff --git a/parm/config/config.wave b/parm/config/config.wave new file mode 100755 index 0000000000..903bb765a1 --- /dev/null +++ b/parm/config/config.wave @@ -0,0 +1,119 @@ +#!/bin/ksh -x + +########## config.wave ########## +# Wave steps specific + +echo "BEGIN: config.wave" + +# Parameters that are common to all wave model steps + +# System and version +export wave_sys_ver=v1.0.0 + +# This config contains variables/parameters used in the fcst step +# Some others are also used across the workflow in wave component scripts + +# General runtime labels +export CDUMPwave="${CDUMP}wave" + +# In GFS/GDAS, restart files are generated/read from gdas runs +export CDUMPRSTwave="gdas" + +# Grids for wave model +# GFSv16 +export waveGRD='gnh_10m aoc_9km gsh_15m' +export waveGRDN='1 2 3' # gridnumber for ww3_multi +export waveGRDG='10 20 30' # gridgroup for ww3_multi + +# ESMF input grid +export waveesmfGRD='glox_10m' # input grid + +# Grids for input fields +export WAVEICE_DID=sice +export WAVEICE_FID=glix_10m +export WAVECUR_DID=rtofs +export WAVECUR_FID=glix_10m +export WAVEWND_DID= +export WAVEWND_FID= + +# Grids for output fields (used in all steps) +export waveuoutpGRD=points +export waveinterpGRD='glo_15mxt at_10m ep_10m wc_10m glo_30m' # Grids that need to be interpolated from native + # in POST will generate grib unless gribOK not set +export wavesbsGRD='' # side-by-side grids generated as wave model runs, writes to com +export wavepostGRD='gnh_10m aoc_9km gsh_15m' # Native grids that will be post-processed (grib2) + + +# The start time reflects the number of hindcast hours prior to the cycle initial time +if [ "$CDUMP" = "gdas" ]; then + export FHMAX_WAV=${FHMAX:-9} +else + export FHMAX_WAV=$FHMAX_GFS +fi +export WAVHINDH=${WAVHINDH:-0} +export FHMIN_WAV=${FHMIN_WAV:-0} +export FHOUT_WAV=${FHOUT_WAV:-3} +export FHMAX_HF_WAV=${FHMAX_HF_WAV:-120} +export FHOUT_HF_WAV=${FHOUT_HF_WAV:-1} + +# gridded and point output rate +export DTFLD_WAV=`expr $FHOUT_HF_WAV \* 3600` +export DTPNT_WAV=3600 +export FHINCP_WAV=`expr $DTPNT_WAV / 3600` + +# Selected output parameters (gridded) +export OUTPARS_WAV="WND HS FP DP PHS PTP PDIR" + +# Restart file config +if [ "$CDUMP" = "gdas" ]; then + WAVNCYC=4 + WAVHCYC=${assim_freq:-6} + FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-48} # RTOFS forecasts only out to 8 days +elif [ ${gfs_cyc} -ne 0 ]; then + FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-192} # RTOFS forecasts only out to 8 days + WAVHCYC=${assim_freq:-6} +else + WAVHCYC=0 + FHMAX_WAV_CUR=${FHMAX_WAV_CUR:-192} # RTOFS forecasts only out to 8 days +fi +export FHMAX_WAV_CUR WAVHCYC WAVNCYC + +# Restart timing business +if [ "${CDUMP}" != gfs ]; then # Setting is valid for GDAS and GEFS + export RSTTYPE_WAV='T' # generate second tier of restart files + export DT_1_RST_WAV=10800 # time between restart files, set to DTRST=1 for a single restart file + export DT_2_RST_WAV=43200 # restart stride for checkpointing restart + export RSTIOFF_WAV=0 # first restart file offset relative to model start +else # This is a GFS run + rst_dt_gfs=$(( restart_interval_gfs * 3600 )) + export RSTTYPE_WAV='F' # generate second tier of restart files + if [ $rst_dt_gfs -gt 0 ]; then export RSTTYPE_WAV='T' ; fi + export DT_1_RST_WAV=${rst_dt_gfs:-0} # time between restart files, set to DTRST=1 for a single restart file + export DT_2_RST_WAV=${rst_dt_gfs:-0} # restart stride for checkpointing restart + export RSTIOFF_WAV=0 # first restart file offset relative to model start +fi +# +# Set runmember to default value if not GEFS cpl run +# (for a GFS coupled run, RUNMEN would be unset, this should default to -1) +export RUNMEM=${RUNMEM:--1} +# Set wave model member tags if ensemble run +# -1: no suffix, deterministic; xxxNN: extract two last digits to make ofilename prefix=gwesNN +if [ $RUNMEM = -1 ]; then +# No suffix added to model ID in case of deterministic run + export waveMEMB= +else +# Extract member number only + export waveMEMB=`echo $RUNMEM | grep -o '..$'` +fi + +# Determine if wave component needs input and/or is coupled +export WW3ATMINP='CPL' +export WW3ICEINP='YES' +export WW3CURINP='YES' + +# Determine if input is from perturbed ensemble (T) or single input file (F) for all members +export WW3ATMIENS='F' +export WW3ICEIENS='F' +export WW3CURIENS='F' + +echo "END: config.wave" diff --git a/parm/config/config.waveawipsbulls b/parm/config/config.waveawipsbulls new file mode 100755 index 0000000000..ec39bfb646 --- /dev/null +++ b/parm/config/config.waveawipsbulls @@ -0,0 +1,17 @@ +#!/bin/ksh -x + +########## config.waveawipsbulls ########## +# Wave steps specific + +echo "BEGIN: config.waveawipsbulls" + +# Get task specific resources +. $EXPDIR/config.resources waveawipsbulls + +export DBNROOT=/dev/null +export SENDCOM="YES" +export COMPONENT=${COMPONENT:-wave} +export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" +export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" + +echo "END: config.waveawipsbulls" diff --git a/parm/config/config.waveawipsgridded b/parm/config/config.waveawipsgridded new file mode 100755 index 0000000000..7f2972bb24 --- /dev/null +++ b/parm/config/config.waveawipsgridded @@ -0,0 +1,17 @@ +#!/bin/ksh -x + +########## config.waveawipsgridded ########## +# Wave steps specific + +echo "BEGIN: config.waveawipsgridded" + +# Get task specific resources +. $EXPDIR/config.resources waveawipsgridded + +export DBNROOT=/dev/null +export SENDCOM="YES" +export COMPONENT=${COMPONENT:-wave} +export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" +export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" + +echo "END: config.waveawipsgridded" diff --git a/parm/config/config.wavegempak b/parm/config/config.wavegempak new file mode 100755 index 0000000000..ec1f59d25c --- /dev/null +++ b/parm/config/config.wavegempak @@ -0,0 +1,16 @@ +#!/bin/ksh -x + +########## config.wavegempak ########## +# Wave steps specific + +echo "BEGIN: config.wavegempak" + +# Get task specific resources +. $EXPDIR/config.resources wavegempak + +export SENDCOM="YES" +export COMPONENT=${COMPONENT:-wave} +export COMIN="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT" +export COMOUT="$ROTDIR/$CDUMP.$PDY/$cyc/$COMPONENT/gempak" + +echo "END: config.wavegempak" diff --git a/parm/config/config.waveinit b/parm/config/config.waveinit new file mode 100755 index 0000000000..93960e5e25 --- /dev/null +++ b/parm/config/config.waveinit @@ -0,0 +1,14 @@ +#!/bin/ksh -x + +########## config.waveinit ########## +# Wave steps specific + +echo "BEGIN: config.waveinit" + +# Get task specific resources +. $EXPDIR/config.resources waveinit + +# Step label +export sigMODE=${sigMODE:-init} + +echo "END: config.waveinit" diff --git a/parm/config/config.wavepostbndpnt b/parm/config/config.wavepostbndpnt new file mode 100755 index 0000000000..5ec96a697f --- /dev/null +++ b/parm/config/config.wavepostbndpnt @@ -0,0 +1,11 @@ +#!/bin/ksh -x + +########## config.wavepostbndpnt ########## +# Wave steps specific + +echo "BEGIN: config.wavepostbndpnt" + +# Get task specific resources +. $EXPDIR/config.resources wavepostbndpnt + +echo "END: config.wavepostbndpnt" diff --git a/parm/config/config.wavepostpnt b/parm/config/config.wavepostpnt new file mode 100755 index 0000000000..276ca230a6 --- /dev/null +++ b/parm/config/config.wavepostpnt @@ -0,0 +1,11 @@ +#!/bin/ksh -x + +########## config.wavepostpnt ########## +# Wave steps specific + +echo "BEGIN: config.wavepostpnt" + +# Get task specific resources +. $EXPDIR/config.resources wavepostpnt + +echo "END: config.wavepostpnt" diff --git a/parm/config/config.wavepostsbs b/parm/config/config.wavepostsbs new file mode 100755 index 0000000000..a40d17d663 --- /dev/null +++ b/parm/config/config.wavepostsbs @@ -0,0 +1,30 @@ +#!/bin/ksh -x + +########## config.wavepostsbs ########## +# Wave steps specific + +echo "BEGIN: config.wavepostsbs" + +# Get task specific resources +. $EXPDIR/config.resources wavepostsbs + + +# Subgrid info for grib2 encoding +export WAV_SUBGRBSRC="" +export WAV_SUBGRB="" +#export WAV_SUBGRBSRC="gnh_10m" +#export WAV_SUBGRB="WAV_ATLO_GRB WAV_EPAC_GRB WAV_WCST_GRB" +#export WAV_ATLO_GRB="0 6 0 0 0 0 0 0 301 331 0 0 55000000 260000000 48 0 310000000 166667 166667 0 atlocn 0p16" +#export WAV_EPAC_GRB="0 6 0 0 0 0 0 0 511 301 0 0 30000002 130000000 48 -20000000 215000000 166667 166667 0 epacif 0p16" +#export WAV_WCST_GRB="0 6 0 0 0 0 0 0 241 151 0 0 50000000 210000000 48 25000000 250000000 166667 166667 0 wcoast 0p16" + +# Options for point output (switch on/off boundary point output) +export DOIBP_WAV='NO' # Input boundary points +export DOFLD_WAV='YES' # Field data +export DOPNT_WAV='YES' # Station data +export DOGRB_WAV='YES' # Create grib2 files +export DOGRI_WAV='YES' # Create interpolated grids +export DOSPC_WAV='YES' # Spectral post +export DOBLL_WAV='YES' # Bulletin post + +echo "END: config.wavepostsbs" diff --git a/parm/config/config.waveprep b/parm/config/config.waveprep new file mode 100755 index 0000000000..aaf8675283 --- /dev/null +++ b/parm/config/config.waveprep @@ -0,0 +1,46 @@ +#!/bin/ksh -x + +########## config.waveprep ########## +# Wave steps specific + +echo "BEGIN: config.waveprep" + +# Get task specific resources +. $EXPDIR/config.resources waveprep + +# Step label +export sigMODE=${sigMODE:-prep} + +export HOUR_INC=3 # This value should match with the one used in + # the wind update script +export GOFILETYPE=1 # GOFILETYPE=1 one gridded file per output step +export POFILETYPE=1 # POFILETYPE=1 one point file per output step + +# Parameters for ww3_multi.inp +# Unified output T or F +export FUNIPNT='T' +# Output server type (see ww3_multi.inp in WW3 repo) +export IOSRV='3' +# Flag for dedicated output process for unified points +export FPNTPROC='T' +# Flag for grids sharing dedicated output processes +export FGRDPROC='F' + +# Wind interval for standalone file-based runs +# Output stride +export WAV_WND_HOUR_INC=1 # This value should match with the one used in + # the wind update script +# Intake currents settings +export WAV_CUR_DT=${WAV_CUR_DT:-3} +export WAV_CUR_HF_DT=${WAV_CUR_HF_DT:-3} # Defaults to 3h for GEFSv12 +export WAV_CUR_HF_FH=${WAV_CUR_HF_FH:-0} # Constant DT for GFSv16 from getgo +export WAV_CUR_CDO_SMOOTH="NO" + +# Location of CDO module +export CDO_ROOT=${CDO_ROOT:-/usrx/local/dev/packages/cdo/1.9.8} + +if [ "${WW3ICEINP}" = "YES" ]; then + export WAVICEFILE=${CDUMP}.t${cyc}z.seaice.5min.grib2 +fi + +echo "END: config.waveprep" diff --git a/parm/parm_fv3diag/diag_table_da b/parm/parm_fv3diag/diag_table_da index 5df6a0b202..57c106531e 100644 --- a/parm/parm_fv3diag/diag_table_da +++ b/parm/parm_fv3diag/diag_table_da @@ -65,6 +65,7 @@ "gfs_phys", "v-gwd_ave", "v-gwd_ave", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "dusfc", "uflx_ave", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "dvsfc", "vflx_ave", "fv3_history2d", "all", .false., "none", 2 +#"gfs_phys", "cnvw", "cnvcldwat", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "acond", "acond", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "cduvb_ave", "cduvb_ave", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "cpofp", "cpofp", "fv3_history2d", "all", .false., "none", 2 diff --git a/parm/parm_fv3diag/field_table_gfdl_satmedmf b/parm/parm_fv3diag/field_table_gfdl_satmedmf new file mode 100644 index 0000000000..06adb66d72 --- /dev/null +++ b/parm/parm_fv3diag/field_table_gfdl_satmedmf @@ -0,0 +1,42 @@ +# added by FRE: sphum must be present in atmos +# specific humidity for moist runs + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic cloud water mixing ratio + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "rainwat" + "longname", "rain mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "cloud ice mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "snowwat" + "longname", "snow mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "graupel" + "longname", "graupel mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic ozone mixing ratio tracer + "TRACER", "atmos_mod", "o3mr" + "longname", "ozone mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic subgrid scale turbulent kinetic energy + "TRACER", "atmos_mod", "sgs_tke" + "longname", "subgrid scale turbulent kinetic energy" + "units", "m2/s2" + "profile_type", "fixed", "surface_value=0.0" / +# non-prognostic cloud amount + "TRACER", "atmos_mod", "cld_amt" + "longname", "cloud amount" + "units", "1" + "profile_type", "fixed", "surface_value=1.e30" / diff --git a/parm/parm_fv3diag/field_table_thompson_satmedmf b/parm/parm_fv3diag/field_table_thompson_satmedmf new file mode 100644 index 0000000000..c42d518e09 --- /dev/null +++ b/parm/parm_fv3diag/field_table_thompson_satmedmf @@ -0,0 +1,46 @@ +# added by FRE: sphum must be present in atmos +# specific humidity for moist runs + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=3.e-6" / +# prognostic cloud water mixing ratio + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "ice water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=3.e-6" / +# prognostic cloud water mixing ratio + "TRACER", "atmos_mod", "rainwat" + "longname", "rain water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "snowwat" + "longname", "snow water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "graupel" + "longname", "graupel mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "ice_nc" + "longname", "ice number concentration" + "units", "/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "rain_nc" + "longname", "rain number concentration" + "units", "/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic ozone mixing ratio tracer + "TRACER", "atmos_mod", "o3mr" + "longname", "ozone mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic subgrid scale turbulent kinetic energy + "TRACER", "atmos_mod", "sgs_tke" + "longname", "subgrid scale turbulent kinetic energy" + "units", "m2/s2" + "profile_type", "fixed", "surface_value=0.0" / diff --git a/parm/parm_fv3diag/field_table_wsm6_satmedmf b/parm/parm_fv3diag/field_table_wsm6_satmedmf new file mode 100644 index 0000000000..3f3798f26b --- /dev/null +++ b/parm/parm_fv3diag/field_table_wsm6_satmedmf @@ -0,0 +1,39 @@ +# added by FRE: sphum must be present in atmos +# specific humidity for moist runs + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=3.e-6" / +# prognostic cloud water mixing ratio + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "ice_wat" + "longname", "ice water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=3.e-6" / +# prognostic cloud water mixing ratio + "TRACER", "atmos_mod", "rainwat" + "longname", "rain water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "snowwat" + "longname", "snow water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / + "TRACER", "atmos_mod", "graupel" + "longname", "graupel mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic ozone mixing ratio tracer + "TRACER", "atmos_mod", "o3mr" + "longname", "ozone mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic subgrid scale turbulent kinetic energy + "TRACER", "atmos_mod", "sgs_tke" + "longname", "subgrid scale turbulent kinetic energy" + "units", "m2/s2" + "profile_type", "fixed", "surface_value=0.0" / + diff --git a/parm/parm_fv3diag/field_table_zhaocarr_satmedmf b/parm/parm_fv3diag/field_table_zhaocarr_satmedmf new file mode 100644 index 0000000000..c4f8b9a184 --- /dev/null +++ b/parm/parm_fv3diag/field_table_zhaocarr_satmedmf @@ -0,0 +1,22 @@ +# added by FRE: sphum must be present in atmos +# specific humidity for moist runs + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=3.e-6" / +# prognostic cloud water mixing ratio + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic ozone mixing ratio tracer + "TRACER", "atmos_mod", "o3mr" + "longname", "ozone mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic subgrid scale turbulent kinetic energy + "TRACER", "atmos_mod", "sgs_tke" + "longname", "subgrid scale turbulent kinetic energy" + "units", "m2/s2" + "profile_type", "fixed", "surface_value=0.0" / + diff --git a/parm/parm_wave/bull_awips_gfswave b/parm/parm_wave/bull_awips_gfswave new file mode 100644 index 0000000000..87aa19fe48 --- /dev/null +++ b/parm/parm_wave/bull_awips_gfswave @@ -0,0 +1,496 @@ +# Gulf of Alaska (AG) Spectral data (4) near S/SW Alaska Anchorage (8) +export b46001=AGGA48_KWBJ_OSBM01 +export b46066=AGGA48_KWBJ_OSBM02 +export b46061=AGGA48_KWBJ_OSBM03 +export b46075=AGGA48_KWBJ_OSBM04 +export b46076=AGGA48_KWBJ_OSBM05 +export b46078=AGGA48_KWBJ_OSBM06 +export b46106=AGGA48_KWBJ_OSBM07 +export b46080=AGGA48_KWBJ_OSBM08 +export b46108=AGGA48_KWBJ_OSBM09 +export b46021=AGGA48_KWBJ_OSBM10 +export b46060=AGGA48_KWBJ_OSBM11 +export b46077=AGGA48_KWBJ_OSBM12 +export b46079=AGGA48_KWBJ_OSBM13 +export b46105=AGGA48_KWBJ_OSBM14 +export b46107=AGGA48_KWBJ_OSBM15 +export b46265=AGGA48_KWBJ_OSBM16 +# Gulf of Alaska (AG) Spectral data (4) near Alaska Panhandle and NBC (7) +export b46004=AGGA47_KWBJ_OSBM01 +export b46184=AGGA47_KWBJ_OSBM02 +export b46082=AGGA47_KWBJ_OSBM03 +export b46083=AGGA47_KWBJ_OSBM04 +export b46084=AGGA47_KWBJ_OSBM05 +export b46085=AGGA47_KWBJ_OSBM06 +export b46205=AGGA47_KWBJ_OSBM07 +export b46145=AGGA47_KWBJ_OSBM08 +export b46147=AGGA47_KWBJ_OSBM09 +export b46183=AGGA47_KWBJ_OSBM10 +export b46185=AGGA47_KWBJ_OSBM11 +export b46204=AGGA47_KWBJ_OSBM12 +export b46207=AGGA47_KWBJ_OSBM13 +export b46208=AGGA47_KWBJ_OSBM14 +export b46138=AGGA47_KWBJ_OSBM15 +# Eastern Pacific (PZ) spectral data (4) near Pacific states and SBC (6) +export b46002=AGPZ46_KWBJ_OSBM01 +export b46006=AGPZ46_KWBJ_OSBM02 +export b46059=AGPZ46_KWBJ_OSBM03 +export b46011=AGPZ46_KWBJ_OSBM04 +export b46012=AGPZ46_KWBJ_OSBM05 +export b46013=AGPZ46_KWBJ_OSBM06 +export b46014=AGPZ46_KWBJ_OSBM07 +export b46022=AGPZ46_KWBJ_OSBM08 +export b46023=AGPZ46_KWBJ_OSBM09 +export b46026=AGPZ46_KWBJ_OSBM10 +export b46027=AGPZ46_KWBJ_OSBM11 +export b46015=AGPZ46_KWBJ_OSBM12 +export b46025=AGPZ46_KWBJ_OSBM13 +export b46028=AGPZ46_KWBJ_OSBM14 +export b46030=AGPZ46_KWBJ_OSBM15 +export b46042=AGPZ46_KWBJ_OSBM16 +export b46047=AGPZ46_KWBJ_OSBM17 +export b46050=AGPZ46_KWBJ_OSBM18 +export b46053=AGPZ46_KWBJ_OSBM19 +export b46054=AGPZ46_KWBJ_OSBM20 +export b46062=AGPZ46_KWBJ_OSBM21 +export b46063=AGPZ46_KWBJ_OSBM22 +export b46069=AGPZ46_KWBJ_OSBM23 +export b46086=AGPZ46_KWBJ_OSBM24 +export b46089=AGPZ46_KWBJ_OSBM25 +export b46213=AGPZ46_KWBJ_OSBM26 +export b46214=AGPZ46_KWBJ_OSBM27 +export b46216=AGPZ46_KWBJ_OSBM28 +export b46217=AGPZ46_KWBJ_OSBM29 +export b46218=AGPZ46_KWBJ_OSBM30 +export b46219=AGPZ46_KWBJ_OSBM31 +export b46221=AGPZ46_KWBJ_OSBM32 +export b46222=AGPZ46_KWBJ_OSBM33 +export b46223=AGPZ46_KWBJ_OSBM34 +export b46224=AGPZ46_KWBJ_OSBM35 +export b46225=AGPZ46_KWBJ_OSBM36 +export b46227=AGPZ46_KWBJ_OSBM37 +export b46229=AGPZ46_KWBJ_OSBM38 +export b46231=AGPZ46_KWBJ_OSBM39 +export b46232=AGPZ46_KWBJ_OSBM40 +export b46215=AGPZ46_KWBJ_OSBM41 +export b46236=AGPZ46_KWBJ_OSBM42 +export b46237=AGPZ46_KWBJ_OSBM43 +export b46238=AGPZ46_KWBJ_OSBM44 +export b46239=AGPZ46_KWBJ_OSBM45 +export b46240=AGPZ46_KWBJ_OSBM46 +export b46243=AGPZ46_KWBJ_OSBM47 +export b46244=AGPZ46_KWBJ_OSBM48 +export b46246=AGPZ46_KWBJ_OSBM49 +export b46248=AGPZ46_KWBJ_OSBM50 +export b46024=AGPZ46_KWBJ_OSBM51 +export b46091=AGPZ46_KWBJ_OSBM52 +export b46092=AGPZ46_KWBJ_OSBM53 +export b46093=AGPZ46_KWBJ_OSBM54 +export b46094=AGPZ46_KWBJ_OSBM55 +export b46097=AGPZ46_KWBJ_OSBM56 +export b46098=AGPZ46_KWBJ_OSBM57 +export b46114=AGPZ46_KWBJ_OSBM58 +export b46212=AGPZ46_KWBJ_OSBM59 +export b46226=AGPZ46_KWBJ_OSBM60 +export b46233=AGPZ46_KWBJ_OSBM61 +export b46235=AGPZ46_KWBJ_OSBM62 +export b46242=AGPZ46_KWBJ_OSBM63 +export b46247=AGPZ46_KWBJ_OSBM64 +export b46249=AGPZ46_KWBJ_OSBM65 +export b46250=AGPZ46_KWBJ_OSBM66 +export b46251=AGPZ46_KWBJ_OSBM67 +export b46252=AGPZ46_KWBJ_OSBM68 +export b46253=AGPZ46_KWBJ_OSBM69 +export b46254=AGPZ46_KWBJ_OSBM70 +export b46255=AGPZ46_KWBJ_OSBM71 +export b46256=AGPZ46_KWBJ_OSBM72 +export b46257=AGPZ46_KWBJ_OSBM73 +export b46258=AGPZ46_KWBJ_OSBM74 +export b46259=AGPZ46_KWBJ_OSBM75 +export b46262=AGPZ46_KWBJ_OSBM76 +# Eastern Pacific (PZ) spectral data (4) near Alaska Panhandle and NBC (7) +export b46005=AGPZ47_KWBJ_OSBM01 +export b46036=AGPZ47_KWBJ_OSBM02 +export b46132=AGPZ47_KWBJ_OSBM03 +export b46206=AGPZ47_KWBJ_OSBM04 +export b46029=AGPZ47_KWBJ_OSBM05 +export b46041=AGPZ47_KWBJ_OSBM06 +export b46087=AGPZ47_KWBJ_OSBM07 +export b46211=AGPZ47_KWBJ_OSBM08 +export b46088=AGPZ47_KWBJ_OSBM09 +export b46096=AGPZ47_KWBJ_OSBM10 +export b46099=AGPZ47_KWBJ_OSBM11 +export b46100=AGPZ47_KWBJ_OSBM12 +export b46119=AGPZ47_KWBJ_OSBM13 +export b46127=AGPZ47_KWBJ_OSBM14 +export b46139=AGPZ47_KWBJ_OSBM15 +export b46264=AGPZ47_KWBJ_OSBM16 +# North Pacific and Behring Sea (PN) spectra (4) near S/SW Alaska Anchorage (8) +export b46035=AGPN48_KWBJ_OSBM01 +export b46070=AGPN48_KWBJ_OSBM02 +export b46073=AGPN48_KWBJ_OSBM03 +export b46071=AGPN48_KWBJ_OSBM04 +export b46072=AGPN48_KWBJ_OSBM05 +export b46020=AGPN48_KWBJ_OSBM06 +# Hawaiian waters (HW) spectra (4) in Pacific Ocean and Pacific Isles (0) +export b51001=AGHW40_KWBJ_OSBM01 +export b51002=AGHW40_KWBJ_OSBM02 +export b51003=AGHW40_KWBJ_OSBM03 +export b51004=AGHW40_KWBJ_OSBM04 +export b51201=AGHW40_KWBJ_OSBM05 +export b51202=AGHW40_KWBJ_OSBM06 +export b51000=AGHW40_KWBJ_OSBM07 +export b51100=AGHW40_KWBJ_OSBM08 +export b51101=AGHW40_KWBJ_OSBM09 +export b51203=AGHW40_KWBJ_OSBM10 +export b51204=AGHW40_KWBJ_OSBM11 +export b51205=AGHW40_KWBJ_OSBM12 +export b51206=AGHW40_KWBJ_OSBM13 +export b51207=AGHW40_KWBJ_OSBM14 +export b51028=AGHW40_KWBJ_OSBM15 +export b51200=AGHW40_KWBJ_OSBM16 +export b51208=AGHW40_KWBJ_OSBM17 +export b51209=AGHW40_KWBJ_OSBM18 +export b51210=AGHW40_KWBJ_OSBM19 +export b52212=AGHW40_KWBJ_OSBM20 +export b51211=AGHW40_KWBJ_OSBM21 +export b51212=AGHW40_KWBJ_OSBM22 +export b51213=AGHW40_KWBJ_OSBM23 +# Western Pacific (PW) spectra (4) in Pacific Ocean and Pacific Isles (0) +export b52200=AGPW40_KWBJ_OSBM01 +export b22101=AGPW40_KWBJ_OSBM02 +export b22102=AGPW40_KWBJ_OSBM03 +export b22103=AGPW40_KWBJ_OSBM04 +export b22104=AGPW40_KWBJ_OSBM05 +export b22105=AGPW40_KWBJ_OSBM06 +export b52201=AGPW40_KWBJ_OSBM07 +export b52202=AGPW40_KWBJ_OSBM08 +export b52211=AGPW40_KWBJ_OSBM09 +export b21178=AGPW40_KWBJ_OSBM10 +export b21229=AGPW40_KWBJ_OSBM11 +export b22108=AGPW40_KWBJ_OSBM12 +export b22184=AGPW40_KWBJ_OSBM13 +export b22185=AGPW40_KWBJ_OSBM14 +export b22186=AGPW40_KWBJ_OSBM15 +export b22187=AGPW40_KWBJ_OSBM16 +export b22188=AGPW40_KWBJ_OSBM17 +export b22189=AGPW40_KWBJ_OSBM18 +export b22190=AGPW40_KWBJ_OSBM19 +# South Pacific (PS) in Pacific Ocean and Pacific Isles (0) +export b55020=AGPS40_KWBJ_OSBM01 +export b55033=AGPS40_KWBJ_OSBM02 +export b55035=AGPS40_KWBJ_OSBM03 +export b55039=AGPS40_KWBJ_OSBM04 +# Gulf of Mexico (GX) spectra (4) south from NC and Puerto Rico (2) +export b42001=AGGX42_KWBJ_OSBM01 +export b42002=AGGX42_KWBJ_OSBM02 +export b42003=AGGX42_KWBJ_OSBM03 +export b42007=AGGX42_KWBJ_OSBM04 +export b42019=AGGX42_KWBJ_OSBM05 +export b42020=AGGX42_KWBJ_OSBM06 +export b42035=AGGX42_KWBJ_OSBM07 +export b42036=AGGX42_KWBJ_OSBM08 +export b42039=AGGX42_KWBJ_OSBM09 +export b42040=AGGX42_KWBJ_OSBM10 +export b42041=AGGX42_KWBJ_OSBM11 +export b42038=AGGX42_KWBJ_OSBM12 +export b42055=AGGX42_KWBJ_OSBM13 +export b42099=AGGX42_KWBJ_OSBM14 +export b42012=AGGX42_KWBJ_OSBM15 +export b42887=AGGX42_KWBJ_OSBM16 +export b42013=AGGX42_KWBJ_OSBM17 +export b42014=AGGX42_KWBJ_OSBM18 +export b42021=AGGX42_KWBJ_OSBM19 +export b42022=AGGX42_KWBJ_OSBM20 +export b42023=AGGX42_KWBJ_OSBM21 +export b42043=AGGX42_KWBJ_OSBM22 +export b42044=AGGX42_KWBJ_OSBM23 +export b42045=AGGX42_KWBJ_OSBM24 +export b42046=AGGX42_KWBJ_OSBM25 +export b42047=AGGX42_KWBJ_OSBM26 +export b42067=AGGX42_KWBJ_OSBM27 +export b42097=AGGX42_KWBJ_OSBM28 +export b42098=AGGX42_KWBJ_OSBM29 +export b42360=AGGX42_KWBJ_OSBM30 +export b42361=AGGX42_KWBJ_OSBM31 +export b42362=AGGX42_KWBJ_OSBM32 +export b42363=AGGX42_KWBJ_OSBM33 +export b42364=AGGX42_KWBJ_OSBM34 +export b42365=AGGX42_KWBJ_OSBM35 +export b42369=AGGX42_KWBJ_OSBM36 +export b42370=AGGX42_KWBJ_OSBM37 +export b42374=AGGX42_KWBJ_OSBM38 +export b42375=AGGX42_KWBJ_OSBM39 +export b42376=AGGX42_KWBJ_OSBM40 +export b42390=AGGX42_KWBJ_OSBM41 +export b42392=AGGX42_KWBJ_OSBM42 +export b42394=AGGX42_KWBJ_OSBM43 +export b42395=AGGX42_KWBJ_OSBM44 +# Caribbean Sea (CA) spectra (4) south from NC and Puerto Rico (2) +export b42056=AGCA42_KWBJ_OSBM01 +export b42057=AGCA42_KWBJ_OSBM02 +export b42058=AGCA42_KWBJ_OSBM03 +export b42080=AGCA42_KWBJ_OSBM04 +export b42059=AGCA42_KWBJ_OSBM05 +export b32012=AGCA42_KWBJ_OSBM06 +export b42060=AGCA42_KWBJ_OSBM07 +export b41194=AGCA42_KWBJ_OSBM08 +export b42085=AGCA42_KWBJ_OSBM09 +export b42089=AGCA42_KWBJ_OSBM10 +export b41052=AGCA42_KWBJ_OSBM11 +export b41051=AGCA42_KWBJ_OSBM12 +export b41056=AGCA42_KWBJ_OSBM13 +export b41115=AGCA42_KWBJ_OSBM14 +export b41117=AGCA42_KWBJ_OSBM15 +export b42079=AGCA42_KWBJ_OSBM16 +export b42086=AGCA42_KWBJ_OSBM17 +export b42095=AGCA42_KWBJ_OSBM18 +# Western Atlantic (NT) spectra (4) south from NC and Puerto Rico (2) +export b41001=AGNT42_KWBJ_OSBM01 +export b41002=AGNT42_KWBJ_OSBM02 +export b41004=AGNT42_KWBJ_OSBM03 +export b41008=AGNT42_KWBJ_OSBM04 +export b41009=AGNT42_KWBJ_OSBM05 +export b41010=AGNT42_KWBJ_OSBM06 +export b41012=AGNT42_KWBJ_OSBM07 +export b41013=AGNT42_KWBJ_OSBM08 +export b41025=AGNT42_KWBJ_OSBM09 +export b41035=AGNT42_KWBJ_OSBM10 +export b41036=AGNT42_KWBJ_OSBM11 +export b41043=AGNT42_KWBJ_OSBM12 +export b41046=AGNT42_KWBJ_OSBM13 +export b41047=AGNT42_KWBJ_OSBM14 +export b41048=AGNT42_KWBJ_OSBM15 +export b41112=AGNT42_KWBJ_OSBM16 +export b41113=AGNT42_KWBJ_OSBM17 +export b41114=AGNT42_KWBJ_OSBM18 +export b44014=AGNT42_KWBJ_OSBM19 +export b41037=AGNT42_KWBJ_OSBM20 +export b41038=AGNT42_KWBJ_OSBM21 +export b41049=AGNT42_KWBJ_OSBM22 +export b41044=AGNT42_KWBJ_OSBM23 +export b41109=AGNT42_KWBJ_OSBM24 +export b41110=AGNT42_KWBJ_OSBM25 +export b41111=AGNT42_KWBJ_OSBM26 +export b41053=AGNT42_KWBJ_OSBM27 +export b41058=AGNT42_KWBJ_OSBM28 +export b41024=AGNT42_KWBJ_OSBM29 +export b41027=AGNT42_KWBJ_OSBM30 +export b41029=AGNT42_KWBJ_OSBM31 +export b41030=AGNT42_KWBJ_OSBM32 +export b41033=AGNT42_KWBJ_OSBM33 +export b41061=AGNT42_KWBJ_OSBM34 +export b41062=AGNT42_KWBJ_OSBM35 +export b41063=AGNT42_KWBJ_OSBM36 +export b41064=AGNT42_KWBJ_OSBM37 +export b41108=AGNT42_KWBJ_OSBM38 +export b41159=AGNT42_KWBJ_OSBM39 +export b44056=AGNT42_KWBJ_OSBM40 +# Western Atlantic (NT) spectra (4) NE states north of VA (1) +export b44138=AGNT41_KWBJ_OSBM01 +export b44011=AGNT41_KWBJ_OSBM02 +export b44141=AGNT41_KWBJ_OSBM03 +export b44142=AGNT41_KWBJ_OSBM04 +export bWRB07=AGNT41_KWBJ_OSBM05 +export b44137=AGNT41_KWBJ_OSBM06 +export b44139=AGNT41_KWBJ_OSBM07 +export b44140=AGNT41_KWBJ_OSBM08 +export b44150=AGNT41_KWBJ_OSBM09 +export b44004=AGNT41_KWBJ_OSBM10 +export b44005=AGNT41_KWBJ_OSBM11 +export b44008=AGNT41_KWBJ_OSBM12 +export b44009=AGNT41_KWBJ_OSBM13 +export b44017=AGNT41_KWBJ_OSBM14 +export b44018=AGNT41_KWBJ_OSBM15 +export b44025=AGNT41_KWBJ_OSBM16 +export b44070=AGNT41_KWBJ_OSBM17 +export b44024=AGNT41_KWBJ_OSBM18 +export b44027=AGNT41_KWBJ_OSBM19 +export b44037=AGNT41_KWBJ_OSBM20 +export b44038=AGNT41_KWBJ_OSBM21 +export b44251=AGNT41_KWBJ_OSBM22 +export b44255=AGNT41_KWBJ_OSBM23 +export b44099=AGNT41_KWBJ_OSBM24 +export b44100=AGNT41_KWBJ_OSBM25 +export b44066=AGNT41_KWBJ_OSBM26 +export b44093=AGNT41_KWBJ_OSBM27 +export b44095=AGNT41_KWBJ_OSBM28 +export b44096=AGNT41_KWBJ_OSBM29 +export b44097=AGNT41_KWBJ_OSBM30 +export b44098=AGNT41_KWBJ_OSBM31 +export b44007=AGNT41_KWBJ_OSBM32 +export b44013=AGNT41_KWBJ_OSBM33 +export b44020=AGNT41_KWBJ_OSBM34 +export b44029=AGNT41_KWBJ_OSBM35 +export b44030=AGNT41_KWBJ_OSBM36 +export b44031=AGNT41_KWBJ_OSBM37 +export b44032=AGNT41_KWBJ_OSBM38 +export b44033=AGNT41_KWBJ_OSBM39 +export b44034=AGNT41_KWBJ_OSBM40 +export b44039=AGNT41_KWBJ_OSBM41 +export b44040=AGNT41_KWBJ_OSBM42 +export b44043=AGNT41_KWBJ_OSBM43 +export b44054=AGNT41_KWBJ_OSBM44 +export b44055=AGNT41_KWBJ_OSBM45 +export b44058=AGNT41_KWBJ_OSBM46 +export b44060=AGNT41_KWBJ_OSBM47 +export b44061=AGNT41_KWBJ_OSBM48 +export b44062=AGNT41_KWBJ_OSBM49 +export b44063=AGNT41_KWBJ_OSBM50 +export b44064=AGNT41_KWBJ_OSBM51 +export b44065=AGNT41_KWBJ_OSBM52 +export b44072=AGNT41_KWBJ_OSBM53 +export b44089=AGNT41_KWBJ_OSBM54 +export b44090=AGNT41_KWBJ_OSBM55 +export b44091=AGNT41_KWBJ_OSBM56 +export b44092=AGNT41_KWBJ_OSBM57 +export b44094=AGNT41_KWBJ_OSBM58 +export b44172=AGNT41_KWBJ_OSBM59 +export b44235=AGNT41_KWBJ_OSBM60 +export b44087=AGNT41_KWBJ_OSBM61 +# Western Atlantic (NT) spectra (4) near South America (3) +export b31201=AGNT43_KWBJ_OSBM01 +export b31052=AGNT43_KWBJ_OSBM02 +export b31260=AGNT43_KWBJ_OSBM03 +export b31374=AGNT43_KWBJ_OSBM04 +export b31051=AGNT43_KWBJ_OSBM05 +export b31053=AGNT43_KWBJ_OSBM06 +export b31375=AGNT43_KWBJ_OSBM07 +# Tropical Belt (XT) spectra (4) near South America (3) +export b41040=AGXT43_KWBJ_OSBM01 +export b41041=AGXT43_KWBJ_OSBM02 +export b41100=AGXT43_KWBJ_OSBM03 +export b41101=AGXT43_KWBJ_OSBM04 +export b41060=AGXT43_KWBJ_OSBM05 +export b42087=AGXT43_KWBJ_OSBM06 +export b42088=AGXT43_KWBJ_OSBM07 +# Tropical Belt (XT) spectra (4) in Pacific Ocean and Pacific Isles (0) +export b43010=AGXT40_KWBJ_OSBM01 +export b52009=AGXT40_KWBJ_OSBM02 +# Eastern Atlantic (ET) spectra (3) near Europe (3) +export b62001=AGET43_KWBJ_OSBM01 +export b62002=AGET43_KWBJ_OSBM02 +export b62029=AGET43_KWBJ_OSBM03 +export b62023=AGET43_KWBJ_OSBM04 +export b62052=AGET43_KWBJ_OSBM05 +export b62081=AGET43_KWBJ_OSBM06 +export b62090=AGET43_KWBJ_OSBM07 +export b62091=AGET43_KWBJ_OSBM08 +export b62092=AGET43_KWBJ_OSBM09 +export b62093=AGET43_KWBJ_OSBM10 +export b62094=AGET43_KWBJ_OSBM11 +export b62095=AGET43_KWBJ_OSBM12 +export b62103=AGET43_KWBJ_OSBM13 +export b62105=AGET43_KWBJ_OSBM14 +export b62106=AGET43_KWBJ_OSBM15 +export b62107=AGET43_KWBJ_OSBM16 +export b62108=AGET43_KWBJ_OSBM17 +export b62163=AGET43_KWBJ_OSBM18 +export b62301=AGET43_KWBJ_OSBM19 +export b62303=AGET43_KWBJ_OSBM20 +export b62305=AGET43_KWBJ_OSBM21 +export b62170=AGET43_KWBJ_OSBM22 +export b64045=AGET43_KWBJ_OSBM23 +export b64046=AGET43_KWBJ_OSBM24 +export bTFGSK=AGET43_KWBJ_OSBM25 +export bTFHFN=AGET43_KWBJ_OSBM26 +export bTFSRT=AGET43_KWBJ_OSBM27 +export bLF3F=AGET43_KWBJ_OSBM28 +export b62026=AGET43_KWBJ_OSBM29 +export b62109=AGET43_KWBJ_OSBM30 +export b62111=AGET43_KWBJ_OSBM31 +export b62112=AGET43_KWBJ_OSBM32 +export b62116=AGET43_KWBJ_OSBM33 +export b62117=AGET43_KWBJ_OSBM34 +export b62119=AGET43_KWBJ_OSBM35 +export b62128=AGET43_KWBJ_OSBM36 +export b62132=AGET43_KWBJ_OSBM37 +export b62133=AGET43_KWBJ_OSBM38 +export b62142=AGET43_KWBJ_OSBM39 +export b62143=AGET43_KWBJ_OSBM40 +export b62144=AGET43_KWBJ_OSBM41 +export b62145=AGET43_KWBJ_OSBM42 +export b62152=AGET43_KWBJ_OSBM43 +export b62162=AGET43_KWBJ_OSBM44 +export b62164=AGET43_KWBJ_OSBM45 +export b62304=AGET43_KWBJ_OSBM46 +export b63055=AGET43_KWBJ_OSBM47 +export b63056=AGET43_KWBJ_OSBM48 +export b63057=AGET43_KWBJ_OSBM49 +export b63103=AGET43_KWBJ_OSBM50 +export b63108=AGET43_KWBJ_OSBM51 +export b63110=AGET43_KWBJ_OSBM52 +export b63112=AGET43_KWBJ_OSBM53 +export b63113=AGET43_KWBJ_OSBM54 +export b63115=AGET43_KWBJ_OSBM55 +export bLF3J=AGET43_KWBJ_OSBM56 +export bLF4B=AGET43_KWBJ_OSBM57 +export bLF4H=AGET43_KWBJ_OSBM58 +export bLF4C=AGET43_KWBJ_OSBM59 +export bLF5U=AGET43_KWBJ_OSBM60 +export bEURO=AGET43_KWBJ_OSBM61 +export bK13=AGET43_KWBJ_OSBM62 +export b62024=AGET43_KWBJ_OSBM63 +export b62082=AGET43_KWBJ_OSBM64 +export b62084=AGET43_KWBJ_OSBM65 +export b62085=AGET43_KWBJ_OSBM66 +export b13130=AGET43_KWBJ_OSBM67 +export b13131=AGET43_KWBJ_OSBM68 +export b62118=AGET43_KWBJ_OSBM69 +export b62146=AGET43_KWBJ_OSBM70 +export bBSH01=AGET43_KWBJ_OSBM71 +export bBSH02=AGET43_KWBJ_OSBM72 +export bBSH03=AGET43_KWBJ_OSBM73 +export bBSH04=AGET43_KWBJ_OSBM74 +export bBSH05=AGET43_KWBJ_OSBM75 +# Arctic Ocean (AC) spectra (4) non-descript (3) +export bTFBLK=AGAC43_KWBJ_OSBM01 +export bTFGRS=AGAC43_KWBJ_OSBM02 +export bTFKGR=AGAC43_KWBJ_OSBM03 +export bLF3N=AGAC43_KWBJ_OSBM04 +export bLF5T=AGAC43_KWBJ_OSBM05 +export bLDWR=AGAC43_KWBJ_OSBM06 +export b3FYT=AGAC43_KWBJ_OSBM07 +export bLFB1=AGAC43_KWBJ_OSBM08 +export bLFB2=AGAC43_KWBJ_OSBM09 +export b64071=AGAC43_KWBJ_OSBM10 +export b48012=AGAC43_KWBJ_OSBM11 +export b48114=AGAC43_KWBJ_OSBM12 +export b48211=AGAC43_KWBJ_OSBM13 +export b48212=AGAC43_KWBJ_OSBM14 +export b48213=AGAC43_KWBJ_OSBM15 +export b48214=AGAC43_KWBJ_OSBM16 +export b48216=AGAC43_KWBJ_OSBM17 +# Indian Ocean (I) spectra (4) non-descript (5) +export b23092=AGIO45_KWBJ_OSBM01 +export b23093=AGIO45_KWBJ_OSBM02 +export b23094=AGIO45_KWBJ_OSBM03 +export b23096=AGIO45_KWBJ_OSBM04 +export b23097=AGIO45_KWBJ_OSBM05 +export b23098=AGIO45_KWBJ_OSBM06 +export b23099=AGIO45_KWBJ_OSBM07 +export b23100=AGIO45_KWBJ_OSBM08 +export b23101=AGIO45_KWBJ_OSBM09 +export b23168=AGIO45_KWBJ_OSBM10 +export b23169=AGIO45_KWBJ_OSBM11 +export b23170=AGIO45_KWBJ_OSBM12 +export b23172=AGIO45_KWBJ_OSBM13 +export b23173=AGIO45_KWBJ_OSBM14 +export b23174=AGIO45_KWBJ_OSBM15 +export b56002=AGIO45_KWBJ_OSBM16 +export b56005=AGIO45_KWBJ_OSBM17 +export b56006=AGIO45_KWBJ_OSBM18 +export b56007=AGIO45_KWBJ_OSBM19 +export bAGULHAS_FA=AGIO45_KWBJ_OSBM20 +export b56010=AGIO45_KWBJ_OSBM21 +export b56012=AGIO45_KWBJ_OSBM22 +export b23167=AGIO45_KWBJ_OSBM23 +export b23171=AGIO45_KWBJ_OSBM24 +export b23451=AGIO45_KWBJ_OSBM25 +export b23455=AGIO45_KWBJ_OSBM26 +export b23456=AGIO45_KWBJ_OSBM27 +export b23491=AGIO45_KWBJ_OSBM28 +export b23492=AGIO45_KWBJ_OSBM29 +export b23493=AGIO45_KWBJ_OSBM30 +export b23494=AGIO45_KWBJ_OSBM31 +export b23495=AGIO45_KWBJ_OSBM32 diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f000 b/parm/parm_wave/grib2_gfswave.ao_9km.f000 new file mode 100644 index 0000000000..bd8c07adfa --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f000 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTA88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTA88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATA88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTA88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTA88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTA88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTA88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTA88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTA88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTA88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 0 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTA88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTA88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTA88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 0 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTA88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTA88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTA88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 0 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f003 b/parm/parm_wave/grib2_gfswave.ao_9km.f003 new file mode 100644 index 0000000000..02a8fae550 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f003 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTB88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTB88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATB88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTB88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTB88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTB88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTB88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTB88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTB88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTB88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 3 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTB88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTB88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTB88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 3 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTB88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTB88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTB88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 3 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f006 b/parm/parm_wave/grib2_gfswave.ao_9km.f006 new file mode 100644 index 0000000000..9166dac9aa --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f006 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTC88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTC88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATC88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTC88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTC88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTC88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTC88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTC88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTC88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTC88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 6 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTC88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTC88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTC88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 6 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTC88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTC88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTC88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 6 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f009 b/parm/parm_wave/grib2_gfswave.ao_9km.f009 new file mode 100644 index 0000000000..ad03ea4703 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f009 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTD88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTD88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATD88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTD88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTD88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTD88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTD88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTD88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTD88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTD88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 9 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTD88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTD88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTD88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 9 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTD88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTD88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTD88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 9 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f012 b/parm/parm_wave/grib2_gfswave.ao_9km.f012 new file mode 100644 index 0000000000..b7e1b8f637 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f012 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTE88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTE88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATE88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTE88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTE88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTE88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTE88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTE88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTE88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTE88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 12 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTE88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTE88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTE88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 12 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTE88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTE88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTE88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 12 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f015 b/parm/parm_wave/grib2_gfswave.ao_9km.f015 new file mode 100644 index 0000000000..bebde1b724 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f015 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTF88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTF88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATF88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTF88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTF88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTF88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTF88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTF88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTF88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTF88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 15 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTF88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTF88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTF88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 15 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTF88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTF88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTF88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 15 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f018 b/parm/parm_wave/grib2_gfswave.ao_9km.f018 new file mode 100644 index 0000000000..98e94ed3ff --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f018 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTG88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTG88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATG88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTG88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTG88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTG88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTG88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTG88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTG88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTG88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 18 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTG88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTG88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTG88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 18 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTG88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTG88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTG88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 18 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f021 b/parm/parm_wave/grib2_gfswave.ao_9km.f021 new file mode 100644 index 0000000000..eaedce9ea6 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f021 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTH88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTH88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATH88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTH88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTH88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTH88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTH88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTH88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTH88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTH88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 21 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTH88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTH88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTH88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 21 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTH88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTH88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTH88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 21 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f024 b/parm/parm_wave/grib2_gfswave.ao_9km.f024 new file mode 100644 index 0000000000..64dfd856b1 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f024 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTI88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTI88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTI88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTI88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTI88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTI88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 24 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTI88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 24 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTI88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 24 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f027 b/parm/parm_wave/grib2_gfswave.ao_9km.f027 new file mode 100644 index 0000000000..080077a2de --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f027 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTI88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTI88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTI88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTI88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTI88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTI88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 27 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTI88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 27 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTI88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 27 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f030 b/parm/parm_wave/grib2_gfswave.ao_9km.f030 new file mode 100644 index 0000000000..fc7a3a350e --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f030 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTJ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTJ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTJ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTJ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTJ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTJ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 30 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTJ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 30 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTJ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 30 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f033 b/parm/parm_wave/grib2_gfswave.ao_9km.f033 new file mode 100644 index 0000000000..505911229f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f033 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTJ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTJ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTJ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTJ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTJ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTJ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 33 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTJ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 33 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTJ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 33 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f036 b/parm/parm_wave/grib2_gfswave.ao_9km.f036 new file mode 100644 index 0000000000..56a5e0e2f2 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f036 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTK88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTK88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTK88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTK88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTK88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTK88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 36 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTK88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 36 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTK88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 36 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f039 b/parm/parm_wave/grib2_gfswave.ao_9km.f039 new file mode 100644 index 0000000000..0693f2bc40 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f039 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTK88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTK88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTK88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTK88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTK88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTK88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 39 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTK88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 39 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTK88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 39 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f042 b/parm/parm_wave/grib2_gfswave.ao_9km.f042 new file mode 100644 index 0000000000..cac1f66a6c --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f042 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTL88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTL88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTL88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTL88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTL88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTL88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 42 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTL88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 42 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTL88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 42 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f045 b/parm/parm_wave/grib2_gfswave.ao_9km.f045 new file mode 100644 index 0000000000..f9a99d13bf --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f045 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTL88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTL88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTL88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTL88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTL88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTL88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 45 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTL88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 45 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTL88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 45 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f048 b/parm/parm_wave/grib2_gfswave.ao_9km.f048 new file mode 100644 index 0000000000..b570ab7c4d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f048 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTM88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTM88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTM88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTM88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTM88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTM88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 48 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTM88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 48 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTM88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 48 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f051 b/parm/parm_wave/grib2_gfswave.ao_9km.f051 new file mode 100644 index 0000000000..9c700657ca --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f051 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTM88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTM88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTM88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTM88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTM88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTM88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 51 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTM88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 51 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTM88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 51 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f054 b/parm/parm_wave/grib2_gfswave.ao_9km.f054 new file mode 100644 index 0000000000..4043a5e515 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f054 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTX88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTX88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTX88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTX88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTX88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTX88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 54 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTX88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 54 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTX88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 54 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f057 b/parm/parm_wave/grib2_gfswave.ao_9km.f057 new file mode 100644 index 0000000000..50f40538e4 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f057 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTX88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTX88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTX88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTX88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTX88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTX88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 57 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTX88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 57 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTX88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 57 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f060 b/parm/parm_wave/grib2_gfswave.ao_9km.f060 new file mode 100644 index 0000000000..e696f31665 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f060 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTN88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTN88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTN88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTN88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTN88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTN88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 60 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTN88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 60 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTN88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 60 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f063 b/parm/parm_wave/grib2_gfswave.ao_9km.f063 new file mode 100644 index 0000000000..c03ee50a2e --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f063 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTN88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTN88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTN88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTN88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTN88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTN88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 63 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTN88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 63 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTN88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 63 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f066 b/parm/parm_wave/grib2_gfswave.ao_9km.f066 new file mode 100644 index 0000000000..842ebdac19 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f066 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTY88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTY88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTY88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTY88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTY88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTY88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 66 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTY88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 66 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTY88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 66 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f069 b/parm/parm_wave/grib2_gfswave.ao_9km.f069 new file mode 100644 index 0000000000..2c44dd2bc8 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f069 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTY88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTY88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTY88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTY88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTY88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTY88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 69 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTY88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 69 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTY88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 69 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f072 b/parm/parm_wave/grib2_gfswave.ao_9km.f072 new file mode 100644 index 0000000000..eb75a8f5af --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f072 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTO88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTO88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTO88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTO88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTO88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTO88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 72 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTO88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 72 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTO88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 72 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f078 b/parm/parm_wave/grib2_gfswave.ao_9km.f078 new file mode 100644 index 0000000000..c938a909e0 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f078 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTO88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTO88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTO88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTO88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTO88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTO88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 78 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTO88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 78 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTO88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 78 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f084 b/parm/parm_wave/grib2_gfswave.ao_9km.f084 new file mode 100644 index 0000000000..9f11fc5c18 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f084 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTP88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTP88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTP88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTP88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTP88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTP88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 84 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTP88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 84 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTP88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 84 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f090 b/parm/parm_wave/grib2_gfswave.ao_9km.f090 new file mode 100644 index 0000000000..f3c52a2171 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f090 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTP88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTP88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTP88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTP88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTP88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTP88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 90 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTP88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 90 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTP88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 90 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f096 b/parm/parm_wave/grib2_gfswave.ao_9km.f096 new file mode 100644 index 0000000000..df9f5793cd --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f096 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTQ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTQ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTQ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTQ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTQ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTQ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 96 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTQ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 96 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTQ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 96 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f102 b/parm/parm_wave/grib2_gfswave.ao_9km.f102 new file mode 100644 index 0000000000..1558071b8f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f102 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTQ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTQ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTQ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTQ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTQ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTQ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 102 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTQ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 102 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTQ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 102 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f108 b/parm/parm_wave/grib2_gfswave.ao_9km.f108 new file mode 100644 index 0000000000..41543b4d86 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f108 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTZ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTZ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTZ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTZ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTZ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTZ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 108 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTZ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 108 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTZ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 108 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f114 b/parm/parm_wave/grib2_gfswave.ao_9km.f114 new file mode 100644 index 0000000000..d42dcb3da6 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f114 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTZ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTZ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTZ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTZ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTZ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTZ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 114 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTZ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 114 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTZ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 114 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f120 b/parm/parm_wave/grib2_gfswave.ao_9km.f120 new file mode 100644 index 0000000000..5b0b3538c3 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f120 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTR88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTR88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTR88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTR88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTR88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTR88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 120 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTR88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 120 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTR88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 120 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f126 b/parm/parm_wave/grib2_gfswave.ao_9km.f126 new file mode 100644 index 0000000000..148f9a9a12 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f126 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTR88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTR88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTR88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTR88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTR88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTR88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 126 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTR88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 126 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTR88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 126 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f132 b/parm/parm_wave/grib2_gfswave.ao_9km.f132 new file mode 100644 index 0000000000..9daea35eec --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f132 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTS88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTS88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTS88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTS88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTS88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTS88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 132 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTS88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 132 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTS88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 132 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f138 b/parm/parm_wave/grib2_gfswave.ao_9km.f138 new file mode 100644 index 0000000000..0b29e8706d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f138 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTS88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTS88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTS88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTS88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTS88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTS88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 138 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTS88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 138 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTS88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 138 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f144 b/parm/parm_wave/grib2_gfswave.ao_9km.f144 new file mode 100644 index 0000000000..240f35b7ea --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f144 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTT88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTT88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTT88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTT88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTT88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTT88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 144 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTT88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 144 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTT88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 144 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f150 b/parm/parm_wave/grib2_gfswave.ao_9km.f150 new file mode 100644 index 0000000000..25d79d2de0 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f150 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTT88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTT88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTT88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTT88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTT88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTT88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 150 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTT88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 150 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTT88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 150 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f156 b/parm/parm_wave/grib2_gfswave.ao_9km.f156 new file mode 100644 index 0000000000..3f9f9e7cb7 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f156 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTU88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTU88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTU88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTU88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTU88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTU88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 156 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTU88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 156 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTU88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 156 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f162 b/parm/parm_wave/grib2_gfswave.ao_9km.f162 new file mode 100644 index 0000000000..9948e9d810 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f162 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTU88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTU88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTU88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTU88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTU88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTU88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 162 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTU88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 162 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTU88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 162 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f168 b/parm/parm_wave/grib2_gfswave.ao_9km.f168 new file mode 100644 index 0000000000..97a4548532 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f168 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTV88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTV88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTV88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTV88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTV88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTV88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 168 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTV88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 168 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTV88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 168 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f174 b/parm/parm_wave/grib2_gfswave.ao_9km.f174 new file mode 100644 index 0000000000..ebc56be0ae --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f174 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTV88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTV88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTV88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTV88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTV88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTV88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 174 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTV88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 174 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTV88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 174 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ao_9km.f180 b/parm/parm_wave/grib2_gfswave.ao_9km.f180 new file mode 100644 index 0000000000..527ec3a760 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ao_9km.f180 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQTW88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERTW88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' UGRD Surface ',WMOHEAD='EATW88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' VGRD Surface ',WMOHEAD='EBTW88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECTW88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJTW88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKTW88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELTW88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTW88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOTW88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 180 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMTW88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTW88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYTW88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 180 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENTW88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTW88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPTW88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 180 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f000 b/parm/parm_wave/grib2_gfswave.at_10m.f000 new file mode 100644 index 0000000000..d477dab5b5 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f000 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBA88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBA88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABA88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBA88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBA88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBA88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBA88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBA88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBA88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBA88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 0 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBA88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBA88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBA88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 0 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBA88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBA88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBA88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 0 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f003 b/parm/parm_wave/grib2_gfswave.at_10m.f003 new file mode 100644 index 0000000000..de559c5259 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f003 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBB88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBB88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABB88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBB88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBB88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBB88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBB88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBB88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBB88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBB88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 3 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBB88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBB88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBB88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 3 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBB88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBB88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBB88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 3 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f006 b/parm/parm_wave/grib2_gfswave.at_10m.f006 new file mode 100644 index 0000000000..083706ac70 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f006 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBC88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBC88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABC88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBC88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBC88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBC88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBC88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBC88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBC88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBC88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 6 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBC88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBC88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBC88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 6 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBC88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBC88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBC88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 6 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f009 b/parm/parm_wave/grib2_gfswave.at_10m.f009 new file mode 100644 index 0000000000..a9edacbcc9 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f009 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBD88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBD88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABD88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBD88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBD88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBD88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBD88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBD88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBD88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBD88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 9 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBD88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBD88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBD88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 9 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBD88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBD88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBD88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 9 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f012 b/parm/parm_wave/grib2_gfswave.at_10m.f012 new file mode 100644 index 0000000000..5a99330ec0 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f012 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBE88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBE88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABE88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBE88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBE88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBE88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBE88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBE88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBE88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBE88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 12 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBE88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBE88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBE88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 12 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBE88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBE88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBE88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 12 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f015 b/parm/parm_wave/grib2_gfswave.at_10m.f015 new file mode 100644 index 0000000000..ca140775e7 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f015 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBF88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBF88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABF88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBF88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBF88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBF88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBF88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBF88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBF88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBF88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 15 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBF88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBF88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBF88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 15 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBF88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBF88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBF88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 15 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f018 b/parm/parm_wave/grib2_gfswave.at_10m.f018 new file mode 100644 index 0000000000..edad98ca56 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f018 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBG88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBG88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABG88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBG88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBG88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBG88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBG88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBG88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBG88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBG88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 18 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBG88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBG88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBG88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 18 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBG88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBG88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBG88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 18 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f021 b/parm/parm_wave/grib2_gfswave.at_10m.f021 new file mode 100644 index 0000000000..fcd2c2ce53 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f021 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBH88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBH88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABH88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBH88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBH88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBH88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBH88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBH88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBH88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBH88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 21 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBH88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBH88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBH88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 21 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBH88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBH88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBH88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 21 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f024 b/parm/parm_wave/grib2_gfswave.at_10m.f024 new file mode 100644 index 0000000000..45b9d8a4ec --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f024 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBI88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBI88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBI88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBI88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBI88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBI88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 24 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBI88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 24 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBI88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 24 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f027 b/parm/parm_wave/grib2_gfswave.at_10m.f027 new file mode 100644 index 0000000000..689bf6af9b --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f027 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBI88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBI88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBI88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBI88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBI88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBI88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 27 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBI88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 27 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBI88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 27 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f030 b/parm/parm_wave/grib2_gfswave.at_10m.f030 new file mode 100644 index 0000000000..a6ced8144d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f030 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBJ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBJ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBJ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBJ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBJ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBJ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 30 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBJ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 30 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBJ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 30 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f033 b/parm/parm_wave/grib2_gfswave.at_10m.f033 new file mode 100644 index 0000000000..0a8fc7537c --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f033 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBJ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBJ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBJ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBJ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBJ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBJ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 33 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBJ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 33 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBJ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 33 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f036 b/parm/parm_wave/grib2_gfswave.at_10m.f036 new file mode 100644 index 0000000000..e886e1578d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f036 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBK88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBK88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBK88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBK88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBK88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBK88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 36 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBK88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 36 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBK88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 36 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f039 b/parm/parm_wave/grib2_gfswave.at_10m.f039 new file mode 100644 index 0000000000..30f98c8455 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f039 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBK88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBK88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBK88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBK88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBK88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBK88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 39 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBK88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 39 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBK88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 39 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f042 b/parm/parm_wave/grib2_gfswave.at_10m.f042 new file mode 100644 index 0000000000..a46567d18e --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f042 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBL88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBL88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBL88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBL88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBL88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBL88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 42 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBL88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 42 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBL88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 42 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f045 b/parm/parm_wave/grib2_gfswave.at_10m.f045 new file mode 100644 index 0000000000..b7e34b3160 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f045 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBL88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBL88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBL88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBL88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBL88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBL88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 45 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBL88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 45 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBL88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 45 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f048 b/parm/parm_wave/grib2_gfswave.at_10m.f048 new file mode 100644 index 0000000000..8590d97c8f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f048 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBM88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBM88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBM88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBM88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBM88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBM88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 48 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBM88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 48 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBM88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 48 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f051 b/parm/parm_wave/grib2_gfswave.at_10m.f051 new file mode 100644 index 0000000000..4facc85576 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f051 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBM88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBM88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBM88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBM88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBM88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBM88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 51 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBM88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 51 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBM88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 51 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f054 b/parm/parm_wave/grib2_gfswave.at_10m.f054 new file mode 100644 index 0000000000..56b4b166fc --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f054 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBX88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBX88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBX88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBX88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBX88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBX88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 54 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBX88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 54 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBX88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 54 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f057 b/parm/parm_wave/grib2_gfswave.at_10m.f057 new file mode 100644 index 0000000000..62f017e4bb --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f057 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBX88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBX88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBX88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBX88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBX88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBX88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 57 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBX88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 57 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBX88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 57 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f060 b/parm/parm_wave/grib2_gfswave.at_10m.f060 new file mode 100644 index 0000000000..1d36770e68 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f060 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBN88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBN88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBN88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBN88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBN88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBN88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 60 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBN88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 60 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBN88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 60 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f063 b/parm/parm_wave/grib2_gfswave.at_10m.f063 new file mode 100644 index 0000000000..9bf847403e --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f063 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBN88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBN88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBN88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBN88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBN88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBN88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 63 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBN88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 63 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBN88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 63 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f066 b/parm/parm_wave/grib2_gfswave.at_10m.f066 new file mode 100644 index 0000000000..45276d44c1 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f066 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBY88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBY88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBY88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBY88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBY88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBY88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 66 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBY88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 66 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBY88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 66 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f069 b/parm/parm_wave/grib2_gfswave.at_10m.f069 new file mode 100644 index 0000000000..8b729955bc --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f069 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBY88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBY88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBY88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBY88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBY88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBY88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 69 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBY88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 69 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBY88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 69 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f072 b/parm/parm_wave/grib2_gfswave.at_10m.f072 new file mode 100644 index 0000000000..1434f76cad --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f072 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBO88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBO88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBO88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBO88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBO88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBO88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 72 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBO88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 72 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBO88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 72 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f078 b/parm/parm_wave/grib2_gfswave.at_10m.f078 new file mode 100644 index 0000000000..5d2e7d8bc8 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f078 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBO88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBO88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBO88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBO88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBO88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBO88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 78 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBO88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 78 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBO88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 78 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f084 b/parm/parm_wave/grib2_gfswave.at_10m.f084 new file mode 100644 index 0000000000..7b3b2aa731 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f084 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBP88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBP88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBP88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBP88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBP88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBP88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 84 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBP88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 84 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBP88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 84 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f090 b/parm/parm_wave/grib2_gfswave.at_10m.f090 new file mode 100644 index 0000000000..8ba15ede53 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f090 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBP88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBP88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBP88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBP88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBP88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBP88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 90 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBP88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 90 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBP88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 90 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f096 b/parm/parm_wave/grib2_gfswave.at_10m.f096 new file mode 100644 index 0000000000..cc07a2d6f5 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f096 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBQ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBQ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBQ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBQ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBQ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBQ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 96 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBQ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 96 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBQ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 96 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f102 b/parm/parm_wave/grib2_gfswave.at_10m.f102 new file mode 100644 index 0000000000..220c5180a0 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f102 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBQ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBQ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBQ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBQ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBQ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBQ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 102 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBQ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 102 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBQ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 102 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f108 b/parm/parm_wave/grib2_gfswave.at_10m.f108 new file mode 100644 index 0000000000..d84639c5c1 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f108 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBZ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBZ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBZ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBZ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBZ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBZ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 108 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBZ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 108 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBZ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 108 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f114 b/parm/parm_wave/grib2_gfswave.at_10m.f114 new file mode 100644 index 0000000000..8503d62ca0 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f114 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBZ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBZ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBZ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBZ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBZ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBZ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 114 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBZ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 114 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBZ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 114 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f120 b/parm/parm_wave/grib2_gfswave.at_10m.f120 new file mode 100644 index 0000000000..9a4331916f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f120 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBR88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBR88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBR88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBR88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBR88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBR88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 120 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBR88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 120 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBR88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 120 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f126 b/parm/parm_wave/grib2_gfswave.at_10m.f126 new file mode 100644 index 0000000000..83b01f5cdd --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f126 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBR88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBR88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBR88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBR88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBR88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBR88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 126 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBR88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 126 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBR88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 126 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f132 b/parm/parm_wave/grib2_gfswave.at_10m.f132 new file mode 100644 index 0000000000..5ac9fc5277 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f132 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBS88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBS88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBS88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBS88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBS88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBS88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 132 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBS88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 132 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBS88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 132 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f138 b/parm/parm_wave/grib2_gfswave.at_10m.f138 new file mode 100644 index 0000000000..bcc102965d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f138 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBS88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBS88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBS88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBS88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBS88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBS88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 138 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBS88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 138 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBS88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 138 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f144 b/parm/parm_wave/grib2_gfswave.at_10m.f144 new file mode 100644 index 0000000000..144487aad3 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f144 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBT88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBT88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBT88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBT88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBT88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBT88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 144 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBT88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 144 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBT88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 144 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f150 b/parm/parm_wave/grib2_gfswave.at_10m.f150 new file mode 100644 index 0000000000..d5d68ae51d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f150 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBT88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBT88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBT88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBT88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBT88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBT88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 150 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBT88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 150 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBT88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 150 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f156 b/parm/parm_wave/grib2_gfswave.at_10m.f156 new file mode 100644 index 0000000000..05552c9575 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f156 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBU88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBU88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBU88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBU88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBU88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBU88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 156 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBU88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 156 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBU88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 156 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f162 b/parm/parm_wave/grib2_gfswave.at_10m.f162 new file mode 100644 index 0000000000..5aab798d36 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f162 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBU88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBU88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBU88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBU88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBU88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBU88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 162 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBU88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 162 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBU88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 162 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f168 b/parm/parm_wave/grib2_gfswave.at_10m.f168 new file mode 100644 index 0000000000..2d660fcc97 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f168 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBV88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBV88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBV88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBV88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBV88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBV88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 168 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBV88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 168 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBV88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 168 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f174 b/parm/parm_wave/grib2_gfswave.at_10m.f174 new file mode 100644 index 0000000000..1acd3d8d5e --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f174 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBV88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBV88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBV88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBV88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBV88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBV88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 174 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBV88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 174 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBV88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 174 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.at_10m.f180 b/parm/parm_wave/grib2_gfswave.at_10m.f180 new file mode 100644 index 0000000000..7166559be0 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.at_10m.f180 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQBW88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERBW88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EABW88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBBW88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECBW88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJBW88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKBW88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELBW88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBW88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOBW88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 180 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMBW88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBW88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYBW88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 180 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENBW88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBW88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPBW88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 180 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f000 b/parm/parm_wave/grib2_gfswave.ep_10m.f000 new file mode 100644 index 0000000000..f8d065cf4b --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f000 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDA88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDA88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADA88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDA88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDA88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDA88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDA88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDA88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODA88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODA88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 0 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDA88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDA88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDA88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 0 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDA88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDA88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDA88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 0 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f003 b/parm/parm_wave/grib2_gfswave.ep_10m.f003 new file mode 100644 index 0000000000..115803fd63 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f003 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDB88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDB88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADB88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDB88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDB88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDB88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDB88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDB88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODB88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODB88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 3 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDB88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDB88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDB88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 3 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDB88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDB88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDB88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 3 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f006 b/parm/parm_wave/grib2_gfswave.ep_10m.f006 new file mode 100644 index 0000000000..065d4288c8 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f006 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDC88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDC88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADC88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDC88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDC88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDC88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDC88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDC88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODC88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODC88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 6 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDC88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDC88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDC88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 6 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDC88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDC88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDC88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 6 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f009 b/parm/parm_wave/grib2_gfswave.ep_10m.f009 new file mode 100644 index 0000000000..d80dc1b7d3 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f009 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDD88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDD88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADD88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDD88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDD88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDD88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDD88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDD88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODD88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODD88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 9 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDD88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDD88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDD88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 9 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDD88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDD88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDD88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 9 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f012 b/parm/parm_wave/grib2_gfswave.ep_10m.f012 new file mode 100644 index 0000000000..cc3e77a1da --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f012 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDE88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDE88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADE88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDE88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDE88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDE88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDE88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDE88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODE88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODE88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 12 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDE88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDE88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDE88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 12 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDE88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDE88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDE88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 12 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f015 b/parm/parm_wave/grib2_gfswave.ep_10m.f015 new file mode 100644 index 0000000000..c6d3895bb7 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f015 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDF88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDF88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADF88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDF88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDF88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDF88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDF88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDF88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODF88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODF88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 15 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDF88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDF88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDF88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 15 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDF88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDF88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDF88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 15 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f018 b/parm/parm_wave/grib2_gfswave.ep_10m.f018 new file mode 100644 index 0000000000..5208836607 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f018 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDG88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDG88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADG88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDG88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDG88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDG88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDG88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDG88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODG88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODG88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 18 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDG88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDG88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDG88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 18 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDG88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDG88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDG88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 18 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f021 b/parm/parm_wave/grib2_gfswave.ep_10m.f021 new file mode 100644 index 0000000000..92e9cd6082 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f021 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDH88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDH88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADH88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDH88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDH88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDH88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDH88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDH88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODH88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODH88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 21 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDH88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDH88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDH88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 21 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDH88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDH88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDH88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 21 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f024 b/parm/parm_wave/grib2_gfswave.ep_10m.f024 new file mode 100644 index 0000000000..a92bba3c82 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f024 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDI88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDI88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDI88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDI88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDI88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDI88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 24 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDI88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 24 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDI88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 24 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f027 b/parm/parm_wave/grib2_gfswave.ep_10m.f027 new file mode 100644 index 0000000000..d406120246 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f027 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDI88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDI88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDI88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDI88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDI88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDI88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 27 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDI88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 27 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDI88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 27 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f030 b/parm/parm_wave/grib2_gfswave.ep_10m.f030 new file mode 100644 index 0000000000..ddd9876470 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f030 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDJ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDJ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDJ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDJ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDJ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDJ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 30 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDJ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 30 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDJ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 30 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f033 b/parm/parm_wave/grib2_gfswave.ep_10m.f033 new file mode 100644 index 0000000000..17b366b526 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f033 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDJ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDJ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDJ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDJ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDJ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDJ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 33 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDJ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 33 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDJ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 33 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f036 b/parm/parm_wave/grib2_gfswave.ep_10m.f036 new file mode 100644 index 0000000000..dc07f4c40c --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f036 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDK88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDK88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDK88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDK88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDK88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDK88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 36 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDK88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 36 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDK88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 36 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f039 b/parm/parm_wave/grib2_gfswave.ep_10m.f039 new file mode 100644 index 0000000000..cac056faca --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f039 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDK88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDK88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDK88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDK88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDK88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDK88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 39 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDK88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 39 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDK88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 39 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f042 b/parm/parm_wave/grib2_gfswave.ep_10m.f042 new file mode 100644 index 0000000000..26e25bda57 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f042 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDL88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDL88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDL88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDL88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDL88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDL88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 42 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDL88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 42 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDL88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 42 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f045 b/parm/parm_wave/grib2_gfswave.ep_10m.f045 new file mode 100644 index 0000000000..1de3d4f408 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f045 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDL88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDL88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDL88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDL88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDL88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDL88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 45 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDL88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 45 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDL88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 45 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f048 b/parm/parm_wave/grib2_gfswave.ep_10m.f048 new file mode 100644 index 0000000000..085c0ef3a0 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f048 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDM88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDM88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDM88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDM88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDM88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDM88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 48 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDM88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 48 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDM88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 48 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f051 b/parm/parm_wave/grib2_gfswave.ep_10m.f051 new file mode 100644 index 0000000000..e5ad1dba9d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f051 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDM88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDM88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDM88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDM88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDM88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDM88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 51 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDM88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 51 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDM88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 51 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f054 b/parm/parm_wave/grib2_gfswave.ep_10m.f054 new file mode 100644 index 0000000000..a3f52e7d27 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f054 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDX88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDX88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDX88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDX88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDX88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDX88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 54 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDX88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 54 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDX88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 54 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f057 b/parm/parm_wave/grib2_gfswave.ep_10m.f057 new file mode 100644 index 0000000000..3899e47823 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f057 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDX88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDX88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDX88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDX88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDX88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDX88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 57 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDX88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 57 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDX88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 57 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f060 b/parm/parm_wave/grib2_gfswave.ep_10m.f060 new file mode 100644 index 0000000000..a28c999042 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f060 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDN88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDN88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDN88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDN88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDN88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDN88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 60 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDN88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 60 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDN88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 60 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f063 b/parm/parm_wave/grib2_gfswave.ep_10m.f063 new file mode 100644 index 0000000000..f13e736383 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f063 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDN88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDN88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDN88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDN88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDN88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDN88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 63 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDN88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 63 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDN88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 63 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f066 b/parm/parm_wave/grib2_gfswave.ep_10m.f066 new file mode 100644 index 0000000000..f598f767a0 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f066 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDY88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDY88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDY88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDY88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDY88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDY88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 66 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDY88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 66 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDY88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 66 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f069 b/parm/parm_wave/grib2_gfswave.ep_10m.f069 new file mode 100644 index 0000000000..3a05f77135 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f069 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDY88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDY88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDY88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDY88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDY88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDY88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 69 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDY88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 69 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDY88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 69 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f072 b/parm/parm_wave/grib2_gfswave.ep_10m.f072 new file mode 100644 index 0000000000..482076b5c8 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f072 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDO88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDO88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDO88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDO88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDO88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDO88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 72 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDO88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 72 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDO88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 72 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f078 b/parm/parm_wave/grib2_gfswave.ep_10m.f078 new file mode 100644 index 0000000000..8b1170193f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f078 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDO88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDO88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDO88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDO88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDO88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDO88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 78 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDO88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 78 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDO88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 78 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f084 b/parm/parm_wave/grib2_gfswave.ep_10m.f084 new file mode 100644 index 0000000000..e566a3a375 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f084 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDP88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDP88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDP88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDP88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDP88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDP88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 84 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDP88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 84 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDP88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 84 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f090 b/parm/parm_wave/grib2_gfswave.ep_10m.f090 new file mode 100644 index 0000000000..5a16bed734 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f090 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDP88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDP88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDP88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDP88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDP88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDP88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 90 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDP88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 90 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDP88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 90 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f096 b/parm/parm_wave/grib2_gfswave.ep_10m.f096 new file mode 100644 index 0000000000..7810dd8b21 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f096 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDQ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDQ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDQ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDQ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDQ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDQ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 96 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDQ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 96 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDQ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 96 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f102 b/parm/parm_wave/grib2_gfswave.ep_10m.f102 new file mode 100644 index 0000000000..7e8bdf4ab2 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f102 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDQ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDQ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDQ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDQ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDQ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDQ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 102 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDQ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 102 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDQ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 102 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f108 b/parm/parm_wave/grib2_gfswave.ep_10m.f108 new file mode 100644 index 0000000000..0844a51d9b --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f108 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDZ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDZ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDZ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDZ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDZ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDZ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 108 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDZ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 108 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDZ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 108 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f114 b/parm/parm_wave/grib2_gfswave.ep_10m.f114 new file mode 100644 index 0000000000..c53b21d622 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f114 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDZ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDZ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDZ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDZ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDZ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDZ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 114 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDZ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 114 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDZ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 114 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f120 b/parm/parm_wave/grib2_gfswave.ep_10m.f120 new file mode 100644 index 0000000000..caa597569b --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f120 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDR88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDR88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDR88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDR88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDR88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDR88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 120 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDR88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 120 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDR88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 120 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f126 b/parm/parm_wave/grib2_gfswave.ep_10m.f126 new file mode 100644 index 0000000000..c2bf8697f2 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f126 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDR88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDR88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDR88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDR88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDR88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDR88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 126 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDR88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 126 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDR88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 126 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f132 b/parm/parm_wave/grib2_gfswave.ep_10m.f132 new file mode 100644 index 0000000000..f6021aaae1 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f132 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDS88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDS88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDS88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDS88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDS88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDS88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 132 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDS88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 132 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDS88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 132 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f138 b/parm/parm_wave/grib2_gfswave.ep_10m.f138 new file mode 100644 index 0000000000..303f65efd6 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f138 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDS88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDS88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDS88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDS88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDS88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDS88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 138 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDS88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 138 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDS88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 138 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f144 b/parm/parm_wave/grib2_gfswave.ep_10m.f144 new file mode 100644 index 0000000000..713fd1ce1a --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f144 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDT88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDT88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDT88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDT88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDT88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDT88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 144 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDT88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 144 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDT88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 144 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f150 b/parm/parm_wave/grib2_gfswave.ep_10m.f150 new file mode 100644 index 0000000000..35cd044bc5 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f150 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDT88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDT88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDT88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDT88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDT88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDT88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 150 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDT88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 150 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDT88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 150 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f156 b/parm/parm_wave/grib2_gfswave.ep_10m.f156 new file mode 100644 index 0000000000..a61f769843 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f156 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDU88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDU88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDU88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDU88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDU88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDU88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 156 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDU88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 156 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDU88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 156 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f162 b/parm/parm_wave/grib2_gfswave.ep_10m.f162 new file mode 100644 index 0000000000..71eb7d1501 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f162 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDU88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDU88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDU88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDU88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDU88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDU88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 162 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDU88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 162 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDU88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 162 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f168 b/parm/parm_wave/grib2_gfswave.ep_10m.f168 new file mode 100644 index 0000000000..343a165fa9 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f168 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDV88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDV88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDV88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDV88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDV88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDV88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 168 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDV88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 168 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDV88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 168 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f174 b/parm/parm_wave/grib2_gfswave.ep_10m.f174 new file mode 100644 index 0000000000..cf57aea145 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f174 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDV88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDV88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDV88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDV88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDV88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDV88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 174 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDV88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 174 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDV88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 174 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.ep_10m.f180 b/parm/parm_wave/grib2_gfswave.ep_10m.f180 new file mode 100644 index 0000000000..7ce0873b6f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.ep_10m.f180 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQDW88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERDW88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EADW88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBDW88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECDW88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJDW88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKDW88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELDW88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODW88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EODW88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 180 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMDW88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDW88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYDW88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 180 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENDW88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDW88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPDW88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 180 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f000 b/parm/parm_wave/grib2_gfswave.glo_30m.f000 new file mode 100644 index 0000000000..66ff96c803 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f000 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAA88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAA88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAA88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAA88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAA88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAA88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAA88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAA88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAA88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAA88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 0 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAA88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAA88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAA88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 0 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAA88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAA88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAA88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 0 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f003 b/parm/parm_wave/grib2_gfswave.glo_30m.f003 new file mode 100644 index 0000000000..9b5200fe14 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f003 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAB88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAB88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAB88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAB88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAB88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAB88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAB88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAB88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAB88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAB88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 3 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAB88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAB88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAB88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 3 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAB88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAB88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAB88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 3 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f006 b/parm/parm_wave/grib2_gfswave.glo_30m.f006 new file mode 100644 index 0000000000..b8ea82ce76 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f006 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAC88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAC88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAC88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAC88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAC88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAC88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAC88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAC88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAC88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAC88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 6 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAC88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAC88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAC88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 6 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAC88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAC88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAC88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 6 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f009 b/parm/parm_wave/grib2_gfswave.glo_30m.f009 new file mode 100644 index 0000000000..57b88e5db6 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f009 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAD88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAD88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAD88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAD88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAD88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAD88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAD88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAD88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAD88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAD88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 9 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAD88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAD88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAD88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 9 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAD88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAD88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAD88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 9 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f012 b/parm/parm_wave/grib2_gfswave.glo_30m.f012 new file mode 100644 index 0000000000..3e6c098b84 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f012 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAE88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAE88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAE88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAE88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAE88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAE88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAE88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAE88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAE88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAE88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 12 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAE88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAE88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAE88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 12 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAE88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAE88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAE88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 12 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f015 b/parm/parm_wave/grib2_gfswave.glo_30m.f015 new file mode 100644 index 0000000000..28c2420b30 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f015 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAF88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAF88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAF88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAF88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAF88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAF88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAF88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAF88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAF88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAF88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 15 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAF88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAF88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAF88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 15 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAF88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAF88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAF88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 15 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f018 b/parm/parm_wave/grib2_gfswave.glo_30m.f018 new file mode 100644 index 0000000000..a6ded38ecf --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f018 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAG88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAG88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAG88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAG88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAG88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAG88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAG88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAG88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAG88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAG88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 18 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAG88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAG88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAG88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 18 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAG88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAG88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAG88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 18 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f021 b/parm/parm_wave/grib2_gfswave.glo_30m.f021 new file mode 100644 index 0000000000..ddaaad80f5 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f021 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAH88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAH88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAH88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAH88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAH88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAH88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAH88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAH88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAH88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAH88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 21 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAH88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAH88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAH88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 21 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAH88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAH88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAH88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 21 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f024 b/parm/parm_wave/grib2_gfswave.glo_30m.f024 new file mode 100644 index 0000000000..f08b512272 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f024 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAI88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAI88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAI88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAI88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAI88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAI88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 24 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAI88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 24 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAI88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 24 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f027 b/parm/parm_wave/grib2_gfswave.glo_30m.f027 new file mode 100644 index 0000000000..926f7db837 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f027 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAI88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAI88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAI88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAI88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAI88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAI88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 27 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAI88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 27 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAI88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 27 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f030 b/parm/parm_wave/grib2_gfswave.glo_30m.f030 new file mode 100644 index 0000000000..4799f6dff4 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f030 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAJ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAJ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAJ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAJ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAJ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAJ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 30 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAJ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 30 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAJ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 30 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f033 b/parm/parm_wave/grib2_gfswave.glo_30m.f033 new file mode 100644 index 0000000000..87f867858f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f033 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAJ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAJ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAJ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAJ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAJ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAJ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 33 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAJ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 33 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAJ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 33 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f036 b/parm/parm_wave/grib2_gfswave.glo_30m.f036 new file mode 100644 index 0000000000..c030fe540f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f036 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAK88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAK88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAK88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAK88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAK88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAK88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 36 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAK88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 36 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAK88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 36 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f039 b/parm/parm_wave/grib2_gfswave.glo_30m.f039 new file mode 100644 index 0000000000..af21e75e8e --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f039 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAK88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAK88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAK88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAK88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAK88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAK88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 39 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAK88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 39 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAK88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 39 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f042 b/parm/parm_wave/grib2_gfswave.glo_30m.f042 new file mode 100644 index 0000000000..6c2ed1db8c --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f042 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAL88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAL88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAL88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAL88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAL88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAL88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 42 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAL88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 42 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAL88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 42 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f045 b/parm/parm_wave/grib2_gfswave.glo_30m.f045 new file mode 100644 index 0000000000..e9af7c48d3 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f045 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAL88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAL88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAL88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAL88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAL88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAL88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 45 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAL88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 45 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAL88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 45 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f048 b/parm/parm_wave/grib2_gfswave.glo_30m.f048 new file mode 100644 index 0000000000..8e6f08ceda --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f048 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAM88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAM88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAM88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAM88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAM88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAM88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 48 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAM88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 48 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAM88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 48 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f051 b/parm/parm_wave/grib2_gfswave.glo_30m.f051 new file mode 100644 index 0000000000..7cf17bee6c --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f051 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAM88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAM88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAM88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAM88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAM88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAM88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 51 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAM88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 51 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAM88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 51 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f054 b/parm/parm_wave/grib2_gfswave.glo_30m.f054 new file mode 100644 index 0000000000..83230fbcb6 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f054 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAX88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAX88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAX88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAX88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAX88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAX88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 54 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAX88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 54 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAX88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 54 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f057 b/parm/parm_wave/grib2_gfswave.glo_30m.f057 new file mode 100644 index 0000000000..a16252d1dc --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f057 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAX88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAX88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAX88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAX88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAX88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAX88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 57 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAX88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 57 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAX88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 57 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f060 b/parm/parm_wave/grib2_gfswave.glo_30m.f060 new file mode 100644 index 0000000000..8657aaef61 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f060 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAN88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAN88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAN88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAN88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAN88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAN88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 60 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAN88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 60 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAN88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 60 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f063 b/parm/parm_wave/grib2_gfswave.glo_30m.f063 new file mode 100644 index 0000000000..10e770b94e --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f063 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAN88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAN88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAN88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAN88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAN88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAN88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 63 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAN88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 63 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAN88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 63 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f066 b/parm/parm_wave/grib2_gfswave.glo_30m.f066 new file mode 100644 index 0000000000..942497d603 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f066 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAY88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAY88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAY88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAY88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAY88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAY88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 66 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAY88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 66 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAY88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 66 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f069 b/parm/parm_wave/grib2_gfswave.glo_30m.f069 new file mode 100644 index 0000000000..839d3fb392 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f069 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAY88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAY88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAY88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAY88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAY88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAY88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 69 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAY88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 69 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAY88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 69 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f072 b/parm/parm_wave/grib2_gfswave.glo_30m.f072 new file mode 100644 index 0000000000..ea2af78e81 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f072 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAO88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAO88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAO88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAO88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAO88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAO88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 72 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAO88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 72 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAO88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 72 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f078 b/parm/parm_wave/grib2_gfswave.glo_30m.f078 new file mode 100644 index 0000000000..3021da6a37 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f078 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAO88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAO88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAO88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAO88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAO88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAO88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 78 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAO88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 78 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAO88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 78 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f084 b/parm/parm_wave/grib2_gfswave.glo_30m.f084 new file mode 100644 index 0000000000..4f6ebc8ff0 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f084 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAP88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAP88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAP88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAP88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAP88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAP88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 84 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAP88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 84 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAP88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 84 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f090 b/parm/parm_wave/grib2_gfswave.glo_30m.f090 new file mode 100644 index 0000000000..0045375fb2 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f090 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAP88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAP88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAP88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAP88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAP88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAP88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 90 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAP88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 90 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAP88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 90 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f096 b/parm/parm_wave/grib2_gfswave.glo_30m.f096 new file mode 100644 index 0000000000..28cd75597d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f096 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAQ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAQ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAQ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAQ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAQ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAQ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 96 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAQ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 96 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAQ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 96 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f102 b/parm/parm_wave/grib2_gfswave.glo_30m.f102 new file mode 100644 index 0000000000..b4528fae64 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f102 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAQ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAQ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAQ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAQ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAQ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAQ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 102 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAQ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 102 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAQ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 102 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f108 b/parm/parm_wave/grib2_gfswave.glo_30m.f108 new file mode 100644 index 0000000000..f34717ec73 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f108 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAZ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAZ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAZ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAZ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAZ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAZ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 108 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAZ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 108 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAZ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 108 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f114 b/parm/parm_wave/grib2_gfswave.glo_30m.f114 new file mode 100644 index 0000000000..d595cb13d9 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f114 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAZ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAZ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAZ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAZ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAZ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAZ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 114 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAZ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 114 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAZ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 114 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f120 b/parm/parm_wave/grib2_gfswave.glo_30m.f120 new file mode 100644 index 0000000000..cd13fb4123 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f120 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAR88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAR88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAR88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAR88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAR88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAR88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 120 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAR88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 120 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAR88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 120 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f126 b/parm/parm_wave/grib2_gfswave.glo_30m.f126 new file mode 100644 index 0000000000..44e08675da --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f126 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAR88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAR88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAR88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAR88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAR88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAR88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 126 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAR88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 126 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAR88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 126 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f132 b/parm/parm_wave/grib2_gfswave.glo_30m.f132 new file mode 100644 index 0000000000..5268404dee --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f132 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAS88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAS88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAS88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAS88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAS88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAS88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 132 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAS88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 132 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAS88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 132 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f138 b/parm/parm_wave/grib2_gfswave.glo_30m.f138 new file mode 100644 index 0000000000..fa38b3221e --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f138 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAS88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAS88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAS88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAS88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAS88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAS88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 138 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAS88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 138 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAS88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 138 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f144 b/parm/parm_wave/grib2_gfswave.glo_30m.f144 new file mode 100644 index 0000000000..d002662383 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f144 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAT88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAT88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAT88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAT88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAT88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAT88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 144 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAT88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 144 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAT88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 144 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f150 b/parm/parm_wave/grib2_gfswave.glo_30m.f150 new file mode 100644 index 0000000000..390306be21 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f150 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAT88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAT88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAT88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAT88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAT88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAT88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 150 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAT88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 150 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAT88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 150 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f156 b/parm/parm_wave/grib2_gfswave.glo_30m.f156 new file mode 100644 index 0000000000..4cd17d276d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f156 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAU88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAU88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAU88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAU88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAU88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAU88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 156 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAU88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 156 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAU88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 156 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f162 b/parm/parm_wave/grib2_gfswave.glo_30m.f162 new file mode 100644 index 0000000000..5d24d74cce --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f162 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAU88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAU88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAU88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAU88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAU88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAU88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 162 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAU88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 162 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAU88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 162 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f168 b/parm/parm_wave/grib2_gfswave.glo_30m.f168 new file mode 100644 index 0000000000..f9d5158852 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f168 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAV88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAV88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAV88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAV88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAV88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAV88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 168 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAV88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 168 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAV88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 168 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f174 b/parm/parm_wave/grib2_gfswave.glo_30m.f174 new file mode 100644 index 0000000000..dc7577d1e2 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f174 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAV88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAV88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAV88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAV88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAV88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAV88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 174 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAV88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 174 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAV88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 174 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.glo_30m.f180 b/parm/parm_wave/grib2_gfswave.glo_30m.f180 new file mode 100644 index 0000000000..9b94c0282f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.glo_30m.f180 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQAW88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERAW88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EAAW88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBAW88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECAW88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJAW88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKAW88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELAW88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAW88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOAW88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 180 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMAW88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAW88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYAW88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 180 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENAW88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAW88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPAW88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 180 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f000 b/parm/parm_wave/grib2_gfswave.wc_10m.f000 new file mode 100644 index 0000000000..de854de5fc --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f000 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCA88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCA88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACA88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCA88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCA88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCA88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCA88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCA88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCA88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCA88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 0 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCA88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCA88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCA88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 0 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCA88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 0 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCA88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 0 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCA88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 0 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f003 b/parm/parm_wave/grib2_gfswave.wc_10m.f003 new file mode 100644 index 0000000000..617e9e7b4f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f003 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCB88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCB88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACB88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCB88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCB88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCB88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCB88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCB88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCB88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCB88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 3 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCB88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCB88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCB88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 3 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCB88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 3 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCB88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 3 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCB88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 3 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f006 b/parm/parm_wave/grib2_gfswave.wc_10m.f006 new file mode 100644 index 0000000000..9ce20a63b1 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f006 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCC88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCC88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACC88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCC88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCC88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCC88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCC88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCC88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCC88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCC88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 6 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCC88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCC88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCC88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 6 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCC88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 6 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCC88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 6 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCC88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 6 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f009 b/parm/parm_wave/grib2_gfswave.wc_10m.f009 new file mode 100644 index 0000000000..07b584002d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f009 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCD88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCD88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACD88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCD88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCD88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCD88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCD88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCD88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCD88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCD88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 9 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCD88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCD88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCD88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 9 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCD88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 9 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCD88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 9 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCD88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 9 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f012 b/parm/parm_wave/grib2_gfswave.wc_10m.f012 new file mode 100644 index 0000000000..6a1c38ef68 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f012 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCE88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCE88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACE88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCE88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCE88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCE88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCE88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCE88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCE88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCE88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 12 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCE88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCE88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCE88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 12 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCE88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 12 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCE88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 12 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCE88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 12 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f015 b/parm/parm_wave/grib2_gfswave.wc_10m.f015 new file mode 100644 index 0000000000..0b3333560b --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f015 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCF88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCF88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACF88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCF88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCF88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCF88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCF88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCF88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCF88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCF88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 15 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCF88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCF88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCF88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 15 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCF88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 15 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCF88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 15 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCF88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 15 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f018 b/parm/parm_wave/grib2_gfswave.wc_10m.f018 new file mode 100644 index 0000000000..404773d954 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f018 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCG88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCG88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACG88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCG88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCG88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCG88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCG88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCG88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCG88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCG88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 18 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCG88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCG88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCG88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 18 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCG88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 18 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCG88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 18 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCG88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 18 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f021 b/parm/parm_wave/grib2_gfswave.wc_10m.f021 new file mode 100644 index 0000000000..06c297e275 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f021 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCH88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCH88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACH88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCH88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCH88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCH88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCH88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCH88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCH88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCH88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 21 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCH88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCH88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCH88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 21 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCH88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 21 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCH88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 21 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCH88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 21 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f024 b/parm/parm_wave/grib2_gfswave.wc_10m.f024 new file mode 100644 index 0000000000..28e4cfa904 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f024 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCI88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCI88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCI88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCI88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCI88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCI88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 24 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCI88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 24 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCI88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 24 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 24 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 24 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f027 b/parm/parm_wave/grib2_gfswave.wc_10m.f027 new file mode 100644 index 0000000000..2f2ddf1d1b --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f027 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCI88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCI88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCI88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCI88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCI88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCI88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCI88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCI88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 27 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCI88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCI88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 27 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCI88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 27 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 27 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCI88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 27 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f030 b/parm/parm_wave/grib2_gfswave.wc_10m.f030 new file mode 100644 index 0000000000..d0725e80b4 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f030 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCJ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCJ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCJ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCJ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCJ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCJ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 30 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCJ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 30 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCJ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 30 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 30 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 30 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f033 b/parm/parm_wave/grib2_gfswave.wc_10m.f033 new file mode 100644 index 0000000000..f89ed37542 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f033 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCJ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCJ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCJ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCJ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCJ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCJ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCJ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCJ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 33 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCJ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCJ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 33 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCJ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 33 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 33 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCJ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 33 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f036 b/parm/parm_wave/grib2_gfswave.wc_10m.f036 new file mode 100644 index 0000000000..88f84d150a --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f036 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCK88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCK88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCK88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCK88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCK88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCK88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 36 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCK88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 36 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCK88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 36 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 36 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 36 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f039 b/parm/parm_wave/grib2_gfswave.wc_10m.f039 new file mode 100644 index 0000000000..9883f8ad98 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f039 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCK88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCK88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCK88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCK88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCK88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCK88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCK88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCK88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 39 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCK88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCK88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 39 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCK88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 39 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 39 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCK88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 39 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f042 b/parm/parm_wave/grib2_gfswave.wc_10m.f042 new file mode 100644 index 0000000000..499279984a --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f042 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCL88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCL88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCL88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCL88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCL88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCL88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 42 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCL88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 42 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCL88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 42 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 42 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 42 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f045 b/parm/parm_wave/grib2_gfswave.wc_10m.f045 new file mode 100644 index 0000000000..8ac60c51e8 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f045 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCL88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCL88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCL88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCL88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCL88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCL88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCL88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCL88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 45 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCL88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCL88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 45 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCL88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 45 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 45 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCL88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 45 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f048 b/parm/parm_wave/grib2_gfswave.wc_10m.f048 new file mode 100644 index 0000000000..7da32742dc --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f048 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCM88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCM88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCM88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCM88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCM88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCM88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 48 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCM88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 48 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCM88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 48 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 48 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 48 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f051 b/parm/parm_wave/grib2_gfswave.wc_10m.f051 new file mode 100644 index 0000000000..fe2762bc94 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f051 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCM88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCM88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCM88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCM88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCM88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCM88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCM88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCM88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 51 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCM88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCM88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 51 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCM88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 51 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 51 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCM88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 51 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f054 b/parm/parm_wave/grib2_gfswave.wc_10m.f054 new file mode 100644 index 0000000000..d1c9d07a65 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f054 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCX88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCX88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCX88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCX88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCX88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCX88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 54 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCX88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 54 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCX88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 54 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 54 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 54 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f057 b/parm/parm_wave/grib2_gfswave.wc_10m.f057 new file mode 100644 index 0000000000..d03780335d --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f057 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCX88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCX88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCX88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCX88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCX88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCX88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCX88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCX88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 57 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCX88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCX88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 57 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCX88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 57 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 57 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCX88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 57 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f060 b/parm/parm_wave/grib2_gfswave.wc_10m.f060 new file mode 100644 index 0000000000..8f87f58223 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f060 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCN88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCN88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCN88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCN88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCN88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCN88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 60 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCN88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 60 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCN88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 60 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 60 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 60 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f063 b/parm/parm_wave/grib2_gfswave.wc_10m.f063 new file mode 100644 index 0000000000..bc5ce48621 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f063 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCN88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCN88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCN88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCN88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCN88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCN88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCN88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCN88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 63 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCN88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCN88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 63 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCN88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 63 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 63 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCN88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 63 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f066 b/parm/parm_wave/grib2_gfswave.wc_10m.f066 new file mode 100644 index 0000000000..33e35d5003 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f066 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCY88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCY88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCY88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCY88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCY88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCY88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 66 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCY88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 66 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCY88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 66 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 66 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 66 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f069 b/parm/parm_wave/grib2_gfswave.wc_10m.f069 new file mode 100644 index 0000000000..dddb78d455 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f069 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCY88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCY88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCY88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCY88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCY88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCY88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCY88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCY88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 69 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCY88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCY88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 69 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCY88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 69 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 69 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCY88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 69 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f072 b/parm/parm_wave/grib2_gfswave.wc_10m.f072 new file mode 100644 index 0000000000..3947625510 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f072 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCO88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCO88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCO88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCO88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCO88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCO88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 72 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCO88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 72 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCO88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 72 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 72 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 72 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f078 b/parm/parm_wave/grib2_gfswave.wc_10m.f078 new file mode 100644 index 0000000000..52d71b8ea0 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f078 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCO88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCO88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCO88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCO88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCO88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCO88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCO88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCO88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 78 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCO88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCO88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 78 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCO88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 78 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 78 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCO88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 78 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f084 b/parm/parm_wave/grib2_gfswave.wc_10m.f084 new file mode 100644 index 0000000000..e534f1c308 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f084 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCP88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCP88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCP88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCP88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCP88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCP88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 84 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCP88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 84 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCP88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 84 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 84 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 84 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f090 b/parm/parm_wave/grib2_gfswave.wc_10m.f090 new file mode 100644 index 0000000000..0b2a1e5198 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f090 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCP88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCP88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCP88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCP88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCP88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCP88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCP88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCP88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 90 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCP88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCP88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 90 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCP88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 90 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 90 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCP88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 90 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f096 b/parm/parm_wave/grib2_gfswave.wc_10m.f096 new file mode 100644 index 0000000000..0e54d38848 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f096 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCQ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCQ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCQ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCQ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCQ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCQ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 96 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCQ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 96 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCQ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 96 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 96 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 96 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f102 b/parm/parm_wave/grib2_gfswave.wc_10m.f102 new file mode 100644 index 0000000000..0d5f302fa1 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f102 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCQ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCQ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCQ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCQ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCQ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCQ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCQ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCQ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 102 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCQ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCQ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 102 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCQ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 102 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 102 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCQ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 102 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f108 b/parm/parm_wave/grib2_gfswave.wc_10m.f108 new file mode 100644 index 0000000000..50ff238485 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f108 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCZ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCZ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCZ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCZ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCZ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCZ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 108 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCZ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 108 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCZ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 108 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 108 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 108 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f114 b/parm/parm_wave/grib2_gfswave.wc_10m.f114 new file mode 100644 index 0000000000..244e459484 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f114 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCZ88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCZ88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCZ88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCZ88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCZ88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCZ88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCZ88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCZ88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 114 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCZ88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCZ88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 114 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCZ88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 114 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 114 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCZ88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 114 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f120 b/parm/parm_wave/grib2_gfswave.wc_10m.f120 new file mode 100644 index 0000000000..9b29cdc0d1 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f120 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCR88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCR88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCR88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCR88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCR88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCR88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 120 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCR88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 120 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCR88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 120 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 120 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 120 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f126 b/parm/parm_wave/grib2_gfswave.wc_10m.f126 new file mode 100644 index 0000000000..7b67a32560 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f126 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCR88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCR88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCR88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCR88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCR88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCR88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCR88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCR88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 126 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCR88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCR88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 126 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCR88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 126 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 126 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCR88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 126 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f132 b/parm/parm_wave/grib2_gfswave.wc_10m.f132 new file mode 100644 index 0000000000..783bfaf0e2 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f132 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCS88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCS88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCS88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCS88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCS88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCS88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 132 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCS88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 132 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCS88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 132 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 132 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 132 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f138 b/parm/parm_wave/grib2_gfswave.wc_10m.f138 new file mode 100644 index 0000000000..292160e70f --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f138 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCS88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCS88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCS88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCS88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCS88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCS88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCS88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCS88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 138 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCS88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCS88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 138 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCS88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 138 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 138 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCS88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 138 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f144 b/parm/parm_wave/grib2_gfswave.wc_10m.f144 new file mode 100644 index 0000000000..ccfd82dd78 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f144 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCT88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCT88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCT88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCT88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCT88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCT88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 144 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCT88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 144 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCT88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 144 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 144 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 144 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f150 b/parm/parm_wave/grib2_gfswave.wc_10m.f150 new file mode 100644 index 0000000000..8a4891b48b --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f150 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCT88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCT88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCT88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCT88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCT88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCT88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCT88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCT88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 150 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCT88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCT88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 150 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCT88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 150 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 150 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCT88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 150 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f156 b/parm/parm_wave/grib2_gfswave.wc_10m.f156 new file mode 100644 index 0000000000..a581cbe253 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f156 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCU88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCU88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCU88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCU88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCU88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCU88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 156 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCU88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 156 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCU88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 156 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 156 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 156 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f162 b/parm/parm_wave/grib2_gfswave.wc_10m.f162 new file mode 100644 index 0000000000..c54e1289dd --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f162 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCU88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCU88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCU88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCU88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCU88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCU88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCU88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCU88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 162 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCU88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCU88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 162 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCU88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 162 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 162 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCU88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 162 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f168 b/parm/parm_wave/grib2_gfswave.wc_10m.f168 new file mode 100644 index 0000000000..6bd248c568 --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f168 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCV88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCV88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCV88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCV88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCV88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCV88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 168 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCV88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 168 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCV88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 168 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 168 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 168 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f174 b/parm/parm_wave/grib2_gfswave.wc_10m.f174 new file mode 100644 index 0000000000..bd1894388c --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f174 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCV88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCV88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCV88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCV88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCV88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCV88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCV88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCV88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 174 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCV88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCV88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 174 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCV88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 174 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 174 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCV88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 174 241 0 2 255 0 0 / diff --git a/parm/parm_wave/grib2_gfswave.wc_10m.f180 b/parm/parm_wave/grib2_gfswave.wc_10m.f180 new file mode 100644 index 0000000000..4c8cb145de --- /dev/null +++ b/parm/parm_wave/grib2_gfswave.wc_10m.f180 @@ -0,0 +1,16 @@ +&GRIBIDS DESC=' WIND Surface ',WMOHEAD='EQCW88 KWBJ',PDTN= 0 ,PDT= 2 1 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' WDIR Surface ',WMOHEAD='ERCW88 KWBJ',PDTN= 0 ,PDT= 2 0 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' U GRD Surface ',WMOHEAD='EACW88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' V GRD Surface ',WMOHEAD='EBCW88 KWBJ',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' HTSGW Surface ',WMOHEAD='ECCW88 KWBJ',PDTN= 0 ,PDT= 0 3 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' PERPW Surface ',WMOHEAD='EJCW88 KWBJ',PDTN= 0 ,PDT= 0 11 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' DIRPW Surface ',WMOHEAD='EKCW88 KWBJ',PDTN= 0 ,PDT= 0 10 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' WVHGT Surface ',WMOHEAD='ELCW88 KWBJ',PDTN= 0 ,PDT= 0 5 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCW88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWELL Order Seq. Of Data ',WMOHEAD='EOCW88 KWBJ',PDTN= 0 ,PDT= 0 8 2 0 11 0 0 1 180 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVPER Surface ',WMOHEAD='EMCW88 KWBJ',PDTN= 0 ,PDT= 0 6 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCW88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWPER Order Seq. Of Data ',WMOHEAD='EYCW88 KWBJ',PDTN= 0 ,PDT= 0 9 2 0 11 0 0 1 180 241 0 2 255 0 0 / +&GRIBIDS DESC=' WVDIR Surface ',WMOHEAD='ENCW88 KWBJ',PDTN= 0 ,PDT= 0 4 2 0 11 0 0 1 180 1 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCW88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 180 241 0 1 255 0 0 / +&GRIBIDS DESC=' SWDIR Order Seq. Of Data ',WMOHEAD='EPCW88 KWBJ',PDTN= 0 ,PDT= 0 7 2 0 11 0 0 1 180 241 0 2 255 0 0 / diff --git a/parm/product/bufr_gfs_class1fv3.tbl b/parm/product/bufr_gfs_class1fv3.tbl index 6f850a1b86..222a8eb7fd 100755 --- a/parm/product/bufr_gfs_class1fv3.tbl +++ b/parm/product/bufr_gfs_class1fv3.tbl @@ -12,7 +12,8 @@ | D10M | 362004 | TABLE D ENTRY _ 10 M DATA | | | | | | FTIM | 004194 | TABLE B ENTRY - FORECAST TIME | -| STNM | 001205 | TABLE B ENTRY - STATION NUMBER -- 5 DIGIT | +| STNM | 001205 | TABLE B ENTRY - STATION NUMBER -- 6 DIGIT | +| RPID | 001198 | REPORT IDENTIFIER | | CLAT | 005002 | TABLE B ENTRY - LATITUDE | | CLON | 006002 | TABLE B ENTRY - LONGITUDE | | GELV | 010194 | TABLE B ENTRY - GRID POINT ELEVATION | @@ -49,7 +50,7 @@ |----------|-------------------------------------------------------------------| | | | | GFSCLS1 | HEADR {PROFILE} CLS1 D10M | -| HEADR | FTIM STNM CLAT CLON GELV +| HEADR | FTIM STNM RPID CLAT CLON GELV | PROFILE | PRES TMDB UWND VWND SPFH VVEL | CLS1 | PMSL PRSS TMSK STC1 EVAP TP03 C03M SWEM LCLD MCLD HCLD ! ! D10M | U10M V10M T2MS Q2MS WXTS WXTP WXTZ WXTR ! @@ -60,6 +61,7 @@ | | | | | |-------------| | FTIM | 0 | 0 | 24 | SECONDS |-------------| | STNM | 0 | 0 | 20 | NUMERIC ID |-------------| +| RPID | 0 | 0 | 64 | CCITT IA5 |-------------| | CLAT | 2 | -9000 | 15 | DEG N |-------------| | CLON | 2 | -18000 | 16 | DEG E |-------------| | GELV | 0 | -400 | 15 | M |-------------| diff --git a/parm/product/bufr_ij13km.txt b/parm/product/bufr_ij13km.txt new file mode 100644 index 0000000000..568717de72 --- /dev/null +++ b/parm/product/bufr_ij13km.txt @@ -0,0 +1,2115 @@ + 1 1876 174 69.58 -140.18 + 2 1972 171 69.90 -128.97 + 3 2042 174 69.58 -120.75 + 4 1946 213 65.00 -132.00 + 5 2048 213 65.00 -120.00 + 6 2198 212 65.10 -102.43 + 7 1878 256 60.00 -140.00 + 8 2048 256 60.00 -120.00 + 9 2219 256 60.00 -100.00 + 10 1989 281 57.00 -127.00 + 11 1806 169 70.20 -148.47 + 12 2166 310 53.63 -106.20 + 13 1726 195 67.10 -157.85 + 14 2175 307 53.99 -105.12 + 15 2065 317 52.88 -118.07 + 16 2159 234 62.50 -107.00 + 17 2134 393 43.90 -110.00 + 18 2241 377 45.80 -97.45 + 19 2257 397 43.50 -95.60 + 20 2281 484 33.22 -92.80 + 21 2264 409 42.04 -94.79 + 22 2280 409 42.11 -92.92 + 23 2338 477 34.10 -86.10 + 24 2349 468 35.20 -84.80 + 25 2355 471 34.80 -84.05 + 26 2382 455 36.72 -80.97 + 27 2105 356 48.32 -113.35 + 28 2158 408 42.20 -107.20 + 29 2181 403 42.76 -104.45 + 30 2199 407 42.30 -102.40 + 31 2220 404 42.60 -99.90 + 32 2166 434 39.10 -106.20 + 33 2314 450 37.30 -88.90 + 34 2282 425 40.20 -92.60 + 35 2235 470 34.90 -98.10 + 36 2176 356 48.31 -105.10 + 37 2306 476 34.25 -89.87 + 38 2174 425 40.13 -105.24 + 39 2245 448 37.48 -96.93 + 40 2353 461 35.96 -84.29 + 41 2216 402 42.86 -100.41 + 42 2267 418 41.02 -94.36 + 43 2409 409 42.04 -77.76 + 44 2394 434 39.17 -79.52 + 45 2310 497 31.71 -89.41 + 46 2386 385 44.92 -80.42 + 47 2189 382 45.27 -103.54 + 48 2179 386 44.79 -104.73 + 49 2186 388 44.46 -103.85 + 50 2179 398 43.35 -104.69 + 51 2188 396 43.53 -103.65 + 52 2254 380 45.50 -95.90 + 53 2275 392 44.10 -93.50 + 54 2075 466 35.34 -116.88 + 55 2325 474 34.40 -87.60 + 56 2039 363 47.50 -121.10 + 57 2025 388 44.50 -122.70 + 58 2091 392 44.00 -115.00 + 59 2037 368 46.90 -121.30 + 60 2044 392 44.10 -120.50 + 61 2037 404 42.70 -121.40 + 62 2128 491 32.42 -110.73 + 63 2241 455 36.61 -97.49 + 64 2038 378 45.68 -121.27 + 65 2035 378 45.72 -121.56 + 66 2042 378 45.68 -120.82 + 67 2047 378 45.72 -120.21 + 68 2033 443 38.06 -121.77 + 69 2029 451 37.10 -122.28 + 70 2027 445 37.82 -122.47 + 71 2027 444 37.94 -122.50 + 72 2039 452 37.07 -121.12 + 73 2106 425 40.20 -113.30 + 74 2441 423 40.42 -73.98 + 75 2434 450 37.20 -74.80 + 76 2439 460 36.05 -74.25 + 77 2414 488 32.80 -77.20 + 78 2443 439 38.60 -73.75 + 79 2328 519 29.20 -87.25 + 80 2343 373 46.31 -85.46 + 81 2328 365 47.18 -87.22 + 82 2317 401 42.97 -88.55 + 83 2454 384 44.94 -72.51 + 84 2372 450 37.27 -82.10 + 85 2372 450 90.00 0.00 + 86 1736 134 74.30 -156.60 + 87 1878 128 75.00 -140.00 + 88 1594 251 60.60 -173.30 + 89 1692 257 59.90 -161.75 + 90 1794 231 62.88 -149.83 + 91 1802 249 60.79 -148.83 + 92 1794 252 60.49 -149.79 + 93 1800 248 60.95 -149.14 + 94 1803 249 60.78 -148.72 + 95 2097 519 29.22 -114.28 + 96 2376 459 36.20 -81.65 + 97 2322 404 42.59 -87.94 + 98 2067 404 42.59 -117.87 + 99 2028 366 47.08 -122.36 + 100 2013 368 46.91 -124.11 + 101 2297 361 47.66 -90.91 + 102 2294 369 46.77 -91.25 + 103 1703 296 55.31 -160.52 + 104 2410 466 35.33 -77.60 + 105 2453 388 44.53 -72.61 + 106 2388 413 41.63 -80.21 + 107 2384 438 38.69 -80.65 + 108 2068 473 34.57 -117.67 + 109 2069 472 34.63 -117.61 + 110 2337 376 45.97 -86.17 + 111 2333 372 46.42 -86.65 + 112 2307 434 39.16 -89.67 + 113 2206 392 44.05 -101.60 + 114 2337 396 43.58 -86.24 + 115 2345 397 43.43 -85.30 + 116 2352 398 43.37 -84.44 + 117 2183 475 34.38 -104.23 + 118 2663 369 46.70 -48.00 + 119 2602 365 47.20 -55.10 + 120 2338 403 42.75 -86.10 + 121 2336 406 42.41 -86.28 + 122 2072 381 45.35 -117.23 + 123 2259 413 41.59 -95.34 + 124 2323 394 43.78 -87.85 + 125 2195 504 30.90 -102.85 + 126 2290 481 33.64 -91.75 + 127 2285 459 36.22 -92.28 + 128 2189 500 31.38 -103.51 + 129 2378 542 26.42 -81.44 + 130 2382 540 26.75 -80.94 + 131 2225 502 31.18 -99.32 + 132 2214 507 30.59 -100.65 + 133 2040 434 39.08 -120.94 + 134 2048 448 37.51 -120.04 + 135 2046 447 37.58 -120.27 + 136 2054 454 36.83 -119.33 + 137 2037 462 35.85 -121.31 + 138 2033 364 47.31 -121.85 + 139 2038 439 38.49 -121.22 + 140 2042 434 39.13 -120.80 + 141 2028 420 40.72 -122.43 + 142 2437 422 40.50 -74.45 + 143 2470 401 42.99 -70.62 + 144 2445 380 45.50 -73.57 + 145 2451 417 41.10 -72.89 + 146 2032 429 39.69 -121.91 + 147 2039 434 39.17 -121.11 + 148 2051 464 35.62 -119.69 + 149 2038 464 35.66 -121.28 + 150 2021 438 38.61 -123.21 + 151 2021 439 38.51 -123.22 + 152 2023 437 38.78 -122.99 + 153 2046 451 37.11 -120.24 + 154 2031 427 39.99 -122.06 + 155 2022 435 39.00 -123.12 + 156 2023 439 38.51 -122.96 + 157 2166 482 33.50 -106.18 + 158 2162 479 33.82 -106.65 + 159 2120 422 40.58 -111.63 + 160 2364 394 43.78 -82.99 + 161 1861 273 58.00 -142.00 + 162 1852 307 54.00 -143.00 + 163 1903 290 56.00 -137.00 + 164 1750 299 55.00 -155.00 + 165 1886 316 53.00 -139.00 + 166 1815 332 51.10 -147.40 + 167 1690 324 52.00 -162.00 + 168 1761 345 49.50 -153.70 + 169 1632 348 49.20 -168.80 + 170 1920 341 50.00 -135.00 + 171 1972 439 38.50 -129.00 + 172 1997 478 34.00 -126.00 + 173 2023 516 29.50 -123.00 + 174 2048 555 25.00 -120.00 + 175 2091 555 25.00 -115.00 + 176 1871 390 44.30 -140.80 + 177 1843 361 47.70 -144.10 + 178 1903 449 37.40 -137.00 + 179 1895 367 47.00 -138.00 + 180 1916 396 43.60 -135.50 + 181 1935 429 39.70 -133.30 + 182 1967 354 48.50 -129.50 + 183 1984 387 44.60 -127.50 + 184 1866 337 50.50 -141.38 + 185 1989 422 40.50 -126.98 + 186 1451 299 55.00 170.00 + 187 1536 299 55.00 180.00 + 188 1494 256 60.00 175.00 + 189 2135 403 42.80 -109.81 + 190 2030 434 39.15 -122.15 + 191 2034 419 40.88 -121.66 + 192 2045 444 37.99 -120.38 + 193 2061 446 37.74 -118.59 + 194 2056 459 36.20 -119.10 + 195 2061 461 35.97 -118.54 + 196 2057 471 34.83 -118.95 + 197 2046 460 36.14 -120.35 + 198 2061 455 36.65 -118.48 + 199 2447 405 42.47 -73.29 + 200 2371 433 39.21 -82.23 + 201 2122 422 40.48 -111.43 + 202 2098 486 33.02 -114.24 + 203 2131 499 31.49 -110.30 + 204 2152 495 32.02 -107.87 + 205 2182 508 30.43 -104.33 + 206 2217 526 28.39 -100.29 + 207 2229 541 26.57 -98.82 + 208 2254 523 28.71 -95.96 + 209 2290 514 29.81 -91.66 + 210 2377 557 24.70 -81.51 + 211 2500 615 17.98 -67.08 + 212 2034 374 46.19 -121.70 + 213 2029 373 46.28 -122.28 + 214 2032 381 45.35 -121.94 + 215 2031 391 44.17 -122.06 + 216 2227 384 45.03 -99.11 + 217 2245 380 45.46 -96.99 + 218 2260 441 38.28 -95.22 + 219 2248 428 39.86 -96.63 + 220 2162 389 44.38 -106.72 + 221 2150 388 44.52 -108.08 + 222 2302 383 45.10 -90.30 + 223 2285 388 44.46 -92.29 + 224 2159 450 37.29 -107.06 + 225 2146 442 38.23 -108.56 + 226 2152 426 40.05 -107.89 + 227 2291 413 41.64 -91.54 + 228 2172 435 39.05 -105.51 + 229 2165 426 40.05 -106.36 + 230 2325 437 38.76 -87.61 + 231 2317 434 39.07 -88.53 + 232 2301 419 40.94 -90.43 + 233 2302 429 39.77 -90.24 + 234 2319 431 39.48 -88.28 + 235 2221 398 43.39 -99.84 + 236 2198 401 43.02 -102.52 + 237 2182 393 43.89 -104.32 + 238 2196 388 44.56 -102.66 + 239 2170 395 43.74 -105.74 + 240 2311 374 46.15 -89.21 + 241 2327 371 46.54 -87.39 + 242 2339 370 46.68 -85.97 + 243 2314 370 46.61 -88.91 + 244 2330 529 28.00 -87.00 + 245 2273 527 28.20 -93.70 + 246 2285 525 28.50 -92.30 + 247 2296 530 27.90 -91.00 + 248 2313 529 28.00 -89.00 + 249 2347 529 28.00 -85.00 + 250 2398 503 31.00 -79.00 + 251 2519 358 48.00 -65.00 + 252 2121 433 39.30 -111.46 + 253 2179 454 36.74 -104.65 + 254 2415 452 36.99 -77.00 + 255 2416 445 37.86 -76.89 + 256 2424 439 38.54 -76.03 + 257 2409 454 36.77 -77.79 + 258 2485 394 43.78 -68.86 + 259 2390 440 38.40 -80.00 + 260 2069 468 35.10 -117.56 + 261 2190 398 43.37 -103.39 + 262 2189 389 44.41 -103.48 + 263 2319 408 42.21 -88.32 + 264 2321 423 40.46 -88.10 + 265 2391 488 32.78 -79.92 + 266 2390 489 32.66 -79.93 + 267 2382 495 32.03 -80.89 + 268 2070 359 47.97 -117.43 + 269 2380 459 36.22 -81.10 + 270 2366 405 42.47 -82.76 + 271 2358 394 43.80 -83.72 + 272 2366 392 44.02 -82.79 + 273 2329 412 41.69 -87.15 + 274 2321 413 41.61 -88.10 + 275 2385 457 36.46 -80.55 + 276 2108 450 37.20 -112.99 + 277 2123 441 38.29 -111.26 + 278 2116 437 38.74 -112.10 + 279 2059 450 37.20 -118.80 + 280 2191 362 47.61 -103.26 + 281 2245 445 37.80 -97.01 + 282 2268 473 34.60 -94.30 + 283 2260 444 37.90 -95.20 + 284 2206 439 38.50 -101.50 + 285 2175 449 37.40 -105.20 + 286 2174 461 36.00 -105.30 + 287 2205 476 34.20 -101.70 + 288 2225 481 33.60 -99.30 + 289 2241 480 33.70 -97.40 + 290 2285 451 37.10 -92.30 + 291 2159 418 41.00 -107.00 + 292 2098 373 46.25 -114.15 + 293 2112 367 47.00 -112.50 + 294 2100 350 49.00 -114.00 + 295 2151 345 49.50 -108.00 + 296 2185 350 49.00 -104.00 + 297 2228 363 47.50 -99.00 + 298 2240 374 46.20 -97.50 + 299 2262 375 46.00 -95.00 + 300 2354 420 40.80 -84.20 + 301 2390 444 38.00 -80.00 + 302 2368 474 34.50 -82.50 + 303 2236 412 41.73 -98.01 + 304 2259 413 41.58 -95.34 + 305 2245 407 42.24 -96.98 + 306 2230 446 37.70 -98.75 + 307 2233 352 48.75 -98.39 + 308 2245 352 48.75 -96.94 + 309 2251 388 44.46 -96.25 + 310 2260 399 43.17 -95.21 + 311 2224 399 43.22 -99.40 + 312 2230 399 43.26 -98.76 + 313 2239 419 40.90 -97.62 + 314 2221 420 40.79 -99.78 + 315 2240 425 40.15 -97.58 + 316 2225 429 39.73 -99.32 + 317 2302 454 36.77 -90.32 + 318 2327 449 37.36 -87.40 + 319 2342 435 39.05 -85.61 + 320 2367 446 37.75 -82.64 + 321 2358 455 36.61 -83.74 + 322 2348 453 36.86 -84.86 + 323 2356 443 38.06 -83.98 + 324 2204 417 41.12 -101.77 + 325 2214 410 41.96 -100.57 + 326 2136 396 43.55 -109.69 + 327 2126 403 42.71 -110.94 + 328 2129 411 41.82 -110.56 + 329 2144 385 44.87 -108.79 + 330 2147 385 44.91 -108.45 + 331 2163 395 43.71 -106.63 + 332 2306 397 43.52 -89.77 + 333 2317 394 43.77 -88.49 + 334 2302 402 42.89 -90.24 + 335 2320 401 43.04 -88.24 + 336 2310 392 44.04 -89.31 + 337 2312 415 41.35 -89.15 + 338 2332 412 41.70 -86.82 + 339 2323 417 41.07 -87.85 + 340 2312 410 41.89 -89.08 + 341 2289 380 45.42 -91.77 + 342 2266 383 45.10 -94.51 + 343 2251 386 44.73 -96.27 + 344 2200 426 40.10 -102.24 + 345 2195 437 38.76 -102.79 + 346 2330 381 45.29 -86.98 + 347 2306 389 44.36 -89.84 + 348 2440 427 39.99 -74.17 + 349 2340 446 37.70 -85.87 + 350 2235 446 37.67 -98.12 + 351 2236 450 37.28 -98.04 + 352 2256 441 38.30 -95.72 + 353 2251 445 37.85 -96.29 + 354 2234 437 38.75 -98.23 + 355 2442 430 39.55 -73.90 + 356 2462 429 39.70 -71.60 + 357 2257 451 37.09 -95.57 + 358 2239 441 38.35 -97.69 + 359 2225 449 37.35 -99.35 + 360 2229 467 35.30 -98.90 + 361 2245 465 35.50 -97.00 + 362 2264 469 34.98 -94.69 + 363 2206 456 36.60 -101.60 + 364 2401 405 42.50 -78.68 + 365 2427 394 43.76 -75.68 + 366 2296 492 32.35 -91.03 + 367 2378 547 25.86 -81.38 + 368 2370 522 28.84 -82.33 + 369 2365 494 32.07 -82.90 + 370 2323 497 31.71 -87.78 + 371 2315 482 33.45 -88.82 + 372 2294 470 34.89 -91.20 + 373 2338 465 35.48 -86.09 + 374 2323 464 35.62 -87.84 + 375 2345 453 36.95 -85.26 + 376 2193 481 33.62 -103.02 + 377 2217 467 35.21 -100.25 + 378 2212 434 39.13 -100.87 + 379 2293 452 37.01 -91.36 + 380 2272 440 38.37 -93.79 + 381 2284 432 39.42 -92.44 + 382 2398 473 34.61 -79.06 + 383 2471 412 41.65 -70.52 + 384 2383 482 33.46 -80.85 + 385 2296 380 45.50 -91.00 + 386 2277 376 45.89 -93.27 + 387 2283 383 45.15 -92.54 + 388 2253 382 45.23 -96.00 + 389 2304 392 44.03 -90.08 + 390 2029 415 41.32 -122.32 + 391 2051 405 42.55 -119.66 + 392 2041 398 43.33 -120.84 + 393 2019 415 41.39 -123.49 + 394 2036 414 41.43 -121.46 + 395 2072 381 45.36 -117.25 + 396 2057 389 44.40 -118.96 + 397 2410 458 36.33 -77.64 + 398 2392 470 34.89 -79.76 + 399 2378 423 40.47 -81.42 + 400 2394 420 40.82 -79.53 + 401 2397 421 40.63 -79.11 + 402 2395 430 39.58 -79.34 + 403 2387 425 40.14 -80.29 + 404 2432 406 42.46 -75.06 + 405 2206 455 36.68 -101.50 + 406 2332 485 33.17 -86.77 + 407 2311 501 31.27 -89.26 + 408 2378 527 28.29 -81.44 + 409 2374 522 28.82 -81.81 + 410 2258 509 30.36 -95.41 + 411 2258 506 30.73 -95.47 + 412 2202 384 45.02 -102.02 + 413 2221 519 29.21 -99.74 + 414 2233 462 35.87 -98.42 + 415 2316 419 40.92 -88.62 + 416 2449 413 41.56 -73.05 + 417 2080 352 48.69 -116.32 + 418 2059 353 48.65 -118.73 + 419 2043 360 47.76 -120.65 + 420 2046 354 48.49 -120.24 + 421 2081 362 47.54 -116.14 + 422 2023 420 40.73 -122.94 + 423 2018 419 40.94 -123.63 + 424 2022 424 40.34 -123.07 + 425 2021 429 39.75 -123.21 + 426 2277 456 36.54 -93.20 + 427 1618 224 63.68 -170.50 + 428 1778 186 68.13 -151.73 + 429 1607 224 63.77 -171.73 + 430 1654 253 60.37 -166.27 + 431 1695 284 56.65 -161.37 + 432 1361 307 54.05 159.43 + 433 2456 385 44.89 -72.23 + 434 2206 397 43.46 -101.50 + 435 2187 392 43.99 -103.79 + 436 2355 518 29.30 -84.04 + 437 2248 530 27.90 -96.64 + 438 2352 475 34.31 -84.42 + 439 2357 475 34.27 -83.83 + 440 2352 415 41.34 -84.43 + 441 2340 416 41.28 -85.84 + 442 2343 411 41.81 -85.44 + 443 2332 413 41.57 -86.73 + 444 2191 350 48.93 -103.30 + 445 2222 351 48.88 -99.62 + 446 2190 374 46.19 -103.43 + 447 2225 375 46.02 -99.35 + 448 2236 374 46.17 -98.07 + 449 2358 375 46.01 -83.74 + 450 2310 368 46.88 -89.32 + 451 2330 379 45.58 -87.00 + 452 2069 475 34.36 -117.63 + 453 2051 470 34.94 -119.69 + 454 2047 474 34.48 -120.23 + 455 2048 473 34.61 -120.08 + 456 2124 395 43.74 -111.10 + 457 2356 471 34.85 -84.00 + 458 2187 389 44.35 -103.77 + 459 2182 389 44.41 -104.36 + 460 2264 445 37.80 -94.77 + 461 2282 447 37.64 -92.65 + 462 2276 441 38.35 -93.34 + 463 2035 431 39.49 -121.61 + 464 2319 479 33.90 -88.33 + 465 2188 472 34.64 -103.63 + 466 2429 437 38.83 -75.43 + 467 2226 490 32.54 -99.25 + 468 2268 437 38.81 -94.26 + 469 2237 458 36.34 -97.92 + 470 2228 475 34.36 -98.98 + 471 2339 420 40.72 -85.93 + 472 2242 506 30.72 -97.38 + 473 2232 424 40.32 -98.44 + 474 2343 499 31.46 -85.46 + 475 2340 490 32.54 -85.79 + 476 2207 354 48.50 -101.40 + 477 2361 459 36.17 -83.40 + 478 2429 397 43.47 -75.46 + 479 2361 489 32.68 -83.35 + 480 2328 454 36.74 -87.29 + 481 2096 500 31.40 -114.49 + 482 2109 492 32.37 -112.87 + 483 2137 488 32.82 -109.68 + 484 2086 355 48.39 -115.55 + 485 2181 352 48.76 -104.52 + 486 2023 446 37.70 -123.00 + 487 2022 441 38.32 -123.07 + 488 2183 372 46.37 -104.28 + 489 2122 389 44.42 -111.37 + 490 2114 408 42.17 -112.28 + 491 2083 431 39.50 -115.95 + 492 2056 441 38.30 -119.16 + 493 2445 387 44.65 -73.49 + 494 2429 417 41.14 -75.38 + 495 2426 427 39.98 -75.82 + 496 2197 450 37.28 -102.61 + 497 2473 378 45.64 -70.26 + 498 2482 363 47.46 -69.22 + 499 2497 379 45.56 -67.43 + 500 2448 409 42.05 -73.20 + 501 2139 409 42.11 -109.45 + 502 2152 405 42.49 -107.83 + 503 2144 405 42.48 -108.84 + 504 2130 399 43.20 -110.40 + 505 2254 421 40.61 -95.87 + 506 2248 416 41.24 -96.59 + 507 2330 414 41.45 -87.01 + 508 2318 414 41.42 -88.41 + 509 2229 429 39.76 -98.79 + 510 2161 422 40.51 -106.87 + 511 2156 431 39.43 -107.38 + 512 2167 431 39.48 -106.15 + 513 2155 422 40.50 -107.52 + 514 2310 418 41.02 -89.39 + 515 2320 437 38.72 -88.18 + 516 2235 435 39.06 -98.17 + 517 2252 451 37.13 -96.19 + 518 2249 440 38.37 -96.54 + 519 2415 404 42.64 -77.05 + 520 2420 411 41.77 -76.45 + 521 2166 420 40.73 -106.28 + 522 2420 397 43.45 -76.51 + 523 2268 400 43.08 -94.27 + 524 2264 398 43.40 -94.75 + 525 2263 424 40.35 -94.92 + 526 2359 442 38.22 -83.59 + 527 2277 438 38.71 -93.18 + 528 2278 432 39.42 -93.13 + 529 2148 395 43.71 -108.39 + 530 2125 399 43.18 -111.04 + 531 2189 379 45.59 -103.55 + 532 1769 249 60.82 -152.72 + 533 1707 179 69.00 -160.00 + 534 1516 324 52.00 177.55 + 535 1656 281 57.00 -166.00 + 536 1766 237 62.22 -153.08 + 537 1731 258 59.73 -157.26 + 538 1815 240 61.89 -147.32 + 539 1656 202 66.27 -166.05 + 540 2072 477 34.10 -117.23 + 541 2271 421 40.63 -93.90 + 542 2127 483 33.40 -110.77 + 543 2110 478 33.97 -112.74 + 544 2423 437 38.80 -76.07 + 545 2436 418 41.05 -74.63 + 546 1844 233 62.72 -143.97 + 547 1843 190 67.75 -144.11 + 548 1841 208 65.59 -144.36 + 549 1784 239 61.95 -151.00 + 550 1754 279 57.27 -154.56 + 551 1809 203 66.15 -148.03 + 552 1850 196 67.03 -143.29 + 553 1697 211 65.20 -161.15 + 554 1781 258 59.75 -151.37 + 555 1717 227 63.39 -158.83 + 556 1929 282 56.97 -134.00 + 557 1687 188 67.95 -162.31 + 558 1790 251 60.59 -150.32 + 559 1798 253 60.37 -149.41 + 560 1856 245 61.32 -142.59 + 561 1778 256 60.03 -151.66 + 562 1718 187 68.07 -158.71 + 563 1711 242 61.58 -159.54 + 564 1831 230 63.03 -145.49 + 565 1667 210 65.41 -164.66 + 566 1764 226 63.44 -153.36 + 567 1916 262 59.25 -135.52 + 568 1937 294 55.58 -133.10 + 569 1785 226 63.49 -150.88 + 570 1849 230 62.97 -143.34 + 571 1861 221 64.05 -141.93 + 572 1755 197 66.85 -154.34 + 573 1774 204 66.08 -152.17 + 574 1738 242 61.64 -156.44 + 575 1737 175 69.50 -156.50 + 576 1801 179 69.00 -149.00 + 577 1801 190 67.75 -149.00 + 578 1742 210 65.34 -155.95 + 579 1745 221 64.10 -155.56 + 580 1783 219 64.31 -151.08 + 581 1705 253 60.32 -160.20 + 582 1675 238 62.10 -163.80 + 583 1691 167 70.40 -161.90 + 584 1736 159 71.32 -156.62 + 585 2495 406 42.35 -67.70 + 586 2458 433 39.30 -72.00 + 587 2512 433 39.30 -65.70 + 588 2474 450 37.30 -70.10 + 589 2436 458 36.30 -74.60 + 590 2443 464 35.60 -73.80 + 591 2468 470 34.90 -70.80 + 592 2424 479 33.80 -76.00 + 593 2456 488 32.80 -72.30 + 594 1959 357 48.10 -130.50 + 595 1992 357 48.10 -126.60 + 596 1966 381 45.30 -129.70 + 597 2001 381 45.30 -125.60 + 598 1964 412 41.75 -129.90 + 599 1999 410 41.90 -125.80 + 600 2002 433 39.20 -125.50 + 601 2002 457 36.40 -125.40 + 602 2006 484 33.30 -125.00 + 603 2029 473 34.60 -122.30 + 604 2036 504 30.90 -121.50 + 605 2074 515 29.60 -117.00 + 606 2424 448 37.54 -76.01 + 607 2160 486 32.99 -106.97 + 608 2135 494 32.15 -109.84 + 609 2356 404 42.63 -83.98 + 610 2355 401 42.99 -84.14 + 611 2363 409 42.10 -83.16 + 612 2355 411 41.87 -84.07 + 613 2361 392 44.02 -83.54 + 614 2360 397 43.46 -83.45 + 615 2361 410 41.94 -83.43 + 616 2191 421 40.61 -103.26 + 617 2187 424 40.34 -103.80 + 618 2274 426 40.08 -93.59 + 619 2279 422 40.48 -93.01 + 620 2268 424 40.25 -94.33 + 621 2280 421 40.68 -92.90 + 622 2281 412 41.71 -92.73 + 623 2277 405 42.47 -93.27 + 624 2318 438 38.66 -88.45 + 625 2325 435 39.02 -87.65 + 626 2310 431 39.53 -89.33 + 627 2141 398 43.31 -109.19 + 628 2151 412 41.67 -107.98 + 629 2126 397 43.50 -110.96 + 630 2235 431 39.47 -98.13 + 631 2268 445 37.85 -94.31 + 632 2316 410 41.93 -88.71 + 633 2129 448 37.44 -110.56 + 634 2162 423 40.45 -106.75 + 635 2241 449 37.32 -97.39 + 636 2161 448 37.45 -106.80 + 637 2156 392 44.03 -107.45 + 638 2126 409 42.08 -110.96 + 639 2150 437 38.79 -108.06 + 640 2162 424 40.35 -106.70 + 641 2314 518 29.30 -88.84 + 642 3005 494 32.13 -7.88 + 643 2452 410 41.89 -72.71 + 644 95 254 60.20 11.10 + 645 154 259 59.67 17.93 + 646 154 261 59.35 17.95 + 647 214 253 60.32 24.97 + 648 3062 255 60.13 -1.18 + 649 3033 286 56.50 -4.58 + 650 2586 1050 -33.00 -57.00 + 651 3057 327 51.68 -1.78 + 652 3059 326 51.75 -1.58 + 653 3070 330 51.29 -0.27 + 654 3018 322 52.25 -6.33 + 655 2880 222 63.97 -22.60 + 656 3015 239 62.02 -6.76 + 657 107 292 55.77 12.53 + 658 38 324 52.03 4.35 + 659 39 334 50.90 4.47 + 660 60 368 46.82 6.95 + 661 21 352 48.73 2.40 + 662 3001 398 43.37 -8.42 + 663 3064 412 41.67 -1.02 + 664 3025 451 37.17 -5.62 + 665 2877 625 16.75 -22.95 + 666 123 194 67.27 14.37 + 667 1549 162 70.97 -178.53 + 668 1541 180 68.92 -179.48 + 669 1623 203 66.17 -169.83 + 670 1455 216 64.68 170.42 + 671 1515 215 64.73 177.50 + 672 1531 230 63.05 179.32 + 673 543 314 53.21 63.55 + 674 3019 271 58.22 -6.32 + 675 12 319 52.63 1.32 + 676 571 339 50.22 66.83 + 677 625 343 49.80 73.15 + 678 3028 341 50.08 -5.25 + 679 3019 302 54.65 -6.22 + 680 2450 470 34.90 -73.00 + 681 2431 492 32.30 -75.20 + 682 2398 491 32.50 -79.07 + 683 2412 518 29.30 -77.40 + 684 2382 500 31.40 -80.87 + 685 2403 521 28.90 -78.50 + 686 2393 488 32.80 -79.62 + 687 2386 492 32.28 -80.41 + 688 2307 547 25.90 -89.70 + 689 2274 547 25.90 -93.60 + 690 2339 547 25.90 -85.90 + 691 2262 530 27.90 -95.00 + 692 2249 538 27.00 -96.50 + 693 2469 439 38.50 -70.70 + 694 2487 404 42.60 -68.60 + 695 2474 396 43.53 -70.14 + 696 2480 422 40.50 -69.40 + 697 2435 439 38.50 -74.70 + 698 2504 417 41.10 -66.60 + 699 2434 456 36.60 -74.80 + 700 2457 421 40.70 -72.10 + 701 2448 424 40.30 -73.20 + 702 2498 390 44.30 -67.30 + 703 2444 423 40.37 -73.70 + 704 2430 446 37.76 -75.33 + 705 2323 358 48.06 -87.78 + 706 2335 381 45.33 -86.42 + 707 2366 381 45.35 -82.84 + 708 2334 362 47.56 -86.55 + 709 2369 412 41.68 -82.40 + 710 2306 364 47.32 -89.87 + 711 2330 404 42.67 -87.02 + 712 2369 390 44.28 -82.42 + 713 2412 396 43.62 -77.41 + 714 2379 405 42.47 -81.22 + 715 2395 398 43.40 -79.45 + 716 2395 403 42.74 -79.35 + 717 2325 408 42.14 -87.66 + 718 1808 287 56.30 -148.20 + 719 1959 405 42.50 -130.50 + 720 1742 325 51.90 -155.90 + 721 1955 374 46.10 -131.00 + 722 1899 419 40.90 -137.50 + 723 2014 433 39.20 -124.00 + 724 2007 403 42.75 -124.82 + 725 2013 374 46.20 -124.20 + 726 2010 423 40.40 -124.50 + 727 1556 281 57.00 -177.70 + 728 2053 491 32.40 -119.50 + 729 2065 491 32.49 -118.03 + 730 845 608 18.77 98.96 + 731 878 627 16.47 102.78 + 732 855 633 15.77 100.14 + 733 895 638 15.25 104.87 + 734 859 651 13.67 100.61 + 735 859 707 7.19 100.61 + 736 1688 568 23.40 -162.30 + 737 1726 621 17.20 -157.80 + 738 1700 603 19.30 -160.80 + 739 1771 619 17.40 -152.50 + 740 73 294 55.52 8.55 + 741 41 321 52.31 4.76 + 742 59 322 52.28 6.89 + 743 1783 258 59.77 -151.17 + 744 54 350 48.98 6.25 + 745 2236 514 29.70 -98.01 + 746 2334 459 36.25 -86.57 + 747 2257 459 36.18 -95.56 + 748 2057 467 35.24 -119.03 + 749 2303 438 38.62 -90.18 + 750 2183 440 38.46 -104.18 + 751 2376 414 41.50 -81.60 + 752 2111 400 43.11 -112.68 + 753 2084 363 47.47 -115.80 + 754 18 416 41.28 2.07 + 755 3036 423 40.42 -4.25 + 756 3068 431 39.50 -0.47 + 757 2212 456 36.50 -100.80 + 758 2205 509 30.30 -101.70 + 759 2198 532 27.70 -102.50 + 760 2227 508 30.50 -99.10 + 761 2230 526 28.40 -98.70 + 762 2229 544 26.30 -98.80 + 763 2241 560 24.40 -97.40 + 764 2259 547 25.90 -95.30 + 765 2267 559 24.50 -94.40 + 766 2257 569 23.30 -95.60 + 767 2269 612 18.30 -94.20 + 768 2278 585 21.40 -93.10 + 769 2291 569 23.30 -91.60 + 770 2316 566 23.70 -88.70 + 771 2347 572 23.00 -85.00 + 772 2236 567 23.50 -98.00 + 773 2292 375 46.02 -91.45 + 774 2366 437 38.83 -82.80 + 775 2402 436 38.88 -78.52 + 776 2400 430 39.62 -78.76 + 777 2415 430 39.61 -77.01 + 778 76 315 53.05 8.79 + 779 115 320 52.47 13.40 + 780 62 334 50.87 7.15 + 781 74 341 50.05 8.58 + 782 79 352 48.68 9.22 + 783 101 355 48.35 11.78 + 784 122 356 48.23 14.19 + 785 142 357 48.12 16.57 + 786 122 340 50.10 14.26 + 787 158 304 54.38 18.47 + 788 179 323 52.17 20.97 + 789 145 332 51.10 16.89 + 790 164 363 47.43 19.18 + 791 176 386 44.78 20.53 + 792 200 404 42.69 23.41 + 793 235 405 42.57 27.52 + 794 238 399 43.23 27.83 + 795 213 409 42.07 24.86 + 796 223 388 44.57 26.09 + 797 106 380 45.50 12.33 + 798 108 411 41.80 12.60 + 799 105 411 41.80 12.23 + 800 207 465 35.53 24.15 + 801 249 418 40.97 29.08 + 802 282 425 40.13 33.00 + 803 344 446 37.75 40.20 + 804 284 468 35.15 33.28 + 805 1594 218 64.43 -173.23 + 806 258 259 59.58 30.18 + 807 321 292 55.75 37.57 + 808 708 298 55.03 82.90 + 809 1126 400 43.12 131.90 + 810 657 399 43.23 76.93 + 811 384 412 41.68 44.95 + 812 636 400 43.07 74.47 + 813 592 416 41.27 69.27 + 814 308 495 31.98 35.98 + 815 301 496 31.87 35.22 + 816 400 556 24.88 46.77 + 817 399 557 24.72 46.72 + 818 410 519 29.22 47.98 + 819 369 458 36.32 43.15 + 820 378 484 33.22 44.23 + 821 408 507 30.57 47.78 + 822 419 529 28.00 49.00 + 823 427 538 27.00 50.00 + 824 438 463 35.68 51.32 + 825 525 503 31.05 61.47 + 826 602 474 34.42 70.47 + 827 562 501 31.31 65.85 + 828 441 552 25.25 51.57 + 829 473 552 25.25 55.33 + 830 467 560 24.42 54.65 + 831 2486 115 76.53 -68.75 + 832 659 524 28.58 77.20 + 833 711 617 17.72 83.30 + 834 915 399 43.20 107.17 + 835 729 532 27.70 85.37 + 836 975 577 22.32 114.17 + 837 1037 554 25.03 121.52 + 838 989 676 10.72 115.83 + 839 1083 447 37.55 126.80 + 840 1101 468 35.18 128.93 + 841 1207 421 40.70 141.37 + 842 1169 467 35.25 136.93 + 843 1193 465 35.55 139.78 + 844 1198 463 35.76 140.38 + 845 1157 472 34.68 135.53 + 846 856 723 5.30 100.27 + 847 869 745 2.75 101.72 + 848 886 756 1.38 103.72 + 849 896 573 22.82 104.97 + 850 903 589 21.02 105.80 + 851 911 676 10.82 106.67 + 852 1081 327 51.72 126.65 + 853 994 428 39.80 116.47 + 854 1027 460 36.07 120.33 + 855 888 506 30.67 104.02 + 856 930 475 34.30 108.93 + 857 972 473 34.52 113.83 + 858 1037 502 31.17 121.43 + 859 2941 530 27.93 -15.38 + 860 3007 481 33.57 -7.67 + 861 3004 498 31.62 -8.03 + 862 47 573 22.82 5.47 + 863 19 653 13.48 2.17 + 864 3047 625 16.72 -3.00 + 865 2923 642 14.73 -17.50 + 866 2929 654 13.35 -16.80 + 867 618 830 -7.30 72.42 + 868 199 561 24.22 23.30 + 869 233 501 31.33 27.22 + 870 315 779 -1.28 36.83 + 871 317 797 -3.42 37.07 + 872 327 810 -4.92 38.23 + 873 132 805 -4.38 15.45 + 874 29 712 6.58 3.33 + 875 3071 720 5.60 -0.17 + 876 3008 705 7.38 -7.53 + 877 3039 723 5.25 -3.93 + 878 2984 715 6.23 -10.37 + 879 113 844 -8.85 13.23 + 880 265 976 -24.37 31.05 + 881 159 1058 -33.97 18.60 + 882 1735 159 71.30 -156.78 + 883 1847 169 70.13 -143.63 + 884 1655 180 68.88 -166.13 + 885 1685 197 66.87 -162.63 + 886 1774 176 69.37 -152.13 + 887 1780 197 66.92 -151.52 + 888 1775 212 65.17 -152.10 + 889 1833 200 66.57 -145.27 + 890 1661 217 64.50 -165.43 + 891 1700 223 63.88 -160.80 + 892 1656 241 61.78 -166.03 + 893 1692 249 60.78 -161.80 + 894 1733 215 64.73 -156.93 + 895 1745 230 62.97 -155.62 + 896 1741 231 62.90 -155.98 + 897 1745 246 61.10 -155.58 + 898 1792 236 62.30 -150.10 + 899 1782 239 61.97 -151.18 + 900 1782 251 60.57 -151.25 + 901 1811 215 64.82 -147.87 + 902 1817 216 64.67 -147.10 + 903 1829 222 63.97 -145.70 + 904 1829 222 64.00 -145.73 + 905 1831 237 62.15 -145.45 + 906 1794 245 61.25 -149.80 + 907 1792 246 61.17 -150.02 + 908 1800 242 61.60 -149.08 + 909 1824 246 61.13 -146.35 + 910 1797 255 60.12 -149.45 + 911 1868 215 64.78 -141.15 + 912 1861 230 62.97 -141.93 + 913 1831 252 60.50 -145.50 + 914 1690 267 58.65 -162.07 + 915 1620 280 57.15 -170.22 + 916 1684 297 55.20 -162.73 + 917 1720 264 59.05 -158.52 + 918 1736 267 58.68 -156.65 + 919 1751 258 59.75 -154.92 + 920 1780 259 59.63 -151.50 + 921 1824 261 59.43 -146.33 + 922 1771 275 57.75 -152.50 + 923 1881 260 59.52 -139.67 + 924 1918 260 59.47 -135.30 + 925 1914 269 58.42 -135.73 + 926 1918 281 57.07 -135.35 + 927 1924 270 58.37 -134.58 + 928 1938 283 56.82 -132.97 + 929 1943 286 56.48 -132.37 + 930 1949 296 55.35 -131.70 + 931 1950 298 55.03 -131.57 + 932 1486 318 52.72 174.12 + 933 1565 325 51.88 -176.65 + 934 1632 316 52.95 -168.85 + 935 1651 308 53.90 -166.55 + 936 1954 325 51.93 -131.02 + 937 1991 211 65.28 -126.75 + 938 2003 153 72.00 -125.28 + 939 2070 288 56.23 -117.43 + 940 2054 117 76.23 -119.33 + 941 2210 283 56.87 -101.08 + 942 2237 292 55.75 -97.87 + 943 2379 181 68.78 -81.25 + 944 2541 64 82.50 -62.33 + 945 2028 349 49.03 -122.37 + 946 1986 335 50.68 -127.37 + 947 2099 311 53.55 -114.10 + 948 2103 313 53.30 -113.58 + 949 2146 306 54.13 -108.52 + 950 2124 339 50.27 -111.18 + 951 2185 313 53.33 -104.00 + 952 2462 368 46.90 -71.50 + 953 2568 362 47.57 -59.17 + 954 2054 342 49.95 -119.40 + 955 1963 269 58.42 -130.00 + 956 2390 399 43.17 -79.93 + 957 2387 397 43.47 -80.38 + 958 2531 385 44.88 -63.50 + 959 2519 384 44.98 -64.92 + 960 2516 395 43.72 -65.25 + 961 2123 207 65.77 -111.25 + 962 2364 407 42.27 -82.97 + 963 2560 393 43.93 -60.02 + 964 2531 387 44.63 -63.50 + 965 2508 394 43.87 -66.10 + 966 2510 381 45.32 -65.88 + 967 2380 401 43.03 -81.15 + 968 2393 395 43.67 -79.63 + 969 2413 376 45.95 -77.32 + 970 2443 380 45.47 -73.75 + 971 2441 378 45.68 -74.03 + 972 2427 381 45.32 -75.67 + 973 2404 390 44.23 -78.37 + 974 2396 384 44.97 -79.30 + 975 2380 386 44.75 -81.10 + 976 2506 377 45.83 -66.43 + 977 2521 374 46.12 -64.68 + 978 2534 373 46.28 -63.13 + 979 2560 374 46.17 -60.05 + 980 2463 369 46.80 -71.40 + 981 2424 372 46.38 -75.97 + 982 2409 358 48.05 -77.78 + 983 2395 372 46.37 -79.42 + 984 2349 359 47.97 -84.78 + 985 2378 353 48.57 -81.37 + 986 2323 322 52.23 -87.88 + 987 2310 355 48.37 -89.32 + 988 2019 353 48.65 -123.43 + 989 2623 362 47.62 -52.73 + 990 2607 350 48.95 -54.57 + 991 2583 348 49.22 -57.40 + 992 2507 339 50.22 -66.27 + 993 2573 354 48.53 -58.55 + 994 2557 313 53.32 -60.42 + 995 2437 343 49.77 -74.53 + 996 2444 309 53.75 -73.67 + 997 2331 343 49.78 -86.93 + 998 2384 330 51.27 -80.65 + 999 2385 330 51.28 -80.60 + 1000 2303 329 51.45 -90.20 + 1001 2306 309 53.83 -89.87 + 1002 2267 343 49.78 -94.37 + 1003 2243 342 49.90 -97.23 + 1004 2222 343 49.78 -99.65 + 1005 2205 301 54.68 -101.68 + 1006 2179 338 50.43 -104.67 + 1007 2162 323 52.17 -106.68 + 1008 2210 307 53.97 -101.10 + 1009 2171 314 53.22 -105.68 + 1010 2128 341 50.02 -110.72 + 1011 2110 344 49.63 -112.80 + 1012 2100 332 51.12 -114.02 + 1013 2085 344 49.62 -115.78 + 1014 2069 347 49.30 -117.63 + 1015 2021 348 49.18 -123.17 + 1016 2007 344 49.72 -124.90 + 1017 2026 308 53.88 -122.68 + 1018 2489 272 58.10 -68.42 + 1019 2406 269 58.45 -78.12 + 1020 2488 224 63.75 -68.53 + 1021 2270 267 58.75 -94.07 + 1022 2361 220 64.20 -83.37 + 1023 2339 85 79.98 -85.93 + 1024 2158 278 57.35 -107.13 + 1025 2262 130 74.72 -94.95 + 1026 2175 178 69.10 -105.12 + 1027 2253 219 64.30 -96.00 + 1028 2117 300 54.77 -112.02 + 1029 2117 256 60.02 -111.95 + 1030 2096 234 62.50 -114.40 + 1031 2026 266 58.83 -122.58 + 1032 2038 240 61.80 -121.20 + 1033 1973 255 60.12 -128.82 + 1034 1933 185 68.32 -133.53 + 1035 1920 250 60.72 -135.07 + 1036 1885 221 64.05 -139.13 + 1037 1879 191 67.57 -139.82 + 1038 2375 558 24.55 -81.75 + 1039 2381 557 24.73 -81.05 + 1040 2387 548 25.82 -80.28 + 1041 2387 547 25.90 -80.28 + 1042 2389 545 26.07 -80.15 + 1043 2386 549 25.65 -80.43 + 1044 2389 540 26.68 -80.12 + 1045 2388 544 26.20 -80.17 + 1046 2384 528 28.10 -80.65 + 1047 2386 532 27.65 -80.42 + 1048 2379 525 28.43 -81.32 + 1049 2381 519 29.18 -81.05 + 1050 2375 508 30.50 -81.69 + 1051 2374 510 30.22 -81.88 + 1052 2380 494 32.13 -81.19 + 1053 2384 493 32.22 -80.70 + 1054 2390 487 32.90 -80.03 + 1055 2370 532 27.70 -82.38 + 1056 2387 533 27.50 -80.37 + 1057 2374 541 26.58 -81.87 + 1058 2375 542 26.53 -81.75 + 1059 2368 529 27.97 -82.53 + 1060 2368 534 27.40 -82.55 + 1061 2367 530 27.92 -82.68 + 1062 2373 529 27.99 -82.02 + 1063 2363 515 29.62 -83.10 + 1064 2369 501 31.25 -82.40 + 1065 2377 501 31.25 -81.47 + 1066 2378 502 31.15 -81.37 + 1067 2353 509 30.38 -84.37 + 1068 2370 515 29.68 -82.27 + 1069 2351 483 33.36 -84.57 + 1070 2354 499 31.53 -84.18 + 1071 2362 505 30.78 -83.28 + 1072 2359 489 32.70 -83.65 + 1073 2373 483 33.37 -81.97 + 1074 2352 481 33.65 -84.42 + 1075 2351 480 33.78 -84.52 + 1076 2353 479 33.88 -84.30 + 1077 2347 514 29.73 -84.98 + 1078 2339 507 30.56 -85.92 + 1079 2329 508 30.47 -87.18 + 1080 2319 506 30.68 -88.25 + 1081 2321 507 30.63 -88.07 + 1082 2341 510 30.22 -85.68 + 1083 2349 492 32.33 -84.83 + 1084 2348 490 32.52 -84.93 + 1085 2335 492 32.30 -86.40 + 1086 2343 501 31.32 -85.45 + 1087 2332 481 33.57 -86.75 + 1088 2325 484 33.22 -87.62 + 1089 2340 481 33.58 -85.85 + 1090 2328 487 32.90 -87.25 + 1091 2276 514 29.78 -93.30 + 1092 2332 485 33.17 -86.77 + 1093 2303 520 29.10 -90.20 + 1094 2302 512 29.98 -90.25 + 1095 2288 512 30.03 -91.88 + 1096 2304 511 30.05 -90.03 + 1097 2295 507 30.53 -91.15 + 1098 2310 518 29.33 -89.40 + 1099 2306 509 30.33 -89.82 + 1100 2315 492 32.33 -88.75 + 1101 2310 499 31.47 -89.33 + 1102 2304 492 32.32 -90.08 + 1103 2296 482 33.48 -90.98 + 1104 2300 502 31.18 -90.47 + 1105 2304 482 33.50 -90.08 + 1106 2277 503 31.05 -93.20 + 1107 2277 511 30.12 -93.22 + 1108 2288 510 30.20 -91.98 + 1109 2270 512 29.95 -94.02 + 1110 2264 518 29.30 -94.80 + 1111 2259 512 29.97 -95.35 + 1112 2259 515 29.65 -95.28 + 1113 2250 507 30.58 -96.37 + 1114 2264 501 31.23 -94.75 + 1115 2258 492 32.34 -95.40 + 1116 2265 492 32.34 -94.65 + 1117 2272 491 32.47 -93.82 + 1118 2287 490 32.52 -92.03 + 1119 2285 500 31.40 -92.30 + 1120 2242 488 32.83 -97.30 + 1121 2241 547 25.90 -97.43 + 1122 2239 544 26.23 -97.65 + 1123 2234 545 26.18 -98.23 + 1124 2240 531 27.77 -97.50 + 1125 2236 531 27.73 -98.03 + 1126 2224 533 27.55 -99.47 + 1127 2258 519 29.12 -95.47 + 1128 2232 516 29.53 -98.47 + 1129 2239 509 30.30 -97.70 + 1130 2245 522 28.85 -96.92 + 1131 2243 498 31.62 -97.22 + 1132 2238 503 31.07 -97.83 + 1133 2246 488 32.84 -96.85 + 1134 2258 481 33.63 -95.45 + 1135 2245 487 32.90 -97.03 + 1136 2064 469 35.07 -118.15 + 1137 2242 488 32.82 -97.37 + 1138 2235 493 32.22 -98.18 + 1139 2211 517 29.37 -100.92 + 1140 2178 496 31.83 -104.80 + 1141 2215 500 31.37 -100.50 + 1142 2197 461 36.02 -102.55 + 1143 2185 509 30.37 -104.02 + 1144 2201 495 31.95 -102.18 + 1145 2192 497 31.78 -103.20 + 1146 2222 491 32.41 -99.68 + 1147 2204 481 33.65 -101.82 + 1148 2181 484 33.30 -104.53 + 1149 2183 492 32.33 -104.27 + 1150 2192 489 32.68 -103.22 + 1151 2166 493 32.24 -106.22 + 1152 2160 492 32.28 -106.92 + 1153 2165 497 31.80 -106.40 + 1154 2157 484 33.23 -107.27 + 1155 2153 493 32.27 -107.72 + 1156 2131 499 31.57 -110.33 + 1157 2137 499 31.47 -109.60 + 1158 2126 494 32.12 -110.93 + 1159 2117 483 33.43 -112.02 + 1160 2095 489 32.65 -114.60 + 1161 2069 477 34.05 -117.60 + 1162 2078 479 33.83 -116.50 + 1163 2063 476 34.20 -118.35 + 1164 2061 476 34.22 -118.48 + 1165 2043 467 35.23 -120.63 + 1166 2073 489 32.73 -117.17 + 1167 2074 490 32.57 -116.98 + 1168 2053 484 33.25 -119.45 + 1169 2062 483 33.40 -118.42 + 1170 2072 485 33.13 -117.28 + 1171 2073 488 32.85 -117.12 + 1172 2062 479 33.93 -118.40 + 1173 2064 479 33.82 -118.15 + 1174 2067 481 33.68 -117.87 + 1175 2408 475 34.27 -77.90 + 1176 2398 468 35.17 -79.02 + 1177 2399 469 34.98 -78.87 + 1178 2428 467 35.27 -75.55 + 1179 2417 471 34.78 -76.87 + 1180 2400 462 35.87 -78.78 + 1181 2412 464 35.64 -77.39 + 1182 2407 466 35.33 -77.97 + 1183 2408 462 35.84 -77.90 + 1184 2410 471 34.82 -77.61 + 1185 2457 454 36.82 -72.10 + 1186 2422 453 36.90 -76.19 + 1187 2420 451 37.13 -76.50 + 1188 2416 470 34.90 -76.88 + 1189 2415 469 35.07 -77.05 + 1190 2380 478 33.95 -81.12 + 1191 2392 476 34.18 -79.72 + 1192 2362 478 33.95 -83.32 + 1193 2370 471 34.84 -82.35 + 1194 2371 470 34.90 -82.22 + 1195 2367 474 34.50 -82.72 + 1196 2382 467 35.22 -80.93 + 1197 2378 463 35.73 -81.37 + 1198 2368 466 35.43 -82.55 + 1199 2390 460 36.08 -79.94 + 1200 2386 450 37.21 -80.41 + 1201 2369 457 36.48 -82.40 + 1202 2388 460 36.13 -80.22 + 1203 2346 475 34.35 -85.16 + 1204 2332 472 34.65 -86.77 + 1205 2325 471 34.75 -87.62 + 1206 2345 469 35.03 -85.20 + 1207 2356 462 35.82 -83.98 + 1208 2346 461 35.95 -85.08 + 1209 2333 460 36.13 -86.68 + 1210 2315 475 34.27 -88.77 + 1211 2304 469 35.05 -90.00 + 1212 2314 464 35.59 -88.92 + 1213 2285 471 34.83 -92.25 + 1214 2285 472 34.73 -92.23 + 1215 2299 462 35.83 -90.65 + 1216 2278 474 34.48 -93.10 + 1217 2288 476 34.18 -91.93 + 1218 2271 482 33.45 -93.98 + 1219 2281 484 33.22 -92.80 + 1220 2267 466 35.33 -94.37 + 1221 2269 461 36.00 -94.17 + 1222 2278 458 36.27 -93.15 + 1223 2283 459 36.20 -92.47 + 1224 2290 463 35.73 -91.65 + 1225 2288 453 36.88 -91.90 + 1226 2308 450 37.23 -89.57 + 1227 2270 453 36.91 -94.02 + 1228 2266 451 37.15 -94.50 + 1229 2232 478 33.98 -98.50 + 1230 2227 469 34.98 -99.05 + 1231 2226 466 35.33 -99.20 + 1232 2221 458 36.30 -99.77 + 1233 2240 466 35.40 -97.60 + 1234 2244 454 36.73 -97.10 + 1235 2233 473 34.60 -98.40 + 1236 2245 475 34.30 -97.02 + 1237 2254 459 36.20 -95.90 + 1238 2253 454 36.76 -96.01 + 1239 2255 470 34.88 -95.78 + 1240 2241 467 35.23 -97.47 + 1241 2192 457 36.45 -103.15 + 1242 2217 474 34.43 -100.28 + 1243 2144 465 35.52 -108.78 + 1244 2205 467 35.23 -101.70 + 1245 2162 496 31.87 -106.70 + 1246 2163 469 35.05 -106.62 + 1247 2167 464 35.62 -106.08 + 1248 2149 454 36.75 -108.23 + 1249 2188 468 35.18 -103.60 + 1250 2175 464 35.65 -105.15 + 1251 2100 467 35.27 -113.95 + 1252 2121 453 36.93 -111.45 + 1253 2113 473 34.53 -112.47 + 1254 2113 472 34.65 -112.42 + 1255 2128 469 35.02 -110.73 + 1256 2134 475 34.27 -110.00 + 1257 2139 473 34.51 -109.38 + 1258 2120 468 35.13 -111.67 + 1259 2118 467 35.23 -111.82 + 1260 2115 461 35.95 -112.15 + 1261 2094 471 34.77 -114.62 + 1262 2066 470 34.92 -117.90 + 1263 2076 471 34.84 -116.78 + 1264 2064 472 34.73 -118.22 + 1265 2065 472 34.63 -118.08 + 1266 2057 466 35.43 -119.05 + 1267 2090 460 36.08 -115.17 + 1268 2082 455 36.62 -116.02 + 1269 2051 454 36.77 -119.72 + 1270 2056 477 34.12 -119.12 + 1271 2050 474 34.43 -119.83 + 1272 2055 476 34.21 -119.20 + 1273 2044 471 34.75 -120.57 + 1274 2045 470 34.90 -120.45 + 1275 2043 464 35.66 -120.63 + 1276 2413 448 37.50 -77.33 + 1277 2403 443 38.13 -78.44 + 1278 2403 449 37.35 -78.43 + 1279 2428 444 37.93 -75.48 + 1280 2412 436 38.95 -77.44 + 1281 2412 441 38.27 -77.45 + 1282 2421 441 38.28 -76.40 + 1283 2428 441 38.33 -75.51 + 1284 2415 436 38.84 -77.03 + 1285 2418 434 39.18 -76.67 + 1286 2409 429 39.70 -77.73 + 1287 2420 432 39.33 -76.42 + 1288 2436 431 39.45 -74.57 + 1289 2432 432 39.37 -75.07 + 1290 2430 428 39.88 -75.25 + 1291 2432 426 40.08 -75.01 + 1292 2427 429 39.68 -75.60 + 1293 2434 424 40.28 -74.82 + 1294 2436 426 40.02 -74.60 + 1295 2437 420 40.80 -74.42 + 1296 2397 449 37.33 -79.19 + 1297 2396 456 36.57 -79.33 + 1298 2390 449 37.32 -79.97 + 1299 2391 444 37.95 -79.83 + 1300 2380 446 37.78 -81.12 + 1301 2380 450 37.30 -81.19 + 1302 2386 445 37.87 -80.40 + 1303 2376 440 38.37 -81.60 + 1304 2391 436 38.88 -79.85 + 1305 2388 433 39.30 -80.23 + 1306 2391 430 39.65 -79.92 + 1307 2407 432 39.40 -77.98 + 1308 2350 435 39.05 -84.67 + 1309 2351 443 38.03 -84.60 + 1310 2341 442 38.18 -85.73 + 1311 2362 447 37.59 -83.32 + 1312 2329 446 37.75 -87.16 + 1313 2339 444 37.91 -85.97 + 1314 2355 451 37.08 -84.08 + 1315 2368 440 38.37 -82.55 + 1316 2357 432 39.42 -83.83 + 1317 2331 441 38.25 -86.95 + 1318 2378 432 39.34 -81.43 + 1319 2384 425 40.18 -80.65 + 1320 2365 427 40.00 -82.88 + 1321 2365 428 39.82 -82.93 + 1322 2374 427 39.95 -81.90 + 1323 2354 427 39.90 -84.20 + 1324 2352 434 39.09 -84.42 + 1325 2326 443 38.05 -87.53 + 1326 2313 438 38.65 -88.97 + 1327 2311 446 37.78 -89.25 + 1328 2301 437 38.75 -90.37 + 1329 2299 438 38.66 -90.65 + 1330 2315 452 37.07 -88.77 + 1331 2350 452 37.05 -84.61 + 1332 2327 431 39.45 -87.32 + 1333 2333 434 39.15 -86.62 + 1334 2336 429 39.73 -86.27 + 1335 2331 423 40.41 -86.93 + 1336 2307 428 39.84 -89.67 + 1337 2294 427 39.95 -91.20 + 1338 2314 422 40.48 -88.92 + 1339 2325 426 40.12 -87.60 + 1340 2276 450 37.23 -93.38 + 1341 2286 437 38.82 -92.22 + 1342 2301 446 37.77 -90.43 + 1343 2289 443 38.13 -91.77 + 1344 2283 443 38.10 -92.55 + 1345 2264 432 39.32 -94.72 + 1346 2265 434 39.12 -94.60 + 1347 2263 437 38.83 -94.89 + 1348 2263 429 39.77 -94.92 + 1349 2241 447 37.65 -97.43 + 1350 2237 443 38.07 -97.87 + 1351 2258 447 37.66 -95.48 + 1352 2242 443 38.06 -97.28 + 1353 2219 446 37.77 -99.97 + 1354 2213 444 37.93 -100.72 + 1355 2211 452 37.04 -100.97 + 1356 2229 441 38.34 -98.86 + 1357 2225 436 38.85 -99.27 + 1358 2232 450 37.27 -98.55 + 1359 2248 434 39.13 -96.67 + 1360 2252 441 38.33 -96.19 + 1361 2257 434 39.07 -95.62 + 1362 2256 436 38.95 -95.67 + 1363 2239 430 39.55 -97.65 + 1364 2229 436 38.87 -98.82 + 1365 2239 437 38.80 -97.65 + 1366 2203 452 37.01 -101.88 + 1367 2169 448 37.45 -105.87 + 1368 2153 451 37.15 -107.75 + 1369 2152 444 37.95 -107.90 + 1370 2189 443 38.05 -103.52 + 1371 2196 443 38.07 -102.68 + 1372 2181 441 38.28 -104.52 + 1373 2205 432 39.37 -101.70 + 1374 2221 432 39.38 -99.83 + 1375 2179 437 38.82 -104.72 + 1376 2178 430 39.57 -104.85 + 1377 2160 430 39.65 -106.92 + 1378 2161 433 39.22 -106.87 + 1379 2160 439 38.53 -106.93 + 1380 2178 438 38.70 -104.77 + 1381 2178 429 39.75 -104.87 + 1382 2192 425 40.17 -103.22 + 1383 2175 427 39.91 -105.12 + 1384 2127 430 39.62 -110.75 + 1385 2138 447 37.62 -109.47 + 1386 2128 440 38.37 -110.72 + 1387 2104 452 37.04 -113.50 + 1388 2107 446 37.70 -113.10 + 1389 2115 446 37.70 -112.15 + 1390 2146 434 39.12 -108.53 + 1391 2152 439 38.50 -107.90 + 1392 2145 450 37.30 -108.67 + 1393 2180 423 40.43 -104.63 + 1394 2176 423 40.45 -105.01 + 1395 2132 435 39.00 -110.17 + 1396 2136 437 38.76 -109.75 + 1397 2112 432 39.33 -112.58 + 1398 2118 411 41.78 -111.85 + 1399 2062 449 37.37 -118.37 + 1400 2044 450 37.28 -120.52 + 1401 2036 439 38.52 -121.50 + 1402 2037 439 38.55 -121.30 + 1403 2035 438 38.70 -121.58 + 1404 2073 443 38.05 -117.08 + 1405 2060 439 38.55 -118.63 + 1406 2092 433 39.28 -114.85 + 1407 2095 447 37.62 -114.52 + 1408 2050 431 39.50 -119.78 + 1409 2050 430 39.57 -119.79 + 1410 2033 456 36.58 -121.85 + 1411 2035 455 36.66 -121.60 + 1412 2038 444 37.90 -121.25 + 1413 2033 446 37.70 -121.82 + 1414 2030 446 37.73 -122.22 + 1415 2028 447 37.62 -122.38 + 1416 2032 449 37.37 -121.93 + 1417 2024 439 38.52 -122.82 + 1418 2451 419 40.87 -72.86 + 1419 2440 421 40.70 -74.17 + 1420 2440 419 40.84 -74.07 + 1421 2442 420 40.77 -73.90 + 1422 2449 420 40.80 -73.10 + 1423 2442 413 41.63 -73.87 + 1424 2444 417 41.07 -73.69 + 1425 2440 414 41.50 -74.10 + 1426 2449 417 41.17 -73.12 + 1427 2451 416 41.27 -72.87 + 1428 2458 415 41.33 -72.05 + 1429 2462 417 41.17 -71.58 + 1430 2471 412 41.65 -70.52 + 1431 2475 416 41.25 -70.07 + 1432 2469 410 41.92 -70.73 + 1433 2467 412 41.68 -70.97 + 1434 2473 412 41.67 -70.28 + 1435 2463 412 41.73 -71.43 + 1436 2463 413 41.60 -71.42 + 1437 2452 410 41.93 -72.68 + 1438 2457 412 41.73 -72.18 + 1439 2456 405 42.57 -72.27 + 1440 2453 412 41.73 -72.65 + 1441 2467 405 42.58 -70.92 + 1442 2466 406 42.37 -71.03 + 1443 2459 407 42.27 -71.87 + 1444 2424 423 40.38 -75.97 + 1445 2417 425 40.20 -76.76 + 1446 2421 426 40.12 -76.29 + 1447 2399 416 41.18 -78.90 + 1448 2404 424 40.30 -78.32 + 1449 2400 424 40.32 -78.83 + 1450 2408 419 40.84 -77.85 + 1451 2426 415 41.33 -75.73 + 1452 2416 416 41.25 -76.92 + 1453 2434 412 41.70 -74.80 + 1454 2424 408 42.22 -75.98 + 1455 2420 405 42.48 -76.44 + 1456 2416 408 42.17 -76.90 + 1457 2450 396 43.53 -72.95 + 1458 2429 421 40.65 -75.43 + 1459 2443 403 42.75 -73.80 + 1460 2444 398 43.33 -73.62 + 1461 2428 387 44.68 -75.47 + 1462 2423 400 43.12 -76.12 + 1463 2429 400 43.15 -75.37 + 1464 2388 422 40.50 -80.22 + 1465 2386 420 40.77 -80.40 + 1466 2390 424 40.34 -79.93 + 1467 2395 424 40.28 -79.40 + 1468 2378 419 40.91 -81.43 + 1469 2396 408 42.15 -79.26 + 1470 2374 414 41.42 -81.87 + 1471 2368 420 40.82 -82.52 + 1472 2384 416 41.27 -80.67 + 1473 2388 409 42.08 -80.18 + 1474 2402 411 41.80 -78.62 + 1475 2391 415 41.38 -79.87 + 1476 2401 402 42.93 -78.73 + 1477 2399 400 43.10 -78.94 + 1478 2410 400 43.12 -77.67 + 1479 2322 410 41.98 -87.90 + 1480 2319 410 41.92 -88.25 + 1481 2319 426 40.03 -88.28 + 1482 2314 428 39.83 -88.87 + 1483 2307 421 40.66 -89.68 + 1484 2307 412 41.74 -89.68 + 1485 2345 418 41.00 -85.20 + 1486 2344 424 40.25 -85.40 + 1487 2327 413 41.62 -87.42 + 1488 2324 411 41.78 -87.75 + 1489 2325 411 41.87 -87.60 + 1490 2323 406 42.42 -87.87 + 1491 2336 412 41.70 -86.32 + 1492 2357 413 41.60 -83.80 + 1493 2359 418 41.02 -83.67 + 1494 2361 408 42.23 -83.33 + 1495 2364 406 42.42 -83.02 + 1496 2368 402 42.92 -82.53 + 1497 2322 363 47.45 -87.90 + 1498 2351 403 42.77 -84.60 + 1499 2352 407 42.27 -84.47 + 1500 2345 407 42.30 -85.25 + 1501 2312 408 42.20 -89.10 + 1502 2300 414 41.45 -90.52 + 1503 2290 411 41.88 -91.70 + 1504 2295 420 40.78 -91.13 + 1505 2273 413 41.53 -93.65 + 1506 2284 417 41.10 -92.45 + 1507 2258 420 40.75 -95.41 + 1508 2299 406 42.40 -90.70 + 1509 2290 399 43.28 -91.74 + 1510 2284 405 42.55 -92.40 + 1511 2276 400 43.15 -93.33 + 1512 2269 405 42.55 -94.20 + 1513 2260 404 42.60 -95.23 + 1514 2254 415 41.30 -95.90 + 1515 2247 419 40.84 -96.75 + 1516 2247 424 40.30 -96.75 + 1517 2234 418 40.97 -98.32 + 1518 2228 413 41.62 -98.95 + 1519 2228 420 40.73 -99.00 + 1520 2252 412 41.76 -96.18 + 1521 2257 426 40.08 -95.60 + 1522 2222 414 41.44 -99.64 + 1523 2241 410 41.98 -97.43 + 1524 2242 414 41.45 -97.34 + 1525 2230 405 42.47 -98.69 + 1526 2250 406 42.40 -96.38 + 1527 2250 415 41.32 -96.37 + 1528 2194 417 41.10 -102.98 + 1529 2213 417 41.13 -100.68 + 1530 2205 422 40.51 -101.62 + 1531 2225 423 40.45 -99.33 + 1532 2195 409 42.05 -102.80 + 1533 2193 402 42.83 -103.10 + 1534 2178 417 41.15 -104.82 + 1535 2171 415 41.32 -105.67 + 1536 2179 428 39.87 -104.67 + 1537 2188 411 41.87 -103.60 + 1538 2164 402 42.92 -106.47 + 1539 2138 423 40.43 -109.52 + 1540 2158 422 40.48 -107.22 + 1541 2153 431 39.53 -107.73 + 1542 2117 420 40.78 -111.97 + 1543 2119 425 40.22 -111.72 + 1544 2142 413 41.60 -109.07 + 1545 2158 411 41.80 -107.20 + 1546 2117 416 41.20 -112.02 + 1547 2145 402 42.82 -108.73 + 1548 2147 400 43.07 -108.47 + 1549 2125 416 41.28 -111.03 + 1550 2128 396 43.60 -110.73 + 1551 2112 402 42.92 -112.60 + 1552 2116 397 43.52 -112.07 + 1553 2082 385 44.88 -116.10 + 1554 2061 426 40.07 -118.57 + 1555 2099 420 40.73 -114.03 + 1556 2085 419 40.87 -115.73 + 1557 2085 419 40.83 -115.78 + 1558 2085 412 41.67 -115.78 + 1559 2067 419 40.90 -117.80 + 1560 2044 423 40.38 -120.57 + 1561 2043 433 39.28 -120.70 + 1562 2047 432 39.32 -120.13 + 1563 2048 436 38.90 -120.00 + 1564 2097 397 43.50 -114.30 + 1565 2096 405 42.48 -114.48 + 1566 2102 405 42.55 -113.77 + 1567 2034 408 42.15 -121.73 + 1568 2021 434 39.13 -123.20 + 1569 2029 425 40.15 -122.25 + 1570 2029 422 40.50 -122.30 + 1571 2014 418 40.98 -124.10 + 1572 2012 411 41.78 -124.23 + 1573 2044 414 41.50 -120.53 + 1574 2024 406 42.37 -122.87 + 1575 2462 399 43.20 -71.50 + 1576 2468 400 43.08 -70.82 + 1577 2472 395 43.65 -70.32 + 1578 2469 398 43.40 -70.72 + 1579 2489 389 44.45 -68.37 + 1580 2483 392 44.07 -69.10 + 1581 2501 385 44.92 -67.00 + 1582 2490 364 47.28 -68.32 + 1583 2485 386 44.80 -68.83 + 1584 2454 398 43.35 -72.52 + 1585 2456 396 43.63 -72.30 + 1586 2462 389 44.36 -71.55 + 1587 2458 389 44.42 -72.02 + 1588 2453 391 44.20 -72.57 + 1589 2463 396 43.57 -71.42 + 1590 2465 387 44.58 -71.18 + 1591 2456 402 42.90 -72.27 + 1592 2448 388 44.47 -73.15 + 1593 2471 388 44.53 -70.53 + 1594 2473 392 44.05 -70.28 + 1595 2477 390 44.32 -69.80 + 1596 2479 380 45.47 -69.58 + 1597 2486 378 45.65 -68.68 + 1598 2446 387 44.65 -73.47 + 1599 2434 384 44.93 -74.85 + 1600 2424 392 44.00 -76.01 + 1601 2439 389 44.38 -74.19 + 1602 2360 404 42.70 -83.47 + 1603 2350 385 44.90 -84.72 + 1604 2343 402 42.88 -85.52 + 1605 2335 408 42.14 -86.44 + 1606 2342 408 42.23 -85.55 + 1607 2336 399 43.17 -86.25 + 1608 2358 401 42.97 -83.75 + 1609 2361 404 42.67 -83.42 + 1610 2355 396 43.53 -84.08 + 1611 2350 389 44.36 -84.67 + 1612 2344 390 44.28 -85.42 + 1613 2336 390 44.28 -86.25 + 1614 2342 386 44.73 -85.58 + 1615 2359 383 45.07 -83.57 + 1616 2361 389 44.45 -83.40 + 1617 2322 401 42.95 -87.90 + 1618 2310 400 43.13 -89.33 + 1619 2313 404 42.62 -89.04 + 1620 2303 399 43.21 -90.18 + 1621 2294 394 43.87 -91.25 + 1622 2292 385 44.87 -91.48 + 1623 2283 393 43.92 -92.50 + 1624 2320 388 44.48 -88.13 + 1625 2324 391 44.13 -87.68 + 1626 2317 393 43.98 -88.55 + 1627 2308 384 44.93 -89.63 + 1628 2307 386 44.78 -89.67 + 1629 2329 378 45.73 -87.08 + 1630 2325 383 45.12 -87.63 + 1631 2274 385 44.85 -93.57 + 1632 2247 396 43.58 -96.73 + 1633 2246 390 44.31 -96.82 + 1634 2242 402 42.92 -97.38 + 1635 2225 394 43.80 -99.32 + 1636 2234 389 44.38 -98.22 + 1637 2236 394 43.77 -98.03 + 1638 2243 385 44.92 -97.15 + 1639 2270 379 45.55 -94.07 + 1640 2269 372 46.40 -94.13 + 1641 2261 388 44.55 -95.08 + 1642 2258 376 45.87 -95.40 + 1643 2255 389 44.45 -95.82 + 1644 2266 390 44.32 -94.50 + 1645 2267 376 45.95 -94.35 + 1646 2277 385 44.88 -93.22 + 1647 2278 384 44.95 -93.07 + 1648 2271 391 44.22 -93.91 + 1649 2267 395 43.65 -94.42 + 1650 2276 395 43.68 -93.37 + 1651 2233 380 45.45 -98.43 + 1652 2193 392 44.06 -103.05 + 1653 2172 389 44.35 -105.53 + 1654 2160 386 44.77 -106.97 + 1655 2130 388 44.54 -110.42 + 1656 2151 393 43.97 -107.95 + 1657 2173 380 45.45 -105.40 + 1658 2178 366 47.13 -104.80 + 1659 2216 379 45.55 -100.41 + 1660 2217 389 44.38 -100.28 + 1661 2201 376 45.93 -102.17 + 1662 2142 388 44.52 -109.02 + 1663 2133 405 42.58 -110.11 + 1664 2124 387 44.68 -111.12 + 1665 2146 377 45.80 -108.53 + 1666 2138 366 47.05 -109.47 + 1667 2112 376 45.95 -112.50 + 1668 2112 382 45.25 -112.55 + 1669 2124 377 45.78 -111.15 + 1670 2130 378 45.70 -110.45 + 1671 2081 396 43.57 -116.22 + 1672 2057 396 43.58 -118.95 + 1673 2039 390 44.25 -121.15 + 1674 2101 383 45.12 -113.88 + 1675 2082 376 45.95 -116.13 + 1676 2058 378 45.68 -118.85 + 1677 2067 385 44.83 -117.82 + 1678 2020 399 43.23 -123.35 + 1679 2012 397 43.42 -124.25 + 1680 2021 391 44.12 -123.22 + 1681 2023 385 44.92 -123.00 + 1682 2014 387 44.58 -124.06 + 1683 2026 379 45.60 -122.60 + 1684 2028 379 45.55 -122.40 + 1685 2023 379 45.53 -122.95 + 1686 2039 379 45.62 -121.17 + 1687 2494 374 46.12 -67.80 + 1688 2479 370 46.62 -69.53 + 1689 2492 368 46.87 -68.01 + 1690 2492 370 46.68 -68.05 + 1691 2353 371 46.47 -84.37 + 1692 2352 373 46.25 -84.47 + 1693 2349 379 45.57 -84.80 + 1694 2309 378 45.63 -89.47 + 1695 2325 371 46.53 -87.55 + 1696 2327 372 46.35 -87.40 + 1697 2321 377 45.82 -88.12 + 1698 2317 365 47.17 -88.50 + 1699 2303 371 46.53 -90.13 + 1700 2286 368 46.83 -92.18 + 1701 2280 364 47.38 -92.83 + 1702 2254 368 46.83 -95.89 + 1703 2289 360 47.82 -91.83 + 1704 2276 353 48.57 -93.38 + 1705 2265 352 48.73 -94.62 + 1706 2246 368 46.90 -96.80 + 1707 2230 367 46.93 -98.68 + 1708 2262 363 47.50 -94.93 + 1709 2259 350 48.93 -95.33 + 1710 2243 359 47.95 -97.18 + 1711 2229 357 48.10 -98.87 + 1712 2213 369 46.77 -100.75 + 1713 2195 369 46.80 -102.80 + 1714 2188 357 48.18 -103.63 + 1715 2208 356 48.27 -101.28 + 1716 2207 361 47.65 -101.43 + 1717 2163 356 48.22 -106.62 + 1718 2160 364 47.33 -106.93 + 1719 2172 357 48.10 -105.58 + 1720 2183 361 47.70 -104.20 + 1721 2117 370 46.60 -112.00 + 1722 2099 367 46.92 -114.08 + 1723 2122 363 47.48 -111.37 + 1724 2136 354 48.55 -109.77 + 1725 2097 356 48.30 -114.27 + 1726 2114 353 48.60 -112.37 + 1727 2044 370 46.57 -120.53 + 1728 2037 364 47.28 -121.33 + 1729 2048 363 47.40 -120.02 + 1730 2047 363 47.40 -120.20 + 1731 2053 364 47.30 -119.52 + 1732 2054 365 47.20 -119.32 + 1733 2074 372 46.38 -117.02 + 1734 2076 360 47.77 -116.82 + 1735 2055 373 46.32 -119.27 + 1736 2056 373 46.27 -119.12 + 1737 2063 374 46.10 -118.28 + 1738 2070 361 47.63 -117.53 + 1739 2071 361 47.68 -117.32 + 1740 2073 369 46.75 -117.12 + 1741 2069 361 47.70 -117.60 + 1742 2067 354 48.55 -117.88 + 1743 2044 367 47.03 -120.53 + 1744 2019 357 48.12 -123.50 + 1745 2053 355 48.42 -119.53 + 1746 2015 374 46.15 -123.88 + 1747 2024 367 46.97 -122.90 + 1748 2015 367 46.97 -123.93 + 1749 2023 374 46.12 -122.94 + 1750 2029 363 47.45 -122.30 + 1751 2030 363 47.50 -122.22 + 1752 2029 362 47.53 -122.30 + 1753 2029 359 47.90 -122.28 + 1754 2026 364 47.27 -122.58 + 1755 2378 532 27.65 -81.33 + 1756 2010 359 47.95 -124.55 + 1757 2027 351 48.80 -122.53 + 1758 2109 425 40.17 -112.93 + 1759 2169 372 46.43 -105.87 + 1760 2258 387 44.67 -95.45 + 1761 2300 399 43.22 -90.53 + 1762 2426 392 44.05 -75.73 + 1763 2473 393 43.90 -70.25 + 1764 2463 402 42.93 -71.43 + 1765 2166 410 41.90 -106.19 + 1766 2214 426 40.09 -100.65 + 1767 2205 402 42.91 -101.69 + 1768 2242 426 40.10 -97.34 + 1769 2238 408 42.21 -97.79 + 1770 2273 410 41.90 -93.70 + 1771 2300 413 41.61 -90.57 + 1772 2355 428 39.82 -84.03 + 1773 2317 411 41.77 -88.48 + 1774 2330 420 40.81 -87.05 + 1775 2344 437 38.83 -85.42 + 1776 2443 421 40.65 -73.78 + 1777 2464 405 42.47 -71.28 + 1778 2466 403 42.72 -71.12 + 1779 2454 408 42.20 -72.53 + 1780 2452 408 42.15 -72.72 + 1781 2476 412 41.67 -69.97 + 1782 2442 402 42.85 -73.93 + 1783 2201 446 37.77 -102.18 + 1784 2178 435 38.97 -104.82 + 1785 2188 433 39.26 -103.70 + 1786 2179 425 40.18 -104.72 + 1787 2227 447 37.65 -99.09 + 1788 2256 449 37.38 -95.63 + 1789 2242 441 38.31 -97.30 + 1790 2281 448 37.52 -92.70 + 1791 2269 430 39.58 -94.19 + 1792 2300 429 39.66 -90.48 + 1793 2310 425 40.15 -89.33 + 1794 2433 435 39.02 -74.92 + 1795 2068 463 35.68 -117.68 + 1796 2165 491 32.41 -106.35 + 1797 2152 454 36.84 -107.91 + 1798 2226 460 36.07 -99.22 + 1799 2223 457 36.43 -99.53 + 1800 2241 455 36.69 -97.48 + 1801 2254 463 35.68 -95.86 + 1802 2240 469 34.98 -97.52 + 1803 2305 453 36.88 -89.97 + 1804 2335 452 36.97 -86.42 + 1805 2422 458 36.27 -76.18 + 1806 2086 488 32.83 -115.58 + 1807 2081 481 33.63 -116.17 + 1808 2094 481 33.62 -114.72 + 1809 2188 469 35.08 -103.61 + 1810 2167 486 33.08 -106.12 + 1811 2165 487 32.90 -106.40 + 1812 2211 486 33.02 -100.98 + 1813 2221 508 30.50 -99.77 + 1814 2256 497 31.78 -95.71 + 1815 2268 477 34.11 -94.29 + 1816 2281 496 31.90 -92.78 + 1817 2312 509 30.40 -89.07 + 1818 2314 477 34.09 -88.86 + 1819 2376 496 31.90 -81.63 + 1820 2364 504 30.89 -83.01 + 1821 2386 478 33.97 -80.47 + 1822 2399 481 33.68 -78.93 + 1823 2401 479 33.82 -78.72 + 1824 2385 525 28.47 -80.55 + 1825 2074 490 32.55 -116.97 + 1826 2089 489 32.63 -115.24 + 1827 2164 498 31.63 -106.43 + 1828 2063 521 28.88 -118.30 + 1829 2126 520 29.07 -110.97 + 1830 2168 523 28.70 -105.97 + 1831 2114 535 27.32 -112.30 + 1832 2126 529 27.97 -110.93 + 1833 2127 529 27.95 -110.80 + 1834 2223 534 27.43 -99.57 + 1835 2234 546 26.02 -98.23 + 1836 2190 550 25.53 -103.45 + 1837 2217 547 25.87 -100.20 + 1838 2218 548 25.78 -100.10 + 1839 2240 548 25.77 -97.53 + 1840 2130 562 24.17 -110.42 + 1841 2131 563 24.07 -110.37 + 1842 2136 570 23.15 -109.70 + 1843 2156 556 24.82 -107.40 + 1844 2181 562 24.13 -104.53 + 1845 2164 570 23.20 -106.42 + 1846 2166 570 23.17 -106.27 + 1847 2227 565 23.73 -99.13 + 1848 2228 566 23.72 -98.97 + 1849 2196 573 22.90 -102.68 + 1850 2211 579 22.15 -100.98 + 1851 2237 578 22.28 -97.87 + 1852 2200 581 21.88 -102.30 + 1853 2331 588 21.03 -86.87 + 1854 2174 591 20.68 -105.25 + 1855 2191 593 20.52 -103.32 + 1856 2307 589 20.98 -89.65 + 1857 2331 593 20.53 -86.93 + 1858 2180 605 19.15 -104.57 + 1859 2210 599 19.85 -101.03 + 1860 2223 603 19.35 -99.57 + 1861 2227 602 19.43 -99.10 + 1862 2252 605 19.15 -96.18 + 1863 2265 613 18.10 -94.58 + 1864 2289 609 18.65 -91.80 + 1865 2207 618 17.60 -101.47 + 1866 2220 624 16.83 -99.92 + 1867 2221 625 16.77 -99.75 + 1868 2251 633 15.78 -96.27 + 1869 2284 642 14.78 -92.38 + 1870 2521 492 32.37 -64.68 + 1871 2399 540 26.70 -78.97 + 1872 2401 541 26.55 -78.69 + 1873 2396 548 25.73 -79.30 + 1874 2411 554 25.05 -77.47 + 1875 2426 567 23.50 -75.76 + 1876 2366 582 21.83 -82.78 + 1877 2369 572 22.98 -82.40 + 1878 2379 571 23.13 -81.28 + 1879 2408 585 21.42 -77.85 + 1880 2414 594 20.33 -77.12 + 1881 2419 594 20.40 -76.62 + 1882 2425 598 19.96 -75.85 + 1883 2431 597 20.08 -75.15 + 1884 2437 594 20.35 -74.50 + 1885 2433 592 20.65 -74.92 + 1886 2377 583 21.62 -81.55 + 1887 2400 582 21.78 -78.78 + 1888 2416 589 20.95 -76.94 + 1889 2431 598 19.90 -75.12 + 1890 2378 603 19.28 -81.35 + 1891 2408 610 18.50 -77.92 + 1892 2417 615 17.93 -76.78 + 1893 2457 599 19.75 -72.18 + 1894 2456 609 18.57 -72.30 + 1895 2470 599 19.75 -70.55 + 1896 2469 602 19.46 -70.69 + 1897 2489 609 18.57 -68.37 + 1898 2478 611 18.43 -69.67 + 1899 2476 610 18.47 -69.88 + 1900 2500 610 18.50 -67.12 + 1901 2499 612 18.27 -67.15 + 1902 2504 614 18.02 -66.57 + 1903 2509 611 18.43 -66.00 + 1904 2518 612 18.33 -64.97 + 1905 2520 617 17.70 -64.80 + 1906 2522 611 18.45 -64.53 + 1907 2319 618 17.53 -88.30 + 1908 2306 624 16.92 -89.88 + 1909 2292 637 15.32 -91.47 + 1910 2316 634 15.72 -88.60 + 1911 2300 644 14.58 -90.52 + 1912 2298 649 13.92 -90.82 + 1913 2306 652 13.57 -89.83 + 1914 2312 651 13.70 -89.12 + 1915 2313 653 13.43 -89.05 + 1916 2324 655 13.28 -87.67 + 1917 2339 627 16.46 -85.92 + 1918 2334 629 16.32 -86.53 + 1919 2331 634 15.73 -86.87 + 1920 2326 634 15.72 -87.48 + 1921 2329 639 15.17 -87.12 + 1922 2322 636 15.45 -87.93 + 1923 2357 638 15.22 -83.80 + 1924 2339 641 14.90 -85.93 + 1925 2315 642 14.78 -88.78 + 1926 2320 646 14.33 -88.17 + 1927 2328 648 14.05 -87.22 + 1928 2329 654 13.30 -87.18 + 1929 2361 648 14.05 -83.37 + 1930 2337 664 12.15 -86.17 + 1931 2349 683 9.97 -84.78 + 1932 2354 683 10.00 -84.22 + 1933 2354 683 9.95 -84.15 + 1934 2364 683 10.00 -83.05 + 1935 2342 678 10.60 -85.55 + 1936 2368 688 9.43 -82.52 + 1937 2395 691 9.05 -79.37 + 1938 2369 696 8.39 -82.42 + 1939 2371 688 9.35 -82.25 + 1940 2382 699 8.08 -80.94 + 1941 2394 691 8.97 -79.51 + 1942 2534 613 18.20 -63.05 + 1943 2542 625 16.75 -62.17 + 1944 2538 620 17.29 -62.68 + 1945 2538 621 17.20 -62.58 + 1946 2545 622 17.12 -61.78 + 1947 2534 614 18.04 -63.12 + 1948 2535 619 17.48 -62.98 + 1949 2536 615 17.90 -62.85 + 1950 2548 629 16.27 -61.52 + 1951 2549 635 15.53 -61.30 + 1952 2549 635 15.53 -61.40 + 1953 2549 637 15.30 -61.40 + 1954 2565 656 13.07 -59.48 + 1955 2475 661 12.50 -70.01 + 1956 2484 664 12.20 -68.97 + 1957 2490 664 12.15 -68.28 + 1958 2375 661 12.58 -81.72 + 1959 2439 673 11.13 -74.23 + 1960 2428 679 10.45 -75.52 + 1961 2434 675 10.90 -74.77 + 1962 2448 707 7.10 -73.20 + 1963 2427 715 6.22 -75.60 + 1964 2429 715 6.18 -75.43 + 1965 2426 727 4.82 -75.80 + 1966 2440 728 4.70 -74.13 + 1967 2460 678 10.57 -71.73 + 1968 2501 678 10.60 -66.98 + 1969 2555 792 -2.83 -60.70 + 1970 2659 780 -1.43 -48.48 + 1971 2561 795 -3.15 -59.98 + 1972 2744 800 -3.78 -38.53 + 1973 2653 815 -5.53 -49.15 + 1974 2707 811 -5.05 -42.82 + 1975 2772 819 -5.92 -35.25 + 1976 2730 835 -7.88 -40.08 + 1977 2527 842 -8.70 -63.90 + 1978 2652 839 -8.27 -49.28 + 1979 2694 845 -9.07 -44.37 + 1980 2659 859 -10.70 -48.40 + 1981 2744 879 -13.00 -38.52 + 1982 2594 902 -15.65 -56.10 + 1983 2670 964 -23.00 -47.13 + 1984 2654 959 -22.32 -49.07 + 1985 2704 963 -22.90 -43.17 + 1986 2674 970 -23.62 -46.65 + 1987 2636 1025 -30.08 -51.18 + 1988 2308 776 -0.90 -89.62 + 1989 2404 769 -0.12 -78.35 + 1990 2391 786 -2.15 -79.88 + 1991 2397 837 -8.08 -79.12 + 1992 2415 871 -12.02 -77.03 + 1993 2520 894 -14.75 -64.80 + 1994 2491 909 -16.50 -68.17 + 1995 2469 1053 -33.38 -70.78 + 1996 2465 1067 -34.97 -71.22 + 1997 2583 983 -25.16 -57.38 + 1998 2569 1002 -27.45 -59.05 + 1999 2554 1049 -32.92 -60.78 + 2000 2573 1065 -34.82 -58.53 + 2001 2497 1159 -45.78 -67.45 + 2002 1713 580 21.98 -159.35 + 2003 1724 586 21.32 -158.07 + 2004 1725 586 21.35 -157.93 + 2005 1732 587 21.15 -157.10 + 2006 1738 590 20.90 -156.43 + 2007 1236 654 13.35 144.80 + 2008 1244 639 15.12 145.73 + 2009 1423 603 19.28 166.65 + 2010 1749 600 19.72 -155.07 + 2011 1296 704 7.47 151.85 + 2012 1351 709 6.97 158.22 + 2013 1392 723 5.33 163.03 + 2014 1432 693 8.73 167.73 + 2015 1463 708 7.08 171.38 + 2016 1148 705 7.33 134.48 + 2017 1179 687 9.48 138.08 + 2018 1240 647 14.20 145.20 + 2019 1243 640 15.00 145.60 + 2020 1244 608 18.80 145.70 + 2021 1150 699 8.10 134.70 + 2022 1129 723 5.30 132.20 + 2023 1174 697 8.30 137.50 + 2024 1193 683 10.00 139.80 + 2025 1199 684 9.80 140.50 + 2026 1152 705 7.40 134.90 + 2027 1234 695 8.60 144.60 + 2028 1256 705 7.40 147.10 + 2029 1274 705 7.40 149.20 + 2030 1278 695 8.60 149.70 + 2031 1297 695 8.60 151.90 + 2032 1304 709 6.90 152.70 + 2033 1313 721 5.50 153.80 + 2034 1323 736 3.80 155.00 + 2035 1343 718 5.80 157.30 + 2036 1348 708 7.00 157.90 + 2037 1364 710 6.80 159.80 + 2038 1372 715 6.20 160.70 + 2039 1387 667 11.80 162.50 + 2040 1414 692 8.90 165.70 + 2041 1441 706 7.30 168.80 + 2042 1448 718 5.90 169.60 + 2043 1449 672 11.20 169.80 + 2044 1453 687 9.50 170.20 + 2045 1467 716 6.10 171.80 + 2046 1870 922 -18.07 -140.95 + 2047 1492 1084 -37.02 174.80 + 2048 1117 874 -12.42 130.87 + 2049 1304 1004 -27.63 152.72 + 2050 990 1040 -31.92 115.97 + 2051 1291 1058 -33.95 151.18 + 2052 1236 1090 -37.67 144.83 + 2053 1272 1070 -35.40 148.98 + 2054 1259 1134 -42.83 147.50 + 2055 912 820 -6.15 106.85 + 2056 2330 500 31.42 -87.05 + 2057 1029 638 15.18 120.57 + 2058 1033 644 14.52 121.00 + 2059 1042 709 6.90 122.07 + 2060 2410 482 33.49 -77.59 + 2061 2096 517 29.37 -114.47 + 2062 2104 424 40.33 -113.50 + 2063 2394 468 35.17 -79.50 + 2064 2205 351 48.83 -101.67 + 2065 3067 391 44.22 -0.67 + 2066 184 1007 -28.00 21.50 + 2067 2492 1114 -40.50 -68.00 + 2068 2565 1001 -27.33 -59.50 + 2069 1152 1009 -28.23 134.98 + 2070 2841 438 38.70 -27.10 + 2071 1794 246 61.20 -149.80 + 2072 2950 835 -7.90 -14.40 + 2073 1189 463 35.70 139.30 + 2074 2607 351 48.90 -54.50 + 2075 42 397 43.50 4.90 + 2076 2997 318 52.70 -8.90 + 2077 1129 892 -14.50 132.30 + 2078 3005 443 38.10 -7.90 + 2079 1030 561 24.20 120.60 + 2080 862 660 12.70 101.00 + 2081 355 595 20.30 41.60 + 2082 1616 890 -14.30 -170.70 + 2083 2481 1208 -51.60 -69.30 + 2084 2139 1000 -27.20 -109.40 + 2085 756 575 22.60 88.50 + 2086 2775 837 -8.10 -34.90 + 2087 2676 968 -23.40 -46.50 + 2088 682 707 7.20 79.90 + 2089 2501 678 10.60 -67.00 + 2090 2625 727 4.80 -52.40 + 2091 622 605 19.10 72.80 + 2092 406 928 -18.80 47.50 + 2093 2126 493 32.20 -110.90 + 2094 2193 392 44.10 -103.10 + 2095 1818 217 64.60 -147.00 + 2096 2043 471 34.80 -120.60 + 2097 2065 473 34.60 -118.10 + 2098 2104 425 40.19 -113.47 + 2099 592 470 34.95 69.27 + 2100 3061 317 52.83 -1.32 + 2101 62 691 9.01 7.26 + 2102 2079 566 23.61 -116.48 + 2103 543 375 46.00 63.56 + 2104 578 361 47.67 67.73 + 2105 1741 600 19.73 -156.05 + 2106 1917 262 59.23 -135.43 + 2107 1824 246 61.13 -146.25 + 2108 1733 591 20.78 -156.95 + 2109 1736 589 21.02 -156.63 + 2110 2505 616 17.85 -66.52 + 2111 2499 613 18.17 -67.15 + 2112 2278 467 35.25 -93.09 + 2113 1094 900 -15.51 128.15 + 2114 3010 277 57.48 -7.36 + 2115 87 304 54.38 10.13 diff --git a/parm/product/bufr_stalist.meteo.gfs b/parm/product/bufr_stalist.meteo.gfs index e6911a9332..51d4108bac 100755 --- a/parm/product/bufr_stalist.meteo.gfs +++ b/parm/product/bufr_stalist.meteo.gfs @@ -727,6 +727,12 @@ 046035 57.00N 177.70W B#L 20 BUOY BERING SEA PAC 0 3-93 046047 32.40N 119.50W B#U 20 BUOY W SAN DIEGO PAC 0 OPC 11-03 046086 32.49N 118.03W B086 20 CLEMENTE BASIN BUOY (46086) 0 NASA ORION 10-13 +048327 18.77N 98.96E VTCC 10 CHIANG MAI, THAILAND 316 Usr Rqst 9-2020 +048381 16.47N 102.78E VTUK 10 KHON KAEN, THAILAND 204 Usr Rqst 9-2020 +048400 15.77N 100.14E VTPN 10 NAKHON SAWAN, THAILAND 34 Usr Rqst 9-2020 +048407 15.25N 104.87E VTUU 10 UBON RATCHATHANI, THAILAND 124 Usr Rqst 9-2020 +048453 13.67N 100.61E BKK 10 BANGKOK THAILAND 1 Usr Rqst 9-2020 +048568 7.19N 100.61E VTSH 10 SONGKHLA, THAILAND 12 Usr Rqst 9-2020 051001 23.40N 162.30W B#M 20 BUOY NW KAUAI PAC 0 FOUS 4-93 051002 17.20N 157.80W B#N 20 BUOY S OAHU PAC 0 4-93 051003 19.30N 160.80W B#O 20 BUOY S KAUAI PAC 0 4-93 diff --git a/parm/product/bufr_stalist.meteo.gfs3 b/parm/product/bufr_stalist.meteo.gfs3 deleted file mode 100755 index b302f9f7eb..0000000000 --- a/parm/product/bufr_stalist.meteo.gfs3 +++ /dev/null @@ -1,2084 +0,0 @@ -000001 69.58N 140.18W YAJ 11 KOMAKUK, YT 19 MAGS 9-95 -000002 69.90N 128.97W WRP 11 NICHOLSON, NT 15 MAGS 9-95 -000003 69.58N 120.75W WXK 11 CLINTON POINT, NT 27 MAGS 9-95 -000004 65.00N 132.00W SRR 11 SNAKE RIVER, YT 1506 MAGS 9-95 -000005 65.00N 120.00W CRR 11 SW CAMSELL RIVER, NT 332 MAGS 9-95 -000007 65.10N 102.43W WTD 11 ROBERTSON LAKE, NT 211 MAGS 9-95 -000008 60.00N 140.00W MTL 11 MT. LOGAN, YT 569 MAGS 9-95 -000009 60.00N 120.00W EFL 11 E. FT. LIARD, NT 437 MAGS 9-95 -000010 60.00N 100.00W ENL 11 SE ENNADAI LAKE, NT 277 MAGS 9-95 -000011 57.00N 127.00W SWW 11 SW WARE, BC 1744 MAGS 9-95 -000012 70.20N 148.47W PASC 10 DEADHORSE, AK 17 == TAF 2-99 -000014 53.63N 106.20W CHRL 11 NR CHRISTOPHER LAKE SA 582 MAGS 7-02 -000015 67.10N 157.85W PAFM 10 AMBLER, AK 88 == -000016 53.99N 105.12W CNLK 11 E OF CANDLE LAKE SA 599 MAGS 7-02 -000017 52.88N 118.07W WJA 11 JASPER, AB 1093 MAGS 9-95 -000018 62.50N 107.00W FTR 11 FT. RELIANCE, NT 358 MAGS 9-95 -000019 43.90N 110.00W GTP 12 NR. GRAND TETON NTL PK, WY 2704 GCIP 9-95 -000020 45.80N 97.45W MRLS 12 MARSHALL COUNTY RAWS, SD -999 GCIP 9-95 -000021 43.50N 95.60W CHE 12 NR. CHEROKEE, IA 490 GCIP 9-95 -000028 33.22N 92.80W ELD 11 EL DORADO/GOODWIN, AR 87 3-93 -000037 42.04N 94.79W CRL 12 CARROLL, IA -999 GCIP 9-95 -000050 42.11N 92.92W MAR 12 MARSHALLTOWN, IA -999 GCIP 9-95 -000052 34.10N 86.10W ABL 12 NR. ALBERTVILLE, AL 304 GCIP 9-95 -000053 35.20N 84.80W CLD 12 NR. CLEVELAND, TN 254 GCIP 9-95 -000054 34.80N 84.05W BRA 12 BLUE RIDGE OF APPALACH.,GA 908 GCIP 9-95 -000055 36.72N 80.97W FRI 12 FRIES, VA 664 GCIP 9-95 -000057 48.32N 113.35W MRP 12 MARIAS PASS, MT -999 GCIP 9-95 -000058 42.20N 107.20W PSR 12 PATHFINDER/SEMINOE RES,WY 2133 GCIP 9-95 -000059 42.76N 104.45W LUS 12 LUSK, WY -999 GCIP 9-95 -000060 42.30N 102.40W ATH 12 NR. ANTIOCH, NE 1188 GCIP 9-95 -000061 42.60N 99.90W AIH 12 NR. AINSWORTH, NE 777 GCIP 9-95 -000063 39.10N 106.20W LDL 12 NR. LEADVILLE, CO 3535 GCIP 9-95 -000065 37.30N 88.90W CAI 10 NR. CAIRO, IL 116 GCIP 9-95 -000066 40.20N 92.60W KKL 12 NR. KIRKSVILLE, MO 272 GCIP 9-95 -000068 34.90N 98.10W LW1 12 LITTLE WASHITA #147 397 GCIP 9-95 -000071 48.31N 105.10W FPK 12 FORT PECK, MT 634 SURFRAD 9-95 -000072 34.25N 89.87W GNC 12 GOODWIN CREEK, MS 98 SURFRAD 9-95 -000073 40.13N 105.24W TBL 12 TABLE MTN, CO 1689 SURFRAD 9-95 -000074 37.48N 96.93W W#N 12 WALNUT RIVER, KS 381 CASES 9-95 -000076 35.96N 84.29W O#K 12 OAK RIDGE, TN 334 GEWEX 7-02 -000078 42.86N 100.41W V#L 12 VALENTINE, NE 792 GCIP 9-95 -000080 41.02N 94.36W CSQ 12 CRESTON, IA -999 GCIP 9-95 -000081 42.04N 77.76W WHI 12 WHITESVILLE, NY 541 GCIP 9-95 -000082 39.17N 79.52W PIE 12 PIERCE, WV 956 GCIP 9-95 -000085 31.71N 89.41W CLN 12 COLLINS, MS 55 HYDRO 9-95 -000091 44.92N 80.42W GNB 22 GEORGIAN BAY 176 LES 2-96 -000096 45.27N 103.54W BH1 11 REDIG, SD 922 RAP 11-01 -000097 44.79N 104.73W BH2 11 BLACK HILLS NW, WY 1215 GCIP 2-99 -000098 44.46N 103.85W BH3 11 BLACK HILLS NORTH, WY 1210 RAP 11-01 -000099 43.35N 104.69W BH4 11 BLACK HILLS SW, WY 1340 GCIP 2-99 -000100 43.53N 103.65W BH5 11 BLACK HILLS SOUTH, SD 1461 RAP 11-01 -000101 45.50N 95.90W MRS 11 MORRIS, MN 335 GCIP 2-99 -000102 44.10N 93.50W WSC 11 WASECA, MN 348 GCIP 2-99 -000103 35.34N 116.88W DSC 10 GOLDSTONE, CA 961 GDSCC 2-99 -000151 34.40N 87.60W RSL 12 NR. RUSSELVILLE, AL 305 GCIP 9-95 -000152 47.50N 121.10W G001 11 CLE ELUM, WA 1453 GCIP 2-99 -000154 44.50N 122.70W G003 11 SANTIAM RIVER, OR 244 GCIP 2-99 -000155 44.00N 115.00W G004 11 UPPER BOISE, ID 2705 GCIP 2-99 -000156 46.90N 121.30W G005 11 UPPER YAKIMA, WA 1639 GCIP 2-99 -000158 44.10N 120.50W G007 11 OCHOCO, OR 1178 GCIP 2-99 -000160 42.70N 121.40W G009 11 TAYLOR BUTTE, OR 1524 GCIP 2-99 -000161 32.42N 110.73W G010 11 CATALINA MTNS FLX STN AZ 2414 GEWEX 7-02 -000162 36.61N 97.49W G011 11 SGP EXPER FLX STN OK 307 GEWEX 7-02 -000170 45.68N 121.27W COL1 11 COLUMBIA RIVER SITE 1 OR 61 Usr Rqst 2-01 -000171 45.72N 121.56W COL2 11 COLUMBIA RIVER SITE 2 OR 61 Usr Rqst 2-01 -000172 45.68N 120.82W COL3 11 COLUMBIA RIVER SITE 3 OR 61 Usr Rqst 2-01 -000173 45.72N 120.21W COL4 11 COLUMBIA RIVER SITE 4 OR 122 Usr Rqst 2-01 -000180 38.06N 121.77W TRAV 11 NEAR TRAVIS AFB CA -2 Usr Rqst 2-01 -000181 37.10N 122.28W PESC 11 NEAR PESCADERO CA 0 Usr Rqst 2-01 -000182 37.82N 122.47W PTBA 11 NEAR PT. BONITA CA 0 Usr Rqst 2-01 -000183 37.94N 122.50W SANQ 11 NEAR SAN QUINTAN CA 1 Usr Rqst 2-01 -000184 37.07N 121.12W GLRY 11 NEAR GILROY CA 98 Usr Rqst 2-01 -000185 40.20N 113.30W KBNV 11 BONNEVILLE LAKE BED UT -999 Usr Rqst 2-01 -000190 40.42N 73.98W ATLH 11 ATLANTIC HIGHLANDS NJ 1 Usr Rqst 2-01 -000191 37.20N 74.80W ATL1 21 NE OF VA BEACH VA 0 2-01 -000192 36.05N 74.25W ATL2 21 OFFSHORE OF DUCK NC 0 2-01 -000193 32.80N 77.20W ATL3 21 SOUTH OF CAPE FEAR NC 0 2-01 -000194 38.60N 73.75W ATL4 21 EAST OF LEWES DE 0 6-01 -000195 29.20N 87.25W GMX1 21 S OF PENSACOLA FL 0 6-01 -000196 46.31N 85.46W KERY 10 NEWBERRY MI 265 NWS KMQT 12-01 -000197 47.18N 87.22W STDM 20 STANNARD ROCK MI 183 NWS KMQT 12-01 -000198 42.97N 88.55W KMKX 10 MILWAUKEE NWS WI 285 NWS KMKX 3-02 -000199 44.94N 72.51W JAYV 11 JAY PEAK VT 572 NWS KBTV 3-02 -000200 37.27N 82.10W GRUN 11 GRUNDY VA 320 NWS KRLX 3-02 -000201 90.00N .00W A#1 11 THE NORTH POLE ARCTIC 0 -000202 74.30N 156.60W A#2 20 NORTH OF BARROW, AK ARCTIC 0 3-93 -000203 75.00N 140.00W A#3 20 N OF BARTAR ISL, AK ARCTIC 0 3-93 -000204 60.60N 173.30W A#4 20 NEAR ST MATTHEW ISL BERING 0 3-93 -000205 59.90N 161.75W A#C 11 SSE OF BETHEL AK -999 NWS AK 3-05 -000206 62.88N 149.83W PAEC 11 CHULITNA AK 381 NWS AK 3-05 -000207 60.79N 148.83W PATO 11 PORTAGE_GLACIER_CENTER 29 Nelson/NWS 11-08 -000208 60.49N 149.79W A#D 11 COOPER LANDING AK -999 NWS AK 3-05 -000209 60.95N 149.14W A#E 11 GIRDWOOD AK -999 NWS AK 3-05 -000210 60.78N 148.72W PAWR 11 WHITTIER AK 30 NWS AK 7-07 -000211 29.22N 114.28W KLCB 11 LAGUNA CHAPELA BAJA MX 701 Usr Rqst 2-01 -000212 36.20N 81.65W TNB 11 BOONE NC 960 NWS ER 3-05 -000213 42.59N 87.94W KENW 11 KENOSHA_(ASOS) WI 220 NWS ER 9-07 -000227 42.59N 117.87W REO 10 ROME, OR 1234 Weiss 2-99 -000228 47.08N 122.36W SWY 12 SPANAWAY WA -999 HMT S-PROF 12-10 -000229 46.91N 124.11W WPT 12 WESTPORT WA -999 HMT S-PROF/ARO 12-10 -000230 47.66N 90.91W LUT 11 NEAR LUSTEN MN -999 Usr Rqst 12-10 -000231 46.77N 91.25W PWN 11 NEAR PORT WING WI -999 Usr Rqst 12-10 -000232 55.31N 160.52W SDP 11 NEAR SAND POINT AK 6 Nelson/NWS 04-12 -000233 35.33N 77.60W KISO 11 KINSTON NC 29 TAF 1-11 -000234 44.53N 72.61W KMVL 11 MORRISVILLE-STOWE APT VT 223 Usr Rqst 2-11 -000235 41.63N 80.21W KGKL 11 MEADVILLE PA 427 Usr Rqst 2-11 -000236 38.69N 80.65W K48I 11 SUTTON WV 255 Usr Rqst 2-11 -000237 34.57N 117.67W KGXA 11 GRAY BUTTE FIELD CA 923 Usr Rqst 10-11 -000238 34.37N 117.36W EMF 11 EL MIRAGE FIELD CA 873 Usr Rqst 10-11 -000239 45.97N 86.17W KISQ 11 MANISTIQUE MI 209 Usr Rqst 10-11 -000240 46.42N 86.65W KP53 11 MUNISING MI 187 Usr Rqst 10-11 -000241 39.16N 89.67W K3LF 11 LITCHFIELD IL 210 Usr Rqst 11-11 -000247 44.05N 101.60W PHP 10 PHILIP_AIRPORT, SD 673 Weiss 2-99 -000251 43.58N 86.24W KLDM 12 LUDINGTON MI 244 KGRR 1-02 -000252 43.43N 85.30W KRQB 12 BIG RAPIDS MI 276 KGRR 1-02 -000253 43.37N 84.44W KMOP 12 MOUNT PLEASANT MI 213 KGRR 1-02 -000254 34.38N 104.23W FTSR 12 FORT SUMNER NM 1231 Usr Rqst 4-02 -000255 46.70N 48.00W WTRO 21 WHITE ROSE OIL RIG 0 Usr Rqst 12-03 -000256 47.20N 55.10W MRYS 00 MARYSTOWN NF 0 Usr Rqst 12-03 -000257 42.75N 86.10W BIV 11 TULIP_CITY_ARPT/HOLLAND MI 210 Usr Rqst 8-05 -000258 42.41N 86.28W KLWA 11 SOUTH HAVEN MI 203 Usr Rqst 8-05 -000259 45.35N 117.23W JOES 11 JOSEPH OR 1250 NWS W Reg 2-06 -000260 41.59N 95.34W HNR 11 HARLAN_MUNICIPAL_AIRPT IA 375 NWS OKX 2-06 -000261 43.78N 87.85W KSBM 11 SHEBOYGAN_(ASOS) WI 233 NWS MKE 4-06 -000262 30.90N 102.85W KFST 11 FORT_STOCKTON_(ASOS) TX 917 TAF 7-07 -000263 33.64N 91.75W LLQ 11 MONTICELLO_ARPT_(ASOS) AR 82 TAF 7-7 -000264 36.22N 92.28W BPK 11 MOUNTAIN HOME AR 283 TAF 7-7 -000265 31.38N 103.51W KPEQ 11 PECOS_MUNICIPAL TX 796 TAF 7-7 -000266 26.42N 81.44W KIMM 11 IMMOKALEE FL 11 MFL Rqst 7-07 -000267 26.75N 80.94W K2IS 11 CLEWISTON FL 6 MFL Rqst 7-07 -000268 31.18N 99.32W KBBD 11 BRADY_CURTIS_FIELD TX 546 TAF 7-7 -000269 30.59N 100.65W SOA 11 SONORA_MUNICIPAL TX -999 TAF 7-7 -000270 39.08N 120.94W CFC 12 COLFAX WATER CA -999 HMT FMCW/ARO 12-10 -000271 37.51N 120.04W KMPI 12 MARIPOSA CA 687 HMT S-PROF 12-10 -000273 37.58N 120.27W NXD 12 NEW EXCHEQUER DAM CA -999 HMT FMCW 12-10 -000274 36.83N 119.33W PFD 12 PINE FLAT DAM CA -999 HMT FMCW 12-10 -000275 35.85N 121.31W TPK 12 THREE PEAKS CA -999 HMT Rain Gauge 12-10 -000276 47.31N 121.85W RVD 12 RAVENSDALE WA -999 HMT S-PROF 12-10 -000277 38.49N 121.22W SHS 12 SACRAMENTO ARO SITE CA -999 HMT ARO 12-10 -000278 39.13N 120.80W TNF 12 TAHOE NATL FOREST CA -999 HMT S-PROF 12-10 -000279 40.72N 122.43W STA 12 SHASTA DAM CA -999 HMT FMCW 12-10 -000280 40.50N 74.45W RUTG 12 NEW BRUNSWICK (RUTGERS) NJ 11 NEPS 6-02 -000282 42.99N 70.62W APPL 22 APPLEDORE ISLAND ME 0 NEPS 6-02 -000283 45.50N 73.57W MCGL 12 MONTREAL (MCGILL) QB 36 NEPS 6-02 -000284 41.10N 72.89W LISO 22 LONG ISLAND SOUND 0 NWS KOKX 1-03 -000285 39.69N 121.91W KCIC 12 NEAR CHICO CA 41 Usr Rqst 3-03 -000286 39.17N 121.11W GVY 12 GRASS VALLEY CA 689 ETL Profiler 4-03 -000287 35.62N 119.69W LHS 12 LOST HILLS CA 80 ETL Profiler 4-03 -000288 35.66N 121.28W PPB 12 POINT PIEDRAS BLANCAS CA 11 ETL Profiler 4-03 -000289 38.61N 123.21W CZC 12 CAZADERO CA 475 ETL Site 12-03 -000290 38.51N 123.22W FRS 12 FORT ROSS CA 70 ETL Site 12-03 -000291 38.78N 122.99W CVD 12 CLOVERDALE CA 83 ETL Site 12-03 -000292 37.11N 120.24W CCL 12 CHOWCHILLA CA 76 ETL Site 12-03 -000293 39.99N 122.06W CCR 12 CONCORD CA -999 ETL Site 12-03 -000294 39.00N 123.12W HLD 12 HOPLAND CA 165 ETL Site 12-03 -000295 38.51N 122.96W ROD 12 RIO DELL CA 30 ETL Site 12-03 -000296 33.50N 106.18W OSCR 12 OSCURA RANGE CAMP NM 1371 Usr Rqst 6-03 -000297 33.82N 106.65W 95E 12 STALLION ARMY AIRFLD NM 1499 Usr Rqst 6-03 -000298 40.58N 111.63W ALTA 12 ALTA COLLINS UT -999 NWS SLC 4-05 -000299 43.78N 82.99W BAX 12 BAD_AXE MI 234 NWS DTX 2-06 -000301 58.00N 142.00W 5AG 20 PACIFIC OCEAN 0 == -000302 54.00N 143.00W A#5 20 CENTRAL GULF OF AK PAC 0 3-93 -000303 56.00N 137.00W 5AF 20 PACIFIC OCEAN 0 == -000304 55.00N 155.00W A#6 20 GULF OF AK, S KODIAK I PAC 0 3-93 -000305 53.00N 139.00W A#7 20 PACIFIC, W OF BC 0 3-93 -000306 51.10N 147.40W A#8 20 PACIFIC, NEAR SHIP PAPA 0 3-93 -000307 52.00N 162.00W A#9 20 PACIFIC, S OF AK PENINSULA 0 3-93 -000308 49.50N 153.70W A#A 20 NORTH PACIFIC 0 3-93 -000309 49.20N 168.80W A#B 20 PACIFIC, S OF ALEUTIANS 0 3-93 -000310 50.00N 135.00W S#1 20 PACIFIC OCEAN 0 3-93 -000311 38.50N 129.00W S#2 20 PACIFIC OCEAN 0 3-93 -000312 34.00N 126.00W S#3 20 PACIFIC OCEAN 0 3-93 -000313 29.50N 123.00W S#4 20 PACIFIC OCEAN 0 3-93 -000314 25.00N 120.00W S#5 20 PACIFIC OCEAN 0 3-93 -000315 25.00N 115.00W S#6 20 PACIFIC OCEAN 0 3-93 -000330 44.30N 140.80W NW1 20 PACIFIC OCEAN 0 3-00 -000331 47.70N 144.10W NW2 20 PACIFIC OCEAN 0 3-00 -000332 37.40N 137.00W NW3 20 PACIFIC OCEAN 0 3-00 -000333 47.00N 138.00W NW4 20 PACIFIC OCEAN 0 3-00 -000334 43.60N 135.50W NW5 20 PACIFIC OCEAN 0 3-00 -000335 39.70N 133.30W NW6 20 PACIFIC OCEAN 0 3-00 -000336 48.50N 129.50W NW7 20 PACIFIC OCEAN 0 3-00 -000337 44.60N 127.50W NW8 20 PACIFIC OCEAN 0 3-00 -000338 50.50N 141.38W NW9 20 PACIFIC OCEAN 0 3-00 -000339 40.50N 126.98W NWA 20 PACIFIC OCEAN 0 3-00 -000340 55.00N 170.00E BS1 20 BERING SEA -999 NAM MERGE 1-16 -000341 55.00N 180.00E BS2 20 BERING SEA -999 NAM MERGE 1-16 -000342 60.00N 175.00E BS3 20 BERING SEA -999 NAM MERGE 1-16 -000345 42.80N 109.81W KPNA 11 PINEDALE WY 2163 Usr Rqst 4-12 -000346 39.15N 122.15W WLM 11 WILLIAM CA -999 Usr Rqst 1-13 -000347 40.88N 121.66W KBNY 11 BURNEY CA 957 Usr Rqst 1-13 -000348 37.99N 120.38W SON 11 SONORA CA -999 Usr Rqst 1-13 -000349 37.74N 118.59W YSV 11 YOSEMITE VALLEY CA 1219 Usr Rqst 1-13 -000350 36.20N 119.10W LSY 11 LINDSAY CA -999 Usr Rqst 1-13 -000351 35.97N 118.54W JHN 11 JOHNSONDALE CA -999 Usr Rqst 1-13 -000352 34.83N 118.95W FZP 11 FRAZIER PARK CA -999 Usr Rqst 1-13 -000353 36.14N 120.35W COA 11 COALINGA CA -999 Usr Rqst 1-13 -000354 36.65N 118.48W TBM 11 TABLE MOUNTAIN CA -999 Usr Rqst 1-13 -000355 42.47N 73.29W KPSF 11 PITTSFIELD MA 364 Usr Rqst 5-12 -000356 39.21N 82.23W KUNI 11 ATHENS/ALBANY OH 232 Usr Rqst 5-12 -000357 40.48N 111.43W K36U 11 HEBER VALLEY MUN APT UT 1718 Usr Rqst 5-12 -000358 33.02N 114.24W B40 11 YUMA AZ 303 DHS/AWC 8-13 -000359 31.49N 110.30W B41 11 FT HUACHUCA AZ 1482 DHS/AWC 8-13 -000360 32.02N 107.87W B42 11 DEMING NM 1293 DHS/AWC 8-13 -000361 30.43N 104.33W B43 11 MARFA TX 1433 DHS/AWC 8-13 -000362 28.39N 100.29W B44 11 EAGLE PASS TX 214 DHS/AWC 8-13 -000363 26.57N 98.82W B45 11 RIO GRANDE CITY TX 98 DHS/AWC 8-13 -000364 28.71N 95.96W B46 11 MATGORDA TX 2 DHS/AWC 8-13 -000365 29.81N 91.66W B47 11 MORGAN CITY LA 4 DHS/AWC 8-13 -000366 24.70N 81.51W B48 11 CUDJOE KEY FL 1 DHS/AWC 8-13 -000367 17.98N 67.08W B49 11 LAJAS PR 17 DHS/AWC 8-13 -000368 46.19N 121.70W MAW 11 MT ADAMS WEST WA -999 NAM MERGE 1-16 -000369 46.28N 122.28W SHNW 11 MT ST HELENS NW WA -999 NAM MERGE 1-16 -000370 45.35N 121.94W MHW 11 MT HOOD WEST OR -999 NAM MERGE 1-16 -000371 44.17N 122.06W TSW 11 THREE SISTERS WEST OR -999 NAM MERGE 1-16 -000372 45.03N 99.11W FLK 11 FAULKTON SD -999 NAM MERGE 1-16 -000373 45.46N 96.99W PEV 11 PEEVER SD 421 Usr Rqst 2014 -000374 38.28N 95.22W KK68 11 GARNETT AIRPORT KS -999 NAM MERGE 1-16 -000375 39.86N 96.63W KMYZ 11 MARYSVILLE AIRPORT KS -999 NAM MERGE 1-16 -000376 44.38N 106.72W BYG 11 JOHNSON_CTY/BUFFALO WY -999 NAM MERGE 1-16 -000377 44.52N 108.08W KGEY 11 GREYBULL_AIRPORT WY -999 NAM MERGE 1-16 -000378 45.10N 90.30W KMDZ 11 MEDFORD WI -999 NAM MERGE 1-16 -000379 44.46N 92.29W 82MN 11 LAKE CITY MN -999 NAM MERGE 1-16 -000380 37.29N 107.06W KPSO 11 PAGOSA SPRINGS CO -999 NAM MERGE 1-16 -000381 38.23N 108.56W KAIB 11 NUCLA CO -999 NAM MERGE 1-16 -000382 40.05N 107.89W KEEO 11 MEEKER CO -999 NAM MERGE 1-16 -000383 41.64N 91.54W KIOW 11 IOWA CITY IA -999 NAM MERGE 1-16 -000384 39.05N 105.51W K4MB 11 WILKERSON PASS CO -999 NAM MERGE 1-16 -000385 40.05N 106.36W K20V 11 KREMMLING CO -999 NAM MERGE 1-16 -000386 38.76N 87.61W KLWV 11 LAWRENCEVILLE/VINCEN IL -999 NAM MERGE 1-16 -000387 39.07N 88.53W K1H2 11 EFFINGHAM CO MEM APT IL -999 NAM MERGE 1-16 -000388 40.94N 90.43W KGBG 11 GALESBURG IL -999 NAM MERGE 1-16 -000389 39.77N 90.24W KIJX 11 JACKSONVILLE IL -999 NAM MERGE 1-16 -000390 39.48N 88.28W KMTO 11 COLES CO MEM APT IL -999 NAM MERGE 1-16 -000391 43.39N 99.84W KICR 11 WINNER SD -999 NAM MERGE 1-16 -000392 43.02N 102.52W KIEN 11 PINE RIDGE SD -999 NAM MERGE 1-16 -000393 43.89N 104.32W KECS 11 NEWCASTLE WY -999 NAM MERGE 1-16 -000394 44.56N 102.66W UNIS 11 UNION CENTER SD -999 NAM MERGE 1-16 -000395 43.74N 105.74W WGTW 11 WRIGHT WY -999 NAM MERGE 1-16 -000396 46.15N 89.21W KLNL 12 LAND O'LAKES WI 520 Usr Rqst 2014 -000397 46.54N 87.39W MQTM 11 MARQUETTE MI -999 NAM MERGE 1-16 -000398 46.68N 85.97W GRMM 11 GRAND MARAIS MI -999 NAM MERGE 1-16 -000399 46.61N 88.91W KTNM 11 KENTON MI -999 NAM MERGE 1-16 -000401 28.00N 87.00W S#7 22 GULF OF MEXICO 0 FOUS(G2GFC) 3-93 -000402 28.20N 93.70W S#8 20 GULF OF MEXICO 0 FOUS(G2GFH) 3-93 -000403 28.50N 92.30W S#9 22 GULF OF MEXICO 0 FOUS(G2GFI) 3-93 -000404 27.90N 91.00W S#A 22 GULF OF MEXICO 0 FOUS(G2GFJ) 3-93 -000405 28.00N 89.00W S#B 20 GULF OF MEXICO 0 FOUS(G2GFK) 3-93 -000406 28.00N 85.00W S#C 22 GULF OF MEXICO 0 3-93 -000501 31.00N 79.00W 3J2 20 ATLANTIC, BLAKE PLATEAU 0 FOUS 3-93 -000502 48.00N 65.00W AFA 20 ATLANTIC, CHALEUR BAY 0 FOUS 3-93 -000503 39.30N 111.46W MTSL 12 MANTI SKYLINE UT 3048 Usr Rqst 2-18 -000504 36.74N 104.65W RTN 12 RATON/CREWS_FLD NM 3674 Usr Rqst 2-18 -000505 36.99N 77.00W KAKQ 12 WAKEFIELD VA 30 Usr Rqst 2-18 -000506 37.86N 78.89W KXSA 12 TAPPAHANNOCK VA 14 Usr Rqst 2-18 -000507 38.54N 76.03W KCGE 12 CAMBRIDGE MD 6 Usr Rqst 2-18 -000508 36.77N 77.79W KLVL 12 LAWRENCEVILLE VA 81 Usr Rqst 2-18 -000509 43.78N 68.86W MSM1 20 MATINICUS ROCK ATL 0 Usr Rqst 2-18 -000510 38.40N 80.00W SNWS 12 SNOWSHOE WV 1478 Usr Rqst 2-18 -000601 37.20N 118.80W C01 12 NEAR YOSEMITE, CA 2936 GCIP 5-98 -000602 47.61N 103.26W C02 12 WOLFORD, ND 762 GCIP 5-94 -000603 37.80N 97.01W C03 12 TOWANDA, KS 390 GCIP 5-94 -000604 34.60N 94.30W C04 12 NEAR MENA, AR 322 GCIP 5-94 -000606 37.90N 95.20W C06 12 NEAR MORAN, KS 337 GCIP 5-94 -000607 38.50N 101.50W C07 12 NEAR BRANDON, KS 1036 GCIP 5-94 -000608 37.40N 105.20W C08 12 NEAR WHISKEY CRK, CO 3199 GCIP 5-94 -000609 36.00N 105.30W C09 12 NEAR HOLMAN, NM 2217 GCIP 5-94 -000610 34.20N 101.70W C10 12 NEAR PLAINVIEW, TX 1024 GCIP 5-94 -000611 33.60N 99.30W C11 12 NEAR SEYMOUR,TX 404 GCIP 5-94 -000612 33.70N 97.40W C12 12 NEAR MUENSTER, TX 343 GCIP 5-94 -000613 37.10N 92.30W C13 12 NEAR MTN GROVE, MO 456 GCIP 5-94 -000614 41.00N 107.00W C14 12 NORTHERN ROCKIES 2504 GCIP 5-94 -000617 46.25N 114.15W HMM 12 HAMILTON, MT -999 GCIP 5-94 -000618 47.00N 112.50W C18 12 NORTHERN ROCKIES 1483 GCIP 5-94 -000619 49.00N 114.00W C19 12 NORTHERN ROCKIES 1558 GCIP 5-94 -000620 49.50N 108.00W C20 22 CANADA/GREAT LAKES 946 GCIP 5-94 -000621 49.00N 104.00W C21 22 CANADA/GREAT LAKES 661 GCIP 5-94 -000622 47.50N 99.00W C22 12 NEAR NEW ROCKFORD, ND 461 GCIP 5-94 -000623 46.20N 97.50W C23 12 NEAR LISBON, ND 358 GCIP 5-94 -000624 46.00N 95.00W C24 12 NEAR ALEXANDRIA, MN 416 GCIP 5-94 -000625 40.80N 84.20W C25 12 NEAR LIMA, OH 238 GCIP 5-94 -000627 38.00N 80.00W C27 12 NEAR HOT SPRINGS, VA 881 GCIP 5-94 -000628 34.50N 82.50W C28 12 NEAR CLEVELAND, GA 244 GCIP 5-94 -000629 41.73N 98.01W KBVN 11 ALBION NE -999 NAM MERGE 1-16 -000630 41.58N 95.34W KHNR 11 HARLAN IA -999 NAM MERGE 1-16 -000631 42.24N 96.98W KLCG 11 WAYNE NE -999 NAM MERGE 1-16 -000632 37.70N 98.75W PTT 11 PRATT KS -999 NAM MERGE 1-16 -000633 48.75N 98.39W D55 11 LANGDON ND -999 NAM MERGE 1-16 -000634 48.75N 96.94W KHCO 11 HALLOCK MN -999 NAM MERGE 1-16 -000635 44.46N 96.25W IVNH 11 IVANHOE MN -999 NAM MERGE 1-16 -000636 43.17N 95.21W KSPW 11 SPENCER IA -999 NAM MERGE 1-16 -000637 43.22N 99.40W K9D1 11 GREGORY SD -999 NAM MERGE 1-16 -000638 43.26N 98.76W RLAS 11 LAKE ANDES SD -999 NAM MERGE 1-16 -000639 40.90N 97.62W KJYR 11 YORK NE -999 NAM MERGE 1-16 -000640 40.79N 99.78W KLXN 11 LEXINGTON NE -999 NAM MERGE 1-16 -000641 40.15N 97.58W KHJH 11 HEBRON NE -999 NAM MERGE 1-16 -000642 39.73N 99.32W KPHG 11 PHILLIPSBURG KS -999 NAM MERGE 1-16 -000643 36.77N 90.32W KPOF 11 POPLAR BLUFF MO -999 NAM MERGE 1-16 -000644 37.36N 87.40W 2I0 11 MADISONVILLE KY -999 NAM MERGE 1-16 -000645 39.05N 85.61W KOVO 11 NORTH VERNON IN -999 NAM MERGE 1-16 -000646 37.75N 82.64W SJS 11 BIG SANDY REG APT KY -999 NAM MERGE 1-16 -000647 36.61N 83.74W K1A6 11 MIDDLESBORO/BELL_CO_APT KY -999 NAM MERGE 1-16 -000648 36.86N 84.86W KEKQ 11 WAYNE_COUNTY_APT KY -999 NAM MERGE 1-16 -000649 38.06N 83.98W KIOB 11 MT STERLING/MGY_CO_APT KY -999 NAM MERGE 1-16 -000650 41.12N 101.77W KOGA 11 OGALLALA NE -999 NAM MERGE 1-16 -000651 41.96N 100.57W KTIF 11 THEDFORD NE -999 NAM MERGE 1-16 -000652 43.55N 109.69W KDUB 11 DUBOIS WY -999 NAM MERGE 1-16 -000653 42.71N 110.94W KAFO 11 AFTON WY -999 NAM MERGE 1-16 -000654 41.82N 110.56W KEMM 11 KEMMERER WY -999 NAM MERGE 1-16 -000655 44.87N 108.79W KPOY 11 POWELL WY -999 NAM MERGE 1-16 -000656 44.91N 108.45W KU68 11 COWLEY WY -999 NAM MERGE 1-16 -000657 43.71N 106.63W KYC 11 KAYCEE WY -999 NAM MERGE 1-16 -000658 43.52N 89.77W KDLL 11 BARABOO/WI DELLS WI -999 NAM MERGE 1-16 -000659 43.77N 88.49W KFLD 11 FOND DU LAC WI -999 NAM MERGE 1-16 -000660 42.89N 90.24W KMRJ 11 MINERAL POINT WI -999 NAM MERGE 1-16 -000661 43.04N 88.24W KUES 11 WAUKESHA WI -999 NAM MERGE 1-16 -000662 44.04N 89.31W KY50 11 WAUTOMA WI -999 NAM MERGE 1-16 -000663 41.35N 89.15W KVYS 11 PERU IL -999 NAM MERGE 1-16 -000664 41.70N 86.82W KMGC 11 MICHIGAN CITY IN -999 NAM MERGE 1-16 -000665 41.07N 87.85W KIKK 11 KANKAKEE IL -999 NAM MERGE 1-16 -000667 41.89N 89.08W KRPJ 11 ROCHELLE/KORITZ_FIELD IL -999 NAM MERGE 1-16 -000668 45.42N 91.77W KRPD 11 RICE LAKE WI -999 NAM MERGE 1-16 -000669 45.10N 94.51W KLJF 11 LITCHFIELD MN -999 NAM MERGE 1-16 -000670 44.73N 96.27W KCNB 11 CANBY MN -999 NAM MERGE 1-16 -000671 40.10N 102.24W K2V5 11 WRAY CO -999 NAM MERGE 1-16 -000672 38.76N 102.79W KC1 11 KIT CARSON CO -999 NAM MERGE 1-16 -000673 45.29N 86.98W DDOR 11 DEATHS DOOR WI -999 NAM MERGE 1-16 -000674 44.36N 89.84W KISW 11 WISCONSIN RAPID WI -999 NAM MERGE 1-16 -000675 39.99N 74.17W TMSR 11 TOMS RIVER NJ -999 NAM MERGE 1-16 -000676 37.70N 85.87W ELZB 11 ELIZABETHTOWN KY -999 NAM MERGE 1-16 -000678 37.67N 98.12W K9K8 11 KINGMAN KS -999 NAM MERGE 1-16 -000679 37.28N 98.04W K8K2 11 HARPER KS -999 NAM MERGE 1-16 -000680 38.30N 95.72W KUKL 11 BURLINGTON KS -999 NAM MERGE 1-16 -000681 37.85N 96.29W K13K 11 EUREKA KS -999 NAM MERGE 1-16 -000682 38.75N 98.23W K9K7 11 ELLSWORTH KS -999 NAM MERGE 1-16 -000683 39.55N 73.90W ATL5 22 EAST OF LONG BEACH IS ATL -999 NAM MERGE 1-16 -000684 39.70N 71.60W ATL6 22 SOUTH OF MONTAUK ATL -999 NAM MERGE 1-16 -000691 37.09N 95.57W KCFV 12 COFFEYVILLE, KS 323 ARM 5-94 -000692 38.35N 97.69W KMPH 12 MCPHERSON, KS 545 ARM 5-94 -000693 37.35N 99.35W C32 12 R08-ARM/CART, KS 652 ARM 5-94 -000694 35.30N 98.90W C33 12 R22-ARM/CART, OK 457 ARM 5-94 -000695 35.50N 97.00W C34 12 P20-ARM/CART, OK 305 ARM 5-94 -000696 34.98N 94.69W C35 10 WISTER, OK 143 GCIP 7-97 -000697 36.60N 101.60W C36 10 GOODWELL, OK 996 GCIP 7-97 -000698 42.50N 78.68W SVL 11 SPRINGVILLE NY -999 NAM MERGE 1-16 -000699 43.76N 75.68W MTG 11 MONTAGUE NY -999 Usr Rqst 4-15 -000704 32.35N 91.03W TVR 11 VICKSBURG/TALLULAH_ARPT, MS 26 SPC 8-09 -000705 25.86N 81.38W EVR 11 EVERGLADES CITY, FL -999 SPC 8-09 -000706 28.84N 82.33W INV 11 INVERNESS, FL -999 SPC 8-09 -000707 32.07N 82.90W MCR 11 MCRAE, GA -999 SPC 8-09 -000708 31.71N 87.78W GVH 11 GROVE HILL, AL -999 SPC 8-09 -000709 33.45N 88.82W STV 11 STARKVILLE, MS -999 SPC 8-09 -000710 34.89N 91.20W BKY 11 BRINKLEY, AR -999 SPC 8-09 -000711 35.48N 86.09W MCH 11 MANCHESTER, TN -999 SPC 8-09 -000712 35.62N 87.84W LIN 11 LINDEN, TN -999 SPC 8-09 -000713 36.95N 85.26W CND 11 CUNDIFF, KY -999 SPC 8-09 -000714 33.62N 103.02W BDS 11 BLEDSOE, TX -999 SPC 8-09 -000715 35.21N 100.25W SRK 11 SHAMROCK, TX -999 SPC 8-09 -000716 39.13N 100.87W OKL 11 OAKLEY, KS -999 SPC 8-09 -000717 37.01N 91.36W WIN 11 WINONA, MO -999 SPC 8-09 -000718 38.37N 93.79W CNN 11 CLINTON, MO -999 SPC 8-09 -000719 39.42N 92.44W KMBY 11 MOBERLY, MO 264 SPC 8-09 -000720 34.61N 79.06W LBT 11 LUMBERTON_MUNI_AIRPORT, NC 38 TAF 8-09 -000721 41.65N 70.52W KFMH 11 FALMOUTH/OTIS, MA 40 TAF 8-09 -000722 33.46N 80.85W KOGB 11 ORANGEBURG/MUNI_ARPT, SC 59 TAF 8-09 -000723 45.50N 91.00W KRCX 11 LADYSMITH, WI 377 Usr Rqst 8-09 -000724 45.89N 93.27W KJMR 11 MORA, MN 309 Usr Rqst 8-09 -000725 45.15N 92.54W KRNH 11 NEW RICHMOND, WI 304 Usr Rqst 8-09 -000726 45.23N 96.00W KAQP 11 APPLETON, MN 311 Usr Rqst 8-09 -000727 44.03N 90.08W KDAF 11 NECEDAH, WI 287 Usr Rqst 8-09 -000728 41.32N 122.32W MHS 11 MOUNT SHASTA, CA 1085 Usr Rqst 8-09 -000729 42.55N 119.66W RCK 11 ROCK CREEK, OR 1719 Usr Rqst 8-09 -000730 43.33N 120.84W FRO 11 FORT ROCK, OR 1350 Usr Rqst 8-09 -000731 41.39N 123.49W SMB 11 SOMES BAR, CA 280 Usr Rqst 8-09 -000732 41.43N 121.46W ROU 11 ROUND MOUNTAIN, CA 1603 Usr Rqst 8-09 -000733 45.36N 117.25W K4S3 11 JOSEPH, OR 1256 Usr Rqst 8-09 -000734 44.40N 118.96W K5J0 11 JOHN DAY, OR 1127 Usr Rqst 8-09 -000735 36.33N 77.64W KIXA 11 ROANOKE RAPIDS, NC 44 Usr Rqst 8-09 -000736 34.89N 79.76W KRCZ 11 ROCKINGHAM/RICHMOND CO, NC 109 Usr Rqst 8-09 -000737 40.47N 81.42W KPHD 11 NEW PHILADELPHIA, OH 273 Usr Rqst 8-09 -000738 40.82N 79.53W KTT 11 KITTANNING, PA 245 Usr Rqst 8-09 -000739 40.63N 79.11W KIDI 11 INDIANA, PA 428 Usr Rqst 8-09 -000740 39.58N 79.34W K2G4 11 OAKLAND, MD 894 Usr Rqst 8-09 -000741 40.14N 80.29W KAFJ 11 WASHINGTON, PA 361 Usr Rqst 8-09 -000742 42.46N 75.06W EON 11 ONEONTA, NY -999 Usr Rqst 8-09 -000743 36.68N 101.50W KGUY 11 GUYMON_(ASOS), OK 952 TAF 8-09 -000744 33.17N 86.77W KEET 11 SHELBY_COUNTY_ARPT, AL 178 TAF 8-09 -000745 31.27N 89.26W KHBG 11 CHAIN_MUNICIPAL_AIRPORT, MS 46 TAF 8-09 -000746 28.29N 81.44W KISM 11 KISSIMMEE_MUNI_AIRPORT, FL 25 TAF 8-09 -000747 28.82N 81.81W KLEE 11 LEESBURG_MUNICIPAL_ARPT, FL 24 TAF 8-09 -000748 30.36N 95.41W KCXO 11 CONROE_AIRPORT_(ASOS), TX 45 TAF 8-09 -000749 30.73N 95.47W KUTS 11 HUNTSVILLE_(ASOS), TX 112 TAF 8-09 -000750 45.02N 102.02W D07 11 FAITH, SD 787 SPC 8-09 -000751 29.21N 99.74W UVA 11 UVALDE/GARNER_FIELD_ARPT,TX 287 SPC 8-09 -000752 35.87N 98.42W JWG 11 WATONGA, OK 472 SPC 8-09 -000753 40.92N 88.62W KPNT 11 PONTIAC, IL 201 SPC 8-09 -000754 41.56N 73.05W WTBY 11 WATERBURY, CT 82 Usr Rqst 8-09 -000755 48.69N 116.32W BON 11 BONNERS FERRY, ID 539 Usr Rqst 11-09 -000756 48.65N 118.73W REP 11 REPUBLIC, WA 795 Usr Rqst 11-09 -000757 47.76N 120.65W PLA 11 PLAIN, WA 591 Usr Rqst 11-09 -000758 48.49N 120.24W WNTR 11 WINTHROP WA 535 Usr Rqst 11-09 -000759 47.54N 116.14W KLG 11 KELLOGG, ID 707 Usr Rqst 11-09 -000760 40.73N 122.94W WEV 11 WEAVERVILLE, CA 681 Usr Rqst 11-09 -000761 40.94N 123.63W WCK 11 WILLOW CREEK, CA 183 Usr Rqst 11-09 -000762 40.34N 123.07W YOB 11 YOLLA BOLLA, CA 1453 Usr Rqst 11-09 -000763 39.75N 123.21W COV 11 COVELO, CA 421 Usr Rqst 11-09 -000764 36.54N 93.20W KBBG 11 BRANSON, MO 397 Usr Rqst 8-09 -000765 63.68N 170.50W PASA 11 SAVOONGA_AIRPORT AK -999 NAM MERGE 1-16 -000766 68.13N 151.73W PAKP 11 ANAKTUVUK_PASS AK -999 NAM MERGE 1-16 -000767 63.77N 171.73W PAGM 11 GAMBELL AK -999 NAM MERGE 1-16 -000768 60.37N 166.27W PAMY 11 MEKORYUK AK -999 NAM MERGE 1-16 -000769 56.65N 161.37W SHIV 11 SHIVELUCH AK -999 NAM MERGE 1-16 -000770 54.05N 159.43E KYMY 11 KARYMSKY, AK -999 Usr Rqst 5-15 -000771 44.89N 72.23W KEFK 11 NEWPORT, VT 284 Usr Rqst 2-16 -000772 43.46N 101.50W LGVS 11 LONG VALLEY, SD 753 Usr Rqst 2-16 -000773 43.99N 103.79W DFDS 11 DEERFIELD, SD 1847 Usr Rqst 2-16 -000774 29.30N 84.04W S#D 21 FAR NE GULF OF MEXICO 0 Usr Rqst 9-16 -000775 27.90N 96.64W S#E 21 FAR WEST GULF OF MEXICO 0 Usr Rqst 9-16 -000776 34.31N 84.42W KCNI 11 CANTON/CHEROKEE CTY, GA 372 Usr Rqst 6-16 -000777 34.27N 83.83W KGVL 11 GAINESVILLE, GA 381 Usr Rqst 6-16 -000778 41.34N 84.43W KDFI 11 DEFIANCE_MEMORIAL_APRT, OH 216 Usr Rqst 2-16 -000779 41.28N 85.84W KASW 11 WARSAW, IN 259 Usr Rqst 2-16 -000780 41.81N 85.44W KIRS 11 STURGIS-KIRSCH_MUNI_APT, MI 282 Usr Rqst 2-16 -000781 41.57N 86.73W KPPO 11 LA PORTE, IN 248 Usr Rqst 2-16 -000782 48.93N 103.30W KD50 11 CROSBY, ND 594 Usr Rqst 6-16 -000783 48.88N 99.62W K06D 11 ROLLA, ND 556 Usr Rqst 6-16 -000784 46.19N 103.43W KBPP 11 BOWMAN, ND 902 Usr Rqst 6-16 -000785 46.02N 99.35W KASY 11 ASHLEY, ND 619 Usr Rqst 6-16 -000786 46.17N 98.07W K2D5 11 OAKES, ND 407 Usr Rqst 6-16 -000787 46.01N 83.74W KDRM 11 DRUMMOND ISLAND, MI 204 Usr Rqst 6-16 -000788 46.88N 89.32W ONTM 22 ONTONAGON, MI 188 Usr Rqst 6-16 -000789 45.58N 87.00W MSPS 22 MINNEAPOLIS SHOALS GRN BAY 176 Usr Rqst 6-16 -000790 34.36N 117.63W WRD 11 WRIGHTWOOD, CA -999 Usr Rqst 6-16 -000791 34.94N 119.69W NCY 11 NEW CUYAMA, CA -999 Usr Rqst 6-16 -000792 34.48N 120.23W GVA 11 GAVIOTA, CA -999 Usr Rqst 6-16 -000793 34.61N 120.08W KIZA 11 SANTA YNEZ, CA 206 Usr Rqst 6-16 -000794 43.74N 111.10W KDIJ 11 DRIGGS-REED_MEM_APT, ID 1899 Usr Rqst 7-16 -000795 34.85N 84.00W KDZJ 11 BLAIRSVILLE, GA 574 Usr Rqst 7-16 -000796 44.35N 103.77W LED 11 LEAD, SD 1589 Usr Rqst 7-16 -000797 44.41N 104.36W SDNW 11 SUNDANCE, WY 1444 Usr Rqst 7-16 -000798 37.80N 94.77W KFSK 11 FORT SCOTT, KS 276 Usr Rqst 7-16 -000799 37.64N 92.65W KLBO 11 LEBANON, MO 399 Usr Rqst 7-16 -000800 38.35N 93.34W KRAW 11 WARSAW, MO 285 Usr Rqst 7-16 -000801 39.49N 121.61W BAB 10 BEALE AFB, CA 72 WSR88D 3-93 -000802 33.90N 88.33W CBN 10 COLUMBUS AFB, MS 169 WSR88D 3-93 -000804 34.64N 103.63W CVS 10 CANNON AFB, NM 1436 WSR88D FOUS 3-93 -000805 38.83N 75.43W DOV 10 DOVER AFB, DE 50 WSR88D FOUS 3-93 -000807 32.54N 99.25W DYS 10 DYESS AFB, TX 480 WSR88D 3-93 -000808 38.81N 94.26W EAX 12 KANSAS C/PLEASANT HILL, MO 333 WSR88D 3-93 -000810 36.34N 97.92W END 10 VANCE AFB, OK 385 WSR88D 3-93 -000811 34.36N 98.98W FDR 10 FREDERICK, OK 401 WSR88D 3-93 -000813 40.72N 85.93W GVS 12 GRISSOM AFB, IN 278 WSR88D 3-93 -000814 30.72N 97.38W HOO 10 CENTRAL TEXAS, TX 182 WSR88D 3-93 -000815 40.32N 98.44W HSI 10 GRAND ISLAND/HASTINGS, NE 626 WSR88D 3-93 -000816 31.46N 85.46W LOR 10 FT. RUCKER, AL 151 WSR88D 3-93 -000817 32.54N 85.79W MAX 10 EAST ALABAMA, AL 157 WSR88D 3-93 -000818 48.50N 101.40W KMIB 12 MINOT AFB, ND 468 WSR88D FOUS 3-9 -000819 36.17N 83.40W MOR 10 TRI CITY/MORRISTOWN, TN 437 WSR88D 3-93 -000821 43.47N 75.46W RME 10 GRIFFISS AFB, NY 497 WSR88D FOUS 3-93 -000822 32.68N 83.35W WRB 10 ROBINS AFB, GA 187 WSR88D FOUS 3-93 -000823 36.74N 87.29W XRW 10 FT. CAMPBELL, KY 186 WSR88D 3-93 -000831 31.40N 114.49W NGX 20 N. GULF OF CA, AZ 0 WRGN 8-97 -000832 32.37N 112.87W AJO 10 AJO, AZ 549 WRGN 8-97 -000833 32.82N 109.68W E74 10 SAFFORD, AZ 950 WRGN 8-97 -000834 48.39N 115.55W LBY 10 LIBBY, MT 579 WRGN 8-97 -000835 48.76N 104.52W PWD 10 PLENTYWOOD, MT 623 WRGN 8-97 -000837 37.70N 123.00W SEF 00 SE FARALLON ISLAND, CA 25 WRGN 8-97 -000838 38.32N 123.07W BOD 00 BODEGA BAY, CA 12 ETL Profiler -000839 46.37N 104.28W BHK 10 BAKER, MT 903 WRGN 8-97 -000841 44.42N 111.37W IPX 10 ISLAND PARK, ID 1917 WRGN 8-97 -000842 42.17N 112.28W MLD 10 MALAD CITY, ID 1363 WRGN 8-97 -000844 39.50N 115.95W P68 10 EUREKA, NV 1982 WRGN 8-97 -000845 38.30N 119.16W BDG 10 BRIDGEPORT, CA 2321 NWS RNO 3-00 -000847 44.65N 73.49W KPBG 10 PLATTSBURGH INTL, NY 71 ERHQ 8-97 -000848 41.14N 75.38W KMPO 11 POCONO_MNTS_MUNIL_ARPT, PA 584 Usr Rqst 9-16 -000849 39.98N 75.82W COAT 11 COATESVILLE, PA 101 Usr Rqst 9-16 -000850 37.28N 102.61W 8V7 10 SPRNGFLD/CMNCHE NT GRS, CO 1335 SOO 8-97 -000851 45.64N 70.26W JACK 10 JACKMAN, ME 354 Jensenius 3-99 -000852 47.46N 69.22W ESTC 10 ESTCOURT, ME 264 Jensenius 3-99 -000853 45.56N 67.43W VANC 10 VANCEBORO, ME -999 Jensenius 3-99 -000854 42.05N 73.20W CAN 10 NR CANAAN, CT 426 Usr Rqst 3-00 -000855 42.11N 109.45W FSN 11 FARSON, WY 2010 Usr Rqst 7-16 -000856 42.49N 107.83W JFC 11 JEFFREY CITY, WY 1944 Usr Rqst 7-16 -000857 42.48N 108.84W SOU 11 SOUTH PASS, WY 2495 Usr Rqst 7-16 -000858 43.20N 110.40W BDT 11 BONDURANT, WY 2027 Usr Rqst 7-16 -000859 40.61N 95.87W KAFK 11 NEBRASKA CITY, NE 355 Usr Rqst 7-16 -000860 41.24N 96.59W KAHQ 11 WAHOO, NE 373 Usr Rqst 7-16 -000861 41.45N 87.01W KVPZ 11 VALPARAISO, IN 235 Usr Rqst 7-16 -000862 41.42N 88.41W KC09 11 MORRIS, IL 178 Usr Rqst 7-16 -000863 39.76N 98.79W K82 11 SMITH CENTER, KS 549 Usr Rqst 7-16 -000864 40.51N 106.87W KSBS 11 STEAMBOAT SPRINGS, CO 2100 Usr Rqst 7-16 -000865 39.43N 107.38W K5SM 11 SUNLIGHT MTN, CO 3232 Usr Rqst 7-16 -000866 39.48N 106.15W KCCU 11 COPPER MTN, CO 3666 Usr Rqst 7-16 -000867 40.50N 107.52W KCAG 11 CRAIG, CO 1887 Usr Rqst 7-16 -000868 41.02N 89.39W KC75 11 MARSHALL CTY ARPT, IL 178 Usr Rqst 7-16 -000869 38.72N 88.18W KOLY 11 OLNEY_NOBLE ARPT, IL 147 Usr Rqst 7-16 -000870 39.06N 98.17W KK71 11 LINCOLN, KS 432 Usr Rqst 7-16 -000871 37.13N 96.19W SDN 11 SEDAN, KS 263 Usr Rqst 7-16 -000872 38.37N 96.54W CTW 11 COTTONWOOD FALLS, KS 367 Usr Rqst 7-16 -000873 42.64N 77.05W KPEO 11 PENN YAN, NY 298 Usr Rqst 9-16 -000874 41.77N 76.45W TOW 11 TOWANDA, PA 223 Usr Rqst 9-16 -000875 40.73N 106.28W K33V 11 WALDEN-JACKSON CO APT, CO 2469 Usr Rqst 9-16 -000876 43.45N 76.51W OSW 21 OSWEGO, NY 87 Usr Rqst 9-16 -000877 43.08N 94.27W KAXA 11 ALGONA, IA 372 Usr Rqst 9-16 -000878 43.40N 94.75W KEST 11 ESTERVILLE, IA 401 Usr Rqst 9-16 -000879 40.35N 94.92W KEVU 11 NW_MISSOURI_REG_APT, MO 349 Usr Rqst 9-16 -000880 38.22N 83.59W KSYM 11 MOREHEAD-ROWAN_REG_APT, KY 313 Usr Rqst 9-16 -000881 38.71N 93.18W KDMO 11 SEDALIA_REG_APT, MO 277 Usr Rqst 9-16 -000882 39.42N 93.13W KBRN 11 BRUNSWICK, MO 199 Usr Rqst 9-16 -000883 43.71N 108.39W KHSG 11 THERMOPOLIS, WY 1494 Usr Rqst 8-16 -000884 43.18N 111.04W K46U 11 ALPINE, WY 1717 Usr Rqst 8-16 -000885 45.59N 103.55W K2WX 11 BUFFALO, SD 878 Usr Rqst 8-16 -000886 60.82N 152.72W LCLP 11 LAKE CLARK PASS, AK 328 Usr Rqst 9-16 -000887 69.00N 160.00W WBR 11 WESTERN BROOKS RANGE, AK -999 Usr Rqst 9-16 -000888 52.00N 177.55E KISK 11 KISKA ISLAND, AK -999 Usr Rqst 9-16 -000889 57.00N 166.00W SEBE 11 SOUTHEAST BERING SEA 0 Usr Rqst 9-16 -000890 62.22N 153.08W RAPS 11 RAINY PASS, AK -999 Usr Rqst 9-16 -000891 59.73N 157.26W PAJZ 11 KOLIGANEK, AK 82 Usr Rqst 9-16 -000892 61.89N 147.32W TAPS 11 TAHNETA PASS, AK -999 Usr Rqst 9-16 -000893 66.27N 166.05W PASH 11 SHISHMAREF, AK 2 Usr Rqst 9-16 -000894 34.10N 117.23W KSBD 11 SAN BERNARDINO, CA 353 Usr Rqst 9-16 -000895 40.63N 93.90W KLWD 11 LAMONI, IA 344 Usr Rqst 9-16 -000896 33.40N 110.77W KGLO 11 GLOBE, AZ 1070 Usr Rqst 9-16 -000897 33.97N 112.74W KWKB 11 WICKENBURG, AZ 627 Usr Rqst 9-16 -000898 38.80N 76.07W KESN 11 EASTON, MD 22 Usr Rqst 9-16 -000899 41.05N 74.63W SPA 11 SPARTA, NJ 190 Usr Rqst 9-16 -000900 62.72N 143.97W 5SZ 11 NR CIRCLE, AK 687 AK Rgn 4-01 -000901 67.75N 144.11W AWR 11 ARCTIC NWR, AK 686 AK Rgn 4-01 -000902 65.59N 144.36W BIR 11 ARCTIC NWR, AK 274 AK Rgn 4-01 -000903 61.95N 151.00W BLS 11 SW OF NENANA, AK 44 AK Rgn 4-01 -000904 57.27N 154.56W BTL 11 NR KOKAKLEK LK, AK 60 AK Rgn 4-01 -000905 66.15N 148.03W BVR 11 ARCTIC NWR, AK 104 AK Rgn 4-01 -000906 67.03N 143.29W GRF 11 ARCTIC NWR, AK 183 AK Rgn 4-01 -000907 65.20N 161.15W HAY 11 NR KIANA, AK 92 AK Rgn 4-01 -000908 59.75N 151.37W H02 11 NR WILLOW. AK 298 AK Rgn 4-01 -000909 63.39N 158.83W INK 11 NW OF NULATO, AK 245 AK Rgn 4-01 -000910 56.97N 134.00W KAK 11 NR KLUKWAN, AK 0 AK Rgn 4-01 -000911 67.95N 162.31W KEL 11 NR ICY CAPE, AK 69 AK Rgn 4-01 -000912 60.59N 150.32W KNA 11 NR SUTTON, AK 125 AK Rgn 4-01 -000913 60.37N 149.41W KNL 11 NR CHICKALOON, AK 365 AK Rgn 4-01 -000914 61.32N 142.59W MAC 11 NR NORTHWAY, AK 967 AK Rgn 4-01 -000915 60.03N 151.66W NCK 11 NR NANCY, AK 38 AK Rgn 4-01 -000916 68.07N 158.71W NOA 11 NTL. PETROL RSRVE, AK 310 AK Rgn 4-01 -000917 61.58N 159.54W PANI 11 NE OF SHAGELUK, AK 20 AK Rgn 4-01 -000918 63.03N 145.49W PAXK 11 NW OF CHICKEN, AK 861 AK Rgn 4-01 -000919 65.41N 164.66W QRZ 11 NR TAYLOR, AK 76 AK Rgn 4-01 -000920 63.44N 153.36W TEL 11 WNW OF ANDERSON, AK 185 AK Rgn 4-01 -000921 59.25N 135.52W AHN 11 NR HAINES BOAT HARBOR, AK 4 AK Rgn 4-01 -000922 55.58N 133.10W PAKW 11 PORT ALEXANDER, AK 2 AK Rgn 4-01 -000923 63.49N 150.88W WON 11 NR MANLEY HOT SPRINGS, AK 605 AK Rgn 4-01 -000924 62.97N 143.34W TOK 11 NE OF BIG DELTA, AK 636 AK Rgn 4-01 -000925 64.05N 141.93W CKN 11 CHICKEN, AK 523 AK Rgn 4-01 -000926 66.85N 154.34W NRU 11 W OF BETTLES FIELD, AK 317 AK Rgn 4-01 -000927 66.08N 152.17W KAN 11 KANUTI, NWR, AK 222 AK Rgn 4-01 -000928 61.64N 156.44W SRV 11 NR STONY RIVER, AK 91 AK Rgn 4-01 -000929 69.50N 156.50W BDP 11 S OF BARROW, AK 96 AK Rgn 4-01 -000930 69.00N 149.00W PLN 11 NR SAGWON, AK 493 AK Rgn 4-01 -000931 67.75N 149.00W PLS 11 ARCTIC NWR, AK 1130 AK Rgn 4-01 -000932 65.34N 155.95W COT 11 NR HUGHES, AK 229 AK Rgn 4-01 -000933 64.10N 155.56W POR 11 NR HUGHES, AK 237 AK Rgn 4-01 -000934 64.31N 151.08W WNL 11 NR MINTO, AK 241 AK Rgn 4-01 -000935 60.32N 160.20W KIL 11 NR ANIAK, AK 467 AK Rgn 4-01 -000936 62.10N 163.80W MTV 11 S OF ST MICHAEL, AK 1 AK Rgn 4-01 -000937 70.40N 161.90W ICC 11 NR WAINWRIGHT, AK 0 AK Rgn 4-01 -000938 71.32N 156.62W BFX 11 BARROW CEOP FLUX STN 3 GEWEX 7-02 -000939 42.35N 67.70W OPA1 20 ATLANTIC OCEAN 0 OPC 11-03 -000940 39.30N 72.00W OPA2 20 ATLANTIC OCEAN 0 OPC 11-03 -000941 39.30N 65.70W OPA3 20 ATLANTIC OCEAN 0 OPC 11-03 -000942 37.30N 70.10W OPA4 20 ATLANTIC OCEAN 0 OPC 11-03 -000943 36.30N 74.60W OPA5 20 ATLANTIC OCEAN 0 OPC 11-03 -000944 35.60N 73.80W OPA6 20 ATLANTIC OCEAN 0 OPC 11-03 -000945 34.90N 70.80W OPA7 20 ATLANTIC OCEAN 0 OPC 11-03 -000946 33.80N 76.00W OPA8 20 ATLANTIC OCEAN 0 OPC 11-03 -000947 32.80N 72.30W OPA9 20 ATLANTIC OCEAN 0 OPC 11-03 -000948 48.10N 130.50W OPP1 20 PACIFIC OCEAN 0 OPC 11-03 -000949 48.10N 126.60W OPP2 20 PACIFIC OCEAN 0 OPC 11-03 -000950 45.30N 129.70W OPP3 20 PACIFIC OCEAN 0 OPC 11-03 -000951 45.30N 125.60W OPP4 20 PACIFIC OCEAN 0 OPC 11-03 -000952 41.75N 129.90W OPP5 20 PACIFIC OCEAN 0 OPC 11-03 -000953 41.90N 125.80W OPP6 20 PACIFIC OCEAN 0 OPC 11-03 -000954 39.20N 125.50W OPP7 20 PACIFIC OCEAN 0 OPC 11-03 -000955 36.40N 125.40W OPP8 20 PACIFIC OCEAN 0 OPC 11-03 -000956 33.30N 125.00W OPP9 20 PACIFIC OCEAN 0 OPC 11-03 -000957 34.60N 122.30W OPPA 20 PACIFIC OCEAN 0 OPC 11-03 -000958 30.90N 121.50W OPPB 20 PACIFIC OCEAN 0 OPC 11-03 -000959 29.60N 117.00W OPPC 20 PACIFIC OCEAN 0 OPC 11-03 -000960 37.54N 76.01W RPL2 20 RAPPAHANNOCK LIGHT VA 0 Usr Rqst 2-18 -000961 32.99N 106.97W KSHA 11 SPACEPORT AMERICA NM 1401 NASA-reqst 12-16 -000962 32.15N 109.84W WLCX 00 WILLCOX PLAYA AZ 1269 NASA-reqst 2-17 -000963 42.63N 83.98W KOZW 11 HOWELL MI 283 Usr Rqst 2-18 -000964 42.99N 84.14W KRNP 11 OWOSSO MI 226 Usr Rqst 2-18 -000965 42.10N 83.16W KONZ 11 GROSSE ISLE MI 175 Usr Rqst 2-18 -000966 41.87N 84.07W KADG 11 ADRIAN MI 243 Usr Rqst 2-18 -000967 44.02N 83.54W GSL 21 GRAVELLY SHOAL LGT HURON 176 Usr Rqst 2-18 -000968 43.46N 83.45W KCFS 11 CARO MI 229 Usr Rqst 2-18 -000969 41.94N 83.43W KTTF 11 MONROE MI 187 Usr Rqst 2-18 -000970 40.61N 103.26W KSTK 11 STERLING CO 1231 Usr Rqst 2-18 -000971 40.34N 103.80W KFMM 11 FORT MORGAN CO 1401 Usr Rqst 2-18 -000972 40.08N 93.59W KTRX 11 TRENTON MO 231 Usr Rqst 2-18 -000973 40.48N 93.01W KUV1 11 UNIONVILLE MO 324 Usr Rqst 2-18 -000974 40.25N 94.33W KAY1 11 ALBANY MO 279 Usr Rqst 2-18 -000975 40.68N 92.90W KTVK 11 CENTERVILLE IA 314 Usr Rqst 2-18 -000976 41.71N 92.73W KGGI 11 GRINNELL IA 307 Usr Rqst 2-18 -000977 42.47N 93.27W KIFA 11 IOWA FALLS IA 347 Usr Rqst 2-18 -000978 38.66N 88.45W KFOA 11 FLORA IL 144 Usr Rqst 2-18 -000979 39.02N 87.65W KRSV 11 CRAWFORD CTY APT IL 141 Usr Rqst 2-18 -000980 39.53N 89.33W KTAZ 11 TAYLORVILLE IL 190 Usr Rqst 2-18 -000981 43.31N 109.19W CWH 11 CROWHEART WY 1860 Usr Rqst 2-18 -000982 41.67N 107.98W WAM 11 WAMSUTTER WY 2059 Usr Rqst 2-18 -000983 43.50N 110.96W TTP 11 TETON PASS WY 2573 Usr Rqst 2-18 -000984 39.47N 98.13W K61 11 BELOIT KS 432 Usr Rqst 2-18 -000985 37.85N 94.31W KNVD 11 NEVADA MO 272 Usr Rqst 2-18 -000986 41.93N 88.71W KDKB 11 DEKALB IL 279 Usr Rqst 2-18 -000987 37.44N 110.56W KU96 11 HALLS CROSSING UT 1337 Usr Rqst 2-18 -000988 40.45N 106.75W K3MW 11 MOUNT WERNER CO 3159 Usr Rqst 2-18 -000989 37.32N 97.39W KEGT 11 WELLINGTON KS 389 Usr Rqst 2-18 -000990 37.45N 106.80W KCPW 11 WOLF CREEK PASS CO 3529 Usr Rqst 2-18 -000991 44.03N 107.45W TNS 11 TEN SLEEP WY 1362 Usr Rqst 2-18 -000992 42.08N 110.96W CKV 11 COKEVILLE WY 1890 Usr Rqst 2-18 -000993 38.79N 108.06W KAJZ 11 DELTA CO 1583 Usr Rqst 2-18 -000994 40.35N 106.70W KC07 11 WALTON PEAK CO 3218 Usr Rqst 2-18 -000995 29.30N 88.84W KMIS 20 MP_140B_OIL_PLATFORM GULF 0 Usr Rqst 2-18 -001001 32.13N 7.88W BEN 11 BEN GUERIR 411 -001006 41.89N 72.71W P#1 11 BMFC3 BLOOMFIELD CT 56 PROF 3-93 -001384 60.20N 11.10E 11 OSLO/GARDERMOEN 206 -002460 59.67N 17.93E SSA 11 STOCKHOLM/ARLANDA 61 -002465 59.35N 17.95E 11 STOCKHOLM/BROMMA 22 -002974 60.32N 24.97E 11 HELSINKI, FINLAND 58 -003005 60.13N 1.18W 11 LERWICK, UNITED KINGDOM 82 -003135 56.50N 4.58W EGPK 11 PRESTWICK, SCOTLAND 20 NASA ISS 10-13 -003357 33.00S 57.00W URU 11 CENTRAL URUGUAY 0 -003644 51.68N 1.78W GVA 11 FAIRFORD RAF 87 -003649 51.75N 1.58W GVN 11 BRIZE NORTON, UK 0 -003772 51.29N .27W EGL 11 LONDON/HEATHROW, UK 24 -003957 52.25N 6.33W 11 ROSSLARE, IRELAND 25 -004018 63.97N 22.60W 11 KEFLAVIK, ICELAND 37 -006011 62.02N 6.76W TOR 00 Thorshvan, Denmark 54 Usr Rqst 4-19 -006181 55.77N 12.53E 11 KOBENHAVN, DENMARK 40 -006200 52.03N 4.35E 11 YPENBURG, HOLLAND -2 -006451 50.90N 4.47E 11 BRUSSELS AEROPORT 39 -006610 46.82N 6.95E 11 PAYERNE, SWITZERLAND 501 -007149 48.73N 2.40E 11 PARIS/ORLY 89 -008001 43.37N 8.42W 11 LA CORUNA, SPAIN 67 -008160 41.67N 1.02W ZZA 11 ZARAGOZA, SPAIN 257 NASA-JSC 3-93 -008397 37.17N 5.62W EMO 11 MORON 88 -008594 16.75N 22.95W VAC 01 AMILCAR CABRAL(SAL) 54 -011520 67.27N 14.37E ENBO 11 BODO, NORWAY 13 NASA-reqst 2-17 -021982 70.97N 178.53W U#2 10 OSTROV VRANGELYA, RUSSIA 3 UA ALA23 3-93 -025173 68.92N 179.48W UHMI 10 MYS SCHMIDT 7 UA 2-95 -025399 66.17N 169.83W U#C 10 MYS WELLEN 7 UA 2-95 -025551 64.68N 170.42E UHMA 10 MARKOVO, RUSSIA 22 UA ALA23 3-93 -025563 64.73N 177.50E UHAZ 10 ANADYR, RUSSIA 5 UA ALA23 3-93 -025677 63.05N 179.32E U#6 10 UGOLNAJA, RUSSIA 85 UA ALA23 3-93 -028952 53.21N 63.55E UAUU 11 KUSTANAI, KZ 182 NASA ISS 10-13 -030260 58.22N 6.32W EGPO 11 STORNOWAY AIRPORT 13 Usr Rqst 1-17 -034920 52.63N 1.32E EGSH 11 NORWICH INTERNATIONAL AIRPT 18 Usr Rqst 1-17 -035363 50.22N 66.83E ARK1 11 ARKALYK, KZ 343 NASA ISS 10-13 -035394 49.80N 73.15E UAKK 11 KARAGANDA, KZ 553 NASA ISS 10-13 -038090 50.08N 5.25W EGDR 11 RNAS CULDROSE 82 METAR/TAF 2-99 -039170 54.65N 6.22W EGAA 11 BELFAST INTERNATIONAL AIRPT 81 Usr Rqst 1-17 -041001 34.90N 73.00W B#1 20 BUOY E HATTERAS ATL 0 3-93 -041002 32.30N 75.20W B#2 20 BUOY S HATTERAS ATL 0 3-93 -041004 32.50N 79.07W B#T 20 BUOY E SAVANNAH ATL 0 OPC 11-03 -041006 29.30N 77.40W B#3 20 BUOY E DAYTONA ATL 0 3-93 -041010 28.90N 78.50W B#4 20 BUOY CANAVERAL EAST ATL 0 NASA-JSC 3-93 -042001 25.90N 89.70W B#5 22 BUOY MID GULF MEX 0 FOUS(G2GFD) 3-93 -042002 25.90N 93.60W B#6 22 BUOY W GULF MEX 0 FOUS(G2GFE) 3-93 -042003 25.90N 85.90W B#7 22 BUOY E GULF MEX 0 NASA-JSCFOUS(B) -042019 27.90N 95.00W B#8 22 BUOY LANELLE GULF OF MEX 0 3-93 -042020 27.00N 96.50W B#9 22 BUOY EILEEN GULF OF MEX 0 3-93 -044004 38.50N 70.70W C7H 20 BUOY HOTEL ATL 0 FOUS 3-93 -044005 42.60N 68.60W 9B6 20 BUOY GULF OF ME ATL 0 FOUS 3-93 -044007 43.53N 70.14W B#PM 20 BUOY NR PORTLAND ME ATL 0 Usr Rqst 2-18 -044008 40.50N 69.40W B#A 20 BUOY NANTUCKET ATL 0 3-93 -044009 38.50N 74.70W B#Q 20 BUOY E FENWICK IL ATL 0 2-01 -044011 41.10N 66.60W B#B 20 BUOY GEORGES BANK ATL 0 3-93 -044014 36.60N 74.80W B#S 20 BUOY E MACKAY IL ATL 0 2-01 -044017 40.70N 72.10W B#V 20 BUOY 23 SW MONTAUK ATL 0 7-07 -044025 40.30N 73.20W B#Q 20 BUOY ATL 0 T. Salem 2-99 -044027 44.30N 67.30W JPB 20 JONESPORT BUOY G MAINE ATL 0 Usr RQST 12-03 -044065 40.37N 73.70W B#X 20 BUOY AMBROSE LIGHT ARL 0 Usr Rqst 8-09 -044089 37.76N 75.33W B#I 20 BUOY WALLOPS ISLAND ATL 0 Usr Rqst 2-18 -045001 48.06N 87.78W LS1 20 BUOY MID LAKE SUPERIOR 183 6-02 -045002 45.33N 86.42W LM1 20 BUOY NORTHERN LAKE MICH 177 6-02 -045003 45.35N 82.84W LH1 20 BUOY NORTHERN LAKE HURON 177 4-02 -045004 47.56N 86.55W LS2 20 BUOY EASTERN LAKE SUPERIOR 183 6-02 -045005 41.68N 82.40W LE1 20 BUOY WESTERN LAKE ERIE 174 6-02 -045006 47.32N 89.87W LS3 20 BUOY WESTERN LAKE SUPERIOR 183 6-02 -045007 42.67N 87.02W LM2 20 BUOY SOUTHERN LAKE MICH 177 6-02 -045008 44.28N 82.42W LH2 20 BUOY SOUTHERN LAKE HURON 177 4-02 -045012 43.62N 77.41W LO1 20 BUOY CENTER LAKE ONTARIO 75 4-02 -045132 42.47N 81.22W LE2 20 BUOY BUOY PORT STANLEY 174 6-02 -045139 43.40N 79.45W LO2 20 BUOY WESTERN LAKE ONTARIO 75 6-02 -045142 42.74N 79.35W LE3 20 BUOY PORT COLBORNE 174 6-02 -046001 56.30N 148.20W B#C 20 BUOY GULF OF AK PAC 0 3-93 -046002 42.50N 130.50W B#D 20 BUOY OREGON PAC 0 3-93 -046003 51.90N 155.90W B#E 20 BUOY S ALEUTIANS PAC 0 3-93 -046005 46.10N 131.00W B#F 20 BUOY WASHINGTON PAC 0 3-93 -046006 40.90N 137.50W B#G 20 BUOY SE PAPA PAC 0 3-93 -046014 39.20N 124.00W B#H 20 BUOY PT ARENA PAC 0 3-93 -046015 42.75N 124.82W B015 20 BUOY W CAPE BLANCO PAC 0 Usr Rqst 8-09 -046029 46.20N 124.20W B#J 20 BUOY COL RIVER BAR PAC 0 3-93 -046030 40.40N 124.50W B#K 20 BUOY BLUNTS REEF PAC 0 3-93 -046035 57.00N 177.70W B#L 20 BUOY BERING SEA PAC 0 3-93 -046047 32.40N 119.50W B#U 20 BUOY W SAN DIEGO PAC 0 OPC 11-03 -046086 32.49N 118.03W B086 20 CLEMENTE BASIN BUOY (46086) 0 NASA ORION 10-13 -051001 23.40N 162.30W B#M 20 BUOY NW KAUAI PAC 0 FOUS 4-93 -051002 17.20N 157.80W B#N 20 BUOY S OAHU PAC 0 4-93 -051003 19.30N 160.80W B#O 20 BUOY S KAUAI PAC 0 4-93 -051004 17.40N 152.50W B#P 20 BUOY SE HAWAII PAC 0 FOUS 4-93 -060800 55.52N 8.55E EKEB 11 ESBJERG AIRPORT 29 Usr Rqst 1-17 -062400 52.31N 4.76E EHAM 11 AMSTERDAM AIRPORT NTHERLAND -2 Klipfel/Delta 04-11 -062900 52.28N 6.89E EHTW 11 ENSCHEDE APT TWENTE NTHERLD 35 Lowinski/Ubimet 05-11 -070341 59.77N 151.17W HOM 12 HMRA2 HOMER AK 296 PROF -070930 48.98N 6.25E LFJL 11 METZNANCYLORRAINE APT FR 265 Lowinski/Ubimet 05-11 -072253 29.70N 98.01W SAT 12 AUSTIN/SAN ANTONIO TX 219 WSR88D FOUS -072327 36.25N 86.57W BNA 12 NASHVILLE/BERRY TN 180 UA NA110 FOUS -072356 36.18N 95.56W TUL 10 TULSA OK 226 WSR88D FOUS 3-93 -072384 35.24N 119.03W BFL 10 BAKERSFIELD CA 154 WRGN 8-97 -072434 38.62N 90.18W STL 12 ST. LOUIS MO 139 FOUS -072464 38.46N 104.18W PUB 12 PUEBLO CO 1618 WSR88D 3-93 -072524 41.50N 81.60W CLE 12 CLEVELAND OH 213 FOUS -072578 43.11N 112.68W PIH 10 POCATELLO/IDAHO FALLS ID 1382 WSR88D FOUS 3-93 -072783 47.47N 115.80W S06 10 MULLAN ID 1011 WRGN 8-97 -081810 41.28N 2.07E LEBL 10 BARCELONA 6 Baker/UPS 11-08 -082220 40.42N 4.25W 11 MADRID, SPAIN (4NASA) 820 -082840 39.50N 0.47W LEVC 10 VALENCIA 62 Baker/UPS 11-08 -090001 36.50N 100.80W G#1 12 PERRYTON TX 893 GUFMEX 12-93 -090002 30.30N 101.70W G#2 12 SHEFFIELD TX 726 GUFMEX 12-93 -090003 27.70N 102.50W G#3 12 MUZQUIZ, COAH MX 1247 GUFMEX 12-93 -090004 30.50N 99.10W G#4 12 FREDRICKSBURG TX 504 GUFMEX 12-93 -090005 28.40N 98.70W G#5 12 COTULLA TX 98 GUFMEX 12-93 -090006 26.30N 98.80W G#6 12 RIO GRANDE CITY TX 53 GUFMEX 12-93 -090007 24.40N 97.40W G#7 22 W. GULF OF MEXICO GFMX#7 0 GUFMEX 12-93 -090008 25.90N 95.30W G#8 20 W. GULF OF MEXICO GFMX#8 0 GUFMEX 12-93 -090009 24.50N 94.40W G#9 22 W. GULF OF MEXICO GFMX#9 0 GUFMEX 12-93 -090010 23.30N 95.60W G#A 22 W. GULF OF MEXICO GFMX#10 0 GUFMEX 12-93 -090011 18.30N 94.20W G#B 10 COATZACOALCOS, V.C. MX 0 GUFMEX 12-93 -090012 21.40N 93.10W G#C 20 BAY OF CAMPECHE GFMX#12 0 GUFMEX 12-93 -090013 23.30N 91.60W G#D 22 GULF OF MEXICO GFMX#13 0 GUFMEX 12-93 -090014 23.70N 88.70W G#E 22 SE GULF OF MEXICO GFMX#14 0 GUFMEX 12-93 -090015 23.00N 85.00W G#F 20 SE GULF OF MEXICO GFMX#15 0 GUFMEX 12-93 -090016 23.50N 98.00W G#G 12 NORTH OF TAMPICO, TAMPS. 77 8-97 -099001 46.02N 91.45W HYR 10 HAYWARD_MUNI_AIRPOR WI 370 J. Eise 2-99 -099002 38.83N 82.80W PMH 10 PORTSMOUTH OH 186 DiStefano 2-99 -099006 38.88N 78.52W WOO 10 WOODSTOCK VA 251 T. Salem 2-99 -099007 39.62N 78.76W CBE 10 CUMBERLAND MD 183 T. Salem 2-99 -099008 39.61N 77.01W W54 10 WESTMINSTER MD 244 T. Salem 2-99 -102240 53.05N 8.79E EDDW 11 BREMEN AIRPORT GERMANY 4 Lowinski/Ubimet 05-11 -103840 52.47N 13.40E 11 BERLIN/TEMPELHOF 50 -105130 50.87N 7.15E DDK 11 KOLN/BONN 91 -106370 50.05N 8.58E 11 FRANKFURT/MAIN 112 -107380 48.68N 9.22E EDDS 11 STUTTGARD AIRPORT 419 Usr Rqst 1-17 -108660 48.35N 11.78E EDDM 11 MUNCHEN/MUNICH ARPT GERMANY 453 Klipfel/Delta 04-11 -110100 48.23N 14.19E LOWL 11 LINZ/B DANUBE ARPT AUSTRIA 298 Lowinski/Ubimet 05-11 -110360 48.12N 16.57E LOWW 10 VIENNA 183 Baker/UPS 11-08 -115180 50.10N 14.26E LKPR 11 PRAHA/RUZ AIRPORT CZECH REP 380 Lowinski/Ubimet 05-11 -121500 54.38N 18.47E 11 GDANSK 149 -123750 52.17N 20.97E EPWA 10 WARSAW/OKECIE 107 Baker/UPS 11-08 -124240 51.10N 16.89E EPWR 11 COPERNICUS APT WRCLW POLAND 123 Lowinski/Ubimet 05-11 -128430 47.43N 19.18E 11 BUDAPEST/LORINC 140 -132750 44.78N 20.53E 11 BELGRADE 243 -133001 42.69N 23.41E SOF 11 SOFIA BULGARIA 531 Trobec/KELOLAND 02-18 -133002 42.57N 27.52E BOJ 11 BURGAS BULGARIA 41 Trobec/KELOLAND 02-18 -133003 43.23N 27.83E VAR 11 VARNA BULGARIA 70 Trobec/KELOLAND 02-18 -133004 42.07N 24.86E PDV 11 PLOVDIV BULGARIA 182 Trobec/KELOLAND 02-18 -154210 44.57N 26.09E LROP 11 HENRI COANDA ARPT ROMANIA 96 Lowinski/Ubimet 05-11 -161050 45.50N 12.33E LIPZ 10 VENICE/MARCO POLO INT'L 2 Baker/UPS 11-08 -162390 41.80N 12.60E LIRA 10 ROME/CIAMPINO 130 Baker/UPS 11-08 -162420 41.80N 12.23E LIRF 11 ROMA FIUMICINO ITALY 2 Klipfel/Delta 04-11 -167460 35.53N 24.15E GSA 11 SOUDA, CRETE 0 -170620 40.97N 29.08E 11 ISTANBUL/GOZTEPE 40 -171280 40.13N 33.00E TAC 11 ANKARA/ESENBOGA 949 -172800 37.75N 40.20E TCC 11 DIYARKABIR 667 -176060 35.15N 33.28E 11 NICOSIA 224 -255940 64.43N 173.23W UHMD 10 PROVIDENJA_BAY HA 3 UA ALA23 3-93 -260630 59.58N 30.18E 11 LENINGRAD 4 -276120 55.75N 37.57E 11 MOSCOW/DOMODEDOV 187 -296340 55.03N 82.90E 11 NOVO-SIBIRSK 143 -319600 43.12N 131.90E 11 VLADIVOSTOK 78 -368700 43.23N 76.93E UAAA 10 ALMATY, KHAZAKSTAN 847 Baker/UPS 11-08 -375490 41.68N 44.95E 11 TBILISI 490 -383531 43.07N 74.47E UAFM 11 MANUS (USAF request) 637 Lenhart 8-06 -384570 41.27N 69.27E 11 TASHKENT 491 -402700 31.98N 35.98E 11 AMMAN AIRPORT 767 -402900 31.87N 35.22E 11 JERUSALEM/ATAROT, ISRAEL 759 -404370 24.88N 46.77E ERK 11 RIYADH, SAUDI ARABIA 611 UA -404380 24.72N 46.72E RIY 11 RIYADH, SAUDI ARABIA 612 -405820 29.22N 47.98E KUW 11 KUWAIT AIRPORT, KUWAIT 56 UA -406080 36.32N 43.15E ORBM 11 MOSUL (USAF request) 223 Lenhart 8-06 -406500 33.22N 44.23E BAD 11 BAGHDAD, IRAQ 35 -406890 30.57N 47.78E BAS 11 BASRA, IRAQ 2 -406900 28.00N 49.00E P01 11 PERSIAN GULF POINT 1 0 -406910 27.00N 50.00E P02 11 PERSIAN GULF POINT 2 0 -407540 35.68N 51.32E 11 TEHERAN/MEHRABAD 1191 -408290 31.05N 61.47E OIZB 11 ZABOL (USAF request) 489 Lenhart 8-06 -409540 34.42N 70.47E OAJL 11 JALALABAD (USAF request) 580 Lenhart 8-06 -409900 31.31N 65.85E OAKN 11 KANDAHAR AIRPT(USAF reqt) 1017 Lenhart 8-06 -411700 25.25N 51.57E OTBD 11 DOHA INTL (USAF reqt) 10 Lenhart 8-06 -411940 25.25N 55.33E OMDB 10 DUBAI INT'L ARPT 5 Baker/UPS 11-08 -412170 24.42N 54.65E OMAA 11 ABU DHABI INTL(USAF reqt) 27 Lenhart 8-06 -420200 76.53N 68.75W BGTL 10 THULE_AB -- 59 UA 3-93 -421820 28.58N 77.20E 11 NEW DELHI/SAFDARJUNG 281 -431500 17.72N 83.30E VIS 11 VISAKHAPATNAM 66 -443850 43.20N 107.17E 11 HANBOGD, MONGOLIA 914 -444540 27.70N 85.37E 11 KATMANDU, NEPAL 1348 -450040 22.32N 114.17E 11 KING'S PARK, HONG KONG 65 -466920 25.03N 121.52E 11 TAIPEI, FORMOSA 9 -469020 10.72N 115.83E 20 NANSHAN, CHINA 5 -471100 37.55N 126.80E RKS 11 SEOUL/KIMPO INTL KOREA 26 -471530 35.18N 128.93E RKPK 11 KIMHAE AIRPORT SOUTH KOREA 4 Klipfel/Delta 04-11 -475800 40.70N 141.37E RJSM 11 MISAWA AFB, JAPAN 36 -476350 35.25N 136.93E RJGG 11 NAGOYA AIRPORT JAPAN 14 Klipfel/Delta 04-11 -476710 35.55N 139.78E RJTT 11 TOKYO INTL JAPAN 8 -476860 35.76N 140.38E RJAA 11 NARITA-TOKYO JAPAN AIRPORT 44 Klipfel/Delta 04-11 -477720 34.68N 135.53E 11 OSAKA, JAPAN 50 -486010 5.30N 100.27E WMKP 10 PENANG INT'L ARPT 3 Baker/UPS 11-08 -486470 2.75N 101.72E WMKK 10 KUALA LUMPUR INT'L ARPT 21 Baker/UPS 11-08 -486870 1.38N 103.72E 11 SINGAPORE/TENGAH 15 -488100 22.82N 104.97E 11 HA GIANG VIETNAM 117 User rqst 2-18 -488200 21.02N 105.80E 11 HANOI/GIALAM 9 -489000 10.82N 106.67E 11 SAIGON (HO CHI MINH VILLE) 6 -503530 51.72N 126.65E 11 HUMA, CHINA 178 -545110 39.80N 116.47E 11 BEIJING, CHINA 32 -548570 36.07N 120.33E ZSQD 10 QINGDAO LIUTING INT'L ARPT 77 Baker/UPS 11-08 -562940 30.67N 104.02E 11 CHENGDU, CHINA 508 -570360 34.30N 108.93E 11 SIAN, CHINA 398 -570831 34.52N 113.83E ZHCC 11 ZHENGZHOU XINZHENG APT CN 151 Usr Rqst 1-17 -583670 31.17N 121.43E 11 SHANGHAI, CHINA 5 -600300 27.93N 15.38W CLP 11 LAS PALMAS/GANDO 25 -601550 33.57N 7.67W 11 CASABLANCA, MOROCCO 61 -602300 31.62N 8.03W 11 MARRAKECH 468 -606800 22.82N 5.47E AAT 11 TAMANRASSET/AGUENNA 1377 -610520 13.48N 2.17E DRRN 11 NIAMEY 227 -612230 16.72N 3.00W GATB 11 TOMBOUCTOU/TIMBUKTU 264 -616410 14.73N 17.50W GOOY 11 DAKAR 24 -617010 13.35N 16.80W BYD 11 BANJUL/YUNDUM, GAMBIA 26 -619670 7.30S 72.42E JDG 01 DIEGO GARCIA 2 -622710 24.22N 23.30E 11 KUFRA, LIBYA 407 -623060 31.33N 27.22E 11 MERSA HATRUH, EGYPT 28 -637390 1.28S 36.83E 11 NAIROBI/EASTLEIGH, KENY 1637 -637910 3.42S 37.07E 11 KILIMANJARO AIRPORT 891 -638180 4.92S 38.23E 11 MOMBO 411 -642100 4.38S 15.45E ZAA 11 KINSHASA/N'DJILI 309 -652010 6.58N 3.33E 11 LAGOS/IKEJA 38 -654620 5.60N 0.17W DGAA 11 ACCRA GHANA 68 Klipfel/Delta 04-11 -655480 7.38N 7.53W 11 MAN, IVORY COAST 336 -655780 5.25N 3.93W DIAP 11 ABIDJAN/PORT BOUET 8 -656600 6.23N 10.37W LRB 11 ROBERTS INTL/MONROV 18 -661600 8.85S 13.23E FNLU 11 LUANDA ANGOLA 74 Klipfel/Delta 04-11 -682880 24.37S 31.05E AHS 11 HOEDSPRUIT 519 -688160 33.97S 18.60E 11 CAPETOWN/MALAN 46 -700260 71.30N 156.78W PABR 12 BARROW/POST-ROGERS AK 4 GCIP 9-95 TAF 2-99 -700860 70.13N 143.63W PABA 10 BARTER ISLAND AK 16 ALA23 FOUS -701040 68.88N 166.13W PALU 10 CAPE_LISBURNE(AWOS) AK 3 FOUS -701330 66.87N 162.63W PAOT 10 KOTZEBUE/RALPH_WIEN_(AS AK 5 UA ALA23 FOUS TAF 2-99 -701620 69.37N 152.13W PAUM 10 UMIAT AK 85 == -701740 66.92N 151.52W PABT 10 BETTLES_FIELD AK 196 FOUS TAF 2-99 -701780 65.17N 152.10W PATA 10 TANANA/CALHOUN_MEM AK 67 == TAF 2-99 -701940 66.57N 145.27W PFYU 10 FORT_YUKON_(AWOS) AK 131 == -702000 64.50N 165.43W PAOM 12 NOME_(ASOS) AK 7 GCIP 9-95 TAF 2-99 -702070 63.88N 160.80W PAUN 10 UNALAKLEET_(AWOS) AK 6 == TAF 2-99 -702120 61.78N 166.03W PACZ 10 CAPE_ROMANZOFF_AWOS AK 146 FOUS -702190 60.78N 161.80W PABE 10 BETHEL AIRPORT AK 46 UA ALA23 FOUS TAF 2-99 -702220 64.73N 156.93W PAGA 10 GALENA_AIRPORT AK 46 FOUS TAF 2-99 -702310 62.97N 155.62W PAMC 10 MCGRATH_(ASOS) AK 103 UA ALA23 FOUS TAF 2-99 -702315 62.90N 155.98W PATL 10 TATALINA_(AWOS) AK 294 TAF 2-99 -702350 61.10N 155.58W PASV 10 SPARREVOHN_(AWOS) AK 484 FOUS -702510 62.30N 150.10W PATK 10 TALKEETNA_(ASOS) AK 109 == TAF 2-99 -702550 61.97N 151.18W PASW 11 SKWENTNA AK 45 NWS AK 3-05 -702590 60.57N 151.25W PAEN 10 KENAI_MUNICIPAL AK 29 == TAF 2-99 -702610 64.82N 147.87W PAFA 12 FAIRBANKS_INTL_ARPT AK 138 GCIP 9-95 TAF 2-99 -702650 64.67N 147.10W PAEI 10 EIELSON_AFB_______& AK 167 METAR/TAF 2-99 -702660 63.97N 145.70W PABI 10 FT.GREELY/BIG DELTA AK 398 UA TAF 2-99 -702670 64.00N 145.73W BIG 11 BIG DELTA, AK 391 -702710 62.15N 145.45W PAGK 10 GULKANA_ARPT_(AUT) AK 481 == TAF 2-99 -702720 61.25N 149.80W PAED 10 ELMENDORF_AFB_____& AK 65 METAR/TAF 2-99 -702730 61.17N 150.02W PANC 12 ANCHORAGE_INTL_ARPT_(AS AK 40 GCIP 9-95 TAF 2-99 -702740 61.60N 149.08W PAAQ 10 PALMER_MUNICIPAL_(ASOS) AK 71 == TAF 2-99 -702750 61.13N 146.35W PAVW 20 VALDEZ (COASTAL POINT) AK 10 == -702770 60.12N 149.45W PAWD 11 SEWARD_(ASOS) 18 Nelson/NWS 11-08 -702820 64.78N 141.15W PAEG 10 EAGLE AK 268 == -702910 62.97N 141.93W PAOR 10 NORTHWAY AK 525 FOUS TAF 2-99 -702960 60.50N 145.50W PACV 10 CORDOVA/MILE 13 AK 13 FOUS TAF 2-99 -703050 58.65N 162.07W PAEH 10 CAPE_NEWENHAM(AWOS) AK 165 FOUS -703080 57.15N 170.22W PASN 00 SAINT_PAUL_ISLAND_(ASOS AK 9 UA ALA23 FOUS TAF 2-99 -703160 55.20N 162.73W PACD 10 COLD_BAY_AIRPORT_(ASOS) AK 31 UA ALA23 FOUS TAF 2-99 -703210 59.05N 158.52W PADL 10 DILLINGHAM_(AMOS) AK 29 == TAF 2-99 -703260 58.68N 156.65W PAKN 10 KING_SALMON_(ASOS) AK 15 UA ALA23 FOUS TAF 2-99 -703400 59.75N 154.92W PAIL 10 ILIAMNA_ARPT_(ASOS) AK 49 == TAF 2-99 -703410 59.63N 151.50W PAHO 10 HOMER MUNICIPAL AK 22 METAR/TAF 2-99 -703430 59.43N 146.33W PAMD 10 MIDDLETON_ISL._AMOS AK 14 == -703500 57.75N 152.50W PADQ 10 KODIAK_(ASOS) AK 34 UA ALA23 FOUS TAF 2-99 -703610 59.52N 139.67W PAYA 10 YAKUTAT_(ASOS) AK 9 UA NA110 ALA23 FOUS TAF 2-99 -703620 59.47N 135.30W PAGY 10 SKAGWAY_(ASOS) AK 5 == TAF 2-99 -703670 58.42N 135.73W PAGS 10 GUSTAVUS AK 9 == TAF 2-99 -703710 57.07N 135.35W PASI 10 SITKA/JAPONSKI_ARPT_(AS AK 20 == TAF 2-99 -703810 58.37N 134.58W PAJN 10 JUNEAU_INTL_AIRPORT AK 7 FOUS TAF 2-99 -703860 56.82N 132.97W PAPG 10 PETERSBURG AK 0 == TAF 2-99 -703870 56.48N 132.37W PAWG 10 WRANGELL AK 13 == TAF 2-99 -703950 55.35N 131.70W PAKT 10 KETCHIKAN INTL ARPT AK 29 METAR/TAF 2-99 -703980 55.03N 131.57W PANT 10 ANNETTE_ISLAND_(ASOS) AK 34 UA NA110 FOUS -704140 52.72N 174.12E PASY 10 SHEMYA_AFB AK 30 UA ALA23 3-93 -704540 51.88N 176.65W PADK 00 ADAK_NAS/MITCHELL AK 4 UA ALA23 -704820 52.95N 168.85W PIKO 00 NIKOLSKI_(AMOS) AK 21 == -704890 53.90N 166.55W PADU 10 DUTCH HARBOR AK 4 METAR/TAF 2-99 -710310 51.93N 131.02W CWZV 10 CAPE_ST_JAMES BC 92 3-93 -710430 65.28N 126.75W CYVQ 12 NORMAN WELLS NT 95 UA 3-93 -710513 72.00N 125.28W CYSY 10 SACHS_HARBOUR_ARPT NT 86 3-93 -710680 56.23N 117.43W CYPE 11 PEACE_RIVER_AIRPORT AB 571 MAGS 9-95 -710720 76.23N 119.33W CYMD 10 MOULD_BAY_AIRPORT NT 12 UA 3-93 -710780 56.87N 101.08W CYYL 12 LYNN LAKE AIRPORT MB 357 Usr Rqst 8-02 -710790 55.75N 97.87W CYTH 12 THOMPSON ZOO MB 206 BOREAS 5-94 -710810 68.78N 81.25W CYUX 10 HALL_BEACH_AIRPORT NT 8 UA 3-93 -710820 82.50N 62.33W CWLT 10 ALERT NT 66 UA 3-93 -711080 49.03N 122.37W CYXX 10 ABBOTSFORD_AIRPORT BC 58 METAR/TAF 2-99 -711090 50.68N 127.37W CYZT 10 PORT_HARDY_AIRPORT BC 22 UA NA110 -711190 53.55N 114.10W CWSE 12 EDMONTON/STONY_PLAI AB 766 UA NA110 FOUS(YEG) -711230 53.30N 113.58W CYEG 10 EDMONTON_INTL_ARPT AB 723 METAR/TAF 2-99 -711250 54.13N 108.52W CYLJ 10 MEADOW_LAKE_AIRPORT SA 480 BOREAS 5-94 -711280 50.27N 111.18W YSD 11 SUFFIELD, AB 770 -711300 53.33N 104.00W CYBU 10 NIPAWIN_AIRPORT SA 374 BOREAS 5-94 -711510 46.90N 71.50W CWQG 10 VALCARTIER QB 168 UA FOUS(YQB) 3-93 -711970 47.57N 59.17W CWZB 10 PORT-AUX-BASQUES NF 40 UA 2-95 -712030 49.95N 119.40W CWLW 12 KELOWNA BC 456 UA NA110 2-95 -712220 58.42N 130.00W CWKX 10 DEASE_LAKE_CS BC 816 FOUS FOUS -712630 43.17N 79.93W CYHM 12 HAMILTON AIRPORT ON 237 ER 11-00 -713680 43.47N 80.38W CYKF 12 WATERLOO_WELL ON 317 Usr Rqst 6-02 -713950 44.88N 63.50W CYHZ 10 HALIFAX_INTL_ARPT_& NS 145 METAR/TAF 2-99 -713970 44.98N 64.92W CYZX 11 GREENWOOD_(CAN-MIL) NS 28 Usr Rqst 3-05 -713990 43.72N 65.25W CWOS 10 SHELBURNE NS 30 == -714963 65.77N 111.25W CYWO 11 LUPIN_ARPT_(SAWR) NT 494 MAGS 9-95 -715380 42.27N 82.97W CYQG 10 WINDSOR_AIRPORT ON 190 METAR/TAF 2-99 -716000 43.93N 60.02W CWSA 00 SABLE_ISLAND______& NS 4 UA NA110 -716010 44.63N 63.50W CYAW 10 SHEARWATER(CAN-MIL) NS 51 == -716030 43.87N 66.10W CYQI 10 YARMOUTH NS 9 UA NA110 3-93 -716090 45.32N 65.88W CYSJ 11 SAINT_JOHN_AIRPORT NB 109 Usr Rqst 4-05 -716230 43.03N 81.15W CYXU 12 LONDON AIRPORT ON 278 ER 11-00 -716240 43.67N 79.63W CYYZ 10 TORONTO/PEARSON ON 173 3-93 -716250 45.95N 77.32W CYWA 10 PETAWAWA_A,ONT ON 130 UA 3-93 -716270 45.47N 73.75W CYUL 10 MONTREAL/DORVAL QB 36 METAR/TAF 2-99 -716278 45.68N 74.03W CYMX 10 MONTREAL/MIRABEL QB 82 == -716280 45.32N 75.67W CYOW 10 OTTAWA_INTL_AIRPORT ON 114 FOUS 3-93 -716290 44.23N 78.37W CYPQ 12 PETERBOROUGH AIRPORT ON 191 ER 11-00 -716300 44.97N 79.30W CYQA 12 MUSKOKA AIRPORT ON 282 ER 11-00 -716330 44.75N 81.10W CYVV 12 WIARTON AIRPORT ON 222 ER 11-00 -717010 45.83N 66.43W CYCX 12 GAGETOWN__(CAN-MIL) NB 51 UA -717050 46.12N 64.68W CYQM 12 MONCTON_AIRPORT NB 71 Usr Rqst 4-05 -717060 46.28N 63.13W CYYG 12 CHARLOTTETOWN_ARPT PE 54 Usr Rqst 4-05 -717070 46.17N 60.05W CYQY 10 SYDNEY_AIRPORT NS 62 METAR/TAF 2-99 -717140 46.80N 71.40W YQB 11 QUEBEC, PQ 73 -717220 46.38N 75.97W CWMW 12 MANIWAKI QB 170 UA NA110 FOUS(YMW) -717250 48.05N 77.78W CYVO 10 VAL D'OR PQ 337 3-93 -717310 46.37N 79.42W CYYB 10 NORTH BAY ON 371 FOUS 3-93 -717380 47.97N 84.78W CYXZ 10 WAWA_AIRPORT ON 287 3-93 -717390 48.57N 81.37W CYTS 10 TIMMINS_AIRPORT ON 295 3-93 -717460 52.23N 87.88W CYLH 10 LANSDOWNE HOUSE ON 242 FOUS 3-93 -717490 48.37N 89.32W CYQT 10 THUNDER_BAY_AIRPORT ON 199 FOUS 3-93 -717990 48.65N 123.43W CYYJ 10 VICTORIA_INTL_ARPT BC 19 METAR/TAF 2-99 -718010 47.62N 52.73W CYYT 10 SAINT_JOHN'S_ARPT NF 140 UA NA110 METAR 2-99 -718030 48.95N 54.57W CYQX 10 GANDER_INTL_AIRPORT NF 151 METAR/TAF 2-99 -718090 49.22N 57.40W CYDF 12 DEER LAKE NF 22 Usr Rqst 12-03 -718110 50.22N 66.27W CYZV 10 SEPT-ILES_AIRPORT QB 55 UA NA110 -718150 48.53N 58.55W CYJT 10 STEPHENVILLE_ARPT NF 26 UA NA110 -718160 53.32N 60.42W CYYR 10 GOOSE_BAY_AIRPORT NF 49 UA NA110 METAR 2-99 -718220 49.77N 74.53W CYMT 10 CHIBOUGAMAU-CHAPAIS QB 387 3-93 -718230 53.75N 73.67W CYAH 10 LA_GRANDE_IV_ARPT QB 306 UA NA110 3-93 -718340 49.78N 86.93W CYGQ 12 GERALDTON AIRPORT ON 349 ER 11-00 -718360 51.27N 80.65W CWZC 12 MOOSONEE_(SAWR)___& ON 10 UA NA110 -718365 51.28N 80.60W CYMO 12 MOOSONEE AIRPORT ON 29 ER 11-00 -718454 51.45N 90.20W CYPL 10 PICKLE_LAKE(MAN) ON 386 UA NA110 3-93 -718480 53.83N 89.87W CYTL 12 BIG TROUT LAKE ON 210 ER 11-00 -718500 49.78N 94.37W CYQK 12 KENORA AIRPORT ON 411 ER 11-00 -718520 49.90N 97.23W CYWG 10 WINNIPEG_INTL_ARPT MN 239 FOUS 3-93 -718530 49.78N 99.65W CWLO 10 CAMP SHILO MB 373 UA -718575 54.68N 101.68W CYFO 10 FLIN_FLON_AIRPORT MN 304 BOREAS 5-94 -718630 50.43N 104.67W CYQR 10 REGINA_AIRPORT SA 577 FOUS 3-93 -718660 52.17N 106.68W CYXE 10 SASKATOON_AIRPORT SA 504 UA 5-94 -718670 53.97N 101.10W CYQD 12 THE_PAS_AIRPORT MN 271 UA NA110 FOUS -718690 53.22N 105.68W CYPA 12 PRINCE_ALBERT_ARPT SA 428 FOUS 3-93 -718720 50.02N 110.72W CYXH 12 MEDICINE_HAT_ARPT AB 716 3-93 -718740 49.63N 112.80W YQL 10 LETHBRIDGE_AIRPORT AB 929 Usr Rqst 4-02 -718770 51.12N 114.02W CYYC 10 CALGARY_INTNL_ARPT AB 1084 FOUS -718800 49.62N 115.78W CYXC 10 CRANBROOK BC 939 FOUS 3-93 -718840 49.30N 117.63W CYCG 10 CASTLEGAR_AIRPORT BC 495 FOUS 3-93 -718920 49.18N 123.17W CYVR 10 VANCOUVER_INTL_ARPT BC 2 FOUS 3-93 -718930 49.72N 124.90W CYQQ 10 COMOX_(CAN-MIL) BC 24 METAR/TAF 2-99 -718960 53.88N 122.68W CYXS 12 PRINCE_GEORGE_ARPT BC 691 UA NA110 FOUS -719060 58.10N 68.42W CYVP 10 KUUJJUAQ_AIRPORT QB 37 UA NA110 -719070 58.45N 78.12W CWPH 10 INUKJUAK QB 253 UA NA110 -719090 63.75N 68.53W CYFB 10 FROBISHER/IQALUIT NT 34 UA 3-93 METAR 2-99 -719130 58.75N 94.07W CYYQ 10 CHURCHILL_AIRPORT MN 29 UA NA110 -719150 64.20N 83.37W CYZS 10 CORAL_HARBOUR_ARPT NT 64 UA 3-93 -719170 79.98N 85.93W CWEU 10 EUREKA NT 10 UA 3-93 -719200 57.35N 107.13W CWFN 11 CREE_LAKE_(MAPS) SA 495 MAGS 9-95 -719240 74.72N 94.95W CYRB 10 RESOLUTE BAY NT 40 UA 3-93 -719250 69.10N 105.12W CYCB 10 CAMBRIDGE_BAY_ARPT NT 27 UA 3-93 -719260 64.30N 96.00W CYBK 10 BAKER LAKE NT 49 UA 3-93 -719310 54.77N 112.02W CWLB 11 LAC_LA_BICHE_(MARS) AB 567 MAGS 9-95 -719340 60.02N 111.95W CYSM 12 FORT_SMITH_AIRPORT NT 203 UA NA110 -719360 62.50N 114.40W CYZF 12 YELLOW KNIFE NT 270 GCIP 5-94 -719450 58.83N 122.58W CYYE 12 FORT_NELSON_AIRPORT BC 382 UA NA110 -719460 61.80N 121.20W CYFS 12 FORT SIMPSON NT 152 GCIP 5-94 -719530 60.12N 128.82W CYQH 11 WATSON_LAKE_AIRPORT YK 690 MAGS 9-95 -719570 68.32N 133.53W CYEV 12 INUVIK NT 103 UA ALA23 3-93 -719640 60.72N 135.07W CYXY 12 WHITEHORSE_AIRPORT YK 703 UA ALA23 FOUS -719660 64.05N 139.13W CYDA 11 DAWSON_AIRPORT YK 369 MAGS -719665 67.57N 139.82W CYOC 10 OLD_CROW_AIRPORT YK 251 == -722010 24.55N 81.75W KEYW 22 KEY_WEST_INTL_ARPT FL 6 UA NA110 TAF 2-99 -722016 24.73N 81.05W KMTH 00 MARATHON_AIRPORT_(ASOS) FL 2 TAF 8-09 -722020 25.82N 80.28W KMIA 10 MIAMI_INTL_AIRPORT FL 4 FOUS TAF 2-99 -722024 25.90N 80.28W KOPF 10 MIAMI/OPA_LOCKA FL 3 METAR/TAF 2-99 -722025 26.07N 80.15W KFLL 10 FT_LAUDERDALE/HOLLY FL 7 TAF 2-99 -722029 25.65N 80.43W KTMB 10 MIAMI/KENDALL-TAMIA FL 3 METAR/TAF 2-99 -722030 26.68N 80.12W KPBI 12 WEST_PALM_BEACH FL 6 UA NA110 TAF 2-99 -722039 26.20N 80.17W KFXE 10 FORT_LAUDERDALE FL 4 METAR/TAF 2-99 -722040 28.10N 80.65W KMLB 10 MELBOURNE_REGIONAL FL 11 TAF 2-99 -722045 27.65N 80.42W KVRB 10 VERO_BEACH_MUNI FL 8 TAF 2-99 -722050 28.43N 81.32W KMCO 10 ORLANDO_JETPORT___& FL 32 2-95 TAF 2-99 -722056 29.18N 81.05W KDAB 10 DAYTONA_BEACH_RGNL FL 11 TAF 2-99 -722060 30.50N 81.69W KJAX 12 JACKSONVILLE_INTL FL 9 == TAF 2-99 -722067 30.22N 81.88W KVQQ 11 CECIL_FIELD_NAS FL 25 TAF 8-09 -722070 32.13N 81.19W KSAV 10 SAVANNAH_MUNICIPAL GA 15 FOUS 3-93 TAF 2-99 -722079 32.22N 80.70W KHXD 11 HILTON_HEAD_(AWOS) SC 6 TAF 8-09 -722080 32.90N 80.03W KCHS 12 CHARLESTOWN_MUNI SC 15 UA NA110 FOUS TAF 2-99 -722100 27.70N 82.38W TBW 12 TAMPA FL 13 UA NA110 -722103 27.50N 80.37W KFPR 10 FT_PIERCE/ST_LUCIE FL 7 METAR/TAF 2-99 -722106 26.58N 81.87W KFMY 10 FORT_MYERS/PAGE_FLD FL 5 3-93 TAF 2-99 -722108 26.53N 81.75W KRSW 10 FT_MYERS/SW_FLORIDA FL 9 TAF 2-99 -722110 27.97N 82.53W KTPA 10 TAMPA_INTL_AIRPORT FL 3 TAF 2-99 -722115 27.40N 82.55W KSRQ 10 SARASOTA-BRADENTON FL 9 TAF 2-99 -722116 27.92N 82.68W KPIE 10 SAINT_PETERSBURG FL 3 TAF 2-99 -722119 27.99N 82.02W KLAL 12 LAKELAND FL 43 TAF 2-18 -722120 29.62N 83.10W CTY 10 CROSS_CITY_ARPT_(ASOS) FL 12 3-93 -722130 31.25N 82.40W KAYS 12 WAYCROSS/WARE_CO. GA 46 FORMER UA NA110 -722136 31.25N 81.47W KBQK 10 BRUNSWICK/GLYNCO GA 8 METAR/TAF 2-99 -722137 31.15N 81.37W KSSI 10 BRUNSWICK/MALCOLM GA 6 TAF 2-99 -722140 30.38N 84.37W KTLH 12 TALLAHASSEE_RGNL FL 21 UA NA110 FOUS TAF 2-99 -722146 29.68N 82.27W KGNV 10 GAINESVILLE_RGNL FL 46 TAF 2-99 -722150 33.36N 84.57W FFC 12 PEACHTREE CITY/FALCON GA 246 NEW UPA -722160 31.53N 84.18W KABY 10 ALBANY_MUNICIPAL GA 59 TAF 2-99 -722166 30.78N 83.28W KVLD 10 VALDOSTA_REGIONAL GA 62 TAF 2-99 -722170 32.70N 83.65W KMCN 10 MACON/LEWIS_WILSON GA 110 TAF 2-99 -722180 33.37N 81.97W KAGS 10 AUGUSTA/BUSH_FIELD GA 45 TAF 2-99 -722190 33.65N 84.42W KATL 10 ATLANTA_INTL_ARPT GA 315 FOUS TAF 2-99 -722195 33.78N 84.52W KFTY 10 ATLANTA/FULTON_CO. GA 256 TAF 2-99 -722196 33.88N 84.30W KPDK 10 ATLANTA/DEKALB GA 305 METAR/TAF 2-99 -722200 29.73N 84.98W AQQ 10 APALACHICOLA FL 7 == -722210 30.56N 85.92W VPS 12 EGLIN AFB FL 68 WSR88D UA FOUS 3-93 -722223 30.47N 87.18W KPNS 10 PENSACOLA_REGIONAL& FL 37 TAF 2-99 -722230 30.68N 88.25W KMOB 10 MOBILE/BATES_FIELD AL 67 FOUS TAF 2-99 -722235 30.63N 88.07W KBFM 11 MOBILE_DOWNTOWN_(ASOS) AL 8 TAF 8-09 -722245 30.22N 85.68W KPFN 10 PANAMA_CITY/BAY_CO. FL 6 TAF 2-99 -722250 32.33N 84.83W LSF 10 FORT BENNING GA 130 FOUS -722255 32.52N 84.93W KCSG 10 COLUMBUS_METRO_ARPT GA 121 TAF 2-99 -722260 32.30N 86.40W KMGM 10 MONTGOMERY/DANNELLY AL 62 3-93 TAF 2-99 -722268 31.32N 85.45W KDHN 10 DOTHAN_MUNICIPAL AL 122 TAF 2-99 -722280 33.57N 86.75W KBHM 10 BIRMINGHAM_MUNI AL 192 TAF 2-99 -722286 33.22N 87.62W KTCL 10 TUSCALOOSA_MUNI AL 52 TAF 2-99 -722287 33.58N 85.85W KANB 10 ANNISTON/CALHOUN_CO AL 186 TAF 2-99 -722290 32.90N 87.25W KCKL 10 CENTREVILLE/BIBB_CO AL 140 FORMER UA NA110 -722293 29.78N 93.30W 7R5 11 CAMERON_HELIPORT LA 1 Usr Rqst 2-18 -722300 33.17N 86.77W BMX 12 SHELBY COUNTY ARPT AL 178 NEW UPA -722308 29.10N 90.20W 9F2 11 FOURCHON LA 2 Usr Rqst 2-18 -722310 29.98N 90.25W KMSY 10 NEW_ORLEANS/MOISANT LA 9 FOUS TAF 2-99 -722314 30.03N 91.88W KARA 11 NEW_IBERIA/ACADIANA LA 7 TAF 8-09 -722315 30.05N 90.03W KNEW 10 NEW_ORLEANS/LAKEFRO LA 3 METAR/TAF 2-99 -722317 30.53N 91.15W KBTR 10 BATON_ROUGE/RYAN LA 21 3-93 TAF 2-99 -722320 29.33N 89.40W BVE 11 BOOTHVILLE LA 0 Usr Rqst 2-18 -722330 30.33N 89.82W 6RO 12 SLIDELL LA 8 UA NA110 -722340 32.33N 88.75W KMEI 10 MERIDIAN/KEY_FIELD MS 94 3-93 TAF 2-99 -722348 31.47N 89.33W KPIB 10 PINE_BELT_RGNL_AWOS MS 91 TAF 2-99 -722350 32.32N 90.08W KJAN 12 JACKSON/THOMPSON MS 101 UA NA110 FOUS TAF 2-99 -722356 33.48N 90.98W KGLH 10 GREENVILLE_MUNI MS 40 3-93 TAF 2-99 -722358 31.18N 90.47W KMCB 10 MCCOMB/LEWIS_FIELD MS 126 TAF 2-99 -722359 33.50N 90.08W KGWO 10 GREENWOOD/LEFLORE MS 47 TAF 2-99 -722390 31.05N 93.20W KPOE 11 FORT_POLK_(ARMY) LA 100 Usr Rqst 8-09 -722400 30.12N 93.22W KLCH 12 LAKE_CHARLES_MUNI LA 10 UA NA110 FOUS TAF 2-99 -722405 30.20N 91.98W KLFT 10 LAFAYETTE_REGIONAL LA 13 TAF 2-99 -722410 29.95N 94.02W KBPT 10 BEAUMONT/PORT_ARTHU TX 7 TAF 2-99 -722420 29.30N 94.80W KGLS 10 GALVESTON/SCHOLES_& TX 16 TAF 2-99 -722430 29.97N 95.35W KIAH 12 HOUSTON/INTERCONTIN TX 33 FOUS TAF 2-99 -722435 29.65N 95.28W KHOU 10 HOUSTON/WILL_HOBBY TX 14 TAF 2-99 -722445 30.58N 96.37W KCLL 10 COLLEGE_STATION TX 98 3-93 TAF 2-99 -722446 31.23N 94.75W KLFK 10 LUFKIN/ANGELINA_CO. TX 88 3-93 TAF 2-99 -722448 32.34N 95.40W KTYR 10 TYLER/POUNDS_FLD TX 166 TAF 2-99 -722470 32.34N 94.65W KGGG 12 LONGVIEW/GREGG_CO.& TX 124 FORMER UA NA110 TAF 2-99 -722480 32.47N 93.82W KSHV 12 SHREVEPORT_REGIONAL LA 79 WSR88D FOUS TAF 2-99 -722486 32.52N 92.03W KMLU 10 MONROE_REGIONAL LA 24 M. Foster 2-99 TAF 2-99 -722487 31.40N 92.30W KESF 10 ALEXANDRIA/ESLER LA 34 TAF 2-99 -722490 32.83N 97.30W FWD 12 FORT WORTH TX 171 NEW UPA -722500 25.90N 97.43W KBRO 12 BROWNSVILLE_INTL TX 6 UA NA110 FOUS TAF 2-99 -722505 26.23N 97.65W KHRL 10 HARLINGEN_INTL_ARPT TX 11 TAF 2-99 -722506 26.18N 98.23W KMFE 10 MCALLEN/MILLER_INTL TX 33 TAF 2-99 -722510 27.77N 97.50W KCRP 12 CORPUS_CHRISTI_INTL TX 13 UA NA110 WSR88D TAF 2-99 -722517 27.73N 98.03W KALI 10 ALICE_INTL_AIRPORT TX 54 TAF 2-99 -722520 27.55N 99.47W KLRD 10 LAREDO_INTL_AIRPORT TX 155 == TAF 2-99 -722527 29.12N 95.47W KLBX 11 ANGLETON/LAKE_JACKS TX 8 TAF 8-09 -722530 29.53N 98.47W KSAT 10 SAN_ANTONIO_INTL TX 242 TAF 2-99 -722540 30.30N 97.70W KAUS 10 AUSTIN/MUELLER_MUNI TX 189 TAF 2-99 -722550 28.85N 96.92W KVCT 12 VICTORIA_REGIONAL TX 36 == TAF 2-99 -722560 31.62N 97.22W KACT 10 WACO-MADISON_COOPER TX 155 TAF 2-99 -722576 31.07N 97.83W KGRK 11 FORT_HOOD/GRAY_AAF TX 309 TAF 8-09 -722583 32.84N 96.85W KDAL 10 DALLAS/LOVE_FIELD_& TX 148 TAF 2-99 -722587 33.63N 95.45W PRX 12 PARIS/COX_FIELD TX 167 3-93 -722590 32.90N 97.03W KDFW 10 DALLAS/FT_WORTH TX 182 FOUS TAF 2-99 -722593 35.07N 118.15W KMHV 12 MOJAVE CA 849 Usr Rqst 10-11 -722596 32.82N 97.37W KFTW 10 FORT_WORTH/MEACHAM TX 216 TAF 2-99 -722600 32.22N 98.18W KSEP 10 STEPHENVILLE/CLARK TX 402 FORMER UA NA110 -722610 29.37N 100.92W KDRT 12 DEL_RIO_INTL_(AUT) TX 307 UA NA110 FOUS TAF 2-99 -722620 31.83N 104.80W GDP 10 GUADALUPE_PASS_AMOS TX 1662 3-93 -722630 31.37N 100.50W KSJT 10 SAN_ANGELO/MATHIS TX 582 WSR88D 3-93 TAF 2-99 -722636 36.02N 102.55W KDHT 10 DALHART_MUNICIPAL TX 1216 FOUS 3-93 TAF 2-99 -722640 30.37N 104.02W MRF 12 MARFA_MUNI_(AMOS) TX 1481 3-93 -722650 31.95N 102.18W KMAF 12 MIDLAND_REGIONAL TX 872 UA NA110 FOUS TAF 2-99 -722656 31.78N 103.20W KINK 10 WINK/WINKLER_CO. TX 859 TAF 2-99 -722660 32.41N 99.68W KABI 10 ABILENE_MUNICIPAL TX 546 TAF 2-99 -722670 33.65N 101.82W KLBB 10 LUBBOCK_INTL_ARPT TX 988 FOUS TAF 2-99 -722680 33.30N 104.53W KROW 12 ROSWELL/INDUSTRIAL NM 1118 == TAF 2-99 -722687 32.33N 104.27W KCNM 10 CARLSBAD/CAVERN_CTY NM 1004 TAF 2-99 -722688 32.68N 103.22W KHOB 10 HOBBS/LEA_CO. NM 1115 TAF 2-99 -722690 32.24N 106.22W WSD 10 WHITE SANDS NM 1207 FORMER UA 3-93 -722695 32.28N 106.92W KLRU 11 LAS_CRUCES_INTL NM 1358 TAF 8-09 -722700 31.80N 106.40W KELP 10 EL_PASO_INTL_ARPT TX 1194 TAF 2-99 -722710 33.23N 107.27W KTCS 10 TRUTH_OR_CONSEQUENC NM 1481 TAF 2-99 -722725 32.27N 107.72W KDMN 10 DEMING_MUNICIPAL NM 1313 TAF 2-99 -722730 31.57N 110.33W FHU 10 FORT HUACHUCA AZ 1421 FORMER UA 3-93 -722735 31.47N 109.60W KDUG 10 DOUGLAS_BISBEE_INTL AZ 1265 TAF 2-99 -722740 32.12N 110.93W KTUS 12 TUCSON_INTL_AIRPORT AZ 779 UA NA110 TAF 2-99 -722780 33.43N 112.02W KPHX 10 PHOENIX/SKY_HARBOR AZ 337 FOUS TAF 2-99 -722800 32.65N 114.60W KYUM 12 YUMA_INTL_AIRPORT AZ 63 WSR88D 3-93 TAF 2-99 -722865 34.05N 117.60W KONT 10 ONTARIO_INTL_ARPT CA 287 TAF 2-99 -722868 33.83N 116.50W KPSP 10 PALM_SPRINGS_RGNL CA 141 TAF 2-99 -722880 34.20N 118.35W KBUR 10 BURBANK/GLENDALE CA 236 TAF 2-99 -722886 34.22N 118.48W KVNY 10 VAN_NUYS_AIRPORT CA 244 TAF 2-99 -722897 35.23N 120.63W KSBP 10 SAN_LUIS_OBISPO CA 64 TAF 2-99 -722900 32.73N 117.17W KSAN 10 SAN_DIEGO/LINDBERG& CA 9 TAF 2-99 -722904 32.57N 116.98W KSDM 10 SAN_DIEGO/BROWN_FLD CA 160 METAR/TAF 2-99 -722910 33.25N 119.45W KNSI 10 SAN NICOLAS ISLAND CA 10 UA -722920 33.40N 118.42W KAVX 11 AVALON/CATALINA CA 488 Usr Rqst 6-16 -722927 33.13N 117.28W KCRQ 10 CARLSBAD CA 328 TAF 1-01 -722930 32.85N 117.12W NKX 12 MIRAMAR_NAS_______& CA 128 UA NA110 3-93 -722950 33.93N 118.40W KLAX 22 LOS_ANGELES_INTL CA 32 FOUS TAF 2-99 -722970 33.82N 118.15W KLGB 10 LONG_BEACH_AIRPORT CA 12 TAF 2-99 -722977 33.68N 117.87W KSNA 10 SANTA_ANA/JON-WAYNE CA 16 WRGN 8-97 TAF 2-99 -723013 34.27N 77.90W KILM 10 WILMINGTON/NEW_HAN& NC 10 TAF 2-99 -723030 35.17N 79.02W KPOB 10 POPE_AFB NC 66 FOUS 3-93 -723035 34.98N 78.87W KFAY 10 FAYETTEVILLE_RGNL NC 58 TAF 2-99 -723040 35.27N 75.55W KHAT 12 CAPE_HATTERAS NC 3 FORMER UA NA110 FOUS -723050 34.78N 76.87W KMHX 12 NEWPORT NC 11 UA NA110 WSR88D 2-95 -723060 35.87N 78.78W KRDU 10 RALEIGH-DURHAM NC 134 FOUS TAF 2-99 -723065 35.64N 77.39W KPGV 11 GREENVILLE NC 8 TAF 1-11 -723066 35.33N 77.97W KGSB 11 SEYMOUR-JOHNSON_AFB NC 33 Usr Rqst 2-13 -723068 35.84N 77.90W KRWI 10 ROCKY_MOUNT-WILSON NC 48 TAF 2-99 -723069 34.82N 77.61W KOAJ 12 JACKSONVILLE NC 29 TAF 1-11 -723070 36.82N 72.10W NTU 01 OCEANA NAS/SOUCEK 7 -723080 36.90N 76.19W KORF 10 NORFOLK_INTL_ARPT VA 9 FOUS TAF 2-99 -723086 37.13N 76.50W KPHF 10 NEWPORT_NEWS VA 13 TAF 2-99 -723090 34.90N 76.88W NKT 11 CHERRY POINT MCAS 9 -723095 35.07N 77.05W KEWN 10 NEW_BERN/CRAVEN_CO NC 6 TAF 2-99 -723100 33.95N 81.12W KCAE 10 COLUMBIA_METRO SC 69 FOUS TAF 2-99 -723106 34.18N 79.72W KFLO 10 FLORENCE_REGIONAL SC 45 TAF 2-99 -723110 33.95N 83.32W KAHN 12 ATHENS_MUNICIPAL GA 247 FORMER UA NA110 TAF 2-99 -723119 34.84N 82.35W KGMU 10 GREENVILLE_DOWNTOWN SC 319 TAF 2-99 -723120 34.90N 82.22W KGSP 10 GREENVILLE/SPARTANB SC 296 WSO 5-94 TAF 2-99 -723125 34.50N 82.72W KAND 10 ANDERSON_CO_AIRPORT SC 238 TAF 2-99 -723140 35.22N 80.93W KCLT 10 CHARLOTTE/DOUGLAS NC 234 == TAF 2-99 -723145 35.73N 81.37W KHKY 10 HICKORY_REGIONAL NC 362 TAF 2-99 -723150 35.43N 82.55W KAVL 12 ASHEVILLE_MUNICIPAL NC 661 FOUS 3-93 TAF 2-99 -723170 36.08N 79.94W KGSO 12 GREENSBORO/PIEDMONT NC 270 UA NA110 TAF 2-99 -723180 37.21N 80.41W KRNK 12 BLACKSBURG/ROANOKE UA VA 653 UA 3-02 -723183 36.48N 82.40W KTRI 10 BRISTOL/TRI-CITY__& TN 463 TAF 2-99 -723193 36.13N 80.22W KINT 10 WINSTON-SALEM/SMITH NC 296 TAF 2-99 -723200 34.35N 85.16W KRMG 11 ROME/RUSSELL GA 196 Usr Rqst 6-16 -723230 34.65N 86.77W KHSV 12 HUNTSVILLE/MADISON AL 196 3-93 TAF 2-99 -723235 34.75N 87.62W KMSL 10 MUSCLE_SHOALS_RGNL AL 168 TAF 2-99 -723240 35.03N 85.20W KCHA 10 CHATTANOOGA/LOVELL TN 210 TAF 2-99 -723260 35.82N 83.98W KTYS 10 KNOXVILLE_MUNICIPAL TN 299 TAF 2-99 -723265 35.95N 85.08W KCSV 10 CROSSVILLE_MEMORIAL TN 573 TAF 2-99 -723270 36.13N 86.68W KBNA 10 NASHVILLE_METRO TN 180 TAF 2-99 -723320 34.27N 88.77W KTUP 10 TUPELO/C.D._LEMONS& MS 110 TAF 2-99 -723340 35.05N 90.00W KMEM 10 MEMPHIS_INTL_ARPT TN 87 FOUS TAF 2-99 -723346 35.59N 88.92W KMKL 12 JACKSON/MCKELLAR TN 132 3-93 TAF 2-99 -723400 34.83N 92.25W KLZK 12 NORTH_LITTLE_ROCK AR 165 UA NA110 FOUS(LIT) -723403 34.73N 92.23W KLIT 10 LITTLE_ROCK/ADAMS_& AR 79 TAF 2-99 -723407 35.83N 90.65W KJBR 10 JONESBORO_MUNICIPAL AR 80 TAF 2-99 -723415 34.48N 93.10W KHOT 10 HOT_SPRINGS AR 165 TAF 2-99 -723417 34.18N 91.93W KPBF 10 PINE_BLUFF/GRIDER AR 63 TAF 2-99 -723418 33.45N 93.98W KTXK 10 TEXARKANA_RGNL/WEBB AR 119 TAF 2-99 -723419 33.22N 92.80W KELD 10 EL_DORADO/GOODWIN AR 77 3-93 TAF 2-99 -723440 35.33N 94.37W KFSM 10 FORT_SMITH_MUNI AR 141 TAF 2-99 -723445 36.00N 94.17W KFYV 12 FAYETTEVILLE/DRAKE AR 381 3-93 TAF 2-99 -723446 36.27N 93.15W KHRO 10 HARRISON/BOONE_CO. AR 416 TAF 2-99 -723447 36.20N 92.47W FLP 10 FLIPPIN AR 350 Weiss 2-99 -723448 35.73N 91.65W KBVX 10 BATESVILLE_(AWOS) AR 141 MOS/Weiss 2-99 -723480 36.88N 91.90W KUNO 11 WEST_PLAINS MO -999 NAM MERGE 1-16 -723489 37.23N 89.57W KCGI 10 CAPE_GIRARDEAU_MUNI MO 104 TAF 2-99 -723490 36.91N 94.02W KHFJ 12 MONETT MO 438 FORMER UA NA110 -723495 37.15N 94.50W KJLN 10 JOPLIN_REGIONAL MO 299 TAF 2-99 -723510 33.98N 98.50W KSPS 10 WICHITA_FALLS/SHEP TX 314 FOUS 3-93 TAF 2-99 -723525 34.98N 99.05W KHBR 10 HOBART_MUNICIPAL OK 477 TAF 2-99 -723526 35.33N 99.20W KCSM 11 CLINTON-SHERMAN_(ASOS) OK 586 TAF 8-09 -723527 36.30N 99.77W KGAG 10 GAGE/SHATTUCK OK 678 TAF 2-99 -723530 35.40N 97.60W KOKC 10 OKLAHOMA_CITY(AWOS) OK 397 FOUS TAF 2-99 -723546 36.73N 97.10W KPNC 10 PONCA_CITY_MUNI OK 307 TAF 2-99 -723550 34.60N 98.40W FSI 12 FORT SILL OK 360 UA -723555 34.30N 97.02W ADM 10 ARDMORE_MUNICIPAL OK 232 3-93 -723560 36.20N 95.90W KTUL 10 TULSA_INTL_ARPT(AW) OK 206 TAF 2-99 -723565 36.76N 96.01W KBVO 11 BARTLESVILLE OK -999 NAM MERGE 1-16 -723566 34.88N 95.78W KMLC 12 MC_ALESTER_REGIONAL OK 235 3-93 TAF 2-99 -723570 35.23N 97.47W OUN 12 NORMAN OK OK 358 UA NA110 3-93 -723600 36.45N 103.15W CAO 12 CLAYTON_MUNI_(ASOS) NM 1515 Usr Rqst 2-18 -723604 34.43N 100.28W KCDS 10 CHILDRESS_MUNICIPAL TX 595 3-93 TAF 2-99 -723627 35.52N 108.78W KGUP 10 GALLUP_MUNI/CLARKE NM 1972 TAF 2-99 -723630 35.23N 101.70W KAMA 12 AMARILLO_ARPT(AWOS) TX 1099 UA NA110 TAF 2-99 -723640 31.87N 106.70W KEPZ 12 SANTA_TERESA NM 1252 UA 7-97 -723650 35.05N 106.62W KABQ 12 ALBUQUERQUE_INTL NM 1620 UA NA110 FOUS TAF 2-99 -723656 35.62N 106.08W KSAF 10 SANTA_FE_CO._MUNI NM 1934 TAF 2-99 -723658 36.75N 108.23W KFMN 10 FARMINGTON_REGIONAL NM 1677 TAF 2-99 -723676 35.18N 103.60W KTCC 10 TUCUMCARI_MUNICIPAL NM 1239 TAF 2-99 -723677 35.65N 105.15W KLVS 12 LAS_VEGAS_MUNICIPAL NM 2095 FOUS 3-93 TAF 2-99 -723700 35.27N 113.95W IGM 10 KINGMAN_(ASOS) AZ 1033 WRGN 8-97 -723710 36.93N 111.45W KPGA 10 PAGE_MUNI_(AMOS)__& AZ 1304 WRGN 2-99 ALSO_MOS 2-99 -723720 34.53N 112.47W PRC 10 PRESCOTT AZ 1633 WRGN 8-97 -723723 34.65N 112.42W KPRC 10 PRESCOTT/LOVE_FLD_& AZ 1537 TAF 2-99 -723740 35.02N 110.73W KINW 10 WINSLOW_(AUT) AZ 1488 TAF 2-99 -723747 34.27N 110.00W SOW 10 SHOW_LOW_MUNICIPAL AZ 1954 WRGN 2-99 -723754 34.51N 109.38W SJN 10 ST._JOHNS_AIR_PARK AZ 1745 WRGN 2-99 -723755 35.13N 111.67W KFLG 10 FLAGSTAFF_(AMOS) AZ 2137 TAF 2-99 -723760 35.23N 111.82W FLG 12 FLAGSTAFF AZ 2192 UA NA110 -723783 35.95N 112.15W KGCN 10 GRAND_CANYON_PARK AZ 2014 WRGN 8-97 TAF 2-99 -723805 34.77N 114.62W KEED 10 NEEDLES_AIRPORT CA 302 TAF 2-99 -723810 34.92N 117.90W EDW 10 EDWARDS AFB, CA 724 UA NASA-JSC FOUS -723815 34.84N 116.78W KDAG 10 BARSTOW-DAGGETT CA 587 TAF 2-99 -723816 34.73N 118.22W KWJF 10 LANCASTER/FOX_FIELD CA 715 TAF 2-99 -723820 34.63N 118.08W KPMD 10 PALMDALE_PRODUCTION CA 774 TAF 2-99 -723840 35.43N 119.05W KBFL 10 BAKERSFIELD/MEADOWS CA 150 TAF 2-99 -723860 36.08N 115.17W KLAS 10 LAS_VEGAS/MCCARRAN NV 664 FOUS TAF 2-99 -723870 36.62N 116.02W KDRA 12 MERCURY/DESERT_ROCK NV 1009 UA NA110 FOUS(UCC) TAF 2-99 -723890 36.77N 119.72W KFAT 10 FRESNO_AIR_TERMINAL CA 100 FOUS TAF 2-99 -723910 34.12N 119.12W NTD 10 PT_MUGU_NAWS CA 2 FORMER UA -723925 34.43N 119.83W KSBA 10 SANTA_BARBARA_MUNI CA 3 WRGN 8-97 TAF 2-99 -723927 34.21N 119.20W KOXR 11 OXNARD CA 13 Usr Rqst 6-16 -723930 34.75N 120.57W VBG 12 VANDENBERG AFB CA 100 UA NA110 FOUS(PROF) -723940 34.90N 120.45W KSMX 10 SANTA_MARIA_PUBLIC CA 73 TAF 2-99 -723965 35.66N 120.63W KPRB 10 PASO_ROBLES_MUNI CA 255 TAF 2-99 -724010 37.50N 77.33W KRIC 10 RICHMOND/BYRD_FIELD VA 54 == TAF 2-99 -724016 38.13N 78.44W KCHO 10 CHARLOTTESVILLE VA 195 3-93 TAF 2-99 -724017 37.35N 78.43W KFVX 10 FARMVILLE VA 125 Usr Rqst 3-00 -724020 37.93N 75.48W WAL 12 WALLOPS_ISLAND_STN_(ASO VA 41 UA NA110 -724030 38.95N 77.44W KIAD 12 WASHINGTON/DULLES VA 98 UA NA110 TAF 2-99 -724033 38.27N 77.45W KEZF 12 FREDERICKSBURG/SHANNON VA 26 Usr Rqst 2-18 -724040 38.28N 76.40W NHK 10 PATUXENT_RIVER_NAS MD 12 T. Salem 2-99 -724045 38.33N 75.51W KSBY 10 SALISBURY_REGIONAL MD 16 TAF 2-99 -724050 38.84N 77.03W KDCA 10 WASHINGTON/NATIONAL VA 20 FOUS TAF 2-99 -724060 39.18N 76.67W KBWI 10 BALTIMORE/WASH_INTL MD 47 == TAF 2-99 -724066 39.70N 77.73W HGR 10 HAGERSTOWN_REGIONAL_(AS MD 215 L. Still 2-99 -724067 39.33N 76.42W KMTN 10 BALTIMORE/MARTIN MD 7 TAF 2-99 -724070 39.45N 74.57W KACY 10 ATLANTIC_CITY_INTL NJ 20 FORMER UA NA110 TAF 2-99 -724075 39.37N 75.07W KMIV 10 MILLVILLE_MUNICIPAL NJ 25 TAF 2-99 -724080 39.88N 75.25W KPHL 10 PHILADELPHIA_INTL PA 9 FOUS TAF 2-99 -724085 40.08N 75.01W KPNE 10 PHILADELPHIA_NE PA 37 TAF 2-99 -724089 39.68N 75.60W KILG 10 WILMINGTON_AIRPORT DE 24 TAF 2-99 -724095 40.28N 74.82W KTTN 10 TRENTON/MERCER CO. NJ 65 Usr Rqst 3-00 -724096 40.02N 74.60W KWRI 11 MCGUIRE_AFB NJ -999 NAM MERGE 1-16 -724097 40.80N 74.42W KMMU 10 MORRISTOWN_MUNI NJ 57 METAR/TAF 2-99 -724100 37.33N 79.19W KLYH 10 LYNCHBURG/P._GLENN VA 286 TAF 2-99 -724106 36.57N 79.33W KDAN 10 DANVILLE_REGIONAL VA 174 TAF 2-99 -724110 37.32N 79.97W KROA 12 ROANOKE_MUNICIPAL VA 358 FOUS TAF 2-99 -724115 37.95N 79.83W HSP 12 HOT_SPRINGS/INGALLS VA 1156 Usr Rqst 2-18 -724120 37.78N 81.12W KBKW 10 BECKLEY_MEMORIAL WV 766 TAF 2-99 -724125 37.30N 81.19W KBLF 10 BLUEFIELD/MERCER_CO WV 871 TAF 2-99 -724127 37.87N 80.40W KLWB 10 LEWISBURG/GREENBRIE WV 702 TAF 2-99 -724140 38.37N 81.60W KCRW 10 CHARLESTON/KANAWHA WV 299 TAF 2-99 -724170 38.88N 79.85W KEKN 12 ELKINS/RANDOLPH_FLD WV 609 3-93 TAF 2-99 -724175 39.30N 80.23W KCKB 10 CLARKSBURG/BENEDUM WV 367 TAF 2-99 -724176 39.65N 79.92W KMGW 10 MORGANTOWN/HART_FLD WV 380 TAF 2-99 -724177 39.40N 77.98W KMRB 10 MARTINSBURG_RGNL WV 170 T. Salem 2-99 TAF 2-99 -724210 39.05N 84.67W KCVG 12 CINCINNATI/COVINGTO KY 267 WSR88D 3-93 TAF 2-99 -724220 38.03N 84.60W KLEX 10 LEXINGTON/BLUEGRASS KY 301 TAF 2-99 -724230 38.18N 85.73W KSDF 12 LOUISVILLE/STANDIFO KY 149 FOUS TAF 2-99 -724236 37.59N 83.32W KJKL 10 JACKSON/J._CARROLL KY 421 MOS/Weiss 2-99 -724237 37.75N 87.16W KOWB 11 OWENSBORO KY -999 NAM MERGE 1-16 -724240 37.91N 85.97W KFTK 11 FORT KNOX/GOODMAN FLD KY -999 NAM MERGE 1-16 -724243 37.08N 84.08W KLOZ 12 LONDON-CORBIN_ARPT& KY 369 3-93 TAF 2-99 -724250 38.37N 82.55W KHTS 12 HUNTINGTON/TRI_STAT WV 255 FORMER UA NA110 TAF 2-99 -724260 39.42N 83.83W ILN 12 WILMINGTON OH 317 UA NA110 2-96 -724265 38.25N 86.95W KHNB 11 HUNTINGBURG IN 161 Usr Rqst 2-18 -724273 39.34N 81.43W KPKB 10 PARKERSBURG/WILSON& WV 262 TAF 2-99 -724275 40.18N 80.65W KHLG 10 WHEELING/OHIO_CO. WV 365 TAF 2-99 -724280 40.00N 82.88W KCMH 10 PORT_COLUMBUS_INTL OH 249 == TAF 2-99 -724285 39.82N 82.93W KLCK 11 COLUMBUS/RICKENBACKER OH 227 TAF 8-09 -724286 39.95N 81.90W KZZV 10 ZANESVILLE_MUNI OH 274 TAF 2-99 -724290 39.90N 84.20W KDAY 10 DAYTON/JAMES_M_COX OH 306 DiStefano 2-99 TAF 2-99 -724297 39.09N 84.42W KLUK 10 CINCINNATI/LUNKIN OH 147 TAF 2-99 -724320 38.05N 87.53W KEVV 10 EVANSVILLE_REGIONAL IN 118 TAF 2-99 -724330 38.65N 88.97W SLO 12 SALEM IL 175 == -724336 37.78N 89.25W KMDH 11 CARBONDALE IL -999 NAM MERGE 1-16 -724340 38.75N 90.37W KSTL 10 ST._LOUIS/LAMBERT MO 172 TAF 2-99 -724345 38.66N 90.65W KSUS 10 SPIRIT_OF_ST_LOUIS MO 141 TAF 2-99 -724350 37.07N 88.77W KPAH 12 PADUCAH/BARKLEY___& KY 120 FORMER UA WSR88D NA110 TAF 2-99 -724354 37.05N 84.61W KSME 11 SOMERSET/LK_CUMBERLAND KY 283 Usr Rqst 9-16 -724373 39.45N 87.32W KHUF 10 TERRE_HAUTE/HULMAN& IN 178 TAF 2-99 -724375 39.15N 86.62W KBMG 11 BLOOMINGTON/MONROE_(ASO IN 258 SPC 8-09 -724380 39.73N 86.27W KIND 10 INDIANAPOLIS_INTL IN 246 FOUS TAF 2-99 -724386 40.41N 86.93W KLAF 10 LAFAYETTE/PURDUE_U IN 185 TAF 2-99 -724390 39.84N 89.67W KSPI 10 SPRINGFIELD/CAPITAL IL 187 TAF 2-99 -724396 39.95N 91.20W KUIN 10 QUINCY_MUNI/BALDWIN IL 234 TAF 2-99 -724397 40.48N 88.92W KBMI 11 BLOOMINGTON/NORMAL IL 267 Usr Rqst 2-12 -724398 40.12N 87.60W KDNV 11 DANVILLE/VERMILLION APT IL -999 NAM MERGE 1-16 -724400 37.23N 93.38W KSGF 12 SPRINGFLD_MUNI(AWS) MO 387 GCIP 9-95 TAF 2-99 -724450 38.82N 92.22W KCOU 12 COLUMBIA_REGIONAL MO 274 == TAF 2-99 -724454 37.77N 90.43W KFAM 10 FARMINGTON_AIRPORT MO 288 MOS/Weiss 2-99 -724456 38.13N 91.77W KVIH 11 ROLLA/VICHY_AIRPORT MO 350 Usr Rqst 11-11 -724459 38.10N 92.55W KAIZ 11 OSAGE BEACH MO 265 Usr Rqst 2-18 -724460 39.32N 94.72W KMCI 10 KANSAS_CITY_INTL MO 312 == TAF 2-99 -724463 39.12N 94.60W KMKC 10 KANSAS_CITY_MUNI__& MO 231 TAF 2-99 -724475 38.83N 94.89W KIXD 11 OLATHE/NEW CENTURY APT KS 331 Usr Rqst 9-16 -724490 39.77N 94.92W KSTJ 10 ST_JOSEPH/ROSECRANS MO 249 TAF 2-99 -724500 37.65N 97.43W KICT 10 WICHITA/CONTINE(AW) KS 408 == TAF 2-99 -724506 38.07N 97.87W KHUT 10 HUTCHINSON_MUNI KS 470 TAF 2-99 -724507 37.66N 95.48W KCNU 10 CHANUTE/MARTIN_JOHN KS 305 TAF 2-99 -724509 38.06N 97.28W KEWK 11 NEWTON KS 467 Usr Rqst 2-18 -724510 37.77N 99.97W KDDC 12 DODGE_CITY(AWOS) KS 790 UA NA110 FOUS TAF 2-99 -724515 37.93N 100.72W KGCK 10 GARDEN_CITY_MUNI KS 881 TAF 2-99 -724516 37.04N 100.97W KLBL 11 LIBERAL KS -999 NAM MERGE 1-16 -724517 38.34N 98.86W KGBD 11 GREAT BEND KS -999 NAM MERGE 1-16 -724518 38.85N 99.27W KHYS 12 HAYS_MUNI_(AWOS) KS 609 3-93 -724520 37.27N 98.55W KP28 11 MEDICINE LODGE KS -999 NAM MERGE 1-16 -724555 39.13N 96.67W KMHK 10 MANHATTAN_MUNICIPAL KS 322 TAF 2-99 -724556 38.33N 96.19W KEMP 10 EMPORIA KS 453 NWS TOP 11-2010 -724560 39.07N 95.62W KTOP 12 TOPEKA/BILLARD_MUNI KS 270 UA NA110 FOUS TAF 2-99 -724565 38.95N 95.67W KFOE 10 TOPEKA/FORBES_FIELD KS 329 TAF 2-99 -724580 39.55N 97.65W KCNK 10 CONCORDIA/BLOSSER KS 453 NWS TOP 11-2010 -724585 38.87N 98.82W KRSL 10 RUSSELL_MUNICIPAL KS 568 TAF 2-99 -724586 38.80N 97.65W KSLN 10 SALINA_MUNICIPAL KS 388 TAF 2-99 -724604 37.01N 101.88W KEHA 11 ELKHART KS -999 NAM MERGE 1-16 -724620 37.45N 105.87W KALS 10 ALAMOSA_MUNI(AWOS) CO 2299 TAF 2-99 -724625 37.15N 107.75W KDRO 10 DURANGO/LA_PLATA_CO CO 2038 TAF 2-99 -724627 37.95N 107.90W KTEX 11 TELLURIDE CO -999 NAM MERGE 1-16 -724635 38.05N 103.52W LHX 10 LA_JUNTA_MUNICIPAL_(ASO CO 1292 SOO 8-97 -724636 38.07N 102.68W LAA 10 LAMAR_MUNICIPAL_(ASOS) CO 1129 SOO 8-97 -724640 38.28N 104.52W KPUB 10 PUEBLO_MEMORIAL(AW) CO 1439 TAF 2-99 -724650 39.37N 101.70W KGLD 10 GOODLAND/RENNER(AW) KS 1124 == TAF 2-99 -724655 39.38N 99.83W KHLC 11 HILL CITY KS -999 NAM MERGE 1-16 -724660 38.82N 104.72W KCOS 10 COLORADO_SPRINGS CO 1881 TAF 2-99 -724666 39.57N 104.85W KAPA 10 DENVER/CENTENNIAL CO 1793 TAF 2-99 -724675 39.65N 106.92W KEGE 10 EAGLE_CO._REGIONAL CO 1993 TAF 2-99 -724676 39.22N 106.87W KASE 10 ASPEN/SARDY_FIELD CO 2382 TAF 2-99 -724677 38.53N 106.93W KGUC 10 GUNNISON_CO._(AWOS) CO 2339 FORMER UA TAF 2-99 -724680 38.70N 104.77W FCS 10 FORT CARSON CO 1789 == -724690 39.75N 104.87W DEN 12 DENVER/STAPLETON CO 1611 UA NA110 FOUS -724698 40.17N 103.22W AKO 11 AKRON/WASHINGTON_CO_ASO CO 1431 SPC 8-09 -724699 39.91N 105.12W KBJC 10 BROOMFIELD/JEFFCO CO 1724 TAF 2-99 -724700 39.62N 110.75W PUC 11 PRICE/CARBON_(ASOS) UT 1805 NWS SLC 4-05 -724723 37.62N 109.47W 4BL 10 BLANDING__________& UT 1840 WRGN 8-97 -724735 38.37N 110.72W 4HV 10 HANKSVILLE UT 1314 Weiss 2-99 -724754 37.04N 113.50W KSGU 10 SAINT_GEORGE_(AWOS) UT 896 MOS/Weiss 2-99 -724755 37.70N 113.10W KCDC 10 CEDAR_CITY_MUNI UT 1714 TAF 2-99 -724756 37.70N 112.15W KBCE 10 BRYCE_CANYON UT 2312 TAF 2-99 -724760 39.12N 108.53W KGJT 12 GRAND_JUNCTION CO 1475 UA NA110 FOUS TAF 2-99 -724765 38.50N 107.90W KMTJ 10 MONTROSE_CO._ARPT CO 1755 TAF 2-99 -724767 37.30N 108.67W KCEZ 11 CORTEZ CO -999 NAM MERGE 1-16 -724768 40.43N 104.63W KGXY 11 GREELEY CO -999 NAM MERGE 1-16 -724769 40.45N 105.01W KFNL 11 FORT COLLINS/LOVELAND CO -999 NAM MERGE 1-16 -724773 39.00N 110.17W U28 10 GREEN_RIVER_RANGE_& UT 1241 WRGN 8-97 -724776 38.76N 109.75W KCNY 11 MOAB/CANYONLANDS UT -999 NAM MERGE 1-16 -724795 39.33N 112.58W U24 10 DELTA UT 1414 Weiss 2-99 -724796 41.78N 111.85W KLGU 10 LOGAN-CACHE_AIRPORT UT 1358 TAF 3-01 -724800 37.37N 118.37W KBIH 10 BISHOP_AIRPORT CA 1263 WRGN 8-97 TAF 2-99 -724815 37.28N 120.52W KMCE 10 MERCED/MACREADY_FLD CA 47 TAF 2-99 -724830 38.52N 121.50W KSAC 10 SACRAMENTO/EXECUTIV CA 8 == TAF 2-99 -724835 38.55N 121.30W KMHR 11 MATHER_FIELD CA 29 TAF 8-09 -724839 38.70N 121.58W KSMF 10 SACRAMENTO_METRO CA 7 TAF 2-99 -724855 38.05N 117.08W KTPH 10 TONOPAH_AIRPORT NV 1654 TAF 2-99 -724856 38.55N 118.63W KHTH 10 HAWTHORNE MUNICIPAL CA 1285 NWS RNO 3-00 -724860 39.28N 114.85W KELY 12 ELY/YELLAND_FLD NV 1909 FORMER UA NA110 TAF 2-99 -724870 37.62N 114.52W KP38 10 CALIENTE_(AMOS) NV 1335 MOS/Weiss 2-99 -724880 39.50N 119.78W KRNO 10 RENO/CANNON_INTL NV 1341 FOUS TAF 2-99 -724890 39.57N 119.79W KREV 12 RENO NV 1515 UA 3-02 -724915 36.58N 121.85W KMRY 10 MONTEREY_PENINSULA CA 77 == TAF 2-99 -724917 36.66N 121.60W KSNS 10 SALINAS_MUNICIPAL CA 26 TAF 2-99 -724920 37.90N 121.25W KSCK 10 STOCKTON_METRO CA 8 TAF 2-99 -724927 37.70N 121.82W KLVK 11 LIVERMORE_MUNICIPAL CA -999 NAM MERGE 1-16 -724930 37.73N 122.22W KOAK 12 OAKLAND CA 3 UA NA110 TAF 2-99 -724940 37.62N 122.38W KSFO 10 SAN_FRANCISCO_INTL CA 5 FOUS TAF 2-99 -724945 37.37N 121.93W KSJC 10 SAN_JOSE_INTL_ARPT CA 17 TAF 2-99 -724957 38.52N 122.82W KSTS 10 SANTA_ROSA_(AWOS) CA 38 TAF 2-99 -725010 40.87N 72.86W OKX 12 BROOKHAVEN NY 20 NEW UPA -725020 40.70N 74.17W KEWR 10 NEWARK_INTL_AIRPORT NJ 9 TAF 2-99 -725025 40.84N 74.07W KTEB 10 TETERBORO_AIRPORT NJ 3 TAF 2-99 -725030 40.77N 73.90W KLGA 10 NEW_YORK/LA_GUARDIA NY 9 FOUS TAF 2-99 -725035 40.80N 73.10W KISP 10 ISLIP/MACARTHUR NY 30 TAF 2-99 -725036 41.63N 73.87W KPOU 10 POUGHKEEPSIE NY 51 3-93 TAF 2-99 -725037 41.07N 73.69W KHPN 10 WHITE_PLAINS NY 134 TAF 2-99 -725038 41.50N 74.10W KSWF 10 NEWBURGH/STEWART NY 150 METAR/TAF 2-99 -725040 41.17N 73.12W KBDR 10 BRIDGEPORT/SIKORSKI CT 5 TAF 2-99 -725045 41.27N 72.87W KHVN 10 NEW_HAVEN/TWEED CT 4 METAR/TAF 2-99 -725046 41.33N 72.05W KGON 10 GROTON/NEW_LONDON CT 3 METAR/TAF 2-99 -725058 41.17N 71.58W BID 00 BLOCK_ISLAND_(AWOS) RI 33 T. Salem 2-99 -725060 41.65N 70.52W FMH 11 OTIS ANGB 40 -725063 41.25N 70.07W KACK 20 NANTUCKET_MEMORIAL& MA 15 TAF 2-99 -725064 41.92N 70.73W KPYM 10 PLYMOUTH MA 45 NEPS 6-02 -725065 41.68N 70.97W KEWB 10 NEW_BEDFORD_MUNI MA 24 METAR/TAF 2-99 -725067 41.67N 70.28W KHYA 10 HYANNIS/POLANDO_FLD MA 16 TAF 2-99 -725070 41.73N 71.43W KPVD 10 PROVIDENCE/GREEN RI 19 TAF 2-99 -725074 41.60N 71.42W KOQU 10 N._KINGSTON/QUONSET RI 6 METAR/TAF 2-99 -725080 41.93N 72.68W KBDL 10 HARTFORD/BRADLEY CT 55 TAF 2-99 -725084 41.73N 72.18W IJD 10 WILLIMANTIC CT 76 User Rqst 3-00 -725085 42.57N 72.27W KORE 10 ORANGE_(ASOS) MA 164 NEPS 6-02 -725087 41.73N 72.65W KHFD 10 HARTFORD/BRAINARD CT 6 TAQ SITE 6-02 -725088 42.58N 70.92W KBVY 10 BEVERLY_MUNICIPAL MA 33 METAR/TAF 2-99 -725090 42.37N 71.03W KBOS 10 BOSTON/LOGAN_INTL_& MA 9 FOUS TAF 2-99 -725095 42.27N 71.87W KORH 10 WORCESTER_(AMOS) MA 308 TAF 2-99 -725103 40.38N 75.97W KRDG 10 READING/SPAATZ_FLD& PA 105 == TAF 2-99 -725115 40.20N 76.76W KMDT 10 MIDDLETOWN/OLMSTED PA 94 TAF 2-99 -725116 40.12N 76.29W KLNS 12 LANCASTER PA 123 TAF 5-11 -725125 41.18N 78.90W KDUJ 10 DU_BOIS_(AWOS) PA 554 PSU STDY 9/96-9/97 TAF 2-99 -725126 40.30N 78.32W KAOO 12 ALTOONA/BLAIR_CO. PA 458 FOUS 3-93 TAF 2-99 -725127 40.32N 78.83W KJST 10 JOHNSTOWN/CAMBRIA PA 696 TAF 2-99 -725128 40.84N 77.85W KUNV 10 STATE_COLLEGE PA 378 TAF 2-99 -725130 41.33N 75.73W KAVP 10 WILKES-BARRE/SCRANT PA 289 LES FRCSTNG 9/96 TAF 2-99 -725140 41.25N 76.92W KIPT 10 WILLIAMSPORT PA 160 FOUS TAF 2-99 -725145 41.70N 74.80W KMSV 11 MONTICELLO NY 428 Usr Rqst 8-09 -725150 42.22N 75.98W KBGM 10 BINGHAMTON/BROOME NY 497 == TAF 2-99 -725155 42.48N 76.44W KITH 10 ITHACA/TOMPKINS_CO. NY 335 TAF 2-99 -725156 42.17N 76.90W KELM 10 ELMIRA/CORNING_RGNL NY 291 LES FRCSTNG 9/96 TAF 2-99 -725165 43.53N 72.95W RUT 10 RUTLAND_STATE(AWOS) VT 240 ERHQ 8-97 -725170 40.65N 75.43W KABE 10 ALLENTOWN-BETHLEHEM PA 117 TAF 2-99 -725180 42.75N 73.80W KALB 12 ALBANY_COUNTY_ARPT NY 89 UA NA110 FOUS TAF 2-99 -725185 43.33N 73.62W KGFL 10 GLEN_FALLS/WARREN NY 100 TAF 2-99 -725186 44.68N 75.47W OGS 10 OGDENSBURG_INTL NY 91 ERHQ 8-97 -725190 43.12N 76.12W KSYR 10 SYRACUSE/HANCOCK NY 124 FOUS TAF 2-99 -725197 43.15N 75.37W KUCA 10 UTICA/ONEIDA_CO. NY 226 TAF 2-99 -725200 40.50N 80.22W KPIT 12 PITTSBURGH_INTL PA 373 UA NA110 FOUS TAF 2-99 -725204 40.77N 80.40W KBVI 10 BEAVER_FALLS_ARPT PA 382 TAF 2-99 -725205 40.34N 79.93W KAGC 10 PITTSBURGH/ALLEGHEN PA 382 TAF 2-99 -725207 40.28N 79.40W KLBE 10 LATROBE/WESTMORLAND PA 361 TAF 2-99 -725210 40.91N 81.43W KCAK 10 AKRON-CANTON_RGNL OH 377 TAF 2-99 -725235 42.15N 79.26W KJHW 10 JAMESTOWN_(AWOS) NY 525 TAF 2-99 -725240 41.42N 81.87W KCLE 10 CLEVELAND/HOPKINS OH 245 TAF 2-99 -725246 40.82N 82.52W KMFD 10 MANSFIELD/LAHM_MUNI OH 395 TAF 2-99 -725250 41.27N 80.67W KYNG 10 YOUNGSTOWN_MUNI OH 361 TAF 2-99 -725260 42.08N 80.18W KERI 10 ERIE_INTL_AIRPORT PA 225 3-93 TAF 2-99 -725266 41.80N 78.62W KBFD 10 BRADFORD_REGIONAL PA 653 PSU STDY 9/96-9/97 TAF 2-99 -725267 41.38N 79.87W KFKL 10 FRANKLIN(AWOS) PA 469 TAF 2-99 -725280 42.93N 78.73W KBUF 12 BUFFALO_INTL_ARPT NY 215 UA NA110 FOUS TAF 2-99 -725287 43.10N 78.94W KIAG 10 NIAGARA_FALLS_INTL NY 180 TAF 2-99 -725290 43.12N 77.67W KROC 10 ROCHESTER/MONROE_CO NY 169 T. Salem 2-99 TAF 2-99 -725300 41.98N 87.90W KORD 12 CHICAGO/O'HARE_ARPT IL 205 FOUS TAF 2-99 -725305 41.92N 88.25W KDPA 10 W._CHICAGO/DU_PAGE IL 231 TAF 2-99 -725315 40.03N 88.28W KCMI 10 CHAMPAIGN/URBANA IL 230 TAF 2-99 -725316 39.83N 88.87W KDEC 10 DECATUR_AIRPORT IL 208 TAF 2-99 -725320 40.66N 89.68W KPIA 12 PEORIA_REGIONAL IL 202 FORMER UA NA110 TAF 2-99 -725326 41.74N 89.68W KSQI 11 STERLING/ROCK FALLS IL -999 NAM MERGE 1-16 -725330 41.00N 85.20W KFWA 10 FORT_WAYNE/BAER_FLD IN 252 TAF 2-99 -725336 40.25N 85.40W MIE 10 MUNCIE/JOHNSON_FLD IN 286 DiStefano 2-99 -725337 41.62N 87.42W KGYY 10 GARY IN 179 TAF 1-01 -725340 41.78N 87.75W KMDW 10 CHICAGO/MIDWAY IL 190 TAF 2-99 -725346 41.87N 87.60W KCGX 10 CHICAGO/MEIGS IL 181 METAR/TAF 2-99 -725347 42.42N 87.87W KUGN 11 WAUKEGAN IL 222 Usr Rqst 7-16 -725350 41.70N 86.32W KSBN 12 SOUTH_BEND/ST._JOE IN 236 3-93 TAF 2-99 -725360 41.60N 83.80W KTOL 10 TOLEDO_EXPRESS OH 211 TAF 2-99 -725366 41.02N 83.67W KFDY 12 FINDLAY(AWOS) OH 247 3-93 TAF 2-99 -725370 42.23N 83.33W KDTW 10 DETROIT_METRO MI 202 FOUS TAF 2-99 -725375 42.42N 83.02W KDET 10 DETROIT_CITY_ARPT MI 191 TAF 2-99 -725384 42.92N 82.53W KPHN 10 ST.CLAIR_COUNTY_INT MI 198 METAR/TAF 2-99 -725387 47.45N 87.90W KP59 00 COPPER HARBOR MI 190 NWS KMQT 12-01 -725390 42.77N 84.60W KLAN 10 LANSING/CAPITAL MI 266 TAF 2-99 -725395 42.27N 84.47W KJXN 10 JACKSON/REYNOLDS MI 305 TAF 2-99 -725396 42.30N 85.25W KBTL 10 BATTLE_CREEK MI 290 TAF 2-99 -725430 42.20N 89.10W KRFD 10 ROCKFORD IL 226 TAF 2-99 -725440 41.45N 90.52W KMLI 10 MOLINE/QUAD_CITY IL 181 TAF 2-99 -725450 41.88N 91.70W KCID 12 CEDAR_RAPIDS_MUNI IA 265 GCIP 9-95 TAF 2-99 -725455 40.78N 91.13W KBRL 10 BURLINGTON_MUNI IA 213 TAF 2-99 -725460 41.53N 93.65W KDSM 10 DES_MOINES_INTL IA 294 FOUS TAF 2-99 -725465 41.10N 92.45W KOTM 10 OTTUMWA_INDUSTRIAL IA 258 TAF 2-99 -725467 40.75N 95.41W KSDA 11 SHENANDOAH IA -999 NAM MERGE 1-16 -725470 42.40N 90.70W KDBQ 10 DUBUQUE_MUNICIPAL IA 329 3-93 TAF 2-99 -725476 43.28N 91.74W KDEH 11 DECORAH IA -999 NAM MERGE 1-16 -725480 42.55N 92.40W KALO 10 WATERLOO_MUNICIPAL IA 268 TAF 2-99 -725485 43.15N 93.33W KMCW 10 MASON_CITY_MUNI IA 370 TAF 2-99 -725490 42.55N 94.20W KFOD 11 FORT DODGE IA 355 Usr Rqst 12-12 -725496 42.60N 95.23W SLB 11 STORM LAKE IA 454 SPC 8-09 -725500 41.30N 95.90W KOMA 10 OMAHA/EPPLEY_FIELD& NE 299 TAF 2-99 -725510 40.84N 96.75W KLNK 12 LINCOLN_MUNICIPAL NE 362 GCIP 9-95 TAF 2-99 -725515 40.30N 96.75W KBIE 11 BEATRICE NE -999 NAM MERGE 1-16 -725520 40.97N 98.32W KGRI 10 GRAND_ISLAND(AWOS) NE 566 TAF 2-99 -725524 41.62N 98.95W ODX 11 ORD/SHARP_FIELD_(ASOS) NE 631 SPC 8-09 -725526 40.73N 99.00W KEAR 11 KEARNEY NE -999 NAM MERGE 1-16 -725527 41.76N 96.18W KTQE 11 TEKAMAH NE 313 Usr Rqst 7-16 -725533 40.08N 95.60W FNB 11 FALLS_CITY/BRENNER NE 300 NWS OKX 2-06 -725555 41.44N 99.64W KBBW 11 BROKEN BOW NE -999 NAM MERGE 1-16 -725560 41.98N 97.43W KOFK 10 NORFOLK/STEFAN_FLD NE 473 TAF 2-99 -725565 41.45N 97.34W KOLU 11 COLUMBUS NE -999 NAM MERGE 1-16 -725566 42.47N 98.69W KONL 11 O'NEILL NE -999 NAM MERGE 1-16 -725570 42.40N 96.38W KSUX 12 SIOUX_CITY_MUNI IA 336 == TAF 2-99 -725580 41.32N 96.37W OAX 12 OMAHA/VALLEY NE 350 NEW UPA -725610 41.10N 102.98W SNY 10 SIDNEY_MUNI_(ASOS) NE 1312 3-93 -725620 41.13N 100.68W KLBF 12 N._PLATTE/LEE_BIRD NE 849 UA NA110 FOUS TAF 2-99 -725626 40.51N 101.62W KIML 11 IMPERIAL NE -999 NAM MERGE 1-16 -725628 40.45N 99.33W KHDE 11 HOLDREGE NE -999 NAM MERGE 1-16 -725635 42.05N 102.80W KAIA 11 ALLIANCE NE 1198 Usr Rqst 4-12 -725636 42.83N 103.10W KCDR 10 CHADRON_MUNICIPAL NE 1005 TAF 2-99 -725640 41.15N 104.82W KCYS 10 CHEYENNE/WARREN_AFB WY 1872 FOUS TAF 2-99 -725645 41.32N 105.67W KLAR 10 LARAMIE/GEN._BREES WY 2218 TAF 2-99 -725650 39.87N 104.67W KDEN 10 DENVER_INTNL_ARPT CO 1656 TAF 2-99 -725660 41.87N 103.60W KBFF 10 SCOTTSBLUFF/HEILIG NE 1206 FOUS 3-93 TAF 2-99 -725690 42.92N 106.47W KCPR 12 CASPER/NATRONA_INTL WY 1612 == TAF 2-99 -725705 40.43N 109.52W KVEL 10 VERNAL UT 1608 TAF 2-99 -725715 40.48N 107.22W KHDN 10 HAYDEN/YAMPA_(AWOS) CO 2012 TAF 2-99 -725717 39.53N 107.73W KRIL 11 RIFLE CO -999 NAM MERGE 1-16 -725720 40.78N 111.97W KSLC 12 SALT_LAKE_CITY_INTL UT 1288 UA NA110 FOUS TAF 2-99 -725724 40.22N 111.72W KPVU 10 PROVO_MUNI_(AWOS) UT 1369 TAF 2-99 -725744 41.60N 109.07W KRKS 10 ROCK_SPRINGS______& WY 2060 TAF 2-99 -725745 41.80N 107.20W KRWL 10 RAWLINS_MUNICIPAL WY 2077 TAF 2-99 -725750 41.20N 112.02W KOGD 10 OGDEN-HINCKLEY_MUNI UT 1362 TAF 2-99 -725760 42.82N 108.73W KLND 10 LANDER/HUNT_FIELD WY 1694 TAF 2-99 -725765 43.07N 108.47W KRIW 12 RIVERTON_REGIONAL WY 1684 FORMER UA 7-97 TAF 2-99 -725775 41.28N 111.03W EVW 12 EVANSTON/BURNS_FLD WY 2183 NWS SLC 4-05 -725776 43.60N 110.73W KJAC 10 JACKSON_HOLE_(AWOS) WY 1964 TAF 2-99 -725780 42.92N 112.60W KPIH 10 POCATELLO_MUNICIPAL ID 1365 TAF 2-99 -725785 43.52N 112.07W KIDA 10 IDAHO_FALLS/FANNING ID 1445 TAF 2-99 -725788 44.88N 116.10W MYL 10 MC_CALL_(ASOS) ID 1531 WRGN 8-97 -725805 40.07N 118.57W KLOL 10 LOVELOCK/DERBY_FLD NV 1190 TAF 2-99 -725810 40.73N 114.03W KENV 10 WENDOVER_(AUT) UT 1292 WRGN 8-97 TAF 2-99 -725820 40.87N 115.73W KLKN 10 ELKO NV 1608 UA 3-02 -725825 40.83N 115.78W KEKO 10 ELKO(AWOS) NV 1565 UA NA110 TAF 2-99 -725827 41.67N 115.78W AWH 10 WILDHORSE_RES/ELKO NV 1902 WRGN 8-97 -725830 40.90N 117.80W KWMC 10 WINNEMUCCA_MUNI NV 1315 TAF 2-99 -725837 40.38N 120.57W KSVE 10 SUSANVILLE_MUNI CA 1263 NWS RNO 2-00 -725840 39.28N 120.70W BLU 10 BLUE CANYON CA 1609 WRGN 8-97 -725846 39.32N 120.13W KTRK 10 TRUCKEE-TAHOE CA 1798 TAF 2-99 -725847 38.90N 120.00W KTVL 10 SOUTH_LAKE_TAHOE CA 1909 TAF 2-99 -725865 43.50N 114.30W KSUN 10 HAILEY/FRIEDMAN_MEM ID 1620 WRGN 8-97 TAF 2-99 -725866 42.48N 114.48W KTWF 10 TWIN_FALLS/JOSLIN ID 1265 WRGN 8-97 TAF 2-99 -725867 42.55N 113.77W KBYI 10 BURLEY_MUNICIPAL ID 1265 TAF 2-99 -725895 42.15N 121.73W KLMT 10 KLAMATH_FALLS/KINGS OR 1247 WRGN 8-97 TAF 2-99 -725905 39.13N 123.20W KUKI 10 UKIAH_MUNI_(AWOS) CA 187 TAF 2-99 -725910 40.15N 122.25W KRBL 10 RED_BLUFF_MUNICIPAL CA 108 TAF 2-99 -725920 40.50N 122.30W KRDD 10 REDDING_MUNICIPAL_& CA 153 FOUS 3-93 TAF 2-99 -725945 40.98N 124.10W KACV 10 ARCATA/EUREKA_ARPT CA 66 WRGN 8-97 TAF 2-99 -725946 41.78N 124.23W KCEC 10 CRESCENT_CITY CA 17 WRGN 8-97 TAF 2-99 -725958 41.50N 120.53W KAAT 10 ALTURAS CA 1341 NWS RNO 3-00 -725970 42.37N 122.87W KMFR 12 MEDFORD/JACKSON_CO. OR 405 UA NA110 FOUS TAF 2-99 -726050 43.20N 71.50W KCON 10 CONCORD_MUNICIPAL NH 105 FOUS 3-93 TAF 2-99 -726055 43.08N 70.82W KPSM 10 PEASE_AFB/PORTSMOUT NH 31 METAR/TAF 2-99 -726060 43.65N 70.32W KPWM 10 PORTLAND_INTL_JET ME 19 NA110 FOUS TAF 2-99 -726064 43.40N 70.72W KSFM 11 SANFORD_MUNI_(AWOS) ME 74 TAF 8-09 -726077 44.45N 68.37W KBHB 10 BAR_HARBOR_(AWOS) ME 26 MOS/Jensenius 2-99 -726079 44.07N 69.10W KRKD 10 ROCKLAND/KNOX(AWOS) ME 17 MOS/Jensenius 2-99 -726080 44.92N 67.00W KEPO 10 EASTPORT ME 23 2-95 -726083 47.28N 68.32W KFVE 10 FRENCHVILLE ME 301 METAR/TAF 2-99 -726088 44.80N 68.83W KBGR 10 BANGOR_INTL_ARPT__& ME 59 FOUS 3-93 TAF 2-99 -726115 43.35N 72.52W VSF 10 SPRINGFIELD/HARTNES_(AS VT 176 ERHQ 8-97 -726116 43.63N 72.30W KLEB 12 LEBANON_MUNICIPAL NH 182 LIKE NGM 3-96 TAF 2-99 -726134 44.36N 71.55W KHIE 11 WHITEFIELD NH 327 Usr Rqst 11-11 TAF -726140 44.42N 72.02W 1V4 10 ST._JOHNSBURY_(ASOS) VT 214 ERHQ 8-97 -726145 44.20N 72.57W KMPV 10 BARRE-MONTPELIER VT 355 ERHQ 8-97 TAF 2-99 -726155 43.57N 71.42W KLCI 11 LACONIA NH 166 Usr Rqst 4-16 -726160 44.58N 71.18W KBML 10 BERLIN_MUNICIPAL NH 353 MOS/Jensenius 2-99 -726165 42.90N 72.27W KEEN 11 KEENE/DILLANT NH 149 Usr Rqst 4-16 -726170 44.47N 73.15W KBTV 10 BURLINGTON_INTL VT 104 FOUS TAF 2-99 -726180 44.53N 70.53W KRUM 10 RUMFORD ME 205 3-96 -726184 44.05N 70.28W KLEW 11 AUBURN-LEWISTON ME 88 TAF 8-09 -726185 44.32N 69.80W KAUG 10 AUGUSTA_STATE_ARPT ME 107 TAF 2-99 -726190 45.47N 69.58W KGNR 10 GREENVILLE_(AMOS)_& ME 316 MOS/Jensenius 2-99 -726196 45.65N 68.68W KMLT 10 MILLINOCKET_MUNI ME 124 MOS/Jensenius 2-99 -726220 44.65N 73.47W PBG 11 PLATTSBURGH 0 -726223 44.93N 74.85W KMSS 10 MASSENA/RICHARDS__& NY 65 ERHQ 8-97 TAF 2-99 -726227 44.00N 76.01W KART 10 WATERTOWN_INTL_ARPT NY 99 TAF 2-99 -726228 44.38N 74.19W KSLK 10 SARANAC_LAKE/ADIRON NY 507 ERHQ 8-97 TAF 2-99 -726320 42.70N 83.47W DTX 10 DETROIT/PONTIAC MI 319 UA GCIP 9-95 -726340 44.90N 84.72W APX 10 GAYLORD MI 447 UA 7-97 -726350 42.88N 85.52W KGRR 10 GRAND_RAPIDS_INTL MI 245 WSR88D 3-93 TAF 2-99 -726355 42.14N 86.44W KBEH 11 BENTON_HARBOR/ROSS MI 196 Usr Rqst 2-16 -726357 42.23N 85.55W KAZO 10 KALAMAZOO_INTL_ARPT MI 266 TAF 2-99 -726360 43.17N 86.25W KMKG 10 MUSKEGON MI 193 TAF 2-99 -726370 42.97N 83.75W KFNT 12 FLINT/BISHOP_INTL MI 233 FORMER UA NA110 TAF 2-99 -726375 42.67N 83.42W KPTK 10 PONTIAC-OAKLAND MI 299 METAR/TAF 2-99 -726379 43.53N 84.08W KMBS 10 SAGINAW/TRI_CITY MI 204 TAF 2-99 -726380 44.36N 84.67W KHTL 11 HOUGHTON_LAKE_ARPT MI 351 Usr Rqst 6-16 -726384 44.28N 85.42W KCAD 12 CADILLAC/WEXFORD_CO MI 402 KGRR 1-02 -726385 44.28N 86.25W KMBL 12 MANISTEE MI 189 TAF 10-11 -726387 44.73N 85.58W KTVC 10 TRAVERSE_CITY/CHERR MI 190 3-93 TAF 2-99 -726390 45.07N 83.57W KAPN 10 ALPENA_CO._REGIONAL MI 211 == TAF 2-99 -726395 44.45N 83.40W KOSC 11 WURTSMITH_AFB MI 193 Usr Rqst 6-16 -726400 42.95N 87.90W KMKE 12 MILWAUKEE/MITCHELL WI 211 FOUS TAF 2-99 -726410 43.13N 89.33W KMSN 12 MADISON/DANE_RGNL WI 264 == TAF 2-99 -726415 42.62N 89.04W KJVL 11 JANESVILLE/DOOR_C WI -999 NAM MERGE 1-16 -726416 43.21N 90.18W KLNR 11 LONE ROCK WI -999 NAM MERGE 1-16 -726430 43.87N 91.25W KLSE 10 LA_CROSSE_MUNICIPAL WI 202 WSR88D 3-93 TAF 2-99 -726435 44.87N 91.48W KEAU 10 EAU_CLAIRE_CO._ARPT WI 276 SOO 8-97 TAF 2-99 -726440 43.92N 92.50W KRST 10 ROCHESTER_MUNICIPAL MN 402 SOO 8-97 TAF 2-99 -726450 44.48N 88.13W KGRB 12 GREEN_BAY/STRAUBEL WI 214 UA NA110 FOUS TAF 2-99 -726455 44.13N 87.68W KMTW 11 MANITOWOC_CO_APT WI -999 NAM MERGE 1-16 -726456 43.98N 88.55W KOSH 10 OSHKOSH/WITTMAN_FLD WI 246 METAR/TAF 2-99 -726463 44.93N 89.63W KAUW 10 WAUSAU_MUNICIPAL__& WI 366 J Eise 2-99 TAF 2-99 -726465 44.78N 89.67W KCWA 10 MOSINEE/CENTRAL_WI WI 389 TAF 2-99 -726480 45.73N 87.08W KESC 10 ESCANABA MI 187 NWS KMQT 12-01 -726487 45.12N 87.63W KMNM 10 MENOMINEE MI 191 NWS KMQT 12-01 -726490 44.85N 93.57W MPX 12 CHANHAUSSEN MN 289 GCIP 9-95 -726510 43.58N 96.73W KFSD 12 SIOUX_FALLS/FOSS SD 435 FOUS TAF 2-99 -726515 44.31N 96.82W KBKX 11 BROOKINGS SD -999 NAM MERGE 1-16 -726525 42.92N 97.38W KYKN 10 YANKTON(AWOS) SD 398 MOS/Weiss 2-99 -726530 43.80N 99.32W K9V9 10 CHAMBERLAIN(AMOS) SD 530 MOS/Weiss 2-99 -726540 44.38N 98.22W KHON 12 HURON_REGIONAL SD 393 FORMER UA NA110 TAF 2-99 -726545 43.77N 98.03W KMHE 10 MITCHELL_(AWOS) SD 397 MOS/Weiss 2-99 -726546 44.92N 97.15W KATY 10 WATERTOWN_MUNICIPAL SD 533 TAF 2-99 -726550 45.55N 94.07W STC 12 ST._CLOUD_MUNICIPAL_(AS MN 312 FORMER UA NA110 TAF 2-99 -726555 46.40N 94.13W KBRD 10 BRAINERD/WIELAND MN 374 TAF 2-99 -726556 44.55N 95.08W KRWF 10 REDWOOD_FALLS_MUNI MN 312 TAF 2-99 -726557 45.87N 95.40W KAXN 10 ALEXANDRIA/CHANDLER MN 434 TAF 2-99 -726559 44.45N 95.82W KMML 11 MARSHALL MN -999 NAM MERGE 1-16 -726567 44.32N 94.50W KULM 11 NEW ULM MN -999 NAM MERGE 1-16 -726578 45.95N 94.35W KLXL 11 LITTLE FALLS MN -999 NAM MERGE 1-16 -726580 44.88N 93.22W KMSP 10 MINNEAPOLIS-ST_PAUL MN 255 FOUS TAF 2-99 -726584 44.95N 93.07W KSTP 10 SAINT_PAUL_DOWNTOWN MN 209 METAR/TAF 2-99 -726585 44.22N 93.91W KMKT 12 MANKATO MN 311 TAF Usr Rqst 2-18 -726586 43.65N 94.42W KFRM 10 FAIRMONT_MUNI(AWOS) MN 354 TAF 2-99 -726589 43.68N 93.37W KAEL 11 ALBERT LEA MN -999 NAM MERGE 1-16 -726590 45.45N 98.43W KABR 12 ABERDEEN_REGIONAL SD 396 UA WSR88D 3-93 TAF 2-99 -726620 44.06N 103.05W KRAP 12 RAPID_CITY_REGIONAL SD 966 UA NA110 FOUS TAF 2-99 -726650 44.35N 105.53W KGCC 10 GILLETTE_(AMOS) WY 1230 TAF 2-99 -726660 44.77N 106.97W KSHR 10 SHERIDAN_CO._ARPT WY 1209 WR 10-96 TAF 2-99 -726664 44.54N 110.42W KP60 11 LAKE YELLOWSTONE WY -999 NAM MERGE 1-16 -726665 43.97N 107.95W KWRL 10 WORLAND_MUNICIPAL WY 1294 TAF 2-99 -726670 45.45N 105.40W 4BQ 10 BROADUS MT 922 WRGN 8-97 -726676 47.13N 104.80W GDV 10 GLENDIVE MT 749 TAF 7-01 -726685 45.55N 100.41W KMBG 10 MOBRIDGE SD 313 Usr Rqst 2-18 -726686 44.38N 100.28W KPIR 10 PIERRE_MUNICIPAL SD 531 3-93 TAF 2-99 -726695 45.93N 102.17W KY22 10 LEMMON SD 781 MOS/Weiss 2-99 -726700 44.52N 109.02W KCOD 10 CODY_MUNI_(AWOS)__& WY 1553 TAF 2-99 -726710 42.58N 110.11W KBPI 11 BIG PINEY WY 2131 Usr Rqst 4-12 -726764 44.68N 111.12W KWYS 10 WEST_YELLOWSTONE MT 2025 METAR/TAF 2-99 -726770 45.80N 108.53W KBIL 12 BILLINGS/LOGAN_INTL MT 1088 FOUS TAF 2-99 -726776 47.05N 109.47W KLWT 10 LEWISTOWN_MUNICIPAL MT 1270 TAF 2-99 -726785 45.95N 112.50W KBTM 10 BUTTE/BERT_MOONEY MT 1690 TAF 2-99 -726796 45.25N 112.55W KLDN 10 DILLON_AIRPORT MT 1597 Usr Rqst 4-02 -726797 45.78N 111.15W KBZN 12 BOZEMAN/GALLATIN MT 1364 3-93 TAF 2-99 -726798 45.70N 110.45W LVM 10 LIVINGSTON/MISSION MT 1419 WR 10-96 TAF 2-99 -726810 43.57N 116.22W KBOI 12 BOISE_MUNICIPAL ID 874 UA NA110 FOUS TAF 2-99 -726830 43.58N 118.95W KBNO 10 BURNS_MUNI_(AMOS)_& OR 1271 3-93 TAF 2-99 -726835 44.25N 121.15W KRDM 10 REDMOND_(AWOS) OR 938 WRGN 8-97 TAF 2-99 -726865 45.12N 113.88W SMN 10 SALMON/LEMHI ID 1233 NWS MIS 3-00 -726873 45.95N 116.13W GVL 10 GRANGEVILLE ID 1009 NWS MIS 3-00 -726880 45.68N 118.85W KPDT 10 PENDLETON_MUNICIPAL OR 456 FOUS TAF 2-99 -726886 44.83N 117.82W KBKE 10 BAKER_MUNICIPAL OR 1027 TAF 2-99 -726904 43.23N 123.35W KRBG 11 ROSEBURG_MUNICIPAL OR 160 Usr Rqst 8-09 -726917 43.42N 124.25W KOTH 10 NORTH_BEND_(AWOS) OR 4 WRGN 8-97 TAF 2-99 -726930 44.12N 123.22W KEUG 10 EUGENE/MAHLON_SWEET OR 114 WRGN 8-97 TAF 2-99 -726940 44.92N 123.00W KSLE 12 SALEM/MCNARY OR 61 UA NA110 TAF 2-99 -726950 44.58N 124.06W ONP 10 NEWPORT OR 37 ETL Profiler 4-03 -726980 45.60N 122.60W KPDX 10 PORTLAND_INTL_ARPT OR 12 TAF 2-99 -726985 45.55N 122.40W KTTD 10 PORTLAND/TROUTDALE OR 11 TAF 2-99 -726986 45.53N 122.95W KHIO 10 PORTLAND/HILLSBORO OR 62 TAF 2-99 -726988 45.62N 121.17W KDLS 10 THE_DALLES_MUNI OR 74 TAF 2-99 -727033 46.12N 67.80W KHUL 10 HOULTON_INTL_ARPT_& ME 150 9-96 TAF 2-99 -727119 46.62N 69.53W K40B 10 CLAYTON_LAKE ME 314 Jensenius 2-99 -727120 46.87N 68.01W KCAR 12 CARIBOU_MUNICIPAL ME 190 UA NA110 FOUS TAF 2-99 -727130 46.68N 68.05W KPQI 10 PRESQUE_ISLE_(AWOS) ME 146 METAR/TAF 2-99 -727340 46.47N 84.37W ANJ 12 SAULT_STE_MARIE___(ASOS MI 221 FORMER UA NA110 FOUS -727344 46.25N 84.47W KCIU 10 CHIPPEWA_INTL(AWOS) MI 244 METAR/TAF 2-99 -727347 45.57N 84.80W KPLN 10 PELLSTON/EMMET_CO. MI 219 TAF 2-99 -727415 45.63N 89.47W RHI 12 RHINELANDER/ONEIDA_(ASO WI 495 3-93 -727430 46.53N 87.55W KMQT 10 MARQUETTE_CO._ARPT& MI 434 WSR88D 3-93 TAF 2-99 -727435 46.35N 87.40W SAW 12 KI_SAWYER AFB MI 372 Usr Rqsr 12-03 -727437 45.82N 88.12W IMT 10 IRON_MOUNTAIN/FORD_(ASO MI 360 J. Eise 2-99 -727440 47.17N 88.50W KCMX 10 HOUGHTON_CO._MEM MI 329 TAF 2-99 -727445 46.53N 90.13W KIWD 10 IRONWOOD MI 375 MOS/Kurt Mayer 2-99 -727450 46.83N 92.18W KDLH 12 DULUTH_INTL_AIRPORT MN 432 == TAF 2-99 -727455 47.38N 92.83W KHIB 10 HIBBING-CHISHOLM MN 412 TAF 2-99 -727457 46.83N 95.89W KDTL 11 DETROIT LAKES MN -999 NAM MERGE 1-16 -727459 47.82N 91.83W KELO 10 ELY_MUNI_(AWOS) MN 443 METAR/TAF 2-99 -727470 48.57N 93.38W KINL 12 INTERNATIONAL_FALLS MN 361 UA NA110 FOUS TAF 2-99 -727476 48.73N 94.62W KBDE 10 BAUDETTE_INTL_ARPT MN 330 METAR/TAF 2-99 -727530 46.90N 96.80W KFAR 10 FARGO/HECTOR_FIELD ND 274 FOUS TAF 2-99 -727535 46.93N 98.68W KJMS 10 JAMESTOWN_MUNICIPAL ND 457 TAF 2-99 -727550 47.50N 94.93W KBJI 12 BEMIDJI_MUNICIPAL MN 420 3-93 TAF 2-99 -727564 48.93N 95.33W KRAD 10 WARROAD(AWOS) MN 328 METAR/TAF 2-99 -727576 47.95N 97.18W KGFK 10 GRAND_FORKS_INTL ND 257 TAF 2-99 -727580 48.10N 98.87W KP11 10 DEVILS_LAKE_(AMOS) ND 443 WSR88D FOUS 3-93 -727640 46.77N 100.75W KBIS 12 BISMARCK_MUNICIPAL ND 506 UA NA110 FOUS TAF 2-99 -727645 46.80N 102.80W KDIK 10 DICKINSON_MUNICIPAL ND 789 TAF 2-99 -727670 48.18N 103.63W KISN 10 WILLISTON/SLOULIN ND 581 == TAF 2-99 -727676 48.27N 101.28W KMOT 10 MINOT_INTL_AIRPORT ND 523 TAF 2-99 -727677 47.65N 101.43W N60 11 GARRISON ND 587 Usr Rqst 6-16 -727680 48.22N 106.62W KGGW 12 GLASGOW_INTL_ARPT MT 700 UA NA110 FOUS TAF 2-99 -727684 47.33N 106.93W JDN 10 JORDAN MT 811 TAF 7-01 -727687 47.70N 104.20W KSDY 10 SIDNEY-RICHLAND MT 605 TAF 2-99 -727720 46.60N 112.00W KHLN 10 HELENA_REGIONAL MT 1188 WRGN 8-97 TAF 2-99 -727730 46.92N 114.08W KMSO 10 MISSOULA/BELL_FIELD MT 972 TAF 2-99 -727750 47.48N 111.37W KGTF 12 GREAT_FALLS_INTL MT 1115 UA NA110 FOUS TAF 2-99 -727770 48.55N 109.77W KHVR 10 HAVRE_(AMOS) MT 792 WRGN 8-97 TAF 2-99 -727790 48.30N 114.27W KGPI 12 GLACIER PARK INTL MT 906 3-93 TAF 2-99 -727796 48.60N 112.37W KCTB 10 CUT_BANK_(AWOS) MT 1175 TAF 2-99 -727810 46.57N 120.53W KYKM 10 YAKIMA_AIR_TERMINAL WA 325 TAF 2-99 -727815 47.28N 121.33W SMP 10 STAMPEDE_PASS_(ASOS) WA 1209 WRGN 8-97 -727820 47.40N 120.02W EAT 10 WENATCHEE WA 379 WRGN 8-97 -727825 47.40N 120.20W KEAT 10 WENATCHEE/PANGBORN WA 379 TAF 2-99 -727826 47.30N 119.52W KEPH 10 EPHRATA_MUNICIPAL WA 388 TAF 2-99 -727827 47.20N 119.32W KMWH 10 MOSES_LAKE/GRANT_CO WA 361 TAF 2-99 -727830 46.38N 117.02W KLWS 10 LEWISTON_(AMOS) ID 438 FOUS 3-93 TAF 2-99 -727834 47.77N 116.82W KCOE 10 COEUR_D'ALENE(AWOS) ID 707 TAF 2-99 -727840 46.32N 119.27W PSC 10 PASCO WA 113 WRGN 8-97 -727845 46.27N 119.12W KPSC 10 PASCO/TRI-CITIES WA 124 TAF 2-99 -727846 46.10N 118.28W KALW 10 WALLA_WALLA_RGNL WA 367 TAF 2-99 -727850 47.63N 117.53W KGEG 12 SPOKANE_INTL_ARPT WA 721 UA NA110 FOUS TAF 2-99 -727856 47.68N 117.32W KSFF 10 SPOKANE/FELTS_FIELD WA 595 TAF 2-99 -727857 46.75N 117.12W KPUW 12 PULLMAN/MOSCOW_RGNL WA 778 NWS KOTX -727860 47.70N 117.60W KOTX 12 SPOKANE WA 728 UA 3-02 -727870 48.55N 117.88W CQV 10 COLVILLE WA 572 WRGN 8-97 -727883 47.03N 120.53W KELN 12 ELLENSBURG/BOWERS WA 536 Usr Rqst 8-11 -727885 48.12N 123.50W KCLM 10 PORT_ANGELES_INTL WA 88 METAR/TAF 2-99 -727890 48.42N 119.53W 4OM 10 OMAK WA 382 WRGN 8-97 -727910 46.15N 123.88W KAST 10 ASTORIA/CLATSOP OR 7 TAF 2-99 -727920 46.97N 122.90W KOLM 10 OLYMPIA WA 61 TAF 2-99 -727923 46.97N 123.93W KHQM 10 HOQUIAM/BOWERMAN WA 4 TAF 2-99 -727924 46.12N 122.94W KLS 11 KELSO-LONGVEIW_AWOS WA -999 NAM MERGE 1-16 -727930 47.45N 122.30W KSEA 10 SEATTLE-TACOMA_INTL WA 137 FOUS TAF 2-99 -727934 47.50N 122.22W KRNT 10 RENTON_MUNICIPAL WA 9 METAR/TAF 2-99 -727935 47.53N 122.30W KBFI 10 SEATTLE/BOEING_FLD WA 5 TAF 2-99 -727937 47.90N 122.28W KPAE 10 EVERETT/PAINE_FIELD WA 185 TAF 2-99 -727938 47.27N 122.58W KTIW 10 TACOMA_NARROWS WA 89 METAR/TAF 2-99 -727960 27.65N 81.33W AGR 10 AVON PARK FL 20 2-95 -727970 47.95N 124.55W UIL 12 QUILLAYUTE_STATE_(ASOS) WA 62 UA NA110 -727976 48.80N 122.53W KBLI 10 BELLINGHAM_INTL WA 48 WRGN 8-97 TAF 2-99 -740030 40.17N 112.93W DPG 10 DUGWAY PROVING GNDS UT 1325 FORMER UA 3-93 -742300 46.43N 105.87W KMLS 12 MILES_CITY________& MT 801 3-93 TAF 2-99 -743410 44.67N 95.45W P#3 12 WDLM5 WOOD LAKE MN 319 PROF -743570 43.22N 90.53W P#4 12 BLRW3 BLUE RIVER WI 226 PROF -743700 44.05N 75.73W GTB 12 FORT_DRUM/WHEELER NY 207 FORMER UA 3-93 -743890 43.90N 70.25W GYX 12 GRAY ME 125 UA 2-95 -743945 42.93N 71.43W KMHT 10 MANCHESTER_AIRPARK NH 71 TAF 2-99 -744310 41.90N 106.19W P#5 12 MBWW4 MEDICINE BOW WY 1997 PROF -744330 40.09N 100.65W P#6 12 RWDN1 MCCOOK NE 800 PROF -744370 42.91N 101.69W P#7 12 MRRN1 MERRIMAN NE 991 PROF -744400 40.10N 97.34W P#8 12 FBYN1 FAIRBURY NE 433 PROF -744450 42.21N 97.79W P#9 12 NLGN1 NELIGH NE 524 PROF -744490 41.90N 93.70W P#A 12 SLAI4 SLATER IA 315 PROF -744550 41.61N 90.57W DVN 10 QUAD_CITIES/QUAD_CITIES IA 229 UA 7-97 -744570 39.82N 84.03W FFO 11 WRIGHT PATTERSON 245 -744655 41.77N 88.48W KARR 11 AURORA IL -999 NAM MERGE 1-16 -744660 40.81N 87.05W P#B 12 WLCI3 WOLCOTT IN 212 PROF-X -744680 38.83N 85.42W KMDN 10 JEFFERSON_PRVG_GRND IN 266 DiStefano 2-99 -744860 40.65N 73.78W KJFK 10 NEW_YORK/JF_KENNEDY NY 7 TAF 2-99 -744900 42.47N 71.28W KBED 10 HANSCOM_FLD/BEDFORD MA 41 METAR/TAF 2-99 -744904 42.72N 71.12W KLWM 10 LAWRENCE_MUNICIPAL MA 45 METAR/TAF 2-99 -744910 42.20N 72.53W KCEF 10 CHICOPEE/WESTOVER MA 75 METAR/TAF 2-99 -744915 42.15N 72.72W KBAF 10 WESTFIELD/BARNES MA 83 TAF 2-99 -744940 41.67N 69.97W KCHH 22 CHATHAM MA 16 UA NA110 -744994 42.85N 73.93W KSCH 10 SCHENECTADY_AIRPORT NY 115 METAR/TAF 2-99 -745300 37.77N 102.18W P#C 12 GDAC2 GRANADA CO 1155 PROF -745310 38.97N 104.82W KAFF 12 AIR_FORCE_ACADEMY CO 2003 Usr Rqst 6-16 -745320 39.26N 103.70W LIC 12 LIMON CO 1694 GCIP 5-94 -745330 40.18N 104.72W P#D 12 PLTC2 PLATTEVILLE CO 1524 PROF -745410 37.65N 99.09W P#E 12 HVLK1 HAVILAND KS 648 PROF -745420 37.38N 95.63W P#F 12 NDSK1 NEODESHA KS 255 PROF -745460 38.31N 97.30W P#G 12 HBRK1 HILLSBORO KS 447 PROF -745500 37.52N 92.70W P#H 12 CNWM7 CONWAY MO 390 PROF -745510 39.58N 94.19W P#I 12 LTHM7 LATHROP MO 297 PROF -745560 39.66N 90.48W P#J 12 WNCI2 WINCHESTER IL 170 PROF -745600 40.15N 89.33W ILX 12 LINCOLN IL 176 GCIP 9-95 -746120 35.68N 117.68W NID 10 CHINA_LAKE_(NAF)__& CA 696 FORMER UA 3-93 -746290 32.41N 106.35W P#L 12 WSMN5 WHITE SANDS MR NM 1224 PROF -746300 36.84N 107.91W P#M 12 AZCN5 AZTEC NM 1902 PROF -746400 36.07N 99.22W P#N 12 VCIO2 VICI OK 648 PROF -746410 36.43N 99.53W KWWR 11 WEST_WOODWARD OK 667 TAF 8-09 -746470 36.69N 97.48W P#O 12 LMNO2 LAMONT OK 306 PROF -746480 35.68N 95.86W P#P 12 HKLO2 HASKELL/MORRIS OK 219 PROF NEW LOC -746490 34.98N 97.52W P#Q 12 PRCO2 PURCELL OK 331 PROF -746620 36.88N 89.97W P#R 12 BLMM7 BLOOMFIELD MO 130 PROF -746716 36.97N 86.42W KBWG 10 BOWLING_GREEN KY 167 TAF 2-99 -746943 36.27N 76.18W KECG 10 ELIZABETH_CITY(CGS) NC 4 TAF 2-99 -747185 32.83N 115.58W KIPL 10 IMPERIAL CA -17 TAF 2-99 -747187 33.63N 116.17W KTRM 10 THERMAL_AIRPORT CA -36 3-93 TAF 2-99 -747188 33.62N 114.72W KBLH 10 BLYTHE_AIRPORT CA 121 NASA-JSC 3-93 TAF 2-99 -747310 35.08N 103.61W P#S 12 TCUN5 TUCUMCARI NM 1241 PROF -747320 33.08N 106.12W HMN 10 HOLLOMAN AFB NM 1300 FORMER UA WSR88D 3-93 -747330 32.90N 106.40W E28 10 NORTHRUP STRIP NM 1193 NASA-JSC -747350 33.02N 100.98W P#T 12 JTNT2 JAYTON TX 707 PROF -747400 30.50N 99.77W JCT 11 JUNCTION_(ASOS) TX 522 TAF 7-07 -747500 31.78N 95.71W P#U 12 PATT2 PALESTINE TX 119 PROF -747520 34.11N 94.29W P#V 12 DQUA4 DEQUEEN AR 195 PROF -747530 31.90N 92.78W P#W 12 WNFL1 WINNFIELD LA 93 PROF -747685 30.40N 89.07W KGPT 10 GULFPORT-BILOXI MS 9 TAF 2-99 -747690 34.09N 88.86W P#X 12 OKOM6 OKOLONA MS 125 PROF -747800 31.90N 81.63W U#9 10 FORT STEWART GA 27 FORMER UA 3-93 -747810 30.89N 83.01W VAD 10 MOODY AFB GA 77 WSR88D 3-93 -747900 33.97N 80.47W KSSC 11 SHAW_AFB/SUMTER SC 74 USR RQST 7-11 -747910 33.68N 78.93W KMYR 10 MYRTLE_BEACH(CIV) SC 8 METAR/TAF 2-99 -747915 33.82N 78.72W KCRE 10 NORTH_MYRTLE_BEACH SC 10 TAF 2-99 -747940 28.47N 80.55W XMR 12 CAPE CANAVERAL FL 3 UA NA110 NASA-JSC -760013 32.55N 116.97W MMTJ 10 TIJUANA_INTL_ARPT_& MX 152 METAR/TAF 2-99 -760053 32.63N 115.24W MMML 10 MEXICALI_INTL_ARPT& MX 22 METAR/TAF 2-99 -760753 31.63N 106.43W MMCS 10 CIUDAD_JUAREZ_INTL& MX 1171 METAR/TAF 2-99 -761510 28.88N 118.30W ILS 00 ISLA GUADALUPE, B.C. 6 == -761600 29.07N 110.97W MMHO 10 HERMOSILLO_INTL___& MX 211 METAR/TAF 2-99 -762253 28.70N 105.97W MMCU 12 CHIHUAHUA_INTL_ARPT MX 1360 UA NA110 METAR 2-99 -762530 27.32N 112.30W MMCN 10 SANTA_ROSALIA_____& MX 75 METAR/TAF 2-99 -762555 27.97N 110.93W MMGM 10 GUAYMAS_INTL_ARPT MX 27 METAR/TAF 2-99 -762560 27.95N 110.80W EMP 12 EMPALME, SON. 12 UA -762863 27.43N 99.57W MMNL 10 NUEVO_LAREDO_INTL_& MX 148 METAR/TAF 2-99 -763503 26.02N 98.23W MMRX 10 REYNOSA_INTL_ARPT_& MX 39 METAR/TAF 2-99 -763820 25.53N 103.45W MMTC 12 TORREON_AIRPORT___& -- 1124 3-93 -763940 25.87N 100.20W MTY 12 MONTERREY AEROPUERTO, N.L. 450 UA NA110 -763943 25.78N 100.10W MMMY 10 MONTERREY/GEN_MARIA MX 387 METAR/TAF 2-99 -763993 25.77N 97.53W MMMA 10 MATAMOROS_INTL____& MX 8 METAR/TAF 2-99 -764050 24.17N 110.42W LAP 10 LA PAZ, B.C. 10 UA 3-93 -764055 24.07N 110.37W MMLP 10 LA_PAZ_INTL_AIRPORT MX 21 METAR/TAF 2-99 -764056 23.15N 109.70W MMSD 10 SAN_JOSE_DEL_CABO_& MX 109 METAR/TAF 2-99 -764120 24.82N 107.40W MMCL 10 CULIACAN_(CITY)___& MX 39 METAR/TAF 2-99 -764235 24.13N 104.53W MMDO 10 DURANGO_AIRPORT MX 1857 METAR/TAF 2-99 -764580 23.20N 106.42W MZT 12 MAZATLAN, SIN. 4 UA -764593 23.17N 106.27W MMMZ 10 MAZATLAN/G._BUELNA MX 10 METAR/TAF 2-99 -764910 23.73N 99.13W CVM 12 CIUDAD VICTORIA, TAMPS. 321 3-93 -764915 23.72N 98.97W MMCV 10 CIUDAD_VICTORIA_APT MX 238 METAR/TAF 2-99 -765255 22.90N 102.68W MMZC 10 ZACATECAS_ARPT MX 2140 METAR/TAF 2-99 -765390 22.15N 100.98W MMSP 10 SAN_LUIS_POTOSI MX 1903 METAR/TAF 2-99 -765493 22.28N 97.87W MMTM 12 TAMPICO/GEN_FJ_MINA MX 24 3-93 METAR 2-99 -765710 21.88N 102.30W MMAS 10 AGUASCALIENTES MX 1885 METAR/TAF 2-99 -765906 21.03N 86.87W MMUN 10 CANCUN_INTL_AIRPORT MX 5 METAR/TAF 2-99 -766013 20.68N 105.25W MMPR 10 PUERTO_VALLARTA/LIC MX 6 METAR/TAF 2-99 -766133 20.52N 103.32W MMGL 10 DON_MIGUEL/GUADALAJ MX 1528 METAR/TAF 2-99 -766440 20.98N 89.65W MMMD 12 MERIDA_INTL_ARPT MX 10 UA 3-93 METAR 2-99 -766493 20.53N 86.93W MMCZ 10 COZUMEL_(CIV/MIL) MX 5 METAR/TAF 2-99 -766534 19.15N 104.57W MMZO 10 MANZANILLO_INTL___& MX 8 METAR/TAF 2-99 -766655 19.85N 101.03W MMMM 10 MORELIA_NEW MX 1833 METAR/TAF 2-99 -766753 19.35N 99.57W MMTO 10 TOLUCA/JOSE_MARIA_& MX 2576 METAR/TAF 2-99 -766793 19.43N 99.10W MMMX 12 MEXICO_CITY/LICENCI -- 2238 UA -766913 19.15N 96.18W MMVR 10 GEN._HERIBERTO_JARA MX 29 METAR/TAF 2-99 -767383 18.10N 94.58W MMMT 10 MINATITLAN MX 40 METAR/TAF 2-99 -767493 18.65N 91.80W MMCE 10 CIUDAD_DEL_CARMEN_& MX 2 METAR/TAF 2-99 -767584 17.60N 101.47W MMZH 10 IXTAPA-ZIHUATANEJO MX 6 METAR/TAF 2-99 -768050 16.83N 99.92W ACA 11 ACAPULCO, GRO. 3 -768056 16.77N 99.75W MMAA 10 ACAPULCO/G._ALVAREZ MX 5 METAR/TAF 2-99 -768485 15.78N 96.27W MMBT 10 BAHIAS_DE_HUATULCO& MX 143 METAR/TAF 2-99 -769043 14.78N 92.38W MMTP 10 TAPACHULA_________& MX 29 METAR/TAF 2-99 -780160 32.37N 64.68W TXKF 00 BERMUDA_NAS/KINDLEY -- 3 UA NA110 -780610 26.70N 78.97W MYGW 00 WEST_END_INTL_ARPT BA 4 METAR/TAF 2-99 -780620 26.55N 78.69W MYGF 00 FREEPORT_INTL_ARPT BA 11 METAR/TAF 2-99 -780700 25.73N 79.30W MYBS 00 ALICE_TOWN/S_BIMINI BA 3 METAR/TAF 2-99 -780730 25.05N 77.47W MYNN 02 NASSAU_INTL_AIRPORT -- 7 UA NA110 3-93 -780920 23.50N 75.76W MYEG 00 GEORGE_TOWN/EXUMA BA 3 METAR/TAF 2-99 -782210 21.83N 82.78W MUNG 00 NUEVA_GERONA_(MIL) CU 23 METAR/TAF 2-99 -782240 22.98N 82.40W MUHA 10 HAVANA/JOSE_MARTI CU 59 METAR/TAF 2-99 -782290 23.13N 81.28W MUVR 00 VARADERO CU 3 METAR/TAF 2-99 -782550 21.42N 77.85W MUCM 12 CAMAGUEY/IGANCIO CU 122 UA 3-93 METAR 2-99 -782560 20.33N 77.12W MUMZ 10 MANZANILLO CU 60 METAR/TAF 2-99 -782593 20.40N 76.62W MUBY 10 BAYAMO____________& CU 64 METAR/TAF 2-99 -782640 19.96N 75.85W MUCU 10 SANTIAGO_DE_CUBA CU 69 METAR/TAF 2-99 -782670 20.08N 75.15W MUGT 00 GUANTANAMO CU 8 METAR/TAF 2-99 -782680 20.35N 74.50W MUBA 00 BARACOA_(CIV/MIL) CU 9 METAR/TAF 2-99 -782684 20.65N 74.92W MUMO 00 MOA_(MIL) CU 5 METAR/TAF 2-99 -783334 21.62N 81.55W MUCL 00 CAYO_LARGO_DEL_SUR CU 2 METAR/TAF 2-99 -783460 21.78N 78.78W MUCA 10 CIEGO_AVILA/VENEZUE CU 26 METAR/TAF 2-99 -783570 20.95N 76.94W MUVT 10 LAS_TUNAS/VICTORIA CU 106 METAR/TAF 2-99 -783670 19.90N 75.12W MUGM 10 GUANTANAMO_BAY_NAS CU 23 METAR/TAF 2-99 -783840 19.28N 81.35W MWCR 02 OWEN_ROBERTS_INTL GC 3 UA 3-93 METAR 2-99 -783880 18.50N 77.92W MKJS 00 SANGSTER/MONTEGO JM 3 METAR/TAF 2-99 -783970 17.93N 76.78W MKJP 00 NORMAN_MANLEY/KINGS JM 9 METAR/TAF 2-99 -784090 19.75N 72.18W MTCH 00 CAP-HAITIEN_INTL HA 3 METAR/TAF 2-99 -784390 18.57N 72.30W MTPP 10 PORT-AU-PRINCE_ARPT HA 29 METAR/TAF 2-99 -784570 19.75N 70.55W MDPP 00 PUERTO_PLATA_INTL DR 15 METAR/TAF 2-99 -784600 19.46N 70.69W MDST 10 SANTIAGO_INTL_ARPT DR 183 METAR/TAF 2-99 -784790 18.57N 68.37W MDPC 00 PUNTA_CANA DR 12 METAR/TAF 2-99 -784850 18.43N 69.67W MDSD 00 CAUCEDO/DE_LAS_AMER DR 18 METAR/TAF 2-99 -784860 18.47N 69.88W DSD 00 SANTO DOMINGO, DR 14 UA 3-93 -785140 18.50N 67.12W TJBQ 10 AQUADILLA/BORINQUEN PU 72 METAR/TAF 2-99 -785145 18.27N 67.15W TJMZ 00 MAYAGUEZ/EUGENIO PU 9 METAR/TAF 2-99 -785203 18.02N 66.57W TJPS 00 PONCE/MERCEDITA___& PU 9 METAR/TAF 2-99 -785260 18.43N 66.00W TJSJ 00 SAN_JUAN_INTL_ARPT PU 19 UA FOUS 3-93 -785430 18.33N 64.97W TIST 10 C._AMALIE/CYRIL_E. VI 67 METAR/TAF 2-99 -785470 17.70N 64.80W TISX 00 CHRISTIANSTED/ALEXA VI 17 METAR/TAF 2-99 -785500 18.45N 64.53W TUPJ 00 BEEF_ISL/ROADTOWN VI 4 METAR/TAF 2-99 -785830 17.53N 88.30W MZBZ 00 BELIZE_INTL_AIRPORT BH 5 METAR/TAF 2-99 -786150 16.92N 89.88W MGFL 10 FLORES/SANTA_ELENA GU 115 METAR/TAF 2-99 -786270 15.32N 91.47W MGHT 10 HUEHUETENANGO GU 1901 METAR/TAF 2-99 -786370 15.72N 88.60W MGPB 00 PUERTO_BARRIOS(MIL) GU 1 METAR/TAF 2-99 -786410 14.58N 90.52W MGGT 10 GUATEMALA/LA_AURORA GU 1489 METAR/TAF 2-99 -786470 13.92N 90.82W MGSJ 00 SAN_JOSE_(CIV/MIL) GU 2 METAR/TAF 2-99 -786500 13.57N 89.83W MSAC 10 ACAJUTLA/SONSONATE ES 15 METAR/TAF 2-99 -786630 13.70N 89.12W MSSS 10 ILOPANGO/S.SALVADOR ES 621 METAR/TAF 2-99 -786660 13.43N 89.05W MSLP 10 EL_SALVADOR_INTL ES 25 METAR/TAF 2-99 -787000 13.28N 87.67W MHAM 00 AMAPALA/LOS_PELONAS HO 5 METAR/TAF 2-99 -787010 16.46N 85.92W MHNJ 00 GUANAJA HO 2 METAR/TAF 2-99 -787030 16.32N 86.53W MHRO 00 ROATAN HO 5 METAR/TAF 2-99 -787050 15.73N 86.87W MHLC 00 LA_CEIBA/GOLOSON__& HO 3 METAR/TAF 2-99 -787060 15.72N 87.48W MHTE 00 TELA HO 3 METAR/TAF 2-99 -787070 15.17N 87.12W MHYR 10 YORO HO 670 METAR/TAF 2-99 -787080 15.45N 87.93W MHLM 00 LA_MESA/PEDRO_SULA HO 31 METAR/TAF 2-99 -787110 15.22N 83.80W MHPL 00 PUERTO_LEMPIRA HO 13 METAR/TAF 2-99 -787140 14.90N 85.93W MHCA 10 CATACAMAS HO 442 METAR/TAF 2-99 -787170 14.78N 88.78W MHSR 10 SANTA_ROSA_DE_COPAN HO 1079 METAR/TAF 2-99 -787190 14.33N 88.17W MHLE 10 LA_ESPERANZA HO 1100 METAR/TAF 2-99 -787200 14.05N 87.22W MHTG 10 TEGUCIGALPA/TONCONT HO 994 METAR/TAF 2-99 -787240 13.30N 87.18W MHCH 00 CHOLUTECA HO 48 METAR/TAF 2-99 -787300 14.05N 83.37W MNPC 00 PUERTO_CABEZAS(MIL) NK 20 METAR/TAF 2-99 -787410 12.15N 86.17W MNMG 00 MANAGUA/AUGUSTO_CES NK 50 METAR/TAF 2-99 -787613 9.97N 84.78W MRCH 00 CHACARITA CS 2 METAR/TAF 2-99 -787620 10.00N 84.22W MROC 10 SAN_JOSE/SANTAMARIA CS 931 METAR/TAF 2-99 -787625 9.95N 84.15W MRPV 10 TOBIAS_BOLANOS_INTL CS 994 METAR/TAF 2-99 -787670 10.00N 83.05W MRLM 00 LIMON_INTL_AIRPORT CS -4 METAR/TAF 2-99 -787740 10.60N 85.55W MRLB 10 LIBERIA/TOMAS_GUARD CS 93 METAR/TAF 2-99 -787838 9.43N 82.52W MPCH 00 CAPTAIN_MANUEL_NINO PM 6 METAR/TAF 2-99 -787920 9.05N 79.37W MPTO 00 TOCUMEN/GEN._OMAR PM 11 METAR/TAF 2-99 -787930 8.39N 82.42W MPDA 10 DAVID/ENRIQUE_MALEK PM 26 METAR/TAF 2-99 -787935 9.35N 82.25W MPBO 00 BOCAS_DEL_TORO_INTL PM 3 METAR/TAF 2-99 -787950 8.08N 80.94W MPSA 10 SANTIAGO PM 88 METAR/TAF 2-99 -788067 8.97N 79.51W MPMG 00 MARCOS_A._GELABERT PM 13 METAR/TAF 2-99 -788460 18.20N 63.05W TQPF 10 WALL_BLAKE VI 31 METAR/TAF 2-99 -788564 16.75N 62.17W TRPM 00 BLACKBURNE/PLYMOUTH AT 12 METAR/TAF 2-99 -788580 17.29N 62.68W TKPK 10 GOLDEN_ROCK AT 48 METAR/TAF 2-99 -788590 17.20N 62.58W TKPN 00 CHARLESTOWN/NEWCAST AT 17 METAR/TAF 2-99 -788620 17.12N 61.78W TAPA 00 COOLIDGE_AIRPORT AT 14 METAR/TAF 2-99 -788660 18.04N 63.12W TNCM 00 PRINSES_JULIANA MN 9 METAR/TAF 2-99 -788730 17.48N 62.98W TNCE 10 FDR_ARPT/ORANJESTAD MN 39 METAR/TAF 2-99 -788940 17.90N 62.85W TFFJ 10 GUSTAVIA/ST.BARTHEL MF 52 METAR/TAF 2-99 -788970 16.27N 61.52W TFFR 00 LE_RAIZET/GUADELOUP MF 8 METAR/TAF 2-99 -789050 15.53N 61.30W TDPD 00 MELVILLE_HALL_ARPT DO 14 METAR/TAF 2-99 -789060 15.53N 61.40W TDCF 00 CANEFIELD_AIRPORT DO 5 METAR/TAF 2-99 -789070 15.30N 61.40W TDPR 10 ROSEAU DO 72 METAR/TAF 2-99 -789540 13.07N 59.48W TBPB 11 GRANTLEY ADAMS INTERNATIONL 56 -789820 12.50N 70.01W TNCA 10 REINA_BEATRIX_INTL NU 33 METAR/TAF 2-99 -789880 12.20N 68.97W TNCC 10 HATO_ARPT_(CIV/MIL) NU 67 METAR/TAF 2-99 -789900 12.15N 68.28W TNCB 00 FLAMINGO_AIRPORT NU 7 METAR/TAF 2-99 -800010 12.58N 81.72W SKSP 00 SAN_ANDRES_ISLAND -- -2 METAR/TAF 2-99 -800090 11.13N 74.23W SKSM 00 SANTA_MARTA/SIMON -- 1 METAR/TAF 2-99 -800220 10.45N 75.52W SKCG 00 CARTAGENA/RAFAEL_NU -- 1 METAR/TAF 2-99 -800280 10.90N 74.77W SKBQ 00 BARRANQUILLA/ERNEST -- 10 METAR/TAF 2-99 -800940 7.10N 73.20W SKBG 10 BUCARAMANGO/PALONEG -- 1189 METAR/TAF 2-99 -801100 6.22N 75.60W SKMD 10 MEDELLIN/OLAYA_HER -- 1499 METAR/TAF 2-99 -801120 6.18N 75.43W SKRG 10 RIONEGRO/JOSE_MARI& -- 2137 METAR/TAF 2-99 -802100 4.82N 75.80W SKPE 10 PEREIRA/MATECANA -- 1342 METAR/TAF 2-99 -802220 4.70N 74.13W SKBO 10 BOGOTA/ELDORADO -- 2548 METAR/TAF 2-99 -804070 10.57N 71.73W SVMC 10 MARACAIBO/LA_CHINTA -- 65 METAR/TAF 2-99 -804150 10.60N 66.98W SVMI 10 CARACAS/S._BOLIVAR -- 48 METAR/TAF 2-99 -820220 2.83S 60.70W 11 BOA VISTA AEROPORTO, BZ 140 -821910 1.43S 48.48W 11 BELEM, BRAZIL 24 -823320 3.15S 59.98W 11 MANAUS, BRAZIL 84 -823980 3.78S 38.53W 11 FORTALEZA 25 -825620 5.53S 49.15W 11 MARABA, BRAZIL 61 -825790 5.05S 42.82W 11 TEREZINA, BRAZIL 69 -825990 5.92S 35.25W 11 NATAL, BRAZIL 49 -827530 7.88S 40.08W 11 OURICURI 460 -828240 8.70S 63.90W 11 PORTO VELHO, BZ 102 -828610 8.27S 49.28W 11 CONCEICAO DO ARAGUAIA, BZ 19 -829750 9.07S 44.37W 11 BOM JESUS, BRAZIL 332 -830630 10.70S 48.40W 11 PORTO NACIONAL AERO, BZ 290 -832290 13.00S 38.52W 11 SALVADOR/ONDINA 51 -833620 15.65S 56.10W 11 CUIABA AEROPORTO, BRAZIL 182 -837210 23.00S 47.13W SBKP 10 CAMPINA/VIRACOPOS 661 Baker/UPS 11-08 -837220 22.32S 49.07W 11 BAURU 616 -837430 22.90S 43.17W 11 RIO DE JANEIRO, BRAZIL 26 -837800 23.62S 46.65W 11 SAO PAULO/CONGONHAS 802 -839670 30.08S 51.18W 11 PORTO ALEGRE, BRAZIL 3 -840080 .90S 89.62W 11 SAN CRISTOBAL, GALAPAGOS I 6 -840710 .12S 78.35W SEQM 11 QUITO/SUCRE, ECUADOR 2400 Baker/UPS 01-17 -842030 2.15S 79.88W SEGU 10 GUAYAQUIL 5 Baker/UPS 11-08 -845010 8.08S 79.12W 11 TRUJILLO, PERU 30 -846280 12.02S 77.03W 11 LIMA-CALLAO/CHAVEZ, PERU 11 -851540 14.75S 64.80W 11 TRINIDAD 236 -852010 16.50S 68.17W 11 LA PAZ/EL ALTO, BOLIVIA 4051 -855740 33.38S 70.78W SCEL 11 PUDAHUEL CHILE 475 Klipfel/Delta 04-11 -856290 34.97S 71.22W 11 CURICO, CHILE 225 -862180 25.16S 57.38W 11 ASUNCION 101 -871550 27.45S 59.05W 11 RESISTENCIA 53 -874800 32.92S 60.78W 11 ROSARIO 25 -875760 34.82S 58.53W 11 BUENOS AIRES/EZEIZA 20 -878600 45.78S 67.45W 11 COMODORO RIVADAVIA,ARGEN. 46 -911650 21.98N 159.35W PHLI 00 LIHUE/KAUAI_ISLAND_(ASO HI 45 UA FOUS 3-93 TAF 2-99 -911780 21.32N 158.07W PHNA 00 BARBERS_PT_NAS/OAHU HI 15 METAR/TAF 2-99 -911820 21.35N 157.93W PHNL 00 HONOLULU INTL/OAHU HI 5 FOUS TAF 2-99 -911860 21.15N 157.10W PHMK 10 MOLOKAI (AMOS) HI 137 METAR/TAF 2-99 -911900 20.90N 156.43W PHOG 00 KAHULUI_ARPT/MAUI_(ASOS HI 20 FOUS 4-93 TAF 2-99 -912120 13.35N 144.80E PGUM 11 GUAM INTERNATIONAL 91 -912320 15.12N 145.73E PGSN 01 SAIPAN INTERNAIONAL 66 -912450 19.28N 166.65E PWAK 01 WAKE ISLAND AIRFLD 4 -912850 19.72N 155.07W PHTO 10 HILO/LYMAN_FIELD_(ASOS) HI 11 UA FOUS 4-93 TAF 2-99 -913340 7.47N 151.85E PTKK 01 TRUK INTERNATIOANAL/MOEN IS 2 -913480 6.97N 158.22E PTPN 01 PONAPE ISLAND 46 -913560 5.33N 163.03E PTSA 01 KUSAIE/KOSRAE_EAST 4 -913660 8.73N 167.73E PKWA 01 KWAJALEIN/BUCHOLZ 8 -913760 7.08N 171.38E PKMJ 01 MAJURO/MARSHALL IS 3 -914080 7.33N 134.48E PTRO 01 KOROR/PALAU ISLAND 33 -914130 9.48N 138.08E PTYA 01 YAP ISLAND 17 -915001 14.20N 145.20E 01 MP/ROTA 0 -915002 15.00N 145.60E 01 MP/TINIAN 0 -915003 18.80N 145.70E 01 MP/AGRIHAN 0 -915004 8.10N 134.70E 01 PW/KAYANGEL 0 -915005 5.30N 132.20E 01 PW/SONSOROL 0 -915006 8.30N 137.50E 01 FM/NGULU 0 -915007 10.00N 139.80E 01 FM/ULITHI 0 -915008 9.80N 140.50E 01 FM/FAIS 0 -915009 7.40N 134.90E 01 FM/WOLEAI 0 -915010 8.60N 144.60E 01 FM/FARAULEP 0 -915011 7.40N 147.10E 01 FM/SATAWAL 0 -915012 7.40N 149.20E 01 FM/PULUWAT 0 -915013 8.60N 149.70E 01 FM/ULUL 0 -915014 8.60N 151.90E 01 FM/FANANU 0 -915015 6.90N 152.70E 01 FM/LOSAP 0 -915016 5.50N 153.80E 01 FM/LUKUNOR 0 -915017 3.80N 155.00E 01 FM/NUKUORO 0 -915018 5.80N 157.30E 01 FM/SAPWUAFIK 0 -915019 7.00N 157.90E 01 FM/PAKIN 0 -915020 6.80N 159.80E 01 FM/MOKIL 0 -915021 6.20N 160.70E 01 FM/PINGELAP 0 -915022 11.80N 162.50E 01 MH/ENEWETAK 0 -915023 8.90N 165.70E 01 MH/UJAE 0 -915024 7.30N 168.80E 01 MH/AILINGLAPLAP 0 -915025 5.90N 169.60E 01 MH/JALUIT 0 -915026 11.20N 169.80E 01 MH/UTIRIK 0 -915027 9.50N 170.20E 01 MH/WOTJE 0 -915028 6.10N 171.80E 01 MH/MILI 0 -919440 18.07S 140.95W TTO 01 HAO, TUAMOTU IS. 3 -931190 37.02S 174.80E 11 AUCKLAND AIRPORT, N.Z. 7 -941200 12.42S 130.87E DDN 11 DARWIN, AUSTRALIA 29 -945680 27.63S 152.72E BAM 11 AMBERLEY (AUS-AFB) 31 -946100 31.92S 115.97E 11 PERTH 17 -947670 33.95S 151.18E SSY 11 SYDNEY/KINGSFORD SMITH 5 -948660 37.67S 144.83E 11 MELBOURNE, VICT., AUST 141 -949260 35.40S 148.98E 11 CANBERRA, AUSTRALIA (4NASA) 692 -949750 42.83S 147.50E 11 HOBART AIRPORT, AUSTRALIA 4 -967430 6.15S 106.85E 11 DJAKARTA 5 -980091 31.42N 87.05W KGZH 10 EVERGREEN_(ASOS) AL 79 MOS/Weiss 2-99 -983270 15.18N 120.57E RPLC 10 CLARK INTL ARPT 146 Baker/UPS 11-08 -984290 14.52N 121.00E RPLL 11 NINOY AQUINO ARPT PHILLIPPN 14 Klipfel/Delta 04-11 -988360 6.90N 122.07E 11 ZAMBOANGA, MINDANAO, P.I. 6 -994040 33.49N 77.59W FPS7 10 FRYING PAN SHOALS NC 0 EASTERN REG 3-02 -999020 29.37N 114.47W 11 LAGUNA CHAPELA,BAJA (4NASA) 600 -999030 40.33N 113.50W 11 BONNEVILLE LAKE-BED(4NASA) 1291 -999040 35.17N 79.50W 11 FT BRAGG, NC (4NASA) 74 -999050 48.83N 101.67W 11 MINOT AFB, ND (4NASA) 508 -999060 44.22N .67W 11 CAPTIEUX, FR (4NASA) 91 -999070 28.00S 21.50E 11 KALAHARI DESERT (4NASA) 975 -999080 40.50S 68.00W 11 NEUQUEN, ARG (4NASA) 273 -999090 27.33S 59.50W 11 RESISTENCIA, ARG (4NASA) 53 -999100 28.23S 134.98E 11 COOBER PEDY, AUSTRAL(4NASA) 226 -999110 38.70N 27.10W LPLA 11 LAJES,AZORES (4NASA) 52 -999120 61.20N 149.80W PAED 11 ELMENDORF, ALASKA (4NASA) 65 -999130 7.90S 14.40W FHAW 01 ASCENSION IS/ST HELENA (4NA 86 -999140 35.70N 139.30E RJTY 11 YOKOTA AB, JAPAN (4NASA) 139 -999150 48.90N 54.50W CYQX 11 GANDER, CANADA (4NASA) 151 -999160 43.50N 4.90E LFMI 11 LE TUBE, FRANCE (4NASA) 23 -999170 52.70N 8.90W EINN 11 SHANNON, IRELAND (4NASA) 14 -999180 14.50S 132.30E YPTN 11 TINDAL, AUSTRALIA (4NASA) 108 -999190 38.10N 7.90W LPBJ 11 BEJA, PORTUGAL (4NASA) 246 -999200 24.20N 120.60E RCMQ 11 CHING CHUAN KANG,TAI(4NASA) 5 -999210 12.70N 101.00E VTBU 11 U-TAPHAO, THAILAND (4NASA) 3 -999220 20.30N 41.60E OEBA 11 AL BAHA, SAUDI ARA (4NASA) 1653 -999230 14.30S 170.70W NSTU 01 PAGO PAGO, SOLOMON (4NASA) 3 -999240 51.60S 69.30W SAWG 11 RIO GALLEGOS, ARG (4NASA) 20 -999250 27.20S 109.40W SCIP 01 EASTER IS, CHILE (4NASA) 51 -999260 22.60N 88.50E VECC 11 CALCUTTA, INDIA (4NASA) 4 -999270 8.10S 34.90W SBRF 11 GUARARAPES, BRAZIL (4NASA) 18 -999280 23.40S 46.50W SBGR 11 GUARULHOS, BRAZIL (4NASA) 751 -999290 7.20N 79.90E VCBI 11 COLOMBO, SRI LANKA (4NASA) 8 -999300 10.60N 67.00W SVMI 11 SIMON BOLIVAR, VEN(4NASA) 43 -999310 4.80N 52.40W SOCA 11 ROCHAMBEAU, FR GUIANA (4NAS 105 -999320 19.10N 72.80E VABB 11 BOMBAY, INDIA (4NASA) 8 -999330 18.80S 47.50E FMMI 11 IVATO, MADAGASCAR (4NASA) 1280 -999340 32.20N 110.90W KDMA 11 DAVIS-MOUNTAIN, CA (4NASA) 824 -999350 44.10N 103.10W KRCA 11 ELLSWORTH, SD (4NASA) 1000 -999360 64.60N 147.00W PAEI 11 EIELSON, ALASKA (4NASA) 167 -999370 34.80N 120.60W KVBG 11 VANDENBERG, CA (4NASA) 112 -999380 34.60N 118.10W KPMD 11 PALMDALE, CA (4NASA) 775 -999390 40.19N 113.47W DGWY 11 Dugway Prov Grd Ld 1296 NASA 10-18 -999400 34.95N 69.27E OAIX 11 BAGRAM (USAF reqt) 1491 Lenhart 8-06 -999440 52.83N 1.32W EGNX 10 EAST MIDLANDS 95 Baker/UPS 11-08 -999530 9.01N 7.26E DNAA 11 NNAMDI AZIKIWE ARPT NIGERIA 342 Klipfel/Delta 04-11 -999540 23.61N 116.48W EFT1 01 PACIFIC OCEAN 0 NASA ORION 10-13 -999550 46.00N 63.56E BAK1 11 BAIKONUR COSMODROME, KZ 99 NASA ISS 10-13 -999560 47.67N 67.73E UAKD 11 ZHEZKAZGAN, KZ 381 NASA ISS 10-13 -999901 19.73N 156.05W PHKO 00 KEAHOLE POINT/KONA HI 13 METAR/TAF 2-99 -999902 59.23N 135.43W PAHN 00 HAINES BOAT HARBOR AK 10 TAF 2-99 -999903 61.13N 146.25W PAVD 10 VALDEZ (INLAND POINT) AK 37 METAR/TAF 2-99 -999904 20.78N 156.95W PHNY 10 LANAI CITY AIRPORT HI 399 METAR/TAF 2-99 -999905 21.02N 156.63W PHJH 10 LAHAINA/WEST MAUI HI 40 METAR/TAF 2-99 -999909 17.85N 66.52W PSE 00 PONCE,PUERTO RICO 0 TAF PR 2-99 -999911 18.17N 67.15W MAZ 00 MAYAGUEZ,PUERTO RICO 0 TAF PR 2-99 -999912 35.25N 93.09W RUE 10 RUSSELLVILLE_MCPL AR 120 Weiss 2-99 -999913 15.51S 128.15E WYN 00 Wyndham aerodrome Australia 14 Usr Rqst 1-19 -999914 57.48N 7.36W EGPL 00 Benbecula, Scotland, UK 6 Usr Rqst 1-19 -999918 54.38N 10.13E EDHK 11 KIEL-HOLTENAU AIRPORT -999 Usr Rqst 1-17 diff --git a/parm/transfer_gdas_1a.list b/parm/transfer_gdas_1a.list index 6142bef415..01e67f6dd0 100644 --- a/parm/transfer_gdas_1a.list +++ b/parm/transfer_gdas_1a.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,28 +26,30 @@ com/gfs/_ENVIR_/gdas._PDY_/ + /??/ -+ /??/*atmf000* -+ /??/*atmf001* -+ /??/*atmf002* -+ /??/*atmf003* -+ /??/*atmf004* -+ /??/*atmf005* -+ /??/*atmf006* -- /??/* ++ /??/atmos/ ++ /??/atmos/*atmf000* ++ /??/atmos/*atmf001* ++ /??/atmos/*atmf002* ++ /??/atmos/*atmf003* ++ /??/atmos/*atmf004* ++ /??/atmos/*atmf005* ++ /??/atmos/*atmf006* +- /??/atmos/* - * B 100 com/gfs/_ENVIR_/gdas._PDYm1_/ + /??/ -+ /??/*atmf000* -+ /??/*atmf001* -+ /??/*atmf002* -+ /??/*atmf003* -+ /??/*atmf004* -+ /??/*atmf005* -+ /??/*atmf006* -- /??/* ++ /??/atmos/ ++ /??/atmos/*atmf000* ++ /??/atmos/*atmf001* ++ /??/atmos/*atmf002* ++ /??/atmos/*atmf003* ++ /??/atmos/*atmf004* ++ /??/atmos/*atmf005* ++ /??/atmos/*atmf006* +- /??/atmos/* - * B 100 diff --git a/parm/transfer_gdas_1b.list b/parm/transfer_gdas_1b.list index 0ceafaffac..ef4829740b 100644 --- a/parm/transfer_gdas_1b.list +++ b/parm/transfer_gdas_1b.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,24 +26,26 @@ com/gfs/_ENVIR_/gdas._PDY_/ + /??/ -+ /??/*atmf007* -+ /??/*atmf008* -+ /??/*atmf009* -+ /??/*atmg* -+ /??/*atmanl* -- /??/* ++ /??/atmos/ ++ /??/atmos/*atmf007* ++ /??/atmos/*atmf008* ++ /??/atmos/*atmf009* ++ /??/atmos/*atmg* ++ /??/atmos/*atmanl* +- /??/atmos/* - * B 100 com/gfs/_ENVIR_/gdas._PDYm1_/ + /??/ -+ /??/*atmf007* -+ /??/*atmf008* -+ /??/*atmf009* -+ /??/*atmg* -+ /??/*atmanl* -- /??/* ++ /??/atmos/ ++ /??/atmos/*atmf007* ++ /??/atmos/*atmf008* ++ /??/atmos/*atmf009* ++ /??/atmos/*atmg* ++ /??/atmos/*atmanl* +- /??/atmos/* - * B 100 diff --git a/parm/transfer_gdas_1c.list b/parm/transfer_gdas_1c.list index 37cd3742ac..7c8ff99481 100644 --- a/parm/transfer_gdas_1c.list +++ b/parm/transfer_gdas_1c.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -24,40 +25,42 @@ # tranatmferred. com/gfs/_ENVIR_/gdas._PDY_/ -- /??/*atmf000* -- /??/*atmf001* -- /??/*atmf002* -- /??/*atmf003* -- /??/*atmf004* -- /??/*atmf005* -- /??/*atmf006* -- /??/*atmf007* -- /??/*atmf008* -- /??/*atmf009* -- /??/*atmg* -- /??/*atmanl* +- /??/atmos/*atmf000* +- /??/atmos/*atmf001* +- /??/atmos/*atmf002* +- /??/atmos/*atmf003* +- /??/atmos/*atmf004* +- /??/atmos/*atmf005* +- /??/atmos/*atmf006* +- /??/atmos/*atmf007* +- /??/atmos/*atmf008* +- /??/atmos/*atmf009* +- /??/atmos/*atmg* +- /??/atmos/*atmanl* + /* + /??/ -+ /??/* ++ /??/atmos/ ++ /??/atmos/* B 100 com/gfs/_ENVIR_/gdas._PDYm1_/ -- /??/*atmf000* -- /??/*atmf001* -- /??/*atmf002* -- /??/*atmf003* -- /??/*atmf004* -- /??/*atmf005* -- /??/*atmf006* -- /??/*atmf007* -- /??/*atmf008* -- /??/*atmf009* -- /??/*atmg* -- /??/*atmanl* +- /??/atmos/*atmf000* +- /??/atmos/*atmf001* +- /??/atmos/*atmf002* +- /??/atmos/*atmf003* +- /??/atmos/*atmf004* +- /??/atmos/*atmf005* +- /??/atmos/*atmf006* +- /??/atmos/*atmf007* +- /??/atmos/*atmf008* +- /??/atmos/*atmf009* +- /??/atmos/*atmg* +- /??/atmos/*atmanl* + /* + /??/ -+ /??/* ++ /??/atmos/ ++ /??/atmos/* B 100 diff --git a/parm/transfer_gdas_enkf_enkf_05.list b/parm/transfer_gdas_enkf_enkf_05.list index d9fb01b8f7..518636342c 100644 --- a/parm/transfer_gdas_enkf_enkf_05.list +++ b/parm/transfer_gdas_enkf_enkf_05.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem001/ -+ /??/mem001/** -+ /??/mem002/ -+ /??/mem002/** -+ /??/mem003/ -+ /??/mem003/** -+ /??/mem004/ -+ /??/mem004/** -+ /??/mem005/ -+ /??/mem005/** ++ /??/atmos/ ++ /??/atmos/mem001/ ++ /??/atmos/mem001/** ++ /??/atmos/mem002/ ++ /??/atmos/mem002/** ++ /??/atmos/mem003/ ++ /??/atmos/mem003/** ++ /??/atmos/mem004/ ++ /??/atmos/mem004/** ++ /??/atmos/mem005/ ++ /??/atmos/mem005/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem001/ -+ /??/mem001/** -+ /??/mem002/ -+ /??/mem002/** -+ /??/mem003/ -+ /??/mem003/** -+ /??/mem004/ -+ /??/mem004/** -+ /??/mem005/ -+ /??/mem005/** ++ /??/atmos/ ++ /??/atmos/mem001/ ++ /??/atmos/mem001/** ++ /??/atmos/mem002/ ++ /??/atmos/mem002/** ++ /??/atmos/mem003/ ++ /??/atmos/mem003/** ++ /??/atmos/mem004/ ++ /??/atmos/mem004/** ++ /??/atmos/mem005/ ++ /??/atmos/mem005/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_10.list b/parm/transfer_gdas_enkf_enkf_10.list index c71b688233..db2b5c2568 100644 --- a/parm/transfer_gdas_enkf_enkf_10.list +++ b/parm/transfer_gdas_enkf_enkf_10.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem006/ -+ /??/mem006/** -+ /??/mem007/ -+ /??/mem007/** -+ /??/mem008/ -+ /??/mem008/** -+ /??/mem009/ -+ /??/mem009/** -+ /??/mem010/ -+ /??/mem010/** ++ /??/atmos/ ++ /??/atmos/mem006/ ++ /??/atmos/mem006/** ++ /??/atmos/mem007/ ++ /??/atmos/mem007/** ++ /??/atmos/mem008/ ++ /??/atmos/mem008/** ++ /??/atmos/mem009/ ++ /??/atmos/mem009/** ++ /??/atmos/mem010/ ++ /??/atmos/mem010/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem006/ -+ /??/mem006/** -+ /??/mem007/ -+ /??/mem007/** -+ /??/mem008/ -+ /??/mem008/** -+ /??/mem009/ -+ /??/mem009/** -+ /??/mem010/ -+ /??/mem010/** ++ /??/atmos/ ++ /??/atmos/mem006/ ++ /??/atmos/mem006/** ++ /??/atmos/mem007/ ++ /??/atmos/mem007/** ++ /??/atmos/mem008/ ++ /??/atmos/mem008/** ++ /??/atmos/mem009/ ++ /??/atmos/mem009/** ++ /??/atmos/mem010/ ++ /??/atmos/mem010/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_15.list b/parm/transfer_gdas_enkf_enkf_15.list index b4a717ff4a..30e10b51cc 100644 --- a/parm/transfer_gdas_enkf_enkf_15.list +++ b/parm/transfer_gdas_enkf_enkf_15.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem011/ -+ /??/mem011/** -+ /??/mem012/ -+ /??/mem012/** -+ /??/mem013/ -+ /??/mem013/** -+ /??/mem014/ -+ /??/mem014/** -+ /??/mem015/ -+ /??/mem015/** ++ /??/atmos/ ++ /??/atmos/mem011/ ++ /??/atmos/mem011/** ++ /??/atmos/mem012/ ++ /??/atmos/mem012/** ++ /??/atmos/mem013/ ++ /??/atmos/mem013/** ++ /??/atmos/mem014/ ++ /??/atmos/mem014/** ++ /??/atmos/mem015/ ++ /??/atmos/mem015/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem011/ -+ /??/mem011/** -+ /??/mem012/ -+ /??/mem012/** -+ /??/mem013/ -+ /??/mem013/** -+ /??/mem014/ -+ /??/mem014/** -+ /??/mem015/ -+ /??/mem015/** ++ /??/atmos/ ++ /??/atmos/mem011/ ++ /??/atmos/mem011/** ++ /??/atmos/mem012/ ++ /??/atmos/mem012/** ++ /??/atmos/mem013/ ++ /??/atmos/mem013/** ++ /??/atmos/mem014/ ++ /??/atmos/mem014/** ++ /??/atmos/mem015/ ++ /??/atmos/mem015/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_20.list b/parm/transfer_gdas_enkf_enkf_20.list index 3cc88b6b29..493bb2cc52 100644 --- a/parm/transfer_gdas_enkf_enkf_20.list +++ b/parm/transfer_gdas_enkf_enkf_20.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem016/ -+ /??/mem016/** -+ /??/mem017/ -+ /??/mem017/** -+ /??/mem018/ -+ /??/mem018/** -+ /??/mem019/ -+ /??/mem019/** -+ /??/mem020/ -+ /??/mem020/** ++ /??/atmos/ ++ /??/atmos/mem016/ ++ /??/atmos/mem016/** ++ /??/atmos/mem017/ ++ /??/atmos/mem017/** ++ /??/atmos/mem018/ ++ /??/atmos/mem018/** ++ /??/atmos/mem019/ ++ /??/atmos/mem019/** ++ /??/atmos/mem020/ ++ /??/atmos/mem020/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem016/ -+ /??/mem016/** -+ /??/mem017/ -+ /??/mem017/** -+ /??/mem018/ -+ /??/mem018/** -+ /??/mem019/ -+ /??/mem019/** -+ /??/mem020/ -+ /??/mem020/** ++ /??/atmos/ ++ /??/atmos/mem016/ ++ /??/atmos/mem016/** ++ /??/atmos/mem017/ ++ /??/atmos/mem017/** ++ /??/atmos/mem018/ ++ /??/atmos/mem018/** ++ /??/atmos/mem019/ ++ /??/atmos/mem019/** ++ /??/atmos/mem020/ ++ /??/atmos/mem020/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_25.list b/parm/transfer_gdas_enkf_enkf_25.list index 31817914e2..8e91b1af34 100644 --- a/parm/transfer_gdas_enkf_enkf_25.list +++ b/parm/transfer_gdas_enkf_enkf_25.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem021/ -+ /??/mem021/** -+ /??/mem022/ -+ /??/mem022/** -+ /??/mem023/ -+ /??/mem023/** -+ /??/mem024/ -+ /??/mem024/** -+ /??/mem025/ -+ /??/mem025/** ++ /??/atmos/ ++ /??/atmos/mem021/ ++ /??/atmos/mem021/** ++ /??/atmos/mem022/ ++ /??/atmos/mem022/** ++ /??/atmos/mem023/ ++ /??/atmos/mem023/** ++ /??/atmos/mem024/ ++ /??/atmos/mem024/** ++ /??/atmos/mem025/ ++ /??/atmos/mem025/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem021/ -+ /??/mem021/** -+ /??/mem022/ -+ /??/mem022/** -+ /??/mem023/ -+ /??/mem023/** -+ /??/mem024/ -+ /??/mem024/** -+ /??/mem025/ -+ /??/mem025/** ++ /??/atmos/ ++ /??/atmos/mem021/ ++ /??/atmos/mem021/** ++ /??/atmos/mem022/ ++ /??/atmos/mem022/** ++ /??/atmos/mem023/ ++ /??/atmos/mem023/** ++ /??/atmos/mem024/ ++ /??/atmos/mem024/** ++ /??/atmos/mem025/ ++ /??/atmos/mem025/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_30.list b/parm/transfer_gdas_enkf_enkf_30.list index 5adcee55fa..d29b79e871 100644 --- a/parm/transfer_gdas_enkf_enkf_30.list +++ b/parm/transfer_gdas_enkf_enkf_30.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem026/ -+ /??/mem026/** -+ /??/mem027/ -+ /??/mem027/** -+ /??/mem028/ -+ /??/mem028/** -+ /??/mem029/ -+ /??/mem029/** -+ /??/mem030/ -+ /??/mem030/** ++ /??/atmos/ ++ /??/atmos/mem026/ ++ /??/atmos/mem026/** ++ /??/atmos/mem027/ ++ /??/atmos/mem027/** ++ /??/atmos/mem028/ ++ /??/atmos/mem028/** ++ /??/atmos/mem029/ ++ /??/atmos/mem029/** ++ /??/atmos/mem030/ ++ /??/atmos/mem030/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem026/ -+ /??/mem026/** -+ /??/mem027/ -+ /??/mem027/** -+ /??/mem028/ -+ /??/mem028/** -+ /??/mem029/ -+ /??/mem029/** -+ /??/mem030/ -+ /??/mem030/** ++ /??/atmos/ ++ /??/atmos/mem026/ ++ /??/atmos/mem026/** ++ /??/atmos/mem027/ ++ /??/atmos/mem027/** ++ /??/atmos/mem028/ ++ /??/atmos/mem028/** ++ /??/atmos/mem029/ ++ /??/atmos/mem029/** ++ /??/atmos/mem030/ ++ /??/atmos/mem030/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_35.list b/parm/transfer_gdas_enkf_enkf_35.list index fbe1593311..60e69aaeb6 100644 --- a/parm/transfer_gdas_enkf_enkf_35.list +++ b/parm/transfer_gdas_enkf_enkf_35.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem031/ -+ /??/mem031/** -+ /??/mem032/ -+ /??/mem032/** -+ /??/mem033/ -+ /??/mem033/** -+ /??/mem034/ -+ /??/mem034/** -+ /??/mem035/ -+ /??/mem035/** ++ /??/atmos/ ++ /??/atmos/mem031/ ++ /??/atmos/mem031/** ++ /??/atmos/mem032/ ++ /??/atmos/mem032/** ++ /??/atmos/mem033/ ++ /??/atmos/mem033/** ++ /??/atmos/mem034/ ++ /??/atmos/mem034/** ++ /??/atmos/mem035/ ++ /??/atmos/mem035/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem031/ -+ /??/mem031/** -+ /??/mem032/ -+ /??/mem032/** -+ /??/mem033/ -+ /??/mem033/** -+ /??/mem034/ -+ /??/mem034/** -+ /??/mem035/ -+ /??/mem035/** ++ /??/atmos/ ++ /??/atmos/mem031/ ++ /??/atmos/mem031/** ++ /??/atmos/mem032/ ++ /??/atmos/mem032/** ++ /??/atmos/mem033/ ++ /??/atmos/mem033/** ++ /??/atmos/mem034/ ++ /??/atmos/mem034/** ++ /??/atmos/mem035/ ++ /??/atmos/mem035/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_40.list b/parm/transfer_gdas_enkf_enkf_40.list index dc3316833d..1ce4d8e3d9 100644 --- a/parm/transfer_gdas_enkf_enkf_40.list +++ b/parm/transfer_gdas_enkf_enkf_40.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem036/ -+ /??/mem036/** -+ /??/mem037/ -+ /??/mem037/** -+ /??/mem038/ -+ /??/mem038/** -+ /??/mem039/ -+ /??/mem039/** -+ /??/mem040/ -+ /??/mem040/** ++ /??/atmos/ ++ /??/atmos/mem036/ ++ /??/atmos/mem036/** ++ /??/atmos/mem037/ ++ /??/atmos/mem037/** ++ /??/atmos/mem038/ ++ /??/atmos/mem038/** ++ /??/atmos/mem039/ ++ /??/atmos/mem039/** ++ /??/atmos/mem040/ ++ /??/atmos/mem040/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem036/ -+ /??/mem036/** -+ /??/mem037/ -+ /??/mem037/** -+ /??/mem038/ -+ /??/mem038/** -+ /??/mem039/ -+ /??/mem039/** -+ /??/mem040/ -+ /??/mem040/** ++ /??/atmos/ ++ /??/atmos/mem036/ ++ /??/atmos/mem036/** ++ /??/atmos/mem037/ ++ /??/atmos/mem037/** ++ /??/atmos/mem038/ ++ /??/atmos/mem038/** ++ /??/atmos/mem039/ ++ /??/atmos/mem039/** ++ /??/atmos/mem040/ ++ /??/atmos/mem040/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_45.list b/parm/transfer_gdas_enkf_enkf_45.list index 3dd1a34001..50b2c35d6f 100644 --- a/parm/transfer_gdas_enkf_enkf_45.list +++ b/parm/transfer_gdas_enkf_enkf_45.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem041/ -+ /??/mem041/** -+ /??/mem042/ -+ /??/mem042/** -+ /??/mem043/ -+ /??/mem043/** -+ /??/mem044/ -+ /??/mem044/** -+ /??/mem045/ -+ /??/mem045/** ++ /??/atmos/ ++ /??/atmos/mem041/ ++ /??/atmos/mem041/** ++ /??/atmos/mem042/ ++ /??/atmos/mem042/** ++ /??/atmos/mem043/ ++ /??/atmos/mem043/** ++ /??/atmos/mem044/ ++ /??/atmos/mem044/** ++ /??/atmos/mem045/ ++ /??/atmos/mem045/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem041/ -+ /??/mem041/** -+ /??/mem042/ -+ /??/mem042/** -+ /??/mem043/ -+ /??/mem043/** -+ /??/mem044/ -+ /??/mem044/** -+ /??/mem045/ -+ /??/mem045/** ++ /??/atmos/ ++ /??/atmos/mem041/ ++ /??/atmos/mem041/** ++ /??/atmos/mem042/ ++ /??/atmos/mem042/** ++ /??/atmos/mem043/ ++ /??/atmos/mem043/** ++ /??/atmos/mem044/ ++ /??/atmos/mem044/** ++ /??/atmos/mem045/ ++ /??/atmos/mem045/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_50.list b/parm/transfer_gdas_enkf_enkf_50.list index fdef8bbbe4..69a895bffb 100644 --- a/parm/transfer_gdas_enkf_enkf_50.list +++ b/parm/transfer_gdas_enkf_enkf_50.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem046/ -+ /??/mem046/** -+ /??/mem047/ -+ /??/mem047/** -+ /??/mem048/ -+ /??/mem048/** -+ /??/mem049/ -+ /??/mem049/** -+ /??/mem050/ -+ /??/mem050/** ++ /??/atmos/ ++ /??/atmos/mem046/ ++ /??/atmos/mem046/** ++ /??/atmos/mem047/ ++ /??/atmos/mem047/** ++ /??/atmos/mem048/ ++ /??/atmos/mem048/** ++ /??/atmos/mem049/ ++ /??/atmos/mem049/** ++ /??/atmos/mem050/ ++ /??/atmos/mem050/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem046/ -+ /??/mem046/** -+ /??/mem047/ -+ /??/mem047/** -+ /??/mem048/ -+ /??/mem048/** -+ /??/mem049/ -+ /??/mem049/** -+ /??/mem050/ -+ /??/mem050/** ++ /??/atmos/ ++ /??/atmos/mem046/ ++ /??/atmos/mem046/** ++ /??/atmos/mem047/ ++ /??/atmos/mem047/** ++ /??/atmos/mem048/ ++ /??/atmos/mem048/** ++ /??/atmos/mem049/ ++ /??/atmos/mem049/** ++ /??/atmos/mem050/ ++ /??/atmos/mem050/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_55.list b/parm/transfer_gdas_enkf_enkf_55.list index 385097f49d..a1cbd458e7 100644 --- a/parm/transfer_gdas_enkf_enkf_55.list +++ b/parm/transfer_gdas_enkf_enkf_55.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem051/ -+ /??/mem051/** -+ /??/mem052/ -+ /??/mem052/** -+ /??/mem053/ -+ /??/mem053/** -+ /??/mem054/ -+ /??/mem054/** -+ /??/mem055/ -+ /??/mem055/** ++ /??/atmos/ ++ /??/atmos/mem051/ ++ /??/atmos/mem051/** ++ /??/atmos/mem052/ ++ /??/atmos/mem052/** ++ /??/atmos/mem053/ ++ /??/atmos/mem053/** ++ /??/atmos/mem054/ ++ /??/atmos/mem054/** ++ /??/atmos/mem055/ ++ /??/atmos/mem055/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem051/ -+ /??/mem051/** -+ /??/mem052/ -+ /??/mem052/** -+ /??/mem053/ -+ /??/mem053/** -+ /??/mem054/ -+ /??/mem054/** -+ /??/mem055/ -+ /??/mem055/** ++ /??/atmos/ ++ /??/atmos/mem051/ ++ /??/atmos/mem051/** ++ /??/atmos/mem052/ ++ /??/atmos/mem052/** ++ /??/atmos/mem053/ ++ /??/atmos/mem053/** ++ /??/atmos/mem054/ ++ /??/atmos/mem054/** ++ /??/atmos/mem055/ ++ /??/atmos/mem055/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_60.list b/parm/transfer_gdas_enkf_enkf_60.list index 82242f1223..494b8003a3 100644 --- a/parm/transfer_gdas_enkf_enkf_60.list +++ b/parm/transfer_gdas_enkf_enkf_60.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem056/ -+ /??/mem056/** -+ /??/mem057/ -+ /??/mem057/** -+ /??/mem058/ -+ /??/mem058/** -+ /??/mem059/ -+ /??/mem059/** -+ /??/mem060/ -+ /??/mem060/** ++ /??/atmos/ ++ /??/atmos/mem056/ ++ /??/atmos/mem056/** ++ /??/atmos/mem057/ ++ /??/atmos/mem057/** ++ /??/atmos/mem058/ ++ /??/atmos/mem058/** ++ /??/atmos/mem059/ ++ /??/atmos/mem059/** ++ /??/atmos/mem060/ ++ /??/atmos/mem060/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem056/ -+ /??/mem056/** -+ /??/mem057/ -+ /??/mem057/** -+ /??/mem058/ -+ /??/mem058/** -+ /??/mem059/ -+ /??/mem059/** -+ /??/mem060/ -+ /??/mem060/** ++ /??/atmos/ ++ /??/atmos/mem056/ ++ /??/atmos/mem056/** ++ /??/atmos/mem057/ ++ /??/atmos/mem057/** ++ /??/atmos/mem058/ ++ /??/atmos/mem058/** ++ /??/atmos/mem059/ ++ /??/atmos/mem059/** ++ /??/atmos/mem060/ ++ /??/atmos/mem060/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_65.list b/parm/transfer_gdas_enkf_enkf_65.list index 32a14e6e17..63d5af0575 100644 --- a/parm/transfer_gdas_enkf_enkf_65.list +++ b/parm/transfer_gdas_enkf_enkf_65.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem061/ -+ /??/mem061/** -+ /??/mem062/ -+ /??/mem062/** -+ /??/mem063/ -+ /??/mem063/** -+ /??/mem064/ -+ /??/mem064/** -+ /??/mem065/ -+ /??/mem065/** ++ /??/atmos/ ++ /??/atmos/mem061/ ++ /??/atmos/mem061/** ++ /??/atmos/mem062/ ++ /??/atmos/mem062/** ++ /??/atmos/mem063/ ++ /??/atmos/mem063/** ++ /??/atmos/mem064/ ++ /??/atmos/mem064/** ++ /??/atmos/mem065/ ++ /??/atmos/mem065/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem061/ -+ /??/mem061/** -+ /??/mem062/ -+ /??/mem062/** -+ /??/mem063/ -+ /??/mem063/** -+ /??/mem064/ -+ /??/mem064/** -+ /??/mem065/ -+ /??/mem065/** ++ /??/atmos/ ++ /??/atmos/mem061/ ++ /??/atmos/mem061/** ++ /??/atmos/mem062/ ++ /??/atmos/mem062/** ++ /??/atmos/mem063/ ++ /??/atmos/mem063/** ++ /??/atmos/mem064/ ++ /??/atmos/mem064/** ++ /??/atmos/mem065/ ++ /??/atmos/mem065/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_70.list b/parm/transfer_gdas_enkf_enkf_70.list index 9d143b71c4..b5d484407f 100644 --- a/parm/transfer_gdas_enkf_enkf_70.list +++ b/parm/transfer_gdas_enkf_enkf_70.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem066/ -+ /??/mem066/** -+ /??/mem067/ -+ /??/mem067/** -+ /??/mem068/ -+ /??/mem068/** -+ /??/mem069/ -+ /??/mem069/** -+ /??/mem070/ -+ /??/mem070/** ++ /??/atmos/ ++ /??/atmos/mem066/ ++ /??/atmos/mem066/** ++ /??/atmos/mem067/ ++ /??/atmos/mem067/** ++ /??/atmos/mem068/ ++ /??/atmos/mem068/** ++ /??/atmos/mem069/ ++ /??/atmos/mem069/** ++ /??/atmos/mem070/ ++ /??/atmos/mem070/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem066/ -+ /??/mem066/** -+ /??/mem067/ -+ /??/mem067/** -+ /??/mem068/ -+ /??/mem068/** -+ /??/mem069/ -+ /??/mem069/** -+ /??/mem070/ -+ /??/mem070/** ++ /??/atmos/ ++ /??/atmos/mem066/ ++ /??/atmos/mem066/** ++ /??/atmos/mem067/ ++ /??/atmos/mem067/** ++ /??/atmos/mem068/ ++ /??/atmos/mem068/** ++ /??/atmos/mem069/ ++ /??/atmos/mem069/** ++ /??/atmos/mem070/ ++ /??/atmos/mem070/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_75.list b/parm/transfer_gdas_enkf_enkf_75.list index 7734c0d051..f66df06e64 100644 --- a/parm/transfer_gdas_enkf_enkf_75.list +++ b/parm/transfer_gdas_enkf_enkf_75.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem071/ -+ /??/mem071/** -+ /??/mem072/ -+ /??/mem072/** -+ /??/mem073/ -+ /??/mem073/** -+ /??/mem074/ -+ /??/mem074/** -+ /??/mem075/ -+ /??/mem075/** ++ /??/atmos/ ++ /??/atmos/mem071/ ++ /??/atmos/mem071/** ++ /??/atmos/mem072/ ++ /??/atmos/mem072/** ++ /??/atmos/mem073/ ++ /??/atmos/mem073/** ++ /??/atmos/mem074/ ++ /??/atmos/mem074/** ++ /??/atmos/mem075/ ++ /??/atmos/mem075/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem071/ -+ /??/mem071/** -+ /??/mem072/ -+ /??/mem072/** -+ /??/mem073/ -+ /??/mem073/** -+ /??/mem074/ -+ /??/mem074/** -+ /??/mem075/ -+ /??/mem075/** ++ /??/atmos/ ++ /??/atmos/mem071/ ++ /??/atmos/mem071/** ++ /??/atmos/mem072/ ++ /??/atmos/mem072/** ++ /??/atmos/mem073/ ++ /??/atmos/mem073/** ++ /??/atmos/mem074/ ++ /??/atmos/mem074/** ++ /??/atmos/mem075/ ++ /??/atmos/mem075/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_80.list b/parm/transfer_gdas_enkf_enkf_80.list index 31e7caa97e..cbf1a8a9cd 100644 --- a/parm/transfer_gdas_enkf_enkf_80.list +++ b/parm/transfer_gdas_enkf_enkf_80.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,16 +27,17 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/mem076/ -+ /??/mem076/** -+ /??/mem077/ -+ /??/mem077/** -+ /??/mem078/ -+ /??/mem078/** -+ /??/mem079/ -+ /??/mem079/** -+ /??/mem080/ -+ /??/mem080/** ++ /??/atmos/ ++ /??/atmos/mem076/ ++ /??/atmos/mem076/** ++ /??/atmos/mem077/ ++ /??/atmos/mem077/** ++ /??/atmos/mem078/ ++ /??/atmos/mem078/** ++ /??/atmos/mem079/ ++ /??/atmos/mem079/** ++ /??/atmos/mem080/ ++ /??/atmos/mem080/** - * B 100 @@ -43,16 +45,17 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/mem076/ -+ /??/mem076/** -+ /??/mem077/ -+ /??/mem077/** -+ /??/mem078/ -+ /??/mem078/** -+ /??/mem079/ -+ /??/mem079/** -+ /??/mem080/ -+ /??/mem080/** ++ /??/atmos/ ++ /??/atmos/mem076/ ++ /??/atmos/mem076/** ++ /??/atmos/mem077/ ++ /??/atmos/mem077/** ++ /??/atmos/mem078/ ++ /??/atmos/mem078/** ++ /??/atmos/mem079/ ++ /??/atmos/mem079/** ++ /??/atmos/mem080/ ++ /??/atmos/mem080/** - * B 100 diff --git a/parm/transfer_gdas_enkf_enkf_misc.list b/parm/transfer_gdas_enkf_enkf_misc.list index ef6d47fa0e..14d052889e 100644 --- a/parm/transfer_gdas_enkf_enkf_misc.list +++ b/parm/transfer_gdas_enkf_enkf_misc.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -26,7 +27,8 @@ #com/gfs/_ENVIR_/enkfgdas._PDY_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /??/ -+ /??/* ++ /??/atmos/ ++ /??/atmos/* - * B 100 @@ -34,7 +36,8 @@ B 100 #com/gfs/_ENVIR_/enkfgdas._PDYm1_/ /gpfs/dell1/nco/ops/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /??/ -+ /??/* ++ /??/atmos/ ++ /??/atmos/* - * B 100 diff --git a/parm/transfer_gdas_misc.list b/parm/transfer_gdas_misc.list old mode 100755 new mode 100644 index 1d86dca379..6687262a45 --- a/parm/transfer_gdas_misc.list +++ b/parm/transfer_gdas_misc.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a diff --git a/parm/transfer_gfs_1.list b/parm/transfer_gfs_1.list index 91f118d16f..ce70343214 100644 --- a/parm/transfer_gfs_1.list +++ b/parm/transfer_gfs_1.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,18 +26,25 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -- /??/gfs.t??z.atmf???.nemsio -- /??/gfs.t??z.sfcf???.nemsio -- /??/gfs.t??z.master.* - ++ /??/atmos/ +- /??/atmos/gfs.t??z.atmf???.nc +- /??/atmos/gfs.t??z.sfcf???.nc +- /??/atmos/gfs.t??z.master.* +- /??/atmos/gempak/ +- /??/atmos/gempak/* +- /??/wave/ +- /??/wave/* B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -- /??/gfs.t??z.atmf???.nemsio -- /??/gfs.t??z.sfcf???.nemsio -- /??/gfs.t??z.master.* - ++ /??/atmos/ +- /??/atmos/gfs.t??z.atmf???.nc +- /??/atmos/gfs.t??z.sfcf???.nc +- /??/atmos/gfs.t??z.master.* +- /??/atmos/gempak/ +- /??/atmos/gempak/* +- /??/wave/ +- /??/wave/* B 100 - diff --git a/parm/transfer_gfs_10a.list b/parm/transfer_gfs_10a.list index b09f4ffd6b..a938573073 100644 --- a/parm/transfer_gfs_10a.list +++ b/parm/transfer_gfs_10a.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,25 +26,24 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.master.*l -+ /??/gfs.t??z.master.*1 -+ /??/gfs.t??z.master.*3 -+ /??/gfs.t??z.master.*5 -+ /??/gfs.t??z.master.*7 -+ /??/gfs.t??z.master.*9 ++ /??/atmos/ ++ /??/atmos/gfs.t??z.master.*1 ++ /??/atmos/gfs.t??z.master.*3 ++ /??/atmos/gfs.t??z.master.*5 ++ /??/atmos/gfs.t??z.master.*7 ++ /??/atmos/gfs.t??z.master.*9 - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.master.*l -+ /??/gfs.t??z.master.*1 -+ /??/gfs.t??z.master.*3 -+ /??/gfs.t??z.master.*5 -+ /??/gfs.t??z.master.*7 -+ /??/gfs.t??z.master.*9 ++ /??/atmos/ ++ /??/atmos/gfs.t??z.master.*1 ++ /??/atmos/gfs.t??z.master.*3 ++ /??/atmos/gfs.t??z.master.*5 ++ /??/atmos/gfs.t??z.master.*7 ++ /??/atmos/gfs.t??z.master.*9 - * - B 100 diff --git a/parm/transfer_gfs_10b.list b/parm/transfer_gfs_10b.list index f6d9bf4d6d..83467d6d25 100644 --- a/parm/transfer_gfs_10b.list +++ b/parm/transfer_gfs_10b.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,21 +26,23 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.master.*0 -+ /??/gfs.t??z.master.*2 -+ /??/gfs.t??z.master.*4 -+ /??/gfs.t??z.master.*6 -+ /??/gfs.t??z.master.*8 ++ /??/atmos/ ++ /??/atmos/gfs.t??z.master.*0 ++ /??/atmos/gfs.t??z.master.*2 ++ /??/atmos/gfs.t??z.master.*4 ++ /??/atmos/gfs.t??z.master.*6 ++ /??/atmos/gfs.t??z.master.*8 - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.master.*0 -+ /??/gfs.t??z.master.*2 -+ /??/gfs.t??z.master.*4 -+ /??/gfs.t??z.master.*6 -+ /??/gfs.t??z.master.*8 ++ /??/atmos/ ++ /??/atmos/gfs.t??z.master.*0 ++ /??/atmos/gfs.t??z.master.*2 ++ /??/atmos/gfs.t??z.master.*4 ++ /??/atmos/gfs.t??z.master.*6 ++ /??/atmos/gfs.t??z.master.*8 - * B 100 diff --git a/parm/transfer_gfs_2.list b/parm/transfer_gfs_2.list index f430bdf642..373ebfae05 100644 --- a/parm/transfer_gfs_2.list +++ b/parm/transfer_gfs_2.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,72 +26,74 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.atmf000.nemsio -+ /??/gfs.t??z.atmf007.nemsio -+ /??/gfs.t??z.atmf014.nemsio -+ /??/gfs.t??z.atmf021.nemsio -+ /??/gfs.t??z.atmf028.nemsio -+ /??/gfs.t??z.atmf035.nemsio -+ /??/gfs.t??z.atmf042.nemsio -+ /??/gfs.t??z.atmf049.nemsio -+ /??/gfs.t??z.atmf056.nemsio -+ /??/gfs.t??z.atmf063.nemsio -+ /??/gfs.t??z.atmf070.nemsio -+ /??/gfs.t??z.atmf077.nemsio -+ /??/gfs.t??z.atmf084.nemsio -+ /??/gfs.t??z.atmf091.nemsio -+ /??/gfs.t??z.atmf098.nemsio -+ /??/gfs.t??z.atmf105.nemsio -+ /??/gfs.t??z.atmf112.nemsio -+ /??/gfs.t??z.atmf119.nemsio -+ /??/gfs.t??z.atmf138.nemsio -+ /??/gfs.t??z.atmf159.nemsio -+ /??/gfs.t??z.atmf180.nemsio -+ /??/gfs.t??z.atmf201.nemsio -+ /??/gfs.t??z.atmf222.nemsio -+ /??/gfs.t??z.atmf243.nemsio -+ /??/gfs.t??z.atmf264.nemsio -+ /??/gfs.t??z.atmf285.nemsio -+ /??/gfs.t??z.atmf306.nemsio -+ /??/gfs.t??z.atmf327.nemsio -+ /??/gfs.t??z.atmf348.nemsio -+ /??/gfs.t??z.atmf369.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf000.nc ++ /??/atmos/gfs.t??z.atmf007.nc ++ /??/atmos/gfs.t??z.atmf014.nc ++ /??/atmos/gfs.t??z.atmf021.nc ++ /??/atmos/gfs.t??z.atmf028.nc ++ /??/atmos/gfs.t??z.atmf035.nc ++ /??/atmos/gfs.t??z.atmf042.nc ++ /??/atmos/gfs.t??z.atmf049.nc ++ /??/atmos/gfs.t??z.atmf056.nc ++ /??/atmos/gfs.t??z.atmf063.nc ++ /??/atmos/gfs.t??z.atmf070.nc ++ /??/atmos/gfs.t??z.atmf077.nc ++ /??/atmos/gfs.t??z.atmf084.nc ++ /??/atmos/gfs.t??z.atmf091.nc ++ /??/atmos/gfs.t??z.atmf098.nc ++ /??/atmos/gfs.t??z.atmf105.nc ++ /??/atmos/gfs.t??z.atmf112.nc ++ /??/atmos/gfs.t??z.atmf119.nc ++ /??/atmos/gfs.t??z.atmf138.nc ++ /??/atmos/gfs.t??z.atmf159.nc ++ /??/atmos/gfs.t??z.atmf180.nc ++ /??/atmos/gfs.t??z.atmf201.nc ++ /??/atmos/gfs.t??z.atmf222.nc ++ /??/atmos/gfs.t??z.atmf243.nc ++ /??/atmos/gfs.t??z.atmf264.nc ++ /??/atmos/gfs.t??z.atmf285.nc ++ /??/atmos/gfs.t??z.atmf306.nc ++ /??/atmos/gfs.t??z.atmf327.nc ++ /??/atmos/gfs.t??z.atmf348.nc ++ /??/atmos/gfs.t??z.atmf369.nc - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.atmf000.nemsio -+ /??/gfs.t??z.atmf007.nemsio -+ /??/gfs.t??z.atmf014.nemsio -+ /??/gfs.t??z.atmf021.nemsio -+ /??/gfs.t??z.atmf028.nemsio -+ /??/gfs.t??z.atmf035.nemsio -+ /??/gfs.t??z.atmf042.nemsio -+ /??/gfs.t??z.atmf049.nemsio -+ /??/gfs.t??z.atmf056.nemsio -+ /??/gfs.t??z.atmf063.nemsio -+ /??/gfs.t??z.atmf070.nemsio -+ /??/gfs.t??z.atmf077.nemsio -+ /??/gfs.t??z.atmf084.nemsio -+ /??/gfs.t??z.atmf091.nemsio -+ /??/gfs.t??z.atmf098.nemsio -+ /??/gfs.t??z.atmf105.nemsio -+ /??/gfs.t??z.atmf112.nemsio -+ /??/gfs.t??z.atmf119.nemsio -+ /??/gfs.t??z.atmf138.nemsio -+ /??/gfs.t??z.atmf159.nemsio -+ /??/gfs.t??z.atmf180.nemsio -+ /??/gfs.t??z.atmf201.nemsio -+ /??/gfs.t??z.atmf222.nemsio -+ /??/gfs.t??z.atmf243.nemsio -+ /??/gfs.t??z.atmf264.nemsio -+ /??/gfs.t??z.atmf285.nemsio -+ /??/gfs.t??z.atmf306.nemsio -+ /??/gfs.t??z.atmf327.nemsio -+ /??/gfs.t??z.atmf348.nemsio -+ /??/gfs.t??z.atmf369.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf000.nc ++ /??/atmos/gfs.t??z.atmf007.nc ++ /??/atmos/gfs.t??z.atmf014.nc ++ /??/atmos/gfs.t??z.atmf021.nc ++ /??/atmos/gfs.t??z.atmf028.nc ++ /??/atmos/gfs.t??z.atmf035.nc ++ /??/atmos/gfs.t??z.atmf042.nc ++ /??/atmos/gfs.t??z.atmf049.nc ++ /??/atmos/gfs.t??z.atmf056.nc ++ /??/atmos/gfs.t??z.atmf063.nc ++ /??/atmos/gfs.t??z.atmf070.nc ++ /??/atmos/gfs.t??z.atmf077.nc ++ /??/atmos/gfs.t??z.atmf084.nc ++ /??/atmos/gfs.t??z.atmf091.nc ++ /??/atmos/gfs.t??z.atmf098.nc ++ /??/atmos/gfs.t??z.atmf105.nc ++ /??/atmos/gfs.t??z.atmf112.nc ++ /??/atmos/gfs.t??z.atmf119.nc ++ /??/atmos/gfs.t??z.atmf138.nc ++ /??/atmos/gfs.t??z.atmf159.nc ++ /??/atmos/gfs.t??z.atmf180.nc ++ /??/atmos/gfs.t??z.atmf201.nc ++ /??/atmos/gfs.t??z.atmf222.nc ++ /??/atmos/gfs.t??z.atmf243.nc ++ /??/atmos/gfs.t??z.atmf264.nc ++ /??/atmos/gfs.t??z.atmf285.nc ++ /??/atmos/gfs.t??z.atmf306.nc ++ /??/atmos/gfs.t??z.atmf327.nc ++ /??/atmos/gfs.t??z.atmf348.nc ++ /??/atmos/gfs.t??z.atmf369.nc - * B 100 diff --git a/parm/transfer_gfs_3.list b/parm/transfer_gfs_3.list index 7ff973c52a..a5218e198a 100644 --- a/parm/transfer_gfs_3.list +++ b/parm/transfer_gfs_3.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,72 +26,74 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.atmf001.nemsio -+ /??/gfs.t??z.atmf008.nemsio -+ /??/gfs.t??z.atmf015.nemsio -+ /??/gfs.t??z.atmf022.nemsio -+ /??/gfs.t??z.atmf029.nemsio -+ /??/gfs.t??z.atmf036.nemsio -+ /??/gfs.t??z.atmf043.nemsio -+ /??/gfs.t??z.atmf050.nemsio -+ /??/gfs.t??z.atmf057.nemsio -+ /??/gfs.t??z.atmf064.nemsio -+ /??/gfs.t??z.atmf071.nemsio -+ /??/gfs.t??z.atmf078.nemsio -+ /??/gfs.t??z.atmf085.nemsio -+ /??/gfs.t??z.atmf092.nemsio -+ /??/gfs.t??z.atmf099.nemsio -+ /??/gfs.t??z.atmf106.nemsio -+ /??/gfs.t??z.atmf113.nemsio -+ /??/gfs.t??z.atmf120.nemsio -+ /??/gfs.t??z.atmf141.nemsio -+ /??/gfs.t??z.atmf162.nemsio -+ /??/gfs.t??z.atmf183.nemsio -+ /??/gfs.t??z.atmf204.nemsio -+ /??/gfs.t??z.atmf225.nemsio -+ /??/gfs.t??z.atmf246.nemsio -+ /??/gfs.t??z.atmf267.nemsio -+ /??/gfs.t??z.atmf288.nemsio -+ /??/gfs.t??z.atmf309.nemsio -+ /??/gfs.t??z.atmf330.nemsio -+ /??/gfs.t??z.atmf351.nemsio -+ /??/gfs.t??z.atmf372.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf001.nc ++ /??/atmos/gfs.t??z.atmf008.nc ++ /??/atmos/gfs.t??z.atmf015.nc ++ /??/atmos/gfs.t??z.atmf022.nc ++ /??/atmos/gfs.t??z.atmf029.nc ++ /??/atmos/gfs.t??z.atmf036.nc ++ /??/atmos/gfs.t??z.atmf043.nc ++ /??/atmos/gfs.t??z.atmf050.nc ++ /??/atmos/gfs.t??z.atmf057.nc ++ /??/atmos/gfs.t??z.atmf064.nc ++ /??/atmos/gfs.t??z.atmf071.nc ++ /??/atmos/gfs.t??z.atmf078.nc ++ /??/atmos/gfs.t??z.atmf085.nc ++ /??/atmos/gfs.t??z.atmf092.nc ++ /??/atmos/gfs.t??z.atmf099.nc ++ /??/atmos/gfs.t??z.atmf106.nc ++ /??/atmos/gfs.t??z.atmf113.nc ++ /??/atmos/gfs.t??z.atmf120.nc ++ /??/atmos/gfs.t??z.atmf141.nc ++ /??/atmos/gfs.t??z.atmf162.nc ++ /??/atmos/gfs.t??z.atmf183.nc ++ /??/atmos/gfs.t??z.atmf204.nc ++ /??/atmos/gfs.t??z.atmf225.nc ++ /??/atmos/gfs.t??z.atmf246.nc ++ /??/atmos/gfs.t??z.atmf267.nc ++ /??/atmos/gfs.t??z.atmf288.nc ++ /??/atmos/gfs.t??z.atmf309.nc ++ /??/atmos/gfs.t??z.atmf330.nc ++ /??/atmos/gfs.t??z.atmf351.nc ++ /??/atmos/gfs.t??z.atmf372.nc - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.atmf001.nemsio -+ /??/gfs.t??z.atmf008.nemsio -+ /??/gfs.t??z.atmf015.nemsio -+ /??/gfs.t??z.atmf022.nemsio -+ /??/gfs.t??z.atmf029.nemsio -+ /??/gfs.t??z.atmf036.nemsio -+ /??/gfs.t??z.atmf043.nemsio -+ /??/gfs.t??z.atmf050.nemsio -+ /??/gfs.t??z.atmf057.nemsio -+ /??/gfs.t??z.atmf064.nemsio -+ /??/gfs.t??z.atmf071.nemsio -+ /??/gfs.t??z.atmf078.nemsio -+ /??/gfs.t??z.atmf085.nemsio -+ /??/gfs.t??z.atmf092.nemsio -+ /??/gfs.t??z.atmf099.nemsio -+ /??/gfs.t??z.atmf106.nemsio -+ /??/gfs.t??z.atmf113.nemsio -+ /??/gfs.t??z.atmf120.nemsio -+ /??/gfs.t??z.atmf141.nemsio -+ /??/gfs.t??z.atmf162.nemsio -+ /??/gfs.t??z.atmf183.nemsio -+ /??/gfs.t??z.atmf204.nemsio -+ /??/gfs.t??z.atmf225.nemsio -+ /??/gfs.t??z.atmf246.nemsio -+ /??/gfs.t??z.atmf267.nemsio -+ /??/gfs.t??z.atmf288.nemsio -+ /??/gfs.t??z.atmf309.nemsio -+ /??/gfs.t??z.atmf330.nemsio -+ /??/gfs.t??z.atmf351.nemsio -+ /??/gfs.t??z.atmf372.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf001.nc ++ /??/atmos/gfs.t??z.atmf008.nc ++ /??/atmos/gfs.t??z.atmf015.nc ++ /??/atmos/gfs.t??z.atmf022.nc ++ /??/atmos/gfs.t??z.atmf029.nc ++ /??/atmos/gfs.t??z.atmf036.nc ++ /??/atmos/gfs.t??z.atmf043.nc ++ /??/atmos/gfs.t??z.atmf050.nc ++ /??/atmos/gfs.t??z.atmf057.nc ++ /??/atmos/gfs.t??z.atmf064.nc ++ /??/atmos/gfs.t??z.atmf071.nc ++ /??/atmos/gfs.t??z.atmf078.nc ++ /??/atmos/gfs.t??z.atmf085.nc ++ /??/atmos/gfs.t??z.atmf092.nc ++ /??/atmos/gfs.t??z.atmf099.nc ++ /??/atmos/gfs.t??z.atmf106.nc ++ /??/atmos/gfs.t??z.atmf113.nc ++ /??/atmos/gfs.t??z.atmf120.nc ++ /??/atmos/gfs.t??z.atmf141.nc ++ /??/atmos/gfs.t??z.atmf162.nc ++ /??/atmos/gfs.t??z.atmf183.nc ++ /??/atmos/gfs.t??z.atmf204.nc ++ /??/atmos/gfs.t??z.atmf225.nc ++ /??/atmos/gfs.t??z.atmf246.nc ++ /??/atmos/gfs.t??z.atmf267.nc ++ /??/atmos/gfs.t??z.atmf288.nc ++ /??/atmos/gfs.t??z.atmf309.nc ++ /??/atmos/gfs.t??z.atmf330.nc ++ /??/atmos/gfs.t??z.atmf351.nc ++ /??/atmos/gfs.t??z.atmf372.nc - * B 100 diff --git a/parm/transfer_gfs_4.list b/parm/transfer_gfs_4.list index 43516897d1..37acec25ab 100644 --- a/parm/transfer_gfs_4.list +++ b/parm/transfer_gfs_4.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,72 +26,74 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.atmf002.nemsio -+ /??/gfs.t??z.atmf009.nemsio -+ /??/gfs.t??z.atmf016.nemsio -+ /??/gfs.t??z.atmf023.nemsio -+ /??/gfs.t??z.atmf030.nemsio -+ /??/gfs.t??z.atmf037.nemsio -+ /??/gfs.t??z.atmf044.nemsio -+ /??/gfs.t??z.atmf051.nemsio -+ /??/gfs.t??z.atmf058.nemsio -+ /??/gfs.t??z.atmf065.nemsio -+ /??/gfs.t??z.atmf072.nemsio -+ /??/gfs.t??z.atmf079.nemsio -+ /??/gfs.t??z.atmf086.nemsio -+ /??/gfs.t??z.atmf093.nemsio -+ /??/gfs.t??z.atmf100.nemsio -+ /??/gfs.t??z.atmf107.nemsio -+ /??/gfs.t??z.atmf114.nemsio -+ /??/gfs.t??z.atmf123.nemsio -+ /??/gfs.t??z.atmf144.nemsio -+ /??/gfs.t??z.atmf165.nemsio -+ /??/gfs.t??z.atmf186.nemsio -+ /??/gfs.t??z.atmf207.nemsio -+ /??/gfs.t??z.atmf228.nemsio -+ /??/gfs.t??z.atmf249.nemsio -+ /??/gfs.t??z.atmf270.nemsio -+ /??/gfs.t??z.atmf291.nemsio -+ /??/gfs.t??z.atmf312.nemsio -+ /??/gfs.t??z.atmf333.nemsio -+ /??/gfs.t??z.atmf354.nemsio -+ /??/gfs.t??z.atmf375.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf002.nc ++ /??/atmos/gfs.t??z.atmf009.nc ++ /??/atmos/gfs.t??z.atmf016.nc ++ /??/atmos/gfs.t??z.atmf023.nc ++ /??/atmos/gfs.t??z.atmf030.nc ++ /??/atmos/gfs.t??z.atmf037.nc ++ /??/atmos/gfs.t??z.atmf044.nc ++ /??/atmos/gfs.t??z.atmf051.nc ++ /??/atmos/gfs.t??z.atmf058.nc ++ /??/atmos/gfs.t??z.atmf065.nc ++ /??/atmos/gfs.t??z.atmf072.nc ++ /??/atmos/gfs.t??z.atmf079.nc ++ /??/atmos/gfs.t??z.atmf086.nc ++ /??/atmos/gfs.t??z.atmf093.nc ++ /??/atmos/gfs.t??z.atmf100.nc ++ /??/atmos/gfs.t??z.atmf107.nc ++ /??/atmos/gfs.t??z.atmf114.nc ++ /??/atmos/gfs.t??z.atmf123.nc ++ /??/atmos/gfs.t??z.atmf144.nc ++ /??/atmos/gfs.t??z.atmf165.nc ++ /??/atmos/gfs.t??z.atmf186.nc ++ /??/atmos/gfs.t??z.atmf207.nc ++ /??/atmos/gfs.t??z.atmf228.nc ++ /??/atmos/gfs.t??z.atmf249.nc ++ /??/atmos/gfs.t??z.atmf270.nc ++ /??/atmos/gfs.t??z.atmf291.nc ++ /??/atmos/gfs.t??z.atmf312.nc ++ /??/atmos/gfs.t??z.atmf333.nc ++ /??/atmos/gfs.t??z.atmf354.nc ++ /??/atmos/gfs.t??z.atmf375.nc - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.atmf002.nemsio -+ /??/gfs.t??z.atmf009.nemsio -+ /??/gfs.t??z.atmf016.nemsio -+ /??/gfs.t??z.atmf023.nemsio -+ /??/gfs.t??z.atmf030.nemsio -+ /??/gfs.t??z.atmf037.nemsio -+ /??/gfs.t??z.atmf044.nemsio -+ /??/gfs.t??z.atmf051.nemsio -+ /??/gfs.t??z.atmf058.nemsio -+ /??/gfs.t??z.atmf065.nemsio -+ /??/gfs.t??z.atmf072.nemsio -+ /??/gfs.t??z.atmf079.nemsio -+ /??/gfs.t??z.atmf086.nemsio -+ /??/gfs.t??z.atmf093.nemsio -+ /??/gfs.t??z.atmf100.nemsio -+ /??/gfs.t??z.atmf107.nemsio -+ /??/gfs.t??z.atmf114.nemsio -+ /??/gfs.t??z.atmf123.nemsio -+ /??/gfs.t??z.atmf144.nemsio -+ /??/gfs.t??z.atmf165.nemsio -+ /??/gfs.t??z.atmf186.nemsio -+ /??/gfs.t??z.atmf207.nemsio -+ /??/gfs.t??z.atmf228.nemsio -+ /??/gfs.t??z.atmf249.nemsio -+ /??/gfs.t??z.atmf270.nemsio -+ /??/gfs.t??z.atmf291.nemsio -+ /??/gfs.t??z.atmf312.nemsio -+ /??/gfs.t??z.atmf333.nemsio -+ /??/gfs.t??z.atmf354.nemsio -+ /??/gfs.t??z.atmf375.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf002.nc ++ /??/atmos/gfs.t??z.atmf009.nc ++ /??/atmos/gfs.t??z.atmf016.nc ++ /??/atmos/gfs.t??z.atmf023.nc ++ /??/atmos/gfs.t??z.atmf030.nc ++ /??/atmos/gfs.t??z.atmf037.nc ++ /??/atmos/gfs.t??z.atmf044.nc ++ /??/atmos/gfs.t??z.atmf051.nc ++ /??/atmos/gfs.t??z.atmf058.nc ++ /??/atmos/gfs.t??z.atmf065.nc ++ /??/atmos/gfs.t??z.atmf072.nc ++ /??/atmos/gfs.t??z.atmf079.nc ++ /??/atmos/gfs.t??z.atmf086.nc ++ /??/atmos/gfs.t??z.atmf093.nc ++ /??/atmos/gfs.t??z.atmf100.nc ++ /??/atmos/gfs.t??z.atmf107.nc ++ /??/atmos/gfs.t??z.atmf114.nc ++ /??/atmos/gfs.t??z.atmf123.nc ++ /??/atmos/gfs.t??z.atmf144.nc ++ /??/atmos/gfs.t??z.atmf165.nc ++ /??/atmos/gfs.t??z.atmf186.nc ++ /??/atmos/gfs.t??z.atmf207.nc ++ /??/atmos/gfs.t??z.atmf228.nc ++ /??/atmos/gfs.t??z.atmf249.nc ++ /??/atmos/gfs.t??z.atmf270.nc ++ /??/atmos/gfs.t??z.atmf291.nc ++ /??/atmos/gfs.t??z.atmf312.nc ++ /??/atmos/gfs.t??z.atmf333.nc ++ /??/atmos/gfs.t??z.atmf354.nc ++ /??/atmos/gfs.t??z.atmf375.nc - * B 100 diff --git a/parm/transfer_gfs_5.list b/parm/transfer_gfs_5.list index cf8e69e71f..01e01c2447 100644 --- a/parm/transfer_gfs_5.list +++ b/parm/transfer_gfs_5.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,72 +26,74 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.atmf003.nemsio -+ /??/gfs.t??z.atmf010.nemsio -+ /??/gfs.t??z.atmf017.nemsio -+ /??/gfs.t??z.atmf024.nemsio -+ /??/gfs.t??z.atmf031.nemsio -+ /??/gfs.t??z.atmf038.nemsio -+ /??/gfs.t??z.atmf045.nemsio -+ /??/gfs.t??z.atmf052.nemsio -+ /??/gfs.t??z.atmf059.nemsio -+ /??/gfs.t??z.atmf066.nemsio -+ /??/gfs.t??z.atmf073.nemsio -+ /??/gfs.t??z.atmf080.nemsio -+ /??/gfs.t??z.atmf087.nemsio -+ /??/gfs.t??z.atmf094.nemsio -+ /??/gfs.t??z.atmf101.nemsio -+ /??/gfs.t??z.atmf108.nemsio -+ /??/gfs.t??z.atmf115.nemsio -+ /??/gfs.t??z.atmf126.nemsio -+ /??/gfs.t??z.atmf147.nemsio -+ /??/gfs.t??z.atmf168.nemsio -+ /??/gfs.t??z.atmf189.nemsio -+ /??/gfs.t??z.atmf210.nemsio -+ /??/gfs.t??z.atmf231.nemsio -+ /??/gfs.t??z.atmf252.nemsio -+ /??/gfs.t??z.atmf273.nemsio -+ /??/gfs.t??z.atmf294.nemsio -+ /??/gfs.t??z.atmf315.nemsio -+ /??/gfs.t??z.atmf336.nemsio -+ /??/gfs.t??z.atmf357.nemsio -+ /??/gfs.t??z.atmf378.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf003.nc ++ /??/atmos/gfs.t??z.atmf010.nc ++ /??/atmos/gfs.t??z.atmf017.nc ++ /??/atmos/gfs.t??z.atmf024.nc ++ /??/atmos/gfs.t??z.atmf031.nc ++ /??/atmos/gfs.t??z.atmf038.nc ++ /??/atmos/gfs.t??z.atmf045.nc ++ /??/atmos/gfs.t??z.atmf052.nc ++ /??/atmos/gfs.t??z.atmf059.nc ++ /??/atmos/gfs.t??z.atmf066.nc ++ /??/atmos/gfs.t??z.atmf073.nc ++ /??/atmos/gfs.t??z.atmf080.nc ++ /??/atmos/gfs.t??z.atmf087.nc ++ /??/atmos/gfs.t??z.atmf094.nc ++ /??/atmos/gfs.t??z.atmf101.nc ++ /??/atmos/gfs.t??z.atmf108.nc ++ /??/atmos/gfs.t??z.atmf115.nc ++ /??/atmos/gfs.t??z.atmf126.nc ++ /??/atmos/gfs.t??z.atmf147.nc ++ /??/atmos/gfs.t??z.atmf168.nc ++ /??/atmos/gfs.t??z.atmf189.nc ++ /??/atmos/gfs.t??z.atmf210.nc ++ /??/atmos/gfs.t??z.atmf231.nc ++ /??/atmos/gfs.t??z.atmf252.nc ++ /??/atmos/gfs.t??z.atmf273.nc ++ /??/atmos/gfs.t??z.atmf294.nc ++ /??/atmos/gfs.t??z.atmf315.nc ++ /??/atmos/gfs.t??z.atmf336.nc ++ /??/atmos/gfs.t??z.atmf357.nc ++ /??/atmos/gfs.t??z.atmf378.nc - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.atmf003.nemsio -+ /??/gfs.t??z.atmf010.nemsio -+ /??/gfs.t??z.atmf017.nemsio -+ /??/gfs.t??z.atmf024.nemsio -+ /??/gfs.t??z.atmf031.nemsio -+ /??/gfs.t??z.atmf038.nemsio -+ /??/gfs.t??z.atmf045.nemsio -+ /??/gfs.t??z.atmf052.nemsio -+ /??/gfs.t??z.atmf059.nemsio -+ /??/gfs.t??z.atmf066.nemsio -+ /??/gfs.t??z.atmf073.nemsio -+ /??/gfs.t??z.atmf080.nemsio -+ /??/gfs.t??z.atmf087.nemsio -+ /??/gfs.t??z.atmf094.nemsio -+ /??/gfs.t??z.atmf101.nemsio -+ /??/gfs.t??z.atmf108.nemsio -+ /??/gfs.t??z.atmf115.nemsio -+ /??/gfs.t??z.atmf126.nemsio -+ /??/gfs.t??z.atmf147.nemsio -+ /??/gfs.t??z.atmf168.nemsio -+ /??/gfs.t??z.atmf189.nemsio -+ /??/gfs.t??z.atmf210.nemsio -+ /??/gfs.t??z.atmf231.nemsio -+ /??/gfs.t??z.atmf252.nemsio -+ /??/gfs.t??z.atmf273.nemsio -+ /??/gfs.t??z.atmf294.nemsio -+ /??/gfs.t??z.atmf315.nemsio -+ /??/gfs.t??z.atmf336.nemsio -+ /??/gfs.t??z.atmf357.nemsio -+ /??/gfs.t??z.atmf378.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf003.nc ++ /??/atmos/gfs.t??z.atmf010.nc ++ /??/atmos/gfs.t??z.atmf017.nc ++ /??/atmos/gfs.t??z.atmf024.nc ++ /??/atmos/gfs.t??z.atmf031.nc ++ /??/atmos/gfs.t??z.atmf038.nc ++ /??/atmos/gfs.t??z.atmf045.nc ++ /??/atmos/gfs.t??z.atmf052.nc ++ /??/atmos/gfs.t??z.atmf059.nc ++ /??/atmos/gfs.t??z.atmf066.nc ++ /??/atmos/gfs.t??z.atmf073.nc ++ /??/atmos/gfs.t??z.atmf080.nc ++ /??/atmos/gfs.t??z.atmf087.nc ++ /??/atmos/gfs.t??z.atmf094.nc ++ /??/atmos/gfs.t??z.atmf101.nc ++ /??/atmos/gfs.t??z.atmf108.nc ++ /??/atmos/gfs.t??z.atmf115.nc ++ /??/atmos/gfs.t??z.atmf126.nc ++ /??/atmos/gfs.t??z.atmf147.nc ++ /??/atmos/gfs.t??z.atmf168.nc ++ /??/atmos/gfs.t??z.atmf189.nc ++ /??/atmos/gfs.t??z.atmf210.nc ++ /??/atmos/gfs.t??z.atmf231.nc ++ /??/atmos/gfs.t??z.atmf252.nc ++ /??/atmos/gfs.t??z.atmf273.nc ++ /??/atmos/gfs.t??z.atmf294.nc ++ /??/atmos/gfs.t??z.atmf315.nc ++ /??/atmos/gfs.t??z.atmf336.nc ++ /??/atmos/gfs.t??z.atmf357.nc ++ /??/atmos/gfs.t??z.atmf378.nc - * B 100 diff --git a/parm/transfer_gfs_6.list b/parm/transfer_gfs_6.list index bf12243991..de661359f7 100644 --- a/parm/transfer_gfs_6.list +++ b/parm/transfer_gfs_6.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,72 +26,74 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.atmf004.nemsio -+ /??/gfs.t??z.atmf011.nemsio -+ /??/gfs.t??z.atmf018.nemsio -+ /??/gfs.t??z.atmf025.nemsio -+ /??/gfs.t??z.atmf032.nemsio -+ /??/gfs.t??z.atmf039.nemsio -+ /??/gfs.t??z.atmf046.nemsio -+ /??/gfs.t??z.atmf053.nemsio -+ /??/gfs.t??z.atmf060.nemsio -+ /??/gfs.t??z.atmf067.nemsio -+ /??/gfs.t??z.atmf074.nemsio -+ /??/gfs.t??z.atmf081.nemsio -+ /??/gfs.t??z.atmf088.nemsio -+ /??/gfs.t??z.atmf095.nemsio -+ /??/gfs.t??z.atmf102.nemsio -+ /??/gfs.t??z.atmf109.nemsio -+ /??/gfs.t??z.atmf116.nemsio -+ /??/gfs.t??z.atmf129.nemsio -+ /??/gfs.t??z.atmf150.nemsio -+ /??/gfs.t??z.atmf171.nemsio -+ /??/gfs.t??z.atmf192.nemsio -+ /??/gfs.t??z.atmf213.nemsio -+ /??/gfs.t??z.atmf234.nemsio -+ /??/gfs.t??z.atmf255.nemsio -+ /??/gfs.t??z.atmf276.nemsio -+ /??/gfs.t??z.atmf297.nemsio -+ /??/gfs.t??z.atmf318.nemsio -+ /??/gfs.t??z.atmf339.nemsio -+ /??/gfs.t??z.atmf360.nemsio -+ /??/gfs.t??z.atmf381.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf004.nc ++ /??/atmos/gfs.t??z.atmf011.nc ++ /??/atmos/gfs.t??z.atmf018.nc ++ /??/atmos/gfs.t??z.atmf025.nc ++ /??/atmos/gfs.t??z.atmf032.nc ++ /??/atmos/gfs.t??z.atmf039.nc ++ /??/atmos/gfs.t??z.atmf046.nc ++ /??/atmos/gfs.t??z.atmf053.nc ++ /??/atmos/gfs.t??z.atmf060.nc ++ /??/atmos/gfs.t??z.atmf067.nc ++ /??/atmos/gfs.t??z.atmf074.nc ++ /??/atmos/gfs.t??z.atmf081.nc ++ /??/atmos/gfs.t??z.atmf088.nc ++ /??/atmos/gfs.t??z.atmf095.nc ++ /??/atmos/gfs.t??z.atmf102.nc ++ /??/atmos/gfs.t??z.atmf109.nc ++ /??/atmos/gfs.t??z.atmf116.nc ++ /??/atmos/gfs.t??z.atmf129.nc ++ /??/atmos/gfs.t??z.atmf150.nc ++ /??/atmos/gfs.t??z.atmf171.nc ++ /??/atmos/gfs.t??z.atmf192.nc ++ /??/atmos/gfs.t??z.atmf213.nc ++ /??/atmos/gfs.t??z.atmf234.nc ++ /??/atmos/gfs.t??z.atmf255.nc ++ /??/atmos/gfs.t??z.atmf276.nc ++ /??/atmos/gfs.t??z.atmf297.nc ++ /??/atmos/gfs.t??z.atmf318.nc ++ /??/atmos/gfs.t??z.atmf339.nc ++ /??/atmos/gfs.t??z.atmf360.nc ++ /??/atmos/gfs.t??z.atmf381.nc - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.atmf004.nemsio -+ /??/gfs.t??z.atmf011.nemsio -+ /??/gfs.t??z.atmf018.nemsio -+ /??/gfs.t??z.atmf025.nemsio -+ /??/gfs.t??z.atmf032.nemsio -+ /??/gfs.t??z.atmf039.nemsio -+ /??/gfs.t??z.atmf046.nemsio -+ /??/gfs.t??z.atmf053.nemsio -+ /??/gfs.t??z.atmf060.nemsio -+ /??/gfs.t??z.atmf067.nemsio -+ /??/gfs.t??z.atmf074.nemsio -+ /??/gfs.t??z.atmf081.nemsio -+ /??/gfs.t??z.atmf088.nemsio -+ /??/gfs.t??z.atmf095.nemsio -+ /??/gfs.t??z.atmf102.nemsio -+ /??/gfs.t??z.atmf109.nemsio -+ /??/gfs.t??z.atmf116.nemsio -+ /??/gfs.t??z.atmf129.nemsio -+ /??/gfs.t??z.atmf150.nemsio -+ /??/gfs.t??z.atmf171.nemsio -+ /??/gfs.t??z.atmf192.nemsio -+ /??/gfs.t??z.atmf213.nemsio -+ /??/gfs.t??z.atmf234.nemsio -+ /??/gfs.t??z.atmf255.nemsio -+ /??/gfs.t??z.atmf276.nemsio -+ /??/gfs.t??z.atmf297.nemsio -+ /??/gfs.t??z.atmf318.nemsio -+ /??/gfs.t??z.atmf339.nemsio -+ /??/gfs.t??z.atmf360.nemsio -+ /??/gfs.t??z.atmf381.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf004.nc ++ /??/atmos/gfs.t??z.atmf011.nc ++ /??/atmos/gfs.t??z.atmf018.nc ++ /??/atmos/gfs.t??z.atmf025.nc ++ /??/atmos/gfs.t??z.atmf032.nc ++ /??/atmos/gfs.t??z.atmf039.nc ++ /??/atmos/gfs.t??z.atmf046.nc ++ /??/atmos/gfs.t??z.atmf053.nc ++ /??/atmos/gfs.t??z.atmf060.nc ++ /??/atmos/gfs.t??z.atmf067.nc ++ /??/atmos/gfs.t??z.atmf074.nc ++ /??/atmos/gfs.t??z.atmf081.nc ++ /??/atmos/gfs.t??z.atmf088.nc ++ /??/atmos/gfs.t??z.atmf095.nc ++ /??/atmos/gfs.t??z.atmf102.nc ++ /??/atmos/gfs.t??z.atmf109.nc ++ /??/atmos/gfs.t??z.atmf116.nc ++ /??/atmos/gfs.t??z.atmf129.nc ++ /??/atmos/gfs.t??z.atmf150.nc ++ /??/atmos/gfs.t??z.atmf171.nc ++ /??/atmos/gfs.t??z.atmf192.nc ++ /??/atmos/gfs.t??z.atmf213.nc ++ /??/atmos/gfs.t??z.atmf234.nc ++ /??/atmos/gfs.t??z.atmf255.nc ++ /??/atmos/gfs.t??z.atmf276.nc ++ /??/atmos/gfs.t??z.atmf297.nc ++ /??/atmos/gfs.t??z.atmf318.nc ++ /??/atmos/gfs.t??z.atmf339.nc ++ /??/atmos/gfs.t??z.atmf360.nc ++ /??/atmos/gfs.t??z.atmf381.nc - * B 100 diff --git a/parm/transfer_gfs_7.list b/parm/transfer_gfs_7.list index d44c65f9b1..841d671944 100644 --- a/parm/transfer_gfs_7.list +++ b/parm/transfer_gfs_7.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,72 +26,74 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.atmf005.nemsio -+ /??/gfs.t??z.atmf012.nemsio -+ /??/gfs.t??z.atmf019.nemsio -+ /??/gfs.t??z.atmf026.nemsio -+ /??/gfs.t??z.atmf033.nemsio -+ /??/gfs.t??z.atmf040.nemsio -+ /??/gfs.t??z.atmf047.nemsio -+ /??/gfs.t??z.atmf054.nemsio -+ /??/gfs.t??z.atmf061.nemsio -+ /??/gfs.t??z.atmf068.nemsio -+ /??/gfs.t??z.atmf075.nemsio -+ /??/gfs.t??z.atmf082.nemsio -+ /??/gfs.t??z.atmf089.nemsio -+ /??/gfs.t??z.atmf096.nemsio -+ /??/gfs.t??z.atmf103.nemsio -+ /??/gfs.t??z.atmf110.nemsio -+ /??/gfs.t??z.atmf117.nemsio -+ /??/gfs.t??z.atmf132.nemsio -+ /??/gfs.t??z.atmf153.nemsio -+ /??/gfs.t??z.atmf174.nemsio -+ /??/gfs.t??z.atmf195.nemsio -+ /??/gfs.t??z.atmf216.nemsio -+ /??/gfs.t??z.atmf237.nemsio -+ /??/gfs.t??z.atmf258.nemsio -+ /??/gfs.t??z.atmf279.nemsio -+ /??/gfs.t??z.atmf300.nemsio -+ /??/gfs.t??z.atmf321.nemsio -+ /??/gfs.t??z.atmf342.nemsio -+ /??/gfs.t??z.atmf363.nemsio -+ /??/gfs.t??z.atmf384.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf005.nc ++ /??/atmos/gfs.t??z.atmf012.nc ++ /??/atmos/gfs.t??z.atmf019.nc ++ /??/atmos/gfs.t??z.atmf026.nc ++ /??/atmos/gfs.t??z.atmf033.nc ++ /??/atmos/gfs.t??z.atmf040.nc ++ /??/atmos/gfs.t??z.atmf047.nc ++ /??/atmos/gfs.t??z.atmf054.nc ++ /??/atmos/gfs.t??z.atmf061.nc ++ /??/atmos/gfs.t??z.atmf068.nc ++ /??/atmos/gfs.t??z.atmf075.nc ++ /??/atmos/gfs.t??z.atmf082.nc ++ /??/atmos/gfs.t??z.atmf089.nc ++ /??/atmos/gfs.t??z.atmf096.nc ++ /??/atmos/gfs.t??z.atmf103.nc ++ /??/atmos/gfs.t??z.atmf110.nc ++ /??/atmos/gfs.t??z.atmf117.nc ++ /??/atmos/gfs.t??z.atmf132.nc ++ /??/atmos/gfs.t??z.atmf153.nc ++ /??/atmos/gfs.t??z.atmf174.nc ++ /??/atmos/gfs.t??z.atmf195.nc ++ /??/atmos/gfs.t??z.atmf216.nc ++ /??/atmos/gfs.t??z.atmf237.nc ++ /??/atmos/gfs.t??z.atmf258.nc ++ /??/atmos/gfs.t??z.atmf279.nc ++ /??/atmos/gfs.t??z.atmf300.nc ++ /??/atmos/gfs.t??z.atmf321.nc ++ /??/atmos/gfs.t??z.atmf342.nc ++ /??/atmos/gfs.t??z.atmf363.nc ++ /??/atmos/gfs.t??z.atmf384.nc - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.atmf005.nemsio -+ /??/gfs.t??z.atmf012.nemsio -+ /??/gfs.t??z.atmf019.nemsio -+ /??/gfs.t??z.atmf026.nemsio -+ /??/gfs.t??z.atmf033.nemsio -+ /??/gfs.t??z.atmf040.nemsio -+ /??/gfs.t??z.atmf047.nemsio -+ /??/gfs.t??z.atmf054.nemsio -+ /??/gfs.t??z.atmf061.nemsio -+ /??/gfs.t??z.atmf068.nemsio -+ /??/gfs.t??z.atmf075.nemsio -+ /??/gfs.t??z.atmf082.nemsio -+ /??/gfs.t??z.atmf089.nemsio -+ /??/gfs.t??z.atmf096.nemsio -+ /??/gfs.t??z.atmf103.nemsio -+ /??/gfs.t??z.atmf110.nemsio -+ /??/gfs.t??z.atmf117.nemsio -+ /??/gfs.t??z.atmf132.nemsio -+ /??/gfs.t??z.atmf153.nemsio -+ /??/gfs.t??z.atmf174.nemsio -+ /??/gfs.t??z.atmf195.nemsio -+ /??/gfs.t??z.atmf216.nemsio -+ /??/gfs.t??z.atmf237.nemsio -+ /??/gfs.t??z.atmf258.nemsio -+ /??/gfs.t??z.atmf279.nemsio -+ /??/gfs.t??z.atmf300.nemsio -+ /??/gfs.t??z.atmf321.nemsio -+ /??/gfs.t??z.atmf342.nemsio -+ /??/gfs.t??z.atmf363.nemsio -+ /??/gfs.t??z.atmf384.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf005.nc ++ /??/atmos/gfs.t??z.atmf012.nc ++ /??/atmos/gfs.t??z.atmf019.nc ++ /??/atmos/gfs.t??z.atmf026.nc ++ /??/atmos/gfs.t??z.atmf033.nc ++ /??/atmos/gfs.t??z.atmf040.nc ++ /??/atmos/gfs.t??z.atmf047.nc ++ /??/atmos/gfs.t??z.atmf054.nc ++ /??/atmos/gfs.t??z.atmf061.nc ++ /??/atmos/gfs.t??z.atmf068.nc ++ /??/atmos/gfs.t??z.atmf075.nc ++ /??/atmos/gfs.t??z.atmf082.nc ++ /??/atmos/gfs.t??z.atmf089.nc ++ /??/atmos/gfs.t??z.atmf096.nc ++ /??/atmos/gfs.t??z.atmf103.nc ++ /??/atmos/gfs.t??z.atmf110.nc ++ /??/atmos/gfs.t??z.atmf117.nc ++ /??/atmos/gfs.t??z.atmf132.nc ++ /??/atmos/gfs.t??z.atmf153.nc ++ /??/atmos/gfs.t??z.atmf174.nc ++ /??/atmos/gfs.t??z.atmf195.nc ++ /??/atmos/gfs.t??z.atmf216.nc ++ /??/atmos/gfs.t??z.atmf237.nc ++ /??/atmos/gfs.t??z.atmf258.nc ++ /??/atmos/gfs.t??z.atmf279.nc ++ /??/atmos/gfs.t??z.atmf300.nc ++ /??/atmos/gfs.t??z.atmf321.nc ++ /??/atmos/gfs.t??z.atmf342.nc ++ /??/atmos/gfs.t??z.atmf363.nc ++ /??/atmos/gfs.t??z.atmf384.nc - * B 100 diff --git a/parm/transfer_gfs_8.list b/parm/transfer_gfs_8.list index 1b8997bb1a..744ef24e70 100644 --- a/parm/transfer_gfs_8.list +++ b/parm/transfer_gfs_8.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,70 +26,72 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.atmf006.nemsio -+ /??/gfs.t??z.atmf013.nemsio -+ /??/gfs.t??z.atmf020.nemsio -+ /??/gfs.t??z.atmf027.nemsio -+ /??/gfs.t??z.atmf034.nemsio -+ /??/gfs.t??z.atmf041.nemsio -+ /??/gfs.t??z.atmf048.nemsio -+ /??/gfs.t??z.atmf055.nemsio -+ /??/gfs.t??z.atmf062.nemsio -+ /??/gfs.t??z.atmf069.nemsio -+ /??/gfs.t??z.atmf076.nemsio -+ /??/gfs.t??z.atmf083.nemsio -+ /??/gfs.t??z.atmf090.nemsio -+ /??/gfs.t??z.atmf097.nemsio -+ /??/gfs.t??z.atmf104.nemsio -+ /??/gfs.t??z.atmf111.nemsio -+ /??/gfs.t??z.atmf118.nemsio -+ /??/gfs.t??z.atmf135.nemsio -+ /??/gfs.t??z.atmf156.nemsio -+ /??/gfs.t??z.atmf177.nemsio -+ /??/gfs.t??z.atmf198.nemsio -+ /??/gfs.t??z.atmf219.nemsio -+ /??/gfs.t??z.atmf240.nemsio -+ /??/gfs.t??z.atmf261.nemsio -+ /??/gfs.t??z.atmf282.nemsio -+ /??/gfs.t??z.atmf303.nemsio -+ /??/gfs.t??z.atmf324.nemsio -+ /??/gfs.t??z.atmf345.nemsio -+ /??/gfs.t??z.atmf366.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf006.nc ++ /??/atmos/gfs.t??z.atmf013.nc ++ /??/atmos/gfs.t??z.atmf020.nc ++ /??/atmos/gfs.t??z.atmf027.nc ++ /??/atmos/gfs.t??z.atmf034.nc ++ /??/atmos/gfs.t??z.atmf041.nc ++ /??/atmos/gfs.t??z.atmf048.nc ++ /??/atmos/gfs.t??z.atmf055.nc ++ /??/atmos/gfs.t??z.atmf062.nc ++ /??/atmos/gfs.t??z.atmf069.nc ++ /??/atmos/gfs.t??z.atmf076.nc ++ /??/atmos/gfs.t??z.atmf083.nc ++ /??/atmos/gfs.t??z.atmf090.nc ++ /??/atmos/gfs.t??z.atmf097.nc ++ /??/atmos/gfs.t??z.atmf104.nc ++ /??/atmos/gfs.t??z.atmf111.nc ++ /??/atmos/gfs.t??z.atmf118.nc ++ /??/atmos/gfs.t??z.atmf135.nc ++ /??/atmos/gfs.t??z.atmf156.nc ++ /??/atmos/gfs.t??z.atmf177.nc ++ /??/atmos/gfs.t??z.atmf198.nc ++ /??/atmos/gfs.t??z.atmf219.nc ++ /??/atmos/gfs.t??z.atmf240.nc ++ /??/atmos/gfs.t??z.atmf261.nc ++ /??/atmos/gfs.t??z.atmf282.nc ++ /??/atmos/gfs.t??z.atmf303.nc ++ /??/atmos/gfs.t??z.atmf324.nc ++ /??/atmos/gfs.t??z.atmf345.nc ++ /??/atmos/gfs.t??z.atmf366.nc - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.atmf006.nemsio -+ /??/gfs.t??z.atmf013.nemsio -+ /??/gfs.t??z.atmf020.nemsio -+ /??/gfs.t??z.atmf027.nemsio -+ /??/gfs.t??z.atmf034.nemsio -+ /??/gfs.t??z.atmf041.nemsio -+ /??/gfs.t??z.atmf048.nemsio -+ /??/gfs.t??z.atmf055.nemsio -+ /??/gfs.t??z.atmf062.nemsio -+ /??/gfs.t??z.atmf069.nemsio -+ /??/gfs.t??z.atmf076.nemsio -+ /??/gfs.t??z.atmf083.nemsio -+ /??/gfs.t??z.atmf090.nemsio -+ /??/gfs.t??z.atmf097.nemsio -+ /??/gfs.t??z.atmf104.nemsio -+ /??/gfs.t??z.atmf111.nemsio -+ /??/gfs.t??z.atmf118.nemsio -+ /??/gfs.t??z.atmf135.nemsio -+ /??/gfs.t??z.atmf156.nemsio -+ /??/gfs.t??z.atmf177.nemsio -+ /??/gfs.t??z.atmf198.nemsio -+ /??/gfs.t??z.atmf219.nemsio -+ /??/gfs.t??z.atmf240.nemsio -+ /??/gfs.t??z.atmf261.nemsio -+ /??/gfs.t??z.atmf282.nemsio -+ /??/gfs.t??z.atmf303.nemsio -+ /??/gfs.t??z.atmf324.nemsio -+ /??/gfs.t??z.atmf345.nemsio -+ /??/gfs.t??z.atmf366.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.atmf006.nc ++ /??/atmos/gfs.t??z.atmf013.nc ++ /??/atmos/gfs.t??z.atmf020.nc ++ /??/atmos/gfs.t??z.atmf027.nc ++ /??/atmos/gfs.t??z.atmf034.nc ++ /??/atmos/gfs.t??z.atmf041.nc ++ /??/atmos/gfs.t??z.atmf048.nc ++ /??/atmos/gfs.t??z.atmf055.nc ++ /??/atmos/gfs.t??z.atmf062.nc ++ /??/atmos/gfs.t??z.atmf069.nc ++ /??/atmos/gfs.t??z.atmf076.nc ++ /??/atmos/gfs.t??z.atmf083.nc ++ /??/atmos/gfs.t??z.atmf090.nc ++ /??/atmos/gfs.t??z.atmf097.nc ++ /??/atmos/gfs.t??z.atmf104.nc ++ /??/atmos/gfs.t??z.atmf111.nc ++ /??/atmos/gfs.t??z.atmf118.nc ++ /??/atmos/gfs.t??z.atmf135.nc ++ /??/atmos/gfs.t??z.atmf156.nc ++ /??/atmos/gfs.t??z.atmf177.nc ++ /??/atmos/gfs.t??z.atmf198.nc ++ /??/atmos/gfs.t??z.atmf219.nc ++ /??/atmos/gfs.t??z.atmf240.nc ++ /??/atmos/gfs.t??z.atmf261.nc ++ /??/atmos/gfs.t??z.atmf282.nc ++ /??/atmos/gfs.t??z.atmf303.nc ++ /??/atmos/gfs.t??z.atmf324.nc ++ /??/atmos/gfs.t??z.atmf345.nc ++ /??/atmos/gfs.t??z.atmf366.nc - * B 100 diff --git a/parm/transfer_gfs_9a.list b/parm/transfer_gfs_9a.list index 5c4981fd8c..2f3c34aaaa 100644 --- a/parm/transfer_gfs_9a.list +++ b/parm/transfer_gfs_9a.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,22 +26,24 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.sfcf??0.nemsio -+ /??/gfs.t??z.sfcf??2.nemsio -+ /??/gfs.t??z.sfcf??4.nemsio -+ /??/gfs.t??z.sfcf??6.nemsio -+ /??/gfs.t??z.sfcf??8.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.sfcf??0.nc ++ /??/atmos/gfs.t??z.sfcf??2.nc ++ /??/atmos/gfs.t??z.sfcf??4.nc ++ /??/atmos/gfs.t??z.sfcf??6.nc ++ /??/atmos/gfs.t??z.sfcf??8.nc - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.sfcf??0.nemsio -+ /??/gfs.t??z.sfcf??2.nemsio -+ /??/gfs.t??z.sfcf??4.nemsio -+ /??/gfs.t??z.sfcf??6.nemsio -+ /??/gfs.t??z.sfcf??8.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.sfcf??0.nc ++ /??/atmos/gfs.t??z.sfcf??2.nc ++ /??/atmos/gfs.t??z.sfcf??4.nc ++ /??/atmos/gfs.t??z.sfcf??6.nc ++ /??/atmos/gfs.t??z.sfcf??8.nc - * B 100 diff --git a/parm/transfer_gfs_9b.list b/parm/transfer_gfs_9b.list index f18468fb74..fd87ee88d4 100644 --- a/parm/transfer_gfs_9b.list +++ b/parm/transfer_gfs_9b.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,22 +26,24 @@ com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.sfcf??1.nemsio -+ /??/gfs.t??z.sfcf??3.nemsio -+ /??/gfs.t??z.sfcf??5.nemsio -+ /??/gfs.t??z.sfcf??7.nemsio -+ /??/gfs.t??z.sfcf??9.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.sfcf??1.nc ++ /??/atmos/gfs.t??z.sfcf??3.nc ++ /??/atmos/gfs.t??z.sfcf??5.nc ++ /??/atmos/gfs.t??z.sfcf??7.nc ++ /??/atmos/gfs.t??z.sfcf??9.nc - * B 100 com/gfs/_ENVIR_/gfs._PDYm1_/ + /??/ -+ /??/gfs.t??z.sfcf??1.nemsio -+ /??/gfs.t??z.sfcf??3.nemsio -+ /??/gfs.t??z.sfcf??5.nemsio -+ /??/gfs.t??z.sfcf??7.nemsio -+ /??/gfs.t??z.sfcf??9.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.sfcf??1.nc ++ /??/atmos/gfs.t??z.sfcf??3.nc ++ /??/atmos/gfs.t??z.sfcf??5.nc ++ /??/atmos/gfs.t??z.sfcf??7.nc ++ /??/atmos/gfs.t??z.sfcf??9.nc - * B 100 diff --git a/parm/transfer_gfs_gempak.list b/parm/transfer_gfs_gempak.list new file mode 100644 index 0000000000..1db0755a47 --- /dev/null +++ b/parm/transfer_gfs_gempak.list @@ -0,0 +1,45 @@ +# This file specifies the directories to be tranatmfered and, optionally, the files within +# those directories to include or exclude. If one directory is specified per line, it +# will be used as both the source and destination. If two directories are specified per +# line, separated by one or more spaces, the first will be used as the source and the +# second the destination. Directories that begin with "com/" will be resolved using +# the compath.py utility. Rules may be placed below each directory or directory pair +# and must begin with one of the following characters: +# - exclude, specifies an exclude pattern +# + include, specifies an include pattern +# . merge, specifies a merge-file to read for more rules +# : dir-merge, specifies a per-directory merge-file +# H hide, specifies a pattern for hiding files from the tranatmfer +# S show, files that match the pattern are not hidden +# P protect, specifies a pattern for protecting files from deletion +# R risk, files that match the pattern are not protected +# ! clear, clears the current include/exclude list (takes no arg) +# B bytes, relative size of the path in relation to the other paths in the list +# D delete, delete extraneous files from destination directories (takes no arg) +# E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) +# T two-way syncronization will update both sides with latest changes (takes no arg) +# Z compress data as it is sent, accepts optional compression level argument (1-9) +# Rules higher in the list take precedence over lower ones. By default, all files in a +# directory are included, so if no exclude patterns match that file, it will be +# tranatmferred. + +com/gfs/_ENVIR_/gfs._PDY_/ ++ /??/ ++ /??/atmos/ ++ /??/atmos/gempak/ ++ /??/atmos/gempak/* +- * + +B 100 + +com/gfs/_ENVIR_/gfs._PDYm1_/ ++ /??/ ++ /??/atmos/ ++ /??/atmos/gempak/ ++ /??/atmos/gempak/* +- * + +B 100 + + diff --git a/parm/transfer_gfs_misc.list b/parm/transfer_gfs_misc.list old mode 100755 new mode 100644 index 55b21e12db..e8448e59cc --- a/parm/transfer_gfs_misc.list +++ b/parm/transfer_gfs_misc.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a diff --git a/parm/transfer_gfs_wave_restart1.list b/parm/transfer_gfs_wave_restart1.list new file mode 100644 index 0000000000..7a669f9cc6 --- /dev/null +++ b/parm/transfer_gfs_wave_restart1.list @@ -0,0 +1,44 @@ +# This file specifies the directories to be tranatmfered and, optionally, the files within +# those directories to include or exclude. If one directory is specified per line, it +# will be used as both the source and destination. If two directories are specified per +# line, separated by one or more spaces, the first will be used as the source and the +# second the destination. Directories that begin with "com/" will be resolved using +# the compath.py utility. Rules may be placed below each directory or directory pair +# and must begin with one of the following characters: +# - exclude, specifies an exclude pattern +# + include, specifies an include pattern +# . merge, specifies a merge-file to read for more rules +# : dir-merge, specifies a per-directory merge-file +# H hide, specifies a pattern for hiding files from the tranatmfer +# S show, files that match the pattern are not hidden +# P protect, specifies a pattern for protecting files from deletion +# R risk, files that match the pattern are not protected +# ! clear, clears the current include/exclude list (takes no arg) +# B bytes, relative size of the path in relation to the other paths in the list +# D delete, delete extraneous files from destination directories (takes no arg) +# E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) +# T two-way syncronization will update both sides with latest changes (takes no arg) +# Z compress data as it is sent, accepts optional compression level argument (1-9) +# Rules higher in the list take precedence over lower ones. By default, all files in a +# directory are included, so if no exclude patterns match that file, it will be +# tranatmferred. + +com/gfs/_ENVIR_/gfs._PDY_/ ++ /??/ ++ /??/wave/ ++ /??/wave/restart/ ++ /??/wave/restart/*aoc_9km +- * +B 100 + +com/gfs/_ENVIR_/gfs._PDYm1_/ ++ /??/ ++ /??/wave/ ++ /??/wave/restart/ ++ /??/wave/restart/*aoc_9km +- * +B 100 + + + diff --git a/parm/transfer_gfs_wave_restart2.list b/parm/transfer_gfs_wave_restart2.list new file mode 100644 index 0000000000..1f789855a8 --- /dev/null +++ b/parm/transfer_gfs_wave_restart2.list @@ -0,0 +1,44 @@ +# This file specifies the directories to be tranatmfered and, optionally, the files within +# those directories to include or exclude. If one directory is specified per line, it +# will be used as both the source and destination. If two directories are specified per +# line, separated by one or more spaces, the first will be used as the source and the +# second the destination. Directories that begin with "com/" will be resolved using +# the compath.py utility. Rules may be placed below each directory or directory pair +# and must begin with one of the following characters: +# - exclude, specifies an exclude pattern +# + include, specifies an include pattern +# . merge, specifies a merge-file to read for more rules +# : dir-merge, specifies a per-directory merge-file +# H hide, specifies a pattern for hiding files from the tranatmfer +# S show, files that match the pattern are not hidden +# P protect, specifies a pattern for protecting files from deletion +# R risk, files that match the pattern are not protected +# ! clear, clears the current include/exclude list (takes no arg) +# B bytes, relative size of the path in relation to the other paths in the list +# D delete, delete extraneous files from destination directories (takes no arg) +# E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) +# T two-way syncronization will update both sides with latest changes (takes no arg) +# Z compress data as it is sent, accepts optional compression level argument (1-9) +# Rules higher in the list take precedence over lower ones. By default, all files in a +# directory are included, so if no exclude patterns match that file, it will be +# tranatmferred. + +com/gfs/_ENVIR_/gfs._PDY_/ ++ /??/ ++ /??/wave/ ++ /??/wave/restart/ ++ /??/wave/restart/*gsh_15m +- * +B 100 + +com/gfs/_ENVIR_/gfs._PDYm1_/ ++ /??/ ++ /??/wave/ ++ /??/wave/restart/ ++ /??/wave/restart/*gsh_15m +- * +B 100 + + + diff --git a/parm/transfer_gfs_wave_restart3.list b/parm/transfer_gfs_wave_restart3.list new file mode 100644 index 0000000000..e5e7b2abd7 --- /dev/null +++ b/parm/transfer_gfs_wave_restart3.list @@ -0,0 +1,44 @@ +# This file specifies the directories to be tranatmfered and, optionally, the files within +# those directories to include or exclude. If one directory is specified per line, it +# will be used as both the source and destination. If two directories are specified per +# line, separated by one or more spaces, the first will be used as the source and the +# second the destination. Directories that begin with "com/" will be resolved using +# the compath.py utility. Rules may be placed below each directory or directory pair +# and must begin with one of the following characters: +# - exclude, specifies an exclude pattern +# + include, specifies an include pattern +# . merge, specifies a merge-file to read for more rules +# : dir-merge, specifies a per-directory merge-file +# H hide, specifies a pattern for hiding files from the tranatmfer +# S show, files that match the pattern are not hidden +# P protect, specifies a pattern for protecting files from deletion +# R risk, files that match the pattern are not protected +# ! clear, clears the current include/exclude list (takes no arg) +# B bytes, relative size of the path in relation to the other paths in the list +# D delete, delete extraneous files from destination directories (takes no arg) +# E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) +# T two-way syncronization will update both sides with latest changes (takes no arg) +# Z compress data as it is sent, accepts optional compression level argument (1-9) +# Rules higher in the list take precedence over lower ones. By default, all files in a +# directory are included, so if no exclude patterns match that file, it will be +# tranatmferred. + +com/gfs/_ENVIR_/gfs._PDY_/ ++ /??/ ++ /??/wave/ ++ /??/wave/restart/ ++ /??/wave/restart/*gnh_10m +- * +B 100 + +com/gfs/_ENVIR_/gfs._PDYm1_/ ++ /??/ ++ /??/wave/ ++ /??/wave/restart/ ++ /??/wave/restart/*gnh_10m +- * +B 100 + + + diff --git a/parm/transfer_gfs_wave_rundata.list b/parm/transfer_gfs_wave_rundata.list new file mode 100644 index 0000000000..d7f977f76d --- /dev/null +++ b/parm/transfer_gfs_wave_rundata.list @@ -0,0 +1,44 @@ +# This file specifies the directories to be tranatmfered and, optionally, the files within +# those directories to include or exclude. If one directory is specified per line, it +# will be used as both the source and destination. If two directories are specified per +# line, separated by one or more spaces, the first will be used as the source and the +# second the destination. Directories that begin with "com/" will be resolved using +# the compath.py utility. Rules may be placed below each directory or directory pair +# and must begin with one of the following characters: +# - exclude, specifies an exclude pattern +# + include, specifies an include pattern +# . merge, specifies a merge-file to read for more rules +# : dir-merge, specifies a per-directory merge-file +# H hide, specifies a pattern for hiding files from the tranatmfer +# S show, files that match the pattern are not hidden +# P protect, specifies a pattern for protecting files from deletion +# R risk, files that match the pattern are not protected +# ! clear, clears the current include/exclude list (takes no arg) +# B bytes, relative size of the path in relation to the other paths in the list +# D delete, delete extraneous files from destination directories (takes no arg) +# E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) +# T two-way syncronization will update both sides with latest changes (takes no arg) +# Z compress data as it is sent, accepts optional compression level argument (1-9) +# Rules higher in the list take precedence over lower ones. By default, all files in a +# directory are included, so if no exclude patterns match that file, it will be +# tranatmferred. + +com/gfs/_ENVIR_/gfs._PDY_/ ++ /??/ ++ /??/wave/ ++ /??/wave/rundata/ ++ /??/wave/rundata/* +- * + +B 100 + +com/gfs/_ENVIR_/gfs._PDYm1_/ ++ /??/ ++ /??/wave/ ++ /??/wave/rundata/ ++ /??/wave/rundata/* +- * + +B 100 + diff --git a/parm/transfer_gfs_wave_wave.list b/parm/transfer_gfs_wave_wave.list new file mode 100644 index 0000000000..4628d02547 --- /dev/null +++ b/parm/transfer_gfs_wave_wave.list @@ -0,0 +1,51 @@ +# This file specifies the directories to be tranatmfered and, optionally, the files within +# those directories to include or exclude. If one directory is specified per line, it +# will be used as both the source and destination. If two directories are specified per +# line, separated by one or more spaces, the first will be used as the source and the +# second the destination. Directories that begin with "com/" will be resolved using +# the compath.py utility. Rules may be placed below each directory or directory pair +# and must begin with one of the following characters: +# - exclude, specifies an exclude pattern +# + include, specifies an include pattern +# . merge, specifies a merge-file to read for more rules +# : dir-merge, specifies a per-directory merge-file +# H hide, specifies a pattern for hiding files from the tranatmfer +# S show, files that match the pattern are not hidden +# P protect, specifies a pattern for protecting files from deletion +# R risk, files that match the pattern are not protected +# ! clear, clears the current include/exclude list (takes no arg) +# B bytes, relative size of the path in relation to the other paths in the list +# D delete, delete extraneous files from destination directories (takes no arg) +# E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) +# T two-way syncronization will update both sides with latest changes (takes no arg) +# Z compress data as it is sent, accepts optional compression level argument (1-9) +# Rules higher in the list take precedence over lower ones. By default, all files in a +# directory are included, so if no exclude patterns match that file, it will be +# tranatmferred. + +com/gfs/_ENVIR_/gfs._PDY_/ ++ /??/ ++ /??/wave/ ++ /??/wave/gridded/ ++ /??/wave/gridded/* ++ /??/wave/station/ ++ /??/wave/station/* ++ /??/wave/gempak/ ++ /??/wave/gempak/* +- * +B 100 + +com/gfs/_ENVIR_/gfs._PDYm1_/ ++ /??/ ++ /??/wave/ ++ /??/wave/gridded/ ++ /??/wave/gridded/* ++ /??/wave/station/ ++ /??/wave/station/* ++ /??/wave/gempak/ ++ /??/wave/gempak/* +- * +B 100 + + diff --git a/parm/transfer_rdhpcs_gdas.list b/parm/transfer_rdhpcs_gdas.list old mode 100755 new mode 100644 index 1576b126e7..e3811d3aa6 --- a/parm/transfer_rdhpcs_gdas.list +++ b/parm/transfer_rdhpcs_gdas.list @@ -26,42 +26,43 @@ com/gfs/_ENVIR_/gdas._PDYm1_/ _REMOTEPATH_/com/gfs/_ENVIR_/gdas._PDYm1_/ + /??/ -+ /??/gdas.t??z*tcvitals* -+ /??/gdas.*bufr* -+ /??/gdas.t??z.abias_pc -+ /??/gdas.t??z.abias_air -+ /??/gdas.t??z.abias -+ /??/gdas.t??z.sfcf*.nemsio -+ /??/gdas.t??z.engicegrb -+ /??/gdas.t??z.atmf0*.nemsio -+ /??/gdas.t??z.radstat -+ /??/gdas.t??z.atmanl.nemsio -+ /??/gdas.t??z.atmges.nemsio -+ /??/gdas.t??z.atmgm3.nemsio -+ /??/gdas.t??z.atmgp3.nemsio -+ /??/gdas.t??z.sfcanl.nemsio -+ /??/gdas.t??z.sstgrb ++ /??/atmos/ ++ /??/atmos/gdas.t??z*tcvitals* ++ /??/atmos/gdas.*bufr* ++ /??/atmos/gdas.t??z.abias_pc ++ /??/atmos/gdas.t??z.abias_air ++ /??/atmos/gdas.t??z.abias ++ /??/atmos/gdas.t??z.sfcf*.nc ++ /??/atmos/gdas.t??z.engicegrb ++ /??/atmos/gdas.t??z.atmf0*.nc ++ /??/atmos/gdas.t??z.radstat ++ /??/atmos/gdas.t??z.atmanl.nc ++ /??/atmos/gdas.t??z.atmges.nc ++ /??/atmos/gdas.t??z.atmgm3.nc ++ /??/atmos/gdas.t??z.atmgp3.nc ++ /??/atmos/gdas.t??z.sfcanl.nc - * E # This directory is a good candidate for compression #Z com/gfs/_ENVIR_/gdas._PDY_/ _REMOTEPATH_/com/gfs/_ENVIR_/gdas._PDY_/ + /??/ -+ /??/gdas.t??z*tcvitals* -+ /??/gdas.*bufr* -+ /??/gdas.t??z.abias_pc -+ /??/gdas.t??z.abias_air -+ /??/gdas.t??z.abias -+ /??/gdas.t??z.sfcf*.nemsio -+ /??/gdas.t??z.engicegrb -+ /??/gdas.t??z.atmf0*.nemsio -+ /??/gdas.t??z.radstat -+ /??/gdas.t??z.atmanl.nemsio -+ /??/gdas.t??z.atmges.nemsio -+ /??/gdas.t??z.atmgm3.nemsio -+ /??/gdas.t??z.atmgp3.nemsio -+ /??/gdas.t??z.sfcanl.nemsio -+ /??/gdas.t??z.sstgrb ++ /??/atmos/ ++ /??/atmos/gdas.t??z*tcvitals* ++ /??/atmos/gdas.*bufr* ++ /??/atmos/gdas.t??z.abias_pc ++ /??/atmos/gdas.t??z.abias_air ++ /??/atmos/gdas.t??z.abias ++ /??/atmos/gdas.t??z.sfcf*.nc ++ /??/atmos/gdas.t??z.engicegrb ++ /??/atmos/gdas.t??z.atmf0*.nc ++ /??/atmos/gdas.t??z.radstat ++ /??/atmos/gdas.t??z.atmanl.nc ++ /??/atmos/gdas.t??z.atmges.nc ++ /??/atmos/gdas.t??z.atmgm3.nc ++ /??/atmos/gdas.t??z.atmgp3.nc ++ /??/atmos/gdas.t??z.sfcanl.nc ++ /??/atmos/gdas.t??z.sstgrb - * E # This directory is a good candidate for compression diff --git a/parm/transfer_rdhpcs_gdas_enkf_enkf_1.list b/parm/transfer_rdhpcs_gdas_enkf_enkf_1.list old mode 100755 new mode 100644 index bb75f652f5..f924cbd377 --- a/parm/transfer_rdhpcs_gdas_enkf_enkf_1.list +++ b/parm/transfer_rdhpcs_gdas_enkf_enkf_1.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -28,18 +29,20 @@ com/gfs/_ENVIR_/enkfgdas._PDYm1_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /00/ -+ /00/mem???/ -+ /00/mem???/gdas.t??z.atmf006s.nemsio -+ /00/mem???/gdas.t??z.atmf009s.nemsio ++ /00/atmos/ ++ /00/atmos/mem???/ ++ /00/atmos/mem???/gdas.t??z.atmf006.nc ++ /00/atmos/mem???/gdas.t??z.atmf009.nc - * E # This directory is a good candidate for compression #Z com/gfs/_ENVIR_/enkfgdas._PDY_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /00/ -+ /00/mem???/ -+ /00/mem???/gdas.t??z.atmf006s.nemsio -+ /00/mem???/gdas.t??z.atmf009s.nemsio ++ /00/atmos/ ++ /00/atmos/mem???/ ++ /00/atmos/mem???/gdas.t??z.atmf006.nc ++ /00/atmos/mem???/gdas.t??z.atmf009.nc - * E # This directory is a good candidate for compression diff --git a/parm/transfer_rdhpcs_gdas_enkf_enkf_2.list b/parm/transfer_rdhpcs_gdas_enkf_enkf_2.list old mode 100755 new mode 100644 index f29819c6e9..f7b2f03f9e --- a/parm/transfer_rdhpcs_gdas_enkf_enkf_2.list +++ b/parm/transfer_rdhpcs_gdas_enkf_enkf_2.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -28,18 +29,20 @@ com/gfs/_ENVIR_/enkfgdas._PDYm1_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /06/ -+ /06/mem???/ -+ /06/mem???/gdas.t??z.atmf006s.nemsio -+ /06/mem???/gdas.t??z.atmf009s.nemsio ++ /06/atmos/ ++ /06/atmos/mem???/ ++ /06/atmos/mem???/gdas.t??z.atmf006.nc ++ /06/atmos/mem???/gdas.t??z.atmf009.nc - * E # This directory is a good candidate for compression #Z com/gfs/_ENVIR_/enkfgdas._PDY_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /06/ -+ /06/mem???/ -+ /06/mem???/gdas.t??z.atmf006s.nemsio -+ /06/mem???/gdas.t??z.atmf009s.nemsio ++ /06/atmos/ ++ /06/atmos/mem???/ ++ /06/atmos/mem???/gdas.t??z.atmf006.nc ++ /06/atmos/mem???/gdas.t??z.atmf009.nc - * E # This directory is a good candidate for compression diff --git a/parm/transfer_rdhpcs_gdas_enkf_enkf_3.list b/parm/transfer_rdhpcs_gdas_enkf_enkf_3.list old mode 100755 new mode 100644 index f338047a26..f51726923b --- a/parm/transfer_rdhpcs_gdas_enkf_enkf_3.list +++ b/parm/transfer_rdhpcs_gdas_enkf_enkf_3.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -28,18 +29,20 @@ com/gfs/_ENVIR_/enkfgdas._PDYm1_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /12/ -+ /12/mem???/ -+ /12/mem???/gdas.t??z.atmf006s.nemsio -+ /12/mem???/gdas.t??z.atmf009s.nemsio ++ /12/atmos/ ++ /12/atmos/mem???/ ++ /12/atmos/mem???/gdas.t??z.atmf006.nc ++ /12/atmos/mem???/gdas.t??z.atmf009.nc - * E # This directory is a good candidate for compression #Z com/gfs/_ENVIR_/enkfgdas._PDY_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /12/ -+ /12/mem???/ -+ /12/mem???/gdas.t??z.atmf006s.nemsio -+ /12/mem???/gdas.t??z.atmf009s.nemsio ++ /12/atmos/ ++ /12/atmos/mem???/ ++ /12/atmos/mem???/gdas.t??z.atmf006.nc ++ /12/atmos/mem???/gdas.t??z.atmf009.nc - * E # This directory is a good candidate for compression diff --git a/parm/transfer_rdhpcs_gdas_enkf_enkf_4.list b/parm/transfer_rdhpcs_gdas_enkf_enkf_4.list old mode 100755 new mode 100644 index 2fcd4ce8b3..85c541beb8 --- a/parm/transfer_rdhpcs_gdas_enkf_enkf_4.list +++ b/parm/transfer_rdhpcs_gdas_enkf_enkf_4.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -28,18 +29,20 @@ com/gfs/_ENVIR_/enkfgdas._PDYm1_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /18/ -+ /18/mem???/ -+ /18/mem???/gdas.t??z.atmf006s.nemsio -+ /18/mem???/gdas.t??z.atmf009s.nemsio ++ /18/atmos/ ++ /18/atmos/mem???/ ++ /18/atmos/mem???/gdas.t??z.atmf006.nc ++ /18/atmos/mem???/gdas.t??z.atmf009.nc - * E # This directory is a good candidate for compression #Z com/gfs/_ENVIR_/enkfgdas._PDY_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /18/ -+ /18/mem???/ -+ /18/mem???/gdas.t??z.atmf006s.nemsio -+ /18/mem???/gdas.t??z.atmf009s.nemsio ++ /18/atmos/ ++ /18/atmos/mem???/ ++ /18/atmos/mem???/gdas.t??z.atmf006.nc ++ /18/atmos/mem???/gdas.t??z.atmf009.nc - * E # This directory is a good candidate for compression diff --git a/parm/transfer_rdhpcs_gdas_enkf_enkf_5.list b/parm/transfer_rdhpcs_gdas_enkf_enkf_5.list old mode 100755 new mode 100644 index 3b6370ea39..44bf0f4662 --- a/parm/transfer_rdhpcs_gdas_enkf_enkf_5.list +++ b/parm/transfer_rdhpcs_gdas_enkf_enkf_5.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -28,20 +29,22 @@ com/gfs/_ENVIR_/enkfgdas._PDYm1_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /00/ -+ /00/mem???/ -+ /00/mem???/gdas.t??z.ratmanl.nemsio -+ /00/gdas.t??z.atmf006.ensmean.nemsio -+ /00/gdas.t??z.atmf009.ensmean.nemsio ++ /00/atmos/ ++ /00/atmos/mem???/ ++ /00/atmos/mem???/gdas.t??z.ratminc.nc ++ /00/atmos/gdas.t??z.atmf006.ensmean.nc ++ /00/atmos/gdas.t??z.atmf009.ensmean.nc - * E # This directory is a good candidate for compression #Z com/gfs/_ENVIR_/enkfgdas._PDY_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /00/ -+ /00/mem???/ -+ /00/mem???/gdas.t??z.ratmanl.nemsio -+ /00/gdas.t??z.atmf006.ensmean.nemsio -+ /00/gdas.t??z.atmf009.ensmean.nemsio ++ /00/atmos/ ++ /00/atmos/mem???/ ++ /00/atmos/mem???/gdas.t??z.ratminc.nc ++ /00/atmos/gdas.t??z.atmf006.ensmean.nc ++ /00/atmos/gdas.t??z.atmf009.ensmean.nc - * E # This directory is a good candidate for compression diff --git a/parm/transfer_rdhpcs_gdas_enkf_enkf_6.list b/parm/transfer_rdhpcs_gdas_enkf_enkf_6.list old mode 100755 new mode 100644 index 0ab4484afa..3af2fbae4d --- a/parm/transfer_rdhpcs_gdas_enkf_enkf_6.list +++ b/parm/transfer_rdhpcs_gdas_enkf_enkf_6.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -28,20 +29,22 @@ com/gfs/_ENVIR_/enkfgdas._PDYm1_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /06/ -+ /06/mem???/ -+ /06/mem???/gdas.t??z.ratmanl.nemsio -+ /06/gdas.t??z.atmf006.ensmean.nemsio -+ /06/gdas.t??z.atmf009.ensmean.nemsio ++ /06/atmos/ ++ /06/atmos/mem???/ ++ /06/atmos/mem???/gdas.t??z.ratminc.nc ++ /06/atmos/gdas.t??z.atmf006.ensmean.nc ++ /06/atmos/gdas.t??z.atmf009.ensmean.nc - * E # This directory is a good candidate for compression #Z com/gfs/_ENVIR_/enkfgdas._PDY_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /06/ -+ /06/mem???/ -+ /06/mem???/gdas.t??z.ratmanl.nemsio -+ /06/gdas.t??z.atmf006.ensmean.nemsio -+ /06/gdas.t??z.atmf009.ensmean.nemsio ++ /06/atmos/ ++ /06/atmos/mem???/ ++ /06/atmos/mem???/gdas.t??z.ratminc.nc ++ /06/atmos/gdas.t??z.atmf006.ensmean.nc ++ /06/atmos/gdas.t??z.atmf009.ensmean.nc - * E # This directory is a good candidate for compression diff --git a/parm/transfer_rdhpcs_gdas_enkf_enkf_7.list b/parm/transfer_rdhpcs_gdas_enkf_enkf_7.list old mode 100755 new mode 100644 index 9f96c591b7..9a86b20c42 --- a/parm/transfer_rdhpcs_gdas_enkf_enkf_7.list +++ b/parm/transfer_rdhpcs_gdas_enkf_enkf_7.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -28,20 +29,22 @@ com/gfs/_ENVIR_/enkfgdas._PDYm1_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /12/ -+ /12/mem???/ -+ /12/mem???/gdas.t??z.ratmanl.nemsio -+ /12/gdas.t??z.atmf006.ensmean.nemsio -+ /12/gdas.t??z.atmf009.ensmean.nemsio ++ /12/atmos/ ++ /12/atmos/mem???/ ++ /12/atmos/mem???/gdas.t??z.ratminc.nc ++ /12/atmos/gdas.t??z.atmf006.ensmean.nc ++ /12/atmos/gdas.t??z.atmf009.ensmean.nc - * E # This directory is a good candidate for compression #Z com/gfs/_ENVIR_/enkfgdas._PDY_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /12/ -+ /12/mem???/ -+ /12/mem???/gdas.t??z.ratmanl.nemsio -+ /12/gdas.t??z.atmf006.ensmean.nemsio -+ /12/gdas.t??z.atmf009.ensmean.nemsio ++ /12/atmos/ ++ /12/atmos/mem???/ ++ /12/atmos/mem???/gdas.t??z.ratminc.nc ++ /12/atmos/gdas.t??z.atmf006.ensmean.nc ++ /12/atmos/gdas.t??z.atmf009.ensmean.nc - * E # This directory is a good candidate for compression diff --git a/parm/transfer_rdhpcs_gdas_enkf_enkf_8.list b/parm/transfer_rdhpcs_gdas_enkf_enkf_8.list old mode 100755 new mode 100644 index ceb201c6c0..747be01fcd --- a/parm/transfer_rdhpcs_gdas_enkf_enkf_8.list +++ b/parm/transfer_rdhpcs_gdas_enkf_enkf_8.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -28,20 +29,22 @@ com/gfs/_ENVIR_/enkfgdas._PDYm1_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDYm1_/ + /18/ -+ /18/mem???/ -+ /18/mem???/gdas.t??z.ratmanl.nemsio -+ /18/gdas.t??z.atmf006.ensmean.nemsio -+ /18/gdas.t??z.atmf009.ensmean.nemsio ++ /18/atmos/ ++ /18/atmos/mem???/ ++ /18/atmos/mem???/gdas.t??z.ratminc.nc ++ /18/atmos/gdas.t??z.atmf006.ensmean.nc ++ /18/atmos/gdas.t??z.atmf009.ensmean.nc - * E # This directory is a good candidate for compression #Z com/gfs/_ENVIR_/enkfgdas._PDY_/ _REMOTEPATH_/com/gfs/_ENVIR_/enkfgdas._PDY_/ + /18/ -+ /18/mem???/ -+ /18/mem???/gdas.t??z.ratmanl.nemsio -+ /18/gdas.t??z.atmf006.ensmean.nemsio -+ /18/gdas.t??z.atmf009.ensmean.nemsio ++ /18/atmos/ ++ /18/atmos/mem???/ ++ /18/atmos/mem???/gdas.t??z.ratminc.nc ++ /18/atmos/gdas.t??z.atmf006.ensmean.nc ++ /18/atmos/gdas.t??z.atmf009.ensmean.nc - * E # This directory is a good candidate for compression diff --git a/parm/transfer_rdhpcs_gfs.list b/parm/transfer_rdhpcs_gfs.list old mode 100755 new mode 100644 index cbe0436489..34e006e179 --- a/parm/transfer_rdhpcs_gfs.list +++ b/parm/transfer_rdhpcs_gfs.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,43 +26,42 @@ com/gfs/_ENVIR_/gfs._PDY_/ _REMOTEPATH_/com/gfs/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gfs.t??z.*bufr* -+ /??/gfs.t??z.sstgrb -+ /??/gfs.t??z.engicegrb -+ /??/gfs.t??z.*tcvitals*tm00 -+ /??/gfs.t??z.atmanl.nemsio -+ /??/gfs.t??z.sfcanl.nemsio -+ /??/gfs.t??z.master.grb2f* -+ /??/gfs.t??z.pgrb2.0p25.f* -+ /??/gfs.t??z.sfluxgrbf* -+ /??/gfs.t??z.gtg.grb2f* -+ /??/gfs.t??z.gcip.f00.grib2 -+ /??/gfs.t??z.atmf000.nemsio -+ /??/gfs.t??z.atmf003.nemsio -+ /??/gfs.t??z.atmf006.nemsio -+ /??/gfs.t??z.atmf009.nemsio -+ /??/gfs.t??z.atmf012.nemsio -+ /??/gfs.t??z.atmf015.nemsio -+ /??/gfs.t??z.atmf018.nemsio -+ /??/gfs.t??z.atmf021.nemsio -+ /??/gfs.t??z.atmf024.nemsio -+ /??/gfs.t??z.atmf027.nemsio -+ /??/gfs.t??z.atmf030.nemsio -+ /??/gfs.t??z.atmf033.nemsio -+ /??/gfs.t??z.atmf036.nemsio -+ /??/gfs.t??z.atmf039.nemsio -+ /??/gfs.t??z.atmf042.nemsio -+ /??/gfs.t??z.atmf045.nemsio -+ /??/gfs.t??z.atmf048.nemsio -+ /??/gfs.t??z.sfcf024.nemsio -+ /??/gfs.t??z.sfcf027.nemsio -+ /??/gfs.t??z.sfcf030.nemsio -+ /??/gfs.t??z.sfcf033.nemsio -+ /??/gfs.t??z.sfcf036.nemsio -+ /??/gfs.t??z.sfcf039.nemsio -+ /??/gfs.t??z.sfcf042.nemsio -+ /??/gfs.t??z.sfcf045.nemsio -+ /??/gfs.t??z.sfcf048.nemsio ++ /??/atmos/ ++ /??/atmos/gfs.t??z.*bufr* ++ /??/atmos/gfs.t??z.engicegrb ++ /??/atmos/gfs.t??z.*tcvitals*tm00 ++ /??/atmos/gfs.t??z.atmanl.nc ++ /??/atmos/gfs.t??z.sfcanl.nc ++ /??/atmos/gfs.t??z.master.grb2f* ++ /??/atmos/gfs.t??z.pgrb2.0p25.f* ++ /??/atmos/gfs.t??z.sfluxgrbf* ++ /??/atmos/gfs.t??z.gcip.f00.grib2 ++ /??/atmos/gfs.t??z.atmf000.nc ++ /??/atmos/gfs.t??z.atmf003.nc ++ /??/atmos/gfs.t??z.atmf006.nc ++ /??/atmos/gfs.t??z.atmf009.nc ++ /??/atmos/gfs.t??z.atmf012.nc ++ /??/atmos/gfs.t??z.atmf015.nc ++ /??/atmos/gfs.t??z.atmf018.nc ++ /??/atmos/gfs.t??z.atmf021.nc ++ /??/atmos/gfs.t??z.atmf024.nc ++ /??/atmos/gfs.t??z.atmf027.nc ++ /??/atmos/gfs.t??z.atmf030.nc ++ /??/atmos/gfs.t??z.atmf033.nc ++ /??/atmos/gfs.t??z.atmf036.nc ++ /??/atmos/gfs.t??z.atmf039.nc ++ /??/atmos/gfs.t??z.atmf042.nc ++ /??/atmos/gfs.t??z.atmf045.nc ++ /??/atmos/gfs.t??z.atmf048.nc ++ /??/atmos/gfs.t??z.sfcf024.nc ++ /??/atmos/gfs.t??z.sfcf027.nc ++ /??/atmos/gfs.t??z.sfcf030.nc ++ /??/atmos/gfs.t??z.sfcf033.nc ++ /??/atmos/gfs.t??z.sfcf036.nc ++ /??/atmos/gfs.t??z.sfcf039.nc ++ /??/atmos/gfs.t??z.sfcf042.nc ++ /??/atmos/gfs.t??z.sfcf045.nc ++ /??/atmos/gfs.t??z.sfcf048.nc - * E # This directory is a good candidate for compression diff --git a/parm/transfer_rdhpcs_gfs_nawips.list b/parm/transfer_rdhpcs_gfs_nawips.list old mode 100755 new mode 100644 index c646bdd4de..02d80bac9f --- a/parm/transfer_rdhpcs_gfs_nawips.list +++ b/parm/transfer_rdhpcs_gfs_nawips.list @@ -17,6 +17,7 @@ # B bytes, relative size of the path in relation to the other paths in the list # D delete, delete extraneous files from destination directories (takes no arg) # E encrypt, enables data encryption [two cores should be allocated] (takes no arg) +# W whole files, copy whole files rather than use delta-xfer algorithm (takes no arg) (v2.2.3+) # T two-way syncronization will update both sides with latest changes (takes no arg) # Z compress data as it is sent, accepts optional compression level argument (1-9) # Rules higher in the list take precedence over lower ones. By default, all files in a @@ -25,11 +26,12 @@ com/gfs/_ENVIR_/gfs._PDY_/ _REMOTEPATH_/com/nawips/_ENVIR_/gfs._PDY_/ + /??/ -+ /??/gempak/ -+ /??/gempak/gfs_??????????f??? -+ /??/gempak/gfs40_??????????f??? -+ /??/gempak/gfs_*.snd -+ /??/gempak/gfs_*.sfc ++ /??/atmos/ ++ /??/atmos/gempak/ ++ /??/atmos/gempak/gfs_??????????f??? ++ /??/atmos/gempak/gfs40_??????????f??? ++ /??/atmos/gempak/gfs_*.snd ++ /??/atmos/gempak/gfs_*.sfc - * E # This directory is a good candidate for compression diff --git a/parm/wmo/bulls_wkeysb b/parm/wmo/bulls_wkeysb deleted file mode 100755 index 234f756fd8..0000000000 --- a/parm/wmo/bulls_wkeysb +++ /dev/null @@ -1,106 +0,0 @@ -FBNT21 18 07130 030.00 W 2 7 60.00 N 2 03 04 000011110 1 -FBNT23 18 07132 030.00 W 2 7 45.00 N 2 03 04 000011110 1 -FBNT25 18 07134 030.00 W 2 6 30.00 N 2 04 04 000011110 1 -FBNT27 18 07154 065.00 W 2 7 60.00 N 2 03 04 000011110 1 -FBNT29 18 07159 065.00 W 2 7 45.00 N 2 03 04 000011110 1 -FBNT31 18 07161 060.00 W 2 6 30.00 N 2 04 04 000011110 1 -FBSA21 18 07170 060.00 W 2 6 05.00 S 2 05 04 000011110 1 -FBSA23 18 07172 085.00 W 2 5 05.00 S 2 05 04 000011110 1 -FBNA21 18 07174 100.00 W 2 7 60.00 N 2 03 04 000011110 1 -FBNA23 18 07176 100.00 W 2 7 45.00 N 2 03 04 000011110 1 -FBNA25 18 07184 130.00 W 2 6 65.00 N 2 04 04 000011110 1 -FBNA27 18 07186 130.00 W 2 6 45.00 N 2 03 04 000011110 1 -FBCA21 18 07192 090.00 W 2 6 30.00 N 2 04 04 000011110 1 -FBCA23 18 07194 065.00 W 2 6 10.00 N 2 03 04 000011110 1 -FBCA25 18 07196 100.00 W 2 7 10.00 N 2 03 04 000011110 1 -FBCA27 18 07198 120.00 W 2 6 30.00 N 2 04 04 000011110 1 -FBPA21 18 07294 160.00 W 2 6 65.00 N 2 04 04 000011110 1 -FBPA23 18 07296 160.00 W 2 6 45.00 N 2 03 04 000011110 1 -FBPA25 18 07299 155.00 W 2 7 30.00 N 2 03 04 000011110 1 -FBPA27 18 07301 155.00 W 2 7 15.00 N 2 04 04 000011110 1 -FBPA29 18 07303 170.00 E 2 6 60.00 N 2 03 04 000011110 1 -FBPA31 18 07305 170.00 E 2 6 45.00 N 2 03 04 000011110 1 -FBPA33 18 07307 170.00 E 2 7 30.00 N 2 03 04 000011110 1 -FBPA35 18 07309 140.00 E 2 6 50.00 N 2 04 04 000011110 1 -FBPA37 18 07311 140.00 E 2 6 30.00 N 2 04 04 000011110 1 -FBPA39 18 07313 110.00 E 2 6 30.00 N 2 04 04 000011110 1 -FBNT11 18 07103 035.00 W 2 7 65.00 N 2 05 04 111100000 0 -FBNT13 18 07106 070.00 W 2 7 65.00 N 2 06 04 111100000 0 -FBNT15 18 03933 035.00 W 2 7 40.00 N 2 04 04 111100000 0 -FBCA11 18 07108 065.00 W 2 5 20.00 N 2 05 04 111100000 0 -FBCA13 18 07111 090.00 W 2 5 35.00 N 2 08 04 111100000 0 -FBUS11 18 07116 125.00 W 2 7 40.00 N 2 06 04 111100000 0 -FBPA11 18 07120 160.00 W 2 7 40.00 N 2 05 04 111100000 0 -FBPA41 18 06585 170.00 E 2 7 15.00 N 2 04 04 000011110 1 -FBPA43 18 06587 140.00 E 2 6 10.00 N 2 03 04 000011110 1 -FBPA45 18 06589 110.00 E 2 6 10.00 N 2 03 04 000011110 1 -FBAS21 18 07248 110.00 E 2 6 50.00 N 2 04 04 000011110 1 -FBAS23 18 07250 100.00 E 2 2 30.00 N 2 07 04 000011110 1 -FBNT22 24 07131 030.00 W 2 7 60.00 N 2 03 04 000011110 1 -FBNT24 24 07133 030.00 W 2 7 45.00 N 2 03 04 000011110 1 -FBNT26 24 07135 030.00 W 2 6 30.00 N 2 04 04 000011110 1 -FBNT28 24 07155 065.00 W 2 7 60.00 N 2 03 04 000011110 1 -FBNT30 24 07160 065.00 W 2 7 45.00 N 2 03 04 000011110 1 -FBNT32 24 07162 060.00 W 2 6 30.00 N 2 04 04 000011110 1 -FBSA22 24 07171 060.00 W 2 6 05.00 S 2 05 04 000011110 1 -FBSA24 24 07173 085.00 W 2 5 05.00 S 2 05 04 000011110 1 -FBNA22 24 07175 100.00 W 2 7 60.00 N 2 03 04 000011110 1 -FBNA24 24 07177 100.00 W 2 7 45.00 N 2 03 04 000011110 1 -FBNA26 24 07185 130.00 W 2 6 65.00 N 2 04 04 000011110 1 -FBNA28 24 07187 130.00 W 2 6 45.00 N 2 03 04 000011110 1 -FBCA22 24 07193 090.00 W 2 6 30.00 N 2 04 04 000011110 1 -FBCA24 24 07195 065.00 W 2 6 10.00 N 2 03 04 000011110 1 -FBCA26 24 07197 100.00 W 2 7 10.00 N 2 03 04 000011110 1 -FBCA28 24 07199 120.00 W 2 6 30.00 N 2 04 04 000011110 1 -FBPA22 24 07295 160.00 W 2 6 65.00 N 2 04 04 000011110 1 -FBPA24 24 07297 160.00 W 2 6 45.00 N 2 03 04 000011110 1 -FBPA26 24 07300 155.00 W 2 7 30.00 N 2 03 04 000011110 1 -FBPA28 24 07302 155.00 W 2 7 15.00 N 2 04 04 000011110 1 -FBPA30 24 07304 170.00 E 2 6 60.00 N 2 03 04 000011110 1 -FBPA32 24 07306 170.00 E 2 6 45.00 N 2 03 04 000011110 1 -FBPA34 24 07308 170.00 E 2 7 30.00 N 2 03 04 000011110 1 -FBPA36 24 07310 140.00 E 2 6 50.00 N 2 04 04 000011110 1 -FBPA38 24 07312 140.00 E 2 6 30.00 N 2 04 04 000011110 1 -FBPA40 24 07314 110.00 E 2 6 30.00 N 2 04 04 000011110 1 -FBNT12 24 07104 035.00 W 2 7 65.00 N 2 05 04 111100000 0 -FBNT14 24 07107 070.00 W 2 7 65.00 N 2 06 04 111100000 0 -FBNT16 24 03934 035.00 W 2 7 40.00 N 2 04 04 111100000 0 -FBCA12 24 07109 065.00 W 2 5 20.00 N 2 05 04 111100000 0 -FBCA14 24 07112 090.00 W 2 5 35.00 N 2 08 04 111100000 0 -FBUS12 24 07117 125.00 W 2 7 40.00 N 2 06 04 111100000 0 -FBPA12 24 07121 160.00 W 2 7 40.00 N 2 05 04 111100000 0 -FBPA42 24 06586 170.00 E 2 7 15.00 N 2 04 04 000011110 1 -FBPA44 24 06588 140.00 E 2 6 10.00 N 2 03 04 000011110 1 -FBPA46 24 06590 110.00 E 2 6 10.00 N 2 03 04 000011110 1 -FBAS22 24 07249 110.00 E 2 6 50.00 N 2 04 04 000011110 1 -FBAS24 24 07251 100.00 E 2 2 30.00 N 2 07 04 000011110 1 -FBPA13 18 05658 160.00 W 2 7 65.00 N 2 05 04 111100000 0 -FBPA14 24 05663 160.00 W 2 7 65.00 N 2 05 04 111100000 0 -FBPA15 18 05672 170.00 E 2 6 60.00 N 2 03 04 111100000 0 -FBPA16 24 05678 170.00 E 2 6 60.00 N 2 03 04 111100000 0 -FBPA17 18 05679 170.00 E 2 6 45.00 N 2 03 04 111100000 0 -FBPA18 24 05680 170.00 E 2 6 45.00 N 2 03 04 111100000 0 -FBPA19 18 05682 140.00 E 2 6 50.00 N 2 04 04 111100000 0 -FBPA20 24 05688 140.00 E 2 6 50.00 N 2 04 04 111100000 0 -FBNA11 18 05690 090.00 W 2 4 65.00 N 2 06 04 111100000 0 -FBNA12 24 05691 090.00 W 2 4 65.00 N 2 06 04 111100000 0 -FBNA13 18 05692 125.00 W 2 7 65.00 N 2 05 04 111100000 0 -FBNA14 24 05693 125.00 W 2 7 65.00 N 2 05 04 111100000 0 -FBNT17 18 05694 065.00 W 2 6 35.00 N 2 03 04 111100000 0 -FBNT18 24 05697 065.00 W 2 6 35.00 N 2 03 04 111100000 0 -FBEU21 18 05827 005.00 E 2 7 60.00 N 2 03 04 000011110 1 -FBEU23 18 05829 005.00 E 2 7 45.00 N 2 03 04 000011110 1 -FBEU22 24 05828 005.00 E 2 7 60.00 N 2 03 04 000011110 1 -FBEU24 24 05842 005.00 E 2 7 45.00 N 2 03 04 000011110 1 -FBPA47 18 00000 155.00 W 2 6 15.00 N 2 04 04 111100000 0 -FBPA48 24 00000 155.00 W 2 6 15.00 N 2 04 04 111100000 0 -FBPA49 18 00000 170.00 E 2 7 30.00 N 2 03 04 111100000 0 -FBPA50 24 00000 170.00 E 2 7 30.00 N 2 03 04 111100000 0 -FBPA51 18 00000 140.00 E 2 6 30.00 N 2 04 04 111100000 0 -FBPA52 24 00000 140.00 E 2 6 30.00 N 2 04 04 111100000 0 -FBPA53 18 00000 170.00 E 2 7 15.00 N 2 04 04 111100000 0 -FBPA54 24 00000 170.00 E 2 7 15.00 N 2 04 04 111100000 0 -FBPA55 18 00000 140.00 E 2 6 10.00 N 2 03 04 111100000 0 -FBPA56 24 00000 140.00 E 2 6 10.00 N 2 03 04 111100000 0 -FBPA57 18 00000 110.00 E 2 6 10.00 N 2 03 04 111100000 0 -FBPA58 24 00000 110.00 E 2 6 10.00 N 2 03 04 111100000 0 diff --git a/parm/wmo/grib2_awpgfs000.003 b/parm/wmo/grib2_awpgfs000.003 old mode 100755 new mode 100644 index 941ecf6e70..c3a317d241 --- a/parm/wmo/grib2_awpgfs000.003 +++ b/parm/wmo/grib2_awpgfs000.003 @@ -104,4 +104,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPA92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPA92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPA92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPA50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 81 0 0 1 0 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs000.160 b/parm/wmo/grib2_awpgfs000.160 deleted file mode 100755 index cd7821cce4..0000000000 --- a/parm/wmo/grib2_awpgfs000.160 +++ /dev/null @@ -1,247 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGA99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGA93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGA95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGA92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGA90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGA91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGA85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGA82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGA80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGA77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGA75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGA72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGA70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGA67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGA65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGA62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGA60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGA57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGA55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGA52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGA50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGA45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGA40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGA35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGA30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGA25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGA20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGA15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGA10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGA99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGA93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGA95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGA92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGA90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGA91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGA85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGA82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGA80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGA77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGA75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGA72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGA70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGA67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGA65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGA62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGA60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGA57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGA55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGA52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGA50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGA45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGA40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGA35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGA30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGA25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGA20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGA15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGA10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGA99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGA93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGA95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGA92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGA90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGA91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGA85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGA82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGA80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGA77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGA75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGA72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGA70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGA67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGA65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGA62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGA60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGA57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGA55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGA52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGA50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGA45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGA40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGA35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGA30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGA25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGA20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGA15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGA10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGA99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGA93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGA95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGA92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGA90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGA91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGA85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGA82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGA80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGA77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGA75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGA72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGA70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGA67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGA65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGA62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGA60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGA57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGA55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGA52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGA50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGA45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGA40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGA35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGA30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGA25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGA20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGA15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGA10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGA85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGA70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGA50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGA25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGA50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGA99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGA99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGA93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGA93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGA95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGA95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGA92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGA92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGA90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGA90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGA91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGA91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGA85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGA85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGA82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGA82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGA80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGA80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGA77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGA77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGA75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGA75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGA72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGA72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGA70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGA70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGA67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGA67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGA65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGA65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGA62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGA62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGA60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGA60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGA57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGA57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGA55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGA55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGA52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGA52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGA50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGA50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGA45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGA45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGA40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGA40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGA35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGA35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGA30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGA30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGA25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGA25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGA20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGA20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGA15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGA15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGA10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGA10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGA98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGA00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 81 0 0 1 0 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGA97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGA98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGA98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGA98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGA98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGA86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 81 0 0 1 0 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGA86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 81 0 0 1 0 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGA96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 6 0 0 255 0 0 / -&GRIBIDS DESC=' HGT Surface ',WMOHEAD='LHGA98 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGA89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 81 0 0 1 0 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGA94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGA94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGA96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGA96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGA98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGA98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 103 0 2 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGA98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs000.161 b/parm/wmo/grib2_awpgfs000.161 deleted file mode 100755 index 27b12c467e..0000000000 --- a/parm/wmo/grib2_awpgfs000.161 +++ /dev/null @@ -1,247 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTA99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTA93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTA95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTA92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTA90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTA91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTA85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTA82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTA80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTA77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTA75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTA72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTA70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTA67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTA65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTA62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTA60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTA57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTA55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTA52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTA50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTA45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTA40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTA35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTA30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTA25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTA20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTA15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTA10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTA99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTA93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTA95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTA92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTA90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTA91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTA85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTA82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTA80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTA77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTA75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTA72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTA70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTA67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTA65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTA62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTA60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTA57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTA55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTA52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTA50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTA45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTA40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTA35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTA30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTA25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTA20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTA15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTA10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTA99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTA93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTA95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTA92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTA90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTA91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTA85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTA82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTA80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTA77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTA75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTA72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTA70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTA67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTA65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTA62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTA60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTA57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTA55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTA52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTA50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTA45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTA40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTA35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTA30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTA25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTA20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTA15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTA10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTA99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTA93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTA95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTA92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTA90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTA91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTA85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTA82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTA80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTA77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTA75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTA72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTA70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTA67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTA65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTA62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTA60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTA57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTA55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTA52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTA50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTA45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTA40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTA35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTA30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTA25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTA20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTA15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTA10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTA85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTA70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTA50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTA25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTA50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTA99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTA99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTA93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTA93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTA95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTA95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTA92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTA92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTA90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTA90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTA91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTA91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTA85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTA85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTA82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTA82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTA80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTA80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTA77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTA77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTA75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTA75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTA72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTA72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTA70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTA70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTA67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTA67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTA65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTA65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTA62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTA62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTA60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTA60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTA57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTA57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTA55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTA55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTA52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTA52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTA50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTA50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTA45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTA45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTA40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTA40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTA35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTA35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTA30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTA30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTA25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTA25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTA20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTA20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTA15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTA15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTA10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTA10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTA98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTA00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 81 0 0 1 0 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTA97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTA98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTA98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTA98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTA98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTA86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 81 0 0 1 0 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTA86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 81 0 0 1 0 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTA96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 6 0 0 255 0 0 / -&GRIBIDS DESC=' HGT Surface ',WMOHEAD='LHTA98 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTA89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 81 0 0 1 0 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTA94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTA94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTA96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTA96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTA98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTA98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 103 0 2 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTA98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs000.213 b/parm/wmo/grib2_awpgfs000.213 deleted file mode 100755 index bf1756b9c9..0000000000 --- a/parm/wmo/grib2_awpgfs000.213 +++ /dev/null @@ -1,84 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHA99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHA85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHA70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHA50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHA40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHA30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHA25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHA20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHA15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHA10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHA99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHA85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHA70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHA50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHA40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHA30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHA25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHA20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHA15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHA10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHA99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHA85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHA70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHA50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHA40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHA30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHA25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHA20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHA15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHA10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHA99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHA85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHA70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHA50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHA40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHA30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHA85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHA70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHA50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHA25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHA50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHA99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHA99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHA85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHA85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHA70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHA70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHA50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHA50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHA40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHA40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHA30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHA30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHA25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHA25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHA20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHA20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHA15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHA15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHA10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHA10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHA98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHA00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 81 0 0 1 0 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHA97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHA98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHA98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHA98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHA98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHA86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 81 0 0 1 0 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHA86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 81 0 0 1 0 108 0 18000 108 0 0 / -&GRIBIDS DESC=' HGT Surface ',WMOHEAD='LHHA98 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHA89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 81 0 0 1 0 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHA98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs000.254 b/parm/wmo/grib2_awpgfs000.254 deleted file mode 100755 index d39e817713..0000000000 --- a/parm/wmo/grib2_awpgfs000.254 +++ /dev/null @@ -1,247 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOA99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOA93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOA95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOA92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOA90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOA91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOA85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOA82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOA80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOA77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOA75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOA72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOA70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOA67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOA65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOA62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOA60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOA57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOA55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOA52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOA50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOA45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOA40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOA35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOA30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOA25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOA20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOA15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOA10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOA99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOA93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOA95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOA92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOA90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOA91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOA85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOA82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOA80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOA77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOA75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOA72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOA70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOA67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOA65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOA62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOA60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOA57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOA55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOA52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOA50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOA45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOA40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOA35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOA30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOA25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOA20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOA15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOA10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOA99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOA93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOA95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOA92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOA90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOA91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOA85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOA82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOA80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOA77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOA75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOA72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOA70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOA67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOA65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOA62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOA60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOA57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOA55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOA52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOA50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOA45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOA40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOA35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOA30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOA25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOA20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOA15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOA10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROA99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROA93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROA95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROA92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROA90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROA91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROA85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROA82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROA80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROA77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROA75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROA72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROA70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROA67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROA65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROA62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROA60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROA57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROA55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROA52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROA50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROA45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROA40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROA35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROA30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROA25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROA20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROA15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROA10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOA85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOA70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOA50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOA25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOA50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOA99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOA99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOA93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOA93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOA95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOA95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOA92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOA92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOA90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOA90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOA91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOA91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOA85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOA85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOA82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOA82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOA80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOA80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOA77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOA77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOA75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOA75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOA72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOA72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOA70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOA70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOA67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOA67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOA65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOA65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOA62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOA62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOA60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOA60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOA57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOA57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOA55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOA55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOA52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOA52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOA50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOA50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOA45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOA45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOA40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOA40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOA35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOA35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOA30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOA30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOA25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOA25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOA20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOA20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOA15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOA15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOA10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOA10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOA86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROA86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOA86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOA97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOA97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOA98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOA00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 81 0 0 1 0 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOA97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOA97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOA98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOA98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOA98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOA98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOA86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 81 0 0 1 0 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOA86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 81 0 0 1 0 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOA96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 81 0 0 1 0 6 0 0 255 0 0 / -&GRIBIDS DESC=' HGT Surface ',WMOHEAD='LHOA98 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOA89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 81 0 0 1 0 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOA94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 81 0 0 1 0 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROA94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOA97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOA96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOA96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOA98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 81 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOA98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 81 0 0 1 0 103 0 2 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROA98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs006.003 b/parm/wmo/grib2_awpgfs006.003 old mode 100755 new mode 100644 index 58fe211e0d..bdfeaab370 --- a/parm/wmo/grib2_awpgfs006.003 +++ b/parm/wmo/grib2_awpgfs006.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPB92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPB92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPB92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 6 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs006.160 b/parm/wmo/grib2_awpgfs006.160 deleted file mode 100755 index 5b8a3973df..0000000000 --- a/parm/wmo/grib2_awpgfs006.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGB99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGB93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGB95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGB92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGB90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGB91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGB85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGB82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGB80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGB77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGB75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGB72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGB70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGB67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGB65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGB62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGB60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGB57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGB55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGB52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGB50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGB45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGB40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGB35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGB30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGB25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGB20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGB15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGB10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGB99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGB93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGB95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGB92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGB90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGB91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGB85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGB82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGB80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGB77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGB75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGB72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGB70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGB67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGB65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGB62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGB60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGB57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGB55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGB52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGB50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGB45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGB40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGB35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGB30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGB25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGB20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGB15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGB10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGB99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGB93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGB95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGB92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGB90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGB91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGB85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGB82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGB80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGB77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGB75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGB72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGB70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGB67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGB65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGB62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGB60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGB57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGB55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGB52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGB50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGB45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGB40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGB35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGB30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGB25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGB20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGB15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGB10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGB99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGB93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGB95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGB92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGB90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGB91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGB85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGB82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGB80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGB77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGB75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGB72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGB70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGB67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGB65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGB62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGB60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGB57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGB55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGB52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGB50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGB45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGB40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGB35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGB30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGB25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGB20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGB15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGB10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGB85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGB70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGB50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGB25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGB99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGB99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGB93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGB93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGB95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGB95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGB92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGB92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGB90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGB90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGB91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGB91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGB85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGB85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGB82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGB82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGB80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGB80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGB77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGB77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGB75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGB75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGB72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGB72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGB70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGB70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGB67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGB67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGB65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGB65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGB62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGB62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGB60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGB60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGB57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGB57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGB55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGB55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGB52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGB52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGB50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGB50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGB45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGB45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGB40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGB40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGB35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGB35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGB30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGB30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGB25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGB25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGB20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGB20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGB15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGB15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGB10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGB10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGB98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGB00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 6 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGB97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGB98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGB98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGB98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGB98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGB86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 6 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGB86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 6 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGB96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGB89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 6 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGB94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGB94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGB96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGB96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGB98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGB73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 0 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGB73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 0 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGB73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 0 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGB98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGB98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGB98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGB98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGB98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGB98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGB98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs006.161 b/parm/wmo/grib2_awpgfs006.161 deleted file mode 100755 index ab6b10dcd6..0000000000 --- a/parm/wmo/grib2_awpgfs006.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTB99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTB93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTB95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTB92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTB90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTB91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTB85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTB82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTB80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTB77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTB75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTB72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTB70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTB67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTB65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTB62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTB60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTB57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTB55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTB52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTB50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTB45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTB40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTB35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTB30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTB25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTB20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTB15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTB10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTB99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTB93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTB95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTB92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTB90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTB91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTB85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTB82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTB80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTB77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTB75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTB72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTB70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTB67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTB65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTB62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTB60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTB57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTB55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTB52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTB50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTB45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTB40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTB35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTB30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTB25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTB20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTB15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTB10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTB99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTB93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTB95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTB92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTB90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTB91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTB85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTB82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTB80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTB77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTB75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTB72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTB70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTB67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTB65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTB62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTB60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTB57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTB55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTB52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTB50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTB45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTB40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTB35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTB30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTB25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTB20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTB15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTB10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTB99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTB93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTB95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTB92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTB90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTB91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTB85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTB82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTB80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTB77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTB75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTB72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTB70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTB67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTB65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTB62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTB60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTB57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTB55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTB52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTB50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTB45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTB40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTB35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTB30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTB25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTB20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTB15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTB10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTB85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTB70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTB50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTB25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTB99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTB99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTB93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTB93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTB95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTB95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTB92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTB92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTB90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTB90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTB91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTB91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTB85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTB85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTB82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTB82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTB80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTB80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTB77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTB77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTB75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTB75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTB72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTB72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTB70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTB70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTB67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTB67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTB65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTB65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTB62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTB62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTB60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTB60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTB57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTB57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTB55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTB55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTB52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTB52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTB50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTB50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTB45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTB45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTB40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTB40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTB35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTB35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTB30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTB30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTB25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTB25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTB20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTB20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTB15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTB15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTB10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTB10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTB98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTB00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 6 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTB97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTB98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTB98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTB98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTB98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTB86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 6 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTB86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 6 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTB96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTB89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 6 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTB94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTB94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTB96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTB96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTB98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATB73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 0 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATB73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 0 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATB73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 0 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTB98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETB98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTB98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTB98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTB98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTB98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTB98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs006.213 b/parm/wmo/grib2_awpgfs006.213 deleted file mode 100755 index f43dbbdb18..0000000000 --- a/parm/wmo/grib2_awpgfs006.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHB99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHB85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHB70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHB50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHB40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHB30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHB25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHB20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHB15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHB10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHB99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHB85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHB70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHB50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHB40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHB30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHB25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHB20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHB15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHB10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHB99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHB85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHB70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHB50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHB40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHB30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHB25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHB20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHB15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHB10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHB99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHB85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHB70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHB50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHB40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHB30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHB85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHB70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHB50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHB25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHB99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHB99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHB85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHB85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHB70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHB70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHB50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHB50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHB40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHB40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHB30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHB30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHB25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHB25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHB20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHB20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHB15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHB15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHB10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHB10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHB98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHB00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 6 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHB97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHB98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHB98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHB98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHB98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHB86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 6 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHB86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 6 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHB89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 6 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHB98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHB98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHB98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHB98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHB98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs006.254 b/parm/wmo/grib2_awpgfs006.254 deleted file mode 100755 index 030376d223..0000000000 --- a/parm/wmo/grib2_awpgfs006.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOB99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOB93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOB95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOB92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOB90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOB91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOB85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOB82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOB80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOB77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOB75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOB72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOB70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOB67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOB65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOB62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOB60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOB57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOB55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOB52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOB50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOB45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOB40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOB35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOB30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOB25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOB20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOB15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOB10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOB99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOB93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOB95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOB92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOB90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOB91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOB85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOB82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOB80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOB77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOB75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOB72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOB70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOB67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOB65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOB62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOB60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOB57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOB55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOB52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOB50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOB45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOB40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOB35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOB30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOB25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOB20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOB15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOB10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOB99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOB93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOB95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOB92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOB90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOB91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOB85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOB82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOB80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOB77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOB75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOB72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOB70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOB67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOB65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOB62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOB60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOB57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOB55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOB52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOB50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOB45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOB40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOB35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOB30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOB25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOB20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOB15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOB10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROB99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROB93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROB95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROB92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROB90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROB91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROB85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROB82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROB80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROB77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROB75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROB72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROB70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROB67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROB65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROB62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROB60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROB57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROB55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROB52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROB50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROB45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROB40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROB35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROB30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROB25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROB20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROB15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROB10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOB85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOB70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOB50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOB25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOB99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOB99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOB93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOB93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOB95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOB95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOB92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOB92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOB90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOB90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOB91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOB91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOB85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOB85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOB82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOB82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOB80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOB80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOB77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOB77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOB75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOB75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOB72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOB72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOB70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOB70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOB67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOB67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOB65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOB65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOB62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOB62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOB60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOB60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOB57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOB57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOB55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOB55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOB52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOB52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOB50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOB50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOB45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOB45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOB40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOB40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOB35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOB35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOB30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOB30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOB25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOB25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOB20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOB20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOB15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOB15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOB10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOB10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOB86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROB86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOB86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOB97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOB97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOB98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOB00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 6 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOB97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOB97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOB98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOB98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOB98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOB98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOB86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 6 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOB86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 6 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOB96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 6 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOB89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 6 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOB94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 6 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROB94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOB97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOB96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOB96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOB98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOB73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 0 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOB73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 0 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOB73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 0 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOB98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 6 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOB98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOB98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOB98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROB98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 6 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOB98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 6 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOB98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 6 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs012.003 b/parm/wmo/grib2_awpgfs012.003 old mode 100755 new mode 100644 index 8c94bb7044..b367878e63 --- a/parm/wmo/grib2_awpgfs012.003 +++ b/parm/wmo/grib2_awpgfs012.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPC92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPC92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPC92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPC50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 12 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs012.160 b/parm/wmo/grib2_awpgfs012.160 deleted file mode 100755 index 232b9c46fe..0000000000 --- a/parm/wmo/grib2_awpgfs012.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGC99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGC93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGC95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGC92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGC90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGC91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGC85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGC82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGC80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGC77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGC75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGC72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGC70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGC67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGC65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGC62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGC60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGC57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGC55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGC52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGC50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGC45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGC40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGC35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGC30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGC25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGC20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGC15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGC10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGC99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGC93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGC95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGC92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGC90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGC91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGC85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGC82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGC80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGC77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGC75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGC72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGC70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGC67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGC65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGC62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGC60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGC57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGC55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGC52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGC50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGC45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGC40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGC35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGC30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGC25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGC20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGC15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGC10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGC99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGC93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGC95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGC92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGC90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGC91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGC85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGC82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGC80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGC77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGC75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGC72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGC70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGC67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGC65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGC62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGC60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGC57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGC55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGC52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGC50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGC45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGC40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGC35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGC30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGC25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGC20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGC15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGC10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGC99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGC93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGC95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGC92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGC90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGC91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGC85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGC82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGC80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGC77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGC75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGC72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGC70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGC67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGC65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGC62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGC60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGC57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGC55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGC52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGC50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGC45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGC40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGC35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGC30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGC25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGC20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGC15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGC10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGC85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGC70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGC50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGC25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGC50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGC99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGC99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGC93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGC93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGC95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGC95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGC92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGC92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGC90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGC90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGC91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGC91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGC85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGC85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGC82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGC82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGC80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGC80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGC77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGC77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGC75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGC75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGC72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGC72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGC70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGC70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGC67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGC67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGC65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGC65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGC62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGC62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGC60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGC60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGC57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGC57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGC55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGC55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGC52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGC52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGC50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGC50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGC45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGC45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGC40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGC40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGC35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGC35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGC30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGC30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGC25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGC25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGC20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGC20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGC15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGC15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGC10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGC10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGC98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGC00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 12 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGC97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGC98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGC98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGC98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGC98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGC86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 12 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGC86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 12 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGC96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGC89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 12 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGC94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGC94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGC96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGC96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGC98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGC73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 6 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGC73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 6 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGC73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 6 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGC98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGC98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGC98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGC98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGC98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGC98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGC98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGC98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGC98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGC98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs012.161 b/parm/wmo/grib2_awpgfs012.161 deleted file mode 100755 index 06b6632bde..0000000000 --- a/parm/wmo/grib2_awpgfs012.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTC99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTC93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTC95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTC92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTC90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTC91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTC85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTC82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTC80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTC77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTC75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTC72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTC70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTC67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTC65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTC62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTC60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTC57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTC55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTC52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTC50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTC45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTC40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTC35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTC30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTC25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTC20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTC15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTC10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTC99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTC93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTC95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTC92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTC90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTC91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTC85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTC82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTC80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTC77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTC75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTC72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTC70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTC67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTC65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTC62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTC60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTC57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTC55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTC52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTC50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTC45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTC40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTC35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTC30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTC25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTC20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTC15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTC10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTC99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTC93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTC95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTC92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTC90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTC91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTC85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTC82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTC80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTC77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTC75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTC72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTC70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTC67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTC65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTC62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTC60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTC57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTC55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTC52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTC50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTC45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTC40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTC35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTC30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTC25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTC20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTC15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTC10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTC99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTC93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTC95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTC92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTC90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTC91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTC85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTC82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTC80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTC77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTC75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTC72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTC70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTC67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTC65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTC62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTC60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTC57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTC55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTC52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTC50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTC45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTC40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTC35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTC30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTC25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTC20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTC15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTC10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTC85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTC70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTC50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTC25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTC50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTC99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTC99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTC93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTC93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTC95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTC95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTC92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTC92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTC90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTC90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTC91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTC91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTC85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTC85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTC82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTC82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTC80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTC80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTC77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTC77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTC75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTC75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTC72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTC72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTC70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTC70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTC67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTC67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTC65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTC65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTC62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTC62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTC60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTC60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTC57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTC57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTC55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTC55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTC52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTC52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTC50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTC50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTC45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTC45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTC40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTC40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTC35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTC35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTC30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTC30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTC25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTC25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTC20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTC20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTC15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTC15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTC10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTC10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTC98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTC00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 12 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTC97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTC98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTC98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTC98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTC98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTC86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 12 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTC86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 12 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTC96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTC89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 12 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTC94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTC94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTC96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTC96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTC98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATC73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 6 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATC73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 6 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATC73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 6 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTC98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETC98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTC98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTC98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTC98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTC98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTC98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTC98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTC98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTC98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs012.213 b/parm/wmo/grib2_awpgfs012.213 deleted file mode 100755 index cf32cea8dd..0000000000 --- a/parm/wmo/grib2_awpgfs012.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHC99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHC85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHC70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHC50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHC40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHC30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHC25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHC20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHC15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHC10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHC99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHC85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHC70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHC50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHC40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHC30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHC25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHC20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHC15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHC10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHC99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHC85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHC70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHC50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHC40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHC30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHC25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHC20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHC15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHC10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHC99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHC85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHC70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHC50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHC40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHC30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHC85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHC70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHC50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHC25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHC50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHC99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHC99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHC85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHC85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHC70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHC70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHC50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHC50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHC40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHC40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHC30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHC30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHC25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHC25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHC20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHC20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHC15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHC15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHC10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHC10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHC98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHC00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 12 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHC97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHC98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHC98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHC98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHC98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHC86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 12 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHC86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 12 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHC89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 12 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHC98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHC98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHC98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHC98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHC98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs012.254 b/parm/wmo/grib2_awpgfs012.254 deleted file mode 100755 index 6706b5e7ca..0000000000 --- a/parm/wmo/grib2_awpgfs012.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOC99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOC93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOC95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOC92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOC90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOC91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOC85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOC82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOC80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOC77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOC75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOC72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOC70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOC67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOC65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOC62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOC60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOC57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOC55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOC52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOC50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOC45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOC40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOC35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOC30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOC25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOC20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOC15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOC10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOC99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOC93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOC95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOC92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOC90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOC91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOC85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOC82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOC80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOC77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOC75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOC72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOC70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOC67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOC65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOC62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOC60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOC57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOC55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOC52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOC50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOC45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOC40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOC35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOC30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOC25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOC20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOC15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOC10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOC99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOC93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOC95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOC92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOC90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOC91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOC85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOC82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOC80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOC77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOC75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOC72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOC70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOC67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOC65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOC62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOC60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOC57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOC55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOC52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOC50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOC45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOC40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOC35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOC30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOC25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOC20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOC15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOC10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROC99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROC93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROC95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROC92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROC90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROC91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROC85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROC82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROC80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROC77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROC75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROC72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROC70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROC67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROC65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROC62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROC60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROC57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROC55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROC52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROC50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROC45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROC40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROC35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROC30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROC25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROC20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROC15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROC10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOC85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOC70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOC50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOC25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOC50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOC99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOC99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOC93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOC93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOC95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOC95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOC92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOC92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOC90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOC90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOC91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOC91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOC85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOC85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOC82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOC82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOC80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOC80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOC77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOC77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOC75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOC75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOC72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOC72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOC70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOC70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOC67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOC67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOC65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOC65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOC62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOC62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOC60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOC60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOC57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOC57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOC55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOC55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOC52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOC52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOC50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOC50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOC45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOC45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOC40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOC40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOC35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOC35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOC30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOC30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOC25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOC25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOC20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOC20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOC15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOC15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOC10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOC10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOC86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROC86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOC86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOC97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOC97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOC98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOC00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 12 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOC97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOC97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOC98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOC98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOC98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOC98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOC86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 12 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOC86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 12 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOC96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 12 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOC89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 12 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOC94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 12 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROC94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOC97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOC96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOC96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOC98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOC73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 6 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOC73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 6 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOC73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 6 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOC98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 12 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOC98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOC98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOC98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOC98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOC98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOC98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROC98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 12 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOC98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 12 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOC98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 12 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs018.003 b/parm/wmo/grib2_awpgfs018.003 old mode 100755 new mode 100644 index 845f26a747..d89f2d2c73 --- a/parm/wmo/grib2_awpgfs018.003 +++ b/parm/wmo/grib2_awpgfs018.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPD92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPD92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPD92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPD50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 18 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs018.160 b/parm/wmo/grib2_awpgfs018.160 deleted file mode 100755 index d0cede733c..0000000000 --- a/parm/wmo/grib2_awpgfs018.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGD99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGD93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGD95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGD92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGD90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGD91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGD85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGD82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGD80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGD77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGD75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGD72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGD70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGD67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGD65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGD62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGD60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGD57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGD55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGD52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGD50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGD45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGD40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGD35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGD30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGD25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGD20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGD15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGD10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGD99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGD93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGD95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGD92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGD90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGD91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGD85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGD82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGD80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGD77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGD75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGD72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGD70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGD67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGD65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGD62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGD60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGD57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGD55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGD52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGD50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGD45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGD40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGD35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGD30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGD25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGD20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGD15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGD10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGD99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGD93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGD95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGD92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGD90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGD91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGD85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGD82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGD80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGD77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGD75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGD72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGD70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGD67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGD65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGD62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGD60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGD57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGD55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGD52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGD50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGD45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGD40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGD35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGD30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGD25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGD20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGD15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGD10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGD99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGD93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGD95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGD92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGD90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGD91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGD85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGD82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGD80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGD77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGD75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGD72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGD70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGD67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGD65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGD62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGD60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGD57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGD55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGD52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGD50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGD45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGD40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGD35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGD30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGD25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGD20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGD15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGD10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGD85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGD70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGD50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGD25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGD50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGD99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGD99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGD93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGD93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGD95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGD95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGD92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGD92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGD90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGD90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGD91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGD91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGD85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGD85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGD82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGD82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGD80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGD80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGD77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGD77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGD75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGD75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGD72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGD72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGD70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGD70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGD67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGD67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGD65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGD65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGD62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGD62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGD60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGD60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGD57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGD57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGD55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGD55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGD52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGD52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGD50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGD50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGD45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGD45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGD40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGD40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGD35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGD35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGD30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGD30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGD25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGD25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGD20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGD20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGD15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGD15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGD10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGD10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGD98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGD00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 18 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGD97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGD98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGD98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGD98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGD98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGD86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 18 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGD86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 18 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGD96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGD89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 18 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGD94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGD94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGD96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGD96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGD98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGD73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 12 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGD73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 12 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGD73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 12 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGD98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGD98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGD98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGD98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGD98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGD98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGD98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGD98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGD98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGD98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs018.161 b/parm/wmo/grib2_awpgfs018.161 deleted file mode 100755 index e1595ad67c..0000000000 --- a/parm/wmo/grib2_awpgfs018.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTD99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTD93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTD95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTD92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTD90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTD91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTD85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTD82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTD80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTD77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTD75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTD72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTD70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTD67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTD65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTD62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTD60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTD57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTD55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTD52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTD50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTD45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTD40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTD35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTD30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTD25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTD20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTD15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTD10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTD99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTD93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTD95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTD92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTD90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTD91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTD85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTD82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTD80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTD77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTD75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTD72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTD70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTD67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTD65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTD62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTD60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTD57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTD55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTD52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTD50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTD45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTD40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTD35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTD30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTD25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTD20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTD15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTD10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTD99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTD93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTD95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTD92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTD90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTD91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTD85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTD82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTD80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTD77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTD75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTD72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTD70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTD67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTD65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTD62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTD60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTD57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTD55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTD52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTD50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTD45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTD40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTD35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTD30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTD25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTD20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTD15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTD10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTD99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTD93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTD95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTD92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTD90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTD91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTD85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTD82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTD80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTD77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTD75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTD72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTD70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTD67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTD65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTD62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTD60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTD57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTD55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTD52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTD50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTD45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTD40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTD35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTD30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTD25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTD20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTD15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTD10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTD85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTD70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTD50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTD25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTD50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTD99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTD99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTD93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTD93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTD95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTD95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTD92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTD92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTD90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTD90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTD91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTD91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTD85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTD85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTD82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTD82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTD80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTD80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTD77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTD77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTD75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTD75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTD72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTD72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTD70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTD70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTD67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTD67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTD65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTD65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTD62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTD62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTD60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTD60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTD57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTD57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTD55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTD55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTD52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTD52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTD50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTD50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTD45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTD45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTD40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTD40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTD35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTD35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTD30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTD30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTD25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTD25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTD20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTD20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTD15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTD15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTD10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTD10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTD98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTD00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 18 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTD97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTD98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTD98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTD98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTD98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTD86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 18 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTD86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 18 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTD96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTD89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 18 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTD94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTD94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTD96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTD96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTD98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATD73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 12 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATD73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 12 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATD73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 12 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTD98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETD98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTD98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTD98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTD98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTD98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTD98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTD98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTD98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTD98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs018.213 b/parm/wmo/grib2_awpgfs018.213 deleted file mode 100755 index db211c5375..0000000000 --- a/parm/wmo/grib2_awpgfs018.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHD99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHD85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHD70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHD50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHD40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHD30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHD25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHD20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHD15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHD10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHD99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHD85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHD70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHD50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHD40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHD30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHD25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHD20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHD15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHD10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHD99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHD85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHD70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHD50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHD40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHD30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHD25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHD20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHD15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHD10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHD99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHD85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHD70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHD50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHD40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHD30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHD85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHD70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHD50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHD25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHD50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHD99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHD99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHD85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHD85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHD70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHD70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHD50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHD50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHD40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHD40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHD30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHD30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHD25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHD25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHD20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHD20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHD15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHD15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHD10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHD10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHD98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHD00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 18 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHD97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHD98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHD98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHD98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHD98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHD86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 18 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHD86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 18 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHD89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 18 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHD98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHD98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHD98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHD98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHD98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs018.254 b/parm/wmo/grib2_awpgfs018.254 deleted file mode 100755 index 0274daaec6..0000000000 --- a/parm/wmo/grib2_awpgfs018.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOD99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOD93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOD95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOD92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOD90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOD91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOD85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOD82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOD80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOD77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOD75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOD72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOD70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOD67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOD65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOD62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOD60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOD57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOD55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOD52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOD50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOD45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOD40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOD35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOD30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOD25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOD20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOD15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOD10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOD99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOD93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOD95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOD92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOD90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOD91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOD85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOD82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOD80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOD77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOD75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOD72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOD70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOD67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOD65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOD62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOD60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOD57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOD55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOD52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOD50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOD45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOD40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOD35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOD30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOD25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOD20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOD15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOD10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOD99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOD93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOD95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOD92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOD90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOD91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOD85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOD82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOD80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOD77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOD75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOD72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOD70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOD67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOD65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOD62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOD60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOD57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOD55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOD52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOD50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOD45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOD40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOD35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOD30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOD25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOD20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOD15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOD10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROD99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROD93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROD95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROD92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROD90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROD91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROD85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROD82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROD80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROD77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROD75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROD72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROD70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROD67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROD65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROD62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROD60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROD57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROD55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROD52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROD50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROD45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROD40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROD35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROD30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROD25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROD20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROD15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROD10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOD85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOD70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOD50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOD25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOD50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOD99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOD99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOD93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOD93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOD95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOD95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOD92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOD92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOD90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOD90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOD91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOD91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOD85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOD85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOD82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOD82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOD80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOD80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOD77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOD77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOD75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOD75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOD72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOD72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOD70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOD70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOD67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOD67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOD65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOD65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOD62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOD62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOD60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOD60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOD57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOD57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOD55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOD55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOD52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOD52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOD50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOD50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOD45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOD45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOD40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOD40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOD35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOD35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOD30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOD30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOD25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOD25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOD20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOD20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOD15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOD15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOD10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOD10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOD86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROD86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOD86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOD97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOD97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOD98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOD00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 18 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOD97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOD97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOD98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOD98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOD98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOD98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOD86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 18 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOD86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 18 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOD96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 18 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOD89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 18 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOD94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 18 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROD94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOD97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOD96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOD96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOD98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOD73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 12 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOD73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 12 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOD73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 12 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOD98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 18 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOD98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOD98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOD98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOD98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOD98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOD98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROD98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 18 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOD98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 18 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOD98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 18 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs024.003 b/parm/wmo/grib2_awpgfs024.003 old mode 100755 new mode 100644 index 56eadc6903..e446f48766 --- a/parm/wmo/grib2_awpgfs024.003 +++ b/parm/wmo/grib2_awpgfs024.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPE92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPE92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPE92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 24 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs024.160 b/parm/wmo/grib2_awpgfs024.160 deleted file mode 100755 index 3bd7cc2e7e..0000000000 --- a/parm/wmo/grib2_awpgfs024.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGE99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGE93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGE95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGE92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGE90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGE91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGE85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGE82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGE80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGE77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGE75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGE72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGE70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGE67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGE65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGE62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGE60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGE57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGE55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGE52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGE50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGE45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGE40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGE35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGE30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGE25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGE20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGE15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGE10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGE99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGE93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGE95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGE92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGE90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGE91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGE85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGE82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGE80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGE77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGE75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGE72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGE70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGE67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGE65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGE62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGE60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGE57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGE55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGE52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGE50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGE45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGE40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGE35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGE30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGE25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGE20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGE15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGE10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGE99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGE93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGE95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGE92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGE90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGE91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGE85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGE82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGE80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGE77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGE75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGE72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGE70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGE67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGE65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGE62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGE60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGE57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGE55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGE52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGE50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGE45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGE40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGE35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGE30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGE25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGE20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGE15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGE10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGE99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGE93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGE95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGE92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGE90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGE91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGE85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGE82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGE80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGE77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGE75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGE72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGE70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGE67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGE65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGE62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGE60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGE57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGE55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGE52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGE50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGE45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGE40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGE35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGE30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGE25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGE20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGE15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGE10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGE85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGE70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGE50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGE25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGE99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGE99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGE93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGE93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGE95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGE95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGE92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGE92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGE90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGE90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGE91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGE91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGE85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGE85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGE82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGE82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGE80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGE80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGE77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGE77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGE75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGE75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGE72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGE72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGE70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGE70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGE67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGE67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGE65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGE65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGE62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGE62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGE60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGE60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGE57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGE57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGE55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGE55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGE52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGE52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGE50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGE50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGE45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGE45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGE40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGE40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGE35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGE35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGE30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGE30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGE25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGE25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGE20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGE20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGE15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGE15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGE10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGE10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGE98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGE00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 24 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGE97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGE98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGE98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGE98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGE98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGE86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 24 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGE86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 24 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGE96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGE89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 24 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGE94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGE94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGE96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGE96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGE98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGE73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 18 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGE73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 18 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGE73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 18 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGE98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGE98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGE98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGE98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGE98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGE98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGE98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs024.161 b/parm/wmo/grib2_awpgfs024.161 deleted file mode 100755 index 7e294303b4..0000000000 --- a/parm/wmo/grib2_awpgfs024.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTE99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTE93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTE95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTE92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTE90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTE91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTE85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTE82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTE80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTE77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTE75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTE72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTE70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTE67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTE65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTE62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTE60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTE57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTE55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTE52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTE50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTE45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTE40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTE35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTE30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTE25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTE20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTE15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTE10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTE99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTE93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTE95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTE92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTE90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTE91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTE85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTE82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTE80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTE77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTE75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTE72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTE70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTE67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTE65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTE62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTE60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTE57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTE55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTE52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTE50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTE45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTE40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTE35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTE30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTE25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTE20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTE15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTE10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTE99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTE93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTE95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTE92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTE90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTE91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTE85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTE82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTE80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTE77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTE75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTE72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTE70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTE67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTE65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTE62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTE60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTE57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTE55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTE52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTE50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTE45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTE40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTE35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTE30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTE25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTE20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTE15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTE10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTE99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTE93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTE95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTE92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTE90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTE91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTE85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTE82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTE80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTE77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTE75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTE72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTE70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTE67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTE65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTE62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTE60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTE57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTE55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTE52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTE50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTE45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTE40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTE35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTE30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTE25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTE20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTE15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTE10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTE85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTE70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTE50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTE25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTE99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTE99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTE93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTE93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTE95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTE95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTE92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTE92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTE90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTE90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTE91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTE91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTE85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTE85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTE82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTE82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTE80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTE80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTE77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTE77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTE75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTE75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTE72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTE72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTE70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTE70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTE67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTE67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTE65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTE65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTE62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTE62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTE60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTE60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTE57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTE57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTE55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTE55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTE52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTE52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTE50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTE50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTE45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTE45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTE40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTE40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTE35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTE35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTE30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTE30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTE25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTE25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTE20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTE20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTE15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTE15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTE10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTE10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTE98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTE00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 24 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTE97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTE98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTE98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTE98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTE98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTE86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 24 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTE86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 24 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTE96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTE89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 24 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTE94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTE94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTE96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTE96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTE98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATE73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 18 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATE73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 18 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATE73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 18 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTE98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETE98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTE98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTE98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTE98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTE98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTE98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs024.213 b/parm/wmo/grib2_awpgfs024.213 deleted file mode 100755 index 04bb34801b..0000000000 --- a/parm/wmo/grib2_awpgfs024.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHE99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHE85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHE70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHE50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHE40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHE30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHE25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHE20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHE15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHE10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHE99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHE85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHE70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHE50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHE40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHE30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHE25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHE20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHE15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHE10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHE99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHE85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHE70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHE50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHE40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHE30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHE25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHE20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHE15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHE10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHE99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHE85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHE70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHE50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHE40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHE30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHE85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHE70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHE50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHE25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHE99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHE99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHE85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHE85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHE70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHE70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHE50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHE50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHE40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHE40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHE30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHE30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHE25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHE25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHE20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHE20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHE15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHE15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHE10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHE10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHE98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHE00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 24 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHE97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHE98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHE98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHE98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHE98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHE86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 24 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHE86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 24 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHE89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 24 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHE98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHE98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHE98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHE98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHE98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs024.254 b/parm/wmo/grib2_awpgfs024.254 deleted file mode 100755 index 2a08a81668..0000000000 --- a/parm/wmo/grib2_awpgfs024.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOE99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOE93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOE95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOE92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOE90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOE91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOE85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOE82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOE80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOE77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOE75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOE72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOE70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOE67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOE65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOE62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOE60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOE57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOE55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOE52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOE50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOE45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOE40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOE35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOE30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOE25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOE20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOE15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOE10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOE99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOE93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOE95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOE92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOE90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOE91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOE85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOE82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOE80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOE77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOE75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOE72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOE70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOE67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOE65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOE62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOE60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOE57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOE55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOE52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOE50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOE45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOE40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOE35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOE30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOE25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOE20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOE15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOE10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOE99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOE93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOE95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOE92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOE90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOE91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOE85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOE82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOE80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOE77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOE75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOE72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOE70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOE67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOE65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOE62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOE60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOE57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOE55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOE52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOE50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOE45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOE40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOE35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOE30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOE25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOE20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOE15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOE10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROE99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROE93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROE95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROE92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROE90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROE91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROE85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROE82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROE80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROE77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROE75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROE72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROE70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROE67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROE65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROE62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROE60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROE57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROE55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROE52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROE50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROE45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROE40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROE35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROE30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROE25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROE20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROE15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROE10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOE85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOE70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOE50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOE25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOE99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOE99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOE93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOE93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOE95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOE95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOE92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOE92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOE90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOE90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOE91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOE91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOE85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOE85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOE82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOE82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOE80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOE80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOE77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOE77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOE75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOE75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOE72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOE72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOE70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOE70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOE67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOE67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOE65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOE65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOE62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOE62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOE60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOE60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOE57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOE57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOE55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOE55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOE52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOE52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOE50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOE50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOE45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOE45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOE40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOE40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOE35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOE35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOE30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOE30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOE25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOE25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOE20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOE20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOE15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOE15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOE10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOE10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOE86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROE86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOE86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOE97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOE97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOE98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOE00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 24 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOE97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOE97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOE98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOE98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOE98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOE98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOE86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 24 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOE86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 24 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOE96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 24 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOE89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 24 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOE94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 24 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROE94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOE97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOE96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOE96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOE98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOE73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 18 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOE73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 18 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOE73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 18 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOE98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 24 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOE98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOE98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOE98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROE98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 24 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOE98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 24 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOE98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 24 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs030.003 b/parm/wmo/grib2_awpgfs030.003 old mode 100755 new mode 100644 index d2d37c03b0..59081135d7 --- a/parm/wmo/grib2_awpgfs030.003 +++ b/parm/wmo/grib2_awpgfs030.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPF92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPF92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPF92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPF50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 30 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs030.160 b/parm/wmo/grib2_awpgfs030.160 deleted file mode 100755 index 6d2dfb797c..0000000000 --- a/parm/wmo/grib2_awpgfs030.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGF99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGF93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGF95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGF92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGF90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGF91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGF85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGF82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGF80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGF77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGF75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGF72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGF70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGF67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGF65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGF62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGF60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGF57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGF55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGF52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGF50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGF45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGF40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGF35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGF30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGF25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGF20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGF15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGF10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGF99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGF93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGF95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGF92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGF90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGF91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGF85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGF82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGF80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGF77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGF75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGF72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGF70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGF67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGF65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGF62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGF60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGF57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGF55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGF52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGF50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGF45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGF40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGF35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGF30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGF25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGF20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGF15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGF10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGF99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGF93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGF95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGF92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGF90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGF91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGF85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGF82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGF80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGF77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGF75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGF72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGF70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGF67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGF65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGF62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGF60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGF57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGF55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGF52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGF50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGF45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGF40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGF35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGF30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGF25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGF20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGF15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGF10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGF99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGF93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGF95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGF92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGF90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGF91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGF85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGF82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGF80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGF77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGF75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGF72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGF70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGF67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGF65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGF62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGF60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGF57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGF55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGF52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGF50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGF45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGF40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGF35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGF30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGF25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGF20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGF15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGF10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGF85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGF70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGF50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGF25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGF50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGF99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGF99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGF93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGF93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGF95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGF95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGF92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGF92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGF90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGF90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGF91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGF91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGF85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGF85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGF82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGF82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGF80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGF80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGF77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGF77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGF75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGF75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGF72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGF72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGF70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGF70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGF67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGF67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGF65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGF65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGF62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGF62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGF60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGF60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGF57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGF57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGF55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGF55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGF52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGF52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGF50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGF50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGF45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGF45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGF40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGF40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGF35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGF35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGF30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGF30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGF25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGF25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGF20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGF20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGF15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGF15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGF10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGF10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGF98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGF00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 30 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGF97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGF98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGF98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGF98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGF98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGF86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 30 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGF86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 30 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGF96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGF89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 30 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGF94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGF94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGF96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGF96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGF98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGF73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 24 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGF73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 24 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGF73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 24 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGF98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGF98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGF98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGF98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGF98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGF98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGF98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGF98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGF98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGF98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs030.161 b/parm/wmo/grib2_awpgfs030.161 deleted file mode 100755 index e5010f4eaa..0000000000 --- a/parm/wmo/grib2_awpgfs030.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTF99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTF93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTF95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTF92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTF90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTF91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTF85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTF82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTF80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTF77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTF75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTF72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTF70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTF67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTF65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTF62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTF60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTF57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTF55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTF52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTF50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTF45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTF40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTF35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTF30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTF25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTF20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTF15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTF10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTF99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTF93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTF95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTF92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTF90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTF91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTF85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTF82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTF80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTF77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTF75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTF72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTF70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTF67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTF65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTF62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTF60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTF57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTF55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTF52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTF50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTF45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTF40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTF35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTF30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTF25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTF20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTF15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTF10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTF99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTF93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTF95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTF92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTF90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTF91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTF85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTF82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTF80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTF77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTF75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTF72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTF70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTF67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTF65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTF62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTF60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTF57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTF55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTF52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTF50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTF45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTF40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTF35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTF30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTF25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTF20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTF15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTF10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTF99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTF93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTF95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTF92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTF90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTF91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTF85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTF82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTF80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTF77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTF75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTF72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTF70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTF67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTF65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTF62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTF60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTF57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTF55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTF52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTF50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTF45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTF40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTF35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTF30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTF25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTF20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTF15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTF10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTF85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTF70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTF50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTF25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTF50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTF99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTF99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTF93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTF93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTF95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTF95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTF92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTF92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTF90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTF90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTF91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTF91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTF85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTF85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTF82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTF82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTF80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTF80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTF77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTF77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTF75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTF75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTF72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTF72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTF70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTF70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTF67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTF67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTF65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTF65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTF62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTF62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTF60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTF60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTF57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTF57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTF55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTF55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTF52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTF52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTF50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTF50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTF45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTF45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTF40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTF40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTF35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTF35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTF30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTF30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTF25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTF25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTF20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTF20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTF15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTF15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTF10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTF10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTF98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTF00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 30 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTF97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTF98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTF98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTF98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTF98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTF86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 30 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTF86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 30 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTF96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTF89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 30 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTF94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTF94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTF96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTF96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTF98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATF73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 24 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATF73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 24 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATF73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 24 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTF98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETF98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTF98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTF98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTF98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTF98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTF98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTF98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTF98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTF98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs030.213 b/parm/wmo/grib2_awpgfs030.213 deleted file mode 100755 index b3432366f5..0000000000 --- a/parm/wmo/grib2_awpgfs030.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHF99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHF85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHF70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHF50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHF40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHF30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHF25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHF20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHF15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHF10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHF99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHF85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHF70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHF50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHF40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHF30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHF25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHF20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHF15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHF10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHF99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHF85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHF70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHF50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHF40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHF30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHF25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHF20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHF15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHF10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHF99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHF85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHF70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHF50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHF40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHF30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHF85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHF70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHF50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHF25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHF50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHF99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHF99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHF85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHF85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHF70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHF70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHF50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHF50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHF40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHF40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHF30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHF30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHF25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHF25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHF20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHF20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHF15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHF15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHF10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHF10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHF98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHF00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 30 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHF97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHF98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHF98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHF98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHF98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHF86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 30 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHF86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 30 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHF89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 30 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHF98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHF98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHF98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHF98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHF98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs030.254 b/parm/wmo/grib2_awpgfs030.254 deleted file mode 100755 index 89b48b4f46..0000000000 --- a/parm/wmo/grib2_awpgfs030.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOF99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOF93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOF95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOF92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOF90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOF91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOF85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOF82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOF80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOF77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOF75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOF72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOF70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOF67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOF65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOF62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOF60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOF57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOF55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOF52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOF50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOF45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOF40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOF35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOF30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOF25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOF20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOF15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOF10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOF99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOF93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOF95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOF92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOF90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOF91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOF85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOF82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOF80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOF77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOF75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOF72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOF70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOF67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOF65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOF62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOF60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOF57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOF55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOF52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOF50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOF45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOF40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOF35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOF30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOF25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOF20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOF15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOF10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOF99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOF93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOF95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOF92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOF90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOF91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOF85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOF82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOF80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOF77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOF75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOF72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOF70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOF67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOF65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOF62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOF60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOF57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOF55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOF52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOF50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOF45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOF40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOF35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOF30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOF25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOF20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOF15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOF10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROF99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROF93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROF95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROF92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROF90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROF91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROF85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROF82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROF80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROF77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROF75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROF72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROF70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROF67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROF65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROF62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROF60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROF57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROF55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROF52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROF50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROF45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROF40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROF35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROF30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROF25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROF20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROF15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROF10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOF85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOF70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOF50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOF25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOF50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOF99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOF99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOF93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOF93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOF95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOF95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOF92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOF92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOF90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOF90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOF91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOF91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOF85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOF85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOF82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOF82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOF80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOF80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOF77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOF77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOF75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOF75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOF72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOF72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOF70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOF70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOF67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOF67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOF65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOF65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOF62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOF62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOF60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOF60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOF57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOF57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOF55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOF55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOF52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOF52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOF50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOF50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOF45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOF45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOF40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOF40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOF35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOF35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOF30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOF30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOF25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOF25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOF20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOF20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOF15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOF15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOF10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOF10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOF86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROF86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOF86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOF97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOF97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOF98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOF00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 30 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOF97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOF97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOF98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOF98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOF98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOF98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOF86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 30 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOF86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 30 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOF96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 30 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOF89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 30 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOF94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 30 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROF94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOF97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOF96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOF96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOF98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOF73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 24 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOF73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 24 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOF73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 24 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOF98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 30 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOF98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOF98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOF98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOF98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOF98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOF98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROF98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 30 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOF98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 30 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOF98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 30 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs036.003 b/parm/wmo/grib2_awpgfs036.003 old mode 100755 new mode 100644 index 7cbe4d0aaf..4c18e96a12 --- a/parm/wmo/grib2_awpgfs036.003 +++ b/parm/wmo/grib2_awpgfs036.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPG92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPG92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPG92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPG50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 36 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs036.160 b/parm/wmo/grib2_awpgfs036.160 deleted file mode 100755 index c72bc3f843..0000000000 --- a/parm/wmo/grib2_awpgfs036.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGG99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGG93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGG95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGG92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGG90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGG91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGG85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGG82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGG80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGG77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGG75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGG72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGG70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGG67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGG65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGG62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGG60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGG57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGG55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGG52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGG50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGG45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGG40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGG35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGG30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGG25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGG20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGG15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGG10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGG99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGG93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGG95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGG92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGG90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGG91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGG85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGG82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGG80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGG77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGG75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGG72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGG70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGG67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGG65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGG62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGG60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGG57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGG55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGG52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGG50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGG45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGG40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGG35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGG30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGG25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGG20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGG15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGG10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGG99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGG93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGG95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGG92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGG90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGG91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGG85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGG82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGG80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGG77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGG75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGG72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGG70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGG67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGG65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGG62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGG60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGG57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGG55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGG52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGG50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGG45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGG40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGG35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGG30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGG25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGG20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGG15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGG10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGG99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGG93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGG95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGG92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGG90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGG91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGG85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGG82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGG80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGG77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGG75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGG72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGG70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGG67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGG65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGG62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGG60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGG57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGG55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGG52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGG50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGG45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGG40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGG35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGG30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGG25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGG20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGG15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGG10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGG85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGG70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGG50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGG25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGG50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGG99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGG99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGG93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGG93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGG95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGG95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGG92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGG92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGG90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGG90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGG91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGG91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGG85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGG85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGG82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGG82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGG80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGG80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGG77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGG77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGG75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGG75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGG72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGG72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGG70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGG70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGG67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGG67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGG65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGG65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGG62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGG62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGG60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGG60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGG57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGG57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGG55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGG55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGG52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGG52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGG50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGG50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGG45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGG45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGG40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGG40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGG35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGG35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGG30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGG30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGG25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGG25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGG20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGG20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGG15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGG15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGG10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGG10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGG98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGG00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 36 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGG97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGG98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGG98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGG98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGG98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGG86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 36 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGG86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 36 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGG96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGG89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 36 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGG94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGG94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGG96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGG96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGG98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGG73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 30 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGG73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 30 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGG73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 30 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGG98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGG98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGG98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGG98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGG98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGG98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGG98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGG98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGG98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGG98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs036.161 b/parm/wmo/grib2_awpgfs036.161 deleted file mode 100755 index 015d660e8d..0000000000 --- a/parm/wmo/grib2_awpgfs036.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTG99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTG93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTG95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTG92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTG90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTG91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTG85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTG82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTG80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTG77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTG75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTG72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTG70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTG67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTG65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTG62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTG60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTG57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTG55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTG52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTG50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTG45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTG40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTG35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTG30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTG25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTG20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTG15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTG10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTG99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTG93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTG95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTG92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTG90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTG91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTG85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTG82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTG80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTG77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTG75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTG72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTG70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTG67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTG65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTG62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTG60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTG57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTG55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTG52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTG50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTG45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTG40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTG35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTG30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTG25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTG20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTG15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTG10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTG99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTG93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTG95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTG92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTG90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTG91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTG85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTG82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTG80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTG77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTG75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTG72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTG70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTG67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTG65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTG62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTG60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTG57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTG55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTG52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTG50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTG45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTG40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTG35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTG30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTG25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTG20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTG15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTG10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTG99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTG93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTG95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTG92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTG90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTG91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTG85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTG82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTG80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTG77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTG75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTG72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTG70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTG67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTG65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTG62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTG60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTG57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTG55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTG52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTG50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTG45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTG40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTG35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTG30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTG25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTG20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTG15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTG10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTG85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTG70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTG50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTG25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTG50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTG99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTG99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTG93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTG93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTG95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTG95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTG92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTG92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTG90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTG90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTG91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTG91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTG85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTG85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTG82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTG82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTG80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTG80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTG77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTG77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTG75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTG75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTG72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTG72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTG70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTG70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTG67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTG67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTG65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTG65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTG62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTG62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTG60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTG60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTG57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTG57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTG55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTG55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTG52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTG52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTG50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTG50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTG45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTG45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTG40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTG40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTG35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTG35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTG30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTG30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTG25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTG25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTG20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTG20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTG15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTG15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTG10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTG10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTG98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTG00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 36 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTG97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTG98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTG98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTG98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTG98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTG86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 36 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTG86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 36 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTG96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTG89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 36 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTG94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTG94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTG96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTG96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTG98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATG73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 30 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATG73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 30 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATG73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 30 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTG98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETG98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTG98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTG98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTG98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTG98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTG98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTG98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTG98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTG98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs036.213 b/parm/wmo/grib2_awpgfs036.213 deleted file mode 100755 index cfc135b7ec..0000000000 --- a/parm/wmo/grib2_awpgfs036.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHG99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHG85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHG70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHG50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHG40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHG30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHG25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHG20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHG15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHG10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHG99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHG85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHG70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHG50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHG40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHG30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHG25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHG20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHG15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHG10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHG99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHG85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHG70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHG50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHG40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHG30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHG25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHG20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHG15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHG10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHG99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHG85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHG70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHG50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHG40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHG30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHG85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHG70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHG50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHG25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHG50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHG99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHG99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHG85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHG85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHG70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHG70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHG50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHG50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHG40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHG40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHG30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHG30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHG25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHG25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHG20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHG20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHG15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHG15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHG10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHG10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHG98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHG00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 36 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHG97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHG98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHG98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHG98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHG98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHG86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 36 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHG86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 36 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHG89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 36 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHG98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHG98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHG98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHG98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHG98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs036.254 b/parm/wmo/grib2_awpgfs036.254 deleted file mode 100755 index 2d7919829e..0000000000 --- a/parm/wmo/grib2_awpgfs036.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOG99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOG93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOG95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOG92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOG90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOG91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOG85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOG82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOG80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOG77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOG75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOG72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOG70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOG67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOG65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOG62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOG60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOG57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOG55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOG52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOG50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOG45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOG40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOG35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOG30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOG25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOG20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOG15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOG10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOG99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOG93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOG95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOG92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOG90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOG91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOG85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOG82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOG80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOG77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOG75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOG72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOG70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOG67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOG65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOG62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOG60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOG57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOG55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOG52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOG50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOG45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOG40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOG35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOG30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOG25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOG20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOG15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOG10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOG99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOG93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOG95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOG92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOG90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOG91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOG85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOG82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOG80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOG77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOG75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOG72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOG70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOG67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOG65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOG62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOG60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOG57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOG55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOG52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOG50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOG45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOG40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOG35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOG30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOG25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOG20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOG15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOG10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROG99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROG93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROG95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROG92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROG90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROG91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROG85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROG82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROG80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROG77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROG75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROG72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROG70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROG67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROG65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROG62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROG60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROG57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROG55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROG52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROG50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROG45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROG40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROG35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROG30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROG25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROG20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROG15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROG10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOG85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOG70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOG50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOG25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOG50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOG99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOG99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOG93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOG93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOG95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOG95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOG92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOG92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOG90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOG90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOG91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOG91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOG85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOG85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOG82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOG82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOG80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOG80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOG77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOG77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOG75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOG75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOG72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOG72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOG70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOG70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOG67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOG67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOG65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOG65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOG62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOG62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOG60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOG60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOG57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOG57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOG55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOG55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOG52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOG52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOG50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOG50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOG45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOG45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOG40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOG40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOG35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOG35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOG30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOG30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOG25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOG25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOG20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOG20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOG15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOG15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOG10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOG10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOG86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROG86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOG86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOG97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOG97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOG98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOG00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 36 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOG97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOG97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOG98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOG98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOG98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOG98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOG86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 36 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOG86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 36 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOG96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 36 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOG89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 36 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOG94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 36 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROG94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOG97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOG96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOG96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOG98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOG73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 30 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOG73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 30 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOG73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 30 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOG98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 36 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOG98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOG98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOG98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOG98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOG98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOG98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROG98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 36 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOG98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 36 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOG98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 36 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs042.003 b/parm/wmo/grib2_awpgfs042.003 old mode 100755 new mode 100644 index 1be18748b3..ad2a74b711 --- a/parm/wmo/grib2_awpgfs042.003 +++ b/parm/wmo/grib2_awpgfs042.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPH92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPH92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPH92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 42 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs042.160 b/parm/wmo/grib2_awpgfs042.160 deleted file mode 100755 index 6bd55b8192..0000000000 --- a/parm/wmo/grib2_awpgfs042.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGH99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGH93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGH95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGH92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGH90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGH91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGH85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGH82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGH80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGH77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGH75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGH72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGH70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGH67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGH65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGH62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGH60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGH57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGH55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGH52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGH50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGH45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGH40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGH35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGH30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGH25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGH20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGH15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGH10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGH99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGH93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGH95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGH92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGH90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGH91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGH85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGH82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGH80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGH77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGH75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGH72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGH70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGH67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGH65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGH62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGH60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGH57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGH55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGH52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGH50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGH45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGH40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGH35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGH30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGH25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGH20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGH15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGH10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGH99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGH93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGH95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGH92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGH90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGH91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGH85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGH82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGH80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGH77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGH75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGH72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGH70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGH67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGH65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGH62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGH60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGH57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGH55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGH52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGH50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGH45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGH40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGH35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGH30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGH25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGH20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGH15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGH10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGH99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGH93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGH95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGH92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGH90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGH91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGH85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGH82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGH80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGH77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGH75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGH72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGH70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGH67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGH65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGH62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGH60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGH57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGH55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGH52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGH50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGH45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGH40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGH35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGH30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGH25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGH20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGH15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGH10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGH85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGH70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGH50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGH25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGH99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGH99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGH93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGH93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGH95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGH95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGH92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGH92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGH90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGH90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGH91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGH91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGH85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGH85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGH82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGH82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGH80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGH80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGH77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGH77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGH75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGH75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGH72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGH72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGH70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGH70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGH67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGH67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGH65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGH65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGH62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGH62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGH60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGH60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGH57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGH57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGH55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGH55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGH52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGH52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGH50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGH50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGH45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGH45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGH40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGH40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGH35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGH35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGH30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGH30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGH25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGH25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGH20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGH20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGH15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGH15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGH10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGH10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGH98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGH00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 42 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGH97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGH98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGH98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGH98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGH98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGH86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 42 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGH86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 42 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGH96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGH89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 42 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGH94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGH94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGH96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGH96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGH98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGH73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 36 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGH73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 36 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGH73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 36 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGH98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGH98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGH98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGH98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGH98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGH98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGH98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs042.161 b/parm/wmo/grib2_awpgfs042.161 deleted file mode 100755 index 2bba7094ea..0000000000 --- a/parm/wmo/grib2_awpgfs042.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTH99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTH93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTH95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTH92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTH90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTH91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTH85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTH82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTH80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTH77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTH75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTH72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTH70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTH67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTH65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTH62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTH60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTH57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTH55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTH52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTH50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTH45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTH40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTH35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTH30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTH25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTH20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTH15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTH10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTH99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTH93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTH95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTH92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTH90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTH91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTH85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTH82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTH80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTH77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTH75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTH72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTH70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTH67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTH65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTH62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTH60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTH57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTH55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTH52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTH50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTH45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTH40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTH35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTH30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTH25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTH20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTH15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTH10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTH99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTH93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTH95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTH92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTH90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTH91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTH85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTH82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTH80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTH77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTH75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTH72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTH70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTH67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTH65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTH62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTH60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTH57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTH55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTH52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTH50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTH45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTH40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTH35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTH30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTH25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTH20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTH15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTH10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTH99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTH93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTH95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTH92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTH90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTH91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTH85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTH82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTH80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTH77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTH75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTH72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTH70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTH67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTH65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTH62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTH60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTH57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTH55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTH52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTH50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTH45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTH40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTH35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTH30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTH25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTH20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTH15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTH10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTH85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTH70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTH50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTH25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTH99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTH99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTH93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTH93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTH95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTH95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTH92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTH92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTH90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTH90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTH91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTH91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTH85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTH85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTH82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTH82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTH80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTH80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTH77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTH77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTH75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTH75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTH72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTH72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTH70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTH70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTH67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTH67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTH65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTH65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTH62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTH62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTH60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTH60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTH57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTH57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTH55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTH55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTH52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTH52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTH50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTH50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTH45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTH45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTH40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTH40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTH35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTH35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTH30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTH30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTH25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTH25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTH20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTH20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTH15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTH15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTH10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTH10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTH98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTH00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 42 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTH97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTH98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTH98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTH98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTH98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTH86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 42 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTH86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 42 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTH96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTH89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 42 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTH94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTH94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTH96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTH96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTH98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATH73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 36 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATH73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 36 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATH73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 36 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTH98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETH98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTH98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTH98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTH98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTH98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTH98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs042.213 b/parm/wmo/grib2_awpgfs042.213 deleted file mode 100755 index 80a483f10a..0000000000 --- a/parm/wmo/grib2_awpgfs042.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHH99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHH85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHH70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHH50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHH40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHH30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHH25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHH20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHH15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHH10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHH99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHH85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHH70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHH50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHH40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHH30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHH25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHH20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHH15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHH10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHH99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHH85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHH70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHH50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHH40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHH30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHH25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHH20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHH15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHH10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHH99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHH85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHH70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHH50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHH40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHH30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHH85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHH70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHH50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHH25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHH99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHH99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHH85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHH85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHH70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHH70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHH50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHH50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHH40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHH40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHH30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHH30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHH25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHH25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHH20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHH20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHH15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHH15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHH10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHH10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHH98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHH00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 42 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHH97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHH98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHH98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHH98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHH98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHH86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 42 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHH86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 42 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHH89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 42 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHH98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHH98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHH98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHH98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHH98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs042.254 b/parm/wmo/grib2_awpgfs042.254 deleted file mode 100755 index ecf1a5f57a..0000000000 --- a/parm/wmo/grib2_awpgfs042.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOH99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOH93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOH95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOH92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOH90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOH91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOH85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOH82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOH80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOH77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOH75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOH72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOH70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOH67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOH65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOH62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOH60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOH57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOH55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOH52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOH50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOH45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOH40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOH35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOH30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOH25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOH20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOH15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOH10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOH99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOH93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOH95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOH92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOH90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOH91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOH85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOH82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOH80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOH77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOH75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOH72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOH70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOH67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOH65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOH62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOH60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOH57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOH55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOH52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOH50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOH45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOH40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOH35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOH30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOH25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOH20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOH15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOH10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOH99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOH93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOH95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOH92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOH90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOH91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOH85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOH82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOH80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOH77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOH75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOH72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOH70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOH67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOH65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOH62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOH60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOH57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOH55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOH52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOH50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOH45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOH40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOH35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOH30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOH25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOH20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOH15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOH10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROH99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROH93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROH95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROH92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROH90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROH91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROH85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROH82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROH80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROH77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROH75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROH72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROH70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROH67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROH65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROH62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROH60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROH57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROH55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROH52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROH50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROH45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROH40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROH35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROH30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROH25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROH20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROH15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROH10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOH85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOH70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOH50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOH25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOH99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOH99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOH93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOH93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOH95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOH95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOH92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOH92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOH90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOH90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOH91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOH91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOH85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOH85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOH82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOH82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOH80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOH80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOH77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOH77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOH75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOH75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOH72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOH72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOH70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOH70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOH67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOH67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOH65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOH65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOH62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOH62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOH60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOH60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOH57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOH57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOH55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOH55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOH52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOH52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOH50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOH50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOH45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOH45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOH40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOH40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOH35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOH35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOH30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOH30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOH25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOH25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOH20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOH20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOH15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOH15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOH10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOH10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOH86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROH86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOH86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOH97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOH97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOH98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOH00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 42 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOH97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOH97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOH98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOH98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOH98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOH98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOH86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 42 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOH86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 42 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOH96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 42 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOH89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 42 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOH94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 42 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROH94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOH97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOH96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOH96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOH98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOH73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 36 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOH73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 36 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOH73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 36 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOH98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 42 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOH98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOH98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOH98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROH98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 42 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOH98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 42 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOH98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 42 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs048.003 b/parm/wmo/grib2_awpgfs048.003 old mode 100755 new mode 100644 index d5fce80054..131398d546 --- a/parm/wmo/grib2_awpgfs048.003 +++ b/parm/wmo/grib2_awpgfs048.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPI92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPI92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPI92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPI50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 48 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs048.160 b/parm/wmo/grib2_awpgfs048.160 deleted file mode 100755 index 3a8f3ef792..0000000000 --- a/parm/wmo/grib2_awpgfs048.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGI99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGI93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGI95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGI92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGI90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGI91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGI85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGI82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGI80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGI77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGI75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGI72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGI70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGI67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGI65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGI62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGI60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGI57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGI55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGI52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGI50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGI45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGI40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGI35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGI30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGI25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGI20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGI15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGI10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGI99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGI93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGI95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGI92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGI90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGI91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGI85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGI82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGI80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGI77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGI75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGI72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGI70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGI67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGI65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGI62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGI60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGI57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGI55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGI52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGI50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGI45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGI40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGI35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGI30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGI25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGI20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGI15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGI10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGI99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGI93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGI95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGI92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGI90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGI91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGI85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGI82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGI80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGI77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGI75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGI72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGI70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGI67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGI65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGI62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGI60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGI57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGI55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGI52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGI50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGI45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGI40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGI35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGI30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGI25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGI20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGI15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGI10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGI99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGI93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGI95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGI92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGI90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGI91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGI85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGI82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGI80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGI77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGI75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGI72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGI70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGI67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGI65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGI62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGI60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGI57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGI55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGI52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGI50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGI45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGI40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGI35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGI30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGI25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGI20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGI15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGI10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGI85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGI70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGI50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGI25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGI50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGI99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGI99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGI93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGI93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGI95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGI95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGI92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGI92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGI90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGI90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGI91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGI91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGI85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGI85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGI82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGI82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGI80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGI80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGI77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGI77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGI75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGI75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGI72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGI72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGI70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGI70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGI67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGI67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGI65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGI65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGI62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGI62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGI60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGI60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGI57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGI57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGI55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGI55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGI52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGI52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGI50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGI50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGI45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGI45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGI40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGI40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGI35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGI35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGI30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGI30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGI25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGI25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGI20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGI20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGI15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGI15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGI10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGI10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGI98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGI00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 48 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGI97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGI98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGI98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGI98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGI98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGI86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 48 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGI86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 48 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGI96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGI89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 48 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGI94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGI94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGI96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGI96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGI98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGI73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 42 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGI73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 42 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGI73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 42 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGI98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGI98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGI98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGI98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGI98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGI98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGI98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGI98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGI98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGI98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs048.161 b/parm/wmo/grib2_awpgfs048.161 deleted file mode 100755 index 7929810d2c..0000000000 --- a/parm/wmo/grib2_awpgfs048.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTI99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTI93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTI95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTI92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTI90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTI91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTI85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTI82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTI80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTI77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTI75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTI72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTI70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTI67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTI65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTI62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTI60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTI57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTI55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTI52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTI50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTI45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTI40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTI35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTI30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTI25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTI20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTI15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTI10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTI99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTI93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTI95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTI92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTI90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTI91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTI85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTI82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTI80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTI77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTI75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTI72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTI70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTI67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTI65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTI62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTI60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTI57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTI55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTI52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTI50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTI45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTI40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTI35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTI30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTI25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTI20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTI15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTI10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTI99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTI93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTI95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTI92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTI90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTI91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTI85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTI82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTI80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTI77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTI75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTI72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTI70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTI67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTI65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTI62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTI60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTI57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTI55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTI52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTI50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTI45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTI40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTI35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTI30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTI25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTI20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTI15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTI10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTI99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTI93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTI95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTI92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTI90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTI91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTI85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTI82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTI80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTI77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTI75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTI72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTI70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTI67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTI65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTI62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTI60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTI57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTI55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTI52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTI50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTI45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTI40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTI35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTI30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTI25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTI20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTI15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTI10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTI85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTI70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTI50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTI25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTI50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTI99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTI99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTI93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTI93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTI95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTI95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTI92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTI92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTI90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTI90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTI91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTI91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTI85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTI85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTI82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTI82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTI80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTI80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTI77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTI77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTI75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTI75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTI72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTI72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTI70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTI70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTI67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTI67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTI65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTI65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTI62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTI62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTI60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTI60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTI57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTI57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTI55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTI55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTI52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTI52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTI50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTI50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTI45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTI45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTI40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTI40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTI35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTI35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTI30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTI30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTI25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTI25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTI20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTI20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTI15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTI15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTI10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTI10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTI98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTI00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 48 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTI97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTI98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTI98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTI98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTI98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTI86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 48 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTI86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 48 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTI96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTI89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 48 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTI94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTI94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTI96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTI96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTI98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATI73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 42 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATI73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 42 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATI73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 42 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTI98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETI98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTI98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTI98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTI98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTI98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTI98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTI98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTI98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTI98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs048.213 b/parm/wmo/grib2_awpgfs048.213 deleted file mode 100755 index 51d7adca62..0000000000 --- a/parm/wmo/grib2_awpgfs048.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHI99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHI85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHI70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHI50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHI40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHI30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHI25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHI20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHI15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHI10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHI99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHI85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHI70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHI50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHI40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHI30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHI25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHI20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHI15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHI10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHI99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHI85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHI70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHI50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHI40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHI30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHI25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHI20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHI15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHI10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHI99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHI85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHI70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHI50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHI40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHI30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHI85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHI70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHI50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHI25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHI50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHI99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHI99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHI85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHI85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHI70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHI70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHI50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHI50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHI40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHI40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHI30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHI30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHI25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHI25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHI20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHI20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHI15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHI15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHI10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHI10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHI98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHI00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 48 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHI97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHI98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHI98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHI98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHI98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHI86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 48 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHI86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 48 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHI89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 48 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHI98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHI98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHI98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHI98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHI98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs048.254 b/parm/wmo/grib2_awpgfs048.254 deleted file mode 100755 index 2168a22751..0000000000 --- a/parm/wmo/grib2_awpgfs048.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOI99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOI93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOI95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOI92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOI90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOI91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOI85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOI82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOI80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOI77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOI75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOI72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOI70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOI67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOI65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOI62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOI60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOI57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOI55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOI52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOI50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOI45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOI40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOI35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOI30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOI25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOI20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOI15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOI10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOI99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOI93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOI95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOI92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOI90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOI91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOI85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOI82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOI80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOI77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOI75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOI72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOI70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOI67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOI65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOI62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOI60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOI57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOI55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOI52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOI50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOI45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOI40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOI35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOI30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOI25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOI20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOI15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOI10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOI99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOI93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOI95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOI92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOI90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOI91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOI85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOI82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOI80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOI77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOI75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOI72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOI70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOI67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOI65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOI62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOI60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOI57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOI55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOI52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOI50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOI45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOI40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOI35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOI30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOI25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOI20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOI15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOI10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROI99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROI93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROI95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROI92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROI90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROI91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROI85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROI82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROI80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROI77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROI75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROI72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROI70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROI67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROI65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROI62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROI60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROI57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROI55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROI52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROI50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROI45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROI40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROI35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROI30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROI25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROI20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROI15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROI10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOI85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOI70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOI50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOI25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOI50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOI99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOI99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOI93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOI93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOI95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOI95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOI92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOI92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOI90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOI90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOI91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOI91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOI85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOI85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOI82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOI82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOI80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOI80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOI77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOI77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOI75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOI75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOI72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOI72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOI70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOI70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOI67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOI67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOI65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOI65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOI62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOI62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOI60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOI60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOI57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOI57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOI55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOI55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOI52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOI52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOI50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOI50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOI45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOI45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOI40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOI40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOI35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOI35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOI30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOI30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOI25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOI25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOI20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOI20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOI15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOI15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOI10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOI10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOI86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROI86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOI86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOI97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOI97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOI98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOI00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 48 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOI97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOI97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOI98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOI98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOI98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOI98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOI86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 48 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOI86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 48 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOI96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 48 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOI89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 48 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOI94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 48 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROI94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOI97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOI96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOI96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOI98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOI73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 42 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOI73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 42 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOI73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 42 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOI98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 48 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOI98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOI98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOI98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOI98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOI98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOI98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROI98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 48 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOI98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 48 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOI98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 48 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs054.003 b/parm/wmo/grib2_awpgfs054.003 old mode 100755 new mode 100644 index 92069b8110..1fa69592ea --- a/parm/wmo/grib2_awpgfs054.003 +++ b/parm/wmo/grib2_awpgfs054.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPM92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 54 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs054.160 b/parm/wmo/grib2_awpgfs054.160 deleted file mode 100755 index a4b4aeddfb..0000000000 --- a/parm/wmo/grib2_awpgfs054.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGM99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGM93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGM95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGM92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGM90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGM91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGM85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGM82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGM80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGM77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGM75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGM72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGM70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGM67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGM65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGM62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGM60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGM57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGM55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGM52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGM50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGM45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGM40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGM35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGM30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGM25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGM20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGM15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGM10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGM99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGM93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGM95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGM92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGM90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGM91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGM85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGM82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGM80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGM77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGM75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGM72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGM70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGM67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGM65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGM62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGM60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGM57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGM55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGM52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGM50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGM45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGM40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGM35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGM30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGM25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGM20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGM15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGM10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGM99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGM93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGM95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGM92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGM90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGM91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGM85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGM82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGM80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGM77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGM75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGM72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGM70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGM67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGM65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGM62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGM60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGM57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGM55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGM52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGM50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGM45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGM40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGM35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGM30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGM25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGM20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGM15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGM10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGM99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGM93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGM95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGM92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGM90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGM91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGM85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGM82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGM80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGM77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGM75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGM72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGM70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGM67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGM65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGM62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGM60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGM57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGM55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGM52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGM50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGM45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGM40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGM35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGM30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGM25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGM20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGM15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGM10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGM85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGM70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGM50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGM25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGM98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGM00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 54 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGM97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGM98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGM98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGM98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGM98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGM86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 54 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGM86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 54 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGM96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGM89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 54 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGM94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGM94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGM98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 48 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 48 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 48 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGM98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGM98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGM98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGM98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGM98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs054.161 b/parm/wmo/grib2_awpgfs054.161 deleted file mode 100755 index 6792e69edd..0000000000 --- a/parm/wmo/grib2_awpgfs054.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTM99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTM93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTM95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTM92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTM90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTM91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTM85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTM82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTM80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTM77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTM75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTM72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTM70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTM67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTM65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTM62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTM60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTM57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTM55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTM52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTM50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTM45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTM40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTM35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTM30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTM25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTM20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTM15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTM10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTM99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTM93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTM95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTM92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTM90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTM91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTM85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTM82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTM80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTM77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTM75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTM72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTM70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTM67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTM65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTM62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTM60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTM57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTM55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTM52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTM50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTM45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTM40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTM35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTM30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTM25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTM20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTM15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTM10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTM99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTM93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTM95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTM92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTM90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTM91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTM85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTM82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTM80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTM77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTM75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTM72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTM70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTM67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTM65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTM62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTM60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTM57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTM55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTM52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTM50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTM45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTM40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTM35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTM30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTM25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTM20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTM15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTM10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTM99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTM93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTM95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTM92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTM90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTM91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTM85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTM82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTM80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTM77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTM75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTM72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTM70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTM67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTM65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTM62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTM60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTM57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTM55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTM52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTM50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTM45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTM40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTM35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTM30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTM25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTM20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTM15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTM10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTM85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTM70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTM50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTM25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTM98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTM00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 54 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTM97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTM98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTM98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTM98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTM98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTM86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 54 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTM86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 54 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTM96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTM89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 54 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTM94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTM94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTM98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 48 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 48 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 48 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTM98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METM98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTM98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTM98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTM98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs054.213 b/parm/wmo/grib2_awpgfs054.213 deleted file mode 100755 index e87291aac2..0000000000 --- a/parm/wmo/grib2_awpgfs054.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHM99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHM85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHM70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHM50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHM40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHM30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHM25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHM20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHM15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHM10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHM99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHM85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHM70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHM50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHM40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHM30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHM25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHM20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHM15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHM10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHM99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHM85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHM70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHM50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHM40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHM30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHM25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHM20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHM15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHM10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHM99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHM85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHM70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHM50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHM40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHM30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHM85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHM70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHM50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHM25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHM98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHM00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 54 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHM97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHM98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHM98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHM98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHM98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHM86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 54 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHM86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 54 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHM89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 54 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHM98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHM98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHM98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs054.254 b/parm/wmo/grib2_awpgfs054.254 deleted file mode 100755 index 2db93a5ea7..0000000000 --- a/parm/wmo/grib2_awpgfs054.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOM99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOM93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOM95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOM92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOM90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOM91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOM85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOM82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOM80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOM77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOM75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOM72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOM70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOM67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOM65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOM62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOM60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOM57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOM55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOM52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOM50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOM45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOM40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOM35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOM30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOM25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOM20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOM15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOM10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOM99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOM93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOM95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOM92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOM90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOM91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOM85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOM82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOM80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOM77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOM75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOM72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOM70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOM67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOM65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOM62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOM60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOM57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOM55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOM52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOM50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOM45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOM40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOM35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOM30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOM25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOM20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOM15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOM10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOM99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOM93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOM95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOM92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOM90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOM91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOM85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOM82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOM80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOM77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOM75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOM72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOM70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOM67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOM65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOM62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOM60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOM57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOM55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOM52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOM50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOM45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOM40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOM35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOM30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOM25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOM20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOM15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOM10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROM99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROM93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROM95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROM92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROM90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROM91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROM85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROM82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROM80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROM77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROM75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROM72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROM70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROM67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROM65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROM62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROM60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROM57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROM55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROM52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROM50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROM45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROM40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROM35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROM30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROM25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROM20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROM15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROM10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOM85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOM70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOM50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOM25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOM98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOM00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 54 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOM97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOM98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOM98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOM98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOM98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOM86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 54 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOM86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 54 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOM96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 54 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOM89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 54 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOM94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 54 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROM94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSOM98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 48 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 48 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 48 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOM98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 54 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOM98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOM98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOM98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROM98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 54 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 54 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 54 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs060.003 b/parm/wmo/grib2_awpgfs060.003 old mode 100755 new mode 100644 index 6c5d7edf6c..a6bfd58475 --- a/parm/wmo/grib2_awpgfs060.003 +++ b/parm/wmo/grib2_awpgfs060.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPJ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPJ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPJ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPJ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 60 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs060.160 b/parm/wmo/grib2_awpgfs060.160 deleted file mode 100755 index 735e2a7d1c..0000000000 --- a/parm/wmo/grib2_awpgfs060.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGJ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGJ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGJ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGJ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGJ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGJ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGJ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGJ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGJ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGJ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGJ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGJ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGJ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGJ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGJ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGJ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGJ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGJ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGJ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGJ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGJ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGJ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGJ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGJ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGJ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGJ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGJ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGJ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGJ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGJ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGJ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGJ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGJ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGJ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGJ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGJ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGJ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGJ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGJ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGJ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGJ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGJ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGJ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGJ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGJ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGJ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGJ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGJ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGJ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGJ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGJ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGJ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGJ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGJ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGJ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGJ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGJ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGJ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGJ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGJ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGJ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGJ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGJ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGJ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGJ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGJ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGJ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGJ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGJ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGJ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGJ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGJ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGJ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGJ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGJ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGJ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGJ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGJ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGJ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGJ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGJ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGJ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGJ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGJ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGJ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGJ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGJ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGJ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGJ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGJ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGJ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGJ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGJ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGJ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGJ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGJ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGJ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGJ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGJ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGJ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGJ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGJ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGJ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGJ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGJ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGJ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGJ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGJ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGJ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGJ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGJ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGJ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGJ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGJ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGJ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGJ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGJ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGJ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGJ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGJ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGJ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGJ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGJ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGJ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGJ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGJ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGJ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGJ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGJ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGJ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGJ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGJ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGJ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGJ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGJ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGJ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGJ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGJ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGJ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGJ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGJ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGJ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGJ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGJ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGJ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGJ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGJ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGJ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGJ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGJ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGJ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGJ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGJ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGJ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGJ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGJ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGJ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGJ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGJ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGJ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGJ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGJ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGJ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGJ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGJ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGJ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGJ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGJ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGJ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGJ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGJ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGJ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGJ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGJ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGJ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGJ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGJ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGJ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGJ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGJ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGJ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 60 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGJ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGJ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGJ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGJ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGJ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGJ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 60 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGJ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 60 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGJ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGJ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 60 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGJ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGJ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGJ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGJ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGJ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGJ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 54 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGJ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 54 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGJ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 54 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGJ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGJ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGJ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGJ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGJ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGJ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGJ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGJ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGJ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGJ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs060.161 b/parm/wmo/grib2_awpgfs060.161 deleted file mode 100755 index 789e0fc046..0000000000 --- a/parm/wmo/grib2_awpgfs060.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTJ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTJ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTJ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTJ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTJ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTJ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTJ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTJ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTJ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTJ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTJ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTJ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTJ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTJ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTJ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTJ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTJ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTJ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTJ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTJ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTJ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTJ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTJ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTJ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTJ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTJ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTJ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTJ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTJ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTJ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTJ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTJ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTJ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTJ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTJ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTJ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTJ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTJ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTJ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTJ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTJ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTJ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTJ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTJ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTJ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTJ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTJ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTJ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTJ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTJ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTJ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTJ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTJ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTJ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTJ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTJ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTJ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTJ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTJ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTJ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTJ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTJ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTJ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTJ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTJ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTJ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTJ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTJ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTJ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTJ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTJ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTJ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTJ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTJ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTJ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTJ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTJ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTJ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTJ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTJ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTJ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTJ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTJ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTJ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTJ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTJ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTJ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTJ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTJ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTJ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTJ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTJ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTJ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTJ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTJ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTJ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTJ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTJ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTJ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTJ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTJ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTJ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTJ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTJ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTJ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTJ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTJ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTJ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTJ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTJ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTJ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTJ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTJ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTJ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTJ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTJ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTJ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTJ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTJ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTJ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTJ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTJ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTJ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTJ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTJ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTJ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTJ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTJ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTJ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTJ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTJ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTJ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTJ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTJ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTJ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTJ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTJ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTJ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTJ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTJ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTJ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTJ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTJ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTJ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTJ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTJ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTJ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTJ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTJ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTJ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTJ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTJ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTJ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTJ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTJ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTJ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTJ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTJ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTJ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTJ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTJ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTJ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTJ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTJ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTJ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTJ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTJ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTJ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTJ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTJ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTJ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTJ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTJ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTJ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTJ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTJ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTJ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTJ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTJ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTJ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTJ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 60 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTJ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTJ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTJ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTJ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTJ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTJ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 60 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTJ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 60 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTJ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTJ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 60 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTJ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTJ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTJ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTJ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTJ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATJ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 54 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATJ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 54 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATJ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 54 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTJ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETJ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTJ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTJ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTJ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTJ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTJ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTJ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTJ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTJ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs060.213 b/parm/wmo/grib2_awpgfs060.213 deleted file mode 100755 index 733fbbdc28..0000000000 --- a/parm/wmo/grib2_awpgfs060.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHJ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHJ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHJ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHJ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHJ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHJ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHJ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHJ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHJ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHJ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHJ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHJ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHJ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHJ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHJ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHJ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHJ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHJ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHJ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHJ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHJ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHJ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHJ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHJ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHJ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHJ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHJ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHJ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHJ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHJ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHJ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHJ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHJ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHJ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHJ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHJ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHJ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHJ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHJ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHJ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHJ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHJ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHJ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHJ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHJ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHJ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHJ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHJ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHJ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHJ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHJ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHJ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHJ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHJ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHJ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHJ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHJ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHJ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHJ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHJ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHJ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHJ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHJ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 60 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHJ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHJ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHJ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHJ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHJ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHJ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 60 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHJ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 60 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHJ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 60 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHJ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHJ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHJ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHJ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHJ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs060.254 b/parm/wmo/grib2_awpgfs060.254 deleted file mode 100755 index c0f1b74c28..0000000000 --- a/parm/wmo/grib2_awpgfs060.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOJ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOJ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOJ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOJ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOJ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOJ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOJ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOJ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOJ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOJ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOJ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOJ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOJ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOJ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOJ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOJ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOJ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOJ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOJ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOJ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOJ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOJ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOJ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOJ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOJ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOJ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOJ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOJ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOJ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOJ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOJ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOJ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOJ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOJ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOJ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOJ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOJ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOJ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOJ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOJ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOJ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOJ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOJ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOJ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOJ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOJ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOJ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOJ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOJ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOJ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOJ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOJ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOJ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOJ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOJ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOJ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOJ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOJ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOJ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOJ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOJ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOJ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOJ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOJ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOJ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOJ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOJ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOJ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOJ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOJ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOJ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOJ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOJ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOJ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOJ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOJ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOJ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOJ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOJ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOJ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOJ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOJ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOJ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOJ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOJ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOJ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOJ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROJ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROJ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROJ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROJ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROJ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROJ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROJ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROJ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROJ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROJ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROJ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROJ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROJ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROJ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROJ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROJ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROJ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROJ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROJ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROJ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROJ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROJ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROJ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROJ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROJ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROJ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROJ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROJ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROJ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOJ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOJ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOJ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOJ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOJ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOJ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOJ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOJ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOJ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOJ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOJ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOJ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOJ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOJ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOJ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOJ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOJ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOJ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOJ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOJ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOJ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOJ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOJ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOJ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOJ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOJ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOJ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOJ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOJ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOJ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOJ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOJ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOJ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOJ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOJ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOJ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOJ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOJ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOJ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOJ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOJ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOJ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOJ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOJ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOJ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOJ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOJ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOJ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOJ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOJ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOJ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOJ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOJ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOJ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOJ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOJ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOJ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOJ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOJ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOJ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOJ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOJ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOJ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOJ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROJ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOJ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOJ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOJ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOJ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOJ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 60 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOJ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOJ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOJ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOJ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOJ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOJ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOJ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 60 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOJ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 60 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOJ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 60 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOJ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 60 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOJ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 60 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROJ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOJ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOJ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOJ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOJ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOJ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 54 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOJ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 54 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOJ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 54 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOJ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 60 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOJ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOJ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOJ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOJ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOJ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOJ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROJ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 60 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOJ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 60 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOJ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 60 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs066.003 b/parm/wmo/grib2_awpgfs066.003 old mode 100755 new mode 100644 index d322d35665..546db96456 --- a/parm/wmo/grib2_awpgfs066.003 +++ b/parm/wmo/grib2_awpgfs066.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPN92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 66 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs066.160 b/parm/wmo/grib2_awpgfs066.160 deleted file mode 100755 index d927412002..0000000000 --- a/parm/wmo/grib2_awpgfs066.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGN99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGN93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGN95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGN92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGN90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGN91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGN85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGN82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGN80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGN77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGN75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGN72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGN70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGN67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGN65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGN62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGN60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGN57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGN55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGN52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGN50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGN45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGN40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGN35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGN30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGN25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGN20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGN15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGN10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGN99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGN93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGN95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGN92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGN90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGN91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGN85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGN82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGN80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGN77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGN75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGN72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGN70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGN67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGN65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGN62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGN60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGN57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGN55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGN52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGN50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGN45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGN40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGN35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGN30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGN25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGN20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGN15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGN10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGN99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGN93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGN95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGN92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGN90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGN91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGN85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGN82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGN80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGN77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGN75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGN72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGN70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGN67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGN65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGN62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGN60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGN57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGN55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGN52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGN50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGN45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGN40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGN35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGN30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGN25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGN20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGN15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGN10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGN99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGN93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGN95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGN92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGN90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGN91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGN85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGN82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGN80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGN77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGN75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGN72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGN70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGN67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGN65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGN62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGN60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGN57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGN55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGN52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGN50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGN45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGN40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGN35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGN30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGN25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGN20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGN15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGN10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGN85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGN70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGN50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGN25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGN93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGN93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGN95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGN95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGN90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGN90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGN91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGN91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGN82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGN82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGN80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGN80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGN77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGN77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGN75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGN75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGN72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGN72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGN67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGN67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGN65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGN65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGN62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGN62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGN60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGN60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGN57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGN57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGN55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGN55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGN52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGN52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGN45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGN45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGN35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGN35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGN98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGN00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 66 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGN97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGN98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGN98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGN98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGN98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGN86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 66 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGN86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 66 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGN96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGN89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 66 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGN94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGN94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGN96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGN96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGN98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 60 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 60 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 60 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGN98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGN98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGN98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGN98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGN98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs066.161 b/parm/wmo/grib2_awpgfs066.161 deleted file mode 100755 index 41a541de8e..0000000000 --- a/parm/wmo/grib2_awpgfs066.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTN99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTN93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTN95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTN92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTN90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTN91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTN85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTN82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTN80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTN77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTN75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTN72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTN70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTN67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTN65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTN62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTN60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTN57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTN55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTN52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTN50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTN45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTN40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTN35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTN30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTN25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTN20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTN15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTN10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTN99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTN93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTN95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTN92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTN90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTN91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTN85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTN82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTN80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTN77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTN75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTN72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTN70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTN67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTN65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTN62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTN60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTN57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTN55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTN52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTN50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTN45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTN40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTN35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTN30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTN25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTN20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTN15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTN10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTN99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTN93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTN95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTN92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTN90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTN91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTN85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTN82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTN80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTN77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTN75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTN72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTN70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTN67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTN65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTN62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTN60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTN57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTN55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTN52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTN50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTN45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTN40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTN35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTN30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTN25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTN20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTN15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTN10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTN99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTN93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTN95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTN92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTN90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTN91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTN85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTN82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTN80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTN77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTN75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTN72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTN70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTN67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTN65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTN62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTN60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTN57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTN55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTN52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTN50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTN45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTN40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTN35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTN30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTN25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTN20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTN15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTN10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTN85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTN70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTN50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTN25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTN93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTN93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTN95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTN95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTN90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTN90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTN91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTN91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTN82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTN82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTN80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTN80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTN77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTN77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTN75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTN75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTN72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTN72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTN67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTN67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTN65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTN65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTN62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTN62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTN60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTN60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTN57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTN57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTN55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTN55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTN52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTN52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTN45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTN45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTN35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTN35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTN98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTN00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 66 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTN97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTN98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTN98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTN98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTN98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTN86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 66 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTN86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 66 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTN96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTN89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 66 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTN94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTN94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTN96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTN96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTN98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 60 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 60 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 60 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTN98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METN98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTN98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTN98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTN98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs066.213 b/parm/wmo/grib2_awpgfs066.213 deleted file mode 100755 index bc11864ff0..0000000000 --- a/parm/wmo/grib2_awpgfs066.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHN99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHN85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHN70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHN50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHN40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHN30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHN25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHN20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHN15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHN10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHN99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHN85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHN70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHN50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHN40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHN30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHN25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHN20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHN15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHN10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHN99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHN85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHN70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHN50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHN40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHN30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHN25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHN20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHN15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHN10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHN99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHN85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHN70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHN50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHN40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHN30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHN85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHN70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHN50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHN25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHN98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHN00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 66 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHN97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHN98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHN98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHN98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHN98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHN86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 66 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHN86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 66 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHN89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 66 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHN98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHN98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHN98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs066.254 b/parm/wmo/grib2_awpgfs066.254 deleted file mode 100755 index bb850ce3d6..0000000000 --- a/parm/wmo/grib2_awpgfs066.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHON99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHON93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHON95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHON92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHON90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHON91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHON85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHON82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHON80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHON77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHON75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHON72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHON70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHON67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHON65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHON62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHON60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHON57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHON55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHON52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHON50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHON45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHON40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHON35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHON30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHON25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHON20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHON15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHON10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTON99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTON93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTON95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTON92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTON90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTON91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTON85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTON82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTON80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTON77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTON75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTON72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTON70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTON67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTON65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTON62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTON60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTON57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTON55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTON52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTON50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTON45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTON40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTON35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTON30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTON25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTON20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTON15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTON10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOON99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOON93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOON95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOON92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOON90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOON91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOON85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOON82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOON80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOON77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOON75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOON72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOON70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOON67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOON65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOON62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOON60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOON57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOON55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOON52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOON50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOON45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOON40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOON35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOON30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOON25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOON20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOON15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOON10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRON99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRON93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRON95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRON92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRON90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRON91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRON85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRON82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRON80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRON77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRON75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRON72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRON70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRON67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRON65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRON62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRON60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRON57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRON55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRON52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRON50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRON45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRON40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRON35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRON30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRON25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRON20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRON15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRON10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCON85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCON70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCON50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCON25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHON50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUON99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVON99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUON93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVON93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUON95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVON95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUON92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVON92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUON90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVON90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUON91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVON91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUON85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVON85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUON82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVON82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUON80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVON80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUON77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVON77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUON75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVON75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUON72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVON72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUON70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVON70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUON67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVON67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUON65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVON65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUON62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVON62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUON60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVON60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUON57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVON57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUON55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVON55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUON52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVON52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUON50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVON50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUON45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVON45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUON40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVON40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUON35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVON35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUON30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVON30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUON25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVON25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUON20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVON20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUON15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVON15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUON10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVON10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHON97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHON97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHON97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHON97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTON97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTON97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTON97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTON97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPON97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPON97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPON97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPON97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPON98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFON00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 66 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPON97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBON97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXON98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWON98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYON98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQON98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWON86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 66 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYON86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 66 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPON96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 66 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPON89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 66 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHON94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 66 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRON94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUON96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVON96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSON98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAON73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 60 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAON73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 60 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAON73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 60 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTON98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 66 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEON98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGON98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMON98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMON98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMON98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMON98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRON98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 66 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUON98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 66 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVON98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 66 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs072.003 b/parm/wmo/grib2_awpgfs072.003 old mode 100755 new mode 100644 index 3a7a4c48d8..fbab37a632 --- a/parm/wmo/grib2_awpgfs072.003 +++ b/parm/wmo/grib2_awpgfs072.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPK92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPK92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPK92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 72 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs072.160 b/parm/wmo/grib2_awpgfs072.160 deleted file mode 100755 index 8c5787c435..0000000000 --- a/parm/wmo/grib2_awpgfs072.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGK99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGK93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGK95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGK92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGK90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGK91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGK85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGK82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGK80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGK77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGK75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGK72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGK70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGK67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGK65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGK62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGK60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGK57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGK55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGK52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGK50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGK45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGK40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGK35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGK30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGK25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGK20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGK15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGK10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGK99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGK93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGK95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGK92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGK90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGK91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGK85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGK82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGK80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGK77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGK75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGK72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGK70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGK67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGK65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGK62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGK60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGK57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGK55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGK52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGK50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGK45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGK40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGK35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGK30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGK25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGK20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGK15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGK10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGK99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGK93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGK95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGK92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGK90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGK91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGK85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGK82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGK80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGK77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGK75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGK72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGK70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGK67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGK65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGK62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGK60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGK57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGK55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGK52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGK50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGK45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGK40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGK35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGK30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGK25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGK20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGK15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGK10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGK99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGK93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGK95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGK92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGK90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGK91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGK85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGK82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGK80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGK77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGK75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGK72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGK70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGK67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGK65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGK62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGK60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGK57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGK55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGK52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGK50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGK45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGK40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGK35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGK30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGK25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGK20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGK15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGK10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGK85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGK70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGK50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGK25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGK99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGK99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGK93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGK93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGK95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGK95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGK92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGK92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGK90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGK90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGK91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGK91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGK85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGK85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGK82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGK82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGK80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGK80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGK77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGK77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGK75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGK75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGK72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGK72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGK70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGK70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGK67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGK67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGK65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGK65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGK62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGK62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGK60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGK60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGK57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGK57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGK55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGK55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGK52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGK52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGK50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGK50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGK45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGK45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGK40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGK40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGK35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGK35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGK30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGK30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGK25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGK25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGK20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGK20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGK15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGK15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGK10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGK10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGK98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGK00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 72 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGK97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGK98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGK98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGK98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGK98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGK86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 72 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGK86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 72 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGK96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGK89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 72 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGK94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGK94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGK96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGK96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGK98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGK73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 66 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGK73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 66 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGK73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 66 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGK98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGK98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGK98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGK98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGK98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGK98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGK98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs072.161 b/parm/wmo/grib2_awpgfs072.161 deleted file mode 100755 index 4e65433afc..0000000000 --- a/parm/wmo/grib2_awpgfs072.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTK99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTK93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTK95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTK92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTK90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTK91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTK85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTK82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTK80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTK77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTK75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTK72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTK70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTK67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTK65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTK62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTK60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTK57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTK55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTK52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTK50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTK45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTK40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTK35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTK30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTK25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTK20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTK15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTK10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTK99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTK93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTK95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTK92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTK90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTK91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTK85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTK82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTK80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTK77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTK75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTK72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTK70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTK67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTK65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTK62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTK60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTK57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTK55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTK52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTK50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTK45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTK40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTK35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTK30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTK25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTK20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTK15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTK10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTK99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTK93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTK95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTK92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTK90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTK91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTK85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTK82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTK80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTK77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTK75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTK72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTK70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTK67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTK65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTK62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTK60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTK57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTK55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTK52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTK50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTK45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTK40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTK35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTK30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTK25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTK20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTK15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTK10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTK99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTK93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTK95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTK92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTK90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTK91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTK85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTK82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTK80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTK77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTK75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTK72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTK70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTK67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTK65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTK62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTK60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTK57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTK55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTK52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTK50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTK45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTK40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTK35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTK30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTK25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTK20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTK15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTK10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTK85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTK70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTK50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTK25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTK99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTK99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTK93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTK93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTK95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTK95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTK92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTK92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTK90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTK90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTK91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTK91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTK85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTK85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTK82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTK82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTK80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTK80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTK77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTK77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTK75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTK75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTK72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTK72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTK70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTK70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTK67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTK67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTK65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTK65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTK62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTK62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTK60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTK60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTK57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTK57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTK55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTK55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTK52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTK52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTK50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTK50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTK45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTK45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTK40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTK40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTK35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTK35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTK30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTK30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTK25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTK25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTK20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTK20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTK15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTK15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTK10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTK10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTK98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTK00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 72 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTK97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTK98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTK98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTK98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTK98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTK86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 72 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTK86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 72 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTK96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTK89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 72 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTK94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTK94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTK96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTK96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTK98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATK73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 66 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATK73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 66 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATK73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 66 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTK98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETK98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTK98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTK98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTK98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTK98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTK98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs072.213 b/parm/wmo/grib2_awpgfs072.213 deleted file mode 100755 index ee4922d759..0000000000 --- a/parm/wmo/grib2_awpgfs072.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHK99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHK85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHK70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHK50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHK40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHK30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHK25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHK20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHK15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHK10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHK99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHK85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHK70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHK50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHK40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHK30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHK25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHK20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHK15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHK10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHK99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHK85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHK70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHK50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHK40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHK30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHK25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHK20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHK15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHK10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHK99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHK85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHK70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHK50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHK40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHK30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHK85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHK70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHK50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHK25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHK99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHK99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHK85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHK85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHK70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHK70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHK50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHK50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHK40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHK40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHK30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHK30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHK25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHK25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHK20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHK20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHK15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHK15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHK10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHK10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHK98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHK00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 72 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHK97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHK98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHK98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHK98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHK98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHK86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 72 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHK86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 72 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHK89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 72 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHK98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHK98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHK98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHK98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHK98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs072.254 b/parm/wmo/grib2_awpgfs072.254 deleted file mode 100755 index 988bed2dd0..0000000000 --- a/parm/wmo/grib2_awpgfs072.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOK99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOK93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOK95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOK92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOK90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOK91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOK85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOK82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOK80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOK77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOK75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOK72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOK70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOK67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOK65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOK62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOK60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOK57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOK55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOK52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOK50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOK45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOK40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOK35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOK30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOK25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOK20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOK15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOK10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOK99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOK93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOK95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOK92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOK90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOK91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOK85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOK82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOK80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOK77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOK75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOK72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOK70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOK67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOK65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOK62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOK60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOK57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOK55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOK52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOK50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOK45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOK40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOK35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOK30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOK25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOK20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOK15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOK10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOK99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOK93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOK95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOK92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOK90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOK91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOK85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOK82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOK80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOK77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOK75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOK72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOK70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOK67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOK65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOK62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOK60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOK57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOK55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOK52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOK50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOK45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOK40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOK35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOK30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOK25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOK20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOK15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOK10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROK99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROK93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROK95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROK92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROK90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROK91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROK85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROK82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROK80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROK77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROK75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROK72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROK70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROK67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROK65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROK62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROK60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROK57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROK55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROK52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROK50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROK45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROK40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROK35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROK30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROK25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROK20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROK15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROK10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOK85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOK70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOK50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOK25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOK99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOK99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOK93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOK93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOK95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOK95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOK92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOK92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOK90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOK90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOK91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOK91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOK85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOK85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOK82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOK82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOK80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOK80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOK77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOK77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOK75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOK75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOK72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOK72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOK70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOK70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOK67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOK67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOK65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOK65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOK62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOK62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOK60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOK60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOK57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOK57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOK55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOK55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOK52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOK52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOK50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOK50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOK45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOK45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOK40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOK40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOK35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOK35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOK30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOK30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOK25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOK25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOK20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOK20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOK15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOK15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOK10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOK10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOK86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROK86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOK86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOK97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOK97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOK98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOK00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 72 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOK97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOK97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOK98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOK98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOK98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOK98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOK86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 72 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOK86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 72 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOK96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 72 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOK89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 72 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOK94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 72 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROK94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOK97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOK96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOK96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOK98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOK73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 66 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOK73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 66 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOK73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 66 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOK98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 72 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOK98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOK98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOK98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROK98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 72 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOK98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 72 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOK98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 72 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs078.003 b/parm/wmo/grib2_awpgfs078.003 old mode 100755 new mode 100644 index 3556e82380..3b94cf4346 --- a/parm/wmo/grib2_awpgfs078.003 +++ b/parm/wmo/grib2_awpgfs078.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPT92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 78 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs078.160 b/parm/wmo/grib2_awpgfs078.160 deleted file mode 100755 index 1d1f1d4178..0000000000 --- a/parm/wmo/grib2_awpgfs078.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGT99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGT93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGT95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGT92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGT90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGT91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGT85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGT82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGT80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGT77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGT75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGT72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGT70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGT67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGT65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGT62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGT60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGT57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGT55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGT52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGT50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGT45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGT40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGT35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGT30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGT25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGT20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGT15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGT10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGT99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGT93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGT95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGT92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGT90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGT91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGT85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGT82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGT80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGT77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGT75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGT72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGT70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGT67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGT65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGT62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGT60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGT57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGT55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGT52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGT50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGT45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGT40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGT35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGT30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGT25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGT20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGT15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGT10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGT99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGT93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGT95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGT92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGT90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGT91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGT85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGT82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGT80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGT77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGT75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGT72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGT70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGT67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGT65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGT62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGT60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGT57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGT55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGT52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGT50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGT45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGT40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGT35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGT30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGT25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGT20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGT15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGT10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGT99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGT93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGT95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGT92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGT90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGT91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGT85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGT82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGT80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGT77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGT75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGT72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGT70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGT67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGT65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGT62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGT60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGT57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGT55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGT52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGT50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGT45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGT40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGT35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGT30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGT25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGT20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGT15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGT10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGT85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGT70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGT50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGT25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGT98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGT00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 78 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGT97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGT98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGT98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGT98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGT98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGT86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 78 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGT86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 78 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGT96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGT89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 78 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGT94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGT94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGT98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 72 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 72 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 72 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGT98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGT98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGT98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGT98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGT98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs078.161 b/parm/wmo/grib2_awpgfs078.161 deleted file mode 100755 index bc1a73be35..0000000000 --- a/parm/wmo/grib2_awpgfs078.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTT99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTT93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTT95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTT92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTT90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTT91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTT85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTT82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTT80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTT77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTT75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTT72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTT70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTT67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTT65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTT62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTT60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTT57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTT55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTT52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTT50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTT45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTT40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTT35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTT30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTT25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTT20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTT15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTT10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTT99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTT93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTT95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTT92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTT90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTT91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTT85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTT82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTT80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTT77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTT75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTT72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTT70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTT67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTT65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTT62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTT60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTT57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTT55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTT52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTT50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTT45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTT40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTT35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTT30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTT25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTT20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTT15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTT10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTT99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTT93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTT95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTT92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTT90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTT91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTT85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTT82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTT80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTT77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTT75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTT72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTT70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTT67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTT65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTT62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTT60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTT57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTT55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTT52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTT50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTT45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTT40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTT35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTT30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTT25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTT20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTT15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTT10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTT99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTT93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTT95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTT92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTT90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTT91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTT85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTT82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTT80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTT77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTT75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTT72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTT70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTT67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTT65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTT62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTT60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTT57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTT55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTT52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTT50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTT45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTT40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTT35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTT30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTT25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTT20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTT15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTT10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTT85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTT70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTT50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTT25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTT98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTT00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 78 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTT97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTT98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTT98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTT98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTT98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTT86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 78 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTT86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 78 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTT96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTT89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 78 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTT94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTT94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTT98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 72 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 72 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 72 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTT98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METT98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTT98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTT98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTT98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs078.213 b/parm/wmo/grib2_awpgfs078.213 deleted file mode 100755 index d9dd767547..0000000000 --- a/parm/wmo/grib2_awpgfs078.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHT99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHT85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHT70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHT50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHT40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHT30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHT25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHT20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHT15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHT10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHT99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHT85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHT70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHT50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHT40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHT30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHT25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHT20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHT15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHT10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHT99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHT85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHT70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHT50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHT40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHT30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHT25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHT20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHT15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHT10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHT99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHT85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHT70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHT50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHT40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHT30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHT85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHT70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHT50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHT25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHT98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHT00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 78 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHT97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHT98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHT98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHT98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHT98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHT86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 78 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHT86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 78 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHT89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 78 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHT98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHT98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHT98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs078.254 b/parm/wmo/grib2_awpgfs078.254 deleted file mode 100755 index 2f2780b41b..0000000000 --- a/parm/wmo/grib2_awpgfs078.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOT99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOT93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOT95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOT92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOT90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOT91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOT85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOT82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOT80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOT77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOT75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOT72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOT70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOT67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOT65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOT62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOT60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOT57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOT55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOT52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOT50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOT45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOT40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOT35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOT30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOT25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOT20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOT15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOT10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOT99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOT93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOT95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOT92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOT90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOT91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOT85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOT82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOT80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOT77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOT75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOT72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOT70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOT67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOT65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOT62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOT60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOT57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOT55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOT52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOT50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOT45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOT40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOT35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOT30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOT25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOT20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOT15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOT10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOT99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOT93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOT95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOT92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOT90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOT91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOT85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOT82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOT80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOT77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOT75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOT72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOT70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOT67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOT65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOT62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOT60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOT57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOT55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOT52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOT50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOT45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOT40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOT35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOT30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOT25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOT20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOT15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOT10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROT99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROT93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROT95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROT92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROT90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROT91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROT85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROT82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROT80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROT77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROT75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROT72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROT70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROT67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROT65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROT62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROT60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROT57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROT55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROT52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROT50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROT45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROT40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROT35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROT30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROT25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROT20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROT15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROT10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOT85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOT70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOT50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOT25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOT98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOT00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 78 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOT97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOT98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOT98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOT98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOT98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOT86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 78 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOT86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 78 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOT96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 78 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOT89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 78 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOT94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 78 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROT94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSOT98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 72 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 72 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 72 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOT98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 78 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOT98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOT98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOT98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROT98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 78 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 78 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 78 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs084.003 b/parm/wmo/grib2_awpgfs084.003 old mode 100755 new mode 100644 index 3f3d88eab2..20777aee0f --- a/parm/wmo/grib2_awpgfs084.003 +++ b/parm/wmo/grib2_awpgfs084.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPL92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPL92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPL92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 84 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs084.160 b/parm/wmo/grib2_awpgfs084.160 deleted file mode 100755 index 77d6e19376..0000000000 --- a/parm/wmo/grib2_awpgfs084.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGL99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGL93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGL95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGL92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGL90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGL91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGL85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGL82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGL80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGL77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGL75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGL72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGL70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGL67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGL65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGL62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGL60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGL57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGL55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGL52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGL50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGL45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGL40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGL35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGL30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGL25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGL20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGL15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGL10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGL99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGL93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGL95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGL92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGL90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGL91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGL85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGL82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGL80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGL77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGL75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGL72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGL70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGL67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGL65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGL62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGL60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGL57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGL55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGL52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGL50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGL45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGL40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGL35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGL30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGL25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGL20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGL15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGL10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGL99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGL93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGL95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGL92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGL90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGL91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGL85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGL82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGL80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGL77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGL75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGL72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGL70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGL67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGL65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGL62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGL60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGL57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGL55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGL52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGL50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGL45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGL40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGL35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGL30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGL25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGL20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGL15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGL10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGL99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGL93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGL95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGL92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGL90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGL91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGL85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGL82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGL80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGL77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGL75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGL72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGL70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGL67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGL65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGL62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGL60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGL57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGL55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGL52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGL50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGL45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGL40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGL35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGL30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGL25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGL20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGL15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGL10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGL85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGL70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGL50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGL25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGL99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGL99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGL93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGL93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGL95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGL95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGL92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGL92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGL90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGL90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGL91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGL91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGL85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGL85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGL82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGL82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGL80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGL80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGL77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGL77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGL75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGL75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGL72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGL72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGL70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGL70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGL67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGL67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGL65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGL65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGL62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGL62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGL60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGL60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGL57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGL57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGL55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGL55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGL52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGL52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGL50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGL50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGL45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGL45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGL40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGL40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGL35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGL35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGL30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGL30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGL25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGL25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGL20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGL20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGL15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGL15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGL10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGL10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGL98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGL00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 84 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGL97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGL98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGL98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGL98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGL98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGL86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 84 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGL86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 84 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGL96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGL89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 84 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGL94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGL94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGL96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGL96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGL98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGL73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 78 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGL73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 78 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGL73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 78 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGL98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGL98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGL98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGL98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGL98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGL98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGL98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs084.161 b/parm/wmo/grib2_awpgfs084.161 deleted file mode 100755 index 6f7decdd97..0000000000 --- a/parm/wmo/grib2_awpgfs084.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTL99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTL93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTL95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTL92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTL90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTL91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTL85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTL82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTL80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTL77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTL75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTL72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTL70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTL67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTL65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTL62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTL60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTL57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTL55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTL52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTL50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTL45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTL40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTL35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTL30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTL25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTL20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTL15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTL10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTL99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTL93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTL95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTL92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTL90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTL91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTL85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTL82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTL80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTL77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTL75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTL72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTL70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTL67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTL65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTL62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTL60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTL57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTL55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTL52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTL50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTL45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTL40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTL35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTL30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTL25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTL20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTL15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTL10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTL99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTL93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTL95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTL92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTL90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTL91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTL85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTL82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTL80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTL77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTL75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTL72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTL70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTL67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTL65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTL62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTL60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTL57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTL55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTL52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTL50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTL45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTL40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTL35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTL30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTL25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTL20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTL15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTL10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTL99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTL93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTL95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTL92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTL90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTL91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTL85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTL82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTL80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTL77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTL75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTL72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTL70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTL67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTL65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTL62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTL60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTL57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTL55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTL52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTL50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTL45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTL40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTL35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTL30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTL25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTL20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTL15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTL10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTL85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTL70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTL50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTL25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTL99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTL99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTL93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTL93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTL95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTL95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTL92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTL92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTL90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTL90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTL91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTL91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTL85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTL85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTL82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTL82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTL80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTL80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTL77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTL77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTL75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTL75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTL72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTL72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTL70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTL70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTL67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTL67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTL65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTL65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTL62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTL62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTL60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTL60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTL57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTL57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTL55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTL55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTL52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTL52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTL50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTL50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTL45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTL45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTL40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTL40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTL35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTL35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTL30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTL30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTL25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTL25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTL20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTL20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTL15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTL15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTL10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTL10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTL98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTL00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 84 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTL97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTL98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTL98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTL98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTL98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTL86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 84 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTL86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 84 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTL96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTL89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 84 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTL94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTL94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTL96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTL96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTL98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATL73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 78 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATL73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 78 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATL73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 78 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTL98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETL98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTL98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTL98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTL98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTL98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTL98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs084.213 b/parm/wmo/grib2_awpgfs084.213 deleted file mode 100755 index d4975ba8b1..0000000000 --- a/parm/wmo/grib2_awpgfs084.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHL99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHL85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHL70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHL50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHL40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHL30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHL25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHL20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHL15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHL10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHL99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHL85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHL70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHL50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHL40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHL30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHL25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHL20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHL15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHL10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHL99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHL85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHL70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHL50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHL40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHL30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHL25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHL20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHL15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHL10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHL99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHL85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHL70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHL50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHL40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHL30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHL85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHL70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHL50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHL25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHL99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHL99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHL85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHL85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHL70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHL70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHL50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHL50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHL40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHL40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHL30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHL30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHL25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHL25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHL20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHL20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHL15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHL15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHL10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHL10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHL98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHL00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 84 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHL97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHL98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHL98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHL98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHL98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHL86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 84 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHL86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 84 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHL89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 84 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHL98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHL98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHL98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHL98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHL98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs084.254 b/parm/wmo/grib2_awpgfs084.254 deleted file mode 100755 index 0db91ac516..0000000000 --- a/parm/wmo/grib2_awpgfs084.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOL99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOL93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOL95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOL92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOL90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOL91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOL85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOL82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOL80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOL77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOL75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOL72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOL70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOL67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOL65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOL62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOL60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOL57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOL55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOL52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOL50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOL45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOL40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOL35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOL30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOL25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOL20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOL15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOL10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOL99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOL93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOL95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOL92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOL90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOL91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOL85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOL82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOL80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOL77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOL75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOL72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOL70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOL67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOL65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOL62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOL60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOL57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOL55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOL52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOL50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOL45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOL40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOL35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOL30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOL25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOL20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOL15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOL10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOL99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOL93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOL95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOL92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOL90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOL91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOL85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOL82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOL80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOL77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOL75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOL72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOL70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOL67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOL65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOL62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOL60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOL57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOL55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOL52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOL50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOL45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOL40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOL35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOL30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOL25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOL20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOL15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOL10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROL99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROL93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROL95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROL92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROL90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROL91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROL85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROL82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROL80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROL77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROL75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROL72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROL70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROL67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROL65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROL62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROL60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROL57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROL55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROL52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROL50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROL45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROL40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROL35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROL30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROL25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROL20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROL15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROL10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOL85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOL70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOL50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOL25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOL99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOL99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOL93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOL93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOL95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOL95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOL92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOL92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOL90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOL90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOL91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOL91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOL85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOL85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOL82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOL82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOL80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOL80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOL77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOL77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOL75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOL75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOL72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOL72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOL70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOL70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOL67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOL67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOL65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOL65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOL62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOL62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOL60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOL60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOL57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOL57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOL55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOL55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOL52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOL52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOL50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOL50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOL45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOL45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOL40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOL40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOL35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOL35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOL30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOL30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOL25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOL25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOL20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOL20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOL15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOL15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOL10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOL10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOL86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROL86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOL86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOL97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOL97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOL98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOL00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 84 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOL97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOL97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOL98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOL98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOL98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOL98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOL86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 84 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOL86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 84 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOL96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 84 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOL89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 84 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOL94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 84 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROL94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOL97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOL96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOL96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOL98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOL73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 78 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOL73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 78 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOL73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 78 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOL98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 84 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOL98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOL98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOL98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROL98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 84 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOL98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 84 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOL98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 84 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs090.003 b/parm/wmo/grib2_awpgfs090.003 old mode 100755 new mode 100644 index dc606a19b2..8e1709bbf3 --- a/parm/wmo/grib2_awpgfs090.003 +++ b/parm/wmo/grib2_awpgfs090.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPU92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 90 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs090.160 b/parm/wmo/grib2_awpgfs090.160 deleted file mode 100755 index 0368bc9c45..0000000000 --- a/parm/wmo/grib2_awpgfs090.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGU99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGU93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGU95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGU92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGU90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGU91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGU85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGU82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGU80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGU77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGU75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGU72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGU70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGU67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGU65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGU62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGU60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGU57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGU55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGU52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGU50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGU45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGU40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGU35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGU30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGU25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGU20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGU15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGU10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGU99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGU93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGU95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGU92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGU90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGU91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGU85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGU82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGU80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGU77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGU75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGU72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGU70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGU67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGU65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGU62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGU60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGU57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGU55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGU52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGU50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGU45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGU40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGU35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGU30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGU25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGU20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGU15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGU10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGU99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGU93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGU95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGU92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGU90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGU91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGU85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGU82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGU80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGU77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGU75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGU72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGU70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGU67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGU65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGU62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGU60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGU57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGU55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGU52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGU50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGU45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGU40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGU35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGU30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGU25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGU20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGU15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGU10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGU99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGU93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGU95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGU92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGU90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGU91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGU85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGU82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGU80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGU77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGU75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGU72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGU70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGU67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGU65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGU62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGU60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGU57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGU55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGU52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGU50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGU45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGU40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGU35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGU30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGU25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGU20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGU15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGU10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGU85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGU70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGU50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGU25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGU98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGU00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 90 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGU97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGU98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGU98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGU98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGU98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGU86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 90 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGU86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 90 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGU96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGU89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 90 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGU94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGU94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 84 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 84 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 84 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGU98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGU98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGU98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGU98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGU98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs090.161 b/parm/wmo/grib2_awpgfs090.161 deleted file mode 100755 index 3807a6f590..0000000000 --- a/parm/wmo/grib2_awpgfs090.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTU99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTU93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTU95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTU92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTU90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTU91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTU85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTU82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTU80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTU77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTU75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTU72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTU70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTU67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTU65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTU62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTU60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTU57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTU55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTU52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTU50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTU45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTU40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTU35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTU30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTU25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTU20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTU15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTU10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTU99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTU93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTU95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTU92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTU90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTU91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTU85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTU82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTU80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTU77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTU75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTU72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTU70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTU67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTU65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTU62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTU60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTU57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTU55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTU52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTU50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTU45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTU40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTU35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTU30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTU25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTU20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTU15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTU10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTU99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTU93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTU95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTU92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTU90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTU91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTU85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTU82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTU80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTU77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTU75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTU72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTU70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTU67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTU65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTU62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTU60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTU57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTU55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTU52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTU50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTU45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTU40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTU35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTU30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTU25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTU20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTU15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTU10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTU99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTU93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTU95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTU92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTU90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTU91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTU85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTU82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTU80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTU77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTU75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTU72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTU70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTU67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTU65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTU62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTU60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTU57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTU55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTU52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTU50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTU45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTU40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTU35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTU30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTU25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTU20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTU15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTU10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTU85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTU70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTU50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTU25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTU98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTU00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 90 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTU97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTU98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTU98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTU98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTU98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTU86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 90 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTU86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 90 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTU96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTU89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 90 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTU94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTU94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 84 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 84 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 84 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTU98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METU98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTU98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTU98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTU98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs090.213 b/parm/wmo/grib2_awpgfs090.213 deleted file mode 100755 index cbc1036ebb..0000000000 --- a/parm/wmo/grib2_awpgfs090.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHU99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHU85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHU70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHU50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHU40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHU30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHU25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHU20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHU15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHU10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHU99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHU85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHU70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHU50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHU40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHU30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHU25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHU20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHU15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHU10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHU99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHU85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHU70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHU50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHU40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHU30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHU25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHU20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHU15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHU10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHU99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHU85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHU70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHU50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHU40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHU30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHU85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHU70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHU50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHU25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHU98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHU00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 90 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHU97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHU98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHU98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHU98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHU98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHU86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 90 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHU86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 90 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHU89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 90 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHU98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHU98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHU98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs090.254 b/parm/wmo/grib2_awpgfs090.254 deleted file mode 100755 index d011326b9f..0000000000 --- a/parm/wmo/grib2_awpgfs090.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOU99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOU93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOU95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOU92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOU90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOU91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOU85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOU82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOU80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOU77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOU75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOU72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOU70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOU67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOU65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOU62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOU60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOU57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOU55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOU52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOU50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOU45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOU40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOU35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOU30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOU25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOU20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOU15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOU10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOU99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOU93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOU95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOU92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOU90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOU91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOU85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOU82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOU80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOU77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOU75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOU72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOU70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOU67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOU65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOU62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOU60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOU57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOU55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOU52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOU50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOU45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOU40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOU35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOU30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOU25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOU20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOU15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOU10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOU99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOU93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOU95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOU92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOU90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOU91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOU85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOU82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOU80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOU77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOU75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOU72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOU70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOU67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOU65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOU62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOU60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOU57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOU55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOU52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOU50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOU45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOU40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOU35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOU30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOU25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOU20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOU15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOU10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROU99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROU93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROU95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROU92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROU90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROU91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROU85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROU82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROU80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROU77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROU75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROU72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROU70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROU67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROU65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROU62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROU60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROU57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROU55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROU52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROU50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROU45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROU40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROU35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROU30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROU25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROU20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROU15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROU10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOU85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOU70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOU50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOU25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOU98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOU00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 90 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOU97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOU98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOU98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOU98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOU98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOU86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 90 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOU86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 90 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOU96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 90 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOU89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 90 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOU94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 90 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROU94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSOU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 84 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 84 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 84 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOU98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 90 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOU98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOU98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOU98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROU98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 90 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 90 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 90 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs096.003 b/parm/wmo/grib2_awpgfs096.003 old mode 100755 new mode 100644 index 02adbff282..95e7388125 --- a/parm/wmo/grib2_awpgfs096.003 +++ b/parm/wmo/grib2_awpgfs096.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPM92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 96 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs096.160 b/parm/wmo/grib2_awpgfs096.160 deleted file mode 100755 index 8f346eca99..0000000000 --- a/parm/wmo/grib2_awpgfs096.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGM99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGM93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGM95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGM92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGM90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGM91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGM85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGM82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGM80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGM77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGM75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGM72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGM70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGM67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGM65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGM62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGM60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGM57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGM55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGM52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGM50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGM45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGM40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGM35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGM30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGM25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGM20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGM15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGM10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGM99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGM93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGM95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGM92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGM90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGM91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGM85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGM82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGM80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGM77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGM75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGM72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGM70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGM67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGM65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGM62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGM60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGM57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGM55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGM52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGM50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGM45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGM40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGM35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGM30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGM25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGM20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGM15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGM10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGM99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGM93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGM95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGM92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGM90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGM91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGM85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGM82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGM80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGM77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGM75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGM72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGM70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGM67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGM65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGM62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGM60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGM57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGM55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGM52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGM50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGM45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGM40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGM35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGM30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGM25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGM20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGM15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGM10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGM99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGM93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGM95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGM92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGM90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGM91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGM85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGM82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGM80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGM77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGM75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGM72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGM70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGM67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGM65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGM62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGM60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGM57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGM55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGM52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGM50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGM45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGM40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGM35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGM30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGM25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGM20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGM15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGM10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGM85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGM70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGM50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGM25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGM98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGM00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 96 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGM97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGM98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGM98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGM98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGM98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGM86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 96 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGM86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 96 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGM96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGM89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 96 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGM94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGM94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGM98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 90 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 90 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 90 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGM98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGM98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGM98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGM98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGM98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs096.161 b/parm/wmo/grib2_awpgfs096.161 deleted file mode 100755 index fe24b21711..0000000000 --- a/parm/wmo/grib2_awpgfs096.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTM99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTM93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTM95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTM92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTM90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTM91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTM85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTM82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTM80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTM77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTM75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTM72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTM70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTM67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTM65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTM62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTM60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTM57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTM55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTM52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTM50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTM45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTM40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTM35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTM30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTM25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTM20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTM15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTM10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTM99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTM93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTM95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTM92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTM90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTM91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTM85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTM82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTM80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTM77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTM75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTM72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTM70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTM67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTM65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTM62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTM60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTM57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTM55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTM52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTM50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTM45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTM40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTM35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTM30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTM25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTM20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTM15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTM10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTM99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTM93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTM95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTM92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTM90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTM91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTM85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTM82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTM80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTM77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTM75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTM72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTM70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTM67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTM65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTM62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTM60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTM57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTM55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTM52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTM50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTM45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTM40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTM35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTM30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTM25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTM20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTM15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTM10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTM99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTM93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTM95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTM92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTM90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTM91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTM85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTM82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTM80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTM77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTM75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTM72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTM70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTM67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTM65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTM62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTM60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTM57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTM55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTM52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTM50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTM45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTM40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTM35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTM30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTM25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTM20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTM15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTM10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTM85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTM70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTM50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTM25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTM98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTM00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 96 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTM97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTM98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTM98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTM98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTM98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTM86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 96 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTM86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 96 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTM96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTM89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 96 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTM94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTM94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTM98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 90 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 90 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 90 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTM98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETM98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTM98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTM98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTM98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs096.213 b/parm/wmo/grib2_awpgfs096.213 deleted file mode 100755 index b2c42f5acc..0000000000 --- a/parm/wmo/grib2_awpgfs096.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHM99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHM85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHM70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHM50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHM40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHM30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHM25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHM20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHM15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHM10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHM99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHM85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHM70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHM50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHM40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHM30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHM25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHM20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHM15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHM10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHM99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHM85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHM70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHM50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHM40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHM30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHM25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHM20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHM15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHM10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHM99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHM85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHM70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHM50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHM40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHM30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHM85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHM70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHM50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHM25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHM98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHM00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 96 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHM97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHM98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHM98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHM98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHM98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHM86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 96 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHM86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 96 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHM89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 96 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHM98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHM98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHM98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs096.254 b/parm/wmo/grib2_awpgfs096.254 deleted file mode 100755 index e873b30949..0000000000 --- a/parm/wmo/grib2_awpgfs096.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOM99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOM93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOM95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOM92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOM90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOM91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOM85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOM82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOM80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOM77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOM75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOM72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOM70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOM67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOM65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOM62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOM60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOM57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOM55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOM52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOM50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOM45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOM40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOM35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOM30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOM25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOM20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOM15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOM10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOM99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOM93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOM95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOM92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOM90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOM91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOM85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOM82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOM80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOM77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOM75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOM72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOM70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOM67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOM65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOM62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOM60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOM57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOM55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOM52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOM50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOM45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOM40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOM35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOM30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOM25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOM20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOM15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOM10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOM99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOM93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOM95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOM92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOM90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOM91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOM85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOM82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOM80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOM77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOM75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOM72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOM70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOM67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOM65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOM62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOM60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOM57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOM55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOM52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOM50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOM45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOM40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOM35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOM30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOM25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOM20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOM15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOM10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROM99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROM93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROM95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROM92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROM90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROM91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROM85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROM82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROM80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROM77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROM75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROM72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROM70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROM67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROM65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROM62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROM60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROM57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROM55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROM52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROM50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROM45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROM40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROM35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROM30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROM25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROM20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROM15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROM10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOM85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOM70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOM50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOM25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOM99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOM93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOM95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOM92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOM90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOM91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOM85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOM82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOM80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOM77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOM75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOM72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOM70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOM67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOM65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOM62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOM60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOM57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOM55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOM52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOM50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOM45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOM40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOM35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOM30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOM25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOM20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOM15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOM10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOM86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROM86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOM86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOM97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOM97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOM98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOM00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 96 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOM97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOM97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOM98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOM98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOM98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOM98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOM86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 96 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOM86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 96 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOM96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 96 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOM89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 96 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOM94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 96 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROM94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOM97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOM96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOM98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 90 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 90 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOM73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 90 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOM98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 96 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOM98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOM98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOM98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROM98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 96 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 96 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOM98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 96 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs102.003 b/parm/wmo/grib2_awpgfs102.003 old mode 100755 new mode 100644 index 7cecc5b074..feab0338d4 --- a/parm/wmo/grib2_awpgfs102.003 +++ b/parm/wmo/grib2_awpgfs102.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPV92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 102 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs102.160 b/parm/wmo/grib2_awpgfs102.160 deleted file mode 100755 index f53d8182d0..0000000000 --- a/parm/wmo/grib2_awpgfs102.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGV99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGV93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGV95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGV92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGV90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGV91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGV85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGV82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGV80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGV77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGV75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGV72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGV70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGV67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGV65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGV62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGV60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGV57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGV55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGV52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGV50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGV45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGV40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGV35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGV30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGV25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGV20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGV15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGV10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGV99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGV93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGV95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGV92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGV90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGV91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGV85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGV82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGV80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGV77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGV75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGV72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGV70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGV67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGV65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGV62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGV60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGV57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGV55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGV52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGV50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGV45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGV40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGV35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGV30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGV25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGV20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGV15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGV10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGV99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGV93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGV95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGV92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGV90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGV91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGV85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGV82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGV80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGV77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGV75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGV72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGV70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGV67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGV65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGV62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGV60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGV57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGV55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGV52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGV50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGV45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGV40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGV35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGV30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGV25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGV20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGV15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGV10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGV99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGV93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGV95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGV92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGV90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGV91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGV85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGV82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGV80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGV77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGV75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGV72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGV70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGV67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGV65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGV62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGV60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGV57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGV55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGV52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGV50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGV45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGV40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGV35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGV30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGV25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGV20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGV15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGV10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGV85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGV70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGV50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGV25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGV98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGV00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 102 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGV97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGV98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGV98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGV98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGV98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGV86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 102 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGV86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 102 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGV96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGV89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 102 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGV94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGV94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGV98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 96 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 96 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 96 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGV98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGV98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGV98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGV98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGV98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs102.161 b/parm/wmo/grib2_awpgfs102.161 deleted file mode 100755 index 054483d4bc..0000000000 --- a/parm/wmo/grib2_awpgfs102.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTV99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTV93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTV95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTV92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTV90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTV91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTV85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTV82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTV80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTV77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTV75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTV72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTV70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTV67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTV65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTV62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTV60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTV57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTV55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTV52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTV50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTV45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTV40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTV35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTV30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTV25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTV20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTV15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTV10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTV99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTV93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTV95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTV92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTV90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTV91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTV85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTV82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTV80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTV77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTV75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTV72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTV70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTV67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTV65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTV62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTV60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTV57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTV55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTV52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTV50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTV45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTV40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTV35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTV30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTV25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTV20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTV15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTV10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTV99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTV93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTV95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTV92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTV90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTV91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTV85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTV82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTV80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTV77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTV75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTV72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTV70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTV67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTV65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTV62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTV60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTV57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTV55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTV52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTV50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTV45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTV40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTV35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTV30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTV25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTV20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTV15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTV10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTV99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTV93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTV95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTV92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTV90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTV91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTV85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTV82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTV80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTV77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTV75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTV72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTV70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTV67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTV65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTV62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTV60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTV57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTV55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTV52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTV50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTV45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTV40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTV35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTV30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTV25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTV20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTV15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTV10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTV85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTV70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTV50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTV25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTV98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTV00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 102 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTV97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTV98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTV98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTV98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTV98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTV86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 102 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTV86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 102 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTV96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTV89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 102 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTV94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTV94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTV98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 96 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 96 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 96 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTV98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METV98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTV98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTV98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTV98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs102.213 b/parm/wmo/grib2_awpgfs102.213 deleted file mode 100755 index 447805b680..0000000000 --- a/parm/wmo/grib2_awpgfs102.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHV99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHV85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHV70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHV50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHV40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHV30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHV25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHV20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHV15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHV10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHV99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHV85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHV70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHV50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHV40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHV30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHV25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHV20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHV15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHV10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHV99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHV85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHV70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHV50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHV40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHV30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHV25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHV20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHV15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHV10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHV99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHV85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHV70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHV50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHV40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHV30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHV85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHV70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHV50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHV25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHV98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHV00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 102 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHV97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHV98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHV98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHV98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHV98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHV86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 102 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHV86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 102 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHV89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 102 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHV98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHV98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHV98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs102.254 b/parm/wmo/grib2_awpgfs102.254 deleted file mode 100755 index 54cbdc07fc..0000000000 --- a/parm/wmo/grib2_awpgfs102.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOV99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOV93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOV95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOV92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOV90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOV91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOV85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOV82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOV80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOV77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOV75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOV72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOV70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOV67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOV65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOV62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOV60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOV57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOV55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOV52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOV50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOV45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOV40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOV35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOV30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOV25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOV20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOV15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOV10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOV99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOV93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOV95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOV92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOV90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOV91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOV85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOV82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOV80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOV77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOV75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOV72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOV70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOV67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOV65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOV62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOV60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOV57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOV55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOV52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOV50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOV45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOV40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOV35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOV30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOV25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOV20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOV15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOV10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOV99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOV93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOV95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOV92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOV90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOV91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOV85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOV82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOV80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOV77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOV75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOV72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOV70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOV67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOV65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOV62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOV60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOV57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOV55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOV52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOV50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOV45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOV40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOV35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOV30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOV25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOV20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOV15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOV10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROV99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROV93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROV95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROV92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROV90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROV91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROV85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROV82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROV80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROV77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROV75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROV72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROV70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROV67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROV65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROV62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROV60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROV57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROV55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROV52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROV50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROV45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROV40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROV35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROV30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROV25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROV20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROV15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROV10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOV85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOV70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOV50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOV25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOV98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOV00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 102 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOV97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOV98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOV98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOV98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOV98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOV86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 102 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOV86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 102 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOV96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 102 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOV89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 102 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOV94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 102 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROV94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSOV98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 96 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 96 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 96 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOV98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 102 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOV98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOV98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOV98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROV98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 102 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 102 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 102 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs108.003 b/parm/wmo/grib2_awpgfs108.003 old mode 100755 new mode 100644 index 492e984f97..aa2a66f3a7 --- a/parm/wmo/grib2_awpgfs108.003 +++ b/parm/wmo/grib2_awpgfs108.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPN92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 108 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs108.160 b/parm/wmo/grib2_awpgfs108.160 deleted file mode 100755 index 58ab1871a6..0000000000 --- a/parm/wmo/grib2_awpgfs108.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGN99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGN93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGN95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGN92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGN90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGN91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGN85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGN82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGN80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGN77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGN75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGN72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGN70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGN67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGN65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGN62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGN60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGN57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGN55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGN52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGN50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGN45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGN40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGN35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGN30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGN25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGN20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGN15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGN10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGN99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGN93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGN95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGN92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGN90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGN91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGN85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGN82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGN80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGN77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGN75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGN72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGN70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGN67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGN65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGN62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGN60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGN57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGN55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGN52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGN50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGN45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGN40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGN35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGN30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGN25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGN20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGN15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGN10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGN99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGN93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGN95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGN92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGN90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGN91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGN85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGN82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGN80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGN77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGN75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGN72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGN70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGN67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGN65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGN62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGN60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGN57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGN55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGN52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGN50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGN45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGN40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGN35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGN30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGN25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGN20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGN15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGN10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGN99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGN93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGN95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGN92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGN90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGN91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGN85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGN82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGN80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGN77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGN75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGN72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGN70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGN67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGN65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGN62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGN60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGN57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGN55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGN52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGN50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGN45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGN40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGN35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGN30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGN25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGN20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGN15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGN10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGN85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGN70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGN50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGN25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGN93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGN93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGN95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGN95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGN90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGN90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGN91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGN91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGN82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGN82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGN80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGN80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGN77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGN77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGN75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGN75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGN72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGN72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGN67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGN67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGN65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGN65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGN62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGN62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGN60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGN60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGN57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGN57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGN55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGN55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGN52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGN52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGN45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGN45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGN35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGN35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGN98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGN00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 108 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGN97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGN98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGN98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGN98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGN98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGN86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 108 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGN86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 108 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGN96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGN89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 108 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGN94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGN94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGN96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGN96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGN98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 102 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 102 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 102 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGN98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGN98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGN98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGN98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGN98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs108.161 b/parm/wmo/grib2_awpgfs108.161 deleted file mode 100755 index 4b64063102..0000000000 --- a/parm/wmo/grib2_awpgfs108.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTN99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTN93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTN95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTN92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTN90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTN91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTN85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTN82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTN80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTN77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTN75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTN72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTN70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTN67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTN65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTN62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTN60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTN57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTN55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTN52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTN50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTN45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTN40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTN35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTN30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTN25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTN20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTN15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTN10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTN99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTN93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTN95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTN92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTN90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTN91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTN85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTN82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTN80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTN77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTN75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTN72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTN70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTN67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTN65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTN62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTN60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTN57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTN55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTN52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTN50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTN45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTN40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTN35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTN30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTN25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTN20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTN15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTN10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTN99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTN93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTN95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTN92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTN90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTN91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTN85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTN82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTN80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTN77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTN75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTN72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTN70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTN67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTN65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTN62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTN60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTN57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTN55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTN52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTN50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTN45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTN40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTN35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTN30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTN25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTN20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTN15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTN10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTN99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTN93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTN95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTN92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTN90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTN91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTN85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTN82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTN80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTN77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTN75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTN72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTN70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTN67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTN65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTN62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTN60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTN57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTN55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTN52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTN50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTN45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTN40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTN35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTN30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTN25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTN20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTN15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTN10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTN85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTN70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTN50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTN25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTN93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTN93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTN95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTN95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTN92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTN90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTN90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTN91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTN91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTN82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTN82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTN80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTN80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTN77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTN77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTN75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTN75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTN72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTN72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTN67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTN67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTN65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTN65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTN62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTN62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTN60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTN60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTN57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTN57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTN55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTN55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTN52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTN52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTN45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTN45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTN35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTN35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTN97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTN98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTN00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 108 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTN97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTN98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTN98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTN98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTN98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTN86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 108 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTN86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 108 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTN96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTN89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 108 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTN94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTN94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTN96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTN96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTN98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 102 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 102 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATN73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 102 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTN98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETN98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTN98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTN98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTN98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs108.213 b/parm/wmo/grib2_awpgfs108.213 deleted file mode 100755 index 52a617abaa..0000000000 --- a/parm/wmo/grib2_awpgfs108.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHN99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHN85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHN70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHN50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHN40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHN30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHN25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHN20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHN15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHN10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHN99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHN85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHN70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHN50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHN40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHN30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHN25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHN20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHN15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHN10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHN99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHN85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHN70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHN50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHN40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHN30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHN25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHN20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHN15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHN10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHN99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHN85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHN70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHN50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHN40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHN30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHN85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHN70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHN50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHN25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHN99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHN85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHN70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHN50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHN40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHN30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHN25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHN20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHN15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHN10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHN86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHN86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHN98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHN00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 108 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHN97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHN97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHN97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHN98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHN98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHN98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHN98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHN86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 108 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHN86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 108 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHN89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 108 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHN86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHN97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHN98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHN98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHN98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHN98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs108.254 b/parm/wmo/grib2_awpgfs108.254 deleted file mode 100755 index 9348f4c93b..0000000000 --- a/parm/wmo/grib2_awpgfs108.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHON99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHON93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHON95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHON92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHON90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHON91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHON85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHON82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHON80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHON77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHON75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHON72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHON70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHON67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHON65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHON62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHON60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHON57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHON55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHON52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHON50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHON45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHON40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHON35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHON30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHON25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHON20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHON15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHON10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTON99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTON93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTON95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTON92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTON90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTON91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTON85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTON82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTON80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTON77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTON75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTON72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTON70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTON67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTON65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTON62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTON60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTON57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTON55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTON52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTON50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTON45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTON40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTON35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTON30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTON25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTON20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTON15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTON10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOON99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOON93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOON95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOON92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOON90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOON91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOON85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOON82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOON80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOON77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOON75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOON72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOON70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOON67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOON65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOON62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOON60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOON57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOON55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOON52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOON50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOON45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOON40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOON35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOON30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOON25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOON20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOON15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOON10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRON99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRON93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRON95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRON92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRON90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRON91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRON85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRON82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRON80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRON77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRON75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRON72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRON70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRON67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRON65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRON62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRON60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRON57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRON55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRON52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRON50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRON45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRON40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRON35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRON30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRON25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRON20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRON15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRON10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCON85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCON70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCON50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCON25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHON50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUON99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVON99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUON93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVON93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUON95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVON95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUON92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVON92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUON90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVON90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUON91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVON91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUON85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVON85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUON82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVON82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUON80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVON80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUON77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVON77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUON75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVON75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUON72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVON72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUON70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVON70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUON67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVON67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUON65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVON65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUON62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVON62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUON60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVON60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUON57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVON57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUON55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVON55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUON52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVON52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUON50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVON50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUON45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVON45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUON40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVON40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUON35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVON35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUON30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVON30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUON25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVON25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUON20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVON20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUON15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVON15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUON10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVON10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTON86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRON86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVON86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHON97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHON97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHON97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHON97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTON97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTON97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTON97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTON97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPON97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPON97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPON97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPON97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPON98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFON00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 108 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPON97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBON97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXON98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWON98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYON98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQON98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWON86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 108 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYON86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 108 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPON96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 108 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPON89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 108 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHON94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 108 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRON94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVON97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUON96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVON96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSON98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAON73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 102 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAON73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 102 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAON73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 102 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTON98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 108 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEON98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGON98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMON98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMON98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMON98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMON98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRON98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 108 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUON98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 108 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVON98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 108 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs114.003 b/parm/wmo/grib2_awpgfs114.003 old mode 100755 new mode 100644 index 181cb2e21e..5f7606ddf4 --- a/parm/wmo/grib2_awpgfs114.003 +++ b/parm/wmo/grib2_awpgfs114.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPW92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 114 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs114.160 b/parm/wmo/grib2_awpgfs114.160 deleted file mode 100755 index f74cdd0954..0000000000 --- a/parm/wmo/grib2_awpgfs114.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGW99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGW93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGW95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGW92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGW90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGW91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGW85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGW82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGW80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGW77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGW75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGW72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGW70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGW67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGW65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGW62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGW60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGW57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGW55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGW52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGW50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGW45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGW40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGW35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGW30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGW25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGW20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGW15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGW10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGW99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGW93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGW95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGW92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGW90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGW91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGW85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGW82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGW80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGW77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGW75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGW72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGW70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGW67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGW65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGW62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGW60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGW57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGW55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGW52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGW50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGW45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGW40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGW35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGW30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGW25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGW20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGW15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGW10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGW99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGW93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGW95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGW92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGW90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGW91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGW85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGW82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGW80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGW77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGW75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGW72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGW70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGW67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGW65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGW62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGW60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGW57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGW55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGW52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGW50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGW45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGW40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGW35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGW30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGW25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGW20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGW15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGW10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGW99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGW93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGW95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGW92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGW90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGW91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGW85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGW82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGW80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGW77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGW75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGW72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGW70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGW67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGW65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGW62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGW60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGW57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGW55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGW52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGW50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGW45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGW40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGW35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGW30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGW25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGW20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGW15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGW10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGW85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGW70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGW50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGW25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGW98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGW00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 114 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGW97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGW98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGW98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGW98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGW98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGW86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 114 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGW86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 114 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGW96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGW89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 114 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGW94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGW94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGW98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 108 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 108 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 108 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGW98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGW98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGW98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGW98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGW98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs114.161 b/parm/wmo/grib2_awpgfs114.161 deleted file mode 100755 index f293eb76d9..0000000000 --- a/parm/wmo/grib2_awpgfs114.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTW99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTW93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTW95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTW92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTW90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTW91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTW85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTW82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTW80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTW77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTW75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTW72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTW70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTW67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTW65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTW62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTW60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTW57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTW55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTW52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTW50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTW45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTW40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTW35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTW30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTW25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTW20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTW15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTW10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTW99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTW93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTW95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTW92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTW90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTW91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTW85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTW82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTW80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTW77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTW75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTW72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTW70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTW67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTW65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTW62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTW60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTW57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTW55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTW52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTW50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTW45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTW40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTW35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTW30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTW25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTW20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTW15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTW10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTW99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTW93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTW95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTW92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTW90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTW91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTW85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTW82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTW80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTW77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTW75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTW72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTW70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTW67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTW65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTW62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTW60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTW57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTW55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTW52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTW50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTW45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTW40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTW35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTW30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTW25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTW20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTW15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTW10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTW99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTW93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTW95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTW92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTW90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTW91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTW85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTW82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTW80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTW77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTW75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTW72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTW70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTW67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTW65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTW62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTW60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTW57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTW55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTW52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTW50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTW45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTW40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTW35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTW30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTW25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTW20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTW15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTW10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTW85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTW70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTW50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTW25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTW98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTW00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 114 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTW97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTW98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTW98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTW98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTW98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTW86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 114 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTW86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 114 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTW96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTW89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 114 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTW94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTW94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTW98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 108 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 108 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 108 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTW98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METW98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTW98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTW98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTW98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs114.213 b/parm/wmo/grib2_awpgfs114.213 deleted file mode 100755 index 0bb53e7faa..0000000000 --- a/parm/wmo/grib2_awpgfs114.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHW99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHW85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHW70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHW50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHW40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHW30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHW25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHW20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHW15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHW10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHW99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHW85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHW70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHW50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHW40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHW30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHW25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHW20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHW15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHW10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHW99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHW85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHW70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHW50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHW40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHW30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHW25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHW20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHW15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHW10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHW99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHW85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHW70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHW50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHW40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHW30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHW85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHW70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHW50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHW25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHW98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHW00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 114 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHW97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHW98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHW98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHW98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHW98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHW86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 114 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHW86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 114 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHW89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 114 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHW98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHW98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHW98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs114.254 b/parm/wmo/grib2_awpgfs114.254 deleted file mode 100755 index da336377f7..0000000000 --- a/parm/wmo/grib2_awpgfs114.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOW99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOW93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOW95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOW92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOW90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOW91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOW85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOW82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOW80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOW77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOW75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOW72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOW70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOW67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOW65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOW62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOW60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOW57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOW55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOW52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOW50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOW45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOW40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOW35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOW30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOW25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOW20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOW15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOW10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOW99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOW93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOW95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOW92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOW90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOW91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOW85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOW82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOW80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOW77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOW75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOW72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOW70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOW67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOW65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOW62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOW60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOW57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOW55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOW52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOW50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOW45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOW40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOW35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOW30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOW25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOW20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOW15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOW10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOW99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOW93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOW95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOW92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOW90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOW91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOW85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOW82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOW80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOW77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOW75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOW72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOW70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOW67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOW65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOW62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOW60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOW57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOW55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOW52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOW50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOW45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOW40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOW35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOW30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOW25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOW20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOW15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOW10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROW99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROW93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROW95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROW92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROW90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROW91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROW85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROW82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROW80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROW77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROW75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROW72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROW70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROW67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROW65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROW62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROW60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROW57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROW55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROW52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROW50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROW45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROW40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROW35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROW30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROW25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROW20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROW15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROW10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOW85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOW70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOW50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOW25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOW98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOW00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 114 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOW97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOW98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOW98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOW98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOW98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOW86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 114 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOW86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 114 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOW96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 114 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOW89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 114 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOW94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 114 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROW94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSOW98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 108 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 108 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 108 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOW98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 114 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOW98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOW98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOW98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROW98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 114 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 114 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 114 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs120.003 b/parm/wmo/grib2_awpgfs120.003 old mode 100755 new mode 100644 index 976ce08024..a42df185ea --- a/parm/wmo/grib2_awpgfs120.003 +++ b/parm/wmo/grib2_awpgfs120.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPO92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPO92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPO92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 120 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs120.160 b/parm/wmo/grib2_awpgfs120.160 deleted file mode 100755 index 5521c2e912..0000000000 --- a/parm/wmo/grib2_awpgfs120.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGO99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGO93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGO95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGO92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGO90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGO91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGO85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGO82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGO80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGO77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGO75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGO72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGO70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGO67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGO65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGO62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGO60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGO57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGO55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGO52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGO50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGO45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGO40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGO35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGO30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGO25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGO20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGO15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGO10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGO99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGO93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGO95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGO92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGO90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGO91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGO85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGO82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGO80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGO77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGO75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGO72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGO70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGO67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGO65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGO62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGO60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGO57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGO55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGO52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGO50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGO45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGO40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGO35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGO30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGO25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGO20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGO15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGO10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGO99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGO93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGO95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGO92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGO90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGO91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGO85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGO82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGO80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGO77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGO75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGO72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGO70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGO67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGO65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGO62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGO60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGO57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGO55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGO52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGO50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGO45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGO40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGO35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGO30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGO25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGO20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGO15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGO10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGO99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGO93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGO95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGO92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGO90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGO91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGO85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGO82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGO80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGO77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGO75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGO72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGO70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGO67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGO65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGO62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGO60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGO57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGO55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGO52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGO50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGO45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGO40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGO35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGO30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGO25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGO20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGO15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGO10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGO85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGO70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGO50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGO25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGO99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGO99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGO93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGO93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGO95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGO95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGO92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGO92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGO90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGO90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGO91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGO91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGO85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGO85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGO82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGO82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGO80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGO80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGO77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGO77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGO75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGO75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGO72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGO72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGO70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGO70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGO67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGO67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGO65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGO65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGO62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGO62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGO60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGO60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGO57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGO57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGO55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGO55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGO52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGO52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGO50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGO50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGO45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGO45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGO40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGO40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGO35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGO35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGO30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGO30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGO25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGO25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGO20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGO20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGO15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGO15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGO10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGO10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGO98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGO00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 120 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGO97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGO98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGO98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGO98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGO98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGO86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 120 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGO86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 120 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGO96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGO89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 120 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGO94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGO94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGO96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGO96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGO98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGO73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 114 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGO73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 114 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGO73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 114 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGO98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGO98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGO98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGO98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGO98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGO98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGO98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs120.161 b/parm/wmo/grib2_awpgfs120.161 deleted file mode 100755 index d563d7aa24..0000000000 --- a/parm/wmo/grib2_awpgfs120.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTO99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTO93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTO95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTO92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTO90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTO91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTO85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTO82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTO80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTO77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTO75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTO72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTO70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTO67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTO65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTO62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTO60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTO57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTO55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTO52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTO50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTO45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTO40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTO35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTO30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTO25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTO20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTO15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTO10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTO99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTO93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTO95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTO92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTO90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTO91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTO85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTO82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTO80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTO77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTO75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTO72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTO70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTO67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTO65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTO62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTO60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTO57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTO55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTO52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTO50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTO45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTO40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTO35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTO30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTO25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTO20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTO15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTO10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTO99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTO93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTO95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTO92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTO90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTO91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTO85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTO82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTO80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTO77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTO75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTO72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTO70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTO67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTO65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTO62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTO60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTO57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTO55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTO52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTO50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTO45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTO40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTO35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTO30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTO25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTO20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTO15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTO10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTO99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTO93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTO95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTO92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTO90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTO91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTO85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTO82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTO80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTO77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTO75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTO72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTO70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTO67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTO65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTO62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTO60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTO57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTO55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTO52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTO50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTO45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTO40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTO35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTO30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTO25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTO20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTO15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTO10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTO85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTO70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTO50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTO25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTO99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTO99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTO93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTO93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTO95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTO95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTO92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTO92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTO90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTO90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTO91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTO91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTO85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTO85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTO82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTO82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTO80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTO80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTO77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTO77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTO75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTO75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTO72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTO72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTO70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTO70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTO67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTO67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTO65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTO65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTO62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTO62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTO60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTO60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTO57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTO57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTO55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTO55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTO52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTO52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTO50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTO50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTO45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTO45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTO40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTO40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTO35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTO35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTO30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTO30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTO25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTO25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTO20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTO20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTO15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTO15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTO10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTO10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTO98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTO00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 120 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTO97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTO98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTO98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTO98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTO98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTO86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 120 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTO86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 120 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTO96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTO89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 120 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTO94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTO94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTO96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTO96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTO98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATO73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 114 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATO73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 114 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATO73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 114 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTO98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETO98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTO98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTO98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTO98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTO98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTO98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs120.213 b/parm/wmo/grib2_awpgfs120.213 deleted file mode 100755 index fbe952a6b8..0000000000 --- a/parm/wmo/grib2_awpgfs120.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHO99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHO85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHO70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHO50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHO40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHO30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHO25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHO20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHO15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHO10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHO99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHO85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHO70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHO50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHO40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHO30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHO25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHO20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHO15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHO10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHO99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHO85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHO70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHO50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHO40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHO30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHO25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHO20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHO15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHO10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHO99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHO85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHO70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHO50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHO40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHO30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHO85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHO70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHO50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHO25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHO99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHO99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHO85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHO85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHO70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHO70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHO50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHO50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHO40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHO40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHO30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHO30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHO25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHO25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHO20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHO20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHO15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHO15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHO10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHO10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHO98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHO00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 120 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHO97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHO98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHO98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHO98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHO98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHO86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 120 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHO86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 120 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHO89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 120 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHO98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHO98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHO98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHO98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHO98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs120.254 b/parm/wmo/grib2_awpgfs120.254 deleted file mode 100755 index 0d19320c87..0000000000 --- a/parm/wmo/grib2_awpgfs120.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOO99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOO93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOO95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOO92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOO90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOO91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOO85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOO82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOO80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOO77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOO75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOO72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOO70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOO67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOO65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOO62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOO60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOO57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOO55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOO52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOO50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOO45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOO40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOO35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOO30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOO25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOO20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOO15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOO10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOO99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOO93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOO95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOO92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOO90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOO91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOO85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOO82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOO80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOO77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOO75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOO72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOO70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOO67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOO65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOO62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOO60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOO57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOO55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOO52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOO50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOO45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOO40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOO35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOO30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOO25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOO20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOO15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOO10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOO99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOO93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOO95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOO92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOO90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOO91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOO85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOO82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOO80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOO77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOO75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOO72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOO70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOO67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOO65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOO62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOO60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOO57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOO55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOO52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOO50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOO45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOO40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOO35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOO30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOO25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOO20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOO15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOO10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROO99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROO93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROO95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROO92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROO90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROO91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROO85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROO82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROO80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROO77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROO75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROO72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROO70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROO67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROO65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROO62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROO60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROO57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROO55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROO52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROO50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROO45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROO40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROO35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROO30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROO25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROO20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROO15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROO10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOO85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOO70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOO50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOO25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOO99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOO99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOO93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOO93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOO95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOO95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOO92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOO92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOO90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOO90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOO91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOO91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOO85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOO85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOO82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOO82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOO80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOO80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOO77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOO77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOO75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOO75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOO72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOO72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOO70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOO70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOO67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOO67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOO65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOO65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOO62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOO62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOO60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOO60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOO57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOO57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOO55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOO55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOO52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOO52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOO50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOO50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOO45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOO45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOO40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOO40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOO35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOO35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOO30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOO30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOO25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOO25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOO20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOO20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOO15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOO15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOO10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOO10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOO86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROO86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOO86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOO97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOO97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOO98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOO00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 120 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOO97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOO97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOO98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOO98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOO98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOO98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOO86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 120 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOO86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 120 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOO96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 120 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOO89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 120 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOO94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 120 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROO94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOO97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOO96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOO96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOO98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOO73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 114 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOO73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 114 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOO73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 114 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOO98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 120 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOO98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOO98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOO98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROO98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 120 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOO98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 120 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOO98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 120 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs126.003 b/parm/wmo/grib2_awpgfs126.003 old mode 100755 new mode 100644 index 23742cdaf5..8f3f91c909 --- a/parm/wmo/grib2_awpgfs126.003 +++ b/parm/wmo/grib2_awpgfs126.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 126 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs126.160 b/parm/wmo/grib2_awpgfs126.160 deleted file mode 100755 index 4ad9d85244..0000000000 --- a/parm/wmo/grib2_awpgfs126.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 126 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 126 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 126 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 126 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 120 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 120 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 120 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs126.161 b/parm/wmo/grib2_awpgfs126.161 deleted file mode 100755 index b5013bc4aa..0000000000 --- a/parm/wmo/grib2_awpgfs126.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 126 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 126 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 126 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 126 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 120 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 120 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 120 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs126.213 b/parm/wmo/grib2_awpgfs126.213 deleted file mode 100755 index 36492c5a23..0000000000 --- a/parm/wmo/grib2_awpgfs126.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 126 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 126 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 126 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 126 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs126.254 b/parm/wmo/grib2_awpgfs126.254 deleted file mode 100755 index 21471bb4cb..0000000000 --- a/parm/wmo/grib2_awpgfs126.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 126 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 126 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 126 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 126 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 126 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 126 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSOZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 120 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 120 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 120 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 126 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 126 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 126 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 126 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs132.003 b/parm/wmo/grib2_awpgfs132.003 old mode 100755 new mode 100644 index 0556a4bc19..dfa0a4e8f6 --- a/parm/wmo/grib2_awpgfs132.003 +++ b/parm/wmo/grib2_awpgfs132.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPP92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPP92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPP92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 132 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs132.160 b/parm/wmo/grib2_awpgfs132.160 deleted file mode 100755 index f936b10746..0000000000 --- a/parm/wmo/grib2_awpgfs132.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGP99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGP93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGP95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGP92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGP90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGP91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGP85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGP82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGP80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGP77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGP75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGP72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGP70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGP67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGP65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGP62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGP60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGP57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGP55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGP52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGP50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGP45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGP40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGP35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGP30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGP25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGP20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGP15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGP10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGP99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGP93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGP95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGP92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGP90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGP91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGP85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGP82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGP80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGP77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGP75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGP72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGP70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGP67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGP65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGP62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGP60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGP57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGP55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGP52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGP50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGP45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGP40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGP35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGP30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGP25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGP20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGP15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGP10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGP99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGP93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGP95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGP92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGP90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGP91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGP85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGP82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGP80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGP77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGP75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGP72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGP70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGP67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGP65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGP62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGP60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGP57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGP55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGP52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGP50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGP45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGP40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGP35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGP30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGP25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGP20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGP15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGP10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGP99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGP93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGP95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGP92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGP90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGP91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGP85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGP82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGP80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGP77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGP75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGP72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGP70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGP67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGP65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGP62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGP60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGP57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGP55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGP52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGP50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGP45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGP40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGP35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGP30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGP25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGP20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGP15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGP10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGP85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGP70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGP50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGP25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGP99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGP99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGP93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGP93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGP95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGP95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGP92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGP92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGP90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGP90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGP91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGP91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGP85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGP85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGP82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGP82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGP80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGP80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGP77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGP77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGP75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGP75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGP72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGP72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGP70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGP70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGP67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGP67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGP65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGP65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGP62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGP62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGP60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGP60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGP57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGP57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGP55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGP55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGP52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGP52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGP50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGP50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGP45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGP45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGP40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGP40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGP35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGP35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGP30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGP30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGP25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGP25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGP20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGP20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGP15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGP15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGP10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGP10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGP98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGP00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 132 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGP97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGP98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGP98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGP98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGP98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGP86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 132 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGP86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 132 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGP96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGP89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 132 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGP94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGP94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGP96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGP96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGP98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGP73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 126 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGP73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 126 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGP73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 126 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGP98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGP98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGP98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGP98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGP98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGP98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGP98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs132.161 b/parm/wmo/grib2_awpgfs132.161 deleted file mode 100755 index bcc5e3014d..0000000000 --- a/parm/wmo/grib2_awpgfs132.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTP99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTP93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTP95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTP92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTP90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTP91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTP85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTP82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTP80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTP77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTP75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTP72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTP70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTP67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTP65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTP62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTP60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTP57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTP55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTP52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTP50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTP45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTP40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTP35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTP30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTP25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTP20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTP15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTP10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTP99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTP93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTP95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTP92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTP90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTP91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTP85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTP82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTP80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTP77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTP75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTP72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTP70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTP67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTP65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTP62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTP60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTP57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTP55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTP52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTP50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTP45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTP40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTP35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTP30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTP25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTP20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTP15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTP10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTP99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTP93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTP95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTP92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTP90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTP91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTP85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTP82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTP80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTP77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTP75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTP72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTP70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTP67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTP65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTP62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTP60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTP57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTP55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTP52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTP50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTP45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTP40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTP35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTP30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTP25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTP20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTP15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTP10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTP99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTP93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTP95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTP92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTP90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTP91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTP85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTP82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTP80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTP77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTP75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTP72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTP70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTP67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTP65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTP62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTP60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTP57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTP55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTP52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTP50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTP45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTP40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTP35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTP30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTP25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTP20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTP15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTP10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTP85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTP70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTP50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTP25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTP99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTP99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTP93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTP93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTP95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTP95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTP92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTP92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTP90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTP90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTP91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTP91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTP85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTP85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTP82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTP82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTP80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTP80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTP77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTP77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTP75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTP75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTP72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTP72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTP70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTP70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTP67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTP67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTP65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTP65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTP62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTP62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTP60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTP60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTP57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTP57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTP55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTP55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTP52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTP52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTP50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTP50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTP45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTP45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTP40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTP40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTP35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTP35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTP30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTP30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTP25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTP25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTP20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTP20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTP15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTP15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTP10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTP10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTP98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTP00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 132 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTP97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTP98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTP98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTP98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTP98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTP86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 132 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTP86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 132 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTP96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTP89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 132 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTP94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTP94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTP96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTP96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTP98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATP73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 126 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATP73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 126 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATP73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 126 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTP98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETP98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTP98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTP98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTP98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTP98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTP98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs132.213 b/parm/wmo/grib2_awpgfs132.213 deleted file mode 100755 index 9276e27f23..0000000000 --- a/parm/wmo/grib2_awpgfs132.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHP99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHP85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHP70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHP50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHP40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHP30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHP25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHP20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHP15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHP10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHP99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHP85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHP70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHP50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHP40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHP30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHP25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHP20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHP15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHP10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHP99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHP85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHP70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHP50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHP40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHP30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHP25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHP20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHP15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHP10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHP99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHP85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHP70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHP50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHP40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHP30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHP85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHP70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHP50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHP25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHP99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHP99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHP85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHP85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHP70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHP70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHP50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHP50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHP40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHP40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHP30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHP30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHP25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHP25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHP20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHP20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHP15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHP15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHP10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHP10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHP98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHP00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 132 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHP97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHP98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHP98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHP98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHP98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHP86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 132 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHP86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 132 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHP89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 132 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHP98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHP98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHP98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHP98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHP98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs132.254 b/parm/wmo/grib2_awpgfs132.254 deleted file mode 100755 index 122aec6433..0000000000 --- a/parm/wmo/grib2_awpgfs132.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOP99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOP93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOP95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOP92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOP90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOP91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOP85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOP82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOP80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOP77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOP75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOP72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOP70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOP67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOP65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOP62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOP60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOP57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOP55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOP52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOP50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOP45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOP40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOP35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOP30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOP25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOP20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOP15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOP10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOP99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOP93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOP95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOP92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOP90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOP91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOP85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOP82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOP80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOP77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOP75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOP72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOP70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOP67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOP65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOP62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOP60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOP57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOP55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOP52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOP50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOP45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOP40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOP35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOP30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOP25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOP20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOP15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOP10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOP99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOP93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOP95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOP92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOP90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOP91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOP85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOP82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOP80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOP77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOP75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOP72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOP70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOP67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOP65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOP62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOP60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOP57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOP55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOP52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOP50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOP45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOP40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOP35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOP30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOP25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOP20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOP15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOP10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROP99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROP93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROP95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROP92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROP90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROP91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROP85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROP82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROP80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROP77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROP75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROP72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROP70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROP67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROP65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROP62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROP60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROP57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROP55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROP52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROP50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROP45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROP40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROP35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROP30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROP25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROP20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROP15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROP10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOP85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOP70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOP50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOP25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOP99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOP99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOP93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOP93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOP95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOP95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOP92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOP92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOP90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOP90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOP91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOP91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOP85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOP85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOP82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOP82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOP80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOP80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOP77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOP77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOP75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOP75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOP72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOP72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOP70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOP70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOP67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOP67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOP65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOP65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOP62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOP62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOP60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOP60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOP57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOP57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOP55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOP55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOP52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOP52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOP50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOP50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOP45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOP45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOP40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOP40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOP35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOP35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOP30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOP30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOP25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOP25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOP20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOP20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOP15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOP15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOP10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOP10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOP86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROP86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOP86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOP97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOP97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOP98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOP00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 132 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOP97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOP97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOP98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOP98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOP98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOP98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOP86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 132 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOP86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 132 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOP96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 132 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOP89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 132 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOP94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 132 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROP94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOP97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOP96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOP96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOP98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOP73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 126 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOP73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 126 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOP73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 126 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOP98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 132 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOP98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOP98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOP98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROP98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 132 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOP98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 132 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOP98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 132 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs138.003 b/parm/wmo/grib2_awpgfs138.003 old mode 100755 new mode 100644 index 98a5813a3a..8835cbfc72 --- a/parm/wmo/grib2_awpgfs138.003 +++ b/parm/wmo/grib2_awpgfs138.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 138 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs138.160 b/parm/wmo/grib2_awpgfs138.160 deleted file mode 100755 index ce8456a2f2..0000000000 --- a/parm/wmo/grib2_awpgfs138.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 138 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 138 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 138 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 138 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 132 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 132 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 132 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs138.161 b/parm/wmo/grib2_awpgfs138.161 deleted file mode 100755 index 2fdd4eb39a..0000000000 --- a/parm/wmo/grib2_awpgfs138.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 138 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 138 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 138 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 138 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 132 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 132 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 132 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs138.213 b/parm/wmo/grib2_awpgfs138.213 deleted file mode 100755 index 8d7cfab25e..0000000000 --- a/parm/wmo/grib2_awpgfs138.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 138 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 138 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 138 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 138 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs138.254 b/parm/wmo/grib2_awpgfs138.254 deleted file mode 100755 index f253476bc6..0000000000 --- a/parm/wmo/grib2_awpgfs138.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 138 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 138 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 138 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 138 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 138 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 138 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSOZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 132 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 132 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 132 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 138 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 138 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 138 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 138 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs144.003 b/parm/wmo/grib2_awpgfs144.003 old mode 100755 new mode 100644 index ba83e0134a..1ac08b6b5a --- a/parm/wmo/grib2_awpgfs144.003 +++ b/parm/wmo/grib2_awpgfs144.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPQ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPQ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPQ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 144 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs144.160 b/parm/wmo/grib2_awpgfs144.160 deleted file mode 100755 index 1da6232a83..0000000000 --- a/parm/wmo/grib2_awpgfs144.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGQ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGQ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGQ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGQ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGQ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGQ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGQ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGQ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGQ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGQ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGQ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGQ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGQ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGQ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGQ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGQ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGQ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGQ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGQ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGQ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGQ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGQ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGQ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGQ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGQ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGQ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGQ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGQ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGQ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGQ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGQ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGQ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGQ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGQ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGQ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGQ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGQ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGQ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGQ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGQ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGQ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGQ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGQ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGQ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGQ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGQ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGQ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGQ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGQ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGQ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGQ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGQ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGQ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGQ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGQ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGQ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGQ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGQ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGQ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGQ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGQ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGQ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGQ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGQ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGQ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGQ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGQ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGQ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGQ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGQ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGQ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGQ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGQ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGQ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGQ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGQ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGQ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGQ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGQ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGQ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGQ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGQ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGQ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGQ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGQ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGQ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGQ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGQ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGQ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGQ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGQ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGQ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGQ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGQ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGQ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGQ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGQ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGQ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGQ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGQ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGQ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGQ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGQ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGQ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGQ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGQ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGQ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGQ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGQ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGQ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGQ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGQ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGQ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGQ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGQ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGQ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGQ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGQ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGQ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGQ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGQ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGQ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGQ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGQ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGQ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGQ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGQ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGQ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGQ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGQ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGQ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGQ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGQ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGQ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGQ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGQ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGQ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGQ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGQ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGQ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGQ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGQ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGQ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGQ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGQ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGQ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGQ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGQ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGQ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGQ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGQ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGQ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGQ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGQ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGQ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGQ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGQ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGQ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGQ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGQ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGQ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGQ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGQ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGQ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGQ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGQ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGQ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGQ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGQ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGQ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGQ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGQ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGQ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGQ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGQ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGQ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGQ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGQ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGQ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGQ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 144 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGQ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGQ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGQ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGQ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGQ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGQ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 144 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGQ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 144 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGQ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGQ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 144 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGQ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGQ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGQ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGQ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGQ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGQ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 138 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGQ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 138 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGQ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 138 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGQ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGQ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGQ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGQ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGQ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGQ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGQ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs144.161 b/parm/wmo/grib2_awpgfs144.161 deleted file mode 100755 index bf7cdf09fd..0000000000 --- a/parm/wmo/grib2_awpgfs144.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTQ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTQ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTQ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTQ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTQ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTQ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTQ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTQ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTQ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTQ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTQ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTQ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTQ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTQ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTQ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTQ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTQ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTQ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTQ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTQ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTQ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTQ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTQ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTQ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTQ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTQ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTQ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTQ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTQ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTQ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTQ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTQ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTQ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTQ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTQ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTQ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTQ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTQ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTQ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTQ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTQ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTQ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTQ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTQ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTQ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTQ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTQ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTQ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTQ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTQ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTQ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTQ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTQ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTQ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTQ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTQ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTQ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTQ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTQ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTQ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTQ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTQ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTQ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTQ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTQ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTQ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTQ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTQ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTQ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTQ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTQ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTQ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTQ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTQ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTQ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTQ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTQ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTQ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTQ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTQ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTQ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTQ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTQ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTQ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTQ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTQ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTQ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTQ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTQ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTQ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTQ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTQ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTQ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTQ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTQ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTQ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTQ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTQ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTQ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTQ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTQ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTQ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTQ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTQ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTQ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTQ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTQ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTQ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTQ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTQ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTQ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTQ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTQ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTQ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTQ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTQ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTQ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTQ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTQ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTQ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTQ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTQ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTQ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTQ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTQ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTQ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTQ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTQ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTQ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTQ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTQ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTQ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTQ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTQ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTQ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTQ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTQ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTQ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTQ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTQ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTQ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTQ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTQ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTQ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTQ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTQ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTQ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTQ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTQ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTQ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTQ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTQ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTQ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTQ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTQ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTQ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTQ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTQ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTQ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTQ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTQ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTQ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTQ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTQ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTQ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTQ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTQ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTQ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTQ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTQ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTQ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTQ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTQ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTQ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTQ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTQ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTQ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTQ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTQ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTQ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 144 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTQ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTQ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTQ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTQ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTQ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTQ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 144 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTQ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 144 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTQ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTQ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 144 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTQ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTQ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTQ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTQ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTQ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATQ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 138 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATQ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 138 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATQ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 138 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTQ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETQ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTQ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTQ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTQ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTQ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTQ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs144.213 b/parm/wmo/grib2_awpgfs144.213 deleted file mode 100755 index 11c503e8ee..0000000000 --- a/parm/wmo/grib2_awpgfs144.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHQ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHQ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHQ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHQ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHQ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHQ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHQ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHQ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHQ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHQ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHQ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHQ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHQ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHQ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHQ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHQ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHQ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHQ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHQ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHQ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHQ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHQ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHQ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHQ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHQ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHQ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHQ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHQ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHQ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHQ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHQ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHQ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHQ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHQ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHQ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHQ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHQ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHQ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHQ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHQ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHQ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHQ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHQ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHQ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHQ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHQ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHQ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHQ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHQ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHQ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHQ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHQ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHQ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHQ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHQ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHQ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHQ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHQ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHQ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHQ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHQ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHQ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 144 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHQ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHQ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHQ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHQ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHQ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHQ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 144 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHQ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 144 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHQ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 144 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHQ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHQ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHQ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHQ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHQ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs144.254 b/parm/wmo/grib2_awpgfs144.254 deleted file mode 100755 index 276ac17ea8..0000000000 --- a/parm/wmo/grib2_awpgfs144.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOQ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOQ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOQ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOQ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOQ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOQ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOQ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOQ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOQ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOQ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOQ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOQ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOQ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOQ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOQ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOQ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOQ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOQ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOQ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOQ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOQ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOQ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOQ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOQ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOQ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOQ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOQ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOQ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOQ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOQ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOQ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOQ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOQ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOQ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOQ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOQ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOQ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOQ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOQ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOQ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOQ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOQ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOQ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOQ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOQ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOQ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOQ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOQ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOQ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOQ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOQ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOQ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOQ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOQ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOQ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOQ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOQ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOQ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOQ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOQ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOQ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOQ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOQ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOQ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOQ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOQ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOQ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOQ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOQ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOQ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOQ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOQ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOQ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOQ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOQ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOQ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOQ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOQ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOQ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOQ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOQ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOQ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOQ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOQ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOQ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOQ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOQ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROQ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROQ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROQ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROQ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROQ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROQ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROQ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROQ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROQ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROQ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROQ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROQ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROQ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROQ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROQ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROQ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROQ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROQ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROQ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROQ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROQ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROQ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROQ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROQ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROQ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROQ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROQ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROQ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROQ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOQ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOQ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOQ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOQ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOQ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOQ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOQ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOQ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOQ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOQ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOQ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOQ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOQ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOQ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOQ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOQ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOQ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOQ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOQ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOQ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOQ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOQ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOQ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOQ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOQ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOQ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOQ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOQ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOQ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOQ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOQ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOQ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOQ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOQ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOQ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOQ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOQ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOQ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOQ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOQ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOQ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOQ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOQ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOQ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOQ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOQ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOQ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOQ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOQ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOQ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOQ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOQ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOQ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOQ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOQ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOQ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOQ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOQ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOQ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOQ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOQ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOQ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOQ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROQ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOQ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOQ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOQ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOQ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOQ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 144 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOQ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOQ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOQ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOQ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOQ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOQ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOQ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 144 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOQ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 144 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOQ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 144 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOQ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 144 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOQ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 144 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROQ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOQ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOQ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOQ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOQ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOQ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 138 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOQ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 138 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOQ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 138 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOQ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 144 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOQ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOQ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOQ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROQ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 144 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOQ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 144 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOQ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 144 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs150.003 b/parm/wmo/grib2_awpgfs150.003 old mode 100755 new mode 100644 index 67fce65ebd..b2162cced0 --- a/parm/wmo/grib2_awpgfs150.003 +++ b/parm/wmo/grib2_awpgfs150.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 150 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs150.160 b/parm/wmo/grib2_awpgfs150.160 deleted file mode 100755 index d6fe71646d..0000000000 --- a/parm/wmo/grib2_awpgfs150.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 150 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 150 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 150 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 150 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 144 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 144 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 144 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs150.161 b/parm/wmo/grib2_awpgfs150.161 deleted file mode 100755 index f57c99b506..0000000000 --- a/parm/wmo/grib2_awpgfs150.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 150 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 150 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 150 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 150 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 144 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 144 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 144 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs150.213 b/parm/wmo/grib2_awpgfs150.213 deleted file mode 100755 index a966e70527..0000000000 --- a/parm/wmo/grib2_awpgfs150.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 150 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 150 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 150 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 150 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs150.254 b/parm/wmo/grib2_awpgfs150.254 deleted file mode 100755 index 69a88e9b4a..0000000000 --- a/parm/wmo/grib2_awpgfs150.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 150 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 150 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 150 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 150 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 150 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 150 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSOZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 144 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 144 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 144 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 150 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 150 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 150 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 150 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs156.003 b/parm/wmo/grib2_awpgfs156.003 old mode 100755 new mode 100644 index 1ca86738dd..c357fb88cc --- a/parm/wmo/grib2_awpgfs156.003 +++ b/parm/wmo/grib2_awpgfs156.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPR92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPR92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPR92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 156 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs156.160 b/parm/wmo/grib2_awpgfs156.160 deleted file mode 100755 index f87076841b..0000000000 --- a/parm/wmo/grib2_awpgfs156.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGR99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGR93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGR95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGR92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGR90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGR91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGR85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGR82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGR80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGR77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGR75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGR72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGR70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGR67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGR65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGR62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGR60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGR57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGR55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGR52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGR50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGR45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGR40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGR35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGR30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGR25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGR20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGR15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGR10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGR99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGR93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGR95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGR92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGR90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGR91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGR85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGR82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGR80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGR77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGR75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGR72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGR70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGR67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGR65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGR62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGR60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGR57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGR55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGR52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGR50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGR45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGR40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGR35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGR30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGR25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGR20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGR15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGR10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGR99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGR93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGR95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGR92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGR90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGR91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGR85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGR82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGR80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGR77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGR75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGR72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGR70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGR67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGR65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGR62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGR60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGR57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGR55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGR52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGR50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGR45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGR40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGR35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGR30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGR25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGR20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGR15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGR10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGR99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGR93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGR95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGR92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGR90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGR91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGR85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGR82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGR80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGR77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGR75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGR72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGR70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGR67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGR65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGR62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGR60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGR57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGR55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGR52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGR50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGR45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGR40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGR35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGR30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGR25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGR20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGR15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGR10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGR85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGR70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGR50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGR25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGR99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGR99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGR93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGR93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGR95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGR95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGR92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGR92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGR90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGR90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGR91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGR91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGR85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGR85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGR82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGR82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGR80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGR80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGR77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGR77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGR75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGR75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGR72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGR72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGR70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGR70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGR67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGR67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGR65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGR65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGR62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGR62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGR60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGR60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGR57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGR57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGR55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGR55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGR52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGR52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGR50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGR50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGR45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGR45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGR40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGR40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGR35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGR35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGR30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGR30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGR25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGR25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGR20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGR20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGR15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGR15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGR10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGR10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGR98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGR00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 156 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGR97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGR98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGR98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGR98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGR98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGR86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 156 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGR86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 156 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGR96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGR89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 156 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGR94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGR94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGR96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGR96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGR98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGR73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 150 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGR73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 150 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGR73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 150 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGR98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGR98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGR98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGR98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGR98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGR98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGR98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGR98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGR98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGR98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs156.161 b/parm/wmo/grib2_awpgfs156.161 deleted file mode 100755 index 44904cb2bd..0000000000 --- a/parm/wmo/grib2_awpgfs156.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTR99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTR93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTR95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTR92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTR90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTR91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTR85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTR82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTR80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTR77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTR75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTR72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTR70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTR67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTR65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTR62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTR60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTR57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTR55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTR52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTR50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTR45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTR40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTR35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTR30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTR25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTR20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTR15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTR10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTR99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTR93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTR95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTR92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTR90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTR91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTR85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTR82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTR80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTR77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTR75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTR72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTR70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTR67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTR65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTR62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTR60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTR57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTR55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTR52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTR50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTR45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTR40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTR35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTR30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTR25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTR20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTR15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTR10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTR99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTR93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTR95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTR92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTR90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTR91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTR85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTR82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTR80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTR77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTR75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTR72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTR70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTR67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTR65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTR62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTR60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTR57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTR55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTR52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTR50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTR45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTR40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTR35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTR30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTR25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTR20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTR15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTR10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTR99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTR93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTR95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTR92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTR90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTR91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTR85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTR82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTR80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTR77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTR75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTR72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTR70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTR67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTR65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTR62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTR60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTR57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTR55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTR52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTR50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTR45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTR40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTR35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTR30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTR25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTR20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTR15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTR10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTR85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTR70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTR50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTR25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTR99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTR99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTR93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTR93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTR95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTR95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTR92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTR92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTR90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTR90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTR91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTR91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTR85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTR85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTR82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTR82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTR80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTR80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTR77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTR77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTR75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTR75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTR72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTR72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTR70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTR70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTR67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTR67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTR65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTR65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTR62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTR62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTR60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTR60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTR57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTR57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTR55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTR55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTR52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTR52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTR50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTR50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTR45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTR45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTR40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTR40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTR35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTR35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTR30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTR30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTR25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTR25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTR20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTR20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTR15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTR15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTR10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTR10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTR98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTR00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 156 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTR97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTR98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTR98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTR98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTR98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTR86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 156 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTR86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 156 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTR96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTR89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 156 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTR94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTR94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTR96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTR96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTR98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATR73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 150 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATR73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 150 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATR73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 150 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTR98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETR98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTR98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTR98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTR98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTR98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTR98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTR98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTR98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTR98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs156.213 b/parm/wmo/grib2_awpgfs156.213 deleted file mode 100755 index 7dc461ce50..0000000000 --- a/parm/wmo/grib2_awpgfs156.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHR99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHR85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHR70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHR50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHR40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHR30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHR25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHR20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHR15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHR10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHR99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHR85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHR70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHR50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHR40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHR30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHR25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHR20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHR15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHR10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHR99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHR85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHR70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHR50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHR40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHR30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHR25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHR20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHR15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHR10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHR99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHR85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHR70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHR50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHR40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHR30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHR85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHR70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHR50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHR25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHR99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHR99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHR85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHR85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHR70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHR70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHR50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHR50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHR40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHR40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHR30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHR30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHR25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHR25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHR20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHR20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHR15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHR15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHR10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHR10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHR98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHR00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 156 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHR97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHR98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHR98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHR98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHR98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHR86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 156 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHR86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 156 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHR89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 156 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHR98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHR98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHR98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHR98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHR98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs156.254 b/parm/wmo/grib2_awpgfs156.254 deleted file mode 100755 index 26528bfc62..0000000000 --- a/parm/wmo/grib2_awpgfs156.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOR99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOR93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOR95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOR92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOR90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOR91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOR85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOR82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOR80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOR77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOR75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOR72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOR70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOR67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOR65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOR62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOR60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOR57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOR55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOR52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOR50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOR45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOR40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOR35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOR30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOR25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOR20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOR15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOR10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOR99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOR93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOR95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOR92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOR90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOR91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOR85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOR82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOR80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOR77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOR75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOR72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOR70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOR67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOR65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOR62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOR60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOR57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOR55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOR52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOR50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOR45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOR40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOR35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOR30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOR25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOR20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOR15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOR10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOR99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOR93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOR95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOR92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOR90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOR91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOR85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOR82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOR80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOR77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOR75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOR72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOR70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOR67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOR65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOR62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOR60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOR57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOR55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOR52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOR50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOR45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOR40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOR35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOR30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOR25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOR20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOR15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOR10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROR99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROR93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROR95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROR92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROR90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROR91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROR85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROR82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROR80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROR77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROR75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROR72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROR70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROR67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROR65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROR62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROR60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROR57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROR55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROR52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROR50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROR45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROR40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROR35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROR30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROR25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROR20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROR15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROR10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOR85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOR70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOR50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOR25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOR99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOR99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOR93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOR93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOR95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOR95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOR92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOR92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOR90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOR90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOR91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOR91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOR85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOR85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOR82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOR82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOR80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOR80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOR77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOR77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOR75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOR75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOR72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOR72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOR70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOR70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOR67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOR67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOR65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOR65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOR62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOR62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOR60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOR60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOR57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOR57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOR55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOR55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOR52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOR52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOR50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOR50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOR45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOR45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOR40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOR40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOR35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOR35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOR30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOR30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOR25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOR25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOR20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOR20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOR15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOR15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOR10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOR10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOR86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROR86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOR86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOR97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOR97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOR98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOR00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 156 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOR97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOR97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOR98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOR98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOR98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOR98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOR86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 156 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOR86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 156 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOR96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 156 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOR89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 156 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOR94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 156 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROR94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOR97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOR96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOR96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOR98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOR73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 150 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOR73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 150 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOR73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 150 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOR98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 156 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOR98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOR98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOR98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOR98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOR98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOR98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROR98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 156 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOR98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 156 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOR98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 156 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs162.003 b/parm/wmo/grib2_awpgfs162.003 old mode 100755 new mode 100644 index 3f6efb6e22..3cafb1e7b8 --- a/parm/wmo/grib2_awpgfs162.003 +++ b/parm/wmo/grib2_awpgfs162.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 162 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs162.160 b/parm/wmo/grib2_awpgfs162.160 deleted file mode 100755 index 302125d340..0000000000 --- a/parm/wmo/grib2_awpgfs162.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 162 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 162 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 162 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 162 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 156 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 156 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 156 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs162.161 b/parm/wmo/grib2_awpgfs162.161 deleted file mode 100755 index 2e210fcb6c..0000000000 --- a/parm/wmo/grib2_awpgfs162.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 162 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 162 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 162 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 162 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 156 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 156 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 156 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs162.213 b/parm/wmo/grib2_awpgfs162.213 deleted file mode 100755 index c014383c80..0000000000 --- a/parm/wmo/grib2_awpgfs162.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 162 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 162 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 162 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 162 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs162.254 b/parm/wmo/grib2_awpgfs162.254 deleted file mode 100755 index b95351cfaf..0000000000 --- a/parm/wmo/grib2_awpgfs162.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 162 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 162 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 162 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 162 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 162 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 162 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSOZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 156 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 156 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 156 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 162 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 162 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 162 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 162 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs168.003 b/parm/wmo/grib2_awpgfs168.003 old mode 100755 new mode 100644 index 2f9e5913d6..29c3278f35 --- a/parm/wmo/grib2_awpgfs168.003 +++ b/parm/wmo/grib2_awpgfs168.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPS92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPS92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPS92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 168 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs168.160 b/parm/wmo/grib2_awpgfs168.160 deleted file mode 100755 index 9ebee86421..0000000000 --- a/parm/wmo/grib2_awpgfs168.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGS99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGS93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGS95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGS92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGS90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGS91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGS85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGS82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGS80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGS77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGS75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGS72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGS70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGS67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGS65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGS62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGS60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGS57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGS55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGS52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGS50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGS45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGS40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGS35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGS30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGS25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGS20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGS15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGS10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGS99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGS93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGS95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGS92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGS90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGS91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGS85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGS82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGS80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGS77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGS75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGS72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGS70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGS67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGS65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGS62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGS60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGS57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGS55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGS52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGS50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGS45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGS40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGS35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGS30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGS25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGS20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGS15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGS10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGS99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGS93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGS95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGS92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGS90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGS91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGS85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGS82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGS80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGS77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGS75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGS72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGS70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGS67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGS65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGS62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGS60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGS57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGS55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGS52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGS50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGS45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGS40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGS35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGS30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGS25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGS20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGS15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGS10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGS99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGS93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGS95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGS92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGS90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGS91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGS85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGS82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGS80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGS77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGS75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGS72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGS70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGS67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGS65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGS62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGS60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGS57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGS55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGS52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGS50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGS45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGS40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGS35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGS30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGS25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGS20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGS15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGS10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGS85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGS70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGS50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGS25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGS99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGS99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGS93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGS93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGS95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGS95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGS92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGS92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGS90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGS90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGS91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGS91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGS85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGS85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGS82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGS82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGS80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGS80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGS77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGS77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGS75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGS75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGS72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGS72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGS70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGS70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGS67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGS67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGS65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGS65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGS62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGS62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGS60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGS60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGS57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGS57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGS55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGS55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGS52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGS52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGS50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGS50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGS45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGS45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGS40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGS40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGS35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGS35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGS30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGS30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGS25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGS25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGS20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGS20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGS15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGS15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGS10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGS10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGS98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGS00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 168 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGS97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGS98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGS98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGS98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGS98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGS86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 168 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGS86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 168 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGS96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGS89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 168 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGS94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGS94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGS96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGS96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGS98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGS73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 162 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGS73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 162 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGS73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 162 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGS98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGS98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGS98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGS98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGS98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGS98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGS98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGS98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGS98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGS98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs168.161 b/parm/wmo/grib2_awpgfs168.161 deleted file mode 100755 index f70e051830..0000000000 --- a/parm/wmo/grib2_awpgfs168.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTS99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTS93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTS95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTS92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTS90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTS91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTS85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTS82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTS80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTS77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTS75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTS72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTS70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTS67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTS65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTS62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTS60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTS57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTS55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTS52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTS50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTS45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTS40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTS35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTS30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTS25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTS20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTS15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTS10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTS99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTS93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTS95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTS92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTS90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTS91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTS85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTS82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTS80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTS77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTS75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTS72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTS70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTS67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTS65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTS62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTS60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTS57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTS55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTS52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTS50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTS45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTS40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTS35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTS30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTS25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTS20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTS15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTS10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTS99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTS93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTS95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTS92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTS90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTS91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTS85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTS82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTS80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTS77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTS75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTS72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTS70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTS67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTS65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTS62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTS60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTS57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTS55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTS52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTS50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTS45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTS40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTS35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTS30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTS25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTS20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTS15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTS10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTS99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTS93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTS95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTS92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTS90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTS91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTS85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTS82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTS80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTS77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTS75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTS72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTS70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTS67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTS65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTS62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTS60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTS57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTS55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTS52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTS50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTS45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTS40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTS35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTS30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTS25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTS20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTS15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTS10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTS85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTS70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTS50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTS25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTS99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTS99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTS93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTS93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTS95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTS95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTS92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTS92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTS90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTS90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTS91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTS91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTS85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTS85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTS82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTS82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTS80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTS80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTS77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTS77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTS75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTS75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTS72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTS72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTS70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTS70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTS67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTS67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTS65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTS65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTS62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTS62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTS60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTS60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTS57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTS57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTS55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTS55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTS52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTS52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTS50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTS50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTS45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTS45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTS40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTS40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTS35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTS35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTS30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTS30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTS25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTS25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTS20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTS20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTS15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTS15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTS10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTS10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTS98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTS00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 168 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTS97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTS98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTS98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTS98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTS98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTS86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 168 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTS86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 168 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTS96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTS89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 168 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTS94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTS94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTS96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTS96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTS98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATS73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 162 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATS73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 162 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATS73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 162 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTS98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETS98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTS98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTS98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTS98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTS98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTS98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTS98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTS98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTS98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs168.213 b/parm/wmo/grib2_awpgfs168.213 deleted file mode 100755 index 814d878e84..0000000000 --- a/parm/wmo/grib2_awpgfs168.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHS99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHS85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHS70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHS50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHS40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHS30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHS25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHS20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHS15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHS10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHS99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHS85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHS70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHS50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHS40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHS30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHS25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHS20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHS15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHS10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHS99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHS85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHS70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHS50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHS40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHS30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHS25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHS20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHS15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHS10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHS99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHS85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHS70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHS50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHS40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHS30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHS85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHS70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHS50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHS25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHS99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHS99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHS85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHS85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHS70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHS70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHS50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHS50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHS40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHS40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHS30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHS30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHS25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHS25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHS20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHS20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHS15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHS15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHS10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHS10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHS98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHS00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 168 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHS97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHS98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHS98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHS98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHS98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHS86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 168 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHS86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 168 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHS89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 168 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHS98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHS98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHS98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHS98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHS98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs168.254 b/parm/wmo/grib2_awpgfs168.254 deleted file mode 100755 index 2bf43066a5..0000000000 --- a/parm/wmo/grib2_awpgfs168.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOS99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOS93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOS95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOS92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOS90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOS91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOS85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOS82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOS80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOS77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOS75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOS72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOS70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOS67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOS65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOS62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOS60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOS57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOS55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOS52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOS50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOS45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOS40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOS35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOS30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOS25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOS20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOS15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOS10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOS99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOS93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOS95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOS92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOS90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOS91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOS85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOS82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOS80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOS77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOS75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOS72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOS70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOS67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOS65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOS62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOS60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOS57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOS55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOS52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOS50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOS45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOS40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOS35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOS30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOS25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOS20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOS15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOS10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOS99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOS93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOS95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOS92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOS90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOS91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOS85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOS82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOS80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOS77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOS75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOS72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOS70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOS67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOS65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOS62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOS60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOS57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOS55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOS52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOS50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOS45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOS40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOS35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOS30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOS25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOS20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOS15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOS10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROS99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROS93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROS95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROS92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROS90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROS91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROS85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROS82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROS80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROS77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROS75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROS72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROS70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROS67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROS65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROS62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROS60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROS57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROS55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROS52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROS50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROS45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROS40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROS35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROS30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROS25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROS20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROS15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROS10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOS85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOS70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOS50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOS25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOS99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOS99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOS93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOS93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOS95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOS95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOS92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOS92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOS90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOS90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOS91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOS91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOS85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOS85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOS82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOS82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOS80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOS80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOS77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOS77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOS75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOS75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOS72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOS72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOS70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOS70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOS67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOS67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOS65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOS65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOS62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOS62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOS60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOS60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOS57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOS57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOS55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOS55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOS52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOS52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOS50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOS50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOS45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOS45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOS40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOS40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOS35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOS35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOS30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOS30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOS25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOS25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOS20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOS20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOS15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOS15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOS10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOS10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOS86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROS86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOS86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOS97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOS97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOS98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOS00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 168 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOS97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOS97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOS98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOS98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOS98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOS98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOS86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 168 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOS86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 168 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOS96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 168 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOS89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 168 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOS94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 168 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROS94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOS97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOS96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOS96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOS98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOS73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 162 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOS73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 162 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOS73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 162 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOS98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 168 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOS98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOS98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOS98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOS98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOS98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOS98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROS98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 168 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOS98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 168 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOS98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 168 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs174.003 b/parm/wmo/grib2_awpgfs174.003 old mode 100755 new mode 100644 index eb54a49f35..c6b9c97775 --- a/parm/wmo/grib2_awpgfs174.003 +++ b/parm/wmo/grib2_awpgfs174.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 174 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs174.160 b/parm/wmo/grib2_awpgfs174.160 deleted file mode 100755 index 2c23e09fd7..0000000000 --- a/parm/wmo/grib2_awpgfs174.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 174 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 174 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 174 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 174 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSGZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 168 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 168 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 168 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs174.161 b/parm/wmo/grib2_awpgfs174.161 deleted file mode 100755 index b2a07a3dd1..0000000000 --- a/parm/wmo/grib2_awpgfs174.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 174 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 174 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 174 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 174 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSTZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 168 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 168 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 168 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs174.213 b/parm/wmo/grib2_awpgfs174.213 deleted file mode 100755 index 74b443af14..0000000000 --- a/parm/wmo/grib2_awpgfs174.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 174 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 174 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 174 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 174 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs174.254 b/parm/wmo/grib2_awpgfs174.254 deleted file mode 100755 index 7f86944a47..0000000000 --- a/parm/wmo/grib2_awpgfs174.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 174 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 174 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 174 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 174 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 174 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 174 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='MSOZ98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 168 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 168 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 168 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 174 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 174 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 174 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 174 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs180.003 b/parm/wmo/grib2_awpgfs180.003 old mode 100755 new mode 100644 index 47670ca178..dce38df27f --- a/parm/wmo/grib2_awpgfs180.003 +++ b/parm/wmo/grib2_awpgfs180.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPT92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 180 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs180.160 b/parm/wmo/grib2_awpgfs180.160 deleted file mode 100755 index 23c5747197..0000000000 --- a/parm/wmo/grib2_awpgfs180.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGT99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGT93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGT95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGT92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGT90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGT91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGT85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGT82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGT80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGT77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGT75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGT72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGT70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGT67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGT65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGT62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGT60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGT57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGT55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGT52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGT50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGT45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGT40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGT35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGT30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGT25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGT20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGT15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGT10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGT99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGT93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGT95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGT92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGT90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGT91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGT85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGT82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGT80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGT77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGT75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGT72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGT70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGT67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGT65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGT62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGT60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGT57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGT55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGT52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGT50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGT45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGT40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGT35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGT30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGT25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGT20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGT15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGT10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGT99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGT93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGT95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGT92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGT90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGT91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGT85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGT82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGT80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGT77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGT75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGT72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGT70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGT67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGT65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGT62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGT60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGT57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGT55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGT52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGT50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGT45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGT40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGT35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGT30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGT25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGT20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGT15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGT10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGT99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGT93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGT95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGT92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGT90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGT91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGT85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGT82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGT80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGT77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGT75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGT72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGT70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGT67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGT65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGT62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGT60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGT57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGT55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGT52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGT50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGT45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGT40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGT35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGT30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGT25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGT20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGT15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGT10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGT85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGT70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGT50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGT25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGT98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGT00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 180 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGT97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGT98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGT98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGT98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGT98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGT86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 180 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGT86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 180 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGT96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGT89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 180 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGT94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGT94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGT98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 174 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 174 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 174 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGT98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGT98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGT98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGT98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGT98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs180.161 b/parm/wmo/grib2_awpgfs180.161 deleted file mode 100755 index dabcf34055..0000000000 --- a/parm/wmo/grib2_awpgfs180.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTT99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTT93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTT95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTT92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTT90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTT91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTT85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTT82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTT80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTT77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTT75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTT72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTT70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTT67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTT65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTT62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTT60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTT57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTT55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTT52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTT50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTT45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTT40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTT35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTT30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTT25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTT20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTT15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTT10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTT99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTT93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTT95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTT92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTT90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTT91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTT85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTT82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTT80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTT77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTT75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTT72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTT70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTT67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTT65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTT62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTT60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTT57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTT55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTT52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTT50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTT45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTT40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTT35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTT30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTT25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTT20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTT15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTT10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTT99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTT93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTT95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTT92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTT90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTT91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTT85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTT82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTT80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTT77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTT75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTT72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTT70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTT67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTT65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTT62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTT60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTT57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTT55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTT52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTT50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTT45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTT40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTT35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTT30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTT25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTT20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTT15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTT10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTT99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTT93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTT95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTT92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTT90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTT91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTT85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTT82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTT80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTT77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTT75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTT72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTT70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTT67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTT65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTT62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTT60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTT57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTT55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTT52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTT50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTT45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTT40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTT35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTT30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTT25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTT20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTT15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTT10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTT85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTT70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTT50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTT25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTT98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTT00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 180 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTT97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTT98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTT98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTT98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTT98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTT86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 180 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTT86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 180 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTT96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTT89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 180 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTT94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTT94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTT98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 174 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 174 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 174 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTT98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETT98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTT98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTT98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTT98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs180.213 b/parm/wmo/grib2_awpgfs180.213 deleted file mode 100755 index fa12e705f6..0000000000 --- a/parm/wmo/grib2_awpgfs180.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHT99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHT85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHT70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHT50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHT40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHT30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHT25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHT20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHT15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHT10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHT99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHT85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHT70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHT50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHT40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHT30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHT25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHT20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHT15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHT10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHT99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHT85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHT70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHT50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHT40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHT30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHT25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHT20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHT15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHT10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHT99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHT85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHT70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHT50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHT40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHT30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHT85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHT70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHT50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHT25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHT98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHT00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 180 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHT97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHT98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHT98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHT98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHT98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHT86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 180 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHT86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 180 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHT89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 180 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHT98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHT98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHT98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs180.254 b/parm/wmo/grib2_awpgfs180.254 deleted file mode 100755 index d772c4ad6c..0000000000 --- a/parm/wmo/grib2_awpgfs180.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOT99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOT93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOT95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOT92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOT90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOT91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOT85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOT82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOT80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOT77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOT75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOT72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOT70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOT67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOT65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOT62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOT60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOT57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOT55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOT52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOT50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOT45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOT40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOT35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOT30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOT25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOT20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOT15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOT10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOT99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOT93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOT95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOT92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOT90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOT91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOT85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOT82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOT80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOT77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOT75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOT72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOT70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOT67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOT65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOT62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOT60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOT57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOT55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOT52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOT50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOT45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOT40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOT35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOT30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOT25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOT20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOT15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOT10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOT99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOT93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOT95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOT92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOT90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOT91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOT85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOT82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOT80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOT77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOT75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOT72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOT70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOT67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOT65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOT62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOT60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOT57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOT55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOT52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOT50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOT45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOT40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOT35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOT30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOT25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOT20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOT15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOT10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROT99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROT93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROT95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROT92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROT90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROT91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROT85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROT82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROT80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROT77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROT75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROT72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROT70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROT67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROT65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROT62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROT60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROT57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROT55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROT52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROT50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROT45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROT40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROT35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROT30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROT25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROT20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROT15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROT10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOT85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOT70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOT50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOT25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOT99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOT93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOT95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOT92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOT90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOT91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOT85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOT82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOT80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOT77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOT75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOT72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOT70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOT67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOT65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOT62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOT60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOT57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOT55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOT52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOT50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOT45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOT40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOT35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOT30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOT25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOT20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOT15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOT10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOT86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROT86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOT86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOT97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOT97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOT98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOT00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 180 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOT97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOT97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOT98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOT98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOT98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOT98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOT86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 180 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOT86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 180 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOT96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 180 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOT89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 180 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOT94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 180 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROT94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOT97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOT96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOT98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 174 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 174 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOT73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 174 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOT98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 180 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOT98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOT98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOT98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROT98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 180 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 180 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOT98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 180 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs186.003 b/parm/wmo/grib2_awpgfs186.003 old mode 100755 new mode 100644 index 10f3239a15..370b9ce6e8 --- a/parm/wmo/grib2_awpgfs186.003 +++ b/parm/wmo/grib2_awpgfs186.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 186 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs186.160 b/parm/wmo/grib2_awpgfs186.160 deleted file mode 100755 index 3b7053546b..0000000000 --- a/parm/wmo/grib2_awpgfs186.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 186 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 186 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 186 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 186 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 180 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 180 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 180 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs186.161 b/parm/wmo/grib2_awpgfs186.161 deleted file mode 100755 index 7d96ca8311..0000000000 --- a/parm/wmo/grib2_awpgfs186.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 186 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 186 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 186 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 186 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 180 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 180 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 180 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs186.213 b/parm/wmo/grib2_awpgfs186.213 deleted file mode 100755 index 4654e0a1eb..0000000000 --- a/parm/wmo/grib2_awpgfs186.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 186 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 186 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 186 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 186 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs186.254 b/parm/wmo/grib2_awpgfs186.254 deleted file mode 100755 index d803984ddc..0000000000 --- a/parm/wmo/grib2_awpgfs186.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 186 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 186 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 186 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 186 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 186 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 186 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 180 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 180 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 180 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 186 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 186 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 186 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 186 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs192.003 b/parm/wmo/grib2_awpgfs192.003 old mode 100755 new mode 100644 index d3a9638d5e..0a5bd27aca --- a/parm/wmo/grib2_awpgfs192.003 +++ b/parm/wmo/grib2_awpgfs192.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPU92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 192 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs192.160 b/parm/wmo/grib2_awpgfs192.160 deleted file mode 100755 index 2988ed94da..0000000000 --- a/parm/wmo/grib2_awpgfs192.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGU99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGU93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGU95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGU92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGU90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGU91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGU85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGU82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGU80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGU77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGU75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGU72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGU70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGU67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGU65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGU62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGU60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGU57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGU55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGU52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGU50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGU45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGU40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGU35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGU30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGU25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGU20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGU15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGU10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGU99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGU93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGU95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGU92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGU90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGU91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGU85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGU82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGU80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGU77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGU75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGU72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGU70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGU67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGU65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGU62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGU60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGU57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGU55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGU52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGU50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGU45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGU40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGU35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGU30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGU25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGU20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGU15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGU10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGU99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGU93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGU95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGU92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGU90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGU91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGU85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGU82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGU80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGU77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGU75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGU72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGU70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGU67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGU65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGU62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGU60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGU57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGU55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGU52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGU50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGU45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGU40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGU35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGU30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGU25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGU20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGU15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGU10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGU99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGU93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGU95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGU92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGU90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGU91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGU85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGU82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGU80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGU77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGU75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGU72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGU70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGU67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGU65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGU62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGU60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGU57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGU55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGU52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGU50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGU45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGU40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGU35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGU30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGU25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGU20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGU15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGU10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGU85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGU70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGU50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGU25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGU98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGU00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 192 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGU97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGU98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGU98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGU98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGU98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGU86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 192 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGU86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 192 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGU96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGU89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 192 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGU94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGU94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 186 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 186 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 186 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGU98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGU98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGU98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGU98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGU98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs192.161 b/parm/wmo/grib2_awpgfs192.161 deleted file mode 100755 index f0483ce654..0000000000 --- a/parm/wmo/grib2_awpgfs192.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTU99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTU93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTU95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTU92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTU90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTU91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTU85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTU82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTU80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTU77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTU75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTU72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTU70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTU67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTU65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTU62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTU60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTU57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTU55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTU52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTU50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTU45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTU40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTU35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTU30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTU25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTU20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTU15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTU10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTU99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTU93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTU95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTU92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTU90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTU91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTU85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTU82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTU80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTU77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTU75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTU72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTU70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTU67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTU65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTU62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTU60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTU57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTU55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTU52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTU50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTU45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTU40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTU35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTU30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTU25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTU20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTU15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTU10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTU99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTU93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTU95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTU92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTU90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTU91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTU85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTU82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTU80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTU77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTU75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTU72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTU70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTU67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTU65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTU62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTU60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTU57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTU55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTU52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTU50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTU45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTU40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTU35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTU30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTU25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTU20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTU15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTU10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTU99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTU93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTU95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTU92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTU90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTU91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTU85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTU82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTU80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTU77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTU75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTU72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTU70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTU67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTU65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTU62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTU60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTU57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTU55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTU52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTU50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTU45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTU40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTU35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTU30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTU25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTU20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTU15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTU10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTU85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTU70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTU50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTU25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTU98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTU00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 192 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTU97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTU98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTU98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTU98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTU98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTU86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 192 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTU86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 192 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTU96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTU89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 192 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTU94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTU94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 186 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 186 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 186 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTU98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETU98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTU98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTU98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTU98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs192.213 b/parm/wmo/grib2_awpgfs192.213 deleted file mode 100755 index 94e06b1ea8..0000000000 --- a/parm/wmo/grib2_awpgfs192.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHU99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHU85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHU70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHU50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHU40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHU30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHU25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHU20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHU15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHU10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHU99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHU85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHU70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHU50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHU40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHU30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHU25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHU20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHU15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHU10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHU99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHU85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHU70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHU50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHU40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHU30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHU25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHU20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHU15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHU10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHU99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHU85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHU70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHU50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHU40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHU30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHU85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHU70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHU50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHU25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHU98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHU00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 192 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHU97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHU98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHU98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHU98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHU98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHU86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 192 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHU86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 192 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHU89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 192 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHU98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHU98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHU98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs192.254 b/parm/wmo/grib2_awpgfs192.254 deleted file mode 100755 index e1aec500a2..0000000000 --- a/parm/wmo/grib2_awpgfs192.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOU99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOU93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOU95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOU92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOU90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOU91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOU85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOU82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOU80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOU77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOU75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOU72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOU70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOU67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOU65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOU62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOU60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOU57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOU55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOU52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOU50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOU45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOU40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOU35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOU30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOU25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOU20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOU15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOU10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOU99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOU93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOU95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOU92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOU90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOU91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOU85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOU82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOU80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOU77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOU75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOU72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOU70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOU67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOU65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOU62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOU60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOU57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOU55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOU52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOU50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOU45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOU40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOU35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOU30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOU25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOU20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOU15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOU10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOU99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOU93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOU95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOU92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOU90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOU91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOU85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOU82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOU80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOU77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOU75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOU72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOU70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOU67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOU65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOU62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOU60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOU57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOU55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOU52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOU50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOU45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOU40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOU35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOU30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOU25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOU20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOU15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOU10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROU99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROU93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROU95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROU92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROU90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROU91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROU85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROU82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROU80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROU77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROU75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROU72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROU70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROU67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROU65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROU62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROU60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROU57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROU55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROU52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROU50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROU45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROU40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROU35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROU30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROU25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROU20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROU15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROU10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOU85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOU70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOU50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOU25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOU99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOU93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOU95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOU92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOU90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOU91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOU85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOU82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOU80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOU77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOU75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOU72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOU70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOU67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOU65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOU62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOU60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOU57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOU55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOU52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOU50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOU45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOU40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOU35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOU30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOU25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOU20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOU15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOU10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOU86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROU86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOU86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOU97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOU97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOU98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOU00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 192 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOU97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOU97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOU98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOU98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOU98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOU98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOU86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 192 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOU86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 192 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOU96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 192 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOU89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 192 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOU94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 192 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROU94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOU97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOU96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 186 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 186 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOU73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 186 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOU98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 192 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOU98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOU98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOU98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROU98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 192 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 192 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOU98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 192 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs198.003 b/parm/wmo/grib2_awpgfs198.003 old mode 100755 new mode 100644 index 9b587fb043..87036abba8 --- a/parm/wmo/grib2_awpgfs198.003 +++ b/parm/wmo/grib2_awpgfs198.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 198 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs198.160 b/parm/wmo/grib2_awpgfs198.160 deleted file mode 100755 index 66de20b74a..0000000000 --- a/parm/wmo/grib2_awpgfs198.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 198 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 198 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 198 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 198 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 192 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 192 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 192 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs198.161 b/parm/wmo/grib2_awpgfs198.161 deleted file mode 100755 index 61d0c65af1..0000000000 --- a/parm/wmo/grib2_awpgfs198.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 198 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 198 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 198 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 198 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 192 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 192 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 192 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs198.213 b/parm/wmo/grib2_awpgfs198.213 deleted file mode 100755 index 23a2145ddd..0000000000 --- a/parm/wmo/grib2_awpgfs198.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 198 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 198 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 198 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 198 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs198.254 b/parm/wmo/grib2_awpgfs198.254 deleted file mode 100755 index f2d5a6404c..0000000000 --- a/parm/wmo/grib2_awpgfs198.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 198 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 198 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 198 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 198 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 198 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 198 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 192 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 192 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 192 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 198 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 198 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 198 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 198 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs204.003 b/parm/wmo/grib2_awpgfs204.003 old mode 100755 new mode 100644 index 38551e7392..abf45424ea --- a/parm/wmo/grib2_awpgfs204.003 +++ b/parm/wmo/grib2_awpgfs204.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPV92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 204 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs204.160 b/parm/wmo/grib2_awpgfs204.160 deleted file mode 100755 index f2448511a7..0000000000 --- a/parm/wmo/grib2_awpgfs204.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGV99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGV93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGV95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGV92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGV90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGV91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGV85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGV82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGV80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGV77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGV75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGV72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGV70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGV67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGV65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGV62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGV60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGV57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGV55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGV52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGV50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGV45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGV40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGV35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGV30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGV25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGV20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGV15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGV10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGV99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGV93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGV95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGV92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGV90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGV91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGV85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGV82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGV80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGV77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGV75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGV72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGV70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGV67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGV65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGV62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGV60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGV57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGV55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGV52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGV50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGV45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGV40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGV35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGV30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGV25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGV20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGV15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGV10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGV99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGV93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGV95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGV92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGV90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGV91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGV85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGV82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGV80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGV77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGV75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGV72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGV70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGV67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGV65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGV62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGV60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGV57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGV55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGV52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGV50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGV45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGV40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGV35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGV30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGV25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGV20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGV15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGV10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGV99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGV93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGV95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGV92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGV90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGV91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGV85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGV82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGV80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGV77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGV75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGV72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGV70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGV67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGV65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGV62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGV60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGV57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGV55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGV52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGV50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGV45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGV40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGV35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGV30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGV25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGV20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGV15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGV10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGV85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGV70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGV50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGV25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGV98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGV00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 204 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGV97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGV98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGV98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGV98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGV98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGV86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 204 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGV86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 204 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGV96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGV89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 204 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGV94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGV94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGV98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 198 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 198 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 198 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGV98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGV98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGV98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGV98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGV98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs204.161 b/parm/wmo/grib2_awpgfs204.161 deleted file mode 100755 index ad73cf1098..0000000000 --- a/parm/wmo/grib2_awpgfs204.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTV99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTV93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTV95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTV92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTV90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTV91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTV85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTV82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTV80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTV77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTV75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTV72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTV70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTV67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTV65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTV62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTV60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTV57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTV55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTV52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTV50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTV45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTV40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTV35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTV30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTV25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTV20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTV15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTV10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTV99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTV93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTV95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTV92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTV90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTV91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTV85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTV82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTV80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTV77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTV75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTV72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTV70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTV67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTV65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTV62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTV60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTV57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTV55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTV52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTV50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTV45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTV40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTV35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTV30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTV25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTV20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTV15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTV10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTV99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTV93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTV95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTV92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTV90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTV91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTV85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTV82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTV80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTV77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTV75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTV72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTV70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTV67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTV65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTV62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTV60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTV57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTV55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTV52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTV50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTV45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTV40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTV35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTV30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTV25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTV20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTV15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTV10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTV99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTV93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTV95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTV92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTV90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTV91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTV85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTV82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTV80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTV77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTV75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTV72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTV70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTV67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTV65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTV62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTV60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTV57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTV55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTV52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTV50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTV45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTV40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTV35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTV30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTV25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTV20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTV15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTV10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTV85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTV70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTV50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTV25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTV98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTV00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 204 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTV97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTV98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTV98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTV98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTV98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTV86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 204 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTV86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 204 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTV96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTV89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 204 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTV94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTV94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTV98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 198 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 198 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 198 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTV98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETV98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTV98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTV98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTV98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs204.213 b/parm/wmo/grib2_awpgfs204.213 deleted file mode 100755 index 50f105a9b1..0000000000 --- a/parm/wmo/grib2_awpgfs204.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHV99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHV85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHV70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHV50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHV40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHV30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHV25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHV20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHV15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHV10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHV99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHV85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHV70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHV50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHV40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHV30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHV25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHV20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHV15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHV10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHV99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHV85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHV70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHV50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHV40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHV30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHV25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHV20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHV15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHV10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHV99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHV85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHV70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHV50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHV40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHV30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHV85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHV70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHV50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHV25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHV98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHV00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 204 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHV97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHV98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHV98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHV98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHV98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHV86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 204 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHV86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 204 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHV89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 204 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHV98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHV98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHV98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs204.254 b/parm/wmo/grib2_awpgfs204.254 deleted file mode 100755 index 021b20a816..0000000000 --- a/parm/wmo/grib2_awpgfs204.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOV99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOV93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOV95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOV92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOV90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOV91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOV85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOV82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOV80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOV77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOV75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOV72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOV70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOV67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOV65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOV62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOV60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOV57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOV55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOV52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOV50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOV45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOV40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOV35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOV30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOV25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOV20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOV15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOV10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOV99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOV93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOV95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOV92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOV90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOV91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOV85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOV82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOV80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOV77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOV75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOV72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOV70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOV67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOV65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOV62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOV60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOV57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOV55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOV52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOV50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOV45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOV40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOV35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOV30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOV25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOV20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOV15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOV10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOV99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOV93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOV95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOV92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOV90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOV91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOV85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOV82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOV80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOV77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOV75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOV72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOV70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOV67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOV65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOV62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOV60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOV57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOV55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOV52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOV50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOV45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOV40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOV35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOV30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOV25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOV20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOV15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOV10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROV99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROV93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROV95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROV92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROV90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROV91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROV85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROV82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROV80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROV77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROV75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROV72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROV70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROV67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROV65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROV62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROV60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROV57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROV55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROV52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROV50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROV45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROV40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROV35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROV30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROV25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROV20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROV15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROV10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOV85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOV70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOV50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOV25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOV99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOV93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOV95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOV92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOV90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOV91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOV85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOV82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOV80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOV77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOV75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOV72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOV70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOV67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOV65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOV62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOV60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOV57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOV55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOV52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOV50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOV45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOV40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOV35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOV30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOV25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOV20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOV15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOV10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOV86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROV86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOV86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOV97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOV97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOV98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOV00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 204 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOV97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOV97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOV98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOV98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOV98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOV98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOV86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 204 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOV86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 204 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOV96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 204 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOV89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 204 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOV94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 204 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROV94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOV97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOV96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOV98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 198 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 198 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOV73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 198 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOV98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 204 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOV98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOV98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOV98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROV98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 204 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 204 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOV98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 204 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs210.003 b/parm/wmo/grib2_awpgfs210.003 old mode 100755 new mode 100644 index 45d617ec9b..74791a663f --- a/parm/wmo/grib2_awpgfs210.003 +++ b/parm/wmo/grib2_awpgfs210.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 210 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs210.160 b/parm/wmo/grib2_awpgfs210.160 deleted file mode 100755 index 0d099900b0..0000000000 --- a/parm/wmo/grib2_awpgfs210.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 210 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 210 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 210 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 210 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 204 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 204 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 204 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs210.161 b/parm/wmo/grib2_awpgfs210.161 deleted file mode 100755 index 58f80f12f1..0000000000 --- a/parm/wmo/grib2_awpgfs210.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 210 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 210 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 210 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 210 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 204 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 204 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 204 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs210.213 b/parm/wmo/grib2_awpgfs210.213 deleted file mode 100755 index 69d98f8145..0000000000 --- a/parm/wmo/grib2_awpgfs210.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 210 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 210 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 210 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 210 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs210.254 b/parm/wmo/grib2_awpgfs210.254 deleted file mode 100755 index 9b38933b0e..0000000000 --- a/parm/wmo/grib2_awpgfs210.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 210 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 210 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 210 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 210 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 210 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 210 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 204 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 204 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 204 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 210 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 210 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 210 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 210 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs216.003 b/parm/wmo/grib2_awpgfs216.003 old mode 100755 new mode 100644 index 16de54e624..dca67d2056 --- a/parm/wmo/grib2_awpgfs216.003 +++ b/parm/wmo/grib2_awpgfs216.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPW92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 216 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs216.160 b/parm/wmo/grib2_awpgfs216.160 deleted file mode 100755 index 96c4072be9..0000000000 --- a/parm/wmo/grib2_awpgfs216.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGW99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGW93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGW95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGW92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGW90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGW91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGW85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGW82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGW80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGW77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGW75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGW72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGW70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGW67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGW65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGW62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGW60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGW57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGW55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGW52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGW50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGW45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGW40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGW35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGW30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGW25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGW20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGW15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGW10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGW99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGW93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGW95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGW92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGW90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGW91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGW85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGW82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGW80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGW77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGW75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGW72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGW70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGW67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGW65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGW62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGW60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGW57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGW55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGW52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGW50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGW45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGW40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGW35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGW30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGW25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGW20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGW15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGW10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGW99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGW93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGW95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGW92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGW90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGW91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGW85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGW82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGW80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGW77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGW75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGW72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGW70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGW67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGW65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGW62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGW60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGW57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGW55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGW52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGW50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGW45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGW40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGW35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGW30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGW25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGW20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGW15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGW10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGW99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGW93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGW95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGW92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGW90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGW91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGW85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGW82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGW80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGW77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGW75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGW72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGW70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGW67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGW65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGW62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGW60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGW57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGW55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGW52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGW50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGW45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGW40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGW35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGW30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGW25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGW20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGW15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGW10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGW85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGW70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGW50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGW25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGW98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGW00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 216 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGW97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGW98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGW98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGW98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGW98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGW86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 216 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGW86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 216 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGW96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGW89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 216 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGW94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGW94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGW98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 210 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 210 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 210 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGW98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGW98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGW98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGW98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGW98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs216.161 b/parm/wmo/grib2_awpgfs216.161 deleted file mode 100755 index 3e338181c7..0000000000 --- a/parm/wmo/grib2_awpgfs216.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTW99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTW93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTW95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTW92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTW90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTW91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTW85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTW82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTW80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTW77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTW75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTW72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTW70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTW67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTW65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTW62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTW60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTW57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTW55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTW52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTW50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTW45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTW40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTW35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTW30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTW25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTW20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTW15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTW10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTW99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTW93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTW95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTW92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTW90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTW91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTW85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTW82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTW80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTW77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTW75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTW72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTW70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTW67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTW65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTW62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTW60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTW57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTW55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTW52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTW50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTW45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTW40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTW35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTW30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTW25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTW20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTW15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTW10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTW99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTW93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTW95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTW92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTW90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTW91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTW85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTW82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTW80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTW77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTW75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTW72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTW70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTW67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTW65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTW62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTW60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTW57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTW55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTW52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTW50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTW45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTW40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTW35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTW30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTW25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTW20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTW15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTW10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTW99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTW93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTW95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTW92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTW90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTW91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTW85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTW82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTW80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTW77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTW75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTW72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTW70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTW67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTW65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTW62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTW60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTW57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTW55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTW52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTW50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTW45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTW40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTW35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTW30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTW25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTW20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTW15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTW10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTW85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTW70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTW50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTW25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTW98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTW00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 216 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTW97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTW98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTW98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTW98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTW98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTW86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 216 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTW86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 216 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTW96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTW89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 216 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTW94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTW94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTW98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 210 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 210 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 210 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTW98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETW98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTW98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTW98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTW98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs216.213 b/parm/wmo/grib2_awpgfs216.213 deleted file mode 100755 index f8302668a1..0000000000 --- a/parm/wmo/grib2_awpgfs216.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHW99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHW85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHW70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHW50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHW40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHW30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHW25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHW20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHW15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHW10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHW99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHW85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHW70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHW50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHW40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHW30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHW25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHW20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHW15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHW10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHW99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHW85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHW70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHW50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHW40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHW30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHW25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHW20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHW15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHW10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHW99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHW85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHW70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHW50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHW40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHW30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHW85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHW70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHW50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHW25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHW98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHW00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 216 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHW97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHW98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHW98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHW98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHW98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHW86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 216 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHW86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 216 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHW89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 216 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHW98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHW98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHW98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs216.254 b/parm/wmo/grib2_awpgfs216.254 deleted file mode 100755 index 1100e8a5f3..0000000000 --- a/parm/wmo/grib2_awpgfs216.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOW99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOW93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOW95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOW92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOW90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOW91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOW85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOW82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOW80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOW77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOW75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOW72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOW70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOW67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOW65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOW62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOW60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOW57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOW55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOW52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOW50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOW45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOW40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOW35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOW30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOW25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOW20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOW15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOW10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOW99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOW93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOW95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOW92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOW90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOW91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOW85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOW82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOW80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOW77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOW75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOW72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOW70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOW67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOW65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOW62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOW60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOW57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOW55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOW52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOW50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOW45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOW40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOW35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOW30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOW25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOW20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOW15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOW10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOW99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOW93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOW95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOW92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOW90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOW91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOW85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOW82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOW80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOW77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOW75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOW72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOW70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOW67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOW65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOW62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOW60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOW57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOW55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOW52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOW50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOW45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOW40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOW35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOW30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOW25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOW20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOW15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOW10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROW99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROW93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROW95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROW92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROW90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROW91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROW85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROW82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROW80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROW77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROW75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROW72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROW70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROW67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROW65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROW62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROW60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROW57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROW55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROW52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROW50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROW45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROW40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROW35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROW30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROW25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROW20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROW15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROW10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOW85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOW70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOW50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOW25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOW99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOW93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOW95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOW92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOW90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOW91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOW85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOW82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOW80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOW77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOW75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOW72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOW70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOW67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOW65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOW62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOW60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOW57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOW55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOW52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOW50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOW45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOW40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOW35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOW30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOW25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOW20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOW15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOW10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOW86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROW86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOW86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOW97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOW97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOW98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOW00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 216 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOW97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOW97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOW98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOW98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOW98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOW98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOW86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 216 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOW86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 216 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOW96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 216 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOW89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 216 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOW94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 216 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROW94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOW97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOW96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOW98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 210 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 210 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOW73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 210 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOW98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 216 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOW98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOW98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOW98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROW98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 216 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 216 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOW98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 216 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs222.003 b/parm/wmo/grib2_awpgfs222.003 old mode 100755 new mode 100644 index e0d027c13d..d96242c1cb --- a/parm/wmo/grib2_awpgfs222.003 +++ b/parm/wmo/grib2_awpgfs222.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 222 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs222.160 b/parm/wmo/grib2_awpgfs222.160 deleted file mode 100755 index 0bc8c1790b..0000000000 --- a/parm/wmo/grib2_awpgfs222.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 222 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 222 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 222 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 222 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 216 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 216 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 216 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs222.161 b/parm/wmo/grib2_awpgfs222.161 deleted file mode 100755 index 3e63b25541..0000000000 --- a/parm/wmo/grib2_awpgfs222.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 222 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 222 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 222 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 222 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 216 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 216 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 216 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs222.213 b/parm/wmo/grib2_awpgfs222.213 deleted file mode 100755 index 08ff08b43b..0000000000 --- a/parm/wmo/grib2_awpgfs222.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 222 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 222 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 222 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 222 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs222.254 b/parm/wmo/grib2_awpgfs222.254 deleted file mode 100755 index af952f4917..0000000000 --- a/parm/wmo/grib2_awpgfs222.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 222 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 222 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 222 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 222 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 222 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 222 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 216 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 216 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 216 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 222 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 222 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 222 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 222 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs228.003 b/parm/wmo/grib2_awpgfs228.003 old mode 100755 new mode 100644 index 0309033c14..22e419660c --- a/parm/wmo/grib2_awpgfs228.003 +++ b/parm/wmo/grib2_awpgfs228.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPX92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPX92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPX92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPX50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 228 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs228.160 b/parm/wmo/grib2_awpgfs228.160 deleted file mode 100755 index bf6db4aedb..0000000000 --- a/parm/wmo/grib2_awpgfs228.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGX99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGX93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGX95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGX92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGX90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGX91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGX85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGX82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGX80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGX77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGX75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGX72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGX70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGX67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGX65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGX62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGX60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGX57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGX55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGX52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGX50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGX45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGX40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGX35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGX30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGX25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGX20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGX15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGX10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGX99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGX93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGX95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGX92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGX90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGX91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGX85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGX82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGX80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGX77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGX75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGX72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGX70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGX67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGX65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGX62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGX60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGX57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGX55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGX52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGX50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGX45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGX40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGX35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGX30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGX25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGX20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGX15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGX10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGX99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGX93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGX95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGX92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGX90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGX91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGX85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGX82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGX80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGX77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGX75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGX72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGX70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGX67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGX65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGX62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGX60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGX57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGX55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGX52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGX50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGX45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGX40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGX35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGX30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGX25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGX20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGX15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGX10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGX99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGX93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGX95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGX92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGX90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGX91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGX85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGX82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGX80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGX77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGX75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGX72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGX70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGX67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGX65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGX62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGX60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGX57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGX55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGX52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGX50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGX45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGX40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGX35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGX30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGX25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGX20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGX15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGX10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGX85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGX70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGX50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGX25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGX50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGX99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGX99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGX93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGX93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGX95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGX95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGX92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGX92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGX90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGX90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGX91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGX91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGX85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGX85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGX82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGX82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGX80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGX80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGX77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGX77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGX75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGX75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGX72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGX72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGX70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGX70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGX67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGX67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGX65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGX65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGX62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGX62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGX60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGX60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGX57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGX57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGX55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGX55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGX52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGX52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGX50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGX50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGX45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGX45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGX40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGX40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGX35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGX35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGX30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGX30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGX25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGX25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGX20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGX20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGX15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGX15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGX10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGX10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGX98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGX00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 228 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGX97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGX98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGX98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGX98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGX98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGX86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 228 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGX86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 228 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGX96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGX89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 228 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGX94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGX94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGX96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGX96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGX98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGX73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 222 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGX73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 222 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGX73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 222 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGX98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGX98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGX98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGX98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGX98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGX98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGX98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGX98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGX98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGX98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs228.161 b/parm/wmo/grib2_awpgfs228.161 deleted file mode 100755 index 835dca2bef..0000000000 --- a/parm/wmo/grib2_awpgfs228.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTX99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTX93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTX95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTX92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTX90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTX91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTX85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTX82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTX80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTX77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTX75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTX72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTX70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTX67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTX65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTX62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTX60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTX57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTX55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTX52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTX50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTX45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTX40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTX35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTX30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTX25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTX20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTX15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTX10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTX99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTX93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTX95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTX92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTX90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTX91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTX85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTX82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTX80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTX77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTX75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTX72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTX70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTX67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTX65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTX62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTX60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTX57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTX55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTX52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTX50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTX45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTX40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTX35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTX30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTX25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTX20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTX15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTX10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTX99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTX93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTX95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTX92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTX90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTX91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTX85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTX82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTX80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTX77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTX75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTX72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTX70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTX67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTX65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTX62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTX60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTX57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTX55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTX52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTX50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTX45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTX40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTX35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTX30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTX25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTX20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTX15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTX10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTX99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTX93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTX95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTX92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTX90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTX91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTX85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTX82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTX80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTX77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTX75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTX72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTX70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTX67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTX65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTX62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTX60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTX57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTX55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTX52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTX50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTX45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTX40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTX35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTX30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTX25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTX20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTX15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTX10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTX85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTX70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTX50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTX25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTX50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTX99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTX99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTX93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTX93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTX95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTX95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTX92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTX92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTX90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTX90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTX91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTX91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTX85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTX85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTX82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTX82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTX80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTX80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTX77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTX77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTX75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTX75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTX72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTX72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTX70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTX70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTX67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTX67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTX65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTX65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTX62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTX62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTX60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTX60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTX57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTX57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTX55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTX55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTX52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTX52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTX50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTX50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTX45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTX45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTX40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTX40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTX35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTX35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTX30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTX30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTX25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTX25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTX20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTX20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTX15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTX15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTX10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTX10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTX98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTX00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 228 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTX97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTX98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTX98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTX98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTX98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTX86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 228 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTX86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 228 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTX96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTX89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 228 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTX94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTX94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTX96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTX96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTX98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATX73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 222 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATX73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 222 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATX73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 222 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTX98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETX98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTX98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTX98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTX98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTX98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTX98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTX98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTX98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTX98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs228.213 b/parm/wmo/grib2_awpgfs228.213 deleted file mode 100755 index db4d66d6de..0000000000 --- a/parm/wmo/grib2_awpgfs228.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHX99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHX85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHX70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHX50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHX40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHX30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHX25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHX20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHX15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHX10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHX99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHX85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHX70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHX50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHX40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHX30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHX25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHX20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHX15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHX10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHX99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHX85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHX70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHX50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHX40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHX30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHX25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHX20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHX15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHX10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHX99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHX85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHX70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHX50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHX40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHX30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHX85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHX70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHX50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHX25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHX50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHX99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHX99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHX85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHX85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHX70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHX70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHX50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHX50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHX40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHX40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHX30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHX30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHX25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHX25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHX20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHX20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHX15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHX15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHX10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHX10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHX98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHX00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 228 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHX97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHX98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHX98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHX98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHX98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHX86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 228 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHX86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 228 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHX89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 228 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHX98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHX98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHX98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHX98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHX98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs228.254 b/parm/wmo/grib2_awpgfs228.254 deleted file mode 100755 index ab59a54c50..0000000000 --- a/parm/wmo/grib2_awpgfs228.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOX99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOX93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOX95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOX92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOX90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOX91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOX85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOX82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOX80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOX77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOX75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOX72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOX70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOX67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOX65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOX62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOX60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOX57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOX55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOX52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOX50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOX45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOX40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOX35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOX30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOX25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOX20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOX15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOX10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOX99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOX93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOX95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOX92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOX90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOX91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOX85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOX82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOX80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOX77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOX75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOX72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOX70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOX67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOX65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOX62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOX60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOX57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOX55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOX52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOX50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOX45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOX40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOX35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOX30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOX25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOX20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOX15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOX10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOX99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOX93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOX95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOX92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOX90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOX91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOX85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOX82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOX80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOX77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOX75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOX72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOX70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOX67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOX65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOX62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOX60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOX57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOX55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOX52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOX50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOX45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOX40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOX35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOX30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOX25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOX20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOX15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOX10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROX99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROX93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROX95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROX92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROX90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROX91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROX85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROX82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROX80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROX77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROX75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROX72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROX70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROX67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROX65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROX62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROX60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROX57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROX55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROX52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROX50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROX45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROX40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROX35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROX30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROX25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROX20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROX15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROX10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOX85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOX70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOX50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOX25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOX50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOX99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOX99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOX93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOX93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOX95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOX95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOX92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOX92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOX90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOX90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOX91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOX91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOX85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOX85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOX82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOX82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOX80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOX80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOX77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOX77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOX75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOX75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOX72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOX72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOX70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOX70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOX67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOX67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOX65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOX65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOX62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOX62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOX60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOX60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOX57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOX57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOX55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOX55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOX52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOX52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOX50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOX50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOX45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOX45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOX40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOX40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOX35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOX35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOX30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOX30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOX25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOX25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOX20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOX20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOX15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOX15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOX10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOX10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOX86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROX86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOX86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOX97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOX97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOX98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOX00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 228 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOX97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOX97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOX98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOX98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOX98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOX98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOX86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 228 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOX86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 228 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOX96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 228 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOX89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 228 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOX94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 228 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROX94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOX97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOX96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOX96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOX98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOX73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 222 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOX73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 222 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOX73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 222 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOX98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 228 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOX98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOX98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOX98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOX98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOX98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOX98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROX98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 228 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOX98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 228 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOX98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 228 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs234.003 b/parm/wmo/grib2_awpgfs234.003 old mode 100755 new mode 100644 index 36df325d44..6a6a4a89d9 --- a/parm/wmo/grib2_awpgfs234.003 +++ b/parm/wmo/grib2_awpgfs234.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='ZRPZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='ZUPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='ZVPZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHPZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 234 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs234.160 b/parm/wmo/grib2_awpgfs234.160 deleted file mode 100755 index a9013bd728..0000000000 --- a/parm/wmo/grib2_awpgfs234.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHGZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHGZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHGZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHGZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHGZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHGZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHGZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHGZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHGZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHGZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHGZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHGZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHGZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHGZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHGZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHGZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHGZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHGZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHGZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHGZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHGZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHGZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHGZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHGZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHGZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHGZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHGZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHGZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTGZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTGZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTGZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTGZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTGZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTGZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTGZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTGZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTGZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTGZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTGZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTGZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTGZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTGZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTGZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTGZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTGZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTGZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTGZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTGZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTGZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTGZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTGZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTGZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTGZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTGZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTGZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTGZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTGZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOGZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOGZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOGZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOGZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOGZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOGZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOGZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOGZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOGZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOGZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOGZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOGZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOGZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOGZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOGZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOGZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOGZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOGZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOGZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOGZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOGZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOGZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOGZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOGZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOGZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOGZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOGZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOGZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOGZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRGZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRGZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRGZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRGZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRGZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRGZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRGZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRGZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRGZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRGZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRGZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRGZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRGZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRGZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRGZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRGZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRGZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRGZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRGZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRGZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRGZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRGZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRGZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRGZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRGZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRGZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRGZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRGZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRGZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCGZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCGZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCGZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCGZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHGZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVGZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVGZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVGZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVGZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVGZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVGZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVGZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVGZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVGZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVGZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVGZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVGZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVGZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVGZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVGZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVGZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVGZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVGZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVGZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVGZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVGZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVGZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVGZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVGZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVGZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVGZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVGZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVGZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVGZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTGZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRGZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVGZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHGZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTGZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPGZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFGZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 234 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPGZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBGZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXGZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWGZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYGZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQGZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWGZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 234 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYGZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 234 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPGZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPGZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 234 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHGZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRGZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVGZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVGZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 228 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 228 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAGZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 228 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTGZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEGZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGGZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMGZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRGZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVGZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs234.161 b/parm/wmo/grib2_awpgfs234.161 deleted file mode 100755 index ddcea57502..0000000000 --- a/parm/wmo/grib2_awpgfs234.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHTZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHTZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHTZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHTZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHTZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHTZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHTZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHTZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHTZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHTZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHTZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHTZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHTZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHTZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHTZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHTZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHTZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHTZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHTZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHTZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHTZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHTZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHTZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHTZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHTZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHTZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHTZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHTZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTTZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTTZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTTZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTTZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTTZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTTZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTTZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTTZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTTZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTTZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTTZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTTZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTTZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTTZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTTZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTTZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTTZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTTZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTTZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTTZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTTZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTTZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTTZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTTZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTTZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTTZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTTZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTTZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTTZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOTZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOTZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOTZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOTZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOTZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOTZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOTZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOTZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOTZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOTZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOTZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOTZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOTZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOTZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOTZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOTZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOTZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOTZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOTZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOTZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOTZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOTZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOTZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOTZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOTZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOTZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOTZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOTZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOTZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRTZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MRTZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MRTZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MRTZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MRTZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MRTZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRTZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MRTZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MRTZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MRTZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MRTZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MRTZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRTZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MRTZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MRTZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MRTZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MRTZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MRTZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MRTZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MRTZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRTZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MRTZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRTZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MRTZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRTZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MRTZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MRTZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MRTZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MRTZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCTZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCTZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCTZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCTZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHTZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVTZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVTZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVTZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVTZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVTZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVTZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVTZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVTZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVTZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVTZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVTZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVTZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVTZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVTZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVTZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVTZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVTZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVTZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVTZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVTZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVTZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVTZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVTZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVTZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVTZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVTZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVTZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVTZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVTZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTTZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MRTZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVTZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHTZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTTZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPTZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFTZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 234 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPTZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBTZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXTZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWTZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYTZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQTZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWTZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 234 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYTZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 234 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPTZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPTZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 234 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHTZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MRTZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVTZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVTZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 228 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 228 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MATZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 228 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTTZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='METZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGTZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMTZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MRTZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVTZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs234.213 b/parm/wmo/grib2_awpgfs234.213 deleted file mode 100755 index cfc3a67e69..0000000000 --- a/parm/wmo/grib2_awpgfs234.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHHZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHHZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHHZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHHZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHHZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHHZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHHZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHHZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHHZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTHZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTHZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTHZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTHZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTHZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTHZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTHZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTHZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTHZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTHZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOHZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOHZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOHZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOHZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOHZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOHZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOHZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOHZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOHZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOHZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MRHZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MRHZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MRHZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MRHZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MRHZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MRHZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCHZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCHZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCHZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCHZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHHZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVHZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVHZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVHZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVHZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVHZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVHZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVHZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVHZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVHZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVHZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTHZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVHZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPHZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFHZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 234 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='MTHZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPHZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBHZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXHZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWHZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYHZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQHZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWHZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 234 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYHZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 234 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPHZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 234 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='MRHZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVHZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTHZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEHZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGHZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVHZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs234.254 b/parm/wmo/grib2_awpgfs234.254 deleted file mode 100755 index 20bdb2ab0b..0000000000 --- a/parm/wmo/grib2_awpgfs234.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='MHOZ99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='MHOZ93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='MHOZ95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='MHOZ92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='MHOZ90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='MHOZ91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='MHOZ85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='MHOZ82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='MHOZ80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='MHOZ77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='MHOZ75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='MHOZ72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='MHOZ70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='MHOZ67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='MHOZ65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='MHOZ62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='MHOZ60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='MHOZ57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='MHOZ55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='MHOZ52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='MHOZ45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='MHOZ40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='MHOZ35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='MHOZ30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='MHOZ25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='MHOZ20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='MHOZ15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='MHOZ10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='MTOZ99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='MTOZ93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='MTOZ95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='MTOZ92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='MTOZ90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='MTOZ91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='MTOZ85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='MTOZ82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='MTOZ80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='MTOZ77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='MTOZ75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='MTOZ72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='MTOZ70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='MTOZ67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='MTOZ65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='MTOZ62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='MTOZ60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='MTOZ57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='MTOZ55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='MTOZ52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='MTOZ50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='MTOZ45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='MTOZ40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='MTOZ35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='MTOZ30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='MTOZ25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='MTOZ20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='MTOZ15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='MTOZ10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='MOOZ99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='MOOZ93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='MOOZ95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='MOOZ92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='MOOZ90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='MOOZ91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='MOOZ85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='MOOZ82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='MOOZ80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='MOOZ77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='MOOZ75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='MOOZ72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='MOOZ70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='MOOZ67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='MOOZ65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='MOOZ62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='MOOZ60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='MOOZ57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='MOOZ55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='MOOZ52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='MOOZ50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='MOOZ45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='MOOZ40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='MOOZ35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='MOOZ30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='MOOZ25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='MOOZ20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='MOOZ15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='MOOZ10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='MROZ99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='MROZ93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='MROZ95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='MROZ92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='MROZ90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='MROZ91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='MROZ85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='MROZ82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='MROZ80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='MROZ77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='MROZ75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='MROZ72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='MROZ70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='MROZ67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='MROZ65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='MROZ62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='MROZ60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='MROZ57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='MROZ55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='MROZ52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='MROZ50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='MROZ45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='MROZ40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='MROZ35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='MROZ30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='MROZ25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='MROZ20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='MROZ15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='MROZ10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='MCOZ85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='MCOZ70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='MCOZ50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='MCOZ25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='MHOZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='MUOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='MVOZ99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='MUOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='MVOZ93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='MUOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='MVOZ95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='MUOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='MVOZ92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='MUOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='MVOZ90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='MUOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='MVOZ91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='MUOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='MVOZ85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='MUOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='MVOZ82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='MUOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='MVOZ80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='MUOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='MVOZ77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='MUOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='MVOZ75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='MUOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='MVOZ72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='MUOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='MVOZ70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='MUOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='MVOZ67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='MUOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='MVOZ65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='MUOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='MVOZ62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='MUOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='MVOZ60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='MUOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='MVOZ57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='MUOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='MVOZ55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='MUOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='MVOZ52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='MUOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='MVOZ50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='MUOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='MVOZ45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='MUOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='MVOZ40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='MUOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='MVOZ35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='MUOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='MVOZ30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='MUOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='MVOZ25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='MUOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='MVOZ20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='MUOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='MVOZ15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='MUOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='MVOZ10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='MTOZ86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='MROZ86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='MUOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='MVOZ86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='MHOZ97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='MTOZ97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='MPOZ98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='MFOZ00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 234 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='MPOZ97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='MBOZ97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='MXOZ98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='MWOZ98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='MYOZ98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='MQOZ98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='MWOZ86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 234 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='MYOZ86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 234 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='MPOZ96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 234 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='MPOZ89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 234 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='MHOZ94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 234 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='MROZ94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='MUOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='MVOZ97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='MUOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='MVOZ96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOU98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 228 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 228 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='MAOZ73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 228 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='MTOZ98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 234 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='MEOZ98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='MGOZ98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='MMOZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='MROZ98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 234 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='MUOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 234 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='MVOZ98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 234 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs240.003 b/parm/wmo/grib2_awpgfs240.003 old mode 100755 new mode 100644 index b55f8d2194..4fe553764e --- a/parm/wmo/grib2_awpgfs240.003 +++ b/parm/wmo/grib2_awpgfs240.003 @@ -106,4 +106,3 @@ &GRIBIDS DESC=' R H 925 mb ',WMOHEAD='YRPY92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 92500 255 0 0 / &GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='YUPY92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 92500 255 0 0 / &GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='YVPY92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHPY50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 240 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs240.160 b/parm/wmo/grib2_awpgfs240.160 deleted file mode 100755 index 99371e1b14..0000000000 --- a/parm/wmo/grib2_awpgfs240.160 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHGY99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHGY93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHGY95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHGY92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHGY90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHGY91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHGY85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHGY82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHGY80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHGY77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHGY75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHGY72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHGY70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHGY67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHGY65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHGY62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHGY60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHGY57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHGY55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHGY52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHGY50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHGY45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHGY40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHGY35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHGY30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHGY25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHGY20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHGY15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHGY10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTGY99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTGY93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTGY95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTGY92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTGY90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTGY91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTGY85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTGY82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTGY80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTGY77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTGY75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTGY72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTGY70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTGY67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTGY65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTGY62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTGY60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTGY57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTGY55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTGY52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTGY50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTGY45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTGY40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTGY35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTGY30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTGY25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTGY20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTGY15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTGY10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOGY99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOGY93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOGY95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOGY92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOGY90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOGY91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOGY85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOGY82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOGY80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOGY77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOGY75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOGY72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOGY70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOGY67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOGY65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOGY62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOGY60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOGY57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOGY55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOGY52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOGY50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOGY45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOGY40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOGY35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOGY30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOGY25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOGY20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOGY15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOGY10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRGY99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRGY93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRGY95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRGY92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRGY90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRGY91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRGY85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRGY82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRGY80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRGY77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRGY75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRGY72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRGY70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRGY67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRGY65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRGY62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRGY60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRGY57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRGY55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRGY52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRGY50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRGY45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRGY40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRGY35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRGY30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRGY25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRGY20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRGY15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRGY10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCGY85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCGY70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCGY50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCGY25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHGY50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUGY99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVGY99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUGY93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVGY93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUGY95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVGY95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUGY92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVGY92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUGY90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVGY90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUGY91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVGY91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUGY85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVGY85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUGY82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVGY82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUGY80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVGY80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUGY77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVGY77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUGY75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVGY75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUGY72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVGY72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUGY70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVGY70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUGY67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVGY67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUGY65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVGY65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUGY62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVGY62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUGY60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVGY60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUGY57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVGY57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUGY55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVGY55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUGY52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVGY52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUGY50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVGY50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUGY45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVGY45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUGY40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVGY40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUGY35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVGY35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUGY30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVGY30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUGY25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVGY25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUGY20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVGY20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUGY15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVGY15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUGY10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVGY10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTGY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTGY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTGY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTGY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTGY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTGY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRGY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRGY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRGY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRGY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRGY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRGY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVGY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHGY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHGY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHGY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHGY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTGY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTGY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTGY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTGY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPGY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPGY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPGY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPGY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUGY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVGY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUGY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVGY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUGY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVGY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUGY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVGY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPGY98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFGY00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 240 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPGY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBGY97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXGY98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWGY98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYGY98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQGY98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWGY86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 240 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYGY86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 240 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPGY96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPGY89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 240 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHGY94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRGY94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUGY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVGY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUGY96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVGY96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSGY98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAGY73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 234 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAGY73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 234 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAGY73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 234 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTGY98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEGY98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGGY98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMGY98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMGY98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMGY98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMGY98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRGY98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUGY98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVGY98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs240.161 b/parm/wmo/grib2_awpgfs240.161 deleted file mode 100755 index 7246df935f..0000000000 --- a/parm/wmo/grib2_awpgfs240.161 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHTY99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHTY93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHTY95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHTY92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHTY90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHTY91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHTY85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHTY82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHTY80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHTY77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHTY75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHTY72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHTY70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHTY67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHTY65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHTY62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHTY60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHTY57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHTY55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHTY52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHTY50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHTY45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHTY40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHTY35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHTY30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHTY25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHTY20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHTY15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHTY10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTTY99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTTY93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTTY95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTTY92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTTY90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTTY91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTTY85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTTY82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTTY80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTTY77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTTY75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTTY72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTTY70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTTY67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTTY65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTTY62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTTY60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTTY57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTTY55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTTY52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTTY50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTTY45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTTY40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTTY35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTTY30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTTY25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTTY20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTTY15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTTY10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOTY99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOTY93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOTY95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOTY92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOTY90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOTY91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOTY85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOTY82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOTY80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOTY77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOTY75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOTY72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOTY70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOTY67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOTY65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOTY62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOTY60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOTY57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOTY55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOTY52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOTY50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOTY45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOTY40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOTY35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOTY30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOTY25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOTY20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOTY15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOTY10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRTY99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LRTY93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LRTY95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LRTY92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LRTY90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LRTY91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRTY85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LRTY82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LRTY80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LRTY77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LRTY75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LRTY72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRTY70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LRTY67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LRTY65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LRTY62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LRTY60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LRTY57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LRTY55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LRTY52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRTY50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LRTY45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRTY40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LRTY35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRTY30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LRTY25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LRTY20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LRTY15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LRTY10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCTY85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCTY70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCTY50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCTY25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHTY50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUTY99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVTY99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUTY93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVTY93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUTY95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVTY95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUTY92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVTY92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUTY90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVTY90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUTY91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVTY91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUTY85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVTY85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUTY82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVTY82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUTY80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVTY80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUTY77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVTY77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUTY75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVTY75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUTY72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVTY72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUTY70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVTY70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUTY67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVTY67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUTY65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVTY65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUTY62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVTY62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUTY60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVTY60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUTY57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVTY57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUTY55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVTY55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUTY52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVTY52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUTY50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVTY50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUTY45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVTY45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUTY40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVTY40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUTY35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVTY35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUTY30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVTY30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUTY25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVTY25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUTY20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVTY20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUTY15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVTY15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUTY10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVTY10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTTY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTTY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTTY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTTY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTTY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTTY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRTY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LRTY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LRTY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LRTY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LRTY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LRTY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVTY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHTY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHTY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHTY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHTY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTTY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTTY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTTY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTTY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPTY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPTY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPTY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPTY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUTY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVTY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUTY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVTY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUTY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVTY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUTY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVTY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPTY98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFTY00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 240 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPTY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBTY97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXTY98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWTY98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYTY98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQTY98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWTY86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 240 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYTY86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 240 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPTY96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPTY89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 240 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHTY94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LRTY94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUTY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVTY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUTY96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVTY96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSTY98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LATY73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 234 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LATY73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 234 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LATY73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 234 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTTY98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LETY98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGTY98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMTY98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMTY98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMTY98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMTY98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LRTY98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUTY98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVTY98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs240.213 b/parm/wmo/grib2_awpgfs240.213 deleted file mode 100755 index 7ba3d6c451..0000000000 --- a/parm/wmo/grib2_awpgfs240.213 +++ /dev/null @@ -1,85 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHHY99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHHY85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHHY70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHHY50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHHY40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHHY30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHHY25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHHY20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHHY15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHHY10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTHY99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTHY85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTHY70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTHY50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTHY40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTHY30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTHY25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTHY20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTHY15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTHY10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOHY99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOHY85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOHY70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOHY50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOHY40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOHY30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOHY25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOHY20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOHY15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOHY10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LRHY99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LRHY85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LRHY70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LRHY50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LRHY40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LRHY30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCHY85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCHY70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCHY50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCHY25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHHY50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUHY99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVHY99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUHY85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVHY85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUHY70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVHY70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUHY50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVHY50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUHY40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVHY40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUHY30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVHY30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUHY25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVHY25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUHY20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVHY20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUHY15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVHY15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUHY10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVHY10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTHY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LRHY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUHY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVHY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPHY98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFHY00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 240 200 0 0 255 0 0 / -&GRIBIDS DESC=' TMP Tropopause ',WMOHEAD='LTHY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPHY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBHY97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXHY98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWHY98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYHY98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQHY98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWHY86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 240 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYHY86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 240 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPHY89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 240 101 0 0 255 0 0 / -&GRIBIDS DESC=' R H .44 - 1 sigma ',WMOHEAD='LRHY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 104 2 44 104 2 100 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUHY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVHY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTHY98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEHY98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGHY98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUHY98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVHY98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs240.254 b/parm/wmo/grib2_awpgfs240.254 deleted file mode 100755 index 03959185f6..0000000000 --- a/parm/wmo/grib2_awpgfs240.254 +++ /dev/null @@ -1,255 +0,0 @@ -&GRIBIDS DESC=' HGT 1000 mb ',WMOHEAD='LHOY99 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' HGT 975 mb ',WMOHEAD='LHOY93 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' HGT 950 mb ',WMOHEAD='LHOY95 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' HGT 925 mb ',WMOHEAD='LHOY92 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' HGT 900 mb ',WMOHEAD='LHOY90 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' HGT 875 mb ',WMOHEAD='LHOY91 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' HGT 850 mb ',WMOHEAD='LHOY85 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' HGT 825 mb ',WMOHEAD='LHOY82 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' HGT 800 mb ',WMOHEAD='LHOY80 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' HGT 775 mb ',WMOHEAD='LHOY77 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' HGT 750 mb ',WMOHEAD='LHOY75 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' HGT 725 mb ',WMOHEAD='LHOY72 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' HGT 700 mb ',WMOHEAD='LHOY70 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' HGT 675 mb ',WMOHEAD='LHOY67 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' HGT 650 mb ',WMOHEAD='LHOY65 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' HGT 625 mb ',WMOHEAD='LHOY62 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' HGT 600 mb ',WMOHEAD='LHOY60 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' HGT 575 mb ',WMOHEAD='LHOY57 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' HGT 550 mb ',WMOHEAD='LHOY55 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' HGT 525 mb ',WMOHEAD='LHOY52 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' HGT 500 mb ',WMOHEAD='LHOY50 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' HGT 450 mb ',WMOHEAD='LHOY45 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' HGT 400 mb ',WMOHEAD='LHOY40 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' HGT 350 mb ',WMOHEAD='LHOY35 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' HGT 300 mb ',WMOHEAD='LHOY30 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' HGT 250 mb ',WMOHEAD='LHOY25 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' HGT 200 mb ',WMOHEAD='LHOY20 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' HGT 150 mb ',WMOHEAD='LHOY15 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' HGT 100 mb ',WMOHEAD='LHOY10 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 1000 mb ',WMOHEAD='LTOY99 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' TMP 975 mb ',WMOHEAD='LTOY93 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' TMP 950 mb ',WMOHEAD='LTOY95 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' TMP 925 mb ',WMOHEAD='LTOY92 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' TMP 900 mb ',WMOHEAD='LTOY90 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' TMP 875 mb ',WMOHEAD='LTOY91 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' TMP 850 mb ',WMOHEAD='LTOY85 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' TMP 825 mb ',WMOHEAD='LTOY82 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' TMP 800 mb ',WMOHEAD='LTOY80 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' TMP 775 mb ',WMOHEAD='LTOY77 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' TMP 750 mb ',WMOHEAD='LTOY75 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' TMP 725 mb ',WMOHEAD='LTOY72 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' TMP 700 mb ',WMOHEAD='LTOY70 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' TMP 675 mb ',WMOHEAD='LTOY67 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' TMP 650 mb ',WMOHEAD='LTOY65 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' TMP 625 mb ',WMOHEAD='LTOY62 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' TMP 600 mb ',WMOHEAD='LTOY60 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' TMP 575 mb ',WMOHEAD='LTOY57 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' TMP 550 mb ',WMOHEAD='LTOY55 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' TMP 525 mb ',WMOHEAD='LTOY52 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' TMP 500 mb ',WMOHEAD='LTOY50 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' TMP 450 mb ',WMOHEAD='LTOY45 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' TMP 400 mb ',WMOHEAD='LTOY40 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' TMP 350 mb ',WMOHEAD='LTOY35 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' TMP 300 mb ',WMOHEAD='LTOY30 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' TMP 250 mb ',WMOHEAD='LTOY25 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' TMP 200 mb ',WMOHEAD='LTOY20 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' TMP 150 mb ',WMOHEAD='LTOY15 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' TMP 100 mb ',WMOHEAD='LTOY10 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V VEL 1000 mb ',WMOHEAD='LOOY99 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V VEL 975 mb ',WMOHEAD='LOOY93 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V VEL 950 mb ',WMOHEAD='LOOY95 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V VEL 925 mb ',WMOHEAD='LOOY92 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V VEL 900 mb ',WMOHEAD='LOOY90 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V VEL 875 mb ',WMOHEAD='LOOY91 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V VEL 850 mb ',WMOHEAD='LOOY85 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V VEL 825 mb ',WMOHEAD='LOOY82 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V VEL 800 mb ',WMOHEAD='LOOY80 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V VEL 775 mb ',WMOHEAD='LOOY77 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V VEL 750 mb ',WMOHEAD='LOOY75 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V VEL 725 mb ',WMOHEAD='LOOY72 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V VEL 700 mb ',WMOHEAD='LOOY70 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V VEL 675 mb ',WMOHEAD='LOOY67 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V VEL 650 mb ',WMOHEAD='LOOY65 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V VEL 625 mb ',WMOHEAD='LOOY62 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V VEL 600 mb ',WMOHEAD='LOOY60 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V VEL 575 mb ',WMOHEAD='LOOY57 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V VEL 550 mb ',WMOHEAD='LOOY55 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V VEL 525 mb ',WMOHEAD='LOOY52 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V VEL 500 mb ',WMOHEAD='LOOY50 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V VEL 450 mb ',WMOHEAD='LOOY45 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V VEL 400 mb ',WMOHEAD='LOOY40 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V VEL 350 mb ',WMOHEAD='LOOY35 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V VEL 300 mb ',WMOHEAD='LOOY30 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V VEL 250 mb ',WMOHEAD='LOOY25 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V VEL 200 mb ',WMOHEAD='LOOY20 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V VEL 150 mb ',WMOHEAD='LOOY15 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V VEL 100 mb ',WMOHEAD='LOOY10 KWBC',PDTN= 0 ,PDT= 2 8 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' R H 1000 mb ',WMOHEAD='LROY99 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' R H 975 mb ',WMOHEAD='LROY93 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' R H 950 mb ',WMOHEAD='LROY95 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' R H 925 mb ',WMOHEAD='LROY92 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' R H 900 mb ',WMOHEAD='LROY90 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' R H 875 mb ',WMOHEAD='LROY91 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' R H 850 mb ',WMOHEAD='LROY85 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' R H 825 mb ',WMOHEAD='LROY82 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' R H 800 mb ',WMOHEAD='LROY80 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' R H 775 mb ',WMOHEAD='LROY77 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' R H 750 mb ',WMOHEAD='LROY75 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' R H 725 mb ',WMOHEAD='LROY72 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' R H 700 mb ',WMOHEAD='LROY70 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' R H 675 mb ',WMOHEAD='LROY67 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' R H 650 mb ',WMOHEAD='LROY65 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' R H 625 mb ',WMOHEAD='LROY62 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' R H 600 mb ',WMOHEAD='LROY60 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' R H 575 mb ',WMOHEAD='LROY57 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' R H 550 mb ',WMOHEAD='LROY55 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' R H 525 mb ',WMOHEAD='LROY52 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' R H 500 mb ',WMOHEAD='LROY50 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' R H 450 mb ',WMOHEAD='LROY45 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' R H 400 mb ',WMOHEAD='LROY40 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' R H 350 mb ',WMOHEAD='LROY35 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' R H 300 mb ',WMOHEAD='LROY30 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' R H 250 mb ',WMOHEAD='LROY25 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' R H 200 mb ',WMOHEAD='LROY20 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' R H 150 mb ',WMOHEAD='LROY15 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' R H 100 mb ',WMOHEAD='LROY10 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' ABS V 850 mb ',WMOHEAD='LCOY85 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' ABS V 700 mb ',WMOHEAD='LCOY70 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' ABS V 500 mb ',WMOHEAD='LCOY50 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' ABS V 250 mb ',WMOHEAD='LCOY25 KWBC',PDTN= 0 ,PDT= 2 10 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='LHOY50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 1000 mb ',WMOHEAD='LUOY99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' V GRD 1000 mb ',WMOHEAD='LVOY99 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 100000 255 0 0 / -&GRIBIDS DESC=' U GRD 975 mb ',WMOHEAD='LUOY93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' V GRD 975 mb ',WMOHEAD='LVOY93 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 97500 255 0 0 / -&GRIBIDS DESC=' U GRD 950 mb ',WMOHEAD='LUOY95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' V GRD 950 mb ',WMOHEAD='LVOY95 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 95000 255 0 0 / -&GRIBIDS DESC=' U GRD 925 mb ',WMOHEAD='LUOY92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' V GRD 925 mb ',WMOHEAD='LVOY92 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 92500 255 0 0 / -&GRIBIDS DESC=' U GRD 900 mb ',WMOHEAD='LUOY90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' V GRD 900 mb ',WMOHEAD='LVOY90 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 90000 255 0 0 / -&GRIBIDS DESC=' U GRD 875 mb ',WMOHEAD='LUOY91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' V GRD 875 mb ',WMOHEAD='LVOY91 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 87500 255 0 0 / -&GRIBIDS DESC=' U GRD 850 mb ',WMOHEAD='LUOY85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' V GRD 850 mb ',WMOHEAD='LVOY85 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 85000 255 0 0 / -&GRIBIDS DESC=' U GRD 825 mb ',WMOHEAD='LUOY82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' V GRD 825 mb ',WMOHEAD='LVOY82 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 82500 255 0 0 / -&GRIBIDS DESC=' U GRD 800 mb ',WMOHEAD='LUOY80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' V GRD 800 mb ',WMOHEAD='LVOY80 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 80000 255 0 0 / -&GRIBIDS DESC=' U GRD 775 mb ',WMOHEAD='LUOY77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' V GRD 775 mb ',WMOHEAD='LVOY77 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 77500 255 0 0 / -&GRIBIDS DESC=' U GRD 750 mb ',WMOHEAD='LUOY75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' V GRD 750 mb ',WMOHEAD='LVOY75 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 75000 255 0 0 / -&GRIBIDS DESC=' U GRD 725 mb ',WMOHEAD='LUOY72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' V GRD 725 mb ',WMOHEAD='LVOY72 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 72500 255 0 0 / -&GRIBIDS DESC=' U GRD 700 mb ',WMOHEAD='LUOY70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' V GRD 700 mb ',WMOHEAD='LVOY70 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 70000 255 0 0 / -&GRIBIDS DESC=' U GRD 675 mb ',WMOHEAD='LUOY67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' V GRD 675 mb ',WMOHEAD='LVOY67 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 67500 255 0 0 / -&GRIBIDS DESC=' U GRD 650 mb ',WMOHEAD='LUOY65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' V GRD 650 mb ',WMOHEAD='LVOY65 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 65000 255 0 0 / -&GRIBIDS DESC=' U GRD 625 mb ',WMOHEAD='LUOY62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' V GRD 625 mb ',WMOHEAD='LVOY62 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 62500 255 0 0 / -&GRIBIDS DESC=' U GRD 600 mb ',WMOHEAD='LUOY60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' V GRD 600 mb ',WMOHEAD='LVOY60 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 60000 255 0 0 / -&GRIBIDS DESC=' U GRD 575 mb ',WMOHEAD='LUOY57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' V GRD 575 mb ',WMOHEAD='LVOY57 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 57500 255 0 0 / -&GRIBIDS DESC=' U GRD 550 mb ',WMOHEAD='LUOY55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' V GRD 550 mb ',WMOHEAD='LVOY55 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 55000 255 0 0 / -&GRIBIDS DESC=' U GRD 525 mb ',WMOHEAD='LUOY52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' V GRD 525 mb ',WMOHEAD='LVOY52 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 52500 255 0 0 / -&GRIBIDS DESC=' U GRD 500 mb ',WMOHEAD='LUOY50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' V GRD 500 mb ',WMOHEAD='LVOY50 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 50000 255 0 0 / -&GRIBIDS DESC=' U GRD 450 mb ',WMOHEAD='LUOY45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' V GRD 450 mb ',WMOHEAD='LVOY45 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 45000 255 0 0 / -&GRIBIDS DESC=' U GRD 400 mb ',WMOHEAD='LUOY40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' V GRD 400 mb ',WMOHEAD='LVOY40 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 40000 255 0 0 / -&GRIBIDS DESC=' U GRD 350 mb ',WMOHEAD='LUOY35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' V GRD 350 mb ',WMOHEAD='LVOY35 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 35000 255 0 0 / -&GRIBIDS DESC=' U GRD 300 mb ',WMOHEAD='LUOY30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' V GRD 300 mb ',WMOHEAD='LVOY30 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 30000 255 0 0 / -&GRIBIDS DESC=' U GRD 250 mb ',WMOHEAD='LUOY25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' V GRD 250 mb ',WMOHEAD='LVOY25 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 25000 255 0 0 / -&GRIBIDS DESC=' U GRD 200 mb ',WMOHEAD='LUOY20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' V GRD 200 mb ',WMOHEAD='LVOY20 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 20000 255 0 0 / -&GRIBIDS DESC=' U GRD 150 mb ',WMOHEAD='LUOY15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' V GRD 150 mb ',WMOHEAD='LVOY15 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 15000 255 0 0 / -&GRIBIDS DESC=' U GRD 100 mb ',WMOHEAD='LUOY10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' V GRD 100 mb ',WMOHEAD='LVOY10 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 100 0 10000 255 0 0 / -&GRIBIDS DESC=' TMP 30 - 0 mb SPDY ',WMOHEAD='LTOY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' TMP 60 - 30 mb SPDY ',WMOHEAD='LTOY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' TMP 90 - 60 mb SPDY ',WMOHEAD='LTOY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' TMP 120 - 90 mb SPDY ',WMOHEAD='LTOY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' TMP 150 - 120 mb SPDY ',WMOHEAD='LTOY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' TMP 180 - 150 mb SPDY ',WMOHEAD='LTOY86 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' R H 30 - 0 mb SPDY ',WMOHEAD='LROY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' R H 60 - 30 mb SPDY ',WMOHEAD='LROY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' R H 90 - 60 mb SPDY ',WMOHEAD='LROY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' R H 120 - 90 mb SPDY ',WMOHEAD='LROY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' R H 150 - 120 mb SPDY ',WMOHEAD='LROY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' R H 180 - 150 mb SPDY ',WMOHEAD='LROY86 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' U GRD 30 - 0 mb SPDY ',WMOHEAD='LUOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' V GRD 30 - 0 mb SPDY ',WMOHEAD='LVOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 3000 108 0 0 / -&GRIBIDS DESC=' U GRD 60 - 30 mb SPDY ',WMOHEAD='LUOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' V GRD 60 - 30 mb SPDY ',WMOHEAD='LVOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 6000 108 0 3000 / -&GRIBIDS DESC=' U GRD 90 - 60 mb SPDY ',WMOHEAD='LUOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' V GRD 90 - 60 mb SPDY ',WMOHEAD='LVOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 9000 108 0 6000 / -&GRIBIDS DESC=' U GRD 120 - 90 mb SPDY ',WMOHEAD='LUOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' V GRD 120 - 90 mb SPDY ',WMOHEAD='LVOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 12000 108 0 9000 / -&GRIBIDS DESC=' U GRD 150 - 120 mb SPDY ',WMOHEAD='LUOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' V GRD 150 - 120 mb SPDY ',WMOHEAD='LVOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 15000 108 0 12000 / -&GRIBIDS DESC=' U GRD 180 - 150 mb SPDY ',WMOHEAD='LUOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' V GRD 180 - 150 mb SPDY ',WMOHEAD='LVOY86 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 108 0 18000 108 0 15000 / -&GRIBIDS DESC=' HGT .500 pv surface ',WMOHEAD='LHOY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' HGT 1 pv surface ',WMOHEAD='LHOY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' HGT 1.500 pv surface ',WMOHEAD='LHOY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' HGT 2 pv surface ',WMOHEAD='LHOY97 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' TMP .500 pv surface ',WMOHEAD='LTOY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' TMP 1 pv surface ',WMOHEAD='LTOY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' TMP 1.500 pv surface ',WMOHEAD='LTOY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' TMP 2 pv surface ',WMOHEAD='LTOY97 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES .500 pv surface ',WMOHEAD='LPOY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' PRES 1 pv surface ',WMOHEAD='LPOY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' PRES 1.500 pv surface ',WMOHEAD='LPOY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' PRES 2 pv surface ',WMOHEAD='LPOY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' U GRD .500 pv surface ',WMOHEAD='LUOY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' V GRD .500 pv surface ',WMOHEAD='LVOY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 500 255 0 0 / -&GRIBIDS DESC=' U GRD 1 pv surface ',WMOHEAD='LUOY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' V GRD 1 pv surface ',WMOHEAD='LVOY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 1000 255 0 0 / -&GRIBIDS DESC=' U GRD 1.500 pv surface ',WMOHEAD='LUOY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' V GRD 1.500 pv surface ',WMOHEAD='LVOY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 1500 255 0 0 / -&GRIBIDS DESC=' U GRD 2 pv surface ',WMOHEAD='LUOY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' V GRD 2 pv surface ',WMOHEAD='LVOY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 109 9 2000 255 0 0 / -&GRIBIDS DESC=' PRES Surface ',WMOHEAD='LPOY98 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' PWAT Entire Atmosphere ',WMOHEAD='LFOY00 KWBC',PDTN= 0 ,PDT= 1 3 2 0 96 0 0 1 240 200 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Tropopause ',WMOHEAD='LPOY97 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' VW SH Tropopause ',WMOHEAD='LBOY97 KWBC',PDTN= 0 ,PDT= 2 192 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' LFT X Surface ',WMOHEAD='LXOY98 KWBC',PDTN= 0 ,PDT= 7 192 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE Surface ',WMOHEAD='LWOY98 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CIN Surface ',WMOHEAD='LYOY98 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' 4LFTX Surface ',WMOHEAD='LQOY98 KWBC',PDTN= 0 ,PDT= 7 193 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' CAPE 180 - 0 mb SPDY ',WMOHEAD='LWOY86 KWBC',PDTN= 0 ,PDT= 7 6 2 0 96 0 0 1 240 108 0 18000 108 0 0 / -&GRIBIDS DESC=' CIN 180 - 0 mb SPDY ',WMOHEAD='LYOY86 KWBC',PDTN= 0 ,PDT= 7 7 2 0 96 0 0 1 240 108 0 18000 108 0 0 / -&GRIBIDS DESC=' PRES Max wind lvl ',WMOHEAD='LPOY96 KWBC',PDTN= 0 ,PDT= 3 0 2 0 96 0 0 1 240 6 0 0 255 0 0 / -&GRIBIDS DESC=' PRMSL Mean Sea Level ',WMOHEAD='LPOY89 KWBC',PDTN= 0 ,PDT= 3 1 2 0 96 0 0 1 240 101 0 0 255 0 0 / -&GRIBIDS DESC=' HGT 0 Deg Isotherm ',WMOHEAD='LHOY94 KWBC',PDTN= 0 ,PDT= 3 5 2 0 96 0 0 1 240 4 0 0 255 0 0 / -&GRIBIDS DESC=' R H 0 Deg Isotherm ',WMOHEAD='LROY94 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 4 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Tropopause ',WMOHEAD='LUOY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Tropopause ',WMOHEAD='LVOY97 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 7 0 0 255 0 0 / -&GRIBIDS DESC=' U GRD Max wind lvl ',WMOHEAD='LUOY96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 6 0 0 255 0 0 / -&GRIBIDS DESC=' V GRD Max wind lvl ',WMOHEAD='LVOY96 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 6 0 0 255 0 0 / -&GRIBIDS DESC=' WEASD Surface ',WMOHEAD='LSOY98 KWBC',PDTN= 0 ,PDT= 1 13 2 0 96 0 0 1 240 1 0 0 255 0 0 / -&GRIBIDS DESC=' PRES High cloud bot. lvl ',WMOHEAD='LAOY73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 234 232 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Mid. cloud bot. lvl ',WMOHEAD='LAOY73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 234 222 0 0 255 0 0 / -&GRIBIDS DESC=' PRES Low cloud bot. lvl ',WMOHEAD='LAOY73 KWBC',PDTN= 8 ,PDT= 3 0 2 0 96 0 0 1 234 212 0 0 255 0 0 / -&GRIBIDS DESC=' TMP 2 m above ground ',WMOHEAD='LTOY98 KWBC',PDTN= 0 ,PDT= 0 0 2 0 96 0 0 1 240 103 0 2 255 0 0 / -&GRIBIDS DESC=' A PCP Surface ',WMOHEAD='LEOY98 KWBC',PDTN= 8 ,PDT= 1 8 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' ACPCP Surface ',WMOHEAD='LGOY98 KWBC',PDTN= 8 ,PDT= 1 10 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CRAIN Surface ',WMOHEAD='LMOY98 KWBC',PDTN= 8 ,PDT= 1 192 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='LMOY98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CICEP Surface ',WMOHEAD='LMOY98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='LMOY98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='LROY98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 96 0 0 1 240 103 0 2 255 0 0 / -&GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='LUOY98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 96 0 0 1 240 103 0 10 255 0 0 / -&GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='LVOY98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 96 0 0 1 240 103 0 10 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf000 b/parm/wmo/grib2_awpgfs_20km_akf000 old mode 100755 new mode 100644 index 10205f0c3a..d44d417e36 --- a/parm/wmo/grib2_awpgfs_20km_akf000 +++ b/parm/wmo/grib2_awpgfs_20km_akf000 @@ -244,4 +244,3 @@ &GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='YRBA98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 103 0 2 255 0 0 / &GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='YUBA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 103 0 10 255 0 0 / &GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='YVBA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 103 0 10 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBA50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 81 0 0 1 0 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf003 b/parm/wmo/grib2_awpgfs_20km_akf003 old mode 100755 new mode 100644 index 335b28c91b..7d2a37aa76 --- a/parm/wmo/grib2_awpgfs_20km_akf003 +++ b/parm/wmo/grib2_awpgfs_20km_akf003 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 3 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf006 b/parm/wmo/grib2_awpgfs_20km_akf006 old mode 100755 new mode 100644 index 70f31d7e06..1993f04065 --- a/parm/wmo/grib2_awpgfs_20km_akf006 +++ b/parm/wmo/grib2_awpgfs_20km_akf006 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 6 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf009 b/parm/wmo/grib2_awpgfs_20km_akf009 old mode 100755 new mode 100644 index 927d038265..d0946fbb85 --- a/parm/wmo/grib2_awpgfs_20km_akf009 +++ b/parm/wmo/grib2_awpgfs_20km_akf009 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 9 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf012 b/parm/wmo/grib2_awpgfs_20km_akf012 old mode 100755 new mode 100644 index 469a804aac..6902e22587 --- a/parm/wmo/grib2_awpgfs_20km_akf012 +++ b/parm/wmo/grib2_awpgfs_20km_akf012 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBC98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBC98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBC98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBC50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 12 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf015 b/parm/wmo/grib2_awpgfs_20km_akf015 old mode 100755 new mode 100644 index 61900e8ed7..19b7a5e18b --- a/parm/wmo/grib2_awpgfs_20km_akf015 +++ b/parm/wmo/grib2_awpgfs_20km_akf015 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 15 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf018 b/parm/wmo/grib2_awpgfs_20km_akf018 old mode 100755 new mode 100644 index cea8817901..f928b8aa9e --- a/parm/wmo/grib2_awpgfs_20km_akf018 +++ b/parm/wmo/grib2_awpgfs_20km_akf018 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBD98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBD98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBD98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBD50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 18 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf021 b/parm/wmo/grib2_awpgfs_20km_akf021 old mode 100755 new mode 100644 index 060a1c5676..ab6e8ea698 --- a/parm/wmo/grib2_awpgfs_20km_akf021 +++ b/parm/wmo/grib2_awpgfs_20km_akf021 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 21 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf024 b/parm/wmo/grib2_awpgfs_20km_akf024 old mode 100755 new mode 100644 index da57526a2b..df3e24d111 --- a/parm/wmo/grib2_awpgfs_20km_akf024 +++ b/parm/wmo/grib2_awpgfs_20km_akf024 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 24 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf027 b/parm/wmo/grib2_awpgfs_20km_akf027 old mode 100755 new mode 100644 index da769f3715..6cfaf1e208 --- a/parm/wmo/grib2_awpgfs_20km_akf027 +++ b/parm/wmo/grib2_awpgfs_20km_akf027 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 27 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf030 b/parm/wmo/grib2_awpgfs_20km_akf030 old mode 100755 new mode 100644 index 108ba25176..c288012677 --- a/parm/wmo/grib2_awpgfs_20km_akf030 +++ b/parm/wmo/grib2_awpgfs_20km_akf030 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBF98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBF98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBF98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBF50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 30 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf033 b/parm/wmo/grib2_awpgfs_20km_akf033 old mode 100755 new mode 100644 index afc01c8000..a2f05ef5de --- a/parm/wmo/grib2_awpgfs_20km_akf033 +++ b/parm/wmo/grib2_awpgfs_20km_akf033 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 33 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf036 b/parm/wmo/grib2_awpgfs_20km_akf036 old mode 100755 new mode 100644 index 0e32f4cd31..429eb52a7d --- a/parm/wmo/grib2_awpgfs_20km_akf036 +++ b/parm/wmo/grib2_awpgfs_20km_akf036 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBG98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBG98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBG98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBG50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 36 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf039 b/parm/wmo/grib2_awpgfs_20km_akf039 old mode 100755 new mode 100644 index 3143f3776d..2c31136c6b --- a/parm/wmo/grib2_awpgfs_20km_akf039 +++ b/parm/wmo/grib2_awpgfs_20km_akf039 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 39 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf042 b/parm/wmo/grib2_awpgfs_20km_akf042 old mode 100755 new mode 100644 index 5435f109e2..9f8cfef47f --- a/parm/wmo/grib2_awpgfs_20km_akf042 +++ b/parm/wmo/grib2_awpgfs_20km_akf042 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 42 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf045 b/parm/wmo/grib2_awpgfs_20km_akf045 old mode 100755 new mode 100644 index 4b0360f849..ce3e6371ac --- a/parm/wmo/grib2_awpgfs_20km_akf045 +++ b/parm/wmo/grib2_awpgfs_20km_akf045 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 45 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf048 b/parm/wmo/grib2_awpgfs_20km_akf048 old mode 100755 new mode 100644 index a3719eed52..eaea4e4a9f --- a/parm/wmo/grib2_awpgfs_20km_akf048 +++ b/parm/wmo/grib2_awpgfs_20km_akf048 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBI98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBI98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBI98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBI50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 48 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf051 b/parm/wmo/grib2_awpgfs_20km_akf051 old mode 100755 new mode 100644 index dc63125a44..94b9fe357e --- a/parm/wmo/grib2_awpgfs_20km_akf051 +++ b/parm/wmo/grib2_awpgfs_20km_akf051 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBR98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBR98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBR98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 51 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf054 b/parm/wmo/grib2_awpgfs_20km_akf054 old mode 100755 new mode 100644 index 605258b768..208576514c --- a/parm/wmo/grib2_awpgfs_20km_akf054 +++ b/parm/wmo/grib2_awpgfs_20km_akf054 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 54 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf057 b/parm/wmo/grib2_awpgfs_20km_akf057 old mode 100755 new mode 100644 index c1f48acacf..61c72d8f36 --- a/parm/wmo/grib2_awpgfs_20km_akf057 +++ b/parm/wmo/grib2_awpgfs_20km_akf057 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBS98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBS98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBS98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 57 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf060 b/parm/wmo/grib2_awpgfs_20km_akf060 old mode 100755 new mode 100644 index 601d0562db..ac82af5142 --- a/parm/wmo/grib2_awpgfs_20km_akf060 +++ b/parm/wmo/grib2_awpgfs_20km_akf060 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBJ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBJ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBJ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBJ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 60 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf063 b/parm/wmo/grib2_awpgfs_20km_akf063 old mode 100755 new mode 100644 index 3174c9a301..50379cb03a --- a/parm/wmo/grib2_awpgfs_20km_akf063 +++ b/parm/wmo/grib2_awpgfs_20km_akf063 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 63 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf066 b/parm/wmo/grib2_awpgfs_20km_akf066 old mode 100755 new mode 100644 index a6927200d2..7458bf1bc8 --- a/parm/wmo/grib2_awpgfs_20km_akf066 +++ b/parm/wmo/grib2_awpgfs_20km_akf066 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 66 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf069 b/parm/wmo/grib2_awpgfs_20km_akf069 old mode 100755 new mode 100644 index e39272b8f3..aa667ae355 --- a/parm/wmo/grib2_awpgfs_20km_akf069 +++ b/parm/wmo/grib2_awpgfs_20km_akf069 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 69 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf072 b/parm/wmo/grib2_awpgfs_20km_akf072 old mode 100755 new mode 100644 index b48eda5bf5..fbe43c4367 --- a/parm/wmo/grib2_awpgfs_20km_akf072 +++ b/parm/wmo/grib2_awpgfs_20km_akf072 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 72 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf075 b/parm/wmo/grib2_awpgfs_20km_akf075 old mode 100755 new mode 100644 index 5f57eadd13..ddde3f2265 --- a/parm/wmo/grib2_awpgfs_20km_akf075 +++ b/parm/wmo/grib2_awpgfs_20km_akf075 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 75 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf078 b/parm/wmo/grib2_awpgfs_20km_akf078 old mode 100755 new mode 100644 index c49f79dd2a..b1290566a3 --- a/parm/wmo/grib2_awpgfs_20km_akf078 +++ b/parm/wmo/grib2_awpgfs_20km_akf078 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 78 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf081 b/parm/wmo/grib2_awpgfs_20km_akf081 old mode 100755 new mode 100644 index 027deeacb7..e7c4913337 --- a/parm/wmo/grib2_awpgfs_20km_akf081 +++ b/parm/wmo/grib2_awpgfs_20km_akf081 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 81 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf084 b/parm/wmo/grib2_awpgfs_20km_akf084 old mode 100755 new mode 100644 index 0c90b825c5..bbeeb783da --- a/parm/wmo/grib2_awpgfs_20km_akf084 +++ b/parm/wmo/grib2_awpgfs_20km_akf084 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 84 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf090 b/parm/wmo/grib2_awpgfs_20km_akf090 old mode 100755 new mode 100644 index c69572453f..c812e6c021 --- a/parm/wmo/grib2_awpgfs_20km_akf090 +++ b/parm/wmo/grib2_awpgfs_20km_akf090 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 84 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 90 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf096 b/parm/wmo/grib2_awpgfs_20km_akf096 old mode 100755 new mode 100644 index abed8606da..ddfe7f3296 --- a/parm/wmo/grib2_awpgfs_20km_akf096 +++ b/parm/wmo/grib2_awpgfs_20km_akf096 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 90 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 96 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf102 b/parm/wmo/grib2_awpgfs_20km_akf102 old mode 100755 new mode 100644 index 1577d83fc3..3d3945a4af --- a/parm/wmo/grib2_awpgfs_20km_akf102 +++ b/parm/wmo/grib2_awpgfs_20km_akf102 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 96 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 102 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf108 b/parm/wmo/grib2_awpgfs_20km_akf108 old mode 100755 new mode 100644 index ad85f356b5..251316c1a3 --- a/parm/wmo/grib2_awpgfs_20km_akf108 +++ b/parm/wmo/grib2_awpgfs_20km_akf108 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 102 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 108 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf114 b/parm/wmo/grib2_awpgfs_20km_akf114 old mode 100755 new mode 100644 index 9ae4d529a7..cddfcec776 --- a/parm/wmo/grib2_awpgfs_20km_akf114 +++ b/parm/wmo/grib2_awpgfs_20km_akf114 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 108 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 114 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf120 b/parm/wmo/grib2_awpgfs_20km_akf120 old mode 100755 new mode 100644 index a1d552553e..bcf0df3313 --- a/parm/wmo/grib2_awpgfs_20km_akf120 +++ b/parm/wmo/grib2_awpgfs_20km_akf120 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 114 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 120 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf126 b/parm/wmo/grib2_awpgfs_20km_akf126 old mode 100755 new mode 100644 index ea94259fc6..3b662c3198 --- a/parm/wmo/grib2_awpgfs_20km_akf126 +++ b/parm/wmo/grib2_awpgfs_20km_akf126 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 120 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 126 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf132 b/parm/wmo/grib2_awpgfs_20km_akf132 old mode 100755 new mode 100644 index 5af1ceb261..55a5cbaa9f --- a/parm/wmo/grib2_awpgfs_20km_akf132 +++ b/parm/wmo/grib2_awpgfs_20km_akf132 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 126 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 132 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf138 b/parm/wmo/grib2_awpgfs_20km_akf138 old mode 100755 new mode 100644 index d7e5930cbb..106640aa68 --- a/parm/wmo/grib2_awpgfs_20km_akf138 +++ b/parm/wmo/grib2_awpgfs_20km_akf138 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 132 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 138 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf144 b/parm/wmo/grib2_awpgfs_20km_akf144 old mode 100755 new mode 100644 index 2648ebb584..8b3e500bde --- a/parm/wmo/grib2_awpgfs_20km_akf144 +++ b/parm/wmo/grib2_awpgfs_20km_akf144 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 138 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 144 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf150 b/parm/wmo/grib2_awpgfs_20km_akf150 old mode 100755 new mode 100644 index ae3040ccff..7b0b9be0c8 --- a/parm/wmo/grib2_awpgfs_20km_akf150 +++ b/parm/wmo/grib2_awpgfs_20km_akf150 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 144 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 150 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf156 b/parm/wmo/grib2_awpgfs_20km_akf156 old mode 100755 new mode 100644 index a46e4465a4..b12b79bc62 --- a/parm/wmo/grib2_awpgfs_20km_akf156 +++ b/parm/wmo/grib2_awpgfs_20km_akf156 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBR98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBR98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 150 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBR98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 156 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf162 b/parm/wmo/grib2_awpgfs_20km_akf162 old mode 100755 new mode 100644 index 1fc341d0c9..efb71848af --- a/parm/wmo/grib2_awpgfs_20km_akf162 +++ b/parm/wmo/grib2_awpgfs_20km_akf162 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 156 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 162 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf168 b/parm/wmo/grib2_awpgfs_20km_akf168 old mode 100755 new mode 100644 index e3506deb4d..8b3b0835ed --- a/parm/wmo/grib2_awpgfs_20km_akf168 +++ b/parm/wmo/grib2_awpgfs_20km_akf168 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBS98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBS98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 162 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBS98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 168 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf174 b/parm/wmo/grib2_awpgfs_20km_akf174 old mode 100755 new mode 100644 index 066beb3f4a..4d9f6cbcd0 --- a/parm/wmo/grib2_awpgfs_20km_akf174 +++ b/parm/wmo/grib2_awpgfs_20km_akf174 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 168 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 174 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf180 b/parm/wmo/grib2_awpgfs_20km_akf180 old mode 100755 new mode 100644 index f69e90629f..e61a24b45e --- a/parm/wmo/grib2_awpgfs_20km_akf180 +++ b/parm/wmo/grib2_awpgfs_20km_akf180 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 174 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 180 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf186 b/parm/wmo/grib2_awpgfs_20km_akf186 old mode 100755 new mode 100644 index d7052d791d..349d880d42 --- a/parm/wmo/grib2_awpgfs_20km_akf186 +++ b/parm/wmo/grib2_awpgfs_20km_akf186 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 180 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 186 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf192 b/parm/wmo/grib2_awpgfs_20km_akf192 old mode 100755 new mode 100644 index 511be21a6a..4b75d8bc77 --- a/parm/wmo/grib2_awpgfs_20km_akf192 +++ b/parm/wmo/grib2_awpgfs_20km_akf192 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 186 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 192 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf198 b/parm/wmo/grib2_awpgfs_20km_akf198 old mode 100755 new mode 100644 index 6fff9d5108..079fde4b30 --- a/parm/wmo/grib2_awpgfs_20km_akf198 +++ b/parm/wmo/grib2_awpgfs_20km_akf198 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 192 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 198 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf204 b/parm/wmo/grib2_awpgfs_20km_akf204 old mode 100755 new mode 100644 index ebe0dfa02d..c00a859972 --- a/parm/wmo/grib2_awpgfs_20km_akf204 +++ b/parm/wmo/grib2_awpgfs_20km_akf204 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 198 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 204 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf210 b/parm/wmo/grib2_awpgfs_20km_akf210 old mode 100755 new mode 100644 index 931fb47dba..dd3ff19043 --- a/parm/wmo/grib2_awpgfs_20km_akf210 +++ b/parm/wmo/grib2_awpgfs_20km_akf210 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 204 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 210 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf216 b/parm/wmo/grib2_awpgfs_20km_akf216 old mode 100755 new mode 100644 index 1c5f7ee0de..262191524d --- a/parm/wmo/grib2_awpgfs_20km_akf216 +++ b/parm/wmo/grib2_awpgfs_20km_akf216 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 210 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 216 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf222 b/parm/wmo/grib2_awpgfs_20km_akf222 old mode 100755 new mode 100644 index 6ef9c6f781..1a578c63cd --- a/parm/wmo/grib2_awpgfs_20km_akf222 +++ b/parm/wmo/grib2_awpgfs_20km_akf222 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 216 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 222 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf228 b/parm/wmo/grib2_awpgfs_20km_akf228 old mode 100755 new mode 100644 index f4877de326..62e4393fe8 --- a/parm/wmo/grib2_awpgfs_20km_akf228 +++ b/parm/wmo/grib2_awpgfs_20km_akf228 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBX98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBX98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 222 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBX98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBX50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 228 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf234 b/parm/wmo/grib2_awpgfs_20km_akf234 old mode 100755 new mode 100644 index 3b119f5472..2ba85d0e42 --- a/parm/wmo/grib2_awpgfs_20km_akf234 +++ b/parm/wmo/grib2_awpgfs_20km_akf234 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 228 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMBZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHBZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 234 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_akf240 b/parm/wmo/grib2_awpgfs_20km_akf240 old mode 100755 new mode 100644 index aba5762df2..13c725200e --- a/parm/wmo/grib2_awpgfs_20km_akf240 +++ b/parm/wmo/grib2_awpgfs_20km_akf240 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMBY98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMBY98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 234 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMBY98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHBY50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 240 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf000 b/parm/wmo/grib2_awpgfs_20km_conusf000 old mode 100755 new mode 100644 index 7f01e5c1e5..4eab5f3dbf --- a/parm/wmo/grib2_awpgfs_20km_conusf000 +++ b/parm/wmo/grib2_awpgfs_20km_conusf000 @@ -244,4 +244,3 @@ &GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='YRNA98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 103 0 2 255 0 0 / &GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='YUNA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 103 0 10 255 0 0 / &GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='YVNA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 103 0 10 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNA50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 81 0 0 1 0 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf003 b/parm/wmo/grib2_awpgfs_20km_conusf003 old mode 100755 new mode 100644 index 53dc96a0dd..2dcb033211 --- a/parm/wmo/grib2_awpgfs_20km_conusf003 +++ b/parm/wmo/grib2_awpgfs_20km_conusf003 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 3 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf006 b/parm/wmo/grib2_awpgfs_20km_conusf006 old mode 100755 new mode 100644 index bbd3ad3c05..50a27c75b4 --- a/parm/wmo/grib2_awpgfs_20km_conusf006 +++ b/parm/wmo/grib2_awpgfs_20km_conusf006 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 6 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf009 b/parm/wmo/grib2_awpgfs_20km_conusf009 old mode 100755 new mode 100644 index 517f2b755f..1039b7c333 --- a/parm/wmo/grib2_awpgfs_20km_conusf009 +++ b/parm/wmo/grib2_awpgfs_20km_conusf009 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 9 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf012 b/parm/wmo/grib2_awpgfs_20km_conusf012 old mode 100755 new mode 100644 index 05709123e4..ab4bb22471 --- a/parm/wmo/grib2_awpgfs_20km_conusf012 +++ b/parm/wmo/grib2_awpgfs_20km_conusf012 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNC98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNC98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNC98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNC50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 12 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf015 b/parm/wmo/grib2_awpgfs_20km_conusf015 old mode 100755 new mode 100644 index 13bf29a281..05d58934e2 --- a/parm/wmo/grib2_awpgfs_20km_conusf015 +++ b/parm/wmo/grib2_awpgfs_20km_conusf015 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 15 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf018 b/parm/wmo/grib2_awpgfs_20km_conusf018 old mode 100755 new mode 100644 index 0c3ca14e5d..5ceec0fe6e --- a/parm/wmo/grib2_awpgfs_20km_conusf018 +++ b/parm/wmo/grib2_awpgfs_20km_conusf018 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMND98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMND98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMND98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHND50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 18 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf021 b/parm/wmo/grib2_awpgfs_20km_conusf021 old mode 100755 new mode 100644 index d563e9038c..4d2a378832 --- a/parm/wmo/grib2_awpgfs_20km_conusf021 +++ b/parm/wmo/grib2_awpgfs_20km_conusf021 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 21 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf024 b/parm/wmo/grib2_awpgfs_20km_conusf024 old mode 100755 new mode 100644 index 732d47d215..39a3405281 --- a/parm/wmo/grib2_awpgfs_20km_conusf024 +++ b/parm/wmo/grib2_awpgfs_20km_conusf024 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 24 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf027 b/parm/wmo/grib2_awpgfs_20km_conusf027 old mode 100755 new mode 100644 index 2f60567c3c..bb66a03391 --- a/parm/wmo/grib2_awpgfs_20km_conusf027 +++ b/parm/wmo/grib2_awpgfs_20km_conusf027 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 27 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf030 b/parm/wmo/grib2_awpgfs_20km_conusf030 old mode 100755 new mode 100644 index c65feb953d..1fa1ab2c89 --- a/parm/wmo/grib2_awpgfs_20km_conusf030 +++ b/parm/wmo/grib2_awpgfs_20km_conusf030 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNF98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNF98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNF98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNF50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 30 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf033 b/parm/wmo/grib2_awpgfs_20km_conusf033 old mode 100755 new mode 100644 index 1f8546aade..be31353fb0 --- a/parm/wmo/grib2_awpgfs_20km_conusf033 +++ b/parm/wmo/grib2_awpgfs_20km_conusf033 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 33 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf036 b/parm/wmo/grib2_awpgfs_20km_conusf036 old mode 100755 new mode 100644 index 6f80f4cd9c..aa1b5077eb --- a/parm/wmo/grib2_awpgfs_20km_conusf036 +++ b/parm/wmo/grib2_awpgfs_20km_conusf036 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNG98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNG98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNG98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNG50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 36 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf039 b/parm/wmo/grib2_awpgfs_20km_conusf039 old mode 100755 new mode 100644 index 79d5b9ee9e..4b194b44b5 --- a/parm/wmo/grib2_awpgfs_20km_conusf039 +++ b/parm/wmo/grib2_awpgfs_20km_conusf039 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 39 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf042 b/parm/wmo/grib2_awpgfs_20km_conusf042 old mode 100755 new mode 100644 index 9039e6669a..c53e757fbd --- a/parm/wmo/grib2_awpgfs_20km_conusf042 +++ b/parm/wmo/grib2_awpgfs_20km_conusf042 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 42 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf045 b/parm/wmo/grib2_awpgfs_20km_conusf045 old mode 100755 new mode 100644 index 43b70a7339..971dd0d8f5 --- a/parm/wmo/grib2_awpgfs_20km_conusf045 +++ b/parm/wmo/grib2_awpgfs_20km_conusf045 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 45 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf048 b/parm/wmo/grib2_awpgfs_20km_conusf048 old mode 100755 new mode 100644 index 8420b31f9e..35eeb58996 --- a/parm/wmo/grib2_awpgfs_20km_conusf048 +++ b/parm/wmo/grib2_awpgfs_20km_conusf048 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNI98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNI98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNI98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNI50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 48 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf051 b/parm/wmo/grib2_awpgfs_20km_conusf051 old mode 100755 new mode 100644 index 21212fe944..1d3c291e97 --- a/parm/wmo/grib2_awpgfs_20km_conusf051 +++ b/parm/wmo/grib2_awpgfs_20km_conusf051 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNR98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNR98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNR98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 51 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf054 b/parm/wmo/grib2_awpgfs_20km_conusf054 old mode 100755 new mode 100644 index 100f1b8810..3480dfdfe3 --- a/parm/wmo/grib2_awpgfs_20km_conusf054 +++ b/parm/wmo/grib2_awpgfs_20km_conusf054 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 54 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf057 b/parm/wmo/grib2_awpgfs_20km_conusf057 old mode 100755 new mode 100644 index b47e3f8da9..3fcfb4ddb0 --- a/parm/wmo/grib2_awpgfs_20km_conusf057 +++ b/parm/wmo/grib2_awpgfs_20km_conusf057 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNS98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNS98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNS98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 57 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf060 b/parm/wmo/grib2_awpgfs_20km_conusf060 old mode 100755 new mode 100644 index 3d0ced2020..813f5433f3 --- a/parm/wmo/grib2_awpgfs_20km_conusf060 +++ b/parm/wmo/grib2_awpgfs_20km_conusf060 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNJ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNJ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNJ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNJ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 60 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf063 b/parm/wmo/grib2_awpgfs_20km_conusf063 old mode 100755 new mode 100644 index 3e1715c0eb..9d16be5eb9 --- a/parm/wmo/grib2_awpgfs_20km_conusf063 +++ b/parm/wmo/grib2_awpgfs_20km_conusf063 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 63 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf066 b/parm/wmo/grib2_awpgfs_20km_conusf066 old mode 100755 new mode 100644 index 4543b34e9b..d6dd06f442 --- a/parm/wmo/grib2_awpgfs_20km_conusf066 +++ b/parm/wmo/grib2_awpgfs_20km_conusf066 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 66 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf069 b/parm/wmo/grib2_awpgfs_20km_conusf069 old mode 100755 new mode 100644 index 94e93d5fb9..76e1e30aeb --- a/parm/wmo/grib2_awpgfs_20km_conusf069 +++ b/parm/wmo/grib2_awpgfs_20km_conusf069 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 69 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf072 b/parm/wmo/grib2_awpgfs_20km_conusf072 old mode 100755 new mode 100644 index 6d1120d98c..2ed6b61b68 --- a/parm/wmo/grib2_awpgfs_20km_conusf072 +++ b/parm/wmo/grib2_awpgfs_20km_conusf072 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 72 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf075 b/parm/wmo/grib2_awpgfs_20km_conusf075 old mode 100755 new mode 100644 index 791064b5ee..2c051ae083 --- a/parm/wmo/grib2_awpgfs_20km_conusf075 +++ b/parm/wmo/grib2_awpgfs_20km_conusf075 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 75 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf078 b/parm/wmo/grib2_awpgfs_20km_conusf078 old mode 100755 new mode 100644 index 9404513db6..569f8c0bb6 --- a/parm/wmo/grib2_awpgfs_20km_conusf078 +++ b/parm/wmo/grib2_awpgfs_20km_conusf078 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 78 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf081 b/parm/wmo/grib2_awpgfs_20km_conusf081 old mode 100755 new mode 100644 index 9c5aa2975f..597f61acea --- a/parm/wmo/grib2_awpgfs_20km_conusf081 +++ b/parm/wmo/grib2_awpgfs_20km_conusf081 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 81 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf084 b/parm/wmo/grib2_awpgfs_20km_conusf084 old mode 100755 new mode 100644 index daabc52149..996b9626dd --- a/parm/wmo/grib2_awpgfs_20km_conusf084 +++ b/parm/wmo/grib2_awpgfs_20km_conusf084 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 84 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf090 b/parm/wmo/grib2_awpgfs_20km_conusf090 old mode 100755 new mode 100644 index 556413e428..5fe2520d2a --- a/parm/wmo/grib2_awpgfs_20km_conusf090 +++ b/parm/wmo/grib2_awpgfs_20km_conusf090 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 84 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 90 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf096 b/parm/wmo/grib2_awpgfs_20km_conusf096 old mode 100755 new mode 100644 index e85c6806d2..929273abc9 --- a/parm/wmo/grib2_awpgfs_20km_conusf096 +++ b/parm/wmo/grib2_awpgfs_20km_conusf096 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 90 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 96 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf102 b/parm/wmo/grib2_awpgfs_20km_conusf102 old mode 100755 new mode 100644 index 3a94ed6d7a..f19cc7f452 --- a/parm/wmo/grib2_awpgfs_20km_conusf102 +++ b/parm/wmo/grib2_awpgfs_20km_conusf102 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 96 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 102 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf108 b/parm/wmo/grib2_awpgfs_20km_conusf108 old mode 100755 new mode 100644 index 15791c7f0d..02064150e2 --- a/parm/wmo/grib2_awpgfs_20km_conusf108 +++ b/parm/wmo/grib2_awpgfs_20km_conusf108 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 102 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 108 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf114 b/parm/wmo/grib2_awpgfs_20km_conusf114 old mode 100755 new mode 100644 index 1b463748ba..27041b534e --- a/parm/wmo/grib2_awpgfs_20km_conusf114 +++ b/parm/wmo/grib2_awpgfs_20km_conusf114 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 108 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 114 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf120 b/parm/wmo/grib2_awpgfs_20km_conusf120 old mode 100755 new mode 100644 index d999d337aa..7d84f7362a --- a/parm/wmo/grib2_awpgfs_20km_conusf120 +++ b/parm/wmo/grib2_awpgfs_20km_conusf120 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 114 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 120 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf126 b/parm/wmo/grib2_awpgfs_20km_conusf126 old mode 100755 new mode 100644 index 8093531f5c..cf1c0150eb --- a/parm/wmo/grib2_awpgfs_20km_conusf126 +++ b/parm/wmo/grib2_awpgfs_20km_conusf126 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 120 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 126 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf132 b/parm/wmo/grib2_awpgfs_20km_conusf132 old mode 100755 new mode 100644 index 29274839c5..4a3e914eea --- a/parm/wmo/grib2_awpgfs_20km_conusf132 +++ b/parm/wmo/grib2_awpgfs_20km_conusf132 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 126 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 132 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf138 b/parm/wmo/grib2_awpgfs_20km_conusf138 old mode 100755 new mode 100644 index 078852567d..1d467bd4cb --- a/parm/wmo/grib2_awpgfs_20km_conusf138 +++ b/parm/wmo/grib2_awpgfs_20km_conusf138 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 132 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 138 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf144 b/parm/wmo/grib2_awpgfs_20km_conusf144 old mode 100755 new mode 100644 index 3832ffebf0..40435975ba --- a/parm/wmo/grib2_awpgfs_20km_conusf144 +++ b/parm/wmo/grib2_awpgfs_20km_conusf144 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 138 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 144 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf150 b/parm/wmo/grib2_awpgfs_20km_conusf150 old mode 100755 new mode 100644 index 9363e31e6e..69fcd59ccb --- a/parm/wmo/grib2_awpgfs_20km_conusf150 +++ b/parm/wmo/grib2_awpgfs_20km_conusf150 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 144 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 150 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf156 b/parm/wmo/grib2_awpgfs_20km_conusf156 old mode 100755 new mode 100644 index fe979bd8a9..a480c29ebf --- a/parm/wmo/grib2_awpgfs_20km_conusf156 +++ b/parm/wmo/grib2_awpgfs_20km_conusf156 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNR98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNR98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 150 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNR98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 156 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf162 b/parm/wmo/grib2_awpgfs_20km_conusf162 old mode 100755 new mode 100644 index 3e700a0387..698d228b38 --- a/parm/wmo/grib2_awpgfs_20km_conusf162 +++ b/parm/wmo/grib2_awpgfs_20km_conusf162 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 156 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 162 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf168 b/parm/wmo/grib2_awpgfs_20km_conusf168 old mode 100755 new mode 100644 index 4facefb063..45c7612a6c --- a/parm/wmo/grib2_awpgfs_20km_conusf168 +++ b/parm/wmo/grib2_awpgfs_20km_conusf168 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNS98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNS98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 162 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNS98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 168 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf174 b/parm/wmo/grib2_awpgfs_20km_conusf174 old mode 100755 new mode 100644 index 944e55c175..b1a1450f81 --- a/parm/wmo/grib2_awpgfs_20km_conusf174 +++ b/parm/wmo/grib2_awpgfs_20km_conusf174 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 168 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 174 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf180 b/parm/wmo/grib2_awpgfs_20km_conusf180 old mode 100755 new mode 100644 index 60dce469ef..6dc9d02160 --- a/parm/wmo/grib2_awpgfs_20km_conusf180 +++ b/parm/wmo/grib2_awpgfs_20km_conusf180 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 174 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 180 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf186 b/parm/wmo/grib2_awpgfs_20km_conusf186 old mode 100755 new mode 100644 index f96cc79ca9..0db98746e9 --- a/parm/wmo/grib2_awpgfs_20km_conusf186 +++ b/parm/wmo/grib2_awpgfs_20km_conusf186 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 180 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 186 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf192 b/parm/wmo/grib2_awpgfs_20km_conusf192 old mode 100755 new mode 100644 index d02b6187cf..6ce1771f48 --- a/parm/wmo/grib2_awpgfs_20km_conusf192 +++ b/parm/wmo/grib2_awpgfs_20km_conusf192 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 186 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 192 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf198 b/parm/wmo/grib2_awpgfs_20km_conusf198 old mode 100755 new mode 100644 index 99926e8509..982195a2b7 --- a/parm/wmo/grib2_awpgfs_20km_conusf198 +++ b/parm/wmo/grib2_awpgfs_20km_conusf198 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 192 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 198 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf204 b/parm/wmo/grib2_awpgfs_20km_conusf204 old mode 100755 new mode 100644 index 3328d8e59b..1d1a20f44b --- a/parm/wmo/grib2_awpgfs_20km_conusf204 +++ b/parm/wmo/grib2_awpgfs_20km_conusf204 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 198 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 204 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf210 b/parm/wmo/grib2_awpgfs_20km_conusf210 old mode 100755 new mode 100644 index 9e2d08bf70..c0c1760d15 --- a/parm/wmo/grib2_awpgfs_20km_conusf210 +++ b/parm/wmo/grib2_awpgfs_20km_conusf210 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 204 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 210 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf216 b/parm/wmo/grib2_awpgfs_20km_conusf216 old mode 100755 new mode 100644 index cc4b1d5a74..6f467f23c3 --- a/parm/wmo/grib2_awpgfs_20km_conusf216 +++ b/parm/wmo/grib2_awpgfs_20km_conusf216 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 210 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 216 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf222 b/parm/wmo/grib2_awpgfs_20km_conusf222 old mode 100755 new mode 100644 index 7554255da8..092999981f --- a/parm/wmo/grib2_awpgfs_20km_conusf222 +++ b/parm/wmo/grib2_awpgfs_20km_conusf222 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 216 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 222 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf228 b/parm/wmo/grib2_awpgfs_20km_conusf228 old mode 100755 new mode 100644 index cd9f57aff9..b27f934fdf --- a/parm/wmo/grib2_awpgfs_20km_conusf228 +++ b/parm/wmo/grib2_awpgfs_20km_conusf228 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNX98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNX98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 222 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNX98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNX50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 228 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf234 b/parm/wmo/grib2_awpgfs_20km_conusf234 old mode 100755 new mode 100644 index cf23a6f4d9..988b92775e --- a/parm/wmo/grib2_awpgfs_20km_conusf234 +++ b/parm/wmo/grib2_awpgfs_20km_conusf234 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 228 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMNZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHNZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 234 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_conusf240 b/parm/wmo/grib2_awpgfs_20km_conusf240 old mode 100755 new mode 100644 index 1bf4eb0c0a..bfa6d5b0af --- a/parm/wmo/grib2_awpgfs_20km_conusf240 +++ b/parm/wmo/grib2_awpgfs_20km_conusf240 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMNY98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMNY98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 234 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMNY98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHNY50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 240 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf000 b/parm/wmo/grib2_awpgfs_20km_pacf000 old mode 100755 new mode 100644 index c7fa00a405..f7d8962a07 --- a/parm/wmo/grib2_awpgfs_20km_pacf000 +++ b/parm/wmo/grib2_awpgfs_20km_pacf000 @@ -244,4 +244,3 @@ &GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='YREA98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 103 0 2 255 0 0 / &GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='YUEA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 103 0 10 255 0 0 / &GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='YVEA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 103 0 10 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEA50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 81 0 0 1 0 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf003 b/parm/wmo/grib2_awpgfs_20km_pacf003 old mode 100755 new mode 100644 index 47b935a775..615659755d --- a/parm/wmo/grib2_awpgfs_20km_pacf003 +++ b/parm/wmo/grib2_awpgfs_20km_pacf003 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 3 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf006 b/parm/wmo/grib2_awpgfs_20km_pacf006 old mode 100755 new mode 100644 index bb6240a8e1..42a0844227 --- a/parm/wmo/grib2_awpgfs_20km_pacf006 +++ b/parm/wmo/grib2_awpgfs_20km_pacf006 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 6 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf009 b/parm/wmo/grib2_awpgfs_20km_pacf009 old mode 100755 new mode 100644 index bbff4e6c2c..499366cad5 --- a/parm/wmo/grib2_awpgfs_20km_pacf009 +++ b/parm/wmo/grib2_awpgfs_20km_pacf009 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 9 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf012 b/parm/wmo/grib2_awpgfs_20km_pacf012 old mode 100755 new mode 100644 index 73ed96af16..22c707b26a --- a/parm/wmo/grib2_awpgfs_20km_pacf012 +++ b/parm/wmo/grib2_awpgfs_20km_pacf012 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEC98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEC98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEC98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEC50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 12 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf015 b/parm/wmo/grib2_awpgfs_20km_pacf015 old mode 100755 new mode 100644 index a5ae127ef6..6643f08f01 --- a/parm/wmo/grib2_awpgfs_20km_pacf015 +++ b/parm/wmo/grib2_awpgfs_20km_pacf015 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 15 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf018 b/parm/wmo/grib2_awpgfs_20km_pacf018 old mode 100755 new mode 100644 index db574ecf84..e1bebef654 --- a/parm/wmo/grib2_awpgfs_20km_pacf018 +++ b/parm/wmo/grib2_awpgfs_20km_pacf018 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMED98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMED98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMED98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHED50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 18 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf021 b/parm/wmo/grib2_awpgfs_20km_pacf021 old mode 100755 new mode 100644 index d5511d9c11..6aff6fd1f6 --- a/parm/wmo/grib2_awpgfs_20km_pacf021 +++ b/parm/wmo/grib2_awpgfs_20km_pacf021 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 21 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf024 b/parm/wmo/grib2_awpgfs_20km_pacf024 old mode 100755 new mode 100644 index 2d18cf49e4..c43e1a933b --- a/parm/wmo/grib2_awpgfs_20km_pacf024 +++ b/parm/wmo/grib2_awpgfs_20km_pacf024 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 24 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf027 b/parm/wmo/grib2_awpgfs_20km_pacf027 old mode 100755 new mode 100644 index b170048e1d..044f310d11 --- a/parm/wmo/grib2_awpgfs_20km_pacf027 +++ b/parm/wmo/grib2_awpgfs_20km_pacf027 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 27 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf030 b/parm/wmo/grib2_awpgfs_20km_pacf030 old mode 100755 new mode 100644 index 6af2828574..a368aeeda4 --- a/parm/wmo/grib2_awpgfs_20km_pacf030 +++ b/parm/wmo/grib2_awpgfs_20km_pacf030 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEF98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEF98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEF98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEF50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 30 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf033 b/parm/wmo/grib2_awpgfs_20km_pacf033 old mode 100755 new mode 100644 index adc5268346..22e28c1388 --- a/parm/wmo/grib2_awpgfs_20km_pacf033 +++ b/parm/wmo/grib2_awpgfs_20km_pacf033 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 33 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf036 b/parm/wmo/grib2_awpgfs_20km_pacf036 old mode 100755 new mode 100644 index 85a0f078e6..4887685aa1 --- a/parm/wmo/grib2_awpgfs_20km_pacf036 +++ b/parm/wmo/grib2_awpgfs_20km_pacf036 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEG98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEG98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEG98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEG50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 36 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf039 b/parm/wmo/grib2_awpgfs_20km_pacf039 old mode 100755 new mode 100644 index 0776191f98..37ac606d55 --- a/parm/wmo/grib2_awpgfs_20km_pacf039 +++ b/parm/wmo/grib2_awpgfs_20km_pacf039 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 39 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf042 b/parm/wmo/grib2_awpgfs_20km_pacf042 old mode 100755 new mode 100644 index 38d9589355..6f9ac0eb05 --- a/parm/wmo/grib2_awpgfs_20km_pacf042 +++ b/parm/wmo/grib2_awpgfs_20km_pacf042 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 42 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf045 b/parm/wmo/grib2_awpgfs_20km_pacf045 old mode 100755 new mode 100644 index fdc7269c69..096d7bcb3b --- a/parm/wmo/grib2_awpgfs_20km_pacf045 +++ b/parm/wmo/grib2_awpgfs_20km_pacf045 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 45 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf048 b/parm/wmo/grib2_awpgfs_20km_pacf048 old mode 100755 new mode 100644 index d56cc794e9..942c67f5dc --- a/parm/wmo/grib2_awpgfs_20km_pacf048 +++ b/parm/wmo/grib2_awpgfs_20km_pacf048 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEI98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEI98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEI98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEI50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 48 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf051 b/parm/wmo/grib2_awpgfs_20km_pacf051 old mode 100755 new mode 100644 index 5a16584d06..b56c9aaa66 --- a/parm/wmo/grib2_awpgfs_20km_pacf051 +++ b/parm/wmo/grib2_awpgfs_20km_pacf051 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMER98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMER98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMER98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHER50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 51 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf054 b/parm/wmo/grib2_awpgfs_20km_pacf054 old mode 100755 new mode 100644 index 0634463646..075f3f0bf6 --- a/parm/wmo/grib2_awpgfs_20km_pacf054 +++ b/parm/wmo/grib2_awpgfs_20km_pacf054 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 54 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf057 b/parm/wmo/grib2_awpgfs_20km_pacf057 old mode 100755 new mode 100644 index ecb50ef10e..163617c80b --- a/parm/wmo/grib2_awpgfs_20km_pacf057 +++ b/parm/wmo/grib2_awpgfs_20km_pacf057 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMES98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMES98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMES98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHES50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 57 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf060 b/parm/wmo/grib2_awpgfs_20km_pacf060 old mode 100755 new mode 100644 index 776c2524c4..34cd787012 --- a/parm/wmo/grib2_awpgfs_20km_pacf060 +++ b/parm/wmo/grib2_awpgfs_20km_pacf060 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEJ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEJ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEJ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEJ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 60 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf063 b/parm/wmo/grib2_awpgfs_20km_pacf063 old mode 100755 new mode 100644 index 78524c3c6b..d66c7f5cc6 --- a/parm/wmo/grib2_awpgfs_20km_pacf063 +++ b/parm/wmo/grib2_awpgfs_20km_pacf063 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 63 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf066 b/parm/wmo/grib2_awpgfs_20km_pacf066 old mode 100755 new mode 100644 index 027c5f6caf..dd90c84ce4 --- a/parm/wmo/grib2_awpgfs_20km_pacf066 +++ b/parm/wmo/grib2_awpgfs_20km_pacf066 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 66 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf069 b/parm/wmo/grib2_awpgfs_20km_pacf069 old mode 100755 new mode 100644 index 8e86294508..34f43a228c --- a/parm/wmo/grib2_awpgfs_20km_pacf069 +++ b/parm/wmo/grib2_awpgfs_20km_pacf069 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 69 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf072 b/parm/wmo/grib2_awpgfs_20km_pacf072 old mode 100755 new mode 100644 index c39b3c88ed..32b1d7f9b4 --- a/parm/wmo/grib2_awpgfs_20km_pacf072 +++ b/parm/wmo/grib2_awpgfs_20km_pacf072 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 72 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf075 b/parm/wmo/grib2_awpgfs_20km_pacf075 old mode 100755 new mode 100644 index fb8777b694..7d99a47b2c --- a/parm/wmo/grib2_awpgfs_20km_pacf075 +++ b/parm/wmo/grib2_awpgfs_20km_pacf075 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 75 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf078 b/parm/wmo/grib2_awpgfs_20km_pacf078 old mode 100755 new mode 100644 index 44ede8fda3..9a97afc2bb --- a/parm/wmo/grib2_awpgfs_20km_pacf078 +++ b/parm/wmo/grib2_awpgfs_20km_pacf078 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMET98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMET98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMET98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHET50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 78 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf081 b/parm/wmo/grib2_awpgfs_20km_pacf081 old mode 100755 new mode 100644 index 9f61fd833f..7061a52bf6 --- a/parm/wmo/grib2_awpgfs_20km_pacf081 +++ b/parm/wmo/grib2_awpgfs_20km_pacf081 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 81 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf084 b/parm/wmo/grib2_awpgfs_20km_pacf084 old mode 100755 new mode 100644 index 88976ac031..43cb6ea3ac --- a/parm/wmo/grib2_awpgfs_20km_pacf084 +++ b/parm/wmo/grib2_awpgfs_20km_pacf084 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 84 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf090 b/parm/wmo/grib2_awpgfs_20km_pacf090 old mode 100755 new mode 100644 index abc9474bc4..a0584a5db9 --- a/parm/wmo/grib2_awpgfs_20km_pacf090 +++ b/parm/wmo/grib2_awpgfs_20km_pacf090 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 84 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 90 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf096 b/parm/wmo/grib2_awpgfs_20km_pacf096 old mode 100755 new mode 100644 index aee4690dae..a9a6f5c0e9 --- a/parm/wmo/grib2_awpgfs_20km_pacf096 +++ b/parm/wmo/grib2_awpgfs_20km_pacf096 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 90 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 96 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf102 b/parm/wmo/grib2_awpgfs_20km_pacf102 old mode 100755 new mode 100644 index 2b09f8bb54..6d871b9cfe --- a/parm/wmo/grib2_awpgfs_20km_pacf102 +++ b/parm/wmo/grib2_awpgfs_20km_pacf102 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 96 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 102 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf108 b/parm/wmo/grib2_awpgfs_20km_pacf108 old mode 100755 new mode 100644 index e4ae7ac596..9eb756fee2 --- a/parm/wmo/grib2_awpgfs_20km_pacf108 +++ b/parm/wmo/grib2_awpgfs_20km_pacf108 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 102 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 108 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf114 b/parm/wmo/grib2_awpgfs_20km_pacf114 old mode 100755 new mode 100644 index 8adad84a16..763a29101e --- a/parm/wmo/grib2_awpgfs_20km_pacf114 +++ b/parm/wmo/grib2_awpgfs_20km_pacf114 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 108 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 114 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf120 b/parm/wmo/grib2_awpgfs_20km_pacf120 old mode 100755 new mode 100644 index afaadd99aa..ba695651a1 --- a/parm/wmo/grib2_awpgfs_20km_pacf120 +++ b/parm/wmo/grib2_awpgfs_20km_pacf120 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 114 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 120 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf126 b/parm/wmo/grib2_awpgfs_20km_pacf126 old mode 100755 new mode 100644 index 4e9bed920f..1e6a0b00d9 --- a/parm/wmo/grib2_awpgfs_20km_pacf126 +++ b/parm/wmo/grib2_awpgfs_20km_pacf126 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 120 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 126 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf132 b/parm/wmo/grib2_awpgfs_20km_pacf132 old mode 100755 new mode 100644 index 0e98b1a731..1a8d195e39 --- a/parm/wmo/grib2_awpgfs_20km_pacf132 +++ b/parm/wmo/grib2_awpgfs_20km_pacf132 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 126 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 132 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf138 b/parm/wmo/grib2_awpgfs_20km_pacf138 old mode 100755 new mode 100644 index 01b7680180..bb45bf4e02 --- a/parm/wmo/grib2_awpgfs_20km_pacf138 +++ b/parm/wmo/grib2_awpgfs_20km_pacf138 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 132 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 138 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf144 b/parm/wmo/grib2_awpgfs_20km_pacf144 old mode 100755 new mode 100644 index 4182739407..8b477f37f6 --- a/parm/wmo/grib2_awpgfs_20km_pacf144 +++ b/parm/wmo/grib2_awpgfs_20km_pacf144 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 138 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 144 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf150 b/parm/wmo/grib2_awpgfs_20km_pacf150 old mode 100755 new mode 100644 index e5e32bb233..630530ef18 --- a/parm/wmo/grib2_awpgfs_20km_pacf150 +++ b/parm/wmo/grib2_awpgfs_20km_pacf150 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 144 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 150 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf156 b/parm/wmo/grib2_awpgfs_20km_pacf156 old mode 100755 new mode 100644 index c4a8ae0862..6b35a3720e --- a/parm/wmo/grib2_awpgfs_20km_pacf156 +++ b/parm/wmo/grib2_awpgfs_20km_pacf156 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMER98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMER98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 150 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMER98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHER50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 156 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf162 b/parm/wmo/grib2_awpgfs_20km_pacf162 old mode 100755 new mode 100644 index 20fe48e86a..5e73ef8a27 --- a/parm/wmo/grib2_awpgfs_20km_pacf162 +++ b/parm/wmo/grib2_awpgfs_20km_pacf162 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 156 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 162 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf168 b/parm/wmo/grib2_awpgfs_20km_pacf168 old mode 100755 new mode 100644 index a840dc9502..047dfff1ba --- a/parm/wmo/grib2_awpgfs_20km_pacf168 +++ b/parm/wmo/grib2_awpgfs_20km_pacf168 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMES98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMES98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 162 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMES98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHES50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 168 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf174 b/parm/wmo/grib2_awpgfs_20km_pacf174 old mode 100755 new mode 100644 index dccb662267..38c11de27d --- a/parm/wmo/grib2_awpgfs_20km_pacf174 +++ b/parm/wmo/grib2_awpgfs_20km_pacf174 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 168 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 174 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf180 b/parm/wmo/grib2_awpgfs_20km_pacf180 old mode 100755 new mode 100644 index 9f57ce74b4..425f51af96 --- a/parm/wmo/grib2_awpgfs_20km_pacf180 +++ b/parm/wmo/grib2_awpgfs_20km_pacf180 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMET98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMET98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 174 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMET98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHET50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 180 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf186 b/parm/wmo/grib2_awpgfs_20km_pacf186 old mode 100755 new mode 100644 index 91989d90f8..f583cb1c68 --- a/parm/wmo/grib2_awpgfs_20km_pacf186 +++ b/parm/wmo/grib2_awpgfs_20km_pacf186 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 180 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 186 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf192 b/parm/wmo/grib2_awpgfs_20km_pacf192 old mode 100755 new mode 100644 index 9821c49718..222ac22555 --- a/parm/wmo/grib2_awpgfs_20km_pacf192 +++ b/parm/wmo/grib2_awpgfs_20km_pacf192 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 186 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 192 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf198 b/parm/wmo/grib2_awpgfs_20km_pacf198 old mode 100755 new mode 100644 index 94f928a3c0..f3d6a5993c --- a/parm/wmo/grib2_awpgfs_20km_pacf198 +++ b/parm/wmo/grib2_awpgfs_20km_pacf198 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 192 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 198 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf204 b/parm/wmo/grib2_awpgfs_20km_pacf204 old mode 100755 new mode 100644 index 14dd5f216a..8ba14d995c --- a/parm/wmo/grib2_awpgfs_20km_pacf204 +++ b/parm/wmo/grib2_awpgfs_20km_pacf204 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 198 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 204 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf210 b/parm/wmo/grib2_awpgfs_20km_pacf210 old mode 100755 new mode 100644 index 8b34045f87..bd16958c58 --- a/parm/wmo/grib2_awpgfs_20km_pacf210 +++ b/parm/wmo/grib2_awpgfs_20km_pacf210 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 204 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 210 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf216 b/parm/wmo/grib2_awpgfs_20km_pacf216 old mode 100755 new mode 100644 index 47811b7299..2dbf7c239b --- a/parm/wmo/grib2_awpgfs_20km_pacf216 +++ b/parm/wmo/grib2_awpgfs_20km_pacf216 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 210 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 216 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf222 b/parm/wmo/grib2_awpgfs_20km_pacf222 old mode 100755 new mode 100644 index 5f16240d66..aa95af5bb2 --- a/parm/wmo/grib2_awpgfs_20km_pacf222 +++ b/parm/wmo/grib2_awpgfs_20km_pacf222 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 216 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 222 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf228 b/parm/wmo/grib2_awpgfs_20km_pacf228 old mode 100755 new mode 100644 index 3d14baa0a4..96827f922e --- a/parm/wmo/grib2_awpgfs_20km_pacf228 +++ b/parm/wmo/grib2_awpgfs_20km_pacf228 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEX98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEX98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 222 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEX98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEX50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 228 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf234 b/parm/wmo/grib2_awpgfs_20km_pacf234 old mode 100755 new mode 100644 index b453e49c74..8a2952c88c --- a/parm/wmo/grib2_awpgfs_20km_pacf234 +++ b/parm/wmo/grib2_awpgfs_20km_pacf234 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 228 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMEZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHEZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 234 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pacf240 b/parm/wmo/grib2_awpgfs_20km_pacf240 old mode 100755 new mode 100644 index f16100a730..6e5585597e --- a/parm/wmo/grib2_awpgfs_20km_pacf240 +++ b/parm/wmo/grib2_awpgfs_20km_pacf240 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMEY98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMEY98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 234 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMEY98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHEY50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 240 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof000 b/parm/wmo/grib2_awpgfs_20km_pricof000 old mode 100755 new mode 100644 index 9176d315d0..30a4ab9c97 --- a/parm/wmo/grib2_awpgfs_20km_pricof000 +++ b/parm/wmo/grib2_awpgfs_20km_pricof000 @@ -244,4 +244,3 @@ &GRIBIDS DESC=' R H 2 m above ground ',WMOHEAD='YRFA98 KWBC',PDTN= 0 ,PDT= 1 1 2 0 81 0 0 1 0 103 0 2 255 0 0 / &GRIBIDS DESC=' U GRD 10 m above ground ',WMOHEAD='YUFA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 2 2 0 81 0 0 1 0 103 0 10 255 0 0 / &GRIBIDS DESC=' V GRD 10 m above ground ',WMOHEAD='YVFA98 KWBC',EXTRACT=.true.,PDTN= 0 ,PDT= 2 3 2 0 81 0 0 1 0 103 0 10 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFA50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 81 0 0 1 0 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof003 b/parm/wmo/grib2_awpgfs_20km_pricof003 old mode 100755 new mode 100644 index cbadb4af77..a5e85cc253 --- a/parm/wmo/grib2_awpgfs_20km_pricof003 +++ b/parm/wmo/grib2_awpgfs_20km_pricof003 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 3 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof006 b/parm/wmo/grib2_awpgfs_20km_pricof006 old mode 100755 new mode 100644 index cf5714e07e..a39a57d385 --- a/parm/wmo/grib2_awpgfs_20km_pricof006 +++ b/parm/wmo/grib2_awpgfs_20km_pricof006 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFB98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFB98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 0 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFB98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 0 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFB50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 6 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof009 b/parm/wmo/grib2_awpgfs_20km_pricof009 old mode 100755 new mode 100644 index 08ff2ea168..2429e41cb9 --- a/parm/wmo/grib2_awpgfs_20km_pricof009 +++ b/parm/wmo/grib2_awpgfs_20km_pricof009 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 9 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof012 b/parm/wmo/grib2_awpgfs_20km_pricof012 old mode 100755 new mode 100644 index f91641c710..5434a6d5df --- a/parm/wmo/grib2_awpgfs_20km_pricof012 +++ b/parm/wmo/grib2_awpgfs_20km_pricof012 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFC98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFC98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 6 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFC98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 6 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFC50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 12 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof015 b/parm/wmo/grib2_awpgfs_20km_pricof015 old mode 100755 new mode 100644 index 283058739e..7ae9210d5c --- a/parm/wmo/grib2_awpgfs_20km_pricof015 +++ b/parm/wmo/grib2_awpgfs_20km_pricof015 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 15 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof018 b/parm/wmo/grib2_awpgfs_20km_pricof018 old mode 100755 new mode 100644 index 2aa9c7d004..dac0fc8e7a --- a/parm/wmo/grib2_awpgfs_20km_pricof018 +++ b/parm/wmo/grib2_awpgfs_20km_pricof018 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFD98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFD98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 12 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFD98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 12 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFD50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 18 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof021 b/parm/wmo/grib2_awpgfs_20km_pricof021 old mode 100755 new mode 100644 index f89a2bc7c2..3827769168 --- a/parm/wmo/grib2_awpgfs_20km_pricof021 +++ b/parm/wmo/grib2_awpgfs_20km_pricof021 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 21 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof024 b/parm/wmo/grib2_awpgfs_20km_pricof024 old mode 100755 new mode 100644 index 0437191493..7790a82dd6 --- a/parm/wmo/grib2_awpgfs_20km_pricof024 +++ b/parm/wmo/grib2_awpgfs_20km_pricof024 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFE98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFE98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 18 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFE98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 18 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFE50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 24 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof027 b/parm/wmo/grib2_awpgfs_20km_pricof027 old mode 100755 new mode 100644 index 1e7b64b975..c4061b3cfb --- a/parm/wmo/grib2_awpgfs_20km_pricof027 +++ b/parm/wmo/grib2_awpgfs_20km_pricof027 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 27 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof030 b/parm/wmo/grib2_awpgfs_20km_pricof030 old mode 100755 new mode 100644 index e077044b63..ecd42983ea --- a/parm/wmo/grib2_awpgfs_20km_pricof030 +++ b/parm/wmo/grib2_awpgfs_20km_pricof030 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFF98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFF98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 24 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFF98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 24 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFF50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 30 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof033 b/parm/wmo/grib2_awpgfs_20km_pricof033 old mode 100755 new mode 100644 index c263817fbd..b52c822509 --- a/parm/wmo/grib2_awpgfs_20km_pricof033 +++ b/parm/wmo/grib2_awpgfs_20km_pricof033 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 33 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof036 b/parm/wmo/grib2_awpgfs_20km_pricof036 old mode 100755 new mode 100644 index 0c203b0ef3..f7a61e77a0 --- a/parm/wmo/grib2_awpgfs_20km_pricof036 +++ b/parm/wmo/grib2_awpgfs_20km_pricof036 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFG98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFG98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 30 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFG98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 30 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFG50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 36 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof039 b/parm/wmo/grib2_awpgfs_20km_pricof039 old mode 100755 new mode 100644 index b01cd38b69..b9db65e3a6 --- a/parm/wmo/grib2_awpgfs_20km_pricof039 +++ b/parm/wmo/grib2_awpgfs_20km_pricof039 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 39 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof042 b/parm/wmo/grib2_awpgfs_20km_pricof042 old mode 100755 new mode 100644 index ed943b0742..6a48338337 --- a/parm/wmo/grib2_awpgfs_20km_pricof042 +++ b/parm/wmo/grib2_awpgfs_20km_pricof042 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFH98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFH98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 36 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFH98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 36 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFH50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 42 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof045 b/parm/wmo/grib2_awpgfs_20km_pricof045 old mode 100755 new mode 100644 index 79203a36fb..7c17dfb93b --- a/parm/wmo/grib2_awpgfs_20km_pricof045 +++ b/parm/wmo/grib2_awpgfs_20km_pricof045 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 45 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof048 b/parm/wmo/grib2_awpgfs_20km_pricof048 old mode 100755 new mode 100644 index 78df86dbde..8314c7f4c2 --- a/parm/wmo/grib2_awpgfs_20km_pricof048 +++ b/parm/wmo/grib2_awpgfs_20km_pricof048 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFI98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFI98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 42 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFI98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 42 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFI50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 48 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof051 b/parm/wmo/grib2_awpgfs_20km_pricof051 old mode 100755 new mode 100644 index ae823170c1..4d3c979ab9 --- a/parm/wmo/grib2_awpgfs_20km_pricof051 +++ b/parm/wmo/grib2_awpgfs_20km_pricof051 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFR98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFR98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFR98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 51 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof054 b/parm/wmo/grib2_awpgfs_20km_pricof054 old mode 100755 new mode 100644 index 1a6d7d9e7d..733651a581 --- a/parm/wmo/grib2_awpgfs_20km_pricof054 +++ b/parm/wmo/grib2_awpgfs_20km_pricof054 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 48 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 48 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 54 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof057 b/parm/wmo/grib2_awpgfs_20km_pricof057 old mode 100755 new mode 100644 index 388c715b7a..69ab83ae93 --- a/parm/wmo/grib2_awpgfs_20km_pricof057 +++ b/parm/wmo/grib2_awpgfs_20km_pricof057 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFS98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFS98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFS98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 57 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof060 b/parm/wmo/grib2_awpgfs_20km_pricof060 old mode 100755 new mode 100644 index 0716664cdb..8e6f93bf47 --- a/parm/wmo/grib2_awpgfs_20km_pricof060 +++ b/parm/wmo/grib2_awpgfs_20km_pricof060 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFJ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFJ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 54 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFJ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 54 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFJ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 60 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof063 b/parm/wmo/grib2_awpgfs_20km_pricof063 old mode 100755 new mode 100644 index fb6bdd29d4..7e476e243e --- a/parm/wmo/grib2_awpgfs_20km_pricof063 +++ b/parm/wmo/grib2_awpgfs_20km_pricof063 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 63 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof066 b/parm/wmo/grib2_awpgfs_20km_pricof066 old mode 100755 new mode 100644 index c42f47401d..25e03e849b --- a/parm/wmo/grib2_awpgfs_20km_pricof066 +++ b/parm/wmo/grib2_awpgfs_20km_pricof066 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 60 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 60 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 66 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof069 b/parm/wmo/grib2_awpgfs_20km_pricof069 old mode 100755 new mode 100644 index 4b3f9b29c1..4cb56bae36 --- a/parm/wmo/grib2_awpgfs_20km_pricof069 +++ b/parm/wmo/grib2_awpgfs_20km_pricof069 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 69 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof072 b/parm/wmo/grib2_awpgfs_20km_pricof072 old mode 100755 new mode 100644 index 00cfcc365c..61ebff1404 --- a/parm/wmo/grib2_awpgfs_20km_pricof072 +++ b/parm/wmo/grib2_awpgfs_20km_pricof072 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFK98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFK98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 66 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFK98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 66 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFK50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 72 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof075 b/parm/wmo/grib2_awpgfs_20km_pricof075 old mode 100755 new mode 100644 index 8a0416ef07..b53bec9eee --- a/parm/wmo/grib2_awpgfs_20km_pricof075 +++ b/parm/wmo/grib2_awpgfs_20km_pricof075 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 75 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof078 b/parm/wmo/grib2_awpgfs_20km_pricof078 old mode 100755 new mode 100644 index ee2ee8ddf7..568533f6ba --- a/parm/wmo/grib2_awpgfs_20km_pricof078 +++ b/parm/wmo/grib2_awpgfs_20km_pricof078 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 72 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 72 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 78 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof081 b/parm/wmo/grib2_awpgfs_20km_pricof081 old mode 100755 new mode 100644 index f9e0aa3d21..aa1ba8ce90 --- a/parm/wmo/grib2_awpgfs_20km_pricof081 +++ b/parm/wmo/grib2_awpgfs_20km_pricof081 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 81 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof084 b/parm/wmo/grib2_awpgfs_20km_pricof084 old mode 100755 new mode 100644 index c677a301fd..41fec436f0 --- a/parm/wmo/grib2_awpgfs_20km_pricof084 +++ b/parm/wmo/grib2_awpgfs_20km_pricof084 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFL98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFL98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 78 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFL98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 78 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFL50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 84 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof090 b/parm/wmo/grib2_awpgfs_20km_pricof090 old mode 100755 new mode 100644 index 306d6d75dc..1d09cfad2f --- a/parm/wmo/grib2_awpgfs_20km_pricof090 +++ b/parm/wmo/grib2_awpgfs_20km_pricof090 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 84 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 84 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 84 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 90 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof096 b/parm/wmo/grib2_awpgfs_20km_pricof096 old mode 100755 new mode 100644 index a12951614d..fe587a6886 --- a/parm/wmo/grib2_awpgfs_20km_pricof096 +++ b/parm/wmo/grib2_awpgfs_20km_pricof096 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFM98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 90 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFM98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 90 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFM98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 90 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFM50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 96 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof102 b/parm/wmo/grib2_awpgfs_20km_pricof102 old mode 100755 new mode 100644 index ef4854490f..bf931e2cf4 --- a/parm/wmo/grib2_awpgfs_20km_pricof102 +++ b/parm/wmo/grib2_awpgfs_20km_pricof102 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 96 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 96 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 96 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 102 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof108 b/parm/wmo/grib2_awpgfs_20km_pricof108 old mode 100755 new mode 100644 index 3da2f9177f..d250c49331 --- a/parm/wmo/grib2_awpgfs_20km_pricof108 +++ b/parm/wmo/grib2_awpgfs_20km_pricof108 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFN98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 102 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFN98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 102 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFN98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 102 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFN50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 108 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof114 b/parm/wmo/grib2_awpgfs_20km_pricof114 old mode 100755 new mode 100644 index 26e4d54f6f..7c537d9b7e --- a/parm/wmo/grib2_awpgfs_20km_pricof114 +++ b/parm/wmo/grib2_awpgfs_20km_pricof114 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 108 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 108 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 108 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 114 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof120 b/parm/wmo/grib2_awpgfs_20km_pricof120 old mode 100755 new mode 100644 index 7a260eab2e..c514b4356c --- a/parm/wmo/grib2_awpgfs_20km_pricof120 +++ b/parm/wmo/grib2_awpgfs_20km_pricof120 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFO98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 114 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFO98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 114 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFO98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 114 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFO50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 120 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof126 b/parm/wmo/grib2_awpgfs_20km_pricof126 old mode 100755 new mode 100644 index d18f9e743f..bfc5f89f69 --- a/parm/wmo/grib2_awpgfs_20km_pricof126 +++ b/parm/wmo/grib2_awpgfs_20km_pricof126 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 120 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 120 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 120 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 126 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof132 b/parm/wmo/grib2_awpgfs_20km_pricof132 old mode 100755 new mode 100644 index 35c62afcc6..bfbfada303 --- a/parm/wmo/grib2_awpgfs_20km_pricof132 +++ b/parm/wmo/grib2_awpgfs_20km_pricof132 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFP98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 126 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFP98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 126 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFP98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 126 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFP50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 132 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof138 b/parm/wmo/grib2_awpgfs_20km_pricof138 old mode 100755 new mode 100644 index 829e67e533..2143bcbadf --- a/parm/wmo/grib2_awpgfs_20km_pricof138 +++ b/parm/wmo/grib2_awpgfs_20km_pricof138 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 132 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 132 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 132 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 138 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof144 b/parm/wmo/grib2_awpgfs_20km_pricof144 old mode 100755 new mode 100644 index 876ed5fe85..cc62b63206 --- a/parm/wmo/grib2_awpgfs_20km_pricof144 +++ b/parm/wmo/grib2_awpgfs_20km_pricof144 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFQ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 138 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFQ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 138 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFQ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 138 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFQ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 144 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof150 b/parm/wmo/grib2_awpgfs_20km_pricof150 old mode 100755 new mode 100644 index 03fef0dda5..6f4fe892ef --- a/parm/wmo/grib2_awpgfs_20km_pricof150 +++ b/parm/wmo/grib2_awpgfs_20km_pricof150 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 144 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 144 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 144 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 150 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof156 b/parm/wmo/grib2_awpgfs_20km_pricof156 old mode 100755 new mode 100644 index fea4ca9cfe..6c9e1671b3 --- a/parm/wmo/grib2_awpgfs_20km_pricof156 +++ b/parm/wmo/grib2_awpgfs_20km_pricof156 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFR98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 150 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFR98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 150 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFR98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 150 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFR50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 156 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof162 b/parm/wmo/grib2_awpgfs_20km_pricof162 old mode 100755 new mode 100644 index 5835a01fa3..fd055eaca8 --- a/parm/wmo/grib2_awpgfs_20km_pricof162 +++ b/parm/wmo/grib2_awpgfs_20km_pricof162 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 156 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 156 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 156 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 162 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof168 b/parm/wmo/grib2_awpgfs_20km_pricof168 old mode 100755 new mode 100644 index 0c75306bc4..3f441ed4ae --- a/parm/wmo/grib2_awpgfs_20km_pricof168 +++ b/parm/wmo/grib2_awpgfs_20km_pricof168 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFS98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 162 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFS98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 162 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFS98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 162 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFS50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 168 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof174 b/parm/wmo/grib2_awpgfs_20km_pricof174 old mode 100755 new mode 100644 index 7ce79c5ffe..aee3d7ac21 --- a/parm/wmo/grib2_awpgfs_20km_pricof174 +++ b/parm/wmo/grib2_awpgfs_20km_pricof174 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 168 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 168 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 168 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 174 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof180 b/parm/wmo/grib2_awpgfs_20km_pricof180 old mode 100755 new mode 100644 index 49b5a469dc..3ec98e42e0 --- a/parm/wmo/grib2_awpgfs_20km_pricof180 +++ b/parm/wmo/grib2_awpgfs_20km_pricof180 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFT98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 174 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFT98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 174 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFT98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 174 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFT50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 180 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof186 b/parm/wmo/grib2_awpgfs_20km_pricof186 old mode 100755 new mode 100644 index 20a62039d8..2c7a8c2619 --- a/parm/wmo/grib2_awpgfs_20km_pricof186 +++ b/parm/wmo/grib2_awpgfs_20km_pricof186 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 180 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 180 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 180 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 186 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof192 b/parm/wmo/grib2_awpgfs_20km_pricof192 old mode 100755 new mode 100644 index 00c6c760af..90c66e5767 --- a/parm/wmo/grib2_awpgfs_20km_pricof192 +++ b/parm/wmo/grib2_awpgfs_20km_pricof192 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFU98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 186 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFU98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 186 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFU98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 186 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFU50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 192 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof198 b/parm/wmo/grib2_awpgfs_20km_pricof198 old mode 100755 new mode 100644 index d399329c61..50e04eb42a --- a/parm/wmo/grib2_awpgfs_20km_pricof198 +++ b/parm/wmo/grib2_awpgfs_20km_pricof198 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 192 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 192 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 192 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 198 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof204 b/parm/wmo/grib2_awpgfs_20km_pricof204 old mode 100755 new mode 100644 index 9b8840ab0c..f18f237151 --- a/parm/wmo/grib2_awpgfs_20km_pricof204 +++ b/parm/wmo/grib2_awpgfs_20km_pricof204 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFV98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 198 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFV98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 198 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFV98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 198 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFV50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 204 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof210 b/parm/wmo/grib2_awpgfs_20km_pricof210 old mode 100755 new mode 100644 index 9b1b447fa8..8d753952dd --- a/parm/wmo/grib2_awpgfs_20km_pricof210 +++ b/parm/wmo/grib2_awpgfs_20km_pricof210 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 204 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 204 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 204 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 210 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof216 b/parm/wmo/grib2_awpgfs_20km_pricof216 old mode 100755 new mode 100644 index 7d8c5f088f..af9bd58622 --- a/parm/wmo/grib2_awpgfs_20km_pricof216 +++ b/parm/wmo/grib2_awpgfs_20km_pricof216 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFW98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 210 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFW98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 210 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFW98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 210 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFW50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 216 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof222 b/parm/wmo/grib2_awpgfs_20km_pricof222 old mode 100755 new mode 100644 index 586f8195ae..774c31319f --- a/parm/wmo/grib2_awpgfs_20km_pricof222 +++ b/parm/wmo/grib2_awpgfs_20km_pricof222 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 216 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 216 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 216 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 222 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof228 b/parm/wmo/grib2_awpgfs_20km_pricof228 old mode 100755 new mode 100644 index 62d6a293fb..6947978f81 --- a/parm/wmo/grib2_awpgfs_20km_pricof228 +++ b/parm/wmo/grib2_awpgfs_20km_pricof228 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFX98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 222 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFX98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 222 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFX98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 222 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFX50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 228 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof234 b/parm/wmo/grib2_awpgfs_20km_pricof234 old mode 100755 new mode 100644 index 0101a0994e..0761e4dec3 --- a/parm/wmo/grib2_awpgfs_20km_pricof234 +++ b/parm/wmo/grib2_awpgfs_20km_pricof234 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 228 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 228 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='ZMFZ98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 228 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='ZHFZ50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 234 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib2_awpgfs_20km_pricof240 b/parm/wmo/grib2_awpgfs_20km_pricof240 old mode 100755 new mode 100644 index f1f5b62f86..438240e80a --- a/parm/wmo/grib2_awpgfs_20km_pricof240 +++ b/parm/wmo/grib2_awpgfs_20km_pricof240 @@ -255,4 +255,3 @@ &GRIBIDS DESC=' CFRZR Surface ',WMOHEAD='YMFY98 KWBC',PDTN= 8 ,PDT= 1 193 2 0 96 0 0 1 234 1 0 0 255 0 0 / &GRIBIDS DESC=' CICEP Surface ',WMOHEAD='YMFY98 KWBC',PDTN= 8 ,PDT= 1 194 2 0 96 0 0 1 234 1 0 0 255 0 0 / &GRIBIDS DESC=' CSNOW Surface ',WMOHEAD='YMFY98 KWBC',PDTN= 8 ,PDT= 1 195 2 0 96 0 0 1 234 1 0 0 255 0 0 / -&GRIBIDS DESC=' 5WAVH 500 mb ',WMOHEAD='YHFY50 KWBC',PDTN= 0 ,PDT= 3 193 2 0 96 0 0 1 240 100 0 50000 255 0 0 / diff --git a/parm/wmo/grib_awpgfs000.225 b/parm/wmo/grib_awpgfs000.225 deleted file mode 100755 index 54b2522e6a..0000000000 --- a/parm/wmo/grib_awpgfs000.225 +++ /dev/null @@ -1,245 +0,0 @@ - 00001C02 0751FF80 076403E8...00010000 07 1000.0 MB HGT - 225 00 YHZA99 0 EOM - 00001C02 0751FF80 076403B6...00010000 07 950.0 MB HGT - 225 00 YHZA95 0 EOM - 00001C02 0751FF80 07640384...00010000 07 900.0 MB HGT - 225 00 YHZA90 0 EOM - 00001C02 0751FF80 07640352...00010000 07 850.0 MB HGT - 225 00 YHZA85 0 EOM - 00001C02 0751FF80 07640320...00010000 07 800.0 MB HGT - 225 00 YHZA80 0 EOM - 00001C02 0751FF80 076402EE...00010000 07 750.0 MB HGT - 225 00 YHZA75 0 EOM - 00001C02 0751FF80 076402BC...00010000 07 700.0 MB HGT - 225 00 YHZA70 0 EOM - 00001C02 0751FF80 0764028A...00010000 07 650.0 MB HGT - 225 00 YHZA65 0 EOM - 00001C02 0751FF80 07640258...00010000 07 600.0 MB HGT - 225 00 YHZA60 0 EOM - 00001C02 0751FF80 07640226...00010000 07 550.0 MB HGT - 225 00 YHZA55 0 EOM - 00001C02 0751FF80 076401F4...00010000 07 500.0 MB HGT - 225 00 YHZA50 0 EOM - 00001C02 0751FF80 076401C2...00010000 07 450.0 MB HGT - 225 00 YHZA45 0 EOM - 00001C02 0751FF80 07640190...00010000 07 400.0 MB HGT - 225 00 YHZA40 0 EOM - 00001C02 0751FF80 0764015E...00010000 07 350.0 MB HGT - 225 00 YHZA35 0 EOM - 00001C02 0751FF80 0764012C...00010000 07 300.0 MB HGT - 225 00 YHZA30 0 EOM - 00001C02 0751FF80 076400FA...00010000 07 250.0 MB HGT - 225 00 YHZA25 0 EOM - 00001C02 0751FF80 076400C8...00010000 07 200.0 MB HGT - 225 00 YHZA20 0 EOM - 00001C02 0751FF80 07640096...00010000 07 150.0 MB HGT - 225 00 YHZA15 0 EOM - 00001C02 0751FF80 07640064...00010000 07 100.0 MB HGT - 225 00 YHZA10 0 EOM - 00001C02 0751FF80 216403E8...00010000 33 1000.0 MB U GRD - 225 00 YUZA99 0 EOM - 00001C02 0751FF80 216403B6...00010000 33 950.0 MB U GRD - 225 00 YUZA95 0 EOM - 00001C02 0751FF80 21640384...00010000 33 900.0 MB U GRD - 225 00 YUZA90 0 EOM - 00001C02 0751FF80 21640352...00010000 33 850.0 MB U GRD - 225 00 YUZA85 0 EOM - 00001C02 0751FF80 21640320...00010000 33 800.0 MB U GRD - 225 00 YUZA80 0 EOM - 00001C02 0751FF80 216402EE...00010000 33 750.0 MB U GRD - 225 00 YUZA75 0 EOM - 00001C02 0751FF80 216402BC...00010000 33 700.0 MB U GRD - 225 00 YUZA70 0 EOM - 00001C02 0751FF80 2164028A...00010000 33 650.0 MB U GRD - 225 00 YUZA65 0 EOM - 00001C02 0751FF80 21640258...00010000 33 600.0 MB U GRD - 225 00 YUZA60 0 EOM - 00001C02 0751FF80 21640226...00010000 33 550.0 MB U GRD - 225 00 YUZA55 0 EOM - 00001C02 0751FF80 216401F4...00010000 33 500.0 MB U GRD - 225 00 YUZA50 0 EOM - 00001C02 0751FF80 216401C2...00010000 33 450.0 MB U GRD - 225 00 YUZA45 0 EOM - 00001C02 0751FF80 21640190...00010000 33 400.0 MB U GRD - 225 00 YUZA40 0 EOM - 00001C02 0751FF80 2164015E...00010000 33 350.0 MB U GRD - 225 00 YUZA35 0 EOM - 00001C02 0751FF80 2164012C...00010000 33 300.0 MB U GRD - 225 00 YUZA30 0 EOM - 00001C02 0751FF80 216400FA...00010000 33 250.0 MB U GRD - 225 00 YUZA25 0 EOM - 00001C02 0751FF80 216400C8...00010000 33 200.0 MB U GRD - 225 00 YUZA20 0 EOM - 00001C02 0751FF80 21640096...00010000 33 150.0 MB U GRD - 225 00 YUZA15 0 EOM - 00001C02 0751FF80 21640064...00010000 33 100.0 MB U GRD - 225 00 YUZA10 0 EOM - 00001C02 0751FF80 226403E8...00010000 34 1000.0 MB V GRD - 225 00 YVZA99 0 EOM - 00001C02 0751FF80 226403B6...00010000 34 950.0 MB V GRD - 225 00 YVZA95 0 EOM - 00001C02 0751FF80 22640384...00010000 34 900.0 MB V GRD - 225 00 YVZA90 0 EOM - 00001C02 0751FF80 22640352...00010000 34 850.0 MB V GRD - 225 00 YVZA85 0 EOM - 00001C02 0751FF80 22640320...00010000 34 800.0 MB V GRD - 225 00 YVZA80 0 EOM - 00001C02 0751FF80 226402EE...00010000 34 750.0 MB V GRD - 225 00 YVZA75 0 EOM - 00001C02 0751FF80 226402BC...00010000 34 700.0 MB V GRD - 225 00 YVZA70 0 EOM - 00001C02 0751FF80 2264028A...00010000 34 650.0 MB V GRD - 225 00 YVZA65 0 EOM - 00001C02 0751FF80 22640258...00010000 34 600.0 MB V GRD - 225 00 YVZA60 0 EOM - 00001C02 0751FF80 22640226...00010000 34 550.0 MB V GRD - 225 00 YVZA55 0 EOM - 00001C02 0751FF80 226401F4...00010000 34 500.0 MB V GRD - 225 00 YVZA50 0 EOM - 00001C02 0751FF80 226401C2...00010000 34 450.0 MB V GRD - 225 00 YVZA45 0 EOM - 00001C02 0751FF80 22640190...00010000 34 400.0 MB V GRD - 225 00 YVZA40 0 EOM - 00001C02 0751FF80 2264015E...00010000 34 350.0 MB V GRD - 225 00 YVZA35 0 EOM - 00001C02 0751FF80 2264012C...00010000 34 300.0 MB V GRD - 225 00 YVZA30 0 EOM - 00001C02 0751FF80 226400FA...00010000 34 250.0 MB V GRD - 225 00 YVZA25 0 EOM - 00001C02 0751FF80 226400C8...00010000 34 200.0 MB V GRD - 225 00 YVZA20 0 EOM - 00001C02 0751FF80 22640096...00010000 34 150.0 MB V GRD - 225 00 YVZA15 0 EOM - 00001C02 0751FF80 22640064...00010000 34 100.0 MB V GRD - 225 00 YVZA10 0 EOM - 00001C02 0751FF80 346403E8...00010000 52 1000.0 MB R H - 225 00 YRZA99 0 EOM - 00001C02 0751FF80 346403B6...00010000 52 950.0 MB R H - 225 00 YRZA95 0 EOM - 00001C02 0751FF80 34640384...00010000 52 900.0 MB R H - 225 00 YRZA90 0 EOM - 00001C02 0751FF80 34640352...00010000 52 850.0 MB R H - 225 00 YRZA85 0 EOM - 00001C02 0751FF80 34640320...00010000 52 800.0 MB R H - 225 00 YRZA80 0 EOM - 00001C02 0751FF80 346402EE...00010000 52 750.0 MB R H - 225 00 YRZA75 0 EOM - 00001C02 0751FF80 346402BC...00010000 52 700.0 MB R H - 225 00 YRZA70 0 EOM - 00001C02 0751FF80 3464028A...00010000 52 650.0 MB R H - 225 00 YRZA65 0 EOM - 00001C02 0751FF80 34640258...00010000 52 600.0 MB R H - 225 00 YRZA60 0 EOM - 00001C02 0751FF80 34640226...00010000 52 550.0 MB R H - 225 00 YRZA55 0 EOM - 00001C02 0751FF80 346401F4...00010000 52 500.0 MB R H - 225 00 YRZA50 0 EOM - 00001C02 0751FF80 346401C2...00010000 52 450.0 MB R H - 225 00 YRZA45 0 EOM - 00001C02 0751FF80 34640190...00010000 52 400.0 MB R H - 225 00 YRZA40 0 EOM - 00001C02 0751FF80 3464015E...00010000 52 350.0 MB R H - 225 00 YRZA35 0 EOM - 00001C02 0751FF80 3464012C...00010000 52 300.0 MB R H - 225 00 YRZA30 0 EOM - 00001C02 0751FF80 0B6403E8...00010000 11 1000.0 MB TMP - 225 00 YTZA99 0 EOM - 00001C02 0751FF80 0B6403B6...00010000 11 950.0 MB TMP - 225 00 YTZA95 0 EOM - 00001C02 0751FF80 0B640384...00010000 11 900.0 MB TMP - 225 00 YTZA90 0 EOM - 00001C02 0751FF80 0B640352...00010000 11 850.0 MB TMP - 225 00 YTZA85 0 EOM - 00001C02 0751FF80 0B640320...00010000 11 800.0 MB TMP - 225 00 YTZA80 0 EOM - 00001C02 0751FF80 0B6402EE...00010000 11 750.0 MB TMP - 225 00 YTZA75 0 EOM - 00001C02 0751FF80 0B6402BC...00010000 11 700.0 MB TMP - 225 00 YTZA70 0 EOM - 00001C02 0751FF80 0B64028A...00010000 11 650.0 MB TMP - 225 00 YTZA65 0 EOM - 00001C02 0751FF80 0B640258...00010000 11 600.0 MB TMP - 225 00 YTZA60 0 EOM - 00001C02 0751FF80 0B640226...00010000 11 550.0 MB TMP - 225 00 YTZA55 0 EOM - 00001C02 0751FF80 0B6401F4...00010000 11 500.0 MB TMP - 225 00 YTZA50 0 EOM - 00001C02 0751FF80 0B6401C2...00010000 11 450.0 MB TMP - 225 00 YTZA45 0 EOM - 00001C02 0751FF80 0B640190...00010000 11 400.0 MB TMP - 225 00 YTZA40 0 EOM - 00001C02 0751FF80 0B64015E...00010000 11 350.0 MB TMP - 225 00 YTZA35 0 EOM - 00001C02 0751FF80 0B64012C...00010000 11 300.0 MB TMP - 225 00 YTZA30 0 EOM - 00001C02 0751FF80 0B6400FA...00010000 11 250.0 MB TMP - 225 00 YTZA25 0 EOM - 00001C02 0751FF80 0B6400C8...00010000 11 200.0 MB TMP - 225 00 YTZA20 0 EOM - 00001C02 0751FF80 0B640096...00010000 11 150.0 MB TMP - 225 00 YTZA15 0 EOM - 00001C02 0751FF80 0B640064...00010000 11 100.0 MB TMP - 225 00 YTZA10 0 EOM - 00001C02 0751FF80 01010000...00010000 01 SFC PRES - 225 00 YPZA98 0 EOM - 00001C02 0751FF80 346C2C64...00010000 52 44/100 R H - 225 00 YRZA00 0 EOM - 00001C02 0751FF80 36C80000...00010000 54 EATM P WAT - 225 00 YFZA00 0 EOM - 00001C02 0751FF80 0B070000...00010000 11 TRO TMP - 225 00 YTZA97 0 EOM - 00001C02 0751FF80 01070000...00010000 01 TRO PRES - 225 00 YPZA97 0 EOM - 00001C02 0751FF80 21070000...00010000 33 TRO U GRD - 225 00 YUZA97 0 EOM - 00001C02 0751FF80 22070000...00010000 34 TRO V GRD - 225 00 YVZA97 0 EOM - 00001C02 0751FF80 83010000...00010000 131 SFC LFT X - 225 00 YXZA98 0 EOM - 00001C02 0751FF80 27640352...00010000 39 850.0 MB V VEL - 225 00 YOZA85 0 EOM - 00001C02 0751FF80 276402BC...00010000 39 700.0 MB V VEL - 225 00 YOZA70 0 EOM - 00001C02 0751FF80 276401F4...00010000 41 500.0 MB V VEL - 225 00 YOZA50 0 EOM - 00001C02 0751FF80 2764012C...00010000 39 300.0 MB V VEL - 225 00 YOZA30 0 EOM - 00001C02 0751FF80 276400C8...00010000 39 200.0 MB V VEL - 225 00 YOZA20 0 EOM - 00001C02 0751FF80 0B690002...00010000 11 2 HTGL TMP - 225 00 YTZA98 0 EOM - 00001C02 0751FF80 2169000A...00010000 33 10 HTGL U GRD - 225 00 YUZA98 0 EOM - 00001C02 0751FF80 2269000A...00010000 34 10 HTGL V GRD - 225 00 YVZA98 0 EOM - 00001C02 0751FF80 9D010000...00010000 157 SFC CAPE - 225 00 YWZA98 0 EOM - 00001C02 0751FF80 9C010000...00010000 156 SFC CIN - 225 00 YYZA98 0 EOM - 00001C02 0751FF80 84010000...00010000 132 SFC 4LFTX - 225 00 YQZA98 0 EOM - 00001C02 0751FF80 9D74B400...00010000 157 Y 0 SPDY CAPE - 225 00 YWZA86 0 EOM - 00001C02 0751FF80 9C74B400...00010000 156 Y 0 SPDY CIN - 225 00 YYZA86 0 EOM - 00001C02 0751FF80 0B741E00...00010000 11 0 SPDY TMP - 225 00 YTZA86 0 EOM - 00001C02 0751FF80 34741E00...00010000 52 0 SPDY R H - 225 00 YRZA86 0 EOM - 00001C02 0751FF80 21741E00...00010000 33 0 SPDY U GRD - 225 00 YUZA86 0 EOM - 00001C02 0751FF80 22741E00...00010000 34 0 SPDY V GRD - 225 00 YVZA86 0 EOM - 00001C02 0751FF80 01060000...00010000 01 MWSL PRES - 225 00 YPZA96 0 EOM - 00001C02 0751FF80 21060000...00010000 33 MWSL U GRD - 225 00 YUZA96 0 EOM - 00001C02 0751FF80 22060000...00010000 34 MWSL V GRD - 225 00 YVZA96 0 EOM - 00001C02 0751FF80 07040000...00010000 07 0DEG HGT - 225 00 YHZA94 0 EOM - 00001C02 0751FF80 34040000...00010000 52 0DEG R H - 225 00 YRZA94 0 EOM - 00001C02 0751FF80 02660000...00010000 02 MSL PRMSL - 225 00 YPZA89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs006.225 b/parm/wmo/grib_awpgfs006.225 deleted file mode 100755 index 96b59fe2ca..0000000000 --- a/parm/wmo/grib_awpgfs006.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...00010006 07 1000.0 MB HGT - 225 00 YHZB99 0 EOM - 00001C02 0760FF80 076403B6...00010006 07 950.0 MB HGT - 225 00 YHZB95 0 EOM - 00001C02 0760FF80 07640384...00010006 07 900.0 MB HGT - 225 00 YHZB90 0 EOM - 00001C02 0760FF80 07640352...00010006 07 850.0 MB HGT - 225 00 YHZB85 0 EOM - 00001C02 0760FF80 07640320...00010006 07 800.0 MB HGT - 225 00 YHZB80 0 EOM - 00001C02 0760FF80 076402EE...00010006 07 750.0 MB HGT - 225 00 YHZB75 0 EOM - 00001C02 0760FF80 076402BC...00010006 07 700.0 MB HGT - 225 00 YHZB70 0 EOM - 00001C02 0760FF80 0764028A...00010006 07 650.0 MB HGT - 225 00 YHZB65 0 EOM - 00001C02 0760FF80 07640258...00010006 07 600.0 MB HGT - 225 00 YHZB60 0 EOM - 00001C02 0760FF80 07640226...00010006 07 550.0 MB HGT - 225 00 YHZB55 0 EOM - 00001C02 0760FF80 076401F4...00010006 07 500.0 MB HGT - 225 00 YHZB50 0 EOM - 00001C02 0760FF80 076401C2...00010006 07 450.0 MB HGT - 225 00 YHZB45 0 EOM - 00001C02 0760FF80 07640190...00010006 07 400.0 MB HGT - 225 00 YHZB40 0 EOM - 00001C02 0760FF80 0764015E...00010006 07 350.0 MB HGT - 225 00 YHZB35 0 EOM - 00001C02 0760FF80 0764012C...00010006 07 300.0 MB HGT - 225 00 YHZB30 0 EOM - 00001C02 0760FF80 076400FA...00010006 07 250.0 MB HGT - 225 00 YHZB25 0 EOM - 00001C02 0760FF80 076400C8...00010006 07 200.0 MB HGT - 225 00 YHZB20 0 EOM - 00001C02 0760FF80 07640096...00010006 07 150.0 MB HGT - 225 00 YHZB15 0 EOM - 00001C02 0760FF80 07640064...00010006 07 100.0 MB HGT - 225 00 YHZB10 0 EOM - 00001C02 0760FF80 216403E8...00010006 33 1000.0 MB U GRD - 225 00 YUZB99 0 EOM - 00001C02 0760FF80 216403B6...00010006 33 950.0 MB U GRD - 225 00 YUZB95 0 EOM - 00001C02 0760FF80 21640384...00010006 33 900.0 MB U GRD - 225 00 YUZB90 0 EOM - 00001C02 0760FF80 21640352...00010006 33 850.0 MB U GRD - 225 00 YUZB85 0 EOM - 00001C02 0760FF80 21640320...00010006 33 800.0 MB U GRD - 225 00 YUZB80 0 EOM - 00001C02 0760FF80 216402EE...00010006 33 750.0 MB U GRD - 225 00 YUZB75 0 EOM - 00001C02 0760FF80 216402BC...00010006 33 700.0 MB U GRD - 225 00 YUZB70 0 EOM - 00001C02 0760FF80 2164028A...00010006 33 650.0 MB U GRD - 225 00 YUZB65 0 EOM - 00001C02 0760FF80 21640258...00010006 33 600.0 MB U GRD - 225 00 YUZB60 0 EOM - 00001C02 0760FF80 21640226...00010006 33 550.0 MB U GRD - 225 00 YUZB55 0 EOM - 00001C02 0760FF80 216401F4...00010006 33 500.0 MB U GRD - 225 00 YUZB50 0 EOM - 00001C02 0760FF80 216401C2...00010006 33 450.0 MB U GRD - 225 00 YUZB45 0 EOM - 00001C02 0760FF80 21640190...00010006 33 400.0 MB U GRD - 225 00 YUZB40 0 EOM - 00001C02 0760FF80 2164015E...00010006 33 350.0 MB U GRD - 225 00 YUZB35 0 EOM - 00001C02 0760FF80 2164012C...00010006 33 300.0 MB U GRD - 225 00 YUZB30 0 EOM - 00001C02 0760FF80 216400FA...00010006 33 250.0 MB U GRD - 225 00 YUZB25 0 EOM - 00001C02 0760FF80 216400C8...00010006 33 200.0 MB U GRD - 225 00 YUZB20 0 EOM - 00001C02 0760FF80 21640096...00010006 33 150.0 MB U GRD - 225 00 YUZB15 0 EOM - 00001C02 0760FF80 21640064...00010006 33 100.0 MB U GRD - 225 00 YUZB10 0 EOM - 00001C02 0760FF80 226403E8...00010006 34 1000.0 MB V GRD - 225 00 YVZB99 0 EOM - 00001C02 0760FF80 226403B6...00010006 34 950.0 MB V GRD - 225 00 YVZB95 0 EOM - 00001C02 0760FF80 22640384...00010006 34 900.0 MB V GRD - 225 00 YVZB90 0 EOM - 00001C02 0760FF80 22640352...00010006 34 850.0 MB V GRD - 225 00 YVZB85 0 EOM - 00001C02 0760FF80 22640320...00010006 34 800.0 MB V GRD - 225 00 YVZB80 0 EOM - 00001C02 0760FF80 226402EE...00010006 34 750.0 MB V GRD - 225 00 YVZB75 0 EOM - 00001C02 0760FF80 226402BC...00010006 34 700.0 MB V GRD - 225 00 YVZB70 0 EOM - 00001C02 0760FF80 2264028A...00010006 34 650.0 MB V GRD - 225 00 YVZB65 0 EOM - 00001C02 0760FF80 22640258...00010006 34 600.0 MB V GRD - 225 00 YVZB60 0 EOM - 00001C02 0760FF80 22640226...00010006 34 550.0 MB V GRD - 225 00 YVZB55 0 EOM - 00001C02 0760FF80 226401F4...00010006 34 500.0 MB V GRD - 225 00 YVZB50 0 EOM - 00001C02 0760FF80 226401C2...00010006 34 450.0 MB V GRD - 225 00 YVZB45 0 EOM - 00001C02 0760FF80 22640190...00010006 34 400.0 MB V GRD - 225 00 YVZB40 0 EOM - 00001C02 0760FF80 2264015E...00010006 34 350.0 MB V GRD - 225 00 YVZB35 0 EOM - 00001C02 0760FF80 2264012C...00010006 34 300.0 MB V GRD - 225 00 YVZB30 0 EOM - 00001C02 0760FF80 226400FA...00010006 34 250.0 MB V GRD - 225 00 YVZB25 0 EOM - 00001C02 0760FF80 226400C8...00010006 34 200.0 MB V GRD - 225 00 YVZB20 0 EOM - 00001C02 0760FF80 22640096...00010006 34 150.0 MB V GRD - 225 00 YVZB15 0 EOM - 00001C02 0760FF80 22640064...00010006 34 100.0 MB V GRD - 225 00 YVZB10 0 EOM - 00001C02 0760FF80 346403E8...00010006 52 1000.0 MB R H - 225 00 YRZB99 0 EOM - 00001C02 0760FF80 346403B6...00010006 52 950.0 MB R H - 225 00 YRZB95 0 EOM - 00001C02 0760FF80 34640384...00010006 52 900.0 MB R H - 225 00 YRZB90 0 EOM - 00001C02 0760FF80 34640352...00010006 52 850.0 MB R H - 225 00 YRZB85 0 EOM - 00001C02 0760FF80 34640320...00010006 52 800.0 MB R H - 225 00 YRZB80 0 EOM - 00001C02 0760FF80 346402EE...00010006 52 750.0 MB R H - 225 00 YRZB75 0 EOM - 00001C02 0760FF80 346402BC...00010006 52 700.0 MB R H - 225 00 YRZB70 0 EOM - 00001C02 0760FF80 3464028A...00010006 52 650.0 MB R H - 225 00 YRZB65 0 EOM - 00001C02 0760FF80 34640258...00010006 52 600.0 MB R H - 225 00 YRZB60 0 EOM - 00001C02 0760FF80 34640226...00010006 52 550.0 MB R H - 225 00 YRZB55 0 EOM - 00001C02 0760FF80 346401F4...00010006 52 500.0 MB R H - 225 00 YRZB50 0 EOM - 00001C02 0760FF80 346401C2...00010006 52 450.0 MB R H - 225 00 YRZB45 0 EOM - 00001C02 0760FF80 34640190...00010006 52 400.0 MB R H - 225 00 YRZB40 0 EOM - 00001C02 0760FF80 3464015E...00010006 52 350.0 MB R H - 225 00 YRZB35 0 EOM - 00001C02 0760FF80 3464012C...00010006 52 300.0 MB R H - 225 00 YRZB30 0 EOM - 00001C02 0760FF80 0B6403E8...00010006 11 1000.0 MB TMP - 225 00 YTZB99 0 EOM - 00001C02 0760FF80 0B6403B6...00010006 11 950.0 MB TMP - 225 00 YTZB95 0 EOM - 00001C02 0760FF80 0B640384...00010006 11 900.0 MB TMP - 225 00 YTZB90 0 EOM - 00001C02 0760FF80 0B640352...00010006 11 850.0 MB TMP - 225 00 YTZB85 0 EOM - 00001C02 0760FF80 0B640320...00010006 11 800.0 MB TMP - 225 00 YTZB80 0 EOM - 00001C02 0760FF80 0B6402EE...00010006 11 750.0 MB TMP - 225 00 YTZB75 0 EOM - 00001C02 0760FF80 0B6402BC...00010006 11 700.0 MB TMP - 225 00 YTZB70 0 EOM - 00001C02 0760FF80 0B64028A...00010006 11 650.0 MB TMP - 225 00 YTZB65 0 EOM - 00001C02 0760FF80 0B640258...00010006 11 600.0 MB TMP - 225 00 YTZB60 0 EOM - 00001C02 0760FF80 0B640226...00010006 11 550.0 MB TMP - 225 00 YTZB55 0 EOM - 00001C02 0760FF80 0B6401F4...00010006 11 500.0 MB TMP - 225 00 YTZB50 0 EOM - 00001C02 0760FF80 0B6401C2...00010006 11 450.0 MB TMP - 225 00 YTZB45 0 EOM - 00001C02 0760FF80 0B640190...00010006 11 400.0 MB TMP - 225 00 YTZB40 0 EOM - 00001C02 0760FF80 0B64015E...00010006 11 350.0 MB TMP - 225 00 YTZB35 0 EOM - 00001C02 0760FF80 0B64012C...00010006 11 300.0 MB TMP - 225 00 YTZB30 0 EOM - 00001C02 0760FF80 0B6400FA...00010006 11 250.0 MB TMP - 225 00 YTZB25 0 EOM - 00001C02 0760FF80 0B6400C8...00010006 11 200.0 MB TMP - 225 00 YTZB20 0 EOM - 00001C02 0760FF80 0B640096...00010006 11 150.0 MB TMP - 225 00 YTZB15 0 EOM - 00001C02 0760FF80 0B640064...00010006 11 100.0 MB TMP - 225 00 YTZB10 0 EOM - 00001C02 0760FF80 27640352...00010006 39 850.0 MB V VEL - 225 00 YOZB85 0 EOM - 00001C02 0760FF80 276402BC...00010006 39 700.0 MB V VEL - 225 00 YOZB70 0 EOM - 00001C02 0760FF80 276401F4...00010006 39 500.0 MB V VEL - 225 00 YOZB50 0 EOM - 00001C02 0760FF80 2764012C...00010006 39 300.0 MB V VEL - 225 00 YOZB30 0 EOM - 00001C02 0760FF80 276400C8...00010006 39 200.0 MB V VEL - 225 00 YOZB20 0 EOM - 00001C02 0760FF80 01010000...00010006 01 SFC PRES - 225 00 YPZB98 0 EOM - 00001C02 0760FF80 346C2C64...00010006 52 44/100 R H - 225 00 YRZB00 0 EOM - 00001C02 0760FF80 36C80000...00010006 54 EATM P WAT - 225 00 YFZB00 0 EOM - 00001C02 0760FF80 0B070000...00010006 11 TRO TMP - 225 00 YTZB97 0 EOM - 00001C02 0760FF80 01070000...00010006 01 TRO PRES - 225 00 YPZB97 0 EOM - 00001C02 0760FF80 21070000...00010006 33 TRO U GRD - 225 00 YUZB97 0 EOM - 00001C02 0760FF80 22070000...00010006 34 TRO V GRD - 225 00 YVZB97 0 EOM - 00001C02 0760FF80 3D010000...00010006 61 SFC A PCP - 225 00 YEZB98 0 EOM - 00001C02 0760FF80 83010000...00010006 131 SFC LFT X - 225 00 YXZB98 0 EOM - 00001C02 0760FF80 0B690002...00010006 11 2 HTGL TMP - 225 00 YTZB98 0 EOM - 00001C02 0760FF80 2169000A...00010006 33 10 HTGL U GRD - 225 00 YUZB98 0 EOM - 00001C02 0760FF80 2269000A...00010006 34 10 HTGL V GRD - 225 00 YVZB98 0 EOM - 00001C02 0760FF80 9D010000...00010006 157 SFC CAPE - 225 00 YWZB98 0 EOM - 00001C02 0760FF80 9C010000...00010006 156 SFC CIN - 225 00 YYZB98 0 EOM - 00001C02 0760FF80 84010000...00010006 132 SFC 4LFTX - 225 00 YQZB98 0 EOM - 00001C02 0760FF80 9D74B400...00010006 157 Y 0 SPDY CAPE - 225 00 YWZB86 0 EOM - 00001C02 0760FF80 9C74B400...00010006 156 Y 0 SPDY CIN - 225 00 YYZB86 0 EOM - 00001C02 0760FF80 3F010000...00010006 63 ACUM SFC ACPCP - 225 00 YGZB98 0 EOM - 00001C02 0760FF80 0B741E00...00010006 11 0 SPDY TMP - 225 00 YTZB86 0 EOM - 00001C02 0760FF80 34741E00...00010006 52 0 SPDY R H - 225 00 YRZB86 0 EOM - 00001C02 0760FF80 21741E00...00010006 33 0 SPDY U GRD - 225 00 YUZB86 0 EOM - 00001C02 0760FF80 22741E00...00010006 34 0 SPDY V GRD - 225 00 YVZB86 0 EOM - 00001C02 0760FF80 01060000...00010006 01 MWSL PRES - 225 00 YPZB96 0 EOM - 00001C02 0760FF80 21060000...00010006 33 MWSL U GRD - 225 00 YUZB96 0 EOM - 00001C02 0760FF80 22060000...00010006 34 MWSL V GRD - 225 00 YVZB96 0 EOM - 00001C02 0760FF80 07040000...00010006 07 0DEG HGT - 225 00 YHZB94 0 EOM - 00001C02 0760FF80 34040000...00010006 52 0DEG R H - 225 00 YRZB94 0 EOM - 00001C02 0760FF80 02660000...00010006 02 MSL PRMSL - 225 00 YPZB89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs012.225 b/parm/wmo/grib_awpgfs012.225 deleted file mode 100755 index e1e108bdf4..0000000000 --- a/parm/wmo/grib_awpgfs012.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...0001000C 07 1000.0 MB HGT - 225 00 YHZC99 0 EOM - 00001C02 0760FF80 076403B6...0001000C 07 950.0 MB HGT - 225 00 YHZC95 0 EOM - 00001C02 0760FF80 07640384...0001000C 07 900.0 MB HGT - 225 00 YHZC90 0 EOM - 00001C02 0760FF80 07640352...0001000C 07 850.0 MB HGT - 225 00 YHZC85 0 EOM - 00001C02 0760FF80 07640320...0001000C 07 800.0 MB HGT - 225 00 YHZC80 0 EOM - 00001C02 0760FF80 076402EE...0001000C 07 750.0 MB HGT - 225 00 YHZC75 0 EOM - 00001C02 0760FF80 076402BC...0001000C 07 700.0 MB HGT - 225 00 YHZC70 0 EOM - 00001C02 0760FF80 0764028A...0001000C 07 650.0 MB HGT - 225 00 YHZC65 0 EOM - 00001C02 0760FF80 07640258...0001000C 07 600.0 MB HGT - 225 00 YHZC60 0 EOM - 00001C02 0760FF80 07640226...0001000C 07 550.0 MB HGT - 225 00 YHZC55 0 EOM - 00001C02 0760FF80 076401F4...0001000C 07 500.0 MB HGT - 225 00 YHZC50 0 EOM - 00001C02 0760FF80 076401C2...0001000C 07 450.0 MB HGT - 225 00 YHZC45 0 EOM - 00001C02 0760FF80 07640190...0001000C 07 400.0 MB HGT - 225 00 YHZC40 0 EOM - 00001C02 0760FF80 0764015E...0001000C 07 350.0 MB HGT - 225 00 YHZC35 0 EOM - 00001C02 0760FF80 0764012C...0001000C 07 300.0 MB HGT - 225 00 YHZC30 0 EOM - 00001C02 0760FF80 076400FA...0001000C 07 250.0 MB HGT - 225 00 YHZC25 0 EOM - 00001C02 0760FF80 076400C8...0001000C 07 200.0 MB HGT - 225 00 YHZC20 0 EOM - 00001C02 0760FF80 07640096...0001000C 07 150.0 MB HGT - 225 00 YHZC15 0 EOM - 00001C02 0760FF80 07640064...0001000C 07 100.0 MB HGT - 225 00 YHZC10 0 EOM - 00001C02 0760FF80 216403E8...0001000C 33 1000.0 MB U GRD - 225 00 YUZC99 0 EOM - 00001C02 0760FF80 216403B6...0001000C 33 950.0 MB U GRD - 225 00 YUZC95 0 EOM - 00001C02 0760FF80 21640384...0001000C 33 900.0 MB U GRD - 225 00 YUZC90 0 EOM - 00001C02 0760FF80 21640352...0001000C 33 850.0 MB U GRD - 225 00 YUZC85 0 EOM - 00001C02 0760FF80 21640320...0001000C 33 800.0 MB U GRD - 225 00 YUZC80 0 EOM - 00001C02 0760FF80 216402EE...0001000C 33 750.0 MB U GRD - 225 00 YUZC75 0 EOM - 00001C02 0760FF80 216402BC...0001000C 33 700.0 MB U GRD - 225 00 YUZC70 0 EOM - 00001C02 0760FF80 2164028A...0001000C 33 650.0 MB U GRD - 225 00 YUZC65 0 EOM - 00001C02 0760FF80 21640258...0001000C 33 600.0 MB U GRD - 225 00 YUZC60 0 EOM - 00001C02 0760FF80 21640226...0001000C 33 550.0 MB U GRD - 225 00 YUZC55 0 EOM - 00001C02 0760FF80 216401F4...0001000C 33 500.0 MB U GRD - 225 00 YUZC50 0 EOM - 00001C02 0760FF80 216401C2...0001000C 33 450.0 MB U GRD - 225 00 YUZC45 0 EOM - 00001C02 0760FF80 21640190...0001000C 33 400.0 MB U GRD - 225 00 YUZC40 0 EOM - 00001C02 0760FF80 2164015E...0001000C 33 350.0 MB U GRD - 225 00 YUZC35 0 EOM - 00001C02 0760FF80 2164012C...0001000C 33 300.0 MB U GRD - 225 00 YUZC30 0 EOM - 00001C02 0760FF80 216400FA...0001000C 33 250.0 MB U GRD - 225 00 YUZC25 0 EOM - 00001C02 0760FF80 216400C8...0001000C 33 200.0 MB U GRD - 225 00 YUZC20 0 EOM - 00001C02 0760FF80 21640096...0001000C 33 150.0 MB U GRD - 225 00 YUZC15 0 EOM - 00001C02 0760FF80 21640064...0001000C 33 100.0 MB U GRD - 225 00 YUZC10 0 EOM - 00001C02 0760FF80 226403E8...0001000C 34 1000.0 MB V GRD - 225 00 YVZC99 0 EOM - 00001C02 0760FF80 226403B6...0001000C 34 950.0 MB V GRD - 225 00 YVZC95 0 EOM - 00001C02 0760FF80 22640384...0001000C 34 900.0 MB V GRD - 225 00 YVZC90 0 EOM - 00001C02 0760FF80 22640352...0001000C 34 850.0 MB V GRD - 225 00 YVZC85 0 EOM - 00001C02 0760FF80 22640320...0001000C 34 800.0 MB V GRD - 225 00 YVZC80 0 EOM - 00001C02 0760FF80 226402EE...0001000C 34 750.0 MB V GRD - 225 00 YVZC75 0 EOM - 00001C02 0760FF80 226402BC...0001000C 34 700.0 MB V GRD - 225 00 YVZC70 0 EOM - 00001C02 0760FF80 2264028A...0001000C 34 650.0 MB V GRD - 225 00 YVZC65 0 EOM - 00001C02 0760FF80 22640258...0001000C 34 600.0 MB V GRD - 225 00 YVZC60 0 EOM - 00001C02 0760FF80 22640226...0001000C 34 550.0 MB V GRD - 225 00 YVZC55 0 EOM - 00001C02 0760FF80 226401F4...0001000C 34 500.0 MB V GRD - 225 00 YVZC50 0 EOM - 00001C02 0760FF80 226401C2...0001000C 34 450.0 MB V GRD - 225 00 YVZC45 0 EOM - 00001C02 0760FF80 22640190...0001000C 34 400.0 MB V GRD - 225 00 YVZC40 0 EOM - 00001C02 0760FF80 2264015E...0001000C 34 350.0 MB V GRD - 225 00 YVZC35 0 EOM - 00001C02 0760FF80 2264012C...0001000C 34 300.0 MB V GRD - 225 00 YVZC30 0 EOM - 00001C02 0760FF80 226400FA...0001000C 34 250.0 MB V GRD - 225 00 YVZC25 0 EOM - 00001C02 0760FF80 226400C8...0001000C 34 200.0 MB V GRD - 225 00 YVZC20 0 EOM - 00001C02 0760FF80 22640096...0001000C 34 150.0 MB V GRD - 225 00 YVZC15 0 EOM - 00001C02 0760FF80 22640064...0001000C 34 100.0 MB V GRD - 225 00 YVZC10 0 EOM - 00001C02 0760FF80 346403E8...0001000C 52 1000.0 MB R H - 225 00 YRZC99 0 EOM - 00001C02 0760FF80 346403B6...0001000C 52 950.0 MB R H - 225 00 YRZC95 0 EOM - 00001C02 0760FF80 34640384...0001000C 52 900.0 MB R H - 225 00 YRZC90 0 EOM - 00001C02 0760FF80 34640352...0001000C 52 850.0 MB R H - 225 00 YRZC85 0 EOM - 00001C02 0760FF80 34640320...0001000C 52 800.0 MB R H - 225 00 YRZC80 0 EOM - 00001C02 0760FF80 346402EE...0001000C 52 750.0 MB R H - 225 00 YRZC75 0 EOM - 00001C02 0760FF80 346402BC...0001000C 52 700.0 MB R H - 225 00 YRZC70 0 EOM - 00001C02 0760FF80 3464028A...0001000C 52 650.0 MB R H - 225 00 YRZC65 0 EOM - 00001C02 0760FF80 34640258...0001000C 52 600.0 MB R H - 225 00 YRZC60 0 EOM - 00001C02 0760FF80 34640226...0001000C 52 550.0 MB R H - 225 00 YRZC55 0 EOM - 00001C02 0760FF80 346401F4...0001000C 52 500.0 MB R H - 225 00 YRZC50 0 EOM - 00001C02 0760FF80 346401C2...0001000C 52 450.0 MB R H - 225 00 YRZC45 0 EOM - 00001C02 0760FF80 34640190...0001000C 52 400.0 MB R H - 225 00 YRZC40 0 EOM - 00001C02 0760FF80 3464015E...0001000C 52 350.0 MB R H - 225 00 YRZC35 0 EOM - 00001C02 0760FF80 3464012C...0001000C 52 300.0 MB R H - 225 00 YRZC30 0 EOM - 00001C02 0760FF80 0B6403E8...0001000C 11 1000.0 MB TMP - 225 00 YTZC99 0 EOM - 00001C02 0760FF80 0B6403B6...0001000C 11 950.0 MB TMP - 225 00 YTZC95 0 EOM - 00001C02 0760FF80 0B640384...0001000C 11 900.0 MB TMP - 225 00 YTZC90 0 EOM - 00001C02 0760FF80 0B640352...0001000C 11 850.0 MB TMP - 225 00 YTZC85 0 EOM - 00001C02 0760FF80 0B640320...0001000C 11 800.0 MB TMP - 225 00 YTZC80 0 EOM - 00001C02 0760FF80 0B6402EE...0001000C 11 750.0 MB TMP - 225 00 YTZC75 0 EOM - 00001C02 0760FF80 0B6402BC...0001000C 11 700.0 MB TMP - 225 00 YTZC70 0 EOM - 00001C02 0760FF80 0B64028A...0001000C 11 650.0 MB TMP - 225 00 YTZC65 0 EOM - 00001C02 0760FF80 0B640258...0001000C 11 600.0 MB TMP - 225 00 YTZC60 0 EOM - 00001C02 0760FF80 0B640226...0001000C 11 550.0 MB TMP - 225 00 YTZC55 0 EOM - 00001C02 0760FF80 0B6401F4...0001000C 11 500.0 MB TMP - 225 00 YTZC50 0 EOM - 00001C02 0760FF80 0B6401C2...0001000C 11 450.0 MB TMP - 225 00 YTZC45 0 EOM - 00001C02 0760FF80 0B640190...0001000C 11 400.0 MB TMP - 225 00 YTZC40 0 EOM - 00001C02 0760FF80 0B64015E...0001000C 11 350.0 MB TMP - 225 00 YTZC35 0 EOM - 00001C02 0760FF80 0B64012C...0001000C 11 300.0 MB TMP - 225 00 YTZC30 0 EOM - 00001C02 0760FF80 0B6400FA...0001000C 11 250.0 MB TMP - 225 00 YTZC25 0 EOM - 00001C02 0760FF80 0B6400C8...0001000C 11 200.0 MB TMP - 225 00 YTZC20 0 EOM - 00001C02 0760FF80 0B640096...0001000C 11 150.0 MB TMP - 225 00 YTZC15 0 EOM - 00001C02 0760FF80 0B640064...0001000C 11 100.0 MB TMP - 225 00 YTZC10 0 EOM - 00001C02 0760FF80 27640352...0001000C 39 850.0 MB V VEL - 225 00 YOZC85 0 EOM - 00001C02 0760FF80 276402BC...0001000C 39 700.0 MB V VEL - 225 00 YOZC70 0 EOM - 00001C02 0760FF80 276401F4...0001000C 39 500.0 MB V VEL - 225 00 YOZC50 0 EOM - 00001C02 0760FF80 2764012C...0001000C 39 300.0 MB V VEL - 225 00 YOZC30 0 EOM - 00001C02 0760FF80 276400C8...0001000C 39 200.0 MB V VEL - 225 00 YOZC20 0 EOM - 00001C02 0760FF80 01010000...0001000C 01 SFC PRES - 225 00 YPZC98 0 EOM - 00001C02 0760FF80 346C2C64...0001000C 52 44/100 R H - 225 00 YRZC00 0 EOM - 00001C02 0760FF80 36C80000...0001000C 54 EATM P WAT - 225 00 YFZC00 0 EOM - 00001C02 0760FF80 0B070000...0001000C 11 TRO TMP - 225 00 YTZC97 0 EOM - 00001C02 0760FF80 01070000...0001000C 01 TRO PRES - 225 00 YPZC97 0 EOM - 00001C02 0760FF80 21070000...0001000C 33 TRO U GRD - 225 00 YUZC97 0 EOM - 00001C02 0760FF80 22070000...0001000C 34 TRO V GRD - 225 00 YVZC97 0 EOM - 00001C02 0760FF80 3D010000...0001060C 61 SFC A PCP - 225 00 YEZC98 0 EOM - 00001C02 0760FF80 83010000...0001000C 131 SFC LFT X - 225 00 YXZC98 0 EOM - 00001C02 0760FF80 0B690002...0001000C 11 2 HTGL TMP - 225 00 YTZC98 0 EOM - 00001C02 0760FF80 2169000A...0001000C 33 10 HTGL U GRD - 225 00 YUZC98 0 EOM - 00001C02 0760FF80 2269000A...0001000C 34 10 HTGL V GRD - 225 00 YVZC98 0 EOM - 00001C02 0760FF80 9D010000...0001000C 157 SFC CAPE - 225 00 YWZC98 0 EOM - 00001C02 0760FF80 9C010000...0001000C 156 SFC CIN - 225 00 YYZC98 0 EOM - 00001C02 0760FF80 84010000...0001000C 132 SFC 4LFTX - 225 00 YQZC98 0 EOM - 00001C02 0760FF80 9D74B400...0001000C 157 Y 0 SPDY CAPE - 225 00 YWZC86 0 EOM - 00001C02 0760FF80 9C74B400...0001000C 156 Y 0 SPDY CIN - 225 00 YYZC86 0 EOM - 00001C02 0760FF80 3F010000...0001060C 63 ACUM SFC ACPCP - 225 00 YGZC98 0 EOM - 00001C02 0760FF80 0B741E00...0001000C 11 0 SPDY TMP - 225 00 YTZC86 0 EOM - 00001C02 0760FF80 34741E00...0001000C 52 0 SPDY R H - 225 00 YRZC86 0 EOM - 00001C02 0760FF80 21741E00...0001000C 33 0 SPDY U GRD - 225 00 YUZC86 0 EOM - 00001C02 0760FF80 22741E00...0001000C 34 0 SPDY V GRD - 225 00 YVZC86 0 EOM - 00001C02 0760FF80 01060000...0001000C 01 MWSL PRES - 225 00 YPZC96 0 EOM - 00001C02 0760FF80 21060000...0001000C 33 MWSL U GRD - 225 00 YUZC96 0 EOM - 00001C02 0760FF80 22060000...0001000C 34 MWSL V GRD - 225 00 YVZC96 0 EOM - 00001C02 0760FF80 07040000...0001000C 07 0DEG HGT - 225 00 YHZC94 0 EOM - 00001C02 0760FF80 34040000...0001000C 52 0DEG R H - 225 00 YRZC94 0 EOM - 00001C02 0760FF80 02660000...0001000C 02 MSL PRMSL - 225 00 YPZC89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs018.225 b/parm/wmo/grib_awpgfs018.225 deleted file mode 100755 index 31a90876a3..0000000000 --- a/parm/wmo/grib_awpgfs018.225 +++ /dev/null @@ -1,247 +0,0 @@ - 00001C02 0760FF80 076403E8...00010012 07 1000.0 MB HGT - 225 00 YHZD99 0 EOM - 00001C02 0760FF80 076403B6...00010012 07 950.0 MB HGT - 225 00 YHZD95 0 EOM - 00001C02 0760FF80 07640384...00010012 07 900.0 MB HGT - 225 00 YHZD90 0 EOM - 00001C02 0760FF80 07640352...00010012 07 850.0 MB HGT - 225 00 YHZD85 0 EOM - 00001C02 0760FF80 07640320...00010012 07 800.0 MB HGT - 225 00 YHZD80 0 EOM - 00001C02 0760FF80 076402EE...00010012 07 750.0 MB HGT - 225 00 YHZD75 0 EOM - 00001C02 0760FF80 076402BC...00010012 07 700.0 MB HGT - 225 00 YHZD70 0 EOM - 00001C02 0760FF80 0764028A...00010012 07 650.0 MB HGT - 225 00 YHZD65 0 EOM - 00001C02 0760FF80 07640258...00010012 07 600.0 MB HGT - 225 00 YHZD60 0 EOM - 00001C02 0760FF80 076401F4...00010012 07 500.0 MB HGT - 225 00 YHZD50 0 EOM - 00001C02 0760FF80 076401C2...00010012 07 450.0 MB HGT - 225 00 YHZD45 0 EOM - 00001C02 0760FF80 07640190...00010012 07 400.0 MB HGT - 225 00 YHZD40 0 EOM - 00001C02 0760FF80 0764015E...00010012 07 350.0 MB HGT - 225 00 YHZD35 0 EOM - 00001C02 0760FF80 0764012C...00010012 07 300.0 MB HGT - 225 00 YHZD30 0 EOM - 00001C02 0760FF80 076400FA...00010012 07 250.0 MB HGT - 225 00 YHZD25 0 EOM - 00001C02 0760FF80 076400C8...00010012 07 200.0 MB HGT - 225 00 YHZD20 0 EOM - 00001C02 0760FF80 07640096...00010012 07 150.0 MB HGT - 225 00 YHZD15 0 EOM - 00001C02 0760FF80 07640064...00010012 07 100.0 MB HGT - 225 00 YHZD10 0 EOM - 00001C02 0760FF80 216403E8...00010012 33 1000.0 MB U GRD - 225 00 YUZD99 0 EOM - 00001C02 0760FF80 216403B6...00010012 33 950.0 MB U GRD - 225 00 YUZD95 0 EOM - 00001C02 0760FF80 21640384...00010012 33 900.0 MB U GRD - 225 00 YUZD90 0 EOM - 00001C02 0760FF80 21640352...00010012 33 850.0 MB U GRD - 225 00 YUZD85 0 EOM - 00001C02 0760FF80 21640320...00010012 33 800.0 MB U GRD - 225 00 YUZD80 0 EOM - 00001C02 0760FF80 216402EE...00010012 33 750.0 MB U GRD - 225 00 YUZD75 0 EOM - 00001C02 0760FF80 216402BC...00010012 33 700.0 MB U GRD - 225 00 YUZD70 0 EOM - 00001C02 0760FF80 2164028A...00010012 33 650.0 MB U GRD - 225 00 YUZD65 0 EOM - 00001C02 0760FF80 21640258...00010012 33 600.0 MB U GRD - 225 00 YUZD60 0 EOM - 00001C02 0760FF80 21640226...00010012 33 550.0 MB U GRD - 225 00 YUZD55 0 EOM - 00001C02 0760FF80 216401F4...00010012 33 500.0 MB U GRD - 225 00 YUZD50 0 EOM - 00001C02 0760FF80 216401C2...00010012 33 450.0 MB U GRD - 225 00 YUZD45 0 EOM - 00001C02 0760FF80 21640190...00010012 33 400.0 MB U GRD - 225 00 YUZD40 0 EOM - 00001C02 0760FF80 2164015E...00010012 33 350.0 MB U GRD - 225 00 YUZD35 0 EOM - 00001C02 0760FF80 2164012C...00010012 33 300.0 MB U GRD - 225 00 YUZD30 0 EOM - 00001C02 0760FF80 216400FA...00010012 33 250.0 MB U GRD - 225 00 YUZD25 0 EOM - 00001C02 0760FF80 216400C8...00010012 33 200.0 MB U GRD - 225 00 YUZD20 0 EOM - 00001C02 0760FF80 21640096...00010012 33 150.0 MB U GRD - 225 00 YUZD15 0 EOM - 00001C02 0760FF80 21640064...00010012 33 100.0 MB U GRD - 225 00 YUZD10 0 EOM - 00001C02 0760FF80 226403E8...00010012 34 1000.0 MB V GRD - 225 00 YVZD99 0 EOM - 00001C02 0760FF80 226403B6...00010012 34 950.0 MB V GRD - 225 00 YVZD95 0 EOM - 00001C02 0760FF80 22640384...00010012 34 900.0 MB V GRD - 225 00 YVZD90 0 EOM - 00001C02 0760FF80 22640352...00010012 34 850.0 MB V GRD - 225 00 YVZD85 0 EOM - 00001C02 0760FF80 22640320...00010012 34 800.0 MB V GRD - 225 00 YVZD80 0 EOM - 00001C02 0760FF80 226402EE...00010012 34 750.0 MB V GRD - 225 00 YVZD75 0 EOM - 00001C02 0760FF80 226402BC...00010012 34 700.0 MB V GRD - 225 00 YVZD70 0 EOM - 00001C02 0760FF80 2264028A...00010012 34 650.0 MB V GRD - 225 00 YVZD65 0 EOM - 00001C02 0760FF80 22640258...00010012 34 600.0 MB V GRD - 225 00 YVZD60 0 EOM - 00001C02 0760FF80 22640226...00010012 34 550.0 MB V GRD - 225 00 YVZD55 0 EOM - 00001C02 0760FF80 226401F4...00010012 34 500.0 MB V GRD - 225 00 YVZD50 0 EOM - 00001C02 0760FF80 226401C2...00010012 34 450.0 MB V GRD - 225 00 YVZD45 0 EOM - 00001C02 0760FF80 22640190...00010012 34 400.0 MB V GRD - 225 00 YVZD40 0 EOM - 00001C02 0760FF80 2264015E...00010012 34 350.0 MB V GRD - 225 00 YVZD35 0 EOM - 00001C02 0760FF80 2264012C...00010012 34 300.0 MB V GRD - 225 00 YVZD30 0 EOM - 00001C02 0760FF80 226400FA...00010012 34 250.0 MB V GRD - 225 00 YVZD25 0 EOM - 00001C02 0760FF80 226400C8...00010012 34 200.0 MB V GRD - 225 00 YVZD20 0 EOM - 00001C02 0760FF80 22640096...00010012 34 150.0 MB V GRD - 225 00 YVZD15 0 EOM - 00001C02 0760FF80 22640064...00010012 34 100.0 MB V GRD - 225 00 YVZD10 0 EOM - 00001C02 0760FF80 346403E8...00010012 52 1000.0 MB R H - 225 00 YRZD99 0 EOM - 00001C02 0760FF80 346403B6...00010012 52 950.0 MB R H - 225 00 YRZD95 0 EOM - 00001C02 0760FF80 34640384...00010012 52 900.0 MB R H - 225 00 YRZD90 0 EOM - 00001C02 0760FF80 34640352...00010012 52 850.0 MB R H - 225 00 YRZD85 0 EOM - 00001C02 0760FF80 34640320...00010012 52 800.0 MB R H - 225 00 YRZD80 0 EOM - 00001C02 0760FF80 346402EE...00010012 52 750.0 MB R H - 225 00 YRZD75 0 EOM - 00001C02 0760FF80 346402BC...00010012 52 700.0 MB R H - 225 00 YRZD70 0 EOM - 00001C02 0760FF80 3464028A...00010012 52 650.0 MB R H - 225 00 YRZD65 0 EOM - 00001C02 0760FF80 34640258...00010012 52 600.0 MB R H - 225 00 YRZD60 0 EOM - 00001C02 0760FF80 34640226...00010012 52 550.0 MB R H - 225 00 YRZD55 0 EOM - 00001C02 0760FF80 346401F4...00010012 52 500.0 MB R H - 225 00 YRZD50 0 EOM - 00001C02 0760FF80 346401C2...00010012 52 450.0 MB R H - 225 00 YRZD45 0 EOM - 00001C02 0760FF80 34640190...00010012 52 400.0 MB R H - 225 00 YRZD40 0 EOM - 00001C02 0760FF80 3464015E...00010012 52 350.0 MB R H - 225 00 YRZD35 0 EOM - 00001C02 0760FF80 3464012C...00010012 52 300.0 MB R H - 225 00 YRZD30 0 EOM - 00001C02 0760FF80 0B6403E8...00010012 11 1000.0 MB TMP - 225 00 YTZD99 0 EOM - 00001C02 0760FF80 0B6403B6...00010012 11 950.0 MB TMP - 225 00 YTZD95 0 EOM - 00001C02 0760FF80 0B640384...00010012 11 900.0 MB TMP - 225 00 YTZD90 0 EOM - 00001C02 0760FF80 0B640352...00010012 11 850.0 MB TMP - 225 00 YTZD85 0 EOM - 00001C02 0760FF80 0B640320...00010012 11 800.0 MB TMP - 225 00 YTZD80 0 EOM - 00001C02 0760FF80 0B6402EE...00010012 11 750.0 MB TMP - 225 00 YTZD75 0 EOM - 00001C02 0760FF80 0B6402BC...00010012 11 700.0 MB TMP - 225 00 YTZD70 0 EOM - 00001C02 0760FF80 0B64028A...00010012 11 650.0 MB TMP - 225 00 YTZD65 0 EOM - 00001C02 0760FF80 0B640258...00010012 11 600.0 MB TMP - 225 00 YTZD60 0 EOM - 00001C02 0760FF80 0B640226...00010012 11 550.0 MB TMP - 225 00 YTZD55 0 EOM - 00001C02 0760FF80 0B6401F4...00010012 11 500.0 MB TMP - 225 00 YTZD50 0 EOM - 00001C02 0760FF80 0B6401C2...00010012 11 450.0 MB TMP - 225 00 YTZD45 0 EOM - 00001C02 0760FF80 0B640190...00010012 11 400.0 MB TMP - 225 00 YTZD40 0 EOM - 00001C02 0760FF80 0B64015E...00010012 11 350.0 MB TMP - 225 00 YTZD35 0 EOM - 00001C02 0760FF80 0B64012C...00010012 11 300.0 MB TMP - 225 00 YTZD30 0 EOM - 00001C02 0760FF80 0B6400FA...00010012 11 250.0 MB TMP - 225 00 YTZD25 0 EOM - 00001C02 0760FF80 0B6400C8...00010012 11 200.0 MB TMP - 225 00 YTZD20 0 EOM - 00001C02 0760FF80 0B640096...00010012 11 150.0 MB TMP - 225 00 YTZD15 0 EOM - 00001C02 0760FF80 0B640064...00010012 11 100.0 MB TMP - 225 00 YTZD10 0 EOM - 00001C02 0760FF80 27640352...00010012 39 850.0 MB V VEL - 225 00 YOZD85 0 EOM - 00001C02 0760FF80 276402BC...00010012 39 700.0 MB V VEL - 225 00 YOZD70 0 EOM - 00001C02 0760FF80 276401F4...00010012 39 500.0 MB V VEL - 225 00 YOZD50 0 EOM - 00001C02 0760FF80 2764012C...00010012 39 300.0 MB V VEL - 225 00 YOZD30 0 EOM - 00001C02 0760FF80 276400C8...00010012 39 200.0 MB V VEL - 225 00 YOZD20 0 EOM - 00001C02 0760FF80 01010000...00010012 01 SFC PRES - 225 00 YPZD98 0 EOM - 00001C02 0760FF80 346C2C64...00010012 52 44/100 R H - 225 00 YRZD00 0 EOM - 00001C02 0760FF80 36C80000...00010012 54 EATM P WAT - 225 00 YFZD00 0 EOM - 00001C02 0760FF80 0B070000...00010012 11 TRO TMP - 225 00 YTZD97 0 EOM - 00001C02 0760FF80 01070000...00010012 01 TRO PRES - 225 00 YPZD97 0 EOM - 00001C02 0760FF80 21070000...00010012 33 TRO U GRD - 225 00 YUZD97 0 EOM - 00001C02 0760FF80 22070000...00010012 34 TRO V GRD - 225 00 YVZD97 0 EOM - 00001C02 0760FF80 3D010000...00010C12 61 SFC A PCP - 225 00 YEZD98 0 EOM - 00001C02 0760FF80 83010000...00010012 131 SFC LFT X - 225 00 YXZD98 0 EOM - 00001C02 0760FF80 0B690002...00010012 11 2 HTGL TMP - 225 00 YTZD98 0 EOM - 00001C02 0760FF80 2169000A...00010012 33 10 HTGL U GRD - 225 00 YUZD98 0 EOM - 00001C02 0760FF80 2269000A...00010012 34 10 HTGL V GRD - 225 00 YVZD98 0 EOM - 00001C02 0760FF80 9D010000...00010012 157 SFC CAPE - 225 00 YWZD98 0 EOM - 00001C02 0760FF80 9C010000...00010012 156 SFC CIN - 225 00 YYZD98 0 EOM - 00001C02 0760FF80 84010000...00010012 132 SFC 4LFTX - 225 00 YQZD98 0 EOM - 00001C02 0760FF80 9D74B400...00010012 157 Y 0 SPDY CAPE - 225 00 YWZD86 0 EOM - 00001C02 0760FF80 9C74B400...00010012 156 Y 0 SPDY CIN - 225 00 YYZD86 0 EOM - 00001C02 0760FF80 3F010000...00010C12 63 ACUM SFC ACPCP - 225 00 YGZD98 0 EOM - 00001C02 0760FF80 0B741E00...00010012 11 0 SPDY TMP - 225 00 YTZD86 0 EOM - 00001C02 0760FF80 34741E00...00010012 52 0 SPDY R H - 225 00 YRZD86 0 EOM - 00001C02 0760FF80 21741E00...00010012 33 0 SPDY U GRD - 225 00 YUZD86 0 EOM - 00001C02 0760FF80 22741E00...00010012 34 0 SPDY V GRD - 225 00 YVZD86 0 EOM - 00001C02 0760FF80 01060000...00010012 01 MWSL PRES - 225 00 YPZD96 0 EOM - 00001C02 0760FF80 21060000...00010012 33 MWSL U GRD - 225 00 YUZD96 0 EOM - 00001C02 0760FF80 22060000...00010012 34 MWSL V GRD - 225 00 YVZD96 0 EOM - 00001C02 0760FF80 07040000...00010012 07 0DEG HGT - 225 00 YHZD94 0 EOM - 00001C02 0760FF80 34040000...00010012 52 0DEG R H - 225 00 YRZD94 0 EOM - 00001C02 0760FF80 02660000...00010012 02 MSL PRMSL - 225 00 YPZD89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs024.225 b/parm/wmo/grib_awpgfs024.225 deleted file mode 100755 index 64d2303f82..0000000000 --- a/parm/wmo/grib_awpgfs024.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...00010018 07 1000.0 MB HGT - 225 00 YHZE99 0 EOM - 00001C02 0760FF80 076403B6...00010018 07 950.0 MB HGT - 225 00 YHZE95 0 EOM - 00001C02 0760FF80 07640384...00010018 07 900.0 MB HGT - 225 00 YHZE90 0 EOM - 00001C02 0760FF80 07640352...00010018 07 850.0 MB HGT - 225 00 YHZE85 0 EOM - 00001C02 0760FF80 07640320...00010018 07 800.0 MB HGT - 225 00 YHZE80 0 EOM - 00001C02 0760FF80 076402EE...00010018 07 750.0 MB HGT - 225 00 YHZE75 0 EOM - 00001C02 0760FF80 076402BC...00010018 07 700.0 MB HGT - 225 00 YHZE70 0 EOM - 00001C02 0760FF80 0764028A...00010018 07 650.0 MB HGT - 225 00 YHZE65 0 EOM - 00001C02 0760FF80 07640258...00010018 07 600.0 MB HGT - 225 00 YHZE60 0 EOM - 00001C02 0760FF80 07640226...00010018 07 550.0 MB HGT - 225 00 YHZE55 0 EOM - 00001C02 0760FF80 076401F4...00010018 07 500.0 MB HGT - 225 00 YHZE50 0 EOM - 00001C02 0760FF80 076401C2...00010018 07 450.0 MB HGT - 225 00 YHZE45 0 EOM - 00001C02 0760FF80 07640190...00010018 07 400.0 MB HGT - 225 00 YHZE40 0 EOM - 00001C02 0760FF80 0764015E...00010018 07 350.0 MB HGT - 225 00 YHZE35 0 EOM - 00001C02 0760FF80 0764012C...00010018 07 300.0 MB HGT - 225 00 YHZE30 0 EOM - 00001C02 0760FF80 076400FA...00010018 07 250.0 MB HGT - 225 00 YHZE25 0 EOM - 00001C02 0760FF80 076400C8...00010018 07 200.0 MB HGT - 225 00 YHZE20 0 EOM - 00001C02 0760FF80 07640096...00010018 07 150.0 MB HGT - 225 00 YHZE15 0 EOM - 00001C02 0760FF80 07640064...00010018 07 100.0 MB HGT - 225 00 YHZE10 0 EOM - 00001C02 0760FF80 216403E8...00010018 33 1000.0 MB U GRD - 225 00 YUZE99 0 EOM - 00001C02 0760FF80 216403B6...00010018 33 950.0 MB U GRD - 225 00 YUZE95 0 EOM - 00001C02 0760FF80 21640384...00010018 33 900.0 MB U GRD - 225 00 YUZE90 0 EOM - 00001C02 0760FF80 21640352...00010018 33 850.0 MB U GRD - 225 00 YUZE85 0 EOM - 00001C02 0760FF80 21640320...00010018 33 800.0 MB U GRD - 225 00 YUZE80 0 EOM - 00001C02 0760FF80 216402EE...00010018 33 750.0 MB U GRD - 225 00 YUZE75 0 EOM - 00001C02 0760FF80 216402BC...00010018 33 700.0 MB U GRD - 225 00 YUZE70 0 EOM - 00001C02 0760FF80 2164028A...00010018 33 650.0 MB U GRD - 225 00 YUZE65 0 EOM - 00001C02 0760FF80 21640258...00010018 33 600.0 MB U GRD - 225 00 YUZE60 0 EOM - 00001C02 0760FF80 21640226...00010018 33 550.0 MB U GRD - 225 00 YUZE55 0 EOM - 00001C02 0760FF80 216401F4...00010018 33 500.0 MB U GRD - 225 00 YUZE50 0 EOM - 00001C02 0760FF80 216401C2...00010018 33 450.0 MB U GRD - 225 00 YUZE45 0 EOM - 00001C02 0760FF80 21640190...00010018 33 400.0 MB U GRD - 225 00 YUZE40 0 EOM - 00001C02 0760FF80 2164015E...00010018 33 350.0 MB U GRD - 225 00 YUZE35 0 EOM - 00001C02 0760FF80 2164012C...00010018 33 300.0 MB U GRD - 225 00 YUZE30 0 EOM - 00001C02 0760FF80 216400FA...00010018 33 250.0 MB U GRD - 225 00 YUZE25 0 EOM - 00001C02 0760FF80 216400C8...00010018 33 200.0 MB U GRD - 225 00 YUZE20 0 EOM - 00001C02 0760FF80 21640096...00010018 33 150.0 MB U GRD - 225 00 YUZE15 0 EOM - 00001C02 0760FF80 21640064...00010018 33 100.0 MB U GRD - 225 00 YUZE10 0 EOM - 00001C02 0760FF80 226403E8...00010018 34 1000.0 MB V GRD - 225 00 YVZE99 0 EOM - 00001C02 0760FF80 226403B6...00010018 34 950.0 MB V GRD - 225 00 YVZE95 0 EOM - 00001C02 0760FF80 22640384...00010018 34 900.0 MB V GRD - 225 00 YVZE90 0 EOM - 00001C02 0760FF80 22640352...00010018 34 850.0 MB V GRD - 225 00 YVZE85 0 EOM - 00001C02 0760FF80 22640320...00010018 34 800.0 MB V GRD - 225 00 YVZE80 0 EOM - 00001C02 0760FF80 226402EE...00010018 34 750.0 MB V GRD - 225 00 YVZE75 0 EOM - 00001C02 0760FF80 226402BC...00010018 34 700.0 MB V GRD - 225 00 YVZE70 0 EOM - 00001C02 0760FF80 2264028A...00010018 34 650.0 MB V GRD - 225 00 YVZE65 0 EOM - 00001C02 0760FF80 22640258...00010018 34 600.0 MB V GRD - 225 00 YVZE60 0 EOM - 00001C02 0760FF80 22640226...00010018 34 550.0 MB V GRD - 225 00 YVZE55 0 EOM - 00001C02 0760FF80 226401F4...00010018 34 500.0 MB V GRD - 225 00 YVZE50 0 EOM - 00001C02 0760FF80 226401C2...00010018 34 450.0 MB V GRD - 225 00 YVZE45 0 EOM - 00001C02 0760FF80 22640190...00010018 34 400.0 MB V GRD - 225 00 YVZE40 0 EOM - 00001C02 0760FF80 2264015E...00010018 34 350.0 MB V GRD - 225 00 YVZE35 0 EOM - 00001C02 0760FF80 2264012C...00010018 34 300.0 MB V GRD - 225 00 YVZE30 0 EOM - 00001C02 0760FF80 226400FA...00010018 34 250.0 MB V GRD - 225 00 YVZE25 0 EOM - 00001C02 0760FF80 226400C8...00010018 34 200.0 MB V GRD - 225 00 YVZE20 0 EOM - 00001C02 0760FF80 22640096...00010018 34 150.0 MB V GRD - 225 00 YVZE15 0 EOM - 00001C02 0760FF80 22640064...00010018 34 100.0 MB V GRD - 225 00 YVZE10 0 EOM - 00001C02 0760FF80 346403E8...00010018 52 1000.0 MB R H - 225 00 YRZE99 0 EOM - 00001C02 0760FF80 346403B6...00010018 52 950.0 MB R H - 225 00 YRZE95 0 EOM - 00001C02 0760FF80 34640384...00010018 52 900.0 MB R H - 225 00 YRZE90 0 EOM - 00001C02 0760FF80 34640352...00010018 52 850.0 MB R H - 225 00 YRZE85 0 EOM - 00001C02 0760FF80 34640320...00010018 52 800.0 MB R H - 225 00 YRZE80 0 EOM - 00001C02 0760FF80 346402EE...00010018 52 750.0 MB R H - 225 00 YRZE75 0 EOM - 00001C02 0760FF80 346402BC...00010018 52 700.0 MB R H - 225 00 YRZE70 0 EOM - 00001C02 0760FF80 3464028A...00010018 52 650.0 MB R H - 225 00 YRZE65 0 EOM - 00001C02 0760FF80 34640258...00010018 52 600.0 MB R H - 225 00 YRZE60 0 EOM - 00001C02 0760FF80 34640226...00010018 52 550.0 MB R H - 225 00 YRZE55 0 EOM - 00001C02 0760FF80 346401F4...00010018 52 500.0 MB R H - 225 00 YRZE50 0 EOM - 00001C02 0760FF80 346401C2...00010018 52 450.0 MB R H - 225 00 YRZE45 0 EOM - 00001C02 0760FF80 34640190...00010018 52 400.0 MB R H - 225 00 YRZE40 0 EOM - 00001C02 0760FF80 3464015E...00010018 52 350.0 MB R H - 225 00 YRZE35 0 EOM - 00001C02 0760FF80 3464012C...00010018 52 300.0 MB R H - 225 00 YRZE30 0 EOM - 00001C02 0760FF80 0B6403E8...00010018 11 1000.0 MB TMP - 225 00 YTZE99 0 EOM - 00001C02 0760FF80 0B6403B6...00010018 11 950.0 MB TMP - 225 00 YTZE95 0 EOM - 00001C02 0760FF80 0B640384...00010018 11 900.0 MB TMP - 225 00 YTZE90 0 EOM - 00001C02 0760FF80 0B640352...00010018 11 850.0 MB TMP - 225 00 YTZE85 0 EOM - 00001C02 0760FF80 0B640320...00010018 11 800.0 MB TMP - 225 00 YTZE80 0 EOM - 00001C02 0760FF80 0B6402EE...00010018 11 750.0 MB TMP - 225 00 YTZE75 0 EOM - 00001C02 0760FF80 0B6402BC...00010018 11 700.0 MB TMP - 225 00 YTZE70 0 EOM - 00001C02 0760FF80 0B64028A...00010018 11 650.0 MB TMP - 225 00 YTZE65 0 EOM - 00001C02 0760FF80 0B640258...00010018 11 600.0 MB TMP - 225 00 YTZE60 0 EOM - 00001C02 0760FF80 0B640226...00010018 11 550.0 MB TMP - 225 00 YTZE55 0 EOM - 00001C02 0760FF80 0B6401F4...00010018 11 500.0 MB TMP - 225 00 YTZE50 0 EOM - 00001C02 0760FF80 0B6401C2...00010018 11 450.0 MB TMP - 225 00 YTZE45 0 EOM - 00001C02 0760FF80 0B640190...00010018 11 400.0 MB TMP - 225 00 YTZE40 0 EOM - 00001C02 0760FF80 0B64015E...00010018 11 350.0 MB TMP - 225 00 YTZE35 0 EOM - 00001C02 0760FF80 0B64012C...00010018 11 300.0 MB TMP - 225 00 YTZE30 0 EOM - 00001C02 0760FF80 0B6400FA...00010018 11 250.0 MB TMP - 225 00 YTZE25 0 EOM - 00001C02 0760FF80 0B6400C8...00010018 11 200.0 MB TMP - 225 00 YTZE20 0 EOM - 00001C02 0760FF80 0B640096...00010018 11 150.0 MB TMP - 225 00 YTZE15 0 EOM - 00001C02 0760FF80 0B640064...00010018 11 100.0 MB TMP - 225 00 YTZE10 0 EOM - 00001C02 0760FF80 27640352...00010018 39 850.0 MB V VEL - 225 00 YOZE85 0 EOM - 00001C02 0760FF80 276402BC...00010018 39 700.0 MB V VEL - 225 00 YOZE70 0 EOM - 00001C02 0760FF80 276401F4...00010018 39 500.0 MB V VEL - 225 00 YOZE50 0 EOM - 00001C02 0760FF80 2764012C...00010018 39 300.0 MB V VEL - 225 00 YOZE30 0 EOM - 00001C02 0760FF80 276400C8...00010018 39 200.0 MB V VEL - 225 00 YOZE20 0 EOM - 00001C02 0760FF80 01010000...00010018 01 SFC PRES - 225 00 YPZE98 0 EOM - 00001C02 0760FF80 346C2C64...00010018 52 44/100 R H - 225 00 YRZE00 0 EOM - 00001C02 0760FF80 36C80000...00010018 54 EATM P WAT - 225 00 YFZE00 0 EOM - 00001C02 0760FF80 0B070000...00010018 11 TRO TMP - 225 00 YTZE97 0 EOM - 00001C02 0760FF80 01070000...00010018 01 TRO PRES - 225 00 YPZE97 0 EOM - 00001C02 0760FF80 21070000...00010018 33 TRO U GRD - 225 00 YUZE97 0 EOM - 00001C02 0760FF80 22070000...00010018 34 TRO V GRD - 225 00 YVZE97 0 EOM - 00001C02 0760FF80 3D010000...00011218 61 SFC A PCP - 225 00 YEZE98 0 EOM - 00001C02 0760FF80 83010000...00010018 131 SFC LFT X - 225 00 YXZE98 0 EOM - 00001C02 0760FF80 0B690002...00010018 11 2 HTGL TMP - 225 00 YTZE98 0 EOM - 00001C02 0760FF80 2169000A...00010018 33 10 HTGL U GRD - 225 00 YUZE98 0 EOM - 00001C02 0760FF80 2269000A...00010018 34 10 HTGL V GRD - 225 00 YVZE98 0 EOM - 00001C02 0760FF80 9D010000...00010018 157 SFC CAPE - 225 00 YWZE98 0 EOM - 00001C02 0760FF80 9C010000...00010018 156 SFC CIN - 225 00 YYZE98 0 EOM - 00001C02 0760FF80 84010000...00010018 132 SFC 4LFTX - 225 00 YQZE98 0 EOM - 00001C02 0760FF80 9D74B400...00010018 157 Y 0 SPDY CAPE - 225 00 YWZE86 0 EOM - 00001C02 0760FF80 9C74B400...00010018 156 Y 0 SPDY CIN - 225 00 YYZE86 0 EOM - 00001C02 0760FF80 3F010000...00011218 63 ACUM SFC ACPCP - 225 00 YGZE98 0 EOM - 00001C02 0760FF80 0B741E00...00010018 11 0 SPDY TMP - 225 00 YTZE86 0 EOM - 00001C02 0760FF80 34741E00...00010018 52 0 SPDY R H - 225 00 YRZE86 0 EOM - 00001C02 0760FF80 21741E00...00010018 33 0 SPDY U GRD - 225 00 YUZE86 0 EOM - 00001C02 0760FF80 22741E00...00010018 34 0 SPDY V GRD - 225 00 YVZE86 0 EOM - 00001C02 0760FF80 01060000...00010018 01 MWSL PRES - 225 00 YPZE96 0 EOM - 00001C02 0760FF80 21060000...00010018 33 MWSL U GRD - 225 00 YUZE96 0 EOM - 00001C02 0760FF80 22060000...00010018 34 MWSL V GRD - 225 00 YVZE96 0 EOM - 00001C02 0760FF80 07040000...00010018 07 0DEG HGT - 225 00 YHZE94 0 EOM - 00001C02 0760FF80 34040000...00010018 52 0DEG R H - 225 00 YRZE94 0 EOM - 00001C02 0760FF80 02660000...00010018 02 MSL PRMSL - 225 00 YPZE89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs030.225 b/parm/wmo/grib_awpgfs030.225 deleted file mode 100755 index fe0c6296eb..0000000000 --- a/parm/wmo/grib_awpgfs030.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...0001001E 07 1000.0 MB HGT - 225 00 YHZF99 0 EOM - 00001C02 0760FF80 076403B6...0001001E 07 950.0 MB HGT - 225 00 YHZF95 0 EOM - 00001C02 0760FF80 07640384...0001001E 07 900.0 MB HGT - 225 00 YHZF90 0 EOM - 00001C02 0760FF80 07640352...0001001E 07 850.0 MB HGT - 225 00 YHZF85 0 EOM - 00001C02 0760FF80 07640320...0001001E 07 800.0 MB HGT - 225 00 YHZF80 0 EOM - 00001C02 0760FF80 076402EE...0001001E 07 750.0 MB HGT - 225 00 YHZF75 0 EOM - 00001C02 0760FF80 076402BC...0001001E 07 700.0 MB HGT - 225 00 YHZF70 0 EOM - 00001C02 0760FF80 0764028A...0001001E 07 650.0 MB HGT - 225 00 YHZF65 0 EOM - 00001C02 0760FF80 07640258...0001001E 07 600.0 MB HGT - 225 00 YHZF60 0 EOM - 00001C02 0760FF80 07640226...0001001E 07 550.0 MB HGT - 225 00 YHZF55 0 EOM - 00001C02 0760FF80 076401F4...0001001E 07 500.0 MB HGT - 225 00 YHZF50 0 EOM - 00001C02 0760FF80 076401C2...0001001E 07 450.0 MB HGT - 225 00 YHZF45 0 EOM - 00001C02 0760FF80 07640190...0001001E 07 400.0 MB HGT - 225 00 YHZF40 0 EOM - 00001C02 0760FF80 0764015E...0001001E 07 350.0 MB HGT - 225 00 YHZF35 0 EOM - 00001C02 0760FF80 0764012C...0001001E 07 300.0 MB HGT - 225 00 YHZF30 0 EOM - 00001C02 0760FF80 076400FA...0001001E 07 250.0 MB HGT - 225 00 YHZF25 0 EOM - 00001C02 0760FF80 076400C8...0001001E 07 200.0 MB HGT - 225 00 YHZF20 0 EOM - 00001C02 0760FF80 07640096...0001001E 07 150.0 MB HGT - 225 00 YHZF15 0 EOM - 00001C02 0760FF80 07640064...0001001E 07 100.0 MB HGT - 225 00 YHZF10 0 EOM - 00001C02 0760FF80 216403E8...0001001E 33 1000.0 MB U GRD - 225 00 YUZF99 0 EOM - 00001C02 0760FF80 216403B6...0001001E 33 950.0 MB U GRD - 225 00 YUZF95 0 EOM - 00001C02 0760FF80 21640384...0001001E 33 900.0 MB U GRD - 225 00 YUZF90 0 EOM - 00001C02 0760FF80 21640352...0001001E 33 850.0 MB U GRD - 225 00 YUZF85 0 EOM - 00001C02 0760FF80 21640320...0001001E 33 800.0 MB U GRD - 225 00 YUZF80 0 EOM - 00001C02 0760FF80 216402EE...0001001E 33 750.0 MB U GRD - 225 00 YUZF75 0 EOM - 00001C02 0760FF80 216402BC...0001001E 33 700.0 MB U GRD - 225 00 YUZF70 0 EOM - 00001C02 0760FF80 2164028A...0001001E 33 650.0 MB U GRD - 225 00 YUZF65 0 EOM - 00001C02 0760FF80 21640258...0001001E 33 600.0 MB U GRD - 225 00 YUZF60 0 EOM - 00001C02 0760FF80 21640226...0001001E 33 550.0 MB U GRD - 225 00 YUZF55 0 EOM - 00001C02 0760FF80 216401F4...0001001F 33 500.0 MB U GRD - 225 00 YUZF50 0 EOM - 00001C02 0760FF80 216401C2...0001001E 33 450.0 MB U GRD - 225 00 YUZF45 0 EOM - 00001C02 0760FF80 21640190...0001001E 33 400.0 MB U GRD - 225 00 YUZF40 0 EOM - 00001C02 0760FF80 2164015E...0001001E 33 350.0 MB U GRD - 225 00 YUZF35 0 EOM - 00001C02 0760FF80 2164012C...0001001E 33 300.0 MB U GRD - 225 00 YUZF30 0 EOM - 00001C02 0760FF80 216400FA...0001001E 33 250.0 MB U GRD - 225 00 YUZF25 0 EOM - 00001C02 0760FF80 216400C8...0001001E 33 200.0 MB U GRD - 225 00 YUZF20 0 EOM - 00001C02 0760FF80 21640096...0001001F 33 150.0 MB U GRD - 225 00 YUZF15 0 EOM - 00001C02 0760FF80 21640064...0001001E 33 100.0 MB U GRD - 225 00 YUZF10 0 EOM - 00001C02 0760FF80 226403E8...0001001E 34 1000.0 MB V GRD - 225 00 YVZF99 0 EOM - 00001C02 0760FF80 226403B6...0001001E 34 950.0 MB V GRD - 225 00 YVZF95 0 EOM - 00001C02 0760FF80 22640384...0001001E 34 900.0 MB V GRD - 225 00 YVZF90 0 EOM - 00001C02 0760FF80 22640352...0001001E 34 850.0 MB V GRD - 225 00 YVZF85 0 EOM - 00001C02 0760FF80 22640320...0001001E 34 800.0 MB V GRD - 225 00 YVZF80 0 EOM - 00001C02 0760FF80 226402EE...0001001E 34 750.0 MB V GRD - 225 00 YVZF75 0 EOM - 00001C02 0760FF80 226402BC...0001001E 34 700.0 MB V GRD - 225 00 YVZF70 0 EOM - 00001C02 0760FF80 2264028A...0001001E 34 650.0 MB V GRD - 225 00 YVZF65 0 EOM - 00001C02 0760FF80 22640258...0001001E 34 600.0 MB V GRD - 225 00 YVZF60 0 EOM - 00001C02 0760FF80 22640226...0001001E 34 550.0 MB V GRD - 225 00 YVZF55 0 EOM - 00001C02 0760FF80 226401F4...0001001E 34 500.0 MB V GRD - 225 00 YVZF50 0 EOM - 00001C02 0760FF80 226401C2...0001001E 34 450.0 MB V GRD - 225 00 YVZF45 0 EOM - 00001C02 0760FF80 22640190...0001001E 34 400.0 MB V GRD - 225 00 YVZF40 0 EOM - 00001C02 0760FF80 2264015E...0001001E 34 350.0 MB V GRD - 225 00 YVZF35 0 EOM - 00001C02 0760FF80 2264012C...0001001E 34 300.0 MB V GRD - 225 00 YVZF30 0 EOM - 00001C02 0760FF80 226400FA...0001001E 34 250.0 MB V GRD - 225 00 YVZF25 0 EOM - 00001C02 0760FF80 226400C8...0001001E 34 200.0 MB V GRD - 225 00 YVZF20 0 EOM - 00001C02 0760FF80 22640096...0001001E 34 150.0 MB V GRD - 225 00 YVZF15 0 EOM - 00001C02 0760FF80 22640064...0001001E 34 100.0 MB V GRD - 225 00 YVZF10 0 EOM - 00001C02 0760FF80 346403E8...0001001E 52 1000.0 MB R H - 225 00 YRZF99 0 EOM - 00001C02 0760FF80 346403B6...0001001E 52 950.0 MB R H - 225 00 YRZF95 0 EOM - 00001C02 0760FF80 34640384...0001001E 52 900.0 MB R H - 225 00 YRZF90 0 EOM - 00001C02 0760FF80 34640352...0001001E 52 850.0 MB R H - 225 00 YRZF85 0 EOM - 00001C02 0760FF80 34640320...0001001E 52 800.0 MB R H - 225 00 YRZF80 0 EOM - 00001C02 0760FF80 346402EE...0001001E 52 750.0 MB R H - 225 00 YRZF75 0 EOM - 00001C02 0760FF80 346402BC...0001001E 52 700.0 MB R H - 225 00 YRZF70 0 EOM - 00001C02 0760FF80 3464028A...0001001E 52 650.0 MB R H - 225 00 YRZF65 0 EOM - 00001C02 0760FF80 34640258...0001001E 52 600.0 MB R H - 225 00 YRZF60 0 EOM - 00001C02 0760FF80 34640226...0001001E 52 550.0 MB R H - 225 00 YRZF55 0 EOM - 00001C02 0760FF80 346401F4...0001001E 52 500.0 MB R H - 225 00 YRZF50 0 EOM - 00001C02 0760FF80 346401C2...0001001E 52 450.0 MB R H - 225 00 YRZF45 0 EOM - 00001C02 0760FF80 34640190...0001001E 52 400.0 MB R H - 225 00 YRZF40 0 EOM - 00001C02 0760FF80 3464015E...0001001E 52 350.0 MB R H - 225 00 YRZF35 0 EOM - 00001C02 0760FF80 3464012C...0001001E 52 300.0 MB R H - 225 00 YRZF30 0 EOM - 00001C02 0760FF80 0B6403E8...0001001E 11 1000.0 MB TMP - 225 00 YTZF99 0 EOM - 00001C02 0760FF80 0B6403B6...0001001E 11 950.0 MB TMP - 225 00 YTZF95 0 EOM - 00001C02 0760FF80 0B640384...0001001E 11 900.0 MB TMP - 225 00 YTZF90 0 EOM - 00001C02 0760FF80 0B640352...0001001E 11 850.0 MB TMP - 225 00 YTZF85 0 EOM - 00001C02 0760FF80 0B640320...0001001E 11 800.0 MB TMP - 225 00 YTZF80 0 EOM - 00001C02 0760FF80 0B6402EE...0001001E 11 750.0 MB TMP - 225 00 YTZF75 0 EOM - 00001C02 0760FF80 0B6402BC...0001001E 11 700.0 MB TMP - 225 00 YTZF70 0 EOM - 00001C02 0760FF80 0B64028A...0001001E 11 650.0 MB TMP - 225 00 YTZF65 0 EOM - 00001C02 0760FF80 0B640258...0001001E 11 600.0 MB TMP - 225 00 YTZF60 0 EOM - 00001C02 0760FF80 0B640226...0001001E 11 550.0 MB TMP - 225 00 YTZF55 0 EOM - 00001C02 0760FF80 0B6401F4...0001001E 11 500.0 MB TMP - 225 00 YTZF50 0 EOM - 00001C02 0760FF80 0B6401C2...0001001E 11 450.0 MB TMP - 225 00 YTZF45 0 EOM - 00001C02 0760FF80 0B640190...0001001E 11 400.0 MB TMP - 225 00 YTZF40 0 EOM - 00001C02 0760FF80 0B64015E...0001001E 11 350.0 MB TMP - 225 00 YTZF35 0 EOM - 00001C02 0760FF80 0B64012C...0001001E 11 300.0 MB TMP - 225 00 YTZF30 0 EOM - 00001C02 0760FF80 0B6400FA...0001001E 11 250.0 MB TMP - 225 00 YTZF25 0 EOM - 00001C02 0760FF80 0B6400C8...0001001E 11 200.0 MB TMP - 225 00 YTZF20 0 EOM - 00001C02 0760FF80 0B640096...0001001E 11 150.0 MB TMP - 225 00 YTZF15 0 EOM - 00001C02 0760FF80 0B640064...0001001E 11 100.0 MB TMP - 225 00 YTZF10 0 EOM - 00001C02 0760FF80 27640352...0001001E 39 850.0 MB V VEL - 225 00 YOZF85 0 EOM - 00001C02 0760FF80 276402BC...0001001E 39 700.0 MB V VEL - 225 00 YOZF70 0 EOM - 00001C02 0760FF80 276401F4...0001001E 39 500.0 MB V VEL - 225 00 YOZF50 0 EOM - 00001C02 0760FF80 2764012C...0001001E 39 300.0 MB V VEL - 225 00 YOZF30 0 EOM - 00001C02 0760FF80 276400C8...0001001E 39 200.0 MB V VEL - 225 00 YOZF20 0 EOM - 00001C02 0760FF80 01010000...0001001E 01 SFC PRES - 225 00 YPZF98 0 EOM - 00001C02 0760FF80 346C2C64...0001001E 52 44/100 R H - 225 00 YRZF00 0 EOM - 00001C02 0760FF80 36C80000...0001001E 54 EATM P WAT - 225 00 YFZF00 0 EOM - 00001C02 0760FF80 0B070000...0001001E 11 TRO TMP - 225 00 YTZF97 0 EOM - 00001C02 0760FF80 01070000...0001001E 01 TRO PRES - 225 00 YPZF97 0 EOM - 00001C02 0760FF80 21070000...0001001E 33 TRO U GRD - 225 00 YUZF97 0 EOM - 00001C02 0760FF80 22070000...0001001E 34 TRO V GRD - 225 00 YVZF97 0 EOM - 00001C02 0760FF80 3D010000...0001181E 61 SFC A PCP - 225 00 YEZF98 0 EOM - 00001C02 0760FF80 83010000...0001001E 131 SFC LFT X - 225 00 YXZF98 0 EOM - 00001C02 0760FF80 0B690002...0001001E 11 2 HTGL TMP - 225 00 YTZF98 0 EOM - 00001C02 0760FF80 2169000A...0001001E 33 10 HTGL U GRD - 225 00 YUZF98 0 EOM - 00001C02 0760FF80 2269000A...0001001E 34 10 HTGL V GRD - 225 00 YVZF98 0 EOM - 00001C02 0760FF80 9D010000...0001001E 157 SFC CAPE - 225 00 YWZF98 0 EOM - 00001C02 0760FF80 9C010000...0001001E 156 SFC CIN - 225 00 YYZF98 0 EOM - 00001C02 0760FF80 84010000...0001001E 132 SFC 4LFTX - 225 00 YQZF98 0 EOM - 00001C02 0760FF80 9D74B400...0001001E 157 Y 0 SPDY CAPE - 225 00 YWZF86 0 EOM - 00001C02 0760FF80 9C74B400...0001001E 156 Y 0 SPDY CIN - 225 00 YYZF86 0 EOM - 00001C02 0760FF80 3F010000...0001181E 63 ACUM SFC ACPCP - 225 00 YGZF98 0 EOM - 00001C02 0760FF80 0B741E00...0001001E 11 0 SPDY TMP - 225 00 YTZF86 0 EOM - 00001C02 0760FF80 34741E00...0001001E 52 0 SPDY R H - 225 00 YRZF86 0 EOM - 00001C02 0760FF80 21741E00...0001001E 33 0 SPDY U GRD - 225 00 YUZF86 0 EOM - 00001C02 0760FF80 22741E00...0001001E 34 0 SPDY V GRD - 225 00 YVZF86 0 EOM - 00001C02 0760FF80 01060000...0001001E 01 MWSL PRES - 225 00 YPZF96 0 EOM - 00001C02 0760FF80 21060000...0001001E 33 MWSL U GRD - 225 00 YUZF96 0 EOM - 00001C02 0760FF80 22060000...0001001E 34 MWSL V GRD - 225 00 YVZF96 0 EOM - 00001C02 0760FF80 07040000...0001001E 07 0DEG HGT - 225 00 YHZF94 0 EOM - 00001C02 0760FF80 34040000...0001001E 52 0DEG R H - 225 00 YRZF94 0 EOM - 00001C02 0760FF80 02660000...0001001E 02 MSL PRMSL - 225 00 YPZF89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs036.225 b/parm/wmo/grib_awpgfs036.225 deleted file mode 100755 index 36205837b1..0000000000 --- a/parm/wmo/grib_awpgfs036.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...00010024 07 1000.0 MB HGT - 225 00 YHZG99 0 EOM - 00001C02 0760FF80 076403B6...00010024 07 950.0 MB HGT - 225 00 YHZG95 0 EOM - 00001C02 0760FF80 07640384...00010024 07 900.0 MB HGT - 225 00 YHZG90 0 EOM - 00001C02 0760FF80 07640352...00010024 07 850.0 MB HGT - 225 00 YHZG85 0 EOM - 00001C02 0760FF80 07640320...00010024 07 800.0 MB HGT - 225 00 YHZG80 0 EOM - 00001C02 0760FF80 076402EE...00010024 07 750.0 MB HGT - 225 00 YHZG75 0 EOM - 00001C02 0760FF80 076402BC...00010024 07 700.0 MB HGT - 225 00 YHZG70 0 EOM - 00001C02 0760FF80 0764028A...00010024 07 650.0 MB HGT - 225 00 YHZG65 0 EOM - 00001C02 0760FF80 07640258...00010024 07 600.0 MB HGT - 225 00 YHZG60 0 EOM - 00001C02 0760FF80 07640226...00010024 07 550.0 MB HGT - 225 00 YHZG55 0 EOM - 00001C02 0760FF80 076401F4...00010024 07 500.0 MB HGT - 225 00 YHZG50 0 EOM - 00001C02 0760FF80 076401C2...00010024 07 450.0 MB HGT - 225 00 YHZG45 0 EOM - 00001C02 0760FF80 07640190...00010024 07 400.0 MB HGT - 225 00 YHZG40 0 EOM - 00001C02 0760FF80 0764015E...00010024 07 350.0 MB HGT - 225 00 YHZG35 0 EOM - 00001C02 0760FF80 0764012C...00010024 07 300.0 MB HGT - 225 00 YHZG30 0 EOM - 00001C02 0760FF80 076400FA...00010024 07 250.0 MB HGT - 225 00 YHZG25 0 EOM - 00001C02 0760FF80 076400C8...00010024 07 200.0 MB HGT - 225 00 YHZG20 0 EOM - 00001C02 0760FF80 07640096...00010024 07 150.0 MB HGT - 225 00 YHZG15 0 EOM - 00001C02 0760FF80 07640064...00010024 07 100.0 MB HGT - 225 00 YHZG10 0 EOM - 00001C02 0760FF80 216403E8...00010024 33 1000.0 MB U GRD - 225 00 YUZG99 0 EOM - 00001C02 0760FF80 216403B6...00010024 33 950.0 MB U GRD - 225 00 YUZG95 0 EOM - 00001C02 0760FF80 21640384...00010024 33 900.0 MB U GRD - 225 00 YUZG90 0 EOM - 00001C02 0760FF80 21640352...00010024 33 850.0 MB U GRD - 225 00 YUZG85 0 EOM - 00001C02 0760FF80 21640320...00010024 33 800.0 MB U GRD - 225 00 YUZG80 0 EOM - 00001C02 0760FF80 216402EE...00010024 33 750.0 MB U GRD - 225 00 YUZG75 0 EOM - 00001C02 0760FF80 216402BC...00010024 33 700.0 MB U GRD - 225 00 YUZG70 0 EOM - 00001C02 0760FF80 2164028A...00010024 33 650.0 MB U GRD - 225 00 YUZG65 0 EOM - 00001C02 0760FF80 21640258...00010024 33 600.0 MB U GRD - 225 00 YUZG60 0 EOM - 00001C02 0760FF80 21640226...00010024 33 550.0 MB U GRD - 225 00 YUZG55 0 EOM - 00001C02 0760FF80 216401F4...00010024 33 500.0 MB U GRD - 225 00 YUZG50 0 EOM - 00001C02 0760FF80 216401C2...00010024 33 450.0 MB U GRD - 225 00 YUZG45 0 EOM - 00001C02 0760FF80 21640190...00010024 33 400.0 MB U GRD - 225 00 YUZG40 0 EOM - 00001C02 0760FF80 2164015E...00010024 33 350.0 MB U GRD - 225 00 YUZG35 0 EOM - 00001C02 0760FF80 2164012C...00010024 33 300.0 MB U GRD - 225 00 YUZG30 0 EOM - 00001C02 0760FF80 216400FA...00010024 33 250.0 MB U GRD - 225 00 YUZG25 0 EOM - 00001C02 0760FF80 216400C8...00010024 33 200.0 MB U GRD - 225 00 YUZG20 0 EOM - 00001C02 0760FF80 21640096...00010024 33 150.0 MB U GRD - 225 00 YUZG15 0 EOM - 00001C02 0760FF80 21640064...00010024 33 100.0 MB U GRD - 225 00 YUZG10 0 EOM - 00001C02 0760FF80 226403E8...00010024 34 1000.0 MB V GRD - 225 00 YVZG99 0 EOM - 00001C02 0760FF80 226403B6...00010024 34 950.0 MB V GRD - 225 00 YVZG95 0 EOM - 00001C02 0760FF80 22640384...00010024 34 900.0 MB V GRD - 225 00 YVZG90 0 EOM - 00001C02 0760FF80 22640352...00010024 34 850.0 MB V GRD - 225 00 YVZG85 0 EOM - 00001C02 0760FF80 22640320...00010024 34 800.0 MB V GRD - 225 00 YVZG80 0 EOM - 00001C02 0760FF80 226402EE...00010024 34 750.0 MB V GRD - 225 00 YVZG75 0 EOM - 00001C02 0760FF80 226402BC...00010024 34 700.0 MB V GRD - 225 00 YVZG70 0 EOM - 00001C02 0760FF80 2264028A...00010024 34 650.0 MB V GRD - 225 00 YVZG65 0 EOM - 00001C02 0760FF80 22640258...00010024 34 600.0 MB V GRD - 225 00 YVZG60 0 EOM - 00001C02 0760FF80 22640226...00010024 34 550.0 MB V GRD - 225 00 YVZG55 0 EOM - 00001C02 0760FF80 226401F4...00010024 34 500.0 MB V GRD - 225 00 YVZG50 0 EOM - 00001C02 0760FF80 226401C2...00010024 34 450.0 MB V GRD - 225 00 YVZG45 0 EOM - 00001C02 0760FF80 22640190...00010024 34 400.0 MB V GRD - 225 00 YVZG40 0 EOM - 00001C02 0760FF80 2264015E...00010024 34 350.0 MB V GRD - 225 00 YVZG35 0 EOM - 00001C02 0760FF80 2264012C...00010024 34 300.0 MB V GRD - 225 00 YVZG30 0 EOM - 00001C02 0760FF80 226400FA...00010024 34 250.0 MB V GRD - 225 00 YVZG25 0 EOM - 00001C02 0760FF80 226400C8...00010024 34 200.0 MB V GRD - 225 00 YVZG20 0 EOM - 00001C02 0760FF80 22640096...00010024 34 150.0 MB V GRD - 225 00 YVZG15 0 EOM - 00001C02 0760FF80 22640064...00010024 34 100.0 MB V GRD - 225 00 YVZG10 0 EOM - 00001C02 0760FF80 346403E8...00010024 52 1000.0 MB R H - 225 00 YRZG99 0 EOM - 00001C02 0760FF80 346403B6...00010024 52 950.0 MB R H - 225 00 YRZG95 0 EOM - 00001C02 0760FF80 34640384...00010024 52 900.0 MB R H - 225 00 YRZG90 0 EOM - 00001C02 0760FF80 34640352...00010024 52 850.0 MB R H - 225 00 YRZG85 0 EOM - 00001C02 0760FF80 34640320...00010024 52 800.0 MB R H - 225 00 YRZG80 0 EOM - 00001C02 0760FF80 346402EE...00010024 52 750.0 MB R H - 225 00 YRZG75 0 EOM - 00001C02 0760FF80 346402BC...00010024 52 700.0 MB R H - 225 00 YRZG70 0 EOM - 00001C02 0760FF80 3464028A...00010024 52 650.0 MB R H - 225 00 YRZG65 0 EOM - 00001C02 0760FF80 34640258...00010024 52 600.0 MB R H - 225 00 YRZG60 0 EOM - 00001C02 0760FF80 34640226...00010024 52 550.0 MB R H - 225 00 YRZG55 0 EOM - 00001C02 0760FF80 346401F4...00010024 52 500.0 MB R H - 225 00 YRZG50 0 EOM - 00001C02 0760FF80 346401C2...00010024 52 450.0 MB R H - 225 00 YRZG45 0 EOM - 00001C02 0760FF80 34640190...00010024 52 400.0 MB R H - 225 00 YRZG40 0 EOM - 00001C02 0760FF80 3464015E...00010024 52 350.0 MB R H - 225 00 YRZG35 0 EOM - 00001C02 0760FF80 3464012C...00010024 52 300.0 MB R H - 225 00 YRZG30 0 EOM - 00001C02 0760FF80 0B6403E8...00010024 11 1000.0 MB TMP - 225 00 YTZG99 0 EOM - 00001C02 0760FF80 0B6403B6...00010024 11 950.0 MB TMP - 225 00 YTZG95 0 EOM - 00001C02 0760FF80 0B640384...00010024 11 900.0 MB TMP - 225 00 YTZG90 0 EOM - 00001C02 0760FF80 0B640352...00010024 11 850.0 MB TMP - 225 00 YTZG85 0 EOM - 00001C02 0760FF80 0B640320...00010024 11 800.0 MB TMP - 225 00 YTZG80 0 EOM - 00001C02 0760FF80 0B6402EE...00010024 11 750.0 MB TMP - 225 00 YTZG75 0 EOM - 00001C02 0760FF80 0B6402BC...00010024 11 700.0 MB TMP - 225 00 YTZG70 0 EOM - 00001C02 0760FF80 0B64028A...00010024 11 650.0 MB TMP - 225 00 YTZG65 0 EOM - 00001C02 0760FF80 0B640258...00010024 11 600.0 MB TMP - 225 00 YTZG60 0 EOM - 00001C02 0760FF80 0B640226...00010024 11 550.0 MB TMP - 225 00 YTZG55 0 EOM - 00001C02 0760FF80 0B6401F4...00010024 11 500.0 MB TMP - 225 00 YTZG50 0 EOM - 00001C02 0760FF80 0B6401C2...00010024 11 450.0 MB TMP - 225 00 YTZG45 0 EOM - 00001C02 0760FF80 0B640190...00010024 24 400.0 MB TMP - 225 00 YTZG40 0 EOM - 00001C02 0760FF80 0B64015E...00010024 11 350.0 MB TMP - 225 00 YTZG35 0 EOM - 00001C02 0760FF80 0B64012C...00010024 11 300.0 MB TMP - 225 00 YTZG30 0 EOM - 00001C02 0760FF80 0B6400FA...00010024 11 250.0 MB TMP - 225 00 YTZG25 0 EOM - 00001C02 0760FF80 0B6400C8...00010024 11 200.0 MB TMP - 225 00 YTZG20 0 EOM - 00001C02 0760FF80 0B640096...00010024 11 150.0 MB TMP - 225 00 YTZG15 0 EOM - 00001C02 0760FF80 0B640064...00010024 11 100.0 MB TMP - 225 00 YTZG10 0 EOM - 00001C02 0760FF80 27640352...00010024 39 850.0 MB V VEL - 225 00 YOZG85 0 EOM - 00001C02 0760FF80 276402BC...00010024 39 700.0 MB V VEL - 225 00 YOZG70 0 EOM - 00001C02 0760FF80 276401F4...00010024 39 500.0 MB V VEL - 225 00 YOZG50 0 EOM - 00001C02 0760FF80 2764012C...00010024 39 300.0 MB V VEL - 225 00 YOZG30 0 EOM - 00001C02 0760FF80 276400C8...00010024 39 200.0 MB V VEL - 225 00 YOZG20 0 EOM - 00001C02 0760FF80 01010000...00010024 01 SFC PRES - 225 00 YPZG98 0 EOM - 00001C02 0760FF80 346C2C64...00010024 52 44/100 R H - 225 00 YRZG00 0 EOM - 00001C02 0760FF80 36C80000...00010024 54 EATM P WAT - 225 00 YFZG00 0 EOM - 00001C02 0760FF80 0B070000...00010024 11 TRO TMP - 225 00 YTZG97 0 EOM - 00001C02 0760FF80 01070000...00010024 01 TRO PRES - 225 00 YPZG97 0 EOM - 00001C02 0760FF80 21070000...00010024 33 TRO U GRD - 225 00 YUZG97 0 EOM - 00001C02 0760FF80 22070000...00010024 34 TRO V GRD - 225 00 YVZG97 0 EOM - 00001C02 0760FF80 3D010000...00011E24 61 SFC A PCP - 225 00 YEZG98 0 EOM - 00001C02 0760FF80 83010000...00010024 131 SFC LFT X - 225 00 YXZG98 0 EOM - 00001C02 0760FF80 0B690002...00010024 11 2 HTGL TMP - 225 00 YTZG98 0 EOM - 00001C02 0760FF80 2169000A...00010024 33 10 HTGL U GRD - 225 00 YUZG98 0 EOM - 00001C02 0760FF80 2269000A...00010024 34 10 HTGL V GRD - 225 00 YVZG98 0 EOM - 00001C02 0760FF80 9D010000...00010024 157 SFC CAPE - 225 00 YWZG98 0 EOM - 00001C02 0760FF80 9C010000...00010024 156 SFC CIN - 225 00 YYZG98 0 EOM - 00001C02 0760FF80 84010000...00010024 132 SFC 4LFTX - 225 00 YQZG98 0 EOM - 00001C02 0760FF80 9D74B400...00010024 157 Y 0 SPDY CAPE - 225 00 YWZG86 0 EOM - 00001C02 0760FF80 9C74B400...00010024 156 Y 0 SPDY CIN - 225 00 YYZG86 0 EOM - 00001C02 0760FF80 3F010000...00011E24 63 ACUM SFC ACPCP - 225 00 YGZG98 0 EOM - 00001C02 0760FF80 0B741E00...00010024 11 0 SPDY TMP - 225 00 YTZG86 0 EOM - 00001C02 0760FF80 34741E00...00010024 52 0 SPDY R H - 225 00 YRZG86 0 EOM - 00001C02 0760FF80 21741E00...00010024 33 0 SPDY U GRD - 225 00 YUZG86 0 EOM - 00001C02 0760FF80 22741E00...00010024 34 0 SPDY V GRD - 225 00 YVZG86 0 EOM - 00001C02 0760FF80 01060000...00010024 01 MWSL PRES - 225 00 YPZG96 0 EOM - 00001C02 0760FF80 21060000...00010024 33 MWSL U GRD - 225 00 YUZG96 0 EOM - 00001C02 0760FF80 22060000...00010024 34 MWSL V GRD - 225 00 YVZG96 0 EOM - 00001C02 0760FF80 07040000...00010024 07 0DEG HGT - 225 00 YHZG94 0 EOM - 00001C02 0760FF80 34040000...00010024 52 0DEG R H - 225 00 YRZG94 0 EOM - 00001C02 0760FF80 02660000...00010024 02 MSL PRMSL - 225 00 YPZG89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs042.225 b/parm/wmo/grib_awpgfs042.225 deleted file mode 100755 index 9cc234330a..0000000000 --- a/parm/wmo/grib_awpgfs042.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...0001002A 07 1000.0 MB HGT - 225 00 YHZH99 0 EOM - 00001C02 0760FF80 076403B6...0001002A 07 950.0 MB HGT - 225 00 YHZH95 0 EOM - 00001C02 0760FF80 07640384...0001002A 07 900.0 MB HGT - 225 00 YHZH90 0 EOM - 00001C02 0760FF80 07640352...0001002A 07 850.0 MB HGT - 225 00 YHZH85 0 EOM - 00001C02 0760FF80 07640320...0001002A 07 800.0 MB HGT - 225 00 YHZH80 0 EOM - 00001C02 0760FF80 076402EE...0001002A 07 750.0 MB HGT - 225 00 YHZH75 0 EOM - 00001C02 0760FF80 076402BC...0001002A 07 700.0 MB HGT - 225 00 YHZH70 0 EOM - 00001C02 0760FF80 0764028A...0001002A 07 650.0 MB HGT - 225 00 YHZH65 0 EOM - 00001C02 0760FF80 07640258...0001002A 07 600.0 MB HGT - 225 00 YHZH60 0 EOM - 00001C02 0760FF80 07640226...0001002A 07 550.0 MB HGT - 225 00 YHZH55 0 EOM - 00001C02 0760FF80 076401F4...0001002A 07 500.0 MB HGT - 225 00 YHZH50 0 EOM - 00001C02 0760FF80 076401C2...0001002A 07 450.0 MB HGT - 225 00 YHZH45 0 EOM - 00001C02 0760FF80 07640190...0001002A 07 400.0 MB HGT - 225 00 YHZH40 0 EOM - 00001C02 0760FF80 0764015E...0001002A 07 350.0 MB HGT - 225 00 YHZH35 0 EOM - 00001C02 0760FF80 0764012C...0001002A 07 300.0 MB HGT - 225 00 YHZH30 0 EOM - 00001C02 0760FF80 076400FA...0001002A 07 250.0 MB HGT - 225 00 YHZH25 0 EOM - 00001C02 0760FF80 076400C8...0001002A 07 200.0 MB HGT - 225 00 YHZH20 0 EOM - 00001C02 0760FF80 07640096...0001002A 07 150.0 MB HGT - 225 00 YHZH15 0 EOM - 00001C02 0760FF80 07640064...0001002A 07 100.0 MB HGT - 225 00 YHZH10 0 EOM - 00001C02 0760FF80 216403E8...0001002A 33 1000.0 MB U GRD - 225 00 YUZH99 0 EOM - 00001C02 0760FF80 216403B6...0001002A 33 950.0 MB U GRD - 225 00 YUZH95 0 EOM - 00001C02 0760FF80 21640384...0001002A 33 900.0 MB U GRD - 225 00 YUZH90 0 EOM - 00001C02 0760FF80 21640352...0001002A 33 850.0 MB U GRD - 225 00 YUZH85 0 EOM - 00001C02 0760FF80 21640320...0001002A 33 800.0 MB U GRD - 225 00 YUZH80 0 EOM - 00001C02 0760FF80 216402EE...0001002A 33 750.0 MB U GRD - 225 00 YUZH75 0 EOM - 00001C02 0760FF80 216402BC...0001002A 33 700.0 MB U GRD - 225 00 YUZH70 0 EOM - 00001C02 0760FF80 2164028A...0001002A 33 650.0 MB U GRD - 225 00 YUZH65 0 EOM - 00001C02 0760FF80 21640258...0001002A 33 600.0 MB U GRD - 225 00 YUZH60 0 EOM - 00001C02 0760FF80 21640226...0001002A 33 550.0 MB U GRD - 225 00 YUZH55 0 EOM - 00001C02 0760FF80 216401F4...0001002A 33 500.0 MB U GRD - 225 00 YUZH50 0 EOM - 00001C02 0760FF80 216401C2...0001002A 33 450.0 MB U GRD - 225 00 YUZH45 0 EOM - 00001C02 0760FF80 21640190...0001002A 33 400.0 MB U GRD - 225 00 YUZH40 0 EOM - 00001C02 0760FF80 2164015E...0001002A 33 350.0 MB U GRD - 225 00 YUZH35 0 EOM - 00001C02 0760FF80 2164012C...0001002A 33 300.0 MB U GRD - 225 00 YUZH30 0 EOM - 00001C02 0760FF80 216400FA...0001002A 33 250.0 MB U GRD - 225 00 YUZH25 0 EOM - 00001C02 0760FF80 216400C8...0001002A 33 200.0 MB U GRD - 225 00 YUZH20 0 EOM - 00001C02 0760FF80 21640096...0001002A 33 150.0 MB U GRD - 225 00 YUZH15 0 EOM - 00001C02 0760FF80 21640064...0001002A 33 100.0 MB U GRD - 225 00 YUZH10 0 EOM - 00001C02 0760FF80 226403E8...0001002A 34 1000.0 MB V GRD - 225 00 YVZH99 0 EOM - 00001C02 0760FF80 226403B6...0001002A 34 950.0 MB V GRD - 225 00 YVZH95 0 EOM - 00001C02 0760FF80 22640384...0001002A 34 900.0 MB V GRD - 225 00 YVZH90 0 EOM - 00001C02 0760FF80 22640352...0001002A 34 850.0 MB V GRD - 225 00 YVZH85 0 EOM - 00001C02 0760FF80 22640320...0001002A 34 800.0 MB V GRD - 225 00 YVZH80 0 EOM - 00001C02 0760FF80 226402EE...0001002A 34 750.0 MB V GRD - 225 00 YVZH75 0 EOM - 00001C02 0760FF80 226402BC...0001002A 34 700.0 MB V GRD - 225 00 YVZH70 0 EOM - 00001C02 0760FF80 2264028A...0001002A 34 650.0 MB V GRD - 225 00 YVZH65 0 EOM - 00001C02 0760FF80 22640258...0001002A 34 600.0 MB V GRD - 225 00 YVZH60 0 EOM - 00001C02 0760FF80 22640226...0001002A 34 550.0 MB V GRD - 225 00 YVZH55 0 EOM - 00001C02 0760FF80 226401F4...0001002A 34 500.0 MB V GRD - 225 00 YVZH50 0 EOM - 00001C02 0760FF80 226401C2...0001002A 34 450.0 MB V GRD - 225 00 YVZH45 0 EOM - 00001C02 0760FF80 22640190...0001002A 34 400.0 MB V GRD - 225 00 YVZH40 0 EOM - 00001C02 0760FF80 2264015E...0001002A 34 350.0 MB V GRD - 225 00 YVZH35 0 EOM - 00001C02 0760FF80 2264012C...0001002A 34 300.0 MB V GRD - 225 00 YVZH30 0 EOM - 00001C02 0760FF80 226400FA...0001002A 34 250.0 MB V GRD - 225 00 YVZH25 0 EOM - 00001C02 0760FF80 226400C8...0001002A 34 200.0 MB V GRD - 225 00 YVZH20 0 EOM - 00001C02 0760FF80 22640096...0001002A 34 150.0 MB V GRD - 225 00 YVZH15 0 EOM - 00001C02 0760FF80 22640064...0001002A 34 100.0 MB V GRD - 225 00 YVZH10 0 EOM - 00001C02 0760FF80 346403E8...0001002A 52 1000.0 MB R H - 225 00 YRZH99 0 EOM - 00001C02 0760FF80 346403B6...0001002A 52 950.0 MB R H - 225 00 YRZH95 0 EOM - 00001C02 0760FF80 34640384...0001002A 52 900.0 MB R H - 225 00 YRZH90 0 EOM - 00001C02 0760FF80 34640352...0001002A 52 850.0 MB R H - 225 00 YRZH85 0 EOM - 00001C02 0760FF80 34640320...0001002A 52 800.0 MB R H - 225 00 YRZH80 0 EOM - 00001C02 0760FF80 346402EE...0001002A 52 750.0 MB R H - 225 00 YRZH75 0 EOM - 00001C02 0760FF80 346402BC...0001002A 52 700.0 MB R H - 225 00 YRZH70 0 EOM - 00001C02 0760FF80 3464028A...0001002A 52 650.0 MB R H - 225 00 YRZH65 0 EOM - 00001C02 0760FF80 34640258...0001002A 52 600.0 MB R H - 225 00 YRZH60 0 EOM - 00001C02 0760FF80 34640226...0001002A 52 550.0 MB R H - 225 00 YRZH55 0 EOM - 00001C02 0760FF80 346401F4...0001002A 52 500.0 MB R H - 225 00 YRZH50 0 EOM - 00001C02 0760FF80 346401C2...0001002A 52 450.0 MB R H - 225 00 YRZH45 0 EOM - 00001C02 0760FF80 34640190...0001002A 52 400.0 MB R H - 225 00 YRZH40 0 EOM - 00001C02 0760FF80 3464015E...0001002A 52 350.0 MB R H - 225 00 YRZH35 0 EOM - 00001C02 0760FF80 3464012C...0001002A 52 300.0 MB R H - 225 00 YRZH30 0 EOM - 00001C02 0760FF80 0B6403E8...0001002A 11 1000.0 MB TMP - 225 00 YTZH99 0 EOM - 00001C02 0760FF80 0B6403B6...0001002A 11 950.0 MB TMP - 225 00 YTZH95 0 EOM - 00001C02 0760FF80 0B640384...0001002A 11 900.0 MB TMP - 225 00 YTZH90 0 EOM - 00001C02 0760FF80 0B640352...0001002A 11 850.0 MB TMP - 225 00 YTZH85 0 EOM - 00001C02 0760FF80 0B640320...0001002A 11 800.0 MB TMP - 225 00 YTZH80 0 EOM - 00001C02 0760FF80 0B6402EE...0001002A 11 750.0 MB TMP - 225 00 YTZH75 0 EOM - 00001C02 0760FF80 0B6402BC...0001002A 11 700.0 MB TMP - 225 00 YTZH70 0 EOM - 00001C02 0760FF80 0B64028A...0001002A 11 650.0 MB TMP - 225 00 YTZH65 0 EOM - 00001C02 0760FF80 0B640258...0001002A 11 600.0 MB TMP - 225 00 YTZH60 0 EOM - 00001C02 0760FF80 0B640226...0001002A 11 550.0 MB TMP - 225 00 YTZH55 0 EOM - 00001C02 0760FF80 0B6401F4...0001002A 11 500.0 MB TMP - 225 00 YTZH50 0 EOM - 00001C02 0760FF80 0B6401C2...0001002A 11 450.0 MB TMP - 225 00 YTZH45 0 EOM - 00001C02 0760FF80 0B640190...0001002A 11 400.0 MB TMP - 225 00 YTZH40 0 EOM - 00001C02 0760FF80 0B64015E...0001002A 11 350.0 MB TMP - 225 00 YTZH35 0 EOM - 00001C02 0760FF80 0B64012C...0001002A 11 300.0 MB TMP - 225 00 YTZH30 0 EOM - 00001C02 0760FF80 0B6400FA...0001002A 11 250.0 MB TMP - 225 00 YTZH25 0 EOM - 00001C02 0760FF80 0B6400C8...0001002A 11 200.0 MB TMP - 225 00 YTZH20 0 EOM - 00001C02 0760FF80 0B640096...0001002A 11 150.0 MB TMP - 225 00 YTZH15 0 EOM - 00001C02 0760FF80 0B640064...0001002A 11 100.0 MB TMP - 225 00 YTZH10 0 EOM - 00001C02 0760FF80 27640352...0001002A 39 850.0 MB V VEL - 225 00 YOZH85 0 EOM - 00001C02 0760FF80 276402BC...0001002A 39 700.0 MB V VEL - 225 00 YOZH70 0 EOM - 00001C02 0760FF80 276401F4...0001002A 39 500.0 MB V VEL - 225 00 YOZH50 0 EOM - 00001C02 0760FF80 2764012C...0001002A 39 300.0 MB V VEL - 225 00 YOZH30 0 EOM - 00001C02 0760FF80 276400C8...0001002A 39 200.0 MB V VEL - 225 00 YOZH20 0 EOM - 00001C02 0760FF80 01010000...0001002A 01 SFC PRES - 225 00 YPZH98 0 EOM - 00001C02 0760FF80 346C2C64...0001002A 52 44/100 R H - 225 00 YRZH00 0 EOM - 00001C02 0760FF80 36C80000...0001002A 54 EATM P WAT - 225 00 YFZH00 0 EOM - 00001C02 0760FF80 0B070000...0001002A 11 TRO TMP - 225 00 YTZH97 0 EOM - 00001C02 0760FF80 01070000...0001002A 01 TRO PRES - 225 00 YPZH97 0 EOM - 00001C02 0760FF80 21070000...0001002A 33 TRO U GRD - 225 00 YUZH97 0 EOM - 00001C02 0760FF80 22070000...0001002A 34 TRO V GRD - 225 00 YVZH97 0 EOM - 00001C02 0760FF80 3D010000...0001242A 61 SFC A PCP - 225 00 YEZH98 0 EOM - 00001C02 0760FF80 83010000...0001002A 131 SFC LFT X - 225 00 YXZH98 0 EOM - 00001C02 0760FF80 0B690002...0001002A 11 2 HTGL TMP - 225 00 YTZH98 0 EOM - 00001C02 0760FF80 2169000A...0001002A 33 10 HTGL U GRD - 225 00 YUZH98 0 EOM - 00001C02 0760FF80 2269000A...0001002A 34 10 HTGL V GRD - 225 00 YVZH98 0 EOM - 00001C02 0760FF80 9D010000...0001002A 157 SFC CAPE - 225 00 YWZH98 0 EOM - 00001C02 0760FF80 9C010000...0001002A 156 SFC CIN - 225 00 YYZH98 0 EOM - 00001C02 0760FF80 84010000...0001002A 132 SFC 4LFTX - 225 00 YQZH98 0 EOM - 00001C02 0760FF80 9D74B400...0001002A 157 Y 0 SPDY CAPE - 225 00 YWZH86 0 EOM - 00001C02 0760FF80 9C74B400...0001002A 156 Y 0 SPDY CIN - 225 00 YYZH86 0 EOM - 00001C02 0760FF80 3F010000...0001242A 63 ACUM SFC ACPCP - 225 00 YGZH98 0 EOM - 00001C02 0760FF80 0B741E00...0001002A 11 0 SPDY TMP - 225 00 YTZH86 0 EOM - 00001C02 0760FF80 34741E00...0001002A 52 0 SPDY R H - 225 00 YRZH86 0 EOM - 00001C02 0760FF80 21741E00...0001002A 33 0 SPDY U GRD - 225 00 YUZH86 0 EOM - 00001C02 0760FF80 22741E00...0001002A 34 0 SPDY V GRD - 225 00 YVZH86 0 EOM - 00001C02 0760FF80 01060000...0001002A 01 MWSL PRES - 225 00 YPZH96 0 EOM - 00001C02 0760FF80 21060000...0001002A 33 MWSL U GRD - 225 00 YUZH96 0 EOM - 00001C02 0760FF80 22060000...0001002A 34 MWSL V GRD - 225 00 YVZH96 0 EOM - 00001C02 0760FF80 07040000...0001002A 07 0DEG HGT - 225 00 YHZH94 0 EOM - 00001C02 0760FF80 34040000...0001002A 52 0DEG R H - 225 00 YRZH94 0 EOM - 00001C02 0760FF80 02660000...0001002A 02 MSL PRMSL - 225 00 YPZH89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs048.225 b/parm/wmo/grib_awpgfs048.225 deleted file mode 100755 index 9479db48b3..0000000000 --- a/parm/wmo/grib_awpgfs048.225 +++ /dev/null @@ -1,247 +0,0 @@ - 00001C02 0760FF80 076403E8...00010030 07 1000.0 MB HGT - 225 00 YHZI99 0 EOM - 00001C02 0760FF80 076403B6...00010030 07 950.0 MB HGT - 225 00 YHZI95 0 EOM - 00001C02 0760FF80 07640384...00010030 07 900.0 MB HGT - 225 00 YHZI90 0 EOM - 00001C02 0760FF80 07640352...00010030 07 850.0 MB HGT - 225 00 YHZI85 0 EOM - 00001C02 0760FF80 07640320...00010030 07 800.0 MB HGT - 225 00 YHZI80 0 EOM - 00001C02 0760FF80 076402EE...00010030 07 750.0 MB HGT - 225 00 YHZI75 0 EOM - 00001C02 0760FF80 076402BC...00010030 07 700.0 MB HGT - 225 00 YHZI70 0 EOM - 00001C02 0760FF80 0764028A...00010030 07 650.0 MB HGT - 225 00 YHZI65 0 EOM - 00001C02 0760FF80 07640258...00010030 07 600.0 MB HGT - 225 00 YHZI60 0 EOM - 00001C02 0760FF80 07640226...00010030 07 550.0 MB HGT - 225 00 YHZI55 0 EOM - 00001C02 0760FF80 076401F4...00010030 07 500.0 MB HGT - 225 00 YHZI50 0 EOM - 00001C02 0760FF80 076401C2...00010030 07 450.0 MB HGT - 225 00 YHZI45 0 EOM - 00001C02 0760FF80 07640190...00010030 07 400.0 MB HGT - 225 00 YHZI40 0 EOM - 00001C02 0760FF80 0764015E...00010030 07 350.0 MB HGT - 225 00 YHZI35 0 EOM - 00001C02 0760FF80 0764012C...00010030 07 300.0 MB HGT - 225 00 YHZI30 0 EOM - 00001C02 0760FF80 076400FA...00010030 07 250.0 MB HGT - 225 00 YHZI25 0 EOM - 00001C02 0760FF80 076400C8...00010030 07 200.0 MB HGT - 225 00 YHZI20 0 EOM - 00001C02 0760FF80 07640096...00010030 07 150.0 MB HGT - 225 00 YHZI15 0 EOM - 00001C02 0760FF80 07640064...00010030 07 100.0 MB HGT - 225 00 YHZI10 0 EOM - 00001C02 0760FF80 216403E8...00010030 33 1000.0 MB U GRD - 225 00 YUZI99 0 EOM - 00001C02 0760FF80 216403B6...00010030 33 950.0 MB U GRD - 225 00 YUZI95 0 EOM - 00001C02 0760FF80 21640384...00010030 33 900.0 MB U GRD - 225 00 YUZI90 0 EOM - 00001C02 0760FF80 21640352...00010030 33 850.0 MB U GRD - 225 00 YUZI85 0 EOM - 00001C02 0760FF80 21640320...00010030 33 800.0 MB U GRD - 225 00 YUZI80 0 EOM - 00001C02 0760FF80 216402EE...00010030 33 750.0 MB U GRD - 225 00 YUZI75 0 EOM - 00001C02 0760FF80 216402BC...00010030 33 700.0 MB U GRD - 225 00 YUZI70 0 EOM - 00001C02 0760FF80 2164028A...00010030 33 650.0 MB U GRD - 225 00 YUZI65 0 EOM - 00001C02 0760FF80 21640258...00010030 33 600.0 MB U GRD - 225 00 YUZI60 0 EOM - 00001C02 0760FF80 21640226...00010030 33 550.0 MB U GRD - 225 00 YUZI55 0 EOM - 00001C02 0760FF80 216401F4...00010030 33 500.0 MB U GRD - 225 00 YUZI50 0 EOM - 00001C02 0760FF80 216401C2...00010030 33 450.0 MB U GRD - 225 00 YUZI45 0 EOM - 00001C02 0760FF80 21640190...00010030 33 400.0 MB U GRD - 225 00 YUZI40 0 EOM - 00001C02 0760FF80 2164015E...00010030 33 350.0 MB U GRD - 225 00 YUZI35 0 EOM - 00001C02 0760FF80 2164012C...00010030 33 300.0 MB U GRD - 225 00 YUZI30 0 EOM - 00001C02 0760FF80 216400FA...00010030 33 250.0 MB U GRD - 225 00 YUZI25 0 EOM - 00001C02 0760FF80 216400C8...00010030 33 200.0 MB U GRD - 225 00 YUZI20 0 EOM - 00001C02 0760FF80 21640096...00010030 33 150.0 MB U GRD - 225 00 YUZI15 0 EOM - 00001C02 0760FF80 21640064...00010030 33 100.0 MB U GRD - 225 00 YUZI10 0 EOM - 00001C02 0760FF80 226403E8...00010030 34 1000.0 MB V GRD - 225 00 YVZI99 0 EOM - 00001C02 0760FF80 226403B6...00010030 34 950.0 MB V GRD - 225 00 YVZI95 0 EOM - 00001C02 0760FF80 22640384...00010030 34 900.0 MB V GRD - 225 00 YVZI90 0 EOM - 00001C02 0760FF80 22640352...00010030 34 850.0 MB V GRD - 225 00 YVZI85 0 EOM - 00001C02 0760FF80 22640320...00010030 34 800.0 MB V GRD - 225 00 YVZI80 0 EOM - 00001C02 0760FF80 226402EE...00010030 34 750.0 MB V GRD - 225 00 YVZI75 0 EOM - 00001C02 0760FF80 226402BC...00010030 34 700.0 MB V GRD - 225 00 YVZI70 0 EOM - 00001C02 0760FF80 2264028A...00010030 34 650.0 MB V GRD - 225 00 YVZI65 0 EOM - 00001C02 0760FF80 22640258...00010030 34 600.0 MB V GRD - 225 00 YVZI60 0 EOM - 00001C02 0760FF80 22640226...00010030 34 550.0 MB V GRD - 225 00 YVZI55 0 EOM - 00001C02 0760FF80 226401F4...00010030 34 500.0 MB V GRD - 225 00 YVZI50 0 EOM - 00001C02 0760FF80 226401C2...00010030 34 450.0 MB V GRD - 225 00 YVZI45 0 EOM - 00001C02 0760FF80 22640190...00010030 34 400.0 MB V GRD - 225 00 YVZI40 0 EOM - 00001C02 0760FF80 2264015E...00010030 34 350.0 MB V GRD - 225 00 YVZI35 0 EOM - 00001C02 0760FF80 2264012C...00010030 34 300.0 MB V GRD - 225 00 YVZI30 0 EOM - 00001C02 0760FF80 226400FA...00010030 34 250.0 MB V GRD - 225 00 YVZI25 0 EOM - 00001C02 0760FF80 226400C8...00010030 34 200.0 MB V GRD - 225 00 YVZI20 0 EOM - 00001C02 0760FF80 22640096...00010030 34 150.0 MB V GRD - 225 00 YVZI15 0 EOM - 00001C02 0760FF80 22640064...00010030 34 100.0 MB V GRD - 225 00 YVZI10 0 EOM - 00001C02 0760FF80 346403E8...00010030 52 1000.0 MB R H - 225 00 YRZI99 0 EOM - 00001C02 0760FF80 346403B6...00010030 52 950.0 MB R H - 225 00 YRZI95 0 EOM - 00001C02 0760FF80 34640384...00010030 52 900.0 MB R H - 225 00 YRZI90 0 EOM - 00001C02 0760FF80 34640352...00010030 52 850.0 MB R H - 225 00 YRZI85 0 EOM - 00001C02 0760FF80 34640320...00010030 52 800.0 MB R H - 225 00 YRZI80 0 EOM - 00001C02 0760FF80 346402EE...00010030 52 750.0 MB R H - 225 00 YRZI75 0 EOM - 00001C02 0760FF80 346402BC...00010030 52 700.0 MB R H - 225 00 YRZI70 0 EOM - 00001C02 0760FF80 3464028A...00010030 52 650.0 MB R H - 225 00 YRZI65 0 EOM - 00001C02 0760FF80 34640258...00010030 52 600.0 MB R H - 225 00 YRZI60 0 EOM - 00001C02 0760FF80 34640226...00010030 52 550.0 MB R H - 225 00 YRZI55 0 EOM - 00001C02 0760FF80 346401F4...00010030 52 500.0 MB R H - 225 00 YRZI50 0 EOM - 00001C02 0760FF80 346401C2...00010030 52 450.0 MB R H - 225 00 YRZI45 0 EOM - 00001C02 0760FF80 34640190...00010030 52 400.0 MB R H - 225 00 YRZI40 0 EOM - 00001C02 0760FF80 3464015E...00010030 52 350.0 MB R H - 225 00 YRZI35 0 EOM - 00001C02 0760FF80 3464012C...00010030 52 300.0 MB R H - 225 00 YRZI30 0 EOM - 00001C02 0760FF80 0B6403E8...00010030 11 1000.0 MB TMP - 225 00 YTZI99 0 EOM - 00001C02 0760FF80 0B6403B6...00010030 11 950.0 MB TMP - 225 00 YTZI95 0 EOM - 00001C02 0760FF80 0B640384...00010030 11 900.0 MB TMP - 225 00 YTZI90 0 EOM - 00001C02 0760FF80 0B640352...00010030 11 850.0 MB TMP - 225 00 YTZI85 0 EOM - 00001C02 0760FF80 0B640320...00010030 11 800.0 MB TMP - 225 00 YTZI80 0 EOM - 00001C02 0760FF80 0B6402EE...00010030 11 750.0 MB TMP - 225 00 YTZI75 0 EOM - 00001C02 0760FF80 0B6402BC...00010030 11 700.0 MB TMP - 225 00 YTZI70 0 EOM - 00001C02 0760FF80 0B64028A...00010030 11 650.0 MB TMP - 225 00 YTZI65 0 EOM - 00001C02 0760FF80 0B640258...00010030 11 600.0 MB TMP - 225 00 YTZI60 0 EOM - 00001C02 0760FF80 0B640226...00010030 11 550.0 MB TMP - 225 00 YTZI55 0 EOM - 00001C02 0760FF80 0B6401F4...00010030 11 500.0 MB TMP - 225 00 YTZI50 0 EOM - 00001C02 0760FF80 0B6401C2...00010030 11 450.0 MB TMP - 225 00 YTZI45 0 EOM - 00001C02 0760FF80 0B640190...00010030 11 400.0 MB TMP - 225 00 YTZI40 0 EOM - 00001C02 0760FF80 0B64015E...00010030 11 350.0 MB TMP - 225 00 YTZI35 0 EOM - 00001C02 0760FF80 0B64012C...00010030 11 300.0 MB TMP - 225 00 YTZI30 0 EOM - 00001C02 0760FF80 0B6400FA...00010030 11 250.0 MB TMP - 225 00 YTZI25 0 EOM - 00001C02 0760FF80 0B6400C8...00010030 11 200.0 MB TMP - 225 00 YTZI20 0 EOM - 00001C02 0760FF80 0B640096...00010030 11 150.0 MB TMP - 225 00 YTZI15 0 EOM - 00001C02 0760FF80 0B640064...00010030 11 100.0 MB TMP - 225 00 YTZI10 0 EOM - 00001C02 0760FF80 27640352...00010030 39 850.0 MB V VEL - 225 00 YOZI85 0 EOM - 00001C02 0760FF80 276402BC...00010030 39 700.0 MB V VEL - 225 00 YOZI70 0 EOM - 00001C02 0760FF80 276401F4...00010030 39 500.0 MB V VEL - 225 00 YOZI50 0 EOM - 00001C02 0760FF80 2764012C...00010030 39 300.0 MB V VEL - 225 00 YOZI30 0 EOM - 00001C02 0760FF80 01010000...00010030 01 SFC PRES - 225 00 YPZI98 0 EOM - 00001C02 0760FF80 346C2C64...00010030 52 44/100 R H - 225 00 YRZI00 0 EOM - 00001C02 0760FF80 36C80000...00010030 54 EATM P WAT - 225 00 YFZI00 0 EOM - 00001C02 0760FF80 0B070000...00010030 11 TRO TMP - 225 00 YTZI97 0 EOM - 00001C02 0760FF80 01070000...00010030 01 TRO PRES - 225 00 YPZI97 0 EOM - 00001C02 0760FF80 21070000...00010030 33 TRO U GRD - 225 00 YUZI97 0 EOM - 00001C02 0760FF80 22070000...00010030 34 TRO V GRD - 225 00 YVZI97 0 EOM - 00001C02 0760FF80 3D010000...00012A30 61 SFC A PCP - 225 00 YEZI98 0 EOM - 00001C02 0760FF80 83010000...00010030 131 SFC LFT X - 225 00 YXZI98 0 EOM - 00001C02 0760FF80 0B690002...00010030 11 2 HTGL TMP - 225 00 YTZI98 0 EOM - 00001C02 0760FF80 2169000A...00010030 33 10 HTGL U GRD - 225 00 YUZI98 0 EOM - 00001C02 0760FF80 2269000A...00010030 34 10 HTGL V GRD - 225 00 YVZI98 0 EOM - 00001C02 0760FF80 9D010000...00010030 157 SFC CAPE - 225 00 YWZI98 0 EOM - 00001C02 0760FF80 9C010000...00010030 156 SFC CIN - 225 00 YYZI98 0 EOM - 00001C02 0760FF80 84010000...00010030 132 SFC 4LFTX - 225 00 YQZI98 0 EOM - 00001C02 0760FF80 9D74B400...00010030 157 Y 0 SPDY CAPE - 225 00 YWZI86 0 EOM - 00001C02 0760FF80 9C74B400...00010030 156 Y 0 SPDY CIN - 225 00 YYZI86 0 EOM - 00001C02 0760FF80 3F010000...00012A30 63 ACUM SFC ACPCP - 225 00 YGZI98 0 EOM - 00001C02 0760FF80 0B741E00...00010030 11 0 SPDY TMP - 225 00 YTZI86 0 EOM - 00001C02 0760FF80 34741E00...00010030 52 0 SPDY R H - 225 00 YRZI86 0 EOM - 00001C02 0760FF80 21741E00...00010030 33 0 SPDY U GRD - 225 00 YUZI86 0 EOM - 00001C02 0760FF80 22741E00...00010030 34 0 SPDY V GRD - 225 00 YVZI86 0 EOM - 00001C02 0760FF80 01060000...00010030 01 MWSL PRES - 225 00 YPZI96 0 EOM - 00001C02 0760FF80 21060000...00010030 33 MWSL U GRD - 225 00 YUZI96 0 EOM - 00001C02 0760FF80 22060000...00010030 34 MWSL V GRD - 225 00 YVZI96 0 EOM - 00001C02 0760FF80 07040000...00010030 07 0DEG HGT - 225 00 YHZI94 0 EOM - 00001C02 0760FF80 34040000...00010030 52 0DEG R H - 225 00 YRZI94 0 EOM - 00001C02 0760FF80 02660000...00010030 02 MSL PRMSL - 225 00 YPZI89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs054.225 b/parm/wmo/grib_awpgfs054.225 deleted file mode 100755 index 6177846819..0000000000 --- a/parm/wmo/grib_awpgfs054.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...00010036 07 1000.0 MB HGT - 225 00 ZHZM99 0 EOM - 00001C02 0760FF80 076403B6...00010036 07 950.0 MB HGT - 225 00 ZHZM95 0 EOM - 00001C02 0760FF80 07640384...00010036 07 900.0 MB HGT - 225 00 ZHZM90 0 EOM - 00001C02 0760FF80 07640352...00010036 07 850.0 MB HGT - 225 00 ZHZM85 0 EOM - 00001C02 0760FF80 07640320...00010036 07 800.0 MB HGT - 225 00 ZHZM80 0 EOM - 00001C02 0760FF80 076402EE...00010036 07 750.0 MB HGT - 225 00 ZHZM75 0 EOM - 00001C02 0760FF80 076402BC...00010036 07 700.0 MB HGT - 225 00 ZHZM70 0 EOM - 00001C02 0760FF80 0764028A...00010036 07 650.0 MB HGT - 225 00 ZHZM65 0 EOM - 00001C02 0760FF80 07640258...00010036 07 600.0 MB HGT - 225 00 ZHZM60 0 EOM - 00001C02 0760FF80 07640226...00010036 07 550.0 MB HGT - 225 00 ZHZM55 0 EOM - 00001C02 0760FF80 076401F4...00010036 07 500.0 MB HGT - 225 00 ZHZM50 0 EOM - 00001C02 0760FF80 076401C2...00010036 07 450.0 MB HGT - 225 00 ZHZM45 0 EOM - 00001C02 0760FF80 07640190...00010036 07 400.0 MB HGT - 225 00 ZHZM40 0 EOM - 00001C02 0760FF80 0764015E...00010036 07 350.0 MB HGT - 225 00 ZHZM35 0 EOM - 00001C02 0760FF80 0764012C...00010036 07 300.0 MB HGT - 225 00 ZHZM30 0 EOM - 00001C02 0760FF80 076400FA...00010036 07 250.0 MB HGT - 225 00 ZHZM25 0 EOM - 00001C02 0760FF80 076400C8...00010036 07 200.0 MB HGT - 225 00 ZHZM20 0 EOM - 00001C02 0760FF80 07640096...00010036 07 150.0 MB HGT - 225 00 ZHZM15 0 EOM - 00001C02 0760FF80 07640064...00010036 07 100.0 MB HGT - 225 00 ZHZM10 0 EOM - 00001C02 0760FF80 216403E8...00010036 33 1000.0 MB U GRD - 225 00 ZUZM99 0 EOM - 00001C02 0760FF80 216403B6...00010036 33 950.0 MB U GRD - 225 00 ZUZM95 0 EOM - 00001C02 0760FF80 21640384...00010036 33 900.0 MB U GRD - 225 00 ZUZM90 0 EOM - 00001C02 0760FF80 21640352...00010036 33 850.0 MB U GRD - 225 00 ZUZM85 0 EOM - 00001C02 0760FF80 21640320...00010036 33 800.0 MB U GRD - 225 00 ZUZM80 0 EOM - 00001C02 0760FF80 216402EE...00010036 33 750.0 MB U GRD - 225 00 ZUZM75 0 EOM - 00001C02 0760FF80 216402BC...00010036 33 700.0 MB U GRD - 225 00 ZUZM70 0 EOM - 00001C02 0760FF80 2164028A...00010036 33 650.0 MB U GRD - 225 00 ZUZM65 0 EOM - 00001C02 0760FF80 21640258...00010036 33 600.0 MB U GRD - 225 00 ZUZM60 0 EOM - 00001C02 0760FF80 21640226...00010036 33 550.0 MB U GRD - 225 00 ZUZM55 0 EOM - 00001C02 0760FF80 216401F4...00010036 33 500.0 MB U GRD - 225 00 ZUZM50 0 EOM - 00001C02 0760FF80 216401C2...00010036 33 450.0 MB U GRD - 225 00 ZUZM45 0 EOM - 00001C02 0760FF80 21640190...00010036 33 400.0 MB U GRD - 225 00 ZUZM40 0 EOM - 00001C02 0760FF80 2164015E...00010036 33 350.0 MB U GRD - 225 00 ZUZM35 0 EOM - 00001C02 0760FF80 2164012C...00010036 33 300.0 MB U GRD - 225 00 ZUZM30 0 EOM - 00001C02 0760FF80 216400FA...00010036 33 250.0 MB U GRD - 225 00 ZUZM25 0 EOM - 00001C02 0760FF80 216400C8...00010036 33 200.0 MB U GRD - 225 00 ZUZM20 0 EOM - 00001C02 0760FF80 21640096...00010036 33 150.0 MB U GRD - 225 00 ZUZM15 0 EOM - 00001C02 0760FF80 21640064...00010036 33 100.0 MB U GRD - 225 00 ZUZM10 0 EOM - 00001C02 0760FF80 226403E8...00010036 34 1000.0 MB V GRD - 225 00 ZVZM99 0 EOM - 00001C02 0760FF80 226403B6...00010036 34 950.0 MB V GRD - 225 00 ZVZM95 0 EOM - 00001C02 0760FF80 22640384...00010036 34 900.0 MB V GRD - 225 00 ZVZM90 0 EOM - 00001C02 0760FF80 22640352...00010036 34 850.0 MB V GRD - 225 00 ZVZM85 0 EOM - 00001C02 0760FF80 22640320...00010036 34 800.0 MB V GRD - 225 00 ZVZM80 0 EOM - 00001C02 0760FF80 226402EE...00010036 34 750.0 MB V GRD - 225 00 ZVZM75 0 EOM - 00001C02 0760FF80 226402BC...00010036 34 700.0 MB V GRD - 225 00 ZVZM70 0 EOM - 00001C02 0760FF80 2264028A...00010036 34 650.0 MB V GRD - 225 00 ZVZM65 0 EOM - 00001C02 0760FF80 22640258...00010036 34 600.0 MB V GRD - 225 00 ZVZM60 0 EOM - 00001C02 0760FF80 22640226...00010036 34 550.0 MB V GRD - 225 00 ZVZM55 0 EOM - 00001C02 0760FF80 226401F4...00010036 34 500.0 MB V GRD - 225 00 ZVZM50 0 EOM - 00001C02 0760FF80 226401C2...00010036 34 450.0 MB V GRD - 225 00 ZVZM45 0 EOM - 00001C02 0760FF80 22640190...00010036 34 400.0 MB V GRD - 225 00 ZVZM40 0 EOM - 00001C02 0760FF80 2264015E...00010036 34 350.0 MB V GRD - 225 00 ZVZM35 0 EOM - 00001C02 0760FF80 2264012C...00010036 34 300.0 MB V GRD - 225 00 ZVZM30 0 EOM - 00001C02 0760FF80 226400FA...00010036 34 250.0 MB V GRD - 225 00 ZVZM25 0 EOM - 00001C02 0760FF80 226400C8...00010036 34 200.0 MB V GRD - 225 00 ZVZM20 0 EOM - 00001C02 0760FF80 22640096...00010036 34 150.0 MB V GRD - 225 00 ZVZM15 0 EOM - 00001C02 0760FF80 22640064...00010036 34 100.0 MB V GRD - 225 00 ZVZM10 0 EOM - 00001C02 0760FF80 346403E8...00010036 52 1000.0 MB R H - 225 00 ZRZM99 0 EOM - 00001C02 0760FF80 346403B6...00010036 52 950.0 MB R H - 225 00 ZRZM95 0 EOM - 00001C02 0760FF80 34640384...00010036 52 900.0 MB R H - 225 00 ZRZM90 0 EOM - 00001C02 0760FF80 34640352...00010036 52 850.0 MB R H - 225 00 ZRZM85 0 EOM - 00001C02 0760FF80 34640320...00010036 52 800.0 MB R H - 225 00 ZRZM80 0 EOM - 00001C02 0760FF80 346402EE...00010036 52 750.0 MB R H - 225 00 ZRZM75 0 EOM - 00001C02 0760FF80 346402BC...000100436 52 700.0 MB R H - 225 00 ZRZM70 0 EOM - 00001C02 0760FF80 3464028A...00010036 52 650.0 MB R H - 225 00 ZRZM65 0 EOM - 00001C02 0760FF80 34640258...00010036 52 600.0 MB R H - 225 00 ZRZM60 0 EOM - 00001C02 0760FF80 34640226...00010036 52 550.0 MB R H - 225 00 ZRZM55 0 EOM - 00001C02 0760FF80 346401F4...00010036 52 500.0 MB R H - 225 00 ZRZM50 0 EOM - 00001C02 0760FF80 346401C2...00010036 52 450.0 MB R H - 225 00 ZRZM45 0 EOM - 00001C02 0760FF80 34640190...00010036 52 400.0 MB R H - 225 00 ZRZM40 0 EOM - 00001C02 0760FF80 3464015E...00010036 52 350.0 MB R H - 225 00 ZRZM35 0 EOM - 00001C02 0760FF80 3464012C...00010036 52 300.0 MB R H - 225 00 ZRZM30 0 EOM - 00001C02 0760FF80 0B6403E8...00010036 11 1000.0 MB TMP - 225 00 ZTZM99 0 EOM - 00001C02 0760FF80 0B6403B6...00010036 11 950.0 MB TMP - 225 00 ZTZM95 0 EOM - 00001C02 0760FF80 0B640384...00010036 11 900.0 MB TMP - 225 00 ZTZM90 0 EOM - 00001C02 0760FF80 0B640352...00010036 11 850.0 MB TMP - 225 00 ZTZM85 0 EOM - 00001C02 0760FF80 0B640320...00010036 11 800.0 MB TMP - 225 00 ZTZM80 0 EOM - 00001C02 0760FF80 0B6402EE...00010036 11 750.0 MB TMP - 225 00 ZTZM75 0 EOM - 00001C02 0760FF80 0B6402BC...00010036 11 700.0 MB TMP - 225 00 ZTZM70 0 EOM - 00001C02 0760FF80 0B64028A...00010036 11 650.0 MB TMP - 225 00 ZTZM65 0 EOM - 00001C02 0760FF80 0B640258...00010036 11 600.0 MB TMP - 225 00 ZTZM60 0 EOM - 00001C02 0760FF80 0B640226...00010036 11 550.0 MB TMP - 225 00 ZTZM55 0 EOM - 00001C02 0760FF80 0B6401F4...00010036 11 500.0 MB TMP - 225 00 ZTZM50 0 EOM - 00001C02 0760FF80 0B6401C2...00010036 11 450.0 MB TMP - 225 00 ZTZM45 0 EOM - 00001C02 0760FF80 0B640190...00010036 11 400.0 MB TMP - 225 00 ZTZM40 0 EOM - 00001C02 0760FF80 0B64015E...00010036 11 350.0 MB TMP - 225 00 ZTZM35 0 EOM - 00001C02 0760FF80 0B64012C...00010036 11 300.0 MB TMP - 225 00 ZTZM30 0 EOM - 00001C02 0760FF80 0B6400FA...00010036 11 250.0 MB TMP - 225 00 ZTZM25 0 EOM - 00001C02 0760FF80 0B6400C8...00010036 11 200.0 MB TMP - 225 00 ZTZM20 0 EOM - 00001C02 0760FF80 0B640096...00010036 11 150.0 MB TMP - 225 00 ZTZM15 0 EOM - 00001C02 0760FF80 0B640064...00010036 11 100.0 MB TMP - 225 00 ZTZM10 0 EOM - 00001C02 0760FF80 27640352...00010036 39 850.0 MB V VEL - 225 00 ZOZM85 0 EOM - 00001C02 0760FF80 276402BC...00010036 39 700.0 MB V VEL - 225 00 ZOZM70 0 EOM - 00001C02 0760FF80 276401F4...00010036 39 500.0 MB V VEL - 225 00 ZOZM50 0 EOM - 00001C02 0760FF80 2764012C...00010036 39 300.0 MB V VEL - 225 00 ZOZM30 0 EOM - 00001C02 0760FF80 276400C8...00010036 39 200.0 MB V VEL - 225 00 ZOZM20 0 EOM - 00001C02 0760FF80 01010000...00010036 01 SFC PRES - 225 00 ZPZM98 0 EOM - 00001C02 0760FF80 346C2C64...00010036 52 44/100 R H - 225 00 ZRZM00 0 EOM - 00001C02 0760FF80 36C80000...00010036 54 EATM P WAT - 225 00 ZFZM00 0 EOM - 00001C02 0760FF80 0B070000...00010036 11 TRO TMP - 225 00 ZTZM97 0 EOM - 00001C02 0760FF80 01070000...00010036 01 TRO PRES - 225 00 ZPZM97 0 EOM - 00001C02 0760FF80 21070000...00010036 33 TRO U GRD - 225 00 ZUZM97 0 EOM - 00001C02 0760FF80 22070000...00010036 34 TRO V GRD - 225 00 ZVZM97 0 EOM - 00001C02 0760FF80 3D010000...00013036 61 SFC A PCP - 225 00 ZEZM98 0 EOM - 00001C02 0760FF80 83010000...00010036 131 SFC LFT X - 225 00 ZXZM98 0 EOM - 00001C02 0760FF80 0B690002...00010036 11 2 HTGL TMP - 225 00 ZTZM98 0 EOM - 00001C02 0760FF80 2169000A...00010036 33 10 HTGL U GRD - 225 00 ZUZM98 0 EOM - 00001C02 0760FF80 2269000A...00010036 34 10 HTGL V GRD - 225 00 ZVZM98 0 EOM - 00001C02 0760FF80 9D010000...00010036 157 SFC CAPE - 225 00 ZWZM98 0 EOM - 00001C02 0760FF80 9C010000...00010036 156 SFC CIN - 225 00 ZYZM98 0 EOM - 00001C02 0760FF80 84010000...00010036 132 SFC 4LFTX - 225 00 ZQZM98 0 EOM - 00001C02 0760FF80 9D74B400...00010036 157 Y 0 SPDY CAPE - 225 00 ZWZM86 0 EOM - 00001C02 0760FF80 9C74B400...00010036 156 Y 0 SPDY CIN - 225 00 ZYZM86 0 EOM - 00001C02 0760FF80 3F010000...00013036 63 ACUM SFC ACPCP - 225 00 ZGZM98 0 EOM - 00001C02 0760FF80 0B741E00...00010036 11 0 SPDY TMP - 225 00 ZTZM86 0 EOM - 00001C02 0760FF80 34741E00...00010036 52 0 SPDY R H - 225 00 ZRZM86 0 EOM - 00001C02 0760FF80 21741E00...00010036 33 0 SPDY U GRD - 225 00 ZUZM86 0 EOM - 00001C02 0760FF80 22741E00...00010036 34 0 SPDY V GRD - 225 00 ZVZM86 0 EOM - 00001C02 0760FF80 01060000...00010036 01 MWSL PRES - 225 00 ZPZM96 0 EOM - 00001C02 0760FF80 21060000...00010036 33 MWSL U GRD - 225 00 ZUZM96 0 EOM - 00001C02 0760FF80 22060000...00010036 34 MWSL V GRD - 225 00 ZVZM96 0 EOM - 00001C02 0760FF80 07040000...00010036 07 0DEG HGT - 225 00 ZHZM94 0 EOM - 00001C02 0760FF80 34040000...00010036 52 0DEG R H - 225 00 ZRZM94 0 EOM - 00001C02 0760FF80 02660000...00010036 02 MSL PRMSL - 225 00 ZPZM89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs060.225 b/parm/wmo/grib_awpgfs060.225 deleted file mode 100755 index 9ea456613d..0000000000 --- a/parm/wmo/grib_awpgfs060.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...0001003C 07 1000.0 MB HGT - 225 00 YHZJ99 0 EOM - 00001C02 0760FF80 076403B6...0001003C 07 950.0 MB HGT - 225 00 YHZJ95 0 EOM - 00001C02 0760FF80 07640384...0001003C 07 900.0 MB HGT - 225 00 YHZJ90 0 EOM - 00001C02 0760FF80 07640352...0001003C 07 850.0 MB HGT - 225 00 YHZJ85 0 EOM - 00001C02 0760FF80 07640320...0001003C 07 800.0 MB HGT - 225 00 YHZJ80 0 EOM - 00001C02 0760FF80 076402EE...0001003C 07 750.0 MB HGT - 225 00 YHZJ75 0 EOM - 00001C02 0760FF80 076402BC...0001003C 07 700.0 MB HGT - 225 00 YHZJ70 0 EOM - 00001C02 0760FF80 0764028A...0001003C 07 650.0 MB HGT - 225 00 YHZJ65 0 EOM - 00001C02 0760FF80 07640258...0001003C 07 600.0 MB HGT - 225 00 YHZJ60 0 EOM - 00001C02 0760FF80 07640226...0001003C 07 550.0 MB HGT - 225 00 YHZJ55 0 EOM - 00001C02 0760FF80 076401F4...0001003C 07 500.0 MB HGT - 225 00 YHZJ50 0 EOM - 00001C02 0760FF80 076401C2...0001003C 07 450.0 MB HGT - 225 00 YHZJ45 0 EOM - 00001C02 0760FF80 07640190...0001003C 07 400.0 MB HGT - 225 00 YHZJ40 0 EOM - 00001C02 0760FF80 0764015E...0001003C 07 350.0 MB HGT - 225 00 YHZJ35 0 EOM - 00001C02 0760FF80 0764012C...0001003C 07 300.0 MB HGT - 225 00 YHZJ30 0 EOM - 00001C02 0760FF80 076400FA...0001003C 07 250.0 MB HGT - 225 00 YHZJ25 0 EOM - 00001C02 0760FF80 076400C8...0001003C 07 200.0 MB HGT - 225 00 YHZJ20 0 EOM - 00001C02 0760FF80 07640096...0001003C 07 150.0 MB HGT - 225 00 YHZJ15 0 EOM - 00001C02 0760FF80 07640064...0001003C 07 100.0 MB HGT - 225 00 YHZJ10 0 EOM - 00001C02 0760FF80 216403E8...0001003C 33 1000.0 MB U GRD - 225 00 YUZJ99 0 EOM - 00001C02 0760FF80 216403B6...0001003C 33 950.0 MB U GRD - 225 00 YUZJ95 0 EOM - 00001C02 0760FF80 21640384...0001003C 33 900.0 MB U GRD - 225 00 YUZJ90 0 EOM - 00001C02 0760FF80 21640352...0001003C 33 850.0 MB U GRD - 225 00 YUZJ85 0 EOM - 00001C02 0760FF80 21640320...0001003C 33 800.0 MB U GRD - 225 00 YUZJ80 0 EOM - 00001C02 0760FF80 216402EE...0001003C 33 750.0 MB U GRD - 225 00 YUZJ75 0 EOM - 00001C02 0760FF80 216402BC...0001003C 33 700.0 MB U GRD - 225 00 YUZJ70 0 EOM - 00001C02 0760FF80 2164028A...0001003C 33 650.0 MB U GRD - 225 00 YUZJ65 0 EOM - 00001C02 0760FF80 21640258...0001003C 33 600.0 MB U GRD - 225 00 YUZJ60 0 EOM - 00001C02 0760FF80 21640226...0001003C 33 550.0 MB U GRD - 225 00 YUZJ55 0 EOM - 00001C02 0760FF80 216401F4...0001003C 33 500.0 MB U GRD - 225 00 YUZJ50 0 EOM - 00001C02 0760FF80 216401C2...0001003C 33 450.0 MB U GRD - 225 00 YUZJ45 0 EOM - 00001C02 0760FF80 21640190...0001003C 33 400.0 MB U GRD - 225 00 YUZJ40 0 EOM - 00001C02 0760FF80 2164015E...0001003C 33 350.0 MB U GRD - 225 00 YUZJ35 0 EOM - 00001C02 0760FF80 2164012C...0001003C 33 300.0 MB U GRD - 225 00 YUZJ30 0 EOM - 00001C02 0760FF80 216400FA...0001003C 33 250.0 MB U GRD - 225 00 YUZJ25 0 EOM - 00001C02 0760FF80 216400C8...0001003C 33 200.0 MB U GRD - 225 00 YUZJ20 0 EOM - 00001C02 0760FF80 21640096...0001003C 33 150.0 MB U GRD - 225 00 YUZJ15 0 EOM - 00001C02 0760FF80 21640064...0001003C 33 100.0 MB U GRD - 225 00 YUZJ10 0 EOM - 00001C02 0760FF80 226403E8...0001003C 34 1000.0 MB V GRD - 225 00 YVZJ99 0 EOM - 00001C02 0760FF80 226403B6...0001003C 34 950.0 MB V GRD - 225 00 YVZJ95 0 EOM - 00001C02 0760FF80 22640384...0001003C 34 900.0 MB V GRD - 225 00 YVZJ90 0 EOM - 00001C02 0760FF80 22640352...0001003C 34 850.0 MB V GRD - 225 00 YVZJ85 0 EOM - 00001C02 0760FF80 22640320...0001003C 34 800.0 MB V GRD - 225 00 YVZJ80 0 EOM - 00001C02 0760FF80 226402EE...0001003C 34 750.0 MB V GRD - 225 00 YVZJ75 0 EOM - 00001C02 0760FF80 226402BC...0001003C 34 700.0 MB V GRD - 225 00 YVZJ70 0 EOM - 00001C02 0760FF80 2264028A...0001003C 34 650.0 MB V GRD - 225 00 YVZJ65 0 EOM - 00001C02 0760FF80 22640258...0001003C 34 600.0 MB V GRD - 225 00 YVZJ60 0 EOM - 00001C02 0760FF80 22640226...0001003C 34 550.0 MB V GRD - 225 00 YVZJ55 0 EOM - 00001C02 0760FF80 226401F4...0001003C 34 500.0 MB V GRD - 225 00 YVZJ50 0 EOM - 00001C02 0760FF80 226401C2...0001003C 34 450.0 MB V GRD - 225 00 YVZJ45 0 EOM - 00001C02 0760FF80 22640190...0001003C 34 400.0 MB V GRD - 225 00 YVZJ40 0 EOM - 00001C02 0760FF80 2264015E...0001003C 34 350.0 MB V GRD - 225 00 YVZJ35 0 EOM - 00001C02 0760FF80 2264012C...0001003C 34 300.0 MB V GRD - 225 00 YVZJ30 0 EOM - 00001C02 0760FF80 226400FA...0001003C 34 250.0 MB V GRD - 225 00 YVZJ25 0 EOM - 00001C02 0760FF80 226400C8...0001003C 34 200.0 MB V GRD - 225 00 YVZJ25 0 EOM - 00001C02 0760FF80 22640096...0001003C 34 150.0 MB V GRD - 225 00 YVZJ15 0 EOM - 00001C02 0760FF80 22640064...0001003C 34 100.0 MB V GRD - 225 00 YVZJ10 0 EOM - 00001C02 0760FF80 346403E8...0001003C 52 1000.0 MB R H - 225 00 YRZJ99 0 EOM - 00001C02 0760FF80 346403B6...0001003C 52 950.0 MB R H - 225 00 YRZJ95 0 EOM - 00001C02 0760FF80 34640384...0001003C 52 900.0 MB R H - 225 00 YRZJ90 0 EOM - 00001C02 0760FF80 34640352...0001003C 52 850.0 MB R H - 225 00 YRZJ85 0 EOM - 00001C02 0760FF80 34640320...0001003C 52 800.0 MB R H - 225 00 YRZJ80 0 EOM - 00001C02 0760FF80 346402EE...0001003C 52 750.0 MB R H - 225 00 YRZJ75 0 EOM - 00001C02 0760FF80 346402BC...0001003C 52 700.0 MB R H - 225 00 YRZJ70 0 EOM - 00001C02 0760FF80 3464028A...0001003C 52 650.0 MB R H - 225 00 YRZJ65 0 EOM - 00001C02 0760FF80 34640258...0001003C 52 600.0 MB R H - 225 00 YRZJ60 0 EOM - 00001C02 0760FF80 34640226...0001003C 52 550.0 MB R H - 225 00 YRZJ55 0 EOM - 00001C02 0760FF80 346401F4...0001003C 52 500.0 MB R H - 225 00 YRZJ50 0 EOM - 00001C02 0760FF80 346401C2...0001003C 52 450.0 MB R H - 225 00 YRZJ45 0 EOM - 00001C02 0760FF80 34640190...0001003C 52 400.0 MB R H - 225 00 YRZJ40 0 EOM - 00001C02 0760FF80 3464015E...0001003C 52 350.0 MB R H - 225 00 YRZJ35 0 EOM - 00001C02 0760FF80 3464012C...0001003C 52 300.0 MB R H - 225 00 YRZJ30 0 EOM - 00001C02 0760FF80 0B6403E8...0001003C 11 1000.0 MB TMP - 225 00 YTZJ99 0 EOM - 00001C02 0760FF80 0B6403B6...0001003C 11 950.0 MB TMP - 225 00 YTZJ95 0 EOM - 00001C02 0760FF80 0B640384...0001003C 11 900.0 MB TMP - 225 00 YTZJ90 0 EOM - 00001C02 0760FF80 0B640352...0001003C 11 850.0 MB TMP - 225 00 YTZJ85 0 EOM - 00001C02 0760FF80 0B640320...0001003C 11 800.0 MB TMP - 225 00 YTZJ80 0 EOM - 00001C02 0760FF80 0B6402EE...0001003C 11 750.0 MB TMP - 225 00 YTZJ75 0 EOM - 00001C02 0760FF80 0B6402BC...0001003C 11 700.0 MB TMP - 225 00 YTZJ70 0 EOM - 00001C02 0760FF80 0B64028A...0001003C 11 650.0 MB TMP - 225 00 YTZJ65 0 EOM - 00001C02 0760FF80 0B640258...0001003C 11 600.0 MB TMP - 225 00 YTZJ60 0 EOM - 00001C02 0760FF80 0B640226...0001003C 11 550.0 MB TMP - 225 00 YTZJ55 0 EOM - 00001C02 0760FF80 0B6401F4...0001003C 11 500.0 MB TMP - 225 00 YTZJ50 0 EOM - 00001C02 0760FF80 0B6401C2...0001003C 11 450.0 MB TMP - 225 00 YTZJ45 0 EOM - 00001C02 0760FF80 0B640190...0001003C 11 400.0 MB TMP - 225 00 YTZJ40 0 EOM - 00001C02 0760FF80 0B64015E...0001003C 11 350.0 MB TMP - 225 00 YTZJ35 0 EOM - 00001C02 0760FF80 0B64012C...0001003C 11 300.0 MB TMP - 225 00 YTZJ30 0 EOM - 00001C02 0760FF80 0B6400FA...0001003C 11 250.0 MB TMP - 225 00 YTZJ25 0 EOM - 00001C02 0760FF80 0B6400C8...0001003C 11 200.0 MB TMP - 225 00 YTZJ20 0 EOM - 00001C02 0760FF80 0B640096...0001003C 11 150.0 MB TMP - 225 00 YTZJ15 0 EOM - 00001C02 0760FF80 0B640064...0001003C 11 100.0 MB TMP - 225 00 YTZJ10 0 EOM - 00001C02 0760FF80 27640352...0001003C 39 850.0 MB V VEL - 225 00 YOZJ85 0 EOM - 00001C02 0760FF80 276402BC...0001003C 39 700.0 MB V VEL - 225 00 YOZJ70 0 EOM - 00001C02 0760FF80 276401F4...0001003C 39 500.0 MB V VEL - 225 00 YOZJ50 0 EOM - 00001C02 0760FF80 2764012C...0001003C 39 300.0 MB V VEL - 225 00 YOZJ30 0 EOM - 00001C02 0760FF80 276400C8...0001003C 39 200.0 MB V VEL - 225 00 YOZJ20 0 EOM - 00001C02 0760FF80 01010000...0001003C 01 SFC PRES - 225 00 YPZJ98 0 EOM - 00001C02 0760FF80 346C2C64...0001003C 52 44/100 R H - 225 00 YRZJ00 0 EOM - 00001C02 0760FF80 36C80000...0001003C 54 EATM P WAT - 225 00 YFZJ00 0 EOM - 00001C02 0760FF80 0B070000...0001003C 11 TRO TMP - 225 00 YTZJ97 0 EOM - 00001C02 0760FF80 01070000...0001003C 01 TRO PRES - 225 00 YPZJ97 0 EOM - 00001C02 0760FF80 21070000...0001003C 33 TRO U GRD - 225 00 YUZJ97 0 EOM - 00001C02 0760FF80 22070000...0001003C 34 TRO V GRD - 225 00 YVZJ97 0 EOM - 00001C02 0760FF80 3D010000...0001363C 61 SFC A PCP - 225 00 YEZJ98 0 EOM - 00001C02 0760FF80 83010000...0001003C 131 SFC LFT X - 225 00 YXZJ98 0 EOM - 00001C02 0760FF80 0B690002...0001003C 11 2 HTGL TMP - 225 00 YTZJ98 0 EOM - 00001C02 0760FF80 2169000A...0001003C 33 10 HTGL U GRD - 225 00 YUZJ98 0 EOM - 00001C02 0760FF80 2269000A...0001003C 34 10 HTGL V GRD - 225 00 YVZJ98 0 EOM - 00001C02 0760FF80 9D010000...0001003C 157 SFC CAPE - 225 00 YWZJ98 0 EOM - 00001C02 0760FF80 9C010000...0001003C 156 SFC CIN - 225 00 YYZJ98 0 EOM - 00001C02 0760FF80 84010000...0001003C 132 SFC 4LFTX - 225 00 YQZJ98 0 EOM - 00001C02 0760FF80 9D74B400...0001003C 157 Y 0 SPDY CAPE - 225 00 YWZJ86 0 EOM - 00001C02 0760FF80 9C74B400...0001003C 156 Y 0 SPDY CIN - 225 00 YYZJ86 0 EOM - 00001C02 0760FF80 3F010000...0001363C 63 ACUM SFC ACPCP - 225 00 YGZJ98 0 EOM - 00001C02 0760FF80 0B741E00...0001003C 11 0 SPDY TMP - 225 00 YTZJ86 0 EOM - 00001C02 0760FF80 34741E00...0001003C 52 0 SPDY R H - 225 00 YRZJ86 0 EOM - 00001C02 0760FF80 21741E00...0001003C 33 0 SPDY U GRD - 225 00 YUZJ86 0 EOM - 00001C02 0760FF80 22741E00...0001003C 34 0 SPDY V GRD - 225 00 YVZJ86 0 EOM - 00001C02 0760FF80 01060000...0001003C 01 MWSL PRES - 225 00 YPZJ96 0 EOM - 00001C02 0760FF80 21060000...0001003C 33 MWSL U GRD - 225 00 YUZJ96 0 EOM - 00001C02 0760FF80 22060000...0001003C 34 MWSL V GRD - 225 00 YVZJ96 0 EOM - 00001C02 0760FF80 07040000...0001003C 07 0DEG HGT - 225 00 YHZJ94 0 EOM - 00001C02 0760FF80 34040000...0001003C 52 0DEG R H - 225 00 YRZJ94 0 EOM - 00001C02 0760FF80 02660000...0001003C 02 MSL PRMSL - 225 00 YPZJ89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs066.225 b/parm/wmo/grib_awpgfs066.225 deleted file mode 100755 index a6dfebe99c..0000000000 --- a/parm/wmo/grib_awpgfs066.225 +++ /dev/null @@ -1,251 +0,0 @@ - 00001C02 0760FF80 076403E8...00010042 07 1000.0 MB HGT - 225 00 ZHZN99 0 EOM - 00001C02 0760FF80 076403B6...00010042 07 950.0 MB HGT - 225 00 ZHZN95 0 EOM - 00001C02 0760FF80 07640384...00010042 07 900.0 MB HGT - 225 00 ZHZN90 0 EOM - 00001C02 0760FF80 07640352...00010042 07 850.0 MB HGT - 225 00 ZHZN85 0 EOM - 00001C02 0760FF80 07640320...00010042 07 800.0 MB HGT - 225 00 ZHZN80 0 EOM - 00001C02 0760FF80 076402EE...00010042 07 750.0 MB HGT - 225 00 ZHZN75 0 EOM - 00001C02 0760FF80 076402BC...00010042 07 700.0 MB HGT - 225 00 ZHZN70 0 EOM - 00001C02 0760FF80 0764028A...00010042 07 650.0 MB HGT - 225 00 ZHZN65 0 EOM - 00001C02 0760FF80 07640258...00010042 07 600.0 MB HGT - 225 00 ZHZN60 0 EOM - 00001C02 0760FF80 07640226...00010042 07 550.0 MB HGT - 225 00 ZHZN55 0 EOM - 00001C02 0760FF80 076401F4...00010042 07 500.0 MB HGT - 225 00 ZHZN50 0 EOM - 00001C02 0760FF80 076401C2...00010042 07 450.0 MB HGT - 225 00 ZHZN45 0 EOM - 00001C02 0760FF80 07640190...00010042 07 400.0 MB HGT - 225 00 ZHZN40 0 EOM - 00001C02 0760FF80 0764015E...00010042 07 350.0 MB HGT - 225 00 ZHZN35 0 EOM - 00001C02 0760FF80 0764012C...00010042 07 300.0 MB HGT - 225 00 ZHZN30 0 EOM - 00001C02 0760FF80 076400FA...00010042 07 250.0 MB HGT - 225 00 ZHZN25 0 EOM - 00001C02 0760FF80 076400C8...00010048 07 200.0 MB HGT - 225 00 ZHZN20 0 EOM - 00001C02 0760FF80 07640096...00010042 07 150.0 MB HGT - 225 00 ZHZN15 0 EOM - 00001C02 0760FF80 07640064...00010042 07 100.0 MB HGT - 225 00 ZHZN10 0 EOM - 00001C02 0760FF80 216403E8...00010042 33 1000.0 MB U GRD - 225 00 ZUZN99 0 EOM - 00001C02 0760FF80 216403B6...00010042 33 950.0 MB U GRD - 225 00 ZUZN95 0 EOM - 00001C02 0760FF80 21640384...00010042 33 900.0 MB U GRD - 225 00 ZUZN90 0 EOM - 00001C02 0760FF80 21640352...00010042 33 850.0 MB U GRD - 225 00 ZUZN85 0 EOM - 00001C02 0760FF80 21640320...00010042 33 800.0 MB U GRD - 225 00 ZUZN80 0 EOM - 00001C02 0760FF80 216402EE...00010042 33 750.0 MB U GRD - 225 00 ZUZN75 0 EOM - 00001C02 0760FF80 216402BC...00010042 33 700.0 MB U GRD - 225 00 ZUZN70 0 EOM - 00001C02 0760FF80 2164028A...00010042 33 650.0 MB U GRD - 225 00 ZUZN65 0 EOM - 00001C02 0760FF80 21640258...00010042 33 600.0 MB U GRD - 225 00 ZUZN60 0 EOM - 00001C02 0760FF80 21640226...00010042 33 550.0 MB U GRD - 225 00 ZUZN55 0 EOM - 00001C02 0760FF80 216401F4...00010042 33 500.0 MB U GRD - 225 00 ZUZN50 0 EOM - 00001C02 0760FF80 216401C2...00010042 33 450.0 MB U GRD - 225 00 ZUZN45 0 EOM - 00001C02 0760FF80 21640190...00010042 33 400.0 MB U GRD - 225 00 ZUZN40 0 EOM - 00001C02 0760FF80 2164015E...00010042 33 350.0 MB U GRD - 225 00 ZUZN35 0 EOM - 00001C02 0760FF80 2164012C...00010042 33 300.0 MB U GRD - 225 00 ZUZN30 0 EOM - 00001C02 0760FF80 216400FA...00010042 33 250.0 MB U GRD - 225 00 ZUZN25 0 EOM - 00001C02 0760FF80 216400C8...00010042 33 200.0 MB U GRD - 225 00 ZUZN20 0 EOM - 00001C02 0760FF80 21640096...00010042 33 150.0 MB U GRD - 225 00 ZUZN15 0 EOM - 00001C02 0760FF80 21640064...00010042 33 100.0 MB U GRD - 225 00 ZUZN10 0 EOM - 00001C02 0760FF80 226403E8...00010042 34 1000.0 MB V GRD - 225 00 ZVZN99 0 EOM - 00001C02 0760FF80 226403B6...00010042 34 950.0 MB V GRD - 225 00 ZVZN95 0 EOM - 00001C02 0760FF80 22640384...00010042 34 900.0 MB V GRD - 225 00 ZVZN90 0 EOM - 00001C02 0760FF80 22640352...00010042 34 850.0 MB V GRD - 225 00 ZVZN85 0 EOM - 00001C02 0760FF80 22640320...00010042 34 800.0 MB V GRD - 225 00 ZVZN80 0 EOM - 00001C02 0760FF80 226402EE...00010042 34 750.0 MB V GRD - 225 00 ZVZN75 0 EOM - 00001C02 0760FF80 226402BC...00010042 34 700.0 MB V GRD - 225 00 ZVZN70 0 EOM - 00001C02 0760FF80 2264028A...00010042 34 650.0 MB V GRD - 225 00 ZVZN65 0 EOM - 00001C02 0760FF80 22640258...00010042 34 600.0 MB V GRD - 225 00 ZVZN60 0 EOM - 00001C02 0760FF80 22640226...00010042 34 550.0 MB V GRD - 225 00 ZVZN55 0 EOM - 00001C02 0760FF80 226401F4...00010042 34 500.0 MB V GRD - 225 00 ZVZN50 0 EOM - 00001C02 0760FF80 226401C2...00010042 34 450.0 MB V GRD - 225 00 ZVZN45 0 EOM - 00001C02 0760FF80 22640190...00010042 34 400.0 MB V GRD - 225 00 ZVZN40 0 EOM - 00001C02 0760FF80 2264015E...00010042 34 350.0 MB V GRD - 225 00 ZVZN35 0 EOM - 00001C02 0760FF80 2264012C...00010042 34 300.0 MB V GRD - 225 00 ZVZN30 0 EOM - 00001C02 0760FF80 226400FA...00010042 34 250.0 MB V GRD - 225 00 ZVZN25 0 EOM - 00001C02 0760FF80 226400C8...00010042 34 200.0 MB V GRD - 225 00 ZVZN20 0 EOM - 00001C02 0760FF80 22640096...00010042 34 150.0 MB V GRD - 225 00 ZVZN15 0 EOM - 00001C02 0760FF80 22640064...00010042 34 100.0 MB V GRD - 225 00 ZVZN10 0 EOM - 00001C02 0760FF80 346403E8...00010042 52 1000.0 MB R H - 225 00 ZRZN99 0 EOM - 00001C02 0760FF80 346403B6...00010042 52 950.0 MB R H - 225 00 ZRZN95 0 EOM - 00001C02 0760FF80 34640384...00010042 52 900.0 MB R H - 225 00 ZRZN90 0 EOM - 00001C02 0760FF80 34640352...00010042 52 850.0 MB R H - 225 00 ZRZN85 0 EOM - 00001C02 0760FF80 34640320...00010042 52 800.0 MB R H - 225 00 ZRZN80 0 EOM - 00001C02 0760FF80 346402EE...00010042 52 750.0 MB R H - 225 00 ZRZN75 0 EOM - 00001C02 0760FF80 346402BC...00010042 52 700.0 MB R H - 225 00 ZRZN70 0 EOM - 00001C02 0760FF80 3464028A...00010042 52 650.0 MB R H - 225 00 ZRZN65 0 EOM - 00001C02 0760FF80 34640258...00010042 52 600.0 MB R H - 225 00 ZRZN60 0 EOM - 00001C02 0760FF80 34640226...00010042 52 550.0 MB R H - 225 00 ZRZN55 0 EOM - 00001C02 0760FF80 346401F4...00010042 52 500.0 MB R H - 225 00 ZRZN50 0 EOM - 00001C02 0760FF80 346401C2...00010042 52 450.0 MB R H - 225 00 ZRZN45 0 EOM - 00001C02 0760FF80 34640190...00010042 52 400.0 MB R H - 225 00 ZRZN40 0 EOM - 00001C02 0760FF80 3464015E...00010042 52 350.0 MB R H - 225 00 ZRZN35 0 EOM - 00001C02 0760FF80 3464012C...00010042 52 300.0 MB R H - 225 00 ZRZN30 0 EOM - 00001C02 0760FF80 0B6403E8...00010042 11 1000.0 MB TMP - 225 00 ZTZN99 0 EOM - 00001C02 0760FF80 0B6403B6...00010042 11 950.0 MB TMP - 225 00 ZTZN95 0 EOM - 00001C02 0760FF80 0B640384...00010042 11 900.0 MB TMP - 225 00 ZTZN90 0 EOM - 00001C02 0760FF80 0B640352...00010042 11 850.0 MB TMP - 225 00 ZTZN85 0 EOM - 00001C02 0760FF80 0B640320...00010042 11 800.0 MB TMP - 225 00 ZTZN80 0 EOM - 00001C02 0760FF80 0B6402EE...00010042 11 750.0 MB TMP - 225 00 ZTZN75 0 EOM - 00001C02 0760FF80 0B6402BC...00010042 11 700.0 MB TMP - 225 00 ZTZN70 0 EOM - 00001C02 0760FF80 0B64028A...00010042 11 650.0 MB TMP - 225 00 ZTZN65 0 EOM - 00001C02 0760FF80 0B640258...00010042 11 600.0 MB TMP - 225 00 ZTZN60 0 EOM - 00001C02 0760FF80 0B640226...00010042 11 550.0 MB TMP - 225 00 ZTZN55 0 EOM - 00001C02 0760FF80 0B6401F4...00010042 11 500.0 MB TMP - 225 00 ZTZN50 0 EOM - 00001C02 0760FF80 0B6401C2...00010042 11 450.0 MB TMP - 225 00 ZTZN45 0 EOM - 00001C02 0760FF80 0B640190...00010042 11 400.0 MB TMP - 225 00 ZTZN40 0 EOM - 00001C02 0760FF80 0B64015E...00010042 11 350.0 MB TMP - 225 00 ZTZN35 0 EOM - 00001C02 0760FF80 0B64012C...00010042 11 300.0 MB TMP - 225 00 ZTZN30 0 EOM - 00001C02 0760FF80 0B6400FA...00010042 11 250.0 MB TMP - 225 00 ZTZN25 0 EOM - 00001C02 0760FF80 0B6400C8...00010042 11 200.0 MB TMP - 225 00 ZTZN20 0 EOM - 00001C02 0760FF80 0B640096...00010042 11 150.0 MB TMP - 225 00 ZTZN15 0 EOM - 00001C02 0760FF80 0B640064...00010042 11 100.0 MB TMP - 225 00 ZTZN10 0 EOM - 00001C02 0760FF80 27640352...00010042 39 850.0 MB V VEL - 225 00 ZOZN85 0 EOM - 00001C02 0760FF80 276402BC...00010042 39 700.0 MB V VEL - 225 00 ZOZN70 0 EOM - 00001C02 0760FF80 276401F4...00010042 39 500.0 MB V VEL - 225 00 ZOZN50 0 EOM - 00001C02 0760FF80 2764012C...00010042 39 300.0 MB V VEL - 225 00 ZOZN30 0 EOM - 00001C02 0760FF80 276400FA...00010042 39 250.0 MB V VEL - 225 00 ZOZN25 0 EOM - 00001C02 0760FF80 276400C8...00010042 39 200.0 MB V VEL - 225 00 ZOZN20 0 EOM - 00001C02 0760FF80 01010000...00010042 01 SFC PRES - 225 00 ZPZN98 0 EOM - 00001C02 0760FF80 346C2C64...00010042 52 44/100 R H - 225 00 ZRZN00 0 EOM - 00001C02 0760FF80 36C80000...00010042 54 EATM P WAT - 225 00 ZFZN00 0 EOM - 00001C02 0760FF80 0B070000...00010042 11 TRO TMP - 225 00 ZTZN97 0 EOM - 00001C02 0760FF80 01070000...00010042 01 TRO PRES - 225 00 ZPZN97 0 EOM - 00001C02 0760FF80 21070000...00010042 33 TRO U GRD - 225 00 ZUZN97 0 EOM - 00001C02 0760FF80 22070000...00010042 34 TRO V GRD - 225 00 ZVZN97 0 EOM - 00001C02 0760FF80 3D010000...00013C42 61 SFC A PCP - 225 00 ZEZN98 0 EOM - 00001C02 0760FF80 83010000...00010042 131 SFC LFT X - 225 00 ZXZN98 0 EOM - 00001C02 0760FF80 0B690002...00010042 11 2 HTGL TMP - 225 00 ZTZN98 0 EOM - 00001C02 0760FF80 2169000A...00010042 33 10 HTGL U GRD - 225 00 ZUZN98 0 EOM - 00001C02 0760FF80 2269000A...00010042 34 10 HTGL V GRD - 225 00 ZVZN98 0 EOM - 00001C02 0760FF80 9D010000...00010042 157 SFC CAPE - 225 00 ZWZN98 0 EOM - 00001C02 0760FF80 9C010000...00010042 156 SFC CIN - 225 00 ZYZN98 0 EOM - 00001C02 0760FF80 84010000...00010042 132 SFC 4LFTX - 225 00 ZQZN98 0 EOM - 00001C02 0760FF80 9D74B400...00010042 157 Y 0 SPDY CAPE - 225 00 ZWZN86 0 EOM - 00001C02 0760FF80 9C74B400...00010042 156 Y 0 SPDY CIN - 225 00 ZYZN86 0 EOM - 00001C02 0760FF80 3F010000...00013C42 63 ACUM SFC ACPCP - 225 00 ZGZN98 0 EOM - 00001C02 0760FF80 0B741E00...00010042 11 0 SPDY TMP - 225 00 ZTZN86 0 EOM - 00001C02 0760FF80 34741E00...00010042 52 0 SPDY R H - 225 00 ZRZN86 0 EOM - 00001C02 0760FF80 21741E00...00010042 33 0 SPDY U GRD - 225 00 ZUZN86 0 EOM - 00001C02 0760FF80 22741E00...00010042 34 0 SPDY V GRD - 225 00 ZVZN86 0 EOM - 00001C02 0760FF80 01060000...00010042 01 MWSL PRES - 225 00 ZPZN96 0 EOM - 00001C02 0760FF80 21060000...00010042 33 MWSL U GRD - 225 00 ZUZN96 0 EOM - 00001C02 0760FF80 22060000...00010042 34 MWSL V GRD - 225 00 ZVZN96 0 EOM - 00001C02 0760FF80 07040000...00010042 07 0DEG HGT - 225 00 ZHZN94 0 EOM - 00001C02 0760FF80 34040000...00010042 52 0DEG R H - 225 00 ZRZN94 0 EOM - 00001C02 0760FF80 02660000...00010042 02 MSL PRMSL - 225 00 ZPZN89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs072.225 b/parm/wmo/grib_awpgfs072.225 deleted file mode 100755 index cb023b4867..0000000000 --- a/parm/wmo/grib_awpgfs072.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...00010048 07 1000.0 MB HGT - 225 00 YHZK99 0 EOM - 00001C02 0760FF80 076403B6...00010048 07 950.0 MB HGT - 225 00 YHZK95 0 EOM - 00001C02 0760FF80 07640384...00010048 07 900.0 MB HGT - 225 00 YHZK90 0 EOM - 00001C02 0760FF80 07640352...00010048 07 850.0 MB HGT - 225 00 YHZK85 0 EOM - 00001C02 0760FF80 07640320...00010048 07 800.0 MB HGT - 225 00 YHZK80 0 EOM - 00001C02 0760FF80 076402EE...00010048 07 750.0 MB HGT - 225 00 YHZK75 0 EOM - 00001C02 0760FF80 076402BC...00010048 07 700.0 MB HGT - 225 00 YHZK70 0 EOM - 00001C02 0760FF80 0764028A...00010048 07 650.0 MB HGT - 225 00 YHZK65 0 EOM - 00001C02 0760FF80 07640258...00010048 07 600.0 MB HGT - 225 00 YHZK60 0 EOM - 00001C02 0760FF80 07640226...00010048 07 550.0 MB HGT - 225 00 YHZK55 0 EOM - 00001C02 0760FF80 076401F4...00010048 07 500.0 MB HGT - 225 00 YHZK50 0 EOM - 00001C02 0760FF80 076401C2...00010048 07 450.0 MB HGT - 225 00 YHZK45 0 EOM - 00001C02 0760FF80 07640190...00010048 07 400.0 MB HGT - 225 00 YHZK40 0 EOM - 00001C02 0760FF80 0764015E...00010048 07 350.0 MB HGT - 225 00 YHZK35 0 EOM - 00001C02 0760FF80 0764012C...00010048 07 300.0 MB HGT - 225 00 YHZK30 0 EOM - 00001C02 0760FF80 076400FA...00010048 07 250.0 MB HGT - 225 00 YHZK25 0 EOM - 00001C02 0760FF80 076400C8...00010048 07 200.0 MB HGT - 225 00 YHZK20 0 EOM - 00001C02 0760FF80 07640096...00010048 07 150.0 MB HGT - 225 00 YHZK15 0 EOM - 00001C02 0760FF80 07640064...00010048 07 100.0 MB HGT - 225 00 YHZK10 0 EOM - 00001C02 0760FF80 216403E8...00010048 33 1000.0 MB U GRD - 225 00 YUZK99 0 EOM - 00001C02 0760FF80 216403B6...00010048 33 950.0 MB U GRD - 225 00 YUZK95 0 EOM - 00001C02 0760FF80 21640384...00010048 33 900.0 MB U GRD - 225 00 YUZK90 0 EOM - 00001C02 0760FF80 21640352...00010048 33 850.0 MB U GRD - 225 00 YUZK85 0 EOM - 00001C02 0760FF80 21640320...00010048 33 800.0 MB U GRD - 225 00 YUZK80 0 EOM - 00001C02 0760FF80 216402EE...00010048 33 750.0 MB U GRD - 225 00 YUZK75 0 EOM - 00001C02 0760FF80 216402BC...00010048 33 700.0 MB U GRD - 225 00 YUZK70 0 EOM - 00001C02 0760FF80 2164028A...00010048 33 650.0 MB U GRD - 225 00 YUZK65 0 EOM - 00001C02 0760FF80 21640258...00010048 33 600.0 MB U GRD - 225 00 YUZK60 0 EOM - 00001C02 0760FF80 21640226...00010048 33 550.0 MB U GRD - 225 00 YUZK55 0 EOM - 00001C02 0760FF80 216401F4...00010048 33 500.0 MB U GRD - 225 00 YUZK50 0 EOM - 00001C02 0760FF80 216401C2...00010048 33 450.0 MB U GRD - 225 00 YUZK45 0 EOM - 00001C02 0760FF80 21640190...00010048 33 400.0 MB U GRD - 225 00 YUZK40 0 EOM - 00001C02 0760FF80 2164015E...00010048 33 350.0 MB U GRD - 225 00 YUZK35 0 EOM - 00001C02 0760FF80 2164012C...00010048 33 300.0 MB U GRD - 225 00 YUZK30 0 EOM - 00001C02 0760FF80 216400FA...00010048 33 250.0 MB U GRD - 225 00 YUZK25 0 EOM - 00001C02 0760FF80 216400C8...00010048 33 200.0 MB U GRD - 225 00 YUZK20 0 EOM - 00001C02 0760FF80 21640096...00010048 33 150.0 MB U GRD - 225 00 YUZK15 0 EOM - 00001C02 0760FF80 21640064...00010048 33 100.0 MB U GRD - 225 00 YUZK10 0 EOM - 00001C02 0760FF80 226403E8...00010048 34 1000.0 MB V GRD - 225 00 YVZK99 0 EOM - 00001C02 0760FF80 226403B6...00010048 34 950.0 MB V GRD - 225 00 YVZK95 0 EOM - 00001C02 0760FF80 22640384...00010048 34 900.0 MB V GRD - 225 00 YVZK90 0 EOM - 00001C02 0760FF80 22640352...00010048 34 850.0 MB V GRD - 225 00 YVZK85 0 EOM - 00001C02 0760FF80 22640320...00010048 34 800.0 MB V GRD - 225 00 YVZK80 0 EOM - 00001C02 0760FF80 226402EE...00010048 34 750.0 MB V GRD - 225 00 YVZK75 0 EOM - 00001C02 0760FF80 226402BC...00010048 34 700.0 MB V GRD - 225 00 YVZK70 0 EOM - 00001C02 0760FF80 2264028A...00010048 34 650.0 MB V GRD - 225 00 YVZK65 0 EOM - 00001C02 0760FF80 22640258...00010048 34 600.0 MB V GRD - 225 00 YVZK60 0 EOM - 00001C02 0760FF80 22640226...00010048 34 550.0 MB V GRD - 225 00 YVZK55 0 EOM - 00001C02 0760FF80 226401F4...00010048 34 500.0 MB V GRD - 225 00 YVZK50 0 EOM - 00001C02 0760FF80 226401C2...00010048 34 450.0 MB V GRD - 225 00 YVZK45 0 EOM - 00001C02 0760FF80 22640190...00010048 34 400.0 MB V GRD - 225 00 YVZK40 0 EOM - 00001C02 0760FF80 2264015E...00010048 34 350.0 MB V GRD - 225 00 YVZK35 0 EOM - 00001C02 0760FF80 2264012C...00010048 34 300.0 MB V GRD - 225 00 YVZK30 0 EOM - 00001C02 0760FF80 226400FA...00010048 34 250.0 MB V GRD - 225 00 YVZK25 0 EOM - 00001C02 0760FF80 226400C8...00010048 34 200.0 MB V GRD - 225 00 YVZK20 0 EOM - 00001C02 0760FF80 22640096...00010048 34 150.0 MB V GRD - 225 00 YVZK15 0 EOM - 00001C02 0760FF80 22640064...00010048 34 100.0 MB V GRD - 225 00 YVZK10 0 EOM - 00001C02 0760FF80 346403E8...00010048 52 1000.0 MB R H - 225 00 YRZK99 0 EOM - 00001C02 0760FF80 346403B6...00010048 52 950.0 MB R H - 225 00 YRZK95 0 EOM - 00001C02 0760FF80 34640384...00010048 52 900.0 MB R H - 225 00 YRZK90 0 EOM - 00001C02 0760FF80 34640352...00010048 52 850.0 MB R H - 225 00 YRZK85 0 EOM - 00001C02 0760FF80 34640320...00010048 52 800.0 MB R H - 225 00 YRZK80 0 EOM - 00001C02 0760FF80 346402EE...00010048 52 750.0 MB R H - 225 00 YRZK75 0 EOM - 00001C02 0760FF80 346402BC...00010048 52 700.0 MB R H - 225 00 YRZK70 0 EOM - 00001C02 0760FF80 3464028A...00010048 52 650.0 MB R H - 225 00 YRZK65 0 EOM - 00001C02 0760FF80 34640258...00010048 52 600.0 MB R H - 225 00 YRZK60 0 EOM - 00001C02 0760FF80 34640226...00010048 52 550.0 MB R H - 225 00 YRZK55 0 EOM - 00001C02 0760FF80 346401F4...00010048 52 500.0 MB R H - 225 00 YRZK50 0 EOM - 00001C02 0760FF80 346401C2...00010048 52 450.0 MB R H - 225 00 YRZK45 0 EOM - 00001C02 0760FF80 34640190...00010048 52 400.0 MB R H - 225 00 YRZK40 0 EOM - 00001C02 0760FF80 3464015E...00010048 52 350.0 MB R H - 225 00 YRZK35 0 EOM - 00001C02 0760FF80 3464012C...00010048 52 300.0 MB R H - 225 00 YRZK30 0 EOM - 00001C02 0760FF80 0B6403E8...00010048 11 1000.0 MB TMP - 225 00 YTZK99 0 EOM - 00001C02 0760FF80 0B6403B6...00010048 11 950.0 MB TMP - 225 00 YTZK95 0 EOM - 00001C02 0760FF80 0B640384...00010048 11 900.0 MB TMP - 225 00 YTZK90 0 EOM - 00001C02 0760FF80 0B640352...00010048 11 850.0 MB TMP - 225 00 YTZK85 0 EOM - 00001C02 0760FF80 0B640320...00010048 11 800.0 MB TMP - 225 00 YTZK80 0 EOM - 00001C02 0760FF80 0B6402EE...00010048 11 750.0 MB TMP - 225 00 YTZK75 0 EOM - 00001C02 0760FF80 0B6402BC...00010048 11 700.0 MB TMP - 225 00 YTZK70 0 EOM - 00001C02 0760FF80 0B64028A...00010048 11 650.0 MB TMP - 225 00 YTZK65 0 EOM - 00001C02 0760FF80 0B640258...00010048 11 600.0 MB TMP - 225 00 YTZK60 0 EOM - 00001C02 0760FF80 0B640226...00010048 11 550.0 MB TMP - 225 00 YTZK55 0 EOM - 00001C02 0760FF80 0B6401F4...00010048 11 500.0 MB TMP - 225 00 YTZK50 0 EOM - 00001C02 0760FF80 0B6401C2...00010048 11 450.0 MB TMP - 225 00 YTZK45 0 EOM - 00001C02 0760FF80 0B640190...00010048 11 400.0 MB TMP - 225 00 YTZK40 0 EOM - 00001C02 0760FF80 0B64015E...00010048 11 350.0 MB TMP - 225 00 YTZK35 0 EOM - 00001C02 0760FF80 0B64012C...00010048 11 300.0 MB TMP - 225 00 YTZK30 0 EOM - 00001C02 0760FF80 0B6400FA...00010048 11 250.0 MB TMP - 225 00 YTZK25 0 EOM - 00001C02 0760FF80 0B6400C8...00010048 11 200.0 MB TMP - 225 00 YTZK20 0 EOM - 00001C02 0760FF80 0B640096...00010048 11 150.0 MB TMP - 225 00 YTZK15 0 EOM - 00001C02 0760FF80 0B640064...00010048 11 100.0 MB TMP - 225 00 YTZK10 0 EOM - 00001C02 0760FF80 27640352...00010048 39 850.0 MB V VEL - 225 00 YOZK85 0 EOM - 00001C02 0760FF80 276402BC...00010048 39 700.0 MB V VEL - 225 00 YOZK70 0 EOM - 00001C02 0760FF80 276401F4...00010048 39 500.0 MB V VEL - 225 00 YOZK50 0 EOM - 00001C02 0760FF80 2764012C...00010048 39 300.0 MB V VEL - 225 00 YOZK30 0 EOM - 00001C02 0760FF80 276400C8...00010048 39 200.0 MB V VEL - 225 00 YOZK20 0 EOM - 00001C02 0760FF80 01010000...00010048 01 SFC PRES - 225 00 YPZK98 0 EOM - 00001C02 0760FF80 346C2C64...00010048 52 44/100 R H - 225 00 YRZK00 0 EOM - 00001C02 0760FF80 36C80000...00010048 54 EATM P WAT - 225 00 YFZK00 0 EOM - 00001C02 0760FF80 0B070000...00010048 11 TRO TMP - 225 00 YTZK97 0 EOM - 00001C02 0760FF80 01070000...00010048 01 TRO PRES - 225 00 YPZK97 0 EOM - 00001C02 0760FF80 21070000...00010048 33 TRO U GRD - 225 00 YUZK97 0 EOM - 00001C02 0760FF80 22070000...00010048 34 TRO V GRD - 225 00 YVZK97 0 EOM - 00001C02 0760FF80 3D010000...00014248 61 SFC A PCP - 225 00 YEZK98 0 EOM - 00001C02 0760FF80 83010000...00010048 131 SFC LFT X - 225 00 YXZK98 0 EOM - 00001C02 0760FF80 0B690002...00010048 11 2 HTGL TMP - 225 00 YTZK98 0 EOM - 00001C02 0760FF80 2169000A...00010048 33 10 HTGL U GRD - 225 00 YUZK98 0 EOM - 00001C02 0760FF80 2269000A...00010048 34 10 HTGL V GRD - 225 00 YVZK98 0 EOM - 00001C02 0760FF80 9D010000...00010048 157 SFC CAPE - 225 00 YWZK98 0 EOM - 00001C02 0760FF80 9C010000...00010048 156 SFC CIN - 225 00 YYZK98 0 EOM - 00001C02 0760FF80 84010000...00010048 132 SFC 4LFTX - 225 00 YQZK98 0 EOM - 00001C02 0760FF80 9D74B400...00010048 157 Y 0 SPDY CAPE - 225 00 YWZK86 0 EOM - 00001C02 0760FF80 9C74B400...00010048 156 Y 0 SPDY CIN - 225 00 YYZK86 0 EOM - 00001C02 0760FF80 3F010000...00014248 63 ACUM SFC ACPCP - 225 00 YGZK98 0 EOM - 00001C02 0760FF80 0B741E00...00010048 11 0 SPDY TMP - 225 00 YTZK86 0 EOM - 00001C02 0760FF80 34741E00...00010048 52 0 SPDY R H - 225 00 YRZK86 0 EOM - 00001C02 0760FF80 21741E00...00010048 33 0 SPDY U GRD - 225 00 YUZK86 0 EOM - 00001C02 0760FF80 22741E00...00010048 34 0 SPDY V GRD - 225 00 YVZK86 0 EOM - 00001C02 0760FF80 01060000...00010048 01 MWSL PRES - 225 00 YPZK96 0 EOM - 00001C02 0760FF80 21060000...00010048 33 MWSL U GRD - 225 00 YUZK96 0 EOM - 00001C02 0760FF80 22060000...00010048 34 MWSL V GRD - 225 00 YVZK96 0 EOM - 00001C02 0760FF80 07040000...00010048 07 0DEG HGT - 225 00 YHZK94 0 EOM - 00001C02 0760FF80 34040000...00010048 52 0DEG R H - 225 00 YRZK94 0 EOM - 00001C02 0760FF80 02660000...00010048 02 MSL PRMSL - 225 00 YPZK89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs078.225 b/parm/wmo/grib_awpgfs078.225 deleted file mode 100755 index 6b668b6dc3..0000000000 --- a/parm/wmo/grib_awpgfs078.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...0001004E 07 1000.0 MB HGT - 225 00 ZHZT99 0 EOM - 00001C02 0760FF80 076403B6...0001004E 07 950.0 MB HGT - 225 00 ZHZT95 0 EOM - 00001C02 0760FF80 07640384...0001004E 07 900.0 MB HGT - 225 00 ZHZT90 0 EOM - 00001C02 0760FF80 07640352...0001004E 07 850.0 MB HGT - 225 00 ZHZT85 0 EOM - 00001C02 0760FF80 07640320...0001004E 07 800.0 MB HGT - 225 00 ZHZT80 0 EOM - 00001C02 0760FF80 076402EE...0001004E 07 750.0 MB HGT - 225 00 ZHZT75 0 EOM - 00001C02 0760FF80 076402BC...0001004E 07 700.0 MB HGT - 225 00 ZHZT70 0 EOM - 00001C02 0760FF80 0764028A...0001004E 07 650.0 MB HGT - 225 00 ZHZT65 0 EOM - 00001C02 0760FF80 07640258...0001004E 07 600.0 MB HGT - 225 00 ZHZT60 0 EOM - 00001C02 0760FF80 07640226...0001004E 07 550.0 MB HGT - 225 00 ZHZT55 0 EOM - 00001C02 0760FF80 076401F4...0001004E 07 500.0 MB HGT - 225 00 ZHZT50 0 EOM - 00001C02 0760FF80 076401C2...0001004E 07 450.0 MB HGT - 225 00 ZHZT45 0 EOM - 00001C02 0760FF80 07640190...0001004E 07 400.0 MB HGT - 225 00 ZHZT40 0 EOM - 00001C02 0760FF80 0764015E...0001004E 07 350.0 MB HGT - 225 00 ZHZT35 0 EOM - 00001C02 0760FF80 0764012C...0001004E 07 300.0 MB HGT - 225 00 ZHZT30 0 EOM - 00001C02 0760FF80 076400FA...0001004E 07 250.0 MB HGT - 225 00 ZHZT25 0 EOM - 00001C02 0760FF80 076400C8...0001004E 07 200.0 MB HGT - 225 00 ZHZT20 0 EOM - 00001C02 0760FF80 07640096...0001004E 07 150.0 MB HGT - 225 00 ZHZT15 0 EOM - 00001C02 0760FF80 07640064...0001004E 07 100.0 MB HGT - 225 00 ZHZT10 0 EOM - 00001C02 0760FF80 216403E8...0001004E 33 1000.0 MB U GRD - 225 00 ZUZT99 0 EOM - 00001C02 0760FF80 216403B6...0001004E 33 950.0 MB U GRD - 225 00 ZUZT95 0 EOM - 00001C02 0760FF80 21640384...0001004E 33 900.0 MB U GRD - 225 00 ZUZT90 0 EOM - 00001C02 0760FF80 21640352...0001004E 33 850.0 MB U GRD - 225 00 ZUZT85 0 EOM - 00001C02 0760FF80 21640320...0001004E 33 800.0 MB U GRD - 225 00 ZUZT80 0 EOM - 00001C02 0760FF80 216402EE...0001004E 33 750.0 MB U GRD - 225 00 ZUZT75 0 EOM - 00001C02 0760FF80 216402BC...0001004E 33 700.0 MB U GRD - 225 00 ZUZT70 0 EOM - 00001C02 0760FF80 2164028A...0001004E 33 650.0 MB U GRD - 225 00 ZUZT65 0 EOM - 00001C02 0760FF80 21640258...0001004E 33 600.0 MB U GRD - 225 00 ZUZT60 0 EOM - 00001C02 0760FF80 21640226...0001004E 33 550.0 MB U GRD - 225 00 ZUZT55 0 EOM - 00001C02 0760FF80 216401F4...0001004E 33 500.0 MB U GRD - 225 00 ZUZT50 0 EOM - 00001C02 0760FF80 216401C2...0001004E 33 450.0 MB U GRD - 225 00 ZUZT45 0 EOM - 00001C02 0760FF80 21640190...0001004E 33 400.0 MB U GRD - 225 00 ZUZT40 0 EOM - 00001C02 0760FF80 2164015E...0001004E 33 350.0 MB U GRD - 225 00 ZUZT35 0 EOM - 00001C02 0760FF80 2164012C...0001004E 33 300.0 MB U GRD - 225 00 ZUZT30 0 EOM - 00001C02 0760FF80 216400FA...0001004E 33 250.0 MB U GRD - 225 00 ZUZT25 0 EOM - 00001C02 0760FF80 216400C8...0001004E 33 200.0 MB U GRD - 225 00 ZUZT20 0 EOM - 00001C02 0760FF80 21640096...0001004E 33 150.0 MB U GRD - 225 00 ZUZT15 0 EOM - 00001C02 0760FF80 21640064...0001004E 33 100.0 MB U GRD - 225 00 ZUZT10 0 EOM - 00001C02 0760FF80 226403E8...0001004E 34 1000.0 MB V GRD - 225 00 ZVZT99 0 EOM - 00001C02 0760FF80 226403B6...0001004E 34 950.0 MB V GRD - 225 00 ZVZT95 0 EOM - 00001C02 0760FF80 22640384...0001004E 34 900.0 MB V GRD - 225 00 ZVZT90 0 EOM - 00001C02 0760FF80 22640352...0001004E 34 850.0 MB V GRD - 225 00 ZVZT85 0 EOM - 00001C02 0760FF80 22640320...0001004E 34 800.0 MB V GRD - 225 00 ZVZT80 0 EOM - 00001C02 0760FF80 226402EE...0001004E 34 750.0 MB V GRD - 225 00 ZVZT75 0 EOM - 00001C02 0760FF80 226402BC...0001004E 34 700.0 MB V GRD - 225 00 ZVZT70 0 EOM - 00001C02 0760FF80 2264028A...0001004E 34 650.0 MB V GRD - 225 00 ZVZT65 0 EOM - 00001C02 0760FF80 22640258...0001004E 34 600.0 MB V GRD - 225 00 ZVZT60 0 EOM - 00001C02 0760FF80 22640226...0001004E 34 550.0 MB V GRD - 225 00 ZVZT55 0 EOM - 00001C02 0760FF80 226401F4...0001004E 34 500.0 MB V GRD - 225 00 ZVZT50 0 EOM - 00001C02 0760FF80 226401C2...0001004E 34 450.0 MB V GRD - 225 00 ZVZT45 0 EOM - 00001C02 0760FF80 22640190...0001004E 34 400.0 MB V GRD - 225 00 ZVZT40 0 EOM - 00001C02 0760FF80 2264015E...0001004E 34 350.0 MB V GRD - 225 00 ZVZT35 0 EOM - 00001C02 0760FF80 2264012C...0001004E 34 300.0 MB V GRD - 225 00 ZVZT30 0 EOM - 00001C02 0760FF80 226400FA...0001004E 34 250.0 MB V GRD - 225 00 ZVZT25 0 EOM - 00001C02 0760FF80 226400C8...0001004E 34 200.0 MB V GRD - 225 00 ZVZT20 0 EOM - 00001C02 0760FF80 22640096...0001004E 34 150.0 MB V GRD - 225 00 ZVZT15 0 EOM - 00001C02 0760FF80 22640064...0001004E 34 100.0 MB V GRD - 225 00 ZVZT10 0 EOM - 00001C02 0760FF80 346403E8...0001004E 52 1000.0 MB R H - 225 00 ZRZT99 0 EOM - 00001C02 0760FF80 346403B6...0001004E 52 950.0 MB R H - 225 00 ZRZT95 0 EOM - 00001C02 0760FF80 34640384...0001004E 52 900.0 MB R H - 225 00 ZRZT90 0 EOM - 00001C02 0760FF80 34640352...0001004E 52 850.0 MB R H - 225 00 ZRZT85 0 EOM - 00001C02 0760FF80 34640320...0001004E 52 800.0 MB R H - 225 00 ZRZT80 0 EOM - 00001C02 0760FF80 346402EE...0001004E 52 750.0 MB R H - 225 00 ZRZT75 0 EOM - 00001C02 0760FF80 346402BC...0001004E 52 700.0 MB R H - 225 00 ZRZT70 0 EOM - 00001C02 0760FF80 3464028A...0001004E 52 650.0 MB R H - 225 00 ZRZT65 0 EOM - 00001C02 0760FF80 34640258...0001004E 52 600.0 MB R H - 225 00 ZRZT60 0 EOM - 00001C02 0760FF80 34640226...0001004E 52 550.0 MB R H - 225 00 ZRZT55 0 EOM - 00001C02 0760FF80 346401F4...0001004E 52 500.0 MB R H - 225 00 ZRZT50 0 EOM - 00001C02 0760FF80 346401C2...0001004E 52 450.0 MB R H - 225 00 ZRZT45 0 EOM - 00001C02 0760FF80 34640190...0001004E 52 400.0 MB R H - 225 00 ZRZT40 0 EOM - 00001C02 0760FF80 3464015E...0001004E 52 350.0 MB R H - 225 00 ZRZT35 0 EOM - 00001C02 0760FF80 3464012C...0001004E 52 300.0 MB R H - 225 00 ZRZT30 0 EOM - 00001C02 0760FF80 0B6403E8...0001004E 11 1000.0 MB TMP - 225 00 ZTZT99 0 EOM - 00001C02 0760FF80 0B6403B6...0001004E 11 950.0 MB TMP - 225 00 ZTZT95 0 EOM - 00001C02 0760FF80 0B640384...0001004E 11 900.0 MB TMP - 225 00 ZTZT90 0 EOM - 00001C02 0760FF80 0B640352...0001004E 11 850.0 MB TMP - 225 00 ZTZT85 0 EOM - 00001C02 0760FF80 0B640320...0001004E 11 800.0 MB TMP - 225 00 ZTZT80 0 EOM - 00001C02 0760FF80 0B6402EE...0001004E 11 750.0 MB TMP - 225 00 ZTZT75 0 EOM - 00001C02 0760FF80 0B6402BC...0001004E 11 700.0 MB TMP - 225 00 ZTZT70 0 EOM - 00001C02 0760FF80 0B64028A...0001004E 11 650.0 MB TMP - 225 00 ZTZT65 0 EOM - 00001C02 0760FF80 0B640258...0001004E 11 600.0 MB TMP - 225 00 ZTZT60 0 EOM - 00001C02 0760FF80 0B640226...0001004E 11 550.0 MB TMP - 225 00 ZTZT55 0 EOM - 00001C02 0760FF80 0B6401F4...0001004E 11 500.0 MB TMP - 225 00 ZTZT50 0 EOM - 00001C02 0760FF80 0B6401C2...0001004E 11 450.0 MB TMP - 225 00 ZTZT45 0 EOM - 00001C02 0760FF80 0B640190...0001004E 11 400.0 MB TMP - 225 00 ZTZT40 0 EOM - 00001C02 0760FF80 0B64015E...0001004E 11 350.0 MB TMP - 225 00 ZTZT35 0 EOM - 00001C02 0760FF80 0B64012C...0001004E 11 300.0 MB TMP - 225 00 ZTZT30 0 EOM - 00001C02 0760FF80 0B6400FA...0001004E 11 250.0 MB TMP - 225 00 ZTZT25 0 EOM - 00001C02 0760FF80 0B6400C8...0001004E 11 200.0 MB TMP - 225 00 ZTZT20 0 EOM - 00001C02 0760FF80 0B640096...0001004E 11 150.0 MB TMP - 225 00 ZTZT15 0 EOM - 00001C02 0760FF80 0B640064...0001004E 11 100.0 MB TMP - 225 00 ZTZT10 0 EOM - 00001C02 0760FF80 27640352...0001004E 39 850.0 MB V VEL - 225 00 ZOZT85 0 EOM - 00001C02 0760FF80 276402BC...0001004E 39 700.0 MB V VEL - 225 00 ZOZT70 0 EOM - 00001C02 0760FF80 276401F4...0001004E 39 500.0 MB V VEL - 225 00 ZOZT50 0 EOM - 00001C02 0760FF80 2764012C...0001004E 39 300.0 MB V VEL - 225 00 ZOZT30 0 EOM - 00001C02 0760FF80 276400C8...0001004E 39 200.0 MB V VEL - 225 00 ZOZT20 0 EOM - 00001C02 0760FF80 01010000...0001004E 01 SFC PRES - 225 00 ZPZT98 0 EOM - 00001C02 0760FF80 346C2C64...0001004E 52 44/100 R H - 225 00 ZRZT00 0 EOM - 00001C02 0760FF80 36C80000...0001004E 54 EATM P WAT - 225 00 ZFZT00 0 EOM - 00001C02 0760FF80 0B070000...0001004E 11 TRO TMP - 225 00 ZTZT97 0 EOM - 00001C02 0760FF80 01070000...0001004E 01 TRO PRES - 225 00 ZPZT97 0 EOM - 00001C02 0760FF80 21070000...0001004E 33 TRO U GRD - 225 00 ZUZT97 0 EOM - 00001C02 0760FF80 22070000...0001004E 34 TRO V GRD - 225 00 ZVZT97 0 EOM - 00001C02 0760FF80 3D010000...0001484E 61 SFC A PCP - 225 00 ZEZT98 0 EOM - 00001C02 0760FF80 83010000...0001004E 131 SFC LFT X - 225 00 ZXZT98 0 EOM - 00001C02 0760FF80 0B690002...0001004E 11 2 HTGL TMP - 225 00 ZTZT98 0 EOM - 00001C02 0760FF80 2169000A...0001004E 33 10 HTGL U GRD - 225 00 ZUZT98 0 EOM - 00001C02 0760FF80 2269000A...0001004E 34 10 HTGL V GRD - 225 00 ZVZT98 0 EOM - 00001C02 0760FF80 9D010000...0001004E 157 SFC CAPE - 225 00 ZWZT98 0 EOM - 00001C02 0760FF80 9C010000...0001004E 156 SFC CIN - 225 00 ZYZT98 0 EOM - 00001C02 0760FF80 84010000...0001004E 132 SFC 4LFTX - 225 00 ZQZT98 0 EOM - 00001C02 0760FF80 9D74B400...0001004E 157 Y 0 SPDY CAPE - 225 00 ZWZT86 0 EOM - 00001C02 0760FF80 9C74B400...0001004E 156 Y 0 SPDY CIN - 225 00 ZYZT86 0 EOM - 00001C02 0760FF80 3F010000...0001484E 63 ACUM SFC ACPCP - 225 00 ZGZT98 0 EOM - 00001C02 0760FF80 0B741E00...0001004E 11 0 SPDY TMP - 225 00 ZTZT86 0 EOM - 00001C02 0760FF80 34741E00...0001004E 52 0 SPDY R H - 225 00 ZRZT86 0 EOM - 00001C02 0760FF80 21741E00...0001004E 33 0 SPDY U GRD - 225 00 ZUZT86 0 EOM - 00001C02 0760FF80 22741E00...0001004E 34 0 SPDY V GRD - 225 00 ZVZT86 0 EOM - 00001C02 0760FF80 01060000...0001004E 01 MWSL PRES - 225 00 ZPZT96 0 EOM - 00001C02 0760FF80 21060000...0001004E 33 MWSL U GRD - 225 00 ZUZT96 0 EOM - 00001C02 0760FF80 22060000...0001004E 34 MWSL V GRD - 225 00 ZVZT96 0 EOM - 00001C02 0760FF80 07040000...0001004E 07 0DEG HGT - 225 00 ZHZT94 0 EOM - 00001C02 0760FF80 34040000...0001004E 52 0DEG R H - 225 00 ZRZT94 0 EOM - 00001C02 0760FF80 02660000...0001004E 02 MSL PRMSL - 225 00 ZPZT89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs084.225 b/parm/wmo/grib_awpgfs084.225 deleted file mode 100755 index c9530bfc91..0000000000 --- a/parm/wmo/grib_awpgfs084.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...00010054 07 1000.0 MB HGT - 225 00 YHZL99 0 EOM - 00001C02 0760FF80 076403B6...00010054 07 950.0 MB HGT - 225 00 YHZL95 0 EOM - 00001C02 0760FF80 07640384...00010054 07 900.0 MB HGT - 225 00 YHZL90 0 EOM - 00001C02 0760FF80 07640352...00010054 07 850.0 MB HGT - 225 00 YHZL85 0 EOM - 00001C02 0760FF80 07640320...00010054 07 800.0 MB HGT - 225 00 YHZL80 0 EOM - 00001C02 0760FF80 076402EE...00010054 07 750.0 MB HGT - 225 00 YHZL75 0 EOM - 00001C02 0760FF80 076402BC...00010054 07 700.0 MB HGT - 225 00 YHZL70 0 EOM - 00001C02 0760FF80 0764028A...00010054 07 650.0 MB HGT - 225 00 YHZL65 0 EOM - 00001C02 0760FF80 07640258...00010054 07 600.0 MB HGT - 225 00 YHZL60 0 EOM - 00001C02 0760FF80 07640226...00010054 07 550.0 MB HGT - 225 00 YHZL55 0 EOM - 00001C02 0760FF80 076401F4...00010054 07 500.0 MB HGT - 225 00 YHZL50 0 EOM - 00001C02 0760FF80 076401C2...00010054 07 450.0 MB HGT - 225 00 YHZL45 0 EOM - 00001C02 0760FF80 07640190...00010054 07 400.0 MB HGT - 225 00 YHZL40 0 EOM - 00001C02 0760FF80 0764015E...00010054 07 350.0 MB HGT - 225 00 YHZL35 0 EOM - 00001C02 0760FF80 0764012C...00010054 07 300.0 MB HGT - 225 00 YHZL30 0 EOM - 00001C02 0760FF80 076400FA...00010054 07 250.0 MB HGT - 225 00 YHZL25 0 EOM - 00001C02 0760FF80 076400C8...00010054 07 200.0 MB HGT - 225 00 YHZL20 0 EOM - 00001C02 0760FF80 07640096...00010054 07 150.0 MB HGT - 225 00 YHZL15 0 EOM - 00001C02 0760FF80 07640064...00010054 07 100.0 MB HGT - 225 00 YHZL10 0 EOM - 00001C02 0760FF80 216403E8...00010054 33 1000.0 MB U GRD - 225 00 YUZL99 0 EOM - 00001C02 0760FF80 216403B6...00010054 33 950.0 MB U GRD - 225 00 YUZL95 0 EOM - 00001C02 0760FF80 21640384...00010054 33 900.0 MB U GRD - 225 00 YUZL90 0 EOM - 00001C02 0760FF80 21640352...00010054 33 850.0 MB U GRD - 225 00 YUZL85 0 EOM - 00001C02 0760FF80 21640320...00010054 33 800.0 MB U GRD - 225 00 YUZL80 0 EOM - 00001C02 0760FF80 216402EE...00010054 33 750.0 MB U GRD - 225 00 YUZL75 0 EOM - 00001C02 0760FF80 216402BC...00010054 33 700.0 MB U GRD - 225 00 YUZL70 0 EOM - 00001C02 0760FF80 2164028A...00010054 33 650.0 MB U GRD - 225 00 YUZL65 0 EOM - 00001C02 0760FF80 21640258...00010054 33 600.0 MB U GRD - 225 00 YUZL60 0 EOM - 00001C02 0760FF80 21640226...00010054 33 550.0 MB U GRD - 225 00 YUZL55 0 EOM - 00001C02 0760FF80 216401F4...00010054 33 500.0 MB U GRD - 225 00 YUZL50 0 EOM - 00001C02 0760FF80 216401C2...00010054 33 450.0 MB U GRD - 225 00 YUZL45 0 EOM - 00001C02 0760FF80 21640190...00010054 33 400.0 MB U GRD - 225 00 YUZL40 0 EOM - 00001C02 0760FF80 2264015E...00010054 34 350.0 MB V GRD - 225 00 YVZL35 0 EOM - 00001C02 0760FF80 2164012C...00010054 33 300.0 MB U GRD - 225 00 YUZL30 0 EOM - 00001C02 0760FF80 216400FA...00010054 33 250.0 MB U GRD - 225 00 YUZL25 0 EOM - 00001C02 0760FF80 216400C8...00010054 33 200.0 MB U GRD - 225 00 YUZL20 0 EOM - 00001C02 0760FF80 21640096...00010054 33 150.0 MB U GRD - 225 00 YUZL15 0 EOM - 00001C02 0760FF80 21640064...00010054 33 100.0 MB U GRD - 225 00 YUZL10 0 EOM - 00001C02 0760FF80 226403E8...00010054 34 1000.0 MB V GRD - 225 00 YVZL99 0 EOM - 00001C02 0760FF80 226403B6...00010054 34 950.0 MB V GRD - 225 00 YVZL95 0 EOM - 00001C02 0760FF80 22640384...00010054 34 900.0 MB V GRD - 225 00 YVZL90 0 EOM - 00001C02 0760FF80 22640352...00010054 34 850.0 MB V GRD - 225 00 YVZL85 0 EOM - 00001C02 0760FF80 22640320...00010054 34 800.0 MB V GRD - 225 00 YVZL80 0 EOM - 00001C02 0760FF80 226402EE...00010054 34 750.0 MB V GRD - 225 00 YVZL75 0 EOM - 00001C02 0760FF80 226402BC...00010054 34 700.0 MB V GRD - 225 00 YVZL70 0 EOM - 00001C02 0760FF80 2264028A...00010054 34 650.0 MB V GRD - 225 00 YVZL65 0 EOM - 00001C02 0760FF80 22640258...00010054 34 600.0 MB V GRD - 225 00 YVZL60 0 EOM - 00001C02 0760FF80 22640226...00010054 34 550.0 MB V GRD - 225 00 YVZL55 0 EOM - 00001C02 0760FF80 226401F4...00010054 34 500.0 MB V GRD - 225 00 YVZL50 0 EOM - 00001C02 0760FF80 226401C2...00010054 34 450.0 MB V GRD - 225 00 YVZL45 0 EOM - 00001C02 0760FF80 22640190...00010054 34 400.0 MB V GRD - 225 00 YVZL40 0 EOM - 00001C02 0760FF80 2264015E...00010054 34 350.0 MB V GRD - 225 00 YVZL35 0 EOM - 00001C02 0760FF80 2264012C...00010054 34 300.0 MB V GRD - 225 00 YVZL30 0 EOM - 00001C02 0760FF80 226400FA...00010054 34 250.0 MB V GRD - 225 00 YVZL25 0 EOM - 00001C02 0760FF80 226400C8...00010054 34 200.0 MB V GRD - 225 00 YVZL20 0 EOM - 00001C02 0760FF80 22640096...00010054 34 150.0 MB V GRD - 225 00 YVZL15 0 EOM - 00001C02 0760FF80 22640064...00010054 34 100.0 MB V GRD - 225 00 YVZL10 0 EOM - 00001C02 0760FF80 346403E8...00010054 52 1000.0 MB R H - 225 00 YRZL99 0 EOM - 00001C02 0760FF80 346403B6...00010054 52 950.0 MB R H - 225 00 YRZL95 0 EOM - 00001C02 0760FF80 34640384...00010054 52 900.0 MB R H - 225 00 YRZL90 0 EOM - 00001C02 0760FF80 34640352...00010054 52 850.0 MB R H - 225 00 YRZL85 0 EOM - 00001C02 0760FF80 34640320...00010054 52 800.0 MB R H - 225 00 YRZL80 0 EOM - 00001C02 0760FF80 346402EE...00010054 52 750.0 MB R H - 225 00 YRZL75 0 EOM - 00001C02 0760FF80 346402BC...00010054 52 700.0 MB R H - 225 00 YRZL70 0 EOM - 00001C02 0760FF80 3464028A...00010054 52 650.0 MB R H - 225 00 YRZL65 0 EOM - 00001C02 0760FF80 34640258...00010054 52 600.0 MB R H - 225 00 YRZL60 0 EOM - 00001C02 0760FF80 34640226...00010054 52 550.0 MB R H - 225 00 YRZL55 0 EOM - 00001C02 0760FF80 346401F4...00010054 52 500.0 MB R H - 225 00 YRZL50 0 EOM - 00001C02 0760FF80 346401C2...00010054 52 450.0 MB R H - 225 00 YRZL45 0 EOM - 00001C02 0760FF80 34640190...00010054 52 400.0 MB R H - 225 00 YRZL40 0 EOM - 00001C02 0760FF80 3464015E...00010054 52 350.0 MB R H - 225 00 YRZL35 0 EOM - 00001C02 0760FF80 3464012C...00010054 52 300.0 MB R H - 225 00 YRZL30 0 EOM - 00001C02 0760FF80 0B6403E8...00010054 11 1000.0 MB TMP - 225 00 YTZL99 0 EOM - 00001C02 0760FF80 0B6403B6...00010054 11 950.0 MB TMP - 225 00 YTZL95 0 EOM - 00001C02 0760FF80 0B640384...00010054 11 900.0 MB TMP - 225 00 YTZL90 0 EOM - 00001C02 0760FF80 0B640352...00010054 11 850.0 MB TMP - 225 00 YTZL85 0 EOM - 00001C02 0760FF80 0B640320...00010054 11 800.0 MB TMP - 225 00 YTZL80 0 EOM - 00001C02 0760FF80 0B6402EE...00010054 11 750.0 MB TMP - 225 00 YTZL75 0 EOM - 00001C02 0760FF80 0B6402BC...00010054 11 700.0 MB TMP - 225 00 YTZL70 0 EOM - 00001C02 0760FF80 0B64028A...00010054 11 650.0 MB TMP - 225 00 YTZL65 0 EOM - 00001C02 0760FF80 0B640258...00010054 11 600.0 MB TMP - 225 00 YTZL60 0 EOM - 00001C02 0760FF80 0B640226...00010054 11 550.0 MB TMP - 225 00 YTZL55 0 EOM - 00001C02 0760FF80 0B6401F4...00010054 11 500.0 MB TMP - 225 00 YTZL50 0 EOM - 00001C02 0760FF80 0B6401C2...00010054 11 450.0 MB TMP - 225 00 YTZL45 0 EOM - 00001C02 0760FF80 0B640190...00010054 11 400.0 MB TMP - 225 00 YTZL40 0 EOM - 00001C02 0760FF80 0B64015E...00010054 11 350.0 MB TMP - 225 00 YTZL35 0 EOM - 00001C02 0760FF80 0B64012C...00010054 11 300.0 MB TMP - 225 00 YTZL30 0 EOM - 00001C02 0760FF80 0B6400FA...00010054 11 250.0 MB TMP - 225 00 YTZL25 0 EOM - 00001C02 0760FF80 0B6400C8...00010054 11 200.0 MB TMP - 225 00 YTZL20 0 EOM - 00001C02 0760FF80 0B640096...00010054 11 150.0 MB TMP - 225 00 YTZL15 0 EOM - 00001C02 0760FF80 0B640064...00010054 11 100.0 MB TMP - 225 00 YTZL10 0 EOM - 00001C02 0760FF80 27640352...00010054 39 850.0 MB V VEL - 225 00 YOZL85 0 EOM - 00001C02 0760FF80 276402BC...00010054 39 700.0 MB V VEL - 225 00 YOZL70 0 EOM - 00001C02 0760FF80 276401F4...00010054 39 500.0 MB V VEL - 225 00 YOZL50 0 EOM - 00001C02 0760FF80 2764012C...00010054 39 300.0 MB V VEL - 225 00 YOZL30 0 EOM - 00001C02 0760FF80 276400C8...00010054 39 200.0 MB V VEL - 225 00 YOZL20 0 EOM - 00001C02 0760FF80 01010000...00010054 01 SFC PRES - 225 00 YPZL98 0 EOM - 00001C02 0760FF80 346C2C64...00010054 52 44/100 R H - 225 00 YRZL00 0 EOM - 00001C02 0760FF80 36C80000...00010054 54 EATM P WAT - 225 00 YFZL00 0 EOM - 00001C02 0760FF80 0B070000...00010054 11 TRO TMP - 225 00 YTZL97 0 EOM - 00001C02 0760FF80 01070000...00010054 01 TRO PRES - 225 00 YPZL97 0 EOM - 00001C02 0760FF80 21070000...00010054 33 TRO U GRD - 225 00 YUZL97 0 EOM - 00001C02 0760FF80 22070000...00010054 34 TRO V GRD - 225 00 YVZL97 0 EOM - 00001C02 0760FF80 3D010000...00014E54 61 SFC A PCP - 225 00 YEZL98 0 EOM - 00001C02 0760FF80 83010000...00010054 131 SFC LFT X - 225 00 YXZL98 0 EOM - 00001C02 0760FF80 0B690002...00010054 11 2 HTGL TMP - 225 00 YTZL98 0 EOM - 00001C02 0760FF80 2169000A...00010054 33 10 HTGL U GRD - 225 00 YUZL98 0 EOM - 00001C02 0760FF80 2269000A...00010054 34 10 HTGL V GRD - 225 00 YVZL98 0 EOM - 00001C02 0760FF80 9D010000...00010054 157 SFC CAPE - 225 00 YWZL98 0 EOM - 00001C02 0760FF80 9C010000...00010054 156 SFC CIN - 225 00 YYZL98 0 EOM - 00001C02 0760FF80 84010000...00010054 132 SFC 4LFTX - 225 00 YQZL98 0 EOM - 00001C02 0760FF80 9D74B400...00010054 157 Y 0 SPDY CAPE - 225 00 YWZL86 0 EOM - 00001C02 0760FF80 9C74B400...00010054 156 Y 0 SPDY CIN - 225 00 YYZL86 0 EOM - 00001C02 0760FF80 3F010000...00014E54 63 ACUM SFC ACPCP - 225 00 YGZL98 0 EOM - 00001C02 0760FF80 0B741E00...00010054 11 0 SPDY TMP - 225 00 YTZL86 0 EOM - 00001C02 0760FF80 34741E00...00010054 52 0 SPDY R H - 225 00 YRZL86 0 EOM - 00001C02 0760FF80 21741E00...00010054 33 0 SPDY U GRD - 225 00 YUZL86 0 EOM - 00001C02 0760FF80 22741E00...00010054 34 0 SPDY V GRD - 225 00 YVZL86 0 EOM - 00001C02 0760FF80 01060000...00010054 01 MWSL PRES - 225 00 YPZL96 0 EOM - 00001C02 0760FF80 21060000...00010054 33 MWSL U GRD - 225 00 YUZL96 0 EOM - 00001C02 0760FF80 22060000...00010054 34 MWSL V GRD - 225 00 YVZL96 0 EOM - 00001C02 0760FF80 07040000...00010054 07 0DEG HGT - 225 00 YHZL94 0 EOM - 00001C02 0760FF80 34040000...00010054 52 0DEG R H - 225 00 YRZL94 0 EOM - 00001C02 0760FF80 02660000...00010054 02 MSL PRMSL - 225 00 YPZL89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs090.225 b/parm/wmo/grib_awpgfs090.225 deleted file mode 100755 index c81aa19c03..0000000000 --- a/parm/wmo/grib_awpgfs090.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...0001005A 07 1000.0 MB HGT - 225 00 ZHZU99 0 EOM - 00001C02 0760FF80 076403B6...0001005A 07 950.0 MB HGT - 225 00 ZHZU95 0 EOM - 00001C02 0760FF80 07640384...0001005A 07 900.0 MB HGT - 225 00 ZHZU90 0 EOM - 00001C02 0760FF80 07640352...0001005A 07 850.0 MB HGT - 225 00 ZHZU85 0 EOM - 00001C02 0760FF80 07640320...0001005A 07 800.0 MB HGT - 225 00 ZHZU80 0 EOM - 00001C02 0760FF80 076402EE...0001005A 07 750.0 MB HGT - 225 00 ZHZU75 0 EOM - 00001C02 0760FF80 076402BC...0001005A 07 700.0 MB HGT - 225 00 ZHZU70 0 EOM - 00001C02 0760FF80 0764028A...0001005A 07 650.0 MB HGT - 225 00 ZHZU65 0 EOM - 00001C02 0760FF80 07640258...0001005A 07 600.0 MB HGT - 225 00 ZHZU60 0 EOM - 00001C02 0760FF80 07640226...0001005A 07 550.0 MB HGT - 225 00 ZHZU55 0 EOM - 00001C02 0760FF80 076401F4...0001005A 07 500.0 MB HGT - 225 00 ZHZU50 0 EOM - 00001C02 0760FF80 076401C2...0001005A 07 450.0 MB HGT - 225 00 ZHZU45 0 EOM - 00001C02 0760FF80 07640190...0001005A 07 400.0 MB HGT - 225 00 ZHZU40 0 EOM - 00001C02 0760FF80 0764015E...0001005A 07 350.0 MB HGT - 225 00 ZHZU35 0 EOM - 00001C02 0760FF80 0764012C...0001005A 07 300.0 MB HGT - 225 00 ZHZU30 0 EOM - 00001C02 0760FF80 076400FA...0001005A 07 250.0 MB HGT - 225 00 ZHZU25 0 EOM - 00001C02 0760FF80 076400C8...0001005A 07 200.0 MB HGT - 225 00 ZHZU20 0 EOM - 00001C02 0760FF80 07640096...0001005A 07 150.0 MB HGT - 225 00 ZHZU15 0 EOM - 00001C02 0760FF80 07640064...0001005A 07 100.0 MB HGT - 225 00 ZHZU10 0 EOM - 00001C02 0760FF80 216403E8...0001005A 33 1000.0 MB U GRD - 225 00 ZUZU99 0 EOM - 00001C02 0760FF80 216403B6...0001005A 33 950.0 MB U GRD - 225 00 ZUZU95 0 EOM - 00001C02 0760FF80 21640384...0001005A 33 900.0 MB U GRD - 225 00 ZUZU90 0 EOM - 00001C02 0760FF80 21640352...0001005A 33 850.0 MB U GRD - 225 00 ZUZU85 0 EOM - 00001C02 0760FF80 21640320...0001005A 33 800.0 MB U GRD - 225 00 ZUZU80 0 EOM - 00001C02 0760FF80 216402EE...0001005A 33 750.0 MB U GRD - 225 00 ZUZU75 0 EOM - 00001C02 0760FF80 216402BC...0001005A 33 700.0 MB U GRD - 225 00 ZUZU70 0 EOM - 00001C02 0760FF80 2164028A...0001005A 33 650.0 MB U GRD - 225 00 ZUZU65 0 EOM - 00001C02 0760FF80 21640258...0001005A 33 600.0 MB U GRD - 225 00 ZUZU60 0 EOM - 00001C02 0760FF80 21640226...0001005A 33 550.0 MB U GRD - 225 00 ZUZU55 0 EOM - 00001C02 0760FF80 216401F4...0001005A 33 500.0 MB U GRD - 225 00 ZUZU50 0 EOM - 00001C02 0760FF80 216401C2...0001005A 33 450.0 MB U GRD - 225 00 ZUZU45 0 EOM - 00001C02 0760FF80 21640190...0001005A 33 400.0 MB U GRD - 225 00 ZUZU40 0 EOM - 00001C02 0760FF80 2164015E...0001005A 33 350.0 MB U GRD - 225 00 ZUZU35 0 EOM - 00001C02 0760FF80 2164012C...0001005A 33 300.0 MB U GRD - 225 00 ZUZU30 0 EOM - 00001C02 0760FF80 216400FA...0001005A 33 250.0 MB U GRD - 225 00 ZUZU25 0 EOM - 00001C02 0760FF80 216400C8...0001005A 33 200.0 MB U GRD - 225 00 ZUZU20 0 EOM - 00001C02 0760FF80 21640096...0001005A 33 150.0 MB U GRD - 225 00 ZUZU15 0 EOM - 00001C02 0760FF80 21640064...0001005A 33 100.0 MB U GRD - 225 00 ZUZU10 0 EOM - 00001C02 0760FF80 226403E8...0001005A 34 1000.0 MB V GRD - 225 00 ZVZU99 0 EOM - 00001C02 0760FF80 226403B6...0001005A 34 950.0 MB V GRD - 225 00 ZVZU95 0 EOM - 00001C02 0760FF80 22640384...0001005A 34 900.0 MB V GRD - 225 00 ZVZU90 0 EOM - 00001C02 0760FF80 22640352...0001005A 34 850.0 MB V GRD - 225 00 ZVZU85 0 EOM - 00001C02 0760FF80 22640320...0001005A 34 800.0 MB V GRD - 225 00 ZVZU80 0 EOM - 00001C02 0760FF80 226402EE...0001005A 34 750.0 MB V GRD - 225 00 ZVZU75 0 EOM - 00001C02 0760FF80 226402BC...0001005A 34 700.0 MB V GRD - 225 00 ZVZU70 0 EOM - 00001C02 0760FF80 2264028A...0001005A 34 650.0 MB V GRD - 225 00 ZVZU65 0 EOM - 00001C02 0760FF80 22640258...0001005A 34 600.0 MB V GRD - 225 00 ZVZU60 0 EOM - 00001C02 0760FF80 22640226...0001005A 34 550.0 MB V GRD - 225 00 ZVZU55 0 EOM - 00001C02 0760FF80 226401F4...0001005A 34 500.0 MB V GRD - 225 00 ZVZU50 0 EOM - 00001C02 0760FF80 226401C2...0001005A 34 450.0 MB V GRD - 225 00 ZVZU45 0 EOM - 00001C02 0760FF80 22640190...0001005A 34 400.0 MB V GRD - 225 00 ZVZU40 0 EOM - 00001C02 0760FF80 2264015E...0001005A 34 350.0 MB V GRD - 225 00 ZVZU35 0 EOM - 00001C02 0760FF80 2264012C...0001005A 34 300.0 MB V GRD - 225 00 ZVZU30 0 EOM - 00001C02 0760FF80 226400FA...0001005A 34 250.0 MB V GRD - 225 00 ZVZU25 0 EOM - 00001C02 0760FF80 226400C8...0001005A 34 200.0 MB V GRD - 225 00 ZVZU20 0 EOM - 00001C02 0760FF80 22640096...0001005A 34 150.0 MB V GRD - 225 00 ZVZU15 0 EOM - 00001C02 0760FF80 22640064...0001005A 34 100.0 MB V GRD - 225 00 ZVZU10 0 EOM - 00001C02 0760FF80 346403E8...0001005A 52 1000.0 MB R H - 225 00 ZRZU99 0 EOM - 00001C02 0760FF80 346403B6...0001005A 52 950.0 MB R H - 225 00 ZRZU95 0 EOM - 00001C02 0760FF80 34640384...0001005A 52 900.0 MB R H - 225 00 ZRZU90 0 EOM - 00001C02 0760FF80 34640352...0001005A 52 850.0 MB R H - 225 00 ZRZU85 0 EOM - 00001C02 0760FF80 34640320...0001005A 52 800.0 MB R H - 225 00 ZRZU80 0 EOM - 00001C02 0760FF80 346402EE...0001005A 52 750.0 MB R H - 225 00 ZRZU75 0 EOM - 00001C02 0760FF80 346402BC...0001005A 52 700.0 MB R H - 225 00 ZRZU70 0 EOM - 00001C02 0760FF80 3464028A...0001005A 52 650.0 MB R H - 225 00 ZRZU65 0 EOM - 00001C02 0760FF80 34640258...0001005A 52 600.0 MB R H - 225 00 ZRZU60 0 EOM - 00001C02 0760FF80 34640226...0001005A 52 550.0 MB R H - 225 00 ZRZU55 0 EOM - 00001C02 0760FF80 346401F4...0001005A 52 500.0 MB R H - 225 00 ZRZU50 0 EOM - 00001C02 0760FF80 346401C2...0001005A 52 450.0 MB R H - 225 00 ZRZU45 0 EOM - 00001C02 0760FF80 34640190...0001005A 52 400.0 MB R H - 225 00 ZRZU40 0 EOM - 00001C02 0760FF80 3464015E...0001005A 52 350.0 MB R H - 225 00 ZRZU35 0 EOM - 00001C02 0760FF80 3464012C...0001005A 52 300.0 MB R H - 225 00 ZRZU30 0 EOM - 00001C02 0760FF80 0B6403E8...0001005A 11 1000.0 MB TMP - 225 00 ZTZU99 0 EOM - 00001C02 0760FF80 0B6403B6...0001005A 11 950.0 MB TMP - 225 00 ZTZU95 0 EOM - 00001C02 0760FF80 0B640384...0001005A 11 900.0 MB TMP - 225 00 ZTZU90 0 EOM - 00001C02 0760FF80 0B640352...0001005A 11 850.0 MB TMP - 225 00 ZTZU85 0 EOM - 00001C02 0760FF80 0B640320...0001005A 11 800.0 MB TMP - 225 00 ZTZU80 0 EOM - 00001C02 0760FF80 0B6402EE...0001005A 11 750.0 MB TMP - 225 00 ZTZU75 0 EOM - 00001C02 0760FF80 0B6402BC...0001005A 11 700.0 MB TMP - 225 00 ZTZU70 0 EOM - 00001C02 0760FF80 0B64028A...0001005A 11 650.0 MB TMP - 225 00 ZTZU65 0 EOM - 00001C02 0760FF80 0B640258...0001005A 11 600.0 MB TMP - 225 00 ZTZU60 0 EOM - 00001C02 0760FF80 0B640226...0001005A 11 550.0 MB TMP - 225 00 ZTZU55 0 EOM - 00001C02 0760FF80 0B6401F4...0001005A 11 500.0 MB TMP - 225 00 ZTZU50 0 EOM - 00001C02 0760FF80 0B6401C2...0001005A 11 450.0 MB TMP - 225 00 ZTZU45 0 EOM - 00001C02 0760FF80 0B640190...0001005A 11 400.0 MB TMP - 225 00 ZTZU40 0 EOM - 00001C02 0760FF80 0B64015E...0001005A 11 350.0 MB TMP - 225 00 ZTZU35 0 EOM - 00001C02 0760FF80 0B64012C...0001005A 11 300.0 MB TMP - 225 00 ZTZU30 0 EOM - 00001C02 0760FF80 0B6400FA...0001005A 11 250.0 MB TMP - 225 00 ZTZU25 0 EOM - 00001C02 0760FF80 0B6400C8...0001005A 11 200.0 MB TMP - 225 00 ZTZU20 0 EOM - 00001C02 0760FF80 0B640096...0001005A 11 150.0 MB TMP - 225 00 ZTZU15 0 EOM - 00001C02 0760FF80 0B640064...0001005A 11 100.0 MB TMP - 225 00 ZTZU10 0 EOM - 00001C02 0760FF80 27640352...0001005A 39 850.0 MB V VEL - 225 00 ZOZU85 0 EOM - 00001C02 0760FF80 276402BC...0001005A 39 700.0 MB V VEL - 225 00 ZOZU70 0 EOM - 00001C02 0760FF80 276401F4...0001005A 39 500.0 MB V VEL - 225 00 ZOZU50 0 EOM - 00001C02 0760FF80 2764012C...0001005A 39 300.0 MB V VEL - 225 00 ZOZU30 0 EOM - 00001C02 0760FF80 276400C8...0001005A 39 200.0 MB V VEL - 225 00 ZOZU20 0 EOM - 00001C02 0760FF80 01010000...0001005A 01 SFC PRES - 225 00 ZPZU98 0 EOM - 00001C02 0760FF80 346C2C64...0001005A 52 44/100 R H - 225 00 ZRZU00 0 EOM - 00001C02 0760FF80 36C80000...0001005A 54 EATM P WAT - 225 00 ZFZU00 0 EOM - 00001C02 0760FF80 0B070000...0001005A 11 TRO TMP - 225 00 ZTZU97 0 EOM - 00001C02 0760FF80 01070000...0001005A 01 TRO PRES - 225 00 ZPZU97 0 EOM - 00001C02 0760FF80 21070000...0001005A 33 TRO U GRD - 225 00 ZUZU97 0 EOM - 00001C02 0760FF80 22070000...0001005A 34 TRO V GRD - 225 00 ZVZU97 0 EOM - 00001C02 0760FF80 3D010000...0001545A 61 SFC A PCP - 225 00 ZEZU98 0 EOM - 00001C02 0760FF80 83010000...0001005A 131 SFC LFT X - 225 00 ZXZU98 0 EOM - 00001C02 0760FF80 0B690002...0001005A 11 2 HTGL TMP - 225 00 ZTZU98 0 EOM - 00001C02 0760FF80 2169000A...0001005A 33 10 HTGL U GRD - 225 00 ZUZU98 0 EOM - 00001C02 0760FF80 2269000A...0001005A 34 10 HTGL V GRD - 225 00 ZVZU98 0 EOM - 00001C02 0760FF80 9D010000...0001005A 157 SFC CAPE - 225 00 ZWZU98 0 EOM - 00001C02 0760FF80 9C010000...0001005A 156 SFC CIN - 225 00 ZYZU98 0 EOM - 00001C02 0760FF80 84010000...0001005A 132 SFC 4LFTX - 225 00 ZQZU98 0 EOM - 00001C02 0760FF80 9D74B400...0001005A 157 Y 0 SPDY CAPE - 225 00 ZWZU86 0 EOM - 00001C02 0760FF80 9C74B400...0001005A 156 Y 0 SPDY CIN - 225 00 ZYZU86 0 EOM - 00001C02 0760FF80 3F010000...0001545A 63 ACUM SFC ACPCP - 225 00 ZGZU98 0 EOM - 00001C02 0760FF80 0B741E00...0001005A 11 0 SPDY TMP - 225 00 ZTZU86 0 EOM - 00001C02 0760FF80 34741E00...0001005A 52 0 SPDY R H - 225 00 ZRZU86 0 EOM - 00001C02 0760FF80 21741E00...0001005A 33 0 SPDY U GRD - 225 00 ZUZU86 0 EOM - 00001C02 0760FF80 22741E00...0001005A 34 0 SPDY V GRD - 225 00 ZVZU86 0 EOM - 00001C02 0760FF80 01060000...0001005A 01 MWSL PRES - 225 00 ZPZU96 0 EOM - 00001C02 0760FF80 21060000...0001005A 33 MWSL U GRD - 225 00 ZUZU96 0 EOM - 00001C02 0760FF80 22060000...0001005A 34 MWSL V GRD - 225 00 ZVZU96 0 EOM - 00001C02 0760FF80 07040000...0001005A 07 0DEG HGT - 225 00 ZHZU94 0 EOM - 00001C02 0760FF80 34040000...0001005A 52 0DEG R H - 225 00 ZRZU94 0 EOM - 00001C02 0760FF80 02660000...0001005A 02 MSL PRMSL - 225 00 ZPZU89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs096.225 b/parm/wmo/grib_awpgfs096.225 deleted file mode 100755 index 94e05ab021..0000000000 --- a/parm/wmo/grib_awpgfs096.225 +++ /dev/null @@ -1,247 +0,0 @@ - 00001C02 0760FF80 076403E8...00010060 07 1000.0 MB HGT - 225 00 YHZM99 0 EOM - 00001C02 0760FF80 076403B6...00010060 07 950.0 MB HGT - 225 00 YHZM95 0 EOM - 00001C02 0760FF80 07640384...00010060 07 900.0 MB HGT - 225 00 YHZM90 0 EOM - 00001C02 0760FF80 07640352...00010060 07 850.0 MB HGT - 225 00 YHZM85 0 EOM - 00001C02 0760FF80 07640320...00010060 07 800.0 MB HGT - 225 00 YHZM80 0 EOM - 00001C02 0760FF80 076402EE...00010060 07 750.0 MB HGT - 225 00 YHZM75 0 EOM - 00001C02 0760FF80 076402BC...00010060 07 700.0 MB HGT - 225 00 YHZM70 0 EOM - 00001C02 0760FF80 0764028A...00010060 07 650.0 MB HGT - 225 00 YHZM65 0 EOM - 00001C02 0760FF80 07640258...00010060 07 600.0 MB HGT - 225 00 YHZM60 0 EOM - 00001C02 0760FF80 07640226...00010060 07 550.0 MB HGT - 225 00 YHZM55 0 EOM - 00001C02 0760FF80 076401F4...00010060 07 500.0 MB HGT - 225 00 YHZM50 0 EOM - 00001C02 0760FF80 076401C2...00010060 07 450.0 MB HGT - 225 00 YHZM45 0 EOM - 00001C02 0760FF80 07640190...00010060 07 400.0 MB HGT - 225 00 YHZM40 0 EOM - 00001C02 0760FF80 0764015E...00010060 07 350.0 MB HGT - 225 00 YHZM35 0 EOM - 00001C02 0760FF80 0764012C...00010060 07 300.0 MB HGT - 225 00 YHZM30 0 EOM - 00001C02 0760FF80 076400FA...00010060 07 250.0 MB HGT - 225 00 YHZM25 0 EOM - 00001C02 0760FF80 076400C8...00010060 07 200.0 MB HGT - 225 00 YHZM20 0 EOM - 00001C02 0760FF80 07640096...00010060 07 150.0 MB HGT - 225 00 YHZM15 0 EOM - 00001C02 0760FF80 07640064...00010060 07 100.0 MB HGT - 225 00 YHZM10 0 EOM - 00001C02 0760FF80 216403E8...00010060 33 1000.0 MB U GRD - 225 00 YUZM99 0 EOM - 00001C02 0760FF80 216403B6...00010060 33 950.0 MB U GRD - 225 00 YUZM95 0 EOM - 00001C02 0760FF80 21640384...00010060 33 900.0 MB U GRD - 225 00 YUZM90 0 EOM - 00001C02 0760FF80 21640352...00010060 33 850.0 MB U GRD - 225 00 YUZM85 0 EOM - 00001C02 0760FF80 21640320...00010060 33 800.0 MB U GRD - 225 00 YUZM80 0 EOM - 00001C02 0760FF80 216402EE...00010060 33 750.0 MB U GRD - 225 00 YUZM75 0 EOM - 00001C02 0760FF80 216402BC...00010060 33 700.0 MB U GRD - 225 00 YUZM70 0 EOM - 00001C02 0760FF80 2164028A...00010060 33 650.0 MB U GRD - 225 00 YUZM65 0 EOM - 00001C02 0760FF80 21640258...00010060 33 600.0 MB U GRD - 225 00 YUZM60 0 EOM - 00001C02 0760FF80 21640226...00010060 33 550.0 MB U GRD - 225 00 YUZM55 0 EOM - 00001C02 0760FF80 216401F4...00010060 33 500.0 MB U GRD - 225 00 YUZM50 0 EOM - 00001C02 0760FF80 216401C2...00010060 33 450.0 MB U GRD - 225 00 YUZM45 0 EOM - 00001C02 0760FF80 21640190...00010060 33 400.0 MB U GRD - 225 00 YUZM40 0 EOM - 00001C02 0760FF80 2164015E...00010060 33 350.0 MB U GRD - 225 00 YUZM35 0 EOM - 00001C02 0760FF80 2164012C...00010060 33 300.0 MB U GRD - 225 00 YUZM30 0 EOM - 00001C02 0760FF80 216400FA...00010060 33 250.0 MB U GRD - 225 00 YUZM25 0 EOM - 00001C02 0760FF80 216400C8...00010060 33 200.0 MB U GRD - 225 00 YUZM20 0 EOM - 00001C02 0760FF80 21640096...00010060 33 150.0 MB U GRD - 225 00 YUZM15 0 EOM - 00001C02 0760FF80 21640064...00010060 33 100.0 MB U GRD - 225 00 YUZM10 0 EOM - 00001C02 0760FF80 226403E8...00010060 34 1000.0 MB V GRD - 225 00 YVZM99 0 EOM - 00001C02 0760FF80 226403B6...00010060 34 950.0 MB V GRD - 225 00 YVZM95 0 EOM - 00001C02 0760FF80 22640384...00010060 34 900.0 MB V GRD - 225 00 YVZM90 0 EOM - 00001C02 0760FF80 22640352...00010060 34 850.0 MB V GRD - 225 00 YVZM85 0 EOM - 00001C02 0760FF80 22640320...00010060 34 800.0 MB V GRD - 225 00 YVZM80 0 EOM - 00001C02 0760FF80 226402EE...00010060 34 750.0 MB V GRD - 225 00 YVZM75 0 EOM - 00001C02 0760FF80 226402BC...00010060 34 700.0 MB V GRD - 225 00 YVZM70 0 EOM - 00001C02 0760FF80 2264028A...00010060 34 650.0 MB V GRD - 225 00 YVZM65 0 EOM - 00001C02 0760FF80 22640258...00010060 34 600.0 MB V GRD - 225 00 YVZM60 0 EOM - 00001C02 0760FF80 22640226...00010060 34 550.0 MB V GRD - 225 00 YVZM55 0 EOM - 00001C02 0760FF80 226401F4...00010060 34 500.0 MB V GRD - 225 00 YVZM50 0 EOM - 00001C02 0760FF80 226401C2...00010060 34 450.0 MB V GRD - 225 00 YVZM45 0 EOM - 00001C02 0760FF80 22640190...00010060 34 400.0 MB V GRD - 225 00 YVZM40 0 EOM - 00001C02 0760FF80 2264015E...00010060 34 350.0 MB V GRD - 225 00 YVZM35 0 EOM - 00001C02 0760FF80 2264012C...00010060 34 300.0 MB V GRD - 225 00 YVZM30 0 EOM - 00001C02 0760FF80 226400FA...00010060 34 250.0 MB V GRD - 225 00 YVZM25 0 EOM - 00001C02 0760FF80 226400C8...00010060 34 200.0 MB V GRD - 225 00 YVZM20 0 EOM - 00001C02 0760FF80 22640096...00010060 34 150.0 MB V GRD - 225 00 YVZM15 0 EOM - 00001C02 0760FF80 22640064...00010060 34 100.0 MB V GRD - 225 00 YVZM10 0 EOM - 00001C02 0760FF80 346403E8...00010060 52 1000.0 MB R H - 225 00 YRZM99 0 EOM - 00001C02 0760FF80 346403B6...00010060 52 950.0 MB R H - 225 00 YRZM95 0 EOM - 00001C02 0760FF80 34640384...00010060 52 900.0 MB R H - 225 00 YRZM90 0 EOM - 00001C02 0760FF80 34640352...00010060 52 850.0 MB R H - 225 00 YRZM85 0 EOM - 00001C02 0760FF80 34640320...00010060 52 800.0 MB R H - 225 00 YRZM80 0 EOM - 00001C02 0760FF80 346402EE...00010060 52 750.0 MB R H - 225 00 YRZM75 0 EOM - 00001C02 0760FF80 346402BC...00010060 52 700.0 MB R H - 225 00 YRZM70 0 EOM - 00001C02 0760FF80 3464028A...00010060 52 650.0 MB R H - 225 00 YRZM65 0 EOM - 00001C02 0760FF80 34640258...00010060 52 600.0 MB R H - 225 00 YRZM60 0 EOM - 00001C02 0760FF80 34640226...00010060 52 550.0 MB R H - 225 00 YRZM55 0 EOM - 00001C02 0760FF80 346401F4...00010060 52 500.0 MB R H - 225 00 YRZM50 0 EOM - 00001C02 0760FF80 346401C2...00010060 52 450.0 MB R H - 225 00 YRZM45 0 EOM - 00001C02 0760FF80 34640190...00010060 52 400.0 MB R H - 225 00 YRZM40 0 EOM - 00001C02 0760FF80 3464015E...00010060 52 350.0 MB R H - 225 00 YRZM35 0 EOM - 00001C02 0760FF80 3464012C...00010060 52 300.0 MB R H - 225 00 YRZM30 0 EOM - 00001C02 0760FF80 0B6403E8...00010060 11 1000.0 MB TMP - 225 00 YTZM99 0 EOM - 00001C02 0760FF80 0B6403B6...00010060 11 950.0 MB TMP - 225 00 YTZM95 0 EOM - 00001C02 0760FF80 0B640384...00010060 11 900.0 MB TMP - 225 00 YTZM90 0 EOM - 00001C02 0760FF80 0B640352...00010060 11 850.0 MB TMP - 225 00 YTZM85 0 EOM - 00001C02 0760FF80 0B640320...00010060 11 800.0 MB TMP - 225 00 YTZM80 0 EOM - 00001C02 0760FF80 0B6402EE...00010060 11 750.0 MB TMP - 225 00 YTZM75 0 EOM - 00001C02 0760FF80 0B6402BC...00010060 11 700.0 MB TMP - 225 00 YTZM70 0 EOM - 00001C02 0760FF80 0B64028A...00010060 11 650.0 MB TMP - 225 00 YTZM65 0 EOM - 00001C02 0760FF80 0B640258...00010060 11 600.0 MB TMP - 225 00 YTZM60 0 EOM - 00001C02 0760FF80 0B640226...00010060 11 550.0 MB TMP - 225 00 YTZM55 0 EOM - 00001C02 0760FF80 0B6401F4...00010060 11 500.0 MB TMP - 225 00 YTZM50 0 EOM - 00001C02 0760FF80 0B6401C2...00010060 11 450.0 MB TMP - 225 00 YTZM45 0 EOM - 00001C02 0760FF80 0B640190...00010060 11 400.0 MB TMP - 225 00 YTZM40 0 EOM - 00001C02 0760FF80 0B64015E...00010060 11 350.0 MB TMP - 225 00 YTZM35 0 EOM - 00001C02 0760FF80 0B64012C...00010060 11 300.0 MB TMP - 225 00 YTZM30 0 EOM - 00001C02 0760FF80 0B6400FA...00010060 11 250.0 MB TMP - 225 00 YTZM25 0 EOM - 00001C02 0760FF80 0B6400C8...00010060 11 200.0 MB TMP - 225 00 YTZM20 0 EOM - 00001C02 0760FF80 0B640096...00010060 11 150.0 MB TMP - 225 00 YTZM15 0 EOM - 00001C02 0760FF80 0B640064...00010060 11 100.0 MB TMP - 225 00 YTZM10 0 EOM - 00001C02 0760FF80 27640352...00010060 39 850.0 MB V VEL - 225 00 YOZM85 0 EOM - 00001C02 0760FF80 276402BC...00010060 39 700.0 MB V VEL - 225 00 YOZM70 0 EOM - 00001C02 0760FF80 276401F4...00010060 39 500.0 MB V VEL - 225 00 YOZM50 0 EOM - 00001C02 0760FF80 2764012C...00010060 39 300.0 MB V VEL - 225 00 YOZM30 0 EOM - 00001C02 0760FF80 276400C8...00010060 39 200.0 MB V VEL - 225 00 YOZM20 0 EOM - 00001C02 0760FF80 01010000...00010060 01 SFC PRES - 225 00 YPZM98 0 EOM - 00001C02 0760FF80 346C2C64...00010060 52 44/100 R H - 225 00 YRZM00 0 EOM - 00001C02 0760FF80 36C80000...00010060 54 EATM P WAT - 225 00 YFZM00 0 EOM - 00001C02 0760FF80 0B070000...00010060 11 TRO TMP - 225 00 YTZM97 0 EOM - 00001C02 0760FF80 01070000...00010060 01 TRO PRES - 225 00 YPZM97 0 EOM - 00001C02 0760FF80 21070000...00010060 33 TRO U GRD - 225 00 YUZM97 0 EOM - 00001C02 0760FF80 3D010000...00015A60 61 SFC A PCP - 225 00 YEZM98 0 EOM - 00001C02 0760FF80 83010000...00010060 131 SFC LFT X - 225 00 YXZM98 0 EOM - 00001C02 0760FF80 0B690002...00010060 11 2 HTGL TMP - 225 00 YTZM98 0 EOM - 00001C02 0760FF80 2169000A...00010060 33 10 HTGL U GRD - 225 00 YUZM98 0 EOM - 00001C02 0760FF80 2269000A...00010060 34 10 HTGL V GRD - 225 00 YVZM98 0 EOM - 00001C02 0760FF80 9D010000...00010060 157 SFC CAPE - 225 00 YWZM98 0 EOM - 00001C02 0760FF80 9C010000...00010060 156 SFC CIN - 225 00 YYZM98 0 EOM - 00001C02 0760FF80 84010000...00010060 132 SFC 4LFTX - 225 00 YQZM98 0 EOM - 00001C02 0760FF80 9D74B400...00010060 157 Y 0 SPDY CAPE - 225 00 YWZM86 0 EOM - 00001C02 0760FF80 9C74B400...00010060 156 Y 0 SPDY CIN - 225 00 YYZM86 0 EOM - 00001C02 0760FF80 3F010000...00015A60 63 ACUM SFC ACPCP - 225 00 YGZM98 0 EOM - 00001C02 0760FF80 0B741E00...00010060 11 0 SPDY TMP - 225 00 YTZM86 0 EOM - 00001C02 0760FF80 34741E00...00010060 52 0 SPDY R H - 225 00 YRZM86 0 EOM - 00001C02 0760FF80 21741E00...00010060 33 0 SPDY U GRD - 225 00 YUZM86 0 EOM - 00001C02 0760FF80 22741E00...00010060 34 0 SPDY V GRD - 225 00 YVZM86 0 EOM - 00001C02 0760FF80 01060000...00010060 01 MWSL PRES - 225 00 YPZM96 0 EOM - 00001C02 0760FF80 21060000...00010060 33 MWSL U GRD - 225 00 YUZM96 0 EOM - 00001C02 0760FF80 22060000...00010060 34 MWSL V GRD - 225 00 YVZM96 0 EOM - 00001C02 0760FF80 07040000...00010060 07 0DEG HGT - 225 00 YHZM94 0 EOM - 00001C02 0760FF80 34040000...00010060 52 0DEG R H - 225 00 YRZM94 0 EOM - 00001C02 0760FF80 02660000...00010060 02 MSL PRMSL - 225 00 YPZM89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs102.225 b/parm/wmo/grib_awpgfs102.225 deleted file mode 100755 index 3b9e0204cd..0000000000 --- a/parm/wmo/grib_awpgfs102.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...00010066 07 1000.0 MB HGT - 225 00 ZHZV99 0 EOM - 00001C02 0760FF80 076403B6...00010066 07 950.0 MB HGT - 225 00 ZHZV95 0 EOM - 00001C02 0760FF80 07640384...00010066 07 900.0 MB HGT - 225 00 ZHZV90 0 EOM - 00001C02 0760FF80 07640352...00010066 07 850.0 MB HGT - 225 00 ZHZV85 0 EOM - 00001C02 0760FF80 07640320...00010066 07 800.0 MB HGT - 225 00 ZHZV80 0 EOM - 00001C02 0760FF80 076402EE...00010066 07 750.0 MB HGT - 225 00 ZHZV75 0 EOM - 00001C02 0760FF80 076402BC...00010066 07 700.0 MB HGT - 225 00 ZHZV70 0 EOM - 00001C02 0760FF80 0764028A...00010066 07 650.0 MB HGT - 225 00 ZHZV65 0 EOM - 00001C02 0760FF80 07640258...00010066 07 600.0 MB HGT - 225 00 ZHZV60 0 EOM - 00001C02 0760FF80 07640226...00010066 07 550.0 MB HGT - 225 00 ZHZV55 0 EOM - 00001C02 0760FF80 076401F4...00010066 07 500.0 MB HGT - 225 00 ZHZV50 0 EOM - 00001C02 0760FF80 076401C2...00010066 07 450.0 MB HGT - 225 00 ZHZV45 0 EOM - 00001C02 0760FF80 07640190...00010066 07 400.0 MB HGT - 225 00 ZHZV40 0 EOM - 00001C02 0760FF80 0764015E...00010066 07 350.0 MB HGT - 225 00 ZHZV35 0 EOM - 00001C02 0760FF80 0764012C...00010066 07 300.0 MB HGT - 225 00 ZHZV30 0 EOM - 00001C02 0760FF80 076400FA...00010066 07 250.0 MB HGT - 225 00 ZHZV25 0 EOM - 00001C02 0760FF80 076400C8...00010066 07 200.0 MB HGT - 225 00 ZHZV20 0 EOM - 00001C02 0760FF80 07640096...00010066 07 150.0 MB HGT - 225 00 ZHZV15 0 EOM - 00001C02 0760FF80 07640064...00010066 07 100.0 MB HGT - 225 00 ZHZV10 0 EOM - 00001C02 0760FF80 216403E8...00010066 33 1000.0 MB U GRD - 225 00 ZUZV99 0 EOM - 00001C02 0760FF80 216403B6...00010066 33 950.0 MB U GRD - 225 00 ZUZV95 0 EOM - 00001C02 0760FF80 21640384...00010066 33 900.0 MB U GRD - 225 00 ZUZV90 0 EOM - 00001C02 0760FF80 21640352...00010066 33 850.0 MB U GRD - 225 00 ZUZV85 0 EOM - 00001C02 0760FF80 21640320...00010066 33 800.0 MB U GRD - 225 00 ZUZV80 0 EOM - 00001C02 0760FF80 216402EE...00010066 33 750.0 MB U GRD - 225 00 ZUZV75 0 EOM - 00001C02 0760FF80 216402BC...00010066 33 700.0 MB U GRD - 225 00 ZUZV70 0 EOM - 00001C02 0760FF80 2164028A...00010066 33 650.0 MB U GRD - 225 00 ZUZV65 0 EOM - 00001C02 0760FF80 21640258...00010066 33 600.0 MB U GRD - 225 00 ZUZV60 0 EOM - 00001C02 0760FF80 21640226...00010066 33 550.0 MB U GRD - 225 00 ZUZV55 0 EOM - 00001C02 0760FF80 216401F4...00010066 33 500.0 MB U GRD - 225 00 ZUZV50 0 EOM - 00001C02 0760FF80 216401C2...00010066 33 450.0 MB U GRD - 225 00 ZUZV45 0 EOM - 00001C02 0760FF80 21640190...00010066 33 400.0 MB U GRD - 225 00 ZUZV40 0 EOM - 00001C02 0760FF80 2164015E...00010066 33 350.0 MB U GRD - 225 00 ZUZV35 0 EOM - 00001C02 0760FF80 2164012C...00010066 33 300.0 MB U GRD - 225 00 ZUZV30 0 EOM - 00001C02 0760FF80 216400FA...00010066 33 250.0 MB U GRD - 225 00 ZUZV25 0 EOM - 00001C02 0760FF80 216400C8...00010066 33 200.0 MB U GRD - 225 00 ZUZV20 0 EOM - 00001C02 0760FF80 21640096...00010066 33 150.0 MB U GRD - 225 00 ZUZV15 0 EOM - 00001C02 0760FF80 21640064...00010066 33 100.0 MB U GRD - 225 00 ZUZV10 0 EOM - 00001C02 0760FF80 226403E8...00010066 34 1000.0 MB V GRD - 225 00 ZVZV99 0 EOM - 00001C02 0760FF80 226403B6...00010066 34 950.0 MB V GRD - 225 00 ZVZV95 0 EOM - 00001C02 0760FF80 22640384...00010066 34 900.0 MB V GRD - 225 00 ZVZV90 0 EOM - 00001C02 0760FF80 22640352...00010066 34 850.0 MB V GRD - 225 00 ZVZV85 0 EOM - 00001C02 0760FF80 22640320...00010066 34 800.0 MB V GRD - 225 00 ZVZV80 0 EOM - 00001C02 0760FF80 226402EE...00010066 34 750.0 MB V GRD - 225 00 ZVZV75 0 EOM - 00001C02 0760FF80 226402BC...00010066 34 700.0 MB V GRD - 225 00 ZVZV70 0 EOM - 00001C02 0760FF80 2264028A...00010066 34 650.0 MB V GRD - 225 00 ZVZV65 0 EOM - 00001C02 0760FF80 22640258...00010066 34 600.0 MB V GRD - 225 00 ZVZV60 0 EOM - 00001C02 0760FF80 22640226...00010066 34 550.0 MB V GRD - 225 00 ZVZV55 0 EOM - 00001C02 0760FF80 226401F4...00010066 34 500.0 MB V GRD - 225 00 ZVZV50 0 EOM - 00001C02 0760FF80 226401C2...00010066 34 450.0 MB V GRD - 225 00 ZVZV45 0 EOM - 00001C02 0760FF80 22640190...00010066 34 400.0 MB V GRD - 225 00 ZVZV40 0 EOM - 00001C02 0760FF80 2264015E...00010066 34 350.0 MB V GRD - 225 00 ZVZV35 0 EOM - 00001C02 0760FF80 2264012C...00010066 34 300.0 MB V GRD - 225 00 ZVZV30 0 EOM - 00001C02 0760FF80 226400FA...00010066 34 250.0 MB V GRD - 225 00 ZVZV25 0 EOM - 00001C02 0760FF80 226400C8...00010066 34 200.0 MB V GRD - 225 00 ZVZV20 0 EOM - 00001C02 0760FF80 22640096...00010066 34 150.0 MB V GRD - 225 00 ZVZV15 0 EOM - 00001C02 0760FF80 22640064...00010066 34 100.0 MB V GRD - 225 00 ZVZV10 0 EOM - 00001C02 0760FF80 346403E8...00010066 52 1000.0 MB R H - 225 00 ZRZV99 0 EOM - 00001C02 0760FF80 346403B6...00010066 52 950.0 MB R H - 225 00 ZRZV95 0 EOM - 00001C02 0760FF80 34640384...00010066 52 900.0 MB R H - 225 00 ZRZV90 0 EOM - 00001C02 0760FF80 34640352...00010066 52 850.0 MB R H - 225 00 ZRZV85 0 EOM - 00001C02 0760FF80 34640320...00010066 52 800.0 MB R H - 225 00 ZRZV80 0 EOM - 00001C02 0760FF80 346402EE...00010066 52 750.0 MB R H - 225 00 ZRZV75 0 EOM - 00001C02 0760FF80 346402BC...00010066 52 700.0 MB R H - 225 00 ZRZV70 0 EOM - 00001C02 0760FF80 3464028A...00010066 52 650.0 MB R H - 225 00 ZRZV65 0 EOM - 00001C02 0760FF80 34640258...00010066 52 600.0 MB R H - 225 00 ZRZV60 0 EOM - 00001C02 0760FF80 34640226...00010066 52 550.0 MB R H - 225 00 ZRZV55 0 EOM - 00001C02 0760FF80 346401F4...00010066 52 500.0 MB R H - 225 00 ZRZV50 0 EOM - 00001C02 0760FF80 346401C2...00010066 52 450.0 MB R H - 225 00 ZRZV45 0 EOM - 00001C02 0760FF80 34640190...00010066 52 400.0 MB R H - 225 00 ZRZV40 0 EOM - 00001C02 0760FF80 3464015E...00010066 52 350.0 MB R H - 225 00 ZRZV35 0 EOM - 00001C02 0760FF80 3464012C...00010066 52 300.0 MB R H - 225 00 ZRZV30 0 EOM - 00001C02 0760FF80 0B6403E8...00010066 11 1000.0 MB TMP - 225 00 ZTZV99 0 EOM - 00001C02 0760FF80 0B6403B6...00010066 11 950.0 MB TMP - 225 00 ZTZV95 0 EOM - 00001C02 0760FF80 0B640384...00010066 11 900.0 MB TMP - 225 00 ZTZV90 0 EOM - 00001C02 0760FF80 0B640352...00010066 11 850.0 MB TMP - 225 00 ZTZV85 0 EOM - 00001C02 0760FF80 0B640320...00010066 11 800.0 MB TMP - 225 00 ZTZV80 0 EOM - 00001C02 0760FF80 0B6402EE...00010066 11 750.0 MB TMP - 225 00 ZTZV75 0 EOM - 00001C02 0760FF80 0B6402BC...00010066 11 700.0 MB TMP - 225 00 ZTZV70 0 EOM - 00001C02 0760FF80 0B64028A...00010066 11 650.0 MB TMP - 225 00 ZTZV65 0 EOM - 00001C02 0760FF80 0B640258...00010066 11 600.0 MB TMP - 225 00 ZTZV60 0 EOM - 00001C02 0760FF80 0B640226...00010066 11 550.0 MB TMP - 225 00 ZTZV55 0 EOM - 00001C02 0760FF80 0B6401F4...00010066 11 500.0 MB TMP - 225 00 ZTZV50 0 EOM - 00001C02 0760FF80 0B6401C2...00010066 11 450.0 MB TMP - 225 00 ZTZV45 0 EOM - 00001C02 0760FF80 0B640190...00010066 11 400.0 MB TMP - 225 00 ZTZV40 0 EOM - 00001C02 0760FF80 0B64015E...00010066 11 350.0 MB TMP - 225 00 ZTZV35 0 EOM - 00001C02 0760FF80 0B64012C...00010066 11 300.0 MB TMP - 225 00 ZTZV30 0 EOM - 00001C02 0760FF80 0B6400FA...00010066 11 250.0 MB TMP - 225 00 ZTZV25 0 EOM - 00001C02 0760FF80 0B6400C8...00010066 11 200.0 MB TMP - 225 00 ZTZV20 0 EOM - 00001C02 0760FF80 0B640096...00010066 11 150.0 MB TMP - 225 00 ZTZV15 0 EOM - 00001C02 0760FF80 0B640064...00010066 11 100.0 MB TMP - 225 00 ZTZV10 0 EOM - 00001C02 0760FF80 27640352...00010066 39 850.0 MB V VEL - 225 00 ZOZV85 0 EOM - 00001C02 0760FF80 276402BC...00010066 39 700.0 MB V VEL - 225 00 ZOZV70 0 EOM - 00001C02 0760FF80 276401F4...00010066 39 500.0 MB V VEL - 225 00 ZOZV50 0 EOM - 00001C02 0760FF80 2764012C...00010066 39 300.0 MB V VEL - 225 00 ZOZV30 0 EOM - 00001C02 0760FF80 276400C8...00010066 39 200.0 MB V VEL - 225 00 ZOZV20 0 EOM - 00001C02 0760FF80 01010000...00010066 01 SFC PRES - 225 00 ZPZV98 0 EOM - 00001C02 0760FF80 346C2C64...00010066 52 44/100 R H - 225 00 ZRZV00 0 EOM - 00001C02 0760FF80 36C80000...00010066 54 EATM P WAT - 225 00 ZFZV00 0 EOM - 00001C02 0760FF80 0B070000...00010066 11 TRO TMP - 225 00 ZTZV97 0 EOM - 00001C02 0760FF80 01070000...00010066 01 TRO PRES - 225 00 ZPZV97 0 EOM - 00001C02 0760FF80 21070000...00010066 33 TRO U GRD - 225 00 ZUZV97 0 EOM - 00001C02 0760FF80 22070000...00010066 34 TRO V GRD - 225 00 ZVZV97 0 EOM - 00001C02 0760FF80 3D010000...00016066 61 SFC A PCP - 225 00 ZEZV98 0 EOM - 00001C02 0760FF80 83010000...00010066 131 SFC LFT X - 225 00 ZXZV98 0 EOM - 00001C02 0760FF80 0B690002...00010066 11 2 HTGL TMP - 225 00 ZTZV98 0 EOM - 00001C02 0760FF80 2169000A...00010066 33 10 HTGL U GRD - 225 00 ZUZV98 0 EOM - 00001C02 0760FF80 2269000A...00010066 34 10 HTGL V GRD - 225 00 ZVZV98 0 EOM - 00001C02 0760FF80 9D010000...00010066 157 SFC CAPE - 225 00 ZWZV98 0 EOM - 00001C02 0760FF80 9C010000...00010066 156 SFC CIN - 225 00 ZYZV98 0 EOM - 00001C02 0760FF80 84010000...00010066 132 SFC 4LFTX - 225 00 ZQZV98 0 EOM - 00001C02 0760FF80 9D74B400...00010066 157 Y 0 SPDY CAPE - 225 00 ZWZV86 0 EOM - 00001C02 0760FF80 9C74B400...00010066 156 Y 0 SPDY CIN - 225 00 ZYZV86 0 EOM - 00001C02 0760FF80 3F010000...00016066 63 ACUM SFC ACPCP - 225 00 ZGZV98 0 EOM - 00001C02 0760FF80 0B741E00...00010066 11 0 SPDY TMP - 225 00 ZTZV86 0 EOM - 00001C02 0760FF80 34741E00...00010066 52 0 SPDY R H - 225 00 ZRZV86 0 EOM - 00001C02 0760FF80 21741E00...00010066 33 0 SPDY U GRD - 225 00 ZUZV86 0 EOM - 00001C02 0760FF80 22741E00...00010066 34 0 SPDY V GRD - 225 00 ZVZV86 0 EOM - 00001C02 0760FF80 01060000...00010066 01 MWSL PRES - 225 00 ZPZV96 0 EOM - 00001C02 0760FF80 21060000...00010066 33 MWSL U GRD - 225 00 ZVZV96 0 EOM - 00001C02 0760FF80 22060000...00010066 34 MWSL V GRD - 225 00 ZVZV96 0 EOM - 00001C02 0760FF80 07040000...00010066 07 0DEG HGT - 225 00 ZHZV94 0 EOM - 00001C02 0760FF80 34040000...00010066 52 0DEG R H - 225 00 ZRZV94 0 EOM - 00001C02 0760FF80 02660000...00010066 02 MSL PRMSL - 225 00 ZPZV89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs108.225 b/parm/wmo/grib_awpgfs108.225 deleted file mode 100755 index bbc309f528..0000000000 --- a/parm/wmo/grib_awpgfs108.225 +++ /dev/null @@ -1,247 +0,0 @@ - 00001C02 0760FF80 076403E8...0001006C 07 1000.0 MB HGT - 225 00 YHZN99 0 EOM - 00001C02 0760FF80 076403B6...0001006C 07 950.0 MB HGT - 225 00 YHZN95 0 EOM - 00001C02 0760FF80 07640384...0001006C 07 900.0 MB HGT - 225 00 YHZN90 0 EOM - 00001C02 0760FF80 07640352...0001006C 07 850.0 MB HGT - 225 00 YHZN85 0 EOM - 00001C02 0760FF80 07640320...0001006C 07 800.0 MB HGT - 225 00 YHZN80 0 EOM - 00001C02 0760FF80 076402EE...0001006C 07 750.0 MB HGT - 225 00 YHZN75 0 EOM - 00001C02 0760FF80 076402BC...0001006C 07 700.0 MB HGT - 225 00 YHZN70 0 EOM - 00001C02 0760FF80 0764028A...0001006C 07 650.0 MB HGT - 225 00 YHZN65 0 EOM - 00001C02 0760FF80 07640258...0001006C 07 600.0 MB HGT - 225 00 YHZN60 0 EOM - 00001C02 0760FF80 07640226...0001006C 07 550.0 MB HGT - 225 00 YHZN55 0 EOM - 00001C02 0760FF80 076401F4...0001006C 07 500.0 MB HGT - 225 00 YHZN50 0 EOM - 00001C02 0760FF80 076401C2...0001006C 07 450.0 MB HGT - 225 00 YHZN45 0 EOM - 00001C02 0760FF80 07640190...0001006C 07 400.0 MB HGT - 225 00 YHZN40 0 EOM - 00001C02 0760FF80 0764015E...0001006C 07 350.0 MB HGT - 225 00 YHZN35 0 EOM - 00001C02 0760FF80 0764012C...0001006C 07 300.0 MB HGT - 225 00 YHZN30 0 EOM - 00001C02 0760FF80 076400FA...0001006C 07 250.0 MB HGT - 225 00 YHZN25 0 EOM - 00001C02 0760FF80 076400C8...0001006C 07 200.0 MB HGT - 225 00 YHZN20 0 EOM - 00001C02 0760FF80 07640096...0001006C 07 150.0 MB HGT - 225 00 YHZN15 0 EOM - 00001C02 0760FF80 07640064...0001006C 07 100.0 MB HGT - 225 00 YHZN10 0 EOM - 00001C02 0760FF80 216403E8...0001006C 33 1000.0 MB U GRD - 225 00 YUZN99 0 EOM - 00001C02 0760FF80 216403B6...0001006C 33 950.0 MB U GRD - 225 00 YUZN95 0 EOM - 00001C02 0760FF80 21640384...0001006C 33 900.0 MB U GRD - 225 00 YUZN90 0 EOM - 00001C02 0760FF80 21640352...0001006C 33 850.0 MB U GRD - 225 00 YUZN85 0 EOM - 00001C02 0760FF80 21640320...0001006C 33 800.0 MB U GRD - 225 00 YUZN80 0 EOM - 00001C02 0760FF80 216402EE...0001006C 33 750.0 MB U GRD - 225 00 YUZN75 0 EOM - 00001C02 0760FF80 216402BC...0001006C 33 700.0 MB U GRD - 225 00 YUZN70 0 EOM - 00001C02 0760FF80 2164028A...0001006C 33 650.0 MB U GRD - 225 00 YUZN65 0 EOM - 00001C02 0760FF80 21640258...0001006C 33 600.0 MB U GRD - 225 00 YUZN60 0 EOM - 00001C02 0760FF80 21640226...0001006C 33 550.0 MB U GRD - 225 00 YUZN55 0 EOM - 00001C02 0760FF80 216401F4...0001006C 33 500.0 MB U GRD - 225 00 YUZN50 0 EOM - 00001C02 0760FF80 216401C2...0001006C 33 450.0 MB U GRD - 225 00 YUZN45 0 EOM - 00001C02 0760FF80 21640190...0001006C 33 400.0 MB U GRD - 225 00 YUZN40 0 EOM - 00001C02 0760FF80 2164015E...0001006C 33 350.0 MB U GRD - 225 00 YUZN35 0 EOM - 00001C02 0760FF80 2164012C...0001006C 33 300.0 MB U GRD - 225 00 YUZN30 0 EOM - 00001C02 0760FF80 216400FA...0001006C 33 250.0 MB U GRD - 225 00 YUZN25 0 EOM - 00001C02 0760FF80 216400C8...0001006C 33 200.0 MB U GRD - 225 00 YUZN20 0 EOM - 00001C02 0760FF80 21640096...0001006C 33 150.0 MB U GRD - 225 00 YUZN15 0 EOM - 00001C02 0760FF80 21640064...0001006C 33 100.0 MB U GRD - 225 00 YUZN10 0 EOM - 00001C02 0760FF80 226403E8...0001006C 34 1000.0 MB V GRD - 225 00 YVZN99 0 EOM - 00001C02 0760FF80 226403B6...0001006C 34 950.0 MB V GRD - 225 00 YVZN95 0 EOM - 00001C02 0760FF80 22640384...0001006C 34 900.0 MB V GRD - 225 00 YVZN90 0 EOM - 00001C02 0760FF80 22640352...0001006C 34 850.0 MB V GRD - 225 00 YVZN85 0 EOM - 00001C02 0760FF80 22640320...0001006C 34 800.0 MB V GRD - 225 00 YVZN80 0 EOM - 00001C02 0760FF80 226402EE...0001006C 34 750.0 MB V GRD - 225 00 YVZN75 0 EOM - 00001C02 0760FF80 226402BC...0001006C 34 700.0 MB V GRD - 225 00 YVZN70 0 EOM - 00001C02 0760FF80 2264028A...0001006C 34 650.0 MB V GRD - 225 00 YVZN65 0 EOM - 00001C02 0760FF80 22640258...0001006C 34 600.0 MB V GRD - 225 00 YVZN60 0 EOM - 00001C02 0760FF80 22640226...0001006C 34 550.0 MB V GRD - 225 00 YVZN55 0 EOM - 00001C02 0760FF80 226401F4...0001006C 34 500.0 MB V GRD - 225 00 YVZN50 0 EOM - 00001C02 0760FF80 226401C2...0001006C 34 450.0 MB V GRD - 225 00 YVZN45 0 EOM - 00001C02 0760FF80 22640190...0001006C 34 400.0 MB V GRD - 225 00 YVZN40 0 EOM - 00001C02 0760FF80 2264015E...0001006C 34 350.0 MB V GRD - 225 00 YVZN35 0 EOM - 00001C02 0760FF80 2264012C...0001006C 34 300.0 MB V GRD - 225 00 YVZN30 0 EOM - 00001C02 0760FF80 226400FA...0001006C 34 250.0 MB V GRD - 225 00 YVZN25 0 EOM - 00001C02 0760FF80 226400C8...0001006C 34 200.0 MB V GRD - 225 00 YVZN20 0 EOM - 00001C02 0760FF80 22640096...0001006C 34 150.0 MB V GRD - 225 00 YVZN15 0 EOM - 00001C02 0760FF80 22640064...0001006C 34 100.0 MB V GRD - 225 00 YVZN10 0 EOM - 00001C02 0760FF80 346403E8...0001006C 52 1000.0 MB R H - 225 00 YRZN99 0 EOM - 00001C02 0760FF80 346403B6...0001006C 52 950.0 MB R H - 225 00 YRZN95 0 EOM - 00001C02 0760FF80 34640384...0001006C 52 900.0 MB R H - 225 00 YRZN90 0 EOM - 00001C02 0760FF80 34640352...0001006C 52 850.0 MB R H - 225 00 YRZN85 0 EOM - 00001C02 0760FF80 34640320...0001006C 52 800.0 MB R H - 225 00 YRZN80 0 EOM - 00001C02 0760FF80 346402EE...0001006C 52 750.0 MB R H - 225 00 YRZN75 0 EOM - 00001C02 0760FF80 346402BC...0001006C 52 700.0 MB R H - 225 00 YRZN70 0 EOM - 00001C02 0760FF80 3464028A...0001006C 52 650.0 MB R H - 225 00 YRZN65 0 EOM - 00001C02 0760FF80 34640258...0001006C 52 600.0 MB R H - 225 00 YRZN60 0 EOM - 00001C02 0760FF80 34640226...0001006C 52 550.0 MB R H - 225 00 YRZN55 0 EOM - 00001C02 0760FF80 346401F4...0001006C 52 500.0 MB R H - 225 00 YRZN50 0 EOM - 00001C02 0760FF80 346401C2...0001006C 52 450.0 MB R H - 225 00 YRZN45 0 EOM - 00001C02 0760FF80 34640190...0001006C 52 400.0 MB R H - 225 00 YRZN40 0 EOM - 00001C02 0760FF80 3464015E...0001006C 52 350.0 MB R H - 225 00 YRZN35 0 EOM - 00001C02 0760FF80 3464012C...0001006C 52 300.0 MB R H - 225 00 YRZN30 0 EOM - 00001C02 0760FF80 0B6403E8...0001006C 11 1000.0 MB TMP - 225 00 YTZN99 0 EOM - 00001C02 0760FF80 0B6403B6...0001006C 11 950.0 MB TMP - 225 00 YTZN95 0 EOM - 00001C02 0760FF80 0B640384...0001006C 11 900.0 MB TMP - 225 00 YTZN90 0 EOM - 00001C02 0760FF80 0B640352...0001006C 11 850.0 MB TMP - 225 00 YTZN85 0 EOM - 00001C02 0760FF80 0B640320...0001006C 11 800.0 MB TMP - 225 00 YTZN80 0 EOM - 00001C02 0760FF80 0B6402EE...0001006C 11 750.0 MB TMP - 225 00 YTZN75 0 EOM - 00001C02 0760FF80 0B6402BC...0001006C 11 700.0 MB TMP - 225 00 YTZN70 0 EOM - 00001C02 0760FF80 0B64028A...0001006C 11 650.0 MB TMP - 225 00 YTZN65 0 EOM - 00001C02 0760FF80 0B640258...0001006C 11 600.0 MB TMP - 225 00 YTZN60 0 EOM - 00001C02 0760FF80 0B640226...0001006C 11 550.0 MB TMP - 225 00 YTZN55 0 EOM - 00001C02 0760FF80 0B6401F4...0001006C 11 500.0 MB TMP - 225 00 YTZN50 0 EOM - 00001C02 0760FF80 0B6401C2...0001006C 11 450.0 MB TMP - 225 00 YTZN45 0 EOM - 00001C02 0760FF80 0B640190...0001006C 11 400.0 MB TMP - 225 00 YTZN40 0 EOM - 00001C02 0760FF80 0B64015E...0001006C 11 350.0 MB TMP - 225 00 YTZN35 0 EOM - 00001C02 0760FF80 0B64012C...0001006C 11 300.0 MB TMP - 225 00 YTZN30 0 EOM - 00001C02 0760FF80 0B6400FA...0001006C 11 250.0 MB TMP - 225 00 YTZN25 0 EOM - 00001C02 0760FF80 0B6400C8...0001006C 11 200.0 MB TMP - 225 00 YTZN20 0 EOM - 00001C02 0760FF80 0B640096...0001006C 11 150.0 MB TMP - 225 00 YTZN15 0 EOM - 00001C02 0760FF80 0B640064...0001006C 11 100.0 MB TMP - 225 00 YTZN10 0 EOM - 00001C02 0760FF80 27640352...0001006C 39 850.0 MB V VEL - 225 00 YOZN85 0 EOM - 00001C02 0760FF80 276402BC...0001006C 39 700.0 MB V VEL - 225 00 YOZN70 0 EOM - 00001C02 0760FF80 276401F4...0001006C 39 500.0 MB V VEL - 225 00 YOZN50 0 EOM - 00001C02 0760FF80 2764012C...0001006C 39 300.0 MB V VEL - 225 00 YOZN30 0 EOM - 00001C02 0760FF80 276400C8...0001006C 39 200.0 MB V VEL - 225 00 YOZN20 0 EOM - 00001C02 0760FF80 346C2C64...0001006C 52 44/100 R H - 225 00 YRZN00 0 EOM - 00001C02 0760FF80 36C80000...0001006C 54 EATM P WAT - 225 00 YFZN00 0 EOM - 00001C02 0760FF80 0B070000...0001006C 11 TRO TMP - 225 00 YTZN97 0 EOM - 00001C02 0760FF80 01070000...0001006C 01 TRO PRES - 225 00 YPZN97 0 EOM - 00001C02 0760FF80 21070000...0001006C 33 TRO U GRD - 225 00 YUZN97 0 EOM - 00001C02 0760FF80 22070000...0001006C 34 TRO V GRD - 225 00 YVZN97 0 EOM - 00001C02 0760FF80 3D010000...0001666C 61 SFC A PCP - 225 00 YEZN98 0 EOM - 00001C02 0760FF80 83010000...0001006C 131 SFC LFT X - 225 00 YXZN98 0 EOM - 00001C02 0760FF80 0B690002...0001006C 11 2 HTGL TMP - 225 00 YTZN98 0 EOM - 00001C02 0760FF80 2169000A...0001006C 33 10 HTGL U GRD - 225 00 YUZN98 0 EOM - 00001C02 0760FF80 2269000A...0001006C 34 10 HTGL V GRD - 225 00 YVZN98 0 EOM - 00001C02 0760FF80 9D010000...0001006C 157 SFC CAPE - 225 00 YWZN98 0 EOM - 00001C02 0760FF80 9C010000...0001006C 156 SFC CIN - 225 00 YYZN98 0 EOM - 00001C02 0760FF80 84010000...0001006C 132 SFC 4LFTX - 225 00 YQZN98 0 EOM - 00001C02 0760FF80 9D74B400...0001006C 157 Y 0 SPDY CAPE - 225 00 YWZN86 0 EOM - 00001C02 0760FF80 9C74B400...0001006C 156 Y 0 SPDY CIN - 225 00 YYZN86 0 EOM - 00001C02 0760FF80 3F010000...0001666C 63 ACUM SFC ACPCP - 225 00 YGZN98 0 EOM - 00001C02 0760FF80 0B741E00...0001006C 11 0 SPDY TMP - 225 00 YTZN86 0 EOM - 00001C02 0760FF80 34741E00...0001006C 52 0 SPDY R H - 225 00 YRZN86 0 EOM - 00001C02 0760FF80 21741E00...0001006C 33 0 SPDY U GRD - 225 00 YUZN86 0 EOM - 00001C02 0760FF80 22741E00...0001006C 34 0 SPDY V GRD - 225 00 YVZN86 0 EOM - 00001C02 0760FF80 01060000...0001006C 01 MWSL PRES - 225 00 YPZN96 0 EOM - 00001C02 0760FF80 21060000...0001006C 33 MWSL U GRD - 225 00 YUZN96 0 EOM - 00001C02 0760FF80 22060000...0001006C 34 MWSL V GRD - 225 00 YVZN96 0 EOM - 00001C02 0760FF80 07040000...0001006C 07 0DEG HGT - 225 00 YHZN94 0 EOM - 00001C02 0760FF80 34040000...0001006C 52 0DEG R H - 225 00 YRZN94 0 EOM - 00001C02 0760FF80 02660000...0001006C 02 MSL PRMSL - 225 00 YPZN89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs114.225 b/parm/wmo/grib_awpgfs114.225 deleted file mode 100755 index e15af31c43..0000000000 --- a/parm/wmo/grib_awpgfs114.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...00010072 07 1000.0 MB HGT - 225 00 ZHZW99 0 EOM - 00001C02 0760FF80 076403B6...00010072 07 950.0 MB HGT - 225 00 ZHZW95 0 EOM - 00001C02 0760FF80 07640384...00010072 07 900.0 MB HGT - 225 00 ZHZW90 0 EOM - 00001C02 0760FF80 07640352...00010072 07 850.0 MB HGT - 225 00 ZHZW85 0 EOM - 00001C02 0760FF80 07640320...00010072 07 800.0 MB HGT - 225 00 ZHZW80 0 EOM - 00001C02 0760FF80 076402EE...00010072 07 750.0 MB HGT - 225 00 ZHZW75 0 EOM - 00001C02 0760FF80 076402BC...00010072 07 700.0 MB HGT - 225 00 ZHZW70 0 EOM - 00001C02 0760FF80 0764028A...00010072 07 650.0 MB HGT - 225 00 ZHZW65 0 EOM - 00001C02 0760FF80 07640258...00010072 07 600.0 MB HGT - 225 00 ZHZW60 0 EOM - 00001C02 0760FF80 07640226...00010072 07 550.0 MB HGT - 225 00 ZHZW55 0 EOM - 00001C02 0760FF80 076401F4...00010072 07 500.0 MB HGT - 225 00 ZHZW50 0 EOM - 00001C02 0760FF80 076401C2...00010072 07 450.0 MB HGT - 225 00 ZHZW45 0 EOM - 00001C02 0760FF80 07640190...00010072 07 400.0 MB HGT - 225 00 ZHZW40 0 EOM - 00001C02 0760FF80 0764015E...00010072 07 350.0 MB HGT - 225 00 ZHZW35 0 EOM - 00001C02 0760FF80 0764012C...00010072 07 300.0 MB HGT - 225 00 ZHZW30 0 EOM - 00001C02 0760FF80 076400FA...00010072 07 250.0 MB HGT - 225 00 ZHZW25 0 EOM - 00001C02 0760FF80 076400C8...00010072 07 200.0 MB HGT - 225 00 ZHZW20 0 EOM - 00001C02 0760FF80 07640096...00010072 07 150.0 MB HGT - 225 00 ZHZW15 0 EOM - 00001C02 0760FF80 07640064...00010072 07 100.0 MB HGT - 225 00 ZHZW10 0 EOM - 00001C02 0760FF80 216403E8...00010072 33 1000.0 MB U GRD - 225 00 ZUZW99 0 EOM - 00001C02 0760FF80 216403B6...00010072 33 950.0 MB U GRD - 225 00 ZUZW95 0 EOM - 00001C02 0760FF80 21640384...00010072 33 900.0 MB U GRD - 225 00 ZUZW90 0 EOM - 00001C02 0760FF80 21640352...00010072 33 850.0 MB U GRD - 225 00 ZUZW85 0 EOM - 00001C02 0760FF80 21640320...00010072 33 800.0 MB U GRD - 225 00 ZUZW80 0 EOM - 00001C02 0760FF80 216402EE...00010072 33 750.0 MB U GRD - 225 00 ZUZW75 0 EOM - 00001C02 0760FF80 216402BC...00010072 33 700.0 MB U GRD - 225 00 ZUZW70 0 EOM - 00001C02 0760FF80 2164028A...00010072 33 650.0 MB U GRD - 225 00 ZUZW65 0 EOM - 00001C02 0760FF80 21640258...00010072 33 600.0 MB U GRD - 225 00 ZUZW60 0 EOM - 00001C02 0760FF80 21640226...00010072 33 550.0 MB U GRD - 225 00 ZUZW55 0 EOM - 00001C02 0760FF80 216401F4...00010072 33 500.0 MB U GRD - 225 00 ZUZW50 0 EOM - 00001C02 0760FF80 216401C2...00010072 33 450.0 MB U GRD - 225 00 ZUZW45 0 EOM - 00001C02 0760FF80 21640190...00010072 33 400.0 MB U GRD - 225 00 ZUZW40 0 EOM - 00001C02 0760FF80 2164015E...00010072 33 350.0 MB U GRD - 225 00 ZUZW35 0 EOM - 00001C02 0760FF80 2164012C...00010072 33 300.0 MB U GRD - 225 00 ZUZW30 0 EOM - 00001C02 0760FF80 216400FA...00010072 33 250.0 MB U GRD - 225 00 ZUZW25 0 EOM - 00001C02 0760FF80 216400C8...00010072 33 200.0 MB U GRD - 225 00 ZUZW20 0 EOM - 00001C02 0760FF80 21640096...00010072 33 150.0 MB U GRD - 225 00 ZUZW15 0 EOM - 00001C02 0760FF80 21640064...00010072 33 100.0 MB U GRD - 225 00 ZUZW10 0 EOM - 00001C02 0760FF80 226403E8...00010072 34 1000.0 MB V GRD - 225 00 ZVZW99 0 EOM - 00001C02 0760FF80 226403B6...00010072 34 950.0 MB V GRD - 225 00 ZVZW95 0 EOM - 00001C02 0760FF80 22640384...00010072 34 900.0 MB V GRD - 225 00 ZVZW90 0 EOM - 00001C02 0760FF80 22640352...00010072 34 850.0 MB V GRD - 225 00 ZVZW85 0 EOM - 00001C02 0760FF80 22640320...00010072 34 800.0 MB V GRD - 225 00 ZVZW80 0 EOM - 00001C02 0760FF80 226402EE...00010072 34 750.0 MB V GRD - 225 00 ZVZW75 0 EOM - 00001C02 0760FF80 226402BC...00010072 34 700.0 MB V GRD - 225 00 ZVZW70 0 EOM - 00001C02 0760FF80 2264028A...00010072 34 650.0 MB V GRD - 225 00 ZVZW65 0 EOM - 00001C02 0760FF80 22640258...00010072 34 600.0 MB V GRD - 225 00 ZVZW60 0 EOM - 00001C02 0760FF80 22640226...00010072 34 550.0 MB V GRD - 225 00 ZVZW55 0 EOM - 00001C02 0760FF80 226401F4...00010072 34 500.0 MB V GRD - 225 00 ZVZW50 0 EOM - 00001C02 0760FF80 226401C2...00010072 34 450.0 MB V GRD - 225 00 ZVZW45 0 EOM - 00001C02 0760FF80 22640190...00010072 34 400.0 MB V GRD - 225 00 ZVZW40 0 EOM - 00001C02 0760FF80 2264015E...00010072 34 350.0 MB V GRD - 225 00 ZVZW35 0 EOM - 00001C02 0760FF80 2264012C...00010072 34 300.0 MB V GRD - 225 00 ZVZW30 0 EOM - 00001C02 0760FF80 226400FA...00010072 34 250.0 MB V GRD - 225 00 ZVZW25 0 EOM - 00001C02 0760FF80 226400C8...00010072 34 200.0 MB V GRD - 225 00 ZVZW20 0 EOM - 00001C02 0760FF80 22640096...00010072 34 150.0 MB V GRD - 225 00 ZVZW15 0 EOM - 00001C02 0760FF80 22640064...00010072 34 100.0 MB V GRD - 225 00 ZVZW10 0 EOM - 00001C02 0760FF80 346403E8...00010072 52 1000.0 MB R H - 225 00 ZRZW99 0 EOM - 00001C02 0760FF80 346403B6...00010072 52 950.0 MB R H - 225 00 ZRZW95 0 EOM - 00001C02 0760FF80 34640384...00010072 52 900.0 MB R H - 225 00 ZRZW90 0 EOM - 00001C02 0760FF80 34640352...00010072 52 850.0 MB R H - 225 00 ZRZW85 0 EOM - 00001C02 0760FF80 34640320...00010072 52 800.0 MB R H - 225 00 ZRZW80 0 EOM - 00001C02 0760FF80 346402EE...00010072 52 750.0 MB R H - 225 00 ZRZW75 0 EOM - 00001C02 0760FF80 346402BC...00010072 52 700.0 MB R H - 225 00 ZRZW70 0 EOM - 00001C02 0760FF80 3464028A...00010072 52 650.0 MB R H - 225 00 ZRZW65 0 EOM - 00001C02 0760FF80 34640258...00010072 52 600.0 MB R H - 225 00 ZRZW60 0 EOM - 00001C02 0760FF80 34640226...00010072 52 550.0 MB R H - 225 00 ZRZW55 0 EOM - 00001C02 0760FF80 346401F4...00010072 52 500.0 MB R H - 225 00 ZRZW50 0 EOM - 00001C02 0760FF80 346401C2...00010072 52 450.0 MB R H - 225 00 ZRZW45 0 EOM - 00001C02 0760FF80 34640190...00010072 52 400.0 MB R H - 225 00 ZRZW40 0 EOM - 00001C02 0760FF80 3464015E...00010072 52 350.0 MB R H - 225 00 ZRZW35 0 EOM - 00001C02 0760FF80 3464012C...00010072 52 300.0 MB R H - 225 00 ZRZW30 0 EOM - 00001C02 0760FF80 0B6403E8...00010072 11 1000.0 MB TMP - 225 00 ZTZW99 0 EOM - 00001C02 0760FF80 0B6403B6...00010072 11 950.0 MB TMP - 225 00 ZTZW95 0 EOM - 00001C02 0760FF80 0B640384...00010072 11 900.0 MB TMP - 225 00 ZTZW90 0 EOM - 00001C02 0760FF80 0B640352...00010072 11 850.0 MB TMP - 225 00 ZTZW85 0 EOM - 00001C02 0760FF80 0B640320...00010072 11 800.0 MB TMP - 225 00 ZTZW80 0 EOM - 00001C02 0760FF80 0B6402EE...00010072 11 750.0 MB TMP - 225 00 ZTZW75 0 EOM - 00001C02 0760FF80 0B6402BC...00010072 11 700.0 MB TMP - 225 00 ZTZW70 0 EOM - 00001C02 0760FF80 0B64028A...00010072 11 650.0 MB TMP - 225 00 ZTZW65 0 EOM - 00001C02 0760FF80 0B640258...00010072 11 600.0 MB TMP - 225 00 ZTZW60 0 EOM - 00001C02 0760FF80 0B640226...00010072 11 550.0 MB TMP - 225 00 ZTZW55 0 EOM - 00001C02 0760FF80 0B6401F4...00010072 11 500.0 MB TMP - 225 00 ZTZW50 0 EOM - 00001C02 0760FF80 0B6401C2...00010072 11 450.0 MB TMP - 225 00 ZTZW45 0 EOM - 00001C02 0760FF80 0B640190...00010072 11 400.0 MB TMP - 225 00 ZTZW40 0 EOM - 00001C02 0760FF80 0B64015E...00010072 11 350.0 MB TMP - 225 00 ZTZW35 0 EOM - 00001C02 0760FF80 0B64012C...00010072 11 300.0 MB TMP - 225 00 ZTZW30 0 EOM - 00001C02 0760FF80 0B6400FA...00010072 11 250.0 MB TMP - 225 00 ZTZW25 0 EOM - 00001C02 0760FF80 0B6400C8...00010072 11 200.0 MB TMP - 225 00 ZTZW20 0 EOM - 00001C02 0760FF80 0B640096...00010072 11 150.0 MB TMP - 225 00 ZTZW15 0 EOM - 00001C02 0760FF80 0B640064...00010072 11 100.0 MB TMP - 225 00 ZTZW10 0 EOM - 00001C02 0760FF80 27640352...00010072 39 850.0 MB V VEL - 225 00 ZOZW85 0 EOM - 00001C02 0760FF80 276402BC...00010072 39 700.0 MB V VEL - 225 00 ZOZW70 0 EOM - 00001C02 0760FF80 276401F4...00010072 39 500.0 MB V VEL - 225 00 ZOZW50 0 EOM - 00001C02 0760FF80 2764012C...00010072 39 300.0 MB V VEL - 225 00 ZOZW30 0 EOM - 00001C02 0760FF80 276400C8...00010072 39 200.0 MB V VEL - 225 00 ZOZW20 0 EOM - 00001C02 0760FF80 01010000...00010072 01 SFC PRES - 225 00 ZPZW98 0 EOM - 00001C02 0760FF80 346C2C64...00010072 52 44/100 R H - 225 00 ZRZW00 0 EOM - 00001C02 0760FF80 36C80000...00010072 54 EATM P WAT - 225 00 ZFZW00 0 EOM - 00001C02 0760FF80 0B070000...00010072 11 TRO TMP - 225 00 ZTZW97 0 EOM - 00001C02 0760FF80 01070000...00010072 01 TRO PRES - 225 00 ZPZW97 0 EOM - 00001C02 0760FF80 21070000...00010072 33 TRO U GRD - 225 00 ZUZW97 0 EOM - 00001C02 0760FF80 22070000...00010072 34 TRO V GRD - 225 00 ZVZW97 0 EOM - 00001C02 0760FF80 3D010000...00016C72 61 SFC A PCP - 225 00 ZEZW98 0 EOM - 00001C02 0760FF80 83010000...00010072 131 SFC LFT X - 225 00 ZXZW98 0 EOM - 00001C02 0760FF80 0B690002...00010072 11 2 HTGL TMP - 225 00 ZTZW98 0 EOM - 00001C02 0760FF80 2169000A...00010072 33 10 HTGL U GRD - 225 00 ZUZW98 0 EOM - 00001C02 0760FF80 2269000A...00010072 34 10 HTGL V GRD - 225 00 ZVZW98 0 EOM - 00001C02 0760FF80 9D010000...00010072 157 SFC CAPE - 225 00 ZWZW98 0 EOM - 00001C02 0760FF80 9C010000...00010072 156 SFC CIN - 225 00 ZYZW98 0 EOM - 00001C02 0760FF80 84010000...00010072 132 SFC 4LFTX - 225 00 ZQZW98 0 EOM - 00001C02 0760FF80 9D74B400...00010072 157 Y 0 SPDY CAPE - 225 00 ZWZW86 0 EOM - 00001C02 0760FF80 9C74B400...00010072 156 Y 0 SPDY CIN - 225 00 ZYZW86 0 EOM - 00001C02 0760FF80 3F010000...00016C72 63 ACUM SFC ACPCP - 225 00 ZGZW98 0 EOM - 00001C02 0760FF80 0B741E00...00010072 11 0 SPDY TMP - 225 00 ZTZW86 0 EOM - 00001C02 0760FF80 34741E00...00010072 52 0 SPDY R H - 225 00 ZRZW86 0 EOM - 00001C02 0760FF80 21741E00...00010072 33 0 SPDY U GRD - 225 00 ZUZW86 0 EOM - 00001C02 0760FF80 22741E00...00010072 34 0 SPDY V GRD - 225 00 ZVZW86 0 EOM - 00001C02 0760FF80 01060000...00010072 01 MWSL PRES - 225 00 ZPZW96 0 EOM - 00001C02 0760FF80 21060000...00010072 33 MWSL U GRD - 225 00 ZUZW96 0 EOM - 00001C02 0760FF80 22060000...00010072 34 MWSL V GRD - 225 00 ZVZW96 0 EOM - 00001C02 0760FF80 07040000...00010072 07 0DEG HGT - 225 00 ZHZW94 0 EOM - 00001C02 0760FF80 34040000...00010072 52 0DEG R H - 225 00 ZRZW94 0 EOM - 00001C02 0760FF80 02660000...00010072 02 MSL PRMSL - 225 00 ZPZW89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/parm/wmo/grib_awpgfs120.225 b/parm/wmo/grib_awpgfs120.225 deleted file mode 100755 index 55992b634d..0000000000 --- a/parm/wmo/grib_awpgfs120.225 +++ /dev/null @@ -1,249 +0,0 @@ - 00001C02 0760FF80 076403E8...00010078 07 1000.0 MB HGT - 225 00 YHZO99 0 EOM - 00001C02 0760FF80 076403B6...00010078 07 950.0 MB HGT - 225 00 YHZO95 0 EOM - 00001C02 0760FF80 07640384...00010078 07 900.0 MB HGT - 225 00 YHZO90 0 EOM - 00001C02 0760FF80 07640352...00010078 07 850.0 MB HGT - 225 00 YHZO85 0 EOM - 00001C02 0760FF80 07640320...00010078 07 800.0 MB HGT - 225 00 YHZO80 0 EOM - 00001C02 0760FF80 076402EE...00010078 07 750.0 MB HGT - 225 00 YHZO75 0 EOM - 00001C02 0760FF80 076402BC...00010078 07 700.0 MB HGT - 225 00 YHZO70 0 EOM - 00001C02 0760FF80 0764028A...00010078 07 650.0 MB HGT - 225 00 YHZO65 0 EOM - 00001C02 0760FF80 07640258...00010078 07 600.0 MB HGT - 225 00 YHZO60 0 EOM - 00001C02 0760FF80 07640226...00010078 07 550.0 MB HGT - 225 00 YHZO55 0 EOM - 00001C02 0760FF80 076401F4...00010078 07 500.0 MB HGT - 225 00 YHZO50 0 EOM - 00001C02 0760FF80 076401C2...00010078 07 450.0 MB HGT - 225 00 YHZO45 0 EOM - 00001C02 0760FF80 07640190...00010078 07 400.0 MB HGT - 225 00 YHZO40 0 EOM - 00001C02 0760FF80 0764015E...00010078 07 350.0 MB HGT - 225 00 YHZO35 0 EOM - 00001C02 0760FF80 0764012C...00010078 07 300.0 MB HGT - 225 00 YHZO30 0 EOM - 00001C02 0760FF80 076400FA...00010078 07 250.0 MB HGT - 225 00 YHZO25 0 EOM - 00001C02 0760FF80 076400C8...00010078 07 200.0 MB HGT - 225 00 YHZO20 0 EOM - 00001C02 0760FF80 07640096...00010078 07 150.0 MB HGT - 225 00 YHZO15 0 EOM - 00001C02 0760FF80 07640064...00010078 07 100.0 MB HGT - 225 00 YHZO10 0 EOM - 00001C02 0760FF80 216403E8...00010078 33 1000.0 MB U GRD - 225 00 YUZO99 0 EOM - 00001C02 0760FF80 216403B6...00010078 33 950.0 MB U GRD - 225 00 YUZO95 0 EOM - 00001C02 0760FF80 21640384...00010078 33 900.0 MB U GRD - 225 00 YUZO90 0 EOM - 00001C02 0760FF80 21640352...00010078 33 850.0 MB U GRD - 225 00 YUZO85 0 EOM - 00001C02 0760FF80 21640320...00010078 33 800.0 MB U GRD - 225 00 YUZO80 0 EOM - 00001C02 0760FF80 216402EE...00010078 33 750.0 MB U GRD - 225 00 YUZO75 0 EOM - 00001C02 0760FF80 216402BC...00010078 33 700.0 MB U GRD - 225 00 YUZO70 0 EOM - 00001C02 0760FF80 2164028A...00010078 33 650.0 MB U GRD - 225 00 YUZO65 0 EOM - 00001C02 0760FF80 21640258...00010078 33 600.0 MB U GRD - 225 00 YUZO60 0 EOM - 00001C02 0760FF80 21640226...00010078 33 550.0 MB U GRD - 225 00 YUZO55 0 EOM - 00001C02 0760FF80 216401F4...00010078 33 500.0 MB U GRD - 225 00 YUZO50 0 EOM - 00001C02 0760FF80 216401C2...00010078 33 450.0 MB U GRD - 225 00 YUZO45 0 EOM - 00001C02 0760FF80 21640190...00010078 33 400.0 MB U GRD - 225 00 YUZO40 0 EOM - 00001C02 0760FF80 2164015E...00010078 33 350.0 MB U GRD - 225 00 YUZO35 0 EOM - 00001C02 0760FF80 2164012C...00010078 33 300.0 MB U GRD - 225 00 YUZO30 0 EOM - 00001C02 0760FF80 216400FA...00010078 33 250.0 MB U GRD - 225 00 YUZO25 0 EOM - 00001C02 0760FF80 216400C8...00010078 33 200.0 MB U GRD - 225 00 YUZO20 0 EOM - 00001C02 0760FF80 21640096...00010078 33 150.0 MB U GRD - 225 00 YUZO15 0 EOM - 00001C02 0760FF80 21640064...00010078 33 100.0 MB U GRD - 225 00 YUZO10 0 EOM - 00001C02 0760FF80 226403E8...00010078 34 1000.0 MB V GRD - 225 00 YVZO99 0 EOM - 00001C02 0760FF80 226403B6...00010078 34 950.0 MB V GRD - 225 00 YVZO95 0 EOM - 00001C02 0760FF80 22640384...00010078 34 900.0 MB V GRD - 225 00 YVZO90 0 EOM - 00001C02 0760FF80 22640352...00010078 34 850.0 MB V GRD - 225 00 YVZO85 0 EOM - 00001C02 0760FF80 22640320...00010078 34 800.0 MB V GRD - 225 00 YVZO80 0 EOM - 00001C02 0760FF80 226402EE...00010078 34 750.0 MB V GRD - 225 00 YVZO75 0 EOM - 00001C02 0760FF80 226402BC...00010078 34 700.0 MB V GRD - 225 00 YVZO70 0 EOM - 00001C02 0760FF80 2264028A...00010078 34 650.0 MB V GRD - 225 00 YVZO65 0 EOM - 00001C02 0760FF80 22640258...00010078 34 600.0 MB V GRD - 225 00 YVZO60 0 EOM - 00001C02 0760FF80 22640226...00010078 34 550.0 MB V GRD - 225 00 YVZO55 0 EOM - 00001C02 0760FF80 226401F4...00010078 34 500.0 MB V GRD - 225 00 YVZO50 0 EOM - 00001C02 0760FF80 226401C2...00010078 34 450.0 MB V GRD - 225 00 YVZO45 0 EOM - 00001C02 0760FF80 22640190...00010078 34 400.0 MB V GRD - 225 00 YVZO40 0 EOM - 00001C02 0760FF80 2264015E...00010078 34 350.0 MB V GRD - 225 00 YVZO35 0 EOM - 00001C02 0760FF80 2264012C...00010078 34 300.0 MB V GRD - 225 00 YVZO30 0 EOM - 00001C02 0760FF80 226400FA...00010078 34 250.0 MB V GRD - 225 00 YVZO25 0 EOM - 00001C02 0760FF80 226400C8...00010078 34 200.0 MB V GRD - 225 00 YVZO20 0 EOM - 00001C02 0760FF80 22640096...00010078 34 150.0 MB V GRD - 225 00 YVZO15 0 EOM - 00001C02 0760FF80 22640064...00010078 34 100.0 MB V GRD - 225 00 YVZO10 0 EOM - 00001C02 0760FF80 346403E8...00010078 52 1000.0 MB R H - 225 00 YRZO99 0 EOM - 00001C02 0760FF80 346403B6...00010078 52 950.0 MB R H - 225 00 YRZO95 0 EOM - 00001C02 0760FF80 34640384...00010078 52 900.0 MB R H - 225 00 YRZO90 0 EOM - 00001C02 0760FF80 34640352...00010078 52 850.0 MB R H - 225 00 YRZO85 0 EOM - 00001C02 0760FF80 34640320...00010078 52 800.0 MB R H - 225 00 YRZO80 0 EOM - 00001C02 0760FF80 346402EE...00010078 52 750.0 MB R H - 225 00 YRZO75 0 EOM - 00001C02 0760FF80 346402BC...00010078 52 700.0 MB R H - 225 00 YRZO70 0 EOM - 00001C02 0760FF80 3464028A...00010078 52 650.0 MB R H - 225 00 YRZO65 0 EOM - 00001C02 0760FF80 34640258...00010078 52 600.0 MB R H - 225 00 YRZO60 0 EOM - 00001C02 0760FF80 34640226...00010078 52 550.0 MB R H - 225 00 YRZO55 0 EOM - 00001C02 0760FF80 346401F4...00010078 52 500.0 MB R H - 225 00 YRZO50 0 EOM - 00001C02 0760FF80 346401C2...00010078 52 450.0 MB R H - 225 00 YRZO45 0 EOM - 00001C02 0760FF80 34640190...00010078 52 400.0 MB R H - 225 00 YRZO40 0 EOM - 00001C02 0760FF80 3464015E...00010078 52 350.0 MB R H - 225 00 YRZO35 0 EOM - 00001C02 0760FF80 3464012C...00010078 52 300.0 MB R H - 225 00 YRZO30 0 EOM - 00001C02 0760FF80 0B6403E8...00010078 11 1000.0 MB TMP - 225 00 YTZO99 0 EOM - 00001C02 0760FF80 0B6403B6...00010078 11 950.0 MB TMP - 225 00 YTZO95 0 EOM - 00001C02 0760FF80 0B640384...00010078 11 900.0 MB TMP - 225 00 YTZO90 0 EOM - 00001C02 0760FF80 0B640352...00010078 11 850.0 MB TMP - 225 00 YTZO85 0 EOM - 00001C02 0760FF80 0B640320...00010078 11 800.0 MB TMP - 225 00 YTZO80 0 EOM - 00001C02 0760FF80 0B6402EE...00010078 11 750.0 MB TMP - 225 00 YTZO75 0 EOM - 00001C02 0760FF80 0B6402BC...00010078 11 700.0 MB TMP - 225 00 YTZO70 0 EOM - 00001C02 0760FF80 0B64028A...00010078 11 650.0 MB TMP - 225 00 YTZO65 0 EOM - 00001C02 0760FF80 0B640258...00010078 11 600.0 MB TMP - 225 00 YTZO60 0 EOM - 00001C02 0760FF80 0B640226...00010078 11 550.0 MB TMP - 225 00 YTZO55 0 EOM - 00001C02 0760FF80 0B6401F4...00010078 11 500.0 MB TMP - 225 00 YTZO50 0 EOM - 00001C02 0760FF80 0B6401C2...00010078 11 450.0 MB TMP - 225 00 YTZO45 0 EOM - 00001C02 0760FF80 0B640190...00010078 11 400.0 MB TMP - 225 00 YTZO40 0 EOM - 00001C02 0760FF80 0B64015E...00010078 11 350.0 MB TMP - 225 00 YTZO35 0 EOM - 00001C02 0760FF80 0B64012C...00010078 11 300.0 MB TMP - 225 00 YTZO30 0 EOM - 00001C02 0760FF80 0B6400FA...00010078 11 250.0 MB TMP - 225 00 YTZO25 0 EOM - 00001C02 0760FF80 0B6400C8...00010078 11 200.0 MB TMP - 225 00 YTZO20 0 EOM - 00001C02 0760FF80 0B640096...00010078 11 150.0 MB TMP - 225 00 YTZO15 0 EOM - 00001C02 0760FF80 0B640064...00010078 11 100.0 MB TMP - 225 00 YTZO10 0 EOM - 00001C02 0760FF80 27640352...00010078 39 850.0 MB V VEL - 225 00 YOZO85 0 EOM - 00001C02 0760FF80 276402BC...00010078 39 700.0 MB V VEL - 225 00 YOZO70 0 EOM - 00001C02 0760FF80 276401F4...00010078 39 500.0 MB V VEL - 225 00 YOZO50 0 EOM - 00001C02 0760FF80 2764012C...00010078 39 300.0 MB V VEL - 225 00 YOZO30 0 EOM - 00001C02 0760FF80 276400C8...00010078 39 200.0 MB V VEL - 225 00 YOZO20 0 EOM - 00001C02 0760FF80 01010000...00010078 01 SFC PRES - 225 00 YPZO98 0 EOM - 00001C02 0760FF80 346C2C64...00010078 52 44/100 R H - 225 00 YRZO00 0 EOM - 00001C02 0760FF80 36C80000...00010078 54 EATM P WAT - 225 00 YFZO00 0 EOM - 00001C02 0760FF80 0B070000...00010078 11 TRO TMP - 225 00 YTZO97 0 EOM - 00001C02 0760FF80 01070000...00010078 01 TRO PRES - 225 00 YPZO97 0 EOM - 00001C02 0760FF80 21070000...00010078 33 TRO U GRD - 225 00 YUZO97 0 EOM - 00001C02 0760FF80 22070000...00010078 34 TRO V GRD - 225 00 YVZO97 0 EOM - 00001C02 0760FF80 3D010000...00017278 61 SFC A PCP - 225 00 YEZO98 0 EOM - 00001C02 0760FF80 83010000...00010078 131 SFC LFT X - 225 00 YXZO98 0 EOM - 00001C02 0760FF80 0B690002...00010078 11 2 HTGL TMP - 225 00 YTZO98 0 EOM - 00001C02 0760FF80 2169000A...00010078 33 10 HTGL U GRD - 225 00 YUZO98 0 EOM - 00001C02 0760FF80 2269000A...00010078 34 10 HTGL V GRD - 225 00 YVZO98 0 EOM - 00001C02 0760FF80 9D010000...00010078 157 SFC CAPE - 225 00 YWZO98 0 EOM - 00001C02 0760FF80 9C010000...00010078 156 SFC CIN - 225 00 YYZO98 0 EOM - 00001C02 0760FF80 84010000...00010078 132 SFC 4LFTX - 225 00 YQZO98 0 EOM - 00001C02 0760FF80 9D74B400...00010078 157 Y 0 SPDY CAPE - 225 00 YWZO86 0 EOM - 00001C02 0760FF80 9C74B400...00010078 156 Y 0 SPDY CIN - 225 00 YYZO86 0 EOM - 00001C02 0760FF80 3F010000...00017278 63 ACUM SFC ACPCP - 225 00 YGZO98 0 EOM - 00001C02 0760FF80 0B741E00...00010078 11 0 SPDY TMP - 225 00 YTZO86 0 EOM - 00001C02 0760FF80 34741E00...00010078 52 0 SPDY R H - 225 00 YRZO86 0 EOM - 00001C02 0760FF80 21741E00...00010078 33 0 SPDY U GRD - 225 00 YUZO86 0 EOM - 00001C02 0760FF80 22741E00...00010078 34 0 SPDY V GRD - 225 00 YVZO86 0 EOM - 00001C02 0760FF80 01060000...00010078 01 MWSL PRES - 225 00 YPZO96 0 EOM - 00001C02 0760FF80 21060000...00010078 33 MWSL U GRD - 225 00 YUZO96 0 EOM - 00001C02 0760FF80 22060000...00010078 34 MWSL V GRD - 225 00 YVZO96 0 EOM - 00001C02 0760FF80 07040000...00010078 07 0DEG HGT - 225 00 YHZO94 0 EOM - 00001C02 0760FF80 34040000...00010078 52 0DEG R H - 225 00 YRZO94 0 EOM - 00001C02 0760FF80 02660000...00010078 02 MSL PRMSL - 225 00 YPZO89 0 EOM - FFFFFFFF 00000000 00000000...00000000 00 diff --git a/scripts/exemcsfc_global_sfc_prep.sh.ecf b/scripts/exemcsfc_global_sfc_prep.sh.ecf deleted file mode 100755 index 87593e0dd1..0000000000 --- a/scripts/exemcsfc_global_sfc_prep.sh.ecf +++ /dev/null @@ -1,304 +0,0 @@ -#!/bin/sh - -#### UNIX Script Documentation Block ################################### -# . . -# Script name: exemcsfc_global_sfc_prep.sh.ecf -# RFC Contact: George Gayno -# Abstract: This script calls two utility scripts to prepare a global -# blended ice analysis and global snow analyses for use by GFS/GDAS. -# If there is an error in either utility script, the ice/snow -# file from the previous cycle is copied to the current com -# directory. If the ice/snow file from the previous cycle is -# unavailable, the script aborts. -# -# Script History Log: -# 07/2014 Gayno Initial version -# 12/2014 Gayno Set file defaults to grib 2 versions -# when available. -# 08/2015 Gayno Update to current NCO standards -# -# Usage: -# Parameters: < no arguments > -# Modules: -# /nwprod/gfs.vX.Y.Z/ush/emcsfc_ice_blend.sh (create global ice blend) -# /nwprod/gfs.vX.Y.Z/ush/emcsfc_snow.sh (create model snow analysis) -# Input Files: -# $AFWA_NH_FILE - nh afwa snow data (grib 1) -# $AFWA_SH_FILE - sh afwa snow data (grib 1) -# $IMS_FILE - nh ims snow cover and ice data (grib 2) -# $FIVE_MIN_ICE_FILE - global 5-minute ice concentration (grib 2) -# $FIVE_MIN_ICE_MASK_FILE - corresponding land/sea mask for $FIVE_MIN_ICE_FILE -# (grib 2) -# $BLENDED_ICE_FILE_m6hrs - global 5-minute blended ice data (grib 1) -# from previous cycle. Backup data if -# program failure. -# $MODEL_SLMASK_FILE - model land/sea mask (grib 1) -# $MODEL_LATITUDE_FILE - model latitudes (grib 1) -# $MODEL_LONGITUDE_FILE - model longitudes (grib 1) -# $GFS_LONSPERLAT_FILE - gfs reduced grid information (text) -# $MODEL_SNOW_FILE_m6hrs - snow analysis on model grid (grib 1) -# from previous cycle. Backup data if -# program failure -# Output Files: -# $BLENDED_ICE_FILE - global 5-minute blended ice data (grib 1) -# $MODEL_SNOW_FILE - snow analysis on model grid (grib 1) -# -# Condition codes: -# 0 - normal termination -# non-0 - problem in the emcsfc_ice_blend.sh or emcsfc_snow.sh -# script and the backup ice or snow data is missing. -# fatal error. -# -# Attributes: -# Language: RedHat Linux -# Machine: NCEP WCOSS -# -######################################################################### - -VERBOSE=${VERBOSE:-"YES"} -if test "$VERBOSE" = "YES" -then - set -x -fi - -# path names -export envir=${envir:-"prod"} -export NWROOT=${NWROOT:-"/nw${envir}"} - -RUN=${RUN:-"gfs"} - -export HOMEgfs=${HOMEgfs:-$NWROOT/gfs.${gfs_ver:?}} -export USHgfs=${USHgfs:-$HOMEgfs/ush} -export FIXgfs=${FIXgfs:-$HOMEgfs/fix} -FIXgfs_am=${FIXgfs_am:-$HOMEgfs/fix/fix_am} -export EXECgfs=${EXECgfs:-$HOMEgfs/exec} - -# output com directory. -export COMOUT=${COMOUT:-$PWD} -export COMINgfs_m6hrs=${COMINgfs_m6hrs:-$PWD} - -# working directory -export DATA=${DATA:-$PWD} -if [ ! -d $DATA ]; then - mkdir -p $DATA -fi -cd $DATA - -# copy output data to com directory? -export SENDCOM=${SENDCOM:-"NO"} - -#----------------------------------------------------------------------- -# the "postmsg" and "err_exit" utilities are only used in ncep ops -# when the "prod_util" module is loaded. -#----------------------------------------------------------------------- - -use_prod_util=`echo $UTILROOT` -if ((${#use_prod_util} != 0)); then - use_prod_util="true" -else - use_prod_util="false" -fi - -#----------------------------------------------------------------------- -# the input data for emcsfc_ice_blend and emcsfc_snow2mdl programs. -#----------------------------------------------------------------------- - -# afwa snow depth data (grib 1) -export AFWA_NH_FILE=${AFWA_NH_FILE:-"NPR.SNWN.SP.S1200.MESH16"} -export AFWA_SH_FILE=${AFWA_SH_FILE:-"NPR.SNWS.SP.S1200.MESH16"} - -# ims snow cover and ice cover data (grib 1 or grib 2) -export IMS_FILE=${IMS_FILE:-"ims.grib2"} - -# global 5-minute ice concentration file (grib 2) -export FIVE_MIN_ICE_FILE=${FIVE_MIN_ICE_FILE:-"seaice.5min.grib2"} - -# landmask file for global 5-minute data (grib 2) -export FIVE_MIN_ICE_MASK_FILE=${FIVE_MIN_ICE_MASK_FILE:-${FIXgfs_am}/emcsfc_gland5min.grib2} - -# the output ice blend data (grib) -export BLENDED_ICE_FILE=${BLENDED_ICE_FILE:-seaice.5min.blend} - -# the 6-hour old output ice blend data. -export BLENDED_ICE_FILE_m6hrs=${BLENDED_ICE_FILE_m6hrs:-seaice.5min.blend.old} - -# the emcsfc_ice_blend executable -export BLENDICEEXEC=${BLENDICEEXEC:-$EXECgfs/emcsfc_ice_blend} - -# standard output file -export pgmout=${pgmout:-OUTPUT} - -#----------------------------------------------------------------------- -# call utility script to create global ice blend data. -#----------------------------------------------------------------------- - -if test "$use_prod_util" = "true" ; then - msg="create blended ice data." - postmsg "$jlogfile" "$msg" -fi - -${USHgfs}/emcsfc_ice_blend.sh -rc=$? - -#----------------------------------------------------------------------- -# If there is a failure in the ice blend script, copy the 6-hr old file -# to the current file. The gfs/gdas can run with old ice data for -# about a week. Although not fatal, any errors must be -# investigated. -# -# If there is a failure in the ice blend script AND the 6-hour old file -# is not available as a backup, abort the script. The global cycling -# code can't run without an ice analysis. -#----------------------------------------------------------------------- - -if ((rc != 0));then - if test "$SENDCOM" = "YES" - then - if [ -s $BLENDED_ICE_FILE_m6hrs ]; then - msg="copy old ice blend file to current directory" - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - cp $BLENDED_ICE_FILE_m6hrs $COMOUT/$BLENDED_ICE_FILE - else - msg="FATAL ERROR: CURRENT AND 6-HR OLD ICE FILE MISSING" - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - if test "$use_prod_util" = "true" ; then - err_exit - else - exit 7 - fi - fi - else - exit 7 - fi # SENDCOM check -fi # return code check - -#----------------------------------------------------------------------- -# now create global snow depth data for full-res gaussian grid -# and (if a gdas run) enkf gaussian grid. -#----------------------------------------------------------------------- - -export SNOW2MDLEXEC=${EXECgfs}/emcsfc_snow2mdl - -JCAP=${JCAP:-"1534"} -LONB=${LONB:-"3072"} -LATB=${LATB:-"1536"} - -resolution="${JCAP}.${LONB}.${LATB}" - -export MODEL_SLMASK_FILE=${SLMASK:-$FIXgfs_am/global_slmask.t${resolution}.grb} -export MODEL_LATITUDE_FILE=${MDL_LATS:-$FIXgfs_am/global_latitudes.t${resolution}.grb} -export MODEL_LONGITUDE_FILE=${MDL_LONS:-$FIXgfs_am/global_longitudes.t${resolution}.grb} -export GFS_LONSPERLAT_FILE=${LONSPERLAT:-$FIXgfs_am/global_lonsperlat.t${resolution}.txt} -export MODEL_SNOW_FILE=${FNSNOAJCAP:-${RUN}.${cycle}.snogrb_t${resolution}} -export MODEL_SNOW_FILE_m6hrs=${FNSNOGJCAP:-${COMINgfs_m6hrs}/${RUN}.${cycle_m6hrs}.snogrb_t${resolution}} - -if test "$use_prod_util" = "true" ; then - msg="create ${JCAP} snow data." - postmsg "$jlogfile" "$msg" -fi - -${USHgfs}/emcsfc_snow.sh -rc=$? - -#----------------------------------------------------------------------- -# If there was a failure in the emcsfc_snow script, copy the 6-hr old -# snow file to the current file. The gfs/gdas can run with old snow data -# for a day or two at most. So while not fatal, any errors must be -# investigated. -# -# If there is a failure in the emcsfc_snow script AND the 6-hour old -# snow file is not available as a backup, abort the script. The -# global cycling can't run without an snow analysis. -#----------------------------------------------------------------------- - -if ((rc != 0)); then - if test "$SENDCOM" = "YES" - then - if [ -s $MODEL_SNOW_FILE_m6hrs ]; then - msg="COPY OLD ${JCAP} SNOW FILE TO CURRENT DIRECTORY" - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - cp $MODEL_SNOW_FILE_m6hrs $COMOUT/$MODEL_SNOW_FILE - else - msg="FATAL ERROR: CURRENT AND 6-HR OLD ${JCAP} SNOW MISSING" - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - if test "$use_prod_util" = "true" ; then - err_exit - else - exit 8 - fi - fi # check of missing 6-hr snow file - else - exit 8 - fi # SENDCOM check -fi # return code check - -#----------------------------------------------------------------------- -# The GFS step does not run the enkf stuff. So there is no need to -# create an enkf snow file. -#----------------------------------------------------------------------- - -if test "$RUN" = "gfs" -then - exit 0 -fi - -JCAP_ENKF=${JCAP_ENKF:-"574"} -LONB_ENKF=${LONB_ENKF:-"1152"} -LATB_ENKF=${LATB_ENKF:-"576"} - -resolution="${JCAP_ENKF}.${LONB_ENKF}.${LATB_ENKF}" - -export MODEL_SLMASK_FILE=${SLMASK_ENKF:-$FIXgfs_am/global_slmask.t${resolution}.grb} -export MODEL_LATITUDE_FILE=${MDL_LATS_ENKF:-$FIXgfs_am/global_latitudes.t${resolution}.grb} -export MODEL_LONGITUDE_FILE=${MDL_LONS_ENKF:-$FIXgfs_am/global_longitudes.t${resolution}.grb} -export GFS_LONSPERLAT_FILE=${LONSPERLAT_ENKF:-$FIXgfs_am/global_lonsperlat.t${resolution}.txt} -export MODEL_SNOW_FILE=${FNSNOAJCAP_ENKF:-${RUN}.${cycle}.snogrb_t${resolution}} -export MODEL_SNOW_FILE_m6hrs=${FNSNOGJCAP_ENKF:-${COMINgfs_m6hrs}/${RUN}.${cycle_m6hrs}.snogrb_t${resolution}} - -if test "$use_prod_util" = "true" ; then - msg="create enkf snow data." - postmsg "$jlogfile" "$msg" -fi - -${USHgfs}/emcsfc_snow.sh -rc=$? - -#----------------------------------------------------------------------- -# Check for errors creating enkf snow. Use 6-hour old data -# as backup. If old data not available, abort. -#----------------------------------------------------------------------- - -if ((rc != 0)); then - if test "$SENDCOM" = "YES" - then - if [ -s $MODEL_SNOW_FILE_m6hrs ]; then - msg="COPY OLD ENKF SNOW FILE TO CURRENT DIRECTORY" - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - cp $MODEL_SNOW_FILE_m6hrs $COMOUT/$MODEL_SNOW_FILE - else - msg="FATAL ERROR: CURRENT AND 6-HR OLD ENKF SNOW MISSING" - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - if test "$use_prod_util" = "true" ; then - err_exit - else - exit 9 - fi - fi # check of missing 6-hr snow file - else - exit 9 - fi # SENDCOM check -fi # return code check - -exit 0 diff --git a/scripts/exgempak_gdas_gif_ncdc.sh.ecf b/scripts/exgdas_atmos_gempak_gif_ncdc.sh similarity index 100% rename from scripts/exgempak_gdas_gif_ncdc.sh.ecf rename to scripts/exgdas_atmos_gempak_gif_ncdc.sh diff --git a/scripts/exgdas_nawips.sh.ecf b/scripts/exgdas_atmos_nawips.sh similarity index 100% rename from scripts/exgdas_nawips.sh.ecf rename to scripts/exgdas_atmos_nawips.sh diff --git a/scripts/exgdas_bulls_navy.sh.ecf b/scripts/exgdas_bulls_navy.sh.ecf deleted file mode 100755 index a018d395de..0000000000 --- a/scripts/exgdas_bulls_navy.sh.ecf +++ /dev/null @@ -1,206 +0,0 @@ -#!/bin/sh -# UTILITY SCRIPT NAME : exgdas_bulls_navy.sh.ecf -# AUTHOR : Lauren Morone and Hua-Lu Pan -# DATE WRITTEN : 04/24/97 -# -# Abstract: This utility script produces the navybull -# bulletins, from the GFS and GDAS datadumps. -# -# Input: none -# -echo "History: April 1997 - First implementation of this utility script" -echo " Jan 2000 - Converted to IBM-SP." -echo " Oct 2005 - Send products to TOC via the NTC." -echo " Jan 2008 - Changed the input file to non-restricted." -echo " Jan 2013 - Converted to WCOSS" -echo " Sep 2015 - Converted to WCOSS on phase 2" -# - -set -xa - -cd $DATA - -# Copy in updated files containing dates and times - -if [ $cyc = '00' ]; then - cp ${COMINm1}/ship.cntl ship.cntl - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File ship.cntl does not exist." - exit $err - fi -else - cp ${COMIN}/ship.cntl ship.cntl - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File ship.cntl does not exist." - exit $err - fi -fi - -# Save original ship.cnrl file that containing dates and times -cp ship.cntl $COMOUT/ship.cntl.${LSB_JOBID}_${cyc} - -# Copy in appropriate parm field - -echo $cyc > parm.job1 - -# Copy in SFCSHP file for use as input data set - -cp ${COMIN}/${cyc}/${RUN}.${cycle}.sfcshp.tm00.bufr_d.nr SFCSHP -export err=$? -if [[ $err -ne 0 ]] ; then - echo " File ${RUN}.${cycle}.sfcshp.tm00.bufr_d.nr does not exist." - exit $err -fi - -export pgm=navybull;. prep_step - -export FORT11=SFCSHP -export FORT12="parm.job1" -export FORT15="ship.cntl" -export FORT51="navybull.part1" - -$EXECgfs/navybull -export err=$?; err_chk - -# -# Do Part II of the datadump. For GFS, the precious six hour data is used -# for GDAS, the next six hour dump is used -# - -case $cyc in - 00) echo 18 > parm.job1 - export COMINgdas=${COMINgdas}.${PDYm1}/18 - cp $COMINgdas/${RUN}.t18z.sfcshp.tm00.bufr_d.nr SFCSHP - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File ${RUN}.t18z.sfcshp.tm00.bufr_d.nr does not exist." - exit $err - fi ;; - - 12) echo 06 > parm.job1 - export COMINgdas=${COMINgdas}.${PDY}/06 - cp $COMINgdas/${RUN}.t06z.sfcshp.tm00.bufr_d.nr SFCSHP - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File ${RUN}.t06z.sfcshp.tm00.bufr_d.nr does not exist." - exit $err - fi ;; -esac - -export pgm=navybull;. prep_step - -export FORT11="SFCSHP" -export FORT12="parm.job1" -export FORT15="ship.cntl" -export FORT51="navybull.part2" - -$EXECgfs/navybull -export err=$?; err_chk - -# -# Now cat the two parts together to make the final bulletin -# - -cp navybull.part1 navybull.tran.${cyc} -err1=$? - -cat navybull.part2 >> navybull.tran.${cyc} -err2=$? - -# In case no bulletin was made, send a message and get out - -if test $err1 -eq 0 -o $err2 -eq 0; then - - echo 'navybull finished' - - cp ship.cntl ${COMOUT} - - if test $SENDCOM = 'YES' - then - cp ship.cntl $COMOUT/ship.cntl.$cyc - cp navybull.tran.${cyc} $COMOUT/${cyc} - fi - - msg=" navybull bulletin successfully made" - postmsg "$jlogfile" "$msg" - -###################################################### -# this is used for part of the ${COMOUTwmo} file name - jobn=`echo $job|sed 's/[jpt]gdas/gdas/'` - - if test $SENDDBN = 'YES' - then - cp navybull.tran.${cyc} ${COMOUTwmo}/navybull.tran.${cyc}.$jobn - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File navybull.tran.${cyc} does not exist." - exit $err - fi - $UTILgfs/ush/make_ntc_bull.pl WMONV NONE KWBC NONE \ - navybull.tran.${cyc} ${COMOUTwmo}/navybull.tran.${cyc}.$jobn - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File navybull.tran.${cyc} failed to send TOC." - exit $err - fi - - fi - -################################################################### - -else - - msg=" navybull bulletin was not created " - postmsg "$jlogfile" "$msg" - -fi - -############################################ -# START FLOW OF CONTROL -# 1) GRIDBUL - generates GRID Bulletins -############################################ - -if [ $cyc -eq 12 ] ; then - -set -x -msg="HAS BEGUN!" -postmsg "$jlogfile" "$msg" - -########################################### -# 1) Generate gridbulls at 12 UTC -# 2) Extract grib file for ECMWF at 12 UTC -########################################### - - set +x - echo " " - echo "######################################" - echo " Execute GRIDBULL " - echo "######################################" - echo " " - set -x - - # this is used for part of the ${COMOUTwmo} file name - jobn=`echo $job|sed 's/[jpt]gdas/gdas/'` - - cp $UTILgfs/parm/bull_grdbgdas.d$cyc . - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File bull_grdbgdas.d$cyc does not exist." - exit $err - fi - - bullparm=bull_grdbgdas.d$cyc - out=grdbuls.tran.gdas000.${jobn} - - $HOMEgfs/ush/mkbull_ntc.sh "rtgssthr 000" $bullparm $out - export err=$?;err_chk - - msg="HAS COMPLETED NORMALLY!" - echo $msg - postmsg "$jlogfile" "$msg" -else - msg=" GDAS bulletin was not created at ${cyc}z " - postmsg "$jlogfile" "$msg" -fi diff --git a/scripts/exgempak_gfs_gif_ncdc_skew_t.sh.ecf b/scripts/exgempak_gfs_gif_ncdc_skew_t.sh.ecf deleted file mode 100755 index 2e7412935d..0000000000 --- a/scripts/exgempak_gfs_gif_ncdc_skew_t.sh.ecf +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/sh -############################################################## -# Add the NCDC GIF processing to the end of the gempak_gif job -# There is no timing issue with the NCDC GIF, so it is -# okay to just add it here. If timing becomes a problem -# in the future, we should move it above somewhere else. -############################################################## -export PS4='exgempakgif_ncdc_skewt:$SECONDS + ' -set -xa - -cd $DATA -msg="The NCDC GIF processing has begun" -postmsg "$jlogfile" "$msg" - -export NTS=$USHgempak/restore - -if [ $MODEL = GDAS -o $MODEL = GFS ] -then - case $MODEL in - GDAS) fcsthrs="00";; - GFS) fcsthrs="00 12 24 36 48";; - esac - - export fhr - for fhr in $fcsthrs - do - icnt=1 - maxtries=180 - export GRIBFILE=${COMIN}/${RUN}_${PDY}${cyc}f0${fhr} - while [ $icnt -lt 1000 ] - do - if [ -r ${COMIN}/${RUN}_${PDY}${cyc}f0${fhr} ] ; then - sleep 5 - break - else - msg="The process is waiting ... ${GRIBFILE} file to proceed." - postmsg "${jlogfile}" "$msg" - sleep 20 - let "icnt=icnt+1" - fi - if [ $icnt -ge $maxtries ] - then - msg="ABORTING: after 1 hour of waiting for ${GRIBFILE} file at F$fhr to end." - postmsg "${jlogfile}" "$msg" - export err=7 ; err_chk - exit $err - fi - done - - cp ${COMIN}/${RUN}_${PDY}${cyc}f0${fhr} gem_grids${fhr}.gem - -# if [ $cyc -eq 00 -o $cyc -eq 12 ] - #then - $USHgempak/gempak_${RUN}_f${fhr}_gif.sh - #fi - - done -fi - -#################################################################################### -echo "-----------------------------------------------------------------------------" -echo "GFS MAG postprocessing script exmag_sigman_skew_k_gfs_gif_ncdc_skew_t.sh.ecf " -echo "-----------------------------------------------------------------------------" -echo "History: Mar 2012 added to processing for enhanced MAG skew_t" -echo "2012-03-11 Mabe -- reworked script to add significant level " -echo " data to existing mandatory level data in a new file" -echo "2013-04-24 Mabe -- Reworked to remove unneeded output with " -echo " conversion to WCOSS" -# Add ms to filename to make it different since it has both mandatory -# and significant level data $COMOUT/${RUN}.${cycle}.msupperair -# $COMOUT/${RUN}.${cycle}.msupperairtble -##################################################################################### - -set -x - -cd $DATA - -export RSHPDY=`echo $PDY | cut -c5-``echo $PDY | cut -c3-4` - -cp $HOMEgfs/gempak/dictionaries/sonde.land.tbl . -cp $HOMEgfs/gempak/dictionaries/metar.tbl . -sort -k 2n,2 metar.tbl > metar_stnm.tbl -cp $COMINgfs/${model}.$cycle.adpupa.tm00.bufr_d fort.40 -export err=$? -if [[ $err -ne 0 ]] ; then - echo " File ${model}.$cycle.adpupa.tm00.bufr_d does not exist." - exit $err -fi -# $RDBFMSUA >> $pgmout 2> errfile -${UTILgfs}/exec/rdbfmsua >> $pgmout 2> errfile - -err=$?;export err ;err_chk - -export filesize=` ls -l rdbfmsua.out | awk '{print $5}' ` - -################################################################ -# only run script if rdbfmsua.out contained upper air data. -################################################################ - -if [ $filesize -gt 40 ] -then - -if [ $SENDCOM = "YES" ]; then - cp rdbfmsua.out $COMOUT/${RUN}.${cycle}.msupperair - cp sonde.idsms.tbl $COMOUT/${RUN}.${cycle}.msupperairtble - if [ $SENDDBN = "YES" ]; then - $DBNROOT/bin/dbn_alert DATA MSUPPER_AIR $job $COMOUT/${RUN}.${cycle}.msupperair - $DBNROOT/bin/dbn_alert DATA MSUPPER_AIRTBL $job $COMOUT/${RUN}.${cycle}.msupperairtble - fi -fi - -fi - -############################################################ -# GOOD RUN -set +x -echo "********** JGFS_GEMPAK_NCDC_UPAPGIF COMPLETED" -set -x -############################################################ -if [ -e "$pgmout" ] ; then - cat $pgmout -fi -msg="HAS COMPLETED NORMALLY!" - -exit diff --git a/scripts/exgfs_atmos_awips_20km_1p0deg.sh b/scripts/exgfs_atmos_awips_20km_1p0deg.sh new file mode 100755 index 0000000000..f1d69b3f59 --- /dev/null +++ b/scripts/exgfs_atmos_awips_20km_1p0deg.sh @@ -0,0 +1,266 @@ +#!/bin/ksh +############################################################################## +# UTILITY SCRIPT NAME : exgfs_awips_20km_1p0deg.sh +# DATE WRITTEN : 11/01/2017 +# +# Abstract: This utility script produces the GFS AWIPS 20km and 1.0 deg +# grids GRIB2 +# +# Input: 1 arguments are passed to this script. +# 1st argument - Forecast Hour - format of 3I (3 digits) +# +############################################################################### +echo "------------------------------------------------" +echo "JGFS_AWIPS_00/06/12/18 GFS postprocessing" +echo "------------------------------------------------" +echo "History: NOV 2017 - First implementation of this new script to " +echo " process GFS AWIPS 20km and 1.0 deg grids products " +echo " " +############################################################################### +fcsthrs="$1" +num=$# +job_name=`echo $job|sed 's/[jpt]gfs/gfs/'` + +if test "$num" -ge 1 +then + echo "" + echo " Appropriate number of arguments were passed" + echo "" +else + echo "" + echo " Number of arguments were not passed " + echo "" + echo "" + echo "Usage: $0 \$fcsthrs (3 digits) " + echo "" + exit 16 +fi + +cd $DATA + +set -x + +############################################### +# Wait for the availability of the pgrb file +############################################### +icnt=1 +while [ $icnt -lt 1000 ] +do + if [ -s $COMIN/${RUN}.${cycle}.pgrb2b.0p25.f$fcsthrs.idx ] + then + break + fi + + sleep 10 + icnt=$((icnt + 1)) + if [ $icnt -ge 180 ] + then + msg="ABORTING after 30 min of waiting for the GFS pgrb2 file!" + err_exit $msg + fi +done + +######################################## +msg="HAS BEGUN!" +postmsg "$jlogfile" "$msg" +######################################## + +echo " ------------------------------------------" +echo " BEGIN MAKING GFS AWIPS PRODUCTS" +echo " ------------------------------------------" + +set +x +echo " " +echo "#######################################" +echo " Process GRIB AWIP GRIB2 PRODUCTS " +echo "#######################################" +echo " " +set -x + +# Set type of Interpolation for WGRIB2 +export opt1=' -set_grib_type same -new_grid_winds earth ' +export opt1uv=' -set_grib_type same -new_grid_winds grid ' +export opt21=' -new_grid_interpolation bilinear -if ' +export opt22=":(CSNOW|CRAIN|CFRZR|CICEP|ICSEV):" +export opt23=' -new_grid_interpolation neighbor -fi ' +export opt24=' -set_bitmap 1 -set_grib_max_bits 16 -if ' +export opt25=":(APCP|ACPCP|PRATE|CPRAT):" +export opt26=' -set_grib_max_bits 25 -fi -if ' +export opt27=":(APCP|ACPCP|PRATE|CPRAT|DZDT):" +export opt28=' -new_grid_interpolation budget -fi ' +export TRIMRH=${TRIMRH:-$USHgfs/trim_rh.sh} +export SCALEDEC=${SCALDEC:-$USHgfs/scale_dec.sh} + +############################################################### +# Process GFS GRIB AWIP PRODUCTS IN GRIB2 # +############################################################### + +cp $COMIN/gfs.t${cyc}z.pgrb2.0p25.f${fcsthrs} tmpfile2${fcsthrs} +cp $COMIN/gfs.t${cyc}z.pgrb2b.0p25.f${fcsthrs} tmpfile2b${fcsthrs} +cat tmpfile2${fcsthrs} tmpfile2b${fcsthrs} > tmpfile${fcsthrs} +$WGRIB2 tmpfile${fcsthrs} | grep -F -f $PARMproduct/gfs_awips_parmlist_g2 | $WGRIB2 -i -grib masterfile tmpfile${fcsthrs} +export err=$? +if [[ $err -ne 0 ]] ; then + echo " FATAL ERROR: masterfile does not exist." + exit $err +fi + +$WGRIB2 masterfile -match ":PWAT:entire atmosphere" -grib gfs_pwat.grb +$WGRIB2 masterfile | grep -v ":PWAT:entire atmosphere" | $WGRIB2 -i -grib temp_gfs masterfile +################################################################## +# Process to change PWAT from level 200 to 10 (Entire Atmosphere) +# in production defintion template (PDT) 4.0 +################################################################## +$WGRIB2 gfs_pwat.grb -set_byte 4 23 10 -grib gfs_pwat_levels_10.grb +export err=$?; err_chk + +cat temp_gfs gfs_pwat_levels_10.grb > tmp_masterfile + +for GRID in conus ak prico pac 003 +do + case $GRID in + conus) + # Grid 20km_conus - CONUS - 20 km Quadruple Resolution (Lambert Conformal) + # export grid_20km_conus="30 6 0 0 0 0 0 0 369 257 12190000 226541000 8 25000000 265000000 20318000 20318000 0 64 25000000 25000000 0 0" + # $COPYGB2 -g "$grid_20km_conus" -i0 -x tmp_masterfile awps_file_f${fcsthrs}_${GRID} + + export gridconus="lambert:265.0:25.0:25.0 226.541:369:20318.0 12.19:257:20318.0" + $WGRIB2 tmp_masterfile $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $gridconus awps_file_f${fcsthrs}_${GRID} + ;; + ak) + # Grid 20km_ak - Alaska - Double Resolution (Polar Stereographic) + # Redefined grid 217 for Alaska region + # export grid_20km_ak="20 6 0 0 0 0 0 0 277 213 30000000 187000000 8 60000000 225000000 22500000 22500000 0 64" + # $COPYGB2 -g "$grid_20km_ak" -i0 -x tmp_masterfile awps_file_f${fcsthrs}_${GRID} + + export gridak="nps:210.0:60.0 170.0:277:22500 35.0:225:22500" + $WGRIB2 tmp_masterfile $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $gridak awps_file_f${fcsthrs}_${GRID} + ;; + prico) + # Grid 20km_prico - 0.25 degree Lat/Lon grid for Puerto Rico (20km) + # export grid_20km_prico="0 6 0 0 0 0 0 0 275 205 0 0 50750000 271750000 48 -250000 340250000 250000 250000 0" + # $COPYGB2 -g "$grid_20km_prico" -i0 -x tmp_masterfile awps_file_f${fcsthrs}_${GRID} + + export gridprico="latlon 271.75:275:0.25 50.75:205:-0.25" + $WGRIB2 tmp_masterfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $gridprico awps_file_f${fcsthrs}_${GRID} + ;; + pac) + # Grid 20km_pac - 20 km Mercator grid for Pacific Region + # export grid_20km_pac="10 6 0 0 0 0 0 0 837 692 -45000000 110000000 48 20000000 65720000 270000000 64 0 20000000 20000000" + # NEW export grid_20km_pac="10 6 0 0 0 0 0 0 837 725 -45000000 110000000 48 20000000 65734500 270000000 64 0 20000000 20000000" + # $COPYGB2 -g "$grid_20km_pac" -i0 -x tmp_masterfile awps_file_f${fcsthrs}_${GRID} + + export gridpac="mercator:20.0 110.0:837:20000:270.0 -45.0:725:20000:65.7345" + $WGRIB2 tmp_masterfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $gridpac awps_file_f${fcsthrs}_${GRID} + ;; + 003) + ###################################################################### + # Process GFS GRIB AWIP 1.0 DEGREE (GRID 003) PRODUCTS IN GRIB2 # + ###################################################################### + export grid003="latlon 0:360:1.0 90:181:-1.0" + $WGRIB2 tmp_masterfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $grid003 awps_file_f${fcsthrs}_${GRID} + ;; + esac + $TRIMRH awps_file_f${fcsthrs}_${GRID} + $SCALEDEC awps_file_f${fcsthrs}_${GRID} + $GRB2INDEX awps_file_f${fcsthrs}_${GRID} awps_file_fi${fcsthrs}_${GRID} + +########################################################################### +# Checking fields in awps_file_f${fcsthrs}_${GRID} file +# before TOCGRIB2 adding WMO headers for AWIPS products. +# +# NOTE: numparm is the total of fields in grib2_awpgfs_20km_conusf000 file +########################################################################### +numparm=247 +numrec=` $WGRIB2 awps_file_f${fcsthrs}_${GRID} | wc -l ` + +if [ $numrec -lt $numparm ] +then + msg="ABORTING : awps_file_f${fcsthrs}_${GRID} file is missing fields for AWIPS !" + err_exit $msg +fi + +# Processing AWIPS GRIB2 grids with WMO headers + + pgm=tocgrib2 + export pgm; prep_step + startmsg + + if [ $GRID = "003" -a `expr ${fcsthrs} % 6` -eq 0 ] ; then + export FORT11=awps_file_f${fcsthrs}_${GRID} + export FORT31=awps_file_fi${fcsthrs}_${GRID} + export FORT51=grib2.awpgfs${fcsthrs}.${GRID} + + $TOCGRIB2 < $PARMwmo/grib2_awpgfs${fcsthrs}.${GRID} >> $pgmout 2> errfile + export err=$?; err_chk + echo " error from tocgrib2=",$err + + if [ $SENDCOM = "YES" ] ; then + ############################## + # Post Files to ${COMOUTwmo} + ############################## + + mv grib2.awpgfs${fcsthrs}.${GRID} ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} + + ############################## + # Distribute Data + ############################## + + if [ "$SENDDBN" = 'YES' -o "$SENDAWIP" = 'YES' ] ; then + $DBNROOT/bin/dbn_alert NTC_LOW $NET $job ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} + else + msg="File ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} not posted to db_net." + postmsg "$jlogfile" "$msg" + fi + fi + elif [ $GRID != "003" ] ; then + export FORT11=awps_file_f${fcsthrs}_${GRID} + export FORT31=awps_file_fi${fcsthrs}_${GRID} + export FORT51=grib2.awpgfs_20km_${GRID}_f${fcsthrs} + + $TOCGRIB2 < $PARMwmo/grib2_awpgfs_20km_${GRID}f${fcsthrs} >> $pgmout 2> errfile + export err=$? ;err_chk + echo " error from tocgrib2=",$err + + if [ $SENDCOM = "YES" ] ; then + + ############################## + # Post Files to ${COMOUTwmo} + ############################## + + mv grib2.awpgfs_20km_${GRID}_f${fcsthrs} ${COMOUTwmo}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.$job_name + + ############################## + # Distribute Data + ############################## + + if [ "$SENDDBN" = 'YES' -o "$SENDAWIP" = 'YES' ] ; then + $DBNROOT/bin/dbn_alert NTC_LOW $NET $job ${COMOUTwmo}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.$job_name + else + msg="File ${COMOUTwmo}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.$job_name not posted to db_net." + postmsg "$jlogfile" "$msg" + fi + fi + fi + msg="Awip Processing ${fcsthrs} hour completed normally" + postmsg "$jlogfile" "$msg" + +done + +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +############################################################################################ +# GOOD RUN +set +x +echo "**************JOB EXGFS_AWIPS_20KM_1P0DEG.SH.ECF COMPLETED NORMALLY ON THE WCOSS" +echo "**************JOB EXGFS_AWIPS_20KM_1P0DEG.SH.ECF COMPLETED NORMALLY ON THE WCOSS" +echo "**************JOB EXGFS_AWIPS_20KM_1P0DEG.SH.ECF COMPLETED NORMALLY ON THE WCOSS" +set -x +############################################################################################ + +msg="HAS COMPLETED NORMALLY!" +postmsg "$jlogfile" "$msg" + +############## END OF SCRIPT ####################### diff --git a/scripts/exgfs_atmos_fbwind.sh b/scripts/exgfs_atmos_fbwind.sh new file mode 100755 index 0000000000..81191fe816 --- /dev/null +++ b/scripts/exgfs_atmos_fbwind.sh @@ -0,0 +1,116 @@ +#!/bin/ksh +echo "------------------------------------------------" +echo "JGFS_BULLS - 24hr GFS processing" +echo "------------------------------------------------" +echo "History: Jul 2004 - First implementation of this new script." +echo " FBWNDGFS (FB Winds) program for 15 sites outside" +echo " the Hawaiian Islands." +echo " Feb 2006 - L Sager Send bulletins to TOC via NTC. " +echo " Jul 2014 - B Vuong Modified to use GFS master GRIB2" +echo " and Add bulletins WINTEMV process." +echo " Sep 2016 - B Vuong Modified to use GFS 0p25 deg GRIB2" +echo " Nov 2019 - B Vuong Removed WINTEMV bulletin (retired)" +##################################################################### + +cd $DATA + +###################### +# Set up Here Files. +###################### + +set -x +msg="Begin job for $job" +postmsg "$jlogfile" "$msg" + +job_name=`echo $job|sed 's/[jpt]gfs/gfs/'` + +set +x +echo " " +echo "#############################################################" +echo " Process Bulletins of forecast winds and temps for Hawaii " +echo " and 15 sites outside of the Hawaiian Islands. " +echo "#############################################################" +echo " " +set -x + +export pgm=bulls_fbwndgfs +. prep_step + +for fhr in 006 012 024 +do + + cp $COMIN/gfs.${cycle}.pgrb2.0p25.f${fhr} tmp_pgrb2_0p25${fhr} + cp $COMIN/gfs.${cycle}.pgrb2b.0p25.f${fhr} tmp_pgrb2b_0p25${fhr} + cat tmp_pgrb2_0p25${fhr} tmp_pgrb2b_0p25${fhr} > tmp0p25filef${fhr} + $WGRIB2 tmp0p25filef${fhr} | grep -F -f $PARMproduct/gfs_fbwnd_parmlist_g2 | $WGRIB2 -i -grib tmpfilef${fhr} tmp0p25filef${fhr} + $CNVGRIB -g21 tmpfilef${fhr} tmpfilef${fhr}.grib1 + $GRBINDEX tmpfilef${fhr}.grib1 tmpfilef${fhr}.grib1i + mv tmpfilef${fhr}.grib1 gfs.t${cyc}z.grbf${fhr}_grb1 + mv tmpfilef${fhr}.grib1i gfs.t${cyc}z.grbif${fhr}_grb1 + +done + +export FORT11="gfs.t${cyc}z.grbf006_grb1" +export FORT12="gfs.t${cyc}z.grbf012_grb1" +export FORT13="gfs.t${cyc}z.grbf024_grb1" + +# GFS grib index files + +export FORT31="gfs.t${cyc}z.grbif006_grb1" +export FORT32="gfs.t${cyc}z.grbif012_grb1" +export FORT33="gfs.t${cyc}z.grbif024_grb1" + +# +# 1280 byte transmission file +# + +export FORT51="tran.fbwnd_pacific" + +startmsg + +$EXECgfs/fbwndgfs < $PARMproduct/fbwnd_pacific.stnlist >> $pgmout 2> errfile +export err=$?; err_chk + +if test "$SENDCOM" = 'YES' +then + cp tran.fbwnd_pacific ${COMOUTwmo}/tran.fbwnd_pacific.$job_name +fi + +if test "$SENDDBN" = 'YES' +then +# make_ntc_bull.pl WMOBH NONE KWNO NONE tran.fbwnd_pacific ${COMOUTwmo}/tran.fbwnd_pacific.$job_name + ${UTILgfs}/ush/make_ntc_bull.pl WMOBH NONE KWNO NONE tran.fbwnd_pacific ${COMOUTwmo}/tran.fbwnd_pacific.$job_name +fi + +# +# EMC is proposing to retire WINTEMV bulletin in GFS v16.0 +# + +# if test ${cycle} = 't00z' -o ${cycle} = 't12z' +# then +# +# set +x +# echo " " +# echo "#################################################" +# echo " Process 06, 12, 18 and 24 fcsthrs WINTEM Bulletins. " +# echo "#################################################" +# echo " " +# set -x +# sh $USHgfs/mkwintem.sh +# +#fi + +##################################################################### +# GOOD RUN +set +x +echo "**************JOB JGFS_FBWIND COMPLETED NORMALLY ON IBM-SP" +echo "**************JOB JGFS_FBWIND COMPLETED NORMALLY ON IBM-SP" +echo "**************JOB JGFS_FBWIND COMPLETED NORMALLY ON IBM-SP" +set -x +##################################################################### + +msg='Job completed normally.' +echo $msg +postmsg "$jlogfile" "$msg" + +############################### END OF SCRIPT ####################### diff --git a/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh b/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh new file mode 100755 index 0000000000..0137bce407 --- /dev/null +++ b/scripts/exgfs_atmos_gempak_gif_ncdc_skew_t.sh @@ -0,0 +1,125 @@ +#!/bin/sh +############################################################## +# Add the NCDC GIF processing to the end of the gempak_gif job +# There is no timing issue with the NCDC GIF, so it is +# okay to just add it here. If timing becomes a problem +# in the future, we should move it above somewhere else. +############################################################## +export PS4='exgempakgif_ncdc_skewt:$SECONDS + ' +set -xa + +cd $DATA +msg="The NCDC GIF processing has begun" +postmsg "$jlogfile" "$msg" + +export NTS=$USHgempak/restore + +if [ $MODEL = GDAS -o $MODEL = GFS ] +then + case $MODEL in + GDAS) fcsthrs="00";; + GFS) fcsthrs="00 12 24 36 48";; + esac + + export fhr + for fhr in $fcsthrs + do + icnt=1 + maxtries=180 + export GRIBFILE=${COMIN}/${RUN}_${PDY}${cyc}f0${fhr} + while [ $icnt -lt 1000 ] + do + if [ -r ${COMIN}/${RUN}_${PDY}${cyc}f0${fhr} ] ; then + sleep 5 + break + else + msg="The process is waiting ... ${GRIBFILE} file to proceed." + postmsg "${jlogfile}" "$msg" + sleep 20 + let "icnt=icnt+1" + fi + if [ $icnt -ge $maxtries ] + then + msg="ABORTING: after 1 hour of waiting for ${GRIBFILE} file at F$fhr to end." + postmsg "${jlogfile}" "$msg" + export err=7 ; err_chk + exit $err + fi + done + + cp ${COMIN}/${RUN}_${PDY}${cyc}f0${fhr} gem_grids${fhr}.gem + +# if [ $cyc -eq 00 -o $cyc -eq 12 ] + #then + $USHgempak/gempak_${RUN}_f${fhr}_gif.sh + #fi + + done +fi + +#################################################################################### +echo "-----------------------------------------------------------------------------" +echo "GFS MAG postprocessing script exmag_sigman_skew_k_gfs_gif_ncdc_skew_t.sh " +echo "-----------------------------------------------------------------------------" +echo "History: Mar 2012 added to processing for enhanced MAG skew_t" +echo "2012-03-11 Mabe -- reworked script to add significant level " +echo " data to existing mandatory level data in a new file" +echo "2013-04-24 Mabe -- Reworked to remove unneeded output with " +echo " conversion to WCOSS" +# Add ms to filename to make it different since it has both mandatory +# and significant level data $COMOUT/${RUN}.${cycle}.msupperair +# $COMOUT/${RUN}.${cycle}.msupperairtble +##################################################################################### + +set -x + +cd $DATA + +export RSHPDY=`echo $PDY | cut -c5-``echo $PDY | cut -c3-4` + +cp $HOMEgfs/gempak/dictionaries/sonde.land.tbl . +cp $HOMEgfs/gempak/dictionaries/metar.tbl . +sort -k 2n,2 metar.tbl > metar_stnm.tbl +cp $COMINgfs/${model}.$cycle.adpupa.tm00.bufr_d fort.40 +export err=$? +if [[ $err -ne 0 ]] ; then + echo " File ${model}.$cycle.adpupa.tm00.bufr_d does not exist." + exit $err +fi +# $RDBFMSUA >> $pgmout 2> errfile +${UTILgfs}/exec/rdbfmsua >> $pgmout 2> errfile + +err=$?;export err ;err_chk + +export filesize=` ls -l rdbfmsua.out | awk '{print $5}' ` + +################################################################ +# only run script if rdbfmsua.out contained upper air data. +################################################################ + +if [ $filesize -gt 40 ] +then + +if [ $SENDCOM = "YES" ]; then + cp rdbfmsua.out $COMOUT/${RUN}.${cycle}.msupperair + cp sonde.idsms.tbl $COMOUT/${RUN}.${cycle}.msupperairtble + if [ $SENDDBN = "YES" ]; then + $DBNROOT/bin/dbn_alert DATA MSUPPER_AIR $job $COMOUT/${RUN}.${cycle}.msupperair + $DBNROOT/bin/dbn_alert DATA MSUPPER_AIRTBL $job $COMOUT/${RUN}.${cycle}.msupperairtble + fi +fi + +fi + +############################################################ +# GOOD RUN +set +x +echo "********** JGFS_ATMOS_GEMPAK_NCDC_UPAPGIF COMPLETED" +set -x +############################################################ +if [ -e "$pgmout" ] ; then + cat $pgmout +fi +msg="HAS COMPLETED NORMALLY!" + +exit diff --git a/scripts/exgfs_gempak_meta.sh.ecf b/scripts/exgfs_atmos_gempak_meta.sh similarity index 100% rename from scripts/exgfs_gempak_meta.sh.ecf rename to scripts/exgfs_atmos_gempak_meta.sh diff --git a/scripts/exgfs_atmos_goes_nawips.sh b/scripts/exgfs_atmos_goes_nawips.sh new file mode 100755 index 0000000000..af97d4074b --- /dev/null +++ b/scripts/exgfs_atmos_goes_nawips.sh @@ -0,0 +1,142 @@ +#!/bin/ksh +################################################################### +echo "----------------------------------------------------" +echo "exnawips - convert NCEP GRIB files into GEMPAK Grids" +echo "----------------------------------------------------" +echo "History: Mar 2000 - First implementation of this new script." +echo "S Lilly: May 2008 - add logic to make sure that all of the " +echo " data produced from the restricted ECMWF" +echo " data on the CCS is properly protected." +echo "C. Magee: 10/2013 - swap X and Y for rtgssthr Atl and Pac." +##################################################################### + +set -xa + +cd $DATA + +cp $FIXgempak/g2varswmo2.tbl g2varswmo2.tbl +cp $FIXgempak/g2vcrdwmo2.tbl g2vcrdwmo2.tbl +cp $FIXgempak/g2varsncep1.tbl g2varsncep1.tbl +cp $FIXgempak/g2vcrdncep1.tbl g2vcrdncep1.tbl + +msg="Begin job for $job" +postmsg "$jlogfile" "$msg" + +# +# NAGRIB_TABLE=$FIXgempak/nagrib.tbl +NAGRIB=$GEMEXE/nagrib2 +# + +entry=`grep "^$RUN " $NAGRIB_TABLE | awk 'index($1,"#") != 1 {print $0}'` + +if [ "$entry" != "" ] ; then + cpyfil=`echo $entry | awk 'BEGIN {FS="|"} {print $2}'` + garea=`echo $entry | awk 'BEGIN {FS="|"} {print $3}'` + gbtbls=`echo $entry | awk 'BEGIN {FS="|"} {print $4}'` + maxgrd=`echo $entry | awk 'BEGIN {FS="|"} {print $5}'` + kxky=`echo $entry | awk 'BEGIN {FS="|"} {print $6}'` + grdarea=`echo $entry | awk 'BEGIN {FS="|"} {print $7}'` + proj=`echo $entry | awk 'BEGIN {FS="|"} {print $8}'` + output=`echo $entry | awk 'BEGIN {FS="|"} {print $9}'` +else + cpyfil=gds + garea=dset + gbtbls= + maxgrd=4999 + kxky= + grdarea= + proj= + output=T +fi +pdsext=no + +maxtries=180 +fhcnt=$fstart +while [ $fhcnt -le $fend ] ; do +# if [ $fhcnt -ge 100 ] ; then + typeset -Z3 fhr +# else +# typeset -Z2 fhr +# fi + fhr=$fhcnt + fhcnt3=`expr $fhr % 3` + + fhr3=$fhcnt + typeset -Z3 fhr3 + GRIBIN=$COMIN/${model}.${cycle}.${GRIB}${fhr}${EXT} + GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} + + GRIBIN_chk=$GRIBIN + + icnt=1 + while [ $icnt -lt 1000 ] + do + if [ -r $GRIBIN_chk ] ; then + break + else + sleep 20 + let "icnt=icnt+1" + fi + if [ $icnt -ge $maxtries ] + then + msg="ABORTING after 1 hour of waiting for F$fhr to end." + postmsg "${jlogfile}" "$msg" + export err=7 ; err_chk + exit $err + fi + done + + cp $GRIBIN grib$fhr + + export pgm="nagrib_nc F$fhr" + startmsg + + $NAGRIB << EOF + GBFILE = grib$fhr + INDXFL = + GDOUTF = $GEMGRD + PROJ = $proj + GRDAREA = $grdarea + KXKY = $kxky + MAXGRD = $maxgrd + CPYFIL = $cpyfil + GAREA = $garea + OUTPUT = $output + GBTBLS = $gbtbls + GBDIAG = + PDSEXT = $pdsext + l + r +EOF + export err=$?;err_chk + + $GEMEXE/gpend + + if [ $SENDCOM = "YES" ] ; then + cp $GEMGRD $COMOUT/.$GEMGRD + mv $COMOUT/.$GEMGRD $COMOUT/$GEMGRD + if [ $SENDDBN = "YES" ] ; then + $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \ + $COMOUT/$GEMGRD + else + echo "##### DBN_ALERT_TYPE is: ${DBN_ALERT_TYPE} #####" + fi + fi + + let fhcnt=fhcnt+finc +done + +##################################################################### +# GOOD RUN +set +x +echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" +echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" +echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" +set -x +##################################################################### + +msg='Job completed normally.' +echo $msg +postmsg "$jlogfile" "$msg" + +############################### END OF SCRIPT ####################### diff --git a/scripts/exgfs_atmos_grib2_special_npoess.sh b/scripts/exgfs_atmos_grib2_special_npoess.sh new file mode 100755 index 0000000000..74a570c38a --- /dev/null +++ b/scripts/exgfs_atmos_grib2_special_npoess.sh @@ -0,0 +1,220 @@ +#!/bin/ksh +##################################################################### +echo "-----------------------------------------------------" +echo " exglobal_grib2_special_npoess.sh" +echo " Jan 2008 - Chuang - Produces 1x1 degree special Grib from master." +echo "-----------------------------------------------------" +##################################################################### + +set -x + +cd $DATA + +msg="HAS BEGUN on `hostname`" +postmsg "$jlogfile" "$msg" + +############################################################ +# Define Variables: +# ----------------- +# SHOUR is the starting forecast hour. normally 0 except for restarts. +# FHOUR is the ending forecast hour. +# FHINC is the increment hour for each forecast steps. +# FH is the current forecast hour. +# SLEEP_TIME is the number of seconds to sleep before exiting with error. +# SLEEP_INT is the number of seconds to sleep between restrt file checks. +# restart_file is the name of the file to key off of to kick off pgrb +# generation. +############################################################ + +############################################################ +# NO processing Analysis special Files +############################################################ + +# Set type of Interpolation for WGRIB2 +export opt1=' -set_grib_type same -new_grid_winds earth ' +export opt1uv=' -set_grib_type same -new_grid_winds grid ' +export opt21=' -new_grid_interpolation bilinear -if ' +export opt22=":(CSNOW|CRAIN|CFRZR|CICEP|ICSEV):" +export opt23=' -new_grid_interpolation neighbor -fi ' +export opt24=' -set_bitmap 1 -set_grib_max_bits 16 -if ' +export opt25=":(APCP|ACPCP|PRATE|CPRAT):" +export opt26=' -set_grib_max_bits 25 -fi -if ' +export opt27=":(APCP|ACPCP|PRATE|CPRAT|DZDT):" +export opt28=' -new_grid_interpolation budget -fi ' + +SLEEP_LOOP_MAX=`expr $SLEEP_TIME / $SLEEP_INT` + +############################################################################## +# Specify Forecast Hour Range F000 - F024 for GFS_NPOESS_PGRB2_0P5DEG +############################################################################## +export SHOUR=000 +export FHOUR=024 +export fhr=$SHOUR +typeset -Z3 fhr +############################################################ +# Loop Through the Post Forecast Files +############################################################ +while test $fhr -le $FHOUR +do + + ############################### + # Start Looping for the + # existence of the restart files + ############################### + export pgm="postcheck" + ic=1 + while [ $ic -le $SLEEP_LOOP_MAX ] + do + if test -f $COMIN/gfs.t${cyc}z.pgrb2b.0p50.f${fhr}.idx + then + break + else + ic=`expr $ic + 1` + sleep $SLEEP_INT + fi + ############################### + # If we reach this point assume + # fcst job never reached restart + # period and error exit + ############################### + if [ $ic -eq $SLEEP_LOOP_MAX ] + then + export err=9 + err_chk + fi + done + +###################################################################### +# Process Global NPOESS 0.50 GFS GRID PRODUCTS IN GRIB2 F000 - F024 # +###################################################################### + set -x + msg="Starting half degree grib generation for fhr=$fhr" + postmsg "$jlogfile" "$msg" + + paramlist=${PARMproduct}/global_npoess_paramlist_g2 + cp $COMIN/gfs.t${cyc}z.pgrb2.0p50.f${fhr} tmpfile2 + cp $COMIN/gfs.t${cyc}z.pgrb2b.0p50.f${fhr} tmpfile2b + cat tmpfile2 tmpfile2b > tmpfile + $WGRIB2 tmpfile | grep -F -f $paramlist | $WGRIB2 -i -grib pgb2file tmpfile + export err=$?; err_chk + + if test $SENDCOM = "YES" + then + cp pgb2file $COMOUT/${RUN}.${cycle}.pgrb2f${fhr}.npoess + + if test $SENDDBN = "YES" + then + $DBNROOT/bin/dbn_alert MODEL GFS_PGBNPOESS $job $COMOUT/${RUN}.${cycle}.pgrb2f${fhr}.npoess + else + msg="File ${RUN}.${cycle}.pgrb2f${fhr}.npoess not posted to db_net." + postmsg "$msg" + fi + echo "$PDY$cyc$fhr" > $COMOUT/${RUN}.t${cyc}z.control.halfdeg.npoess + fi + rm tmpfile pgb2file + export fhr=`expr $fhr + $FHINC` + typeset -Z3 fhr + +done + +################################################################ +# Specify Forecast Hour Range F000 - F180 for GOESSIMPGRB files +################################################################ +export SHOUR=000 +export FHOUR=180 +export fhr=$SHOUR +typeset -Z3 fhr + +################################# +# Process GFS PGRB2_SPECIAL_POST +################################# + +while test $fhr -le $FHOUR +do + ############################### + # Start Looping for the + # existence of the restart files + ############################### + set +x + export pgm="postcheck" + ic=1 + while [ $ic -le $SLEEP_LOOP_MAX ] + do + if test -f $restart_file$fhr + then + break + else + ic=`expr $ic + 1` + sleep $SLEEP_INT + fi + ############################### + # If we reach this point assume + # fcst job never reached restart + # period and error exit + ############################### + if [ $ic -eq $SLEEP_LOOP_MAX ] + then + export err=9 + err_chk + fi + done + set -x + + msg="Starting special grib file generation for fhr=$fhr" + postmsg "$jlogfile" "$msg" + + ############################### + # Put restart files into /nwges + # for backup to start Model Fcst + ############################### + + cp $COMIN/${RUN}.t${cyc}z.special.grb2f$fhr masterfile + +# $COPYGB2 -g "0 6 0 0 0 0 0 0 360 181 0 0 90000000 0 48 -90000000 359000000 1000000 1000000 0" -i1,1 -x masterfile pgb2file + +# export grid1p0="latlon 0:360:1.0 90:181:-1.0" + export grid0p25="latlon 0:1440:0.25 90:721:-0.25" + $WGRIB2 masterfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $grid0p25 pgb2file + +# creating higher resolution goes files for US centers +# $COPYGB2 -g "30 6 0 0 0 0 0 0 349 277 1000000 214500000 8 50000000 253000000 32463000 32463000 0 64 50000000 50000000 0 0" -i1,1 -x masterfile pgb2file2 + + export gridconus="lambert:253.0:50.0:50.0 214.5:349:32463.0 1.0:277:32463.0" + $WGRIB2 masterfile $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $gridconus pgb2file2 + + $WGRIB2 pgb2file -s > pgb2ifile + + if test $SENDCOM = "YES" + then + + cp pgb2file $COMOUT/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr} + cp pgb2ifile $COMOUT/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr}.idx + + cp pgb2file2 $COMOUT/${RUN}.${cycle}.goessimpgrb2f${fhr}.grd221 + + if test $SENDDBN = "YES" + then + $DBNROOT/bin/dbn_alert MODEL GFS_GOESSIMPGB2_0P25 $job $COMOUT/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr} + $DBNROOT/bin/dbn_alert MODEL GFS_GOESSIMPGB2_0P25_WIDX $job $COMOUT/${RUN}.${cycle}.goessimpgrb2.0p25.f${fhr}.idx + $DBNROOT/bin/dbn_alert MODEL GFS_GOESSIMGRD221_PGB2 $job $COMOUT/${RUN}.${cycle}.goessimpgrb2f${fhr}.grd221 + fi + + echo "$PDY$cyc$fhr" > $COMOUT/${RUN}.t${cyc}z.control.goessimpgrb + fi + rm pgb2file2 pgb2ifile + + if test "$SENDECF" = 'YES' + then + export fhour=`expr ${fhr} % 6 ` + fi + + export fhr=`expr $fhr + $FHINC` + typeset -Z3 fhr +done + +######################################################## + +msg='ENDED NORMALLY.' +postmsg "$jlogfile" "$msg" + +################## END OF SCRIPT ####################### diff --git a/scripts/exgfs_atmos_grib_awips.sh b/scripts/exgfs_atmos_grib_awips.sh new file mode 100755 index 0000000000..669598f313 --- /dev/null +++ b/scripts/exgfs_atmos_grib_awips.sh @@ -0,0 +1,164 @@ +#!/bin/ksh +###################################################################### +# UTILITY SCRIPT NAME : exgfs_grib_awips.sh +# DATE WRITTEN : 10/04/2004 +# +# Abstract: This utility script produces the GFS AWIPS GRIB +# +# Input: 1 arguments are passed to this script. +# 1st argument - Forecast Hour - format of 2I +# +##################################################################### +echo "------------------------------------------------" +echo "JGFS_AWIPS_00/06/12/18 GFS postprocessing" +echo "------------------------------------------------" +echo "History: OCT 2004 - First implementation of this new script." +echo " JUN 2014 - Modified to remove process for AWIPS in GRIB2" +echo " to script exgfs_grib_awips_g2.sh and this " +echo " script only process AWIPS GRIB1 (211 and 225)" +echo " AUG 2015 - Modified for WCOSS phase2" +echo " FEB 2019 - Removed grid 225" +##################################################################### +set +x +fcsthrs="$1" +num=$# +job_name=`echo $job|sed 's/[jpt]gfs/gfs/'` + +typeset -Z3 fcsthrs + +export PS4='gfs_grib_awips:f$fcsthrs:$SECONDS + ' +export SCALEDEC=${SCALDEC:-$USHgfs/scale_dec.sh} + +#if [ $fhcsthrs -t 100 ]; then +# fcsthrs=0$fcsthrs +#fi +if test "$num" -ge 1 +then + echo "" + echo " Appropriate number of arguments were passed" + echo "" +else + echo "" + echo " FATAL ERROR: Number of arguments were not passed." + echo "" + echo "" + echo "Usage: $0 \$fcsthrs (3-digit) " + echo "" + exit 16 +fi + +cd $DATA/awips_g1 + +set -x + +############################################### +# Wait for the availability of the pgrb file +############################################### +icnt=1 +while [ $icnt -lt 1000 ] +do + if [ -s $COMIN/${RUN}.${cycle}.pgrb2b.0p25.f${fcsthrs}.idx ] + then + break + fi + + sleep 10 + icnt=$((icnt + 1)) + if [ $icnt -ge 180 ] + then + msg="ABORTING after 30 min of waiting for the pgrb file!" + err_exit $msg + fi +done + +######################################## +msg="HAS BEGUN!" +postmsg "$jlogfile" "$msg" +######################################## + +echo " ------------------------------------------" +echo " BEGIN MAKING GFS GRIB1 AWIPS PRODUCTS" +echo " ------------------------------------------" + +set +x +echo " " +echo "###############################################" +echo " Process GFS GRIB1 AWIP PRODUCTS (211) " +echo "###############################################" +echo " " +set -x + + cp $COMIN/gfs.t${cyc}z.pgrb2.0p25.f${fcsthrs} tmpfile2 + cp $COMIN/gfs.t${cyc}z.pgrb2b.0p25.f${fcsthrs} tmpfile2b + cat tmpfile2 tmpfile2b > tmpfile + $WGRIB2 tmpfile | grep -F -f $PARMproduct/gfs_awips_parmlist_g2 | $WGRIB2 -i -grib masterfile tmpfile + $SCALEDEC masterfile + $CNVGRIB -g21 masterfile masterfile.grib1 + + ln -s masterfile.grib1 fort.11 + +# $OVERGRIDID << EOF + ${UTILgfs}/exec/overgridid << EOF +255 +EOF + + mv fort.51 master.grbf${fcsthrs} + rm fort.11 + + $GRBINDEX master.grbf${fcsthrs} master.grbif${fcsthrs} + +############################################################### +# Process GFS GRIB1 AWIP GRIDS 211 PRODUCTS +############################################################### + + executable=mkgfsawps + DBNALERT_TYPE=GRIB_LOW + + startmsg + +# GRID=211 out to 240 hours: + + export GRID=211 + export FORT11=master.grbf${fcsthrs} + export FORT31=master.grbif${fcsthrs} + export FORT51=xtrn.awpgfs${fcsthrs}.${GRID} +# $MKGFSAWPS < $PARMwmo/grib_awpgfs${fcsthrs}.${GRID} parm=KWBC >> $pgmout 2>errfile + ${UTILgfs}/exec/mkgfsawps < $PARMwmo/grib_awpgfs${fcsthrs}.${GRID} parm=KWBC >> $pgmout 2>errfile + export err=$?; err_chk + ############################## + # Post Files to ${COMOUTwmo} + ############################## + + if test "$SENDCOM" = 'YES' + then + cp xtrn.awpgfs${fcsthrs}.${GRID} ${COMOUTwmo}/xtrn.awpgfs${fcsthrs}.${GRID}.$job_name + + ############################## + # Distribute Data + ############################## + + if [ "$SENDDBN" = 'YES' -o "$SENDAWIP" = 'YES' ] ; then + $DBNROOT/bin/dbn_alert $DBNALERT_TYPE $NET $job ${COMOUTwmo}/xtrn.awpgfs${fcsthrs}.${GRID}.$job_name + else + msg="File $output_grb.$job_name not posted to db_net." + postmsg "$jlogfile" "$msg" + fi + fi + +if [ -e "$pgmout" ] ; then + cat $pgmout +fi + +############################################################################### +# GOOD RUN +set +x +echo "**************JOB EXGFS_GRIB_AWIPS.SH.ECF COMPLETED NORMALLY ON THE IBM" +echo "**************JOB EXGFS_GRIB_AWIPS.SH.ECF COMPLETED NORMALLY ON THE IBM" +echo "**************JOB EXGFS_GRIB_AWIPS.SH.ECF COMPLETED NORMALLY ON THE IBM" +set -x +############################################################################### + +msg="HAS COMPLETED NORMALLY!" +postmsg "$jlogfile" "$msg" + +############## END OF SCRIPT ####################### diff --git a/scripts/exgfs_atmos_nawips.sh b/scripts/exgfs_atmos_nawips.sh new file mode 100755 index 0000000000..bb6d83c45d --- /dev/null +++ b/scripts/exgfs_atmos_nawips.sh @@ -0,0 +1,204 @@ +#!/bin/ksh +################################################################### +echo "----------------------------------------------------" +echo "exnawips - convert NCEP GRIB files into GEMPAK Grids" +echo "----------------------------------------------------" +echo "History: Mar 2000 - First implementation of this new script." +echo "S Lilly: May 2008 - add logic to make sure that all of the " +echo " data produced from the restricted ECMWF" +echo " data on the CCS is properly protected." +##################################################################### + +set -xa + +#### If EMC GFS PARA runs hourly file are not available, The ILPOST +#### will set to 3 hour in EMC GFS PARA. +#### Note: ILPOST default set to 1 +export ILPOST=${ILPOST:-1} + +cd $DATA +RUN=$1 +fend=$2 +DBN_ALERT_TYPE=$3 + +export 'PS4=$RUN:$SECONDS + ' + +DATA_RUN=$DATA/$RUN +mkdir -p $DATA_RUN +cd $DATA_RUN + +msg="Begin job for $job" +postmsg "$jlogfile" "$msg" + + +# +NAGRIB=$GEMEXE/nagrib2_nc +# + +cpyfil=gds +garea=dset +gbtbls= +maxgrd=4999 +kxky= +grdarea= +proj= +output=T +pdsext=no + +maxtries=360 +fhcnt=$fstart +while [ $fhcnt -le $fend ] ; do + +if mkdir lock.$fhcnt ; then + cd lock.$fhcnt + cp $FIXgempak/g2varswmo2.tbl g2varswmo2.tbl + cp $FIXgempak/g2vcrdwmo2.tbl g2vcrdwmo2.tbl + cp $FIXgempak/g2varsncep1.tbl g2varsncep1.tbl + cp $FIXgempak/g2vcrdncep1.tbl g2vcrdncep1.tbl + + typeset -Z3 fhr + + fhr=$fhcnt + fhcnt3=`expr $fhr % 3` + + fhr3=$fhcnt + typeset -Z3 fhr3 + + GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} + +# Set type of Interpolation for WGRIB2 + export opt1=' -set_grib_type same -new_grid_winds earth ' + export opt1uv=' -set_grib_type same -new_grid_winds grid ' + export opt21=' -new_grid_interpolation bilinear -if ' + export opt22=":(CSNOW|CRAIN|CFRZR|CICEP|ICSEV):" + export opt23=' -new_grid_interpolation neighbor -fi ' + export opt24=' -set_bitmap 1 -set_grib_max_bits 16 -if ' + export opt25=":(APCP|ACPCP|PRATE|CPRAT):" + export opt26=' -set_grib_max_bits 25 -fi -if ' + export opt27=":(APCP|ACPCP|PRATE|CPRAT|DZDT):" + export opt28=' -new_grid_interpolation budget -fi ' + export TRIMRH=$HOMEgfs/ush/trim_rh.sh + + if [ $RUN = "gfs_0p50" ]; then + export GRIBIN=$COMIN/${model}.${cycle}.pgrb2.0p50.f${fhr} + GRIBIN_chk=$COMIN/${model}.${cycle}.pgrb2.0p50.f${fhr}.idx + elif [ $RUN = "gfs_0p25" -o $RUN = "gdas_0p25" -o $RUN = "gfs35_atl" -o $RUN = "gfs35_pac" -o $RUN = "gfs40" ]; then + export GRIBIN=$COMIN/${model}.${cycle}.pgrb2.0p25.f${fhr} + GRIBIN_chk=$COMIN/${model}.${cycle}.pgrb2.0p25.f${fhr}.idx + else + export GRIBIN=$COMIN/${model}.${cycle}.pgrb2.1p00.f${fhr} + GRIBIN_chk=$COMIN/${model}.${cycle}.pgrb2.1p00.f${fhr}.idx + fi + + icnt=1 + while [ $icnt -lt 1000 ] + do + if [ -r $GRIBIN_chk ] ; then + sleep 5 + break + else + msg="The process is waiting ... ${GRIBIN_chk} file to proceed." + postmsg "${jlogfile}" "$msg" + sleep 10 + let "icnt=icnt+1" + fi + if [ $icnt -ge $maxtries ] + then + msg="ABORTING: after 1 hour of waiting for ${GRIBIN_chk} file at F$fhr to end." + postmsg "${jlogfile}" "$msg" + export err=7 ; err_chk + exit $err + fi + done + +case $RUN in + gfs35_pac) +# $COPYGB2 -g "0 6 0 0 0 0 0 0 416 186 0 0 75125000 130000000 48 17000000 260000000 312000 312000 0" -x $GRIBIN grib$fhr +# NEW define gfs35_pac="0 6 0 0 0 0 0 0 416 186 0 -1 75125000 130000000 48 17405000 259480000 312000 312000 0" +# $COPYGB2 -g "0 6 0 0 0 0 0 0 416 186 0 -1 75125000 130000000 48 17405000 259480000 312000 312000 0" -x $GRIBIN grib$fhr + + export gfs35_pac='latlon 130.0:416:0.312 75.125:186:-0.312' + $WGRIB2 $GRIBIN $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid ${gfs35_pac} grib$fhr + $TRIMRH grib$fhr + ;; + gfs35_atl) +# $COPYGB2 -g "0 6 0 0 0 0 0 0 480 242 0 0 75125000 230000000 48 -500000 20000000 312000 312000 0" -x $GRIBIN grib$fhr +# NEW define gfs35_atl="0 6 0 0 0 0 0 0 480 242 0 -1 75125000 230000000 48 -67000 19448000 312000 312000 0" +# $COPYGB2 -g "0 6 0 0 0 0 0 0 480 242 0 -1 75125000 230000000 48 -67000 19448000 312000 312000 0" -x $GRIBIN grib$fhr + + export gfs35_atl='latlon 230.0:480:0.312 75.125:242:-0.312' + $WGRIB2 $GRIBIN $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid ${gfs35_atl} grib$fhr + $TRIMRH grib$fhr + ;; + gfs40) +# $COPYGB2 -g "30 6 0 0 0 0 0 0 185 129 12190000 226541000 8 25000000 265000000 40635000 40635000 0 64 25000000 25000000 0 0" -x $GRIBIN grib$fhr + + export gfs40='lambert:265.0:25.0:25.0 226.541:185:40635.0 12.19:129:40635.0' + $WGRIB2 $GRIBIN $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid ${gfs40} grib$fhr + $TRIMRH grib$fhr + ;; + *) + cp $GRIBIN grib$fhr +esac + + export pgm="nagrib2 F$fhr" + startmsg + + $NAGRIB << EOF + GBFILE = grib$fhr + INDXFL = + GDOUTF = $GEMGRD + PROJ = $proj + GRDAREA = $grdarea + KXKY = $kxky + MAXGRD = $maxgrd + CPYFIL = $cpyfil + GAREA = $garea + OUTPUT = $output + GBTBLS = $gbtbls + GBDIAG = + PDSEXT = $pdsext + l + r +EOF + export err=$?;err_chk + + if [ $SENDCOM = "YES" ] ; then + cpfs $GEMGRD $COMOUT/$GEMGRD + if [ $SENDDBN = "YES" ] ; then + $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \ + $COMOUT/$GEMGRD + fi + fi + cd $DATA_RUN +else + if [ $fhcnt -ge 240 ] ; then + if [ $fhcnt -lt 276 -a $RUN = "gfs_0p50" ] ; then + let fhcnt=fhcnt+6 + else + let fhcnt=fhcnt+12 + fi + elif [ $fhcnt -lt 120 -a $RUN = "gfs_0p25" ] ; then +#### let fhcnt=fhcnt+1 + let fhcnt=fhcnt+$ILPOST + else + let fhcnt=fhcnt+finc + fi +fi +done + +$GEMEXE/gpend +##################################################################### +# GOOD RUN +set +x +echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" +echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" +echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" +set -x +##################################################################### + +msg='Job completed normally.' +echo $msg +postmsg "$jlogfile" "$msg" + +############################### END OF SCRIPT ####################### diff --git a/scripts/exgfs_atmos_postsnd.sh b/scripts/exgfs_atmos_postsnd.sh new file mode 100755 index 0000000000..c6e39998fc --- /dev/null +++ b/scripts/exgfs_atmos_postsnd.sh @@ -0,0 +1,185 @@ +#!/bin/ksh +################################################################ +# Script Name: exgfs_atmos_postsnd.sh.sms +# Script Description: Generate GFS BUFR sounding files +# Script History Log: +# 1) 2003-03-25 Hualu Pan First Implementation +# 2) 2010-05-25 V. Krishna Kumar Modified for the GFS +# resolution upgrade +# 3) 2014-08-01 D. Carlis Updated to vertical structure +# and T1534 Resolution +# 4) 2016-11-01 H. Chuang Update to read new model nems output +# 5) 2017-02-21 Guang Ping Lou setup mpmd to speedup the run +# and 1 & 3 hourly output +# 6) 2018-03-22 Guang Ping Lou Take FV3GFS configuration +# parameters as input; make it work for +# both FV3GFS and GFS +# 7) 2018-07-18 Guang Ping Lou Generalize this version to other platforms +# 8) 2019-10-18 Guang Ping Lou Transition to reading in NetCDF model data +# 9) 2019-12-18 Guang Ping Lou generalizing to reading in NetCDF or nemsio +################################################################ +set -xa + +cd $DATA +######################################## +msg="HAS BEGUN" +#postmsg "$jlogfile" "$msg" +######################################## + +################################################### +## Run meteogram generator for T574 +################################################### +export LEVS=${LEVS:-127} +export STARTHOUR=${STARTHOUR:-00} +export ENDHOUR=${ENDHOUR:-180} +export INCREMENT=12 +export MAKEBUFR=NO +export F00FLAG=YES +export fformat=${OUTPUT_FILE:-netcdf} +if [ $fformat == "netcdf" ] + then +export atmfm="nc" +export logfm="txt" +else +export atmfm="nemsio" +export logfm="nemsio" +fi + + export NINT1=${FHOUT_HF_GFS:-1} + export NEND1=${FHMAX_HF_GFS:-120} + export NINT3=${FHOUT_GFS:-3} + +rm -f -r ${COMOUT}/bufr.${cycle} +mkdir -p ${COMOUT}/bufr.${cycle} + + if [ -f $HOMEgfs/ush/getncdimlen ] + then + GETDIM=$HOMEgfs/ush/getncdimlen + else + GETDIM=$EXECbufrsnd/getncdimlen + fi +if [ $fformat == "netcdf" ] + then +export LEVS=`$GETDIM $COMIN/${RUN}.${cycle}.atmf000.${atmfm} pfull` +else +# Extract number of vertical levels from $STARTHOUR atmospheric file +export NEMSIOGET=${NEMSIOGET:-$EXECbufrsnd/nemsio_get} +fhr3=$(printf %03i $STARTHOUR) +ATMFCS=$COMIN/${RUN}.${cycle}.atmf${fhr3}.nemsio +export LEVS=$($NEMSIOGET $ATMFCS dimz | awk '{print $2}') +fi + +### Loop for the hour and wait for the sigma and surface flux file: +export FSTART=$STARTHOUR +# +while [ $FSTART -lt $ENDHOUR ] +do +export FINT=$NINT1 + # Define the end hour for the input + export FEND=`expr $FSTART + $INCREMENT` + if test $FEND -lt 100; then FEND=0$FEND; fi + if [ $FSTART -eq 00 ] + then + export F00FLAG=YES + else + export F00FLAG=NO + fi + + if [ $FEND -eq $ENDHOUR ] + then + export MAKEBUFR=YES + fi + + ic=0 + while [ $ic -lt 1000 ] + do + if [ ! -f $COMIN/${RUN}.${cycle}.logf$FEND.${logfm} ] + then + sleep 10 + ic=`expr $ic + 1` + else + break + fi + + if [ $ic -ge 360 ] + then + err_exit "COULD NOT LOCATE logf$FEND file AFTER 1 HOUR" + fi + done + +## 1-hourly output before $NEND1, 3-hourly output after + if [ $FEND -gt $NEND1 ]; then + export FINT=$NINT3 + fi +## $USHbufrsnd/gfs_bufr.sh + $USHbufrsnd/gfs_bufr.sh + + export FSTART=$FEND +done + +############################################################## +# Tar and gzip the individual bufr files and send them to /com +############################################################## +cd ${COMOUT}/bufr.${cycle} +tar -cf - . | /usr/bin/gzip > ../${RUN}.${cycle}.bufrsnd.tar.gz +cd $DATA + +######################################## +# Send the single tar file to OSO +######################################## +if test "$SENDDBN" = 'YES' +then + $DBNROOT/bin/dbn_alert MODEL GFS_BUFRSND_TAR $job \ + $COMOUT/${RUN}.${cycle}.bufrsnd.tar.gz +fi + +######################################## +# Create Regional Collectives of BUFR data and +# add appropriate WMO Headers. +######################################## +collect=' 1 2 3 4 5 6 7 8 9' +if [ $machine == "HERA" -o $machine == "JET" ]; then +for m in ${collect} +do +sh $USHbufrsnd/gfs_sndp.sh $m +done + +################################################ +# Convert the bufr soundings into GEMPAK files +################################################ +sh $USHbufrsnd/gfs_bfr2gpk.sh + +else +rm -rf poe_col +for m in ${collect} +do +echo "sh $USHbufrsnd/gfs_sndp.sh $m " >> poe_col +done + +mv poe_col cmdfile + +cat cmdfile +chmod +x cmdfile + +${APRUN_POSTSNDCFP} cmdfile + +sh $USHbufrsnd/gfs_bfr2gpk.sh +fi +################################################ +# Convert the bufr soundings into GEMPAK files +################################################ +##$USHbufrsnd/gfs_bfr2gpk.sh + +##################################################################### +# GOOD RUN +set +x +echo "**************JOB GFS_meteogrm COMPLETED NORMALLY ON THE IBM" +echo "**************JOB GFS_meteogrm COMPLETED NORMALLY ON THE IBM" +echo "**************JOB GFS_meteogrm COMPLETED NORMALLY ON THE IBM" +set -x +##################################################################### + +msg='HAS COMPLETED NORMALLY.' +#postmsg "$jlogfile" "$msg" + +############## END OF SCRIPT ####################### diff --git a/scripts/exgfs_awips_20km_1p0deg.sh.ecf b/scripts/exgfs_awips_20km_1p0deg.sh.ecf deleted file mode 100755 index ba87bbecf9..0000000000 --- a/scripts/exgfs_awips_20km_1p0deg.sh.ecf +++ /dev/null @@ -1,264 +0,0 @@ -#!/bin/ksh -############################################################################## -# UTILITY SCRIPT NAME : exgfs_awips_20km_1p0deg.sh.ecf -# DATE WRITTEN : 11/01/2017 -# -# Abstract: This utility script produces the GFS AWIPS 20km and 1.0 deg -# grids GRIB2 -# -# Input: 1 arguments are passed to this script. -# 1st argument - Forecast Hour - format of 3I (3 digits) -# -############################################################################### -echo "------------------------------------------------" -echo "JGFS_AWIPS_00/06/12/18 GFS postprocessing" -echo "------------------------------------------------" -echo "History: NOV 2017 - First implementation of this new script to " -echo " process GFS AWIPS 20km and 1.0 deg grids products " -echo " " -############################################################################### -fcsthrs="$1" -num=$# -job_name=`echo $job|sed 's/[jpt]gfs/gfs/'` - -if test "$num" -ge 1 -then - echo "" - echo " Appropriate number of arguments were passed" - echo "" -else - echo "" - echo " Number of arguments were not passed " - echo "" - echo "" - echo "Usage: $0 \$fcsthrs (3 digits) " - echo "" - exit 16 -fi - -cd $DATA - -set -x - -############################################### -# Wait for the availability of the pgrb file -############################################### -icnt=1 -while [ $icnt -lt 1000 ] -do - if [ -s $COMIN/${RUN}.${cycle}.pgrb2b.0p25.f$fcsthrs.idx ] - then - break - fi - - sleep 10 - icnt=$((icnt + 1)) - if [ $icnt -ge 180 ] - then - msg="ABORTING after 30 min of waiting for the GFS pgrb2 file!" - err_exit $msg - fi -done - -######################################## -msg="HAS BEGUN!" -postmsg "$jlogfile" "$msg" -######################################## - -echo " ------------------------------------------" -echo " BEGIN MAKING GFS AWIPS PRODUCTS" -echo " ------------------------------------------" - -set +x -echo " " -echo "#######################################" -echo " Process GRIB AWIP GRIB2 PRODUCTS " -echo "#######################################" -echo " " -set -x - -# Set type of Interpolation for WGRIB2 -export opt1=' -set_grib_type same -new_grid_winds earth ' -export opt1uv=' -set_grib_type same -new_grid_winds grid ' -export opt21=' -new_grid_interpolation bilinear -if ' -export opt22=":(LAND|CSNOW|CRAIN|CFRZR|CICEP|ICSEV):" -export opt23=' -new_grid_interpolation neighbor -fi ' -export opt24=' -set_bitmap 1 -set_grib_max_bits 16 -if ' -export opt25=":(APCP|ACPCP|PRATE|CPRAT):" -export opt26=' -set_grib_max_bits 25 -fi -if ' -export opt27=":(APCP|ACPCP|PRATE|CPRAT|DZDT):" -export opt28=' -new_grid_interpolation budget -fi ' -export TRIMRH=${TRIMRH:-$USHgfs/trim_rh.sh} - -############################################################### -# Process GFS GRIB AWIP PRODUCTS IN GRIB2 # -############################################################### - -cp $COMIN/gfs.t${cyc}z.pgrb2.0p25.f${fcsthrs} tmpfile2${fcsthrs} -cp $COMIN/gfs.t${cyc}z.pgrb2b.0p25.f${fcsthrs} tmpfile2b${fcsthrs} -cat tmpfile2${fcsthrs} tmpfile2b${fcsthrs} > tmpfile${fcsthrs} -$WGRIB2 tmpfile${fcsthrs} | grep -F -f $PARMproduct/gfs_awips_parmlist_g2 | $WGRIB2 -i -grib masterfile tmpfile${fcsthrs} -export err=$? -if [[ $err -ne 0 ]] ; then - echo " File: masterfile does not exist." - exit $err -fi - -$WGRIB2 masterfile -match ":PWAT:entire atmosphere" -grib gfs_pwat.grb -$WGRIB2 masterfile | grep -v ":PWAT:entire atmosphere" | $WGRIB2 -i -grib temp_gfs masterfile -################################################################## -# Process to change PWAT from level 200 to 10 (Entire Atmosphere) -# in production defintion template (PDT) 4.0 -################################################################## -$WGRIB2 gfs_pwat.grb -set_byte 4 23 10 -grib gfs_pwat_levels_10.grb -export err=$?; err_chk - -cat temp_gfs gfs_pwat_levels_10.grb > tmp_masterfile - -for GRID in conus ak prico pac 003 -do - case $GRID in - conus) - # Grid 20km_conus - CONUS - 20 km Quadruple Resolution (Lambert Conformal) - # export grid_20km_conus="30 6 0 0 0 0 0 0 369 257 12190000 226541000 8 25000000 265000000 20318000 20318000 0 64 25000000 25000000 0 0" - # $COPYGB2 -g "$grid_20km_conus" -i0 -x tmp_masterfile awps_file_f${fcsthrs}_${GRID} - - export gridconus="lambert:265.0:25.0:25.0 226.541:369:20318.0 12.19:257:20318.0" - $WGRIB2 tmp_masterfile $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $gridconus awps_file_f${fcsthrs}_${GRID} - ;; - ak) - # Grid 20km_ak - Alaska - Double Resolution (Polar Stereographic) - # Redefined grid 217 for Alaska region - # export grid_20km_ak="20 6 0 0 0 0 0 0 277 213 30000000 187000000 8 60000000 225000000 22500000 22500000 0 64" - # $COPYGB2 -g "$grid_20km_ak" -i0 -x tmp_masterfile awps_file_f${fcsthrs}_${GRID} - - export gridak="nps:210.0:60.0 170.0:277:22500 35.0:225:22500" - $WGRIB2 tmp_masterfile $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $gridak awps_file_f${fcsthrs}_${GRID} - ;; - prico) - # Grid 20km_prico - 0.25 degree Lat/Lon grid for Puerto Rico (20km) - # export grid_20km_prico="0 6 0 0 0 0 0 0 275 205 0 0 50750000 271750000 48 -250000 340250000 250000 250000 0" - # $COPYGB2 -g "$grid_20km_prico" -i0 -x tmp_masterfile awps_file_f${fcsthrs}_${GRID} - - export gridprico="latlon 271.75:275:0.25 50.75:205:-0.25" - $WGRIB2 tmp_masterfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $gridprico awps_file_f${fcsthrs}_${GRID} - ;; - pac) - # Grid 20km_pac - 20 km Mercator grid for Pacific Region - # export grid_20km_pac="10 6 0 0 0 0 0 0 837 692 -45000000 110000000 48 20000000 65720000 270000000 64 0 20000000 20000000" - # NEW export grid_20km_pac="10 6 0 0 0 0 0 0 837 725 -45000000 110000000 48 20000000 65734500 270000000 64 0 20000000 20000000" - # $COPYGB2 -g "$grid_20km_pac" -i0 -x tmp_masterfile awps_file_f${fcsthrs}_${GRID} - - export gridpac="mercator:20.0 110.0:837:20000:270.0 -45.0:725:20000:65.7345" - $WGRIB2 tmp_masterfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $gridpac awps_file_f${fcsthrs}_${GRID} - ;; - 003) - ###################################################################### - # Process GFS GRIB AWIP 1.0 DEGREE (GRID 003) PRODUCTS IN GRIB2 # - ###################################################################### - export grid003="latlon 0:360:1.0 90:181:-1.0" - $WGRIB2 tmp_masterfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $grid003 awps_file_f${fcsthrs}_${GRID} - ;; - esac - $TRIMRH awps_file_f${fcsthrs}_${GRID} - $GRB2INDEX awps_file_f${fcsthrs}_${GRID} awps_file_fi${fcsthrs}_${GRID} - -########################################################################### -# Checking fields in awps_file_f${fcsthrs}_${GRID} file -# before TOCGRIB2 adding WMO headers for AWIPS products. -# -# NOTE: numparm is the total of fields in grib2_awpgfs_20km_conusf000 file -########################################################################### -numparm=247 -numrec=` $WGRIB2 awps_file_f${fcsthrs}_${GRID} | wc -l ` - -if [ $numrec -lt $numparm ] -then - msg="ABORTING : awps_file_f${fcsthrs}_${GRID} file is missing fields for AWIPS !" - err_exit $msg -fi - -# Processing AWIPS GRIB2 grids with WMO headers - - pgm=tocgrib2 - export pgm; prep_step - startmsg - - if [ $GRID = "003" -a `expr ${fcsthrs} % 6` -eq 0 ] ; then - export FORT11=awps_file_f${fcsthrs}_${GRID} - export FORT31=awps_file_fi${fcsthrs}_${GRID} - export FORT51=grib2.awpgfs${fcsthrs}.${GRID} - - $TOCGRIB2 < $PARMwmo/grib2_awpgfs${fcsthrs}.${GRID} >> $pgmout 2> errfile - export err=$?; err_chk - echo " error from tocgrib2=",$err - - if [ $SENDCOM = "YES" ] ; then - ############################## - # Post Files to ${COMOUTwmo} - ############################## - - mv grib2.awpgfs${fcsthrs}.${GRID} ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} - - ############################## - # Distribute Data - ############################## - - if [ "$SENDDBN" = 'YES' -o "$SENDAWIP" = 'YES' ] ; then - $DBNROOT/bin/dbn_alert NTC_LOW $NET $job ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} - else - msg="File ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.gfs_awips_f${fcsthrs}_1p0deg_${cyc} not posted to db_net." - postmsg "$jlogfile" "$msg" - fi - fi - elif [ $GRID != "003" ] ; then - export FORT11=awps_file_f${fcsthrs}_${GRID} - export FORT31=awps_file_fi${fcsthrs}_${GRID} - export FORT51=grib2.awpgfs_20km_${GRID}_f${fcsthrs} - - $TOCGRIB2 < $PARMwmo/grib2_awpgfs_20km_${GRID}f${fcsthrs} >> $pgmout 2> errfile - export err=$? ;err_chk - echo " error from tocgrib2=",$err - - if [ $SENDCOM = "YES" ] ; then - - ############################## - # Post Files to ${COMOUTwmo} - ############################## - - mv grib2.awpgfs_20km_${GRID}_f${fcsthrs} ${COMOUTwmo}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.$job_name - - ############################## - # Distribute Data - ############################## - - if [ "$SENDDBN" = 'YES' -o "$SENDAWIP" = 'YES' ] ; then - $DBNROOT/bin/dbn_alert NTC_LOW $NET $job ${COMOUTwmo}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.$job_name - else - msg="File ${COMOUTwmo}/grib2.awpgfs_20km_${GRID}_f${fcsthrs}.$job_name not posted to db_net." - postmsg "$jlogfile" "$msg" - fi - fi - fi - msg="Awip Processing ${fcsthrs} hour completed normally" - postmsg "$jlogfile" "$msg" - -done - -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -############################################################################################ -# GOOD RUN -set +x -echo "**************JOB EXGFS_AWIPS_20KM_1P0DEG.SH.ECF COMPLETED NORMALLY ON THE WCOSS" -echo "**************JOB EXGFS_AWIPS_20KM_1P0DEG.SH.ECF COMPLETED NORMALLY ON THE WCOSS" -echo "**************JOB EXGFS_AWIPS_20KM_1P0DEG.SH.ECF COMPLETED NORMALLY ON THE WCOSS" -set -x -############################################################################################ - -msg="HAS COMPLETED NORMALLY!" -postmsg "$jlogfile" "$msg" - -############## END OF SCRIPT ####################### diff --git a/scripts/exgfs_fbwind.sh.ecf b/scripts/exgfs_fbwind.sh.ecf deleted file mode 100755 index 62663cfe2e..0000000000 --- a/scripts/exgfs_fbwind.sh.ecf +++ /dev/null @@ -1,111 +0,0 @@ -#!/bin/ksh -echo "------------------------------------------------" -echo "JGFS_BULLS - 24hr GFS processing" -echo "------------------------------------------------" -echo "History: Jul 2004 - First implementation of this new script." -echo " FBWNDGFS (FB Winds) program for 15 sites outside" -echo " the Hawaiian Islands." -echo " Feb 2006 - L Sager Send bulletins to TOC via NTC. " -echo " Jul 2014 - B Vuong Modified to use GFS master GRIB2" -echo " and Add bulletins WINTEMV process." -echo " Sep 2016 - B Vuong Modified to use GFS 0p25 deg GRIB2" -##################################################################### - -cd $DATA - -###################### -# Set up Here Files. -###################### - -set -x -msg="Begin job for $job" -postmsg "$jlogfile" "$msg" - -job_name=`echo $job|sed 's/[jpt]gfs/gfs/'` - -set +x -echo " " -echo "#############################################################" -echo " Process Bulletins of forecast winds and temps for Hawaii " -echo " and 15 sites outside of the Hawaiian Islands. " -echo "#############################################################" -echo " " -set -x - -export pgm=bulls_fbwndgfs -. prep_step - -for fhr in 006 012 024 -do - - cp $COMIN/gfs.${cycle}.pgrb2.0p25.f${fhr} tmp_pgrb2_0p25${fhr} - cp $COMIN/gfs.${cycle}.pgrb2b.0p25.f${fhr} tmp_pgrb2b_0p25${fhr} - cat tmp_pgrb2_0p25${fhr} tmp_pgrb2b_0p25${fhr} > tmp0p25filef${fhr} - $WGRIB2 tmp0p25filef${fhr} | grep -F -f $PARMproduct/gfs_fbwnd_parmlist_g2 | $WGRIB2 -i -grib tmpfilef${fhr} tmp0p25filef${fhr} - $CNVGRIB -g21 tmpfilef${fhr} tmpfilef${fhr}.grib1 - $GRBINDEX tmpfilef${fhr}.grib1 tmpfilef${fhr}.grib1i - mv tmpfilef${fhr}.grib1 gfs.t${cyc}z.grbf${fhr}_grb1 - mv tmpfilef${fhr}.grib1i gfs.t${cyc}z.grbif${fhr}_grb1 - -done - -export FORT11="gfs.t${cyc}z.grbf006_grb1" -export FORT12="gfs.t${cyc}z.grbf012_grb1" -export FORT13="gfs.t${cyc}z.grbf024_grb1" - -# GFS grib index files - -export FORT31="gfs.t${cyc}z.grbif006_grb1" -export FORT32="gfs.t${cyc}z.grbif012_grb1" -export FORT33="gfs.t${cyc}z.grbif024_grb1" - -# -# 1280 byte transmission file -# - -export FORT51="tran.fbwnd_pacific" - -startmsg - -$EXECgfs/fbwndgfs < $PARMproduct/fbwnd_pacific.stnlist >> $pgmout 2> errfile -export err=$?; err_chk - -if test "$SENDCOM" = 'YES' -then - cp tran.fbwnd_pacific ${COMOUTwmo}/tran.fbwnd_pacific.$job_name -fi - -if test "$SENDDBN" = 'YES' -then -# make_ntc_bull.pl WMOBH NONE KWNO NONE tran.fbwnd_pacific ${COMOUTwmo}/tran.fbwnd_pacific.$job_name - ${UTILgfs}/ush/make_ntc_bull.pl WMOBH NONE KWNO NONE tran.fbwnd_pacific ${COMOUTwmo}/tran.fbwnd_pacific.$job_name -fi - -if test ${cycle} = 't00z' -o ${cycle} = 't12z' -then - - set +x - echo " " - echo "#################################################" - echo " Process 06, 12, 18 and 24 fcsthrs WINTEM Bulletins. " - echo "#################################################" - echo " " - set -x - sh $USHgfs/mkwintem.sh - -fi - -##################################################################### -# GOOD RUN -set +x -echo "**************JOB JGFS_FBWIND COMPLETED NORMALLY ON IBM-SP" -echo "**************JOB JGFS_FBWIND COMPLETED NORMALLY ON IBM-SP" -echo "**************JOB JGFS_FBWIND COMPLETED NORMALLY ON IBM-SP" -set -x -##################################################################### - -msg='Job completed normally.' -echo $msg -postmsg "$jlogfile" "$msg" - -############################### END OF SCRIPT ####################### diff --git a/scripts/exgfs_grib_awips.sh.ecf b/scripts/exgfs_grib_awips.sh.ecf deleted file mode 100755 index 0a24818a63..0000000000 --- a/scripts/exgfs_grib_awips.sh.ecf +++ /dev/null @@ -1,162 +0,0 @@ -#!/bin/ksh -###################################################################### -# UTILITY SCRIPT NAME : exgfs_grib_awips.sh.ecf -# DATE WRITTEN : 10/04/2004 -# -# Abstract: This utility script produces the GFS AWIPS GRIB -# -# Input: 1 arguments are passed to this script. -# 1st argument - Forecast Hour - format of 2I -# -##################################################################### -echo "------------------------------------------------" -echo "JGFS_AWIPS_00/06/12/18 GFS postprocessing" -echo "------------------------------------------------" -echo "History: OCT 2004 - First implementation of this new script." -echo " JUN 2014 - Modified to remove process for AWIPS in GRIB2" -echo " to script exgfs_grib_awips_g2.sh.ecf and this " -echo " script only process AWIPS GRIB1 (211 and 225)" -echo " AUG 2015 - Modified for WCOSS phase2" -echo " FEB 2019 - Removed grid 225" -##################################################################### -set +x -fcsthrs="$1" -num=$# -job_name=`echo $job|sed 's/[jpt]gfs/gfs/'` - -typeset -Z3 fcsthrs - -export PS4='gfs_grib_awips:f$fcsthrs:$SECONDS + ' - -#if [ $fhcsthrs -t 100 ]; then -# fcsthrs=0$fcsthrs -#fi -if test "$num" -ge 1 -then - echo "" - echo " Appropriate number of arguments were passed" - echo "" -else - echo "" - echo " Number of arguments were not passed " - echo "" - echo "" - echo "Usage: $0 \$fcsthrs (3-digit) " - echo "" - exit 16 -fi - -cd $DATA/awips_g1 - -set -x - -############################################### -# Wait for the availability of the pgrb file -############################################### -icnt=1 -while [ $icnt -lt 1000 ] -do - if [ -s $COMIN/${RUN}.${cycle}.pgrb2b.0p25.f${fcsthrs}.idx ] - then - break - fi - - sleep 10 - icnt=$((icnt + 1)) - if [ $icnt -ge 180 ] - then - msg="ABORTING after 30 min of waiting for the pgrb file!" - err_exit $msg - fi -done - -######################################## -msg="HAS BEGUN!" -postmsg "$jlogfile" "$msg" -######################################## - -echo " ------------------------------------------" -echo " BEGIN MAKING GFS GRIB1 AWIPS PRODUCTS" -echo " ------------------------------------------" - -set +x -echo " " -echo "###############################################" -echo " Process GFS GRIB1 AWIP PRODUCTS (211) " -echo "###############################################" -echo " " -set -x - - cp $COMIN/gfs.t${cyc}z.pgrb2.0p25.f${fcsthrs} tmpfile2 - cp $COMIN/gfs.t${cyc}z.pgrb2b.0p25.f${fcsthrs} tmpfile2b - cat tmpfile2 tmpfile2b > tmpfile - $WGRIB2 tmpfile | grep -F -f $PARMproduct/gfs_awips_parmlist_g2 | $WGRIB2 -i -grib masterfile tmpfile - $CNVGRIB -g21 masterfile masterfile.grib1 - - ln -s masterfile.grib1 fort.11 - -# $OVERGRIDID << EOF - ${UTILgfs}/exec/overgridid << EOF -255 -EOF - - mv fort.51 master.grbf${fcsthrs} - rm fort.11 - - $GRBINDEX master.grbf${fcsthrs} master.grbif${fcsthrs} - -############################################################### -# Process GFS GRIB1 AWIP GRIDS 211 PRODUCTS -############################################################### - - executable=mkgfsawps - DBNALERT_TYPE=GRIB_LOW - - startmsg - -# GRID=211 out to 240 hours: - - export GRID=211 - export FORT11=master.grbf${fcsthrs} - export FORT31=master.grbif${fcsthrs} - export FORT51=xtrn.awpgfs${fcsthrs}.${GRID} -# $MKGFSAWPS < $PARMwmo/grib_awpgfs${fcsthrs}.${GRID} parm=KWBC >> $pgmout 2>errfile - ${UTILgfs}/exec/mkgfsawps < $PARMwmo/grib_awpgfs${fcsthrs}.${GRID} parm=KWBC >> $pgmout 2>errfile - export err=$?; err_chk - ############################## - # Post Files to ${COMOUTwmo} - ############################## - - if test "$SENDCOM" = 'YES' - then - cp xtrn.awpgfs${fcsthrs}.${GRID} ${COMOUTwmo}/xtrn.awpgfs${fcsthrs}.${GRID}.$job_name - - ############################## - # Distribute Data - ############################## - - if [ "$SENDDBN" = 'YES' -o "$SENDAWIP" = 'YES' ] ; then - $DBNROOT/bin/dbn_alert $DBNALERT_TYPE $NET $job ${COMOUTwmo}/xtrn.awpgfs${fcsthrs}.${GRID}.$job_name - else - msg="File $output_grb.$job_name not posted to db_net." - postmsg "$jlogfile" "$msg" - fi - fi - -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -############################################################################### -# GOOD RUN -set +x -echo "**************JOB EXGFS_GRIB_AWIPS.SH.ECF COMPLETED NORMALLY ON THE IBM" -echo "**************JOB EXGFS_GRIB_AWIPS.SH.ECF COMPLETED NORMALLY ON THE IBM" -echo "**************JOB EXGFS_GRIB_AWIPS.SH.ECF COMPLETED NORMALLY ON THE IBM" -set -x -############################################################################### - -msg="HAS COMPLETED NORMALLY!" -postmsg "$jlogfile" "$msg" - -############## END OF SCRIPT ####################### diff --git a/scripts/exgfs_grib_awips_g2.sh.ecf b/scripts/exgfs_grib_awips_g2.sh.ecf deleted file mode 100755 index 27d7422152..0000000000 --- a/scripts/exgfs_grib_awips_g2.sh.ecf +++ /dev/null @@ -1,275 +0,0 @@ -#!/bin/ksh -###################################################################### -# UTILITY SCRIPT NAME : exgfs_grib_awips_g2.sh.sm -# DATE WRITTEN : 06/05/2014 -# -# Abstract: This utility script produces the GFS AWIPS GRIB2 -# -# Input: 1 arguments are passed to this script. -# 1st argument - Forecast Hour - format of 3I (3 digits) -# -##################################################################### -name=`basename $0` -export PS4='$name:$SECONDS + ' -echo "------------------------------------------------" -echo "JGFS_AWIPS_00/06/12/18 GFS postprocessing" -echo "------------------------------------------------" -echo "History: JUNE 2014 - First implementation of this new script" -echo " to process GFS AWIPS products in GRIB2 " -echo " " -##################################################################### -fcsthrs="$1" -typeset -Z3 fcsthrs -num=$# -job_name=`echo $job|sed 's/[jpt]gfs/gfs/'` - -export PS4='gfs_grib_awips_g2:f$fcsthrs:$SECONDS + ' - -# Set type of Interpolation for WGRIB2 -export opt1=' -set_grib_type same -new_grid_winds earth ' -export opt1uv=' -set_grib_type same -new_grid_winds grid ' -export opt21=' -new_grid_interpolation bilinear -if ' -export opt22=":(LAND|CSNOW|CRAIN|CFRZR|CICEP|ICSEV):" -export opt23=' -new_grid_interpolation neighbor -fi ' -export opt24=' -set_bitmap 1 -set_grib_max_bits 16 -if ' -export opt25=":(APCP|ACPCP|PRATE|CPRAT):" -export opt26=' -set_grib_max_bits 25 -fi -if ' -export opt27=":(APCP|ACPCP|PRATE|CPRAT|DZDT):" -export opt28=' -new_grid_interpolation budget -fi ' -export TRIMRH=${TRIMRH:-$USHgfs/trim_rh.sh} - -if test "$num" -ge 1 -then - echo "" - echo " Appropriate number of arguments were passed" - echo "" -else - echo "" - echo " Number of arguments were not passed " - echo "" - echo "" - echo "Usage: $0 \$fcsthrs (3 digits) " - echo "" - exit 16 -fi - -cd $DATA/awips_g2 - -set -x - -############################################### -# Wait for the availability of the pgrb file -############################################### -icnt=1 -while [ $icnt -lt 1000 ] -do - if [ -s $COMIN/${RUN}.${cycle}.pgrb2b.0p25.f$fcsthrs.idx ] - then - break - fi - - sleep 10 - icnt=$((icnt + 1)) - if [ $icnt -ge 180 ] - then - msg="ABORTING after 30 min of waiting for the GFS pgrb2 file!" - err_exit $msg - fi -done - -######################################## -msg="HAS BEGUN!" -postmsg "$jlogfile" "$msg" -######################################## - -echo " ------------------------------------------" -echo " BEGIN MAKING GFS AWIPS PRODUCTS" -echo " ------------------------------------------" - -set +x -echo " " -echo "#######################################" -echo " Process GRIB AWIP GRIB2 PRODUCTS " -echo "#######################################" -echo " " -set -x - -############################################################### -# Process GFS GRIB AWIP PRODUCTS IN GRIB2 # -############################################################### - -cp $COMIN/gfs.t${cyc}z.pgrb2.0p25.f${fcsthrs} tmpfile2 -cp $COMIN/gfs.t${cyc}z.pgrb2b.0p25.f${fcsthrs} tmpfile2b -cat tmpfile2 tmpfile2b > tmpfile -$WGRIB2 tmpfile | grep -F -f $PARMproduct/gfs_awips_parmlist_g2 | $WGRIB2 -i -grib masterfile tmpfile - -# JY for GRID in 160 161 201 212 213 254 -for GRID in 160 161 213 254 -do - case $GRID in - 160) - # Grid 160 - 47.5 km North Polar Stereographic grid for Alaska - # export g160="20 6 0 0 0 0 0 0 180 156 19132000 174163000 8 60000000 210000000 47625000 47625000 0 64" - # $COPYGB2 -g "${g160}" -i0 -x masterfile awps_file_f${fcsthrs}_${GRID} - - export grid160="nps:210:60.0 174.163:180:47625 19.132:156:47625" - $WGRIB2 masterfile $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $grid160 awps_file_f${fcsthrs}_${GRID} - ;; - 161) - # Grid 161 - 0.5 degree Lat/Lon grid for Puerto Rico - # export g161="0 6 0 0 0 0 0 0 137 102 0 0 50750000 271750000 8 -250000 340250000 65535000 65535000 0" - # NEW export g161="0 6 0 0 0 0 0 0 137 103 0 0 50750000 271750000 8 -250000 340250000 65535000 65535000 0" - # $COPYGB2 -g "${g161}" -i0 -x masterfile awps_file_f${fcsthrs}_${GRID} - - export grid161="latlon 271.75:137:0.5 50.75:103:-0.5" - $WGRIB2 masterfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $grid161 awps_file_f${fcsthrs}_${GRID} - ;; - 213) - # Grid 213 - National - CONUS - Double Resolution (Polar Stereographic) 95km - # export g213="20 6 0 0 0 0 0 0 129 85 7838000 218972000 8 60000000 255000000 95250000 95250000 0 64" - # $COPYGB2 -g "${g213}" -i0 -x masterfile awps_file_f${fcsthrs}_${GRID} - - export grid213="nps:255:60.0 218.972:129:95250 7.838:85:95250" - $WGRIB2 masterfile $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $grid213 awps_file_f${fcsthrs}_${GRID} - ;; - 254) - # Grid 254 - 40 km Mercator grid for Pacific Region - # export g254="10 6 0 0 0 0 0 0 369 300 -35000000 110000000 48 20000000 60789000 250871000 64 0 40000000 40000000" - # $COPYGB2 -g "${g254}" -i0 -x masterfile awps_file_f${fcsthrs}_${GRID} - - export grid254="mercator:20.0 110.0:369:40000:250.871 -35.0:300:40000:60.789" - $WGRIB2 masterfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $grid254 awps_file_f${fcsthrs}_${GRID} - ;; - esac - $TRIMRH awps_file_f${fcsthrs}_${GRID} - $GRB2INDEX awps_file_f${fcsthrs}_${GRID} awps_file_fi${fcsthrs}_${GRID} - -# Processing AWIPS GRIB2 grids with WMO headers - - export pgm=tocgrib2 - prep_step - startmsg - - export FORT11=awps_file_f${fcsthrs}_${GRID} - export FORT31=awps_file_fi${fcsthrs}_${GRID} - export FORT51=grib2.awpgfs${fcsthrs}.${GRID} - - $TOCGRIB2 < $PARMwmo/grib2_awpgfs${fcsthrs}.${GRID} >> $pgmout 2> errfile - export err=$? ;err_chk - echo " error from tocgrib2=",$err - - if [ $SENDCOM = "YES" ] ; then - - ############################## - # Post Files to ${COMOUTwmo} - ############################## - - mv grib2.awpgfs${fcsthrs}.${GRID} ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.$job_name - - ############################## - # Distribute Data - ############################## - - if [ "$SENDDBN" = 'YES' -o "$SENDAWIP" = 'YES' ] ; then - $DBNROOT/bin/dbn_alert NTC_LOW $NET $job ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.$job_name - else - msg="File ${COMOUTwmo}/grib2.awpgfs${fcsthrs}.${GRID}.$job_name not posted to db_net." - postmsg "$jlogfile" "$msg" - fi - fi - - msg="Awip Processing ${fcsthrs} hour completed normally" - postmsg "$jlogfile" "$msg" - - rm awps_file_${fcsthrs}_${GRID} awps_file_fi${fcsthrs}_${GRID} - -done - -if test $fcsthrs -eq 120 -then - for fcsthrs in 00 03 06 09 12 15 18 21 24 27 30 33 36 39 \ - 42 45 48 51 54 57 60 63 66 69 72 75 78 81 \ - 84 87 90 93 96 99 102 105 108 111 114 117 120 - do - set +x - echo " " - echo " ###################################################" - echo " Process PGRIB files from GFS products to create " - echo " grid 211 which contain surface fields. (00-120) " - echo " ###################################################" - echo " " - set -x - - cp $COMIN/gfs.t${cyc}z.pgrb2.0p25.f${fcsthrs} tmpfile2 - cp $COMIN/gfs.t${cyc}z.pgrb2b.0p25.f${fcsthrs} tmpfile2b - cat tmpfile2 tmpfile2b > tmpfile - - ################################################################# - # List of fields that need to extract from the GFS products - ################################################################# - -cat << EOF > wgrib2_parmlist_grb211 -:APCP:surface: -:RH:2 m above ground: -:TCDC:entire atmosphere: -:TMP:2 m above ground: -:UGRD:10 m above ground: -:VGRD:10 m above ground: -EOF - - $WGRIB2 tmpfile | grep -F -f wgrib2_parmlist_grb211 | $WGRIB2 -i -grib tmpfile_211 tmpfile - # Grid 211 - Regional - CONUS (Lambert Conformal) 81km - # export g211="30 6 0 0 0 0 0 0 93 65 12190000 226541000 8 25000000 265000000 81271000 81271000 0 64 25000000 25000000 0 0" - # $COPYGB2 -g "${g211}" -i0 -x tmpfile_211 gfs_grb211.${cycle}.pgrbf${fcsthrs}.grib2 - - export grid211="lambert:265.0:25.0:25.0 226.541:93:81271 12.19:65:81271" - $WGRIB2 tmpfile_211 $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $grid211 gfs_grb211.${cycle}.pgrbf${fcsthrs}.grib2 - - $TRIMRH gfs_grb211.${cycle}.pgrbf${fcsthrs}.grib2 - $WGRIB2 -s gfs_grb211.${cycle}.pgrbf${fcsthrs}.grib2 > gfs_grb211.${cycle}.pgrbf${fcsthrs}.grib2.idx - - ############################## - # Convert to grib1 format - ############################## - - $CNVGRIB -g21 gfs_grb211.${cycle}.pgrbf${fcsthrs}.grib2 gfs_grb211.${cycle}.pgrbf${fcsthrs} - $GRBINDEX gfs_grb211.${cycle}.pgrbf${fcsthrs} gfs_grb211.${cycle}.pgrbif${fcsthrs} - - ############################## - # Post Files to COM - ############################## - cp gfs_grb211.${cycle}.pgrbf${fcsthrs}.grib2 $COMOUT/. - cp gfs_grb211.${cycle}.pgrbf${fcsthrs}.grib2.idx $COMOUT/. - cp gfs_grb211.${cycle}.pgrbf${fcsthrs} $COMOUT/. - cp gfs_grb211.${cycle}.pgrbif${fcsthrs} $COMOUT/. - - if [ "$SENDCOM" = "YES" ] - then - if [ "$SENDDBN" = "YES" ] - then - $DBNROOT/bin/dbn_alert MODEL GFS_GRB211 $job $COMOUT/gfs_grb211.${cycle}.pgrbf${fcsthrs} - $DBNROOT/bin/dbn_alert MODEL GFS_GRBI211 $job $COMOUT/gfs_grb211.${cycle}.pgrbif${fcsthrs} - $DBNROOT/bin/dbn_alert MODEL GFS_GRB211_GB2 $job $COMOUT/gfs_grb211.${cycle}.pgrbf${fcsthrs}.grib2 - $DBNROOT/bin/dbn_alert MODEL GFS_GRB211_GB2_WIDX $job $COMOUT/gfs_grb211.${cycle}.pgrbf${fcsthrs}.grib2.idx - fi - fi - done -fi - -if [ -e "$pgmout" ] ; then - cat $pgmout -fi - -################################################################################### -# GOOD RUN -set +x -echo "**************JOB EXGFS_GRIB_AWIPS_G2.SH.ECF COMPLETED NORMALLY ON THE WCOSS" -echo "**************JOB EXGFS_GRIB_AWIPS_G2.SH.ECF COMPLETED NORMALLY ON THE WCOSS" -echo "**************JOB EXGFS_GRIB_AWIPS_G2.SH.ECF COMPLETED NORMALLY ON THE WCOSS" -set -x -################################################################################### - -msg="HAS COMPLETED NORMALLY!" -postmsg "$jlogfile" "$msg" - -############## END OF SCRIPT ####################### diff --git a/scripts/exgfs_grib_wafs.sh.ecf b/scripts/exgfs_grib_wafs.sh.ecf deleted file mode 100755 index 0e53172969..0000000000 --- a/scripts/exgfs_grib_wafs.sh.ecf +++ /dev/null @@ -1,174 +0,0 @@ -#!/bin/sh -###################################################################### -# UTILITY SCRIPT NAME : exgfs_grib_wafs.sh.ecf -# DATE WRITTEN : 10/04/2004 -# -# Abstract: This utility script produces the WAFS GRIB -# -# Input: 1 arguments are passed to this script. -# 1st argument - Forecast Hour - format of 2I -# -# Logic: If we are processing fcsthrss 12-30, we have the -# added variable of the a or b in the process accordingly. -# The other fcsthrss, the a or b is dropped. -# -##################################################################### -echo "------------------------------------------------" -echo "JWAFS_00/06/12/18 GFS postprocessing" -echo "------------------------------------------------" -echo "History: OCT 2004 - First implementation of this new script." -echo " Aug 2015 - Modified for Phase II" -echo " Dec 2015 - Modified for input model data in Grib2" -echo " " -##################################################################### -set +x -fcsthrs_list="$1" -num=$# - -if test "$num" -ge 1 -then - echo " Appropriate number of arguments were passed" - set -x - export DBNALERT_TYPE=${DBNALERT_TYPE:-GRIB} -# export pcom=${pcom:-/pcom/$NET} -# export job=${job:-interactive} -else - echo "" - echo "Usage: exgfs_grib_wafs.sh.ecf \$fcsthrs " - echo "" - exit 16 -fi - -cd $DATA - -set -x - -############################################### -# Wait for the availability of the pgrib file -############################################### -icnt=1 -while [ $icnt -lt 1000 ] -do -# if [ -s $COMIN/${RUN}.${cycle}.pgrbf$fcsthrs ] -# file name and forecast hour of GFS model data in Grib2 are 3 digits -# fcsthrs000="$(printf "%03d" $fcsthrs)" - fcsthrs000="$(printf "%03d" $(( 10#$fcsthrs )) )" - - if [ -s $COMIN/${RUN}.${cycle}.pgrb2.1p00.f$fcsthrs000 ] - then - break - fi - - sleep 10 - icnt=$((icnt + 1)) - if [ $icnt -ge 180 ] - then - msg="ABORTING after 30 min of waiting for the pgrib filei!" - err_exit $msg - fi -done - -######################################## -msg="HAS BEGUN!" -postmsg "$jlogfile" "$msg" -######################################## - -echo " ------------------------------------------" -echo " BEGIN MAKING GFS WAFS PRODUCTS" -echo " ------------------------------------------" - -#################################################### -# -# GFS WAFS PRODUCTS MUST RUN IN CERTAIN ORDER -# BY REQUIREMENT FROM FAA. -# PLEASE DO NOT ALTER ORDER OF PROCESSING WAFS -# PRODUCTS CONSULTING WITH MR. BRENT GORDON. -# -#################################################### - -set +x -echo " " -echo "#####################################" -echo " Process GRIB WAFS PRODUCTS (mkwafs)" -echo " FORECAST HOURS 00 - 72." -echo "#####################################" -echo " " -set -x - -if test $fcsthrs -eq 0 -then - echo " " -fi - -# If we are processing fcsthrss 12-30, we have the -# added variable of the a or b in the process. -# The other fcsthrss, the a or b is dropped. - -if test $fcsthrs -ge 12 -a $fcsthrs -le 24 -then - sh $USHgfs/mkwfsgbl.sh ${fcsthrs} a -fi - -if test $fcsthrs -eq 30 -then - sh $USHgfs/mkwfsgbl.sh ${fcsthrs} a - for fcsthrs in 12 18 24 30 - do - sh $USHgfs/mkwfsgbl.sh ${fcsthrs} b - done - sh $USHgfs/mkwfsgbl.sh 00 x - sh $USHgfs/mkwfsgbl.sh 06 x -fi - -if test $fcsthrs -gt 30 -a $fcsthrs -le 48 -then - sh $USHgfs/mkwfsgbl.sh ${fcsthrs} x -fi - -if test $fcsthrs -eq 60 -o $fcsthrs -eq 72 -then - sh $USHgfs/mkwfsgbl.sh ${fcsthrs} x -fi - -if test $fcsthrs -le 120 -then - set +x - echo " " - echo "####################################################" - echo " Process GFS WAFS GRIB PRODUCTS FOR EIGHT OCTANTS " - echo " FOR FORECAST HOURS 00 - 120 AT 00Z, 06Z, 12Z AND 18Z." - echo " THESE GRID FILES SEND TO TOC." - echo "####################################################" - echo " " - set -x - export parmlist=$PARMgfs/grib_wafsgfs_intdsk - if test $fcsthrs -eq 00 - then - export parmlist=$PARMgfs/grib_wafsgfs_intdskf00 - sh $USHgfs/wafs_intdsk.sh "00" - elif test $fcsthrs -eq 36 - then - sh $USHgfs/wafs_intdsk.sh "36" - export parmlist=$PARMgfs/grib_wafsgfs_intdskf00 - sh $USHgfs/wafs_intdsk.sh "03 09 15 21 27 33" - elif test $fcsthrs -eq 120 - then - sh $USHgfs/wafs_intdsk.sh "54 66 78 90 102 114 120" - else - sh $USHgfs/wafs_intdsk.sh ${fcsthrs} - fi -fi - -################################################################################ -# GOOD RUN -set +x -echo "**************JOB EXGFS_GRIB_WAFS.SH.ECF COMPLETED NORMALLY ON THE IBM" -echo "**************JOB EXGFS_GRIB_WAFS.SH.ECF COMPLETED NORMALLY ON THE IBM" -echo "**************JOB EXGFS_GRIB_WAFS.SH.ECF COMPLETED NORMALLY ON THE IBM" -set -x -################################################################################ - -msg="HAS COMPLETED NORMALLY!" -postmsg "$jlogfile" "$msg" - -############## END OF SCRIPT ####################### diff --git a/scripts/exgfs_nawips.sh.ecf b/scripts/exgfs_nawips.sh.ecf deleted file mode 100755 index d283980e62..0000000000 --- a/scripts/exgfs_nawips.sh.ecf +++ /dev/null @@ -1,204 +0,0 @@ -#!/bin/ksh -################################################################### -echo "----------------------------------------------------" -echo "exnawips - convert NCEP GRIB files into GEMPAK Grids" -echo "----------------------------------------------------" -echo "History: Mar 2000 - First implementation of this new script." -echo "S Lilly: May 2008 - add logic to make sure that all of the " -echo " data produced from the restricted ECMWF" -echo " data on the CCS is properly protected." -##################################################################### - -set -xa - -#### If EMC GFS PARA runs hourly file are not available, The ILPOST -#### will set to 3 hour in EMC GFS PARA. -#### Note: ILPOST default set to 1 -export ILPOST=${ILPOST:-1} - -cd $DATA -RUN=$1 -fend=$2 -DBN_ALERT_TYPE=$3 - -export 'PS4=$RUN:$SECONDS + ' - -DATA_RUN=$DATA/$RUN -mkdir -p $DATA_RUN -cd $DATA_RUN - -msg="Begin job for $job" -postmsg "$jlogfile" "$msg" - - -# -NAGRIB=$GEMEXE/nagrib2_nc -# - -cpyfil=gds -garea=dset -gbtbls= -maxgrd=4999 -kxky= -grdarea= -proj= -output=T -pdsext=no - -maxtries=360 -fhcnt=$fstart -while [ $fhcnt -le $fend ] ; do - -if mkdir lock.$fhcnt ; then - cd lock.$fhcnt - cp $FIXgempak/g2varswmo2.tbl g2varswmo2.tbl - cp $FIXgempak/g2vcrdwmo2.tbl g2vcrdwmo2.tbl - cp $FIXgempak/g2varsncep1.tbl g2varsncep1.tbl - cp $FIXgempak/g2vcrdncep1.tbl g2vcrdncep1.tbl - - typeset -Z3 fhr - - fhr=$fhcnt - fhcnt3=`expr $fhr % 3` - - fhr3=$fhcnt - typeset -Z3 fhr3 - - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - -# Set type of Interpolation for WGRIB2 - export opt1=' -set_grib_type same -new_grid_winds earth ' - export opt1uv=' -set_grib_type same -new_grid_winds grid ' - export opt21=' -new_grid_interpolation bilinear -if ' - export opt22=":(LAND|CSNOW|CRAIN|CFRZR|CICEP|ICSEV):" - export opt23=' -new_grid_interpolation neighbor -fi ' - export opt24=' -set_bitmap 1 -set_grib_max_bits 16 -if ' - export opt25=":(APCP|ACPCP|PRATE|CPRAT):" - export opt26=' -set_grib_max_bits 25 -fi -if ' - export opt27=":(APCP|ACPCP|PRATE|CPRAT|DZDT):" - export opt28=' -new_grid_interpolation budget -fi ' - export TRIMRH=$HOMEgfs/ush/trim_rh.sh - - if [ $RUN = "gfs_0p50" ]; then - export GRIBIN=$COMIN/${model}.${cycle}.pgrb2.0p50.f${fhr} - GRIBIN_chk=$COMIN/${model}.${cycle}.pgrb2.0p50.f${fhr}.idx - elif [ $RUN = "gfs_0p25" -o $RUN = "gdas_0p25" -o $RUN = "gfs35_atl" -o $RUN = "gfs35_pac" -o $RUN = "gfs40" ]; then - export GRIBIN=$COMIN/${model}.${cycle}.pgrb2.0p25.f${fhr} - GRIBIN_chk=$COMIN/${model}.${cycle}.pgrb2.0p25.f${fhr}.idx - else - export GRIBIN=$COMIN/${model}.${cycle}.pgrb2.1p00.f${fhr} - GRIBIN_chk=$COMIN/${model}.${cycle}.pgrb2.1p00.f${fhr}.idx - fi - - icnt=1 - while [ $icnt -lt 1000 ] - do - if [ -r $GRIBIN_chk ] ; then - sleep 5 - break - else - msg="The process is waiting ... ${GRIBIN_chk} file to proceed." - postmsg "${jlogfile}" "$msg" - sleep 10 - let "icnt=icnt+1" - fi - if [ $icnt -ge $maxtries ] - then - msg="ABORTING: after 1 hour of waiting for ${GRIBIN_chk} file at F$fhr to end." - postmsg "${jlogfile}" "$msg" - export err=7 ; err_chk - exit $err - fi - done - -case $RUN in - gfs35_pac) -# $COPYGB2 -g "0 6 0 0 0 0 0 0 416 186 0 0 75125000 130000000 48 17000000 260000000 312000 312000 0" -x $GRIBIN grib$fhr -# NEW define gfs35_pac="0 6 0 0 0 0 0 0 416 186 0 -1 75125000 130000000 48 17405000 259480000 312000 312000 0" -# $COPYGB2 -g "0 6 0 0 0 0 0 0 416 186 0 -1 75125000 130000000 48 17405000 259480000 312000 312000 0" -x $GRIBIN grib$fhr - - export gfs35_pac='latlon 130.0:416:0.312 75.125:186:-0.312' - $WGRIB2 $GRIBIN $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid ${gfs35_pac} grib$fhr - $TRIMRH grib$fhr - ;; - gfs35_atl) -# $COPYGB2 -g "0 6 0 0 0 0 0 0 480 242 0 0 75125000 230000000 48 -500000 20000000 312000 312000 0" -x $GRIBIN grib$fhr -# NEW define gfs35_atl="0 6 0 0 0 0 0 0 480 242 0 -1 75125000 230000000 48 -67000 19448000 312000 312000 0" -# $COPYGB2 -g "0 6 0 0 0 0 0 0 480 242 0 -1 75125000 230000000 48 -67000 19448000 312000 312000 0" -x $GRIBIN grib$fhr - - export gfs35_atl='latlon 230.0:480:0.312 75.125:242:-0.312' - $WGRIB2 $GRIBIN $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid ${gfs35_atl} grib$fhr - $TRIMRH grib$fhr - ;; - gfs40) -# $COPYGB2 -g "30 6 0 0 0 0 0 0 185 129 12190000 226541000 8 25000000 265000000 40635000 40635000 0 64 25000000 25000000 0 0" -x $GRIBIN grib$fhr - - export gfs40='lambert:265.0:25.0:25.0 226.541:185:40635.0 12.19:129:40635.0' - $WGRIB2 $GRIBIN $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid ${gfs40} grib$fhr - $TRIMRH grib$fhr - ;; - *) - cp $GRIBIN grib$fhr -esac - - export pgm="nagrib2 F$fhr" - startmsg - - $NAGRIB << EOF - GBFILE = grib$fhr - INDXFL = - GDOUTF = $GEMGRD - PROJ = $proj - GRDAREA = $grdarea - KXKY = $kxky - MAXGRD = $maxgrd - CPYFIL = $cpyfil - GAREA = $garea - OUTPUT = $output - GBTBLS = $gbtbls - GBDIAG = - PDSEXT = $pdsext - l - r -EOF - export err=$?;err_chk - - if [ $SENDCOM = "YES" ] ; then - cpfs $GEMGRD $COMOUT/$GEMGRD - if [ $SENDDBN = "YES" ] ; then - $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \ - $COMOUT/$GEMGRD - fi - fi - cd $DATA_RUN -else - if [ $fhcnt -ge 240 ] ; then - if [ $fhcnt -lt 276 -a $RUN = "gfs_0p50" ] ; then - let fhcnt=fhcnt+6 - else - let fhcnt=fhcnt+12 - fi - elif [ $fhcnt -lt 120 -a $RUN = "gfs_0p25" ] ; then -#### let fhcnt=fhcnt+1 - let fhcnt=fhcnt+$ILPOST - else - let fhcnt=fhcnt+finc - fi -fi -done - -$GEMEXE/gpend -##################################################################### -# GOOD RUN -set +x -echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" -echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" -echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" -set -x -##################################################################### - -msg='Job completed normally.' -echo $msg -postmsg "$jlogfile" "$msg" - -############################### END OF SCRIPT ####################### diff --git a/scripts/exgfs_pmgr.sh b/scripts/exgfs_pmgr.sh new file mode 100755 index 0000000000..dcee75dd95 --- /dev/null +++ b/scripts/exgfs_pmgr.sh @@ -0,0 +1,79 @@ +#! /bin/ksh +# +# Script name: exgfs_pmgr.sh.sms +# +# This script monitors the progress of the gfs_fcst job +# +set -x + +hour=00 +typeset -Z2 hour +TEND=384 +TCP=385 + +if [ -e posthours ]; then + rm -f posthours +fi + +while [ $hour -lt $TCP ]; +do + echo $hour >>posthours + if [ $hour -lt 240 ] + then + if [ $hour -eq 99 ] + then + typeset -Z3 hour + fi + # JY if [ $hour -lt 12 ] + if [ $hour -lt 120 ] + then + let "hour=hour+1" + else + let "hour=hour+3" + fi + else + let "hour=hour+12" + fi +done +postjobs=`cat posthours` + +# +# Wait for all fcst hours to finish +# +icnt=1 +while [ $icnt -lt 1000 ] +do + for fhr in $postjobs + do + fhr3=`printf "%03d" $fhr` + if [ -s ${COMIN}/gfs.${cycle}.logf${fhr}.txt -o -s ${COMIN}/gfs.${cycle}.logf${fhr3}.txt ] + then + if [ $fhr -eq 0 ] + then + ecflow_client --event release_postanl + fi + ecflow_client --event release_post${fhr} + # Remove current fhr from list + postjobs=`echo $postjobs | sed "s/${fhr}//"` + fi + done + + result_check=`echo $postjobs | wc -w` + if [ $result_check -eq 0 ] + then + break + fi + + sleep 10 + icnt=$((icnt + 1)) + if [ $icnt -ge 720 ] + then + msg="ABORTING after 2 hours of waiting for GFS FCST hours $postjobs." + err_exit $msg + fi + +done + +echo Exiting $0 + +exit diff --git a/scripts/exgfs_pmgr.sh.ecf b/scripts/exgfs_pmgr.sh.ecf deleted file mode 100755 index e4c3346466..0000000000 --- a/scripts/exgfs_pmgr.sh.ecf +++ /dev/null @@ -1,79 +0,0 @@ -#! /bin/ksh -# -# Script name: exgfs_pmgr.sh.sms -# -# This script monitors the progress of the gfs_fcst job -# -set -x - -hour=00 -typeset -Z2 hour -TEND=384 -TCP=385 - -if [ -e posthours ]; then - rm -f posthours -fi - -while [ $hour -lt $TCP ]; -do - echo $hour >>posthours - if [ $hour -lt 240 ] - then - if [ $hour -eq 99 ] - then - typeset -Z3 hour - fi - # JY if [ $hour -lt 12 ] - if [ $hour -lt 120 ] - then - let "hour=hour+1" - else - let "hour=hour+3" - fi - else - let "hour=hour+12" - fi -done -postjobs=`cat posthours` - -# -# Wait for all fcst hours to finish -# -icnt=1 -while [ $icnt -lt 1000 ] -do - for fhr in $postjobs - do - fhr3=`printf "%03d" $fhr` - if [ -s ${COMIN}/gfs.${cycle}.logf${fhr}.nemsio -o -s ${COMIN}/gfs.${cycle}.logf${fhr3}.nemsio ] - then - if [ $fhr -eq 0 ] - then - ecflow_client --event release_postanl - fi - ecflow_client --event release_post${fhr} - # Remove current fhr from list - postjobs=`echo $postjobs | sed "s/${fhr}//"` - fi - done - - result_check=`echo $postjobs | wc -w` - if [ $result_check -eq 0 ] - then - break - fi - - sleep 10 - icnt=$((icnt + 1)) - if [ $icnt -ge 720 ] - then - msg="ABORTING after 2 hours of waiting for GFS FCST hours $postjobs." - err_exit $msg - fi - -done - -echo Exiting $0 - -exit diff --git a/scripts/exgfs_postsnd.sh.ecf b/scripts/exgfs_postsnd.sh.ecf deleted file mode 100755 index fc8866bf34..0000000000 --- a/scripts/exgfs_postsnd.sh.ecf +++ /dev/null @@ -1,176 +0,0 @@ -#!/bin/ksh -################################################################ -# Script Name: exgfs_postsnd.sh.sms -# Script Description: Generate GFS BUFR sounding files -# Script History Log: -# 1) 2003-03-25 Hualu Pan First Implementation -# 2) 2010-05-25 V. Krishna Kumar Modified for the GFS -# resolution upgrade -# 3) 2014-08-01 D. Carlis Updated to vertical structure -# and T1534 Resolution -# 4) 2016-11-01 H. Chuang Update to read new model nems output -# 5) 2017-02-21 Guang Ping Lou setup mpmd to speedup the run -# and 1 & 3 hourly output -# 6) 2018-03-22 Guang Ping Lou Take FV3GFS configuration -# parameters as input; make it work for -# both FV3GFS and GFS -# 7) 2018-07-18 Guang Ping Lou Generalize this version to other platforms -################################################################ -set -xa - -cd $DATA -######################################## -msg="HAS BEGUN" -#postmsg "$jlogfile" "$msg" -######################################## - -################################################### -## Run meteogram generator for T574 -################################################### -export JCAP=${JCAP:-1534} -export LEVS=${LEVS:-64} -export LATB=${LATB:-1536} -export LONB=${LONB:-3072} -export STARTHOUR=${STARTHOUR:-00} -export ENDHOUR=${ENDHOUR:-180} -export NEND1=120 ##first period length with time interval = NINT1 -export NINT1=3 ##first period time interval -##export NINT1=1 ##first period time interval -export NINT3=3 ##second period time interval -export NZERO=6 -export INCREMENT=12 -export OUTFILE=meteomrf -export MAKEBUFR=NO -export F00FLAG=YES - -if [ $FHMAX_HF_GFS -gt 0 -a $FHOUT_HF_GFS -gt 0 ] - then - export NINT1=${FHOUT_HF_GFS:-1} - export NEND1=${FHMAX_HF_GFS:-120} - else - export NINT3=${FHOUT_GFS:-3} -fi - -rm -f -r ${COMOUT}/bufr.${cycle} -mkdir -p ${COMOUT}/bufr.${cycle} - -# Extract number of vertical levels from $STARTHOUR atmospheric file -export NEMSIOGET=${NEMSIOGET:-$EXECbufrsnd/nemsio_get} -fhr3=$(printf %03i $STARTHOUR) -ATMFCS=$COMIN/${RUN}.${cycle}.atmf${fhr3}.nemsio -export LEVS=$($NEMSIOGET $ATMFCS dimz | awk '{print $2}') - -### Loop for the hour and wait for the sigma and surface flux file: -export FSTART=$STARTHOUR -# -while [ $FSTART -lt $ENDHOUR ] -do -export FINT=$NINT1 - # Define the end hour for the input - export FEND=`expr $FSTART + $INCREMENT` - if test $FEND -lt 100; then FEND=0$FEND; fi - if [ $FSTART -eq 00 ] - then - export F00FLAG=YES - else - export F00FLAG=NO - fi - - if [ $FEND -eq $ENDHOUR ] - then - export MAKEBUFR=YES - fi - - ic=0 - while [ $ic -lt 1000 ] - do - if [ ! -f $COMIN/${RUN}.${cycle}.logf$FEND.nemsio ] - then - sleep 10 - ic=`expr $ic + 1` - else - break - fi - - if [ $ic -ge 360 ] - then - err_exit "COULD NOT LOCATE logf$FEND file AFTER 1 HOUR" - fi - done - -## 1-hourly output before $NEND1, 3-hourly output after - if [ $FEND -gt $NEND1 ]; then - export FINT=$NINT3 - fi - $USHbufrsnd/gfs_bufr.sh - - export FSTART=$FEND -done - -############################################################## -# Tar and gzip the individual bufr files and send them to /com -############################################################## -cd ${COMOUT}/bufr.${cycle} -tar -cf - . | /usr/bin/gzip > ../${RUN}.${cycle}.bufrsnd.tar.gz -cd $DATA - -######################################## -# Send the single tar file to OSO -######################################## -if test "$SENDDBN" = 'YES' -then - $DBNROOT/bin/dbn_alert MODEL GFS_BUFRSND_TAR $job \ - $COMOUT/${RUN}.${cycle}.bufrsnd.tar.gz -fi - -######################################## -# Create Regional Collectives of BUFR data and -# add appropriate WMO Headers. -######################################## -collect=' 1 2 3 4 5 6 7 8 9' -if [ $machine == "THEIA" -o $machine == "JET" ]; then -for m in ${collect} -do -sh $USHbufrsnd/gfs_sndp.sh $m -done - -################################################ -# Convert the bufr soundings into GEMPAK files -################################################ -sh $USHbufrsnd/gfs_bfr2gpk.sh - -else -rm -rf poe_col -echo "sh $USHbufrsnd/gfs_bfr2gpk.sh " >> poe_col -for m in ${collect} -do -echo "sh $USHbufrsnd/gfs_sndp.sh $m " >> poe_col -done - -mv poe_col cmdfile - -cat cmdfile -chmod +x cmdfile - -##mpirun -n 10 cfp cmdfile -${APRUN_POSTSNDCFP} cmdfile -fi -################################################ -# Convert the bufr soundings into GEMPAK files -################################################ -##$USHbufrsnd/gfs_bfr2gpk.sh - -##################################################################### -# GOOD RUN -set +x -echo "**************JOB GFS_meteogrm COMPLETED NORMALLY ON THE IBM" -echo "**************JOB GFS_meteogrm COMPLETED NORMALLY ON THE IBM" -echo "**************JOB GFS_meteogrm COMPLETED NORMALLY ON THE IBM" -set -x -##################################################################### - -msg='HAS COMPLETED NORMALLY.' -#postmsg "$jlogfile" "$msg" - -############## END OF SCRIPT ####################### - diff --git a/scripts/exgfs_prdgen_manager.sh.ecf b/scripts/exgfs_prdgen_manager.sh similarity index 100% rename from scripts/exgfs_prdgen_manager.sh.ecf rename to scripts/exgfs_prdgen_manager.sh diff --git a/scripts/exgfs_wave_init.sh b/scripts/exgfs_wave_init.sh new file mode 100755 index 0000000000..dff0e55e1f --- /dev/null +++ b/scripts/exgfs_wave_init.sh @@ -0,0 +1,236 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: exwave_init.sh +# Script description: Creates model definition files for WW3 +# +# Author: Jose-Henrique Alves Org: NCEP/EMC Date: 2019-04-20 +# Abstract: This script is the init config for the global multi_grid wave model. +# It creates model definition files with all configurations of spatial +# and spectral grids, as well as physics parameters and time steps. +# +# Script history log: +# 2019-05-06 J-Henrique Alves First Version. +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + set -x + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $DATA + + msg="HAS BEGUN on `hostname`" + postmsg "$jlogfile" "$msg" + msg="Starting MWW3 INIT CONFIG SCRIPT for ${CDUMP}wave" + postmsg "$jlogfile" "$msg" + + set +x + echo ' ' + echo ' ********************************' + echo ' *** MWW3 INIT CONFIG SCRIPT ***' + echo ' ********************************' + echo ' Initial configuration script' + echo " Model identifier : ${CDUMP}wave" + echo ' ' + echo "Starting at : `date`" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# Script will run only if pre-defined NTASKS +# The actual work is distributed over these tasks. + if [ -z ${NTASKS} ] + then + echo "FATAL ERROR: requires NTASKS to be set " + err=1; export err;${errchk} + fi + + set +x + echo ' ' + echo " Script set to run with $NTASKS tasks " + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + +# --------------------------------------------------------------------------- # +# 1. Get files that are used by most child scripts + + set +x + echo 'Preparing input files :' + echo '-----------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 1.a Model definition files + + nmoddef=0 + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + +# Eliminate duplicate grids + array=($WAVECUR_FID $WAVEICE_FID $WAVEWND_FID $waveuoutpGRD $waveGRD $waveesmfGRD $wavesbsGRD $wavepostGRD $waveinterpGRD) + grdALL=`printf "%s\n" "${array[@]}" | sort -u | tr '\n' ' '` + + for grdID in ${grdALL} + do + if [ -f "$COMIN/rundata/${CDUMP}wave.mod_def.${grdID}" ] + then + set +x + echo " Mod def file for $grdID found in ${COMIN}/rundata. copying ...." + [[ "$LOUD" = YES ]] && set -x + cp $COMIN/rundata/${CDUMP}wave.mod_def.${grdID} mod_def.$grdID + + else + set +x + echo " Mod def file for $grdID not found in ${COMIN}/rundata. Setting up to generate ..." + echo ' ' + [[ "$LOUD" = YES ]] && set -x + if [ -f $FIXwave/ww3_grid.inp.$grdID ] + then + cp $FIXwave/ww3_grid.inp.$grdID ww3_grid.inp.$grdID + fi + + if [ -f ww3_grid.inp.$grdID ] + then + set +x + echo ' ' + echo " ww3_grid.inp.$grdID copied ($FIXwave/ww3_grid.inp.$grdID)." + echo ' ' + [[ "$LOUD" = YES ]] && set -x + else + msg="ABNORMAL EXIT: NO INP FILE FOR MODEL DEFINITION FILE" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '*********************************************************** ' + echo '*** FATAL ERROR : NO INP FILE FOR MODEL DEFINITION FILE *** ' + echo '*********************************************************** ' + echo " grdID = $grdID" + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=2;export err;${errchk} + fi + + [[ ! -d $COMOUT/rundata ]] && mkdir -m 775 -p $COMOUT/rundata + if [ ${CFP_MP:-"NO"} = "YES" ]; then + echo "$nmoddef $USHwave/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile + else + echo "$USHwave/wave_grid_moddef.sh $grdID > $grdID.out 2>&1" >> cmdfile + fi + + nmoddef=`expr $nmoddef + 1` + + fi + done + +# 1.a.1 Execute parallel or serialpoe + + if [ "$nmoddef" -gt '0' ] + then + + set +x + echo ' ' + echo " Generating $nmoddef mod def files" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# Set number of processes for mpmd + wavenproc=`wc -l cmdfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + +# 1.a.3 Execute the serial or parallel cmdfile + + set +x + echo ' ' + echo " Executing the mod_def command file at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$NTASKS" -gt '1' ] + then + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdfile + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + fi + exit=$? + else + ./cmdfile + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '********************************************************' + echo '*** FATAL ERROR: POE FAILURE DURING RAW DATA COPYING ***' + echo '********************************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + fi + + fi + +# 1.a.3 File check + + for grdID in ${grdALL} + do + if [ -f ${COMOUT}/rundata/${CDUMP}wave.mod_def.$grdID ] + then + set +x + echo ' ' + echo " mod_def.$grdID succesfully created/copied " + echo ' ' + [[ "$LOUD" = YES ]] && set -x + else + msg="ABNORMAL EXIT: NO MODEL DEFINITION FILE" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '********************************************** ' + echo '*** FATAL ERROR : NO MODEL DEFINITION FILE *** ' + echo '********************************************** ' + echo " grdID = $grdID" + echo ' ' + echo $msg + sed "s/^/$grdID.out : /g" $grdID.out + [[ "$LOUD" = YES ]] && set -x + err=3;export err;${errchk} + fi + done + +# --------------------------------------------------------------------------- # +# 2. Ending + + set +x + echo ' ' + echo "Ending at : `date`" + echo ' ' + echo ' *** End of MWW3 Init Config ***' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + exit $err + +# End of MWW3 init config script ------------------------------------------- # diff --git a/scripts/exgfs_wave_nawips.sh b/scripts/exgfs_wave_nawips.sh new file mode 100755 index 0000000000..c4fa9e764d --- /dev/null +++ b/scripts/exgfs_wave_nawips.sh @@ -0,0 +1,190 @@ +#!/bin/ksh +################################################################### +echo "----------------------------------------------------" +echo "exnawips - convert NCEP GRIB files into GEMPAK Grids" +echo "----------------------------------------------------" +echo "History: Mar 2000 - First implementation of this new script." +echo "Sept 2011 - First implementation of this new script based on" +echo " /nwprod/scripts/exnawips.sh.sms" +echo " March 2020- Modified for GEFSv12.0" +# March-2020 Roberto.Padilla@noaa.gov +##################################################################### + +set -xa + +#export grids=${grids:-'glo_30m at_10m ep_10m wc_10m ao_9km'} #Interpolated grids +export grids=${grids:-'glo_10m gso_15m ao_9km'} #Native grids +export RUNwave=${RUNwave:-${RUN}${COMPONENT}} +export fstart=${fstart:-0} +export FHMAX_WAV=${FHMAX_WAV:-180} #180 Total of hours to process +export FHMAX_HF_WAV=${FHMAX_HF_WAV:-72} +export FHOUT_WAV=${FHOUT_WAV:-6} +export FHOUT_HF_WAV=${FHOUT_HF_WAV:-3} +export maxtries=${maxtries:-720} +export cycle=${cycle:-t${cyc}z} +export GEMwave=${GEMwave:-$HOMEgfs/gempak} +export FIXwave=${FIXwave:-HOMEgfs/fix} +export DATA=${DATA:-${DATAROOT:?}/${jobid}} +if [ ! -d $DATA ];then + mkdir -p $DATA +fi + +cd $DATA +cp $GEMwave/fix/g2varswmo2.tbl . + +cpyfil=gds +garea=dset +gbtbls= +maxgrd=4999 +kxky= +grdarea= +proj= +output=T +pdsext=no +g2tbls=g2varswmo2.tbl +NAGRIB=nagrib2 + +maxtries=15 +fhcnt=$fstart +while [ $fhcnt -le $FHMAX_WAV ]; do + fhr=$(printf "%03d" $fhcnt) + for grid in $grids;do + case $grid in + ao_9km) grdIDin='arctic.9km' + #grdIDout='gfswaveao9km' ;; + grdIDout='gfswavearc' ;; + at_10m) grdIDin='atlocn.0p16' + grdIDout='gfswaveat10m' ;; + ep_10m) grdIDin='epacif.0p16' + grdIDout='gfswaveep10m' ;; + wc_10m) grdIDin='wcoast.0p16' + grdIDout='gfswavewc10m' ;; + glo_30m) grdIDin='global.0p25' + grdIDout='gfswavegl30m' ;; + glo_10m) grdIDin='global.0p16' + #grdIDout='gfswaveg16k' ;; + grdIDout='gfswavenh' ;; + gso_15m) grdIDin='gsouth.0p25' + #grdIDout='gfswaves25k' ;; + grdIDout='gfswavesh' ;; + *) gridIDin= + grdIDout= ;; + esac + GRIBIN=$COMIN/gridded/$RUNwave.$cycle.$grdIDin.f${fhr}.grib2 + GRIBIN_chk=$GRIBIN.idx + + icnt=1 + while [ $icnt -lt 1000 ]; do + if [ -r $GRIBIN_chk ] ; then + break + else + let "icnt=icnt+1" + sleep 20 + fi + if [ $icnt -ge $maxtries ]; then + msg="ABORTING after 5 minutes of waiting for $GRIBIN." + postmsg "$jlogfile" "$msg" + echo ' ' + echo '**************************** ' + echo '*** ERROR : NO GRIB FILE *** ' + echo '**************************** ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + echo "$RUNwave $grdID ${fhr} prdgen $date $cycle : GRIB file missing." >> $wavelog + err=1;export err;${errchk} || exit ${err} + fi + done + + #if [ "$grdIDin" = "global.0p25" && "$grid" = "glo_30m" ]; then + if [ "$grdIDin" = "global.0p25" ]; then + $WGRIB2 -lola 0:720:0.5 -90:361:0.5 gribfile.$grdIDout.f${fhr} grib \ + $GRIBIN 1> out 2>&1 + OK=$? + if [ "$OK" != '0' ]; then + msg="ABNORMAL EXIT: ERROR IN interpolation the global grid" + postmsg "$jlogfile" "$msg" + #set +x + echo ' ' + echo '************************************************************* ' + echo '*** FATAL ERROR : ERROR IN making gribfile.$grdID.f${fhr}*** ' + echo '************************************************************* ' + echo ' ' + echo $msg + #[[ "$LOUD" = YES ]] && set -x + echo "$RUNwave $grdID prdgen $date $cycle : error in grbindex." >> $wavelog + err=2;export err;err_chk + else + #cp $GRIBIN gribfile.$grdID.f${fhr} + GRIBIN=gribfile.$grdIDout.f${fhr} + fi + fi + echo $GRIBIN + + GEMGRD=${grdIDout}_${PDY}${cyc}f${fhr} + + cp $GRIBIN grib_$grid + + startmsg + + $NAGRIB <<-EOF + GBFILE = grib_$grid + INDXFL = + GDOUTF = $GEMGRD + PROJ = $proj + GRDAREA = $grdarea + KXKY = $kxky + MAXGRD = $maxgrd + CPYFIL = $cpyfil + GAREA = $garea + OUTPUT = $output + GBTBLS = $gbtbls + G2TBLS = $g2tbls + GBDIAG = + PDSEXT = $pdsext + l + r + EOF + export err=$?;pgm=$NAGRIB;err_chk + ##################################################### + # GEMPAK DOES NOT ALWAYS HAVE A NON ZERO RETURN CODE + # WHEN IT CAN NOT PRODUCE THE DESIRED GRID. CHECK + # FOR THIS CASE HERE. + ##################################################### + ls -l $GEMGRD + export err=$?;export pgm="GEMPAK CHECK FILE";err_chk + + if [ "$NAGRIB" = "nagrib2" ] ; then + gpend + fi + + if [ $SENDCOM = "YES" ] ; then + cpfs $GEMGRD $COMOUT/$GEMGRD + if [ $SENDDBN = "YES" ] ; then + $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \ + $COMOUT/$GEMGRD + else + echo "##### DBN_ALERT is: MODEL ${DBN_ALERT_TYPE} $job $COMOUT/$GEMGRD#####" + fi + fi + rm grib_$grid + done + if [ $fhcnt -ge $FHMAX_HF_WAV ]; then + inc=$FHOUT_WAV + else + inc=$FHOUT_HF_WAV + fi + let fhcnt=fhcnt+inc +done +##################################################################### +# GOOD RUN +set +x +echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" +echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" +echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" +set -x +##################################################################### +msg='Job completed normally.' +echo $msg +postmsg "$jlogfile" "$msg" +############################### END OF SCRIPT ####################### diff --git a/scripts/exgfs_wave_post_bndpnt.sh b/scripts/exgfs_wave_post_bndpnt.sh new file mode 100755 index 0000000000..17a1376af9 --- /dev/null +++ b/scripts/exgfs_wave_post_bndpnt.sh @@ -0,0 +1,621 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: exgfs_wave_post_bndpnt.sh +# Script description: Creates output products from binary WW3 data +# +# Author: Jose-Henrique Alves Org: NCEP/EMC Date: 2019-12-06 +# Abstract: This script is the boundary point postprocessor for the wave component in GFS. +# +# wave_outp_spec.sh : generates spectral data for output locations +# wave_outp_cat.sh : cats the by hour into the single output file +# wave_tar.sh : tars the spectral and bulletin multiple files +# +# Script history log: +# 2019-12-06 J-Henrique Alves: First Version adapted from HTolman post.sh 2007 +# 2020-06-10 J-Henrique Alves: Porting to R&D machine Hera +# 2020-07-30 Jessica Meixner: Points only - no gridded data + optimization +# 2020-09-29 Jessica Meixner: optimized by changing loop structures +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (Bash) Shell +# Machine: WCOSS-DELL-P3 +# +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + set -x + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $DATA + + # Set wave model ID tag to include member number + # if ensemble; waveMEMB var empty in deterministic + export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} + FHMAX_WAV_IBP=180 + + postmsg "$jlogfile" "HAS BEGUN on `hostname`" + + msg="Starting WAVE BNDPNT POSTPROCESSOR SCRIPT for $WAV_MOD_TAG" + postmsg "$jlogfile" "$msg" + + set +x + echo ' ' + echo ' *****************************************' + echo ' *** WAVE BND PNT POSTPROCESSOR SCRIPT ***' + echo ' *****************************************' + echo ' ' + echo "Starting at : `date`" + echo '-------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + # Script will run only if pre-defined NTASKS + # The actual work is distributed over these tasks. + if [ -z ${NTASKS} ] + then + echo "FATAL ERROR: requires NTASKS to be set " + err=1; export err;${errchk} + exit $err + fi + +# 0.b Defining model grids + + waveuoutpGRD=${waveuoutpGRD:?buoyNotSet} + +# 0.c Define a temporary directory for storing ascii point output files +# and flush it + + export STA_DIR=$DATA/station_ascii_files + if [ -d $STA_DIR ] + then + rm -rf ${STA_DIR} + fi + mkdir -p ${STA_DIR} + mkdir -p ${STA_DIR}/ibp + mkdir -p ${STA_DIR}/ibpfhr + + set +x + echo ' ' + echo 'Grid information :' + echo '-------------------' + echo " Output points : $waveuoutpGRD" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# --------------------------------------------------------------------------- # +# 1. Get files that are used by most child scripts + + exit_code=0 + + set +x + echo ' ' + echo 'Preparing input files :' + echo '-----------------------' + [[ "$LOUD" = YES ]] && set -x + +# 1.a Model definition files and output files (set up using poe) + +# 1.a.1 Set up the parallel command tasks + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + + [[ "$LOUD" = YES ]] && set -x + +# Copy model definition file for points + if [ -f "$COMIN/rundata/${CDUMP}wave.mod_def.${waveuoutpGRD}" ] + then + set +x + echo " Mod def file for $waveuoutpGRD found in ${COMIN}/rundata. copying ...." + [[ "$LOUD" = YES ]] && set -x + + cp -f $COMIN/rundata/${CDUMP}wave.mod_def.${waveuoutpGRD} mod_def.${waveuoutpGRD} + fi + + if [ ! -f mod_def.${waveuoutpGRD} ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo " FATAL ERROR : NO MOD_DEF FILE mod_def.${waveuoutpGRD} " + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO MOD_DEF file mod_def.${waveuoutpGRD}" + err=2; export err;${errchk} + exit $err + else + set +x + echo "File mod_def.${waveuoutpGRD} found. Syncing to all nodes ..." + [[ "$LOUD" = YES ]] && set -x + fi + +# 1.b Output locations file + + rm -f buoy.loc + + if [ -f $FIXwave/wave_${NET}.buoys ] + then + cp -f $FIXwave/wave_${NET}.buoys buoy.loc + fi + + if [ -s buoy.loc ] + then + set +x + echo " buoy.loc and buoy.ibp copied and processed ($FIXwave/wave_${NET}.buoys)." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '************************************* ' + echo ' FATAL ERROR : NO BUOY LOCATION FILE ' + echo '************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO BUOY LOCATION FILE" + err=3; export err;${errchk} + exit $err + fi + + sed -n '/^\$.*/!p' buoy.loc | grep IBP > buoy.ibp + if [ -s buoy.ibp ]; then + set +x + echo " buoy.loc and buoy.ibp copied and processed ($FIXwave/wave_${NET}.buoys)." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '***************************************** ' + echo ' FATAL ERROR : NO IBP BUOY LOCATION FILE ' + echo '***************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO IBP BUOY LOCATION FILE" + err=4; export err;${errchk} + exit $err + fi + +# 1.c Input template files + + if [ -f $FIXwave/ww3_outp_spec.inp.tmpl ] + then + cp -f $FIXwave/ww3_outp_spec.inp.tmpl ww3_outp_spec.inp.tmpl + fi + + if [ -f ww3_outp_spec.inp.tmpl ] + then + set +x + echo " ww3_outp_spec.inp.tmpl copied. Syncing to all grids ..." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '*********************************************** ' + echo '*** ERROR : NO TEMPLATE FOR SPEC INPUT FILE *** ' + echo '*********************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR SPEC INPUT FILE" + exit_code=3 + fi + +# 1.d Getting buoy information for points + + ymdh=`$NDATE -${WAVHINDH} $CDATE` + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + dtspec=3600. # default time step (not used here) + sed -e "s/TIME/$tstart/g" \ + -e "s/DT/$dtspec/g" \ + -e "s/POINT/1/g" \ + -e "s/ITYPE/0/g" \ + -e "s/FORMAT/F/g" \ + ww3_outp_spec.inp.tmpl > ww3_outp.inp + + ln -s mod_def.$waveuoutpGRD mod_def.ww3 + YMD=$(echo $CDATE | cut -c1-8) + HMS="$(echo $CDATE | cut -c9-10)0000" + if [ -f $COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} ] + then + ln -s $COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} ./out_pnt.${waveuoutpGRD} + else + echo '*************************************************** ' + echo " FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.${waveuoutpGRD}.${YMD}.${HMS} " + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $waveuoutpGRD $CDATE $cycle : field output missing." + postmsg "$jlogfile" "FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.${waveuoutpGRD}.${YMD}.${HMS}" + err=5; export err;${errchk} + fi + + rm -f buoy_tmp.loc buoy_log.ww3 ww3_oup.inp + ln -fs ./out_pnt.${waveuoutpGRD} ./out_pnt.ww3 + ln -fs ./mod_def.${waveuoutpGRD} ./mod_def.ww3 + export pgm=ww3_outp;. prep_step + $EXECwave/ww3_outp > buoy_lst.loc 2>&1 + export err=$?;err_chk + + + if [ "$err" != '0' ] && [ ! -f buoy_log.ww3 ] + then + pgm=wave_post + msg="ABNORMAL EXIT: ERROR IN ww3_outp" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_outp *** ' + echo '******************************************** ' + echo ' ' + cat buoy_tmp.loc + echo "$WAV_MOD_TAG post $date $cycle : buoy log file failed to be created." + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=6;export err;${errchk} + exit $err + fi + + +# Create new buoy_log.ww3 including all IBP files + cat buoy.ibp | awk '{print $3}' | sed 's/'\''//g' > ibp_tags + grep -F -f ibp_tags buoy_log.ww3 > buoy_log.tmp + rm -f buoy_log.ibp + mv buoy_log.tmp buoy_log.ibp + + grep -F -f ibp_tags buoy_lst.loc > buoy_tmp1.loc + sed '$d' buoy_tmp1.loc > buoy_tmp2.loc + ibpoints=`awk '{ print $1 }' buoy_tmp2.loc` + Nibp=`wc buoy_tmp2.loc | awk '{ print $1 }'` + rm -f buoy_tmp1.loc buoy_tmp2.loc + if [ -s buoy_log.ibp ] + then + set +x + echo 'IBP log file created. Syncing to all nodes ...' + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '********************************************** ' + echo '*** FATAL ERROR : NO IBP LOG FILE CREATED *** ' + echo '********************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $date $cycle : ibp log file missing." + postmsg "$jlogfile" "FATAL ERROR : NO IBP LOG FILE GENERATED FOR SPEC AND BULLETIN FILES" + err=7;export err;${errchk} + exit $err + fi + +# 1.e Data summary + + set +x + echo ' ' + echo " Input files read and processed at : `date`" + echo ' ' + echo ' Data summary : ' + echo ' ---------------------------------------------' + echo " Sufficient data for Input Boundary Points ($Nibp points)" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# --------------------------------------------------------------------------- # +# 2. Make files for processing boundary points +# +# 2.a Command file set-up + + set +x + echo ' Making command file for wave boundary points ' + [[ "$LOUD" = YES ]] && set -x + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + +# 2.a.1 Loop over forecast time to generate post files + fhr=$FHMIN_WAV + fhrp=$fhr + echo " Starting processing wave boundary points at: `date`" + + while [ $fhr -le $FHMAX_WAV_IBP ]; do + + ymdh=`$NDATE $fhr $CDATE` + YMD=$(echo $ymdh | cut -c1-8) + HMS="$(echo $ymdh | cut -c9-10)0000" + YMDHMS=${YMD}${HMS} + FH3=$(printf %03i $fhr) + + + rm -f tmpcmdfile.$FH3 + touch tmpcmdfile.$FH3 + + mkdir output_$YMDHMS + cd output_$YMDHMS + +# Create instances of directories for spec output + export SPECDATA=${DATA}/output_$YMDHMS + ln -fs $DATA/mod_def.${waveuoutpGRD} mod_def.ww3 + + pfile=$COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} + if [ -f ${pfile} ] + then + ln -fs ${pfile} ./out_pnt.${waveuoutpGRD} + else + echo " FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD.${YMD}.${HMS} + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD.${YMD}.${HMS} + err=8; export err;${errchk} + exit $err + fi + + cd $DATA + export dtspec=3600. + for buoy in $ibpoints + do + echo "$USHwave/wave_outp_spec.sh $buoy $ymdh ibp $SPECDATA > $SPECDATA/ibp_$buoy.out 2>&1" >> tmpcmdfile.$FH3 + done + split -n l/1/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.01 + split -n l/2/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.02 + split -n l/3/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.03 + split -n l/4/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.04 + split -n l/5/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.05 + split -n l/6/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.06 + split -n l/7/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.07 + split -n l/8/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.08 + split -n l/9/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.09 + split -n l/10/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.10 + rm tmpcmdfile.$FH3 + chmod 744 cmdfile.${FH3}.01 cmdfile.${FH3}.02 cmdfile.${FH3}.03 cmdfile.${FH3}.04 + chmod 744 cmdfile.${FH3}.05 cmdfile.${FH3}.06 cmdfile.${FH3}.07 cmdfile.${FH3}.08 + chmod 744 cmdfile.${FH3}.09 cmdfile.${FH3}.10 + echo "$DATA/cmdfile.${FH3}.01" >> cmdfile + echo "$DATA/cmdfile.${FH3}.02" >> cmdfile + echo "$DATA/cmdfile.${FH3}.03" >> cmdfile + echo "$DATA/cmdfile.${FH3}.04" >> cmdfile + echo "$DATA/cmdfile.${FH3}.05" >> cmdfile + echo "$DATA/cmdfile.${FH3}.06" >> cmdfile + echo "$DATA/cmdfile.${FH3}.07" >> cmdfile + echo "$DATA/cmdfile.${FH3}.08" >> cmdfile + echo "$DATA/cmdfile.${FH3}.09" >> cmdfile + echo "$DATA/cmdfile.${FH3}.10" >> cmdfile + + FHINCP=$(( DTPNT_WAV / 3600 )) + if [ $fhr = $fhrp ] + then + fhrp=$((fhr+FHINCP)) + fi + + fhr=$fhrp # no gridded output, loop with out_pnt stride + + done + + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nfile=0 + ifile=0 + iline=1 + ifirst='yes' + nlines=$( wc -l cmdfile | awk '{print $1}' ) + while [ $iline -le $nlines ]; do + line=$( sed -n ''$iline'p' cmdfile ) + if [ -z "$line" ]; then + break + else + if [ "$ifirst" = 'yes' ]; then + echo "#!/bin/sh" > cmdmfile.$nfile + echo "$nfile cmdmfile.$nfile" >> cmdmprog + chmod 744 cmdmfile.$nfile + fi + echo $line >> cmdmfile.$nfile + nfile=$(( nfile + 1 )) + if [ $nfile -eq $NTASKS ]; then + nfile=0 + ifirst='no' + fi + iline=$(( iline + 1 )) + fi + done + fi + + wavenproc=`wc -l cmdfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the boundary point scripts at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$wavenproc" -gt '1' ] + then + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdmprog + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + fi + exit=$? + else + chmod 744 cmdfile + ./cmdfile + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '*************************************' + echo '*** FATAL ERROR: CMDFILE FAILED ***' + echo '*************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=9; export err;${errchk} + exit $err + fi + + +# 2.b Loop over each buoy to cat the final buoy file for all fhr + + cd $DATA + + echo "Creating cmdfile for cat bouy : `date`" + rm -f cmdfile.bouy + touch cmdfile.bouy + chmod 744 cmdfile.bouy + CATOUTDIR=${DATA}/ibp_cat_out + mkdir -p ${CATOUTDIR} + for buoy in $ibpoints + do + echo "$USHwave/wave_outp_cat.sh $buoy $FHMAX_WAV_IBP ibp > ${CATOUTDIR}/ibp_cat_$buoy.out 2>&1" >> cmdfile.bouy + done + + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nfile=0 + ifile=0 + iline=1 + ifirst='yes' + nlines=$( wc -l cmdfile.bouy | awk '{print $1}' ) + while [ $iline -le $nlines ]; do + line=$( sed -n ''$iline'p' cmdfile.bouy ) + if [ -z "$line" ]; then + break + else + if [ "$ifirst" = 'yes' ]; then + echo "#!/bin/sh" > cmdfile.bouy.$nfile + echo "$nfile cmdfile.bouy.$nfile" >> cmdmprogbouy + chmod 744 cmdfile.bouy.$nfile + fi + echo $line >> cmdfile.bouy.$nfile + nfile=$(( nfile + 1 )) + if [ $nfile -eq $NTASKS ]; then + nfile=0 + ifirst='no' + fi + iline=$(( iline + 1 )) + fi + done + fi + + wavenproc=`wc -l cmdfile.bouy | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the boundary point cat script at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$wavenproc" -gt '1' ] + then + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdmprogbouy + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile.bouy + fi + exit=$? + else + chmod 744 ${fcmdnow} + ./${fcmdnow} + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '*************************************' + echo '*** FATAL ERROR: CMDFILE FAILED ***' + echo '*************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=10; export err;${errchk} + exit $err + fi + +# --------------------------------------------------------------------------- # +# 3. Compress point output data into tar files + +# 3.a Set up cmdfile + + rm -f cmdtarfile + touch cmdtarfile + chmod 744 cmdtarfile + + set +x + echo ' ' + echo ' Making command file for taring all point output files.' + + [[ "$LOUD" = YES ]] && set -x + + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG ibp $Nibp > ${WAV_MOD_TAG}_ibp_tar.out 2>&1 " >> cmdtarfile + + wavenproc=`wc -l cmdtarfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the wave_tar scripts at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + chmod 744 cmdtarfile + ./cmdtarfile + exit=$? + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '*************************************' + echo '*** FATAL ERROR: CMDFILE FAILED ***' + echo '*************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=11; export err;${errchk} + exit $err + fi + +# --------------------------------------------------------------------------- # +# 4. Ending output + + set +x + echo ' ' + echo "Ending at : `date`" + echo '-----------' + echo ' ' + echo ' *** End of MWW3 bnd pnt postprocessor ***' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$exit_code" -ne '0' ] + then + echo " FATAL ERROR: Problem in MWW3 BND PNT POST" + msg="ABNORMAL EXIT: Problem in MWW3 BND PNT POST" + postmsg "$jlogfile" "$msg" + echo $msg + err=12; export err;${errchk} + exit $err + else + echo " Wave BndPnt Post Completed Normally " + msg="$job completed normally" + postmsg "$jlogfile" "$msg" + exit 0 + fi + +# End of MWW3 bnd pnt prostprocessor script ---------------------------------------- # diff --git a/scripts/exgfs_wave_post_gridded_sbs.sh b/scripts/exgfs_wave_post_gridded_sbs.sh new file mode 100755 index 0000000000..4487028b1e --- /dev/null +++ b/scripts/exgfs_wave_post_gridded_sbs.sh @@ -0,0 +1,481 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: exgfs_wave_post_gridded_sbs.sh +# Script description: Creates output products from binary WW3 data +# +# Author: Jose-Henrique Alves Org: NCEP/EMC Date: 2019-12-06 +# Abstract: This script is the postprocessor for the wave component in GFS. +# This version runs side-by-side with the GFS fcst step. +# It executes several scripts forpreparing and creating output data +# as follows: +# +# wave_grib2_sbs.sh : generates GRIB2 files. +# wave_grid_interp_ush.sh : interpolates data from new grids to old grids +# +# Script history log: +# 2019-12-06 J-Henrique Alves: First Version adapted from HTolman post.sh 2007 +# 2020-06-10 J-Henrique Alves: Porting to R&D machine Hera +# 2020-07-31 Jessica Meixner: Removing points, now gridded data only +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (Bash) Shell +# Machine: WCOSS-DELL-P3 +# +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + set -x + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + # Set wave model ID tag to include member number + # if ensemble; waveMEMB var empty in deterministic + export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} + + cd $DATA + + postmsg "$jlogfile" "HAS BEGUN on `hostname`" + + msg="Starting WAVE POSTPROCESSOR SCRIPT for $WAV_MOD_TAG" + postmsg "$jlogfile" "$msg" + + set +x + echo ' ' + echo ' *********************************' + echo ' *** WAVE POSTPROCESSOR SCRIPT ***' + echo ' *********************************' + echo ' ' + echo "Starting at : `date`" + echo '-------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# Script will run only if pre-defined NTASKS +# The actual work is distributed over these tasks. + if [ -z ${NTASKS} ] + then + echo "FATAL ERROR: requires NTASKS to be set " + err=1; export err;${errchk} + exit $err + fi + +# 0.c Defining model grids + +# 0.c.1 Grids + + export waveGRD=${waveGRD?Var waveGRD Not Set} + export wavesbsGRD=${wavesbsGRD?Var wavesbsGRD Not Set} + +# 0.c.2 extended global grid and rtma transfer grid + export waveinterpGRD=${waveinterpGRD?Var wavepostGRD Not Set} + export wavepostGRD=${wavepostGRD?Var wavepostGRD Not Set} + + + set +x + echo ' ' + echo 'Grid information :' + echo '-------------------' + echo " Native wave grids : $waveGRD" + echo " Side-by-side grids : $wavesbsGRD" + echo " Interpolated grids : $waveinterpGRD" + echo " Post-process grids : $wavepostGRD" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + +# 0.c.3 Define CDATE_POST as a function of RERUN variable setting + if [ "${RERUN}" = "YES" ]; then + export CDATE_POST=${CDATE_RST} + export FHRUN=`$NHOUR ${CDATE_RST} ${CDATE}` + else # regular run + export CDATE_POST=${CDATE} + export FHRUN=0 + fi + +# --------------------------------------------------------------------------- # +# 1. Get files that are used by most child scripts + + export DOGRB_WAV='YES' #Create grib2 files + export DOGRI_WAV='YES' #Create interpolated grids + + exit_code=0 + + set +x + echo ' ' + echo 'Preparing input files :' + echo '-----------------------' + [[ "$LOUD" = YES ]] && set -x + +# 1.a Model definition files and output files (set up using poe) + +# 1.a.1 Copy model definition files + for grdID in $waveGRD $wavesbsGRD $wavepostGRD $waveinterpGRD + do + if [ -f "$COMIN/rundata/${CDUMP}wave.mod_def.${grdID}" ] + then + set +x + echo " Mod def file for $grdID found in ${COMIN}/rundata. copying ...." + [[ "$LOUD" = YES ]] && set -x + + cp -f $COMIN/rundata/${CDUMP}wave.mod_def.${grdID} mod_def.$grdID + fi + done + +# 1.a.2 Check that model definition files exist + for grdID in $waveGRD $wavesbsGRD $wavepostGRD $waveinterpGRD + do + if [ ! -f mod_def.$grdID ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo " FATAL ERROR : NO MOD_DEF FILE mod_def.$grdID " + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO MOD_DEF file mod_def.$grdID" + err=2; export err;${errchk} + exit $err + DOGRB_WAV='NO' + else + set +x + echo "File mod_def.$grdID found. Syncing to all nodes ..." + [[ "$LOUD" = YES ]] && set -x + fi + done + + +# 1.b Input template files + + if [ "$DOGRI_WAV" = 'YES' ] + then + for intGRD in $waveinterpGRD + do + if [ -f $FIXwave/${intGRD}_interp.inp.tmpl ] + then + cp -f $FIXwave/${intGRD}_interp.inp.tmpl ${intGRD}_interp.inp.tmpl + fi + + if [ -f ${intGRD}_interp.inp.tmpl ] + then + set +x + echo " ${intGRD}_interp.inp.tmpl copied. Syncing to all nodes ..." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '*********************************************** ' + echo '*** ERROR : NO TEMPLATE FOR GRINT INPUT FILE *** ' + echo '*********************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $date $cycle : GRINT template file missing." + postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR GRINT INPUT FILE" + exit_code=1 + DOGRI_WAV='NO' + fi + done + fi + + if [ "$DOGRB_WAV" = 'YES' ] + then + for grbGRD in $waveinterpGRD $wavepostGRD + do + if [ -f $FIXwave/ww3_grib2.${grbGRD}.inp.tmpl ] + then + cp -f $FIXwave/ww3_grib2.${grbGRD}.inp.tmpl ww3_grib2.${grbGRD}.inp.tmpl + fi + + if [ -f ww3_grib2.${grbGRD}.inp.tmpl ] + then + set +x + echo " ww3_grib2.${grbGRD}.inp.tmpl copied. Syncing to all nodes ..." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '*********************************************** ' + echo "*** ERROR : NO TEMPLATE FOR ${grbGRD} GRIB INPUT FILE *** " + echo '*********************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR GRIB2 INPUT FILE" + exit_code=2 + DOGRB_WAV='NO' + fi + done + fi + + +# 1.c Data summary + + set +x + echo ' ' + echo " Input files read and processed at : `date`" + echo ' ' + echo ' Data summary : ' + echo ' ---------------------------------------------' + echo " Sufficient data for GRID interpolation : $DOGRI_WAV" + echo " Sufficient data for GRIB files : $DOGRB_WAV" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# --------------------------------------------------------------------------- # +# 2. Make consolidated grib2 file for side-by-side grids and interpolate +# onto extended grids +# +# 2.a Command file set-up + + set +x + echo ' Making command file for sbs grib2 and GRID Interpolation ' + [[ "$LOUD" = YES ]] && set -x + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + +# 1.a.2 Loop over forecast time to generate post files +# When executed side-by-side, serial mode (cfp when run after the fcst step) +# Contingency for RERUN=YES + if [ "${RERUN}" = "YES" ]; then + fhr=$((FHRUN + FHMIN_WAV)) + if [ $FHMAX_HF_WAV -gt 0 ] && [ $FHOUT_HF_WAV -gt 0 ] && [ $fhr -lt $FHMAX_HF_WAV ]; then + FHINCG=$FHOUT_HF_WAV + else + FHINCG=$FHOUT_WAV + fi + fhr=$((fhr + FHINCG)) + else + fhr=$FHMIN_WAV + fi + fhrg=$fhr + iwaitmax=120 # Maximum loop cycles for waiting until wave component output file is ready (fails after max) + while [ $fhr -le $FHMAX_WAV ]; do + + ymdh=`$NDATE $fhr $CDATE` + YMD=$(echo $ymdh | cut -c1-8) + HMS="$(echo $ymdh | cut -c9-10)0000" + YMDHMS=${YMD}${HMS} + FH3=$(printf %03i $fhr) + + fcmdnow=cmdfile.${FH3} + fcmdigrd=icmdfile.${FH3} + rm -f ${fcmdnow} ${fcmdigrd} + touch ${fcmdnow} ${fcmdigrd} + mkdir output_$YMDHMS + cd output_$YMDHMS + +# Create instances of directories for gridded output + export GRIBDATA=${DATA}/output_$YMDHMS + export GRDIDATA=${DATA}/output_$YMDHMS + +# Gridded data (main part, need to be run side-by-side with forecast + + if [ $fhr = $fhrg ] + then + iwait=0 + for wavGRD in ${waveGRD} ; do + gfile=$COMIN/rundata/${WAV_MOD_TAG}.out_grd.${wavGRD}.${YMD}.${HMS} + while [ ! -s ${gfile} ]; do sleep 10; let iwait=iwait+1; done + if [ $iwait -eq $iwaitmax ]; then + echo '*************************************************** ' + echo " FATAL ERROR : NO RAW FIELD OUTPUT FILE out_grd.$grdID " + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $grdID $date $cycle : field output missing." + postmsg "$jlogfile" "NON-FATAL ERROR : NO RAW FIELD OUTPUT FILE out_grd.$grdID" + err=3; export err;${errchk} + exit $err + fi + ln -s ${gfile} ./out_grd.${wavGRD} + done + + if [ "$DOGRI_WAV" = 'YES' ] + then + nigrd=1 + for grdID in $waveinterpGRD + do + ymdh_int=`$NDATE -${WAVHINDH} $ymdh`; dt_int=3600.; n_int=9999 ; + echo "$USHwave/wave_grid_interp_sbs.sh $grdID $ymdh_int $dt_int $n_int > grint_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} + if [ "$DOGRB_WAV" = 'YES' ] + then + gribFL=\'`echo ${OUTPARS_WAV}`\' + case $grdID in + glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; + glo_30mxt) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=11 ;; + glo_30m) GRDNAME='global' ; GRDRES=0p50 ; GRIDNR=255 ; MODNR=11 ;; + at_10m) GRDNAME='atlocn' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; + ep_10m) GRDNAME='epacif' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; + wc_10m) GRDNAME='wcoast' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; + ak_10m) GRDNAME='alaska' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; + esac + echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdigrd}.${nigrd} + fi + #echo "pwd" >> ${fcmdnow} + echo "${GRIBDATA}/${fcmdigrd}.${nigrd}" >> ${fcmdnow} + chmod 744 ${fcmdigrd}.${nigrd} + nigrd=$((nigrd+1)) + done + fi + + if [ "$DOGRB_WAV" = 'YES' ] + then + for grdID in ${wavepostGRD} # First concatenate grib files for sbs grids + do + gribFL=\'`echo ${OUTPARS_WAV}`\' + case $grdID in + aoc_9km) GRDNAME='arctic' ; GRDRES=9km ; GRIDNR=255 ; MODNR=11 ;; + ant_9km) GRDNAME='antarc' ; GRDRES=9km ; GRIDNR=255 ; MODNR=11 ;; + glo_10m) GRDNAME='global' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; + gnh_10m) GRDNAME='global' ; GRDRES=0p16 ; GRIDNR=255 ; MODNR=11 ;; + gsh_15m) GRDNAME='gsouth' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; + glo_15m) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; + ao_20m) GRDNAME='arctic' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;; + so_20m) GRDNAME='antarc' ; GRDRES=0p33 ; GRIDNR=255 ; MODNR=11 ;; + glo_15mxt) GRDNAME='global' ; GRDRES=0p25 ; GRIDNR=255 ; MODNR=11 ;; + esac + echo "$USHwave/wave_grib2_sbs.sh $grdID $GRIDNR $MODNR $ymdh $fhr $GRDNAME $GRDRES $gribFL > grib_$grdID.out 2>&1" >> ${fcmdnow} + done + fi + + fi + + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nfile=0 + ifile=0 + iline=1 + ifirst='yes' + nlines=$( wc -l ${fcmdnow} | awk '{print $1}' ) + while [ $iline -le $nlines ]; do + line=$( sed -n ''$iline'p' ${fcmdnow} ) + if [ -z "$line" ]; then + break + else + if [ "$ifirst" = 'yes' ]; then + echo "#!/bin/sh" > cmdmfile.$nfile + echo "$nfile cmdmfile.$nfile" >> cmdmprog + chmod 744 cmdmfile.$nfile + fi + echo $line >> cmdmfile.$nfile + nfile=$(( nfile + 1 )) + if [ $nfile -eq $NTASKS ]; then + nfile=0 + ifirst='no' + fi + iline=$(( iline + 1 )) + fi + done + fi + + wavenproc=`wc -l ${fcmdnow} | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the grib2_sbs scripts at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$wavenproc" -gt '1' ] + then + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdmprog + else + ${wavempexec} ${wavenproc} ${wave_mpmd} ${fcmdnow} + fi + exit=$? + else + chmod 744 ${fcmdnow} + ./${fcmdnow} + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '*************************************' + echo '*** FATAL ERROR: CMDFILE FAILED ***' + echo '*************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=4; export err;${errchk} + exit $err + fi + + rm -f out_grd.* # Remove large binary grid output files + + cd $DATA + + FHINCG=$(( DTFLD_WAV / 3600 )) + if [ $fhr = $fhrg ] + then +# Check if grib2 file created + ENSTAG="" + if [ ${waveMEMB} ]; then ENSTAG=".${membTAG}${waveMEMB}" ; fi + gribchk=${CDUMP}wave.${cycle}${ENSTAG}.${GRDNAME}.${GRDRES}.f${FH3}.grib2 + if [ ! -s ${COMOUT}/gridded/${gribchk} ]; then + set +x + echo ' ' + echo '********************************************' + echo "*** FATAL ERROR: $gribchk not generated " + echo '********************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=5; export err;${errchk} + exit $err + fi + if [ $FHMAX_HF_WAV -gt 0 ] && [ $FHOUT_HF_WAV -gt 0 ] && [ $fhr -lt $FHMAX_HF_WAV ]; then + FHINCG=$FHOUT_HF_WAV + else + FHINCG=$FHOUT_WAV + fi + fhrg=$((fhr+FHINCG)) + fi + echo $fhrg + + fhr=$fhrg #loop with out_grd stride + + done + +# --------------------------------------------------------------------------- # +# 7. Ending output + + set +x + echo ' ' + echo "Ending at : `date`" + echo '-----------' + echo ' ' + echo ' *** End of MWW3 postprocessor ***' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$exit_code" -ne '0' ] + then + echo " FATAL ERROR: Problem in MWW3 POST" + msg="ABNORMAL EXIT: Problem in MWW3 POST" + postmsg "$jlogfile" "$msg" + echo $msg + err=6; export err;${errchk} + exit $err + else + echo " Side-by-Side Wave Post Completed Normally " + msg="$job completed normally" + postmsg "$jlogfile" "$msg" + exit 0 + fi + +# End of MWW3 prostprocessor script ---------------------------------------- # diff --git a/scripts/exgfs_wave_post_pnt.sh b/scripts/exgfs_wave_post_pnt.sh new file mode 100755 index 0000000000..9028595610 --- /dev/null +++ b/scripts/exgfs_wave_post_pnt.sh @@ -0,0 +1,704 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: exgfs_wave_post_pnt.sh +# Script description: Creates point output products from binary WW3 data +# +# Author: Jose-Henrique Alves Org: NCEP/EMC Date: 2019-12-06 +# Abstract: This script is the point postprocessor for the wave component in GFS. +# It executes several scripts forpreparing and creating output data +# as follows: +# +# wave_outp_spec.sh : generates spectral data for output locations +# wave_outp_bull.sh : generates bulletins for output locations +# wave_outp_cat.sh : cats the by hour into the single output file +# wave_tar.sh : tars the spectral and bulletin multiple files +# +# Script history log: +# 2019-12-06 J-Henrique Alves: First Version adapted from HTolman post.sh 2007 +# 2020-06-10 J-Henrique Alves: Porting to R&D machine Hera +# 2020-07-30 Jessica Meixner: Points only - no gridded data +# 2020-09-29 Jessica Meixner: optimized by changing loop structures +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (Bash) Shell +# Machine: WCOSS-DELL-P3 +# +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + set -x + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $DATA + + # Set wave model ID tag to include member number + # if ensemble; waveMEMB var empty in deterministic + export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} + + postmsg "$jlogfile" "HAS BEGUN on `hostname`" + + msg="Starting WAVE PNT POSTPROCESSOR SCRIPT for $WAV_MOD_TAG" + postmsg "$jlogfile" "$msg" + + set +x + echo ' ' + echo ' *************************************' + echo ' *** WAVE PNT POSTPROCESSOR SCRIPT ***' + echo ' *************************************' + echo ' ' + echo "Starting at : `date`" + echo '-------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# Script will run only if pre-defined NTASKS +# The actual work is distributed over these tasks. + if [ -z ${NTASKS} ] + then + echo "FATAL ERROR: requires NTASKS to be set " + err=1; export err;${errchk} + exit $err + fi + +# 0.c Defining model grids + + waveuoutpGRD=${waveuoutpGRD:?buoyNotSet} + +# 0.c.1 Define a temporary directory for storing ascii point output files +# and flush it + + export STA_DIR=$DATA/station_ascii_files + if [ -d $STA_DIR ] + then + rm -rf ${STA_DIR} + fi + mkdir -p ${STA_DIR} + mkdir -p ${STA_DIR}/spec + mkdir -p ${STA_DIR}/bull + mkdir -p ${STA_DIR}/cbull + mkdir -p ${STA_DIR}/specfhr + mkdir -p ${STA_DIR}/bullfhr + mkdir -p ${STA_DIR}/cbullfhr + + set +x + echo ' ' + echo 'Grid information :' + echo '-------------------' + echo " Output points : $waveuoutpGRD" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# --------------------------------------------------------------------------- # +# 1. Get files that are used by most child scripts + + export DOPNT_WAV='YES' # Station data + export DOSPC_WAV='YES' # Spectral post + export DOBLL_WAV='YES' # Bulletin post + + exit_code=0 + + set +x + echo ' ' + echo 'Preparing input files :' + echo '-----------------------' + [[ "$LOUD" = YES ]] && set -x + +# 1.a Model definition files and output files (set up using poe) + +# 1.a.1 Set up the parallel command tasks + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + + [[ "$LOUD" = YES ]] && set -x + +# Copy model definition files + for grdID in $waveuoutpGRD + do + if [ -f "$COMIN/rundata/${CDUMP}wave.mod_def.${grdID}" ] + then + set +x + echo " Mod def file for $grdID found in ${COMIN}/rundata. copying ...." + [[ "$LOUD" = YES ]] && set -x + + cp -f $COMIN/rundata/${CDUMP}wave.mod_def.${grdID} mod_def.$grdID + iloop=`expr $iloop + 1` + fi + done + + for grdID in $waveuoutpGRD + do + if [ ! -f mod_def.$grdID ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo " FATAL ERROR : NO MOD_DEF FILE mod_def.$grdID " + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO MOD_DEF file mod_def.$grdID" + err=2; export err;${errchk} + exit $err + else + set +x + echo "File mod_def.$grdID found. Syncing to all nodes ..." + [[ "$LOUD" = YES ]] && set -x + fi + done + +# 1.c Output locations file + + rm -f buoy.loc + + if [ -f $FIXwave/wave_${NET}.buoys ] + then + cp -f $FIXwave/wave_${NET}.buoys buoy.loc.temp +# Reverse grep to exclude IBP points + sed -n '/^\$.*/!p' buoy.loc.temp | grep -v IBP > buoy.loc + fi + + if [ -s buoy.loc ] + then + set +x + echo " buoy.loc and buoy.ibp copied and processed ($FIXwave/wave_${NET}.buoys)." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '************************************* ' + echo ' FATAL ERROR : NO BUOY LOCATION FILE ' + echo '************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO BUOY LOCATION FILE" + err=3; export err;${errchk} + exit $err + DOPNT_WAV='NO' + DOSPC_WAV='NO' + DOBLL_WAV='NO' + fi + +# 1.d Input template files + + if [ -f $FIXwave/ww3_outp_spec.inp.tmpl ] + then + cp -f $FIXwave/ww3_outp_spec.inp.tmpl ww3_outp_spec.inp.tmpl + fi + + if [ -f ww3_outp_spec.inp.tmpl ] + then + set +x + echo " ww3_outp_spec.inp.tmpl copied. Syncing to all grids ..." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '*********************************************** ' + echo '*** ERROR : NO TEMPLATE FOR SPEC INPUT FILE *** ' + echo '*********************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR SPEC INPUT FILE" + exit_code=3 + DOSPC_WAV='NO' + DOBLL_WAV='NO' + fi + + if [ -f $FIXwave/ww3_outp_bull.inp.tmpl ] + then + cp -f $FIXwave/ww3_outp_bull.inp.tmpl ww3_outp_bull.inp.tmpl + fi + + if [ -f ww3_outp_bull.inp.tmpl ] + then + set +x + echo " ww3_outp_bull.inp.tmpl copied. Syncing to all nodes ..." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '*************************************************** ' + echo '*** ERROR : NO TEMPLATE FOR BULLETIN INPUT FILE *** ' + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "NON-FATAL ERROR : NO TEMPLATE FOR BULLETIN INPUT FILE" + exit_code=4 + DOBLL_WAV='NO' + fi + +# 1.e Getting buoy information for points + + if [ "$DOSPC_WAV" = 'YES' ] || [ "$DOBLL_WAV" = 'YES' ] + then + ymdh=`$NDATE -${WAVHINDH} $CDATE` + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + dtspec=3600. # default time step (not used here) + sed -e "s/TIME/$tstart/g" \ + -e "s/DT/$dtspec/g" \ + -e "s/POINT/1/g" \ + -e "s/ITYPE/0/g" \ + -e "s/FORMAT/F/g" \ + ww3_outp_spec.inp.tmpl > ww3_outp.inp + + ln -s mod_def.$waveuoutpGRD mod_def.ww3 + YMD=$(echo $CDATE | cut -c1-8) + HMS="$(echo $CDATE | cut -c9-10)0000" + if [ -f $COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} ] + then + ln -s $COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} ./out_pnt.${waveuoutpGRD} + else + echo '*************************************************** ' + echo " FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.${waveuoutpGRD}.${YMD}.${HMS} " + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + echo "$WAV_MOD_TAG post $waveuoutpGRD $CDATE $cycle : field output missing." + postmsg "$jlogfile" "FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.${waveuoutpGRD}.${YMD}.${HMS}" + err=4; export err;${errchk} + fi + + rm -f buoy_tmp.loc buoy_log.ww3 ww3_oup.inp + ln -fs ./out_pnt.${waveuoutpGRD} ./out_pnt.ww3 + ln -fs ./mod_def.${waveuoutpGRD} ./mod_def.ww3 + export pgm=ww3_outp;. prep_step + $EXECwave/ww3_outp > buoy_lst.loc 2>&1 + export err=$?;err_chk + + + if [ "$err" != '0' ] && [ ! -f buoy_log.ww3 ] + then + pgm=wave_post + msg="ABNORMAL EXIT: ERROR IN ww3_outp" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_outp *** ' + echo '******************************************** ' + echo ' ' + cat buoy_tmp.loc + echo "$WAV_MOD_TAG post $date $cycle : buoy log file failed to be created." + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=5;export err;${errchk} + DOSPC_WAV='NO' + DOBLL_WAV='NO' + exit $err + fi + +# Create new buoy_log.ww3 excluding all IBP files + cat buoy.loc | awk '{print $3}' | sed 's/'\''//g' > ibp_tags + grep -F -f ibp_tags buoy_log.ww3 > buoy_log.tmp + rm -f buoy_log.dat + mv buoy_log.tmp buoy_log.dat + + grep -F -f ibp_tags buoy_lst.loc > buoy_tmp1.loc + sed '$d' buoy_tmp1.loc > buoy_tmp2.loc + buoys=`awk '{ print $1 }' buoy_tmp2.loc` + Nb=`wc buoy_tmp2.loc | awk '{ print $1 }'` + rm -f buoy_tmp1.loc buoy_tmp2.loc + + if [ -s buoy_log.dat ] + then + set +x + echo 'Buoy log file created. Syncing to all nodes ...' + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo ' ' + echo '**************************************** ' + echo '*** ERROR : NO BUOY LOG FILE CREATED *** ' + echo '**************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO BUOY LOG FILE GENERATED FOR SPEC AND BULLETIN FILES" + err=6;export err;${errchk} + DOSPC_WAV='NO' + DOBLL_WAV='NO' + fi + + fi + +# 1.f Data summary + + set +x + echo ' ' + echo " Input files read and processed at : `date`" + echo ' ' + echo ' Data summary : ' + echo ' ---------------------------------------------' + echo " Sufficient data for spectral files : $DOSPC_WAV ($Nb points)" + echo " Sufficient data for bulletins : $DOBLL_WAV ($Nb points)" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# --------------------------------------------------------------------------- # +# 2. Make files for processing boundary points +# +# 2.a Command file set-up + + set +x + echo ' Making command file for wave post points ' + [[ "$LOUD" = YES ]] && set -x + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + +# 1.a.2 Loop over forecast time to generate post files + fhr=$FHMIN_WAV + while [ $fhr -le $FHMAX_WAV ]; do + + echo " Creating the wave point scripts at : `date`" + ymdh=`$NDATE $fhr $CDATE` + YMD=$(echo $ymdh | cut -c1-8) + HMS="$(echo $ymdh | cut -c9-10)0000" + YMDHMS=${YMD}${HMS} + FH3=$(printf %03i $fhr) + + rm -f tmpcmdfile.${FH3} + touch tmpcmdfile.${FH3} + mkdir output_$YMDHMS + cd output_$YMDHMS + +# Create instances of directories for spec and gridded output + export SPECDATA=${DATA}/output_$YMDHMS + export BULLDATA=${DATA}/output_$YMDHMS + ln -fs $DATA/mod_def.${waveuoutpGRD} mod_def.ww3 + + pfile=$COMIN/rundata/${WAV_MOD_TAG}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} + if [ -f ${pfile} ] + then + ln -fs ${pfile} ./out_pnt.${waveuoutpGRD} + else + echo " FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD.${YMD}.${HMS} " + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : NO RAW POINT OUTPUT FILE out_pnt.$waveuoutpGRD.${YMD}.${HMS}" + err=7; export err;${errchk} + exit $err + fi + + cd $DATA + + if [ "$DOSPC_WAV" = 'YES' ] + then + export dtspec=3600. + for buoy in $buoys + do + echo "$USHwave/wave_outp_spec.sh $buoy $ymdh spec $SPECDATA > $SPECDATA/spec_$buoy.out 2>&1" >> tmpcmdfile.$FH3 + done + fi + + if [ "$DOBLL_WAV" = 'YES' ] + then + export dtspec=3600. + for buoy in $buoys + do + echo "$USHwave/wave_outp_spec.sh $buoy $ymdh bull $SPECDATA > $SPECDATA/bull_$buoy.out 2>&1" >> tmpcmdfile.$FH3 + done + fi + + split -n l/1/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.01 + split -n l/2/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.02 + split -n l/3/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.03 + split -n l/4/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.04 + split -n l/5/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.05 + split -n l/6/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.06 + split -n l/7/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.07 + split -n l/8/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.08 + split -n l/9/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.09 + split -n l/10/10 tmpcmdfile.$FH3 > cmdfile.${FH3}.10 + + rm tmpcmdfile.$FH3 + chmod 744 cmdfile.${FH3}.01 cmdfile.${FH3}.02 cmdfile.${FH3}.03 cmdfile.${FH3}.04 + chmod 744 cmdfile.${FH3}.05 cmdfile.${FH3}.06 cmdfile.${FH3}.07 cmdfile.${FH3}.08 + chmod 744 cmdfile.${FH3}.09 cmdfile.${FH3}.10 + echo "$DATA/cmdfile.${FH3}.01" >> cmdfile + echo "$DATA/cmdfile.${FH3}.02" >> cmdfile + echo "$DATA/cmdfile.${FH3}.03" >> cmdfile + echo "$DATA/cmdfile.${FH3}.04" >> cmdfile + echo "$DATA/cmdfile.${FH3}.05" >> cmdfile + echo "$DATA/cmdfile.${FH3}.06" >> cmdfile + echo "$DATA/cmdfile.${FH3}.07" >> cmdfile + echo "$DATA/cmdfile.${FH3}.08" >> cmdfile + echo "$DATA/cmdfile.${FH3}.09" >> cmdfile + echo "$DATA/cmdfile.${FH3}.10" >> cmdfile + + + FHINCP=$(( DTPNT_WAV / 3600 )) + fhrp=$((fhr+FHINCP)) + fhr=$fhrp # no gridded output, loop with out_pnt stride + + done + + + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nfile=0 + ifile=0 + iline=1 + ifirst='yes' + nlines=$( wc -l cmdfile | awk '{print $1}' ) + while [ $iline -le $nlines ]; do + line=$( sed -n ''$iline'p' cmdfile ) + if [ -z "$line" ]; then + break + else + if [ "$ifirst" = 'yes' ]; then + echo "#!/bin/sh" > cmdmfile.$nfile + echo "$nfile cmdmfile.$nfile" >> cmdmprog + chmod 744 cmdmfile.$nfile + fi + echo $line >> cmdmfile.$nfile + nfile=$(( nfile + 1 )) + if [ $nfile -eq $NTASKS ]; then + nfile=0 + ifirst='no' + fi + iline=$(( iline + 1 )) + fi + done + fi + + wavenproc=`wc -l cmdfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the wave point scripts at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$wavenproc" -gt '1' ] + then + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdmprog + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + fi + exit=$? + else + chmod 744 cmdfile + ./cmdfile + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '*************************************' + echo '*** FATAL ERROR: CMDFILE FAILED ***' + echo '*************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=8; export err;${errchk} + exit $err + fi + +# 2.b Loop over each buoy to cat the final buoy file for all fhr + + cd $DATA + + echo "Before create cmdfile for cat bouy : `date`" + rm -f cmdfile.bouy + touch cmdfile.bouy + chmod 744 cmdfile.bouy + CATOUTDIR=${DATA}/pnt_cat_out + mkdir -p ${CATOUTDIR} + + if [ "$DOSPC_WAV" = 'YES' ] + then + for buoy in $buoys + do + echo "$USHwave/wave_outp_cat.sh $buoy $FHMAX_WAV spec > ${CATOUTDIR}/spec_cat_$buoy.out 2>&1" >> cmdfile.bouy + done + fi + + if [ "$DOBLL_WAV" = 'YES' ] + then + for buoy in $buoys + do + echo "$USHwave/wave_outp_cat.sh $buoy $FHMAX_WAV bull > ${CATOUTDIR}/bull_cat_$buoy.out 2>&1" >> cmdfile.bouy + done + fi + + if [ ${CFP_MP:-"NO"} = "YES" ]; then + nfile=0 + ifile=0 + iline=1 + ifirst='yes' + nlines=$( wc -l cmdfile.bouy | awk '{print $1}' ) + while [ $iline -le $nlines ]; do + line=$( sed -n ''$iline'p' cmdfile.bouy ) + if [ -z "$line" ]; then + break + else + if [ "$ifirst" = 'yes' ]; then + echo "#!/bin/sh" > cmdfile.bouy.$nfile + echo "$nfile cmdfile.bouy.$nfile" >> cmdmprogbouy + chmod 744 cmdfile.bouy.$nfile + fi + echo $line >> cmdfile.bouy.$nfile + nfile=$(( nfile + 1 )) + if [ $nfile -eq $NTASKS ]; then + nfile=0 + ifirst='no' + fi + iline=$(( iline + 1 )) + fi + done + fi + + wavenproc=`wc -l cmdfile.bouy | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the boundary point cat script at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$wavenproc" -gt '1' ] + then + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdmprogbouy + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile.bouy + fi + exit=$? + else + chmod 744 ${fcmdnow} + ./${fcmdnow} + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '*************************************' + echo '*** FATAL ERROR: CMDFILE FAILED ***' + echo '*************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=9; export err;${errchk} + exit $err + fi + + +# --------------------------------------------------------------------------- # +# 3. Compress point output data into tar files + +# 3.a Set up cmdfile + + rm -f cmdtarfile + touch cmdtarfile + chmod 744 cmdtarfile + + set +x + echo ' ' + echo ' Making command file for taring all point output files.' + + [[ "$LOUD" = YES ]] && set -x + +# 6.b Spectral data files + + if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0; fi + + if [ ${CFP_MP:-"NO"} = "YES" ]; then + echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + nm=$(( nm + 1 )) + echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + nm=$(( nm + 1 )) + echo "$nm $USHwave/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + nm=$(( nm + 1 )) + else + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG spec $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG bull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + echo "$USHwave/wave_tar.sh $WAV_MOD_TAG cbull $Nb > ${WAV_MOD_TAG}_spec_tar.out 2>&1 " >> cmdtarfile + fi + + wavenproc=`wc -l cmdtarfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the wave_tar scripts at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$wavenproc" -gt '1' ] + then + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdtarfile + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdtarfile + fi + exit=$? + else + chmod 744 cmdtarfile + ./cmdtarfile + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '*************************************' + echo '*** FATAL ERROR: CMDFILE FAILED ***' + echo '*************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=10; export err;${errchk} + exit $err + fi + +# --------------------------------------------------------------------------- # +# 4. Ending output + + set +x + echo ' ' + echo "Ending at : `date`" + echo '-----------' + echo ' ' + echo ' *** End of MWW3 pnt postprocessor ***' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$exit_code" -ne '0' ] + then + echo " FATAL ERROR: Problem in MWW3 PNT POST" + msg="ABNORMAL EXIT: Problem in MWW3 PNT POST" + postmsg "$jlogfile" "$msg" + echo $msg + err=11; export err;${errchk} + exit $err + else + echo " Point Wave Post Completed Normally " + msg="$job completed normally" + postmsg "$jlogfile" "$msg" + exit 0 + fi + +# End of MWW3 point prostprocessor script ---------------------------------------- # diff --git a/scripts/exgfs_wave_prdgen_bulls.sh b/scripts/exgfs_wave_prdgen_bulls.sh new file mode 100755 index 0000000000..4eb511309e --- /dev/null +++ b/scripts/exgfs_wave_prdgen_bulls.sh @@ -0,0 +1,251 @@ +#!/bin/bash +############################################################################### +# # +# This script is the product generator ("graphics job") for the # +# WW3 wave model. # +# # +# Remarks : # +# - Supplemental error output is witten to the gfswave_prdgbulls.log file. # +# # +# # +# Origination : 05/02/2007 # +# Last update : 08/20/2020 # +# # +# Aug/2020 RPadilla & JHAlves - Merging wave scripts to GFSv16 global workflow# +# # +############################################################################### +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + set -xa + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + +# PATH for working and home directories + export RUNwave=${RUNwave:-${RUN}${COMPONENT}} + export envir=${envir:-ops} + export cyc=${cyc:-00} + export cycle=${cycle:-t${cyc}z} + export pgmout=OUTPUT.$$ + export DATA=${DATA:-${DATAROOT:?}/${job}.$$} + #export CODEwave=${CODEwave:-${NWROOT}/${NET}_code.${wave_code_ver}/${code_pkg}} + export EXECwave=${EXECwave:-$HOMEgfs/exec} + export FIXwave=${FIXwave:-$HOMEgfs/fix} + export PARMwave=${PARMwave:-$HOMEgfs/parm/parm_wave} + export USHwave=${USHwave:-$HOMEgfs/ush} + #export EXECcode=${EXECcode:-CODEwave/exec} + + mkdir -p $DATA + cd $DATA + export wavelog=${DATA}/${RUNwave}_prdgbulls.log + + postmsg "$jlogfile" "HAS BEGUN on `hostname`" + + msg="Starting MWW3 BULLETINS PRODUCTS SCRIPT" + postmsg "$jlogfile" "$msg" + touch $wavelog +# 0.b Date and time stuff + export date=$PDY + export YMDH=${PDY}${cyc} + set +x + echo ' ' + echo ' **************************************' + echo ' *** MWW3 BULLETINS PRODUCTS SCRIPT ***' + echo ' **************************************' + echo " $date $cycle" + echo ' ' + echo "Starting at : `date`" + echo ' ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 1. Get necessary files + set +x + echo " Copying bulletins from $COMIN" + [[ "$LOUD" = YES ]] && set -x + +# 1.a Link the input file and untar it + BullIn=$COMIN/station/${RUNwave}.$cycle.cbull_tar + if [ -f $BullIn ]; then + cp $BullIn cbull.tar + else + msg="ABNORMAL EXIT: NO BULLETIN TAR FILE" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '************************************ ' + echo '*** ERROR : NO BULLETIN TAR FILE *** ' + echo '************************************ ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + msg="FATAL ERROR ${RUNwave} prdgen $date $cycle : bulletin tar missing." + echo $msg >> $wavelog + export err=1; ${errchk} + exit $err + fi + + set +x + echo " Untarring bulletins ..." + [[ "$LOUD" = YES ]] && set -x + tar -xf cbull.tar + OK=$? + + if [ "$OK" = '0' ]; then + set +x + echo " Unpacking successfull ..." + [[ "$LOUD" = YES ]] && set -x + rm -f cbull.tar + else + msg="ABNORMAL EXIT: ERROR IN BULLETIN UNTAR" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '****************************************** ' + echo '*** ERROR : ERROR IN BULLETIN TAR FILE *** ' + echo '****************************************** ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + echo "${RUNwave} prdgen $date $cycle : bulletin untar error." >> $wavelog + err=2;export err;err_chk + exit $err + fi + +# 1.b Output locations from bulletin files + set +x + echo ' Nb=`ls -1 *.cbull | wc -l`' + Nb=`ls -1 *.cbull | wc -l` + [[ "$LOUD" = YES ]] && set -x + echo ' ' + echo " Number of bulletin files : $Nb" + echo ' --------------------------' + echo ' ' +# 1.c Get the datat cards + if [ -f $PARMwave/bull_awips_gfswave ]; then + cp $PARMwave/bull_awips_gfswave awipsbull.data + else + msg="ABNORMAL EXIT: NO AWIPS BULLETIN HEADER DATA FILE" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '******************************************* ' + echo '*** ERROR : NO AWIPS BULLETIN DATA FILE *** ' + echo '******************************************* ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + echo "${RUNwave} prdgen $date $cycle : Bulletin header data file missing." >> $wavelog + err=3;export err;err_chk + exit $err + fi + +# 2. AWIPS bulletins for output points + echo ' ' + echo 'AWIPS bulletins ...' + echo '-------------------' + echo ' Sourcing data file with header info ...' + +# 2.b Set up environment variables + [[ "$LOUD" = YES ]] && set -x + . awipsbull.data + +# 2.c Generate list of bulletins to process + echo ' Generating buoy list ...' + echo 'bulls=`sed -e 's/export b//g' -e 's/=/ /' awipsbull.data | grep -v "#" |awk '{ print $1}'`' + bulls=`sed -e 's/export b//g' -e 's/=/ /' awipsbull.data | grep -v "#" |awk '{ print $1}'` + +# 2.d Looping over buoys running formbul + echo ' Looping over buoys ... \n' + + for bull in $bulls; do + fname="${RUNwave}.$bull.cbull" + oname="awipsbull.$bull.$cycle.${RUNwave}" + headr=`grep "b${bull}=" awipsbull.data | sed 's/=/ /g' | awk '{ print $3}'` + echo " Processing $bull ($headr $oname) ..." + + if [ -z "$headr" ] || [ ! -s $fname ]; then + [[ "$LOUD" = YES ]] && set -x + msg="ABNORMAL EXIT: MISSING BULLETING INFO" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : MISSING BULLETING INFO *** ' + echo '******************************************** ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + echo "${RUNwave} prdgen $date $cycle : Missing bulletin data." >> $wavelog + err=4;export err;err_chk + exit $err + fi + + [[ "$LOUD" = YES ]] && set -x + + formbul.pl -d $headr -f $fname -j $job -m ${RUNwave} \ + -p $PCOM -s NO -o $oname > formbul.out 2>&1 + OK=$? + + if [ "$OK" != '0' ] || [ ! -f $oname ]; then + [[ "$LOUD" = YES ]] && set -x + cat formbul.out + msg="ABNORMAL EXIT: ERROR IN formbul" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '************************************** ' + echo '*** FATAL ERROR : ERROR IN formbul *** ' + echo '************************************** ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + echo "${RUNwave} prdgen $date $cycle : error in formbul." >> $wavelog + err=5;export err;err_chk + exit $err + fi + + cat $oname >> awipsbull.$cycle.${RUNwave} + + done + +# 3. Send output files to the proper destination + [[ "$LOUD" = YES ]] && set -x + if [ "$SENDCOM" = YES ]; then + cp awipsbull.$cycle.${RUNwave} $PCOM/awipsbull.$cycle.${RUNwave} + if [ "$SENDDBN_NTC" = YES ]; then + make_ntc_bull.pl WMOBH NONE KWBC NONE $DATA/awipsbull.$cycle.${RUNwave} $PCOM/awipsbull.$cycle.${RUNwave} + else + if [ "${envir}" = "para" ] || [ "${envir}" = "test" ] || [ "${envir}" = "dev" ]; then + echo "Making NTC bulletin for parallel environment, but do not alert." + [[ "$LOUD" = YES ]] && set -x + (export SENDDBN=NO; make_ntc_bull.pl WMOBH NONE KWBC NONE \ + $DATA/awipsbull.$cycle.${RUNwave} $PCOM/awipsbull.$cycle.${RUNwave}) + fi + fi + fi + +# --------------------------------------------------------------------------- # +# 4. Clean up + + set +x; [[ "$LOUD" = YES ]] && set -v + rm -f ${RUNwave}.*.cbull awipsbull.data + set +v + +# --------------------------------------------------------------------------- # +# 5. Ending output + + set +x + echo ' ' + echo ' ' + echo "Ending at : `date`" + echo ' ' + echo ' *** End of MWW3 BULLETINS product generation ***' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + msg="$job completed normally" + postmsg "$jlogfile" "$msg" + +# End of MWW3 product generation script -------------------------------------- # diff --git a/scripts/exgfs_wave_prdgen_gridded.sh b/scripts/exgfs_wave_prdgen_gridded.sh new file mode 100755 index 0000000000..3243dacb3e --- /dev/null +++ b/scripts/exgfs_wave_prdgen_gridded.sh @@ -0,0 +1,289 @@ +#!/bin/ksh +############################################################################### +# # +# This script is the product generator ("graphics job") for the # +# GFSv16-wave output for gridded wave fields # +# # +# Remarks : # +# - Supplemental error output is witten to the wave.log file. # +# # +# # +# Origination : 05/02/2007 # +# Last update : 10/08/2020 # +# # +# Oct, 2020 Roberto.Padilla@noaa.gov, Henrique.HAlves@noaa.gov # +# - Merging wave scripts to GFSv16 global workflow # +# # +############################################################################### +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + set -xa + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + export RUNwave=${RUNwave:-${RUN}${COMPONENT}} + export envir=${envir:-ops} + export fstart=${fstart:-0} + export FHMAX_WAV=${FHMAX_WAV:-180} #180 Total of hours to process + export FHMAX_HF_WAV=${FHMAX_HF_WAV:-72} #from 00 to 72 inc=3 + export FHOUT_WAV=${FHOUT_WAV:-6} #from 72 to 180 inc=6 + export FHOUT_HF_WAV=${FHOUT_HF_WAV:-3} + export maxtries=720 + export FIXwave=${FIXwave:-$HOMEgfs/fix} + export PARMwave=${PARMwave:-$HOMEgfs/parm/parm_wave} + export USHwave=${USHwave:-$HOMEgfs/ush} + export cyc=${cyc:-00} + export cycle=${cycle:-t${cyc}z} + export pgmout=OUTPUT.$$ + export DATA=${DATA:-${DATAROOT:?}/${job}.$$} + mkdir -p $DATA + cd $DATA + export wavelog=${DATA}/${COMPONENTwave}_prdggridded.log + + postmsg "$jlogfile" "HAS BEGUN on `hostname`" + msg="Starting MWW3 GRIDDED PRODUCTS SCRIPT" + postmsg "$jlogfile" "$msg" +# Output grids + grids=${grids:-ao_9km at_10m ep_10m wc_10m glo_30m} +# grids=${grids:-ak_10m at_10m ep_10m wc_10m glo_30m} + maxtries=${maxtries:-720} +# 0.b Date and time stuff + export date=$PDY + export YMDH=${PDY}${cyc} + echo ' ' + echo ' ****************************' + echo ' *** MWW3 PRODUCTS SCRIPT ***' + echo ' ****************************' + echo " $date $cycle" + echo ' ' + echo "Starting at : `date`" + echo ' ' + echo " AWIPS grib fields" + echo " Wave Grids : $grids" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# --------------------------------------------------------------------------- # +# 1. Get necessary files + echo ' ' + echo 'Preparing input files :' + echo '-----------------------' + [[ "$LOUD" = YES ]] && set -x +#======================================================================= + + ASWELL=(SWELL1 SWELL2) # Indices of HS from partitions + ASWPER=(SWPER1 SWPER2) # Indices of PERIODS from partitions + ASWDIR=(SWDIR1 SWDIR2) # Indices of DIRECTIONS from partitions + # (should be same as ASWELL) + #export arrpar=(WIND UGRD VGRD HTSGW PERPW DIRPW WVHGT WVPER WVDIR WDIR ${ASWELL[@]} ${ASWDIR[@]} ${ASWPER[@]}) + export arrpar=(WIND WDIR UGRD VGRD HTSGW PERPW DIRPW WVHGT ${ASWELL[@]} WVPER ${ASWPER[@]} WVDIR ${ASWDIR[@]} ) + export nparam=`echo ${arrpar[@]} | wc -w` + + +# 1.a Grib file (AWIPS and FAX charts) + fhcnt=$fstart + while [ $fhcnt -le $FHMAX_WAV ]; do + fhr=$(printf "%03d" $fhcnt) + for grdOut in $grids;do + case $grdOut in + ao_9km) grdID='arctic.9km' ;; + at_10m) grdID='atlocn.0p16' ;; + ep_10m) grdID='epacif.0p16' ;; + wc_10m) grdID='wcoast.0p16' ;; +# glo_30m) grdID='global.0p25' ;; + glo_30m) grdID='global.0p50' ;; + ak_10m) grdID='alaska.0p16' ;; + *) grdID= ;; + esac + # + + GRIBIN=$COMIN/gridded/$RUNwave.$cycle.$grdID.f${fhr}.grib2 + GRIBIN_chk=$GRIBIN.idx + + icnt=1 + while [ $icnt -lt 1000 ]; do + if [ -r $GRIBIN_chk ] ; then + break + else + echo "Waiting for input file: $GRIBIN" + let "icnt=icnt+1" + sleep 5 + fi + if [ $icnt -ge $maxtries ]; then + msg="ABNORMAL EXIT: NO GRIB FILE FOR GRID $GRIBIN" + postmsg "$jlogfile" "$msg" + echo ' ' + echo '**************************** ' + echo '*** ERROR : NO GRIB FILE *** ' + echo '**************************** ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + echo "$RUNwave $grdID ${fhr} prdgen $date $cycle : GRIB file missing." >> $wavelog + err=1;export err;${errchk} || exit ${err} + fi + done + + GRIBOUT=$RUNwave.$cycle.$grdID.f${fhr}.clipped.grib2 + + iparam=1 + while [ ${iparam} -le ${nparam} ]; do + nip=${arrpar[$iparam-1]} + prepar=`echo $nip | rev | cut -c2- | rev` #Part prefix (assumes 1 digit index) + paridx=`echo $nip | rev | cut -c-1` + npart=0 + case $prepar in + SWELL) npart=1 ;; + SWDIR) npart=1 ;; + SWPER) npart=1 ;; + *) npart=0 ;; + esac + echo $nip $prepar $paridx $npart + rm temp.grib2 + if [ "${npart}" = "0" ]; then + $WGRIB2 $GRIBIN -s | grep ":${nip}" | $WGRIB2 -i $GRIBIN -grib temp.grib2 > wgrib.out 2>&1 + $WGRIB2 temp.grib2 -append -grib $GRIBOUT + else + $WGRIB2 $GRIBIN -s | grep ":${prepar}" | grep "${paridx} in sequence" | \ + $WGRIB2 -i $GRIBIN -grib temp.grib2 > wgrib.out 2>&1 + $WGRIB2 temp.grib2 -append -grib $GRIBOUT + fi + iparam=`expr ${iparam} + 1` + done #end wave param loop +#====================================================================== + GRIBIN=$RUNwave.$cycle.$grdID.f${fhr}.clipped.grib2 + GRIBIN_chk=$GRIBIN.idx + + ln -s $GRIBIN gribfile.$grdID.f${fhr} + + # +# 1.d Input template files + parmfile=$PARMwave/grib2_${RUNwave}.$grdOut.f${fhr} + if [ -f $parmfile ]; then + ln -s $parmfile awipsgrb.$grdID.f${fhr} + else + echo '*** ERROR : NO template grib2_${RUNwave}.$grdID.f${fhr} *** ' + echo "$RUNwave $grdID $fhr prdgen $date $cycle : GRIB template file missing." >> $wavelog + err=3;export err;${errchk} || exit ${err} + fi + # +# 2. AWIPS product generation +# 2.a AWIPS GRIB file with headers + echo ' ' + echo 'AWIPS headers to GRIB file ...' + echo '------------------------------' + +# 2.a.1 Set up for tocgrib2 + echo " Do set up for tocgrib2." + [[ "$LOUD" = YES ]] && set -x + #AWIPSGRB=awipsgrib.$grdID.f${fhr} + AWIPSGRB=awipsgrib +# 2.a.2 Make GRIB index + echo " Make GRIB index for tocgrib2." + [[ "$LOUD" = YES ]] && set -x + $GRB2INDEX gribfile.$grdID.f${fhr} gribindex.$grdID.f${fhr} + OK=$? + + if [ "$OK" != '0' ] + then + msg="ABNORMAL EXIT: ERROR IN grb2index MWW3 for grid $grdID" + postmsg "$jlogfile" "$msg" + #set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : ERROR IN grb2index MWW3 *** ' + echo '******************************************** ' + echo ' ' + echo $msg + #[[ "$LOUD" = YES ]] && set -x + echo "$RUNwave $grdID prdgen $date $cycle : error in grbindex." >> $wavelog + err=4;export err;err_chk + fi + +# 2.a.3 Run AWIPS GRIB packing program tocgrib2 + + echo " Run tocgrib2" + [[ "$LOUD" = YES ]] && set -x + export pgm=tocgrib2 + export pgmout=tocgrib2.out + . prep_step + + export FORT11="gribfile.$grdID.f${fhr}" + export FORT31="gribindex.$grdID.f${fhr}" + export FORT51="$AWIPSGRB.$grdID.f${fhr}" + + $TOCGRIB2 < awipsgrb.$grdID.f${fhr} > tocgrib2.out 2>&1 + OK=$? + if [ "$OK" != '0' ]; then + cat tocgrib2.out + msg="ABNORMAL EXIT: ERROR IN tocgrib2" + postmsg "$jlogfile" "$msg" + #set +x + echo ' ' + echo '*************************************** ' + echo '*** FATAL ERROR : ERROR IN tocgrib2 *** ' + echo '*************************************** ' + echo ' ' + echo $msg + #[[ "$LOUD" = YES ]] && set -x + echo "$RUNwave prdgen $date $cycle : error in tocgrib2." >> $wavelog + err=5;export err;err_chk + else + echo '*** tocgrib2 ran succesfully *** ' + fi +# 2.a.7 Get the AWIPS grib bulletin out ... + #set +x + echo " Get awips GRIB bulletins out ..." + #[[ "$LOUD" = YES ]] && set -x + if [ "$SENDCOM" = 'YES' ] + then + #set +x + echo " Saving $AWIPSGRB.$grdOut.f${fhr} as grib2.$cycle.awipsww3_${grdID}.f${fhr}" + echo " in $PCOM" + #[[ "$LOUD" = YES ]] && set -x + cp $AWIPSGRB.$grdID.f${fhr} $PCOM/grib2.$cycle.f${fhr}.awipsww3_${grdOut} + #set +x + fi + + if [ "$SENDDBN" = 'YES' ] + then + echo " Sending $AWIPSGRB.$grdID.f${fhr} to DBRUN." + $DBNROOT/bin/dbn_alert GRIB_LOW $RUN $job $PCOM/grib2.$cycle.f${fhr}.awipsww3_${grdOut} + fi + rm -f $AWIPSGRB.$grdID.f${fhr} tocgrib2.out + done # For grids + + if [ $fhcnt -ge $FHMAX_HF_WAV ]; then + inc=$FHOUT_WAV + else + inc=$FHOUT_HF_WAV + fi + let fhcnt=fhcnt+inc + done #For fcst time + + + +# --------------------------------------------------------------------------- # +# 5. Clean up + + set +x; [[ "$LOUD" = YES ]] && set -v + rm -f gribfile gribindex.* awipsgrb.* awipsbull.data + set +v + +# --------------------------------------------------------------------------- # +# 6. Ending output + + echo ' ' + echo ' ' + echo "Ending at : `date`" + echo ' ' + echo ' *** End of MWW3 product generation ***' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + msg="$job completed normally" + postmsg "$jlogfile" "$msg" + +# End of GFSWAVE product generation script -------------------------------------- # diff --git a/scripts/exgfs_wave_prep.sh b/scripts/exgfs_wave_prep.sh new file mode 100755 index 0000000000..c9abee57b4 --- /dev/null +++ b/scripts/exgfs_wave_prep.sh @@ -0,0 +1,1074 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: exwave_prep.sh +# Script description: Creates output products from binary WW3 data +# +# Author: Hendrik Tolman Org: NCEP/EMC Date: 2007-03-01 +# Abstract: This is the preprocessor for the wave component in GFS. +# It executes several scripts for preparing and creating input data +# as follows: +# +# wave_prnc_ice.sh : preprocess ice fields. # +# wave_prnc_wnd.sh : preprocess wind fields (uncoupled run, not active) # +# wave_prnc_cur.sh : preprocess current fields. # +# wave_g2ges.sh : find and copy wind grib2 files. # +# # +# Remarks : # +# - For non-fatal errors output is witten to the wave.log file. # +# # +# Update record : # +# # +# - Origination: 01-Mar-2007 # +# # +# Update log # +# Mar2007 HTolman - Added NCO note on resources on mist/dew # +# Apr2007 HTolman - Renaming mod_def files in $FIX_wave. # +# Mar2011 AChawla - Migrating to a vertical structure # +# Nov2012 JHAlves - Transitioning to WCOSS # +# Apr2019 JHAlves - Transitioning to GEFS workflow # +# Nov2019 JHAlves - Merging wave scripts to global workflow # +# Jun2020 JHAlves - Porting to R&D machine Hera # +# Oct2020 JMeixner - Updating RTOFS dates for processing minimal amount # +# # +# WAV_MOD_ID and WAV_MOD_TAG replace modID. WAV_MOD_TAG # +# is used for ensemble-specific I/O. For deterministic # +# WAV_MOD_ID=WAV_MOD_TAG # +# # +############################################################################### +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + set -x + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + # Set wave model ID tag to include member number + # if ensemble; waveMEMB var empty in deterministic + export WAV_MOD_TAG=${CDUMP}wave${waveMEMB} + + cd $DATA + mkdir outtmp + + msg="HAS BEGUN on `hostname`" + postmsg "$jlogfile" "$msg" + msg="Starting MWW3 PREPROCESSOR SCRIPT for $WAV_MOD_TAG" + postmsg "$jlogfile" "$msg" + + set +x + echo ' ' + echo ' ********************************' + echo ' *** MWW3 PREPROCESSOR SCRIPT ***' + echo ' ********************************' + echo ' PREP for wave component of NCEP coupled system' + echo " Wave component identifier : $WAV_MOD_TAG " + echo ' ' + echo "Starting at : `date`" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + # export MP_PGMMODEL=mpmd + # export MP_CMDFILE=./cmdfile + + if [ "$INDRUN" = 'no' ] + then + FHMAX_WAV=${FHMAX_WAV:-3} + else + FHMAX_WAV=${FHMAX_WAV:-384} + fi + + # 0.b Date and time stuff + + # Beginning time for outpupt may differ from SDATE if DOIAU=YES + export date=$PDY + export YMDH=${PDY}${cyc} + # Roll back $IAU_FHROT hours of DOIAU=YES + IAU_FHROT=3 + if [ "$DOIAU" = "YES" ] + then + WAVHINDH=$(( WAVHINDH + IAU_FHROT )) + fi + # Set time stamps for model start and output + # For special case when IAU is on but this is an initial half cycle + if [ $IAU_OFFSET = 0 ]; then + ymdh_beg=$YMDH + else + ymdh_beg=`$NDATE -$WAVHINDH $YMDH` + fi + time_beg="`echo $ymdh_beg | cut -c1-8` `echo $ymdh_beg | cut -c9-10`0000" + ymdh_end=`$NDATE $FHMAX_WAV $YMDH` + time_end="`echo $ymdh_end | cut -c1-8` `echo $ymdh_end | cut -c9-10`0000" + ymdh_beg_out=$YMDH + time_beg_out="`echo $ymdh_beg_out | cut -c1-8` `echo $ymdh_beg_out | cut -c9-10`0000" + + # Restart file times (already has IAU_FHROT in WAVHINDH) + RSTOFFSET=$(( ${WAVHCYC} - ${WAVHINDH} )) + # Update restart time is added offset relative to model start + RSTOFFSET=$(( ${RSTOFFSET} + ${RSTIOFF_WAV} )) + ymdh_rst_ini=`$NDATE ${RSTOFFSET} $YMDH` + RST2OFFSET=$(( DT_2_RST_WAV / 3600 )) + ymdh_rst2_ini=`$NDATE ${RST2OFFSET} $YMDH` # DT2 relative to first-first-cycle restart file + # First restart file for cycling + time_rst_ini="`echo $ymdh_rst_ini | cut -c1-8` `echo $ymdh_rst_ini | cut -c9-10`0000" + if [ ${DT_1_RST_WAV} = 1 ]; then + time_rst1_end=${time_rst_ini} + else + RST1OFFSET=$(( DT_1_RST_WAV / 3600 )) + ymdh_rst1_end=`$NDATE $RST1OFFSET $ymdh_rst_ini` + time_rst1_end="`echo $ymdh_rst1_end | cut -c1-8` `echo $ymdh_rst1_end | cut -c9-10`0000" + fi + # Second restart file for checkpointing + if [ "${RSTTYPE_WAV}" = "T" ]; then + time_rst2_ini="`echo $ymdh_rst2_ini | cut -c1-8` `echo $ymdh_rst2_ini | cut -c9-10`0000" + time_rst2_end=$time_end + # Condition for gdas run or any other run when checkpoint stamp is > ymdh_end + if [ $ymdh_rst2_ini -ge $ymdh_end ]; then + ymdh_rst2_ini=`$NDATE 3 $ymdh_end` + time_rst2_ini="`echo $ymdh_rst2_ini | cut -c1-8` `echo $ymdh_rst2_ini | cut -c9-10`0000" + time_rst2_end=$time_rst2_ini + fi + else + time_rst2_ini="$" + time_rst2_end= + DT_2_RST_WAV= + fi + set +x + echo ' ' + echo 'Times in wave model format :' + echo '----------------------------' + echo " date / cycle : $date $cycle" + echo " starting time : $time_beg" + echo " ending time : $time_end" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + # Script will run only if pre-defined NTASKS + # The actual work is distributed over these tasks. + if [ -z ${NTASKS} ] + then + echo "FATAL ERROR: Requires NTASKS to be set " + err=1; export err;${errchk} + fi + + # --------------------------------------------------------------------------- # + # 1. Get files that are used by most child scripts + + set +x + echo 'Preparing input files :' + echo '-----------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + # 1.a Model definition files + + rm -f cmdfile + touch cmdfile + + grdINP='' + if [ "${WW3ATMINP}" = 'YES' ]; then grdINP="${grdINP} $WAVEWND_FID" ; fi + if [ "${WW3ICEINP}" = 'YES' ]; then grdINP="${grdINP} $WAVEICE_FID" ; fi + if [ "${WW3CURINP}" = 'YES' ]; then grdINP="${grdINP} $WAVECUR_FID" ; fi + + ifile=1 + + for grdID in $grdINP $waveGRD + do + if [ -f "$COMIN/rundata/${CDUMP}wave.mod_def.${grdID}" ] + then + set +x + echo " Mod def file for $grdID found in ${COMIN}/rundata. copying ...." + [[ "$LOUD" = YES ]] && set -x + cp $COMIN/rundata/${CDUMP}wave.mod_def.${grdID} mod_def.$grdID + + else + msg="FATAL ERROR: NO MODEL DEFINITION FILE" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '*********************************************************** ' + echo '*** FATAL ERROR : NOT FOUND WAVE MODEL DEFINITION FILE *** ' + echo '*********************************************************** ' + echo " grdID = $grdID" + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=2;export err;${errchk} + fi + done + + # 1.b Netcdf Preprocessor template files + if [ "$WW3ATMINP" = 'YES' ]; then itype="$itype wind" ; fi + if [ "$WW3ICEINP" = 'YES' ]; then itype="$itype ice" ; fi + if [ "$WW3CURINP" = 'YES' ]; then itype="$itype cur" ; fi + + for type in $itype + do + + case $type in + wind ) + grdID=$WAVEWND_FID + ;; + ice ) + grdID=$WAVEICE_FID + ;; + cur ) + grdID=$WAVECUR_FID + ;; + * ) + echo 'Input type not yet implemented' + err=3; export err;${errchk} + ;; + esac + + if [ -f $FIXwave/ww3_prnc.${type}.$grdID.inp.tmpl ] + then + cp $FIXwave/ww3_prnc.${type}.$grdID.inp.tmpl . + fi + + if [ -f ww3_prnc.${type}.$grdID.inp.tmpl ] + then + set +x + echo ' ' + echo " ww3_prnc.${type}.$grdID.inp.tmpl copied ($FIXwave)." + echo ' ' + [[ "$LOUD" = YES ]] && set -x + else + msg="ABNORMAL EXIT: NO FILE $file" + ./postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '************************************** ' + echo '*** FATAL ERROR : NO TEMPLATE FILE *** ' + echo '************************************** ' + echo " ww3_prnc.${type}.$grdID.inp.tmpl" + echo ' ' + echo $msg + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=4;export err;${errchk} + fi + done + +# --------------------------------------------------------------------------- # +# ICEC processing + + if [ "${WW3ICEINP}" = 'YES' ]; then + +# --------------------------------------------------------------------------- # +# 2. Ice pre - processing + +# 2.a Check if ice input is perturbed (number of inputs equal to number of wave +# ensemble members + if [ "${RUNMEM}" = "-1" ] || [ "${WW3ICEIENS}" = "T" ] || [ "$waveMEMB" = "00" ] + then + + $USHwave/wave_prnc_ice.sh > wave_prnc_ice.out + ERR=$? + + if [ -d ice ] + then + postmsg "$jlogfile" "FATAL ERROR ice field not generated." + set +x + echo ' ' + echo ' FATAL ERROR: ice field not generated ' + echo ' ' + sed "s/^/wave_prnc_ice.out : /g" wave_prnc_ice.out + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=5;export err;${errchk} + else + mv -f wave_prnc_ice.out $DATA/outtmp + set +x + echo ' ' + echo ' Ice field unpacking successful.' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + fi + else + echo ' ' + echo "WARNING: Ice input is not perturbed, single ice file generated, skipping ${WAV_MOD_TAG}" + echo ' ' + fi + else + echo ' ' + echo 'WARNING: No input ice file generated, this run did not request pre-processed ice data ' + echo ' ' + fi + +# --------------------------------------------------------------------------- # +# WIND processing +# This block of code is not used by GFSv16b and is here for un-coupled wave runs + if [ "${WW3ATMINP}" = 'YES' ]; then + +# --------------------------------------------------------------------------- # +# 3. Wind pre-processing + + if [ "${RUNMEM}" = "-1" ] || [ "${WW3ATMIENS}" = "T" ] || [ "$waveMEMB" = "00" ] + then + + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + +# 3.a Gather and pre-process grib2 files + ymdh=$ymdh_beg + + if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0 ; fi # Counter for MP CFP + while [ "$ymdh" -le "$ymdh_end" ] + do + if [ ${CFP_MP:-"NO"} = "YES" ]; then + echo "$nm $USHwave/wave_g2ges.sh $ymdh > grb_$ymdh.out 2>&1" >> cmdfile + nm=`expr $nm + 1` + else + echo "$USHwave/wave_g2ges.sh $ymdh > grb_$ymdh.out 2>&1" >> cmdfile + fi + ymdh=`$NDATE $WAV_WND_HOUR_INC $ymdh` + done + +# 3.b Execute the serial or parallel cmdfile + +# Set number of processes for mpmd + cat cmdfile + + wavenproc=`wc -l cmdfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the wnd grib cmd file at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ "$wavenproc" -gt '1' ] + then + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdfile + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + fi + exit=$? + else + ./cmdfile + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '********************************************************' + echo '*** FATAL ERROR: CMDFILE FAILED IN WIND GENERATION ***' + echo '********************************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + fi + +# 3.c Check for errors + + set +x + echo ' ' + echo ' Checking for errors.' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# We will go on if the number of errors in files is less +# than err_max + + [[ "$LOUD" = YES ]] && set -x + err_max=1 + + + ymdh=$ymdh_beg + nr_err=0 + + set +x + echo ' Sources of grib2 files :' + [[ "$LOUD" = YES ]] && set -x + while [ "$ymdh" -le "$ymdh_end" ] + do + if [ -d grb_${ymdh} ] + then + set +x + echo ' ' + echo " File for $ymdh : error in wave_g2ges.sh" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" " File for $ymdh : error in wave_g2ges.sh" + nr_err=`expr $nr_err + 1` + rm -f gwnd.$ymdh + else + grbfile=`grep 'File for' grb_${ymdh}.out` + if [ -z "$grbfile" ] + then + set +x + echo ' ' + echo " File for $ymdh : cannot identify source" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + nr_err=`expr $nr_err + 1` + rm -f gwnd.$ymdh + else + if [ ! -f gwnd.$ymdh ] + then + set +x + echo ' ' + echo " File for $ymdh : file not found" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + nr_err=`expr $nr_err + 1` + else + set +x + echo ' ' + echo " $grbfile" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + mv -f grb_${ymdh}.out $DATA/outtmp + fi + fi + fi + ymdh=`$NDATE $WAV_WND_HOUR_INC $ymdh` + done + + if [ -f grb_*.out ] + then + set +x + echo ' ' + echo '**********************************' + echo '*** ERROR OUTPUT wave_g2ges.sh ***' + echo '**********************************' + echo ' Possibly in multiple calls' + [[ "$LOUD" = YES ]] && set -x + set +x + for file in grb_*.out + do + echo ' ' + sed "s/^/$file : /g" $file + done + echo ' ' + [[ "$LOUD" = YES ]] && set -x + mv -f grb_*.out $DATA/outtmp + postmsg "$jlogfile" "WARNING: NON-FATAL ERROR in wave_g2ges.sh, possibly in multiple calls." + fi + + if [ "$nr_err" -gt "$err_max" ] + then + msg="ABNORMAL EXIT: TOO MANY MISSING WIND INPUT GRB2 FILES" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '********************************************* ' + echo '*** FATAL ERROR : ERROR(S) IN WIND FILES *** ' + echo '********************************************* ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=6;export err;${errchk} + fi + + rm -f cmdfile + +# 3.d Getwind data into single file + + set +x + echo ' ' + echo ' Concatenate extracted wind fields ...' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + files=`ls gwnd.* 2> /dev/null` + + if [ -z "$files" ] + then + msg="ABNORMAL EXIT: NO gwnd.* FILES FOUND" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : CANNOT FIND WIND FILES *** ' + echo '******************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=7;export err;${errchk} + fi + + rm -f gfs.wind + + for file in $files + do + cat $file >> gfs.wind + rm -f $file + done + +# 3.e Run ww3_prnc + +# Convert gfs wind to netcdf + $WGRIB2 gfs.wind -netcdf gfs.nc + + for grdID in $WAVEWND_FID $curvID + do + + set +x + echo ' ' + echo " Running wind fields through preprocessor for grid $grdID" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + sed -e "s/HDRFL/T/g" ww3_prnc.wind.$grdID.tmpl > ww3_prnc.inp + ln -sf mod_def.$grdID mod_def.ww3 + + set +x + echo "Executing $EXECwave/ww3_prnc" + [[ "$LOUD" = YES ]] && set -x + + $EXECwave/ww3_prnc > prnc.out + err=$? + + if [ "$err" != '0' ] + then + msg="ABNORMAL EXIT: ERROR IN waveprnc" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '*************************************** ' + echo '*** FATAL ERROR : ERROR IN waveprnc *** ' + echo '*************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=8;export err;${errchk} + fi + + if [ ! -f wind.ww3 ] + then + msg="ABNORMAL EXIT: FILE wind.ww3 MISSING" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + cat waveprep.out + echo ' ' + echo '****************************************' + echo '*** FATAL ERROR : wind.ww3 NOT FOUND ***' + echo '****************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=9;export err;${errchk} + fi + + rm -f mod_def.ww3 + rm -f ww3_prep.inp + + mv wind.ww3 wind.$grdID + mv times.WND times.$grdID + +# 3.f Check to make sure wind files are properly incremented + + first_pass='yes' + windOK='yes' + while read line + do + date1=`echo $line | cut -d ' ' -f 1` + date2=`echo $line | cut -d ' ' -f 2` + ymdh="$date1`echo $date2 | cut -c1-2`" + if [ "$first_pass" = 'no' ] + then + hr_inc=`$NHOUR $ymdh $ymdh_prev` + if [ "${hr_inc}" -gt "${WAV_WND_HOUR_INC}" ] + then + set +x + echo "Incorrect wind forcing increment at $ymdh" + [[ "$LOUD" = YES ]] && set -x + windOK='no' + fi + fi + ymdh_prev=$ymdh + first_pass='no' + done < times.$grdID + + if [ "$windOK" = 'no' ] + then + set +x + echo ' ' + echo '******************************************************' + echo '*** FATAL ERROR : WIND DATA INCREMENT INCORRECT !! ***' + echo '******************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR: $WAV_MOD_TAG prep $grdID $date $cycle : error in wind increment." + err=10;export err;${errchk} + fi + + done + + rm -f gfs.wind + rm -f mod_def.ww3 + rm -f ww3_prnc.inp + else + echo ' ' + echo " Wind input is not perturbed, single wnd file generated, skipping ${WAV_MOD_TAG}" + echo ' ' + + fi + + else + + echo ' ' + echo ' Atmospheric inputs not generated, this run did not request pre-processed winds ' + echo ' ' + + fi + +#------------------------------------------------------------------- +# CURR processing + + if [ "${WW3CURINP}" = 'YES' ]; then + +#------------------------------------------------------------------- +# 4. Process current fields +# 4.a Get into single file + if [ "${RUNMEM}" = "-1" ] || [ "${WW3CURIENS}" = "T" ] || [ "$waveMEMB" = "00" ] + then + + set +x + echo ' ' + echo ' Concatenate binary current fields ...' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# Prepare files for cfp process + rm -f cmdfile + touch cmdfile + chmod 744 cmdfile + + ymdh_rtofs=${RPDY}00 # RTOFS runs once daily use ${PDY}00 + if [ "$ymdh_beg" -lt "$ymdh_rtofs" ];then + #If the start time is before the first hour of RTOFS, use the previous cycle + export RPDY=`$NDATE -24 ${RPDY}00 | cut -c1-8` + fi + #Set the first time for RTOFS files to be the beginning time of simulation + ymdh_rtofs=$ymdh_beg + + if [ "$FHMAX_WAV_CUR" -le 72 ]; then + rtofsfile1=$COMIN_WAV_RTOFS/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f024_prog.nc + rtofsfile2=$COMIN_WAV_RTOFS/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f048_prog.nc + rtofsfile3=$COMIN_WAV_RTOFS/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f072_prog.nc + if [ ! -f $rtofsfile1 ] || [ ! -f $rtofsfile2 ] || [ ! -f $rtofsfile3 ]; then + #Needed current files are not available, so use RTOFS from previous day + export RPDY=`$NDATE -24 ${RPDY}00 | cut -c1-8` + fi + else + rtofsfile1=$COMIN_WAV_RTOFS/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f096_prog.nc + rtofsfile2=$COMIN_WAV_RTOFS/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f120_prog.nc + rtofsfile3=$COMIN_WAV_RTOFS/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f144_prog.nc + rtofsfile4=$COMIN_WAV_RTOFS/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f168_prog.nc + rtofsfile5=$COMIN_WAV_RTOFS/${WAVECUR_DID}.${RPDY}/rtofs_glo_2ds_f192_prog.nc + if [ ! -f $rtofsfile1 ] || [ ! -f $rtofsfile2 ] || [ ! -f $rtofsfile3 ] || + [ ! -f $rtofsfile4 ] || [ ! -f $rtofsfile5 ]; then + #Needed current files are not available, so use RTOFS from previous day + export RPDY=`$NDATE -24 ${RPDY}00 | cut -c1-8` + fi + fi + + export COMIN_WAV_CUR=$COMIN_WAV_RTOFS/${WAVECUR_DID}.${RPDY} + + ymdh_end_rtofs=`$NDATE ${FHMAX_WAV_CUR} ${RPDY}00` + if [ "$ymdh_end" -lt "$ymdh_end_rtofs" ]; then + ymdh_end_rtofs=$ymdh_end + fi + + NDATE_DT=${WAV_CUR_HF_DT} + FLGHF='T' + FLGFIRST='T' + fext='f' + + if [ ${CFP_MP:-"NO"} = "YES" ]; then nm=0 ; fi # Counter for MP CFP + while [ "$ymdh_rtofs" -le "$ymdh_end_rtofs" ] + do + # Timing has to be made relative to the single 00z RTOFS cycle for RTOFS PDY (RPDY) + # Start at first fhr for + fhr_rtofs=`${NHOUR} ${ymdh_rtofs} ${RPDY}00` + fh3_rtofs=`printf "%03d" "${fhr_rtofs#0}"` + + curfile1h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fh3_rtofs}_prog.nc + curfile3h=${COMIN_WAV_CUR}/rtofs_glo_2ds_${fext}${fh3_rtofs}_prog.nc + + if [ -s ${curfile1h} ] && [ "${FLGHF}" = "T" ] ; then + curfile=${curfile1h} + elif [ -s ${curfile3h} ]; then + curfile=${curfile3h} + FLGHF='F' + else + echo ' ' + if [ "${FLGHF}" = "T" ] ; then + curfile=${curfile1h} + else + curfile=${curfile3h} + fi + set $setoff + echo ' ' + echo '************************************** ' + echo "*** FATAL ERROR: NO CUR FILE $curfile *** " + echo '************************************** ' + echo ' ' + set $seton + postmsg "$jlogfile" "FATAL ERROR - NO CURRENT FILE (RTOFS)" + err=11;export err;${errchk} + exit $err + echo ' ' + fi + + if [ ${CFP_MP:-"NO"} = "YES" ]; then + echo "$nm $USHwave/wave_prnc_cur.sh $ymdh_rtofs $curfile $fhr_rtofs $FLGFIRST > cur_$ymdh_rtofs.out 2>&1" >> cmdfile + nm=`expr $nm + 1` + else + echo "$USHwave/wave_prnc_cur.sh $ymdh_rtofs $curfile $fhr_rtofs $FLGFIRST > cur_$ymdh_rtofs.out 2>&1" >> cmdfile + fi + + if [ "${FLGFIRST}" = "T" ] ; then + FLGFIRST='F' + fi + + if [ $fhr_rtofs -ge ${WAV_CUR_HF_FH} ] ; then + NDATE_DT=${WAV_CUR_DT} + fi + ymdh_rtofs=`$NDATE $NDATE_DT $ymdh_rtofs` + done + +# Set number of processes for mpmd + wavenproc=`wc -l cmdfile | awk '{print $1}'` + wavenproc=`echo $((${wavenproc}<${NTASKS}?${wavenproc}:${NTASKS}))` + + set +x + echo ' ' + echo " Executing the curr prnc cmdfile at : `date`" + echo ' ------------------------------------' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + if [ $wavenproc -gt '1' ] + then + if [ ${CFP_MP:-"NO"} = "YES" ]; then + ${wavempexec} -n ${wavenproc} ${wave_mpmd} cmdfile + else + ${wavempexec} ${wavenproc} ${wave_mpmd} cmdfile + fi + exit=$? + else + chmod 744 ./cmdfile + ./cmdfile + exit=$? + fi + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '********************************************' + echo '*** CMDFILE FAILED IN CUR GENERATION ***' + echo '********************************************' + echo ' See Details Below ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + fi + + files=`ls ${WAVECUR_DID}.* 2> /dev/null` + + if [ -z "$files" ] + then + msg="ABNORMAL EXIT: NO ${WAVECUR_FID}.* FILES FOUND" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : CANNOT FIND CURR FILES *** ' + echo '******************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=11;export err;${errchk} + fi + + rm -f cur.${WAVECUR_FID} + + for file in $files + do + echo $file + cat $file >> cur.${WAVECUR_FID} + done + + cp -f cur.${WAVECUR_FID} ${COMOUT}/rundata/${CDUMP}wave.${WAVECUR_FID}.$cycle.cur + + else + echo ' ' + echo " Current input is not perturbed, single cur file generated, skipping ${WAV_MOD_TAG}" + echo ' ' + fi + + else + + echo ' ' + echo ' Current inputs not generated, this run did not request pre-processed currents ' + echo ' ' + + fi + +# --------------------------------------------------------------------------- # +# 5. Create ww3_multi.inp + +# 5.a ww3_multi template + + if [ -f $FIXwave/ww3_multi.${NET}.inp.tmpl ] + then + cp $FIXwave/ww3_multi.${NET}.inp.tmpl ww3_multi.inp.tmpl + fi + + if [ ! -f ww3_multi.inp.tmpl ] + then + msg="ABNORMAL EXIT: NO TEMPLATE FOR INPUT FILE" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '************************************************ ' + echo '*** FATAL ERROR : NO TEMPLATE FOR INPUT FILE *** ' + echo '************************************************ ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=12;export err;${errchk} + fi + +# 5.b Buoy location file + + if [ -f $FIXwave/wave_${NET}.buoys ] + then + cp $FIXwave/wave_${NET}.buoys buoy.loc + fi + + if [ -f buoy.loc ] + then + set +x + echo " buoy.loc copied ($FIXwave/wave_${NET}.buoys)." + [[ "$LOUD" = YES ]] && set -x + else + set +x + echo " buoy.loc not found. **** WARNING **** " + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" " FATAL ERROR : buoy.loc ($FIXwave/wave_${NET}.buoys) NOT FOUND" + touch buoy.loc + err=13;export err;${errchk} + fi + +# Initialize inp file parameters + NFGRIDS=0 + NMGRIDS=0 + CPLILINE='$' + ICELINE='$' + ICEFLAG='no' + CURRLINE='$' + CURRFLAG='no' + WINDLINE='$' + WINDFLAG='no' + UNIPOINTS='$' + +# Check for required inputs and coupling options + if [ $waveuoutpGRD ] + then + UNIPOINTS="'$waveuoutpGRD'" + fi + +# Check if waveesmfGRD is set + if [ ${waveesmfGRD} ] + then + NFGRIDS=`expr $NFGRIDS + 1` + fi + + case ${WW3ATMINP} in + 'YES' ) + NFGRIDS=`expr $NFGRIDS + 1` + WINDLINE=" '$WAVEWND_FID' F F T F F F F" + WINDFLAG="$WAVEWND_FID" + ;; + 'CPL' ) + WINDFLAG="CPL:${waveesmfGRD}" + WNDIFLAG='T' + CPLILINE=" '${waveesmfGRD}' F F T F F F F" + ;; + esac + + case ${WW3ICEINP} in + 'YES' ) + NFGRIDS=`expr $NFGRIDS + 1` + ICEIFLAG='T' + ICELINE=" '$WAVEICE_FID' F F F T F F F" + ICEFLAG="$WAVEICE_FID" + ;; + 'CPL' ) + ICEFLAG="CPL:${waveesmfGRD}" + ICEIFLAG='T' + CPLILINE=" '${waveesmfGRD}' F F ${WNDIFLAG} T F F F" + ;; + esac + + case ${WW3CURINP} in + 'YES' ) + if [ "$WAVECUR_FID" != "$WAVEICE_FID" ]; then + NFGRIDS=`expr $NFGRIDS + 1` + CURRLINE=" '$WAVECUR_FID' F T F F F F F" + CURRFLAG="$WAVECUR_FID" + else # cur fields share the same grid as ice grid + ICELINE=" '$WAVEICE_FID' F T F ${ICEIFLAG} F F F" + CURRFLAG="$WAVEICE_FID" + fi + ;; + 'CPL' ) + CURRFLAG="CPL:${waveesmfGRD}" + CURIFLAG='T' + CPLILINE=" '${waveesmfGRD}' F T ${WNDIFLAG} ${ICEFLAG} F F F" + ;; + esac + + unset agrid + agrid= + gline= + GRDN=0 +# grdGRP=1 # Single group for now + for grid in ${waveGRD} + do + GRDN=`expr ${GRDN} + 1` + agrid=( ${agrid[*]} ${grid} ) + NMGRIDS=`expr $NMGRIDS + 1` + gridN=`echo $waveGRDN | awk -v i=$GRDN '{print $i}'` + gridG=`echo $waveGRDG | awk -v i=$GRDN '{print $i}'` + gline="${gline}'${grid}' 'no' 'CURRFLAG' 'WINDFLAG' 'ICEFLAG' 'no' 'no' 'no' ${gridN} ${gridG} 0.00 1.00 F\n" + done + gline="${gline}\$" + echo $gline + + sed -e "s/NFGRIDS/$NFGRIDS/g" \ + -e "s/NMGRIDS/${NMGRIDS}/g" \ + -e "s/FUNIPNT/${FUNIPNT}/g" \ + -e "s/IOSRV/${IOSRV}/g" \ + -e "s/FPNTPROC/${FPNTPROC}/g" \ + -e "s/FGRDPROC/${FGRDPROC}/g" \ + -e "s/OUTPARS/${OUTPARS_WAV}/g" \ + -e "s/CPLILINE/${CPLILINE}/g" \ + -e "s/UNIPOINTS/${UNIPOINTS}/g" \ + -e "s/GRIDLINE/${gline}/g" \ + -e "s/ICELINE/$ICELINE/g" \ + -e "s/CURRLINE/$CURRLINE/g" \ + -e "s/WINDLINE/$WINDLINE/g" \ + -e "s/ICEFLAG/$ICEFLAG/g" \ + -e "s/CURRFLAG/$CURRFLAG/g" \ + -e "s/WINDFLAG/$WINDFLAG/g" \ + -e "s/RUN_BEG/$time_beg/g" \ + -e "s/RUN_END/$time_end/g" \ + -e "s/OUT_BEG/$time_beg_out/g" \ + -e "s/OUT_END/$time_end/g" \ + -e "s/DTFLD/ $DTFLD_WAV/g" \ + -e "s/GOFILETYPE/ $GOFILETYPE/g" \ + -e "s/POFILETYPE/ $POFILETYPE/g" \ + -e "s/FIELDS/$FIELDS/g" \ + -e "s/DTPNT/ $DTPNT_WAV/g" \ + -e "/BUOY_FILE/r buoy.loc" \ + -e "s/BUOY_FILE/DUMMY/g" \ + -e "s/RST_BEG/$time_rst_ini/g" \ + -e "s/RSTTYPE/$RSTTYPE_WAV/g" \ + -e "s/RST_2_BEG/$time_rst2_ini/g" \ + -e "s/DTRST/$DT_1_RST_WAV/g" \ + -e "s/DT_2_RST/$DT_2_RST_WAV/g" \ + -e "s/RST_END/$time_rst1_end/g" \ + -e "s/RST_2_END/$time_rst2_end/g" \ + ww3_multi.inp.tmpl | \ + sed -n "/DUMMY/!p" > ww3_multi.inp + + rm -f ww3_multi.inp.tmpl buoy.loc + + if [ -f ww3_multi.inp ] + then + echo " Copying file ww3_multi.${WAV_MOD_TAG}.inp to $COMOUT " + cp ww3_multi.inp ${COMOUT}/rundata/ww3_multi.${WAV_MOD_TAG}.$cycle.inp + else + echo "FATAL ERROR: file ww3_multi.${WAV_MOD_TAG}.$cycle.inp NOT CREATED, ABORTING" + err=13;export err;${errchk} + fi + +# 6. Copy rmp grid remapping pre-processed coefficients + + if [ "${USE_WAV_RMP:-YES}" = "YES" ]; then + if ls $FIXwave/rmp_src_to_dst_conserv_* 2> /dev/null + then + for file in $(ls $FIXwave/rmp_src_to_dst_conserv_*) ; do + cp -f $file ${COMOUT}/rundata + done + else + msg="NO rmp precomputed nc files found, is this OK???" + postmsg "$jlogfile" "$msg" + set +x + echo ' ' + echo '************************************************ ' + echo '*** FATAL ERROR : NO PRECOMPUTED RMP FILES FOUND *** ' + echo '************************************************ ' + echo ' ' + echo $msg + [[ "$LOUD" = YES ]] && set -x + err=13;export err;${errchk} + fi + fi + + +# --------------------------------------------------------------------------- # +# 6. Output to /com + + if [ "$SENDCOM" = 'YES' ] + then + + if [ "${WW3ATMINP}" = 'YES' ]; then + + for grdID in $WAVEWND_FID $curvID + do + set +x + echo ' ' + echo " Saving wind.$grdID as $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.wind" + echo " Saving times.$grdID file as $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.$grdID.wind.times" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + cp wind.$grdID $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.wind + cp times.$grdID $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.$grdID.wind.times + done + fi + +# if [ "${WW3CURINP}" = 'YES' ]; then +# +# for grdID in $WAVECUR_FID +# do +# set +x +# echo ' ' +# echo " Saving cur.$grdID as $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.cur" +# echo ' ' +# [[ "$LOUD" = YES ]] && set -x +# cp cur.$grdID $COMOUT/rundata/${WAV_MOD_TAG}.$grdID.$PDY$cyc.cur +# done +# fi + fi + + rm -f wind.* + rm -f $WAVEICE_FID.* + rm -f times.* + +# --------------------------------------------------------------------------- # +# 7. Ending output + + set +x + echo ' ' + echo "Ending at : `date`" + echo ' ' + echo ' *** End of MWW3 preprocessor ***' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + exit $err + +# End of MWW3 preprocessor script ------------------------------------------- # diff --git a/scripts/exglobal_atmos_tropcy_qc_reloc.sh b/scripts/exglobal_atmos_tropcy_qc_reloc.sh new file mode 100755 index 0000000000..0e99ea2106 --- /dev/null +++ b/scripts/exglobal_atmos_tropcy_qc_reloc.sh @@ -0,0 +1,182 @@ +############################################################################ +echo "---------------------------------------------------------------------" +echo "exglobal_atmos_tropcy_qc_reloc.sh - Tropical Cyclone QC/Relocation Prcocessing" +echo "---------------------------------------------------------------------" +echo "History: Jun 13 2006 - Original script." +echo " March 2013 - No changes needed for WCOSS transition" +echo " MP_LABELIO default added" +echo " Oct 2013 - Use main USH vars as part of minor pkg cleanup" +############################################################################ + +set -x + +# Make sure we are in the $DATA directory +cd $DATA + +msg="HAS BEGUN on `hostname`" +postmsg "$jlogfile" "$msg" + +cat break > $pgmout + +export COMSP=$COMOUT/${RUN}.${cycle}. + +tmhr=`echo $tmmark|cut -c3-4` +cdate10=` ${NDATE:?} -$tmhr $PDY$cyc` + +NET_uc=$(echo $RUN | tr [a-z] [A-Z]) +tmmark_uc=$(echo $tmmark | tr [a-z] [A-Z]) + +msg="$NET_uc ANALYSIS TIME IS $PDY$cyc" +postmsg "$jlogfile" "$msg" + +iflag=0 +if [ $RUN = ndas ]; then + if [ $DO_RELOCATE = NO ]; then + msg="CENTER PROCESSING TIME FOR NDAS TROPICAL CYCLONE QC IS $cdate10" + postmsg "$jlogfile" "$msg" + msg="Output tcvitals files will be copied forward in time to proper \ +output file directory path locations" + postmsg "$jlogfile" "$msg" + iflag=1 + else + msg="CENTER PROCESSING TIME FOR $tmmark_uc NDAS TROPICAL CYCLONE \ +RELOCATION IS $cdate10" + postmsg "$jlogfile" "$msg" + fi +else + msg="CENTER PROCESSING TIME FOR $tmmark_uc $NET_uc TROPICAL CYCLONE QC/\ +RELOCATION IS $cdate10" + postmsg "$jlogfile" "$msg" +fi + + +if [ "$PROCESS_TROPCY" = 'YES' ]; then + +#################################### +#################################### +# QC tcvitals for tropical cyclones +#################################### +#################################### + +#echo $PDY + + ${USHSYND:-$HOMEgfs/ush}/syndat_qctropcy.sh $cdate10 + errsc=$? + if [ "$errsc" -ne '0' ]; then + msg="syndat_qctropcy.sh failed. exit" + postmsg "$jlogfile" "$msg" + exit $errsc + fi + + + cd $COMOUT + pwd + set +x + ls -ltr *syndata* + set -x + cd $ARCHSYND + pwd;ls -ltr + cat syndat_dateck + cd $HOMENHC + pwd;ls -ltr + cd $DATA + +else + +# Copy null files into "syndata.tcvitals" and "jtwc-fnoc.tcvitals" +# (Note: Only do so if files don't already exist - need because in NDAS this +# script is run twice, first time with DO_RELOCATE=NO, copying these +# files, and second time with PROCESS_TROPCY=NO and thus coming here - +# don't want to wipe out these files) +# + + [ ! -s ${COMSP}syndata.tcvitals.$tmmark ] && \ + cp /dev/null ${COMSP}syndata.tcvitals.$tmmark + [ ! -s ${COMSP}jtwc-fnoc.tcvitals.$tmmark ] && \ + cp /dev/null ${COMSP}jtwc-fnoc.tcvitals.$tmmark + +# endif loop $PROCESS_TROPCY +fi + + +if [ "$DO_RELOCATE" = 'YES' ]; then + +################################################### +################################################### +# Relocate tropical cyclones in global sigma guess +################################################### +################################################### + + export MP_LABELIO=${MP_LABELIO:-yes} + $USHRELO/tropcy_relocate.sh $cdate10 + errsc=$? + + [ "$errsc" -ne '0' ] && exit $errsc + + +# save global sigma guess file(s) possibly updated by tropical cyclone +# relocation processing in COMSP path + qual_last=".$tmmark" # need this because gfs and gdas don't add $tmmark + # qualifer to end of output sigma guess files + [ $RUN = gfs -o $RUN = gdas -o $NET = cfs ] && qual_last="" + + if [ $BKGFREQ -eq 1 ]; then + [ -s sgm3prep ] && cp sgm3prep ${COMSP}sgm3prep${qual_last} + [ -s sgm2prep ] && cp sgm2prep ${COMSP}sgm2prep${qual_last} + [ -s sgm1prep ] && cp sgm1prep ${COMSP}sgm1prep${qual_last} + [ -s sgesprep ] && cp sgesprep ${COMSP}sgesprep${qual_last} + [ -s sgp1prep ] && cp sgp1prep ${COMSP}sgp1prep${qual_last} + [ -s sgp2prep ] && cp sgp2prep ${COMSP}sgp2prep${qual_last} + [ -s sgp3prep ] && cp sgp3prep ${COMSP}sgp3prep${qual_last} + elif [ $BKGFREQ -eq 3 ]; then + [ -s sgm3prep ] && cp sgm3prep ${COMSP}sgm3prep${qual_last} + [ -s sgesprep ] && cp sgesprep ${COMSP}sgesprep${qual_last} + [ -s sgp3prep ] && cp sgp3prep ${COMSP}sgp3prep${qual_last} + fi + +# The existence of ${COMSP}tropcy_relocation_status.$tmmark file will tell the +# subsequent PREP processing that RELOCATION processing occurred, if this file +# does not already exist at this point, echo "RECORDS PROCESSED" into it to +# further tell PREP processing that records were processed by relocation and +# the global sigma guess was modified by tropical cyclone relocation +# Note: If ${COMSP}tropcy_relocation_status.$tmmark already exists at this +# point it means that it contains the string "NO RECORDS to process" +# and was created by the child script tropcy_relocate.sh because records +# were not processed by relocation and the global sigma guess was NOT +# modified by tropical cyclone relocation (because no tcvitals records +# were found in the relocation step) +# ---------------------------------------------------------------------------- + + [ ! -s ${COMSP}tropcy_relocation_status.$tmmark ] && \ + echo "RECORDS PROCESSED" > ${COMSP}tropcy_relocation_status.$tmmark + +# endif loop $DO_RELOCATE +fi + + +######################################################## + +# GOOD RUN +set +x +echo " " +echo " ****** PROCESSING COMPLETED NORMALLY" +echo " ****** PROCESSING COMPLETED NORMALLY" +echo " ****** PROCESSING COMPLETED NORMALLY" +echo " ****** PROCESSING COMPLETED NORMALLY" +echo " " +set -x + + +# save standard output +cat break $pgmout break > allout +cat allout +# rm allout + +sleep 10 + +if [ $iflag -eq 0 ]; then + msg='ENDED NORMALLY.' + postmsg "$jlogfile" "$msg" +fi + +################## END OF SCRIPT ####################### diff --git a/scripts/exglobal_fcst_nemsfv3gfs.sh b/scripts/exglobal_fcst_nemsfv3gfs.sh deleted file mode 100755 index 0e52e422a8..0000000000 --- a/scripts/exglobal_fcst_nemsfv3gfs.sh +++ /dev/null @@ -1,1007 +0,0 @@ -#!/bin/ksh -################################################################################ -# UNIX Script Documentation Block -# Script name: exglobal_fcst_nemsfv3gfs.sh.ecf -# Script description: Runs a global FV3GFS model forecast -# -# Author: Fanglin Yang Org: NCEP/EMC Date: 2016-11-15 -# Abstract: This script runs a single GFS forecast with FV3 dynamical core. -# This script is created based on a C-shell script that GFDL wrote -# for the NGGPS Phase-II Dycore Comparison Project. -# -# Script history log: -# 2016-11-15 Fanglin Yang First Version. -# 2017-02-09 Rahul Mahajan Added warm start and restructured the code. -# 2017-03-10 Fanglin Yang Updated for running forecast on Cray. -# 2017-03-24 Fanglin Yang Updated to use NEMS FV3GFS with IPD4 -# 2017-05-24 Rahul Mahajan Updated for cycling with NEMS FV3GFS -# 2017-09-13 Fanglin Yang Updated for using GFDL MP and Write Component -# 2019-03-21 Fanglin Yang Add restart capability for running gfs fcst from a break point. -# -# $Id$ -# -# Attributes: -# Language: Portable Operating System Interface (POSIX) Shell -# Machine: WCOSS-CRAY, Theia -################################################################################ - -# Set environment. -VERBOSE=${VERBOSE:-"YES"} -if [ $VERBOSE = "YES" ] ; then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi - -machine=${machine:-"WCOSS_C"} -machine=$(echo $machine | tr '[a-z]' '[A-Z]') - -# Cycling and forecast hour specific parameters -CASE=${CASE:-C768} -CDATE=${CDATE:-2017032500} -CDUMP=${CDUMP:-gdas} -FHMIN=${FHMIN:-0} -FHMAX=${FHMAX:-9} -FHOUT=${FHOUT:-3} -FHZER=${FHZER:-6} -FHCYC=${FHCYC:-24} -FHMAX_HF=${FHMAX_HF:-0} -FHOUT_HF=${FHOUT_HF:-1} -NSOUT=${NSOUT:-"-1"} -FDIAG=$FHOUT -if [ $FHMAX_HF -gt 0 -a $FHOUT_HF -gt 0 ]; then FDIAG=$FHOUT_HF; fi - -PDY=$(echo $CDATE | cut -c1-8) -cyc=$(echo $CDATE | cut -c9-10) - -# Directories. -pwd=$(pwd) -NWPROD=${NWPROD:-${NWROOT:-$pwd}} -HOMEgfs=${HOMEgfs:-$NWPROD} -FIX_DIR=${FIX_DIR:-$HOMEgfs/fix} -FIX_AM=${FIX_AM:-$FIX_DIR/fix_am} -FIXfv3=${FIXfv3:-$FIX_DIR/fix_fv3_gmted2010} -DATA=${DATA:-$pwd/fv3tmp$$} # temporary running directory -ROTDIR=${ROTDIR:-$pwd} # rotating archive directory -ICSDIR=${ICSDIR:-$pwd} # cold start initial conditions -DMPDIR=${DMPDIR:-$pwd} # global dumps for seaice, snow and sst analysis - -# Model resolution specific parameters -DELTIM=${DELTIM:-225} -layout_x=${layout_x:-8} -layout_y=${layout_y:-16} -LEVS=${LEVS:-65} - -# Utilities -NCP=${NCP:-"/bin/cp -p"} -NLN=${NLN:-"/bin/ln -sf"} -NMV=${NMV:-"/bin/mv"} -SEND=${SEND:-"YES"} #move final result to rotating directory -ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -KEEPDATA=${KEEPDATA:-"NO"} - -# Other options -MEMBER=${MEMBER:-"-1"} # -1: control, 0: ensemble mean, >0: ensemble member $MEMBER -ENS_NUM=${ENS_NUM:-1} # Single executable runs multiple members (e.g. GEFS) - -# Model specific stuff -FCSTEXECDIR=${FCSTEXECDIR:-$HOMEgfs/sorc/fv3gfs.fd/NEMS/exe} -FCSTEXEC=${FCSTEXEC:-fv3_gfs.x} -PARM_FV3DIAG=${PARM_FV3DIAG:-$HOMEgfs/parm/parm_fv3diag} - -# Model config options -APRUN_FV3=${APRUN_FV3:-${APRUN_FCST:-${APRUN:-""}}} -NTHREADS_FV3=${NTHREADS_FV3:-${NTHREADS_FCST:-${nth_fv3:-1}}} -cores_per_node=${cores_per_node:-${npe_node_max:-24}} -ntiles=${ntiles:-6} -NTASKS_FV3=${NTASKS_FV3:-$npe_fv3} - -TYPE=${TYPE:-"nh"} # choices: nh, hydro -MONO=${MONO:-"non-mono"} # choices: mono, non-mono - -QUILTING=${QUILTING:-".true."} -OUTPUT_GRID=${OUTPUT_GRID:-"gaussian_grid"} -OUTPUT_FILE=${OUTPUT_FILE:-"nemsio"} -WRITE_NEMSIOFLIP=${WRITE_NEMSIOFLIP:-".true."} -WRITE_FSYNCFLAG=${WRITE_FSYNCFLAG:-".true."} - -rCDUMP=${rCDUMP:-$CDUMP} - -#------------------------------------------------------------------ -# setup the runtime environment -if [ $machine = "WCOSS_C" ] ; then - HUGEPAGES=${HUGEPAGES:-hugepages4M} - . $MODULESHOME/init/sh 2>/dev/null - module load iobuf craype-$HUGEPAGES 2>/dev/null - export MPICH_GNI_COLL_OPT_OFF=${MPICH_GNI_COLL_OPT_OFF:-MPI_Alltoallv} - export MKL_CBWR=AVX2 - export WRTIOBUF=${WRTIOBUF:-"4M"} - export NC_BLKSZ=${NC_BLKSZ:-"4M"} - export IOBUF_PARAMS="*nemsio:verbose:size=${WRTIOBUF},*:verbose:size=${NC_BLKSZ}" -fi - -#------------------------------------------------------- -if [ ! -d $ROTDIR ]; then mkdir -p $ROTDIR; fi -mkdata=NO -if [ ! -d $DATA ]; then - mkdata=YES - mkdir -p $DATA -fi -cd $DATA || exit 8 -mkdir -p $DATA/INPUT -if [ $CDUMP = "gfs" -a $restart_interval -gt 0 ]; then - RSTDIR_TMP=${RSTDIR:-$ROTDIR}/${CDUMP}.${PDY}/${cyc}/RERUN_RESTART - if [ ! -d $RSTDIR_TMP ]; then mkdir -p $RSTDIR_TMP ; fi - $NLN $RSTDIR_TMP RESTART -else - mkdir -p $DATA/RESTART -fi - -#------------------------------------------------------- -# determine if restart IC exists to continue from a previous forecast -RERUN="NO" -filecount=$(find $RSTDIR_TMP -type f | wc -l) -if [ $CDUMP = "gfs" -a $restart_interval -gt 0 -a $FHMAX -gt $restart_interval -a $filecount -gt 10 ]; then - SDATE=$($NDATE +$FHMAX $CDATE) - EDATE=$($NDATE +$restart_interval $CDATE) - while [ $SDATE -gt $EDATE ]; do - PDYS=$(echo $SDATE | cut -c1-8) - cycs=$(echo $SDATE | cut -c9-10) - flag1=$RSTDIR_TMP/${PDYS}.${cycs}0000.coupler.res - flag2=$RSTDIR_TMP/coupler.res - if [ -s $flag1 ]; then - mv $flag1 ${flag1}.old - if [ -s $flag2 ]; then mv $flag2 ${flag2}.old ;fi - RERUN="YES" - CDATE_RST=$($NDATE -$restart_interval $SDATE) - break - fi - SDATE=$($NDATE -$restart_interval $SDATE) - done -fi - -#------------------------------------------------------- -# member directory -if [ $MEMBER -lt 0 ]; then - prefix=$CDUMP - rprefix=$rCDUMP - memchar="" -else - prefix=enkf$CDUMP - rprefix=enkf$rCDUMP - memchar=mem$(printf %03i $MEMBER) -fi -memdir=$ROTDIR/${prefix}.$PDY/$cyc/$memchar -if [ ! -d $memdir ]; then mkdir -p $memdir; fi - -GDATE=$($NDATE -$assim_freq $CDATE) -gPDY=$(echo $GDATE | cut -c1-8) -gcyc=$(echo $GDATE | cut -c9-10) -gmemdir=$ROTDIR/${rprefix}.$gPDY/$gcyc/$memchar - -#------------------------------------------------------- -# initial conditions -warm_start=${warm_start:-".false."} -read_increment=${read_increment:-".false."} -restart_interval=${restart_interval:-0} - -# Determine if this is a warm start or cold start -if [ -f $gmemdir/RESTART/${PDY}.${cyc}0000.coupler.res ]; then - export warm_start=".true." -fi - -#------------------------------------------------------- -if [ $warm_start = ".true." -o $RERUN = "YES" ]; then -#------------------------------------------------------- -#............................. - if [ $RERUN = "NO" ]; then -#............................. - - # Link all (except sfc_data) restart files from $gmemdir - for file in $gmemdir/RESTART/${PDY}.${cyc}0000.*.nc; do - file2=$(echo $(basename $file)) - file2=$(echo $file2 | cut -d. -f3-) # remove the date from file - fsuf=$(echo $file2 | cut -d. -f1) - if [ $fsuf != "sfc_data" ]; then - $NLN $file $DATA/INPUT/$file2 - fi - done - - # Link sfcanl_data restart files from $memdir - for file in $memdir/RESTART/${PDY}.${cyc}0000.*.nc; do - file2=$(echo $(basename $file)) - file2=$(echo $file2 | cut -d. -f3-) # remove the date from file - fsufanl=$(echo $file2 | cut -d. -f1) - if [ $fsufanl = "sfcanl_data" ]; then - file2=$(echo $file2 | sed -e "s/sfcanl_data/sfc_data/g") - $NLN $file $DATA/INPUT/$file2 - fi - done - - # Handle coupler.res file for DA cycling - if [ ${USE_COUPLER_RES:-"NO"} = "YES" ]; then - # In DA, this is not really a "true restart", - # and the model start time is the analysis time - # The alternative is to replace - # model start time with current model time in coupler.res - file=$gmemdir/RESTART/${PDY}.${cyc}0000.coupler.res - file2=$(echo $(basename $file)) - file2=$(echo $file2 | cut -d. -f3-) # remove the date from file - $NLN $file $DATA/INPUT/$file2 - fi - - increment_file=$memdir/${CDUMP}.t${cyc}z.atminc.nc - if [ -f $increment_file ]; then - $NLN $increment_file $DATA/INPUT/fv3_increment.nc - read_increment=".true." - res_latlon_dynamics="fv3_increment.nc" - else - read_increment=".false." - res_latlon_dynamics="''" - fi - -#............................. - else ##RERUN - - PDYT=$(echo $CDATE_RST | cut -c1-8) - cyct=$(echo $CDATE_RST | cut -c9-10) - for file in $RSTDIR_TMP/${PDYT}.${cyct}0000.*; do - file2=$(echo $(basename $file)) - file2=$(echo $file2 | cut -d. -f3-) - $NLN $file $DATA/INPUT/$file2 - done - - fi -#............................. - -else ## cold start - - for file in $memdir/INPUT/*.nc; do - file2=$(echo $(basename $file)) - fsuf=$(echo $file2 | cut -c1-3) - if [ $fsuf = "gfs" -o $fsuf = "sfc" ]; then - $NLN $file $DATA/INPUT/$file2 - fi - done - -#------------------------------------------------------- -fi -#------------------------------------------------------- - - -nfiles=$(ls -1 $DATA/INPUT/* | wc -l) -if [ $nfiles -le 0 ]; then - echo "Initial conditions must exist in $DATA/INPUT, ABORT!" - msg=”"Initial conditions must exist in $DATA/INPUT, ABORT!" - postmsg "$jlogfile" "$msg" - exit 1 -fi - -#-------------------------------------------------------------------------- -# Grid and orography data -for n in $(seq 1 $ntiles); do - $NLN $FIXfv3/$CASE/${CASE}_grid.tile${n}.nc $DATA/INPUT/${CASE}_grid.tile${n}.nc - $NLN $FIXfv3/$CASE/${CASE}_oro_data.tile${n}.nc $DATA/INPUT/oro_data.tile${n}.nc -done -$NLN $FIXfv3/$CASE/${CASE}_mosaic.nc $DATA/INPUT/grid_spec.nc - -# GFS standard input data - -IALB=${IALB:-1} -IEMS=${IEMS:-1} -ISOL=${ISOL:-2} -IAER=${IAER:-111} -ICO2=${ICO2:-2} - -if [ ${new_o3forc:-YES} = YES ]; then - O3FORC=ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77 -else - O3FORC=global_o3prdlos.f77 -fi -H2OFORC=${H2OFORC:-"global_h2o_pltc.f77"} -$NLN $FIX_AM/${O3FORC} $DATA/global_o3prdlos.f77 -$NLN $FIX_AM/${H2OFORC} $DATA/global_h2oprdlos.f77 -$NLN $FIX_AM/global_solarconstant_noaa_an.txt $DATA/solarconstant_noaa_an.txt -$NLN $FIX_AM/global_sfc_emissivity_idx.txt $DATA/sfc_emissivity_idx.txt - -$NLN $FIX_AM/global_co2historicaldata_glob.txt $DATA/co2historicaldata_glob.txt -$NLN $FIX_AM/co2monthlycyc.txt $DATA/co2monthlycyc.txt -if [ $ICO2 -gt 0 ]; then - for file in $(ls $FIX_AM/fix_co2_proj/global_co2historicaldata*) ; do - $NLN $file $DATA/$(echo $(basename $file) | sed -e "s/global_//g") - done -fi - -$NLN $FIX_AM/global_climaeropac_global.txt $DATA/aerosol.dat -if [ $IAER -gt 0 ] ; then - for file in $(ls $FIX_AM/global_volcanic_aerosols*) ; do - $NLN $file $DATA/$(echo $(basename $file) | sed -e "s/global_//g") - done -fi -#------------------------------------------------------------------ -# changeable parameters -# dycore definitions -res=$(echo $CASE |cut -c2-5) -resp=$((res+1)) -npx=$resp -npy=$resp -npz=$((LEVS-1)) -io_layout="1,1" -#ncols=$(( (${npx}-1)*(${npy}-1)*3/2 )) - -# spectral truncation and regular grid resolution based on FV3 resolution -JCAP_CASE=$((2*res-2)) -LONB_CASE=$((4*res)) -LATB_CASE=$((2*res)) - -JCAP=${JCAP:-$JCAP_CASE} -LONB=${LONB:-$LONB_CASE} -LATB=${LATB:-$LATB_CASE} - -LONB_IMO=${LONB_IMO:-$LONB_CASE} -LATB_JMO=${LATB_JMO:-$LATB_CASE} - -# Fix files -FNGLAC=${FNGLAC:-"$FIX_AM/global_glacier.2x2.grb"} -FNMXIC=${FNMXIC:-"$FIX_AM/global_maxice.2x2.grb"} -FNTSFC=${FNTSFC:-"$FIX_AM/RTGSST.1982.2012.monthly.clim.grb"} -FNSNOC=${FNSNOC:-"$FIX_AM/global_snoclim.1.875.grb"} -FNZORC=${FNZORC:-"igbp"} -FNALBC2=${FNALBC2:-"$FIX_AM/global_albedo4.1x1.grb"} -FNAISC=${FNAISC:-"$FIX_AM/CFSR.SEAICE.1982.2012.monthly.clim.grb"} -FNTG3C=${FNTG3C:-"$FIX_AM/global_tg3clim.2.6x1.5.grb"} -FNVEGC=${FNVEGC:-"$FIX_AM/global_vegfrac.0.144.decpercent.grb"} -FNMSKH=${FNMSKH:-"$FIX_AM/global_slmask.t1534.3072.1536.grb"} -FNVMNC=${FNVMNC:-"$FIX_AM/global_shdmin.0.144x0.144.grb"} -FNVMXC=${FNVMXC:-"$FIX_AM/global_shdmax.0.144x0.144.grb"} -FNSLPC=${FNSLPC:-"$FIX_AM/global_slope.1x1.grb"} -FNALBC=${FNALBC:-"$FIX_AM/global_snowfree_albedo.bosu.t${JCAP}.${LONB}.${LATB}.rg.grb"} -FNVETC=${FNVETC:-"$FIX_AM/global_vegtype.igbp.t${JCAP}.${LONB}.${LATB}.rg.grb"} -FNSOTC=${FNSOTC:-"$FIX_AM/global_soiltype.statsgo.t${JCAP}.${LONB}.${LATB}.rg.grb"} -FNABSC=${FNABSC:-"$FIX_AM/global_mxsnoalb.uariz.t${JCAP}.${LONB}.${LATB}.rg.grb"} -FNSMCC=${FNSMCC:-"$FIX_AM/global_soilmgldas.statsgo.t${JCAP}.${LONB}.${LATB}.grb"} - -# If the appropriate resolution fix file is not present, use the highest resolution available (T1534) -[[ ! -f $FNALBC ]] && FNALBC="$FIX_AM/global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb" -[[ ! -f $FNVETC ]] && FNVETC="$FIX_AM/global_vegtype.igbp.t1534.3072.1536.rg.grb" -[[ ! -f $FNSOTC ]] && FNSOTC="$FIX_AM/global_soiltype.statsgo.t1534.3072.1536.rg.grb" -[[ ! -f $FNABSC ]] && FNABSC="$FIX_AM/global_mxsnoalb.uariz.t1534.3072.1536.rg.grb" -[[ ! -f $FNSMCC ]] && FNSMCC="$FIX_AM/global_soilmgldas.statsgo.t1534.3072.1536.grb" - -# NSST Options -# nstf_name contains the NSST related parameters -# nstf_name(1) : NST_MODEL (NSST Model) : 0 = OFF, 1 = ON but uncoupled, 2 = ON and coupled -# nstf_name(2) : NST_SPINUP : 0 = OFF, 1 = ON, -# nstf_name(3) : NST_RESV (Reserved, NSST Analysis) : 0 = OFF, 1 = ON -# nstf_name(4) : ZSEA1 (in mm) : 0 -# nstf_name(5) : ZSEA2 (in mm) : 0 -# nst_anl : .true. or .false., NSST analysis over lake -NST_MODEL=${NST_MODEL:-0} -NST_SPINUP=${NST_SPINUP:-0} -NST_RESV=${NST_RESV-0} -ZSEA1=${ZSEA1:-0} -ZSEA2=${ZSEA2:-0} -nstf_name=${nstf_name:-"$NST_MODEL,$NST_SPINUP,$NST_RESV,$ZSEA1,$ZSEA2"} -nst_anl=${nst_anl:-".false."} - - -# blocking factor used for threading and general physics performance -#nyblocks=`expr \( $npy - 1 \) \/ $layout_y ` -#nxblocks=`expr \( $npx - 1 \) \/ $layout_x \/ 32` -#if [ $nxblocks -le 0 ]; then nxblocks=1 ; fi -blocksize=${blocksize:-32} - -# the pre-conditioning of the solution -# =0 implies no pre-conditioning -# >0 means new adiabatic pre-conditioning -# <0 means older adiabatic pre-conditioning -na_init=${na_init:-1} -[[ $warm_start = ".true." ]] && na_init=0 - -# variables for controlling initialization of NCEP/NGGPS ICs -filtered_terrain=${filtered_terrain:-".true."} -gfs_dwinds=${gfs_dwinds:-".true."} - -# various debug options -no_dycore=${no_dycore:-".false."} -dycore_only=${adiabatic:-".false."} -chksum_debug=${chksum_debug:-".false."} -print_freq=${print_freq:-6} - -if [ ${TYPE} = "nh" ]; then # non-hydrostatic options - - hydrostatic=".false." - phys_hydrostatic=".false." # enable heating in hydrostatic balance in non-hydrostatic simulation - use_hydro_pressure=".false." # use hydrostatic pressure for physics - if [ $warm_start = ".true." ]; then - make_nh=".false." # restarts contain non-hydrostatic state - else - make_nh=".true." # re-initialize non-hydrostatic state - fi - -else # hydrostatic options - - hydrostatic=".true." - phys_hydrostatic=".false." # ignored when hydrostatic = T - use_hydro_pressure=".false." # ignored when hydrostatic = T - make_nh=".false." # running in hydrostatic mode - -fi - -# Conserve total energy as heat globally -consv_te=${consv_te:-1.} # range 0.-1., 1. will restore energy to orig. val. before physics - -# time step parameters in FV3 -k_split=${k_split:-2} -n_split=${n_split:-6} - -if [ $(echo $MONO | cut -c-4) = "mono" ]; then # monotonic options - - d_con=${d_con_mono:-"0."} - do_vort_damp=".false." - if [ ${TYPE} = "nh" ]; then # non-hydrostatic - hord_mt=${hord_mt_nh_mono:-"10"} - hord_xx=${hord_xx_nh_mono:-"10"} - else # hydrostatic - hord_mt=${hord_mt_hydro_mono:-"10"} - hord_xx=${hord_xx_hydro_mono:-"10"} - fi - -else # non-monotonic options - - d_con=${d_con_nonmono:-"1."} - do_vort_damp=".true." - if [ ${TYPE} = "nh" ]; then # non-hydrostatic - hord_mt=${hord_mt_nh_nonmono:-"5"} - hord_xx=${hord_xx_nh_nonmono:-"5"} - else # hydrostatic - hord_mt=${hord_mt_hydro_nonmono:-"10"} - hord_xx=${hord_xx_hydro_nonmono:-"10"} - fi - -fi - -if [ $(echo $MONO | cut -c-4) != "mono" -a $TYPE = "nh" ]; then - vtdm4=${vtdm4_nh_nonmono:-"0.06"} -else - vtdm4=${vtdm4:-"0.05"} -fi - -if [ $warm_start = ".true." ]; then # warm start from restart file - - nggps_ic=".false." - ncep_ic=".false." - external_ic=".false." - mountain=".true." - if [ $read_increment = ".true." ]; then # add increment on the fly to the restarts - res_latlon_dynamics="fv3_increment.nc" - else - res_latlon_dynamics='""' - fi - -else # CHGRES'd GFS analyses - - nggps_ic=${nggps_ic:-".true."} - ncep_ic=${ncep_ic:-".false."} - external_ic=".true." - mountain=".false." - read_increment=".false." - res_latlon_dynamics='""' - -fi - -# Stochastic Physics Options -if [ ${SET_STP_SEED:-"YES"} = "YES" ]; then - ISEED_SKEB=$((CDATE*1000 + MEMBER*10 + 1)) - ISEED_SHUM=$((CDATE*1000 + MEMBER*10 + 2)) - ISEED_SPPT=$((CDATE*1000 + MEMBER*10 + 3)) -else - ISEED=${ISEED:-0} -fi -DO_SKEB=${DO_SKEB:-"NO"} -DO_SPPT=${DO_SPPT:-"NO"} -DO_SHUM=${DO_SHUM:-"NO"} -JCAP_STP=${JCAP_STP:-$JCAP_CASE} -LONB_STP=${LONB_STP:-$LONB_CASE} -LATB_STP=${LATB_STP:-$LATB_CASE} - -# build the date for curr_date and diag_table from CDATE -SYEAR=$(echo $CDATE | cut -c1-4) -SMONTH=$(echo $CDATE | cut -c5-6) -SDAY=$(echo $CDATE | cut -c7-8) -SHOUR=$(echo $CDATE | cut -c9-10) -curr_date="${SYEAR},${SMONTH},${SDAY},${SHOUR},0,0" -rsecs=$((restart_interval*3600)) -restart_secs=${rsecs:-0} - -# copy over the tables -DIAG_TABLE=${DIAG_TABLE:-$PARM_FV3DIAG/diag_table} -DATA_TABLE=${DATA_TABLE:-$PARM_FV3DIAG/data_table} -FIELD_TABLE=${FIELD_TABLE:-$PARM_FV3DIAG/field_table} - -# build the diag_table with the experiment name and date stamp -cat > diag_table << EOF -FV3 Forecast -$SYEAR $SMONTH $SDAY $SHOUR 0 0 -EOF -cat $DIAG_TABLE >> diag_table - -$NCP $DATA_TABLE data_table -$NCP $FIELD_TABLE field_table - -#------------------------------------------------------------------ -rm -f nems.configure -cat > nems.configure < model_configure < input.nml <> input.nml -if [ $MEMBER -gt 0 ]; then - - cat >> input.nml << EOF -&nam_stochy - ntrunc = $JCAP_STP - lon_s = $LONB_STP - lat_s = $LATB_STP -EOF - - if [ $DO_SKEB = "YES" ]; then - cat >> input.nml << EOF - skeb = $SKEB - iseed_skeb = ${ISEED_SKEB:-$ISEED} - skeb_tau = ${SKEB_TAU:-"-999."} - skeb_lscale = ${SKEB_LSCALE:-"-999."} - skebnorm = ${SKEBNORM:-"1"} -EOF - fi - - if [ $DO_SHUM = "YES" ]; then - cat >> input.nml << EOF - shum = $SHUM - iseed_shum = ${ISEED_SHUM:-$ISEED} - shum_tau = ${SHUM_TAU:-"-999."} - shum_lscale = ${SHUM_LSCALE:-"-999."} -EOF - fi - - if [ $DO_SPPT = "YES" ]; then - cat >> input.nml << EOF - sppt = $SPPT - iseed_sppt = ${ISEED_SPPT:-$ISEED} - sppt_tau = ${SPPT_TAU:-"-999."} - sppt_lscale = ${SPPT_LSCALE:-"-999."} - sppt_logit = ${SPPT_LOGIT:-".true."} - sppt_sfclimit = ${SPPT_SFCLIMIT:-".true."} - use_zmtnblck = ${use_zmtnblck:-".true."} -EOF - fi - - cat >> input.nml << EOF - $nam_stochy_nml -/ -EOF - - - cat >> input.nml << EOF -&nam_sfcperts - $nam_sfcperts_nml -/ -EOF - -else - - cat >> input.nml << EOF -&nam_stochy -/ -&nam_sfcperts -/ -EOF - -fi - - -#------------------------------------------------------------------ -# make symbolic links to write forecast files directly in memdir -cd $DATA -if [ $QUILTING = ".true." -a $OUTPUT_GRID = "gaussian_grid" ]; then - fhr=$FHMIN - while [ $fhr -le $FHMAX ]; do - FH3=$(printf %03i $fhr) - atmi=atmf${FH3}.$OUTPUT_FILE - sfci=sfcf${FH3}.$OUTPUT_FILE - logi=logf${FH3} - atmo=$memdir/${CDUMP}.t${cyc}z.atmf${FH3}.$OUTPUT_FILE - sfco=$memdir/${CDUMP}.t${cyc}z.sfcf${FH3}.$OUTPUT_FILE - logo=$memdir/${CDUMP}.t${cyc}z.logf${FH3}.$OUTPUT_FILE - eval $NLN $atmo $atmi - eval $NLN $sfco $sfci - eval $NLN $logo $logi - FHINC=$FHOUT - if [ $FHMAX_HF -gt 0 -a $FHOUT_HF -gt 0 -a $fhr -lt $FHMAX_HF ]; then - FHINC=$FHOUT_HF - fi - fhr=$((fhr+FHINC)) - done -else - for n in $(seq 1 $ntiles); do - eval $NLN nggps2d.tile${n}.nc $memdir/nggps2d.tile${n}.nc - eval $NLN nggps3d.tile${n}.nc $memdir/nggps3d.tile${n}.nc - eval $NLN grid_spec.tile${n}.nc $memdir/grid_spec.tile${n}.nc - eval $NLN atmos_static.tile${n}.nc $memdir/atmos_static.tile${n}.nc - eval $NLN atmos_4xdaily.tile${n}.nc $memdir/atmos_4xdaily.tile${n}.nc - done -fi - -#------------------------------------------------------------------ -# run the executable - -$NCP $FCSTEXECDIR/$FCSTEXEC $DATA/. -export OMP_NUM_THREADS=$NTHREADS_FV3 -$APRUN_FV3 $DATA/$FCSTEXEC 1>&1 2>&2 -export ERR=$? -export err=$ERR -$ERRSCRIPT || exit $err - -#------------------------------------------------------------------ -if [ $SEND = "YES" ]; then - - # Copy gdas and enkf memebr restart files - if [ $CDUMP = "gdas" -a $restart_interval -gt 0 ]; then - cd $DATA/RESTART - mkdir -p $memdir/RESTART - - RDATE=$($NDATE +$restart_interval $CDATE) - rPDY=$(echo $RDATE | cut -c1-8) - rcyc=$(echo $RDATE | cut -c9-10) - for file in ${rPDY}.${rcyc}0000.* ; do - $NCP $file $memdir/RESTART/$file - done - fi - -fi - -#------------------------------------------------------------------ -# Clean up before leaving -if [ $mkdata = "YES" ]; then rm -rf $DATA; fi - -#------------------------------------------------------------------ -set +x -if [ $VERBOSE = "YES" ] ; then - echo $(date) EXITING $0 with return code $err >&2 -fi -exit 0 diff --git a/scripts/exglobal_forecast.sh b/scripts/exglobal_forecast.sh new file mode 100755 index 0000000000..e76f000828 --- /dev/null +++ b/scripts/exglobal_forecast.sh @@ -0,0 +1,1361 @@ +#!/bin/ksh +################################################################################ +# UNIX Script Documentation Block +# Script name: exglobal_forecast.sh +# Script description: Runs a global FV3GFS model forecast +# +# Author: Fanglin Yang Org: NCEP/EMC Date: 2016-11-15 +# Abstract: This script runs a single GFS forecast with FV3 dynamical core. +# This script is created based on a C-shell script that GFDL wrote +# for the NGGPS Phase-II Dycore Comparison Project. +# +# Script history log: +# 2016-11-15 Fanglin Yang First Version. +# 2017-02-09 Rahul Mahajan Added warm start and restructured the code. +# 2017-03-10 Fanglin Yang Updated for running forecast on Cray. +# 2017-03-24 Fanglin Yang Updated to use NEMS FV3GFS with IPD4 +# 2017-05-24 Rahul Mahajan Updated for cycling with NEMS FV3GFS +# 2017-09-13 Fanglin Yang Updated for using GFDL MP and Write Component +# 2019-03-05 Rahul Mahajan Implemented IAU +# 2019-03-21 Fanglin Yang Add restart capability for running gfs fcst from a break point. +# 2019-12-12 Henrique Alves Added wave model blocks for coupled run +# 2020-01-31 Henrique Alves Added IAU capability for wave component +# 2020-06-02 Fanglin Yang restore restart capability when IAU is turned on. +# +# $Id$ +# +# Attributes: +# Language: Portable Operating System Interface (POSIX) Shell +# Machine: WCOSS-CRAY, Theia +################################################################################ + +# Set environment. +VERBOSE=${VERBOSE:-"YES"} +if [ $VERBOSE = "YES" ] ; then + echo $(date) EXECUTING $0 $* >&2 + set -x +fi + +machine=${machine:-"WCOSS_C"} +machine=$(echo $machine | tr '[a-z]' '[A-Z]') + +# Cycling and forecast hour specific parameters +CDUMPwave="${CDUMP}wave" +CASE=${CASE:-C768} +CDATE=${CDATE:-2017032500} +CDUMP=${CDUMP:-gdas} +FHMIN=${FHMIN:-0} +FHMAX=${FHMAX:-9} +FHOUT=${FHOUT:-3} +FHZER=${FHZER:-6} +FHCYC=${FHCYC:-24} +FHMAX_HF=${FHMAX_HF:-0} +FHOUT_HF=${FHOUT_HF:-1} +NSOUT=${NSOUT:-"-1"} +FDIAG=$FHOUT +if [ $FHMAX_HF -gt 0 -a $FHOUT_HF -gt 0 ]; then FDIAG=$FHOUT_HF; fi +WRITE_DOPOST=${WRITE_DOPOST:-".false."} +restart_interval=${restart_interval:-0} +rst_invt1=`echo $restart_interval |cut -d " " -f 1` + +PDY=$(echo $CDATE | cut -c1-8) +cyc=$(echo $CDATE | cut -c9-10) + +# Directories. +pwd=$(pwd) +NWPROD=${NWPROD:-${NWROOT:-$pwd}} +HOMEgfs=${HOMEgfs:-$NWPROD} +FIX_DIR=${FIX_DIR:-$HOMEgfs/fix} +FIX_AM=${FIX_AM:-$FIX_DIR/fix_am} +FIXfv3=${FIXfv3:-$FIX_DIR/fix_fv3_gmted2010} +DATA=${DATA:-$pwd/fv3tmp$$} # temporary running directory +ROTDIR=${ROTDIR:-$pwd} # rotating archive directory +ICSDIR=${ICSDIR:-$pwd} # cold start initial conditions +DMPDIR=${DMPDIR:-$pwd} # global dumps for seaice, snow and sst analysis + +# Model resolution specific parameters +DELTIM=${DELTIM:-225} +layout_x=${layout_x:-8} +layout_y=${layout_y:-16} +LEVS=${LEVS:-65} + +# Utilities +NCP=${NCP:-"/bin/cp -p"} +NLN=${NLN:-"/bin/ln -sf"} +NMV=${NMV:-"/bin/mv"} +SEND=${SEND:-"YES"} #move final result to rotating directory +ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} +KEEPDATA=${KEEPDATA:-"NO"} + +# Other options +MEMBER=${MEMBER:-"-1"} # -1: control, 0: ensemble mean, >0: ensemble member $MEMBER +ENS_NUM=${ENS_NUM:-1} # Single executable runs multiple members (e.g. GEFS) +PREFIX_ATMINC=${PREFIX_ATMINC:-""} # allow ensemble to use recentered increment + +# IAU options +DOIAU=${DOIAU:-"NO"} +IAUFHRS=${IAUFHRS:-0} +IAU_DELTHRS=${IAU_DELTHRS:-0} +IAU_OFFSET=${IAU_OFFSET:-0} + +# Model specific stuff +FCSTEXECDIR=${FCSTEXECDIR:-$HOMEgfs/sorc/fv3gfs.fd/NEMS/exe} +FCSTEXEC=${FCSTEXEC:-fv3_gfs.x} +PARM_FV3DIAG=${PARM_FV3DIAG:-$HOMEgfs/parm/parm_fv3diag} +PARM_POST=${PARM_POST:-$HOMEgfs/parm/post} + +# Wave coupling parameter defaults to false +cplwav=${cplwav:-.false.} + +# Model config options +APRUN_FV3=${APRUN_FV3:-${APRUN_FCST:-${APRUN:-""}}} +NTHREADS_FV3=${NTHREADS_FV3:-${NTHREADS_FCST:-${nth_fv3:-1}}} +cores_per_node=${cores_per_node:-${npe_node_max:-24}} +ntiles=${ntiles:-6} +NTASKS_FV3=${NTASKS_FV3:-$npe_fv3} + +TYPE=${TYPE:-"nh"} # choices: nh, hydro +MONO=${MONO:-"non-mono"} # choices: mono, non-mono + +QUILTING=${QUILTING:-".true."} +OUTPUT_GRID=${OUTPUT_GRID:-"gaussian_grid"} +OUTPUT_FILE=${OUTPUT_FILE:-"nemsio"} +WRITE_NEMSIOFLIP=${WRITE_NEMSIOFLIP:-".true."} +WRITE_FSYNCFLAG=${WRITE_FSYNCFLAG:-".true."} +affix="nemsio" +[[ "$OUTPUT_FILE" = "netcdf" ]] && affix="nc" + +rCDUMP=${rCDUMP:-$CDUMP} + +#------------------------------------------------------------------ +# setup the runtime environment +if [ $machine = "WCOSS_C" ] ; then + HUGEPAGES=${HUGEPAGES:-hugepages4M} + . $MODULESHOME/init/sh 2>/dev/null + module load iobuf craype-$HUGEPAGES 2>/dev/null + export MPICH_GNI_COLL_OPT_OFF=${MPICH_GNI_COLL_OPT_OFF:-MPI_Alltoallv} + export MKL_CBWR=AVX2 + export WRTIOBUF=${WRTIOBUF:-"4M"} + export NC_BLKSZ=${NC_BLKSZ:-"4M"} + export IOBUF_PARAMS="*nemsio:verbose:size=${WRTIOBUF},*:verbose:size=${NC_BLKSZ}" +fi + +#------------------------------------------------------- +if [ ! -d $ROTDIR ]; then mkdir -p $ROTDIR; fi +mkdata=NO +if [ ! -d $DATA ]; then + mkdata=YES + mkdir -p $DATA +fi +cd $DATA || exit 8 +mkdir -p $DATA/INPUT + +if [ $cplwav = ".true." ]; then + if [ $CDUMP = "gdas" ]; then + RSTDIR_WAVE=$ROTDIR/${CDUMP}.${PDY}/${cyc}/wave/restart + else + RSTDIR_WAVE=${RSTDIR_WAVE:-$ROTDIR/${CDUMP}.${PDY}/${cyc}/wave/restart} + fi + if [ ! -d $RSTDIR_WAVE ]; then mkdir -p $RSTDIR_WAVE ; fi + $NLN $RSTDIR_WAVE restart_wave +fi + +if [ $CDUMP = "gfs" -a $rst_invt1 -gt 0 ]; then + RSTDIR_ATM=${RSTDIR:-$ROTDIR}/${CDUMP}.${PDY}/${cyc}/atmos/RERUN_RESTART + if [ ! -d $RSTDIR_ATM ]; then mkdir -p $RSTDIR_ATM ; fi + $NLN $RSTDIR_ATM RESTART +else + mkdir -p $DATA/RESTART +fi + +#------------------------------------------------------- +# determine if restart IC exists to continue from a previous forecast +RERUN="NO" +filecount=$(find $RSTDIR_ATM -type f | wc -l) +if [ $CDUMP = "gfs" -a $rst_invt1 -gt 0 -a $FHMAX -gt $rst_invt1 -a $filecount -gt 10 ]; then + reverse=$(echo "${restart_interval[@]} " | tac -s ' ') + for xfh in $reverse ; do + yfh=$((xfh-(IAU_OFFSET/2))) + SDATE=$($NDATE +$yfh $CDATE) + PDYS=$(echo $SDATE | cut -c1-8) + cycs=$(echo $SDATE | cut -c9-10) + flag1=$RSTDIR_ATM/${PDYS}.${cycs}0000.coupler.res + flag2=$RSTDIR_ATM/coupler.res + if [ -s $flag1 ]; then + CDATE_RST=$SDATE + [[ $RERUN = "YES" ]] && break + mv $flag1 ${flag1}.old + if [ -s $flag2 ]; then mv $flag2 ${flag2}.old ;fi + RERUN="YES" + [[ $xfh = $rst_invt1 ]] && RERUN="NO" + fi + done +fi + +#------------------------------------------------------- +# member directory +if [ $MEMBER -lt 0 ]; then + prefix=$CDUMP + rprefix=$rCDUMP + memchar="" +else + prefix=enkf$CDUMP + rprefix=enkf$rCDUMP + memchar=mem$(printf %03i $MEMBER) +fi +memdir=$ROTDIR/${prefix}.$PDY/$cyc/atmos/$memchar +if [ ! -d $memdir ]; then mkdir -p $memdir; fi + +GDATE=$($NDATE -$assim_freq $CDATE) +gPDY=$(echo $GDATE | cut -c1-8) +gcyc=$(echo $GDATE | cut -c9-10) +gmemdir=$ROTDIR/${rprefix}.$gPDY/$gcyc/atmos/$memchar +sCDATE=$($NDATE -3 $CDATE) + +if [[ "$DOIAU" = "YES" ]]; then + sCDATE=$($NDATE -3 $CDATE) + sPDY=$(echo $sCDATE | cut -c1-8) + scyc=$(echo $sCDATE | cut -c9-10) + tPDY=$gPDY + tcyc=$gcyc +else + sCDATE=$CDATE + sPDY=$PDY + scyc=$cyc + tPDY=$sPDY + tcyc=$cyc +fi + +#------------------------------------------------------- +# initial conditions +warm_start=${warm_start:-".false."} +read_increment=${read_increment:-".false."} +res_latlon_dynamics="''" + +# Determine if this is a warm start or cold start +if [ -f $gmemdir/RESTART/${sPDY}.${scyc}0000.coupler.res ]; then + export warm_start=".true." +fi + +# turn IAU off for cold start +DOIAU_coldstart=${DOIAU_coldstart:-"NO"} +if [ $DOIAU = "YES" -a $warm_start = ".false." ] || [ $DOIAU_coldstart = "YES" -a $warm_start = ".true." ]; then + export DOIAU="NO" + echo "turning off IAU" + DOIAU_coldstart="YES" + IAU_OFFSET=0 + sCDATE=$CDATE + sPDY=$PDY + scyc=$cyc + tPDY=$sPDY + tcyc=$cyc +fi + +#------------------------------------------------------- +if [ $warm_start = ".true." -o $RERUN = "YES" ]; then +#------------------------------------------------------- +#............................. + if [ $RERUN = "NO" ]; then +#............................. + + # Link all (except sfc_data) restart files from $gmemdir + for file in $(ls $gmemdir/RESTART/${sPDY}.${scyc}0000.*.nc); do + file2=$(echo $(basename $file)) + file2=$(echo $file2 | cut -d. -f3-) # remove the date from file + fsuf=$(echo $file2 | cut -d. -f1) + if [ $fsuf != "sfc_data" ]; then + $NLN $file $DATA/INPUT/$file2 + fi + done + + # Link sfcanl_data restart files from $memdir + for file in $(ls $memdir/RESTART/${sPDY}.${scyc}0000.*.nc); do + file2=$(echo $(basename $file)) + file2=$(echo $file2 | cut -d. -f3-) # remove the date from file + fsufanl=$(echo $file2 | cut -d. -f1) + if [ $fsufanl = "sfcanl_data" ]; then + file2=$(echo $file2 | sed -e "s/sfcanl_data/sfc_data/g") + $NLN $file $DATA/INPUT/$file2 + fi + done + + # Need a coupler.res when doing IAU + if [ $DOIAU = "YES" ]; then + rm -f $DATA/INPUT/coupler.res + cat >> $DATA/INPUT/coupler.res << EOF + 2 (Calendar: no_calendar=0, thirty_day_months=1, julian=2, gregorian=3, noleap=4) + ${gPDY:0:4} ${gPDY:4:2} ${gPDY:6:2} ${gcyc} 0 0 Model start time: year, month, day, hour, minute, second + ${sPDY:0:4} ${sPDY:4:2} ${sPDY:6:2} ${scyc} 0 0 Current model time: year, month, day, hour, minute, second +EOF + fi + + # Link increments + if [ $DOIAU = "YES" ]; then + for i in $(echo $IAUFHRS | sed "s/,/ /g" | rev); do + incfhr=$(printf %03i $i) + if [ $incfhr = "006" ]; then + increment_file=$memdir/${CDUMP}.t${cyc}z.${PREFIX_ATMINC}atminc.nc + else + increment_file=$memdir/${CDUMP}.t${cyc}z.${PREFIX_ATMINC}atmi${incfhr}.nc + fi + if [ ! -f $increment_file ]; then + echo "ERROR: DOIAU = $DOIAU, but missing increment file for fhr $incfhr at $increment_file" + echo "Abort!" + exit 1 + fi + $NLN $increment_file $DATA/INPUT/fv_increment$i.nc + IAU_INC_FILES="'fv_increment$i.nc',$IAU_INC_FILES" + done + read_increment=".false." + res_latlon_dynamics="" + else + increment_file=$memdir/${CDUMP}.t${cyc}z.${PREFIX_INC}atminc.nc + if [ -f $increment_file ]; then + $NLN $increment_file $DATA/INPUT/fv_increment.nc + read_increment=".true." + res_latlon_dynamics="fv_increment.nc" + fi + fi + +#............................. + else ##RERUN + + export warm_start=".true." + PDYT=$(echo $CDATE_RST | cut -c1-8) + cyct=$(echo $CDATE_RST | cut -c9-10) + for file in $(ls $RSTDIR_ATM/${PDYT}.${cyct}0000.*); do + file2=$(echo $(basename $file)) + file2=$(echo $file2 | cut -d. -f3-) + $NLN $file $DATA/INPUT/$file2 + done + + hour_rst=`$NHOUR $CDATE_RST $CDATE` + IAU_FHROT=$((IAU_OFFSET+hour_rst)) + if [ $DOIAU = "YES" ]; then + IAUFHRS=-1 + IAU_DELTHRS=0 + IAU_INC_FILES="''" + fi + + + fi +#............................. + +else ## cold start + + for file in $(ls $memdir/INPUT/*.nc); do + file2=$(echo $(basename $file)) + fsuf=$(echo $file2 | cut -c1-3) + if [ $fsuf = "gfs" -o $fsuf = "sfc" ]; then + $NLN $file $DATA/INPUT/$file2 + fi + done + +#------------------------------------------------------- +fi +#------------------------------------------------------- + +nfiles=$(ls -1 $DATA/INPUT/* | wc -l) +if [ $nfiles -le 0 ]; then + echo "Initial conditions must exist in $DATA/INPUT, ABORT!" + msg="Initial conditions must exist in $DATA/INPUT, ABORT!" + postmsg "$jlogfile" "$msg" + exit 1 +fi + +# If doing IAU, change forecast hours +if [[ "$DOIAU" = "YES" ]]; then + FHMAX=$((FHMAX+6)) + if [ $FHMAX_HF -gt 0 ]; then + FHMAX_HF=$((FHMAX_HF+6)) + fi +fi + +#-------------------------------------------------------------------------- +# Grid and orography data +for n in $(seq 1 $ntiles); do + $NLN $FIXfv3/$CASE/${CASE}_grid.tile${n}.nc $DATA/INPUT/${CASE}_grid.tile${n}.nc + $NLN $FIXfv3/$CASE/${CASE}_oro_data.tile${n}.nc $DATA/INPUT/oro_data.tile${n}.nc +done +$NLN $FIXfv3/$CASE/${CASE}_mosaic.nc $DATA/INPUT/grid_spec.nc + +# GFS standard input data +IAER=${IAER:-111} +ICO2=${ICO2:-2} + +if [ ${new_o3forc:-YES} = YES ]; then + O3FORC=ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77 +else + O3FORC=global_o3prdlos.f77 +fi +H2OFORC=${H2OFORC:-"global_h2o_pltc.f77"} +$NLN $FIX_AM/${O3FORC} $DATA/global_o3prdlos.f77 +$NLN $FIX_AM/${H2OFORC} $DATA/global_h2oprdlos.f77 +$NLN $FIX_AM/global_solarconstant_noaa_an.txt $DATA/solarconstant_noaa_an.txt +$NLN $FIX_AM/global_sfc_emissivity_idx.txt $DATA/sfc_emissivity_idx.txt + +$NLN $FIX_AM/global_co2historicaldata_glob.txt $DATA/co2historicaldata_glob.txt +$NLN $FIX_AM/co2monthlycyc.txt $DATA/co2monthlycyc.txt +if [ $ICO2 -gt 0 ]; then + for file in $(ls $FIX_AM/fix_co2_proj/global_co2historicaldata*) ; do + $NLN $file $DATA/$(echo $(basename $file) | sed -e "s/global_//g") + done +fi + +$NLN $FIX_AM/global_climaeropac_global.txt $DATA/aerosol.dat +if [ $IAER -gt 0 ] ; then + for file in $(ls $FIX_AM/global_volcanic_aerosols*) ; do + $NLN $file $DATA/$(echo $(basename $file) | sed -e "s/global_//g") + done +fi + +#-------------wavewave---------------------- +if [ $cplwav = ".true." ]; then + + for file in $(ls $COMINwave/rundata/rmp_src_to_dst_conserv_*) ; do + $NLN $file $DATA/ + done + $NLN $COMINwave/rundata/ww3_multi.${CDUMPwave}${WAV_MEMBER}.${cycle}.inp $DATA/ww3_multi.inp + + array=($WAVECUR_FID $WAVEICE_FID $WAVEWND_FID $waveuoutpGRD $waveGRD $waveesmfGRD $wavesbsGRD $wavepostGRD $waveinterpGRD) + grdALL=`printf "%s\n" "${array[@]}" | sort -u | tr '\n' ' '` + + for wavGRD in ${grdALL}; do + $NLN $COMINwave/rundata/${CDUMPwave}.mod_def.$wavGRD $DATA/mod_def.$wavGRD + done + + export WAVHCYC=${WAVHCYC:-6} + export WRDATE=`$NDATE -${WAVHCYC} $CDATE` + export WRPDY=`echo $WRDATE | cut -c1-8` + export WRcyc=`echo $WRDATE | cut -c9-10` + export WRDIR=${ROTDIR}/${CDUMPRSTwave}.${WRPDY}/${WRcyc}/wave/restart + export datwave=$COMOUTwave/rundata + export wavprfx=${CDUMPwave}${WAV_MEMBER} + + for wavGRD in $waveGRD ; do + if [ $RERUN = "NO" ]; then + if [ ! -f ${WRDIR}/${sPDY}.${scyc}0000.restart.${wavGRD} ]; then + echo "WARNING: NON-FATAL ERROR wave IC is missing, will start from rest" + fi + $NLN ${WRDIR}/${sPDY}.${scyc}0000.restart.${wavGRD} $DATA/restart.${wavGRD} + else + if [ ! -f ${RSTDIR_WAVE}/${PDYT}.${cyct}0000.restart.${wavGRD} ]; then + echo "WARNING: NON-FATAL ERROR wave IC is missing, will start from rest" + fi + $NLN ${RSTDIR_WAVE}/${PDYT}.${cyct}0000.restart.${wavGRD} $DATA/restart.${wavGRD} + fi + eval $NLN $datwave/${wavprfx}.log.${wavGRD}.${PDY}${cyc} log.${wavGRD} + done + + if [ "$WW3ICEINP" = "YES" ]; then + wavicefile=$COMINwave/rundata/${CDUMPwave}.${WAVEICE_FID}.${cycle}.ice + if [ ! -f $wavicefile ]; then + echo "ERROR: WW3ICEINP = ${WW3ICEINP}, but missing ice file" + echo "Abort!" + exit 1 + fi + $NLN ${wavicefile} $DATA/ice.${WAVEICE_FID} + fi + + if [ "$WW3CURINP" = "YES" ]; then + wavcurfile=$COMINwave/rundata/${CDUMPwave}.${WAVECUR_FID}.${cycle}.cur + if [ ! -f $wavcurfile ]; then + echo "ERROR: WW3CURINP = ${WW3CURINP}, but missing current file" + echo "Abort!" + exit 1 + fi + $NLN $wavcurfile $DATA/current.${WAVECUR_FID} + fi + + # Link output files + cd $DATA + eval $NLN $datwave/${wavprfx}.log.mww3.${PDY}${cyc} log.mww3 + + # Loop for gridded output (uses FHINC) + fhr=$FHMIN_WAV + while [ $fhr -le $FHMAX_WAV ]; do + YMDH=`$NDATE $fhr $CDATE` + YMD=$(echo $YMDH | cut -c1-8) + HMS="$(echo $YMDH | cut -c9-10)0000" + for wavGRD in ${waveGRD} ; do + eval $NLN $datwave/${wavprfx}.out_grd.${wavGRD}.${YMD}.${HMS} ${YMD}.${HMS}.out_grd.${wavGRD} + done + FHINC=$FHOUT_WAV + if [ $FHMAX_HF_WAV -gt 0 -a $FHOUT_HF_WAV -gt 0 -a $fhr -lt $FHMAX_HF_WAV ]; then + FHINC=$FHOUT_HF_WAV + fi + fhr=$((fhr+FHINC)) + done + + # Loop for point output (uses DTPNT) + fhr=$FHMIN_WAV + while [ $fhr -le $FHMAX_WAV ]; do + YMDH=`$NDATE $fhr $CDATE` + YMD=$(echo $YMDH | cut -c1-8) + HMS="$(echo $YMDH | cut -c9-10)0000" + eval $NLN $datwave/${wavprfx}.out_pnt.${waveuoutpGRD}.${YMD}.${HMS} ${YMD}.${HMS}.out_pnt.${waveuoutpGRD} + FHINC=$FHINCP_WAV + fhr=$((fhr+FHINC)) + done + +fi #cplwav=true +#-------------wavewave---------------------- + +# inline post fix files +if [ $WRITE_DOPOST = ".true." ]; then + $NLN $PARM_POST/post_tag_gfs${LEVS} $DATA/itag + $NLN $PARM_POST/postxconfig-NT-GFS-TWO.txt $DATA/postxconfig-NT.txt + $NLN $PARM_POST/postxconfig-NT-GFS-F00-TWO.txt $DATA/postxconfig-NT_FH00.txt + $NLN $PARM_POST/params_grib2_tbl_new $DATA/params_grib2_tbl_new +fi +#------------------------------------------------------------------ + +# changeable parameters +# dycore definitions +res=$(echo $CASE |cut -c2-5) +resp=$((res+1)) +npx=$resp +npy=$resp +npz=$((LEVS-1)) +io_layout=${io_layout:-"1,1"} +#ncols=$(( (${npx}-1)*(${npy}-1)*3/2 )) + +# spectral truncation and regular grid resolution based on FV3 resolution +JCAP_CASE=$((2*res-2)) +LONB_CASE=$((4*res)) +LATB_CASE=$((2*res)) + +JCAP=${JCAP:-$JCAP_CASE} +LONB=${LONB:-$LONB_CASE} +LATB=${LATB:-$LATB_CASE} + +LONB_IMO=${LONB_IMO:-$LONB_CASE} +LATB_JMO=${LATB_JMO:-$LATB_CASE} + +# Fix files +FNGLAC=${FNGLAC:-"$FIX_AM/global_glacier.2x2.grb"} +FNMXIC=${FNMXIC:-"$FIX_AM/global_maxice.2x2.grb"} +FNTSFC=${FNTSFC:-"$FIX_AM/RTGSST.1982.2012.monthly.clim.grb"} +FNSNOC=${FNSNOC:-"$FIX_AM/global_snoclim.1.875.grb"} +FNZORC=${FNZORC:-"igbp"} +FNALBC2=${FNALBC2:-"$FIX_AM/global_albedo4.1x1.grb"} +FNAISC=${FNAISC:-"$FIX_AM/CFSR.SEAICE.1982.2012.monthly.clim.grb"} +FNTG3C=${FNTG3C:-"$FIX_AM/global_tg3clim.2.6x1.5.grb"} +FNVEGC=${FNVEGC:-"$FIX_AM/global_vegfrac.0.144.decpercent.grb"} +FNMSKH=${FNMSKH:-"$FIX_AM/global_slmask.t1534.3072.1536.grb"} +FNVMNC=${FNVMNC:-"$FIX_AM/global_shdmin.0.144x0.144.grb"} +FNVMXC=${FNVMXC:-"$FIX_AM/global_shdmax.0.144x0.144.grb"} +FNSLPC=${FNSLPC:-"$FIX_AM/global_slope.1x1.grb"} +FNALBC=${FNALBC:-"$FIX_AM/global_snowfree_albedo.bosu.t${JCAP}.${LONB}.${LATB}.rg.grb"} +FNVETC=${FNVETC:-"$FIX_AM/global_vegtype.igbp.t${JCAP}.${LONB}.${LATB}.rg.grb"} +FNSOTC=${FNSOTC:-"$FIX_AM/global_soiltype.statsgo.t${JCAP}.${LONB}.${LATB}.rg.grb"} +FNABSC=${FNABSC:-"$FIX_AM/global_mxsnoalb.uariz.t${JCAP}.${LONB}.${LATB}.rg.grb"} +FNSMCC=${FNSMCC:-"$FIX_AM/global_soilmgldas.statsgo.t${JCAP}.${LONB}.${LATB}.grb"} + +# If the appropriate resolution fix file is not present, use the highest resolution available (T1534) +[[ ! -f $FNALBC ]] && FNALBC="$FIX_AM/global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb" +[[ ! -f $FNVETC ]] && FNVETC="$FIX_AM/global_vegtype.igbp.t1534.3072.1536.rg.grb" +[[ ! -f $FNSOTC ]] && FNSOTC="$FIX_AM/global_soiltype.statsgo.t1534.3072.1536.rg.grb" +[[ ! -f $FNABSC ]] && FNABSC="$FIX_AM/global_mxsnoalb.uariz.t1534.3072.1536.rg.grb" +[[ ! -f $FNSMCC ]] && FNSMCC="$FIX_AM/global_soilmgldas.statsgo.t1534.3072.1536.grb" + +# NSST Options +# nstf_name contains the NSST related parameters +# nstf_name(1) : NST_MODEL (NSST Model) : 0 = OFF, 1 = ON but uncoupled, 2 = ON and coupled +# nstf_name(2) : NST_SPINUP : 0 = OFF, 1 = ON, +# nstf_name(3) : NST_RESV (Reserved, NSST Analysis) : 0 = OFF, 1 = ON +# nstf_name(4) : ZSEA1 (in mm) : 0 +# nstf_name(5) : ZSEA2 (in mm) : 0 +# nst_anl : .true. or .false., NSST analysis over lake +NST_MODEL=${NST_MODEL:-0} +NST_SPINUP=${NST_SPINUP:-0} +NST_RESV=${NST_RESV-0} +ZSEA1=${ZSEA1:-0} +ZSEA2=${ZSEA2:-0} +nstf_name=${nstf_name:-"$NST_MODEL,$NST_SPINUP,$NST_RESV,$ZSEA1,$ZSEA2"} +nst_anl=${nst_anl:-".false."} + + +# blocking factor used for threading and general physics performance +#nyblocks=`expr \( $npy - 1 \) \/ $layout_y ` +#nxblocks=`expr \( $npx - 1 \) \/ $layout_x \/ 32` +#if [ $nxblocks -le 0 ]; then nxblocks=1 ; fi +blocksize=${blocksize:-32} + +# the pre-conditioning of the solution +# =0 implies no pre-conditioning +# >0 means new adiabatic pre-conditioning +# <0 means older adiabatic pre-conditioning +na_init=${na_init:-1} +[[ $warm_start = ".true." ]] && na_init=0 + +# variables for controlling initialization of NCEP/NGGPS ICs +filtered_terrain=${filtered_terrain:-".true."} +gfs_dwinds=${gfs_dwinds:-".true."} + +# various debug options +no_dycore=${no_dycore:-".false."} +dycore_only=${adiabatic:-".false."} +chksum_debug=${chksum_debug:-".false."} +print_freq=${print_freq:-6} + +if [ ${TYPE} = "nh" ]; then # non-hydrostatic options + + hydrostatic=".false." + phys_hydrostatic=".false." # enable heating in hydrostatic balance in non-hydrostatic simulation + use_hydro_pressure=".false." # use hydrostatic pressure for physics + if [ $warm_start = ".true." ]; then + make_nh=".false." # restarts contain non-hydrostatic state + else + make_nh=".true." # re-initialize non-hydrostatic state + fi + +else # hydrostatic options + + hydrostatic=".true." + phys_hydrostatic=".false." # ignored when hydrostatic = T + use_hydro_pressure=".false." # ignored when hydrostatic = T + make_nh=".false." # running in hydrostatic mode + +fi + +# Conserve total energy as heat globally +consv_te=${consv_te:-1.} # range 0.-1., 1. will restore energy to orig. val. before physics + +# time step parameters in FV3 +k_split=${k_split:-2} +n_split=${n_split:-6} + +if [ $(echo $MONO | cut -c-4) = "mono" ]; then # monotonic options + + d_con=${d_con_mono:-"0."} + do_vort_damp=".false." + if [ ${TYPE} = "nh" ]; then # non-hydrostatic + hord_mt=${hord_mt_nh_mono:-"10"} + hord_xx=${hord_xx_nh_mono:-"10"} + else # hydrostatic + hord_mt=${hord_mt_hydro_mono:-"10"} + hord_xx=${hord_xx_hydro_mono:-"10"} + fi + +else # non-monotonic options + + d_con=${d_con_nonmono:-"1."} + do_vort_damp=".true." + if [ ${TYPE} = "nh" ]; then # non-hydrostatic + hord_mt=${hord_mt_nh_nonmono:-"5"} + hord_xx=${hord_xx_nh_nonmono:-"5"} + else # hydrostatic + hord_mt=${hord_mt_hydro_nonmono:-"10"} + hord_xx=${hord_xx_hydro_nonmono:-"10"} + fi + +fi + +if [ $(echo $MONO | cut -c-4) != "mono" -a $TYPE = "nh" ]; then + vtdm4=${vtdm4_nh_nonmono:-"0.06"} +else + vtdm4=${vtdm4:-"0.05"} +fi + +if [ $warm_start = ".true." ]; then # warm start from restart file + + nggps_ic=".false." + ncep_ic=".false." + external_ic=".false." + mountain=".true." + if [ $read_increment = ".true." ]; then # add increment on the fly to the restarts + res_latlon_dynamics="fv_increment.nc" + else + res_latlon_dynamics='""' + fi + +else # CHGRES'd GFS analyses + + nggps_ic=${nggps_ic:-".true."} + ncep_ic=${ncep_ic:-".false."} + external_ic=".true." + mountain=".false." + read_increment=".false." + res_latlon_dynamics='""' + +fi + +# Stochastic Physics Options +if [ ${SET_STP_SEED:-"YES"} = "YES" ]; then + ISEED_SKEB=$((CDATE*1000 + MEMBER*10 + 1)) + ISEED_SHUM=$((CDATE*1000 + MEMBER*10 + 2)) + ISEED_SPPT=$((CDATE*1000 + MEMBER*10 + 3)) +else + ISEED=${ISEED:-0} +fi +DO_SKEB=${DO_SKEB:-"NO"} +DO_SPPT=${DO_SPPT:-"NO"} +DO_SHUM=${DO_SHUM:-"NO"} + +if [ $DO_SKEB = "YES" ]; then + do_skeb=".true." +fi +if [ $DO_SHUM = "YES" ]; then + do_shum=".true." +fi +if [ $DO_SPPT = "YES" ]; then + do_sppt=".true." +fi + +# copy over the tables +DIAG_TABLE=${DIAG_TABLE:-$PARM_FV3DIAG/diag_table} +DATA_TABLE=${DATA_TABLE:-$PARM_FV3DIAG/data_table} +FIELD_TABLE=${FIELD_TABLE:-$PARM_FV3DIAG/field_table} + +# build the diag_table with the experiment name and date stamp +if [ $DOIAU = "YES" ]; then +cat > diag_table << EOF +FV3 Forecast +${gPDY:0:4} ${gPDY:4:2} ${gPDY:6:2} ${gcyc} 0 0 +EOF +cat $DIAG_TABLE >> diag_table +else +cat > diag_table << EOF +FV3 Forecast +${sPDY:0:4} ${sPDY:4:2} ${sPDY:6:2} ${scyc} 0 0 +EOF +cat $DIAG_TABLE >> diag_table +fi + +$NCP $DATA_TABLE data_table +$NCP $FIELD_TABLE field_table + +#------------------------------------------------------------------ +rm -f nems.configure + +if [ $cplwav = ".true." ]; then +#### ww3 version of nems.configure + +# Switch on cpl flag + cpl=.true. + +NTASKS_FV3m1=$((NTASKS_FV3-1)) +atm_petlist_bounds=" 0 $((NTASKS_FV3-1))" +wav_petlist_bounds=" $((NTASKS_FV3)) $((NTASKS_FV3m1+npe_wav))" +### atm_petlist_bounds=" 0 1511" +### atm_petlist_bounds=$atm_petlist_bounds +### wav_petlist_bounds="1512 1691" +### wav_petlist_bounds=$wav_petlist_bounds + coupling_interval_sec=${coupling_interval_sec:-1800} + rm -f nems.configure +cat > nems.configure < WAV :SrcTermProcessing=0:TermOrder=SrcSeq + WAV + @ +:: +EOF +else +#### fv3 standalone version of nems.configure +cat > nems.configure < model_configure < input.nml <> input.nml << EOF + iaufhrs = ${IAUFHRS} + iau_delthrs = ${IAU_DELTHRS} + iau_inc_files= ${IAU_INC_FILES} + iau_drymassfixer = .false. +EOF +fi + +cat >> input.nml <> input.nml + +cat >> input.nml <> input.nml +if [ $MEMBER -gt 0 ]; then + + cat >> input.nml << EOF +&nam_stochy +EOF + + if [ $DO_SKEB = "YES" ]; then + cat >> input.nml << EOF + skeb = $SKEB + iseed_skeb = ${ISEED_SKEB:-$ISEED} + skeb_tau = ${SKEB_TAU:-"-999."} + skeb_lscale = ${SKEB_LSCALE:-"-999."} + skebnorm = ${SKEBNORM:-"1"} + skeb_npass = ${SKEB_nPASS:-"30"} + skeb_vdof = ${SKEB_VDOF:-"5"} +EOF + fi + + if [ $DO_SHUM = "YES" ]; then + cat >> input.nml << EOF + shum = $SHUM + iseed_shum = ${ISEED_SHUM:-$ISEED} + shum_tau = ${SHUM_TAU:-"-999."} + shum_lscale = ${SHUM_LSCALE:-"-999."} +EOF + fi + + if [ $DO_SPPT = "YES" ]; then + cat >> input.nml << EOF + sppt = $SPPT + iseed_sppt = ${ISEED_SPPT:-$ISEED} + sppt_tau = ${SPPT_TAU:-"-999."} + sppt_lscale = ${SPPT_LSCALE:-"-999."} + sppt_logit = ${SPPT_LOGIT:-".true."} + sppt_sfclimit = ${SPPT_SFCLIMIT:-".true."} + use_zmtnblck = ${use_zmtnblck:-".true."} +EOF + fi + + cat >> input.nml << EOF + $nam_stochy_nml +/ +EOF + + + cat >> input.nml << EOF +&nam_sfcperts + $nam_sfcperts_nml +/ +EOF + +else + + cat >> input.nml << EOF +&nam_stochy +/ +&nam_sfcperts +/ +EOF + +fi + + +#------------------------------------------------------------------ +# make symbolic links to write forecast files directly in memdir +cd $DATA +if [ $QUILTING = ".true." -a $OUTPUT_GRID = "gaussian_grid" ]; then + fhr=$FHMIN + while [ $fhr -le $FHMAX ]; do + FH3=$(printf %03i $fhr) + FH2=$(printf %02i $fhr) + atmi=atmf${FH3}.$affix + sfci=sfcf${FH3}.$affix + logi=logf${FH3} + pgbi=GFSPRS.GrbF${FH2} + flxi=GFSFLX.GrbF${FH2} + atmo=$memdir/${CDUMP}.t${cyc}z.atmf${FH3}.$affix + sfco=$memdir/${CDUMP}.t${cyc}z.sfcf${FH3}.$affix + logo=$memdir/${CDUMP}.t${cyc}z.logf${FH3}.txt + pgbo=$memdir/${CDUMP}.t${cyc}z.master.grb2f${FH3} + flxo=$memdir/${CDUMP}.t${cyc}z.sfluxgrbf${FH3}.grib2 + eval $NLN $atmo $atmi + eval $NLN $sfco $sfci + eval $NLN $logo $logi + if [ $WRITE_DOPOST = ".true." ]; then + eval $NLN $pgbo $pgbi + eval $NLN $flxo $flxi + fi + FHINC=$FHOUT + if [ $FHMAX_HF -gt 0 -a $FHOUT_HF -gt 0 -a $fhr -lt $FHMAX_HF ]; then + FHINC=$FHOUT_HF + fi + fhr=$((fhr+FHINC)) + done +else + for n in $(seq 1 $ntiles); do + eval $NLN nggps2d.tile${n}.nc $memdir/nggps2d.tile${n}.nc + eval $NLN nggps3d.tile${n}.nc $memdir/nggps3d.tile${n}.nc + eval $NLN grid_spec.tile${n}.nc $memdir/grid_spec.tile${n}.nc + eval $NLN atmos_static.tile${n}.nc $memdir/atmos_static.tile${n}.nc + eval $NLN atmos_4xdaily.tile${n}.nc $memdir/atmos_4xdaily.tile${n}.nc + done +fi + +#------------------------------------------------------------------ +# run the executable + +$NCP $FCSTEXECDIR/$FCSTEXEC $DATA/. +export OMP_NUM_THREADS=$NTHREADS_FV3 +$APRUN_FV3 $DATA/$FCSTEXEC 1>&1 2>&2 +export ERR=$? +export err=$ERR +$ERRSCRIPT || exit $err + +#------------------------------------------------------------------ +if [ $SEND = "YES" ]; then + + # Copy gdas and enkf member restart files + if [ $CDUMP = "gdas" -a $rst_invt1 -gt 0 ]; then + cd $DATA/RESTART + mkdir -p $memdir/RESTART + for rst_int in $restart_interval ; do + if [ $rst_int -ge 0 ]; then + RDATE=$($NDATE +$rst_int $CDATE) + rPDY=$(echo $RDATE | cut -c1-8) + rcyc=$(echo $RDATE | cut -c9-10) + for file in $(ls ${rPDY}.${rcyc}0000.*) ; do + $NCP $file $memdir/RESTART/$file + done + fi + done + if [ $DOIAU = "YES" ] || [ $DOIAU_coldstart = "YES" ]; then + # if IAU is on, save restart at start of IAU window + rst_iau=$(( ${IAU_OFFSET} - (${IAU_DELTHRS}/2) )) + if [ $rst_iau -lt 0 ];then + rst_iau=$(( (${IAU_DELTHRS}) - ${IAU_OFFSET} )) + fi + RDATE=$($NDATE +$rst_iau $CDATE) + rPDY=$(echo $RDATE | cut -c1-8) + rcyc=$(echo $RDATE | cut -c9-10) + for file in $(ls ${rPDY}.${rcyc}0000.*) ; do + $NCP $file $memdir/RESTART/$file + done + fi + fi +fi + +#------------------------------------------------------------------ +# Clean up before leaving +if [ $mkdata = "YES" ]; then rm -rf $DATA; fi + +#------------------------------------------------------------------ +set +x +if [ $VERBOSE = "YES" ] ; then + echo $(date) EXITING $0 with return code $err >&2 +fi +exit 0 diff --git a/scripts/exglobal_grib2_special_npoess.sh.ecf b/scripts/exglobal_grib2_special_npoess.sh.ecf deleted file mode 100755 index 34327faa29..0000000000 --- a/scripts/exglobal_grib2_special_npoess.sh.ecf +++ /dev/null @@ -1,239 +0,0 @@ -#!/bin/ksh -##################################################################### -echo "-----------------------------------------------------" -echo " exglobal_grib2_special_npoess.sh.ecf" -echo " Jan 2008 - Chuang - Produces 1x1 degree special Grib from master." -echo "-----------------------------------------------------" -##################################################################### - -set -x - -cd $DATA - -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" - -############################################################ -# Define Variables: -# ----------------- -# SHOUR is the starting forecast hour. normally 0 except for restarts. -# FHOUR is the ending forecast hour. -# FHINC is the increment hour for each forecast steps. -# FH is the current forecast hour. -# SLEEP_TIME is the number of seconds to sleep before exiting with error. -# SLEEP_INT is the number of seconds to sleep between restrt file checks. -# restart_file is the name of the file to key off of to kick off pgrb -# generation. -############################################################ - -############################################################ -# NO processing Analysis special Files -############################################################ - -# Set type of Interpolation for WGRIB2 -export opt1=' -set_grib_type same -new_grid_winds earth ' -export opt1uv=' -set_grib_type same -new_grid_winds grid ' -export opt21=' -new_grid_interpolation bilinear -if ' -export opt22=":(LAND|CSNOW|CRAIN|CFRZR|CICEP|ICSEV):" -export opt23=' -new_grid_interpolation neighbor -fi ' -export opt24=' -set_bitmap 1 -set_grib_max_bits 16 -if ' -export opt25=":(APCP|ACPCP|PRATE|CPRAT):" -export opt26=' -set_grib_max_bits 25 -fi -if ' -export opt27=":(APCP|ACPCP|PRATE|CPRAT|DZDT):" -export opt28=' -new_grid_interpolation budget -fi ' - -SLEEP_LOOP_MAX=`expr $SLEEP_TIME / $SLEEP_INT` - -############################################################################## -# Specify Forecast Hour Range F000 - F024 for GFS_NPOESS_PGRB2_0P5DEG -############################################################################## -export SHOUR=000 -export FHOUR=024 -export fhr=$SHOUR -typeset -Z3 fhr -############################################################ -# Loop Through the Post Forecast Files -############################################################ -while test $fhr -le $FHOUR -do - - ############################### - # Start Looping for the - # existence of the restart files - ############################### - export pgm="postcheck" - ic=1 - while [ $ic -le $SLEEP_LOOP_MAX ] - do - if test -f $COMIN/gfs.t${cyc}z.pgrb2b.0p50.f${fhr}.idx - then - break - else - ic=`expr $ic + 1` - sleep $SLEEP_INT - fi - ############################### - # If we reach this point assume - # fcst job never reached restart - # period and error exit - ############################### - if [ $ic -eq $SLEEP_LOOP_MAX ] - then - export err=9 - err_chk - fi - done - -###################################################################### -# Process Global NPOESS 0.50 GFS GRID PRODUCTS IN GRIB2 F000 - F024 # -###################################################################### - set -x - msg="Starting half degree grib generation for fhr=$fhr" - postmsg "$jlogfile" "$msg" - - paramlist=${PARMproduct}/global_npoess_paramlist_g2 - cp $COMIN/gfs.t${cyc}z.pgrb2.0p50.f${fhr} tmpfile2 - cp $COMIN/gfs.t${cyc}z.pgrb2b.0p50.f${fhr} tmpfile2b - cat tmpfile2 tmpfile2b > tmpfile - $WGRIB2 tmpfile | grep -F -f $paramlist | $WGRIB2 -i -grib pgb2file tmpfile - export err=$?; err_chk - - if test $SENDCOM = "YES" - then - cp pgb2file $COMOUT/${RUN}.${cycle}.pgrb2f${fhr}.npoess - - if test $SENDDBN = "YES" - then - $DBNROOT/bin/dbn_alert MODEL GFS_PGBNPOESS $job $COMOUT/${RUN}.${cycle}.pgrb2f${fhr}.npoess - else - msg="File ${RUN}.${cycle}.pgrb2f${fhr}.npoess not posted to db_net." - postmsg "$msg" - fi - echo "$PDY$cyc$fhr" > $COMOUT/${RUN}.t${cyc}z.control.halfdeg.npoess - fi - rm tmpfile pgb2file - export fhr=`expr $fhr + $FHINC` - typeset -Z3 fhr - -done - -################################################################ -# Specify Forecast Hour Range F000 - F180 for GOESSIMPGRB files -################################################################ -export SHOUR=000 -export FHOUR=180 -export fhr=$SHOUR -typeset -Z3 fhr - -################################# -# Process GFS PGRB2_SPECIAL_POST -################################# - -while test $fhr -le $FHOUR -do - ############################### - # Start Looping for the - # existence of the restart files - ############################### - set +x - export pgm="postcheck" - ic=1 - while [ $ic -le $SLEEP_LOOP_MAX ] - do - if test -f $restart_file$fhr - then - break - else - ic=`expr $ic + 1` - sleep $SLEEP_INT - fi - ############################### - # If we reach this point assume - # fcst job never reached restart - # period and error exit - ############################### - if [ $ic -eq $SLEEP_LOOP_MAX ] - then - export err=9 - err_chk - fi - done - set -x - - msg="Starting special grib file generation for fhr=$fhr" - postmsg "$jlogfile" "$msg" - - ############################### - # Put restart files into /nwges - # for backup to start Model Fcst - ############################### - - cp $COMIN/${RUN}.t${cyc}z.special.grb2f$fhr masterfile - -# $COPYGB2 -g "0 6 0 0 0 0 0 0 360 181 0 0 90000000 0 48 -90000000 359000000 1000000 1000000 0" -i1,1 -x masterfile pgb2file - - export grid1p0="latlon 0:360:1.0 90:181:-1.0" - $WGRIB2 masterfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $grid1p0 pgb2file - -# creating higher resolution goes files for US centers -# $COPYGB2 -g "30 6 0 0 0 0 0 0 349 277 1000000 214500000 8 50000000 253000000 32463000 32463000 0 64 50000000 50000000 0 0" -i1,1 -x masterfile pgb2file2 - - export gridconus="lambert:253.0:50.0:50.0 214.5:349:32463.0 1.0:277:32463.0" - $WGRIB2 masterfile $opt1uv $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 -new_grid $gridconus pgb2file2 - - $WGRIB2 pgb2file -s > pgb2ifile - -# DO NOT GENERATE GRIB1 -# $CNVGRIB -g21 pgb2file pgbfile -# $GRBINDEX pgbfile pgifile -# $CNVGRIB -g21 pgb2file2 pgbfile2 -# $GRBINDEX pgbfile2 pgifile2 - - if test $SENDCOM = "YES" - then - -# DO NOT GENERATE GRIB1 -# cp pgbfile $COMOUT/${RUN}.${cycle}.goessimpgrbf${fhr} -# cp pgifile $COMOUT/${RUN}.${cycle}.goessimpgrbif${fhr} - - cp pgb2file $COMOUT/${RUN}.${cycle}.goessimpgrb2.1p00.f${fhr} - cp pgb2ifile $COMOUT/${RUN}.${cycle}.goessimpgrb2.1p00.f${fhr}.idx - -# cp pgbfile2 $COMOUT/${RUN}.${cycle}.goessimpgrb221f${fhr} -# cp pgifile2 $COMOUT/${RUN}.${cycle}.goessimpgrb221if${fhr} - - cp pgb2file2 $COMOUT/${RUN}.${cycle}.goessimpgrb2f${fhr}.grd221 - - if test $SENDDBN = "YES" - then - $DBNROOT/bin/dbn_alert MODEL GFS_GOESSIMPGB2_1P0 $job $COMOUT/${RUN}.${cycle}.goessimpgrb2.1p00.f${fhr} - $DBNROOT/bin/dbn_alert MODEL GFS_GOESSIMPGB2_1P0_WIDX $job $COMOUT/${RUN}.${cycle}.goessimpgrb2.1p00.f${fhr}.idx - $DBNROOT/bin/dbn_alert MODEL GFS_GOESSIMGRD221_PGB2 $job $COMOUT/${RUN}.${cycle}.goessimpgrb2f${fhr}.grd221 - -# DO NOT GENERATE GRIB1 -# $DBNROOT/bin/dbn_alert MODEL GFS_GOESSIMPGB $job $COMOUT/${RUN}.${cycle}.goessimpgrbf$fhr -# $DBNROOT/bin/dbn_alert MODEL GFS_GOESSIMPGBI $job $COMOUT/${RUN}.${cycle}.goessimpgrbif$fhr -# $DBNROOT/bin/dbn_alert MODEL GFS_GOESSIM221_PGB2 $job $COMOUT/${RUN}.${cycle}.goessimpgrb221f$fhr -# $DBNROOT/bin/dbn_alert MODEL GFS_GOESSIM221I_PGB2 $job $COMOUT/${RUN}.${cycle}.goessimpgrb221if$fhr - - fi - - echo "$PDY$cyc$fhr" > $COMOUT/${RUN}.t${cyc}z.control.goessimpgrb - fi - rm pgb2file2 pgb2ifile - - if test "$SENDECF" = 'YES' - then - export fhour=`expr ${fhr} % 6 ` - fi - - export fhr=`expr $fhr + $FHINC` - typeset -Z3 fhr -done - -######################################################## - -msg='ENDED NORMALLY.' -postmsg "$jlogfile" "$msg" - -################## END OF SCRIPT ####################### diff --git a/scripts/exgoes_nawips.sh.ecf b/scripts/exgoes_nawips.sh.ecf deleted file mode 100755 index 22f658b149..0000000000 --- a/scripts/exgoes_nawips.sh.ecf +++ /dev/null @@ -1,149 +0,0 @@ -#!/bin/ksh -################################################################### -echo "----------------------------------------------------" -echo "exnawips - convert NCEP GRIB files into GEMPAK Grids" -echo "----------------------------------------------------" -echo "History: Mar 2000 - First implementation of this new script." -echo "S Lilly: May 2008 - add logic to make sure that all of the " -echo " data produced from the restricted ECMWF" -echo " data on the CCS is properly protected." -echo "C. Magee: 10/2013 - swap X and Y for rtgssthr Atl and Pac." -##################################################################### - -set -xa - -cd $DATA - -cp $FIXgempak/g2varswmo2.tbl g2varswmo2.tbl -cp $FIXgempak/g2vcrdwmo2.tbl g2vcrdwmo2.tbl -cp $FIXgempak/g2varsncep1.tbl g2varsncep1.tbl -cp $FIXgempak/g2vcrdncep1.tbl g2vcrdncep1.tbl - -msg="Begin job for $job" -postmsg "$jlogfile" "$msg" - -# -NAGRIB_TABLE=${NAGRIB_TABLE:-${FIXgempak}/nagrib.tbl} -NAGRIB=$GEMEXE/nagrib2 -# - -entry=`grep "^$RUN " $NAGRIB_TABLE | awk 'index($1,"#") != 1 {print $0}'` - -if [ "$entry" != "" ] ; then - cpyfil=`echo $entry | awk 'BEGIN {FS="|"} {print $2}'` - garea=`echo $entry | awk 'BEGIN {FS="|"} {print $3}'` - gbtbls=`echo $entry | awk 'BEGIN {FS="|"} {print $4}'` - maxgrd=`echo $entry | awk 'BEGIN {FS="|"} {print $5}'` - kxky=`echo $entry | awk 'BEGIN {FS="|"} {print $6}'` - grdarea=`echo $entry | awk 'BEGIN {FS="|"} {print $7}'` - proj=`echo $entry | awk 'BEGIN {FS="|"} {print $8}'` - output=`echo $entry | awk 'BEGIN {FS="|"} {print $9}'` -else - cpyfil=gds - garea=dset - gbtbls= - maxgrd=4999 - kxky= - grdarea= - proj= - output=T -fi -pdsext=no - -maxtries=180 -fhcnt=$fstart -while [ $fhcnt -le $fend ] ; do -# if [ $fhcnt -ge 100 ] ; then - typeset -Z3 fhr -# else -# typeset -Z2 fhr -# fi - fhr=$fhcnt - fhcnt3=`expr $fhr % 3` - - fhr3=$fhcnt - typeset -Z3 fhr3 - GRIBIN=$COMIN/${model}.${cycle}.${GRIB}${fhr}${EXT} - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - -# case $RUN in -# gfs_goessim) GRIBIN=$COMIN/${model}.${cycle}.${GRIB}${fhr}${EXT} -# GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} ;; -# gfs_goessim221) GRIBIN=$COMIN/${model}.${cycle}.${GRIB}${fhr}${EXT} -# GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} ;; -# esac - - GRIBIN_chk=$GRIBIN - - icnt=1 - while [ $icnt -lt 1000 ] - do - if [ -r $GRIBIN_chk ] ; then - break - else - sleep 20 - let "icnt=icnt+1" - fi - if [ $icnt -ge $maxtries ] - then - msg="ABORTING after 1 hour of waiting for F$fhr to end." - postmsg "${jlogfile}" "$msg" - export err=7 ; err_chk - exit $err - fi - done - - cp $GRIBIN grib$fhr - - export pgm="nagrib_nc F$fhr" - startmsg - - $NAGRIB << EOF - GBFILE = grib$fhr - INDXFL = - GDOUTF = $GEMGRD - PROJ = $proj - GRDAREA = $grdarea - KXKY = $kxky - MAXGRD = $maxgrd - CPYFIL = $cpyfil - GAREA = $garea - OUTPUT = $output - GBTBLS = $gbtbls - GBDIAG = - PDSEXT = $pdsext - l - r -EOF - export err=$?;err_chk - - $GEMEXE/gpend - - if [ $SENDCOM = "YES" ] ; then - cp $GEMGRD $COMOUT/.$GEMGRD - mv $COMOUT/.$GEMGRD $COMOUT/$GEMGRD - if [ $SENDDBN = "YES" ] ; then - $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \ - $COMOUT/$GEMGRD - else - echo "##### DBN_ALERT_TYPE is: ${DBN_ALERT_TYPE} #####" - fi - fi - - let fhcnt=fhcnt+finc -done - -##################################################################### -# GOOD RUN -set +x -echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" -echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" -echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" -set -x -##################################################################### - -msg='Job completed normally.' -echo $msg -postmsg "$jlogfile" "$msg" - -############################### END OF SCRIPT ####################### diff --git a/scripts/exnawips.sh.ecf b/scripts/exnawips.sh.ecf deleted file mode 100755 index 667f9a52ab..0000000000 --- a/scripts/exnawips.sh.ecf +++ /dev/null @@ -1,664 +0,0 @@ -#!/bin/ksh -################################################################### -echo "----------------------------------------------------" -echo "exnawips - convert NCEP GRIB files into GEMPAK Grids" -echo "----------------------------------------------------" -echo "History: Mar 2000 - First implementation of this new script." -echo "S Lilly: May 2008 - add logic to make sure that all of the " -echo " data produced from the restricted ECMWF" -echo " data on the CCS is properly protected." -echo "C. Magee: 10/2013 - swap X and Y for rtgssthr Atl and Pac." -##################################################################### - -set -xa - -if [ $NET = wave ] -then - if [ $job = "wave_enp_gempak_"$cyc -o $job = "wave_wna_gempak_"$cyc -o $job = "wave_alaska_gempak_"$cyc -o $job = "wave_multi_2_gempak_"$cyc ] - then - export RUN=$1 - export model=$2 - export DATA=$3 - fi - RUN3=`echo $RUN | cut -c1-3` - RUN4=`echo $RUN | cut -c1-4` -fi - -cd $DATA - -msg="Begin job for $job" -postmsg "$jlogfile" "$msg" - -# -NAGRIB_TABLE=${FIXgempak}/nagrib.tbl -utilfix_nam=$FIXshared -NAGRIB=$GEMEXE/nagrib_nc -# - -entry=`grep "^$RUN " $NAGRIB_TABLE | awk 'index($1,"#") != 1 {print $0}'` - -if [ "$entry" != "" ] ; then - cpyfil=`echo $entry | awk 'BEGIN {FS="|"} {print $2}'` - garea=`echo $entry | awk 'BEGIN {FS="|"} {print $3}'` - gbtbls=`echo $entry | awk 'BEGIN {FS="|"} {print $4}'` - maxgrd=`echo $entry | awk 'BEGIN {FS="|"} {print $5}'` - kxky=`echo $entry | awk 'BEGIN {FS="|"} {print $6}'` - grdarea=`echo $entry | awk 'BEGIN {FS="|"} {print $7}'` - proj=`echo $entry | awk 'BEGIN {FS="|"} {print $8}'` - output=`echo $entry | awk 'BEGIN {FS="|"} {print $9}'` -else - cpyfil=gds - garea=dset - gbtbls= - maxgrd=4999 - kxky= - grdarea= - proj= - output=T -fi -pdsext=no - -# -# Alert stats.short file if this is the GFDL -# -if [ $RUN = "ghm" -a "$GRIB" = "grib.f" -a $SENDDBN = "YES" ] ; then - $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE_2} $job \ - $COMIN/${model}.${PDY}${cyc}.stats.short -fi - -# for gefs -COMOUT_hold=$COMOUT - -maxtries=180 -fhcnt=$fstart -while [ $fhcnt -le $fend ] ; do - if [ $fhcnt -ge 100 ] ; then - typeset -Z3 fhr - else - typeset -Z2 fhr - fi - fhr=$fhcnt - fhcnt3=`expr $fhr % 3` - - fhr3=$fhcnt - typeset -Z3 fhr3 - GRIBIN=$COMIN/${model}.${cycle}.${GRIB}${fhr}${EXT} - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - - case $RUN in - gfs_goessim) GRIBIN=$COMIN/${model}.${cycle}.${GRIB}${fhr}${EXT} - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} ;; - gfs_goessim221) GRIBIN=$COMIN/${model}.${cycle}.${GRIB}${fhr}${EXT} - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} ;; - threats) GEMGRD=${model}_${PDY}${cyc}f${fhr3} ;; - nam12) GRIBIN1=$COMIN/${model}.${cycle}.${GRIB1}${fhr}${EXT} ;; - nam12carib) GRIBIN1=$COMIN/${model}.${cycle}.${GRIB1}${fhr}${EXT} ;; - rucs) GRIBIN=$COMIN/${model}.${cycle}.pgrbanl - GEMGRD=${RUN}_${PDY}${cyc} - maxtries=30;; - ruc2) - if [ $fhcnt -eq 00 ] ; then - GRIBIN=$COMIN/${model}.${cycle}.pgrbanl - fi ;; - ruc20) - if [ $fhcnt -eq 00 ] ; then - GRIBIN=$COMIN/${model}.${cycle}.pgrb20anl - fi ;; - ruc13) - if [ $fhcnt -eq 00 ] ; then - GRIBIN=$COMIN/${model}.${cycle}.pgrb13anl.grib2 - fi - NAGRIB=nagrib2 ;; - nww3 | akw | wna | nah | enp | nph) GRIBIN=$COMIN/${model}.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} ;; - mww3) GRIBIN=$COMIN/multi_1.glo_30m.${cycle}.f${fhr3}.grib2 - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - NAGRIB=nagrib2 ;; - mww3ak10m) GRIBIN=$COMIN/multi_1.ak_10m.${cycle}.f${fhr3}.grib2 - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - NAGRIB=nagrib2 ;; - mww3ak4m) GRIBIN=$COMIN/multi_1.ak_4m.${cycle}.f${fhr3}.grib2 - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - NAGRIB=nagrib2 ;; - mww3wna10m) GRIBIN=$COMIN/multi_1.at_10m.${cycle}.f${fhr3}.grib2 - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - NAGRIB=nagrib2 ;; - mww3wna4m) GRIBIN=$COMIN/multi_1.at_4m.${cycle}.f${fhr3}.grib2 - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - NAGRIB=nagrib2 ;; - mww3wc10m) GRIBIN=$COMIN/multi_1.wc_10m.${cycle}.f${fhr3}.grib2 - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - NAGRIB=nagrib2 ;; - mww3wc4m) GRIBIN=$COMIN/multi_1.wc_4m.${cycle}.f${fhr3}.grib2 - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - NAGRIB=nagrib2 ;; - mww3enp10m) GRIBIN=$COMIN/multi_1.ep_10m.${cycle}.f${fhr3}.grib2 - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - NAGRIB=nagrib2 ;; - mwh) GRIBIN=$COMIN/multi_2.glo_30m.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - mwhak10m) GRIBIN=$COMIN/multi_2.ak_10m.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - mwhak4m) GRIBIN=$COMIN/multi_2.ak_4m.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - mwhat10m) GRIBIN=$COMIN/multi_2.at_10m.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - mwhat15m) GRIBIN=$COMIN/multi_2.at_15m.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - mwhat4m) GRIBIN=$COMIN/multi_2.at_4m.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - mwhpa15m) GRIBIN=$COMIN/multi_2.pa_15m.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - mwhep10m) GRIBIN=$COMIN/multi_2.ep_10m.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - mwhwc10m) GRIBIN=$COMIN/multi_2.wc_10m.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - mwhwc4m) GRIBIN=$COMIN/multi_2.wc_4m.${cycle}.${GRIB} - GEMGRD=${RUN}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - wave_ens) GRIBIN=$COMIN/${model}.glo_60m.${cycle}.grib2 - GEMGRD=${model}_${PDY}${cyc} - NAGRIB=nagrib2 ;; - - ofs) if [ $fhr3 = "000" ] - then - fhr3_ofs="n000" - else - fhr3_ofs="f$fhr3" - fi - GRIBIN=$COMIN/${RUN}_atl.${cycle}.${fhr3_ofs}.${model}.${GRIB} - if [ $model = "atl" ] - then - GEMGRD=watl_${PDY}${cyc}f${fhr3} - elif [ $model = "gm" ] - then - GEMGRD=gmex_${PDY}${cyc}f${fhr3} - elif [ $model = "gs" ] - then - GEMGRD=gstr_${PDY}${cyc}f${fhr3} - else - GEMGRD=${model}_${PDY}${cyc}f${fhr3} - fi - ;; - ice) GRIBIN=$COMIN/${model}${RUN}.${cycle}.grb - GEMGRD=${RUN}_${PDY}${cyc} ;; - rtma) GRIBIN=$COMIN/${model}.${cycle}.2dvaranl_ndfd.grb1 - GEMGRD=${RUN}_${PDY}${cyc}f000 ;; - vaftad | hysplit) GRIBIN=$COMOUT/${VNAME}.e${EPDY}${ECYC}.r${PDY}${cyc}.grib - vname=`echo $VNAME | tr [A-Z] [a-z]` - meteo=`echo $meteo | tr [A-Z] [a-z]` - # JY COMOUT=/com/nawips/${envir}/${NET}.${PDY} - COMOUT=${COMROOT}/nawips/${envir}/${NET}.${PDY} - typeset -Z2 NEWECYC - let NEWECYC=\($ECYC+1\)/3*3 - if test $NEWECYC -eq 24 - then - NEWECYC="00" - NEWEPDY=`/nwprod/util/ush/finddate.sh $EPDY d+1` - else - NEWEPDY=$EPDY - fi - GEMGRD=hy_${meteo}_${EPDY}${ECYC}_${vname} - echo $COMOUT/$GEMGRD > $DATA/gempak_file.vaftad - mkdir -p -m 775 $COMOUT ;; - ghm) GRIBIN=$COMIN/${model}.${PDY}${cyc}.${GRIB}${fhr} - if [ $GRIB = "grib.f" ] ; then - GEMGRD=${RUN}g_${PDY}${cyc}f${fhr3}_${model} - elif [ $GRIB = "gribn3.f" ] ; then - GEMGRD=${RUN}n_${PDY}${cyc}f${fhr3}_${model} - else - GEMGRD=${RUN}6th_${PDY}${cyc}f${fhr3}_${model} - fi ;; - ghmc) GRIBIN=$COMIN/${model}.${PDY}${cyc}.${GRIB}${fhr} - if [ $GRIB = "gfdc.grib.f" ] ; then - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3}_${model}g - else - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3}_${model}n - fi ;; - hwrf) GRIBIN=$COMIN/${model}.${PDY}${cyc}.${GRIB}${fhr} - if [ $GRIB = "hwrfprs_n.grbf" ] ; then - GEMGRD=${RUN}n_${PDY}${cyc}f${fhr3}_${model} - elif [ $GRIB = "hwrfprs_p.grbf" ] ; then - GEMGRD=${RUN}p_${PDY}${cyc}f${fhr3}_${model} - else - GEMGRD=${RUN}c_${PDY}${cyc}f${fhr3}_${model} - fi ;; - ecmwf_glob | ecmwf_trop) GRIBIN=$COMIN/${model}.${cycle} - GEMGRD=${RUN}_${PDY}${cyc} ;; - ecmwf_hr) - GRIBIN=$DATA/${RUN}.t${cyc}z.pgrb${fhr} - ;; - ecmwf_wave) - GRIBIN=$DATA/${RUN}.t${cyc}z.pgrb${fhr} - ;; - ukmet) GRIBIN=$COMIN/${RUN}.${cycle}.${GRIB}${fhr}${EXT} - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} ;; - ukmet2) $WGRIB ukmet2.grib | grep "${fhr}hr" | $WGRIB \ - -i -grib -o ukmet2.${fhr} ukmet2.grib - GRIBIN=ukmet2.${fhr} - GEMGRD=ukmet_${PDY}${cyc}f${fhr3} ;; - ens*) GRIBIN=$COMIN/${model}.${member}.${PDY}.${cyc} - GEMGRD=${RUN}_${PDY}${cyc} ;; - ge*) if test "$model" = "bc" -o "$model" = "an" -o "$model" = "wt" -o "$model" = "me" -o "$model" = "anv" - then - GRIBIN=$COMIN/${RUN}.${cycle}.pgrba_${model}f${fhr} - GEMGRD=${RUN}${model}_${PDY}${cyc}f${fhr3} - - # create subdirectory for the bc and an gefs files, -- 05/16/2013 - # so that the mag system can only take the expected gefs files - # COMOUT_hold=$COMOUT - if test "$model" = "bc" -o "$model" = "an" - then - COMOUT=${COMOUT_hold}/${model} - mkdir -p -m 775 $COMOUT - fi - elif test "$model" = "glbanl" - then - GRIBIN=$COMIN/${model}.${cycle}.pgrba_mdf${fhr} - GEMGRD=${model}_${PDYm2}${cyc}f${fhr3} - elif test "$model" = "ndgd" - then - GRIBIN=$COMIN/${RUN}.${cycle}.${model}_conusf${fhr} - GEMGRD=${RUN}${model}_${PDY}${cyc}f${fhr3} - elif test "$model" = "ndgd_alaska" - then - GRIBIN=$COMIN/${RUN}.${cycle}.${model}f${fhr} - GEMGRD=${RUN}${model}_${PDY}${cyc}f${fhr3} - else - GRIBIN=$COMIN/${RUN}.${cycle}.pgrbaf${fhr} - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - fi;; - naefs) if test "$model" = "geavganv" - then - GRIBIN=$COMIN/${RUN}_geavg.${cycle}.pgrba_anvf${fhr} - GEMGRD=${model}_${PDY}${cyc}f${fhr3} - elif test "$model" = "ndgd" - then - GRIBIN=$COMIN/${RUN}_${member}.${cycle}.${model}_conusf${fhr} - GEMGRD=${model}${member}_${PDY}${cyc}f${fhr3} - elif test "$model" = "ndgd_alaska" - then - GRIBIN=$COMIN/${RUN}_${member}.${cycle}.${model}f${fhr} - GEMGRD=${model}${member}_${PDY}${cyc}f${fhr3} - elif test "$model" = "dvrtma" - then - if test "$region" = "alaska" - then - GRIBIN=$COMIN/${model}.${cycle}.ndgd_alaska - GEMGRD=${model}_${region}_${PDY}${cyc} - else - GRIBIN=$COMIN/${model}.${cycle}.ndgd_conus - GEMGRD=${model}_${PDY}${cyc} - fi - else - GRIBIN=$COMIN/${RUN}_${model}.${cycle}.pgrba_bcf${fhr} - GEMGRD=${model}_${PDY}${cyc}f${fhr3} - fi;; - cmc_ge*)GRIBIN=$COMIN/${RUN}.${cycle}.pgrbaf${fhr} - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} ;; - fnmoc_ge*) if test "$model" = "bc" -o "$model" = "an" -o "$model" = "wt" - then - GRIBIN=$COMIN/${RUN}.${cycle}.pgrba_${model}f${fhr} - GEMGRD=${RUN}${model}_${PDY}${cyc}f${fhr3} - else - GRIBIN=$COMIN/${RUN}.${cycle}.pgrbaf${fhr} - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - fi ;; - sref) if test "$model" = "eta" -o "$model" = "rsm" -o "$model" = "em" -o "$model" = "nmm" - then - GRIBIN=$COMIN/${RUN}_${model}.${cycle}.pgrb212.${member} - GEMGRD=${RUN}_${PDY}${cyc}_${model}_${member} - else - GRIBIN=$COMIN/${RUN}.${cycle}.pgrb212.${member} - GEMGRD=${RUN}_${PDY}${cyc}_${member} - pdsext=YES - fi;; - mdlngm) GRIBIN=$COMIN/ngmmosgrib.${cycle} - GEMGRD=${model}_${PDY}${cyc} ;; - mdlngmsvr) GRIBIN=$COMIN/ngmmoscatstmgrb.${cycle} - GEMGRD=${model}_${PDY}${cyc} ;; - mdlmrf) GRIBIN=$COMIN/mrfmosgrib.${cycle} - GEMGRD=${model}_${PDY}${cyc} ;; - mdlgfs) GRIBIN=$COMIN/gfsmosgrib.${cycle} - GEMGRD=${model}_${PDY}${cyc} ;; - mdlgfssvr) GRIBIN=$COMIN/mdl_mavgribtsvr.${cycle} - GEMGRD=${model}_${PDY}${cyc} ;; - mdlnamsvr) GRIBIN=$COMIN/mdl_metgribtsvr.${cycle} - GEMGRD=${model}_${PDY}${cyc} ;; - mdlmrfsvr) GRIBIN=$COMIN/mdl_mexgribtsvr.${cycle} - GEMGRD=${model}_${PDY}${cyc} ;; - nam40) cp /nwprod/gempak/fix/model/nam/* . ;; - dgex) if [ $cyc = 00 -o $cyc = 12 ] - then - export model=dgex_alaska - export GRIB=awp186 - else - export model=dgex_conus - export GRIB=awp185 - fi - - GEMGRD=dgex_${PDY}${cyc}f${fhr3} - GRIBIN=$COMIN/${model}.t${cyc}z.${GRIB}${fhr}${EXT} - ;; - hiresw) GRIBIN=$COMIN/${model}.t${cyc}z.${GRIB}${fhr}${EXT} - GEMGRD=hiresw_${model}_${PDY}${cyc}f${fhr3} - ;; - sst) GRIBIN=$COMIN/rtgssthr_grb_0.083_awips - GEMGRD=rtgsst_${GRIB}_${PDY}00 - ;; - gfs35_pac | gfs35_atl | gfs40 | gfs_asbkup) GRIBIN=$COMIN/gfs.t${cyc}z.master.grbf${fhr} - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - ;; - navgem) if [ $fhcnt -ge 100 ] ; then - GRIBIN=$COMIN/${RUN}_${PDY}${cyc}f${fhr} - else - GRIBIN=$COMIN/${RUN}_${PDY}${cyc}f0${fhr} - fi - GEMGRD=${RUN}_${PDY}${cyc}f${fhr3} - ;; - esac - - if [ $RUN = "ngm" ] ; then - GRIBIN_chk=$COMIN/${model}.${cycle}.pgrbif${fhr} - elif [ $RUN = "gfs" ] ; then - if test $fhr -lt 100 - then - fcsthr=0${fhr} - else - fcsthr=${fhr} - fi - cp $COMIN/${model}.${cycle}.pgrb2.1p00.f${fcsthr} . - $CNVGRIB -g21 ${model}.${cycle}.pgrb2.1p00.f${fcsthr} ${model}.${cycle}.${GRIB}${fhr} - GRIBIN=${model}.${cycle}.${GRIB}${fhr} - $GRBINDEX ${model}.${cycle}.${GRIB}${fhr} ${model}.${cycle}.pgrbif${fhr} - GRIBIN_chk=${model}.${cycle}.pgrbif${fhr} - elif [ $RUN = "gfshd" ] ; then - GRIBIN_chk=$COMIN/${model}.${cycle}.pgrbif${fhr}${EXT} - elif [ $RUN = "gdas" ] ; then - GRIBIN_chk=$COMIN/${model}.${cycle}.pgrbif${fhr} - elif [ $RUN = "mrf" ] ; then - GRIBIN_chk=$COMIN/${model}.${cycle}.pgrbif${fhr} - elif [ $RUN = "nww3" -o $RUN = "akw" -o $RUN = "wna" -o $RUN = "nah" -o $RUN = "enp" -o $RUN = "nph" ] ; then - GRIBIN_chk=$COMIN/${model}.${cycle}.${GRIB}done - elif [ $RUN4 = "mww3" -o $RUN3 = "mwh" ]; then - GRIBIN_chk=$GRIBIN.idx - elif [ $RUN = "dgex" ] ; then - GRIBIN_chk=$COMIN/${model}.t${cyc}z.${GRIB}${fhr}${EXT}_icwf - elif [ $RUN = "gfs35_pac" -o $RUN = "gfs35_atl" -o $RUN = "gfs40" -o $RUN = "gfs_asbkup" ] ; then - GRIBIN_chk=$COMIN/gfs.t${cyc}z.master.grbif${fhr} - elif [ $RUN = "ofs" ] ; then - GRIBIN_chk=$COMIN/${RUN}_atl.t${cyc}z.${fhr3_ofs}.${model}.$GRIB.grib2.idx - elif [ $RUN = "nam12" ] ; then - GRIBIN_chk=$GRIBIN - GRIBIN_chk1=$GRIBIN1 - else - GRIBIN_chk=$GRIBIN - fi - - if [ $RUN = "nam12" ] ; then - - icnt=1 - while [ $icnt -lt 1000 ] - do - if [[ -r $GRIBIN_chk && -r $GRIBIN_chk1 ]] ; then - break - else - sleep 20 - let "icnt=icnt+1" - fi - if [ $icnt -ge $maxtries ] - then - msg="ABORTING after 1 hour of waiting for F$fhr to end." - postmsg "${jlogfile}" "$msg" - export err=7 ; err_chk - exit $err - fi - done - - else - - icnt=1 - while [ $icnt -lt 1000 ] - do - if [ -r $GRIBIN_chk ] ; then - break - else - sleep 20 - let "icnt=icnt+1" - fi - if [ $icnt -ge $maxtries ] - then - msg="ABORTING after 1 hour of waiting for F$fhr to end." - postmsg "${jlogfile}" "$msg" - export err=7 ; err_chk - exit $err - fi - done - - fi - - case $RUN in - dgex) - cat $GRIBIN $GRIBIN_chk > tmpgrib$fhr - $COPYGB -g 104 -x tmpgrib$fhr grib$fhr - ;; - gfs_asbkup) - $COPYGB -g "255 0 90 55 55000 -140000 128 0 -50000 1000 1000 0" -x $GRIBIN grib$fhr - ;; - sst) - if [ $GRIB = "atl" ] ; then - $COPYGB -g "255 0 840 540 50000 -100000 128 5000 -30000 083 083 0" -x $GRIBIN grib$fhr - else - # Assume Pacific region - $COPYGB -g "255 0 960 660 60000 -170000 128 5000 -90000 083 083 0" -x $GRIBIN grib$fhr - fi - ;; - nam64) - $WGRIB $GRIBIN | grep -f /nwprod/gempak/fix/nam64.awc.parmlist|$WGRIB -i -grib -o temp $GRIBIN - $COPYGB -g "255 3 175 139 1000 -145500 8 -107000 64926 64926 0 64 50000 50000" -x temp grib$fhr - ;; - gfs35_pac) - $WGRIB $GRIBIN | grep -f /nwprod/fix/global_1x1_paramlist|$WGRIB -i -grib -o temp $GRIBIN - $COPYGB -g "255 0 416 186 75125 -230000 128 17000 -100000 312 312 0" -x temp grib$fhr - ;; - gfs35_atl) - $WGRIB $GRIBIN | grep -f /nwprod/fix/global_1x1_paramlist|$WGRIB -i -grib -o temp $GRIBIN - $COPYGB -g "255 0 480 242 75125 -130000 128 -500 20000 312 312 0" -x temp grib$fhr - ;; - gfs40) - $WGRIB $GRIBIN | grep -f /nwprod/fix/global_1x1_paramlist|$WGRIB -i -grib -o temp $GRIBIN - $COPYGB -g 212 -x temp grib$fhr - ;; - nam12carib) - $WGRIB -s $GRIBIN | grep -f $utilfix_nam/nam_nam12carib_parmlist|$WGRIB -i -grib -o temp $GRIBIN - mv temp grib$fhr - ;; - nam32) - $WGRIB -s $GRIBIN | grep -f $utilfix_nam/nam_grid151.parmlist|$WGRIB -i -grib -o temp $GRIBIN - mv temp grib$fhr - ;; - nam12) - if [ $fhcnt3 -eq 0 ] ; then - $WGRIB -s $GRIBIN | grep -f $utilfix_nam/wrf4spc12.parmlist|$WGRIB -i -grib -o temp $GRIBIN - $WGRIB -s $GRIBIN1 | grep -f $utilfix_nam/wrf4spc12.parmlist_1|$WGRIB -i -grib -o temp1 $GRIBIN1 - cat temp temp1 > grib$fhr - else - $WGRIB -s $GRIBIN | grep -f $utilfix_nam/wrf4spc12_hourly.parmlist|$WGRIB -i -grib -o temp $GRIBIN - $WGRIB -s $GRIBIN1 | grep -f $utilfix_nam/wrf4spc12_hourly.parmlist_1|$WGRIB -i -grib -o temp1 $GRIBIN1 - cat temp temp1 > grib$fhr - fi - ;; - ge*) if test "$model" = "bc" -o "$model" = "me" -o "$model" = "an" -o "$model" = "wt" -o "$model" = "glbanl" -o "$model" = "ndgd" -o "$model" = "ensemble" -o "$model" = "anv" - then - cp $GRIBIN grib$fhr - else - GRIBIN_B=$COMIN_B/${RUN}.${cycle}.pgrbbf${fhr} - $WGRIB -s $GRIBIN_B | grep "HGT:300 mb" | $WGRIB -i -grib -o temp $GRIBIN_B - cat $GRIBIN temp > grib$fhr - fi - ;; - *) - cp $GRIBIN grib$fhr - esac - - if [ "$model" = "ensemble" -o $RUN = "sref" ] ; then - export pgm="nagrib_nc $RUN" - else - export pgm="nagrib_nc F$fhr" - fi - startmsg - - $NAGRIB << EOF - GBFILE = grib$fhr - INDXFL = - GDOUTF = $GEMGRD - PROJ = $proj - GRDAREA = $grdarea - KXKY = $kxky - MAXGRD = $maxgrd - CPYFIL = $cpyfil - GAREA = $garea - OUTPUT = $output - GBTBLS = $gbtbls - GBDIAG = - PDSEXT = $pdsext - l - r -EOF - export err=$?;err_chk - - ##################################################### - # GEMPAK DOES NOT ALWAYS HAVE A NON ZERO RETURN CODE - # WHEN IT CAN NOT PRODUCE THE DESIRED GRID. CHECK - # FOR THIS CASE HERE. - ##################################################### - if [ $model != "ukmet_early" ] ; then - ls -l $GEMGRD - export err=$?;export pgm="GEMPAK CHECK FILE";err_chk - fi - - if [ "$NAGRIB" = "nagrib2" ] ; then - gpend - fi - - # - # Create ZAGL level products for the 40 km NAM grid and the ruc - # - if [ "$RUN" = "nam40" -o "$RUN" = "ruc2" -o "$RUN" = "ruc20" ] ; then - gdvint << EOF - GDFILE = $GEMGRD - GDOUTF = $GEMGRD - GDATTIM = f${fhr} - GVCORD = pres/zagl - GLEVEL = 500-9000-500 - MAXGRD = 5000 - GAREA = $garea - VCOORD = mslv;esfc - l - r -EOF - fi - - # - # Create theta level products for the 90 and 40 km NAM grids - # - if [ "$RUN" = "nam40" -o "$RUN" = "nam" ] ; then - gdvint << EOF - GDFILE = $GEMGRD - GDOUTF = $GEMGRD - GDATTIM = f${fhr} - GVCORD = pres/thta - GLEVEL = 270-330-3 - MAXGRD = 5000 - GAREA = $garea - VCOORD = /l - l - r -EOF - fi - - - # - # Create theta level prodcuts for the RUC - # Delete 2 Hour Precip accumulations - # - if [ "$RUN" = "ruc2" -o "$RUN" = "ruc20" ] ; then - gdvint << EOF - GDFILE = $GEMGRD - GDOUTF = $GEMGRD - GDATTIM = f${fhr} - GVCORD = pres/thta - GLEVEL = 270-330-3 - MAXGRD = 5000 - GAREA = 25;-120;50;-60 - VCOORD = /l - l - r -EOF - if [ "$fhr" = "05" -o "$fhr" = "08" -o "$fhr" = "11" ] ; then - gddelt_gn << EOF - GDFILE = $GEMGRD - GDATTIM = f${fhr} - GVCORD = none - GLEVEL = 0 - GFUNC = s02m;c02m - l - r -EOF - fi - fi - if [ $SENDCOM = "YES" ] ; then - if [ $RUN = "ecmwf_hr" -o $RUN = "ecmwf_wave" ] ; then - chgrp rstprod $GEMGRD - chmod 750 $GEMGRD - fi - mv $GEMGRD $COMOUT/$GEMGRD - if [ $SENDDBN = "YES" ] ; then - if [ $RUN = "nam" -a $fhcnt3 -ne 0 ] ; then - $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE_2} $job \ - $COMOUT/$GEMGRD - else - $DBNROOT/bin/dbn_alert MODEL ${DBN_ALERT_TYPE} $job \ - $COMOUT/$GEMGRD - fi - else - echo "##### DBN_ALERT_TYPE is: ${DBN_ALERT_TYPE} #####" - fi - fi - - if [ $RUN = "ukmet" -a $fhcnt -ge 48 ] ; then - let fhcnt=fhcnt+12 - elif [ $RUN = "gfs" -a $fhcnt -ge 192 ] ; then - let fhcnt=fhcnt+12 - elif [ $RUN = "nam" -a $fhcnt -lt 36 ] ; then - let fhcnt=fhcnt+1 - elif [ $RUN = "nam12" -a $fhcnt -lt 36 ] ; then - let fhcnt=fhcnt+1 - else - let fhcnt=fhcnt+finc - fi -done - -##################################################################### -# GOOD RUN -set +x -echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" -echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" -echo "**************JOB $RUN NAWIPS COMPLETED NORMALLY ON THE IBM" -set -x -##################################################################### - -msg='Job completed normally.' -echo $msg -postmsg "$jlogfile" "$msg" - -############################### END OF SCRIPT ####################### diff --git a/scripts/extropcy_qc_reloc.sh.ecf b/scripts/extropcy_qc_reloc.sh.ecf deleted file mode 100755 index 0a0840869b..0000000000 --- a/scripts/extropcy_qc_reloc.sh.ecf +++ /dev/null @@ -1,182 +0,0 @@ -############################################################################ -echo "---------------------------------------------------------------------" -echo "extropcy_qc_reloc.sh.ecf - Tropical Cyclone QC/Relocation Prcocessing" -echo "---------------------------------------------------------------------" -echo "History: Jun 13 2006 - Original script." -echo " March 2013 - No changes needed for WCOSS transition" -echo " MP_LABELIO default added" -echo " Oct 2013 - Use main USH vars as part of minor pkg cleanup" -############################################################################ - -set -x - -# Make sure we are in the $DATA directory -cd $DATA - -msg="HAS BEGUN on `hostname`" -postmsg "$jlogfile" "$msg" - -cat break > $pgmout - -export COMSP=$COMOUT/${RUN}.${cycle}. - -tmhr=`echo $tmmark|cut -c3-4` -cdate10=` ${NDATE:?} -$tmhr $PDY$cyc` - -NET_uc=$(echo $RUN | tr [a-z] [A-Z]) -tmmark_uc=$(echo $tmmark | tr [a-z] [A-Z]) - -msg="$NET_uc ANALYSIS TIME IS $PDY$cyc" -postmsg "$jlogfile" "$msg" - -iflag=0 -if [ $RUN = ndas ]; then - if [ $DO_RELOCATE = NO ]; then - msg="CENTER PROCESSING TIME FOR NDAS TROPICAL CYCLONE QC IS $cdate10" - postmsg "$jlogfile" "$msg" - msg="Output tcvitals files will be copied forward in time to proper \ -output file directory path locations" - postmsg "$jlogfile" "$msg" - iflag=1 - else - msg="CENTER PROCESSING TIME FOR $tmmark_uc NDAS TROPICAL CYCLONE \ -RELOCATION IS $cdate10" - postmsg "$jlogfile" "$msg" - fi -else - msg="CENTER PROCESSING TIME FOR $tmmark_uc $NET_uc TROPICAL CYCLONE QC/\ -RELOCATION IS $cdate10" - postmsg "$jlogfile" "$msg" -fi - - -if [ "$PROCESS_TROPCY" = 'YES' ]; then - -#################################### -#################################### -# QC tcvitals for tropical cyclones -#################################### -#################################### - -#echo $PDY - - ${USHSYND:-$HOMEgfs/ush}/syndat_qctropcy.sh $cdate10 - errsc=$? - if [ "$errsc" -ne '0' ]; then - msg="syndat_qctropcy.sh failed. exit" - postmsg "$jlogfile" "$msg" - exit $errsc - fi - - - cd $COMOUT - pwd - set +x - ls -ltr *syndata* - set -x - cd $ARCHSYND - pwd;ls -ltr - cat syndat_dateck - cd $HOMENHC - pwd;ls -ltr - cd $DATA - -else - -# Copy null files into "syndata.tcvitals" and "jtwc-fnoc.tcvitals" -# (Note: Only do so if files don't already exist - need because in NDAS this -# script is run twice, first time with DO_RELOCATE=NO, copying these -# files, and second time with PROCESS_TROPCY=NO and thus coming here - -# don't want to wipe out these files) -# - - [ ! -s ${COMSP}syndata.tcvitals.$tmmark ] && \ - cp /dev/null ${COMSP}syndata.tcvitals.$tmmark - [ ! -s ${COMSP}jtwc-fnoc.tcvitals.$tmmark ] && \ - cp /dev/null ${COMSP}jtwc-fnoc.tcvitals.$tmmark - -# endif loop $PROCESS_TROPCY -fi - - -if [ "$DO_RELOCATE" = 'YES' ]; then - -################################################### -################################################### -# Relocate tropical cyclones in global sigma guess -################################################### -################################################### - - export MP_LABELIO=${MP_LABELIO:-yes} - $USHRELO/tropcy_relocate.sh $cdate10 - errsc=$? - - [ "$errsc" -ne '0' ] && exit $errsc - - -# save global sigma guess file(s) possibly updated by tropical cyclone -# relocation processing in COMSP path - qual_last=".$tmmark" # need this because gfs and gdas don't add $tmmark - # qualifer to end of output sigma guess files - [ $RUN = gfs -o $RUN = gdas -o $NET = cfs ] && qual_last="" - - if [ $BKGFREQ -eq 1 ]; then - [ -s sgm3prep ] && cp sgm3prep ${COMSP}sgm3prep${qual_last} - [ -s sgm2prep ] && cp sgm2prep ${COMSP}sgm2prep${qual_last} - [ -s sgm1prep ] && cp sgm1prep ${COMSP}sgm1prep${qual_last} - [ -s sgesprep ] && cp sgesprep ${COMSP}sgesprep${qual_last} - [ -s sgp1prep ] && cp sgp1prep ${COMSP}sgp1prep${qual_last} - [ -s sgp2prep ] && cp sgp2prep ${COMSP}sgp2prep${qual_last} - [ -s sgp3prep ] && cp sgp3prep ${COMSP}sgp3prep${qual_last} - elif [ $BKGFREQ -eq 3 ]; then - [ -s sgm3prep ] && cp sgm3prep ${COMSP}sgm3prep${qual_last} - [ -s sgesprep ] && cp sgesprep ${COMSP}sgesprep${qual_last} - [ -s sgp3prep ] && cp sgp3prep ${COMSP}sgp3prep${qual_last} - fi - -# The existence of ${COMSP}tropcy_relocation_status.$tmmark file will tell the -# subsequent PREP processing that RELOCATION processing occurred, if this file -# does not already exist at this point, echo "RECORDS PROCESSED" into it to -# further tell PREP processing that records were processed by relocation and -# the global sigma guess was modified by tropical cyclone relocation -# Note: If ${COMSP}tropcy_relocation_status.$tmmark already exists at this -# point it means that it contains the string "NO RECORDS to process" -# and was created by the child script tropcy_relocate.sh because records -# were not processed by relocation and the global sigma guess was NOT -# modified by tropical cyclone relocation (because no tcvitals records -# were found in the relocation step) -# ---------------------------------------------------------------------------- - - [ ! -s ${COMSP}tropcy_relocation_status.$tmmark ] && \ - echo "RECORDS PROCESSED" > ${COMSP}tropcy_relocation_status.$tmmark - -# endif loop $DO_RELOCATE -fi - - -######################################################## - -# GOOD RUN -set +x -echo " " -echo " ****** PROCESSING COMPLETED NORMALLY" -echo " ****** PROCESSING COMPLETED NORMALLY" -echo " ****** PROCESSING COMPLETED NORMALLY" -echo " ****** PROCESSING COMPLETED NORMALLY" -echo " " -set -x - - -# save standard output -cat break $pgmout break > allout -cat allout -# rm allout - -sleep 10 - -if [ $iflag -eq 0 ]; then - msg='ENDED NORMALLY.' - postmsg "$jlogfile" "$msg" -fi - -################## END OF SCRIPT ####################### diff --git a/scripts/run_gfsmos_master.sh.cray b/scripts/run_gfsmos_master.sh.cray index e35cf6cb93..78fd4b14d8 100755 --- a/scripts/run_gfsmos_master.sh.cray +++ b/scripts/run_gfsmos_master.sh.cray @@ -73,7 +73,7 @@ else exit fi -export range=both +export range=${range:-"both"} export skipmodel=n export skipprep=n export stnonly=Y diff --git a/scripts/run_gfsmos_master.sh.dell b/scripts/run_gfsmos_master.sh.dell index ff0cfcb09a..32264146c1 100755 --- a/scripts/run_gfsmos_master.sh.dell +++ b/scripts/run_gfsmos_master.sh.dell @@ -31,7 +31,7 @@ fi ####################################################################### # Source bash_profile to run with proper modules on cron ####################################################################### -. ~/.bash_profile 1> /dev/null 2>&1 +#elim . ~/.bash_profile 1> /dev/null 2>&1 #. ~/.bash_profile ####################################################################### @@ -49,26 +49,27 @@ fi # job script. ####################################################################### . $MODULESHOME/init/bash -module purge 2>/dev/null +#module purge 2>/dev/null module load EnvVars/1.0.2 2>/dev/null module load ips/18.0.1.163 2>/dev/null module load impi/18.0.1 2>/dev/null module load lsf/10.1 2>/dev/null -module load prod_envir/1.0.2 2>/dev/null -module load prod_util/1.1.0 2>/dev/null +module load prod_envir/1.0.3 2>/dev/null +module load prod_util/1.1.4 2>/dev/null module load CFP/2.0.1 2>/dev/null module use -a /gpfs/dell1/nco/ops/nwpara/modulefiles/compiler_prod/ips/18.0.1 -module load grib_util/1.1.0 2>/dev/null +module load grib_util/1.1.1 2>/dev/null export FORT_BUFFERED=TRUE export KMP_AFFINITY=disabled export envir=prod +export RUN_ENVIR=${RUN_ENVIR:-""} #export QUEUE=dev #------------------ -export SENDCOM_SAVE=$SENDCOM export SENDCOM=YES +export SENDCOM_SAVE=$SENDCOM #------------------ #-------------------------------- @@ -82,9 +83,11 @@ export SENDCOM=YES export PTMPROOT=$ROTDIR/gfsmos.$PDY export STMPROOT=$RUNDIR/gfsmos.$PDY export DATAROOT=$STMPROOT -export MODELROOT=/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/gfsmos -export MODELDIR=$MODELROOT/gfsmos.v5.0.6 -export CODEDIR=$MODELROOT/mos_shared.v2.6.1 +##export MODELROOT=/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/gfsmos +export MODELROOT=/gpfs/dell2/mdl/mdlstat/noscrub/usr/Scott.Scallion/gfsv16 +#export MODELDIR=$MODELROOT/gfsmos.v5.2.0.1 +export MODELDIR=$MODELROOT/gfsmos.v5.2.0.1-restructure +export CODEDIR=/gpfs/dell1/nco/ops/nwpara/mos_shared.v2.6.5 #-------------------------------- #-------------------------------- @@ -137,7 +140,7 @@ export prevday=`$NDATE -24 ${PDY}00 | cut -c1-8` ##fi # ERIC ENGLE 05/30/2018 - PATCH FOR FV3GFS WINTER 17/18 PARALLEL -export range=both +export range=${range:-"both"} #if [ $cyc -eq 00 -o $cyc -eq 12 ]; then # if [ $cyc -eq 00 ]; then @@ -156,6 +159,7 @@ export jlogfile=$dailylog/jlogfile_gfsmos mkdir -p $dailylog export SENDDBN=NO +export SENDDBN_NTC=NO export GET_IOPROFILE=NO # Specify Execution Areas @@ -181,7 +185,10 @@ fi ##export COMINgfs=$GFSDIR ##export COMOUT=$PTMPROOT/qprod/gfsmos.$PDY -export GFSDIR=$ROTDIR/gfs.${PDY}/${cyc} +export GFSDIR=$COMROOT/gfs/prod/gfs.${PDY} +if [[ "$RUN_ENVIR" = "emc" ]] ; then + export GFSDIR=$ROTDIR/gfs.${PDY} +fi export COMINgfs=$GFSDIR export COMOUT=$ROTDIR/gfsmos.$PDY @@ -197,10 +204,10 @@ if [[ ! -d $COMOUT ]]; then mkdir -p $COMOUT fi -export PCOM=$PTMPROOT/pcom +export COMOUTwmo=$PTMPROOT/wmo -if [[ ! -d $PCOM ]]; then - mkdir -p $PCOM +if [[ ! -d $COMOUTwmo ]]; then + mkdir -p $COMOUTwmo fi @@ -311,23 +318,23 @@ if [ "$range" == "short" -o "$range" == "both" ]; then if [[ "$skipprep" != "y" ]]; then export job=gfsmos_prep_${cyc}_${pid} export COMIN=$GFSDIR - jobCard=$HOMEmdl/jobs/JGFSMOS_PREP + jobCard=$HOMEmdl/jobs/JGFSMOS_STN_PREP # Define DATA and create directory export DATA=$STMPROOT/qprod/gfsmos_prep_${cyc} export logfile=$dailylog/$job.out export out_dir=$dailylog export NTASK=3 - export PTILE=1 + export PTILE=3 export OMP_NUM_THREADS=1 bsub -J $job \ -o $logfile \ -q $QUEUE \ + -x \ -n $NTASK \ -R "span[ptile=$PTILE]" \ - -W 0:15 \ - -M 2500 \ + -W 0:25 \ -P $ACCOUNT \ $jobCard @@ -336,23 +343,23 @@ fi #end for skipprep ######################################################################## # JGFSMOS_FORECAST ######################################################################## -##if [[ "$PDY" != `date -u +%Y%m%d` ]]; then - ##export COMINhourly=/ptmpp2/$USER/dcom/hourly.$PDY - export COMINhourly=$PTMPROOT/hourly.$PDY - if [[ ! -d $COMINhourly ]]; then - mkdir -p $COMINhourly +if [[ ! -d /gpfs/dell1/nco/ops/com/mos/prod/hry_mos.$PDY ]]; then + export ROTATE=/gpfs/dell2/mdl/mdlstat/noscrub/rotate + export COMINhry_mos=$PTMPROOT/hourly.$PDY + if [[ ! -d $COMINhry_mos ]]; then + mkdir -p $COMINhry_mos fi - \cp /gpfs/${gort}d1/mdl/mdlstat/save/rotate/hry/${PDY}03 $COMINhourly/sfctbl.03 - \cp /gpfs/${gort}d1/mdl/mdlstat/save/rotate/hry/${PDY}09 $COMINhourly/sfctbl.09 - \cp /gpfs/${gort}d1/mdl/mdlstat/save/rotate/hry/${PDY}15 $COMINhourly/sfctbl.15 - \cp /gpfs/${gort}d1/mdl/mdlstat/save/rotate/hry/${PDY}21 $COMINhourly/sfctbl.21 -##fi + \cp $ROTATE/hry/${PDY}03 $COMINhry_mos/sfctbl.03 + \cp $ROTATE/hry/${PDY}09 $COMINhry_mos/sfctbl.09 + \cp $ROTATE/hry/${PDY}15 $COMINhry_mos/sfctbl.15 + \cp $ROTATE/hry/${PDY}21 $COMINhry_mos/sfctbl.21 +fi # Change COMIN to get files from user's PTMP "qprod" area export COMIN=$COMOUT export job=gfsmos_fcst_${cyc}_${pid} -jobCard=$HOMEmdl/jobs/JGFSMOS_FORECAST +jobCard=$HOMEmdl/jobs/JGFSMOS_STN_FORECAST export DATA=$STMPROOT/qprod/gfsmos_fcst_${cyc} export logfile=$dailylog/$job.out export out_dir=$dailylog @@ -375,22 +382,22 @@ if [[ $cyc == "00" || $cyc == "12" ]] && [[ "$stnonly" != "Y" ]]; then export PTILE=1 export OMP_NUM_THREADS=1 elif [[ $cyc == "00" || $cyc == "12" ]] && [[ "$stnonly" == "Y" ]]; then - export NTASK=4 - export PTILE=1 + export NTASK=5 + export PTILE=5 export OMP_NUM_THREADS=1 else - export NTASK=3 - export PTILE=1 + export NTASK=4 + export PTILE=4 export OMP_NUM_THREADS=1 fi bsub -J ${job} \ -o $logfile \ -q ${QUEUE} \ + -x \ -n $NTASK \ -R "span[ptile=$PTILE]" \ - -W 0:15 \ - -M 2000 \ + -W 0:20 \ -P $ACCOUNT \ -w "$deps" \ $jobCard @@ -398,7 +405,7 @@ bsub -J ${job} \ ######################################################################## # JGFSMOS_PRDGEN ######################################################################## -jobCard=$HOMEmdl/jobs/JGFSMOS_PRDGEN +jobCard=$HOMEmdl/jobs/JGFSMOS_STN_PRDGEN export job=gfsmos_prdgen_${cyc}_${pid} # Change COMIN back to COMOUT export COMIN=$COMOUT @@ -424,10 +431,10 @@ fi bsub -J ${job} \ -o $logfile \ -q ${QUEUE} \ + -x \ -n $NTASK \ -R "span[ptile=$PTILE]" \ -W 0:30 \ - -M 2000 \ -P $ACCOUNT \ -w "$deps" \ $jobCard @@ -483,75 +490,75 @@ if [ "$range" == "ext" -o "$range" == "both" ]; then ######################################################################## # Wait for 1/4 degree model data ######################################################################## -if [ "$skipmodel" != "y" ]; then -let attempts=1 -proj_list=`seq -f %03g 252 12 384` -for tau in $proj_list -do - while [[ $attempts -le 120 ]] - do - if [[ -f $GFSDIR/gfs.$cycle.pgrb2.0p25.f${tau} && -f $GFSDIR/gfs.$cycle.pgrb2.0p50.f${tau} ]]; then - echo "Model file found. Proceeding to next..." - break - else - if [[ $attempts -le 60 ]]; then - sleep 60 - else - sleep 180 - fi - attempts=$((attempts+1)) - fi - done -done - -if [[ $attempts -gt 120 ]]; then - echo "Waited 4 hours for model file, but it did not appear." - echo "Exiting..." - exit 1 -fi +#if [ "$skipmodel" != "y" ]; then +#let attempts=1 +#proj_list=`seq -f %03g 252 12 384` +#for tau in $proj_list +#do +# while [[ $attempts -le 120 ]] +# do +# if [[ -f $GFSDIR/gfs.$cycle.pgrb2.0p25.f${tau} && -f $GFSDIR/gfs.$cycle.pgrb2.0p50.f${tau} ]]; then +# echo "Model file found. Proceeding to next..." +# break +# else +# if [[ $attempts -le 60 ]]; then +# sleep 60 +# else +# sleep 180 +# fi +# attempts=$((attempts+1)) +# fi +# done +#done +# +#if [[ $attempts -gt 120 ]]; then +# echo "Waited 4 hours for model file, but it did not appear." +# echo "Exiting..." +# exit 1 +#fi -fi #endif for skipmodel +#fi #endif for skipmodel ######################################################################## # Wait for 1.0/2.5 degree GFS model files before running (Pacific GFS) ######################################################################## -if [ "$skipmodel" != "y" ]; then -let attempts1deg=1 -proj_list=`seq -f %03g 204 12 384` -for tau in $proj_list -do - while [[ $attempts1deg -le 120 ]] - do -# ERIC ENGLE 05/30/2018 - PATCH FOR FV3GFS WINTER 17/18 PARALLEL - #if [[ -f $GFSDIR/gfs.$cycle.pgrb2.1p00.f384 && -f $GFSDIR/gfs.$cycle.pgrb2.2p50.f240 ]]; then - if [ $cyc -eq 00 ]; then - waitfile=$GFSDIR/gfs.$cycle.pgrb2.1p00.f384 - else - waitfile=$GFSDIR/gfs.$cycle.pgrb2.1p00.f180 - fi - if [[ -f $waitfile ]]; then -# ERIC ENGLE 05/30/2018 - PATCH FOR FV3GFS WINTER 17/18 PARALLEL - #echo "1.0/2.5 degree model files found. Proceeding to next..." - echo "1.0 degree model files found. Proceeding to next..." - break - else - if [[ $attempts1deg -le 60 ]]; then - sleep 60 - else - sleep 180 - fi - attempts1deg=$((aattempts1deg+1)) - fi - done -done - -if [[ $attempts1deg -gt 120 ]]; then - echo "Waited 4 hours for 1.0 degree model file, but it did not appear." - echo "Exiting..." - exit 1 -fi +#if [ "$skipmodel" != "y" ]; then +#let attempts1deg=1 +#proj_list=`seq -f %03g 204 12 384` +#for tau in $proj_list +#do +# while [[ $attempts1deg -le 120 ]] +# do +## ERIC ENGLE 05/30/2018 - PATCH FOR FV3GFS WINTER 17/18 PARALLEL +# #if [[ -f $GFSDIR/gfs.$cycle.pgrb2.1p00.f384 && -f $GFSDIR/gfs.$cycle.pgrb2.2p50.f240 ]]; then +# if [ $cyc -eq 00 ]; then +# waitfile=$GFSDIR/gfs.$cycle.pgrb2.1p00.f384 +# else +# waitfile=$GFSDIR/gfs.$cycle.pgrb2.1p00.f180 +# fi +# if [[ -f $waitfile ]]; then +## ERIC ENGLE 05/30/2018 - PATCH FOR FV3GFS WINTER 17/18 PARALLEL +# #echo "1.0/2.5 degree model files found. Proceeding to next..." +# echo "1.0 degree model files found. Proceeding to next..." +# break +# else +# if [[ $attempts1deg -le 60 ]]; then +# sleep 60 +# else +# sleep 180 +# fi +# attempts1deg=$((aattempts1deg+1)) +# fi +# done +#done +# +#if [[ $attempts1deg -gt 120 ]]; then +# echo "Waited 4 hours for 1.0 degree model file, but it did not appear." +# echo "Exiting..." +# exit 1 +#fi -fi #endif for skipmodel +#fi #endif for skipmodel ######################################################################## # JGFSMOS_EXT_PREP47 @@ -559,14 +566,14 @@ fi #endif for skipmodel if [[ "$skipprep" != "y" ]]; then export job=gfsmos_extprep_${cyc}_${pid} export COMIN=$GFSDIR - jobCard=$HOMEmdl/jobs/JGFSMOS_EXT_PREP + jobCard=$HOMEmdl/jobs/JGFSMOS_EXT_STN_PREP # Define DATA and create directory export DATA=$STMPROOT/qprod/gfsmos_extprep_${cyc} export logfile=$dailylog/$job.out export out_dir=$dailylog export NTASK=2 - export PTILE=1 + export PTILE=2 export OMP_NUM_THREADS=1 # bsub -J $job \ @@ -586,7 +593,6 @@ bsub -J ${job} \ -R "span[ptile=$PTILE]" \ -W 2:00 \ -P $ACCOUNT \ - -w "$deps" \ $jobCard fi #end for skipprep @@ -596,23 +602,23 @@ if [ $cyc -eq 00 -o $cyc -eq 12 ]; then ######################################################################## # JGFSMOS_EXT_FORECAST ######################################################################## -if [[ "$PDY" != `date -u +%Y%m%d` ]]; then - ##export COMINhourly=/ptmpp2/$USER/dcom/hourly.$PDY - export COMINhourly=$PTMPROOT/hourly.$PDY - if [[ ! -d $COMINhourly ]]; then - mkdir -p $COMINhourly - fi - \cp /gpfs/${gort}d1/mdl/mdlstat/save/rotate/hry/${PDY}03 $COMINhourly/sfctbl.03 - \cp /gpfs/${gort}d1/mdl/mdlstat/save/rotate/hry/${PDY}09 $COMINhourly/sfctbl.09 - \cp /gpfs/${gort}d1/mdl/mdlstat/save/rotate/hry/${PDY}15 $COMINhourly/sfctbl.15 - \cp /gpfs/${gort}d1/mdl/mdlstat/save/rotate/hry/${PDY}21 $COMINhourly/sfctbl.21 +if [[ ! -d /gpfs/dell1/nco/ops/com/mos/prod/hry_mos.$PDY ]]; then + export ROTATE=/gpfs/dell2/mdl/mdlstat/noscrub/rotate + export COMINhry_mos=$PTMPROOT/hourly.$PDY + if [[ ! -d $COMINhry_mos ]]; then + mkdir -p $COMINhry_mos + fi + \cp $ROTATE/hry/${PDY}03 $COMINhry_mos/sfctbl.03 + \cp $ROTATE/hry/${PDY}09 $COMINhry_mos/sfctbl.09 + \cp $ROTATE/hry/${PDY}15 $COMINhry_mos/sfctbl.15 + \cp $ROTATE/hry/${PDY}21 $COMINhry_mos/sfctbl.21 fi # Change COMIN to get files from user's PTMP "qprod" area export COMIN=$COMOUT export job=gfsmos_extfcst_${cyc}_${pid} -jobCard=$HOMEmdl/jobs/JGFSMOS_EXT_FORECAST +jobCard=$HOMEmdl/jobs/JGFSMOS_EXT_STN_FORECAST export DATA=$STMPROOT/qprod/gfsmos_extfcst_${cyc} export logfile=$dailylog/$job.out export out_dir=$dailylog @@ -633,7 +639,7 @@ if [[ $stnonly != "Y" ]]; then export OMP_NUM_THREADS=1 else export NTASK=3 - export PTILE=1 + export PTILE=3 export OMP_NUM_THREADS=1 fi @@ -647,10 +653,10 @@ fi bsub -J ${job} \ -o $logfile \ -q ${QUEUE} \ + -x \ -n $NTASK \ -R "span[ptile=$PTILE]" \ -W 1:00 \ - -M 2000 \ -P $ACCOUNT \ -w "$deps" \ $jobCard @@ -659,7 +665,7 @@ fi #endif for skipping 06/18 ext_fcst ######################################################################## # JGFSMOS_EXT_PRDGEN ######################################################################## -jobCard=$HOMEmdl/jobs/JGFSMOS_EXT_PRDGEN +jobCard=$HOMEmdl/jobs/JGFSMOS_EXT_STN_PRDGEN export job=gfsmos_extprdgen_${cyc}_${pid} # Change COMIN back to COMOUT export COMIN=$COMOUT @@ -699,10 +705,10 @@ fi bsub -J ${job} \ -o $logfile \ -q ${QUEUE} \ + -x \ -n $NTASK \ -R "span[ptile=$PTILE]" \ -W 1:00 \ - -M 3000 \ -P $ACCOUNT \ -w "$deps" \ $jobCard diff --git a/scripts/run_gfsmos_master.sh.hera b/scripts/run_gfsmos_master.sh.hera new file mode 100755 index 0000000000..b8a69ab673 --- /dev/null +++ b/scripts/run_gfsmos_master.sh.hera @@ -0,0 +1,833 @@ +#!/bin/sh +####################################################################### +# run_gfsmos.sh +# +# History: +# 03/29/13 Scallion Created (Adapted from Eric Engle's +# "master" scripts) +# 12/03/13 Scallion Added ptype/wxgrid +# +# Purpose: +# To run the GFS-MOS operational suite +# +####################################################################### +set -x + +if (( $# > 1 )); then + echo "Incorrect number of arguments." + echo "Syntax: $0 [PDYCYC (optional)]" + echo "Exiting..." + exit 1 +fi + +export PATH=./:$PATH + +####################################################################### +# Only run on the dev machine +####################################################################### +#/u/Scott.Scallion/bin/run-on-dev.sh +#[[ $? -eq 1 ]] && exit 1 + +####################################################################### +# Source bash_profile to run with proper modules on cron +####################################################################### +#elim . ~/.bash_profile 1> /dev/null 2>&1 +#. ~/.bash_profile + +####################################################################### +# Check the host to determine whether tide or gyre is prod +####################################################################### +#chkhost=`hostname | cut -c1` +#if [[ $SITE == "GYRE" ]] || [[ $SITE == "SURGE" ]] || [[ $SITE == "VENUS" ]]; then +# gort="g" +#elif [[ $SITE == "TIDE" ]] || [[ $SITE == "LUNA" ]] || [[ $SITE == "MARS" ]]; then +# gort="t" +#fi + +####################################################################### +# Set global variables neede in the run script and/or each individual +# job script. +####################################################################### +#. $MODULESHOME/init/bash +#module purge 2>/dev/null +#module load EnvVars/1.0.2 2>/dev/null +#module load ips/18.0.1.163 2>/dev/null +#module load impi/18.0.1 2>/dev/null +#module load lsf/10.1 2>/dev/null +#module load prod_envir/1.0.3 2>/dev/null +#module load prod_util/1.1.3 2>/dev/null +#module load CFP/2.0.1 2>/dev/null +# +#module use -a /gpfs/dell1/nco/ops/nwpara/modulefiles/compiler_prod/ips/18.0.1 +#module load grib_util/1.1.1 2>/dev/null + +# HERA +module load intel/18.0.5.274 +module load impi/2018.0.4 + +module use /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +module load bacio/2.0.3 +module load bufr/11.3.0 +module load g2/3.1.1 +module load jasper/1.900.1 +module load png/1.2.44 +module load w3emc/2.4.0 +module load w3nco/2.0.7 +module load z/1.2.11 + +module use /scratch1/NCEPDEV/mdl/nwprod/modulefiles +module load prod_util/1.0.14 + +module use /scratch1/NCEPDEV/mdl/apps/modulefiles +module load CFP/2.0.1 + +export FORT_BUFFERED=TRUE +export KMP_AFFINITY=disabled +export envir=prod +export RUN_ENVIR=${RUN_ENVIR:-""} +#export QUEUE=dev + +#------------------ +export SENDCOM=YES +export SENDCOM_SAVE=$SENDCOM +#------------------ + +#-------------------------------- +# COMDATEROOT defined by module prod_util +##export PTMPROOT=/gpfs/dell2/ptmp/$USER +##export STMPROOT=/gpfs/dell2/stmp/$USER +##export MODELROOT=/gpfs/dell2/mdl/mdlstat/noscrub/usr/$USER/nwprod +##export MODELDIR=$MODELROOT/gfsmos.v5.0.6 +##export CODEDIR=$MODELROOT/mos_shared.v2.6.1 + +export PTMPROOT=$ROTDIR/gfsmos.$PDY +export STMPROOT=$RUNDIR/gfsmos.$PDY +export DATAROOT=$STMPROOT +##export MODELROOT=/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/gfsmos +#export MODELROOT=/gpfs/dell2/mdl/mdlstat/noscrub/usr/Scott.Scallion/gfsv16 +#export MODELROOT=/scratch1/NCEPDEV/mdl/nwprod +export MODELROOT=/scratch1/NCEPDEV/global/glopara/git/global-workflow +#export MODELDIR=$MODELROOT/gfsmos.v5.2.0.1 +export MODELDIR=$MODELROOT/gfsmos.v5.2.0 +#export CODEDIR=/gpfs/dell1/nco/ops/nwpara/mos_shared.v2.6.5 +export CODEDIR=$MODELROOT/mos_shared.v2.6.5 +#-------------------------------- + +#-------------------------------- +##export PDY=20180419 +##export PDY=`date -u +%Y%m%d` +##export prevday=`date -u --date="${PDY} 0000 UTC 24 hours ago" +%Y%m%d` + +dateIn=$1 +#if [ $REALTIME = "YES" ]; then +# GDATE=`$NDATE -24 $dateIn` +# dateIn=$GDATE +#fi +export PDY=`echo $dateIn | cut -c 1-8` +export cyc=`echo $dateIn | cut -c 9-10` +export prevday=`$NDATE -24 ${PDY}00 | cut -c1-8` +#-------------------------------- + + +#-------------------------------- +##let hour=`date -u +"%-H"` +##if [[ $hour -ge 4 && $hour -lt 10 ]]; then +## export cyc=00 +## export range=both +##elif [[ $hour -ge 10 && $hour -lt 16 ]]; then +## export cyc=06 +## export range=both +##elif [[ $hour -ge 16 && $hour -lt 22 ]]; then +## export cyc=12 +## export range=both +##elif [[ $hour -ge 22 && $hour -le 23 ]]; then +## export cyc=18 +## export range=both +##else +## export cyc=18 +## export PDY=$prevday +## export range=both +##fi +## +##cyc_list="00 06 12 18" +##if [[ $# == 1 ]] && [[ $cyc_list =~ $1 ]]; then +## export cyc=$1 +## if [ "$cyc" == "00" -o "$cyc" == "12" ]; then +## export range=both +## else +## export range=both +## fi +##elif [[ $# == 1 ]]; then +## echo "$1 is not a valid cycle (choose 00 or 12)" +## exit 1 +##fi + +# ERIC ENGLE 05/30/2018 - PATCH FOR FV3GFS WINTER 17/18 PARALLEL +export range=${range:-"both"} + +#if [ $cyc -eq 00 -o $cyc -eq 12 ]; then +# if [ $cyc -eq 00 ]; then +# export range=both +# else +# export range=short +# fi +# ERIC ENGLE 05/30/2018 - PATCH FOR FV3GFS WINTER 17/18 PARALLEL +export stnonly='Y' +export skipmodel=n +export skipprep=n +export cycle="t${cyc}z" +export pid="gfs_qprod.$$" +export dailylog=$PTMPROOT/dailylog/log.$PDY +export jlogfile=$dailylog/jlogfile_gfsmos +mkdir -p $dailylog + +export SENDDBN=NO +export SENDDBN_NTC=NO +export GET_IOPROFILE=NO + +# Specify Execution Areas +export HOMEmdl=$MODELDIR +export HOMEcode=$CODEDIR +#export utilscript=/gpfs/hps/mdl/mdlstat/noscrub/usr/Scott.Scallion/ush + +if [ ! -d $HOMEmdl ]; then + echo "$HOMEmdl does not exist" + exit 1 +fi + +if [ ! -d $HOMEcode ]; then + echo "$HOMEcode does not exist" + exit 1 +fi + + +#------------------------------------- +# Define COMOUT (COMIN will vary by job) +#export GFSDIR=$COMROOThps/gfs/prod/gfs.$PDY +##export GFSDIR=$COMROOThps/gfs/prod/gfs.$PDY +##export COMINgfs=$GFSDIR +##export COMOUT=$PTMPROOT/qprod/gfsmos.$PDY + +export GFSDIR=$COMROOT/gfs/prod/gfs.${PDY} +if [[ "$RUN_ENVIR" = "emc" ]] ; then + export GFSDIR=$ROTDIR/gfs.${PDY} +fi +export COMINgfs=$GFSDIR +export COMOUT=$ROTDIR/gfsmos.$PDY + +#export COMINm1=$PTMPROOT/gfsmos.$prevday +#export COMINm1=$PTMPROOT/qprod/gfsmos_gmos_pre-nbmv2.$prevday +#export COMINm1=$PTMPROOT/qprod/gfsmos.$prevday + +if [[ ! -d $PTMPROOT/qprod ]]; then + mkdir -p $PTMPROOT/qprod +fi + +if [[ ! -d $COMOUT ]]; then + mkdir -p $COMOUT +fi + +export COMOUTwmo=$PTMPROOT/wmo + +if [[ ! -d $COMOUTwmo ]]; then + mkdir -p $COMOUTwmo +fi + + +# NOTE: On WCOSS_DELL_P3 the directory from which bsub +# is executed must exist when the submitted job +# begins. Otherwise, the submitted job fails +# with TERM_CWD_NOTEXIST error. + +mkdir -p $DATAROOT +cd $DATAROOT + + +if [ "$range" == "short" -o "$range" == "both" ]; then +######################################################################## +######################################################################## +# SHORT-RANGE JOBS +######################################################################## +######################################################################## + +######################################################################## +# Wait for 1 degree model data +######################################################################## +##if [ "$skipmodel" != "y" ]; then +##let attempts=1 +##while [[ $attempts -le 120 ]] +##do +## if [[ -f $GFSDIR/gfs.$cycle.pgrb2.1p00.f096 ]]; then +## echo "Model file found. Proceeding..." +## break +## else +## if [[ $attempts -le 60 ]]; then +## sleep 60 +## else +## sleep 180 +## fi +## attempts=$((attempts+1)) +## fi +##done +## +##if [[ $attempts -gt 120 ]]; then +## echo "Waited 4 hours for model file, but it did not appear." +## echo "Exiting..." +## exit 1 +##fi +## +##fi #endif for skipmodel + +######################################################################## +# Wait for 1/4 degree model data +######################################################################## +##if [ "$skipmodel" != "y" ]; then +##let attempts=1 +##while [[ $attempts -le 120 ]] +##do +## if [[ -f $GFSDIR/gfs.$cycle.pgrb2.0p25.f096 ]]; then +## echo "Model file found. Proceeding..." +## break +## else +## if [[ $attempts -le 60 ]]; then +## sleep 60 +## else +## sleep 180 +## fi +## attempts=$((attempts+1)) +## fi +##done + +##if [[ $attempts -gt 120 ]]; then +## echo "Waited 4 hours for model file, but it did not appear." +## echo "Exiting..." +## exit 1 +##fi +## +##fi #endif for skipmodel + +######################################################################## +# Wait for 1.0 degree GFS model files before running (Pacific MOS) +######################################################################## +##if [ "$skipmodel" != "y" ]; then +##let attempts=1 +##while [[ $attempts -le 120 ]] +##do +## if [[ -f $GFSDIR/gfs.$cycle.pgrb2.1p00.f096 ]]; then +## echo "1.0 degree model file found. Proceeding..." +## break +## else +## if [[ $attempts -le 60 ]]; then +## sleep 60 +## else +## sleep 180 +## fi +## attempts=$((attempts+1)) +## fi +##done +## +##if [[ $attempts -gt 120 ]]; then +## echo "Waited 4 hours for model file, but it did not appear." +## echo "Exiting..." +## exit 1 +##fi +## +##fi #endif for skipmodel + + +######################################################################## +# JGFSMOS_PREP47 +######################################################################## +if [[ "$skipprep" != "y" ]]; then + export job=gfsmos_prep_${cyc}_${pid} + export COMIN=$GFSDIR + jobCard=$HOMEmdl/jobs/JGFSMOS_STN_PREP +# Define DATA and create directory + export DATA=$STMPROOT/qprod/gfsmos_prep_${cyc} + export logfile=$dailylog/$job.out + export out_dir=$dailylog + + export NTASK=3 + export PTILE=3 + export OMP_NUM_THREADS=1 + +# bsub -J $job \ +# -o $logfile \ +# -q $QUEUE \ +# -x \ +# -n $NTASK \ +# -R "span[ptile=$PTILE]" \ +# -W 0:25 \ +# -P $ACCOUNT \ +# $jobCard + +# HERA (Slurm) +#sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=1g -t 00:25:00 -o $logfile $jobCard +sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=1g -t 01:00:00 -o $logfile $jobCard 1> temp +JGFSMOS_STN_PREP_JOBID=$(cat temp | sed 's/[A-Za-z ]//g') + +fi #end for skipprep + +######################################################################## +# JGFSMOS_FORECAST +######################################################################## +#if [[ ! -d /gpfs/dell1/nco/ops/com/mos/prod/hry_mos.$PDY ]]; then +# export ROTATE=/gpfs/dell2/mdl/mdlstat/noscrub/rotate +# #export COMINhry_mos=$PTMPROOT/hourly.$PDY +# export COMINhry_mos=/scratch1/NCEPDEV/mdl/Michael.N.Baker/hry/hry_mos.$PDY +# if [[ ! -d $COMINhry_mos ]]; then +# mkdir -p $COMINhry_mos +# fi +# \cp $ROTATE/hry/${PDY}03 $COMINhry_mos/sfctbl.03 +# \cp $ROTATE/hry/${PDY}09 $COMINhry_mos/sfctbl.09 +# \cp $ROTATE/hry/${PDY}15 $COMINhry_mos/sfctbl.15 +# \cp $ROTATE/hry/${PDY}21 $COMINhry_mos/sfctbl.21 +#fi +export COMINhry_mos=/scratch1/NCEPDEV/mdl/Michael.N.Baker/hry/hry_mos.$PDY + +# Change COMIN to get files from user's PTMP "qprod" area +export COMIN=$COMOUT + +export job=gfsmos_fcst_${cyc}_${pid} +jobCard=$HOMEmdl/jobs/JGFSMOS_STN_FORECAST +export DATA=$STMPROOT/qprod/gfsmos_fcst_${cyc} +export logfile=$dailylog/$job.out +export out_dir=$dailylog +# Set dependencies +if [[ "$skipprep" != "y" ]]; then + #ORIG deps="done(gfsmos_prep_${cyc}_${pid})" + deps="afterany:$JGFSMOS_STN_PREP_JOBID" +else + deps="" +fi +if [[ $cyc == "00" || $cyc == "12" ]] && [[ "$stnonly" != "Y" ]]; then + complist="metar pac cooprfcmeso goe higoe akgoe tstms" + complist2="copopo3 coptype akpopo3 akptype" +else + complist="metar cooprfcmeso tstms" + complist2="" +fi + +if [[ $cyc == "00" || $cyc == "12" ]] && [[ "$stnonly" != "Y" ]]; then + export NTASK=11 + export PTILE=1 + export OMP_NUM_THREADS=1 +elif [[ $cyc == "00" || $cyc == "12" ]] && [[ "$stnonly" == "Y" ]]; then + export NTASK=5 + export PTILE=5 + export OMP_NUM_THREADS=1 +else + export NTASK=4 + export PTILE=4 + export OMP_NUM_THREADS=1 +fi + +#bsub -J ${job} \ +# -o $logfile \ +# -q ${QUEUE} \ +# -x \ +# -n $NTASK \ +# -R "span[ptile=$PTILE]" \ +# -W 0:20 \ +# -P $ACCOUNT \ +# -w "$deps" \ +# $jobCard + +# HERA (Slurm) +#sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=4g -t 00:20:00 -o $logfile $jobCard +sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=4g -t 01:00:00 -o $logfile --dependency=$deps $jobCard 1> temp +JGFSMOS_STN_FORECAST_JOBID=$(cat temp | sed 's/[A-Za-z ]//g') + +######################################################################## +# JGFSMOS_PRDGEN +######################################################################## +jobCard=$HOMEmdl/jobs/JGFSMOS_STN_PRDGEN +export job=gfsmos_prdgen_${cyc}_${pid} +# Change COMIN back to COMOUT +export COMIN=$COMOUT +# Define DATA and create directory +export DATA=$STMPROOT/qprod/gfsmos_prdgen_${cyc} +export logfile=$dailylog/$job.out +export out_dir=$dailylog +# Set dependencies +#ORIG deps="done(gfsmos_fcst_${cyc}_${pid})" +deps="afterany:$JGFSMOS_STN_FORECAST_JOBID" +# Set Nodes +if [ $cyc -eq 00 -o $cyc -eq 12 ] && [[ "$stnonly" != "Y" ]]; then + #nodes='1*{select[craylinux && !vnode]} + 168*{select[craylinux && vnode]span[ptile=24]}' + export NTASK=1 + export PTILE=1 + #ORIG export OMP_NUM_THREADS=20 + export OMP_NUM_THREADS=1 +else + #nodes='1*{select[craylinux && !vnode]} + 24*{select[craylinux && vnode]span[ptile=24]}' + export NTASK=1 + export PTILE=1 + export OMP_NUM_THREADS=1 +fi + +#bsub -J ${job} \ +# -o $logfile \ +# -q ${QUEUE} \ +# -x \ +# -n $NTASK \ +# -R "span[ptile=$PTILE]" \ +# -W 0:30 \ +# -P $ACCOUNT \ +# -w "$deps" \ +# $jobCard + +# HERA (Slurm) +#sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=4g -t 00:30:00 -o $logfile $jobCard +#sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=4g -t 02:00:00 -o $logfile --dependency=$deps $jobCard 1> temp +sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --exclusive -t 02:00:00 -o $logfile --dependency=$deps $jobCard 1> temp +JGFSMOS_STN_PRDGEN_JOBID=$(cat temp | sed 's/[A-Za-z ]//g') + +######################################################################## +# JGFSMOS_WX_PRDGEN (00z and 12z only) +######################################################################## +#if [ $cyc -eq 00 -o $cyc -eq 12 ]; then +# jobCard=$HOMEmdl/jobs/JGFSMOS_WX_PRDGEN +# export job=gfsmos_wx_prdgen_${cyc}_${pid} +# # Change COMIN back to COMOUT +# export COMIN=$COMOUT +# # Define DATA and create directory +# export DATA=$STMPROOT/qprod/gfsmos_wx_prdgen_${cyc} +# export logfile=$dailylog/$job.out +# export out_dir=$dailylog +# # Set dependencies +# deps="done(gfsmos_prdgen_${cyc}_${pid})" +# +# export NTASK=2 +# export PTILE=1 +# export OMP_NUM_THREADS=20 +# +# #bsub -J ${job} -oo $logfile -q ${QUEUE} -P MDLST-T2O \ +# # -W 1:00 -M 1000 \ +# # -extsched 'CRAYLINUX[]' \ +# # -R '1*{select[craylinux && !vnode]} + 48*{select[craylinux && vnode]span[ptile=24]}' \ +# # -w "$deps" \ +# # $jobCard +# +# bsub -J ${job} \ +# -o $logfile \ +# -q ${QUEUE} -x \ +# -n $NTASK \ +# -R "span[ptile=$PTILE]" \ +# -W 1:00 \ +# -M 3000 \ +# -P $ACCOUNT \ +# -w "$deps" \ +# $jobCard +#fi + +fi #endif short + +######################################################################## +######################################################################## +# EXTENDED-RANGE JOBS +######################################################################## +######################################################################## + +if [ "$range" == "ext" -o "$range" == "both" ]; then + +######################################################################## +# Wait for 1/4 degree model data +######################################################################## +#if [ "$skipmodel" != "y" ]; then +#let attempts=1 +#proj_list=`seq -f %03g 252 12 384` +#for tau in $proj_list +#do +# while [[ $attempts -le 120 ]] +# do +# if [[ -f $GFSDIR/gfs.$cycle.pgrb2.0p25.f${tau} && -f $GFSDIR/gfs.$cycle.pgrb2.0p50.f${tau} ]]; then +# echo "Model file found. Proceeding to next..." +# break +# else +# if [[ $attempts -le 60 ]]; then +# sleep 60 +# else +# sleep 180 +# fi +# attempts=$((attempts+1)) +# fi +# done +#done +# +#if [[ $attempts -gt 120 ]]; then +# echo "Waited 4 hours for model file, but it did not appear." +# echo "Exiting..." +# exit 1 +#fi + +#fi #endif for skipmodel + +######################################################################## +# Wait for 1.0/2.5 degree GFS model files before running (Pacific GFS) +######################################################################## +#if [ "$skipmodel" != "y" ]; then +#let attempts1deg=1 +#proj_list=`seq -f %03g 204 12 384` +#for tau in $proj_list +#do +# while [[ $attempts1deg -le 120 ]] +# do +## ERIC ENGLE 05/30/2018 - PATCH FOR FV3GFS WINTER 17/18 PARALLEL +# #if [[ -f $GFSDIR/gfs.$cycle.pgrb2.1p00.f384 && -f $GFSDIR/gfs.$cycle.pgrb2.2p50.f240 ]]; then +# if [ $cyc -eq 00 ]; then +# waitfile=$GFSDIR/gfs.$cycle.pgrb2.1p00.f384 +# else +# waitfile=$GFSDIR/gfs.$cycle.pgrb2.1p00.f180 +# fi +# if [[ -f $waitfile ]]; then +## ERIC ENGLE 05/30/2018 - PATCH FOR FV3GFS WINTER 17/18 PARALLEL +# #echo "1.0/2.5 degree model files found. Proceeding to next..." +# echo "1.0 degree model files found. Proceeding to next..." +# break +# else +# if [[ $attempts1deg -le 60 ]]; then +# sleep 60 +# else +# sleep 180 +# fi +# attempts1deg=$((aattempts1deg+1)) +# fi +# done +#done +# +#if [[ $attempts1deg -gt 120 ]]; then +# echo "Waited 4 hours for 1.0 degree model file, but it did not appear." +# echo "Exiting..." +# exit 1 +#fi + +#fi #endif for skipmodel + +######################################################################## +# JGFSMOS_EXT_PREP47 +######################################################################## +if [[ "$skipprep" != "y" ]]; then + export job=gfsmos_extprep_${cyc}_${pid} + export COMIN=$GFSDIR + jobCard=$HOMEmdl/jobs/JGFSMOS_EXT_STN_PREP +# Define DATA and create directory + export DATA=$STMPROOT/qprod/gfsmos_extprep_${cyc} + export logfile=$dailylog/$job.out + export out_dir=$dailylog + + export NTASK=2 + export PTILE=2 + export OMP_NUM_THREADS=1 + +# bsub -J $job \ +# -o $logfile \ +# -q $QUEUE \ +# -W 2:00 \ +# -M 2500 \ +# -P MDLST-T2O \ +# -extsched 'CRAYLINUX[]' \ +# -R '1*{select[craylinux && !vnode]} + 24*{select[craylinux && vnode]span[ptile=24]}' \ +# $jobCard + +#bsub -J ${job} \ +# -o $logfile \ +# -q ${QUEUE} \ +# -n $NTASK \ +# -R "span[ptile=$PTILE]" \ +# -W 2:00 \ +# -P $ACCOUNT \ +# $jobCard + +# HERA (Slurm) +#sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=4g -t 00:10:00 -o $logfile $jobCard +sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=4g -t 01:00:00 -o $logfile $jobCard 1> temp +JGFSMOS_EXT_STN_PREP_JOBID=$(cat temp | sed 's/[A-Za-z ]//g') + +fi #end for skipprep + +# Skip EXT_FORECAST for 06/18 +if [ $cyc -eq 00 -o $cyc -eq 12 ]; then +######################################################################## +# JGFSMOS_EXT_FORECAST +######################################################################## +#if [[ ! -d /gpfs/dell1/nco/ops/com/mos/prod/hry_mos.$PDY ]]; then +# export ROTATE=/gpfs/dell2/mdl/mdlstat/noscrub/rotate +# #export COMINhry_mos=$PTMPROOT/hourly.$PDY +# export COMINhry_mos=/scratch1/NCEPDEV/mdl/Michael.N.Baker/hry/hry_mos.$PDY +# if [[ ! -d $COMINhry_mos ]]; then +# mkdir -p $COMINhry_mos +# fi +# \cp $ROTATE/hry/${PDY}03 $COMINhry_mos/sfctbl.03 +# \cp $ROTATE/hry/${PDY}09 $COMINhry_mos/sfctbl.09 +# \cp $ROTATE/hry/${PDY}15 $COMINhry_mos/sfctbl.15 +# \cp $ROTATE/hry/${PDY}21 $COMINhry_mos/sfctbl.21 +#fi +export COMINhry_mos=/scratch1/NCEPDEV/mdl/Michael.N.Baker/hry/hry_mos.$PDY + +# Change COMIN to get files from user's PTMP "qprod" area +export COMIN=$COMOUT + +export job=gfsmos_extfcst_${cyc}_${pid} +jobCard=$HOMEmdl/jobs/JGFSMOS_EXT_STN_FORECAST +export DATA=$STMPROOT/qprod/gfsmos_extfcst_${cyc} +export logfile=$dailylog/$job.out +export out_dir=$dailylog +# Set dependencies +if [[ "$skipprep" != "y" && "$range" == "both" ]]; then + #ORIG deps="done(gfsmos_extprep_${cyc}_${pid}) && done(gfsmos_fcst_${cyc}_${pid})" + deps="afterany:${JGFSMOS_EXT_STN_PREP_JOBID},${JGFSMOS_STN_FORECAST_JOBID}" +elif [[ "$skipprep" != "y" && "$range" == "ext" ]]; then + #ORIG deps="done(gfsmos_extprep_${cyc}_${pid})" + deps="afterany:$JGFSMOS_EXT_STN_PREP_JOBID" +elif [[ "$skipprep" == "y" && "$range" == "ext" ]]; then + deps="" +else + #ORIG deps="done(gfsmos_fcst_${cyc}_${pid})" + deps="afterany:$JGFSMOS_STN_FORECAST_JOBID" +fi + +if [[ $stnonly != "Y" ]]; then + export NTASK=10 + export PTILE=1 + export OMP_NUM_THREADS=1 +else + export NTASK=3 + export PTILE=3 + export OMP_NUM_THREADS=1 +fi + +#bsub -J ${job} -oo $logfile -q $QUEUE -P MDLST-T2O \ +# -W 1:00 -M 2000 \ +# -extsched 'CRAYLINUX[]' \ +# -R '1*{select[craylinux && !vnode]} + 24*{select[craylinux && vnode]span[ptile=24]}' \ +# -w "$deps" \ +# $jobCard + +#bsub -J ${job} \ +# -o $logfile \ +# -q ${QUEUE} \ +# -x \ +# -n $NTASK \ +# -R "span[ptile=$PTILE]" \ +# -W 1:00 \ +# -P $ACCOUNT \ +# -w "$deps" \ +# $jobCard + +# HERA (Slurm) +#sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=4g -t 01:00:00 -o $logfile $jobCard +sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=4g -t 02:00:00 -o $logfile --dependency=$deps $jobCard 1> temp +JGFSMOS_EXT_STN_FORECAST_JOBID=$(cat temp | sed 's/[A-Za-z ]//g') + +fi #endif for skipping 06/18 ext_fcst +######################################################################## +# JGFSMOS_EXT_PRDGEN +######################################################################## +jobCard=$HOMEmdl/jobs/JGFSMOS_EXT_STN_PRDGEN +export job=gfsmos_extprdgen_${cyc}_${pid} +# Change COMIN back to COMOUT +export COMIN=$COMOUT +# Define DATA and create directory +export DATA=$STMPROOT/qprod/gfsmos_extprdgen_${cyc} +export logfile=$dailylog/$job.out +export out_dir=$dailylog +# Set dependencies +if [[ "$cyc" == "06" || "$cyc" == "18" ]]; then + #ORIG deps="done(gfsmos_prdgen_${cyc}_${pid})" + deps="afterany:$JGFSMOS_STN_PRDGEN_JOBID" +elif [[ "$range" == "both" ]]; then + #ORIG deps="done(gfsmos_extfcst_${cyc}_${pid}) && done(gfsmos_prdgen_${cyc}_${pid})" + deps="afterany:${JGFSMOS_EXT_STN_FORECAST_JOBID},${JGFSMOS_STN_PRDGEN_JOBID}" +else + #ORIG deps="done(gfsmos_extfcst_${cyc}_${pid})" + deps="afterany:$JGFSMOS_EXT_STN_FORECAST" +fi +# Set Nodes +if [ $cyc -eq 00 -o $cyc -eq 12 ] && [[ "$stnonly" != "Y" ]]; then + #nodes='1*{select[craylinux && !vnode]} + 168*{select[craylinux && vnode]span[ptile=24]}' + export NTASK=1 + export PTILE=1 + #ORIG export OMP_NUM_THREADS=20 + export OMP_NUM_THREADS=1 +else + #nodes='1*{select[craylinux && !vnode]} + 24*{select[craylinux && vnode]span[ptile=24]}' + export NTASK=1 + export PTILE=1 + export OMP_NUM_THREADS=1 +fi + + +#bsub -J ${job} -oo $logfile -q ${QUEUE} -P MDLST-T2O \ +# -W 1:00 -M 2000 \ +# -extsched 'CRAYLINUX[]' \ +# -R "$nodes" \ +# -w "$deps" \ +# $jobCard + +#bsub -J ${job} \ +# -o $logfile \ +# -q ${QUEUE} \ +# -x \ +# -n $NTASK \ +# -R "span[ptile=$PTILE]" \ +# -W 1:00 \ +# -P $ACCOUNT \ +# -w "$deps" \ +# $jobCard + +# HERA (Slurm) +#sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=4g -t 01:00:00 -o $logfile $jobCard +#sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --mem-per-cpu=4g -t 02:00:00 -o $logfile --dependency=$deps $jobCard #NOTE: No need to redirect stdout. +sbatch -A $ACCOUNT -J $job -q batch -n $NTASK --ntasks-per-node=$PTILE --exclusive -t 02:00:00 -o $logfile --dependency=$deps $jobCard #NOTE: No need to redirect stdout. + +# Exit here with $cyc is 06 or 18 +if [ $cyc -eq 06 -o $cyc -eq 18 ]; then + exit 0 +fi +######################################################################## +# JGFSMOS_WX_EXT_PRDGEN +######################################################################## +#jobCard=$HOMEmdl/jobs/JGFSMOS_WX_EXT_PRDGEN +#export job=gfsmos_wx_extprdgen_${cyc}_${pid} +## Change COMIN back to COMOUT +#export COMIN=$COMOUT +## Define DATA and create directory +#export DATA=$STMPROOT/qprod/gfsmos_wx_extprdgen_${cyc} +#export logfile=$dailylog/$job.out +#export out_dir=$dailylog +## Set dependencies +#if [[ "$range" == "both" ]]; then +# deps="done(gfsmos_extprdgen_${cyc}_${pid}) && done(gfsmos_wx_prdgen_${cyc}_${pid})" +#else +# deps="done(gfsmos_extprdgen_${cyc}_${pid})" +#fi +# +#export NTASK=1 +#export PTILE=1 +#export OMP_NUM_THREADS=20 + +##bsub -J ${job} -oo $logfile -q ${QUEUE} -P MDLST-T2O \ +## -W 1:00 -M 1000 \ +## -extsched 'CRAYLINUX[]' \ +## -R '1*{select[craylinux && !vnode]} + 48*{select[craylinux && vnode]span[ptile=24]}' \ +## -w "$deps" \ +## $jobCard + +#bsub -J ${job} \ +# -o $logfile \ +# -q ${QUEUE} -x \ +# -n $NTASK \ +# -R "span[ptile=$PTILE]" \ +# -W 1:00 \ +# -M 3000 \ +# -P $ACCOUNT \ +# -w "$deps" \ +# $jobCard + +fi #endif for ext/both + +#--------------------- +export SENDCOM=$SENDCOM_SAVE + +exit 0 diff --git a/scripts/vsdbjob_submit.sh b/scripts/vsdbjob_submit.sh new file mode 100755 index 0000000000..97b03a8069 --- /dev/null +++ b/scripts/vsdbjob_submit.sh @@ -0,0 +1,63 @@ +#!/bin/ksh +set -eaux + +export DATAVSDB=$RUNDIR/$CDATE/$CDUMP/vsdb +mkdir -p $DATAVSDB +cd $DATAVSDB + +export VSDBSH=${1:-$VSDBSH} +export xdate=${2:-$xdate} +export vlength=${3:-$vlength} +export cyc=${4:-$cyc} +export PSLOT=${5:-$PSLOT} +export CDATE=${6:-$CDATE} +export CDUMP=${7:-$CDUMP} +export gfs_cyc=${8:-$gfs_cyc} +export rain_bucket=${9:-$rain_bucket} +export machine=${10:-$machine} + +PDY=$(echo $CDATE | cut -c1-8) +cyc=$(echo $CDATE | cut -c9-10) + +export ACCOUNT=${ACCOUNT:-GFS-DEV} +export CUE2RUN=${CUE2RUN:-dev} +export KEEPDATA=${KEEPDATA:-NO} + +# Submit VSDBSH as separate job on WCOSS_DELL_P3 +if [ $machine = "WCOSS_DELL_P3" ]; then + + rm -rf submit.sh + +cat < submit.sh +#!/bin/ksh +#BSUB -o $ROTDIR/logs/$CDATE/vsdbjob.log +#BSUB -J vsdbjob.$PSLOT.$CDATE +#BSUB -P $ACCOUNT +#BSUB -n 28 +#BSUB -R span[ptile=28] +#BSUB -R affinity[core(1)] +#BSUB -W ${TIMELIM:-06:00} +#BSUB -q $QUEUE + +set -euax + +export OMP_NUM_THREADS=1 +printenv + +$VSDBSH $xdate $xdate $vlength $cyc $PSLOT $CDATE $CDUMP $gfs_cyc $rain_bucket + +EOF + + chmod 755 submit.sh + bsub < submit.sh + + +# Directly execute VSDBSH on other machines +else + + $VSDBSH $xdate $xdate $vlength $cyc $PSLOT $CDATE $CDUMP $gfs_cyc $rain_bucket + +fi + +exit + diff --git a/sorc/build_all.sh b/sorc/build_all.sh index 1df9a7b86e..ebcef19156 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -1,6 +1,8 @@ #!/bin/sh -set -eu +set +x #------------------------------------ +# Exception handling is now included. +# # USER DEFINED STUFF: # # USE_PREINST_LIBS: set to "true" to use preinstalled libraries. @@ -26,12 +28,24 @@ if [ ! -d "../exec" ]; then mkdir ../exec fi +#------------------------------------ +# GET MACHINE +#------------------------------------ +target="" +source ./machine-setup.sh > /dev/null 2>&1 + #------------------------------------ # INCLUDE PARTIAL BUILD #------------------------------------ . ./partial_build.sh +#------------------------------------ +# Exception Handling Init +#------------------------------------ +ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} +err=0 + #------------------------------------ # build libraries first #------------------------------------ @@ -47,6 +61,12 @@ echo " .... Library build not currently supported .... " $Build_fv3gfs && { echo " .... Building fv3 .... " ./build_fv3.sh > $logs_dir/build_fv3.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building fv3." + echo "The log file is in $logs_dir/build_fv3.log" +fi +((err+=$rc)) } #------------------------------------ @@ -55,6 +75,12 @@ echo " .... Building fv3 .... " $Build_gsi && { echo " .... Building gsi .... " ./build_gsi.sh > $logs_dir/build_gsi.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building gsi." + echo "The log file is in $logs_dir/build_gsi.log" +fi +((err+=$rc)) } #------------------------------------ @@ -63,54 +89,70 @@ echo " .... Building gsi .... " $Build_ncep_post && { echo " .... Building ncep_post .... " ./build_ncep_post.sh > $logs_dir/build_ncep_post.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building ncep_post." + echo "The log file is in $logs_dir/build_ncep_post.log" +fi +((err+=$rc)) } #------------------------------------ -# build gfs_wafs -#------------------------------------ -$Build_gfs_wafs && { -echo " .... Building gfs_wafs .... " -./build_gfs_wafs.sh > $logs_dir/build_gfs_wafs.log 2>&1 -} - -#------------------------------------ -# build NEMS util -#------------------------------------ -$Build_nems_util && { -echo " .... Building NEMS util .... " -./build_nems_util.sh > $logs_dir/build_NEMS.log 2>&1 -} - -#------------------------------------ -# build chgres +# build ufs_utils #------------------------------------ -$Build_chgres && { -echo " .... Building chgres .... " -./build_chgres.sh > $logs_dir/build_chgres.log 2>&1 +$Build_ufs_utils && { +echo " .... Building ufs_utils .... " +./build_ufs_utils.sh > $logs_dir/build_ufs_utils.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building ufs_utils." + echo "The log file is in $logs_dir/build_ufs_utils.log" +fi +((err+=$rc)) } #------------------------------------ -# build sfcanl_nsttfchg +# build gldas #------------------------------------ -$Build_sfcanl_nsttfchg && { -echo " .... Building gaussian_sfcanl and nst_tf_chg .... " -./build_sfcanl_nsttfchg.sh > $logs_dir/build_sfcanl_nsttfchg.log 2>&1 +$Build_gldas && { +echo " .... Building gldas .... " +./build_gldas.sh > $logs_dir/build_gldas.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building gldas." + echo "The log file is in $logs_dir/build_gldas.log" +fi +((err+=$rc)) } #------------------------------------ -# build orog +# build gfs_wafs - optional checkout #------------------------------------ -$Build_orog && { -echo " .... Building orog .... " -./build_orog.sh > $logs_dir/build_orog.log 2>&1 +if [ -d gfs_wafs.fd ]; then + $Build_gfs_wafs && { + echo " .... Building gfs_wafs .... " + ./build_gfs_wafs.sh > $logs_dir/build_gfs_wafs.log 2>&1 + rc=$? + if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building gfs_wafs." + echo "The log file is in $logs_dir/build_gfs_wafs.log" + fi + ((err+=$rc)) } +fi #------------------------------------ -# build cycle +# build gaussian_sfcanl #------------------------------------ -$Build_cycle && { -echo " .... Building cycle .... " -./build_cycle.sh > $logs_dir/build_cycle.log 2>&1 +$Build_gaussian_sfcanl && { +echo " .... Building gaussian_sfcanl .... " +./build_gaussian_sfcanl.sh > $logs_dir/build_gaussian_sfcanl.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building gaussian_sfcanl." + echo "The log file is in $logs_dir/build_gaussian_sfcanl.log" +fi +((err+=$rc)) } #------------------------------------ @@ -119,22 +161,40 @@ echo " .... Building cycle .... " $Build_enkf_chgres_recenter && { echo " .... Building enkf_chgres_recenter .... " ./build_enkf_chgres_recenter.sh > $logs_dir/build_enkf_chgres_recenter.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building enkf_chgres_recenter." + echo "The log file is in $logs_dir/build_enkf_chgres_recenter.log" +fi +((err+=$rc)) } #------------------------------------ -# build tropcy_NEMS +# build enkf_chgres_recenter_nc #------------------------------------ -$Build_tropcy && { -echo " .... Building tropcy_NEMS .... " -./build_tropcy_NEMS.sh > $logs_dir/build_tropcy_NEMS.log 2>&1 +$Build_enkf_chgres_recenter_nc && { +echo " .... Building enkf_chgres_recenter_nc .... " +./build_enkf_chgres_recenter_nc.sh > $logs_dir/build_enkf_chgres_recenter_nc.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building enkf_chgres_recenter_nc." + echo "The log file is in $logs_dir/build_enkf_chgres_recenter_nc.log" +fi +((err+=$rc)) } #------------------------------------ -# build gdas +# build tropcy_NEMS #------------------------------------ -$Build_gdas && { -echo " .... Building gdas .... " -./build_gdas.sh > $logs_dir/build_gdas.log 2>&1 +$Build_tropcy && { +echo " .... Building tropcy_NEMS .... " +./build_tropcy_NEMS.sh > $logs_dir/build_tropcy_NEMS.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building tropcy_NEMS." + echo "The log file is in $logs_dir/build_tropcy_NEMS.log" +fi +((err+=$rc)) } #------------------------------------ @@ -143,22 +203,12 @@ echo " .... Building gdas .... " $Build_gfs_fbwndgfs && { echo " .... Building gfs_fbwndgfs .... " ./build_gfs_fbwndgfs.sh > $logs_dir/build_gfs_fbwndgfs.log 2>&1 -} - -#------------------------------------ -# build gfs_overpdtg2 -#------------------------------------ -$Build_gfs_overpdtg2 && { -echo " .... Building gfs_overpdtg2 .... " -./build_gfs_overpdtg2.sh > $logs_dir/build_gfs_overpdtg2.log 2>&1 -} - -#------------------------------------ -# build gfs_wintemv -#------------------------------------ -$Build_gfs_wintemv && { -echo " .... Building gfs_wintemv .... " -./build_gfs_wintemv.sh > $logs_dir/build_gfs_wintemv.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building gfs_fbwndgfs." + echo "The log file is in $logs_dir/build_gfs_fbwndgfs.log" +fi +((err+=$rc)) } #------------------------------------ @@ -167,22 +217,12 @@ echo " .... Building gfs_wintemv .... " $Build_gfs_bufrsnd && { echo " .... Building gfs_bufrsnd .... " ./build_gfs_bufrsnd.sh > $logs_dir/build_gfs_bufrsnd.log 2>&1 -} - -#------------------------------------ -# build emcsfc -#------------------------------------ -$Build_emcsfc && { -echo " .... Building emcsfc .... " -./build_emcsfc.sh > $logs_dir/build_emcsfc.log 2>&1 -} - -#------------------------------------ -# build fre-nctools -#------------------------------------ -$Build_nctools && { -echo " .... Building fre-nctools .... " -./build_fre-nctools.sh > $logs_dir/build_fre-nctools.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building gfs_bufrsnd." + echo "The log file is in $logs_dir/build_gfs_bufrsnd.log" +fi +((err+=$rc)) } #------------------------------------ @@ -191,6 +231,12 @@ echo " .... Building fre-nctools .... " $Build_fv3nc2nemsio && { echo " .... Building fv3nc2nemsio .... " ./build_fv3nc2nemsio.sh > $logs_dir/build_fv3nc2nemsio.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building fv3nc2nemsio." + echo "The log file is in $logs_dir/build_fv3nc2nemsio.log" +fi +((err+=$rc)) } #------------------------------------ @@ -199,33 +245,36 @@ echo " .... Building fv3nc2nemsio .... " $Build_regrid_nemsio && { echo " .... Building regrid_nemsio .... " ./build_regrid_nemsio.sh > $logs_dir/build_regrid_nemsio.log 2>&1 +rc=$? +if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building regrid_nemsio." + echo "The log file is in $logs_dir/build_regrid_nemsio.log" +fi +((err+=$rc)) } #------------------------------------ # build gfs_util #------------------------------------ -$Build_gfs_util && { -echo " .... Building gfs_util .... " -./build_gfs_util.sh > $logs_dir/build_gfs_util.log 2>&1 -} - -#------------------------------------ -# build prod_util -#------------------------------------ -$Build_prod_util && { -echo " .... prod_util build not currently supported .... " -#echo " .... Building prod_util .... " -#./build_prod_util.sh > $logs_dir/build_prod_util.log 2>&1 -} +# Only build on WCOSS +if [ $target = wcoss -o $target = wcoss_cray -o $target = wcoss_dell_p3 ]; then + $Build_gfs_util && { + echo " .... Building gfs_util .... " + ./build_gfs_util.sh > $logs_dir/build_gfs_util.log 2>&1 + rc=$? + if [[ $rc -ne 0 ]] ; then + echo "Fatal error in building gfs_util." + echo "The log file is in $logs_dir/build_gfs_util.log" + fi + ((err+=$rc)) + } +fi #------------------------------------ -# build grib_util +# Exception Handling #------------------------------------ -$Build_grib_util && { -echo " .... grib_util build not currently supported .... " -#echo " .... Building grib_util .... " -#./build_grib_util.sh > $logs_dir/build_grib_util.log 2>&1 -} +[[ $err -ne 0 ]] && echo "FATAL BUILD ERROR: Please check the log file for detail, ABORT!" +$ERRSCRIPT || exit $err echo;echo " .... Build system finished .... " diff --git a/sorc/build_chgres.sh b/sorc/build_chgres.sh deleted file mode 100755 index 210ebae36e..0000000000 --- a/sorc/build_chgres.sh +++ /dev/null @@ -1,59 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/fv3gfs/global_chgres.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/fv3gfs/global_chgres.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/fv3gfs/global_chgres.$target > /dev/null 2>&1 - fi -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -# -# --- Chgres part -# -cd global_chgres.fd - -export FCMP=${FCMP:-ifort} -export FCMP95=$FCMP - -export FFLAGSM="-i4 -O3 -r8 -convert big_endian -fp-model precise" -export RECURS= -export LDFLAGSM=${LDFLAGSM:-"-openmp -auto"} -export OMPFLAGM=${OMPFLAGM:-"-openmp -auto"} - -export INCS="-I${SIGIO_INC4} -I${SFCIO_INC4} -I${LANDSFCUTIL_INCd} \ - -I${NEMSIO_INC} -I${NEMSIOGFS_INC} -I${GFSIO_INC4} -I${IP_INCd} ${NETCDF_INCLUDE}" - -export LIBSM="${GFSIO_LIB4} \ - ${NEMSIOGFS_LIB} \ - ${NEMSIO_LIB} \ - ${SIGIO_LIB4} \ - ${SFCIO_LIB4} \ - ${LANDSFCUTIL_LIBd} \ - ${IP_LIBd} \ - ${SP_LIBd} \ - ${W3EMC_LIBd} \ - ${W3NCO_LIBd} \ - ${BACIO_LIB4} \ - ${NETCDF_LDFLAGS_F}" - -make -f Makefile clobber -make -f Makefile -make -f Makefile install -make -f Makefile clobber - -exit diff --git a/sorc/build_cycle.sh b/sorc/build_cycle.sh deleted file mode 100755 index b721bf8405..0000000000 --- a/sorc/build_cycle.sh +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/fv3gfs/global_cycle.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/fv3gfs/global_cycle.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/fv3gfs/global_cycle.$target > /dev/null 2>&1 - fi -fi -module list - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd ${cwd}/global_cycle.fd -./makefile.sh diff --git a/sorc/build_emcsfc.sh b/sorc/build_emcsfc.sh deleted file mode 100755 index c2c600b126..0000000000 --- a/sorc/build_emcsfc.sh +++ /dev/null @@ -1,32 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -for prog in emcsfc_ice_blend emcsfc_snow2mdl -do - module purge - USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} - if [ $USE_PREINST_LIBS = true ]; then - source ../modulefiles/modulefile.global_${prog}.${target} > /dev/null 2>&1 - else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/modulefile.global_${prog}.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/modulefile.global_${prog}.${target} > /dev/null 2>&1 - fi - fi - module list - cd ${cwd}/${prog}.fd - ./make.sh - cd $cwd -done - -echo; echo DONE BUILDING EMCSFC PROGRAMS diff --git a/sorc/build_enkf_chgres_recenter_nc.sh b/sorc/build_enkf_chgres_recenter_nc.sh new file mode 100755 index 0000000000..9835793390 --- /dev/null +++ b/sorc/build_enkf_chgres_recenter_nc.sh @@ -0,0 +1,43 @@ +#!/bin/sh +set -eux + +source ./machine-setup.sh > /dev/null 2>&1 +cwd=`pwd` + +USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} +if [ $USE_PREINST_LIBS = true ]; then + export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles + source ../modulefiles/fv3gfs/enkf_chgres_recenter_nc.$target > /dev/null 2>&1 +else + export MOD_PATH=${cwd}/lib/modulefiles + if [ $target = wcoss_cray ]; then + source ../modulefiles/fv3gfs/enkf_chgres_recenter_nc.${target}_userlib > /dev/null 2>&1 + else + source ../modulefiles/fv3gfs/enkf_chgres_recenter_nc.$target > /dev/null 2>&1 + fi +fi +module list + +# Check final exec folder exists +if [ ! -d "../exec" ]; then + mkdir ../exec +fi + +cd ${cwd}/enkf_chgres_recenter_nc.fd + +export FFLAGS="-O3 -qopenmp -traceback -fp-model precise" +export FV3GFS_NCIO_LIB="${cwd}/gsi.fd/build/lib/libfv3gfs_ncio.a" +export FV3GFS_NCIO_INC="${cwd}/gsi.fd/build/include" + +if [ ! -f $FV3GFS_NCIO_LIB ]; then + echo "BUILD ERROR: missing GSI library file" + echo "Missing file: $FV3GFS_NCIO_LIB" + echo "Please build the GSI first (build_gsi.sh)" + echo "EXITING..." + exit 1 +fi + +make clean +make +make install +make clean diff --git a/sorc/build_fre-nctools.sh b/sorc/build_fre-nctools.sh deleted file mode 100755 index 718adad422..0000000000 --- a/sorc/build_fre-nctools.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -system_site=$target -if [ $system_site = "wcoss_cray" ]; then - system_site=cray -fi - -cwd=`pwd` - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd fre-nctools.fd/ - -home_dir=`pwd`/../.. -srcDir=`pwd` - -#Build in a temporary directory. -tmpDir=`pwd`/build -mkdir -p $tmpDir -cd $tmpDir - -set +x -echo "////////////////////////////////////////////////////////////////////////////////" -echo "//////////////////////////////////////////////////////// Environment Settings //" -echo "////////////////////////////////////////////////////////////////////////////////" -set -x - -#Original setup is for cray so for now require input only on a different platform. - -set +x -module list -module use ../../../modulefiles/fv3gfs > /dev/null 2>&1 -module load fre-nctools.${target} > /dev/null 2>&1 -module list -set -x - -MPICH_UNEX_BUFFER_SIZE=256m -MPICH_MAX_SHORT_MSG_SIZE=64000 -MPICH_PTL_UNEX_EVENTS=160k -KMP_STACKSIZE=2g -F_UFMTENDIAN=big - -if [ $system_site = "cray" ]; then - HDF5=${HDF5_DIR} - NETCDF=${NETCDF_DIR} -fi - -alias make="make HDF5_HOME=${HDF5} NETCDF_HOME=${NETCDF} NC_BLKSZ=64K SITE=${system_site} -f fre-nctools.mk" - -set +x -echo "////////////////////////////////////////////////////////////////////////////////" -echo "//////////////////////////////////////////////////////////// Directory Layout //" -echo "////////////////////////////////////////////////////////////////////////////////" -set -x - -mkdir -p share/src -cp -r $srcDir/shared share/src/. -cp -r $srcDir/tools share/src/. - -echo "Done..." - -for freNCToolsDir in tools/make_hgrid tools/make_solo_mosaic tools/fregrid -do - set +x - echo "////////////////////////////////////////////////////////////////////////////////" - echo "////////////////////////////////////////////////////////////////// $freNCToolsDir:t" - echo "////////////////////////////////////////////////////////////////////////////////" - set -x - - cd share/src/$freNCToolsDir - cp fre-nctools.mk_${system_site} fre-nctools.mk - targets=` grep "TARGETS :=" fre-nctools.mk | cut -f2 -d'=' ` - echo "Making $targets" - - make clean - make - - for Target in $targets - do - if [ -f $Target ]; then - mv $Target $home_dir/exec - else - echo "Error during '$Target' build" - exit 1 - fi - done - make clean - cd $tmpDir -done - -set +x -echo "////////////////////////////////////////////////////////////////////////////////" -echo "///////////////////////////////////////////////////////////////// filter_topo //" -echo "////////////////////////////////////////////////////////////////////////////////" -set -x - -cd ../tools/filter_topo -./make.csh_${target} -mv filter_topo $home_dir/exec/. - -echo "\n////////// CLEANING UP TEMPORARY BUILD AREA //////////\n" -rm -fr $tmpDir - -set +x -echo "///////////////////////////////////////////////////////////////////////////" -echo "///////////////////////////////////////////////////////////////// shave //" -echo "///////////////////////////////////////////////////////////////////////////" -set -x - -cd $srcDir/tools/shave.fd -./build_shave $system_site - -exit diff --git a/sorc/build_fv3.sh b/sorc/build_fv3.sh index 0d36490805..5659b53316 100755 --- a/sorc/build_fv3.sh +++ b/sorc/build_fv3.sh @@ -16,11 +16,10 @@ if [ ! -d "../exec" ]; then mkdir ../exec fi -if [ $target = theia ]; then target=theia.intel ; fi +if [ $target = hera ]; then target=hera.intel ; fi cd fv3gfs.fd/ FV3=$( pwd -P )/FV3 cd tests/ -./compile.sh "$FV3" "$target" "NCEP64LEV=Y HYDRO=N 32BIT=Y" 1 -##mv -f fv3_1.exe ../NEMS/exe/fv3_gfs_nh.prod.32bit.x +./compile.sh "$FV3" "$target" "WW3=Y 32BIT=Y" 1 mv -f fv3_1.exe ../NEMS/exe/global_fv3gfs.x diff --git a/sorc/build_fv3nc2nemsio.sh b/sorc/build_fv3nc2nemsio.sh index 43bdfaa201..14667daa2e 100755 --- a/sorc/build_fv3nc2nemsio.sh +++ b/sorc/build_fv3nc2nemsio.sh @@ -32,7 +32,7 @@ export NETCDF_INCLUDE=$INCnetcdf $FCMP $FFLAGS -c kinds.f90 $FCMP $FFLAGS -c constants.f90 $FCMP $FFLAGS $NETCDF_INCLUDE -I $NEMSIO_INC -c fv3_module.f90 -$FCMP $FFLAGS $NETCDF_INCLUDE -I $NEMSIO_INC -I. -o fv3nc2nemsio.x fv3_main.f90 fv3_module.o $NETCDF_LDFLAGS $NEMSIO_LIB $BACIO_LIB4 $W3NCO_LIBd +$FCMP $FFLAGS $NETCDF_INCLUDE -I $NEMSIO_INC -I. -o fv3nc2nemsio.x fv3_main.f90 fv3_module.o $NETCDF_LDFLAGS $NEMSIO_LIB $BACIO_LIB4 $W3NCO_LIBd -L$HDF5/lib -lhdf5_hl -lhdf5 -lz rm -f *.o *.mod diff --git a/sorc/build_gaussian_sfcanl.sh b/sorc/build_gaussian_sfcanl.sh new file mode 100755 index 0000000000..bfb0826edd --- /dev/null +++ b/sorc/build_gaussian_sfcanl.sh @@ -0,0 +1,22 @@ +#! /usr/bin/env bash +set -eux + +source ./machine-setup.sh > /dev/null 2>&1 +cwd=`pwd` + +USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} +if [ $USE_PREINST_LIBS = true ]; then + export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles + source ../modulefiles/fv3gfs/gaussian_sfcanl.$target > /dev/null 2>&1 +else + export MOD_PATH=${cwd}/lib/modulefiles + if [ $target = wcoss_cray ]; then + source ../modulefiles/fv3gfs/gaussian_sfcanl.${target}_userlib > /dev/null 2>&1 + else + source ../modulefiles/fv3gfs/gaussian_sfcanl.$target > /dev/null 2>&1 + fi +fi +module list + +cd ${cwd}/gaussian_sfcanl.fd +./makefile.sh diff --git a/sorc/build_gdas.sh b/sorc/build_gdas.sh deleted file mode 100755 index 7b7b791f3d..0000000000 --- a/sorc/build_gdas.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gdas_gridbull.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gdas_gridbull.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gdas_gridbull.$target > /dev/null 2>&1 - fi -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -### gridbull - cd $cwd/gridbull.fd - make -f makefile.$target - make -f makefile.$target clean - mv gridbull ../../exec/ - -### navybull - cd $cwd - source $cwd/machine-setup.sh > /dev/null 2>&1 - if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gdas_navybull.$target > /dev/null 2>&1 - else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gdas_navybull.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gdas_navybull.$target > /dev/null 2>&1 - fi - fi - cd $cwd/navybull.fd - make -f makefile.$target - make -f makefile.$target clean - mv navybull ../../exec/ - -### gdas_trpsfcmv - cd $cwd - source $cwd/machine-setup.sh > /dev/null 2>&1 - if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gdas_trpsfcmv.$target > /dev/null 2>&1 - else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gdas_trpsfcmv.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gdas_trpsfcmv.$target > /dev/null 2>&1 - fi - fi - cd $cwd/gdas_trpsfcmv.fd - make -f makefile.$target - make -f makefile.$target clean - mv gdas_trpsfcmv ../../exec/ - -exit diff --git a/sorc/build_gfs_bufrsnd.sh b/sorc/build_gfs_bufrsnd.sh index c8d1a2c7e3..70a3b4295b 100755 --- a/sorc/build_gfs_bufrsnd.sh +++ b/sorc/build_gfs_bufrsnd.sh @@ -1,4 +1,4 @@ -#! /usr/bin/env bash +#!/bin/sh set -eux source ./machine-setup.sh > /dev/null 2>&1 @@ -6,23 +6,25 @@ cwd=`pwd` USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gfs_bufr.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gfs_bufr.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gfs_bufr.$target > /dev/null 2>&1 - fi -fi -module list + source ../modulefiles/gfs_bufr.$target > /dev/null 2>&1 + else + export MOD_PATH=${cwd}/lib/modulefiles + if [ $target = wcoss_cray ]; then + source ../modulefiles/gfs_bufr.${target}_userlib > /dev/null 2>&1 + else + source ../modulefiles/gfs_bufr.$target > /dev/null 2>&1 + fi + fi # Check final exec folder exists if [ ! -d "../exec" ]; then mkdir ../exec fi +if [ -f gfs_bufr.fd/getncdimlen ]; then + cp gfs_bufr.fd/getncdimlen ../exec + fi +echo "compiling ...." # Compile codes under /sorc compile1='gfs_bufr tocsbufr' @@ -33,3 +35,5 @@ do make -f makefile_module clean make -f makefile_module done + +echo "Build complete" diff --git a/sorc/build_gfs_fbwndgfs.sh b/sorc/build_gfs_fbwndgfs.sh index b92125ad2f..9d5a2888f0 100755 --- a/sorc/build_gfs_fbwndgfs.sh +++ b/sorc/build_gfs_fbwndgfs.sh @@ -24,6 +24,6 @@ if [ ! -d "../exec" ]; then fi cd fbwndgfs.fd -make -f makefile.$target -make -f makefile.$target clean +make -f makefile.GENERIC +make -f makefile.GENERIC clean mv fbwndgfs ../../exec/ diff --git a/sorc/build_gfs_overpdtg2.sh b/sorc/build_gfs_overpdtg2.sh deleted file mode 100755 index e222b34a90..0000000000 --- a/sorc/build_gfs_overpdtg2.sh +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gfs_overpdtg2.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gfs_overpdtg2.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gfs_overpdtg2.$target > /dev/null 2>&1 - fi -fi -module list - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd overpdtg2.fd -make -f makefile.$target -make -f makefile.$target install -make -f makefile.$target clean -mv overpdtg2 ../../exec diff --git a/sorc/build_gfs_util.sh b/sorc/build_gfs_util.sh index 48bb267066..2ea60a59aa 100755 --- a/sorc/build_gfs_util.sh +++ b/sorc/build_gfs_util.sh @@ -7,7 +7,7 @@ export dir=` pwd ` cd ../util/sorc # Check for gfs_util folders exist -if [ ! -d "./faxmakrx.fd" ]; then +if [ ! -d "./mkgfsawps.fd" ]; then echo " " echo " GFS_UTIL folders DO NOT exist " echo " " diff --git a/sorc/build_gfs_wafs.sh b/sorc/build_gfs_wafs.sh index d68a59c325..ceff4eae67 100755 --- a/sorc/build_gfs_wafs.sh +++ b/sorc/build_gfs_wafs.sh @@ -16,11 +16,7 @@ if [ ! -d "../exec" ]; then mkdir ../exec fi -if [ $target = wcoss_dell_p3 ]; then - cd gfs_wafs.fd/sorc - sh build_wafs_dell.sh -else - echo "This version of wafs only works on Dell. exit" -fi +cd gfs_wafs.fd/sorc +sh build_wafs.sh exit diff --git a/sorc/build_gfs_wintemv.sh b/sorc/build_gfs_wintemv.sh deleted file mode 100755 index 128accb956..0000000000 --- a/sorc/build_gfs_wintemv.sh +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/gfs_wintemv.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/gfs_wintemv.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/gfs_wintemv.$target > /dev/null 2>&1 - fi -fi -module list - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd wintemv.fd -make -f makefile.$target -make -f makefile.$target install -make -f makefile.$target clean -mv wintemv ../../exec diff --git a/sorc/build_gldas.sh b/sorc/build_gldas.sh new file mode 100755 index 0000000000..e8162d3f4f --- /dev/null +++ b/sorc/build_gldas.sh @@ -0,0 +1,23 @@ +#! /usr/bin/env bash +set -eux + +source ./machine-setup.sh > /dev/null 2>&1 +cwd=`pwd` + +USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} +if [ $USE_PREINST_LIBS = true ]; then + export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles +else + export MOD_PATH=${cwd}/lib/modulefiles +fi + +# Check final exec folder exists +if [ ! -d "../exec" ]; then + mkdir ../exec +fi + +cd gldas.fd/sorc +./build_all_gldas.sh + +exit + diff --git a/sorc/build_grib_util.sh b/sorc/build_grib_util.sh deleted file mode 100755 index 6569cc22c0..0000000000 --- a/sorc/build_grib_util.sh +++ /dev/null @@ -1,88 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/modulefile.grib_util.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/modulefile.grib_util.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/modulefile.grib_util.$target > /dev/null 2>&1 - fi -fi - -# Move to util/sorc folder -cd ../util/sorc - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -for grib_util in cnvgrib copygb2 degrib2 grbindex tocgrib2 tocgrib \ - copygb grb2index grib2grib tocgrib2super -do - cd $grib_util.fd - make -f makefile_$target clean - make -f makefile_$target - make -f makefile_$target install - make -f makefile_$target clean - cd .. -done - -# -# compile wgrib -# -cd wgrib.cd - make -f makefile_$target clean - make -f makefile_$target - make -f makefile_$target install - make -f makefile_$target clean -cd .. - -# -# compile wgrib2 -# -cd $cwd -source ./machine-setup.sh > /dev/null 2>&1 - -if [ $target = wcoss_cray -a $USE_PREINST_LIBS != true ]; then - source ../modulefiles/modulefile.wgrib2.${target}_userlib > /dev/null 2>&1 -else - source ../modulefiles/modulefile.wgrib2.$target > /dev/null 2>&1 -fi - -# Move to util/sorc folder -cd ../util/sorc -cwd=`pwd` - -#---------------------------------------------------------------- -export CPPFLAGS="-ffast-math -O3 -DGFORTRAN" -cd $cwd/wgrib2.cd/gctpc/ -make -f makefile.gctpc clean -make -f makefile.gctpc -rm -f *.o -#---------------------------------------------------------------- -if [ $target = wcoss_cray ]; then - export FFLAGS=-O2 - cd $cwd/wgrib2.cd/iplib/ - make clean - make - rm -f *.o -fi -#---------------------------------------------------------------- -cd $cwd/wgrib2.cd -module list -make -f makefile_$target clean -make -f makefile_$target -make -f makefile_$target install -make -f makefile_$target clean -#---------------------------------------------------------------- - -exit diff --git a/sorc/build_libs.sh b/sorc/build_libs.sh index 1d50665fb7..31e158c1fc 100755 --- a/sorc/build_libs.sh +++ b/sorc/build_libs.sh @@ -18,8 +18,6 @@ rm -rf libpng* libjasper* lib*.a incmod/* modulefiles/* # --- hopefully this will lead to single version in the future if [ $target = wcoss_cray ]; then bufr_ver=v11.0.1 -elif [ $target = "theia" ]; then - bufr_ver=v10.2.5 fi # -------------------------------------------------------------- diff --git a/sorc/build_nems_util.sh b/sorc/build_nems_util.sh deleted file mode 100755 index 3e21af6436..0000000000 --- a/sorc/build_nems_util.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/module_nemsutil.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/module_nemsutil.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/module_nemsutil.$target > /dev/null 2>&1 - fi -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -for prog in nemsio_get.fd mkgfsnemsioctl.fd nemsio_cvt.fd nemsio_read.fd ;do - cd ${cwd}/${prog} - make -f makefile -done - -exit diff --git a/sorc/build_orog.sh b/sorc/build_orog.sh deleted file mode 100755 index d0c0ba5c73..0000000000 --- a/sorc/build_orog.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -##################################################################################### -# orog using module compile standard -# 10/10/2016 Fanglin.Yang@noaa.gov: Create module load version -##################################################################################### -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/fv3gfs/orog.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/fv3gfs/orog.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/fv3gfs/orog.$target > /dev/null 2>&1 - fi -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd ./orog.fd - -if [ $target = wcoss_cray ]; then - export LIBSM="${BACIO_LIB4} ${IP_LIBd} ${W3NCO_LIBd} ${SP_LIBd}" - export FFLAGSM="-O3 -g -traceback -r8 -convert big_endian -fp-model precise -assume byterecl" -elif [ $target = wcoss_dell_p3 ]; then - INCS="${NETCDF_INCLUDE}" - export LIBSM="${BACIO_LIB4} ${W3NCO_LIBd} ${IP_LIBd} ${SP_LIBd} ${NETCDF_LDFLAGS}" - export FFLAGSM="-O3 -g -traceback -r8 -convert big_endian -fp-model precise -assume byterecl ${INCS}" -elif [ $target = wcoss ]; then - INCS="${NETCDF_INCLUDE}" - export LIBSM="${BACIO_LIB4} ${W3NCO_LIBd} ${IP_LIBd} ${SP_LIBd} ${NETCDF_LDFLAGS}" - export FFLAGSM="-O3 -g -traceback -r8 -convert big_endian -fp-model precise -assume byterecl ${INCS}" -elif [ $target = theia ]; then - INCS="-I${NETCDF}/include" - export LIBSM="${BACIO_LIB4} ${W3NCO_LIBd} ${IP_LIBd} ${SP_LIBd} -L${NETCDF}/lib -lnetcdff -lnetcdf" - export FFLAGSM="-O3 -g -traceback -r8 -convert big_endian -fp-model precise -assume byterecl ${INCS}" -else - echo machine $target not found - exit 1 -fi - -export FCMP=${FCMP:-ifort} -export FCMP95=$FCMP - -export LDFLAGSM="-qopenmp -auto" -export OMPFLAGM="-qopenmp -auto" - -make -f Makefile clobber -make -f Makefile -make -f Makefile install -make -f Makefile clobber - -exit diff --git a/sorc/build_prod_util.sh b/sorc/build_prod_util.sh deleted file mode 100755 index e4220f7c26..0000000000 --- a/sorc/build_prod_util.sh +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/modulefile.prod_util.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/modulefile.prod_util.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/modulefile.prod_util.$target > /dev/null 2>&1 - fi -fi - -# Move to util/sorc folder -cd ../util/sorc - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -for prod_util in fsync_file -do - cd $prod_util.cd - make -f makefile clean - make -f makefile - make -f makefile install - make -f makefile clean - cd .. -done - -for prod_util in mdate ndate nhour -do - cd $prod_util.fd - make -f makefile clean - make -f makefile - make -f makefile install - make -f makefile clean - cd .. -done -exit diff --git a/sorc/build_regrid_nemsio.sh b/sorc/build_regrid_nemsio.sh index 80029694ff..894ab5c94b 100755 --- a/sorc/build_regrid_nemsio.sh +++ b/sorc/build_regrid_nemsio.sh @@ -33,10 +33,12 @@ export LDFLAGS="${FCFFLAGS}" export OPTIMIZATION="-O3 -xHOST" #-axCORE-AVX2,AVX -xSSE4.2 -O3 export DEBUG="-traceback -g" #-O0 #-C #-fp-stack-check #-check all -fp-stack-check -LIBnetcdf=`$NETCDF/bin/nf-config --flibs` -INCnetcdf=`$NETCDF/bin/nf-config --fflags` -export NETCDF_LDFLAGS=$LIBnetcdf -export NETCDF_INCLUDE=$INCnetcdf +if [ $target != hera ]; then + LIBnetcdf=`$NETCDF/bin/nf-config --flibs` + INCnetcdf=`$NETCDF/bin/nf-config --fflags` + export NETCDF_LDFLAGS=$LIBnetcdf + export NETCDF_INCLUDE=$INCnetcdf +fi make -f Makefile clean make -f Makefile diff --git a/sorc/build_sfcanl_nsttfchg.sh b/sorc/build_sfcanl_nsttfchg.sh deleted file mode 100755 index 0090efb4b6..0000000000 --- a/sorc/build_sfcanl_nsttfchg.sh +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -module purge -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles - source ../modulefiles/fv3gfs/gaussian_sfcanl.$target > /dev/null 2>&1 -else - export MOD_PATH=${cwd}/lib/modulefiles - if [ $target = wcoss_cray ]; then - source ../modulefiles/fv3gfs/gaussian_sfcanl.${target}_userlib > /dev/null 2>&1 - else - source ../modulefiles/fv3gfs/gaussian_sfcanl.$target > /dev/null 2>&1 - fi -fi -module list - -cd ${cwd}/gaussian_sfcanl.fd -./makefile.sh - -cd ${cwd}/nst_tf_chg.fd -./makefile.sh diff --git a/sorc/build_tropcy_NEMS.sh b/sorc/build_tropcy_NEMS.sh index 815b149784..e3f07dc68c 100755 --- a/sorc/build_tropcy_NEMS.sh +++ b/sorc/build_tropcy_NEMS.sh @@ -4,14 +4,12 @@ # EMC/NCEP/NOAA # # excutables created from build_tropcy.sh: -# 1) relocate_mv_nvortex.fd/relocate_mv_nvortex -# 2) vint.fd/vint.x -# 3) tave.fd/tave.x -# 4) syndat_qctropcy.fd/syndat_qctropcy -# 5) syndat_maksynrc.fd/syndat_maksynrc -# 6) syndat_getjtbul.fd/syndat_getjtbul -# 7) supvit.fd/supvit -# 8) gettrk.fd/gettrk +# 1) vint.fd/vint.x +# 2) tave.fd/tave.x +# 3) syndat_qctropcy.fd/syndat_qctropcy +# 4) syndat_maksynrc.fd/syndat_maksynrc +# 5) syndat_getjtbul.fd/syndat_getjtbul +# 6) supvit.fd/supvit # set -eux @@ -30,87 +28,23 @@ else export MOD_PATH=${cwd}/lib/modulefiles fi -if [ $target = wcoss ]; then - - targetx=wcoss - module load ../modulefiles/modulefile.storm_reloc_v6.0.0.$target - module list - - export LIBDIR=/nwprod/lib - export NEMSIOGFS_LIB=/global/save/Fanglin.Yang/svn/gfs/tags/nemsiogfs/intel/libnemsiogfs_v1.1.0.a - export NEMSIOGFS_INC=/global/save/Fanglin.Yang/svn/gfs/tags/nemsiogfs/intel/include/nemsiogfs_v1.1.0 - export NEMSIO_LIB=/global/save/emc.glopara/svn/nceplibs/nemsio/trunk/libnemsio.a - export NEMSIO_INC=/global/save/emc.glopara/svn/nceplibs/nemsio/trunk/incmod/nemsio - export W3EMC_LIBd=/global/save/Hang.Lei/test/w3emc/sorc/w3emc/v2.2.0/libw3emc_v2.2.0_d.a - - export LIBS_REL="${W3NCO_LIBd}" - - export FC=mpiifort - export FFLAGS="-openmp -O3 -g -traceback -r8 -I${NEMSIOGFS_INC} -I${NEMSIO_INC} -I${SIGIO_INC4}" - -elif [ $target = theia ]; then - - targetx=theia - source ../modulefiles/modulefile.storm_reloc_v6.0.0.$target > /dev/null 2>&1 - module list - - export LIBS_REL="${W3NCO_LIBd}" - - export FC=mpiifort - export FFLAGS="-openmp -O3 -g -traceback -r8 -I${NEMSIOGFS_INC} -I${NEMSIO_INC} -I${SIGIO_INC4}" - -elif [ $target = wcoss_cray ]; then - - targetx=cray - if [ $USE_PREINST_LIBS = true ]; then - source ../modulefiles/modulefile.storm_reloc_v5.1.0.$target > /dev/null 2>&1 - else - source ../modulefiles/modulefile.storm_reloc_v5.1.0.${target}_userlib > /dev/null 2>&1 - fi - module load intel/15.0.3.187 cray-libsci/13.0.3 - module list - - export LIBS_REL="${W3NCO_LIB4}" - - #export FFLAGS="-openmp -O3 -g -traceback -r8 -I${NEMSIOGFS_INC} -I${NEMSIO_INC} -I${SIGIO_INC4}" - export FFLAGS="-openmp -O1 -g -traceback -r8 -I${NEMSIOGFS_INC} -I${NEMSIO_INC} -I${SIGIO_INC4}" - -elif [ $target = wcoss_dell_p3 ]; then - - targetx=wcoss_dell_p3 - if [ $USE_PREINST_LIBS = true ]; then - source ../modulefiles/modulefile.storm_reloc_v5.1.0.$target > /dev/null 2>&1 - else - source ../modulefiles/modulefile.storm_reloc_v5.1.0.${target}_userlib > /dev/null 2>&1 - fi - module load ips/18.0.1.163 impi/18.0.1 - - export LIBS_REL="${W3NCO_LIB4}" - - #export FFLAGS="-qopenmp -O3 -g -traceback -r8 -I${NEMSIOGFS_INC} -I${NEMSIO_INC} -I${SIGIO_INC4}" - export FFLAGS="-qopenmp -O1 -g -traceback -r8 -I${NEMSIOGFS_INC} -I${NEMSIO_INC} -I${SIGIO_INC4}" - -else - - echo "Unknown machine = $target" - exit 1 -fi +source ../modulefiles/modulefile.storm_reloc_v6.0.0.$target +export FC=mpiifort export INC="${G2_INCd} -I${NEMSIO_INC}" export LIBS="${W3EMC_LIBd} ${W3NCO_LIBd} ${BACIO_LIB4} ${G2_LIBd} ${PNG_LIB} ${JASPER_LIB} ${Z_LIB}" export LIBS_SUP="${W3EMC_LIBd} ${W3NCO_LIBd}" +echo lset +echo lset + export LIBS_REL="${W3NCO_LIB4}" export LIBS_REL="${NEMSIOGFS_LIB} ${NEMSIO_LIB} ${LIBS_REL} ${SIGIO_LIB4} ${BACIO_LIB4} ${SP_LIBd}" export LIBS_SIG="${SIGIO_INC4}" export LIBS_SYN_GET="${W3NCO_LIB4}" export LIBS_SYN_MAK="${W3NCO_LIB4} ${BACIO_LIB4}" export LIBS_SYN_QCT="${W3NCO_LIB8}" +echo $LIBS_REL +echo NEXT -#cd relocate_mv_nvortex.fd -# make clean -# make -f makefile_$targetx -# make install -# make clean -# cd ../ cd vint.fd make clean make -f makefile @@ -145,11 +79,5 @@ cd supvit.fd make install make clean cd ../ -cd gettrk.fd - make clean - make -f makefile - make install - make clean - cd ../ exit diff --git a/sorc/build_ufs_utils.sh b/sorc/build_ufs_utils.sh new file mode 100755 index 0000000000..292145d764 --- /dev/null +++ b/sorc/build_ufs_utils.sh @@ -0,0 +1,15 @@ +#! /usr/bin/env bash +set -eux + +source ./machine-setup.sh > /dev/null 2>&1 +cwd=`pwd` + +if [ $target = wcoss_dell_p3 ]; then target=dell; fi +if [ $target = wcoss_cray ]; then target=cray; fi + +cd ufs_utils.fd/sorc + +./build_all_ufs_utils.sh + +exit + diff --git a/sorc/checkout.sh b/sorc/checkout.sh index b62a96cf85..ed2844ec9e 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -1,5 +1,22 @@ #!/bin/sh -set -xu +set -xue + +while getopts "o" option; +do + case $option in + o) + echo "Received -o flag for optional checkout of GTG, will check out GTG with EMC_post" + checkout_gtg="YES" + ;; + :) + echo "option -$OPTARG needs an argument" + ;; + *) + echo "invalid option -$OPTARG, exiting..." + exit + ;; + esac +done topdir=$(pwd) echo $topdir @@ -7,9 +24,9 @@ echo $topdir echo fv3gfs checkout ... if [[ ! -d fv3gfs.fd ]] ; then rm -f ${topdir}/checkout-fv3gfs.log - git clone gerrit:NEMSfv3gfs fv3gfs.fd >> ${topdir}/checkout-fv3gfs.log 2>&1 + git clone https://github.com/ufs-community/ufs-weather-model fv3gfs.fd >> ${topdir}/checkout-fv3gfs.log 2>&1 cd fv3gfs.fd - git checkout nemsfv3_gfsv15.2.1 + git checkout GFS.v16.0.15 git submodule update --init --recursive cd ${topdir} else @@ -19,23 +36,55 @@ fi echo gsi checkout ... if [[ ! -d gsi.fd ]] ; then rm -f ${topdir}/checkout-gsi.log - git clone --recursive gerrit:ProdGSI gsi.fd >> ${topdir}/checkout-gsi.log 2>&1 + git clone --recursive https://github.com/NOAA-EMC/GSI.git gsi.fd >> ${topdir}/checkout-gsi.log 2>&1 cd gsi.fd - git checkout gfsda.v15.3.3 + git checkout gfsda.v16.0.0 git submodule update cd ${topdir} else echo 'Skip. Directory gsi.fd already exists.' fi +echo gldas checkout ... +if [[ ! -d gldas.fd ]] ; then + rm -f ${topdir}/checkout-gldas.log + git clone https://github.com/NOAA-EMC/GLDAS gldas.fd >> ${topdir}/checkout-gldas.fd.log 2>&1 + cd gldas.fd + git checkout gldas_gfsv16_release.v1.12.0 + cd ${topdir} +else + echo 'Skip. Directory gldas.fd already exists.' +fi + +echo ufs_utils checkout ... +if [[ ! -d ufs_utils.fd ]] ; then + rm -f ${topdir}/checkout-ufs_utils.log + git clone https://github.com/NOAA-EMC/UFS_UTILS.git ufs_utils.fd >> ${topdir}/checkout-ufs_utils.fd.log 2>&1 + cd ufs_utils.fd + git checkout ops-gfsv16.0.0 + cd ${topdir} +else + echo 'Skip. Directory ufs_utils.fd already exists.' +fi + echo EMC_post checkout ... if [[ ! -d gfs_post.fd ]] ; then rm -f ${topdir}/checkout-gfs_post.log - #git clone --recursive gerrit:EMC_post gfs_post.fd >> ${topdir}/checkout-gfs_post.log 2>&1 - git clone --recursive gerrit:EMC_post_gtg gfs_post.fd >> ${topdir}/checkout-gfs_post.log 2>&1 + git clone https://github.com/NOAA-EMC/EMC_post.git gfs_post.fd >> ${topdir}/checkout-gfs_post.log 2>&1 cd gfs_post.fd - #git checkout ncep_post.v8.0.27e - git checkout ncep_post_gtg.v1.1.11 + git checkout upp_gfsv16_release.v1.1.3 + ################################################################################ + # checkout_gtg + ## yes: The gtg code at NCAR private repository is available for ops. GFS only. + # Only approved persons/groups have access permission. + ## no: No need to check out gtg code for general GFS users. + ################################################################################ + checkout_gtg=${checkout_gtg:-"NO"} + if [[ ${checkout_gtg} == "YES" ]] ; then + ./manage_externals/checkout_externals + cp sorc/post_gtg.fd/*f90 sorc/ncep_post.fd/. + cp sorc/post_gtg.fd/gtg.config.gfs parm/gtg.config.gfs + fi cd ${topdir} else echo 'Skip. Directory gfs_post.fd already exists.' @@ -46,10 +95,21 @@ if [[ ! -d gfs_wafs.fd ]] ; then rm -f ${topdir}/checkout-gfs_wafs.log git clone --recursive https://github.com/NOAA-EMC/EMC_gfs_wafs.git gfs_wafs.fd >> ${topdir}/checkout-gfs_wafs.log 2>&1 cd gfs_wafs.fd - git checkout gfs_wafs.v5.0.11 + git checkout gfs_wafs.v6.0.19 cd ${topdir} else echo 'Skip. Directory gfs_wafs.fd already exists.' fi +echo EMC_verif-global checkout ... +if [[ ! -d verif-global.fd ]] ; then + rm -f ${topdir}/checkout-verif-global.log + git clone --recursive https://github.com/NOAA-EMC/EMC_verif-global.git verif-global.fd >> ${topdir}/checkout-verif-global.log 2>&1 + cd verif-global.fd + git checkout verif_global_v1.11.0 + cd ${topdir} +else + echo 'Skip. Directory verif-global.fd already exist.' +fi + exit 0 diff --git a/sorc/emcsfc_ice_blend.fd/.gitignore b/sorc/emcsfc_ice_blend.fd/.gitignore deleted file mode 100644 index febadbf707..0000000000 --- a/sorc/emcsfc_ice_blend.fd/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -emcsfc_ice_blend diff --git a/sorc/emcsfc_ice_blend.fd/emcsfc_ice_blend.f90 b/sorc/emcsfc_ice_blend.fd/emcsfc_ice_blend.f90 deleted file mode 100644 index d34086c18c..0000000000 --- a/sorc/emcsfc_ice_blend.fd/emcsfc_ice_blend.f90 +++ /dev/null @@ -1,467 +0,0 @@ - program emcsfc_ice_blend -!$$$ main program documentation block -! -! program: emcsfc_ice_blend create blended ice product -! for gfs/gdas cycles -! -! prgmmr: gayno org: emc date: 2014-03-20 -! -! abstract: Create a global 5-minute blended ice concentration -! dataset for use by GDAS/GFS. This blend is created -! from National Ice Center Interactive Multisensor -! Snow and Ice Mapping System (IMS) data, and the -! NCEP/MMAB global 5-minute ice concentration data. -! -! program history log: -! 2014-03-20 Initial version. -! 2014-10-20 Use grib2 for all i/o. Mask out 'land' points -! in the blended analysis using a bitmap -! instead of the '1.57' flag. -! -! usage: -! input files: -! fort.11 - NH IMS ice data, interpolated to the 5-minute grid (grib 2) -! fort.15 - global 5-minute MMAB ice concentration file (grib 2) -! fort.17 - global 5-minute MMAB land mask file (grib 2). -! -! output files: -! fort.51 - global 5-minute blended ice concentration file (grib 2) -! -! condition codes: -! 0 - normal run -! 1 - bad open of 5-minute MMAB land mask file -! 2 - bad read of 5-minute MMAB land mask grib record -! 5 - bad open of IMS ice file -! 7 - bad read of IMS ice grib record -! 8 - bad open of 5-minute MMAB ice concentration file -! 9 - bad read of 5-minute MMAB ice concentration grib header -! 10 - bad read of 5-minute MMAB ice concentration grib record -! 16 - bad open of 5-minute blended ice concentration file -! 17 - bad write of 5-minute blended ice concentration file -! -! comments: -! This program creates a sea ice concentration file -! suitable for use by the GFS global cycle program. The 5-minute -! ice concentration file from MMAB can't be used 'as is' because -! the MMAB data can't give a reliable analysis for small -! lakes now resolved by the GFS land mask. -! -! This program creates an ice concentration file on the same -! 5-minute grid as the MMAB data using IMS data from the National -! Ice Center to fill in small lakes. The IMS data is NH only and -! is a yes/no flag (not a concentration). The IMS data is on -! a 4km polar stereographic grid and must be interpolated to the -! MMAB 5-minute grid (NCEP grid 173) before ingest to this program. -! This interpolation may be done using copygb2 as follows: -! -! grid173="0 0 0 0 0 0 0 0 4320 2160 0 0 89958000 42000 48 -89958000 359958000 83000 83000 0" -! copygb2 -x -i3 -g "$grid173" ims.icec.grib2 ims.icec.5min.grib2 -! -! When using the "budget" interpolation option (-i3), the -! IMS yes/no flag will be converted to a pseudo ice concentration. -! -! The IMS data contains a land/water mask. Ice concentration is only -! specified at 'water' points. -! -! The 5-minute data mask contains 'land', 'coast' and -! 'water' points. Ice concentration is specified at 'coast' -! and 'water', but 'coast' points have error and are not used here. -! -! The blending process is as follows in the NH: -! (1) If IMS indicates 'land', then the blended value is set to 'land' -! and is bitmapped out. -! (2) If the IMS is 'water', and the MMAB data point -! is 'coast' or 'land', the IMS ice concentration is used -! as the blended value. -! (3) If IMS and MMAB indicate a point as water, then -! (a) The blended value is set to zero if the IMS concentration is less -! than 50%. -! (b) If the IMS concentration is >=50%, then the neighboring -! 5-minute data is checked for ice. -! (i) If the 5-minute point is ice free, but at least one -! of its neighbors has ice, the blended value is set to -! the IMS ice concentration. Examination of the 5-minute -! showed isolated open water points within large areas of -! ice. This logic attempts to remove these likely wrong points. -! (ii) If (i) is false, then the blended value is set to -! the 5-minute value or 15%, whichever is greater. 15% -! is the lower threshold in the MMAB 5-minute product. -! In the SH, the blended value is simply the 5-minute ice concentration -! at 'water' points. 'Coast' and 'land' points are bitmapped out. -! -! attributes: -! language: f90 -! machine: NCEP WCOSS -! -!$$$ - - use grib_mod ! grib 2 libraries - - implicit none - - type(gribfield) :: ims, mask, mmab - - character(len=200) :: infile, outfile - - integer, parameter :: imax=4320 - integer, parameter :: jmax=2160 - - integer :: i,j, istat, iunit - integer :: ii, iii, jj, jjj, count - integer :: lugi - integer :: jdisc, jgdtn, jpdtn, k - integer :: jids(200), jgdt(200), jpdt(200) - integer, allocatable :: mask_5min(:,:), mask_ims(:,:) - - logical*1, allocatable :: lbms_ims(:,:) - logical :: unpack - - real, allocatable :: dummy(:,:) - real, allocatable :: ice_ims(:,:), ice_5min(:,:), ice_blend(:,:) - -!-------------------------------------------------------------------------------- -! Read the 5-minute mmab land mask file. Required because the 5-minute data does -! not have a bitmap. -!-------------------------------------------------------------------------------- - - call w3tagb('EMCSFC_ICE_BLEND',2014,75,0000,'EMC') - - call getenv("FORT17", infile) - iunit=17 - print*,"- OPEN 5-MINUTE LAND-SEA MASK FILE: ", trim(infile) - call baopenr (iunit, infile, istat) - if (istat /= 0) then - print*,'FATAL ERROR: BAD OPEN. ISTAT: ', istat - stop 1 - endif - - nullify(mask%idsect) - nullify(mask%local) - nullify(mask%list_opt) - nullify(mask%igdtmpl) - nullify(mask%ipdtmpl) - nullify(mask%coord_list) - nullify(mask%idrtmpl) - nullify(mask%bmap) - nullify(mask%fld) - - j = 0 ! search at beginning of file - lugi = 0 ! no grib index file - jdisc = 2 ! search for discipline - jpdtn = 0 ! search for product definition template number - jgdtn = 0 ! search for grid definition template number; 0 - lat/lon grid - jids = -9999 ! array of values in identification section, set to wildcard - jgdt = -9999 ! array of values in grid definition template 3.m - jpdt = -9999 ! array of values in product definition template 4.n - jpdt(1) = 0 ! search for parameter category - jpdt(2) = 0 ! search for parameter number - unpack = .true. ! unpack data - - print*,"- DEGRIB DATA" - call getgb2(iunit, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, & - unpack, k, mask, istat) - - if (istat /= 0) then - print*,'FATAL ERROR: BAD DEGRIB OF DATA. ISTAT: ', istat - stop 2 - endif - - call baclose (iunit,istat) - -!-------------------------------------------------------------------------------- -! The MMAB mask codes are: -! -! 0 - water -! 1.57 - land -! 1.95 - coast -! -! Convert these to something easier to work with. -!-------------------------------------------------------------------------------- - - allocate(dummy(imax,jmax)) - dummy=reshape (mask%fld , (/imax,jmax/) ) - - if(associated(mask%idsect)) deallocate(mask%idsect) - if(associated(mask%local)) deallocate(mask%local) - if(associated(mask%list_opt)) deallocate(mask%list_opt) - if(associated(mask%igdtmpl)) deallocate(mask%igdtmpl) - if(associated(mask%ipdtmpl)) deallocate(mask%ipdtmpl) - if(associated(mask%coord_list)) deallocate(mask%coord_list) - if(associated(mask%idrtmpl)) deallocate(mask%idrtmpl) - if(associated(mask%bmap)) deallocate(mask%bmap) - if(associated(mask%fld)) deallocate(mask%fld) - - allocate(mask_5min(imax,jmax)) - - do j = 1, jmax - do i = 1, imax - if (dummy(i,j) < 0.1) then - mask_5min(i,j)=0 ! water - elseif (dummy(i,j) > 1.94) then - mask_5min(i,j)=1 ! coast - else - mask_5min(i,j)=2 ! land - endif - enddo - enddo - - deallocate(dummy) - -!-------------------------------------------------------------------------------- -! Read ims data that has been interpolated to the 5-min grid. -!-------------------------------------------------------------------------------- - - call getenv("FORT11", infile) - iunit=11 - print*,"- OPEN IMS ICE DATA: ", trim(infile) - call baopenr (iunit, infile, istat) - if (istat /= 0) then - print*,'FATAL ERROR: BAD OPEN. ISTAT: ', istat - stop 5 - endif - - nullify(ims%idsect) - nullify(ims%local) - nullify(ims%list_opt) - nullify(ims%igdtmpl) - nullify(ims%ipdtmpl) - nullify(ims%coord_list) - nullify(ims%idrtmpl) - nullify(ims%bmap) - nullify(ims%fld) - - j = 0 ! search at beginning of file - lugi = 0 ! no grib index file - jdisc = 10 ! search for discipline, ocean products - jpdtn = 0 ! search for product definition template number - jgdtn = 0 ! search for grid definition template number; 0 - lat/lon grid - jids = -9999 ! array of values in identification section, set to wildcard - jgdt = -9999 ! array of values in grid definition template 3.m - jpdt = -9999 ! array of values in product definition template 4.n - jpdt(1) = 2 ! search for parameter category, ice - jpdt(2) = 0 ! search for parameter number, ice cover - unpack = .true. ! unpack data - - print*,"- DEGRIB DATA" - call getgb2(iunit, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, & - unpack, k, ims, istat) - - if (istat /= 0) then - print*,'FATAL ERROR: BAD DEGRIB OF DATA. ISTAT: ', istat - stop 7 - endif - - call baclose (iunit,istat) - - allocate (lbms_ims(imax,jmax)) - lbms_ims=reshape (ims%bmap , (/imax,jmax/) ) - allocate (ice_ims(imax,jmax)) - ice_ims=reshape (ims%fld , (/imax,jmax/) ) - - print*,"- CREATE IMS LAND-SEA MASK FROM BITMAP." - allocate(mask_ims(imax,jmax)) - mask_ims = 0 ! water - do j = 1, jmax - do i = 1, imax - if (.not.lbms_ims(i,j)) mask_ims(i,j) = 2 ! land - enddo - enddo - - deallocate(lbms_ims) - - if(associated(ims%idsect)) deallocate(ims%idsect) - if(associated(ims%local)) deallocate(ims%local) - if(associated(ims%list_opt)) deallocate(ims%list_opt) - if(associated(ims%igdtmpl)) deallocate(ims%igdtmpl) - if(associated(ims%ipdtmpl)) deallocate(ims%ipdtmpl) - if(associated(ims%coord_list)) deallocate(ims%coord_list) - if(associated(ims%idrtmpl)) deallocate(ims%idrtmpl) - if(associated(ims%bmap)) deallocate(ims%bmap) - if(associated(ims%fld)) deallocate(ims%fld) - -!-------------------------------------------------------------------------------- -! Now read the MMAB 5-minute data. -!-------------------------------------------------------------------------------- - - call getenv("FORT15", infile) - iunit=15 - print*,"- OPEN 5-MINUTE ICE CONCENTRATION DATA: ", trim(infile) - call baopenr (iunit, infile, istat) - if (istat /= 0) then - print*,'FATAL ERROR: BAD OPEN. ISTAT: ', istat - stop 8 - endif - - nullify(mmab%idsect) - nullify(mmab%local) - nullify(mmab%list_opt) - nullify(mmab%igdtmpl) - nullify(mmab%ipdtmpl) - nullify(mmab%coord_list) - nullify(mmab%idrtmpl) - nullify(mmab%bmap) - nullify(mmab%fld) - - j = 0 ! search at beginning of file - lugi = 0 ! no grib index file - jdisc = 10 ! search for discipline, ocean products - jpdtn = 0 ! search for product definition template number - jgdtn = 0 ! search for grid definition template number; 0 - lat/lon grid - jids = -9999 ! array of values in identification section, set to wildcard - jgdt = -9999 ! array of values in grid definition template 3.m - jpdt = -9999 ! array of values in product definition template 4.n - jpdt(1) = 2 ! search for parameter category, ice - jpdt(2) = 0 ! search for parameter number, ice cover - unpack = .true. ! unpack data - - print*,"- DEGRIB DATA" - call getgb2(iunit, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, & - unpack, k, mmab, istat) - - if (istat /= 0) then - print*,'FATAL ERROR: BAD DEGRIB OF DATA. ISTAT: ', istat - stop 9 - endif - - allocate (ice_5min(imax,jmax)) - ice_5min=reshape (mmab%fld , (/imax,jmax/) ) - - call baclose (iunit,istat) - -!-------------------------------------------------------------------------------- -! Blend IMS and 5-minute data in northern hemisphere. -!-------------------------------------------------------------------------------- - - print*,"- BLEND IMS AND 5-MINUTE DATA IN NH." - allocate(ice_blend(imax,jmax)) - ice_blend=-9. ! flag for land. will be bitmapped out. - do j = 1, (jmax/2) - do i = 1, imax - if (mask_ims(i,j) == 0) then ! ims water point - if (mask_5min(i,j) > 0) then ! 5-min land - ice_blend(i,j)=ice_ims(i,j) ! use ims value - else ! ims and 5min mask indicate water point - if (ice_ims(i,j) > .5) then ! ims indicates ice - count = 0 - do jj = -1, 1 - do ii = -1, 1 - if (ii == 0 .and. jj == 0) cycle - jjj = j + jj - if (jjj < 1) cycle - iii = ii + i - if (iii < 1) iii = iii + imax - if (iii > imax) iii = iii - imax - if (mask_5min(iii,jjj) == 0) then ! 5-min water - if (ice_5min(iii,jjj) >= 0.5) then - count = count + 1 - endif - endif - enddo - enddo - if (count > 0 .and. ice_5min(i,j) == 0.0) then - ice_blend(i,j) = ice_ims(i,j) - else - ice_blend(i,j) = max(ice_5min(i,j),0.15) - endif - else ! ims indicates open water. - ice_blend(i,j) = 0. - endif - endif - end if - enddo - enddo - - deallocate(mask_ims, ice_ims) - -!-------------------------------------------------------------------------------- -! In the SH, the blend is simply the 5-minute data. Only consider 'water' -! points. -!-------------------------------------------------------------------------------- - - do j = (jmax/2)+1, jmax - do i = 1, imax - if (mask_5min(i,j) == 0) then ! 'water' - ice_blend(i,j) = ice_5min(i,j) - endif - enddo - enddo - - deallocate(mask_5min, ice_5min) - -!-------------------------------------------------------------------------------- -! Output blended data to a grib 2 file. -!-------------------------------------------------------------------------------- - - call getenv("FORT51", outfile) - iunit=51 - print*,"- OUTPUT BLENDED ICE DATA TO ", trim(outfile) - print*,"- OPEN FILE." - call baopenw(iunit, outfile, istat) - if (istat /= 0) then - print*,'FATAL ERROR: BAD OPEN. ISTAT: ', istat - stop 16 - endif - -!-------------------------------------------------------------------------------- -! Use grib header information from the mmab file (stored in the mmab data -! structure) with the following exceptions: -! -! 1) Increase precision of corner point lat/lons and dx/dy. -! 2) Use simple packing instead of jpeg compression. Grads has problems -! with the latter. -! 3) Use a bitmap to mask out land points instead of the mmab convention -! of using '0' at land points. -!-------------------------------------------------------------------------------- - - mmab%igdtmpl(12)=89958333 - mmab%igdtmpl(13)=41667 - mmab%igdtmpl(15)=-89958333 - mmab%igdtmpl(16)=359958333 - mmab%igdtmpl(17)=83333 - mmab%igdtmpl(18)=83333 - - deallocate (mmab%idrtmpl) ! use simple packing - mmab%idrtnum=0 - mmab%idrtlen=5 - allocate(mmab%idrtmpl(mmab%idrtlen)) - mmab%idrtmpl=0 - mmab%idrtmpl(3) = 2 ! use two decimal points. - - mmab%fld=reshape(ice_blend, (/imax*jmax/) ) - - mmab%ibmap=0 ! use bitmap - allocate (mmab%bmap(imax*jmax)) - mmab%bmap=.true. - where (mmab%fld < -8.) mmab%bmap=.false. ! land - - print*,"- GRIB DATA." - call putgb2(iunit, mmab, istat) - if (istat /= 0) then - print*,'FATAL ERROR: BAD WRITE. ISTAT: ', istat - stop 17 - endif - - call baclose(iunit, istat) - - deallocate(ice_blend) - - if(associated(mmab%idsect)) deallocate(mmab%idsect) - if(associated(mmab%local)) deallocate(mmab%local) - if(associated(mmab%list_opt)) deallocate(mmab%list_opt) - if(associated(mmab%igdtmpl)) deallocate(mmab%igdtmpl) - if(associated(mmab%ipdtmpl)) deallocate(mmab%ipdtmpl) - if(associated(mmab%coord_list)) deallocate(mmab%coord_list) - if(associated(mmab%idrtmpl)) deallocate(mmab%idrtmpl) - if(associated(mmab%bmap)) deallocate(mmab%bmap) - if(associated(mmab%fld)) deallocate(mmab%fld) - - print*,'' - print*,'****************************' - print*,'**** NORMAL TERMINATION ****' - print*,'****************************' - - call w3tage('EMCSFC_ICE_BLEND') - - stop - - end program emcsfc_ice_blend diff --git a/sorc/emcsfc_ice_blend.fd/make.sh b/sorc/emcsfc_ice_blend.fd/make.sh deleted file mode 100755 index 406b022981..0000000000 --- a/sorc/emcsfc_ice_blend.fd/make.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -make clean -make -rc=$? - -if ((rc != 0));then - echo "ERROR BUILDING EMCSFC_ICE_BLEND" - exit $rc -else - make install -fi - -exit diff --git a/sorc/emcsfc_ice_blend.fd/makefile b/sorc/emcsfc_ice_blend.fd/makefile deleted file mode 100755 index 3fbc6343e1..0000000000 --- a/sorc/emcsfc_ice_blend.fd/makefile +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -#------------------------------------------------------------------------ -# Makefile for the emcsfc_ice_blend program. -# -# Before invoking, read the README.build for details. -#------------------------------------------------------------------------ - -EXE=emcsfc_ice_blend - -OBJS= emcsfc_ice_blend.o - -LIBS= $(BACIO_LIB4) $(G2_LIB4) $(W3NCO_LIB4) $(JASPER_LIB) $(PNG_LIB) $(Z_LIB) - -$(EXE): $(OBJS) - $(FCOMP) $(FFLAGS) -o $(EXE) $(OBJS) $(LIBS) - -emcsfc_ice_blend.o: emcsfc_ice_blend.f90 - $(FCOMP) $(FFLAGS) -I$(G2_INC4) -c emcsfc_ice_blend.f90 - -all: check_prereqs $(EXE) -clean: - rm -f *.o $(EXE) ../../exec/$(EXE) -install: - /usr/bin/install -c -d ../../exec - /usr/bin/install -c $(EXE) ../../exec -check_prereqs: - /nwprod/spa_util/check_libs.bash $(LIBS) - /nwprod/spa_util/check_incs.bash $(G2_INC4)/grib_mod.mod diff --git a/sorc/emcsfc_snow2mdl.fd/.gitignore b/sorc/emcsfc_snow2mdl.fd/.gitignore deleted file mode 100644 index 80df0fa548..0000000000 --- a/sorc/emcsfc_snow2mdl.fd/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.o -*.mod -emcsfc_snow2mdl diff --git a/sorc/emcsfc_snow2mdl.fd/driver.f b/sorc/emcsfc_snow2mdl.fd/driver.f deleted file mode 100755 index fdfbc91c51..0000000000 --- a/sorc/emcsfc_snow2mdl.fd/driver.f +++ /dev/null @@ -1,213 +0,0 @@ - program driver -!$$$ main program documentation block -! . . . . -! main program: snow2mdl -! prgmmr: gayno ORG: NP2 DATE: 2005-dec-16 -! -! abstract: create a snow cover and snow depth analysis on a nam -! or global gfs gaussian grid using nesdis/ims snow cover, autosnow snow -! cover and/or afwa depth data. -! -! program history log: -! 2005-dec-16 gayno initial version -! 2007-nov-30 gayno added processing of nam b-grids. -! improved thinning for gfs grids. -! 2008-feb-01 gayno added option to use autosnow data -! in southern hemisphere. -! 2014-feb-14 gayno read grib 1 or grib2 version of nesdis/ims -! data -! 2014-sep-30 gayno read grib 1 or grib2 version of model -! lat, lon and mask files. convert -! nh weekly snow climatology to grib 2. -! option to output model depth and cover -! analysis in grib2. -! -! note: The ims snow cover product is now produced by the national -! ice center, not nesdis. however, in this code, references -! to ims still use the "nesdis" identifier. -! -! input files, to define model grid, and for runtime configuration: -! - fort.41 configuration namelist -! - latitudes on model grid (grib 1 or grib 2) -! - longitudes on model grid (grib 1 or grib 2) -! - model land/sea mask (grib 1 or grib 2) -! - gfs definition of reduced grid (ascii, optional) -! -! input snow data files; see remarks section on how to select. -! - nesdis/ims nh 4km (96 mesh) snow cover data (grib1 or grib 2) -! - nesdis/ims nh 23km (16 mesh) snow cover data (grib1 or grib 2) -! - nesdis/ims nh 23km land mask (ascii, required when using 23km ims) -! - afwa nh/sh 8th mesh (46km) snow depth data (binary) -! - afwa nh/sh 8th mesh land/sea mask (binary, required when using -! 8th mesh nh/sh afwa data) -! - afwa nh/sh 16th mesh (23km) snow depth data (grib 1) -! - autosnow sh snow cover data (grib 2) -! - nesdis/ims weekly nh snow cover climatology (grib 2) -! (used to qc input snow data). -! -! output files: -! - snow cover and depth on the model grid (grib1 or grib2) -! -! exit states (non-zero condition is fatal): -! cond = 0 - successful run -! = 40 - bad open of file when checking its -! file type (routine grib_check). -! = 41 - ims file not grib1 or grib2 format -! = 47 - error in grib2_check. unknown grid type. -! = 48 - error creating model output grib2 file -! = 49 - bad open of model output grib2 file -! = 50 - error converting to grib2 grid description template -! = 53 - bad nesdis/ims data. -! = 54 - bad input snow data selection -! = 55 - error in iplib interpolation routine -! = 57 - bad write of model snow depth data to grib1 file -! = 58 - bad write of model snow cover data to grib1 file -! = 59 - bad open of model output grib1 file -! = 60 - bad open afwa snow data -! = 61 - bad read afwa snow data -! = 62 - bad open afwa land mask -! = 63 - bad read afwa land mask -! = 70 - bad degrib of nesdis/ims snow cover data -! = 71 - bad degrib of nesdis/ims sea ice data -! = 72 - bad degrib of nesdis/ims data header -! = 73 - bad open of nesdis/ims data -! = 74 - bad open of autosnow data -! = 75 - bad degrib of autosnow data -! = 76 - problem with gfs 'lonsperlat' file -! = 77 - bad open on configuration namelist -! = 78 - bad read on configuration namelist -! = 79 - unrecognized model grid type -! = 80 - bad open on model latitude grib file -! = 81 - bad read on model latitude grib header -! = 82 - bad degrib of model latitude data -! = 83 - bad open on model longitude file -! = 84 - bad degrib of model longitude data -! = 85 - bad open of model land mask file -! = 86 - bad degrib of model land mask data -! = 87 - bad open of nesdis/ims land mask file -! = 88 - bad read of nesdis/ims land mask data -! = 90 - model latitude file not grib1 or grib2 -! = 91 - model longitude file not grib1 or grib2 -! = 92 - model land mask file not grib1 or grib2 -! -! remarks: The determination of cover and depth on the model -! grid depends on the input snow data selected: -! -! nam grids: -! --------- -! -! 1) nesdis/ims only - An analysis of snow cover on the -! model grid is produced. No depth analysis is -! produced. -! -! 2) afwa only - An analysis of snow cover and depth on -! the model grid is produced. Depth is determined from -! the afwa data. Cover is set to 100% where afwa indicates -! snow and 0% otherwise. -! -! 3) nesdis/ims and afwa - An analysis of snow cover and -! depth on the model grid is produced. Cover is -! determined by the nesdis/ims data. If cover is -! greater than user-defined threshold (variable -! snow_cvr_threshold) the depth is set to the afwa -! value or a nominal value, whichever is greater. -! The nominal value is user-defined (varaible -! min_snow_depth). If cover is less than user- -! defined threshold, the depth is set to 0, -! regardless of the afwa depth value. -! -! gfs grid: -! -------- -! -! 1) nesdis/ims and autosnow only - An analysis of snow -! cover and depth on the model grid is produced. -! Cover is determined from the ims and autosnow data. -! If cover is greater than the user-defined -! threshold (variable snow_cvr_threshold), the -! the depth is set to the user-defined default -! depth (variable min_snow_depth). -! -! 2) afwa only - An analysis of snow cover and depth on -! the model grid is produced. Depth is determined from -! the afwa data. Cover is set to 100% where afwa indicates -! snow and 0% otherwise. -! -! 3) nesdis/ims, autosnow and afwa - An analysis of snow -! cover and depth on the model grid is produced. Cover is -! determined by the ims and autosnow data. If cover is -! greater than user-defined threshold (variable -! snow_cvr_threshold) the depth is set to the afwa -! value or a nominal value, whichever is greater. -! The nominal value is user-defined (varaible -! min_snow_depth). If cover is less than user- -! defined threshold, the depth is set to 0, -! regardless of the afwa depth value. -! -!$$$ - - use snowdat, only : readnesdis, & - readafwa, & - readautosnow - - use model_grid, only : read_mdl_grid_info, & - model_grid_cleanup - - use snow2mdl, only : interp - - use program_setup, only : read_config_nml - - implicit none - - call w3tagb('SNOW2MDL',2005,350,0000,'NP2') - - print*,'' - print*,"***********************" - print*,"*** BEGIN EXECUTION ***" - print*,"***********************" - -!----------------------------------------------------------------------- -! get configuration stuff. -!----------------------------------------------------------------------- - - call read_config_nml - -!----------------------------------------------------------------------- -! read input snow data. -!----------------------------------------------------------------------- - - call readautosnow ! autosnow snow cover data - - call readnesdis ! nesdis/ims snow cover data - - call readafwa ! afwa depth data - -!----------------------------------------------------------------------- -! read information about the model grid to which the -! snow data will be interpolated. -!----------------------------------------------------------------------- - - call read_mdl_grid_info - -!----------------------------------------------------------------------- -! interpolate the data to the model grid, then write -! it to a grib file. -!----------------------------------------------------------------------- - - call interp - -!----------------------------------------------------------------------- -! free up memory -!----------------------------------------------------------------------- - - call model_grid_cleanup - - print*,'' - print*,'****************************' - print*,'**** NORMAL TERMINATION ****' - print*,'****************************' - - call w3tage('SNOW2MDL') - - stop - - end program driver diff --git a/sorc/emcsfc_snow2mdl.fd/grib_utils.f b/sorc/emcsfc_snow2mdl.fd/grib_utils.f deleted file mode 100644 index 033e35406f..0000000000 --- a/sorc/emcsfc_snow2mdl.fd/grib_utils.f +++ /dev/null @@ -1,779 +0,0 @@ - subroutine grib_check(file_name, isgrib) -!$$$ subprogram documentation block -! -! subprogram: grib_check -! prgmmr: gayno org: w/np2 date: 2007-nov-28 -! -! abstract: determine whether file is grib or not. -! -! program history log: -! 2007-nov-28 gayno - initial version -! 2011-apr-26 gayno - replace my simple-minded logic -! with call to w3lib routin skgb. -! 2014-feb-07 gayno - determine whether file is -! grib1 or grib2. -! -! usage: call grib_check(file_name, isgrib) -! -! input argument list: file_name - file to be checked -! -! output argument list: isgrib - '1' or '2' if grib1/2 file -! '0' if not grib -! -! files: -! input: -! - file to be checked, fort.11 -! -! output: none -! -! condition codes: all fatal -! - bad file open, fort.11 -! -! remarks: none. -! -!$$$ - - implicit none - - character*(*), intent(in) :: file_name - integer, parameter :: iunit=11 - integer :: istat, iseek, mseek, lskip, lgrib, version - integer, intent(out) :: isgrib - - print*,"- CHECK FILE TYPE OF: ", trim(file_name) - call baopenr (iunit, file_name, istat) - - if (istat /= 0) then - print*,'- FATAL ERROR: BAD FILE OPEN. ISTAT IS ',istat - call w3tage('SNOW2MDL') - call errexit(40) - end if - - iseek = 0 - mseek = 64 - call skgb2(iunit, iseek, mseek, lskip, lgrib, version) - - call baclose(iunit, istat) - - if (lgrib > 0) then - isgrib = version - if (isgrib == 1) print*,"- FILE IS GRIB1" - if (isgrib == 2) print*,"- FILE IS GRIB2" - else - isgrib = 0 - print*,"- FILE IS BINARY" - endif - - return - - end subroutine grib_check - - SUBROUTINE SKGB2(LUGB,ISEEK,MSEEK,LSKIP,LGRIB,I1) -!$$$ subprogram documentation block -! -! subprogram: skgb2 -! prgmmr: gayno org: w/np2 date: 2014-feb-07 -! -! abstract: determine whether file is grib or not. -! based on w3nco library routine skgb. -! -! program history log: -! 2014-feb-07 gayno - initial version -! -! usage: call SKGB2(LUGB,ISEEK,MSEEK,LSKIP,LGRIB,I1) -! -! input argument list: lugb - file unit number -! iseek - number of bits to skip -! before search. -! mseek - max number of bytes -! to search. -! -! output argument list: lskip - number of bytes to skip -! before message -! lgrib - number of bytes in message. -! '0' if not grib. -! i1 - '1' or '2' if grib1/2 file. -! '0' if not grib. -! -! files: -! input: -! - file to be checked, unit=lugb -! -! output: none -! -! condition codes: none -! -! remarks: none. -! -!$$$ - implicit none - INTEGER, INTENT( IN) :: LUGB, ISEEK, MSEEK - INTEGER, INTENT(OUT) :: LSKIP, LGRIB, I1 - INTEGER, PARAMETER :: LSEEK=128 - INTEGER :: K, KZ, KS, KG, KN, KM, I4, K4 - CHARACTER Z(LSEEK) - CHARACTER Z4(4) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - I1=0 - LGRIB=0 - KS=ISEEK - KN=MIN(LSEEK,MSEEK) - KZ=LSEEK -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! LOOP UNTIL GRIB MESSAGE IS FOUND - DO WHILE(LGRIB.EQ.0.AND.KN.GE.8.AND.KZ.EQ.LSEEK) -! READ PARTIAL SECTION - CALL BAREAD(LUGB,KS,KN,KZ,Z) - KM=KZ-8+1 - K=0 -! LOOK FOR 'GRIB...1' IN PARTIAL SECTION - DO WHILE(LGRIB.EQ.0.AND.K.LT.KM) - CALL GBYTEC(Z,I4,(K+0)*8,4*8) - CALL GBYTEC(Z,I1,(K+7)*8,1*8) - IF(I4.EQ.1196575042.AND.(I1.EQ.1.OR.I1.EQ.2)) THEN -! LOOK FOR '7777' AT END OF GRIB MESSAGE - IF (I1.EQ.1) CALL GBYTEC(Z,KG,(K+4)*8,3*8) - IF (I1.EQ.2) CALL GBYTEC(Z,KG,(K+12)*8,4*8) - CALL BAREAD(LUGB,KS+K+KG-4,4,K4,Z4) - IF(K4.EQ.4) THEN - CALL GBYTEC(Z4,I4,0,4*8) - IF(I4.EQ.926365495) THEN -! GRIB MESSAGE FOUND - LSKIP=KS+K - LGRIB=KG - ENDIF - ENDIF - ENDIF - K=K+1 - ENDDO - KS=KS+KM - KN=MIN(LSEEK,ISEEK+MSEEK-KS) - ENDDO -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RETURN - END subroutine skgb2 - - subroutine gdt_to_gds(igdtnum, igdstmpl, igdtlen, kgds, ni, nj, res) -!$$$ subprogram documentation block -! -! subprogram: gdt_to_gds -! prgmmr: gayno org: w/np2 date: 2014-sep-26 -! -! abstract: convert from the grib2 grid description template array -! used by the ncep grib2 library, to the grib1 grid -! description section array used by ncep ipolates library. -! -! program history log: -! 2014-sep-26 gayno - initial version -! -! usage: call gds_to_gds(igdtnum,igdstmpl,igdtlen,kgds,ni,nj,res) -! -! input argument list: -! igdtnum - grib2 grid desc template number -! igdstmpl - grib2 grid desc template array -! igdtlen - grib2 grid desc template array size -! -! output argument list: -! kgds - grib1 grid description section array -! used by ncep ipolates library. -! ni,nj - i/j grid dimensions -! res - grid resolution in km -! -! files: none -! -! condition codes: -! 50 - unrecognized model grid type; fatal -! -! remarks: none. -! -!$$$ - - implicit none - - integer, intent(in ) :: igdtnum, igdtlen, igdstmpl(igdtlen) - integer, intent( out) :: kgds(200), ni, nj - integer :: iscale - - real, intent( out) :: res - - kgds=0 - - if (igdtnum.eq.0) then ! lat/lon grid - - iscale=igdstmpl(10)*igdstmpl(11) - if (iscale == 0) iscale = 1e6 - kgds(1)=0 ! oct 6 - kgds(2)=igdstmpl(8) ! octs 7-8, Ni - ni = kgds(2) - kgds(3)=igdstmpl(9) ! octs 9-10, Nj - nj = kgds(3) - kgds(4)=nint(float(igdstmpl(12))/float(iscale)*1000.) ! octs 11-13, Lat of 1st grid point - kgds(5)=nint(float(igdstmpl(13))/float(iscale)*1000.) ! octs 14-16, Lon of 1st grid point - - kgds(6)=0 ! oct 17, resolution and component flags - if (igdstmpl(1)==2 ) kgds(6)=64 - if ( btest(igdstmpl(14),4).OR.btest(igdstmpl(14),5) ) kgds(6)=kgds(6)+128 - if ( btest(igdstmpl(14),3) ) kgds(6)=kgds(6)+8 - - kgds(7)=nint(float(igdstmpl(15))/float(iscale)*1000.) ! octs 18-20, Lat of last grid point - kgds(8)=nint(float(igdstmpl(16))/float(iscale)*1000.) ! octs 21-23, Lon of last grid point - kgds(9)=nint(float(igdstmpl(17))/float(iscale)*1000.) ! octs 24-25, di - kgds(10)=nint(float(igdstmpl(18))/float(iscale)*1000.) ! octs 26-27, dj - - kgds(11) = 0 ! oct 28, scan mode - if (btest(igdstmpl(19),7)) kgds(11) = 128 - if (btest(igdstmpl(19),6)) kgds(11) = kgds(11) + 64 - if (btest(igdstmpl(19),5)) kgds(11) = kgds(11) + 32 - - kgds(12)=0 ! octs 29-32, reserved - kgds(19)=0 ! oct 4, # vert coordinate parameters - kgds(20)=255 ! oct 5, used for thinned grids, set to 255 - - res = float(kgds(9)) / 1000.0 * 111.0 - - elseif (igdtnum.eq.40) then ! Gaussian Lat/Lon grid - - iscale=igdstmpl(10)*igdstmpl(11) - if (iscale==0) iscale=1e6 - kgds(1)=4 ! oct 6 - kgds(2)=igdstmpl(8) ! octs 7-8, Ni - ni = kgds(2) - kgds(3)=igdstmpl(9) ! octs 9-10, Nj - nj = kgds(3) - kgds(4)=nint(float(igdstmpl(12))/float(iscale)*1000.) ! octs 11-13, Lat of 1st grid point - kgds(5)=nint(float(igdstmpl(13))/float(iscale)*1000.) ! octs 14-16, Lon of 1st grid point - - kgds(6)=0 ! oct 17, resolution and component flags - if (igdstmpl(1)==2 ) kgds(6)=64 - if ( btest(igdstmpl(14),4).OR.btest(igdstmpl(14),5) ) kgds(6)=kgds(6)+128 - if ( btest(igdstmpl(14),3) ) kgds(6)=kgds(6)+8 - - kgds(7)=nint(float(igdstmpl(15))/float(iscale)*1000.) ! octs 18-20, Lat of last grid point - kgds(8)=nint(float(igdstmpl(16))/float(iscale)*1000.) ! octs 21-23, Lon of last grid point - kgds(9)=nint(float(igdstmpl(17))/float(iscale)*1000.) ! octs 24-25, Di - kgds(10)=igdstmpl(18) ! octs 26-27, Number of parallels - - kgds(11) = 0 ! oct 28, scan mode - if (btest(igdstmpl(19),7)) kgds(11) = 128 - if (btest(igdstmpl(19),6)) kgds(11) = kgds(11) + 64 - if (btest(igdstmpl(19),5)) kgds(11) = kgds(11) + 32 - - kgds(12)=0 ! octs 29-32, reserved - kgds(19)=0 ! oct 4, # vert coordinate parameters - kgds(20)=255 ! oct 5, used for thinned grids, set to 255 - - res = float(kgds(9)) / 1000.0 * 111.0 - - elseif (igdtnum.eq.20) then ! Polar Stereographic Grid - - iscale=1e6 - kgds(1)=5 ! oct 6, data representation type, polar - kgds(2)=igdstmpl(8) ! octs 7-8, nx - ni = kgds(2) - kgds(3)=igdstmpl(9) ! octs 8-10, ny - nj = kgds(3) - kgds(4)=nint(float(igdstmpl(10))/float(iscale)*1000.) ! octs 11-13, lat of 1st grid point - kgds(5)=nint(float(igdstmpl(11))/float(iscale)*1000.) ! octs 14-16, lon of 1st grid point - - kgds(6)=0 ! oct 17, resolution and component flags - if (igdstmpl(1) >= 2 .or. igdstmpl(1) <= 5) kgds(6)=64 - if (igdstmpl(1) == 7) kgds(6)=64 - if ( btest(igdstmpl(12),4).OR.btest(igdstmpl(12),5) ) kgds(6)=kgds(6)+128 - if ( btest(igdstmpl(12),3) ) kgds(6)=kgds(6)+8 - - kgds(7)=nint(float(igdstmpl(14))/float(iscale)*1000.) ! octs 18-20, lon of orientation - kgds(8)=nint(float(igdstmpl(15))/float(iscale)*1000.) ! octs 21-23, dx - kgds(9)=nint(float(igdstmpl(16))/float(iscale)*1000.) ! octs 24-26, dy - - kgds(10)=0 ! oct 27, projection center flag - if (btest(igdstmpl(17),1)) kgds(10) = 128 - - kgds(11) = 0 ! oct 28, scan mode - if (btest(igdstmpl(18),7)) kgds(11) = 128 - if (btest(igdstmpl(18),6)) kgds(11) = kgds(11) + 64 - if (btest(igdstmpl(18),5)) kgds(11) = kgds(11) + 32 - - kgds(19)=0 ! oct 4, # vert coordinate parameters - kgds(20)=255 ! oct 5, used for thinned grids, set to 255 - - res = 0.5 * float(kgds(8)+kgds(9)) / 1000. - - elseif (igdtnum.eq.1) then ! Rotated Lat/Lon grid - - if (btest(igdstmpl(19),2)) then ! e-stagger, bit 6 of scan mode is '1' - - iscale=igdstmpl(10)*igdstmpl(11) - if (iscale == 0) iscale = 1e6 - kgds(1)=203 ! oct 6, "E" grid - kgds(2)=igdstmpl(8) ! octs 7-8, Ni - ni = kgds(2) - kgds(3)=igdstmpl(9) ! octs 9-10, Nj - nj = kgds(3) - kgds(4)=nint(float(igdstmpl(12))/float(iscale)*1000.) ! octs 11-13, Lat of 1st grid point - kgds(5)=nint(float(igdstmpl(13))/float(iscale)*1000.) ! octs 14-16, Lon of 1st grid point - - kgds(6)=0 ! oct 17, resolution and component flags - if (igdstmpl(1)==2 ) kgds(6)=64 - if ( btest(igdstmpl(14),4).OR.btest(igdstmpl(14),5) ) kgds(6)=kgds(6)+128 - if ( btest(igdstmpl(14),3) ) kgds(6)=kgds(6)+8 - - kgds(7)=nint(float(igdstmpl(20))/float(iscale)*1000.)+90000 ! octs 18-20, Lat of cent of rotation - kgds(8)=nint(float(igdstmpl(21))/float(iscale)*1000.) ! octs 21-23, Lon of cent of rotation - kgds(9)=nint(float(igdstmpl(17))/float(iscale)*500.) ! octs 24-25, Di - ! Note!! grib 2 convention twice grib 1 - kgds(10)=nint(float(igdstmpl(18))/float(iscale)*1000.) ! octs 26-27, Dj - - kgds(11) = 0 ! oct 28, scan mode - if (btest(igdstmpl(19),7)) kgds(11) = 128 - if (btest(igdstmpl(19),6)) kgds(11) = kgds(11) + 64 - if (btest(igdstmpl(19),5)) kgds(11) = kgds(11) + 32 - - kgds(12)=0 ! octs 29-32, reserved - kgds(19)=0 ! oct 4, # vert coordinate parameters - kgds(20)=255 ! oct 5, used for thinned grids, set to 255 - - res = sqrt( (float(kgds(9)) / 1000.0)**2 + & - (float(kgds(10)) / 1000.0)**2 ) - res = res * 111.0 - - else ! b-stagger - - iscale=igdstmpl(10)*igdstmpl(11) - if (iscale == 0) iscale = 1e6 - kgds(1)=205 ! oct 6, rotated lat/lon for Non-E Stagger grid - kgds(2)=igdstmpl(8) ! octs 7-8, Ni - ni = kgds(2) - kgds(3)=igdstmpl(9) ! octs 9-10, Nj - nj = kgds(3) - kgds(4)=nint(float(igdstmpl(12))/float(iscale)*1000.) ! octs 11-13, Lat of 1st grid point - kgds(5)=nint(float(igdstmpl(13))/float(iscale)*1000.) ! octs 14-16, Lon of 1st grid point - - kgds(6)=0 ! oct 17, resolution and component flags - if (igdstmpl(1)==2 ) kgds(6)=64 - if ( btest(igdstmpl(14),4).OR.btest(igdstmpl(14),5) ) kgds(6)=kgds(6)+128 - if ( btest(igdstmpl(14),3) ) kgds(6)=kgds(6)+8 - - kgds(7)=nint(float(igdstmpl(20))/float(iscale)*1000.)+90000 ! octs 18-20, Lat of cent of rotation - kgds(8)=nint(float(igdstmpl(21))/float(iscale)*1000.) ! octs 21-23, Lon of cent of rotation - kgds(9)=nint(float(igdstmpl(17))/float(iscale)*1000.) ! octs 24-25, Di - kgds(10)=nint(float(igdstmpl(18))/float(iscale)*1000.) ! octs 26-27, Dj - - kgds(11) = 0 ! oct 28, scan mode - if (btest(igdstmpl(19),7)) kgds(11) = 128 - if (btest(igdstmpl(19),6)) kgds(11) = kgds(11) + 64 - if (btest(igdstmpl(19),5)) kgds(11) = kgds(11) + 32 - - kgds(12)=nint(float(igdstmpl(15))/float(iscale)*1000.) ! octs 29-31, Lat of last grid point - kgds(13)=nint(float(igdstmpl(16))/float(iscale)*1000.) ! octs 32-34, Lon of last grid point - - kgds(19)=0 ! oct 4, # vert coordinate parameters - kgds(20)=255 ! oct 5, used for thinned grids, set to 255 - - res = ((float(kgds(9)) / 1000.0) + (float(kgds(10)) / 1000.0)) & - * 0.5 * 111.0 - - endif - - else - - print*,'- FATAL ERROR CONVERTING TO GRIB2 GDT.' - print*,'- UNRECOGNIZED GRID TYPE.' - call w3tage('SNOW2MDL') - call errexit(50) - - endif - - end subroutine gdt_to_gds - - subroutine grib2_check (kgds, igdstmplen) -!$$$ subprogram documentation block -! -! subprogram: grib2_check -! prgmmr: gayno org: w/np2 date: 2014-sep-28 -! -! abstract: determine length of grib2 gds template array, -! which is a function of the map projection. -! -! program history log: -! 2014-sep-28 gayno - initial version -! -! usage: call grib2_check (kgds, igdstmplen) -! -! input argument list: kgds - grib1 gds array -! -! output argument list: igdstmplen - length of gds template -! array. -! -! files: none -! -! condition codes: -! 47 - unrecognized grid type; fatal -! -! remarks: call this routine before init_grib2. -! -!$$$ - - implicit none - - integer, intent(in) :: kgds(200) - integer, intent( out) :: igdstmplen - - select case (kgds(1)) - case(4) ! gaussian - igdstmplen = 19 - case(203, 205) ! rotated lat/lon "B" or "E" stagger - igdstmplen = 22 - case default - print*,'- FATAL ERROR IN ROUTINE GRIB2_CHECK.' - print*,'- UNRECOGNIZED GRID TYPE.' - call w3tage('SNOW2MDL') - call errexit(47) - end select - - end subroutine grib2_check - - subroutine init_grib2(century, year, month, day, hour, kgds, & - lat11, latlast, lon11, lonlast, & - listsec0, listsec1, igds, ipdstmpl, ipdsnum, igdstmpl, & - igdstmplen, idefnum, ideflist, ngrdpts) -!$$$ subprogram documentation block -! -! subprogram: init_grib2 -! prgmmr: gayno org: w/np2 date: 2014-sep-28 -! -! abstract: initialize grib2 arrays required by the ncep g2 library -! according to grib1 gds information. the grib1 gds is -! held in the kgds array, which is used by the ncep ipolates -! and w3nco (grib 1) libraries. -! -! program history log: -! 2014-sep-28 gayno - initial version -! -! usage: init_grib2(century, year, month, day, hour, kgds, & -! lat11, latlast, lon11, lonlast, & -! listsec0, listsec1, igds, ipdstmpl, ipdsnum, igdstmpl, & -! igdstmplen, idefnum, ideflist, ngrdpts) -! -! input argument list: -! century/year/month/day/hour - current date/time info -! kgds - grib1 gds information -! igdstmplen - length of grib2 gdt -! template. -! lat11, lon11 - lat/lon of first grid point -! latlast, lonlast - lat/lon of last grid point -! -! output argument list: -! igds - grib2 section 3 information. -! listsec0 - grib2 section 0 information. -! listsec1 - grib2 section 1 information. -! ipdsnum - grib2 pds template number -! ipdstmpl - grib2 pds template array -! igdstmpl - grib2 gds template array -! idefnum/ideflist - information for non-reg grid, -! # grid points in each row. -! ngrdpts - number of model grid points. -! -! files: -! input: none -! -! output: none -! -! condition codes: none -! -! remarks: call routine grib2_check first to determine igdstmplen. -! -!$$$ - - implicit none - - integer, intent(in ) :: century, year, month, day, hour - integer, intent(in ) :: kgds(200), igdstmplen - integer, intent( out) :: igds(5) - integer, intent( out) :: listsec0(2) - integer, intent( out) :: listsec1(13) - integer, intent( out) :: ipdstmpl(15), ipdsnum - integer, intent( out) :: igdstmpl(igdstmplen) - integer, intent( out) :: idefnum, ideflist - integer, intent( out) :: ngrdpts - - real, intent(in ) :: lat11, latlast, lon11, lonlast - real :: scale - -! Section 0 - - listsec0(1)=0 ! discipline, meteorological fields - listsec0(2)=2 ! grib version 2 - -! Section 1 - - listsec1(1)=7 ! id of center (ncep) - listsec1(2)=4 ! subcenter (emc) - listsec1(3)=8 ! master table version number. wgrib2 does not recognize later tables - listsec1(4)= 0 ! local table not used - listsec1(5)= 0 ! signif of ref time - analysis - if (year == 100) then - listsec1(6)=century*100 + year - else - listsec1(6)=(century-1)*100 + year - endif - listsec1(7)=month - listsec1(8)=day - listsec1(9)=hour - listsec1(10:11)=0 ! minutes/secs - listsec1(12)=0 ! production status of data - ops products - listsec1(13)=0 ! type of processed products - analysis - -! Section 2 - not used - -! Section 3 - grid description section - - if (kgds(1) == 4) then ! gaussian - - igdstmpl(1)=5 ! oct 15; shape of the earth, wgs84 - igdstmpl(2)=255 ! oct 16; scale factor of radius of spherical earth, not used. - igdstmpl(3)=-1 ! octs 17-20; scale value of radius of spherical earth, not used. - igdstmpl(4)=255 ! oct 21; scale factor of major axis of elliptical earth, not used. - igdstmpl(5)=-1 ! octs 22-25; scaled value of major axis of elliptical earth, not used. - igdstmpl(6)=255 ! oct 26; scale factor of minor axis of elliptical earth, not used. - igdstmpl(7)=-1 ! octs 27-30; scaled value of minor axis of elliptical earth, not used. - igdstmpl(8)=kgds(2) ! octs 31-34; # "i" points - igdstmpl(9)=kgds(3) ! octs 35-38; # "j" points - igdstmpl(10)=1 ! octs 39-42; basic angle - igdstmpl(11)=10**6 ! octs 43-46; subdivisions of basic angle - - scale=float(igdstmpl(10)*igdstmpl(11)) - - igdstmpl(12)=nint(lat11*scale) ! octs 47-50; lat of first grid point - - if (lon11 < 0) then - igdstmpl(13)=nint((lon11+360.)*scale) ! octs 51-54; lon of first grid point - else - igdstmpl(13)=nint(lon11*scale) - endif - - igdstmpl(14) = 0 ! oct 55; resolution and component flags - if (btest(kgds(6),7)) igdstmpl(14) = 48 - if (btest(kgds(6),3)) igdstmpl(14) = igdstmpl(14) + 8 - - igdstmpl(15)= nint(latlast*scale) ! octs 56-59; lat of last grid point - - if (lonlast < 0) then - igdstmpl(16)=nint((lonlast+360.)*scale) ! octs 60-63; lon of last grid point - else - igdstmpl(16)=nint(lonlast*scale) - endif - - igdstmpl(17)= nint(360.0/float(kgds(2)-1)*scale) ! octs 64-67; di of grid - igdstmpl(18)= kgds(3)/2 ! octs 68-71; # grid pts between pole and equator - - igdstmpl(19)=0 ! oct 72; scanning mode flag - if(btest(kgds(11),7)) igdstmpl(19)=128 - if(btest(kgds(11),6)) igdstmpl(19)=igdstmpl(19) + 64 - if(btest(kgds(11),5)) igdstmpl(19)=igdstmpl(19) + 32 - - igds(1) = 0 ! oct 6; source of grid def. specif in table 3.1 - igds(2) = kgds(2)*kgds(3) ! num grid points - igds(3) = 0 ! # octets for additional grid pt def (use '0' for regular grid) - igds(4) = 0 ! regular grid, no appended list - igds(5) = 40 ! gaussian - - ngrdpts = igds(2) - -! These variables used for non-regular grids. We are using regular grids -! (igds(3) equals 0). - - idefnum=1 - ideflist=0 - - elseif (kgds(1) == 203 .or. kgds(1) == 205) then - - igdstmpl(1)=5 ! oct 15; shape of the earth, wgs84 - igdstmpl(2)=255 ! oct 16; scale factor of radius of spherical earth, not used. - igdstmpl(3)=-1 ! octs 17-20; scale value of radius of spherical earth, not used. - igdstmpl(4)=255 ! oct 21; scale factor of major axis of elliptical earth, not used. - igdstmpl(5)=-1 ! octs 22-25; scaled value of major axis of elliptical earth, not used. - igdstmpl(6)=255 ! oct 26; scale factor of minor axis of elliptical earth, not used. - igdstmpl(7)=-1 ! octs 27-30; scaled value of minor axis of elliptical earth, not used. - igdstmpl(8)=kgds(2) ! octs 31-34; # "i" points - igdstmpl(9)=kgds(3) ! octs 35-38; # "j" points - igdstmpl(10)=1 ! octs 39-42; basic angle - igdstmpl(11)=10**6 ! octs 43-46; subdivisions of basic angle - - scale=float(igdstmpl(10)*igdstmpl(11)) - - igdstmpl(12)=nint(lat11*scale) ! octs 47-50; lat of first grid point - - if (lon11 < 0) then - igdstmpl(13)=nint((lon11+360.)*scale) ! octs 51-54; lon of first grid point - else - igdstmpl(13)=nint(lon11*scale) - endif - - igdstmpl(14) = 0 ! oct 55; resolution and component flags - if (btest(kgds(6),7)) igdstmpl(14) = 48 - if (btest(kgds(6),3)) igdstmpl(14) = igdstmpl(14) + 8 - - igdstmpl(15)= nint(latlast*scale) ! octs 56-59; lat of last grid point - - if (lonlast < 0) then - igdstmpl(16)=nint((lonlast+360.)*scale) ! octs 60-63; lon of last grid point - else - igdstmpl(16)=nint(lonlast*scale) - endif - - if (kgds(1) == 203) igdstmpl(17)= nint(float(kgds(9))*scale/500.) ! octs 64-67; di of grid. - ! iplib "e" grid convention - ! is 1/2 the grib convention. - if (kgds(1) == 205) igdstmpl(17)= nint(float(kgds(9))*scale/1000.) ! octs 64-67; di of grid - - igdstmpl(18)= nint(float(kgds(10))*scale/1000.) ! octs 68-71; dj of grid - - igdstmpl(19)=0 ! oct 72; scanning mode flag - if(btest(kgds(11),7)) igdstmpl(19)=128 - if(btest(kgds(11),6)) igdstmpl(19)=igdstmpl(19) + 64 - if(btest(kgds(11),5)) igdstmpl(19)=igdstmpl(19) + 32 - if (kgds(1) == 203) igdstmpl(19)=igdstmpl(19) + 4 - - igdstmpl(20) = nint(float(kgds(7)-90000)*scale/1000.) ! octs 73-76; lat of south pole of projection - - if (kgds(8) < 0) then - igdstmpl(21) = nint(float(kgds(8)+360000)*scale/1000.) ! octs 77-80; long of southern pole of projection. - else - igdstmpl(21) = nint(float(kgds(8))*scale/1000.) ! octs 77-80; long of southern pole of projection. - endif - - igdstmpl(22)=0 ! octs 81-84; angle of rotation of projection - - igds(1) = 0 ! oct 6; source of grid def. specif in table 3.1 - igds(2) = kgds(2)*kgds(3) ! num grid points - igds(3) = 0 ! # octets for additional grid pt def (use '0' for regular grid) - igds(4) = 0 ! regular grid, no appended list - igds(5) = 1 ! rotated lat/lon - - ngrdpts = igds(2) - -! These variables used for non-regular grids. We are using regular grids -! (igds(3) equals 0). - - idefnum=1 - ideflist=0 - - end if - -! Section 4 - product definition section - - ipdsnum = 0 ! pds template number - table 4.0 - - ipdstmpl(1)= 1 ! oct 10; parameter category -! note!! to use a parmeter number >= 192 you must set the local table to '1' - ipdstmpl(2)= 42 ! oct 11; parameter - ipdstmpl(3)= 0 ! oct 12; type of generating process - ipdstmpl(4)= 255 ! oct 13; background generating process identifier - ipdstmpl(5)= 84 ! oct 14; analysis generating process identifier - ipdstmpl(6)= 0 ! octs 15-16; hours after ob cutoff - ipdstmpl(7)= 0 ! oct 17; minutes after ob cutoff - ipdstmpl(8)= 1 ! oct 18; unit of time range - ipdstmpl(9)= 0 ! octs 19-22; forecast time in units defined by oct 18 - ipdstmpl(10)=1 ! oct 23; type of first fixed surface - ipdstmpl(11)=0 ! oct 24; scale factor of first fixed surface - ipdstmpl(12)=0 ! octs 25-28; scale value of first fixed surface - ipdstmpl(13)=255 ! oct 29; type of second fixed surface - ipdstmpl(14)=255 ! oct 30; scale factor of second fixed surface - ipdstmpl(15)=-2147483647 ! octs 31-34; scaled value of second fixed surface - ! note! for these particular octets, using -1 as - ! missing does not work because -1 may be an actual - ! scaled value. after looking thru the g2 library - ! and some trial and error, i determined that missing - ! is minus 2**31-1. - - end subroutine init_grib2 - - subroutine grib2_null(gfld) -!$$$ subprogram documentation block -! -! subprogram: grib2_null -! prgmmr: gayno org: w/np2 date: 2014-sep-28 -! -! abstract: nullify the grib2 gribfield pointers. -! -! program history log: -! 2014-sep-28 gayno - initial version -! -! usage: call grib2_null with a gribfield data structure -! -! input argument list: -! gfld - a gribfield data structure -! -! output argument list: -! gfld - a gribfield data structure -! -! files: none -! -! condition codes: none -! -! remarks: none -! -!$$$ - - use grib_mod - - implicit none - - type(gribfield), intent(inout) :: gfld - - nullify(gfld%idsect) - nullify(gfld%local) - nullify(gfld%list_opt) - nullify(gfld%igdtmpl) - nullify(gfld%ipdtmpl) - nullify(gfld%coord_list) - nullify(gfld%idrtmpl) - nullify(gfld%bmap) - nullify(gfld%fld) - - end subroutine grib2_null - - subroutine grib2_free(gfld) -!$$$ subprogram documentation block -! -! subprogram: grib2_free -! prgmmr: gayno org: w/np2 date: 2014-sep-28 -! -! abstract: deallocate the grib2 gribfield pointers. -! -! program history log: -! 2014-sep-28 gayno - initial version -! -! usage: call grib2_free with a gribfield data structure -! -! input argument list: -! gfld - a gribfield data structure -! -! output argument list: -! gfld - a gribfield data structure -! -! files: none -! -! condition codes: none -! -! remarks: none -! -!$$$ - - use grib_mod - - implicit none - - type(gribfield), intent(inout) :: gfld - - if (associated(gfld%idsect)) deallocate(gfld%idsect) - if (associated(gfld%local)) deallocate(gfld%local) - if (associated(gfld%list_opt)) deallocate(gfld%list_opt) - if (associated(gfld%igdtmpl)) deallocate(gfld%igdtmpl) - if (associated(gfld%ipdtmpl)) deallocate(gfld%ipdtmpl) - if (associated(gfld%coord_list)) deallocate(gfld%coord_list) - if (associated(gfld%idrtmpl)) deallocate(gfld%idrtmpl) - if (associated(gfld%bmap)) deallocate(gfld%bmap) - if (associated(gfld%fld)) deallocate(gfld%fld) - - end subroutine grib2_free diff --git a/sorc/emcsfc_snow2mdl.fd/make.sh b/sorc/emcsfc_snow2mdl.fd/make.sh deleted file mode 100755 index 1bcd8e445a..0000000000 --- a/sorc/emcsfc_snow2mdl.fd/make.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -make clean -make -rc=$? - -if ((rc != 0));then - echo "ERROR BUILDING EMCSFC_SNOW2MDL" - exit $rc -else - make install -fi - -exit diff --git a/sorc/emcsfc_snow2mdl.fd/makefile b/sorc/emcsfc_snow2mdl.fd/makefile deleted file mode 100755 index ef4b705f73..0000000000 --- a/sorc/emcsfc_snow2mdl.fd/makefile +++ /dev/null @@ -1,44 +0,0 @@ -SHELL= /bin/sh - -#------------------------------------------------------------------------ -# Makefile for emcsfc_snow2mdl program. -# -# Before invoking, read the README.build file for details. -#------------------------------------------------------------------------ - -CMD= emcsfc_snow2mdl - -OBJS = driver.o \ - program_setup.o \ - snowdat.o \ - model_grid.o \ - grib_utils.o \ - snow2mdl.o - -LIBS= $(G2_LIBd) $(IP_LIBd) $(SP_LIBd) $(LANDSFCUTIL_LIBd) $(BACIO_LIB4) \ - $(W3NCO_LIBd) $(JASPER_LIB) $(PNG_LIB) $(Z_LIB) - -$(CMD): $(OBJS) - $(FCOMP) $(FFLAGS) -o $(CMD) $(OBJS) $(LIBS) - -driver.o: snowdat.o model_grid.o snow2mdl.o program_setup.o driver.f - $(FCOMP) $(FFLAGS) -c driver.f -program_setup.o: program_setup.f - $(FCOMP) $(FFLAGS) -c program_setup.f -snowdat.o: program_setup.o model_grid.o snowdat.f - $(FCOMP) $(FFLAGS) -I$(G2_INCd) -c snowdat.f -model_grid.o: program_setup.o model_grid.f - $(FCOMP) $(FFLAGS) -I$(G2_INCd) -c model_grid.f -snow2mdl.o: snowdat.o program_setup.o model_grid.o snow2mdl.f - $(FCOMP) $(FFLAGS) -I$(LANDSFCUTIL_INCd) -I$(G2_INCd) -c snow2mdl.f -grib_utils.o: grib_utils.f - $(FCOMP) $(FFLAGS) -I$(G2_INCd) -c grib_utils.f -all: check_prereqs $(CMD) -clean: - rm -f *.o *.mod $(CMD) ../../exec/$(CMD) -install: - /usr/bin/install -c -d ../../exec - /usr/bin/install -c $(CMD) ../../exec -check_prereqs: - /nwprod/spa_util/check_libs.bash $(LIBS) - /nwprod/spa_util/check_incs.bash $(G2_INCd)/grib_mod.mod $(LANDSFCUTIL_INCd)/consts.mod diff --git a/sorc/emcsfc_snow2mdl.fd/model_grid.f b/sorc/emcsfc_snow2mdl.fd/model_grid.f deleted file mode 100755 index b688759ee9..0000000000 --- a/sorc/emcsfc_snow2mdl.fd/model_grid.f +++ /dev/null @@ -1,639 +0,0 @@ - module model_grid -!$$$ module documentation block -! -! module: model_grid -! prgmmr: gayno org: w/np2 date: 2005-dec-16 -! -! abstract: read in data defining the model grid. -! -! program history log: -! 2005-dec-16 gayno - initial version -! 2007-nov-30 gayno - improved method for thinning gfs grids. -! added nam b-grids. -! 2014-sep-29 gayno - add option to read model lat, lon and -! landmask data in grib2. -! -! usage: use model_grid -! -! remarks: some variable definitions -! grid_id_mdl - grib id of model grid, 4-gaussian, 203-egrid -! i/jpts_mdl - i/j index of point on full grid -! imdl - i-dimension of model grid -! jmdl - j-dimension of model grid -! ijmdl - total number of model land points -! kgds_mdl - holds grib gds info of model grid -! lats_mdl - latitudes of model grid points -! lons_mdl - longitudes of model grid points -! lonsperlat - for global grids, the number of i points -! in each row (decrease toward pole) -! lsmask_mdl - land mask of model grid (0 - non land, 1-land) -! for global grids run thinned, will contain -! a modified version of the original mask -! that has land at all points encompassed by a -! thinned point -! lsmask_mdl_sav - saved copy of land mask of model grid (0 - non land, 1-land) -! only used for global thinned grids. -! resol_mdl - approximate model resolution in km. -! thinned - when true, global grids will run thinned -! (# i points decrease toward pole) -! -!$$$ - - use program_setup, only : model_lsmask_file, & - model_lon_file, & - model_lat_file, & - gfs_lpl_file - - integer :: grid_id_mdl - integer :: imdl - integer :: jmdl - integer :: ijmdl ! only land points - integer, allocatable :: ipts_mdl(:), jpts_mdl(:) - - integer :: kgds_mdl(200) - integer, allocatable :: lonsperlat_mdl (:) - - logical :: thinned - - real, allocatable :: lats_mdl (:) - real :: lat11, latlast - real :: lon11, lonlast - real, allocatable :: lons_mdl (:) - real, allocatable :: lsmask_mdl (:,:) - real, allocatable :: lsmask_mdl_sav (:,:) - real :: resol_mdl ! in km - - contains - - subroutine read_mdl_grid_info -!$$$ subprogram documentation block -! -! subprogram: read_mdl_grid_info -! prgmmr: gayno org: w/np2 date: 2005-dec-16 -! -! abstract: read latitude, longitude, land/sea mask on the -! model grid. -! -! program history log: -! 2005-dec-16 gayno - initial version -! 2007-nov-30 gayno - improved method for thinning gfs grids -! added nam b-grids -! 2014-sep-29 gayno - add option to read lat,lon and mask -! data in grib2. -! -! usage: call read_mdl_grid_info -! -! input argument list: n/a -! -! output argument list: n/a -! -! files: -! inputs: -! - model latitudes (grib 1 or grib 2) -! - model longitudes (grib 1 or grib 2) -! - model landmask (grib 1 or grib 2) -! - # pts per row, gfs grid (the "lonsperlat" file, ascii) -! -! outputs: none -! -! condition codes: all fatal -! 76 - bad open/read gfs "lonsperlat" file -! 79 - unrecognized model grid -! 80 - bad open model latitude file -! 81 - bad read of model latitude grib 1 header -! 82 - bad read of model latitude data -! 83 - bad open model longitude file -! 82 - bad read of model longitude data -! 85 - bad open model landmask file -! 86 - bad read of model landmask data -! 90 - model latitude file not grib 1 or grib 2 -! 91 - model longitude file not grib 1 or grib 2 -! 92 - model landmask file not grib 1 or grib 2 -! -! remarks: none. -! -!$$$ - - use grib_mod ! grib 2 library - - implicit none - - character*150 :: fngrib - - integer :: i, j, ij, jj - integer :: ii, iii, istart, iend, imid - integer :: iret - integer :: isgrib - integer, parameter :: iunit = 14 ! unit of input grib file - integer, parameter :: iunit2 = 34 ! unit of input lonsperlat file - integer :: jgds(200) - integer :: jpds(200) - integer :: jdisc, jgdtn, jpdtn, k - integer :: jids(200), jgdt(200), jpdt(200) - integer :: lskip - integer, parameter :: lugi = 0 ! unit of grib index file - not used - integer :: kgds(200) - integer :: kpds(200) - integer :: message_num - integer :: numbytes - integer :: numpts - - logical*1, allocatable :: lbms(:) - logical :: unpack - - real :: gridis, gridie, fraction, x1, r - real, allocatable :: lats_mdl_temp (:,:) - real, allocatable :: lons_mdl_temp (:,:) - - type(gribfield) :: gfld - - print*,"- READ MODEL GRID INFORMATION" - -!----------------------------------------------------------------------- -! read latitudes on the model grid. first check if file is grib1 or 2. -!----------------------------------------------------------------------- - - fngrib = model_lat_file - - call grib_check(fngrib, isgrib) - - if (isgrib==0) then - print*,'- FATAL ERROR: MODEL LAT FILE MUST BE GRIB1 OR GRIB2 FORMAT' - call w3tage('SNOW2MDL') - call errexit(90) - end if - - print*,"- OPEN MODEL LAT FILE ", trim(fngrib) - call baopenr (iunit, fngrib, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR: BAD OPEN, IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(80) - end if - - if (isgrib==1) then ! grib 1 file - -!----------------------------------------------------------------------- -! tell degribber to search for latitudes -!----------------------------------------------------------------------- - - lskip = -1 ! read beginning of file - jgds = -1 - jpds = -1 - jpds(5) = 176 ! latitude - kgds = -1 - kpds = -1 - - print*,"- GET GRIB HEADER" - call getgbh(iunit, lugi, lskip, jpds, jgds, numbytes, & - numpts, message_num, kpds, kgds, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR: BAD READ OF GRIB HEADER. IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(81) - end if - -!----------------------------------------------------------------------- -! save gds for gribbing the interpolated data later. also required -! by ncep ipolates library. -!----------------------------------------------------------------------- - - kgds_mdl = kgds - -!----------------------------------------------------------------------- -! get model grid specs from header. model resolution (km) is used -! to determine the interpolation method. -!----------------------------------------------------------------------- - - grid_id_mdl = kpds(3) ! grib 1 grid id number. sect 1, oct 7 - - if (kgds(1) == 4) then ! gaussian grid - imdl = kgds(2) ! i-dimension of model grid - jmdl = kgds(3) ! j-dimension of model grid - resol_mdl = float(kgds(9)) / 1000.0 * 111.0 - else if (kgds(1) == 203) then ! e-grid - imdl = kgds(2) ! i-dimension of model grid - jmdl = kgds(3) ! j-dimension of model grid - resol_mdl = sqrt( (float(kgds(9)) / 1000.0)**2 + & - (float(kgds(10)) / 1000.0)**2 ) - resol_mdl = resol_mdl * 111.0 - else if (kgds(1) == 205) then ! b-grid - imdl = kgds(2) ! i-dimension of model grid - jmdl = kgds(3) ! j-dimension of model grid - resol_mdl = ((float(kgds(9)) / 1000.0) + (float(kgds(10)) / 1000.0)) & - * 0.5 * 111.0 - else - print*,'- FATAL ERROR: UNRECOGNIZED MODEL GRID.' - call w3tage('SNOW2MDL') - call errexit(79) - end if - - allocate(lats_mdl_temp(imdl,jmdl)) - allocate(lbms(imdl*jmdl)) - - print*,"- DEGRIB DATA" - call getgb(iunit, lugi, (imdl*jmdl), lskip, jpds, jgds, & - numpts, message_num, kpds, kgds, lbms, lats_mdl_temp, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR: BAD DEGRIB OF FILE. IRET IS ',iret - call w3tage('SNOW2MDL') - call errexit(82) - end if - - deallocate(lbms) - - lat11 = lats_mdl_temp(1,1) - latlast = lats_mdl_temp(imdl,jmdl) - - elseif (isgrib==2) then ! grib 2 file - - j = 0 ! search at beginning of file - jdisc = 0 ! search for discipline; 0 - meteorological products - jpdtn = -1 ! search for any product definition template number - jgdtn = -1 ! search for any grid definition template number - jids = -9999 ! array of values in identification section, set to wildcard - jgdt = -9999 ! array of values in grid definition template 3.m - jpdt = -9999 ! array of values in product definition template 4.n - jpdt(1) = 191 ! search for parameter category - misc - jpdt(2) = 1 ! search for parameter number - latitude - unpack = .true. ! unpack data - - call grib2_null(gfld) - - print*,"- DEGRIB DATA" - call getgb2(iunit, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, & - unpack, k, gfld, iret) - - if (iret /=0) then - print*,'- FATAL ERROR: BAD DEGRIB OF FILE, IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(82) - endif - -!----------------------------------------------------------------------- -! create the grib 1 gds array from the g2 gdt array. the grib 1 -! gds info is used by ipolates and for gribbing the final snow analysis. -!----------------------------------------------------------------------- - - call gdt_to_gds(gfld%igdtnum, gfld%igdtmpl, gfld%igdtlen, kgds_mdl, & - imdl, jmdl, resol_mdl) - - grid_id_mdl = 255 ! grib1 grid id number. n/a for grib2. - ! set to 'missing'. - - allocate(lats_mdl_temp(imdl,jmdl)) - lats_mdl_temp = reshape (gfld%fld , (/imdl,jmdl/) ) - - lat11 = lats_mdl_temp(1,1) - latlast = lats_mdl_temp(imdl,jmdl) - - call grib2_free(gfld) - - endif ! grib1 or grib2? - - call baclose(iunit,iret) - -!----------------------------------------------------------------------- -! read longitudes on the model grid. -!----------------------------------------------------------------------- - - fngrib = model_lon_file - - call grib_check(fngrib, isgrib) - - if (isgrib==0) then - print*,'- FATAL ERROR: MODEL LON FILE MUST BE GRIB1 OR GRIB2 FORMAT' - call w3tage('SNOW2MDL') - call errexit(91) - end if - - print*,"- OPEN MODEL LON FILE ", trim(fngrib) - call baopenr (iunit, fngrib, iret) - - if (iret /= 0) then - print*,"- FATAL ERROR: BAD OPEN. IRET IS ", iret - call w3tage('SNOW2MDL') - call errexit(83) - end if - - if (isgrib==1) then ! grib 1 file - - lskip = -1 - kgds = -1 - kpds = -1 - jgds = -1 - jpds = -1 - jpds(5) = 177 ! longitude - - allocate(lons_mdl_temp(imdl,jmdl)) - allocate(lbms(imdl*jmdl)) - - print*,"- DEGRIB DATA" - call getgb(iunit, lugi, (imdl*jmdl), lskip, jpds, jgds, & - numpts, message_num, kpds, kgds, lbms, lons_mdl_temp, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR: BAD DEGRIB OF DATA. IRET IS ',iret - call w3tage('SNOW2MDL') - call errexit(84) - end if - - deallocate(lbms) - - lon11 = lons_mdl_temp(1,1) - lonlast = lons_mdl_temp(imdl,jmdl) - - elseif (isgrib==2) then ! grib2 - - j = 0 ! search at beginning of file - jdisc = 0 ! search for discipline; 0 - meteorological products - jpdtn = -1 ! search for any product definition template number - jgdtn = -1 ! search for any grid definition template number - jids = -9999 ! array of values in identification section, set to wildcard - jgdt = -9999 ! array of values in grid definition template 3.m - jpdt = -9999 ! array of values in product definition template 4.n - jpdt(1) = 191 ! search for parameter category - misc - jpdt(2) = 2 ! search for parameter number - longitude - unpack = .true. ! unpack data - - call grib2_null(gfld) - - print*,"- DEGRIB DATA" - call getgb2(iunit, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, & - unpack, k, gfld, iret) - - if (iret /=0) then - print*,'- FATAL ERROR: BAD DEGRIB OF FILE, IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(84) - endif - - allocate(lons_mdl_temp(imdl,jmdl)) - lons_mdl_temp = reshape (gfld%fld , (/imdl,jmdl/) ) - - lon11 = lons_mdl_temp(1,1) - lonlast = lons_mdl_temp(imdl,jmdl) - - call grib2_free(gfld) - - endif ! grib1 or grib? - - call baclose(iunit, iret) - -!----------------------------------------------------------------------- -! read model land/sea mask. -!----------------------------------------------------------------------- - - fngrib = model_lsmask_file - - call grib_check(fngrib, isgrib) - - if (isgrib==0) then - print*,'- FATAL ERROR: MODEL LANDMASK FILE MUST BE GRIB1 OR GRIB2 FORMAT' - call w3tage('SNOW2MDL') - call errexit(92) - end if - - print*,"- OPEN MODEL LANDMASK FILE ", trim(fngrib) - call baopenr (iunit, fngrib, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR: BAD OPEN OF FILE. IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(85) - end if - - if (isgrib==1) then ! grib 1 file - - lskip = -1 - kgds = -1 - kpds = -1 - jpds = -1 - jgds = -1 - jpds(5) = 81 ! land-sea mask - - allocate(lsmask_mdl(imdl,jmdl)) - allocate(lbms(imdl*jmdl)) - - print*,"- DEGRIB DATA" - call getgb(iunit, lugi, (imdl*jmdl), lskip, jpds, jgds, & - numpts, message_num, kpds, kgds, lbms, lsmask_mdl, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR: BAD DEGRIB OF DATA. IRET IS ',iret - call w3tage('SNOW2MDL') - call errexit(86) - end if - - deallocate (lbms) - - elseif (isgrib==2) then ! grib2 - - j = 0 ! search at beginning of file - jdisc = 2 ! search for discipline; 2 - land-sfc products - jpdtn = -1 ! search for any product definition template number - jgdtn = -1 ! search for any grid definition template number - jids = -9999 ! array of values in identification section, set to wildcard - jgdt = -9999 ! array of values in grid definition template 3.m - jpdt = -9999 ! array of values in product definition template 4.n - jpdt(1) = 0 ! search for parameter category - veg_biomass - jpdt(2) = 0 ! search for parameter number - landcover - unpack = .true. ! unpack data - - call grib2_null(gfld) - - print*,"- DEGRIB DATA" - call getgb2(iunit, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, & - unpack, k, gfld, iret) - - if (iret /=0) then - print*,'- FATAL ERROR: BAD DEGRIB OF FILE, IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(86) - endif - - allocate(lsmask_mdl(imdl,jmdl)) - lsmask_mdl = reshape (gfld%fld , (/imdl,jmdl/) ) - - call grib2_free(gfld) - - endif - - call baclose(iunit,iret) - -!----------------------------------------------------------------------- -! global model runs on a thinned grid (# grid points decreases -! towards the poles). if thinned logical is set, and this is a -! gaussian grid, modify the land/sea mask to account for the -! fact that delta x increases toward the poles. -!----------------------------------------------------------------------- - - thinned=.false. - if (kgds(1) == 4 .and. (len_trim(gfs_lpl_file) > 0)) then - - thinned=.true. - - print*,"- RUNNING A THINNED GRID" - - allocate (lonsperlat_mdl(jmdl/2)) - - print*,"- OPEN/READ GFS LONSPERLAT FILE: ",trim(gfs_lpl_file) - open (iunit2, file=trim(gfs_lpl_file), iostat=iret) - if (iret /= 0) then - print*,'- FATAL ERROR: BAD OPEN OF LONSPERLAT FILE. ABORT. IRET: ', iret - call w3tage('SNOW2MDL') - call errexit(76) - endif - - read (iunit2,*,iostat=iret) numpts, lonsperlat_mdl - close(iunit2) - if (iret /= 0) then - print*,'- FATAL ERROR: BAD READ OF LONSPERLAT FILE. ABORT. IRET: ', iret - call w3tage('SNOW2MDL') - call errexit(76) - endif - - if (numpts /= (jmdl/2)) then - print*,'- FATAL ERROR: WRONG DIMENSIION IN LONSPERLAT FILE. ABORT.' - call w3tage('SNOW2MDL') - call errexit(76) - endif - - allocate (lsmask_mdl_sav(imdl,jmdl)) - lsmask_mdl_sav = lsmask_mdl - lsmask_mdl = 0.0 ! this will identify land points to be processed by - ! the ipolates routines. - -!----------------------------------------------------------------------- -! loop over every point on the thinned grid. calculate the start/end -! bounds with respect to the full grid in the 'i' direction. if -! the thinned point contains land, set all full grid points within -! the bounds to be land. this modified mask will identify the -! points to be processed by ipolates. after the call to ipolates, -! the thinned points will be set to a linear weighting of the full points -! located within the thinned point. -!----------------------------------------------------------------------- - - do j = 1, jmdl - jj = j - if (j > jmdl/2) jj = jmdl - j + 1 - r = float(imdl)/ float(lonsperlat_mdl(jj)) - do i = 1, lonsperlat_mdl(jj) - x1=float(i-1)*r - imid = nint(x1+1.0) ! for this thinned grid point, this is - ! the nearest 'i' index on the full grid. - if (lsmask_mdl_sav(imid,j) > 0.0) then - gridis = x1+1.0-r/2. - istart = nint(gridis) - gridie = x1+1.0+r/2. - iend = nint(gridie) - do ii = istart, iend - if (ii == istart) then - fraction = 0.5 - (gridis - float(istart)) - if (fraction < 0.0001) cycle - endif - if (ii == iend) then - fraction = 0.5 + (gridie - float(iend)) - if (fraction < 0.0001) cycle - endif - iii = ii - if (iii < 1) iii = imdl + iii - lsmask_mdl(iii,j) = lsmask_mdl_sav(imid,j) - enddo - endif - enddo - enddo - - end if - -!----------------------------------------------------------------------- -! program only worries about land points. save i/j coordinate -! with respect to 2-d grid. -!----------------------------------------------------------------------- - - ij = 0 - - do j = 1, jmdl - do i = 1, imdl - if (lsmask_mdl(i,j) > 0.0) then - ij = ij+1 - end if - enddo - enddo - - ijmdl = ij - - if (ijmdl == 0) then ! grid has only water points, dont run - print*,' ' - print*,'- MODEL GRID ONLY HAS WATER POINTS, DONT CREATE SNOW FILE.' - print*,'- NORMAL TERMINATION.' - call w3tage('SNOW2MDL') - call errexit(0) - endif - - allocate (lats_mdl(ijmdl)) - allocate (lons_mdl(ijmdl)) - allocate (ipts_mdl(ijmdl)) - allocate (jpts_mdl(ijmdl)) - - ij = 0 - do j = 1, jmdl - do i = 1, imdl - if (lsmask_mdl(i,j) > 0.0) then - ij = ij+1 - lats_mdl(ij) = lats_mdl_temp(i,j) - lons_mdl(ij) = lons_mdl_temp(i,j) - ipts_mdl(ij) = i - jpts_mdl(ij) = j - end if - enddo - enddo - - deallocate (lats_mdl_temp, lons_mdl_temp) - - return - - end subroutine read_mdl_grid_info - - subroutine model_grid_cleanup -!$$$ subprogram documentation block -! -! subprogram: model_grid_cleanup -! prgmmr: gayno org: w/np2 date: 2005-dec-16 -! -! abstract: this deallocate this module's allocatable array. -! -! program history log: -! 2005-dec-16 gayno - initial version -! -! usage: call model_grid_cleanup -! -! input argument list: n/a -! -! output argument list: n/a -! -! files: none -! -! condition codes: none -! -! remarks: none. -! -!$$$ - - implicit none - - if (allocated(lsmask_mdl)) deallocate(lsmask_mdl) - if (allocated(lats_mdl)) deallocate(lats_mdl) - if (allocated(lons_mdl)) deallocate(lons_mdl) - if (allocated(lonsperlat_mdl)) deallocate(lonsperlat_mdl) - if (allocated(ipts_mdl)) deallocate(ipts_mdl) - if (allocated(jpts_mdl)) deallocate(jpts_mdl) - - return - - end subroutine model_grid_cleanup - - end module model_grid diff --git a/sorc/emcsfc_snow2mdl.fd/program_setup.f b/sorc/emcsfc_snow2mdl.fd/program_setup.f deleted file mode 100755 index ff58d888f9..0000000000 --- a/sorc/emcsfc_snow2mdl.fd/program_setup.f +++ /dev/null @@ -1,205 +0,0 @@ - module program_setup -!$$$ module documentation block -! . . . . -! module: program_setup -! prgmmr: gayno org: w/np2 date: 2005-DEC-16 -! -! abstract: this module reads in data from the program's -! configuration namelist. -! -! program history log: -! 2005-DEC-16 gayno - initial version -! 2008-Feb-01 gayno - added autosnow data -! 2014-Sep-30 gayno - added 'output_grib2' flag -! -! usage: use program_setup -! -! remarks: some variable definitions -! afwa_snow_nh_file - path/name afwa n hemis snow depth -! afwa_snow_sh_file - path/name afwa s hemis snow depth -! afwa_lsmask_nh_file - path/name afwa n hemis land/sea mask -! afwa_lsmask_sh_file - path/name afwa s hemis land/sea mask -! autosnow_file - path/name s hemis autosnow file -! grib_century/day/hour/month/year - -! date of the final merged -! snow product that will be placed -! in grib header. -! model_lat_file - path/name lats on the model grid -! model_lon_file - path/name lons on the model grid -! nesdis_lsmask_file - path/name nesdis/ims land mask -! nesdis_snow_file - path/name nesdis/ims snow cover -! lat_threshold - equatorward of this latitude, model -! points with undefined cover or depth -! (because the interpolation routines -! could not find valid snow data) -! are set to a default value of zero. -! poleward, undefined points are set -! according to logic in module snow2mdl -! min_snow_depth - minimum snow depth in meters at model -! points with coverage exceeding threshold. -! output_grib2 - when true, output model snow analysis -! is grib 2. when false, grib 1. -! snow_cvr_threshold - if percent coverage according to nesdis/ims -! or autosnow exceeds this value, then -! non-zero snow depth is assigned. below -! this threshold, depth is set to zero. -! -!$$$ - - implicit none - - private - - character*200, public :: afwa_snow_global_file - character*150, public :: afwa_snow_nh_file - character*150, public :: afwa_snow_sh_file - character*150, public :: afwa_lsmask_nh_file - character*150, public :: afwa_lsmask_sh_file - character*150, public :: autosnow_file - character*150, public :: climo_qc_file - character*150, public :: gfs_lpl_file - character*150, public :: model_lat_file - character*150, public :: model_lon_file - character*150, public :: model_lsmask_file - character*150, public :: model_snow_file - character*150, public :: nesdis_lsmask_file - character*150, public :: nesdis_snow_file - - integer, public :: grib_century - integer, public :: grib_day - integer, public :: grib_hour - integer, public :: grib_month - integer, public :: grib_year - - logical, public :: output_grib2 - - real, public :: lat_threshold - real, public :: min_snow_depth - real, public :: snow_cvr_threshold - - public :: read_config_nml - - contains - - subroutine read_config_nml -!$$$ subprogram documentation block -! . . . . -! subprogram: read_config_nml -! prgmmr: gayno org: w/np2 date: 2005-dec-16 -! -! abstract: this subroutine reads the program's configuration namelist -! that contains the the paths/filenames for input and output, and -! other program control flags. -! -! program history log: -! 2005-dec-16 gayno - initial version -! 2008-feb-01 gayno - added read of autosnow path/file -! 2014-sep-30 gayno - added read of 'output_grib2' flag. -! -! usage: call read_config_nml -! -! input argument list: n/a -! -! output argument list: n/a -! -! files: -! input: -! - program configuration namelist, fort.41 -! -! output: none -! -! condition codes: all fatal -! 77 - bad open on configuration namelist -! 78 - bad read on configuration namelist -! -! remarks: none. -! -!$$$ - - implicit none - - integer, parameter :: iunit=41 - integer :: istat - - namelist /source_data/ autosnow_file, & - nesdis_snow_file, & - nesdis_lsmask_file, & - afwa_snow_global_file, & - afwa_snow_nh_file, & - afwa_snow_sh_file, & - afwa_lsmask_nh_file, & - afwa_lsmask_sh_file - - namelist /qc/ climo_qc_file - - namelist /model_specs/ model_lat_file, & - model_lon_file, & - model_lsmask_file, & - gfs_lpl_file - - namelist /output_data/ model_snow_file, & - output_grib2 - - namelist /output_grib_time/ grib_year, & - grib_month, & - grib_day, & - grib_hour - - namelist /parameters/ lat_threshold, & - min_snow_depth, & - snow_cvr_threshold - - print*,'' - print*,"- READ CONFIGURATION NAMELIST" - - open(iunit, iostat=istat) - - if (istat /= 0) then - print*,'' - print*,'- FATAL ERROR: BAD OPEN ON CONFIG NAMELIST. ISTAT IS ', istat - close(iunit) - call w3tage('SNOW2MDL') - call errexit(77) - end if - - read(iunit, nml=source_data, iostat=istat, err=900) - - read(iunit, nml=qc, iostat=istat, err=900) - - read(iunit, nml=model_specs, iostat=istat, err=900) - - read(iunit, nml=output_data, iostat=istat, err=900) - - read(iunit, nml=output_grib_time, iostat=istat, err=900) - - read(iunit, nml=parameters, iostat=istat, err=900) - - close(iunit) - -!----------------------------------------------------------------------- -! the user determines the date/time stamp for the final interpolated -! model data. -!----------------------------------------------------------------------- - - grib_century = grib_year / 100 - - grib_year = mod(grib_year,100) - - if (grib_year == 0) then - grib_year = 100 - else - grib_century = grib_century + 1 - end if - - return - - 900 continue - print*,'' - print*,'- FATAL ERROR: BAD READ ON CONFIG NAMELIST. ISTAT IS ', istat - close(iunit) - call w3tage('SNOW2MDL') - call errexit(78) - - end subroutine read_config_nml - - end module program_setup diff --git a/sorc/emcsfc_snow2mdl.fd/snow2mdl.f b/sorc/emcsfc_snow2mdl.fd/snow2mdl.f deleted file mode 100755 index 4102dd0453..0000000000 --- a/sorc/emcsfc_snow2mdl.fd/snow2mdl.f +++ /dev/null @@ -1,1148 +0,0 @@ - module snow2mdl -!$$$ module documentation block -! -! module: snow2mdl -! prgmmr: gayno org: w/np2 date: 2005-dec-16 -! -! abstract: interpolate snow data to model grid and grib the result -! -! program history log: -! 2005-DEC-16 gayno - initial version -! 2007-SEP-20 gayno - tested for b-grids. added improved -! thinning for gfs grid. -! 2008-feb-04 gayno - added autosnow data -! 2014-sep-26 gayno - added option to output analysed -! snow in grib2. -! -! usage: use snow2mdl -! -! remarks: some variable definitions -! snow_cvr_mdl - snow cover on model grid in percent -! snow_dep_mdl - snow depth on model grid in meters -! -! attributes: -! language: fortran 90 -! machine: ibm wcoss -! -!$$$ - - use program_setup, only : lat_threshold, & - model_snow_file, & - min_snow_depth, & - snow_cvr_threshold, & - grib_day, & - grib_century, & - grib_hour, & - grib_month, & - grib_year, & - output_grib2 - - use model_grid, only : resol_mdl, & - imdl, & - jmdl, & - ijmdl, & - ipts_mdl, & - jpts_mdl, & - lsmask_mdl, & - lsmask_mdl_sav, & - lats_mdl, & - lat11, latlast, & - lon11, lonlast, & - lons_mdl, & - kgds_mdl, & - grid_id_mdl, & - thinned, & - lonsperlat_mdl - - use snowdat, only : nesdis_res, & - afwa_res, & - autosnow_res, & - inesdis, & - jnesdis, & - mesh_nesdis, & - snow_cvr_nesdis, & - sea_ice_nesdis, & - bitmap_nesdis, & - iafwa, & - jafwa, & - snow_dep_afwa_global, & - snow_dep_afwa_nh, & - snow_dep_afwa_sh, & - bitmap_afwa_global, & - bitmap_afwa_nh, & - bitmap_afwa_sh, & - iautosnow, & - jautosnow, & - snow_cvr_autosnow, & - bitmap_autosnow, & - use_global_afwa, & - use_nh_afwa, & - use_sh_afwa, & - use_nesdis, & - use_autosnow, & - kgds_nesdis, & - kgds_afwa_global, & - kgds_afwa_nh, & - kgds_afwa_sh, & - kgds_autosnow, & - bad_afwa_nh, bad_afwa_sh - - use read_write_utils, only : uninterpred - - private - - real, allocatable :: snow_cvr_mdl(:,:) ! cover in % on mdl grid - real, allocatable :: snow_dep_mdl(:,:) ! depth on model grid - - public :: interp - - contains - - subroutine interp -!$$$ subprogram documentation block -! -! subprogram: interp -! prgmmr: gayno org: w/np2 date: 2005-dec-16 -! -! abstract: interpolate snow data to model grid. -! -! program history log: -! 2005-dec-16 gayno - initial version -! 2007-sep-20 gayno - tested for b-grids. added improved -! thinning for gfs grid. -! 2008-feb-04 gayno - add use of autosnow data -! 2014-sep-29 gayno - add option to output model snow -! data in grib2 format. -! -! usage: call interp -! -! input argument list: n/a -! -! output argument list: n/a -! -! files: none -! -! condition codes: all fatal -! 54 - selected input snow data not valid for model grid -! 55 - error in ipolates interpolating snow data -! -! remarks: The determination of cover and depth on the model -! grid depends on the input snow data selected: -! -! nam grids: -! --------- -! -! 1) nesdis/ims only - An analysis of snow cover on the -! model grid is produced. No depth analysis is -! produced. -! -! 2) afwa only - An analysis of snow cover and depth on -! the model grid is produced. Depth is determined from -! the afwa data. Cover is set to 100% where afwa indicates -! snow and 0% otherwise. -! -! 3) nesdis/ims and afwa - An analysis of snow cover and -! depth on the model grid is produced. Cover is -! determined by the nesdis/ims data. If cover is -! greater than user-defined threshold (variable -! snow_cvr_threshold) the depth is set to the afwa -! value or a nominal value, whichever is greater. -! The nominal value is user-defined (varaible -! min_snow_depth). If cover is less than user- -! defined threshold, the depth is set to 0, -! regardless of the afwa depth value. -! -! gfs grid: -! -------- -! -! 1) nesdis/ims and autosnow only - An analysis of snow -! cover and depth on the model grid is produced. -! Cover is determined from the ims and autosnow data. -! If cover is greater than the user-defined -! threshold (variable snow_cvr_threshold), the -! the depth is set to the user-defined default -! depth (variable min_snow_depth). -! -! 2) afwa only - An analysis of snow cover and depth on -! the model grid is produced. Depth is determined from -! the afwa data. Cover is set to 100% where afwa indicates -! snow and 0% otherwise. -! -! 3) nesdis/ims, autosnow and afwa - An analysis of snow -! cover and depth on the model grid is produced. Cover is -! determined by the ims and autosnow data. If cover is -! greater than user-defined threshold (variable -! snow_cvr_threshold) the depth is set to the afwa -! value or a nominal value, whichever is greater. -! The nominal value is user-defined (varaible -! min_snow_depth). If cover is less than user- -! defined threshold, the depth is set to 0, -! regardless of the afwa depth value. -! -! attributes: -! language: fortran 90 -! machine: IBM WCOSS -! -!$$$ - - use gdswzd_mod - - implicit none - - integer :: i, j, ii, jj, ij - integer :: ijmdl2, istart, iend, imid, iii - integer, allocatable :: idum(:,:) - integer :: int_opt, ipopt(20) - integer :: kgds_mdl_tmp(200) - integer :: no, ibo, iret, nret - - logical*1, allocatable :: bitmap_mdl(:) - - real :: gridi(1) - real :: gridj(1) - real, allocatable :: lsmask_1d(:) - real, allocatable :: snow_cvr_mdl_1d(:) - real, allocatable :: snow_dep_mdl_tmp(:) - real :: sumc, sumd, x1, r, fraction, gridis, gridie - real, parameter :: undefined_value = -999. - -!---------------------------------------------------------------------- -! for model grids fully or partially located in the southern -! hemisphere, the user must select sh data (either autosnow or afwa). -! this restriction is relaxed for the ndas domain, which is -! has a small part below the equator. -!---------------------------------------------------------------------- - - if (minval(lats_mdl) < -10.0 .and. .not. use_global_afwa .and. .not. use_sh_afwa .and. .not. use_autosnow) then - print*,"- FATAL ERROR: MUST SELECT EITHER AFWA OR AUTOSNOW DATA FOR MODEL GRID WITH SH POINTS." - call w3tage('SNOW2MDL') - call errexit(54) - endif - -!---------------------------------------------------------------------- -! if model grid is totally within the southern hemisphere, set flags -! so that nh afwa and nh nesdis/ims is not processed. these flags -! are set to false if user inadvertantly selects these data sources. -!---------------------------------------------------------------------- - - if (maxval(lats_mdl) < 0.0) then - use_nh_afwa=.false. - use_nesdis=.false. - endif - -!---------------------------------------------------------------------- -! if model grid is partially or fully located in the northern -! hemisphere, the user must select either nesdis/ims or nh afwa data. -!---------------------------------------------------------------------- - - if (maxval(lats_mdl) > 0.0 .and. .not. use_global_afwa .and. .not. use_nh_afwa .and. .not. use_nesdis) then - print*,"- FATAL ERROR: MUST SELECT EITHER NESDIS/IMS OR AFWA DATA FOR MODEL GRID WITH NH POINTS." - call w3tage('SNOW2MDL') - call errexit(54) - endif - -!---------------------------------------------------------------------- -! if model grid is totally within the northern hemisphere, set flag -! so that sh data is not processed. these flags are set to false -! if user inadvertantly selects this data. -!---------------------------------------------------------------------- - - if (minval(lats_mdl) > 0.0) then ! is model grid totally within northern hemisphere? - use_sh_afwa=.false. - use_autosnow=.false. - endif - -!---------------------------------------------------------------------- -! if selected, interpolate nesdis/ims data to model grid. -!---------------------------------------------------------------------- - - NESDIS_IMS : if (use_nesdis) then - - ipopt = 0 - if (nesdis_res < (0.5*resol_mdl)) then - print*,"- INTERPOLATE NH NESDIS/IMS DATA TO MODEL GRID USING BUDGET METHOD." - ipopt(1)=2 ! break model grid cell into 25 points. - ipopt(2:4)=1 ! 25 points are weighted equally. - ipopt(5)=10 ! 10% coverage of valid data in box - ipopt(20) = nint(100.0 / nesdis_res) + 1 ! search box width of 100 km. - kgds_mdl_tmp = kgds_mdl - kgds_mdl_tmp(1) = kgds_mdl_tmp(1) - 255 ! subset of grid - int_opt = 3 - no = ijmdl - else - print*,"- INTERPOLATE NH NESDIS/IMS DATA TO MODEL GRID USING NEIGHBOR METHOD." - ipopt(1) = nint(100.0 / nesdis_res) + 1 ! search box width of 100 km. - kgds_mdl_tmp = kgds_mdl - kgds_mdl_tmp(1) = -1 ! for subsection of model grid. - int_opt = 2 - no = ijmdl ! an input when kgds(1) < 0 (subset of grid) - end if - - allocate (snow_cvr_mdl_1d(ijmdl)) - snow_cvr_mdl_1d = 0.0 - - allocate (bitmap_mdl(ijmdl)) - bitmap_mdl=.false. ! if interpolation routine can't find data - ! at a point, this flag is false. - - call ipolates(int_opt, ipopt, kgds_nesdis, kgds_mdl_tmp, & - (inesdis*jnesdis), ijmdl, & - 1, 1, bitmap_nesdis, snow_cvr_nesdis, & - no, lats_mdl, lons_mdl, ibo, bitmap_mdl, & - snow_cvr_mdl_1d, iret) - - deallocate (bitmap_nesdis, snow_cvr_nesdis) - - if (iret /= 0) then - print*,"- FATAL ERROR: IN INTERPOLATION ROUTINE. IRET IS: ", iret - call w3tage('SNOW2MDL') - call errexit(55) - endif - -!----------------------------------------------------------------------- -! if the interpolation routines did not find valid nesdis/ims data -! in the vicinity of the model point, need to set a default value -! of snow cover. south of user-defined latitude threshold, set -! to zero. otherwise, see if the nearest neighbor nesdis/ims point is -! sea ice. if so, assume model point is snow covered. -!----------------------------------------------------------------------- - - do ij = 1, ijmdl - if (lats_mdl(ij) < 0.0) cycle ! only consider nh model points - if (.not. bitmap_mdl(ij)) then - if (lats_mdl(ij) <= lat_threshold) then - snow_cvr_mdl_1d(ij) = 0.0 - else - call gdswzd(kgds_nesdis,-1,1,undefined_value,gridi,gridj, & - lons_mdl(ij),lats_mdl(ij),nret) - if (nret /= 1) then - print*,"- WARNING: MODEL POINT OUTSIDE NESDIS/IMS GRID: ", ipts_mdl(ij), jpts_mdl(ij) - snow_cvr_mdl_1d(ij) = 0.0 - else - ii = nint(gridi(1)) - jj = nint(gridj(1)) - if (sea_ice_nesdis(ii,jj) == 1) then - snow_cvr_mdl_1d(ij) = 100.0 - else - snow_cvr_mdl_1d(ij) = 0.0 - end if - end if - end if - end if - enddo - - deallocate (sea_ice_nesdis) - deallocate (bitmap_mdl) - - endif NESDIS_IMS - -!---------------------------------------------------------------------- -! now interpolate nh afwa snow depth data. -!---------------------------------------------------------------------- - - GLOBAL_AFWA : if (use_global_afwa) then - -!---------------------------------------------------------------------- -! determine interpolation method based on the resolution of -! afwa data and the model grid. -!---------------------------------------------------------------------- - - ipopt = 0 - if (afwa_res < (0.5*resol_mdl)) then - print*,"- INTERPOLATE GLOBAL AFWA DATA TO MODEL GRID USING BUDGET METHOD." - ipopt(1)=-1 ! break model grid cell into 25 points. - ipopt(2)=-1 ! 25 points are weighted equally. - ipopt(20) = nint(100.0 / afwa_res) + 1 ! search box width of 100 km. - kgds_mdl_tmp = kgds_mdl - kgds_mdl_tmp(1) = kgds_mdl_tmp(1) - 255 ! subset of grid - no = ijmdl - int_opt = 3 - else - print*,"- INTERPOLATE GLOBAL AFWA DATA TO MODEL GRID USING NEIGHBOR METHOD." - ipopt(1) = nint(100.0 / afwa_res) + 1 ! search box width of 100 km. - kgds_mdl_tmp = kgds_mdl - kgds_mdl_tmp(1) = -1 ! for subsection of model grid. - int_opt = 2 - no = ijmdl ! an input when kgds(1) < 0 (subset of grid) - end if - - allocate (snow_dep_mdl_tmp(ijmdl)) - snow_dep_mdl_tmp = 0.0 - - allocate (bitmap_mdl(ijmdl)) - bitmap_mdl = .false. - - call ipolates(int_opt, ipopt, kgds_afwa_global, kgds_mdl_tmp, & - (iafwa*jafwa), ijmdl, & - 1, 1, bitmap_afwa_global, snow_dep_afwa_global, & - no, lats_mdl, lons_mdl, ibo, bitmap_mdl, & - snow_dep_mdl_tmp, iret) - - deallocate(bitmap_afwa_global, snow_dep_afwa_global) - - if (iret /= 0) then - print*,"- FATAL ERROR IN INTERPOLATION ROUTINE. IRET IS: ", iret - call w3tage('SNOW2MDL') - call errexit(55) - endif - -!---------------------------------------------------------------------- -! if interpolation did not find afwa data near the model point, then -! use a nominal value based on latitude threshold. this value -! may be overwritten below depending on nesdis/ims cover data (if -! user selects nesdis/ims data). -!---------------------------------------------------------------------- - - do ij = 1, ijmdl - if (.not. bitmap_mdl(ij)) then - if (abs(lats_mdl(ij)) >= lat_threshold) then - snow_dep_mdl_tmp(ij) = min_snow_depth - else - snow_dep_mdl_tmp(ij) = 0.0 - endif - endif - enddo - - deallocate(bitmap_mdl) - - endif GLOBAL_AFWA - -!---------------------------------------------------------------------- -! now interpolate nh afwa snow depth data. -!---------------------------------------------------------------------- - - NH_AFWA : if (use_nh_afwa) then - -!---------------------------------------------------------------------- -! determine interpolation method based on the resolution of -! afwa data and the model grid. -!---------------------------------------------------------------------- - - ipopt = 0 - if (afwa_res < (0.5*resol_mdl)) then - print*,"- INTERPOLATE NH AFWA DATA TO MODEL GRID USING BUDGET METHOD." - ipopt(1)=-1 ! break model grid cell into 25 points. - ipopt(2)=-1 ! 25 points are weighted equally. - ipopt(20) = nint(100.0 / afwa_res) + 1 ! search box width of 100 km. - kgds_mdl_tmp = kgds_mdl - kgds_mdl_tmp(1) = kgds_mdl_tmp(1) - 255 ! subset of grid - no = ijmdl - int_opt = 3 - else - print*,"- INTERPOLATE NH AFWA DATA TO MODEL GRID USING NEIGHBOR METHOD." - ipopt(1) = nint(100.0 / afwa_res) + 1 ! search box width of 100 km. - kgds_mdl_tmp = kgds_mdl - kgds_mdl_tmp(1) = -1 ! for subsection of model grid. - int_opt = 2 - no = ijmdl ! an input when kgds(1) < 0 (subset of grid) - end if - - allocate (snow_dep_mdl_tmp(ijmdl)) - snow_dep_mdl_tmp = 0.0 - - allocate (bitmap_mdl(ijmdl)) - bitmap_mdl = .false. - - call ipolates(int_opt, ipopt, kgds_afwa_nh, kgds_mdl_tmp, & - (iafwa*jafwa), ijmdl, & - 1, 1, bitmap_afwa_nh, snow_dep_afwa_nh, & - no, lats_mdl, lons_mdl, ibo, bitmap_mdl, & - snow_dep_mdl_tmp, iret) - - deallocate(bitmap_afwa_nh, snow_dep_afwa_nh) - - if (iret /= 0) then - print*,"- FATAL ERROR IN INTERPOLATION ROUTINE. IRET IS: ", iret - call w3tage('SNOW2MDL') - call errexit(55) - endif - -!---------------------------------------------------------------------- -! if interpolation did not find afwa data near the model point, then -! use a nominal value based on latitude threshold. this value -! may be overwritten below depending on nesdis/ims cover data (if -! user selects nesdis/ims data). -!---------------------------------------------------------------------- - - do ij = 1, ijmdl - if (lats_mdl(ij) >= 0.) then ! only consider model pts in n hemi. - if (.not. bitmap_mdl(ij)) then - if (abs(lats_mdl(ij)) >= lat_threshold) then - snow_dep_mdl_tmp(ij) = min_snow_depth - else - snow_dep_mdl_tmp(ij) = 0.0 - endif - endif - endif - enddo - - deallocate(bitmap_mdl) - - endif NH_AFWA - -!---------------------------------------------------------------------- -! if nh data selected, use it to determine the cover and depth -! on the model grid. -!---------------------------------------------------------------------- - - allocate (snow_dep_mdl(imdl,jmdl)) - allocate (snow_cvr_mdl(imdl,jmdl)) - snow_cvr_mdl = 0.0 - snow_dep_mdl = 0.0 - - if (use_global_afwa .and. use_nesdis) then ! set depth/cover on nesdis ims/afwa blend - print*,"- BLEND NESDIS/IMS AND AFWA DATA IN NH." - do ij = 1, ijmdl - if (lats_mdl(ij) >= 0.0) then - if (snow_cvr_mdl_1d(ij) >= snow_cvr_threshold) then - snow_dep_mdl(ipts_mdl(ij),jpts_mdl(ij)) = & - max(snow_dep_mdl_tmp(ij), min_snow_depth) - endif - snow_cvr_mdl(ipts_mdl(ij),jpts_mdl(ij)) = snow_cvr_mdl_1d(ij) - endif - enddo - deallocate (snow_cvr_mdl_1d) - elseif (use_nh_afwa .and. use_nesdis) then ! set depth/cover on nesdis ims/afwa blend - print*,"- BLEND NESDIS/IMS AND AFWA DATA IN NH." - do ij = 1, ijmdl - if (lats_mdl(ij) >= 0.0) then - if (snow_cvr_mdl_1d(ij) >= snow_cvr_threshold) then - snow_dep_mdl(ipts_mdl(ij),jpts_mdl(ij)) = & - max(snow_dep_mdl_tmp(ij), min_snow_depth) - endif - snow_cvr_mdl(ipts_mdl(ij),jpts_mdl(ij)) = snow_cvr_mdl_1d(ij) - endif - enddo - deallocate (snow_cvr_mdl_1d) - deallocate (snow_dep_mdl_tmp) - elseif (use_global_afwa) then ! set depth/cover on afwa only - print*,"- SET DEPTH/COVER FROM AFWA DATA IN NH." - do ij = 1, ijmdl - if (lats_mdl(ij) >= 0.0) then - if (snow_dep_mdl_tmp(ij) > 0.0) then - snow_cvr_mdl(ipts_mdl(ij),jpts_mdl(ij)) = 100.0 - snow_dep_mdl(ipts_mdl(ij),jpts_mdl(ij)) = snow_dep_mdl_tmp(ij) - endif - endif - enddo - elseif (use_nh_afwa) then ! set depth/cover on afwa only - print*,"- SET DEPTH/COVER FROM AFWA DATA IN NH." - do ij = 1, ijmdl - if (lats_mdl(ij) >= 0.0) then - if (snow_dep_mdl_tmp(ij) > 0.0) then - snow_cvr_mdl(ipts_mdl(ij),jpts_mdl(ij)) = 100.0 - snow_dep_mdl(ipts_mdl(ij),jpts_mdl(ij)) = snow_dep_mdl_tmp(ij) - endif - endif - enddo - deallocate (snow_dep_mdl_tmp) - elseif (use_nesdis) then ! set depth/cover on nesdis/ims only - print*,"- SET DEPTH/COVER FROM NESDIS/IMS DATA IN NH." - do ij = 1, ijmdl - if (lats_mdl(ij) >= 0.0) then - if (snow_cvr_mdl_1d(ij) >= snow_cvr_threshold) then - snow_dep_mdl(ipts_mdl(ij),jpts_mdl(ij)) = min_snow_depth - endif - snow_cvr_mdl(ipts_mdl(ij),jpts_mdl(ij)) = snow_cvr_mdl_1d(ij) - endif - enddo - deallocate (snow_cvr_mdl_1d) - end if - -!---------------------------------------------------------------------- -! if selected, interpolate autosnow data to model grid. -!---------------------------------------------------------------------- - - AUTOSNOW : if (use_autosnow) then - - ipopt = 0 - if (autosnow_res < (0.5*resol_mdl)) then - print*,"- INTERPOLATE AUTOSNOW DATA TO MODEL GRID USING BUDGET METHOD." - ipopt(1)=2 ! break model grid cell into 25 points. - ipopt(2:4)=1 ! 25 points are weighted equally. - ipopt(5)=10 ! 10% coverage of valid data in box - ipopt(20) = nint(100.0 / autosnow_res) + 1 ! search box width of 100 km. - kgds_mdl_tmp = kgds_mdl - kgds_mdl_tmp(1) = kgds_mdl_tmp(1) - 255 ! subset of grid - int_opt = 3 - no = ijmdl - else - print*,"- INTERPOLATE AUTOSNOW DATA TO MODEL GRID USING NEIGHBOR METHOD." - ipopt(1) = nint(100.0 / autosnow_res) + 1 ! search box width of 100 km. - kgds_mdl_tmp = kgds_mdl - kgds_mdl_tmp(1) = -1 ! for subsection of model grid. - int_opt = 2 - no = ijmdl ! an input when kgds(1) < 0 (subset of grid) - end if - - allocate (snow_cvr_mdl_1d(ijmdl)) - snow_cvr_mdl_1d = 0.0 - - allocate (bitmap_mdl(ijmdl)) - bitmap_mdl=.false. ! if interpolation routine can't find data - ! at a point, this flag is false. - - call ipolates(int_opt, ipopt, kgds_autosnow, kgds_mdl_tmp, & - (iautosnow*jautosnow), ijmdl, & - 1, 1, bitmap_autosnow, snow_cvr_autosnow, & - no, lats_mdl, lons_mdl, ibo, bitmap_mdl, & - snow_cvr_mdl_1d, iret) - - deallocate (snow_cvr_autosnow, bitmap_autosnow) - - if (iret /= 0) then - print*,"- FATAL ERROR IN INTERPOLATION ROUTINE. IRET IS: ", iret - call w3tage('SNOW2MDL') - call errexit(55) - endif - -!---------------------------------------------------------------------- -! if interpolation fails to find autosnow data, set the cover -! at the model point to a nomimal value. -!---------------------------------------------------------------------- - - do ij = 1, ijmdl - if (lats_mdl(ij) < 0.0) then - if (.not. bitmap_mdl(ij)) then - if (abs(lats_mdl(ij)) <= lat_threshold) then - snow_cvr_mdl_1d(ij) = 0.0 - else - snow_cvr_mdl_1d(ij) = 100.0 - end if - end if - end if - enddo - - deallocate (bitmap_mdl) - - endif AUTOSNOW - -!---------------------------------------------------------------------- -! now interpolate sh afwa snow depth data. -!---------------------------------------------------------------------- - - SH_AFWA : if (use_sh_afwa) then - -!---------------------------------------------------------------------- -! determine interpolation method based on the resolution of -! afwa data and the model grid. -!---------------------------------------------------------------------- - - ipopt = 0 - if (afwa_res < (0.5*resol_mdl)) then - print*,"- INTERPOLATE SH AFWA DATA TO MODEL GRID USING BUDGET METHOD." - ipopt(1)=-1 ! break model grid cell into 25 points. - ipopt(2)=-1 ! 25 points are weighted equally. - ipopt(20) = nint(100.0 / afwa_res) + 1 ! search box width of 100 km. - kgds_mdl_tmp = kgds_mdl - kgds_mdl_tmp(1) = kgds_mdl_tmp(1) - 255 ! subset of grid - no = ijmdl - int_opt = 3 - else - print*,"- INTERPOLATE SH AFWA DATA TO MODEL GRID USING NEIGHBOR METHOD." - ipopt(1) = nint(100.0 / afwa_res) + 1 ! search box width of 100 km. - kgds_mdl_tmp = kgds_mdl - kgds_mdl_tmp(1) = -1 ! for subsection of model grid. - int_opt = 2 - no = ijmdl ! an input when kgds(1) < 0 (subset of grid) - end if - - allocate (snow_dep_mdl_tmp(ijmdl)) - snow_dep_mdl_tmp = 0.0 - - allocate (bitmap_mdl(ijmdl)) - bitmap_mdl = .false. - - call ipolates(int_opt, ipopt, kgds_afwa_sh, kgds_mdl_tmp, & - (iafwa*jafwa), ijmdl, & - 1, 1, bitmap_afwa_sh, snow_dep_afwa_sh, & - no, lats_mdl, lons_mdl, ibo, bitmap_mdl, & - snow_dep_mdl_tmp, iret) - - if (iret /= 0) then - print*,"- FATAL ERROR IN INTERPOLATION ROUTINE. IRET IS: ", iret - call w3tage('SNOW2MDL') - call errexit(55) - endif - - deallocate (bitmap_afwa_sh, snow_dep_afwa_sh) - -!---------------------------------------------------------------------- -! if interpolation does not find afwa data, set model point to -! a nominal value. -!---------------------------------------------------------------------- - - do ij = 1, ijmdl - if (lats_mdl(ij) < 0.) then - if (.not. bitmap_mdl(ij)) then - if (abs(lats_mdl(ij)) >= lat_threshold) then - snow_dep_mdl_tmp(ij) = min_snow_depth - else - snow_dep_mdl_tmp(ij) = 0.0 - endif - endif - endif - enddo - - deallocate(bitmap_mdl) - - endif SH_AFWA - -!---------------------------------------------------------------------- -! if sh data selected, use it to determine the cover and depth -! on the model grid. -!---------------------------------------------------------------------- - - if ((use_sh_afwa .or. use_global_afwa) .and. use_autosnow) then ! set depth/cover on autosnow/afwa blend - print*,"- BLEND AUTOSNOW AND AFWA DATA IN SH." - do ij = 1, ijmdl - if (lats_mdl(ij) < 0.0) then - if (snow_cvr_mdl_1d(ij) >= snow_cvr_threshold) then - snow_dep_mdl(ipts_mdl(ij),jpts_mdl(ij)) = & - max(snow_dep_mdl_tmp(ij), min_snow_depth) - endif - snow_cvr_mdl(ipts_mdl(ij),jpts_mdl(ij)) = snow_cvr_mdl_1d(ij) - endif - enddo - deallocate (snow_cvr_mdl_1d) - deallocate (snow_dep_mdl_tmp) - elseif (use_sh_afwa .or. use_global_afwa) then ! set depth/cover on afwa only - print*,"- SET DEPTH/COVER FROM AFWA DATA IN SH." - do ij = 1, ijmdl - if (lats_mdl(ij) < 0.0) then - if (snow_dep_mdl_tmp(ij) > 0.0) then - snow_cvr_mdl(ipts_mdl(ij),jpts_mdl(ij)) = 100.0 - snow_dep_mdl(ipts_mdl(ij),jpts_mdl(ij)) = snow_dep_mdl_tmp(ij) - endif - endif - enddo - deallocate (snow_dep_mdl_tmp) - elseif (use_autosnow) then ! set depth/cover on autosnow only - print*,"- SET DEPTH/COVER FROM AUTOSNOW IN SH." - do ij = 1, ijmdl - if (lats_mdl(ij) < 0.0) then - if (snow_cvr_mdl_1d(ij) >= snow_cvr_threshold) then - snow_dep_mdl(ipts_mdl(ij),jpts_mdl(ij)) = min_snow_depth - endif - snow_cvr_mdl(ipts_mdl(ij),jpts_mdl(ij)) = snow_cvr_mdl_1d(ij) - endif - enddo - deallocate (snow_cvr_mdl_1d) - end if - -!---------------------------------------------------------------------- -! if a global model grid, and if running on thinned grid, then -! take a linear weighting of full points located within the thin points. -! "4" is grid indicator for a gaussian grid. -!---------------------------------------------------------------------- - - if (kgds_mdl(1) == 4 .and. thinned) then - - ijmdl2 = sum(lonsperlat_mdl) * 2 - allocate (snow_cvr_mdl_1d(ijmdl2)) - allocate (lsmask_1d(ijmdl2)) - allocate (snow_dep_mdl_tmp(ijmdl2)) - - lsmask_1d = 0.0 - snow_cvr_mdl_1d = 0.0 - snow_dep_mdl_tmp = 0.0 - - ij = 0 - do j = 1, jmdl - jj = j - if (jj > jmdl/2) jj = jmdl - j + 1 - r = float(imdl) / float(lonsperlat_mdl(jj)) - do i = 1, lonsperlat_mdl(jj) - ij = ij + 1 - x1 = (i-1)*r - imid = nint(x1+1.0) - lsmask_1d(ij) = lsmask_mdl_sav(imid,j) - if (lsmask_mdl_sav(imid,j) == 0.0) cycle - gridis=x1+1.0-r/2. - istart=nint(gridis) - gridie=x1+1.0+r/2. - iend=nint(gridie) - sumc = 0.0 ! cover - sumd = 0.0 ! depth - do ii = istart, iend - if (ii == istart) then - fraction = 0.5 - (gridis - float(istart)) - elseif (ii == iend) then - fraction = 0.5 + (gridie - float(iend)) - else - fraction = 1.0 - endif - if (fraction < 0.0001) cycle - iii = ii - if (iii < 1) iii = imdl + iii - sumc = sumc + fraction * snow_cvr_mdl(iii,j) - sumd = sumd + fraction * snow_dep_mdl(iii,j) - enddo - snow_cvr_mdl_1d(ij) = sumc / r - snow_dep_mdl_tmp(ij) = 0.0 - if (snow_cvr_mdl_1d(ij) > snow_cvr_threshold) then - snow_dep_mdl_tmp(ij) = max(sumd / r,min_snow_depth) - end if - enddo - enddo - - deallocate (lsmask_mdl_sav) - -!---------------------------------------------------------------------- -! now place thinned points into 2-d array for output. -!---------------------------------------------------------------------- - - allocate (idum(imdl,jmdl)) - idum = 0 - call uninterpred(1, idum, lsmask_1d, lsmask_mdl, imdl, jmdl, ijmdl2, lonsperlat_mdl) - call uninterpred(1, idum, snow_cvr_mdl_1d, snow_cvr_mdl, imdl, jmdl, ijmdl2, lonsperlat_mdl) - deallocate(snow_cvr_mdl_1d) - call uninterpred(1, idum, snow_dep_mdl_tmp, snow_dep_mdl, imdl, jmdl, ijmdl2, lonsperlat_mdl) - deallocate(snow_dep_mdl_tmp) - deallocate(idum) - - end if - -!---------------------------------------------------------------------- -! grib the interpolated data. -!---------------------------------------------------------------------- - - if (output_grib2) then - print*,"- OUTPUT SNOW ANALYSIS DATA IN GRIB2 FORMAT" - call write_grib2 - else - print*,"- OUTPUT SNOW ANALYSIS DATA IN GRIB1 FORMAT" - call write_grib1 - endif - - deallocate (snow_cvr_mdl) - deallocate (snow_dep_mdl) - - return - - end subroutine interp - - subroutine write_grib2 -!$$$ subprogram documentation block -! -! subprogram: write_grib2 -! prgmmr: gayno org: w/np2 date: 2014-sep-26 -! -! abstract: output snow cover and depth on the model grid -! in grib 2 format. -! -! program history log: -! 2014-sep-26 gayno - initial version -! -! usage: call write_grib2 -! -! input argument list: n/a -! -! output argument list: n/a -! -! files: -! input: none -! -! output: -! - snow on the model grid, grib 2, unit=lugb -! -! condition codes: all fatal -! 48 - error writing model snow flie -! 49 - error opening model snow flie -! -! remarks: none. -! -!$$$ - - use grib_mod - - implicit none - - character(len=1), allocatable :: cgrib(:) - - integer, parameter :: numcoord = 0 - - integer :: coordlist(numcoord) - integer :: lugb, lcgrib, iret - integer :: igds(5) - integer :: listsec0(2) - integer :: listsec1(13) - integer :: ideflist, idefnum, ipdsnum, idrsnum - integer :: igdstmplen, ipdstmplen, idrstmplen - integer :: ipdstmpl(15) - integer, allocatable :: igdstmpl(:), idrstmpl(:) - integer :: ngrdpts, ibmap, lengrib - - logical*1, allocatable :: bmap(:), bmap2d(:,:) - - real, allocatable :: fld(:) - -!---------------------------------------------------------------------- -! Setup variables and arrays required by grib2 library. -!---------------------------------------------------------------------- - - call grib2_check(kgds_mdl, igdstmplen) - - allocate(igdstmpl(igdstmplen)) - - call init_grib2(grib_century,grib_year, grib_month, grib_day, grib_hour, & - kgds_mdl, lat11, latlast, lon11, lonlast, & - listsec0, listsec1, igds, ipdstmpl, ipdsnum, igdstmpl, & - igdstmplen, idefnum, ideflist, ngrdpts) - - lcgrib = imdl*jmdl*4 - allocate(cgrib(lcgrib)) ! this variable holds the grib2 message - - iret=0 - -!---------------------------------------------------------------------- -! Create sections 0 and 1. There is no section 2, local use section. -!---------------------------------------------------------------------- - - print*,"- CREATE SECTIONS 0 AND 1" - call gribcreate(cgrib,lcgrib,listsec0,listsec1,iret) - if (iret /= 0) goto 900 - -!---------------------------------------------------------------------- -! Create section 3, the grid description section. -!---------------------------------------------------------------------- - - print*,"- CREATE SECTION 3" - call addgrid(cgrib,lcgrib,igds,igdstmpl,igdstmplen, & - ideflist,idefnum,iret) - if (iret /= 0) goto 900 - -!---------------------------------------------------------------------- -! Setup arrays for section 5, the data representation section. -!---------------------------------------------------------------------- - - idrsnum = 0 ! section 5, use simple packing - idrstmplen = 5 - allocate (idrstmpl(idrstmplen)) - idrstmpl = 0 - idrstmpl(3) = 0 ! decimal scaling factor - - allocate(fld(ngrdpts)) - fld = reshape(snow_cvr_mdl, (/imdl*jmdl/) ) - - ibmap = 0 ! bitmap applies - allocate(bmap2d(imdl,jmdl)) - bmap2d=.true. - where (lsmask_mdl < 0.5) bmap2d=.false. - allocate(bmap(ngrdpts)) - bmap = reshape(bmap2d, (/imdl*jmdl/) ) - deallocate (bmap2d) - - coordlist=0 ! not used - -!---------------------------------------------------------------------- -! Create section 4 (product definition section) and 5 (data -! representation section) for cover. -!---------------------------------------------------------------------- - - ipdstmpl(1) = 1 ! section 4, oct 10; parameter category, moisture - ipdstmpl(2) = 42 ! section 4, oct 11; parameter, snow cover - - print*,"- CREATE SECTIONS 4 AND 5 FOR SNOW COVER" - call addfield(cgrib,lcgrib,ipdsnum,ipdstmpl,ipdstmplen, & - coordlist,numcoord,idrsnum,idrstmpl, & - idrstmplen,fld,ngrdpts,ibmap,bmap,iret) - if (iret /= 0) goto 900 - -!---------------------------------------------------------------------- -! for regional model, if afwa data not used, don't output a depth -! record. this tells the sfcupdate code to update the first -! guess snow with the new snow cover analysis. -!---------------------------------------------------------------------- - - if (kgds_mdl(1) /= 4) then - if (.not. use_global_afwa .and. .not. use_nh_afwa .and. .not. use_sh_afwa) goto 88 - endif - -!---------------------------------------------------------------------- -! Create section 4 (product definition section) and 5 (data -! representation section) for depth. -!---------------------------------------------------------------------- - - fld= reshape(snow_dep_mdl, (/imdl*jmdl/) ) - - ipdstmpl(1) = 1 ! section 4, oct 10; parameter category, moisture - ipdstmpl(2) = 11 ! section 4, oct 11; parameter, snow depth - - idrstmpl = 0 ! section 5 - idrstmpl(3) = 4 ! section 5, decimal scaling factor - - print*,"- CREATE SECTIONS 4 AND 5 FOR SNOW DEPTH" - call addfield(cgrib,lcgrib,ipdsnum,ipdstmpl,ipdstmplen, & - coordlist,numcoord,idrsnum,idrstmpl, & - idrstmplen,fld,ngrdpts,ibmap,bmap,iret) - if (iret /= 0) goto 900 - - 88 continue - -!---------------------------------------------------------------------- -! Create section 8 - end section. -!---------------------------------------------------------------------- - - call gribend(cgrib,lcgrib,lengrib,iret) - if (iret /= 0) goto 900 - -!---------------------------------------------------------------------- -! Now output grib message to file. -!---------------------------------------------------------------------- - - lugb=53 - print*,"- OPEN OUTPUT GRIB FILE ", trim(model_snow_file) - call baopenw(lugb, model_snow_file, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR: BAD OPEN OF OUTPUT GRIB FILE. IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(49) - end if - - print*,'- WRITE OUTPUT GRIB FILE.' - call wryte(lugb, lengrib, cgrib) - - call baclose (lugb, iret) - - deallocate(fld, bmap, idrstmpl, igdstmpl, cgrib) - - return - - 900 continue - print*,'- FATAL ERROR CREATING GRIB2 MESSAGE. IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(48) - - end subroutine write_grib2 - - subroutine write_grib1 -!$$$ subprogram documentation block -! -! subprogram: write_grib1 -! prgmmr: gayno org: w/np2 date: 2005-dec-16 -! -! abstract: output snow cover and depth on the model grid -! in grib1 format. -! -! program history log: -! 2005-dec-16 gayno - initial version -! 2014-sep-26 gayno - rename as write_grib1 (was gribit) -! -! usage: call write_grib1 -! -! input argument list: n/a -! -! output argument list: n/a -! -! files: -! input: none -! -! output: -! - snow on model grid, grib 1, unit=lugb -! -! condition codes: -! 57 - error writing model snow depth record -! 58 - error writing model snow cover record -! 59 - error opening model snow file -! -! remarks: none. -! -!$$$ - - implicit none - - integer :: iret - integer, parameter :: lugb = 64 ! unit number of output grib file - integer :: kpds(200) - - logical*1 :: lbms(imdl,jmdl) - -!---------------------------------------------------------------------- -! set up pds section. don't need to set the gds section. -! since the model grid is not changing, use the kgds array -! already determined in module model_grid. -!---------------------------------------------------------------------- - - kpds = 0 - - kpds(1) = 7 ! center id - kpds(2) = 25 ! process id number. this determined from the - ! input data as we are simply interpolating - ! that data to a different grid. should - ! i request a process id for my codes? - kpds(3) = grid_id_mdl ! grid specified in gds - kpds(4) = 192 ! include gds and a bit map section - kpds(5) = 238 ! parameter number for snow cover - kpds(6) = 1 ! level - ground or water surface - kpds(7) = 0 ! height pressure of level - kpds(8) = grib_year ! year of century the time info is determined - kpds(9) = grib_month ! month by operational requirements - kpds(10) = grib_day ! day - kpds(11) = grib_hour ! hour - kpds(12) = 0 ! minute - kpds(13) = 1 ! fcst time unit - hour - kpds(14) = 0 ! period of time, p1. set to '0' for analysis - kpds(15) = 0 ! number of time units, p2. - kpds(16) = 1 ! initialized analysis product - kpds(17) = 0 ! number in average - kpds(18) = 1 ! grib edition 1 - kpds(19) = 3 ! parameter table version number - kpds(20) = 0 ! number missing from avg/accum - kpds(21) = grib_century ! century - set as in the input file - kpds(22) = 0 ! decimal scale factor - kpds(23) = 4 ! subcenter - emc - kpds(24) = 0 ! reserved - kpds(25) = 0 ! reserved - - lbms = .false. ! set bitmap section - - where(lsmask_mdl > 0.0) lbms = .true. - - print*,"- OPEN OUTPUT GRIB FILE ", trim(model_snow_file) - call baopenw(lugb, model_snow_file, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR OPENING OUTPUT GRIB FILE. IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(59) - end if - - print*,"- WRITE OUTPUT GRIB FILE ", trim(model_snow_file) - call putgb (lugb, (imdl*jmdl), kpds, kgds_mdl, lbms, & - snow_cvr_mdl, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR WRITING OUTPUT GRIB FILE. IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(58) - end if - -! for regional model, if afwa data not used, don't output a depth -! record. this tells the sfcupdate code to update the first -! guess snow with the new snow cover analysis. - - if (kgds_mdl(1) /= 4) then - if (.not. use_global_afwa .and. .not. use_nh_afwa .and. .not. use_sh_afwa) goto 88 - endif - - kpds(5) = 66 ! parameter number for snow depth - kpds(22) = 4 ! scaling factor. to nearest mm - - call putgb (lugb, (imdl*jmdl), kpds, kgds_mdl, lbms, & - snow_dep_mdl, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR WRITING OUTPUT GRIB FILE. IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(57) - end if - - 88 call baclose(lugb, iret) - - return - - end subroutine write_grib1 - - end module snow2mdl diff --git a/sorc/emcsfc_snow2mdl.fd/snowdat.f b/sorc/emcsfc_snow2mdl.fd/snowdat.f deleted file mode 100755 index e6684d8a4e..0000000000 --- a/sorc/emcsfc_snow2mdl.fd/snowdat.f +++ /dev/null @@ -1,1478 +0,0 @@ - module snowdat -!$$$ module documentation block -! -! module: snowdat -! prgmmr: gayno org: w/np2 date: 2005-dec-16 -! -! abstract: read and qc afwa, nesdis/ims and autosnow snow data. -! -! program history log: -! 2005-dec-16 gayno - initial version -! 2007-aug-10 gayno - allow program to run with no nesdis/ims data -! add 16th mesh afwa grib data -! 2008-feb-04 gayno - add autosnow cover data for sh. -! 2009-jun-03 gayno - add qc check for nesdis/ims and afwa data. -! 2014-feb-07 gayno - read nesdis/ims data in grib1 or grib 2 -! format. -! 2014-sep-30 gayno - convert weekly nh snow climatology - used to -! qc input data - to grib 2. -! -! usage: use snowdat -! -! remarks: some variable definitions -! afwa_res - resolution of afwa data in km -! autosnow_res - resolution of autosnow in km -! bad_afwa_Xh - is afwa data corrupt? -! bad_nesdis - is nesdis ims data corrupt? -! bitmap_afwa_Xh - bitmap of afwa grid (false-non land, true-land) -! bitmap_nesdis - bitmap of nesdis grid (false-non land, true-land) -! iafwa - i-dimension of afwa grid -! jafwa - j-dimension of afwa grid -! iautosnow - i-dimension of autosnow grid -! jautosnow - j-dimension of autosnow grid -! inesdis - i-dimension of nesdis grid -! jnesdis - j-dimension of nesdis grid -! kgds_afwa_Xh - afwa grid description section (grib section 2) -! kgds_autosnow - autosnow grid description section (grib section 2) -! kgds_nesdis - nesdis/ims grid description section (grib section 2) -! mesh_nesdis - nesdis/ims data is 96th mesh (or bediant) -! nesdis_res - resolution of nesdis/ims data in km -! sea_ice_nesdis - nesdis/ims sea ice flag (0-open water, 1-ice) -! snow_cvr_autosnow - autosnow snow cover flag (0-no, 100-yes) -! snow_cvr_nesdis - nesdis/ims snow cover flag (0-no, 100-yes) -! snow_dep_afwa_Xh - afwa snow depth data (inches*10 on input, -! meters on output) -! use_xh_afwa - true if afwa data to be used -! use_autosnow - true if autosnow data to be used -! use_nesdis - true if nesdis/ims data to be used -! -!$$$ - - use program_setup, only : autosnow_file, & - nesdis_snow_file, & - nesdis_lsmask_file, & - afwa_snow_global_file, & - afwa_snow_nh_file, & - afwa_snow_sh_file, & - afwa_lsmask_nh_file, & - afwa_lsmask_sh_file - - use model_grid, only : imdl, & - jmdl - - integer :: iafwa - integer :: iautosnow - integer :: inesdis - integer :: jafwa - integer :: jautosnow - integer :: jnesdis - integer :: kgds_afwa_global(200) - integer :: kgds_afwa_nh(200) - integer :: kgds_afwa_nh_8th(200) - integer :: kgds_afwa_sh(200) - integer :: kgds_afwa_sh_8th(200) - integer :: kgds_autosnow(200) - integer :: kgds_nesdis(200) - integer :: mesh_nesdis - integer*1, allocatable :: sea_ice_nesdis(:,:) - - logical :: bad_afwa_nh, bad_afwa_sh, bad_nesdis, bad_afwa_global - logical*1, allocatable :: bitmap_afwa_global(:,:) - logical*1, allocatable :: bitmap_afwa_nh(:,:) - logical*1, allocatable :: bitmap_afwa_sh(:,:) - logical*1, allocatable :: bitmap_nesdis(:,:) - logical*1, allocatable :: bitmap_autosnow(:,:) - logical :: use_nh_afwa, use_sh_afwa, use_global_afwa - logical :: use_autosnow, use_nesdis - - real :: autosnow_res ! in km - real :: afwa_res ! in km - real :: nesdis_res - real, allocatable :: snow_cvr_nesdis(:,:) - real, allocatable :: snow_cvr_autosnow(:,:) - real, allocatable :: snow_dep_afwa_global(:,:) - real, allocatable :: snow_dep_afwa_nh(:,:) - real, allocatable :: snow_dep_afwa_sh(:,:) - -! the afwa 8th mesh binary data has no grib header, so set it from these -! data statements. needed for ipolates routines. - - data kgds_afwa_nh_8th/5,2*512,-20826,145000,8,-80000,2*47625,0, & - 9*0,255,180*0/ - data kgds_afwa_sh_8th/5,2*512,20826,-125000,8,-80000,2*47625,128, & - 9*0,255,180*0/ - - contains - - subroutine readautosnow -!$$$ subprogram documentation block -! -! subprogram: readautosnow -! prgmmr: gayno org: w/np2 date: 2008-feb-04 -! -! abstract: read autosnow snow cover. -! -! program history log: -! 2008-feb-04 gayno - initial version -! -! usage: call readautosnow -! -! input argument list: n/a -! -! output argument list: n/a -! -! files: -! input: -! - autosnow data, grib 2, unit=lugb -! -! output: none -! -! condition codes: all fatal -! 74 - bad open of autosnow file -! 75 - bad read of autosnow file -! -! remarks: autosnow data available only for southern hemis. -! autosnow data is in grib 2. -! -!$$$ - - use grib_mod ! grib 2 libraries - - implicit none - - type(gribfield) :: gfld - - integer :: iret, j, k, lugb, lugi - integer :: jdisc, jgdtn, jpdtn - integer :: jids(200), jgdt(200), jpdt(200) - - logical :: unpack - - use_autosnow = .true. - - if ( len_trim(autosnow_file) == 0 ) then - print*,"- WILL NOT USE AUTOSNOW DATA." - use_autosnow = .false. - return - end if - - print*,"- OPEN AND READ AUTOSNOW FILE ", trim(autosnow_file) - - lugb=12 - call baopenr(lugb,autosnow_file,iret) - - if (iret /= 0) then - print*,'- FATAL ERROR: BAD OPEN OF FILE, IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(74) - endif - - call grib2_null(gfld) - - j = 0 ! search at beginning of file - lugi = 0 ! no grib index file - jdisc = 0 ! search for discipline; 0 - meteorological products - jpdtn = 30 ! search for product definition template number; 30 - satellite product - jgdtn = 0 ! search for grid definition template number; 0 - lat/lon grid - jids = -9999 ! array of values in identification section, set to wildcard - jgdt = -9999 ! array of values in grid definiation template 3.m - jpdt = -9999 ! array of values in product definition template 4.n - jpdt(1) = 1 ! search for parameter category - moisture - jpdt(2) = 42 ! search for parameter number - snow cover in percent. - unpack = .true. ! unpack data - - call getgb2(lugb, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, & - unpack, k, gfld, iret) - - if (iret /=0) then - print*,'- FATAL ERROR: BAD DEGRIB OF FILE, IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(75) - endif - - print*,"- DATA VALID AT (YYYYMMDDHH): ", gfld%idsect(6),gfld%idsect(7), & - gfld%idsect(8),gfld%idsect(9) - - call baclose (lugb, iret) - -!----------------------------------------------------------------------- -! set the grib1 kgds array from the g2 grid definition template array. -! the kgds array is used by ipolates. -!----------------------------------------------------------------------- - - call gdt_to_gds(gfld%igdtnum, gfld%igdtmpl, gfld%igdtlen, kgds_autosnow, & - iautosnow, jautosnow, autosnow_res) - - allocate (bitmap_autosnow(iautosnow,jautosnow)) - bitmap_autosnow = reshape (gfld%bmap , (/iautosnow,jautosnow/) ) - - allocate (snow_cvr_autosnow(iautosnow,jautosnow)) - snow_cvr_autosnow = reshape (gfld%fld , (/iautosnow,jautosnow/) ) - - call grib2_free(gfld) - - end subroutine readautosnow - - subroutine readnesdis -!$$$ subprogram documentation block -! -! subprogram: readnesdis -! prgmmr: gayno org: w/np2 date: 2005-dec-16 -! -! abstract: read nesdis/ims snow cover/ice data. -! -! program history log: -! 2005-dec-16 gayno - initial version -! 2014-feb-07 gayno - read 4km ims data in either -! grib1 or grib 2 format. -! -! usage: call readnesdis -! -! input argument list: n/a -! -! output argument list: n/a -! -! files: -! input: -! - ims snow cover and ice file, grib 1 or grib 2 -! - 16th-mesh ims land mask, binary -! -! output: none -! -! condition codes: all fatal -! 41 - ims file not grib 1 or grib 2 -! 53 - ims data failed quality check -! 70 - bad read of ims snow cover data -! 71 - bad read of ims ice data -! 72 - bad read of ims grib 1 header -! 73 - bad open of ims file -! 87 - bad open ims land mask file -! 88 - bad read ims land mask file -! -! remarks: nesdis/ims data available only for n hemis. ims data used -! to be created by nesdis. hence the references to "nesdis" -! in this routine. ims data is now created by the national -! ice center. -! -!$$$ - - use grib_mod - - implicit none - - integer, parameter :: iunit = 13 ! input grib file unit number - integer, parameter :: iunit2 = 43 ! input landmask file unit number - - integer*4, allocatable :: dummy4(:,:) - integer :: i, j - integer :: iret - integer :: jgds(200) - integer :: jpds(200) - integer :: lskip - integer, parameter :: lugi = 0 ! grib index file unit number - not used - integer :: jdisc, jgdtn, jpdtn, k - integer :: jids(200), jgdt(200), jpdt(200) - integer :: kgds(200) - integer :: kpds(200) - integer :: message_num - integer :: numbytes - integer :: numpts - integer :: isgrib - - logical :: unpack - - real, allocatable :: dummy(:,:) - real :: dum - - type(gribfield) :: gfld - - use_nesdis = .true. - - if ( len_trim(nesdis_snow_file) == 0 ) then - print*,"- WILL NOT USE NESDIS/IMS DATA." - use_nesdis = .false. - return - end if - - print*,"- OPEN AND READ NESDIS/IMS SNOW FILE ", trim(nesdis_snow_file) - - call grib_check(nesdis_snow_file, isgrib) - - if (isgrib==0) then - print*,'- FATAL ERROR: IMS FILE MUST BE GRIB 1 OR GRIB2 FORMAT' - call w3tage('SNOW2MDL') - call errexit(41) - end if - - call baopenr (iunit, nesdis_snow_file, iret) - - if (iret /= 0) then - print*,'- FATAL ERROR: BAD OPEN OF FILE, IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(73) - end if - - if (isgrib==1) then ! grib 1 format - -!----------------------------------------------------------------------- -! tell degribber to look for requested data. -!----------------------------------------------------------------------- - - lskip = -1 - jpds = -1 - jgds = -1 - jpds(5) = 91 ! ice cover - kpds = jpds - kgds = jgds - - print*,"- GET GRIB HEADER" - - call getgbh(iunit, lugi, lskip, jpds, jgds, numbytes, & - numpts, message_num, kpds, kgds, iret) - - if (iret /= 0) then - print*,"- FATAL ERROR: BAD DEGRIB OF HEADER. IRET IS ", iret - call w3tage('SNOW2MDL') - call errexit(72) - end if - - kgds_nesdis = kgds - inesdis = kgds(2) - jnesdis = kgds(3) - - mesh_nesdis = inesdis / 64 - nesdis_res = 381. / float(mesh_nesdis) ! in km - - print*,"- DATA VALID AT (YYMMDDHH): ", kpds(8:11) - - allocate (dummy(inesdis,jnesdis)) - allocate (sea_ice_nesdis(inesdis,jnesdis)) - allocate (bitmap_nesdis(inesdis,jnesdis)) - - print*,"- DEGRIB SEA ICE." - - call getgb(iunit, lugi, (inesdis*jnesdis), lskip, jpds, jgds, & - numpts, lskip, kpds, kgds, bitmap_nesdis, dummy, iret) - - if (iret /= 0) then - print*,"- FATAL ERROR: BAD DEGRIB OF DATA. IRET IS ", iret - call w3tage('SNOW2MDL') - call errexit(71) - end if - - sea_ice_nesdis = nint(dummy) ! only needed as yes/no flag - deallocate (dummy) - - lskip = -1 - jpds = -1 - jgds = -1 - jpds(5) = 238 ! snow cover - kpds = jpds - kgds = jgds - - allocate (snow_cvr_nesdis(inesdis,jnesdis)) - - print*,"- DEGRIB SNOW COVER." - - call getgb(iunit, lugi, (inesdis*jnesdis), lskip, jpds, jgds, & - numpts, lskip, kpds, kgds, bitmap_nesdis, snow_cvr_nesdis, iret) - - if (iret /= 0) then - print*,"- FATAL ERROR: BAD DEGRIB OF DATA. IRET IS ", iret - call w3tage('SNOW2MDL') - call errexit(70) - end if - - elseif (isgrib==2) then ! grib 2 format - - print*,"- DEGRIB SNOW COVER." - - j = 0 ! search at beginning of file - jdisc = 0 ! search for discipline; 0 - meteorological products - jpdtn = 0 ! search for product definition template number; 0 - analysis at one level - jgdtn = 20 ! search for grid definition template number; 20 - polar stereographic grid - jids = -9999 ! array of values in identification section, set to wildcard - jgdt = -9999 ! array of values in grid definition template 3.m - jpdt = -9999 ! array of values in product definition template 4.n - jpdt(1) = 1 ! search for parameter category - moisture - jpdt(2) = 201 ! search for parameter number - snow cover in percent. - unpack = .true. ! unpack data - - call grib2_null(gfld) - - call getgb2(iunit, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, & - unpack, k, gfld, iret) - - if (iret /=0) then - print*,'- FATAL ERROR: BAD DEGRIB OF FILE, IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(70) - endif - - print*,"- DATA VALID AT (YYYYMMDDHH): ", gfld%idsect(6),gfld%idsect(7), & - gfld%idsect(8),gfld%idsect(9) - -!----------------------------------------------------------------------- -! set the grib1 kgds array from the g2 grid definition template array. -! the kgds array is used by ipolates. -!----------------------------------------------------------------------- - - call gdt_to_gds(gfld%igdtnum, gfld%igdtmpl, gfld%igdtlen, kgds_nesdis, & - inesdis, jnesdis, dum) - - mesh_nesdis = inesdis / 64 - nesdis_res = 381. / float(mesh_nesdis) ! in km - - if (mesh_nesdis==16) kgds_nesdis(6)=136 ! the ims 16th mesh grib2 data - ! is gribbed with an elliptical - ! earth. that is wrong. hardwire - ! a fix here. - - allocate (snow_cvr_nesdis(inesdis,jnesdis)) - allocate (sea_ice_nesdis(inesdis,jnesdis)) - allocate (bitmap_nesdis(inesdis,jnesdis)) - - bitmap_nesdis = reshape (gfld%bmap , (/inesdis,jnesdis/) ) - snow_cvr_nesdis = reshape (gfld%fld , (/inesdis,jnesdis/) ) - - call grib2_free(gfld) - - print*,"- DEGRIB SEA ICE." - - j = 0 ! search at beginning of file - jdisc = 10 ! search for discipline; 10 - ocean products - jpdtn = 0 ! search for product definition template number; 0 - analysis at one level - jgdtn = 20 ! search for grid definition template number; 20 - polar stereographic grid - jids = -9999 ! array of values in identification section, set to wildcard - jgdt = -9999 ! array of values in grid definition template 3.m - jpdt = -9999 ! array of values in product definition template 4.n - jpdt(1) = 2 ! search for parameter category - ice - jpdt(2) = 0 ! search for parameter number - ice cover in percent. - unpack = .true. ! unpack data - - call getgb2(iunit, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, & - unpack, k, gfld, iret) - - if (iret /=0) then - print*,'- FATAL ERROR: BAD DEGRIB OF FILE, IRET IS ', iret - call w3tage('SNOW2MDL') - call errexit(71) - endif - - sea_ice_nesdis = reshape (gfld%fld , (/inesdis,jnesdis/) ) - - call grib2_free(gfld) - - end if - - call baclose(iunit,iret) - -!----------------------------------------------------------------------- -! the 16th mesh nesdis/ims grib data does not have a proper -! bitmap section. therefore, need to read in the mask -! from file. but the 96th mesh data has a proper bitmap, so use it. -!----------------------------------------------------------------------- - - if (mesh_nesdis == 16) then - - print*,"- OPEN NESDIS/IMS 16TH MESH LAND MASK: ", trim(nesdis_lsmask_file) - - open(iunit2, file=trim(nesdis_lsmask_file), form="formatted", & - iostat = iret) - - if (iret /= 0) then - print*,"- FATAL ERROR OPENING NESDIS/IMS LAND MASK FILE. ISTAT IS: ", iret - call errexit(87) - end if - - print*,"- READ NESDIS/IMS 16TH MESH LAND MASK." - - allocate (dummy4(inesdis,jnesdis)) - - do j = 1, 1024 - read(iunit2, 123, iostat=iret) (dummy4(i,j),i=1,1024) - if (iret /= 0) then - print*,"- FATAL ERROR READING NESDIS/IMS LAND MASK FILE. ISTAT IS: ", iret - call errexit(88) - end if - enddo - - close (iunit2) - -!----------------------------------------------------------------------- -! the file has 0-sea, 1-land, 9-off hemi. this code expects -! 0-non-land (or don't use data), 1-land (use data). -!----------------------------------------------------------------------- - - bitmap_nesdis=.false. - do j = 1, 1024 - do i = 1, 1024 - if (dummy4(i,j) == 1) bitmap_nesdis(i,j) = .true. - enddo - enddo - - deallocate(dummy4) - -123 FORMAT(80I1) - - endif ! is nesdis/ims data 16th mesh? - - bad_nesdis=.false. - call nh_climo_check(kgds_nesdis,snow_cvr_nesdis,bitmap_nesdis,inesdis,jnesdis,2,bad_nesdis) - -!----------------------------------------------------------------------- -! for the 2009 nmm-b implementation, it was decided to not run with -! afwa only. so even if afwa data is current and not corrupt, -! but the ims is bad, then abort program. exception, if ims is very old -! (there is a catastropic outage) then program will run with afwa -! only. this is done by setting the nesdis_snow_file variable to -! a zero length string (i.e., ims data not selected). this variable -! setting is accomplished in the run script. -!----------------------------------------------------------------------- - - if (bad_nesdis) then - print*,'- FATAL ERROR: NESDIS/IMS DATA BAD, DO NOT USE.' - print*,'- DONT RUN PROGRAM.' - use_nesdis=.false. - call w3tage('SNOW2MDL') - call errexit(53) - stop - endif - - return - - end subroutine readnesdis - - subroutine readafwa -!$$$ subprogram documentation block -! -! subprogram: readafwa -! prgmmr: gayno org: w/np2 date: 2005-dec-16 -! -! abstract: read nh and sh afwa snow depth data and -! land sea mask. -! -! program history log: -! 2005-dec-16 gayno - initial version -! 2007-nov-28 gayno - read 16th mesh afwa data in grib format -! -! usage: call readafwa -! -! input argument list: n/a -! -! output argument list: n/a -! -! files: -! input: -! - global afwa data in grib 1 (if selected) -! - nh afwa data in grib 1 (if selected) -! - sh afwa data in grib 1 (if selected) -! -! output: none -! -! condition codes: -! 60 - bad open afwa file -! 61 - bad degrib of afwa file -! -! remarks: none -! -!$$$ - - implicit none - - integer, parameter :: iunit=11 - integer :: jgds(200), jpds(200), kgds(200), kpds(200) - integer :: istat - integer :: lugi, lskip, numbytes, numpts, message_num - integer :: isgrib - - bad_afwa_nh=.false. - bad_afwa_sh=.false. - bad_afwa_global=.false. - - use_global_afwa=.true. - use_nh_afwa = .true. - use_sh_afwa = .true. - - if (len_trim(afwa_snow_nh_file) == 0 .and. & - len_trim(afwa_snow_sh_file) == 0 .and. & - len_trim(afwa_snow_global_file) == 0) then - print*,"- WILL NOT USE AFWA DATA." - use_nh_afwa = .false. - use_sh_afwa = .false. - use_global_afwa = .false. - return - end if - - if ( len_trim(afwa_snow_global_file) > 0 ) then - - print*,"- OPEN AND READ AFWA SNOW FILE ", trim(afwa_snow_global_file) - call baopenr (iunit, afwa_snow_global_file, istat) - if (istat /= 0) then - print*,'- FATAL ERROR: BAD OPEN OF FILE, ISTAT IS ', istat - call w3tage('SNOW2MDL') - call errexit(60) - end if - -!----------------------------------------------------------------------- -! tell degribber to look for requested data. -!----------------------------------------------------------------------- - - lugi = 0 - lskip = -1 - jpds = -1 - jgds = -1 - jpds(5) = 66 ! snow depth - kpds = jpds - kgds = jgds - - print*,"- GET GRIB HEADER" - call getgbh(iunit, lugi, lskip, jpds, jgds, numbytes, & - numpts, message_num, kpds, kgds, istat) - - if (istat /= 0) then - print*,"- FATAL ERROR: BAD DEGRIB OF HEADER. ISTAT IS ", istat - call w3tage('SNOW2MDL') - call errexit(61) - end if - - iafwa = kgds(2) - jafwa = kgds(3) - afwa_res = float(kgds(10))*0.001*111.0 ! in km. - - print*,"- DATA VALID AT (YYMMDDHH): ", kpds(8:11) - print*,"- DEGRIB SNOW DEPTH." - - allocate(bitmap_afwa_global(iafwa,jafwa)) - allocate(snow_dep_afwa_global(iafwa,jafwa)) - - call getgb(iunit, lugi, (iafwa*jafwa), lskip, jpds, jgds, & - numpts, lskip, kpds, kgds, bitmap_afwa_global, snow_dep_afwa_global, istat) - - if (istat /= 0) then - print*,"- FATAL ERROR: BAD DEGRIB OF DATA. ISTAT IS ", istat - call w3tage('SNOW2MDL') - call errexit(61) - end if - - kgds_afwa_global = kgds - - call baclose(iunit, istat) - - call nh_climo_check(kgds_afwa_global,snow_dep_afwa_global,bitmap_afwa_global,iafwa,jafwa,1,bad_afwa_global) - - if (bad_afwa_global) then - print*,'- WARNING: AFWA DATA BAD, DO NOT USE.' - use_global_afwa = .false. - endif - - use_nh_afwa=.false. ! use global or hemispheric files. not both. - use_sh_afwa=.false. - - return ! use global or hemispheric files. not both. - - else - - use_global_afwa=.false. - - endif - - if ( len_trim(afwa_snow_nh_file) > 0 ) then ! afwa nh data selected - - call grib_check(afwa_snow_nh_file, isgrib) - - if (isgrib==0) then ! old ncep binary format - - iafwa = 512 - jafwa = 512 - afwa_res = 47.625 ! in kilometers - kgds_afwa_nh = kgds_afwa_nh_8th - - allocate (snow_dep_afwa_nh(iafwa,jafwa)) - call read_afwa_binary(afwa_snow_nh_file, snow_dep_afwa_nh) - - allocate (bitmap_afwa_nh(iafwa,jafwa)) - call read_afwa_mask(afwa_lsmask_nh_file, bitmap_afwa_nh) - - else ! afwa data is grib - - print*,"- OPEN AND READ AFWA SNOW FILE ", trim(afwa_snow_nh_file) - - call baopenr (iunit, afwa_snow_nh_file, istat) - - if (istat /= 0) then - print*,'- FATAL ERROR: BAD OPEN OF FILE, ISTAT IS ', istat - call w3tage('SNOW2MDL') - call errexit(60) - end if - -!----------------------------------------------------------------------- -! tell degribber to look for requested data. -!----------------------------------------------------------------------- - - lugi = 0 - lskip = -1 - jpds = -1 - jgds = -1 - jpds(5) = 66 ! snow depth - kpds = jpds - kgds = jgds - - print*,"- GET GRIB HEADER" - call getgbh(iunit, lugi, lskip, jpds, jgds, numbytes, & - numpts, message_num, kpds, kgds, istat) - - if (istat /= 0) then - print*,"- FATAL ERROR: BAD DEGRIB OF HEADER. ISTAT IS ", istat - call w3tage('SNOW2MDL') - call errexit(61) - end if - - iafwa = kgds(2) - jafwa = kgds(3) - afwa_res = float(kgds(8))*0.001 ! in km. - - print*,"- DATA VALID AT (YYMMDDHH): ", kpds(8:11) - - print*,"- DEGRIB SNOW DEPTH." - - allocate(bitmap_afwa_nh(iafwa,jafwa)) - allocate(snow_dep_afwa_nh(iafwa,jafwa)) - - call getgb(iunit, lugi, (iafwa*jafwa), lskip, jpds, jgds, & - numpts, lskip, kpds, kgds, bitmap_afwa_nh, snow_dep_afwa_nh, istat) - - if (istat /= 0) then - print*,"- FATAL ERROR: BAD DEGRIB OF DATA. ISTAT IS ", istat - call w3tage('SNOW2MDL') - call errexit(61) - end if - - kgds_afwa_nh = kgds - - kgds_afwa_nh(7) = -80000 ! ipolates definition of orientation angle is - ! 180 degrees off from grib standard. - - call baclose(iunit, istat) - - endif ! is nh afwa data grib? - - call nh_climo_check(kgds_afwa_nh,snow_dep_afwa_nh,bitmap_afwa_nh,iafwa,jafwa,1,bad_afwa_nh) - - else - - use_nh_afwa=.false. - - endif - -!----------------------------------------------------------------------- -! now, read southern hemisphere data. -!----------------------------------------------------------------------- - - if ( len_trim(afwa_snow_sh_file) > 0 ) then - - call grib_check(afwa_snow_sh_file, isgrib) - - if (isgrib==0) then ! old ncep binary format - - iafwa = 512 - jafwa = 512 - afwa_res = 47.625 - kgds_afwa_sh = kgds_afwa_sh_8th - - allocate (snow_dep_afwa_sh(iafwa,jafwa)) - call read_afwa_binary(afwa_snow_sh_file, snow_dep_afwa_sh) - - allocate (bitmap_afwa_sh(iafwa,jafwa)) - call read_afwa_mask(afwa_lsmask_sh_file, bitmap_afwa_sh) - - else ! sh afwa data is grib - - print*,"- OPEN AND READ AFWA SNOW FILE ", trim(afwa_snow_sh_file) - - call baopenr (iunit, afwa_snow_sh_file, istat) - - if (istat /= 0) then - print*,'- FATAL ERROR: BAD OPEN OF FILE, ISTAT IS ', istat - call w3tage('SNOW2MDL') - call errexit(60) - end if - -!----------------------------------------------------------------------- -! tell degribber to look for requested data. -!----------------------------------------------------------------------- - - lugi = 0 - lskip = -1 - jpds = -1 - jgds = -1 - jpds(5) = 66 ! snow cover - kpds = jpds - kgds = jgds - - print*,"- GET GRIB HEADER" - call getgbh(iunit, lugi, lskip, jpds, jgds, numbytes, & - numpts, message_num, kpds, kgds, istat) - - if (istat /= 0) then - print*,"- FATAL ERROR: BAD DEGRIB OF HEADER. ISTAT IS ", istat - call w3tage('SNOW2MDL') - call errexit(61) - end if - - iafwa = kgds(2) - jafwa = kgds(3) - afwa_res = float(kgds(8))*0.001 ! in km. - - print*,"- DATA VALID AT (YYMMDDHH): ", kpds(8:11) - - print*,"- DEGRIB SNOW DEPTH." - - allocate(bitmap_afwa_sh(iafwa,jafwa)) - allocate(snow_dep_afwa_sh(iafwa,jafwa)) - - call getgb(iunit, lugi, (iafwa*jafwa), lskip, jpds, jgds, & - numpts, lskip, kpds, kgds, bitmap_afwa_sh, snow_dep_afwa_sh, istat) - - if (istat /= 0) then - print*,"- FATAL ERROR: BAD DEGRIB OF DATA. ISTAT IS ", istat - call w3tage('SNOW2MDL') - call errexit(61) - end if - - kgds_afwa_sh = kgds - - kgds_afwa_sh(7) = -80000 ! ipolates definition of orientation angle is - ! 180 degrees off from grib standard. - - call baclose(iunit, istat) - - endif ! is sh afwa data grib or not? - - call afwa_check(2) - - else - - use_sh_afwa = .false. - - endif - -!------------------------------------------------------------------- -!if either hemisphere is bad, don't trust all hemispheres -!------------------------------------------------------------------- - - if (bad_afwa_nh .or. bad_afwa_sh) then - print*,'- WARNING: AFWA DATA BAD, DO NOT USE.' - use_nh_afwa = .false. - use_sh_afwa = .false. - endif - - return - - end subroutine readafwa - - subroutine nh_climo_check(kgds_data,snow_data,bitmap_data,idata,jdata,isrc,bad) -!$$$ subprogram documentation block -! -! subprogram: nh_climo_check -! prgmmr: gayno org: w/np2 date: 2009-jun-3 -! -! abstract: check for corrupt nh data by comparing it -! to climatology -! -! program history log: -! 2009-jun-3 gayno - initial version -! 2011-apr-26 gayno - perform gross check first, -! then check against climo -! 2014-sep-30 gayno - weekly climo file converted -! to grib 2. -! -! usage: call nh_climo_check -! -! input argument list: -! - kgds_data - grib 1 grid description sect of data to be qcd -! - snow_data - snow cover to be qcd -! - bitmap_data - bitmap of data to be qcd -! - i/jdata - i/j dimension of data to be qcd -! - isrc - flag indicating data source; 1-afwa depth, 2-ims cover -! -! output argument list: -! - bad - when true, data failed check -! -! files: -! input: -! - NH weekly climatological snow cover file (grib 2) -! -! output: none -! -! condition codes: none -! -! remarks: none. -! -!$$$ - - use gdswzd_mod - - use program_setup, only : climo_qc_file, & - grib_year, grib_month, grib_day, & - grib_century - - use grib_mod ! for grib2 library - - implicit none - -! describes the climo data grid. - integer, parameter :: iclim = 1080 - integer, parameter :: jclim = 270 - real, parameter :: lat11_clim = 90.0 - real, parameter :: lon11_clim = -180.0 - real, parameter :: dx_clim = 1./3. - real, parameter :: dy_clim = 1./3. - - integer, intent(in) :: idata, jdata, kgds_data(200), isrc - logical*1, intent(in) :: bitmap_data(idata,jdata) - logical, intent(out) :: bad - real, intent(in) :: snow_data(idata,jdata) - -! local variables - integer :: idat(8), jdow, jdoy, jday - integer :: century, year, week, iret, lugb, i, j, ii, jj - integer :: lugi, jdisc, jpdtn, jgdtn, k, nret - integer :: jids(200), jgdt(200), jpdt(200) - integer :: count_nosnow_climo, count_nosnow_data - integer :: count_snow_climo, count_snow_data, count_grosschk_data - - logical*1, allocatable :: bitmap_clim(:,:) - logical :: unpack - - real, allocatable :: climo(:,:) - real :: fill, percent, x, y - real, allocatable :: xpts(:,:),ypts(:,:),rlon_data(:,:),rlat_data(:,:) - real :: thresh_gross, thresh - - type(gribfield) :: gfld - - bad=.false. - if (len_trim(climo_qc_file)==0) return - - print*,"- QC SNOW DATA IN NH." - - if (isrc==1) then - thresh_gross=50.0 ! afwa data is depth in meters - elseif (isrc==2) then - thresh_gross=100.0 ! nesdis/ims data is coverage in percent - endif - - fill=999. - allocate(xpts(idata,jdata)) - allocate(ypts(idata,jdata)) - allocate(rlon_data(idata,jdata)) - allocate(rlat_data(idata,jdata)) - do j=1,jdata - do i=1,idata - xpts(i,j)=i - ypts(i,j)=j - enddo - enddo - - print*,"- CALC LAT/LONS OF SOURCE POINTS." - call gdswzd(kgds_data,1,(idata*jdata),fill,xpts,ypts,rlon_data,rlat_data,nret) - - deallocate(xpts,ypts) - - if (nret /= (idata*jdata)) then - print*,"- WARNING: CALC FAILED. WILL NOT PERFORM QC." - deallocate (rlon_data,rlat_data) - return - endif - - count_grosschk_data=0 - do j=1,jdata - do i=1,idata - if (rlat_data(i,j)>0.0 .and. bitmap_data(i,j)) then - if (snow_data(i,j) < 0.0 .or. snow_data(i,j) > thresh_gross) then - count_grosschk_data=count_grosschk_data+1 - endif - endif - enddo - enddo - - if (count_grosschk_data > 1) then - print*,'- NUMBER OF DATA POINTS THAT FAIL GROSS CHECK ',count_grosschk_data - deallocate (rlon_data,rlat_data) - bad=.true. - return - endif - - print*,"- QC DATA SOURCE AGAINST CLIMO." - print*,"- OPEN CLIMO SNOW COVER FILE ",trim(climo_qc_file) - lugb=11 - call baopenr(lugb,climo_qc_file,iret) - - if (iret /= 0) then - print*,"- WARNING: BAD OPEN, WILL NOT PERFORM QC ", iret - deallocate (rlon_data,rlat_data) - return - endif - -!--------------------------------------------------------------- -! climo file is weekly. so calculate the current week -! then read that record from the climo file. -!--------------------------------------------------------------- - - if (grib_year == 100) then - century = grib_century - else - century = grib_century-1 - endif - - year = century*100 + grib_year - - idat=0 - idat(1)=year - idat(2)=grib_month - idat(3)=grib_day - - call w3doxdat(idat,jdow,jdoy,jday) - -! the climo file date is the beginning of the 7 day period - - week = nint((jdoy+3.)/7.) - if (week==0) week=52 - if (week==53) week=1 - - print*,"- READ CLIMO FOR WEEK ",week - - call grib2_null(gfld) - - j = week-1 ! search for specific week (# records to skip) - lugi = 0 ! no grib index file - jdisc = 0 ! search for discipline; 0 - meteorological products - jpdtn = 8 ! search for product definition template number; 8 - average - jgdtn = 0 ! search for grid definition template number; 0 - lat/lon grid - jids = -9999 ! array of values in identification section, set to wildcard - - jgdt = -9999 ! array of values in grid definition template 3.m - jgdt(8) = iclim ! search for assumed grid specs - i/j dimensions and corner - ! point lat/lons must match. - jgdt(9) = jclim - jgdt(12) = nint(lat11_clim * 1e6) - jgdt(13) = nint(abs(lon11_clim) * 1e6) - - jpdt = -9999 ! array of values in product definition template 4.n - jpdt(1) = 1 ! search for parameter category - moisture - jpdt(2) = 201 ! search for parameter number - snow cover in percent. - unpack = .true. ! unpack data - - call getgb2(lugb, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, & - unpack, k, gfld, iret) - - if (iret /= 0) then - print*,"- WARNING: PROBLEM READING GRIB FILE ", iret - print*,"- WILL NOT PERFORM QC." - deallocate(rlon_data,rlat_data) - deallocate(climo, bitmap_clim) - call baclose(lugb,iret) - return - endif - - call baclose(lugb,iret) - - allocate(climo(iclim,jclim)) - climo = reshape (gfld%fld , (/iclim,jclim/) ) - allocate(bitmap_clim(iclim,jclim)) - bitmap_clim = reshape (gfld%bmap , (/iclim,jclim/) ) - - call grib2_free(gfld) - -!--------------------------------------------------------------- -! loop over all data points in nh. gross check data. -! afwa is a depth in meters, ims is % coverage. there should be -! no neg values or very large values. if point passes gross check, -! then check against climatology. find the -! nearest point on the climo snow cover grid. if -! climo indicates snow is likely (100% coverage), then -! check if afwa/ims has snow. if climo indicates snow is -! impossible (0% coverage), then check if afwa/ims has no snow. if -! afwa/ims differs from climo too much, then afwa/ims is -! considered suspect and will not be used. -!--------------------------------------------------------------- - - count_nosnow_climo=0 - count_nosnow_data=0 - count_snow_data=0 - count_snow_climo=0 - - if (isrc==1) then - thresh=.005 - elseif (isrc==2) then - thresh=50.0 - endif - - do j=1,jdata - do i=1,idata - if (rlat_data(i,j)>0.0 .and. bitmap_data(i,j)) then - y = (lat11_clim-rlat_data(i,j))/dy_clim + 1.0 - if (rlon_data(i,j)>180.0) rlon_data(i,j)=rlon_data(i,j)-360.0 - x = (rlon_data(i,j)-lon11_clim)/dx_clim + 1.0 - jj=nint(y) - if (jj<1) jj=1 - if (jj>jclim) jj=jclim - ii=nint(x) - if (ii<1) ii=ii+iclim - if (ii>iclim) ii=ii-iclim - if (bitmap_clim(ii,jj)) then ! climo point is land - if (climo(ii,jj) <1.0) then ! climo point is snow impossible - count_nosnow_climo=count_nosnow_climo+1 - if (snow_data(i,j) == 0.0) then - count_nosnow_data=count_nosnow_data+1 - endif - endif - if (climo(ii,jj) > 99.) then ! climo point is snow likely - count_snow_climo=count_snow_climo+1 - if (snow_data(i,j) >thresh) then - count_snow_data=count_snow_data+1 - endif - endif - endif - endif - enddo - enddo - - percent = float(count_snow_climo-count_snow_data) / float(count_snow_climo) - percent = percent*100. - write(6,200) '- NUMBER OF DATA POINTS THAT SHOULD HAVE SNOW',count_snow_climo - write(6,201) '- NUMBER OF THESE POINTS THAT ARE BARE GROUND',(count_snow_climo-count_snow_data), & - 'OR', percent, '%' - - 200 format(1x,a45,1x,i10) - 201 format(1x,a45,1x,i10,1x,a2,1x,f6.2,a1) - - if (percent>50.0) then - print*,"- WARNING: PERCENTAGE OF BARE GROUND POINTS EXCEEDS ACCEPTABLE LEVEL." - print*,"- WILL NOT USE SOURCE DATA." - bad=.true. - endif - - percent = float(count_nosnow_climo-count_nosnow_data) / float(count_nosnow_climo) - percent = percent*100. - write(6,202) '- NUMBER OF DATA POINTS THAT SHOULD *NOT* HAVE SNOW',count_nosnow_climo - write(6,203) '- NUMBER OF THESE POINTS WITH SNOW',(count_nosnow_climo-count_nosnow_data), & - 'OR', percent, '%' - - 202 format(1x,a51,1x,i10) - 203 format(1x,a34,1x,i10,1x,a2,1x,f6.2,a1) - - if (percent>20.0) then - print*,"- WARNING: PERCENTAGE OF POINTS WITH SNOW EXCEEDS ACCEPTABLE LEVEL." - print*,"- WILL NOT USE SOURCE DATA." - bad=.true. - endif - - if (allocated(rlat_data)) deallocate (rlat_data) - if (allocated(rlon_data)) deallocate (rlon_data) - if (allocated(climo)) deallocate (climo) - if (allocated(bitmap_clim)) deallocate (bitmap_clim) - - return - - end subroutine nh_climo_check - - subroutine afwa_check(hemi) -!$$$ subprogram documentation block -! -! subprogram: afwa_check -! prgmmr: gayno org: w/np2 date: 2009-jun-3 -! -! abstract: check for corrupt afwa data -! -! program history log: -! 2009-jun-3 gayno - initial version -! -! usage: call afwa_check(hemi) -! -! input argument list: hemi (1-nh, 2-sh) -! -! output argument list: n/a -! -! files: none -! -! condition codes: none -! -! remarks: none. -! -!$$$ - use gdswzd_mod - - implicit none - - integer, intent(in) :: hemi - integer :: kgds(200), nret - integer, parameter :: npts=1 - - real :: fill, xpts(npts), ypts(npts) - real :: rlon(npts), rlat(npts) - - kgds=0 - fill=9999. - - if (hemi==1) then - print*,'- QC DATA IN NH.' - kgds=kgds_afwa_nh - rlat=75.0 - rlon=-40. - call gdswzd(kgds,(-1),npts,fill,xpts,ypts,rlon,rlat,nret) - if (snow_dep_afwa_nh(nint(xpts(1)),nint(ypts(1))) < 0.001) then - print*,'- WARNING: NO SNOW IN GREENLAND: ',snow_dep_afwa_nh(nint(xpts),nint(ypts)) - print*,'- DONT USE AFWA DATA.' - bad_afwa_nh=.true. - endif - rlat=3.0 - rlon=-60. - call gdswzd(kgds,(-1),npts,fill,xpts,ypts,rlon,rlat,nret) - if (snow_dep_afwa_nh(nint(xpts(1)),nint(ypts(1))) > 0.0) then - print*,'- WARNING: SNOW IN S AMERICA: ',snow_dep_afwa_nh(nint(xpts),nint(ypts)) - print*,'- DONT USE AFWA DATA.' - bad_afwa_nh=.true. - endif - rlat=23.0 - rlon=10. - call gdswzd(kgds,(-1),npts,fill,xpts,ypts,rlon,rlat,nret) - if (snow_dep_afwa_nh(nint(xpts(1)),nint(ypts(1))) > 0.0) then - print*,'- WARNING: SNOW IN SAHARA: ',snow_dep_afwa_nh(nint(xpts),nint(ypts)) - print*,'- DONT USE AFWA DATA.' - bad_afwa_nh=.true. - endif - rlat=15.0 - rlon=10. - call gdswzd(kgds,(-1),npts,fill,xpts,ypts,rlon,rlat,nret) - if (snow_dep_afwa_nh(nint(xpts(1)),nint(ypts(1))) > 0.0) then - print*,'- WARNING: SNOW IN S INDIA: ',snow_dep_afwa_nh(nint(xpts),nint(ypts)) - print*,'- DONT USE AFWA DATA.' - bad_afwa_nh=.true. - endif - endif - - if (hemi==2) then - print*,'- QC DATA IN SH.' - kgds=kgds_afwa_sh - rlat=-88.0 - rlon=0. - call gdswzd(kgds,(-1),npts,fill,xpts,ypts,rlon,rlat,nret) - if (snow_dep_afwa_sh(nint(xpts(1)),nint(ypts(1))) < 0.001) then - print*,'- WARNING: NO SNOW IN ANTARCTICA: ',snow_dep_afwa_sh(nint(xpts),nint(ypts)) - print*,'- DONT USE AFWA DATA.' - bad_afwa_sh=.true. - endif - rlat=-10. - rlon=-45. - call gdswzd(kgds,(-1),npts,fill,xpts,ypts,rlon,rlat,nret) - if (snow_dep_afwa_sh(nint(xpts(1)),nint(ypts(1))) > 0.0) then - print*,'- WARNING: SNOW IN SOUTH AMERICA: ',snow_dep_afwa_sh(nint(xpts),nint(ypts)) - print*,'- DONT USE AFWA DATA.' - bad_afwa_sh=.true. - endif - rlat=-20.0 - rlon=130. - call gdswzd(kgds,(-1),npts,fill,xpts,ypts,rlon,rlat,nret) - if (snow_dep_afwa_sh(nint(xpts(1)),nint(ypts(1))) > 0.0) then - print*,'- WARNING: SNOW IN AUSTRALIA: ',snow_dep_afwa_sh(nint(xpts),nint(ypts)) - print*,'- DONT USE AFWA DATA.' - bad_afwa_sh=.true. - endif - rlat=-9.0 - rlon=25. - call gdswzd(kgds,(-1),npts,fill,xpts,ypts,rlon,rlat,nret) - if (snow_dep_afwa_sh(nint(xpts(1)),nint(ypts(1))) > 0.0) then - print*,'- WARNING: SNOW IN AFRICA: ',snow_dep_afwa_sh(nint(xpts),nint(ypts)) - print*,'- DONT USE AFWA DATA.' - bad_afwa_sh=.true. - endif - endif - - end subroutine afwa_check - - subroutine read_afwa_binary(file_name, snow_dep_afwa) -!$$$ subprogram documentation block -! -! subprogram: read_afwa_binary -! prgmmr: gayno org: w/np2 date: 2007-nov-28 -! -! abstract: read afwa binary snow depth file -! -! program history log: -! 2007-nov-28 gayno - initial version -! -! usage: call grib_check(file_name, snow_dep_afwa) -! -! input argument list: file_name - file name -! -! output argument list: snow_dep_afwa - snow depth in meters -! -! files: -! input: -! - nh/sh afwa data in simple binary format -! -! output: none -! -! condition codes: all fatal -! 60 - bad open of afwa file -! 61 - bad read of afwa file -! -! remarks: read logic for binary data taken from hua-lu's code: -! /nwprod/sorc/grib_snowgrib.fd -! -!$$$ - - implicit none - - character*8 :: afwa_file_info(2) - character*(*), intent(in) :: file_name - - integer*2, allocatable :: dummy(:,:) - integer :: i,j, istat - integer, parameter :: iafwa = 512 - integer, parameter :: jafwa = 512 - integer, parameter :: iunit=11 ! input afwa data file - - real, intent(out) :: snow_dep_afwa(iafwa,jafwa) - - print*,"- OPEN AFWA BINARY FILE ", trim(file_name) - open (iunit, file=trim(file_name), access="direct", recl=iafwa*2, iostat=istat) - - if (istat /= 0) then - print*,'- FATAL ERROR: BAD OPEN. ISTAT IS ',istat - call w3tage('SNOW2MDL') - call errexit(60) - end if - - print*,"- READ AFWA BINARY FILE ", trim(file_name) - read(iunit, rec=2, iostat = istat) afwa_file_info - - if (istat /= 0) then - print*,'- FATAL ERROR: BAD READ. ISTAT IS ',istat - call w3tage('SNOW2MDL') - call errexit(61) - end if - - print*,"- AFWA DATA IS ", afwa_file_info(1), " AT TIME ", afwa_file_info(2)(2:7) - - allocate(dummy(iafwa,jafwa)) - - do j = 1, jafwa - read(iunit, rec=j+2, iostat=istat) (dummy(i,j),i=1,iafwa) - if (istat /= 0) then - print*,'- FATAL ERROR: BAD READ. ISTAT IS ',istat - call w3tage('SNOW2MDL') - call errexit(61) - end if - enddo - - close(iunit) - -!----------------------------------------------------------------------- -! "4090" is the sea ice flag. we don't use the afwa sea ice. -!----------------------------------------------------------------------- - - where (dummy == 4090) dummy = 0 - - snow_dep_afwa = float(dummy) - -!--------------------------------------------------------------------- -! afwa data is a snow depth in units of tenths of inches. -! convert this to meters. -!--------------------------------------------------------------------- - - snow_dep_afwa = snow_dep_afwa * 2.54 / 1000.0 - - deallocate (dummy) - - return - - end subroutine read_afwa_binary - - subroutine read_afwa_mask(file_name, bitmap_afwa) -!$$$ subprogram documentation block -! -! subprogram: read_afwa_mask -! prgmmr: gayno org: w/np2 date: 2007-nov-28 -! -! abstract: read afwa land mask file to get a bitmap -! -! program history log: -! 2007-nov-28 gayno - initial version -! -! usage: call read_afwa_mask(file_name, bitmap_afwa) -! -! input argument list: file_name - land mask file name -! -! output argument list: bitmap_afwa - .true. if land -! -! files: -! input: -! - afwa landmask in simple binary format -! -! output: none -! -! condition codes: all fatal -! 62 - bad open of afwa landmask file -! 63 - bad read of afwa landmask file -! -! remarks: none. -! -!$$$ - - implicit none - - character*(*), intent(in) :: file_name - - integer, parameter :: iunit=11 ! input mask file - integer, parameter :: iafwa = 512 - integer, parameter :: jafwa = 512 - integer :: i, j, istat - integer*4, allocatable :: dummy4(:,:) - - logical*1, intent(out) :: bitmap_afwa(iafwa,jafwa) - - allocate (dummy4(iafwa,jafwa)) - - print*,'- OPEN AFWA MASK FILE ', trim(file_name) - open(iunit, file=trim(file_name), access='direct', & - recl=iafwa*jafwa*4, iostat=istat) - - if (istat /= 0) then - print*,'- FATAL ERROR: BAD OPEN. ISTAT IS ', istat - call w3tage('SNOW2MDL') - call errexit(62) - end if - - print*,'- READ AFWA MASK FILE ', trim(file_name) - read(iunit, rec=1, iostat=istat) dummy4 - - if (istat /= 0) then - print*,'- FATAL ERROR: BAD READ. ISTAT IS ', istat - call w3tage('SNOW2MDL') - call errexit(63) - end if - - close(iunit) - -!----------------------------------------------------------------------- -! here -1-offhemi, 1-ocean, 2-land, 4-coast. -!----------------------------------------------------------------------- - - bitmap_afwa = .false. - - do j = 1, jafwa - do i = 1, iafwa - if (dummy4(i,j) > 1) then - bitmap_afwa(i,j) = .true. - endif - enddo - enddo - - deallocate (dummy4) - - end subroutine read_afwa_mask - - end module snowdat diff --git a/sorc/enkf_chgres_recenter.fd/input_data.f90 b/sorc/enkf_chgres_recenter.fd/input_data.f90 index 99657a0a7c..704aa58c8d 100644 --- a/sorc/enkf_chgres_recenter.fd/input_data.f90 +++ b/sorc/enkf_chgres_recenter.fd/input_data.f90 @@ -122,6 +122,21 @@ subroutine read_input_data allocate(dummy(ij_input)) + ! figure out the sign of delz + print*,"READ DELZ FOR SIGN CHECK" + vlev = 1 + vlevtyp = "mid layer" + vname = "delz" + call nemsio_readrecv(gfile, vname, vlevtyp, vlev, dummy, 0, iret) + if (iret /= 0) goto 67 + if ( sum(dummy) > 0 ) then + flipdelz = .false. + print*,"DELZ IS POSITIVE" + else + flipdelz = .true. + print*,"DELZ IS NEGATIVE" + end if + print* print*,"READ SURFACE PRESSURE" vlev = 1 diff --git a/sorc/enkf_chgres_recenter.fd/interp.f90 b/sorc/enkf_chgres_recenter.fd/interp.f90 index 63f78c4a15..bb2afedbc3 100644 --- a/sorc/enkf_chgres_recenter.fd/interp.f90 +++ b/sorc/enkf_chgres_recenter.fd/interp.f90 @@ -235,7 +235,7 @@ subroutine adjust_for_terrain delz_output = 0.0 call compute_delz(ij_output, lev, vcoord(:,1), vcoord(:,2), sfcp_output, hgt_output, & - tmp_output, spfh_output, delz_output) + tmp_output, spfh_output, delz_output, flipdelz) deallocate(hgt_output) diff --git a/sorc/enkf_chgres_recenter.fd/makefile b/sorc/enkf_chgres_recenter.fd/makefile index 076af7f4b0..2a5f36b369 100755 --- a/sorc/enkf_chgres_recenter.fd/makefile +++ b/sorc/enkf_chgres_recenter.fd/makefile @@ -2,7 +2,7 @@ SHELL= /bin/sh LIBS= $(NEMSIO_LIB) $(BACIO_LIB4) $(W3NCO_LIBd) $(IP_LIBd) $(SP_LIBd) -CMD= chgres_recenter.exe +CMD= enkf_chgres_recenter.x OBJS = driver.o input_data.o interp.o output_data.o utils.o setup.o diff --git a/sorc/enkf_chgres_recenter.fd/setup.f90 b/sorc/enkf_chgres_recenter.fd/setup.f90 index c33aa9c5db..c2c2dc450e 100644 --- a/sorc/enkf_chgres_recenter.fd/setup.f90 +++ b/sorc/enkf_chgres_recenter.fd/setup.f90 @@ -14,6 +14,7 @@ module setup integer(nemsio_intkind), public :: i_output integer(nemsio_intkind), public :: j_output integer , public :: ij_output + logical, public :: flipdelz public :: program_setup diff --git a/sorc/enkf_chgres_recenter.fd/utils.f90 b/sorc/enkf_chgres_recenter.fd/utils.f90 index c9b1f1b73a..e09c75b018 100644 --- a/sorc/enkf_chgres_recenter.fd/utils.f90 +++ b/sorc/enkf_chgres_recenter.fd/utils.f90 @@ -10,7 +10,7 @@ module utils contains - subroutine compute_delz(ijm, levp, ak_in, bk_in, ps, zs, t, sphum, delz) + subroutine compute_delz(ijm, levp, ak_in, bk_in, ps, zs, t, sphum, delz, flipsign) implicit none integer, intent(in):: levp, ijm @@ -19,6 +19,7 @@ subroutine compute_delz(ijm, levp, ak_in, bk_in, ps, zs, t, sphum, delz) real, intent(in), dimension(ijm,levp):: t real, intent(in), dimension(ijm,levp):: sphum real, intent(out), dimension(ijm,levp):: delz + logical, intent(in) :: flipsign ! Local: real, dimension(ijm,levp+1):: zh real, dimension(ijm,levp+1):: pe0, pn0 @@ -63,7 +64,11 @@ subroutine compute_delz(ijm, levp, ak_in, bk_in, ps, zs, t, sphum, delz) do k = 1, levp do i = 1, ijm - delz(i,k) = zh(i,k+1) - zh(i,k) + if (flipsign) then + delz(i,k) = zh(i,k) - zh(i,k+1) + else + delz(i,k) = zh(i,k+1) - zh(i,k) + end if enddo enddo diff --git a/sorc/enkf_chgres_recenter_nc.fd/driver.f90 b/sorc/enkf_chgres_recenter_nc.fd/driver.f90 new file mode 100644 index 0000000000..1ec7c70f03 --- /dev/null +++ b/sorc/enkf_chgres_recenter_nc.fd/driver.f90 @@ -0,0 +1,67 @@ +!!! based on chgres_recenter +!!! cory.r.martin@noaa.gov 2019-09-27 + program regrid + + use setup, only : program_setup + use interp, only : gaus_to_gaus, adjust_for_terrain + use input_data, only : read_input_data, & + read_vcoord_info + use output_data, only : set_output_grid, write_output_data + + implicit none + + call w3tagb('ENKF_CHGRES_RECENTER_NCIO',2019,0270,0085,'NP20') + + print*,"STARTING PROGRAM" + +!-------------------------------------------------------- +! Read configuration namelist. +!-------------------------------------------------------- + + call program_setup + +!-------------------------------------------------------- +! Read input grid data +!-------------------------------------------------------- + + call read_input_data + +!-------------------------------------------------------- +! Read vertical coordinate info +!-------------------------------------------------------- + + call read_vcoord_info + +!-------------------------------------------------------- +! Get output grid specs +!-------------------------------------------------------- + + call set_output_grid + +!-------------------------------------------------------- +! Interpolate data to output grid +!-------------------------------------------------------- + + call gaus_to_gaus + +!-------------------------------------------------------- +! Adjust output fields for differences between +! interpolated and external terrain. +!-------------------------------------------------------- + + call adjust_for_terrain + +!-------------------------------------------------------- +! Write output data to file. +!-------------------------------------------------------- + + call write_output_data + + print* + print*,"PROGRAM FINISHED NORMALLY!" + + call w3tage('ENKF_CHGRES_RECENTER_NCIO') + + stop + + end program regrid diff --git a/sorc/enkf_chgres_recenter_nc.fd/input_data.f90 b/sorc/enkf_chgres_recenter_nc.fd/input_data.f90 new file mode 100644 index 0000000000..609aed05a6 --- /dev/null +++ b/sorc/enkf_chgres_recenter_nc.fd/input_data.f90 @@ -0,0 +1,345 @@ + module input_data + + use utils + use setup + use module_fv3gfs_ncio + + implicit none + + private + + integer, public :: idvc, idsl, idvm, nvcoord + integer, public :: nvcoord_input, ntrac, ncldt + integer, public :: ij_input, kgds_input(200) + integer, public :: i_input, j_input, lev, lev_output + integer, public :: idate(6) + integer, public :: icldamt, iicmr, & + idelz,idpres,idzdt, & + irwmr,isnmr,igrle + + + real, allocatable, public :: vcoord(:,:) + real, allocatable, public :: vcoord_input(:,:) + real, allocatable, public :: clwmr_input(:,:) + real, allocatable, public :: dzdt_input(:,:) + real, allocatable, public :: grle_input(:,:) + real, allocatable, public :: cldamt_input(:,:) + real, allocatable, public :: hgt_input(:) + real, allocatable, public :: icmr_input(:,:) + real, allocatable, public :: o3mr_input(:,:) + real, allocatable, public :: rwmr_input(:,:) + real, allocatable, public :: sfcp_input(:) + real, allocatable, public :: snmr_input(:,:) + real, allocatable, public :: spfh_input(:,:) + real, allocatable, public :: tmp_input(:,:) + real, allocatable, public :: ugrd_input(:,:) + real, allocatable, public :: vgrd_input(:,:) + real :: missing_value=1.e30 + + public :: read_input_data + public :: read_vcoord_info + + contains + + subroutine read_input_data + +!------------------------------------------------------------------------------------- +! Read input grid data from a netcdf file. +!------------------------------------------------------------------------------------- + + implicit none + + integer :: vlev,rvlev + type(Dataset) :: indset + type(Dimension) :: ncdim + real, allocatable :: work2d(:,:),work3d(:,:,:) + integer iret, k, kk + real, allocatable :: ak(:), bk(:) + + ! hard code these values that are the same for GFS + idvc=2 + idsl=1 + idvm=1 + ntrac = 8 + ncldt = 5 + + print* + print*,"OPEN INPUT FILE: ",trim(input_file) + indset = open_dataset(input_file) + + print*,"GET INPUT FILE HEADER" + ncdim = get_dim(indset, 'grid_xt'); i_input = ncdim%len + ncdim = get_dim(indset, 'grid_yt'); j_input = ncdim%len + ncdim = get_dim(indset, 'pfull'); lev = ncdim%len + idate = get_idate_from_time_units(indset) + + print*,'DIMENSIONS OF DATA ARE: ', i_input, j_input, lev + print*,'DATE OF DATA IS: ', idate + + ij_input = i_input * j_input + + call read_attribute(indset, 'ak', ak) + call read_attribute(indset, 'bk', bk) + + nvcoord_input = 2 + allocate(vcoord_input(lev+1,nvcoord_input)) + do k = 1, lev+1 + kk = lev+2-k + vcoord_input(k,1) = ak(kk) + vcoord_input(k,2) = bk(kk) + print*,'VCOORD OF INPUT DATA ',k,vcoord_input(k,:) + enddo + + deallocate(ak, bk) + + print* + print*,"READ SURFACE PRESSURE" + call read_vardata(indset, 'pressfc', work2d) + + allocate(sfcp_input(ij_input)) + sfcp_input = reshape(work2d,(/ij_input/)) + print*,'MAX/MIN SURFACE PRESSURE: ',maxval(sfcp_input), minval(sfcp_input) + + print* + print*,"READ SURFACE HEIGHT" + call read_vardata(indset, 'hgtsfc', work2d) + + allocate(hgt_input(ij_input)) + hgt_input = reshape(work2d,(/ij_input/)) + print*,'MAX/MIN SURFACE HEIGHT: ',maxval(hgt_input), minval(hgt_input) + + print* + print*,"READ U WIND" + allocate(ugrd_input(ij_input,lev)) + call read_vardata(indset, 'ugrd', work3d) + do vlev = 1, lev + rvlev = lev+1-vlev + ugrd_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN U WIND AT LEVEL ',vlev, "IS: ", maxval(ugrd_input(:,vlev)), minval(ugrd_input(:,vlev)) + enddo + + print* + print*,"READ V WIND" + allocate(vgrd_input(ij_input,lev)) + call read_vardata(indset, 'vgrd', work3d) + do vlev = 1, lev + rvlev = lev+1-vlev + vgrd_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN V WIND AT LEVEL ', vlev, "IS: ", maxval(vgrd_input(:,vlev)), minval(vgrd_input(:,vlev)) + enddo + + print* + print*,"READ TEMPERATURE" + allocate(tmp_input(ij_input,lev)) + call read_vardata(indset, 'tmp', work3d) + do vlev = 1, lev + rvlev = lev+1-vlev + tmp_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN TEMPERATURE AT LEVEL ', vlev, 'IS: ', maxval(tmp_input(:,vlev)), minval(tmp_input(:,vlev)) + enddo + + print* + print*,"READ SPECIFIC HUMIDITY" + allocate(spfh_input(ij_input,lev)) + call read_vardata(indset, 'spfh', work3d) + do vlev = 1, lev + rvlev = lev+1-vlev + spfh_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN SPECIFIC HUMIDITY AT LEVEL ', vlev, 'IS: ', maxval(spfh_input(:,vlev)), minval(spfh_input(:,vlev)) + enddo + + print* + print*,"READ CLOUD LIQUID WATER" + allocate(clwmr_input(ij_input,lev)) + call read_vardata(indset, 'clwmr', work3d) + do vlev = 1, lev + rvlev = lev+1-vlev + clwmr_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN CLOUD LIQUID WATER AT LEVEL ', vlev, 'IS: ', maxval(clwmr_input(:,vlev)), minval(clwmr_input(:,vlev)) + enddo + + print* + print*,"READ OZONE" + allocate(o3mr_input(ij_input,lev)) + call read_vardata(indset, 'o3mr', work3d) + do vlev = 1, lev + rvlev = lev+1-vlev + o3mr_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN OZONE AT LEVEL ', vlev, 'IS: ', maxval(o3mr_input(:,vlev)), minval(o3mr_input(:,vlev)) + enddo + + print* + print*,"READ DZDT" + allocate(dzdt_input(ij_input,lev)) + call read_vardata(indset, 'dzdt', work3d, errcode=iret) + if (iret == 0) then + do vlev = 1, lev + rvlev = lev+1-vlev + dzdt_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN DZDT AT LEVEL ', vlev, 'IS: ', maxval(dzdt_input(:,vlev)), minval(dzdt_input(:,vlev)) + enddo + idzdt = 1 + else + dzdt_input = missing_value + print*,'DZDT NOT IN INPUT FILE' + idzdt = 0 + endif + + + print* + print*,"READ RWMR" + allocate(rwmr_input(ij_input,lev)) + call read_vardata(indset, 'rwmr', work3d, errcode=iret) + if (iret == 0) then + do vlev = 1, lev + rvlev = lev+1-vlev + rwmr_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN RWMR AT LEVEL ', vlev, 'IS: ', maxval(rwmr_input(:,vlev)), minval(rwmr_input(:,vlev)) + enddo + irwmr = 1 + else + rwmr_input = missing_value + print*,'RWMR NOT IN INPUT FILE' + irwmr = 0 + endif + + print* + print*,"READ ICMR" + allocate(icmr_input(ij_input,lev)) + call read_vardata(indset, 'icmr', work3d, errcode=iret) + if (iret == 0) then + do vlev = 1, lev + rvlev = lev+1-vlev + icmr_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN ICMR AT LEVEL ', vlev, 'IS: ', maxval(icmr_input(:,vlev)), minval(icmr_input(:,vlev)) + enddo + iicmr = 1 + else + icmr_input = missing_value + print*,'ICMR NOT IN INPUT FILE' + iicmr = 0 + endif + + print* + print*,"READ SNMR" + allocate(snmr_input(ij_input,lev)) + call read_vardata(indset, 'snmr', work3d, errcode=iret) + if (iret == 0) then + do vlev = 1, lev + rvlev = lev+1-vlev + snmr_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN SNMR AT LEVEL ', vlev, 'IS: ', maxval(snmr_input(:,vlev)), minval(snmr_input(:,vlev)) + enddo + isnmr = 1 + else + snmr_input = missing_value + print*,'SNMR NOT IN INPUT FILE' + isnmr = 0 + endif + + print* + print*,"READ GRLE" + allocate(grle_input(ij_input,lev)) + call read_vardata(indset, 'grle', work3d, errcode=iret) + if (iret == 0) then + do vlev = 1, lev + rvlev = lev+1-vlev + grle_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN GRLE AT LEVEL ', vlev, 'IS: ', maxval(grle_input(:,vlev)), minval(grle_input(:,vlev)) + enddo + igrle = 1 + else + grle_input = missing_value + print*,'GRLE NOT IN INPUT FILE' + igrle = 0 + endif + + print* + print*,"READ CLD_AMT" + allocate(cldamt_input(ij_input,lev)) + if (cld_amt) then + call read_vardata(indset, 'cld_amt', work3d, errcode=iret) + if (iret == 0) then + do vlev = 1, lev + rvlev = lev+1-vlev + cldamt_input(:,vlev) = reshape(work3d(:,:,rvlev),(/ij_input/)) + print*,'MAX/MIN CLD_AMT AT LEVEL ', vlev, 'IS: ', maxval(cldamt_input(:,vlev)), minval(cldamt_input(:,vlev)) + enddo + icldamt = 1 + else + cldamt_input = missing_value + print*,'CLDAMT NOT IN INPUT FILE' + icldamt = 0 + endif + else + cldamt_input = missing_value + print*,'CLDAMT NOT READ - CLD_AMT NAMELIST OPTION NOT SET TO TRUE' + icldamt = 0 + end if + + call read_vardata(indset, 'dpres', work3d, errcode=iret) + if (iret == 0) then + idpres = 1 + else + idpres = 0 + endif + call read_vardata(indset, 'delz', work3d, errcode=iret) + if (iret == 0) then + idelz = 1 + else + idelz = 0 + endif + + print*,"CLOSE FILE" + call close_dataset(indset) + deallocate(work2d,work3d) + +!--------------------------------------------------------------------------------------- +! Set the grib 1 grid description array need by the NCEP IPOLATES library. +!--------------------------------------------------------------------------------------- + + call calc_kgds(i_input, j_input, kgds_input) + + return + + end subroutine read_input_data + + subroutine read_vcoord_info + +!--------------------------------------------------------------------------------- +! Read vertical coordinate information. +!--------------------------------------------------------------------------------- + + implicit none + + integer :: istat, n, k, k2 + + real, allocatable :: ak(:), bk(:) + + type(Dataset) :: refdset + + print* + print*,"READ OUTPUT VERT COORDINATE INFO FROM REFERENCE FILE: ",trim(ref_file) + + refdset = open_dataset(ref_file) + call read_attribute(refdset, 'ak', ak) + call read_attribute(refdset, 'bk', bk) + call close_dataset(refdset) + + lev_output = size(bk) - 1 + + nvcoord=2 + allocate(vcoord(lev_output+1, nvcoord)) + + do k = 1, (lev_output+1) + k2 = lev_output+2 - k + vcoord(k,1) = ak(k2) + vcoord(k,2) = bk(k2) + print*,'VCOORD OF OUTPUT GRID ',k,vcoord(k,:) + enddo + + deallocate (ak, bk) + + end subroutine read_vcoord_info + + end module input_data diff --git a/sorc/enkf_chgres_recenter_nc.fd/interp.f90 b/sorc/enkf_chgres_recenter_nc.fd/interp.f90 new file mode 100644 index 0000000000..291e8ef0d3 --- /dev/null +++ b/sorc/enkf_chgres_recenter_nc.fd/interp.f90 @@ -0,0 +1,582 @@ + module interp + + implicit none + + private + + real, allocatable :: sfcp_b4_adj_output(:) + real, allocatable :: clwmr_b4_adj_output(:,:) + real, allocatable :: dzdt_b4_adj_output(:,:) + real, allocatable :: grle_b4_adj_output(:,:) + real, allocatable :: cldamt_b4_adj_output(:,:) + real, allocatable :: icmr_b4_adj_output(:,:) + real, allocatable :: o3mr_b4_adj_output(:,:) + real, allocatable :: rwmr_b4_adj_output(:,:) + real, allocatable :: snmr_b4_adj_output(:,:) + real, allocatable :: spfh_b4_adj_output(:,:) + real, allocatable :: tmp_b4_adj_output(:,:) + real, allocatable :: ugrd_b4_adj_output(:,:) + real, allocatable :: vgrd_b4_adj_output(:,:) + + public :: adjust_for_terrain + public :: gaus_to_gaus + + contains + + subroutine adjust_for_terrain + +!--------------------------------------------------------------------------------- +! Adjust fields based on differences between the interpolated and external +! terrain. +!--------------------------------------------------------------------------------- + + use input_data + use output_data + use utils + use setup + + implicit none + + integer :: k + + real, allocatable :: pres_b4_adj_output(:,:) + real, allocatable :: pres_output(:,:) + real, allocatable :: q_b4_adj_output(:,:,:), q_output(:,:,:) + +!--------------------------------------------------------------------------------- +! First, compute the mid-layer pressure using the interpolated surface pressure. +!--------------------------------------------------------------------------------- + + allocate(pres_b4_adj_output(ij_output,lev)) + pres_b4_adj_output = 0.0 + + print*,'before newpr1, sfcp b4 adj: ', sfcp_b4_adj_output(ij_output/2) + + print* + print*,"COMPUTE MID-LAYER PRESSURE FROM INTERPOLATED SURFACE PRESSURE." + call newpr1(ij_output, lev, idvc, idsl, nvcoord_input, vcoord_input, & + sfcp_b4_adj_output, pres_b4_adj_output) + + print*,'after newpr1, pres b4 adj: ', pres_b4_adj_output(ij_output/2,:) + +!--------------------------------------------------------------------------------- +! Adjust surface pressure based on differences between interpolated and +! grid terrain. +!--------------------------------------------------------------------------------- + + allocate(sfcp_output(ij_output)) + sfcp_output = 0.0 + + print*,"ADJUST SURFACE PRESSURE BASED ON TERRAIN DIFFERENCES" + call newps(hgt_output, sfcp_b4_adj_output, ij_output, & + lev, pres_b4_adj_output, tmp_b4_adj_output, & + spfh_b4_adj_output, hgt_external_output, sfcp_output) + + print*,'after newps ',sfcp_b4_adj_output(ij_output/2),sfcp_output(ij_output/2) + + deallocate(sfcp_b4_adj_output) + +!--------------------------------------------------------------------------------- +! Recompute mid-layer pressure based on the adjusted surface pressure. +!--------------------------------------------------------------------------------- + + allocate(pres_output(ij_output, lev_output)) + pres_output = 0.0 + + allocate(dpres_output(ij_output, lev_output)) + dpres_output = 0.0 + + print*,'before newpr1 ',sfcp_output(ij_output/2) + print*,'before newpr1 ',idvc,idsl,nvcoord,vcoord + + print*,"RECOMPUTE MID-LAYER PRESSURE." + call newpr1(ij_output, lev_output, idvc, idsl, nvcoord, vcoord, & + sfcp_output, pres_output, dpres_output) + + do k = 1, lev_output + print*,'after newpr1 ',pres_output(ij_output/2,k), dpres_output(ij_output/2,k) + enddo + +!--------------------------------------------------------------------------------- +! Vertically interpolate from the pre-adjusted to the adjusted mid-layer +! pressures. +!--------------------------------------------------------------------------------- + + allocate(q_b4_adj_output(ij_output,lev,ntrac)) + q_b4_adj_output(:,:,1) = spfh_b4_adj_output(:,:) + q_b4_adj_output(:,:,2) = o3mr_b4_adj_output(:,:) + q_b4_adj_output(:,:,3) = clwmr_b4_adj_output(:,:) + q_b4_adj_output(:,:,4) = rwmr_b4_adj_output(:,:) + q_b4_adj_output(:,:,5) = icmr_b4_adj_output(:,:) + q_b4_adj_output(:,:,6) = snmr_b4_adj_output(:,:) + q_b4_adj_output(:,:,7) = grle_b4_adj_output(:,:) + q_b4_adj_output(:,:,8) = cldamt_b4_adj_output(:,:) + + allocate(q_output(ij_output,lev_output,ntrac)) + q_output = 0.0 + + allocate(dzdt_output(ij_output,lev_output)) + dzdt_output = 0.0 + + allocate(ugrd_output(ij_output,lev_output)) + ugrd_output=0.0 + + allocate(vgrd_output(ij_output,lev_output)) + vgrd_output=0.0 + + allocate(tmp_output(ij_output,lev_output)) + tmp_output=0.0 + + print*,"VERTICALLY INTERPOLATE TO NEW PRESSURE LEVELS" + call vintg(ij_output, lev, lev_output, ntrac, pres_b4_adj_output, & + ugrd_b4_adj_output, vgrd_b4_adj_output, tmp_b4_adj_output, q_b4_adj_output, & + dzdt_b4_adj_output, pres_output, ugrd_output, vgrd_output, tmp_output, & + q_output, dzdt_output) + + deallocate (dzdt_b4_adj_output, q_b4_adj_output) +!deallocate (pres_b4_adj_output, pres_output) + + allocate(spfh_output(ij_output,lev_output)) + spfh_output = q_output(:,:,1) + allocate(o3mr_output(ij_output,lev_output)) + o3mr_output = q_output(:,:,2) + allocate(clwmr_output(ij_output,lev_output)) + clwmr_output = q_output(:,:,3) + allocate(rwmr_output(ij_output,lev_output)) + rwmr_output = q_output(:,:,4) + allocate(icmr_output(ij_output,lev_output)) + icmr_output = q_output(:,:,5) + allocate(snmr_output(ij_output,lev_output)) + snmr_output = q_output(:,:,6) + allocate(grle_output(ij_output,lev_output)) + grle_output = q_output(:,:,7) + allocate(cldamt_output(ij_output,lev_output)) + cldamt_output = q_output(:,:,8) + + deallocate(q_output) + + do k = 1, lev + print*,'after vintg tmp b4 ',tmp_b4_adj_output(ij_output/2,k), pres_b4_adj_output(ij_output/2,k) + enddo + do k = 1, lev_output + print*,'after vintg tmp ',tmp_output(ij_output/2,k),pres_output(ij_output/2,k) + enddo + + deallocate(tmp_b4_adj_output) + + deallocate(ugrd_b4_adj_output) + + deallocate(vgrd_b4_adj_output) + + deallocate(spfh_b4_adj_output) + + deallocate(o3mr_b4_adj_output) + + deallocate(clwmr_b4_adj_output) + + deallocate(rwmr_b4_adj_output) + + deallocate(icmr_b4_adj_output) + + deallocate(snmr_b4_adj_output) + + deallocate(grle_b4_adj_output) + + deallocate(cldamt_b4_adj_output) + + allocate(delz_output(ij_output, lev_output)) + delz_output = 0.0 + + call compute_delz(ij_output, lev_output, vcoord(:,1), vcoord(:,2), sfcp_output, hgt_output, & + tmp_output, spfh_output, delz_output) + + do k = 1, lev_output + print*,'after compute_delz ',delz_output(ij_output/2,k) + enddo + + deallocate(hgt_output) + + end subroutine adjust_for_terrain + + subroutine gaus_to_gaus + +!---------------------------------------------------------------------------------- +! Interpolate data from the input to output grid using IPOLATES library. +!---------------------------------------------------------------------------------- + + use output_data + use input_data + use setup + + implicit none + + integer :: ip, ipopt(20), i + integer :: num_fields + integer :: iret, numpts + integer, allocatable :: ibi(:), ibo(:) + + logical*1, allocatable :: bitmap_input(:,:), bitmap_output(:,:) + logical :: same_grid + + real, allocatable :: data_input(:,:) + real, allocatable :: data_output(:,:), crot(:), srot(:) + + same_grid=.true. + do i = 1, 11 + if (kgds_input(i) /= kgds_output(i)) then + same_grid=.false. + exit + endif + enddo + + if (same_grid) then + + print* + print*,'INPUT AND OUTPUT GRIDS ARE THE SAME.' + print*,'NO HORIZ INTERPOLATION REQUIRED.' + + allocate(hgt_output(ij_output)) + hgt_output = hgt_input + deallocate(hgt_input) + + allocate(sfcp_b4_adj_output(ij_output)) + sfcp_b4_adj_output = sfcp_input + deallocate(sfcp_input) + + allocate(tmp_b4_adj_output(ij_output,lev)) + tmp_b4_adj_output = tmp_input + deallocate(tmp_input) + + allocate(clwmr_b4_adj_output(ij_output,lev)) + clwmr_b4_adj_output = clwmr_input + deallocate(clwmr_input) + + allocate(spfh_b4_adj_output(ij_output,lev)) + spfh_b4_adj_output = spfh_input + deallocate(spfh_input) + + allocate(o3mr_b4_adj_output(ij_output,lev)) + o3mr_b4_adj_output = o3mr_input + deallocate(o3mr_input) + + allocate(dzdt_b4_adj_output(ij_output,lev)) + dzdt_b4_adj_output = dzdt_input + deallocate(dzdt_input) + + allocate(rwmr_b4_adj_output(ij_output,lev)) + rwmr_b4_adj_output = rwmr_input + deallocate(rwmr_input) + + allocate(snmr_b4_adj_output(ij_output,lev)) + snmr_b4_adj_output = snmr_input + deallocate(snmr_input) + + allocate(icmr_b4_adj_output(ij_output,lev)) + icmr_b4_adj_output = icmr_input + deallocate(icmr_input) + + allocate(grle_b4_adj_output(ij_output,lev)) + grle_b4_adj_output = grle_input + deallocate(grle_input) + + allocate(cldamt_b4_adj_output(ij_output,lev)) + cldamt_b4_adj_output = cldamt_input + deallocate(cldamt_input) + + allocate(ugrd_b4_adj_output(ij_output,lev)) + ugrd_b4_adj_output = ugrd_input + deallocate(ugrd_input) + + allocate(vgrd_b4_adj_output(ij_output,lev)) + vgrd_b4_adj_output = vgrd_input + deallocate(vgrd_input) + + else + + print* + print*,'INTERPOLATE DATA TO OUTPUT GRID' + + + ip = 0 ! bilinear + ipopt = 0 + +!---------------------------------------------------------------------------------- +! Do 2-D fields first +!---------------------------------------------------------------------------------- + + num_fields = 1 + + allocate(ibi(num_fields)) + ibi = 0 ! no bitmap + allocate(ibo(num_fields)) + ibo = 0 ! no bitmap + + allocate(bitmap_input(ij_input,num_fields)) + bitmap_input = .true. + allocate(bitmap_output(ij_output,num_fields)) + bitmap_output = .true. + + allocate(rlat_output(ij_output)) + rlat_output = 0.0 + allocate(rlon_output(ij_output)) + rlon_output = 0.0 + +!---------------- +! Surface height +!---------------- + + allocate(data_input(ij_input,num_fields)) + data_input(:,num_fields) = hgt_input(:) + deallocate(hgt_input) + + allocate(data_output(ij_output,num_fields)) + data_output = 0 + + print*,"INTERPOLATE SURFACE HEIGHT" + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, data_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + data_output, iret) + if (iret /= 0) goto 89 + + allocate(hgt_output(ij_output)) + hgt_output = data_output(:,num_fields) + +!------------------ +! surface pressure +!------------------ + + data_input(:,num_fields) = sfcp_input(:) + deallocate(sfcp_input) + + print*,"INTERPOLATE SURFACE PRESSURE" + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, data_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + data_output, iret) + if (iret /= 0) goto 89 + + allocate(sfcp_b4_adj_output(ij_output)) + sfcp_b4_adj_output = data_output(:,num_fields) + + deallocate(ibi, ibo, bitmap_input, bitmap_output, data_input, data_output) + +!---------------------------------------------------------------------------------- +! 3d scalars +!---------------------------------------------------------------------------------- + + num_fields = lev + + allocate(ibi(num_fields)) + ibi = 0 ! no bitmap + allocate(ibo(num_fields)) + ibo = 0 ! no bitmap + + allocate(bitmap_input(ij_input,num_fields)) + bitmap_input = .true. + allocate(bitmap_output(ij_output,num_fields)) + bitmap_output = .true. + +!------------- +! Temperature +!------------- + + allocate(tmp_b4_adj_output(ij_output,num_fields)) + tmp_b4_adj_output = 0 + + print*,'INTERPOLATE TEMPERATURE' + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, tmp_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + tmp_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate(tmp_input) + +!-------------------- +! Cloud liquid water +!-------------------- + + allocate(clwmr_b4_adj_output(ij_output,num_fields)) + clwmr_b4_adj_output = 0 + + print*,'INTERPOLATE CLOUD LIQUID WATER' + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, clwmr_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + clwmr_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate(clwmr_input) + +!-------------------- +! Specific humidity +!-------------------- + + allocate(spfh_b4_adj_output(ij_output,num_fields)) + spfh_b4_adj_output = 0 + + print*,'INTERPOLATE SPECIFIC HUMIDITY' + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, spfh_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + spfh_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate(spfh_input) + +!----------- +! Ozone +!----------- + + allocate(o3mr_b4_adj_output(ij_output,num_fields)) + o3mr_b4_adj_output = 0 + + print*,'INTERPOLATE OZONE' + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, o3mr_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + o3mr_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate(o3mr_input) + +!----------- +! DZDT +!----------- + + allocate(dzdt_b4_adj_output(ij_output,num_fields)) + dzdt_b4_adj_output = 0 + + print*,'INTERPOLATE DZDT' + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, dzdt_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + dzdt_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate(dzdt_input) + +!---------------------------------------------------------------------------------- +! Interpolate additional 3-d scalars for GFDL microphysics. +!---------------------------------------------------------------------------------- + + +!------------- +! Rain water +!------------- + + allocate(rwmr_b4_adj_output(ij_output,num_fields)) + rwmr_b4_adj_output = 0 + + print*,'INTERPOLATE RWMR' + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, rwmr_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + rwmr_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate(rwmr_input) + +!------------- +! Snow water +!------------- + + allocate(snmr_b4_adj_output(ij_output,num_fields)) + snmr_b4_adj_output = 0 + + print*,'INTERPOLATE SNMR' + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, snmr_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + snmr_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate(snmr_input) + +!------------- +! Ice water +!------------- + + allocate(icmr_b4_adj_output(ij_output,num_fields)) + icmr_b4_adj_output = 0 + + print*,'INTERPOLATE ICMR' + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, icmr_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + icmr_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate(icmr_input) + +!------------- +! Graupel +!------------- + + allocate(grle_b4_adj_output(ij_output,num_fields)) + grle_b4_adj_output = 0 + + print*,'INTERPOLATE GRLE' + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, grle_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + grle_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate(grle_input) + + +!--------------------------- +! Cloud amount +!--------------------------- + + allocate(cldamt_b4_adj_output(ij_output,num_fields)) + cldamt_b4_adj_output = 0 + + print*,'INTERPOLATE CLD_AMT' + call ipolates(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, cldamt_input, & + numpts, rlat_output, rlon_output, ibo, bitmap_output, & + cldamt_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate(cldamt_input) + + + +!---------------------------------------------------------------------------------- +! 3d u/v winds +!---------------------------------------------------------------------------------- + + allocate(crot(ij_output), srot(ij_output)) + crot = 0. + srot = 0. + + allocate(ugrd_b4_adj_output(ij_output,num_fields)) + ugrd_b4_adj_output = 0 + allocate(vgrd_b4_adj_output(ij_output,num_fields)) + vgrd_b4_adj_output = 0 + + print*,'INTERPOLATE WINDS' + call ipolatev(ip, ipopt, kgds_input, kgds_output, ij_input, ij_output,& + num_fields, ibi, bitmap_input, ugrd_input, vgrd_input, & + numpts, rlat_output, rlon_output, crot, srot, ibo, bitmap_output, & + ugrd_b4_adj_output, vgrd_b4_adj_output, iret) + if (iret /= 0) goto 89 + + deallocate (ugrd_input, vgrd_input) + deallocate (crot, srot) + deallocate (ibi, ibo, bitmap_input, bitmap_output) + + endif + + return + + 89 continue + print*,"FATAL ERROR IN IPOLATES. IRET IS: ", iret + call errexit(23) + + end subroutine gaus_to_gaus + + end module interp diff --git a/sorc/enkf_chgres_recenter_nc.fd/makefile b/sorc/enkf_chgres_recenter_nc.fd/makefile new file mode 100644 index 0000000000..c9f4c7be37 --- /dev/null +++ b/sorc/enkf_chgres_recenter_nc.fd/makefile @@ -0,0 +1,28 @@ +SHELL= /bin/sh + +LIBS= $(FV3GFS_NCIO_LIB) $(BACIO_LIB4) $(W3NCO_LIB4) $(IP_LIB4) $(SP_LIB4) -L$(NETCDF)/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz + +CMD= enkf_chgres_recenter_nc.x + +OBJS = driver.o input_data.o interp.o output_data.o utils.o setup.o + +$(CMD): $(OBJS) + $(FC) $(FFLAGS) -o $(CMD) $(OBJS) $(LIBS) + +driver.o: setup.o output_data.o interp.o input_data.o driver.f90 + $(FC) $(FFLAGS) -I$(FV3GFS_NCIO_INC) -I$(NETCDF)/include -c driver.f90 +interp.o: setup.o utils.o output_data.o input_data.o interp.f90 + $(FC) $(FFLAGS) -I$(FV3GFS_NCIO_INC) -I$(NETCDF)/include -c interp.f90 +input_data.o: setup.o utils.o input_data.f90 + $(FC) $(FFLAGS) -I$(FV3GFS_NCIO_INC) -I$(NETCDF)/include -c input_data.f90 +output_data.o: setup.o utils.o input_data.o output_data.f90 + $(FC) $(FFLAGS) -I$(FV3GFS_NCIO_INC) -I$(NETCDF)/include -c output_data.f90 +setup.o: setup.f90 + $(FC) $(FFLAGS) -I$(FV3GFS_NCIO_INC) -I$(NETCDF)/include -c setup.f90 +utils.o: utils.f90 + $(FC) $(FFLAGS) -I$(FV3GFS_NCIO_INC) -I$(NETCDF)/include -c utils.f90 +clean: + rm -f *.o *.mod ${CMD} +install: + -cp $(CMD) ../../exec/. + diff --git a/sorc/enkf_chgres_recenter_nc.fd/output_data.f90 b/sorc/enkf_chgres_recenter_nc.fd/output_data.f90 new file mode 100644 index 0000000000..17766d23c0 --- /dev/null +++ b/sorc/enkf_chgres_recenter_nc.fd/output_data.f90 @@ -0,0 +1,288 @@ + module output_data + + use module_fv3gfs_ncio + + implicit none + + private + + integer, public :: kgds_output(200) + +! data on the output grid. + real, allocatable, public :: hgt_output(:) ! interpolated from input grid + real, allocatable, public :: hgt_external_output(:) + real, allocatable, public :: sfcp_output(:) + real, allocatable, public :: tmp_output(:,:) + real, allocatable, public :: clwmr_output(:,:) + real, allocatable, public :: delz_output(:,:) + real, allocatable, public :: dpres_output(:,:) + real, allocatable, public :: dzdt_output(:,:) + real, allocatable, public :: o3mr_output(:,:) + real, allocatable, public :: spfh_output(:,:) + real, allocatable, public :: ugrd_output(:,:) + real, allocatable, public :: vgrd_output(:,:) + real, allocatable, public :: rwmr_output(:,:) + real, allocatable, public :: icmr_output(:,:) + real, allocatable, public :: snmr_output(:,:) + real, allocatable, public :: grle_output(:,:) + real, allocatable, public :: cldamt_output(:,:) + real, allocatable, public :: rlat_output(:) + real, allocatable, public :: rlon_output(:) + + public :: set_output_grid + public :: write_output_data + type(Dataset) :: indset, outdset + + + contains + + subroutine set_output_grid + +!------------------------------------------------------------------- +! Set grid specs on the output grid. +!------------------------------------------------------------------- + + use setup + use input_data + use utils + + implicit none + + + type(Dataset) :: indset + real, allocatable :: work2d(:,:) + + + + print* + print*,"OUTPUT GRID I/J DIMENSIONS: ", i_output, j_output + +!------------------------------------------------------------------- +! Set the grib 1 grid description section, which is needed +! by the IPOLATES library. +!------------------------------------------------------------------- + + kgds_output = 0 + + call calc_kgds(i_output, j_output, kgds_output) + +!------------------------------------------------------------------- +! Read the terrain on the output grid. To ensure exact match, +! read it from an existing netcdf file. +!------------------------------------------------------------------- + + print* + print*,"OPEN OUTPUT GRID TERRAIN FILE: ", trim(terrain_file) + indset = open_dataset(terrain_file) + + allocate(hgt_external_output(ij_output)) + + print* + print*,"READ SURFACE HEIGHT" + call read_vardata(indset, 'hgtsfc', work2d) + + hgt_external_output = reshape(work2d,(/ij_output/)) + + call close_dataset(indset) + + end subroutine set_output_grid + + subroutine write_output_data + +!------------------------------------------------------------------- +! Write output grid data to a netcdf file. +!------------------------------------------------------------------- + + use input_data + use setup + + implicit none + + integer :: n,nrev + real, allocatable, dimension (:,:) :: out2d + real, allocatable, dimension (:,:,:) :: out3d + +!------------------------------------------------------------------- +! Set up some header info. +!------------------------------------------------------------------- + + call header_set + +!------------------------------------------------------------------- +! Open and write file. +!------------------------------------------------------------------- +! TODO: note there can be compression applied to this output file if necessary +! see how it's done in the GSI EnKF for example + + + print* + print*,'OPEN OUTPUT FILE: ',trim(output_file) + allocate(out2d(i_output,j_output)) + allocate(out3d(i_output,j_output,lev_output)) + + print*,"WRITE SURFACE HEIGHT" + out2d = reshape(hgt_external_output, (/i_output,j_output/)) + call write_vardata(outdset, 'hgtsfc', out2d) + deallocate(hgt_external_output) + + print*,"WRITE SURFACE PRESSURE" + out2d = reshape(sfcp_output, (/i_output,j_output/)) + call write_vardata(outdset, 'pressfc', out2d) + deallocate(sfcp_output) + + print*,"WRITE TEMPERATURE" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(tmp_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'tmp', out3d) + deallocate(tmp_output) + + print*,"WRITE CLOUD LIQUID WATER" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(clwmr_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'clwmr', out3d) + deallocate(clwmr_output) + + print*,"WRITE SPECIFIC HUMIDITY" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(spfh_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'spfh', out3d) + deallocate(spfh_output) + + print*,"WRITE OZONE" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(o3mr_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'o3mr', out3d) + deallocate(o3mr_output) + + print*,"WRITE U-WINDS" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(ugrd_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'ugrd', out3d) + deallocate(ugrd_output) + + print*,"WRITE V-WINDS" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(vgrd_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'vgrd', out3d) + deallocate(vgrd_output) + + if (idzdt == 1) then + print*,"WRITE DZDT" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(dzdt_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'dzdt', out3d) + deallocate(dzdt_output) + endif + + if (idpres == 1) then + print*,"WRITE DPRES" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(dpres_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'dpres', out3d) + endif + deallocate(dpres_output) + + if (idelz == 1) then + print*,"WRITE DELZ" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(delz_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'delz', out3d) + endif + deallocate(delz_output) + + if (irwmr == 1) then + print*,"WRITE RAIN WATER" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(rwmr_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'rwmr', out3d) + deallocate(rwmr_output) + endif + + if (isnmr == 1) then + print*,"WRITE SNOW WATER" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(snmr_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'snmr', out3d) + deallocate(snmr_output) + endif + + if (iicmr == 1) then + print*,"WRITE ICE WATER" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(icmr_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'icmr', out3d) + deallocate(icmr_output) + endif + + if (igrle == 1) then + print*,"WRITE GRAUPEL" + do n=1,lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(grle_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'grle', out3d) + deallocate(grle_output) + endif + + if (icldamt == 1) then + print*,"WRITE CLD_AMT" + do n = 1, lev_output + nrev = lev_output+1-n + out3d(:,:,n) = reshape(cldamt_output(:,nrev), (/i_output,j_output/)) + end do + call write_vardata(outdset, 'cld_amt', out3d) + deallocate(cldamt_output) + endif + + + deallocate(out2d,out3d) + + return + + end subroutine write_output_data + + subroutine header_set + +!------------------------------------------------------------------- +! copy dimensions and metadata to the output file from the +! input terrain (output res) file +!------------------------------------------------------------------- + + use input_data + use setup + + implicit none + + print* + print*,"SET HEADER INFO FOR OUTPUT FILE." + + indset = open_dataset(ref_file) + outdset = create_dataset(output_file, indset, nocompress=.true.) + + end subroutine header_set + + end module output_data diff --git a/sorc/enkf_chgres_recenter_nc.fd/setup.f90 b/sorc/enkf_chgres_recenter_nc.fd/setup.f90 new file mode 100644 index 0000000000..ee9956ae03 --- /dev/null +++ b/sorc/enkf_chgres_recenter_nc.fd/setup.f90 @@ -0,0 +1,55 @@ + module setup + + implicit none + + private + + character(len=300), public :: input_file + character(len=300), public :: output_file + character(len=300), public :: terrain_file + character(len=300), public :: ref_file + + integer, public :: i_output + integer, public :: j_output + integer , public :: ij_output + logical, public :: cld_amt + + public :: program_setup + + contains + + subroutine program_setup + + implicit none + + integer :: istat + character(len=500) :: filenamelist + + namelist /chgres_setup/ i_output, j_output, input_file, output_file, & + terrain_file, cld_amt, ref_file + + cld_amt = .false. ! default option + + print* + call getarg(1,filenamelist) + print*,"OPEN SETUP NAMELIST ",trim(filenamelist) + open(43, file=filenamelist, iostat=istat) + if (istat /= 0) then + print*,"FATAL ERROR OPENING NAMELIST FILE. ISTAT IS: ",istat + stop + endif + + print*,"READ SETUP NAMELIST." + read(43, nml=chgres_setup, iostat=istat) + if (istat /= 0) then + print*,"FATAL ERROR READING NAMELIST FILE. ISTAT IS: ",istat + stop + endif + + ij_output = i_output * j_output + + close(43) + + end subroutine program_setup + + end module setup diff --git a/sorc/enkf_chgres_recenter_nc.fd/utils.f90 b/sorc/enkf_chgres_recenter_nc.fd/utils.f90 new file mode 100644 index 0000000000..786c3644b5 --- /dev/null +++ b/sorc/enkf_chgres_recenter_nc.fd/utils.f90 @@ -0,0 +1,776 @@ + module utils + + private + + public :: calc_kgds + public :: newps + public :: newpr1 + public :: vintg + public :: compute_delz + + contains + + subroutine compute_delz(ijm, levp, ak_in, bk_in, ps, zs, t, sphum, delz) + + implicit none + integer, intent(in):: levp, ijm + real, intent(in), dimension(levp+1):: ak_in, bk_in + real, intent(in), dimension(ijm):: ps, zs + real, intent(in), dimension(ijm,levp):: t + real, intent(in), dimension(ijm,levp):: sphum + real, intent(out), dimension(ijm,levp):: delz +! Local: + real, dimension(ijm,levp+1):: zh + real, dimension(ijm,levp+1):: pe0, pn0 + real, dimension(levp+1) :: ak, bk + integer i,k + real, parameter :: GRAV = 9.80665 + real, parameter :: RDGAS = 287.05 + real, parameter :: RVGAS = 461.50 + real :: zvir + real:: grd + + print*,"COMPUTE LAYER THICKNESS." + + grd = grav/rdgas + zvir = rvgas/rdgas - 1. + ak = ak_in + bk = bk_in + ak(levp+1) = max(1.e-9, ak(levp+1)) + + do i=1, ijm + pe0(i,levp+1) = ak(levp+1) + pn0(i,levp+1) = log(pe0(i,levp+1)) + enddo + + do k=levp,1, -1 + do i=1,ijm + pe0(i,k) = ak(k) + bk(k)*ps(i) + pn0(i,k) = log(pe0(i,k)) + enddo + enddo + + do i = 1, ijm + zh(i,1) = zs(i) + enddo + + do k = 2, levp+1 + do i = 1, ijm + zh(i,k) = zh(i,k-1)+t(i,k-1)*(1.+zvir*sphum(i,k-1))* & + (pn0(i,k-1)-pn0(i,k))/grd + enddo + enddo + + do k = 1, levp + do i = 1, ijm + delz(i,k) = zh(i,k) - zh(i,k+1) + enddo + enddo + + end subroutine compute_delz + + subroutine calc_kgds(idim, jdim, kgds) + + implicit none + + integer, intent(in) :: idim, jdim + + integer, intent(out) :: kgds(200) + + kgds = 0 + kgds(1) = 4 ! OCT 6 - TYPE OF GRID (GAUSSIAN) + kgds(2) = idim ! OCT 7-8 - # PTS ON LATITUDE CIRCLE + kgds(3) = jdim ! OCT 9-10 - # PTS ON LONGITUDE CIRCLE + kgds(4) = 90000 ! OCT 11-13 - LAT OF ORIGIN + kgds(5) = 0 ! OCT 14-16 - LON OF ORIGIN + kgds(6) = 128 ! OCT 17 - RESOLUTION FLAG + kgds(7) = -90000 ! OCT 18-20 - LAT OF EXTREME POINT + kgds(8) = nint(-360000./idim) ! OCT 21-23 - LON OF EXTREME POINT + kgds(9) = nint((360.0 / float(idim))*1000.0) + ! OCT 24-25 - LONGITUDE DIRECTION INCR. + kgds(10) = jdim/2 ! OCT 26-27 - NUMBER OF CIRCLES POLE TO EQUATOR + kgds(12) = 255 ! OCT 29 - RESERVED + kgds(20) = 255 ! OCT 5 - NOT USED, SET TO 255 + + end subroutine calc_kgds + + SUBROUTINE NEWPS(ZS,PS,IM,KM,P,T,Q,ZSNEW,PSNEW) +!$$$ SUBPROGRAM DOCUMENTATION BLOCK +! +! SUBPROGRAM: NEWPS COMPUTE NEW SURFACE PRESSURE +! PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-10-31 +! +! ABSTRACT: COMPUTES A NEW SURFACE PRESSURE GIVEN A NEW OROGRAPHY. +! THE NEW PRESSURE IS COMPUTED ASSUMING A HYDROSTATIC BALANCE +! AND A CONSTANT TEMPERATURE LAPSE RATE. BELOW GROUND, THE +! LAPSE RATE IS ASSUMED TO BE -6.5 K/KM. +! +! PROGRAM HISTORY LOG: +! 91-10-31 MARK IREDELL +! +! USAGE: CALL NEWPS(ZS,PS,IM,KM,P,T,Q,ZSNEW,PSNEW) +! INPUT ARGUMENT LIST: +! IM INTEGER NUMBER OF POINTS TO COMPUTE +! ZS REAL (IM) OLD OROGRAPHY (M) +! PS REAL (IM) OLD SURFACE PRESSURE (PA) +! KM INTEGER NUMBER OF LEVELS +! P REAL (IM,KM) PRESSURES (PA) +! T REAL (IM,KM) TEMPERATURES (K) +! Q REAL (IM,KM) SPECIFIC HUMIDITIES (KG/KG) +! ZSNEW REAL (IM) NEW OROGRAPHY (M) +! OUTPUT ARGUMENT LIST: +! PSNEW REAL (IM) NEW SURFACE PRESSURE (PA) +! +! ATTRIBUTES: +! LANGUAGE: FORTRAN +! +!C$$$ + REAL ZS(IM),PS(IM),P(IM,KM),T(IM,KM),Q(IM,KM) + REAL ZSNEW(IM),PSNEW(IM) + PARAMETER(BETA=-6.5E-3,EPSILON=1.E-9) + PARAMETER(G=9.80665,RD=287.05,RV=461.50) + PARAMETER(GOR=G/RD,FV=RV/RD-1.) + REAL ZU(IM) + FTV(AT,AQ)=AT*(1+FV*AQ) + FGAM(APU,ATVU,APD,ATVD)=-GOR*LOG(ATVD/ATVU)/LOG(APD/APU) + FZ0(AP,ATV,AZD,APD)=AZD+ATV/GOR*LOG(APD/AP) + FZ1(AP,ATV,AZD,APD,AGAM)=AZD-ATV/AGAM*((APD/AP)**(-AGAM/GOR)-1) + FP0(AZ,AZU,APU,ATVU)=APU*EXP(-GOR/ATVU*(AZ-AZU)) + FP1(AZ,AZU,APU,ATVU,AGAM)=APU*(1+AGAM/ATVU*(AZ-AZU))**(-GOR/AGAM) +! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +! COMPUTE SURFACE PRESSURE BELOW THE ORIGINAL GROUND + LS=0 + K=1 + GAMMA=BETA + DO I=1,IM + PU=P(I,K) + TVU=FTV(T(I,K),Q(I,K)) + ZU(I)=FZ1(PU,TVU,ZS(I),PS(I),GAMMA) + IF(ZSNEW(I).LE.ZU(I)) THEN + PU=P(I,K) + TVU=FTV(T(I,K),Q(I,K)) + IF(ABS(GAMMA).GT.EPSILON) THEN + PSNEW(I)=FP1(ZSNEW(I),ZU(I),PU,TVU,GAMMA) + ELSE + PSNEW(I)=FP0(ZSNEW(I),ZU(I),PU,TVU) + ENDIF + ELSE + PSNEW(I)=0 + LS=LS+1 + ENDIF +! endif + ENDDO +! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +! COMPUTE SURFACE PRESSURE ABOVE THE ORIGINAL GROUND + DO K=2,KM + IF(LS.GT.0) THEN + DO I=1,IM + IF(PSNEW(I).EQ.0) THEN + PU=P(I,K) + TVU=FTV(T(I,K),Q(I,K)) + PD=P(I,K-1) + TVD=FTV(T(I,K-1),Q(I,K-1)) + GAMMA=FGAM(PU,TVU,PD,TVD) + IF(ABS(GAMMA).GT.EPSILON) THEN + ZU(I)=FZ1(PU,TVU,ZU(I),PD,GAMMA) + ELSE + ZU(I)=FZ0(PU,TVU,ZU(I),PD) + ENDIF + IF(ZSNEW(I).LE.ZU(I)) THEN + IF(ABS(GAMMA).GT.EPSILON) THEN + PSNEW(I)=FP1(ZSNEW(I),ZU(I),PU,TVU,GAMMA) + ELSE + PSNEW(I)=FP0(ZSNEW(I),ZU(I),PU,TVU) + ENDIF + LS=LS-1 + ENDIF + ENDIF + ENDDO + ENDIF + ENDDO +! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +! COMPUTE SURFACE PRESSURE OVER THE TOP + IF(LS.GT.0) THEN + K=KM + GAMMA=0 + DO I=1,IM + IF(PSNEW(I).EQ.0) THEN + PU=P(I,K) + TVU=FTV(T(I,K),Q(I,K)) + PSNEW(I)=FP0(ZSNEW(I),ZU(I),PU,TVU) + ENDIF + ENDDO + ENDIF + END SUBROUTINE NEWPS + + SUBROUTINE NEWPR1(IM,KM,IDVC,IDSL,NVCOORD,VCOORD, & + PS,PM,DP) +!$$$ SUBPROGRAM DOCUMENTATION BLOCK +! +! SUBPROGRAM: NEWPR1 COMPUTE MODEL PRESSURES +! PRGMMR: JUANG ORG: W/NMC23 DATE: 2005-04-11 +! PRGMMR: Fanglin Yang ORG: W/NMC23 DATE: 2006-11-28 +! PRGMMR: S. Moorthi ORG: NCEP/EMC DATE: 2006-12-12 +! PRGMMR: S. Moorthi ORG: NCEP/EMC DATE: 2007-01-02 +! +! ABSTRACT: COMPUTE MODEL PRESSURES. +! +! PROGRAM HISTORY LOG: +! 2005-04-11 HANN_MING HENRY JUANG hybrid sigma, sigma-p, and sigma- +! +! USAGE: CALL NEWPR1(IM,IX,KM,KMP,IDVC,IDSL,NVCOORD,VCOORD,PP,TP,QP,P +! INPUT ARGUMENT LIST: +! IM INTEGER NUMBER OF POINTS TO COMPUTE +! KM INTEGER NUMBER OF LEVELS +! IDVC INTEGER VERTICAL COORDINATE ID +! (1 FOR SIGMA AND 2 FOR HYBRID) +! IDSL INTEGER TYPE OF SIGMA STRUCTURE +! (1 FOR PHILLIPS OR 2 FOR MEAN) +! NVCOORD INTEGER NUMBER OF VERTICAL COORDINATES +! VCOORD REAL (KM+1,NVCOORD) VERTICAL COORDINATE VALUES +! FOR IDVC=1, NVCOORD=1: SIGMA INTERFACE +! FOR IDVC=2, NVCOORD=2: HYBRID INTERFACE A AND B +! FOR IDVC=3, NVCOORD=3: JUANG GENERAL HYBRID INTERFACE +! AK REAL (KM+1) HYBRID INTERFACE A +! BK REAL (KM+1) HYBRID INTERFACE B +! PS REAL (IX) SURFACE PRESSURE (PA) +! OUTPUT ARGUMENT LIST: +! PM REAL (IX,KM) MID-LAYER PRESSURE (PA) +! DP REAL (IX,KM) LAYER DELTA PRESSURE (PA) +! +! ATTRIBUTES: +! LANGUAGE: FORTRAN +! +!C$$$ + IMPLICIT NONE + + INTEGER, INTENT(IN) :: IM, KM, NVCOORD, IDVC, IDSL + + REAL, INTENT(IN) :: VCOORD(KM+1,NVCOORD) + REAL, INTENT(IN) :: PS(IM) + + REAL, INTENT(OUT) :: PM(IM,KM) + REAL, OPTIONAL, INTENT(OUT) :: DP(IM,KM) + + REAL, PARAMETER :: RD=287.05, RV=461.50, CP=1004.6, & + ROCP=RD/CP, ROCP1=ROCP+1, ROCPR=1/ROCP, & + FV=RV/RD-1. + + INTEGER :: I, K + + REAL :: AK(KM+1), BK(KM+1), PI(IM,KM+1) + + IF(IDVC.EQ.2) THEN + DO K=1,KM+1 + AK(K) = VCOORD(K,1) + BK(K) = VCOORD(K,2) + PI(:,K) = AK(K) + BK(K)*PS(:) + ENDDO + ELSE + print*,'routine only works for idvc 2' + stop + ENDIF + + IF(IDSL.EQ.2) THEN + DO K=1,KM + PM(1:IM,K) = (PI(1:IM,K)+PI(1:IM,K+1))/2 + ENDDO + ELSE + DO K=1,KM + PM(1:IM,K) = ((PI(1:IM,K)**ROCP1-PI(1:IM,K+1)**ROCP1)/ & + (ROCP1*(PI(1:IM,K)-PI(1:IM,K+1))))**ROCPR + ENDDO + ENDIF + + IF(PRESENT(DP))THEN + DO K=1,KM + DO I=1,IM + DP(I,K) = PI(I,K) - PI(I,K+1) + ENDDO + ENDDO + ENDIF + + END SUBROUTINE NEWPR1 + + SUBROUTINE TERP3(IM,IXZ1,IXQ1,IXZ2,IXQ2,NM,NXQ1,NXQ2, & + KM1,KXZ1,KXQ1,Z1,Q1,KM2,KXZ2,KXQ2,Z2,Q2,J2) +!$$$ SUBPROGRAM DOCUMENTATION BLOCK +! +! SUBPROGRAM: TERP3 CUBICALLY INTERPOLATE IN ONE DIMENSION +! PRGMMR: IREDELL ORG: W/NMC23 DATE: 98-05-01 +! +! ABSTRACT: INTERPOLATE FIELD(S) IN ONE DIMENSION ALONG THE COLUMN(S). +! THE INTERPOLATION IS CUBIC LAGRANGIAN WITH A MONOTONIC CONSTRAINT +! IN THE CENTER OF THE DOMAIN. IN THE OUTER INTERVALS IT IS LINEAR. +! OUTSIDE THE DOMAIN, FIELDS ARE HELD CONSTANT. +! +! PROGRAM HISTORY LOG: +! 98-05-01 MARK IREDELL +! 1999-01-04 IREDELL USE ESSL SEARCH +! +! USAGE: CALL TERP3(IM,IXZ1,IXQ1,IXZ2,IXQ2,NM,NXQ1,NXQ2, +! & KM1,KXZ1,KXQ1,Z1,Q1,KM2,KXZ2,KXQ2,Z2,Q2,J2) +! INPUT ARGUMENT LIST: +! IM INTEGER NUMBER OF COLUMNS +! IXZ1 INTEGER COLUMN SKIP NUMBER FOR Z1 +! IXQ1 INTEGER COLUMN SKIP NUMBER FOR Q1 +! IXZ2 INTEGER COLUMN SKIP NUMBER FOR Z2 +! IXQ2 INTEGER COLUMN SKIP NUMBER FOR Q2 +! NM INTEGER NUMBER OF FIELDS PER COLUMN +! NXQ1 INTEGER FIELD SKIP NUMBER FOR Q1 +! NXQ2 INTEGER FIELD SKIP NUMBER FOR Q2 +! KM1 INTEGER NUMBER OF INPUT POINTS +! KXZ1 INTEGER POINT SKIP NUMBER FOR Z1 +! KXQ1 INTEGER POINT SKIP NUMBER FOR Q1 +! Z1 REAL (1+(IM-1)*IXZ1+(KM1-1)*KXZ1) +! INPUT COORDINATE VALUES IN WHICH TO INTERPOLATE +! (Z1 MUST BE STRICTLY MONOTONIC IN EITHER DIRECTION) +! Q1 REAL (1+(IM-1)*IXQ1+(KM1-1)*KXQ1+(NM-1)*NXQ1) +! INPUT FIELDS TO INTERPOLATE +! KM2 INTEGER NUMBER OF OUTPUT POINTS +! KXZ2 INTEGER POINT SKIP NUMBER FOR Z2 +! KXQ2 INTEGER POINT SKIP NUMBER FOR Q2 +! Z2 REAL (1+(IM-1)*IXZ2+(KM2-1)*KXZ2) +! OUTPUT COORDINATE VALUES TO WHICH TO INTERPOLATE +! (Z2 NEED NOT BE MONOTONIC) +! +! OUTPUT ARGUMENT LIST: +! Q2 REAL (1+(IM-1)*IXQ2+(KM2-1)*KXQ2+(NM-1)*NXQ2) +! OUTPUT INTERPOLATED FIELDS +! J2 REAL (1+(IM-1)*IXQ2+(KM2-1)*KXQ2+(NM-1)*NXQ2) +! OUTPUT INTERPOLATED FIELDS CHANGE WRT Z2 +! +! SUBPROGRAMS CALLED: +! RSEARCH SEARCH FOR A SURROUNDING REAL INTERVAL +! +! ATTRIBUTES: +! LANGUAGE: FORTRAN +! +!C$$$ + IMPLICIT NONE + INTEGER IM,IXZ1,IXQ1,IXZ2,IXQ2,NM,NXQ1,NXQ2 + INTEGER KM1,KXZ1,KXQ1,KM2,KXZ2,KXQ2 + INTEGER I,K1,K2,N + REAL Z1(1+(IM-1)*IXZ1+(KM1-1)*KXZ1) + REAL Q1(1+(IM-1)*IXQ1+(KM1-1)*KXQ1+(NM-1)*NXQ1) + REAL Z2(1+(IM-1)*IXZ2+(KM2-1)*KXZ2) + REAL Q2(1+(IM-1)*IXQ2+(KM2-1)*KXQ2+(NM-1)*NXQ2) + REAL J2(1+(IM-1)*IXQ2+(KM2-1)*KXQ2+(NM-1)*NXQ2) + REAL FFA(IM),FFB(IM),FFC(IM),FFD(IM) + REAL GGA(IM),GGB(IM),GGC(IM),GGD(IM) + INTEGER K1S(IM,KM2) + REAL Z1A,Z1B,Z1C,Z1D,Q1A,Q1B,Q1C,Q1D,Z2S,Q2S,J2S +! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +! FIND THE SURROUNDING INPUT INTERVAL FOR EACH OUTPUT POINT. + CALL RSEARCH(IM,KM1,IXZ1,KXZ1,Z1,KM2,IXZ2,KXZ2,Z2,1,IM,K1S) +! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +! GENERALLY INTERPOLATE CUBICALLY WITH MONOTONIC CONSTRAINT +! FROM TWO NEAREST INPUT POINTS ON EITHER SIDE OF THE OUTPUT POINT, +! BUT WITHIN THE TWO EDGE INTERVALS INTERPOLATE LINEARLY. +! KEEP THE OUTPUT FIELDS CONSTANT OUTSIDE THE INPUT DOMAIN. + +!!$OMP PARALLEL DO DEFAULT(PRIVATE) SHARED(IM,IXZ1,IXQ1,IXZ2), & +!!$OMP& SHARED(IXQ2,NM,NXQ1,NXQ2,KM1,KXZ1,KXQ1,Z1,Q1,KM2,KXZ2), & +!!$OMP& SHARED(KXQ2,Z2,Q2,J2,K1S) + + DO K2=1,KM2 + DO I=1,IM + K1=K1S(I,K2) + IF(K1.EQ.1.OR.K1.EQ.KM1-1) THEN + Z2S=Z2(1+(I-1)*IXZ2+(K2-1)*KXZ2) + Z1A=Z1(1+(I-1)*IXZ1+(K1-1)*KXZ1) + Z1B=Z1(1+(I-1)*IXZ1+(K1+0)*KXZ1) + FFA(I)=(Z2S-Z1B)/(Z1A-Z1B) + FFB(I)=(Z2S-Z1A)/(Z1B-Z1A) + GGA(I)=1/(Z1A-Z1B) + GGB(I)=1/(Z1B-Z1A) + ELSEIF(K1.GT.1.AND.K1.LT.KM1-1) THEN + Z2S=Z2(1+(I-1)*IXZ2+(K2-1)*KXZ2) + Z1A=Z1(1+(I-1)*IXZ1+(K1-2)*KXZ1) + Z1B=Z1(1+(I-1)*IXZ1+(K1-1)*KXZ1) + Z1C=Z1(1+(I-1)*IXZ1+(K1+0)*KXZ1) + Z1D=Z1(1+(I-1)*IXZ1+(K1+1)*KXZ1) + FFA(I)=(Z2S-Z1B)/(Z1A-Z1B)* & + (Z2S-Z1C)/(Z1A-Z1C)* & + (Z2S-Z1D)/(Z1A-Z1D) + FFB(I)=(Z2S-Z1A)/(Z1B-Z1A)* & + (Z2S-Z1C)/(Z1B-Z1C)* & + (Z2S-Z1D)/(Z1B-Z1D) + FFC(I)=(Z2S-Z1A)/(Z1C-Z1A)* & + (Z2S-Z1B)/(Z1C-Z1B)* & + (Z2S-Z1D)/(Z1C-Z1D) + FFD(I)=(Z2S-Z1A)/(Z1D-Z1A)* & + (Z2S-Z1B)/(Z1D-Z1B)* & + (Z2S-Z1C)/(Z1D-Z1C) + GGA(I)= 1/(Z1A-Z1B)* & + (Z2S-Z1C)/(Z1A-Z1C)* & + (Z2S-Z1D)/(Z1A-Z1D)+ & + (Z2S-Z1B)/(Z1A-Z1B)* & + 1/(Z1A-Z1C)* & + (Z2S-Z1D)/(Z1A-Z1D)+ & + (Z2S-Z1B)/(Z1A-Z1B)* & + (Z2S-Z1C)/(Z1A-Z1C)* & + 1/(Z1A-Z1D) + GGB(I)= 1/(Z1B-Z1A)* & + (Z2S-Z1C)/(Z1B-Z1C)* & + (Z2S-Z1D)/(Z1B-Z1D)+ & + (Z2S-Z1A)/(Z1B-Z1A)* & + 1/(Z1B-Z1C)* & + (Z2S-Z1D)/(Z1B-Z1D)+ & + (Z2S-Z1A)/(Z1B-Z1A)* & + (Z2S-Z1C)/(Z1B-Z1C)* & + 1/(Z1B-Z1D) + GGC(I)= 1/(Z1C-Z1A)* & + (Z2S-Z1B)/(Z1C-Z1B)* & + (Z2S-Z1D)/(Z1C-Z1D)+ & + (Z2S-Z1A)/(Z1C-Z1A)* & + 1/(Z1C-Z1B)* & + (Z2S-Z1D)/(Z1C-Z1D)+ & + (Z2S-Z1A)/(Z1C-Z1A)* & + (Z2S-Z1B)/(Z1C-Z1B)* & + 1/(Z1C-Z1D) + GGD(I)= 1/(Z1D-Z1A)* & + (Z2S-Z1B)/(Z1D-Z1B)* & + (Z2S-Z1C)/(Z1D-Z1C)+ & + (Z2S-Z1A)/(Z1D-Z1A)* & + 1/(Z1D-Z1B)* & + (Z2S-Z1C)/(Z1D-Z1C)+ & + (Z2S-Z1A)/(Z1D-Z1A)* & + (Z2S-Z1B)/(Z1D-Z1B)* & + 1/(Z1D-Z1C) + ENDIF + ENDDO +! INTERPOLATE. + DO N=1,NM + DO I=1,IM + K1=K1S(I,K2) + IF(K1.EQ.0) THEN + Q2S=Q1(1+(I-1)*IXQ1+(N-1)*NXQ1) + J2S=0 + ELSEIF(K1.EQ.KM1) THEN + Q2S=Q1(1+(I-1)*IXQ1+(KM1-1)*KXQ1+(N-1)*NXQ1) + J2S=0 + ELSEIF(K1.EQ.1.OR.K1.EQ.KM1-1) THEN + Q1A=Q1(1+(I-1)*IXQ1+(K1-1)*KXQ1+(N-1)*NXQ1) + Q1B=Q1(1+(I-1)*IXQ1+(K1+0)*KXQ1+(N-1)*NXQ1) + Q2S=FFA(I)*Q1A+FFB(I)*Q1B + J2S=GGA(I)*Q1A+GGB(I)*Q1B + ELSE + Q1A=Q1(1+(I-1)*IXQ1+(K1-2)*KXQ1+(N-1)*NXQ1) + Q1B=Q1(1+(I-1)*IXQ1+(K1-1)*KXQ1+(N-1)*NXQ1) + Q1C=Q1(1+(I-1)*IXQ1+(K1+0)*KXQ1+(N-1)*NXQ1) + Q1D=Q1(1+(I-1)*IXQ1+(K1+1)*KXQ1+(N-1)*NXQ1) + Q2S=FFA(I)*Q1A+FFB(I)*Q1B+FFC(I)*Q1C+FFD(I)*Q1D + J2S=GGA(I)*Q1A+GGB(I)*Q1B+GGC(I)*Q1C+GGD(I)*Q1D + IF(Q2S.LT.MIN(Q1B,Q1C)) THEN + Q2S=MIN(Q1B,Q1C) + J2S=0 + ELSEIF(Q2S.GT.MAX(Q1B,Q1C)) THEN + Q2S=MAX(Q1B,Q1C) + J2S=0 + ENDIF + ENDIF + Q2(1+(I-1)*IXQ2+(K2-1)*KXQ2+(N-1)*NXQ2)=Q2S + J2(1+(I-1)*IXQ2+(K2-1)*KXQ2+(N-1)*NXQ2)=J2S + ENDDO + ENDDO + ENDDO +!!$OMP END PARALLEL DO + + END SUBROUTINE TERP3 + + SUBROUTINE RSEARCH(IM,KM1,IXZ1,KXZ1,Z1,KM2,IXZ2,KXZ2,Z2,IXL2,KXL2,& + L2) +!$$$ SUBPROGRAM DOCUMENTATION BLOCK +! +! SUBPROGRAM: RSEARCH SEARCH FOR A SURROUNDING REAL INTERVAL +! PRGMMR: IREDELL ORG: W/NMC23 DATE: 98-05-01 +! +! ABSTRACT: THIS SUBPROGRAM SEARCHES MONOTONIC SEQUENCES OF REAL NUMBERS +! FOR INTERVALS THAT SURROUND A GIVEN SEARCH SET OF REAL NUMBERS. +! THE SEQUENCES MAY BE MONOTONIC IN EITHER DIRECTION; THE REAL NUMBERS +! MAY BE SINGLE OR DOUBLE PRECISION; THE INPUT SEQUENCES AND SETS +! AND THE OUTPUT LOCATIONS MAY BE ARBITRARILY DIMENSIONED. +! +! PROGRAM HISTORY LOG: +! 1999-01-05 MARK IREDELL +! +! USAGE: CALL RSEARCH(IM,KM1,IXZ1,KXZ1,Z1,KM2,IXZ2,KXZ2,Z2,IXL2,KXL2, +! & L2) +! INPUT ARGUMENT LIST: +! IM INTEGER NUMBER OF SEQUENCES TO SEARCH +! KM1 INTEGER NUMBER OF POINTS IN EACH SEQUENCE +! IXZ1 INTEGER SEQUENCE SKIP NUMBER FOR Z1 +! KXZ1 INTEGER POINT SKIP NUMBER FOR Z1 +! Z1 REAL (1+(IM-1)*IXZ1+(KM1-1)*KXZ1) +! SEQUENCE VALUES TO SEARCH +! (Z1 MUST BE MONOTONIC IN EITHER DIRECTION) +! KM2 INTEGER NUMBER OF POINTS TO SEARCH FOR +! IN EACH RESPECTIVE SEQUENCE +! IXZ2 INTEGER SEQUENCE SKIP NUMBER FOR Z2 +! KXZ2 INTEGER POINT SKIP NUMBER FOR Z2 +! Z2 REAL (1+(IM-1)*IXZ2+(KM2-1)*KXZ2) +! SET OF VALUES TO SEARCH FOR +! (Z2 NEED NOT BE MONOTONIC) +! IXL2 INTEGER SEQUENCE SKIP NUMBER FOR L2 +! KXL2 INTEGER POINT SKIP NUMBER FOR L2 +! +! OUTPUT ARGUMENT LIST: +! L2 INTEGER (1+(IM-1)*IXL2+(KM2-1)*KXL2) +! INTERVAL LOCATIONS HAVING VALUES FROM 0 TO KM1 +! (Z2 WILL BE BETWEEN Z1(L2) AND Z1(L2+1)) +! +! SUBPROGRAMS CALLED: +! SBSRCH ESSL BINARY SEARCH +! DBSRCH ESSL BINARY SEARCH +! +! REMARKS: +! IF THE ARRAY Z1 IS DIMENSIONED (IM,KM1), THEN THE SKIP NUMBERS ARE +! IXZ1=1 AND KXZ1=IM; IF IT IS DIMENSIONED (KM1,IM), THEN THE SKIP +! NUMBERS ARE IXZ1=KM1 AND KXZ1=1; IF IT IS DIMENSIONED (IM,JM,KM1), +! THEN THE SKIP NUMBERS ARE IXZ1=1 AND KXZ1=IM*JM; ETCETERA. +! SIMILAR EXAMPLES APPLY TO THE SKIP NUMBERS FOR Z2 AND L2. +! +! RETURNED VALUES OF 0 OR KM1 INDICATE THAT THE GIVEN SEARCH VALUE +! IS OUTSIDE THE RANGE OF THE SEQUENCE. +! +! IF A SEARCH VALUE IS IDENTICAL TO ONE OF THE SEQUENCE VALUES +! THEN THE LOCATION RETURNED POINTS TO THE IDENTICAL VALUE. +! IF THE SEQUENCE IS NOT STRICTLY MONOTONIC AND A SEARCH VALUE IS +! IDENTICAL TO MORE THAN ONE OF THE SEQUENCE VALUES, THEN THE +! LOCATION RETURNED MAY POINT TO ANY OF THE IDENTICAL VALUES. +! +! TO BE EXACT, FOR EACH I FROM 1 TO IM AND FOR EACH K FROM 1 TO KM2, +! Z=Z2(1+(I-1)*IXZ2+(K-1)*KXZ2) IS THE SEARCH VALUE AND +! L=L2(1+(I-1)*IXL2+(K-1)*KXL2) IS THE LOCATION RETURNED. +! IF L=0, THEN Z IS LESS THAN THE START POINT Z1(1+(I-1)*IXZ1) +! FOR ASCENDING SEQUENCES (OR GREATER THAN FOR DESCENDING SEQUENCES). +! IF L=KM1, THEN Z IS GREATER THAN OR EQUAL TO THE END POINT +! Z1(1+(I-1)*IXZ1+(KM1-1)*KXZ1) FOR ASCENDING SEQUENCES +! (OR LESS THAN OR EQUAL TO FOR DESCENDING SEQUENCES). +! OTHERWISE Z IS BETWEEN THE VALUES Z1(1+(I-1)*IXZ1+(L-1)*KXZ1) AND +! Z1(1+(I-1)*IXZ1+(L-0)*KXZ1) AND MAY EQUAL THE FORMER. +! +! ATTRIBUTES: +! LANGUAGE: FORTRAN +! +!C$$$ +! IMPLICIT NONE +! INTEGER,INTENT(IN):: IM,KM1,IXZ1,KXZ1,KM2,IXZ2,KXZ2,IXL2,KXL2 +! REAL,INTENT(IN):: Z1(1+(IM-1)*IXZ1+(KM1-1)*KXZ1) +! REAL,INTENT(IN):: Z2(1+(IM-1)*IXZ2+(KM2-1)*KXZ2) +! INTEGER,INTENT(OUT):: L2(1+(IM-1)*IXL2+(KM2-1)*KXL2) +! INTEGER(4) INCX,N,INCY,M,INDX(KM2),RC(KM2),IOPT +! INTEGER I,K2 +! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +! FIND THE SURROUNDING INPUT INTERVAL FOR EACH OUTPUT POINT. +! DO I=1,IM +! IF(Z1(1+(I-1)*IXZ1).LE.Z1(1+(I-1)*IXZ1+(KM1-1)*KXZ1)) THEN +! INPUT COORDINATE IS MONOTONICALLY ASCENDING. +! INCX=KXZ2 +! N=KM2 +! INCY=KXZ1 +! M=KM1 +! IOPT=1 +! IF(DIGITS(1.).LT.DIGITS(1._8)) THEN +! CALL SBSRCH(Z2(1+(I-1)*IXZ2),INCX,N, +! & Z1(1+(I-1)*IXZ1),INCY,M,INDX,RC,IOPT) +! ELSE +! CALL DBSRCH(Z2(1+(I-1)*IXZ2),INCX,N, +! & Z1(1+(I-1)*IXZ1),INCY,M,INDX,RC,IOPT) +! ENDIF +! DO K2=1,KM2 +! L2(1+(I-1)*IXL2+(K2-1)*KXL2)=INDX(K2)-RC(K2) +! ENDDO +! ELSE +! INPUT COORDINATE IS MONOTONICALLY DESCENDING. +! INCX=KXZ2 +! N=KM2 +! INCY=-KXZ1 +! M=KM1 +! IOPT=0 +! IF(DIGITS(1.).LT.DIGITS(1._8)) THEN +! CALL SBSRCH(Z2(1+(I-1)*IXZ2),INCX,N, +! & Z1(1+(I-1)*IXZ1),INCY,M,INDX,RC,IOPT) +! ELSE +! CALL DBSRCH(Z2(1+(I-1)*IXZ2),INCX,N, +! & Z1(1+(I-1)*IXZ1),INCY,M,INDX,RC,IOPT) +! ENDIF +! DO K2=1,KM2 +! L2(1+(I-1)*IXL2+(K2-1)*KXL2)=KM1+1-INDX(K2) +! ENDDO +! ENDIF +! ENDDO +! + IMPLICIT NONE + INTEGER,INTENT(IN):: IM,KM1,IXZ1,KXZ1,KM2,IXZ2,KXZ2,IXL2,KXL2 + REAL,INTENT(IN):: Z1(1+(IM-1)*IXZ1+(KM1-1)*KXZ1) + REAL,INTENT(IN):: Z2(1+(IM-1)*IXZ2+(KM2-1)*KXZ2) + INTEGER,INTENT(OUT):: L2(1+(IM-1)*IXL2+(KM2-1)*KXL2) + INTEGER I,K2,L + REAL Z +!C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +!C FIND THE SURROUNDING INPUT INTERVAL FOR EACH OUTPUT POINT. + DO I=1,IM + IF(Z1(1+(I-1)*IXZ1).LE.Z1(1+(I-1)*IXZ1+(KM1-1)*KXZ1)) THEN +!C INPUT COORDINATE IS MONOTONICALLY ASCENDING. + DO K2=1,KM2 + Z=Z2(1+(I-1)*IXZ2+(K2-1)*KXZ2) + L=0 + DO + IF(Z.LT.Z1(1+(I-1)*IXZ1+L*KXZ1)) EXIT + L=L+1 + IF(L.EQ.KM1) EXIT + ENDDO + L2(1+(I-1)*IXL2+(K2-1)*KXL2)=L + ENDDO + ELSE +!C INPUT COORDINATE IS MONOTONICALLY DESCENDING. + DO K2=1,KM2 + Z=Z2(1+(I-1)*IXZ2+(K2-1)*KXZ2) + L=0 + DO + IF(Z.GT.Z1(1+(I-1)*IXZ1+L*KXZ1)) EXIT + L=L+1 + IF(L.EQ.KM1) EXIT + ENDDO + L2(1+(I-1)*IXL2+(K2-1)*KXL2)=L + ENDDO + ENDIF + ENDDO + + END SUBROUTINE RSEARCH + + SUBROUTINE VINTG(IM,KM1,KM2,NT,P1,U1,V1,T1,Q1,W1,P2, & + U2,V2,T2,Q2,W2) +!$$$ SUBPROGRAM DOCUMENTATION BLOCK +! +! SUBPROGRAM: VINTG VERTICALLY INTERPOLATE UPPER-AIR FIELDS +! PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-10-31 +! +! ABSTRACT: VERTICALLY INTERPOLATE UPPER-AIR FIELDS. +! WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS ARE INTERPOLATED. +! THE INTERPOLATION IS CUBIC LAGRANGIAN IN LOG PRESSURE +! WITH A MONOTONIC CONSTRAINT IN THE CENTER OF THE DOMAIN. +! IN THE OUTER INTERVALS IT IS LINEAR IN LOG PRESSURE. +! OUTSIDE THE DOMAIN, FIELDS ARE GENERALLY HELD CONSTANT, +! EXCEPT FOR TEMPERATURE AND HUMIDITY BELOW THE INPUT DOMAIN, +! WHERE THE TEMPERATURE LAPSE RATE IS HELD FIXED AT -6.5 K/KM AND +! THE RELATIVE HUMIDITY IS HELD CONSTANT. +! +! PROGRAM HISTORY LOG: +! 91-10-31 MARK IREDELL +! +! USAGE: CALL VINTG(IM,KM1,KM2,NT,P1,U1,V1,T1,Q1,P2, +! & U2,V2,T2,Q2) +! INPUT ARGUMENT LIST: +! IM INTEGER NUMBER OF POINTS TO COMPUTE +! KM1 INTEGER NUMBER OF INPUT LEVELS +! KM2 INTEGER NUMBER OF OUTPUT LEVELS +! NT INTEGER NUMBER OF TRACERS +! P1 REAL (IM,KM1) INPUT PRESSURES +! ORDERED FROM BOTTOM TO TOP OF ATMOSPHERE +! U1 REAL (IM,KM1) INPUT ZONAL WIND +! V1 REAL (IM,KM1) INPUT MERIDIONAL WIND +! T1 REAL (IM,KM1) INPUT TEMPERATURE (K) +! Q1 REAL (IM,KM1,NT) INPUT TRACERS (HUMIDITY FIRST) +! P2 REAL (IM,KM2) OUTPUT PRESSURES +! OUTPUT ARGUMENT LIST: +! U2 REAL (IM,KM2) OUTPUT ZONAL WIND +! V2 REAL (IM,KM2) OUTPUT MERIDIONAL WIND +! T2 REAL (IM,KM2) OUTPUT TEMPERATURE (K) +! Q2 REAL (IM,KM2,NT) OUTPUT TRACERS (HUMIDITY FIRST) +! +! SUBPROGRAMS CALLED: +! TERP3 CUBICALLY INTERPOLATE IN ONE DIMENSION +! +! ATTRIBUTES: +! LANGUAGE: FORTRAN +! +!C$$$ + IMPLICIT NONE + + INTEGER, INTENT(IN) :: IM, KM1, KM2, NT + + REAL, INTENT(IN) :: P1(IM,KM1),U1(IM,KM1),V1(IM,KM1) + REAL, INTENT(IN) :: T1(IM,KM1),Q1(IM,KM1,NT) + REAL, INTENT(IN) :: W1(IM,KM1),P2(IM,KM2) + REAL, INTENT(OUT) :: U2(IM,KM2),V2(IM,KM2) + REAL, INTENT(OUT) :: T2(IM,KM2),Q2(IM,KM2,NT) + REAL, INTENT(OUT) :: W2(IM,KM2) + + REAL, PARAMETER :: DLTDZ=-6.5E-3*287.05/9.80665 + REAL, PARAMETER :: DLPVDRT=-2.5E6/461.50 + + INTEGER :: I, K, N + + REAL :: DZ + REAL,ALLOCATABLE :: Z1(:,:),Z2(:,:) + REAL,ALLOCATABLE :: C1(:,:,:),C2(:,:,:),J2(:,:,:) + + ALLOCATE (Z1(IM+1,KM1),Z2(IM+1,KM2)) + ALLOCATE (C1(IM+1,KM1,4+NT),C2(IM+1,KM2,4+NT),J2(IM+1,KM2,4+NT)) +! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +! COMPUTE LOG PRESSURE INTERPOLATING COORDINATE +! AND COPY INPUT WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS +!$OMP PARALLEL DO PRIVATE(K,I) + DO K=1,KM1 + DO I=1,IM + Z1(I,K) = -LOG(P1(I,K)) + C1(I,K,1) = U1(I,K) + C1(I,K,2) = V1(I,K) + C1(I,K,3) = W1(I,K) + C1(I,K,4) = T1(I,K) + C1(I,K,5) = Q1(I,K,1) + ENDDO + ENDDO +!$OMP END PARALLEL DO + DO N=2,NT + DO K=1,KM1 + DO I=1,IM + C1(I,K,4+N) = Q1(I,K,N) + ENDDO + ENDDO + ENDDO +!$OMP PARALLEL DO PRIVATE(K,I) + DO K=1,KM2 + DO I=1,IM + Z2(I,K) = -LOG(P2(I,K)) + ENDDO + ENDDO +!$OMP END PARALLEL DO +! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +! PERFORM LAGRANGIAN ONE-DIMENSIONAL INTERPOLATION +! THAT IS 4TH-ORDER IN INTERIOR, 2ND-ORDER IN OUTSIDE INTERVALS +! AND 1ST-ORDER FOR EXTRAPOLATION. + CALL TERP3(IM,1,1,1,1,4+NT,(IM+1)*KM1,(IM+1)*KM2, & + KM1,IM+1,IM+1,Z1,C1,KM2,IM+1,IM+1,Z2,C2,J2) +! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +! COPY OUTPUT WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS +! EXCEPT BELOW THE INPUT DOMAIN, LET TEMPERATURE INCREASE WITH A FIXED +! LAPSE RATE AND LET THE RELATIVE HUMIDITY REMAIN CONSTANT. + DO K=1,KM2 + DO I=1,IM + U2(I,K)=C2(I,K,1) + V2(I,K)=C2(I,K,2) + W2(I,K)=C2(I,K,3) + DZ=Z2(I,K)-Z1(I,1) + IF(DZ.GE.0) THEN + T2(I,K)=C2(I,K,4) + Q2(I,K,1)=C2(I,K,5) + ELSE + T2(I,K)=T1(I,1)*EXP(DLTDZ*DZ) + Q2(I,K,1)=Q1(I,1,1)*EXP(DLPVDRT*(1/T2(I,K)-1/T1(I,1))-DZ) + ENDIF + ENDDO + ENDDO + DO N=2,NT + DO K=1,KM2 + DO I=1,IM + Q2(I,K,N)=C2(I,K,4+N) + ENDDO + ENDDO + ENDDO + DEALLOCATE (Z1,Z2,C1,C2,J2) + END SUBROUTINE VINTG + end module utils diff --git a/sorc/fbwndgfs.fd/makefile.GENERIC b/sorc/fbwndgfs.fd/makefile.GENERIC new file mode 100755 index 0000000000..f38539916f --- /dev/null +++ b/sorc/fbwndgfs.fd/makefile.GENERIC @@ -0,0 +1,81 @@ +SHELL=/bin/sh +# +# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 +# If it is invoked by the command line +# make -f makefile +# it will compile the fortran modules indicated by SRCS into the object +# modules indicated by OBJS and produce an executable named a.out. +# +# If it is invoked by the command line +# make -f makefile a.out.prof +# it will compile the fortran modules indicated by SRCS into the object +# modules indicated by OBJS and produce an executable which profiles +# named a.out.prof. +# +# To remove all the objects but leave the executables use the command line +# make -f makefile clean +# +# To remove everything but the source files use the command line +# make -f makefile clobber +# +# To remove the source files created by /usr/bin/fmgen and this makefile +# use the command line +# make -f makefile void +# +# The parameters SRCS and OBJS should not need to be changed. If, however, +# you need to add a new module add the name of the source module to the +# SRCS parameter and add the name of the resulting object file to the OBJS +# parameter. The new modules are not limited to fortran, but may be C, YACC, +# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. +# +SRCS= fbwndgfs.f + +OBJS= fbwndgfs.o + +# Tunable parameters +# +# FC Name of the fortran compiling system to use +# LDFLAGS Flags to the loader +# LIBS List of libraries +# CMD Name of the executable +# PROFLIB Library needed for profiling +# +FC = ifort +LDFLAGS = +LIBS = ${W3NCO_LIB8} ${W3EMC_LIB8} ${BACIO_LIB8} ${IP_LIB8} ${SP_LIB8} +CMD = fbwndgfs +PROFLIB = -lprof + +# To perform the default compilation, use the first line +# To compile with flowtracing turned on, use the second line +# To compile giving profile additonal information, use the third line +# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED +FFLAGS = -O3 -g -I ${IP_INC8} -assume byterecl -convert big_endian -r8 -i8 +#FFLAGS = -F +#FFLAGS = -Wf"-ez" + +# Lines from here on down should not need to be changed. They are the +# actual rules which make uses to build a.out. +# +all: $(CMD) + +$(CMD): $(OBJS) + $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) + +# Make the profiled version of the command and call it a.out.prof +# +$(CMD).prof: $(OBJS) + $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) + +install: + mkdir -p ../../exec + cp -p $(CMD) ../../exec + +clean: + -rm -f $(OBJS) + +clobber: clean + -rm -f $(CMD) $(CMD).prof + +void: clobber + -rm -f $(SRCS) makefile diff --git a/sorc/fre-nctools.fd/shared/mosaic/COPYING b/sorc/fre-nctools.fd/shared/mosaic/COPYING deleted file mode 100644 index 93a221957b..0000000000 --- a/sorc/fre-nctools.fd/shared/mosaic/COPYING +++ /dev/null @@ -1,159 +0,0 @@ -TERMS AND CONDITIONS -0. Definitions. - -“This License” refers to version 3 of the GNU General Public License. - -“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. - -“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. - -To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. - -A “covered work” means either the unmodified Program or a work based on the Program. - -To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. - -To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. - -An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. -1. Source Code. - -The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. - -A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. - -The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. - -The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. - -The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. - -The Corresponding Source for a work in source code form is that same work. -2. Basic Permissions. - -All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. - -You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. - -Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. -3. Protecting Users' Legal Rights From Anti-Circumvention Law. - -No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. - -When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. -4. Conveying Verbatim Copies. - -You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. - -You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. -5. Conveying Modified Source Versions. - -You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified it, and giving a relevant date. - b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. - c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. - d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. - -A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. -6. Conveying Non-Source Forms. - -You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: - - a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. - b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. - c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. - d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. - e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. - -A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. - -A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. - -“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. - -If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). - -The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. - -Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. -7. Additional Terms. - -“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. - -When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. - -Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or - b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or - c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or - d) Limiting the use for publicity purposes of names of licensors or authors of the material; or - e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or - f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. - -All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. - -If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. - -Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. -8. Termination. - -You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). - -However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. - -Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. - -Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. -9. Acceptance Not Required for Having Copies. - -You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. -10. Automatic Licensing of Downstream Recipients. - -Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. - -An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. - -You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. -11. Patents. - -A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. - -A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. - -Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. - -In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. - -If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. - -If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. - -A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. - -Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. -12. No Surrender of Others' Freedom. - -If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. -13. Use with the GNU Affero General Public License. - -Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. -14. Revised Versions of this License. - -The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. - -If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. - -Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. -15. Disclaimer of Warranty. - -THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -16. Limitation of Liability. - -IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -17. Interpretation of Sections 15 and 16. - -If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. diff --git a/sorc/fre-nctools.fd/shared/mosaic/constant.h b/sorc/fre-nctools.fd/shared/mosaic/constant.h deleted file mode 100644 index 619ae075b1..0000000000 --- a/sorc/fre-nctools.fd/shared/mosaic/constant.h +++ /dev/null @@ -1,2 +0,0 @@ -#define RADIUS (6371000.) -#define STRING 255 diff --git a/sorc/fre-nctools.fd/shared/mosaic/create_xgrid.c b/sorc/fre-nctools.fd/shared/mosaic/create_xgrid.c deleted file mode 100644 index 9844d89e43..0000000000 --- a/sorc/fre-nctools.fd/shared/mosaic/create_xgrid.c +++ /dev/null @@ -1,2800 +0,0 @@ -#include -#include -#include -#include "mosaic_util.h" -#include "create_xgrid.h" -#include "constant.h" - -#define AREA_RATIO_THRESH (1.e-6) -#define MASK_THRESH (0.5) -#define EPSLN8 (1.e-8) -#define EPSLN30 (1.0e-30) -#define EPSLN10 (1.0e-10) -#define R2D (180/M_PI) -#define TPI (2.0*M_PI) -double grid_box_radius(const double *x, const double *y, const double *z, int n); -double dist_between_boxes(const double *x1, const double *y1, const double *z1, int n1, - const double *x2, const double *y2, const double *z2, int n2); -int inside_edge(double x0, double y0, double x1, double y1, double x, double y); -int line_intersect_2D_3D(double *a1, double *a2, double *q1, double *q2, double *q3, - double *intersect, double *u_a, double *u_q, int *inbound); - - -/******************************************************************************* - int get_maxxgrid - return constants MAXXGRID. -*******************************************************************************/ -int get_maxxgrid(void) -{ - return MAXXGRID; -} - -int get_maxxgrid_(void) -{ - return get_maxxgrid(); -} - -/******************************************************************************* -void get_grid_area(const int *nlon, const int *nlat, const double *lon, const double *lat, const double *area) - return the grid area. -*******************************************************************************/ -#ifndef __AIX -void get_grid_area_(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area) -{ - get_grid_area(nlon, nlat, lon, lat, area); -} -#endif - -void get_grid_area(const int *nlon, const int *nlat, const double *lon, const double *lat, double *area) -{ - int nx, ny, nxp, i, j, n_in; - double x_in[20], y_in[20]; - - nx = *nlon; - ny = *nlat; - nxp = nx + 1; - - for(j=0; j 1) - get_grid_area(nlon_in, nlat_in, tmpx, tmpy, area_in); - else - get_grid_area_no_adjust(nlon_in, nlat_in, tmpx, tmpy, area_in); - - get_grid_area(nlon_out, nlat_out, lon_out, lat_out, area_out); - free(tmpx); - free(tmpy); - - for(j1=0; j1 MASK_THRESH ) { - - ll_lon = lon_in[i1]; ll_lat = lat_in[j1]; - ur_lon = lon_in[i1+1]; ur_lat = lat_in[j1+1]; - for(j2=0; j2=ur_lat) && (y_in[1]>=ur_lat) - && (y_in[2]>=ur_lat) && (y_in[3]>=ur_lat) ) continue; - - x_in[0] = lon_out[j2*nx2p+i2]; - x_in[1] = lon_out[j2*nx2p+i2+1]; - x_in[2] = lon_out[(j2+1)*nx2p+i2+1]; - x_in[3] = lon_out[(j2+1)*nx2p+i2]; - n_in = fix_lon(x_in, y_in, 4, (ll_lon+ur_lon)/2); - - if ( (n_out = clip ( x_in, y_in, n_in, ll_lon, ll_lat, ur_lon, ur_lat, x_out, y_out )) > 0 ) { - Xarea = poly_area (x_out, y_out, n_out ) * mask_in[j1*nx1+i1]; - min_area = min(area_in[j1*nx1+i1], area_out[j2*nx2+i2]); - if( Xarea/min_area > AREA_RATIO_THRESH ) { - xgrid_area[nxgrid] = Xarea; - i_in[nxgrid] = i1; - j_in[nxgrid] = j1; - i_out[nxgrid] = i2; - j_out[nxgrid] = j2; - ++nxgrid; - if(nxgrid > MAXXGRID) error_handler("nxgrid is greater than MAXXGRID, increase MAXXGRID"); - } - } - } - } - - free(area_in); - free(area_out); - - return nxgrid; - -}; /* create_xgrid_1dx2d_order1 */ - - -/******************************************************************************** - void create_xgrid_1dx2d_order2 - This routine generate exchange grids between two grids for the second order - conservative interpolation. nlon_in,nlat_in,nlon_out,nlat_out are the size of the grid cell - and lon_in,lat_in are 1-D grid bounds, lon_out,lat_out are geographic grid location of grid cell bounds. -********************************************************************************/ -int create_xgrid_1dx2d_order2_(const int *nlon_in, const int *nlat_in, const int *nlon_out, const int *nlat_out, - const double *lon_in, const double *lat_in, const double *lon_out, const double *lat_out, - const double *mask_in, int *i_in, int *j_in, int *i_out, int *j_out, - double *xgrid_area, double *xgrid_clon, double *xgrid_clat) -{ - int nxgrid; - nxgrid = create_xgrid_1dx2d_order2(nlon_in, nlat_in, nlon_out, nlat_out, lon_in, lat_in, lon_out, lat_out, mask_in, i_in, - j_in, i_out, j_out, xgrid_area, xgrid_clon, xgrid_clat); - return nxgrid; - -}; -int create_xgrid_1dx2d_order2(const int *nlon_in, const int *nlat_in, const int *nlon_out, const int *nlat_out, - const double *lon_in, const double *lat_in, const double *lon_out, const double *lat_out, - const double *mask_in, int *i_in, int *j_in, int *i_out, int *j_out, - double *xgrid_area, double *xgrid_clon, double *xgrid_clat) -{ - - int nx1, ny1, nx2, ny2, nx1p, nx2p; - int i1, j1, i2, j2, nxgrid, n; - double ll_lon, ll_lat, ur_lon, ur_lat, x_in[MV], y_in[MV], x_out[MV], y_out[MV]; - double *area_in, *area_out, min_area; - double *tmpx, *tmpy; - - nx1 = *nlon_in; - ny1 = *nlat_in; - nx2 = *nlon_out; - ny2 = *nlat_out; - - nxgrid = 0; - nx1p = nx1 + 1; - nx2p = nx2 + 1; - - area_in = (double *)malloc(nx1*ny1*sizeof(double)); - area_out = (double *)malloc(nx2*ny2*sizeof(double)); - tmpx = (double *)malloc((nx1+1)*(ny1+1)*sizeof(double)); - tmpy = (double *)malloc((nx1+1)*(ny1+1)*sizeof(double)); - for(j1=0; j1<=ny1; j1++) for(i1=0; i1<=nx1; i1++) { - tmpx[j1*nx1p+i1] = lon_in[i1]; - tmpy[j1*nx1p+i1] = lat_in[j1]; - } - get_grid_area(nlon_in, nlat_in, tmpx, tmpy, area_in); - get_grid_area(nlon_out, nlat_out, lon_out, lat_out, area_out); - free(tmpx); - free(tmpy); - - for(j1=0; j1 MASK_THRESH ) { - - ll_lon = lon_in[i1]; ll_lat = lat_in[j1]; - ur_lon = lon_in[i1+1]; ur_lat = lat_in[j1+1]; - for(j2=0; j2=ur_lat) && (y_in[1]>=ur_lat) - && (y_in[2]>=ur_lat) && (y_in[3]>=ur_lat) ) continue; - - x_in[0] = lon_out[j2*nx2p+i2]; - x_in[1] = lon_out[j2*nx2p+i2+1]; - x_in[2] = lon_out[(j2+1)*nx2p+i2+1]; - x_in[3] = lon_out[(j2+1)*nx2p+i2]; - n_in = fix_lon(x_in, y_in, 4, (ll_lon+ur_lon)/2); - lon_in_avg = avgval_double(n_in, x_in); - - if ( (n_out = clip ( x_in, y_in, n_in, ll_lon, ll_lat, ur_lon, ur_lat, x_out, y_out )) > 0 ) { - xarea = poly_area (x_out, y_out, n_out ) * mask_in[j1*nx1+i1]; - min_area = min(area_in[j1*nx1+i1], area_out[j2*nx2+i2]); - if(xarea/min_area > AREA_RATIO_THRESH ) { - xgrid_area[nxgrid] = xarea; - xgrid_clon[nxgrid] = poly_ctrlon(x_out, y_out, n_out, lon_in_avg); - xgrid_clat[nxgrid] = poly_ctrlat (x_out, y_out, n_out ); - i_in[nxgrid] = i1; - j_in[nxgrid] = j1; - i_out[nxgrid] = i2; - j_out[nxgrid] = j2; - ++nxgrid; - if(nxgrid > MAXXGRID) error_handler("nxgrid is greater than MAXXGRID, increase MAXXGRID"); - } - } - } - } - free(area_in); - free(area_out); - - return nxgrid; - -}; /* create_xgrid_1dx2d_order2 */ - -/******************************************************************************* - void create_xgrid_2dx1d_order1 - This routine generate exchange grids between two grids for the first order - conservative interpolation. nlon_in,nlat_in,nlon_out,nlat_out are the size of the grid cell - and lon_out,lat_out are 1-D grid bounds, lon_in,lat_in are geographic grid location of grid cell bounds. - mask is on grid lon_in/lat_in. -*******************************************************************************/ -int create_xgrid_2dx1d_order1_(const int *nlon_in, const int *nlat_in, const int *nlon_out, const int *nlat_out, - const double *lon_in, const double *lat_in, const double *lon_out, const double *lat_out, - const double *mask_in, int *i_in, int *j_in, int *i_out, - int *j_out, double *xgrid_area) -{ - int nxgrid; - - nxgrid = create_xgrid_2dx1d_order1(nlon_in, nlat_in, nlon_out, nlat_out, lon_in, lat_in, lon_out, lat_out, mask_in, - i_in, j_in, i_out, j_out, xgrid_area); - return nxgrid; - -}; -int create_xgrid_2dx1d_order1(const int *nlon_in, const int *nlat_in, const int *nlon_out, const int *nlat_out, const double *lon_in, - const double *lat_in, const double *lon_out, const double *lat_out, - const double *mask_in, int *i_in, int *j_in, int *i_out, - int *j_out, double *xgrid_area) -{ - - int nx1, ny1, nx2, ny2, nx1p, nx2p; - int i1, j1, i2, j2, nxgrid; - double ll_lon, ll_lat, ur_lon, ur_lat, x_in[MV], y_in[MV], x_out[MV], y_out[MV]; - double *area_in, *area_out, min_area; - double *tmpx, *tmpy; - - nx1 = *nlon_in; - ny1 = *nlat_in; - nx2 = *nlon_out; - ny2 = *nlat_out; - - nxgrid = 0; - nx1p = nx1 + 1; - nx2p = nx2 + 1; - area_in = (double *)malloc(nx1*ny1*sizeof(double)); - area_out = (double *)malloc(nx2*ny2*sizeof(double)); - tmpx = (double *)malloc((nx2+1)*(ny2+1)*sizeof(double)); - tmpy = (double *)malloc((nx2+1)*(ny2+1)*sizeof(double)); - for(j2=0; j2<=ny2; j2++) for(i2=0; i2<=nx2; i2++) { - tmpx[j2*nx2p+i2] = lon_out[i2]; - tmpy[j2*nx2p+i2] = lat_out[j2]; - } - get_grid_area(nlon_in, nlat_in, lon_in, lat_in, area_in); - get_grid_area(nlon_out, nlat_out, tmpx, tmpy, area_out); - - free(tmpx); - free(tmpy); - - for(j2=0; j2 MASK_THRESH ) { - int n_in, n_out; - double Xarea; - - y_in[0] = lat_in[j1*nx1p+i1]; - y_in[1] = lat_in[j1*nx1p+i1+1]; - y_in[2] = lat_in[(j1+1)*nx1p+i1+1]; - y_in[3] = lat_in[(j1+1)*nx1p+i1]; - if ( (y_in[0]<=ll_lat) && (y_in[1]<=ll_lat) - && (y_in[2]<=ll_lat) && (y_in[3]<=ll_lat) ) continue; - if ( (y_in[0]>=ur_lat) && (y_in[1]>=ur_lat) - && (y_in[2]>=ur_lat) && (y_in[3]>=ur_lat) ) continue; - - x_in[0] = lon_in[j1*nx1p+i1]; - x_in[1] = lon_in[j1*nx1p+i1+1]; - x_in[2] = lon_in[(j1+1)*nx1p+i1+1]; - x_in[3] = lon_in[(j1+1)*nx1p+i1]; - - n_in = fix_lon(x_in, y_in, 4, (ll_lon+ur_lon)/2); - - if ( (n_out = clip ( x_in, y_in, n_in, ll_lon, ll_lat, ur_lon, ur_lat, x_out, y_out )) > 0 ) { - Xarea = poly_area ( x_out, y_out, n_out ) * mask_in[j1*nx1+i1]; - min_area = min(area_in[j1*nx1+i1], area_out[j2*nx2+i2]); - if( Xarea/min_area > AREA_RATIO_THRESH ) { - xgrid_area[nxgrid] = Xarea; - i_in[nxgrid] = i1; - j_in[nxgrid] = j1; - i_out[nxgrid] = i2; - j_out[nxgrid] = j2; - ++nxgrid; - if(nxgrid > MAXXGRID) error_handler("nxgrid is greater than MAXXGRID, increase MAXXGRID"); - } - } - } - } - - free(area_in); - free(area_out); - - return nxgrid; - -}; /* create_xgrid_2dx1d_order1 */ - - -/******************************************************************************** - void create_xgrid_2dx1d_order2 - This routine generate exchange grids between two grids for the second order - conservative interpolation. nlon_in,nlat_in,nlon_out,nlat_out are the size of the grid cell - and lon_out,lat_out are 1-D grid bounds, lon_in,lat_in are geographic grid location of grid cell bounds. - mask is on grid lon_in/lat_in. -********************************************************************************/ -int create_xgrid_2dx1d_order2_(const int *nlon_in, const int *nlat_in, const int *nlon_out, const int *nlat_out, - const double *lon_in, const double *lat_in, const double *lon_out, const double *lat_out, - const double *mask_in, int *i_in, int *j_in, int *i_out, int *j_out, - double *xgrid_area, double *xgrid_clon, double *xgrid_clat) -{ - int nxgrid; - nxgrid = create_xgrid_2dx1d_order2(nlon_in, nlat_in, nlon_out, nlat_out, lon_in, lat_in, lon_out, lat_out, mask_in, i_in, - j_in, i_out, j_out, xgrid_area, xgrid_clon, xgrid_clat); - return nxgrid; - -}; - -int create_xgrid_2dx1d_order2(const int *nlon_in, const int *nlat_in, const int *nlon_out, const int *nlat_out, - const double *lon_in, const double *lat_in, const double *lon_out, const double *lat_out, - const double *mask_in, int *i_in, int *j_in, int *i_out, int *j_out, - double *xgrid_area, double *xgrid_clon, double *xgrid_clat) -{ - - int nx1, ny1, nx2, ny2, nx1p, nx2p; - int i1, j1, i2, j2, nxgrid, n; - double ll_lon, ll_lat, ur_lon, ur_lat, x_in[MV], y_in[MV], x_out[MV], y_out[MV]; - double *tmpx, *tmpy; - double *area_in, *area_out, min_area; - double lon_in_avg; - - nx1 = *nlon_in; - ny1 = *nlat_in; - nx2 = *nlon_out; - ny2 = *nlat_out; - - nxgrid = 0; - nx1p = nx1 + 1; - nx2p = nx2 + 1; - - area_in = (double *)malloc(nx1*ny1*sizeof(double)); - area_out = (double *)malloc(nx2*ny2*sizeof(double)); - tmpx = (double *)malloc((nx2+1)*(ny2+1)*sizeof(double)); - tmpy = (double *)malloc((nx2+1)*(ny2+1)*sizeof(double)); - for(j2=0; j2<=ny2; j2++) for(i2=0; i2<=nx2; i2++) { - tmpx[j2*nx2p+i2] = lon_out[i2]; - tmpy[j2*nx2p+i2] = lat_out[j2]; - } - get_grid_area(nlon_in, nlat_in, lon_in, lat_in, area_in); - get_grid_area(nlon_out, nlat_out, tmpx, tmpy, area_out); - - free(tmpx); - free(tmpy); - - for(j2=0; j2 MASK_THRESH ) { - int n_in, n_out; - double xarea; - - y_in[0] = lat_in[j1*nx1p+i1]; - y_in[1] = lat_in[j1*nx1p+i1+1]; - y_in[2] = lat_in[(j1+1)*nx1p+i1+1]; - y_in[3] = lat_in[(j1+1)*nx1p+i1]; - if ( (y_in[0]<=ll_lat) && (y_in[1]<=ll_lat) - && (y_in[2]<=ll_lat) && (y_in[3]<=ll_lat) ) continue; - if ( (y_in[0]>=ur_lat) && (y_in[1]>=ur_lat) - && (y_in[2]>=ur_lat) && (y_in[3]>=ur_lat) ) continue; - - x_in[0] = lon_in[j1*nx1p+i1]; - x_in[1] = lon_in[j1*nx1p+i1+1]; - x_in[2] = lon_in[(j1+1)*nx1p+i1+1]; - x_in[3] = lon_in[(j1+1)*nx1p+i1]; - - n_in = fix_lon(x_in, y_in, 4, (ll_lon+ur_lon)/2); - lon_in_avg = avgval_double(n_in, x_in); - - if ( (n_out = clip ( x_in, y_in, n_in, ll_lon, ll_lat, ur_lon, ur_lat, x_out, y_out )) > 0 ) { - xarea = poly_area (x_out, y_out, n_out ) * mask_in[j1*nx1+i1]; - min_area = min(area_in[j1*nx1+i1], area_out[j2*nx2+i2]); - if(xarea/min_area > AREA_RATIO_THRESH ) { - xgrid_area[nxgrid] = xarea; - xgrid_clon[nxgrid] = poly_ctrlon(x_out, y_out, n_out, lon_in_avg); - xgrid_clat[nxgrid] = poly_ctrlat (x_out, y_out, n_out ); - i_in[nxgrid] = i1; - j_in[nxgrid] = j1; - i_out[nxgrid] = i2; - j_out[nxgrid] = j2; - ++nxgrid; - if(nxgrid > MAXXGRID) error_handler("nxgrid is greater than MAXXGRID, increase MAXXGRID"); - } - } - } - } - - free(area_in); - free(area_out); - - return nxgrid; - -}; /* create_xgrid_2dx1d_order2 */ - -/******************************************************************************* - void create_xgrid_2DX2D_order1 - This routine generate exchange grids between two grids for the first order - conservative interpolation. nlon_in,nlat_in,nlon_out,nlat_out are the size of the grid cell - and lon_in,lat_in, lon_out,lat_out are geographic grid location of grid cell bounds. - mask is on grid lon_in/lat_in. -*******************************************************************************/ -#ifndef __AIX -int create_xgrid_2dx2d_order1_(const int *nlon_in, const int *nlat_in, const int *nlon_out, const int *nlat_out, - const double *lon_in, const double *lat_in, const double *lon_out, const double *lat_out, - const double *mask_in, int *i_in, int *j_in, int *i_out, - int *j_out, double *xgrid_area) -{ - int nxgrid; - - nxgrid = create_xgrid_2dx2d_order1(nlon_in, nlat_in, nlon_out, nlat_out, lon_in, lat_in, lon_out, lat_out, mask_in, - i_in, j_in, i_out, j_out, xgrid_area); - return nxgrid; - -}; -#endif -int create_xgrid_2dx2d_order1(const int *nlon_in, const int *nlat_in, const int *nlon_out, const int *nlat_out, - const double *lon_in, const double *lat_in, const double *lon_out, const double *lat_out, - const double *mask_in, int *i_in, int *j_in, int *i_out, - int *j_out, double *xgrid_area) -{ - -#define MAX_V 8 - int nx1, nx2, ny1, ny2, nx1p, nx2p, nxgrid; - double *area_in, *area_out; - int nblocks =1; - int *istart2=NULL, *iend2=NULL; - int npts_left, nblks_left, pos, m, npts_my, ij; - double *lon_out_min_list,*lon_out_max_list,*lon_out_avg,*lat_out_min_list,*lat_out_max_list; - double *lon_out_list, *lat_out_list; - int *pnxgrid=NULL, *pstart; - int *pi_in=NULL, *pj_in=NULL, *pi_out=NULL, *pj_out=NULL; - double *pxgrid_area=NULL; - int *n2_list; - int nthreads, nxgrid_block_max; - - nx1 = *nlon_in; - ny1 = *nlat_in; - nx2 = *nlon_out; - ny2 = *nlat_out; - nx1p = nx1 + 1; - nx2p = nx2 + 1; - - area_in = (double *)malloc(nx1*ny1*sizeof(double)); - area_out = (double *)malloc(nx2*ny2*sizeof(double)); - get_grid_area(nlon_in, nlat_in, lon_in, lat_in, area_in); - get_grid_area(nlon_out, nlat_out, lon_out, lat_out, area_out); - - nthreads = 1; -#if defined(_OPENMP) -#pragma omp parallel - nthreads = omp_get_num_threads(); -#endif - - nblocks = nthreads; - - istart2 = (int *)malloc(nblocks*sizeof(int)); - iend2 = (int *)malloc(nblocks*sizeof(int)); - - pstart = (int *)malloc(nblocks*sizeof(int)); - pnxgrid = (int *)malloc(nblocks*sizeof(int)); - - nxgrid_block_max = MAXXGRID/nblocks; - - for(m=0; m MAX_V) error_handler("create_xgrid.c: n2_in is greater than MAX_V"); - lon_out_min_list[n] = minval_double(n2_in, x2_in); - lon_out_max_list[n] = maxval_double(n2_in, x2_in); - lon_out_avg[n] = avgval_double(n2_in, x2_in); - n2_list[n] = n2_in; - for(l=0; l MASK_THRESH ) { - int n0, n1, n2, n3, l,n1_in; - double lat_in_min,lat_in_max,lon_in_min,lon_in_max,lon_in_avg; - double x1_in[MV], y1_in[MV], x_out[MV], y_out[MV]; - - n0 = j1*nx1p+i1; n1 = j1*nx1p+i1+1; - n2 = (j1+1)*nx1p+i1+1; n3 = (j1+1)*nx1p+i1; - x1_in[0] = lon_in[n0]; y1_in[0] = lat_in[n0]; - x1_in[1] = lon_in[n1]; y1_in[1] = lat_in[n1]; - x1_in[2] = lon_in[n2]; y1_in[2] = lat_in[n2]; - x1_in[3] = lon_in[n3]; y1_in[3] = lat_in[n3]; - lat_in_min = minval_double(4, y1_in); - lat_in_max = maxval_double(4, y1_in); - n1_in = fix_lon(x1_in, y1_in, 4, M_PI); - lon_in_min = minval_double(n1_in, x1_in); - lon_in_max = maxval_double(n1_in, x1_in); - lon_in_avg = avgval_double(n1_in, x1_in); - for(ij=istart2[m]; ij<=iend2[m]; ij++) { - int n_in, n_out, i2, j2, n2_in; - double xarea, dx, lon_out_min, lon_out_max; - double x2_in[MAX_V], y2_in[MAX_V]; - - i2 = ij%nx2; - j2 = ij/nx2; - - if(lat_out_min_list[ij] >= lat_in_max || lat_out_max_list[ij] <= lat_in_min ) continue; - /* adjust x2_in according to lon_in_avg*/ - n2_in = n2_list[ij]; - for(l=0; l M_PI) { - lon_out_min -= TPI; - lon_out_max -= TPI; - for (l=0; l= lon_in_max || lon_out_max <= lon_in_min ) continue; - if ( (n_out = clip_2dx2d( x1_in, y1_in, n1_in, x2_in, y2_in, n2_in, x_out, y_out )) > 0) { - double min_area; - int nn; - xarea = poly_area (x_out, y_out, n_out ) * mask_in[j1*nx1+i1]; - min_area = min(area_in[j1*nx1+i1], area_out[j2*nx2+i2]); - if( xarea/min_area > AREA_RATIO_THRESH ) { - pnxgrid[m]++; - if(pnxgrid[m]>= MAXXGRID/nthreads) - error_handler("nxgrid is greater than MAXXGRID/nthreads, increase MAXXGRID, decrease nthreads, or increase number of MPI ranks"); - nn = pstart[m] + pnxgrid[m]-1; - - pxgrid_area[nn] = xarea; - pi_in[nn] = i1; - pj_in[nn] = j1; - pi_out[nn] = i2; - pj_out[nn] = j2; - } - - } - - } - } - } - - /*copy data if nblocks > 1 */ - if(nblocks == 1) { - nxgrid = pnxgrid[0]; - pi_in = NULL; - pj_in = NULL; - pi_out = NULL; - pj_out = NULL; - pxgrid_area = NULL; - } - else { - int nn, i; - nxgrid = 0; - for(m=0; m MAX_V) error_handler("create_xgrid.c: n2_in is greater than MAX_V"); - lon_out_min_list[n] = minval_double(n2_in, x2_in); - lon_out_max_list[n] = maxval_double(n2_in, x2_in); - lon_out_avg[n] = avgval_double(n2_in, x2_in); - n2_list[n] = n2_in; - for(l=0; l MASK_THRESH ) { - int n0, n1, n2, n3, l,n1_in; - double lat_in_min,lat_in_max,lon_in_min,lon_in_max,lon_in_avg; - double x1_in[MV], y1_in[MV], x_out[MV], y_out[MV]; - - n0 = j1*nx1p+i1; n1 = j1*nx1p+i1+1; - n2 = (j1+1)*nx1p+i1+1; n3 = (j1+1)*nx1p+i1; - x1_in[0] = lon_in[n0]; y1_in[0] = lat_in[n0]; - x1_in[1] = lon_in[n1]; y1_in[1] = lat_in[n1]; - x1_in[2] = lon_in[n2]; y1_in[2] = lat_in[n2]; - x1_in[3] = lon_in[n3]; y1_in[3] = lat_in[n3]; - lat_in_min = minval_double(4, y1_in); - lat_in_max = maxval_double(4, y1_in); - n1_in = fix_lon(x1_in, y1_in, 4, M_PI); - lon_in_min = minval_double(n1_in, x1_in); - lon_in_max = maxval_double(n1_in, x1_in); - lon_in_avg = avgval_double(n1_in, x1_in); - for(ij=istart2[m]; ij<=iend2[m]; ij++) { - int n_in, n_out, i2, j2, n2_in; - double xarea, dx, lon_out_min, lon_out_max; - double x2_in[MAX_V], y2_in[MAX_V]; - - i2 = ij%nx2; - j2 = ij/nx2; - - if(lat_out_min_list[ij] >= lat_in_max || lat_out_max_list[ij] <= lat_in_min ) continue; - /* adjust x2_in according to lon_in_avg*/ - n2_in = n2_list[ij]; - for(l=0; l M_PI) { - lon_out_min -= TPI; - lon_out_max -= TPI; - for (l=0; l= lon_in_max || lon_out_max <= lon_in_min ) continue; - if ( (n_out = clip_2dx2d( x1_in, y1_in, n1_in, x2_in, y2_in, n2_in, x_out, y_out )) > 0) { - double min_area; - int nn; - xarea = poly_area (x_out, y_out, n_out ) * mask_in[j1*nx1+i1]; - min_area = min(area_in[j1*nx1+i1], area_out[j2*nx2+i2]); - if( xarea/min_area > AREA_RATIO_THRESH ) { - pnxgrid[m]++; - if(pnxgrid[m]>= MAXXGRID/nthreads) - error_handler("nxgrid is greater than MAXXGRID/nthreads, increase MAXXGRID, decrease nthreads, or increase number of MPI ranks"); - nn = pstart[m] + pnxgrid[m]-1; - pxgrid_area[nn] = xarea; - pxgrid_clon[nn] = poly_ctrlon(x_out, y_out, n_out, lon_in_avg); - pxgrid_clat[nn] = poly_ctrlat (x_out, y_out, n_out ); - pi_in[nn] = i1; - pj_in[nn] = j1; - pi_out[nn] = i2; - pj_out[nn] = j2; - } - } - } - } - } - - /*copy data if nblocks > 1 */ - if(nblocks == 1) { - nxgrid = pnxgrid[0]; - pi_in = NULL; - pj_in = NULL; - pi_out = NULL; - pj_out = NULL; - pxgrid_area = NULL; - pxgrid_clon = NULL; - pxgrid_clat = NULL; - } - else { - int nn, i; - nxgrid = 0; - for(m=0; m= ll_lon); - for (i_in=0,i_out=0;i_in= ll_lon))!=inside_last) { - x_tmp[i_out] = ll_lon; - y_tmp[i_out++] = y_last + (ll_lon - x_last) * (lat_in[i_in] - y_last) / (lon_in[i_in] - x_last); - } - - /* if "to" point is right of LEFT boundary, output it */ - if (inside) { - x_tmp[i_out] = lon_in[i_in]; - y_tmp[i_out++] = lat_in[i_in]; - } - x_last = lon_in[i_in]; - y_last = lat_in[i_in]; - inside_last = inside; - } - if (!(n_out=i_out)) return(0); - - /* clip polygon with RIGHT boundary - clip V_TMP to V_OUT */ - x_last = x_tmp[n_out-1]; - y_last = y_tmp[n_out-1]; - inside_last = (x_last <= ur_lon); - for (i_in=0,i_out=0;i_in= ll_lat); - for (i_in=0,i_out=0;i_in= ll_lat))!=inside_last) { - y_tmp[i_out] = ll_lat; - x_tmp[i_out++] = x_last + (ll_lat - y_last) * (lon_out[i_in] - x_last) / (lat_out[i_in] - y_last); - } - - /* if "to" point is above BOTTOM boundary, output it */ - if (inside) { - x_tmp[i_out] = lon_out[i_in]; - y_tmp[i_out++] = lat_out[i_in]; - } - x_last = lon_out[i_in]; - y_last = lat_out[i_in]; - inside_last = inside; - } - if (!(n_out=i_out)) return(0); - - /* clip polygon with TOP boundary - clip V_TMP to V_OUT */ - x_last = x_tmp[n_out-1]; - y_last = y_tmp[n_out-1]; - inside_last = (y_last <= ur_lat); - for (i_in=0,i_out=0;i_in and - should not parallel to the line between and - may need to consider truncation error */ - dy1 = y1_1-y1_0; - dy2 = y2_1-y2_0; - dx1 = x1_1-x1_0; - dx2 = x2_1-x2_0; - ds1 = y1_0*x1_1 - y1_1*x1_0; - ds2 = y2_0*x2_1 - y2_1*x2_0; - determ = dy2*dx1 - dy1*dx2; - if(fabs(determ) < EPSLN30) { - error_handler("the line between and should not parallel to " - "the line between and "); - } - lon_out[i_out] = (dx2*ds1 - dx1*ds2)/determ; - lat_out[i_out++] = (dy2*ds1 - dy1*ds2)/determ; - - - } - if(inside) { - lon_out[i_out] = x1_1; - lat_out[i_out++] = y1_1; - } - x1_0 = x1_1; - y1_0 = y1_1; - inside_last = inside; - } - if(!(n_out=i_out)) return 0; - for(i1=0; i1 MASK_THRESH ) { - /* clockwise */ - n0 = j1*nx1p+i1; n1 = (j1+1)*nx1p+i1; - n2 = (j1+1)*nx1p+i1+1; n3 = j1*nx1p+i1+1; - x1_in[0] = x1[n0]; y1_in[0] = y1[n0]; z1_in[0] = z1[n0]; - x1_in[1] = x1[n1]; y1_in[1] = y1[n1]; z1_in[1] = z1[n1]; - x1_in[2] = x1[n2]; y1_in[2] = y1[n2]; z1_in[2] = z1[n2]; - x1_in[3] = x1[n3]; y1_in[3] = y1[n3]; z1_in[3] = z1[n3]; - - for(j2=0; j2 0) { - xarea = great_circle_area ( n_out, x_out, y_out, z_out ) * mask_in[j1*nx1+i1]; - min_area = min(area1[j1*nx1+i1], area2[j2*nx2+i2]); - if( xarea/min_area > AREA_RATIO_THRESH ) { -#ifdef debug_test_create_xgrid - printf("(i2,j2)=(%d,%d), (i1,j1)=(%d,%d), xarea=%g\n", i2, j2, i1, j1, xarea); -#endif - xgrid_area[nxgrid] = xarea; - xgrid_clon[nxgrid] = 0; /*z1l: will be developed very soon */ - xgrid_clat[nxgrid] = 0; - i_in[nxgrid] = i1; - j_in[nxgrid] = j1; - i_out[nxgrid] = i2; - j_out[nxgrid] = j2; - ++nxgrid; - if(nxgrid > MAXXGRID) error_handler("nxgrid is greater than MAXXGRID, increase MAXXGRID"); - } - } - } - } - - - free(area1); - free(area2); - - free(x1); - free(y1); - free(z1); - free(x2); - free(y2); - free(z2); - - return nxgrid; - -};/* create_xgrid_great_circle */ - -/******************************************************************************* - Revise Sutherland-Hodgeman algorithm to find the vertices of the overlapping - between any two grid boxes. It return the number of vertices for the exchange grid. - Each edge of grid box is a part of great circle. All the points are cartesian - coordinates. Here we are assuming each polygon is convex. - RANGE_CHECK_CRITERIA is used to determine if the two grid boxes are possible to be - overlap. The size should be between 0 and 0.5. The larger the range_check_criteria, - the more expensive of the computatioin. When the value is close to 0, - some small exchange grid might be lost. Suggest to use value 0.05 for C48. -*******************************************************************************/ - -int clip_2dx2d_great_circle(const double x1_in[], const double y1_in[], const double z1_in[], int n1_in, - const double x2_in[], const double y2_in[], const double z2_in [], int n2_in, - double x_out[], double y_out[], double z_out[]) -{ - struct Node *subjList=NULL; - struct Node *clipList=NULL; - struct Node *grid1List=NULL; - struct Node *grid2List=NULL; - struct Node *intersectList=NULL; - struct Node *polyList=NULL; - struct Node *curList=NULL; - struct Node *firstIntersect=NULL, *curIntersect=NULL; - struct Node *temp1=NULL, *temp2=NULL, *temp=NULL; - - int i1, i2, i1p, i2p, i2p2, npts1, npts2; - int nintersect, n_out; - int maxiter1, maxiter2, iter1, iter2; - int found1, found2, curListNum; - int has_inbound, inbound; - double pt1[MV][3], pt2[MV][3]; - double *p1_0=NULL, *p1_1=NULL; - double *p2_0=NULL, *p2_1=NULL, *p2_2=NULL; - double intersect[3]; - double u1, u2; - double min_x1, max_x1, min_y1, max_y1, min_z1, max_z1; - double min_x2, max_x2, min_y2, max_y2, min_z2, max_z2; - static int first_call=1; - - - /* first check the min and max of (x1_in, y1_in, z1_in) with (x2_in, y2_in, z2_in) */ - min_x1 = minval_double(n1_in, x1_in); - max_x2 = maxval_double(n2_in, x2_in); - if(min_x1 >= max_x2+RANGE_CHECK_CRITERIA) return 0; - max_x1 = maxval_double(n1_in, x1_in); - min_x2 = minval_double(n2_in, x2_in); - if(min_x2 >= max_x1+RANGE_CHECK_CRITERIA) return 0; - - min_y1 = minval_double(n1_in, y1_in); - max_y2 = maxval_double(n2_in, y2_in); - if(min_y1 >= max_y2+RANGE_CHECK_CRITERIA) return 0; - max_y1 = maxval_double(n1_in, y1_in); - min_y2 = minval_double(n2_in, y2_in); - if(min_y2 >= max_y1+RANGE_CHECK_CRITERIA) return 0; - - min_z1 = minval_double(n1_in, z1_in); - max_z2 = maxval_double(n2_in, z2_in); - if(min_z1 >= max_z2+RANGE_CHECK_CRITERIA) return 0; - max_z1 = maxval_double(n1_in, z1_in); - min_z2 = minval_double(n2_in, z2_in); - if(min_z2 >= max_z1+RANGE_CHECK_CRITERIA) return 0; - - rewindList(); - - grid1List = getNext(); - grid2List = getNext(); - intersectList = getNext(); - polyList = getNext(); - - /* insert points into SubjList and ClipList */ - for(i1=0; i1isInside = 1; - else - temp->isInside = 0; - temp = getNextNode(temp); - } - -#ifdef debug_test_create_xgrid - printf("\nNOTE from clip_2dx2d_great_circle: begin to set inside value of grid2List\n"); -#endif - /* check if grid2List is inside grid1List */ - temp = grid2List; - - while(temp) { - if(insidePolygon(temp, grid1List)) - temp->isInside = 1; - else - temp->isInside = 0; - temp = getNextNode(temp); - } - - /* make sure the grid box is clockwise */ - - /*make sure each polygon is convex, which is equivalent that the great_circle_area is positive */ - if( gridArea(grid1List) <= 0 ) - error_handler("create_xgrid.c(clip_2dx2d_great_circle): grid box 1 is not convex"); - if( gridArea(grid2List) <= 0 ) - error_handler("create_xgrid.c(clip_2dx2d_great_circle): grid box 2 is not convex"); - -#ifdef debug_test_create_xgrid - printNode(grid1List, "grid1List"); - printNode(grid2List, "grid2List"); -#endif - - /* get the coordinates from grid1List and grid2List. - Please not npts1 might not equal n1_in, npts2 might not equal n2_in because of pole - */ - - temp = grid1List; - for(i1=0; i1Next; - } - temp = grid2List; - for(i2=0; i2Next; - } - - firstIntersect=getNext(); - curIntersect = getNext(); - -#ifdef debug_test_create_xgrid - printf("\n\n************************ Start line_intersect_2D_3D ******************************\n"); -#endif - /* first find all the intersection points */ - nintersect = 0; - for(i1=0; i1 1) { - getFirstInbound(intersectList, firstIntersect); - if(firstIntersect->initialized) { - has_inbound = 1; - } - } - - /* when has_inbound == 0, get the grid1List and grid2List */ - if( !has_inbound && nintersect > 1) { - setInbound(intersectList, grid1List); - getFirstInbound(intersectList, firstIntersect); - if(firstIntersect->initialized) has_inbound = 1; - } - - /* if has_inbound = 1, find the overlapping */ - n_out = 0; - - if(has_inbound) { - maxiter1 = nintersect; -#ifdef debug_test_create_xgrid - printf("\nNOTE from clip_2dx2d_great_circle: number of intersect is %d\n", nintersect); - printf("\n size of grid2List is %d, size of grid1List is %d\n", length(grid2List), length(grid1List)); - printNode(intersectList, "beginning intersection list"); - printNode(grid2List, "beginning clip list"); - printNode(grid1List, "beginning subj list"); - printf("\n************************ End line_intersect_2D_3D **********************************\n\n"); -#endif - temp1 = getNode(grid1List, *firstIntersect); - if( temp1 == NULL) { - double lon[10], lat[10]; - int i; - xyz2latlon(n1_in, x1_in, y1_in, z1_in, lon, lat); - for(i=0; i< n1_in; i++) printf("lon1 = %g, lat1 = %g\n", lon[i]*R2D, lat[i]*R2D); - printf("\n"); - xyz2latlon(n2_in, x2_in, y2_in, z2_in, lon, lat); - for(i=0; i< n2_in; i++) printf("lon2 = %g, lat2 = %g\n", lon[i]*R2D, lat[i]*R2D); - printf("\n"); - - error_handler("firstIntersect is not in the grid1List"); - } - addNode(polyList, *firstIntersect); - nintersect--; -#ifdef debug_test_create_xgrid - printNode(polyList, "polyList at stage 1"); -#endif - - /* Loop over the grid1List and grid2List to find again the firstIntersect */ - curList = grid1List; - curListNum = 0; - - /* Loop through curList to find the next intersection, the loop will end - when come back to firstIntersect - */ - copyNode(curIntersect, *firstIntersect); - iter1 = 0; - found1 = 0; - - while( iter1 < maxiter1 ) { -#ifdef debug_test_create_xgrid - printf("\n----------- At iteration = %d\n\n", iter1+1 ); - printNode(curIntersect, "curIntersect at the begining of iter1"); -#endif - /* find the curIntersect in curList and get the next intersection points */ - temp1 = getNode(curList, *curIntersect); - temp2 = temp1->Next; - if( temp2 == NULL ) temp2 = curList; - - maxiter2 = length(curList); - found2 = 0; - iter2 = 0; - /* Loop until find the next intersection */ - while( iter2 < maxiter2 ) { - int temp2IsIntersect; - - temp2IsIntersect = 0; - if( isIntersect( *temp2 ) ) { /* copy the point and switch to the grid2List */ - struct Node *temp3; - - /* first check if temp2 is the firstIntersect */ - if( sameNode( *temp2, *firstIntersect) ) { - found1 = 1; - break; - } - - temp3 = temp2->Next; - if( temp3 == NULL) temp3 = curList; - if( temp3 == NULL) error_handler("creat_xgrid.c: temp3 can not be NULL"); - found2 = 1; - /* if next node is inside or an intersection, - need to keep on curList - */ - temp2IsIntersect = 1; - if( isIntersect(*temp3) || (temp3->isInside == 1) ) found2 = 0; - } - if(found2) { - copyNode(curIntersect, *temp2); - break; - } - else { - addNode(polyList, *temp2); -#ifdef debug_test_create_xgrid - printNode(polyList, "polyList at stage 2"); -#endif - if(temp2IsIntersect) { - nintersect--; - } - } - temp2 = temp2->Next; - if( temp2 == NULL ) temp2 = curList; - iter2 ++; - } - if(found1) break; - - if( !found2 ) error_handler(" not found the next intersection "); - - /* if find the first intersection, the poly found */ - if( sameNode( *curIntersect, *firstIntersect) ) { - found1 = 1; - break; - } - - /* add curIntersect to polyList and remove it from intersectList and curList */ - addNode(polyList, *curIntersect); -#ifdef debug_test_create_xgrid - printNode(polyList, "polyList at stage 3"); -#endif - nintersect--; - - - /* switch curList */ - if( curListNum == 0) { - curList = grid2List; - curListNum = 1; - } - else { - curList = grid1List; - curListNum = 0; - } - iter1++; - } - if(!found1) error_handler("not return back to the first intersection"); - - /* currently we are only clipping convex polygon to convex polygon */ - if( nintersect > 0) error_handler("After clipping, nintersect should be 0"); - - /* copy the polygon to x_out, y_out, z_out */ - temp1 = polyList; - while (temp1 != NULL) { - getCoordinate(*temp1, x_out+n_out, y_out+n_out, z_out+n_out); - temp1 = temp1->Next; - n_out++; - } - - /* if(n_out < 3) error_handler(" The clipped region has < 3 vertices"); */ - if( n_out < 3) n_out = 0; -#ifdef debug_test_create_xgrid - printNode(polyList, "polyList after clipping"); -#endif - } - - /* check if grid1 is inside grid2 */ - if(n_out==0){ - /* first check number of points in grid1 is inside grid2 */ - int n, n1in2; - /* One possible is that grid1List is inside grid2List */ -#ifdef debug_test_create_xgrid - printf("\nNOTE from clip_2dx2d_great_circle: check if grid1 is inside grid2\n"); -#endif - n1in2 = 0; - temp = grid1List; - while(temp) { - if(temp->intersect != 1) { -#ifdef debug_test_create_xgrid - printf("grid1->isInside = %d\n", temp->isInside); -#endif - if( temp->isInside == 1) n1in2++; - } - temp = getNextNode(temp); - } - if(npts1==n1in2) { /* grid1 is inside grid2 */ - n_out = npts1; - n = 0; - temp = grid1List; - while( temp ) { - getCoordinate(*temp, &x_out[n], &y_out[n], &z_out[n]); - n++; - temp = getNextNode(temp); - } - } - if(n_out>0) return n_out; - } - - /* check if grid2List is inside grid1List */ - if(n_out ==0){ - int n, n2in1; -#ifdef debug_test_create_xgrid - printf("\nNOTE from clip_2dx2d_great_circle: check if grid2 is inside grid1\n"); -#endif - - temp = grid2List; - n2in1 = 0; - while(temp) { - if(temp->intersect != 1) { -#ifdef debug_test_create_xgrid - printf("grid2->isInside = %d\n", temp->isInside); -#endif - if( temp->isInside == 1) n2in1++; - } - temp = getNextNode(temp); - } - - if(npts2==n2in1) { /* grid2 is inside grid1 */ - n_out = npts2; - n = 0; - temp = grid2List; - while( temp ) { - getCoordinate(*temp, &x_out[n], &y_out[n], &z_out[n]); - n++; - temp = getNextNode(temp); - } - - } - } - - - return n_out; -} - - -/* Intersects between the line a and the seqment s - where both line and segment are great circle lines on the sphere represented by - 3D cartesian points. - [sin sout] are the ends of a line segment - returns true if the lines could be intersected, false otherwise. - inbound means the direction of (a1,a2) go inside or outside of (q1,q2,q3) -*/ - -int line_intersect_2D_3D(double *a1, double *a2, double *q1, double *q2, double *q3, - double *intersect, double *u_a, double *u_q, int *inbound){ - - /* Do this intersection by reprsenting the line a1 to a2 as a plane through the - two line points and the origin of the sphere (0,0,0). This is the - definition of a great circle arc. - */ - double plane[9]; - double plane_p[2]; - double u; - double p1[3], v1[3], v2[3]; - double c1[3], c2[3], c3[3]; - double coincident, sense, norm; - int i; - int is_inter1, is_inter2; - - *inbound = 0; - - /* first check if any vertices are the same */ - if(samePoint(a1[0], a1[1], a1[2], q1[0], q1[1], q1[2])) { - *u_a = 0; - *u_q = 0; - intersect[0] = a1[0]; - intersect[1] = a1[1]; - intersect[2] = a1[2]; -#ifdef debug_test_create_xgrid - printf("\nNOTE from line_intersect_2D_3D: u_a = %19.15f, u_q=%19.15f, inbound=%d\n", *u_a, *u_q, *inbound); -#endif - return 1; - } - else if (samePoint(a1[0], a1[1], a1[2], q2[0], q2[1], q2[2])) { - *u_a = 0; - *u_q = 1; - intersect[0] = a1[0]; - intersect[1] = a1[1]; - intersect[2] = a1[2]; -#ifdef debug_test_create_xgrid - printf("\nNOTE from line_intersect_2D_3D: u_a = %19.15f, u_q=%19.15f, inbound=%d\n", *u_a, *u_q, *inbound); -#endif - return 1; - } - else if(samePoint(a2[0], a2[1], a2[2], q1[0], q1[1], q1[2])) { -#ifdef debug_test_create_xgrid - printf("\nNOTE from line_intersect_2D_3D: u_a = %19.15f, u_q=%19.15f, inbound=%d\n", *u_a, *u_q, *inbound); -#endif - *u_a = 1; - *u_q = 0; - intersect[0] = a2[0]; - intersect[1] = a2[1]; - intersect[2] = a2[2]; - return 1; - } - else if (samePoint(a2[0], a2[1], a2[2], q2[0], q2[1], q2[2])) { -#ifdef debug_test_create_xgrid - printf("\nNOTE from line_intersect_2D_3D: u_a = %19.15f, u_q=%19.15f, inbound=%d\n", *u_a, *u_q, *inbound); -#endif - *u_a = 1; - *u_q = 1; - intersect[0] = a2[0]; - intersect[1] = a2[1]; - intersect[2] = a2[2]; - return 1; - } - - - /* Load points defining plane into variable (these are supposed to be in counterclockwise order) */ - plane[0]=q1[0]; - plane[1]=q1[1]; - plane[2]=q1[2]; - plane[3]=q2[0]; - plane[4]=q2[1]; - plane[5]=q2[2]; - plane[6]=0.0; - plane[7]=0.0; - plane[8]=0.0; - - /* Intersect the segment with the plane */ - is_inter1 = intersect_tri_with_line(plane, a1, a2, plane_p, u_a); - - if(!is_inter1) - return 0; - - if(fabs(*u_a) < EPSLN8) *u_a = 0; - if(fabs(*u_a-1) < EPSLN8) *u_a = 1; - - -#ifdef debug_test_create_xgrid - printf("\nNOTE from line_intersect_2D_3D: u_a = %19.15f\n", *u_a); -#endif - - - if( (*u_a < 0) || (*u_a > 1) ) return 0; - - /* Load points defining plane into variable (these are supposed to be in counterclockwise order) */ - plane[0]=a1[0]; - plane[1]=a1[1]; - plane[2]=a1[2]; - plane[3]=a2[0]; - plane[4]=a2[1]; - plane[5]=a2[2]; - plane[6]=0.0; - plane[7]=0.0; - plane[8]=0.0; - - /* Intersect the segment with the plane */ - is_inter2 = intersect_tri_with_line(plane, q1, q2, plane_p, u_q); - - if(!is_inter2) - return 0; - - if(fabs(*u_q) < EPSLN8) *u_q = 0; - if(fabs(*u_q-1) < EPSLN8) *u_q = 1; -#ifdef debug_test_create_xgrid - printf("\nNOTE from line_intersect_2D_3D: u_q = %19.15f\n", *u_q); -#endif - - - if( (*u_q < 0) || (*u_q > 1) ) return 0; - - u =*u_a; - - /* The two planes are coincidental */ - vect_cross(a1, a2, c1); - vect_cross(q1, q2, c2); - vect_cross(c1, c2, c3); - coincident = metric(c3); - - if(fabs(coincident) < EPSLN30) return 0; - - /* Calculate point of intersection */ - intersect[0]=a1[0] + u*(a2[0]-a1[0]); - intersect[1]=a1[1] + u*(a2[1]-a1[1]); - intersect[2]=a1[2] + u*(a2[2]-a1[2]); - - norm = metric( intersect ); - for(i = 0; i < 3; i ++) intersect[i] /= norm; - - /* when u_q =0 or u_q =1, the following could not decide the inbound value */ - if(*u_q != 0 && *u_q != 1){ - - p1[0] = a2[0]-a1[0]; - p1[1] = a2[1]-a1[1]; - p1[2] = a2[2]-a1[2]; - v1[0] = q2[0]-q1[0]; - v1[1] = q2[1]-q1[1]; - v1[2] = q2[2]-q1[2]; - v2[0] = q3[0]-q2[0]; - v2[1] = q3[1]-q2[1]; - v2[2] = q3[2]-q2[2]; - - vect_cross(v1, v2, c1); - vect_cross(v1, p1, c2); - - sense = dot(c1, c2); - *inbound = 1; - if(sense > 0) *inbound = 2; /* v1 going into v2 in CCW sense */ - } -#ifdef debug_test_create_xgrid - printf("\nNOTE from line_intersect_2D_3D: inbound=%d\n", *inbound); -#endif - - return 1; -} - - -/*------------------------------------------------------------------------------ - double poly_ctrlat(const double x[], const double y[], int n) - This routine is used to calculate the latitude of the centroid - ---------------------------------------------------------------------------*/ - -double poly_ctrlat(const double x[], const double y[], int n) -{ - double ctrlat = 0.0; - int i; - - for (i=0;i M_PI) dx = dx - 2.0*M_PI; - if(dx < -M_PI) dx = dx + 2.0*M_PI; - - if ( fabs(hdy)< SMALL_VALUE ) /* cheap area calculation along latitude */ - ctrlat -= dx*(2*cos(avg_y) + lat2*sin(avg_y) - cos(lat1) ); - else - ctrlat -= dx*( (sin(hdy)/hdy)*(2*cos(avg_y) + lat2*sin(avg_y)) - cos(lat1) ); - } - return (ctrlat*RADIUS*RADIUS); -}; /* poly_ctrlat */ - -/*------------------------------------------------------------------------------ - double poly_ctrlon(const double x[], const double y[], int n, double clon) - This routine is used to calculate the lontitude of the centroid. - ---------------------------------------------------------------------------*/ -double poly_ctrlon(const double x[], const double y[], int n, double clon) -{ - double ctrlon = 0.0; - int i; - - clon = clon; - for (i=0;i M_PI) dphi = dphi - 2.0*M_PI; - if(dphi < -M_PI) dphi = dphi + 2.0*M_PI; - dphi1 = phi1 - clon; - if( dphi1 > M_PI) dphi1 -= 2.0*M_PI; - if( dphi1 <-M_PI) dphi1 += 2.0*M_PI; - dphi2 = phi2 -clon; - if( dphi2 > M_PI) dphi2 -= 2.0*M_PI; - if( dphi2 <-M_PI) dphi2 += 2.0*M_PI; - - if(abs(dphi2 -dphi1) < M_PI) { - ctrlon -= dphi * (dphi1*f1+dphi2*f2)/2.0; - } - else { - if(dphi1 > 0.0) - fac = M_PI; - else - fac = -M_PI; - fint = f1 + (f2-f1)*(fac-dphi1)/abs(dphi); - ctrlon -= 0.5*dphi1*(dphi1-fac)*f1 - 0.5*dphi2*(dphi2+fac)*f2 - + 0.5*fac*(dphi1+dphi2)*fint; - } - - } - return (ctrlon*RADIUS*RADIUS); -}; /* poly_ctrlon */ - -/* ----------------------------------------------------------------------------- - double box_ctrlat(double ll_lon, double ll_lat, double ur_lon, double ur_lat) - This routine is used to calculate the latitude of the centroid. - ---------------------------------------------------------------------------*/ -double box_ctrlat(double ll_lon, double ll_lat, double ur_lon, double ur_lat) -{ - double dphi = ur_lon-ll_lon; - double ctrlat; - - if(dphi > M_PI) dphi = dphi - 2.0*M_PI; - if(dphi < -M_PI) dphi = dphi + 2.0*M_PI; - ctrlat = dphi*(cos(ur_lat) + ur_lat*sin(ur_lat)-(cos(ll_lat) + ll_lat*sin(ll_lat))); - return (ctrlat*RADIUS*RADIUS); -}; /* box_ctrlat */ - -/*------------------------------------------------------------------------------ - double box_ctrlon(double ll_lon, double ll_lat, double ur_lon, double ur_lat, double clon) - This routine is used to calculate the lontitude of the centroid - ----------------------------------------------------------------------------*/ -double box_ctrlon(double ll_lon, double ll_lat, double ur_lon, double ur_lat, double clon) -{ - double phi1, phi2, dphi, lat1, lat2, dphi1, dphi2; - double f1, f2, fac, fint; - double ctrlon = 0.0; - int i; - clon = clon; - for( i =0; i<2; i++) { - if(i == 0) { - phi1 = ur_lon; - phi2 = ll_lon; - lat1 = lat2 = ll_lat; - } - else { - phi1 = ll_lon; - phi2 = ur_lon; - lat1 = lat2 = ur_lat; - } - dphi = phi1 - phi2; - f1 = 0.5*(cos(lat1)*sin(lat1)+lat1); - f2 = 0.5*(cos(lat2)*sin(lat2)+lat2); - - if(dphi > M_PI) dphi = dphi - 2.0*M_PI; - if(dphi < -M_PI) dphi = dphi + 2.0*M_PI; - /* make sure the center is in the same grid box. */ - dphi1 = phi1 - clon; - if( dphi1 > M_PI) dphi1 -= 2.0*M_PI; - if( dphi1 <-M_PI) dphi1 += 2.0*M_PI; - dphi2 = phi2 -clon; - if( dphi2 > M_PI) dphi2 -= 2.0*M_PI; - if( dphi2 <-M_PI) dphi2 += 2.0*M_PI; - - if(abs(dphi2 -dphi1) < M_PI) { - ctrlon -= dphi * (dphi1*f1+dphi2*f2)/2.0; - } - else { - if(dphi1 > 0.0) - fac = M_PI; - else - fac = -M_PI; - fint = f1 + (f2-f1)*(fac-dphi1)/abs(dphi); - ctrlon -= 0.5*dphi1*(dphi1-fac)*f1 - 0.5*dphi2*(dphi2+fac)*f2 - + 0.5*fac*(dphi1+dphi2)*fint; - } - } - return (ctrlon*RADIUS*RADIUS); -} /* box_ctrlon */ - -/******************************************************************************* - double grid_box_radius(double *x, double *y, double *z, int n); - Find the radius of the grid box, the radius is defined the - maximum distance between any two vertices -*******************************************************************************/ -double grid_box_radius(const double *x, const double *y, const double *z, int n) -{ - double radius; - int i, j; - - radius = 0; - for(i=0; i is - the outward edge normal from vertex to . is the vector - from to . - if Inner produce * > 0, outside, otherwise inside. - inner product value = 0 also treate as inside. -*******************************************************************************/ -int inside_edge(double x0, double y0, double x1, double y1, double x, double y) -{ - const double SMALL = 1.e-12; - double product; - - product = ( x-x0 )*(y1-y0) + (x0-x1)*(y-y0); - return (product<=SMALL) ? 1:0; - - }; /* inside_edge */ - - -/* The following is a test program to test subroutines in create_xgrid.c */ - -#ifdef test_create_xgrid - -#include "create_xgrid.h" -#include - -#define D2R (M_PI/180) -#define R2D (180/M_PI) -#define MAXPOINT 1000 - -int main(int argc, char* argv[]) -{ - - double lon1_in[MAXPOINT], lat1_in[MAXPOINT]; - double lon2_in[MAXPOINT], lat2_in[MAXPOINT]; - double x1_in[MAXPOINT], y1_in[MAXPOINT], z1_in[MAXPOINT]; - double x2_in[MAXPOINT], y2_in[MAXPOINT], z2_in[MAXPOINT]; - double lon_out[20], lat_out[20]; - double x_out[20], y_out[20], z_out[20]; - int n1_in, n2_in, n_out, i, j; - int nlon1=0, nlat1=0, nlon2=0, nlat2=0; - int n; - int ntest = 11; - - - for(n=11; n<=ntest; n++) { - - switch (n) { - case 1: - /**************************************************************** - - test clip_2dx2d_great_cirle case 1: - box 1: (20,10), (20,12), (22,12), (22,10) - box 2: (21,11), (21,14), (24,14), (24,11) - out : (21, 12.0018), (22, 12), (22, 11.0033), (21, 11) - - ****************************************************************/ - n1_in = 4; n2_in = 4; - /* first a simple lat-lon grid box to clip another lat-lon grid box */ - lon1_in[0] = 20; lat1_in[0] = 10; - lon1_in[1] = 20; lat1_in[1] = 12; - lon1_in[2] = 22; lat1_in[2] = 12; - lon1_in[3] = 22; lat1_in[3] = 10; - lon2_in[0] = 21; lat2_in[0] = 11; - lon2_in[1] = 21; lat2_in[1] = 14; - lon2_in[2] = 24; lat2_in[2] = 14; - lon2_in[3] = 24; lat2_in[3] = 11; - break; - - case 2: - /**************************************************************** - - test clip_2dx2d_great_cirle case 2: two identical box - box 1: (20,10), (20,12), (22,12), (22,10) - box 2: (20,10), (20,12), (22,12), (22,10) - out : (20,10), (20,12), (22,12), (22,10) - - ****************************************************************/ - lon1_in[0] = 20; lat1_in[0] = 10; - lon1_in[1] = 20; lat1_in[1] = 12; - lon1_in[2] = 22; lat1_in[2] = 12; - lon1_in[3] = 22; lat1_in[3] = 10; - - for(i=0; i 10 ) { - int nxgrid; - int *i1, *j1, *i2, *j2; - double *xarea, *xclon, *xclat, *mask1; - - mask1 = (double *)malloc(nlon1*nlat1*sizeof(double)); - i1 = (int *)malloc(MAXXGRID*sizeof(int)); - j1 = (int *)malloc(MAXXGRID*sizeof(int)); - i2 = (int *)malloc(MAXXGRID*sizeof(int)); - j2 = (int *)malloc(MAXXGRID*sizeof(int)); - xarea = (double *)malloc(MAXXGRID*sizeof(double)); - xclon = (double *)malloc(MAXXGRID*sizeof(double)); - xclat = (double *)malloc(MAXXGRID*sizeof(double)); - - for(i=0; i -! Zhi Liang -! - -! - -! -! gradient_mod implements some utility routines to calculate gradient. -! - -! -! gradient_mod implements some utility routines to calculate gradient. -! Currently only gradient on cubic grid is implemented. Also a public interface -! is provided to calculate grid information needed to calculate gradient. - -use mpp_mod, only : mpp_error, FATAL -use constants_mod, only : RADIUS - -implicit none -private - - -public :: gradient_cubic -public :: calc_cubic_grid_info - -character(len=128) :: version = '$Id$' -character(len=128) :: tagname = '$Name$' - -contains - - -!##################################################################### -! NOTe: pin has halo size = 1. -! the size of pin will be (nx+2,ny+2), T-cell center, with halo = 1 -! the size of dx will be (nx, ny+1), N-cell center -! the size of dy will be (nx+1, ny), E-cell center -! the size of area will be (nx, ny), T-cell center. -! The size of edge_w will be (ny+1), C-cell center -! The size of edge_e will be (ny+1), C-cell center -! The size of edge_s will be (nx+1), C-cell center -! The size of edge_n will be (nx+1), C-cell center -! The size of en_n will be (3,nx,ny+1), N-cell center -! The size of en_e will be (3,nx+1,ny), E-cell center -! The size of vlon will be (3,nx, ny) T-cell center -! The size of vlat will be (3,nx, ny), T-cell center - -subroutine gradient_cubic(pin, dx, dy, area, edge_w, edge_e, edge_s, edge_n, & - en_n, en_e, vlon, vlat, grad_x, grad_y, on_west_edge, & - on_east_edge, on_south_edge, on_north_edge) - - real, dimension(:,: ), intent(in ) :: pin, dx, dy, area - real, dimension(: ), intent(in ) :: edge_w, edge_e, edge_s, edge_n - real, dimension(:,:,:), intent(in ) :: en_n, en_e - real, dimension(:,:,:), intent(in ) :: vlon, vlat - real, dimension(:,: ), intent(out) :: grad_x, grad_y - logical, intent(in ) :: on_west_edge, on_east_edge, on_south_edge, on_north_edge - integer :: nx, ny - - - nx = size(grad_x,1) - ny = size(grad_x,2) - - if(size(pin,1) .NE. nx+2 .OR. size(pin,2) .NE. ny+2)call mpp_error(FATAL, "gradient_mod:size of pin should be (nx+2, ny+2)") - if(size(dx,1) .NE. nx .OR. size(dx,2) .NE. ny+1 ) call mpp_error(FATAL, "gradient_mod: size of dx should be (nx,ny+1)") - if(size(dy,1) .NE. nx+1 .OR. size(dy,2) .NE. ny ) call mpp_error(FATAL, "gradient_mod: size of dy should be (nx+1,ny)") - if(size(area,1) .NE. nx .OR. size(area,2) .NE. ny ) call mpp_error(FATAL, "gradient_mod: size of area should be (nx,ny)") - if(size(vlon,1) .NE. 3 .OR. size(vlon,2) .NE. nx .OR. size(vlon,3) .NE. ny) & - call mpp_error(FATAL, "gradient_mod: size of vlon should be (3,nx,ny)") - if(size(vlat,1) .NE. 3 .OR. size(vlat,2) .NE. nx .OR. size(vlat,3) .NE. ny) & - call mpp_error(FATAL, "gradient_mod: size of vlat should be (3,nx,ny)") - if(size(edge_w) .NE. ny+1) call mpp_error(FATAL, "gradient_mod: size of edge_w should be (ny+1)") - if(size(edge_e) .NE. ny+1) call mpp_error(FATAL, "gradient_mod: size of edge_e should be (ny+1)") - if(size(edge_s) .NE. nx+1) call mpp_error(FATAL, "gradient_mod: size of edge_s should be (nx+1)") - if(size(edge_n) .NE. nx+1) call mpp_error(FATAL, "gradient_mod: size of edge_n should be (nx+1)") - if(size(en_n,1) .NE. 3 .OR. size(en_n,2) .NE. nx .OR. size(en_n,3) .NE. ny+1 ) & - call mpp_error(FATAL, "gradient_mod:size of en_n should be (3, nx, ny+1)") - if(size(en_e,1) .NE. 3 .OR. size(en_e,2) .NE. nx+1 .OR. size(en_e,3) .NE. ny ) & - call mpp_error(FATAL, "gradient_mod:size of en_e should be (3, nx+1, ny)") - - call grad_c2l(nx, ny, pin, dx, dy, area, edge_w, edge_e, edge_s, edge_n, en_n, en_e, vlon, vlat, & - grad_x, grad_y, on_west_edge, on_east_edge, on_south_edge, on_north_edge) - - return - -end subroutine gradient_cubic - - -subroutine calc_cubic_grid_info(xt, yt, xc, yc, dx, dy, area, edge_w, edge_e, edge_s, edge_n, & - en_n, en_e, vlon, vlat, on_west_edge, on_east_edge, on_south_edge, on_north_edge ) - real, dimension(:,: ), intent(in ) :: xt, yt, xc, yc - real, dimension(:,: ), intent(out) :: dx, dy, area - real, dimension(: ), intent(out) :: edge_w, edge_e, edge_s, edge_n - real, dimension(:,:,:), intent(out) :: en_n, en_e - real, dimension(:,:,:), intent(out) :: vlon, vlat - logical, intent(in ) :: on_west_edge, on_east_edge, on_south_edge, on_north_edge - integer :: nx, ny, nxp, nyp - - - nx = size(area,1) - ny = size(area,2) - nxp = nx+1 - nyp = ny+1 - - if(size(xt,1) .NE. nx+2 .OR. size(xt,2) .NE. ny+2 ) call mpp_error(FATAL, "gradient_mod: size of xt should be (nx+2,ny+2)") - if(size(yt,1) .NE. nx+2 .OR. size(yt,2) .NE. ny+2 ) call mpp_error(FATAL, "gradient_mod: size of yt should be (nx+2,ny+2)") - if(size(xc,1) .NE. nxp .OR. size(xc,2) .NE. nyp ) call mpp_error(FATAL, "gradient_mod: size of xc should be (nx+1,ny+1)") - if(size(yc,1) .NE. nxp .OR. size(yc,2) .NE. nyp ) call mpp_error(FATAL, "gradient_mod: size of yc should be (nx+1,ny+1)") - if(size(dx,1) .NE. nx .OR. size(dx,2) .NE. nyp ) call mpp_error(FATAL, "gradient_mod: size of dx should be (nx,ny+1)") - if(size(dy,1) .NE. nxp .OR. size(dy,2) .NE. ny ) call mpp_error(FATAL, "gradient_mod: size of dy should be (nx+1,ny)") - if(size(area,1) .NE. nx .OR. size(area,2) .NE. ny ) call mpp_error(FATAL, "gradient_mod: size of area should be (nx,ny)") - if(size(vlon,1) .NE. 3 .OR. size(vlon,2) .NE. nx .OR. size(vlon,3) .NE. ny) & - call mpp_error(FATAL, "gradient_mod: size of vlon should be (3,nx,ny)") - if(size(vlat,1) .NE. 3 .OR. size(vlat,2) .NE. nx .OR. size(vlat,3) .NE. ny) & - call mpp_error(FATAL, "gradient_mod: size of vlat should be (3,nx,ny)") - if(size(edge_w) .NE. ny+1) call mpp_error(FATAL, "gradient_mod: size of edge_w should be (ny-1)") - if(size(edge_e) .NE. ny+1) call mpp_error(FATAL, "gradient_mod: size of edge_e should be (ny-1)") - if(size(edge_s) .NE. nx+1) call mpp_error(FATAL, "gradient_mod: size of edge_s should be (nx-1)") - if(size(edge_n) .NE. nx+1) call mpp_error(FATAL, "gradient_mod: size of edge_n should be (nx-1)") - if(size(en_n,1) .NE. 3 .OR. size(en_n,2) .NE. nx .OR. size(en_n,3) .NE. nyp ) & - call mpp_error(FATAL, "gradient_mod:size of en_n should be (3, nx, ny+1)") - if(size(en_e,1) .NE. 3 .OR. size(en_e,2) .NE. nxp .OR. size(en_e,3) .NE. ny ) & - call mpp_error(FATAL, "gradient_mod:size of en_e should be (3, nx+1, ny)") - - - call calc_c2l_grid_info(nx, ny, xt, yt, xc, yc, dx, dy, area, edge_w, edge_e, edge_s, edge_n, & - en_n, en_e, vlon, vlat, on_west_edge, on_east_edge, on_south_edge, on_north_edge ) - - - return - -end subroutine calc_cubic_grid_info - -end module gradient_mod diff --git a/sorc/fre-nctools.fd/shared/mosaic/gradient_c2l.c b/sorc/fre-nctools.fd/shared/mosaic/gradient_c2l.c deleted file mode 100644 index f218baee49..0000000000 --- a/sorc/fre-nctools.fd/shared/mosaic/gradient_c2l.c +++ /dev/null @@ -1,438 +0,0 @@ -#include -#include -#include "constant.h" -#include "mosaic_util.h" -#include "gradient_c2l.h" -#include -void a2b_ord2(int nx, int ny, const double *qin, const double *edge_w, const double *edge_e, - const double *edge_s, const double *edge_n, double *qout, - int on_west_edge, int on_east_edge, int on_south_edge, int on_north_edge); - - -/*------------------------------------------------------------------------------ - Routine to compute gradient terms for SCRIP: - SJL: Oct 5, 2007 - NOTe: pin has halo size = 1. - the size of pin will be (nx+2,ny+2), T-cell center, with halo = 1 - the size of dx will be (nx, ny+1), N-cell center - the size of dy will be (nx+1, ny), E-cell center - the size of area will be (nx, ny), T-cell center. - The size of edge_w will be (ny+1), C-cell center - The size of edge_e will be (ny+1), C-cell center - The size of edge_s will be (nx+1), C-cell center - The size of edge_n will be (nx+1), C-cell center - The size of en_n will be (nx, ny+1,3),N-cell center - The size of en_e will be (nx+1,ny,3), E-cell center - The size of vlon will be (nx, ny, 3) T-cell center - The size of vlat will be (nx, ny, 3), T-cell center - ----------------------------------------------------------------------------*/ -void grad_c2l_(const int *nlon, const int *nlat, const double *pin, const double *dx, const double *dy, const double *area, - const double *edge_w, const double *edge_e, const double *edge_s, const double *edge_n, - const double *en_n, const double *en_e, const double *vlon, const double *vlat, - double *grad_x, double *grad_y, const int *on_west_edge, const int *on_east_edge, - const int *on_south_edge, const int *on_north_edge) -{ - grad_c2l(nlon, nlat, pin, dx, dy, area, edge_w, edge_e, edge_s, edge_n, en_n, en_e, vlon, vlat, grad_x, grad_y, - on_west_edge, on_east_edge, on_south_edge, on_north_edge); -} - -void grad_c2l(const int *nlon, const int *nlat, const double *pin, const double *dx, const double *dy, const double *area, - const double *edge_w, const double *edge_e, const double *edge_s, const double *edge_n, - const double *en_n, const double *en_e, const double *vlon, const double *vlat, - double *grad_x, double *grad_y, const int *on_west_edge, const int *on_east_edge, - const int *on_south_edge, const int *on_north_edge) -{ - - double *pb, *pdx, *pdy, *grad3; - int nx, ny, nxp, nyp, i, j, m0, m1, m2, n; - - nx = *nlon; - ny = *nlat; - nxp = nx+1; - nyp = ny+1; - pb = (double *)malloc(nxp*nyp*sizeof(double)); - pdx = (double *)malloc(3*nx*(ny+1)*sizeof(double)); - pdy = (double *)malloc(3*(nx+1)*ny*sizeof(double)); - grad3 = (double *)malloc(3*nx*ny*sizeof(double)); - a2b_ord2(nx, ny, pin, edge_w, edge_e, edge_s, edge_n, pb, *on_west_edge, *on_east_edge,*on_south_edge, *on_north_edge); - - for(j=0; j0.and.tile<=ntiles) then - allocate(nnx(ntiles),nny(ntiles)) - call get_grid_size_for_all_tiles(component,nnx,nny) - nx = nnx(tile); ny = nny(tile) - deallocate(nnx,nny) - else - call error_mesg('get_grid_size',& - 'requested tile index '//trim(string(tile))//' is out of bounds (1:'//trim(string(ntiles))//')',& - FATAL) - endif -end subroutine get_grid_size_for_one_tile - -! ============================================================================ -! return grid cell area for the specified model component and tile -! ============================================================================ -subroutine get_grid_cell_area(component, tile, cellarea, domain) - character(len=*), intent(in) :: component - integer , intent(in) :: tile - real , intent(inout) :: cellarea(:,:) - type(domain2d) , intent(in), optional :: domain - - ! local vars - integer :: nlon, nlat - real, allocatable :: glonb(:,:), glatb(:,:) - - select case(get_grid_version()) - case(VERSION_0,VERSION_1) - select case(trim(component)) - case('LND') - call read_data(grid_file, 'AREA_LND_CELL', cellarea, & - no_domain=.not.present(domain), domain=domain) - case('ATM','OCN') - call read_data(grid_file, 'AREA_'//trim(uppercase(component)),cellarea,& - no_domain=.not.present(domain),domain=domain) - case default - call error_mesg(module_name//'/get_grid_cell_area',& - 'Illegal component name "'//trim(component)//'": must be one of ATM, LND, or OCN',& - FATAL) - end select - ! convert area to m2 - cellarea = cellarea*4.*PI*radius**2 - case(VERSION_2) - if (present(domain)) then - call mpp_get_compute_domain(domain,xsize=nlon,ysize=nlat) - else - call get_grid_size(component,tile,nlon,nlat) - endif - allocate(glonb(nlon+1,nlat+1),glatb(nlon+1,nlat+1)) - call get_grid_cell_vertices(component, tile, glonb, glatb, domain) - if (great_circle_algorithm) then - call calc_mosaic_grid_great_circle_area(glonb*pi/180.0, glatb*pi/180.0, cellarea) - else - call calc_mosaic_grid_area(glonb*pi/180.0, glatb*pi/180.0, cellarea) - end if - deallocate(glonb,glatb) - end select - -end subroutine get_grid_cell_area - - -! ============================================================================ -! get the area of the component per grid cell -! ============================================================================ -subroutine get_grid_comp_area(component,tile,area,domain) - character(len=*) :: component - integer, intent(in) :: tile - real, intent(inout) :: area(:,:) - type(domain2d), intent(in), optional :: domain - ! local vars - integer :: n_xgrid_files ! number of exchange grid files in the mosaic - integer :: siz(4), nxgrid - integer :: i,j,m,n - integer, allocatable :: i1(:), j1(:), i2(:), j2(:) - real, allocatable :: xgrid_area(:) - real, allocatable :: rmask(:,:) - character(len=MAX_NAME) :: & - xgrid_name, & ! name of the variable holding xgrid names - tile_name, & ! name of the tile - xgrid_file, & ! name of the current xgrid file - mosaic_name,& ! name of the mosaic - mosaic_file,& - tilefile - character(len=4096) :: attvalue - character(len=MAX_NAME), allocatable :: nest_tile_name(:) - character(len=MAX_NAME) :: varname1, varname2 - integer :: is,ie,js,je ! boundaries of our domain - integer :: i0, j0 ! offsets for x and y, respectively - integer :: num_nest_tile, ntiles - logical :: is_nest - integer :: found_xgrid_files ! how many xgrid files we actually found in the grid spec - integer :: ibegin, iend, bsize, l - - select case (get_grid_version()) - case(VERSION_0,VERSION_1) - select case(component) - case('ATM') - call read_data(grid_file,'AREA_ATM',area, no_domain=.not.present(domain),domain=domain) - case('OCN') - allocate(rmask(size(area,1),size(area,2))) - call read_data(grid_file,'AREA_OCN',area, no_domain=.not.present(domain),domain=domain) - call read_data(grid_file,'wet', rmask,no_domain=.not.present(domain),domain=domain) - area = area*rmask - deallocate(rmask) - case('LND') - call read_data(grid_file,'AREA_LND',area,no_domain=.not.present(domain),domain=domain) - case default - call error_mesg(module_name//'/get_grid_comp_area',& - 'Illegal component name "'//trim(component)//'": must be one of ATM, LND, or OCN',& - FATAL) - end select - case(VERSION_2) ! mosaic gridspec - select case (component) - case ('ATM') - ! just read the grid cell area and return - call get_grid_cell_area(component,tile,area) - return - case ('LND') - xgrid_name = 'aXl_file' - call read_data(grid_file, 'lnd_mosaic', mosaic_name) - tile_name = trim(mosaic_name)//'_tile'//char(tile+ichar('0')) - case ('OCN') - xgrid_name = 'aXo_file' - call read_data(grid_file, 'ocn_mosaic', mosaic_name) - tile_name = trim(mosaic_name)//'_tile'//char(tile+ichar('0')) - case default - call error_mesg(module_name//'/get_grid_comp_area',& - 'Illegal component name "'//trim(component)//'": must be one of ATM, LND, or OCN',& - FATAL) - end select - ! get the boundaries of the requested domain - if(present(domain)) then - call mpp_get_compute_domain(domain,is,ie,js,je) - i0 = 1-is ; j0=1-js - else - call get_grid_size(component,tile,ie,je) - is = 1 ; i0 = 0 - js = 1 ; j0 = 0 - endif - if (size(area,1)/=ie-is+1.or.size(area,2)/=je-js+1) & - call error_mesg(module_name//'/get_grid_comp_area',& - 'size of the output argument "area" is not consistent with the domain',FATAL) - - ! find the nest tile - call read_data(grid_file, 'atm_mosaic', mosaic_name) - call read_data(grid_file,'atm_mosaic_file',mosaic_file) - mosaic_file = grid_dir//trim(mosaic_file) - ntiles = get_mosaic_ntiles(trim(mosaic_file)) - allocate(nest_tile_name(ntiles)) - num_nest_tile = 0 - do n = 1, ntiles - call read_data(mosaic_file, 'gridfiles', tilefile, level=n) - tilefile = grid_dir//trim(tilefile) - if( get_global_att_value(tilefile, "nest_grid", attvalue) ) then - if(trim(attvalue) == "TRUE") then - num_nest_tile = num_nest_tile + 1 - nest_tile_name(num_nest_tile) = trim(mosaic_name)//'_tile'//char(n+ichar('0')) - else if(trim(attvalue) .NE. "FALSE") then - call error_mesg(module_name//'/get_grid_comp_area', 'value of global attribute nest_grid in file'// & - trim(tilefile)//' should be TRUE of FALSE', FATAL) - endif - end if - end do - area(:,:) = 0. - if(field_exist(grid_file,xgrid_name)) then - ! get the number of the exchange-grid files - call field_size(grid_file,xgrid_name,siz) - n_xgrid_files = siz(2) - found_xgrid_files = 0 - ! loop through all exchange grid files - do n = 1, n_xgrid_files - ! get the name of the current exchange grid file - call read_data(grid_file,xgrid_name,xgrid_file,level=n) - ! skip the rest of the loop if the name of the current tile isn't found - ! in the file name, but check this only if there is more than 1 tile - if(n_xgrid_files>1) then - if(index(xgrid_file,trim(tile_name))==0) cycle - endif - found_xgrid_files = found_xgrid_files + 1 - !---make sure the atmosphere grid is not a nested grid - is_nest = .false. - do m = 1, num_nest_tile - if(index(xgrid_file, trim(nest_tile_name(m))) .NE. 0) then - is_nest = .true. - exit - end if - end do - if(is_nest) cycle - - ! finally read the exchange grid - nxgrid = get_mosaic_xgrid_size(grid_dir//xgrid_file) - if(nxgrid < BUFSIZE) then - allocate(i1(nxgrid), j1(nxgrid), i2(nxgrid), j2(nxgrid), xgrid_area(nxgrid)) - else - allocate(i1(BUFSIZE), j1(BUFSIZE), i2(BUFSIZE), j2(BUFSIZE), xgrid_area(BUFSIZE)) - endif - ibegin = 1 - do l = 1,nxgrid,BUFSIZE - bsize = min(BUFSIZE, nxgrid-l+1) - iend = ibegin + bsize - 1 - call get_mosaic_xgrid(grid_dir//xgrid_file, i1(1:bsize), j1(1:bsize), i2(1:bsize), j2(1:bsize), & - xgrid_area(1:bsize), ibegin, iend) - ! and sum the exchange grid areas - do m = 1, bsize - i = i2(m); j = j2(m) - if (iie) cycle - if (jje) cycle - area(i+i0,j+j0) = area(i+i0,j+j0) + xgrid_area(m) - end do - ibegin = iend + 1 - enddo - deallocate(i1, j1, i2, j2, xgrid_area) - enddo - if (found_xgrid_files == 0) & - call error_mesg('get_grid_comp_area', 'no xgrid files were found for component '& - //trim(component)//' (mosaic name is '//trim(mosaic_name)//')', FATAL) - - endif - deallocate(nest_tile_name) - end select ! version - ! convert area to m2 - area = area*4.*PI*radius**2 -end subroutine - -! ============================================================================ -! returns arrays of global grid cell boundaries for given model component and -! mosaic tile number. -! NOTE that in case of non-lat-lon grid the returned coordinates may have be not so -! meaningful, by the very nature of such grids. But presumably these 1D coordinate -! arrays are good enough for diag axis and such. -! ============================================================================ -subroutine get_grid_cell_vertices_1D(component, tile, glonb, glatb) - character(len=*), intent(in) :: component - integer, intent(in) :: tile - real, intent(inout) :: glonb(:),glatb(:) - - integer :: nlon, nlat - integer :: start(4), nread(4) - real, allocatable :: tmp(:,:), x_vert_t(:,:,:), y_vert_t(:,:,:) - character(len=MAX_FILE) :: filename1, filename2 - - call get_grid_size_for_one_tile(component, tile, nlon, nlat) - if (size(glonb(:))/=nlon+1) & - call error_mesg ( module_name//'/get_grid_cell_vertices_1D',& - 'Size of argument "glonb" is not consistent with the grid size',FATAL) - if (size(glatb(:))/=nlat+1) & - call error_mesg ( module_name//'/get_grid_cell_vertices_1D',& - 'Size of argument "glatb" is not consistent with the grid size',FATAL) - if(trim(component) .NE. 'ATM' .AND. component .NE. 'LND' .AND. component .NE. 'OCN') then - call error_mesg(module_name//'/get_grid_cell_vertices_1D',& - 'Illegal component name "'//trim(component)//'": must be one of ATM, LND, or OCN',& - FATAL) - endif - - select case(get_grid_version()) - case(VERSION_0) - select case(trim(component)) - case('ATM','LND') - call read_data(grid_file, 'xb'//lowercase(component(1:1)), glonb, no_domain=.true.) - call read_data(grid_file, 'yb'//lowercase(component(1:1)), glatb, no_domain=.true.) - case('OCN') - call read_data(grid_file, "gridlon_vert_t", glonb, no_domain=.true.) - call read_data(grid_file, "gridlat_vert_t", glatb, no_domain=.true.) - end select - case(VERSION_1) - select case(trim(component)) - case('ATM','LND') - call read_data(grid_file, 'xb'//lowercase(component(1:1)), glonb, no_domain=.true.) - call read_data(grid_file, 'yb'//lowercase(component(1:1)), glatb, no_domain=.true.) - case('OCN') - allocate (x_vert_t(nlon,1,2), y_vert_t(1,nlat,2) ) - start = 1; nread = 1 - nread(1) = nlon; nread(2) = 1; start(3) = 1 - call read_data(grid_file, "x_vert_T", x_vert_t(:,:,1), start, nread, no_domain=.TRUE.) - nread(1) = nlon; nread(2) = 1; start(3) = 2 - call read_data(grid_file, "x_vert_T", x_vert_t(:,:,2), start, nread, no_domain=.TRUE.) - - nread(1) = 1; nread(2) = nlat; start(3) = 1 - call read_data(grid_file, "y_vert_T", y_vert_t(:,:,1), start, nread, no_domain=.TRUE.) - nread(1) = 1; nread(2) = nlat; start(3) = 4 - call read_data(grid_file, "y_vert_T", y_vert_t(:,:,2), start, nread, no_domain=.TRUE.) - glonb(1:nlon) = x_vert_t(1:nlon,1,1) - glonb(nlon+1) = x_vert_t(nlon,1,2) - glatb(1:nlat) = y_vert_t(1,1:nlat,1) - glatb(nlat+1) = y_vert_t(1,nlat,2) - deallocate(x_vert_t, y_vert_t) - end select - case(VERSION_2) - ! get the name of the mosaic file for the component - call read_data(grid_file, trim(lowercase(component))//'_mosaic_file', filename1) - filename1=grid_dir//trim(filename1) - ! get the name of the grid file for the component and tile - call read_data(filename1, 'gridfiles', filename2, level=tile) - filename2 = grid_dir//trim(filename2) - - start = 1; nread = 1 - nread(1) = 2*nlon+1 - allocate( tmp(2*nlon+1,1) ) - call read_data(filename2, "x", tmp, start, nread, no_domain=.TRUE.) - glonb(1:nlon+1) = tmp(1:2*nlon+1:2,1) - deallocate(tmp) - allocate(tmp(1,2*nlat+1)) - - start = 1; nread = 1 - nread(2) = 2*nlat+1 - call read_data(filename2, "y", tmp, start, nread, no_domain=.TRUE.) - glatb(1:nlat+1) = tmp(1,1:2*nlat+1:2) - deallocate(tmp) - end select - -end subroutine get_grid_cell_vertices_1D - -! ============================================================================ -! returns cell vertices for the specified model component and mosaic tile number -! ============================================================================ -subroutine get_grid_cell_vertices_2D(component, tile, lonb, latb, domain) - character(len=*), intent(in) :: component - integer, intent(in) :: tile - real, intent(inout) :: lonb(:,:),latb(:,:) - type(domain2d), optional, intent(in) :: domain - - ! local vars - character(len=MAX_FILE) :: filename1, filename2 - integer :: nlon, nlat - integer :: i,j - real, allocatable :: buffer(:), tmp(:,:), x_vert_t(:,:,:), y_vert_t(:,:,:) - integer :: is,ie,js,je ! boundaries of our domain - integer :: i0,j0 ! offsets for coordinates - integer :: isg, jsg - integer :: start(4), nread(4) - - call get_grid_size_for_one_tile(component, tile, nlon, nlat) - if (present(domain)) then - call mpp_get_compute_domain(domain,is,ie,js,je) - else - is = 1 ; ie = nlon - js = 1 ; je = nlat - !--- domain normally should be present - call error_mesg ( module_name//'/get_grid_cell_vertices',& - 'domain is not present, global data will be read', NOTE) - endif - i0 = -is+1; j0 = -js+1 - - ! verify that lonb and latb sizes are consistent with the size of domain - if (size(lonb,1)/=ie-is+2.or.size(lonb,2)/=je-js+2) & - call error_mesg ( module_name//'/get_grid_cell_vertices',& - 'Size of argument "lonb" is not consistent with the domain size',FATAL) - if (size(latb,1)/=ie-is+2.or.size(latb,2)/=je-js+2) & - call error_mesg ( module_name//'/get_grid_cell_vertices',& - 'Size of argument "latb" is not consistent with the domain size',FATAL) - if(trim(component) .NE. 'ATM' .AND. component .NE. 'LND' .AND. component .NE. 'OCN') then - call error_mesg(module_name//'/get_grid_cell_vertices',& - 'Illegal component name "'//trim(component)//'": must be one of ATM, LND, or OCN',& - FATAL) - endif - - select case(get_grid_version()) - case(VERSION_0) - select case(component) - case('ATM','LND') - allocate(buffer(max(nlon,nlat)+1)) - ! read coordinates of grid cell vertices - call read_data(grid_file, 'xb'//lowercase(component(1:1)), buffer(1:nlon+1), no_domain=.true.) - do j = js, je+1 - do i = is, ie+1 - lonb(i+i0,j+j0) = buffer(i) - enddo - enddo - call read_data(grid_file, 'yb'//lowercase(component(1:1)), buffer(1:nlat+1), no_domain=.true.) - do j = js, je+1 - do i = is, ie+1 - latb(i+i0,j+j0) = buffer(j) - enddo - enddo - deallocate(buffer) - case('OCN') - if (present(domain)) then - start = 1; nread = 1 - start(1) = is; start(2) = js - nread(1) = ie-is+2; nread(2) = je-js+2 - call read_data(grid_file, 'geolon_vert_t', lonb, start, nread, no_domain=.true. ) - call read_data(grid_file, 'geolat_vert_t', latb, start, nread, no_domain=.true. ) - else - call read_data(grid_file, 'geolon_vert_t', lonb, no_domain=.TRUE. ) - call read_data(grid_file, 'geolat_vert_t', latb, no_domain=.TRUE. ) - endif - end select - case(VERSION_1) - select case(component) - case('ATM','LND') - allocate(buffer(max(nlon,nlat)+1)) - ! read coordinates of grid cell vertices - call read_data(grid_file, 'xb'//lowercase(component(1:1)), buffer(1:nlon+1), no_domain=.true.) - do j = js, je+1 - do i = is, ie+1 - lonb(i+i0,j+j0) = buffer(i) - enddo - enddo - call read_data(grid_file, 'yb'//lowercase(component(1:1)), buffer(1:nlat+1), no_domain=.true.) - do j = js, je+1 - do i = is, ie+1 - latb(i+i0,j+j0) = buffer(j) - enddo - enddo - deallocate(buffer) - case('OCN') - nlon=ie-is+1; nlat=je-js+1 - allocate (x_vert_t(nlon,nlat,4), y_vert_t(nlon,nlat,4) ) - call read_data(grid_file, 'x_vert_T', x_vert_t, no_domain=.not.present(domain), domain=domain ) - call read_data(grid_file, 'y_vert_T', y_vert_t, no_domain=.not.present(domain), domain=domain ) - lonb(1:nlon,1:nlat) = x_vert_t(1:nlon,1:nlat,1) - lonb(nlon+1,1:nlat) = x_vert_t(nlon,1:nlat,2) - lonb(1:nlon,nlat+1) = x_vert_t(1:nlon,nlat,4) - lonb(nlon+1,nlat+1) = x_vert_t(nlon,nlat,3) - latb(1:nlon,1:nlat) = y_vert_t(1:nlon,1:nlat,1) - latb(nlon+1,1:nlat) = y_vert_t(nlon,1:nlat,2) - latb(1:nlon,nlat+1) = y_vert_t(1:nlon,nlat,4) - latb(nlon+1,nlat+1) = y_vert_t(nlon,nlat,3) - deallocate(x_vert_t, y_vert_t) - end select - case(VERSION_2) - ! get the name of the mosaic file for the component - call read_data(grid_file, trim(lowercase(component))//'_mosaic_file', filename1) - filename1=grid_dir//trim(filename1) - ! get the name of the grid file for the component and tile - call read_data(filename1, 'gridfiles', filename2, level=tile) - filename2 = grid_dir//trim(filename2) - if(PRESENT(domain)) then - call mpp_get_global_domain(domain, xbegin=isg, ybegin=jsg) - start = 1; nread = 1 - start(1) = 2*(is-isg+1) - 1; nread(1) = 2*(ie-is)+3 - start(2) = 2*(js-jsg+1) - 1; nread(2) = 2*(je-js)+3 - allocate(tmp(nread(1), nread(2)) ) - call read_data(filename2, 'x', tmp, start, nread, no_domain=.TRUE.) - do j = 1, je-js+2 - do i = 1, ie-is+2 - lonb(i,j) = tmp(2*i-1,2*j-1) - enddo - enddo - call read_data(filename2, 'y', tmp, start, nread, no_domain=.TRUE.) - do j = 1, je-js+2 - do i = 1, ie-is+2 - latb(i,j) = tmp(2*i-1,2*j-1) - enddo - enddo - else - allocate(tmp(2*nlon+1,2*nlat+1)) - call read_data(filename2, 'x', tmp, no_domain=.TRUE.) - do j = js, je+1 - do i = is, ie+1 - lonb(i+i0,j+j0) = tmp(2*i-1,2*j-1) - end do - end do - call read_data(filename2, 'y', tmp, no_domain=.TRUE.) - do j = js, je+1 - do i = is, ie+1 - latb(i+i0,j+j0) = tmp(2*i-1,2*j-1) - end do - end do - endif - deallocate(tmp) - end select - -end subroutine get_grid_cell_vertices_2D - -! ============================================================================ -! returns global coordinate arrays fro given model component and mosaic tile number -! NOTE that in case of non-lat-lon grid those coordinates may have be not so -! meaningful, by the very nature of such grids. But presumably these 1D coordinate -! arrays are good enough for diag axis and such. -! ============================================================================ -subroutine get_grid_cell_centers_1D(component, tile, glon, glat) - character(len=*), intent(in) :: component - integer, intent(in) :: tile - real, intent(inout) :: glon(:),glat(:) - integer :: nlon, nlat - integer :: start(4), nread(4) - real, allocatable :: tmp(:,:) - character(len=MAX_FILE) :: filename1, filename2 - - call get_grid_size_for_one_tile(component, tile, nlon, nlat) - if (size(glon(:))/=nlon) & - call error_mesg ( module_name//'/get_grid_cell_centers_1D',& - 'Size of argument "glon" is not consistent with the grid size',FATAL) - if (size(glat(:))/=nlat) & - call error_mesg ( module_name//'/get_grid_cell_centers_1D',& - 'Size of argument "glat" is not consistent with the grid size',FATAL) - if(trim(component) .NE. 'ATM' .AND. component .NE. 'LND' .AND. component .NE. 'OCN') then - call error_mesg(module_name//'/get_grid_cell_centers_1D',& - 'Illegal component name "'//trim(component)//'": must be one of ATM, LND, or OCN',& - FATAL) - endif - - select case(get_grid_version()) - case(VERSION_0) - select case(trim(component)) - case('ATM','LND') - call read_data(grid_file, 'xt'//lowercase(component(1:1)), glon, no_domain=.true.) - call read_data(grid_file, 'yt'//lowercase(component(1:1)), glat, no_domain=.true.) - case('OCN') - call read_data(grid_file, "gridlon_t", glon, no_domain=.true.) - call read_data(grid_file, "gridlat_t", glat, no_domain=.true.) - end select - case(VERSION_1) - select case(trim(component)) - case('ATM','LND') - call read_data(grid_file, 'xt'//lowercase(component(1:1)), glon, no_domain=.true.) - call read_data(grid_file, 'yt'//lowercase(component(1:1)), glat, no_domain=.true.) - case('OCN') - call read_data(grid_file, "grid_x_T", glon, no_domain=.true.) - call read_data(grid_file, "grid_y_T", glat, no_domain=.true.) - end select - case(VERSION_2) - ! get the name of the mosaic file for the component - call read_data(grid_file, trim(lowercase(component))//'_mosaic_file', filename1) - filename1=grid_dir//trim(filename1) - ! get the name of the grid file for the component and tile - call read_data(filename1, 'gridfiles', filename2, level=tile) - filename2 = grid_dir//trim(filename2) - - start = 1; nread = 1 - nread(1) = 2*nlon+1; start(2) = 2 - allocate( tmp(2*nlon+1,1) ) - call read_data(filename2, "x", tmp, start, nread, no_domain=.TRUE.) - glon(1:nlon) = tmp(2:2*nlon:2,1) - deallocate(tmp) - allocate(tmp(1, 2*nlat+1)) - - start = 1; nread = 1 - nread(2) = 2*nlat+1; start(1) = 2 - call read_data(filename2, "y", tmp, start, nread, no_domain=.TRUE.) - glat(1:nlat) = tmp(1,2:2*nlat:2) - deallocate(tmp) - end select - - -end subroutine get_grid_cell_centers_1D - -! ============================================================================ -! returns grid cell centers for specified model component and mosaic tile number -! ============================================================================ -subroutine get_grid_cell_centers_2D(component, tile, lon, lat, domain) - character(len=*), intent(in) :: component - integer, intent(in) :: tile - real, intent(inout) :: lon(:,:),lat(:,:) - type(domain2d), intent(in), optional :: domain - ! local vars - character(len=MAX_NAME) :: varname - character(len=MAX_FILE) :: filename1, filename2 - integer :: nlon, nlat - integer :: i,j - real, allocatable :: buffer(:),tmp(:,:) - integer :: is,ie,js,je ! boundaries of our domain - integer :: i0,j0 ! offsets for coordinates - integer :: isg, jsg - integer :: start(4), nread(4) - - call get_grid_size_for_one_tile(component, tile, nlon, nlat) - if (present(domain)) then - call mpp_get_compute_domain(domain,is,ie,js,je) - else - is = 1 ; ie = nlon - js = 1 ; je = nlat - !--- domain normally should be present - call error_mesg ( module_name//'/get_grid_cell_centers',& - 'domain is not present, global data will be read', NOTE) - endif - i0 = -is+1; j0 = -js+1 - - ! verify that lon and lat sizes are consistent with the size of domain - if (size(lon,1)/=ie-is+1.or.size(lon,2)/=je-js+1) & - call error_mesg ( module_name//'/get_grid_cell_centers',& - 'Size of array "lon" is not consistent with the domain size',& - FATAL ) - if (size(lat,1)/=ie-is+1.or.size(lat,2)/=je-js+1) & - call error_mesg ( module_name//'/get_grid_cell_centers',& - 'Size of array "lat" is not consistent with the domain size',& - FATAL ) - if(trim(component) .NE. 'ATM' .AND. component .NE. 'LND' .AND. component .NE. 'OCN') then - call error_mesg(module_name//'/get_grid_cell_vertices',& - 'Illegal component name "'//trim(component)//'": must be one of ATM, LND, or OCN',& - FATAL) - endif - - select case(get_grid_version()) - case(VERSION_0) - select case (trim(component)) - case('ATM','LND') - allocate(buffer(max(nlon,nlat))) - ! read coordinates of grid cell vertices - call read_data(grid_file, 'xt'//lowercase(component(1:1)), buffer(1:nlon), no_domain=.true.) - do j = js,je - do i = is,ie - lon(i+i0,j+j0) = buffer(i) - enddo - enddo - call read_data(grid_file, 'yt'//lowercase(component(1:1)), buffer(1:nlat), no_domain=.true.) - do j = js,je - do i = is,ie - lat(i+i0,j+j0) = buffer(j) - enddo - enddo - deallocate(buffer) - case('OCN') - call read_data(grid_file, 'geolon_t', lon, no_domain=.not.present(domain), domain=domain ) - call read_data(grid_file, 'geolat_t', lat, no_domain=.not.present(domain), domain=domain ) - end select - case(VERSION_1) - select case(trim(component)) - case('ATM','LND') - allocate(buffer(max(nlon,nlat))) - ! read coordinates of grid cell vertices - call read_data(grid_file, 'xt'//lowercase(component(1:1)), buffer(1:nlon), no_domain=.true.) - do j = js,je - do i = is,ie - lon(i+i0,j+j0) = buffer(i) - enddo - enddo - call read_data(grid_file, 'yt'//lowercase(component(1:1)), buffer(1:nlat), no_domain=.true.) - do j = js,je - do i = is,ie - lat(i+i0,j+j0) = buffer(j) - enddo - enddo - deallocate(buffer) - case('OCN') - call read_data(grid_file, 'x_T', lon, no_domain=.not.present(domain), domain=domain ) - call read_data(grid_file, 'y_T', lat, no_domain=.not.present(domain), domain=domain ) - end select - case(VERSION_2) ! mosaic grid file - ! get the name of the mosaic file for the component - call read_data(grid_file, trim(lowercase(component))//'_mosaic_file', filename1) - filename1=grid_dir//trim(filename1) - ! get the name of the grid file for the component and tile - call read_data(filename1, 'gridfiles', filename2, level=tile) - filename2 = grid_dir//trim(filename2) - if(PRESENT(domain)) then - call mpp_get_global_domain(domain, xbegin=isg, ybegin=jsg) - start = 1; nread = 1 - start(1) = 2*(is-isg+1) - 1; nread(1) = 2*(ie-is)+3 - start(2) = 2*(js-jsg+1) - 1; nread(2) = 2*(je-js)+3 - allocate(tmp(nread(1), nread(2))) - call read_data(filename2, 'x', tmp, start, nread, no_domain=.TRUE.) - do j = 1, je-js+1 - do i = 1, ie-is+1 - lon(i,j) = tmp(2*i,2*j) - enddo - enddo - call read_data(filename2, 'y', tmp, start, nread, no_domain=.TRUE.) - do j = 1, je-js+1 - do i = 1, ie-is+1 - lat(i,j) = tmp(2*i,2*j) - enddo - enddo - else - allocate(tmp(2*nlon+1,2*nlat+1)) - call read_data(filename2, 'x', tmp, no_domain=.TRUE.) - do j = js,je - do i = is,ie - lon(i+i0,j+j0) = tmp(2*i,2*j) - end do - end do - call read_data(filename2, 'y', tmp, no_domain=.TRUE.) - do j = js,je - do i = is,ie - lat(i+i0,j+j0) = tmp(2*i,2*j) - end do - end do - deallocate(tmp) - endif - end select - -end subroutine get_grid_cell_centers_2D - - -! ============================================================================ -! given a model component, a layout, and (optionally) a halo size, returns a -! domain for current processor -! ============================================================================ -! this subroutine probably does not belong in the grid_mod -subroutine define_cube_mosaic ( component, domain, layout, halo, maskmap ) - character(len=*) , intent(in) :: component - type(domain2d) , intent(inout) :: domain - integer , intent(in) :: layout(2) - integer, optional, intent(in) :: halo - logical, optional, intent(in) :: maskmap(:,:,:) - - ! ---- local constants - - ! ---- local vars - character(len=MAX_NAME) :: varname - character(len=MAX_FILE) :: mosaic_file - integer :: ntiles ! number of tiles - integer :: ncontacts ! number of contacts between mosaic tiles - integer :: n - integer :: ng, pe_pos, npes ! halo size - integer, allocatable :: nlon(:), nlat(:), global_indices(:,:) - integer, allocatable :: pe_start(:), pe_end(:), layout_2d(:,:) - integer, allocatable :: tile1(:),tile2(:) - integer, allocatable :: is1(:),ie1(:),js1(:),je1(:) - integer, allocatable :: is2(:),ie2(:),js2(:),je2(:) - - call get_grid_ntiles(component,ntiles) - allocate(nlon(ntiles), nlat(ntiles)) - allocate(global_indices(4,ntiles)) - allocate(pe_start(ntiles),pe_end(ntiles)) - allocate(layout_2d(2,ntiles)) - call get_grid_size(component,nlon,nlat) - - pe_pos = mpp_root_pe() - do n = 1, ntiles - global_indices(:,n) = (/ 1, nlon(n), 1, nlat(n) /) - layout_2d (:,n) = layout - if(present(maskmap)) then - npes = count(maskmap(:,:,n)) - else - npes = layout(1)*layout(2) - endif - pe_start(n) = pe_pos - pe_end (n) = pe_pos + npes - 1 - pe_pos = pe_end(n) + 1 - enddo - - varname=trim(lowercase(component))//'_mosaic_file' - call read_data(grid_file,varname,mosaic_file) - mosaic_file = grid_dir//mosaic_file - - ! get the contact information from mosaic file - ncontacts = get_mosaic_ncontacts(mosaic_file) - allocate(tile1(ncontacts),tile2(ncontacts)) - allocate(is1(ncontacts),ie1(ncontacts),js1(ncontacts),je1(ncontacts)) - allocate(is2(ncontacts),ie2(ncontacts),js2(ncontacts),je2(ncontacts)) - call get_mosaic_contact(mosaic_file, tile1, tile2, & - is1, ie1, js1, je1, is2, ie2, js2, je2) - - ng = 0 - if(present(halo)) ng = halo - ! create the domain2d variable - call mpp_define_mosaic ( global_indices, layout_2d, domain, & - ntiles, ncontacts, tile1, tile2, & - is1, ie1, js1, je1, & - is2, ie2, js2, je2, & - pe_start=pe_start, pe_end=pe_end, symmetry=.true., & - shalo = ng, nhalo = ng, whalo = ng, ehalo = ng, & - maskmap = maskmap, & - name = trim(component)//'Cubic-Sphere Grid' ) - - deallocate(nlon,nlat,global_indices,pe_start,pe_end,layout_2d) - deallocate(tile1,tile2) - deallocate(is1,ie1,js1,je1) - deallocate(is2,ie2,js2,je2) - -end subroutine define_cube_mosaic - -end module grid_mod diff --git a/sorc/fre-nctools.fd/shared/mosaic/grid.html b/sorc/fre-nctools.fd/shared/mosaic/grid.html deleted file mode 100644 index 1b61d16303..0000000000 --- a/sorc/fre-nctools.fd/shared/mosaic/grid.html +++ /dev/null @@ -1,278 +0,0 @@ - - - - Module grid_mod - - - - -PUBLIC INTERFACE ~ - PUBLIC DATA ~ - PUBLIC ROUTINES ~ - NAMELIST ~ - DIAGNOSTIC FIELDS ~ - ERROR MESSAGES ~ - REFERENCES ~ - NOTES - -
-

Module grid_mod

- - -
- Contact: 
- Reviewers: 
- Change History: 
-
-
- - -
-

OVERVIEW

- -

Provides a set of subroutines for reading grid spec files

- - -
-Historically, there are several different formats of the grid specification -files. Though all of them are NetCDF files, they differ in the information -they contain, and in the way this information is stored. For example, the -geographical coordinates of ocean grid cells can be stored in differently named variables in -grid_spec.nc, or the can be in a separate component mosaic file, referred to from grid_spec.nc. -

-This module aims to isolate a casual user from the complexity of grid spec -file parsing and to provide a unified interface for access to the grid data. - -At the same time, it allows the developers of the grid specifications to keep enhancing the -internal structure transparently for the users of this module, as long as the -interfaces of the module subroutines are preserved. -

- -

OTHER MODULES USED

-
-
  constants_mod 
-        fms_mod
-     mosaic_mod
-mpp_domains_mod 
-
- - -
-

PUBLIC INTERFACE

-
-
get_grid_ntiles
returns number of mosaic tiles
-
get_grid_size
returns horizontal size of the grid, or sizes of the mosaic tiles
-
get_grid_cell_centers
reads arrays of grid cell center point coordinates
-
get_grid_cell_vertices
reads arrays of grid cell verices coordinates
-
get_grid_cell_area
reads an array of grid cell areas
-
get_grid_comp_area
reads an array of the areas for a component model
-
- - - - -
-

PUBLIC ROUTINES

- -
    - - -
  1. -

    get_grid_ntiles

    -
    subroutine get_grid_ntiles(component,ntiles)
    -
    -
    DESCRIPTION
    - Given a component name, returns the number of mosaic tiles for the component. For - pre-mosaic grid spec files returns 1. -
    -
    INPUT
    - - - - - -
    componentA name of the component, 'ATM', 'OCN', or 'LND'
    - [character(len=*)]
    -
    -
    OUTPUT
    - - - - -
    ntilesnumber of mosaic tiles for the component
    - [integer]
    -
    -
    - - -
  2. -

    get_grid_size

    -
    -subroutine get_grid_size(component,nx,ny)
    -subroutine get_grid_size(component,tile,nx,ny)
    -
    -
    DESCRIPTION
    - Given a component name, returns the size of the grid for all mosaic tiles, or for the - specified tile. -
    -
    INPUT
    - - - - - - -
    componentA name of the component: 'ATM', 'OCN', or 'LND'
    - [character(len=*)]
    tileNumber of mosaic tile
    - [integer]
    -
    -
    OUTPUT
    - - - - - -
    nx, nynumber of grid cell along respective axis, either for all mosaic tiles, - or for a specified mosaic tile
    - [integer]
    - [integer, dimension(:)] -
    -
    -
    - - -
  3. -

    get_grid_cell_centers

    -
    subroutine get_grid_cell_centers(component,tile,glon,glat)
    -
    -
    DESCRIPTION
    - Given a component name and a mosaic tile number, returns longitudes and latitudes of grid ceneters - for the specified mosaic tile. -
    -
    INPUT
    - - - - - - - -
    componentA name of the component, 'ATM', 'OCN', or 'LND'
    [character(len=*)]
    tileNumber of mosaic tile
    - [integer]
    -
    -
    OUTPUT
    - - - - - - - - -
    glonlongitudes of grid cell centers, degree
    [real, dimension(:,:)]
    glatlatatitdes of grid cell centers, degree
    [real, dimension(:,:)]
    -
    -
    - - -
  4. -

    get_grid_cell_vertices

    -
    subroutine get_grid_cell_vertices(component,tile,glonb,glatb)
    -
    -
    DESCRIPTION
    - Given a component name and a mosaic tile number, returns longitudes and latitudes of grid vertices - for the specified mosaic tile. -
    -
    INPUT
    - - - - - - - -
    componentA name of the component, 'ATM', 'OCN', or 'LND'
    [character(len=*)]
    tileNumber of mosaic tile
    - [integer]
    -
    -
    OUTPUT
    - - - - - - - - -
    glonblongitudes of grid cell vertices, degree
    [real, dimension(:,:)]
    glatblatatitdes of grid cell vertices, degree
    [real, dimension(:,:)]
    -
    -
    - - -
  5. -

    get_grid_cell_area

    -
    subroutine get_grid_cell_area(component,tile,cellarea)
    -
    -
    DESCRIPTION
    - Given a component name and a mosaic tile number, returns an array of areas - for the specified tile. Note that the returnd values are full - grid cell areas, so for example for land it will not depend on the fraction of - land actually present in the grid cell. -
    -
    INPUT
    - - - - - - - -
    componentA name of the component, 'ATM', 'OCN', or 'LND'
    [character(len=*)]
    tileNumber of mosaic tile
    - [integer]
    -
    -
    OUTPUT
    - - - - - -
    cellareaarray of grid cell areas, m2
    [real, dimension(:,:)]
    -
    -
    - - -
  6. -

    get_grid_cell_area

    -
    subroutine get_grid_comp_area(component,tile,area)
    -
    -
    DESCRIPTION
    - Given a component name and a mosaic tile number, returns an array of component - model areas for the specified tile. Note that the returnd values are the areas - for each grid cell that belong to the specified component, so for example for - land it will depend on the fraction of land actually present in the grid cell. - For atmosphere the area returned by this routine is the same as the cell area - area returned by get_grid_cell_area -
    -
    INPUT
    - - - - - - - -
    componentA name of the component, 'ATM', 'OCN', or 'LND'
    [character(len=*)]
    tileNumber of mosaic tile
    - [integer]
    -
    -
    OUTPUT
    - - - - - -
    areaarray of grid cell areas, m2
    [real, dimension(:,:)]
    -
    -
    - -
-
- - diff --git a/sorc/fre-nctools.fd/shared/mosaic/interp.c b/sorc/fre-nctools.fd/shared/mosaic/interp.c deleted file mode 100644 index 4c8ee80934..0000000000 --- a/sorc/fre-nctools.fd/shared/mosaic/interp.c +++ /dev/null @@ -1,379 +0,0 @@ -/* - Copyright 2011 NOAA Geophysical Fluid Dynamics Lab, Princeton, NJ - This program is distributed under the terms of the GNU General Public - License. See the file COPYING contained in this directory -*/ -#include -#include -#include -#include "mosaic_util.h" -#include "interp.h" -#include "create_xgrid.h" - -/********************************************************************* - void cublic_spline_sp(size1, size2, grid1, grid2, data1, data2) - - Calculate a shape preserving cubic spline. Monotonicity is ensured over each subinterval - unlike classic cubic spline interpolation. - It will be used to interpolation data in 1-D space. - - INPUT Arguments: - grid1: grid for input data grid. - grid2: grid for output data grid. - size1: size of input grid. - size2: size of output grid. - data1: input data associated with grid1. - - OUTPUT ARGUMENTS: - data2: output data associated with grid2. (OUTPUT) - -*********************************************************************/ - -void cubic_spline_sp(int size1, int size2, const double *grid1, const double *grid2, const double *data1, - double *data2 ) -{ - double *delta=NULL, *d=NULL, *dh=NULL, *b=NULL, *c = NULL; - double h, h2, s, w1, w2, p; - int i, k, n, klo, khi, kmax; - - for(i=1; i grid1[size1-1]) error_handler("cubic_spline_sp: grid2 lies outside grid1"); - } - - if(size1 < 2) error_handler("cubic_spline_sp: the size of input grid should be at least 2"); - if(size1 == 2) { /* when size1 is 2, it just reduced to a linear interpolation */ - p = (data1[1]-data1[0])/(grid1[1]-grid1[0]); - for(i=0; i< size2; i++) data2[i] = p*(grid2[i] - grid1[0]) + data1[0]; - return; - } - delta = (double *)malloc((size1-1)*sizeof(double)); - dh = (double *)malloc((size1-1)*sizeof(double)); - d = (double *)malloc(size1*sizeof(double)); - for(k=0;k 0.0 ) { - w1 = 2.0*dh[k] + dh[k-1]; - w2 = dh[k] + 2.0*dh[k-1]; - d[k] = (w1+w2)/(w1/delta[k-1]+w2/delta[k]); - } - else { - d[k] = 0.0; - } - } -/* -End slopes -*/ - kmax = size1-1; - d[0] = ((2.0*dh[0] + dh[1])*delta[0] - dh[0]*delta[1])/(dh[0]+dh[1]); - - if ( d[0]*delta[0] < 0.0 ) { - d[0] = 0.0; - } - else { - if ( delta[0]*delta[1] < 0.0 && abs(d[0]) > abs(3.0*delta[0])) { - d[0]=3.0*delta[0]; - } - } - - d[kmax] = ((2.0*dh[kmax-1] + dh[kmax-2])*delta[kmax-1] - dh[kmax-1]*delta[kmax-2])/(dh[kmax-1]+dh[kmax-2]); - if ( d[kmax]*delta[kmax-1] < 0.0 ) { - d[kmax] = 0.0; - } - else { - if ( delta[kmax-1]*delta[kmax-2] < 0.0 && abs(d[kmax]) > abs(3.0*delta[kmax-1])) { - d[kmax]=3.0*delta[kmax-1]; - } - } - -/* Precalculate coefficients */ - b = (double *)malloc((size1-1)*sizeof(double)); - c = (double *)malloc((size1-1)*sizeof(double)); - for (k=0; k grid1[size1-1]) error_handler("cubic_spline: grid2 lies outside grid1"); - } - - if(size1 < 2) error_handler("cubic_spline: the size of input grid should be at least 2"); - if(size1 == 2) { /* when size1 is 2, it just reduced to a linear interpolation */ - p = (data1[1]-data1[0])/(grid1[1]-grid1[0]); - for(i=0; i< size2; i++) data2[i] = p*(grid2[i] - grid1[0]) + data1[0]; - return; - } - y2 = (double *)malloc(size1*sizeof(double)); - u = (double *)malloc(size1*sizeof(double)); - if (yp1 >.99e30) { - y2[0]=0.; - u[0]=0.; - } - else { - y2[0]=-0.5; - u[0]=(3./(grid1[1]-grid1[0]))*((data1[1]-data1[0])/(grid1[1]-grid1[0])-yp1); - } - - for(i=1; i .99e30) { - qn=0.; - un=0.; - } - else { - qn=0.5; - un=(3./(grid1[size1-1]-grid1[size1-2]))*(ypn-(data1[size1-1]-data1[size1-2])/(grid1[size1-1]-grid1[size1-2])); - } - - y2[size1-1]=(un-qn*u[size1-2])/(qn*y2[size1-2]+1.); - - for(k=size1-2; k>=0; k--) y2[k] = y2[k]*y2[k+1]+u[k]; - - /* interpolate data onto grid2 */ - for(k=0; k grid2[0] ) error_handler("interp.c: grid2 lies outside grid1"); - if (grid1[nk1-1] < grid2[nk2-1] ) error_handler("interp.c: grid2 lies outside grid1"); - - for(k=0; k -! Zhi Liang -! - -! - -! -! mosaic_mod implements some utility routines to read mosaic information. -! - -! -! mosaic_mod implements some utility routines to read mosaic information. -! The information includes number of tiles and contacts in the mosaic, -! mosaic grid resolution of each tile, mosaic contact information, mosaic exchange -! grid information. Each routine will call a C-version routine to get these information. -! - -use mpp_mod, only : mpp_error, FATAL, mpp_pe, mpp_root_pe -use mpp_io_mod, only : MPP_MULTI -use fms_io_mod, only : dimension_size, field_exist, read_data, read_compressed -use constants_mod, only : PI, RADIUS - -implicit none -private - -character(len=*), parameter :: & - grid_dir = 'INPUT/' ! root directory for all grid files - -integer, parameter :: & - MAX_NAME = 256, & ! max length of the variable names - MAX_FILE = 1024, & ! max length of the file names - X_REFINE = 2, & ! supergrid size/model grid size in x-direction - Y_REFINE = 2 ! supergrid size/model grid size in y-direction - -! --- public interface - - -public :: get_mosaic_ntiles -public :: get_mosaic_ncontacts -public :: get_mosaic_grid_sizes -public :: get_mosaic_contact -public :: get_mosaic_xgrid_size -public :: get_mosaic_xgrid -public :: calc_mosaic_grid_area -public :: calc_mosaic_grid_great_circle_area -public :: is_inside_polygon - -logical :: module_is_initialized = .true. -! version information varaible - character(len=128) :: version = '$Id$' - character(len=128) :: tagname = '$Name$' - -contains - -!####################################################################### - -! -! -! Initialize the mosaic_mod. -! -! -! Initialization routine for the mosaic module. It writes the -! version information to the log file. -! -! -subroutine mosaic_init() - - if (module_is_initialized) return - module_is_initialized = .TRUE. - -!--------- write version number and namelist ------------------ -! call write_version_number (version, tagname) - -end subroutine mosaic_init -! - -!####################################################################### -! -! -! return exchange grid size of mosaic xgrid file. -! -! -! return exchange grid size of mosaic xgrid file. -! -! -! -! The file that contains exchange grid information. -! - function get_mosaic_xgrid_size(xgrid_file) - character(len=*), intent(in) :: xgrid_file - integer :: get_mosaic_xgrid_size - - get_mosaic_xgrid_size = dimension_size(xgrid_file, "ncells", no_domain=.TRUE.) - - return - - end function get_mosaic_xgrid_size -! -!####################################################################### -! -! -! get exchange grid information from mosaic xgrid file. -! -! -! get exchange grid information from mosaic xgrid file. -! -! -! -! The file that contains exchange grid information. -! -! -! number of exchange grid in xgrid_file -! -! -! i and j-index in grid 1 of exchange grid. -! -! -! i and j-index in grid 2 of exchange grid. -! -! -! area of the exchange grid. The area is scaled to represent unit earth area. -! - subroutine get_mosaic_xgrid(xgrid_file, i1, j1, i2, j2, area, ibegin, iend) - character(len=*), intent(in) :: xgrid_file - integer, intent(inout) :: i1(:), j1(:), i2(:), j2(:) - real, intent(inout) :: area(:) - integer, optional, intent(in) :: ibegin, iend - - integer :: start(4), nread(4), istart - real, dimension(2, size(i1(:))) :: tile1_cell, tile2_cell - integer :: nxgrid, n - real :: garea - real :: get_global_area; - - garea = get_global_area(); - - ! When start and nread present, make sure nread(1) is the same as the size of the data - if(present(ibegin) .and. present(iend)) then - istart = ibegin - nxgrid = iend - ibegin + 1 - if(nxgrid .NE. size(i1(:))) call mpp_error(FATAL, "get_mosaic_xgrid: nxgrid .NE. size(i1(:))") - if(nxgrid .NE. size(j1(:))) call mpp_error(FATAL, "get_mosaic_xgrid: nxgrid .NE. size(j1(:))") - if(nxgrid .NE. size(i2(:))) call mpp_error(FATAL, "get_mosaic_xgrid: nxgrid .NE. size(i2(:))") - if(nxgrid .NE. size(j2(:))) call mpp_error(FATAL, "get_mosaic_xgrid: nxgrid .NE. size(j2(:))") - if(nxgrid .NE. size(area(:))) call mpp_error(FATAL, "get_mosaic_xgrid: nxgrid .NE. size(area(:))") - else - istart = 1 - nxgrid = size(i1(:)) - endif - - start = 1; nread = 1 - start(1) = istart; nread(1) = nxgrid - call read_compressed(xgrid_file, 'xgrid_area', area, start=start, nread=nread, threading=MPP_MULTI) - start = 1; nread = 1 - nread(1) = 2 - start(2) = istart; nread(2) = nxgrid - call read_compressed(xgrid_file, 'tile1_cell', tile1_cell, start=start, nread=nread, threading=MPP_MULTI) - call read_compressed(xgrid_file, 'tile2_cell', tile2_cell, start=start, nread=nread, threading=MPP_MULTI) - - do n = 1, nxgrid - i1(n) = tile1_cell(1,n) - j1(n) = tile1_cell(2,n) - i2(n) = tile2_cell(1,n) - j2(n) = tile2_cell(2,n) - area(n) = area(n)/garea - end do - - return - - end subroutine get_mosaic_xgrid -! - - !############################################################################### - ! - ! - ! get number of tiles in the mosaic_file. - ! - ! - ! get number of tiles in the mosaic_file. - ! - ! - ! - ! The file that contains mosaic information. - ! - function get_mosaic_ntiles(mosaic_file) - character(len=*), intent(in) :: mosaic_file - integer :: get_mosaic_ntiles - - get_mosaic_ntiles = dimension_size(mosaic_file, "ntiles") - - return - - end function get_mosaic_ntiles -! - - !############################################################################### - ! - ! - ! get number of contacts in the mosaic_file. - ! - ! - ! get number of contacts in the mosaic_file. - ! - ! - ! - ! The file that contains mosaic information. - ! - function get_mosaic_ncontacts( mosaic_file) - character(len=*), intent(in) :: mosaic_file - integer :: get_mosaic_ncontacts - - character(len=len_trim(mosaic_file)+1) :: mfile - integer :: strlen - integer :: read_mosaic_ncontacts - - if(field_exist(mosaic_file, "contacts") ) then - get_mosaic_ncontacts = dimension_size(mosaic_file, "ncontact", no_domain=.TRUE.) - else - get_mosaic_ncontacts = 0 - endif - - return - - end function get_mosaic_ncontacts -! - - - !############################################################################### - ! - ! - ! get grid size of each tile from mosaic_file - ! - ! - ! get grid size of each tile from mosaic_file - ! - ! - ! - ! The file that contains mosaic information. - ! - ! - ! List of grid size in x-direction of each tile. - ! - ! - ! List of grid size in y-direction of each tile. - ! - subroutine get_mosaic_grid_sizes( mosaic_file, nx, ny) - character(len=*), intent(in) :: mosaic_file - integer, dimension(:), intent(inout) :: nx, ny - - character(len=MAX_FILE) :: gridfile - integer :: ntiles, n - - ntiles = get_mosaic_ntiles(mosaic_file) - if(ntiles .NE. size(nx(:)) .OR. ntiles .NE. size(ny(:)) ) then - call mpp_error(FATAL, "get_mosaic_grid_sizes: size of nx/ny does not equal to ntiles") - endif - do n = 1, ntiles - call read_data(mosaic_file, 'gridfiles', gridfile, level=n) - gridfile = grid_dir//trim(gridfile) - nx(n) = dimension_size(gridfile, "nx") - ny(n) = dimension_size(gridfile, "ny") - if(mod(nx(n),x_refine) .NE. 0) call mpp_error(FATAL, "get_mosaic_grid_sizes: nx is not divided by x_refine"); - if(mod(ny(n),y_refine) .NE. 0) call mpp_error(FATAL, "get_mosaic_grid_sizes: ny is not divided by y_refine"); - nx(n) = nx(n)/x_refine; - ny(n) = ny(n)/y_refine; - enddo - - return - - end subroutine get_mosaic_grid_sizes -! - - !############################################################################### - ! - ! - ! get contact information from mosaic_file - ! - ! - ! get contact information from mosaic_file - ! - ! - ! - ! The file that contains mosaic information. - ! - ! - ! list tile number in tile 1 of each contact. - ! - ! - ! list tile number in tile 2 of each contact. - ! - ! - ! list starting i-index in tile 1 of each contact. - ! - ! - ! list ending i-index in tile 1 of each contact. - ! - ! - ! list starting j-index in tile 1 of each contact. - ! - ! - ! list ending j-index in tile 1 of each contact. - ! - ! - ! list starting i-index in tile 2 of each contact. - ! - ! - ! list ending i-index in tile 2 of each contact. - ! - ! - ! list starting j-index in tile 2 of each contact. - ! - ! - ! list ending j-index in tile 2 of each contact. - ! - subroutine get_mosaic_contact( mosaic_file, tile1, tile2, istart1, iend1, jstart1, jend1, & - istart2, iend2, jstart2, jend2) - character(len=*), intent(in) :: mosaic_file - integer, dimension(:), intent(inout) :: tile1, tile2 - integer, dimension(:), intent(inout) :: istart1, iend1, jstart1, jend1 - integer, dimension(:), intent(inout) :: istart2, iend2, jstart2, jend2 - character(len=MAX_NAME), allocatable :: gridtiles(:) - character(len=MAX_NAME) :: contacts - character(len=MAX_NAME) :: strlist(8) - integer :: ntiles, n, m, ncontacts, nstr, ios - integer :: i1_type, j1_type, i2_type, j2_type - logical :: found - - ntiles = get_mosaic_ntiles(mosaic_file) - allocate(gridtiles(ntiles)) - do n = 1, ntiles - call read_data(mosaic_file, 'gridtiles', gridtiles(n), level=n) - enddo - - ncontacts = get_mosaic_ncontacts(mosaic_file) - - do n = 1, ncontacts - call read_data(mosaic_file, "contacts", contacts, level=n) - nstr = parse_string(contacts, ":", strlist) - if(nstr .NE. 4) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): number of elements in contact seperated by :/:: should be 4") - found = .false. - do m = 1, ntiles - if(trim(gridtiles(m)) == trim(strlist(2)) ) then !found the tile name - found = .true. - tile1(n) = m - exit - endif - enddo - - if(.not.found) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact):the first tile name specified in contact is not found in tile list") - - found = .false. - do m = 1, ntiles - if(trim(gridtiles(m)) == trim(strlist(4)) ) then !found the tile name - found = .true. - tile2(n) = m - exit - endif - enddo - - if(.not.found) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact):the second tile name specified in contact is not found in tile list") - - call read_data(mosaic_file, "contact_index", contacts, level=n) - nstr = parse_string(contacts, ":,", strlist) - if(nstr .NE. 8) then - if(mpp_pe()==mpp_root_pe()) then - print*, "nstr is ", nstr - print*, "contacts is ", contacts - do m = 1, nstr - print*, "strlist is ", trim(strlist(m)) - enddo - endif - call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): number of elements in contact_index seperated by :/, should be 8") - endif - read(strlist(1), *, iostat=ios) istart1(n) - if(ios .NE. 0) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): Error in reading istart1") - read(strlist(2), *, iostat=ios) iend1(n) - if(ios .NE. 0) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): Error in reading iend1") - read(strlist(3), *, iostat=ios) jstart1(n) - if(ios .NE. 0) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): Error in reading jstart1") - read(strlist(4), *, iostat=ios) jend1(n) - if(ios .NE. 0) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): Error in reading jend1") - read(strlist(5), *, iostat=ios) istart2(n) - if(ios .NE. 0) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): Error in reading istart2") - read(strlist(6), *, iostat=ios) iend2(n) - if(ios .NE. 0) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): Error in reading iend2") - read(strlist(7), *, iostat=ios) jstart2(n) - if(ios .NE. 0) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): Error in reading jstart2") - read(strlist(8), *, iostat=ios) jend2(n) - if(ios .NE. 0) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): Error in reading jend2") - - i1_type = transfer_to_model_index(istart1(n), iend1(n), x_refine) - j1_type = transfer_to_model_index(jstart1(n), jend1(n), y_refine) - i2_type = transfer_to_model_index(istart2(n), iend2(n), x_refine) - j2_type = transfer_to_model_index(jstart2(n), jend2(n), y_refine) - - if( i1_type == 0 .AND. j1_type == 0 ) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): istart1==iend1 and jstart1==jend1") - if( i2_type == 0 .AND. j2_type == 0 ) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): istart2==iend2 and jstart2==jend2") - if( i1_type + j1_type .NE. i2_type + j2_type ) call mpp_error(FATAL, & - "mosaic_mod(get_mosaic_contact): It is not a line or overlap contact") - - enddo - - deallocate(gridtiles) - - end subroutine get_mosaic_contact -! - - -function transfer_to_model_index(istart, iend, refine_ratio) - integer, intent(inout) :: istart, iend - integer :: refine_ratio - integer :: transfer_to_model_index - integer :: istart_in, iend_in - - istart_in = istart - iend_in = iend - - if( istart_in == iend_in ) then - transfer_to_model_index = 0 - istart = (istart_in + 1)/refine_ratio - iend = istart - else - transfer_to_model_index = 1 - if( iend_in > istart_in ) then - istart = istart_in + 1 - iend = iend_in - else - istart = istart_in - iend = iend_in + 1 - endif - if( mod(istart, refine_ratio) .NE. 0 .OR. mod(iend,refine_ratio) .NE. 0) call mpp_error(FATAL, & - "mosaic_mod(transfer_to_model_index): mismatch between refine_ratio and istart/iend") - istart = istart/refine_ratio - iend = iend/refine_ratio - - endif - - return - -end function transfer_to_model_index - - !############################################################################### - ! - ! - ! calculate grid cell area. - ! - ! - ! calculate the grid cell area. The purpose of this routine is to make - ! sure the consistency between model grid area and exchange grid area. - ! - ! - ! - ! geographical longitude of grid cell vertices. - ! - ! - ! geographical latitude of grid cell vertices. - ! - ! - ! grid cell area. - ! - subroutine calc_mosaic_grid_area(lon, lat, area) - real, dimension(:,:), intent(in) :: lon - real, dimension(:,:), intent(in) :: lat - real, dimension(:,:), intent(inout) :: area - integer :: nlon, nlat - - nlon = size(area,1) - nlat = size(area,2) - ! make sure size of lon, lat and area are consitency - if( size(lon,1) .NE. nlon+1 .OR. size(lat,1) .NE. nlon+1 ) & - call mpp_error(FATAL, "mosaic_mod: size(lon,1) and size(lat,1) should equal to size(area,1)+1") - if( size(lon,2) .NE. nlat+1 .OR. size(lat,2) .NE. nlat+1 ) & - call mpp_error(FATAL, "mosaic_mod: size(lon,2) and size(lat,2) should equal to size(area,2)+1") - - call get_grid_area( nlon, nlat, lon, lat, area) - - end subroutine calc_mosaic_grid_area - ! - - !############################################################################### - ! - ! - ! calculate grid cell area using great cirlce algorithm - ! - ! - ! calculate the grid cell area. The purpose of this routine is to make - ! sure the consistency between model grid area and exchange grid area. - ! - ! - ! - ! geographical longitude of grid cell vertices. - ! - ! - ! geographical latitude of grid cell vertices. - ! - ! - ! grid cell area. - ! - subroutine calc_mosaic_grid_great_circle_area(lon, lat, area) - real, dimension(:,:), intent(in) :: lon - real, dimension(:,:), intent(in) :: lat - real, dimension(:,:), intent(inout) :: area - integer :: nlon, nlat - - - nlon = size(area,1) - nlat = size(area,2) - ! make sure size of lon, lat and area are consitency - if( size(lon,1) .NE. nlon+1 .OR. size(lat,1) .NE. nlon+1 ) & - call mpp_error(FATAL, "mosaic_mod: size(lon,1) and size(lat,1) should equal to size(area,1)+1") - if( size(lon,2) .NE. nlat+1 .OR. size(lat,2) .NE. nlat+1 ) & - call mpp_error(FATAL, "mosaic_mod: size(lon,2) and size(lat,2) should equal to size(area,2)+1") - - call get_grid_great_circle_area( nlon, nlat, lon, lat, area) - - end subroutine calc_mosaic_grid_great_circle_area - ! - - !##################################################################### - ! This function check if a point (lon1,lat1) is inside a polygon (lon2(:), lat2(:)) - ! lon1, lat1, lon2, lat2 are in radians. - function is_inside_polygon(lon1, lat1, lon2, lat2 ) - real, intent(in) :: lon1, lat1 - real, intent(in) :: lon2(:), lat2(:) - logical :: is_inside_polygon - real, dimension(size(lon2(:))) :: x2, y2, z2 - integer :: npts, isinside - integer :: inside_a_polygon - - npts = size(lon2(:)) - - isinside = inside_a_polygon(lon1, lat1, npts, lon2, lat2) - if(isinside == 1) then - is_inside_polygon = .TRUE. - else - is_inside_polygon = .FALSE. - endif - - return - - end function is_inside_polygon - - function parse_string(string, set, value) - character(len=*), intent(in) :: string - character(len=*), intent(in) :: set - character(len=*), intent(out) :: value(:) - integer :: parse_string - integer :: nelem, length, first, last - - nelem = size(value(:)) - length = len_trim(string) - - first = 1; last = 0 - parse_string = 0 - - do while(first .LE. length) - parse_string = parse_string + 1 - if(parse_string>nelem) then - call mpp_error(FATAL, "mosaic_mod(parse_string) : number of element is greater than size(value(:))") - endif - last = first - 1 + scan(string(first:length), set) - if(last == first-1 ) then ! not found, end of string - value(parse_string) = string(first:length) - exit - else - if(last <= first) then - call mpp_error(FATAL, "mosaic_mod(parse_string) : last <= first") - endif - value(parse_string) = string(first:(last-1)) - first = last + 1 - ! scan to make sure the next is not the character in the set - do while (first == last+1) - last = first - 1 + scan(string(first:length), set) - if(last == first) then - first = first+1 - else - exit - endif - end do - endif - enddo - - return - - end function parse_string - - - -end module mosaic_mod - - -#ifdef TEST_MOSAIC -program test_mosaic - -use mosaic_mod, only : get_mosaic_ntiles, get_mosaic_ncontacts -use mosaic_mod, only : get_mosaic_grid_sizes, get_mosaic_contact - -implicit none - -integer :: ntiles, ncontacts, n -integer, allocatable :: tile1(:), tile2(:), nx(:), ny(:) -integer, allocatable :: istart1(:), iend1(:), jstart1(:), jend1(:) -integer, allocatable :: istart2(:), iend2(:), jstart2(:), jend2(:) -character(len=128) :: mosaic_file = "INPUT/mosaic.nc" - -ntiles = get_mosaic_ntiles(mosaic_file) -ncontacts = get_mosaic_ncontacts(mosaic_file) -allocate(nx(ntiles), ny(ntiles)) -allocate(tile1(ncontacts), tile2(ncontacts) ) -allocate(istart1(ncontacts), iend1(ncontacts), jstart1(ncontacts), jend1(ncontacts) ) -allocate(istart2(ncontacts), iend2(ncontacts), jstart2(ncontacts), jend2(ncontacts) ) - -call get_mosaic_grid_sizes(mosaic_file, nx, ny ) -call get_mosaic_contact(mosaic_file, tile1, tile2, istart1, iend1, jstart1, jend1, istart2, iend2, jstart2, jend2) - -! print out information - -print '(a,i3,a,a)', "****** There is ", ntiles, " tiles in ", trim(mosaic_file) -do n = 1, ntiles - print '(a,i3,a,i3,a,i3)', " tile = ", n, ", nx = ", nx(n), ", ny = ", ny(n) -end do - -print '(a,i3,a,a)', "****** There is ", ncontacts, " contacts in ", trim(mosaic_file) -do n = 1, ncontacts - print '(a,i3,a,i3,a,i3,a,i4,a,i4,a,i4,a,i4,a,i4,a,i4,a,i4,a,i4)', & - "contact=", n, ": tile1=", tile1(n), " tile2=", tile2(n), & - " is1=", istart1(n), " ie1=", iend1(n), & - " js1=", jstart1(n), " je1=", jend1(n), & - " is2=", istart2(n), " ie2=", iend2(n), & - " js2=", jstart2(n), " je2=", jend2(n) -end do - -deallocate(tile1, tile2, nx, ny) -deallocate(istart1, iend1, jstart1, jend1) -deallocate(istart2, iend2, jstart2, jend2) - - -end program test_mosaic -#endif diff --git a/sorc/fre-nctools.fd/shared/mosaic/mosaic_util.c b/sorc/fre-nctools.fd/shared/mosaic/mosaic_util.c deleted file mode 100644 index 995fad7cb0..0000000000 --- a/sorc/fre-nctools.fd/shared/mosaic/mosaic_util.c +++ /dev/null @@ -1,1351 +0,0 @@ -#include -#include -#include -#include -#ifdef use_libMPI -#include -#endif -#include "mosaic_util.h" -#include "constant.h" - -#define HPI (0.5*M_PI) -#define TPI (2.0*M_PI) -#define TOLORENCE (1.e-6) -#define EPSLN8 (1.e-8) -#define EPSLN10 (1.e-10) -#define EPSLN15 (1.e-15) -#define EPSLN30 (1.e-30) -/*********************************************************** - void error_handler(char *str) - error handler: will print out error message and then abort -***********************************************************/ -int reproduce_siena = 0; - -void set_reproduce_siena_true(void) -{ - reproduce_siena = 1; -} - -#ifndef __AIX -void set_reproduce_siena_true_(void) -{ - reproduce_siena = 1; -} -#endif - - -void error_handler(const char *msg) -{ - fprintf(stderr, "FATAL Error: %s\n", msg ); -#ifdef use_libMPI - MPI_Abort(MPI_COMM_WORLD, -1); -#else - exit(1); -#endif -}; /* error_handler */ - -/********************************************************************* - - int nearest_index(double value, const double *array, int ia) - - return index of nearest data point within "array" corresponding to "value". - if "value" is outside the domain of "array" then nearest_index = 0 - or = size(array)-1 depending on whether array(0) or array(ia-1) is - closest to "value" - - Arguments: - value: arbitrary data...same units as elements in "array" - array: array of data points (must be monotonically increasing) - ia : size of array. - - ********************************************************************/ -int nearest_index(double value, const double *array, int ia) -{ - int index, i; - int keep_going; - - for(i=1; i array[ia-1]) - index = ia-1; - else - { - i=0; - keep_going = 1; - while (i < ia && keep_going) { - i = i+1; - if (value <= array[i]) { - index = i; - if (array[i]-value > value-array[i-1]) index = i-1; - keep_going = 0; - } - } - } - return index; - -}; - -/******************************************************************/ - -void tokenize(const char * const string, const char *tokens, unsigned int varlen, - unsigned int maxvar, char * pstring, unsigned int * const nstr) -{ - size_t i, j, nvar, len, ntoken; - int found, n; - - nvar = 0; j = 0; - len = strlen(string); - ntoken = strlen(tokens); - /* here we use the fact that C array [][] is contiguous in memory */ - if(string[0] == 0)error_handler("Error from tokenize: to-be-parsed string is empty"); - - for(i = 0; i < len; i ++){ - if(string[i] != ' ' && string[i] != '\t'){ - found = 0; - for(n=0; n= maxvar) error_handler("Error from tokenize: number of variables exceeds limit"); - } - } - else { - *(pstring + nvar*varlen + j++) = string[i]; - if(j >= varlen ) error_handler("error from tokenize: variable name length exceeds limit during tokenization"); - } - } - } - *(pstring + nvar*varlen + j) = 0; - - *nstr = ++nvar; - -} - -/******************************************************************************* - double maxval_double(int size, double *data) - get the maximum value of double array -*******************************************************************************/ -double maxval_double(int size, const double *data) -{ - int n; - double maxval; - - maxval = data[0]; - for(n=1; n maxval ) maxval = data[n]; - } - - return maxval; - -}; /* maxval_double */ - - -/******************************************************************************* - double minval_double(int size, double *data) - get the minimum value of double array -*******************************************************************************/ -double minval_double(int size, const double *data) -{ - int n; - double minval; - - minval = data[0]; - for(n=1; n M_PI) dx = dx - 2.0*M_PI; - if(dx < -M_PI) dx = dx + 2.0*M_PI; - - return (dx*(sin(ur_lat)-sin(ll_lat))*RADIUS*RADIUS ) ; - -}; /* box_area */ - - -/*------------------------------------------------------------------------------ - double poly_area(const x[], const y[], int n) - obtains area of input polygon by line integrating -sin(lat)d(lon) - Vertex coordinates must be in degrees. - Vertices must be listed counter-clockwise around polygon. - grid is in radians. - ----------------------------------------------------------------------------*/ -double poly_area_dimensionless(const double x[], const double y[], int n) -{ - double area = 0.0; - int i; - - for (i=0;i M_PI) dx = dx - 2.0*M_PI; - if(dx < -M_PI) dx = dx + 2.0*M_PI; - if (dx==0.0) continue; - - if ( fabs(lat1-lat2) < SMALL_VALUE) /* cheap area calculation along latitude */ - area -= dx*sin(0.5*(lat1+lat2)); - else { - if(reproduce_siena) { - area += dx*(cos(lat1)-cos(lat2))/(lat1-lat2); - } - else { - dy = 0.5*(lat1-lat2); - dat = sin(dy)/dy; - area -= dx*sin(0.5*(lat1+lat2))*dat; - } - } - } - if(area < 0) - return (-area/(4*M_PI)); - else - return (area/(4*M_PI)); - -}; /* poly_area */ - -double poly_area(const double x[], const double y[], int n) -{ - double area = 0.0; - int i; - - for (i=0;i M_PI) dx = dx - 2.0*M_PI; - if(dx < -M_PI) dx = dx + 2.0*M_PI; - if (dx==0.0) continue; - - if ( fabs(lat1-lat2) < SMALL_VALUE) /* cheap area calculation along latitude */ - area -= dx*sin(0.5*(lat1+lat2)); - else { - if(reproduce_siena) { - area += dx*(cos(lat1)-cos(lat2))/(lat1-lat2); - } - else { - dy = 0.5*(lat1-lat2); - dat = sin(dy)/dy; - area -= dx*sin(0.5*(lat1+lat2))*dat; - } - } - } - if(area < 0) - return -area*RADIUS*RADIUS; - else - return area*RADIUS*RADIUS; - -}; /* poly_area */ - -double poly_area_no_adjust(const double x[], const double y[], int n) -{ - double area = 0.0; - int i; - - for (i=0;i=n_ins;i--) { - x[i+1] = x[i]; - y[i+1] = y[i]; - } - - x[n_ins] = lon_in; - y[n_ins] = lat_in; - return (n+1); -} /* insert_vtx */ - -void v_print(double x[], double y[], int n) -{ - int i; - - for (i=0;i=HPI-TOLORENCE) pole = 1; - if (0&&pole) { - printf("fixing pole cell\n"); - v_print(x, y, nn); - printf("---------"); - } - - /* all pole points must be paired */ - for (i=0;i=HPI-TOLORENCE) { - int im=(i+nn-1)%nn, ip=(i+1)%nn; - - if (y[im]==y[i] && y[ip]==y[i]) { - nn = delete_vtx(x, y, nn, i); - i--; - } else if (y[im]!=y[i] && y[ip]!=y[i]) { - nn = insert_vtx(x, y, nn, i, x[i], y[i]); - i++; - } - } - /* first of pole pair has longitude of previous vertex */ - /* second of pole pair has longitude of subsequent vertex */ - for (i=0;i=HPI-TOLORENCE) { - int im=(i+nn-1)%nn, ip=(i+1)%nn; - - if (y[im]!=y[i]) x[i] = x[im]; - if (y[ip]!=y[i]) x[i] = x[ip]; - } - - if (nn) x_sum = x[0]; else return(0); - for (i=1;i M_PI) dx = dx - TPI; - x_sum += (x[i] = x[i-1] + dx); - } - - dx = (x_sum/nn)-tlon; - if (dx < -M_PI) for (i=0;i M_PI) for (i=0;i angle - \ - \ - p2 - -----------------------------------------------------------------------------*/ -double spherical_angle(const double *v1, const double *v2, const double *v3) -{ - double angle; -#ifdef NO_QUAD_PRECISION - double px, py, pz, qx, qy, qz, ddd; -#else - long double px, py, pz, qx, qy, qz, ddd; -#endif - - /* vector product between v1 and v2 */ - px = v1[1]*v2[2] - v1[2]*v2[1]; - py = v1[2]*v2[0] - v1[0]*v2[2]; - pz = v1[0]*v2[1] - v1[1]*v2[0]; - /* vector product between v1 and v3 */ - qx = v1[1]*v3[2] - v1[2]*v3[1]; - qy = v1[2]*v3[0] - v1[0]*v3[2]; - qz = v1[0]*v3[1] - v1[1]*v3[0]; - - ddd = (px*px+py*py+pz*pz)*(qx*qx+qy*qy+qz*qz); - if ( ddd <= 0.0 ) - angle = 0. ; - else { - ddd = (px*qx+py*qy+pz*qz) / sqrt(ddd); - if( fabs(ddd-1) < EPSLN30 ) ddd = 1; - if( fabs(ddd+1) < EPSLN30 ) ddd = -1; - if ( ddd>1. || ddd<-1. ) { - /*FIX (lmh) to correctly handle co-linear points (angle near pi or 0) */ - if (ddd < 0.) - angle = M_PI; - else - angle = 0.; - } - else - angle = acosl( ddd ); - } - - return angle; -}; /* spherical_angle */ - -/*------------------------------------------------------------------------------ - double spherical_excess_area(p_lL, p_uL, p_lR, p_uR) - get the surface area of a cell defined as a quadrilateral - on the sphere. Area is computed as the spherical excess - [area units are m^2] - ----------------------------------------------------------------------------*/ -double spherical_excess_area(const double* p_ll, const double* p_ul, - const double* p_lr, const double* p_ur, double radius) -{ - double area, ang1, ang2, ang3, ang4; - double v1[3], v2[3], v3[3]; - - /* S-W: 1 */ - latlon2xyz(1, p_ll, p_ll+1, v1, v1+1, v1+2); - latlon2xyz(1, p_lr, p_lr+1, v2, v2+1, v2+2); - latlon2xyz(1, p_ul, p_ul+1, v3, v3+1, v3+2); - ang1 = spherical_angle(v1, v2, v3); - - /* S-E: 2 */ - latlon2xyz(1, p_lr, p_lr+1, v1, v1+1, v1+2); - latlon2xyz(1, p_ur, p_ur+1, v2, v2+1, v2+2); - latlon2xyz(1, p_ll, p_ll+1, v3, v3+1, v3+2); - ang2 = spherical_angle(v1, v2, v3); - - /* N-E: 3 */ - latlon2xyz(1, p_ur, p_ur+1, v1, v1+1, v1+2); - latlon2xyz(1, p_ul, p_ul+1, v2, v2+1, v2+2); - latlon2xyz(1, p_lr, p_lr+1, v3, v3+1, v3+2); - ang3 = spherical_angle(v1, v2, v3); - - /* N-W: 4 */ - latlon2xyz(1, p_ul, p_ul+1, v1, v1+1, v1+2); - latlon2xyz(1, p_ur, p_ur+1, v2, v2+1, v2+2); - latlon2xyz(1, p_ll, p_ll+1, v3, v3+1, v3+2); - ang4 = spherical_angle(v1, v2, v3); - - area = (ang1 + ang2 + ang3 + ang4 - 2.*M_PI) * radius* radius; - - return area; - -}; /* spherical_excess_area */ - - -/*---------------------------------------------------------------------- - void vect_cross(e, p1, p2) - Perform cross products of 3D vectors: e = P1 X P2 - -------------------------------------------------------------------*/ - -void vect_cross(const double *p1, const double *p2, double *e ) -{ - - e[0] = p1[1]*p2[2] - p1[2]*p2[1]; - e[1] = p1[2]*p2[0] - p1[0]*p2[2]; - e[2] = p1[0]*p2[1] - p1[1]*p2[0]; - -}; /* vect_cross */ - - -/*---------------------------------------------------------------------- - double* vect_cross(p1, p2) - return cross products of 3D vectors: = P1 X P2 - -------------------------------------------------------------------*/ - -double dot(const double *p1, const double *p2) -{ - - return( p1[0]*p2[0] + p1[1]*p2[1] + p1[2]*p2[2] ); - -} - - -double metric(const double *p) { - return (sqrt(p[0]*p[0] + p[1]*p[1]+p[2]*p[2]) ); -} - - -/* ---------------------------------------------------------------- - make a unit vector - --------------------------------------------------------------*/ -void normalize_vect(double *e) -{ - double pdot; - int k; - - pdot = e[0]*e[0] + e[1] * e[1] + e[2] * e[2]; - pdot = sqrt( pdot ); - - for(k=0; k<3; k++) e[k] /= pdot; -}; - - -/*------------------------------------------------------------------ - void unit_vect_latlon(int size, lon, lat, vlon, vlat) - - calculate unit vector for latlon in cartesian coordinates - - ---------------------------------------------------------------------*/ -void unit_vect_latlon(int size, const double *lon, const double *lat, double *vlon, double *vlat) -{ - double sin_lon, cos_lon, sin_lat, cos_lat; - int n; - - for(n=0; n MAXNODELIST) error_handler("getNext: curListPos >= MAXNODELIST"); - - return (temp); -} - - -void initNode(struct Node *node) -{ - node->x = 0; - node->y = 0; - node->z = 0; - node->u = 0; - node->intersect = 0; - node->inbound = 0; - node->isInside = 0; - node->Next = NULL; - node->initialized=0; - -} - -void addEnd(struct Node *list, double x, double y, double z, int intersect, double u, int inbound, int inside) -{ - - struct Node *temp=NULL; - - if(list == NULL) error_handler("addEnd: list is NULL"); - - if(list->initialized) { - - /* (x,y,z) might already in the list when intersect is true and u=0 or 1 */ - temp = list; - while (temp) { - if(samePoint(temp->x, temp->y, temp->z, x, y, z)) return; - temp=temp->Next; - } - temp = list; - while(temp->Next) - temp=temp->Next; - - /* Append at the end of the list. */ - temp->Next = getNext(); - temp = temp->Next; - } - else { - temp = list; - } - - temp->x = x; - temp->y = y; - temp->z = z; - temp->u = u; - temp->intersect = intersect; - temp->inbound = inbound; - temp->initialized=1; - temp->isInside = inside; -} - -/* return 1 if the point (x,y,z) is added in the list, return 0 if it is already in the list */ - -int addIntersect(struct Node *list, double x, double y, double z, int intersect, double u1, double u2, int inbound, - int is1, int ie1, int is2, int ie2) -{ - - double u1_cur, u2_cur; - int i1_cur, i2_cur; - struct Node *temp=NULL; - - if(list == NULL) error_handler("addEnd: list is NULL"); - - /* first check to make sure this point is not in the list */ - u1_cur = u1; - i1_cur = is1; - u2_cur = u2; - i2_cur = is2; - if(u1_cur == 1) { - u1_cur = 0; - i1_cur = ie1; - } - if(u2_cur == 1) { - u2_cur = 0; - i2_cur = ie2; - } - - if(list->initialized) { - temp = list; - while(temp) { - if( temp->u == u1_cur && temp->subj_index == i1_cur) return 0; - if( temp->u_clip == u2_cur && temp->clip_index == i2_cur) return 0; - if( !temp->Next ) break; - temp=temp->Next; - } - - /* Append at the end of the list. */ - temp->Next = getNext(); - temp = temp->Next; - } - else { - temp = list; - } - - temp->x = x; - temp->y = y; - temp->z = z; - temp->intersect = intersect; - temp->inbound = inbound; - temp->initialized=1; - temp->isInside = 0; - temp->u = u1_cur; - temp->subj_index = i1_cur; - temp->u_clip = u2_cur; - temp->clip_index = i2_cur; - - return 1; -} - - -int length(struct Node *list) -{ - struct Node *cur_ptr=NULL; - int count=0; - - cur_ptr=list; - - while(cur_ptr) - { - if(cur_ptr->initialized ==0) break; - cur_ptr=cur_ptr->Next; - count++; - } - return(count); -} - -/* two points are the same if there are close enough */ -int samePoint(double x1, double y1, double z1, double x2, double y2, double z2) -{ - if( fabs(x1-x2) > EPSLN10 || fabs(y1-y2) > EPSLN10 || fabs(z1-z2) > EPSLN10 ) - return 0; - else - return 1; -} - - - -int sameNode(struct Node node1, struct Node node2) -{ - if( node1.x == node2.x && node1.y == node2.y && node1.z==node2.z ) - return 1; - else - return 0; -} - - -void addNode(struct Node *list, struct Node inNode) -{ - - addEnd(list, inNode.x, inNode.y, inNode.z, inNode.intersect, inNode.u, inNode.inbound, inNode.isInside); - -} - -struct Node *getNode(struct Node *list, struct Node inNode) -{ - struct Node *thisNode=NULL; - struct Node *temp=NULL; - - temp = list; - while( temp ) { - if( sameNode( *temp, inNode ) ) { - thisNode = temp; - temp = NULL; - break; - } - temp = temp->Next; - } - - return thisNode; -} - -struct Node *getNextNode(struct Node *list) -{ - return list->Next; -} - -void copyNode(struct Node *node_out, struct Node node_in) -{ - - node_out->x = node_in.x; - node_out->y = node_in.y; - node_out->z = node_in.z; - node_out->u = node_in.u; - node_out->intersect = node_in.intersect; - node_out->inbound = node_in.inbound; - node_out->Next = NULL; - node_out->initialized = node_in.initialized; - node_out->isInside = node_in.isInside; -} - -void printNode(struct Node *list, char *str) -{ - struct Node *temp; - - if(list == NULL) error_handler("printNode: list is NULL"); - if(str) printf(" %s \n", str); - temp = list; - while(temp) { - if(temp->initialized ==0) break; - printf(" (x, y, z, interset, inbound, isInside) = (%19.15f,%19.15f,%19.15f,%d,%d,%d)\n", - temp->x, temp->y, temp->z, temp->intersect, temp->inbound, temp->isInside); - temp = temp->Next; - } - printf("\n"); -} - -int intersectInList(struct Node *list, double x, double y, double z) -{ - struct Node *temp; - int found=0; - - temp = list; - found = 0; - while ( temp ) { - if( temp->x == x && temp->y == y && temp->z == z ) { - found = 1; - break; - } - temp=temp->Next; - } - if (!found) error_handler("intersectInList: point (x,y,z) is not found in the list"); - if( temp->intersect == 2 ) - return 1; - else - return 0; - -} - - -/* The following insert a intersection after non-intersect point (x2,y2,z2), if the point - after (x2,y2,z2) is an intersection, if u is greater than the u value of the intersection, - insert after, otherwise insert before -*/ -void insertIntersect(struct Node *list, double x, double y, double z, double u1, double u2, int inbound, - double x2, double y2, double z2) -{ - struct Node *temp1=NULL, *temp2=NULL; - struct Node *temp; - double u_cur; - int found=0; - - temp1 = list; - found = 0; - while ( temp1 ) { - if( temp1->x == x2 && temp1->y == y2 && temp1->z == z2 ) { - found = 1; - break; - } - temp1=temp1->Next; - } - if (!found) error_handler("inserAfter: point (x,y,z) is not found in the list"); - - /* when u = 0 or u = 1, set the grid point to be the intersection point to solve truncation error isuse */ - u_cur = u1; - if(u1 == 1) { - u_cur = 0; - temp1 = temp1->Next; - if(!temp1) temp1 = list; - } - if(u_cur==0) { - temp1->intersect = 2; - temp1->isInside = 1; - temp1->u = u_cur; - temp1->x = x; - temp1->y = y; - temp1->z = z; - return; - } - - /* when u2 != 0 and u2 !=1, can decide if one end of the point is outside depending on inbound value */ - if(u2 != 0 && u2 != 1) { - if(inbound == 1) { /* goes outside, then temp1->Next is an outside point */ - /* find the next non-intersect point */ - temp2 = temp1->Next; - if(!temp2) temp2 = list; - while(temp2->intersect) { - temp2=temp2->Next; - if(!temp2) temp2 = list; - } - - temp2->isInside = 0; - } - else if(inbound ==2) { /* goes inside, then temp1 is an outside point */ - temp1->isInside = 0; - } - } - - temp2 = temp1->Next; - while ( temp2 ) { - if( temp2->intersect == 1 ) { - if( temp2->u > u_cur ) { - break; - } - } - else - break; - temp1 = temp2; - temp2 = temp2->Next; - } - - /* assign value */ - temp = getNext(); - temp->x = x; - temp->y = y; - temp->z = z; - temp->u = u_cur; - temp->intersect = 1; - temp->inbound = inbound; - temp->isInside = 1; - temp->initialized = 1; - temp1->Next = temp; - temp->Next = temp2; - -} - -double gridArea(struct Node *grid) { - double x[20], y[20], z[20]; - struct Node *temp=NULL; - double area; - int n; - - temp = grid; - n = 0; - while( temp ) { - x[n] = temp->x; - y[n] = temp->y; - z[n] = temp->z; - n++; - temp = temp->Next; - } - - area = great_circle_area(n, x, y, z); - - return area; - -} - -int isIntersect(struct Node node) { - - return node.intersect; - -} - - -int getInbound( struct Node node ) -{ - return node.inbound; -} - -struct Node *getLast(struct Node *list) -{ - struct Node *temp1; - - temp1 = list; - if( temp1 ) { - while( temp1->Next ) { - temp1 = temp1->Next; - } - } - - return temp1; -} - - -int getFirstInbound( struct Node *list, struct Node *nodeOut) -{ - struct Node *temp=NULL; - - temp=list; - - while(temp) { - if( temp->inbound == 2 ) { - copyNode(nodeOut, *temp); - return 1; - } - temp=temp->Next; - } - - return 0; -} - -void getCoordinate(struct Node node, double *x, double *y, double *z) -{ - - - *x = node.x; - *y = node.y; - *z = node.z; - -} - -void getCoordinates(struct Node *node, double *p) -{ - - - p[0] = node->x; - p[1] = node->y; - p[2] = node->z; - -} - -void setCoordinate(struct Node *node, double x, double y, double z) -{ - - - node->x = x; - node->y = y; - node->z = z; - -} - -/* set inbound value for the points in interList that has inbound =0, - this will also set some inbound value of the points in list1 -*/ - -void setInbound(struct Node *interList, struct Node *list) -{ - - struct Node *temp1=NULL, *temp=NULL; - struct Node *temp1_prev=NULL, *temp1_next=NULL; - int prev_is_inside, next_is_inside; - - /* for each point in interList, search through list to decide the inbound value the interList point */ - /* For each inbound point, the prev node should be outside and the next is inside. */ - if(length(interList) == 0) return; - - temp = interList; - - while(temp) { - if( !temp->inbound) { - /* search in grid1 to find the prev and next point of temp, when prev point is outside and next point is inside - inbound = 2, else inbound = 1*/ - temp1 = list; - temp1_prev = NULL; - temp1_next = NULL; - while(temp1) { - if(sameNode(*temp1, *temp)) { - if(!temp1_prev) temp1_prev = getLast(list); - temp1_next = temp1->Next; - if(!temp1_next) temp1_next = list; - break; - } - temp1_prev = temp1; - temp1 = temp1->Next; - } - if(!temp1_next) error_handler("Error from create_xgrid.c: temp is not in list1"); - if( temp1_prev->isInside == 0 && temp1_next->isInside == 1) - temp->inbound = 2; /* go inside */ - else - temp->inbound = 1; - } - temp=temp->Next; - } -} - -int isInside(struct Node *node) { - - if(node->isInside == -1) error_handler("Error from mosaic_util.c: node->isInside is not set"); - return(node->isInside); - -} - -/* #define debug_test_create_xgrid */ - -/* check if node is inside polygon list or not */ - int insidePolygon( struct Node *node, struct Node *list) -{ - int i, ip, is_inside; - double pnt0[3], pnt1[3], pnt2[3]; - double anglesum; - struct Node *p1=NULL, *p2=NULL; - - anglesum = 0; - - pnt0[0] = node->x; - pnt0[1] = node->y; - pnt0[2] = node->z; - - p1 = list; - p2 = list->Next; - is_inside = 0; - - - while(p1) { - pnt1[0] = p1->x; - pnt1[1] = p1->y; - pnt1[2] = p1->z; - pnt2[0] = p2->x; - pnt2[1] = p2->y; - pnt2[2] = p2->z; - if(samePoint(pnt0[0], pnt0[1], pnt0[2], pnt1[0], pnt1[1], pnt1[2])) return 1; - anglesum += spherical_angle(pnt0, pnt2, pnt1); - p1 = p1->Next; - p2 = p2->Next; - if(p2==NULL)p2 = list; - } - - if( fabs(anglesum - 2*M_PI) < EPSLN8 ) - is_inside = 1; - else - is_inside = 0; - -#ifdef debug_test_create_xgrid - printf("anglesum-2PI is %19.15f, is_inside = %d\n", anglesum- 2*M_PI, is_inside); -#endif - - return is_inside; - -} - -int inside_a_polygon(double *lon1, double *lat1, int *npts, double *lon2, double *lat2) -{ - - double x2[20], y2[20], z2[20]; - double x1, y1, z1; - double min_x2, max_x2, min_y2, max_y2, min_z2, max_z2; - int isinside, i; - - struct Node *grid1=NULL, *grid2=NULL; - - /* first convert to cartesian grid */ - latlon2xyz(*npts, lon2, lat2, x2, y2, z2); - latlon2xyz(1, lon1, lat1, &x1, &y1, &z1); - - max_x2 = maxval_double(*npts, x2); - if(x1 >= max_x2+RANGE_CHECK_CRITERIA) return 0; - min_x2 = minval_double(*npts, x2); - if(min_x2 >= x1+RANGE_CHECK_CRITERIA) return 0; - - max_y2 = maxval_double(*npts, y2); - if(y1 >= max_y2+RANGE_CHECK_CRITERIA) return 0; - min_y2 = minval_double(*npts, y2); - if(min_y2 >= y1+RANGE_CHECK_CRITERIA) return 0; - - max_z2 = maxval_double(*npts, z2); - if(z1 >= max_z2+RANGE_CHECK_CRITERIA) return 0; - min_z2 = minval_double(*npts, z2); - if(min_z2 >= z1+RANGE_CHECK_CRITERIA) return 0; - - - /* add x2,y2,z2 to a Node */ - rewindList(); - grid1 = getNext(); - grid2 = getNext(); - - addEnd(grid1, x1, y1, z1, 0, 0, 0, -1); - for(i=0; i<*npts; i++) addEnd(grid2, x2[i], y2[i], z2[i], 0, 0, 0, -1); - - isinside = insidePolygon(grid1, grid2); - - return isinside; - -} - -#ifndef __AIX -int inside_a_polygon_(double *lon1, double *lat1, int *npts, double *lon2, double *lat2) -{ - - int isinside; - - isinside = inside_a_polygon(lon1, lat1, npts, lon2, lat2); - - return isinside; - -} -#endif - diff --git a/sorc/fre-nctools.fd/shared/mosaic/mosaic_util.h b/sorc/fre-nctools.fd/shared/mosaic/mosaic_util.h deleted file mode 100644 index c7c0cefc42..0000000000 --- a/sorc/fre-nctools.fd/shared/mosaic/mosaic_util.h +++ /dev/null @@ -1,92 +0,0 @@ -/*********************************************************************** - mosaic_util.h - This header file provide some utilities routine that will be used in many tools. - - contact: Zhi.Liang@noaa.gov -***********************************************************************/ -#ifndef MOSAIC_UTIL_H_ -#define MOSAIC_UTIL_H_ - -#ifndef RANGE_CHECK_CRITERIA -#define RANGE_CHECK_CRITERIA 0.05 -#endif - -#define min(a,b) (ab ? a:b) -#define SMALL_VALUE ( 1.e-10 ) -struct Node{ - double x, y, z, u, u_clip; - int intersect; /* indicate if this point is an intersection, 0 = no, 1= yes, 2=both intersect and vertices */ - int inbound; /* -1 uninitialized, 0 coincident, 1 outbound, 2 inbound */ - int initialized; /* = 0 means empty list */ - int isInside; /* = 1 means one point is inside the other polygon, 0 is not, -1 undecided. */ - int subj_index; /* the index of subject point that an intersection follow. */ - int clip_index; /* the index of clip point that an intersection follow */ - struct Node *Next; -}; - - -void error_handler(const char *msg); -int nearest_index(double value, const double *array, int ia); -int lon_fix(double *x, double *y, int n_in, double tlon); -double minval_double(int size, const double *data); -double maxval_double(int size, const double *data); -double avgval_double(int size, const double *data); -void latlon2xyz(int size, const double *lon, const double *lat, double *x, double *y, double *z); -void xyz2latlon(int size, const double *x, const double *y, const double *z, double *lon, double *lat); -double box_area(double ll_lon, double ll_lat, double ur_lon, double ur_lat); -double poly_area(const double lon[], const double lat[], int n); -double poly_area_dimensionless(const double lon[], const double lat[], int n); -double poly_area_no_adjust(const double x[], const double y[], int n); -int fix_lon(double lon[], double lat[], int n, double tlon); -void tokenize(const char * const string, const char *tokens, unsigned int varlen, - unsigned int maxvar, char * pstring, unsigned int * const nstr); -double great_circle_distance(double *p1, double *p2); -double spherical_excess_area(const double* p_ll, const double* p_ul, - const double* p_lr, const double* p_ur, double radius); -void vect_cross(const double *p1, const double *p2, double *e ); -double spherical_angle(const double *v1, const double *v2, const double *v3); -void normalize_vect(double *e); -void unit_vect_latlon(int size, const double *lon, const double *lat, double *vlon, double *vlat); -double great_circle_area(int n, const double *x, const double *y, const double *z); -double * cross(const double *p1, const double *p2); -double dot(const double *p1, const double *p2); -int intersect_tri_with_line(const double *plane, const double *l1, const double *l2, double *p, - double *t); -int invert_matrix_3x3(long double m[], long double m_inv[]); -void mult(long double m[], long double v[], long double out_v[]); -double metric(const double *p); -int insidePolygon(struct Node *node, struct Node *list ); -int inside_a_polygon( double *lon1, double *lat1, int *npts, double *lon2, double *lat2); - -void rewindList(void); -struct Node *getNext(); -void initNode(struct Node *node); -void addEnd(struct Node *list, double x, double y, double z, int intersect, double u, int inbound, int inside); -int addIntersect(struct Node *list, double x, double y, double z, int intersect, double u1, double u2, - int inbound, int is1, int ie1, int is2, int ie2); -int length(struct Node *list); -int samePoint(double x1, double y1, double z1, double x2, double y2, double z2); -int sameNode(struct Node node1, struct Node node2); -void addNode(struct Node *list, struct Node nodeIn); -struct Node *getNode(struct Node *list, struct Node inNode); -struct Node *getNextNode(struct Node *list); -void copyNode(struct Node *node_out, struct Node node_in); -void printNode(struct Node *list, char *str); -int intersectInList(struct Node *list, double x, double y, double z); -void insertAfter(struct Node *list, double x, double y, double z, int intersect, double u, int inbound, - double x2, double y2, double z2); -double gridArea(struct Node *grid); -int isIntersect(struct Node node); -int getInbound( struct Node node ); -struct Node *getLast(struct Node *list); -int getFirstInbound( struct Node *list, struct Node *nodeOut); -void getCoordinate(struct Node node, double *x, double *y, double *z); -void getCoordinates(struct Node *node, double *p); -void setCoordinate(struct Node *node, double x, double y, double z); -void setInbound(struct Node *interList, struct Node *list); -int isInside(struct Node *node); -void set_reproduce_siena_true(void); - - -#endif diff --git a/sorc/fre-nctools.fd/shared/mosaic/read_mosaic.c b/sorc/fre-nctools.fd/shared/mosaic/read_mosaic.c deleted file mode 100644 index 460f2c42c4..0000000000 --- a/sorc/fre-nctools.fd/shared/mosaic/read_mosaic.c +++ /dev/null @@ -1,830 +0,0 @@ -#include -#include -#include -#include -#include "read_mosaic.h" -#include "constant.h" -#include "mosaic_util.h" -#ifdef use_netCDF -#include -#endif -/********************************************************************* - void netcdf_error( int status ) - status is the returning value of netcdf call. this routine will - handle the error when status is not NC_NOERR. -********************************************************************/ -void handle_netcdf_error(const char *msg, int status ) -{ - char errmsg[512]; - - sprintf( errmsg, "%s: %s", msg, (char *)nc_strerror(status) ); - error_handler(errmsg); - -}; /* handle_netcdf_error */ - -/*************************************************************************** - void get_file_dir(const char *file, char *dir) - get the directory where file is located. The dir will be the complate path - before the last "/". If no "/" exist in file, the path will be current ".". -***************************************************************************/ -void get_file_dir(const char *file, char *dir) -{ - int len; - char *strptr = NULL; - - /* get the diretory */ - - strptr = strrchr(file, '/'); - if(strptr) { - len = strptr - file; - strncpy(dir, file, len); - } - else { - len = 1; - strcpy(dir, "."); - } - dir[len] = 0; - -}; /* get_file_dir */ - - -int field_exist(const char* file, const char *name) -{ - int ncid, varid, status, existed; - char msg[512]; -#ifdef use_netCDF - status = nc_open(file, NC_NOWRITE, &ncid); - if(status != NC_NOERR) { - sprintf(msg, "field_exist: in opening file %s", file); - handle_netcdf_error(msg, status); - } - status = nc_inq_varid(ncid, name, &varid); - if(status == NC_NOERR) - existed = 1; - else - existed = 0; - - status = nc_close(ncid); - if(status != NC_NOERR) { - sprintf(msg, "field_exist: in closing file %s.", file); - handle_netcdf_error(msg, status); - } - - return existed; -#else - error_handler("read_mosaic: Add flag -Duse_netCDF when compiling"); - -#endif - return 0; -}; /* field_exist */ - -int get_dimlen(const char* file, const char *name) -{ - int ncid, dimid, status, len; - size_t size; - char msg[512]; - - len = 0; -#ifdef use_netCDF - status = nc_open(file, NC_NOWRITE, &ncid); - if(status != NC_NOERR) { - sprintf(msg, "in opening file %s", file); - handle_netcdf_error(msg, status); - } - - status = nc_inq_dimid(ncid, name, &dimid); - if(status != NC_NOERR) { - sprintf(msg, "in getting dimid of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - - status = nc_inq_dimlen(ncid, dimid, &size); - if(status != NC_NOERR) { - sprintf(msg, "in getting dimension size of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - status = nc_close(ncid); - if(status != NC_NOERR) { - sprintf(msg, "in closing file %s.", file); - handle_netcdf_error(msg, status); - } - - len = size; - if(status != NC_NOERR) { - sprintf(msg, "in closing file %s", file); - handle_netcdf_error(msg, status); - } -#else - error_handler("read_mosaic: Add flag -Duse_netCDF when compiling"); -#endif - - return len; - -}; /* get_dimlen */ - -/******************************************************************************* - void get_string_data(const char *file, const char *name, char *data) - get string data of field with "name" from "file". -******************************************************************************/ -void get_string_data(const char *file, const char *name, char *data) -{ - int ncid, varid, status; - char msg[512]; - -#ifdef use_netCDF - status = nc_open(file, NC_NOWRITE, &ncid); - if(status != NC_NOERR) { - sprintf(msg, "in opening file %s", file); - handle_netcdf_error(msg, status); - } - status = nc_inq_varid(ncid, name, &varid); - if(status != NC_NOERR) { - sprintf(msg, "in getting varid of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - status = nc_get_var_text(ncid, varid, data); - if(status != NC_NOERR) { - sprintf(msg, "in getting data of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - status = nc_close(ncid); - if(status != NC_NOERR) { - sprintf(msg, "in closing file %s.", file); - handle_netcdf_error(msg, status); - } -#else - error_handler("read_mosaic: Add flag -Duse_netCDF when compiling"); -#endif - -}; /* get_string_data */ - -/******************************************************************************* - void get_string_data_level(const char *file, const char *name, const size_t *start, const size_t *nread, char *data) - get string data of field with "name" from "file". -******************************************************************************/ -void get_string_data_level(const char *file, const char *name, char *data, const int *level) -{ - int ncid, varid, status, i; - size_t start[4], nread[4]; - char msg[512]; - -#ifdef use_netCDF - status = nc_open(file, NC_NOWRITE, &ncid); - if(status != NC_NOERR) { - sprintf(msg, "in opening file %s", file); - handle_netcdf_error(msg, status); - } - status = nc_inq_varid(ncid, name, &varid); - if(status != NC_NOERR) { - sprintf(msg, "in getting varid of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - for(i=0; i<4; i++) { - start[i] = 0; nread[i] = 1; - } - start[0] = *level; nread[1] = STRING; - status = nc_get_vara_text(ncid, varid, start, nread, data); - if(status != NC_NOERR) { - sprintf(msg, "in getting data of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - status = nc_close(ncid); - if(status != NC_NOERR) { - sprintf(msg, "in closing file %s.", file); - handle_netcdf_error(msg, status); - } -#else - error_handler("read_mosaic: Add flag -Duse_netCDF when compiling"); -#endif - -}; /* get_string_data_level */ - - -/******************************************************************************* - void get_var_data(const char *file, const char *name, double *data) - get var data of field with "name" from "file". -******************************************************************************/ -void get_var_data(const char *file, const char *name, void *data) -{ - - int ncid, varid, status; - nc_type vartype; - char msg[512]; - -#ifdef use_netCDF - status = nc_open(file, NC_NOWRITE, &ncid); - if(status != NC_NOERR) { - sprintf(msg, "in opening file %s", file); - handle_netcdf_error(msg, status); - } - status = nc_inq_varid(ncid, name, &varid); - if(status != NC_NOERR) { - sprintf(msg, "in getting varid of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - - status = nc_inq_vartype(ncid, varid, &vartype); - if(status != NC_NOERR) { - sprintf(msg, "get_var_data: in getting vartype of of %s in file %s ", name, file); - handle_netcdf_error(msg, status); - } - - switch (vartype) { - case NC_DOUBLE:case NC_FLOAT: -#ifdef OVERLOAD_R4 - status = nc_get_var_float(ncid, varid, data); -#else - status = nc_get_var_double(ncid, varid, data); -#endif - break; - case NC_INT: - status = nc_get_var_int(ncid, varid, data); - break; - default: - sprintf(msg, "get_var_data: field %s in file %s has an invalid type, " - "the type should be NC_DOUBLE, NC_FLOAT or NC_INT", name, file); - error_handler(msg); - } - if(status != NC_NOERR) { - sprintf(msg, "in getting data of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - status = nc_close(ncid); - if(status != NC_NOERR) { - sprintf(msg, "in closing file %s.", file); - handle_netcdf_error(msg, status); - } -#else - error_handler("read_mosaic: Add flag -Duse_netCDF when compiling"); -#endif - -}; /* get_var_data */ - -/******************************************************************************* - void get_var_data(const char *file, const char *name, double *data) - get var data of field with "name" from "file". -******************************************************************************/ -void get_var_data_region(const char *file, const char *name, const size_t *start, const size_t *nread, void *data) -{ - - int ncid, varid, status; - nc_type vartype; - char msg[512]; - -#ifdef use_netCDF - status = nc_open(file, NC_NOWRITE, &ncid); - if(status != NC_NOERR) { - sprintf(msg, "get_var_data_region: in opening file %s", file); - handle_netcdf_error(msg, status); - } - status = nc_inq_varid(ncid, name, &varid); - if(status != NC_NOERR) { - sprintf(msg, "in getting varid of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - - status = nc_inq_vartype(ncid, varid, &vartype); - if(status != NC_NOERR) { - sprintf(msg, "get_var_data_region: in getting vartype of of %s in file %s ", name, file); - handle_netcdf_error(msg, status); - } - - switch (vartype) { - case NC_DOUBLE:case NC_FLOAT: -#ifdef OVERLOAD_R4 - status = nc_get_vara_float(ncid, varid, start, nread, data); -#else - status = nc_get_vara_double(ncid, varid, start, nread, data); -#endif - break; - case NC_INT: - status = nc_get_vara_int(ncid, varid, start, nread, data); - break; - default: - sprintf(msg, "get_var_data_region: field %s in file %s has an invalid type, " - "the type should be NC_DOUBLE, NC_FLOAT or NC_INT", name, file); - error_handler(msg); - } - - if(status != NC_NOERR) { - sprintf(msg, "get_var_data_region: in getting data of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - status = nc_close(ncid); - if(status != NC_NOERR) { - sprintf(msg, "get_var_data_region: in closing file %s.", file); - handle_netcdf_error(msg, status); - } -#else - error_handler("read_mosaic: Add flag -Duse_netCDF when compiling"); -#endif - -}; /* get_var_data_region */ - -/****************************************************************************** - void get_var_text_att(const char *file, const char *name, const char *attname, char *att) - get text attribute of field 'name' from 'file -******************************************************************************/ -void get_var_text_att(const char *file, const char *name, const char *attname, char *att) -{ - int ncid, varid, status; - char msg[512]; - -#ifdef use_netCDF - status = nc_open(file, NC_NOWRITE, &ncid); - if(status != NC_NOERR) { - sprintf(msg, "in opening file %s", file); - handle_netcdf_error(msg, status); - } - status = nc_inq_varid(ncid, name, &varid); - if(status != NC_NOERR) { - sprintf(msg, "in getting varid of %s from file %s.", name, file); - handle_netcdf_error(msg, status); - } - status = nc_get_att_text(ncid, varid, attname, att); - if(status != NC_NOERR) { - sprintf(msg, "in getting attribute %s of %s from file %s.", attname, name, file); - handle_netcdf_error(msg, status); - } - status = nc_close(ncid); - if(status != NC_NOERR) { - sprintf(msg, "in closing file %s.", file); - handle_netcdf_error(msg, status); - } -#else - error_handler("read_mosaic: Add flag -Duse_netCDF when compiling"); -#endif - -}; /* get_var_text_att */ - -/*********************************************************************** - return number of overlapping cells. -***********************************************************************/ -#ifndef __AIX -int read_mosaic_xgrid_size_( const char *xgrid_file ) -{ - return read_mosaic_xgrid_size(xgrid_file); -} -#endif - -int read_mosaic_xgrid_size( const char *xgrid_file ) -{ - int ncells; - - ncells = get_dimlen(xgrid_file, "ncells"); - return ncells; -} - -#ifdef OVERLOAD_R4 -float get_global_area(void) -{ - float garea; -#else -double get_global_area(void) -{ - double garea; -#endif - garea = 4*M_PI*RADIUS*RADIUS; - - return garea; -}; - -#ifndef __AIX -#ifdef OVERLOAD_R4 -float get_global_area_(void) -{ - float garea; -#else -double get_global_area_(void) -{ - double garea; -#endif - garea = 4*M_PI*RADIUS*RADIUS; - - return garea; -}; -#endif - - -/****************************************************************************/ -#ifndef __AIX -#ifdef OVERLOAD_R4 -void read_mosaic_xgrid_order1_(const char *xgrid_file, int *i1, int *j1, int *i2, int *j2, float *area ) -#else -void read_mosaic_xgrid_order1_(const char *xgrid_file, int *i1, int *j1, int *i2, int *j2, double *area ) -#endif -{ - read_mosaic_xgrid_order1(xgrid_file, i1, j1, i2, j2, area); - -}; -#endif - -#ifdef OVERLOAD_R4 -void read_mosaic_xgrid_order1(const char *xgrid_file, int *i1, int *j1, int *i2, int *j2, float *area ) -#else -void read_mosaic_xgrid_order1(const char *xgrid_file, int *i1, int *j1, int *i2, int *j2, double *area ) -#endif -{ - int ncells, n; - int *tile1_cell, *tile2_cell; -#ifdef OVERLOAD_R4 - float garea; -#else - double garea; -#endif - - ncells = get_dimlen(xgrid_file, "ncells"); - - tile1_cell = (int *)malloc(ncells*2*sizeof(int)); - tile2_cell = (int *)malloc(ncells*2*sizeof(int)); - get_var_data(xgrid_file, "tile1_cell", tile1_cell); - get_var_data(xgrid_file, "tile2_cell", tile2_cell); - - get_var_data(xgrid_file, "xgrid_area", area); - - garea = 4*M_PI*RADIUS*RADIUS; - - for(n=0; n istart_in ) { - istart_out[0] = istart_in - 1; - iend_out[0] = iend_in - refine_ratio; - } - else { - istart_out[0] = istart_in - refine_ratio; - iend_out[0] = iend_in - 1; - } - - if( istart_out[0]%refine_ratio || iend_out[0]%refine_ratio) - error_handler("Error from read_mosaic: mismatch between refine_ratio and istart_in/iend_in"); - istart_out[0] /= refine_ratio; - iend_out[0] /= refine_ratio; - } - - return type; - -} - - -void read_mosaic_contact(const char *mosaic_file, int *tile1, int *tile2, int *istart1, int *iend1, - int *jstart1, int *jend1, int *istart2, int *iend2, int *jstart2, int *jend2) -{ - char contacts[STRING]; - char **gridtiles; -#define MAXVAR 40 - char pstring[MAXVAR][STRING]; - int ntiles, ncontacts, n, m, l, found; - unsigned int nstr; - const int x_refine = 2, y_refine = 2; - int i1_type, j1_type, i2_type, j2_type; - - ntiles = get_dimlen(mosaic_file, "ntiles"); - gridtiles = (char **)malloc(ntiles*sizeof(char *)); - for(n=0; n '9' || pstring[m][l] < '0' ) { - error_handler("Error from read_mosaic: some of the character in " - "contact_indices except token is not digit number"); - } - } - istart1[n] = atoi(pstring[0]); - iend1[n] = atoi(pstring[1]); - jstart1[n] = atoi(pstring[2]); - jend1[n] = atoi(pstring[3]); - istart2[n] = atoi(pstring[4]); - iend2[n] = atoi(pstring[5]); - jstart2[n] = atoi(pstring[6]); - jend2[n] = atoi(pstring[7]); - i1_type = transfer_to_model_index(istart1[n], iend1[n], istart1+n, iend1+n, x_refine); - j1_type = transfer_to_model_index(jstart1[n], jend1[n], jstart1+n, jend1+n, y_refine); - i2_type = transfer_to_model_index(istart2[n], iend2[n], istart2+n, iend2+n, x_refine); - j2_type = transfer_to_model_index(jstart2[n], jend2[n], jstart2+n, jend2+n, y_refine); - if( i1_type == 0 && j1_type == 0 ) - error_handler("Error from read_mosaic_contact:istart1==iend1 and jstart1==jend1"); - if( i2_type == 0 && j2_type == 0 ) - error_handler("Error from read_mosaic_contact:istart2==iend2 and jstart2==jend2"); - if( i1_type + j1_type != i2_type + j2_type ) - error_handler("Error from read_mosaic_contact: It is not a line or overlap contact"); - - } - - for(m=0; m - -#ifdef NO_QUAD_PRECISION - ! 64-bit precision (kind=8) - integer, parameter:: f_p = selected_real_kind(15) -#else - ! Higher precision (kind=16) for grid geometrical factors: - integer, parameter:: f_p = selected_real_kind(20) -#endif - - integer, parameter :: XDir=1 - integer, parameter :: YDir=2 - real, parameter :: pi = 3.14159265358979323846d0 - real, parameter :: radius = 6371.d03 - real, parameter :: big_number=1.d8 - real, parameter :: tiny_number=1.d-8 - - - real:: cd4 = 0.16 ! Dimensionless coeff for del-4 difussion (with FCT) - real:: peak_fac = 1.05 ! overshoot factor for the mountain peak - real:: max_slope = 0.15 ! max allowable terrain slope: 1 --> 45 deg - ! 0.15 for C768 or lower; 0.25 C1536; 0.3 for C3072 - integer :: n_del2_weak = 12 - - logical :: zs_filter = .true. - logical :: zero_ocean = .true. ! if true, no diffusive flux into water/ocean area - real :: stretch_fac = 1.0 - logical :: nested = .false. & - ,regional = .false. - integer :: grid_type = 0 ! gnomoic_ed - character(len=128) :: topo_file = "orog" - character(len=128) :: topo_field = "orog_filt" - character(len=128) :: mask_field = "slmsk" - character(len=128) :: grid_file = "atmos_mosaic.nc" - namelist /filter_topo_nml/ topo_file, topo_field, mask_field, grid_file, zero_ocean, & - zs_filter, cd4, n_del2_weak, peak_fac, max_slope, stretch_fac, nested, grid_type, & - regional - - integer :: stdunit = 6 - integer :: ntiles = 0 - - real da_min - - real, allocatable :: oro(:,:,:), mask(:,:,:) - real, allocatable :: dx(:,:,:), dy(:,:,:) - real, allocatable :: dxa(:,:,:), dya(:,:,:) - real, allocatable :: dxc(:,:,:), dyc(:,:,:) - real, allocatable :: area(:,:,:) - real, allocatable :: sin_sg(:,:,:,:) - - integer :: is,ie,js,je,isd,ied,jsd,jed - integer,parameter :: ng = 3 - integer :: nx, ny, npx, npy, nx_nest, ny_nest, npx_nest, npy_nest, is_nest, ie_nest, js_nest, je_nest, isd_nest, ied_nest, jsd_nest, jed_nest - !--- read namelist - call read_namelist() - - !--- read the target grid. - call read_grid_file(regional) - - !--- read the topography data - call read_topo_file(regional) - - !--- filter the data - call FV3_zs_filter(is,ie,js,je,isd,ied,jsd,jed,npx,npy,npx,ntiles,grid_type, & - stretch_fac, nested, area, dxa, dya, dx, dy, dxc, dyc, sin_sg, oro, regional ) - - !--- write out the data - call write_topo_file(is,ie,js,je,ntiles,oro(is:ie,js:je,:),regional ) - -contains - - !##################################################################### - real function great_circle_dist( q1, q2, radius ) - real, intent(IN) :: q1(2), q2(2) - real, intent(IN), optional :: radius - - real (f_p):: p1(2), p2(2) - real (f_p):: beta - integer n - - do n=1,2 - p1(n) = q1(n) - p2(n) = q2(n) - enddo - - beta = asin( sqrt( sin((p1(2)-p2(2))/2.)**2 + cos(p1(2))*cos(p2(2))* & - sin((p1(1)-p2(1))/2.)**2 ) ) * 2. - - if ( present(radius) ) then - great_circle_dist = radius * beta - else - great_circle_dist = beta ! Returns the angle - endif - - end function great_circle_dist - - !#################################################################### - real function spherical_angle(p1, p2, p3) - - ! p3 - ! / - ! / - ! p1 ---> angle - ! \ - ! \ - ! p2 - - real p1(3), p2(3), p3(3) - - real (f_p):: e1(3), e2(3), e3(3) - real (f_p):: px, py, pz - real (f_p):: qx, qy, qz - real (f_p):: angle, ddd - integer n - - do n=1,3 - e1(n) = p1(n) - e2(n) = p2(n) - e3(n) = p3(n) - enddo - - !------------------------------------------------------------------- - ! Page 41, Silverman's book on Vector Algebra; spherical trigonmetry - !------------------------------------------------------------------- - ! Vector P: - px = e1(2)*e2(3) - e1(3)*e2(2) - py = e1(3)*e2(1) - e1(1)*e2(3) - pz = e1(1)*e2(2) - e1(2)*e2(1) - ! Vector Q: - qx = e1(2)*e3(3) - e1(3)*e3(2) - qy = e1(3)*e3(1) - e1(1)*e3(3) - qz = e1(1)*e3(2) - e1(2)*e3(1) - - ddd = (px*px+py*py+pz*pz)*(qx*qx+qy*qy+qz*qz) - - if ( ddd <= 0.0d0 ) then - angle = 0.d0 - else - ddd = (px*qx+py*qy+pz*qz) / sqrt(ddd) - if ( abs(ddd)>1.d0) then - angle = 2.d0*atan(1.0) ! 0.5*pi - !FIX (lmh) to correctly handle co-linear points (angle near pi or 0) - if (ddd < 0.d0) then - angle = 4.d0*atan(1.0d0) !should be pi - else - angle = 0.d0 - end if - else - angle = acos( ddd ) - endif - endif - - spherical_angle = angle - - end function spherical_angle - - - !#################################################################### - real function get_area(p1, p4, p2, p3, radius) - !----------------------------------------------- - real, intent(in), dimension(2):: p1, p2, p3, p4 - real, intent(in), optional:: radius - !----------------------------------------------- - real e1(3), e2(3), e3(3) - real ang1, ang2, ang3, ang4 - - ! S-W: 1 - call latlon2xyz(p1, e1) ! p1 - call latlon2xyz(p2, e2) ! p2 - call latlon2xyz(p4, e3) ! p4 - ang1 = spherical_angle(e1, e2, e3) - !---- - ! S-E: 2 - !---- - call latlon2xyz(p2, e1) - call latlon2xyz(p3, e2) - call latlon2xyz(p1, e3) - ang2 = spherical_angle(e1, e2, e3) - !---- - ! N-E: 3 - !---- - call latlon2xyz(p3, e1) - call latlon2xyz(p4, e2) - call latlon2xyz(p2, e3) - ang3 = spherical_angle(e1, e2, e3) - !---- - ! N-W: 4 - !---- - call latlon2xyz(p4, e1) - call latlon2xyz(p3, e2) - call latlon2xyz(p1, e3) - ang4 = spherical_angle(e1, e2, e3) - - if ( present(radius) ) then - get_area = (ang1 + ang2 + ang3 + ang4 - 2.*pi) * radius**2 - else - get_area = ang1 + ang2 + ang3 + ang4 - 2.*pi - endif - - end function get_area - - subroutine fill_AGRID_scalar_corners(q, ng, npx, npy, isd, jsd, fill) - integer, intent(in) :: ng, npx, npy, isd, jsd - integer, intent(in) :: fill - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: q - - integer :: i, j - - select case (FILL) - case (XDir) - do j=1,ng - do i=1,ng - q(1-i ,1-j ,:) = q(1-j ,i ,:) !SW Corner - q(1-i ,npy-1+j,:) = q(1-j ,npy-1-i+1,:) !NW Corner - q(npx-1+i,1-j ,:) = q(npx-1+j,i ,:) !SE Corner - q(npx-1+i,npy-1+j,:) = q(npx-1+j,npy-1-i+1,:) !NE Corner - enddo - enddo - case (YDir) - do j=1,ng - do i=1,ng - q(1-j ,1-i ,:) = q(i ,1-j ,:) !SW Corner - q(1-j ,npy-1+i,:) = q(i ,npy-1+j,:) !NW Corner - q(npx-1+j,1-i ,:) = q(npx-1-i+1,1-j ,:) !SE Corner - q(npx-1+j,npy-1+i,:) = q(npx-1-i+1,npy-1+j,:) !NE Corner - enddo - enddo - case default - do j=1,ng - do i=1,ng - q(1-j ,1-i ,:) = q(i ,1-j ,:) !SW Corner - q(1-j ,npy-1+i,:) = q(i ,npy-1+j,:) !NW Corner - q(npx-1+j,1-i ,:) = q(npx-1-i+1,1-j ,:) !SE Corner - q(npx-1+j,npy-1+i,:) = q(npx-1-i+1,npy-1+j,:) !NE Corner - enddo - enddo - end select - - - end subroutine fill_AGRID_scalar_corners - - - !#################################################################### - subroutine fill_BGRID_scalar_corners(q, ng, npx, npy, isd, jsd, fill) - integer, intent(in) :: ng, npx, npy, isd, jsd - integer, intent(in) :: fill - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: q - - integer :: i, j - - select case (fill) - case (XDir) - do j=1,ng - do i=1,ng - q(1-i ,1-j ,:) = q(1-j ,i+1 ,:) !SW Corner - q(1-i ,npy+j,:) = q(1-j ,npy-i ,:) !NW Corner - q(npx+i,1-j ,:) = q(npx+j,i+1 ,:) !SE Corner - q(npx+i,npy+j,:) = q(npx+j,npy-i ,:) !NE Corner - enddo - enddo - case (YDir) - do j=1,ng - do i=1,ng - q(1-j ,1-i ,:) = q(i+1 ,1-j ,:) !SW Corner - q(1-j ,npy+i,:) = q(i+1 ,npy+j ,:) !NW Corner - q(npx+j,1-i ,:) = q(npx-i,1-j ,:) !SE Corner - q(npx+j,npy+i,:) = q(npx-i,npy+j ,:) !NE Corner - enddo - enddo - case default - do j=1,ng - do i=1,ng - q(1-i ,1-j ,:) = q(1-j ,i+1 ,:) !SW Corner - q(1-i ,npy+j,:) = q(1-j ,npy-i ,:) !NW Corner - q(npx+i,1-j ,:) = q(npx+j,i+1 ,:) !SE Corner - q(npx+i,npy+j,:) = q(npx+j,npy-i ,:) !NE Corner - enddo - enddo - end select - - - - end subroutine fill_BGRID_scalar_corners - - !#################################################################### - subroutine fill_AGRID_xy_corners(x, y, ng, npx, npy, isd, jsd) - integer, intent(in) :: ng, npx, npy, isd, jsd - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: x - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: y - integer :: i,j - - do j=1,ng - do i=1,ng - x(1-i ,1-j ,:) = y(1-j ,i ,:) !SW Corner - x(1-i ,npy-1+j,:) = y(1-j ,npy-1-i+1,:) !NW Corner - x(npx-1+i,1-j ,:) = y(npx-1+j,i ,:) !SE Corner - x(npx-1+i,npy-1+j,:) = y(npx-1+j,npy-1-i+1,:) !NE Corner - - y(1-j ,1-i ,:) = x(i ,1-j ,:) !SW Corner - y(1-j ,npy-1+i,:) = x(i ,npy-1+j,:) !NW Corner - y(npx-1+j,1-i ,:) = x(npx-1-i+1,1-j ,:) !SE Corner - y(npx-1+j,npy-1+i,:) = x(npx-1-i+1,npy-1+j,:) !NE Corner - enddo - enddo - - end subroutine fill_AGRID_xy_corners - - - - !#################################################################### - subroutine fill_DGRID_xy_corners(x, y, ng, npx, npy, isd, jsd) - integer, intent(in) :: ng, npx, npy, isd, jsd - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: x - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: y - integer :: i,j - - do j=1,ng - do i=1,ng - x(1-i ,1-j , :) = y(1-j ,i , :) !SW Corner - x(1-i ,npy+j , :) = y(1-j ,npy-i, :) !NW Corner - x(npx-1+i,1-j , :) = y(npx+j,i , :) !SE Corner - x(npx-1+i,npy+j , :) = y(npx+j,npy-i, :) !NE Corner - y(1-i ,1-j , :) = x(j ,1-i , :) !SW Corner - y(1-i ,npy-1+j, :) = x(j ,npy+i, :) !NW Corner - y(npx+i ,1-j , :) = x(npx-j,1-i , :) !SE Corner - y(npx+i ,npy-1+j, :) = x(npx-j,npy+i, :) !NE Corner - enddo - enddo - - end subroutine fill_DGRID_xy_corners - - !############################################################### - subroutine mid_pt_sphere(p1, p2, pm) - real, intent(IN) :: p1(2), p2(2) - real, intent(OUT) :: pm(2) - !------------------------------------------ - real :: e1(3), e2(3), e3(3) - - call latlon2xyz(p1, e1) - call latlon2xyz(p2, e2) - call mid_pt3_cart(e1, e2, e3) - call cart_to_latlon(1, e3, pm(1), pm(2)) - - end subroutine mid_pt_sphere - - - !##################################################################### - subroutine mid_pt3_cart(p1, p2, e) - real, intent(IN) :: p1(3), p2(3) - real, intent(OUT) :: e(3) - ! - real (f_p):: q1(3), q2(3) - real (f_p):: dd, e1, e2, e3 - integer k - - do k=1,3 - q1(k) = p1(k) - q2(k) = p2(k) - enddo - - e1 = q1(1) + q2(1) - e2 = q1(2) + q2(2) - e3 = q1(3) + q2(3) - - dd = sqrt( e1**2 + e2**2 + e3**2 ) - e1 = e1 / dd - e2 = e2 / dd - e3 = e3 / dd - - e(1) = e1 - e(2) = e2 - e(3) = e3 - - end subroutine mid_pt3_cart - - subroutine latlon2xyz(p, e) - ! - ! Routine to map (lon, lat) to (x,y,z) - ! - real, intent(in) :: p(2) - real, intent(out):: e(3) - - integer n - real (f_p):: q(2) - real (f_p):: e1, e2, e3 - - do n=1,2 - q(n) = p(n) - enddo - - e1 = cos(q(2)) * cos(q(1)) - e2 = cos(q(2)) * sin(q(1)) - e3 = sin(q(2)) - !----------------------------------- - ! Truncate to the desired precision: - !----------------------------------- - e(1) = e1 - e(2) = e2 - e(3) = e3 - - end subroutine latlon2xyz - - - - subroutine cart_to_latlon(np, q, xs, ys) - ! vector version of cart_to_latlon1 - integer, intent(in):: np - real, intent(inout):: q(3,np) - real, intent(inout):: xs(np), ys(np) - ! local - real, parameter:: esl=1.d-10 - real (f_p):: p(3) - real (f_p):: dist, lat, lon - integer i,k - - do i=1,np - do k=1,3 - p(k) = q(k,i) - enddo - dist = sqrt(p(1)**2 + p(2)**2 + p(3)**2) - do k=1,3 - p(k) = p(k) / dist - enddo - - if ( (abs(p(1))+abs(p(2))) < esl ) then - lon = real(0.,kind=f_p) - else - lon = atan2( p(2), p(1) ) ! range [-pi,pi] - endif - - if ( lon < 0.) lon = real(2.,kind=f_p)*pi + lon - ! RIGHT_HAND system: - lat = asin(p(3)) - - xs(i) = lon - ys(i) = lat - ! q Normalized: - do k=1,3 - q(k,i) = p(k) - enddo - enddo - - end subroutine cart_to_latlon - - !##################################################################### - real function cos_angle(p1, p2, p3) - ! As spherical_angle, but returns the cos(angle) - ! p3 - ! ^ - ! | - ! | - ! p1 ---> p2 - ! - real, intent(in):: p1(3), p2(3), p3(3) - - real (f_p):: e1(3), e2(3), e3(3) - real (f_p):: px, py, pz - real (f_p):: qx, qy, qz - real (f_p):: angle, ddd - integer n - - do n=1,3 - e1(n) = p1(n) - e2(n) = p2(n) - e3(n) = p3(n) - enddo - - !------------------------------------------------------------------- - ! Page 41, Silverman's book on Vector Algebra; spherical trigonmetry - !------------------------------------------------------------------- - ! Vector P:= e1 X e2 - px = e1(2)*e2(3) - e1(3)*e2(2) - py = e1(3)*e2(1) - e1(1)*e2(3) - pz = e1(1)*e2(2) - e1(2)*e2(1) - - ! Vector Q: e1 X e3 - qx = e1(2)*e3(3) - e1(3)*e3(2) - qy = e1(3)*e3(1) - e1(1)*e3(3) - qz = e1(1)*e3(2) - e1(2)*e3(1) - - ! ddd = sqrt[ (P*P) (Q*Q) ] - ddd = sqrt( (px**2+py**2+pz**2)*(qx**2+qy**2+qz**2) ) - if ( ddd > 0.d0 ) then - angle = (px*qx+py*qy+pz*qz) / ddd - else - angle = 1.d0 - endif - cos_angle = angle - - end function cos_angle - - - !##################################################################### - subroutine cell_center2(q1, q2, q3, q4, e2) - real, intent(in ) :: q1(2), q2(2), q3(2), q4(2) - real, intent(out) :: e2(2) - ! Local - real p1(3), p2(3), p3(3), p4(3) - real ec(3) - real dd - integer k - - call latlon2xyz(q1, p1) - call latlon2xyz(q2, p2) - call latlon2xyz(q3, p3) - call latlon2xyz(q4, p4) - - do k=1,3 - ec(k) = p1(k) + p2(k) + p3(k) + p4(k) - enddo - dd = sqrt( ec(1)**2 + ec(2)**2 + ec(3)**2 ) - - do k=1,3 - ec(k) = ec(k) / dd - enddo - - call cart_to_latlon(1, ec, e2(1), e2(2)) - - end subroutine cell_center2 - - - !##################################################################### - subroutine read_grid_file(regional) - - logical, intent(in) :: regional ! Is this a regional run? - integer :: fsize=65536 - integer :: status, ncid, id_dim, id_var, ncid2, t - integer :: ni, nj, i, j, tw, te, ip - real :: g1(2), g2(2), g3(2), g4(2), g5(2) - real :: p1(3), p3(3) - real :: p_lL(2), p_uL(2), p_lR(2), p_uR(2) - character(len=256) :: tile_file - real, allocatable, dimension(:,:) :: tmpvar, geolon_c_nest, geolat_c_nest - real, allocatable, dimension(:,:,:) :: geolon_c, geolat_c - real, allocatable, dimension(:,:,:) :: geolon_t, geolat_t, cos_sg, grid3 - integer :: start(4), nread(4) - - print*, "Read the grid from file "//trim(grid_file) - - status=NF__OPEN(trim(grid_file),NF_NOWRITE,fsize,ncid) - call handle_err(status, 'Open file '//trim(grid_file) ) - - status=nf_inq_dimid(ncid, 'ntiles', id_dim) - call handle_err(status, 'inquire dimension ntiles from file '//trim(grid_file) ) - status=nf_inq_dimlen(ncid,id_dim,ntiles) - call handle_err(status, 'inquire dimension ntiles length from file '//trim(grid_file) ) - - if( ntiles == 6) then - print*, " read_grid_file: This is a global grid." - elseif( ntiles == 7 )then - print*, " read_grid_file: This is a nested grid." - elseif( ntiles == 1 )then - print*, " read_grid_file: This is a standalone regional grid." - endif - - !--- loop through ntiles and make sure the grid size match between all the tiles. - - start(:) = 1 - nread(:) = 1 - - do t = 1, ntiles - start(2) = t; nread(1) = 255 - status = nf_inq_varid(ncid, 'gridfiles', id_var) - call handle_err(status, 'inquire varid of gridfiles from file '//trim(grid_file) ) - - !--- Obtain the grid file name from the mosaic file. - status = nf_get_vara_text(ncid, id_var, start, nread, tile_file ) - call handle_err(status, 'get value of gridfiles from file '//trim(grid_file) ) - - status=NF__OPEN(trim(tile_file),NF_NOWRITE,fsize,ncid2) - call handle_err(status, 'Open file '//trim(tile_file) ) - - status=nf_inq_dimid(ncid2, 'nx', id_dim) - call handle_err(status, 'inquire dimension nx from file '//trim(grid_file) ) - status=nf_inq_dimlen(ncid2,id_dim,ni) - call handle_err(status, 'inquire dimension nx length from file '//trim(grid_file) ) - status=nf_inq_dimid(ncid2, 'ny', id_dim) - call handle_err(status, 'inquire dimension ny from file '//trim(grid_file) ) - status=nf_inq_dimlen(ncid2,id_dim,nj) - call handle_err(status, 'inquire dimension ny length '//'from file '//trim(grid_file) ) - if( t == 1 ) then - ! ni and nj must be even - if(mod(ni,2) .NE. 0 .or. mod(nj,2) .NE. 0) & - call handle_err(-1, "read_grid_file: ni and nj must be even") - - nx = ni/2 - ny = nj/2 - npx = nx + 1 - npy = ny + 1 - is = 1 ; ie = nx - js = 1 ; je = ny - isd=is-ng; ied=ie+ng - jsd=js-ng; jed=je+ng - - allocate(tmpvar(ni+1,nj+1)) - allocate(geolon_c(isd:ied+1,jsd:jed+1,6)) - allocate(geolat_c(isd:ied+1,jsd:jed+1,6)) - else if ( t == 7 ) then ! nested grid - if(mod(ni,2) .NE. 0 .or. mod(nj,2) .NE. 0) & - call handle_err(-1, "read_grid_file: ni and nj must be even") - - nx_nest = ni/2 - ny_nest = nj/2 - npx_nest = nx_nest + 1 - npy_nest = ny_nest + 1 - is_nest = 1 ; ie_nest = nx - js_nest = 1 ; je_nest = ny - isd_nest=is_nest-ng; ied_nest=ie_nest+ng - jsd_nest=js_nest-ng; jed_nest=je_nest+ng - deallocate(tmpvar) - allocate(tmpvar(ni+1,nj+1)) - allocate(geolon_c_nest(isd:ied+1,jsd:jed+1)) - allocate(geolat_c_nest(isd:ied+1,jsd:jed+1)) - else - !-- make sure ni and nj match between tiles - if(ni .ne. nx*2 .OR. nj .ne. ny*2) & - call handle_err(-1, "mismatch of grid size between tiles") - endif - - status=nf_inq_varid(ncid2, 'x', id_var) - call handle_err(status, 'inquire varid of x from file '//trim(grid_file) ) - status=nf_get_var_double(ncid2, id_var, tmpvar) - call handle_err(status, 'inquire data of x from file '//trim(grid_file) ) - if(t==7) then - geolon_c_nest(1:npx,1:npy) = tmpvar(1:ni+1:2,1:nj+1:2)*PI/180. - else - geolon_c(1:npx,1:npy,t) = tmpvar(1:ni+1:2,1:nj+1:2)*PI/180. - endif - - status=nf_inq_varid(ncid2, 'y', id_var) - call handle_err(status, 'inquire varid of y from file '//trim(grid_file) ) - status=nf_get_var_double(ncid2, id_var, tmpvar) - call handle_err(status, 'inquire data of y from file '//trim(grid_file) ) - if(t==7) then - geolat_c_nest(1:npx,1:npy) = tmpvar(1:ni+1:2,1:nj+1:2)*PI/180. - else - geolat_c(1:npx,1:npy,t) = tmpvar(1:ni+1:2,1:nj+1:2)*PI/180. - endif - status = nf_close(ncid2) - call handle_err(status, "close file "//trim(tile_file)) - enddo - - deallocate(tmpvar) - - status = nf_close(ncid) - call handle_err(status, "close file "//trim(grid_file)) - - is = 1 ; ie = nx - js = 1 ; je = ny - isd=is-ng; ied=ie+ng - jsd=js-ng; jed=je+ng - - if( .not. regional ) then - call fill_cubic_grid_halo(geolon_c, geolon_c, ng, 1, 1, 1, 1) - call fill_cubic_grid_halo(geolat_c, geolat_c, ng, 1, 1, 1, 1) - if(.not. nested) call fill_bgrid_scalar_corners(geolon_c, ng, npx, npy, isd, jsd, XDir) - if(.not. nested) call fill_bgrid_scalar_corners(geolat_c, ng, npx, npy, isd, jsd, YDir) - endif - - !--- compute grid cell center - allocate(geolon_t(isd:ied,jsd:jed,ntiles), geolat_t(isd:ied,jsd:jed,ntiles)) - - geolon_t(:,:,:) = -1.e25 - geolat_t(:,:,:) = -1.e25 - - do t = 1, ntiles - do j=js,je ; do i=is,ie - g1(1) = geolon_c(i,j,t); g1(2) = geolat_c(i,j,t) - g2(1) = geolon_c(i+1,j,t); g2(2) = geolat_c(i+1,j,t) - g3(1) = geolon_c(i,j+1,t); g3(2) = geolat_c(i,j+1,t) - g4(1) = geolon_c(i+1,j+1,t); g4(2) = geolat_c(i+1,j+1,t) - call cell_center2(g1, g2, g3, g4, g5 ) - geolon_t(i,j,t) = g5(1) - geolat_t(i,j,t) = g5(2) - enddo ; enddo - enddo - - - if( .not. regional ) then - call fill_cubic_grid_halo(geolon_t, geolon_t, ng, 0, 0, 1, 1) - call fill_cubic_grid_halo(geolat_t, geolat_t, ng, 0, 0, 1, 1) - if (.not. nested) call fill_AGRID_scalar_corners(geolon_t, ng, npx, npy, isd, jsd, XDir) - if (.not. nested) call fill_AGRID_scalar_corners(geolat_t, ng, npx, npy, isd, jsd, YDir) - endif - - !--- compute dx, dy - allocate(dx(isd:ied,jsd:jed+1,ntiles)) - allocate(dy(isd:ied+1,jsd:jed,ntiles)) - do t = 1, ntiles - do j = js, je+1 ; do i = is, ie - g1(1) = geolon_c(i ,j,t) - g1(2) = geolat_c(i ,j,t) - g2(1) = geolon_c(i+1,j,t) - g2(2) = geolat_c(i+1,j,t) - dx(i,j,t) = great_circle_dist( g2, g1, radius ) - enddo ; enddo - enddo - if( stretch_fac /= 1 ) then - do t = 1, ntiles - do j = js, je - do i = is, ie+1 - g1(1) = geolon_c(i,j, t) - g1(2) = geolat_c(i,j, t) - g2(1) = geolon_c(i,j+1,t) - g2(2) = geolat_c(i,j+1,t) - dy(i,j,t) = great_circle_dist( g2, g1, radius ) - enddo - enddo - enddo - else - do t = 1, ntiles - do j = js, je - do i = is, ie+1 - dy(i,j,t) = dx(j,i,t) - enddo - enddo - enddo - endif - - if( .not. regional ) then - !--- make sure it is consitent between tiles. The following maybe not necessary. - do t = 1, ntiles - if(mod(t,2) ==0) then ! tile 2 4 6 - tw = t - 1 - te = t + 2 - if(te > ntiles) te = te - ntiles - dy(is, js:je,t) = dy(ie+1,js:je,tw) ! west boundary - dy(ie+1, js:je, t) = dx(ie:is:-1,js, te) ! east boundary - else - tw = t - 2 - if( tw <= 0) tw = tw + ntiles - te = t + 1 - dy(is, js:je, t) = dx(ie:is:-1, je+1, tw) ! west boundary - dy(ie+1, js:je,t) = dy(1,js:je,te) ! east boundary - endif - enddo - - call fill_cubic_grid_halo(dx, dy, ng, 0, 1, 1, 1) - call fill_cubic_grid_halo(dy, dx, ng, 1, 0, 1, 1) - - if (.not. nested) call fill_dgrid_xy_corners(dx, dy, ng, npx, npy, isd, jsd) - endif - - !--- compute dxa and dya ----- - allocate(dxa(isd:ied,jsd:jed,ntiles)) - allocate(dya(isd:ied,jsd:jed,ntiles)) - do t = 1, ntiles - do j=js,je ; do i=is,ie - g1(1) = geolon_c(i,j,t); g1(2) = geolat_c(i,j,t) - g2(1) = geolon_c(i,j+1,t); g2(2) = geolat_c(i,j+1,t) - call mid_pt_sphere(g1, g2, g3) - g1(1) = geolon_c(i+1,j,t); g1(2) = geolat_c(i+1,j,t) - g2(1) = geolon_c(i+1,j+1,t); g2(2) = geolat_c(i+1,j+1,t) - call mid_pt_sphere(g1, g2, g4) - dxa(i,j,t) = great_circle_dist( g4, g3, radius ) - g1(1) = geolon_c(i,j,t); g1(2) = geolat_c(i,j,t) - g2(1) = geolon_c(i+1,j,t); g2(2) = geolat_c(i+1,j,t) - call mid_pt_sphere(g1, g2, g3) - g1(1) = geolon_c(i,j+1,t); g1(2) = geolat_c(i,j+1,t) - g2(1) = geolon_c(i+1,j+1,t); g2(2) = geolat_c(i+1,j+1,t) - call mid_pt_sphere(g1, g2, g4) - dya(i,j,t) = great_circle_dist( g4, g3, radius ) - enddo; enddo - enddo - - if( .not.regional ) then - call fill_cubic_grid_halo(dxa, dya, ng, 0, 0, 1, 1) - call fill_cubic_grid_halo(dya, dxa, ng, 0, 0, 1, 1) - - if (.not. nested) call fill_AGRID_xy_corners(dxa, dya, ng, npx, npy, isd, jsd) - endif - - !--- compute dxc and dyc - allocate(dxc(isd:ied+1,jsd:jed,ntiles)) - allocate(dyc(isd:ied,jsd:jed+1,ntiles)) - do t = 1, ntiles - do j=jsd,jed - do i=isd+1,ied - g1(1) = geolon_c(i,j,t); g1(2) = geolat_c(i,j,t) - g2(1) = geolon_c(i-1,j,t); g2(2) = geolat_c(i-1,j,t) - dxc(i,j,t) = great_circle_dist(g1, g2, radius) - enddo - dxc(isd,j,t) = dxc(isd+1,j,t) - dxc(ied+1,j,t) = dxc(ied,j,t) - enddo - - do j=jsd+1,jed - do i=isd,ied - g1(1) = geolon_c(i,j,t); g1(2) = geolat_c(i,j,t) - g2(1) = geolon_c(i,j-1,t); g2(2) = geolat_c(i,j-1,t) - dyc(i,j,t) = great_circle_dist(g1, g2, radius) - enddo - enddo - do i=isd,ied - dyc(i,jsd,t) = dyc(i,jsd+1,t) - dyc(i,jed+1,t) = dyc(i,jed,t) - end do - enddo - - !--- compute area - allocate(area(isd:ied,jsd:jed,ntiles)) - do t = 1, ntiles - do j=js,je - do i=is,ie - p_lL(1) = geolon_c(i ,j ,t) ; p_lL(2) = geolat_c(i ,j ,t) - p_uL(1) = geolon_c(i ,j+1,t) ; p_uL(2) = geolat_c(i ,j+1,t) - p_lR(1) = geolon_c(i+1,j ,t) ; p_lR(2) = geolat_c(i+1,j ,t) - p_uR(1) = geolon_c(i+1,j+1,t) ; p_uR(2) = geolat_c(i+1,j+1,t) - - ! Spherical Excess Formula - area(i,j,t) = get_area(p_lL, p_uL, p_lR, p_uR, radius) - enddo - enddo - enddo - - if( .not.regional ) then - call fill_cubic_grid_halo(area, area, ng, 0, 0, 1, 1) - endif - - da_min = minval(area(is:ie,js:je,:)) - - !--- compute sin_sg - allocate(sin_sg(4,isd:ied,jsd:jed,ntiles)) - allocate(cos_sg(4,isd:ied,jsd:jed)) - allocate(grid3(3, npx, npy)) - cos_sg(:,:,:) = big_number - sin_sg(:,:,:,:) = tiny_number - - ! 9---4---8 - ! | | - ! 1 5 3 - ! | | - ! 6---2---7 - do t = 1, ntiles - do j=js,je+1 - do i = is,ie+1 - g1(1) = geolon_c(i,j,t) - g1(2) = geolat_c(i,j,t) - call latlon2xyz(g1, grid3(:,i,j)) - enddo - enddo - do j=js,je - do i=is,ie - g1(1) = geolon_t(i,j,t); g1(2) = geolat_t(i,j,t) - call latlon2xyz(g1, p3) ! righ-hand system consistent with grid3 - call mid_pt3_cart(grid3(1,i,j), grid3(1,i,j+1), p1) - cos_sg(1,i,j) = cos_angle( p1, p3, grid3(1,i,j+1) ) - call mid_pt3_cart(grid3(1,i,j), grid3(1,i+1,j), p1) - cos_sg(2,i,j) = cos_angle( p1, grid3(1,i+1,j), p3 ) - call mid_pt3_cart(grid3(1,i+1,j), grid3(1,i+1,j+1), p1) - cos_sg(3,i,j) = cos_angle( p1, p3, grid3(1,i+1,j) ) - call mid_pt3_cart(grid3(1,i,j+1), grid3(1,i+1,j+1), p1) - cos_sg(4,i,j) = cos_angle( p1, grid3(1,i,j+1), p3 ) - enddo - enddo - - do ip=1,4 - do j=js,je - do i=is,ie - sin_sg(ip,i,j,t) = min(1.0, sqrt( max(0., 1.-cos_sg(ip,i,j)**2) ) ) - enddo - enddo - enddo - enddo - - if( .not.regional ) then - do ip=1,4 - call fill_cubic_grid_halo(sin_sg(ip,:,:,:), sin_sg(ip,:,:,:), ng, 0, 0, 1, 1) - enddo - endif - - deallocate(cos_sg, grid3, geolon_c, geolat_c, geolon_t, geolat_t) - - - end subroutine read_grid_file - - - !##################################################################### - subroutine read_topo_file(regional) - - logical,intent(in) :: regional ! Is this a run with a regional domain? - integer :: fsize=65536 - integer :: status, ncid, id_var, ndim, dimsiz, nt - character(len=256) :: tile_file - character(len=32) :: text - integer :: len, t, dims(2) - real :: tmp(is:ie,js:je) - - allocate(oro(isd:ied,jsd:jed,ntiles)) - allocate(mask(isd:ied,jsd:jed,ntiles)) - oro = -big_number - mask = 0 - - !--- make sure topo_file suffix is not ".nc" - len = len_trim(topo_file) - if( index(topo_file, '.nc', back=.true.) == len-2) then - call handle_err(-1, "remove .nc from namelist topo_file="//trim(topo_file) ) - endif - - !--- loop through each tile file to get the orography - do nt = 1, ntiles - - if( regional ) then - t = nt + 6 ! The single regional tile must be #7 for now. - else - t = nt - endif - - write(text, '(i1.1)' ) t - tile_file = trim(topo_file)//'.tile'//trim(text)//'.nc' - status=NF__OPEN(trim(tile_file),NF_NOWRITE,fsize,ncid) - call handle_err(status, 'Open file '//trim(tile_file) ) - - status=nf_inq_varid(ncid, topo_field, id_var) - call handle_err(status, 'inquire varid of '//trim(topo_field)//' from file '//trim(tile_file) ) - - status = nf_inq_varndims(ncid, id_var, ndim) - call handle_err(status, 'inquire ndims of '//trim(topo_field)//' from file '//trim(tile_file) ) - - if(ndim .NE. 2) call handle_err(-1, 'ndims of '//trim(topo_field)//' from file '// & - trim(tile_file)//' should be 2') - - ! get data dimension and should match grid file size - status = nf_inq_vardimid(ncid, id_var,dims); - call handle_err(status, 'inquire dimid of '//trim(topo_field)//' from file '//trim(tile_file) ) - - status = nf_inq_dimlen(ncid, dims(1), dimsiz) - call handle_err(status, 'inquire first dimension length of '//trim(topo_field)//' from file '//trim(tile_file) ) - if(dimsiz .NE. nx) call handle_err(-1, "mismatch of lon dimension size between "// & - trim(grid_file)//' and '//trim(tile_file) ) - - status = nf_inq_dimlen(ncid, dims(2), dimsiz) - call handle_err(status, 'inquire second dimension length of '//trim(topo_field)//' from file '//trim(tile_file) ) - - if(dimsiz .NE. ny) call handle_err(-1, "mismatch of lat dimension size between "// & - trim(grid_file)//' and '//trim(tile_file) ) - - status = nf_get_var_double(ncid, id_var, oro(is:ie,js:je,nt)) - call handle_err(status, 'get the value of '//trim(topo_field)//' from file '//trim(tile_file) ) - - status=nf_inq_varid(ncid, mask_field, id_var) - call handle_err(status, 'inquire varid of '//trim(mask_field)//' from file '//trim(tile_file) ) - - status = nf_get_var_double(ncid, id_var, tmp) - call handle_err(status, 'get the value of '//trim(mask_field)//' from file '//trim(tile_file) ) - - mask(is:ie,js:je,nt) = tmp - - status = nf_close(ncid) - call handle_err(status, "close file "//trim(tile_file)) - enddo - - if( .not.regional ) then - !--- update halo - call fill_cubic_grid_halo(oro, oro, ng, 0, 0, 1, 1) - call fill_cubic_grid_halo(mask, mask, ng, 0, 0, 1, 1) - endif - - - - end subroutine read_topo_file - - !############################################################################## - !--- replace the topo_field - subroutine write_topo_file(is,ie,js,je,ntiles,q,regional) - integer, intent(in) :: is,ie,js,je,ntiles - real, intent(in) :: q(is:ie,js:je,ntiles) - logical, intent(in) :: regional - - integer :: fsize=65536 - integer :: nt, t, status, ncid, id_var - character(len=256) :: tile_file - character(len=3) :: text - !--- loop through each tile file to update topo_field - - do nt = 1, ntiles - - if( regional ) then - t = nt + 6 - else - t = nt - endif - - write(text, '(i1.1)' ) t - tile_file = trim(topo_file)//'.tile'//trim(text)//'.nc' - status=NF__OPEN(trim(tile_file),NF_WRITE,fsize,ncid) - call handle_err(status, 'write_topo_file: Open file '//trim(tile_file) ) - - status=nf_inq_varid(ncid, topo_field, id_var) - call handle_err(status, 'write_topo_file:inquire varid of '//trim(topo_field)//' from file '//trim(tile_file) ) - - status = nf_put_var_double(ncid, id_var, q(:,:,nt)) - call handle_err(status, 'write_topo_file: put the value of '//trim(topo_field)//' from file '//trim(tile_file) ) - - status = nf_close(ncid) - call handle_err(status, "write_topo_file: close file "//trim(tile_file)) - enddo - - - end subroutine write_topo_file - - !############################################################################## - ! this routine fill the halo points for the cubic grid. ioff and joff is used to distinguish - ! T, C, E, or N-cell - subroutine fill_cubic_grid_halo(data, data2, halo, ioff, joff, sign1, sign2) - integer, intent(in) :: halo - real, dimension(1-halo:,1-halo:,:), intent(inout) :: data, data2 - integer, intent(in) :: ioff, joff, sign1, sign2 - integer :: lw, le, ls, ln - integer :: i, tile - - ntiles = size(data,3) - - do tile = 1, ntiles - if(mod(tile,2) == 0) then ! tile 2, 4, 6 - lw = tile - 1; le = tile + 2; ls = tile - 2; ln = tile + 1 - if(le > 6 ) le = le - 6 - if(ls < 1 ) ls = ls + 6 - if(ln > 6 ) ln = ln - 6 - data(1-halo:0, 1:ny+joff, tile) = data(nx-halo+1:nx, 1:ny+joff, lw) ! west - do i = 1, halo - data(nx+i+ioff, 1:ny+joff, tile) = sign1*data2(nx+joff:1:-1, i+ioff, le) ! east - end do - do i = 1, halo - data(1:nx+ioff, 1-i, tile) = sign2*data2(nx-i+1, ny+ioff:1:-1, ls) ! south - end do - data(1:nx+ioff, ny+1+joff:ny+halo+joff, tile) = data(1:nx+ioff, 1+joff:halo+joff, ln) ! north - else ! tile 1, 3, 5 - lw = tile - 2; le = tile + 1; ls = tile - 1; ln = tile + 2 - if(lw < 1 ) lw = lw + 6 - if(ls < 1 ) ls = ls + 6 - if(ln > 6 ) ln = ln - 6 - do i = 1, halo - data(1-i, 1:ny+joff, tile) = sign1*data2(nx+joff:1:-1, ny-i+1, lw) ! west - end do - data(nx+1+ioff:nx+halo+ioff, 1:ny+joff, tile) = data(1+ioff:halo+ioff, 1:ny+joff, le) ! east - data(1:nx+ioff, 1-halo:0, tile) = data(1:nx+ioff, ny-halo+1:ny, ls) ! south - do i = 1, halo - data(1:nx+ioff, ny+i+joff, tile) = sign2*data2(i+joff, ny+ioff:1:-1, ln) ! north - end do - end if - enddo - - end subroutine fill_cubic_grid_halo - - !##################################################################### - subroutine FV3_zs_filter (is, ie, js, je, isd, ied, jsd, jed, npx, npy, npx_global, ntiles, & - grid_type, stretch_fac, nested, area, dxa, dya, dx, dy, dxc, dyc, & - sin_sg, phis, regional ) - integer, intent(in) :: is, ie, js, je, ntiles - integer, intent(in) :: isd, ied, jsd, jed, npx, npy, npx_global, grid_type - real, intent(in), dimension(isd:ied,jsd:jed, ntiles)::area, dxa, dya - real, intent(in), dimension(isd:ied, jsd:jed+1, ntiles):: dx, dyc - real, intent(in), dimension(isd:ied+1,jsd:jed, ntiles):: dy, dxc - - real, intent(IN):: sin_sg(4,isd:ied,jsd:jed,ntiles) - real, intent(IN):: stretch_fac - logical, intent(IN) :: nested, regional - real, intent(inout):: phis(isd:ied,jsd,jed,ntiles) - real:: cd2 - integer mdim, n_del2, n_del4 - - mdim = nint( real(npx_global) * min(10., stretch_fac) ) - - ! Del-2: high resolution only - if ( npx_global<=97 ) then - n_del2 = 0 - elseif ( npx_global<=193 ) then - n_del2 = 1 - else - n_del2 = 2 - endif - cd2 = 0.16*da_min - ! Applying strong 2-delta-filter: - if ( n_del2 > 0 ) & - call two_delta_filter(is,ie,js,je,isd,ied,jsd,jed, npx, npy, ntiles, phis, area, & - dx, dy, dxa, dya, dxc, dyc, sin_sg, cd2, zero_ocean, & - .true.,0, grid_type, mask, nested, n_del2, regional) - - ! MFCT Del-4: - if ( mdim<=193 ) then - n_del4 = 1 - elseif ( mdim<=1537 ) then - n_del4 = 2 - else - n_del4 = 3 - endif - call del4_cubed_sphere(is,ie,js,je,isd,ied,jsd,jed,npx, npy, ntiles, & - phis, area, dx, dy, dxc, dyc, sin_sg, n_del4, zero_ocean, mask, nested, regional) - ! Applying weak 2-delta-filter: - cd2 = 0.12*da_min - call two_delta_filter(is,ie,js,je,isd,ied,jsd,jed,npx, npy, ntiles, & - phis, area, dx, dy, dxa, dya, dxc, dyc, sin_sg, cd2, zero_ocean, & - .true., 1, grid_type, mask, nested, n_del2_weak, regional) - - end subroutine FV3_zs_filter - - !##################################################################### - subroutine two_delta_filter(is, ie, js, je, isd, ied, jsd, jed, npx, npy, ntiles, & - q, area, dx, dy, dxa, dya, dxc, dyc, sin_sg, cd, zero_ocean, & - check_slope, filter_type, grid_type, mask, nested, ntmax, regional) - integer, intent(in) :: is, ie, js, je - integer, intent(in) :: isd, ied, jsd, jed - integer, intent(in) :: npx, npy, grid_type - integer, intent(in) :: ntmax, ntiles - integer, intent(in) :: filter_type ! 0: strong, 1: weak - real, intent(in) :: cd - ! INPUT arrays - real, intent(in)::area(isd:ied, jsd:jed, ntiles) - real, intent(in):: dx(isd:ied, jsd:jed+1, ntiles) - real, intent(in):: dy(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dxa(isd:ied, jsd:jed, ntiles) - real, intent(in):: dya(isd:ied, jsd:jed, ntiles) - real, intent(in):: dxc(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dyc(isd:ied, jsd:jed+1, ntiles) - real, intent(in):: sin_sg(4,isd:ied,jsd:jed, ntiles) - real, intent(in):: mask(isd:ied, jsd:jed, ntiles) ! 0==water, 1==land - logical, intent(in):: zero_ocean, check_slope - logical, intent(in):: nested, regional - ! OUTPUT arrays - real, intent(inout):: q(isd:ied, jsd:jed,ntiles) - ! Local: - real, parameter:: p1 = 7./12. - real, parameter:: p2 = -1./12. - real, parameter:: c1 = -2./14. - real, parameter:: c2 = 11./14. - real, parameter:: c3 = 5./14. - - real:: ddx(is:ie+1,js:je), ddy(is:ie,js:je+1) - logical:: extm(is-1:ie+1) - logical:: ext2(is:ie,js-1:je+1) - real:: a1(is-1:ie+2) - real:: a2(is:ie,js-1:je+2) - real:: a3(is:ie,js:je,ntiles) - real:: smax, smin, m_slope, fac - integer:: i,j, nt, t - integer:: is1, ie2, js1, je2 - - if ( .not. nested .and. grid_type<3 ) then - is1 = max(3,is-1); ie2 = min(npx-2,ie+2) - js1 = max(3,js-1); je2 = min(npy-2,je+2) - else - is1 = is-1; ie2 = ie+2 - js1 = js-1; je2 = je+2 - end if - - if ( check_slope ) then - m_slope = max_slope - else - m_slope = 10. - endif - - - do nt=1, ntmax - if( .not.regional ) then - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - endif - - ! Check slope - if ( nt==1 .and. check_slope ) then - do t = 1, ntiles - do j=js,je - do i=is,ie+1 - ddx(i,j) = (q(i,j,t) - q(i-1,j,t))/dxc(i,j,t) - ddx(i,j) = abs(ddx(i,j)) - enddo - enddo - do j=js,je+1 - do i=is,ie - ddy(i,j) = (q(i,j,t) - q(i,j-1,t))/dyc(i,j,t) - ddy(i,j) = abs(ddy(i,j)) - enddo - enddo - do j=js,je - do i=is,ie - a3(i,j,t) = max( ddx(i,j), ddx(i+1,j), ddy(i,j), ddy(i,j+1) ) - enddo - enddo - enddo - smax = maxval(a3(is:ie,js:je,:)) - write(*,*) 'Before filter: Max_slope=', smax - endif - - - ! First step: average the corners: - if ( .not. nested .and. nt==1 ) then - do t = 1, ntiles - q(1,1,t) = (q(1,1,t)*area(1,1,t)+q(0,1,t)*area(0,1,t)+q(1,0,t)*area(1,0,t)) & - / ( area(1,1,t)+ area(0,1,t)+ area(1,0,t) ) - q(0,1,t) = q(1,1,t) - q(1,0,t) = q(1,1,t) - - q(ie, 1,t) = (q(ie,1,t)*area(ie,1,t)+q(npx,1,t)*area(npx,1,t)+q(ie,0,t)*area(ie,0,t)) & - / ( area(ie,1,t)+ area(npx,1,t)+ area(ie,0,t)) - q(npx,1,t) = q(ie,1,t) - q(ie, 0,t) = q(ie,1,t) - - q(1, je,t) = (q(1,je,t)*area(1,je,t)+q(0,je,t)*area(0,je,t)+q(1,npy,t)*area(1,npy,t)) & - / ( area(1,je,t)+ area(0,je,t)+ area(1,npy,t)) - q(0, je,t) = q(1,je,t) - q(1,npy,t) = q(1,je,t) - - q(ie, je,t) = (q(ie,je,t)*area(ie,je,t)+q(npx,je,t)*area(npx,je,t)+q(ie,npy,t)*area(ie,npy,t)) & - / ( area(ie,je,t)+ area(npx,je,t)+ area(ie,npy,t)) - q(npx,je,t) = q(ie,je,t) - q(ie,npy,t) = q(ie,je,t) - enddo - if( .not.regional ) then - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - endif - endif - - do t = 1, ntiles - ! x-diffusive flux: - do j=js,je - - do i=is1, ie2 - a1(i) = p1*(q(i-1,j,t)+q(i,j,t)) + p2*(q(i-2,j,t)+q(i+1,j,t)) - enddo - - if ( (.not. (nested .or. regional)) .and. grid_type<3 ) then - a1(0) = c1*q(-2,j,t) + c2*q(-1,j,t) + c3*q(0,j,t) - a1(1) = 0.5*(((2.*dxa(0,j,t)+dxa(-1,j,t))*q(0,j,t)-dxa(0,j,t)*q(-1,j,t))/(dxa(-1,j,t)+dxa(0,j,t)) & - + ((2.*dxa(1,j,t)+dxa( 2,j,t))*q(1,j,t)-dxa(1,j,t)*q( 2,j,t))/(dxa(1, j,t)+dxa(2,j,t))) - a1(2) = c3*q(1,j,t) + c2*q(2,j,t) +c1*q(3,j,t) - - a1(npx-1) = c1*q(npx-3,j,t) + c2*q(npx-2,j,t) + c3*q(npx-1,j,t) - a1(npx) = 0.5*(((2.*dxa(npx-1,j,t)+dxa(npx-2,j,t))*q(npx-1,j,t)-dxa(npx-1,j,t)*q(npx-2,j,t)) & - /(dxa(npx-2,j,t)+dxa(npx-1,j,t)) & - + ((2.*dxa(npx, j,t)+dxa(npx+1,j,t))*q(npx, j,t)-dxa(npx, j,t)*q(npx+1,j,t))/ & - (dxa(npx, j,t)+dxa(npx+1,j,t))) - a1(npx+1) = c3*q(npx,j,t) + c2*q(npx+1,j,t) + c1*q(npx+2,j,t) - endif - - if ( filter_type == 0 ) then - do i=is-1, ie+1 - if( abs(3.*(a1(i)+a1(i+1)-2.*q(i,j,t))) > abs(a1(i)-a1(i+1)) ) then - extm(i) = .true. - else - extm(i) = .false. - endif - enddo - else - do i=is-1, ie+1 - if ( (a1(i)-q(i,j,t))*(a1(i+1)-q(i,j,t)) > 0. ) then - extm(i) = .true. - else - extm(i) = .false. - endif - enddo - endif - - do i=is,ie+1 - ddx(i,j) = (q(i-1,j,t)-q(i,j,t))/dxc(i,j,t) - if ( extm(i-1).and.extm(i) ) then - ddx(i,j) = 0.5*(sin_sg(3,i-1,j,t)+sin_sg(1,i,j,t))*dy(i,j,t)*ddx(i,j) - elseif ( abs(ddx(i,j)) > m_slope ) then - fac = min(1., max( 0.1, ( abs(ddx(i,j))-m_slope )/m_slope) ) - ddx(i,j) = fac*0.5*(sin_sg(3,i-1,j,t)+sin_sg(1,i,j,t))*dy(i,j,t)*ddx(i,j) - else - ddx(i,j) = 0. - endif - enddo - enddo ! do j=js,je - - ! y-diffusive flux: - do j=js1,je2 - do i=is,ie - a2(i,j) = p1*(q(i,j-1,t)+q(i,j,t)) + p2*(q(i,j-2,t)+q(i,j+1,t)) - enddo - enddo - if ( (.not. (nested .or. regional)) .and. grid_type<3 ) then - do i=is,ie - a2(i,0) = c1*q(i,-2,t) + c2*q(i,-1,t) + c3*q(i,0,t) - a2(i,1) = 0.5*(((2.*dya(i,0,t)+dya(i,-1,t))*q(i,0,t)-dya(i,0,t)*q(i,-1,t))/(dya(i,-1,t)+dya(i,0,t)) & - + ((2.*dya(i,1,t)+dya(i, 2,t))*q(i,1,t)-dya(i,1,t)*q(i, 2,t))/(dya(i, 1,t)+dya(i,2,t))) - a2(i,2) = c3*q(i,1,t) + c2*q(i,2,t) + c1*q(i,3,t) - enddo - - do i=is,ie - a2(i,npy-1) = c1*q(i,npy-3,t) + c2*q(i,npy-2,t) + c3*q(i,npy-1,t) - a2(i,npy) = 0.5*(((2.*dya(i,npy-1,t)+dya(i,npy-2,t))*q(i,npy-1,t)-dya(i,npy-1,t)*q(i,npy-2,t))/ & - (dya(i,npy-2,t)+dya(i,npy-1,t)) & - + ((2.*dya(i,npy,t)+dya(i,npy+1,t))*q(i,npy,t)-dya(i,npy,t)*q(i,npy+1,t))/& - (dya(i,npy,t)+dya(i,npy+1,t))) - a2(i,npy+1) = c3*q(i,npy,t) + c2*q(i,npy+1,t) + c1*q(i,npy+2,t) - enddo - endif - - if ( filter_type == 0 ) then - do j=js-1,je+1 - do i=is,ie - if( abs(3.*(a2(i,j)+a2(i,j+1)-2.*q(i,j,t))) > abs(a2(i,j)-a2(i,j+1)) ) then - ext2(i,j) = .true. - else - ext2(i,j) = .false. - endif - enddo - enddo - else - do j=js-1,je+1 - do i=is,ie - if ( (a2(i,j)-q(i,j,t))*(a2(i,j+1)-q(i,j,t)) > 0. ) then - ext2(i,j) = .true. - else - ext2(i,j) = .false. - endif - enddo - enddo - endif - - do j=js,je+1 - do i=is,ie - ddy(i,j) = (q(i,j-1,t)-q(i,j,t))/dyc(i,j,t) - if ( ext2(i,j-1) .and. ext2(i,j) ) then - ddy(i,j) = 0.5*(sin_sg(4,i,j-1,t)+sin_sg(2,i,j,t))*dx(i,j,t)*ddy(i,j) - elseif ( abs(ddy(i,j))>m_slope ) then - fac = min(1., max(0.1,(abs(ddy(i,j))-m_slope)/m_slope)) - ddy(i,j) = fac*0.5*(sin_sg(4,i,j-1,t)+sin_sg(2,i,j,t))*dx(i,j,t)*ddy(i,j) - else - ddy(i,j) = 0. - endif - enddo - enddo - - if ( zero_ocean ) then - ! Limit diffusive flux over water cells: - do j=js,je - do i=is,ie+1 - ddx(i,j) = max(0., min(mask(i-1,j,t), mask(i,j,t))) * ddx(i,j) - enddo - enddo - do j=js,je+1 - do i=is,ie - ddy(i,j) = max(0., min(mask(i,j-1,t), mask(i,j,t))) * ddy(i,j) - enddo - enddo - endif - - do j=js,je - do i=is,ie - q(i,j,t) = q(i,j,t) + cd/area(i,j,t)*(ddx(i,j)-ddx(i+1,j)+ddy(i,j)-ddy(i,j+1)) - enddo - enddo - enddo ! do t = 1, ntiles - enddo ! nt=1, ntmax - -! Check slope - if ( check_slope ) then - if( .not.regional ) then - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - endif - do t = 1, ntiles - do j=js,je - do i=is,ie+1 - ddx(i,j) = (q(i,j,t) - q(i-1,j,t))/dxc(i,j,t) - ddx(i,j) = abs(ddx(i,j)) - enddo - enddo - do j=js,je+1 - do i=is,ie - ddy(i,j) = (q(i,j,t) - q(i,j-1,t))/dyc(i,j,t) - ddy(i,j) = abs(ddy(i,j)) - enddo - enddo - do j=js,je - do i=is,ie - a3(i,j,t) = max( ddx(i,j), ddx(i+1,j), ddy(i,j), ddy(i,j+1) ) - enddo - enddo - enddo - smax = maxval(a3(is:ie,js:je,:)) - write(*,*) 'After filter: Max_slope=', smax - endif - - end subroutine two_delta_filter - - !##################################################################### - subroutine del2_cubed_sphere(is, ie, js, je, isd, ied, jsd, jed, npx, npy, ntiles,& - q, area, dx, dy, dxc, dyc, sin_sg, nmax, cd, zero_ocean, mask, nested, regional) - integer, intent(in) :: is, ie, js, je - integer, intent(in) :: isd, ied, jsd, jed - integer, intent(in):: npx, npy, ntiles - integer, intent(in):: nmax - real, intent(in):: cd - logical, intent(in):: zero_ocean - ! INPUT arrays - real, intent(in)::area(isd:ied, jsd:jed, ntiles) - real, intent(in):: dx(isd:ied, jsd:jed+1, ntiles) - real, intent(in):: dy(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dxc(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dyc(isd:ied, jsd:jed+1, ntiles) - real, intent(IN):: sin_sg(4,isd:ied,jsd:jed, ntiles) - real, intent(in):: mask(isd:ied, jsd:jed, ntiles) ! 0==water, 1==land - logical, intent(IN) :: nested, regional - - ! OUTPUT arrays - real, intent(inout):: q(is-ng:ie+ng, js-ng:je+ng, ntiles) - ! Local: - real ddx(is:ie+1,js:je), ddy(is:ie,js:je+1) - integer i,j,n,t - - if( .not.regional ) then - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - endif - - do t = 1, ntiles - ! First step: average the corners: - if ( .not. nested) then - q(1,1,t) = (q(1,1,t)*area(1,1,t)+q(0,1,t)*area(0,1,t)+q(1,0,t)*area(1,0,t)) & - / ( area(1,1,t)+ area(0,1,t)+ area(1,0,t) ) - q(0,1,t) = q(1,1,t) - q(1,0,t) = q(1,1,t) - endif - if ( .not. nested) then - q(ie, 1,t) = (q(ie,1,t)*area(ie,1,t)+q(npx,1,t)*area(npx,1,t)+q(ie,0,t)*area(ie,0,t)) & - / ( area(ie,1,t)+ area(npx,1,t)+ area(ie,0,t)) - q(npx,1,t) = q(ie,1,t) - q(ie, 0,t) = q(ie,1,t) - endif - if ( .not. nested ) then - q(ie, je,t) = (q(ie,je,t)*area(ie,je,t)+q(npx,je,t)*area(npx,je,t)+q(ie,npy,t)*area(ie,npy,t)) & - / ( area(ie,je,t)+ area(npx,je,t)+ area(ie,npy,t)) - q(npx,je,t) = q(ie,je,t) - q(ie,npy,t) = q(ie,je,t) - endif - if ( .not. nested) then - q(1, je,t) = (q(1,je,t)*area(1,je,t)+q(0,je,t)*area(0,je,t)+q(1,npy,t)*area(1,npy,t)) & - / ( area(1,je,t)+ area(0,je,t)+ area(1,npy,t)) - q(0, je,t) = q(1,je,t) - q(1,npy,t) = q(1,je,t) - endif - enddo - - do n=1,nmax - if( .not.regional ) then - if( n>1 ) call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - endif - do t = 1, ntiles - do j=js,je - do i=is,ie+1 - ddx(i,j) = 0.5*(sin_sg(3,i-1,j,t)+sin_sg(1,i,j,t))*dy(i,j,t)*(q(i-1,j,t)-q(i,j,t))/dxc(i,j,t) - enddo - enddo - do j=js,je+1 - do i=is,ie - ddy(i,j) = dx(i,j,t)*(q(i,j-1,t)-q(i,j,t))/dyc(i,j,t) & - *0.5*(sin_sg(4,i,j-1,t)+sin_sg(2,i,j,t)) - enddo - enddo - - if ( zero_ocean ) then - ! Limit diffusive flux over ater cells: - do j=js,je - do i=is,ie+1 - ddx(i,j) = max(0., min(mask(i-1,j,t), mask(i,j,t))) * ddx(i,j) - enddo - enddo - do j=js,je+1 - do i=is,ie - ddy(i,j) = max(0., min(mask(i,j-1,t), mask(i,j,t))) * ddy(i,j) - enddo - enddo - endif - - do j=js,je - do i=is,ie - q(i,j,t) = q(i,j,t) + cd/area(i,j,t)*(ddx(i,j)-ddx(i+1,j)+ddy(i,j)-ddy(i,j+1)) - enddo - enddo - enddo - enddo - - end subroutine del2_cubed_sphere - - !##################################################################### - subroutine del4_cubed_sphere(is, ie, js, je, isd, ied, jsd, jed, npx, npy, ntiles, & - q, area, dx, dy, dxc, dyc, sin_sg, nmax, zero_ocean, mask, nested, regional) - integer, intent(in) :: is, ie, js, je - integer, intent(in) :: isd, ied, jsd, jed - integer, intent(in) :: npx, npy, nmax, ntiles - logical, intent(in) :: zero_ocean - real, intent(in):: mask(isd:ied, jsd:jed, ntiles) ! 0==water, 1==land - real, intent(in)::area(isd:ied, jsd:jed, ntiles) - real, intent(in):: dx(isd:ied, jsd:jed+1, ntiles) - real, intent(in):: dy(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dxc(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dyc(isd:ied, jsd:jed+1, ntiles) - real, intent(IN):: sin_sg(4,isd:ied,jsd:jed, ntiles) - real, intent(inout):: q(isd:ied, jsd:jed, ntiles) - logical, intent(IN) :: nested, regional - ! Local: - ! diffusivity - real :: diff(is-1:ie+1,js-1:je+1, ntiles) - ! diffusive fluxes: - real :: fx1(is:ie+1,js:je), fy1(is:ie,js:je+1) - real :: fx2(is:ie+1,js:je,ntiles), fy2(is:ie,js:je+1,ntiles) - real :: fx4(is:ie+1,js:je,ntiles), fy4(is:ie,js:je+1,ntiles) - real, dimension(isd:ied,jsd:jed,ntiles):: d2, win, wou - real, dimension(is:ie,js:je, ntiles) :: qlow, qmin, qmax - real, parameter:: esl = 1.E-20 - integer i,j, n, t - - ! On a nested grid the haloes are not filled. Set to zero. - d2 = 0. - win = 0. - wou = 0. - - do t = 1, ntiles - do j=js-1,je+1 ; do i=is-1,ie+1 - diff(i,j,t) = cd4*area(i,j,t) ! area dependency is needed for stretched grid - enddo; enddo - - do j=js,je ; do i=is,ie - qmax(i,j,t) = q(i,j,t) * peak_fac - qmin(i,j,t) = q(i,j,t) / peak_fac - enddo; enddo - enddo - - do n=1,nmax - if( .not.regional ) then - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - endif - - ! First step: average the corners: - if ( .not. nested .and. n==1 ) then - do t = 1, ntiles - q(1,1,t) = (q(1,1,t)*area(1,1,t)+q(0,1,t)*area(0,1,t)+q(1,0,t)*area(1,0,t)) & - / ( area(1,1,t)+ area(0,1,t)+ area(1,0,t) ) - q(0,1,t) = q(1,1,t) - q(1,0,t) = q(1,1,t) - q(0,0,t) = q(1,1,t) - - q(ie, 1,t) = (q(ie,1,t)*area(ie,1,t)+q(npx,1,t)*area(npx,1,t)+q(ie,0,t)*area(ie,0,t)) & - / ( area(ie,1,t)+ area(npx,1,t)+ area(ie,0,t)) - q(npx,1,t) = q(ie,1,t) - q(ie, 0,t) = q(ie,1,t) - q(npx,0,t) = q(ie,1,t) - - q(1, je,t) = (q(1,je,t)*area(1,je,t)+q(0,je,t)*area(0,je,t)+q(1,npy,t)*area(1,npy,t)) & - / ( area(1,je,t)+ area(0,je,t)+ area(1,npy,t)) - q(0, je,t) = q(1,je,t) - q(1,npy,t) = q(1,je,t) - q(0,npy,t) = q(1,je,t) - - q(ie, je,t) = (q(ie,je,t)*area(ie,je,t)+q(npx,je,t)*area(npx,je,t)+q(ie,npy,t)*area(ie,npy,t)) & - / ( area(ie,je,t)+ area(npx,je,t)+ area(ie,npy,t)) - q(npx, je,t) = q(ie,je,t) - q(ie, npy,t) = q(ie,je,t) - q(npx,npy,t) = q(ie,je,t) - enddo - if( .not.regional ) then - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - endif - endif - - do t = 1, ntiles - - !-------------- - ! Compute del-2 - !-------------- - ! call copy_corners(q, npx, npy, 1) - do j=js,je - do i=is,ie+1 - fx2(i,j,t) = 0.25*(diff(i-1,j,t)+diff(i,j,t))*dy(i,j,t)*(q(i-1,j,t)-q(i,j,t))/dxc(i,j,t) & - *(sin_sg(1,i,j,t)+sin_sg(3,i-1,j,t)) - enddo - enddo - - ! call copy_corners(q, npx, npy, 2) - do j=js,je+1 - do i=is,ie - fy2(i,j,t) = 0.25*(diff(i,j-1,t)+diff(i,j,t))*dx(i,j,t)*(q(i,j-1,t)-q(i,j,t))/dyc(i,j,t) & - *(sin_sg(2,i,j,t)+sin_sg(4,i,j-1,t)) - enddo - enddo - - do j=js,je - do i=is,ie - d2(i,j,t) = (fx2(i,j,t)-fx2(i+1,j,t)+fy2(i,j,t)-fy2(i,j+1,t)) / area(i,j,t) - enddo - enddo - - ! qlow == low order monotonic solution - if ( zero_ocean ) then - ! Limit diffusive flux over water cells: - do j=js,je - do i=is,ie+1 - fx1(i,j) = max(0., min(mask(i-1,j,t), mask(i,j,t))) * fx2(i,j,t) - enddo - enddo - do j=js,je+1 - do i=is,ie - fy1(i,j) = max(0., min(mask(i,j-1,t), mask(i,j,t))) * fy2(i,j,t) - enddo - enddo - do j=js,je - do i=is,ie - qlow(i,j,t) = q(i,j,t) + (fx1(i,j)-fx1(i+1,j)+fy1(i,j)-fy1(i,j+1)) / area(i,j,t) - d2(i,j,t) = diff(i,j,t) * d2(i,j,t) - enddo - enddo - else - do j=js,je - do i=is,ie - qlow(i,j,t) = q(i,j,t) + d2(i,j,t) - d2(i,j,t) = diff(i,j,t) * d2(i,j,t) - enddo - enddo - endif - enddo - if( .not.regional ) then - call fill_cubic_grid_halo(d2, d2, ng, 0, 0, 1, 1) - endif - - !--------------------- - ! Compute del4 fluxes: - !--------------------- - ! call copy_corners(d2, npx, npy, 1) - do t = 1, ntiles - do j=js,je - do i=is,ie+1 - fx4(i,j,t) = 0.5*(sin_sg(3,i-1,j,t)+sin_sg(1,i,j,t))*dy(i,j,t)*(d2(i,j,t)-d2(i-1,j,t))/dxc(i,j,t)-fx2(i,j,t) - enddo - enddo - - ! call copy_corners(d2, npx, npy, 2) - do j=js,je+1 - do i=is,ie - fy4(i,j,t) = dx(i,j,t)*(d2(i,j,t)-d2(i,j-1,t))/dyc(i,j,t) & - *0.5*(sin_sg(2,i,j,t)+sin_sg(4,i,j-1,t))-fy2(i,j,t) - enddo - enddo - - do j=js,je - do i=is,ie - qmin(i,j,t) = min(qmin(i,j,t), q(i-1,j-1,t), q(i,j-1,t), q(i+1,j-1,t), & - q(i-1,j ,t), q(i,j ,t), q(i+1,j ,t), & - q(i-1,j+1,t), q(i,j+1,t), q(i+1,j+1,t) ) - qmax(i,j,t) = max(qmax(i,j,t), q(i-1,j-1,t), q(i,j-1,t), q(i+1,j-1,t), & - q(i-1,j ,t), q(i,j ,t), q(i+1,j ,t), & - q(i-1,j+1,t), q(i,j+1,t), q(i+1,j+1,t) ) - enddo - enddo - - !---------------- - ! Flux limitting: - !---------------- - do j=js,je - do i=is,ie - win(i,j,t) = max(0.,fx4(i, j,t)) - min(0.,fx4(i+1,j,t)) + & - max(0.,fy4(i, j,t)) - min(0.,fy4(i,j+1,t)) + esl - wou(i,j,t) = max(0.,fx4(i+1,j,t)) - min(0.,fx4(i, j,t)) + & - max(0.,fy4(i,j+1,t)) - min(0.,fy4(i, j,t)) + esl - win(i,j,t) = max(0., qmax(i,j,t) - qlow(i,j,t)) / win(i,j,t)*area(i,j,t) - wou(i,j,t) = max(0., qlow(i,j,t) - qmin(i,j,t)) / wou(i,j,t)*area(i,j,t) - enddo - enddo - enddo - if( .not.regional ) then - call fill_cubic_grid_halo(win, win, ng, 0, 0, 1, 1) - call fill_cubic_grid_halo(wou, wou, ng, 0, 0, 1, 1) - endif - do t = 1, ntiles - do j=js,je - do i=is,ie+1 - if ( fx4(i,j,t) > 0. ) then - fx4(i,j,t) = min(1., wou(i-1,j,t), win(i,j,t)) * fx4(i,j,t) - else - fx4(i,j,t) = min(1., win(i-1,j,t), wou(i,j,t)) * fx4(i,j,t) - endif - enddo - enddo - do j=js,je+1 - do i=is,ie - if ( fy4(i,j,t) > 0. ) then - fy4(i,j,t) = min(1., wou(i,j-1,t), win(i,j,t)) * fy4(i,j,t) - else - fy4(i,j,t) = min(1., win(i,j-1,t), wou(i,j,t)) * fy4(i,j,t) - endif - enddo - enddo - - - if ( zero_ocean ) then - ! Limit diffusive flux over ocean cells: - do j=js,je - do i=is,ie+1 - fx4(i,j,t) = max(0., min(mask(i-1,j,t), mask(i,j,t))) * fx4(i,j,t) - enddo - enddo - do j=js,je+1 - do i=is,ie - fy4(i,j,t) = max(0., min(mask(i,j-1,t), mask(i,j,t))) * fy4(i,j,t) - enddo - enddo - endif - - ! Update: - do j=js,je - do i=is,ie - q(i,j,t) = qlow(i,j,t) + (fx4(i,j,t)-fx4(i+1,j,t)+fy4(i,j,t)-fy4(i,j+1,t))/area(i,j,t) - enddo - enddo - enddo - enddo ! end n-loop - - - end subroutine del4_cubed_sphere - - !##################################################################### - subroutine handle_err(status, string) - integer, intent(in) :: status - character(len=*), intent(in) :: string - character(len=256) :: errmsg - - if (status .ne. nf_noerr) then - errmsg = nf_strerror(status) - errmsg = trim(errmsg)//trim(string) - print *, trim(errmsg) - stop 'Stopped' - endif - - end subroutine handle_err - - - !####################################################################### - ! reads the namelist file, write namelist to log file, - - subroutine read_namelist - - ! read namelist - integer :: unit=7, io_status - logical :: opened - - do - inquire( unit=unit, opened=opened ) - if( .NOT.opened )exit - unit = unit + 1 - if( unit.EQ.100 )call handle_err(-1, 'Unable to locate unit number.' ) - end do - open( unit=unit, file='input.nml', iostat=io_status ) - read( unit,filter_topo_nml, iostat=io_status ) - close(unit) - - if (io_status > 0) call handle_err(-1, 'Error reading input.nml') - - write (stdunit, nml=filter_topo_nml) - - end subroutine read_namelist - - -end program filter_topo diff --git a/sorc/fre-nctools.fd/tools/filter_topo/filter_topo_orig.F90 b/sorc/fre-nctools.fd/tools/filter_topo/filter_topo_orig.F90 deleted file mode 100644 index 86df86eb07..0000000000 --- a/sorc/fre-nctools.fd/tools/filter_topo/filter_topo_orig.F90 +++ /dev/null @@ -1,1704 +0,0 @@ -program filter_topo - - - implicit none - -#include - -#ifdef NO_QUAD_PRECISION - ! 64-bit precision (kind=8) - integer, parameter:: f_p = selected_real_kind(15) -#else - ! Higher precision (kind=16) for grid geometrical factors: - integer, parameter:: f_p = selected_real_kind(20) -#endif - - integer, parameter :: XDir=1 - integer, parameter :: YDir=2 - real, parameter :: pi = 3.14159265358979323846d0 - real, parameter :: radius = 6371.d03 - real, parameter :: big_number=1.d8 - real, parameter :: tiny_number=1.d-8 - - - real:: cd4 = 0.16 ! Dimensionless coeff for del-4 difussion (with FCT) - real:: peak_fac = 1.05 ! overshoot factor for the mountain peak - real:: max_slope = 0.15 ! max allowable terrain slope: 1 --> 45 deg - ! 0.15 for C768 or lower; 0.25 C1536; 0.3 for C3072 - integer :: n_del2_weak = 12 - - logical :: zs_filter = .true. - logical :: zero_ocean = .true. ! if true, no diffusive flux into water/ocean area - real :: stretch_fac = 1.0 - logical :: nested = .false. - integer :: grid_type = 0 ! gnomoic_ed - character(len=128) :: topo_file = "orog" - character(len=128) :: topo_field = "orog_filt" - character(len=128) :: mask_field = "slmsk" - character(len=128) :: grid_file = "atmos_mosaic.nc" - namelist /filter_topo_nml/ topo_file, topo_field, mask_field, grid_file, zero_ocean, & - zs_filter, cd4, n_del2_weak, peak_fac, max_slope, stretch_fac, nested, grid_type - - integer :: stdunit = 6 - integer :: ntiles = 0 - - real da_min - - real, allocatable :: oro(:,:,:), mask(:,:,:) - real, allocatable :: dx(:,:,:), dy(:,:,:) - real, allocatable :: dxa(:,:,:), dya(:,:,:) - real, allocatable :: dxc(:,:,:), dyc(:,:,:) - real, allocatable :: area(:,:,:) - real, allocatable :: sin_sg(:,:,:,:) - - integer :: is,ie,js,je,isd,ied,jsd,jed - integer,parameter :: ng = 3 - integer :: nx, ny, npx, npy - - !--- read namelist - call read_namelist() - - !--- read the target grid. - call read_grid_file() - - !--- read the topography data - call read_topo_file - - !--- filter the data - call FV3_zs_filter(is,ie,js,je,isd,ied,jsd,jed,npx,npy,npx,ntiles,grid_type, & - stretch_fac, nested, area, dxa, dya, dx, dy, dxc, dyc, sin_sg, oro ) - - !--- write out the data - call write_topo_file(is,ie,js,je,ntiles,oro(is:ie,js:je,:) ) - -contains - - !##################################################################### - real function great_circle_dist( q1, q2, radius ) - real, intent(IN) :: q1(2), q2(2) - real, intent(IN), optional :: radius - - real (f_p):: p1(2), p2(2) - real (f_p):: beta - integer n - - do n=1,2 - p1(n) = q1(n) - p2(n) = q2(n) - enddo - - beta = asin( sqrt( sin((p1(2)-p2(2))/2.)**2 + cos(p1(2))*cos(p2(2))* & - sin((p1(1)-p2(1))/2.)**2 ) ) * 2. - - if ( present(radius) ) then - great_circle_dist = radius * beta - else - great_circle_dist = beta ! Returns the angle - endif - - end function great_circle_dist - - !#################################################################### - real function spherical_angle(p1, p2, p3) - - ! p3 - ! / - ! / - ! p1 ---> angle - ! \ - ! \ - ! p2 - - real p1(3), p2(3), p3(3) - - real (f_p):: e1(3), e2(3), e3(3) - real (f_p):: px, py, pz - real (f_p):: qx, qy, qz - real (f_p):: angle, ddd - integer n - - do n=1,3 - e1(n) = p1(n) - e2(n) = p2(n) - e3(n) = p3(n) - enddo - - !------------------------------------------------------------------- - ! Page 41, Silverman's book on Vector Algebra; spherical trigonmetry - !------------------------------------------------------------------- - ! Vector P: - px = e1(2)*e2(3) - e1(3)*e2(2) - py = e1(3)*e2(1) - e1(1)*e2(3) - pz = e1(1)*e2(2) - e1(2)*e2(1) - ! Vector Q: - qx = e1(2)*e3(3) - e1(3)*e3(2) - qy = e1(3)*e3(1) - e1(1)*e3(3) - qz = e1(1)*e3(2) - e1(2)*e3(1) - - ddd = (px*px+py*py+pz*pz)*(qx*qx+qy*qy+qz*qz) - - if ( ddd <= 0.0d0 ) then - angle = 0.d0 - else - ddd = (px*qx+py*qy+pz*qz) / sqrt(ddd) - if ( abs(ddd)>1.d0) then - angle = 2.d0*atan(1.0) ! 0.5*pi - !FIX (lmh) to correctly handle co-linear points (angle near pi or 0) - if (ddd < 0.d0) then - angle = 4.d0*atan(1.0d0) !should be pi - else - angle = 0.d0 - end if - else - angle = acos( ddd ) - endif - endif - - spherical_angle = angle - - end function spherical_angle - - - !#################################################################### - real function get_area(p1, p4, p2, p3, radius) - !----------------------------------------------- - real, intent(in), dimension(2):: p1, p2, p3, p4 - real, intent(in), optional:: radius - !----------------------------------------------- - real e1(3), e2(3), e3(3) - real ang1, ang2, ang3, ang4 - - ! S-W: 1 - call latlon2xyz(p1, e1) ! p1 - call latlon2xyz(p2, e2) ! p2 - call latlon2xyz(p4, e3) ! p4 - ang1 = spherical_angle(e1, e2, e3) - !---- - ! S-E: 2 - !---- - call latlon2xyz(p2, e1) - call latlon2xyz(p3, e2) - call latlon2xyz(p1, e3) - ang2 = spherical_angle(e1, e2, e3) - !---- - ! N-E: 3 - !---- - call latlon2xyz(p3, e1) - call latlon2xyz(p4, e2) - call latlon2xyz(p2, e3) - ang3 = spherical_angle(e1, e2, e3) - !---- - ! N-W: 4 - !---- - call latlon2xyz(p4, e1) - call latlon2xyz(p3, e2) - call latlon2xyz(p1, e3) - ang4 = spherical_angle(e1, e2, e3) - - if ( present(radius) ) then - get_area = (ang1 + ang2 + ang3 + ang4 - 2.*pi) * radius**2 - else - get_area = ang1 + ang2 + ang3 + ang4 - 2.*pi - endif - - end function get_area - - subroutine fill_AGRID_scalar_corners(q, ng, npx, npy, isd, jsd, fill) - integer, intent(in) :: ng, npx, npy, isd, jsd - integer, intent(in) :: fill - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: q - - integer :: i, j - - select case (FILL) - case (XDir) - do j=1,ng - do i=1,ng - q(1-i ,1-j ,:) = q(1-j ,i ,:) !SW Corner - q(1-i ,npy-1+j,:) = q(1-j ,npy-1-i+1,:) !NW Corner - q(npx-1+i,1-j ,:) = q(npx-1+j,i ,:) !SE Corner - q(npx-1+i,npy-1+j,:) = q(npx-1+j,npy-1-i+1,:) !NE Corner - enddo - enddo - case (YDir) - do j=1,ng - do i=1,ng - q(1-j ,1-i ,:) = q(i ,1-j ,:) !SW Corner - q(1-j ,npy-1+i,:) = q(i ,npy-1+j,:) !NW Corner - q(npx-1+j,1-i ,:) = q(npx-1-i+1,1-j ,:) !SE Corner - q(npx-1+j,npy-1+i,:) = q(npx-1-i+1,npy-1+j,:) !NE Corner - enddo - enddo - case default - do j=1,ng - do i=1,ng - q(1-j ,1-i ,:) = q(i ,1-j ,:) !SW Corner - q(1-j ,npy-1+i,:) = q(i ,npy-1+j,:) !NW Corner - q(npx-1+j,1-i ,:) = q(npx-1-i+1,1-j ,:) !SE Corner - q(npx-1+j,npy-1+i,:) = q(npx-1-i+1,npy-1+j,:) !NE Corner - enddo - enddo - end select - - - end subroutine fill_AGRID_scalar_corners - - - !#################################################################### - subroutine fill_BGRID_scalar_corners(q, ng, npx, npy, isd, jsd, fill) - integer, intent(in) :: ng, npx, npy, isd, jsd - integer, intent(in) :: fill - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: q - - integer :: i, j - - select case (fill) - case (XDir) - do j=1,ng - do i=1,ng - q(1-i ,1-j ,:) = q(1-j ,i+1 ,:) !SW Corner - q(1-i ,npy+j,:) = q(1-j ,npy-i ,:) !NW Corner - q(npx+i,1-j ,:) = q(npx+j,i+1 ,:) !SE Corner - q(npx+i,npy+j,:) = q(npx+j,npy-i ,:) !NE Corner - enddo - enddo - case (YDir) - do j=1,ng - do i=1,ng - q(1-j ,1-i ,:) = q(i+1 ,1-j ,:) !SW Corner - q(1-j ,npy+i,:) = q(i+1 ,npy+j ,:) !NW Corner - q(npx+j,1-i ,:) = q(npx-i,1-j ,:) !SE Corner - q(npx+j,npy+i,:) = q(npx-i,npy+j ,:) !NE Corner - enddo - enddo - case default - do j=1,ng - do i=1,ng - q(1-i ,1-j ,:) = q(1-j ,i+1 ,:) !SW Corner - q(1-i ,npy+j,:) = q(1-j ,npy-i ,:) !NW Corner - q(npx+i,1-j ,:) = q(npx+j,i+1 ,:) !SE Corner - q(npx+i,npy+j,:) = q(npx+j,npy-i ,:) !NE Corner - enddo - enddo - end select - - - - end subroutine fill_BGRID_scalar_corners - - !#################################################################### - subroutine fill_AGRID_xy_corners(x, y, ng, npx, npy, isd, jsd) - integer, intent(in) :: ng, npx, npy, isd, jsd - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: x - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: y - integer :: i,j - - do j=1,ng - do i=1,ng - x(1-i ,1-j ,:) = y(1-j ,i ,:) !SW Corner - x(1-i ,npy-1+j,:) = y(1-j ,npy-1-i+1,:) !NW Corner - x(npx-1+i,1-j ,:) = y(npx-1+j,i ,:) !SE Corner - x(npx-1+i,npy-1+j,:) = y(npx-1+j,npy-1-i+1,:) !NE Corner - - y(1-j ,1-i ,:) = x(i ,1-j ,:) !SW Corner - y(1-j ,npy-1+i,:) = x(i ,npy-1+j,:) !NW Corner - y(npx-1+j,1-i ,:) = x(npx-1-i+1,1-j ,:) !SE Corner - y(npx-1+j,npy-1+i,:) = x(npx-1-i+1,npy-1+j,:) !NE Corner - enddo - enddo - - end subroutine fill_AGRID_xy_corners - - - - !#################################################################### - subroutine fill_DGRID_xy_corners(x, y, ng, npx, npy, isd, jsd) - integer, intent(in) :: ng, npx, npy, isd, jsd - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: x - real, DIMENSION(isd:,jsd:,:), intent(INOUT):: y - integer :: i,j - - do j=1,ng - do i=1,ng - x(1-i ,1-j , :) = y(1-j ,i , :) !SW Corner - x(1-i ,npy+j , :) = y(1-j ,npy-i, :) !NW Corner - x(npx-1+i,1-j , :) = y(npx+j,i , :) !SE Corner - x(npx-1+i,npy+j , :) = y(npx+j,npy-i, :) !NE Corner - y(1-i ,1-j , :) = x(j ,1-i , :) !SW Corner - y(1-i ,npy-1+j, :) = x(j ,npy+i, :) !NW Corner - y(npx+i ,1-j , :) = x(npx-j,1-i , :) !SE Corner - y(npx+i ,npy-1+j, :) = x(npx-j,npy+i, :) !NE Corner - enddo - enddo - - end subroutine fill_DGRID_xy_corners - - !############################################################### - subroutine mid_pt_sphere(p1, p2, pm) - real, intent(IN) :: p1(2), p2(2) - real, intent(OUT) :: pm(2) - !------------------------------------------ - real :: e1(3), e2(3), e3(3) - - call latlon2xyz(p1, e1) - call latlon2xyz(p2, e2) - call mid_pt3_cart(e1, e2, e3) - call cart_to_latlon(1, e3, pm(1), pm(2)) - - end subroutine mid_pt_sphere - - - !##################################################################### - subroutine mid_pt3_cart(p1, p2, e) - real, intent(IN) :: p1(3), p2(3) - real, intent(OUT) :: e(3) - ! - real (f_p):: q1(3), q2(3) - real (f_p):: dd, e1, e2, e3 - integer k - - do k=1,3 - q1(k) = p1(k) - q2(k) = p2(k) - enddo - - e1 = q1(1) + q2(1) - e2 = q1(2) + q2(2) - e3 = q1(3) + q2(3) - - dd = sqrt( e1**2 + e2**2 + e3**2 ) - e1 = e1 / dd - e2 = e2 / dd - e3 = e3 / dd - - e(1) = e1 - e(2) = e2 - e(3) = e3 - - end subroutine mid_pt3_cart - - subroutine latlon2xyz(p, e) - ! - ! Routine to map (lon, lat) to (x,y,z) - ! - real, intent(in) :: p(2) - real, intent(out):: e(3) - - integer n - real (f_p):: q(2) - real (f_p):: e1, e2, e3 - - do n=1,2 - q(n) = p(n) - enddo - - e1 = cos(q(2)) * cos(q(1)) - e2 = cos(q(2)) * sin(q(1)) - e3 = sin(q(2)) - !----------------------------------- - ! Truncate to the desired precision: - !----------------------------------- - e(1) = e1 - e(2) = e2 - e(3) = e3 - - end subroutine latlon2xyz - - - - subroutine cart_to_latlon(np, q, xs, ys) - ! vector version of cart_to_latlon1 - integer, intent(in):: np - real, intent(inout):: q(3,np) - real, intent(inout):: xs(np), ys(np) - ! local - real, parameter:: esl=1.d-10 - real (f_p):: p(3) - real (f_p):: dist, lat, lon - integer i,k - - do i=1,np - do k=1,3 - p(k) = q(k,i) - enddo - dist = sqrt(p(1)**2 + p(2)**2 + p(3)**2) - do k=1,3 - p(k) = p(k) / dist - enddo - - if ( (abs(p(1))+abs(p(2))) < esl ) then - lon = real(0.,kind=f_p) - else - lon = atan2( p(2), p(1) ) ! range [-pi,pi] - endif - - if ( lon < 0.) lon = real(2.,kind=f_p)*pi + lon - ! RIGHT_HAND system: - lat = asin(p(3)) - - xs(i) = lon - ys(i) = lat - ! q Normalized: - do k=1,3 - q(k,i) = p(k) - enddo - enddo - - end subroutine cart_to_latlon - - !##################################################################### - real function cos_angle(p1, p2, p3) - ! As spherical_angle, but returns the cos(angle) - ! p3 - ! ^ - ! | - ! | - ! p1 ---> p2 - ! - real, intent(in):: p1(3), p2(3), p3(3) - - real (f_p):: e1(3), e2(3), e3(3) - real (f_p):: px, py, pz - real (f_p):: qx, qy, qz - real (f_p):: angle, ddd - integer n - - do n=1,3 - e1(n) = p1(n) - e2(n) = p2(n) - e3(n) = p3(n) - enddo - - !------------------------------------------------------------------- - ! Page 41, Silverman's book on Vector Algebra; spherical trigonmetry - !------------------------------------------------------------------- - ! Vector P:= e1 X e2 - px = e1(2)*e2(3) - e1(3)*e2(2) - py = e1(3)*e2(1) - e1(1)*e2(3) - pz = e1(1)*e2(2) - e1(2)*e2(1) - - ! Vector Q: e1 X e3 - qx = e1(2)*e3(3) - e1(3)*e3(2) - qy = e1(3)*e3(1) - e1(1)*e3(3) - qz = e1(1)*e3(2) - e1(2)*e3(1) - - ! ddd = sqrt[ (P*P) (Q*Q) ] - ddd = sqrt( (px**2+py**2+pz**2)*(qx**2+qy**2+qz**2) ) - if ( ddd > 0.d0 ) then - angle = (px*qx+py*qy+pz*qz) / ddd - else - angle = 1.d0 - endif - cos_angle = angle - - end function cos_angle - - - !##################################################################### - subroutine cell_center2(q1, q2, q3, q4, e2) - real, intent(in ) :: q1(2), q2(2), q3(2), q4(2) - real, intent(out) :: e2(2) - ! Local - real p1(3), p2(3), p3(3), p4(3) - real ec(3) - real dd - integer k - - call latlon2xyz(q1, p1) - call latlon2xyz(q2, p2) - call latlon2xyz(q3, p3) - call latlon2xyz(q4, p4) - - do k=1,3 - ec(k) = p1(k) + p2(k) + p3(k) + p4(k) - enddo - dd = sqrt( ec(1)**2 + ec(2)**2 + ec(3)**2 ) - - do k=1,3 - ec(k) = ec(k) / dd - enddo - - call cart_to_latlon(1, ec, e2(1), e2(2)) - - end subroutine cell_center2 - - - !##################################################################### - subroutine read_grid_file() - - integer :: fsize=65536 - integer :: status, ncid, id_dim, id_var, ncid2, t - integer :: ni, nj, i, j, tw, te, ip - real :: g1(2), g2(2), g3(2), g4(2), g5(2) - real :: p1(3), p3(3) - real :: p_lL(2), p_uL(2), p_lR(2), p_uR(2) - character(len=256) :: tile_file - real, allocatable, dimension(:,:) :: tmpvar - real, allocatable, dimension(:,:,:) :: geolon_c, geolat_c - real, allocatable, dimension(:,:,:) :: geolon_t, geolat_t, cos_sg, grid3 - integer :: start(4), nread(4) - - print*, "Read the grid from file "//trim(grid_file) - - status=NF__OPEN(trim(grid_file),NF_NOWRITE,fsize,ncid) - call handle_err(status, 'Open file '//trim(grid_file) ) - - status=nf_inq_dimid(ncid, 'ntiles', id_dim) - call handle_err(status, 'inquire dimension ntiles from file '//trim(grid_file) ) - status=nf_inq_dimlen(ncid,id_dim,ntiles) - call handle_err(status, 'inquire dimension ntiles length from file '//trim(grid_file) ) - - !--- currently only support cubic sphere grid. - if( ntiles .NE. 6 .and. ntiles .NE. 7) call handle_err(-1, "ntiles should be 6 or 7 for file "//trim(grid_file) ) - if( ntiles == 7 ) print*, " This grid is a nested grid " - - !--- loop through ntiles and make sure the grid size match between all the tiles. - - start(:) = 1 - nread(:) = 1 - - do t = 1, ntiles - start(2) = t; nread(1) = 255 - status = nf_inq_varid(ncid, 'gridfiles', id_var) - call handle_err(status, 'inquire varid of gridfiles from file '//trim(grid_file) ) - status = nf_get_vara_text(ncid, id_var, start, nread, tile_file ) - call handle_err(status, 'get value of gridfiles from file '//trim(grid_file) ) - - status=NF__OPEN(trim(tile_file),NF_NOWRITE,fsize,ncid2) - call handle_err(status, 'Open file '//trim(tile_file) ) - - status=nf_inq_dimid(ncid2, 'nx', id_dim) - call handle_err(status, 'inquire dimension nx from file '//trim(grid_file) ) - status=nf_inq_dimlen(ncid2,id_dim,ni) - call handle_err(status, 'inquire dimension nx length from file '//trim(grid_file) ) - status=nf_inq_dimid(ncid2, 'ny', id_dim) - call handle_err(status, 'inquire dimension ny from file '//trim(grid_file) ) - status=nf_inq_dimlen(ncid2,id_dim,nj) - call handle_err(status, 'inquire dimension ny length '//'from file '//trim(grid_file) ) - if( t == 1 ) then - ! ni and nj must be even - if(mod(ni,2) .NE. 0 .or. mod(nj,2) .NE. 0) & - call handle_err(-1, "read_grid_file: ni and nj must be even") - - nx = ni/2 - ny = nj/2 - npx = nx + 1 - npy = ny + 1 - is = 1 ; ie = nx - js = 1 ; je = ny - isd=is-ng; ied=ie+ng - jsd=js-ng; jed=je+ng - - allocate(tmpvar(ni+1,nj+1)) - allocate(geolon_c(isd:ied+1,jsd:jed+1,6)) - allocate(geolat_c(isd:ied+1,jsd:jed+1,6)) - else if ( t == 7 ) then ! nested grid - if(mod(ni,2) .NE. 0 .or. mod(nj,2) .NE. 0) & - call handle_err(-1, "read_grid_file: ni and nj must be even") - - nx_nest = ni/2 - ny_nest = nj/2 - npx_nest = nx_nest + 1 - npy_nest = ny_nest + 1 - is_nest = 1 ; ie_nest = nx - js_nest = 1 ; je_nest = ny - isd_nest=is_nest-ng; ied_nest=ie_nest+ng - jsd_nest=js_nest-ng; jed_nest=je_nest+ng - deallocate(tmpvar) - allocate(tmpvar(ni+1,nj+1)) - allocate(geolon_c_nest(isd:ied+1,jsd:jed+1)) - allocate(geolat_c_nest(isd:ied+1,jsd:jed+1)) - else - !-- make sure ni and nj match between tiles - if(ni .ne. nx*2 .OR. nj .ne. ny*2) & - call handle_err(-1, "mismatch of grid size between tiles") - endif - - status=nf_inq_varid(ncid2, 'x', id_var) - call handle_err(status, 'inquire varid of x from file '//trim(grid_file) ) - status=nf_get_var_double(ncid2, id_var, tmpvar) - call handle_err(status, 'inquire data of x from file '//trim(grid_file) ) - if(t==7) then - geolon_c_nest(1:npx,1:npy) = tmpvar(1:ni+1:2,1:nj+1:2)*PI/180. - else - geolon_c(1:npx,1:npy,t) = tmpvar(1:ni+1:2,1:nj+1:2)*PI/180. - endif - - status=nf_inq_varid(ncid2, 'y', id_var) - call handle_err(status, 'inquire varid of y from file '//trim(grid_file) ) - status=nf_get_var_double(ncid2, id_var, tmpvar) - call handle_err(status, 'inquire data of y from file '//trim(grid_file) ) - if(t==7) then - geolat_c_nest(1:npx,1:npy) = tmpvar(1:ni+1:2,1:nj+1:2)*PI/180. - else - geolat_c(1:npx,1:npy,t) = tmpvar(1:ni+1:2,1:nj+1:2)*PI/180. - endif - status = nf_close(ncid2) - call handle_err(status, "close file "//trim(tile_file)) - enddo - - deallocate(tmpvar) - - status = nf_close(ncid) - call handle_err(status, "close file "//trim(grid_file)) - - is = 1 ; ie = nx - js = 1 ; je = ny - isd=is-ng; ied=ie+ng - jsd=js-ng; jed=je+ng - - call fill_cubic_grid_halo(geolon_c, geolon_c, ng, 1, 1, 1, 1) - call fill_cubic_grid_halo(geolat_c, geolat_c, ng, 1, 1, 1, 1) - if(.not. nested) call fill_bgrid_scalar_corners(geolon_c, ng, npx, npy, isd, jsd, XDir) - if(.not. nested) call fill_bgrid_scalar_corners(geolat_c, ng, npx, npy, isd, jsd, YDir) - - !--- compute grid cell center - allocate(geolon_t(isd:ied,jsd:jed,ntiles), geolat_t(isd:ied,jsd:jed,ntiles)) - - geolon_t(:,:,:) = -1.e25 - geolat_t(:,:,:) = -1.e25 - - do t = 1, ntiles - do j=js,je ; do i=is,ie - g1(1) = geolon_c(i,j,t); g1(2) = geolat_c(i,j,t) - g2(1) = geolon_c(i+1,j,t); g2(2) = geolat_c(i+1,j,t) - g3(1) = geolon_c(i,j+1,t); g3(2) = geolat_c(i,j+1,t) - g4(1) = geolon_c(i+1,j+1,t); g4(2) = geolat_c(i+1,j+1,t) - call cell_center2(g1, g2, g3, g4, g5 ) - geolon_t(i,j,t) = g5(1) - geolat_t(i,j,t) = g5(2) - enddo ; enddo - enddo - - - call fill_cubic_grid_halo(geolon_t, geolon_t, ng, 0, 0, 1, 1) - call fill_cubic_grid_halo(geolat_t, geolat_t, ng, 0, 0, 1, 1) - - if (.not. nested) call fill_AGRID_scalar_corners(geolon_t, ng, npx, npy, isd, jsd, XDir) - if (.not. nested) call fill_AGRID_scalar_corners(geolat_t, ng, npx, npy, isd, jsd, YDir) - - !--- compute dx, dy - allocate(dx(isd:ied,jsd:jed+1,ntiles)) - allocate(dy(isd:ied+1,jsd:jed,ntiles)) - do t = 1, ntiles - do j = js, je+1 ; do i = is, ie - g1(1) = geolon_c(i ,j,t) - g1(2) = geolat_c(i ,j,t) - g2(1) = geolon_c(i+1,j,t) - g2(2) = geolat_c(i+1,j,t) - dx(i,j,t) = great_circle_dist( g2, g1, radius ) - enddo ; enddo - enddo - if( stretch_fac .NE. 1 ) then - do t = 1, ntiles - do j = js, je - do i = is, ie+1 - g1(1) = geolon_c(i,j, t) - g1(2) = geolat_c(i,j, t) - g2(1) = geolon_c(i,j+1,t) - g2(2) = geolat_c(i,j+1,t) - dy(i,j,t) = great_circle_dist( g2, g1, radius ) - enddo - enddo - enddo - else - do t = 1, ntiles - do j = js, je - do i = is, ie+1 - dy(i,j,t) = dx(j,i,t) - enddo - enddo - enddo - endif - - !--- make sure it is consitent between tiles. The following maybe not necessary. - do t = 1, ntiles - if(mod(t,2) ==0) then ! tile 2 4 6 - tw = t - 1 - te = t + 2 - if(te > ntiles) te = te - ntiles - dy(is, js:je,t) = dy(ie+1,js:je,tw) ! west boundary - dy(ie+1, js:je, t) = dx(ie:is:-1,js, te) ! east boundary - else - tw = t - 2 - if( tw <= 0) tw = tw + ntiles - te = t + 1 - dy(is, js:je, t) = dx(ie:is:-1, je+1, tw) ! west boundary - dy(ie+1, js:je,t) = dy(1,js:je,te) ! east boundary - endif - enddo - - call fill_cubic_grid_halo(dx, dy, ng, 0, 1, 1, 1) - call fill_cubic_grid_halo(dy, dx, ng, 1, 0, 1, 1) - - if (.not. nested) call fill_dgrid_xy_corners(dx, dy, ng, npx, npy, isd, jsd) - - !--- compute dxa and dya ----- - allocate(dxa(isd:ied,jsd:jed,ntiles)) - allocate(dya(isd:ied,jsd:jed,ntiles)) - do t = 1, ntiles - do j=js,je ; do i=is,ie - g1(1) = geolon_c(i,j,t); g1(2) = geolat_c(i,j,t) - g2(1) = geolon_c(i,j+1,t); g2(2) = geolat_c(i,j+1,t) - call mid_pt_sphere(g1, g2, g3) - g1(1) = geolon_c(i+1,j,t); g1(2) = geolat_c(i+1,j,t) - g2(1) = geolon_c(i+1,j+1,t); g2(2) = geolat_c(i+1,j+1,t) - call mid_pt_sphere(g1, g2, g4) - dxa(i,j,t) = great_circle_dist( g4, g3, radius ) - g1(1) = geolon_c(i,j,t); g1(2) = geolat_c(i,j,t) - g2(1) = geolon_c(i+1,j,t); g2(2) = geolat_c(i+1,j,t) - call mid_pt_sphere(g1, g2, g3) - g1(1) = geolon_c(i,j+1,t); g1(2) = geolat_c(i,j+1,t) - g2(1) = geolon_c(i+1,j+1,t); g2(2) = geolat_c(i+1,j+1,t) - call mid_pt_sphere(g1, g2, g4) - dya(i,j,t) = great_circle_dist( g4, g3, radius ) - enddo; enddo - enddo - - call fill_cubic_grid_halo(dxa, dya, ng, 0, 0, 1, 1) - call fill_cubic_grid_halo(dya, dxa, ng, 0, 0, 1, 1) - - if (.not. nested) call fill_AGRID_xy_corners(dxa, dya, ng, npx, npy, isd, jsd) - - !--- compute dxc and dyc - allocate(dxc(isd:ied+1,jsd:jed,ntiles)) - allocate(dyc(isd:ied,jsd:jed+1,ntiles)) - do t = 1, ntiles - do j=jsd,jed - do i=isd+1,ied - g1(1) = geolon_c(i,j,t); g1(2) = geolat_c(i,j,t) - g2(1) = geolon_c(i-1,j,t); g2(2) = geolat_c(i-1,j,t) - dxc(i,j,t) = great_circle_dist(g1, g2, radius) - enddo - dxc(isd,j,t) = dxc(isd+1,j,t) - dxc(ied+1,j,t) = dxc(ied,j,t) - enddo - - do j=jsd+1,jed - do i=isd,ied - g1(1) = geolon_c(i,j,t); g1(2) = geolat_c(i,j,t) - g2(1) = geolon_c(i,j-1,t); g2(2) = geolat_c(i,j-1,t) - dyc(i,j,t) = great_circle_dist(g1, g2, radius) - enddo - enddo - do i=isd,ied - dyc(i,jsd,t) = dyc(i,jsd+1,t) - dyc(i,jed+1,t) = dyc(i,jed,t) - end do - enddo - - !--- compute area - allocate(area(isd:ied,jsd:jed,ntiles)) - do t = 1, ntiles - do j=js,je - do i=is,ie - p_lL(1) = geolon_c(i ,j ,t) ; p_lL(2) = geolat_c(i ,j ,t) - p_uL(1) = geolon_c(i ,j+1,t) ; p_uL(2) = geolat_c(i ,j+1,t) - p_lR(1) = geolon_c(i+1,j ,t) ; p_lR(2) = geolat_c(i+1,j ,t) - p_uR(1) = geolon_c(i+1,j+1,t) ; p_uR(2) = geolat_c(i+1,j+1,t) - - ! Spherical Excess Formula - area(i,j,t) = get_area(p_lL, p_uL, p_lR, p_uR, radius) - enddo - enddo - enddo - - call fill_cubic_grid_halo(area, area, ng, 0, 0, 1, 1) - - da_min = minval(area(is:ie,js:je,:)) - - !--- compute sin_sg - allocate(sin_sg(4,isd:ied,jsd:jed,ntiles)) - allocate(cos_sg(4,isd:ied,jsd:jed)) - allocate(grid3(3, npx, npy)) - cos_sg(:,:,:) = big_number - sin_sg(:,:,:,:) = tiny_number - - ! 9---4---8 - ! | | - ! 1 5 3 - ! | | - ! 6---2---7 - do t = 1, ntiles - do j=js,je+1 - do i = is,ie+1 - g1(1) = geolon_c(i,j,t) - g1(2) = geolat_c(i,j,t) - call latlon2xyz(g1, grid3(:,i,j)) - enddo - enddo - do j=js,je - do i=is,ie - g1(1) = geolon_t(i,j,t); g1(2) = geolat_t(i,j,t) - call latlon2xyz(g1, p3) ! righ-hand system consistent with grid3 - call mid_pt3_cart(grid3(1,i,j), grid3(1,i,j+1), p1) - cos_sg(1,i,j) = cos_angle( p1, p3, grid3(1,i,j+1) ) - call mid_pt3_cart(grid3(1,i,j), grid3(1,i+1,j), p1) - cos_sg(2,i,j) = cos_angle( p1, grid3(1,i+1,j), p3 ) - call mid_pt3_cart(grid3(1,i+1,j), grid3(1,i+1,j+1), p1) - cos_sg(3,i,j) = cos_angle( p1, p3, grid3(1,i+1,j) ) - call mid_pt3_cart(grid3(1,i,j+1), grid3(1,i+1,j+1), p1) - cos_sg(4,i,j) = cos_angle( p1, grid3(1,i,j+1), p3 ) - enddo - enddo - - do ip=1,4 - do j=js,je - do i=is,ie - sin_sg(ip,i,j,t) = min(1.0, sqrt( max(0., 1.-cos_sg(ip,i,j)**2) ) ) - enddo - enddo - enddo - enddo - - do ip=1,4 - call fill_cubic_grid_halo(sin_sg(ip,:,:,:), sin_sg(ip,:,:,:), ng, 0, 0, 1, 1) - enddo - - deallocate(cos_sg, grid3, geolon_c, geolat_c, geolon_t, geolat_t) - - - end subroutine read_grid_file - - - !##################################################################### - subroutine read_topo_file - - integer :: fsize=65536 - integer :: status, ncid, id_var, ndim, dimsiz - character(len=256) :: tile_file - character(len=32) :: text - integer :: len, t, dims(2) - real :: tmp(is:ie,js:je) - - allocate(oro(isd:ied,jsd:jed,ntiles)) - allocate(mask(isd:ied,jsd:jed,ntiles)) - oro = -big_number - mask = 0 - - !--- make sure topo_file suffix is not ".nc" - len = len_trim(topo_file) - if( index(topo_file, '.nc', back=.true.) == len-2) then - call handle_err(-1, "remove .nc from namelist topo_file="//trim(topo_file) ) - endif - - !--- loop through each tile file to get the orography - do t = 1, ntiles - write(text, '(i1.1)' ) t - tile_file = trim(topo_file)//'.tile'//trim(text)//'.nc' - status=NF__OPEN(trim(tile_file),NF_NOWRITE,fsize,ncid) - call handle_err(status, 'Open file '//trim(tile_file) ) - - status=nf_inq_varid(ncid, topo_field, id_var) - call handle_err(status, 'inquire varid of '//trim(topo_field)//' from file '//trim(tile_file) ) - - status = nf_inq_varndims(ncid, id_var, ndim) - call handle_err(status, 'inquire ndims of '//trim(topo_field)//' from file '//trim(tile_file) ) - - if(ndim .NE. 2) call handle_err(-1, 'ndims of '//trim(topo_field)//' from file '// & - trim(tile_file)//' should be 2') - - ! get data dimension and should match grid file size - status = nf_inq_vardimid(ncid, id_var,dims); - call handle_err(status, 'inquire dimid of '//trim(topo_field)//' from file '//trim(tile_file) ) - - status = nf_inq_dimlen(ncid, dims(1), dimsiz) - call handle_err(status, 'inquire first dimension length of '//trim(topo_field)//' from file '//trim(tile_file) ) - if(dimsiz .NE. nx) call handle_err(-1, "mismatch of lon dimension size between "// & - trim(grid_file)//' and '//trim(tile_file) ) - - status = nf_inq_dimlen(ncid, dims(2), dimsiz) - call handle_err(status, 'inquire second dimension length of '//trim(topo_field)//' from file '//trim(tile_file) ) - - if(dimsiz .NE. ny) call handle_err(-1, "mismatch of lat dimension size between "// & - trim(grid_file)//' and '//trim(tile_file) ) - - status = nf_get_var_double(ncid, id_var, oro(is:ie,js:je,t)) - call handle_err(status, 'get the value of '//trim(topo_field)//' from file '//trim(tile_file) ) - - status=nf_inq_varid(ncid, mask_field, id_var) - call handle_err(status, 'inquire varid of '//trim(mask_field)//' from file '//trim(tile_file) ) - - status = nf_get_var_double(ncid, id_var, tmp) - call handle_err(status, 'get the value of '//trim(mask_field)//' from file '//trim(tile_file) ) - - mask(is:ie,js:je,t) = tmp - - status = nf_close(ncid) - call handle_err(status, "close file "//trim(tile_file)) - enddo - - !--- update halo - call fill_cubic_grid_halo(oro, oro, ng, 0, 0, 1, 1) - call fill_cubic_grid_halo(mask, mask, ng, 0, 0, 1, 1) - - - - end subroutine read_topo_file - - !############################################################################## - !--- replace the topo_field - subroutine write_topo_file(is,ie,js,je,ntiles,q) - integer, intent(in) :: is,ie,js,je,ntiles - real, intent(in) :: q(is:ie,js:je,ntiles) - - integer :: fsize=65536 - integer :: t, status, ncid, id_var - character(len=256) :: tile_file - character(len=3) :: text - !--- loop through each tile file to update topo_field - - do t = 1, ntiles - write(text, '(i1.1)' ) t - tile_file = trim(topo_file)//'.tile'//trim(text)//'.nc' - status=NF__OPEN(trim(tile_file),NF_WRITE,fsize,ncid) - call handle_err(status, 'write_topo_file: Open file '//trim(tile_file) ) - - status=nf_inq_varid(ncid, topo_field, id_var) - call handle_err(status, 'write_topo_file:inquire varid of '//trim(topo_field)//' from file '//trim(tile_file) ) - - status = nf_put_var_double(ncid, id_var, q(:,:,t)) - call handle_err(status, 'write_topo_file: put the value of '//trim(topo_field)//' from file '//trim(tile_file) ) - - status = nf_close(ncid) - call handle_err(status, "write_topo_file: close file "//trim(tile_file)) - enddo - - - end subroutine write_topo_file - - !############################################################################## - ! this routine fill the halo points for the cubic grid. ioff and joff is used to distinguish - ! T, C, E, or N-cell - subroutine fill_cubic_grid_halo(data, data2, halo, ioff, joff, sign1, sign2) - integer, intent(in) :: halo - real, dimension(1-halo:,1-halo:,:), intent(inout) :: data, data2 - integer, intent(in) :: ioff, joff, sign1, sign2 - integer :: lw, le, ls, ln - integer :: i, tile - - ntiles = size(data,3) - - do tile = 1, ntiles - if(mod(tile,2) == 0) then ! tile 2, 4, 6 - lw = tile - 1; le = tile + 2; ls = tile - 2; ln = tile + 1 - if(le > 6 ) le = le - 6 - if(ls < 1 ) ls = ls + 6 - if(ln > 6 ) ln = ln - 6 - data(1-halo:0, 1:ny+joff, tile) = data(nx-halo+1:nx, 1:ny+joff, lw) ! west - do i = 1, halo - data(nx+i+ioff, 1:ny+joff, tile) = sign1*data2(nx+joff:1:-1, i+ioff, le) ! east - end do - do i = 1, halo - data(1:nx+ioff, 1-i, tile) = sign2*data2(nx-i+1, ny+ioff:1:-1, ls) ! south - end do - data(1:nx+ioff, ny+1+joff:ny+halo+joff, tile) = data(1:nx+ioff, 1+joff:halo+joff, ln) ! north - else ! tile 1, 3, 5 - lw = tile - 2; le = tile + 1; ls = tile - 1; ln = tile + 2 - if(lw < 1 ) lw = lw + 6 - if(ls < 1 ) ls = ls + 6 - if(ln > 6 ) ln = ln - 6 - do i = 1, halo - data(1-i, 1:ny+joff, tile) = sign1*data2(nx+joff:1:-1, ny-i+1, lw) ! west - end do - data(nx+1+ioff:nx+halo+ioff, 1:ny+joff, tile) = data(1+ioff:halo+ioff, 1:ny+joff, le) ! east - data(1:nx+ioff, 1-halo:0, tile) = data(1:nx+ioff, ny-halo+1:ny, ls) ! south - do i = 1, halo - data(1:nx+ioff, ny+i+joff, tile) = sign2*data2(i+joff, ny+ioff:1:-1, ln) ! north - end do - end if - enddo - - end subroutine fill_cubic_grid_halo - - !##################################################################### - subroutine FV3_zs_filter (is, ie, js, je, isd, ied, jsd, jed, npx, npy, npx_global, ntiles, & - grid_type, stretch_fac, nested, area, dxa, dya, dx, dy, dxc, dyc, & - sin_sg, phis ) - integer, intent(in) :: is, ie, js, je, ntiles - integer, intent(in) :: isd, ied, jsd, jed, npx, npy, npx_global, grid_type - real, intent(in), dimension(isd:ied,jsd:jed, ntiles)::area, dxa, dya - real, intent(in), dimension(isd:ied, jsd:jed+1, ntiles):: dx, dyc - real, intent(in), dimension(isd:ied+1,jsd:jed, ntiles):: dy, dxc - - real, intent(IN):: sin_sg(4,isd:ied,jsd:jed,ntiles) - real, intent(IN):: stretch_fac - logical, intent(IN) :: nested - real, intent(inout):: phis(isd:ied,jsd,jed,ntiles) - real:: cd2 - integer mdim, n_del2, n_del4 - - mdim = nint( real(npx_global) * min(10., stretch_fac) ) - - ! Del-2: high resolution only - if ( npx_global<=97 ) then - n_del2 = 0 - elseif ( npx_global<=193 ) then - n_del2 = 1 - else - n_del2 = 2 - endif - cd2 = 0.16*da_min - ! Applying strong 2-delta-filter: - if ( n_del2 > 0 ) & - call two_delta_filter(is,ie,js,je,isd,ied,jsd,jed, npx, npy, ntiles, phis, area, & - dx, dy, dxa, dya, dxc, dyc, sin_sg, cd2, zero_ocean, & - .true.,0, grid_type, mask, nested, n_del2) - - ! MFCT Del-4: - if ( mdim<=193 ) then - n_del4 = 1 - elseif ( mdim<=1537 ) then - n_del4 = 2 - else - n_del4 = 3 - endif - call del4_cubed_sphere(is,ie,js,je,isd,ied,jsd,jed,npx, npy, ntiles, & - phis, area, dx, dy, dxc, dyc, sin_sg, n_del4, zero_ocean, mask, nested) - ! Applying weak 2-delta-filter: - cd2 = 0.12*da_min - call two_delta_filter(is,ie,js,je,isd,ied,jsd,jed,npx, npy, ntiles, & - phis, area, dx, dy, dxa, dya, dxc, dyc, sin_sg, cd2, zero_ocean, & - .true., 1, grid_type, mask, nested, n_del2_weak) - - end subroutine FV3_zs_filter - - !##################################################################### - subroutine two_delta_filter(is, ie, js, je, isd, ied, jsd, jed, npx, npy, ntiles, & - q, area, dx, dy, dxa, dya, dxc, dyc, sin_sg, cd, zero_ocean, & - check_slope, filter_type, grid_type, mask, nested, ntmax) - integer, intent(in) :: is, ie, js, je - integer, intent(in) :: isd, ied, jsd, jed - integer, intent(in) :: npx, npy, grid_type - integer, intent(in) :: ntmax, ntiles - integer, intent(in) :: filter_type ! 0: strong, 1: weak - real, intent(in) :: cd - ! INPUT arrays - real, intent(in)::area(isd:ied, jsd:jed, ntiles) - real, intent(in):: dx(isd:ied, jsd:jed+1, ntiles) - real, intent(in):: dy(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dxa(isd:ied, jsd:jed, ntiles) - real, intent(in):: dya(isd:ied, jsd:jed, ntiles) - real, intent(in):: dxc(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dyc(isd:ied, jsd:jed+1, ntiles) - real, intent(in):: sin_sg(4,isd:ied,jsd:jed, ntiles) - real, intent(in):: mask(isd:ied, jsd:jed, ntiles) ! 0==water, 1==land - logical, intent(in):: zero_ocean, check_slope - logical, intent(in):: nested - ! OUTPUT arrays - real, intent(inout):: q(isd:ied, jsd:jed,ntiles) - ! Local: - real, parameter:: p1 = 7./12. - real, parameter:: p2 = -1./12. - real, parameter:: c1 = -2./14. - real, parameter:: c2 = 11./14. - real, parameter:: c3 = 5./14. - - real:: ddx(is:ie+1,js:je), ddy(is:ie,js:je+1) - logical:: extm(is-1:ie+1) - logical:: ext2(is:ie,js-1:je+1) - real:: a1(is-1:ie+2) - real:: a2(is:ie,js-1:je+2) - real:: a3(is:ie,js:je,ntiles) - real:: smax, smin, m_slope, fac - integer:: i,j, nt, t - integer:: is1, ie2, js1, je2 - - - if ( .not. nested .and. grid_type<3 ) then - is1 = max(3,is-1); ie2 = min(npx-2,ie+2) - js1 = max(3,js-1); je2 = min(npy-2,je+2) - else - is1 = is-1; ie2 = ie+2 - js1 = js-1; je2 = je+2 - end if - - if ( check_slope ) then - m_slope = max_slope - else - m_slope = 10. - endif - - - do nt=1, ntmax - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - - ! Check slope - if ( nt==1 .and. check_slope ) then - do t = 1, ntiles - do j=js,je - do i=is,ie+1 - ddx(i,j) = (q(i,j,t) - q(i-1,j,t))/dxc(i,j,t) - ddx(i,j) = abs(ddx(i,j)) - enddo - enddo - do j=js,je+1 - do i=is,ie - ddy(i,j) = (q(i,j,t) - q(i,j-1,t))/dyc(i,j,t) - ddy(i,j) = abs(ddy(i,j)) - enddo - enddo - do j=js,je - do i=is,ie - a3(i,j,t) = max( ddx(i,j), ddx(i+1,j), ddy(i,j), ddy(i,j+1) ) - enddo - enddo - enddo - smax = maxval(a3(is:ie,js:je,:)) - write(*,*) 'Before filter: Max_slope=', smax - endif - - - ! First step: average the corners: - if ( .not. nested .and. nt==1 ) then - do t = 1, ntiles - q(1,1,t) = (q(1,1,t)*area(1,1,t)+q(0,1,t)*area(0,1,t)+q(1,0,t)*area(1,0,t)) & - / ( area(1,1,t)+ area(0,1,t)+ area(1,0,t) ) - q(0,1,t) = q(1,1,t) - q(1,0,t) = q(1,1,t) - - q(ie, 1,t) = (q(ie,1,t)*area(ie,1,t)+q(npx,1,t)*area(npx,1,t)+q(ie,0,t)*area(ie,0,t)) & - / ( area(ie,1,t)+ area(npx,1,t)+ area(ie,0,t)) - q(npx,1,t) = q(ie,1,t) - q(ie, 0,t) = q(ie,1,t) - - q(1, je,t) = (q(1,je,t)*area(1,je,t)+q(0,je,t)*area(0,je,t)+q(1,npy,t)*area(1,npy,t)) & - / ( area(1,je,t)+ area(0,je,t)+ area(1,npy,t)) - q(0, je,t) = q(1,je,t) - q(1,npy,t) = q(1,je,t) - - q(ie, je,t) = (q(ie,je,t)*area(ie,je,t)+q(npx,je,t)*area(npx,je,t)+q(ie,npy,t)*area(ie,npy,t)) & - / ( area(ie,je,t)+ area(npx,je,t)+ area(ie,npy,t)) - q(npx,je,t) = q(ie,je,t) - q(ie,npy,t) = q(ie,je,t) - enddo - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - endif - - do t = 1, ntiles - ! x-diffusive flux: - do j=js,je - - do i=is1, ie2 - a1(i) = p1*(q(i-1,j,t)+q(i,j,t)) + p2*(q(i-2,j,t)+q(i+1,j,t)) - enddo - - if ( .not. nested .and. grid_type<3 ) then - a1(0) = c1*q(-2,j,t) + c2*q(-1,j,t) + c3*q(0,j,t) - a1(1) = 0.5*(((2.*dxa(0,j,t)+dxa(-1,j,t))*q(0,j,t)-dxa(0,j,t)*q(-1,j,t))/(dxa(-1,j,t)+dxa(0,j,t)) & - + ((2.*dxa(1,j,t)+dxa( 2,j,t))*q(1,j,t)-dxa(1,j,t)*q( 2,j,t))/(dxa(1, j,t)+dxa(2,j,t))) - a1(2) = c3*q(1,j,t) + c2*q(2,j,t) +c1*q(3,j,t) - - a1(npx-1) = c1*q(npx-3,j,t) + c2*q(npx-2,j,t) + c3*q(npx-1,j,t) - a1(npx) = 0.5*(((2.*dxa(npx-1,j,t)+dxa(npx-2,j,t))*q(npx-1,j,t)-dxa(npx-1,j,t)*q(npx-2,j,t)) & - /(dxa(npx-2,j,t)+dxa(npx-1,j,t)) & - + ((2.*dxa(npx, j,t)+dxa(npx+1,j,t))*q(npx, j,t)-dxa(npx, j,t)*q(npx+1,j,t))/ & - (dxa(npx, j,t)+dxa(npx+1,j,t))) - a1(npx+1) = c3*q(npx,j,t) + c2*q(npx+1,j,t) + c1*q(npx+2,j,t) - endif - - if ( filter_type == 0 ) then - do i=is-1, ie+1 - if( abs(3.*(a1(i)+a1(i+1)-2.*q(i,j,t))) > abs(a1(i)-a1(i+1)) ) then - extm(i) = .true. - else - extm(i) = .false. - endif - enddo - else - do i=is-1, ie+1 - if ( (a1(i)-q(i,j,t))*(a1(i+1)-q(i,j,t)) > 0. ) then - extm(i) = .true. - else - extm(i) = .false. - endif - enddo - endif - - do i=is,ie+1 - ddx(i,j) = (q(i-1,j,t)-q(i,j,t))/dxc(i,j,t) - if ( extm(i-1).and.extm(i) ) then - ddx(i,j) = 0.5*(sin_sg(3,i-1,j,t)+sin_sg(1,i,j,t))*dy(i,j,t)*ddx(i,j) - elseif ( abs(ddx(i,j)) > m_slope ) then - fac = min(1., max( 0.1, ( abs(ddx(i,j))-m_slope )/m_slope) ) - ddx(i,j) = fac*0.5*(sin_sg(3,i-1,j,t)+sin_sg(1,i,j,t))*dy(i,j,t)*ddx(i,j) - else - ddx(i,j) = 0. - endif - enddo - enddo ! do j=js,je - - ! y-diffusive flux: - do j=js1,je2 - do i=is,ie - a2(i,j) = p1*(q(i,j-1,t)+q(i,j,t)) + p2*(q(i,j-2,t)+q(i,j+1,t)) - enddo - enddo - if ( .not. nested .and. grid_type<3 ) then - do i=is,ie - a2(i,0) = c1*q(i,-2,t) + c2*q(i,-1,t) + c3*q(i,0,t) - a2(i,1) = 0.5*(((2.*dya(i,0,t)+dya(i,-1,t))*q(i,0,t)-dya(i,0,t)*q(i,-1,t))/(dya(i,-1,t)+dya(i,0,t)) & - + ((2.*dya(i,1,t)+dya(i, 2,t))*q(i,1,t)-dya(i,1,t)*q(i, 2,t))/(dya(i, 1,t)+dya(i,2,t))) - a2(i,2) = c3*q(i,1,t) + c2*q(i,2,t) + c1*q(i,3,t) - enddo - - do i=is,ie - a2(i,npy-1) = c1*q(i,npy-3,t) + c2*q(i,npy-2,t) + c3*q(i,npy-1,t) - a2(i,npy) = 0.5*(((2.*dya(i,npy-1,t)+dya(i,npy-2,t))*q(i,npy-1,t)-dya(i,npy-1,t)*q(i,npy-2,t))/ & - (dya(i,npy-2,t)+dya(i,npy-1,t)) & - + ((2.*dya(i,npy,t)+dya(i,npy+1,t))*q(i,npy,t)-dya(i,npy,t)*q(i,npy+1,t))/& - (dya(i,npy,t)+dya(i,npy+1,t))) - a2(i,npy+1) = c3*q(i,npy,t) + c2*q(i,npy+1,t) + c1*q(i,npy+2,t) - enddo - endif - - if ( filter_type == 0 ) then - do j=js-1,je+1 - do i=is,ie - if( abs(3.*(a2(i,j)+a2(i,j+1)-2.*q(i,j,t))) > abs(a2(i,j)-a2(i,j+1)) ) then - ext2(i,j) = .true. - else - ext2(i,j) = .false. - endif - enddo - enddo - else - do j=js-1,je+1 - do i=is,ie - if ( (a2(i,j)-q(i,j,t))*(a2(i,j+1)-q(i,j,t)) > 0. ) then - ext2(i,j) = .true. - else - ext2(i,j) = .false. - endif - enddo - enddo - endif - - do j=js,je+1 - do i=is,ie - ddy(i,j) = (q(i,j-1,t)-q(i,j,t))/dyc(i,j,t) - if ( ext2(i,j-1) .and. ext2(i,j) ) then - ddy(i,j) = 0.5*(sin_sg(4,i,j-1,t)+sin_sg(2,i,j,t))*dx(i,j,t)*ddy(i,j) - elseif ( abs(ddy(i,j))>m_slope ) then - fac = min(1., max(0.1,(abs(ddy(i,j))-m_slope)/m_slope)) - ddy(i,j) = fac*0.5*(sin_sg(4,i,j-1,t)+sin_sg(2,i,j,t))*dx(i,j,t)*ddy(i,j) - else - ddy(i,j) = 0. - endif - enddo - enddo - - if ( zero_ocean ) then - ! Limit diffusive flux over water cells: - do j=js,je - do i=is,ie+1 - ddx(i,j) = max(0., min(mask(i-1,j,t), mask(i,j,t))) * ddx(i,j) - enddo - enddo - do j=js,je+1 - do i=is,ie - ddy(i,j) = max(0., min(mask(i,j-1,t), mask(i,j,t))) * ddy(i,j) - enddo - enddo - endif - - do j=js,je - do i=is,ie - q(i,j,t) = q(i,j,t) + cd/area(i,j,t)*(ddx(i,j)-ddx(i+1,j)+ddy(i,j)-ddy(i,j+1)) - enddo - enddo - enddo ! do t = 1, ntiles - enddo ! nt=1, ntmax - -! Check slope - if ( check_slope ) then - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - do t = 1, ntiles - do j=js,je - do i=is,ie+1 - ddx(i,j) = (q(i,j,t) - q(i-1,j,t))/dxc(i,j,t) - ddx(i,j) = abs(ddx(i,j)) - enddo - enddo - do j=js,je+1 - do i=is,ie - ddy(i,j) = (q(i,j,t) - q(i,j-1,t))/dyc(i,j,t) - ddy(i,j) = abs(ddy(i,j)) - enddo - enddo - do j=js,je - do i=is,ie - a3(i,j,t) = max( ddx(i,j), ddx(i+1,j), ddy(i,j), ddy(i,j+1) ) - enddo - enddo - enddo - smax = maxval(a3(is:ie,js:je,:)) - write(*,*) 'After filter: Max_slope=', smax - endif - - end subroutine two_delta_filter - - !##################################################################### - subroutine del2_cubed_sphere(is, ie, js, je, isd, ied, jsd, jed, npx, npy, ntiles,& - q, area, dx, dy, dxc, dyc, sin_sg, nmax, cd, zero_ocean, mask, nested) - integer, intent(in) :: is, ie, js, je - integer, intent(in) :: isd, ied, jsd, jed - integer, intent(in):: npx, npy, ntiles - integer, intent(in):: nmax - real, intent(in):: cd - logical, intent(in):: zero_ocean - ! INPUT arrays - real, intent(in)::area(isd:ied, jsd:jed, ntiles) - real, intent(in):: dx(isd:ied, jsd:jed+1, ntiles) - real, intent(in):: dy(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dxc(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dyc(isd:ied, jsd:jed+1, ntiles) - real, intent(IN):: sin_sg(4,isd:ied,jsd:jed, ntiles) - real, intent(in):: mask(isd:ied, jsd:jed, ntiles) ! 0==water, 1==land - logical, intent(IN) :: nested - - ! OUTPUT arrays - real, intent(inout):: q(is-ng:ie+ng, js-ng:je+ng, ntiles) - ! Local: - real ddx(is:ie+1,js:je), ddy(is:ie,js:je+1) - integer i,j,n,t - - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - - do t = 1, ntiles - ! First step: average the corners: - if ( .not. nested) then - q(1,1,t) = (q(1,1,t)*area(1,1,t)+q(0,1,t)*area(0,1,t)+q(1,0,t)*area(1,0,t)) & - / ( area(1,1,t)+ area(0,1,t)+ area(1,0,t) ) - q(0,1,t) = q(1,1,t) - q(1,0,t) = q(1,1,t) - endif - if ( .not. nested) then - q(ie, 1,t) = (q(ie,1,t)*area(ie,1,t)+q(npx,1,t)*area(npx,1,t)+q(ie,0,t)*area(ie,0,t)) & - / ( area(ie,1,t)+ area(npx,1,t)+ area(ie,0,t)) - q(npx,1,t) = q(ie,1,t) - q(ie, 0,t) = q(ie,1,t) - endif - if ( .not. nested ) then - q(ie, je,t) = (q(ie,je,t)*area(ie,je,t)+q(npx,je,t)*area(npx,je,t)+q(ie,npy,t)*area(ie,npy,t)) & - / ( area(ie,je,t)+ area(npx,je,t)+ area(ie,npy,t)) - q(npx,je,t) = q(ie,je,t) - q(ie,npy,t) = q(ie,je,t) - endif - if ( .not. nested) then - q(1, je,t) = (q(1,je,t)*area(1,je,t)+q(0,je,t)*area(0,je,t)+q(1,npy,t)*area(1,npy,t)) & - / ( area(1,je,t)+ area(0,je,t)+ area(1,npy,t)) - q(0, je,t) = q(1,je,t) - q(1,npy,t) = q(1,je,t) - endif - enddo - - do n=1,nmax - if( n>1 ) call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - do t = 1, ntiles - do j=js,je - do i=is,ie+1 - ddx(i,j) = 0.5*(sin_sg(3,i-1,j,t)+sin_sg(1,i,j,t))*dy(i,j,t)*(q(i-1,j,t)-q(i,j,t))/dxc(i,j,t) - enddo - enddo - do j=js,je+1 - do i=is,ie - ddy(i,j) = dx(i,j,t)*(q(i,j-1,t)-q(i,j,t))/dyc(i,j,t) & - *0.5*(sin_sg(4,i,j-1,t)+sin_sg(2,i,j,t)) - enddo - enddo - - if ( zero_ocean ) then - ! Limit diffusive flux over ater cells: - do j=js,je - do i=is,ie+1 - ddx(i,j) = max(0., min(mask(i-1,j,t), mask(i,j,t))) * ddx(i,j) - enddo - enddo - do j=js,je+1 - do i=is,ie - ddy(i,j) = max(0., min(mask(i,j-1,t), mask(i,j,t))) * ddy(i,j) - enddo - enddo - endif - - do j=js,je - do i=is,ie - q(i,j,t) = q(i,j,t) + cd/area(i,j,t)*(ddx(i,j)-ddx(i+1,j)+ddy(i,j)-ddy(i,j+1)) - enddo - enddo - enddo - enddo - - end subroutine del2_cubed_sphere - - !##################################################################### - subroutine del4_cubed_sphere(is, ie, js, je, isd, ied, jsd, jed, npx, npy, ntiles, & - q, area, dx, dy, dxc, dyc, sin_sg, nmax, zero_ocean, mask, nested) - integer, intent(in) :: is, ie, js, je - integer, intent(in) :: isd, ied, jsd, jed - integer, intent(in) :: npx, npy, nmax, ntiles - logical, intent(in) :: zero_ocean - real, intent(in):: mask(isd:ied, jsd:jed, ntiles) ! 0==water, 1==land - real, intent(in)::area(isd:ied, jsd:jed, ntiles) - real, intent(in):: dx(isd:ied, jsd:jed+1, ntiles) - real, intent(in):: dy(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dxc(isd:ied+1,jsd:jed, ntiles) - real, intent(in):: dyc(isd:ied, jsd:jed+1, ntiles) - real, intent(IN):: sin_sg(4,isd:ied,jsd:jed, ntiles) - real, intent(inout):: q(isd:ied, jsd:jed, ntiles) - logical, intent(IN) :: nested - ! Local: - ! diffusivity - real :: diff(is-1:ie+1,js-1:je+1, ntiles) - ! diffusive fluxes: - real :: fx1(is:ie+1,js:je), fy1(is:ie,js:je+1) - real :: fx2(is:ie+1,js:je,ntiles), fy2(is:ie,js:je+1,ntiles) - real :: fx4(is:ie+1,js:je,ntiles), fy4(is:ie,js:je+1,ntiles) - real, dimension(isd:ied,jsd:jed,ntiles):: d2, win, wou - real, dimension(is:ie,js:je, ntiles) :: qlow, qmin, qmax - real, parameter:: esl = 1.E-20 - integer i,j, n, t - - ! On a nested grid the haloes are not filled. Set to zero. - d2 = 0. - win = 0. - wou = 0. - - do t = 1, ntiles - do j=js-1,je+1 ; do i=is-1,ie+1 - diff(i,j,t) = cd4*area(i,j,t) ! area dependency is needed for stretched grid - enddo; enddo - - do j=js,je ; do i=is,ie - qmax(i,j,t) = q(i,j,t) * peak_fac - qmin(i,j,t) = q(i,j,t) / peak_fac - enddo; enddo - enddo - - do n=1,nmax - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - - ! First step: average the corners: - if ( .not. nested .and. n==1 ) then - do t = 1, ntiles - q(1,1,t) = (q(1,1,t)*area(1,1,t)+q(0,1,t)*area(0,1,t)+q(1,0,t)*area(1,0,t)) & - / ( area(1,1,t)+ area(0,1,t)+ area(1,0,t) ) - q(0,1,t) = q(1,1,t) - q(1,0,t) = q(1,1,t) - q(0,0,t) = q(1,1,t) - - q(ie, 1,t) = (q(ie,1,t)*area(ie,1,t)+q(npx,1,t)*area(npx,1,t)+q(ie,0,t)*area(ie,0,t)) & - / ( area(ie,1,t)+ area(npx,1,t)+ area(ie,0,t)) - q(npx,1,t) = q(ie,1,t) - q(ie, 0,t) = q(ie,1,t) - q(npx,0,t) = q(ie,1,t) - - q(1, je,t) = (q(1,je,t)*area(1,je,t)+q(0,je,t)*area(0,je,t)+q(1,npy,t)*area(1,npy,t)) & - / ( area(1,je,t)+ area(0,je,t)+ area(1,npy,t)) - q(0, je,t) = q(1,je,t) - q(1,npy,t) = q(1,je,t) - q(0,npy,t) = q(1,je,t) - - q(ie, je,t) = (q(ie,je,t)*area(ie,je,t)+q(npx,je,t)*area(npx,je,t)+q(ie,npy,t)*area(ie,npy,t)) & - / ( area(ie,je,t)+ area(npx,je,t)+ area(ie,npy,t)) - q(npx, je,t) = q(ie,je,t) - q(ie, npy,t) = q(ie,je,t) - q(npx,npy,t) = q(ie,je,t) - enddo - call fill_cubic_grid_halo(q, q, ng, 0, 0, 1, 1) - endif - - do t = 1, ntiles - - !-------------- - ! Compute del-2 - !-------------- - ! call copy_corners(q, npx, npy, 1) - do j=js,je - do i=is,ie+1 - fx2(i,j,t) = 0.25*(diff(i-1,j,t)+diff(i,j,t))*dy(i,j,t)*(q(i-1,j,t)-q(i,j,t))/dxc(i,j,t) & - *(sin_sg(1,i,j,t)+sin_sg(3,i-1,j,t)) - enddo - enddo - - ! call copy_corners(q, npx, npy, 2) - do j=js,je+1 - do i=is,ie - fy2(i,j,t) = 0.25*(diff(i,j-1,t)+diff(i,j,t))*dx(i,j,t)*(q(i,j-1,t)-q(i,j,t))/dyc(i,j,t) & - *(sin_sg(2,i,j,t)+sin_sg(4,i,j-1,t)) - enddo - enddo - - do j=js,je - do i=is,ie - d2(i,j,t) = (fx2(i,j,t)-fx2(i+1,j,t)+fy2(i,j,t)-fy2(i,j+1,t)) / area(i,j,t) - enddo - enddo - - ! qlow == low order monotonic solution - if ( zero_ocean ) then - ! Limit diffusive flux over water cells: - do j=js,je - do i=is,ie+1 - fx1(i,j) = max(0., min(mask(i-1,j,t), mask(i,j,t))) * fx2(i,j,t) - enddo - enddo - do j=js,je+1 - do i=is,ie - fy1(i,j) = max(0., min(mask(i,j-1,t), mask(i,j,t))) * fy2(i,j,t) - enddo - enddo - do j=js,je - do i=is,ie - qlow(i,j,t) = q(i,j,t) + (fx1(i,j)-fx1(i+1,j)+fy1(i,j)-fy1(i,j+1)) / area(i,j,t) - d2(i,j,t) = diff(i,j,t) * d2(i,j,t) - enddo - enddo - else - do j=js,je - do i=is,ie - qlow(i,j,t) = q(i,j,t) + d2(i,j,t) - d2(i,j,t) = diff(i,j,t) * d2(i,j,t) - enddo - enddo - endif - enddo - call fill_cubic_grid_halo(d2, d2, ng, 0, 0, 1, 1) - - !--------------------- - ! Compute del4 fluxes: - !--------------------- - ! call copy_corners(d2, npx, npy, 1) - do t = 1, ntiles - do j=js,je - do i=is,ie+1 - fx4(i,j,t) = 0.5*(sin_sg(3,i-1,j,t)+sin_sg(1,i,j,t))*dy(i,j,t)*(d2(i,j,t)-d2(i-1,j,t))/dxc(i,j,t)-fx2(i,j,t) - enddo - enddo - - ! call copy_corners(d2, npx, npy, 2) - do j=js,je+1 - do i=is,ie - fy4(i,j,t) = dx(i,j,t)*(d2(i,j,t)-d2(i,j-1,t))/dyc(i,j,t) & - *0.5*(sin_sg(2,i,j,t)+sin_sg(4,i,j-1,t))-fy2(i,j,t) - enddo - enddo - - do j=js,je - do i=is,ie - qmin(i,j,t) = min(qmin(i,j,t), q(i-1,j-1,t), q(i,j-1,t), q(i+1,j-1,t), & - q(i-1,j ,t), q(i,j ,t), q(i+1,j ,t), & - q(i-1,j+1,t), q(i,j+1,t), q(i+1,j+1,t) ) - qmax(i,j,t) = max(qmax(i,j,t), q(i-1,j-1,t), q(i,j-1,t), q(i+1,j-1,t), & - q(i-1,j ,t), q(i,j ,t), q(i+1,j ,t), & - q(i-1,j+1,t), q(i,j+1,t), q(i+1,j+1,t) ) - enddo - enddo - - !---------------- - ! Flux limitting: - !---------------- - do j=js,je - do i=is,ie - win(i,j,t) = max(0.,fx4(i, j,t)) - min(0.,fx4(i+1,j,t)) + & - max(0.,fy4(i, j,t)) - min(0.,fy4(i,j+1,t)) + esl - wou(i,j,t) = max(0.,fx4(i+1,j,t)) - min(0.,fx4(i, j,t)) + & - max(0.,fy4(i,j+1,t)) - min(0.,fy4(i, j,t)) + esl - win(i,j,t) = max(0., qmax(i,j,t) - qlow(i,j,t)) / win(i,j,t)*area(i,j,t) - wou(i,j,t) = max(0., qlow(i,j,t) - qmin(i,j,t)) / wou(i,j,t)*area(i,j,t) - enddo - enddo - enddo - call fill_cubic_grid_halo(win, win, ng, 0, 0, 1, 1) - call fill_cubic_grid_halo(wou, wou, ng, 0, 0, 1, 1) - do t = 1, ntiles - do j=js,je - do i=is,ie+1 - if ( fx4(i,j,t) > 0. ) then - fx4(i,j,t) = min(1., wou(i-1,j,t), win(i,j,t)) * fx4(i,j,t) - else - fx4(i,j,t) = min(1., win(i-1,j,t), wou(i,j,t)) * fx4(i,j,t) - endif - enddo - enddo - do j=js,je+1 - do i=is,ie - if ( fy4(i,j,t) > 0. ) then - fy4(i,j,t) = min(1., wou(i,j-1,t), win(i,j,t)) * fy4(i,j,t) - else - fy4(i,j,t) = min(1., win(i,j-1,t), wou(i,j,t)) * fy4(i,j,t) - endif - enddo - enddo - - - if ( zero_ocean ) then - ! Limit diffusive flux over ocean cells: - do j=js,je - do i=is,ie+1 - fx4(i,j,t) = max(0., min(mask(i-1,j,t), mask(i,j,t))) * fx4(i,j,t) - enddo - enddo - do j=js,je+1 - do i=is,ie - fy4(i,j,t) = max(0., min(mask(i,j-1,t), mask(i,j,t))) * fy4(i,j,t) - enddo - enddo - endif - - ! Update: - do j=js,je - do i=is,ie - q(i,j,t) = qlow(i,j,t) + (fx4(i,j,t)-fx4(i+1,j,t)+fy4(i,j,t)-fy4(i,j+1,t))/area(i,j,t) - enddo - enddo - enddo - enddo ! end n-loop - - - end subroutine del4_cubed_sphere - - !##################################################################### - subroutine handle_err(status, string) - integer, intent(in) :: status - character(len=*), intent(in) :: string - character(len=256) :: errmsg - - if (status .ne. nf_noerr) then - errmsg = nf_strerror(status) - errmsg = trim(errmsg)//trim(string) - print *, trim(errmsg) - stop 'Stopped' - endif - - end subroutine handle_err - - - !####################################################################### - ! reads the namelist file, write namelist to log file, - - subroutine read_namelist - - ! read namelist - integer :: unit=7, io_status - logical :: opened - - do - inquire( unit=unit, opened=opened ) - if( .NOT.opened )exit - unit = unit + 1 - if( unit.EQ.100 )call handle_err(-1, 'Unable to locate unit number.' ) - end do - open( unit=unit, file='input.nml', iostat=io_status ) - read( unit,filter_topo_nml, iostat=io_status ) - close(unit) - - if (io_status > 0) call handle_err(-1, 'Error reading input.nml') - - write (stdunit, nml=filter_topo_nml) - - end subroutine read_namelist - - -end program filter_topo diff --git a/sorc/fre-nctools.fd/tools/filter_topo/make.csh_theia b/sorc/fre-nctools.fd/tools/filter_topo/make.csh_theia deleted file mode 100755 index 563538c4c6..0000000000 --- a/sorc/fre-nctools.fd/tools/filter_topo/make.csh_theia +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/csh -f - -source $MODULESHOME/init/csh -source ${PWD}/../../../../modulefiles/fv3gfs/fre-nctools.theia - -ifort -o filter_topo -I${NETCDF}/include -fltconsistency -fno-alias -stack_temps -safe_cray_ptr -ftz -assume byterecl -g -O2 -i4 -real_size 64 -traceback filter_topo.F90 -L${NETCDF}/lib -L${HDF5}/lib -lnetcdf -lnetcdff -lhdf5_hl -lhdf5 diff --git a/sorc/fre-nctools.fd/tools/filter_topo/make.csh_wcoss b/sorc/fre-nctools.fd/tools/filter_topo/make.csh_wcoss deleted file mode 100755 index bd3804d0c0..0000000000 --- a/sorc/fre-nctools.fd/tools/filter_topo/make.csh_wcoss +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/csh -f - -source $MODULESHOME/init/csh -source ${PWD}/../../../../modulefiles/fv3gfs/fre-nctools.wcoss - -ifort -o filter_topo -I${NETCDF}/include -fltconsistency -fno-alias -stack_temps -safe_cray_ptr -ftz -assume byterecl -g -O2 -i4 -real_size 64 -traceback filter_topo.F90 -L${NETCDF}/lib -L${HDF5}/lib -lnetcdf -lnetcdff -lhdf5_hl -lhdf5 diff --git a/sorc/fre-nctools.fd/tools/filter_topo/make.csh_wcoss_cray b/sorc/fre-nctools.fd/tools/filter_topo/make.csh_wcoss_cray deleted file mode 100755 index 757e5e0a80..0000000000 --- a/sorc/fre-nctools.fd/tools/filter_topo/make.csh_wcoss_cray +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/csh -f - -source /opt/modules/default/init/csh -source ${PWD}/../../../../modulefiles/fv3gfs/fre-nctools.wcoss_cray - -ftn -o filter_topo -fltconsistency -fno-alias -stack_temps -safe_cray_ptr -ftz -assume byterecl -g -O2 -i4 -real_size 64 -traceback filter_topo.F90 diff --git a/sorc/fre-nctools.fd/tools/filter_topo/make.csh_wcoss_dell_p3 b/sorc/fre-nctools.fd/tools/filter_topo/make.csh_wcoss_dell_p3 deleted file mode 100755 index 0f33714d3f..0000000000 --- a/sorc/fre-nctools.fd/tools/filter_topo/make.csh_wcoss_dell_p3 +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/csh -f - -source $MODULESHOME/init/csh -source ${PWD}/../../../../modulefiles/fv3gfs/fre-nctools.wcoss_dell_p3 - -ifort -o filter_topo -I${NETCDF}/include -fltconsistency -fno-alias -stack_temps -safe_cray_ptr -ftz -assume byterecl -g -O2 -i4 -real_size 64 -traceback filter_topo.F90 -L${NETCDF}/lib -L${HDF5}/lib -lnetcdf -lnetcdff -lhdf5_hl -lhdf5 diff --git a/sorc/fre-nctools.fd/tools/fregrid/COPYING b/sorc/fre-nctools.fd/tools/fregrid/COPYING deleted file mode 100644 index 93a221957b..0000000000 --- a/sorc/fre-nctools.fd/tools/fregrid/COPYING +++ /dev/null @@ -1,159 +0,0 @@ -TERMS AND CONDITIONS -0. Definitions. - -“This License” refers to version 3 of the GNU General Public License. - -“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. - -“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. - -To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. - -A “covered work” means either the unmodified Program or a work based on the Program. - -To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. - -To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. - -An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. -1. Source Code. - -The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. - -A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. - -The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. - -The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. - -The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. - -The Corresponding Source for a work in source code form is that same work. -2. Basic Permissions. - -All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. - -You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. - -Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. -3. Protecting Users' Legal Rights From Anti-Circumvention Law. - -No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. - -When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. -4. Conveying Verbatim Copies. - -You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. - -You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. -5. Conveying Modified Source Versions. - -You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified it, and giving a relevant date. - b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. - c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. - d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. - -A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. -6. Conveying Non-Source Forms. - -You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: - - a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. - b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. - c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. - d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. - e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. - -A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. - -A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. - -“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. - -If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). - -The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. - -Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. -7. Additional Terms. - -“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. - -When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. - -Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or - b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or - c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or - d) Limiting the use for publicity purposes of names of licensors or authors of the material; or - e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or - f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. - -All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. - -If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. - -Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. -8. Termination. - -You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). - -However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. - -Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. - -Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. -9. Acceptance Not Required for Having Copies. - -You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. -10. Automatic Licensing of Downstream Recipients. - -Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. - -An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. - -You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. -11. Patents. - -A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. - -A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. - -Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. - -In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. - -If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. - -If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. - -A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. - -Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. -12. No Surrender of Others' Freedom. - -If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. -13. Use with the GNU Affero General Public License. - -Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. -14. Revised Versions of this License. - -The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. - -If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. - -Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. -15. Disclaimer of Warranty. - -THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -16. Limitation of Liability. - -IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -17. Interpretation of Sections 15 and 16. - -If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. diff --git a/sorc/fre-nctools.fd/tools/fregrid/bilinear_interp.c b/sorc/fre-nctools.fd/tools/fregrid/bilinear_interp.c deleted file mode 100644 index 1c99cf21f0..0000000000 --- a/sorc/fre-nctools.fd/tools/fregrid/bilinear_interp.c +++ /dev/null @@ -1,1137 +0,0 @@ -#include -#include -#include -#include "globals.h" -#include "mosaic_util.h" -#include "bilinear_interp.h" -#include "mpp_io.h" -#include "mpp.h" - -#define min(a,b) (ab ? a:b) -#define sign(a,b)(b<0 ? -fabs(a):fabs(a)) - - -int max_weight_index( double *var, int nvar); -double normalize_great_circle_distance(const double *v1, const double *v2); -/*double spherical_angle(double *v1, double *v2, double *v3);*/ -double dist2side(const double *v1, const double *v2, const double *point); -void redu2x(const double *varfin, const double *yfin, int nxfin, int nyfin, double *varcrs, - int nxcrs, int nycrs, int nz, int has_missing, double missvalue); -void do_latlon_coarsening(const double *var_latlon, const double *ylat, int nlon, int nlat, int nz, - double *var_latlon_crs, int finer_steps, int has_missing, double missvalue); -void do_c2l_interp(const Interp_config *interp, int nx_in, int ny_in, int nz, const Field_config *field_in, - int nx_out, int ny_out, double *data_out, int has_missing, double missing, int fill_missing ); -void sort_index(int ntiles, int *index, double *shortest); -int get_index(const Grid_config *grid_in, const Grid_config *grid_out, int *index, - int i_in, int j_in, int l_in, int i_out, int j_out); -int get_closest_index(const Grid_config *grid_in, const Grid_config *grid_out, int *index, - int i_in, int j_in, int l_in, int i_out, int j_out); - -/******************************************************************************* - void setup_bilinear_interp( ) - !------------------------------------------------------------------! - ! calculate weights for bilinear interpolation ! - ! from cubed sphere to latlon grid ! - ! ! - ! input: ! - ! sph_corner cubed sphere corner location in spherical coor ! - ! npx, npy number of corners per tile ! - ! ntiles number of tiles ! - ! xlon, ylat latlon grid coor ! - ! nlon, nlat latlon grid dimension ! - ! ! - ! output: ! - ! c2l_index cubed sphere index for latlon interpolation ! - ! c2l_weight weights for cubsph_to_latlon interpolation ! - ! elon_cubsph lon unit vector for cubed sphere center ! - ! elat_cubsph lat unit vector for cubed sphere center ! - ! elon_latlon lon unit vector for latlon grid ! - ! elat_latlon lat unit vector for latlon grid ! - !------------------------------------------------------------------! -*******************************************************************************/ -void setup_bilinear_interp(int ntiles_in, const Grid_config *grid_in, int ntiles_out, const Grid_config *grid_out, - Interp_config *interp, unsigned int opcode) -{ - const int max_iter = 10; - double abs_center, dcub, dlon, dlat, coslat, distance; - double dist1, dist2, dist3, dist4, sum; - double *shortest; - int i, j, n, l, ic, jc, lc, icc, jcc, i_min, i_max, j_min, j_max, iter; - int n0, n1, n2, n3, n4, m0, m1; - int nx_in, ny_in, nx_out, ny_out, nxd, nyd; - double v0[3], v1[3], v2[3], v3[3], v4[3]; - int all_done; - int *found, *index; - - /* ntiles_in must be six and ntiles_out must be one */ - if(ntiles_in != 6) mpp_error("Error from bilinear_interp: source mosaic should be cubic mosaic " - "and have six tiles when using bilinear option"); - if(ntiles_out != 1) mpp_error("Error from bilinear_interp: destination mosaic should be " - "one tile lat-lon grid when using bilinear option"); - /*-----------------------------------------------------------------! - ! cubed sphere: cartesian coordinates of cell corners, ! - ! cell lenghts between corners, ! - ! cartesian and spherical coordinates of cell centers! - ! calculate latlon unit vector ! - !-----------------------------------------------------------------*/ - - /* calculation is done on the fine grid */ - nx_out = grid_out->nx_fine; - ny_out = grid_out->ny_fine; - nx_in = grid_in->nx; /* the cubic grid has same resolution on each face */ - ny_in = grid_in->ny; - nxd = nx_in + 2; - nyd = ny_in + 2; - - interp->index = (int *)malloc(3*nx_out*ny_out*sizeof(int )); - interp->weight = (double *)malloc(4*nx_out*ny_out*sizeof(double)); - - if( (opcode & READ) && interp->file_exist ) { /* reading from file */ - int nx2, ny2, fid, vid; - - /* check the size of the grid matching the size in remapping file */ - printf("NOTE: reading index and weight for bilinear interpolation from file.\n"); - fid = mpp_open(interp->remap_file, MPP_READ); - nx2 = mpp_get_dimlen(fid, "nlon"); - ny2 = mpp_get_dimlen(fid, "nlat"); - printf("grid size is nx=%d, ny=%d, remap file size is nx=%d, ny=%d.\n", nx_out, ny_out, nx2, ny2); - if(nx2 != nx_out || ny2 != ny_out ) mpp_error("bilinear_interp: size mismatch between grid size and remap file size"); - vid = mpp_get_varid(fid, "index"); - mpp_get_var_value(fid, vid, interp->index); - vid = mpp_get_varid(fid, "weight"); - mpp_get_var_value(fid, vid, interp->weight); - mpp_close(fid); - return; - } - - /*------------------------------------------------------------------ - find lower left corner on cubed sphere for given latlon location - ------------------------------------------------------------------*/ - found = (int *)malloc(nx_out*ny_out*sizeof(int)); - index = (int *)malloc(ntiles_in*3*sizeof(int)); - shortest = (double *)malloc(ntiles_in*sizeof(double)); - for(i=0; ixt[n2]; - v2[1] = grid_out->yt[n2]; - v2[2] = grid_out->zt[n2]; - distance=normalize_great_circle_distance(v1, v2); - if (distance < shortest[l]) { - shortest[l]=distance; - index[3*l] =icc; - index[3*l+1]=jcc; - index[3*l+2]=l; - } - } - /*------------------------------------------------ - determine lower left corner - ------------------------------------------------*/ - found[n0] = get_closest_index(&(grid_in[l]), grid_out, &(interp->index[3*(j*nx_out+i)]), index[3*l], - index[3*l+1], index[3*l+2], i, j); - } - } - } - } - if (iter>1) { - all_done = 1; - for(i=0; iindex[3*(j*nx_out+i)]), index[3*l], - index[3*l+1], index[3*l+2], i, j); - if (found[n0]) break; - } - } - if (! found[n0] ) mpp_error("error from bilinear_interp: couldn't find lower left corner"); - } - /*------------------------------------------------------------ - calculate shortest distance to each side of rectangle - formed by cubed sphere cell centers - special corner treatment - ------------------------------------------------------------*/ - ic=interp->index[m0]; - jc=interp->index[m0+1]; - l =interp->index[m0+2]; - if (ic==nx_in && jc==ny_in) { - /*------------------------------------------------------------ - calculate weights for bilinear interpolation near corner - ------------------------------------------------------------*/ - n1 = jc*nxd+ic; - n2 = jc*nxd+ic+1; - n3 = (jc+1)*nxd+ic; - v1[0] = grid_in[l].xt[n1]; - v1[1] = grid_in[l].yt[n1]; - v1[2] = grid_in[l].zt[n1]; - v2[0] = grid_in[l].xt[n2]; - v2[1] = grid_in[l].yt[n2]; - v2[2] = grid_in[l].zt[n2]; - v3[0] = grid_in[l].xt[n3]; - v3[1] = grid_in[l].yt[n3]; - v3[2] = grid_in[l].zt[n3]; - v0[0] = grid_out->xt[n0]; - v0[1] = grid_out->yt[n0]; - v0[2] = grid_out->zt[n0]; - dist1=dist2side(v2, v3, v0); - dist2=dist2side(v2, v1, v0); - dist3=dist2side(v1, v3, v0); - interp->weight[m1] =dist1; /* ic, jc weight */ - interp->weight[m1+1]=dist2; /* ic, jc+1 weight */ - interp->weight[m1+2]=0.; /* ic+1, jc+1 weight */ - interp->weight[m1+3]=dist3; /* ic+1, jc weight */ - - sum=interp->weight[m1]+interp->weight[m1+1]+interp->weight[m1+3]; - interp->weight[m1] /=sum; - interp->weight[m1+1]/=sum; - interp->weight[m1+3]/=sum; - } - else if (ic==0 && jc==ny_in) { - /*------------------------------------------------------------ - calculate weights for bilinear interpolation near corner - ------------------------------------------------------------*/ - - n1 = jc*nxd+ic; - n2 = jc*nxd+ic+1; - n3 = (jc+1)*nxd+ic+1; - v1[0] = grid_in[l].xt[n1]; - v1[1] = grid_in[l].yt[n1]; - v1[2] = grid_in[l].zt[n1]; - v2[0] = grid_in[l].xt[n2]; - v2[1] = grid_in[l].yt[n2]; - v2[2] = grid_in[l].zt[n2]; - v3[0] = grid_in[l].xt[n3]; - v3[1] = grid_in[l].yt[n3]; - v3[2] = grid_in[l].zt[n3]; - v0[0] = grid_out->xt[n0]; - v0[1] = grid_out->yt[n0]; - v0[2] = grid_out->zt[n0]; - dist1=dist2side(v3, v2, v0); - dist2=dist2side(v2, v1, v0); - dist3=dist2side(v3, v1, v0); - interp->weight[m1] =dist1; /* ic, jc weight */ - interp->weight[m1+1]=0.; /* ic, jc+1 weight */ - interp->weight[m1+2]=dist2; /* ic+1, jc+1 weight */ - interp->weight[m1+3]=dist3; /* ic+1, jc weight */ - - sum=interp->weight[m1]+interp->weight[m1+2]+interp->weight[m1+3]; - interp->weight[m1] /=sum; - interp->weight[m1+2]/=sum; - interp->weight[m1+3]/=sum; - } - else if (jc==0 && ic==nx_in) { - /*------------------------------------------------------------ - calculate weights for bilinear interpolation near corner - ------------------------------------------------------------*/ - n1 = jc*nxd+ic; - n2 = (jc+1)*nxd+ic; - n3 = (jc+1)*nxd+ic+1; - v1[0] = grid_in[l].xt[n1]; - v1[1] = grid_in[l].yt[n1]; - v1[2] = grid_in[l].zt[n1]; - v2[0] = grid_in[l].xt[n2]; - v2[1] = grid_in[l].yt[n2]; - v2[2] = grid_in[l].zt[n2]; - v3[0] = grid_in[l].xt[n3]; - v3[1] = grid_in[l].yt[n3]; - v3[2] = grid_in[l].zt[n3]; - v0[0] = grid_out->xt[n0]; - v0[1] = grid_out->yt[n0]; - v0[2] = grid_out->zt[n0]; - dist1=dist2side(v2, v3, v0); - dist2=dist2side(v1, v3, v0); - dist3=dist2side(v1, v2, v0); - - interp->weight[m1] =dist1; /* ic, jc weight */ - interp->weight[m1+1]=dist2; /* ic, jc+1 weight */ - interp->weight[m1+2]=dist3; /* ic+1, jc+1 weight */ - interp->weight[m1+3]=0.; /* ic+1, jc weight */ - - sum=interp->weight[m1]+interp->weight[m1+1]+interp->weight[m1+2]; - interp->weight[m1] /=sum; - interp->weight[m1+1]/=sum; - interp->weight[m1+2]/=sum; - } - else { - /*------------------------------------------------------------ - calculate weights for bilinear interpolation if no corner - ------------------------------------------------------------*/ - n1 = jc*nxd+ic; - n2 = jc*nxd+ic+1; - n3 = (jc+1)*nxd+ic; - n4 = (jc+1)*nxd+ic+1; - v1[0] = grid_in[l].xt[n1]; - v1[1] = grid_in[l].yt[n1]; - v1[2] = grid_in[l].zt[n1]; - v2[0] = grid_in[l].xt[n2]; - v2[1] = grid_in[l].yt[n2]; - v2[2] = grid_in[l].zt[n2]; - v3[0] = grid_in[l].xt[n3]; - v3[1] = grid_in[l].yt[n3]; - v3[2] = grid_in[l].zt[n3]; - v4[0] = grid_in[l].xt[n4]; - v4[1] = grid_in[l].yt[n4]; - v4[2] = grid_in[l].zt[n4]; - v0[0] = grid_out->xt[n0]; - v0[1] = grid_out->yt[n0]; - v0[2] = grid_out->zt[n0]; - dist1=dist2side(v1, v3, v0); - dist2=dist2side(v3, v4, v0); - dist3=dist2side(v4, v2, v0); - dist4=dist2side(v2, v1, v0); - - interp->weight[m1] =dist2*dist3; /* ic, jc weight */ - interp->weight[m1+1]=dist3*dist4; /* ic, jc+1 weight */ - interp->weight[m1+2]=dist4*dist1; /* ic+1, jc+1 weight */ - interp->weight[m1+3]=dist1*dist2; /* ic+1, jc weight */ - - sum=interp->weight[m1]+interp->weight[m1+1]+interp->weight[m1+2]+interp->weight[m1+3]; - interp->weight[m1] /=sum; - interp->weight[m1+1]/=sum; - interp->weight[m1+2]/=sum; - interp->weight[m1+3]/=sum; - } - } - - /* write out weight information if needed */ - if( opcode & WRITE ) { - int fid, dim_three, dim_four, dim_nlon, dim_nlat, dims[3]; - int fld_index, fld_weight; - - fid = mpp_open( interp->remap_file, MPP_WRITE); - dim_nlon = mpp_def_dim(fid, "nlon", nx_out); - dim_nlat = mpp_def_dim(fid, "nlat", ny_out); - dim_three = mpp_def_dim(fid, "three", 3); - dim_four = mpp_def_dim(fid, "four", 4); - - dims[0] = dim_three; dims[1] = dim_nlat; dims[2] = dim_nlon; - fld_index = mpp_def_var(fid, "index", NC_INT, 3, dims, 0); - dims[0] = dim_four; dims[1] = dim_nlat; dims[2] = dim_nlon; - fld_weight = mpp_def_var(fid, "weight", NC_DOUBLE, 3, dims, 0); - mpp_end_def(fid); - mpp_put_var_value(fid, fld_index, interp->index); - mpp_put_var_value(fid, fld_weight, interp->weight); - mpp_close(fid); - } - - /* release the memory */ - free(found); - free(shortest); - free(index); - - printf("\n done calculating interp_index and interp_weight\n"); -}; /* setup_bilinear_interp */ - -/*---------------------------------------------------------------------------- - void do_scalar_bilinear_interp(Mosaic_config *input, Mosaic_config *output, int varid ) - interpolate scalar data to latlon, ! - --------------------------------------------------------------------------*/ -void do_scalar_bilinear_interp(const Interp_config *interp, int vid, int ntiles_in, const Grid_config *grid_in, const Grid_config *grid_out, - const Field_config *field_in, Field_config *field_out, int finer_step, int fill_missing) -{ - int nx_in, ny_in, nx_out, ny_out, nz; - int n, ts, tn, tw, te; - int has_missing; - double missing; - double *data_fine; - - /*------------------------------------------------------------------ - determine target grid resolution - ------------------------------------------------------------------*/ - nx_out = grid_out->nx_fine; - ny_out = grid_out->ny_fine; - nx_in = grid_in->nx; - ny_in = grid_in->ny; - /* currently we are regridding one vertical level for each call to reduce the memory usage */ - nz = 1; - missing = field_in[0].var[vid].missing; - has_missing = field_in[0].var[vid].has_missing; - - data_fine = (double *)malloc(nx_out*ny_out*nz*sizeof(double)); - - do_c2l_interp(interp, nx_in, ny_in, nz, field_in, nx_out, ny_out, data_fine, has_missing, missing, fill_missing); - do_latlon_coarsening(data_fine, grid_out->latt1D_fine, nx_out, ny_out, nz, field_out->data, - finer_step, has_missing, missing); - free(data_fine); - -}; /* do_c2l_scalar_interp */ - - - -/*---------------------------------------------------------------------------- - void do_vector_bilinear_interp() - interpolate vector data to latlon, ! - --------------------------------------------------------------------------*/ -void do_vector_bilinear_interp(Interp_config *interp, int vid, int ntiles_in, const Grid_config *grid_in, int ntiles_out, - const Grid_config *grid_out, const Field_config *u_in, const Field_config *v_in, - Field_config *u_out, Field_config *v_out, int finer_step, int fill_missing) -{ - Field_config *var_cubsph; - int nx_in, ny_in, nx_out, ny_out, nxd, nyd, nz, has_missing; - int i, j, k, n, n1, n2, ts, tn, tw, te; - double missing; - double *x_latlon, *y_latlon, *z_latlon, *var_latlon; - - nx_out = grid_out->nx_fine; - ny_out = grid_out->ny_fine; - nx_in = grid_in->nx; - ny_in = grid_in->ny; - nxd = nx_in + 2; - nyd = ny_in + 2; - /* currently we are regridding one vertical level for each call to reduce the memory usage */ - nz = 1; - missing = u_in[0].var[vid].missing; - has_missing = u_in[0].var[vid].has_missing; - - - x_latlon = (double *)malloc(nx_out*ny_out*nz*sizeof(double)); - y_latlon = (double *)malloc(nx_out*ny_out*nz*sizeof(double)); - z_latlon = (double *)malloc(nx_out*ny_out*nz*sizeof(double)); - var_latlon = (double *)malloc(nx_out*ny_out*nz*sizeof(double)); - var_cubsph = (Field_config *)malloc(ntiles_in*sizeof(Field_config)); - for(n=0; nvlon_t[3*n2] + y_latlon[n1]*grid_out->vlon_t[3*n2+1] + z_latlon[n1]*grid_out->vlon_t[3*n2+2]; - } - do_latlon_coarsening(var_latlon, grid_out->latt1D_fine, nx_out, ny_out, nz, u_out->data, - finer_step, has_missing, missing); - - for(k=0; kvlat_t[3*n2] + y_latlon[n1]*grid_out->vlat_t[3*n2+1] + z_latlon[n1]*grid_out->vlat_t[3*n2+2]; - } - - do_latlon_coarsening(var_latlon, grid_out->latt1D_fine, nx_out, ny_out, nz, v_out->data, - finer_step, has_missing, missing); - - free(x_latlon); - free(y_latlon); - free(z_latlon); - -}; /* do_vector_bilinear_interp */ - - -void do_c2l_interp(const Interp_config *interp, int nx_in, int ny_in, int nz, const Field_config *field_in, - int nx_out, int ny_out, double *data_out, int has_missing, double missing, int fill_missing ) -{ - int i, j, k, nxd, nyd, ic, jc, ind, n1, tile; - double d_in[4]; - - nxd = nx_in + 2; - nyd = ny_in + 2; - - if (has_missing) { - for(k=0; kindex[3*n1]; - jc = interp->index[3*n1+1]; - tile = interp->index[3*n1+2]; - d_in[0] = field_in[tile].data[k*nxd*nyd+jc *nxd+ic]; - d_in[1] = field_in[tile].data[k*nxd*nyd+(jc+1)*nxd+ic]; - d_in[2] = field_in[tile].data[k*nxd*nyd+(jc+1)*nxd+ic+1]; - d_in[3] = field_in[tile].data[k*nxd*nyd+jc *nxd+ic+1]; - if (d_in[0] == missing || d_in[1] == missing || d_in[2] == missing || d_in[3] == missing ) { - if (fill_missing) { - ind = max_weight_index( &(interp->weight[4*n1]), 4); - data_out[k*nx_out*ny_out+n1] = d_in[ind]; - } - else { - data_out[k*nx_out*ny_out+n1] = missing; - } - } - else { - data_out[k*nx_out*ny_out+n1] = d_in[0]*interp->weight[4*n1] + d_in[1]*interp->weight[4*n1+1] - + d_in[2]*interp->weight[4*n1+2] + d_in[3]*interp->weight[4*n1+3]; - } - } - } - else { - for(k=0; kindex[3*n1]; - jc = interp->index[3*n1+1]; - tile = interp->index[3*n1+2]; - d_in[0] = field_in[tile].data[k*nxd*nyd+jc *nxd+ic]; - d_in[1] = field_in[tile].data[k*nxd*nyd+(jc+1)*nxd+ic]; - d_in[2] = field_in[tile].data[k*nxd*nyd+(jc+1)*nxd+ic+1]; - d_in[3] = field_in[tile].data[k*nxd*nyd+jc *nxd+ic+1]; - data_out[k*nx_out*ny_out+n1] = d_in[0]*interp->weight[4*n1] + d_in[1]*interp->weight[4*n1+1] - + d_in[2]*interp->weight[4*n1+2] + d_in[3]*interp->weight[4*n1+3]; - } - } - -}; /* do_c2l_interp */ - - -/*------------------------------------------------------------------ - void sort_index() - sort index by shortest - ----------------------------------------------------------------*/ -void sort_index(int ntiles, int *index, double *shortest) -{ - int l, ll, lll, i; - double *shortest_sort; - int *index_sort; - - shortest_sort = (double *)malloc(3*ntiles*sizeof(double)); - index_sort = (int *)malloc( ntiles*sizeof(int )); - - for(l=0; l<3*ntiles; l++)index_sort[l] = 0; - for(l=0; l=ll; lll--) { - index_sort[3*lll+1]=index_sort[3*lll]; - shortest_sort[lll+1]=shortest_sort[lll]; - } - for(i=0; i<3; i++) index_sort[3*ll+i]=index[3*l+i]; - shortest_sort[ll]=shortest[l]; - break; - } - } - } - - for(l=0; l<3*ntiles; l++) index[l] = index_sort[l]; - for(l=0; l< ntiles; l++) shortest[l] = shortest_sort[l]; - - free(shortest_sort); - free(index_sort); - -}; /* sort_index */ - - -/*------------------------------------------------------------------ - void get_index(ig, jg, lg) - determine lower left corner - ----------------------------------------------------------------*/ -int get_index(const Grid_config *grid_in, const Grid_config *grid_out, int *index, - int i_in, int j_in, int l_in, int i_out, int j_out) -{ - int ok, n0, n1, n2, n3, n4, n5; - int nx_in, ny_in, nx_out, ny_out; - double v0[3], v1[3], v2[3], v3[3], v4[3], v5[3]; - double angle_1, angle_1a, angle_1b, angle_2, angle_2a, angle_2b; - double angle_3, angle_3a, angle_3b, angle_4, angle_4a, angle_4b; - - ok=1; - nx_in = grid_in->nx_fine; - ny_in = grid_in->nx_fine; - nx_out = grid_out->nx; - ny_out = grid_out->nx; - n0 = j_out*nx_out + i_out; - n1 = j_in*nx_in + i_in; - n2 = j_in*nx_in + i_in+1; - n3 = (j_in+1)*nx_in + i_in; - v0[0] = grid_out->xt[n1]; - v0[1] = grid_out->yt[n1]; - v0[2] = grid_out->zt[n1]; - v1[0] = grid_in->xt[n1]; - v1[1] = grid_in->yt[n1]; - v1[2] = grid_in->zt[n1]; - v2[0] = grid_in->xt[n2]; - v2[1] = grid_in->yt[n2]; - v2[2] = grid_in->zt[n2]; - v3[0] = grid_in->xt[n3]; - v3[1] = grid_in->yt[n3]; - v3[2] = grid_in->zt[n3]; - angle_1 = spherical_angle(v1, v2, v3); - angle_1a= spherical_angle(v1, v2, v0); - angle_1b= spherical_angle(v1, v3, v0); - - if (max(angle_1a,angle_1b)xt[n4]; - v4[1] = grid_in->yt[n4]; - v4[2] = grid_in->zt[n4]; - angle_2 =spherical_angle(v1, v3, v4); - angle_2a=angle_1b; - angle_2b=spherical_angle(v1, v4, v0); - if (max(angle_2a,angle_2b)xt[n5]; - v5[1] = grid_in->yt[n5]; - v5[2] = grid_in->zt[n5]; - angle_3 =spherical_angle(v1, v4, v5); - angle_3a=angle_2b; - angle_3b=spherical_angle(v1, v5, v0); - if (max(angle_3a,angle_3b)1 && j_in>1) { - index[0]=i_in-1; - index[1]=j_in-1; - index[2]=l_in; - } - else { - angle_4 =spherical_angle(v1, v5, v2); - angle_4a=angle_3b; - angle_4b=spherical_angle(v1, v2, v0); - if (max(angle_4a,angle_4b)nx; - ny_in = grid_in->ny; - nxd = nx_in + 2; - nx_out = grid_out->nx_fine; - ny_out = grid_out->ny_fine; - n0 = j_out*nx_out+i_out; - n1 = j_in*nxd+i_in; - n2 = j_in*nxd+i_in+1; - n3 = (j_in+1)*nxd+i_in; - v1[0] = grid_in->xt[n1]; - v1[1] = grid_in->yt[n1]; - v1[2] = grid_in->zt[n1]; - v2[0] = grid_in->xt[n2]; - v2[1] = grid_in->yt[n2]; - v2[2] = grid_in->zt[n2]; - v3[0] = grid_in->xt[n3]; - v3[1] = grid_in->yt[n3]; - v3[2] = grid_in->zt[n3]; - v0[0] = grid_out->xt[n0]; - v0[1] = grid_out->yt[n0]; - v0[2] = grid_out->zt[n0]; - angle_1 =spherical_angle(v1, v2, v3); - angle_1a=spherical_angle(v1, v2, v0); - angle_1b=spherical_angle(v1, v3, v0); - if (max(angle_1a,angle_1b) <= angle_1) { - if (i_in==nx_in && j_in==ny_in) { - angle_11 =spherical_angle(v2, v3, v1); - angle_11a=spherical_angle(v2, v1, v0); - angle_11b=spherical_angle(v2, v3, v0); - } - else { - n4 = (j_in+1)*nxd+i_in+1; - v4[0] = grid_in->xt[n4]; - v4[1] = grid_in->yt[n4]; - v4[2] = grid_in->zt[n4]; - angle_11 =spherical_angle(v4, v3, v2); - angle_11a=spherical_angle(v4, v2, v0); - angle_11b=spherical_angle(v4, v3, v0); - } - if (max(angle_11a,angle_11b)<=angle_11) { - found = 1; - index[0]=i_in; - index[1]=j_in; - index[2]=l_in; - } - } - else { - n4 = j_in*nxd+i_in-1; - v4[0] = grid_in->xt[n4]; - v4[1] = grid_in->yt[n4]; - v4[2] = grid_in->zt[n4]; - angle_2 =spherical_angle(v1,v3,v4); - angle_2a=angle_1b; - angle_2b=spherical_angle(v1,v4,v0); - if (max(angle_2a,angle_2b)<=angle_2) { - if (i_in==1 && j_in==ny_in) { - angle_22 =spherical_angle(v3, v1, v4); - angle_22a=spherical_angle(v3, v4, v0); - angle_22b=spherical_angle(v3, v1, v0); - } - else { - n5 = (j_in+1)*nxd+i_in-1; - n6 = j_in *nxd+i_in-1; - v5[0] = grid_in->xt[n5]; - v5[1] = grid_in->yt[n5]; - v5[2] = grid_in->zt[n5]; - v6[0] = grid_in->xt[n6]; - v6[1] = grid_in->yt[n6]; - v6[2] = grid_in->zt[n6]; - angle_22 =spherical_angle(v5, v3, v6); - angle_22a=spherical_angle(v5, v6, v0); - angle_22b=spherical_angle(v5, v3, v0); - } - if (max(angle_22a,angle_22b)<=angle_22) { - found=1; - index[0]=i_in-1; - index[1]=j_in; - index[2]=l_in; - } - } - else { - n5 = j_in*nxd+i_in-1; - n6 = (j_in-1)*nxd+i_in; - v5[0] = grid_in->xt[n5]; - v5[1] = grid_in->yt[n5]; - v5[2] = grid_in->zt[n5]; - v6[0] = grid_in->xt[n6]; - v6[1] = grid_in->yt[n6]; - v6[2] = grid_in->zt[n6]; - angle_3 =spherical_angle(v1, v5, v6); - angle_3a=angle_2b; - angle_3b=spherical_angle(v1, v6, v0); - if (max(angle_3a,angle_3b)<=angle_3 && i_in>1 && j_in>1) { - n7 = (j_in-1)*nxd+i_in-1; - v7[0] = grid_in->xt[n7]; - v7[1] = grid_in->yt[n7]; - v7[2] = grid_in->zt[n7]; - angle_33 =spherical_angle(v7, v6, v5); - angle_33a=spherical_angle(v7, v5, v0); - angle_33b=spherical_angle(v7, v6, v0); - if (max(angle_33a,angle_33b)<=angle_33) { - found=1; - index[0]=i_in-1; - index[1]=j_in-1; - index[2]=l_in; - } - } - else { - angle_4 =spherical_angle(v1, v6, v2); - angle_4a=angle_3b; - angle_4b=spherical_angle(v1, v2, v0); - if (max(angle_4a,angle_4b)<=angle_4) { - if (i_in==nx_in && j_in==1) { - angle_44 =spherical_angle(v2, v1, v6); - angle_44a=spherical_angle(v2, v6, v0); - angle_44b=spherical_angle(v2, v1, v0); - } - else { - n8 = (j_in-1)*nxd+i_in+1; - v8[0] = grid_in->xt[n8]; - v8[1] = grid_in->yt[n8]; - v8[2] = grid_in->zt[n8]; - angle_44 =spherical_angle(v8, v2, v6); - angle_44a=spherical_angle(v8, v6, v0); - angle_44b=spherical_angle(v8, v2, v0); - } - if (max(angle_44a,angle_44b)<=angle_44) { - found=1; - index[0]=i_in; - index[1]=j_in-1; - index[2]=l_in; - } - } - } - } - } - return found; - -}; /* get_closest_index */ - - - -/*-------------------------------------------------------------------------- - -calculate normalized great circle distance between v1 and v2 -double normalize_great_circle_distance(v1, v2) ----------------------------------------------------------------------------*/ -double normalize_great_circle_distance(const double *v1, const double *v2) -{ - double dist; - - dist=(v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]) - /sqrt((v1[0]*v1[0]+v1[1]*v1[1]+v1[2]*v1[2]) - *(v2[0]*v2[0]+v2[1]*v2[1]+v2[2]*v2[2])); - dist = sign(min(1.,fabs(dist)),dist); - dist = acos(dist); - return dist; - -}; /* normalize_great_circle_distance */ - -/*------------------------------------------------------------------ - double spherical_angle(v1, v2, v3) - - calculate spherical angle of a triangle formed by v1, v2 and v3 at v1 - ------------------------------------------------------------------*/ -/* double spherical_angle(double *v1, double *v2, double *v3) */ -/* { */ -/* double angle; */ -/* double px, py, pz, qx, qy, qz, abs_p, abs_q; */ - -/* /* vector product between v1 and v2 */ -/* px = v1[1]*v2[2] - v1[2]*v2[1]; */ -/* py = v1[2]*v2[0] - v1[0]*v2[2]; */ -/* pz = v1[0]*v2[1] - v1[1]*v2[0]; */ -/* /* vector product between v1 and v3 */ -/* qx = v1[1]*v3[2] - v1[2]*v3[1]; */ -/* qy = v1[2]*v3[0] - v1[0]*v3[2]; */ -/* qz = v1[0]*v3[1] - v1[1]*v3[0]; */ - -/* /* angle between p and q */ -/* abs_p=px*px+py*py+pz*pz; */ -/* abs_q=qx*qx+qy*qy+qz*qz; */ -/* if (abs_p*abs_q==0.) */ -/* angle=0.; */ -/* else { */ -/* angle = (px*qx+py*qy+pz*qz)/sqrt(abs_p*abs_q); */ -/* angle = sign(min(1.,fabs(angle)),angle); */ -/* angle = acos(angle); */ -/* } */ - -/* return angle; */ -/* }; /* spherical_angle */ - -/*--------------------------------------------------------------------- - double dist2side(v1, v2, point) - calculate shortest normalized distance on sphere - from point to straight line defined by v1 and v2 - ------------------------------------------------------------------*/ -double dist2side(const double *v1, const double *v2, const double *point) -{ - double angle, side; - - angle = spherical_angle(v1, v2, point); - side = normalize_great_circle_distance(v1, point); - - return (asin(sin(side)*sin(angle))); - -};/* dist2side */ - - -int max_weight_index( double *var, int nvar) -{ - - int ind, i; - - ind = 0; - - for(i=1; ivar[ind]) ind = i; - } - - return ind; -} - -/*------------------------------------------------------------------------------ - void do_latlon_coarsening(var_latlon, ylat, nlon, nlat, nz, - var_latlon_crs, nlon_crs, nlat_crs, - finer_steps, misval, varmisval) - - calculate variable on coarser latlon grid - by doubling spatial resolution and preserving volume means - ---------------------------------------------------------------------------*/ -void do_latlon_coarsening(const double *var_latlon, const double *ylat, int nlon, int nlat, int nz, - double *var_latlon_crs, int finer_steps, int has_missing, double missvalue) -{ - - double *var_latlon_old, *ylat_old, *var_latlon_new; - double dlat; - int nlon_old, nlat_old, nlon_new, nlat_new, steps, i, j; - int nlon_crs, nlat_crs; - - nlon_crs=nlon/pow(2,finer_steps); - nlat_crs=(nlat-1)/pow(2,finer_steps)+1; - switch (finer_steps) { - case 0: - if (nlon_crs !=nlon || nlat_crs != nlat) mpp_error("bilinear_interp(do_latlon_coarsening): grid dimensions don't match"); - for(i=0; i -#include -#include -#include -#include -#include "constant.h" -#include "globals.h" -#include "create_xgrid.h" -#include "mosaic_util.h" -#include "conserve_interp.h" -#include "fregrid_util.h" -#include "mpp.h" -#include "mpp_io.h" -#include "read_mosaic.h" - -#define AREA_RATIO (1.e-3) -#define MAXVAL (1.e20) -#define TOLERANCE (1.e-10) -/******************************************************************************* - void setup_conserve_interp - Setup the interpolation weight for conservative interpolation -*******************************************************************************/ -void setup_conserve_interp(int ntiles_in, const Grid_config *grid_in, int ntiles_out, - Grid_config *grid_out, Interp_config *interp, unsigned int opcode) -{ - int n, m, i, ii, jj, nx_in, ny_in, nx_out, ny_out, tile; - size_t nxgrid, nxgrid2, nxgrid_prev; - int *i_in=NULL, *j_in=NULL, *i_out=NULL, *j_out=NULL; - int *tmp_t_in=NULL, *tmp_i_in=NULL, *tmp_j_in=NULL, *tmp_i_out=NULL, *tmp_j_out=NULL; - double *tmp_di_in, *tmp_dj_in; - double *xgrid_area=NULL, *tmp_area=NULL, *xgrid_clon=NULL, *xgrid_clat=NULL; - - double garea; - typedef struct{ - double *area; - double *clon; - double *clat; - } CellStruct; - CellStruct *cell_in; - - garea = 4*M_PI*RADIUS*RADIUS; - - if( opcode & READ) { - for(n=0; n= grid_out[n].isc && - j_out[i] <= grid_out[n].jec && j_out[i] >= grid_out[n].jsc ) - ind[interp[n].nxgrid++] = i; - } - interp[n].i_in = (int *)malloc(interp[n].nxgrid*sizeof(int )); - interp[n].j_in = (int *)malloc(interp[n].nxgrid*sizeof(int )); - interp[n].i_out = (int *)malloc(interp[n].nxgrid*sizeof(int )); - interp[n].j_out = (int *)malloc(interp[n].nxgrid*sizeof(int )); - interp[n].area = (double *)malloc(interp[n].nxgrid*sizeof(double)); - interp[n].t_in = (int *)malloc(interp[n].nxgrid*sizeof(int )); - - for(i=0; i< interp[n].nxgrid; i++) { - interp[n].i_in [i] = i_in [ind[i]]; - interp[n].j_in [i] = j_in [ind[i]]; - interp[n].t_in [i] = t_in [ind[i]] - 1; - interp[n].i_out[i] = i_out[ind[i]] - grid_out[n].isc; - interp[n].j_out[i] = j_out[ind[i]] - grid_out[n].jsc; - interp[n].area [i] = xgrid_area[ind[i]]; - } - if(opcode & CONSERVE_ORDER2) { - interp[n].di_in = (double *)malloc(interp[n].nxgrid*sizeof(double)); - interp[n].dj_in = (double *)malloc(interp[n].nxgrid*sizeof(double)); - for(i=0; i< interp[n].nxgrid; i++) { - interp[n].di_in[i] = xgrid_clon[ind[i]]; - interp[n].dj_in[i] = xgrid_clat[ind[i]]; - } - } - free(t_in); - free(ind); - } - } - if(mpp_pe() == mpp_root_pe())printf("NOTE: Finish reading index and weight for conservative interpolation from file.\n"); - } - else { - i_in = (int *)malloc(MAXXGRID * sizeof(int )); - j_in = (int *)malloc(MAXXGRID * sizeof(int )); - i_out = (int *)malloc(MAXXGRID * sizeof(int )); - j_out = (int *)malloc(MAXXGRID * sizeof(int )); - xgrid_area = (double *)malloc(MAXXGRID * sizeof(double)); - xgrid_clon = (double *)malloc(MAXXGRID * sizeof(double)); - xgrid_clat = (double *)malloc(MAXXGRID * sizeof(double));; - cell_in = (CellStruct *)malloc(ntiles_in * sizeof(CellStruct)); - for(m=0; m y_min ) { - if(j < jstart ) jstart = j; - } - if( yy < y_max ) { - if(j > jend ) jend = j; - } - - } - jstart = max(0, jstart-1); - jend = min(ny_in-1, jend+1); - ny_now = jend-jstart+1; - - if(opcode & CONSERVE_ORDER1) { - nxgrid = create_xgrid_2dx2d_order1(&nx_in, &ny_now, &nx_out, &ny_out, grid_in[m].lonc+jstart*(nx_in+1), - grid_in[m].latc+jstart*(nx_in+1), grid_out[n].lonc, grid_out[n].latc, - mask, i_in, j_in, i_out, j_out, xgrid_area); - for(i=0; i 0) { - g_i_in = (int *)malloc(g_nxgrid*sizeof(int )); - g_j_in = (int *)malloc(g_nxgrid*sizeof(int )); - g_area = (double *)malloc(g_nxgrid*sizeof(double)); - g_clon = (double *)malloc(g_nxgrid*sizeof(double)); - g_clat = (double *)malloc(g_nxgrid*sizeof(double)); - mpp_gather_field_int (nxgrid, i_in, g_i_in); - mpp_gather_field_int (nxgrid, j_in, g_j_in); - mpp_gather_field_double(nxgrid, xgrid_area, g_area); - mpp_gather_field_double(nxgrid, xgrid_clon, g_clon); - mpp_gather_field_double(nxgrid, xgrid_clat, g_clat); - for(i=0; i 0) { - nxgrid_prev = interp[n].nxgrid; - interp[n].nxgrid += nxgrid; - if(nxgrid_prev == 0 ) { - interp[n].i_in = (int *)malloc(interp[n].nxgrid*sizeof(int )); - interp[n].j_in = (int *)malloc(interp[n].nxgrid*sizeof(int )); - interp[n].i_out = (int *)malloc(interp[n].nxgrid*sizeof(int )); - interp[n].j_out = (int *)malloc(interp[n].nxgrid*sizeof(int )); - interp[n].area = (double *)malloc(interp[n].nxgrid*sizeof(double)); - interp[n].t_in = (int *)malloc(interp[n].nxgrid*sizeof(int )); - for(i=0; i0) */ - } - } - if(opcode & CONSERVE_ORDER2) { - /* subtrack the grid_in clon and clat to get the distance between xgrid and grid_in */ - for(n=0; n 0) { - if( fabs(cell_in[n].area[ii]-grid_in[n].cell_area[ii])/grid_in[n].cell_area[ii] < AREA_RATIO ) { - cell_in[n].clon[ii] /= cell_in[n].area[ii]; - cell_in[n].clat[ii] /= cell_in[n].area[ii]; - } - else { - n0 = j*(nx_in+1)+i; n1 = j*(nx_in+1)+i+1; - n2 = (j+1)*(nx_in+1)+i+1; n3 = (j+1)*(nx_in+1)+i; - x1_in[0] = grid_in[n].lonc[n0]; y1_in[0] = grid_in[n].latc[n0]; - x1_in[1] = grid_in[n].lonc[n1]; y1_in[1] = grid_in[n].latc[n1]; - x1_in[2] = grid_in[n].lonc[n2]; y1_in[2] = grid_in[n].latc[n2]; - x1_in[3] = grid_in[n].lonc[n3]; y1_in[3] = grid_in[n].latc[n3]; - n1_in = fix_lon(x1_in, y1_in, 4, M_PI); - lon_in_avg = avgval_double(n1_in, x1_in); - clon = poly_ctrlon(x1_in, y1_in, n1_in, lon_in_avg); - clat = poly_ctrlat (x1_in, y1_in, n1_in ); - cell_in[n].clon[ii] = clon/grid_in[n].cell_area[ii]; - cell_in[n].clat[ii] = clat/grid_in[n].cell_area[ii]; - } - } - } - } - for(n=0; n 0) { - size_t start[4], nwrite[4]; - int fid, dim_string, dim_ncells, dim_two, dims[4]; - int id_xgrid_area, id_tile1_dist; - int id_tile1_cell, id_tile2_cell, id_tile1; - int *gdata_int, *ldata_int; - double *gdata_dbl; - - fid = mpp_open( interp[n].remap_file, MPP_WRITE); - dim_string = mpp_def_dim(fid, "string", STRING); - dim_ncells = mpp_def_dim(fid, "ncells", nxgrid); - dim_two = mpp_def_dim(fid, "two", 2); - dims[0] = dim_ncells; dims[1] = dim_two; - id_tile1 = mpp_def_var(fid, "tile1", NC_INT, 1, &dim_ncells, 1, - "standard_name", "tile_number_in_mosaic1"); - id_tile1_cell = mpp_def_var(fid, "tile1_cell", NC_INT, 2, dims, 1, - "standard_name", "parent_cell_indices_in_mosaic1"); - id_tile2_cell = mpp_def_var(fid, "tile2_cell", NC_INT, 2, dims, 1, - "standard_name", "parent_cell_indices_in_mosaic2"); - id_xgrid_area = mpp_def_var(fid, "xgrid_area", NC_DOUBLE, 1, &dim_ncells, 2, - "standard_name", "exchange_grid_area", "units", "m2"); - if(opcode & CONSERVE_ORDER2) id_tile1_dist = mpp_def_var(fid, "tile1_distance", NC_DOUBLE, 2, dims, 1, - "standard_name", "distance_from_parent1_cell_centroid"); - mpp_end_def(fid); - for(i=0; i<4; i++) { - start[i] = 0; nwrite[i] = 1; - } - nwrite[0] = nxgrid; - gdata_int = (int *)malloc(nxgrid*sizeof(int)); - if(interp[n].nxgrid>0) ldata_int = (int *)malloc(interp[n].nxgrid*sizeof(int)); - mpp_gather_field_int(interp[n].nxgrid, interp[n].t_in, gdata_int); - for(i=0; i0)free(ldata_int); - - gdata_dbl = (double *)malloc(nxgrid*sizeof(double)); - mpp_gather_field_double(interp[n].nxgrid, interp[n].area, gdata_dbl); - mpp_put_var_value(fid, id_xgrid_area, gdata_dbl); - - if(opcode & CONSERVE_ORDER2) { - start[1] = 0; - mpp_gather_field_double(interp[n].nxgrid, interp[n].di_in, gdata_dbl); - mpp_put_var_value_block(fid, id_tile1_dist, start, nwrite, gdata_dbl); - start[1] = 1; - mpp_gather_field_double(interp[n].nxgrid, interp[n].dj_in, gdata_dbl); - mpp_put_var_value_block(fid, id_tile1_dist, start, nwrite, gdata_dbl); - } - - free(gdata_dbl); - mpp_close(fid); - } - } - } - if(mpp_pe() == mpp_root_pe())printf("NOTE: done calculating index and weight for conservative interpolation\n"); - } - - /* check the input area match exchange grid area */ - if(opcode & CHECK_CONSERVE) { - int nx1, ny1, max_i, max_j, i, j; - double max_ratio, ratio_change; - double *area2; - - /* sum over exchange grid to get the area of grid_in */ - nx1 = grid_out[0].nxc; - ny1 = grid_out[0].nyc; - - area2 = (double *)malloc(nx1*ny1*sizeof(double)); - - for(n=0; n max_ratio) { - max_ratio = ratio_change; - max_i = i; - max_j = j; - } - if( ratio_change > 1.e-4 ) { - printf("(i,j)=(%d,%d), change = %g, area1=%g, area2=%g\n", i, j, ratio_change, grid_out[n].cell_area[ii],area2[ii]); - } - } - ii = max_j*nx1+max_i; - printf("The maximum ratio change at (%d,%d) = %g, area1=%g, area2=%g\n", max_i, max_j, max_ratio, grid_out[n].cell_area[ii],area2[ii]); - - } - - free(area2); - - } - - free(i_in); - free(j_in); - free(i_out); - free(j_out); - free(xgrid_area); - if(xgrid_clon) free(xgrid_clon); - if(xgrid_clat) free(xgrid_clat); - -}; /* setup_conserve_interp */ - - -/******************************************************************************* - void do_scalar_conserve_interp( ) - doing conservative interpolation -*******************************************************************************/ -void do_scalar_conserve_interp(Interp_config *interp, int varid, int ntiles_in, const Grid_config *grid_in, - int ntiles_out, const Grid_config *grid_out, const Field_config *field_in, - Field_config *field_out, unsigned int opcode, int nz) -{ - int nx1, ny1, nx2, ny2, i1, j1, i2, j2, tile, n, m, i, j, n1, n2; - int k, n0; - int has_missing, halo, interp_method; - int weight_exist; - int cell_measures, cell_methods; - double area, missing, di, dj, area_missing; - double *out_area; - double gsum_out; - int monotonic; - Monotone_config *monotone_data; - - gsum_out = 0; - interp_method = field_in->var[varid].interp_method; - halo = 0; - monotonic = 0; - if(interp_method == CONSERVE_ORDER2) { - halo = 1; - monotonic = opcode & MONOTONIC; - } - - area_missing = field_in->var[varid].area_missing; - has_missing = field_in->var[varid].has_missing; - weight_exist = grid_in[0].weight_exist; - cell_measures = field_in->var[varid].cell_measures; - cell_methods = field_in->var[varid].cell_methods; - - missing = -MAXVAL; - if(has_missing) missing = field_in->var[varid].missing; - - if( nz>1 && has_missing ) mpp_error("conserve_interp: has_missing should be false when nz > 1"); - if( nz>1 && cell_measures ) mpp_error("conserve_interp: cell_measures should be false when nz > 1"); - if( nz>1 && cell_methods == CELL_METHODS_SUM ) mpp_error("conserve_interp: cell_methods should not be sum when nz > 1"); - /* if( nz>1 && monotonic ) mpp_error("conserve_interp: monotonic should be false when nz > 1"); */ - - if(monotonic) monotone_data = (Monotone_config *)malloc(ntiles_in*sizeof(Monotone_config)); - - for(m=0; m monotone_data[n].f_bar_max[n1] ) monotone_data[n].f_bar_max[n1] = field_in[n].data[n2]; - if( field_in[n].data[n2] < monotone_data[n].f_bar_min[n1] ) monotone_data[n].f_bar_min[n1] = field_in[n].data[n2]; - } - } - } - } - - xdata = (double *)malloc(interp[m].nxgrid*sizeof(double)); - for(n=0; n monotone_data[tile].f_max[n1]) monotone_data[tile].f_max[n1] = xdata[n]; - if( xdata[n] < monotone_data[tile].f_min[n1]) monotone_data[tile].f_min[n1] = xdata[n]; - } - } - else - xdata[n] = missing; - } - - /* get the global f_max and f_min */ - if(mpp_npes() >1) { - for(n=0; n monotone_data[tile].f_bar_max[n1] ) { - /* z1l: Due to truncation error, we might get xdata[n] > f_bar_max[n1]. So - we allow some tolerance. What is the suitable tolerance? */ - xdata[n] = f_bar + ((xdata[n]-f_bar)/(monotone_data[tile].f_max[n1]-f_bar)) - * (monotone_data[tile].f_bar_max[n1]-f_bar); - if( xdata[n] > monotone_data[tile].f_bar_max[n1]) { - if(xdata[n] - monotone_data[tile].f_bar_max[n1] < TOLERANCE ) xdata[n] = monotone_data[tile].f_bar_max[n1]; - if( xdata[n] > monotone_data[tile].f_bar_max[n1]) { - printf(" n = %d, n1 = %d, xdata = %f, f_bar_max=%f\n", n, n1, xdata[n], monotone_data[tile].f_bar_max[n1]); - mpp_error(" xdata is greater than f_bar_max "); - } - } - } - else if( monotone_data[tile].f_min[n1] < monotone_data[tile].f_bar_min[n1] ) { - /* z1l: Due to truncation error, we might get xdata[n] < f_bar_min[n1]. So - we allow some tolerance. What is the suitable tolerance? */ - xdata[n] = f_bar + ((xdata[n]-f_bar)/(monotone_data[tile].f_min[n1]-f_bar)) * (monotone_data[tile].f_bar_min[n1]-f_bar); - if( xdata[n] < monotone_data[tile].f_bar_min[n1]) { - if(monotone_data[tile].f_bar_min[n1] - xdata[n]< TOLERANCE ) xdata[n] = monotone_data[tile].f_bar_min[n1]; - if( xdata[n] < monotone_data[tile].f_bar_min[n1]) { - printf(" n = %d, n1 = %d, xdata = %f, f_bar_min=%f\n", n, n1, xdata[n], monotone_data[tile].f_bar_min[n1]); - mpp_error(" xdata is less than f_bar_min "); - } - } - } - } - for(n=0; n 0) gsum_out += field_out[m].data[i]; - } - } - - if( cell_measures || ( !(opcode & TARGET) && !(cell_methods == CELL_METHODS_SUM)) ) { - for(i=0; i 0) - field_out[m].data[i] /= out_area[i]; - else - field_out[m].data[i] = missing; - } - } - else if( opcode & TARGET ) { - for(i=0; i 0) - for(k=0; kvar[varid].name, gsum_in, gsum_out, gsum_out-gsum_in); - - } - - -}; /* do_scalar_conserve_interp */ - - -/******************************************************************************* - void do_vector_conserve_interp( ) - doing conservative interpolation -*******************************************************************************/ -void do_vector_conserve_interp(Interp_config *interp, int varid, int ntiles_in, const Grid_config *grid_in, int ntiles_out, - const Grid_config *grid_out, const Field_config *u_in, const Field_config *v_in, - Field_config *u_out, Field_config *v_out, unsigned int opcode) -{ - int nx1, ny1, nx2, ny2, i1, j1, i2, j2, tile, n, m, i; - double area, missing, tmp_x, tmp_y; - double *out_area; - - missing = u_in->var[varid].missing; - /* first rotate input data */ - for(n = 0; n < ntiles_in; n++) { - if(grid_in[n].rotate) { - nx1 = grid_in[n].nx; - ny1 = grid_in[n].ny; - for(i=0; i 0) { - u_out[m].data[i] /= grid_out[m].area[i]; - v_out[m].data[i] /= grid_out[m].area[i]; - } - else { - u_out[m].data[i] = missing; - v_out[m].data[i] = missing; - } - } - } - else { - for(i=0; i 0) { - u_out[m].data[i] /= out_area[i]; - v_out[m].data[i] /= out_area[i]; - } - else { - u_out[m].data[i] = missing; - v_out[m].data[i] = missing; - } - } - } - /* rotate the data if needed */ - if(grid_out[m].rotate) { - for(i=0; i -#include -#include -#include -#include -#include -#include "globals.h" -#include "constant.h" -#include "read_mosaic.h" -#include "mpp_io.h" -#include "mpp.h" -#include "mosaic_util.h" -#include "conserve_interp.h" -#include "bilinear_interp.h" -#include "fregrid_util.h" - -char *usage[] = { - "", - " fregrid --input_mosaic input_mosaic --input_file input_file ", - " [--scalar_field scalar_fld] [--u_field u_fld] [--v_field v_fld] ", - " [--output_mosaic output_mosaic] [--lonBegin #decimal] [--lonEnd #decimal] ", - " [--latBegin #decimal] [--latEnd #decimal] [--nlon #integer] ", - " [--nlat #integer] [--KlevelBegin #integer] [--KlevelEnd #integer] ", - " [--LstepBegin #integer] [--LstepEnd #integer] ", - " [--output_file output_file] [--input_dir input_dir] ", - " [--output_dir output_dir] [--remap_file remap_file] ", - " [--interp_method method] [--grid_type grid_type] [--test_case test_case] ", - " [--symmetry] [--target_grid] [--finer_step #] [--fill_missing] ", - " [--center_y] [--check_conserve] [--weight_file weight_file] ", - " [--weight_field --weight_field] [--dst_vgrid dst_vgrid] ", - " [--extrapolate] [--stop_crit #] [--standard_dimension] ", - " [--associated_file_dir dir] ", - " ", - "fregrid remaps data (scalar or vector) from input_mosaic onto ", - "output_mosaic. Note that the target grid also could be specified ", - "through lonBegin, lonEnd, latBegin, latEnd, nlon and nlat. Currently ", - "only T-cell scalar regridding and AGRID vector regridding is ", - "available. Bilinear interpolation is implemented only for cubic grid ", - "vector interpolation. The interpolation algorithm used is controlled ", - "by --interp_method with default 'conserve_order1'. Currently the ", - "'conserve_order1', 'conserve_order2' and 'bilinear' remapping schemes ", - "are implemented. 'bilinear' is only used to remap data from cubic grid ", - "to latlon grid. Alternative schemes can be added if needed. fregrid ", - "expects NetCDF format input. scalar_field and/or u_field/v_field must ", - "be specified. u_fld and v_fld must be paired together. ", - " ", - "fregrid takes the following flags: ", - " ", - "REQUIRED: ", - " ", - "--input_mosaic input_mosaic specify the input mosaic information. This file ", - " contains list of tile files which specify the grid ", - " information for each tile. ", - " ", - "OPTIONAL FLAGS ", - " ", - "--input_file input_file specify the input file name. The suffix '.nc' can be ", - " omitted. The suffix 'tile#' should not present for ", - " multiple-tile files. The number of files must be 1 for ", - " scalar regridding and can be 1 or 2 for vector ", - " regridding. File path should not be includes. ", - " ", - "--scalar_field scalar_fld specify the scalar field name to be regridded. The ", - " multiple entry field names are seperated by comma. ", - " ", - "--u_field u_fld specify the vector field u-componentname to be ", - " regridded. The multiple entry field names are seperated ", - " by comma. u_field must be paired together with v_field. ", - " ", - "--v_field v_fld specify the vector field v-componentname to be ", - " regridded. The multiple entry field names are seperated ", - " by comma. v_field must be paired together with u_field. ", - " ", - "--output_mosaic output_mosaic specify the output mosaic information. This file ", - " contains list of tile files which specify the grid ", - " information for each tile. If output_mosaic is not ", - " specified, nlon and nlat must be specified. ", - " ", - "--lonBegin #decimal specify the starting longitude(in degree) of the ", - " geographical region of the target grid on which the ", - " output is desired. The default value is 0. ", - " ", - "--lonEnd #decimal specify the ending longitude(in degree) of the ", - " geographical region of the target grid on which the ", - " output is desired. The default value is 360. ", - " ", - "--latBegin #decimal specify the starting latitude(in degree) of the ", - " geographical region of the target grid on which the ", - " output is desired. The default value is -90. ", - " ", - "--latEnd #decimal specify the ending latitude(in degree) of the ", - " geographical region of the target grid on which the ", - " output is desired. The default value is 90. ", - " ", - "--nlon #integer specify number of grid box cells in x-direction for a ", - " regular lat-lon grid. ", - " ", - "--nlat #integer specify number of grid box cells in y-direction for a ", - " regular lat-lon grid. ", - " ", - "--KlevelBegin #integer specify begin index of the k-level (depth axis) that ", - " to be regridded. ", - " ", - "--KlevelEnd #integer specify end index of the k-level (depth axis) that ", - " to be regridded. ", - " ", - "--LstepBegin #integer specify the begin index of L-step (time axis) that ", - " to be regridded. ", - " ", - "--LstepEnd #integer specify the end index of L-step (time axis) that ", - " to be regridded. ", - " ", - "--output_file output_file specify the output file name. If not presented, ", - " output_file will take the value of input_file. The ", - " suffix '.nc' can be omitted. The suffix 'tile#' should ", - " not present for multiple-tile files. The number of ", - " files must be 1 for scalar regridding and can be 1 or 2 ", - " for vector regridding. File path should not be includes.", - " ", - "--input_dir input_dir specify the path that stores input_file. If not ", - " presented, the input file is assumed to be stored in ", - " current diretory. ", - " ", - "--output_dir output_dir specify the path that will store output file. If not ", - " presented, the output file will be stored in current ", - " diretory. ", - " ", - "--remap_file remap_file specify the file name that saves remapping information. ", - " If remap_file is specified and the file does not exist, ", - " remapping information will be calculated ans stored in ", - " remap_file. If remap_file is specified and the file ", - " exists, remapping information will be read from ", - " remap_file. ", - " ", - "--interp_method interp_method specify the remapping algorithm to be used. Default is ", - " 'conserve_order1'. Currently only 'conserve_order1', ", - " 'conserve_order2', 'conserve_order2_monotonic' and ", - " 'bilinear' remapping scheme are ", - " implemented in this tool. The bilinear scheme can only ", - " be used to remap data from cubic grid to regular latlon ", - " grid. When interp_method is 'bilinear', nlon and nlat ", - " must be specified and the output data in y-direction ", - " will be located at the center of cell or bound of the ", - " cell depending on the setting of y_center. ", - " ", - "--test_case test_case specify the test function to be used for testing. ", - " ", - "--grid_type grid_type specify the vector field grid location. default is ", - " AGRID and only AGRID is implemented yet. ", - " ", - "--symmetry indicate the grid is symmetry or not. ", - " ", - "--target_grid use taget grid cell area instead of calculating based on", - " exchange grid area. default is off. ", - " ", - "---finer_step #integer This is used only for bilinear interpolation. Set ", - " finer_step to a positive integer to reduce noise in ", - " interpolation and get a relatively smooth output. The ", - " default value is 0. When finer_step is greater than 0, ", - " fregrid will first remap data from source grid onto a ", - " finer grid with resolution that is power of 2 of ", - " destination grid resolution using bilinear ", - " interpolation, then using volume averaging to remap ", - " data from finer grid onto destination grid. ", - " ", - "--center_y output latitude will locate at cell center, i.e., the ", - " starting latitude will be -89 when nlat = 90. when ", - " center_y is not set, starting latitude will be -90. for ", - " bilinear interpolation. For conservative interpolation, ", - " center_y is assumed. ", - " ", - "--check_conserve check the conservation of conservative interpolation. ", - " The area sum will be printed out for input and output ", - " mosaic. ", - " ", - "--monotonic When specified, use monotonic interpolation when ", - " interp_method is 'conserve_order2'. ", - " ", - "--weight_file Specify the filename that store weight_field. The ", - " suffix '.tile#.nc' should not present for multiple-tile ", - " files. weight_field is used to adjust the source weight.", - " Normally it could be area fraction. When weight_field ", - " is specified, the weight_file will default to be ", - " input_file if weight_file is not specified. ", - " ", - "--weight_field Specify the name of weight field in weight_file ", - " ", - "--dst_vgrid specify the destination vertical grid file. Data will ", - " be remapped onto the destination vertical grid. ", - " When --dst_vgrid is specified, --extrapolate is ", - " assumed to be specified. ", - " ", - "--extrapolate Will extrapolate data onto masked points when specified.", - " ", - "--stop_crit # The stopping criteria when extrapping data onto missing ", - " points. Default is 0.005 ", - " ", - "--standard_dimension When specified, the dimension and field name for ", - " longitude and latitude axis will be 'lon' and 'lat'. ", - " 'lon_bnd' and 'lat_bnd' will be longitude and latitude ", - " bound name. The dimension of lon_bounds is (2,nlon) and ", - " the dimension of lat_bounds is (2,nlat). " - " ", - "--associated_file_dir dir Specify the path of the associated files ", - " ", - "--debug Will print out memory usage and running time ", - " ", - "--nthreads # Specify number of OpenMP threads. ", - " ", - " Example 1: Remap C48 data onto N45 grid. ", - " (use GFDL-CM3 data as example) ", - " fregrid --input_mosaic C48_mosaic.nc --input_dir input_dir --input_file input_file ", - " --scalar_field temp,salt --nlon 144 --nlat 90 ", - " ", - " Example 2: Remap data onto cm2m ocean grid with extrapolation ", - " and vertical interpolation. ", - " fregrid --input_mosaic levitus_mosaic.nc --input_dir inputdir ", - " --input_file WOA09_ann_theta.nc --scalar_field POTENTIAL_TEMP ", - " --output_file WOA09_ann_theta_cm2g_extrap.nc ", - " --output_mosaic cm2m_ocean_mosaic.nc --extrapolate ", - " --dst_vgrid inputdir/cm2m_ocean_vgrid.nc ", - " ", - NULL}; -#define EPSLN10 (1.e-10) -const double D2R = M_PI/180.; -char tagname[] = "$Name: bronx-10_performance_z1l $"; - -int main(int argc, char* argv[]) -{ - unsigned int opcode = 0; - char *mosaic_in=NULL; /* input mosaic file name */ - char *mosaic_out=NULL; /* input mosaic file name */ - char *dir_in=NULL; /* input file location */ - char *dir_out=NULL; /* output file location */ - int ntiles_in = 0; /* number of tiles in input mosaic */ - int ntiles_out = 0; /* number of tiles in output mosaic */ - unsigned int nfiles = 0; /* number of input file */ - unsigned int nfiles_out = 0; /* number of output file */ - char input_file [NFILE][STRING]; - char output_file[NFILE][STRING]; - char scalar_name[NVAR] [STRING]; - char scalar_name_remap[NVAR][STRING]; - char u_name [NVAR] [STRING]; - char v_name [NVAR] [STRING]; - char *test_case = NULL; - double test_param = 1; - char *associated_file_dir = NULL; - int check_conserve = 0; /* 0 means no check */ - double lonbegin = 0, lonend = 360; - double latbegin = -90, latend = 90; - int nlon = 0, nlat = 0; - int kbegin = 0, kend = -1; - int lbegin = 0, lend = -1; - char *remap_file = NULL; - char interp_method[STRING] = "conserve_order1"; - int y_at_center = 0; - int grid_type = AGRID; - unsigned int nscalar=0, nvector=0, nvector2=0; - unsigned int nscalar_orig; - int option_index, c, i, n, m, l; - char entry[MAXSTRING]; /* should be long enough */ - char txt[STRING]; - char history[MAXATT]; - int fill_missing = 0; - int extrapolate = 0; - int vertical_interp = 0; - char *dst_vgrid = NULL; - double stop_crit=0.005; - unsigned int finer_step = 0; - int debug = 0; - int great_circle_algorithm_in, great_circle_algorithm_out; - - char wt_file_obj[512]; - char *weight_file=NULL; - char *weight_field = NULL; - - VGrid_config vgrid_in; /* store vertical input grid */ - VGrid_config vgrid_out; /* store vertical output grid */ - Grid_config *grid_in = NULL; /* store input grid */ - Grid_config *grid_out = NULL; /* store output grid */ - Field_config *scalar_in = NULL; /* store input scalar data */ - Field_config *scalar_out = NULL; /* store output scalar data */ - Field_config *u_in = NULL; /* store input vector u-component */ - Field_config *v_in = NULL; /* store input vector v-component */ - Field_config *u_out = NULL; /* store input vector u-component */ - Field_config *v_out = NULL; /* store input vector v-component */ - File_config *file_in = NULL; /* store input file information */ - File_config *file_out = NULL; /* store output file information */ - File_config *file2_in = NULL; /* store input file information */ - File_config *file2_out = NULL; /* store output file information */ - Bound_config *bound_T = NULL; /* store halo update information for T-cell*/ - Interp_config *interp = NULL; /* store remapping information */ - int save_weight_only = 0; - int nthreads = 1; - - double time_get_in_grid=0, time_get_out_grid=0, time_get_input=0; - double time_setup_interp=0, time_do_interp=0, time_write=0; - clock_t time_start, time_end; - - int errflg = (argc == 1); - int fid; - - static struct option long_options[] = { - {"input_mosaic", required_argument, NULL, 'a'}, - {"output_mosaic", required_argument, NULL, 'b'}, - {"input_dir", required_argument, NULL, 'c'}, - {"output_dir", required_argument, NULL, 'd'}, - {"input_file", required_argument, NULL, 'e'}, - {"output_file", required_argument, NULL, 'f'}, - {"remap_file", required_argument, NULL, 'g'}, - {"test_case", required_argument, NULL, 'i'}, - {"interp_method", required_argument, NULL, 'j'}, - {"test_parameter", required_argument, NULL, 'k'}, - {"symmetry", no_argument, NULL, 'l'}, - {"grid_type", required_argument, NULL, 'm'}, - {"target_grid", no_argument, NULL, 'n'}, - {"finer_step", required_argument, NULL, 'o'}, - {"fill_missing", no_argument, NULL, 'p'}, - {"nlon", required_argument, NULL, 'q'}, - {"nlat", required_argument, NULL, 'r'}, - {"scalar_field", required_argument, NULL, 's'}, - {"check_conserve", no_argument, NULL, 't'}, - {"u_field", required_argument, NULL, 'u'}, - {"v_field", required_argument, NULL, 'v'}, - {"center_y", no_argument, NULL, 'y'}, - {"lonBegin", required_argument, NULL, 'A'}, - {"lonEnd", required_argument, NULL, 'B'}, - {"latBegin", required_argument, NULL, 'C'}, - {"latEnd", required_argument, NULL, 'D'}, - {"KlevelBegin", required_argument, NULL, 'E'}, - {"KlevelEnd", required_argument, NULL, 'F'}, - {"LstepBegin", required_argument, NULL, 'G'}, - {"LstepEnd", required_argument, NULL, 'H'}, - {"weight_file", required_argument, NULL, 'I'}, - {"weight_field", required_argument, NULL, 'J'}, - {"extrapolate", no_argument, NULL, 'L'}, - {"dst_vgrid", required_argument, NULL, 'M'}, - {"stop_crit", required_argument, NULL, 'N'}, - {"standard_dimension", no_argument, NULL, 'O'}, - {"debug", no_argument, NULL, 'P'}, - {"nthreads", required_argument, NULL, 'Q'}, - {"associated_file_dir", required_argument, NULL, 'R'}, - {"help", no_argument, NULL, 'h'}, - {0, 0, 0, 0}, - }; - - /* start parallel */ - mpp_init(&argc, &argv); - mpp_domain_init(); - - while ((c = getopt_long(argc, argv, "", long_options, &option_index)) != -1) { - switch (c) { - case 'a': - mosaic_in = optarg; - break; - case 'b': - mosaic_out = optarg; - break; - case 'c': - dir_in = optarg; - break; - case 'd': - dir_out = optarg; - break; - case 'e': - if(strlen(optarg) >= MAXSTRING) mpp_error("fregrid: the entry is not long for option -e"); - strcpy(entry, optarg); - tokenize(entry, ",", STRING, NFILE, (char *)input_file, &nfiles); - break; - case 'f': - if(strlen(optarg) >= MAXSTRING) mpp_error("fregrid: the entry is not long for option -f"); - strcpy(entry, optarg); - tokenize(entry, ",", STRING, NFILE, (char *)output_file, &nfiles_out); - break; - case 'g': - remap_file = optarg; - break; - case 's': - if(strlen(optarg) >= MAXSTRING) mpp_error("fregrid: the entry is not long for option -s"); - strcpy(entry, optarg); - tokenize(entry, ",", STRING, NVAR, (char *)scalar_name, &nscalar); - break; - case 'u': - if(strlen(optarg) >= MAXSTRING) mpp_error("fregrid: the entry is not long for option -u"); - strcpy(entry, optarg); - tokenize(entry, ",", STRING, NVAR, (char *)u_name, &nvector); - break; - case 'v': - if(strlen(optarg) >= MAXSTRING) mpp_error("fregrid: the entry is not long for option -v"); - strcpy(entry, optarg); - tokenize(entry, ",", STRING, NVAR, (char *)v_name, &nvector2); - break; - case 'j': - strcpy(interp_method, optarg); - break; - case 'i': - test_case = optarg; - break; - case 'k': - test_param = atof(optarg); - break; - case 'l': - opcode |= SYMMETRY; - break; - case 'm': - if(strcmp(optarg, "AGRID") == 0) - grid_type = AGRID; - else if(strcmp(optarg, "BGRID") == 0) - grid_type = BGRID; - else - mpp_error("fregrid: only AGRID and BGRID vector regridding are implmented, contact developer"); - break; - case 'n': - opcode |= TARGET; - break; - case 'o': - finer_step = atoi(optarg); - break; - case 'p': - fill_missing = 1; - break; - case 'q': - nlon = atoi(optarg); - break; - case 'r': - nlat = atoi(optarg); - break; - case 't': - check_conserve = 1; - break; - case 'y': - y_at_center = 1; - break; - case 'A': - lonbegin = atof(optarg); - break; - case 'B': - lonend = atof(optarg); - break; - case 'C': - latbegin = atof(optarg); - break; - case 'D': - latend = atof(optarg); - break; - case 'E': - kbegin = atoi(optarg); - break; - case 'F': - kend = atoi(optarg); - break; - case 'G': - lbegin = atoi(optarg); - break; - case 'H': - lend = atoi(optarg); - break; - case 'I': - weight_file = optarg; - break; - case 'J': - weight_field = optarg; - break; - case 'L': - extrapolate = 1; - break; - case 'M': - dst_vgrid = optarg; - vertical_interp = 1; - break; - case 'N': - stop_crit = atof(optarg); - break; - case 'O': - opcode |= STANDARD_DIMENSION; - break; - case 'P': - debug = 1; - break; - case 'Q': - nthreads = atoi(optarg); - break; - case 'R': - associated_file_dir = optarg; - break; - case '?': - errflg++; - break; - } - } - - if (errflg) { - char **u = usage; - while (*u) { fprintf(stderr, "%s\n", *u); u++; } - exit(2); - } - /* check the arguments */ - if( !mosaic_in ) mpp_error("fregrid: input_mosaic is not specified"); - if( !mosaic_out ) { - if(nlon == 0 || nlat ==0 ) mpp_error("fregrid: when output_mosaic is not specified, nlon and nlat should be specified"); - if(lonend <= lonbegin) mpp_error("fregrid: when output_mosaic is not specified, lonEnd should be larger than lonBegin"); - if(latend <= latbegin) mpp_error("fregrid: when output_mosaic is not specified, latEnd should be larger than latBegin"); - } - else { - if(nlon !=0 || nlat != 0) mpp_error("fregrid: when output_mosaic is specified, nlon and nlat should not be specified"); - } - - if(!strcmp(interp_method, "conserve_order1") ) { - if(mpp_pe() == mpp_root_pe())printf("****fregrid: first order conservative scheme will be used for regridding.\n"); - opcode |= CONSERVE_ORDER1; - } - else if(!strcmp(interp_method, "conserve_order2") ) { - if(mpp_pe() == mpp_root_pe())printf("****fregrid: second order conservative scheme will be used for regridding.\n"); - opcode |= CONSERVE_ORDER2; - } - else if(!strcmp(interp_method, "conserve_order2_monotonic") ) { - if(mpp_pe() == mpp_root_pe())printf("****fregrid: second order monotonic conservative scheme will be used for regridding.\n"); - opcode |= CONSERVE_ORDER2; - opcode |= MONOTONIC; - } - else if(!strcmp(interp_method, "bilinear") ) { - if(mpp_pe() == mpp_root_pe())printf("****fregrid: bilinear remapping scheme will be used for regridding.\n"); - opcode |= BILINEAR; - } - else - mpp_error("fregrid: interp_method must be 'conserve_order1', 'conserve_order2', 'conserve_order2_monotonic' or 'bilinear'"); - - if( nfiles == 0) { - if(nvector > 0 || nscalar > 0 || nvector2 > 0) - mpp_error("fregrid: when --input_file is not specified, --scalar_field, --u_field and --v_field should also not be specified"); - if(!remap_file) mpp_error("fregrid: when --input_file is not specified, remap_file must be specified to save weight information"); - save_weight_only = 1; - if(mpp_pe()==mpp_root_pe())printf("NOTE: No input file specified in this run, no data file will be regridded " - "and only weight information is calculated.\n"); - } - else if( nfiles == 1 || nfiles ==2) { - if( nvector != nvector2 ) mpp_error("fregrid: number of fields specified in u_field must be the same as specified in v_field"); - if( nscalar+nvector==0 ) mpp_error("fregrid: both scalar_field and vector_field are not specified"); - /* when nvector =2 and nscalar=0, nfiles can be 2 otherwise nfiles must be 1 */ - if( nscalar && nfiles != 1 ) - mpp_error("fregrid: when scalar_field is specified, number of files must be 1"); - if( nfiles_out == 0 ) { - for(i=0; i0) mpp_error("fregrid: weight_field should not be specified for vector interpolation, contact developer"); - if(!weight_file) { - - if(nfiles==0) mpp_error("fregrid: weight_field is specified, but both weight_file and input_file are not specified"); - if(dir_in) - sprintf(wt_file_obj, "%s/%s", dir_in, input_file[0]); - else - sprintf(wt_file_obj, "./%s", input_file[0]); - weight_file = wt_file_obj; - } - } - - if(nvector > 0) { - opcode |= VECTOR; - if(grid_type == AGRID) - opcode |= AGRID; - else if(grid_type == BGRID) - opcode |= BGRID; - } - - /* define history to be the history in the grid file */ - strcpy(history,argv[0]); - - for(i=1;i MAXENTRY) { /* limit the size of each entry, here we are assume the only entry that is longer than - MAXENTRY= 256 is the option --scalar_field --u_field and v_field */ - if(strcmp(argv[i-1], "--scalar_field") && strcmp(argv[i-1], "--u_field") && strcmp(argv[i-1], "--v_field") ) - mpp_error("fregrid: the entry ( is not scalar_field, u_field, v_field ) is too long, need to increase parameter MAXENTRY"); - strcat(history, "(**please see the field list in this file**)" ); - } - else - strcat(history, argv[i]); - } - -{ - int base_cpu; - -#if defined(_OPENMP) - omp_set_num_threads(nthreads); - base_cpu = get_cpu_affinity(); -#pragma omp parallel - set_cpu_affinity(base_cpu+omp_get_thread_num() ); -#endif - -} - - /* get the mosaic information of input and output mosaic*/ - fid = mpp_open(mosaic_in, MPP_READ); - ntiles_in = mpp_get_dimlen(fid, "ntiles"); - mpp_close(fid); - - /* second order conservative interpolation is only avail for the cubic sphere input grid */ - if( ntiles_in != 6 && (opcode & CONSERVE_ORDER2) ) - mpp_error("fregrid: when the input grid is not cubic sphere grid, interp_method can not be conserve_order2"); - - if(mosaic_out) { - fid = mpp_open(mosaic_out, MPP_READ); - ntiles_out = mpp_get_dimlen(fid, "ntiles"); - mpp_close(fid); - } - else - ntiles_out = 1; - - if(test_case) { - if(nfiles != 1) mpp_error("fregrid: when test_case is specified, nfiles should be 1"); - sprintf(output_file[0], "%s.%s.output", test_case, interp_method); - } - - if(check_conserve) opcode |= CHECK_CONSERVE; - - if( opcode & STANDARD_DIMENSION ) printf("fregrid: --standard_dimension is set\n"); - - if( opcode & BILINEAR ) { - int ncontact; - ncontact = read_mosaic_ncontacts(mosaic_in); - if( nlon == 0 || nlat == 0) mpp_error("fregrid: when interp_method is bilinear, nlon and nlat should be specified"); - if(ntiles_in != 6) mpp_error("fregrid: when interp_method is bilinear, the input mosaic should be 6 tile cubic grid"); - if(ncontact !=12) mpp_error("fregrid: when interp_method is bilinear, the input mosaic should be 12 contact cubic grid"); - if(mpp_npes() > 1) mpp_error("fregrid: parallel is not implemented for bilinear remapping"); - } - else - y_at_center = 1; - - if(extrapolate) opcode |= EXTRAPOLATE; - - /* memory allocation for data structure */ - grid_in = (Grid_config *)malloc(ntiles_in *sizeof(Grid_config)); - grid_out = (Grid_config *)malloc(ntiles_out*sizeof(Grid_config)); - bound_T = (Bound_config *)malloc(ntiles_in *sizeof(Bound_config)); - interp = (Interp_config *)malloc(ntiles_out*sizeof(Interp_config)); - - if(debug) { - print_mem_usage("Before calling get_input_grid"); - time_start = clock(); - } - get_input_grid( ntiles_in, grid_in, bound_T, mosaic_in, opcode, &great_circle_algorithm_in, save_weight_only ); - if(debug) { - time_end = clock(); - time_get_in_grid = 1.0*(time_end - time_start)/CLOCKS_PER_SEC; - print_mem_usage("After calling get_input_grid"); - time_start = clock(); - } - if(mosaic_out) - get_output_grid_from_mosaic( ntiles_out, grid_out, mosaic_out, opcode, &great_circle_algorithm_out ); - else { - great_circle_algorithm_out = 0; - get_output_grid_by_size(ntiles_out, grid_out, lonbegin, lonend, latbegin, latend, - nlon, nlat, finer_step, y_at_center, opcode); - } - if(debug) { - time_end = clock(); - time_get_out_grid = 1.0*(time_end - time_start)/CLOCKS_PER_SEC; - print_mem_usage("After calling get_output_grid"); - } - /* find out if great_circle algorithm is used in the input grid or output grid */ - - if( great_circle_algorithm_in == 0 && great_circle_algorithm_out == 0 ) - opcode |= LEGACY_CLIP; - else { - opcode |= GREAT_CIRCLE; - /* currently only first-order conservative is implemented */ - if( !(opcode & CONSERVE_ORDER1) ) - mpp_error("fregrid: when clip_method is 'conserve_great_circle', interp_methos need to be 'conserve_order1', contact developer"); - } - - /* get the grid cell_area */ - get_input_output_cell_area(ntiles_in, grid_in, ntiles_out, grid_out, opcode); - if(debug) print_mem_usage("After get_input_output_cell_area"); - /* currently extrapolate are limited to ntiles = 1. extrapolate are limited to lat-lon input grid */ - if( extrapolate ) { - int i, j, ind0, ind1, ind2; - if(test_case ) mpp_error("fregrid: extrapolate is limited to test_case is false"); - if(ntiles_in != 1) mpp_error("fregrid: extrapolate is limited to ntile_in = 1"); - /* check if the grid is lat-lon grid */ - for(j=1; j<=grid_in[0].ny; j++) for(i=1; i<=grid_in[0].nx; i++) { - ind0 = j*(grid_in[0].nx+2)+i; - ind1 = j*(grid_in[0].nx+2)+1; - ind2 = 1*(grid_in[0].nx+2)+i; - if(fabs( grid_in[0].lont[ind0]-grid_in[0].lont[ind2] ) > EPSLN10 || - fabs( grid_in[0].latt[ind0]-grid_in[0].latt[ind1] ) > EPSLN10 ) - mpp_error("fregrid: extrapolate is limited to lat-lon grid"); - - } - } - - /* when vertical_interp is set, extrapolate must be set */ - if( vertical_interp) extrapolate = 1; - /* vertical_interp and extrapolate is not supported for vector interpolation */ - if( nvector > 0) { - if(vertical_interp) mpp_error("fregrid: vertical_interp is not supported for vector fields"); - if(extrapolate) mpp_error("fregrid: extrapolate is not supported for vector fields"); - } - - if(remap_file) set_remap_file(ntiles_out, mosaic_out, remap_file, interp, &opcode, save_weight_only); - - if(!save_weight_only) { - file_in = (File_config *)malloc(ntiles_in *sizeof(File_config)); - file_out = (File_config *)malloc(ntiles_out*sizeof(File_config)); - - if(nfiles == 2) { - file2_in = (File_config *)malloc(ntiles_in *sizeof(File_config)); - file2_out = (File_config *)malloc(ntiles_out*sizeof(File_config)); - } - if(nscalar > 0) { - scalar_in = (Field_config *)malloc(ntiles_in *sizeof(Field_config)); - scalar_out = (Field_config *)malloc(ntiles_out *sizeof(Field_config)); - } - if(nvector > 0) { - u_in = (Field_config *)malloc(ntiles_in *sizeof(Field_config)); - u_out = (Field_config *)malloc(ntiles_out *sizeof(Field_config)); - v_in = (Field_config *)malloc(ntiles_in *sizeof(Field_config)); - v_out = (Field_config *)malloc(ntiles_out *sizeof(Field_config)); - } - - set_mosaic_data_file(ntiles_in, mosaic_in, dir_in, file_in, input_file[0]); - set_mosaic_data_file(ntiles_out, mosaic_out, dir_out, file_out, output_file[0]); - - vgrid_out.nz = 0; - vgrid_in.nz = 0; - if(vertical_interp) { - get_output_vgrid(&vgrid_out, dst_vgrid); - get_input_vgrid(&vgrid_in, file_in[0].name, scalar_name[0]); - setup_vertical_interp(&vgrid_in, &vgrid_out); - } - - if(nfiles == 2) { - set_mosaic_data_file(ntiles_in, mosaic_in, dir_in, file2_in, input_file[1]); - set_mosaic_data_file(ntiles_out, mosaic_out, dir_out, file2_out, output_file[1]); - } - - for(n=0; nhas_cell_measure_att); - - set_output_metadata(ntiles_in, nfiles, file_in, file2_in, scalar_in, u_in, v_in, - ntiles_out, file_out, file2_out, scalar_out, u_out, v_out, grid_out, &vgrid_out, history, tagname, opcode); - - if(debug) print_mem_usage("After set_output_metadata"); - /* when the interp_method specified through command line is CONSERVE_ORDER1, but the interp_method in the source file - field attribute is CONSERVE_ORDER2, need to modify the interp_method value */ - if(opcode & CONSERVE_ORDER1) { - for(l=0; lvar[l].interp_method == CONSERVE_ORDER2) { - if(mpp_pe() == mpp_root_pe())printf("NOTE from fregrid: even though the interp_method specified through command line is " - "conserve_order1, the interp_method is reset to conserve_order2 because some fields in " - "the source data have interp_method attribute value conserve_order2"); - opcode = opcode & ~CONSERVE_ORDER1; - opcode |= CONSERVE_ORDER2; - break; - } - } - } - if(opcode & CONSERVE_ORDER1) { - for(l=0; lvar[l].interp_method == CONSERVE_ORDER2) { - if(mpp_pe() == mpp_root_pe())printf("NOTE from fregrid: even though the interp_method specified through command line is " - "conserve_order1, the interp_method is reset to conserve_order2 because some fields in " - "the source data have interp_method attribute value conserve_order2"); - opcode = opcode & ~CONSERVE_ORDER1; - opcode |= CONSERVE_ORDER2; - break; - } - } - } - } - - /* preparing for the interpolation, if remapping information exist, read it from remap_file, - otherwise create the remapping information and write it to remap_file - */ - - if(debug) time_start = clock(); - if( opcode & BILINEAR ) /* bilinear interpolation from cubic to lalon */ - setup_bilinear_interp(ntiles_in, grid_in, ntiles_out, grid_out, interp, opcode ); - else - setup_conserve_interp(ntiles_in, grid_in, ntiles_out, grid_out, interp, opcode); - if(debug) { - time_end = clock(); - time_setup_interp = 1.0*(time_end - time_start)/CLOCKS_PER_SEC; - print_mem_usage("After setup interp"); - } - if(debug) { - print_time("get_input_grid", time_get_in_grid); - print_time("get_output_grid", time_get_out_grid); - print_time("setup_interp", time_setup_interp); - } - if(save_weight_only) { - if(mpp_pe() == mpp_root_pe() ) { - printf("NOTE: Successfully running fregrid and the following files which store weight information are generated.\n"); - for(n=0; n 0) { - get_field_attribute(ntiles_in, scalar_in); - copy_field_attribute(ntiles_out, scalar_in, scalar_out); - } - - if(nvector > 0) { - get_field_attribute(ntiles_in, u_in); - get_field_attribute(ntiles_in, v_in); - copy_field_attribute(ntiles_out, u_in, u_out); - copy_field_attribute(ntiles_out, v_in, v_out); - } - - - - /* set time step to 1, only test scalar field now, nz need to be 1 */ - if(test_case) { - if(nscalar != 1 || nvector != 0) mpp_error("fregrid: when test_case is specified, nscalar must be 1 and nvector must be 0"); - if(scalar_in->var->nz != 1) mpp_error("fregrid: when test_case is specified, number of vertical level must be 1"); - file_in->nt = 1; - file_out->nt = 1; - } - - /* Then doing the regridding */ - for(m=0; mnt; m++) { - int memsize, level_z, level_n, level_t; - - write_output_time(ntiles_out, file_out, m); - if(nfiles > 1) write_output_time(ntiles_out, file2_out, m); - - /* first interp scalar variable */ - for(l=0; lvar[l].has_taxis && m>0) continue; - level_t = m + scalar_in->var[l].lstart; - /*--- to reduce memory usage, we are only do remapping for on horizontal level one time */ - for(level_n =0; level_n < scalar_in->var[l].nn; level_n++) { - if(extrapolate) { - get_input_data(ntiles_in, scalar_in, grid_in, bound_T, l, -1, level_n, level_t, extrapolate, stop_crit); - allocate_field_data(ntiles_out, scalar_out, grid_out, scalar_in->var[l].nz); - if( opcode & BILINEAR ) - do_scalar_bilinear_interp(interp, l, ntiles_in, grid_in, grid_out, scalar_in, scalar_out, finer_step, fill_missing); - else - do_scalar_conserve_interp(interp, l, ntiles_in, grid_in, ntiles_out, grid_out, scalar_in, scalar_out, opcode, scalar_in->var[l].nz); - if(vertical_interp) do_vertical_interp(&vgrid_in, &vgrid_out, grid_out, scalar_out, l); - write_field_data(ntiles_out, scalar_out, grid_out, l, -1, level_n, m); - if(scalar_out->var[l].interp_method == CONSERVE_ORDER2) { - for(n=0; nvar[l].kstart; level_z <= scalar_in->var[l].kend; level_z++) - { - if(debug) time_start = clock(); - if(test_case) - get_test_input_data(test_case, test_param, ntiles_in, scalar_in, grid_in, bound_T, opcode); - else - get_input_data(ntiles_in, scalar_in, grid_in, bound_T, l, level_z, level_n, level_t, extrapolate, stop_crit); - if(debug) { - time_end = clock(); - time_get_input += 1.0*(time_end - time_start)/CLOCKS_PER_SEC; - } - - allocate_field_data(ntiles_out, scalar_out, grid_out, 1); - if(debug) time_start = clock(); - if( opcode & BILINEAR ) - do_scalar_bilinear_interp(interp, l, ntiles_in, grid_in, grid_out, scalar_in, scalar_out, finer_step, fill_missing); - else - do_scalar_conserve_interp(interp, l, ntiles_in, grid_in, ntiles_out, grid_out, scalar_in, scalar_out, opcode,1); - if(debug) { - time_end = clock(); - time_do_interp += 1.0*(time_end - time_start)/CLOCKS_PER_SEC; - } - - if(debug) time_start = clock(); - write_field_data(ntiles_out, scalar_out, grid_out, l, level_z, level_n, m); - if(debug) { - time_end = clock(); - time_write += 1.0*(time_end - time_start)/CLOCKS_PER_SEC; - } - if(scalar_out->var[l].interp_method == CONSERVE_ORDER2) { - for(n=0; n0) continue; - level_t = m + u_in->var[l].lstart; - get_input_data(ntiles_in, u_in, grid_in, bound_T, l, level_z, level_n, level_t, extrapolate, stop_crit); - get_input_data(ntiles_in, v_in, grid_in, bound_T, l, level_z, level_n, level_t, extrapolate, stop_crit); - allocate_field_data(ntiles_out, u_out, grid_out, u_in[n].var[l].nz); - allocate_field_data(ntiles_out, v_out, grid_out, u_in[n].var[l].nz); - if( opcode & BILINEAR ) - do_vector_bilinear_interp(interp, l, ntiles_in, grid_in, ntiles_out, grid_out, u_in, v_in, u_out, v_out, finer_step, fill_missing); - else - do_vector_conserve_interp(interp, l, ntiles_in, grid_in, ntiles_out, grid_out, u_in, v_in, u_out, v_out, opcode); - - write_field_data(ntiles_out, u_out, grid_out, l, level_z, level_n, m); - write_field_data(ntiles_out, v_out, grid_out, l, level_z, level_n, m); - for(n=0; n 1 ) { - mpp_close(file2_out[n].fid); - printf("****%s\n", file2_out[n].name); - } - } - } - - mpp_end(); - return 0; - -} /* end of main */ - - - - diff --git a/sorc/fre-nctools.fd/tools/fregrid/fregrid_util.c b/sorc/fre-nctools.fd/tools/fregrid/fregrid_util.c deleted file mode 100644 index 199529c55c..0000000000 --- a/sorc/fre-nctools.fd/tools/fregrid/fregrid_util.c +++ /dev/null @@ -1,2685 +0,0 @@ -#include -#include -#include -#include -#include "fregrid_util.h" -#include "mpp.h" -#include "mpp_io.h" -#include "tool_util.h" -#include "mosaic_util.h" -#include "read_mosaic.h" -#include "gradient_c2l.h" -#include "globals.h" -#include "interp.h" - -#define D2R (M_PI/180) -#define R2D (180/M_PI) -#define EPSLN10 (1.e-10) -#define REL_COEF ( 0.9 ) -#define MAX_ITER 4000 - -void init_halo(double *var, int nx, int ny, int nz, int halo); -void update_halo(int nx, int ny, int nz, double *data, Bound_config *bound, Data_holder *dHold); -void setup_boundary(const char *mosaic_file, int ntiles, Grid_config *grid, Bound_config *bound, int halo, int position); -void delete_bound_memory(int ntiles, Bound_config *bound); -void copy_var_config(const Var_config *var_in, Var_config *var_out); -void init_var_config(Var_config *var, int interp_method); -void fill_boundaries(int ni, int nj, double *data, int is_cyclic); -int parse_string(const char *str1, const char *str2, char *strOut, char *errmsg); -void do_extrapolate (int ni, int nj, int nk, const double *lon, const double *lat, const double *data_in, - double *data_out, int is_cyclic, double missing_value, double stop_crit); -/******************************************************************************* - void setup_tile_data_file(Mosaic_config mosaic, const char *filename) - This routine will setup the data file name for each tile. -*******************************************************************************/ - -void set_mosaic_data_file(int ntiles, const char *mosaic_file, const char *dir, File_config *file, - const char *filename) -{ - char str1[STRING]="", str2[STRING]="", tilename[STRING]=""; - int i, n, len, fid, vid; - size_t start[4], nread[4]; - - len = strlen(filename); - if( strcmp(filename+len-3, ".nc") ==0 ) - strncpy(str1, filename, len-3); - else - strcpy(str1, filename); - if(dir) { - if(strlen(dir)+strlen(str1) >= STRING)mpp_error("set_mosaic_data_file(fregrid_util): length of str1 + " - "length of dir should be no greater than STRING"); - sprintf(str2, "%s/%s", dir, str1); - } - else - strcpy(str2, str1); - - for(i=0; i<4; i++) { - start[i] = 0; nread[i] = 1; - } - nread[1] = STRING; - if(ntiles > 1) { - if(!mosaic_file) mpp_error("fregrid_util: when ntiles is greater than 1, mosaic_file should be defined"); - fid = mpp_open(mosaic_file, MPP_READ); - vid = mpp_get_varid(fid, "gridtiles"); - } - for(i = 0; i < ntiles; i++) { - start[0] = i; - if(ntiles > 1) { - mpp_get_var_value_block(fid, vid, start, nread, tilename); - if(strlen(str2) + strlen(tilename) > STRING -5) mpp_error("set_mosaic_data_file(fregrid_util): length of str2 + " - "length of tilename should be no greater than STRING-5"); - sprintf(file[i].name, "%s.%s.nc", str2, tilename); - } - else - sprintf(file[i].name, "%s.nc", str2); - } - -}; /* setup_data_file */ - -/******************************************************************************* - void set_scalar_var() -*******************************************************************************/ -void set_field_struct(int ntiles, Field_config *field, int nvar, char * varname, File_config *file) -{ - int n, i; - - if(nvar == 0) return; - - for(n=0; n0) { - init_halo(grid[n].lonc, nx[n]+1, ny[n]+1, 1, halo); - init_halo(grid[n].latc, nx[n]+1, ny[n]+1, 1, halo); - } - for(j=0; j<=ny[n]; j++) for(i=0; i<=nx[n]; i++) { - ind1 = (j+halo)*(nx[n]+1+2*halo)+i+halo; - ind2 = 2*j*(2*nx[n]+1)+2*i; - grid[n].lonc[ind1] = x[ind2]*D2R; - grid[n].latc[ind1] = y[ind2]*D2R; - } - if(read_tgrid) { - grid[n].lont = (double *) malloc((nx[n]+2)*(ny[n]+2)*sizeof(double)); - grid[n].latt = (double *) malloc((nx[n]+2)*(ny[n]+2)*sizeof(double)); - for(j=0; j EPSLN10) grid[n].rotate = 1; - } - free(angle); - } - } - free(x); - free(y); - mpp_close(g_fid); - } - - mpp_close(m_fid); - - /* get the boundary condition */ - setup_boundary(mosaic_file, ntiles, grid, bound_T, 1, CENTER); - if(read_tgrid) { - for(n=0; n 0 ) { - dHold = (Data_holder *)malloc(nbound*sizeof(Data_holder)); - for(l=0; l 0) { - dHold = (Data_holder *)malloc(nbound*sizeof(Data_holder)); - for(l=0; lhalo; - for(n=0; n 2) { - sprintf(errmsg, "fregrid_util.c: " - "number of contacts should be no larger than 2 in file %s",mosaic_file ); - mpp_error(errmsg); - } - read_mosaic_contact( mosaic_file, tile1, tile2, istart1, iend1, jstart1, jend1, - istart2, iend2, jstart2, jend2 ); - - for(m=0; mis_tripolar = 1; - } - } - } - - m_fid = mpp_open(mosaic_file, MPP_READ); - get_file_path(mosaic_file, dir); - - for(n=0; n EPSLN10) grid[n].rotate = 1; - } - free(angle); - } - } - mpp_close(g_fid); - } - - mpp_close(m_fid); - - free(nx); - free(ny); -}; /* get_output_grid_from_mosaic*/ - -/******************************************************************************* - void get_output_grid_by_size(Mosaic_config *mosaic, int nlon, int nlat, int finer_steps, unsigned int opcode) - calculate output grid based on nlon, nlat and finer steps. - -*******************************************************************************/ -void get_output_grid_by_size(int ntiles, Grid_config *grid, double lonbegin, double lonend, double latbegin, double latend, - int nlon, int nlat, int finer_steps, int center_y, unsigned int opcode) -{ - double dlon, dlat, lon_fine, lat_fine, lon_range, lat_range; - int nx_fine, ny_fine, i, j, layout[2]; - int nxc, nyc, ii, jj; - - if(ntiles !=1) mpp_error("fregrid_utils: ntiles of output mosaic must be 1 for bilinear interpolation"); - if(finer_steps && !(opcode&BILINEAR)) mpp_error("fregrid_util: finer_steps must be 0 when interp_method is not bilinear"); - - grid->nx = nlon; - grid->ny = nlat; - grid->nx_fine = pow(2,finer_steps)*nlon; - grid->ny_fine = pow(2,finer_steps)*(nlat-1)+1; - nx_fine = grid->nx_fine; - ny_fine = grid->ny_fine; - lon_range = lonend - lonbegin; - lat_range = latend - latbegin; - grid->is_tripolar = 0; - grid->lont1D = (double *)malloc(nlon*sizeof(double)); - grid->latt1D = (double *)malloc(nlat*sizeof(double)); - grid->lonc1D = (double *)malloc((nlon+1)*sizeof(double)); - grid->latc1D = (double *)malloc((nlat+1)*sizeof(double)); - - dlon=lon_range/nlon; - for(i=0; ilont1D[i] = (lonbegin + (i + 0.5)*dlon)*D2R; - for(i=0; i<=nlon; i++) grid->lonc1D[i] = (lonbegin + i*dlon)*D2R; - - layout[0] = 1; - layout[1] = mpp_npes(); - mpp_define_domain2d(grid->nx, grid->ny, layout, 0, 0, &(grid->domain)); - mpp_get_compute_domain2d(grid->domain, &(grid->isc), &(grid->iec), &(grid->jsc), &(grid->jec)); - grid->nxc = grid->iec - grid->isc + 1; - grid->nyc = grid->jec - grid->jsc + 1; - nxc = grid->nxc; - nyc = grid->nyc; - if(center_y) { - dlat=lat_range/nlat; - for(j=0; jlatt1D[j] = (latbegin+(j+0.5)*dlat)*D2R; - for(j=0; j<=nlat; j++) grid->latc1D[j] = (latbegin+j*dlat)*D2R; - } - else { - dlat=lat_range/(nlat-1); - for(j=0; jlatt1D[j] = (latbegin+j*dlat)*D2R; - for(j=0; j<=nlat; j++) grid->latc1D[j] = (latbegin+(j-0.5)*dlat)*D2R; - } - - if(opcode & BILINEAR) { - grid->latt1D_fine = (double *)malloc(ny_fine*sizeof(double)); - grid->lont = (double *)malloc(nx_fine*ny_fine*sizeof(double)); - grid->latt = (double *)malloc(nx_fine*ny_fine*sizeof(double)); - grid->xt = (double *)malloc(nx_fine*ny_fine*sizeof(double)); - grid->yt = (double *)malloc(nx_fine*ny_fine*sizeof(double)); - grid->zt = (double *)malloc(nx_fine*ny_fine*sizeof(double)); - grid->vlon_t = (double *)malloc(3*nx_fine*ny_fine*sizeof(double)); - grid->vlat_t = (double *)malloc(3*nx_fine*ny_fine*sizeof(double)); - - dlon = lon_range/nx_fine; - for(i=0; ilont[j*nx_fine+i] = lon_fine; - } - if(center_y) { - dlat=lat_range/ny_fine; - for(j=0; jlatt1D_fine[j] = (latbegin+(j+0.5)*dlat)*D2R; - } - else { - dlat = lat_range/(ny_fine-1); - for(j=0; jlatt1D_fine[j] = (latbegin+j*dlat)*D2R; - - } - for(j=0; jlatt[j*nx_fine+i] = grid->latt1D_fine[j]; - } - /* get the cartesian coordinates */ - latlon2xyz(nx_fine*ny_fine, grid->lont, grid->latt, grid->xt, grid->yt, grid->zt); - - unit_vect_latlon(nx_fine*ny_fine, grid->lont, grid->latt, grid->vlon_t, grid->vlat_t); - - } - - grid->lonc = (double *) malloc((nxc+1)*(nyc+1)*sizeof(double)); - grid->latc = (double *) malloc((nxc+1)*(nyc+1)*sizeof(double)); - for(j=0; j<=nyc; j++) { - jj = j + grid->jsc; - for(i=0; i<=nxc; i++) { - ii = i + grid->isc; - grid->lonc[j*(nxc+1)+i] = grid->lonc1D[ii]; - grid->latc[j*(nxc+1)+i] = grid->latc1D[jj]; - } - } - if(opcode & VECTOR) { /* no rotation is needed for regular lat-lon grid. */ - grid->rotate = 0; - } - -}; /* get_output_grid_by_size */ - - -/******************************************************************************* -void init_var_config(Var_config *var) -*******************************************************************************/ -void init_var_config(Var_config *var, int interp_method) -{ - var->nz = 1; - var->nn = 1; - var->has_naxis = 0; - var->has_zaxis = 0; - var->has_taxis = 0; - var->kstart = 0; - var->kend = 0; - var->lstart = 0; - var->lend = 0; - var->ndim = 0; - var->interp_method = interp_method; - -} - -/******************************************************************************* -void copy_var_config(Var_config *var) -*******************************************************************************/ -void copy_var_config(const Var_config *var_in, Var_config *var_out) -{ - int i; - - var_out->nz = var_in->nz; - var_out->nn = var_in->nn; - var_out->has_naxis = var_in->has_naxis; - var_out->has_zaxis = var_in->has_zaxis; - var_out->has_taxis = var_in->has_taxis; - var_out->kstart = var_in->kstart; - var_out->kend = var_in->kend ; - var_out->lstart = var_in->lstart; - var_out->lend = var_in->lend; - var_out->ndim = var_in->ndim; - var_out->interp_method = var_in->interp_method; - for(i=0; indim; i++) var_out->index[i] = var_in->index[i]; -} - -/* We assume all the tiles have the same vgrid */ -void get_output_vgrid( VGrid_config *vgrid, const char *vgrid_file ) -{ - int fid, nz, vid, k; - double *z=NULL; - - /* first get number of levels */ - fid = mpp_open(vgrid_file, MPP_READ); - nz = mpp_get_dimlen(fid, "nzv"); - if((nz-1)%2) mpp_error("fregrid_util: size of dimension nzv should be 2*nlev+1"); - z = (double *)malloc(nz*sizeof(double)); - vid = mpp_get_varid(fid, "zeta"); - mpp_get_var_value(fid, vid, z); - mpp_close(fid); - - nz = (nz-1)/2; - vgrid->nz = nz; - vgrid->z = (double *)malloc(nz*sizeof(double)); - vgrid->zb = (double *)malloc((nz+1)*sizeof(double)); - for(k=0; kz[k] = z[2*k+1]; - for(k=0; k<=nz; k++) vgrid->zb[k] = z[2*k]; - free(z); -} - -void get_input_vgrid( VGrid_config *vgrid, const char *vgrid_file, const char *field ) -{ - int fid, vid, vid2, ndim, i, nz; - char dimname[32]; - char cart; - - /* first get number of levels */ - fid = mpp_open(vgrid_file, MPP_READ); - - vid = mpp_get_varid(fid, field); - ndim = mpp_get_var_ndim(fid, vid); - nz = 0; - for(i=0; inz = nz; - vgrid->z = (double *)malloc(nz*sizeof(double)); - mpp_get_var_value(fid, vid2, vgrid->z); - } - } - - mpp_close(fid); - - if(nz == 0) mpp_error("fregrid_util: no vertical levels found in the input file"); - -} - -void setup_vertical_interp(VGrid_config *vgrid_in, VGrid_config *vgrid_out) -{ - int nk1, nk2, kstart, kend, k; - - nk1 = vgrid_in->nz; - nk2 = vgrid_out->nz; - - - for(kstart=0; kstartz[kstart] >= vgrid_in->z[0]) break; - } - for(kend=nk2-1; kend>=0; kend--) { - if(vgrid_out->z[kend] <= vgrid_in->z[nk1-1]) break; - } - - - if(kstart >0 && mpp_pe()==mpp_root_pe()) { - printf("NOTE from fregrid_util: the value from level 0 to level %d will be set to the value at the shallowest source levle.\n", kstart-1); - } - if(kend kstart = kstart; - vgrid_out->kend = kend; - vgrid_out->need_interp = 1; - if(nk1 == nk2 ){ - for(k=0; kz[k]-vgrid_in->z[k]) > EPSLN10 ) break; - } - if(k==nk1) vgrid_out->need_interp = 0; - } -} - -void do_vertical_interp(VGrid_config *vgrid_in, VGrid_config *vgrid_out, Grid_config *grid_out, Field_config *field, int varid) -{ - int nk1, nk2, nx, ny, kstart, kend, i, k; - double *tmp; - - if(vgrid_out->need_interp && field->var[varid].has_zaxis ) { - nk1 = vgrid_in->nz; - nk2 = vgrid_out->nz; - nx = grid_out->nx; - ny = grid_out->ny; - tmp = (double *)malloc(nx*ny*nk1*sizeof(double)); - for(i=0; idata[i]; - if(nk1 != nk2 ) { - free(field->data); - field->data = (double *)malloc(nx*ny*nk2*sizeof(double)); - } - - kstart = vgrid_out->kstart; - kend = vgrid_out->kend; - for(k=0; kdata[k*nx*ny+i] = tmp[i]; - } - for(k=kend; kdata[k*nx*ny+i] = tmp[(nk1-1)*nx*ny+i]; - } - nk2 = kend - kstart + 1; - linear_vertical_interp(nx, ny, nk1, nk2, vgrid_in->z, vgrid_out->z+kstart, tmp, field->data+kstart*nx*ny); - free(tmp); - } - -} - -/******************************************************************************* - void get_input_metadata(Mosaic_config, *mosaic) -*******************************************************************************/ -void get_input_metadata(int ntiles, int nfiles, File_config *file1, File_config *file2, - Field_config *scalar, Field_config *u_comp, Field_config *v_comp, - const Grid_config *grid, int kbegin, int kend, int lbegin, int lend, - unsigned int opcode, char *associated_file_dir) -{ - int n, m, i, l, ll, nscalar, nvector, nfield; - int ndim, dimsize[5], nz; - nc_type type[5]; - char cart[5]; - char dimname[5][STRING], bndname[5][STRING], errmsg[STRING]; - File_config *file = NULL; - Field_config *field = NULL; - size_t start[4], nread[4]; - int interp_method, use_bilinear, use_conserve; - int len, found; - - - use_bilinear = 0; - use_conserve = 0; - if(opcode & CONSERVE_ORDER1) { - use_conserve = 1; - interp_method = CONSERVE_ORDER1; - } - else if(opcode & CONSERVE_ORDER2) { - use_conserve = 1; - interp_method = CONSERVE_ORDER2; - } - else if(opcode & BILINEAR) { - use_bilinear = 1; - interp_method = BILINEAR; - } - - /* First find out how many fields in file and file2. */ - nscalar = 0; - nvector = 0; - if( scalar) nscalar = scalar->nvar; - if( u_comp) nvector = u_comp->nvar; - - for(n=0; n<4; n++) { - start[n] = 0; nread[n] = 1; - } - - for(m=0; m= MAXLIST)mpp_error("fregrid_util(get_input_metadata): nfile_list > MAXLIST"); - strcpy(file_list[i], associated_file); - file_id[i] = field[n].var[ll].area_fid; - nfile_list++; - } - } - } - /* get the vid of area_name and check if area_name is time dependent or not */ - field[n].var[ll].area_vid = mpp_get_varid(field[n].var[ll].area_fid, field[n].var[ll].area_name); - ndim = mpp_get_var_ndim(field[n].var[ll].area_fid, field[n].var[ll].area_vid); - /* check if it has T-axis */ - mpp_get_var_dimname(field[n].var[ll].area_fid, field[n].var[ll].area_vid, 0, dimname); - vid2 = mpp_get_varid(field[n].var[ll].area_fid, dimname); - cart = mpp_get_var_cart(field[n].var[ll].area_fid, vid2); - - if( cart == 'T' ) { - if(ndim <=2) { - sprintf(errmsg, "fregrid_util(get_input_metadata): number of dimension of field %s in file %s has t-axis and <3" , - field[n].var[ll].area_name, associated_file ); - mpp_error(errmsg); - } - field[n].var[ll].area_has_taxis = 1; - } - else { - field[n].var[ll].area_has_taxis = 0; - } - /* check if has n-axis (diurnal data). */ - field[n].var[ll].area_has_naxis = 0; - if(ndim>2) { - if(field[n].var[ll].area_has_taxis) - mpp_get_var_dimname(field[n].var[ll].area_fid, field[n].var[ll].area_vid, 1, dimname); - else - mpp_get_var_dimname(field[n].var[ll].area_fid, field[n].var[ll].area_vid, 0, dimname); - vid2 = mpp_get_varid(field[n].var[ll].area_fid, dimname); - cart = mpp_get_var_cart(field[n].var[ll].area_fid, vid2); - if(cart == 'N') { - field[n].var[ll].area_has_naxis = 1; - if(ndim==3 && field[n].var[ll].area_has_taxis) { - sprintf(errmsg, "fregrid_util(get_input_metadata): ndim=3, has_taxis=T and hax_naxis=T for field %s in file %s", - field[n].var[ll].area_name, associated_file ); - } - else if(ndim==4 && !field[n].var[ll].area_has_taxis) { - sprintf(errmsg, "fregrid_util(get_input_metadata): ndim=4, has_taxis=F for field %s in file %s", - field[n].var[ll].area_name, associated_file ); - } - } - } - - if(ndim>4) { - sprintf(errmsg, "fregrid_util(get_input_metadata): number of dimension of field %s in file %s > 4" , - field[n].var[ll].area_name, associated_file ); - mpp_error(errmsg); - } - if( mpp_var_att_exist(field[n].var[ll].area_fid, field[n].var[ll].area_vid, "missing_value") ) { - mpp_get_var_att_double(field[n].var[ll].area_fid, field[n].var[ll].area_vid, "missing_value", &(field[n].var[ll].area_missing)); - } - else if( mpp_var_att_exist(field[n].var[ll].area_fid, field[n].var[ll].area_vid, "_FillValue") ) { - mpp_get_var_att_double(field[n].var[ll].area_fid, field[n].var[ll].area_vid, "_FillValue", &(field[n].var[ll].area_missing)); - } - else - field[n].var[ll].area_missing = 0; - } - } - else { - field[n].var[ll].cell_measures=0; - field[n].var[ll].area_missing = 0; - field[n].var[ll].area_has_taxis = 0; - } - - /* get the interp_method from the field attribute if existing - when interp_method is not conserve_order2_monotonic - */ - if( !(opcode & MONOTONIC) ) { - if(mpp_var_att_exist(file[n].fid, field[n].var[ll].vid, "interp_method")) { - char remap_method[STRING] = ""; - mpp_get_var_att(file[n].fid, field[n].var[ll].vid, "interp_method", remap_method); - if(!strcmp(remap_method, "conserve_order1") ) { - use_conserve = 1; - field[n].var[ll].interp_method = CONSERVE_ORDER1; - } - else if(!strcmp(remap_method, "conserve_order2") ) { - use_conserve = 1; - field[n].var[ll].interp_method = CONSERVE_ORDER2; - } - else if(!strcmp(remap_method, "bilinear") ) { - use_bilinear = 1; - field[n].var[ll].interp_method = BILINEAR; - } - else { - sprintf(errmsg, "get_input_metadata(fregrid_util.c): in file %s, attribute interp_method of field %s has value = %s" - "is not suitable, it should be conserve_order1, conserve_order2 or bilinear", file[n].name, - field[n].var[ll].name, remap_method); - mpp_error(errmsg); - } - } - } - ndim = mpp_get_var_ndim(file[n].fid, field[n].var[ll].vid); - if(ndim <2 || ndim>5) mpp_error("get_input_metadata(fregrid_util.c): ndim should be no less than 2 and no larger than 5"); - for(i=0; i 2) { - if(cart[ndim-3] == 'Z') { - field[n].var[ll].has_zaxis = 1; - field[n].var[ll].nz = dimsize[ndim-3]; - if(kend > field[n].var[ll].nz) { - sprintf(errmsg, "get_input_metadata(fregrid_util.c): KlevelEnd should be no larger than " - "number of vertical levels of field %s in file %s.", field[n].var[ll].name, file[n].name); - mpp_error(errmsg); - } - if(kbegin>0) { - field[n].var[ll].kstart = kbegin - 1; - field[n].var[ll].kend = kend - 1; - field[n].var[ll].nz = kend - kbegin + 1; - } - else { - field[n].var[ll].kstart = 0; - field[n].var[ll].kend = field[n].var[ll].nz - 1; - } - } - else if(cart[ndim-3] == 'N') { - field[n].var[ll].has_naxis = 1; - field[n].var[ll].nn = dimsize[ndim-3]; - } - } - if(ndim > 3) { - if(cart[ndim-4] == 'Z') { - mpp_error("get_input_metadata(fregrid_util.c): the Z-axis must be the third dimension"); - } - if(cart[ndim-4] == 'N') { - field[n].var[ll].has_naxis = 1; - field[n].var[ll].nn = dimsize[ndim-4]; - } - } - - if(cart[0] == 'T') { - field[n].var[ll].has_taxis = 1; - if(lend > dimsize[0]) { - sprintf(errmsg, "get_input_metadata(fregrid_util.c): LstepEnd should be no larger than " - "number of time levels of field %s in file %s.", field[n].var[ll].name, file[n].name); - mpp_error(errmsg); - } - if(lbegin>0) { - field[n].var[ll].lstart = lbegin - 1; - field[n].var[ll].lend = lend - 1; - file[n].nt = lend - lbegin + 1; - } - else { - field[n].var[ll].lstart = 0; - field[n].var[ll].lend = dimsize[0] - 1; - file[n].nt = dimsize[0]; - } - - } - for(i=0; i MAXDIM) mpp_error("get_input_metadata(fregrid_util.c):ndim is greater than MAXDIM"); - - file[n].axis[j].cart = cart[i]; - file[n].axis[j].type = type[i]; - strcpy(file[n].axis[j].name, dimname[i]); - strcpy(file[n].axis[j].bndname, bndname[i]); - file[n].axis[j].vid = mpp_get_varid(file[n].fid, dimname[i]); - if(cart[i] == 'T') { - start[0] = field[n].var[ll].lstart; - file[n].axis[j].size = file[n].nt; - } - else if(cart[i] == 'Z') { - start[0] = field[n].var[ll].kstart; - file[n].axis[j].size = field[n].var[ll].nz; - } - else { - start[0] = 0; - file[n].axis[j].size = dimsize[i]; - } - file[n].axis[j].data = (double *)malloc(file[n].axis[j].size*sizeof(double)); - nread[0] = file[n].axis[j].size; - mpp_get_var_value_block(file[n].fid, file[n].axis[j].vid, start, nread, file[n].axis[j].data); - file[n].axis[j].bndtype = 0; - if(strcmp(bndname[i], "none") ) { - file[n].axis[j].bndid = mpp_get_varid(file[n].fid, bndname[i]); - if(mpp_get_var_ndim(file[n].fid,file[n].axis[j].bndid) == 1) { - file[n].axis[j].bndtype = 1; - file[n].axis[j].bnddata = (double *)malloc((file[n].axis[j].size+1)*sizeof(double)); - nread[0] = file[n].axis[j].size+1; - } - else { - file[n].axis[j].bndtype = 2; - file[n].axis[j].bnddata = (double *)malloc(2*file[n].axis[j].size*sizeof(double)); - nread[0] = file[n].axis[j].size; nread[1] = 2; - } - mpp_get_var_value_block(file[n].fid, file[n].axis[j].bndid, start, nread, file[n].axis[j].bnddata); - } - else if( cart[i] == 'X' || cart[i] == 'Y' ) { - sprintf(file[n].axis[j].bndname, "%s_bnds", file[n].axis[j].name); - } - - } - } /*ndim*/ - } /* nvar */ - } /* ntile */ - /* make sure the consistency between tiles */ - for(n=1; n 0) - start[0] = lbegin-1; - else - start[0] = 0; - nread[0] = file[n].nt; nread[1] = 1; - mpp_get_var_value_block(file[n].fid, file[n].id_t1, start, nread, file[n].t1); - mpp_get_var_value_block(file[n].fid, file[n].id_t2, start, nread, file[n].t2); - mpp_get_var_value_block(file[n].fid, file[n].id_dt, start, nread, file[n].dt); - } - } - - } /*nfile*/ - - /* make sure bilinear and conservative interpolation do not co-exist. */ - if(use_bilinear && use_conserve) mpp_error("get_input_metadata(fregrid_util.c): bilinear interpolation and conservative " - "interpolation can not co-exist, check you option interp_method in command " - "line and field attribute interp_method in source file"); - -}; /* get_input_metadata */ - -/* get the string after str2 in str1 and save it into strOut - return 1 if the string is found, return 0 if not, return -1 if error found -*/ -int parse_string(const char *str1, const char *str2, char *strOut, char *errmsg) -{ - - char *str=NULL; - int len2, len, istart, attlen, i; - - len2 = strlen(str2); - str = strstr(str1, str2); - if( str ) { /* str2 is found */ - str = str+len2; - len = strlen(str); - - /* find the start position */ - istart = len; - for(i=0; invar; - if( u_in) nvector = u_in->nvar; - for(n=0; nnz > 0) scalar_out[n].var[l].nz = vgrid_out->nz; - } - - for(l=0; lnz >0 ) - file_out[n].axis[i].size = vgrid_out->nz; - else - file_out[n].axis[i].size = file_in[0].axis[i].size; - if(file_out[n].axis[i].cart == 'X') file_out[n].axis[i].size = grid_out[n].nx; - if(file_out[n].axis[i].cart == 'Y') file_out[n].axis[i].size = grid_out[n].ny; - file_out[n].axis[i].type = file_in[0].axis[i].type; - file_out[n].axis[i].bndtype = file_in[0].axis[i].bndtype; - if(standard_dimension && (file_out[n].axis[i].cart == 'X' || file_out[n].axis[i].cart == 'Y') ) - file_out[n].axis[i].bndtype = 3; - if(file_out[n].axis[i].bndtype ==0 && (file_out[n].axis[i].cart == 'X' || file_out[n].axis[i].cart == 'Y') - && dst_is_latlon) file_out[n].axis[i].bndtype = 3; - strcpy(file_out[n].axis[i].name, file_in[0].axis[i].name); - strcpy(file_out[n].axis[i].bndname, file_in[0].axis[i].bndname); - } - for(i=0; inz > 0 ) { /* z-axis */ - for(l=0; lz[l]; - } - else { - for(l=0; lnz > 0) { - for(l=0; l<=file_out[n].axis[i].size; l++) file_out[n].axis[i].bnddata[l ] = vgrid_out->zb[l]; - } - else{ - for(l=0; l<=file_out[n].axis[i].size; l++) file_out[n].axis[i].bnddata[l] = file_in[0].axis[i].bnddata[l]; - } - break; - case 2: - file_out[n].axis[i].bnddata = (double *)malloc(2*file_out[n].axis[i].size*sizeof(double)); - if( file_out[n].axis[i].cart == 'X' ) { /* x-axis */ - for(l=0; lnz > 0) { - for(l=0; lzb[l]; - file_out[n].axis[i].bnddata[2*l+1] = vgrid_out->zb[l+1]; - } - } - else { - for(l=0; l 0 ) - mpp_put_var_value(file_out[n].fid, file_out[n].axis[i].bndid, file_out[n].axis[i].bnddata); - } - } - } - } - -}; /* set_output_metadata */ - -/******************************************************************************* - void get_field_attribute( ) - *******************************************************************************/ -void get_field_attribute( int ntiles, Field_config *field) -{ - int n, l, nfield; - char str[128]; - - nfield = field->nvar; - - for(l=0; lnvar; l++) { - field_out[n].var[l].missing = field_in->var[l].missing; - field_out[n].var[l].scale = field_in->var[l].scale; - field_out[n].var[l].offset = field_in->var[l].offset; - } - - -} - - -/******************************************************************************* -void set_remap_file( ) -*******************************************************************************/ -void set_remap_file( int ntiles, const char *mosaic_file, const char *remap_file, Interp_config *interp, - unsigned int *opcode, int save_weight_only) -{ - int i, len, m, fid, vid; - size_t start[4], nread[4]; - char str1[STRING], tilename[STRING]; - int file_exist; - - if(!remap_file) return; - - for(i=0; i<4; i++) { - start[i] = 0; nread[i] = 1; - } - nread[1] = STRING; - - len = strlen(remap_file); - if(len >= STRING) mpp_error("setoutput_remap_file(fregrid_util): length of remap_file should be less than STRING"); - if( strcmp(remap_file+len-3, ".nc")==0 ) { - strncpy(str1, remap_file, len-3); - str1[len-3] = 0; - } - else - strcpy(str1, remap_file); - - (*opcode) |= WRITE; - - if(ntiles>1) { - fid = mpp_open(mosaic_file, MPP_READ); - vid = mpp_get_varid(fid, "gridtiles"); - } - - for(m=0; m 1) { - start[0] = m; - mpp_get_var_value_block(fid, vid, start, nread, tilename); - if(strlen(str1) + strlen(tilename) > STRING -5) mpp_error("set_output_remap_file(fregrid_util): length of str1 + " - "length of tilename should be no greater than STRING-5"); - sprintf(interp[m].remap_file, "%s.%s.nc", str1, tilename); - } - else - sprintf(interp[m].remap_file, "%s.nc", str1); - /* check xgrid file to be read (=1) or write ( = 2) */ - if(!save_weight_only && mpp_file_exist(interp[m].remap_file)) { - (*opcode) |= READ; - interp[m].file_exist = 1; - } - - } - - if(ntiles>1) mpp_close(fid); - -};/* set_remap_file */ - - -/*---------------------------------------------------------------------- - void write_output_axis_data( ) - write out time axis data of the output data file - --------------------------------------------------------------------*/ -void write_output_time(int ntiles, File_config *file, int level) -{ - int i, n; - size_t start[4], nwrite[4]; - - for(i=0; i<4; i++) { - start[i] = 0; nwrite[i] = 1; - } - start[0] = level; - if( mpp_pe() == mpp_root_pe()) { - for(n=0; nvar[varid].missing; - interp_method = field->var[varid].interp_method; - if(interp_method == CONSERVE_ORDER1) - halo = 0; - else - halo = 1; - - nz = 1; - if( level_z < 0 ) nz = field->var[varid].nz; - ndim = field->var[varid].ndim; - if(ndim < 2) mpp_error("fregrid_util(get_input_data): ndim must be no less than 2"); - nread = (size_t *)malloc(ndim*sizeof(size_t)); - start = (size_t *)malloc(ndim*sizeof(size_t)); - for(i=0; ivar[varid].has_taxis) start[pos++] = level_t; - if(field->var[varid].has_naxis) start[pos++] = level_n; - if(field->var[varid].has_zaxis) { - if( level_z <0 ) { - nread[pos] = field->var[varid].nz; - start[pos++] = field->var[varid].kstart; - } - else - start[pos++] = level_z; - } - if(ndim != pos + 2) mpp_error("fregrid_util(get_input_data): mimstch between ndim and has_taxis/has_zaxis/has_naxis"); - - /* first read input data for each tile */ - for(n=0; n 0 */ - if(halo > 0) { - for(n=0; n 0) { - dHold = (Data_holder *)malloc(nbound*sizeof(Data_holder)); - for(l=0; l 0 */ - if(halo > 0) { - for(n=0; n 0) { - dHold = (Data_holder *)malloc(nbound*sizeof(Data_holder)); - for(l=0; lvar[varid].ndim; - if(ndim < 2) mpp_error("fregrid_util(write_field_data): ndim must be no less than 2"); - - nwrite = (size_t *)malloc(ndim*sizeof(size_t)); - start = (size_t *)malloc(ndim*sizeof(size_t)); - nz = 1; - if(level_z<0) nz = field->var[varid].nz; - for(i=0; ivar[varid].missing; - pos = 0; - if(field->var[varid].has_taxis) start[pos++] = level_t; - if(field->var[varid].has_naxis) start[pos++] = level_n; - if(field->var[varid].has_zaxis) { - if(level_z < 0) - nwrite[pos++] = nz; - else - start[pos++] = level_z; - } - if(ndim != pos + 2) mpp_error("fregrid_util(write_field_data): mimstch between ndim and has_taxis/has_zaxis/has_naxis"); - - for(n=0; n 0) { - bound[n].is1 = (int *)malloc(nbound*sizeof(int)); - bound[n].ie1 = (int *)malloc(nbound*sizeof(int)); - bound[n].js1 = (int *)malloc(nbound*sizeof(int)); - bound[n].je1 = (int *)malloc(nbound*sizeof(int)); - bound[n].is2 = (int *)malloc(nbound*sizeof(int)); - bound[n].ie2 = (int *)malloc(nbound*sizeof(int)); - bound[n].js2 = (int *)malloc(nbound*sizeof(int)); - bound[n].je2 = (int *)malloc(nbound*sizeof(int)); - bound[n].rotate = (int *)malloc(nbound*sizeof(int)); - bound[n].tile2 = (int *)malloc(nbound*sizeof(int)); - nb = 0; - for(l=0; l<2*ncontacts; l++) { - if(tile[l] != n) continue; - switch(dir[l]) { - case WEST: - bound[n].is1[nb] = 0; - bound[n].ie1[nb] = halo-1; - bound[n].js1[nb] = min(jstart[l],jend[l])+halo; - bound[n].je1[nb] = max(jstart[l],jend[l])+halo+shift; - break; - case EAST: - bound[n].is1[nb] = nx+shift+halo; - bound[n].ie1[nb] = nx+shift+halo+halo-1; - bound[n].js1[nb] = min(jstart[l],jend[l])+halo; - bound[n].je1[nb] = max(jstart[l],jend[l])+halo+shift; - break; - case SOUTH: - bound[n].is1[nb] = min(istart[l],iend[l])+halo; - bound[n].ie1[nb] = max(istart[l],iend[l])+halo+shift; - bound[n].js1[nb] = 0; - bound[n].je1[nb] = halo-1; - break; - case NORTH: - bound[n].is1[nb] = min(istart[l],iend[l])+halo; - bound[n].ie1[nb] = max(istart[l],iend[l])+halo+shift; - bound[n].js1[nb] = ny+shift+halo; - bound[n].je1[nb] = ny+shift+halo+halo-1; - break; - } - l2 = (l+ncontacts)%(2*ncontacts); - bound[n].tile2[nb] = tile[l2]; - switch(dir[l2]) { - case WEST: - bound[n].is2[nb] = halo+shift; - bound[n].ie2[nb] = halo+shift+halo-1; - bound[n].js2[nb] = min(jstart[l2],jend[l2])+halo; - bound[n].je2[nb] = max(jstart[l2],jend[l2])+halo+shift; - break; - case EAST: - bound[n].is2[nb] = nx-halo+1; - bound[n].ie2[nb] = nx; - bound[n].js2[nb] = min(jstart[l2],jend[l2])+halo; - bound[n].je2[nb] = max(jstart[l2],jend[l2])+halo+shift; - break; - case SOUTH: - bound[n].is2[nb] = min(istart[l2],iend[l2])+halo; - bound[n].ie2[nb] = max(istart[l2],iend[l2])+halo+shift; - bound[n].js2[nb] = halo+shift; - bound[n].je2[nb] = halo+shift+halo-1; - break; - case NORTH: - bound[n].is2[nb] = min(istart[l2],iend[l2])+halo; - bound[n].ie2[nb] = max(istart[l2],iend[l2])+halo+shift; - bound[n].js2[nb] = ny-halo+1; - bound[n].je2[nb] = ny; - break; - } - bound[n].rotate[nb] = ZERO; - if(dir[l] == WEST && dir[l2] == NORTH) bound[n].rotate[nb] = NINETY; - if(dir[l] == EAST && dir[l2] == SOUTH) bound[n].rotate[nb]= NINETY; - if(dir[l] == SOUTH && dir[l2] == EAST) bound[n].rotate[nb] = MINUS_NINETY; - if(dir[l] == NORTH && dir[l2] == WEST) bound[n].rotate[nb] = MINUS_NINETY; - if(dir[l] == NORTH && dir[l2] == NORTH) bound[n].rotate[nb] = ONE_HUNDRED_EIGHTY; - /* make sure the size match at the boundary */ - if( (bound[n].ie2[nb]-bound[n].is2[nb]+1)*(bound[n].je2[nb]-bound[n].js2[nb]+1) != - (bound[n].ie1[nb]-bound[n].is1[nb]+1)*(bound[n].je1[nb]-bound[n].js1[nb]+1) ) - mpp_error("fregrid_util: size mismatch between the boundary"); - nb++; - } - } - } -}; /* setup_boundary */ - -void delete_bound_memory(int ntiles, Bound_config *bound) -{ - int n; - - for(n=0; n 0) { - free(bound[n].is1); - free(bound[n].ie1); - free(bound[n].js1); - free(bound[n].je1); - free(bound[n].is2); - free(bound[n].ie2); - free(bound[n].js2); - free(bound[n].je2); - free(bound[n].tile2); - free(bound[n].rotate); - } - } -} - - -/*----------------------------------------------------------------------------- - void init_halo(double *var, int nx, int ny, int nz, int halo) - initialze the halo data to be zero. - ---------------------------------------------------------------------------*/ -void init_halo(double *var, int nx, int ny, int nz, int halo) -{ - int i, j, k; - int nxd, nyd, nall; - - nxd = nx+2*halo; - nyd = ny+2*halo; - nall = nxd*nyd; - - for(k=0; knbound; - size1 = nx*ny; - - for(n=0; nis1[n]; - ie1 = bound->ie1[n]; - js1 = bound->js1[n]; - je1 = bound->je1[n]; - is2 = bound->is2[n]; - ie2 = bound->ie2[n]; - js2 = bound->js2[n]; - je2 = bound->je2[n]; - nx2 = dHold[n].nx; - ny2 = dHold[n].ny; - size2 = nx2*ny2; - bufsize = nz*(ie2-is2+1)*(je2-js2+1); - buffer = (double *)malloc(bufsize*sizeof(double)); - /* fill the buffer */ - l = 0; - switch(bound->rotate[n]) { - case ZERO: - for(k=0; k=is2; i--) for(j=js2; j<=je2; j++) buffer[l++] = dHold[n].data[k*size2+j*nx2+i]; - break; - case MINUS_NINETY: - for(k=0; k=js2; j--) buffer[l++] = dHold[n].data[k*size2+j*nx2+i]; - break; - case ONE_HUNDRED_EIGHTY: - for(k=0; k=js2; j--) for(i=ie2; i>=is2; i--) buffer[l++] = dHold[n].data[k*size2+j*nx2+i]; - break; - } - l = 0; - for(k=0; k -#include "constant.h" -#include "mpp_domain.h" - -#define MAXATT 4096 -#define MAXSTRING 10240 -#define MAXENTRY 512 -#define NVAR 2048 -#define NFILE 32 -#define MAXDIM 10 -/* constants for grid type and grid location */ -#define ZERO 0 -#define NINETY 1 -#define MINUS_NINETY -1 -#define ONE_HUNDRED_EIGHTY 2 -#define CENTER 3 -#define CORNER 4 -#define EAST 4 -#define NORTH 5 -#define WEST 6 -#define SOUTH 7 - - -/* constants for option */ -#define CONSERVE_ORDER1 1 -#define CONSERVE_ORDER2 2 -#define BILINEAR 4 -#define VECTOR 8 -#define TARGET 16 -#define SYMMETRY 32 -#define AGRID 64 -#define BGRID 128 -#define READ 256 -#define WRITE 512 -#define CHECK_CONSERVE 1024 -#define LEGACY_CLIP 2048 -#define GREAT_CIRCLE 4096 -#define STANDARD_DIMENSION 8192 -#define MONOTONIC 16384 -#define EXTRAPOLATE 32768 - -/* constant for cell_methods */ -#define CELL_METHODS_MEAN 0 -#define CELL_METHODS_SUM 1 - -typedef struct { - char name[STRING]; /* variable name */ - int vid; - nc_type type; - int ndim; - int index[4]; - int nz; - int nn; - int kstart; - int kend; - int lstart; - int lend; - int has_naxis; - int has_zaxis; - int has_taxis; - double missing; - double scale; - double offset; - int has_missing; - int interp_method; /* indicate which remapping method will be used to do regridding. */ - int cell_measures; - int cell_methods; - int area_vid; - int area_fid; - int area_has_taxis; - int area_has_naxis; - double area_missing; - char area_name[STRING]; - -} Var_config; - -typedef struct { - char *file; - int *fid; - int nvar; - double *data; /* array to store one variable data */ - double *area; /* fraction of cell area */ - double *grad_x; /* array to store one variable data gradient in x-direction */ - double *grad_y; /* array to store one variable data gradient in y-direction */ - int *grad_mask; /* array to store the mask for gradient */ - Var_config *var; -} Field_config; - -typedef struct { - char name[STRING]; - char bndname[STRING]; - int dimid; - int vid; - int bndid; - int size; - nc_type type; - char cart; - int bndtype; - double *bnddata; - double *data; -} Axis_config; - -typedef struct { - int nt; - char name[STRING]; - int fid; - int ndim; - Axis_config *axis; - int has_tavg_info; - int has_cell_measure_att; - int id_t1, id_t2, id_dt; - double *t1, *t2, *dt; -} File_config; - -typedef struct { - size_t nxgrid; - int *i_in; - int *j_in; - int *i_out; - int *j_out; - int *t_in; - double *di_in; - double *dj_in; - double *area; - double *weight; - int *index; - char remap_file[STRING]; - int file_exist; -} Interp_config; - -typedef struct { - int nz; - double *z; - double *zb; - int kstart; - int kend; - int need_interp; -} VGrid_config; - - -typedef struct { - int is_cyclic; - int is_tripolar; - int halo; - int nx; - int ny; - int nx_fine; - int ny_fine; - int isc; - int iec; - int jsc; - int jec; - int nxc; - int nyc; - double *lonc; - double *latc; - double *lont; - double *latt; - double *xt; - double *yt; - double *xc; - double *yc; - double *zt; - double *dx; - double *dy; - double *area; /* used for computing gradient */ - double *lonc1D; - double *latc1D; - double *lont1D; - double *latt1D; - double *latt1D_fine; - double *en_e; - double *en_n; - double *edge_w; - double *edge_e; - double *edge_s; - double *edge_n; - double *vlon_t; - double *vlat_t; - double *cosrot; - double *sinrot; - double *weight; - double *cell_area; /* cell area */ - int weight_exist; - int rotate; - domain2D domain; -} Grid_config; - -typedef struct{ - int nbound; - int *tile2; - int *is1, *ie1, *js1, *je1; - int *is2, *ie2, *js2, *je2; - int *rotate; -} Bound_config; - -typedef struct{ - double *data; - int nx; - int ny; -} Data_holder; - -typedef struct{ - double *f_bar_max; - double *f_bar_min; - double *f_max; - double *f_min; -} Monotone_config; - -#endif diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/COPYING b/sorc/fre-nctools.fd/tools/make_hgrid/COPYING deleted file mode 100644 index 93a221957b..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/COPYING +++ /dev/null @@ -1,159 +0,0 @@ -TERMS AND CONDITIONS -0. Definitions. - -“This License” refers to version 3 of the GNU General Public License. - -“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. - -“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. - -To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. - -A “covered work” means either the unmodified Program or a work based on the Program. - -To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. - -To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. - -An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. -1. Source Code. - -The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. - -A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. - -The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. - -The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. - -The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. - -The Corresponding Source for a work in source code form is that same work. -2. Basic Permissions. - -All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. - -You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. - -Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. -3. Protecting Users' Legal Rights From Anti-Circumvention Law. - -No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. - -When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. -4. Conveying Verbatim Copies. - -You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. - -You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. -5. Conveying Modified Source Versions. - -You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified it, and giving a relevant date. - b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. - c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. - d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. - -A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. -6. Conveying Non-Source Forms. - -You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: - - a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. - b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. - c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. - d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. - e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. - -A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. - -A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. - -“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. - -If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). - -The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. - -Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. -7. Additional Terms. - -“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. - -When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. - -Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or - b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or - c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or - d) Limiting the use for publicity purposes of names of licensors or authors of the material; or - e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or - f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. - -All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. - -If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. - -Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. -8. Termination. - -You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). - -However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. - -Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. - -Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. -9. Acceptance Not Required for Having Copies. - -You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. -10. Automatic Licensing of Downstream Recipients. - -Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. - -An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. - -You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. -11. Patents. - -A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. - -A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. - -Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. - -In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. - -If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. - -If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. - -A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. - -Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. -12. No Surrender of Others' Freedom. - -If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. -13. Use with the GNU Affero General Public License. - -Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. -14. Revised Versions of this License. - -The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. - -If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. - -Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. -15. Disclaimer of Warranty. - -THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -16. Limitation of Liability. - -IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -17. Interpretation of Sections 15 and 16. - -If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/create_conformal_cubic_grid.c b/sorc/fre-nctools.fd/tools/make_hgrid/create_conformal_cubic_grid.c deleted file mode 100644 index 4e9c9dea9e..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/create_conformal_cubic_grid.c +++ /dev/null @@ -1,815 +0,0 @@ -#include -#include -#include -#include -#include "mpp.h" -#include "mosaic_util.h" -#include "tool_util.h" -#include "constant.h" -#include "create_hgrid.h" -#define D2R (M_PI/180.) -#define R2D (180./M_PI) -/********************************************************************************* - some private routines used in this file -*********************************************************************************/ -void calc_geocoords_centerpole(int nx, int ny, double *x, double *y); -void conformal_map_coords2xyz ( int ni, int nj, double *lx, double *ly, double *X, double *Y, double *Z ); -void map_xyz2lonlat(int ni, int nj, double *X, double *Y, double *Z, double *lon, double *lat ); -void rotate_about_xaxis(int ni, int nj, double *X, double *Y, double *Z, double angle); -void permutiles(int ni, int nj, double *b, int num); -void calc_fvgrid(int nx, int ny, int nratio, double *dx, double *dy, double *area); -double* angle_between_vectors(int ni, int nj, double *vec1, double *vec2); -double* excess_of_quad(int ni, int nj, double *vec1, double *vec2, double *vec3, double *vec4 ); -double* plane_normal(int ni, int nj, double *P1, double *P2); -void calc_rotation_angle(int nxp, int nyp, double *x, double *y, double *angle_dx, double *angle_dy); - - -/******************************************************************************* - void create_conformal_cubic_grid( int *npoints, int *nratio, char *method, char *orientation, double *x, - double *y, double *dx, double *dy, double *area, double *angle_dx, - double *angle_dy ) - create cubic grid. All six tiles grid will be generated. -*******************************************************************************/ -void create_conformal_cubic_grid( int *npts, int *nratio, char *method, char *orientation, double *x, - double *y, double *dx, double *dy, double *area, double *angle_dx, - double *angle_dy ) -{ - int nx, ny, nxp, nyp; - - nx = *npts; - ny = nx; - nxp = nx+1; - nyp = nxp; - - /*calculate geographic coordinates. */ - if(strcmp(orientation, "center_pole") == 0) - calc_geocoords_centerpole(nx, ny, x, y); - else - mpp_error("create_cubic_grid: only center pole orientation is implemented"); - - /* calculate cell length and area */ - calc_fvgrid(nx, ny, *nratio, dx, dy, area); - - /*calculate rotation angle, just some workaround, will modify this in the future. */ - calc_rotation_angle(nxp, nyp, x, y, angle_dx, angle_dy ); - -}; /* create_conformal_cubic_grid */ - -/*********************************************************************** - calc_geoocoords_centerpole(int nx, int ny, double *x, double *y); -calculate geographic coordinates for all six tiles. - -***********************************************************************/ -void calc_geocoords_centerpole(int nx, int ny, double *x, double *y) -{ - int i, j, n, m, nxp, nyp, nxh, nyh; - double *lx, *ly, *X, *Y, *Z, *lonP, *latP, *lonE, *latE, *tmp; - - nxp = nx+1; - nyp = ny+1; - nxh = (nxp+1)/2; - nyh = (nyp+1)/2; - - lx = (double *)malloc(nxh*nyh*sizeof(double)); - ly = (double *)malloc(nxh*nyh*sizeof(double)); - - n = 0; - for(j=0; j= M_PI ) lonP[j*nxp+i] -= 2*M_PI; - } - } - - tmp = (double *) malloc(nxh*nyh*sizeof(double)); - n = 0; - for(j=0; j fabs(lx[n]) ) { - xc = 1-Y[n]; - yc = 1-X[n]; - } - zc = cpow((xc+I*yc)/2.,4); - /*Evaluate the Taylor series. */ - w = 0; - - for(m=order; m>=0; m--) w = ( w + A[m] ) * zc; - if( w != 0. ) w = cpow(I,THRD) * cpow( w*I, THRD); - w = (w-RA)/(CB+CC*w); - X[n] = creal(w); - Y[n] = cimag(w); - h = 2./(1+cpow(X[n],2)+cpow(Y[n],2)); - X[n] = X[n]*h; - Y[n] = Y[n]*h; - Z[n] = h-1; - } - - for(n=0; n< ni*nj; n++) { - if(fabs(ly[n]) > fabs(lx[n]) ) { - t = X[n]; - X[n] = Y[n]; - Y[n] = t; - } - - if(lx[n]<0) X[n] = -X[n]; - if(lx[n]==0) X[n] = 0; - if(ly[n]<0) Y[n] = -Y[n]; - if(ly[n]==0) Y[n] = 0; - } - -}; /* conformal_map_coords2xyz */ - - - -/********************************************************** - Convert 3-D coordinates (x,y,z) to (lon,lat) - Assumes "lat" is positive with "z", equatorial plane - falls at z=0 and "lon" is measured anti-clockwise (eastward) - from x-axis (y=0) about z-axis. - -************************************************************/ - -void map_xyz2lonlat(int ni, int nj, double *X, double *Y, double *Z, - double *lon, double *lat ) -{ - int i, j, n; - double req; - - for(n=0; n=0) lon[n] += M_PI; - if(X[n]<=0 && Y[n] < 0) lon[n] -= M_PI; - } - -}; /* map_xyz2lonlat */ - - -/************************************************************** - void rotate_about_xaxis(int ni, int nj, double *X, double *Y, - double *Z, double angle) - - Rotate about X axis by "angle" - -***************************************************************/ - -void rotate_about_xaxis(int ni, int nj, double *X, double *Y, - double *Z, double angle) { - int i, j, n; - double s,c,old; - const double tolerance = 1.e-9; - - s=sin(angle); - c=cos(angle); - - if (c0) - s = 1; - else - s = -1; - } - - for(n=0; n1, 4->2, 5->4, 1->5, the tiles 3 and 6 get rotated 90 degs. - -*************************************************************************/ - -void permutiles(int ni, int nj, double *b, int num) { - - int i, j, k, n; - int ntiles = 6; - double *c=NULL; - - c = (double *)malloc(ni*nj*ntiles*sizeof(double)); - - for(k=0; ki) - areal[j*(nif-1)+i] = areal[i*(nif-1)+j]; - } - } - - /* Use symmetry to fill second octant */ - for(j=1; j* angle_between_vectors(array vec1, array vec2) -*******************************************************************************/ - -double* angle_between_vectors(int ni, int nj, double *vec1, double *vec2) { - int n; - double vector_prod, nrm1, nrm2; - double *angle; - - angle = (double *)malloc(ni*nj*sizeof(double)); - - for(n=0; n= nxp) { /* find the neighbor tile. */ - if(n % 2 == 0) { /* tile 1, 3, 5 */ - tp1 = n+1; - ip1 = 0; - } - else { /* tile 2, 4, 6 */ - tp1 = n+2; - if(tp1 >= ntiles) tp1 -= ntiles; - ip1 = ny-j-1; - jp1 = 0; - } - } - if(im1 < 0) { /* find the neighbor tile. */ - if(n % 2 == 0) { /* tile 1, 3, 5 */ - tm1 = n-2; - if(tm1 < 0) tm1 += ntiles; - jm1 = ny; - im1 = nx-j; - } - else { /* tile 2, 4, 6 */ - tm1 = n-1; - im1 = nx; - } - } - - angle_dx[n*nxp*nyp+j*nxp+i] = atan2(y[tp1*nxp*nyp+jp1*nxp+ip1]-y[tm1*nxp*nyp+jm1*nxp+im1], - (x[tp1*nxp*nyp+jp1*nxp+ip1]-x[tm1*nxp*nyp+jm1*nxp+im1])*lon_scale )*R2D; - tp1 = n; - tm1 = n; - ip1 = i; - im1 = i; - jp1 = j+1; - jm1 = j-1; - if(jp1 >=nyp) { /* find the neighbor tile. */ - if(n % 2 == 0) { /* tile 1, 3, 5 */ - tp1 = n+2; - if(tp1 >= ntiles) tp1 -= ntiles; - jp1 = nx-i; - ip1 = 0; - } - else { /* tile 2, 4, 6 */ - tp1 = n+1; - if(tp1 >= ntiles) tp1 -= ntiles; - jp1 = 0; - } - } - if(jm1 < 0) { /* find the neighbor tile. */ - if(n % 2 == 0) { /* tile 1, 3, 5 */ - tm1 = n-1; - if(tm1 < 0) tm1 += ntiles; - jm1 = ny; - } - else { /* tile 2, 4, 6 */ - tm1 = n-2; - if(tm1 < 0) tm1 += ntiles; - im1 = nx; - jm1 = nx-i; - } - } - - angle_dy[n*nxp*nyp+j*nxp+i] = atan2(y[tp1*nxp*nyp+jp1*nxp+ip1]-y[tm1*nxp*nyp+jm1*nxp+im1], - (x[tp1*nxp*nyp+jp1*nxp+ip1]-x[tm1*nxp*nyp+jm1*nxp+im1])*lon_scale )*R2D; - } - } - } - -}; /* calc_rotation_angle */ - diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/create_gnomonic_cubic_grid.c b/sorc/fre-nctools.fd/tools/make_hgrid/create_gnomonic_cubic_grid.c deleted file mode 100644 index 33b4d79a3e..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/create_gnomonic_cubic_grid.c +++ /dev/null @@ -1,1306 +0,0 @@ -#include -#include -#include -#include -#include "mpp.h" -#include "constant.h" -#include "mosaic_util.h" -#include "tool_util.h" -#include "create_hgrid.h" -#define D2R (M_PI/180.) -#define R2D (180./M_PI) -#define EPSLN10 (1.e-10) -#define EPSLN4 (1.e-4) -#define EPSLN5 (1.e-5) -#define EPSLN7 (1.e-7) -#define EPSLN8 (1.0e-8) - -/* private subroutines */ -void gnomonic_ed (int ni, double* lamda, double* theta); -void gnomonic_angl(int ni, double* lamda, double* theta); -void gnomonic_dist(int ni, double* lamda, double* theta); -void cartesian_to_spherical(double x, double y, double z, double *lon, double *lat, double *r); -void spherical_to_cartesian(double lon, double lat, double r, double *x, double *y, double *z); -void symm_ed(int ni, double *lamda, double *theta); -void mirror_grid(int ni, int ntiles, double *x, double *y ); -void mirror_latlon(double lon1, double lat1, double lon2, double lat2, double lon0, - double lat0, double *lon, double *lat); -void rot_3d(int axis, double x1in, double y1in, double z1in, double angle, double *x2out, - double *y2out, double *z2out, int degrees, int convert); -double excess_of_quad2(const double *vec1, const double *vec2, const double *vec3, const double *vec4 ); -double angle_between_vectors2(const double *vec1, const double *vec2); -void plane_normal2(const double *P1, const double *P2, double *plane); -void calc_rotation_angle2(int nxp, double *x, double *y, double *angle_dx, double *angle_dy); -void cell_center(int ni, int nj, const double *lonc, const double *latc, double *lont, double *latt); -void cell_east(int ni, int nj, const double *lonc, const double *latc, double *lone, double *late); -void cell_north(int ni, int nj, const double *lonc, const double *latc, double *lonn, double *latn); -void calc_cell_area(int nx, int ny, const double *x, const double *y, double *area); -void direct_transform(double stretch_factor, int i1, int i2, int j1, int j2, double lon_p, double lat_p, - int n, double *lon, double *lat); -void setup_aligned_nest(int parent_ni, int parent_nj, const double *parent_xc, const double *parent_yc, - int halo, int refine_ratio, int istart, int iend, int jstart, int jend, - double *xc, double *yc); - -void spherical_linear_interpolation(double beta, const double *p1, const double *p2, double *pb); - -/******************************************************************************* - void create_gnomonic_cubic_grid( int *npoints, int *nratio, char *method, char *orientation, double *x, - double *y, double *dx, double *dy, double *area, double *angle_dx, - double *angle_dy ) - create nomomic cubic grid. All six tiles grid will be generated. -*******************************************************************************/ -void create_gnomonic_cubic_grid( char* grid_type, int *nlon, int *nlat, double *x, double *y, - double *dx, double *dy, double *area, double *angle_dx, - double *angle_dy, double shift_fac, int do_schmidt, double stretch_factor, - double target_lon, double target_lat, int nest_grid, - int parent_tile, int refine_ratio, int istart_nest, - int iend_nest, int jstart_nest, int jend_nest, int halo) -{ - const int ntiles = 6; - int ntiles2, global_nest=0; - int nx, ny, nxp, nyp, ni, nj, nip, njp; - int ni_nest, nj_nest, nx_nest, ny_nest; - int istart, iend, jstart, jend; - int ni2, nj2, ni2p, nj2p, n1, n2; - int *nxl=NULL, *nyl=NULL, *nil=NULL, *njl=NULL; - int i, j, n, npts; - double p1[2], p2[2]; - double *lon=NULL, *lat=NULL; - double *xc=NULL, *yc=NULL, *xtmp=NULL, *ytmp=NULL; - double *xc2=NULL, *yc2=NULL; - int stretched_grid=0; - - /* make sure the first 6 tiles have the same grid size and - the size in x and y-direction are the same - */ - - for(n=0; n ntiles) { - nxl[ntiles] = nx_nest; - nyl[ntiles] = ny_nest; - nil[ntiles] = ni_nest; - njl[ntiles] = nj_nest; - } - - /* for global nest grid, set ni to the coarse grid size */ - if(global_nest) { - ni /= refine_ratio; - nj /= refine_ratio; - } - nip=ni+1; - njp=nj+1; - - if ( do_schmidt && fabs(stretch_factor-1.) > EPSLN5 ) stretched_grid = 1; - - lon = (double *)malloc(nip*nip*sizeof(double)); - lat = (double *)malloc(nip*nip*sizeof(double)); - - if(strcmp(grid_type, "gnomonic_ed")==0 ) - gnomonic_ed( ni, lon, lat); - else if(strcmp(grid_type,"gnomonic_dist")==0) - gnomonic_dist(ni, lon, lat); - else if(strcmp(grid_type,"gnomonic_angl")==0) - gnomonic_angl(ni, lon, lat); - else mpp_error("create_gnomonic_cubic_grid: grid type should be 'gnomonic_ed', " - "'gnomonic_dist' or 'gnomonic_angl'"); - - symm_ed(ni, lon, lat); - - - npts = ntiles*nip*nip; - if(ntiles2>ntiles) npts += (ni_nest+1)*(nj_nest+1); - - xc = (double *)malloc(npts*sizeof(double)); - yc = (double *)malloc(npts*sizeof(double)); - - for(j=0; j EPSLN4) xc[n] -= M_PI/18.; - if(xc[n] < 0.) xc[n] += 2.*M_PI; - if(fabs(xc[n]) < EPSLN10) xc[n] = 0; - if(fabs(yc[n]) < EPSLN10) yc[n] = 0; - } - - /* ensure consistency on the boundary between tiles */ - for(j=0; j 2W */ - yc[ nip*nip+j*nip] = yc[j*nip+ni]; /* 1E -> 2W */ - xc[2*nip*nip+j*nip] = xc[ni*nip+ni-j]; /* 1N -> 3W */ - yc[2*nip*nip+j*nip] = yc[ni*nip+ni-j]; /* 1N -> 3W */ - } - for(i=0; i 5N */ - yc[4*nip*nip+ni*nip+i] = yc[(ni-i)*nip]; /* 1W -> 2N */ - xc[5*nip*nip+ni*nip+i] = xc[i]; /* 1S -> 6N */ - yc[5*nip*nip+ni*nip+i] = yc[i]; /* 1S -> 6N */ - xc[2*nip*nip+i] = xc[nip*nip+ni*nip+i]; /* 2N -> 3S */ - yc[2*nip*nip+i] = yc[nip*nip+ni*nip+i]; /* 2N -> 3S */ - xc[3*nip*nip+i] = xc[nip*nip+(ni-i)*nip+ni]; /* 2E -> 4S */ - yc[3*nip*nip+i] = yc[nip*nip+(ni-i)*nip+ni]; /* 2E -> 4S */ - } - for(j=0; j 6E */ - yc[5*nip*nip+j*nip+ni] = yc[nip*nip+ni-j]; /* 2S -> 6E */ - xc[3*nip*nip+j*nip] = xc[2*nip*nip+j*nip+ni]; /* 3E -> 4W */ - yc[3*nip*nip+j*nip] = yc[2*nip*nip+j*nip+ni]; /* 3E -> 4W */ - xc[4*nip*nip+j*nip] = xc[2*nip*nip+ni*nip+ni-j]; /* 3N -> 5W */ - yc[4*nip*nip+j*nip] = yc[2*nip*nip+ni*nip+ni-j]; /* 3N -> 5W */ - } - for(i=0; i 5S */ - yc[4*nip*nip+i] = yc[3*nip*nip+ni*nip+i]; /* 4N -> 5S */ - xc[5*nip*nip+i] = xc[3*nip*nip+(ni-i)*nip+ni]; /* 4E -> 6S */ - yc[5*nip*nip+i] = yc[3*nip*nip+(ni-i)*nip+ni]; /* 4E -> 6S */ - } - for(j=0; j 6W */ - yc[5*nip*nip+j*nip] = yc[4*nip*nip+j*nip+ni]; /* 5E -> 6W */ - } - - /* Schmidt transformation */ - if ( do_schmidt ) { - for(n=0; nni2) ni2 = nil[n]; - if(njl[n]>nj2) nj2 = njl[n]; - } - ni2p = ni2+1; - nj2p = nj2+1; - xtmp = (double *)malloc(ni2p*nj2p*sizeof(double)); - ytmp = (double *)malloc(ni2p*nj2p*sizeof(double)); - - for(n=0; n 1W */ - dy[j*nxp+nx] = dy[nxp*nx+j*nxp]; /* 2W -> 1E */ - dy[nxp*nx+j*nxp+nx] = dx[3*nx*nxp+(nx-j-1)]; /* 4S -> 2E */ - dy[2*nxp*nx+j*nxp] = dx[nx*nx+nx-j-1]; /* 1N -> 3W */ - dy[2*nxp*nx+j*nxp+nx] = dy[3*nxp*nx+j*nxp]; /* 4W -> 3E */ - dy[3*nxp*nx+j*nxp+nx] = dx[5*nx*nxp+(nx-j-1)]; /* 4S -> 2E */ - dy[4*nxp*nx+j*nxp] = dx[2*nx*nxp+nx*nx+nx-j-1]; /* 3N -> 5W */ - dy[4*nxp*nx+j*nxp+nx] = dy[5*nxp*nx+j*nxp]; /* 6W -> 5E */ - dy[5*nxp*nx+j*nxp+nx] = dx[nx*nxp+(nx-j-1)]; /* 2S -> 6E */ - } - - if(do_schmidt) { /* calculate area for each tile */ - for(n=0; nntiles) calc_cell_area(nx_nest, ny_nest, x+ntiles*nxp*nyp, y+ntiles*nxp*nyp, area+ntiles*nx*ny); - - /*calculate rotation angle, just some workaround, will modify this in the future. */ - calc_rotation_angle2(nxp, x, y, angle_dx, angle_dy ); - - /* since angle is used in the model, set angle to 0 for nested region */ - if(ntiles2>ntiles) { - for(i=0; i<=(nx_nest+1)*(ny_nest+1); i++) { - angle_dx[ntiles*nxp*nxp+i]=0; - angle_dy[ntiles*nxp*nxp+i]=0; - } - } - - /* convert grid location from radians to degree */ - npts = ntiles*nxp*nyp; - if(nx_nest>0) npts += (nx_nest+1)*(ny_nest+1); - - for(i=0; i EPSLN7 ) { - sin_lat = sin(lat[l]); - lat_t = asin( (c2m1+c2p1*sin_lat)/(c2p1+c2m1*sin_lat) ); - } - else { - lat_t = lat[l]; - } - sin_lat = sin(lat_t); - cos_lat = cos(lat_t); - sin_o = -(sin_p*sin_lat + cos_p*cos_lat*cos(lon[l])); - if ( (1.-fabs(sin_o)) < EPSLN7 ) { /* poles */ - lon[l] = 0.; - lat[l] = (sin_o < 0) ? -p2:p2; - } - else { - lat[l] = asin( sin_o ); - lon[l] = lon_p + atan2(-cos_lat*sin(lon[l]), -sin_lat*cos_p+cos_lat*sin_p*cos(lon[l])); - if ( lon[l] < 0. ) - lon[l] +=two_pi; - else if( lon[l] >= two_pi ) - lon[l] -=two_pi; - } - } - -}; /* direct_transform */ - - - -/*----------------------------------------------------- - void gnomonic_ed - Equal distance along the 4 edges of the cubed sphere - ----------------------------------------------------- - Properties: - * defined by intersections of great circles - * max(dx,dy; global) / min(dx,dy; global) = sqrt(2) = 1.4142 - * Max(aspect ratio) = 1.06089 - * the N-S coordinate curves are const longitude on the 4 faces with equator - For C2000: (dx_min, dx_max) = (3.921, 5.545) in km unit - ! Ranges: - ! lamda = [0.75*pi, 1.25*pi] - ! theta = [-alpha, alpha] - --------------------------------------------------------*/ -void gnomonic_ed(int ni, double* lamda, double* theta) -{ - - int i, j, n, nip; - double dely; - double *pp, *x, *y, *z; - double rsq3, alpha; - - - nip = ni + 1; - rsq3 = 1./sqrt(3.); - alpha = asin( rsq3 ); - - dely = 2.*alpha/ni; - - /* Define East-West edges: */ - for(j=0; j=0 ? 1:-1); - x[j*nip+ip] = x1 * (x[j*nip+ip] >=0 ? 1:-1); - x[jp*nip+i] = x1 * (x[jp*nip+i] >=0 ? 1:-1); - x[jp*nip+ip] = x1 * (x[jp*nip+ip] >=0 ? 1:-1); - - y1 = 0.25 * (fabs(y[j*nip+i]) + fabs(y[j*nip+ip]) + fabs(y[jp*nip+i]) + fabs(y[jp*nip+ip]) ); - y[j*nip+i] = y1 * (y[j*nip+i] >=0 ? 1:-1); - y[j*nip+ip] = y1 * (y[j*nip+ip] >=0 ? 1:-1); - y[jp*nip+i] = y1 * (y[jp*nip+i] >=0 ? 1:-1); - y[jp*nip+ip] = y1 * (y[jp*nip+ip] >=0 ? 1:-1); - - /* force dateline/greenwich-meridion consitency */ - if( nip%2 ) { - if( i == (nip-1)/2 ) { - x[j*nip+i] = 0.0; - x[jp*nip+i] = 0.0; - } - } - } - } - - /* define the the other five tiles. */ - for(nt=1; nt(nip-1)/2) ) x2 = M_PI; - } - break; - case 3: /* tile 4 */ - ang = -180.; - rot_3d( 3, x1, y1, z1, ang, &x2, &y2, &z2, 1, 1); /* rotate about the z-axis */ - ang = 90.; - rot_3d( 1, x2, y2, z2, ang, &x1, &y1, &z1, 1, 1); /* rotate about the z-axis */ - x2=x1; - y2=y1; - z2=z1; - - /* force dateline/greenwich-meridion consitency */ - if( nip%2 ) { - if( j == (nip-1)/2 ) x2 = M_PI; - } - break; - case 4: /* tile 5 */ - ang = 90.; - rot_3d( 3, x1, y1, z1, ang, &x2, &y2, &z2, 1, 1); /* rotate about the z-axis */ - ang = 90.; - rot_3d( 2, x2, y2, z2, ang, &x1, &y1, &z1, 1, 1); /* rotate about the z-axis */ - x2=x1; - y2=y1; - z2=z1; - break; - case 5: /* tile 6 */ - ang = 90.; - rot_3d( 2, x1, y1, z1, ang, &x2, &y2, &z2, 1, 1); /* rotate about the z-axis */ - ang = 0.; - rot_3d( 3, x2, y2, z2, ang, &x1, &y1, &z1, 1, 1); /* rotate about the z-axis */ - x2=x1; - y2=y1; - z2=z1; - - /* force South Pole and dateline/greenwich-meridion consitency */ - if(nip%2) { - if( (i==(nip-1)/2) && (i==j) ) { - x2 = 0; - y2 = -M_PI*0.5; - } - - if( (i==(nip-1)/2) && (j>(nip-1)/2) ) x2 = 0; - if( (i==(nip-1)/2) && (j<(nip-1)/2) ) x2 = M_PI; - } - break; - } - x[nt*nip*nip+j*nip+i] = x2; - y[nt*nip*nip+j*nip+i] = y2; - } - } - } -}; /* mirror_grid */ - - -/*------------------------------------------------------------------------------- - void rot_3d() - rotate points on a sphere in xyz coords (convert angle from - degrees to radians if necessary) - -----------------------------------------------------------------------------*/ -void rot_3d(int axis, double x1in, double y1in, double z1in, double angle, double *x2out, - double *y2out, double *z2out, int degrees, int convert) -{ - - double x1, y1, z1, x2, y2, z2, c, s; - - if(convert) - spherical_to_cartesian(x1in, y1in, z1in, &x1, &y1, &z1); - else { - x1=x1in; - y1=y1in; - z1=z1in; - } - - if(degrees) angle = angle*D2R; - - c = cos(angle); - s = sin(angle); - - switch (axis) { - case 1: - x2 = x1; - y2 = c*y1 + s*z1; - z2 = -s*y1 + c*z1; - break; - case 2: - x2 = c*x1 - s*z1; - y2 = y1; - z2 = s*x1 + c*z1; - break; - case 3: - x2 = c*x1 + s*y1; - y2 = -s*x1 + c*y1; - z2 = z1; - break; - default: - mpp_error("Invalid axis: must be 1 for X, 2 for Y, 3 for Z."); - } - - if(convert) - cartesian_to_spherical(x2, y2, z2, x2out, y2out, z2out); - else { - *x2out=x2;; - *y2out=y2; - *z2out=z2; - } -} /* rot_3d */ - -/*------------------------------------------------------------- - void cartesian_to_spherical(x, y, z, lon, lat, r) - may merge with xyz2latlon in the future - ------------------------------------------------------------*/ -void cartesian_to_spherical(double x, double y, double z, double *lon, double *lat, double *r) -{ - - *r = sqrt(x*x + y*y + z*z); - if ( (fabs(x) + fabs(y)) < EPSLN10 ) /* poles */ - *lon = 0.; - else - *lon = atan2(y,x); /* range: [-pi,pi] */ - - - *lat = acos(z/(*r)) - M_PI/2.; -};/* cartesian_to_spherical */ - -/*------------------------------------------------------------------------------- - void spherical_to_cartesian - convert from spheircal coordinates to xyz coords - may merge with latlon2xyz in the future - -----------------------------------------------------------------------------*/ -void spherical_to_cartesian(double lon, double lat, double r, double *x, double *y, double *z) -{ - *x = r * cos(lon) * cos(lat); - *y = r * sin(lon) * cos(lat); - - *z = -r * sin(lat); -} /* spherical_to_cartesian */ - - -/***************************************************************** - double* excess_of_quad(int ni, int nj, double *vec1, double *vec2, - double *vec3, double *vec4 ) -*******************************************************************/ -double excess_of_quad2(const double *vec1, const double *vec2, const double *vec3, const double *vec4 ) -{ - double plane1[3], plane2[3], plane3[3], plane4[3]; - double angle12, angle23, angle34, angle41, excess; - double ang12, ang23, ang34, ang41; - - plane_normal2(vec1, vec2, plane1); - plane_normal2(vec2, vec3, plane2); - plane_normal2(vec3, vec4, plane3); - plane_normal2(vec4, vec1, plane4); - angle12 = angle_between_vectors2(plane2,plane1); - angle23 = angle_between_vectors2(plane3,plane2); - angle34 = angle_between_vectors2(plane4,plane3); - angle41 = angle_between_vectors2(plane1,plane4); - ang12 = M_PI-angle12; - ang23 = M_PI-angle23; - ang34 = M_PI-angle34; - ang41 = M_PI-angle41; - excess = ang12+ang23+ang34+ang41-2*M_PI; - /* excess = 2*M_PI - angle12 - angle23 - angle34 - angle41; */ - - return excess; - -}; /* excess_of_quad */ - -/******************************************************************************* -double angle_between_vectors(const double *vec1, const double *vec2) -*******************************************************************************/ - -double angle_between_vectors2(const double *vec1, const double *vec2) { - int n; - double vector_prod, nrm1, nrm2; - double angle; - - vector_prod=vec1[0]*vec2[0] + vec1[1]*vec2[1] + vec1[2]*vec2[2]; - nrm1=pow(vec1[0],2)+pow(vec1[1],2)+pow(vec1[2],2); - nrm2=pow(vec2[0],2)+pow(vec2[1],2)+pow(vec2[2],2); - if(nrm1*nrm2>0) - angle = acos( vector_prod/sqrt(nrm1*nrm2) ); - else - angle = 0; - - return angle; -}; /* angle_between_vectors */ - - -/*********************************************************************** - double* plane_normal(int ni, int nj, double *P1, double *P2) -***********************************************************************/ - -void plane_normal2(const double *P1, const double *P2, double *plane) -{ - double mag; - - plane[0] = P1[1] * P2[2] - P1[2] * P2[1]; - plane[1] = P1[2] * P2[0] - P1[0] * P2[2]; - plane[2] = P1[0] * P2[1] - P1[1] * P2[0]; - mag=sqrt(pow(plane[0],2) + pow(plane[1],2) + pow(plane[2],2)); - if(mag>0) { - plane[0]=plane[0]/mag; - plane[1]=plane[1]/mag; - plane[2]=plane[2]/mag; - } - -}; /* plane_normal */ - -/****************************************************************** - - void calc_rotation_angle() - -******************************************************************/ - -void calc_rotation_angle2(int nxp, double *x, double *y, double *angle_dx, double *angle_dy) -{ - int ip1, im1, jp1, jm1, tp1, tm1, i, j, n, ntiles, nx; - double lon_scale; - - nx = nxp-1; - ntiles = 6; - for(n=0; n= nxp) { /* find the neighbor tile. */ - if(n % 2 == 0) { /* tile 1, 3, 5 */ - tp1 = n+1; - ip1 = 0; - } - else { /* tile 2, 4, 6 */ - tp1 = n+2; - if(tp1 >= ntiles) tp1 -= ntiles; - ip1 = nx-j-1; - jp1 = 0; - } - } - if(im1 < 0) { /* find the neighbor tile. */ - if(n % 2 == 0) { /* tile 1, 3, 5 */ - tm1 = n-2; - if(tm1 < 0) tm1 += ntiles; - jm1 = nx; - im1 = nx-j; - } - else { /* tile 2, 4, 6 */ - tm1 = n-1; - im1 = nx; - } - } - - angle_dx[n*nxp*nxp+j*nxp+i] = atan2(y[tp1*nxp*nxp+jp1*nxp+ip1]-y[tm1*nxp*nxp+jm1*nxp+im1], - (x[tp1*nxp*nxp+jp1*nxp+ip1]-x[tm1*nxp*nxp+jm1*nxp+im1])*lon_scale )*R2D; - tp1 = n; - tm1 = n; - ip1 = i; - im1 = i; - jp1 = j+1; - jm1 = j-1; - if(jp1 >=nxp) { /* find the neighbor tile. */ - if(n % 2 == 0) { /* tile 1, 3, 5 */ - tp1 = n+2; - if(tp1 >= ntiles) tp1 -= ntiles; - jp1 = nx-i; - ip1 = 0; - } - else { /* tile 2, 4, 6 */ - tp1 = n+1; - if(tp1 >= ntiles) tp1 -= ntiles; - jp1 = 0; - } - } - if(jm1 < 0) { /* find the neighbor tile. */ - if(n % 2 == 0) { /* tile 1, 3, 5 */ - tm1 = n-1; - if(tm1 < 0) tm1 += ntiles; - jm1 = nx; - } - else { /* tile 2, 4, 6 */ - tm1 = n-2; - if(tm1 < 0) tm1 += ntiles; - im1 = nx; - jm1 = nx-i; - } - } - - angle_dy[n*nxp*nxp+j*nxp+i] = atan2(y[tp1*nxp*nxp+jp1*nxp+ip1]-y[tm1*nxp*nxp+jm1*nxp+im1], - (x[tp1*nxp*nxp+jp1*nxp+ip1]-x[tm1*nxp*nxp+jm1*nxp+im1])*lon_scale )*R2D; - } - } - } - -}; /* calc_rotation_angle2 */ - - -/* This routine calculate center location based on the vertices location */ -void cell_center(int ni, int nj, const double *lonc, const double *latc, double *lont, double *latt) -{ - - int nip, njp, i, j, p, p1, p2, p3, p4; - double *xc, *yc, *zc, *xt, *yt, *zt; - double dd; - - nip = ni+1; - njp = nj+1; - xc = (double *)malloc(nip*njp*sizeof(double)); - yc = (double *)malloc(nip*njp*sizeof(double)); - zc = (double *)malloc(nip*njp*sizeof(double)); - xt = (double *)malloc(ni *nj *sizeof(double)); - yt = (double *)malloc(ni *nj *sizeof(double)); - zt = (double *)malloc(ni *nj *sizeof(double)); - latlon2xyz(nip*njp, lonc, latc, xc, yc, zc); - - for(j=0; j parent_nj || (iend + halo) > parent_ni ) - mpp_error("create_gnomonic_cubic_grid(setup_aligned_nest): nested grid lies outside its parent"); - - ni = (iend-istart+1)*refine_ratio; - nj = (jend-jstart+1)*refine_ratio; - npi = ni+1; - npj = nj+1; - parent_npi = parent_ni+1; - - for(j=0; j two_pi ) xc[j*npi+i] -= two_pi; - if( xc[j*npi+i] < 0. ) xc[j*npi+i] += two_pi; - } - } - -} - diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/create_grid_from_file.c b/sorc/fre-nctools.fd/tools/make_hgrid/create_grid_from_file.c deleted file mode 100644 index 9d08aac9db..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/create_grid_from_file.c +++ /dev/null @@ -1,442 +0,0 @@ -/* - Copyright 2011 NOAA Geophysical Fluid Dynamics Lab, Princeton, NJ - This program is distributed under the terms of the GNU General Public - License. See the file COPYING contained in this directory -*/ -#include -#include -#include -#include -#include -#include "mpp.h" -#include "mosaic_util.h" -#include "tool_util.h" -#include "constant.h" -#include "mpp_io.h" -#include "create_hgrid.h" -#define D2R (M_PI/180.) -#define R2D (180./M_PI) - -void create_grid_from_text_file( char *file, int *nlon, int *nlat, double *x, double *y, double *dx, double *dy, - double *area, double *angle_dx ); -void get_grid_v1(int fid, double *xt, double *yt, double *xc, double *yc); -void get_grid_v2(int fid, int nlon, int nlat, double *xt, double *yt, double *xc, double *yc); -void get_grid_v3(int fid, int nlon, int nlat, double *xt, double *yt, double *xc, double *yc); -void get_grid_v4(int fid, int nlon, int nlat, double *xt, double *yt, double *xc, double *yc); - -/*********************************************************************** - void create_grid_from_file( char *file, int *nlon, int *nlat, double *x, double *y, double *dx, - double *dy, double *area, double *angle_dx ) - the grid location is defined through ascii file. calculate cell length, - cell area and rotation angle -************************************************************************/ -void create_grid_from_file( char *file, int *nlon, int *nlat, double *x, double *y, double *dx, double *dy, - double *area, double *angle_dx, int use_great_circle_algorithm ) -{ - double *xt, *yt, *xc, *yc; - double p1[4], p2[4], cart_x[4], cart_y[4], cart_z[4]; - int nx, ny, nxp, nyp, ni, nj, i, j, n; - int is_uniform; - char mesg[256], txt[128]; - - /************************************************************ - identify the grid_file is ascii file or netcdf file, - if the file name contains ".nc", it is a netcdf file, - otherwise it is ascii file. - *********************************************************/ - nx = *nlon; - ny = *nlat; - nxp = nx + 1; - nyp = ny + 1; - if(strstr(file, ".nc") ) { - int fid, vid; - - ni = *nlon/2; - nj = *nlat/2; - xc = (double *)malloc((ni+1)*(nj+1)*sizeof(double)); - yc = (double *)malloc((ni+1)*(nj+1)*sizeof(double)); - xt = (double *)malloc( ni * nj *sizeof(double)); - yt = (double *)malloc( ni * nj *sizeof(double)); - - fid = mpp_open(file, MPP_READ); - if(mpp_dim_exist(fid, "grid_xt") ) - get_grid_v1(fid, xt, yt, xc, yc); - else if(mpp_dim_exist(fid, "rlon") || mpp_dim_exist(fid, "i") ) - get_grid_v2(fid, ni, nj, xt, yt, xc, yc); - else if(mpp_dim_exist(fid, "lon") ) - get_grid_v3(fid, ni, nj, xt, yt, xc, yc); - else if(mpp_dim_exist(fid, "x") ) - get_grid_v4(fid, ni, nj, xt, yt, xc, yc); - - mpp_close(fid); - for(j=0; j 0) lon[i] -= 360; - xt[i] = lon[i]; - yt[i] = lat[i]; - lon[i] *= D2R; - lat[i] *= D2R; - } - - - n = log(cos(phi1)/cos(phi2))/log(tan(0.25*M_PI+0.5*phi2)/tan(0.25*M_PI+0.5*phi1)); - F = cos(phi1)*pow(tan(0.25*M_PI+0.5*phi1),n); - rho0 = F*pow(1/tan(0.25*M_PI+0.5*central_lat),n); - for(i=0; i 1.e-6 ) { - printf(" i = %d, j = %d, x1 = %g, x2 = %g \n", i, j, x1[j*nlon+i], x1[i]); - mpp_error(" x is not uniform \n"); - } - } - } - - printf(" x is uniform \n \n \n"); - - for(j=0; i 1.e-6 ) { - printf(" i = %d, j = %d, x1 = %g, x2 = %g \n", i, j, y1[j*nlon+i], y1[j*nlon]); - mpp_error(" y is not uniform \n"); - } - } - } - - printf(" y is uniform \n \n \n"); - - /* get the x and y value at corner */ - - x2 = (double *)malloc((nlon+1)*(nlat+1)*sizeof(double)); - y2 = (double *)malloc((nlon+1)*(nlat+1)*sizeof(double)); - - for(i=1; i -#include -#include -#include -#include -#include "mpp.h" -#include "mosaic_util.h" -#include "interp.h" -#include "tool_util.h" -#include "constant.h" -#include "create_hgrid.h" -#define D2R (M_PI/180.) -#define R2D (180./M_PI) - -/********************************************************************************* - some private routines used in this file -*********************************************************************************/ -void set_regular_lonlat_grid( int nxp, int nyp, int isc, int iec, int jsc, int jec, double *xb, double *yb, - double *x, double *y, double *dx, double *dy, double *area, double *angle, - int use_great_circle_algorithm); -void set_f_plane_grid( int nxp, int nyp, int isc, int iec, int jsc, int jec, double *xb, double *yb, double f_plane_latitude, - double *x, double *y, double *dx, double *dy, double *area, double *angle); -double cartesian_dist(double x1, double y1, double x2, double y2, double f_plane_latitude); -double cartesian_box_area(double x1, double y1, double x2, double y2, double f_plane_latitude); - -/************************************************************************************ - void create_regular_lonlat_grid( int *nxbnds, int *nybnds, double *xbnds, double *ybnds, - int *nlon, int *nlat, int *isc, int *iec, - int *jsc, int *jec, double *x, double *y, double *dx, - double *dy, double *area, double *angle_dx, int use_great_circle_algorithm ) - calculate grid location, length, area and rotation angle. - The routine takes the following arguments - - INPUT: - - OUTPUT: - -************************************************************************************/ -void create_regular_lonlat_grid( int *nxbnds, int *nybnds, double *xbnds, double *ybnds, - int *nlon, int *nlat, double *dlon, double *dlat, - int use_legacy, int *isc, int *iec, - int *jsc, int *jec, double *x, double *y, double *dx, - double *dy, double *area, double *angle_dx, const char *center, - int use_great_circle_algorithm) -{ - int nx, ny, nxp, nyp, nxb, nyb; - double *xb=NULL, *yb=NULL; - int refine; - double stretch = 1; - - /* use cubic-spline interpolation algorithm to calculate nominal zonal grid location. */ - nxb = *nxbnds; - nyb = *nybnds; - - if( use_legacy ) { - xb = compute_grid_bound_legacy(nxb, xbnds, dlon, stretch, &nx, center); - yb = compute_grid_bound_legacy(nyb, ybnds, dlat, stretch, &ny, center); - } - else { - xb = compute_grid_bound(nxb, xbnds, nlon, &nx, center); - yb = compute_grid_bound(nyb, ybnds, nlat, &ny, center); - } - nxp = nx + 1; - nyp = ny + 1; - /* - Test if left and right hand resolutions differ. Inform user of potential problem. - */ - if ( fabs(xb[1] - xb[0] - xb[nx] + xb[nx-1])/(xb[1] - xb[0]) > 1.e-6 ) { - printf("%d\n",nxp); - printf("%s\n" ,"Note: End point resolutions differ for x-axis. Not suitable for periodic axes"); - printf("%s\n" ," See documentation for generating periodic axes when center = 'c_cell'"); - } - - if ( fabs(yb[1] - yb[0] - yb[ny] + yb[ny-1])/(yb[1] - yb[0]) > 1.e-6 ) { - printf("%d\n",nyp); - printf("%s\n" ,"Note: End point resolutions differ for y-axis. Not suitable for periodic axes"); - printf("%s\n" ," See documentation for generating periodic axes when center = 'c_cell'"); - } - - set_regular_lonlat_grid( nxp, nyp, *isc, *iec, *jsc, *jec, xb, yb, x, y, dx, dy, area, angle_dx, use_great_circle_algorithm); - free(xb); - free(yb); - -}; /* create_regular_lonlat_grid */ - - -/************************************************************************************ - void create_simple_cartesian_grid( double *xbnds, double *ybnds, int *nlon, int *nlat, - double *simple_dx, *simple_dy, int *isc, int *iec, - int *jsc, int *jec, double *x, double *y, - double *dx, double *dy, double *area, double *angle_dx ) - calculate grid location, length, area and rotation angle. - The routine takes the following arguments - - INPUT: - - OUTPUT: - -************************************************************************************/ -void create_simple_cartesian_grid( double *xbnds, double *ybnds, int *nlon, int *nlat, - double *simple_dx, double *simple_dy, int *isc, int *iec, - int *jsc, int *jec, double *x, double *y, - double *dx, double *dy, double *area, double *angle_dx ) -{ - int nx, ny, nxp, nyp, i, j, n, nxc, nyc, nxb, nyb; - double *grid1=NULL, *grid2=NULL, *xb=NULL, *yb=NULL; - - nxb = 2; - nyb = 2; - nx = *nlon; - ny = *nlat; - nxp = nx + 1; - nyp = ny + 1; - /* use cubic-spline interpolation algorithm to calculate nominal zonal grid location. */ - xb = (double *)malloc(nxp*sizeof(double)); - grid1 = (double *)malloc(nxb*sizeof(double)); - grid1[0] = 1; - grid1[1] = nxp; - grid2 = (double *)malloc(nxp*sizeof(double)); - for(i=0;i 1.e-6 ) { - printf("%d\n",nxp); - printf("%s\n" ,"Note: End point resolutions differ for x-axis. Not suitable for periodic axes"); - printf("%s\n" ," See documentation for generating periodic axes when center = 'c_cell'"); - } - - n = 0; - for(j=0; j 1.e-6 ) { - printf("%d\n",nxp); - printf("%s\n" ,"Note: End point resolutions differ for x-axis. Not suitable for periodic axes"); - printf("%s\n" ," See documentation for generating periodic axes when center = 'c_cell'"); - } - - if ( fabs(yb[1] - yb[0] - yb[ny] + yb[ny-1])/(yb[1] - yb[0]) > 1.e-6 ) { - printf("%d\n",nyp); - printf("%s\n" ,"Note: End point resolutions differ for y-axis. Not suitable for periodic axes"); - printf("%s\n" ," See documentation for generating periodic axes when center = 'c_cell'"); - } - - set_f_plane_grid( nxp, nyp, *isc, *iec, *jsc, *jec, xb, yb, f_plane_latitude, x, y, dx, dy, area, angle_dx); - free(xb); - free(yb); - -}; /* create_f_plane_grid */ - - -/* distance between cartesian grid on the earth */ -double cartesian_dist(double x1, double y1, double x2, double y2, double f_plane_latitude) -{ - double dist = 0.0; - - if(x1 == x2) - dist = fabs(y2-y1)*D2R*RADIUS; - else if(y1 == y2) - dist = fabs(x2-x1)*D2R*RADIUS*cos(f_plane_latitude*D2R); - else - mpp_error("create_lonlat_grid: This is not rectangular grid"); - - return dist; -} - - -/* rectangular grid box area for cartesian grid */ -double cartesian_box_area(double x1, double y1, double x2, double y2, double f_plane_latitude) -{ - double area=0; - double dx, dy; - dx = x2-x1; - dx = dx * D2R; - - dy = y2-y1; - dy = dy * D2R; - area = dx*dy*cos(f_plane_latitude*D2R)*RADIUS*RADIUS; - - return area; -} - diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/env.cray b/sorc/fre-nctools.fd/tools/make_hgrid/env.cray deleted file mode 100644 index 42e7137c52..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/env.cray +++ /dev/null @@ -1,4 +0,0 @@ -# ORNL uses the cc wrapper -MPICC := cc -CC := cc -STATIC := -static diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/env.cshrc b/sorc/fre-nctools.fd/tools/make_hgrid/env.cshrc deleted file mode 100644 index 4dcbd0dd70..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/env.cshrc +++ /dev/null @@ -1,7 +0,0 @@ -module load fre/bronx-10 -module load intel_compilers/11.1.073 mpich2/1.2.1p1 -setenv SITE pan - -alias make make HDF5_HOME=/usr/local/hdf5-1.8.8_optimized NETCDF_HOME=/usr/local/netcdf-4.2_optimized -f fre-nctools.mk - - diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/env.gaea b/sorc/fre-nctools.fd/tools/make_hgrid/env.gaea deleted file mode 100644 index 42e7137c52..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/env.gaea +++ /dev/null @@ -1,4 +0,0 @@ -# ORNL uses the cc wrapper -MPICC := cc -CC := cc -STATIC := -static diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/env.gfdl-ws b/sorc/fre-nctools.fd/tools/make_hgrid/env.gfdl-ws deleted file mode 100644 index 3d742259a5..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/env.gfdl-ws +++ /dev/null @@ -1,6 +0,0 @@ -LIBS2 := -CLIBS2 := - -# GFDL uses the mpicc wrapper and Intel icc -MPICC := mpicc -CC := icc diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/env.jet b/sorc/fre-nctools.fd/tools/make_hgrid/env.jet deleted file mode 100644 index 28bf431ee5..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/env.jet +++ /dev/null @@ -1,7 +0,0 @@ -CLIBS_SITE := -CFLAGS_SITE := - -# GFDL uses the mpicc wrapper and Intel icc -MPICC := mpicc -CC := icc -NETCDF_HOME = $(NETCDF_DIR) diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/env.pan b/sorc/fre-nctools.fd/tools/make_hgrid/env.pan deleted file mode 100644 index 3d742259a5..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/env.pan +++ /dev/null @@ -1,6 +0,0 @@ -LIBS2 := -CLIBS2 := - -# GFDL uses the mpicc wrapper and Intel icc -MPICC := mpicc -CC := icc diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/env.theia b/sorc/fre-nctools.fd/tools/make_hgrid/env.theia deleted file mode 100644 index 6c090e2e25..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/env.theia +++ /dev/null @@ -1,4 +0,0 @@ -# theia -MPICC := mpiicc -CC := icc -STATIC := diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/env.wcoss b/sorc/fre-nctools.fd/tools/make_hgrid/env.wcoss deleted file mode 100644 index e6f023dfb7..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/env.wcoss +++ /dev/null @@ -1,3 +0,0 @@ -# ORNL uses the cc wrapper -MPICC := mpiicc -CC := icc diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/env.wcoss_dell_p3 b/sorc/fre-nctools.fd/tools/make_hgrid/env.wcoss_dell_p3 deleted file mode 100644 index 6c090e2e25..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/env.wcoss_dell_p3 +++ /dev/null @@ -1,4 +0,0 @@ -# theia -MPICC := mpiicc -CC := icc -STATIC := diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/env.zeus b/sorc/fre-nctools.fd/tools/make_hgrid/env.zeus deleted file mode 100644 index 3d742259a5..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/env.zeus +++ /dev/null @@ -1,6 +0,0 @@ -LIBS2 := -CLIBS2 := - -# GFDL uses the mpicc wrapper and Intel icc -MPICC := mpicc -CC := icc diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_cray b/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_cray deleted file mode 100644 index 3274f74bfe..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_cray +++ /dev/null @@ -1,98 +0,0 @@ -# -# $Id: fre-nctools.mk,v 20.0 2013/12/14 00:33:28 fms Exp $ -# ------------------------------------------------------------------------------ -# FMS/FRE Project: Makefile to Build Regridding Executables -# ------------------------------------------------------------------------------ -# afy Ver 1.00 Initial version (Makefile, ver 17.0.4.2) June 10 -# afy Ver 1.01 Add rules to build MPI-based executable June 10 -# afy Ver 1.02 Simplified according to fre-nctools standards June 10 -# ------------------------------------------------------------------------------ -# Copyright (C) NOAA Geophysical Fluid Dynamics Laboratory, 2009-2011 -# This program is distributed under the terms of the GNU General Public -# License. See the file COPYING contained in this directory -# -# Designed and written by V. Balaji, Amy Langenhorst and Aleksey Yakovlev -# -include env.$(SITE) - -#MPICC := mpicc -#CC := icc -CFLAGS := -O3 -traceback -CFLAGS_O2:= -O2 -traceback -INCLUDES := -I${NETCDF_HOME}/include -I./ -I../shared -I../../shared/mosaic -CLIBS := -L${NETCDF_HOME}/lib -L${HDF5_HOME}/lib -lnetcdf -lhdf5_hl -lhdf5 -lz -limf $(CLIBS2) $(STATIC) - -TARGETS := make_hgrid make_hgrid_parallel - -SOURCES := make_hgrid.c create_conformal_cubic_grid.c create_gnomonic_cubic_grid.c create_grid_from_file.c create_lonlat_grid.c -SOURCES += mpp_domain.c mpp_io.c tool_util.c -SOURCES += read_mosaic.c create_xgrid.c interp.c - -OBJECTS := $(SOURCES:c=o) - -HEADERS = fre-nctools.mk ../shared/mpp.h ../shared/mpp_domain.h ../shared/mpp_io.h ../shared/tool_util.h \ - ../../shared/mosaic/constant.h ../../shared/mosaic/create_xgrid.h \ - ../../shared/mosaic/interp.h ../../shared/mosaic/mosaic_util.h \ - ../../shared/mosaic/read_mosaic.h ./create_hgrid.h - -all: $(TARGETS) - -make_hgrid: $(OBJECTS) mosaic_util.o mpp.o - $(CC) -o $@ $^ $(CLIBS) - -make_hgrid_parallel: $(OBJECTS) mosaic_util_parallel.o mpp_parallel.o - $(MPICC) -o $@ $^ $(CLIBS) - -make_hgrid.o: make_hgrid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_gnomonic_cubic_grid.o: create_gnomonic_cubic_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_conformal_cubic_grid.o: create_conformal_cubic_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_lonlat_grid.o: create_lonlat_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_grid_from_file.o: create_grid_from_file.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util_parallel.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(MPICC) -Duse_libMPI $(CFLAGS) $(INCLUDES) -o $@ -c $< - -read_mosaic.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -read_mosaic_parallel.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(MPICC) -Duse_libMPI -Duse_netCDF $(CFLAGS) $(INCLUDES) -o $@ -c $< - -interp.o: ../../shared/mosaic/interp.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -mpp_io.o: ../shared/mpp_io.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_domain.o: ../shared/mpp_domain.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp.o: ../shared/mpp.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_parallel.o: ../shared/mpp.c $(HEADERS) - $(MPICC) -Duse_libMPI $(CFLAGS) $(INCLUDES) -o $@ -c $< - -tool_util.o: ../shared/tool_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -create_xgrid.o: ../../shared/mosaic/create_xgrid.c $(HEADERS) - $(CC) $(CFLAGS_O2) $(INCLUDES) -c $< - -%.o: %.c - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -clean: - -rm -f *.o $(TARGETS) diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_theia b/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_theia deleted file mode 100644 index 2624c2e6ec..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_theia +++ /dev/null @@ -1,98 +0,0 @@ -# -# $Id: fre-nctools.mk,v 20.0 2013/12/14 00:33:28 fms Exp $ -# ------------------------------------------------------------------------------ -# FMS/FRE Project: Makefile to Build Regridding Executables -# ------------------------------------------------------------------------------ -# afy Ver 1.00 Initial version (Makefile, ver 17.0.4.2) June 10 -# afy Ver 1.01 Add rules to build MPI-based executable June 10 -# afy Ver 1.02 Simplified according to fre-nctools standards June 10 -# ------------------------------------------------------------------------------ -# Copyright (C) NOAA Geophysical Fluid Dynamics Laboratory, 2009-2011 -# This program is distributed under the terms of the GNU General Public -# License. See the file COPYING contained in this directory -# -# Designed and written by V. Balaji, Amy Langenhorst and Aleksey Yakovlev -# -include env.$(SITE) - -#MPICC := mpicc -#CC := icc -CFLAGS := -O3 -CFLAGS_O2:= -O2 -INCLUDES := -I${NETCDF_HOME}/include -I./ -I../shared -I../../shared/mosaic -CLIBS := -L${NETCDF_HOME}/lib -L${HDF5_HOME}/lib -lnetcdf -lhdf5_hl -lhdf5 -limf $(CLIBS2) $(STATIC) - -TARGETS := make_hgrid make_hgrid_parallel - -SOURCES := make_hgrid.c create_conformal_cubic_grid.c create_gnomonic_cubic_grid.c create_grid_from_file.c create_lonlat_grid.c -SOURCES += mpp_domain.c mpp_io.c tool_util.c -SOURCES += read_mosaic.c create_xgrid.c interp.c - -OBJECTS := $(SOURCES:c=o) - -HEADERS = fre-nctools.mk ../shared/mpp.h ../shared/mpp_domain.h ../shared/mpp_io.h ../shared/tool_util.h \ - ../../shared/mosaic/constant.h ../../shared/mosaic/create_xgrid.h \ - ../../shared/mosaic/interp.h ../../shared/mosaic/mosaic_util.h \ - ../../shared/mosaic/read_mosaic.h ./create_hgrid.h - -all: $(TARGETS) - -make_hgrid: $(OBJECTS) mosaic_util.o mpp.o - $(CC) -o $@ $^ $(CLIBS) - -make_hgrid_parallel: $(OBJECTS) mosaic_util_parallel.o mpp_parallel.o - $(MPICC) -o $@ $^ $(CLIBS) - -make_hgrid.o: make_hgrid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_gnomonic_cubic_grid.o: create_gnomonic_cubic_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_conformal_cubic_grid.o: create_conformal_cubic_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_lonlat_grid.o: create_lonlat_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_grid_from_file.o: create_grid_from_file.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util_parallel.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(MPICC) -Duse_libMPI $(CFLAGS) $(INCLUDES) -o $@ -c $< - -read_mosaic.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -read_mosaic_parallel.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(MPICC) -Duse_libMPI -Duse_netCDF $(CFLAGS) $(INCLUDES) -o $@ -c $< - -interp.o: ../../shared/mosaic/interp.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -mpp_io.o: ../shared/mpp_io.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_domain.o: ../shared/mpp_domain.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp.o: ../shared/mpp.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_parallel.o: ../shared/mpp.c $(HEADERS) - $(MPICC) -Duse_libMPI $(CFLAGS) $(INCLUDES) -o $@ -c $< - -tool_util.o: ../shared/tool_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -create_xgrid.o: ../../shared/mosaic/create_xgrid.c $(HEADERS) - $(CC) $(CFLAGS_O2) $(INCLUDES) -c $< - -%.o: %.c - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -clean: - -rm -f *.o $(TARGETS) diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_wcoss b/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_wcoss deleted file mode 100644 index 3274f74bfe..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_wcoss +++ /dev/null @@ -1,98 +0,0 @@ -# -# $Id: fre-nctools.mk,v 20.0 2013/12/14 00:33:28 fms Exp $ -# ------------------------------------------------------------------------------ -# FMS/FRE Project: Makefile to Build Regridding Executables -# ------------------------------------------------------------------------------ -# afy Ver 1.00 Initial version (Makefile, ver 17.0.4.2) June 10 -# afy Ver 1.01 Add rules to build MPI-based executable June 10 -# afy Ver 1.02 Simplified according to fre-nctools standards June 10 -# ------------------------------------------------------------------------------ -# Copyright (C) NOAA Geophysical Fluid Dynamics Laboratory, 2009-2011 -# This program is distributed under the terms of the GNU General Public -# License. See the file COPYING contained in this directory -# -# Designed and written by V. Balaji, Amy Langenhorst and Aleksey Yakovlev -# -include env.$(SITE) - -#MPICC := mpicc -#CC := icc -CFLAGS := -O3 -traceback -CFLAGS_O2:= -O2 -traceback -INCLUDES := -I${NETCDF_HOME}/include -I./ -I../shared -I../../shared/mosaic -CLIBS := -L${NETCDF_HOME}/lib -L${HDF5_HOME}/lib -lnetcdf -lhdf5_hl -lhdf5 -lz -limf $(CLIBS2) $(STATIC) - -TARGETS := make_hgrid make_hgrid_parallel - -SOURCES := make_hgrid.c create_conformal_cubic_grid.c create_gnomonic_cubic_grid.c create_grid_from_file.c create_lonlat_grid.c -SOURCES += mpp_domain.c mpp_io.c tool_util.c -SOURCES += read_mosaic.c create_xgrid.c interp.c - -OBJECTS := $(SOURCES:c=o) - -HEADERS = fre-nctools.mk ../shared/mpp.h ../shared/mpp_domain.h ../shared/mpp_io.h ../shared/tool_util.h \ - ../../shared/mosaic/constant.h ../../shared/mosaic/create_xgrid.h \ - ../../shared/mosaic/interp.h ../../shared/mosaic/mosaic_util.h \ - ../../shared/mosaic/read_mosaic.h ./create_hgrid.h - -all: $(TARGETS) - -make_hgrid: $(OBJECTS) mosaic_util.o mpp.o - $(CC) -o $@ $^ $(CLIBS) - -make_hgrid_parallel: $(OBJECTS) mosaic_util_parallel.o mpp_parallel.o - $(MPICC) -o $@ $^ $(CLIBS) - -make_hgrid.o: make_hgrid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_gnomonic_cubic_grid.o: create_gnomonic_cubic_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_conformal_cubic_grid.o: create_conformal_cubic_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_lonlat_grid.o: create_lonlat_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_grid_from_file.o: create_grid_from_file.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util_parallel.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(MPICC) -Duse_libMPI $(CFLAGS) $(INCLUDES) -o $@ -c $< - -read_mosaic.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -read_mosaic_parallel.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(MPICC) -Duse_libMPI -Duse_netCDF $(CFLAGS) $(INCLUDES) -o $@ -c $< - -interp.o: ../../shared/mosaic/interp.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -mpp_io.o: ../shared/mpp_io.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_domain.o: ../shared/mpp_domain.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp.o: ../shared/mpp.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_parallel.o: ../shared/mpp.c $(HEADERS) - $(MPICC) -Duse_libMPI $(CFLAGS) $(INCLUDES) -o $@ -c $< - -tool_util.o: ../shared/tool_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -create_xgrid.o: ../../shared/mosaic/create_xgrid.c $(HEADERS) - $(CC) $(CFLAGS_O2) $(INCLUDES) -c $< - -%.o: %.c - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -clean: - -rm -f *.o $(TARGETS) diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_wcoss_dell_p3 b/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_wcoss_dell_p3 deleted file mode 100644 index 3274f74bfe..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/fre-nctools.mk_wcoss_dell_p3 +++ /dev/null @@ -1,98 +0,0 @@ -# -# $Id: fre-nctools.mk,v 20.0 2013/12/14 00:33:28 fms Exp $ -# ------------------------------------------------------------------------------ -# FMS/FRE Project: Makefile to Build Regridding Executables -# ------------------------------------------------------------------------------ -# afy Ver 1.00 Initial version (Makefile, ver 17.0.4.2) June 10 -# afy Ver 1.01 Add rules to build MPI-based executable June 10 -# afy Ver 1.02 Simplified according to fre-nctools standards June 10 -# ------------------------------------------------------------------------------ -# Copyright (C) NOAA Geophysical Fluid Dynamics Laboratory, 2009-2011 -# This program is distributed under the terms of the GNU General Public -# License. See the file COPYING contained in this directory -# -# Designed and written by V. Balaji, Amy Langenhorst and Aleksey Yakovlev -# -include env.$(SITE) - -#MPICC := mpicc -#CC := icc -CFLAGS := -O3 -traceback -CFLAGS_O2:= -O2 -traceback -INCLUDES := -I${NETCDF_HOME}/include -I./ -I../shared -I../../shared/mosaic -CLIBS := -L${NETCDF_HOME}/lib -L${HDF5_HOME}/lib -lnetcdf -lhdf5_hl -lhdf5 -lz -limf $(CLIBS2) $(STATIC) - -TARGETS := make_hgrid make_hgrid_parallel - -SOURCES := make_hgrid.c create_conformal_cubic_grid.c create_gnomonic_cubic_grid.c create_grid_from_file.c create_lonlat_grid.c -SOURCES += mpp_domain.c mpp_io.c tool_util.c -SOURCES += read_mosaic.c create_xgrid.c interp.c - -OBJECTS := $(SOURCES:c=o) - -HEADERS = fre-nctools.mk ../shared/mpp.h ../shared/mpp_domain.h ../shared/mpp_io.h ../shared/tool_util.h \ - ../../shared/mosaic/constant.h ../../shared/mosaic/create_xgrid.h \ - ../../shared/mosaic/interp.h ../../shared/mosaic/mosaic_util.h \ - ../../shared/mosaic/read_mosaic.h ./create_hgrid.h - -all: $(TARGETS) - -make_hgrid: $(OBJECTS) mosaic_util.o mpp.o - $(CC) -o $@ $^ $(CLIBS) - -make_hgrid_parallel: $(OBJECTS) mosaic_util_parallel.o mpp_parallel.o - $(MPICC) -o $@ $^ $(CLIBS) - -make_hgrid.o: make_hgrid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_gnomonic_cubic_grid.o: create_gnomonic_cubic_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_conformal_cubic_grid.o: create_conformal_cubic_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_lonlat_grid.o: create_lonlat_grid.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -create_grid_from_file.o: create_grid_from_file.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util_parallel.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(MPICC) -Duse_libMPI $(CFLAGS) $(INCLUDES) -o $@ -c $< - -read_mosaic.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -read_mosaic_parallel.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(MPICC) -Duse_libMPI -Duse_netCDF $(CFLAGS) $(INCLUDES) -o $@ -c $< - -interp.o: ../../shared/mosaic/interp.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -mpp_io.o: ../shared/mpp_io.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_domain.o: ../shared/mpp_domain.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp.o: ../shared/mpp.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_parallel.o: ../shared/mpp.c $(HEADERS) - $(MPICC) -Duse_libMPI $(CFLAGS) $(INCLUDES) -o $@ -c $< - -tool_util.o: ../shared/tool_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -create_xgrid.o: ../../shared/mosaic/create_xgrid.c $(HEADERS) - $(CC) $(CFLAGS_O2) $(INCLUDES) -c $< - -%.o: %.c - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -clean: - -rm -f *.o $(TARGETS) diff --git a/sorc/fre-nctools.fd/tools/make_hgrid/make_hgrid.c b/sorc/fre-nctools.fd/tools/make_hgrid/make_hgrid.c deleted file mode 100644 index ccce0aec93..0000000000 --- a/sorc/fre-nctools.fd/tools/make_hgrid/make_hgrid.c +++ /dev/null @@ -1,1075 +0,0 @@ -/* - Copyright 2011 NOAA Geophysical Fluid Dynamics Lab, Princeton, NJ - This program is distributed under the terms of the GNU General Public - License. See the file COPYING contained in this directory - - This program generates various types of horizontal grids in netCDF file format - - AUTHOR: Zhi Liang (Zhi.Liang@noaa.gov) - NOAA Geophysical Fluid Dynamics Lab, Princeton, NJ -*/ -#include -#include -#include -#include -#include -#include "create_hgrid.h" -#include "mpp.h" -#include "mpp_domain.h" -#include "mpp_io.h" -#include "tool_util.h" -#include "mosaic_util.h" - -const int MAXBOUNDS = 100; -const int STRINGLEN = 255; -#define REGULAR_LONLAT_GRID 1 -#define TRIPOLAR_GRID 2 -#define FROM_FILE 3 -#define SIMPLE_CARTESIAN_GRID 4 -#define SPECTRAL_GRID 5 -#define CONFORMAL_CUBIC_GRID 6 -#define GNOMONIC_ED 7 -#define F_PLANE_GRID 8 -#define BETA_PLANE_GRID 9 -#define MISSING_VALUE (-9999.) -int my_grid_type = 0; - -char *usage[] = { - "", - " ", - " ", - " Usage of make_hgrid ", - " ", - " make_hgrid --grid_type grid_type --my_grid_file my_grid_file ", - " --nxbnds nxbnds --nybnds nybnds ", - " --xbnds x(1),...,x(nxbnds) --ybnds y(1),...,y(nybnds) ", - " --nlon nlon(1),...nlon(nxbnds-1) ", - " --nlat nlat(1),...nlat(nybnds-1) ", - " --dlon dlon(1),...dlon(nxbnds) ", - " --dlat dlat(1),...dlat(nybnds) ", - " --lat_join lat_join --num_lon num_lon --nratio nratio ", - " --simple_dx simple_dx --simple_dy simple_dy ", - " --grid_name gridname --center center --verbose --shift_fac # ", - " --do_schmidt --stretch_fac # --target_lon # --target_lat # ", - " --nest_grid --parent_tile # --refine_ratio # --halo # ", - " --istart_nest # --iend_nest # --jstart_nest # --jend_nest # ", - " --great_circle_algorithm --out_halo # ", - " ", - " This program can generate different types of horizontal grid. The ", - " output data is on supergrid ( model grid size x refinement(=2) ). For ", - " 'cubic_grid', six grid files which contain the grid information for ", - " each tile will be generate, otherwise one file will be generated you ", - " can specify the grid type through --grid_type. The value of grid_type ", - " can be 'from_file', 'spectral_grid', 'spherical_grid', ", - " 'conformal_cubic_grid', 'gnomonic_ed' or 'simple_cartesian_grid', with ", - " default value 'spherical_grid'. --nlon and --nlat must be specified to ", - " indicate supergrid size ( for cubic_grid, --nlat is not needed because ", - " nlat has the same value as nlon. Besides --nlon, --nlat, other ", - " optional and requirement arguments for each type are, ", - " ", - " Two algorithms are provided for creating 'tripolar_grid' and ", - " 'regular_lonlat_grid'. Monotonic cubic interpolation and legacy ", - " algorithm using cosine function to configure grid cell location. The ", - " monotonic cubic interpolation is developed by Russell Fiedler and the ", - " detail of the alrogithm is explained in ", - " http://www.mathworks.com/moler/interp.pdf. More details of the ", - " algorithm is available in ", - " ", - " F. N. Fritsch and R. E. Carlson, Monotone Piecewise Cubic ", - " Interpolation, SIAM Journal on Numerical Analysis, 17 (1980), ", - " pp. 238-246. ", - " ", - " D. Kahaner, C. Moler, and S. Nash, Numerical Methods and Software, ", - " Prentice Hall, Englewood Cliffs, NJ, 1989. ", - " ", - " --nlon --nlat need to be specified to use the monotonic cubic ", - " algorithm. The legacy algorithm was developed by Ron Pacanowski. This ", - " algorithm uses a cosine function to do the interpolation. ", - " ", - " --dlon and --dlat need to be specified to use the legacy ", - " algorithm. Monotonic cubic interpolation is a higher order ", - " interpolation and will produce smoother grid distance. It is strongly ", - " suggested to use the monotonic cubic interpolation by specifying ", - " argument --nlon and --nlat. ", - " ", - " 1. 'from_file': --my_grid_file must be specified. The grid ", - " specified in my_grid_file should be super grid ", - " vertex. ", - " 2. 'spectral_grid': no other optional or required arguments. ", - " 3. 'regular_lonlat_grid': --nxbnds, --nybnds --xbnds, --ybnds, must be ", - " specified to define the grid bounds. ", - " 4. 'tripolar_grid': --nxbnds, --nybnds, --xbnds, --ybnds, must be ", - " specified to define the grid bounds. --lat_join ", - " is optional with default value 65. ", - " 5 'conformal_cubic_grid': --nratio is optional argument. ", - " 6 'gnomonic_ed' : equal distance gnomonic cubic grid. ", - " 7. 'simple_cartesian_grid': --xbnds, --ybnds must be specified to define ", - " the grid bounds location and grid size. number ", - " of bounds must be 2 in both and x and ", - " y-direction. --simple_dx and --simple_dy must be ", - " specified to specify uniform cell length. ", - " 8 'f_plane_grid': For setting geometric fractors according ", - " to f-plane. f_plane_latitude need to be specified", - " 9 'beta_plane_grid': For setting geometric fractors according ", - " to beta plane. f_plane_latitude need to be ", - " specified ", - " ", - " make_hgrid take the following flags ", - " ", - " --grid_type grid_type specify type of topography. See above for ", - " grid type option. " - " ", - " --my_grid_file file when this flag is present, the program will read ", - " grid information from 'my_grid_file'. The file ", - " format can be ascii file or netcdf file. Multiple ", - " file entry are allowed but the number should be ", - " less than MAXBOUNDS. ", - " ", - " --nxbnds nxbnds Specify number of zonal regions for varying ", - " resolution. ", - " ", - " --nybnds nybnds Specify number of meridinal regions for varying ", - " resolution. ", - " ", - " --xbnds x(1),.,x(nxbnds) Specify boundaries for defining zonal regions of ", - " varying resolution. When --tripolar is present, ", - " x also defines the longitude of the two new poles. ", - " nxbnds must be 2 and lon_start = x(1), ", - " lon_end = x(nxbnds) are longitude of the two ", - " new poles. ", - " ", - " --ybnds y(1),.,y(nybnds) Specify boundaries for defining meridional ", - " regions of varying resolution ", - " ", - " --nlon nlon(1),..,nlon(nxbnds-1) Number of model grid points(supergrid) for ", - " each zonal regions of varying resolution. ", - " ", - " --nlat nlat(1),..,nlat(nybnds-1) Number of model grid points(supergid) for ", - " each meridinal regions of varying resolution.", - " ", - " --dlon dlon(1),..,dlon(nxbnds) nominal resolution of zonal regions ", - " ", - " --dlat dlat(1),..,dlat(nybnds) nominal resolution of meridional regions ", - " ", - " --lat_join lat_join Specify latitude for joining spherical and rotated ", - " bipolar grid. Default value is 65 degree. ", - " ", - " --nratio nratio Speicify the refinement ratio when calculating ", - " cell length and area of supergrid. ", - " ", - " --simple_dx dimple_dx Specify the uniform cell length in x-direction for ", - " simple cartesian grid. ", - " ", - " --simple_dy dimple_dy Specify the uniform cell length in y-direction for ", - " simple cartesian grid. ", - " ", - " --grid_name grid_name Specify the grid name. The output grid file name ", - " will be grid_name.nc if there is one tile and ", - " grid_name.tile#.nc if there is more than one tile. ", - " The default value will be horizontal_grid. ", - " ", - " --center center Specify the center location of grid. The valid ", - " entry will be 'none', 't_cell' or 'c_cell' with ", - " default value 'none'. The grid refinement is ", - " assumed to be 2 in x and y-direction when center ", - " is not 'none'. 'c_cell' should be used for the grid", - " used in MOM. ", - " ", - " --shift_fac shift west by 180/shift_fac. Default value is 18. ", - " ", - " --do_schmidt Set to do Schmidt transformation to create ", - " stretched grid. When do_schmidt is set, the ", - " following must be set: --stretch_factor, ", - " --target_lon and --target_lat. ", - " ", - " --stretch_factor # Stretching factor for the grid ", - " ", - " --target_lon # center longitude of the highest resolution tile ", - " ", - " --target_lat # center latitude of the highest resolution tile ", - " ", - " --nest_grid set to create nest grid as well as the global grid.", - " This option could only be set when grid_type is ", - " 'gnomonic_ed'. When it is set, besides 6 tile grid ", - " files created, there is one more nest grid with ", - " file name = $grid_name.tile${parent_tile}.nest.nc ", - " ", - " --parent_tile # Specify the parent tile number of nest grid. ", - " ", - " --refine_ratio # Specify the refinement ratio for nest grid. ", - " ", - " --istart_nest # Specify the starting i-direction index of nest ", - " grid in parent tile supergrid(Fortran index). ", - " ", - " --iend_nest # Specify the ending i-direction index of nest ", - " grid in parent tile supergrid(Fortran index). ", - " ", - " --jstart_nest # Specify the starting j-direction index of nest ", - " grid in parent tile supergrid(Fortran index). ", - " ", - " --jend_nest # Specify the ending j-direction index of nest ", - " grid in parent tile supergrid(Fortran index). ", - " ", - " --halo # halo size to used in the atmosphere cubic sphere ", - " model. It only needs to be specified when ", - " --nest_grid is set. ", - " ", - " --great_circle_algorithm When specified, great_circle_algorithm will be ", - " used to compute grid cell area. ", - " ", - " --out_halo # extra halo size data to be written out. This is ", - " only works for gnomonic_ed. ", - " ", - " --verbose Will print out running time message when this ", - " option is set. Otherwise the run will be silent ", - " when there is no error. ", - " ", - " Example ", - " ", - " ", - " 1. generating regular lon-lat grid (supergrid size 60x20) ", - " > make_hgrid --grid_type regular_lonlat_grid --nxbnd 2 --nybnd 2 ", - " --xbnd 0,30 --ybnd 50,60 --nlon 60 --nlat 20 ", - " ", - " 2. generating tripolar grid with various grid resolution and C-cell centered ", - " using monotonic bi-cub spline interpolation. ", - " > make_hgrid --grid_type tripolar_grid --nxbnd 2 --nybnd 7 --xbnd -280,80 ", - " --ybnd -82,-30,-10,0,10,30,90 --nlon 720 ", - " --nlat 104,48,40,40,48,120 --grid_name om3_grid ", - " --center c_cell ", - " ", - " 3. generating tripolar grid with various grid resolution and C-cell centered ", - " using legacy algorithm (create GFDL CM2/ocean-like grid) ", - " > make_hgrid --grid_type tripolar_grid --nxbnd 2 --nybnd 7 --xbnd -280,80 ", - " --ybnd -82,-30,-10,0,10,30,90 --dlon 1.0,1.0 ", - " --dlat 1.0,1.0,0.6666667,0.3333333,0.6666667,1.0,1.0 ", - " --grid_name om3_grid --center c_cell ", - " ", - " 4. generating simple cartesian grid(supergrid size 20x20) ", - " > make_hgrid --grid_type simple_cartesian_grid --xbnd 0,30 --ybnd 50,60 ", - " --nlon 20 --nlat 20 --simple_dx 1000 --simple_dy 1000 ", - " ", - " 5. generating conformal cubic grid. (supergrid size 60x60 for each tile) ", - " > make_hgrid --grid_type conformal_cubic_grid --nlon 60 --nratio 2 ", - " ", - " 6. generating gnomonic cubic grid with equal_dist_face_edge(C48 grid) ", - " > make_hgrid --grid_type gnomonic_ed --nlon 96 ", - " ", - " 7. generating gnomonic cubic streched grid. ", - " > make_hgrid --grid_type gnomonic_ed --nlon 180 --do_schmidt ", - " --stretch_factor 3 --target_lat 40. --target_lon 20. ", - " ", - " 8. generating spectral grid. (supergrid size 128x64) ", - " > make_hgrid --grid_type spectral_grid --nlon 128 --nlat 64 ", - " ", - " 9. Through user-defined grids ", - " > make_hgrid --grid_type from_file --my_grid_file my_grid_file ", - " --nlon 4 --nlat 4 ", - " ", - " contents of sample my_grid_file ", - " The first line of my_grid_file will be text ( will be ignored) ", - " followed by nlon+1 lines of real value of x-direction supergrid bound ", - " location. Then another line of text ( will be ignored), followed by ", - " nlat+1 lines of real value of y-direction supergrid bound location. ", - " ", - " For example: ", - " ", - " x-grid ", - " 0.0 ", - " 5.0 ", - " 10.0 ", - " 15.0 ", - " 20.0 ", - " y-grid ", - " -10 ", - " 10 ", - " 20 ", - " 30 ", - " 40 ", - " ", - " 10. generating f_plane_grids ", - " > make_hgrid --grid_type f_plane_grid --f_plane_latitude 55 --nxbnd 2 ", - " --nybnd 2 --xbnd 0,30 --ybnd 50,60 --nlon 60 --nlat 20 ", - " ", - " A note on generating cyclic regular lon-lat grids when center = 'c_cell':- ", - " It is possible to have an improperly centered boundary unless care is taken to ", - " ensure local symmetry at the join. ", - " A correctly formed grid is only guaranteed if the first three values of the ", - " --xbnd argument mirror the last 3 and the first two 'nlon' arguments mirror the ", - " last 2. ", - " ", - " For example for a global grid make_hgrid should be invoked as ", - " > make_hgrid --grid_type regular_lonlat_grid ... ", - " --xbnd 0,X1,X2,...,360-X2,360-X1,360 ", - " --nlon N1,N2,...,N2,N1 --center c_cell ", - " ", - " As an example ", - " ", - " > make_hgrid --grid_type regular_lonlat_grid --nxbnd 7 --nybnd 2 ", - " --xbnd 0,15,30,300,330,345,360 --ybnd 50,60 ", - " --nlon 4,2,6,4,2,4 --nlat 2 --center c_cell ", - " ", - " ", - " results in a valid cyclic grid whereas (note the second last value of nlon) ", - " ", - " > make_hgrid --grid_type regular_lonlat_grid --nxbnd 7 --nybnd 2 ", - " --xbnd 0,15,30,300,330,345,360 --ybnd 50,60 ", - " --nlon 4,2,6,4,4,4 --nlat 2 --center c_cell ", - " ", - " ", - " is not properly centered across 0,360 ", - " ", - " An informational message is issued if the leftmost and rightmost resolutions ", - " differ by more than 1 part in 10E6 ", - " ", - "", - NULL }; - -char grid_version[] = "0.2"; -char tagname[] = "$Name: fre-nctools-bronx-10 $"; - - -void fill_cubic_grid_halo(int nx, int ny, int halo, double *data, double *data1_all, - double *data2_all, int tile, int ioff, int joff) -{ - int lw, le, ls, ln; - int ntiles,nxp,nyp,nxph,nyph,i,j; - - - nxp = nx+ioff; - nyp = ny+joff; - nxph = nx+ioff+2*halo; - nyph = ny+joff+2*halo; - - for(i=0; i 1) mpp_error( "make_hgrid: make_hgrid must be run one processor, contact developer"); - - /* - * process command line - */ - errflg = argc <3; - - while ((c = getopt_long(argc, argv, "", long_options, &option_index)) != -1) { - switch (c) { - case 'a': - strcpy(grid_type, optarg); - break; - case 'b': - strcpy(entry, optarg); - tokenize(entry, ",", STRINGLEN, MAXBOUNDS, (char *)my_grid_file, &ntiles_file); - break; - case 'c': - nxbnds0 = atoi(optarg); - break; - case 'd': - nybnds0 = atoi(optarg); - break; - case 'e': - strcpy(entry, optarg); - nxbnds1 = get_double_entry(entry, xbnds); - break; - case 'f': - strcpy(entry, optarg); - nybnds1 = get_double_entry(entry, ybnds); - break; - case 'g': - strcpy(entry, optarg); - nxbnds2 = get_int_entry(entry, nlon); - break; - case 'i': - strcpy(entry, optarg); - nybnds2 = get_int_entry(entry, nlat); - break; - case 'j': - lat_join = atof(optarg); - break; - case 'k': - nratio = atoi(optarg); - break; - case 'l': - simple_dx = atof(optarg); - break; - case 'm': - simple_dy = atof(optarg); - break; - case 'q': - strcpy(gridname, optarg); - break; - case 'r': - strcpy(center, optarg); - break; - case 's': - strcpy(entry, optarg); - nxbnds3 = get_double_entry(entry, dx_bnds); - break; - case 't': - strcpy(entry, optarg); - nybnds3 = get_double_entry(entry, dy_bnds); - break; - case 'u': - f_plane_latitude = atof(optarg); - break; - case 'w': - do_schmidt = 1; - break; - case 'x': - present_stretch_factor = 1; - stretch_factor = atof(optarg); - break; - case 'y': - present_target_lon = 1; - target_lon = atof(optarg); - break; - case 'z': - present_target_lat = 1; - target_lat = atof(optarg); - break; - case 'A': - nest_grid = 1; - break; - case 'B': - refine_ratio = atoi(optarg); - break; - case 'C': - parent_tile = atoi(optarg); - break; - case 'D': - istart_nest = atoi(optarg); - break; - case 'E': - iend_nest = atoi(optarg); - break; - case 'F': - jstart_nest = atoi(optarg); - break; - case 'G': - jend_nest = atoi(optarg); - break; - case 'H': - halo = atoi(optarg); - break; - case 'I': - shift_fac = atof(optarg); - break; - case 'J': - use_great_circle_algorithm = 1; - break; - case 'K': - out_halo = atoi(optarg); - break; - case 'v': - verbose = 1; - break; - case 'h': - errflg++; - break; - case '?': - errflg++; - } - } - - if (errflg ) { - char **u = usage; - while (*u) { fprintf(stderr, "%s\n", *u); u++; } - exit(2); - } - - /* define history to be the history in the grid file */ - strcpy(history,argv[0]); - - for(i=1;iNOTE: the grid type is %s\n",grid_type); - - if(strcmp(grid_type,"regular_lonlat_grid") ==0 ) - my_grid_type = REGULAR_LONLAT_GRID; - else if(strcmp(grid_type,"tripolar_grid") ==0 ) - my_grid_type = TRIPOLAR_GRID; - else if(strcmp(grid_type,"from_file")==0 ) - my_grid_type = FROM_FILE; - else if(strcmp(grid_type, "simple_cartesian_grid")==0) - my_grid_type = SIMPLE_CARTESIAN_GRID; - else if(strcmp(grid_type, "spectral_grid") ==0 ) - my_grid_type = SPECTRAL_GRID; - else if(strcmp(grid_type, "conformal_cubic_grid") ==0 ) - my_grid_type = CONFORMAL_CUBIC_GRID; - else if(strcmp(grid_type, "gnomonic_ed") ==0 ) - my_grid_type = GNOMONIC_ED; - else if(strcmp(grid_type, "f_plane_grid") == 0 ) - my_grid_type = F_PLANE_GRID; - else if(strcmp(grid_type, "beta_plane_grid") == 0 ) - my_grid_type = BETA_PLANE_GRID; - else - mpp_error("make_hgrid: only grid_type = 'regular_lonlat_grid', 'tripolar_grid', 'from_file', " - "'gnomonic_ed', 'conformal_cubic_grid', 'simple_cartesian_grid', " - "'spectral_grid', 'f_plane_grid' and 'beta_plane_grid' is implemented"); - - if(my_grid_type != GNOMONIC_ED && out_halo != 0) - mpp_error("make_hgrid: out_halo should not be set when grid_type = gnomonic_ed"); - if(out_halo !=0 && out_halo != 1) - mpp_error("make_hgrid: out_halo should be 0 or 1"); - - if( my_grid_type != GNOMONIC_ED && do_schmidt ) - mpp_error("make_hgrid: --do_schmidt should not be set when grid_type is not 'gnomonic_ed'"); - - use_legacy = 0; - /* check the command-line arguments to make sure the value are suitable */ - if( my_grid_type == REGULAR_LONLAT_GRID || my_grid_type == TRIPOLAR_GRID || - my_grid_type == F_PLANE_GRID || my_grid_type == BETA_PLANE_GRID ) { - int num_specify; - nxbnds = nxbnds0; nybnds = nybnds0; - if( nxbnds <2 || nybnds < 2) mpp_error("make_hgrid: grid type is 'regular_lonlat_grid', 'tripolar_grid', 'f_plane_grid' or 'beta_plane_grid', " - "both nxbnds and nybnds should be no less than 2"); - if( nxbnds != nxbnds1 ) mpp_error("make_hgrid: grid type is 'regular_lonlat_grid, 'tripolar_grid', 'f_plane_grid' or 'beta_plane_grid', " - "nxbnds does not match number of entry in xbnds"); - if( nybnds != nybnds1 ) mpp_error("make_hgrid: grid type is 'regular_lonlat_grid, 'tripolar_grid', 'f_plane_grid' or 'beta_plane_grid', " - "nybnds does not match number of entry in ybnds"); - num_specify = 0; - if( nxbnds2 > 0 && nybnds2 > 0 ) num_specify ++; - if( nxbnds3 > 0 && nybnds3 > 0 ) { - num_specify ++; - use_legacy = 1; - } - - if( num_specify == 0 ) mpp_error("make_hgrid: grid type is 'regular_lonlat_grid', 'tripolar_grid', 'f_plane_grid' or 'beta_plane_grid', " - "need to specify one of the pair --nlon --nlat or --dlon --dlat"); - if( num_specify == 2 ) mpp_error("make_hgrid: grid type is 'regular_lonlat_grid', 'tripolar_grid', 'f_plane_grid' or 'beta_plane_grid', " - "can not specify both --nlon --nlat and --dlon --dlat"); - if( use_legacy ) { - if( nxbnds != nxbnds3 ) mpp_error("make_hgrid: grid type is 'tripolar_grid', 'tripolar_grid', 'f_plane_grid' or 'beta_plane_grid', " - "nxbnds does not match number of entry in dlon"); - if( nybnds != nybnds3 ) mpp_error("make_hgrid: grid type is 'tripolar_grid', 'tripolar_grid', 'f_plane_grid' or 'beta_plane_grid', " - "nybnds does not match number of entry in dlat"); - } - else { - if( nxbnds != nxbnds2+1 ) mpp_error("make_hgrid: grid type is 'tripolar_grid', 'tripolar_grid', 'f_plane_grid' or 'beta_plane_grid', " - "nxbnds does not match number of entry in nlon"); - if( nybnds != nybnds2+1 ) mpp_error("make_hgrid: grid type is 'tripolar_grid', 'tripolar_grid', 'f_plane_grid' or 'beta_plane_grid', " - "nybnds does not match number of entry in nlat"); - } - } - - - if( my_grid_type == CONFORMAL_CUBIC_GRID || my_grid_type == GNOMONIC_ED ) { - ntiles = 6; - ntiles_global = 6; - } - - if( my_grid_type != GNOMONIC_ED && nest_grid ) - mpp_error("make_hgrid: --nest_grid can be set only when grid_type = 'gnomonic_ed'"); - - if( my_grid_type == TRIPOLAR_GRID ) { - strcpy(projection, "tripolar"); - if( nxbnds != 2) mpp_error("make_hgrid: grid type is 'tripolar_grid', nxbnds should be 2"); - } - else if( my_grid_type == FROM_FILE ) { - /* For ascii file, nlon and nlat should be specified through --nlon, --nlat - For netcdf file, grid resolution will be read from grid file - */ - - if(ntiles_file == 0) mpp_error("make_hgrid: grid_type is 'from_file', but my_grid_file is not specified"); - ntiles = ntiles_file; - for(n=0; n 90 || f_plane_latitude < -90.) - mpp_error("make_hgrid: f_plane_latitude should be between -90 and 90."); - if(f_plane_latitude > ybnds[nybnds-1] || f_plane_latitude < ybnds[0] ) { - if(mpp_pe() == mpp_root_pe()) - printf("Warning from make_hgrid: f_plane_latitude is not inside the latitude range of the grid\n"); - } - if(mpp_pe() == mpp_root_pe()) - printf("make_hgrid: setting geometric factor according to f-plane with f_plane_latitude = %g\n", f_plane_latitude ); - } - - nxl = (int *)malloc(ntiles*sizeof(int)); - nyl = (int *)malloc(ntiles*sizeof(int)); - - /* get super grid size */ - if(use_legacy) { - nxl[0] = get_legacy_grid_size(nxbnds, xbnds, dx_bnds); - nyl[0] = get_legacy_grid_size(nybnds, ybnds, dy_bnds); - } - else { - if( my_grid_type == GNOMONIC_ED || my_grid_type == CONFORMAL_CUBIC_GRID ) { - for(n=0; n ntiles_global) { - nxl[ntiles_global] = (iend_nest-istart_nest+1)*refine_ratio; - nyl[ntiles_global] = (jend_nest-jstart_nest+1)*refine_ratio; - } - } - else { - nxl[0] = 0; - nyl[0] = 0; - for(n=0; n1) - sprintf(outfile, "%s.tile%d.nc", gridname, n+1); - else - sprintf(outfile, "%s.nc", gridname); - fid = mpp_open(outfile, MPP_WRITE); - /* define dimenison */ - nx = nxl[n]; - ny = nyl[n]; - nxp = nx+1; - nyp = ny+1; - dimlist[0] = mpp_def_dim(fid, "string", STRINGLEN); - dimlist[1] = mpp_def_dim(fid, "nx", nx+2*out_halo); - dimlist[2] = mpp_def_dim(fid, "ny", ny+2*out_halo); - dimlist[3] = mpp_def_dim(fid, "nxp", nxp+2*out_halo); - dimlist[4] = mpp_def_dim(fid, "nyp", nyp+2*out_halo); - /* define variable */ - if( strcmp(north_pole_tile, "none") == 0) /* no north pole, then no projection */ - id_tile = mpp_def_var(fid, "tile", MPP_CHAR, 1, dimlist, 4, "standard_name", "grid_tile_spec", - "geometry", geometry, "discretization", discretization, "conformal", conformal ); - else if( strcmp(projection, "none") == 0) - id_tile = mpp_def_var(fid, "tile", MPP_CHAR, 1, dimlist, 5, "standard_name", "grid_tile_spec", - "geometry", geometry, "north_pole", north_pole_tile, "discretization", - discretization, "conformal", conformal ); - else - id_tile = mpp_def_var(fid, "tile", MPP_CHAR, 1, dimlist, 6, "standard_name", "grid_tile_spec", - "geometry", geometry, "north_pole", north_pole_tile, "projection", projection, - "discretization", discretization, "conformal", conformal ); - - dims[0] = dimlist[4]; dims[1] = dimlist[3]; - id_x = mpp_def_var(fid, "x", MPP_DOUBLE, 2, dims, 2, "standard_name", "geographic_longitude", - "units", "degree_east"); - if(out_halo>0) mpp_def_var_att_double(fid, id_x, "_FillValue", MISSING_VALUE); - id_y = mpp_def_var(fid, "y", MPP_DOUBLE, 2, dims, 2, "standard_name", "geographic_latitude", - "units", "degree_north"); - if(out_halo>0) mpp_def_var_att_double(fid, id_y, "_FillValue", MISSING_VALUE); - dims[0] = dimlist[4]; dims[1] = dimlist[1]; - id_dx = mpp_def_var(fid, "dx", MPP_DOUBLE, 2, dims, 2, "standard_name", "grid_edge_x_distance", - "units", "meters"); - if(out_halo>0) mpp_def_var_att_double(fid, id_dx, "_FillValue", MISSING_VALUE); - dims[0] = dimlist[2]; dims[1] = dimlist[3]; - id_dy = mpp_def_var(fid, "dy", MPP_DOUBLE, 2, dims, 2, "standard_name", "grid_edge_y_distance", - "units", "meters"); - if(out_halo>0) mpp_def_var_att_double(fid, id_dy, "_FillValue", MISSING_VALUE); - dims[0] = dimlist[2]; dims[1] = dimlist[1]; - id_area = mpp_def_var(fid, "area", MPP_DOUBLE, 2, dims, 2, "standard_name", "grid_cell_area", - "units", "m2" ); - if(out_halo>0) mpp_def_var_att_double(fid, id_area, "_FillValue", MISSING_VALUE); - dims[0] = dimlist[4]; dims[1] = dimlist[3]; - id_angle_dx = mpp_def_var(fid, "angle_dx", MPP_DOUBLE, 2, dims, 2, "standard_name", - "grid_vertex_x_angle_WRT_geographic_east", "units", "degrees_east"); - if(out_halo>0) mpp_def_var_att_double(fid, id_angle_dx, "_FillValue", MISSING_VALUE); - if(strcmp(conformal, "true") != 0) { - id_angle_dy = mpp_def_var(fid, "angle_dy", MPP_DOUBLE, 2, dims, 2, "standard_name", - "grid_vertex_y_angle_WRT_geographic_north", "units", "degrees_north"); - if(out_halo>0) mpp_def_var_att_double(fid, id_angle_dy, "_FillValue", MISSING_VALUE); - } - if( strcmp(north_pole_arcx, "none") == 0) - id_arcx = mpp_def_var(fid, "arcx", MPP_CHAR, 1, dimlist, 1, "standard_name", "grid_edge_x_arc_type" ); - else - id_arcx = mpp_def_var(fid, "arcx", MPP_CHAR, 1, dimlist, 2, "standard_name", "grid_edge_x_arc_type", - "north_pole", north_pole_arcx ); - mpp_def_global_att(fid, "grid_version", grid_version); - mpp_def_global_att(fid, "code_version", tagname); - if(use_great_circle_algorithm) mpp_def_global_att(fid, "great_circle_algorithm", "TRUE"); - if(n>=ntiles_global) mpp_def_global_att(fid, "nest_grid", "TRUE"); - mpp_def_global_att(fid, "history", history); - - mpp_end_def(fid); - for(m=0; m<4; m++) { start[m] = 0; nwrite[m] = 0; } - nwrite[0] = strlen(tilename); - mpp_put_var_value_block(fid, id_tile, start, nwrite, tilename ); - - if(out_halo ==0) { - mpp_put_var_value(fid, id_x, x+pos_c); - mpp_put_var_value(fid, id_y, y+pos_c); - mpp_put_var_value(fid, id_dx, dx+pos_n); - mpp_put_var_value(fid, id_dy, dy+pos_e); - mpp_put_var_value(fid, id_area, area+pos_t); - mpp_put_var_value(fid, id_angle_dx, angle_dx+pos_c); - if(strcmp(conformal, "true") != 0) mpp_put_var_value(fid, id_angle_dy, angle_dy+pos_c); - } - else { - double *tmp; - - tmp = (double *)malloc((nxp+2*out_halo)*(nyp+2*out_halo)*sizeof(double)); - fill_cubic_grid_halo(nx,ny,out_halo,tmp,x,x,n,1,1); - mpp_put_var_value(fid, id_x, tmp); - fill_cubic_grid_halo(nx,ny,out_halo,tmp,y,y,n,1,1); - mpp_put_var_value(fid, id_y, tmp); - fill_cubic_grid_halo(nx,ny,out_halo,tmp,angle_dx,angle_dx,n,1,1); - mpp_put_var_value(fid, id_angle_dx, tmp); - if(strcmp(conformal, "true") != 0) { - fill_cubic_grid_halo(nx,ny,out_halo,tmp,angle_dy,angle_dy,n,1,1); - mpp_put_var_value(fid, id_angle_dy, tmp); - } - - fill_cubic_grid_halo(nx,ny,out_halo,tmp,dx,dy,n,0,1); - mpp_put_var_value(fid, id_dx, tmp); - fill_cubic_grid_halo(nx,ny,out_halo,tmp,dy,dx,n,1,0); - mpp_put_var_value(fid, id_dy, tmp); - fill_cubic_grid_halo(nx,ny,out_halo,tmp,area,area,n,0,1); - mpp_put_var_value(fid, id_area, tmp); - free(tmp); - } - - nwrite[0] = strlen(arcx); - mpp_put_var_value_block(fid, id_arcx, start, nwrite, arcx ); - mpp_close(fid); - pos_c += nxp*nyp; - pos_e += nxp*ny; - pos_n += nx*nyp; - pos_t += nx*ny; - } - } - - free(x); - free(y); - free(dx); - free(dy); - free(area); - free(angle_dx); - if(strcmp(conformal, "true") != 0) free(angle_dy); - if(mpp_pe() == mpp_root_pe() && verbose) printf("generate_grid is run successfully. \n"); - - mpp_end(); - - return 0; - -}; /* end of main */ - - diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/COPYING b/sorc/fre-nctools.fd/tools/make_solo_mosaic/COPYING deleted file mode 100644 index 93a221957b..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/COPYING +++ /dev/null @@ -1,159 +0,0 @@ -TERMS AND CONDITIONS -0. Definitions. - -“This License” refers to version 3 of the GNU General Public License. - -“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. - -“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. - -To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. - -A “covered work” means either the unmodified Program or a work based on the Program. - -To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. - -To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. - -An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. -1. Source Code. - -The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. - -A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. - -The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. - -The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. - -The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. - -The Corresponding Source for a work in source code form is that same work. -2. Basic Permissions. - -All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. - -You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. - -Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. -3. Protecting Users' Legal Rights From Anti-Circumvention Law. - -No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. - -When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. -4. Conveying Verbatim Copies. - -You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. - -You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. -5. Conveying Modified Source Versions. - -You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified it, and giving a relevant date. - b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. - c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. - d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. - -A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. -6. Conveying Non-Source Forms. - -You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: - - a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. - b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. - c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. - d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. - e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. - -A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. - -A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. - -“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. - -If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). - -The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. - -Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. -7. Additional Terms. - -“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. - -When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. - -Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or - b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or - c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or - d) Limiting the use for publicity purposes of names of licensors or authors of the material; or - e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or - f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. - -All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. - -If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. - -Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. -8. Termination. - -You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). - -However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. - -Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. - -Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. -9. Acceptance Not Required for Having Copies. - -You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. -10. Automatic Licensing of Downstream Recipients. - -Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. - -An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. - -You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. -11. Patents. - -A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. - -A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. - -Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. - -In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. - -If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. - -If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. - -A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. - -Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. -12. No Surrender of Others' Freedom. - -If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. -13. Use with the GNU Affero General Public License. - -Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. -14. Revised Versions of this License. - -The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. - -If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. - -Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. -15. Disclaimer of Warranty. - -THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -16. Limitation of Liability. - -IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -17. Interpretation of Sections 15 and 16. - -If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.cray b/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.cray deleted file mode 100644 index 42e7137c52..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.cray +++ /dev/null @@ -1,4 +0,0 @@ -# ORNL uses the cc wrapper -MPICC := cc -CC := cc -STATIC := -static diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.gaea b/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.gaea deleted file mode 100644 index 42e7137c52..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.gaea +++ /dev/null @@ -1,4 +0,0 @@ -# ORNL uses the cc wrapper -MPICC := cc -CC := cc -STATIC := -static diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.gfdl-ws b/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.gfdl-ws deleted file mode 100644 index 3d742259a5..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.gfdl-ws +++ /dev/null @@ -1,6 +0,0 @@ -LIBS2 := -CLIBS2 := - -# GFDL uses the mpicc wrapper and Intel icc -MPICC := mpicc -CC := icc diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.jet b/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.jet deleted file mode 100644 index 28bf431ee5..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.jet +++ /dev/null @@ -1,7 +0,0 @@ -CLIBS_SITE := -CFLAGS_SITE := - -# GFDL uses the mpicc wrapper and Intel icc -MPICC := mpicc -CC := icc -NETCDF_HOME = $(NETCDF_DIR) diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.pan b/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.pan deleted file mode 100644 index 3d742259a5..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.pan +++ /dev/null @@ -1,6 +0,0 @@ -LIBS2 := -CLIBS2 := - -# GFDL uses the mpicc wrapper and Intel icc -MPICC := mpicc -CC := icc diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.theia b/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.theia deleted file mode 100644 index 6c090e2e25..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.theia +++ /dev/null @@ -1,4 +0,0 @@ -# theia -MPICC := mpiicc -CC := icc -STATIC := diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.wcoss b/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.wcoss deleted file mode 100644 index e6f023dfb7..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.wcoss +++ /dev/null @@ -1,3 +0,0 @@ -# ORNL uses the cc wrapper -MPICC := mpiicc -CC := icc diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.wcoss_dell_p3 b/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.wcoss_dell_p3 deleted file mode 100644 index 6c090e2e25..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.wcoss_dell_p3 +++ /dev/null @@ -1,4 +0,0 @@ -# theia -MPICC := mpiicc -CC := icc -STATIC := diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.zeus b/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.zeus deleted file mode 100644 index 3d742259a5..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/env.zeus +++ /dev/null @@ -1,6 +0,0 @@ -LIBS2 := -CLIBS2 := - -# GFDL uses the mpicc wrapper and Intel icc -MPICC := mpicc -CC := icc diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_cray b/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_cray deleted file mode 100644 index a67bbe8d4f..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_cray +++ /dev/null @@ -1,76 +0,0 @@ -# -# $Id: fre-nctools.mk,v 20.0 2013/12/14 00:33:52 fms Exp $ -# ------------------------------------------------------------------------------ -# FMS/FRE Project: Makefile to Build Regridding Executables -# ------------------------------------------------------------------------------ -# afy Ver 1.00 Initial version (Makefile, ver 17.0.4.2) June 10 -# afy Ver 1.01 Add rules to build MPI-based executable June 10 -# afy Ver 1.02 Simplified according to fre-nctools standards June 10 -# ------------------------------------------------------------------------------ -# Copyright (C) NOAA Geophysical Fluid Dynamics Laboratory, 2009-2011 -# This program is distributed under the terms of the GNU General Public -# License. See the file COPYING contained in this directory -# -# Designed and written by V. Balaji, Amy Langenhorst and Aleksey Yakovlev -# -include env.$(SITE) - -#CC := icc -CFLAGS := -O3 -traceback -CFLAGS_O2:= -O2 -traceback -INCLUDES := -I${NETCDF_HOME}/include -I./ -I../shared -I../../shared/mosaic -CLIBS := -L${NETCDF_HOME}/lib -L${HDF5_HOME}/lib -lnetcdf -lhdf5_hl -lhdf5 -lz -limf $(CLIBS2) $(STATIC) - -TARGETS := make_solo_mosaic - -SOURCES := make_solo_mosaic.c get_contact.c -SOURCES += mpp.c mpp_domain.c mpp_io.c tool_util.c -SOURCES += create_xgrid.c interp.c mosaic_util.c read_mosaic.c - -OBJECTS := $(SOURCES:c=o) - -HEADERS = fre-nctools.mk ../shared/mpp.h ../shared/mpp_domain.h ../shared/mpp_io.h ../shared/tool_util.h \ - ../../shared/mosaic/constant.h ../../shared/mosaic/create_xgrid.h \ - ../../shared/mosaic/interp.h ../../shared/mosaic/mosaic_util.h \ - ./get_contact.h ../../shared/mosaic/read_mosaic.h - -all: $(TARGETS) - -make_solo_mosaic: $(OBJECTS) - $(CC) -o $@ $^ $(CLIBS) - -make_solo_mosaic.o: make_solo_mosaic.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -get_contact.o: get_contact.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -read_mosaic.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -interp.o: ../../shared/mosaic/interp.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -mpp_io.o: ../shared/mpp_io.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_domain.o: ../shared/mpp_domain.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp.o: ../shared/mpp.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -tool_util.o: ../shared/tool_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -create_xgrid.o: ../../shared/mosaic/create_xgrid.c $(HEADERS) - $(CC) $(CFLAGS_O2) $(INCLUDES) -c $< - -%.o: %.c - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -clean: - -rm -f *.o $(TARGETS) diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_theia b/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_theia deleted file mode 100644 index 7a2130a228..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_theia +++ /dev/null @@ -1,76 +0,0 @@ -# -# $Id: fre-nctools.mk,v 20.0 2013/12/14 00:33:52 fms Exp $ -# ------------------------------------------------------------------------------ -# FMS/FRE Project: Makefile to Build Regridding Executables -# ------------------------------------------------------------------------------ -# afy Ver 1.00 Initial version (Makefile, ver 17.0.4.2) June 10 -# afy Ver 1.01 Add rules to build MPI-based executable June 10 -# afy Ver 1.02 Simplified according to fre-nctools standards June 10 -# ------------------------------------------------------------------------------ -# Copyright (C) NOAA Geophysical Fluid Dynamics Laboratory, 2009-2011 -# This program is distributed under the terms of the GNU General Public -# License. See the file COPYING contained in this directory -# -# Designed and written by V. Balaji, Amy Langenhorst and Aleksey Yakovlev -# -include env.$(SITE) - -#CC := icc -CFLAGS := -O3 -CFLAGS_O2:= -O2 -INCLUDES := -I${NETCDF_HOME}/include -I./ -I../shared -I../../shared/mosaic -CLIBS := -L${NETCDF_HOME}/lib -L${HDF5_HOME}/lib -lnetcdf -lhdf5_hl -lhdf5 -limf $(CLIBS2) $(STATIC) - -TARGETS := make_solo_mosaic - -SOURCES := make_solo_mosaic.c get_contact.c -SOURCES += mpp.c mpp_domain.c mpp_io.c tool_util.c -SOURCES += create_xgrid.c interp.c mosaic_util.c read_mosaic.c - -OBJECTS := $(SOURCES:c=o) - -HEADERS = fre-nctools.mk ../shared/mpp.h ../shared/mpp_domain.h ../shared/mpp_io.h ../shared/tool_util.h \ - ../../shared/mosaic/constant.h ../../shared/mosaic/create_xgrid.h \ - ../../shared/mosaic/interp.h ../../shared/mosaic/mosaic_util.h \ - ./get_contact.h ../../shared/mosaic/read_mosaic.h - -all: $(TARGETS) - -make_solo_mosaic: $(OBJECTS) - $(CC) -o $@ $^ $(CLIBS) - -make_solo_mosaic.o: make_solo_mosaic.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -get_contact.o: get_contact.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -read_mosaic.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -interp.o: ../../shared/mosaic/interp.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -mpp_io.o: ../shared/mpp_io.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_domain.o: ../shared/mpp_domain.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp.o: ../shared/mpp.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -tool_util.o: ../shared/tool_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -create_xgrid.o: ../../shared/mosaic/create_xgrid.c $(HEADERS) - $(CC) $(CFLAGS_O2) $(INCLUDES) -c $< - -%.o: %.c - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -clean: - -rm -f *.o $(TARGETS) diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_wcoss b/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_wcoss deleted file mode 100644 index a67bbe8d4f..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_wcoss +++ /dev/null @@ -1,76 +0,0 @@ -# -# $Id: fre-nctools.mk,v 20.0 2013/12/14 00:33:52 fms Exp $ -# ------------------------------------------------------------------------------ -# FMS/FRE Project: Makefile to Build Regridding Executables -# ------------------------------------------------------------------------------ -# afy Ver 1.00 Initial version (Makefile, ver 17.0.4.2) June 10 -# afy Ver 1.01 Add rules to build MPI-based executable June 10 -# afy Ver 1.02 Simplified according to fre-nctools standards June 10 -# ------------------------------------------------------------------------------ -# Copyright (C) NOAA Geophysical Fluid Dynamics Laboratory, 2009-2011 -# This program is distributed under the terms of the GNU General Public -# License. See the file COPYING contained in this directory -# -# Designed and written by V. Balaji, Amy Langenhorst and Aleksey Yakovlev -# -include env.$(SITE) - -#CC := icc -CFLAGS := -O3 -traceback -CFLAGS_O2:= -O2 -traceback -INCLUDES := -I${NETCDF_HOME}/include -I./ -I../shared -I../../shared/mosaic -CLIBS := -L${NETCDF_HOME}/lib -L${HDF5_HOME}/lib -lnetcdf -lhdf5_hl -lhdf5 -lz -limf $(CLIBS2) $(STATIC) - -TARGETS := make_solo_mosaic - -SOURCES := make_solo_mosaic.c get_contact.c -SOURCES += mpp.c mpp_domain.c mpp_io.c tool_util.c -SOURCES += create_xgrid.c interp.c mosaic_util.c read_mosaic.c - -OBJECTS := $(SOURCES:c=o) - -HEADERS = fre-nctools.mk ../shared/mpp.h ../shared/mpp_domain.h ../shared/mpp_io.h ../shared/tool_util.h \ - ../../shared/mosaic/constant.h ../../shared/mosaic/create_xgrid.h \ - ../../shared/mosaic/interp.h ../../shared/mosaic/mosaic_util.h \ - ./get_contact.h ../../shared/mosaic/read_mosaic.h - -all: $(TARGETS) - -make_solo_mosaic: $(OBJECTS) - $(CC) -o $@ $^ $(CLIBS) - -make_solo_mosaic.o: make_solo_mosaic.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -get_contact.o: get_contact.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -read_mosaic.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -interp.o: ../../shared/mosaic/interp.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -mpp_io.o: ../shared/mpp_io.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_domain.o: ../shared/mpp_domain.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp.o: ../shared/mpp.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -tool_util.o: ../shared/tool_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -create_xgrid.o: ../../shared/mosaic/create_xgrid.c $(HEADERS) - $(CC) $(CFLAGS_O2) $(INCLUDES) -c $< - -%.o: %.c - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -clean: - -rm -f *.o $(TARGETS) diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_wcoss_dell_p3 b/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_wcoss_dell_p3 deleted file mode 100644 index a67bbe8d4f..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/fre-nctools.mk_wcoss_dell_p3 +++ /dev/null @@ -1,76 +0,0 @@ -# -# $Id: fre-nctools.mk,v 20.0 2013/12/14 00:33:52 fms Exp $ -# ------------------------------------------------------------------------------ -# FMS/FRE Project: Makefile to Build Regridding Executables -# ------------------------------------------------------------------------------ -# afy Ver 1.00 Initial version (Makefile, ver 17.0.4.2) June 10 -# afy Ver 1.01 Add rules to build MPI-based executable June 10 -# afy Ver 1.02 Simplified according to fre-nctools standards June 10 -# ------------------------------------------------------------------------------ -# Copyright (C) NOAA Geophysical Fluid Dynamics Laboratory, 2009-2011 -# This program is distributed under the terms of the GNU General Public -# License. See the file COPYING contained in this directory -# -# Designed and written by V. Balaji, Amy Langenhorst and Aleksey Yakovlev -# -include env.$(SITE) - -#CC := icc -CFLAGS := -O3 -traceback -CFLAGS_O2:= -O2 -traceback -INCLUDES := -I${NETCDF_HOME}/include -I./ -I../shared -I../../shared/mosaic -CLIBS := -L${NETCDF_HOME}/lib -L${HDF5_HOME}/lib -lnetcdf -lhdf5_hl -lhdf5 -lz -limf $(CLIBS2) $(STATIC) - -TARGETS := make_solo_mosaic - -SOURCES := make_solo_mosaic.c get_contact.c -SOURCES += mpp.c mpp_domain.c mpp_io.c tool_util.c -SOURCES += create_xgrid.c interp.c mosaic_util.c read_mosaic.c - -OBJECTS := $(SOURCES:c=o) - -HEADERS = fre-nctools.mk ../shared/mpp.h ../shared/mpp_domain.h ../shared/mpp_io.h ../shared/tool_util.h \ - ../../shared/mosaic/constant.h ../../shared/mosaic/create_xgrid.h \ - ../../shared/mosaic/interp.h ../../shared/mosaic/mosaic_util.h \ - ./get_contact.h ../../shared/mosaic/read_mosaic.h - -all: $(TARGETS) - -make_solo_mosaic: $(OBJECTS) - $(CC) -o $@ $^ $(CLIBS) - -make_solo_mosaic.o: make_solo_mosaic.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -get_contact.o: get_contact.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -mosaic_util.o: ../../shared/mosaic/mosaic_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -read_mosaic.o: ../../shared/mosaic/read_mosaic.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -interp.o: ../../shared/mosaic/interp.c $(HEADERS) - $(CC) -Duse_netCDF $(CFLAGS) $(INCLUDES) -c $< - -mpp_io.o: ../shared/mpp_io.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp_domain.o: ../shared/mpp_domain.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -mpp.o: ../shared/mpp.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -tool_util.o: ../shared/tool_util.c $(HEADERS) - $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< - -create_xgrid.o: ../../shared/mosaic/create_xgrid.c $(HEADERS) - $(CC) $(CFLAGS_O2) $(INCLUDES) -c $< - -%.o: %.c - $(CC) $(CFLAGS) $(INCLUDES) -c $< - -clean: - -rm -f *.o $(TARGETS) diff --git a/sorc/fre-nctools.fd/tools/make_solo_mosaic/get_contact.c b/sorc/fre-nctools.fd/tools/make_solo_mosaic/get_contact.c deleted file mode 100644 index 2923b71808..0000000000 --- a/sorc/fre-nctools.fd/tools/make_solo_mosaic/get_contact.c +++ /dev/null @@ -1,531 +0,0 @@ -#include -#include -#include "mosaic_util.h" -#include "get_contact.h" - - -/************************************************************************************************ - int get_align_contact( - This routine will return number of algined contacts bewteen two tiles (line contact). - This routine assume the starting and ending points of the contact line are coincidence with - the grid points of both tiles. lrg_rectangle tiles are assumed. - It will return the contact information, which includes - -*************************************************************************************************/ - -double* east_bound(const double *data, int nx, int ny); -double* west_bound(const double *data, int nx, int ny); -double* south_bound(const double *data, int nx, int ny); -double* north_bound(const double *data, int nx, int ny); -#define EPSLN (1.0e-10) - -int get_contact_index( int size1, int size2, double *x1, double *y1, double *x2, double *y2, double periodx, - double periody, int *start1, int *end1, int *start2, int *end2); -int get_overlap_index( double x1, double y1, int nx2, int ny2, const double *x2, const double *y2, - int *i2, int *j2 ); - -int get_align_contact(int tile1, int tile2, int nx1, int ny1, int nx2, int ny2, - const double *x1, const double *y1, const double *x2, - const double *y2, double periodx, double periody, - int *istart1, int *iend1, int *jstart1, int *jend1, - int *istart2, int *iend2, int *jstart2, int *jend2) -{ - double *xb1, *yb1, *xb2, *yb2; - int ncontact, start1, end1, start2, end2; - - ncontact = 0; - /* East bound of tile1 and west bound of tile2 */ - xb1 = east_bound(x1, nx1, ny1); - yb1 = east_bound(y1, nx1, ny1); - xb2 = west_bound(x2, nx2, ny2); - yb2 = west_bound(y2, nx2, ny2); - if( get_contact_index( ny1, ny2, xb1, yb1, xb2, yb2, periodx, 0.0, &start1, &end1, &start2, &end2) ) { - istart1[ncontact] = nx1-1; - iend1[ncontact] = nx1-1; - istart2[ncontact] = 1; - iend2[ncontact] = 1; - jstart1[ncontact] = start1; - jend1[ncontact] = end1; - jstart2[ncontact] = start2; - jend2[ncontact] = end2; - ncontact++; - } - - /* East bound of tile1 and SOUTH bound of tile2, tile1 and tile must be different tile */ - if(tile1 != tile2) { - free(xb2); - free(yb2); - xb2 = south_bound(x2, nx2, ny2); - yb2 = south_bound(y2, nx2, ny2); - if( get_contact_index( ny1, nx2, xb1, yb1, xb2, yb2, 0.0, 0.0, &start1, &end1, &start2, &end2) ) { - istart1[ncontact] = nx1-1; - iend1[ncontact] = nx1-1; - istart2[ncontact] = start2; - iend2[ncontact] = end2; - jstart1[ncontact] = start1; - jend1[ncontact] = end1; - jstart2[ncontact] = 1; - jend2[ncontact] = 1; - ncontact++; - } - } - free(xb1); - free(yb1); - free(xb2); - free(yb2); - - /* South bound of tile1 and NORTH bound of tile2 */ - xb1 = south_bound(x1, nx1, ny1); - yb1 = south_bound(y1, nx1, ny1); - xb2 = north_bound(x2, nx2, ny2); - yb2 = north_bound(y2, nx2, ny2); - if( get_contact_index( nx1, nx2, xb1, yb1, xb2, yb2, 0.0, periody, &start1, &end1, &start2, &end2) ) { - istart1[ncontact] = start1; - iend1[ncontact] = end1; - istart2[ncontact] = start2; - iend2[ncontact] = end2; - jstart1[ncontact] = 1; - jend1[ncontact] = 1; - jstart2[ncontact] = ny2-1; - jend2[ncontact] = ny2-1; - ncontact++; - } - - /* South bound of tile1 and East bound of tile2, tile1 and tile must be different tile*/ - if(tile1 != tile2 ) { - free(xb2); - free(yb2); - xb2 = east_bound(x2, nx2, ny2); - yb2 = east_bound(y2, nx2, ny2); - if( get_contact_index( nx1, ny2, xb1, yb1, xb2, yb2, 0.0, 0.0, &start1, &end1, &start2, &end2) ) { - istart1[ncontact] = start1; - iend1[ncontact] = end1; - istart2[ncontact] = nx2-1; - iend2[ncontact] = nx2-1; - jstart1[ncontact] = 1; - jend1[ncontact] = 1; - jstart2[ncontact] = start2; - jend2[ncontact] = end2; - ncontact++; - } - } - free(xb1); - free(yb1); - free(xb2); - free(yb2); - - /* to avoid duplicate, the following will be done only when tile1 not equal to tile2 */ - if(tile1 != tile2) { - /* West bound of tile1 and east bound of tile2*/ - xb1 = west_bound(x1, nx1, ny1); - yb1 = west_bound(y1, nx1, ny1); - xb2 = east_bound(x2, nx2, ny2); - yb2 = east_bound(y2, nx2, ny2); - if( get_contact_index( ny1, ny2, xb1, yb1, xb2, yb2, periodx, 0.0, &start1, &end1, &start2, &end2) ) { - istart1[ncontact] = 1; - iend1[ncontact] = 1; - istart2[ncontact] = nx2-1; - iend2[ncontact] = nx2-1; - jstart1[ncontact] = start1; - jend1[ncontact] = end1; - jstart2[ncontact] = start2; - jend2[ncontact] = end2; - ncontact++; - } - free(xb2); - free(yb2); - - /* West bound of tile1 and North bound of tile2 */ - xb2 = north_bound(x2, nx2, ny2); - yb2 = north_bound(y2, nx2, ny2); - if( get_contact_index( ny1, nx2, xb1, yb1, xb2, yb2, 0.0, 0.0, &start1, &end1, &start2, &end2) ) { - istart1[ncontact] = 1; - iend1[ncontact] = 1; - istart2[ncontact] = start2; - iend2[ncontact] = end2; - jstart1[ncontact] = start1; - jend1[ncontact] = end1; - jstart2[ncontact] = ny2-1; - jend2[ncontact] = ny2-1; - ncontact++; - } - free(xb1); - free(yb1); - free(xb2); - free(yb2); - - - /* North bound of tile1 and South bound of tile2 */ - xb1 = north_bound(x1, nx1, ny1); - yb1 = north_bound(y1, nx1, ny1); - xb2 = south_bound(x2, nx2, ny2); - yb2 = south_bound(y2, nx2, ny2); - if( get_contact_index( nx1, nx2, xb1, yb1, xb2, yb2, 0.0, periody, &start1, &end1, &start2, &end2) ) { - istart1[ncontact] = start1; - iend1[ncontact] = end1; - istart2[ncontact] = start2; - iend2[ncontact] = end2; - jstart1[ncontact] = ny1-1; - jend1[ncontact] = ny1-1; - jstart2[ncontact] = 1; - jend2[ncontact] = 1; - ncontact++; - } - free(xb2); - free(yb2); - - /* North bound of tile1 and West bound of tile2 */ - xb2 = west_bound(x2, nx2, ny2); - yb2 = west_bound(y2, nx2, ny2); - if( get_contact_index( nx1, ny2, xb1, yb1, xb2, yb2, 0.0, 0.0, &start1, &end1, &start2, &end2) ) { - istart1[ncontact] = start1; - iend1[ncontact] = end1; - istart2[ncontact] = 1; - iend2[ncontact] = 1; - jstart1[ncontact] = ny1-1; - jend1[ncontact] = ny1-1; - jstart2[ncontact] = start2; - jend2[ncontact] = end2; - ncontact++; - } - free(xb1); - free(yb1); - free(xb2); - free(yb2); - } - - /* when tile1 = tile2, we need to consider about folded. Only foled north is considered here */ - if(tile1 == tile2) { - int i, folded = 1; - double dx; - int num; - - num = 0; - xb1 = north_bound(x1, nx1, ny1); - yb1 = north_bound(y1, nx1, ny1); - for(i=0; i1) folded = 0; - - if(folded) { - istart1[ncontact] = 1; - iend1[ncontact] = nx1/2; - istart2[ncontact] = nx1-1; - iend2[ncontact] = nx1/2+1; - jstart1[ncontact] = ny1-1; - jend1[ncontact] = ny1-1; - jstart2[ncontact] = ny1-1; - jend2[ncontact] = ny1-1; - ncontact++; - } - free(xb1); - free(yb1); - } - - return ncontact; - -}; - -/* For simplying reason, we are only deal with nested overlap. - */ - -int get_overlap_contact( int tile1, int tile2, int nx1, int ny1, int nx2, int ny2, - const double *x1, const double *y1, const double *x2, - const double *y2, int *istart1, int *iend1, int *jstart1, int *jend1, - int *istart2, int *iend2, int *jstart2, int *jend2) -{ - int l1, l2, count; - int p1x[4], p1y[4], p2x[4], p2y[4]; - double dx, dy; - - - /* check the four corner of tile 2 */ - - /* southwest corner */ - l2 = 0; - p2x[0] = 0; p2y[0]=0; - count = get_overlap_index(x2[l2], y2[l2], nx1, ny1, x1, y1, p1x, p1y); - /* southeast corner */ - p2x[1] = nx2-1; p2y[1] = 0; - if( count > 0 ) { - l2 = nx2-1; - count = get_overlap_index(x2[l2], y2[l2], nx1, ny1, x1, y1, p1x+1, p1y+1); - } - /* northwest corner */ - p2x[2] = 0; p2y[2] = ny2-1; - if( count > 0 ) { - l2 = (ny2-1)*nx2; - count = get_overlap_index(x2[l2], y2[l2], nx1, ny1, x1, y1, p1x+2, p1y+2); - } - /* northeast corner */ - p2x[3] = nx2-1; p2y[3] = ny2-1; - if( count > 0 ) { - l2 = (ny2-1)*nx2+ nx2-1; - count = get_overlap_index(x2[l2], y2[l2], nx1, ny1, x1, y1, p1x+3, p1y+3); - } - /* check the four corner of tile 1 if count==0 */ - if(count == 0) { - - /* southwest corner */ - l1 = 0; - p1x[0] = 0; p1y[0]=0; - count = get_overlap_index(x1[l1], y1[l1], nx2, ny2, x2, y2, p2x, p2y); - if(count == 0) return 0; - - /* southeast corner */ - p1x[1] = nx1-1; p1y[1] = 0; - l1 = nx1-1; - count = get_overlap_index(x1[l1], y1[l1], nx2, ny2, x2, y2, p2x+1, p2y+1); - if(count == 0) return 0; - - /* northwest corner */ - p1x[2] = 0; p1y[2] = ny1-1; - l1 = (ny1-1)*nx1; - count = get_overlap_index(x1[l1], y1[l1], nx2, ny2, x2, y2, p2x+2, p2y+2); - if(count == 0) return 0; - - /* northeast corner */ - p1x[3] = nx1-1; p1y[3] = ny1-1; - l1 = (ny1-1)*nx1+ nx1-1; - count = get_overlap_index(x1[l1], y1[l1], nx2, ny2, x2, y2, p2x+3, p2y+3); - if(count == 0) return 0; - - } - - -/* for(j1=0; j1=0; i1--) { */ -/* l1 = j1*nx1+i1; */ -/* for(j2=0;j2=0; i2--) { */ -/* l2 = j2*nx2+i2; */ -/* dx = fabs(x1[l1]- x2[l2]); */ -/* dy = fabs(y1[l1]- y2[l2]); */ -/* if( dx < EPSLN && dy =0; j1--) for(i1=0;i1=0; j2--) for(i2=0; i2=0; j1--) for(i1=nx1-1;i1>=0; i1--) { */ -/* l1 = j1*nx1+i1; */ -/* for(j2=ny2-1;j2>=0; j2--) for(i2=nx2-1; i2>=0; i2--) { */ -/* l2 = j2*nx2+i2; */ -/* dx = fabs(x1[l1]- x2[l2]); */ -/* dy = fabs(y1[l1]- y2[l2]); */ -/* if( dx < EPSLN && dy =0; i1--) { - for(i2=size2-1; i2>=0; i2--) { - dx = fabs(x1[i1]- x2[i2]); - dx = min(dx, fabs(dx-periodx)); - dy = fabs(y1[i1]- y2[i2]); - dy = min(dy, fabs(dy-periody)); - if( dx < EPSLN && dy *end1 ) - (*start1)--; - else - (*end1)--; - - if(*start2 > *end2 ) - (*start2)--; - else - (*end2)--; - - return 1; - -}; - - -double* west_bound(const double *data, int nx, int ny) -{ - int i; - double *bnd; - bnd = (double *)malloc(ny*sizeof(double)); - for(i=0; i -#include -#include -#include -#include "get_contact.h" -#include "constant.h" -#include "mpp_io.h" -#include "mpp.h" - -char *usage[] = { - "", - " make_solo_mosaic --num_tiles ntiles --dir directory [--mosaic_name mosaic_name] ", - " [--tile_file tile_file] [--periodx #] [--periody #] ", - " ", - "make_solo_mosaic generates Mosaic information between tiles. The mosaic ", - "information includes: list of tile files, list of contact region ", - "specified by index, contact type. ", - " ", - "make_solo_mosaic takes the following flags: ", - " ", - "REQUIRED: ", - " ", - "--num_tiles ntiles Number of tiles in the mosaic. ", - " ", - "--dir directory The directory that contains all the tile grid file. ", - " ", - "OPTIONAL FLAGS ", - " ", - "--mosaic_name name mosaic name. The output file will be mosaic_name.nc. ", - " default is 'mosaic'. ", - " ", - "--tile_file tile_file Grid file name of all tiles in the mosaic. The file name ", - " should be relative file name ( exclude the absolute ", - " file path). The absolute file path will be dir/tile_file. ", - " If this option is not specified, the tile_file will be ", - " 'horizontal_grid.tile#.nc' ", - " ", - "--periodx # Specify the period in x-direction of mosaic. Default ", - " value is 0 (not periodic). ", - " ", - "--periody # Specify the period in y-direction of mosaic. Default ", - " value is 0 (not periodic). ", - " ", - " Example 1: create solo mosaic for tripolar grid(grid file name is ocean_grid.nc.", - " make_solo_mosaic --num_tiles 1 --dir ./ --mosaic_name ocean_mosaic ", - " --tile_file ocean_hgrid.nc --periodx 360 ", - " ", - " Example 2: create solo mosaic for torus. ", - " make_solo_mosaic --num_tiles 1 --dir ./ --mosaic_name ocean_mosaic ", - " --tile_file ocean_hgrid.nc --periodx 360 --periody 360 ", - " ", - " Example 3: create solo mosaic for C48 grid. ", - " make_solo_mosaic --num_tiles 6 --dir ./ --mosaic C48_mosaic --tile_file ", - " C48_grid.tile1.nc,C48_grid.tile2.nc,C48_grid.tile3.nc,C48_grid.tile4.nc, ", - " C48_grid.tile5.nc,C48_grid.tile6.nc ", - " ", - NULL}; - -const int MAXTILE = 100; -const int MAXCONTACT = 100; -const int SHORTSTRING = 32; -char grid_version[] = "0.2"; -char tagname[] = "$Name: fre-nctools-bronx-10 $"; - -main (int argc, char *argv[]) -{ - - extern char *optarg; - char *pch=NULL, *dir=NULL, history[512], entry[1280]; - char tilefile[MAXTILE][STRING], tiletype[MAXTILE][SHORTSTRING]; - char tile_name[MAXTILE][STRING]; - int ntiles=0, nfiles=0, ncontact=0; - int *nxp, *nyp; - double **x, **y; - double periodx=0, periody=0; - int contact_tile1[MAXCONTACT], contact_tile2[MAXCONTACT]; - int contact_tile1_istart[MAXCONTACT], contact_tile1_iend[MAXCONTACT]; - int contact_tile1_jstart[MAXCONTACT], contact_tile1_jend[MAXCONTACT]; - int contact_tile2_istart[MAXCONTACT], contact_tile2_iend[MAXCONTACT]; - int contact_tile2_jstart[MAXCONTACT], contact_tile2_jend[MAXCONTACT]; - char mosaic_name[128] = "solo_mosaic"; - char grid_descriptor[128] = ""; - int c, i, n, m, l, errflg; - - int option_index = 0; - static struct option long_options[] = { - {"mosaic_name", required_argument, NULL, 'm'}, - {"num_tiles", required_argument, NULL, 'n'}, - {"grid_descriptor", required_argument, NULL, 'g'}, - {"tile_file", required_argument, NULL, 'f'}, - {"periodx", required_argument, NULL, 'x'}, - {"periody", required_argument, NULL, 'y'}, - {"directory", required_argument, NULL, 'd'}, - {NULL, 0, NULL, 0} - }; - - mpp_init(&argc, &argv); - /* this tool must be run one processor */ - if(mpp_npes()>1) mpp_error("make_solo_mosaic: this tool must be run on one processor"); - - errflg = (argc == 1); - /* First read command line arguments. */ - - while ((c = getopt_long(argc, argv, "h", long_options, &option_index)) != -1) { - switch (c) { - case 'n': - ntiles = atoi(optarg); - break; - case 'm': - strcpy(mosaic_name, optarg); - break; - case 'g': - strcpy(grid_descriptor, optarg); - break; - case 'f': - strcpy(entry, optarg); - pch = strtok(entry, ", "); - nfiles = 0; - while( pch != NULL) { - strcpy(tilefile[nfiles++], pch); - pch = strtok(NULL, ", "); - } - break; - case 'x': - periodx = atof(optarg); - break; - case 'y': - periody = atof(optarg); - break; - case 'd': // path of the simple grid file. - dir = optarg; - break; - case '?': - errflg++; - } - } - - if (errflg || ntiles < 1 || !dir ) { - char **u = usage; - while (*u) { fprintf(stderr, "%s\n", *u); u++; } - exit(2); - } - - strcpy(history,argv[0]); - - for(i=1;i MAXTILE) { - mpp_error("make_solo_mosaic: number of tiles is greater than MAXTILE."); - } - - /*--- if file name is not specified through -f, file name will be horizontal_grid.tile#.nc */ - if(nfiles == 0) { - if(ntiles == 1) { - sprintf(tilefile[0],"horizontal_grid.nc"); - } - else { - for(n=0; nMAXCONTACT) mpp_error("make_solo_mosaic: number of contacts is more than MAXCONTACT 1"); - for(l=0; lMAXCONTACT) mpp_error("make_solo_mosaic: number of contacts is more than MAXCONTACT 2"); - for(l=0; l0) dim_ncontact = mpp_def_dim(fid, "ncontact", ncontact); - dim_string = mpp_def_dim(fid, "string", STRING); - /* define variable */ - id_mosaic = mpp_def_var(fid, "mosaic", MPP_CHAR, 1, &dim_string, 4, "standard_name", - "grid_mosaic_spec", "children", "gridtiles", "contact_regions", "contacts", - "grid_descriptor", grid_descriptor); - dim[0] = dim_ntiles; dim[1] = dim_string; - id_griddir = mpp_def_var(fid, "gridlocation", MPP_CHAR, 1, &dim[1], 1, - "standard_name", "grid_file_location"); - id_gridfiles = mpp_def_var(fid, "gridfiles", MPP_CHAR, 2, dim, 0); - id_gridtiles = mpp_def_var(fid, "gridtiles", MPP_CHAR, 2, dim, 0); - - if(ncontact>0) { - dim[0] = dim_ncontact; dim[1] = dim_string; - id_contacts = mpp_def_var(fid, "contacts", MPP_CHAR, 2, dim, 5, "standard_name", "grid_contact_spec", - "contact_type", "boundary", "alignment", "true", - "contact_index", "contact_index", "orientation", "orient"); - id_contact_index = mpp_def_var(fid, "contact_index", MPP_CHAR, 2, dim, 1, "standard_name", - "starting_ending_point_index_of_contact"); - - } - mpp_def_global_att(fid, "grid_version", grid_version); - mpp_def_global_att(fid, "code_version", tagname); - mpp_def_global_att(fid, "history", history); - mpp_end_def(fid); - - /* write out data */ - for(i=0; i<4; i++) { - start[i] = 0; nwrite[i] = 1; - } - nwrite[0] = strlen(mosaic_name); - mpp_put_var_value_block(fid, id_mosaic, start, nwrite, mosaic_name); - nwrite[0] = strlen(dir); - mpp_put_var_value_block(fid, id_griddir, start, nwrite, dir); - nwrite[0] = 1; - for(n=0; n -#include -#include -#include -#include -#include -#include -#include - -static pid_t gettid(void) -{ - return syscall(__NR_gettid); -} - -/* - * Returns this thread's CPU affinity, if bound to a single core, - * or else -1. - */ -int get_cpu_affinity(void) -{ -#ifdef use_libMPI - cpu_set_t coremask; /* core affinity mask */ - - CPU_ZERO(&coremask); - if (sched_getaffinity(gettid(),sizeof(cpu_set_t),&coremask) != 0) { - fprintf(stderr,"Unable to get thread %d affinity. %s\n",gettid(),strerror(errno)); - } - - int cpu; - int first_cpu = -1; /* first CPU in range */ - int last_cpu = -1; /* last CPU in range */ - for (cpu=0;cpu < CPU_SETSIZE;cpu++) { - if (CPU_ISSET(cpu,&coremask)) { - if (first_cpu == -1) { - first_cpu = cpu; - } else { - last_cpu = cpu; - } - } - } - - return (last_cpu == -1) ? first_cpu : -1; -#else - return 0; -#endif - -} - -int get_cpu_affinity_(void) { return get_cpu_affinity(); } /* Fortran interface */ - - -/* - * Set CPU affinity to one core. - */ -void set_cpu_affinity( int cpu ) -{ - cpu_set_t coremask; /* core affinity mask */ - - CPU_ZERO(&coremask); - CPU_SET(cpu,&coremask); - if (sched_setaffinity(gettid(),sizeof(cpu_set_t),&coremask) != 0) { - fprintf(stderr,"Unable to set thread %d affinity. %s\n",gettid(),strerror(errno)); - } -} - -void set_cpu_affinity_(int *cpu) { set_cpu_affinity(*cpu); } /* Fortran interface */ diff --git a/sorc/fre-nctools.fd/tools/shared/mpp.c b/sorc/fre-nctools.fd/tools/shared/mpp.c deleted file mode 100644 index 3207c6ec10..0000000000 --- a/sorc/fre-nctools.fd/tools/shared/mpp.c +++ /dev/null @@ -1,353 +0,0 @@ -#include -#include -#include -#include -#include -#ifdef use_libMPI -#include -#endif -#include "mpp.h" - - -/**************************************************** - global variables -*****************************************************/ -int npes, root_pe, pe; -int *pelist=NULL; -const int tag = 1; -#ifdef use_libMPI -MPI_Request *request; -#endif - -/************************************************************** - void mpp_init() - this routine will create communicator. -***************************************************************/ - -void mpp_init(int *argc, char ***argv) -{ - int n; - -#ifdef use_libMPI - MPI_Init(argc, argv); - MPI_Comm_rank(MPI_COMM_WORLD,&pe); - MPI_Comm_size(MPI_COMM_WORLD,&npes); - request = (MPI_Request *)malloc(npes*sizeof(MPI_Request)); - for(n=0; nto_pe in queue */ - if(request[to_pe] != MPI_REQUEST_NULL) { - MPI_Wait( request+to_pe, &status ); - } - - MPI_Isend(data, size, MPI_DOUBLE, to_pe, tag, MPI_COMM_WORLD, request+to_pe); -#endif - -}; /* mpp_send_double */ - - -/************************************************************* - void mpp_send_int(const int* data, int size, int to_pe) - send data to "to_pe" -*************************************************************/ - -void mpp_send_int(const int* data, int size, int to_pe) -{ -#ifdef use_libMPI - MPI_Status status; - if(request[to_pe] != MPI_REQUEST_NULL) { - MPI_Wait( request+to_pe, &status ); - } - - MPI_Isend(data, size, MPI_INT, to_pe, tag, MPI_COMM_WORLD, request+to_pe); -#endif - -}; /* mpp_send_int */ - -/*********************************************************** - void mpp_recv_double(double* data, int size, int from_pe) - receive data from "from_pe" -***********************************************************/ - -void mpp_recv_double(double* data, int size, int from_pe) -{ -#ifdef use_libMPI - MPI_Status status; - MPI_Recv(data, size, MPI_DOUBLE, from_pe, MPI_ANY_TAG, MPI_COMM_WORLD,&status); -#endif -}; /* mpp_recv_double */ - -/*********************************************************** - void mpp_recv_int(int* data, int size, int from_pe) - receive data from "from_pe" -***********************************************************/ - -void mpp_recv_int(int* data, int size, int from_pe) -{ -#ifdef use_libMPI - MPI_Status status; - MPI_Recv(data, size, MPI_INT, from_pe, MPI_ANY_TAG, MPI_COMM_WORLD,&status); -#endif -}; /* mpp_recv_int */ - - -/******************************************************************************* - int mpp_sum_int(int count, int *data) - sum integer over all the pes. -*******************************************************************************/ -void mpp_sum_int(int count, int *data) -{ - -#ifdef use_libMPI - int i; - int *sum; - sum = (int *)malloc(count*sizeof(int)); - MPI_Allreduce(data, sum, count, MPI_INT, MPI_SUM, MPI_COMM_WORLD); - for(i=0; i -#include -#include "mpp.h" -#include "mpp_domain.h" - -/*********************************************************** - global variables -***********************************************************/ -int pe, npes, root_pe; -#define MAX_BUFFER_SIZE 10000000 -double rBuffer[MAX_BUFFER_SIZE]; -double sBuffer[MAX_BUFFER_SIZE]; - -/************************************************************ - void mpp_domain_init() - initialization routine. get the processor information. - memory allocation. -************************************************************/ -void mpp_domain_init( ) -{ - pe = mpp_pe(); - npes = mpp_npes(); - root_pe = mpp_root_pe(); - -}; /* mpp_domain_init */ - -/*********************************************************** - void mpp_domain_end() - release memory. -***********************************************************/ -void mpp_domain_end () -{ - /* will add something here if needed */ -}; - -/************************************************************ - void mpp_define_layout() - define domain layout based on given grid resolution and - number of processors -***********************************************************/ - -void mpp_define_layout(int ni, int nj, int ndivs, int layout[]) -{ - int idiv, jdiv; - float fdiv; - - /*first try to divide ndivs in the domain aspect ratio: - if imperfect aspect, reduce idiv till it divides ndivs */ - fdiv = sqrt((1.0*ndivs*ni)/nj); - idiv = floor(fdiv); - if(fdiv-idiv > 0.5) idiv = idiv + 1; - idiv = (idiv>1) ? idiv : 1; /*for isz=1 line above can give 0*/ - while( ndivs%idiv != 0 ) { - idiv = idiv - 1; - } /*will terminate at idiv=1 if not before*/ - jdiv = ndivs/idiv; - layout[0] = idiv; - layout[1] = jdiv; -}; - -/*************************************************************** - void mpp_compute_extent(int npts, int ndivs, int *ibegin, int *iend) - - Compute extent of 1-D decomposition - - problem of dividing nx points into n domains maintaining symmetry - i.e nx=18 n=4 4554 and 5445 are solutions but 4455 is not. - this will always work for nx even n even or odd - this will always work for nx odd, n odd - this will never work for nx odd, n even: for this case we supersede the mirror calculation - symmetrize = .NOT. ( mod(ndivs,2).EQ.0 .AND. mod(ieg-isg+1,2).EQ.1 ) - nx even n odd fails if n>nx/2 - -***************************************************************/ -void mpp_compute_extent(int npts, int ndivs, int *ibegin, int *iend) -{ - int ndivs_is_odd, npts_is_odd, symmetrize; - int isg, ieg, is, ie; - int imax, ndmax, ndmirror; - int ndiv; - - if(ndivs > npts ) { - mpp_error("mpp_compute_extent: more divisions requested than rows available. " ); - } - - ndivs_is_odd = ndivs%2; - npts_is_odd = npts%2; - symmetrize = 0; - if( ndivs_is_odd && npts_is_odd ) symmetrize = 1; - if( ndivs_is_odd == 0 && npts_is_odd == 0 ) symmetrize = 1; - if( ndivs_is_odd && npts_is_odd == 0 && ndivs < npts/2 ) symmetrize = 1; - - isg = 0; - ieg = npts-1; - is = isg; - for(ndiv=0; ndiv ndiv && symmetrize ) { /* only for domains over the midpoint */ - /*mirror extents, the max(,) is to eliminate overlaps */ - ibegin[ndmirror] = max( isg+ieg-ie, ie+1 ); - iend[ndmirror] = max( isg+ieg-is, ie+1 ); - imax = ibegin[ndmirror] - 1; - ndmax --; - } - } - else { - if( symmetrize ){ - /*do top half of decomposition by retrieving saved values */ - is = ibegin[ndiv]; - ie = iend[ndiv]; - } - else { - ie = is + ceil((imax-is+1.0)/(ndmax-ndiv)) - 1; - } - } - - ibegin[ndiv] = is; - iend[ndiv] = ie; - if( ie < is )mpp_error("mpp_domains(mpp_compute_extent): domain extents must be positive definite." ); - if( ndiv == ndivs-1 && iend[ndiv] != ieg ) - mpp_error( "mpp_domains(mpp_compute_extent): domain extents do not span space completely." ); - is = ie + 1; - } - -}; /* mpp_compute_extent */ - - -/*********************************************************** - void mpp_define_domain_1d(int size, domain1D *domain ) - define 1-D domain decomposition. -**********************************************************/ -void mpp_define_domain_1d(int npts, int ndivs, domain1D *domain ) -{ - int n, npts_left, pos, size; - - domain->beglist = (int *)malloc(ndivs*sizeof(int)); - domain->endlist = (int *)malloc(ndivs*sizeof(int)); - - mpp_compute_extent(npts, ndivs, domain->beglist, domain->endlist); - - if(npes == ndivs) { - domain->start = domain->beglist[pe]; - domain->end = domain->endlist[pe]; - domain->size = domain->end - domain->start + 1; - domain->sizeg = npts; - } - -}; /* mpp_define_domain_1d */ - - -/************************************************************ - void define_domain(int ni, int nj, int layout[], int xhalo, int yhalo, domain2D *domain ) - define 2D domain decomposition -************************************************************/ - -void mpp_define_domain2d(int ni, int nj, int layout[], int xhalo, int yhalo, domain2D *domain ) -{ - domain1D domx, domy; - int i, j, posx, posy, n; - - domain->isclist = (int *)malloc(layout[0]*layout[1]*sizeof(int)); - domain->ieclist = (int *)malloc(layout[0]*layout[1]*sizeof(int)); - domain->jsclist = (int *)malloc(layout[0]*layout[1]*sizeof(int)); - domain->jeclist = (int *)malloc(layout[0]*layout[1]*sizeof(int)); - - mpp_define_domain_1d(ni, layout[0], &domx); - mpp_define_domain_1d(nj, layout[1], &domy); - - n = 0; - for(j=0; jisclist[n] = domx.beglist[i]+xhalo; - domain->ieclist[n] = domx.endlist[i]+xhalo; - domain->jsclist[n] = domy.beglist[j]+yhalo; - domain->jeclist[n] = domy.endlist[j]+yhalo; - n++; - } - } - - domain->xhalo = xhalo; - domain->yhalo = yhalo; - domain->isc = domain->isclist[pe]; - domain->iec = domain->ieclist[pe]; - domain->jsc = domain->jsclist[pe]; - domain->jec = domain->jeclist[pe]; - domain->isd = domain->isc - xhalo; - domain->ied = domain->iec + xhalo; - domain->jsd = domain->jsc - yhalo; - domain->jed = domain->jec + yhalo; - domain->nxc = domain->iec - domain->isc + 1; - domain->nyc = domain->jec - domain->jsc + 1; - domain->nxd = domain->ied - domain->isd + 1; - domain->nyd = domain->jed - domain->jsd + 1; - domain->nxg = ni; - domain->nyg = nj; - - mpp_delete_domain1d(&domx); - mpp_delete_domain1d(&domy); - -}; /* mpp_define_domain2d */ - -/**************************************************************************** - void mpp_delete_domain1d(domain1D *domain); - release the memory assigned to 1-D domain -*****************************************************************************/ -void mpp_delete_domain1d(domain1D *domain) -{ - - free(domain->beglist); - free(domain->endlist); - -}; /* mpp_delete_domain1d */ - -/**************************************************************************** - void mpp_delete_domain2d(domain2D *domain); - release the memory assigned to 2-D domain -*****************************************************************************/ -void mpp_delete_domain2d(domain2D *domain) -{ - - free(domain->isclist); - free(domain->ieclist); - free(domain->jsclist); - free(domain->jeclist); - -}; /* mpp_delete_domain2d */ - - - -/*********************************************************** - void get_get_compute_domain(omain2D domain, int *is, int *ie, int *js, int *je) - get the compute domain decomposition -***********************************************************/ - -void mpp_get_compute_domain2d(domain2D domain, int *is, int *ie, int *js, int *je) -{ - *is = domain.isc; - *ie = domain.iec; - *js = domain.jsc; - *je = domain.jec; -}; /* mpp_get_compute_domain */ - -/*********************************************************** - void get_get_compute_domain( int *is, int *ie, int *js, int *je) - get the compute domain decomposition of current pe list. -***********************************************************/ - -void mpp_get_compute_domains2d(domain2D domain, int *is, int *ie, int *js, int *je) -{ - int n; - - for(n=0; n MAX_BUFFER_SIZE) { - send_buffer = (double *)malloc(send_size*sizeof(double)); - } - else { - send_buffer = sBuffer; - } - n = 0; - for(k=0; kMAX_BUFFER_SIZE){ - recv_buffer = ( double *) malloc(recv_size*sizeof(double)); - } - else { - recv_buffer = rBuffer; - } - mpp_recv_double(recv_buffer, recv_size, p ); - n = 0; - for(k=0;kMAX_BUFFER_SIZE) - free(recv_buffer); - else - recv_buffer=NULL; - } - } - } - mpp_sync_self(); -/*z1l: mpp_sync is needed when running on multiple processor job. Otherwisde the memory -usage will increase. For example, remap_land will fail when running on 270 processors */ - mpp_sync(); - - if(send_buffer != NULL) { - if(send_size>MAX_BUFFER_SIZE) - free(send_buffer); - else - send_buffer = NULL; - } -}; /* mpp_global_field_double */ - -/******************************************************************************* - void mpp_gather_field_int(int lsize, int *ldata, int *gdata) - gather integer data onto every processor -*******************************************************************************/ -void mpp_gather_field_int(int lsize, int *ldata, int *gdata) -{ - int n, p, i; - int *rbuffer=NULL; - int *rsize=NULL; - - rsize = (int *)malloc(npes*sizeof(int)); - - - for(p = 0; p0) mpp_send_int(ldata, lsize, p); - } - } - n = 0; - /* receive from other pe and fill the gdata */ - for(p = 0; p0) { - rbuffer = ( int *) malloc(rsize[p]*sizeof(int)); - mpp_recv_int(rbuffer, rsize[p], p ); - for(i=0; i0) mpp_send_int(ldata, lsize, root_pe); - } - else { - int cur_size; - n = 0; - cur_size = 0; - /* receive from other pe and fill the gdata */ - for(p = 0; p0) { - if( rsize[p] > cur_size ) { - if( rbuffer ) free(rbuffer); - rbuffer = ( int *) malloc(rsize[p]*sizeof(int)); - cur_size = rsize[p]; - } - mpp_recv_int(rbuffer, rsize[p], p ); - for(i=0; i0) mpp_send_double(ldata, lsize, root_pe); - } - else { - int cur_size; - n = 0; - cur_size = 0; - /* receive from other pe and fill the gdata */ - for(p = 0; p0) { - if( rsize[p] > cur_size ) { - if( rbuffer ) free(rbuffer); - rbuffer = ( double *) malloc(rsize[p]*sizeof(double)); - cur_size = rsize[p]; - } - mpp_recv_double(rbuffer, rsize[p], p ); - for(i=0; i0) mpp_send_double(ldata, lsize, p); - } - } - n = 0; - /* receive from other pe and fill the gdata */ - for(p = 0; p0) { - rbuffer = (double *) malloc(rsize[p]*sizeof(double)); - mpp_recv_double(rbuffer, rsize[p], p ); - for(i=0; ib ? a:b) -typedef struct{ - int start, end; /* starting and ending index of compute domain */ - int size; /* compute domain size */ - int sizeg; /* global domain size */ - int *beglist, *endlist; /* list of starting and ending index of compute domain */ -} domain1D; - -typedef struct { - int isc, iec, jsc, jec; /* compute domain decomposition */ - int isd, ied, jsd, jed; /* data domain decomposition */ - int nxc, nyc; /* compute domain size */ - int nxd, nyd; /* data domain size */ - int nxg, nyg; /* global domain size */ - int *isclist, *ieclist; /* list of i-index of compute domain */ - int *jsclist, *jeclist; /* list of j-index of compute domain */ - int xhalo, yhalo; /* halo size */ -} domain2D; - -void mpp_domain_init(); -void mpp_domain_end(); -void mpp_define_layout(int ni, int nj, int ndivs, int layout[]); -void mpp_compute_extent(int npts, int ndivs, int *ibegin, int *iend); -void mpp_define_domain1d(int npts, int ndvis, domain1D *domain ); -void mpp_define_domain2d(int ni, int nj, int layout[], int xhalo, int yhalo, domain2D *domain ); -void mpp_delete_domain1d(domain1D *domain); -void mpp_delete_domain2d(domain2D *domain); -void mpp_get_compute_domain2d(domain2D domain, int *is, int *ie, int *js, int *je); -void mpp_get_data_domain2d(domain2D domain, int *is, int *ie, int *js, int *je); -void mpp_get_global_domain2d(domain2D domain, int *nx, int *ny); -void mpp_get_compute_domains2d(domain2D domain, int *is, int *ie, int *js, int *je); -void mpp_get_shift(domain2D domain, int sizex, int sizey, int *ishift, int *jshift); -void mpp_global_field_double(domain2D domain, int sizex, int sizey, const double* ldata, double* gdata); -void mpp_global_field_int(domain2D domain, int sizex, int sizey, const int* ldata, int* gdata); -void mpp_global_field_double_3D(domain2D domain, int sizex, int sizey, int sizez, - const double* ldata, double* gdata); -void mpp_global_field_all_double(domain2D domain, int sizex, int sizey, const double* ldata, double* gdata); -void mpp_gather_field_int(int lsize, int *ldata, int *gdata); -void mpp_gather_field_double(int lsize, double *ldata, double *gdata); -void mpp_gather_field_double_root(int lsize, double *ldata, double *gdata); -void mpp_gather_field_int_root(int lsize, int *ldata, int *gdata); -#endif diff --git a/sorc/fre-nctools.fd/tools/shared/mpp_io.c b/sorc/fre-nctools.fd/tools/shared/mpp_io.c deleted file mode 100644 index 5e6307ed9d..0000000000 --- a/sorc/fre-nctools.fd/tools/shared/mpp_io.c +++ /dev/null @@ -1,1316 +0,0 @@ -#include -#include -#include -#include -#include -#include "mpp.h" -#include "mpp_domain.h" -#include "mpp_io.h" - -#define MAXFILE 200 -#define MAXVAR 1024 -#define STRING 255 - -typedef struct { - int fldid; - char name[128]; - nc_type type; -} VarType; - -typedef struct { - int ncid; - char name[512]; - int action; /* indicate the action, MPP_WRITE or MPP_READ */ - int status; /* indicate if the file is opened or closed */ - int nvar; - VarType *var; -} FileType; - -FileType files[MAXFILE]; -int nfiles = 0; - -int in_format = NC_FORMAT_NETCDF4_CLASSIC; - -/********************************************************************* - void netcdf_error( int status ) - status is the returning value of netcdf call. this routine will - handle the error when status is not NC_NOERR. -********************************************************************/ -void netcdf_error(const char *msg, int status ) -{ - char errmsg[512]; - - sprintf( errmsg, "%s: %s", msg, nc_strerror(status) ); - mpp_error(errmsg); - -}; /* netcdf_error */ - - -/************************************************************* - int mpp_open(char *filename, int action) - open netcdf file to read or write. return the id for the file opened. - Here the id is not the netcdf ncid of the file opened, it is the index - in the mpp_io data files. If the file is already opened, will exit with - an error message. For the write action, mpp_open can only be called once. - For the read action, the file could be open and then close and then open - again. The action should be MPP_READ, MPP_WRITE, a constant defined in - mpp_io.h. When action is MPP_WRITE, file will be created on root pe. -************************************************************/ - -int mpp_open(const char *file, int action) { - char curfile[STRING]; - char errmsg[512]; - int ncid, status, istat, n, fid; -/* size_t blksz=65536; */ - size_t blksz=1048576; - - /* write only from root pe. */ - if(action != MPP_READ && mpp_pe() != mpp_root_pe() ) return -1; - /*if file is not ended with .nc add .nc at the end. */ - strcpy(curfile, file); - if(strstr(curfile, ".nc") == NULL) strcat(curfile,".nc"); - - /* look through currently files to make sure the file is not in the list*/ - fid = -1; - for(n=0; n -1) { - if(files[n].action == MPP_WRITE) { - sprintf( errmsg, "mpp_io(mpp_open): %s is already created for write", file); - mpp_error(errmsg); - } - if(files[n].status) { - sprintf( errmsg, "mpp_io(mpp_open): %s is already opened", file); - mpp_error(errmsg); - } - } - else { - fid = nfiles; - nfiles++; - if(nfiles > MAXFILE) mpp_error("mpp_io(mpp_open): nfiles is larger than MAXFILE, increase MAXFILE"); - strcpy(files[fid].name, file); - files[fid].nvar = 0; - files[fid].var = (VarType *)malloc(MAXVAR*sizeof(VarType)); - } - switch (action) { - case MPP_WRITE: -#ifdef use_netCDF3 -#ifdef NC_64BIT_OFFSET - status = nc_create(curfile, NC_64BIT_OFFSET, &ncid); -#else - status = nc_create(curfile, NC_WRITE, &ncid); -#endif -#elif use_netCDF4 - status = nc__create(curfile, NC_NETCDF4, 0, &blksz, &ncid); -#else - switch (in_format) { - case NC_FORMAT_NETCDF4: - status = nc__create(curfile, NC_NETCDF4, 0, &blksz, &ncid); - break; - case NC_FORMAT_NETCDF4_CLASSIC: - status = nc__create(curfile, NC_NETCDF4 | NC_CLASSIC_MODEL, 0, &blksz, &ncid); - break; - case NC_FORMAT_64BIT: - status = nc__create(curfile, NC_CLOBBER | NC_64BIT_OFFSET, 0, &blksz, &ncid); - break; - case NC_FORMAT_CLASSIC: - status = nc__create(curfile, NC_CLOBBER | NC_CLASSIC_MODEL, 0, &blksz, &ncid); - break; - default: - sprintf(errmsg, "mpp_io(mpp_open): Unknown netCDF format"); - mpp_error(errmsg); - } -#endif - break; - case MPP_APPEND: - status = nc_open(curfile, NC_WRITE, &ncid); - break; - case MPP_READ: - status = nc_open(curfile,NC_NOWRITE, &ncid); -#ifndef use_netCDF3 - istat = nc_inq_format(ncid,&in_format); -#endif - break; - default: - sprintf(errmsg, "mpp_io(mpp_open): the action should be MPP_WRITE or MPP_READ when opening file %s", file); - mpp_error(errmsg); - } - - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_open): error in opening file %s", file); - netcdf_error(errmsg, status); - } - - files[fid].ncid = ncid; - files[fid].status = 1; - files[fid].action = action; - - return fid; -} - -/* close the file */ -void mpp_close(int fid) -{ - int status; - char errmsg[512]; - - if(fid == -1 && mpp_pe() != mpp_root_pe() ) return; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_close): invalid id number, id should be " - "a nonnegative integer that less than nfiles"); - - status = nc_close(files[fid].ncid); - if(status != NC_NOERR) { - sprintf( errmsg, "mpp_io(mpp_close): error in closing files %s ", files[fid].name); - netcdf_error(errmsg, status); - } - files[fid].ncid = 0; - files[fid].status = 0; - -} - - -int mpp_get_nvars(int fid) -{ - int nvars, status; - char errmsg[512]; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_nvars): invalid id number, id should be " - "a nonnegative integer that less than nfiles"); - status = nc_inq_nvars(files[fid].ncid, &nvars); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_nvars): error in get nvars from file %s", files[fid].name); - netcdf_error(errmsg, status); - } - - return nvars; -} - -void mpp_get_varname(int fid, int varid, char *name) -{ - - int status; - char errmsg[512]; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_varname): invalid id number, id should be " - "a nonnegative integer that less than nfiles"); - status = nc_inq_varname(files[fid].ncid, varid, name); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_varname): error in get varname from file %s", files[fid].name); - netcdf_error(errmsg, status); - } - -} - -/*******************************************************************************/ -/* */ -/* The following are routines that retrieve information */ -/* */ -/*******************************************************************************/ - -/********************************************************************* - int mpp_get_dimid(int fid, const char *dimname) - get the id of the dimname from file with fid, -*********************************************************************/ -int mpp_get_dimid(int fid, const char *dimname) -{ - int status, dimid; - char errmsg[512]; - - /* First look through existing variables to see - if the fldid of varname is already retrieved. */ - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_dimid): invalid id number, id should be " - "a nonnegative integer that less than nfiles"); - - status = nc_inq_dimid(files[fid].ncid, dimname, &dimid); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_dimid): error in get dimension id of %s from file %s", dimname, files[fid].name); - netcdf_error(errmsg, status); - } - - return dimid; - -};/* mpp_get_dimid */ - - -/********************************************************************* - int mpp_get_varid(int fid, const char *varname) - get the id of the varname from file with fid, the id will be the index - in files[fid].var. -*********************************************************************/ -int mpp_get_varid(int fid, const char *varname) -{ - int status, fldid, vid, n; - char errmsg[512]; - - /* First look through existing variables to see - if the fldid of varname is already retrieved. */ - if(files[fid].action != MPP_READ && mpp_pe() != mpp_root_pe() ) return -1; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_varid): invalid id number, id should be " - "a nonnegative integer that less than nfiles"); - - for(n=0; n MAXVAR ) mpp_error("mpp_io(mpp_get_varid): nvar is larger than MAXVAR, increase MAXVAR"); - - status = nc_inq_varid(files[fid].ncid, varname, &fldid); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_varid): error in get field_id of variable %s from file %s", varname, files[fid].name); - netcdf_error(errmsg, status); - } - - status = nc_inq_vartype(files[fid].ncid, fldid, &(files[fid].var[vid].type)); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_varid): Error in getting type of of field %s in file %s ", - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - - files[fid].var[vid].fldid = fldid; - strcpy(files[fid].var[vid].name, varname); - return vid; - -};/* mpp_get_varid */ - -/******************************************************************** - int mpp_get_dimlen(char* file, char *name) - Get the dimension. - *******************************************************************/ -int mpp_get_dimlen(int fid, const char *name) -{ - int ncid, dimid, status, len; - size_t size; - char errmsg[512]; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_dimlen): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - ncid = files[fid].ncid; - status = nc_inq_dimid(ncid, name, &dimid); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_dimlen): error in inquiring dimid of %s from file %s", name, files[fid].name); - netcdf_error(errmsg, status); - } - status = nc_inq_dimlen(ncid, dimid, &size); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_dimlen): error in inquiring dimlen of %s from file %s", name, files[fid].name); - netcdf_error(errmsg, status); - } - len = size; - return len; - -}; /* mpp_get_dimlen */ - -/********************************************************************* - void mpp_get_var_value(int fid, int vid, void *data) - read part of var data, the part is defined by start and nread. -*********************************************************************/ -void mpp_get_var_value(int fid, int vid, void *data) -{ - int status; - int *data_i4; - short *data_i2; - float *data_r4; - char errmsg[512]; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_var_value_block): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_get_var_value_block): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - - switch(files[fid].var[vid].type) { - case NC_DOUBLE:case NC_FLOAT: - status = nc_get_var_double(files[fid].ncid, files[fid].var[vid].fldid, data); - break; - case NC_INT: - status = nc_get_var_int(files[fid].ncid, files[fid].var[vid].fldid, data); - break; - case NC_SHORT: - status = nc_get_var_short(files[fid].ncid, files[fid].var[vid].fldid, data); - break; - case NC_CHAR: - status = nc_get_var_text(files[fid].ncid, files[fid].var[vid].fldid, data); - break; - default: - sprintf(errmsg, "mpp_io(mpp_get_var_value): field %s in file %s has an invalid type, " - "the type should be NC_DOUBLE, NC_FLOAT, NC_INT, NC_SHORT or NC_CHAR", - files[fid].var[vid].name, files[fid].name ); - mpp_error(errmsg); - } - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_value): Error in getting value of variable %s from file %s", - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - -}; /* mpp_get_var_value */ - -/********************************************************************* - void mpp_get_var_value_block(int fid, int vid, const size_t *start, const size_t *nread, void *data) - read part of var data, the part is defined by start and nread. -*********************************************************************/ -void mpp_get_var_value_block(int fid, int vid, const size_t *start, const size_t *nread, void *data) -{ - int status; - char errmsg[512]; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_var_value_block): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_get_var_value_block): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - - switch(files[fid].var[vid].type) { - case NC_DOUBLE:case NC_FLOAT: - status = nc_get_vara_double(files[fid].ncid, files[fid].var[vid].fldid, start, nread, data); - break; - case NC_INT: - status = nc_get_vara_int(files[fid].ncid, files[fid].var[vid].fldid, start, nread, data); - break; - case NC_SHORT: - status = nc_get_vara_short(files[fid].ncid, files[fid].var[vid].fldid, start, nread, data); - break; - case NC_CHAR: - status = nc_get_vara_text(files[fid].ncid, files[fid].var[vid].fldid, start, nread, data); - break; - default: - sprintf(errmsg, "mpp_io(mpp_get_var_value_block): field %s in file %s has an invalid type, " - "the type should be NC_DOUBLE, NC_FLOAT, NC_INT, NC_SHORT or NC_CHAR", - files[fid].var[vid].name, files[fid].name ); - mpp_error(errmsg); - } - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_value_block): Error in getting value of variable %s from file %s", - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - -}; /* mpp_get_var_value_block */ - -/******************************************************************* - void mpp_get_var_att(int fid, int vid, const char *name, void *val) - get the attribute value of vid from file fid. - ******************************************************************/ -void mpp_get_var_att(int fid, int vid, const char *name, void *val) -{ - int status; - char errmsg[512]; - nc_type type; - - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_var_att): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_get_var_att): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - - status = nc_inq_atttype(files[fid].ncid, files[fid].var[vid].fldid, name, &type); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_att): Error in getting type of attribute %s of field %s in file %s ", - name, files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - - switch(type) { - case NC_DOUBLE:case NC_FLOAT: - status = nc_get_att_double(files[fid].ncid, files[fid].var[vid].fldid, name, val); - break; - case NC_INT: - status = nc_get_att_int(files[fid].ncid, files[fid].var[vid].fldid, name, val); - break; - case NC_SHORT: - status = nc_get_att_short(files[fid].ncid, files[fid].var[vid].fldid, name, val); - break; - case NC_CHAR: - status = nc_get_att_text(files[fid].ncid, files[fid].var[vid].fldid, name, val); - break; - default: - sprintf(errmsg, "mpp_io(mpp_get_var_att): attribute %s of field %s in file %s has an invalid type, " - "the type should be NC_DOUBLE, NC_FLOAT, NC_INT, NC_SHORT or NC_CHAR", - name, files[fid].var[vid].name, files[fid].name ); - mpp_error(errmsg); - } - - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_att): Error in getting value of attribute %s of variable %s from file %s", - name, files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } -} - -/******************************************************************* - void mpp_get_var_att_double(int fid, int vid, const char *name, double *val) - get the attribute value of vid from file fid. - ******************************************************************/ -void mpp_get_var_att_double(int fid, int vid, const char *name, double *val) -{ - int status; - char errmsg[512]; - nc_type type; - short sval; - int ival; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_var_att): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_get_var_att): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - - status = nc_inq_atttype(files[fid].ncid, files[fid].var[vid].fldid, name, &type); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_att): Error in getting type of attribute %s of field %s in file %s ", - name, files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - - switch(type) { - case NC_DOUBLE:case NC_FLOAT: - status = nc_get_att_double(files[fid].ncid, files[fid].var[vid].fldid, name, val); - break; - case NC_INT: - status = nc_get_att_int(files[fid].ncid, files[fid].var[vid].fldid, name, &ival); - *val = ival; - break; - case NC_SHORT: - status = nc_get_att_short(files[fid].ncid, files[fid].var[vid].fldid, name, &sval); - *val = sval; - break; - default: - sprintf(errmsg, "mpp_io(mpp_get_var_att): attribute %s of field %s in file %s has an invalid type, " - "the type should be NC_DOUBLE, NC_FLOAT, NC_INT, NC_SHORT or NC_CHAR", - name, files[fid].var[vid].name, files[fid].name ); - mpp_error(errmsg); - } - - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_att): Error in getting value of attribute %s of variable %s from file %s", - name, files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } -} - -/******************************************************************* - void mpp_get_global_att(int fid, const char *name, void *val) - get the global attribute from file fid. - ******************************************************************/ -void mpp_get_global_att(int fid, const char *name, void *val) -{ - int status; - char errmsg[512], attval[4096]; - nc_type type; - size_t attlen; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_global_att): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - status = nc_inq_atttype(files[fid].ncid, NC_GLOBAL, name, &type); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_global_att): Error in getting type of global attribute %s in file %s ", - name, files[fid].name ); - netcdf_error(errmsg, status); - } - - - switch(type) { - case NC_DOUBLE:case NC_FLOAT: - status = nc_get_att_double(files[fid].ncid, NC_GLOBAL, name, val); - break; - case NC_INT: - status = nc_get_att_int(files[fid].ncid, NC_GLOBAL, name, val); - break; - case NC_SHORT: - status = nc_get_att_short(files[fid].ncid, NC_GLOBAL, name, val); - break; - case NC_CHAR: - status = nc_inq_attlen(files[fid].ncid, NC_GLOBAL, name, &attlen); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_global_att): Error in getting length of global attribute %s from file %s", - name, files[fid].name ); - netcdf_error(errmsg, status); - } - status = nc_get_att_text(files[fid].ncid, NC_GLOBAL, name, attval); - attval[attlen] = '\0'; - strncpy(val, attval, attlen+1); - break; - default: - sprintf(errmsg, "mpp_io(mpp_get_global_att): global attribute %s in file %s has an invalid type, " - "the type should be NC_DOUBLE, NC_FLOAT, NC_INT, NC_SHORT or NC_CHAR", name, files[fid].name ); - mpp_error(errmsg); - } - - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_global_att): Error in getting value of global attribute %s from file %s", - name, files[fid].name ); - netcdf_error(errmsg, status); - } - -} - -/******************************************************************** - int mpp_get_var_ndim(int fid, int vid) -********************************************************************/ -int mpp_get_var_ndim(int fid, int vid) -{ - int status, ndim; - char errmsg[512]; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_var_ndim): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_get_var_ndim): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - - status = nc_inq_varndims(files[fid].ncid, files[fid].var[vid].fldid, &ndim); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_ndim): Error in getting ndims of var %s from file %s", - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - - return ndim; -} - -/******************************************************************** - nc_type mpp_get_var_type(int fid, int vid) - get var type -********************************************************************/ -nc_type mpp_get_var_type(int fid, int vid) -{ - char errmsg[512]; - - nc_type vartype; - int status; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_var_ndim): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_get_var_ndim): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - - status = nc_inq_vartype(files[fid].ncid, files[fid].var[vid].fldid, &vartype); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_type): Error in getting type of var %s from file %s", - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - - return vartype; -} - - -/********************************************************************* -void mpp_get_var_dimname(int fid, int vid, int i, char *name) -For each dimension we are assuming there is a 1-d field have the same name as the dimension. -*********************************************************************/ -void mpp_get_var_dimname(int fid, int vid, int ind, char *name) -{ - int status, ncid, fldid, ndims, dims[4]; - char errmsg[512]; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_var_dimname): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_get_var_dimname): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - ncid = files[fid].ncid; - fldid = files[fid].var[vid].fldid; - - status = nc_inq_varndims(ncid, fldid, &ndims); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var2D_dimname): Error in getting ndims of var %s from file %s", - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - - if(ind < 0 || ind >= ndims) mpp_error("mpp_io(mpp_get_var_dimname): invalid ind value, ind should be between 0 and ndim-1"); - - status = nc_inq_vardimid(ncid,fldid,dims); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var2D_dimname): Error in getting dimid of var %s from file %s", - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - status = nc_inq_dimname(ncid, dims[ind], name); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var2D_dimname): Error in getting %d dimension name of var %s from file %s", - ind, files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - -}; /* mpp_get_var_dimname */ - - -/*************************************************************************** - char mpp_get_var_cart(int fid, int vid) - get the cart of the dimension variable - *************************************************************************/ -char mpp_get_var_cart(int fid, int vid) -{ - char cart; - int ncid, fldid, status; - char errmsg[512]; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_var_cart): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_get_var_cart): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - cart = 'N'; - - ncid = files[fid].ncid; - fldid = files[fid].var[vid].fldid; - status = nc_get_att_text(ncid, fldid, "cartesian_axis", &cart); - if(status != NC_NOERR)status = nc_get_att_text(ncid, fldid, "axis", &cart); - if(status != NC_NOERR){ - sprintf(errmsg, "mpp_io(mpp_get_var_cart): Error in getting attribute cartesian_axis/axis of " - "dimension variable %s from file %s", files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - - return cart; -} - -/*************************************************************************** - void mpp_get_var_bndname(int fid, int vid, char *bndname) - Get the bound name of dimension variable if it exist, otherwise the value will be 'none' - for time axis, the bounds may be 'climatology' - **************************************************************************/ -void mpp_get_var_bndname(int fid, int vid, char *bndname) -{ - int ncid, fldid, status; - char errmsg[512], name[32]; - size_t siz; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_var_cart): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_get_var_cart): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - ncid = files[fid].ncid; - fldid = files[fid].var[vid].fldid; - strcpy(name, "climatology"); - status = nc_inq_attlen(ncid, fldid, name, &siz); - if(status != NC_NOERR){ - strcpy(name, "bounds"); - status = nc_inq_attlen(ncid, fldid, name, &siz); - } - if(status != NC_NOERR){ - strcpy(name, "edges"); - status = nc_inq_attlen(ncid, fldid, name, &siz); - } - if(status != NC_NOERR) { - strcpy(bndname, "none"); - } - else { - status = nc_get_att_text(ncid, fldid, name, bndname); - bndname[siz] = '\0'; - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_bndname): Error in getting attribute %s of " - "dimension variable %s from file %s", name, files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - } -} - -/*************************************************************************** - int mpp_var_att_exist(int fid, int vid, const char *att) - check the field var has the attribute "att" or not. -***************************************************************************/ -int mpp_var_att_exist(int fid, int vid, const char *att) -{ - int status; - size_t attlen; - nc_type atttype; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_var_att_exist): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_var_att_exist): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - - status = nc_inq_att(files[fid].ncid, files[fid].var[vid].fldid, att, &atttype, &attlen); - if(status == NC_NOERR) - return 1; - else - return 0; - -}; /* mpp_att_exist */ - -/*************************************************************************** - int mpp_global_att_exist(int fid, const char *att) - check has the global attribute "att" or not. -***************************************************************************/ -int mpp_global_att_exist(int fid, const char *att) -{ - int status; - size_t attlen; - nc_type atttype; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_global_att_exist): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - - status = nc_inq_att(files[fid].ncid, NC_GLOBAL, att, &atttype, &attlen); - if(status == NC_NOERR) - return 1; - else - return 0; - -}; /* mpp_att_exist */ - - -/*******************************************************************************/ -/* */ -/* The following are routines to write out data */ -/* */ -/*******************************************************************************/ - -/******************************************************************** - int mpp_def_dim(int fid, char* name, int size) - define dimension. -********************************************************************/ -int mpp_def_dim(int fid, const char* name, int size) { - int dimid, status; - char errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return 0; - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_def_dim): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - - status = nc_def_dim(files[fid].ncid, name, size, &dimid); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_def_dim): Error in defining dimension %s of file %s", - name, files[fid].name ); - netcdf_error(errmsg, status); - } - return dimid; -} /* mpp_def_dim */ - -/******************************************************************** - int mpp_def_var(nt fid, const char* name, int type, int ndim, int *dims, int natts ... ) - define metadata of field. -********************************************************************/ -int mpp_def_var(int fid, const char* name, nc_type type, int ndim, const int *dims, int natts, ...) { - int fldid, status, i, vid, ncid; - va_list ap; - char errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return 0; - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_def_var): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - - ncid = files[fid].ncid; - status = nc_def_var(ncid, name, type, ndim, dims, &fldid); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_def_var): Error in defining var %s of file %s", - name, files[fid].name ); - netcdf_error(errmsg, status); - } - vid = files[fid].nvar; - files[fid].nvar++; - if(files[fid].nvar > MAXVAR ) mpp_error("mpp_io(mpp_def_var): nvar is larger than MAXVAR, increase MAXVAR"); - files[fid].var[vid].fldid = fldid; - files[fid].var[vid].type = type; - strcpy(files[fid].var[vid].name, name); - - va_start(ap, natts); - for( i=0; i=nfiles) mpp_error("mpp_io(mpp_def_global_att): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - status = nc_put_att_text(files[fid].ncid, NC_GLOBAL, name, strlen(val), val); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_def_global_att): Error in put glboal attribute %s of file %s", - name, files[fid].name ); - netcdf_error(errmsg, status); - } - -}; /* mpp_def_global_att */ - - -/********************************************************************* - void mpp_def_global_att_double(int fid, const char *name, const char *val) - write out double global attribute - ********************************************************************/ -void mpp_def_global_att_double(int fid, const char *name, size_t len, const double *val) -{ - size_t status; - char errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_def_global_att_double): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - status = nc_put_att_double(files[fid].ncid, NC_GLOBAL, name, NC_DOUBLE, len, val); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_def_global_att_double): Error in put glboal attribute %s of file %s", - name, files[fid].name ); - netcdf_error(errmsg, status); - } - -}; /* mpp_def_global_att_double */ - - -/********************************************************************** -void mpp_def_var_att(int fid, int vid, const char *attname, const char *attval) - define one field attribute -*********************************************************************/ -void mpp_def_var_att(int fid, int vid, const char *attname, const char *attval) -{ - int ncid, fldid, status; - char errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_def_var_att): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_def_var_att): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - ncid = files[fid].ncid; - fldid = files[fid].var[vid].fldid; - status = nc_put_att_text(ncid,fldid,attname,strlen(attval),attval); - if(status != NC_NOERR ) { - sprintf(errmsg, "mpp_io(mpp_def_var_att): Error in put attribute %s of var %s of file %s", - attname, files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - -} /* mpp_def_var_att */ - - - -/********************************************************************** -void mpp_def_var_att_double(int fid, int vid, const char *attname, double attval) - define one field double attribute -*********************************************************************/ -void mpp_def_var_att_double(int fid, int vid, const char *attname, double attval) -{ - int ncid, fldid, status; - char errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_def_var_att): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_def_var_att): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - ncid = files[fid].ncid; - fldid = files[fid].var[vid].fldid; - status = nc_put_att_double(ncid,fldid,attname,NC_DOUBLE,1,&attval); - if(status != NC_NOERR ) { - sprintf(errmsg, "mpp_io(mpp_def_var_att_double): Error in put attribute %s of var %s of file %s", - attname, files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - -} /* mpp_def_var_att_double */ - - - -/********************************************************************** - void mpp_copy_var_att(fid_in, fid_out) - copy all the field attribute from infile to outfile -**********************************************************************/ -void mpp_copy_var_att(int fid_in, int vid_in, int fid_out, int vid_out) -{ - int natt, status, i, ncid_in, ncid_out, fldid_in, fldid_out; - char name[256]; - char errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return; - - if(fid_in<0 || fid_in >=nfiles) mpp_error("mpp_io(mpp_copy_var_att): invalid fid_in number, fid should be " - "a nonnegative integer that less than nfiles"); - if(fid_out<0 || fid_out >=nfiles) mpp_error("mpp_io(mpp_copy_var_att): invalid fid_out number, fid should be " - "a nonnegative integer that less than nfiles"); - - ncid_in = files[fid_in].ncid; - ncid_out = files[fid_out].ncid; - fldid_in = files[fid_in].var[vid_in].fldid; - fldid_out = files[fid_out].var[vid_out].fldid; - - status = nc_inq_varnatts(ncid_in, fldid_in, &natt); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_copy_var_att): Error in inquiring natts of var %s of file %s", - files[fid_in].var[vid_in].name, files[fid_in].name ); - netcdf_error(errmsg, status); - } - - for(i=0; i=nfiles) mpp_error("mpp_io(mpp_get_var_natts): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - - ncid = files[fid].ncid; - fldid = files[fid].var[vid].fldid; - status = nc_inq_varnatts(ncid, fldid, &natts); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_natts): Error in inquiring natts of var %s of file %s", - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - - return natts; - -} - -void mpp_get_var_attname(int fid, int vid, int i, char *name) -{ - int ncid, fldid, status; - char errmsg[512]; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_get_var_attname): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - ncid = files[fid].ncid; - fldid = files[fid].var[vid].fldid; - - status = nc_inq_attname(ncid, fldid, i, name); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_get_var_attname): Error in inquiring %d attname of var %s of file %s", i, - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - -} - -void mpp_copy_att_by_name(int fid_in, int vid_in, int fid_out, int vid_out, const char *name) -{ - - int status, ncid_in, ncid_out, fldid_in, fldid_out; - char errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return; - - if(fid_in<0 || fid_in >=nfiles) mpp_error("mpp_io(mpp_copy_var_att): invalid fid_in number, fid should be " - "a nonnegative integer that less than nfiles"); - if(fid_out<0 || fid_out >=nfiles) mpp_error("mpp_io(mpp_copy_var_att): invalid fid_out number, fid should be " - "a nonnegative integer that less than nfiles"); - - ncid_in = files[fid_in].ncid; - ncid_out = files[fid_out].ncid; - fldid_in = files[fid_in].var[vid_in].fldid; - fldid_out = files[fid_out].var[vid_out].fldid; - - status = nc_copy_att(ncid_in, fldid_in, name, ncid_out, fldid_out); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_copy_att_by_name): Error in copying att %s of var %s of file %s", name, - files[fid_in].var[vid_in].name, files[fid_in].name ); - netcdf_error(errmsg, status); - } - -} - - -/********************************************************************** - void mpp_copy_global_att(fid_in, fid_out) - copy all the global attribute from infile to outfile -**********************************************************************/ -void mpp_copy_global_att(int fid_in, int fid_out) -{ - int natt, status, i, ncid_in, ncid_out; - char name[256], errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return; - - if(fid_in<0 || fid_in >=nfiles) mpp_error("mpp_io(mpp_copy_global_att): invalid fid_in number, fid should be " - "a nonnegative integer that less than nfiles"); - if(fid_out<0 || fid_out >=nfiles) mpp_error("mpp_io(mpp_copy_global_att): invalid fid_out number, fid should be " - "a nonnegative integer that less than nfiles"); - ncid_in = files[fid_in].ncid; - ncid_out = files[fid_out].ncid; - - status = nc_inq_varnatts(ncid_in, NC_GLOBAL, &natt); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_copy_global_att): Error in inquiring natts(global) of file %s", - files[fid_in].name ); - netcdf_error(errmsg, status); - } - - for(i=0; i=nfiles) mpp_error("mpp_io(mpp_put_var_value): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_put_var_value): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - - switch(files[fid].var[vid].type) { - case NC_DOUBLE:case NC_FLOAT: - status = nc_put_var_double(files[fid].ncid, files[fid].var[vid].fldid, data); - break; - case NC_INT: - status = nc_put_var_int(files[fid].ncid, files[fid].var[vid].fldid, data); - break; - case NC_SHORT: - status = nc_put_var_short(files[fid].ncid, files[fid].var[vid].fldid, data); - break; - case NC_CHAR: - status = nc_put_var_text(files[fid].ncid, files[fid].var[vid].fldid, data); - break; - default: - sprintf(errmsg, "mpp_io(mpp_put_var_value): field %s in file %s has an invalid type, " - "the type should be NC_DOUBLE, NC_FLOAT, NC_INT, NC_SHORT or NC_CHAR", - files[fid].var[vid].name, files[fid].name ); - mpp_error(errmsg); - } - - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_put_var_value): Error in putting value of variable %s from file %s", - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - -}; /* mpp_put_var_value*/ - -/********************************************************************* - void mpp_put_var_value_block(int fid, int vid, const size_t *start, const size_t *nread, void *data) - read part of var data, the part is defined by start and nread. -*********************************************************************/ -void mpp_put_var_value_block(int fid, int vid, const size_t *start, const size_t *nwrite, const void *data) -{ - int status; - char errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_put_var_value_block): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(vid<0 || vid >=files[fid].nvar) mpp_error("mpp_io(mpp_put_var_value_block): invalid vid number, vid should be " - "a nonnegative integer that less than nvar"); - - switch(files[fid].var[vid].type) { - case NC_DOUBLE:case NC_FLOAT: - status = nc_put_vara_double(files[fid].ncid, files[fid].var[vid].fldid, start, nwrite, data); - break; - case NC_INT: - status = nc_put_vara_int(files[fid].ncid, files[fid].var[vid].fldid, start, nwrite, data); - break; - case NC_SHORT: - status = nc_put_vara_short(files[fid].ncid, files[fid].var[vid].fldid, start, nwrite, data); - break; - case NC_CHAR: - status = nc_put_vara_text(files[fid].ncid, files[fid].var[vid].fldid, start, nwrite, data); - break; - default: - sprintf(errmsg, "mpp_io(mpp_put_var_value_block): field %s in file %s has an invalid type, " - "the type should be NC_DOUBLE, NC_FLOAT, NC_INT, NC_SHORT or NC_CHAR", - files[fid].var[vid].name, files[fid].name ); - mpp_error(errmsg); - } - - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_put_var_value_block): Error in putting value of variable %s from file %s", - files[fid].var[vid].name, files[fid].name ); - netcdf_error(errmsg, status); - } - -}; /* mpp_put_var_value_block */ - -/********************************************************************* - void mpp_redef(int fid) - redef the meta data of netcdf file with fid. - *******************************************************************/ -void mpp_redef(int fid) { - int status; - char errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return; - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_redef): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - - status = nc_redef(files[fid].ncid); - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_redef): Error in redef the meta data of file %s", files[fid].name ); - netcdf_error(errmsg, status); - } -} /* mpp_redef */ - -/********************************************************************* - void mpp_end_def(int ncid) - end the definition of netcdf file with ncid. - *******************************************************************/ -void mpp_end_def(int fid) { - int status; - char errmsg[512]; - - if( mpp_pe() != mpp_root_pe() ) return; - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_end_def): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - if(HEADER_BUFFER_VALUE>0) - status = nc__enddef(files[fid].ncid, HEADER_BUFFER_VALUE, 4, 0, 4); - else - status = nc_enddef(files[fid].ncid); - - if(status != NC_NOERR) { - sprintf(errmsg, "mpp_io(mpp_end_def): Error in end definition of file %s", files[fid].name ); - netcdf_error(errmsg, status); - } -} /* mpp_end_def */ - -/******************************************************************************* - int mpp_file_exist(const char *file) - check to see if file exist or not. -*******************************************************************************/ -int mpp_file_exist(const char *file) -{ - int status, ncid; - - status = nc_open(file,NC_NOWRITE, &ncid); - if(status == NC_NOERR) { - status = nc_close(ncid); - if(status != NC_NOERR) netcdf_error("mpp_file_exist(mpp_io):in closing file", status); - return 1; - } - else - return 0; -}; - -int mpp_field_exist(const char *file, const char *field) -{ - int fid, status, varid; - - fid = mpp_open(file, MPP_READ); - status = nc_inq_varid(files[fid].ncid, field, &varid); - mpp_close(fid); - - if(status == NC_NOERR) - return 1; - else - return 0; - -} - -int mpp_dim_exist(int fid, const char *dimname) -{ - int status, dimid; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_dim_exist): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - - status = nc_inq_dimid( files[fid].ncid, dimname, &dimid); - - if(status == NC_NOERR) - return 1; - else - return 0; - -} - - -int mpp_var_exist(int fid, const char *field) -{ - int status, varid; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(mpp_var_exist): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - - status = nc_inq_varid(files[fid].ncid, field, &varid); - - if(status == NC_NOERR) - return 1; - else - return 0; - -} - - -int get_great_circle_algorithm(int fid) -{ - char attval[256]; - char errmsg[512]; - int great_circle_algorithm = 0; - - if(fid<0 || fid >=nfiles) mpp_error("mpp_io(get_great_circle_algorithm): invalid fid number, fid should be " - "a nonnegative integer that less than nfiles"); - - if(mpp_global_att_exist(fid, "great_circle_algorithm")) { - mpp_get_global_att(fid, "great_circle_algorithm", attval); - - if(!strcmp(attval, "TRUE")) - great_circle_algorithm = 1; - else if(!strcmp(attval, "FALSE")) - great_circle_algorithm = 0; - else { - sprintf(errmsg, "mpp_io: global atribute 'great_circle_algorithm' " - "in file %s should have value 'TRUE' or 'FALSE'", files[fid].name); - mpp_error(errmsg); - } - } - - return great_circle_algorithm; -} - diff --git a/sorc/fre-nctools.fd/tools/shared/mpp_io.h b/sorc/fre-nctools.fd/tools/shared/mpp_io.h deleted file mode 100644 index b163abb5ed..0000000000 --- a/sorc/fre-nctools.fd/tools/shared/mpp_io.h +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************** - mpp_io.h - This headers defines interface to read and write netcdf file. All the data -will be written out from root pe. - - contact: Zhi.Liang@noaa.gov - -****************************************************************/ -#ifndef MPP_IO_H_ -#define MPP_IO_H_ -#include - -#define MPP_WRITE 100 -#define MPP_READ 200 -#define MPP_APPEND 300 -#define MPP_INT NC_INT -#define MPP_DOUBLE NC_DOUBLE -#define MPP_CHAR NC_CHAR -#define HEADER_BUFFER_VALUE (16384) -#define MPP_FILL_INT NC_FILL_INT -#define MPP_FILL_DOUBLE NC_FILL_DOUBLE - -int mpp_open(const char *file, int action); -void mpp_close(int ncid); -int mpp_get_nvars(int fid); -void mpp_get_varname(int fid, int varid, char *name); -int mpp_get_varid(int fid, const char *varname); -int mpp_get_dimid(int fid, const char *dimname); -int mpp_get_dimlen(int fid, const char *name); -int mpp_get_var_natts(int fid, int vid); -void mpp_get_var_attname(int fid, int vid, int i, char *name); -void mpp_copy_att_by_name(int fid_in, int vid_in, int fid_out, int vid_out, const char *name); -void mpp_get_var_value(int fid, int vid, void *data); -void mpp_get_var_value_block(int fid, int vid, const size_t *start, const size_t *nread, void *data); -void mpp_get_var_att(int fid, int vid, const char *name, void *val); -void mpp_get_var_att_double(int fid, int vid, const char *name, double *val); -void mpp_get_global_att(int fid, const char *name, void *val); -int mpp_get_var_ndim(int fid, int vid); -nc_type mpp_get_var_type(int fid, int vid); -char mpp_get_var_cart(int fid, int vid); -void mpp_get_var_dimname(int fid, int vid, int ind, char *name); -char mpp_get_dim_cart(int fid, const char *name); -void mpp_get_var_bndname(int fid, int vid, char *bndname); -int mpp_var_att_exist(int fid, int vid, const char *att); -int mpp_global_att_exist(int fid, const char *att); -int mpp_def_dim(int fid, const char* name, int size); -int mpp_def_var(int fid, const char* name, nc_type type, int ndim, const int *dims, int natts, ...); -void mpp_def_global_att(int fid, const char *name, const char *val); -void mpp_def_global_att_double(int fid, const char *name, size_t len, const double *val); -void mpp_def_var_att(int fid, int vid, const char *attname, const char *attval); -void mpp_def_var_att_double(int fid, int vid, const char *attname, double attval); -void mpp_copy_var_att(int fid_in, int vid_in, int fid_out, int vid_out); -void mpp_copy_global_att(int fid_in, int fid_out); -void mpp_put_var_value(int fid, int vid, const void* data); -void mpp_put_var_value_block(int fid, int vid, const size_t *start, const size_t *nread, const void *data); -void mpp_end_def(int fid); -void mpp_redef(int fid); -int mpp_file_exist(const char *file); -int mpp_field_exist(const char *file, const char *field); -int mpp_var_exist(int fid, const char *field); -int mpp_dim_exist(int fid, const char *dimname); -int get_great_circle_algorithm(int fid); -#endif diff --git a/sorc/fre-nctools.fd/tools/shared/tool_util.c b/sorc/fre-nctools.fd/tools/shared/tool_util.c deleted file mode 100644 index 58c9a30791..0000000000 --- a/sorc/fre-nctools.fd/tools/shared/tool_util.c +++ /dev/null @@ -1,751 +0,0 @@ -#include -#include -#include -#include -#include "constant.h" -#include "mosaic_util.h" -#include "read_mosaic.h" -#include "tool_util.h" -#include "interp.h" -#include "mpp.h" -#include "mpp_io.h" -#define D2R (M_PI/180.) -#define R2D (180./M_PI) - -const double SMALL = 1.0e-4; -double distant(double a, double b, double met1, double met2); -double bp_lam(double x, double y, double bpeq, double rp); -double bp_phi(double x, double y, double bpsp, double bpnp); -double lon_in_range(double lon, double lon_strt); -void vtx_insert(double *x, double *y, int *n, int n_ins); -void vtx_delete(double *x, double *y, int *n, int n_del); -int lon_fix(double *x, double *y, int n_in, double tlon); - -int round_to_nearest_int(double r) -{ - - return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5); -} - -/*************************************************************************** - void get_file_path(const char *file, char *dir) - get the directory where file is located. The dir will be the complate path - before the last "/". If no "/" exist in file, the path will be current ".". -***************************************************************************/ -void get_file_path(const char *file, char *dir) -{ - int len; - char *strptr = NULL; - - /* get the diretory */ - - strptr = strrchr(file, '/'); - if(strptr) { - len = strptr - file; - strncpy(dir, file, len); - } - else { - len = 1; - strcpy(dir, "."); - } - dir[len] = 0; - -}; /* get_file_path */ - -int get_int_entry(char *line, int* value) -{ - char* pch; - int num; - - pch = strtok(line, ", "); - num = 0; - while( pch != NULL) { - value[num++] = atoi(pch); - pch = strtok(NULL, ", "); - } - return num; - -}; - -int get_double_entry(char *line, double *value) -{ - char* pch; - int num; - - pch = strtok(line, ", "); - num = 0; - while( pch != NULL) { - value[num++] = atof(pch); - pch = strtok(NULL, ", "); - } - return num; -}; - -/********************************************************************* - double spherical_dist(double x1, double y1, double x2, double y2) - return distance between spherical grid on the earth -*********************************************************************/ - -double spherical_dist(double x1, double y1, double x2, double y2) -{ - double dist = 0.0; - double h1, h2; - - if(x1 == x2) { - h1 = RADIUS; - h2 = RADIUS; - dist = distant(y1,y2,h1,h2); - } - else if(y1 == y2) { - h1 = RADIUS * cos(y1*D2R); - h2 = RADIUS * cos(y2*D2R); - dist = distant(x1,x2,h1,h2); - } - else - mpp_error("tool_till: This is not rectangular grid"); - - return dist; -}; /* spherical_dist */ - - -/********************************************************************* - void double bipolar_dist(double x1, double y1, double x2, double y2) - return distance of bipolar grids -*********************************************************************/ -double bipolar_dist(double x1, double y1, double x2, double y2, - double bpeq, double bpsp, double bpnp, double rp ) -{ - double dist, x[2],y[2], bp_lon[2], bp_lat[2], metric[2]; - double h1[2], h2[2], chic; - int n; - - x[0] = x1; x[1] = x2; - y[0] = y1; y[1] = y2; - - /*--- get the bipolar grid and metric term ----------------------------*/ - for(n=0; n<2; n++){ - bp_lon[n] = bp_lam(x[n],y[n],bpeq, rp); /* longitude (degrees) in bipolar grid system */ - bp_lat[n] = bp_phi(x[n],y[n],bpsp, bpnp); /* latitude (degrees) in bipolar grid system */ - h1[n] = RADIUS*cos(bp_lat[n]*D2R); - h2[n] = RADIUS; - metric[n] = 1.0; - if (fabs(y[n]-90.0) < SMALL || fabs(bp_lon[n]*D2R) >= SMALL - || fabs(bp_lat[n]*D2R) >= SMALL) { - chic = acos(cos(bp_lon[n]*D2R)*cos(bp_lat[n]*D2R)); /* eqn. 6 */ - metric[n] = rp*(1/pow(cos(chic/2),2))/(1+(pow(rp,2))*(pow(tan(chic/2),2)));/* eq 3 */ - } - } - - /*--- then calculate the distance -------------------------------------*/ - if(x1 == x2) - dist = distant(bp_lon[0],bp_lon[1],metric[0]*h1[0],metric[1]*h1[1]); - else if(y1 == y2) - dist = distant(bp_lat[0],bp_lat[1],metric[0]*h2[0],metric[1]*h2[1]); - else - mpp_error("tool_util: This tripolar grid not transformed from rectangular grid"); - - return dist; - -}; /* bipolar_dist */ - -/********************************************************************* - double distant(double a, double b, double met1, double met2) - return distant on the earth -*********************************************************************/ -double distant(double a, double b, double met1, double met2) -{ - return fabs(a-b)*D2R*(met1+met2)/2. ; -}; /* distant */ - -/********************************************************************* - double spherical_area(double x1, double y1, double x2, double y2, - double x3, double y3, double x4, double y4 ) - rectangular grid box area - ********************************************************************/ -double spherical_area(double x1, double y1, double x2, double y2, - double x3, double y3, double x4, double y4 ) -{ - double area, dx, lat1, lat2, x[4],y[4]; - int i, ip; - - x[0] = x1; y[0] = y1; - x[1] = x2; y[1] = y2; - x[2] = x3; y[2] = y3; - x[3] = x4; y[3] = y4; - - area = 0.0; - - for(i=0; i<4; i++) { - ip = i+1; - if(ip ==4) ip = 0; - dx = (x[ip] - x[i])*D2R; - lat1 = y[ip]*D2R; - lat2 = y[i]*D2R; - if(dx==0.0) continue; - if(dx > M_PI) dx = dx - 2.0*M_PI; - if(dx < -M_PI) dx = dx + 2.0*M_PI; - - if (lat1 == lat2) /* cheap area calculation along latitude */ - area = area - dx*sin(lat1); - else - area = area - dx*(sin(lat1)+sin(lat2))/2; /* TRAPEZOID_RULE */ - } - - area = area * RADIUS * RADIUS; - - return area; -}; /* spherical_area */ - -/********************************************************************* - double bipolar_area(double x1, double y1, double x2, double y2, - double x3, double y3, double x4, double y4 ) - bipolar grid area - ********************************************************************/ -double bipolar_area(double x1, double y1, double x2, double y2, - double x3, double y3, double x4, double y4 ) -{ - double area, dx, lat1, lat2, x[8],y[8]; - int i, ip, n; - - x[0] = x1; y[0] = y1; - x[1] = x2; y[1] = y2; - x[2] = x3; y[2] = y3; - x[3] = x4; y[3] = y4; - - - /*--- first fix the longitude at the pole -----------------------------*/ - n = lon_fix(x, y, 4, 180.); - - /*--- calculate the area ---------------------------------------------- */ - area = 0.0; - for(i=0; i M_PI) dx = dx - 2.0*M_PI; - if(dx < -M_PI) dx = dx + 2.0*M_PI; - - if (lat1 == lat2) /* cheap area calculation along latitude */ - area = area - dx*sin(lat1); - else - area = area - dx*(sin(lat1)+sin(lat2))/2; /* TRAPEZOID_RULE */ - } - - area = area * RADIUS * RADIUS; - - return area; -}; /* bipolar_area */ - -/********************************************************************* - double lat_dist(double x1, double x2) - distance (in degrees) between points on lat. circle - ********************************************************************/ - double lat_dist(double x1, double x2) -{ - return min(fmod(x1-x2+720,360.),fmod(x2-x1+720,360.)); -}; - - -/********************************************************************* - double bp_lam(double x, double y, double bpeq) - find bipolar grid longitude given geo. coordinates - ********************************************************************/ - double bp_lam(double x, double y, double bpeq, double rp) -{ - double bp_lam; - - /* bp_lam = ((90-y)/(90-lat_join))*90 */ - /* invert eqn. 5 with phic=0 to place point at specified geo. lat */ - bp_lam = 2.*atan(tan((0.5*M_PI-y*D2R)/2)/rp)*R2D; - if (lat_dist(x,bpeq)<90.) bp_lam = -bp_lam; - return bp_lam; -}; /* bp_lam */ - -/********************************************************************* - double bp_phi(double x, double y, double bpsp, double bpnp) - find bipolar grid latitude given geo. coordinates - ********************************************************************/ - double bp_phi(double x, double y, double bpsp, double bpnp) -{ - double bp_phi; - - if (lat_dist(x,bpsp)<90.) - return (-90+lat_dist(x,bpsp)); - else - return ( 90-lat_dist(x,bpnp)); -}; /* bp_phi */ - - -/********************************************************************* - void tp_trans(double& lon, double& lat, double lon_ref) - calculate tripolar grid - ********************************************************************/ -void tp_trans(double *lon, double *lat, double lon_ref, double lon_start, - double lam0, double bpeq, double bpsp, double bpnp, double rp ) -{ - double lamc, phic, lams, chic, phis; - - lamc = bp_lam(*lon, *lat, bpeq, rp )*D2R; - phic = bp_phi(*lon, *lat, bpsp, bpnp)*D2R; - - if (fabs(*lat-90.) < SMALL) { - if (phic > 0) - *lon=lon_in_range(lon_start,lon_ref); - else - *lon=lon_start+180.; - chic = acos(cos(lamc)*cos(phic)); /* eqn. 6 */ - phis = M_PI*0.5-2*atan(rp*tan(chic/2)); /* eqn. 5 */ - *lat = phis*R2D; - return; - } - - if (fabs(lamc) < SMALL && fabs(phic) < SMALL) { - *lat=90.; - *lon=lon_ref; - } - else { - lams = fmod(lam0+M_PI+M_PI/2-atan2(sin(lamc),tan(phic)),2*M_PI); /* eqn. 5 */ - chic = acos(cos(lamc)*cos(phic)); /* eqn. 6 */ - phis = M_PI*0.5-2*atan(rp*tan(chic/2)); /* eqn. 5 */ - *lon = lams*R2D; - *lon = lon_in_range(*lon,lon_ref); - *lat = phis*R2D; - } -}; /* tp_trans */ - -/********************************************************************* - double Lon_in_range(double lon, double lon_strt) - Returns lon_strt <= longitude <= lon_strt+360 - ********************************************************************/ -double lon_in_range(double lon, double lon_strt) -{ - double lon_in_range, lon_end; - - lon_in_range = lon; - lon_end = lon_strt+360.; - - if (fabs(lon_in_range - lon_strt) < SMALL) - lon_in_range = lon_strt; - else if (fabs(lon_in_range - lon_end) < SMALL) - lon_in_range = lon_strt; - else { - while(1) { - if (lon_in_range < lon_strt) - lon_in_range = lon_in_range + 360.; - else if (lon_in_range > lon_end) - lon_in_range = lon_in_range - 360.; - else - break; - } - } - return lon_in_range; -}; /* lon_in_range */ - - -/********************************************************************* - int lon_fix(double *x, double *y, int n_in, double tlon) - fix longitude at pole. - ********************************************************************/ -int lon_fix(double *x, double *y, int n_in, double tlon) -{ - int i, ip, im, n_out; - double x_sum, dx; - - n_out = n_in; - i = 0; - while( i < n_out) { - if(fabs(y[i]) >= 90.-SMALL) { - im = i - 1; - if(im < 0) im = im + n_out; - ip = i + 1; - if(ip >= n_out) ip = ip - n_out; - /*--- all pole points must be paired ---------------------------- */ - if(y[im] == y[i] && y[ip] == y[i] ) { - vtx_delete(x,y, &n_out, i); - i = i - 1; - } - else if(y[im] != y[i] && y[ip] != y[i] ) { - vtx_insert(x,y,&n_out,i); - i = i + 1; - } - } - i = i + 1; - } - - /*--- first of pole pair has longitude of previous vertex ------------- - --- second of pole pair has longitude of subsequent vertex ---------- */ - for(i=0;i= 90.-SMALL) { - im= i - 1; - if(im < 0) im = im + n_out; - ip = i + 1; - if(ip >= n_out) ip = ip - n_out; - - if(y[im] != y[i]) x[i] = x[im]; - if(y[ip] != y[i]) x[i] = x[ip]; - } - } - - if(n_out == 0) return 0; - - x_sum = x[1]; - for(i=1;i< n_out;i++){ - dx = x[i] - x[i-1]; - if(dx < -180) - dx = dx + 360; - else if (dx > 180) - dx = dx - 360; - - x[i] = x[i-1] + dx; - x_sum = x_sum + x[i]; - } - - dx = x_sum/(n_out) - tlon; - if (dx < -180.) - for(i=0;i 180.) - for(i=0;i=n_ins; i--){ - x[i+1] = x[i]; - y[i+1] = y[i]; - } - (*n)++; - -}; /* vtx_insert */ - - -/*---------------------------------------------------------------------- - void vect_cross(e, p1, p2) - Perform cross products of 3D vectors: e = P1 X P2 - -------------------------------------------------------------------*/ - -/******************************************************************************** - void compute_grid_bound(int nb, const couble *bnds, const int *npts, int *grid_size, const char *center_cell) - compute the 1-D grid location. This algorithm is developed by Russell Fiedler -********************************************************************************/ -double* compute_grid_bound(int nb, const double *bnds, const int *npts, int *grid_size, const char *center) -{ - int refine, i, n, np; - double *grid=NULL, *tmp=NULL; - double *grid1=NULL, *grid2=NULL; - - if(!strcmp(center, "none") ) - refine = 1; - else if(!strcmp(center, "t_cell") || !strcmp(center, "c_cell") ) - refine = 2; - else - mpp_error("tool_util: center should be 'none', 'c_cell' or 't_cell' "); - - grid1 = (double *)malloc(nb*sizeof(double)); - grid1[0] = 1; - n = 0; - for(i=1; i 2 "); - - /* when center is 't_cell', stretch must be 1 */ - if( !strcmp(center, "t_cell") && stretch != 1 ) - mpp_error("tool_util(ompute_grid_bound_legacy): stretch must be 1 when center = 't_cell' "); - - num = 0; - for(l=0; l tol ) - mpp_error("tool_util(ompute_grid_bound_legacy): non integral number of cells in some subregion for 't_cell'"); - - for(i=0; i maxlen ) mpp_error("tool_util(ompute_grid_bound_legacy): maxlen exceeded, increase size of MAX_GRID_LENGTH"); - delta[num-1] = del; - } - } - else { - /* Calculate resolution of U cells: "deltau" - U grid points will be centered in these cells - n = number of T cells fitting within the region boundaries - note: "sum" initially discounts half of the U cells widths - at the boundaries - */ - - sum = 0.5*dbnds[l] - 0.5*dbnds[l+1]; - n = 0; - i = 0; - while (i < 100000 ) { - i++; - del = avg_res - 0.5*chg_res*cos((M_PI/ncells)*i); - if (sum + del <= wid*(1.0 + tol)) { - sum += del; - num++; - if( num > maxlen ) mpp_error("tool_util(compute_grid_bound_legacy): maxlen exceeded, increase size of MAX_GRID_LENGTH"); - delta[num-1] = del; - n++; - } - else - break; - } - if( stretch == 1 || l != nb-1 ) { - if( fabs(an-n) > tol ) { - if(mpp_pe() == mpp_root_pe()) { - printf("==>Error: non integral number of cells in region #%d, average resolution within " - "region = %f14.7, this implies %f14.7 grid cells, Change grid specifications dbnds. " - "Here is some help \n", l, avg_res, an ); - } - mpp_error("tool_util(ompute_grid_bound_legacy): non integral number of cells in some subregion for 'c_cell'"); - } - } - } - } - - npts = refine*num + 1; - *grid_size = refine*num; - grid = (double *)malloc(npts*sizeof(double)); - - grid[0] = bnds[0]; - if( !strcmp(center, "t_cell") ) { - for(i = 0; iError from get_boundary_type: ntiles is not 1, contact developer"); - - if(mpp_field_exist(grid_file, "contacts") ) { - ncontacts = read_mosaic_ncontacts(grid_file); - if(ncontacts < 1) { - sprintf(errmsg, "==>Error from get_boundary_type: number of contacts " - "number of contacts should be larger than 0 when field contacts exist in file %s",grid_file ); - mpp_error(errmsg); - } - if(ncontacts > 2) { - sprintf(errmsg, "==>Error from get_boundary_type: " - "number of contacts should be no larger than 2 in file %s",grid_file ); - mpp_error(errmsg); - } - read_mosaic_contact( grid_file, tile1, tile2, istart1, iend1, jstart1, jend1, - istart2, iend2, jstart2, jend2 ); - - for(m=0; mError from get_boundary_type: only cyclic condition is allowed for x-boundary"); - *cyclic_x = 1; - } - else if( jstart1[m] == jend1[m] ) { /* y-direction contact, cyclic or folded-north */ - if(jstart2[m] != jend2[m] ) - mpp_error("==>Error from get_boundary_type: only cyclic/folded-north condition is allowed for y-boundary"); - if( jstart1[m] == jstart2[m] ) /* folded north */ - *is_tripolar = 1; - else - *cyclic_y = 1; - } - else - mpp_error("==>Error from get_boundary_type: invalid boundary contact"); - } - } - } - else if(grid_version == VERSION_1) { - fid = mpp_open(grid_file, MPP_READ); - mpp_get_global_att(fid, "x_boundary_type", attvalue); - if( ! strcmp(attvalue, "cyclic") ) *cyclic_x = 1; - mpp_get_global_att(fid, "y_boundary_type", attvalue); - if( ! strcmp(attvalue, "cyclic") ) - *cyclic_y = 1; - else if(! strcmp(attvalue, "fold_north_edge") ) - *is_tripolar = 1; - mpp_close(fid); - } - else { - mpp_error("==>Error from get_boundary_type: grid_version should be VERSION_1 or VERSION_2"); - } - - if(mpp_pe() == mpp_root_pe()) { - if(*cyclic_x) - printf("\n==>NOTE from get_boundary_type: x_boundary_type is cyclic\n"); - else - printf("\n==>NOTE from get_boundary_type: x_boundary_type is solid_walls\n"); - - if(*cyclic_y) - printf("\n==>NOTE from get_boundary_type: y_boundary_type is cyclic\n"); - else if(*is_tripolar) - printf("\n==>NOTE from get_boundary_type: y_boundary_type is fold_north_edge\n"); - else - printf("\n==>NOTE from get_boundary_type: y_boundary_type is solid_walls\n"); - } - -}; /* get_boundary_type */ diff --git a/sorc/fre-nctools.fd/tools/shared/tool_util.h b/sorc/fre-nctools.fd/tools/shared/tool_util.h deleted file mode 100644 index ee8324a332..0000000000 --- a/sorc/fre-nctools.fd/tools/shared/tool_util.h +++ /dev/null @@ -1,27 +0,0 @@ -/*********************************************************************** - tool_util.h - This header file provide some utilities routine that will be used in many tools. - - contact: Zhi.Liang@noaa.gov -***********************************************************************/ -#ifndef TOOL_UTIL_H_ -#define TOOL_UTIL_H_ -#define MAX_GRID_LENGTH (10000) -#define VERSION_1 1 -#define VERSION_2 2 -#define VERSION_3 3 -int round_to_nearest_int(double r); -void get_file_path(const char *file, char *dir); -int get_int_entry(char *line, int *value); -int get_double_entry(char *line, double *value); -double spherical_dist(double x1, double y1, double x2, double y2); -double spherical_area(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4 ); -double bipolar_dist(double x1, double y1, double x2, double y2, double bpeq, double bpsp, double bpnp, double rp ); -double bipolar_area(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4 ); -void tp_trans(double *lon, double *lat, double lon_ref, double lon_start, - double lam0, double bpeq, double bpsp, double bpnp, double rp ); -double* compute_grid_bound(int nb, const double *bnds, const int *npts, int *grid_size, const char *center); -double* compute_grid_bound_legacy(int nb, const double *bnds, const double *dbnds, double stretch, int *grid_size, const char *center); -int get_legacy_grid_size(int nb, const double *bnds, const double *dbnds); -void get_boundary_type( const char *grid_file, int grid_version, int *cyclic_x, int *cyclic_y, int *is_tripolar ); -#endif diff --git a/sorc/fre-nctools.fd/tools/shave.fd/build_shave b/sorc/fre-nctools.fd/tools/shave.fd/build_shave deleted file mode 100755 index 6f882f5cad..0000000000 --- a/sorc/fre-nctools.fd/tools/shave.fd/build_shave +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -set -x - -case $1 in - "cray" ) - FCMP=ftn - FFLAGS="-O0" ;; - "wcoss" ) - FCMP=ifort - FFLAGS="-O0 ${NETCDF_FFLAGS} ${NETCDF_LDFLAGS_F}" ;; - "wcoss_dell_p3" ) - FCMP=ifort - FFLAGS="-O0 ${NETCDF_FFLAGS} ${NETCDF_LDFLAGS_F}" ;; - "theia" ) - FCMP=ifort - FFLAGS="-O0 -I$NETCDF/include -L$NETCDF/lib -lnetcdff -lnetcdf" ;; - *) - echo "SHAVE UTILITY BUILD NOT TESTED ON MACHINE $1" - exit 1 ;; -esac - -EXEC=../../../../exec/shave.x -rm -f $EXEC -$FCMP $FFLAGS -o $EXEC shave_nc.F90 -rc=$? - -if ((rc != 0)); then - echo "ERROR BUILDING SHAVE UTILITY" - exit $rc -else - exit 0 -fi diff --git a/sorc/fre-nctools.fd/tools/shave.fd/shave_nc.F90 b/sorc/fre-nctools.fd/tools/shave.fd/shave_nc.F90 deleted file mode 100644 index cface2872c..0000000000 --- a/sorc/fre-nctools.fd/tools/shave.fd/shave_nc.F90 +++ /dev/null @@ -1,313 +0,0 @@ -!----------------------------------------------------------------------- - program shave_nc -!----------------------------------------------------------------------- - use netcdf -!----------------------------------------------------------------------- - implicit none -!----------------------------------------------------------------------- -! -!*** The grid driver step in FV3 preprocessing generates a grid_tile -!*** file and an oro_tile file for the regional domain. The final -!*** size of these files' domains must include the halo surrounding -!*** the computational domain. However the original size of these -!*** domains must exceed the domain size plus haloes so that the -!*** topography filtering program can produce correct values over -!*** the halo region. Then before the files go into the chgres -!*** job their domains must be shaved down to only the computational -!*** interior and the halo which is what this code does. -! -!----------------------------------------------------------------------- -! - integer,parameter :: kdbl=selected_real_kind(p=13,r=200) -! - character(len=255) :: filename_full,filename_shaved - integer :: idim_compute,jdim_compute,halo - integer :: i_count_compute,j_count_compute & - ,i_count_super,j_count_super - integer :: i_start,j_start,i_count,j_count & - ,n_count,n_shave,n_start - integer :: n,na,natts,ncid_in,ncid_out,nctype,nd,ndims,ngatts & - ,nvars,unlimdimid - integer :: dim_id,len_dim,len_x,len_y,var_id,xdim_id,xdim_id_out & - ,ydim_id,ydim_id_out - integer :: istat - integer,dimension(1:2) :: dimids=(/0,0/) - real,dimension(:) ,allocatable :: var_1d_with_halo - real,dimension(:,:),allocatable :: var_2d_with_halo - real(kind=kdbl),dimension(:,:),allocatable :: var_2d_dbl_with_halo -! real*8,dimension(:,:),allocatable :: var_2d_dbl_with_halo - character(len=50) :: file,name_att,name_dim,name_xdim,name_ydim & - ,name_var,xdim,ydim - character(len=255) :: att=' ' - character(len=255),dimension(:),allocatable :: var_1d_char -! -!----------------------------------------------------------------------- -!*********************************************************************** -!----------------------------------------------------------------------- -! -!----------------------------------------------------------------------- -!*** Read in the required compute dimensions, halo size, and filenames. -!----------------------------------------------------------------------- -! - read(5,*)idim_compute,jdim_compute,halo,filename_full,filename_shaved - write(6,*)' id ',idim_compute,' jd ',jdim_compute,' halo ',halo - write(6,*)' fn_f ',trim(filename_full) - write(6,*)' fn_s ',trim(filename_shaved) - i_count_compute=idim_compute+2*halo - j_count_compute=jdim_compute+2*halo - i_count_super =2*i_count_compute - j_count_super =2*j_count_compute -! -!----------------------------------------------------------------------- -!*** Open the netcdf file with the incoming data to be shaved. -!----------------------------------------------------------------------- -! - call check(nf90_open(filename_full,nf90_nowrite,ncid_in)) !<-- Open the netcdf file; get the file ID. -! - call check(nf90_inquire(ncid_in,ndims,nvars,ngatts,unlimdimid)) !<-- Find the number of variables in the file. -! -!----------------------------------------------------------------------- -!*** Create the NetCDF file that the shaved data will be written into. -!*** Match the NetCDF format of the input file. -!----------------------------------------------------------------------- -! - call check(nf90_create(filename_shaved & ! - ,or(nf90_classic_model,nf90_netcdf4) & !<-- Create NetCDF file for shaved data. - ,ncid_out)) ! -! -!----------------------------------------------------------------------- -!*** Replicate the dimensions from the input to the output file -!*** but change values as needed to account for the shaving. We -!*** know the grid file and orog file have given names for their -!*** x and y dimensions so use those to adjust to shaved values. -!*** NOTE: Gridpoints in the grid file are on the domain's -!*** supergrid while points in the orog file are on the -!*** compute grid. -!----------------------------------------------------------------------- -! - do nd=1,ndims - call check(nf90_inquire_dimension(ncid_in,nd,name_dim,len_dim)) !<-- Get this dimension's name and value. -! - select case (name_dim) - case ('nx') !<--- - len_dim=i_count_super ! - xdim=name_dim ! - file='grid_file' ! - case ('nxp') ! Used by the - len_dim=i_count_super+1 ! grid file. - case ('ny') ! - len_dim=j_count_super ! - ydim=name_dim ! - case ('nyp') ! - len_dim=j_count_super+1 !<--- - case ('lon') !<--- - len_dim=i_count_compute ! - xdim=name_dim ! Used by the - file='orog_file' ! orog file. - case ('lat') ! - len_dim=j_count_compute ! - ydim=name_dim !<--- - end select -! - dim_id=nd - call check(nf90_def_dim(ncid_out,name_dim,len_dim,dim_id)) !<-- Insert dimension into the output file. - enddo -! -!----------------------------------------------------------------------- -!*** The output file's variables must be defined while that file -!*** is still in define mode. Loop through the variables in the -!*** input file and define each of them in the output file. -!----------------------------------------------------------------------- -! - do n=1,nvars - var_id=n - call check(nf90_inquire_variable(ncid_in,var_id,name_var,nctype & !<-- name and type of this variable - ,ndims,dimids,natts)) !<-- # of dimensions, ID, and attributes in this variable -! - if(ndims==1)then - call check(nf90_def_var(ncid_out,name_var,nctype,dimids(1),var_id)) !<-- Define this 1-D variable in the output file. - elseif(ndims==2)then - call check(nf90_def_var(ncid_out,name_var,nctype,dimids,var_id)) !<-- Define this 2-D variable in the output file. - endif -! -!----------------------------------------------------------------------- -!*** Copy this variable's attributes to the output file's variable. -!----------------------------------------------------------------------- -! - if(natts>0)then - do na=1,natts - call check(nf90_inq_attname(ncid_in,var_id,na,name_att)) !<-- Get the attribute's name and ID from input file. - call check(nf90_copy_att(ncid_in,var_id,name_att,ncid_out,var_id)) !<-- Copy to output file. - enddo - endif -! - enddo -! -!----------------------------------------------------------------------- -!*** Copy the global attributes to the output file. -!----------------------------------------------------------------------- -! - do n=1,ngatts - call check(nf90_inq_attname(ncid_in,NF90_GLOBAL,n,name_att)) - call check(nf90_copy_att(ncid_in,NF90_GLOBAL,name_att,ncid_out,NF90_GLOBAL)) - enddo -! -!----------------------------------------------------------------------- -! - call check(nf90_enddef(ncid_out)) !<-- Put the output file into data mode. -! -!----------------------------------------------------------------------- -!*** Get the x and y extents of the incoming grid with extra rows -!*** so we can find determine how many rows to shave off. -!----------------------------------------------------------------------- -! - call check(nf90_inq_dimid(ncid_in,xdim,xdim_id)) !<-- Find the ID of the x dimension. - call check(nf90_inq_dimid(ncid_in,ydim,ydim_id)) !<-- Find the ID of the y dimension. - call check(nf90_inquire_dimension(ncid_in,xdim_id,name_xdim,len_x)) !<-- Length of x dimension of vars in incoming file. - call check(nf90_inquire_dimension(ncid_in,ydim_id,name_ydim,len_y)) !<-- Length of y dimension of vars in incoming file. -! - if(trim(file)=='orog_file')then - i_start=(len_x-idim_compute)/2-halo+1 !<-- Starting i of 2-D data with halo rows on compute grid. - j_start=(len_y-jdim_compute)/2-halo+1 !<-- Starting j of 2-D data with halo rows on compute grid. - - elseif(trim(file)=='grid_file')then - i_start=(len_x-2*idim_compute)/2-2*halo+1 !<-- Starting i of 2-D data with halo rows on supergrid. - j_start=(len_y-2*jdim_compute)/2-2*halo+1 !<-- Starting j of 2-D data with halo rows on supergrid. - endif -! -!----------------------------------------------------------------------- -!*** We assume the # of extra rows on the incoming data is the same -!*** in both x and y so the # of rows to shave off to leave the -!*** halo rows is also the same in x and y. So consider only the -!*** values from the x dimension. -!----------------------------------------------------------------------- -! - n_shave=i_start-1 !<-- # of rows to shave off full data to leave halo rows. -! -!----------------------------------------------------------------------- -!*** Now loop through all the variables in the input netcdf file, -!*** read in the data excluding all extra rows except for halo rows, -!*** and then write that out to the output file. -!----------------------------------------------------------------------- -! - var_loop: do n=1,nvars -! - var_id=n - call check(nf90_inquire_variable(ncid_in,var_id,name_var,nctype & !<-- The name and type of the nth variable - ,ndims,dimids,natts)) !<-- The dimensions, ID, and attributes in the nth variable -! - call check(nf90_inquire_dimension(ncid_in,dimids(1),name_xdim,len_x)) !<-- Get the length of the input 1st dimension. -! - if(ndims==2)then - call check(nf90_inquire_dimension(ncid_in,dimids(2),name_ydim,len_y)) !<-- Get the length of the input y dimension. - endif -! -!------------------- -!*** 1-D variables -!------------------- -! - if(ndims==1)then -! -!--------------- -!*** Character -!--------------- -! - if(nctype==nf90_char)then - n_start=1 !<-- Start reading incoming character data at this location. - n_count=len_x !<-- Character data is not gridded so not shaved. - allocate(var_1d_char(1:n_count),stat=istat) - call check(nf90_get_var(ncid_in,var_id,var_1d_char(:) & !<-- Fill the 1-D character variable. - ,start=(/n_start/) & - ,count=(/n_count/))) -! - call check(nf90_put_var(ncid_out,var_id,var_1d_char)) !<-- Write out the 1-D character variable. -! - deallocate(var_1d_char) -! -!--------------- -!*** Numerical -!--------------- -! - else - n_start=n_shave+1 !<-- Start reading incoming data at this location. - n_count=len_dim-2*n_shave !<-- # of datapoints to fill in the shaved 1-D variable. - allocate(var_1d_with_halo(1:n_count),stat=istat) - call check(nf90_get_var(ncid_in,var_id,var_1d_with_halo(:) & !<-- Fill the shaved 1-D variable. - ,start=(/n_start/) & - ,count=(/n_count/))) -! - call check(nf90_put_var(ncid_out,var_id,var_1d_with_halo)) !<-- Write out the shaved 1-D variable. -! - deallocate(var_1d_with_halo) -! - endif -! -!------------------- -!*** 2-D variables -!------------------- -! - elseif(ndims==2)then -! - if(trim(file)=='orog_file')then - i_start=(len_x-idim_compute)/2-halo+1 !<-- Starting i of 2-D data with halo rows on compute grid. - j_start=(len_y-jdim_compute)/2-halo+1 !<-- Starting j of 2-D data with halo rows on compute grid. - i_count=i_count_compute !<-- i extent of 2-D data with halo rows on compute grid. - j_count=j_count_compute !<-- j extent of 2-D data with halo rows on compute grid. -! - elseif(trim(file)=='grid_file')then - i_start=(len_x-2*idim_compute)/2-2*halo+1 !<-- Starting i of 2-D data with halo rows on supergrid. - j_start=(len_y-2*jdim_compute)/2-2*halo+1 !<-- Starting j of 2-D data with halo rows on supergrid. - i_count=i_count_super !<-- i extent of 2-D data with halo rows on supergrid. - j_count=j_count_super !<-- j extent of 2-D data with halo rows on supergrid. - if(trim(name_xdim)=='nxp')then - i_count=i_count+1 !<-- nxp is # of cell corners in x, not centers. - endif - if(trim(name_ydim)=='nyp')then - j_count=j_count+1 !<-- nyp is # of cell corners in y, not centers. - endif - endif -! - if(nctype==nf90_float)then !<-- Single precision real variables - allocate(var_2d_with_halo(i_count,j_count),stat=istat) - call check(nf90_get_var(ncid_in,var_id,var_2d_with_halo(:,:) & !<-- Fill array with compute data plus halo rows. - ,start=(/i_start,j_start/) & - ,count=(/i_count,j_count/))) -! - call check(nf90_put_var(ncid_out,var_id,var_2d_with_halo)) !<-- Write out the shaved 2-D single precision variable. - deallocate(var_2d_with_halo) -! - elseif(nctype==nf90_double)then !<-- Double precision real variables - allocate(var_2d_dbl_with_halo(i_count,j_count),stat=istat) - call check(nf90_get_var(ncid_in,var_id,var_2d_dbl_with_halo(:,:) & !<-- Fill array with compute data plus halo rows. - ,start=(/i_start,j_start/) & - ,count=(/i_count,j_count/))) -! - call check(nf90_put_var(ncid_out,var_id,var_2d_dbl_with_halo)) !<-- Write out the shaved 2-D double precision variable. - deallocate(var_2d_dbl_with_halo) - endif -! - endif -! - enddo var_loop -! - call check(nf90_close(ncid_out)) - call check(nf90_close(ncid_in)) -! -!----------------------------------------------------------------------- - contains -!----------------------------------------------------------------------- -! - subroutine check(status) - integer,intent(in) :: status -! - if(status /= nf90_noerr) then - print *, trim(nf90_strerror(status)) - stop "Stopped" - end if - end subroutine check -! -!----------------------------------------------------------------------- -! - end program shave_nc -! -!----------------------------------------------------------------------- diff --git a/sorc/fv3gfs_build.cfg b/sorc/fv3gfs_build.cfg index b90931e288..130c6dde03 100644 --- a/sorc/fv3gfs_build.cfg +++ b/sorc/fv3gfs_build.cfg @@ -4,27 +4,20 @@ Building libraries (libs) ............................. no Building fv3gfs (fv3gfs) .............................. yes Building gsi (gsi) .................................... yes - Building gdas (gdas) .................................. yes + Building gldas (gldas) ................................ yes Building ncep_post (ncep_post) ........................ yes + Building ufs_utils (ufs_utils) ........................ yes + Building gldas (gldas) ................................ yes Building gfs_wafs (gfs_wafs) .......................... yes - Building NEMS_util (nems_util) ........................ yes - Building chgres (chgres) .............................. yes - Building sfcanl_nsttfchg (sfcanl_nsttfchg)............. yes - Building orog (orog) .................................. yes - Building cycle (cycle) ................................ yes + Building gaussian_sfcanl (gaussian_sfcanl)............. yes Building enkf_chgres_recenter (enkf_chgres_recenter) .. yes + Building enkf_chgres_recenter_nc (enkf_chgres_recenter_nc) .. yes Building tropcy_NEMS (tropcy) ......................... yes Building gfs_fbwndgfs (gfs_fbwndgfs) .................. yes - Building gfs_overpdtg2 (gfs_overpdtg2) ................ yes - Building gfs_wintemv (gfs_wintemv) .....,,,,........... yes Building gfs_bufrsnd (gfs_bufrsnd) .................... yes - Building emcsfc (emcsfc) .............................. yes - Building fre-nctools (nctools) ........................ yes Building fv3nc2nemsio (fv3nc2nemsio) .................. yes Building regrid_nemsio (regrid_nemsio) ................ yes Building gfs_util (gfs_util) .......................... yes - Building prod_util (prod_util) ........................ no - Building grib_util (grib_util) ........................ no # -- END -- diff --git a/sorc/fv3nc2nemsio.fd/makefile.sh b/sorc/fv3nc2nemsio.fd/makefile.sh index 67f66f15e9..94b9b253cc 100755 --- a/sorc/fv3nc2nemsio.fd/makefile.sh +++ b/sorc/fv3nc2nemsio.fd/makefile.sh @@ -3,17 +3,6 @@ set -x machine=${1:-"cray"} -if [ $machine = "cray" ]; then -: -elif [ $machine = "theia" ]; then -: -else - - echo "machine $machine is unsupported, ABORT!" - exit 1 - -fi - source ../../modulefiles/module-setup.sh.inc module use ../../modulefiles module load modulefile.fv3nc2nemsio.$machine diff --git a/sorc/gaussian_sfcanl.fd/gaussian_sfcanl.f90 b/sorc/gaussian_sfcanl.fd/gaussian_sfcanl.f90 index 9e64628e1a..acce575cd7 100644 --- a/sorc/gaussian_sfcanl.fd/gaussian_sfcanl.f90 +++ b/sorc/gaussian_sfcanl.fd/gaussian_sfcanl.f90 @@ -2,9 +2,10 @@ ! ! Read in surface and nst data on the cubed-sphere grid, ! interpolate it to the gaussian grid, and output the result -! to a nemsio file. The output file mimics those produced by -! the legacy spectral GFS system. To not process nst -! data, set flag 'donst' to 'no'. To process nst, set to 'yes'. +! to a nemsio or netcdf file. To not process nst data, +! set flag 'donst' to 'no'. To process nst, set to 'yes'. +! To output gaussian file in netcdf, set netcdf_out=.true. +! Otherwise, nemsio format will be output. ! ! Input files: ! ------------ @@ -17,7 +18,8 @@ ! ! Output files: ! ------------- -! sfc.gaussian.nemsio surface data on gaussian grid - nemsio +! sfc.gaussian.analysis.file surface data on gaussian grid - +! nemsio or netcdf. ! ! Namelist variables: ! ------------------- @@ -25,8 +27,12 @@ ! i/jgaus i/j dimension of gaussian grid. ! donst When 'no' do not process nst data. ! When 'yes' process nst data. +! netcdf_out When 'true', output gaussian file in +! netcdf. Otherwise output nemsio format. ! ! 2018-Jan-30 Gayno Initial version +! 2019-Oct-30 Gayno Option to output gaussian analysis file +! in netcdf. ! !------------------------------------------------------------------ @@ -105,6 +111,10 @@ module io end module io +!------------------------------------------------------------------------------ +! Main program +!------------------------------------------------------------------------------ + program main use netcdf @@ -119,14 +129,18 @@ program main integer :: yy, mm, dd, hh integer, allocatable :: col(:), row(:) + logical :: netcdf_out + real(kind=8), allocatable :: s(:) - namelist /setup/ yy, mm, dd, hh, igaus, jgaus, donst + namelist /setup/ yy, mm, dd, hh, igaus, jgaus, donst, netcdf_out call w3tagb('GAUSSIAN_SFCANL',2018,0179,0055,'NP20') print*,"- BEGIN EXECUTION" + netcdf_out = .true. + donst = 'no' print* @@ -364,10 +378,14 @@ program main endif !------------------------------------------------------------------------------ -! Write gaussian data to nemsio file. +! Write gaussian data to either netcdf or nemsio file. !------------------------------------------------------------------------------ - call write_sfc_data + if (netcdf_out) then + call write_sfc_data_netcdf + else + call write_sfc_data_nemsio + endif deallocate(gaussian_data%orog) deallocate(gaussian_data%t2m) @@ -426,17 +444,623 @@ program main endif print* - print*,'- NORMAL INTERPOLATION' + print*,'- NORMAL TERMINATION' call w3tage('GAUSSIAN_SFCANL') end program main +!------------------------------------------------------------------------------------------- +! Write gaussian surface data to netcdf file. +!------------------------------------------------------------------------------------------- + + subroutine write_sfc_data_netcdf + + use netcdf + use io + + implicit none + + character(len=50) :: outfile + character(len=31) :: date_string + character(len=4) :: year + character(len=2) :: mon, day, hour + + integer :: header_buffer_val = 16384 + integer :: i, error, ncid, dim_xt, dim_yt, dim_time + integer :: id_xt, id_yt, id_lon, id_lat, id_time + integer :: n + +! noah variables + integer, parameter :: num_noah=44 + character(len=30) :: noah_var(num_noah) + character(len=70) :: noah_name(num_noah) + character(len=30) :: noah_units(num_noah) + +! nst variables + integer, parameter :: num_nst=16 + character(len=30) :: nst_var(num_nst) + character(len=70) :: nst_name(num_nst) + character(len=30) :: nst_units(num_nst) + +! variables to be output + integer :: num_vars + character(len=30), allocatable :: var(:) + character(len=70), allocatable :: name(:) + character(len=30), allocatable :: units(:) + integer, allocatable :: id_var(:) + + real, parameter :: missing = 9.99e20 + + real(kind=4), allocatable :: dummy(:,:), slat(:), wlat(:) + +! define noah fields + + data noah_var /"alnsf", & + "alnwf", & + "alvsf", & + "alvwf", & + "cnwat", & + "crain",& + "f10m", & + "facsf", & + "facwf", & + "ffhh", & + "ffmm", & + "fricv", & + "icec", & + "icetk", & + "land", & + "orog", & + "sfcr", & + "shdmax", & + "shdmin", & + "sltyp", & + "snoalb", & + "snod", & + "soill1", & + "soill2", & + "soill3", & + "soill4", & + "soilt1", & + "soilt2", & + "soilt3", & + "soilt4", & + "soilw1", & + "soilw2", & + "soilw3", & + "soilw4", & + "sotyp", & + "spfh2m", & + "tg3" , & + "tisfc", & + "tmp2m", & + "tmpsfc", & + "tprcp", & + "veg", & + "vtype", & + "weasd" / + + data noah_name /"mean nir albedo with strong cosz dependency", & + "mean nir albedo with weak cosz dependency", & + "mean vis albedo with strong cosz dependency", & + "mean vis albedo with weak cosz dependency", & + "canopy water (cnwat in gfs data)" , & + "instantaneous categorical rain", & + "10-meter wind speed divided by lowest model wind speed", & + "fractional coverage with strong cosz dependency", & + "fractional coverage with weak cosz dependency", & + "fh parameter from PBL scheme" , & + "fm parameter from PBL scheme" , & + "uustar surface frictional wind", & + "surface ice concentration (ice=1; no ice=0)", & + "sea ice thickness (icetk in gfs_data)", & + "sea-land-ice mask (0-sea, 1-land, 2-ice)", & + "surface geopotential height", & + "surface roughness", & + "maximum fractional coverage of green vegetation", & + "minimum fractional coverage of green vegetation", & + "surface slope type" , & + "maximum snow albedo in fraction", & + "surface snow depth", & + "liquid soil moisture at layer-1", & + "liquid soil moisture at layer-2", & + "liquid soil moisture at layer-3", & + "liquid soil moisture at layer-4", & + "soil temperature 0-10cm", & + "soil temperature 10-40cm", & + "soil temperature 40-100cm", & + "soil temperature 100-200cm", & + "volumetric soil moisture 0-10cm", & + "volumetric soil moisture 10-40cm", & + "volumetric soil moisture 40-100cm", & + "volumetric soil moisture 100-200cm", & + "soil type in integer", & + "2m specific humidity" , & + "deep soil temperature" , & + "surface temperature over ice fraction", & + "2m temperature", & + "surface temperature", & + "total precipitation" , & + "vegetation fraction", & + "vegetation type in integer", & + "surface snow water equivalent" / + + data noah_units /"%", & + "%", & + "%", & + "%", & + "XXX", & + "number", & + "N/A", & + "XXX", & + "XXX", & + "XXX", & + "XXX", & + "XXX", & + "fraction", & + "XXX", & + "numerical", & + "gpm", & + "m", & + "XXX", & + "XXX", & + "XXX", & + "XXX", & + "m", & + "XXX", & + "XXX", & + "XXX", & + "XXX", & + "K", & + "K", & + "K", & + "K", & + "fraction", & + "fraction", & + "fraction", & + "fraction", & + "number", & + "kg/kg", & + "K", & + "K", & + "K", & + "K", & + "kg/m**2", & + "fraction", & + "number" , & + "kg/m**2" / + +! define nst fields + + data nst_var /"c0", & + "cd", & + "dconv", & + "dtcool", & + "qrain", & + "tref", & + "w0", & + "wd", & + "xs", & + "xt", & + "xtts", & + "xu", & + "xv", & + "xz", & + "xzts", & + "zc" / + + data nst_name /"nsst coefficient1 to calculate d(tz)/d(ts)", & + "nsst coefficient2 to calculate d(tz)/d(ts)", & + "nsst thickness of free convection layer", & + "nsst sub-layer cooling amount", & + "nsst sensible heat flux due to rainfall", & + "nsst reference or foundation temperature", & + "nsst coefficient3 to calculate d(tz)/d(ts)", & + "nsst coefficient4 to calculate d(tz)/d(ts)", & + "nsst salinity content in diurnal thermocline layer", & + "nsst heat content in diurnal thermocline layer", & + "nsst d(xt)/d(ts)", & + "nsst u-current content in diurnal thermocline layer", & + "nsst v-current content in diurnal thermocline layer", & + "nsst diurnal thermocline layer thickness", & + "nsst d(xt)/d(ts)", & + "nsst sub-layer cooling thickness"/ + + data nst_units /"numerical", & + "n/a", & + "m", & + "k", & + "w/m2", & + "K", & + "n/a", & + "n/a", & + "n/a", & + "k*m", & + "m", & + "m2/s", & + "m2/s", & + "m", & + "m/k", & + "m"/ + + outfile = "./sfc.gaussian.analysis.file" + + print*,"- WRITE SURFACE DATA TO NETCDF FILE: ", trim(outfile) + + error = nf90_create(outfile, cmode=IOR(IOR(NF90_CLOBBER,NF90_NETCDF4),NF90_CLASSIC_MODEL), ncid=ncid) + call netcdf_err(error, 'CREATING NETCDF FILE') + +! dimensions + + error = nf90_def_dim(ncid, 'grid_xt', igaus, dim_xt) + call netcdf_err(error, 'DEFINING GRID_XT DIMENSION') + + error = nf90_def_dim(ncid, 'grid_yt', jgaus, dim_yt) + call netcdf_err(error, 'DEFINING GRID_YT DIMENSION') + + error = nf90_def_dim(ncid, 'time', 1, dim_time) + call netcdf_err(error, 'DEFINING TIME DIMENSION') + +! global attributes + + error = nf90_put_att(ncid, nf90_global, 'nsoil', 4) + call netcdf_err(error, 'DEFINING NSOIL ATTRIBUTE') + + error = nf90_put_att(ncid, nf90_global, 'source', "FV3GFS") + call netcdf_err(error, 'DEFINING SOURCE ATTRIBUTE') + + error = nf90_put_att(ncid, nf90_global, 'grid', "gaussian") + call netcdf_err(error, 'DEFINING GRID ATTRIBUTE') + + error = nf90_put_att(ncid, nf90_global, 'im', igaus) + call netcdf_err(error, 'DEFINING IM ATTRIBUTE') + + error = nf90_put_att(ncid, nf90_global, 'jm', jgaus) + call netcdf_err(error, 'DEFINING JM ATTRIBUTE') + +! variables + +! grid_xt + + error = nf90_def_var(ncid, 'grid_xt', NF90_DOUBLE, dim_xt, id_xt) + call netcdf_err(error, 'DEFINING GRID_XT') + + error = nf90_put_att(ncid, id_xt, "cartesian_axis", "X") + call netcdf_err(error, 'DEFINING GRID_XT ATTRIBUTE') + + error = nf90_put_att(ncid, id_xt, "long_name", "T-cell longitude") + call netcdf_err(error, 'DEFINING GRID_XT ATTRIBUTE') + + error = nf90_put_att(ncid, id_xt, "units", "degrees_E") + call netcdf_err(error, 'DEFINING GRID_XT ATTRIBUTE') + +! lon + + error = nf90_def_var(ncid, 'lon', NF90_DOUBLE, (/dim_xt,dim_yt/), id_lon) + call netcdf_err(error, 'DEFINING LON') + + error = nf90_put_att(ncid, id_lon, "long_name", "T-cell longitude") + call netcdf_err(error, 'DEFINING LON ATTRIBUTE') + + error = nf90_put_att(ncid, id_lon, "units", "degrees_E") + call netcdf_err(error, 'DEFINING LON ATTRIBUTE') + +! grid_yt + + error = nf90_def_var(ncid, 'grid_yt', NF90_DOUBLE, dim_yt, id_yt) + call netcdf_err(error, 'DEFINING GRID_YT') + + error = nf90_put_att(ncid, id_yt, "cartesian_axis", "Y") + call netcdf_err(error, 'DEFINING GRID_YT ATTRIBUTE') + + error = nf90_put_att(ncid, id_yt, "long_name", "T-cell latitude") + call netcdf_err(error, 'DEFINING GRID_YT ATTRIBUTE') + + error = nf90_put_att(ncid, id_yt, "units", "degrees_N") + call netcdf_err(error, 'DEFINING GRID_YT ATTRIBUTE') + +! lat + + error = nf90_def_var(ncid, 'lat', NF90_DOUBLE, (/dim_xt,dim_yt/), id_lat) + call netcdf_err(error, 'DEFINING LAT') + + error = nf90_put_att(ncid, id_lat, "long_name", "T-cell latitude") + call netcdf_err(error, 'DEFINING LAT ATTRIBUTE') + + error = nf90_put_att(ncid, id_lat, "units", "degrees_N") + call netcdf_err(error, 'DEFINING LAT ATTRIBUTE') + +! time + + error = nf90_def_var(ncid, 'time', NF90_DOUBLE, dim_time, id_time) + call netcdf_err(error, 'DEFINING TIME') + + error = nf90_put_att(ncid, id_time, "long_name", "time") + call netcdf_err(error, 'DEFINING TIME ATTRIBUTE') + + write(year, "(i4)") idate(1) + write(mon, "(i2.2)") idate(2) + write(day, "(i2.2)") idate(3) + write(hour, "(i2.2)") idate(4) + + date_string="hours since " // year // "-" // mon // "-" // day // " " // hour // ":00:00" + + error = nf90_put_att(ncid, id_time, "units", date_string) + call netcdf_err(error, 'DEFINING TIME ATTRIBUTE') + + error = nf90_put_att(ncid, id_time, "cartesian_axis", "T") + call netcdf_err(error, 'DEFINING TIME ATTRIBUTE') + + error = nf90_put_att(ncid, id_time, "calendar_type", "JULIAN") + call netcdf_err(error, 'DEFINING TIME ATTRIBUTE') + + error = nf90_put_att(ncid, id_time, "calendar", "JULIAN") + call netcdf_err(error, 'DEFINING TIME ATTRIBUTE') + +!------------------------------------------------------------------------------------------- +! Determine what variables to output (noah, or noah plus nst). +!------------------------------------------------------------------------------------------- + + if (trim(donst) == "yes" .or. trim(donst) == "YES") then + num_vars = num_noah + num_nst + else + num_vars = num_noah + endif + + allocate(var(num_vars)) + allocate(name(num_vars)) + allocate(units(num_vars)) + allocate(id_var(num_vars)) + + var(1:num_noah) = noah_var + name(1:num_noah) = noah_name + units(1:num_noah) = noah_units + + if (trim(donst) == "yes" .or. trim(donst) == "YES") then + do n = 1, num_nst + var(n+num_noah) = nst_var(n) + name(n+num_noah) = nst_name(n) + units(n+num_noah) = nst_units(n) + enddo + endif + +!------------------------------------------------------------------------------------------- +! Define variables in netcdf file. +!------------------------------------------------------------------------------------------- + + do n = 1, num_vars + + print*,'- DEFINE VARIABLE ',trim(var(n)) + error = nf90_def_var(ncid, trim(var(n)), NF90_FLOAT, (/dim_xt,dim_yt,dim_time/), id_var(n)) + call netcdf_err(error, 'DEFINING variable') + error = nf90_def_var_deflate(ncid, id_var(n), 1, 1, 1) + call netcdf_err(error, 'DEFINING variable with compression') + + error = nf90_put_att(ncid, id_var(n), "long_name", trim(name(n))) + call netcdf_err(error, 'DEFINING name ATTRIBUTE') + + error = nf90_put_att(ncid, id_var(n), "units", trim(units(n))) + call netcdf_err(error, 'DEFINING units ATTRIBUTE') + + error = nf90_put_att(ncid, id_var(n), "missing", missing) + call netcdf_err(error, 'DEFINING missing ATTRIBUTE') + + error = nf90_put_att(ncid, id_var(n), "cell_methods", "time: point") + call netcdf_err(error, 'DEFINING cell method ATTRIBUTE') + + error = nf90_put_att(ncid, id_var(n), "output_file", "sfc") + call netcdf_err(error, 'DEFINING out file ATTRIBUTE') + + enddo + +! end variable defs + + error = nf90_enddef(ncid, header_buffer_val,4,0,4) + call netcdf_err(error, 'DEFINING HEADER') + +!------------------------------------------------------------------------------------------- +! Write variables to netcdf file. +!------------------------------------------------------------------------------------------- + + allocate(dummy(igaus,jgaus)) + do i = 1, igaus + dummy(i,:) = real((i-1),4) * 360.0_4 / real(igaus,4) + enddo + + error = nf90_put_var(ncid, id_xt, dummy(:,1)) + call netcdf_err(error, 'WRITING GRID_XT') + + error = nf90_put_var(ncid, id_lon, dummy) + call netcdf_err(error, 'WRITING LON') + + allocate(slat(jgaus)) + allocate(wlat(jgaus)) + call splat(4, jgaus, slat, wlat) + + do i = (jgaus/2+1), jgaus + dummy(:,i) = 90.0 - (acos(slat(i)) * 180.0 / (4.0*atan(1.0))) + enddo + + do i = 1, (jgaus/2) + dummy(:,i) = -(dummy(:,(jgaus-i+1))) + enddo + + deallocate(slat, wlat) + + error = nf90_put_var(ncid, id_yt, dummy(1,:)) + call netcdf_err(error, 'WRITING GRID_YT') + + error = nf90_put_var(ncid, id_lat, dummy) + call netcdf_err(error, 'WRITING LAT') + + error = nf90_put_var(ncid, id_time, 0) + call netcdf_err(error, 'WRITING TIME') + + do n = 1, num_vars + print*,'- WRITE VARIABLE ',trim(var(n)) + call get_netcdf_var(var(n), dummy) + error = nf90_put_var(ncid, id_var(n), dummy, start=(/1,1,1/), count=(/igaus,jgaus,1/)) + call netcdf_err(error, 'WRITING variable') + enddo + + deallocate (dummy) + + error = nf90_close(ncid) + + end subroutine write_sfc_data_netcdf + +!------------------------------------------------------------------------------------------- +! Retrieve variable based on its netcdf identifier. +!------------------------------------------------------------------------------------------- + + subroutine get_netcdf_var(var, dummy) + + use io + + implicit none + + character(len=*), intent(in) :: var + + real(kind=4), intent(out) :: dummy(igaus,jgaus) + + select case (var) + case ('alnsf') + dummy = reshape(gaussian_data%alnsf, (/igaus,jgaus/)) + case ('alnwf') + dummy = reshape(gaussian_data%alnwf, (/igaus,jgaus/)) + case ('alvsf') + dummy = reshape(gaussian_data%alvsf, (/igaus,jgaus/)) + case ('alvwf') + dummy = reshape(gaussian_data%alvwf, (/igaus,jgaus/)) + case ('cnwat') + dummy = reshape(gaussian_data%canopy, (/igaus,jgaus/)) + case ('f10m') + dummy = reshape(gaussian_data%f10m, (/igaus,jgaus/)) + case ('facsf') + dummy = reshape(gaussian_data%facsf, (/igaus,jgaus/)) + case ('facwf') + dummy = reshape(gaussian_data%facwf, (/igaus,jgaus/)) + case ('ffhh') + dummy = reshape(gaussian_data%ffhh, (/igaus,jgaus/)) + case ('ffmm') + dummy = reshape(gaussian_data%ffmm, (/igaus,jgaus/)) + case ('fricv') + dummy = reshape(gaussian_data%uustar, (/igaus,jgaus/)) + case ('land') + dummy = reshape(gaussian_data%slmask, (/igaus,jgaus/)) + case ('orog') + dummy = reshape(gaussian_data%orog, (/igaus,jgaus/)) + case ('sltyp') + dummy = reshape(gaussian_data%slope, (/igaus,jgaus/)) + case ('icec') + dummy = reshape(gaussian_data%fice, (/igaus,jgaus/)) + case ('icetk') + dummy = reshape(gaussian_data%hice, (/igaus,jgaus/)) + case ('snoalb') + dummy = reshape(gaussian_data%snoalb, (/igaus,jgaus/)) + case ('shdmin') + dummy = reshape(gaussian_data%shdmin, (/igaus,jgaus/)) + case ('shdmax') + dummy = reshape(gaussian_data%shdmax, (/igaus,jgaus/)) + case ('snod') + dummy = reshape(gaussian_data%snwdph, (/igaus,jgaus/)) / 1000.0 + case ('weasd') + dummy = reshape(gaussian_data%sheleg, (/igaus,jgaus/)) + case ('veg') + dummy = reshape(gaussian_data%vfrac, (/igaus,jgaus/)) * 100.0 + case ('sfcr') + dummy = reshape(gaussian_data%zorl, (/igaus,jgaus/)) / 100.0 + case ('crain') + dummy = reshape(gaussian_data%srflag, (/igaus,jgaus/)) + case ('sotyp') + dummy = reshape(gaussian_data%stype, (/igaus,jgaus/)) + case ('spfh2m') + dummy = reshape(gaussian_data%q2m, (/igaus,jgaus/)) + case ('tmp2m') + dummy = reshape(gaussian_data%t2m, (/igaus,jgaus/)) + case ('tmpsfc') + dummy = reshape(gaussian_data%tsea, (/igaus,jgaus/)) + case ('tg3') + dummy = reshape(gaussian_data%tg3, (/igaus,jgaus/)) + case ('tisfc') + dummy = reshape(gaussian_data%tisfc, (/igaus,jgaus/)) + case ('tprcp') + dummy = reshape(gaussian_data%tprcp, (/igaus,jgaus/)) + case ('vtype') + dummy = reshape(gaussian_data%vtype, (/igaus,jgaus/)) + case ('soill1') + dummy = reshape(gaussian_data%slc(:,1), (/igaus,jgaus/)) + where (dummy > 0.99) dummy = 0.0 ! replace flag value at water/landice + case ('soill2') + dummy = reshape(gaussian_data%slc(:,2), (/igaus,jgaus/)) + where (dummy > 0.99) dummy = 0.0 ! replace flag value at water/landice + case ('soill3') + dummy = reshape(gaussian_data%slc(:,3), (/igaus,jgaus/)) + where (dummy > 0.99) dummy = 0.0 ! replace flag value at water/landice + case ('soill4') + dummy = reshape(gaussian_data%slc(:,4), (/igaus,jgaus/)) + where (dummy > 0.99) dummy = 0.0 ! replace flag value at water/landice + case ('soilt1') + dummy = reshape(gaussian_data%stc(:,1), (/igaus,jgaus/)) + case ('soilt2') + dummy = reshape(gaussian_data%stc(:,2), (/igaus,jgaus/)) + case ('soilt3') + dummy = reshape(gaussian_data%stc(:,3), (/igaus,jgaus/)) + case ('soilt4') + dummy = reshape(gaussian_data%stc(:,4), (/igaus,jgaus/)) + case ('soilw1') + dummy = reshape(gaussian_data%smc(:,1), (/igaus,jgaus/)) + case ('soilw2') + dummy = reshape(gaussian_data%smc(:,2), (/igaus,jgaus/)) + case ('soilw3') + dummy = reshape(gaussian_data%smc(:,3), (/igaus,jgaus/)) + case ('soilw4') + dummy = reshape(gaussian_data%smc(:,4), (/igaus,jgaus/)) + case ('c0') + dummy = reshape(gaussian_data%c0, (/igaus,jgaus/)) + case ('cd') + dummy = reshape(gaussian_data%cd, (/igaus,jgaus/)) + case ('dconv') + dummy = reshape(gaussian_data%dconv, (/igaus,jgaus/)) + case ('dtcool') + dummy = reshape(gaussian_data%dtcool, (/igaus,jgaus/)) + case ('qrain') + dummy = reshape(gaussian_data%qrain, (/igaus,jgaus/)) + case ('tref') + dummy = reshape(gaussian_data%tref, (/igaus,jgaus/)) + case ('w0') + dummy = reshape(gaussian_data%w0, (/igaus,jgaus/)) + case ('wd') + dummy = reshape(gaussian_data%wd, (/igaus,jgaus/)) + case ('xs') + dummy = reshape(gaussian_data%xs, (/igaus,jgaus/)) + case ('xt') + dummy = reshape(gaussian_data%xt, (/igaus,jgaus/)) + case ('xtts') + dummy = reshape(gaussian_data%xtts, (/igaus,jgaus/)) + case ('xu') + dummy = reshape(gaussian_data%xu, (/igaus,jgaus/)) + case ('xv') + dummy = reshape(gaussian_data%xv, (/igaus,jgaus/)) + case ('xz') + dummy = reshape(gaussian_data%xz, (/igaus,jgaus/)) + case ('xzts') + dummy = reshape(gaussian_data%xzts, (/igaus,jgaus/)) + case ('zc') + dummy = reshape(gaussian_data%zc, (/igaus,jgaus/)) + case default + print*,'- FATAL ERROR: UNKNOWN VAR IN GET_VAR: ', var + call errexit(67) + end select + + end subroutine get_netcdf_var + !------------------------------------------------------------------------------------------- ! Write gaussian surface data to nemsio file. !------------------------------------------------------------------------------------------- - subroutine write_sfc_data + subroutine write_sfc_data_nemsio use nemsio_module use io @@ -607,7 +1231,7 @@ subroutine write_sfc_data print* print*,"- OPEN GAUSSIAN NEMSIO SURFACE FILE" - call nemsio_open(gfileo, "sfc.gaussian.nemsio", 'write', & + call nemsio_open(gfileo, "sfc.gaussian.analysis.file", 'write', & modelname="FV3GFS", gdatatype="bin4", version=version, & nmeta=8, nrec=nrec, dimx=igaus, dimy=jgaus, dimz=(levs_vcoord-1), & nframe=0, nsoil=4, ntrac=8, jcap=-9999, & @@ -945,7 +1569,7 @@ subroutine write_sfc_data call errexit(15) stop - end subroutine write_sfc_data + end subroutine write_sfc_data_nemsio !------------------------------------------------------------------------------------------- ! Read tile data. diff --git a/sorc/gaussian_sfcanl.fd/makefile.sh b/sorc/gaussian_sfcanl.fd/makefile.sh index 61fa87a60b..b1c5adefde 100755 --- a/sorc/gaussian_sfcanl.fd/makefile.sh +++ b/sorc/gaussian_sfcanl.fd/makefile.sh @@ -5,7 +5,7 @@ export FFLAGS="-O3 -fp-model precise -g -r8 -i4" #export FFLAGS="-g -r8 -i4 -warn unused -check bounds" export NETCDF_INCLUDE="-I${NETCDF}/include" -export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" +export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 " make clean make build diff --git a/sorc/gaussian_sfcanl.fd/weight_gen/scrip.fd/make.sh b/sorc/gaussian_sfcanl.fd/weight_gen/scrip.fd/make.sh index 06a3df945a..12ed3eefd9 100755 --- a/sorc/gaussian_sfcanl.fd/weight_gen/scrip.fd/make.sh +++ b/sorc/gaussian_sfcanl.fd/weight_gen/scrip.fd/make.sh @@ -25,26 +25,26 @@ llogin? | slogin?) exit 1 ;; #--------------------------------------------------------------------------------- -# BUILD PROGRAM ON THEIA. +# BUILD PROGRAM ON HERA. #--------------------------------------------------------------------------------- -tfe??) +hfe??) source /apps/lmod/lmod/init/sh module purge - module load intel/18.1.163 + module load intel/18.0.5.274 export FCOMP=ifort export FFLAGS="-O0 -g -traceback -r8 -i4 -convert big_endian -check bounds" - module load netcdf/4.3.0 - module load hdf5/1.8.14 + module load netcdf/4.7.0 + module load hdf5/1.10.5 export NETCDF_INCLUDE="-I${NETCDF}/include" export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" - module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles - module load sp/v2.0.2 + module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles + module load sp/2.0.2 make clean make diff --git a/sorc/gdas_trpsfcmv.fd/gdas_trpsfcmv.f b/sorc/gdas_trpsfcmv.fd/gdas_trpsfcmv.f deleted file mode 100755 index 4679e7a7a5..0000000000 --- a/sorc/gdas_trpsfcmv.fd/gdas_trpsfcmv.f +++ /dev/null @@ -1,1852 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: TRPSFCMV -C PRGMMR: KEYSER ORG: NP22 DATE: 2001-02-09 -C -C ABSTRACT: -C Plots the following in the tropical strip: analyzed wind -C barbs and temperatures at several hundred locations, contours of -C 1000 mb analyzed streamfunction, gridded winds, station plots -C and tropical cyclone positions. It uses NCAR graphics to -C produce a metafile which is rasterized in subsequent program -C executions. It also generates titles and hurricane bulletin -C text (if needed) for processing by the Bedient packer. The -C gross job flow is gendata --> redsat --> trpsfcmv ---> -C ictrans ----> ras2bity ----> sixbit2 (bedient packer) ---> and -C out the door to OSO, NCDC, TPC and FAX. Input is current GLOBAL -C SPECTRAL MODEL ANALYSIS winds in GRIB on type 3 (1x1) grids and -C also station coordinates and observed parameters (temp, dewpoint, -C pressure, tendancy, windspeed, and direction for plotting by -C NOAA graphics (with superior fonts) downstream. The station -C coordinate file is an AFOS PLOTFILE with all linefeeds (Z'0d') -C removed by subroutine afosread. The station coordinates are -C converted to pixel values for downstream use by the bedient -C packer. -C -C PROGRAM HISTORY LOG: -C 1996-12-18 George VandenBerghe Original ancestor code -C 1996-12-31 George VandenBerghe Documented -C 1997-01-30 George VandenBerghe Made grib errors fatal. (stop 17) -C 1997-04-30 George VandenBerghe Removed grid station -C interpolation, NCAR station plotting, changed to -C mercator plot of single streamfunction, added -C streamfunction generator, grid plot, lat/lon -C labels, contouring capability, AFOS plotfile -C read capability, and code to write putlab input -C for downstream use by a new station plotter in -C the bedient packer. Also changed name. -C 1998-08-10 Dennis Keyser Modified format for reading -C tcvitals records to prevent the ocassional -C failures that were occurring when previous -C program QCTROPCY writes a 'C' into character 65 -C of the record. This (climatology indicator) is -C a rare occurrence (format not changed if maxwind -C happens to be > 99 m/s (not sure this is even -C possible). -C 1999-01-25 Krishna Kumar Modified the code to run on IBM -C RS/6000 SP system. -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. -C 2013-03-12 Krishna Kumar Ported this code from IBM RS/6000 SP system -C to INTEL WCOSS system -C -C USAGE: -C INPUT FILES: -C unit 11 - GFS 00 hour GRIB forecast file containing grib type -C - 3 u, and v grids -C unit 12 - Grib index to above -C unit 31 - optional quality controlled hurricane text bulletins -C ( in $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -C and $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL) -C unit 38 - Satellite low level wind observations -C unit 43 - AFOS station plotfile with linefeeds -C unit 44 - AFOS station plotfile (sans linefeeds) -C (see output file list) -C -C OUTPUT FILES: -C gmeta - implicitly opened as fortran unit 2 by ncar -C package -C unit 06 - standard output print -C unit 74 - text file containing tropical cyclone bulletin info -C unit 87 - AFOS station plotfile sans linefeeds to be -C read later in this program as unit 44 -C unit 88 Map title for downstream use by bedient packer -C unit 89 putlab argument file used by bedient packer. -C -C -C SUBPROGRAMS CALLED: -C UNIQUE: - closen openn get3 qcnt afosread -C - l2p cg mpr fill ccpllb -C - color sfill stream3 ridctlm afix -C - satread redsat dayowk i3to53 i53to3 -C - i3to8 hbull -C LIBRARY: -C NCAR GRAPHICS: -C - mappos wmsetr wmseti wmgetr maptra -C - pcseti plccmq plchmq wmbarb gslwsc -C - gsclip mapsti mapstc maproj mapset -C - mapdrw cpseti cpsetr gopks gopwk -C - gacwk gdawk gclwk gclks setusv -C - mapros dpseti frame gsln stream3 -C - sfnorm sfsetr hlsrgb gclwk gclks -C - gsfaci gscr gfa gsclip gsfais -C - cprect cppkcl plchhq cpcldr cplbdr -C - gdawk -C W3LIB - getgb w3fp11 getgb1 errexit w3tagb -C - w3tage putgb -C IPLIB - ipolates makgds -C SPLIB - sptrunv -C BACIO - baopen baclos -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C 179 - Grib error on input or index file (unwise to -C continue -C =NNNN - system only -C -C REMARKS: IBM NCAR graphics are in /usrx/local/ncar401 -C CAVEAT requires ncar graphics version 4.0 or above -C as of this writing -C setenv NCARG_ROOT /usr/local/ncar4.0 -C setenv PATH "$PATH":/usr/local/ncar4.0/bin -C (or the bourne/korn analogs) -C handles this; only the first setenv is required -C but the other will likely be -C needed by ictrans downstream -C -C The latitude to pixel coordinate converter -C assumes a 6912x6912 domain and that -C a 6912x1728 slice will be cut horizontally -C out of the domain downstream. The slice -C is then supposed to be rotated 90 degrees -C counterclockwise so that the long axis becomes -C the y axis maximizing fax paper use. This code -C cannot detect if these assumptions are -C in fact met downstream, if not, stations -C will be plotted in incorrect locations. -C The algorithm is however NOT sensitive to -C map projection. -C -C ATTRIBUTES: -C LANGUAGE: Fortran 90 -C MACHINE: IBM -C -C$$$ - - PROGRAM TRPSFCMV - - parameter(nsta=124) - character*3 cmonth(12) - data cmonth/'JAN','FEB','MAR','APR','MAY','JUN','JUL', - 1 'AUG','SEP','OCT','NOV','DEC'/ - dimension f3(360,181) - character*4 ctemp,cday - character*3 cdir - character*80 ctext - character*80 ctext2,ctext3 - character*4 cda - COMMON/PACKRA/IRAS(10) - common/oth/u(70,40),v(70,40),rlats(nsta),rlons(nsta), - 1 up(nsta),vp(nsta),tp(nsta) -c paraMETER (RMNLON=-0.,RMXLON=359., - paraMETER (RMNLON=-0.,RMXLON=359., - 1 RMNLAT=-60.,RMXLAT=60.) - dimension kds(25) - dimension rl(2),rl2(2),rl3(2),rl4(2) - data rl,rl2,rl3,rl4/rmnlat,0.,rmxlat,0., - 1rmnlon,0.,rmxlon,0./ - dimension grid(360,181) - dimension g2(360,121),z2(360,121) - dimension u2(360,121), v2(360,121) - dimension f53(117,51) - character*40 ctit - dimension ifeet(8) - character*132 mtitle -c - character*11 envvar ! for ibm_sp_6000 - character*80 fileg,filegi ! for ibm_sp_6000 -c - CALL W3TAGB('TRPSFCMV',2001,0038,0059,'NP22') - 6 continue -c -c****** added for ibm_sp_6000 -c - lun=11 - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lun - call getenv(envvar,fileg) - call baopenr(lun,fileg,iret) -c - luni=12 - write(envvar(5:6),fmt='(I2)') luni - call getenv(envvar,filegi) - call baopenr(luni,filegi,iret) -c -c****** -c - call openn -c - do 777 imap=1,1 - if(imap .gt. 1) then - lun=13 - luni=14 - endif - do 1 k=1,25 - 1 kds(k)=-1 - ix=360 - iy=121 -c do 1000 ,ll=1,1,-1 - call mappos (0.0,1.0,0.0,1.0) -C get streamfunction - call stream3(1000,-1,11,12,grid) - pi=3.1415927 - sin45=sqrt(2.)/2 - omega=2*pi/86400. - g=9.81 - fcoril=2*omega*sin45 - factor=fcoril/g - factor=factor/10. -C** CONVERT TO METERS - do k=1,360 - do j=1,121 - g2(k,j)=grid(k+0,152-j ) * factor - end do - end do -c** -c get temperature (fossil code) -c** get u for wind barbs - kds(5)=33 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - u2(k,j)=grid(k+0,152-j ) * 1.93 - end do - end do -c** -c** get v for wind barbs - kds(5)=34 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - v2(k,j)=grid(k+0,152-j )*1.93 - end do - end do -c** - call cpseti('CIS',3) - call gslwsc(2.0) - call qcnt (g2,ix,iy,rl,rl2,rl3,rl4,mtitle) - call hbull - call cpseti('CIS',3) - call gsln(0) - call cg( g2,ix,iy,1) - call cpseti('CIS',5) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - irr=1 - flat=40. - flon=270. - do 14,k=1,120,5 - call gslwsc (1.0) - do 14,l=1,360,5 - if (irr .eq. 1) then - irr=2 - else - irr=1 - endif - if(irr .eq. 1) then - if(l.eq.1)then - l2=l - k2=k - else - l2=l-1 - k2=k - endif - else - if(l.eq.1)then - l2=l - k2=k - else - l2=l-1 -c k2=k+1 - k2=k - endif - endif - flon=l2 - flat=k2-61. - call maptra(flat,flon,uu,vv) - iflat=flat+5. - if(iflat .lt. 0) then - write(ctemp,1087)-iflat - 1087 format(i2,x,'S') - else - write(ctemp,1088) iflat - 1088 format(i2,x,'N') - endif -c call plchmq( uuf,vvf,ctemp,1.,0.,0.) - call gslwsc(1.0) -c write(102,*) flat,flon,uu,vv,u2(l2,k2),v2(l2,k2) - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - print*,'l2,k2 in Main TRPSFCMV = ',l2,k2 - call wmbarb(uu,vv,-u2(l2,k2),-V2(L2,K2)) - 14 continue - do 15,lat=-60,60,30 - do 15 lon=27,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 15 continue - do 16,lat=-33,60,30 - do 16 lon=0,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - 1089 format(i3,'E') - 1091 format(i3,'W') - else - write(ctemp,1091)(360-lon) - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 16 continue - write(ctext,193)'TROPICAL SURFACE ANALYSIS VALID' - call DAYOWK(IRAS(8),IRAS(9),IRAS(10),idayy,cday) -c USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) - write(ctext2,194)iras(7),cday,cmonth(iras(9)),iras(8),iras(10) - write(88,1961)ctext,ctext2 - write(ctext3,196)'STREAM FUNCTION AND GRID WINDS' - write(79,1962)ctext2 - 1962 format(a30) - 196 format(a30) - 1961 format('STRIP ',' ',2a30) - 194 format(i2,'Z',x,a4,x,a3,x,i2,x,i4) - 193 format(a25,x,i2,'Z' ,i2,'/',i2,'/',i4) - call maptra(28.,230.,uu,vv) - call maptra(-12.,230.,uu2,vv2) - call maptra(-32.,270.,uu3,vv3) - call maptra(-32.,320.,uu4,vv4) - call maptra(-32.,80.,uu5,vv5) - call gslwsc(4.0) - call gslwsc(1.0) - do 17,lat=-37,60,10 - do 17 lon=0,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - else - write(ctemp,1091)(360-lon) - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 17 continue - do 18,lat=-60,60,10 - do 18 lon=2,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 18 continue - do 19,lon=1,360,1 - do 19,lat=-60,60,1 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) -c call plchlq(uu,vv,'.',1.,0.,0.) - 19 continue - call gsln(4) -c call cg(z2,ix,iy,2) - call gsln(1) - call frame - 777 continue - call baclose(11,iret) - call baclose(12,iret) - call closen - CALL W3TAGE('TRPSFCMV') - stop - end -c -c************************************************************** -c - subroutine mpr(flat,flon) - call maptra(flat,flon,u,v) - print 101,flat,flon,u,v - 101 format('lat lon ' , 4f15.5) - return - end -c -c************************************************************** -c - subroutine qcnt(grid,ix,iy,rl,rl2,rl3,rl4,mtitle) - character*132 mtitle - integer (kind=8) ibb1,ibb2 - common/staa/ibitz - Data ibb1/Z'F0F0F0F0F0f0ffff'/ - data ibb2/Z'F0F0F0F0F0f0aa55'/ - dimension grid(ix,iy) - dimension rl(2),rl2(2),rl3(2),rl4(2) - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) -c dimension RLAT1(2), RLAT2(2), RLON1(2), RLON2(2) - dimension grid2 (ix,iy) - common/icc/icount - common/ctrxxx/junk1,jink2,iflag - iflag=0 - Rmnlon=rl3(1) - rmxlon=rl4(1) - rmnlat=rl(1) - rmxlat=rl2(1) - icount = 0 !modified for ibmsp - do 1 k=1,ix - do 1 j=1,iy -c grid2(k,(iy+1-j))=(grid(k,j)) - grid2(k,j)=grid(k,j) -c grid2(k,j)=(grid(k,j)-273)*1.8 +32 -c z(k,j)=k+j**2 - 1 continue - CALL GSCLIP (0) -C -C Draw Lat/Lon lines at 10 degree intervals. -C Draw political & continental outlines. -C - CALL MAPSTI ('GR - GRID',90) - CALL MAPSTC ('OU - OUTLINE DATASET','CO') -C -C Draw a Satellite view over the United States -C - CALL MAPROJ ('ME - SATELLITE-VIEW',00.,-180.,00.) -c CALL MAPROJ ('CE - SATELLITE-VIEW',0.,0.,00.) -c CALL MAPSET ('MA',RLAT1,RLON1,RLAT2,RLON2) -c call mapset('MA',rlatmin,rlonmin,rlatmax,rlonmax) -C -C Don't draw a square around the globe -C - CALL MAPSTI ('PE - PERIMETER FLAG', 0) -C -C Draw map. -C -c call gslwsc(4.0) -c HEAVY HEAVY - call setusv('LW',4000) - CALL MAPDRW -c read synoptic data from AFOS PLOTFILE - call afosread -c read satellite winds directly from bufr input on unit 10 -c call satread - call setusv('LW', 1000) - CALL MAPSTI ('GR - GRID',10) - CALL MAPSTC ('OU - OUTLINE DATASET','PS') - CALL MAPDRW - - CALL CPSETI ('SET - DO SET-CALL FLAG',0) - CALL CPSETR ('DPV - DASH PATTERN VECTOR SIZE',.0010) - call DPSETI('PCF',0) -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - - CALL CPSETI ('MAP - MAPPING FLAG',1) - call cpsetr('XC1',rmnlon) - call cpsetr('XCM',rmxlon) - call cpsetr('YC1',rmnlat) - call cpsetr('YCN',rmxlat) - ibitz=ibb1 -c call cg(grid2,ix,iy) - ibitz=ibb2 -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C -c CALL GDAWK (1) -c CALL GCLWK (1) -c CALL GCLKS -c CALL W3TAGE('TRPSFCMV') -c STOP -c hunt for centers - do 2 k=5,ix-4 - do 2 j=5,iy-4 - lat=-61+j - lon=k-1 - gradck=2.2 - fmin=grid2(k,j) - fmax=grid2(k,j) - do 4 kk=k-4,k+4 - do 4 jj=j-4,j+4 - if(grid2(kk,jj) .lt. fmin) fmin=grid2(kk,jj) - if(grid2(kk,jj) .gt. fmax) fmax=grid2(kk,jj) -c 1 grid2(k,j) .lt. grid2(k+1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k-1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j+1)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j-1)-gradck .and. -c 2 grid2(k,j) .lt. grid2(k+2,j) .and. -c 2 grid2(k,j) .lt. grid2(k-2,j) .and. -c 2 grid2(k,j) .lt. grid2(k,j+2) .and. -c 2 grid2(k,j) .lt. grid2(k,j-2) -c 3 ) then - 4 continue - if( (fmax-fmin) .lt. gradck) go to 2 - if (fmin .eq. grid2(k,j) .or. fmax .eq. grid2(k,j)) then - flat=lat - flon=lon - call maptra(flat,flon,uu,vv) - if (flat .gt. 0.) then - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - else - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - endif - endif - 2 continue - call satread - return - END -c -c************************************************************** -c - SUBROUTINE FILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) - - DIMENSION XWRK(*),YWRK(*),IAREA(*),IGRP(*) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .GT. 0) THEN -cC -C If the area is defined by 3 or more points, fill it -C - CALL GSFACI(IAREA3+2) - CALL GFA(NWRK,XWRK,YWRK) - ENDIF - -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine cg(zreg,ix,iy,ifld) -C - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) - - real ZREG(ix,iy) - - EXTERNAL COLOR -C -C Call Conpack color fill routine - do k=1,ix -ckumar print *,' zreg',(zreg(k,j),j=1,iy,5) - end do -C - CALL CCPLLB(ZREG,ix,iy,COLOR,IWKID,ifld) -C - - RETURN - END -c -c************************************************************** -c - SUBROUTINE CCPLLB(ZREG,MREG,NREG,COLOR,IWKID,ifld) - common/staa/ibitz - common/windz/u2(360,121),v2(360,121) - common/oth/u(70,40),v(70,40),rlats(65),rlons(65),up(65),vp(65) - PARAMETER (LRWK=50000,LIWK=50000,LMAP=900000,NWRK=50000,NOGRPS=6) - REAL ZREG(MREG,NREG),RWRK(LRWK), XWRK(NWRK), YWRK(NWRK) - INTEGER MREG,NREG,IWRK(LIWK) - INTEGER MAP(LMAP),IAREA(NOGRPS),IGRP(NOGRPS) - integer ibts(16,300) - DATA IBTS / 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, - 1 1600*0, - 1 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 2 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, - 3 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, - 4 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 5 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, - 6 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 7 160*0, 2928*0 / ! modified for ibmsp - EXTERNAL FILL -c data ibitz/Z'F0F0F0F0F0F03333'/ - external sfill - EXTERNAL CPDRPL - EXTERNAL COLOR -C -C Set fill style to solid and turn off clipping -C - CALL GSFAIS(1) - CALL GSCLIP(0) -C -C Set up label box options -C -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - NOCL=300 - CALL CPSETI('LLP - LINE LABEL POSITIONING FLAG',4) -c CALL CPSETI('LLB - LINE LABEL BOX FLAG',4) - CALL CPSETI('LLB - LINE LABEL BOX FLAG',3) - CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',3) -c CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',4) - CALL CPSETI('ILB - INFORMATIONAL LABEL BOX FLAG',0) - CALL CPSETI('LBC - LABEL BOX COLOR INDEX',1) -c call cpseti('CIS',6) -cc call cpseti('LIS',1) - call cpseti('LIS',100) - call cpseti('LLP',2) - CALL CPSETR ('ORV - OUT-OF-RANGE VALUE',1.E12) - call cpsetr('RC1',0.15) - call cpsetr('LLS',0.00002) - call cpsetr('RC2',0.15) - call cpsetr('LLW',0.00001) -c call cpsetr('HLW',0.001) -c call cpsetr('HLS',0.002) - call cpsetr('HLW',0.0000001) - call cpsetr('HLS',0.0000002) - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - CALL CPPKCL (ZREG, RWRK, IWRK) - CALL CPGETI('NCL - NUMBER OF CONTOUR LEVELS',NCL) - DO 111 I=1,NCL - CALL CPSETI('PAI - PARAMETER ARRAY INDEX',I) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('AIA - AREA IDENTIFIER ABOVE',0) - CALL CPSETI('AIB - AREA IDENTIFIER BELOW',0) - 111 CONTINUE - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('NCL - NUMBER OF CONTOUR LEVELS',NCL+2) - CALL CPSETI ('PAI',ncl+1) - call cpsetr('CLV',0.0) - call cpseti('AIB',5) - call cpseti('AIA',0) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - if(zreg(50,50) .lt. 500) then -c CALL CPSETI ('PAI',ncl+2) -c call cpsetr('CLV',15.0) -c call cpseti('AIB',0) -c call cpseti('AIA',6) - endif -c call cpsetr('CLV',55.0) -c call cpseti('AIB',6) -c call cpseti('AIA',0) - DO 11 I=1,ncl - ivarv=ibitz - print 198,ivarv - 198 format(z16) -c CALL CPSETI('PAI - PARAMETER ARRAY INDEX',i) -c CALL CPSETI('CLD - CONTOUR LINE DASH PATTERN', -c + ivarv) - 11 continue - CALL COLOR(NCL+1,IWKID) - call PCSETI('CC',0) - - -C -C Draw Perimeter -C -c CALL CPBACK(ZREG, RWRK, IWRK) - call gslwsc(1.0) -C -C Initialize Areas -C -cc CALL ARINAM(MAP, LMAP) -C -C Add label boxes to area map -C -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(1) -c cc CALL CPLBAM(ZREG, RWRK, IWRK, MAP) -C -C Draw Labels -C - call gsln(0) -c CALL CPLBDR(ZREG, RWRK, IWRK) -C -C Add contours to area map -C -c CALL CPCLAM(ZREG, RWRK, IWRK, MAP) - call gslwsc(3.0) -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(4) - call cpcldr(zreg,rwrk,iwrk,map,cpdrpl) -c NEW LINE - call gslwsc(2.0) - call cplbdr(zreg,rwrk,iwrk) - -c call cpcldm(zreg,rwrk,iwrk,map,cpdrpl) -c call gsln (1) -C -C Fill contours -C -c CALL ARSCAM(MAP, XWRK, YWRK, NWRK, IAREA, IGRP, NOGRPS, SFILL) - 99 continue - CALL WMSETR('WBS',0.004) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - RETURN - END -c -c************************************************************** -c - SUBROUTINE COLOR (N,IWKID) -C -C BACKGROUND COLOR -C -C -C BLACK -C - CALL GSCR(IWKID,0,0.,0.,0.) -C -C First foreground color is white -C - CALL GSCR(IWKID,1,1.,1.,1.) -C -C Second foreground color is gray -C - CALL GSCR(IWKID,2,0.5,0.5,0.5) -C -C Choose other foreground colors spaced equally around the spectrum -C - ICNT=0 - HUES=360./N -C -C REDLN is intended to be the line between red and violet values -C - REDLN=36.0 - LAP=INT(REDLN/HUES) - DO 10, I=1,N - XHUE=I*HUES - CALL HLSRGB(XHUE,60.,75.,RED,GREEN,BLUE) -C -C Sort colors so that the redest is first, and violetest is last -C - IF (XHUE.LE.REDLN) THEN - CALL GSCR(IWKID,(N+2)-(LAP-I),RED,GREEN,BLUE) - ICNT=ICNT+1 - ELSE - CALL GSCR(IWKID,I-ICNT+2,RED,GREEN,BLUE) - ENDIF - 10 CONTINUE - - RETURN - END -c -c************************************************************** -c - SUBROUTINE SFILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) -C - REAL XWRK(*),YWRK(*),ISCR(5000) - INTEGER IAREA(*),IGRP(*),RSCR(5000) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .eq. 5) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 0.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF - IF (IAREA3 .eq. 6) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 90.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine i3to53(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i53to3(F53,F3) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - logical log3(360,181) - equivalence (lo_03,log3) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - - do k=1,360 - log3(k,1)=.FALSE. - log3(k,181)=.FALSE. - end do - ibi=0 -cc define 360x181 grid - call makgds(53,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(3,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,jo53,ji2,1, - 1 ibi,lo_03,F53,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F3,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i3to8(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(116,44) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(8,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine closen -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C - CALL GDAWK (1) - CALL GCLWK (1) - CALL GCLKS - return - end -c -c************************************************************** -c - subroutine openn -C OPEN GKS, OPEN WORKSTATION OF TYPE 1, ACTIVATE WORKSTATION -C - CALL GOPKS (6,IDUM) - CALL GOPWK (1, 2, 1) - CALL GACWK (1) - return - end -c -c************************************************************** -c - Subroutine get3(lun,luni,jpds,a2,c132) -CKUMAR common/grbpds/kpds - COMMON/PACKRA/IRAS(10) -c array is an NMC GRIB TYPE 3 field on output -c jpds is set in the CALLER!! except for fields 1-3 - dimension array(360,181),a2(360,181) - dimension jpds(25),jgds(25) - dimension grib(360,181) - dimension kpds(25),kgds(25) - character*132 c132 - logical lb(360,181) - jf=360*181 -CKUMAR jflag=-1 - jflag=0 - kf=jf -c jpds(2)=77 - jpds(1)=7 -c jpds(3)=104 - jpds(3)=3 - print 101,lun,luni - print 109,(jpds(ll),ll=1,25) - 109 format(5z17) - print*,'kpds = ',kpds(1:20) - print*,'jpds = ',jpds(1:20) -CKUMAR call getgb1(lun,luni,jf,jflag,jpds,jgds, -CKUMAR 1 grib,kf,k,kpds,kgds,lb,array,ier) - call getgb(lun,luni,jf,jflag,jpds,jgds, - 1 kf,k,kpds,kgds,lb,array,ier) - print*,'kpds = ',kpds(1:20) - print*,'ier after getgb ',ier -c if ( ier .ne. 0) then -c CALL W3TAGE('TRPSFCMV') -c call errexit(99) -c endif - call w3fp11(grib,grib(2,1),c132,ierr) - print 106,k,c132 - 106 format(i6, 'LAB ',a132) - print 101,ier,k,kf - if(ier .ne.0 ) then - CALL W3TAGE('TRPSFCMV') - call errexit(9999) - endif - print 102,(array(90,k),k=1,181) - 102 format(10f8.2) - 101 format(i9) -cj do 45,k=1,181 -c do 45,j=1,360 -c 45 if(j .gt. 70 .or. k .gt. 70) array(j,k)=array(70,70) -c SET IRAS VARIABLES - iras(1)=kpds(14) - iras(7)=kpds(11) - iras(8)=kpds(10) - iras(9)=kpds(9) -C This should generate the proper 4-digit year no matter what!! - mcen=max(0,kpds(21)-1) - iras(10)=mcen*100+kpds(8) - if(iras(10) .le. 20) then - iras(10)=iras(10)+2000 - else if(iras(10).le.99) then - iras(10)=iras(10)+1900 - end if -c iras(3)=iras(7) -c iras(4)=iras(8) -c iras(5)=iras(9) -c iras(6)=iras(10) -c flip type 3 grid - do k=1,181 - do j=1,360 -c a2(j,182-k)=array(j,k) - a2(j,k)=array(j,k) - end do - end do - return - end -c -c************************************************************** -c - Subroutine stream3(mbars,itime,lupgb,lupgi,F3) -c -c George VandenBerghe 11/17/96 -c -c subroutine to accept pressure level (mbars), -c grib unit number (lupgb), and grib index unit -c number (lupgi) and read u, and v wind fields, -c at mbars, and calculate stream function. Stream -c function is stored in F3 and returned to caller. -c The Grib fields on lupgb MUST be grib type 3 (360x181) -c fields. These are output automatically by the NCEP -c GFS forecast model. -c These stream functions are dimensionally correct -c m**2/sec streamfunctions -c 11/17/96 add on !! -c logic added to handle tropopause level. Passing -c in pressure as 7 mbars tells code to wildcard -c pressure and take tropopause level values - parameter(im=360,jm=181,km=16) - dimension F3(im,jm) - dimension iprs(km) - integer kpds(100), kgds(100) - integer jpds(100), jgds(100) - logical lbms(im*jm), luv, ldz, lps - real u(im,jm), v(im,jm), psi(im,jm),chi(im,jm) - data iromb/0/,maxwv/126/,idrti/0/,imaxi/360/,jmaxi/181/ - data idrto/0/,imaxo/360/,jmaxo/181/,kmax/1/ - data iprime/0/,iskipi/0/,jskipi/0/,kspipi/0/ - data iskipo/0/,jskipo/0/,kspipo/0/,jcpu/0/ -c --- coordinate testing code - x1=50 - y1=60 - x2=180 - y2=60 - x3=180 - y3=120 - - luv = .False. - ldz = .False. - lps = .True. - ijm = im * jm - fim = im - lskip=-1 - k=0 - do jj = 1, 100 - jpds(jj) = -1 - enddo - do jj = 1, 20 - jgds(jj) = -1 - enddo - jpds(5) = 33 - jpds(6) = 100 - jpds(7) =mbars - jpds(14)=itime -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,u,iret) -c print *,' KPDS AFTER U' -c print 189,kpds - if(iret.ne.0) then - print *, ' iret =', iret - print *, ' k =', k - print *, kpds - endif - jpds(5) = 34 - jpds(6) = 100 - jpds(7) = mbars -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,v,iret) - if(iret.ne.0) then - print *, ' iret =', iret - print *, ' k =', k - print *, kpds - endif - call SPTRUNV(IROMB,MAXWV,IDRTI,IMAXI,JMAXI, - & IDRTO,IMAXO,JMAXO,KMAX, - & IPRIME,ISKIPI,JSKIPI,KSKIPI, - & ISKIPO,JSKIPO,KSKIPO,JCPU,U,V, - & LUV,GRIDUO,GRIDVO,LDZ,GRIDDO,GRIDZO, - & LPS,chi,psi) - print 109,k - 109 format(' K is ',i9) -c - do j=1,jm - do k=1,im - f3(k,j)=psi(k,j) - end do - end do - kpds(5)=35 -c print *,' KPDS to be put' -c print 189,kpds - 189 format(5Z20) -c WRITE THE STREAMFUNCTIONS TO UNIT 51!! -c call putgb(51,ijm,kpds,kgds,lbms,f3,iret) -c end write - if(iret .ne. 0) print *, - 1 ' WARNING PUT OF STREAMFUNCTION FAILED return code ', iret, - 1 ' from putgb ' - print *,' FEW STREAMS',psi(50,50),psi(100,100) - 990 continue - return - end -c -c************************************************************** -c - subroutine afosread -c field 4 time (4 digits) -c field 5 name ( 5 digits) -c field 6 sky cover i A aircraft S sat M missing -c7 field 7 wind ddfff -c field 8 pressure (mb*10. significant digits) -c field 9,10 temp and dew -c 11 present weather (code or text) -c 12 visibility -c 13 pressure change -c 14 barograoh trace (code table 12) -c 15 low/middle/high cloud -c 16 precip -c 17 remarks -c lat lon are 18 and 19 -c 20 ship course and speed - dimension points(100000,2) - character*160 cline - character*160 cout - integer icom(20) - character*8 ccom(20),cf -c - do nn=1,2 - do mm=1,100000 - points(mm,nn)=0 - enddo - enddo -c - call ridctlm - do k=1,20 - ccom(k)=' ' - end do -c - open(44,file='afosplot') -c -c do jjj=1,2 -c read(44,101)cline -c enddo -c - do 10000 kkk=1,100000 - 101 format(a160) - read(44,101,end=999,err=997) cline - write(85,101) cline -c print 101,cline -c find the commas - idx=1 - is=1 - cf=' ' - ico=0 - do 10,k=1,160 - if(cline(k:k) .eq. ',' .or.cline(k:k).eq.';') then - ico=ico+1 - print*,'ico = in AFOSREAD ',ico -c - if(ico.ge.40) then - print *,' MORE THAN 40 COMMAS in line in AFOSREAD',kkk - go to 10000 - endif -c - print*,'ico before icom array in AFOSREAD = ',ico -ckumar - if(ico.le.20) then - icom(ico)=k - ccom(ico)=cf - cf=' ' - idx=1 - endif -ckumar - if(cline(k:k) .eq. ';') go to 19 - else - cf(idx:idx)=cline(k:k) - idx=idx+1 -c - if(idx .gt. 8) then - print *,' MORE THAN 8 blanks between commas in line ',kkk - go to 10000 - endif -c - endif - 10 continue - 19 continue - do k=1,20 - if(ccom(k) .eq. ' ') ccom(k)='-9999 ' - end do - do k=1,5 - if(ccom(15)(k:k).eq.'/') ccom(15)(k:k)='0' - end do - if(ccom(6)(8:8).eq. 'M') ccom(6)='-9999 ' - if(ccom(6)(1:1).eq. 'M') ccom(6)='-9999 ' - if (kkk .lt. 5) print 129,ccom - 119 format(i3,a3,20i3) - read(ccom(7),179)id,isp - 179 format(i3,i2) - read(ccom(9),149)itemp - read(ccom(6),149) icover - read(ccom(11),149) iwx - if(iwx .gt.99 .or. iwx .lt.0) iwx=-9999 - print *,' ICOVERC',icover - read(ccom(10),149)idew - read(ccom(18),159)ilat - read(ccom(15),149)icloud - if(icloud .gt. 0) print *,' ICLUD',icloud - read(ccom(19),169)ilon - read(ccom(8),149) ipres - read(ccom(14),149)itrace - read(ccom(13),149) itend - if (ccom(18)(4:4) .eq. 'S') ilat=-ilat - if(ccom(19)(5:5) .eq.'W') ilon=-ilon+3600. - flat=(ilat+0.5)/10. - flon=(ilon+0.5)/10. - call maptra(flat,flon,uu,vv) - if(id.eq.-99)id=-999 - dir=id - theta=(90-dir)*3.1415927/180. - u=cos(theta)*isp - v=sin(theta)*isp - dir=dir-90. - if(dir .le. 0) dir=dir+360 - if(flat .lt. 0) dir=-dir - id=dir - ilat=flat - ilon=floN - points(kkk,1)=400. - points(kkk,2)=400. - do 39,l=1,kkk-1 - xd=(points(l,1)-ilat)*2.0 - yd=points(l,2)-ilon - sargg=xd**2 + yd**2 -c write(102,*)' square root ',kkk,sargg - if(sargg .lt. 0.) then - write(102,*)' negative square root potential ',kkk,sargg - go to 10000 - endif -c - dist=sqrt(xd**2 + yd**2) -c dist=sqrt( (points(l,1)-ilat)**2 + (points(l,2)-ilon)**2) - if (dist .lt. 3.9) go to 10000 - if(ccom(3)(1:1) .eq. '7') go to 10000 -c if (dist .lt. 0.5) go to 10000 - 39 continue - points(kkk,1)=ilat - points(kkk,2)=ilon - 149 format(i8) - 159 format(i3) - 169 format(i4) - print *,'STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - if(iwx .gt. 0) - 1 print *, - 1 'WX STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - call l2p(flat,flon,iprx,ipry) - if(iprx .lt. -9999. .or. iprx .gt. 9999 .or. - 1 ipry .lt. -9999 . .or. ipry .gt. 9999) - 1 go to 10000 - write(89,105)'STATION PLOT', - 1 iprx,ipry,itemp,idew,ipres,itend,id,isp,icover,iwx,itrace,icloud - 1 ,ccom(5) - 1 ,ccom(18),ccom(19) -c 1 iprx,ipry,itemp,idew,ipres,itend,id,isp -c 1 iprx,ipry,itemp,idew,ilon,ilat,id,isp,icover,ccom(5) - 105 format(a16,12i5,x,3a9) - 139 format(96x,2i8) - 129 format(20a8) -10000 continue - print *,'WARNING, INPUT AFOS PLOTFILE NOT EXHAUSTED' - 997 continue -c print *,' ENDED DATA WITH ERROR' - 999 continue - return - end -c -c************************************************************** -c - subroutine l2p(flat,flon,iprx,ipry) - call maptra(flat,flon,uu,vv) - fx=cufx(uu) - fy=cufy(vv) - px=6912*fx -c1 py=-6912*(fy-.625555555) - py=-6912*(fy-.575555555) - iprx=py - ipry=px - print *,'L2P ', 'flat,flon,px,py,iprx,ipry', - 1 flat,flon,px,py,iprx,ipry - return - end -c -c************************************************************** -c - subroutine ridctlm -c remove all ctlm characters from fort.43 and write to fort.87 - dimension jstat(100) -c is=stat('fort.43',jstat) -c lnn=jstat(8) - read(5,101)lnn - 101 format(i10) - print*,'file size of fort.43 ',lnn - call afix(lnn) - return - end -c -c************************************************************** -c - subroutine afix(lnn) - character*1 bytes(lnn) - integer (kind=8) ip - data ip/Z'0D'/ ! CTRL-M - character*1 c1(8) - equivalence(c1,ip) -ckumar - open(43,file='NHPLOT',access='direct',recl=1280) -c - na=1 ; nb=1280 -c - nrec=lnn/1280 - print*,'In afix lnn & nrec : ',lnn,nrec -c - do ir=1,nrec - read(43,rec=ir)bytes(na:nb) - na=na+1280 - nb=nb+1280 -ckumar print*,'In afix ir, na & nb ',ir,na,nb - enddo -c - do 10,k=1,lnn - if(bytes(k) .eq. c1(8)) bytes(k)=' ' - 10 continue -c - write(87) bytes - close(87) - return - end -c -c************************************************************** -c - -C DATA SET DAYOWK AT LEVEL 001 AS OF 04/16/93 - SUBROUTINE DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DAYOWK FIND NUMERICAL DAY OF WEEK. -C PRGMMR: HENRICHSEN ORG: NMC41 DATE:93-05-11 -C -C ABSTRACT: GIVEN DAY MONTH AND YEAR AS INTEGERS RETURN DAY OF WEEK AS -C AND INTEGER NUMBER AND AS FOUR CHARACTER HOLLERTH TEXT. -C -C PROGRAM HISTORY LOG: -C 84-MM-DD WICK -C 85-MM-DD HENRICHSEN REMOVE OLD KEY PUNCH CHARACTERS AND CLEAN UP. -C 87-12-10 HENRICHSEN CONVERT TO VS FORTAN 77. -C -C USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C INPUT ARGUMENT LIST: -C IDAY - INTEGER TWO DIGET DAY OF MONTH( 1 THRU 31 ). -C IMONTH - INTEGER TWO DIGET MONTH OF YEAR( 1 THRU 12). -C IYEAR - INTEGER TWO OR FOUR DIGET YEAR. -C IYEAR SHOULD BE THE COMPLETE FOUR DIGIT YEAR. -C IF ONLY LAST 2 DIGITS OF YEAR ARE GIVEN, -C ASSUMES 20TH CENTURY... -C -C OUTPUT ARGUMENT LIST: -C IDAYWK - INTEGER NUMBER OF DAY OF WEEK ( 1 THRU 7 ). -C IHDAYW - CHARACTER*4 WORD CONTAINING THE THE THREE LETTER -C - DAY OF THE WEEK LEFT JUSTIFED IN THE WORD. -C - IE 'MON ', .... 'FRI ', .... 'SUN '. -C ERRFLAG - ERROR OF OUT OF RANGE ARGUEMENT IS INDICATED BY THE -C - RESULTING IDAYWK = 0, AND IHDAYW = BLANKS. -C -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C FT06F001 - ERROR PRINT WHEN ARGUEMENTS OUT OF RANGE. -C -C REMARKS: NONE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ - CHARACTER*4 IHDAYW - CHARACTER*4 ITEXT(2) - CHARACTER*4 KHDAY(7) - CHARACTER*4 KLANK - CHARACTER*4 NHDAY(2) - CHARACTER*4 NHMON(2) - CHARACTER*4 NHYR(2) -C - INTEGER KCEN(5) - INTEGER KDAYS(12) - INTEGER MONTAB(12) -C - DATA KHDAY /'SUN ','MON','TUE ', - 1 'WED ','THU ','FRI ','SAT '/ - DATA KLANK /' '/ - DATA NHDAY /'DAY ',' '/ - DATA NHMON /'MONT','H '/ - DATA NHYR /'YEAR',' '/ -C - DATA KCEN /4,2,0,6,4/ - DATA KDAYS /31,29,31,30,31,30,31,31,30,31,30,31/ - DATA MONTAB /1, 4, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6/ -C - IDAYWK = 0 - IHDAYW = KLANK - ISFEB = 0 - IDA = IDAY - IMO = IMONTH - IYR = IYEAR - IF(IMO) 911,911,122 - 122 IF(IMO .GT. 12) GO TO 911 - IF(IDA) 922,922,133 - 133 IF(IDA .GT. KDAYS(IMO)) GO TO 922 - ICENT = IYR / 100 - IYR2 = IYR - 100 * ICENT - IF(ICENT) 933,140,144 - 140 CONTINUE -C ...IF ONLY LAST 2 DIGITS OF YR WERE GIVEN, ASSUME ITS 1900 + - ICENT = 19 - IYR = IYR + 1900 - 144 CONTINUE - ICENTX = ICENT - 16 - IF(ICENTX) 933,933,155 - 155 IF(ICENTX .GT. 5) GO TO 933 -C ...THE GIVEN DATE INFO IS W/I RANGE... - ISUM = KCEN(ICENTX) + IYR2 +IYR2/4 + MONTAB(IMO) + IDA - IF(IMO - 2) 222,211,611 -C ...OTHERWISE, THIS IS JAN OR FEB, SO CHECK FOR LEAP YR... - 211 ISFEB = 1 - 222 CONTINUE - IF(MOD(IYR,4)) 533,511,533 -C ...MOST LIKELY A LEAP YR. TEST FOR CENTURY YR... - 511 CONTINUE - IF(IYR2)522,515,522 - 515 CONTINUE - IF(MOD(IYR,400))533,522,533 -C ...COMES TO 522 IF LEAP YR CORRECTION IS NEEDED... - 522 CONTINUE - ISUM = ISUM - 1 - GO TO 611 - 533 CONTINUE -C ...COMES TO 533 IF NOT A LEAP YR, SO IF FEB, MUST RETEST IDA... - IF(ISFEB)544,611,544 - 544 CONTINUE -C ...THIS IS FEB OF A NON-LEAP YR. - IF (IDA .GE. KDAYS(2)) GO TO 922 - GO TO 611 - 611 CONTINUE - IDAW = MOD(ISUM,7) - IF(IDAW) 644,633,644 - 633 CONTINUE - IDAW = 7 - GO TO 644 - 644 CONTINUE - IDAYWK = IDAW - IHDAYW = KHDAY(IDAW) - RETURN -C - 911 CONTINUE -C ...COMES HERE IF GIVEN MONTH OUT-OF-RANGE... - ITEXT(1) = NHMON(1) - ITEXT(2) = NHMON(2) - GO TO 955 - 922 CONTINUE -C ...COMES HERE IF GIVEN DAY OUT-OF-RANGE - ITEXT(1) = NHDAY(1) - ITEXT(2) = NHDAY(2) - GO TO 955 - 933 CONTINUE -C ...COMES HERE IF GIVEN YR OUT OF RANGE - ITEXT(1) = NHYR(1) - ITEXT(2) = NHYR(2) - GO TO 955 - 955 CONTINUE - PRINT 956, ITEXT(1),ITEXT(2),IDAY,IMONTH,IYEAR - 956 FORMAT(1H0,10X,'ERROR EXIT FROM DAYOWK. GIVEN ', A4, A1, 1X, - X 'OUT-OF-RANGE', /1H0,15X,'IDAY = Z', Z8, 4X,'IMONTH = Z', - X Z8, 4X, 'IYEAR = Z', Z8) - RETURN - END -c -c************************************************************** -c - subroutine satread -c READS SATELLITE WIND DATA AND DRAWS WIND BARBS -c ON ANY NCAR GRAPHICS PLOTTING FRAME WITH LATLON -c FRAME MAPPING DEFINED (general for weather plots) - dimension ary(6) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - do 10,k=1,9999999 - read(38,101,end=99)ary - 101 format(6x,6f10.4) - flat=ary(1) - flon=ary(2) - dir=ary(4) - speed=ary(5) - qcm=ary(6) - u=speed*sin(dir*3.1415927/180.) - v=speed*cos(dir*3.1415927/180.) - call maptra(flat,flon,uu,vv) -c print *,'calling wmbarb',uu,vv,u,v - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - call wmbarb(uu,vv,u,v) - call plchhq(uu,vv,':F19:c',1.5,0.,0.) -c call plchhq(uu,vv,':F22:C',9.5,0.,0.) - 10 continue - 99 continue - return - end -c -c************************************************************** -c - subroutine hbull -c reads quality controlled hurricane bulletins from either: -c $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -c $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL -c and writes putlab call information and box drawing -c information for use downstream by bedient packing -c and drawing program sixbitb2. Input is fortran -c unit 31 and output is fortran unit 74. - -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. - - - COMMON/PACKRA/IRAS(10) - - character*10 names(16) - character*128 clines(100) - character*128 cline - character*128 dumy2k - character*10 cname - character*13 cdate - character*2 c2 - character*80 cout,cnull - - print *, ' ' - print *, ' ===> ENTERING SUBROUTINE HBULL' - print *, ' ' - - write(c2,'(i2.2)') iras(7) - - cnull='NO TROPICAL CYCLONE ACTIVITY REPORTED' - icount=0 - icounta=0 - klines=0 - names='xxxxxxxxxx' - - do k=1,100 - read(31,fmt='(a128)',end=9) cline - -C AT THIS POINT WE DO NOT KNOW IF A 2-DIGIT YEAR BEGINS IN COLUMN 20 -C OF THE RECORD (OLD NON-Y2K COMPLIANT FORM) OR IF A 4-DIGIT YEAR -C BEGINS IN COLUMN 20 (NEW Y2K COMPLIANT FORM) - TEST ON LOCATION OF -C LATITUDE N/S INDICATOR TO FIND OUT ... - - if(cline(35:35).eq.'N' .or. - . cline(35:35).eq.'S') then - -C ... THIS RECORD STILL CONTAINS THE OLD 2-DIGIT FORM OF THE YEAR - -C ... THIS PROGRAM WILL CONVERT THE RECORD TO A 4-DIGIT YEAR USING THE -C "WINDOWING" TECHNIQUE SINCE SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 2-digit year "',cline(20:21),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - DUMY2K(1:19) = cline(1:19) - IF(cline(20:21).GT.'20') THEN - DUMY2K(20:21) = '19' - ELSE - DUMY2K(20:21) = '20' - ENDIF - DUMY2K(22:128) = cline(20:126) - cline = DUMY2K - PRINT *, ' ' - PRINT *, '==> 2-digit year converted to 4-digit year "', - . cline(20:23),'" via windowing technique' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - ELSE IF(cline(37:37).eq.'N' .OR. - . cline(37:37).eq.'S') THEN - -C ... THIS RECORD CONTAINS THE NEW 4-DIGIT FORM OF THE YEAR -C ... NO CONVERSION NECESSARY SINCE THIS SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 4-digit year "',cline(20:23),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - PRINT *, '==> No conversion necessary' - PRINT *, ' ' - ELSE - PRINT *, ' ' - PRINT *, '***** Cannot determine if this record contains ', - . 'a 2-digit year or a 4-digit year - skip it and try ', - . 'reading the next record' - PRINT *, ' ' - CYCLE - END IF - - clines(k)=cline - klines=k - enddo - - 9 continue - - LOOP1: do k=klines,1,-1 - cline=clines(k) - print *, ' ' - print *, 'Look at record: ',cline - print *, ' ' - - LOOP1n1: do j=1,16 - -c look for same name and time - - if(cline(29:30) .ne. c2) then - print *, ' ' - print *, 'Do not process this record because its hour ', - . '(=',cline(29:30),') is different than the ', - . 'cycle hour (=',c2,')' - print *, ' ' - cycle LOOP1 - endif - if(cline(6:6) .eq. '8' .or. cline(6:6) .eq. '9') then - print *, ' ' - print *, 'Do not process this record because it is a ', - . 'test storm, storm id =',cline(6:7) - print *, ' ' - cycle LOOP1 - endif - if(names(j) .eq. cline(10:19) .and. - . names(j) .ne. 'NAMELESS' ) then - print *, ' ' - print *, 'Do not process this record because it has a', - . ' name that has already been processed (name=', - . cline(10:19),')' - print *, ' ' - cycle LOOP1 - endif - print *, ' ' - print *, 'NAMES ',cline(10:19),names(j) - print *, ' ' - enddo LOOP1n1 - - LOOP1n2: do j=1,16 - -c assign new name - - print *, ' ' - print *, 'threeloop' - print *, ' ' - if(names(j) .eq. 'xxxxxxxxxx' ) then - names(j)=cline(10:19) - cname=cline(10:19) - cdate=cline(20:32) - -c - On rare occasions, upstream program QCTROPCY can stamp a 'C' into -c character 67 - this had resulted in a failure in this program -c (note 104 format). Change by Keyser (08/10/1998) uses 9104 format -c if mwind < 100 . - - if(cline(67:67).eq.'1') then - read(cline,104)latd,lond,idir,isp,icp,mwind - 104 format(33x,i3,2x,i4,x,i4,i4,x,i4,10x,i3) - else - read(cline,9104)latd,lond,idir,isp,icp,mwind -9104 format(33x,i3,2x,i4,x,i4,i4,x,i4,11x,i2) - end if - flat=latd/10. - flon=lond/10. - fdir=idir - fsp=isp/10. - central_pressure=icp - - write(cout,105) cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - ic=530+10*j - iatl=0 - ipac=0 - if(lond -latd .lt. 800) iatl =1 - if(lond-latd .gt. 720 .and. latd .lt. 150) ipac=1 - if(lond-latd .gt. 800 ) ipac=1 - -c test for atlantic or Pacific storm - - if(iatl .eq. 1) then - icounta=icounta+1 - ic=icounta*20+620 -ccccc ic=icounta*20+520 - write(74,114) 'PUTLA ',ic, - . '6420 01.0 90.0 038 1 0 0 ',cout(1:80) - endif - if(ipac .eq. 1) then - icount=icount+1 - ic=icount*20+520 - write(74,114) 'PUTLA ',ic, - . '4201 01.0 90.0 038 1 0 0 ',cout(1:80) - endif -ccccc write(74,114) 'PUTLA ',ic,'4201 04.0 90.0 080 1 0 0 ', -ccccc. cout(1:80) - 114 format(a6,i5,a27,a80) - print 105, cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - 105 format(a10,x,a13,x,f4.1,a1,x,f5.1,a1,x,a3,f6.0,x,a3,f5.1, - . a5,x,f6.1,' MB',i3,'M/SEC' ) - if(cline(37:37).eq. 'S') flat=-flat - if(cline(43:43).eq. 'W') flon=360-flon - call maptra(flat,flon,uu,vv) - if ((mwind*2.24) .gt. 38) then - call plchhq(uu,vv,':F35:m',7.5,0.,0.) - else - call plchhq(uu,vv,':F30:TD',2.0,0.,0.) - call plchhq(uu,vv,':F37:S',6.0,0.,0.) - endif - if((mwind*2.24) .gt. 74.) then - -c close hurricane symbol with black fill - - call plchhq(uu,vv-0.005,':F37:Z',4.5,0.,0.) - endif - call gslwsc(3.0) - call plchmq(uu+0.02,vv-0.055,cname,2.5,0.,0.) - call gslwsc(1.0) - exit LOOP1n2 - endif - enddo LOOP1n2 - enddo LOOP1 -ccccc isizea=(icounta+1)/2 +2 - isize=(icount+1)/2 +2 - isize=icount+2 - isizea=icounta+2 - if(isize .eq. 2) then - write(74,114)'PUTLA ',540,'4201 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isize=isize+1 - print *, cnull(1:80) - endif - if(isizea .eq. 2) then - write(74,114)'PUTLA ',640,'6420 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isizea=isizea+1 - print *, cnull(1:80) - endif - write(74,115)'BOX ',510,4190,isize,25 - write(74,115)'BOX ',610,6401,isizea,25 - 115 format(a4,2i5,i5,i5) - - print *, ' ' - print *, ' ===> LEAVING SUBROUTINE HBULL' - print *, ' ' - - return - - end - -c************************************************************** - diff --git a/sorc/gdas_trpsfcmv.fd/getgb1.f b/sorc/gdas_trpsfcmv.fd/getgb1.f deleted file mode 100755 index 706e8813c8..0000000000 --- a/sorc/gdas_trpsfcmv.fd/getgb1.f +++ /dev/null @@ -1,222 +0,0 @@ - SUBROUTINE GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS, - & GRIB,KF,K,KPDS,KGDS,LB,F,IRET) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: GETGB1 FINDS AND UNPACKS A GRIB MESSAGE -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 94-04-01 -C -C ABSTRACT: FIND AND UNPACK A GRIB MESSAGE. -C READ AN ASSOCIATED GRIB INDEX FILE (UNLESS IT ALREADY WAS READ). -C FIND IN THE INDEX FILE A REFERENCE TO THE GRIB MESSAGE REQUESTED. -C THE GRIB MESSAGE REQUEST SPECIFIES THE NUMBER OF MESSAGES TO SKIP -C AND THE UNPACKED PDS AND GDS PARAMETERS. (A REQUESTED PARAMETER -C OF -1 MEANS TO ALLOW ANY VALUE OF THIS PARAMETER TO BE FOUND.) -C IF THE REQUESTED GRIB MESSAGE IS FOUND, THEN IT IS READ FROM THE -C GRIB FILE AND UNPACKED. ITS MESSAGE NUMBER IS RETURNED ALONG WITH -C THE UNPACKED PDS AND GDS PARAMETERS, THE UNPACKED BITMAP (IF ANY), -C AND THE UNPACKED DATA. IF THE GRIB MESSAGE IS NOT FOUND, THEN THE -C RETURN CODE WILL BE NONZERO. -C -C PROGRAM HISTORY LOG: -C 94-04-01 IREDELL -C 95-05-10 R.E.JONES ADD ONE MORE PARAMETER TO GETGB AND -C CHANGE NAME TO GETGB1 -C -C USAGE: CALL GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS, -C & GRIB,KF,K,KPDS,KGDS,LB,F,IRET) -C INPUT ARGUMENTS: -C LUGB LOGICAL UNIT OF THE UNBLOCKED GRIB DATA FILE -C LUGI LOGICAL UNIT OF THE UNBLOCKED GRIB INDEX FILE -C JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK -C J INTEGER NUMBER OF MESSAGES TO SKIP -C (=0 TO SEARCH FROM BEGINNING) -C (<0 TO REOPEN INDEX FILE AND SEARCH FROM BEGINNING) -C JPDS INTEGER (25) PDS PARAMETERS FOR WHICH TO SEARCH -C (=-1 FOR WILDCARD) -C LOOK IN DOC BLOCK OF W3FI63 FOR ARRAY KPDS -C FOR LIST OF ORDER OF UNPACKED PDS VALUES. IN -C MOST CASES YOU ONLY NEED TO SET 4 OR 5 VALUES -C TO PICK UP RECORD. -C JGDS INTEGER (22) GDS PARAMETERS FOR WHICH TO SEARCH -C (ONLY SEARCHED IF JPDS(3)=255) -C (=-1 FOR WILDCARD) -C OUTPUT ARGUMENTS: -C GRIB GRIB DATA ARRAY BEFORE IT IS UNPACKED -C KF INTEGER NUMBER OF DATA POINTS UNPACKED -C K INTEGER MESSAGE NUMBER UNPACKED -C (CAN BE SAME AS J IN CALLING PROGRAM -C IN ORDER TO FACILITATE MULTIPLE SEARCHES) -C KPDS INTEGER (25) UNPACKED PDS PARAMETERS -C KGDS INTEGER (22) UNPACKED GDS PARAMETERS -C LB LOGICAL (KF) UNPACKED BITMAP IF PRESENT -C F REAL (KF) UNPACKED DATA -C IRET INTEGER RETURN CODE -C 0 ALL OK -C 96 ERROR READING INDEX FILE -C 97 ERROR READING GRIB FILE -C 98 NUMBER OF DATA POINTS GREATER THAN JF -C 99 REQUEST NOT FOUND -C OTHER W3FI63 GRIB UNPACKER RETURN CODE -C -C SUBPROGRAMS CALLED: -C BAREAD BYTE-ADDRESSABLE READ -C GBYTE UNPACK BYTES -C FI632 UNPACK PDS -C FI633 UNPACK GDS -C W3FI63 UNPACK GRIB -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY C916/256, J916/2048 -C -C$$$ -C - PARAMETER (MBUF=8192*128) - PARAMETER (LPDS=23,LGDS=22) -C - INTEGER JPDS(25),JGDS(*),KPDS(25),KGDS(*) - INTEGER IPDSP(LPDS),JPDSP(LPDS),IGDSP(LGDS) - INTEGER JGDSP(LGDS) - INTEGER KPTR(20) -C - LOGICAL LB(*) -C - REAL F(*) -C - CHARACTER CBUF(MBUF) - CHARACTER*81 CHEAD(2) - CHARACTER*1 CPDS(28) - CHARACTER*1 CGDS(42) - CHARACTER*1 GRIB(*) - INTEGER IBUF(60) - EQUIVALENCE (IBUF(1), CBUF(1)) -C -C SAVE LUX,NSKP,NLEN,NNUM,CBUF - SAVE -C - DATA LUX/0/ - print *, LUGB,LUGI,JF,J,JPDS, - & KF,K,KPDS,IRET -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C READ INDEX FILE - IF(J.LT.0.OR.LUGI.NE.LUX) THEN -C REWIND LUGI -C READ(LUGI,fmt='(2A81)',IOSTAT=IOS) CHEAD - CALL BAREAD(LUGI,0,162,ios,chead) - print *, ios, CHEAD(1)(42:47) - IF(IOS.EQ.162.AND.CHEAD(1)(42:47).EQ.'GB1IX1') THEN - LUX=0 - READ(CHEAD(2),'(8X,3I10,2X,A40)',IOSTAT=IOS) NSKP,NLEN,NNUM - print *, IOS, NSKP,NLEN,NNUM - IF(IOS.EQ.0) THEN - NBUF=NNUM*NLEN - IF(NBUF.GT.MBUF) THEN - PRINT *,'GETGB1: INCREASE BUFFER FROM ',MBUF,' TO ',NBUF - NNUM=MBUF/NLEN - NBUF=NNUM*NLEN - ENDIF - CALL BAREAD(LUGI,NSKP,NBUF,LBUF,CBUF) -C call byteswap(CBUF, 8, LBUF/8) - print *, (ibuf(1), i=1, 20) - IF(LBUF.EQ.NBUF) THEN - LUX=LUGI - J=MAX(J,0) - ENDIF - ENDIF - ENDIF - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C SEARCH FOR REQUEST - LGRIB=0 - KJ=J - K=J - KF=0 - IF(J.GE.0.AND.LUGI.EQ.LUX) THEN - LPDSP=0 - DO I=1,LPDS - IF(JPDS(I).NE.-1) THEN - LPDSP=LPDSP+1 - IPDSP(LPDSP)=I - JPDSP(LPDSP)=JPDS(I) - ENDIF - ENDDO - LGDSP=0 - IF(JPDS(3).EQ.255) THEN - DO I=1,LGDS - IF(JGDS(I).NE.-1) THEN - LGDSP=LGDSP+1 - IGDSP(LGDSP)=I - JGDSP(LGDSP)=JGDS(I) - ENDIF - ENDDO - ENDIF - IRET=99 - DOWHILE(LGRIB.EQ.0.AND.KJ.LT.NNUM) - KJ=KJ+1 - LT=0 - IF(LPDSP.GT.0) THEN - CPDS=CBUF((KJ-1)*NLEN+26:(KJ-1)*NLEN+53) - KPTR=0 - call byteswap(CBUF, 4, LBUF/4) - print *,KJ, NLEN, IBUF - CALL GBYTE(CBUF,KPTR(3),(KJ-1)*NLEN*8+25*8,3*8) - call byteswap(CBUF, 4, LBUF/4) - print *, KPTR, KJ, LGRIB, NNUM, LT, LPDSP - print *, CPDS - CALL FI632(CPDS,KPTR,KPDS,IRET) - print *, KPDS - DO I=1,LPDSP - IP=IPDSP(I) - LT=LT+ABS(JPDS(IP)-KPDS(IP)) - print *, i, ip, JPDS(IP), KPDS(IP) - ENDDO - ENDIF - IF(LT.EQ.0.AND.LGDSP.GT.0) THEN - CGDS=CBUF((KJ-1)*NLEN+54:(KJ-1)*NLEN+95) - KPTR=0 - CALL FI633(CGDS,KPTR,KGDS,IRET) - DO I=1,LGDSP - IP=IGDSP(I) - LT=LT+ABS(JGDS(IP)-KGDS(IP)) - print *, i, ip, JGDS(IP), KGDS(IP), LT - ENDDO - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C READ AND UNPACK GRIB DATA - print *, 'test', LT - IF(LT.EQ.0) THEN - call byteswap(CBUF, 4, LBUF/4) - CALL GBYTE(CBUF,LSKIP,(KJ-1)*NLEN*8,4*8) - CALL GBYTE(CBUF,LGRIB,(KJ-1)*NLEN*8+20*8,4*8) - call byteswap(CBUF, 4, LBUF/4) -c call byteswap(LSKIP, 8, 1) -c call byteswap(LGRIB, 8, 1) - CGDS=CBUF((KJ-1)*NLEN+54:(KJ-1)*NLEN+95) - KPTR=0 - print *, CGDS, LSKIP, LGRIB - CALL FI633(CGDS,KPTR,KGDS,IRET) -C BSM IF(LGRIB.LE.200+17*JF/8.AND.KGDS(2)*KGDS(3).LE.JF) THEN -C Change number of bits that can be handled to 25 - IF(LGRIB.LE.200+25*JF/8.AND.KGDS(2)*KGDS(3).LE.JF) THEN - CALL BAREAD(LUGB,LSKIP,LGRIB,LREAD,GRIB) - IF(LREAD.EQ.LGRIB) THEN - CALL W3FI63(GRIB,KPDS,KGDS,LB,F,KPTR,IRET) - IF(IRET.EQ.0) THEN - K=KJ - KF=KPTR(10) - ENDIF - ELSE - IRET=97 - ENDIF - ELSE - IRET=98 - ENDIF - ENDIF - print *, 'test', LGRIB, KJ, NNUM - ENDDO - ELSE - IRET=96 - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RETURN - END diff --git a/sorc/gdas_trpsfcmv.fd/makefile.cray b/sorc/gdas_trpsfcmv.fd/makefile.cray deleted file mode 100755 index a346ee3ab7..0000000000 --- a/sorc/gdas_trpsfcmv.fd/makefile.cray +++ /dev/null @@ -1,33 +0,0 @@ -SHELL=/bin/sh -# -SRCS= gdas_trpsfcmv.f getgb1.f - -OBJS= gdas_trpsfcmv.o getgb1.o - -FC = ifort -LDFLAGS = -L$(NCARG_LIB) \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpthread -lXrender -lgfortran -# -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS = $(IP_LIB4) \ - $(SP_LIB4) \ - $(BACIO_LIB4) \ - $(W3NCO_LIB4) \ - $(BUFR_LIB4) - -CMD = gdas_trpsfcmv -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -openmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) - -clean: - -rm -f $(OBJS) diff --git a/sorc/gdas_trpsfcmv.fd/makefile.theia b/sorc/gdas_trpsfcmv.fd/makefile.theia deleted file mode 100755 index 0c7af674d3..0000000000 --- a/sorc/gdas_trpsfcmv.fd/makefile.theia +++ /dev/null @@ -1,33 +0,0 @@ -SHELL=/bin/sh -# -SRCS= gdas_trpsfcmv.f getgb1.f - -OBJS= gdas_trpsfcmv.o getgb1.o - -FC = ifort -LDFLAGS = -L$(NCARG_LIB) \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpthread -lXrender -lgfortran -# -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS = $(IP_LIB4) \ - $(SP_LIB4) \ - $(BACIO_LIB4) \ - $(W3NCO_LIB4) \ - $(BUFR_LIB4) - -CMD = gdas_trpsfcmv -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -openmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) - -clean: - -rm -f $(OBJS) diff --git a/sorc/gdas_trpsfcmv.fd/makefile.wcoss b/sorc/gdas_trpsfcmv.fd/makefile.wcoss deleted file mode 100755 index 0c7af674d3..0000000000 --- a/sorc/gdas_trpsfcmv.fd/makefile.wcoss +++ /dev/null @@ -1,33 +0,0 @@ -SHELL=/bin/sh -# -SRCS= gdas_trpsfcmv.f getgb1.f - -OBJS= gdas_trpsfcmv.o getgb1.o - -FC = ifort -LDFLAGS = -L$(NCARG_LIB) \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpthread -lXrender -lgfortran -# -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS = $(IP_LIB4) \ - $(SP_LIB4) \ - $(BACIO_LIB4) \ - $(W3NCO_LIB4) \ - $(BUFR_LIB4) - -CMD = gdas_trpsfcmv -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -openmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) - -clean: - -rm -f $(OBJS) diff --git a/sorc/gdas_trpsfcmv.fd/makefile.wcoss_cray b/sorc/gdas_trpsfcmv.fd/makefile.wcoss_cray deleted file mode 100755 index a346ee3ab7..0000000000 --- a/sorc/gdas_trpsfcmv.fd/makefile.wcoss_cray +++ /dev/null @@ -1,33 +0,0 @@ -SHELL=/bin/sh -# -SRCS= gdas_trpsfcmv.f getgb1.f - -OBJS= gdas_trpsfcmv.o getgb1.o - -FC = ifort -LDFLAGS = -L$(NCARG_LIB) \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpthread -lXrender -lgfortran -# -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS = $(IP_LIB4) \ - $(SP_LIB4) \ - $(BACIO_LIB4) \ - $(W3NCO_LIB4) \ - $(BUFR_LIB4) - -CMD = gdas_trpsfcmv -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -openmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) - -clean: - -rm -f $(OBJS) diff --git a/sorc/gdas_trpsfcmv.fd/makefile.wcoss_dell_p3 b/sorc/gdas_trpsfcmv.fd/makefile.wcoss_dell_p3 deleted file mode 100755 index c5eb3c0b71..0000000000 --- a/sorc/gdas_trpsfcmv.fd/makefile.wcoss_dell_p3 +++ /dev/null @@ -1,33 +0,0 @@ -SHELL=/bin/sh -# -SRCS= gdas_trpsfcmv.f getgb1.f - -OBJS= gdas_trpsfcmv.o getgb1.o - -FC = ifort -LDFLAGS = -L$(NCARG_LIB) \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpthread -lXrender -lgfortran -# -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS = $(IP_LIB4) \ - $(SP_LIB4) \ - $(BACIO_LIB4) \ - $(W3NCO_LIB4) \ - $(BUFR_LIB4) - -CMD = gdas_trpsfcmv -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -qopenmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) - -clean: - -rm -f $(OBJS) diff --git a/sorc/gdas_trpsfcmv.fd/trpsfcmv.f b/sorc/gdas_trpsfcmv.fd/trpsfcmv.f deleted file mode 100755 index 79bab0824b..0000000000 --- a/sorc/gdas_trpsfcmv.fd/trpsfcmv.f +++ /dev/null @@ -1,1956 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: TRPSFCMV -C PRGMMR: KEYSER ORG: NP22 DATE: 2001-02-09 -C -C ABSTRACT: -C Plots the following in the tropical strip: analyzed wind -C barbs and temperatures at several hundred locations, contours of -C 1000 mb analyzed streamfunction, gridded winds, station plots -C and tropical cyclone positions. It uses NCAR graphics to -C produce a metafile which is rasterized in subsequent program -C executions. It also generates titles and hurricane bulletin -C text (if needed) for processing by the Bedient packer. The -C gross job flow is gendata --> redsat --> trpsfcmv ---> -C ictrans ----> ras2bity ----> sixbit2 (bedient packer) ---> and -C out the door to OSO, NCDC, TPC and FAX. Input is current GLOBAL -C SPECTRAL MODEL ANALYSIS winds in GRIB on type 3 (1x1) grids and -C also station coordinates and observed parameters (temp, dewpoint, -C pressure, tendancy, windspeed, and direction for plotting by -C NOAA graphics (with superior fonts) downstream. The station -C coordinate file is an AFOS PLOTFILE with all linefeeds (Z'0d') -C removed by subroutine afosread. The station coordinates are -C converted to pixel values for downstream use by the bedient -C packer. -C -C PROGRAM HISTORY LOG: -C 1996-12-18 George VandenBerghe Original ancestor code -C 1996-12-31 George VandenBerghe Documented -C 1997-01-30 George VandenBerghe Made grib errors fatal. (stop 17) -C 1997-04-30 George VandenBerghe Removed grid station -C interpolation, NCAR station plotting, changed to -C mercator plot of single streamfunction, added -C streamfunction generator, grid plot, lat/lon -C labels, contouring capability, AFOS plotfile -C read capability, and code to write putlab input -C for downstream use by a new station plotter in -C the bedient packer. Also changed name. -C 1998-08-10 Dennis Keyser Modified format for reading -C tcvitals records to prevent the ocassional -C failures that were occurring when previous -C program QCTROPCY writes a 'C' into character 65 -C of the record. This (climatology indicator) is -C a rare occurrence (format not changed if maxwind -C happens to be > 99 m/s (not sure this is even -C possible). -C 1999-01-25 Krishna Kumar Modified the code to run on IBM -C RS/6000 SP system. -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. -C -C USAGE: -C INPUT FILES: -C unit 11 - GFS 00 hour GRIB forecast file containing grib type -C - 3 u, and v grids -C unit 12 - Grib index to above -C unit 31 - optional quality controlled hurricane text bulletins -C ( in $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -C and $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL) -C unit 38 - Satellite low level wind observations -C unit 43 - AFOS station plotfile with linefeeds -C unit 44 - AFOS station plotfile (sans linefeeds) -C (see output file list) -C -C OUTPUT FILES: -C gmeta - implicitly opened as fortran unit 2 by ncar -C package -C unit 06 - standard output print -C unit 74 - text file containing tropical cyclone bulletin info -C unit 87 - AFOS station plotfile sans linefeeds to be -C read later in this program as unit 44 -C unit 88 Map title for downstream use by bedient packer -C unit 89 putlab argument file used by bedient packer. -C -C -C SUBPROGRAMS CALLED: -C UNIQUE: - closen openn get3 qcnt afosread -C - l2p cg mpr fill ccpllb -C - color sfill stream3 ridctlm afix -C - satread redsat dayowk i3to53 i53to3 -C - i3to8 hbull -C LIBRARY: -C NCAR GRAPHICS: -C - mappos wmsetr wmseti wmgetr maptra -C - pcseti plccmq plchmq wmbarb gslwsc -C - gsclip mapsti mapstc maproj mapset -C - mapdrw cpseti cpsetr gopks gopwk -C - gacwk gdawk gclwk gclks setusv -C - mapros dpseti frame gsln stream3 -C - sfnorm sfsetr hlsrgb gclwk gclks -C - gsfaci gscr gfa gsclip gsfais -C - cprect cppkcl plchhq cpcldr cplbdr -C - gdawk -C W3LIB - getgb w3fp11 getgb1 errexit w3tagb -C - w3tage putgb -C IPLIB - ipolates makgds -C SPLIB - sptrunv -C BACIO - baopen baclos -C BUFRLIB - openbf readmg readsb ufbint -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C 179 - Grib error on input or index file (unwise to -C continue -C =NNNN - system only -C -C REMARKS: IBM NCAR graphics are in /usrx/local/ncar401 -C CAVEAT requires ncar graphics version 4.0 or above -C as of this writing -C setenv NCARG_ROOT /usr/local/ncar4.0 -C setenv PATH "$PATH":/usr/local/ncar4.0/bin -C (or the bourne/korn analogs) -C handles this; only the first setenv is required -C but the other will likely be -C needed by ictrans downstream -C -C The latitude to pixel coordinate converter -C assumes a 6912x6912 domain and that -C a 6912x1728 slice will be cut horizontally -C out of the domain downstream. The slice -C is then supposed to be rotated 90 degrees -C counterclockwise so that the long axis becomes -C the y axis maximizing fax paper use. This code -C cannot detect if these assumptions are -C in fact met downstream, if not, stations -C will be plotted in incorrect locations. -C The algorithm is however NOT sensitive to -C map projection. -C -C ATTRIBUTES: -C LANGUAGE: Fortran 90 -C MACHINE: IBM -C -C$$$ - - PROGRAM TRPSFCMV - - parameter(nsta=124) - character*3 cmonth(12) - data cmonth/'JAN','FEB','MAR','APR','MAY','JUN','JUL', - 1 'AUG','SEP','OCT','NOV','DEC'/ - dimension f3(360,181) - character*4 ctemp,cday - character*3 cdir - character*80 ctext - character*80 ctext2,ctext3 - character*4 cda - COMMON/PACKRA/IRAS(10) - common/oth/u(70,40),v(70,40),rlats(nsta),rlons(nsta), - 1 up(nsta),vp(nsta),tp(nsta) -c paraMETER (RMNLON=-0.,RMXLON=359., - paraMETER (RMNLON=-0.,RMXLON=359., - 1 RMNLAT=-60.,RMXLAT=60.) - dimension kds(25) - dimension rl(2),rl2(2),rl3(2),rl4(2) - data rl,rl2,rl3,rl4/rmnlat,0.,rmxlat,0., - 1rmnlon,0.,rmxlon,0./ - dimension grid(360,181) - dimension g2(360,121),z2(360,121) - dimension u2(360,121), v2(360,121) - dimension f53(117,51) - character*40 ctit - dimension ifeet(8) - character*132 mtitle -c - character*11 envvar ! for ibm_sp_6000 - character*80 fileg,filegi ! for ibm_sp_6000 -c - CALL W3TAGB('TRPSFCMV',2001,0038,0059,'NP22') - 6 continue -c -c****** added for ibm_sp_6000 -c - lun=11 - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lun - call getenv(envvar,fileg) - call baopen(lun,fileg,iret) -c - luni=12 - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') luni - call getenv(envvar,filegi) - call baopen(luni,filegi,iret) -c -c****** -c - call openn -c - do 777 imap=1,1 - if(imap .gt. 1) then - lun=13 - luni=14 - endif - do 1 k=1,25 - 1 kds(k)=-1 - ix=360 - iy=121 -c do 1000 ,ll=1,1,-1 - call mappos (0.0,1.0,0.0,1.0) -C get streamfunction - call stream3(1000,-1,11,12,grid) - pi=3.1415927 - sin45=sqrt(2.)/2 - omega=2*pi/86400. - g=9.81 - fcoril=2*omega*sin45 - factor=fcoril/g - factor=factor/10. -C** CONVERT TO METERS - do k=1,360 - do j=1,121 - g2(k,j)=grid(k+0,152-j ) * factor - end do - end do -c** -c get temperature (fossil code) -c** get u for wind barbs - kds(5)=33 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - u2(k,j)=grid(k+0,152-j ) * 1.93 - end do - end do -c** -c** get v for wind barbs - kds(5)=34 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - v2(k,j)=grid(k+0,152-j )*1.93 - end do - end do -c** - call cpseti('CIS',3) - call gslwsc(2.0) - call qcnt (g2,ix,iy,rl,rl2,rl3,rl4,mtitle) - call hbull - call cpseti('CIS',3) - call gsln(0) - call cg( g2,ix,iy,1) - call cpseti('CIS',5) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - irr=1 - flat=40. - flon=270. - do 14,k=1,120,5 - call gslwsc (1.0) - do 14,l=1,360,5 - if (irr .eq. 1) then - irr=2 - else - irr=1 - endif - if(irr .eq. 1) then - l2=l-1 - k2=k - else - l2=l-1 -c k2=k+1 - k2=k - endif - flon=l2 - flat=k2-61. - call maptra(flat,flon,uu,vv) - iflat=flat+5. - if(iflat .lt. 0) then - write(ctemp,1087)-iflat - 1087 format(i2,x,'S') - else - write(ctemp,1088) iflat - 1088 format(i2,x,'N') - endif -c call plchmq( uuf,vvf,ctemp,1.,0.,0.) - call gslwsc(1.0) -c write(102,*) flat,flon,uu,vv,u2(l2,k2),v2(l2,k2) - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - if (l2 .eq. 0) l2 = 1 - call wmbarb(uu,vv,-u2(l2,k2),-V2(L2,K2)) - 14 continue - do 15,lat=-60,60,30 - do 15 lon=27,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 15 continue - do 16,lat=-33,60,30 - do 16 lon=0,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - 1089 format(i3,'E') - 1091 format(i3,'W') - else - write(ctemp,1091)(360-lon) - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 16 continue - write(ctext,193)'TROPICAL SURFACE ANALYSIS VALID' - call DAYOWK(IRAS(8),IRAS(9),IRAS(10),idayy,cday) -c USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) - write(ctext2,194)iras(7),cday,cmonth(iras(9)),iras(8),iras(10) - write(88,1961)ctext,ctext2 - write(ctext3,196)'STREAM FUNCTION AND GRID WINDS' - write(79,1962)ctext2 - 1962 format(a30) - 196 format(a30) - 1961 format('STRIP ',' ',2a30) - 194 format(i2,'Z',x,a4,x,a3,x,i2,x,i4) - 193 format(a25,x,i2,'Z' ,i2,'/',i2,'/',i4) - call maptra(28.,230.,uu,vv) - call maptra(-12.,230.,uu2,vv2) - call maptra(-32.,270.,uu3,vv3) - call maptra(-32.,320.,uu4,vv4) - call maptra(-32.,80.,uu5,vv5) - call gslwsc(4.0) - call gslwsc(1.0) - do 17,lat=-37,60,10 - do 17 lon=0,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - else - write(ctemp,1091)(360-lon) - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 17 continue - do 18,lat=-60,60,10 - do 18 lon=2,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 18 continue - do 19,lon=1,360,1 - do 19,lat=-60,60,1 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) -c call plchlq(uu,vv,'.',1.,0.,0.) - 19 continue - call gsln(4) -c call cg(z2,ix,iy,2) - call gsln(1) - call frame - 777 continue - call baclose(11,iret) - call baclose(12,iret) - call closen - CALL W3TAGE('TRPSFCMV') - stop - end -c -c************************************************************** -c - subroutine mpr(flat,flon) - call maptra(flat,flon,u,v) - print 101,flat,flon,u,v - 101 format('lat lon ' , 4f15.5) - return - end -c -c************************************************************** -c - subroutine qcnt(grid,ix,iy,rl,rl2,rl3,rl4,mtitle) - character*132 mtitle - integer (kind=8) ibb1,ibb2 - common/staa/ibitz - Data ibb1/Z'F0F0F0F0F0f0ffff'/ - data ibb2/Z'F0F0F0F0F0f0aa55'/ - dimension grid(ix,iy) - dimension rl(2),rl2(2),rl3(2),rl4(2) - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) -c dimension RLAT1(2), RLAT2(2), RLON1(2), RLON2(2) - dimension grid2 (ix,iy) - common/icc/icount - common/ctrxxx/junk1,jink2,iflag - iflag=0 - Rmnlon=rl3(1) - rmxlon=rl4(1) - rmnlat=rl(1) - rmxlat=rl2(1) - icount = 0 !modified for ibmsp - do 1 k=1,ix - do 1 j=1,iy -c grid2(k,(iy+1-j))=(grid(k,j)) - grid2(k,j)=grid(k,j) -c grid2(k,j)=(grid(k,j)-273)*1.8 +32 -c z(k,j)=k+j**2 - 1 continue - CALL GSCLIP (0) -C -C Draw Lat/Lon lines at 10 degree intervals. -C Draw political & continental outlines. -C - CALL MAPSTI ('GR - GRID',90) - CALL MAPSTC ('OU - OUTLINE DATASET','CO') -C -C Draw a Satellite view over the United States -C - CALL MAPROJ ('ME - SATELLITE-VIEW',00.,-180.,00.) -c CALL MAPROJ ('CE - SATELLITE-VIEW',0.,0.,00.) -c CALL MAPSET ('MA',RLAT1,RLON1,RLAT2,RLON2) -c call mapset('MA',rlatmin,rlonmin,rlatmax,rlonmax) -C -C Don't draw a square around the globe -C - CALL MAPSTI ('PE - PERIMETER FLAG', 0) -C -C Draw map. -C -c call gslwsc(4.0) -c HEAVY HEAVY - call setusv('LW',4000) - CALL MAPDRW -c read synoptic data from AFOS PLOTFILE - call afosread -c read satellite winds directly from bufr input on unit 10 -c call satread - call setusv('LW', 1000) - CALL MAPSTI ('GR - GRID',10) - CALL MAPSTC ('OU - OUTLINE DATASET','PS') - CALL MAPDRW - - CALL CPSETI ('SET - DO SET-CALL FLAG',0) - CALL CPSETR ('DPV - DASH PATTERN VECTOR SIZE',.0010) - call DPSETI('PCF',0) -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - - CALL CPSETI ('MAP - MAPPING FLAG',1) - call cpsetr('XC1',rmnlon) - call cpsetr('XCM',rmxlon) - call cpsetr('YC1',rmnlat) - call cpsetr('YCN',rmxlat) - ibitz=ibb1 -c call cg(grid2,ix,iy) - ibitz=ibb2 -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C -c CALL GDAWK (1) -c CALL GCLWK (1) -c CALL GCLKS -c CALL W3TAGE('TRPSFCMV') -c STOP -c hunt for centers - do 2 k=5,ix-4 - do 2 j=5,iy-4 - lat=-61+j - lon=k-1 - gradck=2.2 - fmin=grid2(k,j) - fmax=grid2(k,j) - do 4 kk=k-4,k+4 - do 4 jj=j-4,j+4 - if(grid2(kk,jj) .lt. fmin) fmin=grid2(kk,jj) - if(grid2(kk,jj) .gt. fmax) fmax=grid2(kk,jj) -c 1 grid2(k,j) .lt. grid2(k+1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k-1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j+1)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j-1)-gradck .and. -c 2 grid2(k,j) .lt. grid2(k+2,j) .and. -c 2 grid2(k,j) .lt. grid2(k-2,j) .and. -c 2 grid2(k,j) .lt. grid2(k,j+2) .and. -c 2 grid2(k,j) .lt. grid2(k,j-2) -c 3 ) then - 4 continue - if( (fmax-fmin) .lt. gradck) go to 2 - if (fmin .eq. grid2(k,j) .or. fmax .eq. grid2(k,j)) then - flat=lat - flon=lon - call maptra(flat,flon,uu,vv) - if (flat .gt. 0.) then - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - else - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - endif - endif - 2 continue - call satread - return - END -c -c************************************************************** -c - SUBROUTINE FILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) - - DIMENSION XWRK(*),YWRK(*),IAREA(*),IGRP(*) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .GT. 0) THEN -cC -C If the area is defined by 3 or more points, fill it -C - CALL GSFACI(IAREA3+2) - CALL GFA(NWRK,XWRK,YWRK) - ENDIF - -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine cg(zreg,ix,iy,ifld) -C - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) - - real ZREG(ix,iy) - - EXTERNAL COLOR -C -C Call Conpack color fill routine - do k=1,ix -ckumar print *,' zreg',(zreg(k,j),j=1,iy,5) - end do -C - CALL CCPLLB(ZREG,ix,iy,COLOR,IWKID,ifld) -C - - RETURN - END -c -c************************************************************** -c - SUBROUTINE CCPLLB(ZREG,MREG,NREG,COLOR,IWKID,ifld) - common/staa/ibitz - common/windz/u2(360,121),v2(360,121) - common/oth/u(70,40),v(70,40),rlats(65),rlons(65),up(65),vp(65) - PARAMETER (LRWK=50000,LIWK=50000,LMAP=900000,NWRK=50000,NOGRPS=6) - REAL ZREG(MREG,NREG),RWRK(LRWK), XWRK(NWRK), YWRK(NWRK) - INTEGER MREG,NREG,IWRK(LIWK) - INTEGER MAP(LMAP),IAREA(NOGRPS),IGRP(NOGRPS) - integer ibts(16,300) - DATA IBTS / 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, - 1 1600*0, - 1 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 2 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, - 3 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, - 4 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 5 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, - 6 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 7 160*0, 2928*0 / ! modified for ibmsp - EXTERNAL FILL -c data ibitz/Z'F0F0F0F0F0F03333'/ - external sfill - EXTERNAL CPDRPL - EXTERNAL COLOR -C -C Set fill style to solid and turn off clipping -C - CALL GSFAIS(1) - CALL GSCLIP(0) -C -C Set up label box options -C -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - NOCL=300 - CALL CPSETI('LLP - LINE LABEL POSITIONING FLAG',4) -c CALL CPSETI('LLB - LINE LABEL BOX FLAG',4) - CALL CPSETI('LLB - LINE LABEL BOX FLAG',3) - CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',3) -c CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',4) - CALL CPSETI('ILB - INFORMATIONAL LABEL BOX FLAG',0) - CALL CPSETI('LBC - LABEL BOX COLOR INDEX',1) -c call cpseti('CIS',6) -cc call cpseti('LIS',1) - call cpseti('LIS',100) - call cpseti('LLP',2) - CALL CPSETR ('ORV - OUT-OF-RANGE VALUE',1.E12) - call cpsetr('RC1',0.15) - call cpsetr('LLS',0.00002) - call cpsetr('RC2',0.15) - call cpsetr('LLW',0.00001) -c call cpsetr('HLW',0.001) -c call cpsetr('HLS',0.002) - call cpsetr('HLW',0.0000001) - call cpsetr('HLS',0.0000002) - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - CALL CPPKCL (ZREG, RWRK, IWRK) - CALL CPGETI('NCL - NUMBER OF CONTOUR LEVELS',NCL) - DO 111 I=1,NCL - CALL CPSETI('PAI - PARAMETER ARRAY INDEX',I) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('AIA - AREA IDENTIFIER ABOVE',0) - CALL CPSETI('AIB - AREA IDENTIFIER BELOW',0) - 111 CONTINUE - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('NCL - NUMBER OF CONTOUR LEVELS',NCL+2) - CALL CPSETI ('PAI',ncl+1) - call cpsetr('CLV',0.0) - call cpseti('AIB',5) - call cpseti('AIA',0) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - if(zreg(50,50) .lt. 500) then -c CALL CPSETI ('PAI',ncl+2) -c call cpsetr('CLV',15.0) -c call cpseti('AIB',0) -c call cpseti('AIA',6) - endif -c call cpsetr('CLV',55.0) -c call cpseti('AIB',6) -c call cpseti('AIA',0) - DO 11 I=1,ncl - ivarv=ibitz - print 198,ivarv - 198 format(z16) -c CALL CPSETI('PAI - PARAMETER ARRAY INDEX',i) -c CALL CPSETI('CLD - CONTOUR LINE DASH PATTERN', -c + ivarv) - 11 continue - CALL COLOR(NCL+1,IWKID) - call PCSETI('CC',0) - - -C -C Draw Perimeter -C -c CALL CPBACK(ZREG, RWRK, IWRK) - call gslwsc(1.0) -C -C Initialize Areas -C -cc CALL ARINAM(MAP, LMAP) -C -C Add label boxes to area map -C -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(1) -c cc CALL CPLBAM(ZREG, RWRK, IWRK, MAP) -C -C Draw Labels -C - call gsln(0) -c CALL CPLBDR(ZREG, RWRK, IWRK) -C -C Add contours to area map -C -c CALL CPCLAM(ZREG, RWRK, IWRK, MAP) - call gslwsc(3.0) -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(4) - call cpcldr(zreg,rwrk,iwrk,map,cpdrpl) -c NEW LINE - call gslwsc(2.0) - call cplbdr(zreg,rwrk,iwrk) - -c call cpcldm(zreg,rwrk,iwrk,map,cpdrpl) -c call gsln (1) -C -C Fill contours -C -c CALL ARSCAM(MAP, XWRK, YWRK, NWRK, IAREA, IGRP, NOGRPS, SFILL) - 99 continue - CALL WMSETR('WBS',0.004) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - RETURN - END -c -c************************************************************** -c - SUBROUTINE COLOR (N,IWKID) -C -C BACKGROUND COLOR -C -C -C BLACK -C - CALL GSCR(IWKID,0,0.,0.,0.) -C -C First foreground color is white -C - CALL GSCR(IWKID,1,1.,1.,1.) -C -C Second foreground color is gray -C - CALL GSCR(IWKID,2,0.5,0.5,0.5) -C -C Choose other foreground colors spaced equally around the spectrum -C - ICNT=0 - HUES=360./N -C -C REDLN is intended to be the line between red and violet values -C - REDLN=36.0 - LAP=INT(REDLN/HUES) - DO 10, I=1,N - XHUE=I*HUES - CALL HLSRGB(XHUE,60.,75.,RED,GREEN,BLUE) -C -C Sort colors so that the redest is first, and violetest is last -C - IF (XHUE.LE.REDLN) THEN - CALL GSCR(IWKID,(N+2)-(LAP-I),RED,GREEN,BLUE) - ICNT=ICNT+1 - ELSE - CALL GSCR(IWKID,I-ICNT+2,RED,GREEN,BLUE) - ENDIF - 10 CONTINUE - - RETURN - END -c -c************************************************************** -c - SUBROUTINE SFILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) -C - REAL XWRK(*),YWRK(*),ISCR(5000) - INTEGER IAREA(*),IGRP(*),RSCR(5000) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .eq. 5) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 0.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF - IF (IAREA3 .eq. 6) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 90.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine i3to53(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i53to3(F53,F3) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - logical log3(360,181) - equivalence (lo_03,log3) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - - do k=1,360 - log3(k,1)=.FALSE. - log3(k,181)=.FALSE. - end do - ibi=0 -cc define 360x181 grid - call makgds(53,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(3,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,jo53,ji2,1, - 1 ibi,lo_03,F53,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F3,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i3to8(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(116,44) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(8,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine closen -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C - CALL GDAWK (1) - CALL GCLWK (1) - CALL GCLKS - return - end -c -c************************************************************** -c - subroutine openn -C OPEN GKS, OPEN WORKSTATION OF TYPE 1, ACTIVATE WORKSTATION -C - CALL GOPKS (6,IDUM) - CALL GOPWK (1, 2, 1) - CALL GACWK (1) - return - end -c -c************************************************************** -c - Subroutine get3(lun,luni,jpds,a2,c132) - common/grbpds/kpds - COMMON/PACKRA/IRAS(10) -c array is an NMC GRIB TYPE 3 field on output -c jpds is set in the CALLER!! except for fields 1-3 - dimension array(360,181),a2(360,181) - dimension jpds(25),jgds(25) - dimension grib(360,181) - dimension kpds(25),kgds(25) - character*132 c132 - logical lb(360,181) - jf=360*181 - jflag=-1 - kf=jf - do i = 1, 25 - kpds(i) = 0 - kgds(i) = 0 - end do - k = 0 - ier = 0 -c jpds(2)=77 - jpds(1)=7 -c jpds(3)=104 - jpds(3)=3 - print 101,lun,luni - print 109,(jpds(ll),ll=1,25) - 109 format(5z17) - call getgb1(lun,luni,jf,jflag,jpds,jgds, - 1 grib,kf,k,kpds,kgds,lb,array,ier) -c if ( ier .ne. 0) then -c CALL W3TAGE('TRPSFCMV') -c call errexit(99) -c endif - call w3fp11(grib,grib(2,1),c132,ierr) - print 106,k,c132 - 106 format(i6, 'LAB ',a132) - print 101,ier,k,kf - if(ier .ne.0 ) then - CALL W3TAGE('TRPSFCMV') - call errexit(9999) - endif - print 102,(array(90,k),k=1,181) - 102 format(10f8.2) - 101 format(i9) -cj do 45,k=1,181 -c do 45,j=1,360 -c 45 if(j .gt. 70 .or. k .gt. 70) array(j,k)=array(70,70) -c SET IRAS VARIABLES - iras(1)=kpds(14) - iras(7)=kpds(11) - iras(8)=kpds(10) - iras(9)=kpds(9) -C This should generate the proper 4-digit year no matter what!! - mcen=max(0,kpds(21)-1) - iras(10)=mcen*100+kpds(8) - if(iras(10) .le. 20) then - iras(10)=iras(10)+2000 - else if(iras(10).le.99) then - iras(10)=iras(10)+1900 - end if -c iras(3)=iras(7) -c iras(4)=iras(8) -c iras(5)=iras(9) -c iras(6)=iras(10) -c flip type 3 grid - do k=1,181 - do j=1,360 -c a2(j,182-k)=array(j,k) - a2(j,k)=array(j,k) - end do - end do - return - end -c -c************************************************************** -c - Subroutine stream3(mbars,itime,lupgb,lupgi,F3) -c -c George VandenBerghe 11/17/96 -c -c subroutine to accept pressure level (mbars), -c grib unit number (lupgb), and grib index unit -c number (lupgi) and read u, and v wind fields, -c at mbars, and calculate stream function. Stream -c function is stored in F3 and returned to caller. -c The Grib fields on lupgb MUST be grib type 3 (360x181) -c fields. These are output automatically by the NCEP -c GFS forecast model. -c These stream functions are dimensionally correct -c m**2/sec streamfunctions -c 11/17/96 add on !! -c logic added to handle tropopause level. Passing -c in pressure as 7 mbars tells code to wildcard -c pressure and take tropopause level values - parameter(im=360,jm=181,km=16) - dimension F3(im,jm) - dimension iprs(km) - integer kpds(100), kgds(100) - integer jpds(100), jgds(100) - logical lbms(im*jm), luv, ldz, lps - real u(im,jm), v(im,jm), psi(im,jm),chi(im,jm) - data iromb/0/,maxwv/126/,idrti/0/,imaxi/360/,jmaxi/181/ - data idrto/0/,imaxo/360/,jmaxo/181/,kmax/1/ - data iprime/0/,iskipi/0/,jskipi/0/,kspipi/0/ - data iskipo/0/,jskipo/0/,kspipo/0/,jcpu/0/ -c --- coordinate testing code - x1=50 - y1=60 - x2=180 - y2=60 - x3=180 - y3=120 - - luv = .False. - ldz = .False. - lps = .True. - ijm = im * jm - fim = im - lskip=-1 - k=0 - do jj = 1, 100 - jpds(jj) = -1 - enddo - do jj = 1, 20 - jgds(jj) = -1 - enddo - jpds(5) = 33 - jpds(6) = 100 - jpds(7) =mbars - jpds(14)=itime -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,u,iret) -c print *,' KPDS AFTER U' -c print 189,kpds - if(iret.ne.0) then - endif - jpds(5) = 34 - jpds(6) = 100 - jpds(7) = mbars -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,v,iret) - if(iret.ne.0) then - endif - call SPTRUNV(IROMB,MAXWV,IDRTI,IMAXI,JMAXI, - & IDRTO,IMAXO,JMAXO,KMAX, - & IPRIME,ISKIPI,JSKIPI,KSKIPI, - & ISKIPO,JSKIPO,KSKIPO,JCPU,U,V, - & LUV,GRIDUO,GRIDVO,LDZ,GRIDDO,GRIDZO, - & LPS,chi,psi) - print 109,k - 109 format(' K is ',i9) -c - do j=1,jm - do k=1,im - f3(k,j)=psi(k,j) - end do - end do - kpds(5)=35 -c print *,' KPDS to be put' -c print 189,kpds - 189 format(5Z20) -c WRITE THE STREAMFUNCTIONS TO UNIT 51!! -c call putgb(51,ijm,kpds,kgds,lbms,f3,iret) -c end write - if(iret .ne. 0) print *, - 1 ' WARNING PUT OF STREAMFUNCTION FAILED return code ', iret, - 1 ' from putgb ' - print *,' FEW STREAMS',psi(50,50),psi(100,100) - 990 continue - return - end -c -c************************************************************** -c - subroutine afosread -c field 4 time (4 digits) -c field 5 name ( 5 digits) -c field 6 sky cover i A aircraft S sat M missing -c7 field 7 wind ddfff -c field 8 pressure (mb*10. significant digits) -c field 9,10 temp and dew -c 11 present weather (code or text) -c 12 visibility -c 13 pressure change -c 14 barograoh trace (code table 12) -c 15 low/middle/high cloud -c 16 precip -c 17 remarks -c lat lon are 18 and 19 -c 20 ship course and speed - dimension points(100000,2) - character*160 cline - character*160 cout - integer icom(40) - character*8 ccom(40),cf -c - do nn=1,2 - do mm=1,100000 - points(mm,nn)=0 - enddo - enddo -c - call ridctlm - do k=1,20 - ccom(k)=' ' - end do -c - open(44,file='afosplot') -c -c do jjj=1,2 -c read(44,101)cline -c enddo -c - do 10000 kkk=1,100000 - 101 format(a160) - read(44,101,end=999,err=997) cline - write(85,101) cline -c print 101,cline -c find the commas - idx=1 - is=1 - cf=' ' - ico=0 - do 10,k=1,160 - if(cline(k:k) .eq. ',' .or.cline(k:k).eq.';') then - ico=ico+1 -c - if(ico.ge.40) then - print *,' MORE THAN 40 COMMAS in line ',kkk - go to 10000 - endif -c - icom(ico)=k - ccom(ico)=cf - cf=' ' - idx=1 - if(cline(k:k) .eq. ';') go to 19 - else - cf(idx:idx)=cline(k:k) - idx=idx+1 -c - if(idx .gt. 8) then - print *,' MORE THAN 8 blanks between commas in line ',kkk - go to 10000 - endif -c - endif - 10 continue - 19 continue - do k=1,20 - if(ccom(k) .eq. ' ') ccom(k)='-9999 ' - end do - do k=1,5 - if(ccom(15)(k:k).eq.'/') ccom(15)(k:k)='0' - end do - if(ccom(6)(8:8).eq. 'M') ccom(6)='-9999 ' - if(ccom(6)(1:1).eq. 'M') ccom(6)='-9999 ' - if (kkk .lt. 5) print 129,ccom - 119 format(i3,a3,20i3) - read(ccom(7),179)id,isp - 179 format(i3,i2) - read(ccom(9),149)itemp - read(ccom(6),149) icover - read(ccom(11),149) iwx - if(iwx .gt.99 .or. iwx .lt.0) iwx=-9999 - print *,' ICOVERC',icover - read(ccom(10),149)idew - read(ccom(18),159)ilat - read(ccom(15),149)icloud - if(icloud .gt. 0) print *,' ICLUD',icloud - read(ccom(19),169)ilon - read(ccom(8),149) ipres - read(ccom(14),149)itrace - read(ccom(13),149) itend - if (ccom(18)(4:4) .eq. 'S') ilat=-ilat - if(ccom(19)(5:5) .eq.'W') ilon=-ilon+3600. - flat=(ilat+0.5)/10. - flon=(ilon+0.5)/10. - call maptra(flat,flon,uu,vv) - if(id.eq.-99)id=-999 - dir=id - theta=(90-dir)*3.1415927/180. - u=cos(theta)*isp - v=sin(theta)*isp - dir=dir-90. - if(dir .le. 0) dir=dir+360 - if(flat .lt. 0) dir=-dir - id=dir - ilat=flat - ilon=floN - points(kkk,1)=400. - points(kkk,2)=400. - do 39,l=1,kkk-1 - xd=(points(l,1)-ilat)*2.0 - yd=points(l,2)-ilon - sargg=xd**2 + yd**2 -c write(102,*)' square root ',kkk,sargg - if(sargg .lt. 0.) then - write(102,*)' negative square root potential ',kkk,sargg - go to 10000 - endif -c - dist=sqrt(xd**2 + yd**2) -c dist=sqrt( (points(l,1)-ilat)**2 + (points(l,2)-ilon)**2) - if (dist .lt. 3.9) go to 10000 - if(ccom(3)(1:1) .eq. '7') go to 10000 -c if (dist .lt. 0.5) go to 10000 - 39 continue - points(kkk,1)=ilat - points(kkk,2)=ilon - 149 format(i8) - 159 format(i3) - 169 format(i4) - print *,'STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - if(iwx .gt. 0) - 1 print *, - 1 'WX STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - call l2p(flat,flon,iprx,ipry) - if(iprx .lt. -9999. .or. iprx .gt. 9999 .or. - 1 ipry .lt. -9999 . .or. ipry .gt. 9999) - 1 go to 10000 - write(89,105)'STATION PLOT', - 1 iprx,ipry,itemp,idew,ipres,itend,id,isp,icover,iwx,itrace,icloud - 1 ,ccom(5) - 1 ,ccom(18),ccom(19) -c 1 iprx,ipry,itemp,idew,ipres,itend,id,isp -c 1 iprx,ipry,itemp,idew,ilon,ilat,id,isp,icover,ccom(5) - 105 format(a16,12i5,x,3a9) - 139 format(96x,2i8) - 129 format(20a8) -10000 continue - print *,'WARNING, INPUT AFOS PLOTFILE NOT EXHAUSTED' - 997 continue -c print *,' ENDED DATA WITH ERROR' - 999 continue - return - end -c -c************************************************************** -c - subroutine l2p(flat,flon,iprx,ipry) - call maptra(flat,flon,uu,vv) - fx=cufx(uu) - fy=cufy(vv) - px=6912*fx -c1 py=-6912*(fy-.625555555) - py=-6912*(fy-.575555555) - iprx=py - ipry=px - print *,'L2P ', 'flat,flon,px,py,iprx,ipry', - 1 flat,flon,px,py,iprx,ipry - return - end -c -c************************************************************** -c - subroutine ridctlm -c remove all ctlm characters from fort.43 and write to fort.87 - dimension jstat(100) -c is=stat('fort.43',jstat) -c lnn=jstat(8) - read(5,101)lnn - 101 format(i10) - print*,'file size of fort.43 ',lnn - call afix(lnn) - return - end -c -c************************************************************** -c - subroutine afix(lnn) - character*1 bytes(lnn) - integer (kind=8) ip - data ip/Z'0D'/ ! CTRL-M - character*1 c1(8) - equivalence(c1,ip) -ckumar - open(43,file='NHPLOT',access='direct',recl=1280) -c - na=1 ; nb=1280 -c - nrec=lnn/1280 - print*,'In afix lnn & nrec : ',lnn,nrec -c - do ir=1,nrec - read(43,rec=ir)bytes(na:nb) - na=na+1280 - nb=nb+1280 -ckumar print*,'In afix ir, na & nb ',ir,na,nb - enddo -c - do 10,k=1,lnn - if(bytes(k) .eq. c1(8)) bytes(k)=' ' - 10 continue -c - write(87) bytes - close(87) - return - end -c -c************************************************************** -c - -C DATA SET DAYOWK AT LEVEL 001 AS OF 04/16/93 - SUBROUTINE DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DAYOWK FIND NUMERICAL DAY OF WEEK. -C PRGMMR: HENRICHSEN ORG: NMC41 DATE:93-05-11 -C -C ABSTRACT: GIVEN DAY MONTH AND YEAR AS INTEGERS RETURN DAY OF WEEK AS -C AND INTEGER NUMBER AND AS FOUR CHARACTER HOLLERTH TEXT. -C -C PROGRAM HISTORY LOG: -C 84-MM-DD WICK -C 85-MM-DD HENRICHSEN REMOVE OLD KEY PUNCH CHARACTERS AND CLEAN UP. -C 87-12-10 HENRICHSEN CONVERT TO VS FORTAN 77. -C -C USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C INPUT ARGUMENT LIST: -C IDAY - INTEGER TWO DIGET DAY OF MONTH( 1 THRU 31 ). -C IMONTH - INTEGER TWO DIGET MONTH OF YEAR( 1 THRU 12). -C IYEAR - INTEGER TWO OR FOUR DIGET YEAR. -C IYEAR SHOULD BE THE COMPLETE FOUR DIGIT YEAR. -C IF ONLY LAST 2 DIGITS OF YEAR ARE GIVEN, -C ASSUMES 20TH CENTURY... -C -C OUTPUT ARGUMENT LIST: -C IDAYWK - INTEGER NUMBER OF DAY OF WEEK ( 1 THRU 7 ). -C IHDAYW - CHARACTER*4 WORD CONTAINING THE THE THREE LETTER -C - DAY OF THE WEEK LEFT JUSTIFED IN THE WORD. -C - IE 'MON ', .... 'FRI ', .... 'SUN '. -C ERRFLAG - ERROR OF OUT OF RANGE ARGUEMENT IS INDICATED BY THE -C - RESULTING IDAYWK = 0, AND IHDAYW = BLANKS. -C -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C FT06F001 - ERROR PRINT WHEN ARGUEMENTS OUT OF RANGE. -C -C REMARKS: NONE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ - CHARACTER*4 IHDAYW - CHARACTER*4 ITEXT(2) - CHARACTER*4 KHDAY(7) - CHARACTER*4 KLANK - CHARACTER*4 NHDAY(2) - CHARACTER*4 NHMON(2) - CHARACTER*4 NHYR(2) -C - INTEGER KCEN(5) - INTEGER KDAYS(12) - INTEGER MONTAB(12) -C - DATA KHDAY /'SUN ','MON','TUE ', - 1 'WED ','THU ','FRI ','SAT '/ - DATA KLANK /' '/ - DATA NHDAY /'DAY ',' '/ - DATA NHMON /'MONT','H '/ - DATA NHYR /'YEAR',' '/ -C - DATA KCEN /4,2,0,6,4/ - DATA KDAYS /31,29,31,30,31,30,31,31,30,31,30,31/ - DATA MONTAB /1, 4, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6/ -C - IDAYWK = 0 - IHDAYW = KLANK - ISFEB = 0 - IDA = IDAY - IMO = IMONTH - IYR = IYEAR - IF(IMO) 911,911,122 - 122 IF(IMO .GT. 12) GO TO 911 - IF(IDA) 922,922,133 - 133 IF(IDA .GT. KDAYS(IMO)) GO TO 922 - ICENT = IYR / 100 - IYR2 = IYR - 100 * ICENT - IF(ICENT) 933,140,144 - 140 CONTINUE -C ...IF ONLY LAST 2 DIGITS OF YR WERE GIVEN, ASSUME ITS 1900 + - ICENT = 19 - IYR = IYR + 1900 - 144 CONTINUE - ICENTX = ICENT - 16 - IF(ICENTX) 933,933,155 - 155 IF(ICENTX .GT. 5) GO TO 933 -C ...THE GIVEN DATE INFO IS W/I RANGE... - ISUM = KCEN(ICENTX) + IYR2 +IYR2/4 + MONTAB(IMO) + IDA - IF(IMO - 2) 222,211,611 -C ...OTHERWISE, THIS IS JAN OR FEB, SO CHECK FOR LEAP YR... - 211 ISFEB = 1 - 222 CONTINUE - IF(MOD(IYR,4)) 533,511,533 -C ...MOST LIKELY A LEAP YR. TEST FOR CENTURY YR... - 511 CONTINUE - IF(IYR2)522,515,522 - 515 CONTINUE - IF(MOD(IYR,400))533,522,533 -C ...COMES TO 522 IF LEAP YR CORRECTION IS NEEDED... - 522 CONTINUE - ISUM = ISUM - 1 - GO TO 611 - 533 CONTINUE -C ...COMES TO 533 IF NOT A LEAP YR, SO IF FEB, MUST RETEST IDA... - IF(ISFEB)544,611,544 - 544 CONTINUE -C ...THIS IS FEB OF A NON-LEAP YR. - IF (IDA .GE. KDAYS(2)) GO TO 922 - GO TO 611 - 611 CONTINUE - IDAW = MOD(ISUM,7) - IF(IDAW) 644,633,644 - 633 CONTINUE - IDAW = 7 - GO TO 644 - 644 CONTINUE - IDAYWK = IDAW - IHDAYW = KHDAY(IDAW) - RETURN -C - 911 CONTINUE -C ...COMES HERE IF GIVEN MONTH OUT-OF-RANGE... - ITEXT(1) = NHMON(1) - ITEXT(2) = NHMON(2) - GO TO 955 - 922 CONTINUE -C ...COMES HERE IF GIVEN DAY OUT-OF-RANGE - ITEXT(1) = NHDAY(1) - ITEXT(2) = NHDAY(2) - GO TO 955 - 933 CONTINUE -C ...COMES HERE IF GIVEN YR OUT OF RANGE - ITEXT(1) = NHYR(1) - ITEXT(2) = NHYR(2) - GO TO 955 - 955 CONTINUE - PRINT 956, ITEXT(1),ITEXT(2),IDAY,IMONTH,IYEAR - 956 FORMAT(1H0,10X,'ERROR EXIT FROM DAYOWK. GIVEN ', A4, A1, 1X, - X 'OUT-OF-RANGE', /1H0,15X,'IDAY = Z', Z8, 4X,'IMONTH = Z', - X Z8, 4X, 'IYEAR = Z', Z8) - RETURN - END -c -c************************************************************** -c - subroutine satread -c READS SATELLITE WIND DATA AND DRAWS WIND BARBS -c ON ANY NCAR GRAPHICS PLOTTING FRAME WITH LATLON -c FRAME MAPPING DEFINED (general for weather plots) - dimension ary(6) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - do 10,k=1,9999999 - read(38,101,end=99)ary - 101 format(6x,6f10.4) - flat=ary(1) - flon=ary(2) - dir=ary(4) - speed=ary(5) - qcm=ary(6) - u=speed*sin(dir*3.1415927/180.) - v=speed*cos(dir*3.1415927/180.) - call maptra(flat,flon,uu,vv) -c print *,'calling wmbarb',uu,vv,u,v - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - call wmbarb(uu,vv,u,v) - call plchhq(uu,vv,':F19:c',1.5,0.,0.) -c call plchhq(uu,vv,':F22:C',9.5,0.,0.) - 10 continue - 99 continue - return - end -c -c************************************************************** -c -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDSAT READ UPPER AIR BUFR FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-06-03 -C -C ABSTRACT: REDSAT READS THE PREPBUFR OBSERVATIONAL FILE AND -C RETURNS A SINGLE SATWND REPORT IN ARRAY DATA -C -C PROGRAM HISTORY LOG: -C 97-06-03 LARRY SAGER -C -C USAGE: CALL REDSAT (RLIMS, IUNS, DATA, IRET) -C INPUT ARGUMENT LIST: -C RLIMS - LAT/LONG LIMITS TO DUMP -C IUNS - UNIT NUMBER OF PREPBUFR FILE -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C DATA - THE RETURNED SATWND REPORT. -C - LAT, LONG, PRESALT, WDIR, WSP, WQM -C IRET - FLAG: IRET=0 NORMAL RETURN -C IRET=-1 END OF FILE -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT55F001 - PREPBUFR UPPER AIR DATA FILE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ - SUBROUTINE REDSAT(RLIMS, IUNS, DATA, IRET) -C -C REDUPA READS THE PREPBUFR FILE AND RETURNS AN UNPACKED -C SATWND REPORT. -C - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CTEMP - CHARACTER*40 CATH, STRING -C - DIMENSION HDR (10) -C - REAL CRR (5,255) - REAL RLIMS (4) - REAL DATA(6) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA STRING /'SID XOB YOB DHR ELV TYP SQN'/ - DATA CATH /'CAT=6 POB DDO FFO WQM'/ - DATA IX /0/ -C -C----------------------------------------------------------------------| -C OPEN THE IBM-SP BUFR TANK FILE | -C----------------------------------------------------------------------| -C - SAVE - IRET = 0 - IMASS = 0 - IWIND = 0 - LUBFR = IUNS - IF( IX .EQ. 0) THEN - IX = 1 - INOUT = 'IN' - LUNDX = 10 - CALL OPENBF( LUBFR, INOUT, LUNDX ) - 10 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF(IRET1 .NE. 0) GOTO 50 - ITYP = 0 - IF(SUBSET .NE. 'SATWND' ) GOTO 10 - ENDIF -C -C----------------------------------------------------------------------| -C READ THE BUFR DATA TANKS -C----------------------------------------------------------------------| -C - 20 CALL READSB (LUBFR,IRET2) - IF (IRET2 .LT. 0) THEN - 22 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF (IRET1 .LT. 0) GOTO 50 - IF(SUBSET .EQ. 'SATWND' ) GOTO 20 - GOTO 22 - END IF -C -C----------------------------------------------------------------------| -C READ IN THE STATION INFORMATION | -C----------------------------------------------------------------------| -C - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C PRINT 119,HDR(1),HDR(6) - 119 FORMAT(' STATION ',A8,' subtype ',F10.1) -C -C MAKE SURE THIS STATION IS WITHIN THE LAT/LONG LIMITS -C - IF((HDR(3) .GT. RLIMS(1)) .OR. (HDR(3) .LT. RLIMS(2))) - 1 GOTO 20 - IF((HDR(2) .LT. RLIMS(3)) .OR. (HDR(2) .GT. RLIMS(4))) - 1 GOTO 20 -C -C----------------------------------------------------------------------| -C UNPACK THE BUFR REPORT -C----------------------------------------------------------------------| -C - IF((HDR(6) .GE. 240.) .AND. (HDR(6) .LE. 246.))THEN - CALL UFBINT (LUBFR, CRR, 5, 255, NRET2, CATH) -C PRINT *,'SATWNDS ',CRR(2,1),CRR(3,1) - DATA(1) = HDR(3) - DATA(2) = HDR(2) - DATA(3) = CRR(1,1) - DATA(4) = CRR(2,1) - DATA(5) = CRR(3,1) - DATA(6) = CRR(4,1) -C PRINT *,' DATA ',(DATA(KK),KK=1,6) - ELSE - GOTO 20 - END IF - RETURN -C - 50 IRET = -1 - RETURN - END -c -c************************************************************** -c - subroutine hbull -c reads quality controlled hurricane bulletins from either: -c $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -c $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL -c and writes putlab call information and box drawing -c information for use downstream by bedient packing -c and drawing program sixbitb2. Input is fortran -c unit 31 and output is fortran unit 74. - -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. - - - COMMON/PACKRA/IRAS(10) - - character*10 names(16) - character*128 clines(100) - character*128 cline - character*128 dumy2k - character*10 cname - character*13 cdate - character*2 c2 - character*80 cout,cnull - - print *, ' ' - print *, ' ===> ENTERING SUBROUTINE HBULL' - print *, ' ' - - write(c2,'(i2.2)') iras(7) - - cnull='NO TROPICAL CYCLONE ACTIVITY REPORTED' - icount=0 - icounta=0 - klines=0 - names='xxxxxxxxxx' - - do k=1,100 - read(31,fmt='(a128)',end=9) cline - -C AT THIS POINT WE DO NOT KNOW IF A 2-DIGIT YEAR BEGINS IN COLUMN 20 -C OF THE RECORD (OLD NON-Y2K COMPLIANT FORM) OR IF A 4-DIGIT YEAR -C BEGINS IN COLUMN 20 (NEW Y2K COMPLIANT FORM) - TEST ON LOCATION OF -C LATITUDE N/S INDICATOR TO FIND OUT ... - - if(cline(35:35).eq.'N' .or. - . cline(35:35).eq.'S') then - -C ... THIS RECORD STILL CONTAINS THE OLD 2-DIGIT FORM OF THE YEAR - -C ... THIS PROGRAM WILL CONVERT THE RECORD TO A 4-DIGIT YEAR USING THE -C "WINDOWING" TECHNIQUE SINCE SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 2-digit year "',cline(20:21),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - DUMY2K(1:19) = cline(1:19) - IF(cline(20:21).GT.'20') THEN - DUMY2K(20:21) = '19' - ELSE - DUMY2K(20:21) = '20' - ENDIF - DUMY2K(22:128) = cline(20:126) - cline = DUMY2K - PRINT *, ' ' - PRINT *, '==> 2-digit year converted to 4-digit year "', - . cline(20:23),'" via windowing technique' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - ELSE IF(cline(37:37).eq.'N' .OR. - . cline(37:37).eq.'S') THEN - -C ... THIS RECORD CONTAINS THE NEW 4-DIGIT FORM OF THE YEAR -C ... NO CONVERSION NECESSARY SINCE THIS SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 4-digit year "',cline(20:23),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - PRINT *, '==> No conversion necessary' - PRINT *, ' ' - ELSE - PRINT *, ' ' - PRINT *, '***** Cannot determine if this record contains ', - . 'a 2-digit year or a 4-digit year - skip it and try ', - . 'reading the next record' - PRINT *, ' ' - CYCLE - END IF - - clines(k)=cline - klines=k - enddo - - 9 continue - - LOOP1: do k=klines,1,-1 - cline=clines(k) - print *, ' ' - print *, 'Look at record: ',cline - print *, ' ' - - LOOP1n1: do j=1,16 - -c look for same name and time - - if(cline(29:30) .ne. c2) then - print *, ' ' - print *, 'Do not process this record because its hour ', - . '(=',cline(29:30),') is different than the ', - . 'cycle hour (=',c2,')' - print *, ' ' - cycle LOOP1 - endif - if(cline(6:6) .eq. '8' .or. cline(6:6) .eq. '9') then - print *, ' ' - print *, 'Do not process this record because it is a ', - . 'test storm, storm id =',cline(6:7) - print *, ' ' - cycle LOOP1 - endif - if(names(j) .eq. cline(10:19) .and. - . names(j) .ne. 'NAMELESS' ) then - print *, ' ' - print *, 'Do not process this record because it has a', - . ' name that has already been processed (name=', - . cline(10:19),')' - print *, ' ' - cycle LOOP1 - endif - print *, ' ' - print *, 'NAMES ',cline(10:19),names(j) - print *, ' ' - enddo LOOP1n1 - - LOOP1n2: do j=1,16 - -c assign new name - - print *, ' ' - print *, 'threeloop' - print *, ' ' - if(names(j) .eq. 'xxxxxxxxxx' ) then - names(j)=cline(10:19) - cname=cline(10:19) - cdate=cline(20:32) - -c - On rare occasions, upstream program QCTROPCY can stamp a 'C' into -c character 67 - this had resulted in a failure in this program -c (note 104 format). Change by Keyser (08/10/1998) uses 9104 format -c if mwind < 100 . - - if(cline(67:67).eq.'1') then - read(cline,104)latd,lond,idir,isp,icp,mwind - 104 format(33x,i3,2x,i4,x,i4,i4,x,i4,10x,i3) - else - read(cline,9104)latd,lond,idir,isp,icp,mwind -9104 format(33x,i3,2x,i4,x,i4,i4,x,i4,11x,i2) - end if - flat=latd/10. - flon=lond/10. - fdir=idir - fsp=isp/10. - central_pressure=icp - - write(cout,105) cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - ic=530+10*j - iatl=0 - ipac=0 - if(lond -latd .lt. 800) iatl =1 - if(lond-latd .gt. 720 .and. latd .lt. 150) ipac=1 - if(lond-latd .gt. 800 ) ipac=1 - -c test for atlantic or Pacific storm - - if(iatl .eq. 1) then - icounta=icounta+1 - ic=icounta*20+620 -ccccc ic=icounta*20+520 - write(74,114) 'PUTLA ',ic, - . '6420 01.0 90.0 038 1 0 0 ',cout(1:80) - endif - if(ipac .eq. 1) then - icount=icount+1 - ic=icount*20+520 - write(74,114) 'PUTLA ',ic, - . '4201 01.0 90.0 038 1 0 0 ',cout(1:80) - endif -ccccc write(74,114) 'PUTLA ',ic,'4201 04.0 90.0 080 1 0 0 ', -ccccc. cout(1:80) - 114 format(a6,i5,a27,a80) - print 105, cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - 105 format(a10,x,a13,x,f4.1,a1,x,f5.1,a1,x,a3,f6.0,x,a3,f5.1, - . a5,x,f6.1,' MB',i3,'M/SEC' ) - if(cline(37:37).eq. 'S') flat=-flat - if(cline(43:43).eq. 'W') flon=360-flon - call maptra(flat,flon,uu,vv) - if ((mwind*2.24) .gt. 38) then - call plchhq(uu,vv,':F35:m',7.5,0.,0.) - else - call plchhq(uu,vv,':F30:TD',2.0,0.,0.) - call plchhq(uu,vv,':F37:S',6.0,0.,0.) - endif - if((mwind*2.24) .gt. 74.) then - -c close hurricane symbol with black fill - - call plchhq(uu,vv-0.005,':F37:Z',4.5,0.,0.) - endif - call gslwsc(3.0) - call plchmq(uu+0.02,vv-0.055,cname,2.5,0.,0.) - call gslwsc(1.0) - exit LOOP1n2 - endif - enddo LOOP1n2 - enddo LOOP1 -ccccc isizea=(icounta+1)/2 +2 - isize=(icount+1)/2 +2 - isize=icount+2 - isizea=icounta+2 - if(isize .eq. 2) then - write(74,114)'PUTLA ',540,'4201 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isize=isize+1 - print *, cnull(1:80) - endif - if(isizea .eq. 2) then - write(74,114)'PUTLA ',640,'6420 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isizea=isizea+1 - print *, cnull(1:80) - endif - write(74,115)'BOX ',510,4190,isize,25 - write(74,115)'BOX ',610,6401,isizea,25 - 115 format(a4,2i5,i5,i5) - - print *, ' ' - print *, ' ===> LEAVING SUBROUTINE HBULL' - print *, ' ' - - return - - end - -c************************************************************** - diff --git a/sorc/gdas_trpsfcmv.fd/trpsfcmv.f.orig b/sorc/gdas_trpsfcmv.fd/trpsfcmv.f.orig deleted file mode 100755 index afe5ac6b8f..0000000000 --- a/sorc/gdas_trpsfcmv.fd/trpsfcmv.f.orig +++ /dev/null @@ -1,1957 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: TRPSFCMV -C PRGMMR: KEYSER ORG: NP22 DATE: 2001-02-09 -C -C ABSTRACT: -C Plots the following in the tropical strip: analyzed wind -C barbs and temperatures at several hundred locations, contours of -C 1000 mb analyzed streamfunction, gridded winds, station plots -C and tropical cyclone positions. It uses NCAR graphics to -C produce a metafile which is rasterized in subsequent program -C executions. It also generates titles and hurricane bulletin -C text (if needed) for processing by the Bedient packer. The -C gross job flow is gendata --> redsat --> trpsfcmv ---> -C ictrans ----> ras2bity ----> sixbit2 (bedient packer) ---> and -C out the door to OSO, NCDC, TPC and FAX. Input is current GLOBAL -C SPECTRAL MODEL ANALYSIS winds in GRIB on type 3 (1x1) grids and -C also station coordinates and observed parameters (temp, dewpoint, -C pressure, tendancy, windspeed, and direction for plotting by -C NOAA graphics (with superior fonts) downstream. The station -C coordinate file is an AFOS PLOTFILE with all linefeeds (Z'0d') -C removed by subroutine afosread. The station coordinates are -C converted to pixel values for downstream use by the bedient -C packer. -C -C PROGRAM HISTORY LOG: -C 1996-12-18 George VandenBerghe Original ancestor code -C 1996-12-31 George VandenBerghe Documented -C 1997-01-30 George VandenBerghe Made grib errors fatal. (stop 17) -C 1997-04-30 George VandenBerghe Removed grid station -C interpolation, NCAR station plotting, changed to -C mercator plot of single streamfunction, added -C streamfunction generator, grid plot, lat/lon -C labels, contouring capability, AFOS plotfile -C read capability, and code to write putlab input -C for downstream use by a new station plotter in -C the bedient packer. Also changed name. -C 1998-08-10 Dennis Keyser Modified format for reading -C tcvitals records to prevent the ocassional -C failures that were occurring when previous -C program QCTROPCY writes a 'C' into character 65 -C of the record. This (climatology indicator) is -C a rare occurrence (format not changed if maxwind -C happens to be > 99 m/s (not sure this is even -C possible). -C 1999-01-25 Krishna Kumar Modified the code to run on IBM -C RS/6000 SP system. -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. -C 2013-03-12 Krishna Kumar Ported this code from IBM RS/6000 SP system -C to INTEL WCOSS system -C -C USAGE: -C INPUT FILES: -C unit 11 - GFS 00 hour GRIB forecast file containing grib type -C - 3 u, and v grids -C unit 12 - Grib index to above -C unit 31 - optional quality controlled hurricane text bulletins -C ( in $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -C and $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL) -C unit 38 - Satellite low level wind observations -C unit 43 - AFOS station plotfile with linefeeds -C unit 44 - AFOS station plotfile (sans linefeeds) -C (see output file list) -C -C OUTPUT FILES: -C gmeta - implicitly opened as fortran unit 2 by ncar -C package -C unit 06 - standard output print -C unit 74 - text file containing tropical cyclone bulletin info -C unit 87 - AFOS station plotfile sans linefeeds to be -C read later in this program as unit 44 -C unit 88 Map title for downstream use by bedient packer -C unit 89 putlab argument file used by bedient packer. -C -C -C SUBPROGRAMS CALLED: -C UNIQUE: - closen openn get3 qcnt afosread -C - l2p cg mpr fill ccpllb -C - color sfill stream3 ridctlm afix -C - satread redsat dayowk i3to53 i53to3 -C - i3to8 hbull -C LIBRARY: -C NCAR GRAPHICS: -C - mappos wmsetr wmseti wmgetr maptra -C - pcseti plccmq plchmq wmbarb gslwsc -C - gsclip mapsti mapstc maproj mapset -C - mapdrw cpseti cpsetr gopks gopwk -C - gacwk gdawk gclwk gclks setusv -C - mapros dpseti frame gsln stream3 -C - sfnorm sfsetr hlsrgb gclwk gclks -C - gsfaci gscr gfa gsclip gsfais -C - cprect cppkcl plchhq cpcldr cplbdr -C - gdawk -C W3LIB - getgb w3fp11 getgb1 errexit w3tagb -C - w3tage putgb -C IPLIB - ipolates makgds -C SPLIB - sptrunv -C BACIO - baopen baclos -C BUFRLIB - openbf readmg readsb ufbint -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C 179 - Grib error on input or index file (unwise to -C continue -C =NNNN - system only -C -C REMARKS: IBM NCAR graphics are in /usrx/local/ncar401 -C CAVEAT requires ncar graphics version 4.0 or above -C as of this writing -C setenv NCARG_ROOT /usr/local/ncar4.0 -C setenv PATH "$PATH":/usr/local/ncar4.0/bin -C (or the bourne/korn analogs) -C handles this; only the first setenv is required -C but the other will likely be -C needed by ictrans downstream -C -C The latitude to pixel coordinate converter -C assumes a 6912x6912 domain and that -C a 6912x1728 slice will be cut horizontally -C out of the domain downstream. The slice -C is then supposed to be rotated 90 degrees -C counterclockwise so that the long axis becomes -C the y axis maximizing fax paper use. This code -C cannot detect if these assumptions are -C in fact met downstream, if not, stations -C will be plotted in incorrect locations. -C The algorithm is however NOT sensitive to -C map projection. -C -C ATTRIBUTES: -C LANGUAGE: Fortran 90 -C MACHINE: IBM -C -C$$$ - - PROGRAM TRPSFCMV - - parameter(nsta=124) - character*3 cmonth(12) - data cmonth/'JAN','FEB','MAR','APR','MAY','JUN','JUL', - 1 'AUG','SEP','OCT','NOV','DEC'/ - dimension f3(360,181) - character*4 ctemp,cday - character*3 cdir - character*80 ctext - character*80 ctext2,ctext3 - character*4 cda - COMMON/PACKRA/IRAS(10) - common/oth/u(70,40),v(70,40),rlats(nsta),rlons(nsta), - 1 up(nsta),vp(nsta),tp(nsta) -c paraMETER (RMNLON=-0.,RMXLON=359., - paraMETER (RMNLON=-0.,RMXLON=359., - 1 RMNLAT=-60.,RMXLAT=60.) - dimension kds(25) - dimension rl(2),rl2(2),rl3(2),rl4(2) - data rl,rl2,rl3,rl4/rmnlat,0.,rmxlat,0., - 1rmnlon,0.,rmxlon,0./ - dimension grid(360,181) - dimension g2(360,121),z2(360,121) - dimension u2(360,121), v2(360,121) - dimension f53(117,51) - character*40 ctit - dimension ifeet(8) - character*132 mtitle -c - character*11 envvar ! for ibm_sp_6000 - character*80 fileg,filegi ! for ibm_sp_6000 -c - CALL W3TAGB('TRPSFCMV',2001,0038,0059,'NP22') - 6 continue -c -c****** added for ibm_sp_6000 -c - lun=11 - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lun - call getenv(envvar,fileg) - call baopen(lun,fileg,iret) -c - luni=12 - write(envvar(5:6),fmt='(I2)') luni - call getenv(envvar,filegi) - call baopen(luni,filegi,iret) -c -c****** -c - call openn -c - do 777 imap=1,1 - if(imap .gt. 1) then - lun=13 - luni=14 - endif - do 1 k=1,25 - 1 kds(k)=-1 - ix=360 - iy=121 -c do 1000 ,ll=1,1,-1 - call mappos (0.0,1.0,0.0,1.0) -C get streamfunction - call stream3(1000,-1,11,12,grid) - pi=3.1415927 - sin45=sqrt(2.)/2 - omega=2*pi/86400. - g=9.81 - fcoril=2*omega*sin45 - factor=fcoril/g - factor=factor/10. -C** CONVERT TO METERS - do k=1,360 - do j=1,121 - g2(k,j)=grid(k+0,152-j ) * factor - end do - end do -c** -c get temperature (fossil code) -c** get u for wind barbs - kds(5)=33 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - u2(k,j)=grid(k+0,152-j ) * 1.93 - end do - end do -c** -c** get v for wind barbs - kds(5)=34 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - v2(k,j)=grid(k+0,152-j )*1.93 - end do - end do -c** - call cpseti('CIS',3) - call gslwsc(2.0) - call qcnt (g2,ix,iy,rl,rl2,rl3,rl4,mtitle) - call hbull - call cpseti('CIS',3) - call gsln(0) - call cg( g2,ix,iy,1) - call cpseti('CIS',5) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - irr=1 - flat=40. - flon=270. - do 14,k=1,120,5 - call gslwsc (1.0) - do 14,l=1,360,5 - if (irr .eq. 1) then - irr=2 - else - irr=1 - endif - if(irr .eq. 1) then - l2=l-1 - k2=k - else - l2=l-1 -c k2=k+1 - k2=k - endif - flon=l2 - flat=k2-61. - call maptra(flat,flon,uu,vv) - iflat=flat+5. - if(iflat .lt. 0) then - write(ctemp,1087)-iflat - 1087 format(i2,x,'S') - else - write(ctemp,1088) iflat - 1088 format(i2,x,'N') - endif -c call plchmq( uuf,vvf,ctemp,1.,0.,0.) - call gslwsc(1.0) -c write(102,*) flat,flon,uu,vv,u2(l2,k2),v2(l2,k2) - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - call wmbarb(uu,vv,-u2(l2,k2),-V2(L2,K2)) - 14 continue - do 15,lat=-60,60,30 - do 15 lon=27,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 15 continue - do 16,lat=-33,60,30 - do 16 lon=0,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - 1089 format(i3,'E') - 1091 format(i3,'W') - else - write(ctemp,1091)(360-lon) - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 16 continue - write(ctext,193)'TROPICAL SURFACE ANALYSIS VALID' - call DAYOWK(IRAS(8),IRAS(9),IRAS(10),idayy,cday) -c USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) - write(ctext2,194)iras(7),cday,cmonth(iras(9)),iras(8),iras(10) - write(88,1961)ctext,ctext2 - write(ctext3,196)'STREAM FUNCTION AND GRID WINDS' - write(79,1962)ctext2 - 1962 format(a30) - 196 format(a30) - 1961 format('STRIP ',' ',2a30) - 194 format(i2,'Z',x,a4,x,a3,x,i2,x,i4) - 193 format(a25,x,i2,'Z' ,i2,'/',i2,'/',i4) - call maptra(28.,230.,uu,vv) - call maptra(-12.,230.,uu2,vv2) - call maptra(-32.,270.,uu3,vv3) - call maptra(-32.,320.,uu4,vv4) - call maptra(-32.,80.,uu5,vv5) - call gslwsc(4.0) - call gslwsc(1.0) - do 17,lat=-37,60,10 - do 17 lon=0,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - else - write(ctemp,1091)(360-lon) - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 17 continue - do 18,lat=-60,60,10 - do 18 lon=2,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 18 continue - do 19,lon=1,360,1 - do 19,lat=-60,60,1 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) -c call plchlq(uu,vv,'.',1.,0.,0.) - 19 continue - call gsln(4) -c call cg(z2,ix,iy,2) - call gsln(1) - call frame - 777 continue - call baclose(11,iret) - call baclose(12,iret) - call closen - CALL W3TAGE('TRPSFCMV') - stop - end -c -c************************************************************** -c - subroutine mpr(flat,flon) - call maptra(flat,flon,u,v) - print 101,flat,flon,u,v - 101 format('lat lon ' , 4f15.5) - return - end -c -c************************************************************** -c - subroutine qcnt(grid,ix,iy,rl,rl2,rl3,rl4,mtitle) - character*132 mtitle - integer (kind=8) ibb1,ibb2 - common/staa/ibitz - Data ibb1/Z'F0F0F0F0F0f0ffff'/ - data ibb2/Z'F0F0F0F0F0f0aa55'/ - dimension grid(ix,iy) - dimension rl(2),rl2(2),rl3(2),rl4(2) - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) -c dimension RLAT1(2), RLAT2(2), RLON1(2), RLON2(2) - dimension grid2 (ix,iy) - common/icc/icount - common/ctrxxx/junk1,jink2,iflag - iflag=0 - Rmnlon=rl3(1) - rmxlon=rl4(1) - rmnlat=rl(1) - rmxlat=rl2(1) - icount = 0 !modified for ibmsp - do 1 k=1,ix - do 1 j=1,iy -c grid2(k,(iy+1-j))=(grid(k,j)) - grid2(k,j)=grid(k,j) -c grid2(k,j)=(grid(k,j)-273)*1.8 +32 -c z(k,j)=k+j**2 - 1 continue - CALL GSCLIP (0) -C -C Draw Lat/Lon lines at 10 degree intervals. -C Draw political & continental outlines. -C - CALL MAPSTI ('GR - GRID',90) - CALL MAPSTC ('OU - OUTLINE DATASET','CO') -C -C Draw a Satellite view over the United States -C - CALL MAPROJ ('ME - SATELLITE-VIEW',00.,-180.,00.) -c CALL MAPROJ ('CE - SATELLITE-VIEW',0.,0.,00.) -c CALL MAPSET ('MA',RLAT1,RLON1,RLAT2,RLON2) -c call mapset('MA',rlatmin,rlonmin,rlatmax,rlonmax) -C -C Don't draw a square around the globe -C - CALL MAPSTI ('PE - PERIMETER FLAG', 0) -C -C Draw map. -C -c call gslwsc(4.0) -c HEAVY HEAVY - call setusv('LW',4000) - CALL MAPDRW -c read synoptic data from AFOS PLOTFILE - call afosread -c read satellite winds directly from bufr input on unit 10 -c call satread - call setusv('LW', 1000) - CALL MAPSTI ('GR - GRID',10) - CALL MAPSTC ('OU - OUTLINE DATASET','PS') - CALL MAPDRW - - CALL CPSETI ('SET - DO SET-CALL FLAG',0) - CALL CPSETR ('DPV - DASH PATTERN VECTOR SIZE',.0010) - call DPSETI('PCF',0) -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - - CALL CPSETI ('MAP - MAPPING FLAG',1) - call cpsetr('XC1',rmnlon) - call cpsetr('XCM',rmxlon) - call cpsetr('YC1',rmnlat) - call cpsetr('YCN',rmxlat) - ibitz=ibb1 -c call cg(grid2,ix,iy) - ibitz=ibb2 -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C -c CALL GDAWK (1) -c CALL GCLWK (1) -c CALL GCLKS -c CALL W3TAGE('TRPSFCMV') -c STOP -c hunt for centers - do 2 k=5,ix-4 - do 2 j=5,iy-4 - lat=-61+j - lon=k-1 - gradck=2.2 - fmin=grid2(k,j) - fmax=grid2(k,j) - do 4 kk=k-4,k+4 - do 4 jj=j-4,j+4 - if(grid2(kk,jj) .lt. fmin) fmin=grid2(kk,jj) - if(grid2(kk,jj) .gt. fmax) fmax=grid2(kk,jj) -c 1 grid2(k,j) .lt. grid2(k+1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k-1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j+1)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j-1)-gradck .and. -c 2 grid2(k,j) .lt. grid2(k+2,j) .and. -c 2 grid2(k,j) .lt. grid2(k-2,j) .and. -c 2 grid2(k,j) .lt. grid2(k,j+2) .and. -c 2 grid2(k,j) .lt. grid2(k,j-2) -c 3 ) then - 4 continue - if( (fmax-fmin) .lt. gradck) go to 2 - if (fmin .eq. grid2(k,j) .or. fmax .eq. grid2(k,j)) then - flat=lat - flon=lon - call maptra(flat,flon,uu,vv) - if (flat .gt. 0.) then - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - else - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - endif - endif - 2 continue - call satread - return - END -c -c************************************************************** -c - SUBROUTINE FILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) - - DIMENSION XWRK(*),YWRK(*),IAREA(*),IGRP(*) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .GT. 0) THEN -cC -C If the area is defined by 3 or more points, fill it -C - CALL GSFACI(IAREA3+2) - CALL GFA(NWRK,XWRK,YWRK) - ENDIF - -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine cg(zreg,ix,iy,ifld) -C - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) - - real ZREG(ix,iy) - - EXTERNAL COLOR -C -C Call Conpack color fill routine - do k=1,ix -ckumar print *,' zreg',(zreg(k,j),j=1,iy,5) - end do -C - CALL CCPLLB(ZREG,ix,iy,COLOR,IWKID,ifld) -C - - RETURN - END -c -c************************************************************** -c - SUBROUTINE CCPLLB(ZREG,MREG,NREG,COLOR,IWKID,ifld) - common/staa/ibitz - common/windz/u2(360,121),v2(360,121) - common/oth/u(70,40),v(70,40),rlats(65),rlons(65),up(65),vp(65) - PARAMETER (LRWK=50000,LIWK=50000,LMAP=900000,NWRK=50000,NOGRPS=6) - REAL ZREG(MREG,NREG),RWRK(LRWK), XWRK(NWRK), YWRK(NWRK) - INTEGER MREG,NREG,IWRK(LIWK) - INTEGER MAP(LMAP),IAREA(NOGRPS),IGRP(NOGRPS) - integer ibts(16,300) - DATA IBTS / 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, - 1 1600*0, - 1 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 2 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, - 3 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, - 4 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 5 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, - 6 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 7 160*0, 2928*0 / ! modified for ibmsp - EXTERNAL FILL -c data ibitz/Z'F0F0F0F0F0F03333'/ - external sfill - EXTERNAL CPDRPL - EXTERNAL COLOR -C -C Set fill style to solid and turn off clipping -C - CALL GSFAIS(1) - CALL GSCLIP(0) -C -C Set up label box options -C -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - NOCL=300 - CALL CPSETI('LLP - LINE LABEL POSITIONING FLAG',4) -c CALL CPSETI('LLB - LINE LABEL BOX FLAG',4) - CALL CPSETI('LLB - LINE LABEL BOX FLAG',3) - CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',3) -c CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',4) - CALL CPSETI('ILB - INFORMATIONAL LABEL BOX FLAG',0) - CALL CPSETI('LBC - LABEL BOX COLOR INDEX',1) -c call cpseti('CIS',6) -cc call cpseti('LIS',1) - call cpseti('LIS',100) - call cpseti('LLP',2) - CALL CPSETR ('ORV - OUT-OF-RANGE VALUE',1.E12) - call cpsetr('RC1',0.15) - call cpsetr('LLS',0.00002) - call cpsetr('RC2',0.15) - call cpsetr('LLW',0.00001) -c call cpsetr('HLW',0.001) -c call cpsetr('HLS',0.002) - call cpsetr('HLW',0.0000001) - call cpsetr('HLS',0.0000002) - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - CALL CPPKCL (ZREG, RWRK, IWRK) - CALL CPGETI('NCL - NUMBER OF CONTOUR LEVELS',NCL) - DO 111 I=1,NCL - CALL CPSETI('PAI - PARAMETER ARRAY INDEX',I) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('AIA - AREA IDENTIFIER ABOVE',0) - CALL CPSETI('AIB - AREA IDENTIFIER BELOW',0) - 111 CONTINUE - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('NCL - NUMBER OF CONTOUR LEVELS',NCL+2) - CALL CPSETI ('PAI',ncl+1) - call cpsetr('CLV',0.0) - call cpseti('AIB',5) - call cpseti('AIA',0) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - if(zreg(50,50) .lt. 500) then -c CALL CPSETI ('PAI',ncl+2) -c call cpsetr('CLV',15.0) -c call cpseti('AIB',0) -c call cpseti('AIA',6) - endif -c call cpsetr('CLV',55.0) -c call cpseti('AIB',6) -c call cpseti('AIA',0) - DO 11 I=1,ncl - ivarv=ibitz - print 198,ivarv - 198 format(z16) -c CALL CPSETI('PAI - PARAMETER ARRAY INDEX',i) -c CALL CPSETI('CLD - CONTOUR LINE DASH PATTERN', -c + ivarv) - 11 continue - CALL COLOR(NCL+1,IWKID) - call PCSETI('CC',0) - - -C -C Draw Perimeter -C -c CALL CPBACK(ZREG, RWRK, IWRK) - call gslwsc(1.0) -C -C Initialize Areas -C -cc CALL ARINAM(MAP, LMAP) -C -C Add label boxes to area map -C -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(1) -c cc CALL CPLBAM(ZREG, RWRK, IWRK, MAP) -C -C Draw Labels -C - call gsln(0) -c CALL CPLBDR(ZREG, RWRK, IWRK) -C -C Add contours to area map -C -c CALL CPCLAM(ZREG, RWRK, IWRK, MAP) - call gslwsc(3.0) -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(4) - call cpcldr(zreg,rwrk,iwrk,map,cpdrpl) -c NEW LINE - call gslwsc(2.0) - call cplbdr(zreg,rwrk,iwrk) - -c call cpcldm(zreg,rwrk,iwrk,map,cpdrpl) -c call gsln (1) -C -C Fill contours -C -c CALL ARSCAM(MAP, XWRK, YWRK, NWRK, IAREA, IGRP, NOGRPS, SFILL) - 99 continue - CALL WMSETR('WBS',0.004) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - RETURN - END -c -c************************************************************** -c - SUBROUTINE COLOR (N,IWKID) -C -C BACKGROUND COLOR -C -C -C BLACK -C - CALL GSCR(IWKID,0,0.,0.,0.) -C -C First foreground color is white -C - CALL GSCR(IWKID,1,1.,1.,1.) -C -C Second foreground color is gray -C - CALL GSCR(IWKID,2,0.5,0.5,0.5) -C -C Choose other foreground colors spaced equally around the spectrum -C - ICNT=0 - HUES=360./N -C -C REDLN is intended to be the line between red and violet values -C - REDLN=36.0 - LAP=INT(REDLN/HUES) - DO 10, I=1,N - XHUE=I*HUES - CALL HLSRGB(XHUE,60.,75.,RED,GREEN,BLUE) -C -C Sort colors so that the redest is first, and violetest is last -C - IF (XHUE.LE.REDLN) THEN - CALL GSCR(IWKID,(N+2)-(LAP-I),RED,GREEN,BLUE) - ICNT=ICNT+1 - ELSE - CALL GSCR(IWKID,I-ICNT+2,RED,GREEN,BLUE) - ENDIF - 10 CONTINUE - - RETURN - END -c -c************************************************************** -c - SUBROUTINE SFILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) -C - REAL XWRK(*),YWRK(*),ISCR(5000) - INTEGER IAREA(*),IGRP(*),RSCR(5000) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .eq. 5) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 0.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF - IF (IAREA3 .eq. 6) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 90.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine i3to53(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i53to3(F53,F3) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - logical log3(360,181) - equivalence (lo_03,log3) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - - do k=1,360 - log3(k,1)=.FALSE. - log3(k,181)=.FALSE. - end do - ibi=0 -cc define 360x181 grid - call makgds(53,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(3,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,jo53,ji2,1, - 1 ibi,lo_03,F53,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F3,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i3to8(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(116,44) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(8,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine closen -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C - CALL GDAWK (1) - CALL GCLWK (1) - CALL GCLKS - return - end -c -c************************************************************** -c - subroutine openn -C OPEN GKS, OPEN WORKSTATION OF TYPE 1, ACTIVATE WORKSTATION -C - CALL GOPKS (6,IDUM) - CALL GOPWK (1, 2, 1) - CALL GACWK (1) - return - end -c -c************************************************************** -c - Subroutine get3(lun,luni,jpds,a2,c132) - common/grbpds/kpds - COMMON/PACKRA/IRAS(10) -c array is an NMC GRIB TYPE 3 field on output -c jpds is set in the CALLER!! except for fields 1-3 - dimension array(360,181),a2(360,181) - dimension jpds(25),jgds(25) - dimension grib(360,181) - dimension kpds(25),kgds(25) - character*132 c132 - logical lb(360,181) - jf=360*181 - jflag=-1 - kf=jf -c jpds(2)=77 - jpds(1)=7 -c jpds(3)=104 - jpds(3)=3 - print 101,lun,luni - print 109,(jpds(ll),ll=1,25) - 109 format(5z17) - call getgb1(lun,luni,jf,jflag,jpds,jgds, - 1 grib,kf,k,kpds,kgds,lb,array,ier) - print*,'kpds = ',kpds(1:20) -c if ( ier .ne. 0) then -c CALL W3TAGE('TRPSFCMV') -c call errexit(99) -c endif - call w3fp11(grib,grib(2,1),c132,ierr) - print 106,k,c132 - 106 format(i6, 'LAB ',a132) - print 101,ier,k,kf - if(ier .ne.0 ) then - CALL W3TAGE('TRPSFCMV') - call errexit(9999) - endif - print 102,(array(90,k),k=1,181) - 102 format(10f8.2) - 101 format(i9) -cj do 45,k=1,181 -c do 45,j=1,360 -c 45 if(j .gt. 70 .or. k .gt. 70) array(j,k)=array(70,70) -c SET IRAS VARIABLES - iras(1)=kpds(14) - iras(7)=kpds(11) - iras(8)=kpds(10) - iras(9)=kpds(9) -C This should generate the proper 4-digit year no matter what!! - mcen=max(0,kpds(21)-1) - iras(10)=mcen*100+kpds(8) - if(iras(10) .le. 20) then - iras(10)=iras(10)+2000 - else if(iras(10).le.99) then - iras(10)=iras(10)+1900 - end if -c iras(3)=iras(7) -c iras(4)=iras(8) -c iras(5)=iras(9) -c iras(6)=iras(10) -c flip type 3 grid - do k=1,181 - do j=1,360 -c a2(j,182-k)=array(j,k) - a2(j,k)=array(j,k) - end do - end do - return - end -c -c************************************************************** -c - Subroutine stream3(mbars,itime,lupgb,lupgi,F3) -c -c George VandenBerghe 11/17/96 -c -c subroutine to accept pressure level (mbars), -c grib unit number (lupgb), and grib index unit -c number (lupgi) and read u, and v wind fields, -c at mbars, and calculate stream function. Stream -c function is stored in F3 and returned to caller. -c The Grib fields on lupgb MUST be grib type 3 (360x181) -c fields. These are output automatically by the NCEP -c GFS forecast model. -c These stream functions are dimensionally correct -c m**2/sec streamfunctions -c 11/17/96 add on !! -c logic added to handle tropopause level. Passing -c in pressure as 7 mbars tells code to wildcard -c pressure and take tropopause level values - parameter(im=360,jm=181,km=16) - dimension F3(im,jm) - dimension iprs(km) - integer kpds(100), kgds(100) - integer jpds(100), jgds(100) - logical lbms(im*jm), luv, ldz, lps - real u(im,jm), v(im,jm), psi(im,jm),chi(im,jm) - data iromb/0/,maxwv/126/,idrti/0/,imaxi/360/,jmaxi/181/ - data idrto/0/,imaxo/360/,jmaxo/181/,kmax/1/ - data iprime/0/,iskipi/0/,jskipi/0/,kspipi/0/ - data iskipo/0/,jskipo/0/,kspipo/0/,jcpu/0/ -c --- coordinate testing code - x1=50 - y1=60 - x2=180 - y2=60 - x3=180 - y3=120 - - luv = .False. - ldz = .False. - lps = .True. - ijm = im * jm - fim = im - lskip=-1 - k=0 - do jj = 1, 100 - jpds(jj) = -1 - enddo - do jj = 1, 20 - jgds(jj) = -1 - enddo - jpds(5) = 33 - jpds(6) = 100 - jpds(7) =mbars - jpds(14)=itime -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,u,iret) -c print *,' KPDS AFTER U' -c print 189,kpds - if(iret.ne.0) then - print *, ' iret =', iret - print *, ' k =', k - print *, kpds - endif - jpds(5) = 34 - jpds(6) = 100 - jpds(7) = mbars -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,v,iret) - if(iret.ne.0) then - print *, ' iret =', iret - print *, ' k =', k - print *, kpds - endif - call SPTRUNV(IROMB,MAXWV,IDRTI,IMAXI,JMAXI, - & IDRTO,IMAXO,JMAXO,KMAX, - & IPRIME,ISKIPI,JSKIPI,KSKIPI, - & ISKIPO,JSKIPO,KSKIPO,JCPU,U,V, - & LUV,GRIDUO,GRIDVO,LDZ,GRIDDO,GRIDZO, - & LPS,chi,psi) - print 109,k - 109 format(' K is ',i9) -c - do j=1,jm - do k=1,im - f3(k,j)=psi(k,j) - end do - end do - kpds(5)=35 -c print *,' KPDS to be put' -c print 189,kpds - 189 format(5Z20) -c WRITE THE STREAMFUNCTIONS TO UNIT 51!! -c call putgb(51,ijm,kpds,kgds,lbms,f3,iret) -c end write - if(iret .ne. 0) print *, - 1 ' WARNING PUT OF STREAMFUNCTION FAILED return code ', iret, - 1 ' from putgb ' - print *,' FEW STREAMS',psi(50,50),psi(100,100) - 990 continue - return - end -c -c************************************************************** -c - subroutine afosread -c field 4 time (4 digits) -c field 5 name ( 5 digits) -c field 6 sky cover i A aircraft S sat M missing -c7 field 7 wind ddfff -c field 8 pressure (mb*10. significant digits) -c field 9,10 temp and dew -c 11 present weather (code or text) -c 12 visibility -c 13 pressure change -c 14 barograoh trace (code table 12) -c 15 low/middle/high cloud -c 16 precip -c 17 remarks -c lat lon are 18 and 19 -c 20 ship course and speed - dimension points(100000,2) - character*160 cline - character*160 cout - integer icom(20) - character*8 ccom(20),cf -c - do nn=1,2 - do mm=1,100000 - points(mm,nn)=0 - enddo - enddo -c - call ridctlm - do k=1,20 - ccom(k)=' ' - end do -c - open(44,file='afosplot') -c -c do jjj=1,2 -c read(44,101)cline -c enddo -c - do 10000 kkk=1,100000 - 101 format(a160) - read(44,101,end=999,err=997) cline - write(85,101) cline -c print 101,cline -c find the commas - idx=1 - is=1 - cf=' ' - ico=0 - do 10,k=1,160 - if(cline(k:k) .eq. ',' .or.cline(k:k).eq.';') then - ico=ico+1 -c - if(ico.ge.40) then - print *,' MORE THAN 40 COMMAS in line ',kkk - go to 10000 - endif -c - icom(ico)=k - ccom(ico)=cf - cf=' ' - idx=1 - if(cline(k:k) .eq. ';') go to 19 - else - cf(idx:idx)=cline(k:k) - idx=idx+1 -c - if(idx .gt. 8) then - print *,' MORE THAN 8 blanks between commas in line ',kkk - go to 10000 - endif -c - endif - 10 continue - 19 continue - do k=1,20 - if(ccom(k) .eq. ' ') ccom(k)='-9999 ' - end do - do k=1,5 - if(ccom(15)(k:k).eq.'/') ccom(15)(k:k)='0' - end do - if(ccom(6)(8:8).eq. 'M') ccom(6)='-9999 ' - if(ccom(6)(1:1).eq. 'M') ccom(6)='-9999 ' - if (kkk .lt. 5) print 129,ccom - 119 format(i3,a3,20i3) - read(ccom(7),179)id,isp - 179 format(i3,i2) - read(ccom(9),149)itemp - read(ccom(6),149) icover - read(ccom(11),149) iwx - if(iwx .gt.99 .or. iwx .lt.0) iwx=-9999 - print *,' ICOVERC',icover - read(ccom(10),149)idew - read(ccom(18),159)ilat - read(ccom(15),149)icloud - if(icloud .gt. 0) print *,' ICLUD',icloud - read(ccom(19),169)ilon - read(ccom(8),149) ipres - read(ccom(14),149)itrace - read(ccom(13),149) itend - if (ccom(18)(4:4) .eq. 'S') ilat=-ilat - if(ccom(19)(5:5) .eq.'W') ilon=-ilon+3600. - flat=(ilat+0.5)/10. - flon=(ilon+0.5)/10. - call maptra(flat,flon,uu,vv) - if(id.eq.-99)id=-999 - dir=id - theta=(90-dir)*3.1415927/180. - u=cos(theta)*isp - v=sin(theta)*isp - dir=dir-90. - if(dir .le. 0) dir=dir+360 - if(flat .lt. 0) dir=-dir - id=dir - ilat=flat - ilon=floN - points(kkk,1)=400. - points(kkk,2)=400. - do 39,l=1,kkk-1 - xd=(points(l,1)-ilat)*2.0 - yd=points(l,2)-ilon - sargg=xd**2 + yd**2 -c write(102,*)' square root ',kkk,sargg - if(sargg .lt. 0.) then - write(102,*)' negative square root potential ',kkk,sargg - go to 10000 - endif -c - dist=sqrt(xd**2 + yd**2) -c dist=sqrt( (points(l,1)-ilat)**2 + (points(l,2)-ilon)**2) - if (dist .lt. 3.9) go to 10000 - if(ccom(3)(1:1) .eq. '7') go to 10000 -c if (dist .lt. 0.5) go to 10000 - 39 continue - points(kkk,1)=ilat - points(kkk,2)=ilon - 149 format(i8) - 159 format(i3) - 169 format(i4) - print *,'STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - if(iwx .gt. 0) - 1 print *, - 1 'WX STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - call l2p(flat,flon,iprx,ipry) - if(iprx .lt. -9999. .or. iprx .gt. 9999 .or. - 1 ipry .lt. -9999 . .or. ipry .gt. 9999) - 1 go to 10000 - write(89,105)'STATION PLOT', - 1 iprx,ipry,itemp,idew,ipres,itend,id,isp,icover,iwx,itrace,icloud - 1 ,ccom(5) - 1 ,ccom(18),ccom(19) -c 1 iprx,ipry,itemp,idew,ipres,itend,id,isp -c 1 iprx,ipry,itemp,idew,ilon,ilat,id,isp,icover,ccom(5) - 105 format(a16,12i5,x,3a9) - 139 format(96x,2i8) - 129 format(20a8) -10000 continue - print *,'WARNING, INPUT AFOS PLOTFILE NOT EXHAUSTED' - 997 continue -c print *,' ENDED DATA WITH ERROR' - 999 continue - return - end -c -c************************************************************** -c - subroutine l2p(flat,flon,iprx,ipry) - call maptra(flat,flon,uu,vv) - fx=cufx(uu) - fy=cufy(vv) - px=6912*fx -c1 py=-6912*(fy-.625555555) - py=-6912*(fy-.575555555) - iprx=py - ipry=px - print *,'L2P ', 'flat,flon,px,py,iprx,ipry', - 1 flat,flon,px,py,iprx,ipry - return - end -c -c************************************************************** -c - subroutine ridctlm -c remove all ctlm characters from fort.43 and write to fort.87 - dimension jstat(100) -c is=stat('fort.43',jstat) -c lnn=jstat(8) - read(5,101)lnn - 101 format(i10) - print*,'file size of fort.43 ',lnn - call afix(lnn) - return - end -c -c************************************************************** -c - subroutine afix(lnn) - character*1 bytes(lnn) - integer (kind=8) ip - data ip/Z'0D'/ ! CTRL-M - character*1 c1(8) - equivalence(c1,ip) -ckumar - open(43,file='NHPLOT',access='direct',recl=1280) -c - na=1 ; nb=1280 -c - nrec=lnn/1280 - print*,'In afix lnn & nrec : ',lnn,nrec -c - do ir=1,nrec - read(43,rec=ir)bytes(na:nb) - na=na+1280 - nb=nb+1280 -ckumar print*,'In afix ir, na & nb ',ir,na,nb - enddo -c - do 10,k=1,lnn - if(bytes(k) .eq. c1(8)) bytes(k)=' ' - 10 continue -c - write(87) bytes - close(87) - return - end -c -c************************************************************** -c - -C DATA SET DAYOWK AT LEVEL 001 AS OF 04/16/93 - SUBROUTINE DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DAYOWK FIND NUMERICAL DAY OF WEEK. -C PRGMMR: HENRICHSEN ORG: NMC41 DATE:93-05-11 -C -C ABSTRACT: GIVEN DAY MONTH AND YEAR AS INTEGERS RETURN DAY OF WEEK AS -C AND INTEGER NUMBER AND AS FOUR CHARACTER HOLLERTH TEXT. -C -C PROGRAM HISTORY LOG: -C 84-MM-DD WICK -C 85-MM-DD HENRICHSEN REMOVE OLD KEY PUNCH CHARACTERS AND CLEAN UP. -C 87-12-10 HENRICHSEN CONVERT TO VS FORTAN 77. -C -C USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C INPUT ARGUMENT LIST: -C IDAY - INTEGER TWO DIGET DAY OF MONTH( 1 THRU 31 ). -C IMONTH - INTEGER TWO DIGET MONTH OF YEAR( 1 THRU 12). -C IYEAR - INTEGER TWO OR FOUR DIGET YEAR. -C IYEAR SHOULD BE THE COMPLETE FOUR DIGIT YEAR. -C IF ONLY LAST 2 DIGITS OF YEAR ARE GIVEN, -C ASSUMES 20TH CENTURY... -C -C OUTPUT ARGUMENT LIST: -C IDAYWK - INTEGER NUMBER OF DAY OF WEEK ( 1 THRU 7 ). -C IHDAYW - CHARACTER*4 WORD CONTAINING THE THE THREE LETTER -C - DAY OF THE WEEK LEFT JUSTIFED IN THE WORD. -C - IE 'MON ', .... 'FRI ', .... 'SUN '. -C ERRFLAG - ERROR OF OUT OF RANGE ARGUEMENT IS INDICATED BY THE -C - RESULTING IDAYWK = 0, AND IHDAYW = BLANKS. -C -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C FT06F001 - ERROR PRINT WHEN ARGUEMENTS OUT OF RANGE. -C -C REMARKS: NONE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ - CHARACTER*4 IHDAYW - CHARACTER*4 ITEXT(2) - CHARACTER*4 KHDAY(7) - CHARACTER*4 KLANK - CHARACTER*4 NHDAY(2) - CHARACTER*4 NHMON(2) - CHARACTER*4 NHYR(2) -C - INTEGER KCEN(5) - INTEGER KDAYS(12) - INTEGER MONTAB(12) -C - DATA KHDAY /'SUN ','MON','TUE ', - 1 'WED ','THU ','FRI ','SAT '/ - DATA KLANK /' '/ - DATA NHDAY /'DAY ',' '/ - DATA NHMON /'MONT','H '/ - DATA NHYR /'YEAR',' '/ -C - DATA KCEN /4,2,0,6,4/ - DATA KDAYS /31,29,31,30,31,30,31,31,30,31,30,31/ - DATA MONTAB /1, 4, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6/ -C - IDAYWK = 0 - IHDAYW = KLANK - ISFEB = 0 - IDA = IDAY - IMO = IMONTH - IYR = IYEAR - IF(IMO) 911,911,122 - 122 IF(IMO .GT. 12) GO TO 911 - IF(IDA) 922,922,133 - 133 IF(IDA .GT. KDAYS(IMO)) GO TO 922 - ICENT = IYR / 100 - IYR2 = IYR - 100 * ICENT - IF(ICENT) 933,140,144 - 140 CONTINUE -C ...IF ONLY LAST 2 DIGITS OF YR WERE GIVEN, ASSUME ITS 1900 + - ICENT = 19 - IYR = IYR + 1900 - 144 CONTINUE - ICENTX = ICENT - 16 - IF(ICENTX) 933,933,155 - 155 IF(ICENTX .GT. 5) GO TO 933 -C ...THE GIVEN DATE INFO IS W/I RANGE... - ISUM = KCEN(ICENTX) + IYR2 +IYR2/4 + MONTAB(IMO) + IDA - IF(IMO - 2) 222,211,611 -C ...OTHERWISE, THIS IS JAN OR FEB, SO CHECK FOR LEAP YR... - 211 ISFEB = 1 - 222 CONTINUE - IF(MOD(IYR,4)) 533,511,533 -C ...MOST LIKELY A LEAP YR. TEST FOR CENTURY YR... - 511 CONTINUE - IF(IYR2)522,515,522 - 515 CONTINUE - IF(MOD(IYR,400))533,522,533 -C ...COMES TO 522 IF LEAP YR CORRECTION IS NEEDED... - 522 CONTINUE - ISUM = ISUM - 1 - GO TO 611 - 533 CONTINUE -C ...COMES TO 533 IF NOT A LEAP YR, SO IF FEB, MUST RETEST IDA... - IF(ISFEB)544,611,544 - 544 CONTINUE -C ...THIS IS FEB OF A NON-LEAP YR. - IF (IDA .GE. KDAYS(2)) GO TO 922 - GO TO 611 - 611 CONTINUE - IDAW = MOD(ISUM,7) - IF(IDAW) 644,633,644 - 633 CONTINUE - IDAW = 7 - GO TO 644 - 644 CONTINUE - IDAYWK = IDAW - IHDAYW = KHDAY(IDAW) - RETURN -C - 911 CONTINUE -C ...COMES HERE IF GIVEN MONTH OUT-OF-RANGE... - ITEXT(1) = NHMON(1) - ITEXT(2) = NHMON(2) - GO TO 955 - 922 CONTINUE -C ...COMES HERE IF GIVEN DAY OUT-OF-RANGE - ITEXT(1) = NHDAY(1) - ITEXT(2) = NHDAY(2) - GO TO 955 - 933 CONTINUE -C ...COMES HERE IF GIVEN YR OUT OF RANGE - ITEXT(1) = NHYR(1) - ITEXT(2) = NHYR(2) - GO TO 955 - 955 CONTINUE - PRINT 956, ITEXT(1),ITEXT(2),IDAY,IMONTH,IYEAR - 956 FORMAT(1H0,10X,'ERROR EXIT FROM DAYOWK. GIVEN ', A4, A1, 1X, - X 'OUT-OF-RANGE', /1H0,15X,'IDAY = Z', Z8, 4X,'IMONTH = Z', - X Z8, 4X, 'IYEAR = Z', Z8) - RETURN - END -c -c************************************************************** -c - subroutine satread -c READS SATELLITE WIND DATA AND DRAWS WIND BARBS -c ON ANY NCAR GRAPHICS PLOTTING FRAME WITH LATLON -c FRAME MAPPING DEFINED (general for weather plots) - dimension ary(6) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - do 10,k=1,9999999 - read(38,101,end=99)ary - 101 format(6x,6f10.4) - flat=ary(1) - flon=ary(2) - dir=ary(4) - speed=ary(5) - qcm=ary(6) - u=speed*sin(dir*3.1415927/180.) - v=speed*cos(dir*3.1415927/180.) - call maptra(flat,flon,uu,vv) -c print *,'calling wmbarb',uu,vv,u,v - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - call wmbarb(uu,vv,u,v) - call plchhq(uu,vv,':F19:c',1.5,0.,0.) -c call plchhq(uu,vv,':F22:C',9.5,0.,0.) - 10 continue - 99 continue - return - end -c -c************************************************************** -c -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDSAT READ UPPER AIR BUFR FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-06-03 -C -C ABSTRACT: REDSAT READS THE PREPBUFR OBSERVATIONAL FILE AND -C RETURNS A SINGLE SATWND REPORT IN ARRAY DATA -C -C PROGRAM HISTORY LOG: -C 97-06-03 LARRY SAGER -C -C USAGE: CALL REDSAT (RLIMS, IUNS, DATA, IRET) -C INPUT ARGUMENT LIST: -C RLIMS - LAT/LONG LIMITS TO DUMP -C IUNS - UNIT NUMBER OF PREPBUFR FILE -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C DATA - THE RETURNED SATWND REPORT. -C - LAT, LONG, PRESALT, WDIR, WSP, WQM -C IRET - FLAG: IRET=0 NORMAL RETURN -C IRET=-1 END OF FILE -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT55F001 - PREPBUFR UPPER AIR DATA FILE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ - SUBROUTINE REDSAT(RLIMS, IUNS, DATA, IRET) -C -C REDUPA READS THE PREPBUFR FILE AND RETURNS AN UNPACKED -C SATWND REPORT. -C - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CTEMP - CHARACTER*40 CATH, STRING -C - DIMENSION HDR (10) -C - REAL CRR (5,255) - REAL RLIMS (4) - REAL DATA(6) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA STRING /'SID XOB YOB DHR ELV TYP SQN'/ - DATA CATH /'CAT=6 POB DDO FFO WQM'/ - DATA IX /0/ -C -C----------------------------------------------------------------------| -C OPEN THE IBM-SP BUFR TANK FILE | -C----------------------------------------------------------------------| -C - SAVE - IRET = 0 - IMASS = 0 - IWIND = 0 - LUBFR = IUNS - IF( IX .EQ. 0) THEN - IX = 1 - INOUT = 'IN' - LUNDX = 10 - CALL OPENBF( LUBFR, INOUT, LUNDX ) - 10 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF(IRET1 .NE. 0) GOTO 50 - ITYP = 0 - IF(SUBSET .NE. 'SATWND' ) GOTO 10 - ENDIF -C -C----------------------------------------------------------------------| -C READ THE BUFR DATA TANKS -C----------------------------------------------------------------------| -C - 20 CALL READSB (LUBFR,IRET2) - IF (IRET2 .LT. 0) THEN - 22 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF (IRET1 .LT. 0) GOTO 50 - IF(SUBSET .EQ. 'SATWND' ) GOTO 20 - GOTO 22 - END IF -C -C----------------------------------------------------------------------| -C READ IN THE STATION INFORMATION | -C----------------------------------------------------------------------| -C - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C PRINT 119,HDR(1),HDR(6) - 119 FORMAT(' STATION ',A8,' subtype ',F10.1) -C -C MAKE SURE THIS STATION IS WITHIN THE LAT/LONG LIMITS -C - IF((HDR(3) .GT. RLIMS(1)) .OR. (HDR(3) .LT. RLIMS(2))) - 1 GOTO 20 - IF((HDR(2) .LT. RLIMS(3)) .OR. (HDR(2) .GT. RLIMS(4))) - 1 GOTO 20 -C -C----------------------------------------------------------------------| -C UNPACK THE BUFR REPORT -C----------------------------------------------------------------------| -C - IF((HDR(6) .GE. 240.) .AND. (HDR(6) .LE. 246.))THEN - CALL UFBINT (LUBFR, CRR, 5, 255, NRET2, CATH) -C PRINT *,'SATWNDS ',CRR(2,1),CRR(3,1) - DATA(1) = HDR(3) - DATA(2) = HDR(2) - DATA(3) = CRR(1,1) - DATA(4) = CRR(2,1) - DATA(5) = CRR(3,1) - DATA(6) = CRR(4,1) -C PRINT *,' DATA ',(DATA(KK),KK=1,6) - ELSE - GOTO 20 - END IF - RETURN -C - 50 IRET = -1 - RETURN - END -c -c************************************************************** -c - subroutine hbull -c reads quality controlled hurricane bulletins from either: -c $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -c $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL -c and writes putlab call information and box drawing -c information for use downstream by bedient packing -c and drawing program sixbitb2. Input is fortran -c unit 31 and output is fortran unit 74. - -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. - - - COMMON/PACKRA/IRAS(10) - - character*10 names(16) - character*128 clines(100) - character*128 cline - character*128 dumy2k - character*10 cname - character*13 cdate - character*2 c2 - character*80 cout,cnull - - print *, ' ' - print *, ' ===> ENTERING SUBROUTINE HBULL' - print *, ' ' - - write(c2,'(i2.2)') iras(7) - - cnull='NO TROPICAL CYCLONE ACTIVITY REPORTED' - icount=0 - icounta=0 - klines=0 - names='xxxxxxxxxx' - - do k=1,100 - read(31,fmt='(a128)',end=9) cline - -C AT THIS POINT WE DO NOT KNOW IF A 2-DIGIT YEAR BEGINS IN COLUMN 20 -C OF THE RECORD (OLD NON-Y2K COMPLIANT FORM) OR IF A 4-DIGIT YEAR -C BEGINS IN COLUMN 20 (NEW Y2K COMPLIANT FORM) - TEST ON LOCATION OF -C LATITUDE N/S INDICATOR TO FIND OUT ... - - if(cline(35:35).eq.'N' .or. - . cline(35:35).eq.'S') then - -C ... THIS RECORD STILL CONTAINS THE OLD 2-DIGIT FORM OF THE YEAR - -C ... THIS PROGRAM WILL CONVERT THE RECORD TO A 4-DIGIT YEAR USING THE -C "WINDOWING" TECHNIQUE SINCE SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 2-digit year "',cline(20:21),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - DUMY2K(1:19) = cline(1:19) - IF(cline(20:21).GT.'20') THEN - DUMY2K(20:21) = '19' - ELSE - DUMY2K(20:21) = '20' - ENDIF - DUMY2K(22:128) = cline(20:126) - cline = DUMY2K - PRINT *, ' ' - PRINT *, '==> 2-digit year converted to 4-digit year "', - . cline(20:23),'" via windowing technique' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - ELSE IF(cline(37:37).eq.'N' .OR. - . cline(37:37).eq.'S') THEN - -C ... THIS RECORD CONTAINS THE NEW 4-DIGIT FORM OF THE YEAR -C ... NO CONVERSION NECESSARY SINCE THIS SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 4-digit year "',cline(20:23),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - PRINT *, '==> No conversion necessary' - PRINT *, ' ' - ELSE - PRINT *, ' ' - PRINT *, '***** Cannot determine if this record contains ', - . 'a 2-digit year or a 4-digit year - skip it and try ', - . 'reading the next record' - PRINT *, ' ' - CYCLE - END IF - - clines(k)=cline - klines=k - enddo - - 9 continue - - LOOP1: do k=klines,1,-1 - cline=clines(k) - print *, ' ' - print *, 'Look at record: ',cline - print *, ' ' - - LOOP1n1: do j=1,16 - -c look for same name and time - - if(cline(29:30) .ne. c2) then - print *, ' ' - print *, 'Do not process this record because its hour ', - . '(=',cline(29:30),') is different than the ', - . 'cycle hour (=',c2,')' - print *, ' ' - cycle LOOP1 - endif - if(cline(6:6) .eq. '8' .or. cline(6:6) .eq. '9') then - print *, ' ' - print *, 'Do not process this record because it is a ', - . 'test storm, storm id =',cline(6:7) - print *, ' ' - cycle LOOP1 - endif - if(names(j) .eq. cline(10:19) .and. - . names(j) .ne. 'NAMELESS' ) then - print *, ' ' - print *, 'Do not process this record because it has a', - . ' name that has already been processed (name=', - . cline(10:19),')' - print *, ' ' - cycle LOOP1 - endif - print *, ' ' - print *, 'NAMES ',cline(10:19),names(j) - print *, ' ' - enddo LOOP1n1 - - LOOP1n2: do j=1,16 - -c assign new name - - print *, ' ' - print *, 'threeloop' - print *, ' ' - if(names(j) .eq. 'xxxxxxxxxx' ) then - names(j)=cline(10:19) - cname=cline(10:19) - cdate=cline(20:32) - -c - On rare occasions, upstream program QCTROPCY can stamp a 'C' into -c character 67 - this had resulted in a failure in this program -c (note 104 format). Change by Keyser (08/10/1998) uses 9104 format -c if mwind < 100 . - - if(cline(67:67).eq.'1') then - read(cline,104)latd,lond,idir,isp,icp,mwind - 104 format(33x,i3,2x,i4,x,i4,i4,x,i4,10x,i3) - else - read(cline,9104)latd,lond,idir,isp,icp,mwind -9104 format(33x,i3,2x,i4,x,i4,i4,x,i4,11x,i2) - end if - flat=latd/10. - flon=lond/10. - fdir=idir - fsp=isp/10. - central_pressure=icp - - write(cout,105) cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - ic=530+10*j - iatl=0 - ipac=0 - if(lond -latd .lt. 800) iatl =1 - if(lond-latd .gt. 720 .and. latd .lt. 150) ipac=1 - if(lond-latd .gt. 800 ) ipac=1 - -c test for atlantic or Pacific storm - - if(iatl .eq. 1) then - icounta=icounta+1 - ic=icounta*20+620 -ccccc ic=icounta*20+520 - write(74,114) 'PUTLA ',ic, - . '6420 01.0 90.0 038 1 0 0 ',cout(1:80) - endif - if(ipac .eq. 1) then - icount=icount+1 - ic=icount*20+520 - write(74,114) 'PUTLA ',ic, - . '4201 01.0 90.0 038 1 0 0 ',cout(1:80) - endif -ccccc write(74,114) 'PUTLA ',ic,'4201 04.0 90.0 080 1 0 0 ', -ccccc. cout(1:80) - 114 format(a6,i5,a27,a80) - print 105, cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - 105 format(a10,x,a13,x,f4.1,a1,x,f5.1,a1,x,a3,f6.0,x,a3,f5.1, - . a5,x,f6.1,' MB',i3,'M/SEC' ) - if(cline(37:37).eq. 'S') flat=-flat - if(cline(43:43).eq. 'W') flon=360-flon - call maptra(flat,flon,uu,vv) - if ((mwind*2.24) .gt. 38) then - call plchhq(uu,vv,':F35:m',7.5,0.,0.) - else - call plchhq(uu,vv,':F30:TD',2.0,0.,0.) - call plchhq(uu,vv,':F37:S',6.0,0.,0.) - endif - if((mwind*2.24) .gt. 74.) then - -c close hurricane symbol with black fill - - call plchhq(uu,vv-0.005,':F37:Z',4.5,0.,0.) - endif - call gslwsc(3.0) - call plchmq(uu+0.02,vv-0.055,cname,2.5,0.,0.) - call gslwsc(1.0) - exit LOOP1n2 - endif - enddo LOOP1n2 - enddo LOOP1 -ccccc isizea=(icounta+1)/2 +2 - isize=(icount+1)/2 +2 - isize=icount+2 - isizea=icounta+2 - if(isize .eq. 2) then - write(74,114)'PUTLA ',540,'4201 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isize=isize+1 - print *, cnull(1:80) - endif - if(isizea .eq. 2) then - write(74,114)'PUTLA ',640,'6420 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isizea=isizea+1 - print *, cnull(1:80) - endif - write(74,115)'BOX ',510,4190,isize,25 - write(74,115)'BOX ',610,6401,isizea,25 - 115 format(a4,2i5,i5,i5) - - print *, ' ' - print *, ' ===> LEAVING SUBROUTINE HBULL' - print *, ' ' - - return - - end - -c************************************************************** - diff --git a/sorc/gettrk.fd/cwaitfor.c b/sorc/gettrk.fd/cwaitfor.c deleted file mode 100644 index a30c3c9d97..0000000000 --- a/sorc/gettrk.fd/cwaitfor.c +++ /dev/null @@ -1,67 +0,0 @@ -#include -#include -#include -#include -#include -#include - -void c_run_command(int *retval,char *cmd) { - *retval=system(cmd); -} - -void cwaitfor(int *status, int *minage, int *minsize, int *maxwait, - int *sleeptime, char *filename) { - struct stat s; - time_t now=time(NULL); - int maxwaitv=*maxwait; - int size,age; - fprintf(stderr,"%s: cwaitfor with minage=%d minsize=%d maxwait=%d=%d sleeptime=%d\n", - filename,*minage,*minsize,*maxwait,maxwaitv,*sleeptime); - while(maxwaitv<0 || time(NULL)-now=*minsize && age>*minage) { - fprintf(stderr,"%s: ready.\n",filename); - *status=0; - return; - } else { - fprintf(stderr,"%s: Not ready yet. Size=%d, age=%d, min size=%d, min age=%d\n", - filename,size,age,*minsize,*minage); - } - } else { - fprintf(stderr,"%s: cannot stat: %d\n",filename,errno); - } - fprintf(stderr,"%s: sleep %d\n",filename,*sleeptime); - sleep(*sleeptime); - } - - *status=1; - return; -} - -void c_run_command_(int*r,char*c) { c_run_command(r,c); } -void c_run_command__(int*r,char*c) { c_run_command(r,c); } -void C_RUN_COMMAND(int*r,char*c) { c_run_command(r,c); } -void C_RUN_COMMAND_(int*r,char*c) { c_run_command(r,c); } -void C_RUN_COMMAND__(int*r,char*c) { c_run_command(r,c); } - -void cwaitfor_(int*a,int*b,int*c,int*d,int*e,char*f) { - cwaitfor(a,b,c,d,e,f); -} - -void cwaitfor__(int*a,int*b,int*c,int*d,int*e,char*f) { - cwaitfor(a,b,c,d,e,f); -} - -void CWAITFOR(int*a,int*b,int*c,int*d,int*e,char*f) { - cwaitfor(a,b,c,d,e,f); -} - -void CWAITFOR_(int*a,int*b,int*c,int*d,int*e,char*f) { - cwaitfor(a,b,c,d,e,f); -} - -void CWAITFOR__(int*a,int*b,int*c,int*d,int*e,char*f) { - cwaitfor(a,b,c,d,e,f); -} diff --git a/sorc/gettrk.fd/gettrk_main.f b/sorc/gettrk.fd/gettrk_main.f deleted file mode 100644 index a813b0067a..0000000000 --- a/sorc/gettrk.fd/gettrk_main.f +++ /dev/null @@ -1,19707 +0,0 @@ - program trakmain -c -c$$$ MAIN PROGRAM DOCUMENTATION BLOCK -c -c Main Program: GETTRK Track model vortices -C PRGMMR: MARCHOK ORG: NP22 DATE: 2002-05-20 -c -c ABSTRACT: This program tracks the average of the max or min -c of several parameters in the vicinity of an input -c first guess (lat,lon) position of a vortex in order to give -c forecast position estimates for that vortex for a given numerical -c model. For the levels 700 & 850 mb, the tracked parameters are: -c Relative vorticity (max), wind magnitude (min), and geopotential -c height (min). Also tracked is the min in the MSLP. So many -c parameters are tracked in order to provide more accurate position -c estimates for weaker storms, which often have poorly defined -c structures/centers. Currently, the system is set up to be able -c to process GRIB input data files from the GFS, MRF, UKMET, GDAS, -c ECMWF, NGM, NAM and FNMOC/NOGAPS models. Two 1-line files -c are output from this program, both containing the forecast fix -c positions that the tracker has obtained. One of these output -c files contains the positions at every 12 hours from forecast -c hour 0 to the end of the forecast. The other file is in ATCF -c format, which is the particular format needed by the Tropical -c Prediction Center, and provides the positions at forecast hours -c 12, 24, 36, 48 and 72, plus the maximum wind near the storm center -c at each of those forecast hours. -c -c Program history log: -c 98-03-16 Marchok - Original operational version. -c 98-07-15 Marchok - Added code to calculate radii of gale-, storm-, -c and hurricane-force winds in each quadrant. -c 99-04-01 Marchok - Added code to be able to read in 4-digit years -c off of the TC Vitals records. -c Added code, including subroutine is_it_a_storm, -c to make a better determination of whether or -c not the center that was found at each time is -c the center of a storm, and not just a passing -c vort max, etc. -c 99-06-15 Marchok - Fixed a bug in calcdist that was triggered by a -c rounding error sending a number just above 1 -c into ACOS to get the distance between 2 -c identical points (which, obviously, is 0). -c 00-06-20 Marchok - Added GDAS option for vortex relocation work. -c Changed nhalf from 3 to 5. Relaxed the -c requirements for pthresh and vthresh. -c 00-11-30 Marchok - Added ability to handle GFDL and NCEP Ensemble -c model data. Extended time range to be able to -c handle 5-day capability. Forecast hours are -c now input via a namelist (easiest way to account -c for NAM, GFS and GFDL having different forecast -c lengths at 00/12z and 06/18z). Model ID's are -c now input via a namelist (makes it easier, for -c example, to run for many different ensemble -c members). Added new output, the atcfunix -c format, needed for 5-day forecasts. -c 01-08-24 Marchok Fixed a bug in rvcal and getgridinfo. When a -c grid that was south-->north is flipped in -c conv1d2d_real to be north-->south, the scanning -c mode flag remains 64 and what we would consider -c the max and min latitudes are reversed, so I -c added code to correct this in both routines. -c 02-05-20 Marchok Weakened the mslp gradient threshold and v850 -c threshold in is_it_a_storm to cut down on the -c number of dropped storms. -c 03-03-18 Marchok Fixed a bug in get_ij_bounds that was allowing -c a cos(90) and cos(-90), which then led to a -c divide by zero. -c 05-08-01 Marchok Updated to allow tracking of ECMWF hi-res, ECMWF -c ensemble, CMC hi-res, CMC ensemble, NCEP -c ensemble. -c 06-11-07 Marchok Updated to locate, and report to the atcfunix -c file, the value of the gridpoint minimum value -c of mslp. Previously, the barnes-averaged -c value had been used. -c 08-01-10 Marchok Changed the storm ID for genesis tracking so -c that the ID includes info -c on storm detection location & time. Added -c algorithms for Hart's cyclone phase space. -c Added new output fields to the atcfunix -c records, actually creating a modified atcfunix -c record, to include things such as the mean & -c max values of zeta850 & zeta700 centered on -c the storm, the speed & direction of storm -c translation, and the Hart CPS parameters. -c 10-01-07 Marchok - input grib lead time can be hrs or minutes -c - added code for warm core check -c - added code to detect genesis -c - added code to report on sfc wind structure -c - added buffer ("grid_buffer") to avoid fixing -c center to boundaries on regional grids -c - modified rvcal to report missing zeta values -c as background coriolis instead of -999, since -c the -999 was messing up center-fixing -c - added 10-m wind and sfc zeta as center-fixing -c parms. -c -c 10-05-25 Slocum Add verbose feature to code -c 0 = Not terminal output, 1 = error messages only -c 2 = all output -c -c 10-05-26 Marchok - added flags and code to check the temporal -c consistency of the mslp closed contour and -c Vt850 checks for tcgen and midlat cases. -c -c Input files: -c unit 11 Unblocked GRIB1 file containing model data -c unit 12 Text file containing TC Vitals card for current time -c unit 31 Unblocked GRIB index file -c -c Output files: -c unit 61 Output file with forecast positions every 12h from -c vt=00h to the end of the forecast -c unit 62 Output file in ATCF format, with forecast positions -c at vt = 12, 24, 36, 48 and 72h, plus wind speeds. -c unit 63 Output file with forecast wind radii for 34, 50 and -c 64 knot thresholds in each quadrant of each storm. -c -c Subprograms called: -c read_nlists Read input namelists for input date & storm number info -c read_tcv_card Read TC vitals file to get initial storm position -c getgridinfo Read GRIB file to get basic grid information -c tracker Begin main part of tracking algorithm -c -c Attributes: -c Language: Standard Fortran_90 -c -c$$$ -c -c------- -c -c LOCAL: -c -c ifhours: Integer array holding numerical forecast times for -c the input model (99 = no more times available). -c These values are read in via a namelist. -c Model numbers used: (1) GFS, (2) MRF, (3) UKMET, (4) ECMWF, -c (5) NGM, (6) NAM, (7) NOGAPS, (8) GDAS, -c (10) NCEP Ensemble, (11) ECMWF Ensemble (13) SREF -c Ensemble, (14) NCEP Ensemble (from ensstat mean -c fields), (15) CMC, (16) CMC Ensemble, (17) HWRF, -c (18) HWRF Ensemble, (19) HWRF-DAS (HDAS), -c (20) Ensemble RELOCATION (21) UKMET hi-res (NHC) -c stormswitch: This switch tells how to handle each storm in -c the TCV file: -c 1 = process this storm for this forecast hour. -c 2 = Storm was requested to be tracked, but either -c the storm went off the grid (regional models), -c the storm dissipated, or the program was -c unable to track it. -c 3 = Storm was NOT requested to be tracked at all. -c storm: An array of type tcvcard. Each member of storm -c contains a separate TC Vitals card. -c maxstorm: Maximum number of storms the system is set up to -c handle at any 1 time. -c slonfg,slatfg: Holds first guess positions for storms. The -c very first, first guess position is read from the -c TC vitals card. (maxstorm,maxtime) -c clon,clat: Holds the coordinates for the center positions for -c all storms at all times for all parameters. -c (max_#_storms, max_fcst_times, max_#_parms) -c - USE def_vitals; USE inparms; USE set_max_parms; USE level_parms - USE trig_vals; USE atcf; USE trkrparms; USE verbose_output -c - implicit none -c - logical(1) file_open - integer date_time(8) - character (len=10) big_ben(3) - integer itret,iggret,iicret,igcret,iret,ifhmax,maxstorm,numtcv - integer iocret - integer, parameter :: lugb=11,lugi=31,lucard=12,lgvcard=14,lout=51 -c - type (datecard) inp - type (trackstuff) trkrinfo - -c -------------------------------------------------------- - - call date_and_time (big_ben(1),big_ben(2),big_ben(3),date_time) - write (6,31) date_time(5),date_time(6),date_time(7) - 31 format (1x,'TIMING: beginning ... ',i2.2,':',i2.2,':',i2.2) - - call w3tagb('GETTRK ',1999,0104,0058,'NP22 ') - - pi = 4. * atan(1.) ! Both pi and dtr were declared in module - dtr = pi/180.0 ! trig_vals, but were not yet defined. -c - call read_nlists (inp,trkrinfo) - - call read_fhours (ifhmax) - - call read_tcv_card (lucard,maxstorm,trkrinfo,numtcv,iret) - - if (iret == 0) then - if ( verb .ge. 3 ) then - print *,'After read_tcv_card, num vitals = ',numtcv - endif - else - if ( verb .ge. 1 ) then - print '(/,a50,i4,/)','!!! ERROR: in read_tcv_card, rc= ',iret - endif - goto 890 - endif - - call read_gen_vitals (lgvcard,maxstorm,trkrinfo,numtcv,iret) - - if (iret == 0) then - if ( verb .ge. 3 ) then - print *,'After read_gen_vitals, total number of vitals (both' - & ,' TC and non-TC) now = ',numtcv - endif - else - if ( verb .ge. 1 ) then - print '(/,a50,i4,/)','!!! ERROR: in read_gen_vitals, rc= ' - & ,iret - endif - goto 890 - endif - - if (inp%file_seq == 'onebig') then - call open_grib_files (inp,lugb,lugi,'dummy','dummy',lout,iret) - if (iret /= 0) then - if ( verb .ge. 1 ) then - print '(/,a50,i4,/)','!!! ERROR: in open_grib_files, rc= ' - & ,iret - endif - goto 890 - endif - endif - - call tracker (inp,maxstorm,numtcv,ifhmax,trkrinfo,itret) -c -890 continue - - igcret=0 - iicret=0 - iocret=0 - - inquire (unit=lugb, opened=file_open) - if (file_open) call baclose(lugb,igcret) - inquire (unit=lugi, opened=file_open) - if (file_open) call baclose(lugi,iicret) - inquire (unit=lout, opened=file_open) - if (file_open) call baclose(lout,iocret) - if ( verb .ge. 3 ) then - print *,'baclose: igcret= ',igcret,' iicret= ',iicret - print *,'baclose: iocret= ',iocret - endif - call w3tage('GETTRK ') -c - stop - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine tracker (inp,maxstorm,numtcv,ifhmax,trkrinfo,itret) -c -c ABSTRACT: This subroutine is the core of the program. It contains -c the main loop for looping through all the forecast hours and all -c the storms. Basically, the way it works is that it has an outer -c loop that loops on the forecast hour. At the beginning of this -c loop, the data are read in for all parameters and levels needed -c for tracking. The full regional or global grid is read in. -c If vorticity was not read in (some of the centers do not send us -c vorticity), then vorticity calculations are done on the whole -c grid at both 850 and 700 mb. Then the program goes into the inner -c loop, which loops on storm number (program originally set up to -c handle a max of 15 storms). For each storm, subroutine -c find_maxmin is called for the following parameters: Rel Vort and -c geopotential hgt at 700 & 850 mb, and MSLP. Within find_maxmin, -c a barnes analysis is performed over the guess position of the -c storm to find the max or min value, and then iteratively, the -c grid size is cut in half several times and the barnes analysis -c rerun to refine the positioning of the max or min location. After -c the center positions for these parameters have been obtained, -c subroutine get_uv_center is called to get a center fix for the -c minimum in the wind field, specifically, a minimum in the -c magnitude of the wind speed (vmag). The calculation of the vmag -c minimum is done differently than the calculation for the other -c parameters; for vmag, the grid near the storm center guess -c position is interpolated down to a very fine grid, and then -c find_maxmin is called and a barnes analysis is done on that -c smaller grid. For vmag, there are no further calls made to barnes -c with a smaller grid, since the grid has already been interpolated -c down to a smaller grid. Once all of the parameter center fixes -c have been made, subroutine fixcenter is called to average these -c positions together to get a best guess fix position. Then a check -c is done with a call to subroutine is_it_a_storm to make sure that -c the center that we have found does indeed resemble a tropical -c cyclone. Finally, subroutine get_next_ges is called to make a -c guess position for the next forecast time for this storm. -c -c INPUT: -c inp contains input date and model number information -c maxstorm maximum # of storms to be handled -c numtcv number of storms read off of the tcvitals file -c ifhmax max number of analysis & forecast times to be handled -c trkrinfo derived type that holds/describes various tracker parms -c -c OUTPUT: -c itret return code from this subroutine -c -c LOCAL PARAMETERS: -c storm contains the tcvitals for the storms -c stormswitch 1,2 or 3 (see more description under Main pgm section) -c slonfg first guess array for longitude -c slatfg first guess array for latitude -c maxtime Max number of forecast times program can track -c maxtp Max number of tracked parameters program will track. -c Currently (7/97), this maxtp is 9, and these 9 are -c listed just a few lines below. -c readflag L Indicates status of read for each of 13 parms: -c 1: 850 mb absolute vorticity -c 2: 700 mb absolute vorticity -c 3: 850 mb u-comp -c 4: 850 mb v-comp -c 5: 700 mb u-comp -c 6: 700 mb v-comp -c 7: 850 mb gp hgt -c 8: 700 mb gp hgt -c 9: MSLP -c 10: near-surface u-comp -c 11: near-surface v-comp -c 12: 500 mb u-comp -c 13: 500 mb v-comp -c 14: Mean temperature, centered at 400 mb -c -c calcparm L indicates which parms to track and which not to. -c Array positions are defined exactly as for clon -c and clat, listed next, except that, in general, when -c flag 3 is set to a value, flag 4 is set to the same -c value as 3, and when flag 5 is set to a value, flag -c 6 is set to the same value as 5. This is because -c 3 & 4 are for the 850 mb winds, and if either u or -c v is missing, we obviously can't calculate the -c magnitude of the wind. The same applies for 5 & 6, -c which are for the 700 mb winds. -c clon,clat: Holds the coordinates for the center positions for -c all storms at all times for all parameters. -c (max_#_storms, max_fcst_times, max_#_parms). -c For the third position (max_#_parms), here they are: -c 1: Relative vorticity at 850 mb -c 2: Relative vorticity at 700 mb -c 3: Vector wind magnitude at 850 mb -c 4: NOT CURRENTLY USED -c 5: Vector wind magnitude at 700 mb -c 6: NOT CURRENTLY USED -c 7: Geopotential height at 850 mb -c 8: Geopotential height at 700 mb -c 9: Mean Sea Level Pressure -c 10: Vector wind magnitude at 10 m -c 11: Relative vorticity at 10 m -c xmaxwind Contains maximum near-surface wind near the storm -c center for each storm at each forecast hour. -c stderr Standard deviation of the position "errors" of the -c different parameters for each storm at each time. -c fixlat,fixlon: Contain the final coordinates for each storm at -c each forecast hour. These coordinates are a -c weighted average of all the individual parameter -c positions (hgt, zeta, mslp, vmag). -c cvort_maxmin: Contains the characters 'max' or 'min', and is -c used when calling the find_maxmin routine for the -c relative vorticity (Look for max in NH, min in SH). -c vradius Contains the distance from the storm fix position to -c each of the various near-surface wind threshhold -c distances in each quadrant. -c (3,4) ==> (# of threshholds, # of quadrants) -c See subroutine getradii for further details. -c wfract_cov Fractional coverage (areal coverage) of winds -c exceeding a certain threshold (34, 50, 64 kts) in -c each quadrant. -c (5,5,3) ==> (# of quadrants + 1, # of distance bins, -c # of thresholds). -c The "extra" array size for quadrants (5, instead of 4) -c is there to hold the total (i.e., "whole disc") -c statistics. -c See subroutine get_fract_wind_cov for further details -c -c er_wind Quadrant winds in earth-relative framework -c sr_wind Quadrant winds in storm-relative framework -c er_vr Quadrant radial winds in earth-relative framework -c sr_vr Quadrant radial winds in storm-relative framework -c er_vt Quadrant tangential winds in earth-relative framework -c sr_vt Quadrant tangential winds in storm-relative framework -c -c isastorm Character array used in the call to is_it_a_storm, -c tells whether the minimum requirement for an MSLP -c gradient was met (isastorm(1)), whether for the midlat -c and tcgen cases if a closed mslp contour was found -c (isastorm(2)), and if a circulation exists at 850 mb -c (isastorm(3)). Can have a value of 'Y' (requirement -c met), 'N' (requirement not met) or 'U' (requirement -c undetermined, due to the fact that no center location -c was found for this parameter). -c maxmini These 2 arrays contain the i and j indeces for the -c maxminj max/min centers that are found using the rough check -c in first_ges_ctr and subsequent routines. Only needed -c for a midlatitude or a genesis run, NOT needed for a -c TC tracker run. -c stormct Integer: keeps and increments a running tab of the -c number of storms that have been tracked at any time -c across all forecast hours. Used only for midlat or -c tcgen runs. -c gridprs This contains the actual value of the minimum pressure -c at a gridpoint. The barnes analysis will return an -c area-averaged value of pressure; this variable will -c contain the actual minimum value at a gridpoint near -c the lat/lon found by the barnes analysis. -c closed_mslp_ctr_flag This flag keeps track of the value of the -c closed contour flag returned from subroutine -c check_closed_contour. -c vt850_flag This flag keeps track of the value of the flag for -c the 850 mb Vt check. -c----- -c - USE def_vitals; USE inparms; USE tracked_parms; USE error_parms - USE set_max_parms; USE level_parms; USE grid_bounds; USE trkrparms - USE contours; USE atcf; USE radii; USE trig_vals; USE phase - USE gen_vitals; USE structure; USE verbose_output - USE waitfor_parms; USE module_waitfor -c - implicit none -c - type (datecard) inp - type (trackstuff) trkrinfo - type (cint_stuff) contour_info -c - character, allocatable :: closed_mslp_ctr_flag(:,:)*1 - character, allocatable :: vt850_flag(:,:)*1 - character :: r34_check_okay*1 - character :: need_to_expand_r34(4)*1 - integer, parameter :: nparms=14 - real, allocatable :: prstemp(:),iwork(:) - integer, parameter :: numdist=14,numquad=4,lout=51 - integer, allocatable :: prsindex(:) - integer imax,jmax,ifh,ist,irf,jj,istmp,ifhtemp,itret,ivpa - integer isiret1,isiret2,isiret3,idum,m,iix,jjx,imode,numtcv - integer iha,isa,iua,iva,iza,maxstorm,ivort,ifix,jfix,issret - integer imoa,imoca,iksa,isda,ileadtime,leadtime_check - integer ioaret,ioaxret,ifgcret,ifmret,igugret,isoiret,icccret - integer igrret,igmwret,iorret,ignret,iovret,icbret,igucret,ita - integer ifilret,ifret,iaret,isret,iotmret,iwa,iisa,sl_counter - integer iicret,igcret,pfcret - logical(1), allocatable :: valid_pt(:,:) - logical(1), allocatable :: masked_outc(:,:),masked_out(:,:) - logical(1) readflag(nparms),calcparm(maxtp,maxstorm) - logical(1) tracking_previously_known_storms - logical(1) need_to_flip_lats,need_to_flip_lons - logical(1) file_open - character cvort_maxmin*3,isastorm(3)*1,ccflag*1,gotten_avg_value*1 - character cmaxmin*3,get_last_isobar_flag*1,wcore_flag*1 - character gfilename*120,ifilename*120,gridmove_status*7 - integer vradius(3,4),igridzeta(nlevm1),imeanzeta(nlevm1) - integer maxmini(maxstorm),maxminj(maxstorm),pdf_ct_bin(16) - integer ifcsthour,stormct,prevstormct,kf,istmspd,istmdir,iggret - integer igiret,iuret,jdum,icount,ilonfix,jlatfix,igpret,ifhmax - integer ibeg,jbeg,iend,jend,ix1,ix2,n,ilev,npts,icpsa,igzvret - integer igfwret,ioiret,igisret,iofwret,iowsret,igwsret,igscret - integer pdf_ct_tot,lugb,lugi,iret,icmcf,iccfh,ivt8f - integer waitfor_gfile_status,waitfor_ifile_status - integer wait_max_ifile_wait,ivr,r34_good_ct - integer date_time(8) - character (len=10) big_ben(3) - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real gridprs(maxstorm,maxtime) - real wfract_cov(5,5,3) - real er_wind(numquad,numdist) - real sr_wind(numquad,numdist) - real er_vr(numquad,numdist) - real er_vt(numquad,numdist) - real sr_vr(numquad,numdist) - real sr_vt(numquad,numdist) - real ike(max_ike_cats) - real clon(maxstorm,maxtime,maxtp) - real clat(maxstorm,maxtime,maxtp) - real xmaxwind(maxstorm,maxtime),xmeanzeta - real stderr(maxstorm,maxtime),xval(maxtp),cps_vals(3) - real gridpoint_maxmin,dist,distnm,xknots,xmaxspeed - real uvgeslon,uvgeslat,xavg,stdv,search_cutoff,re,ri,dx,dy - real xinp_fixlat,xinp_fixlon,degrees,plastbar,rlastbar - real xinterval_fhr,cc_time_sum_tot,cc_time_sum_yes - real max_mslp_850,rmax,sdp,wdp,paramb,vtl_slope,vtu_slope - real xsfclon,xsfclat,cc_time_pct,radmax,r34_dist_thresh - real prev_latmax,prev_latmin,prev_lonmax,prev_lonmin - real vradius_km,hold_old_contint,tcv_max_wind_ms - real tcv_mslp_pa,r34_from_tcv,roci_from_tcv - real proci_from_tcv - - character(pfc_cmd_len) :: pfc_final -c - prev_latmax = -999.0 - prev_latmin = -999.0 - prev_lonmax = -999.0 - prev_lonmin = -999.0 - - icmcf = 0 - ivt8f = 0 - if (trkrinfo%type == 'midlat' .or. trkrinfo%type == 'tcgen') then - allocate (closed_mslp_ctr_flag(maxstorm,ifhmax),stat=icmcf) - allocate (vt850_flag(maxstorm,ifhmax),stat=ivt8f) - ! Initialize flags to 'u', not 'n'. That way, - ! when we are evaluating its value back over recent past hours, - ! we can distinguish a "no" value from an initialized value of - ! 'u' for which a storm hadn't yet been detected. - closed_mslp_ctr_flag = 'u' - vt850_flag = 'u' - endif - - allocate (prsindex(maxstorm),stat=iisa) - allocate (prstemp(maxstorm),stat=iva) - allocate (iwork(maxstorm),stat=iwa) - if (iisa /= 0 .or. iva /= 0 .or. iwa /= 0 .or. icmcf /= 0 .or. - & ivt8f /= 0) then - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in sub tracker allocating prsindex,' - print *,'!!! prstemp or iwork array for storms: iisa = ',iisa - print *,'!!! iva= ',iva,' iwa= ',iwa,' icmcf= ',icmcf - print *,'!!! ivt8f= ',ivt8f - endif - itret = 94 - return - endif - - ike = 0.0 - sdp = 0.0 - wdp = 0.0 - - clon = 0.0 - clat = 0.0 - stderr = stermn ! initialize stderr to 0.1 (error_parms) - itret = 0 - xmaxwind = 0.0 - stormct = 0 - - ! It is critical to initialize the gridprs array to something - ! greater than normal atmospheric pressures (I've chosen 9999.99 - ! mb). This is so that in the sort on pressure before stormloop, - ! the top of the sorting index array will be filled with pressure - ! values from active storms, while those inactive 9999 storms - ! will fill the bottom of the sorting index array (prsindex). - - gridprs = 999999.0 - fixlon = -999.0 - fixlat = -999.0 - - if (inp%file_seq == 'multi') then - ! Each tau will have a separate file, starting with unit - ! number 300 (GRIB data) and 800 (GRIB index file) and - ! incrementing upwards from there for each tau. - lugb = 300 - lugi = 800 - else - ! All lead times are included in one big file. These values - ! for lugb and lugi will remain static for all taus. - lugb = 11 - lugi = 31 - endif - - ifh = 1 - - if ( verb .ge. 3 ) then - print *,'top of tracker, ifh= ',ifh,' ifhmax= ',ifhmax - endif - - ifhloop: do while (ifh <= ifhmax) - - if ( verb .ge. 3 ) then - print *,' ' - print *,'*-------------------------------------------*' - write (6,402) ifhours(ifh),ifclockmins(ifh) - 402 format (1x,'* New forecast hour: ',i4,':',i2.2) - print *,'*-------------------------------------------*' - endif - - if (inp%file_seq == 'multi') then - lugb = lugb + 1 - lugi = lugi + 1 - - call get_grib_file_name (ifh,gfilename,ifilename) - - if (use_waitfor == 'y') then - - ! First check for existence of grib file.... - - call waitfor(trim(gfilename),waitfor_gfile_status,wait_min_age - & ,wait_min_size,wait_max_wait,wait_sleeptime) - if (waitfor_gfile_status /= 0) then - print *,' ' - write(6,405) - write(6,406) wait_max_wait,trim(gfilename) - 405 format('ERROR: TIMEOUT from waitfor for GRIB file.') - 406 format('Waited longer than ',I0,' seconds for "',A,'"') - stop 91 - endif - - ! Now check for existence of index file. Use a separate - ! max_wait time -- a much shorter one -- since once the - ! grib file is there, the index file should appear within - ! a matter of seconds. Also, the index file is much - ! smaller, so set the wait_min_size accordingly. - - wait_max_ifile_wait = 180 - wait_min_size = 500 - call waitfor(trim(ifilename),waitfor_ifile_status,wait_min_age - & ,wait_min_size,wait_max_ifile_wait,wait_sleeptime) - if (waitfor_ifile_status /= 0) then - print *,' ' - write(6,415) - write(6,416) wait_max_ifile_wait,trim(ifilename) - 415 format('ERROR: TIMEOUT from waitfor for INDEX file.') - 416 format('Waited longer than ',I0,' seconds for "',A,'"') - stop 91 - endif - - endif - - call open_grib_files (inp,lugb,lugi,gfilename,ifilename - & ,lout,iret) - - if (iret /= 0) then - print '(/,a50,i4,/)','!!! ERROR: from open_grib_files, rc= ' - & ,iret - print *,'!!! Files after hour0 are missing, exiting normally' - stop 0 - endif - endif - - print *,'TEST before getgridinfo in sub tracker' - - inquire (unit=lugb, opened=file_open) - if (file_open) then - print *,'TEST b4 getgridinfo, unit lugb= ',lugb,' is OPEN' - else - print *,'TEST b4 getgridinfo, unit lugb= ',lugb,' is CLOSED' - endif - - inquire (unit=lugi, opened=file_open) - if (file_open) then - print *,'TEST b4 getgridinfo, unit lugi= ',lugi,' is OPEN' - else - print *,'TEST b4 getgridinfo, unit lugi= ',lugi,' is CLOSED' - endif - - call getgridinfo (imax,jmax,ifh,dx,dy,lugb,lugi,trkrinfo - & ,need_to_flip_lats,need_to_flip_lons,inp,iggret) - print *,'TEST after getgridinfo in sub tracker, iggret= ',iggret - - if (iggret /= 0) then - if ( verb .ge. 1 ) then - print '(/,a50,i4,/)','!!! ERROR: in getgridinfo, rc= ' - & ,iggret - endif - stop 95 - endif - - if (inp%modtyp == 'regional' .and. inp%nesttyp == 'moveable') - & then - if (glatmax == prev_latmax .and. glatmin == prev_latmin .and. - & glonmax == prev_lonmax .and. glonmin == prev_lonmin) then - ! The moveable, nested regional grid has not moved since - ! the last lead time. This could be an indication that the - ! model lost the storm and so the grid has not moved to - ! stay with the cyclone center. Set a flag to indicate this. - gridmove_status = 'stopped' - else - gridmove_status = 'moving' - endif - else - gridmove_status = 'notappl' - endif - - prev_latmax = glatmax - prev_latmin = glatmin - prev_lonmax = glonmax - prev_lonmin = glonmin - - gotten_avg_value = 'n' - -c First, allocate the working data arrays.... - - if (allocated(valid_pt)) deallocate (valid_pt) - if (allocated(zeta)) deallocate (zeta) - if (allocated(u)) deallocate (u) - if (allocated(v)) deallocate (v) - if (allocated(hgt)) deallocate (hgt) - if (allocated(slp)) deallocate (slp) - if (allocated(tmean)) deallocate (tmean) - if (allocated(cpshgt)) deallocate (cpshgt) - if (allocated(masked_out)) deallocate (masked_out) - if (allocated(masked_outc)) deallocate (masked_outc) - - ! Allocate all of the allocatable arrays.... - - allocate (valid_pt(imax,jmax),stat=ivpa) - allocate (zeta(imax,jmax,nlevzeta),stat=iza) - allocate (u(imax,jmax,nlevs),stat=iua) - allocate (v(imax,jmax,nlevs),stat=iva) - allocate (hgt(imax,jmax,nlevm1),stat=iha) - allocate (slp(imax,jmax),stat=isa) - allocate (tmean(imax,jmax),stat=ita) - allocate (masked_out(imax,jmax),stat=imoa) - allocate (masked_outc(imax,jmax),stat=imoca) - - ita=0 - icpsa=0 - if (phaseflag == 'y') then - if (phasescheme == 'cps' .or. phasescheme == 'both') then - if (allocated(cpshgt)) deallocate (cpshgt) - allocate (cpshgt(imax,jmax,nlevs_cps),stat=icpsa) - endif - endif - - if (iza /= 0 .or. iua /= 0 .or. iha /= 0 .or. ivpa /= 0 .or. - & iva /= 0 .or. isa /= 0 .or. icpsa /= 0 .or. ita /= 0 .or. - & imoa /= 0 .or. imoca /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in sub tracker allocating arrays.' - print *,'!!! iza = ',iza,' iua= ',iua,' iha= ',iha - print *,'!!! iva = ',iva,' isa= ',isa,' icpsa= ',icpsa - print *,'!!! iksa = ',iksa,' isda= ',isda,' ivpa= ',ivpa - print *,'!!! ita = ',ita,' imoa= ',imoa,' imoca= ',imoca - endif - itret = 94 - return - endif - - masked_out = .false. ! Initialize all pts to false at each hr - masked_outc = .false. ! Initialize all pts to false at each hr - - if ( verb .ge. 3 ) then - print *,'in beginning of tracker, imax= ',imax,' jmax= ',jmax - endif - -c Initialize all readflags to NOT FOUND for this forecast time, -c then call subroutine to read data for this forecast time. - - zeta = -9999.0 - u = -9999.0 - hgt = -9999.0 - v = -9999.0 - slp = -9999.0 - tmean = -9999.0 - - readflag = .FALSE. - - call date_and_time (big_ben(1),big_ben(2),big_ben(3),date_time) - write (6,31) date_time(5),date_time(6),date_time(7) - 31 format (1x,'TIMING: b4 getdata ... ',i2.2,':',i2.2,':',i2.2) - - call getdata (readflag,valid_pt,imax,jmax,ifh - & ,need_to_flip_lats,need_to_flip_lons,inp,lugb,lugi - & ,trkrinfo) - - call date_and_time (big_ben(1),big_ben(2),big_ben(3),date_time) - write (6,32) date_time(5),date_time(6),date_time(7) - 32 format (1x,'TIMING: after getdata ... ',i2.2,':',i2.2,':',i2.2) - -c Count how many parms were successfully read for this fcst time. -c Also, for right now, put the value of readflag into all of the -c calcparms for parameters 3 through 9. Note that in getdata we -c read in 14 parms, but in this next loop we only check the -c readflags up to maxtp (= 11 as of 8/2009). That's because -c parms 12 & 13 are for 500 mb u & v, which are not used for -c tracking, only for calculating the deep layer mean wind for -c the next guess, and parm 14 is the 300-500 mb mean temperature, -c which is used for determining storm phase. Parms 10 & 11 are -c for the near-surface winds, which are used in estimating surface -c winds near the storm, and will now also be used as a secondary -c parameter for position estimates. - - idum = 0 - do irf = 1,maxtp - if (readflag(irf)) idum = idum + 1 - if (irf > 2) then - do jj=1,maxstorm - if (irf == 10 .or. irf == 11) then -ctpm6/14 revert - print *,'Setting calcparm to false for 10m stuff...' - calcparm(irf,jj) = .false. - else - calcparm(irf,jj) = readflag(irf) - endif - enddo - endif - enddo - - if ( verb .ge. 3 ) then - print *,' ' - print *,'Of ',maxtp,' trackable parms, you read in ',idum - print *,'parms for this fcst hour from the input grib file.' - endif - -c If not enough tracked parms were read in, exit the program.... - - if (idum == 0) then - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in subroutine tracker' - print *,'!!! Not enough tracked parms read in from getdata.' - print *,'!!! Check for a problem with the input GRIB file.' - print *,'!!! Model identifier = ',inp%model - print *,'!!! STOPPING EXECUTION FOR THIS MODEL' - endif - itret = 99 - ifhtemp = ifh - do while (ifhtemp <= ifhmax) - do istmp=1,maxstorm - fixlon (istmp,ifhtemp) = -999.0 - fixlat (istmp,ifhtemp) = -999.0 - enddo - ifhtemp = ifhtemp + 1 - enddo - call output_all (fixlon,fixlat,inp,maxstorm,ifhmax,ioaret) - call output_atcf (fixlon,fixlat,inp,xmaxwind,maxstorm,ifhmax - & ,ioaret) - if (ifh == 1) then - ! Per Jim Gross (1/01), if the tracker ran but was unable - ! to get an initial fix (or, in this case, unable to get - ! the data needed to run), write out zeroes for the 00h - ! fixes to indicate that the tracker ran unsuccessfully, - ! but don't write out any subsequent forecast times - ! with zeroes.... - vradius = 0 - cps_vals(1) = -9999.0 - cps_vals(2) = -9999.0 - cps_vals(3) = -9999.0 - wcore_flag = 'u' ! 'u' = initial value of 'undetermined' - do istmp = 1,maxstorm - if (stormswitch(istmp) /= 3) then - ileadtime = nint(fhreal(ifh) * 100.0) - ifcsthour = ileadtime / 100 - call output_atcfunix (-999.0,-999.0,inp,istmp - & ,ifcsthour,0.0,0.0,vradius,maxstorm - & ,trkrinfo,-99.0,-99.0,-99.0,cps_vals - & ,wcore_flag,ioaxret) - call output_hfip (-999.0,-999.0,inp,istmp - & ,ifh,0.0,0.0,vradius,-99.0,ioaxret) - endif - enddo - endif - return - endif - -c Parameters 1 & 2 are abs vorticity at 850 & 700. If the data -c files had this parm at 850 & 700 (ECMWF & UKMET do NOT), then -c we don't need to re-calculate relative vorticity, we just need -c to subtract out the Coriolis component. If the files did not -c have vorticity, then we need to calculate relative vorticity. -c If we're able to read vorticity or calculate it, then set the -c vorticity calcparms to TRUE for all storms for now. - - do ivort=1,2 - - if (readflag(ivort)) then - - call subtract_cor (imax,jmax,dy,ivort) - - do jj=1,maxstorm - calcparm(ivort,jj) = .TRUE. - enddo - else - if (ivort == 1) then - if (readflag(3) .and. readflag(4)) then - call rvcal (imax,jmax,dx,dy,ivort,valid_pt) - do jj=1,maxstorm - calcparm(1,jj) = .TRUE. - enddo - else - do jj=1,maxstorm - calcparm(1,jj) = .FALSE. - enddo - endif - else - if (readflag(5) .and. readflag(6)) then - call rvcal (imax,jmax,dx,dy,ivort,valid_pt) - do jj=1,maxstorm - calcparm(2,jj) = .TRUE. - enddo - else - do jj=1,maxstorm - calcparm(2,jj) = .FALSE. - enddo - endif - endif - endif - - enddo - -c Compute the sfc vorticity if sfc_u and sfc_v have been read in. - - if (readflag(10) .and. readflag(11)) then - ! The 3 in the next call to rvcal is to indicate the 3rd level - ! for the zeta array, which is for the surface (or 10m) data. - call rvcal (imax,jmax,dx,dy,3,valid_pt) - do jj=1,maxstorm -ctpm6/14 calcparm(10,jj) = .TRUE. -ctpm6/14 calcparm(11,jj) = .TRUE. - calcparm(10,jj) = .FALSE. ! Turned off for GFS hires 6/14 - calcparm(11,jj) = .FALSE. ! Turned off for GFS hires 6/14 - enddo - else - do jj=1,maxstorm - calcparm(10,jj) = .FALSE. - calcparm(11,jj) = .FALSE. - enddo - endif - -c --------------------------------------------------------------- -c Now call find_maxmin for the variables zeta, hgt and slp. Only -c process those storms for which stormswitch is set to 1. If a -c storm is selected to be processed, we still have to check the -c calcparm for each parameter, to make sure that the particular -c parm exists at that level and is able to be processed. -c -c The following commented-out data statements are just included -c as a reference so you can see the array positioning of the -c different parameters and levels: -c -c data igparm /41,41,33,34,33,34,7,7,2,33,34,33,34,11/ -c data iglevtyp /100,100,100,100,100,100,100,100,102,sfc,sfc -c ,100,100,100/ -c data iglev /850,700,850,850,700,700,850,700,0,sfc,sfc -c ,500,500,400/ -c -c NOTE: For mid-latitude cases, we will track ONLY mslp, which -c is why we set all the other calcparms to 'false' just below. - - if (trkrinfo%type == 'midlat') then - do m = 1,maxstorm - calcparm(1,m) = .false. - calcparm(2,m) = .false. - calcparm(3,m) = .false. - calcparm(4,m) = .false. - calcparm(5,m) = .false. - calcparm(6,m) = .false. - calcparm(7,m) = .false. - calcparm(8,m) = .false. - calcparm(10,m) = .false. - calcparm(11,m) = .false. - enddo - endif - - if (trkrinfo%type == 'midlat' .or. trkrinfo%type == 'tcgen') - & then - call sort_storms_by_pressure (gridprs,ifh,maxstorm,prsindex - & ,issret) - if (ifh == 1) then - stormct = numtcv - endif - endif - - prevstormct = stormct - tracking_previously_known_storms = .true. - - stormloop: do sl_counter = 1,maxstorm - - cps_vals(1) = -9999.0 - cps_vals(2) = -9999.0 - cps_vals(3) = -9999.0 - wcore_flag = 'u' ! 'u' = initialized value of 'undetermined' - - if (trkrinfo%type == 'midlat' .or. trkrinfo%type == 'tcgen') - & then - ist = prsindex(sl_counter) - else - ist = sl_counter - endif - - if (trkrinfo%type == 'midlat' .or. trkrinfo%type == 'tcgen') - & then - - if (ist == (prevstormct + 1)) then - - ! For the mid-latitude and tropical cyclogenesis cases, we - ! need to scan the mslp field to find new storms. If we - ! are at this point inside the if statement in stormloop, - ! then that means we have looped through and attempted to - ! track all storms that have already been found up to this - ! point in the forecast, and we need to scan the field for - ! any new storms at this forecast hour. If this is for - ! forecast hour = 0, then right off the bat we may be - ! scanning the field (if there were no tcvitals records - ! read in for this forecast), since ist = 1 and - ! (prevstormct + 1) = 0 + 1 = 1. All that the call just - ! below to first_ges_center does is return a rough idea - ! of the location of new lows; more specific locations are - ! obtained through the barnes analysis tracking algorithm - ! further below. - - if (readflag(9)) then - if (ifh > 1) then - ! We need the use of 2 different masks. One - ! (masked_out) is to be used when looking for new lows, - ! so that after we find a new low, we mask out the - ! surrounding area so we don't find it on a subsequent - ! search for this forecast hour. The other - ! (masked_outc) is used in the routine to check for a - ! closed contour. If checking for a closed contour - ! at, say 70W/25N, this and surrounding points may have - ! already been masked out in first_ges_center, so "N" - ! would misleadingly/incorrectly be returned from - ! check_closed_contour, so that is why we need 2 masks. - ! But now after the first forecast hour (t=0), the way - ! we have this set up is that we track previously known - ! storms first, and once we're done with them, we - ! search for new storms at that same forecast hour. - ! But when looking for new storms, we need to know the - ! positions of the previously tracked storms at this - ! current forecast hour, so we copy the masked_outc - ! array to masked_out in this case.... - - masked_out = masked_outc - - endif - call first_ges_center (imax,jmax,dx,dy,'mslp',slp - & ,'min',trkrinfo,ifh,valid_pt,maxstorm,masked_out - & ,stormct,contour_info,maxmini,maxminj,ifgcret) - tracking_previously_known_storms = .false. - else - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In subroutine tracker, readflag' - print *,'!!! for mslp indicates that the mslp data' - print *,'!!! is not available for this forecast ' - print *,'!!! hour, and it is needed for a "midlat"' - print *,'!!! or "tcgen" run of the tracker. ' - print *,'!!! We will exit....' - print *,'!!! readflag(9) = ',readflag(9) - print *,'!!! ifh= ',ifh - print *,' ' - endif - itret = 98 - return - endif - endif - endif - - xval = 0.0 ! initialize entire xval array to 0 - isastorm = 'U' ! re-initialize flag for each time, each storm - - select case (stormswitch(ist)) - - case (1) - - vradius = 0 - - if ( verb .ge. 2 ) then - print *,' ---------------------------------------------' - print *,' | *** TOP OF STORM LOOP *** ' - print *,' | Beginning of storm loop in tracker for' - print *,' | Storm number ',ist - write (6,418) ifhours(ifh),ifclockmins(ifh) - 418 format (1x,' | Forecast hour: ',i4,':',i2.2) - print *,' | Storm name = ',storm(ist)%tcv_storm_name - print *,' | Storm ID = ',storm(ist)%tcv_storm_id - write (6,420) gstorm(ist)%gv_gen_date - & ,gstorm(ist)%gv_gen_fhr - & ,gstorm(ist)%gv_gen_lat - & ,gstorm(ist)%gv_gen_latns,gstorm(ist)%gv_gen_lon - & ,gstorm(ist)%gv_gen_lonew,gstorm(ist)%gv_gen_type - print *,' ---------------------------------------------' - print *,' ' - - 420 format (' | Gen ID (if available): ',i10.10,'_F',i3.3 - & ,'_',i3.3,a1,'_',i4.4,a1,'_',a3) - - endif -c First, make sure storm is within the grid boundaries... - - call check_bounds (slonfg(ist,ifh),slatfg(ist,ifh),ist,ifh - & ,trkrinfo,icbret) - if (icbret == 95) then ! Out of regional grid bounds - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - endif - - if (slatfg(ist,ifh) > 0.0) then - cvort_maxmin = 'max' - else - cvort_maxmin = 'min' - endif - - if (calcparm(1,ist)) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,' --- --- ---' - print *,'Now calling find_maxmin for zeta at 850 mb' - endif - - call find_maxmin (imax,jmax,dx,dy,'zeta' - & ,zeta(1,1,1),cvort_maxmin,ist,slonfg(ist,ifh) - & ,slatfg(ist,ifh),glon,glat,valid_pt,trkrinfo - & ,calcparm(1,ist),clon(ist,ifh,1),clat(ist,ifh,1) - & ,xval(1),glatmax,glatmin,glonmax,glonmin - & ,inp%modtyp,ifmret) - if (ifmret /= 0) then ! Out of regional grid bounds - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - endif - endif - - if (calcparm(2,ist)) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,' --- --- ---' - print *,'Now calling find_maxmin for zeta at 700 mb' - endif - - call find_maxmin (imax,jmax,dx,dy,'zeta' - & ,zeta(1,1,2),cvort_maxmin,ist,slonfg(ist,ifh) - & ,slatfg(ist,ifh),glon,glat,valid_pt,trkrinfo - & ,calcparm(2,ist),clon(ist,ifh,2),clat(ist,ifh,2) - & ,xval(2),glatmax,glatmin,glonmax,glonmin - & ,inp%modtyp,ifmret) - if (ifmret /= 0) then ! Out of regional grid bounds - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - endif - endif - - if (calcparm(7,ist)) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,' --- --- ---' - print *,'Now calling find_maxmin for hgt at 850 mb' - endif - - call find_maxmin (imax,jmax,dx,dy,'hgt' - & ,hgt(1,1,1),'min',ist,slonfg(ist,ifh),slatfg(ist,ifh) - & ,glon,glat,valid_pt,trkrinfo,calcparm(7,ist) - & ,clon(ist,ifh,7),clat(ist,ifh,7),xval(7) - & ,glatmax,glatmin,glonmax,glonmin - & ,inp%modtyp,ifmret) - if (ifmret /= 0) then ! Out of regional grid bounds - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - endif - endif - - if (calcparm(8,ist)) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,' --- --- ---' - print *,'Now calling find_maxmin for hgt at 700 mb' - endif - - call find_maxmin (imax,jmax,dx,dy,'hgt' - & ,hgt(1,1,2),'min',ist,slonfg(ist,ifh),slatfg(ist,ifh) - & ,glon,glat,valid_pt,trkrinfo,calcparm(8,ist) - & ,clon(ist,ifh,8),clat(ist,ifh,8),xval(8) - & ,glatmax,glatmin,glonmax,glonmin - & ,inp%modtyp,ifmret) - if (ifmret /= 0) then ! Out of regional grid bounds - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - endif - endif - - if (calcparm(9,ist)) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,' --- --- ---' - print *,'Now calling find_maxmin for mslp' - endif - - call find_maxmin (imax,jmax,dx,dy,'slp' - & ,slp,'min',ist,slonfg(ist,ifh),slatfg(ist,ifh) - & ,glon,glat,valid_pt,trkrinfo,calcparm(9,ist) - & ,clon(ist,ifh,9),clat(ist,ifh,9),xval(9) - & ,glatmax,glatmin,glonmax,glonmin - & ,inp%modtyp,ifmret) - if (ifmret /= 0) then ! Out of regional grid bounds - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - endif - endif - - if (calcparm(11,ist)) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,' --- --- ---' - print *,'Now calling find_maxmin for sfc zeta' - endif - - call find_maxmin (imax,jmax,dx,dy,'zeta' - & ,zeta(1,1,3),cvort_maxmin,ist,slonfg(ist,ifh) - & ,slatfg(ist,ifh),glon,glat,valid_pt,trkrinfo - & ,calcparm(11,ist),clon(ist,ifh,11),clat(ist,ifh,11) - & ,xval(11),glatmax,glatmin,glonmax,glonmin - & ,inp%modtyp,ifmret) - if (ifmret /= 0) then ! Out of regional grid bounds - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - endif - endif - - -c Now get centers for V magnitude at 700 & 850 mb. First, -c get a modified guess lat/lon position for V magnitude. -c Do this because it's more crucial to have a better first -c guess position for the wind minimum than it is for the -c other parms, since in addition to the wind minimum at the -c center of the storm, you can also have many more wind -c minima outside the RMW (this is more of a concern in -c smaller and weaker storms). This modified guess position -c will be an average of the first guess position for this -c time and the fix positions for this time from some of the -c other parameters. - - if (calcparm(3,ist) .and. calcparm(4,ist)) then - call get_uv_guess (slonfg(ist,ifh),slatfg(ist,ifh) - & ,clon,clat,calcparm,ist,ifh,maxstorm - & ,uvgeslon,uvgeslat,igugret) - if (igugret == 0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,' --- --- ---' - print *,'Now calling get_uv_center for 850 mb ' - endif - - call get_uv_center (uvgeslon,uvgeslat,imax,jmax,dx,dy - & ,ist,850,valid_pt,calcparm(3,ist) - & ,clon(ist,ifh,3),clat(ist,ifh,3),xval(3),trkrinfo - & ,igucret) - if (igucret /= 0) then - calcparm(3,ist) = .FALSE. - calcparm(4,ist) = .FALSE. - endif - else - calcparm(3,ist) = .FALSE. - calcparm(4,ist) = .FALSE. - clon(ist,ifh,3) = 0.0 - clat(ist,ifh,3) = 0.0 - endif - endif - - if (calcparm(5,ist).and. calcparm(6,ist)) then - call get_uv_guess (slonfg(ist,ifh),slatfg(ist,ifh) - & ,clon,clat,calcparm,ist,ifh,maxstorm - & ,uvgeslon,uvgeslat,igugret) - if (igugret == 0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,' --- --- ---' - print *,'Now calling get_uv_center for 700 mb ' - endif - - call get_uv_center (uvgeslon,uvgeslat,imax,jmax,dx,dy - & ,ist,700,valid_pt,calcparm(5,ist) - & ,clon(ist,ifh,5),clat(ist,ifh,5),xval(5),trkrinfo - & ,igucret) - if (igucret /= 0) then - calcparm(5,ist) = .FALSE. - calcparm(6,ist) = .FALSE. - endif - else - calcparm(5,ist) = .FALSE. - calcparm(6,ist) = .FALSE. - clon(ist,ifh,5) = 0.0 - clat(ist,ifh,5) = 0.0 - endif - endif - - if (calcparm(10,ist) .and. igugret == 0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,' --- --- ---' - print *,'Now calling get_uv_center for the surface ' - endif - - ! NOTE: The 1020 in the call here is just a number/code to - ! indicate to the subroutine to process sfc winds.... - call get_uv_center (uvgeslon,uvgeslat,imax,jmax,dx,dy - & ,ist,1020,valid_pt,calcparm(10,ist) - & ,clon(ist,ifh,10),clat(ist,ifh,10),xval(10) - & ,trkrinfo,igucret) - if (igucret /= 0) then - calcparm(10,ist) = .FALSE. - endif - else - calcparm(10,ist) = .FALSE. - clon(ist,ifh,10) = 0.0 - clat(ist,ifh,10) = 0.0 - endif - -c ------------------------------------------------------ -c All of the parameter center fixes have been done. Now -c average those positions together to get the best guess -c fix position. If a center fix is able to be made, then -c call subroutine get_max_wind to get the maximum near- -c surface wind near the center, and then call get_next_ges -c to get a guess position for the next forecast hour. - - if (stormswitch(ist) == 1) then - - call fixcenter (clon,clat,ist,ifh,calcparm - & ,slonfg(ist,ifh),slatfg(ist,ifh),inp - & ,stderr,fixlon,fixlat,xval,maxstorm,ifret) - - if (ifret == 0) then - if ((trkrinfo%type == 'midlat' .or. - & trkrinfo%type == 'tcgen') .and. - & trkrinfo%gridtype == 'regional')then - if (fixlon(ist,ifh) > (trkrinfo%eastbd + 7.0) .or. - & fixlon(ist,ifh) < (trkrinfo%westbd - 7.0) .or. - & fixlat(ist,ifh) > (trkrinfo%northbd + 7.0) .or. - & fixlat(ist,ifh) < (trkrinfo%southbd - 7.0)) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! For a midlat or tcgen case, a fix ' - print *,'!!! will NOT be made for this time due' - print *,'!!! the storm being more than 7 degrees' - print *,'!!! outside the user-specified lat/lon' - print *,'!!! bounds for this run. We will stop' - print *,'!!! tracking this storm.' - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - print *,'!!! Storm = ' - & ,storm(ist)%tcv_storm_name - write (6,432) ifhours(ifh),ifclockmins(ifh) - 432 format (1x,'!!! Fcst hr = ',i4,':',i2.2) - print *,'!!! fixlat= ',fixlat(ist,ifh) - print *,'!!! fixlon= ',fixlon(ist,ifh) - print *,'!!! User East Bound = ',trkrinfo%eastbd - print *,'!!! User West Bound = ',trkrinfo%westbd - print *,'!!! User North Bound = ',trkrinfo%northbd - print *,'!!! User South Bound = ',trkrinfo%southbd - endif - - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - if (ifh == 1) then - vradius = 0 - ileadtime = nint(fhreal(ifh) * 100.0) - ifcsthour = ileadtime / 100 - call output_atcfunix (-999.0 - & ,-999.0,inp,ist - & ,ifcsthour,0.0 - & ,0.0,vradius,maxstorm,trkrinfo - & ,-99.0,-99.0,-99.0 - & ,cps_vals,wcore_flag,ioaxret) - imeanzeta = -99 - igridzeta = -99 - call output_atcf_gen (-999.0 - & ,-999.0,inp,ist - & ,ifcsthour,0.0 - & ,0.0,vradius,maxstorm,trkrinfo - & ,-99,-99,-999.0,-999.0,-99.0 - & ,cps_vals,'u',imeanzeta,igridzeta,ioaxret) - call output_atcf_sink (-999.0 - & ,-999.0,inp,ist - & ,ifcsthour,0.0 - & ,0.0,vradius,maxstorm,trkrinfo - & ,-99,-99,imeanzeta,igridzeta - & ,cps_vals,-999.0,-999.0,ioaxret) - endif - cycle stormloop - endif - endif - else - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - endif - -c Just because we've found a center doesn't mean there is -c actually a storm there. I noticed in the first year that -c for some decaying or just weak storms, the tracker would -c identify a center to follow, but it may have only been -c a weak trough passing by, or something else that's not -c our storm. This next subroutine checks to see that the -c surface pressure gradient and/or tangential winds at -c 850 mb resemble a storm. It is called twice; the first -c time for MSLP, the 2nd time for 850 mb winds. We will -c apply these storm-checking criteria if either the mslp -c or v850 check come back negative. Remember, there -c is the possibility that centers could not be found for -c 1 or both of these parameters, in which case the isastorm -c flag will have a value of 'U', for "undetermined". - - isiret1 = 0; isiret2 = 0; isiret3 = 0 - - if (ifret == 0) then - - if (calcparm(9,ist)) then - - ! Do a check of the mslp gradient.... - - call is_it_a_storm (imax,jmax,dx,dy,'slp',ist - & ,valid_pt,clon(ist,ifh,9),clat(ist,ifh,9) - & ,xval(9),trkrinfo,isastorm(1),isiret1) - - endif - - ! If we have found a valid mslp gradient, then make - ! a call to fix_latlon_to_ij to (1) get the actual - ! gridpoint value of the mslp (the value previously - ! stored in xval(9) is an area-averaged value coming - ! from the barnes analysis), and (2) to get the - ! (i,j) indeces for this gridpoint to be used in the - ! call to check_closed_contour below. - ! - ! NOTE: If a mslp fix was not made, or if the mslp - ! "isastorm" flag comes back as no, we make the same - ! call to fix_latlon_to_ij, but we use the mean fix - ! position as our input to search around, and then - ! basically we just find the lowest mslp near that - ! mean fix position. There is a check on the value - ! of xinp_fixlat and xinp_fixlon to make sure that - ! they contain valid values and not just the - ! initialized -999 values. - - if (isiret1 == 0 .and. isastorm(1) == 'Y') then - xinp_fixlat = clat(ist,ifh,9) - xinp_fixlon = clon(ist,ifh,9) - else - xinp_fixlat = fixlat(ist,ifh) - xinp_fixlon = fixlon(ist,ifh) - endif - - if (xinp_fixlat > -99.0 .and. xinp_fixlon > -990.0) - & then - call fix_latlon_to_ij (imax,jmax,dx,dy,slp,'min' - & ,valid_pt,xinp_fixlon,xinp_fixlat - & ,xval(9),ifix,jfix,gridpoint_maxmin,'tracker' - & ,glatmax,glatmin,glonmax,glonmin - & ,trkrinfo,ifilret) - if (ifilret == 0) then - gridprs(ist,ifh) = gridpoint_maxmin - else - ! Search went out of regional grid bounds.... - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - endif - endif - - ! For a "tracker" case, check to see if the user has - ! requested to compute and write out the ROCI. If - ! so, then we make a call to check_closed_contour, - ! being sure to specify 999 as the number of levels - ! to check.... - - if (isiret1 == 0 .and. isastorm(1) == 'Y' .and. - & trkrinfo%type == 'tracker') then - - if (trkrinfo%want_oci) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'Before call to check_closed_contour, ' - print *,'ifix= ',ifix,' jfix= ',jfix - print *,'longitude= ',xinp_fixlon,'E (' - & ,360-xinp_fixlon,'W)' - print *,'latitude= ',xinp_fixlat - print *,'mean mslp value (xval(9))= ',xval(9) - endif - - if (contour_info%numcont == 0) then - contour_info%numcont = maxconts - endif - - if (trkrinfo%contint < 400.0) then - hold_old_contint = trkrinfo%contint - trkrinfo%contint = 400.0 - if ( verb .ge. 3 ) then - print *,' ' - print *,'Before going into routine to diagnose' - print *,'the ROCI for a tracker run, the ' - print *,'requested contour interval is being ' - print *,'adjusted up (coarser) to avoid having' - print *,'the contour check routine break and ' - print *,'return an invalid value.' - print *,'User-requested contint value (Pa) = ' - & ,hold_old_contint - print *,'Modified contint value (Pa) = ' - & ,trkrinfo%contint - endif - endif - - masked_outc = .false. - get_last_isobar_flag = 'y' - call check_closed_contour (imax,jmax,ifix,jfix,slp - & ,valid_pt,masked_outc,ccflag,'min',trkrinfo - & ,999,contour_info,get_last_isobar_flag,plastbar - & ,rlastbar,icccret) - - if ( verb .ge. 3 ) then - print *,' ' - print *,'After call to check_closed_contour, ' - print *,'ifix= ',ifix,' jfix= ',jfix - print *,'longitude= ',xinp_fixlon,'E (' - & ,360-xinp_fixlon,'W)' - print *,'latitude= ',xinp_fixlat - print *,'mean mslp value (xval(9))= ',xval(9) - print *,'gridpoint mslp value= ',slp(ifix,jfix) - print *,'ccflag= ',ccflag - print *,'prs of last closed isobar = ',plastbar - print *,'radius of last closed isobar = ' - & ,rlastbar,' nm' - print *,' ' - endif - - endif - - endif - - ! For the midlat & tcgen cases, do a check to see if - ! there is a closed mslp contour. The ifix and jfix - ! values passed into check_closed_contour are the - ! values for the (i,j) at the gridpoint minimum, - ! which was obtained just above from the call to - ! fix_latlon_to_ij. - - if (isastorm(1) == 'Y' .and. isiret1 == 0 .and. - & (trkrinfo%type == 'midlat' .or. - & trkrinfo%type == 'tcgen')) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'Before call to check_closed_contour, ' - print *,'ifix= ',ifix,' jfix= ',jfix - print *,'longitude= ',xinp_fixlon,'E (' - & ,360-xinp_fixlon,'W)' - print *,'latitude= ',xinp_fixlat - print *,'mean mslp value (xval(9))= ',xval(9) - endif - - if (contour_info%numcont == 0) then - contour_info%numcont = maxconts - endif - - get_last_isobar_flag = 'y' - call check_closed_contour (imax,jmax,ifix,jfix,slp - & ,valid_pt,masked_outc,ccflag,'min',trkrinfo - & ,999,contour_info,get_last_isobar_flag,plastbar - & ,rlastbar,icccret) - - if ( verb .ge. 3 ) then - print *,' ' - print *,'After call to check_closed_contour, ' - print *,'ifix= ',ifix,' jfix= ',jfix - print *,'longitude= ',xinp_fixlon,'E (' - & ,360-xinp_fixlon,'W)' - print *,'latitude= ',xinp_fixlat - print *,'mean mslp value (xval(9))= ',xval(9) - print *,'gridpoint mslp value= ',slp(ifix,jfix) - print *,'ccflag= ',ccflag - print *,'prs of last closed isobar = ',plastbar - print *,'radius of last closed isobar = ',rlastbar - & ,' nm' - print *,' ' - endif - - ! This next bit of code adds a second layer of closed - ! contour checking. This is to decrease the - ! occurrence of interrupted midlat and tcgen tracks, - ! which usually happens when the closed contour - ! criterion is not met for one time period. So in - ! this next code, we check to see if the ccflag was - ! 'y' for at least half the time over the last 24h. - ! For time periods shorter than 24h (e.g., the storm - ! was just detected at 144h and we are now at 156h), - ! the threshold is still that for at least half of - ! the time the system has been detected as a storm, - ! it must have a ccflag value of 'y'. - - if (ccflag == 'y') then - closed_mslp_ctr_flag(ist,ifh) = 'y' - else - closed_mslp_ctr_flag(ist,ifh) = 'n' - if (ifh > 1) then - iccfh = ifh - cc_time_sum_tot = 0.0 - cc_time_sum_yes = 0.0 - do while (iccfh > 1 .and. - & closed_mslp_ctr_flag(ist,iccfh) /= 'u' .and. - & cc_time_sum_tot < 24.0) - xinterval_fhr = fhreal(iccfh) - fhreal(iccfh-1) - cc_time_sum_tot = cc_time_sum_tot - & + xinterval_fhr - if (closed_mslp_ctr_flag(ist,iccfh) == 'y') then - cc_time_sum_yes = cc_time_sum_yes - & + xinterval_fhr - endif - iccfh = iccfh - 1 - enddo - if (cc_time_sum_tot > 0.0) then - cc_time_pct = cc_time_sum_yes / cc_time_sum_tot - else - cc_time_pct = 0.0 - endif - if (cc_time_pct >= 0.50) then - ccflag = 'y' - - if ( verb .ge. 3 ) then - print *,' ' - print *,'++ NOTE ON CLOSED CONTOUR CHECK: The' - print *,' ccflag returned for this hour was' - print *,' NO, but a check of recent ccflags' - print *,' indicates that more than 50% of ' - print *,' the ccflags over the last 24h are' - print *,' YES, so we will continue.' - print *,' cc_time_pct= ',cc_time_pct - print *,' ' - endif - - else - ccflag = 'n' - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!! NOTE ON CLOSED CONTOUR CHECK: The' - print *,'!! ccflag returned for this hour was' - print *,' NO, and a check of recent ccflags' - print *,' indicates that less than 50% of ' - print *,' the ccflags over the last 24h are' - print *,' YES, so we will stop tracking.' - print *,' cc_time_pct= ',cc_time_pct - endif - - endif - endif - endif - - if (ccflag == 'y') then - isastorm(2) = 'Y' - else if (ccflag == 'n') then - isastorm(2) = 'N' - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,'*---------------------------------------*' - print *,'* After check_closed_contour... *' - print *,'*---------------------------------------*' - print *,' ' - endif - - endif - - ! For tropical cyclones, check the avg 850 mb tangential - ! windspeed close to the storm center.... - - if (trkrinfo%type == 'tcgen' .or. - & trkrinfo%type == 'tracker') then - if (calcparm(3,ist)) then - call is_it_a_storm (imax,jmax,dx,dy,'v850',ist - & ,valid_pt,clon(ist,ifh,3),clat(ist,ifh,3) - & ,xval(3),trkrinfo,isastorm(3),isiret3) - - if (trkrinfo%type == 'tcgen') then - ! This next bit of code adds a second layer of 850 - ! mb Vt magnitude checking. This is to decrease - ! the occurrence of interrupted tcgen tracks, - ! which occasionally happens for weak storms when - ! this criterion is not met for one time period. - ! So in this next code, we check to see if the - ! vt850_flag was 'y' for at least 75% of the time - ! over the last 24h. For time periods shorter - ! than 24h (e.g., the storm was just detected at - ! 144h and we are now at 156h), the threshold is - ! still that for at least 75% of the time the - ! system has been detected as a storm, it must - ! have a vt850_flag value of 'y'. - - if (isastorm(3) == 'Y') then - vt850_flag(ist,ifh) = 'y' - else - vt850_flag(ist,ifh) = 'n' - if (ifh > 1) then - iccfh = ifh - cc_time_sum_tot = 0.0 - cc_time_sum_yes = 0.0 - do while (iccfh > 1 .and. - & vt850_flag(ist,iccfh) /= 'u' .and. - & cc_time_sum_tot < 24.0) - xinterval_fhr = fhreal(iccfh) - - & fhreal(iccfh-1) - cc_time_sum_tot = cc_time_sum_tot - & + xinterval_fhr - if (vt850_flag(ist,iccfh) == 'y') then - cc_time_sum_yes = cc_time_sum_yes - & + xinterval_fhr - endif - iccfh = iccfh - 1 - enddo - if (cc_time_sum_tot > 0.0) then - cc_time_pct = cc_time_sum_yes / - & cc_time_sum_tot - else - cc_time_pct = 0.0 - endif - if (cc_time_pct >= 0.75) then - isastorm(3) = 'Y' - - if ( verb .ge. 3 ) then - print *,' ' - print *,'+++ NOTE ON Vt_850 CHECK: The ' - print *,' isastorm flag returned for ' - print *,' this hour was NO, but a' - print *,' check of recent vt850_flags' - print *,' indicates that more than 75%' - print *,' of the vt850_flags over the' - print *,' last 24h are YES, so we will' - print *,' continue.' - print *,' cc_time_pct= ',cc_time_pct - print *,' ' - endif - - else - isastorm(3) = 'N' - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE ON Vt_850 CHECK: The ' - print *,'!!! isastorm flag returned for ' - print *,' this hour was NO, and a' - print *,' check of recent vt850_flags ' - print *,' indicates that less than 75%' - print *,' of the vt850_flags over the' - print *,' last 24h are YES, so we will' - print *,' stop tracking.' - print *,' cc_time_pct= ',cc_time_pct - endif - - endif - endif - endif - - endif - - endif - endif - - else - - if (trkrinfo%type == 'midlat' .or. - & trkrinfo%type == 'tcgen') then - isastorm(1) = 'N' - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! For a midlat or tcgen case, a fix ' - print *,'!!! could not be made for mslp, ' - print *,'!!! therefore we will stop tracking ' - print *,'!!! for this storm.' - endif - - else - isastorm(1) = 'N' - isastorm(3) = 'N' - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! For a TC tracker case, a fix could' - print *,'!!! not be made using any tracked parms,' - print *,'!!! therefore we will stop tracking for' - print *,'!!! this storm.' - endif - - endif - - if ( verb .ge. 3 ) then - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - print *,'!!! Storm = ',storm(ist)%tcv_storm_name - write (6,432) ifhours(ifh),ifclockmins(ifh) - endif - - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - - endif - - if (isiret1 /= 0 .or. isiret2 /= 0 .or. isiret3 /= 0) - & then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: One of the calls to ' - print *,'!!! is_it_a_storm produced an error.' - print *,'!!! Chances are this is from a call to ' - print *,'!!! get_ij_bounds, meaning we are too close' - print *,'!!! to a regional grid boundary to do this ' - print *,'!!! analysis. Processing will continue....' - print *,'!!! isiret1= ',isiret1,' isiret2= ',isiret2 - print *,'!!! isiret3= ',isiret3 - endif - - endif - - if (isastorm(1) == 'N' .or. isastorm(2) == 'N' .or. - & isastorm(3) == 'N') then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! At least one of the isastorm flags from' - print *,'!!! subroutine is_it_a_storm is "N", so ' - print *,'!!! either we were unable to find a good ' - print *,'!!! mslp gradient and/or a valid 850 mb ' - print *,'!!! circulation for the storm at this time,' - print *,'!!! or, for the cases of midlat or tcgen ' - print *,'!!! tracking, a closed mslp contour could ' - print *,'!!! not be found, thus we will stop tracking' - print *,'!!! this storm.' - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - print *,'!!! Storm = ',storm(ist)%tcv_storm_name - write (6,432) ifhours(ifh),ifclockmins(ifh) - print *,'!!! mslp gradient flag = ',isastorm(1) - print *,'!!! closed contour flag = ',isastorm(2) - print *,'!!! 850 mb winds flag = ',isastorm(3) - print *,' ' - endif - - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - endif - - ! Now do another check for the tracker and tcgen cases. - ! If the isastorm flags for mslp gradient and v850 BOTH - ! came back positive AND you have been able to locate an - ! 850 mb vort center, just do a check to make sure that - ! the distance between the 850 vort center and the mslp - ! center is not too great. - - if (trkrinfo%type == 'tracker' .or. - & trkrinfo%type == 'tcgen') then - if (isastorm(1) == 'Y' .and. isastorm(3) == 'Y' .and. - & calcparm(1,ist) .and. stormswitch(ist) == 1) then - -c if (atcfname == 'GFSO' .and. -c & abs(slatfg(ist,ifh)) >= 25.0) then -c max_mslp_850 = 405.0 -c else if (atcfname == 'GFSO' .and. -c & abs(slatfg(ist,ifh)) < 25.0) then -c max_mslp_850 = 405.0 -c else -c max_mslp_850 = 323.0 -c endif - - max_mslp_850 = 400.0 - - call calcdist (clon(ist,ifh,9),clat(ist,ifh,9) - & ,clon(ist,ifh,1),clat(ist,ifh,1),dist - & ,degrees) - - if (dist > max_mslp_850) then - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! In routine tracker, the dist betw' - print *,'!!! the mslp center & the 850 zeta ' - print *,'!!! center is too great, thus we will' - print *,'!!! stop tracking this storm.' - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - print *,'!!! Storm = ' - & ,storm(ist)%tcv_storm_name - write (6,432) ifhours(ifh),ifclockmins(ifh) - print *,'!!! Max dist allowed (km) = ' - & ,max_mslp_850 - print *,'!!! Actual distance (km) = ',dist - print *,' ' - endif - - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'Distance between the parm centers for' - print *,'850 zeta and mslp is ',dist,' (km)' - endif - - endif - endif - endif - - ! Do one final check. Check the new fix position and - ! the old fix position and calculate the speed that the - ! storm would have had to travel to get to this point. - ! If that speed exceeds a certain threshold (~60 kt), - ! assume you're tracking the wrong thing and quit. - ! Obviously, only do this for times > 00h. The check - ! in the if statement to see if the previous hour's - ! lats and lons were > -999 is for the midlat and - ! tcgen cases -- remember, they can have genesis at - ! any hour of the forecast, in which case the previous - ! forecast hour's lat & lon would be -999. - - if (ifh > 1 .and. stormswitch(ist) == 1) then - if (fixlon(ist,ifh-1) > -999.0 .and. - & fixlat(ist,ifh-1) > -999.0 ) then - - if (trkrinfo%type == 'midlat') then - xmaxspeed = maxspeed_ml - else - xmaxspeed = maxspeed_tc - endif - - call calcdist (fixlon(ist,ifh-1),fixlat(ist,ifh-1) - & ,fixlon(ist,ifh),fixlat(ist,ifh),dist - & ,degrees) - - ! convert distance from km to nm and get speed. - - distnm = dist * 0.539638 - xinterval_fhr = fhreal(ifh) - fhreal(ifh-1) - xknots = distnm / xinterval_fhr - - if (xknots > xmaxspeed) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! In routine tracker, calculated spd' - print *,'!!! of the storm from the last position' - print *,'!!! to the current position is too high,' - print *,'!!! so we will stop tracking this storm' - print *,'!!! (For fear that we are not actually ' - print *,'!!! tracking our storm, but have instead' - print *,'!!! locked onto some other feature....)' - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - print *,'!!! Storm = ' - & ,storm(ist)%tcv_storm_name - write (6,432) ifhours(ifh),ifclockmins(ifh) - print *,'!!! Max speed allowed (kt) = ',xmaxspeed - print *,'!!! Actual speed (kt) = ',xknots - print *,' ' - endif - - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'The average speed that the storm moved' - print *,'at since the previous forecast time is' - & ,xknots,' knots.' - endif - - endif - - endif - - endif - - endif - -c Now get the maximum near-surface wind speed near the storm -c center (get_max_wind). Also, call getradii to get the -c radii in each storm quadrant of gale-force, storm-force -c and hurricane force winds. - - if (readflag(10) .and. readflag(11) .and. ifret == 0 - & .and. stormswitch(ist) == 1) then - call get_max_wind (fixlon(ist,ifh),fixlat(ist,ifh) - & ,imax,jmax,dx,dy,valid_pt,levsfc - & ,xmaxwind(ist,ifh),trkrinfo,rmax,igmwret) -c if (igmwret /= 0 .and. gridmove_status == 'stopped') then - if (igmwret /= 0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! Return code from get_max_wind is /= 0. ' - print *,'!!! rcc= igmwret= ',igmwret - print *,'!!! Also, this is a moveable, regional grid' - print *,'!!! and the grid did not change from last' - print *,'!!! lead time to current one, so what has' - print *,'!!! likely happened is that the storm has ' - print *,'!!! moved close to the edge of the nested ' - print *,'!!! grid domain, but the nested grid itself' - print *,'!!! had stopped moving, probably because it' - print *,'!!! dropped or lost the storm.' - print *,'!!! ' - print *,'!!! TRACKING WILL STOP FOR THIS STORM' - print *,'!!! ' - endif - - stormswitch(ist) = 2 - cycle stormloop - endif - - ileadtime = nint(fhreal(ifh) * 100.0) - ifcsthour = ileadtime / 100 - - ! For the radii, we encountered a problem with radmax - ! being too small. It was set at 650 km. Hurricane - ! Sandy exceeded this in the models, so the values - ! returned from getradii were close to the default - ! radmax value of 650 km (350 nm), instead of higher. - ! To fix it, we now use an iterative technique, where - ! we start with radmax as a small value (500 km). If - ! getradii returns a value for R34 in a quadrant that - ! does not exceed 0.97*radmax, then that value is ok. - ! If it does exceed 0.97*radmax, then we bump up radmax - ! by 50 km and call getradii again, looking to diagnose - ! radii only in those quadrants where the - ! need_to_expand_r34 flag = 'n'. - - vradius = 0 - r34_check_okay = 'n' - do ivr = 1,4 - need_to_expand_r34(ivr) = 'y' - enddo - radmax = 500.0 ! Initial radmax, in km - - getrad_iter_loop: do while - & (r34_check_okay == 'n' .and. radmax <= 1050.) - - call getradii (fixlon(ist,ifh),fixlat(ist,ifh),imax,jmax - & ,dx,dy,valid_pt,storm(ist)%tcv_storm_id - & ,ifcsthour,vradius,trkrinfo - & ,need_to_expand_r34,radmax,igrret) - r34_dist_thresh = 0.97 * radmax - r34_good_ct = 0 - do ivr = 1,4 - vradius_km = float(vradius(1,ivr)) / 0.5396 - if (vradius_km < r34_dist_thresh) then - r34_good_ct = r34_good_ct + 1 - need_to_expand_r34(ivr) = 'n' - endif - enddo - if (r34_good_ct == 4) then - r34_check_okay = 'y' - endif - radmax = radmax + 50.0 - enddo getrad_iter_loop - - endif - -c If the user has requested so, then call a routine to -c determine the type of cyclone, using Bob Hart's -c cyclone phase space (CPS) algorithms. It is only used -c for times after t=0, since for the first check (of the -c "parameter B" thickness asymmetry), we need to know -c in which direction the storm is moving. Pulling that -c storm movement data off of the tcvitals is not reliable -c since the model storm may not be moving in the same -c direction as the observed storm. However, we could do -c an upgrade later where this storm movement data is -c pulled from the "genesis vitals", which are derived -c from the model forecast data itself, not the obs. - - if (phaseflag == 'y' .and. stormswitch(ist) == 1) then - wcore_flag = 'u' ! 'u' = undetermined - call get_phase (imax,jmax,inp,dx,dy,ist,ifh,trkrinfo - & ,fixlon,fixlat,valid_pt,maxstorm - & ,cps_vals,wcore_flag,igpret) - endif - - if (structflag == 'y' .or. ikeflag == 'y') then - call get_sfc_center (fixlon(ist,ifh),fixlat(ist,ifh) - & ,clon,clat,ist,ifh,calcparm,xsfclon - & ,xsfclat,maxstorm,igscret) - endif - - if (structflag == 'y' .and. stormswitch(ist) == 1) then - call get_wind_structure (imax,jmax,inp,dx,dy - & ,ist,ifh,fixlon,fixlat,xsfclon,xsfclat - & ,valid_pt,er_wind,sr_wind,er_vr,sr_vr - & ,er_vt,sr_vt,maxstorm,trkrinfo,igwsret) - if (igwsret == 0) then - call output_wind_structure (fixlon(ist,ifh) - & ,fixlat(ist,ifh),xsfclon,xsfclat,inp,ist - & ,ifcsthour,xmaxwind(ist,ifh) - & ,gridprs(ist,ifh),er_wind,sr_wind - & ,er_vr,sr_vr,er_vt,sr_vt,maxstorm,iowsret) - endif - endif - - if (structflag == 'y' .and. stormswitch(ist) == 1) then - call get_fract_wind_cov (imax,jmax,inp,dx,dy - & ,ist,ifh,fixlon,fixlat,xsfclon,xsfclat - & ,valid_pt,calcparm,wfract_cov,pdf_ct_bin - & ,pdf_ct_tot,maxstorm,trkrinfo,igfwret) - if (igfwret == 0) then - call output_fract_wind (fixlon(ist,ifh) - & ,fixlat(ist,ifh),xsfclon,xsfclat,inp,ist - & ,ifcsthour,xmaxwind(ist,ifh) - & ,gridprs(ist,ifh),wfract_cov,'earth' - & ,pdf_ct_bin,pdf_ct_tot,maxstorm,iofwret) - endif - endif - - if (ikeflag == 'y' .and. stormswitch(ist) == 1) then - call get_ike_stats (imax,jmax,inp,dx,dy - & ,ist,ifh,fixlon,fixlat,xsfclon,xsfclat - & ,valid_pt,calcparm,ike,sdp,wdp,maxstorm - & ,trkrinfo,igisret) - if (igisret == 0) then - call output_ike (fixlon(ist,ifh) - & ,fixlat(ist,ifh),xsfclon,xsfclat,inp,ist - & ,ifcsthour,xmaxwind(ist,ifh) - & ,gridprs(ist,ifh),ike,sdp,wdp,maxstorm - & ,ioiret) - endif - endif - -c Now print out the current fix position and intensity -c (in knots) to standard output. Conversion for m/s to -c knots (1.9427) is explained in output_atcf. - - if ( verb .ge. 3 ) then - print *,' ' - print *,'After call to fixcenter, fix positions at ' - write (6,442) ifhours(ifh),ifclockmins(ifh) - 442 format (1x,'forecast hour= ',i4,':',i2.2,' follow:') - print *,' ' - endif - - if (ifret == 0 .and. stormswitch(ist) == 1) then - - if ( verb .ge. 3 ) then - write (6,73) storm(ist)%tcv_storm_id,ifhours(ifh) - & ,ifclockmins(ifh),fixlon(ist,ifh) - & ,360.-fixlon(ist,ifh),fixlat(ist,ifh) - & ,int((xmaxwind(ist,ifh)*1.9427) + 0.5) - print *,' ' - endif - - ! Only call output routines every atcffreq/100 hours.... - - ileadtime = nint(fhreal(ifh) * 100.0) - leadtime_check = mod(ileadtime,atcffreq) - - if (leadtime_check == 0) then - - ifcsthour = ileadtime / 100 - - call output_atcfunix (fixlon(ist,ifh) - & ,fixlat(ist,ifh),inp,ist - & ,ifcsthour,xmaxwind(ist,ifh) - & ,gridprs(ist,ifh),vradius,maxstorm - & ,trkrinfo,plastbar,rlastbar,rmax,cps_vals - & ,wcore_flag,ioaxret) - - ! Get the storm motion vector and the speed of - ! motion so that we can output this in the - ! "atcf_sink" forecast text file. - - if (ifh < ifhmax) then - call get_next_ges (fixlon,fixlat,ist,ifh - & ,imax,jmax,dx,dy,inp%model,valid_pt,readflag - & ,maxstorm,istmspd,istmdir,'vitals',trkrinfo - & ,ignret) - else - istmdir = -999 - istmspd = -999 - ignret = 0 - endif - - if ( verb .ge. 3 ) then - write (6,617) istmspd,istmdir,ignret - 617 format (1x,'+++ RPT_STORM_MOTION: istmspd= ',i5 - & ,' istmdir= ',i5,' rcc= ',i3) - endif - - ! Call a routine to find the mean & max relative - ! vorticity near the storm at 850 & 700. These will - ! be written out to the "atcf_sink" fcst text file. - - imeanzeta = -99 - igridzeta = -99 - call get_zeta_values (fixlon,fixlat,imax,jmax,dx,dy - & ,trkrinfo,imeanzeta,igridzeta,readflag - & ,valid_pt,ist,ifh,maxstorm,inp,igzvret) - - if (trkrinfo%type == 'midlat' .or. - & trkrinfo%type == 'tcgen') then - call output_atcf_gen (fixlon(ist,ifh) - & ,fixlat(ist,ifh),inp,ist - & ,ifcsthour,xmaxwind(ist,ifh) - & ,gridprs(ist,ifh),vradius,maxstorm,trkrinfo - & ,istmspd,istmdir,plastbar,rlastbar,rmax - & ,cps_vals,wcore_flag,imeanzeta,igridzeta,ioaxret) - endif - - call output_atcf_sink (fixlon(ist,ifh) - & ,fixlat(ist,ifh),inp,ist - & ,ifcsthour,xmaxwind(ist,ifh) - & ,gridprs(ist,ifh),vradius,maxstorm - & ,trkrinfo,istmspd,istmdir,imeanzeta - & ,igridzeta,cps_vals,plastbar,rlastbar - & ,ioaxret) - - if (inp%model == 12 .and. ifcsthour == 0) then - ! Write vitals for GFS ens control analysis - call output_tcvitals (fixlon(ist,ifh) - & ,fixlat(ist,ifh),inp,ist,iovret) - - endif - endif - - ! The exception here is for the call to the output_hfip - ! routine, which will be called for every lead time - ! that is processed.... - - call output_hfip (fixlon(ist,ifh),fixlat(ist,ifh),inp,ist - & ,ifh,xmaxwind(ist,ifh) - & ,gridprs(ist,ifh),vradius,rmax,ioaxret) - else - - if ( verb .ge. 3 ) then - write (6,452) 'fixpos ',storm(ist)%tcv_storm_id - & ,' fhr= ',ifhours(ifh),ifclockmins(ifh) - & ,' Fix not made for this forecast hour' - 452 format (1x,a7,1x,a4,a6,i4,':',i2.2,a36) - - print *,' ' - print *,'!!! RETURN CODE from fixcenter not equal to 0,' - print *,'!!! or output from is_it_a_storm indicated the' - print *,'!!! system found was not our storm, or the ' - print *,'!!! speed calculated indicated we may have ' - print *,'!!! locked onto a different center, thus a fix' - print *,'!!! was not made for this storm at this ' - print *,'!!! forecast hour.' - print *,'!!! mslp gradient check = ',isastorm(1) - print *,'!!! mslp closed contour check = ',isastorm(2) - print *,'!!! 850 mb winds check = ',isastorm(3) - print *,'!!! fixcenter return code = ifret = ',ifret - print *,' ' - endif - - if (ifh == 1) then - vradius = 0 - ileadtime = nint(fhreal(ifh) * 100.0) - ifcsthour = ileadtime / 100 - - ! For the vt=00h lead time, if the tracker failed to - ! locate a position, we are going to write out an - ! atcfunix that contains the position, intensity, mslp - ! and 34-kt wind radii from TC Vitals for this storm - ! and initial time.... - - tcv_max_wind_ms = float(storm(ist)%tcv_vmax) - tcv_mslp_pa = float(storm(ist)%tcv_pcen) * 100.0 - - ! Convert tcvitals NE 34-kt wind radius from km to nm - r34_from_tcv = float(storm(ist)%tcv_r15ne) - if (r34_from_tcv > 0.0) then - vradius(1,1) = int( ((r34_from_tcv*0.5396) - & / 5.0) + 0.5) * 5 - else - vradius(1,1) = 0 - endif - - ! Convert tcvitals SE 34-kt wind radius from km to nm - r34_from_tcv = float(storm(ist)%tcv_r15se) - if (r34_from_tcv > 0.0) then - vradius(1,2) = int( ((r34_from_tcv*0.5396) - & / 5.0) + 0.5) * 5 - else - vradius(1,2) = 0 - endif - - ! Convert tcvitals SW 34-kt wind radius from km to nm - r34_from_tcv = float(storm(ist)%tcv_r15sw) - if (r34_from_tcv > 0.0) then - vradius(1,3) = int( ((r34_from_tcv*0.5396) - & / 5.0) + 0.5) * 5 - else - vradius(1,3) = 0 - endif - - ! Convert tcvitals NW 34-kt wind radius from km to nm - r34_from_tcv = float(storm(ist)%tcv_r15nw) - if (r34_from_tcv > 0.0) then - vradius(1,4) = int( ((r34_from_tcv*0.5396) - & / 5.0) + 0.5) * 5 - else - vradius(1,4) = 0 - endif - - ! Convert tcvitals roci from km to nm - - if (storm(ist)%tcv_penvrad > 0) then - roci_from_tcv = float(storm(ist)%tcv_penvrad) - rlastbar = roci_from_tcv * 0.5396 - else - rlastbar = -99.0 - endif - - ! Convert tcvitals pressure at roci from km to nm - - if (storm(ist)%tcv_penv > 0) then - proci_from_tcv = float(storm(ist)%tcv_penv) - plastbar = proci_from_tcv * 100.0 - else - plastbar = -99.0 - endif - - write (6,291) storm(ist)%tcv_storm_id - & ,storm(ist)%tcv_storm_name - & ,atcfymdh - 291 format (1x,'NOTE: TCVITALS_USED_FOR_ATCF_F00 ' - & ,' Storm ID: ',a4,' Storm name: ',a9 - & ,' YMDH: ',i10) - - call output_atcfunix (slonfg(ist,ifh) - & ,slatfg(ist,ifh),inp,ist - & ,ifcsthour,tcv_max_wind_ms - & ,tcv_mslp_pa,vradius,maxstorm,trkrinfo - & ,plastbar,rlastbar,-99.0 - & ,cps_vals,wcore_flag,ioaxret) - imeanzeta = -99 - igridzeta = -99 - if (trkrinfo%type == 'midlat' .or. - & trkrinfo%type == 'tcgen') then - call output_atcf_gen (-999.0 - & ,-999.0,inp,ist - & ,ifcsthour,0.0 - & ,0.0,vradius,maxstorm,trkrinfo - & ,-99,-99,-999.0,-999.0,-99.0 - & ,cps_vals,'u',imeanzeta,igridzeta,ioaxret) - endif - call output_atcf_sink (-999.0 - & ,-999.0,inp,ist - & ,ifcsthour,0.0 - & ,0.0,vradius,maxstorm,trkrinfo - & ,-99,-99,imeanzeta,igridzeta - & ,cps_vals,-999.0,-999.0,ioaxret) - call output_hfip (-999.0 - & ,-999.0,inp,ist - & ,ifh,0.0 - & ,0.0,vradius,-99.0,ioaxret) - - if (trkrinfo%type == 'tracker') then - ! Update 11/11: For a 'tracker' run, i.e., one in - ! which we know that there is an observed storm in - ! the area, we will assume that there was some type - ! of problem in the initialization that prevented - ! the storm from being found. In this case, even - ! though we have written out zeroes for the 00h - ! time, we want to at least try tracking again at - ! the next lead time. Requested by HWRF folks.... - if (verb .ge. 3) then - print *,' ' - print *,'++ NOTE: Even though a fix could not be' - print *,' made for this storm at 00h, we will ' - print *,' use the storm heading info from tc' - print *,' vitals to create a guess for the next' - print *,' lead time and attempt to track again' - print *,' at that time.' - print *,' ifh= ',ifh,' ist= ',ist - write (6,301) storm(ist)%tcv_storm_id - & ,storm(ist)%tcv_storm_name - 301 format (1x,' storm_id = ',a4,' storm_name = ',a9) - endif - call get_next_ges (slonfg,slatfg,ist,ifh - & ,imax,jmax,dx,dy,inp%model,valid_pt,readflag - & ,maxstorm,istmspd,istmdir,'tracker',trkrinfo - & ,ignret) - if (ignret /= 0) then - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - endif - stormswitch(ist) = 1 - endif - - endif - cycle stormloop - endif - - -c Now get first guess for next forecast time's position. -c But first, if this is the first time level (ifh=1) and -c the user has requested that storm vitals be output (this -c is usually only done for model analyses in order to get -c an analysis position from one time to the next), we will -c write out a storm vitals record for this time level. -c Note that we have already gotten the next guess position -c info just above for the case of the repeated analysis -c data, so we'll just output the genesis vitals record. - - if (ifh <= ifhmax) then - if (ifh == 1 .and. trkrinfo%out_vit == 'y') then - call output_gen_vitals (fixlon(ist,ifh) - & ,fixlat(ist,ifh),inp,ist,istmspd,istmdir,iovret) - endif - if (ifh < ifhmax) then - call get_next_ges (fixlon,fixlat,ist,ifh - & ,imax,jmax,dx,dy,inp%model,valid_pt,readflag - & ,maxstorm,istmspd,istmdir,'tracker',trkrinfo - & ,ignret) - if (ignret /= 0) then - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - stormswitch(ist) = 2 - cycle stormloop - endif - else - istmdir = -999 - istmspd = -999 - endif - endif - - case (2) - fixlon (ist,ifh) = -999.0 - fixlat (ist,ifh) = -999.0 - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! Case 2 in tracker for stormswitch' - print *,'!!! Storm name = ',storm(ist)%tcv_storm_name - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - endif - - if (ifh == 1) then - vradius = 0 - ileadtime = nint(fhreal(ifh) * 100.0) - ifcsthour = ileadtime / 100 - call output_atcfunix (-999.0 - & ,-999.0,inp,ist - & ,ifcsthour,0.0 - & ,0.0,vradius,maxstorm,trkrinfo - & ,-99.0,-99.0,-99.0 - & ,cps_vals,wcore_flag,ioaxret) - imeanzeta = -99 - igridzeta = -99 - if (trkrinfo%type == 'midlat' .or. - & trkrinfo%type == 'tcgen') then - call output_atcf_gen (-999.0 - & ,-999.0,inp,ist - & ,ifcsthour,0.0 - & ,0.0,vradius,maxstorm,trkrinfo - & ,-99,-99,-999.0,-999.0,-99.0 - & ,cps_vals,'u',imeanzeta,igridzeta,ioaxret) - endif - call output_atcf_sink (-999.0 - & ,-999.0,inp,ist - & ,ifcsthour,0.0 - & ,0.0,vradius,maxstorm,trkrinfo - & ,-99,-99,imeanzeta,igridzeta - & ,cps_vals,-999.0,-999.0,ioaxret) - call output_hfip (-999.0 - & ,-999.0,inp,ist - & ,ifh,0.0 - & ,0.0,vradius,-99.0,ioaxret) - endif - - case (3) - continue - -c print *,' ' -c print *,'!!! Case 3 in tracker for stormswitch' -c print *,'!!! Storm name = ',storm(ist)%tcv_storm_name -c print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - - end select - - enddo stormloop - -c if (trkrinfo%type == 'midlat' .or. -c & trkrinfo%type == 'tcgen') then -c call output_tracker_mask (masked_outc,kpds,kgds,lb,ifh -c & ,imax,jmax,iotmret) -c endif - - if(use_per_fcst_command=='y') then -c User wants us to run a command per forecast time - -! Replace %[FHOUR] with forecast hour, %[FMIN] with forecast minute. - -! The %[] format is chosen to avoid shell syntax errors if someone -! includes unknown %[] constructs. A stray , for example, -! would generate syntax errors or unexpected results in some -! shells. - -! If an unrecognized %[xxx] sequence is used, it will be retained in -! the final command. This allows the underlying command to detect -! the unreplaced %[] and use suitable default values or abort, as -! appropriate. - - pfc_final=per_fcst_command - call argreplace(pfc_final,pfc_cmd_len,'%[FHOUR]', & - & ifhours(ifh)) - call argreplace(pfc_final,pfc_cmd_len,'%[FMIN]', & - & iftotalmins(ifh)) - - if(verb.ge.2) then - print *,' ' - print *,'!!! Running per-fcst command' - print *,'!!! Unparsed = ',trim(per_fcst_command) - print *,'!!! Parsed = ',trim(pfc_final) - endif - call run_command(trim(pfc_final),pfcret) - if(pfcret/=0 .and. verb.ge.1) then - print *,' ' - print *,'!!! Non-zero exit status from per-fcst command' - print *,'!!! Command = ',trim(pfc_final) - print *,'!!! Exit status = ',pfcret - print *,'!!! Continuing anyway...' - elseif(pfcret==0 .and. verb.ge.2) then - print *,' ' - print *,'!!! Per-fcst command returned success status (0)' - endif - endif - - ifh = ifh + 1 - if (ifh > ifhmax) exit ifhloop - - if (inp%file_seq == 'multi') then - call baclose(lugb,igcret) - call baclose(lugi,iicret) - if ( verb .ge. 3 ) then - print *,'baclose return code for unit ',lugb,' = igcret = ' - & ,igcret - print *,'baclose return code for unit ',lugi,' = iicret = ' - & ,iicret - endif - - endif - - enddo ifhloop -c - call output_all (fixlon,fixlat,inp,maxstorm,ifhmax,ioaret) - call output_atcf (fixlon,fixlat,inp,xmaxwind,maxstorm,ifhmax - & ,ioaret) -c - 73 format ('fixpos ',a4,' fhr= ',i4,':',i2.2,' Fix position= ' - & ,f7.2,'E (',f6.2,'W)',2x,f7.2,' Max Wind= ',i3,' kts') - - if (allocated(prstemp)) deallocate (prstemp) - if (allocated(prsindex)) deallocate (prsindex) - if (allocated(iwork)) deallocate(iwork) - if (allocated(zeta)) deallocate (zeta) - if (allocated(u)) deallocate (u) - if (allocated(v)) deallocate (v) - if (allocated(hgt)) deallocate (hgt) - if (allocated(slp)) deallocate (slp) - if (allocated(tmean)) deallocate (tmean) - if (allocated(masked_out)) deallocate (masked_out) - if (allocated(masked_outc)) deallocate (masked_outc) - if (allocated(cpshgt)) deallocate (cpshgt) - if (allocated(vt850_flag)) deallocate (vt850_flag) - if (allocated(closed_mslp_ctr_flag)) - & deallocate (closed_mslp_ctr_flag) -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine argreplace(arg,n,name,val) - ! This subroutine is used to generate the pre-forecast-command - ! It will edit the command (argument "arg") and replace string - ! name with value val. That is how the per-forecast-command - ! has these modifications: - - ! %[FHOUR] -> replace with -> last forecast hour - ! %[FMIN] -> replace with -> last forecast minute - - implicit none - - integer, intent(in) :: n - character(n), intent(inout) :: arg - character(*), intent(in) :: name - integer, intent(in) :: val - - integer found,namelen,i1,i2 - character(n) :: out - - found=index(arg,name) - namelen=len(name) - i1=found-1 ! last char that is before name - i2=found+namelen ! index of last char in name - - if(found==0) return - - out=' ' - - if(found>1 .and. i21) then -! special case: name is at end of string -! hope the value fits... - write(out,'(A,I0)') arg(1:i1),val - elseif(i2= 1.24 .and. dell < 2.49) then ! UKMET - ri = ritrk_most - radinf = 275.0 - npts = 2 - else ! ECMWF - ri = ritrk_coarse - radinf = 350.0 - npts = 1 - endif - - pthresh = trkrinfo%mslpthresh ! These are read in in - vthresh = trkrinfo%v850thresh ! subroutine read_nlists.... - - call get_ij_bounds (npts,0,ri,imax,jmax,dx,dy - & ,glatmax,glatmin,glonmax,glonmin,parmlon,parmlat - & ,trkrinfo,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) - - if ( verb .ge. 3 ) then - print *,' ' - print *,' After get_ij B, ibeg jbeg = ',ibeg,jbeg - print *,' After get_ij B, iend jend = ',iend,jend - endif - - if (igiret /= 0) then - - if ( verb .ge. 1 ) then - print*,' ' - print*,'!!! ERROR in is_it_a_storm from call to' - print*,'!!! get_ij_bounds, stopping processing for ' - print*,'!!! storm number ',ist - endif - - isiret = 92 - return - endif - -c If the input cparm is slp, then check to see that the MSLP -c gradient in any direction from the MSLP center is at least -c 1mb / 200km, or 0.005mb/km. This is based on discussions with -c Morris & Bob, who have had good results using a 2mb/200km -c requirement. Since their model has a much finer resolution than -c all of the models we run the tracker on AND a much better -c depiction of the hurricane vortex, we do not use a requirement -c as strict as theirs, and so make the requirement only half as -c strong as theirs. -c -c If the input cparm is v850, then check to see that there is -c a circulation at 850 mb. We will do this by calculating the -c tangential wind of all points within a specified radius of -c the 850 minimum wind center, and seeing if there is a net -c average tangential wind speed of at least 5 m/s. -c -c UPDATE APRIL 2000: I've relaxed the thresholds slightly from -c 0.005 mb/km to 0.003 mb/km, and the wind threshold from -c 5 m/s to 3 m/s. Also, note that a special case for GDAS has -c been hardwired in that is weaker (0.002 mb/km and 2 m/s). -c That weaker GDAS requirement is for Qingfu's relocation stuff. -c -c UPDATE JULY 2001: The relaxed requirement put in place in -c April 2000 for the GDAS relocation has also been put in place -c for the GFS ensemble relocation. - - ! We will want to speed things up for finer resolution grids. - ! We can do this by skipping some of the points in the loop. - - if ((dx+dy)/2. > 0.20) then - bskip = 1 - else if ((dx+dy)/2. > 0.10 .and. (dx+dy)/2. <= 0.20) then - bskip = 2 - else if ((dx+dy)/2. > 0.05 .and. (dx+dy)/2. <= 0.10) then - bskip = 3 - else if ((dx+dy)/2. > 0.03 .and. (dx+dy)/2. <= 0.05) then - bskip = 5 - else if ((dx+dy)/2. <= 0.03) then - bskip = 10 - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,'In is_it_a_storm, ilonfix= ',ilonfix - & ,' jlatfix= ',jlatfix - print *,'ibeg jbeg iend jend = ',ibeg,jbeg,iend,jend - print *,'cparm= ',cparm,' parmlon parmlat = ',parmlon,parmlat - print *,'parmval= ',parmval - print *,' ' - endif - - vtavg = 0.0 - ivt = 0 - - xmaxpgrad = -999.0 - - jloop: do jix = jbeg,jend,bskip - iloop: do iix = ibeg,iend,bskip - - i = iix - j = jix - - if (i < 1) then - if (trkrinfo%gridtype == 'global') then - i = iix + imax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i < 1 in subroutine is_it_a_storm' - print *,'!!! for a non-global grid. STOPPING....' - print *,'!!! i= ',i - print *,' ' - endif - - stop 97 - endif - endif - - if (i > imax) then - if (trkrinfo%gridtype == 'global') then - i = iix - imax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i > imax in subroutine ' - print *,'!!! is_it_a_storm for a non-global grid.' - print *,'!!! STOPPING....' - print *,'!!! i= ',i,' imax= ',imax - print *,' ' - endif - - stop 97 - endif - endif - - call calcdist(parmlon,parmlat,glon(i),glat(j),dist,degrees) - - if (dist > radinf .or. dist == 0.0) cycle - - if (defined_pt(i,j)) then - - if (cparm == 'slp') then - pgradient = (slp(i,j) - parmval) / dist - if (pgradient > xmaxpgrad) xmaxpgrad = pgradient - - if ( verb .ge. 3 ) then - write (6,93) i,j,glon(i),glat(j),dist,slp(i,j),pgradient - endif - - if (pgradient > pthresh) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'In is_it_a_storm, valid pgradient found.' - print '(a23,f8.5)',' pgradient threshold = ',pthresh - print '(a23,f8.5)',' pgradient found = ',pgradient - print *,'mslp center = ',parmlon,parmlat,parmval - print *,'pgrad loc = ',glon(i),glat(j),slp(i,j) - endif - - stormcheck = 'Y' - exit jloop - endif - endif - - if (cparm == 'v850') then - call getvrvt (parmlon,parmlat,glon(i),glat(j) - & ,u(i,j,nlev850),v(i,j,nlev850),vr,vt,igvtret) - if ( verb .ge. 3 ) then - write (6,91) i,j,glon(i),glat(j),u(i,j,nlev850) - & ,v(i,j,nlev850),vr,vt - endif - - vtavg = vtavg + vt - ivt = ivt + 1 - endif - - endif - - enddo iloop - enddo jloop - - 91 format (1x,'i= ',i4,' j= ',i4,' glon= ',f7.2,' glat= ',f6.2 - & ,' u= ',f8.4,' v= ',f8.4,' vr= ',f9.5,' vt= ',f9.5) - - 93 format (1x,'i= ',i4,' j= ',i4,' glon= ',f7.2,' glat= ',f6.2 - & ,' dist= ',f8.2,' slp= ',f10.2,' pgradient= ',f8.5) - - if (stormcheck /= 'Y' .and. cparm == 'slp') then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! In is_it_a_storm, valid pgradient NOT FOUND.' - write (6,94) '!!! (Max pgradient less than ',pthresh,' mb/km)' - 94 format (1x,a29,5x,f8.5,a7) - write (6,95) '!!! Max pgradient (mb/km) found = ',xmaxpgrad - 95 format (1x,a34,f8.5) - print *,' ' - endif - - endif - - if (cparm == 'v850') then - - if (ivt > 0) then - vtavg = vtavg / float(ivt) - else - vtavg = 0.0 - endif - - if (parmlat > 0) then - if (vtavg >= vthresh) then - stormcheck = 'Y' - - if ( verb .ge. 3 ) then - print *,' ' - print *,' In is_it_a_storm, average 850 tangential' - & ,' winds are OKAY (>= +',vthresh,' m/s for a NH storm).' - print *,' Avg 850 tangential winds = ',vtavg,' m/s' - print *,' ' - endif - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! In is_it_a_storm, average 850 tangential' - print *,'!!! winds did NOT exceed +',vthresh - & ,' m/s (NH storm).' - print *,'!!! Avg 850 tangential winds = ',vtavg,' m/s' - print *,' ' - endif - - endif - else - if (vtavg <= -vthresh) then - stormcheck = 'Y' - - if ( verb .ge. 3 ) then - print *,' ' - print *,' In is_it_a_storm, average 850 tangential' - & ,' winds are OKAY (<= -',vthresh,' m/s for a SH storm).' - print *,' Avg 850 tangential winds = ',vtavg,' m/s' - print *,' ' - endif - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! In is_it_a_storm, average 850 tangential' - print *,'!!! winds did NOT exceed -',vthresh - & ,' m/s (SH storm).' - print *,'!!! Avg 850 tangential winds = ',vtavg,' m/s' - print *,' ' - endif - - endif - endif - - endif -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_phase (imax,jmax,inp,dx,dy,ist,ifh,trkrinfo - & ,fixlon,fixlat,valid_pt,maxstorm - & ,cps_vals,wcore_flag,igpret) -c -c ABSTRACT: This subroutine is a driver subroutine for -c determining the structure or phase of a cyclone. Initially, we -c will just have it use the Hart cyclone phase space (CPS) scheme. - - USE inparms; USE phase; USE set_max_parms; USE tracked_parms - USE def_vitals; USE trkrparms; USE grid_bounds - USE verbose_output - - implicit none - - type (datecard) inp - type (trackstuff) trkrinfo - - character wcore_flag*1 - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real cps_vals(3) - real dx,dy,paramb,vtl_slope,vtu_slope - integer imax,jmax,igpret,igcpret,ist,ifh,maxstorm - integer igvpret,igcv1ret,igcv2ret - logical(1) valid_pt(imax,jmax) -c - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,611) - write (6,613) - write (6,615) - write (6,*) ' ' - - 611 format(1x,'#-----------------------------------------------#') - 613 format(1x,'# start of routine to determine cyclone phase...#') - 615 format(1x,'#-----------------------------------------------#') - endif - - if (phasescheme == 'cps' .or. phasescheme == 'both') then - - if (ifh > 1) then - - ! This condition that ifh > 1 is so that we *not* do the cps - ! stuff on fhour=0 stuff, since we don't know the storm motion - ! direction for the analysis. - - if (fixlon(ist,ifh-1) > -990.0 .and. - & fixlat(ist,ifh-1) > -990.0) then - - ! Similarly, these next two conditions (previous lat and - ! previous lon > -999) are in there in case we're doing a - ! tcgen or midlat case and this is the *first* time level - ! within a forecast that the storm has been detected (again, - ! we don't yet know the storm heading). - - call get_cps_paramb (imax,jmax,inp,dx,dy,ist,ifh,trkrinfo - & ,fixlon,fixlat,valid_pt,paramb,maxstorm,igcpret) - - call get_cps_vth (imax,jmax,inp,dx,dy,ist,ifh,trkrinfo - & ,fixlon,fixlat,valid_pt,'lower',vtl_slope - & ,maxstorm,igcv1ret) - - call get_cps_vth (imax,jmax,inp,dx,dy,ist,ifh,trkrinfo - & ,fixlon,fixlat,valid_pt,'upper',vtu_slope - & ,maxstorm,igcv2ret) - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,73) storm(ist)%tcv_storm_id,ifhours(ifh) - & ,ifclockmins(ifh) - & ,paramb,vtl_slope,vtu_slope - endif - - cps_vals(1) = paramb - cps_vals(2) = vtl_slope - cps_vals(3) = vtu_slope - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,' >< CPS diagnostics were requested but will NOT' - print *,' >< be performed for this time level since we ' - print *,' >< are at the first time level for this newly' - print *,' >< found storm, therefore we cannot diagnose' - print *,' >< the model direction of storm movement.' - print *,' >< ifh= ',ifh - endif - - endif - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,' >< CPS diags were requested but will NOT be' - print *,' >< performed for this time level since we are at' - print *,' >< time level 1 and we cannot diagnose the model' - print *,' >< direction of storm movement. ' - print *,' >< ifh= ',ifh - endif - - endif - - endif - - 73 format ('cps_stats: ',a4,' lead time= ',i3,':',i2,' paramb= ' - & ,f8.2,' vtl= ',f9.2,' vtu= ',f9.2) - - - if (phasescheme == 'vtt' .or. phasescheme == 'both') then - call get_vtt_phase (inp,imax,jmax,dx,dy,ist,ifh,trkrinfo - & ,fixlon,fixlat,valid_pt,maxstorm,wcore_flag,igvpret) - endif - - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,631) - write (6,633) - write (6,635) - write (6,*) ' ' - - 631 format(1x,'#-------------------------------------------------#') - 633 format(1x,'# End of routine to determine cyclone phase... #') - 635 format(1x,'#-------------------------------------------------#') - endif - -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_cps_paramb (imax,jmax,inp,dx,dy,ist,ifh,trkrinfo - & ,fixlon,fixlat,valid_pt,paramb,maxstorm,igcpret) -c -c ABSTRACT: This subroutine is part of the algorithm for determining -c the structure, or phase, of a cyclone. For Hart's cyclone phase -c space, this subroutine determines "Parameter B", which determines -c the degree of thermal symmetry between the "left" and "right" -c hemispheres of a storm, in the layer between 900 and 600 mb. -c We evaluate only those points that are within 500 km of the -c storm center. - - USE inparms; USE phase; USE set_max_parms; USE trig_vals - USE grid_bounds; USE tracked_parms; USE def_vitals; USE trkrparms - USE verbose_output - - implicit none - - type (datecard) inp - type (trackstuff) trkrinfo - - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real zthicksum(2) - real rlonc,rlatc,rlonb,rlatb,xdist,degrees,d,cosarg - real st_heading,st_heading_rad,ricps,dx,dy - real pt_dir,pt_dir_rad,zthick,hemval,paramb - real zthick_right_mean,zthick_left_mean - integer imax,jmax,igpret,igcpret,ist,ifh,npts,bskip,i,j - integer ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret - integer left_ct,right_ct,hemis,icount,maxstorm,ip - logical(1) valid_pt(imax,jmax) -c - ricps = 500.0 - -c ----------------------------------------------------------------- -c First, determine the angle that the storm took getting from the -c last position to the current one. -c ----------------------------------------------------------------- - - call calcdist(fixlon(ist,ifh),fixlat(ist,ifh) - & ,fixlon(ist,ifh-1),fixlat(ist,ifh-1),xdist,degrees) - - rlonc = (360.-fixlon(ist,ifh)) * dtr - rlatc = fixlat(ist,ifh) * dtr - rlonb = (360.-fixlon(ist,ifh-1)) * dtr - rlatb = fixlat(ist,ifh-1) * dtr - d = degrees * dtr - - if (d == 0.0) then - - ! Storm is stationary... - st_heading = 0.0 - - else - - cosarg = (sin(rlatc)-sin(rlatb)*cos(d))/(sin(d)*cos(rlatb)) - if (cosarg > 1.0) cosarg = 1 - if (cosarg < -1.0) cosarg = -1 - - if (sin(rlonc-rlonb) < 0.0) then - st_heading_rad = acos(cosarg) - else - st_heading_rad = 2*pi - acos(cosarg) - endif - - st_heading = st_heading_rad / dtr - - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,' In get_cps_paramb, lead time= ',ifhours(ifh),':' - & ,ifclockmins(ifh) - & ,' ',storm(ist)%tcv_storm_id,' ',storm(ist)%tcv_storm_name - print '(a43,f9.3)',' In get_cps_paramb, model storm heading = ' - & ,st_heading - print *,' ' - endif - -c ----------------------------------------------------------------- -c Now call get_ij_bounds to get the boundaries for a smaller -c subdomain, or subset of gridpoints, in which to evaluate the -c parameter B statistic. We will only include points within -c 500 km of the storm center for evaluation. -c ----------------------------------------------------------------- - - npts = ceiling(ricps/(dtk*(dx+dy)/2.)) - - call get_ij_bounds (npts,0,ricps,imax,jmax,dx,dy - & ,glatmax,glatmin,glonmax,glonmin,fixlon(ist,ifh),fixlat(ist,ifh) - & ,trkrinfo,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) - - if (igiret /= 0) then - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in get_cps_paramb from call to' - print *,'!!! get_ij_bounds, stopping processing for' - print *,'!!! storm number ',ist - endif - igcpret = 92 - return - endif - -c ----------------------------------------------------------------- -c Now loop through all of the points of the subdomain. If the -c point is further than 500 km from the storm center, discard it. -c Otherwise, evaluate the angle from the storm center to this point -c to determine the hemisphere of the point, that is, if the point -c is to the left or the right of the storm track. -c ----------------------------------------------------------------- - - ! We will want to speed things up for finer resolution grids. - ! We can do this by skipping some of the points in the - ! loop for the evaluation of parameter B. - - if ((dx+dy)/2. > 0.20) then - bskip = 1 - else if ((dx+dy)/2. > 0.10 .and. (dx+dy)/2. <= 0.20) then - bskip = 2 - else if ((dx+dy)/2. > 0.05 .and. (dx+dy)/2. <= 0.10) then - bskip = 3 - else if ((dx+dy)/2. > 0.03 .and. (dx+dy)/2. <= 0.05) then - bskip = 5 - else if ((dx+dy)/2. <= 0.03) then - bskip = 10 - endif - - left_ct = 0 - right_ct = 0 - zthicksum = 0 - icount = 0 - -c print *,'CPS CORE: ibeg= ',ibeg,' iend= ',iend -c print *,'CPS CORE: jbeg= ',jbeg,' jend= ',jend - - jloop: do j=jbeg,jend,bskip - iloop: do i=ibeg,iend,bskip - - icount = icount + 1 - -c print *,'CPS CORE: ist= ',ist,' ifh= ',ifh,' j= ',j,' i= ',i - - if (i > imax) then - if (trkrinfo%gridtype == 'global') then - ip = i - imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In get_cps_paramb, the ' - print *,'!!! user-requested eastern search boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. ' - print *,'!!! Parameter B will not be computed.' - print *,'!!! Subroutine location A....' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! User-requested eastern i = ',i - print *,' ' - endif - - paramb = -9999.99 - igcpret = 95 - return - endif - else - ip = i - endif - - if (i < 1) then - if (trkrinfo%gridtype == 'global') then - ip = i + imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i < 1 in subroutine get_cps_paramb' - print *,'!!! for a non-global grid.' - print *,'!!! Parameter B will not be computed.' - print *,'!!! i= ',i - print *,' ' - endif - - paramb = -9999.99 - igcpret = 95 - return - endif - endif - - call calcdist (fixlon(ist,ifh),fixlat(ist,ifh),glon(ip) - & ,glat(j),xdist,degrees) - - if (xdist > ricps) cycle iloop - - if (valid_pt(ip,j)) then - continue - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! UNDEFINED PT OUTSIDE OF GRID ' - print *,'!!! IN GET_CPS_PARAMB....' - print *,'!!! i= ',i,' ip= ',ip,' j= ',j - print *,'!!! fixlon= ',fixlon(ist,ifh),' fixlat= ' - & ,fixlat(ist,ifh) - print *,'!!! glon= ',glon(ip),' glat= ',glat(j) - print *,'!!! Parameter B will not be computed.' - print *,'!!! EXITING GET_CPS_PARAMB....' - print *,' ' - endif - - paramb = -9999.99 - igcpret = 95 - return - endif - - !---------------------------------------------------------- - ! Calculate angle from storm center to point, in a 0-360 - ! framework, clockwise positive. - !---------------------------------------------------------- - - rlonc = (360.-glon(ip)) * dtr - rlatc = glat(j) * dtr - rlonb = (360.-fixlon(ist,ifh)) * dtr - rlatb = fixlat(ist,ifh) * dtr - d = degrees * dtr - - if (d > 0.) then - cosarg = (sin(rlatc)-sin(rlatb)*cos(d))/(sin(d)*cos(rlatb)) - if (cosarg > 1.0) cosarg = 1 - if (cosarg < -1.0) cosarg = -1 - - if (sin(rlonc-rlonb) < 0.0) then - pt_dir_rad = acos(cosarg) - else - pt_dir_rad = 2*pi - acos(cosarg) - endif - else - pt_dir_rad = 0.0 - endif - - pt_dir = pt_dir_rad / dtr - - !------------------------------------------------------------ - ! Based on the angle that the point is from the storm center, - ! determine if the point is to the left or the right of the - ! storm track. - !------------------------------------------------------------ - - if (st_heading >= 180.0) then - if ((st_heading - pt_dir) > 0.0 .and. - & (st_heading - pt_dir) <= 180) then - hemis = 2 - left_ct = left_ct + 1 - else - hemis = 1 - right_ct = right_ct + 1 - endif - else - if ((pt_dir - st_heading) > 0.0 .and. - & (pt_dir - st_heading) <= 180) then - hemis = 1 - right_ct = right_ct + 1 - else - hemis = 2 - left_ct = left_ct + 1 - endif - endif - - !------------------------------------------------------------ - ! Calculate the 600-900 mb thickness at this point and add - ! the thickness value to the array for the correct "storm - ! hemisphere". - !------------------------------------------------------------ - - zthick = cpshgt(ip,j,7) - cpshgt(ip,j,1) - zthicksum(hemis) = zthicksum(hemis) + zthick - - if ( verb .ge. 3 ) then - write (6,51) rlonb/dtr,rlatb/dtr,rlonc/dtr,rlatc/dtr - & ,st_heading,pt_dir,hemis,zthick - endif - - enddo iloop - enddo jloop - - 51 format (1x,'stlon stlat = ',2(f6.2,2x),' ptlon ptlat = ' - & ,2(f6.2,2x),' sthead= ',f6.2,' ptdir= ',f6.2,' hemis= ' - & ,i1,' zthick= ',f7.2) - -c ------------------------------------------------------------------ -c Now calculate parameter B. The hemval parameter = +1 for storms -c in the Northern Hemisphere and -1 for Southern Hemisphere storms. -c ------------------------------------------------------------------ - - zthick_right_mean = zthicksum(1) / float(right_ct) - zthick_left_mean = zthicksum(2) / float(left_ct) - - if (fixlat(ist,ifh) < 0.0) then - hemval = -1.0 - else - hemval = 1.0 - endif - - paramb = hemval * (zthick_right_mean - zthick_left_mean) - - if ( verb .ge. 3 ) then - print *,' ' - print *,' In get_cps_paramb, lead time= ',ifhours(ifh),':' - & ,ifclockmins(ifh) - & ,' ',storm(ist)%tcv_storm_id,' ',storm(ist)%tcv_storm_name - print *,' right_ct= ',right_ct,' left_ct= ',left_ct - print *,' zthicksum(1)= ',zthicksum(1) - print *,' zthicksum(2)= ',zthicksum(2) - print *,' zthick_right_mean= ',zthick_right_mean - print *,' zthick_left_mean= ',zthick_left_mean - print *,' hemval= ',hemval - print *,' END of get_cps_paramb, paramb= ',paramb - endif - -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_cps_vth (imax,jmax,inp,dx,dy,ist,ifh,trkrinfo - & ,fixlon,fixlat,valid_pt,clayer,vth_slope,maxstorm,igcvret) -c -c ABSTRACT: This subroutine is part of the algorithm for determining -c the structure, or phase, of a cyclone. For Hart's cyclone phase -c space, this subroutine determines the thermal wind profile for -c either the lower troposphere (i.e., between 600 and 900 mb) or the -c upper troposphere (i.e., between 300 and 600 mb). We evaluate -c only those points that are within 500 km of the storm center. - - USE inparms; USE phase; USE set_max_parms; USE trig_vals - USE grid_bounds; USE tracked_parms; USE def_vitals; USE trkrparms - USE verbose_output - - implicit none - - type (datecard) inp - type (trackstuff) trkrinfo - - character clayer*5 - real tmp1,tmp2,tmp3 - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real zmax(7),zmin(7),zdiff(7),xlolevs(7),xhilevs(7),plev(7) - real dlnp(7),dzdlnp(7),dz(7),lnp(7) - real vth_slope,xdist,degrees,d,cosarg - real ricps,dx,dy,R2 - integer imax,jmax,igpret,igcpret,ist,ifh,npts,bskip,i,j,k,kix - integer ilonfix,jlatfix,ibeg,jbeg,iend,jend,igcvret,igiret - integer kbeg,kend,icount,maxstorm,ip - logical(1) valid_pt(imax,jmax) - - data xlolevs /900.,850.,800.,750.,700.,650.,600./ - data xhilevs /600.,550.,500.,450.,400.,350.,300./ -c data xlolevs /90000.,85000.,80000.,75000.,70000.,65000.,60000./ -c data xhilevs /60000.,55000.,50000.,45000.,40000.,35000.,30000./ -c - ricps = 500.0 - plev = 0.0 - - if (clayer == 'lower') then - kbeg = 1 - kend = 7 - plev = xlolevs - else - kbeg = 7 - kend = 13 - plev = xhilevs - endif - -c ----------------------------------------------------------------- -c First, call get_ij_bounds to get the boundaries for a smaller -c subdomain, or subset of gridpoints, in which to evaluate the -c parameter B statistic. We will only include points within -c 500 km of the storm center for evaluation. -c ----------------------------------------------------------------- - - npts = ceiling(ricps/(dtk*(dx+dy)/2.)) - - call get_ij_bounds (npts,0,ricps,imax,jmax,dx,dy - & ,glatmax,glatmin,glonmax,glonmin,fixlon(ist,ifh),fixlat(ist,ifh) - & ,trkrinfo,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) - - if (igiret /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in get_cps_vtl from call to' - print *,'!!! get_ij_bounds, stopping processing for' - print *,'!!! storm number ',ist - endif - - igcvret = 92 - return - endif - -c ------------------------------------------------------------------ -c Now loop through all of the points of the subdomain at each level. -c If a point is further than 500 km from the storm center, discard -c it. Otherwise, evaluate the gp height at the point to determine -c if it is a max or a min for the given level. Store the max and -c min height at each level in an array. -c ------------------------------------------------------------------ - -c ! We will want to speed things up for finer resolution grids. -c ! We can do this by skipping some of the points in the -c ! loop for the evaluation of parameter B. -c -c if ((dx+dy)/2. > 0.20) then -c bskip = 1 -c else if ((dx+dy)/2. > 0.10 .and. (dx+dy)/2. <= 0.20) then -c bskip = 2 -c else if ((dx+dy)/2. <= 0.10) then -c bskip = 3 -c endif - - bskip = 1 ! Don't do any skipping for now.... - - zmax = -9999999.0 - zmin = 9999999.0 - zdiff = 0.0 - lnp = 0.0 - - levloop: do k = kbeg,kend - - if (kbeg == 7) then - ! processing upper layers (600-300 mb) - kix = k - 6 - else - ! processing lower layers (900-600 mb) - kix = k - endif - - lnp(kix) = log(plev(kix)) - - jloop: do j=jbeg,jend,bskip - iloop: do i=ibeg,iend,bskip - - icount = icount + 1 - - if (i > imax) then - if (trkrinfo%gridtype == 'global') then - ip = i - imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In get_cps_vth, the ' - print *,'!!! user-requested eastern search boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. ' - print *,'!!! Thermal wind parm will not be computed.' - print *,'!!! Subroutine location A....' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! User-requested eastern i = ',i - print *,' ' - endif - - vth_slope = -9999.99 - igcvret = 95 - return - endif - else - ip = i - endif - - if (i < 1) then - if (trkrinfo%gridtype == 'global') then - ip = i + imax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i < 1 in subroutine get_cps_vth' - print *,'!!! for a non-global grid.' - print *,'!!! Thermal wind parm will not be computed.' - print *,'!!! i= ',i - print *,' ' - endif - - vth_slope = -9999.99 - igcvret = 95 - return - endif - endif - - call calcdist (fixlon(ist,ifh),fixlat(ist,ifh),glon(ip) - & ,glat(j),xdist,degrees) - - if (xdist > ricps) cycle iloop - - if (valid_pt(ip,j)) then - continue - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! UNDEFINED PT OUTSIDE OF GRID ' - print *,'!!! IN GET_CPS_VTH....' - print *,'!!! i= ',i,' ip= ',ip,' j= ',j,' k= ',k - & ,' clayer= ',clayer - print *,'!!! fixlon= ',fixlon(ist,ifh),' fixlat= ' - & ,fixlat(ist,ifh) - print *,'!!! glon(ip)= ',glon(ip),' glat= ',glat(j) - print *,'!!! Thermal wind parm will not be computed.' - print *,'!!! EXITING GET_CPS_VTH....' - print *,' ' - endif - - vth_slope = -9999.99 - igcvret = 95 - return - endif - - tmp1 = zmax(kix) - tmp2 = cpshgt(ip,j,k) - tmp3 = zmin(kix) - - zmax(kix) = max(tmp1,tmp2) - zmin(kix) = min(tmp3,tmp2) - -c zmax(kix) = max(zmax(kix),cpshgt(ip,j,k)) -c zmin(kix) = min(zmin(kix),cpshgt(ip,j,k)) - - enddo iloop - enddo jloop - - zdiff(kix) = zmax(kix) - zmin(kix) - - enddo levloop - -c ------------------------------------------------------------------ -c Now calculate the vertical derivative of the gp height, that is, -c d(dz)/d(ln(p)). Here, zdiff is the gp height perturbation at a -c given level, calculated in the loop above; dz is the vertical -c change in that perturbation from one level to the next. -c ------------------------------------------------------------------ - - dz = 0.0 - dlnp = 0.0 - dzdlnp = 0.0 - - do k = 2,7 - dz(k) = zdiff(k) - zdiff(k-1) - dlnp(k) = log(plev(k)) - log(plev(k-1)) - dzdlnp(k) = dz(k) / dlnp(k) - enddo - -c ------------------------------------------------------------------ -c Now call a correlation routine to get the slope of a regression -c line. The independent variable that we input is dlnp, the change -c in log of pressure with height. The dependent variable is -c dzdlnp, the vertical change in the height perturbation with -c respect to the change in pressure. The slope that is returned -c defines whether we've got a cold core or warm core system. -c See Hart (MWR, April 2003, Vol 131, pp. 585-616) for more -c details, specifically his Fig. 3 and the discussion surrounding. -c Note that in the call to calccorr, we are sending only 6 of the -c 7 elements of the dlnp and dzdlnp arrays, beginning with the -c 2nd element of each. That's because the first array value for -c each of those arrays is empty, since in the loop just above, we -c start with kbeg+1, not kbeg. -c ------------------------------------------------------------------ - - call calccorr(lnp(2),zdiff(2),6,R2,vth_slope) - - if ( verb .ge. 3 ) then - print *,' ' - print *,'++ In get_cps_vth, values for vth follow for ' - & ,'lead time= ',ifhours(ifh),':',ifclockmins(ifh),' ' - & ,storm(ist)%tcv_storm_id,' ',storm(ist)%tcv_storm_name - print *,' ... clayer = ',clayer - print *,' ' - endif - - do k = kbeg,kend - - if (kbeg == 7) then - kix = k - 6 - else - kix = k - endif - - if ( verb .ge. 3 ) then - print *,' ' - write (6,31) k,plev(kix),zmax(kix),zmin(kix),zdiff(kix) - if (kix > 1) then - write (6,32) plev(kix),log(plev(kix)) - & ,plev(kix-1),log(plev(kix-1)) - write (6,33) dz(kix),dlnp(kix),dzdlnp(kix) - else - write (6,34) - endif - endif - - enddo - - 31 format (1x,' +++ k= ',i2,' press= ',f8.1,' zmax= ',f7.2 - & ,' zmin= ',f7.2,' zdiff= ',f7.2) - 32 format (1x,' ln(',f7.1,')= ',f9.6,' ln(',f7.1,')= ',f9.6) - 33 format (1x,' dz= ',f7.2,' dlnp= ',f9.6,' dzdlnp= ',f9.3) - 34 format (1x,' --- First level... no derivatives done...') -c - return - end -c -C---------------------------------------------------- -C -C---------------------------------------------------- - subroutine calccorr(xdat,ydat,numpts,R2,slope) -c -c This subroutine is the main driver for a series of -c other subroutines below this that will calculate the -c correlation between two input arrays, xdat and ydat. -c -c INPUT: -c xdat array of x (independent) data points -c ydat array of y (dependent) data points -c numpts number of elements in each of xdat and ydat -c -c OUTPUT: -c R2 R-squared, the coefficient of determination -c slope Slope of regression line -c -c xdiff array of points for xdat - xmean -c ydiff array of points for ydat - ymean -c yestim array of regression-estimated points -c yresid array of residuals (ydat(i) - yestim(i)) - - USE verbose_output - - implicit none - - real xdat(numpts),ydat(numpts) - real xdiff(numpts),ydiff(numpts) - real yestim(numpts),yresid(numpts) - real xmean,ymean,slope,yint,R2 - integer numpts,i - -c - call getmean(xdat,numpts,xmean) - call getmean(ydat,numpts,ymean) -c - call getdiff(xdat,numpts,xmean,xdiff) - call getdiff(ydat,numpts,ymean,ydiff) -c - call getslope(xdiff,ydiff,numpts,slope) - yint = ymean - slope * xmean -c - call getyestim(xdat,slope,yint,numpts,yestim) - call getresid(ydat,yestim,numpts,yresid) -c - - if ( verb .ge. 3 ) then - print *,' ' - print *,' *--------------------------------------------------* ' - print *,' * CPS Thermal wind regression details * ' - print *,' *--------------------------------------------------* ' - endif - - call getcorr(yresid,ydiff,numpts,R2) - - if ( verb .ge. 3 ) then - print *,' i ydat xdat ydiff xdiff e' - & ,' e2 ydiff2' - print *,' ---- ----- ----- ----- ----- ----- ' - & ,' ----- -----' - do i = 1,numpts - write(6,'(2x,i3,2x,f7.2,2x,f7.4,2x,f7.2,2x,f7.4,3(2x,f7.2))') - & i,ydat(i),xdat(i),ydiff(i) - & ,xdiff(i),yresid(i),yresid(i)*yresid(i) - & ,ydiff(i)*ydiff(i) - enddo - - print *,' ---- ----- ----- ----- ----- ----- ' - & ,' ----- -----' - print *,' ' - write (6,'(1x,a13,f9.3,3x,a5,f7.2)') ' means: y: ',ymean - & ,' x: ',xmean - - write (6,*) ' ' - write (6,30) 'slope= ',slope,' y-intercept = ',yint - 30 format (2x,a7,f10.3,a23,f10.3) - if (slope .gt. 0.0) then - write(6,40) 'Regression equation: Y = ',yint,' + ',slope - else - write(6,40) 'Regression equation: Y = ',yint,' - ' - & ,abs(slope) - endif - 40 format (2x,a27,f8.2,a3,f8.2,'X') -c - print *,' ' - write (6,'(1x,a17,f7.4,5x,a7,f7.4)') ' R2(r_squared) = ',R2 - & ,' r = ',sqrt(R2) - print *,' ' - print *,' *--------------------------------------------------* ' - print *,' * End of regression details * ' - print *,' *--------------------------------------------------* ' - endif - - return - end - -c-------------------------------------------c -c c -c-------------------------------------------c - subroutine getmean(xarr,inum,zmean) -c -c This subroutine is part of the correlation calculation, -c and it simply returns the mean of the input array, xarr. -c -c INPUT: -c xarr input array of data points -c inum number of data points in xarr -c -c OUTPUT: -c zmean mean of data values in xarr - - implicit none - - real xarr(inum) - real xsum,zmean - integer i,inum -c - xsum = 0.0 - do i = 1,inum - xsum = xsum + xarr(i) - enddo -c - zmean = xsum / float(MAX(inum,1)) -c - return - end - -c-------------------------------------------c -c c -c-------------------------------------------c - subroutine getdiff(xarr,inum,zmean,zdiff) -c -c This subroutine is part of the correlation calculation, -c and it returns in the array zdiff the difference values -c between each member of the input array xarr and the -c mean value, zmean. -c -c INPUT: -c xarr input array of data points -c inum number of data points in xarr -c zmean mean of input array (xarr) -c -c OUTPUT: -c zdiff array containing xarr(i) - zmean - - implicit none - - real xarr(inum),zdiff(inum) - real zmean - integer i,inum -c - do i = 1,inum - zdiff(i) = xarr(i) - zmean - enddo -c - return - end - -c-------------------------------------------c -c c -c-------------------------------------------c - - subroutine getslope(xarr,yarr,inum,slope) -c -c This subroutine is part of the correlation calculation, -c and it returns the slope of the regression line. -c -c INPUT: -c xarr input array of xdiffs (x - xmean) -c yarr input array of ydiffs (y - ymean) -c inum number of points in x & y arrays -c -c OUTPUT: -c slope slope of regression line - - real xarr(inum),yarr(inum) - real slope,sumxy,sumx2 - integer i,inum - -c First sum up the xarr*yarr products.... - - sumxy = 0.0 - do i = 1,inum - sumxy = sumxy + xarr(i) * yarr(i) - enddo - -c Now sum up the x-squared terms.... - - sumx2 = 0.0 - do i = 1,inum - sumx2 = sumx2 + xarr(i) * xarr(i) - enddo - -c Now get the slope.... - - slope = sumxy / sumx2 - - return - end - -c-------------------------------------------c -c c -c-------------------------------------------c - subroutine getyestim(xarr,slope,yint,inum,yestim) -c -c This subroutine is part of the correlation calculation, -c and it calculates all the predicted y-values using the -c regression equation that has been calculated. -c -c INPUT: -c xarr array of x data points -c slope slope of the calculated regression line -c yint y-intercept of the calculated regression line -c inum number of input points -c -c OUTPUT: -c yestim array of y pts estimated from regression eqn. - - implicit none - - real xarr(inum),yestim(inum) - real slope,yint - integer i,inum -c - do i = 1,inum - yestim(i) = yint + xarr(i) * slope - enddo -c - return - end - -c-------------------------------------------c -c c -c-------------------------------------------c - subroutine getresid(yarr,yestim,inum,yresid) -c -c This subroutine is part of the correlation calculation, -c and it calculates all the residual values between the -c input y data points and the y-estim predicted y values. -c -c INPUT: -c yarr array of y data points -c yestim array of y pts estimated from regression eqn. -c inum number of input points -c -c OUTPUT: -c yresid array of residuals (ydat(i) - yestim(i)) - - implicit none - - real yarr(inum),yestim(inum),yresid(inum) - integer i,inum -c - do i = 1,inum - yresid(i) = yarr(i) - yestim(i) - enddo -c - return - end - -c-------------------------------------------c -c c -c-------------------------------------------c - subroutine getcorr(yresid,ydiff,inum,R2) -c -c This subroutine is part of the correlation calculation, -c and it does the actual correlation calculation. -c -c INPUT: -c yresid array of residuals (ydat(i) - yestim(i)) -c ydiff array of points for ydat - ymean -c inum number of points in the arrays -c -c OUTPUT: -c R2 R-squared, the coefficient of determination - - USE verbose_output - - implicit none - - real yresid(inum),ydiff(inum) - real R2,sumyresid,sumydiff - integer i,inum -c - sumyresid = 0.0 - sumydiff = 0.0 - - do i = 1,inum - sumyresid = sumyresid + yresid(i) * yresid(i) - sumydiff = sumydiff + ydiff(i) * ydiff(i) - enddo - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,30) 'Sum of y-residuals squared (e2) = ',sumyresid - write (6,30) 'Sum of y-diffs squared (ydiff2) = ',sumydiff - write (6,*) ' ' - 30 format (1x,a35,f10.2) - endif - - if (sumydiff == 0.0) then - R2=1.0 - else - R2 = 1 - sumyresid / sumydiff - endif -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_vtt_phase (inp,imax,jmax,dx,dy,ist,ifh,trkrinfo - & ,fixlon,fixlat,valid_pt,maxstorm,wcore_flag,igvpret) -c -c ABSTRACT: This subroutine is part of the algorithm for determining -c the structure, or phase, of a cyclone. Here, we are only looking -c at the mid-to-upper tropospheric warm anomaly at the center of -c the storm. The temperature data that we are searching through in -c the tmean array should be the 300-500 mb mean temperature data. -c The criteria in this algorithm are based loosely on Vitart's -c criteria for warm core checking, but the nuts & bolts of the -c subroutine use algorithms from this tracker, including the barnes -c analysis. First, we locate the warm core with the find_maxmin -c routine. Then we use the check_closed_contour routine to see if -c there is a closed temperature contour surrounding the warm core. -c -c INPUT: -c inp -c imax Num pts in i direction on input grid -c jmax Num pts in j direction on input grid -c inp contains input date and model number information -c dx Grid spacing in i-direction on input grid -c dy Grid spacing in j-direction on input grid -c ist integer storm number (internal to the tracker) -c ifh integer index for lead time -c trkrinfo derived type containing grid info on user boundaries -c fixlon array containing found fix longitudes -c fixlat array containing found fix latitudes -c valid_pt Logical; bitmap indicating if valid data at that pt. -c maxstorm maximum # of storms to be handled -c -c OUTPUT: -c wcore_flag 'u'=undetermined, 'y'=yes, 'n'=no -c igvpret Return code for this subroutine. -c -c LOCAL: -c wcore_mean_val barnes-averaged value of the temperature at the -c location where the tracker found the warm core. -c wcore_point_max max temperature found at a gridpoint near the -c location where the tracker found the warm core using -c barnes analysis. - - USE set_max_parms; USE grid_bounds; USE trkrparms; USE contours - USE tracked_parms; USE gen_vitals; USE def_vitals; USE inparms - USE phase - USE verbose_output - - implicit none - - type (trackstuff) trkrinfo,wcore_trkrinfo - type (cint_stuff) wcore_contour_info - type (datecard) inp - - character*1 get_last_contour_flag,wcore_flag - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real dx,dy,wcore_mean_val,wcore_mean_lon,wcore_mean_lat - real wcore_point_max,tlastcont,rlastcont,tlastout,rlastout - integer imax,jmax,igvpret,ist,ifh,npts,bskip,i,j - integer ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret - integer icount,maxstorm,ip,ifmret,ifilret,ifix,jfix,icccret - integer num_check_conts - logical(1) valid_pt(imax,jmax),compflag,wcore_mask(imax,jmax) - logical(1) output_file_open -c - - if ( verb .ge. 3 ) then - print *,' ' - print *,'*-------------------------------------------------*' - print *,'* At top of get_vtt_phase *' - write (6,102) ifhours(ifh),ifclockmins(ifh) - 102 format (1x,'* Searching for warm core at hour ',i4,':',i2.2) - write (6,103) wcore_depth - 103 format (1x,'* Warm core depth threshold (wcore_depth) = ',f7.2) - print *,'*-------------------------------------------------*' - endif - -c ------------------------------------------------------------ - wcore_mask = .false. - wcore_mean_lon = -999.0 - wcore_mean_lat = -999.0 - wcore_trkrinfo = trkrinfo ! set equal to values from trkrinfo... - wcore_trkrinfo%contint = wcore_depth ! ...except use the warm - ! core contour interval specified by - ! the user in the extrkr.sh script. - -c ------------------------------------------------------------ -c First, call find_maxmin to locate the warm core - - call find_maxmin (imax,jmax,dx,dy,'tmp' - & ,tmean,'max',ist,fixlon(ist,ifh),fixlat(ist,ifh) - & ,glon,glat,valid_pt,trkrinfo,compflag - & ,wcore_mean_lon,wcore_mean_lat,wcore_mean_val - & ,glatmax,glatmin,glonmax,glonmin,inp%modtyp,ifmret) - -c ------------------------------------------------------------ -c Once find_maxmin returns a value and a location for the -c barnes-averaged value of a warm core, then make a call to -c fix_latlon_to_ij to (1) get the actual gridpoint value of the -c temperature (the value stored in wcore_mean_val is an -c area-averaged value coming from the barnes analysis), and -c (2) to get the (i,j) indeces for this gridpoint to be used in -c the call to check_closed_contour below. - - if (wcore_mean_lat > -99.0 .and. wcore_mean_lon > -990.0) then - call fix_latlon_to_ij (imax,jmax,dx,dy,tmean,'max' - & ,valid_pt,wcore_mean_lon,wcore_mean_lat - & ,wcore_mean_val,ifix,jfix,wcore_point_max,'tracker' - & ,glatmax,glatmin,glonmax,glonmin - & ,trkrinfo,ifilret) - if (ifilret == 0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'+++ Warm core stats: ' - write (6,105) storm(ist)%tcv_storm_id - & ,gstorm(ist)%gv_gen_date - & ,gstorm(ist)%gv_gen_fhr,gstorm(ist)%gv_gen_lat - & ,gstorm(ist)%gv_gen_latns,gstorm(ist)%gv_gen_lon - & ,gstorm(ist)%gv_gen_lonew,gstorm(ist)%gv_gen_type - & ,ifhours(ifh),ifclockmins(ifh) - & ,wcore_mean_lon,360.-wcore_mean_lon - & ,wcore_mean_lat,wcore_mean_val - write (6,106) storm(ist)%tcv_storm_id - & ,gstorm(ist)%gv_gen_date - & ,gstorm(ist)%gv_gen_fhr,gstorm(ist)%gv_gen_lat - & ,gstorm(ist)%gv_gen_latns,gstorm(ist)%gv_gen_lon - & ,gstorm(ist)%gv_gen_lonew,gstorm(ist)%gv_gen_type - & ,ifhours(ifh),ifclockmins(ifh) - & ,ifix,jfix,wcore_point_max - endif - - else - ! Search went out of regional grid bounds.... - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR IN get_vtt_phase. The call to ' - print *,'!!! fix_latlon_to_ij returned a non-zero return ' - print *,'!!! code, which means that the search for the fix' - print *,'!!! i and j went out of bounds for a regional ' - print *,'!!! grid. This should have been caught in a ' - print *,'!!! previous call to find_maxmin for one of the ' - print *,'!!! various fix parms. In any event, we will not' - print *,'!!! search for a warm core for this storm and ' - print *,'!!! lead time.' - print *,' ' - write (6,115) storm(ist)%tcv_storm_id - & ,gstorm(ist)%gv_gen_date - & ,gstorm(ist)%gv_gen_fhr,gstorm(ist)%gv_gen_lat - & ,gstorm(ist)%gv_gen_latns,gstorm(ist)%gv_gen_lon - & ,gstorm(ist)%gv_gen_lonew,gstorm(ist)%gv_gen_type - & ,ifhours(ifh),ifclockmins(ifh) - & ,'U',-999.99,-9999.99 - endif - - igvpret = 95 - wcore_flag = 'u' - return - endif - endif - - 105 format (1x,' wcore: ',a4,1x,i10.10,'_F',i3.3,'_',i3.3,a1 - & ,'_',i4.4,a1,'_',a3,2x,i4,':',i2.2,' mean_lon: ',f7.2,'E' - & ,1x,'(',f7.2,'W)',2x,'mean_lat: ',f7.2,2x - & ,'wcore_mean_val(K): ',f7.3) - 106 format (1x,' wcore: ',a4,1x,i10.10,'_F',i3.3,'_',i3.3,a1 - & ,'_',i4.4,a1,'_',a3,2x,i4,':',i2.2,' ifix: ',i5,2x - & ,' jfix: ',i5,2x,'wcore_point_max(K): ',f7.3) - - -c ------------------------------------------------------------ -c The Vitart scheme specifies that the temperature must decrease -c by at least 1.0C in all directions from the warm core center -c within a distance of 8 deg. A rigorous check of this criterion -c is performed here by utilizing the check_closed_contour routine. -c If we have a closed contour in the temperature field -c surrounding the warm core (using a 1 deg K interval), that -c criterion is satisfied. For diagnostic purposes, we set the -c value of num_check_conts to 999 in order to keep searching for -c all contours surrounding the warm core, and this allows us to -c get an idea of the "depth" or magnitude of the warm core when -c the tlastcont and rlastcont values are returned. - - wcore_contour_info%numcont = maxconts - num_check_conts = 999 - - get_last_contour_flag = 'y' - call check_closed_contour (imax,jmax,ifix,jfix,tmean - & ,valid_pt,wcore_mask,wcore_flag,'max',wcore_trkrinfo - & ,num_check_conts,wcore_contour_info,get_last_contour_flag - & ,tlastcont,rlastcont,icccret) - - if (wcore_flag == 'y') then - tlastout = tlastcont - rlastout = rlastcont/0.539638 - else - tlastout = -999.0 - rlastout = -9999.0 - endif - - if ( verb .ge. 3 ) then - write (6,115) storm(ist)%tcv_storm_id,gstorm(ist)%gv_gen_date - & ,gstorm(ist)%gv_gen_fhr,gstorm(ist)%gv_gen_lat - & ,gstorm(ist)%gv_gen_latns,gstorm(ist)%gv_gen_lon - & ,gstorm(ist)%gv_gen_lonew,gstorm(ist)%gv_gen_type - & ,ifhours(ifh),ifclockmins(ifh) - & ,wcore_flag,tlastout,rlastout - - 115 format (1x,' wcore: ',a4,1x,i10.10,'_F',i3.3,'_',i3.3,a1 - & ,'_',i4.4,a1,'_',a3,2x,i4,':',i2.2 - & ,' wcore_flag= ',a1,2x,' Temp of last contour(K) = ' - & ,f7.2,2x,'Radius of last contour(km) = ',f8.2) - endif - - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_sfc_center (xmeanlon,xmeanlat,clon - & ,clat,ist,ifh,calcparm,xsfclon,xsfclat - & ,maxstorm,igscret) -c -c ABSTRACT: This subroutine computes a modified lat/lon fix position -c to use as the input center position for the subroutines that -c follow which calculate surface-wind related values. The reason -c for this is that since we are concerned with the positioning of -c low-level wind features (e.g., rmax), we want the center position -c to be based solely on low-level features. We'll use mslp and the -c min in the sfc wind speed. If a center fix was unable to be made -c at this forecast hour for mslp and low-level winds, then we will -c stick with just using the mean position we got using all the other -c parameters. -c -c INPUT: -c xmeanlon The mean center longitude computed from all the various -c parameter fixes found in array clon -c xmeanlat The mean center latitude computed from all the various -c parameter fixes found in array clat -c clon Center longitudes of tracked parms for this storm & ifh -c clat Center latitudes of tracked parms for this storm & ifh -c ist Index for storm number -c ifh Index for forecast hour -c calcparm Logical; Use this parm's location for this storm or not -c (if a parameter fix could not be made at this forecast -c hour, then calcparm is set to false for this time for -c that parameter). -c maxstorm Maximum number of storms that can be tracked -c -c OUTPUT: -c xsfclon low-level longitude estimate for this storm & time, -c computed ideally from mean of mslp & low-level winds. -c xsfclat low-level latitude estimate for this storm & time, -c computed ideally from mean of mslp & low-level winds. -c igscret Return code from this subroutine - - USE set_max_parms - USE verbose_output - - implicit none - - integer ist,ifh,ipct,igscret,maxstorm - real clon(maxstorm,maxtime,maxtp) - real clat(maxstorm,maxtime,maxtp) - real xmeanlon,xmeanlat - real xsfclon,xsfclat,xlonsum,xlatsum - logical(1) calcparm(maxtp,maxstorm) - - ipct = 0 - xlonsum = 0.0 - xlatsum = 0.0 - - ! Do NOT include MSLP for the surface center at this time. -c if (calcparm(9,ist)) then -c ipct = ipct + 1 -c xlonsum = xlonsum + clon(ist,ifh,9) -c xlatsum = xlatsum + clat(ist,ifh,9) -c endif - - if (calcparm(10,ist)) then - ! NOTE: Put double weighting on surface wind center if - ! the tracker was able to find a center for it.... - ipct = ipct + 2 - xlonsum = xlonsum + 2.*clon(ist,ifh,10) - xlatsum = xlatsum + 2.*clat(ist,ifh,10) - endif - - if (calcparm(11,ist)) then - ! This is for the sfc vorticity center.... - ipct = ipct + 1 - xlonsum = xlonsum + clon(ist,ifh,11) - xlatsum = xlatsum + clat(ist,ifh,11) - endif - - if (ipct > 0) then - xsfclon = xlonsum / float(ipct) - xsfclat = xlatsum / float(ipct) - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! In get_fract_wind_cov, CANNOT get modified fix ' - print *,'!!! position because the parameter fixes for mslp' - print *,'!!! and the sfc winds could not be obtained at this' - print *,'!!! forecast hour. ist= ',ist,' ifh= ',ifh - print *,'!!! We will use the fixlon and fixlat values for' - print *,'!!! this forecast hour.' - endif - - xsfclon = xmeanlon - xsfclat = xmeanlat - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,'+++ In get_sfc_center, modified fix (mslp + sfc_winds)' - print *,'+++ position follows: ' - print *,'+++ ' - print *,'+++ mslp: lon: ',clon(ist,ifh,9),' lat: ' - & ,clat(ist,ifh,9) - print *,'+++ sfc_winds: lon: ',clon(ist,ifh,10),' lat: ' - & ,clat(ist,ifh,10) - print *,'+++ sfc_vorticity: lon: ',clon(ist,ifh,11),' lat: ' - & ,clat(ist,ifh,11) - print *,'+++ multi-parm mean: lon: ',xmeanlon,' lat: ' - & ,xmeanlat - print *,'+++ sfc-only mean: lon: ',xsfclon,' lat: ',xsfclat - endif - - return - end -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_wind_structure (imax,jmax,inp,dx,dy - & ,ist,ifh,fixlon,fixlat,xsfclon,xsfclat,valid_pt - & ,er_wind,sr_wind,er_vr,sr_vr,er_vt,sr_vt,maxstorm - & ,trkrinfo,igwsret) -c -c ABSTRACT: This subroutine is a driver subroutine for -c determining the structure of the low level winds of a cyclone. -c The algorithm will search out at specified distances from the -c storm center along 45-degree radials and bilinearly interpolate -c the winds to points along those radials. This will be done -c twice -- First, for an earth-relative coordinate system, and -c second, for a storm-relative coordinate system. For the -c earth-relative estimates, we will always have 4 radials: NE, SE, -c SW and NW (45,135,225,315). For the storm-relative estimates, -c these radials will be computed at the same relative angles (i.e., -c 45,135,225,315), but with respect (positive clockwise) to the -c direction of storm motion. For example, for a storm moving with -c a heading of 280, the wind structure is evaluated at these -c radials: 325 (front-right; 45 deg CW from heading), 55 (back- -c right; 135 deg CW from heading), 145 (back-left; 225 deg CW from -c heading), 235 (front-left; 315 deg CW from heading). -c -c LOCAL: -c numdist Number of discrete radii at which the winds will -c be evaluated -c rdist The radii (km) at which winds will be evaluated -c -c Arrays: -c rdist Radii (km) at which the winds will be evaluated -c er_wind: Quadrant winds in earth-relative framework -c sr_wind: Quadrant winds in storm-relative framework -c er_vr: Quadrant radial winds in earth-relative framework -c sr_vr: Quadrant radial winds in storm-relative framework -c er_vt: Quadrant tangential winds in earth-relative framework -c sr_vt: Quadrant tangential winds in storm-relative framework - - USE inparms; USE phase; USE set_max_parms; USE tracked_parms - USE def_vitals; USE trig_vals; USE trkrparms - USE verbose_output - - implicit none - - type (datecard) inp - type (trackstuff) trkrinfo - - integer, parameter :: numdist=14,numquad=4 - integer imax,jmax,igwsret,ist,ifh,iquad,idist,ibiret1,ibiret2 - integer igvtret,ipct,maxstorm - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real rdist(numdist) - real er_wind(numquad,numdist) - real sr_wind(numquad,numdist) - real er_vr(numquad,numdist) - real er_vt(numquad,numdist) - real sr_vr(numquad,numdist) - real sr_vt(numquad,numdist) - real dx,dy,bear,targlat,targlon,xintrp_u,xintrp_v,st_heading - real d,cosarg,rlonc,rlatc,rlonb,rlatb,st_heading_rad,degrees - real temp_bear,xdist,xsfclon,xsfclat - logical(1) valid_pt(imax,jmax) -c - data rdist/10.,25.,50.,75.,100.,125.,150.,200.,250.,300.,350. - & ,400.,450.,500./ - - igwsret = 0 - - er_wind = 0.0 - sr_wind = 0.0 - er_vr = 0.0 - er_vt = 0.0 - sr_vr = 0.0 - sr_vt = 0.0 - -c ----------------------------------------------------------------- -c Now determine the angle that the storm took getting from the -c last position to the current one. If this is the initial time, -c use the observed direction of motion from the TC Vitals. This -c may not match up with the model storm's initial direction of -c motion, but it is all we have available to us in order to get -c a heading estimate for the initial time. This storm heading -c information will be used for the storm-relative profiles. -c ----------------------------------------------------------------- - - if (ifh == 1) then - - st_heading = float(storm(ist)%tcv_stdir) - - else - - call calcdist(fixlon(ist,ifh),fixlat(ist,ifh) - & ,fixlon(ist,ifh-1),fixlat(ist,ifh-1),xdist,degrees) - - rlonc = (360.-fixlon(ist,ifh)) * dtr - rlatc = fixlat(ist,ifh) * dtr - rlonb = (360.-fixlon(ist,ifh-1)) * dtr - rlatb = fixlat(ist,ifh-1) * dtr - d = degrees * dtr - - cosarg = (sin(rlatc)-sin(rlatb)*cos(d))/(sin(d)*cos(rlatb)) - if (cosarg > 1.0) cosarg = 1 - if (cosarg < -1.0) cosarg = -1 - - if (sin(rlonc-rlonb) < 0.0) then - st_heading_rad = acos(cosarg) - else - st_heading_rad = 2*pi - acos(cosarg) - endif - - st_heading = st_heading_rad / dtr - - if ( verb .ge. 3 ) then - print *,' ' - print *,' In get_wind_structure, fhr= ',fhreal(ifh) - & ,' ',storm(ist)%tcv_storm_id - & ,' ',storm(ist)%tcv_storm_name - print '(a25,a23,f9.3)',' In get_wind_structure, ' - & ,' model storm heading = ',st_heading - print *,' ' - endif - - endif - -c ----------------------------------------------------------------- -c Get the profiles for the earth-relative coordinate system. -c Start with NE, then SE, SW, and NW. -c ----------------------------------------------------------------- - - if ( verb .ge. 3 ) then - print *,' ' - print *,' *****************************************************' - print *,' Wind Structure: distbear bilin interp starts here.' - print *,' *****************************************************' - print *,' ' - endif - - do iquad = 1,4 - - bear = ((iquad-1) * 90.) + 45. - - if ( verb .ge. 3 ) then - print *,'structure iquad= ',iquad,' earth-relative bear= ' - & ,bear - endif - - do idist = 1,numdist - - if ( verb .ge. 3 ) then - print *,' ' - endif - - call distbear (xsfclat,xsfclon,rdist(idist) - & ,bear,targlat,targlon) - - if ( verb .ge. 3 ) then - print *,' ' - print '(5(a10,f7.2))',' sfclat= ',xsfclat - & ,' sfclon= ',xsfclon - & ,' rdist= ',rdist(idist),' targlat= ',targlat - & ,' targlon= ',targlon - print '(19x,a8,f7.2,35x,a9,f7.2)','sfclon= ',360.-xsfclon - & ,'targlon= ',360.-targlon - endif - - call bilin_int_uneven (targlat,targlon,rdist(idist) - & ,dx,dy,imax,jmax,trkrinfo,'u',xintrp_u,ibiret1) - - call bilin_int_uneven (targlat,targlon,rdist(idist) - & ,dx,dy,imax,jmax,trkrinfo,'v',xintrp_v,ibiret2) - - if (ibiret1 == 0 .and. ibiret2 == 0) then - er_wind(iquad,idist) = sqrt (xintrp_u**2 + xintrp_v**2) - - call getvrvt (xsfclon,xsfclat,targlon,targlat - & ,xintrp_u,xintrp_v,er_vr(iquad,idist) - & ,er_vt(iquad,idist),igvtret) - else if (ibiret1 == 85 .or. ibiret2 == 85) then - er_wind(iquad,idist) = -999.0 - er_vr(iquad,idist) = -999.0 - er_vt(iquad,idist) = -999.0 - else - igwsret = 95 - return - endif - - if ( verb .ge. 3 ) then - print '(2x,a21,f8.2,a14,f8.2)',' intrp wind speed= ' - & ,er_wind(iquad,idist),' (in kts)= ' - & ,er_wind(iquad,idist)*1.9427 - endif - - enddo - - enddo - -c ----------------------------------------------------------------- -c Get the profiles for the storm-relative coordinate system. -c Start with the front-right quadrant and go clockwise through -c back-right, back-left and front-left. -c ----------------------------------------------------------------- - - if ( verb .ge. 3 ) then - print *,' ' - endif - - do iquad = 1,4 - - temp_bear = st_heading + ((iquad-1) * 90.) + 45. - bear = mod(temp_bear,360.) - - if ( verb .ge. 3 ) then - print *,'structure iquad= ',iquad,' storm-relative bear= ' - & ,bear - endif - - do idist = 1,numdist - - call distbear (xsfclat,xsfclon,rdist(idist) - & ,bear,targlat,targlon) - - call bilin_int_uneven (targlat,targlon,rdist(idist) - & ,dx,dy,imax,jmax,trkrinfo,'u',xintrp_u,ibiret1) - - call bilin_int_uneven (targlat,targlon,rdist(idist) - & ,dx,dy,imax,jmax,trkrinfo,'v',xintrp_v,ibiret2) - - if (ibiret1 == 0 .and. ibiret2 == 0) then - sr_wind(iquad,idist) = sqrt (xintrp_u**2 + xintrp_v**2) - call getvrvt (xsfclon,xsfclat,targlon,targlat - & ,xintrp_u,xintrp_v,sr_vr(iquad,idist) - & ,sr_vt(iquad,idist),igvtret) - else if (ibiret1 == 85 .or. ibiret2 == 85) then - sr_wind(iquad,idist) = -999.0 - sr_vr(iquad,idist) = -999.0 - sr_vt(iquad,idist) = -999.0 - else - igwsret = 95 - return - endif - - enddo - - enddo -c - return - end - -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_fract_wind_cov (imax,jmax,inp,dx,dy - & ,ist,ifh,fixlon,fixlat,xsfclon,xsfclat,valid_pt - & ,calcparm,wfract_cov,pdf_ct_bin,pdf_ct_tot,maxstorm - & ,trkrinfo,igfwret) -c -c ABSTRACT: This subroutine determines the fractional areal coverage -c of winds exceeding various thresholds within specified arcs -c (e.g., 200 km, 400 km, etc) in each quadrant of a storm. The bins -c that are used go as follows: (1) 0-100; (2) 0-200; (3) 0-300; -c (4) 0-400; (5) 0-500. -c -c LOCAL: -c numdist Number of discrete radii at which the winds will -c be evaluated -c rdist The radii (km) at which winds will be evaluated -c -c Arrays: -c rdist Radii (km) at which the winds will be evaluated - - USE inparms; USE phase; USE set_max_parms; USE tracked_parms - USE def_vitals; USE trig_vals; USE grid_bounds; USE level_parms - USE trkrparms - USE verbose_output - - implicit none - - type (datecard) inp - type (trackstuff) trkrinfo - - integer, parameter :: numdist=14,numquad=4,numbin=5,numthresh=3 - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real rdist(numdist) - real wfract_cov(numquad+1,numbin,numthresh) - real area_total_quad_bin(numquad,numbin) - real area_exceed_quad_bin(numquad,numbin,numthresh) - real xintlon,xintlat - real :: windthresh(numthresh) = (/17.5,25.74,32.94/) - real dx,dy,bear,targlat,targlon,xintrp_u,xintrp_v,st_heading - real d,cosarg,rlonc,rlatc,rlonb,rlatb,st_heading_rad,degrees - real temp_bear,xdist,conv_ms_knots,vmagkts - real rads,ri,dell,vmag,xarea,grdintincr,xsfclon,xsfclat - real sum_exceed_area(numbin,numthresh) - real sum_total_area(numbin,numthresh) - integer pdf_ct_bin(16) - integer imax,jmax,igwsret,ist,ifh,iquad,idist,ibiret1,ibiret2 - integer igfwret,ipct,i,j,numinterp,ixoa,ixaa,iq,ib,it,ii - integer jlatfix,ilonfix,npts,ibeg,iend,jbeg,jend,ngridint,ni,nj - integer itret,igiret,idistbin,ipdfbin,pdf_ct_tot,maxstorm - logical(1) calcparm(maxtp,maxstorm) - logical(1) valid_pt(imax,jmax) - character got_pdf*6 - character*2 :: cquad(4) = (/'NE','SE','SW','NW'/) - character*5 :: cbin(5) = - & (/'0-100','0-200','0-300','0-400','0-500'/) - character*2 :: cthresh(3) = (/'34','50','64'/) -c - igfwret = 0 - conv_ms_knots = 1.9427 - rads = 500.0 - ri = 300.0 - dell = (dx+dy)/2. - npts = rads/(dtk*dell) - - wfract_cov = 0.0 - area_total_quad_bin = 0.0 - area_exceed_quad_bin = 0.0 - sum_exceed_area = 0.0 - sum_total_area = 0.0 - -c Call get_ij_bounds in order to get the dimensions for a smaller -c subdomain of grid points to search over. - - call get_ij_bounds (npts,0,ri,imax,jmax,dx,dy - & ,glatmax,glatmin,glonmax,glonmin,xsfclon,xsfclat - & ,trkrinfo,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) - - if (igiret /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in get_fract_wind_cov from call to ' - print *,'!!! get_ij_bounds, stopping processing for storm' - print *,'!!! number ',ist - endif - - igfwret = 92 - return - endif - - if (ibeg < 1) then - if (trkrinfo%gridtype == 'global') then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_fract_wind_cov, the ibeg returned' - print *,'!!! from get_ij_bounds is < 1, but our gridtype is' - print *,'!!! global, so we are going to leave it as is and ' - print *,'!!! account for the grid wrapping as we go.' - print *,' ' - endif - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_fract_wind_cov, the ibeg returned' - print *,'!!! from get_ij_bounds is < 1, and our gridtype is' - print *,'!!! NOT global, so we are going to abort the ' - print *,'!!! fractional wind coverage processing for' - print *,'!!! this time.' - print *,' ' - endif - - igfwret = 94 - return - endif - endif - - if (ibeg > imax .or. jbeg > jmax .or. jbeg < 1 .or. - & iend < 1 .or. jend < 1) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'ERROR in get_fract_wind_cov calculating ibeg, iend,' - print *,'jbeg or jend. ibeg= ',ibeg,' iend= ',iend - print *,' jbeg= ',jbeg,' jend= ',jend - print *,' imax= ',imax,' jmax= ',jmax - print *,'fractional wind coverage processing will not be ' - print *,'performed for this time.' - endif - - igfwret = 94 - return - endif - - if (iend > imax) then - if (trkrinfo%gridtype == 'global') then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_fract_wind_cov, the iend returned' - print *,'!!! from get_ij_bounds is > imax, but our gridtype' - print *,'!!! is global, so we are going to leave it as is ' - print *,'!!! and account for the grid wrapping.' - print *,' ' - endif - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_fract_wind_cov, the iend returned' - print *,'!!! from get_ij_bounds is > imax, and our gridtype' - print *,'!!! is NOT global, so we will abort the ' - print *,'!!! fractional wind coverage processing for' - print *,'!!! this time.' - print *,' ' - endif - - igfwret = 94 - return - endif - endif - - -c When evaluating the winds at a gridpoint, keep in mind that each -c gridpoint represents area around it. There are 2 special cases -c we need to watch out for. The first is for cases in which the -c area of a gridpoint straddles across a distance threshold, so -c that some of the gridpoint's area is in the "<200" bin, while -c some is in the "<100" bin. The other is for the case in which -c the area of a gridpoint straddles between 2 adjacent quadrants -c (e.g., a gridpoint exactly to the north of the center would have -c half its area in the NW quadrant and half in the NE quadrant). -c -c To properly "partition" and assign gridpoint areas, we need to -c interpolate the current grid down to a fine resolution. -c -c This next if statement determines how many times to interpolate -c the input grid to a smaller grid. Here are the guidelines that -c will be used, keeping in mind that we want the final grid spacing -c to be on the order of between 0.05 and 0.10 degree (finer than -c 0.05 deg is superfluous, and coarser than 0.10 deg is too coarse). -c -c Original grid size (deg) # of interps -c ------------------------- ------------ -c 0.8 <= g 4 -c 0.4 <= g < 0.8 3 -c 0.2 <= g < 0.4 2 -c 0.1 <= g < 0.2 1 -c g < 0.1 0 - - - if ((dx+dy)/2. >= 0.8) then - numinterp = 4 - else if ((dx+dy)/2. < 0.8 .and. (dx+dy)/2. >= 0.4) then - numinterp = 3 - else if ((dx+dy)/2. < 0.4 .and. (dx+dy)/2. >= 0.2) then - numinterp = 2 - else if ((dx+dy)/2. < 0.2 .and. (dx+dy)/2. >= 0.1) then - numinterp = 1 - else - numinterp = 0 - endif - - grdintincr = (dx+dy)/2. - do i = 1,numinterp - grdintincr = 0.5 * grdintincr - enddo - -c Now loop through the points in this subdomain, determine if any -c are within 500 km of the center, and then determine what quadrant -c the point is in relative to the center, and then calculate the -c fractional area coverage for winds. - - pdf_ct_tot = 0 - pdf_ct_bin = 0 - - jloop: do j = jbeg,jend - iloop: do i = ibeg,iend - - if (i > imax) then - if (trkrinfo%gridtype == 'global') then - ii = i - imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In get_fract_wind_cov, the ' - print *,'!!! user-requested eastern search boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. We will not ' - print *,'!!! perform the fractional wind coverage' - print *,'!!! processing for this storm & time.' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! User-requested eastern i = ',i - print *,' ' - endif - - igfwret = 94 - return - endif - else - ii = i - endif - - if (i < 1) then - if (trkrinfo%gridtype == 'global') then - ii = i + imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i < 1 in get_fract_wind_cov' - print *,'!!! for a non-global grid. We will not ' - print *,'!!! perform the fractional wind coverage' - print *,'!!! processing for this storm & time.' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! User-requested eastern i = ',i - print *,' ' - endif - - igfwret = 94 - return - endif - endif - - if (.not. valid_pt(ii,j)) then - cycle iloop ! Only an issue for regional grids - endif - - call calcdist (glon(ii),glat(j),xsfclon,xsfclat,xdist,degrees) - - if (xdist > (rads+(0.75*((dx+dy)/2.)*dtk*cos(glat(j)*dtr)))) - & then - - ! If the distance is greater than "rads" (500 km at initial - ! writing) plus another 3/4 of a gridpoint, then cycle. - ! The extra 3/4 of a gridpoint is to allow for the case of - ! some portion of the area around a gridpoint (whose - ! center point > 500 km) being within the 500 km arc... - ! although that is only factored in for grids with spacing - ! >= 0.1 deg. For smaller grids, where no interpolation is - ! done in this subroutine, then the distance to that point - ! is considered representative and the point is ignored if - ! it is not less than 500 km from the center. - - cycle iloop - - else - - ! First interpolate the area surrounding each grid point to - ! get fine resolution of lats & lons for determining how to - ! partition the area of a gridpoint among quadrants as well - ! as among distance thresholds. - - vmag = sqrt (u(ii,j,levsfc)**2 + v(ii,j,levsfc)**2) - vmagkts = vmag * conv_ms_knots - - if (numinterp > 0) then - - grdintincr = ((dx+dy)/2.) / 2**numinterp ! "grid spacing" - ! of interpolated grid - ngridint = (2**numinterp) / 2 - - got_pdf = 'notyet' - - njloop: do nj= ngridint,-ngridint,-1 - - xintlat = glat(j) + float(nj) * grdintincr - - niloop: do ni= -ngridint,ngridint - - xintlon = glon(ii) + float(ni) * grdintincr - - call calcdist (xintlon,xintlat,xsfclon - & ,xsfclat,xdist,degrees) - - if (xdist <= 350. .and. got_pdf == 'notyet') then - ! The got_pdf flag is needed because in these loops - ! for niloop & njloop, we are actually looking at - ! tiny areas around the same grid point. So we - ! want to make sure we only count each gridpoint - ! once. - ipdfbin = min((int(vmagkts / 10.) + 1),16) - pdf_ct_bin(ipdfbin) = pdf_ct_bin(ipdfbin) + 1 - pdf_ct_tot = pdf_ct_tot + 1 - got_pdf = 'got_it' - endif - - if (xdist < 500.) then - - ! Compute area of this fraction of a grid box - xarea = (grdintincr * 111195) * - & (grdintincr * 111195 - & * cos(xintlat * dtr)) - - idistbin = int(xdist / 100.) + 1 - - ! Go through a loop of the bins. The purpose of - ! this is that these "bins" all go from the - ! the center out to a specified radius, they are - ! NOT 100-km wide bins. So if we are dealing with - ! a point at r = 250 km, then that falls in the - ! 0-300 km bin, but it also falls in the 0-400 and - ! 0-500 km bins as well. So we need to run through - ! this binloop multiple times to get the area data - ! into multiple bins. Here are the bins & indices: - ! 1: 0-100 km - ! 2: 0-200 km - ! 3: 0-300 km - ! 4: 0-400 km - ! 5: 0-500 km - - binloop: do ib = idistbin,numbin - - if (xintlon >= xsfclon .and. - & xintlat >= xsfclat) then - - ! NE quadrant - - area_total_quad_bin(1,ib) = - & area_total_quad_bin(1,ib) + xarea - if (vmag > windthresh(1)) then - area_exceed_quad_bin(1,ib,1) = - & area_exceed_quad_bin(1,ib,1) + xarea - endif - if (vmag > windthresh(2)) then - area_exceed_quad_bin(1,ib,2) = - & area_exceed_quad_bin(1,ib,2) + xarea - endif - if (vmag > windthresh(3)) then - area_exceed_quad_bin(1,ib,3) = - & area_exceed_quad_bin(1,ib,3) + xarea - endif - - else if (xintlon >= xsfclon .and. - & xintlat < xsfclat) then - - ! SE quadrant - - area_total_quad_bin(2,ib) = - & area_total_quad_bin(2,ib) + xarea - if (vmag > windthresh(1)) then - area_exceed_quad_bin(2,ib,1) = - & area_exceed_quad_bin(2,ib,1) + xarea - endif - if (vmag > windthresh(2)) then - area_exceed_quad_bin(2,ib,2) = - & area_exceed_quad_bin(2,ib,2) + xarea - endif - if (vmag > windthresh(3)) then - area_exceed_quad_bin(2,ib,3) = - & area_exceed_quad_bin(2,ib,3) + xarea - endif - - else if (xintlon < xsfclon .and. - & xintlat < xsfclat) then - - ! SW quadrant - - area_total_quad_bin(3,ib) = - & area_total_quad_bin(3,ib) + xarea - if (vmag > windthresh(1)) then - area_exceed_quad_bin(3,ib,1) = - & area_exceed_quad_bin(3,ib,1) + xarea - endif - if (vmag > windthresh(2)) then - area_exceed_quad_bin(3,ib,2) = - & area_exceed_quad_bin(3,ib,2) + xarea - endif - if (vmag > windthresh(3)) then - area_exceed_quad_bin(3,ib,3) = - & area_exceed_quad_bin(3,ib,3) + xarea - endif - - else if (xintlon < xsfclon .and. - & xintlat >= xsfclat) then - - ! NW quadrant - - area_total_quad_bin(4,ib) = - & area_total_quad_bin(4,ib) + xarea - if (vmag > windthresh(1)) then - area_exceed_quad_bin(4,ib,1) = - & area_exceed_quad_bin(4,ib,1) + xarea - endif - if (vmag > windthresh(2)) then - area_exceed_quad_bin(4,ib,2) = - & area_exceed_quad_bin(4,ib,2) + xarea - endif - if (vmag > windthresh(3)) then - area_exceed_quad_bin(4,ib,3) = - & area_exceed_quad_bin(4,ib,3) + xarea - endif - - endif - - enddo binloop - - endif - - enddo niloop - - enddo njloop - - else - - ! In this else statement is the case for a grid whose - ! resolution is already fine enough that we don't need - ! to interpolate any further. For example, we will have - ! the H*Wind data on a 0.05 degree grid, so that's already - ! fine enough. - - call calcdist (glon(ii),glat(j),xsfclon,xsfclat - & ,xdist,degrees) - - if (xdist <= 350.) then - ipdfbin = min((int(vmagkts / 10.) + 1),16) - pdf_ct_bin(ipdfbin) = pdf_ct_bin(ipdfbin) + 1 - pdf_ct_tot = pdf_ct_tot + 1 - endif - - if (xdist < 500.) then - - ! Compute area of this grid box - xarea = (dy * 111195) * - & (dx * 111195 * cos(glat(j) * dtr)) - - idistbin = int(xdist / 100.) + 1 - - ! Why the binloop2? See explanation above in the "if" - ! part of this if-then block, where binloop is. - - binloop2: do ib = idistbin,numbin - - if (glon(ii) >= xsfclon .and. - & glat(j) >= xsfclat) then - - ! NE quadrant - - area_total_quad_bin(1,ib) = - & area_total_quad_bin(1,ib) + xarea - if (vmag > windthresh(1)) then - area_exceed_quad_bin(1,ib,1) = - & area_exceed_quad_bin(1,ib,1) + xarea - endif - if (vmag > windthresh(2)) then - area_exceed_quad_bin(1,ib,2) = - & area_exceed_quad_bin(1,ib,2) + xarea - endif - if (vmag > windthresh(3)) then - area_exceed_quad_bin(1,ib,3) = - & area_exceed_quad_bin(1,ib,3) + xarea - endif - - else if (glon(ii) >= xsfclon .and. - & glat(j) < xsfclat) then - - ! SE quadrant - - area_total_quad_bin(2,ib) = - & area_total_quad_bin(2,ib) + xarea - if (vmag > windthresh(1)) then - area_exceed_quad_bin(2,ib,1) = - & area_exceed_quad_bin(2,ib,1) + xarea - endif - if (vmag > windthresh(2)) then - area_exceed_quad_bin(2,ib,2) = - & area_exceed_quad_bin(2,ib,2) + xarea - endif - if (vmag > windthresh(3)) then - area_exceed_quad_bin(2,ib,3) = - & area_exceed_quad_bin(2,ib,3) + xarea - endif - - else if (glon(ii) < xsfclon .and. - & glat(j) < xsfclat) then - - ! SW quadrant - - area_total_quad_bin(3,ib) = - & area_total_quad_bin(3,ib) + xarea - if (vmag > windthresh(1)) then - area_exceed_quad_bin(3,ib,1) = - & area_exceed_quad_bin(3,ib,1) + xarea - endif - if (vmag > windthresh(2)) then - area_exceed_quad_bin(3,ib,2) = - & area_exceed_quad_bin(3,ib,2) + xarea - endif - if (vmag > windthresh(3)) then - area_exceed_quad_bin(3,ib,3) = - & area_exceed_quad_bin(3,ib,3) + xarea - endif - - else if (glon(ii) < xsfclon .and. - & glat(j) >= xsfclat) then - - ! NW quadrant - - area_total_quad_bin(4,ib) = - & area_total_quad_bin(4,ib) + xarea - if (vmag > windthresh(1)) then - area_exceed_quad_bin(4,ib,1) = - & area_exceed_quad_bin(4,ib,1) + xarea - endif - if (vmag > windthresh(2)) then - area_exceed_quad_bin(4,ib,2) = - & area_exceed_quad_bin(4,ib,2) + xarea - endif - if (vmag > windthresh(3)) then - area_exceed_quad_bin(4,ib,3) = - & area_exceed_quad_bin(4,ib,3) + xarea - endif - - endif - - enddo binloop2 - - endif - - endif - - endif - - enddo iloop - - enddo jloop - -c ------------------------------------------------- -c Now compute the fractional wind coverage for all -c the different quadrants, bins and thresholds... -c ------------------------------------------------- - - if ( verb .ge. 3 ) then - write (6,109) ' ' - & ,' ' - & ,' ' - write (6,109) ' Quadrant Bin Wind_Thresh ' - & ,'Fract_coverage (%) Area_exceeded' - & ,' Area_total' - write (6,109) ' -------- --- ----------- ' - & ,'------------------ -------------' - & ,' ----------' - write (6,109) ' ' - & ,' ' - & ,' ' - - do iq = 1,numquad - do ib = 1,numbin - do it = 1,numthresh - wfract_cov(iq,ib,it) = area_exceed_quad_bin(iq,ib,it) / - & area_total_quad_bin(iq,ib) - write (6,117) cquad(iq),cbin(ib),cthresh(it) - & ,wfract_cov(iq,ib,it)*100.0 - & ,area_exceed_quad_bin(iq,ib,it) - & ,area_total_quad_bin(iq,ib) - enddo - enddo - enddo - endif - - - 109 format (1x,a33,a37,a16) - 117 format (5x,a2,5x,a5,7x,a2,13x,f6.2,10x,f16.1,2x,f16.1) - -c ------------------------------------------------- -c Now compute the fractional wind coverage for all -c the different bins and thresholds, but for the -c entire "disc" of the storm, that is, summing all -c quadrants together. -c ------------------------------------------------- - - do it = 1,numthresh - do ib = 1,numbin - do iq = 1,numquad - sum_total_area(ib,it) = sum_total_area(ib,it) - & + area_total_quad_bin(iq,ib) - sum_exceed_area(ib,it) = sum_exceed_area(ib,it) - & + area_exceed_quad_bin(iq,ib,it) - enddo - wfract_cov(5,ib,it) = sum_exceed_area(ib,it) - & / sum_total_area(ib,it) - enddo - enddo - - if ( verb .ge. 3 ) then - do ib = 1,numbin - do it = 1,numthresh - write (6,117) 'TT',cbin(ib),cthresh(it) - & ,wfract_cov(5,ib,it)*100.0 - & ,sum_exceed_area(ib,it) - & ,sum_total_area(ib,it) - enddo - enddo - endif - - return - end - -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_ike_stats (imax,jmax,inp,dx,dy,ist,ifh - & ,fixlon,fixlat,xsfclon,xsfclat,valid_pt,calcparm - & ,ike,sdp,wdp,maxstorm,trkrinfo,igisret) -c -c ABSTRACT: This subroutine computes the Integrated Kinetic Energy -c (IKE) and Storm Surge Damage Potential (SDP) values, based on -c Powell (BAMS, 2007). At this time, we are only computing the IKE -c values for TS threshold (17.5 m/s) and above. We are not yet -c computing wind damage potential (WDP) since, per Mark Powell -c (4/2008), he is currently re-formulating an algorithm for it. -c -c LOCAL: -c -c Arrays: -c -c ike Integrated kinetic energy: -c ike(1) = IKE_10m/s (storm energy) -c ike(2) = IKE_18m/s (IKE_ts, tropical storm) -c ike(3) = IKE_33m/s (IKE_h, hurricane) -c ike(4) = IKE_25_40 m/s (Not currently computed) -c ike(5) = IKE_41_54 m/s (Not currently computed) -c ike(6) = IKE_55 m/s (Not currently computed) -c -c sdp Storm surge damage potential - - USE inparms; USE phase; USE set_max_parms; USE tracked_parms - USE def_vitals; USE trig_vals; USE grid_bounds; USE level_parms - USE trkrparms - USE verbose_output - - implicit none - - type (datecard) inp - type (trackstuff) trkrinfo - - integer, parameter :: numdist=14,numquad=4 - integer npts,ipct,igisret,imax,jmax,ist,ifh,ilonfix,jlatfix - integer ibeg,jbeg,iend,jend,igiret,i,j,maxstorm,ii - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real ike(max_ike_cats) - real dx,dy,degrees,rads,ri,dell,xdist,vmag,xarea - real xsfclon,xsfclat,sdp,wdp - logical(1) calcparm(maxtp,maxstorm) - logical(1) valid_pt(imax,jmax) -c - igisret = 0 - ike = 0.0 - sdp = 0.0 - wdp = 0.0 - - rads = 400.0 - ri = 300.0 - dell = (dx+dy)/2. - npts = rads/(dtk*dell) - -c Call get_ij_bounds in order to get the dimensions for a smaller -c subdomain of grid points to search over. - - call get_ij_bounds (npts,0,ri,imax,jmax,dx,dy - & ,glatmax,glatmin,glonmax,glonmin,xsfclon,xsfclat - & ,trkrinfo,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) - - if (igiret /= 0) then - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in get_ike_stats from call to ' - print *,'!!! get_ij_bounds, STOPPING processing for storm ' - print *,'!!! number ',ist - endif - - igisret = 92 - return - endif - - if (ibeg < 1) then - if (trkrinfo%gridtype == 'global') then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_ike_stats, the ibeg returned' - print *,'!!! from get_ij_bounds is < 1, but our gridtype is' - print *,'!!! global, so we are going to leave it as is and ' - print *,'!!! account for the grid wrapping as we go.' - print *,' ' - endif - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_ike_stats, the ibeg returned' - print *,'!!! from get_ij_bounds is < 1, and our gridtype is' - print *,'!!! NOT global, so we are going to abort the ' - print *,'!!! fractional wind coverage processing for' - print *,'!!! this time.' - print *,' ' - endif - - igisret = 94 - return - endif - endif - - if (ibeg > imax .or. jbeg > jmax .or. jbeg < 1 .or. - & iend < 1 .or. jend < 1) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'ERROR in get_ike_stats calculating ibeg, iend,' - print *,'jbeg or jend. ibeg= ',ibeg,' iend= ',iend - print *,' jbeg= ',jbeg,' jend= ',jend - print *,' imax= ',imax,' jmax= ',jmax - print *,'fractional wind coverage processing will not be ' - print *,'performed for this time.' - endif - - igisret = 94 - return - endif - - if (iend > imax) then - if (trkrinfo%gridtype == 'global') then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_ike_stats, the iend returned' - print *,'!!! from get_ij_bounds is > imax, but our gridtype' - print *,'!!! is global, so we are going to leave it as is ' - print *,'!!! and account for the grid wrapping.' - print *,' ' - endif - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_ike_stats, the iend returned' - print *,'!!! from get_ij_bounds is > imax, and our gridtype' - print *,'!!! is NOT global, so we will abort the ' - print *,'!!! fractional wind coverage processing for' - print *,'!!! this time.' - print *,' ' - endif - - igisret = 94 - return - endif - endif - -c Search a grid of points near the storm center, evaluate if the -c storm is within the "rads" distance threshold. If so, compute -c the IKE values for all applicable thresholds (10, 18, 33 m/s). - - do j = jbeg,jend - do i = ibeg,iend - - if (i > imax) then - if (trkrinfo%gridtype == 'global') then - ii = i - imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In get_ike_stats, the ' - print *,'!!! user-requested eastern search boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. We will not ' - print *,'!!! perform the ike stats' - print *,'!!! processing for this storm & time.' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! User-requested eastern i = ',i - print *,' ' - endif - - igisret = 94 - return - endif - else - ii = i - endif - - if (i < 1) then - if (trkrinfo%gridtype == 'global') then - ii = i + imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i < 1 in get_ike_stats' - print *,'!!! for a non-global grid. We will not ' - print *,'!!! perform the ike stats' - print *,'!!! processing for this storm & time.' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! User-requested eastern i = ',i - print *,' ' - endif - - igisret = 94 - return - endif - endif - - if (.not. valid_pt(ii,j)) then - cycle ! Only an issue for regional grids - endif - - call calcdist (glon(ii),glat(j),xsfclon,xsfclat,xdist,degrees) - - if (xdist > rads) then - cycle - else - - vmag = sqrt(u(ii,j,levsfc)**2 + v(ii,j,levsfc)**2) - - if (vmag > 10.0) then - ! Add gridpoint to IKE_10. Compute area first... - xarea = (dy * 111195) * - & (dx * 111195 * cos(glat(j) * dtr)) - ike(1) = ike(1) + (0.5 * (vmag**2) * xarea) - endif - - if (vmag > 18.0) then - ! Add gridpoint to IKE_ts. Area already computed for 10 - ike(2) = ike(2) + (0.5 * (vmag**2) * xarea) - endif - - if (vmag > 33.0) then - ! Add gridpoint to IKE_h. Area already computed for 10 - ike(3) = ike(3) + (0.5 * (vmag**2) * xarea) - endif - - endif - - enddo - enddo - - ike(1) = ike(1) * 1.e-12 ! Convert from J to TJ - ike(2) = ike(2) * 1.e-12 ! Convert from J to TJ - ike(3) = ike(3) * 1.e-12 ! Convert from J to TJ - -c Compute the storm surge damage potential (sdp) - - if (ike(2) >= 0.0) then - sdp = 0.676 + (0.43 * sqrt(ike(2))) - & - (0.0176 * ((sqrt(ike(2)) - 6.5)**2) ) - else - sdp = -99.0 - endif - -c Print out the IKE and SDP statistics... - - if ( verb .ge. 3 ) then - print *,' IKE_10 (storm energy) = ',ike(1) - print *,' IKE_TS (tropical storm) = ',ike(2) - print *,' IKE_H (hurricane) = ',ike(3) - print *,' SDP = ',sdp - endif - - return - end - -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine distbear (xlatin,xlonin,dist,bear,xlatt,xlont) -c -c ABSTRACT: Given an origin at latitude, longitude=xlato,xlono, -c this subroutine will locate a target point at a distance dist in -c km or nautical miles (depends on what you use for "rad_earth..." -c below), at bearing bear (degrees clockwise from north). -c Returns latitude xlatt and longitude xlont of target point. -c -c *** NOTE *** -c This subroutine was written to handle input lats & lons as this: -c All latitudes are in degrees, north positive and south negative. -c All longitudes are in degrees, west positive and east negative. -c *** **** *** -c -c However, for the longitudes, the rest of the tracker uses all -c 0-360 longitudes. Therefore, we need to convert the input lons -c and then once again convert the lons that are returned back to -c the calling routine. -c -c NOTE-- When origin is at north or south pole, bearing is no -c longer measured from north. Instead, bearing is measured -c clockwise from the longitude opposite that specified in xlono. -c Example-- if xlato=90., xlono=80., the opposite longitude is -c -100 (100 East), and a target at bearing 30. will lie on the -c -70. (70 East) meridian. -c -c AUTHOR: The core of this subroutine was written by Albion -c Taylor, another NOAA employee, in 1981. -c - USE trig_vals - - implicit none -c - real, parameter :: rad_earth_nm = 3440.170 ! radius of earth - real, parameter :: rad_earth_km = 6372.797 ! radius of earth - real xlato,xlono,dist,bear,xlatt,xlont,xlatin,xlonin - real cdist,sdist,clato,slato,clono,slono,cbear,sbear - real z,y,x,r,xlattz,xlontz,ddist,dbear,dxlato,dxlono -c - xlato = xlatin - xlono = xlonin - -cstr print *,' ' -cstr print *,'+++ At top of distbear....' -cstr print '(a6,f7.2,a3,f7.2,a9,f7.2)','xlon= ',xlono,'E ',360.-xlono -cstr & ,'W xlat=',xlato -cstr print '(a6,f7.2,a8,f7.2)','dist= ',dist,' bear= ',bear - - if (xlono > 180.) then - ! Longitude input for this subroutine must be positive west - xlono = 360. - xlono - else - ! Longitude input for this subroutine must be negative east - xlono = -1. * xlono - endif - -cstr print '(a31,a8,f8.2)','After conversion for distbear, ' -cstr & ,' xlono= ',xlono - - ddist = dist - dbear = bear - dxlato = xlato - dxlono = xlono - - cdist = cos(ddist/rad_earth_km) - sdist = sin(ddist/rad_earth_km) - clato = cos(dtr*dxlato) - slato = sin(dtr*dxlato) - -cstr print *,'cdist= ',cdist,' sdist= ',sdist,' clato= ',clato -cstr & ,' slato= ',slato - - clono = cos(dtr*dxlono) - slono = sin(dtr*dxlono) - -cstr print *,'dxlono= ',dxlono,' clono= ',clono -cstr & ,' slono= ',slono - - cbear = cos(dtr*dbear) - sbear = sin(dtr*dbear) - -cstr print *,'cbear= ',cbear,' sbear= ',sbear - - z=cdist*slato + clato*sdist*cbear - y=clato*clono*cdist + sdist*(slono*sbear - slato*clono*cbear) - x=clato*slono*cdist - sdist*(clono*sbear + slato*slono*cbear) - -cstr print *,'z= ',z,' y= ',y,' x= ',x - - r = sqrt(x**2 + y**2) - -cstr print *,'r = sqrt(x**2 + y**2) = ',r - - xlattz = atan2(z,r)/dtr - -cstr print *,'xlattz = datan2(z,r)/dtr = ',xlattz - - xlatt = xlattz - - if (r <= 0.) go to 20 - - xlontz = atan2(x,y)/dtr - -cstr print *,'xlontz = atan2(x,y)/dtr = ',xlontz - -c xlont = xlontz - - ! Return the target longitude back to the calling routine - ! as a 0-360 positive east longitude.... - - xlont = mod(360.-xlontz,360.) - -c xlont = mod(360.+xlontz,360.) - -cstr print *,' ' -cstr print *,'At end of distbear....' -cstr print '(a6,f7.2,a3,f7.2,a9,f7.2)','xlont= ',xlont,'E ' -cstr ,360.-xlont,'W xlatt=',xlatt - - return - 20 xlont=0. -c - return - end - -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine bilin_int_uneven (targlat,targlon,targdist,dx,dy - & ,imax,jmax,trkrinfo,cparm,xintrp_val,ibiret) -c -c ABSTRACT: This subroutine performs a bilinear interpolation to get -c a data value at a given lat/lon that may be anywhere within a box -c defined by the four surrouding grid points. In the diagram below, -c remember that for our grids we are using in the tracker, the -c latitude index starts at the north pole and increases southward. -c The point "X" indicates the target lat/lon location of the value -c for which we are bilinearly interpolating. The values to and ta -c below are ratios that determine how geographically close the -c target location is to the point of origin (pt.1 (i,j)) in terms -c of both longitude (to) and latitude (ta). -c -c -c pt.1 pt.2 -c (i,j) (i+1,j) -c -c -c -c X -c -c pt.4 pt.3 -c (i,j+1) (i+1,j+1) -c - - USE grid_bounds; USE tracked_parms; USE level_parms - USE trkrparms - USE verbose_output - - implicit none - - type (trackstuff) trkrinfo - - character cparm*1 - real targlat,targlon,targdist,xintrp_val,dx,dy - real to,ta,d1,d2,d3,d4,z,eastlon - integer ie,iw,jn,js,ibiret,imax,jmax - - ibiret = 0 - -c -------------------------------------------------------------- -c For the latitudes and longitudes surrounding our target -c lat/lon location, convert the lat/lon values into i- and -c j-indices. -c -------------------------------------------------------------- - -c Find the j-indices for the points just to the north and the -c south of targlat.... - - if (targlat >= 0.0) then - ! For a northern hemisphere storm, jn is the j-index for the - ! point just to the *NORTH* (poleward) of targlat. - jn = int((glatmax - targlat)/dy + 1.) - js = jn + 1 - else - ! For a southern hemisphere storm, js is the j-index for the - ! point just to the *SOUTH* (poleward) of targlat. - js = ceiling((glatmax - targlat)/dy + 1.) - jn = js - 1 - endif - - ! Check to make sure that points are not being requested beyond - ! the northern or southern boundaries of the grid. This is most - ! likely to happen for a smaller, regional grid. - - if (jn > jmax .or. js > jmax) then - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: jmax exceeded in subroutine ' - print *,'!!! bilin_int_uneven. Returning to calling ' - print *,'!!! routine after assigning wind value of -99.' - print *,'!!! jn= ',jn,' js= ',js,' jmax= ',jmax - print *,' ' - endif - xintrp_val = -999.0 - ibiret = 85 - return - endif - - if (jn < 1 .or. js < 1) then - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: jn < 0 or js < 0 in subroutine ' - print *,'!!! bilin_int_uneven. Returning to calling ' - print *,'!!! routine after assigning wind value of -99.' - print *,'!!! jn= ',jn,' js= ',js,' jmax= ',jmax - print *,' ' - endif - xintrp_val = -999.0 - ibiret = 85 - return - endif - -c Find the i-indices for the points just to the east and the -c west of targlon.... - - ie = int((targlon - glonmin)/dx + 2.) - iw = ie - 1 - - ! Check for GM wrapping. Check ie to see if it is between the - ! most eastward gridpoint and the GM (i.e., on a 1-deg global - ! grid (360x181), it would be if targlon was between 359.0 (i=360) - ! and the GM (i=1, not i=361)). Similarly then, if we adjust ie - ! to then be 1, then we have a problem with iw, - ! since iw = 1 - 1 = 0. - - if (ie > imax) then - if (trkrinfo%gridtype == 'global') then - ie = ie - imax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: ie > imax in subroutine ' - print *,'!!! bilin_int_uneven for a non-global grid. ' - print *,'!!! Returning to calling routine after ' - print *,'!!! assigning missing wind value of -99.' - print *,'!!! ie= ',ie,' imax= ',imax - print *,' ' - endif - xintrp_val = -999.0 - ibiret = 85 - return - endif - endif - - if (iw < 1) then - if (trkrinfo%gridtype == 'global') then - iw = iw + imax - else - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: iw < 1 in subroutine bilin_int_uneven' - print *,'!!! for a non-global grid. Returning to calling ' - print *,'!!! routine after assigning missing wind value ' - print *,'!!! of -99. iw= ',iw - print *,' ' - endif - xintrp_val = -999.0 - ibiret = 85 - return - endif - endif - - if ( verb .ge. 3 ) then - print *,' +++ Interpolating winds for cparm= ',cparm - print '(6x,4(a4,i3))','jn= ',jn,' js= ',js,' iw= ',iw,' ie= ',ie - endif - -c ---------------------------------------------------------------- -c Calculate the longitude (to) and latitude (ta) location ratios. -c Check for GM wrapping, as we can run into a problem here if -c interpolating for points that are just west of the GM, since we -c would be interpolating using values of longitude just west of -c GM (say, glon(iw)=359.5) and the GM (glon(ie) = 0.0). This -c makes for an incorrect "to" ratio below, with 0-359.5 in the -c denominator. We have to account for this.... -c ---------------------------------------------------------------- - - if (glon(iw) > 300.0 .and. - & (glon(ie) < 10. .and. glon(ie) >= 0.)) then - eastlon = 360. - glon(ie) - else - eastlon = glon(ie) - endif - - if ( verb .ge. 3 ) then - print *,'glat(js)= ',glat(js),' glat(jn)= ',glat(jn) - endif - - to = (targlon - glon(iw)) / (eastlon - glon(iw)) - ta = (targlat - glat(jn)) / (glat(js) - glat(jn)) - -c -------------------------------------------------------------- -c Copy the data values at the 4 known points into simple scalar -c variables -c -------------------------------------------------------------- - - if (cparm == 'u') then - d1 = u(iw,jn,levsfc) - d2 = u(ie,jn,levsfc) - d3 = u(ie,js,levsfc) - d4 = u(iw,js,levsfc) - else if (cparm == 'v') then - d1 = v(iw,jn,levsfc) - d2 = v(ie,jn,levsfc) - d3 = v(ie,js,levsfc) - d4 = v(iw,js,levsfc) - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in bilin_int_uneven.' - print *,'!!! Input cparm not recognized.' - print *,'!!! cparm= ',cparm - print *,'!!! EXITING....' - endif - - stop 95 - endif - - z = 1.9427 - -cstr print '(2x,4(a4,f8.2))',' d1= ',d1*z,' d2= ',d2*z -cstr & ,' d3= ',d3*z,' d4= ',d4*z - -c ------------------------------------------------------------- -c Compute the interpolated value -c ------------------------------------------------------------- - - xintrp_val = (1.-to) * (1.-ta) * d1 - & + to * (1.-ta) * d2 - & + to * ta * d3 - & + (1.-to) * ta * d4 - -cstr print '(2x,2(a11,f8.2))',' xintrp= ',xintrp_val,' (in kts)= ' -cstr & ,xintrp_val*z -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine sort_storms_by_pressure (gridprs,ifh,maxstorm,sortindex - & ,issret) -c -c ABSTRACT: This subroutine sorts storms by mslp. It is called by -c subroutine tracker just before the loop for "stormloop" is done -c for all the storms at a particular forecast hour. It is only -c called for the "midlat" and "tcgen" cases. The end result of -c this sort is an array (prsindex) that contains the indeces of -c the storms, arranged from lowest pressure to highest (and note -c that the "undefined" storms have a pressure of 9999.99 mb and -c thus get sorted to the bottom of the array). The purpose of -c doing this is so that we track the most intense storms first. -c Why go to the trouble? Imagine a scenario in which we are -c tracking a complex system in which there are 2 low pressure -c centers. Let's say that one is becoming dominant and -c intensifying, while the other is weakening. Now, let's assume -c that the weakening one eventually gets absorbed into the -c stronger, more dominant low. Now we only have 1 low, but if in -c the tracker stormloop, we first process the data for the -c weakening low, we will attribute the track to that storm, and -c then when we get to the point in the loop where we are trying -c to get the track for the stronger storm, we will (erroneously) -c stop the tracking for that storm since the storm center has -c already been attributed to the weaker storm. But by using this -c subroutine, we will track the stronger storm first, and thus -c avoid this problem. -c -c NOTE: The pressures used in the sort are those obtained at the -c previous forecast hour. At forecast hour = 0, just use the -c values as they were input to this routine, since they were -c found in first_ges_center from strongest to weakest already. -c -c INPUT: -c gridprs real array of storm mslp values -c ifh integer index for the current forecast hour -c maxstorm max num of storms that can be handled in this run -c -c OUTPUT: -c sortindex contains a sorted array of indeces. The orders -c sort routine does NOT rearrange the data. Rather, it -c returns this array of sorted indeces which point to -c the correct order of data values in the data array. -c issret return code from this subroutine -c - USE set_max_parms - USE verbose_output - - real, allocatable :: iwork(:) - real gridprs(maxstorm,maxtime) - integer ifh,maxstorm - integer sortindex(maxstorm) - integer, parameter :: dp = selected_real_kind(12, 60) - real (dp), allocatable :: prstemp(:) -c - allocate (prstemp(maxstorm),stat=iva) - allocate (iwork(maxstorm),stat=iwa) - if (iva /= 0 .or. iwa /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in sub sort_storms_by_pressure allocating' - print *,'!!! prstemp or iwork arrays: ' - print *,'!!! iva= ',iva,' iwa= ',iwa - endif - - STOP 94 - return - endif - - if (ifh > 1) then - -c print *,' ' -c print *,'--- Before sort, original prs values follow:' -c print *,' ' - - do ist = 1,maxstorm - prstemp(ist) = gridprs(ist,ifh-1) -c write (6,81) ist,prstemp(ist)/100.0 - enddo - - imode = 2 - sortindex = 0 - call qsort (prstemp,sortindex,maxstorm) - -ccccc call orders (imode,iwork,prstemp,sortindex,maxstorm,1,8,1) -ccccc call orders_4byte (imode,iwork,prstemp,sortindex,maxstorm,1,8,1) - - if ( verb .ge. 3 ) then - print *,' ' - print *,'+++ Pressure-sorted storm list:' - print *,' ' - - do ist = 1,maxstorm - if (prstemp(sortindex(ist))/100.0 < 9999.0) then - write (6,82) ist,sortindex(ist) - & ,prstemp(sortindex(ist))/100.0 - endif - enddo - - 81 format (1x,'ist= ',i5,' Original (unsorted) prstemp= ',f7.2) - 82 format (1x,'ist= ',i5,' sortindex(ist)= ',i5 - & ,' prstemp= ',f7.2) - endif - - else - do ist = 1,maxstorm - sortindex(ist) = ist - enddo - endif - - deallocate (prstemp); deallocate (iwork) -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine getvrvt (centlon,centlat,xlon,xlat - & ,udat,vdat,vr,vt,igvtret) -c -c ABSTRACT: This subroutine takes as input a u-wind and v-wind value -c at an input (xlon,xlat) location and returns the tangential and -c radial wind components relative to the input center lat/lon -c position (centlon,centlat). The only trick to this whole -c subroutine is figuring out the angle from the center point to the -c data point, and we do this by creating a triangle with the leg -c from the center point to the data point being the hypotenuse. -c -c NOTE: All longitudes must be in positive degrees east (0-360) !!! -c -c INPUT: -c centlon Longitude of center point -c centlat Latitude of center point -c xlon Longitude of pt at which vr & vt will be computed -c xlat Latitude of pt at which vr & vt will be computed -c udat u-value of wind at the point (xlon,xlat) -c vdat v-value of wind at the point (xlon,xlat) -c -c OUTPUT: -c vr Radial wind component at (xlon,xlat) wrt (centlon,centlat) -c vt Tang wind component at (xlon,xlat) wrt (centlon,centlat) -c igvtret Return code from this subroutine - - USE trig_vals - USE verbose_output - - real centlon,centlat,xlon,xlat,udat,vdat,vr,vt,degrees -c - call calcdist(centlon,centlat,xlon,xlat,hyp_dist,degrees) - - xlatdiff = abs(centlat - xlat) - xlondiff = abs(centlon - xlon) - - if (xlondiff == 0 .and. xlatdiff > 0) then - - if (centlat > xlat) angle = 180 ! pt directly south of ctr - if (centlat < xlat) angle = 0 ! pt directly north of ctr - - else if (xlondiff > 0 .and. xlatdiff == 0) then - - if (centlon > xlon) angle = 270 ! pt directly west of ctr - if (centlon < xlon) angle = 90 ! pt directly east of ctr - - else - - ! This next part figures out the angle from the center point - ! (centlon,centlat) to the data point (xlon,xlat). It does - ! this by setting up a triangle and then using inverse trig - ! functions to get the angle. Since this is a kludgy way to - ! do it that doesn't account for the curvature of the earth, - ! we'll do it 2 ways, using asin and then acos, then take the - ! average of those 2 for the angle. hyp_dist, calculated just - ! above, is the distance from the center pt to the data pt. - - opp_dist = xlatdiff/360. * ecircum - sin_value = opp_dist / hyp_dist - if (sin_value > 1.0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! In getvrvt, sin_value > 1, setting to 1.' - print *,'!!! opp_dist= ',opp_dist,' hyp_dist= ',hyp_dist - print *,'!!! sin_value = ',sin_value - print *,'!!! centlon= ',centlon,' centlat= ',centlat - print *,'!!! xlon= ',xlon,' xlat= ',xlat - print *,' ' - endif - - sin_value = 0.99999 - endif - sin_angle = asin(sin_value) / dtr - - call calcdist(centlon,centlat,xlon,centlat,adj_dist,degrees) - cos_value = adj_dist / hyp_dist - if (cos_value > 1.0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! In getvrvt, cos_value > 1, setting to 1.' - print *,'!!! adj_dist= ',adj_dist,' hyp_dist= ',hyp_dist - print *,'!!! cos_value = ',cos_value - print *,'!!! centlon= ',centlon,' centlat= ',centlat - print *,'!!! xlon= ',xlon,' xlat= ',xlat - print *,' ' - endif - - cos_value = 0.99999 - endif - cos_angle = acos(cos_value) / dtr - - tmpangle = 0.5 * (sin_angle + cos_angle) - - ! The previous lines of code just calculated an angle between - ! 0 and 90. This next if structure adjusts that angle to - ! instead be between 0 and 360. - - if (centlat <= xlat .and. centlon <= xlon) then - angle = 90 - tmpangle - else if (centlat > xlat .and. centlon <= xlon) then - angle = 90 + tmpangle - else if (centlat >= xlat .and. centlon >= xlon) then - angle = 270 - tmpangle - else if (centlat < xlat .and. centlon >= xlon) then - angle = 270 + tmpangle - endif - - endif - - uvrcomp = udat * sin(angle * dtr) - vvrcomp = vdat * cos(angle * dtr) - vr = uvrcomp + vvrcomp - - uvtcomp = (-udat) * cos(angle * dtr) - vvtcomp = vdat * sin(angle * dtr) - vt = uvtcomp + vvtcomp - - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine output_atcfunix (outlon,outlat,inp,ist - & ,ifcsthour,vmaxwind,xminmslp,vradius,maxstorm - & ,trkrinfo,plastbar,rlastbar,rmax,cps_vals - & ,wcore_flag,ioaxret) - -c ABSTRACT: This subroutine outputs a 1-line message for a given -c storm at an input forecast hour in the new ATCF UNIX format. -c Unlike the old atcf DOS format in which you waited until the -c whole tracking was over to write the output for all forecast -c hours, with this atcfunix format, each time we are calling this -c subroutine, it is to only write out 1 record, which will be the -c fix info for a particular storm at a given time. Also, even -c though we have some data (GFS, NAM) at 6-hour intervals, Jim -c Gross informed me that TPC does not need the positions at such -c frequency, and keeping the reporting at 12 hour intervals is fine. -c -c While this new atcfunix format contains much more information than -c the old 1-line atcf dos message, for our purposes we will use the -c slots for mslp and wind radii. An example set of output records -c will look like the following: -c -c AL, 13, 2000092500, 03, GFSO, 036, 243N, 675W, 42, 995, XX, 34, -c NEQ, 242, 163, 124, 208 -c AL, 13, 2000092500, 03, GFSO, 036, 243N, 675W, 42, 995, XX, 50, -c NEQ, 155, 000, 000, 000 -c AL, 13, 2000092500, 03, GFSO, 036, 243N, 675W, 42, 995, XX, 64, -c NEQ, 000, 000, 000, 000 -c -c (NOTE: Each of the above lines beginning with "AL" is output as -c a single line of text.) -c -c Note that in this example, for this 36h forecast hour, there are -c 3 entries. This is so that we can include the radii for the -c 3 different wind thresholds (34kt, 50kt and 64kt). So the only -c thing different in each entry is the wind radii info; all the -c other info is identical for each entry. -c -c This message also contains the intensity estimates (in knots) -c for every forecast hours The conversion for m/s to knots is -c to multiply m/s by 1.9427 (3.281 ft/m, 1 naut mile/6080 ft, -c 3600s/h). -c -c NOTE: The longitudes that are passed into this subroutine are -c given in 0 - 360, increasing eastward. The format for the -c atcfunix system requires that the output be 0-180E or -c 0-180W, so we must adjust the values, if needed. Also, the -c values for southern latitudes must be positive (use 'N' and -c 'S' to distinguish Northern/Southern Hemispheres). -c -c INPUT: -c outlon longitude fix position for this storm at this time -c which is to be written out to the output file -c outlat latitude fix position for this storm at this time -c which is to be written out to the output file -c inp contains input date and model number information -c ist the number storm that we're processing (can be 1-15) -c ifcsthr the current forecast hour being output -c vmaxwind the max surface wind for this storm at this fcst hour -c xminmslp the min mslp for this storm at this fcst hour -c vradius Contains the distance from the storm fix position to -c each of the various wind threshhold distances in each -c quadrant. (3,4) ==> (# of threshholds, # of quadrants) -c maxstorm max # of storms that can be handled -c plastbar pressure of the outermost closed isobar -c rlastbar radius (nm) of the outermost closed isobar -c rmax radius of max winds (n mi).... it was already converted -c from km to n mi in subroutine get_max_wind -c cps_vals real array with the values for the 3 cyclone phase -c space parameters: (1) is for Parameter B (thermal -c asymmetry); (2) is for lower level (600-900 mb) thermal -c wind; (3) is for upper level (300-600 mb) thermal wind. -c wcore_flag character for value of 300-500 mb warm core: y, n, or -c 'u' for undetermined. -c OUTPUT: -c ioaxret integer return code from this subroutine -c -c LOCAL: -c intlon integer that holds the value of outlon*10 -c intlat integer that holds the value of outlat*10 -c storm An array of type tcvcard. Use this for the storm ID -c - - USE def_vitals; USE inparms; USE set_max_parms; USE atcf - USE trkrparms; USE phase - USE verbose_output - - type (datecard) inp - type (trackstuff) trkrinfo - - real cps_vals(3) - real outlon,outlat,rmax - real vmaxwind,conv_ms_knots,xminmslp,plastbar,rlastbar - integer intlon,intlat,irmax,output_fhr,ic,iplastbar,irlastbar - integer vradius(3,4),icps_vals(3) - character basinid*2,clatns*1,clonew*1,wcore_flag*1 - character comma_fill1*48,comma_fill2*31,comma_filler*79 - - if ( verb .ge. 3 ) then - print *,'TTT top of atcfunix, ist= ',ist,' ifh= ',ifcsthour - endif - - if (xminmslp == 999999.0) xminmslp = 0.0 - -c First convert all of the lat/lon values from reals into integers. -c These integer values must be 10x their real value (eg. 125.4 will -c be written out as 1254). Convert the lon values so that they go -c from 0-180E or 0-180W, and convert the lat values so that they are -c positive and use 'N' or 'S' to differentiate hemispheres. - - conv_ms_knots = 1.9427 - - if (outlon < -998.0 .or. outlat < -998.0) then - intlon = 0 - intlat = 0 - clonew = ' ' - clatns = ' ' - else - if (outlon >= 180.0) then - intlon = 3600 - int(outlon * 10. + 0.5) - clonew = 'W' - else - intlon = int(outlon * 10. + 0.5) - clonew = 'E' - endif - intlat = int(abs(outlat) * 10. + 0.5) - if (outlat < 0.0) then - clatns = 'S' - else - clatns = 'N' - endif - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,'in output_atcfunix, tcv_storm_id= ' - & ,storm(ist)%tcv_storm_id - print *,'in output_atcfunix, tcv_storm_id(3:3)= ' - & ,storm(ist)%tcv_storm_id(3:3) - endif - - select case (storm(ist)%tcv_storm_id(3:3)) - case ('L','l'); basinid = 'AL' - case ('E','e'); basinid = 'EP' - case ('C','c'); basinid = 'CP' - case ('W','w'); basinid = 'WP' - case ('O','o'); basinid = 'SC' - case ('T','t'); basinid = 'EC' - case ('U','u'); basinid = 'AU' - case ('P','p'); basinid = 'SP' - case ('S','s'); basinid = 'SI' - case ('B','b'); basinid = 'BB' -!zhang case ('A','a'); basinid = 'NA' - case ('A','a'); basinid = 'AA' - case ('Q','q'); basinid = 'SL' - case default; basinid = 'HC' - end select - - if (atcfname(1:2) == 'SP') then - ! Add 3 for SREF to account for the 3-hour off-synoptic - ! time offset.... - output_fhr = ifcsthour + 3 - else - output_fhr = ifcsthour - endif - - if (rmax == -99.0) then - irmax = -99 - else - irmax = int(rmax + 0.5) - endif - - if (trkrinfo%want_oci) then - if (plastbar > 0.0) then - iplastbar = int(plastbar/100 + 0.5) - else - iplastbar = -99 - endif - if (rlastbar > 0.0) then - irlastbar = int(rlastbar + 0.5) - else - irlastbar = -99 - endif - else - iplastbar = -99 - irlastbar = -99 - endif - - if ( verb .ge. 3 ) then - print *, 'output: rlastbar=',rlastbar,' irlastbar=',irlastbar - print *, 'output: plastbar=',plastbar,' iplastbar=',iplastbar - endif - -c Now convert all of the cyclone phase space parameter values from -c real to integer. - - do ic = 1,3 - if (cps_vals(ic) > -9999.0) then - if (cps_vals(ic) >= 0.0) then - icps_vals(ic) = int(cps_vals(ic)*10. + 0.5) - else - icps_vals(ic) = int(cps_vals(ic)*10. - 0.5) - endif - else - icps_vals(ic) = -9999 - endif - enddo - - if (wcore_flag == 'y') wcore_flag = 'Y' - if (wcore_flag == 'n') wcore_flag = 'N' - if (wcore_flag == 'u') wcore_flag = 'U' - - comma_fill1 = ', 0, 0, , 0, , 0, 0, ,' - comma_fill2 = ' , , , 0, 0, 0, 0' - comma_filler = comma_fill1//comma_fill2 - - if (trkrinfo%type == 'midlat' .or. trkrinfo%type == 'tcgen') then - - if (stcvtype(ist) == 'FOF') then - ! If this is a TC vitals-described storm (i.e., one that is - ! numbered by JTWC or NHC), then leave the basinid as is. - ! Otherwise, we want to use the "basinid" location as a - ! label to identify what type of run this is. - if (trkrinfo%type == 'midlat') basinid = 'ML' - if (trkrinfo%type == 'tcgen') basinid = 'TG' - endif - - write (64,91) basinid,adjustr(storm(ist)%tcv_storm_id) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 34, NEQ' - & ,vradius(1,1),vradius(1,2),vradius(1,3),vradius(1,4) - & ,iplastbar,irlastbar,irmax,0,0,stcvtype(ist) - - if (vradius(2,1) > 0 .or. vradius(2,2) > 0 .or. - & vradius(2,3) > 0 .or. vradius(2,4) > 0) then - write (64,91) basinid,adjustr(storm(ist)%tcv_storm_id) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 50, NEQ' - & ,vradius(2,1),vradius(2,2),vradius(2,3),vradius(2,4) - & ,iplastbar,irlastbar,irmax,0,0,stcvtype(ist) - endif - - if (vradius(3,1) > 0 .or. vradius(3,2) > 0 .or. - & vradius(3,3) > 0 .or. vradius(3,4) > 0) then - write (64,91) basinid,adjustr(storm(ist)%tcv_storm_id) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 64, NEQ' - & ,vradius(3,1),vradius(3,2),vradius(3,3),vradius(3,4) - & ,iplastbar,irlastbar,irmax,0,0,stcvtype(ist) - endif - - else - - write (64,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 34, NEQ' - & ,vradius(1,1),vradius(1,2),vradius(1,3),vradius(1,4) - & ,iplastbar,irlastbar,irmax,comma_filler,icps_vals(1) - & ,icps_vals(2),icps_vals(3),wcore_flag,int(wcore_depth*10) - - if (vradius(2,1) > 0 .or. vradius(2,2) > 0 .or. - & vradius(2,3) > 0 .or. vradius(2,4) > 0) then - write (64,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 50, NEQ' - & ,vradius(2,1),vradius(2,2),vradius(2,3),vradius(2,4) - & ,iplastbar,irlastbar,irmax,comma_filler,icps_vals(1) - & ,icps_vals(2),icps_vals(3),wcore_flag,int(wcore_depth*10) - endif - - if (vradius(3,1) > 0 .or. vradius(3,2) > 0 .or. - & vradius(3,3) > 0 .or. vradius(3,4) > 0) then - write (64,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 64, NEQ' - & ,vradius(3,1),vradius(3,2),vradius(3,3),vradius(3,4) - & ,iplastbar,irlastbar,irmax,comma_filler,icps_vals(1) - & ,icps_vals(2),icps_vals(3),wcore_flag,int(wcore_depth*10) - endif - - endif - - if ( verb .ge. 3 ) then - print *,'rmax= ',rmax,' irmax= ',irmax - endif - - 81 format (a2,', ',a2,', ',i10.10,', 03, ',a4,', ',i3.3,', ',i3,a1 - & ,', ',i4,a1,', ',i3,', ',i4,', ',a12,4(', ',i4.4) - & ,2(', ',i4),', ',i3,a79,', THERMO PARAMS' - & ,3(', ',i7),', ',a1,', ',i2,', DT, -999') - 91 format (a2,', ',a4,', ',i10.10,', 03, ',a4,', ',i3.3,', ',i3,a1 - & ,', ',i4,a1,', ',i3,', ',i4,', ',a12,4(', ',i4.4) - & ,2(', ',i4),', ',i3,2(', ',i3),', ',a3) - -c bug fix for IBM: flush the output stream so it actually writes - flush(64) - - return - end - -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine output_all (fixlon,fixlat,inp,maxstorm,ifhmax,ioaret) -c -c ABSTRACT: This subroutine outputs a 1-line message for each -c storm. This message contains the model identifier, the forecast -c initial date, and the positions for 0, 12, 24, 36, 48, 60 and 72 -c hours. In the case of the regional models (NGM, Eta), which -c only go out to 48h, zeroes are included for forecast hours -c 60 and 72. -c -c NOTE: The longitudes that are passed into this subroutine are -c given in 0 - 360, increasing eastward. The output of this -c subroutine is used by Steve Lord for plotting purposes, and his -c plotting routines need the longitudes in 0 - 360, increasing -c westward. Thus, a necessary adjustment is made. -c - USE def_vitals; USE inparms; USE set_max_parms; USE atcf - USE tracked_parms -c - type (datecard) inp -c - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - integer modelnum(maxmodel) - integer intlon(maxtime),intlat(maxtime) - character modelchar(maxmodel)*4 - -c First convert all of the lat/lon values from reals into integers. -c These integer values must be 10x their real value (eg. 125.4 will -c be written out as 1254). Convert the lon values so that they go -c from 0 - 360, increasing westward. - - print *,'top of output_all' - - stormloop: do ist = 1,maxstorm - - if (stormswitch(ist) == 3) cycle stormloop - intlon = 0; intlat = 0 - - ifhloop: do ifh = 1,maxtime - - if (ifh <= ifhmax) then - if (ifhours(ifh) == 99) then - intlon(ifh) = 0 - intlat(ifh) = 0 - cycle ifhloop - endif - else - intlon(ifh) = 0 - intlat(ifh) = 0 - cycle ifhloop - endif - - if (fixlon(ist,ifh) < -998.0 .or. fixlat(ist,ifh) < -998.0) - & then - intlon(ifh) = 0 - intlat(ifh) = 0 - else - intlon(ifh) = 3600 - int(fixlon(ist,ifh) * 10. + 0.5) - intlat(ifh) = int(abs(fixlat(ist,ifh)) * 10. + 0.5) - if (fixlat(ist,ifh) < 0.0) then - intlat(ifh) = intlat(ifh) * (-1) - endif - endif - - enddo ifhloop - - print *,'before select case, atcfname= ' - - select case (atcfname(1:3)) - - case ('SEC','SEN','SEP','SKC','SKN','SKP','SRC','SRN','SRP') - write (61,81) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh,intlat(1),intlon(1) - & ,intlat(5),intlon(5),intlat(9),intlon(9),intlat(13) - & ,intlon(13),intlat(17),intlon(17),intlat(21),intlon(21) - & ,0,0,storm(ist)%tcv_storm_id - - case ('AVN','NGM','ETA','GFD','AP0','AN0','AP1','AN1','AC0' - & ,'AMM','CMC','HWR') - write (61,81) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh,intlat(1),intlon(1) - & ,intlat(3),intlon(3),intlat(5),intlon(5),intlat(7) - & ,intlon(7),intlat(9),intlon(9),intlat(11),intlon(11) - & ,intlat(13),intlon(13),storm(ist)%tcv_storm_id - - case ('MRF','UKX','NGX','EP0','EP1','EP2','EN0','EN1','EN2' - & ,'CP0','CN0','CC0','EC0','EMX') - ! MRF, UKMET, NOGAPS, ECMWF Ensemble - write (61,81) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh,intlat(1),intlon(1) - & ,intlat(2),intlon(2),intlat(3),intlon(3),intlat(4) - & ,intlon(4),intlat(5),intlon(5),intlat(6),intlon(6) - & ,intlat(7),intlon(7),storm(ist)%tcv_storm_id - - case ('GDA','HDA') ! GDAS, HDAS - if ( atcffreq == 100 ) then - write (61,81) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh,intlat(4),intlon(4) - & ,intlat(5),intlon(5),intlat(6),intlon(6) - & ,intlat(7),intlon(7),intlat(8),intlon(8) - & ,intlat(9),intlon(9),intlat(10),intlon(10) - & ,storm(ist)%tcv_storm_id - elseif ( atcffreq == 300 ) then - write (61,81) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh,intlat(1),intlon(1) - & ,intlat(2),intlon(2),intlat(3),intlon(3) - & ,intlat(4),intlon(4),0,0,0,0,0,0 - & ,storm(ist)%tcv_storm_id - endif - - case ('WP0','WP1','WN0','WN1','XP0','XP1','XN0','XN1' - & ,'YP0','YP1','YN0','YN1','ZP0','ZP1','ZN0','ZN1') - ! Ensemble RELOCATION ONLY - write (61,81) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh,intlat(1),intlon(1) - & ,intlat(2),intlon(2),0,0,0,0,0,0,0,0,0,0 - & ,storm(ist)%tcv_storm_id - - case default - print *,' ' -! print *,'!!! Warning from subroutine output_all. ' - print *,'!!! Model name is not identified. ',atcfname -! print *,'!!! Model name = ',atcfname -! print *,'!!! ist = ',ist,' Model number = ',atcfnum - print *,'!!! Model is assumed to be parallel GDAS/GFS. ' - - write (61,81) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh,intlat(1),intlon(1) - & ,intlat(2),intlon(2),intlat(3),intlon(3) - & ,intlat(4),intlon(4),0,0,0,0,0,0 - & ,storm(ist)%tcv_storm_id - - end select - - enddo stormloop - - 81 format (i2,a4,4i2.2,14i4,1x,a3) -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine output_atcf (fixlon,fixlat,inp,xmaxwind,maxstorm - & ,ifhmax,ioaret) -c -c ABSTRACT: This subroutine outputs a 1-line message for each storm -c in ATCF format. This message contains the model identifier, the -c forecast initial date, and the positions for 12, 24, 36, 48 -c and 72 hours. This message also contains the intensity -c estimates (in knots) for those same hours. The conversion for -c m/s to knots is to multiply m/s by 1.9427 (3.281 ft/m, -c 1 naut mile/6080 ft, 3600s/h). -c -c NOTE: The longitudes that are passed into this subroutine are -c given in 0 - 360, increasing eastward. The output of this -c subroutine is used by the atcf system at TPC for plotting -c purposes, and the atcf plotting routines need the longitudes in -c 0 - 360, increasing westward. Thus, a necessary adjustment is -c made. -c - USE def_vitals; USE inparms; USE set_max_parms; USE atcf - USE tracked_parms -c - type (datecard) inp -c - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real xmaxwind(maxstorm,maxtime) - real conv_ms_knots - integer modelnum(maxmodel) - integer intlon(maxtime),intlat(maxtime) - character modelchar(maxmodel)*4,basinid*4 - -c First convert all of the lat/lon values from reals into integers. -c These integer values must be 10x their real value (eg. 125.4 will -c be written out as 1254). Convert the lon values so that they go -c from 0 - 360, increasing westward. - - conv_ms_knots = 1.9427 - - stormloop: do ist = 1,maxstorm - - if (stormswitch(ist) == 3) cycle stormloop - intlon = 0; intlat = 0 - - ifhloop: do ifh = 1,maxtime - - if (ifh <= ifhmax) then - if (ifhours(ifh) == 99) then - intlon(ifh) = 0 - intlat(ifh) = 0 - cycle ifhloop - endif - else - intlon(ifh) = 0 - intlat(ifh) = 0 - cycle ifhloop - endif - - if (fixlon(ist,ifh) < -998.0 .or. fixlat(ist,ifh) < -998.0) - & then - - intlon(ifh) = 0 - intlat(ifh) = 0 - - else - intlon(ifh) = 3600 - int(fixlon(ist,ifh) * 10. + 0.5) - intlat(ifh) = int(abs(fixlat(ist,ifh)) * 10. + 0.5) - if (fixlat(ist,ifh) < 0.0) then - intlat(ifh) = intlat(ifh) * (-1) - endif - - endif - - enddo ifhloop - - basinid = ' ' - select case (storm(ist)%tcv_storm_id(3:3)) - case ('L','l'); basinid(1:2) = 'AL' - case ('E','e'); basinid(1:2) = 'EP' - case ('C','c'); basinid(1:2) = 'CP' - case ('W','w'); basinid(1:2) = 'WP' - case ('O','o'); basinid(1:2) = 'SC' - case ('T','t'); basinid(1:2) = 'EC' - case ('U','u'); basinid(1:2) = 'AU' - case ('P','p'); basinid(1:2) = 'SP' - case ('S','s'); basinid(1:2) = 'SI' - case ('B','b'); basinid(1:2) = 'BB' - case ('A','a'); basinid(1:2) = 'NA' - case default; basinid(1:2) = '**' - end select - basinid(3:4) = storm(ist)%tcv_storm_id(1:2) - - - select case (atcfname(1:3)) - - case ('SEC','SEN','SEP','SKC','SKN','SKP','SRC','SRN','SRP') - write (62,82) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh,intlat(5),intlon(5) - & ,intlat(9),intlon(9),intlat(13),intlon(13),intlat(17) - & ,intlon(17),0,0 - & ,int((xmaxwind(ist,5)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,9)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,13)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,17)*conv_ms_knots) + 0.5) - & ,0 - & ,basinid,inp%byy - - case ('AVN','NGM','ETA','GFD','AP0','AN0','AP1','AN1','AC0' - & ,'AMM','CMC','HWR') - write (62,82) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh,intlat(3),intlon(3) - & ,intlat(5),intlon(5),intlat(7),intlon(7),intlat(9) - & ,intlon(9),intlat(13),intlon(13) - & ,int((xmaxwind(ist,3)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,5)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,7)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,9)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,13)*conv_ms_knots) + 0.5) - & ,basinid,inp%byy - - case ('MRF','UKX','NGX','EP0','EP1','EP2','EN0','EN1','EN2' - & ,'CP0','CN0','CC0','EC0','EMX') - ! MRF, UKMET, NOGAPS, ECMWF Ensemble, ECMWF hi-res - write (62,82) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh,intlat(2),intlon(2) - & ,intlat(3),intlon(3),intlat(4),intlon(4),intlat(5) - & ,intlon(5),intlat(7),intlon(7) - & ,int((xmaxwind(ist,2)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,3)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,4)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,5)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,7)*conv_ms_knots) + 0.5) - & ,basinid,inp%byy - - case ('GDA','HDA') ! GDAS, HDAS - write (62,82) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh - & ,intlon(1),intlat(1),intlat(2),intlon(2) - & ,intlat(3),intlon(3),intlat(4),intlon(4) - & ,0,0 - & ,int((xmaxwind(ist,2)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,3)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,4)*conv_ms_knots) + 0.5) - & ,0,0,basinid,inp%byy - - case ('WP0','WP1','WN0','WN1','XP0','XP1','XN0','XN1' - & ,'YP0','YP1','YN0','YN1','ZP0','ZP1','ZN0','ZN1') - ! Ensemble RELOCATION ONLY - write (62,82) atcfnum,atcfname - & ,inp%byy,inp%bmm,inp%bdd,inp%bhh - & ,intlon(1),intlat(1),intlat(2),intlon(2) - & ,0,0,0,0 - & ,0,0 - & ,int((xmaxwind(ist,2)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,3)*conv_ms_knots) + 0.5) - & ,int((xmaxwind(ist,4)*conv_ms_knots) + 0.5) - & ,0,0,basinid,inp%byy - - case default - print *,' ' -! print *,'!!! ERROR in subroutine output_atcf. ' - print *,'!!! Model name is not identified.' -! print *,'!!! Model name = ',atcfname -! print *,'!!! ist = ',ist,' Model number = ',atcfnum - print *,'!!! Model is assumed to be parallel GDAS/GFS. ' - - end select - - enddo stormloop - - 82 format (i2,a4,4i2.2,10i4,5i3,1x,a4,i2.2) -c - return - end - -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine output_hfip (outlon,outlat,inp,ist - & ,ifh,vmaxwind,xminmslp,vradius,rmax,ioaxret) - -c ABSTRACT: This subroutine outputs a 1-line message for a given -c storm at an input forecast hour in a modified ATCF UNIX format. -c The modification is to allow for sub-hourly output. That is, -c instead of just integer output hours, we can have output at -c 10, 15 or 20 past an hour. This necessitates a change in the -c "forecast hour" placeholder in the ATCF format. Instead of it -c being an I3, we'll make it an I5, with something like a lead time -c of 36.25h being rounded and truncated to 03625 for output. -c -c An example set of output records using the standard atcf format -c looks like the following: -c -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, 34, -c NEQ, 242, 163, 124, 208 -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, 50, -c NEQ, 155, 000, 000, 000 -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, 64, -c NEQ, 000, 000, 000, 000 -c -c An example set of modified output records will look like the -c following, for the case of a lead time of 36:15 (36.25): -c -c AL, 13, 2000092500, 03, AVNO, 03625, 243N, 675W, 42, 995, XX, 34, -c NEQ, 242, 163, 124, 208 -c AL, 13, 2000092500, 03, AVNO, 03625, 243N, 675W, 42, 995, XX, 50, -c NEQ, 155, 000, 000, 000 -c AL, 13, 2000092500, 03, AVNO, 03625, 243N, 675W, 42, 995, XX, 64, -c NEQ, 000, 000, 000, 000 -c -c (NOTE: Each of the above lines beginning with "AL" is output as -c a single line of text.) -c -c Note that in this example, for this 36h forecast hour, there are -c 3 entries. This is so that we can include the radii for the -c 3 different wind thresholds (34kt, 50kt and 64kt). So the only -c thing different in each entry is the wind radii info; all the -c other info is identical for each entry. -c -c This message also contains the intensity estimates (in knots) -c for every forecast hours The conversion for m/s to knots is -c to multiply m/s by 1.9427 (3.281 ft/m, 1 naut mile/6080 ft, -c 3600s/h). -c -c NOTE: The longitudes that are passed into this subroutine are -c given in 0 - 360, increasing eastward. The format for the -c atcfunix system requires that the output be 0-180E or -c 0-180W, so we must adjust the values, if needed. Also, the -c values for southern latitudes must be positive (use 'N' and -c 'S' to distinguish Northern/Southern Hemispheres). -c -c INPUT: -c storm An array of type tcvcard. Use this for the storm ID -c outlon longitude fix position for this storm at this time -c which is to be written out to the output file -c outlat latitude fix position for this storm at this time -c which is to be written out to the output file -c inp contains input date and model number information -c ist the number storm that we're processing (can be 1-15) -c ifh index for the lead time array -c vmaxwind the max surface wind for this storm at this fcst hour -c xminmslp the min mslp for this storm at this fcst hour -c vradius Contains the distance from the storm fix position to -c each of the various wind threshhold distances in each -c quadrant. (3,4) ==> (# of threshholds, # of quadrants) -c rmax Radius of max winds (n mi).... it was already converted -c from km to n mi in subroutine get_max_wind -c -c OUTPUT: -c ioaxret integer return code from this subroutine -c -c LOCAL: -c intlon integer that holds the value of outlon*10 -c intlat integer that holds the value of outlat*10 -c - - USE def_vitals; USE inparms; USE set_max_parms; USE atcf - USE tracked_parms - USE verbose_output - - type (datecard) inp - - real outlon,outlat - real vmaxwind,conv_ms_knots,xminmslp,rmax - integer intlon,intlat,output_fhr,irmax,ileadtime - integer vradius(3,4) - character basinid*2,clatns*1,clonew*1 - -c First convert all of the lat/lon values from reals into integers. -c These integer values must be 10x their real value (eg. 125.4 will -c be written out as 1254). Convert the lon values so that they go -c from 0-180E or 0-180W, and convert the lat values so that they are -c positive and use 'N' or 'S' to differentiate hemispheres. - - conv_ms_knots = 1.9427 - - if (outlon < -998.0 .or. outlat < -998.0) then - intlon = 0 - intlat = 0 - clonew = ' ' - clatns = ' ' - else - if (outlon >= 180.0) then - intlon = 3600 - int(outlon * 10. + 0.5) - clonew = 'W' - else - intlon = int(outlon * 10. + 0.5) - clonew = 'E' - endif - intlat = int(abs(outlat) * 10. + 0.5) - if (outlat < 0.0) then - clatns = 'S' - else - clatns = 'N' - endif - endif - - select case (storm(ist)%tcv_storm_id(3:3)) - case ('L','l'); basinid = 'AL' - case ('E','e'); basinid = 'EP' - case ('C','c'); basinid = 'CP' - case ('W','w'); basinid = 'WP' - case ('O','o'); basinid = 'SC' - case ('T','t'); basinid = 'EC' - case ('U','u'); basinid = 'AU' - case ('P','p'); basinid = 'SP' - case ('S','s'); basinid = 'SI' - case ('B','b'); basinid = 'BB' - case ('A','a'); basinid = 'AA' - case ('Q','q'); basinid = 'SL' - case default; basinid = '**' - end select - - ! ST: ifcsthour does not exist, so output_fhr is always - ! filled with invalid data here. However, output_fhr is - ! never used, so it is safe to remove. - if (atcfname(1:2) == 'SP') then - ! Add 3 for SREF to account for the 3-hour off-synoptic - ! time offset.... - ! output_fhr = ifcsthour + 3 - ileadtime = nint((fhreal(ifh) + 3.0) * 100.0) - else - ! output_fhr = ifcsthour - ileadtime = nint(fhreal(ifh) * 100.0) - endif - - if (rmax == -99.0) then - irmax = -99 - else - irmax = int(rmax + 0.5) - endif - - write (69,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),ileadtime,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,'XX, 34, NEQ' - & ,vradius(1,1),vradius(1,2),vradius(1,3),vradius(1,4),irmax - - if (vradius(2,1) > 0 .or. vradius(2,2) > 0 .or. - & vradius(2,3) > 0 .or. vradius(2,4) > 0) then - write (69,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),ileadtime,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,'XX, 50, NEQ' - & ,vradius(2,1),vradius(2,2),vradius(2,3),vradius(2,4),irmax - endif - - if (vradius(3,1) > 0 .or. vradius(3,2) > 0 .or. - & vradius(3,3) > 0 .or. vradius(3,4) > 0) then - write (69,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),ileadtime,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,'XX, 64, NEQ' - & ,vradius(3,1),vradius(3,2),vradius(3,3),vradius(3,4),irmax - endif - - 81 format (a2,', ',a2,', ',i10.10,', 03, ',a4,', ',i5.5,', ',i3,a1 - & ,', ',i4,a1,', ',i3,', ',i4,', ',a12,4(', ',i4.4) - & ,', 0, 0, ',i3) -c -c bug fix for IBM: flush the output stream so it actually writes - flush(69) - - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine output_fract_wind (outlon,outlat,xsfclon,xsfclat - & ,inp,ist,ifcsthour,vmaxwind,xminmslp,wfract_cov - & ,wfract_type,pdf_ct_bin,pdf_ct_tot,maxstorm,iofwret) -c -c ABSTRACT: This subroutine outputs a 1-line message for a given -c storm at an input forecast hour. This message contains the -c values for the fractional areal coverage of various wind -c thresholds. In addition, this subroutine also writes out -c records to a file containing data on the PDF of wind magnitudes -c within r=350 km. -c -c This format will mimic the current atcfunix format with the -c difference coming late in the record, where the various wind radii -c will be replaced with areal coverage thresholds. -c -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 000, 100, 34, NEE, 981, 857, 629, 810 -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 000, 100, 50, NEE, 874, 732, 319, 610 -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 000, 100, 64, NEE, 454, 327, 99, 270 -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 000, 100, 34, AAE, 721, 721, 721, 721 -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 000, 100, 50, AAE, 465, 465, 465, 465 -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 000, 100, 64, AAE, 298, 298, 298, 298 -c -c (NOTE: Each of the above lines beginning with "AL" is output as -c a single line of text.) -c -c Note that in this example, for this 36h forecast hour, there are -c 3 entries. This is so that we can include the pctgs for the -c 3 different wind thresholds (34kt, 50kt and 64kt). So the only -c thing different in each entry is the wind pctg info; all the -c other info is identical for each entry. -c -c Listed after the "XX" in each record is the radius from which -c the coverage is valid (000 km in this case); Next is the radius -c at which the coverage stops (100 km in this case). Next is the -c wind threshold (34, 50, 64). Next is an identifier for which -c quadrant the coverage starts in (first 2 characters are NE, SE, -c SW, NW); the last character indicates if the coverages are -c computed in the quadrants as earth-relative ("E") or -c storm-motion relative ("R"). The ones listed there as "AAE" -c are for the full disc (i.e., 4-quadrant average), earth-relative. -c Next are the wind coverage percentages, listed as percentage * 10 -c (e.g., 981 = 98.1%). -c -c This message also contains the intensity estimates (in knots) -c for every forecast hours The conversion for m/s to knots is -c to multiply m/s by 1.9427 (3.281 ft/m, 1 naut mile/6080 ft, -c 3600s/h). -c -c NOTE: The longitudes that are passed into this subroutine are -c given in 0 - 360, increasing eastward. The format for the -c atcfunix system requires that the output be 0-180E or -c 0-180W, so we must adjust the values, if needed. Also, the -c values for southern latitudes must be positive (use 'N' and -c 'S' to distinguish Northern/Southern Hemispheres). -c -c INPUT: -c outlon longitude fix position for this storm at this time -c which is to be written out to the output file -c outlat latitude fix position for this storm at this time -c which is to be written out to the output file -c xsfclon low-level longitude estimate for this storm & time, -c computed ideally from mean of mslp & low-level winds. -c xsfclat low-level latitude estimate for this storm & time, -c computed ideally from mean of mslp & low-level winds. -c inp contains input date and model number information -c ist the number storm that we're processing (can be 1-15) -c ifcsthr the current forecast hour being output -c vmaxwind the max surface wind for this storm at this fcst hour -c xminmslp the min mslp for this storm at this fcst hour -c wfract_cov percent areal coverage for various wind thresholds -c wfract_type 'earth' or 'storm' relative analysis -c pdf_ct_bin array for pdf of wind magnitudes within r=350 km -c pdf_ct_tot total count of pdf points for r < 350 km -c -c OUTPUT: -c ioaxret integer return code from this subroutine -c -c LOCAL: -c intlon integer that holds the value of outlon*10 -c intlat integer that holds the value of outlat*10 -c - - USE def_vitals; USE inparms; USE set_max_parms; USE atcf - USE verbose_output - - type (datecard) inp -c - integer, parameter :: numdist=14,numquad=4,numbin=5,numthresh=3 - real outlon,outlat,pdfval - real wfract_cov(numquad+1,numbin,numthresh) - real vmaxwind,conv_ms_knots,xminmslp,xsfclon,xsfclat - integer :: windthresh(numthresh) = (/34,50,64/) - integer pdf_ct_bin(16) - integer intlon,intlat,output_fhr,intlon100,intlat100,pdf_ct_tot - integer maxstorm - character basinid*2,clatns*1,clonew*1,wfract_type*5,wt*1,cquad*2 - -c First convert all of the lat/lon values from reals into integers. -c These integer values must be 10x their real value (eg. 125.4 will -c be written out as 1254). Convert the lon values so that they go -c from 0-180E or 0-180W, and convert the lat values so that they are -c positive and use 'N' or 'S' to differentiate hemispheres. - - conv_ms_knots = 1.9427 - - if (outlon < -998.0 .or. outlat < -998.0) then - intlon = 0 - intlat = 0 - intlon100 = 0 - intlat100 = 0 - clonew = ' ' - clatns = ' ' - else - if (outlon >= 180.0) then - intlon = 3600 - int(outlon * 10. + 0.5) - intlon100 = 36000 - int(outlon * 100. + 0.5) - clonew = 'W' - else - intlon = int(outlon * 10. + 0.5) - intlon100 = int(outlon * 100. + 0.5) - clonew = 'E' - endif - intlat = int(abs(outlat) * 10. + 0.5) - intlat100 = int(abs(outlat) * 100. + 0.5) - if (outlat < 0.0) then - clatns = 'S' - else - clatns = 'N' - endif - endif - - select case (storm(ist)%tcv_storm_id(3:3)) - case ('L','l'); basinid = 'AL' - case ('E','e'); basinid = 'EP' - case ('C','c'); basinid = 'CP' - case ('W','w'); basinid = 'WP' - case ('O','o'); basinid = 'SC' - case ('T','t'); basinid = 'EC' - case ('U','u'); basinid = 'AU' - case ('P','p'); basinid = 'SP' - case ('S','s'); basinid = 'SI' - case ('B','b'); basinid = 'BB' - case ('A','a'); basinid = 'AA' - case ('Q','q'); basinid = 'SL' - case default; basinid = '**' - end select - - if (atcfname(1:2) == 'SP') then - ! Add 3 for SREF to account for the 3-hour off-synoptic - ! time offset.... - output_fhr = ifcsthour + 3 - else - output_fhr = ifcsthour - endif - - if (wfract_type == 'earth') then - wt = 'E' - else if (wfract_type == 'storm') then - wt = 'R' - else - wt = 'X' - endif - - do ib = 1,numbin - do it = 1,numthresh - - write (73,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,', XX, ',0,ib*100,windthresh(it),'NE',wt - & ,int((1000.*wfract_cov(1,ib,it))+0.5) - & ,int((1000.*wfract_cov(2,ib,it))+0.5) - & ,int((1000.*wfract_cov(3,ib,it))+0.5) - & ,int((1000.*wfract_cov(4,ib,it))+0.5) - & ,intlat100,clatns,intlon100,clonew - - enddo - enddo - - do ib = 1,numbin - do it = 1,numthresh - - write (73,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,', XX, ',0,ib*100,windthresh(it),'AA',wt - & ,int((1000.*wfract_cov(5,ib,it))+0.5) - & ,int((1000.*wfract_cov(5,ib,it))+0.5) - & ,int((1000.*wfract_cov(5,ib,it))+0.5) - & ,int((1000.*wfract_cov(5,ib,it))+0.5) - & ,intlat100,clatns,intlon100,clonew - - enddo - enddo - - 81 format (a2,', ',a2,', ',i10.10,', 03, ',a4,', ',i3.3,', ',i3,a1 - & ,', ',i4,a1,', ',i3,', ',i4,', ',a6,i3.3,', ',i3.3,', ' - & ,i3,', ',a2,a1,4(', ',i4),', ',i4,a1,', ',i5,a1) - -c -------------------------------------------------- -c Now compute and write out the pdf values for the -c wind magnitude.... -c -------------------------------------------------- - - do ip = 1,16 - pdfval = float(pdf_ct_bin(ip)) / float(pdf_ct_tot) - write (76,85) atcfymdh,basinid,storm(ist)%tcv_storm_id(1:2) - & ,output_fhr,10*(ip-1),10*ip,pdf_ct_bin(ip) - & ,pdf_ct_tot,pdfval - enddo - - 85 format (1x,i10.10,3x,a2,a2,3x,i3,3x,i3.3,'_',i3.3,3x,i7,2x,i7 - & ,2x,f6.3) -c -c bug fix for IBM: flush the output stream so it actually writes - flush(73) - - return - end - -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine output_wind_structure (outlon,outlat,xsfclon - & ,xsfclat,inp,ist,ifcsthour,vmaxwind,xminmslp,er_wind - & ,sr_wind,er_vr,sr_vr,er_vt,sr_vt,maxstorm,iofwret) -c -c ABSTRACT: This subroutine outputs a 1-line message for a given -c storm at an input forecast hour. This message contains the -c values of the winds at specified distances along 45-degree -c radials in each storm quadrant. These are output -c twice -- First, for an earth-relative coordinate system, and -c second, for a storm-relative coordinate system. For the -c earth-relative estimates, we will always have 4 radials: NE, SE, -c SW and NW (45,135,225,315). For the storm-relative estimates, -c these radials will be computed at the same relative angles (i.e., -c 45,135,225,315), but with respect (positive clockwise) to the -c direction of storm motion. For example, for a storm moving with -c a heading of 280, the wind structure is evaluated at these -c radials: 325 (front-right; 45 deg CW from heading), 55 (back- -c right; 135 deg CW from heading), 145 (back-left; 225 deg CW from -c heading), 235 (front-left; 315 deg CW from heading). -c -c LOCAL: -c numdist Number of discrete radii at which the winds will -c be evaluated -c -c -c This format will mimic the current atcfunix format with the -c difference coming late in the record, where the various wind radii -c will be replaced with wind values at the 13 specified distances -c (10, 25, 50, 75, 100, 150, 200, 250, 300, 350, 400, 450, 500 km) -c -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 71, NEE, 1137, 1221, 854, 655, etc., ... out to 500 km -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 71, SEE, 947, 982, 474, 396, etc., ... out to 500 km -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 71, SWE, 645, 683, 328, 277, etc., ... out to 500 km -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 71, NWE, 725, 753, 619, 429, etc., ... out to 500 km -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 72, FRR, 1134, 1224, 852, 654, etc., ... out to 500 km -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 72, BRR, 944, 984, 472, 393, etc., ... out to 500 km -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 72, BLR, 649, 686, 321, 272, etc., ... out to 500 km -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, -c 72, FLR, 729, 756, 613, 421, etc., ... out to 500 km -c -c NOTE: Each of the above lines beginning with "AL" is output as -c a single line of text. -c NOTE: These winds are in m/s coming into this routine and will -c be converted to knots*10 for output (e.g., 1221 = 122.1 kts) -c -c The "71" ID indicates earth-relative winds, the "72" ID indicates -c storm-relative winds. Here are the other IDs that will be used: -c 81: Tangential winds, earth-relative (m/s) -c 82: Tangential winds, storm-relative (m/s) -c 91: Radial winds, earth-relative (m/s) -c 92: Radial winds, storm-relative (m/s) -c -c Note that in this example, for this 36h forecast hour, there are -c 8 entries. This is so that we can include the wind values for -c the 4 different quadrants, for both the earth relative analyses -c (NEE, SEE, SWE, NWE) and the storm-relative analyses (FRR, BRR, -c BLR, FLR). -c -c This message also contains the intensity estimates (in knots) -c for every forecast hours The conversion for m/s to knots is -c to multiply m/s by 1.9427 (3.281 ft/m, 1 naut mile/6080 ft, -c 3600s/h). -c -c NOTE: The longitudes that are passed into this subroutine are -c given in 0 - 360, increasing eastward. The format for the -c atcfunix system requires that the output be 0-180E or -c 0-180W, so we must adjust the values, if needed. Also, the -c values for southern latitudes must be positive (use 'N' and -c 'S' to distinguish Northern/Southern Hemispheres). -c -c INPUT: -c outlon longitude fix position for this storm at this time -c which is to be written out to the output file -c outlat latitude fix position for this storm at this time -c which is to be written out to the output file -c inp contains input date and model number information -c ist the number storm that we're processing (can be 1-15) -c ifcsthr the current forecast hour being output -c vmaxwind the max surface wind for this storm at this fcst hour -c xminmslp the min mslp for this storm at this fcst hour -c er_wind Quadrant winds in earth-relative framework -c sr_wind Quadrant winds in storm-relative framework -c er_vr Quadrant radial winds in earth-relative framework -c sr_vr Quadrant radial winds in storm-relative framework -c er_vt Quadrant tangential winds in earth-relative framework -c sr_vt Quadrant tangential winds in storm-relative framework -c -c OUTPUT: -c ioaxret integer return code from this subroutine -c -c LOCAL: -c intlon integer that holds the value of outlon*10 -c intlat integer that holds the value of outlat*10 -c - - USE def_vitals; USE inparms; USE set_max_parms; USE atcf - USE verbose_output - - type (datecard) inp - - integer, parameter :: numdist=14,numquad=4,numbin=5,numthresh=3 - integer ioutwind(numdist) - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real er_wind(numquad,numdist) - real sr_wind(numquad,numdist) - real er_vr(numquad,numdist) - real er_vt(numquad,numdist) - real sr_vr(numquad,numdist) - real sr_vt(numquad,numdist) - real outlon,outlat - real vmaxwind,conv_ms_knots,xminmslp,xsfclon,xsfclat - integer intlon,intlat,output_fhr,id,intlon100,intlat100,ir - character basinid*2,clatns*1,clonew*1,wfract_type*5,wt*1 - character*2 :: cquad(4) = (/'NE','SE','SW','NW'/) - character*2 :: crel(4) = (/'FR','BR','BL','FL'/) - - -c First convert all of the lat/lon values from reals into integers. -c These integer values must be 10x their real value (eg. 125.4 will -c be written out as 1254). Convert the lon values so that they go -c from 0-180E or 0-180W, and convert the lat values so that they are -c positive and use 'N' or 'S' to differentiate hemispheres. - - conv_ms_knots = 1.9427 - - if (outlon < -998.0 .or. outlat < -998.0) then - intlon = 0 - intlat = 0 - intlon100 = 0 - intlat100 = 0 - clonew = ' ' - clatns = ' ' - else - if (outlon >= 180.0) then - intlon = 3600 - int(outlon * 10. + 0.5) - intlon100 = 36000 - int(outlon * 100. + 0.5) - clonew = 'W' - else - intlon = int(outlon * 10. + 0.5) - intlon100 = int(outlon * 100. + 0.5) - clonew = 'E' - endif - intlat = int(abs(outlat) * 10. + 0.5) - intlat100 = int(abs(outlat) * 100. + 0.5) - if (outlat < 0.0) then - clatns = 'S' - else - clatns = 'N' - endif - endif - - select case (storm(ist)%tcv_storm_id(3:3)) - case ('L','l'); basinid = 'AL' - case ('E','e'); basinid = 'EP' - case ('C','c'); basinid = 'CP' - case ('W','w'); basinid = 'WP' - case ('O','o'); basinid = 'SC' - case ('T','t'); basinid = 'EC' - case ('U','u'); basinid = 'AU' - case ('P','p'); basinid = 'SP' - case ('S','s'); basinid = 'SI' - case ('B','b'); basinid = 'BB' - case ('A','a'); basinid = 'AA' - case ('Q','q'); basinid = 'SL' - case default; basinid = '**' - end select - - if (atcfname(1:2) == 'SP') then - ! Add 3 for SREF to account for the 3-hour off-synoptic - ! time offset.... - output_fhr = ifcsthour + 3 - else - output_fhr = ifcsthour - endif - -c Total wind (converted to knots*10), earth relative.... - - do iq = 1,numquad - do ir = 1,numdist - if (er_wind(iq,ir) < -998.0) then - ioutwind(ir) = -999 - else - ioutwind(ir) = int((er_wind(iq,ir)*conv_ms_knots*10)+0.5) - endif - enddo - write (72,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,', XX, 71, ',cquad(iq),'E' - & ,(ioutwind(it),it=1,numdist) - & ,intlat100,clatns,intlon100,clonew - enddo - -c Total wind (converted to knots*10), storm relative.... - - do iq = 1,numquad - do ir = 1,numdist - if (sr_wind(iq,ir) < -998.0) then - ioutwind(ir) = -999 - else - ioutwind(ir) = int((sr_wind(iq,ir)*conv_ms_knots*10)+0.5) - endif - enddo - write (72,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,', XX, 72, ',crel(iq),'R' - & ,(ioutwind(it),it=1,numdist) - & ,intlat100,clatns,intlon100,clonew - enddo - -c Tangential wind (m/s * 10), earth relative.... - - do iq = 1,numquad - do ir = 1,numdist - if (er_vt(iq,ir) < -998.0) then - ioutwind(ir) = -999 - else - ioutwind(ir) = int((er_vt(iq,ir)*conv_ms_knots*10)+0.5) - endif - enddo - write (72,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,', XX, 81, ',cquad(iq),'E' - & ,(ioutwind(it),it=1,numdist) - & ,intlat100,clatns,intlon100,clonew - enddo - -c Tangential wind (m/s * 10), storm relative.... - - do iq = 1,numquad - do ir = 1,numdist - if (sr_vt(iq,ir) < -998.0) then - ioutwind(ir) = -999 - else - ioutwind(ir) = int((sr_vt(iq,ir)*conv_ms_knots*10)+0.5) - endif - enddo - write (72,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,', XX, 82, ',crel(iq),'R' - & ,(ioutwind(it),it=1,numdist) - & ,intlat100,clatns,intlon100,clonew - enddo - -c Radial wind (m/s * 10), earth relative.... - - do iq = 1,numquad - do ir = 1,numdist - if (er_vr(iq,ir) < -998.0) then - ioutwind(ir) = -999 - else - ioutwind(ir) = int((er_vr(iq,ir)*conv_ms_knots*10)+0.5) - endif - enddo - write (72,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,', XX, 91, ',cquad(iq),'E' - & ,(ioutwind(it),it=1,numdist) - & ,intlat100,clatns,intlon100,clonew - enddo - -c Radial wind (m/s * 10), storm relative.... - - do iq = 1,numquad - do ir = 1,numdist - if (sr_vr(iq,ir) < -998.0) then - ioutwind(ir) = -999 - else - ioutwind(ir) = int((sr_vr(iq,ir)*conv_ms_knots*10)+0.5) - endif - enddo - write (72,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,', XX, 92, ',crel(iq),'R' - & ,(ioutwind(it),it=1,numdist) - & ,intlat100,clatns,intlon100,clonew - enddo -c - 81 format (a2,', ',a2,', ',i10.10,', 03, ',a4,', ',i3.3,', ',i3,a1 - & ,', ',i4,a1,', ',i3,', ',i4,a10,a2,a1,14(', ',i4) - & ,', ',i4,a1,', ',i5,a1) - -c bug fix for IBM: flush the output stream so it actually writes - flush(72) - - return - end - -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine output_ike (outlon,outlat,xsfclon,xsfclat,inp,ist - & ,ifcsthour,vmaxwind,xminmslp,ike,sdp,wdp,maxstorm - & ,ioiret) -c -c ABSTRACT: This subroutine outputs a 1-line message for a given -c storm at an input forecast hour. This message contains the values -c for the Integrated Kinetic Energy (IKE) and Storm Surge Damage -c Potential (SDP), based on Powell (BAMS, 2007). At this time, we -c are only computing the IKE values for TS threshold (17.5 m/s) and -c above. We are not yet computing wind damage potential (WDP) -c since, per Mark Powell (4/2008), he is currently re-formulating -c an algorithm for it. -c -c LOCAL: -c -c Arrays: -c -c ike Integrated kinetic energy: -c ike(1) = IKE_10m/s (storm energy) -c ike(2) = IKE_18m/s (IKE_ts, tropical storm) -c ike(3) = IKE_33m/s (IKE_h, hurricane) -c ike(4) = IKE_25_40 m/s (Not currently computed) -c ike(5) = IKE_41_54 m/s (Not currently computed) -c ike(6) = IKE_55 m/s (Not currently computed) -c -c -c The format used will mimic the current atcfunix format with the -c difference coming late in the record, where the various wind radii -c will be replaced with WDP, SDP and IKE values: -c -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, 91, -c IKE, 340, 560, 212, 174, 42, 93, 12, 0 -c -c Where the places are identified as follows: -c -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, 91, -c IKE, WDP, SDP, I10, ITS, IH ,I2540,I4154, I55 -c -c (NOTE: Each of the above lines beginning with "AL" is output as -c a single line of text.) -c -c Values for WDP and SDP are multiplied by 10 in this routine -c before being written out. -c -c This message also contains the intensity estimates (in knots) -c for every forecast hour. The conversion for m/s to knots is -c to multiply m/s by 1.9427 (3.281 ft/m, 1 naut mile/6080 ft, -c 3600s/h). -c -c NOTE: The longitudes that are passed into this subroutine are -c given in 0 - 360, increasing eastward. The format for the -c atcfunix system requires that the output be 0-180E or -c 0-180W, so we must adjust the values, if needed. Also, the -c values for southern latitudes must be positive (use 'N' and -c 'S' to distinguish Northern/Southern Hemispheres). -c -c INPUT: -c storm An array of type tcvcard. Use this for the storm ID -c outlon longitude fix position for this storm at this time -c which is to be written out to the output file -c outlat latitude fix position for this storm at this time -c which is to be written out to the output file -c xsfclon low-level longitude estimate for this storm & time, -c computed ideally from mean of mslp & low-level winds. -c xsfclat low-level latitude estimate for this storm & time, -c computed ideally from mean of mslp & low-level winds. -c inp contains input date and model number information -c ist the number storm that we're processing (can be 1-15) -c ifcsthr the current forecast hour being output -c vmaxwind the max surface wind for this storm at this fcst hour -c xminmslp the min mslp for this storm at this fcst hour -c ike integrated kinetic energy, in units of TJ -c sdp storm surge damage potential -c wdp wind damage potential -c -c OUTPUT: -c ioaxret integer return code from this subroutine -c -c LOCAL: -c intlon integer that holds the value of outlon*10 -c intlat integer that holds the value of outlat*10 -c - - USE def_vitals; USE inparms; USE set_max_parms; USE atcf - USE verbose_output - - type (datecard) inp -c - integer, parameter :: numdist=14,numquad=4,numbin=5,numthresh=3 - real outlon,outlat,sdp,wdp - real ike(max_ike_cats) - real vmaxwind,conv_ms_knots,xminmslp,xsfclon,xsfclat - integer intlon,intlat,output_fhr,intlon100,intlat100,maxstorm - character basinid*2,clatns*1,clonew*1,wfract_type*5,wt*1,cquad*2 - -c First convert all of the lat/lon values from reals into integers. -c These integer values must be 10x their real value (eg. 125.4 will -c be written out as 1254). Convert the lon values so that they go -c from 0-180E or 0-180W, and convert the lat values so that they are -c positive and use 'N' or 'S' to differentiate hemispheres. - - conv_ms_knots = 1.9427 - - if (outlon < -998.0 .or. outlat < -998.0) then - intlon = 0 - intlat = 0 - intlon100 = 0 - intlat100 = 0 - clonew = ' ' - clatns = ' ' - else - if (outlon >= 180.0) then - intlon = 3600 - int(outlon * 10. + 0.5) - intlon100 = 36000 - int(outlon * 100. + 0.5) - clonew = 'W' - else - intlon = int(outlon * 10. + 0.5) - intlon100 = int(outlon * 100. + 0.5) - clonew = 'E' - endif - intlat = int(abs(outlat) * 10. + 0.5) - intlat100 = int(abs(outlat) * 100. + 0.5) - if (outlat < 0.0) then - clatns = 'S' - else - clatns = 'N' - endif - endif - - select case (storm(ist)%tcv_storm_id(3:3)) - case ('L','l'); basinid = 'AL' - case ('E','e'); basinid = 'EP' - case ('C','c'); basinid = 'CP' - case ('W','w'); basinid = 'WP' - case ('O','o'); basinid = 'SC' - case ('T','t'); basinid = 'EC' - case ('U','u'); basinid = 'AU' - case ('P','p'); basinid = 'SP' - case ('S','s'); basinid = 'SI' - case ('B','b'); basinid = 'BB' - case ('A','a'); basinid = 'AA' - case ('Q','q'); basinid = 'SL' - case default; basinid = '**' - end select - - if (atcfname(1:2) == 'SP') then - ! Add 3 for SREF to account for the 3-hour off-synoptic - ! time offset.... - output_fhr = ifcsthour + 3 - else - output_fhr = ifcsthour - endif - - write (74,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,', XX, 91, IKE',int((wdp*10)+0.5),int((sdp*10)+0.5) - & ,int(ike(1)+0.5),int(ike(2)+0.5),int(ike(3)+0.5) - & ,int(ike(4)+0.5),int(ike(5)+0.5),int(ike(6)+0.5) - & ,intlat100,clatns,intlon100,clonew -c - 81 format (a2,', ',a2,', ',i10.10,', 03, ',a4,', ',i3.3,', ',i3,a1 - & ,', ',i4,a1,', ',i3,', ',i4,a14,8(',',i5) - & ,', ',i4,a1,', ',i5,a1) - -c bug fix for IBM: flush the output stream so it actually writes - flush(74) - - return - end - -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine output_phase (outlon,outlat,inp,ist - & ,ifcsthour,vmaxwind,xminmslp,paramb,vtl_slope - & ,vtu_slope,ioiret) -c -c ABSTRACT: This subroutine outputs a 1-line message for a given -c storm at an input forecast hour. This message contains the values -c for the three parameters that comprise Bob Hart's cyclone phase -c space (CPS). These parameters are his "parameter B", which -c assesses the left-right thermal asymmetry, and the upper -c troposphere (300-600 mb) and lower troposphere (900-600 mb) -c thermal wind values. -c -c LOCAL: -c -c Arrays: -c -c The format used will mimic the current atcfunix format with the -c difference coming late in the record, where the various wind radii -c will be replaced with paramb, vtl_slope and vtu_slope values: -c -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, 95, -c CPS, 340, 560, 212 -c -c Where the places are identified as follows: -c -c AL, 13, 2000092500, 03, AVNO, 036, 243N, 675W, 42, 995, XX, 95, -c CPS, B, VTL, VTU -c -c (NOTE: Each of the above lines beginning with "AL" is output as -c a single line of text.) -c -c This message also contains the intensity estimates (in knots) -c for every forecast hour. The conversion for m/s to knots is -c to multiply m/s by 1.9427 (3.281 ft/m, 1 naut mile/6080 ft, -c 3600s/h). -c -c NOTE: The longitudes that are passed into this subroutine are -c given in 0 - 360, increasing eastward. The format for the -c atcfunix system requires that the output be 0-180E or -c 0-180W, so we must adjust the values, if needed. Also, the -c values for southern latitudes must be positive (use 'N' and -c 'S' to distinguish Northern/Southern Hemispheres). -c -c INPUT: -c storm An array of type tcvcard. Use this for the storm ID -c outlon longitude fix position for this storm at this time -c which is to be written out to the output file -c outlat latitude fix position for this storm at this time -c which is to be written out to the output file -c inp contains input date and model number information -c ist the number storm that we're processing (can be 1-15) -c ifcsthr the current forecast hour being output -c vmaxwind the max surface wind for this storm at this fcst hour -c xminmslp the min mslp for this storm at this fcst hour -c paramb thermal asymmetry -c vtl_slope thermal wind value for lower troposphere (900-600 mb) -c vtu_slope thermal wind value for upper troposphere (600-300 mb) -c -c OUTPUT: -c ioiret integer return code from this subroutine -c -c LOCAL: -c intlon integer that holds the value of outlon*10 -c intlat integer that holds the value of outlat*10 -c - - USE def_vitals; USE inparms; USE set_max_parms; USE atcf - USE verbose_output - - type (datecard) inp - - real outlon,outlat,paramb,vtl_slope,vtu_slope - real vmaxwind,conv_ms_knots,xminmslp - integer intlon,intlat,output_fhr - character basinid*2,clatns*1,clonew*1 - -c First convert all of the lat/lon values from reals into integers. -c These integer values must be 10x their real value (eg. 125.4 will -c be written out as 1254). Convert the lon values so that they go -c from 0-180E or 0-180W, and convert the lat values so that they are -c positive and use 'N' or 'S' to differentiate hemispheres. - - conv_ms_knots = 1.9427 - - if (outlon < -998.0 .or. outlat < -998.0) then - intlon = 0 - intlat = 0 - clonew = ' ' - clatns = ' ' - else - if (outlon >= 180.0) then - intlon = 3600 - int(outlon * 10. + 0.5) - clonew = 'W' - else - intlon = int(outlon * 10. + 0.5) - clonew = 'E' - endif - intlat = int(abs(outlat) * 10. + 0.5) - if (outlat < 0.0) then - clatns = 'S' - else - clatns = 'N' - endif - endif - - select case (storm(ist)%tcv_storm_id(3:3)) - case ('L','l'); basinid = 'AL' - case ('E','e'); basinid = 'EP' - case ('C','c'); basinid = 'CP' - case ('W','w'); basinid = 'WP' - case ('O','o'); basinid = 'SC' - case ('T','t'); basinid = 'EC' - case ('U','u'); basinid = 'AU' - case ('P','p'); basinid = 'SP' - case ('S','s'); basinid = 'SI' - case ('B','b'); basinid = 'BB' - case ('A','a'); basinid = 'AA' - case ('Q','q'); basinid = 'SL' - case default; basinid = '**' - end select - - if (atcfname(1:2) == 'SP') then - ! Add 3 for SREF to account for the 3-hour off-synoptic - ! time offset.... - output_fhr = ifcsthour + 3 - else - output_fhr = ifcsthour - endif - - write (71,81) basinid,storm(ist)%tcv_storm_id(1:2) - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100.0 + 0.5) - & ,', XX, 95, CPS',int(paramb+0.5),int(vtl_slope+0.5) - & ,int(vtu_slope+0.5) -c - 81 format (a2,', ',a2,', ',i10.10,', 03, ',a4,', ',i3.3,', ',i3,a1 - & ,', ',i4,a1,', ',i3,', ',i4,', ',a14,3(',',i6)) - -c bug fix for IBM: flush the output stream so it actually writes - flush(71) - - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine output_atcf_gen (outlon,outlat,inp,ist - & ,ifcsthour,vmaxwind,xminmslp,vradius,maxstorm - & ,trkrinfo,istmspd,istmdir,plastbar,rlastbar,rmax - & ,cps_vals,wcore_flag,imeanzeta,igridzeta,ioaxret) - -c ABSTRACT: This subroutine outputs a 1-line message for a given -c storm at an input forecast hour in a modified atcfunix format. -c The reason that it's called "modified" is that the format is -c slightly different from the standard TPC-accepted atcfunix -c format that they use for TCs. Specifically, the first part that -c identifies the storm is different. Here's an example of the -c TPC standard atcfunix format: -c -c AL, 13, 2000092500, 03, GFSO, 036, 243N, 675W, 42, 995, XX, 34, -c NEQ, 242, 163, 124, 208 -c AL, 13, 2000092500, 03, GFSO, 036, 243N, 675W, 42, 995, XX, 50, -c NEQ, 155, 000, 000, 000 -c AL, 13, 2000092500, 03, GFSO, 036, 243N, 675W, 42, 995, XX, 64, -c NEQ, 000, 000, 000, 000 -c -c (NOTE: Each of the above lines beginning with "AL" is output as -c a single line of text.... they're just broken up into 2 -c lines here for readability.) -c -c Here's an example of the modified output format for the same -c storm. Note that the lat/lon identifier in the new storm id at -c the beginning of the record is different from that shown later -c in the record. The reason is that the lat/lon identifier will -c be the one that is pulled from the tcvitals or gen_vitals -c record: -c -c 2000092500_230N_0658W_13L, 2000092500, 03, GFSO, 036, 243N, 675W, -c 42, 995, XX, 34, NEQ, 242, 163, 124, 208 -c 2000092500_230N_0658W_13L, 2000092500, 03, GFSO, 036, 243N, 675W, -c 42, 995, XX, 50, NEQ, 155, 000, 000, 000 -c 2000092500_230N_0658W_13L, 2000092500, 03, GFSO, 036, 243N, 675W, -c 42, 995, XX, 64, NEQ, 000, 000, 000, 000 -c -c -c Note that in this example, for this 36h forecast hour, there are -c 3 entries. This is so that we can include the radii for the -c 3 different wind thresholds (34kt, 50kt and 64kt). So the only -c thing different in each entry is the wind radii info; all the -c other info is identical for each entry. -c -c This message also contains the intensity estimates (in knots) -c for every forecast hours The conversion for m/s to knots is -c to multiply m/s by 1.9427 (3.281 ft/m, 1 naut mile/6080 ft, -c 3600s/h). -c -c NOTE: The longitudes that are passed into this subroutine are -c given in 0 - 360, increasing eastward. The format for the -c atcfunix system requires that the output be 0-180E or -c 0-180W, so we must adjust the values, if needed. Also, the -c values for southern latitudes must be positive (use 'N' and -c 'S' to distinguish Northern/Southern Hemispheres). -c -c INPUT: -c outlon longitude fix position for this storm at this time -c which is to be written out to the output file -c outlat latitude fix position for this storm at this time -c which is to be written out to the output file -c inp contains input date and model number information -c ist the number storm that we're processing (can be 1-15) -c ifcsthr the current forecast hour being output -c vmaxwind the max surface wind for this storm at this fcst hour -c xminmslp the min mslp for this storm at this fcst hour -c vradius Contains the distance from the storm fix position to -c each of the various wind threshhold distances in each -c quadrant. (3,4) ==> (# of threshholds, # of quadrants) -c maxstorm max # of storms that can be handled -c istmspd storm translation speed -c istmdir direction of storm movement -c plastbar pressure of last closed isobar -c rlastbar radius of last closed isobar -c rmax radius of max winds -c cps_vals Hart's cyclone phase space values: (1) is for parameter -c B (thickness asymmetry), (2) and (3) are for thermal -c wind values. -c wcore_flag 'u'=undetermined, 'y'=yes, 'n'=no -c imeanzeta array with values of mean 850 & 700 zeta -c igridzeta array with values of max (gridpoint) 850 & 700 zeta -c -c OUTPUT: -c ioaxret integer return code from this subroutine -c -c LOCAL: -c intlon integer that holds the value of outlon*10 -c intlat integer that holds the value of outlat*10 -c storm An array of type tcvcard. Use this for the storm ID -c - - USE def_vitals; USE inparms; USE set_max_parms; USE atcf - USE trkrparms; USE gen_vitals - USE verbose_output - - type (gencard) gstm - type (datecard) inp - type (trackstuff) trkrinfo -c - real outlon,outlat,plastbar,rlastbar,rmax - real vmaxwind,conv_ms_knots,xminmslp - real cps_vals(3) - integer intlon,intlat,istmspd,istmdir,iplastbar,irlastbar,irmax - integer ivtl,ivtu,iparamb,output_fhr - integer vradius(3,4) - integer imeanzeta(2),igridzeta(2) - character basinid*2,clatns*1,clonew*1,wcore_flag*1 - - if ( verb .ge. 3) then - print *,'+++ Top of output_atcf_gen, ist= ',ist,' ifh= ' - & ,ifcsthour - endif - - - if (xminmslp == 999999.0) xminmslp = 0.0 - -c First convert all of the lat/lon values from reals into integers. -c These integer values must be 10x their real value (eg. 125.4 will -c be written out as 1254). Convert the lon values so that they go -c from 0-180E or 0-180W, and convert the lat values so that they are -c positive and use 'N' or 'S' to differentiate hemispheres. - - conv_ms_knots = 1.9427 - - if (outlon < -998.0 .or. outlat < -998.0) then - intlon = 0 - intlat = 0 - clonew = ' ' - clatns = ' ' - else - if (outlon >= 180.0) then - intlon = 3600 - int(outlon * 10. + 0.5) - clonew = 'W' - else - intlon = int(outlon * 10. + 0.5) - clonew = 'E' - endif - intlat = int(abs(outlat) * 10. + 0.5) - if (outlat < 0.0) then - clatns = 'S' - else - clatns = 'N' - endif - endif - -c Unlike the regular atcfunix output, in which we output a record -c at forecast time = 00h even if the storm cannot be found, here -c we don't want to do that. So check the lat & lon positions and -c exit this subroutine now if they're both zero. - - if (intlat == 0 .and. intlon == 0) then - if ( verb .ge. 3 ) then - print *,' ' - print *,'+++ Currently inside output_atcf_gen. The reported' - print *,'+++ longitude and latitude are both zero, so that ' - print *,'+++ means that the tracker could not get a fix ' - print *,'+++ for this storm at this hour. Therefore, we will' - print *,'+++ NOT write out an atcf_gen record for this' - print *,'+++ storm & forecast hour.' - print *,'+++ ' - print *,'+++ ist= ',ist - print *,'+++ gstorm= ',gstorm(ist) - print *,' ' - endif - - return - endif - -c Initially, set all "gstm" components equal to the input "gstorm" -c components for this storm, then we will change the specific -c components that we need to. - - gstm = gstorm(ist) - -c If the "gv_gen_date" for this storm does not equal 99999, -c then that means that a vitals was read in for this storm in -c subroutine read_gen_vitals, so be sure to use the genesis -c date, genesis latitude and genesis longitude for the storm -c identifier at the beginning of the modified atcfunix record. - - if (gstm%gv_gen_date /= 99999) then - - continue ! Just use the info off the genesis vitals record - - else - - ! This storm was found on the fly during - ! this run and there was no previous vitals record for - ! this system. The information that will be used to - ! identify the genesis location is the same exact info - ! as the tracker-found position for this time. - - gstm%gv_gen_date = inp%bcc * 100000000 - & + inp%byy * 1000000 - & + inp%bmm * 10000 - & + inp%bdd * 100 - & + inp%bhh - - gstm%gv_gen_fhr = ifcsthour - gstm%gv_gen_lat = intlat - gstm%gv_gen_latns = clatns - gstm%gv_gen_lon = intlon - gstm%gv_gen_lonew = clonew - gstm%gv_gen_type = 'FOF' - - endif - - if (plastbar > -990.0) then - iplastbar = int(plastbar/100. + 0.5) - else - iplastbar = -999 - endif - - if (rlastbar > -990.0) then - irlastbar = int(rlastbar + 0.5) - else - irlastbar = -999 - endif - - if (rmax > -90.0) then - irmax = int(rmax + 0.5) - else - irmax = -99 - endif - - if (cps_vals(1) > -9999.0) then - if (cps_vals(1) >= 0.0) then - iparamb = int(cps_vals(1)*10 + 0.5) - else - iparamb = int(cps_vals(1)*10 - 0.5) - endif - else - iparamb = -999 - endif - - if (cps_vals(2) > -9999.0) then - if (cps_vals(2) >= 0.0) then - ivtl = int(cps_vals(2)*10 + 0.5) - else - ivtl = int(cps_vals(2)*10 - 0.5) - endif - else - ivtl = -9999 - endif - - if (cps_vals(3) > -9999.0) then - if (cps_vals(3) >= 0.0) then - ivtu = int(cps_vals(3)*10 + 0.5) - else - ivtu = int(cps_vals(3)*10 - 0.5) - endif - else - ivtu = -9999 - endif - - select case (storm(ist)%tcv_storm_id(3:3)) - case ('L','l'); basinid = 'AL' - case ('E','e'); basinid = 'EP' - case ('C','c'); basinid = 'CP' - case ('W','w'); basinid = 'WP' - case ('O','o'); basinid = 'SC' - case ('T','t'); basinid = 'EC' - case ('U','u'); basinid = 'AU' - case ('P','p'); basinid = 'SP' - case ('S','s'); basinid = 'SI' - case ('B','b'); basinid = 'BB' - case ('A','a'); basinid = 'AA' - case ('Q','q'); basinid = 'SL' - case default; basinid = 'HC' - end select - - if (atcfname(1:2) == 'SP') then - ! Add 3 for SREF to account for the 3-hour off-synoptic - ! time offset.... - output_fhr = ifcsthour + 3 - else - output_fhr = ifcsthour - endif - - if (stcvtype(ist) == 'FOF') then - ! If this is a TC vitals-described storm (i.e., one that is - ! numbered by JTWC or NHC), then leave the basinid as is. - ! Otherwise, we want to use the "basinid" location as a - ! label to identify what type of run this is. - if (trkrinfo%type == 'midlat') basinid = 'ML' - if (trkrinfo%type == 'tcgen') basinid = 'TG' - endif - - write (66,87) basinid,adjustr(storm(ist)%tcv_storm_id) - & ,gstm%gv_gen_date,gstm%gv_gen_fhr,gstm%gv_gen_lat - & ,gstm%gv_gen_latns,gstm%gv_gen_lon - & ,gstm%gv_gen_lonew,gstm%gv_gen_type - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 34, NEQ' - & ,vradius(1,1),vradius(1,2),vradius(1,3),vradius(1,4) - & ,iplastbar,irlastbar,irmax,iparamb,ivtl,ivtu,wcore_flag - & ,istmdir,istmspd - & ,imeanzeta(1),igridzeta(1),imeanzeta(2),igridzeta(2) - - if (vradius(2,1) > 0 .or. vradius(2,2) > 0 .or. - & vradius(2,3) > 0 .or. vradius(2,4) > 0) then - write (66,87) basinid,adjustr(storm(ist)%tcv_storm_id) - & ,gstm%gv_gen_date,gstm%gv_gen_fhr,gstm%gv_gen_lat - & ,gstm%gv_gen_latns,gstm%gv_gen_lon - & ,gstm%gv_gen_lonew,gstm%gv_gen_type - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 50, NEQ' - & ,vradius(2,1),vradius(2,2),vradius(2,3),vradius(2,4) - & ,iplastbar,irlastbar,irmax,iparamb,ivtl,ivtu,wcore_flag - & ,istmdir,istmspd - & ,imeanzeta(1),igridzeta(1),imeanzeta(2),igridzeta(2) - endif - - if (vradius(3,1) > 0 .or. vradius(3,2) > 0 .or. - & vradius(3,3) > 0 .or. vradius(3,4) > 0) then - write (66,87) basinid,adjustr(storm(ist)%tcv_storm_id) - & ,gstm%gv_gen_date,gstm%gv_gen_fhr,gstm%gv_gen_lat - & ,gstm%gv_gen_latns,gstm%gv_gen_lon - & ,gstm%gv_gen_lonew,gstm%gv_gen_type - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 64, NEQ' - & ,vradius(3,1),vradius(3,2),vradius(3,3),vradius(3,4) - & ,iplastbar,irlastbar,irmax,iparamb,ivtl,ivtu,wcore_flag - & ,istmdir,istmspd - & ,imeanzeta(1),igridzeta(1),imeanzeta(2),igridzeta(2) - endif - - 87 format (a2,', ',a4,', ',i10.10,'_F',i3.3,'_',i3.3,a1,'_',i4.4,a1 - & ,'_',a3,', ',i10.10,', 03, ',a4,', ',i3.3,', ',i3,a1 - & ,', ',i4,a1,', ',i3,', ',i4,', ',a12,4(', ',i4.4) - & ,', ',3(i4,', '),3(i6,', '),a1,2(', ',i4),4(', ',i4)) - -c bug fix for IBM: flush the output stream so it actually writes - flush(66) - - return - end - -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine output_atcf_sink (outlon,outlat,inp,ist - & ,ifcsthour,vmaxwind,xminmslp,vradius,maxstorm - & ,trkrinfo,istmspd,istmdir,imeanzeta,igridzeta - & ,cps_vals,plastbar,rlastbar,ioaxret) - -c ABSTRACT: This subroutine outputs a 1-line message for a given -c storm at an input forecast hour in a modified atcfunix format. -c The "sink" in the subroutine name indicates that this output -c contains the whole kitchen sink of forecast storm info. -c The reason that it's called "modified" is that the format is -c slightly different from the standard TPC-accepted atcfunix -c format that they use for TCs. Specifically, the first part that -c identifies the storm is different, and the part after the radii -c data is different. Here's an example of the TPC standard -c atcfunix format: -c -c AL, 13, 2000092500, 03, GFSO, 036, 243N, 675W, 42, 995, XX, 34, -c NEQ, 242, 163, 124, 208 -c AL, 13, 2000092500, 03, GFSO, 036, 243N, 675W, 42, 995, XX, 50, -c NEQ, 155, 000, 000, 000 -c AL, 13, 2000092500, 03, GFSO, 036, 243N, 675W, 42, 995, XX, 64, -c NEQ, 000, 000, 000, 000 -c -c (NOTE: Each of the above lines beginning with "AL" is output as -c a single line of text.... they're just broken up into 2 -c lines here for readability.) -c -c Here's an example of the modified output format for the same -c storm. Note that the lat/lon identifier in the new storm id at -c the beginning of the record is different from that shown later -c in the record. The reason is that the lat/lon identifier will -c indicate the lat/lon at which the storm was *first* found in -c the model. The position may be either found within this run -c of the tracker, or that position may have been pulled from the -c tcvitals or gen_vitals record: -c -c 2000092500_F000_206N_0623W_13L, 2000092500, 03, GFSO, 036 -c , 243N, 675W, 42, 995, XX, 34, NEQ, 242, 163, 124, 208 -c , PLAS, RLAS, RMX, DIR, SPD, B, VTU, VTL -c , Z8MN, Z8MX, Z7MN, Z7MX -c -c As noted above, there is extra info at the end, after the -c "34, NEQ, 242, 163, 124, 208" radii info. Here is a key -c to indicate what these items are: -c -c PLAS: Pressure (mb) of last closed isobar -c RLAS: Radius of the last closed isobar in nm, 0 - 9999 nm. -c RMX: Radius of max winds, 0 - 999 nm. -c DIR: Direction of storm motion. -c SPD: Speed of storm motion (m/s * 10). -c B: Hart's CPS "Parameter B" thickness asymmetry value (m). -c VTL: Hart's CPS thermal wind (Lower, 900-600) value. -c VTU: Hart's CPS thermal wind (Upper, 600-300) value. -c Z8MN: Mean value of 850 mb zeta surrounding storm. -c Z8MX: Max value of 850 mb zeta near storm. -c Z7MN: Mean value of 700 mb zeta surrounding storm. -c Z7MX: Max value of 700 mb zeta near storm. -c -c This message also contains the intensity estimates (in knots) -c for every forecast hour. The conversion for m/s to knots is -c to multiply m/s by 1.9427 (3.281 ft/m, 1 naut mile/6080 ft, -c 3600s/h). -c -c NOTE: The longitudes that are passed into this subroutine are -c given in 0 - 360, increasing eastward. The format for the -c atcfunix system requires that the output be 0-180E or -c 0-180W, so we must adjust the values, if needed. Also, the -c values for southern latitudes must be positive (use 'N' and -c 'S' to distinguish Northern/Southern Hemispheres). -c -c INPUT: -c outlon longitude fix position for this storm at this time -c which is to be written out to the output file -c outlat latitude fix position for this storm at this time -c which is to be written out to the output file -c inp contains input date and model number information -c ist the number storm that we're processing (can be 1-15) -c ifcsthr the current forecast hour being output -c vmaxwind the max surface wind for this storm at this fcst hour -c xminmslp the min mslp for this storm at this fcst hour -c vradius Contains the distance from the storm fix position to -c each of the various wind threshhold distances in each -c quadrant. (3,4) ==> (# of threshholds, # of quadrants) -c maxstorm max # of storms that can be handled -c istmspd speed of storm translation -c istmdir direction of storm motion -c cps_vals Hart's cyclone phase space values: (1) is for parameter -c B (thickness asymmetry), (2) and (3) are for thermal -c wind values. -c imeanzeta array with values of mean 850 & 700 zeta -c igridzeta array with values of max (gridpoint) 850 & 700 zeta -c plastbar pressure of last closed isobar (pa) -c rlastbar radius of last closed isobar (nm) -c -c OUTPUT: -c ioaxret integer return code from this subroutine -c -c LOCAL: -c intlon integer that holds the value of outlon*10 -c intlat integer that holds the value of outlat*10 -c storm An array of type tcvcard. Use this for the storm ID -c - - USE def_vitals; USE inparms; USE set_max_parms; USE atcf - USE trkrparms; USE gen_vitals - USE verbose_output - - type (gencard) gstm - type (datecard) inp - type (trackstuff) trkrinfo -c - real cps_vals(3) - real outlon,outlat - real vmaxwind,conv_ms_knots,xminmslp,plastbar,rlastbar - integer intlon,intlat,istmspd,istmdir,iplastbar,irlastbar - integer iparamb,ivtl,ivtu,output_fhr - integer vradius(3,4) - integer imeanzeta(2),igridzeta(2) - character basinid*2,clatns*1,clonew*1 - - if ( verb .ge. 3 ) then - print *,'+++ Top of output_atcf_sink, ist= ',ist,' ifh= ' - & ,ifcsthour - endif - - if (xminmslp == 999999.0) xminmslp = 0.0 - -c First convert all of the lat/lon values from reals into integers. -c These integer values must be 10x their real value (eg. 125.4 will -c be written out as 1254). Convert the lon values so that they go -c from 0-180E or 0-180W, and convert the lat values so that they are -c positive and use 'N' or 'S' to differentiate hemispheres. - - conv_ms_knots = 1.9427 - - if (outlon < -998.0 .or. outlat < -998.0) then - intlon = 0 - intlat = 0 - clonew = ' ' - clatns = ' ' - else - if (outlon >= 180.0) then - intlon = 3600 - int(outlon * 10. + 0.5) - clonew = 'W' - else - intlon = int(outlon * 10. + 0.5) - clonew = 'E' - endif - intlat = int(abs(outlat) * 10. + 0.5) - if (outlat < 0.0) then - clatns = 'S' - else - clatns = 'N' - endif - endif - - select case (storm(ist)%tcv_storm_id(3:3)) - case ('L','l'); basinid = 'AL' - case ('E','e'); basinid = 'EP' - case ('C','c'); basinid = 'CP' - case ('W','w'); basinid = 'WP' - case ('O','o'); basinid = 'SC' - case ('T','t'); basinid = 'EC' - case ('U','u'); basinid = 'AU' - case ('P','p'); basinid = 'SP' - case ('S','s'); basinid = 'SI' - case ('B','b'); basinid = 'BB' - case ('A','a'); basinid = 'AA' - case ('Q','q'); basinid = 'SL' - case default; basinid = 'HC' - end select - - if (trkrinfo%type == 'midlat' .or. trkrinfo%type == 'tcgen') then - - if (stcvtype(ist) == 'FOF') then - ! If this is a TC vitals-described storm (i.e., one that is - ! numbered by JTWC or NHC), then leave the basinid as is. - ! Otherwise, we want to use the "basinid" location as a - ! label to identify what type of run this is. - if (trkrinfo%type == 'midlat') basinid = 'ML' - if (trkrinfo%type == 'tcgen') basinid = 'TG' - endif - endif - -c Unlike the regular atcfunix output, in which we output a record -c at forecast time = 00h even if the storm cannot be found, here -c we don't want to do that. So check the lat & lon positions and -c exit this subroutine now if they're both zero. - - if (intlat == 0 .and. intlon == 0) then - if ( verb .ge. 3 ) then - print *,' ' - print *,'+++ Currently inside output_atcf_gen. The reported' - print *,'+++ longitude and latitude are both zero, so that ' - print *,'+++ means that the tracker could not get a fix ' - print *,'+++ for this storm at this hour. Therefore, we will' - print *,'+++ NOT write out an atcf_gen record for this' - print *,'+++ storm & forecast hour.' - print *,'+++ ' - print *,'+++ ist= ',ist - print *,'+++ gstorm= ',gstorm(ist) - print *,' ' - endif - - return - endif - -c Initially, set all "gstm" components equal to the input "gstorm" -c components for this storm, then we will change the specific -c components that we need to. - - gstm = gstorm(ist) - -c If the "gv_gen_date" for this storm does not equal 99999, -c then that means that a vitals was read in for this storm in -c subroutine read_gen_vitals, so be sure to use the genesis -c date, genesis latitude and genesis longitude for the storm -c identifier at the beginning of the modified atcfunix record. - - if (gstm%gv_gen_date /= 99999) then - - continue ! Just use the info off the genesis vitals record - - else - - ! This storm was found on the fly during - ! this run and there was no previous vitals record for - ! this system. The information that will be used to - ! identify the genesis location is the same exact info - ! as the tracker-found position for this time. - - gstm%gv_gen_date = inp%bcc * 100000000 - & + inp%byy * 1000000 - & + inp%bmm * 10000 - & + inp%bdd * 100 - & + inp%bhh - - gstm%gv_gen_fhr = ifcsthour - gstm%gv_gen_lat = intlat - gstm%gv_gen_latns = clatns - gstm%gv_gen_lon = intlon - gstm%gv_gen_lonew = clonew - gstm%gv_gen_type = 'FOF' - - ! Transfer all this local "gstm" data back into the - ! saved "gstorm" array for use in subsequent fcst hrs... - - gstorm(ist) = gstm - - endif - - if (plastbar > -990.0) then - iplastbar = int(plastbar/100. + 0.5) - else - iplastbar = -999 - endif - - if (rlastbar > -990.0) then - irlastbar = int(rlastbar + 0.5) - else - irlastbar = -999 - endif - - if (cps_vals(1) > -9999.0) then - if (cps_vals(1) >= 0.0) then - iparamb = int(cps_vals(1)*10 + 0.5) - else - iparamb = int(cps_vals(1)*10 - 0.5) - endif - else - iparamb = -999 - endif - - if (cps_vals(2) > -9999.0) then - if (cps_vals(2) >= 0.0) then - ivtl = int(cps_vals(2)*10 + 0.5) - else - ivtl = int(cps_vals(2)*10 - 0.5) - endif - else - ivtl = -9999 - endif - - if (cps_vals(3) > -9999.0) then - if (cps_vals(3) >= 0.0) then - ivtu = int(cps_vals(3)*10 + 0.5) - else - ivtu = int(cps_vals(3)*10 - 0.5) - endif - else - ivtu = -9999 - endif - - if (atcfname(1:2) == 'SP') then - ! Add 3 for SREF to account for the 3-hour off-synoptic - ! time offset.... - output_fhr = ifcsthour + 3 - else - output_fhr = ifcsthour - endif - - write (68,87) basinid,storm(ist)%tcv_storm_id - & ,gstm%gv_gen_date,gstm%gv_gen_fhr,gstm%gv_gen_lat - & ,gstm%gv_gen_latns,gstm%gv_gen_lon - & ,gstm%gv_gen_lonew,gstm%gv_gen_type - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 34, NEQ' - & ,vradius(1,1),vradius(1,2),vradius(1,3),vradius(1,4) - & ,iplastbar,irlastbar,-99,istmdir,istmspd - & ,iparamb,ivtl,ivtu - & ,imeanzeta(1),igridzeta(1),imeanzeta(2),igridzeta(2) - & ,storm(ist)%tcv_storm_name - - if (vradius(2,1) > 0 .or. vradius(2,2) > 0 .or. - & vradius(2,3) > 0 .or. vradius(2,4) > 0) then - write (68,87) basinid,storm(ist)%tcv_storm_id - & ,gstm%gv_gen_date,gstm%gv_gen_fhr,gstm%gv_gen_lat - & ,gstm%gv_gen_latns,gstm%gv_gen_lon - & ,gstm%gv_gen_lonew,gstm%gv_gen_type - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 50, NEQ' - & ,vradius(2,1),vradius(2,2),vradius(2,3),vradius(2,4) - & ,iplastbar,irlastbar,-99,istmdir,istmspd - & ,iparamb,ivtl,ivtu - & ,imeanzeta(1),igridzeta(1),imeanzeta(2),igridzeta(2) - & ,storm(ist)%tcv_storm_name - endif - - if (vradius(3,1) > 0 .or. vradius(3,2) > 0 .or. - & vradius(3,3) > 0 .or. vradius(3,4) > 0) then - write (68,87) basinid,storm(ist)%tcv_storm_id - & ,gstm%gv_gen_date,gstm%gv_gen_fhr,gstm%gv_gen_lat - & ,gstm%gv_gen_latns,gstm%gv_gen_lon - & ,gstm%gv_gen_lonew,gstm%gv_gen_type - & ,atcfymdh - & ,adjustr(atcfname),output_fhr,intlat,clatns,intlon,clonew - & ,int((vmaxwind*conv_ms_knots) + 0.5) - & ,int(xminmslp/100. + 0.5) - & ,'XX, 64, NEQ' - & ,vradius(3,1),vradius(3,2),vradius(3,3),vradius(3,4) - & ,iplastbar,irlastbar,-99,istmdir,istmspd - & ,iparamb,ivtl,ivtu - & ,imeanzeta(1),igridzeta(1),imeanzeta(2),igridzeta(2) - & ,storm(ist)%tcv_storm_name - endif - -c 87 format (i10.10,'_',i3.3,a1,'_',i4.4,a1,'_',a3,', ',5i2.2 -c & ,', 03, ',a4,', ',i3.3,', ',i3,a1 -c & ,', ',i4,a1,', ',i3,', ',i4,', ',a12,4(', ',i4.4)) - -c 87 format (a2,', ',a4,', ',i10.10,'_F',i3.3,'_',i3.3,a1,'_',i4.4,a1 -c & ,'_',a3,', ',i10.10,', 03, ',a4,', ',i3.3,', ',i3,a1 -c & ,', ',i4,a1,', ',i3,', ',i4,', ',a12,4(', ',i4.4) -c & ,', ',2(i4,', '),4(i3,', '),2(i5,', '),4(i4,', '),a9) - - 87 format (a2,', ',a4,', ',i10.10,'_F',i3.3,'_',i3.3,a1,'_',i4.4,a1 - & ,'_',a3,', ',i10.10,', 03, ',a4,', ',i3.3,', ',i3,a1 - & ,', ',i4,a1,', ',i3,', ',i4,', ',a12,4(', ',i4.4) - & ,', ',2(i4,', '),i3,', ',2(i4,', '),3(i6,', '),4(i4,', ') - & ,a9) - -c write (68,87) gstm%gv_gen_date,gstm%gv_gen_lat -c & ,gstm%gv_gen_latns,gstm%gv_gen_lon -c & ,gstm%gv_gen_lonew,gstm%gv_gen_type -c & ,inp%bcc,inp%byy,inp%bmm,inp%bdd,inp%bhh -c & ,adjustr(atcfname),ifcsthour,intlat,clatns,intlon,clonew -c & ,int((vmaxwind*conv_ms_knots) + 0.5) -c & ,int(xminmslp/100.0 + 0.5) -c & ,'XX, 34, NEQ' -c & ,istmspd,istmdir,imeanzeta(1),igridzeta(1) -c & ,imeanzeta(2),igridzeta(2) -c -c 87 format (i10.10,'_',i3.3,a1,'_',i4.4,a1,'_',a3,', ',5i2.2 -c & ,', 03, ',a4,', ',i3.3,', ',i3,a1 -c & ,', ',i4,a1,', ',i3,', ',i4,', ',a12,6(', ',i4)) - -c bug fix for IBM: flush the output stream so it actually writes - flush(68) - - return - end - -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine output_tcvitals (xlon,xlat,inp,ist,iovret) -c -c ABSTRACT: This subroutine outputs a tcvitals record. The -c lat/lon location is given by the xlon and xlat that are -c input to this subroutine. -c -c INPUT: -c xlon longitude of storm position to be output -c xlat latitude of storm position to be output -c inp contains input date and model number information -c ist the number storm that we're processing (can be 1-15) -c -c OUTPUT: -c iovret return code from this subroutine -c -c OTHER: -c storm contains the tcvitals info (from module def_vitals) -c - USE def_vitals; USE inparms; USE set_max_parms - USE verbose_output - - type (tcvcard) stm - type (datecard) inp - real xlon,xlat -c - iovret = 0 - -c Initially, set all "stm" components equal to the input "storm" -c components for this storm, then we will change the specific -c components that we need to. - - stm = storm(ist) - - stm%tcv_center = 'AEAR' - - stm%tcv_lat = int(abs(xlat) * 10. + 0.5) - if (xlat < 0.0) then - stm%tcv_latns = 'S' - else - stm%tcv_latns = 'N' - endif - - if (xlon >= 180.) then - stm%tcv_lon = 3600 - int(xlon * 10. + 0.5) - stm%tcv_lonew = 'W' - else - stm%tcv_lon = int(xlon * 10. + 0.5) - stm%tcv_lonew = 'E' - endif - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,21) stm - endif - - write (65,21) stm - - 21 format (a4,1x,a3,1x,a9,1x,i8.8,1x,i4.4,1x,i3,a1,1x,i4,a1,1x - & ,i3,1x,i3,3(1x,i4),1x,i2,1x,i3,1x,4(i4,1x),a1) - -c -c bug fix for IBM: flush the output stream so it actually writes - flush(65) - - return - end - -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine output_gen_vitals (xlon,xlat,inp,ist,istmspd,istmdir - & ,iovret) -c -c ABSTRACT: This subroutine outputs a modified vitals record. -c The lat/lon location is given by the xlon and xlat that are -c input to this subroutine. -c -c The reason that these are referred to as modified tcvitals is -c that the format is different from standard TC vitals format. -c The storm identifier is different than that for a standard -c tcvitals. The storm identifier contains the date/time that -c the storm was first identified, and the lat/lon position at -c which it was first identified. -c -c EXAMPLE: The following is a standard TC Vitals record, split -c up over 3 lines: -c -c NHC 01L ALBERTO 20060614 1200 343N 0807W 035 093 1004 1012 -c 0278 15 222 -999 -999 -999 -999 M -999 -999 -999 -999 72 -c 520N 410W -999 -999 -999 -999 -c -c EXAMPLE: The following is the format for the "genesis" vitals, -c split over 3 lines, for the same system: -c -c 2006061000_F000_210N_0853W_01L 20060614 1200 343N 0807W 035 093 -c 1004 1012 0278 15 222 -999 -999 -999 -999 M -999 -999 -c -999 -999 72 520N 410W -999 -999 -999 -999 -c -c EXAMPLE: If the vitals record is for a non-officially numbered -c system (i.e., any system that's not a TC being tracked -c by NHC or JTWC), then the storm number is replaced -c by the characters "FOF", for "Found On the Fly" by -c the tracker. -c -c 2006071500_F000_150N_0681W_FOF 20060718 1200 185N 0792W 035 093 -c 1004 1012 0278 15 222 -999 -999 -999 -999 M -999 -999 -c -999 -999 72 520N 410W -999 -999 -999 -999 -c -c -c INPUT: -c xlon longitude of storm position to be output -c xlat latitude of storm position to be output -c inp contains input date and model number information -c ist the number storm that we're processing (can be 1-15) -c -c OUTPUT: -c iovret return code from this subroutine -c -c OTHER: -c storm contains the tcvitals info (from module def_vitals) -c - USE def_vitals; USE gen_vitals; USE inparms; USE set_max_parms - USE verbose_output - - implicit none - - type (gencard) gstm - type (datecard) inp - real xlon,xlat - integer ist,iovret,istmspd,istmdir -c - iovret = 0 - -c Initially, set all "stm" components equal to the input "gstorm" -c components for this storm, then we will change the specific -c components that we need to. - - gstm = gstorm(ist) - -c If the "gv_gen_date" for this storm does not equal 99999, -c then that means that a vitals was read in for this storm in -c subroutine read_gen_vitals, so be sure to use the genesis -c date, genesis latitude and genesis longitude for the storm -c identifier at the beginning of the vitals record. - - if (gstm%gv_gen_date /= 99999) then - - if (gstm%gv_gen_type /= 'FOF') then - ! If this is not a 'FOF' storm (found on the fly storm), then - ! it must be a TC vitals storm, or a tropical cyclone, and we - ! don't want to create a vitals record for a tropical cyclone, - ! since we will rely on reading them from the TC Vitals - ! database instead. - return - endif - - else - - ! This storm is new in this forecast/analysis and was found on - ! the fly in the first time level for this run and there was no - ! previous vitals record for this system - - gstm%gv_gen_date = inp%bcc * 100000000 - & + inp%byy * 1000000 - & + inp%bmm * 10000 - & + inp%bdd * 100 - & + inp%bhh - - gstm%gv_gen_fhr = 0 - - gstm%gv_gen_lat = int(abs(xlat) * 10. + 0.5) - if (xlat < 0.0) then - gstm%gv_gen_latns = 'S' - else - gstm%gv_gen_latns = 'N' - endif - - if (xlon >= 180.) then - gstm%gv_gen_lon = 3600 - int(xlon * 10. + 0.5) - gstm%gv_gen_lonew = 'W' - else - gstm%gv_gen_lon = int(xlon * 10. + 0.5) - gstm%gv_gen_lonew = 'E' - endif - - gstm%gv_gen_type = 'FOF' - - ! Transfer all this local "gstm" data back into the - ! saved "gstorm" array for use in subsequent fcst hrs... - - gstorm(ist) = gstm - - endif - - gstm%gv_obs_ymd = inp%bcc * 1000000 - & + inp%byy * 10000 - & + inp%bmm * 100 - & + inp%bdd - - gstm%gv_obs_hhmm = inp%bhh * 100 - - gstm%gv_obs_lat = int(abs(xlat) * 10. + 0.5) - if (xlat < 0.0) then - gstm%gv_obs_latns = 'S' - else - gstm%gv_obs_latns = 'N' - endif - - if (xlon >= 180.) then - gstm%gv_obs_lon = 3600 - int(xlon * 10. + 0.5) - gstm%gv_obs_lonew = 'W' - else - gstm%gv_obs_lon = int(xlon * 10. + 0.5) - gstm%gv_obs_lonew = 'E' - endif - - gstm%gv_stdir = istmdir - gstm%gv_stspd = istmspd - - gstm%gv_depth = 'U' - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,21) gstm - endif - - write (67,21) gstm - - 21 format (i10,'_F',i3.3,'_',i3.3,a1,'_',i4.4,a1,'_',a3,1x,i8,1x - & ,i4.4,1x,i3.3,a1,1x,i4.4,a1,1x,i3,1x,i3,3(1x,i4),1x,i2,1x - & ,i3,4(1x,i4),1x,a1) -c -c bug fix for IBM: flush the output stream so it actually writes - flush(67) - - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- -c subroutine output_tracker_mask (masked_outc,kpds,kgds,lb,ifh -c & ,imax,jmax,iotmret) -c -c ABSTRACT: This subroutine outputs a GRIB record that contains the -c "mask" used to mask out areas surrounding low pressure centers -c that have been found during the search at each forecast hour. This -c mask is written out purely for diagnostic purposes. The GRIB -c identifier given to the mask in the pds is 850 mb height (you can -c make it anything you want). This is only done for the "midlat" -c and "tcgen" cases, since the runs for those cases use a mask while -c the regular "tracker" run (that is, the run which strictly tracks -c only those storms in the TC vitals file) does not. -c -c INPUT: -c masked_outc logical array containing mask -c kpds GRIB pds array -c kgds GRIB gds array -c ifh integer counter index for current forecast hour -c imax num points is i-direction of input grid -c jmax num points is j-direction of input grid -c -c OUTPUT: -c iotmret return code from this subroutine - -c implicit none -cc -c integer ifh,imax,jmax,iotmret,kf,igoret,iix,jjx,ipret -c integer kpds(200),kgds(200) -c logical(1) masked_outc(imax,jmax),lb(imax,jmax) -c real xmask(imax,jmax) -cc -c if (ifh == 1) then -c call baopenw (77,"fort.77",igoret) -c print *,'baopenw: igoret= ',igoret -c -c if (igoret /= 0) then -c print *,' ' -c print *,'!!! ERROR in sub output_tracker_mask opening' -c print *,'!!! **OUTPUT** grib files. baopenw return codes:' -c print *,'!!! grib file 1 return code = igoret = ',igoret -c STOP 95 -c return -c endif -c endif -c -c xmask = 0.0 -c do jjx = 1,jmax -c do iix = 1,imax -c if (masked_outc(iix,jjx)) then -c xmask(iix,jjx) = 1.0 -c else -c xmask(iix,jjx) = 0.0 -c endif -c enddo -c enddo -c -c kf = imax * jmax -c -cc kpds(1) = 7 ; kpds(2) = 80 -cc kpds(3) = 2 ; kpds(4) = 192 -c -c kpds(5) = 7 -c kpds(6) = 100 -c kpds(7) = 850 -c kpds(22) = 0 -c -ccc kpds(7) = 850 ; kpds(8) = 02 -ccc kpds(9) = 11 ; kpds(10) = 4 -ccc kpds(11) = 0 ; kpds(12) = 0 -ccc kpds(13) = 1 ; kpds(14) = ifcsthour -ccc kpds(15) = 0 ; kpds(16) = 10 -ccc kpds(17) = 0 ; kpds(18) = 1 -ccc kpds(19) = 2 ; kpds(20) = 0 -ccc kpds(21) = 21 ; kpds(22) = 0 -ccc kpds(23) = 0 ; kpds(24) = 0 -ccc kpds(25) = 0 -ccc kgds(1) = 0 ; kgds(2) = imax -ccc kgds(3) = jmax ; kgds(4) = 90000 -ccc kgds(5) = 0 ; kgds(6) = 128 -ccc kgds(7) = -90000 ; kgds(8) = -1000 -ccc kgds(9) = 1000 ; kgds(10) = 1000 -ccc kgds(11) = 0 ; kgds(12) = 0 -ccc kgds(13) = 0 ; kgds(14) = 0 -ccc kgds(15) = 0 ; kgds(16) = 0 -ccc kgds(17) = 0 ; kgds(18) = 0 -ccc kgds(19) = 0 ; kgds(20) = 255 -cc -cc write(*,980) kpds(1),kpds(2) -cc write(*,981) kpds(3),kpds(4) -cc write(*,982) kpds(5),kpds(6) -cc write(*,983) kpds(7),kpds(8) -cc write(*,984) kpds(9),kpds(10) -cc write(*,985) kpds(11),kpds(12) -cc write(*,986) kpds(13),kpds(14) -cc write(*,987) kpds(15),kpds(16) -cc write(*,988) kpds(17),kpds(18) -cc write(*,989) kpds(19),kpds(20) -cc write(*,990) kpds(21),kpds(22) -cc write(*,991) kpds(23),kpds(24) -cc write(*,992) kpds(25) -cc write(*,880) kgds(1),kgds(2) -cc write(*,881) kgds(3),kgds(4) -cc write(*,882) kgds(5),kgds(6) -cc write(*,883) kgds(7),kgds(8) -cc write(*,884) kgds(9),kgds(10) -cc write(*,885) kgds(11),kgds(12) -cc write(*,886) kgds(13),kgds(14) -cc write(*,887) kgds(15),kgds(16) -cc write(*,888) kgds(17),kgds(18) -cc write(*,889) kgds(19),kgds(20) -cc write(*,890) kgds(21),kgds(22) -ccc -cc 980 format(' kpds(1) = ',i7,' kpds(2) = ',i7) -cc 981 format(' kpds(3) = ',i7,' kpds(4) = ',i7) -ccc 982 format(' kpds(5) = ',i7,' kpds(6) = ',i7) -cc 983 format(' kpds(7) = ',i7,' kpds(8) = ',i7) -cc 984 format(' kpds(9) = ',i7,' kpds(10) = ',i7) -cc 985 format(' kpds(11) = ',i7,' kpds(12) = ',i7) -cc 986 format(' kpds(13) = ',i7,' kpds(14) = ',i7) -cc 987 format(' kpds(15) = ',i7,' kpds(16) = ',i7) -cc 988 format(' kpds(17) = ',i7,' kpds(18) = ',i7) -cc 989 format(' kpds(19) = ',i7,' kpds(20) = ',i7) -cc 990 format(' kpds(21) = ',i7,' kpds(22) = ',i7) -cc 991 format(' kpds(23) = ',i7,' kpds(24) = ',i7) -cc 992 format(' kpds(25) = ',i7) -cc 880 format(' kgds(1) = ',i7,' kgds(2) = ',i7) -cc 881 format(' kgds(3) = ',i7,' kgds(4) = ',i7) -cc 882 format(' kgds(5) = ',i7,' kgds(6) = ',i7) -cc 883 format(' kgds(7) = ',i7,' kgds(8) = ',i7) -cc 884 format(' kgds(9) = ',i7,' kgds(10) = ',i7) -cc 885 format(' kgds(11) = ',i7,' kgds(12) = ',i7) -cc 886 format(' kgds(13) = ',i7,' kgds(14) = ',i7) -cc 887 format(' kgds(15) = ',i7,' kgds(16) = ',i7) -cc 888 format(' kgds(17) = ',i7,' kgds(18) = ',i7) -cc 889 format(' kgds(19) = ',i7,' kgds(20) = ',i7) -cc 890 format(' kgds(20) = ',i7,' kgds(22) = ',i7) -c -c print *,'just before call to putgb, kf= ',kf -c call putgb (77,kf,kpds,kgds,lb,xmask,ipret) -c print *,'just after call to putgb, kf= ',kf -c if (ipret == 0) then -c print *,' ' -c print *,'+++ IPRET = 0 after call to putgb' -c print *,' ' -c else -c print *,' ' -c print *,'!!!!!! ERROR: IPRET NE 0 AFTER CALL TO PUTGB !!!' -c print *,' ' -c endif -cc -cc bug fix for IBM: flush the output stream so it actually writes -c flush(6) -c -c return -c end -c -cc -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_next_ges (fixlon,fixlat,ist,ifh,imax,jmax - & ,dx,dy,modelid,valid_pt,readflag,maxstorm,istmspd - & ,istmdir,ctype,trkrinfo,ignret) -c -c ABSTRACT: This subroutine calculates a guess position for the next -c forecast time. It does this by using two different -c methods and averaging the results from those two. The -c first method is a simple linear extrapolation made by -c basically drawing a line from the previous position -c through the current fix position and assuming straight -c line motion. The second method is to do a barnes -c smoothing of u & v in the vicinity of the storm at 850, -c 700 & 500 mb to get an average environmental wind -c vector at each level, and then move the storm according -c to the vector at each level. Then a weighted average is -c taken of all these positions from methods 1 & 2 to get -c the consensus for the guess position. NOTE: For a -c regional model and a storm that is relatively close to -c the model boundary, there is a strong possibility that -c the barnes analysis subroutine will fail due to trying -c to access grid points beyond the model's lateral -c boundary. In this case, the redlm & ridlm are halved -c and barnes is called again. If it still fails, then -c just use the result from method 1 as a default. -c -c INPUT: -c fixlon Array with longitudes of fix positions -c fixlat Array with latitudes of fix positions -c ist Storm number currently being processed -c ifh Forecast hour currently being processed -c imax Max number of pts in x-direction for this grid -c jmax Max number of pts in y-direction for this grid -c dx grid-spacing of the model in the i-direction -c dy grid-spacing of the model in the j-direction -c modelid Integer indicating what model's data is being processed -c valid_pt Logical; bitmap indicating if valid data at that pt. -c readflag Logical; Tells whether or not a variable was read in -c for this model -c maxstorm Max # of storms that can be handled in this run -c ctype character that lets subroutine know if this is a search -c for the next position for the purposes of tc vitals or -c for general tracking. In the case of vitals, eventually -c in the barnes subroutine we are more lax and allow the -c routine to keep searching even if we are close to the -c grid boundary. In a general tracking search, if we hit -c the grid boundary even just once, we exit. -c trkrinfo derived type detailing user-specified grid info -c -c OUTPUT: -c istmspd The speed that the storm would have to move to get from -c the current position to the next guess position -c istmdir The direction in which the storm would have to move to -c get from the current position to the next guess position -c -c LOCAL: -c dt Number of seconds between successive forecast times -c for this particular model. -c dtkm Distance in meters of 1 degree latitude -c icutmax Max number of times to cut the ridlm and redlm in half, -c for use in calling barnes. If you're using a regional -c model and on the first call to barnes you try to access -c a point that's outside the model grid boundary, we'll -c call barnes again, but not before cutting the redlm and -c ridlm in half. icutmax says how many times to allow -c this cutting in half before giving up and just going -c with the extrapolation method. At first writing, we'll -c set icutmax to 2, so that it will allow the ridlm to -c get down to 500 km (originally 2000 km) and the redlm -c to 125 km (originally 500 km). -c *** NOTE: After testing the system, it was found that if -c we cut these radii, the u and v values that are -c calculated from barnes are too strongly influenced by -c the near-storm environment and, especially for asymmetric -c systems, resulted in u and v values being much too strong. -c As such, we will not allow these values to be cut, and if -c we hit the boundaries in barnes, we'll just use the -c extrapolation method, which has seemed to work just fine. -c -c OTHER: (slonfg, slatfg & storm defined in module def_vitals) -c slonfg Array containing first guess longitude positions -c slatfg Array containing first guess latitude positions -c storm Contains tcvitals information -c - USE radii; USE def_vitals; USE set_max_parms; USE grid_bounds - USE tracked_parms; USE level_parms; USE trig_vals; USE trkrparms - USE gen_vitals - USE verbose_output - - type (trackstuff) trkrinfo - integer icutmax,istmspd,istmdir,bskip - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real dist,distm,xincr,yincr,stmspd,stmdir,atan,arct,degrees - character*1 :: in_grid, extrap_flag, barnes_flag - character(*) ctype - logical(1) valid_pt(imax,jmax),readflag(14) -c - in_grid = 'n' - extrap_flag = 'y' -c -c For updating the first guess, if Method 1 and Method 2 are both -c able to be done, give the following weights to the 2 methods. -c - data barneswt /0.50/, extrapwt /0.50/ -c -c ------------------------------- -c METHOD 1: LINEAR EXTRAPOLATION -c ------------------------------- -c First, just do a simple linear extrapolation from the previous -c fix position through the current fix position. If it's the -c first time (vt=0), then use the storm motion vector and storm -c speed information from the TC Vitals card. -c - dtkm = dtk * 1000. - dt = (fhreal(ifh+1) - fhreal(ifh)) * 3600.0 -c - if (ifh == 1) then - if (storm(ist)%tcv_stdir == -99 .or. - & storm(ist)%tcv_stspd == -99) then - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! IN GET_NEXT_GES, at fcst hour = 0, either ' - print *,'!!! storm motion or storm speed = -99 on TCV card.' - print *,'!!! ist= ',ist,' ifh= ',ifh - print *,'!!! Storm name = ',storm(ist)%tcv_storm_name - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - print *,'!!! storm motion vector= ',storm(ist)%tcv_stdir - print *,'!!! storm motion speed= ',storm(ist)%tcv_stspd - print *,'!!! CANNOT USE LINEAR EXTRAP TO GET NEXT GUESS !!!' - endif - - extrap_flag = 'n' - else - ucomp = sin(float(storm(ist)%tcv_stdir) * dtr) * - & float(storm(ist)%tcv_stspd)/10.0 - vcomp = cos(float(storm(ist)%tcv_stdir) * dtr) * - & float(storm(ist)%tcv_stspd)/10.0 - xdist = ucomp * dt - ydist = vcomp * dt - ydeg = ydist / dtkm - extraplat = fixlat(ist,ifh) + ydeg - avglat = 0.5 * (extraplat + fixlat(ist,ifh)) - if (avglat > 89.5) avglat = 89.0 - if (avglat < -89.5) avglat = -89.0 - cosfac = cos(avglat * dtr) - xdeg = xdist / (dtkm*cosfac) - extraplon = fixlon(ist,ifh) + xdeg - endif - else - -c Do a simple linear extrapolation of the current motion of the -c storm. Follow a line from the fix position from the last fix -c through the current fix and extrapolate out. To figure out the -c new latitude, just see how many deg lat the storm moved since -c last time and add it to the current fix latitude. To calculate -c the new fix longitude, though, we need to see how many deg lon -c the storm moved since the last time, convert that to the -c distance (km) the storm travelled in the x-direction (at an -c average latitude between the current and previous latitudes), -c and then add that distance on to the current longitude and -c convert that distance to the num of degrees the storm has -c travelled in the x-direction (at an average latitude between -c the current and next(extrap) latitudes). -c -c UPDATE Feb 2009: To account for the possibility of using -c irregularly spaced forecast hours (e.g., 6,10,10.5,...etc), -c I had to modify this linear extrapolation. - - - if (fixlat(ist,ifh-1) > -900.0 .and. - & fixlon(ist,ifh-1) > -900.0) then - - ylatdegmove_last = fixlat(ist,ifh) - fixlat(ist,ifh-1) - xlondegmove_last = fixlon(ist,ifh) - fixlon(ist,ifh-1) - - xnumh_last = fhreal(ifh) - fhreal(ifh-1) - - ylatdegmove_last_perhour = ylatdegmove_last / xnumh_last - xlondegmove_last_perhour = xlondegmove_last / xnumh_last - - xnumh_next = fhreal(ifh+1) - fhreal(ifh) - - extraplat = fixlat(ist,ifh) - & + (ylatdegmove_last_perhour * xnumh_next) - - yoldavglat = 0.5 * (fixlat(ist,ifh) + fixlat(ist,ifh-1)) - yoldcosfac = cos (dtr * yoldavglat) - xdistmove_last = xlondegmove_last * dtk * yoldcosfac - - xdistmove_last_perhour = xdistmove_last / xnumh_last - - ynewavglat = 0.5 * (extraplat + fixlat(ist,ifh)) - ynewcosfac = cos(dtr * ynewavglat) - xdegnew = (xdistmove_last_perhour * xnumh_next) - & / (dtk * ynewcosfac) - extraplon = fixlon(ist,ifh) + xdegnew - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! IN GET_NEXT_GES, at fcst hour = ',ifcsthr - print *,'!!! the lon and lat positions for the previous' - print *,'!!! forecast hour are -999, meaning that this is a' - print *,'!!! new storm, so we cannot use the extrap method.' - print *,'!!! Storm name = ',storm(ist)%tcv_storm_name - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - print *,'!!! CANNOT USE LINEAR EXTRAP TO GET NEXT GUESS !!!' - endif - - extrap_flag = 'n' - - endif - - endif - -c ------------------------------- -c METHOD 2: Barnes analysis -c ------------------------------- -c Do a barnes analysis on the u & v components of the wind near the -c storm to get an average u & v, then advect the storm according to -c the average wind vector obtained. The call to get_ij_bounds is -c needed in order to restrict the number of grid points that are -c searched in the barnes subroutine. See Abstract from this -c subroutine for further details. - - npts = ceiling(ridlm/(dtk*((dx+dy)/2))) - - call get_ij_bounds (npts,0,ridlm,imax,jmax,dx,dy - & ,glatmax,glatmin,glonmax,glonmin,fixlon(ist,ifh),fixlat(ist,ifh) - & ,trkrinfo,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) - - if (igiret /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in get_next_ges from call to ' - print *,'!!! get_ij_bounds, STOPPING processing for ' - print *,'!!! storm number ',ist - endif - - ignret = 92 - return - endif - -c For the barnes analysis, we will want to speed things up for -c finer resolution grids. We can do this by skipping some of -c the points in the barnes analysis. - - if ((dx+dy)/2 > 0.20) then - bskip = 1 - else if ((dx+dy)/2 > 0.10 .and. (dx+dy)/2 <= 0.20) then - bskip = 2 - else if ((dx+dy)/2 > 0.05 .and. (dx+dy)/2 <= 0.10) then - bskip = 3 - else if ((dx+dy)/2 > 0.03 .and. (dx+dy)/2 <= 0.05) then - bskip = 5 - else if ((dx+dy)/2 <= 0.03) then - bskip = 10 - endif - -c Calculate average wind at each level (currently: 850, 700 & 500) - - re = redlm - ri = ridlm - icut = 0 - - if (trkrinfo%type == 'midlat') then - icutmax = 2 - else - icutmax = 1 - endif - - radmaxloop: do while (icut <= icutmax .and. in_grid == 'n') - - ubar = 0.0; vbar = 0.0 - iuret = 0; ivret = 0 - wgttot = 0.0 - ibarnct = 0 - barnes_flag = 'n' - - levelloop: do n=1,nlevg - - select case (n) - case (1); ix1=3; ix2=4 ! For 850 mb readflags - case (2); ix1=5; ix2=6 ! For 700 mb readflags - case (3); ix1=12; ix2=13 ! For 500 mb readflags - end select - - if (readflag(ix1) .and. readflag(ix2)) then - - call barnes (fixlon(ist,ifh),fixlat(ist,ifh),glon,glat - & ,imax,jmax,ibeg,jbeg,iend,jend,u(1,1,n),valid_pt - & ,bskip,re,ri,uavg,icount,ctype,trkrinfo,iuret) - - call barnes (fixlon(ist,ifh),fixlat(ist,ifh),glon,glat - & ,imax,jmax,ibeg,jbeg,iend,jend,v(1,1,n),valid_pt - & ,bskip,re,ri,vavg,icount,ctype,trkrinfo,ivret) - - if (iuret /= 0 .or. ivret /= 0) then - -c ...barnes probably tried to access a pt outside the grid -c domain. So, reduce by half the distance from the center -c of the farthest pt that barnes tries to access, exit this -c loop, and try it again with the smaller re and ri. - - iuret = 96; ivret = 96 - reold = re - riold = ri - re = 0.5 * re - ri = 0.5 * ri - if ( verb .ge. 3 ) then - print *,' ' - print *,'NOTE: While attempting to use the barnes ' - print *,'method to update the first guess, the ' - print *,'algorithm tried to access a grid point that ' - print *,'does not have valid data, meaning that too ' - print *,'large a radius is being searched. So, the 2 ' - print *,'radii, re and ri, are being halved and, if the' - print *,'value of icutmax > 0, the algorithm will be ' - print *,'run again. Otherwise, if icutmax = 0, only ' - print *,'the extrapolation method will be used.' - print *,'iuret= ',iuret,' ivret= ',ivret,' icut= ',icut - print *,'Old re = ',reold,' New re = ',re - print *,'Old ri = ',riold,' New ri = ',ri - endif - - exit levelloop - - else - ubar = ubar + wgts(n) * uavg - vbar = vbar + wgts(n) * vavg - wgttot = wgttot + wgts(n) - ibarnct = ibarnct + 1 - endif - - endif - - enddo levelloop - - if (ibarnct > 0 .and. wgttot > 0.0) then - barnes_flag = 'y' - in_grid = 'y' - ubar = ubar / wgttot - vbar = vbar / wgttot - barnlat = fixlat(ist,ifh) + (vbar * dt)/dtkm - cosfac = cos (dtr * 0.5 * (fixlat(ist,ifh) + barnlat)) - barnlon = fixlon(ist,ifh) + (ubar * dt)/(dtkm * cosfac) - -c This next if statement says that if we've had to reduce the -c size of the barnes analysis domain twice already, then we've -c only done the analysis on a much smaller area, and this -c doesn't give us as good a picture of the average winds in the -c area of the storm, so reduce the emphasis we place on the -c barnes method. - - if (icut >= 2) barneswt = barneswt / 2. - - else - barnes_flag = 'n' - endif - - icut = icut + 1 - - enddo radmaxloop - -c --------------------- -c Average the results -c --------------------- -c Now do a weighted average of the positions obtained from the -c linear extrapolation and the barnes analysis methods. - - if (extrap_flag == 'y' .and. barnes_flag == 'y') then - wt_total = barneswt + extrapwt - slatfg(ist,ifh+1) = (barneswt * barnlat + extrapwt * extraplat) - & / wt_total - - ! Note that in any of these statements just below, in order for - ! any of these to be > 360, the original fixlon must be close - ! to 360, i.e., in the far eastern part of the grid, as opposed - ! to being in the far western part (e.g., 0-2 deg East or so). - ! Conversely, for any of these to be < 0, the original fixlon - ! must be close to 0, i.e., in the far *western* part of the - ! grid. - - if (fixlon(ist,ifh) > 330.0) then - - if (extraplon > 360. .or. barnlon > 360.) then - - if (trkrinfo%gridtype == 'global') then - - continue ! All lons will be in the 300+ range, so for - ! consistency, we're ok. - - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_next_ges, extraplon > 360 or' - print *,'!!! barnlon > 360 for a non-global grid. We ' - print *,'!!! only do GM wrapping for global grids.' - print *,'!!! extraplon= ',extraplon,' barnlon= ',barnlon - endif - - ignret = 95 - return - - endif - - endif - - elseif (fixlon(ist,ifh) < 30.0) then - - if (extraplon < 0. .or. barnlon < 0.) then - - if (trkrinfo%gridtype == 'global') then - - extraplon = extraplon + 360. - barnlon = barnlon + 360. - - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_next_ges, extraplon < 0 or ' - print *,'!!! barnlon < 0 for non-global grid. We only' - print *,'!!! do GM wrapping for global grids.' - endif - - ignret = 95 - return - - endif - - endif - - else - - continue ! extraplon and barnlon do not need to be modified - ! since there should be no way that a storm - ! currently east of 30E and west of 30W could make - ! it to the Greenwich Mer in one forecast interval - - endif - - slonfg(ist,ifh+1) = (barneswt * barnlon + extrapwt * extraplon) - & / wt_total - - if (slonfg(ist,ifh+1) > 360.) then - ! If we've GM-wrapped past 360, adjust it to be 0-360... - slonfg(ist,ifh+1) = slonfg(ist,ifh+1) - 360. - endif - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,41) 360.-barnlon,barnlat - write (6,43) 360.-extraplon,extraplat - endif - - ignret = 0 - else if (extrap_flag == 'y' .and. barnes_flag == 'n') then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_next_ges, barnes method was not ' - print *,'!!! done for updating the first guess for this ' - print *,'!!! storm. Only the linear extrapolation method ' - print *,'!!! was used.' - print *,'!!! ist= ',ist,' ifh= ',ifh - print *,'!!! Storm Name = ',storm(ist)%tcv_storm_name - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - endif - - slatfg(ist,ifh+1) = extraplat - if (extraplon > 360.) then - if (trkrinfo%gridtype == 'global') then - slonfg(ist,ifh+1) = extraplon - 360. - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_next_ges, extraplon >360' - print *,'!!! for non-global grid. We only' - print *,'!!! do GM wrapping for global grids.' - endif - - ignret = 95 - return - endif - elseif (extraplon < 0.) then - if (trkrinfo%gridtype == 'global') then - slonfg(ist,ifh+1) = extraplon + 360. - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_next_ges, extraplon < 0' - print *,'!!! for non-global grid. We only' - print *,'!!! do GM wrapping for global grids.' - endif - - ignret = 95 - return - endif - else - slonfg(ist,ifh+1) = extraplon - endif - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,41) 0.0,0.0 - write (6,43) 360.-extraplon,extraplat - endif - - ignret = 0 - else if (extrap_flag == 'n' .and. barnes_flag == 'y') then - slatfg(ist,ifh+1) = barnlat - if (barnlon > 360.) then - if (trkrinfo%gridtype == 'global') then - slonfg(ist,ifh+1) = barnlon - 360. - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_next_ges, barnlon >360' - print *,'!!! for non-global grid. We only' - print *,'!!! do GM wrapping for global grids.' - endif - - ignret = 95 - return - endif - elseif (barnlon < 0.) then - if (trkrinfo%gridtype == 'global') then - slonfg(ist,ifh+1) = barnlon + 360. - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_next_ges, barnlon < 0' - print *,'!!! for non-global grid. We only' - print *,'!!! do GM wrapping for global grids.' - endif - - ignret = 95 - return - endif - else - slonfg(ist,ifh+1) = barnlon - endif - - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,41) 360.-barnlon,barnlat - write (6,43) 0.0,0.0 - endif - - ignret = 0 - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in get_next_ges, new position guess not' - print *,'!!! made. Could not get guess using either barnes' - print *,'!!! method or extrapolation method.' - print *,'!!! extrap_flag = ',extrap_flag - print *,'!!! barnes_flag = ',barnes_flag - print *,'!!! Storm number = ',ist,' ifh = ',ifh - print *,'!!! Storm Name = ',storm(ist)%tcv_storm_name - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - write (6,41) 0.0,0.0 - write (6,43) 0.0,0.0 - endif - - ignret = 95 - endif - - - if ( verb .ge. 3 ) then - print *,' ' - print *,'-------------------------------------------------- ' - print *,'| Current fix & updated fix positions |' - print *,'-------------------------------------------------- ' - print *,'| In get_next_ges, current fcst hour = ',fhreal(ifh) - print *,'| current storm number = ',ist - print *,'| Return code from get_next_ges = ',ignret - print *,'| Storm Name = ',storm(ist)%tcv_storm_name - print *,'| Storm ID = ',storm(ist)%tcv_storm_id - write (6,420) gstorm(ist)%gv_gen_date,gstorm(ist)%gv_gen_fhr - & ,gstorm(ist)%gv_gen_lat - & ,gstorm(ist)%gv_gen_latns,gstorm(ist)%gv_gen_lon - & ,gstorm(ist)%gv_gen_lonew,gstorm(ist)%gv_gen_type - write (6,21) fixlat(ist,ifh) - write (6,23) 360.-fixlon(ist,ifh),fixlon(ist,ifh) - write (6,25) slatfg(ist,ifh+1) - write (6,27) 360.-slonfg(ist,ifh+1),slonfg(ist,ifh+1) - print *,'-------------------------------------------------' - print *,' ' - endif - - 420 format (' | Gen ID (if available): ',i10.10,'_F',i3.3,'_' - & ,i3.3,a1,'_',i4.4,a1,'_',a3) - 21 format (' | Current fix lat is ',f7.2) - 23 format (' | Current fix lon is ',f7.2,'W (',f7.2,'E)') - 25 format (' | Updated guess lat for next fcst hour is ',f7.2) - 27 format (' | Updated guess lon for next fcst hour is ',f7.2 - & ,'W (',f7.2,'E)') - 41 format (' --- barnlon= ',f7.2,'W barnlat= ',f7.2) - 43 format (' --- extraplon= ',f7.2,'W extraplat= ',f7.2) - -c Now calculate the speed that the storm would have to move at in -c order to make it to the next forecast position. We will use -c this information in writing out the "gen_vitals" record, if this -c is requested. - - call calcdist (fixlon(ist,ifh),fixlat(ist,ifh) - & ,slonfg(ist,ifh+1),slatfg(ist,ifh+1),dist,degrees) - - ! convert distance from km to meters, then get speed in m/s. - - distm = dist * 1000. - stmspd = distm / dt - istmspd = int ((stmspd * 10) + 0.5) - - xincr = slonfg(ist,ifh+1) - fixlon(ist,ifh) - yincr = slatfg(ist,ifh+1) - fixlat(ist,ifh) - - if ( verb .ge. 3 ) then - print *,'iocheck, dist= ',dist,' distm= ',distm - print *,'iocheck, stmspd= ',stmspd,' istmspd= ',istmspd - print *,'iocheck, xincr= ',xincr,' yincr= ',yincr - endif - - if (xincr < 0.0 .and. slonfg(ist,ifh+1) < 30.0 .and. - & fixlon(ist,ifh) > 300.0) then - ! This means we have a storm moving east across the GM, and - ! so we are subtracting, for example, something like - ! 0.5 - 359.5, so redo xincr, but add 360 to slonfg first... - xincr = (slonfg(ist,ifh+1) + 360.0) - fixlon(ist,ifh) - else if (xincr > 300.0) then - ! This means we have a storm moving west across the GM, and - ! so we are subtracting, for example, something like - ! 359.5 - 0.5, so redo xincr, but add 360 to fixlon first... - xincr = slonfg(ist,ifh+1) - (fixlon(ist,ifh) + 360.0) - endif - - if (xincr == 0.0) then - if (yincr == 0.0) then - stmdir = 0.0 - else if (yincr > 0) then - stmdir = 360.0 - else if (yincr < 0) then - stmdir = 180.0 - endif - else if (xincr > 0.0) then - if (yincr == 0.0) then - stmdir = 90.0 - else - arct = atan(yincr/xincr) - stmdir = 90. - arct / dtr - endif - else if (xincr < 0.0) then - if (yincr == 0.0) then - stmdir = 270.0 - else - arct = atan(yincr/xincr) - stmdir = 270. - arct / dtr - endif - endif - - istmdir = int (stmdir + 0.5) - if (istmdir > 360) then - istmdir = 360 - else if (istmdir < 0) then - istmdir = 0 - endif - - if ( verb .ge. 3 ) then - print *,'iocheck, stmdir= ',stmdir,' istmdir= ',istmdir - endif - - return - end - -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine getradii (xcenlon,xcenlat,imax,jmax,dx,dy,valid_pt - & ,cstormid,ifcsthr,vradius,trkrinfo - & ,need_to_expand_r34,radmax,igrret) -c -c ABSTRACT: This subroutine looks through the wind data near an -c input storm center (fixlon,fixlat) and gets the radii of various -c surface winds in each of the 4 storm quadrants (NE,NW,SE,SW). -c The wind thresholds that are sought are gale force (34kt|17.5m/s), -c storm force (50kt|25.7m/s), and hurricane force (64kt|32.9m/s). -c This subroutine calls the Cray subroutine orders, which is a -c Cray-optimized sort routine. -c -c UPDATE (AUG 2001): The Cray subroutine orders was ported to the -c SP by NCEP personnel. On the SP version, some changes were -c apparently made so that the size of the arrays for calling -c arguments 2, 3 and 4 (iwork, dtemp and isortix in my calling -c routine) must be the same. This was not the case on the Crays, -c and this was causing the tracker to crash for cases far north -c on fine grids (GFDL 1/3 grid). -c -c UPDATE (AUG 2012): The call to the Cray subroutine orders was -c replaced with a call to qsort, which uses a quicksort sorting -c algorithm. While this is not the fastest sorting routine out -c there, we don't do a lot of sorting here, and qsort is simple -c and it is portable. -c -c UPDATE (April 2013): For the radii, we encountered a problem with -c radmax being too small. It was set at 650 km. Hurricane Sandy -c exceeded this in the models, so the values returned from getradii -c were close to the default radmax value of 650 km (350 nm), instead -c of much higher as they should have been. To fix it, we now use an -c iterative technique, where we start with radmax as a small value -c (450 km). If getradii returns a value for R34 in a quadrant that -c does not exceed 0.97*radmax, then that value is ok. If it does -c exceed 0.97*radmax, then we bump up radmax by 50 km and call -c getradii again, looking to diagnose radii only in those quadrants -c where the need_to_expand_r34 flag = 'n'. -c -c INPUT: -c -c xcenlon fix longitude of storm center for current forecast hour -c xcenlat fix latitude of storm center for current forecast hour -c imax max i dimension of model grid -c jmax max j dimension of model grid -c dx grid spacing in i-direction of model grid -c dy grid spacing in j-direction of model grid -c valid_pt logical bitmap for valid data at a grid point -c cstormid 3-character storm ATCF ID (e.g., 03L, 11E, etc) -c ifcsthr integer value for current forecast hour -c trkrinfo derived type containing various info on the storm -c need_to_expand_r34 1-character array that specifies which of the -c 4 quadrants still need to be expanded on this time -c through getradii in order to get an R34 value that is -c not right at the outermost boundary. -c radmax input max radius (km) that will be used for this -c iteration of getradii. -c -c OUTPUT: -c -c igrret return code from this subroutine -c vradius Contains the distance from the storm fix position to -c each of the various wind threshhold distances in each -c quadrant. (3,4) ==> (# of threshholds, # of quadrants) -c -c LOCAL: -c -c radmax the maximum radius to look for winds for the various -c thresholds. -c quadinfo This array contains the magnitude of the near-surface -c winds and the distance from the gridpoint to the fix -c position for each point in each quadrant that is within -c the maximum allowed radius, radmax. quadinfo is -c allocated within this subroutine, and is allocated as -c (quadrant, num_pts_in_quadrant, data_type), where -c data_type is either windspeed(1) or distance(2) from -c storm center to grid point. -c quadmax This array contains the max surface wind in each -c quadrant, plus the location of it and the distance from -c the storm center. This information is critical to -c identifying when this subroutine is malfunctioning. - - USE grid_bounds; USE tracked_parms; USE trig_vals; USE level_parms - USE trkrparms - USE verbose_output - -c - type (trackstuff) trkrinfo -c - logical(1) valid_pt(imax,jmax) -c dimension iwork(257) - real, allocatable :: quadinfo(:,:,:),iwork(:) - real quadmax(4,4) - real exactdistnm,exactdistkm,radmax,degrees,cosarg - real rlonb,rlonc,rlatb,rlatc - real pt_heading_rad,pt_heading,d - integer, allocatable :: isortix(:) - integer iwindix,ipoint,ifcsthr - integer quadct(4),vradius(3,4) - integer, parameter :: dp = selected_real_kind(12, 60) - real (dp), allocatable :: dtemp(:) - real :: windthresh(3) = (/17.5,25.7,32.9/) - character cstormid*3 - character :: need_to_expand_r34(4)*1 - - if ( verb .ge. 3 ) then - print *,' ' - print *,' *************************************************** ' - print *,' AT BEGINNING OF GETRADII, input radmax= ',radmax - print *,' *************************************************** ' - print *,' ' - print *,'xcenlon= ',xcenlon,' xcenlat= ',xcenlat - print *,'imax= ',imax,' jmax= ',jmax,' dx= ',dx,' dy= ',dy - endif - - igrret = 0 - -c ----------------------------------------------------------- -c PART 1: Define the maximum radius for which you'll search -c for the wind values, and then get the beginning and ending -c i and j points for that sub-region to search. Define this -c maximum radius (radmax) in terms of km. -c ----------------------------------------------------------- - -c radmax = 650.0 ! This value is in units of km. With April 2013 -c ! update, this is now defined in calling routine - -c Roughly fix xcenlat to the grid point just poleward of xcenlat, -c and fix xcenlon to the grid point just EASTward of xcenlon. - - if (xcenlat >= 0.0) then - jlatfix = int((glatmax - xcenlat)/dy + 1.) - else - jlatfix = ceiling((glatmax - xcenlat)/dy + 1.) - endif - - ilonfix = int((xcenlon - glonmin)/dx + 2.) - - if (ilonfix > imax) then - if (trkrinfo%gridtype == 'global') then - ilonfix = ilonfix - imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In getradii, the ' - print *,'!!! user-requested eastern boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. ' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! eastern ilonfix = ',ilonfix - print *,'!!! ' - print *,'!!! Radii will not be computed for this time.' - print *,' ' - endif - - igrret = 99 - return - endif - endif - - if (ilonfix < 1) then - if (trkrinfo%gridtype == 'global') then - ilonfix = ilonfix + imax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: ilonfix < 1 in subroutine getradii' - print *,'!!! for a non-global grid.' - print *,'!!! ilonfix= ',ilonfix - print *,'!!! ' - print *,'!!! Radii will not be computed for this time.' - print *,' ' - endif - - igrret = 99 - return - endif - endif - -c Calculate number of grid points to have surrounding the storm so -c that we are sure radmax is within those points. - - cosfac = cos (xcenlat * dtr) - numipts = ceiling((radmax/(dtk*dx))/cosfac) - numjpts = ceiling(radmax/(dtk*dy)) - - jbeg = jlatfix - numjpts - jend = jlatfix + numjpts + 1 - ibeg = ilonfix - (numipts + 1) - iend = ilonfix + numipts - - if (ibeg < 1) then - - if (trkrinfo%gridtype == 'global') then - continue ! If wrapping past GM, there is code below in this - ! getradii routine that can modify the indices - ! appropriately. So... do nothing here. - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In getradii, the ' - print *,'!!! user-requested western boundary' - print *,'!!! is beyond the western bounds of ' - print *,'!!! this regional grid. ' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! ilonfix = ',ilonfix,' ibeg= ',ibeg - print *,'!!! ' - print *,'!!! Radii will not be computed for this time.' - print *,' ' - endif - - igrret = 99 - return - endif - - endif - - if (jbeg < 1) jbeg = 1 - - if (jbeg > jmax .or. jbeg < 1 .or. jend < 1) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'ERROR in getradii calculating jbeg or jend.' - print *,'jbeg= ',jbeg,' jend= ',jend - print *,'Wind radii will not be calculated for this time.' - endif - - igrret = 99 - return - endif - - if (iend > imax) then - - if (trkrinfo%gridtype == 'global') then - continue ! If wrapping past GM, there is code below in this - ! getradii routine that can modify the indices - ! appropriately. So... do nothing here. - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In getradii, the ' - print *,'!!! user-requested eastern boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. ' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! ilonfix = ',ilonfix,' iend= ',iend - print *,'!!! ' - print *,'!!! Radii will not be computed for this time.' - print *,' ' - endif - - igrret = 99 - return - endif - - endif - - if (jend > jmax) jend = jmax - - if ( verb .ge. 3 ) then - print *,' ' - print *,'In getradii, ibeg= ',ibeg,' iend= ',iend - print *,' jbeg= ',jbeg,' jend= ',jend - print *,' ilonfix= ',ilonfix,' jlatfix= ',jlatfix - endif - -c ----------------------------------------------------------- -c PART 2: Within the area of grid points defined by jbeg, -c jend, ibeg and iend, (1) calculate all the wind speeds at -c each grid point, (2) calculate all of the distances from -c each grid point to the storm center, (3) assign each grid -c point to one of the 4 quadrants (NE,NW,SE,SW), (4) in each -c quadrant, sort the points, based on windspeed. -c ----------------------------------------------------------- - - jnum = jend - jbeg + 1 - inum = iend - ibeg + 1 -c numalloc = ((jnum * inum) / 2) + inum/2 + jnum/2 - numalloc = jnum * inum + inum/2 + jnum/2 - - if ( verb .ge. 3 ) then - print *,'in getradii, numalloc= ',numalloc,' radmax= ',radmax - endif - - allocate (quadinfo(4,numalloc,2),stat=iqa) - - if (iqa /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in sub getradii allocating quadinfo array.' - print *,'!!! iqa = ',iqa - endif - - igrret = 94 - return - endif - - quadct = 0 - -c Calculate the distances and wind speeds at each grid point. If -c the distance is < radmax, include that wind info in the -c appropriate quadinfo array location for that quadrant. - - quadmax = 0.0 - - jloop: do j=jbeg,jend - iloop: do i=ibeg,iend - - ip = i - - if (i > imax) then - if (trkrinfo%gridtype == 'global') then - ip = i - imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In getradii, the ' - print *,'!!! user-requested point ' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. ' - print *,'!!! At location B in subroutine.' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! eastern point in question = ',i - print *,'!!! ' - print *,'!!! Radii will not be computed for this time' - print *,' ' - endif - - igrret = 99 - return - endif - endif - - if (i < 1) then - if (trkrinfo%gridtype == 'global') then - ip = i + imax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i < 1 in sub getradii' - print *,'!!! for a non-global grid. i= ',i - print *,'!!! At location C in subroutine.' - print *,'!!! ' - print *,'!!! Radii will not be computed for this time' - print *,' ' - endif - - igrret = 99 - return - endif - endif - - call calcdist (xcenlon,xcenlat,glon(ip),glat(j),dist,degrees) - if (dist > radmax) cycle iloop - - if (valid_pt(ip,j)) then - - vmag = sqrt (u(ip,j,levsfc)**2 + v(ip,j,levsfc)**2) - -cc print *,'i= ',i,' j= ',j,' dist= ',dist,' vmag= ',vmag - - ! Calculate the angle from the center point to this point - ! and then assign this point to the appropriate quadrant bin - - rlonc = (360.-glon(ip)) * dtr - rlatc = glat(j) * dtr - rlonb = (360.-xcenlon) * dtr - rlatb = xcenlat * dtr - d = degrees * dtr - -c write (6,59) 360.-xcenlon,xcenlat,360.-glon(ip),glat -c -c write (6,61) d/dtr,rlatc/dtr,360.-(rlonc/dtr),rlatb/dtr -c & ,360.-(rlonb/dtr),sin(rlatc),sin(rlatb),cos(d) -c & ,sin(d),cos(rlatb) -c -c -c 59 format (1x,'+++ gr, xcenlon= ',f8.3,'W xcenlat= ' -c & ,f8.3,' glon= ',f8.3,'W glat= ',f8.3) -c -c 61 format (1x,'+++ gr, d rlatc rlonc rlatb rlonb= ',5f9.4 -c & ,' sin(rlatc)= ',f8.6,' sin(rlatb)= ',f8.6 -c & ,' cos(d)= ',f8.6,' sin(d)= ',f8.6 -c & ,' cos(rlatb)= ',f8.6) - - if (d == 0.0) then - - pt_heading = 0.0 - - else - - cosarg = (sin(rlatc)-sin(rlatb)*cos(d)) / - & (sin(d)*cos(rlatb)) - if (cosarg > 1.0) cosarg = 1 - if (cosarg < -1.0) cosarg = -1 - - if (sin(rlonc-rlonb) < 0.0) then - pt_heading_rad = acos(cosarg) - else - pt_heading_rad = 2*pi - acos(cosarg) - endif - - pt_heading = pt_heading_rad / dtr - - endif - - if (pt_heading >= 0.0 .and. pt_heading < 90.) then - ! NE quadrant - iq = 1 - else if (pt_heading >= 90.0 .and. pt_heading < 180.) then - ! SE quadrant - iq = 2 - else if (pt_heading >= 180.0 .and. pt_heading < 270.) then - ! SW quadrant - iq = 3 - else if (pt_heading >= 270.0 .and. pt_heading <= 360.) then - ! NW quadrant - iq = 4 - endif - -c write (6,73) xcenlat,360.-xcenlon,j,i,ip,glat(j) -c & ,360.-glon(ip),pt_heading,iq - - 73 format (1x,'+++ getradii clat clon: ',f6.2,' ',f7.2,'W',3i4 - & ,' plat plon: ',f6.2,' ',f7.2,'W Dir: ',f7.2 - & ,' Quad: ',i2) - - quadct(iq) = quadct(iq) + 1 - quadinfo(iq,quadct(iq),1) = vmag - quadinfo(iq,quadct(iq),2) = dist - if (vmag > quadmax(iq,4)) then - quadmax(iq,1) = glon(ip) - quadmax(iq,2) = glat(j) - quadmax(iq,3) = dist - quadmax(iq,4) = vmag - endif - - endif - - enddo iloop - enddo jloop - - if ( verb .ge. 3 ) then - print *,' ' - print *,'After loop, quadct(1)= ',quadct(1),' quadct(2)= ' - & ,quadct(2) - print *,' quadct(3)= ',quadct(3),' quadct(4)= ' - & ,quadct(4) - print *,' ' - - write (6,110) cstormid,ifcsthr,'NE',quadmax(1,1),quadmax(1,2) - & ,quadmax(1,3)*0.539638,quadmax(1,4)*1.9427 - write (6,110) cstormid,ifcsthr,'SE',quadmax(2,1),quadmax(2,2) - & ,quadmax(2,3)*0.539638,quadmax(2,4)*1.9427 - write (6,110) cstormid,ifcsthr,'SW',quadmax(3,1),quadmax(3,2) - & ,quadmax(3,3)*0.539638,quadmax(3,4)*1.9427 - write (6,110) cstormid,ifcsthr,'NW',quadmax(4,1),quadmax(4,2) - & ,quadmax(4,3)*0.539638,quadmax(4,4)*1.9427 - print *,' ' - - 110 format (' quadmax: ',a3,1x,i3.3,1x,a2,1x,' lon: ',f6.2,'E',1x - & ,' lat: ',f6.2,' radius: ',f7.2,' nm',2x,' vmag: ' - & ,f6.2,' kts') - endif - -c Now go through each quadrant and put the wind speed distance info -c into a temporary array (dtemp), sort that array, and then scan -c through that array to find the various thresholds. - - quadrantloop: do k=1,4 - - if (need_to_expand_r34(k) == 'y') then - print *,'---> R34 search underway for quadrant ',k - & ,' radmax= ',radmax - continue - else - print *,'+ R34 okay for quadrant ',k,'... skipping...' - cycle quadrantloop - endif - - if (allocated(isortix)) deallocate (isortix) - if (allocated(dtemp)) deallocate (dtemp) - if (allocated(iwork)) deallocate (iwork) - allocate (isortix(quadct(k)),stat=iisa) - allocate (dtemp(quadct(k)),stat=idta) - allocate (iwork(quadct(k)),stat=iwa) - if (iisa /= 0 .or. idta /= 0 .or. iwa /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in getradii allocating isortix or dtemp' - print *,'!!! array for quadrant= ',k,' iisa = ',iisa - print *,'!!! idta= ',idta,' iwa= ',iwa - endif - - itret = 94 - return - endif - -c ------------------- - - do m=1,quadct(k) - dtemp(m) = quadinfo(k,m,2) - enddo - - imode = 2 - isortix = 0 - - call qsort (dtemp,isortix,quadct(k)) - -ccccc call orders (imode,iwork,dtemp,isortix,quadct(k),1,8,1) -cccc call orders_4byte (imode,iwork,dtemp,isortix -cccc & ,quadct(k),1,8,1) - - if ( verb .ge. 3 ) then - print *,' ' -c ************************************************************** -c--- mf 20100609 -c CAUSE OF SEG FAULT!!!!!!!! -- not sure still an issue if dtemp -c properly allocated -c - !print *,' dtemp(isortix(1)) = ',dtemp(isortix(1)) - print *,' dtemp(isortix(quadct(k)))= ' - & ,dtemp(isortix(quadct(k))) - print *,' isortix(1) = ',isortix(1) - print *,' isortix(quadct(k)) = ',isortix(quadct(k)) - endif - -c ! Uncomment these next lines to see a listing in the output of -c ! all wind values & distances in this quadrant less than radmax -c do iqq = 1,quadct(k) -c print *,' iqq= ',iqq,' vmag= ',quadinfo(k,isortix(iqq),1) -c & ,' dist= ',quadinfo(k,isortix(iqq),2) -c enddo - -c ------------------- - - if (quadct(k) < 2) then ! not enough members in array - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! IN GETRADII, NOT ENOUGH MEMBERS IN ARRAY FOR' - print *,'!!! QUADRANT #',k,' .... # members = quadct(k)= ' - & ,quadct(k) - print *,'!!! SETTING ALL VRADII = 0 for quadrant = ',k - endif - - vradius(1,k) = 0 - vradius(2,k) = 0 - vradius(3,k) = 0 - cycle quadrantloop - endif - -c Within this quadrant, go through the sorted array of wind -c magnitudes and compare those wind values against the set -c wind thresholds to get the wind radii. The array has -c been sorted by distance from the storm center in order of -c closest (ipoint=1) to farthest (ipoint=quadct(k)). We -c analyze these wind values by starting at the farthest -c point and moving inward until we hit a point that has a -c wind value of at least 34-knot winds (17.5 m/s). When -c we find that point, we interpolate between that point and -c the next farthest out point to get the distance that would -c be for the exact 17.5 m/s value. We then continue searching -c through the wind values down closer to the storm center to -c see if we can find values for the 50- and 64-knot winds. - - iwindix = 1 - ipoint = quadct(k) + 1 - - threshloop: do while (iwindix <= 3 .and. ipoint > 1) - - ipoint = ipoint - 1 - - if (quadinfo(k,isortix(ipoint),1) < windthresh(iwindix)) then - cycle threshloop - else - if (ipoint == quadct(k)) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In getradii, a max wind radius was' - print *,'!!! found at the maximum radius checked, so ' - print *,'!!! you may want to make sure that you are' - print *,'!!! checking at a far enough distance from ' - print *,'!!! the fix position, that is, you may want to' - print *,'!!! increase the value of radmax in subroutine' - print *,'!!! getradii. Currently, radmax (km) = ',radmax - print *,'!!! iwindix = ',iwindix,' quadrant= ',k - endif - - vradius(iwindix,k) = int( ((quadinfo(k,isortix(ipoint),2) - & * 0.5396) / 5.0) + 0.5) * 5 - else - -c Interpolate between the 2 closest distances to each wind -c threshold to get "exact" distance to that wind threshold -c radius, convert from km to nm, and then round to the -c nearest 5 nm (since TPC uses this precision). -c 7/23/98 UPDATE: Jim Gross has asked that values not be -c rounded to the nearest 5 nm, but rather only to the -c nearest 1 nm. - - exactdistkm = quadinfo(k,isortix(ipoint),2) + - & ( (quadinfo(k,isortix(ipoint),1) - windthresh(iwindix)) / - & (quadinfo(k,isortix(ipoint),1) - - & quadinfo(k,isortix(ipoint+1),1)) * - & ( (quadinfo(k,isortix(ipoint+1),2) - - & quadinfo(k,isortix(ipoint),2)) ) ) - - exactdistnm = exactdistkm * 0.5396 ! Convert km to nm - vradius(iwindix,k) = int(exactdistnm + 0.5) - -cc vradius(iwindix,k) = int( (exactdistnm / 5.0) + 0.5) * 5 - - - if ( verb .ge. 3 ) then - print *,'iwindix= ',iwindix,' exactdistnm = ' - & ,exactdistnm - print *,'vradius(iwindix,k) =',vradius(iwindix,k) - endif - - endif - -c The possibility exists, especially for coarse output -c grids, that there could be a jump over more than 1 wind- -c thresh category when going from 1 grid point to the next, so -c we need to account for this. For example, if 1 point has -c vmag = 15 m/s and the next point closer in has vmag = 28 -c m/s, then between those 2 points you have the thresholds -c for gale force AND storm force winds, so to be safe, we -c actually need to add 1 to ipoint and re-check the current -c point, if the wind value at that point is found to be -c greater than a wind threshold value (which it has if you've -c gotten to this point in threshloop). - - ipoint = ipoint + 1 - - iwindix = iwindix + 1 - - endif - - enddo threshloop - - deallocate (dtemp,stat=idta) - deallocate (isortix,stat=iisa) - deallocate (iwork,stat=iwa) - if (idta /= 0 .or. iisa /= 0 .or. iwa /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in getradii deallocating isortix or' - print *,'!!! dtemp or work for quadrant= ',k - print *,'!!! idta= ',idta,' iisa= ',iisa,' iwa= ',iwa - endif - - itret = 94 - return - endif - - enddo quadrantloop - - deallocate (quadinfo,stat=iqa) - if (iqa /= 0) then - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in getradii deallocating quadinfo array.' - print *,'!!! iqa= ',iqa - endif - - itret = 94 - return - endif -c - return - end - -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_max_wind (xcenlon,xcenlat,imax,jmax,dx,dy - & ,valid_pt,levsfc,vmax,trkrinfo,rmax,igmwret) -c -c ABSTRACT: This subroutine looks for the maximum near-surface wind -c near the storm center. Because different fcst Centers give us -c different parms, we will look at: 10m winds for GFS, MRF, GDAS, -c NGM and NAM; 10 m winds for NOGAPS; and surface winds for UKMET. -c ECMWF does not send us any near-surface wind parameters. By the -c way, this subroutine is only concerned with the value of the max -c wind, NOT where it's located radially with respect to the center. -c The value that's returned in vmax is the max wind speed in m/s, -c which are the units the data are stored in. However, when the -c max wind values are output in output_atcf, they will be -c converted from m/s to knots. -c -c INPUT: -c -c xcenlon fix longitude of storm center for current forecast hour -c xcenlat fix latitude of storm center for current forecast hour -c imax max i dimension of model grid -c jmax max j dimension of model grid -c dx grid spacing in i-direction of model grid -c dy grid spacing in j-direction of model grid -c valid_pt logical bitmap for valid data at a grid point -c levsfc integer holding the value of the array member that holds -c the near-surface winds in the u and v arrays (at orig -c writing, it's = 4). -c -c OUTPUT: -c -c vmax value of maximum near-surface wind near the storm ctr -c rmax radius of max winds -c igmwret return code from this subroutine -c -c LOCAL: -c -c radmaxwind the maximum radius to look for a max wind near the -c storm center. You have to allow this to be bigger for -c model grids with coarse resolution (ECMWF 2.5 degree). - - USE grid_bounds; USE tracked_parms; USE trig_vals; USE trkrparms - USE verbose_output - - type (trackstuff) trkrinfo - - real radmaxwind,degrees,dx,dy,rmax - logical(1) valid_pt(imax,jmax) -c - igmwret = 0 - rmax = -99.0 - - if ((dx+dy)/2. <= 1.25) then - if ((dx+dy)/2. <= 0.25) then - radmaxwind = 300.0 - else - radmaxwind = 300.0 - endif - else - radmaxwind = 500.0 - endif - -c Roughly fix xcenlat to the grid point just poleward of xcenlat, -c and fix xcenlon to the grid point just EASTward of xcenlon. - - if (xcenlat >= 0.0) then - jlatfix = int((glatmax - xcenlat)/dy + 1.) - else - jlatfix = ceiling((glatmax - xcenlat)/dy + 1.) - endif - - ilonfix = int((xcenlon - glonmin)/dx + 2.) - - if (ilonfix > imax) then - if (trkrinfo%gridtype == 'global') then - ilonfix = ilonfix - imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In get_max_wind, the ' - print *,'!!! user-requested eastern boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. ' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! eastern ilonfix = ',ilonfix - print *,'!!! ' - print *,'!!! Value of vmax will be set to 0 for this time.' - print *,' ' - endif - - igmwret = 99 - return - endif - endif - - if (ilonfix < 1) then - if (trkrinfo%gridtype == 'global') then - ilonfix = ilonfix + imax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: ilonfix < 1 in subroutine get_max_wind' - print *,'!!! for a non-global grid.' - print *,'!!! ilonfix= ',ilonfix - print *,'!!! ' - print *,'!!! Value of vmax will be set to 0 for this time.' - print *,' ' - endif - - igmwret = 99 - return - endif - endif - -c Calculate number of grid points to have surrounding the storm so -c that we are sure radmaxwind is within those points. - - cosfac = cos (xcenlat * dtr) - numipts = ceiling((radmaxwind/(dtk*dx))/cosfac) - numjpts = ceiling(radmaxwind/(dtk*dy)) - - jbeg = jlatfix - numjpts - jend = jlatfix + numjpts + 1 - ibeg = ilonfix - (numipts + 1) - iend = ilonfix + numipts - - if (jbeg > jmax .or. jbeg < 1 .or. jend < 1) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'ERROR in get_max_wind calculating jbeg or jend.' - print *,'jbeg= ',jbeg,' jend= ',jend - print *,'Value of vmax will be set to 0 for this time.' - endif - - vmax = 0.0 - igmwret = 99 - return - endif - - if (jend > jmax) jend = jmax - - if ( verb .ge. 3 ) then - - print *,' ' - print *,'In get_max_wind, ibeg= ',ibeg,' iend= ',iend - print *,' jbeg= ',jbeg,' jend= ',jend - print *,' ilonfix= ',ilonfix,' jlatfix= ',jlatfix - endif - - vmax = 0.0 - do j=jbeg,jend - do i=ibeg,iend - - ip = i - - if (i > imax) then - if (trkrinfo%gridtype == 'global') then - ip = i - imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In get_max_wind, the ' - print *,'!!! user-requested point ' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. ' - print *,'!!! At location B in subroutine.' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! eastern point = ',i - print *,'!!! ' - print *,'!!! Value of vmax will be set to 0 for ' - print *,'!!! this time.' - print *,' ' - endif - - igmwret = 99 - return - endif - endif - - if (i < 1) then - if (trkrinfo%gridtype == 'global') then - ip = i + imax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i < 1 in sub get_max_wind' - print *,'!!! for a non-global grid.' - print *,'!!! ilonfix= ',ilonfix - print *,'!!! At location C in subroutine.' - print *,'!!! ' - print *,'!!! Value of vmax will be set to 0 for ' - print *,'!!! this time' - print *,' ' - endif - - igmwret = 99 - return - endif - endif - - call calcdist (xcenlon,xcenlat,glon(ip),glat(j),dist,degrees) - - if (dist > radmaxwind) cycle - - if (valid_pt(ip,j)) then - vmag = sqrt (u(ip,j,levsfc)**2 + v(ip,j,levsfc)**2) - if (vmag > vmax) then - vmax = vmag - rmax = dist * 0.539638 ! convert from km to nm - endif - endif - - enddo - enddo - - if ( verb .ge. 3 ) then - print *,'At end of get_max_wind, vmax= ',vmax,' rmax= ',rmax - endif - - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine fixcenter (clon,clat,ist,ifh,calcparm,geslon,geslat - & ,inp,stderr,fixlon,fixlat,xvalues,maxstorm,ifret) -c -c ABSTRACT: This subroutine loops through the different parameters -c for the input storm number (ist) and calculates the -c center position of the storm by taking an average of -c the center positions obtained for those parameters. -c First we check to see which parameters are within a -c max error range (errmax), and we discard those that are -c not within that range. Of the remaining parms, we get -c a mean position, and then we re-calculate the position -c by giving more weight to those estimates that are closer -c to this mean first-guess position estimate. -c -c INPUT: -c clon Center longitudes of tracked parms for this storm & ifh -c clat Center latitudes of tracked parms for this storm & ifh -c ist Storm number -c ifh Index for forecast hour -c calcparm Logical; Use this parm's location for this storm or not -c geslon Initial guess longitude for this storm at this fcst hour -c geslat Initial guess latitude for this storm at this fcst hour -c inp contains the input date and model number information -c xvalues The actual max or min data values for each parameter -c maxstorm max # of storms to be handled in this run -c -c INPUT/OUTPUT: -c stderr Standard deviation of the position "error" of the parms -c relative to the guess storm position. As long as the -c distance of a parm center to the guess center is <= -c errpmax, it is included in the std dev calculation. -c -c OUTPUT: -c fixlon Best approximation of storm center's longitude -c fixlat Best approximation of storm center's latitude -c ifret Return code from this subroutine -c -c LOCAL: -c storm Contains tcvitals info for the storms (def_vitals) -c trkerr_avg Sum/avg of the track errors for all parms for this -c fcst hour, regardless of whether or not the error was -c > errmax. It's used for getting the std deviation of -c the position error for this forecast time, to be used -c as part of the errmax calculation for the next fcst -c time. -c iclose Number of parameters whose position estimates are -c found to be within a distance errmax of the guess pos -c wtpos The weight given to each position estimate. It's -c based on the distance from the average position. -c errdist The "error" of the parameter center position relative -c to the storm's guess position. -c avgerr Average "error" of the parameter center positions -c relative to the storm's guess position. -c use4next Logical; If a parm center has been calculated but its -c distance from the guess position is > errmax, we don't -c use this center in calculating the new guess position, -c however we will use this position in calculating the -c standard deviation of the current time's guess -c positions, to be used in calculating the new errmax -c for the next forecast time. So in this subroutine, -c calcparm may be set to FALSE if errdist > errmax, but -c use4next will not be set to FALSE (Actually, it is -c only set to FALSE if errdist > errpmax, which is -c defined in error_parms and is roughly 600km). -c stderr_close Standard deviation of position errors for parms that -c have center estimates that are within a distance -c errmax of the guess position. -c clon_fguess These are the first-guess mean position estimates, -c clat_fguess which are the means of the position estimates that -c are within a distance errmax. These first-guess mean -c positions will be refined by giving more weight to -c individual parameter estimates that are closer to -c this first-guess mean position. -c dist_from_mean Contains the "error" distance of each parameter -c from the first-guess mean position (clon_fguess, -c clat_fguess). NOTE: If a parameter is not within -c a distance errmax of the guess position for this -c time (geslon,geslat), then there will be NO -c dist_from_mean calculated for that parm. -c - USE error_parms; USE set_max_parms; USE inparms; USE def_vitals - USE atcf; USE gen_vitals; USE tracked_parms - USE verbose_output - - type (datecard) inp - - real clon(maxstorm,maxtime,maxtp),temp_clon(maxtp) - real clat(maxstorm,maxtime,maxtp),temp_clat(maxtp) - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real trkerr(maxtp),errdist(maxtp),xvalues(maxtp) - real stderr(maxstorm,maxtime),devia(maxtp),wtpos(maxtp) - real dist_from_mean(maxtp) - real degrees,errtmp - integer gt345_ct,lt15_ct - logical(1) calcparm(maxtp,maxstorm),use4next(maxtp) - character charparm(11)*8,charmaxmin(11)*8 -c - data charparm /'zeta 850','zeta 700','vmag 850','NOT USED' - & ,'vmag 700','NOT USED',' gph 850',' gph 700',' MSLP' - & ,'vmag sfc','zeta sfc'/ - data charmaxmin /' Max ',' Max ',' Min ','NOT USED' - & ,' Min ','NOT USED',' Min ',' Min ',' Min ' - & ,' Min ',' Max '/ -c - ifret=0 -c -c We need to judge whether each parameter position is reasonable, -c so we'll check to make sure that the dist from each parameter's -c estimate to the guess position is less than a maximum allowable -c error. If it's the first forecast time, use the initial error max -c (defined as errinit in error_parms) as errmax. Otherwise, the -c max error criterion is that the distance error must not exceed 3 -c times the previous forecast time's standard deviation (after a -c small growth factor has been applied). -c UPDATE 3/5/98: During testing, it was found that just using the -c previous time's stdev made errmax too "jumpy" (i.e., at vt=48h, -c errmax could = 380, and then at vt=54h, errmax could jump down -c to 190, so we've changed it so that it uses an average of the -c stdev's from the 3 previous forecast times to maintain some -c continuity between successive forecast times). -c - if (ifh == 1) then - if (atcfname == 'GFSO' .or. atcfname == 'MRFO' .or. - & atcfname == 'GDAS' .or. atcfname == 'GFDT' .or. - & atcfname(1:3) == 'AP0' .or. atcfname(1:3) == 'AN0' .or. - & atcfname(1:3) == 'AP1' .or. atcfname(1:3) == 'AN1' .or. - & atcfname(1:3) == 'AC0' .or. atcfname == 'AEAR' ) then - errmax = err_gfs_init - errinit = err_gfs_init - else if (atcfname == 'EMX ') then - errmax = err_ecm_max - errinit = err_ecm_max - else - errmax = err_reg_init - errinit = err_reg_init - endif - else - if (atcfname == 'GFSO' .or. atcfname == 'MRFO' .or. - & atcfname == 'GDAS' .or. atcfname == 'GFDT' .or. - & atcfname(1:3) == 'AP0' .or. atcfname(1:3) == 'AN0' .or. - & atcfname(1:3) == 'AP1' .or. atcfname(1:3) == 'AN1' .or. - & atcfname(1:3) == 'AC0' .or. atcfname == 'AEAR') then - errinit = err_gfs_init - else if (atcfname == 'EMX ') then - errinit = err_ecm_max - else - errinit = err_reg_max - endif - - if (ifh >= 4) then - xavg_stderr = (stderr(ist,ifh-3) + stderr(ist,ifh-2) - & + stderr(ist,ifh-1)) / 3.0 - else if (ifh == 3) then - xavg_stderr = (stderr(ist,ifh-2) + stderr(ist,ifh-1)) / 2.0 - else if (ifh == 2) then - xavg_stderr = stderr(ist,ifh-1) - endif - -c Following errmax statement replaced by the ensuing 4 lines -c due to a compiler bug on some other platforms.... -c errmax = amin1(amax1(3.0*xavg_stderr*errpgro,errinit) -c & ,errpmax) - - errtmp = 3.0*xavg_stderr*errpgro - errmax = max(errtmp,errinit) - errtmp = errpmax - errmax = min(errmax,errtmp) - - endif - - if ( verb .ge. 3 ) then - print *,' ' - if (ifh > 1) then - print '(a42,f8.2,a15,f8.2)' - & ,' At beg of fixcenter, stderr(ist,ifh-1) = ' - & ,stderr(ist,ifh-1),' xavg_stderr= ',xavg_stderr - else - print '(a45,a18)' - & ,' At beg of fixcenter, stderr(ist,ifh-1) = N/A' - & ,' xavg_stderr= N/A' - endif - print *,'At beg of fixcenter, errpgro = ',errpgro - print *,'At beg of fixcenter, errinit = ',errinit - print *,'At beg of fixcenter, errpmax = ',errpmax - print *,'At beg of fixcenter, ifh= ',ifh,' errmax= ',errmax - endif - - trkerr_avg = 0.0 - iclose = 0; itot4next = 0 - clonsum = 0.0; clatsum = 0.0 - errdist = 0.0 - use4next = .FALSE. - gt345_ct = 0 - lt15_ct = 0 - -c For each parm, check to see if the estimated center is within -c distance errmax of the guess center. If it's within errmax, -c then use that parm for locating the center. If it's NOT -c within errmax, but IS within errpmax, then we still use this -c in calculating the standard deviation of the parameters for -c helping to determine the errmax for the next forecast hour. -c NOTE: For calculating the std dev to be used for the next -c forecast hour, do NOT use vmag 850, vmag 700 or vmag sfc, since -c those parms are always guaranteed to be within a short range of -c the guess, due to the nature of the algorithm (see subroutine -c get_uv_center for further details on that). - - do ip=1,maxtp - - if (ip == 4 .or. ip == 6) then ! Parms 4 & 6 not defined. - calcparm(ip,ist) = .FALSE. - cycle - endif - if (calcparm(ip,ist)) then - call calcdist (geslon,geslat,clon(ist,ifh,ip) - & ,clat(ist,ifh,ip),dist,degrees) - errdist(ip) = dist - if (dist <= errpmax) then - if (ip == 3 .or. ip == 5 .or. ip == 10) then - use4next(ip) = .FALSE. - else - use4next(ip) = .TRUE. - trkerr_avg = trkerr_avg + dist - itot4next = itot4next + 1 - endif - endif - if (dist <= errmax) then - iclose = iclose + 1 - if (clon(ist,ifh,ip) > 345.) then - gt345_ct = gt345_ct + 1 - endif - if (clon(ist,ifh,ip) < 15.) then - lt15_ct = lt15_ct + 1 - endif - clonsum = clonsum + clon(ist,ifh,ip) - clatsum = clatsum + clat(ist,ifh,ip) - else - calcparm(ip,ist) = .FALSE. - endif - endif - - enddo - - if (iclose > 0) then - if (gt345_ct > 0 .and. lt15_ct > 0) then - ! We have some parms left of the GM and some to the right, - ! so we will add (360*lt15ct) to the sum of the lons (clonsum) - clon_fguess = (clonsum + (360.*float(lt15ct)))/ iclose - else - clon_fguess = clonsum / float(iclose) - endif - if (clon_fguess >= 360.0) then - clon_fguess = clon_fguess - 360. - endif - clat_fguess = clatsum / float(iclose) - endif - -c Print out a table listing of the locations of the fixes for -c the individual parameters. - - if ( verb .ge. 3 ) then - print *,' ' - print *,'--------------------------------------------------' - write (6,95) 'Individual fixes follow..., fhr= ',ifhours(ifh) - & ,ifclockmins(ifh),' ',storm(ist)%tcv_storm_id,' ' - & ,storm(ist)%tcv_storm_name - write (6,97) gstorm(ist)%gv_gen_date,gstorm(ist)%gv_gen_fhr - & ,gstorm(ist)%gv_gen_lat - & ,gstorm(ist)%gv_gen_latns,gstorm(ist)%gv_gen_lon - & ,gstorm(ist)%gv_gen_lonew,gstorm(ist)%gv_gen_type - print *,'Model name = ',atcfname - print *,'Values of -99.99 indicate that a fix was unable to be' - print *,'made for that paramater. Parameters 4 & 6 are not' - print *,'used. Vorticity data values are scaled by 1e5.' - print *,'errdist is the distance that the position estimate is' - print *,'from the guess position for this time. MSLP value ' - print *,'here may differ from that in the atcfunix file since ' - print *,'the one here is that derived from the area-averaged ' - print *,'barnes analysis, while that in the atcfunix file is ' - print *,'from a specific gridpoint.' - write (6,21) geslon,360.-geslon,geslat - write (6,*) ' ' - write (6,23) - write (6,25) - endif - - if (geslat > 0.0) then - charmaxmin(1) = ' Max ' - charmaxmin(2) = ' Max ' - charmaxmin(11) = ' Max ' - else - charmaxmin(1) = ' Min ' - charmaxmin(2) = ' Min ' - charmaxmin(11) = ' Min ' - endif - - do ip=1,maxtp - if (ip == 1 .or. ip == 2 .or. ip == 11) then - if (clon(ist,ifh,ip) < 0.001 .and. - & clon(ist,ifh,ip) > -0.001) then - - if ( verb .ge. 3 ) then - write (6,27) ip,charparm(ip),charmaxmin(ip),0.0 - & ,0.0,clat(ist,ifh,ip),xvalues(ip)*1e5 - & ,calcparm(ip,ist),errdist(ip) - endif - - else - - if ( verb .ge. 3 ) then - write (6,27) ip,charparm(ip),charmaxmin(ip) - & ,clon(ist,ifh,ip),360.-clon(ist,ifh,ip) - & ,clat(ist,ifh,ip),xvalues(ip)*1e5 - & ,calcparm(ip,ist),errdist(ip) - endif - - endif - else - if (clon(ist,ifh,ip) < 0.001 .and. - & clon(ist,ifh,ip) > -0.001) then - - if ( verb .ge. 3 ) then - write (6,27) ip,charparm(ip),charmaxmin(ip),0.0 - & ,0.0,clat(ist,ifh,ip),xvalues(ip) - & ,calcparm(ip,ist),errdist(ip) - endif - - else - - if ( verb .ge. 3 ) then - write (6,27) ip,charparm(ip),charmaxmin(ip) - & ,clon(ist,ifh,ip),360.-clon(ist,ifh,ip) - & ,clat(ist,ifh,ip),xvalues(ip) - & ,calcparm(ip,ist),errdist(ip) - endif - - endif - endif - enddo - - 21 format (' Guess location for this time: ',f7.2,'E (',f6.2,'W)' - & ,2x,f7.2) - 23 format (' parm# parm Max/Min Lon_fix(E) Lon_fix(W)' - & ,' Lat_fix Max/Min_value calcparm errdist(km)') - 25 format (' ----- ---- ------- ---------- ----------' - & ,' ------- ------------- -------- ----------') - 27 format (2x,i2,4x,a8,2x,a8,3x,f7.2,5x,f7.2,4x,f7.2,7x,f9.2 - & ,6x,L2,7x,f7.2) - 95 format (1x,a33,1x,i4,':',i2.2,a2,a4,a1,a9) - 97 format (' Gen ID (if available): ',i10.10,'_F',i3.3,'_',i3.3,a1 - & ,'_',i4.4,a1,'_',a3) - - -c If number of parameter centers close enough (iclose) > 0, then -c calculate the center by taking an average of all the parameter -c center positions that are within distance errmax from the guess -c position (geslon,geslat). Get a first-guess mean position, and -c then re-calculate the position estimate by giving more weight -c to those positions that are closer to the first-guess mean -c position. - - dist_from_mean = 0.0 - - if (iclose > 0) then - -c Get distances from first-guess mean position.... - - do ip=1,maxtp - if (calcparm(ip,ist)) then - call calcdist (clon_fguess,clat_fguess,clon(ist,ifh,ip) - & ,clat(ist,ifh,ip),dist,degrees) - dist_from_mean(ip) = dist - endif - enddo - -c Get the mean distance of each parameter estimate from -c the first-guess mean position - - call avgcalc (dist_from_mean,maxtp,calcparm(1,ist) - & ,xmn_dist_from_mean,iaret) - - if (iaret == 0) then - - call stdevcalc (dist_from_mean,maxtp,calcparm(1,ist) - & ,xmn_dist_from_mean,stderr_close,isret) - - if ( verb .ge. 3 ) then - print *,' ' - print *,'After stdevcalc, xmn_dist_from_mean= ' - & ,xmn_dist_from_mean,' stderr_close= ' - & ,stderr_close,' isret= ',isret - endif - - endif - if (iaret /= 0 .or. isret /= 0) then - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR IN FIXCENTER -- Error occurred in either' - print *,'!!! avgcalc or stdevcalc. Storm number = ',ist - print *,'!!! RCC from avgcalc = ',iaret - print *,'!!! RCC from stdevcalc = ',isret - print *,'!!! Center fix will NOT be made, and processing' - print *,'!!! for this storm is ending. The probable cause' - print *,'!!! is that no calcparms were valid for this storm' - print *,'!!! at this forecast hour.' - endif - - fixlon(ist,ifh) = -999.0 - fixlat(ist,ifh) = -999.0 - ifret = 95 - return - endif - - if (calcparm(1,ist) .or. calcparm(2,ist) .or. calcparm(7,ist) - & .or. calcparm(8,ist) .or. calcparm(9,ist) - & .or. calcparm(11,ist)) then - continue - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! In fixcenter, STOPPING PROCESSING for this' - print *,'!!! storm. The reason is that none of the fix' - print *,'!!! locations for parms z850, z700, zeta 850,' - print *,'!!! zeta 700, MSLP or sfc zeta were within a ' - print *,'!!! reasonable distance of the guess location. As' - print *,'!!! such, no attempt will be made to fix the vmag' - print *,'!!! 850 or vmag 700 minima since, by the nature of' - print *,'!!! the algorithm for these 2 parms, a fix ' - print *,'!!! location WILL ALWAYS be returned that is ' - print *,'!!! within a reasonable distance of the center' - print *,'!!! guess position (the other 5 parameters may' - print *,'!!! or may not do so). So if the other 5 parms' - print *,'!!! insist that the guess is too far away, we ' - print *,'!!! do not want to grab a false center with ' - print *,'!!! the vmag minima.' - print *,'!!! ist= ',ist,' ifh= ',ifh - write (6,102) ifhours(ifh),ifclockmins(ifh) - 102 format (1x,'!!! Forecast hour: ',i4,':',i2.2) - endif - - fixlon(ist,ifh) = -999.0 - fixlat(ist,ifh) = -999.0 - ifret = 95 - return - endif - -c Now re-calculate the mean position by giving more weight -c to those position estimates that are closer to the first -c guess mean position. Note that if stderr_close < 5.0, we -c force it to be 5.0; we do this to avoid getting very -c large numbers for devia values, which could make the -c weights (wtpos) equal to 0. This occurred during testing -c when only 2 parameters were valid, and so, of course, the -c standard deviation from the mean of those 2 parameters -c was close to 0, which gave devia values around 6000, and -c then wtpos values of 0, leading to a divide by 0 crash -c later on in subroutine wtavrg. - - kprm=0 - - if (stderr_close > 0.0) then - if (stderr_close < 5.0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'NOTE: Since stderr_close had a value less than' - print *,'5, stderr_close has been forced to be equal' - print *,'to 5 in order to avoid dividing by zero later' - print *,'on in subroutine wtavrg.' - endif - - stderr_close = 5.0 - endif - do ip=1,maxtp - if (calcparm(ip,ist)) then - kprm = kprm + 1 - devia(kprm) = dist_from_mean(ip) / stderr_close - wtpos(kprm) = exp(-devia(kprm)/3.) - temp_clon(kprm) = clon(ist,ifh,ip) - temp_clat(kprm) = clat(ist,ifh,ip) - - if ( verb .ge. 3 ) then - write (6,113) ip,kprm,dist_from_mean(ip),devia(kprm) - & ,wtpos(kprm),temp_clon(kprm) - & ,360.-temp_clon(kprm),temp_clat(kprm) - endif - - endif - enddo - 113 format (1x,'ip= ',i2,' kprm= ',i2,' dist_from_mean= ',f7.3 - & ,' devia= ',f7.3,' wtpos= ',f8.5,2x,3(2x,f7.2)) - else -c -c This next if statement is for the case in which only 1 -c parameter is valid, for which the stderr_close will = 0 -c (obviously), but as long as we have 1 valid parameter, -c continue processing, and set the weight for that parm = 1. -c The else portion is for the case in which stderr_close -c = 0 with NO parms being close. -c - if (iclose == 1) then - do ip=1,maxtp - if (calcparm(ip,ist)) then - kprm = kprm + 1 - wtpos(kprm) = 1 - temp_clon(kprm) = clon(ist,ifh,ip) - temp_clat(kprm) = clat(ist,ifh,ip) - endif - enddo - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR IN FIXCENTER, stderr_close not > 0' - print *,'!!! stderr_close = ',stderr_close - print *,'!!! The probable cause is that no calcparms were' - print *,'!!! valid for this storm at this forecast hour.' - endif - - fixlon(ist,ifh) = -999.0 - fixlat(ist,ifh) = -999.0 - ifret = 95 - return - endif - endif -c - if (kprm > 0) then - call wtavrg_lon (temp_clon,wtpos,kprm,fixlon(ist,ifh),iwtret1) - call wtavrg (temp_clat,wtpos,kprm,fixlat(ist,ifh),iwtret2) - if (iwtret1 > 0 .or. iwtret2 > 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR IN FIXCENTER in call to wtavrg.' - print *,'!!! Return Codes from wtavrg calls follow: ' - print *,'!!! RCC from wtavrg for long fix: ',iwtret1 - print *,'!!! RCC from wtavrg for lat fix: ',iwtret2 - print *,'!!! This means a divide by zero would have ' - print *,'!!! been attempted, which means that the ' - print *,'!!! weights in wtpos are not > 0. Check in' - print *,'!!! subroutine fixcenter where devia values' - print *,'!!! are calculated to see if something is ' - print *,'!!! wrong there. Values of wtpos array follow:' - print *,'!!! ',wtpos - print *,'!!! ist= ',ist,' ifh= ',ifh,' iclose= ',iclose - print *,'!!! errmax= ',errmax,' kprm= ',kprm - print *,' ' - endif - - fixlon(ist,ifh) = -999.0 - fixlat(ist,ifh) = -999.0 - ifret = 95 - return - endif - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR IN FIXCENTER, kprm NOT > 0' - print *,'!!! This means that, for whatever reason, the ' - print *,'!!! calcparm logical flag was set to .FALSE. for' - print *,'!!! all of the parameters. Thus, a center' - print *,'!!! position could not be obtained for this storm' - print *,'!!! ist= ',ist,' ifh= ',ifh,' iclose= ',iclose - print *,'!!! errmax= ',errmax,' kprm= ',kprm - endif - - fixlon(ist,ifh) = -999.0 - fixlat(ist,ifh) = -999.0 - ifret = 95 - return - endif - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: IN FIXCENTER, No storms are within errmax ' - print *,'!!! OR the calcparm logical flag was set to .FALSE. ' - print *,'!!! all of the parameters. Thus, a center' - print *,'!!! position could not be obtained for this storm' - print *,'!!! ist= ',ist,' ifh= ',ifh,' iclose= ',iclose - print *,'!!! errmax= ',errmax - endif - - fixlon(ist,ifh) = -999.0 - fixlat(ist,ifh) = -999.0 - ifret = 95 - return - endif - -c Now calculate the average error of all the parms that are within -c a radius errpmax (defined in error_parms, ~600km), and the std -c dev of those errors. This standard deviation will be used in -c calculating the maximum allowable error for the next forecast -c time. - - if (itot4next > 0 .and. ifret /= 95) then - trkerr_avg = trkerr_avg / float(itot4next) - call stdevcalc (errdist,maxtp,use4next,trkerr_avg - & ,stderr(ist,ifh),isret) - if (isret /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in FIXCENTER calculating std deviation ' - print *,'!!! for use in next forecast hours errmax.' - print *,'!!! ist= ',ist,' ifh= ',ifh,' itot4next= ' - & ,itot4next - endif - - ifret = 95 - endif - endif -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine avgcalc (xdat,kmax,valid,xavg,iaret) -c -c ABSTRACT: This subroutine just calculates a straight average of -c the parameters in the input array (xdat). The logical array -c (valid) indicates whether or not to include a particular array -c member or not in the calculation. - - USE verbose_output - - real xdat(kmax) - logical(1) valid(kmax) -c - iaret = 0 -c - xsum = 0.0 - ict = 0 - do i=1,kmax - if (valid(i)) then - xsum = xsum + xdat(i) - ict = ict + 1 - endif - enddo -c - if (ict > 0) then - xavg = xsum / float(ict) - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in avgcalc, ict NOT > 0' - endif - - xavg = xdat(1) - iaret = 95 - endif -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine wtavrg (xdat,wt,kmax,xwtavg,iwtret) -c -c ABSTRACT: This subroutine calculates a weighted average of the -c parameters in the input array (xdat) using the input weights -c in the input array (wt). It is used to calculate the center lat -c and lon fix positions. -c - USE verbose_output - - real xdat(kmax),wt(kmax) -c - iwtret = 0 -c - xwtavg = 0.0 - wtot = 0.0 - do i=1,kmax - xwtavg = xwtavg + xdat(i)*wt(i) - wtot = wtot + wt(i) - enddo -c - if (wtot > 0.0) then - xwtavg = xwtavg / wtot - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in wtavrg, wtot NOT > 0' - endif - - iwtret = 95 - endif -c - return - end - -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine wtavrg_lon (xlon,wt,kmax,xwtavg,iwtret) -c -c ABSTRACT: This subroutine calculates a weighted average of the -c parameters in the input array (xlon) using the input weights -c in the input array (wt). This subroutine is specifically used -c to find the center lon fix positions. It contains code to -c account for wrapping around the Greenwich Meridian. -c - - USE verbose_output - - real xlon(kmax),wt(kmax) - integer gt345_ct,lt15_ct -c - iwtret = 0 - gt345_ct = 0 - lt15_ct = 0 - -c First check to see if we have lons that are both to the left -c and the right of the greenwich meridian - - do i = 1,kmax - if (xlon(i) > 345.) then - gt345_ct = gt345_ct + 1 - endif - if (xlon(i) < 15.) then - lt15_ct = lt15_ct + 1 - endif - enddo - - if (gt345_ct > 0 .and. lt15_ct > 0) then - ! We have some lons that are in the 300's (west of the GM), and - ! some that are in the 0's (east of the GM). We need to - ! standardize these if we want to get a meaningful average. - do i = 1,kmax - if (xlon(i) < 15.) then - xlon(i) = xlon(i) + 360.0 - endif - enddo - endif - - xwtavg = 0.0 - wtot = 0.0 - do i=1,kmax - xwtavg = xwtavg + xlon(i)*wt(i) - wtot = wtot + wt(i) - enddo -c - if (wtot > 0.0) then - xwtavg = xwtavg / wtot - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in wtavrg_lon, wtot NOT > 0' - endif - - iwtret = 95 - endif - - if (xwtavg >= 360.0) then - xwtavg = xwtavg - 360.0 - endif -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine stdevcalc (xdat,kmax,valid,xavg,stdx,isret) - - USE verbose_output - - real xdat(kmax) - logical(1) valid(kmax) - - isret = 0 - - stdx = 0.0 - ict = 0 - do i=1,kmax - if (valid(i)) then - stdx = stdx + (xdat(i) - xavg)**2 - ict = ict + 1 - endif - enddo - - if (ict > 0) then - stdx = sqrt(stdx/float(ict)) - if (stdx == 0.0) then -c This can happen if you have just 2 points; The mean position -c will be exactly in the middle of the 2 points and so the -c standard deviation around that mean point will be 0. And -c since the calling routine will quit if the returned standard -c deviation is 0, we must force it to be 1 so the program -c continues running. Theoretically, it could also happen with -c 3 or more points, but the likelihood of the distances working -c out to exactly equidistant for 3 points is not that good. - stdx = 1.0 - endif - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in stdevcalc, ict NOT > 0' - endif - - isret = 95 - endif -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_uv_center (uvgeslon,uvgeslat,imax,jmax,dx,dy - & ,ist,level,valid_pt,cflag - & ,ctlon,ctlat,xval,trkrinfo,igucret) -c -c ABSTRACT: This subroutine calculates the center fix position for -c the minimum in the wind speed near the storm center. This center -c fix is done differently than for the other parms. With this fix, -c we severely limit the area that is searched, because we do not -c want to confuse a wind minimum out on the periphery of a storm -c with the center wind minimum. Therefore, this subroutine is not -c called until center fixes have been made for the 5 other parms -c (z850, z700, zeta850, zeta700, mslp). Once those fixes have been -c made, a modified first guess is made of the average of the guess -c position for this time and the 5 other parm fixes. That modified -c guess position is passed into this subroutine as uvgeslon and -c uvgeslat, and that's where the searching for the wind minimum -c is done. To get the wind minimum, the u and v data are first -c interpolated down to a fine grid (see details below for exact -c figures), and then a single-pass barnes analysis is done on that -c fine grid. The reason that we first interpolate the data (which -c is different from how we do the other parms) is that if we just -c use the original grid resolution, we may not be able to -c accurately pick out a minimum in the wind field at the center. -c - USE radii; USE grid_bounds; USE tracked_parms; USE trig_vals - USE level_parms; USE trkrparms - USE verbose_output - - type (trackstuff) trkrinfo - - real, allocatable :: uold(:,:),vold(:,:),unew(:,:),vnew(:,:) - real, allocatable :: rlonold(:),rlatold(:),rlonnew(:),rlatnew(:) - real, allocatable :: vmag(:,:) - real :: dx,dy - real :: grid_maxlat,grid_minlat,grid_maxlon,grid_minlon - character*1 :: gotlat - logical(1) cflag, valid_pt(imax,jmax) - logical(1), allocatable :: lbi(:,:) -c - gotlat = 'n' -c -c ----------------------------------------------------------------- -c INTERPOLATE INPUT GRID TO SMALLER GRID -c ----------------------------------------------------------------- -c -c Get beginning and ending j points (on the input grid) for a -c smaller array that surrounds the storm. It is this smaller array -c that we will interpolate to a finer grid. -c -c Calculate number of pts to either side of this j to search -c - npts = ceiling(rads_vmag/(dtk*((dx+dy)/2.))) -c - call get_ij_bounds (npts,0,ritrk_vmag,imax,jmax,dx,dy - & ,glatmax,glatmin,glonmax,glonmin,uvgeslon,uvgeslat - & ,trkrinfo,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) - - if ( verb .ge. 3 ) then - print *,' ' - print *,' After get_ij D, ibeg jbeg = ',ibeg,jbeg - print *,' After get_ij D, iend jend = ',iend,jend - endif - - if (igiret /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in get_uv_center from call to ' - print *,'!!! get_ij_bounds, stopping processing for ' - print *,'!!! storm number ',ist - endif - - igucret = 92 - return - endif - - if (ibeg < 1) then - if (trkrinfo%gridtype == 'global') then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_uv_center, the ibeg returned from' - print *,'!!! get_ij_bounds is < 1, but our gridtype is ' - print *,'!!! global, so we are going to leave it as is and ' - print *,'!!! account for the grid wrapping.' - print *,' ' - endif - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_uv_center, the ibeg returned from' - print *,'!!! get_ij_bounds is < 1, and our gridtype is NOT' - print *,'!!! global, so we are going to redefine ibeg to 1.' - print *,' ' - endif - - ibeg = 1 - endif - endif - - if (jbeg < 1) jbeg = 1 - - if (ibeg > imax .or. jbeg > jmax .or. jbeg < 1 .or. - & iend < 1 .or. jend < 1) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'ERROR in get_uv_center calculating ibeg, iend, jbeg' - print *,'or jend. ibeg= ',ibeg,' iend= ',iend,' jbeg= ',jbeg - print *,'jend= ',jend - print *,'uv center will not be calculated for this time.' - endif - - igrret = 99 - return - endif - - if (iend > imax) then - if (trkrinfo%gridtype == 'global') then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_uv_center, the iend returned from' - print *,'!!! get_ij_bounds is > imax, but our gridtype is ' - print *,'!!! global, so we are going to leave it as is and' - print *,'!!! account for the grid wrapping.' - print *,' ' - endif - - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In get_uv_center, the iend returned from' - print *,'!!! get_ij_bounds is > imax, and our gridtype is' - print *,'!!! NOT global, so we will redefine iend to imax.' - print *,' ' - endif - - iend = imax - endif - endif - - if (jend > jmax) jend = jmax - - if ( verb .ge. 3 ) then - print *,' ' - print *,'In get_uv_center, ibeg= ',ibeg,' iend= ',iend - print *,' jbeg= ',jbeg,' jend= ',jend - print *,' ilonfix= ',ilonfix,' jlatfix= ',jlatfix - endif -c - select case (level) - case (850); nlev = nlev850 ! check module level_parms for - case (700); nlev = nlev700 ! the values of these.... - case (500); nlev = nlev500 - case (1020); nlev = levsfc - end select - -c This next if statement determines how many times to interpolate -c the input grid to a smaller grid. Here are the grid sizes for -c some of the typical grids that will be used: -c -c Original grid size # of interps Final grid size -c -------------------- ------------ --------------------- -c 1.00 deg (111.19 km) 3 0.125 deg (13.9 km) -c 1.25 deg (138.99 km) 3 0.156 deg (17.4 km) -c 2.50 deg (277.99 km) 4 0.156 deg (17.4 km) - - if ((dx+dy)/2. > 1.2) then - numinterp = 4 - else if ((dx+dy)/2. > 0.50 .and. (dx+dy)/2. <= 1.2) then - numinterp = 3 - else if ((dx+dy)/2. > 0.25 .and. (dx+dy)/2. <= 0.50) then -ctpm6/14 numinterp = 2 - numinterp = 3 - else if ((dx+dy)/2. > 0.10 .and. (dx+dy)/2. <= 0.25) then -ctpm6/14 numinterp = 1 - numinterp = 3 - else if ((dx+dy)/2. <= 0.10) then - numinterp = 0 - endif - - dell = (dx+dy)/2. - imxold = iend - ibeg + 1 - jmxold = jend - jbeg + 1 - -c -------------------------------------------------------------- -c Before interpolating, make sure that all the original -c points have valid data. If they don't then exit the -c subroutine. NOTE: This is NOT checking to see if ALL the pts -c on the complete & full input grid have valid data; it only -c checks those points that are within the box returned from -c get_ij_bounds. - - do i=ibeg,iend - - if (i > imax) then - if (trkrinfo%gridtype == 'global') then - ip = i - imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In get_uv_center, the ' - print *,'!!! user-requested eastern search boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. ' - print *,'!!! PROCESSING WILL STOP. ' - print *,'!!! Subroutine location A....' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! User-requested eastern i = ',i - print *,' ' - endif - - stop 94 - endif - else - ip = i - endif - - if (i < 1) then - if (trkrinfo%gridtype == 'global') then - ip = i + imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i < 1 in subroutine get_uv_center' - print *,'!!! for a non-global grid. STOPPING....' - print *,'!!! i= ',i - print *,' ' - endif - - stop 97 - endif - endif - - do j=jbeg,jend - if (.not. valid_pt(ip,j)) goto 975 - enddo - - enddo - -c ------------------------------------ -c Now begin the interpolation process - - allocate (uold(imxold,jmxold),stat=iuo) - allocate (vold(imxold,jmxold),stat=ivo) - allocate (rlonold(imxold),stat=iloo) - allocate (rlatold(jmxold),stat=ilao) - if (iuo /= 0 .or. ivo /= 0 .or. iloo /= 0 .or. ilao /= 0) goto 970 - - do intnum = 1,numinterp - - if (intnum == 1) then - - do i=ibeg,iend - - ik = i - - if (i < 1) then - if (trkrinfo%gridtype == 'global') then - ik = i + imax !GM wrapping - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_uv_center, i < 1' - print *,'!!! for a non-global grid at AA.' - print *,'!!! i = ',i - endif - - igucret = 92 - return - endif - endif - - if (i > imax) then - if (trkrinfo%gridtype == 'global') then - ik = i - imax !GM wrapping - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_uv_center, i > imax' - print *,'!!! for a non-global grid at AA.' - print *,'!!! i = ',i,' imax= ',imax - endif - - igucret = 92 - return - endif - endif - - rlonold(i-ibeg+1) = glon(ik) - do j=jbeg,jend - uold(i-ibeg+1,j-jbeg+1) = u(ik,j,nlev) - vold(i-ibeg+1,j-jbeg+1) = v(ik,j,nlev) - if (gotlat == 'n') then - rlatold(j-jbeg+1) = glat(j) - endif - enddo - gotlat = 'y' ! Only need to fill rlatold once - enddo - - else - - deallocate (uold); deallocate (vold) - deallocate (rlonold); deallocate (rlatold) - allocate (uold(imxnew,jmxnew),stat=iuo) - allocate (vold(imxnew,jmxnew),stat=ivo) - allocate (rlonold(imxnew),stat=iloo) - allocate (rlatold(jmxnew),stat=ilao) - if (iuo /= 0 .or. ivo /= 0 .or. - & iloo /= 0 .or. ilao /= 0) goto 970 - - gotlat = 'n' - do i=1,imxnew - rlonold(i) = rlonnew(i) - do j=1,jmxnew - uold(i,j) = unew(i,j) - vold(i,j) = vnew(i,j) - if (gotlat == 'n') then - rlatold(j) = rlatnew(j) - endif - enddo - gotlat = 'y' - enddo - - imxold = imxnew - jmxold = jmxnew - deallocate (unew); deallocate (vnew) - deallocate (rlonnew); deallocate (rlatnew) - - endif - - dell = 0.5 * dell - imxnew = 2 * imxold - 1 - jmxnew = 2 * jmxold - 1 - - allocate (unew(imxnew,jmxnew),stat=iuo) - allocate (vnew(imxnew,jmxnew),stat=ivo) - allocate (rlonnew(imxnew),stat=iloo) - allocate (rlatnew(jmxnew),stat=ilao) - if (iuo /= 0 .or. ivo /= 0 .or. - & iloo /= 0 .or. ilao /= 0) goto 971 - - call bilin_int_even (imxold,jmxold,uold - & ,imxnew,jmxnew,unew,ibiret) - call bilin_int_even (imxold,jmxold,vold - & ,imxnew,jmxnew,vnew,ibiret) -c call lin_int (imxold,imxnew,rlonold,rlonnew,iliret) - call lin_int_lon (imxold,imxnew,rlonold,rlonnew,iliret) - call lin_int (jmxold,jmxnew,rlatold,rlatnew,iliret) - - chk_lonspc_old = rlonold(imxold) - rlonold(imxold - 1) - chk_latspc_old = rlatold(jmxold) - rlatold(jmxold - 1) - chk_lonspc_new = rlonnew(imxnew) - rlonnew(imxnew - 1) - chk_latspc_new = rlatnew(jmxnew) - rlatnew(jmxnew - 1) - - grid_maxlat = rlatnew(1) - grid_minlat = rlatnew(jmxnew) - grid_minlon = rlonnew(1) - grid_maxlon = rlonnew(imxnew) - - if ( verb .ge. 3 ) then - print *,' ' - print *,'In get_uv_center, intnum= ',intnum - print *,'imxold= ',imxold,' imxnew= ',imxnew - print *,'jmxold= ',jmxold,' jmxnew= ',jmxnew - print *,'Grid boundaries of modified uv grid: ' - print *,'grid_maxlat= ',grid_maxlat,' grid_minlat= ' - & ,grid_minlat - print *,'grid_maxlon= ',grid_maxlon,' grid_minlon= ' - & ,grid_minlon - endif - - enddo - -c ------------------ - - deallocate (uold); deallocate (vold) - deallocate (rlonold); deallocate(rlatold) - - if (numinterp == 0) then - - ! No interpolations were done for this fine mesh grid, but we - ! need to fill some of these arrays and define variables for - ! subsequent subroutine calls just below here that require - ! the variables imxnew, jmxnew, and the arrays unew and vnew. - - if (iend > imax) then - if (trkrinfo%gridtype == 'global') then - continue - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'ERROR in get_uv_center: Should not have gotten' - print *,'to this point in get_uv_center for a regional ' - print *,'grid; iend should not > imax here !!!' - endif - - igucret = 99 - return - endif - endif - - if (ibeg < 1) then - if (trkrinfo%gridtype == 'global') then - continue - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'ERROR in get_uv_center: Should not have gotten' - print *,'to this point in get_uv_center for a regional' - print *,'grid; ibeg should not < 1 here !!!' - endif - - igucret = 99 - return - endif - endif - - imxnew = iend - ibeg + 1 - jmxnew = jend - jbeg + 1 - allocate (unew(imxnew,jmxnew),stat=iuo) - allocate (vnew(imxnew,jmxnew),stat=ivo) - allocate (rlonnew(imxnew),stat=iloo) - allocate (rlatnew(jmxnew),stat=ilao) - if (iuo /= 0 .or. ivo /= 0 .or. - & iloo /= 0 .or. ilao /= 0) goto 971 - gotlat = 'n' - - do i=ibeg,iend - - ip = i - - if (i > imax) then - ! This HAS to be a global, wrapping grid, or else the if - ! statement a few lines up would have caught this already. - ip = i - imax ! Wrapping past GM - endif - - if (i < 1) then - ! This HAS to be a global, wrapping grid, or else the if - ! statement a few lines up would have caught this already. - ip = i + imax ! Wrapping past GM - endif - - rlonnew(i-ibeg+1) = glon(ip) - do j=jbeg,jend - unew(i-ibeg+1,j-jbeg+1) = u(i,j,nlev) - vnew(i-ibeg+1,j-jbeg+1) = v(i,j,nlev) - if (gotlat == 'n') then - rlatnew(j-jbeg+1) = glat(j) - endif - enddo - gotlat = 'y' ! Only need to fill rlatnew once - enddo - - endif - - grid_maxlat = rlatnew(1) - grid_minlat = rlatnew(jmxnew) - grid_minlon = rlonnew(1) - grid_maxlon = rlonnew(imxnew) - - if ( verb .ge. 3 ) then - print *,'Grid boundaries of modified uv grid in get_uv_center:' - print *,'grid_maxlat= ',grid_maxlat,' grid_minlat= ',grid_minlat - print *,'grid_maxlon= ',grid_maxlon,' grid_minlon= ',grid_minlon - endif - - allocate (vmag(imxnew,jmxnew),stat=ivm) - allocate (lbi(imxnew,jmxnew),stat=ilb) - if (ivm /= 0 .or. ilb /= 0) goto 972 - call calc_vmag (unew,vnew,imxnew,jmxnew,vmag,icvret) - deallocate (unew); deallocate (vnew) - - lbi = .TRUE. - - if ( verb .ge. 3 ) then - print *,' ' - print *,'Before call to find_maxmin, imxnew= ',imxnew - & ,'jmxnew= ',jmxnew,' ist= ',ist - write (6,171) dell,uvgeslon,360.-uvgeslon,uvgeslat - 171 format (' dell= ',f7.3,' uvgeslon= ',f8.3,'E (',f8.3,'W)' - & ,' uvgeslat= ',f8.3) - endif - -c Note that in the next call, I pass the 'global' argument to -c find_maxmin. This defines what type of grid it is, so that the -c proper grid_buffer can be chosen. This grid_buffer is designed -c to avoid having a center be chosen too close to the grid -c boundary. However, in the case of vmag here, we are only using -c a small subgrid, and we want to make sure we use *all* points -c in that subgrid for searching, and that will occur if we set that -c calling argument to 'global' as opposed to 'regional'. - - call find_maxmin (imxnew,jmxnew,dell,dell,'vmag' - & ,vmag,'min',ist,uvgeslon,uvgeslat,rlonnew,rlatnew,lbi - & ,trkrinfo,cflag,ctlon,ctlat,xval,grid_maxlat,grid_minlat - & ,grid_maxlon,grid_minlon,'global',ifmret) - deallocate (vmag); deallocate (lbi) - deallocate (rlonnew); deallocate (rlatnew) -c - if (ifmret == 0) then - goto 995 - else - igucret = ifmret - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in get_uv_center in call to find_maxmin' - print *,'!!! storm num = ',ist,' igucret = ',igucret - endif - - goto 998 - endif -c - 970 continue - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR ALLOCATING either uold, vold,' - print *,'!!! rlonold or rlatold in get_uv_center' - print *,'!!! Storm number = ',ist - print *,'!!! intnum= ',intnum - print *,'!!! imxnew= ',imxnew,' jmxnew= ',jmxnew - print *,'!!! imxold= ',imxold,' jmxold= ',jmxold - print *,'!!! iuo= ',iuo,' ivo= ',ivo - print *,'!!! iloo= ',iloo,' ilao= ',ilao - endif - - igucret = 97 - goto 998 - - 971 continue - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR ALLOCATING either unew, vnew,' - print *,'!!! rlonnew or rlatnew in get_uv_center' - print *,'!!! Storm number = ',ist - print *,'!!! intnum= ',intnum - print *,'!!! imxnew= ',imxnew,' jmxnew= ',jmxnew - print *,'!!! imxold= ',imxold,' jmxold= ',jmxold - print *,'!!! iuo= ',iuo,' ivo= ',ivo - print *,'!!! iloo= ',iloo,' ilao= ',ilao - endif - - igucret = 97 - goto 998 - - 972 continue - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR ALLOCATING either vmag or lbi in ' - print *,'!!! subroutine get_uv_center' - print *,'!!! Storm number = ',ist - print *,'!!! imxnew= ',imxnew,' jmxnew= ',jmxnew - print *,'!!! ivm= ',ivm,' ilb= ',ilb - endif - - igucret = 97 - goto 998 - - 975 continue - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! Inside get_uv_center, at least one of the points' - print *,'!!! is not a valid data point. This point may be ' - print *,'!!! outside the valid data bounds of a regional grid' - print *,'!!! i= ',i,' j= ',j - print *,'!!! Storm number = ',ist - endif - - igucret = 98 - goto 998 -c - 995 continue - igucret = 0 -c - 998 continue - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_uv_guess (guesslon,guesslat,clon,clat - & ,calcparm,ist,ifh,maxstorm - & ,uvgeslon,uvgeslat,igugret) -c -c ABSTRACT: The purpose of this subroutine is to get a modified -c first guess lat/lon position before searching for the -c minimum in the wind field. The reason for doing this is -c to better refine the guess and avoid picking up a wind -c wind minimum far away from the center. So, use the -c first guess position (and give it strong weighting), and -c then also use the fix positions for the current time -c (give the vorticity centers stronger weighting as well), -c and then take the average of these positions. -c -c INPUT: -c guesslon guess longitude for this forecast time -c guesslat guess latitude for this forecast time -c clon array with center longitude fixes for the various parms -c clat array with center latitude fixes for the various parms -c calcparm logical; tells whether or not a parm has a valid fix -c at this forecast hour -c ist index for current storm -c ifh index for current forecast hour -c maxstorm max # of storms that can be handled -c -c OUTPUT: -c uvgeslon contains modified guess longitude position at which to -c look for the wind minimum -c uvgeslat contains modified guess latitude position at which to -c look for the wind minimum -c igugret return code for this subroutine (0=normal) -c---- -c - USE set_max_parms; USE level_parms; USE error_parms - USE verbose_output - - logical(1) calcparm(maxtp,maxstorm) - real clon(maxstorm,maxtime,maxtp) - real clat(maxstorm,maxtime,maxtp) - real uvgeslon, uvgeslat - real guesslon,guesslat,degrees - integer gt345_ct,lt15_ct - - sumlon = 0.0 - sumlat = 0.0 - ict = 0 - gt345_ct = 0 - lt15_ct = 0 - -c NOTE: We need to be careful in this routine when averaging -c the longitudes together, in case we cross the greenwich -c meridian, because then we may be averaging 345+ lons with -c lons that are less than 15, giving incorrect results. -c Therefore, check for this, and if it occurs, add 360 onto -c any of the <15 lons (add it twice for those lons being -c counted twice (guesslon and the vorticity centers)). - -c Weight the uv guess position by counting the storm's guess -c position twice. - - sumlon = sumlon + 2.*guesslon - sumlat = sumlat + 2.*guesslat - ict = ict + 2 - - if (guesslon > 345.) then - gt345_ct = gt345_ct + 1 - endif - if (guesslon < 15.) then - lt15_ct = lt15_ct + 2 ! Yes, 2 is correct.... - endif - - do ip = 1,maxtp - if ((ip > 2 .and. ip < 7) .or. ip == 10) then - cycle ! because 3-6 are for 850 & 700 u & v and 10 is - ! for surface wind magnitude. - else - if (calcparm(ip,ist)) then - call calcdist (guesslon,guesslat,clon(ist,ifh,ip) - & ,clat(ist,ifh,ip),dist,degrees) - - if (dist < uverrmax) then -c -c Give the vorticity centers 2x weighting as well -c - if (ip == 1 .or. ip == 2 .or. ip == 11) then - sumlon = sumlon + 2.*clon(ist,ifh,ip) - sumlat = sumlat + 2.*clat(ist,ifh,ip) - ict = ict + 2 - if (clon(ist,ifh,ip) > 345.) then - gt345_ct = gt345_ct + 1 - endif - if (clon(ist,ifh,ip) < 15.) then - lt15_ct = lt15_ct + 2 ! Yes, 2 is correct... - endif - else - sumlon = sumlon + clon(ist,ifh,ip) - sumlat = sumlat + clat(ist,ifh,ip) - ict = ict + 1 - if (clon(ist,ifh,ip) > 345.) then - gt345_ct = gt345_ct + 1 - endif - if (clon(ist,ifh,ip) < 15.) then - lt15_ct = lt15_ct + 1 ! Only 1 for non-zeta parms - endif - endif - - endif - - endif - endif - enddo -c - if (ict > 0) then - if (gt345_ct > 0 .and. lt15_ct > 0) then - ! We have some parms left of the GM and some to the right, - ! so we will add (360*lt15ct) to the sum of the lons (sumlon) - uvgeslon = (sumlon + (360.*float(lt15ct)))/ ict - else - uvgeslon = sumlon / ict - endif - if (uvgeslon >= 360.0) then - uvgeslon = uvgeslon - 360. - endif - uvgeslat = sumlat / ict - igugret = 0 - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in get_uv_guess, ict not > 0, ict= ',ict - print *,'!!! vmag center will not be calculated for this' - print *,'!!! storm -- at least not at this level' - print *,'!!! Storm number = ',ist - endif - - igugret = 91 - endif -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine calc_vmag (xu,xv,imx,jmx,wspeed,icvret) -c -c ABSTRACT: This subroutine calculates the magnitude of the wind -c speed for an array of points, given real u and real v arrays. -c - real xu(imx,jmx),xv(imx,jmx),wspeed(imx,jmx) -c - do i=1,imx - do j=1,jmx - wspeed(i,j) = sqrt( xu(i,j)*xu(i,j) + xv(i,j)*xv(i,j) ) - enddo - enddo -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine bilin_int_even (imxold,jmxold,xold - & ,imxnew,jmxnew,xnew,ibiret) -c -c ABSTRACT: This subroutine does a bilinear interpolation on a -c grid of evenly spaced data. Do NOT attempt to use this subroutine -c with data that are not evenly spaced or you will get unpredictable -c results. -c - real xold(imxold,jmxold), xnew(imxnew,jmxnew) -c -c -c --------------------------------------------------------------------- -c Latitude ----> | -c | -c L O e O e O e O e O | O: original point from input array -c o | -c n e 1 2 1 2 1 2 1 e | 1: interpolated, primary inter. pt -c g | -c i O 2 O 2 O 2 O 2 O | e: interpolated edge point -c t | -c u e 1 2 1 2 1 2 1 e | 2: interpolated, secondary inter. pt -c d | -c e O 2 O 2 O 2 O 2 O | Interpolations are done in the order -c | as indicated above; First, the input -c | e 1 2 1 2 1 2 1 e | 'O' pts are placed onto the new, -c | | larger grid. From that, the '1' pts -c | O 2 O 2 O 2 O 2 O | can be interpolated. Next, the edge -c | | (e) pts are interpolated using an -c v e 1 2 1 2 1 2 1 e | interpolation of two 'O' pts and one -c | '1' pt. Finally, the '2' pts are -c O e O e O e O e O | done using the 2 surrounding '0' and -c | '1' pts. Bilinear interpolation is -c | made incredibly easier by the fact -c | that the grid is evenly spaced. -c --------------------------------------------------------------------- -c NOTE: Remember that the arrays that are read in are indexed as -c (lon,lat), so that in the diagram above, pt (1,1) is at the upper -c left and pt (imax,jmax) is at the lower right, and each column is -c a new latitude and each row is a new longitude. -c -c ----------------------------------------------------------------- -c Put original (O) values from input array into new, expanded array -c ----------------------------------------------------------------- -c - do i=1,imxold - do j=1,jmxold - xnew(2*i-1,2*j-1) = xold(i,j) - enddo - enddo -c -c ---------------------------------------------- -c Interpolate to get primary interior (1) points -c ---------------------------------------------- -c - do i=1,imxold-1 - do j=1,jmxold-1 - xnew(2*i,2*j) = 0.25 * (xnew(2*i-1,2*j-1) + xnew(2*i+1,2*j-1) - & + xnew(2*i+1,2*j+1) + xnew(2*i-1,2*j+1)) - enddo - enddo -c -c --------------------------- -c Interpolate edge (e) points -c --------------------------- -c -c ... Northernmost 'e' points ... -c - j=1 - do i=1,imxold-1 - xnew(2*i,j) = 0.3333 * (xnew(2*i-1,j) + xnew(2*i+1,j) - & + xnew(2*i,2)) - enddo -c -c ... Southernmost 'e' points ... -c - j = 2*jmxold - 1 - do i=1,imxold-1 - xnew(2*i,j) = 0.3333 * (xnew(2*i-1,j) + xnew(2*i+1,j) - & + xnew(2*i,j-1)) - enddo -c -c ... Westernmost 'e' points ... -c - i=1 - do j=1,jmxold-1 - xnew(i,2*j) = 0.3333 * (xnew(i,2*j-1) + xnew(i,2*j+1) - & + xnew(2,2*j)) - enddo -c -c ... Easternmost 'e' points ... -c - i = 2*imxold - 1 - do j=1,jmxold-1 - xnew(i,2*j) = 0.3333 * (xnew(i,2*j-1) + xnew(i,2*j+1) - & + xnew(i-1,2*j)) - enddo -c -c ------------------------------------------------ -c Interpolate to get secondary interior (2) points -c ------------------------------------------------ -c - do j=2,2*jmxold-2 - istep = mod(j+1,2) - do i=istep+2,2*imxold-2,2 - xnew(i,j) = 0.25 * (xnew(i-1,j) + xnew(i,j-1) + xnew(i+1,j) - & + xnew(i,j+1)) - enddo - enddo -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine lin_int (ioldmax,inewmax,xold,xnew,iliret) -c -c ABSTRACT: This subroutine linearly interpolates evenly spaced -c data from one grid to another. -c - real xold(ioldmax), xnew(inewmax) -c -c First just copy points from old grid onto new, larger grid -c - do i=1,ioldmax - xnew(2*i-1) = xold(i) - enddo -c -c Now interpolate to get the in-between points -c - do i=1,ioldmax-1 - xnew(2*i) = 0.5 * (xnew(2*i-1) + xnew(2*i+1)) - enddo -c - return - end - -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine lin_int_lon (ioldmax,inewmax,xold,xnew,iliret) -c -c ABSTRACT: This subroutine linearly interpolates evenly spaced -c data from one grid to another. This particular -c routine is specifically used for interpolating -c longitudes, and it factors in the possibility of -c interpolating across the greenwich meridian. -c - real xold(ioldmax), xnew(inewmax) -c -c First just copy points from old grid onto new, larger grid -c - do i=1,ioldmax - xnew(2*i-1) = xold(i) - enddo -c -c Now interpolate to get the in-between points, and make the -c necessary adjustment when interpolating a longitude between, -c for example, 359.5 and 0.0. -c - do i=1,ioldmax-1 - if (xnew(2*i-1) > 350. .and. xnew(2*i+1) < 10.) then - xnew(2*i) = 0.5 * (xnew(2*i-1) + (360. + xnew(2*i+1))) - else - xnew(2*i) = 0.5 * (xnew(2*i-1) + xnew(2*i+1)) - endif - enddo -c - return - end - -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_zeta_values (fixlon,fixlat,imax,jmax,dx,dy - & ,trkrinfo,imeanzeta,igridzeta,readflag - & ,valid_pt,ist,ifh,maxstorm,inp,igzvret) -c -c ABSTRACT: This subroutine finds the maximum and mean zeta values -c at 850 & 700 mb, near a storm center. It is called from -c subroutine tracker, and its purpose is to report these values -c that will then be written out to a special, modified version of -c the atcfunix file. - - USE tracked_parms; USE radii; USE trig_vals; USE set_max_parms - USE trkrparms; USE level_parms; USE grid_bounds; USE inparms - USE verbose_output - - implicit none - - type (trackstuff) trkrinfo - type (datecard) inp - - logical(1) readflag(14),valid_pt(imax,jmax),compflag - character cmaxmin*3,cvort_maxmin*3 - real fixlon(maxstorm,maxtime),fixlat(maxstorm,maxtime) - real gridpoint_maxmin,xmeanzeta,dx,dy,re,ri,parmlon,parmlat - integer igridzeta(nlevm1),imeanzeta(nlevm1) - integer n,ix1,ix2,ilev,npts,imax,jmax,igzvret,ilonfix,jlatfix - integer idum,jdum,ibeg,jbeg,iend,jend,igiret,icount,iuret - integer ifilret,ist,ifh,ifmret,maxstorm - -c First, call get_ij_bounds in order to get the (i,j) coordinates -c of the (fixlon,fixlat) position that we need to search around. -c These (i,j) coordinates are returned as ilonfix and jlatfix. - - npts = imax * jmax - - call get_ij_bounds (npts,0,ridlm,imax,jmax - & ,dx,dy,glatmax,glatmin,glonmax,glonmin - & ,fixlon(ist,ifh),fixlat(ist,ifh),trkrinfo - & ,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) - - if (ilonfix > imax) then - if (trkrinfo%gridtype == 'global') then - ilonfix = ilonfix - imax ! If wrapping past GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In get_zeta_values, the ' - print *,'!!! user-requested eastern boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. ' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! eastern ilonfix = ',ilonfix - print *,'!!! ' - print *,' ' - endif - - igzvret = 99 - return - endif - endif - - if (ilonfix < 1) then - if (trkrinfo%gridtype == 'global') then - ilonfix = ilonfix + imax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: ilonfix < 1 in subroutine' - print *,'!!! get_zeta_values for a non-global grid.' - print *,'!!! ilonfix= ',ilonfix - print *,'!!! ' - print *,' ' - endif - - igzvret = 99 - return - endif - endif - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,601) - write (6,603) - write (6,605) - write (6,607) - write (6,609) - write (6,*) ' ' - write (6,613) ist,ifh - write (6,615) fixlon(ist,ifh),360.-fixlon(ist,ifh) - & ,fixlat(ist,ifh) - write (6,617) ilonfix,jlatfix - endif - - 601 format(1x,'#---------------------------------------------------#') - 603 format(1x,'# Entering loop to determine the mean and gridpoint #') - 605 format(1x,'# max zeta values at 850 and 700 mb for the purpose #') - 607 format(1x,'# of reporting them on the modified atcfunix file. #') - 609 format(1x,'#---------------------------------------------------#') - 613 format(1x,'--- In get_zeta_values, ist= ',i3,' ifh= ',i3) - 615 format(1x,' Fix location for this time: ',f7.2,'E (',f6.2,'W)' - & ,2x,f7.2) - 617 format(1x,' ilonfix= ',i4,' jlatfix= ',i4) - - report_zeta_loop: do n=1,2 - - gridpoint_maxmin = -99.0 - xmeanzeta = -99.0 - compflag = .true. - - select case (n) - case (1); ilev=850 ! For 850 mb - case (2); ilev=700 ! For 700 mb - end select - - if (zeta(ilonfix,jlatfix,n) > -9990.0) then - - ! ------------------------------------------- - ! We have valid zeta data for this level, so - ! we first call barnes now to get the mean zeta - ! surrounding our found center position. - ! ------------------------------------------- - - if (fixlat(ist,ifh) > 0.0) then - cvort_maxmin = 'max' - else - cvort_maxmin = 'min' - endif - - call find_maxmin (imax,jmax,dx,dy,'zeta' - & ,zeta(1,1,n),cvort_maxmin,ist,fixlon(ist,ifh) - & ,fixlat(ist,ifh),glon,glat,valid_pt,trkrinfo - & ,compflag,parmlon,parmlat,xmeanzeta - & ,glatmax,glatmin,glonmax,glonmin,inp%modtyp,ifmret) - if (ifmret == 0) then ! Out of regional grid bounds - imeanzeta(n) = int ((xmeanzeta * 1e6) + 0.5) - else - imeanzeta(n) = -99 - igridzeta(n) = -99 - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,519) - write (6,520) - write (6,521) - endif - - 519 format (1x,' The call to find_maxmin in get_zeta_values') - 520 format (1x,' returned a nonzero return code. The search') - 521 format (1x,' for zeta values will not be done.') - exit report_zeta_loop ! If out of grid bounds at 850, - ! then will also be out at 700... - endif - else - imeanzeta(n) = -99 - igridzeta(n) = -99 - exit report_zeta_loop - endif - - if ( verb .ge. 3 ) then - write (6,621) n,ilev,xmeanzeta,imeanzeta(n) - 621 format (1x,'+++ RPT_MEAN_ZETA: n= ',i2,' lev= ',i4 - & ,' xmeanzeta= ',f9.6,' imeanzeta= ',i4) - write (6,*) ' --- mean zeta raw = ',xmeanzeta - endif - - ! ----------------------------------------------- - ! Call fix_latlon_to_ij to get the nearest actual - ! raw (grid) zeta data value, not the mean value. - ! ----------------------------------------------- - - call fix_latlon_to_ij (imax,jmax,dx,dy - & ,zeta(1,1,n),cvort_maxmin,valid_pt,fixlon(ist,ifh) - & ,fixlat(ist,ifh),xmeanzeta,idum,jdum - & ,gridpoint_maxmin,'tracker' - & ,glatmax,glatmin,glonmax,glonmin - & ,trkrinfo,ifilret) - if (ifilret == 0) then - igridzeta(n) = int ((gridpoint_maxmin * 1e6) + 0.5) - else - igridzeta(n) = -99 - endif - - if ( verb .ge. 3 ) then - write (6,623) n,ilev,gridpoint_maxmin,igridzeta(n),ifilret - 623 format (1x,'+++ RPT_GRID_ZETA: n= ',i2,' lev= ',i4 - & ,' grid zeta= ',f9.6,' igrid zeta= ',i4,' ifilret= ',i3) - write (6,*) ' --- grid zeta raw= ',gridpoint_maxmin - endif - - enddo report_zeta_loop - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,631) - write (6,633) - write (6,635) - write (6,*) ' ' - endif - - 631 format(1x,'#---------------------------------------------------#') - 633 format(1x,'# End of loop to get 850 & 700 zeta for atcf file. #') - 635 format(1x,'#---------------------------------------------------#') - - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine find_maxmin (imax,jmax,dx,dy,cparm,fxy,maxmin,ist - & ,guesslon,guesslat,rlonv,rlatv,valid_pt,trkrinfo - & ,compflag,ctlon,ctlat,xval,grid_maxlat,grid_minlat - & ,grid_maxlon,grid_minlon,cmodel_type,ifmret) -c -c This routine finds the location (clon,clat) of and value of the -c the max or min of fxy in the vicinity of slon,slat. The value of -c the input flag maxmin determines whether to look for a max or a -c min value. The max/min is determined by finding the point which -c gives the max/min value of a single point barnes analysis of fxy -c with e-folding radius re (km) and influence radius ri (km). The -c initial search is restricted to a radius rads around the point -c (slon,slat) on a grid with lon,lat spacing dx and dy. The location -c is refined by reducing the spacing of the search grid by a factor -c of two, nhalf times. -c -c INPUT: -c imax Num pts in i direction on input grid -c jmax Num pts in j direction on input grid -c dx Grid spacing in i-direction on input grid -c dy Grid spacing in j-direction on input grid -c cparm Char string indicating what parm is being passed in -c fxy Real array of data values -c maxmin Char string indicating whether to search for a max or min -c ist Number of the storm being processed -c guesslon Guess longitude of the storm -c guesslat Guess latitude of the storm -c rlonv Array containing longitude values of input grid points -c rlatv Array containing latitude values of input grid points -c valid_pt Logical bitmap masking non-valid grid points. This is a -c concern for the regional models, which are interpolated -c from Lam-Conf or NPS grids onto lat/lon grids, leaving -c grid points around the edges which have no valid data. -c trkrinfo derived type detailing user-specified grid info -c grid_maxlat northernmost latitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset. -c grid_minlat southernmost latitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset. -c grid_maxlon easternmost longitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset. -c grid_minlon westernmost longitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset. -c cmodel_type character, 'global' or 'regional' -c -c INPUT/OUTPUT: -c compflag Logical; continue processing this storm or not (would be -c set to FALSE if, for example, the guess position is -c outside the domain of a regional grid) -c -c OUTPUT: -c ctlon Center longitude of storm found for this parameter -c ctlat Center latitude of storm found for this parameter -c xval Max or Min value found at the (ctlon,ctlat) -c ifmret Return code from this subroutine -c -c UPDATE DEC 2009: For the HFIP HRH testing, it was found that -c due to the very limited domain size of some of the models, the -c barnes scheme was allowing points close to the grid boundaries -c to erroneously be selected as the center point. We add in a -c buffer (grid_buffer) here to prevent this from occurring. - - USE radii; USE grid_bounds; USE set_max_parms; USE level_parms - USE trig_vals; USE trkrparms - USE verbose_output - - implicit none -c - type (trackstuff) trkrinfo - - character(*) maxmin,cparm,cmodel_type - logical(1) compflag, valid_pt(imax,jmax) - real fxy(imax,jmax),rlonv(imax),rlatv(jmax) - real ctlon,ctlat,degrees,dx,dy,guesslon,guesslat,xval - real rads,re,ri,dell,fmax,fmin,rlatt,rlont,dist,ftemp,ritmp - real vmag_latmax,vmag_latmin,vmag_lonmax,vmag_lonmin,retmp - real tlon,tlat,grid_buffer,temp_grid_minlon,temp_guesslon - real grid_maxlat,grid_minlat,grid_maxlon,grid_minlon - integer imax,jmax,ist,bskip1,bskip2,iskip,ifmret,npts,maxvgrid - integer ibeg,iend,jbeg,jend,ilonfix,jlatfix,igiret,icount,iret - integer ibct,ibarnes_loopct,i,j,k,iix,jix,jvlatfix,ivlonfix - integer nhalf,icvpret - integer date_time(8) - character (len=10) big_ben(3) -c - ifmret = 0 - nhalf = 5 -c -c ----------------------------------------------------------- -c Set initial parms for use in find_maxmin. -c Different radii used for V magnitude than for other parms, -c see discussion in module radii for more details. -c - if (cparm == 'vmag') then - -c NOTE: The maxvgrid variable determines what size grid to send -c to subroutine barnes. e.g., maxvgrid = 8 means send an -c 8x8 grid; maxvgrid = 12 means send a 12x12 grid. For -c ultra-fine mesh grids (finer than 0.04 deg, or 1/25 deg), -c we expand to 12 in order to sample a few more points -c around each grid point. - - if ((dx+dy)/2. > 0.04) then - maxvgrid = 8 - else - maxvgrid = 12 - endif - - rads = rads_vmag; re = retrk_vmag; ri = ritrk_vmag - re = (float(maxvgrid)/4) * ((dx+dy)/2. * dtk) ! Basically, this -c sets re equal to half the distance from the gridpoint -c in question to the farthest point that will be -c sampled when the (maxvgrid x maxvgrid) grid is passed -c on to subroutine barnes. Thus, just ignore the -c parameter retrk_vmag, and use this instead. - else if ((dx+dy)/2. < 1.26 .and. (dx+dy)/2. >= 0.40) then - rads = rads_most; re = retrk_most; ri = ritrk_most - else if ((dx+dy)/2. < 0.40 .and. (dx+dy)/2. >= 0.10) then -ctpm6/14 rads = rads_fine; re = retrk_most; ri = ritrk_most - rads = rads_most; re = retrk_most; ri = ritrk_most - else if ((dx+dy)/2. < 0.10) then - rads = rads_hres; re = retrk_hres; ri = ritrk_most - else - rads = rads_coarse; re = retrk_coarse; ri = ritrk_coarse - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,'At beg of find_maxmin, rads= ',rads,' re= ',re - & ,' ri= ',ri,' cparm= ',cparm,' dx= ',dx,' dy= ',dy - endif - - dell = (dx+dy)/2. - npts = rads/(dtk*dell) - fmax = -1.0e+15; fmin = 1.0e+15 - ctlon = 0.0; ctlat = 0.0 - - if (npts == 0) npts = 1 - -c For the barnes analysis, we will want to speed things up for -c finer resolution grids. We can do this by skipping some of -c the points in the barnes analysis. - - if (dell > 0.20) then -ctpm6/14 bskip1 = 2 - bskip1 = 1 - bskip2 = 1 - else if (dell > 0.10 .and. dell <= 0.20) then - bskip1 = 4 - bskip2 = 2 - else if (dell > 0.05 .and. dell <= 0.10) then - bskip1 = 6 - bskip2 = 3 - else if (dell > 0.03 .and. dell <= 0.05) then - bskip1 = 10 - bskip2 = 5 - else if (dell <= 0.03) then - bskip1 = 15 - bskip2 = 5 - endif - - if (cparm == 'vmag') then - bskip1 = 1 - bskip2 = 1 - endif - -c If input parm is vmag, we've already done the minimizing by -c interpolating to the fine mesh grid, so we'll simply send the -c bounds that were input to this subroutine to barnes -c as boundaries for the array to search. For all other parms, -c however, no minimizing has been done yet, so we need to call -c get_ij_bounds to set the boundaries for a much smaller grid that -c surrounds the storm (as opposed to having subroutine barnes -c search the entire global grid). - - if (cparm == 'vmag') then - - if ( verb .ge. 3 ) then - print *,'In find_maxmin, jmax= ',jmax,' imax= ',imax - endif - - ibeg=1; jbeg=1; iend=imax; jend=jmax - vmag_latmax = rlatv(1) ! N-most lat of vmag subgrid - vmag_latmin = rlatv(jmax) ! S-most lat of vmag subgrid - vmag_lonmin = rlonv(1) ! W-most lon of vmag subgrid - vmag_lonmax = rlonv(imax) ! E-most lon of vmag subgrid - - if ( verb .ge. 3 ) then - write (6,44) vmag_latmax,vmag_lonmin,360.-vmag_lonmin - & ,imax,jmax - write (6,46) vmag_latmin,vmag_lonmax,360.-vmag_lonmax - endif - - 44 format (' vmag_latmax= ',f8.3,' vmag_lonmin= ',f8.3 - & ,'E (',f8.3,'W) imax= ',i4,' jmax= ',i4) - 46 format (' vmag_latmin= ',f8.3,' vmag_lonmax= ',f8.3 - & ,'E (',f8.3,'W)') - - if (vmag_lonmin > 330. .and. vmag_lonmax < 30.) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! WARNING: For a case of find_maxmin, our vmag' - print *,'!!! subgrid is straddling the GM. The code should' - print *,'!!! be able to handle this, but if strange errors' - print *,'!!! are occurring, check into the code either here' - print *,'!!! in find_maxmin or get_uv_ctr.' - print *,' ' - endif - endif - - npts = ceiling(rads/(dtk*dell)) - - else - - call get_ij_bounds (npts,0,ri,imax,jmax,dx,dy - & ,grid_maxlat,grid_minlat,grid_maxlon,grid_minlon - & ,guesslon,guesslat - & ,trkrinfo,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) - - if (igiret /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in find_maxmin from call to ' - print *,'!!! get_ij_bounds, stopping processing for' - print *,'!!! storm number ',ist - endif - - ifmret = 92 - return - endif - - endif - -c -c --------------------------------------------------------------- -c - if ( verb .ge. 3 ) then - print *,' ' - write (6,39) guesslon,360.-guesslon,guesslat - 39 format (' guesslon= ',f8.3,'E (',f8.3,'W) guesslat= ',f8.3) - if (cparm == 'vmag') then - print *,'ilonfix= (unused) jlatfix= (unused)' - & ,' npts= ',npts - print *,'ilonfix and jlatfix are meaningless for computing' - print *,'vmag, so ignore the large values you see for them.' - else - print *,'ilonfix= ',ilonfix,' jlatfix= ',jlatfix - & ,' npts= ',npts - endif - print *,'ibeg= ',ibeg,' jbeg= ',jbeg,' imax= ',imax - print *,'iend= ',iend,' jend= ',jend,' jmax= ',jmax - endif - - call date_and_time (big_ben(1),big_ben(2),big_ben(3) - & ,date_time) - - if ( verb .ge. 3 ) then - write (6,31) date_time(5),date_time(6),date_time(7) - 31 format (1x,'TIMING: find_maxmin 1 ',i2.2,':',i2.2,':',i2.2) - endif - - ibct=0 - ibarnes_loopct = 0 - - if (grid_minlon > 330. .and. grid_maxlon < 30.) then - ! Our grid is straddling over the GM. This can happen either - ! with a global grid or with a regional grid. How can it happen - ! for a global grid? Well, for the case in which this routine - ! is called from subroutine get_uv_center, where a smaller - ! subgrid of data is passed in, and that smaller subgrid may - ! straddle the GM. Anyway, we need a workaround. - ! This workaround will put the minimum longitude - ! in terms of a negative number, e.g., as opposed to being say, - ! 354, it will be -6. You can then leave the grid_maxlon as is. - temp_grid_minlon = grid_minlon - 360. - if (guesslon > 330.) then - ! If our grid is straddling the GM and we have adjusted the - ! grid_minlon to be a negative number, then we also need to - ! check on the guesslon and adjust it if it is also to west - ! of the GM. - temp_guesslon = guesslon - 360. - else - temp_guesslon = guesslon - endif - else - temp_grid_minlon = grid_minlon - temp_guesslon = guesslon - endif - - jix = 0 - - if (cmodel_type == 'regional') then - grid_buffer = 0.30 - else - grid_buffer = 0.0 - endif - - jloop: do j=-npts,npts,bskip1 - - jix = jix + 1 - rlatt = guesslat + dell*float(j) - - iix = 0 - -c vlat(jix) = rlatt - - iloop: do i=-npts,npts,bskip1 - - iix = iix + 1 - rlont = temp_guesslon + dell*float(i) - -c if (cparm == 'vmag') then -c print *,' ' -c print '(a16,i6,a4,i6,2(a8,f8.3),a12,f8.3)' -c & ,'in find_max, i= ',i -c & ,' j= ',j,' rlatt= ',rlatt,' rlont= ',rlont -c & ,' 360-rlont= ',360.-rlont -c endif - -c If any points in the search grid would extend beyond the grid -c boundaries, then check and see if this is global grid. If it -c is, and the extension occurred in the i-direction, then adjust -c the longitude to allow for grid wrapping. If it is a regional -c grid, then just cycle the iloop. In previous versions of the -c tracker, we would exit with an error message, but doing it -c this way allows us to continue tracking some systems that may -c be close to the grid boundary. Also, remember to factor in -c the grid_buffer discussed in the doc block above for this -c subroutine. - - if (rlont >= (grid_maxlon + dx - grid_buffer)) then - if (trkrinfo%gridtype == 'global') then - if (cparm == 'vmag') then - cycle iloop ! We are off the small vmag subgrid - else - rlont = rlont - 360. ! We just GM-wrapped for the full, - ! regular, global grid - endif - else - cycle iloop - endif - endif - - if (rlont < (temp_grid_minlon + grid_buffer)) then - if (trkrinfo%gridtype == 'global') then - if (cparm == 'vmag') then - cycle iloop ! We are off the small vmag subgrid - else - rlont = rlont + 360. ! We just GM-wrapped for the full, - ! regular, global grid - endif - else - cycle iloop - endif - endif - - if (rlatt > (grid_maxlat - grid_buffer) .or. - & rlatt < (grid_minlat + grid_buffer)) then - cycle iloop - endif - -c Make sure that the point being investigated here as a -c potential center has valid data at that point. That is, for -c some hires regional grids that have been rotated/converted -c from a non-latlon grid to a latlon grid, there can be -c locations within the (i,j) space that do not have valid data -c at them. It makes no sense to consider a point such as this -c as a potential center. -c There is another simpler case here that we are watching out -c for. This is simply the case, again for model data where we -c only have the innermost nest. Depending on what we choose -c for the variable "rads" above, with the way that "npts" is -c defined for these iloops and jloops that we're in, we may be -c searching over points that are simply well off the grid. -c Therefore, it is critical to run through this -c check_valid_point subroutine to make sure that we're not -c going to inadvertantly be performing an analysis at one of -c these "off-grid" points. So.... if the return code from -c check_valid_point comes back non-zero, simply cycle iloop -c and go to the next point. - - call check_valid_point (imax,jmax,dx,dy,fxy,maxmin,valid_pt - & ,rlont,rlatt,grid_maxlat,grid_minlat,grid_maxlon - & ,temp_grid_minlon,trkrinfo,icvpret) - - if (icvpret /= 0) then - if ( verb .ge. 1 ) then - print *,'!!! NOT A VALID PT: icvpret= ',icvpret - endif - - cycle iloop - endif - - call calcdist(rlont,rlatt,temp_guesslon,guesslat,dist,degrees) - if (dist .gt. rads) cycle iloop - - if (cparm == 'vmag') then - -c This next bit of code gets the ij coordinates for an 8x8 -c box around the current point under consideration. These ij -c coordinates are sent to barnes so that barnes only loops -c 64 times, as opposed to nearly 10,000 if the whole 97x97 -c array were sent. So, fix rlatt to the grid point just -c northward of rlatt and fix rlont to the grid point just -c eastward of rlont. Note that this makes for a modified -c barnes analysis in that we're sort of specifying ahead of -c time exactly which grid points will be included and we'll -c be excluding some points that would be near the periphery -c of each (rlont,rlatt)'s range, but as long as we're consis- -c tent and do it this way for each point, it's well worth the -c trade-off in cpu time. Parameter maxvgrid determines what -c size array to send to barnes (maxvgrid=8 means 8x8) - - jvlatfix = int((vmag_latmax - rlatt)/dy + 1.) - ivlonfix = int((rlont - temp_grid_minlon)/dx + 2.) -c ivlonfix = int((rlont - vmag_lonmin)/dx + 2.) - - ibeg = ivlonfix - (maxvgrid/2) - iend = ivlonfix + (maxvgrid/2 - 1) - jbeg = jvlatfix - (maxvgrid/2 - 1) - jend = jvlatfix + (maxvgrid/2) - - if (ibeg < 1 .or. jbeg < 1 .or. - & iend > imax .or. jend > jmax) then - - ! DO NOT quit if we find a boundary outside the grid - ! bounds. Rather, just set the J violating bound(s) to - ! the min or max limit, and for I bounds, allow the - ! program to continue down to subsequent code below, - ! provided it's a global grid. - -c print *,'!!! ' -c print *,'!!! Before vmag adjustments, boundaries are: ' -c print *,'!!! rlont= ',rlont,' rlatt= ',rlatt,' dx= ',dx -c print *,'!!! temp_grid_minlon= ',temp_grid_minlon -c print *,'!!! vmag_latmax= ',vmag_latmax -c print *,'!!! ivlonfix = ',ivlonfix,' jvlatfix = ',jvlatfix -c print *,'!!! ibeg= ',ibeg,' iend= ',iend,' imax= ',imax -c print *,'!!! jbeg= ',jbeg,' jend= ',jend,' jmax= ',jmax - - if (ibeg < 1) then - if (trkrinfo%gridtype == 'global') then - continue ! If wrapping past GM, there is code below - ! in this find_maxmin routine that can - ! modify the indices appropriately. So... - ! do nothing here. - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In find_maxmin, the ' - print *,'!!! user-requested western boundary' - print *,'!!! is beyond the western bounds of ' - print *,'!!! the vmag subgrid for this regional ' - print *,'!!! grid. ' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! ivlonfix = ',ivlonfix,' ibeg= ',ibeg - print *,'!!! ' - print *,'!!! Vmag will not be computed for' - print *,'!!! this time.' - print *,' ' - endif - - ifmret = 99 - return - endif - endif - - if (iend > imax) then - if (trkrinfo%gridtype == 'global') then - continue ! If wrapping past GM, there is code below - ! in this find_maxmin routine that can - ! modify the indices appropriately. So... - ! do nothing here. - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In find_maxmin, the ' - print *,'!!! user-requested eastern boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! the vmag subgrid for this regional ' - print *,'!!! grid. ' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! ivlonfix = ',ivlonfix,' iend= ',iend - print *,'!!! ' - print *,'!!! Vmag will not be computed for ' - print *,'!!! this time.' - print *,' ' - endif - - ifmret = 99 - return - endif - endif - - if (jbeg < 1) jbeg = 1 - if (jend > jmax) jend = jmax - - if ( verb .ge. 3 ) then - print *,'!!! ' - print *,'!!! *AFTER* vmag adjustments, boundaries are: ' - print *,'!!! ibeg= ',ibeg,' iend= ',iend,' imax= ',imax - print *,'!!! jbeg= ',jbeg,' jend= ',jend,' jmax= ',jmax - endif - - endif - - endif - -ctpm6/14 if (cparm == 'vmag') then -ctpm6/14 ri = re * 3 -c print '(a36,f10.4,a6,f10.4)' -c & ,' + before call to vmag barnes, re= ',re,' ri= ',ri -ctpm6/14 endif - - ibct = ibct + 1 - call barnes(rlont,rlatt,rlonv,rlatv,imax,jmax,ibeg,jbeg - & ,iend,jend,fxy,valid_pt,bskip1,re,ri,ftemp,icount,'tracker' - & ,trkrinfo,iret) - - ibarnes_loopct = ibarnes_loopct + icount - - if (iret /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! Non-zero RCC from barnes...' - print *,'!!! Exiting find_maxmin' - endif - - compflag = .FALSE. - ifmret = iret - return - endif - - if (maxmin == 'max') then - if (ftemp > fmax) then - fmax = ftemp - ctlon = rlont - ctlat = rlatt - endif - else - if (ftemp < fmin) then - fmin = ftemp - ctlon = rlont - ctlat = rlatt - endif - endif - - enddo iloop - enddo jloop - - if ( verb .ge. 3 ) then - print *,' ' - print *,'After 1st findmax loop, # calls to barnes = ',ibct - print *,'Total # of barnes loop iterations = ',ibarnes_loopct - endif - -c - 55 format ('i= ',i3,' j= ',i3,' rln= ',f7.3,' rlt= ',f7.3 - & ,' barnval= ',f11.5) - 56 format ('k= ',i3,' i= ',i3,' j= ',i3,' rln= ',f7.3,' rlt= ' - & ,f7.3,' barnval= ',f11.5) - - if (ctlon < 0.) then - ! We have grid-wrapped to find the ctlon, which was found to be - ! < 0, so for reporting purposes and for the start of the next - ! loop, set ctlon to positive degress east. - ctlon = ctlon + 360. - endif - - if (cparm == 'zeta') then - - if ( verb .ge. 3 ) then - print *,'!!! Zeta check, fmax= ',fmax,' fmin= ',fmin - write (6,61) 360.-ctlon,ctlat,fmax*100000.,fmin*100000. - endif - - else - - if ( verb .ge. 3 ) then - write (6,63) 360.-ctlon,ctlat,fmin - endif - - endif - 61 format (' After first run, ctlon= ',f8.3,'W ctlat= ',f8.3 - & ,' fmax (x10e5) = ',f10.3,' fmin (x10e5) = ',e15.3) - 63 format (' After first run, ctlon= ',f8.3,'W ctlat= ',f8.3 - & ,' fmin = ',e15.3) - 111 format (i2,' rlont= ',f7.2,'W rlatt= ',f7.2,' zeta= ',f13.8) - -c Through interpolation, the grid for vmag has already been -c minimized considerably, we don't need to go through the 2nd part -c of this subroutine, which halves the grid spacing. - - if (nhalf < 1 .or. cparm == 'vmag') then - if (maxmin == 'max') then - xval = fmax - else - xval = fmin - endif - return - endif - -c If on our first pass through, we were dealing with a regional grid -c that straddled the GM, then it becomes (for now) too much of a -c coding hassle to deal with in the rest of this routine (i.e., in -c all the nhalf iterations), so we will just go with the first run -c through for the center fix and exit the routine. - - if (grid_minlon > 330. .and. grid_maxlon < 30.) then - if (maxmin == 'max') then - xval = fmax - else - xval = fmin - endif - return - endif - -c ------------------------------------------------------------- -c If the grid spacing is -c fine enough (I've chosen 0.2-deg as a min threshold), there is -c no need to halve the grid more than 3 times, as halving a -c 0.2-deg grid 3 times gives a resolution of 0.025-deg (2.7 km), -c or a max error in the position estimate of 2.7/2 = 1.35 km. - - if ((dx+dy)/2. <= 0.2) then - if ((dx+dy)/2. <= 0.05) then - nhalf = 1 - else - nhalf = 2 - endif - endif - -c --------------------------------------------------------------- -c --------------------------------------------------------------- -c Halve the grid spacing to refine the location and value of the -c max/min value, but restrict the area of the new search grid. - -ctpm6/14 ctpm npts = 3 -ctpm6/14 npts = npts/2 -ctpm6/14 npts = max(npts,1) - npts = 3 - -c ------------------------------------------------------------- -c First, recalculate the i and j beginning and ending points to -c be used in the barnes analysis subroutine. Only -c do this once for this grid-refinement (even though the grid is -c redefined 3 times in this subroutine), but make sure to have the -c possible search grid be big enough to allow the possibility of -c the grid shifting way right or way left each time through the -c loop (get_ij_bounds takes care of this). - - call get_ij_bounds (npts,nhalf,ri,imax,jmax,dx,dy - & ,grid_maxlat,grid_minlat,grid_maxlon,grid_minlon - & ,ctlon,ctlat,trkrinfo - & ,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) - - if (igiret /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in find_maxmin from call to get_ij_bounds' - print *,'!!! just before nhalf loop. Stopping processing' - print *,'!!! for storm number ',ist - endif - - ifmret = 92 - return - endif - -c -------------------------------------------------------------- -c Now do the actual searching for the max/min value - - - if ( verb .ge. 3 ) then - print *,' ' - endif - - if ((dx+dy)/2. <= 1.25 .and. ri >= 300 .and. re >= 150) then - retmp = re - ritmp = ri - re = re * 0.5 - ri = ri * 0.5 - - if ( verb .ge. 3 ) then - print *,'After first pass through barnes, re has been reduced' - print *,'from ',retmp,' to ',re,', and ri has been reduced ' - print *,'from ',ritmp,' to ',ri - endif - - else - - if ( verb .ge. 3 ) then - print *,'After first pass through barnes, re and ri have NOT ' - print *,'been changed. re = ',re,' ri = ',ri - endif - - endif - - ibct=0 - ibarnes_loopct = 0 - do k=1,nhalf - - call date_and_time (big_ben(1),big_ben(2),big_ben(3) - & ,date_time) - if ( verb .ge. 3 ) then - write (6,32) k,date_time(5),date_time(6),date_time(7) - 32 format (1x,'TIMING: find_maxmin kloop, k= ',i2,' ',i2.2,':' - & ,i2.2,':',i2.2) - endif - - dell = 0.5*dell - tlon = ctlon - tlat = ctlat - fmax = -1.0e+15; fmin = 1.0e+15 - - iskip = bskip2 - - if ( verb .ge. 3 ) then - print *,' ' - print *,'find_maxmin nhalf loop, cparm= ',cparm,' k= ',k - write (6,161) tlon,360.-tlon,tlat - print *,'ilonfix= ',ilonfix,' jlatfix= ',jlatfix - & ,' npts= ',npts - print *,'ibeg= ',ibeg,' jbeg= ',jbeg,' imax= ',imax - print *,'iend= ',iend,' jend= ',jend,' jmax= ',jmax - print *,'nhalf= ',nhalf,' iskip= ',iskip - endif - - jloop2: do j=-npts,npts,iskip - - rlatt = tlat + dell*float(j) - - iloop2: do i=-npts,npts,iskip - - rlont = tlon + dell*float(i) - - if (rlont >= (grid_maxlon + dx - grid_buffer)) then - if (trkrinfo%gridtype == 'global') then - rlont = rlont - 360. - else - cycle iloop2 - endif - endif - - if (rlont < (grid_minlon + grid_buffer)) then - if (trkrinfo%gridtype == 'global') then - rlont = rlont + 360. - else - cycle iloop2 - endif - endif - - if (rlatt > (grid_maxlat - grid_buffer) .or. - & rlatt < (grid_minlat + grid_buffer) .or. - & rlont >= (grid_maxlon + dx - grid_buffer) .or. - & rlont < (grid_minlon + grid_buffer)) then - cycle iloop2 - endif - -c Again, check and make sure that the lat/lon point in -c question here has valid data (see the explanation further -c up in this subroutine inside iloop). - - call check_valid_point (imax,jmax,dx,dy,fxy,maxmin,valid_pt - & ,rlont,rlatt,grid_maxlat,grid_minlat,grid_maxlon - & ,grid_minlon,trkrinfo,icvpret) - - if (icvpret /= 0) then - cycle iloop2 - endif - - ibct = ibct + 1 - call barnes(rlont,rlatt,rlonv,rlatv,imax,jmax,ibeg,jbeg - & ,iend,jend,fxy,valid_pt,iskip,re,ri,ftemp,icount,'tracker' - & ,trkrinfo,iret) - - ibarnes_loopct = ibarnes_loopct + icount - - if (iret /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! Non-zero RCC from barnes, k= ',k - print *,'!!! Exiting find_maxmin' - endif - - compflag = .FALSE. - ifmret = iret - return - endif - - if (maxmin == 'max') then - if (ftemp > fmax) then - fmax = ftemp - ctlon = rlont - ctlat = rlatt - endif - else - if (ftemp < fmin) then - fmin = ftemp - ctlon = rlont - ctlat = rlatt - endif - endif - - enddo iloop2 - enddo jloop2 - - if ( verb .ge. 3 ) then - if (cparm == 'zeta') then - write (6,71) k,360.-ctlon,ctlat,fmax*100000.,fmin*100000. - else - write (6,73) k,360.-ctlon,ctlat,fmax,fmin - endif - endif - - enddo - - 71 format (' nhalf findmax, k= ',i2,' ctlon= ',f8.3,'W ctlat= ' - & ,f8.3,' fmax (x10e5) = ',f10.3,' fmin (x10e5) = ',e15.3) - 73 format (' nhalf findmax, k= ',i2,' ctlon= ',f8.3,'W ctlat= ' - & ,f8.3,' fmax = ',e15.3,' fmin = ',e15.3) - - 161 format (' guesslon= ',f8.3,'E (',f8.3,'W) guesslat= ',f8.3) - - if ( verb .ge. 3 ) then - print *,' ' - print *,'ppp after 2nd findmax loop, # calls to barnes = ' - & ,ibct - print *,'ppp Total # of barnes loop iterations = ' - & ,ibarnes_loopct - endif - - if (maxmin == 'max') then - xval = fmax - else - xval = fmin - endif -c - return - end -c -c---------------------------------------------------------------------- -c -c---------------------------------------------------------------------- - subroutine barnes(flon,flat,rlon,rlat,iimax,jjmax,iibeg,jjbeg - & ,iiend,jjend,fxy,defined_pt,bskip,re,ri,favg,icount,ctype - & ,trkrinfo,iret) -c -c ABSTRACT: This routine performs a single-pass barnes anaylsis -c of fxy at the point (flon,flat). The e-folding radius (km) -c and influence radius (km) are re and ri, respectively. -c -c NOTE: The input grid that is searched in this subroutine is most -c likely NOT the model's full, original grid. Instead, a smaller -c subgrid of the original grid is searched. The upper left and -c lower right grid point indices are passed into this subroutine -c (iibeg, jjbeg, iiend, jjend) for this subgrid. These indices are -c determined in the subroutine get_ij_bounds, and the purpose of -c doing it this way is to limit the number of points for which the -c subroutine has to calculate distances (for a global 1 deg grid, -c the number of loop iterations is reduced from 65160 to somewhere -c around 600). -c -c NOTE: This subroutine will immediately exit with a non-zero -c return code if it tries to access a grid point that does not have -c valid data. This would happen in the case of a regional grid, if -c you try to access a point near the edge of the grid (remember that -c because of the interpolation for the regional grids, there will be -c areas around the edges that have no valid data). -c -c INPUT: -c flon Lon value for center point about which barnes anl is done -c flat Lat value for center point about which barnes anl is done -c rlon Array of lon values for each grid point -c rlat Array of lat values for each grid point -c iimax Max number of pts in x-direction on input grid -c jjmax Max number of pts in y-direction on input grid -c iibeg i index for grid point to start barnes anlysis (upp left) -c jjbeg j index for grid point to start barnes anlysis (upp left) -c iiend i index for last grid point in barnes anlysis (low right) -c jjend j index for last grid point in barnes anlysis (low right) -c fxy Real array of data on which to perform barnes analysis -c defined_pt Logical; bitmap array used for regional grids -c bskip integer to indicate number of grid points to skip during -c a barnes loop, in order to speed processing -c re input e-folding radius for barnes analysis -c ri input influence radius for searching for min/max -c ctype character that lets subroutine know if this is a search -c for the next position for the purposes of tc vitals or -c for general tracking. In the case of vitals, in -c this barnes subroutine we are more lax and allow the -c routine to keep searching even if we are close to the -c grid boundary. In a general tracking search, if we hit -c the grid boundary even just once, we exit. -c trkrinfo derived type detailing user-specified grid info -c -c OUTPUT: -c favg Average value about the point (flon,flat) -c iret Return code from this subroutine -c - USE trkrparms - USE verbose_output - - type (trackstuff) trkrinfo - - real fxy(iimax,jjmax), rlon(iimax), rlat(jjmax) - real degrees - integer bskip - logical(1) defined_pt(iimax,jjmax) - character(*) ctype - -c -------------------------- - - res = re*re - wts = 0.0 - favg = 0.0 - - icount = 0 - - do jix=jjbeg,jjend,bskip - do iix=iibeg,iiend,bskip - - i = iix - j = jix - - if (i < 1) then - if (trkrinfo%gridtype == 'global') then - i = iix + iimax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i < 1 in subroutine barnes for' - print *,'!!! a non-global grid. STOPPING....' - print *,'!!! i= ',i - print *,' ' - endif - - stop 97 - endif - endif - - if (i > iimax) then - if (trkrinfo%gridtype == 'global') then - i = iix - iimax - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: i > imax in subroutine barnes for' - print *,'!!! a non-global grid. STOPPING....' - print *,'!!! i= ',i,' imax= ',iimax - print *,' ' - endif - - stop 97 - endif - endif - - icount = icount + 1 - - call calcdist(flon,flat,rlon(i),rlat(j),dist,degrees) - - if (dist .gt. ri) cycle - - if (defined_pt(i,j)) then - if (fxy(i,j) >-999.01 .and. fxy(i,j) <-998.99) then - ! This is a patch. Even though this (i,j) is a valid - ! point, its zeta value has been set to -999 because a - ! neighboring point in subroutine rvcal was found - ! to be out of the grid boundaries. - cycle - endif - wt = exp(-1.0*dist*dist/res) - wts = wts + wt - favg = favg + wt*fxy(i,j) - else - if (ctype == 'vitals') then - continue - else -carw print *,' ' -carw print *,'!!! UNDEFINED PT OUTSIDE OF GRID IN BARNES....' -carw print *,'!!! i= ',i,' j= ',j -carw print *,'!!! flon= ',flon,' flat= ',flat -carw print *,'!!! rlon= ',rlon(i),' rlat= ',rlat(j) -carw print *,'!!! re= ',re,' ri= ',ri -carw print *,'!!! EXITING BARNES....' -carw print *,' ' -carw iret = 95 -carw return - endif - endif - - enddo - enddo - - if (wts > 1.0E-5) then - favg = favg/wts - else - favg = 0.0 - endif - iret = 0 -c - return - end -c -c---------------------------------------------------------------------- -c -c---------------------------------------------------------------------- - subroutine get_ij_bounds (npts,nhalf,ri,imax,jmax,dx,dy - & ,rglatmax,rglatmin,rglonmax,rglonmin,geslon,geslat - & ,trkrinfo,ilonfix,jlatfix,ibeg,jbeg,iend,jend,igiret) -c -c ----------------------------------------------------------- -c ABSTRACT: This subroutine figures out, based on ri, dx and dy and -c the guess latitude and longitude positions, the farthest reaching -c grid points that are searchable by an analysis subroutine. The -c purpose is to return indices for a subgrid that is much smaller -c than the original, full grid. This smaller subgrid can then be -c passed to a subsequent analysis or interpolation subroutine, and -c work can be done on this smaller array. This can help save time, -c especially in the barnes analysis subroutine, as work will only -c be done on, say, a 20 x 20 array (400 pts) instead of on a -c 360 x 181 array (65160 pts). It's crucial, however, to make sure -c that the ibeg, jbeg, iend and jend are extended far enough out to -c fully encompass any search that would be done. Below is a -c diagram showing the different grids.... -c -c Full Global or Regional Model Grid (Grid F) -----------> -c ---------------------------------------------------------------- -c | | (ibeg,jbeg) | -c | | x = ij position that the | (Grid R) | -c | | geslat/geslon is fixed to. ._______________. | -c | | | | | -c | | Even though only the points | (Grid B) | | -c | | within Grid B will be checked | . . . . k | | -c v | later on for a max/min (in the | . . . . . | | -c | case of a subsequent call to | . . x . e | | -c | find_maxmin), the barnes anal- | . . . . . | | -c | ysis will include all pts sur- | . . . . . | | -c | rounding these Grid B points | | | -c | that are within a radius of ri. ._______________. | -c | So in the case of pt. k, that ri | -c | radius may extend all the way to the Grid R | | -c | boundary, thus we need to include those (iend,jend) | -c | points within our ibeg-jbeg-iend-jend bounds. | -c | | -c ---------------------------------------------------------------- -c -c Remember that the grids we deal with start north and increase -c south, so the northernmost latitude on the input grid will have -c a j index of 1. -c -c INPUT: -c npts Num pts from x to edge of max/min search grid (Grid B) -c (i.e., You define the size of Grid B by the value of -c npts that you pass into this subroutine). -c nhalf Number of times the grid spacing will be halved -c ri Radius of influence (for use in barnes analysis) -c imax Number of points in x-direction on original grid -c jmax Number of points in y-direction on original grid -c dx Input grid spacing in i-direction on original grid -c dy Input grid spacing in j-direction on original grid -c rglatmax Value of northern-most latitude on original grid -c rglatmin Value of southern-most latitude on original grid -c rglonmax Value of eastern-most longitude on original grid -c rglonmin Value of western-most longitude on original grid -c geslat Value of latitude of guess position of storm -c geslon Value of longitude of guess position of storm -c -c OUTPUT: -c ilonfix i index on full, input grid that storm is fixed to -c jlatfix j index on full, input grid that storm is fixed to -c ibeg i index for top left of sub-array (Grid R) of input grid -c iend i index for bot right of sub-array (Grid R) of input grid -c jbeg j index for top left of sub-array (Grid R) of input grid -c jend j index for bot right of sub-array (Grid R) of input grid -c igiret Return code from this subroutine -c - USE trig_vals; USE trkrparms - USE verbose_output - - type (trackstuff) trkrinfo - real tmpangle -c - igiret = 0 -c -c -------------------------------------- -c GET BEGINNING AND ENDING J POINTS.... -c -c (1) Calculate number of searchable, max/min pts, that is, the pts -c from x to the edge of Grid B. -c (2) Calculate number of pts beyond the last search point in Grid -c B, but are within the bounds of Grid R and thus can be -c included in the barnes analysis. -c (3) Add (1) and (2) to get the max number of pts to subtract/add -c to x to get jbeg and jend. - - if ( verb .ge. 3 ) then - print *,' ' - print *,'Beginning of get_ij_bounds...' - print *,' geslat= ',geslat,' geslon= ',geslon - print *,' ' - endif - - -c If nhalf > 0: This occurs in the case of a call from fmax, when -c the grid spacing is halved nhalf times. In this case, we have to -c do extra work to figure out the maximum possible grid point. For -c this case: -c jhlatpts = # of grid pts to last possible search pt (from x to -c edge of Grid B in above diagram), plus a cushion. -c jripts = # of searchable grid points within radius ri of last -c possible search pt (num pts between edge of Grid B -c and edge of Grid R in above diagram), plus a cushion -c jbmaxlatpts = # of pts (in j direction) from x to the edge of -c Grid R to include in this subgrid. -c -c If nhalf = 0: In this case, the grid spacing will not be reduced, -c so the number of pts in j direction from x to the edge of Grid -c B will be the input parameter npts, and just multiply it by 2, -c and add 2 for a cushion to get jmaxlatpts. Typically, this sub -c is called from find_maxmin, and in that sub, the first time that -c this sub is called, nhalf will = 0. Then, after a first-shot -c center is found, the grid spacing will be cut in order to rerun -c barnes on a smaller grid, and that's when nhalf will be sent -c here as 3. -c - if (nhalf > 0) then - rdeg = 0.0 - do i = 1,nhalf - rdeg = rdeg + float(npts) * (1./(float(i)*2)) * (dx+dy)/2 - enddo - jhlatpts = ceiling(rdeg/dy) + 1 - jripts = ceiling((ri + 1.)/(dtk*dx)) + 1 - jbmaxlatpts = jhlatpts + jripts - else - jbmaxlatpts = npts * 2 + 2 - endif -c -c -c Roughly fix geslat to the grid point just poleward of geslat. -c - - if ( verb .ge. 3 ) then - print *,' ' - print *,' +++ Near top of get_ij_bounds, ' - print *,' +++ geslat= ',geslat,' geslon= ',geslon - print *,' +++ rglatmax= ',rglatmax,' rglatmin= ',rglatmin - print *,' +++ rglonmax= ',rglonmax,' rglonmin= ',rglonmin - print *,' +++ imax= ',imax,' jmax= ',jmax - print *,' +++ dx= ',dx,' dy= ',dy,' nhalf= ',nhalf - print *,' +++ npts= ',npts - if(nhalf>0) then - print *,' +++ jhlatpts= ',jhlatpts,' jripts= ',jripts - else - print *,' +++ nhalf<=0 so jhlatpts and jripts unused' - endif - print *,' +++ jbmaxlatpts= ',jbmaxlatpts - endif - - if (geslat >= 0.0) then - jlatfix = int((rglatmax - geslat)/dy + 1.) - else - jlatfix = ceiling((rglatmax - geslat)/dy + 1.) - endif - - if ( verb .ge. 3 ) then - print *,' +++ jlatfix= ',jlatfix - endif - - jbeg = jlatfix - jbmaxlatpts - jend = jlatfix + jbmaxlatpts - if (jbeg > jmax ) then - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_ij_bounds, jbeg > jmax' - print *,'!!! jbeg = ',jbeg,' jmax= ',jmax - endif - - igiret = igiret + 1 - return - endif - if (jend < 1) then - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_ij_bounds, jend < 1, jend = ',jend - endif - - igiret = igiret + 1 - return - endif - if (jbeg < 1) jbeg = 1 - if (jend > jmax) jend = jmax - - if ( verb .ge. 3 ) then - print *,' +++ jbeg= ',jbeg,' jend= ',jend - endif - - ! If using a global grid, avoid using the pole points, or else - ! you'll get a cosfac = 0 and then a divide by zero!!! - - if (jend == jmax .and. rglatmin == -90.0) then - jend = jmax - 2 - endif - if (jbeg == 1 .and. rglatmax == 90.0) then - jbeg = 3 - endif - -c ----------------------------------------- -c NOW GET BEGINNING AND ENDING I POINTS.... -c -c Using the map factor (cos lat), figure out, based on ri, the -c max distance beyond the last search point in x-direction (in -c degrees) that could be searched at this guess latitude (geslat) -c (i.e., in the diagram above, the max num pts from pt. e eastward -c to the edge of Grid R). Calculate how many grid points that is, -c add 2 to it for a cushion, & add the number of points (npts) -c within the defined search grid (Grid B) to get ibmaxlonpts. -c -c April, 2007: A min statement was put on the calculation to -c derive dlon, since with that cosine in there, the values of -c of dlon could get pretty ridiculous as you approach the poles. -c Also, the cosine factor (cosfac) used to be computed at the -c most poleward latitude possible given the jend here. For -c similar concerns with cosines near the poles, I've scrapped -c this to instead compute the cosine factor at the input -c guess latitude. - tpm - - cosfac = cos (geslat * dtr) - tmpangle = cosfac * dtk - dlon = min((ri /tmpangle ),20.0) -c dlon = min((ri / (cosfac * dtk)),20.0) -c - if (nhalf > 0) then - ihlonpts = ceiling(rdeg/dx) + 1 - ibmaxlonpts = ihlonpts + ceiling(dlon/dx) + 2 - else - ibmaxlonpts = npts + ceiling(dlon/dx) + 2 - endif - - if ( verb .ge. 3 ) then - if(nhalf>0) then - print *,' +++ rdeg= ',rdeg,' ri= ',ri,' cosfac= ',cosfac - print *,' +++ dtr= ',dtr,' dtk= ',dtk,' dlon= ',dlon - else - print*,' +++ nhalf<=0 so rdeg,ri,cosfac,dtr,dtk,dlon unused' - endif - print *,' +++ ibmaxlonpts= ',ibmaxlonpts,' dx= ',dx,' dy= ',dy - endif - -c Roughly fix geslon to the grid point just EASTward of geslon. - - ilonfix = int((geslon - rglonmin)/dx + 2.) - - ibeg = ilonfix - ibmaxlonpts - iend = ilonfix + ibmaxlonpts - - if ( verb .ge. 3 ) then - print *,' +++ (orig) ilonfix= ',ilonfix - print *,' +++ (orig) ibeg= ',ibeg,' iend= ',iend - print *,' +++ ' - endif - - if (ibeg > imax) then - if (trkrinfo%gridtype == 'global') then - - if ( verb .ge. 1 ) then - print *,'+++ NOTE: in get_ij_bounds, ibeg > imax' - print *,'+++ for a global grid; GM wrapping expected from' - print *,'+++ calling routine. ibeg = ',ibeg,' imax= ',imax - endif - - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in get_ij_bounds, ibeg > imax' - print *,'!!! for a non-global grid' - print *,'!!! ibeg = ',ibeg,' imax= ',imax - endif - - igiret = igiret + 1 - return - endif - endif - if (iend > imax) then - if (trkrinfo%gridtype == 'global') then - - if ( verb .ge. 3 ) then - print *,'+++ NOTE: in get_ij_bounds, iend > imax' - print *,'+++ for a global grid; GM wrapping expected from' - print *,'+++ calling routine. iend = ',iend,' imax= ',imax - endif - - else - ! For a regional grid, just set iend to be imax - iend = imax - endif - endif - if (ibeg < 1) then - if (trkrinfo%gridtype == 'global') then - - if ( verb .ge. 3 ) then - print *,'+++ NOTE: in get_ij_bounds, ibeg < 1' - print *,'+++ for a global grid; GM wrapping expected from' - print *,'+++ calling routine. ibeg = ',ibeg,' imax= ',imax - endif - - else - ! For a regional grid, just set ibeg to be 1 - ibeg = 1 - endif - endif - if (iend < 1) then - if (trkrinfo%gridtype == 'global') then - - if ( verb .ge. 3 ) then - print *,'+++ NOTE: in get_ij_bounds, iend < 1' - print *,'+++ for a global grid; GM wrapping expected from' - print *,'+++ calling routine. iend = ',iend,' imax= ',imax - endif - - else - - if ( verb .ge. 3 ) then - print *,'!!! ERROR in get_ij_bounds, iend < 1' - print *,'!!! for a non-global grid' - print *,'!!! iend = ',iend,' imax= ',imax - endif - - igiret = igiret + 1 - return - endif - endif -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine check_bounds (guesslon,guesslat,ist,ifh,trkrinfo - & ,icbret) -c -c ABSTRACT: This subroutine checks to make sure that the requested -c storm is in fact within the model's grid boundaries; -c this is only a concern for the regional models. -c - USE def_vitals; USE grid_bounds; USE set_max_parms - USE trkrparms - USE verbose_output - - type (trackstuff) trkrinfo - - if (guesslon > glonmax .or. guesslon < glonmin .or. - & guesslat > glatmax .or. guesslat < glatmin) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! IN check_bounds, Storm is outside of grid' - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - print *,'!!! Storm Name = ',storm(ist)%tcv_storm_name - print *,'!!! ist= ',ist,' ifh= ',ifh - print *,'!!! guess storm lon= ',guesslon - print *,'!!! guess storm lat= ',guesslat - endif - - icbret = 95 - goto 125 - else - icbret = 0 - endif - - ! We have encountered problems with global grids where we - ! continue tracking almost the whole way to the pole. While - ! that's nice to do that, it creates problems for array - ! indices, especially in subroutine getradii. So we will cut - ! our losses and eliminate tracking of storms within - ! 5 degrees of the pole for global grids. - - if ((trkrinfo%type == 'midlat' .or. - & trkrinfo%type == 'tcgen') .and. - & trkrinfo%gridtype == 'global')then - if (guesslat > 85.0 .or. guesslat < -85.0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! IN check_bounds, Storm is too close to the' - print *,'!!! N or S Pole for global tracking.' - print *,'!!! STOPPING TRACKING FOR THIS STORM DUE TO POLE' - print *,'!!! Storm ID = ',storm(ist)%tcv_storm_id - print *,'!!! Storm Name = ',storm(ist)%tcv_storm_name - print *,'!!! ist= ',ist,' ifh= ',ifh - print *,'!!! guess storm lon= ',guesslon - print *,'!!! guess storm lat= ',guesslat - endif - - icbret = 95 - else - icbret = 0 - endif - endif - - 125 continue -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine calcdist(rlonb,rlatb,rlonc,rlatc,xdist,degrees) -c -c ABSTRACT: This subroutine computes the distance between two -c lat/lon points by using spherical coordinates to -c calculate the great circle distance between the points. -c Figure out the angle (a) between pt.B and pt.C, -c N. Pole then figure out how much of a % of a great -c x circle distance that angle represents. -c / \ -c b/ \ cos(a) = (cos b)(cos c) + (sin b)(sin c)(cos A) -c / \ -c pt./<--A-->\c NOTE: The latitude arguments passed to the -c B / \ subr are the actual lat vals, but in -c \ the calculation we use 90-lat. -c a \ -c \pt. NOTE: You may get strange results if you: -c C (1) use positive values for SH lats AND -c you try computing distances across the -c equator, or (2) use lon values of 0 to -c -180 for WH lons AND you try computing -c distances across the 180E meridian. -c -c NOTE: In the diagram above, (a) is the angle between pt. B and -c pt. C (with pt. x as the vertex), and (A) is the difference in -c longitude (in degrees, absolute value) between pt. B and pt. C. -c -c !!! NOTE !!! -- THE PARAMETER ecircum IS DEFINED (AS OF THE -c ORIGINAL WRITING OF THIS SYSTEM) IN KM, NOT M, SO BE AWARE THAT -c THE DISTANCE RETURNED FROM THIS SUBROUTINE IS ALSO IN KM. -c - USE trig_vals - - real degrees -c - if (rlatb < 0.0 .or. rlatc < 0.0) then - pole = -90. - else - pole = 90. - endif -c - distlatb = (pole - rlatb) * dtr - distlatc = (pole - rlatc) * dtr - difflon = abs( (rlonb - rlonc)*dtr ) -c - cosanga = ( cos(distlatb) * cos(distlatc) + - & sin(distlatb) * sin(distlatc) * cos(difflon)) - -c This next check of cosanga is needed since I have had ACOS crash -c when calculating the distance between 2 identical points (should -c = 0), but the input for ACOS was just slightly over 1 -c (e.g., 1.00000000007), due to (I'm guessing) rounding errors. - - if (cosanga > 1.0) then - cosanga = 1.0 - endif - - degrees = acos(cosanga) / dtr - circ_fract = degrees / 360. - xdist = circ_fract * ecircum -c -c NOTE: whether this subroutine returns the value of the distance -c in km or m depends on the scale of the parameter ecircum. -c At the original writing of this subroutine (7/97), ecircum -c was given in km. -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine subtract_cor (imax,jmax,dy,level) -c -c ABSTRACT: This subroutine subtracts out the coriolis parameter -c from the vorticity values. It is needed because at the original -c writing of this system, all of the forecast centers who included -c vorticity included only absolute vorticity. -c - USE tracked_parms; USE trig_vals; USE grid_bounds - - implicit none - - integer :: i,j,imax,jmax,level - real :: dy,coriolis,rlat -c - do j=1,jmax - rlat = glatmax - ((j-1) * dy) - coriolis = 2. * omega * sin(rlat*dtr) - do i=1,imax - zeta(i,j,level) = zeta(i,j,level) - coriolis - enddo - enddo -c - return - end -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine get_grib_file_name (ifh,gfilename,ifilename) - -c ABSTRACT: This subroutine uses various input regarding the model -c and forecast hour and generates the name of the input grib file -c for this particular forecast hour. Remember that the lead time -c is in minutes and that 5 spaces must be reserved for the lead -c time (e.g., f00360). File name should be something that looks -c like either, e.g., "gfdl.6thdeg.katrina12l.2005082818.f00720", -c or "gfdl.6thdeg.2005082818.f00720" (the part in there with the -c storm name & ID is optional). The grib index file name should -c be exactly the same as the grib data file itself, but with the -c character string ".ix" added onto the end of the name. -c -c NOTE: Array iftotalmins is brought in via module tracked_parms. -c -C INPUT: -c ifh integer array index for current lead time -c -c OUTPUT: -c gfilename GRIB file name -c ifilename GRIB index file name - - USE gfilename_info; USE tracked_parms; USE atcf - USE verbose_output - - implicit none - - character(*) gfilename,ifilename - character cfmin*5,cymdh*10 - integer ifh,nlen1,nlen2,nlen3,nlen4,nlen5 - -c Convert integer minutes to 5-position character, with -c leading zeroes, and convert 10-digit integer date into -c 10-position character. Then trim the various input variables -c and combine all into the file name. - - write (cfmin,'(i5.5)') iftotalmins(ifh) - write (cymdh,'(i10.10)') atcfymdh - - nlen1 = len_trim(gmodname) - gfilename = trim(gmodname(1:nlen1)) - - nlen2 = len_trim(rundescr) - - gfilename = trim(gfilename(1:nlen1))//'.'//trim(rundescr(1:nlen2)) - - nlen3 = len_trim(atcfdescr) - nlen4 = len_trim(gfilename) - -c If an extension to the name with the ATCF or storm name descriptor -c was included, then add it to the name now. Otherwise, just add -c the starting date and the lead time in minutes. - - if (nlen3 > 0) then - gfilename = trim(gfilename(1:nlen4))//'.' - & //trim(atcfdescr(1:nlen3))//'.'//cymdh//'.f'//cfmin - else - gfilename = trim(gfilename(1:nlen4))//'.'//cymdh//'.f'//cfmin - endif - -c Create the name for the grib index file, which is just the name of -c the grib file, with "ix" added to the end of it. - - nlen5 = len_trim(gfilename) - ifilename = trim(gfilename(1:nlen5))//'.ix' - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,72) 'gfilename',gfilename - write (6,72) 'ifilename',ifilename - endif - - 72 format (1x,'In get_grib_file_name, file name for ',a9 - & ,' is ',a120) -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine getdata (readflag,valid_pt,imax,jmax,ifh - & ,need_to_flip_lats,need_to_flip_lons,inp,lugb,lugi - & ,trkrinfo) -c -c ABSTRACT: This subroutine reads the input GRIB file for the -c tracked parameters. It then calls subroutines to convert the -c data from a 1-d array into a 2-d array if the read was successful. -c -c There are up to 9 fields that are read in that will be used to -c locate the storm position. There are an additional 4 variables -c (500 mb u- and v-components and 10 m u- and v- components) that -c will not be used for tracking, but only for helping to estimate -c the next first guess position (500 mb winds) and for estimating -c the max near-surface wind speeds in the vicinity of the storm -c (10 m winds). -c -c Fields read in are listed here. Numbers indicate positioning in -c the readflag logical array: -c -c 1. 850 mb absolute vorticity -c 2. 700 mb absolute vorticity -c 3. 850 mb u-component -c 4. 850 mb v-component -c 5. 700 mb u-component -c 6. 700 mb v-component -c 7. 850 mb geopotential height -c 8. 700 mb geopotential height -c 9. MSLP -c 10. 10-m u-component -c 11. 10-m v-component -c 12. 500 mb u-component -c 13. 500 mb v-component -c 14. 300-500 mb mean temperature (I jerry-rigged this by storing -c the data as being at the 401 mb level.) -c -c INPUT: -c imax integer number of pts in i-direction on grid -c jmax integer number of pts in j-direction on grid -c ifh integer index for forecast hour -c need_to_flip_lats logical flag read in from getgridinfo that -c indicates if data needs flipped north to south -c need_to_flip_lons logical flag read in from getgridinfo that -c indicates if data needs flipped east to west -c inp of a derived type, contains user-input info -c lugb integer unit number of input grib file -c lugi integer unit number of input grib index file -c trkrinfo derived type that contains info on the type of -c tracker run that we are performing. -c -c OUTPUT: -c readflag logical array, indicates if a parm was read in -c valid_pt logical array, indicates for each (i,j) if there is -c valid data at the point (used for regional grids) - - USE tracked_parms; USE level_parms; USE inparms; USE phase - USE verbose_output; USE params; USE grib_mod; USE trkrparms - - implicit none -c - type (trackstuff) trkrinfo - type (datecard) inp - type (gribfield) :: gfld,prevfld,holdgfld -c - integer, parameter :: jf=40000000 - integer, parameter :: nparms=14 - real, allocatable :: f(:) - real :: dmin,dmax,firstval,lastval - logical(1), allocatable :: lb(:) - logical(1) valid_pt(imax,jmax),readflag(nparms) - logical(1) :: need_to_flip_lats,need_to_flip_lons - logical(1) file_open - logical :: unpack=.true. - logical :: open_grb=.false. - character*1 :: lbrdflag - character*8 :: chparm(nparms) - CHARACTER(len=8) :: pabbrev - character (len=10) big_ben(3) - integer date_time(8) - integer,dimension(200) :: jids,jpdt,jgdt - integer :: listsec1(13) - integer, intent(in) :: imax,jmax - integer igparm(nparms),iglev(nparms),iglevtyp(nparms) - integer ig2_parm_cat(nparms),ig2_parm_num(nparms) - integer ig2_lev_val(nparms),ig2_lev_typ(nparms) - integer cpsig2_parm_cat(nlevs_cps),cpsig2_parm_num(nlevs_cps) - integer cpsig2_lev_typ(nlevs_cps),cpsig2_lev_val(nlevs_cps) - integer ec_igparm(nparms),ec_iglev(nparms),ec_iglevtyp(nparms) - integer cpsgparm(nlevs_cps),cpsglev(nlevs_cps) - integer cpsglevtyp(nlevs_cps) - integer ec_cpsgparm(nlevs_cps) - integer jpds(200),jgds(200),kpds(200),kgds(200) - integer igvret,ifa,ila,ip,ifh,i,j,k,kj,iret,kf,lugb,lugi - integer jskp,jdisc,np - integer jpdtn,jgdtn,npoints,icount,ipack,krec - integer pdt_4p0_vert_level,pdt_4p0_vtime - integer :: listsec0(2)=(/0,2/) - integer :: igds(5)=(/0,0,0,0,0/),previgds(5) - integer :: idrstmpl(200) - integer :: currlen=1000000 -c - lbrdflag = 'n' - -c The following data statements contain the parameters that will be -c used to search the grib files. The first 9 parameters will all be -c used to locate the storm position. The last 4 parameters (500 mb -c u- and v-components and 10 m u- and v- components) will not be -c used for tracking, but only for helping to estimate the next first -c guess position (500 mb winds) and for estimating the max near- -c surface wind speeds in the vicinity of the storm (10 m winds). -c -c ** NOTE: iglevtyp(12 & 13) and iglev(12 & 13) are initialized to -c 0 just to satisfy the IBM xlf compiler, which barks about -c there being too few initial values in the list when I -c only had 11 values there -- even though the real -c initialization for these variables is done just about -c 10 lines below. -c -c ** NOTE: The new ECMWF hi-res data uses the ECMWF GRIB parameter -c ID table, which has different values than the NCEP -c table. Therefore, we needed to add the variables and -c data values for ec_igparm, ec_iglevtyp and ec_iglev. -c -c July 2007: Read statements added for GP height for cyclone -c phase space (CPS) algorithm. - - data igparm /41,41,33,34,33,34,7,7,2,33,34,33,34,11/ - data iglevtyp /100,100,100,100,100,100,100,100,102,0,0,100,100 - & ,100/ - data iglev /850,700,850,850,700,700,850,700,0,0,0,500,500,401/ - - data cpsgparm /13*7/ - data ec_cpsgparm /13*156/ - data cpsglevtyp /13*100/ - data cpsglev /900,850,800,750,700,650,600,550,500,450,400 - & ,350,300/ - - data ec_igparm /999,999,131,132,131,132,156,156,151,165,166 - & ,131,132,130/ - data ec_iglevtyp /100,100,100,100,100,100,100,100,1,0,0,100,100 - & ,100/ - data ec_iglev /850,700,850,850,700,700,850,700,0,0,0,500,500 - & ,401/ - - data chparm /'absv','absv','ugrid','vgrid','ugrid','vgrid' - & ,'gphgt','gphgt','mslp','ugrid','vgrid','ugrid' - & ,'vgrid','temp'/ - - data ig2_parm_cat /2,2,2,2,2,2,3,3,3,2,2,2,2,0/ - data ig2_parm_num /10,10,2,3,2,3,5,5,1,2,3,2,3,0/ - data ig2_lev_typ /100,100,100,100,100,100,100,100,101,103,103 - & ,100,100,100/ - data ig2_lev_val /850,700,850,850,700,700,850,700,0,10,10,500,500 - & ,401/ - data cpsig2_parm_cat /13*3/ - data cpsig2_parm_num /13*5/ - data cpsig2_lev_typ /13*100/ - data cpsig2_lev_val /900,850,800,750,700,650,600,550,500,450,400 - & ,350,300/ - -c This next bit is needed because we need to read the near-surface -c winds, and while several models provide us with 10m winds, the -c UKMET gives us surface winds, while nogaps gives us 10m winds. -c For GFDL, we have 35m winds. - -c Model numbers used: (1) AVN, (2) MRF, (3) UKMET, (4) ECMWF, -c (5) NGM, (6) Early Eta, (7) NOGAPS, (8) GDAS, -c (10) NCEP Ensemble, (11) ECMWF Ensemble, -c (13) SREF Ensemble, -c (14) NCEP Ensemble (from ensstat mean fields), -c (15) CMC, (16) CMC Ensemble, (17) HWRF, -c (18) HWRF Ensemble, (19) HWRF-DAS (HDAS), -c (20) NCEP Ensemble RELOCATION -c (21) UKMET hi-res (from NHC) - - if (trkrinfo%gribver == 2) then - -c So far, for GRIB v2, we have all the same IDs for 10m winds for -c all models, so no need to break out by model like we do for -c GRIB v1 in the else portion of this if statement. However, we -c do need to check to see if the input model = 1 or 8 (which is -c the GFS and GDAS). If so, then we want to look for the -c so-called membrane MSLP, which has a GRIB2 param num of 192. - - if (inp%model == 1 .or. inp%model == 8 .or. inp%model == 22) - & then - ig2_parm_num(9) = 192 ! Membrane MSLP for GFS only - endif - - if ( verb .ge. 3 ) then - print *,' ' - endif - - else - - if (inp%model == 1 .or. inp%model == 2 .or. - & inp%model == 5 .or. inp%model == 6 .or. inp%model == 8 .or. - & inp%model == 10 .or. inp%model == 13 .or. - & inp%model == 17 .or. - & inp%model == 14 .or. inp%model == 19 .or. - & inp%model == 20 .or. inp%model == 16 .or. - & inp%model == 22 .or. inp%model == 15) then - iglevtyp(10) = 105 - iglevtyp(11) = 105 - iglev(10) = 10 - iglev(11) = 10 - else if (inp%model == 3) then ! UKMET: "surface" winds - iglevtyp(10) = 1 - iglevtyp(11) = 1 - iglev(10) = 0 - iglev(11) = 0 - else if (inp%model == 4) then ! ECMWF hi-res: "surface" winds - ec_iglevtyp(10) = 1 - ec_iglevtyp(11) = 1 - ec_iglev(10) = 0 - ec_iglev(11) = 0 - else if (inp%model == 7) then ! NOGAPS: 10m winds - iglevtyp(10) = 105 - iglevtyp(11) = 105 - iglev(10) = 10 - iglev(11) = 10 - else if (inp%model == 9) then ! GFDL: 35m winds - iglevtyp(10) = 105 - iglevtyp(11) = 105 - iglev(10) = 10 - iglev(11) = 10 - else if (inp%model == 21) then ! ECMWF Ensemble - 10m winds and -c pmsl level ID - iglevtyp(10) = 105 - iglevtyp(11) = 105 - iglev(10) = 10 - iglev(11) = 10 - iglevtyp(9) = 1 - endif - - if (inp%model == 1 .or. inp%model == 8 .or. inp%model == 22) - & then - ! For GFS & GDAS models, use the membrane (Eta reduction) MSLP, - ! also known by the GRIB abbreviation of MSLET - igparm(9) = 130 - endif - - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,'NOTE: Program is now in subroutine getdata. A return' - print *,'code (iret) not equal to zero indicates that ' - print *,'subroutine getgb was unable to find the requested ' - print *,'parameter. This could be simply because the parm is ' - print *,'not included in the grib file (this is likely for ' - print *,'ECMWF data, as they limit what they send us), or it ' - print *,'could indicate a problem with the grib index file.' - endif - - - if (allocated(f)) deallocate(f) - if (allocated(lb)) deallocate(lb) - allocate (f(imax*jmax),stat=ifa) - allocate (lb(imax*jmax),stat=ila) - if (ifa /= 0 .or. ila /= 0) then - print *,' ' - print *,'!!! ERROR in getdata allocating f or lb array.' - print *,'!!! ifa = ',ifa,' ila= ',ila - print *,'!!! STOPPING EXECUTION' - STOP 91 - endif - - if (trkrinfo%gribver == 2) then - - ! Reading from a GRIB v2 file.... - - grib2_standard_parm_read_loop: do ip = 1,nparms - - ! - ! --- Initialize Variables --- - ! - - gfld%idsect => NULL() - gfld%local => NULL() - gfld%list_opt => NULL() - gfld%igdtmpl => NULL() - gfld%ipdtmpl => NULL() - gfld%coord_list => NULL() - gfld%idrtmpl => NULL() - gfld%bmap => NULL() - gfld%fld => NULL() - - jdisc=0 ! meteorological products - jids=-9999 - jpdtn=trkrinfo%g2_jpdtn ! 0 = analysis or forecast; - ! 1 = ens fcst - jgdtn=0 ! lat/lon grid - jgdt=-9999 - jpdt=-9999 - - npoints=0 - icount=0 - jskp=0 - -c Search for input parameter by production template 4.0. This -c tave program is used primarily for temperature, but still we -c will leave that as a variable and not-hard wire it in case we -c choose to average something else in the future. - - ! We are looking for Temperature or GP Height here. This - ! block of code, or even the smaller subset block of code that - ! contains the JPDT(1) and JPDT(2) assignments, can of course - ! be modified if this program is to be used for interpolating - ! other variables.... - - ! Set defaults for JPDT, then override in array - ! assignments below... - - JPDT(1:15)=(/-9999,-9999,-9999,-9999,-9999,-9999,-9999,-9999 - & ,-9999,-9999,-9999,-9999,-9999,-9999,-9999/) - - JPDT(1) = ig2_parm_cat(ip) - JPDT(2) = ig2_parm_num(ip) - - if (inp%lt_units == 'minutes') then - JPDT(8) = 0 - JPDT(9) = iftotalmins(ifh) - else - JPDT(8) = 1 - JPDT(9) = ifhours(ifh) - endif - - JPDT(10) = ig2_lev_typ(ip) - if (JPDT(10) == 100) then ! isobaric surface - JPDT(12) = ig2_lev_val(ip) * 100 ! GRIB2 levels are in Pa - else - JPDT(12) = ig2_lev_val(ip) ! This is going to be either mslp - & ! or 10m winds. - endif - - if ( verb .ge. 3 ) then - print *,'before getgb2 call, value of unpack = ',unpack - endif - - inquire (unit=lugb, opened=file_open) - if (file_open) then - print *,'TEST b4 getgb2 getdata, unit lugb= ',lugb - & ,' is OPEN' - else - print *,'TEST b4 getgb2 getdata, unit lugb= ',lugb - & ,' is CLOSED' - endif - - inquire (unit=lugi, opened=file_open) - if (file_open) then - print *,'TEST b4 getgb2 getdata, unit lugi= ',lugi - & ,' is OPEN' - else - print *,'TEST b4 getgb2 getdata, unit lugi= ',lugi - & ,' is CLOSED' - endif - - call date_and_time (big_ben(1),big_ben(2),big_ben(3) - & ,date_time) - write (6,531) date_time(5),date_time(6),date_time(7) - 531 format (1x,'TIMING: before getgb2-1',i2.2,':',i2.2,':',i2.2) - - call getgb2(lugb,lugi,jskp,jdisc,jids,jpdtn,jpdt,jgdtn,jgdt - & ,unpack,krec,gfld,iret) - - call date_and_time (big_ben(1),big_ben(2),big_ben(3) - & ,date_time) - write (6,532) date_time(5),date_time(6),date_time(7) - 532 format (1x,'TIMING: after getgb2-1',i2.2,':',i2.2,':',i2.2) - - if ( verb .ge. 3 ) then - print *,'iret from getgb2 in getdata = ',iret - print *,'after getgb2 call, value of unpacked = ' - & ,gfld%unpacked - print *,'after getgb2 call, gfld%ndpts = ',gfld%ndpts - print *,'after getgb2 call, gfld%ibmap = ',gfld%ibmap - endif - - if ( iret == 0) then - -c Determine packing information from GRIB2 file -c The default packing is 40 JPEG 2000 - - ipack = 40 - - print *,' gfld%idrtnum = ', gfld%idrtnum - - ! Set DRT info ( packing info ) - if ( gfld%idrtnum.eq.0 ) then ! Simple packing - ipack = 0 - elseif ( gfld%idrtnum.eq.2 ) then ! Complex packing - ipack = 2 - elseif ( gfld%idrtnum.eq.3 ) then ! Complex & spatial - & ! packing - ipack = 31 - elseif ( gfld%idrtnum.eq.40.or.gfld%idrtnum.eq.15 ) then - ! JPEG 2000 packing - ipack = 40 - elseif ( gfld%idrtnum.eq.41 ) then ! PNG packing - ipack = 41 - endif - - if ( verb .ge. 3 ) then - print *,'After check of idrtnum, ipack= ',ipack - print *,'Number of gridpts= gfld%ngrdpts= ',gfld%ngrdpts - print *,'Number of elements= gfld%igdtlen= ',gfld%igdtlen - print *,'GDT num= gfld%igdtnum= ',gfld%igdtnum - endif - - kf = gfld%ndpts ! Number of gridpoints returned from read - - do np = 1,kf - f(np) = gfld%fld(np) - if (gfld%ibmap == 0) then - lb(np) = gfld%bmap(np) - else - lb(np) = .true. - endif - enddo - - readflag(ip) = .TRUE. - call bitmapchk(kf,lb,f,dmin,dmax) - -c Convert logical bitmap to 2-d array (only need to do this -c once since using same model for all variables). - - if (lbrdflag .eq. 'n') then - call conv1d2d_logic (imax,jmax,lb,valid_pt - & ,need_to_flip_lats) - lbrdflag = 'y' - endif - - firstval=gfld%fld(1) - lastval=gfld%fld(kf) - - if ( verb .ge. 3 ) then - - print *,' ' - print *,' SECTION 0: discipl= ',gfld%discipline - & ,' gribver= ',gfld%version - print *,' ' - print *,' SECTION 1: ' - - do j = 1,gfld%idsectlen - print *,' sect1, j= ',j,' gfld%idsect(j)= ' - & ,gfld%idsect(j) - enddo - - if ( associated(gfld%local).AND.gfld%locallen.gt.0) then - print *,' ' - print *,' SECTION 2: ',gfld%locallen,' bytes' - else - print *,' ' - print *,' SECTION 2 DOES NOT EXIST IN THIS RECORD' - endif - - print *,' ' - print *,' SECTION 3: griddef= ',gfld%griddef - print *,' ngrdpts= ',gfld%ngrdpts - print *,' numoct_opt= ',gfld%numoct_opt - print *,' interp_opt= ',gfld%interp_opt - print *,' igdtnum= ',gfld%igdtnum - print *,' igdtlen= ',gfld%igdtlen - - print *,' ' - print '(a17,i3,a2)',' GRID TEMPLATE 3.',gfld%igdtnum,': ' - do j=1,gfld%igdtlen - print *,' j= ',j,' gfld%igdtmpl(j)= ',gfld%igdtmpl(j) - enddo - -c Get parameter abbrev for record that was retrieved - print *,' ' - print *,' PDT num (gfld%ipdtnum) = ',gfld%ipdtnum - print *,' ' - print '(a20,i3,a2)',' PRODUCT TEMPLATE 4.',gfld%ipdtnum - & ,': ' - do j=1,gfld%ipdtlen - print *,' sect 4 j= ',j,' gfld%ipdtmpl(j)= ' - & ,gfld%ipdtmpl(j) - enddo - - pdt_4p0_vtime = gfld%ipdtmpl(9) - pdt_4p0_vert_level = gfld%ipdtmpl(12) - - pabbrev=param_get_abbrev(gfld%discipline,gfld%ipdtmpl(1) - & ,gfld%ipdtmpl(2)) - - print *,' ' - write (6,131) - 131 format (' rec# param level byy bmm bdd bhh ' - & ,'fhr npts firstval lastval minval ' - & ,' maxval') - print '(i5,3x,a8,2x,6i5,2x,i8,4g12.4)' - & ,krec,pabbrev,pdt_4p0_vert_level/100,gfld%idsect(6) - & ,gfld%idsect(7),gfld%idsect(8),gfld%idsect(9) - & ,pdt_4p0_vtime,gfld%ndpts,firstval,lastval,dmin,dmax - - endif - - select case (chparm(ip)) - case ('absv') - if (jpdt(12) == 85000) then - call conv1d2d_real (imax,jmax,f,zeta(1,1,1) - & ,need_to_flip_lats) - else - call conv1d2d_real (imax,jmax,f,zeta(1,1,2) - & ,need_to_flip_lats) - endif - case ('ugrid') - if (jpdt(12) == 85000) then - call conv1d2d_real (imax,jmax,f,u(1,1,1) - & ,need_to_flip_lats) - else if (jpdt(12) == 70000) then - call conv1d2d_real (imax,jmax,f,u(1,1,2) - & ,need_to_flip_lats) - else if (jpdt(12) == 50000) then - call conv1d2d_real (imax,jmax,f,u(1,1,3) - & ,need_to_flip_lats) - else - ! Near-surface data - call conv1d2d_real (imax,jmax,f,u(1,1,4) - & ,need_to_flip_lats) - endif - case ('vgrid') - if (jpdt(12) == 85000) then - call conv1d2d_real (imax,jmax,f,v(1,1,1) - & ,need_to_flip_lats) - else if (jpdt(12) == 70000) then - call conv1d2d_real (imax,jmax,f,v(1,1,2) - & ,need_to_flip_lats) - else if (jpdt(12) == 50000) then - call conv1d2d_real (imax,jmax,f,v(1,1,3) - & ,need_to_flip_lats) - else - ! Near-surface data - call conv1d2d_real (imax,jmax,f,v(1,1,4) - & ,need_to_flip_lats) - endif - case ('gphgt') - if (jpdt(12) == 85000) then - call conv1d2d_real (imax,jmax,f,hgt(1,1,1) - & ,need_to_flip_lats) - else - call conv1d2d_real (imax,jmax,f,hgt(1,1,2) - & ,need_to_flip_lats) - endif - case ('mslp') - call conv1d2d_real (imax,jmax,f,slp - & ,need_to_flip_lats) - case ('temp') - call conv1d2d_real (imax,jmax,f,tmean - & ,need_to_flip_lats) - case default - - if ( verb .ge. 1 ) then - print *,'!!! ERROR: BAD CHPARM IN GETDATA = ',chparm(ip) - endif - - end select - - else - - if ( verb .ge. 3 ) then - print *,'!!! NOTE: getgb2 could not find parm: ' - & ,chparm(ip) - print *,'!!! at level = ',ig2_lev_val(ip) - if (inp%lt_units == 'minutes') then - print *,'!!! Forecast time = ',iftotalmins(ifh) - & ,' minutes' - else - print *,'!!! Forecast time = ',ifhours(ifh) - & ,' hours' - endif - endif - - endif - - enddo grib2_standard_parm_read_loop - -c *------------------------------------------------------------* -c If we are attempting to determine the cyclone structure, -c then read in data now that will allow us to do that. -c This is the GRIB2 reading section. -c *------------------------------------------------------------* - - if (phaseflag == 'y') then - - if (phasescheme == 'cps' .or. phasescheme == 'both') then - - ! Read in GP Height levels for cyclone phase space... - - grib2_cps_parm_lev_loop: do ip = 1,nlevs_cps - - ! - ! --- Initialize Variables --- - ! - - gfld%idsect => NULL() - gfld%local => NULL() - gfld%list_opt => NULL() - gfld%igdtmpl => NULL() - gfld%ipdtmpl => NULL() - gfld%coord_list => NULL() - gfld%idrtmpl => NULL() - gfld%bmap => NULL() - gfld%fld => NULL() - - jdisc=0 - jids=-9999 - jpdtn=trkrinfo%g2_jpdtn ! 0 = analysis or forecast; - ! 1 = ens fcst - jgdtn=0 - jgdt=-9999 - jpdt=-9999 - - npoints=0 - icount=0 - jskp=0 - - jpds = -1 - jgds = -1 - j=0 - - ! Set defaults for JPDT, then override in array - ! assignments below... - - JPDT(1:15)=(/-9999,-9999,-9999,-9999,-9999,-9999,-9999 - & ,-9999,-9999,-9999,-9999,-9999,-9999,-9999,-9999/) - - JPDT(1) = cpsig2_parm_cat(ip) - JPDT(2) = cpsig2_parm_num(ip) - - if (inp%lt_units == 'minutes') then - JPDT(8) = 0 - JPDT(9) = iftotalmins(ifh) - else - JPDT(8) = 1 - JPDT(9) = ifhours(ifh) - endif - - JPDT(10) = cpsig2_lev_typ(ip) - if (JPDT(10) == 100) then ! isobaric surface - JPDT(12) = cpsig2_lev_val(ip) * 100 ! GRIB2 levels - ! are in Pa - else - if (verb .ge. 3) then - print *,' ' - print *,'ERROR in getdata: JPDT(10) array value' - print *,'should only be 100 in this CPS section' - print *,'for GRIB2 data.' - endif - endif - - call date_and_time (big_ben(1),big_ben(2),big_ben(3) - & ,date_time) - write (6,731) date_time(5),date_time(6),date_time(7) - 731 format (1x,'TIMING: before getgb2-2',i2.2,':',i2.2,':' - & ,i2.2) - - call getgb2(lugb,lugi,jskp,jdisc,jids,jpdtn,jpdt,jgdtn - & ,jgdt,unpack,krec,gfld,iret) - - call date_and_time (big_ben(1),big_ben(2),big_ben(3) - & ,date_time) - write (6,732) date_time(5),date_time(6),date_time(7) - 732 format (1x,'TIMING: after getgb2-2',i2.2,':',i2.2,':' - & ,i2.2) - - if ( verb .ge. 3 ) then - print *,'iret from getgb2 (PHASE) in getdata = ',iret - print *,'after getgb2 call(PHASE),' - & ,' value of unpacked = ',gfld%unpacked - print *,'after getgb2 (PHASE) call, gfld%ndpts = ' - & ,gfld%ndpts - print *,'after getgb2 (PHASE) call, gfld%ibmap = ' - & ,gfld%ibmap - - print *,' ' - if (inp%lt_units == 'minutes') then - print *,'After getgb2 (PHASE) call, j= ',j,' k= ',k - & ,' ifmins= ',iftotalmins(ifh),' parm # (ip) = ' - & ,ip,' iret= ',iret - else - print *,'After getgb2 (PHASE) call, j= ',j,' k= ',k - & ,' ifhours= ',ifhours(ifh),' parm # (ip) = ' - & ,ip,' iret= ',iret - endif - endif - - if (iret == 0) then - -c Determine packing information from GRIB2 file. -c The default packing is 40 JPEG 2000 - - ipack = 40 - - if (verb .ge. 3) then - print *,' gfld%idrtnum = ', gfld%idrtnum - endif - - ! Set DRT info ( packing info ) - if ( gfld%idrtnum.eq.0 ) then ! Simple packing - ipack = 0 - elseif ( gfld%idrtnum.eq.2 ) then ! Complex packing - ipack = 2 - elseif ( gfld%idrtnum.eq.3 ) then ! Complex & spatial - & ! packing - ipack = 31 - elseif ( gfld%idrtnum.eq.40.or.gfld%idrtnum.eq.15 ) - & then - ! JPEG 2000 packing - ipack = 40 - elseif ( gfld%idrtnum.eq.41 ) then ! PNG packing - ipack = 41 - endif - - if ( verb .ge. 3 ) then - print *,'After check of idrtnum, ipack= ',ipack - print *,'Number of gridpts= gfld%ngrdpts= ' - & ,gfld%ngrdpts - print *,'Number of elements= gfld%igdtlen= ' - & ,gfld%igdtlen - print *,'GDT num= gfld%igdtnum= ',gfld%igdtnum - endif - - kf = gfld%ndpts ! Number of gridpoints returned - ! from read - - do np = 1,kf - f(np) = gfld%fld(np) - if (gfld%ibmap == 0) then - lb(np) = gfld%bmap(np) - else - lb(np) = .true. - endif - enddo - - call bitmapchk(kf,lb,f,dmin,dmax) - -c Convert logical bitmap to 2-d array (only need to do -c this once since using same model for all variables). - - if (lbrdflag .eq. 'n') then - call conv1d2d_logic (imax,jmax,lb,valid_pt - & ,need_to_flip_lats) - lbrdflag = 'y' - endif - - firstval=gfld%fld(1) - lastval=gfld%fld(kf) - - if (verb .ge. 3) then - - print *,' ' - print *,' SECTION 0: discipl= ',gfld%discipline - & ,' gribver= ',gfld%version - print *,' ' - print *,' SECTION 1: ' - - do j = 1,gfld%idsectlen - print *,' sect1, j= ',j,' gfld%idsect(j)= ' - & ,gfld%idsect(j) - enddo - - if ( associated(gfld%local).AND.gfld%locallen.gt.0) - & then - print *,' ' - print *,' SECTION 2: ',gfld%locallen,' bytes' - else - print *,' ' - print *,' SECTION 2 DOES NOT EXIST IN THIS RECORD' - endif - - print *,' ' - print *,' SECTION 3: griddef= ',gfld%griddef - print *,' ngrdpts= ',gfld%ngrdpts - print *,' numoct_opt= ',gfld%numoct_opt - print *,' interp_opt= ',gfld%interp_opt - print *,' igdtnum= ',gfld%igdtnum - print *,' igdtlen= ',gfld%igdtlen - - print *,' ' - print '(a17,i3,a2)',' GRID TEMPLATE 3.' - & ,gfld%igdtnum,': ' - do j=1,gfld%igdtlen - print *,' j= ',j,' gfld%igdtmpl(j)= ' - & ,gfld%igdtmpl(j) - enddo - -c Get parameter abbrev for record that was retrieved - print *,' ' - print *,' PDT num (gfld%ipdtnum) = ' - & ,gfld%ipdtnum - print *,' ' - print '(a20,i3,a2)',' PRODUCT TEMPLATE 4.' - & ,gfld%ipdtnum - & ,': ' - do j=1,gfld%ipdtlen - print *,' sect 4 j= ',j,' gfld%ipdtmpl(j)= ' - & ,gfld%ipdtmpl(j) - enddo - - pdt_4p0_vtime = gfld%ipdtmpl(9) - pdt_4p0_vert_level = gfld%ipdtmpl(12) - - pabbrev=param_get_abbrev(gfld%discipline - & ,gfld%ipdtmpl(1),gfld%ipdtmpl(2)) - - print *,' ' - write (6,231) - 231 format (' rec# param level byy bmm bdd ' - & ,'bhh ' - & ,'fhr npts firstval lastval minval ' - & ,' maxval') - print '(i5,3x,a8,2x,6i5,2x,i8,4g12.4)' - & ,krec,pabbrev,pdt_4p0_vert_level/100,gfld%idsect(6) - & ,gfld%idsect(7),gfld%idsect(8),gfld%idsect(9) - & ,pdt_4p0_vtime,gfld%ndpts,firstval,lastval,dmin - & ,dmax - - endif - -c Convert data to 2-d array - - call conv1d2d_real (imax,jmax,f,cpshgt(1,1,ip) - & ,need_to_flip_lats) - - endif - - enddo grib2_cps_parm_lev_loop - - endif - - endif - - else - - ! Reading from a GRIB v1 file.... - - grib1_read_loop: do ip = 1,nparms - - jpds = -1 - jgds = -1 - j=0 - - if (inp%model == 4) then ! ECMWF hi-res data uses ECMWF table - jpds(5) = ec_igparm(ip) - jpds(6) = ec_iglevtyp(ip) - jpds(7) = ec_iglev(ip) - else ! All other models use NCEP-standard GRIB table - jpds(5) = igparm(ip) - jpds(6) = iglevtyp(ip) - jpds(7) = iglev(ip) - endif - - if (jpds(5) == 999) then - cycle - endif - - if (inp%lt_units == 'minutes') then - jpds(14) = iftotalmins(ifh) - else - jpds(14) = ifhours(ifh) - endif - - call date_and_time (big_ben(1),big_ben(2),big_ben(3) - & ,date_time) - write (6,831) date_time(5),date_time(6),date_time(7) - 831 format (1x,'TIMING: before getgb-1',i2.2,':',i2.2,':',i2.2) - - call getgb (lugb,lugi,jf,j,jpds,jgds, - & kf,k,kpds,kgds,lb,f,iret) - - call date_and_time (big_ben(1),big_ben(2),big_ben(3) - & ,date_time) - write (6,832) date_time(5),date_time(6),date_time(7) - 832 format (1x,'TIMING: after getgb-1',i2.2,':',i2.2,':',i2.2) - - if ( verb .ge. 3 ) then - print *,' ' - if (inp%lt_units == 'minutes') then - print *,'After getgb call, j= ',j,' k= ',k - & ,' iftotalmins= ' - & ,iftotalmins(ifh),' parm # (ip) = ',ip,' iret= ',iret - else - print *,'After getgb call, j= ',j,' k= ',k,' ifhours= ' - & ,ifhours(ifh),' parm # (ip) = ',ip,' iret= ',iret - endif - endif - - if (iret == 0) then - - readflag(ip) = .TRUE. - call bitmapchk(kf,lb,f,dmin,dmax) - - if ( verb .ge. 3 ) then - if (inp%lt_units == 'minutes') then - write (6,29) - else - write (6,31) - endif - 29 format (' rec# parm# levt lev byy bmm bdd bhh fmin' - & ,' npts minval maxval') - 31 format (' rec# parm# levt lev byy bmm bdd bhh fhr ' - & ,' npts minval maxval') - print '(i4,2x,8i5,i8,2g12.4)', - & k,(kpds(i),i=5,11),kpds(14),kf,dmin,dmax - endif - -c Convert logical bitmap to 2-d array (only need to do this -c once since using same model for all variables). - - if (lbrdflag .eq. 'n') then - call conv1d2d_logic (imax,jmax,lb,valid_pt - & ,need_to_flip_lats) - lbrdflag = 'y' - endif - - - select case (chparm(ip)) - case ('absv') - if (jpds(7) == 850) then - call conv1d2d_real (imax,jmax,f,zeta(1,1,1) - & ,need_to_flip_lats) - else - call conv1d2d_real (imax,jmax,f,zeta(1,1,2) - & ,need_to_flip_lats) - endif - case ('ugrid') - if (jpds(7) == 850) then - call conv1d2d_real (imax,jmax,f,u(1,1,1) - & ,need_to_flip_lats) - else if (jpds(7) == 700) then - call conv1d2d_real (imax,jmax,f,u(1,1,2) - & ,need_to_flip_lats) - else if (jpds(7) == 500) then - call conv1d2d_real (imax,jmax,f,u(1,1,3) - & ,need_to_flip_lats) - else - ! Near-surface data - call conv1d2d_real (imax,jmax,f,u(1,1,4) - & ,need_to_flip_lats) - endif - case ('vgrid') - if (jpds(7) == 850) then - call conv1d2d_real (imax,jmax,f,v(1,1,1) - & ,need_to_flip_lats) - else if (jpds(7) == 700) then - call conv1d2d_real (imax,jmax,f,v(1,1,2) - & ,need_to_flip_lats) - else if (jpds(7) == 500) then - call conv1d2d_real (imax,jmax,f,v(1,1,3) - & ,need_to_flip_lats) - else - ! Near-surface data - call conv1d2d_real (imax,jmax,f,v(1,1,4) - & ,need_to_flip_lats) - endif - case ('gphgt') - if (jpds(7) == 850) then - call conv1d2d_real (imax,jmax,f,hgt(1,1,1) - & ,need_to_flip_lats) - else - call conv1d2d_real (imax,jmax,f,hgt(1,1,2) - & ,need_to_flip_lats) - endif - case ('mslp') - call conv1d2d_real (imax,jmax,f,slp - & ,need_to_flip_lats) - case ('temp') - call conv1d2d_real (imax,jmax,f,tmean - & ,need_to_flip_lats) - case default - - if ( verb .ge. 1 ) then - print *,'!!! ERROR: BAD CHPARM IN GETDATA = ',chparm(ip) - endif - - end select - - else - - if ( verb .ge. 3 ) then - print *,'!!! NOTE: getgb could not find parm: ',chparm(ip) - print *,'!!! at level = ',jpds(7) - if (inp%lt_units == 'minutes') then - print *,'!!! Forecast time = ',iftotalmins(ifh) - & ,' minutes' - else - print *,'!!! Forecast time = ',ifhours(ifh) - & ,' hours' - endif - endif - - endif - - enddo grib1_read_loop - -c *------------------------------------------------------------* -c If we are attempting to determine the cyclone structure, -c then read in data now that will allow us to do that. -c *------------------------------------------------------------* - - if (phaseflag == 'y') then - - if (phasescheme == 'cps' .or. phasescheme == 'both') then - - ! Read in GP Height levels for cyclone phase space... - - cps_grib1_lev_loop: do ip = 1,nlevs_cps - - jpds = -1 - jgds = -1 - j=0 - - if (inp%model == 4) then - ! Use different grib parm id for ECMWF GP height - jpds(5) = ec_cpsgparm(ip) - else - jpds(5) = cpsgparm(ip) - endif - jpds(6) = cpsglevtyp(ip) - jpds(7) = cpsglev(ip) - - if (inp%lt_units == 'minutes') then - jpds(14) = iftotalmins(ifh) - else - jpds(14) = ifhours(ifh) - endif - - call date_and_time (big_ben(1),big_ben(2),big_ben(3) - & ,date_time) - write (6,841) date_time(5),date_time(6),date_time(7) - 841 format (1x,'TIMING: before getgb-2',i2.2,':',i2.2 - & ,':',i2.2) - - call getgb (lugb,lugi,jf,j,jpds,jgds, - & kf,k,kpds,kgds,lb,f,iret) - - call date_and_time (big_ben(1),big_ben(2),big_ben(3) - & ,date_time) - write (6,842) date_time(5),date_time(6),date_time(7) - 842 format (1x,'TIMING: after getgb-2',i2.2,':',i2.2 - & ,':',i2.2) - - if ( verb .ge. 3 ) then - print *,' ' - if (inp%lt_units == 'minutes') then - print *,'After getgb (PHASE) call, j= ',j,' k= ',k - & ,' ifmins= ',iftotalmins(ifh),' parm # (ip) = ' - & ,ip,' iret= ',iret - else - print *,'After getgb (PHASE) call, j= ',j,' k= ',k - & ,' ifhours= ',ifhours(ifh),' parm # (ip) = ' - & ,ip,' iret= ',iret - endif - endif - - if (iret == 0) then - - call bitmapchk(kf,lb,f,dmin,dmax) - - if ( verb .ge. 3 ) then - if (inp%lt_units == 'minutes') then - write (6,39) - else - write (6,41) - endif - 39 format (' rec# parm# levt lev byy bmm bdd bhh ' - & ,'fmin npts minval maxval') - 41 format (' rec# parm# levt lev byy bmm bdd bhh ' - & ,'fhr npts minval maxval') - print '(i4,2x,8i5,i8,2g12.4)', - & k,(kpds(i),i=5,11),kpds(14),kf,dmin,dmax - endif - -c Convert data to 2-d array - - call conv1d2d_real (imax,jmax,f,cpshgt(1,1,ip) - & ,need_to_flip_lats) - - endif - - enddo cps_grib1_lev_loop - - endif - - endif - - endif -c - deallocate (f) - deallocate (lb) -c - return - end -c -c------------------------------------------------------------------- -c -c------------------------------------------------------------------- - subroutine bitmapchk (n,ld,d,dmin,dmax) -c -c This subroutine checks the bitmap for non-existent data values. -c Since the data from the regional models have been interpolated -c from either a polar stereographic or lambert conformal grid -c onto a lat/lon grid, there will be some gridpoints around the -c edges of this lat/lon grid that have no data; these grid -c points have been bitmapped out by Mark Iredell's interpolater. -c To provide another means of checking for invalid data points -c later in the program, set these bitmapped data values to a -c value of -999.0. The min and max of this array are also -c returned if a user wants to check for reasonable values. -c - logical(1) ld - dimension ld(n),d(n) -c - dmin=1.E15 - dmax=-1.E15 -c - do i=1,n - if (ld(i)) then - dmin=min(dmin,d(i)) - dmax=max(dmax,d(i)) - else - d(i) = -999.0 - endif - enddo -c - return - end -c -c------------------------------------------------------------------ -c -c------------------------------------------------------------------ - subroutine conv1d2d_logic (imax,jmax,lb1d,lb2d,need_to_flip_lats) -c -c ABSTRACT: This subroutine converts a 1-dimensional input -c array of logical data (lb1d) into a 2-dimensional output -c array (dimension imax,jmax) of logical data (lb2d). -c -c This subroutine was updated in 6/2000 to add the scanning mode -c flag (iscanflag) as an input. This is in order to handle grids -c that are flipped. Most grids -- NCEP, UKMET, ECMWF -- have -c point (1,1) as the uppermost left point on the grid, and the -c data goes from north to south. Some grids -- GFDL and the new -c NOGAPS grid -- are flipped; their point (1,1) is the lowermost -c left point, and their data goes from south to north. So if -c the scanning mode flag indicates northward scanning data -c (bit 2 in the flag is turned on), we catch it in this -c subroutine and flip the data ourselves for our own arrays, -c since this whole program is structured around the data going -c from north to south. As of the writing of this, only the -c first 3 bits of the scanning flag are used, which is why we -c can use the mod statement in the code below. -c -c UPDATE 8/2009: I removed the scanning mode flag, since that is -c GRIB-specific. The north-south determination is now handled with -c the logical flag need_to_flip_lats. -c -c PARAMETERS: -c -c INPUT: -c imax Number of gridpoints in i direction in input box -c jmax Number of gridpoints in j direction in input box -c lb1d 1-d array containing logical bitmap values -c iscanflag This is kgds(11), an integer value in the GDS, -c which holds the scanning mode for the data values -c -c OUTPUT: -c lb2d 2-d array containing logical bitmap values -c - logical(1) lb1d(imax*jmax),lb2d(imax,jmax) - logical(1) :: need_to_flip_lats -c - if (need_to_flip_lats) then - - ! Input data is south to north; flip the data while - ! converting to 2-d grid.... - - do ilat=1,jmax - ilatix = jmax - ilat + 1 - do ilon=1,imax - lb2d(ilon,ilatix) = lb1d(ilon+(ilat-1)*imax) - enddo - enddo - - else - - ! Input data is north to south. Just convert the - ! data onto a 2-d grid, do not flip it.... - - do ilat=1,jmax - do ilon=1,imax - lb2d(ilon,ilat) = lb1d(ilon+(ilat-1)*imax) - enddo - enddo - - endif -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine conv1d2d_real (imax,jmax,dat1d,dat2d,need_to_flip_lats) -c -c ABSTRACT: This subroutine converts a 1-dimensional input -c array of real data (dat1d) into a 2-dimensional output -c array (dimension imax,jmax) of real data (dat2d). -c -c This subroutine was updated in 6/2000 to add the scanning mode -c flag (iscanflag) as an input. This is in order to handle grids -c that are flipped. Most grids -- NCEP, UKMET, ECMWF -- have -c point (1,1) as the uppermost left point on the grid, and the -c data goes from north to south. Some grids -- GFDL and the new -c NOGAPS grid -- are flipped; their point (1,1) is the lowermost -c left point, and their data goes from south to north. So if -c the scanning mode flag indicates northward scanning data -c (bit 2 in the flag is turned on), we catch it in this -c subroutine and flip the data ourselves for our own arrays, -c since this whole program is structured around the data going -c from north to south. As of the writing of this, only the -c first 3 bits of the scanning flag are used, which is why we -c can use the mod statement in the code below. -c -c UPDATE 8/2009: I removed the scanning mode flag, since that is -c GRIB-specific. The north-south determination is now handled with -c the logical flag need_to_flip_lats. -c -c INPUT: -c imax Number of gridpoints in i direction in input box -c jmax Number of gridpoints in j direction in input box -c dat1d 1-d real array of data -c need_to_flip_lats logical flag, set in getgridinfo, that -c indicates if data is correctly N-to-S, or if it is -c S-to-N and needs to be flipped. -c -c OUTPUT: -c dat2d 2-d real array of data -c - logical(1) :: need_to_flip_lats - real dat1d(imax*jmax),dat2d(imax,jmax) -c - if (need_to_flip_lats) then - - ! Input data is south to north; flip the data while - ! converting to 2-d grid.... - - do ilat=1,jmax - ilatix = jmax - ilat + 1 - do ilon=1,imax - dat2d(ilon,ilatix) = dat1d(ilon+(ilat-1)*imax) - enddo - enddo - - else - - ! Input data is north to south. Just convert the - ! data onto a 2-d grid, do not flip it.... - - do ilat=1,jmax - do ilon=1,imax - dat2d(ilon,ilat) = dat1d(ilon+(ilat-1)*imax) - enddo - enddo - - endif -c - return - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine read_nlists (inp,trkrinfo) -c -c ABSTRACT: This subroutine simply reads in the namelists that are -c created in the shell script. Namelist datein contains the -c starting date information, plus the model identifier. Namelist -c stswitch contains the flags for processing for each storm. -c - USE inparms; USE set_max_parms; USE atcf; USE trkrparms; USE phase - USE structure; USE gfilename_info - USE verbose_output; USE waitfor_parms - - implicit none - - integer ifh - type (datecard) inp - type (trackstuff) trkrinfo -c - namelist/datein/inp - namelist/atcfinfo/atcfnum,atcfname,atcfymdh,atcffreq - namelist/trackerinfo/trkrinfo - namelist/phaseinfo/phaseflag,phasescheme,wcore_depth - namelist/structinfo/structflag,ikeflag - namelist/fnameinfo/gmodname,rundescr,atcfdescr - namelist/verbose/verb - namelist/waitinfo/use_waitfor,wait_min_age,wait_min_size - & ,wait_max_wait,wait_sleeptime - & ,use_per_fcst_command,per_fcst_command - -c Set namelist default values: - use_per_fcst_command='t' - per_fcst_command=' ' - atcffreq=600 - trkrinfo%want_oci=.false. - trkrinfo%gribver=1 ! Set to GRIB1 as default, can be set to - ! something else in the namelist input. - - read (5,NML=datein,END=801) - 801 continue - read (5,NML=atcfinfo,END=807) - 807 continue - print *,'just before trackerinfo read namelist' - read (5,NML=trackerinfo,END=809) - 809 continue - print *,'just after trackerinfo read namelist' - read (5,NML=phaseinfo,END=811) - 811 continue - read (5,NML=structinfo,END=815) - 815 continue - read (5,NML=fnameinfo,END=817) - 817 continue - read (5,NML=verbose,END=819,ERR=833) - 819 continue - read (5,NML=waitinfo,END=821) - 821 continue - goto 837 - 833 continue - verb = 1 - 837 continue - - if ( verb .ge. 3 ) then - print *,' ' - print *,'After datein namelist in trak.f, namelist ' - & ,'parms follow:' - print *,'Forecast initial year = byy = ',inp%byy - print *,'Forecast initial month = bmm = ',inp%bmm - print *,'Forecast initial day = bdd = ',inp%bdd - print *,'Forecast initial hour = bhh = ',inp%bhh - print *,'Forecast model identifier = model= ',inp%model - print *,'Forecast model type = modtyp= ',inp%modtyp - print *,'Forecast model data lead time units= lt_units= ' - & ,inp%lt_units - print *,'Forecast model data sequencing setup= file_seq= ' - & ,inp%file_seq - print *,'Forecast model nest type = ',inp%nesttyp -c - print *,' ' - print *,'Values read in from atcfinfo namelist: ' - write (6,89) atcfnum,atcfname - write (6,90) atcfymdh - write (6,92) atcffreq - 89 format ('ATCF ID = ',i2,' ATCF Name = ',a4) - 90 format ('ATCF date (initial date on output atcf records) = ' - & ,i10) - 92 format ('ATCF output frequency (in hours*100) = atcffreq = ',i6) -c - print *,' ' - print *,'Values read in from trackerinfo namelist follow: ' - write (6,101) ' western boundary = westbd = ',trkrinfo%westbd - write (6,101) ' eastern boundary = eastbd = ',trkrinfo%eastbd - write (6,101) ' northern boundary = northbd = ',trkrinfo%northbd - write (6,101) ' southern boundary = southbd = ',trkrinfo%southbd - write (6,102) ' tracker type = ',trkrinfo%type - write (6,103) ' mslp threshold = mslpthresh = ' - & ,trkrinfo%mslpthresh - write (6,103) ' v850 threshold = v850thresh = ' - & ,trkrinfo%v850thresh - write (6,104) ' model grid type = ',trkrinfo%gridtype - write (6,101) ' Contour interval to be used = ',trkrinfo%contint - write (6,106) ' Flag for whether or not roci will be computed' - & ,' and written out for tracker-type case = ' - & ,trkrinfo%want_oci - write (6,105) ' Flag for whether or not vitals will be written ' - & ,'out = ',trkrinfo%out_vit - write (6,107) ' Flag for which GRIB version (1 or 2) the input' - & ,' data will be in = ',trkrinfo%gribver - write (6,108) ' Flag for input GRIB2 JPDTN (0 or 1) = ' - & ,trkrinfo%g2_jpdtn - 101 format (a31,f7.2) - 102 format (a16,a7) - 103 format (a31,f7.4) - 104 format (a19,a8) - 106 format (a46,a41,L1) - 105 format (a48,a6,a1) - 107 format (a47,a19,i1) - 108 format (a38,i1) - - print *,' ' - print *,'Values read in from phaseinfo namelist: ' - write (6,211) phaseflag,phasescheme - write (6,212) wcore_depth - 211 format ('Storm phase flag = ',a1,' Phase scheme = ',a4) - 212 format ('Storm phase, warm core depth (wcore_depth) = ',f7.2) - - print *,' ' - print *,'Values read in from structinfo namelist: ' - write (6,93) structflag - write (6,95) ikeflag - 93 format ('Structure flag = ',a1) - 95 format ('IKE flag = ',a1) - - print *,' ' - print *,'Values read in for grib file name from fnameinfo' - & ,' namelist: ' - write (6,131) gmodname - write (6,133) rundescr - write (6,135) atcfdescr - 131 format ('Model name description = gmodname = ',a4) - 133 format ('Forecast run description = rundescr = ',a40) - 135 format ('Optional ATCF / Storm name description = atcfdescr = ' - & ,a40) - - print *,' ' - print *,'Value read in from verbose namelist:' - write (6,141) verb - 141 format ('Value read in for verbose flag = verb = ',i2) - - print *,' ' - print *,'Values read in from waitinfo namelist:' - write (6,151) use_waitfor - write (6,152) wait_min_age - write (6,153) wait_min_size - write (6,154) wait_max_wait - write (6,155) wait_sleeptime - if(len_trim(per_fcst_command)>0) then - write (6,156) trim(per_fcst_command) - else -c No command specified, so disable the feature - use_per_fcst_command='n' - endif - 151 format ('Flag for input file waiting = use_waitfor = ',a1) - 152 format ('min age (time in seconds since last mod) = ' - & ,'wait_min_age = ',i8) - 153 format ('min file size in bytes = wait_min_size = ',i12) - 154 format ('max number of seconds to wait for each file = ' - & ,'wait_max_wait = ',i6) - 155 format ('number of seconds to sleep between checks = ' - & ,'wait_sleeptime = ',i6) - 156 format ('command to run after every forecast time = "',A,'"') -c - if (use_waitfor == 'y') then - if (inp%file_seq == 'multi') then - continue - else - print *,' ' - print *,'!!! ERROR: The use_waitfor flag is set to "y".' - print *,' This requires that the inp%file_seq flag be' - print *,' set to "multi", but you have specified ' - print *,' something else. ' - print *,' inp%file_seq = ',inp%file_seq - print *,' STOPPING....' - print *,' ' - STOP 95 - endif - endif -c - endif - return - end -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine read_fhours (ifhmax) -c -c ABSTRACT: This subroutine reads in a text file that contains the -c forecast times that will be read in. The format of the file is -c in "MMMMM", i.e., minutes, for example, for a forecast going out -c to 120h, the file would look like this: -c -c For reference, here -c are the times that -c match up with the -c minutes on the left: -c -c 1 0 0:00 -c 2 240 4:00 -c 3 270 4:30 -c 4 300 5:00 -c 5 330 5:30 -c 6 360 6:00 -c 7 600 10:00 -c 8 630 10:30 -c 9 660 11:00 -c 10 690 11:30 -c 11 720 12:00 -c 12 960 16:00 -c 13 990 16:30 -c . . . -c . . . -c . . . -c 87 7200 120:00 -c -c Note that we are now allowing for sub-hourly time intervals. -c - USE tracked_parms - USE verbose_output - - implicit none -c - integer, parameter :: iunit_fh=15 - integer itmphrs(750),itmpmins(750),input_mins(750),itmpltix(750) - integer ifhmax,inphr,inpmin,ict,i,ifa,ifma,icma,ira,inpltix,ila - real xminfract - - itmphrs = -99 - itmpmins = -99 - - if (allocated(ifhours)) deallocate (ifhours) - if (allocated(iftotalmins)) deallocate (iftotalmins) - if (allocated(ifclockmins)) deallocate (ifclockmins) - if (allocated(fhreal)) deallocate (fhreal) - if (allocated(ltix)) deallocate (ltix) - - ict = 0 - do while (.true.) - - if ( verb .ge. 3 ) then - print *,'Top of while loop in read_fhours' - endif - - read (iunit_fh,85,end=130) inpltix,inpmin - write (6,85) inpltix,inpmin - - if (inpmin >= 0 .and. inpmin < 150000) then - ict = ict + 1 - itmpltix(ict) = inpltix - itmphrs(ict) = inpmin / 60 - itmpmins(ict) = mod(inpmin,60) - input_mins(ict) = inpmin - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: Input minutes not between 0 and 150000' - print *,'!!! inpmin= ',inpmin - print *,'!!! STOPPING EXECUTION' - endif - - STOP 91 - endif - - if ( verb .ge. 3 ) then - print *,'readloop, ict= ',ict,' inpmin= ',inpmin - endif - - enddo - - 130 continue - - ifhmax = ict - - 85 format (i4,1x,i5) - - if ( verb .ge. 3 ) then - print *,' ' - endif - - allocate (ifhours(ifhmax),stat=ifa) - allocate (iftotalmins(ifhmax),stat=ifma) - allocate (ifclockmins(ifhmax),stat=icma) - allocate (fhreal(ifhmax),stat=ira) - allocate (ltix(ifhmax),stat=ila) - if (ifa /= 0 .or. ifma /= 0 .or. icma /= 0 .or. ira /= 0 .or. - & ila /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in read_fhours allocating either ifhours,' - print *,'!!! iftotalmins, ifclockmins or fhreal.' - print *,'!!! ifa = ',ifa,' ifma= ',ifma,' ira= ',ira - print *,'!!! icma= ',icma,' ila= ',ila - print *,'!!! STOPPING EXECUTION' - endif - - STOP 91 - endif - - do i = 1,ifhmax - - ltix(i) = itmpltix(i) - xminfract = float(itmpmins(i)) / 60. - fhreal(i) = float(itmphrs(i)) + xminfract - ifhours(i) = itmphrs(i) - ifclockmins(i) = itmpmins(i) - iftotalmins(i) = input_mins(i) - - if (i > 1) then - if (fhreal(i) > fhreal(i-1)) then - continue - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! ERROR: In read_fhours, the time read in ' - print *,'!!! is not greater than the previous time.' - print *,'!!! i= ',i - print *,'!!! fhreal(i)= ',fhreal(i) - print *,'!!! fhreal(i-1)= ',fhreal(i-1) - print *,'!!! STOPPING EXECUTION' - endif - - STOP 91 - endif - endif - - if ( verb .ge. 3 ) then - write (6,87) i,ltix(i),iftotalmins(i),fhreal(i),ifhours(i) - & ,ifclockmins(i) - endif - - enddo - - 87 format (1x,'i= ',i3,' input lead time index= ',i4,' minutes= ' - & ,i5,' real_lead_time= ',f6.2,' clock_lead_time= ',i3,':' - & ,i2) -c - return - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine read_tcv_card (lucard,maxstorm,trkrinfo,numtcv,iret) -c -c ABSTRACT: This subroutine reads in the updated TC Vitals file -c for the current time and prints out those cards (storms) -c that have been selected to be processed. It also -c takes the initial positions from the tcv card for each -c storm and puts them into the slonfg & slatfg arrays. -c Note that this routine is reading in vitals in the -c standard format for TCs only. Any genesis vitals are -c read in in subroutine read_gen_vitals. -c -c INPUT: -c lucard integer unit number for tcvitals card -c trkrinfo derived type that contains info on the type of -c tracker run that we are performing. -c -c OUTPUT: -c maxstorm max # of storms to be handled for this case -c numtcv number of storms read off of the input tcvitals file -c iret return code from this subroutine -c -c OTHER: -c stormswitch 1,2 or 3 (see more description under Main pgm section) -c slonfg first guess array for longitude -c slatfg first guess array for latitude -c storm contains the tcvitals info -c (storm, stormswitch, slonfg and slatfg are allocatable and are -c defined in module def_vitals) - - USE def_vitals; USE set_max_parms; USE trkrparms - USE verbose_output - - implicit none - - type (tcvcard) tmpstorm(maxstorm_tc) - type (trackstuff) trkrinfo - integer isa,issa,ioa,iaa,ita,iret,ict,maxstorm - integer i,ii,lucard,numtcv -c------ - ii=1 - do while (.true. .and. ii <= maxstorm_tc) - read (lucard,21,END=801,ERR=891) tmpstorm(ii) - ii = ii + 1 - enddo - 21 format (a4,1x,a3,1x,a9,1x,i8,1x,i4,1x,i3,a1,1x,i4,a1,1x,i3,1x - & ,i3,3(1x,i4),1x,i2,1x,i3,1x,4(i4,1x),a1) - - 801 continue - - numtcv = ii - 1 - - if (trkrinfo%type == 'midlat' .or. trkrinfo%type == 'tcgen') then - ! For the mid-latitude or tc genesis cases, the max number - ! of storms (maxstorm) allowed to be tracked throughout a - ! forecast is defined in module set_max_parms. - - if ( verb .ge. 3 ) then - print *,' ' - print *,'In read_tcv_card, tracker type of "midlat" or ' - print *,'"tcgen" indicates that this run of the tracker is' - print *,'for a midlat or a tcgen case....' - endif - - maxstorm = maxstorm_mg - allocate (stormswitch(maxstorm),stat=isa) - allocate (storm(maxstorm),stat=issa) - allocate (slonfg(maxstorm,maxtime),stat=ioa) - allocate (slatfg(maxstorm,maxtime),stat=iaa) - allocate (stcvtype(maxstorm),stat=ita) - if (isa /= 0 .or. ioa /= 0 .or. iaa /= 0 .or. issa /= 0 .or. - & ita /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in read_tcv_card allocating stormswitch,' - print *,'!!! slonfg, storm, slatfg or stcvtype arrays. ' - print *,'!!! isa = ',isa,' ioa= ',ioa,' iaa= ',iaa,' issa= ' - print *,'!!! ',issa,' ita= ',ita - endif - - iret = 97 - return - endif - slonfg = 0.0; slatfg = 0.0 - stcvtype = 'FOF' ! Found On the Fly by tracker (not on tcvitals) - stormswitch = 3 ! Initialize whole array to case of '3' - if (numtcv > 0) then - if ( verb .ge. 3 ) then - print *,' ' - print *,'Following are the already-existing storms that' - print *,'were read in from the tc vitals file: ' - print *,' ' - endif - - ict = 0 - do i=1,numtcv - stormswitch(i) = 1 - storm(i) = tmpstorm(i) - ict = ict + 1 - - if ( verb .ge. 3 ) then - write (*,31) storm(i) - endif - - if (storm(i)%tcv_lonew == 'W') then - slonfg(i,1) = 360. - float(storm(i)%tcv_lon)/10.0 - else - slonfg(i,1) = float(storm(i)%tcv_lon)/10.0 - endif - if (storm(i)%tcv_latns == 'S') then - slatfg(i,1) = -1. * float(storm(i)%tcv_lat)/10.0 - else - slatfg(i,1) = float(storm(i)%tcv_lat)/10.0 - endif - stcvtype(i) = 'TCV' ! Storm listed on tcvitals - -c if (trkrinfo%type == 'midlat') then -c storm(i)%tcv_center = 'MIDL' -c else if (trkrinfo%type == 'tcgen') then -c storm(i)%tcv_center = 'TCG ' -c endif -c write (storm(i)%tcv_storm_id,'(i4.4)') i -c write (storm(i)%tcv_storm_name,'(i4.4)') i - - enddo - endif - iret=0 - return - else - ! For the tracker cases, the max number of storms (maxstorm) - ! allowed to be tracked throughout a forecast is defined by - ! the number of vitals read in above. - maxstorm = numtcv - allocate (stormswitch(maxstorm),stat=isa) - allocate (storm(maxstorm),stat=issa) - allocate (slonfg(maxstorm,maxtime),stat=ioa) - allocate (slatfg(maxstorm,maxtime),stat=iaa) - allocate (stcvtype(maxstorm),stat=ita) - if (isa /= 0 .or. ioa /= 0 .or. iaa /= 0 .or. issa /= 0 .or. - & ita /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in read_tcv_card allocating stormswitch,' - print *,'!!! slonfg, storm, slatfg or stcvtype arrays. ' - print *,'!!! isa = ',isa,' ioa= ',ioa,' iaa= ',iaa,' issa= ' - print *,'!!! ',issa,' ita= ',ita - endif - - iret = 97 - return - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,'Following are the storms to be processed: ' - print *,' ' - endif - - slonfg = 0.0; slatfg = 0.0 - stcvtype = ' ' ! Not needed for regular tracker run.... - ict=0 - do i=1,maxstorm - stormswitch(i) = 1 - storm(i) = tmpstorm(i) - ict = ict + 1 - - if ( verb .ge. 3 ) then - write (*,31) storm(i) - endif - - if (storm(i)%tcv_lonew == 'W') then - slonfg(i,1) = 360. - float(storm(i)%tcv_lon)/10.0 - else - slonfg(i,1) = float(storm(i)%tcv_lon)/10.0 - endif - if (storm(i)%tcv_latns == 'S') then - slatfg(i,1) = -1. * float(storm(i)%tcv_lat)/10.0 - else - slatfg(i,1) = float(storm(i)%tcv_lat)/10.0 - endif - enddo - - if (ict.gt.0) then - iret = 0 - return - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in read_tcv_card, num storms to be ' - print *,'!!! processed is not greater than 0 for a tracker' - print *,'!!! case. Check to see that you have the Fortran' - print *,'!!! unit assigned right in your script.' - endif - - iret = 99 - return - endif - - endif - - 31 format (a4,1x,a3,1x,a9,1x,i8.8,1x,i4.4,1x,i3,a1,1x,i4,a1,1x - & ,i3,1x,i3,3(1x,i4),1x,i2,1x,i3,1x,4(i4,1x),a1) - - 891 continue - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in read_tcv_card reading unit ',lucard - endif - - iret = 98 -c - return - end -c -c----------------------------------------------------------------------- -c -c----------------------------------------------------------------------- - subroutine read_gen_vitals (lgvcard,maxstorm,trkrinfo,numtcv,iret) -c -c ABSTRACT: This subroutine reads in a modified TC Vitals file -c for the current time and prints out those cards (storms) that -c have been selected to be processed. It also takes the initial -c positions from the tcv card for each storm and puts them into -c the slonfg & slatfg arrays. -c -c The reason that these are referred to as modified tcvitals is -c that the format is different from standard TC vitals format. -c These vitals are created by a previous run of this tracker -c executable, and the storm identifier is different than that -c for a standard tcvitals. The storm -c identifier contains the date/time that the storm was first -c identified, and the lat/lon position at which it was first -c identified. -c -c EXAMPLE: The following is a standard TC Vitals record, split -c up over 3 lines: -c -c NHC 01L ALBERTO 20060614 1200 343N 0807W 035 093 1004 1012 -c 0278 15 222 -999 -999 -999 -999 M -999 -999 -999 -999 72 -c 520N 410W -999 -999 -999 -999 -c -c EXAMPLE: The following is the format for the "genesis" vitals, -c split over 3 lines, for the same system: -c -c 2006061000_F000_210N_0853W_01L 20060614 1200 343N 0807W 035 093 -c 1004 1012 0278 15 222 -999 -999 -999 -999 M -999 -999 -c -999 -999 72 520N 410W -999 -999 -999 -999 -c -c EXAMPLE: If the vitals record is for a non-officially numbered -c system (i.e., any system that's not a TC being tracked -c by NHC or JTWC), then the storm number is replaced -c by the characters "FOF", for "Found On the Fly" by -c the tracker. -c -c 2006071500_F000_150N_0681W_FOF 20060718 1200 185N 0792W 035 093 -c 1004 1012 0278 15 222 -999 -999 -999 -999 M -999 -999 -c -999 -999 72 520N 410W -999 -999 -999 -999 -c -c NOTE: The "F000" in there at character positions 12-15 are to -c indicate the forecast hour within that forecast cycle -c that the storm was first detected. For a vitals record, -c this is always going to be 000 for fhr=0h, and really, -c it's not even needed. However, I'm keeping it in there -c in order to keep the storm ID format exactly the same -c as the output_atcf_sink forecast track record, which -c does have a use for that "FXXX" identifier in the -c output. -c -c INPUT: -c lgvcard integer unit number for tcgen-tcvitals card -c -c OUTPUT: -c maxstorm max # of storms to be handled for this case -c iret return code from this subroutine -c -c INPUT/OUTPUT: -c numtcv As an input, this variable contains the number of -c *tropical* cyclone vitals (i.e., regular tcvitals) that -c were read off of the input tcvitals file in subroutine -c read_tcv_card. This variable will be incremented for -c each "modified" vitals record that is read in this -c subroutine, and so as output, this variable will -c contain the combined total of tcvitals and modified -c vitals records. -c -c OTHER: -c stormswitch 1,2 or 3 (see more description under Main pgm section) -c slonfg first guess array for longitude -c slatfg first guess array for latitude -c storm contains the tcvitals info -c (storm, stormswitch, slonfg and slatfg are allocatable and are -c defined in module def_vitals) -c - USE def_vitals; USE set_max_parms; USE trkrparms; USE gen_vitals - USE verbose_output - - implicit none - - type (gencard) tmpstorm(maxstorm_mg) - type (trackstuff) trkrinfo - integer iret,maxstorm - integer i,ii,lgvcard,numtcv,num_mod_vit,vitix,iga -c------ - ! Read in all of the "genesis vitals" into a temp array. The - ! index for the first array member is one past the number of - ! tc vitals that were read in in subroutine read_tcv_card. - ii = numtcv + 1 - do while (.true. .and. ii <= maxstorm_mg) - read (lgvcard,24,END=801,ERR=891) tmpstorm(ii) - ii = ii + 1 - enddo - - 24 format (i10,2x,i3,1x,i3,a1,1x,i4,a1,1x,a3,1x,i8,1x,i4,1x,i3,a1,1x - & ,i4,a1,1x,i3,1x,i3,3(1x,i4),1x,i2,1x,i3,1x,4(i4,1x),a1) - - 801 continue - - num_mod_vit = ii - numtcv - 1 - - allocate (gstorm(maxstorm_mg),stat=iga) - if (iga /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in read_gen_vitals allocating gstorm array' - print *,'!!! iga = ',iga - endif - - iret = 97 - return - endif - - ! Initialize all "genesis dates" to 99999. Any new genesis - ! vitals that are read in below will bring in real dates, and - ! then we can test the date in output_gen_vitals to know if a - ! storm was already defined or not at the beginning of this - ! executable or if it was a new storm that was found. - - do i = 1,maxstorm_mg - gstorm(i)%gv_gen_date = 99999 - enddo - - ! If there are any TC vitals (i.e., officially named TCs - ! that are being numbered/tracked by either NHC or JTWC), then - ! we want to take the important information from those vitals - ! and put that into genesis vitals. This will enable us to - ! output *all* of these systems in the "gen_vitals" or - ! "gstorm" format. The one difference here is that for the - ! genesis date, we use the starting date of this forecast, not - ! the time that the storm first formed. Also, set the genesis - ! forecast hour (gv_gen_fhr) to be 0 for TCs that have a - ! TC vitals record. - - if (numtcv > 0) then - do i = 1,numtcv - gstorm(i)%gv_gen_date = storm(i)%tcv_ymd * 100 + - & storm(i)%tcv_hhmm / 100 - gstorm(i)%gv_gen_fhr = 0 - gstorm(i)%gv_gen_lat = storm(i)%tcv_lat - gstorm(i)%gv_gen_latns = storm(i)%tcv_latns - gstorm(i)%gv_gen_lon = storm(i)%tcv_lon - gstorm(i)%gv_gen_lonew = storm(i)%tcv_lonew - gstorm(i)%gv_gen_type = storm(i)%tcv_storm_id - gstorm(i)%gv_obs_ymd = storm(i)%tcv_ymd - gstorm(i)%gv_obs_hhmm = storm(i)%tcv_hhmm - gstorm(i)%gv_obs_lat = storm(i)%tcv_lat - gstorm(i)%gv_obs_latns = storm(i)%tcv_latns - gstorm(i)%gv_obs_lon = storm(i)%tcv_lon - gstorm(i)%gv_obs_lonew = storm(i)%tcv_lonew - if ( verb .ge. 3 ) then - write (*,34) gstorm(i) - endif - enddo - endif - - if (num_mod_vit > 0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'Following are the vitals for storms that were' - print *,'read in from the modified (genesis) tc vitals file: ' - print *,' ' - endif - - do i=1,num_mod_vit - vitix = i + numtcv - stormswitch(vitix) = 1 - ! On the following line we are filling the array gstorm, - ! which is new in this subroutine. Note, however, that we - ! are not necessarily starting it at 1, but at the point in - ! the array after any TC Vitals may have been read in. - gstorm(vitix) = tmpstorm(vitix) - - if ( verb .ge. 3 ) then - write (*,34) gstorm(vitix) - endif - - ! For the sake of consistency (and sanity!!), we need to also - ! use the same "storm" array as was used in read_tcv_card, - ! since this "storm" array is used often throughout the rest - ! of this executable. - - write (storm(vitix)%tcv_storm_id,'(i4.4)') vitix - write (storm(vitix)%tcv_storm_name,'(i4.4)') vitix - storm(vitix)%tcv_ymd = gstorm(vitix)%gv_obs_ymd - storm(vitix)%tcv_hhmm = gstorm(vitix)%gv_obs_hhmm - storm(vitix)%tcv_lat = gstorm(vitix)%gv_obs_lat - storm(vitix)%tcv_latns = gstorm(vitix)%gv_obs_latns - storm(vitix)%tcv_lon = gstorm(vitix)%gv_obs_lon - storm(vitix)%tcv_lonew = gstorm(vitix)%gv_obs_lonew - storm(vitix)%tcv_stdir = gstorm(vitix)%gv_stdir - storm(vitix)%tcv_stspd = gstorm(vitix)%gv_stspd - - if (trkrinfo%type == 'midlat') then - storm(vitix)%tcv_center = 'MIDL' - else if (trkrinfo%type == 'tcgen') then - storm(vitix)%tcv_center = 'TCG ' - endif - - if (gstorm(vitix)%gv_obs_lonew == 'W') then - slonfg(vitix,1) = 360. - float(gstorm(vitix)%gv_obs_lon) - & / 10.0 - else - slonfg(vitix,1) = float(gstorm(vitix)%gv_obs_lon)/10.0 - endif - if (gstorm(vitix)%gv_obs_latns == 'S') then - slatfg(vitix,1) = -1. * float(gstorm(vitix)%gv_obs_lat)/10.0 - else - slatfg(vitix,1) = float(gstorm(vitix)%gv_obs_lat)/10.0 - endif - stcvtype(vitix) = 'FOF' ! Storm "Found On the Fly" by tracker - - enddo - endif - - 34 format (i10,1x,'F',i3.3,1x,i3.3,a1,1x,i4.4,a1,1x,a3,1x,i8,1x,i4.4 - & ,1x,i3.3,a1,1x,i4.4,a1,1x,i3,1x,i3,3(1x,i4),1x,i2,1x,i3,1x - & ,4(i4,1x),a1) - -c Update the total number of vitals that have been read in - - numtcv = numtcv + num_mod_vit - - goto 895 -c - 891 continue - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in read_gen_vitals reading unit ',lgvcard - endif - - iret = 98 - - 895 continue -c - return - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine getgridinfo (imax,jmax,ifh,dx,dy,lugb,lugi,trkrinfo - & ,need_to_flip_lats,need_to_flip_lons,inp,iggret) -c -c ABSTRACT: The purpose of this subroutine is just to get the max -c values of i and j and the dx and dy grid spacing intervals for the -c grid to be used in the rest of the program. So just read the -c grib file to get the lon and lat data. Also, get the info for -c the data grid's boundaries. This boundary information will be -c used later in the tracking algorithm, and is accessed via Module -c grid_bounds. -c - USE grid_bounds; USE trkrparms; USE tracked_parms; USE inparms - USE verbose_output; USE params; USE grib_mod - - implicit none - - type (trackstuff) trkrinfo - type (datecard) inp - - type(gribfield) :: gfld,prevfld,holdgfld - logical(1) :: need_to_flip_lats,need_to_flip_lons - logical(1), allocatable :: lb(:) - logical :: unpack=.true. - logical :: open_grb=.false. - CHARACTER(len=8) :: pabbrev - integer,dimension(200) :: jids,jpdt,jgdt - integer, parameter :: jf=40000000 - integer :: listsec1(13) - integer pdt_4p0_vert_level,pdt_4p0_vtime - real xhold,xlondiff,xlatdiff,temp,firstval,lastval - real, allocatable :: f(:) - real, allocatable :: tmplon(:),tmplat(:) - real, intent(out) :: dx,dy - integer jpds(200),jgds(200),igetpds(200),igetgds(200) - integer, intent(in) :: ifh - integer, intent(out) :: imax,jmax - integer iia,ija,ila,midi,midj,i,j,iix,jix,ifa,iret - integer iscanflag,iggret,kf,k,lugb,lugi,jskp,jdisc - integer jpdtn,jgdtn,npoints,icount,ipack,krec - integer :: listsec0(2)=(/0,2/) - integer :: igds(5)=(/0,0,0,0,0/),previgds(5) - integer :: idrstmpl(200) - integer :: currlen=1000000 - - iggret = 0 - - allocate (lb(jf),stat=ila); allocate (f(jf),stat=ifa) - if (ila /= 0 .or. ifa /= 0) then - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in getgridinfo allocating either lb or f' - print *,'!!! ila = ',ila,' ifa= ',ifa - endif - iggret = 97 - return - endif - - if (trkrinfo%gribver == 2) then - - ! Search for a record from a GRIB2 file - - ! - ! --- Initialize Variables --- - ! - - gfld%idsect => NULL() - gfld%local => NULL() - gfld%list_opt => NULL() - gfld%igdtmpl => NULL() - gfld%ipdtmpl => NULL() - gfld%coord_list => NULL() - gfld%idrtmpl => NULL() - gfld%bmap => NULL() - gfld%fld => NULL() - - jdisc=0 ! meteorological products - jids=-9999 - jpdtn=trkrinfo%g2_jpdtn ! 0 = analysis or forecast; 1 = ens fcst - jgdtn=0 ! lat/lon grid - jgdt=-9999 - jpdt=-9999 - - npoints=0 - icount=0 - jskp=0 - -c Search for Temperature or GP Height by production template.... - - JPDT(1:15)=(/-9999,-9999,-9999,-9999,-9999,-9999,-9999 - & ,-9999,-9999,-9999,-9999,-9999,-9999,-9999,-9999/) - - ! Request a record on a lat/lon grid. - - jgdtn = 0 - - ! Request a record at the current forecast lead time. - - if (inp%lt_units == 'minutes') then - jpdt(8) = 0 - jpdt(9) = iftotalmins(ifh) - else - jpdt(8) = 1 - jpdt(9) = ifhours(ifh) - endif - - print *,'before getgb2 call, lugb= ',lugb,' lugi= ',lugi - - call getgb2(lugb,lugi,jskp,jdisc,jids,jpdtn,jpdt,jgdtn,jgdt - & ,unpack,krec,gfld,iret) - if ( iret.ne.0) then - print *,' ' - print *,' ERROR: getgb2 error in getgridinfo = ',iret - print *,' FATAL ERROR: cannot proceed without info ' - print *,' from getgridinfo. STOPPING....' - stop 95 - endif - -c Determine packing information from GRIB2 file -c The default packing is 40 JPEG 2000 - - ipack = 40 - - if ( verb .ge. 3 ) then - print *,' ' - print *,' -- BEGIN getgridinfo diagnostics for GRIB2 file ---' - print *,' -- at ifh= ',ifh - print *,' ' - print *,' gfld%idrtnum = ', gfld%idrtnum - endif - - ! Set DRT info ( packing info ) - if ( gfld%idrtnum.eq.0 ) then ! Simple packing - ipack = 0 - elseif ( gfld%idrtnum.eq.2 ) then ! Complex packing - ipack = 2 - elseif ( gfld%idrtnum.eq.3 ) then ! Complex & spatial packing - ipack = 31 - elseif ( gfld%idrtnum.eq.40.or.gfld%idrtnum.eq.15 ) then - ! JPEG 2000 packing - ipack = 40 - elseif ( gfld%idrtnum.eq.41 ) then ! PNG packing - ipack = 41 - endif - - if ( verb .ge. 3 ) then - print *,'After check of idrtnum, ipack= ',ipack - print *,'Number of gridpts= gfld%ngrdpts= ',gfld%ngrdpts - print *,'Number of elements= gfld%igdtlen= ',gfld%igdtlen - print *,'PDT num= gfld%ipdtnum= ',gfld%ipdtnum - print *,'GDT num= gfld%igdtnum= ',gfld%igdtnum - endif - - imax = gfld%igdtmpl(8) - jmax = gfld%igdtmpl(9) - dx = float(gfld%igdtmpl(17))/1.e6 - dy = float(gfld%igdtmpl(17))/1.e6 - kf = gfld%ngrdpts - - holdgfld = gfld - - if (verb .ge. 3) then - - print *,' ' - print *,' SECTION 0: discipl= ',gfld%discipline - & ,' gribver= ',gfld%version - - print *,' ' - print *,' SECTION 1: ' - - do j = 1,gfld%idsectlen - print *,' sect1, j= ',j,' gfld%idsect(j)= ' - & ,gfld%idsect(j) - enddo - - if ( associated(gfld%local).AND.gfld%locallen.gt.0) then - print *,' ' - print *,' SECTION 2: ',gfld%locallen,' bytes' - else - print *,' ' - print *,' SECTION 2 DOES NOT EXIST IN THIS RECORD' - endif - - print *,' ' - print *,' SECTION 3: griddef= ',gfld%griddef - print *,' ngrdpts= ',gfld%ngrdpts - print *,' numoct_opt= ',gfld%numoct_opt - print *,' interp_opt= ',gfld%interp_opt - print *,' igdtnum= ',gfld%igdtnum - print *,' igdtlen= ',gfld%igdtlen - - print *,' ' - print '(a17,i3,a2)',' GRID TEMPLATE 3.',gfld%igdtnum,': ' - do j=1,gfld%igdtlen - print *,' j= ',j,' gfld%igdtmpl(j)= ',gfld%igdtmpl(j) - enddo - -c Get parameter abbrev for record that was retrieved - print *,' ' - print *,' PDT num (gfld%ipdtnum) = ',gfld%ipdtnum - print *,' ' - print '(a20,i3,a2)',' PRODUCT TEMPLATE 4.',gfld%ipdtnum,': ' - do j=1,gfld%ipdtlen - print *,' sect 4 j= ',j,' gfld%ipdtmpl(j)= ' - & ,gfld%ipdtmpl(j) - enddo - - pdt_4p0_vtime = gfld%ipdtmpl(9) - pdt_4p0_vert_level = gfld%ipdtmpl(12) - - pabbrev=param_get_abbrev(gfld%discipline,gfld%ipdtmpl(1) - & ,gfld%ipdtmpl(2)) - - firstval=gfld%fld(1) - lastval=gfld%fld(kf) - - print *,' ' - write (6,131) - 131 format (' rec# param level byy bmm bdd bhh ' - & ,'fhr npts firstval lastval') - print '(i5,3x,a8,2x,6i5,2x,i8,4g12.4)' - & ,krec,pabbrev,pdt_4p0_vert_level/100,gfld%idsect(6) - & ,gfld%idsect(7),gfld%idsect(8),gfld%idsect(9) - & ,pdt_4p0_vtime,gfld%ndpts,firstval,lastval - - print *,' ' - print *,' -- END getgridinfo diagnostics for GRIB2 file ---' - print *,' -- at ifh= ',ifh - print *,' ' - print *,' ' - print *,' ' - - endif - - need_to_flip_lons = .false. - - iscanflag = gfld%igdtmpl(19) - if (mod(iscanflag,128) >= 64) then - ! Input data is south to north... - glatmin = float(gfld%igdtmpl(12))/1.e6 - glatmax = float(gfld%igdtmpl(15))/1.e6 - need_to_flip_lats = .true. - else - ! Input data is north to south... - glatmin = float(gfld%igdtmpl(15))/1.e6 - glatmax = float(gfld%igdtmpl(12))/1.e6 - need_to_flip_lats = .false. - endif - - glonmin = float(gfld%igdtmpl(13))/1.e6 - glonmax = float(gfld%igdtmpl(16))/1.e6 - - print *,'TEST getgridinfo: glatmin= ',glatmin - print *,'TEST getgridinfo: glatmax= ',glatmax - print *,'TEST getgridinfo: glonmin= ',glonmin - print *,'TEST getgridinfo: glonmax= ',glonmax - - else - - ! Search for a record from a GRIB1 file - - jpds = -1 - jgds = -1 - - jgds(1) = 0 ! Request a record that's on a lat/lon grid - - if ( verb .ge. 3 ) then - print *,'before getgb in getgridinfo, ifh= ',ifh - write (6,402) ifhours(ifh),ifclockmins(ifh) - 402 format (1x,'* Forecast hour: ',i4,':',i2.2) - print *,' ifhours(ifh)= ',ifhours(ifh) - print *,' iftotalmins(ifh)= ',iftotalmins(ifh) - endif - - ! Request a record at the current forecast lead time. - - if (inp%lt_units == 'minutes') then - jpds(14) = iftotalmins(ifh) - else - jpds(14) = ifhours(ifh) - endif - - j=0 - - call getgb(lugb,lugi,jf,j,jpds,jgds, - & kf,k,igetpds,igetgds,lb,f,iret) - - if (iret.ne.0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in getgridinfo calling getgb' - print *,'!!! Return code from getgb = iret = ',iret - endif - - iggret = iret - else - iggret=0 - imax = igetgds(2) - jmax = igetgds(3) - dx = float(igetgds(9))/1000. - dy = float(igetgds(10))/1000. - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,'In getgridinfo, grid dimensions follow:' - print *,'imax= ',imax,' jmax= ',jmax - print *,' dx= ',dx,' dy= ',dy - endif - - -c ---------------------------------------------------------------- -c Get boundaries of the data grid. NOTE: gds(4) is referred to in -c GRIB documenatation as the "Latitude of origin", which might -c imply "minimum Latitude". However, for the grids that we'll be -c using in this program, the "Latitude of origin" will be listed -c under gds(4) as the northernmost point (eg., in MRF, -c gds(4) = 90), so for this program, use gds(4) as your max lat, -c and gds(7) as your min lat. However, in case NCEP, UKMET or -c ECMWF change their convention and begin flipping their grids, a -c check is made to make sure that the max lat is not less than the -c min lat. -c -c BUGFIX (August, 2001): It is possible to have an input grid -c which goes from south to north (such as NOGAPS). In this case, -c we flip the data in subroutine conv1d2d_real. However, the max -c and min latitudes listed in the GRIB GDS will be confused, so we -c need to check the value of the GRIB scanning mode flag here. - - need_to_flip_lons = .false. - - iscanflag = igetgds(11) - if (mod(iscanflag,128) >= 64) then - ! Input data is south to north... - glatmin = float(igetgds(4))/1000. - glatmax = float(igetgds(7))/1000. - need_to_flip_lats = .true. - else - ! Input data is north to south... - glatmin = float(igetgds(7))/1000. - glatmax = float(igetgds(4))/1000. - need_to_flip_lats = .false. - endif - - glonmin = float(igetgds(5))/1000. - glonmax = float(igetgds(8))/1000. - - endif - -c After this point in this subroutine, nothing is GRIB1 / GRIB2 -c specific, so it does not need to be within the if/then -c statement above that differentiated between GRIB / GRIB2. - - if (glonmin < 0.0) glonmin = 360. - abs(glonmin) - if (glonmax < 0.0) glonmax = 360. - abs(glonmax) - - if (glonmin < 0.0) then - glonmin = 360. - abs(glonmin) - if (glonmax <= 0.0) then - glonmax = 360. - abs(glonmax) - else - glonmax = 360 + abs(glonmax) - endif - endif - - if (glatmax < glatmin) then - temp = glatmax - glatmax = glatmin - glatmin = temp - endif - - if (glonmin > 200.0 .and. glonmin <= 360.) then - if (glonmax < 50.) then - ! Likely GM-wrapping in current record - glonmax = glonmax + 360. - endif - endif -c - if ( verb .ge. 3 ) then - print *,' ' - print *,'Data Grid Lat/Lon boundaries follow:' - write (6,81) glatmin,glonmin - 81 format (' Min Lat: ',f8.3,' Min Lon: ',f8.3) - write (6,83) glatmax,glonmax - 83 format (' Max Lat: ',f8.3,' Max Lon: ',f8.3) - print *,' ' - print *,'NOTE: For regional grids, valid data points might' - print *,'NOT extend all the way to the gds-defined grid ' - print *,'boundary, due to the fact that data have been ' - print *,'interpolated from a NPS or Lamb-Conf grid onto a ' - print *,'lat/lon grid. This program checks the logical ' - print *,'bitmap for valid data points, but just keep this in' - print *,'mind if trying to debug errors that occur near the' - print *,'grid boundaries for regional models.' - endif - -c ---------------------------------------------------------------- -c Fill glat and glon with the lat & lon values for the grid. This -c info will be used in subroutine barnes - - if (allocated(glat)) deallocate(glat) - if (allocated(glon)) deallocate(glon) - - allocate (glat(jmax),stat=ija) - allocate (glon(imax),stat=iia) - if (ija /= 0 .or. iia /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in getgridinfo allocating glon or glat' - print *,'!!! ija = ',ija,' iia= ',iia - endif - - iggret = 96 - return - endif - - do j=1,jmax - glat(j) = glatmax - (j-1)*dy - enddo - do i=1,imax - glon(i) = glonmin + (i-1)*dx - enddo - - deallocate (lb); deallocate(f) - -c -------------------------------------------------------------- -c Finally, check to see if the requested boundary limits that -c the user input are contained within this grid (for example, -c someone running this tracker on a regional grid may have -c forgotten to change the input grid bounds from a global grid -c run). Modify the user-input bounds as needed. -c -c NOTE: Only check these bounds for a genesis run on a regional -c grid, whether that be a 'midlat' or a 'tcgen' run. - - if (trkrinfo%gridtype == 'regional' .and. - & trkrinfo%type /= 'tracker') then - - if (trkrinfo%eastbd > glonmax) then - xhold = trkrinfo%eastbd - trkrinfo%eastbd = glonmax - 5.0 - - if ( verb .ge. 3 ) then - write (6,90) - write (6,91) - write (6,92) - write (6,93) - write (6,94) - write (6,95) - write (6,96) - write (6,97) 'EASTERN LONGITUDE' - write (6,98) xhold - write (6,99) trkrinfo%eastbd - write (6,91) - endif - - endif - - if (trkrinfo%westbd < glonmin) then - xhold = trkrinfo%westbd - trkrinfo%westbd = glonmin + 5.0 - - if ( verb .ge. 3 ) then - write (6,90) - write (6,91) - write (6,92) - write (6,93) - write (6,94) - write (6,95) - write (6,96) - write (6,97) 'WESTERN LONGITUDE' - write (6,98) xhold - write (6,99) trkrinfo%westbd - write (6,91) - endif - - endif - - if (trkrinfo%northbd > glatmax) then - xhold = trkrinfo%northbd - trkrinfo%northbd = glatmax - 5.0 - if ( verb .ge. 3 ) then - write (6,90) - write (6,91) - write (6,92) - write (6,93) - write (6,94) - write (6,95) - write (6,96) - write (6,97) 'NORTHERN LATITUDE' - write (6,98) xhold - write (6,99) trkrinfo%northbd - write (6,91) - endif - - endif - - if (trkrinfo%southbd < glatmin) then - xhold = trkrinfo%southbd - trkrinfo%southbd = glatmin + 5.0 - - if ( verb .ge. 3 ) then - write (6,90) - write (6,91) - write (6,92) - write (6,93) - write (6,94) - write (6,95) - write (6,96) - write (6,97) 'SOUTHERN LATITUDE' - write (6,98) xhold - write (6,99) trkrinfo%southbd - write (6,91) - endif - - endif - - endif - - 90 format (///) - 91 format (' *********************************************') - 92 format (' WARNING: A USER-REQUESTED BOUNDARY IS BEYOND') - 93 format (' THE BOUNDARY OF THE DATA, AS DEFINED IN THE ') - 94 format (' GRIB FILE. THE USER BOUNDARY WILL BE MODIFIED') - 95 format (' TO MATCH THE BOUNDARY OF THE DATA FILE.') - 96 format (' ') - 97 format (' USER-INPUT BOUNDARY AT FAULT: ',A20) - 98 format (' USER-INPUT BOUNDARY VALUE: ',f8.2) - 99 format (' NEW BOUNDARY VALUE: ',f8.2) - -c - return - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine check_valid_point (imax,jmax,dx,dy,fxy,cmaxmin - & ,valid_pt,rlont,rlatt,grid_maxlat,grid_minlat,grid_maxlon - & ,grid_minlon,trkrinfo,icvpret) -c -c ABSTRACT: This subroutine checks to see if the input lat/lon -c point is associated with four surrounding (i,j) locations that -c have valid data. The writing of this routine was prompted by the -c HFIP project in February, 2009. Some of their high resolution -c data for their inner nests contained grids that had been rotated -c from native map projections to regular lat/lon grids, but that -c rotation left "empty" spots on the lat/lon grid where there is -c no data. Then when searching in find_maxmin, we were running -c barnes iterations from these lat/lon locations where there was -c no data, which would give artificially low values at those -c lat/lon locations (because the barnes scheme would only include -c points that were relatively far away where there was valid data). -c So in this routine, we call subroutine fix_latlon_to_ij in order -c to get the nearest (i,j) coordinates, and then we check all of -c these points to make sure that valid data exist. -c -c INPUT: -c imax Num pts in i-direction on grid -c jmax Num pts in j-direction on grid -c dx grid spacing in i-direction -c dy grid spacing in j-direction -c fxy real array of input data values -c cmaxmin character that tells if searching for max or min -c valid_pt Logical; bitmap indicating if valid data at that pt -c rlatt,rlont input lat/lon about which we will check the -c surrounding (i,j) locations for valid data. -c grid_maxlat northernmost latitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset. -c grid_minlat southernmost latitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset. -c grid_maxlon easternmost longitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset. -c grid_minlon westernmost longitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset. -c trkrinfo derived type containing grid info on user boundaries -c -c OUTPUT: -c icvpret return code from this routine. A value of 0 means that -c all is okay and the input point is surrounded by valid -c data. - - USE trkrparms - - implicit none -c - type (trackstuff) trkrinfo - - integer imax,jmax,ifix,jfix - integer ifilret,icvpret - character(*) cmaxmin - logical(1) valid_pt(imax,jmax) - real fxy(imax,jmax) - real rlont,rlatt,xdum,gridpoint_maxmin - real dx,dy,grid_maxlat,grid_minlat,grid_maxlon,grid_minlon -c - call fix_latlon_to_ij (imax,jmax,dx,dy,fxy,cmaxmin - & ,valid_pt,rlont,rlatt - & ,xdum,ifix,jfix,gridpoint_maxmin,'checker' - & ,grid_maxlat,grid_minlat,grid_maxlon,grid_minlon - & ,trkrinfo,ifilret) - - if (ifilret /= 0) then - icvpret = 99 - return - endif - - if (valid_pt(ifix,jfix)) then - icvpret = 0 - else - icvpret = 99 - endif -c - return - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine fix_latlon_to_ij (imax,jmax,dx,dy,fxy,cmaxmin - & ,valid_pt,parmlon,parmlat,xdataval - & ,ifix,jfix,gridpoint_maxmin,ccall - & ,grid_maxlat,grid_minlat,grid_maxlon,grid_minlon - & ,trkrinfo,ifilret) -c -c ABSTRACT: This subroutine takes an input lat/lon position and -c assigns it to a nearby (i,j) gridpoint. If this is being used -c before the call to check_closed_contour after the barnes analysis -c to see if we have a storm or not, then the lat/lon position that -c is input into this subroutine is one which was obtained from a -c barnes analysis, so it is essentially an area-weighted average -c of nearby points. What we need to do in this subroutine is find -c the actual nearby gridpoint which does have the actual raw max or -c min value. Then we return the (i,j) coordinates of that point as -c well as that raw data value at that point. -c -c INPUT: -c imax Num pts in i-direction on grid -c jmax Num pts in j-direction on grid -c dx grid spacing of the data grid in i-direction -c dy grid spacing of the data grid in j-direction -c fxy real array of input data values -c cmaxmin character that tells if searching for max or min -c valid_pt Logical; bitmap indicating if valid data at that pt -c parmlon lon at which input parameter center was found, or the lon -c for the mean storm center fix (check calling routine) -c parmlat lat at which input parameter center was found, or the lat -c for the mean storm center fix (check calling routine) -c xdataval barnes-obtained value of parameter at (parmlon,parmlat) -c ccall character that tells if this call is part of a tracker -c fix routine or just from the check_valid_point routine -c ('tracker' or 'checker') -c grid_maxlat northernmost latitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset, or it may be the -c original grid itself. -c grid_minlat southernmost latitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset, or it may be the -c original grid itself. -c grid_maxlon easternmost longitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset, or it may be the -c original grid itself. -c grid_minlon westernmost longitude on the input grid being sent to -c this routine. This grid may be a subset of the original -c full grid from the original dataset, or it may be the -c original grid itself. -c trkrinfo derived type containing grid info on user boundaries -c -c OUTPUT: -c ifix i-index for gridpoint to which the max or min is assigned -c jfix j-index for gridpoint to which the max or min is assigned -c gridpoint_maxmin value of fxy at (ifix,jfix). This will be -c different from the input value xdataval, which came from -c the barnes averaging. This is the raw value at the -c gridpoint. - - USE grid_bounds; USE trkrparms - USE verbose_output - - implicit none -c - type (trackstuff) trkrinfo - - integer imax,jmax,istart,iend,jstart,jend,ifix,jfix - integer ipfix,jpfix,i,j,ifilret,iix,jix,grfact - character(*) cmaxmin,ccall - logical(1) valid_pt(imax,jmax) - real fxy(imax,jmax) - real parmlon,parmlat,xdataval,gridpoint_maxmin - real xplon,yplat,dmin,dmax,dx,dy,grdspc - real grid_maxlat,grid_minlat,grid_maxlon,grid_minlon - - ifilret = 0 - -c print *,' ' -c print *,'-------------------------------------------- ' -c print *,'Top of fix_latlon_to_ij, call type = ',ccall -c print *,'parmlon= ',parmlon,' parmlat= ',parmlat -c print *,'max lon = ',grid_maxlon,' max lat = ',grid_maxlat -c print *,'min lon = ',grid_minlon,' min lat = ',grid_minlat - -c Fix parmlat to the *nearest* j-point (i.e., round it....) - - if (parmlat >= 0.0) then ! N. Hemisphere - jpfix = int((grid_maxlat - parmlat)/dy + 1.0 + 0.5) - else ! S. Hemisphere - jpfix = ceiling((grid_maxlat - parmlat)/dy + 1.0 - 0.5) - endif - -c Fix parmlon to the *nearest* i-point (i.e., round it....) - - ipfix = int((parmlon - grid_minlon)/dx + 1.0 + 0.5) - -c Calculate the longitude and latitude of these ipfix and -c jpfix points.... - - xplon = grid_minlon + (ipfix-1)*dx - yplat = grid_maxlat - (jpfix-1)*dy - -c We want to do a simple search in the very few points around -c this (ipfix,jpfix) point to find the raw max or min data -c value. First we need to set up a 4x4 box to search: -c -c o o o o -c -c -c o a b o -c + -c -c o c d o -c -c -c o o o o -c -c In the above diagram, if "+" is the lat/lon location of our -c barnes-found point (i.e., the input (parmlon,parmlat)), and -c a-b-c-d is the square of points surrounding "+", we only want -c to look out 1 layer of points further. So first we need to -c know, for each case we're looking at, if "+" got assigned to -c a or b or c or d. By the way, if the parmlon falls directly -c on a gridpoint in either the i or j direction, we will only -c look at the 2 gridpoints on either side of that point, as -c opposed to having 4 points set up as in the box above. -c -c UPDATE (4-Feb-2011): For fine resolution grids, it is -c possible to have the gridpoint max/min be more than 1 or 2 grid -c points away from the barnes-averaged max. So allow for this -c here, with a check of grdspc ((dx+dy)/2) below and the -c addition of the "grfact" multiplier for fine resolution grids. - -c print *,'ipfix= ',ipfix,' xplon= ',xplon -c print *,'jpfix= ',jpfix,' yplat= ',yplat - - grdspc = (dx+dy)*0.5 - if (grdspc <= 0.10) then - grfact = 4 - else if (grdspc > 0.10 .and. grdspc <= 0.20) then - grfact = 3 - else if (grdspc > 0.20 .and. grdspc <= 0.30) then - grfact = 2 - else - grfact = 1 - endif - - if (xplon < parmlon) then !(ipfix is at either a or c) - istart = ipfix - (1*grfact) - iend = ipfix + (2*grfact) - else if (xplon > parmlon) then !(ipfix is at either b or d) - istart = ipfix - (2*grfact) - iend = ipfix + (1*grfact) - else if (xplon == parmlon) then !(parmlon is exactly ipfix) - istart = ipfix - (1*grfact) - iend = ipfix + (1*grfact) - endif - - if (yplat < parmlat) then !(jpfix is at either c or d) - jstart = jpfix - (2*grfact) - jend = jpfix + (1*grfact) - else if (yplat > parmlat) then !(jpfix is at either a or b) - jstart = jpfix - (1*grfact) - jend = jpfix + (2*grfact) - else if (yplat == parmlat) then !(parmlat is exactly jpfix) - jstart = jpfix - (1*grfact) - jend = jpfix + (1*grfact) - endif - -c print *,'istart= ',istart,' iend= ',iend -c print *,'jstart= ',jstart,' jend= ',jend -c print *,' ' - -c Make sure the edges of our box are within the grid bounds... - - if (jstart > jmax ) then - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in fix_latlon_to_ij, jstart > jmax' - print *,'!!! ',ccall,' jstart = ',jstart,' jmax= ',jmax - endif - - - ifilret = 99 - return - endif - if (jend < 1) then - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in fix_latlon_to_ij, ',ccall - & ,' jend < 1, jend = ',jend - endif - - ifilret = 99 - return - endif - if (jstart < 1) jstart = 1 - if (jend > jmax) jend = jmax - - if (istart > imax ) then - if (trkrinfo%gridtype == 'global') then - continue ! GM wrapping will be handled in loop below... - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in fix_latlon_to_ij, istart > imax' - print *,'!!! istart = ',istart,' imax= ',imax - endif - - ifilret = 99 - return - endif - endif - - if (iend < 1) then - if (trkrinfo%gridtype == 'global') then - continue ! GM wrapping will be handled in loop below... - else - - if ( verb .ge. 1 ) then - print *,'!!! ERROR in fix_latlon_to_ij, iend < 1, iend = ' - & ,iend,' call type = ',ccall - endif - - ifilret = 99 - return - endif - endif - - if (iend > imax) then - if (trkrinfo%gridtype == 'global') then - continue ! GM wrapping will be handled in loop below... - else - iend = imax ! For a regional grid, just cut it off - endif - endif - - if (istart < 1) then - if (trkrinfo%gridtype == 'global') then - continue ! GM wrapping will be handled in loop below... - else - istart = 1 ! For a regional grid, just cut it off - endif - endif - -c Now look for the max or min value.... - - dmax = -9.99e12 - dmin = 9.99e12 - ifix = ipfix - jfix = jpfix - - do iix = istart,iend - do jix = jstart,jend - - i = iix - j = jix - - if (i < 1) then - i = iix + imax !GM wrapping - endif - if (i > imax) then - i = iix - imax !GM wrapping - endif - - if (valid_pt(i,j)) then - continue - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In fix_latlon_to_ij, we tried to ' - print *,'!!! access an invalid data point.' - print *,'!!! ',ccall,' i= ',i,' j= ',j - print *,'!!! ipfix= ',ipfix,' jpfix= ',jpfix - print *,'!!! parmlon= ',parmlon,' parmlat= ',parmlat - print *,' ' - endif - - ifilret = 98 - return - endif - - if (cmaxmin == 'min') then - if (fxy(i,j) < dmin) then - dmin = fxy(i,j) - ifix = i - jfix = j - endif - else - if (fxy(i,j) > dmax) then - dmax = fxy(i,j) - ifix = i - jfix = j - endif - endif - - enddo - enddo - - if (cmaxmin == 'min') then - gridpoint_maxmin = dmin - else - gridpoint_maxmin = dmax - endif - -c print *,' End of fix_latlon_to_ij, gridpoint_maxmin = ' -c & ,gridpoint_maxmin - -c - return - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine rvcal (imax,jmax,dlon,dlat,z,vp) -c -c ABSTRACT: This routine calculates the relative vorticity (zeta) -c from u,v on an evenly-spaced lat/lon grid. Centered finite -c differences are used on the interior points and one-sided -c differences are used on the boundaries. -c -c NOTE: There are 3 critical arrays in this subroutine, the first -c being zeta and the 2nd and 3rd being u and v. There is a -c critical difference in the array indexing for the levels. For -c zeta, the array is dimensioned with levels from 1 to 3, with -c 1 = 850, 2 = 700, 3 = sfc. However, there is an extra level -c for the winds, such that the level dimension goes 1 = 850, -c 2 = 700, 3 = 500, 4 = sfc. So we need to adjust for that in -c this routine. -c -c LOCAL VARIABLES: -c - USE tracked_parms; USE trig_vals; USE grid_bounds - USE verbose_output - - implicit none - - dimension cosfac(jmax),tanfac(jmax) - real tmpzeta(imax,jmax) - real xlondiff,xlatdiff,dlon,dlat,dfix - real dlat_edge,dlat_inter,dlon_edge,dlon_inter - real rlat(jmax),cosfac,tanfac - integer z,iscanflag,nlat,nlon,i,j,imax,jmax,w - integer ii,jj - logical(1) vp(imax,jmax) - -c -------------------------- - -c Figure out what level of data we have and what the array -c indices should be. - - if (z == 1) then - ! z = 1 for 850 mb zeta, w = 1 for 850 mb winds - w = 1 - else if (z == 2) then - ! z = 2 for 700 mb zeta, w = 2 for 700 mb winds - w = 2 - else if (z == 3) then - ! z = 3 for sfc zeta, w = 4 for sfc (10m) winds - w = 4 - endif - -c Calculate grid increments for interior and edge points. - -c IMPORTANT: If dtk is defined in module trig_vals in km, then -c we need to multiply by 1000 here to get meters. If it's defined -c as meters, just let it be. Since the wind values are given in -c meters, that's why we need the dlon values to be in meters. - - if (dtk < 750.) then ! chances are, dtk was defined as km - dfix = 1000.0 - else ! dtk was already defined as meters - dfix = 1.0 - endif - - dlon_edge = dtk * dfix * dlon ! Di dist over 1 grid pt - dlat_edge = dtk * dfix * dlat ! Dj dist over 1 grid pt - dlon_inter = dtk * dfix * 2.0 * dlon ! Di dist over 2 grid pts - dlat_inter = dtk * dfix * 2.0 * dlat ! Dj dist over 2 grid pts - - -c Calculate required trig functions. These are functions of -c latitude. Remember that the grid must go from north to south. -c This north-to-south requirement has -c already been checked in subroutine getgridinfo. If necessary, -c any flipping of the latitudes was done there, and flipping of -c the data, again if necessary, was done in subroutine getdata. - - do j=2,jmax-1 - rlat(j) = glatmax - ((j-1) * dlat) - cosfac(j) = cos(dtr*rlat(j)) - tanfac(j) = (tan(dtr*rlat(j)))/erad - enddo - -c Set trig factors at end points to closest interior point -c to avoid a singularity if the domain includes the poles, -c which it will for the global grids (MRF, GDAS, GFS, UKMET,NCE) - - cosfac(1) = cosfac(2) - tanfac(1) = tanfac(2) - cosfac(jmax) = cosfac(jmax-1) - tanfac(jmax) = tanfac(jmax-1) - -c NOTE: These next bits of vorticity calculation code assume that -c the input grid is oriented so that point (1,1) is the upper -c left-most (NW) and point (imax,jmax) is the lower right- -c most point. Any other grids will probably crash the -c program due to array out of bounds errors. -c NOTE: Before each calculation is done, the logical array is -c checked to make sure that all the data points in this -c calculation have valid data (ie., that the points are not -c outside a regional model's boundaries). -c -c !!! IMPORTANT NOTE: While testing this, I uncovered a bug, which was -c that I had the "j+1" and "j-1" reversed. Just from a physical -c understanding, the du/dy term at a point is calculated by taking -c the u value north of the point minus the u value south of the -c point. Intuitively, this is u(j+1) - u(j-1). However, we have -c designed this program to have the northernmost point as -c the beginning of the grid (i.e., for the global grids, j=1 at 90N, -c and j increases southward). Thus, if you would do u(j+1) - -c u(j-1), you would actually be taking the u value south of the -c point minus the u value north of the point, EXACTLY THE OPPOSITE -c OF WHAT YOU WANT. Therefore, the vorticity calculations have -c been changed so that we now have u(j-1) - u(j+1). -c -c UPDATE FEB 2009: With limited domain grids that have missing -c data on them (such as you would have for a grid that has been -c converted from a non-lat/lon grid to a lat/lon grid), we were -c running into problems below with the setting of zeta values to -c a missing value of -999. In place of this, the easiest thing to -c do is to simply assign a value of the background coriolis value -c to that point. No, this is not correct, but it is the easiest -c workaround for this right now. Setting it to zero would be too -c far off. Setting it to the coriolis component has a net effect -c of not having much impact on the barnes scheme result. -c -c --------------- -c Interior points -c --------------- - - if ( verb .ge. 3 ) then - print *,'Just before inter rvcalc, dlon_inter = ',dlon_inter - & ,' dlat_inter = ',dlat_inter - endif - - do j=2,jmax-1 - do i=2,imax-1 -c - if (vp(i,j) .and. vp(i+1,j) .and. vp(i-1,j) .and. - & vp(i,j+1) .and. vp(i,j-1)) then -c - zeta(i,j,z)= (v(i+1,j,w) - v(i-1,j,w))/(dlon_inter * cosfac(j)) - & - (u(i,j-1,w) - u(i,j+1,w))/(dlat_inter) - & + tanfac(j)*u(i,j,w) - - else -c zeta(i,j,z)= -999. - zeta(i,j,z) = 2. * omega * sin(rlat(j)*dtr) - endif -c - enddo - enddo -c -c ----------------------------- -c Bottom (Southernmost) points -c ----------------------------- -c - j=jmax - do i=2,imax-1 -c - if (vp(i,j) .and. vp(i+1,j) .and. vp(i-1,j) .and. - & vp(i,j-1)) then -c - zeta(i,j,z)= (v(i+1,j,w) - v(i-1,j,w))/(dlon_inter * cosfac(j)) - & - (u(i,j-1,w) - u(i,j,w))/(dlat_edge) - & + tanfac(j)*u(i,j,w) - else -c zeta(i,j,z)= -999. - zeta(i,j,z) = 2. * omega * sin(rlat(j)*dtr) - endif -c - enddo -c -c -------------------------- -c Top (Northernmost) points -c -------------------------- -c - j=1 - do i=2,imax-1 -c - if (vp(i,j) .and. vp(i+1,j) .and. vp(i-1,j) .and. - & vp(i,j+1)) then -c - zeta(i,j,z)= (v(i+1,j,w) - v(i-1,j,w))/(dlon_inter * cosfac(j)) - & - (u(i,j,w) - u(i,j+1,w))/(dlat_edge) - & + tanfac(j)*u(i,j,w) - else -c zeta(i,j,z)= -999. - zeta(i,j,z) = 2. * omega * sin(rlat(j)*dtr) - endif -c - enddo -c -c ------------------------------- -c Left edge (Westernmost) points -c ------------------------------- -c - i=1 - do j=2,jmax-1 -c - if (vp(i,j) .and. vp(i+1,j) .and. vp(i,j+1) .and. - & vp(i,j-1)) then -c - zeta(i,j,z) = (v(i+1,j,w) - v(i,j,w))/(dlon_edge * cosfac(j)) - & - (u(i,j-1,w) - u(i,j+1,w))/(dlat_inter) - & + tanfac(j)*u(i,j,w) - else -c zeta(i,j,z)= -999. - zeta(i,j,z) = 2. * omega * sin(rlat(j)*dtr) - endif -c - enddo -c -c -------------------------------- -c Right edge (Easternmost) points -c -------------------------------- -c - i=imax - do j=2,jmax-1 -c - if (vp(i,j) .and. vp(i-1,j) .and. vp(i,j+1) .and. - & vp(i,j-1)) then -c - zeta(i,j,z) = (v(i,j,w) - v(i-1,j,w))/(dlon_edge * cosfac(j)) - & - (u(i,j-1,w) - u(i,j+1,w))/(dlat_inter) - & + tanfac(j)*u(i,j,w) - else -c zeta(i,j,z)= -999. - zeta(i,j,z) = 2. * omega * sin(rlat(j)*dtr) - endif -c - enddo -c -c --------- -c SW corner -c --------- - i=1 - j=jmax - if (vp(i,j) .and. vp(i+1,j) .and. vp(i,j-1) ) then -c - zeta(i,j,z) = (v(i+1,j,w)-v(i,j,w))/(dlon_edge * cosfac(j)) - & - (u(i,j-1,w)-u(i,j,w))/(dlat_edge) - & + tanfac(j)*u(i,j,w) - else -c zeta(i,j,z)= -999. - zeta(i,j,z) = 2. * omega * sin(rlat(j)*dtr) - endif -c -c --------- -c NW corner -c --------- - i=1 - j=1 - if (vp(i,j) .and. vp(i+1,j) .and. vp(i,j+1) ) then -c - zeta(i,j,z) = (v(i+1,j,w) - v(i,j,w))/(dlon_edge * cosfac(j)) - & - (u(i,j,w) - u(i,j+1,w))/(dlat_edge) - & + tanfac(j)*u(i,j,w) - else -c zeta(i,j,z)= -999. - zeta(i,j,z) = 2. * omega * sin(rlat(j)*dtr) - endif -c -c --------- -c NE corner -c --------- - i=imax - j=1 - if (vp(i,j) .and. vp(i-1,j) .and. vp(i,j+1) ) then -c - zeta(i,j,z) = (v(i,j,w) - v(i-1,j,w))/(dlon_edge * cosfac(j)) - & - (u(i,j,w) - u(i,j+1,w))/(dlat_edge) - & + tanfac(j)*u(i,j,w) - else -c zeta(i,j,z)= -999. - zeta(i,j,z) = 2. * omega * sin(rlat(j)*dtr) - endif -c -c --------- -c SE corner -c --------- - i=imax - j=jmax - if (vp(i,j) .and. vp(i-1,j) .and. vp(i,j-1) ) then -c - zeta(i,j,z) = (v(i,j,w)-v(i-1,j,w))/(dlon_edge * cosfac(j)) - & - (u(i,j-1,w)-u(i,j,w))/(dlat_edge) - & + tanfac(j)*u(i,j,w) - else -c zeta(i,j,z)= -999. - zeta(i,j,z) = 2. * omega * sin(rlat(j)*dtr) - endif -c - do ii=1,imax - do jj=1,jmax - tmpzeta(ii,jj) = zeta(ii,jj,z) * 1.e5 - enddo - enddo - - return - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine first_ges_center (imax,jmax,dx,dy,cparm,fxy - & ,cmaxmin,trkrinfo,ifh,valid_pt,maxstorm,masked_out - & ,stormct,contour_info,maxmini,maxminj,ifgcret) -c -c ABSTRACT: This subroutine scans an array and picks out areas of -c max or min, then loads those center positions into the first- -c guess lat & lon arrays to be used by subroutine tracker for -c locating the very specific low center positions. -c -c INPUT: -c imax Number of gridpoints in i direction in input grid -c jmax Number of gridpoints in j direction in input grid -c dx Grid spacing in i-direction for the input grid -c dy Grid spacing in j-direction for the input grid -c cparm Char string indicating what parm is being passed in -c fxy Real array of data values -c finf Logical. Field of influence. Dimension same as fxy -c cmaxmin Char string to indicate if search is for a max or a min -c trkrinfo Derived type that holds/describes various tracker parms, -c including the contour interval to be used -c ifh Index for the forecast hour -c valid_pt Logical bitmap masking non-valid grid points. This is a -c concern for the regional models, which are interpolated -c from Lam-Conf or NPS grids onto lat/lon grids, leaving -c grid points around the edges which have no valid data. -c maxstorm max # of storms that can be handled in this run -c -c INPUT/OUTPUT: -c masked_out Logical. T = data point is already accounted for, under -c the influence of another nearby max or min center, -c F = data point is available to be scanned by this -c subroutine for max or min centers. -c stormct Integer: keeps and increments a running tab of the number -c of storms that have been tracked at any time across all -c forecast hours -c contour_info Type cint_stuff from module contours. Contains -c contour information -c -c OUTPUT: -c maxmini Integer array containing i-indeces of max/min locations -c maxminj Integer array containing j-indeces of max/min locations -c ifgcret return code from this subroutine -c -c OTHER: -c storm Contains the tcvitals for the storms (module def_vitals) - - USE trkrparms; USE grid_bounds; USE set_max_parms; USE def_vitals - USE contours; USE tracked_parms - USE verbose_output - - implicit none - - type (trackstuff) trkrinfo - type (cint_stuff) contour_info - - integer i,j,n,isstart,ifamret,ibeg,jbeg,iend,jend - integer ifh,maxstorm,imax,jmax,itemp,ifgcret - integer stormct,oldstormct - logical(1) valid_pt(imax,jmax),masked_out(imax,jmax) - character(*) cparm,cmaxmin - integer maxmini(maxstorm),maxminj(maxstorm) - real fxy(imax,jmax) - real dmax,dmin,dx,dy,dbuffer,tmp - - if ( verb .ge. 3 ) then - print *,' ' - print *,'*-------------------------------------------------*' - print *,'* At top of first_ges_center *' - write (6,102) ifhours(ifh),ifclockmins(ifh) - 102 format (1x,'* Searching for new lows at hour ',i4,':',i2.2) - print *,'*-------------------------------------------------*' - endif - - -c First check the user-supplied grid boundaries to see if we will -c scan the entire array or just a portion of it. - - if (trkrinfo%northbd < -998.0 .or. trkrinfo%southbd < -998.0 .or. - & trkrinfo%westbd < -998.0 .or. trkrinfo%eastbd < -998.0) then - ! User did not specify a subgrid, so scan the whole domain - ibeg = 1 - iend = imax - jbeg = 1 - jend = jmax - else - -c if (trkrinfo%westbd > 360.0 .or. trkrinfo%eastbd < 0.0 .or. -c & trkrinfo%westbd < 0.0 .or. - - if (trkrinfo%westbd > 360.0 .or. - & trkrinfo%northbd > 90.0 .or. trkrinfo%northbd <-90.0 .or. - & trkrinfo%southbd > 90.0 .or. trkrinfo%southbd <-90.0 .or. - & trkrinfo%westbd >= trkrinfo%eastbd .or. - & trkrinfo%southbd >= trkrinfo%northbd) then - - if (trkrinfo%westbd > trkrinfo%eastbd) then - - if (trkrinfo%westbd < 360.0 .and. - & trkrinfo%eastbd >= 0.0)then - - ! In this special case, the user has specified that the - ! western boundary be to the west of the Greenwich - ! meridian and the eastern boundary be to the east of it. - - if ( verb .ge. 3 ) then - print *,' ' - print *,'++ NOTE: The user supplied grid lon boundaries' - print *,'++ span across the Greenwich meridian.' - print *,'++ ' - print *,'++ Western boundary: ',trkrinfo%westbd - print *,'++ Eastern boundary: ',trkrinfo%eastbd - print *,'++ Northern boundary: ',trkrinfo%northbd - print *,'++ Southern boundary: ',trkrinfo%southbd - print *,' ' - endif - - ! Calculate the beginning and ending i and j points for - ! this case of spanning the Greenwich meridian. The - ! beginning and ending j points are, obviously, the same - ! as for the regular case below in the else. The - ! i-beginning point will also be the same as for the - ! regular case. However, the i-ending point will be - ! modified for the meridian wrap; it will be > imax. - - jbeg = int(((glatmax + dy - trkrinfo%northbd) - & / dy) + 0.5) - jend = int(((glatmax + dy - trkrinfo%southbd) - & / dy) + 0.5) - ibeg = int(((trkrinfo%westbd - glonmin + dx) - & / dx) + 0.5) -c iend = int(((trkrinfo%eastbd - glonmin + dx) -c & / dx) + 0.5) - iend = int(((trkrinfo%eastbd - glonmin + dx) - & / dx) + 0.5) + imax - - goto 377 - - endif - endif - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: Error in first_ges_center. There is a' - print *,'!!! problem with the user-supplied grid ' - print *,'!!! boundaries. Please check them and ' - print *,'!!! resubmit the program.' - print *,'!!!' - print *,'!!! Western boundary: ',trkrinfo%westbd - print *,'!!! Eastern boundary: ',trkrinfo%eastbd - print *,'!!! Northern boundary: ',trkrinfo%northbd - print *,'!!! Southern boundary: ',trkrinfo%southbd - print *,' ' - endif - - ifgcret = 91 - return - - 377 continue - - else - ! Calculate the beginning and ending i and j points.... - jbeg = int(((glatmax + dy - trkrinfo%northbd) / dy) - & + 0.5) - jend = int(((glatmax + dy - trkrinfo%southbd) / dy) - & + 0.5) - ibeg = int(((trkrinfo%westbd - glonmin + dx) / dx) - & + 0.5) - iend = int(((trkrinfo%eastbd - glonmin + dx) / dx) - & + 0.5) - endif - endif - -c Scan the requested portion of the grid and pick out the max and -c min data values, figure out what the max and min contour levels -c will be, and fill an array with the values of the various -c intermediate, incremental contour levels. - - if (trkrinfo%contint <= 0) then - - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: Error in first_ges_center. For a midlat' - print *,'!!! or tcgen run of the tracker, the contour' - print *,'!!! interval supplied by the user is not ' - print *,'!!! greater than 0.' - print *,'!!! ' - print *,'!!! User-supplied contint = ',trkrinfo%contint - print *,' ' - endif - - ifgcret = 91 - return - endif - - dmin = 9.99e20 - dmax = -9.99e20 - - do j = jbeg,jend - do i = ibeg,iend - if (i > imax) then - itemp = i - imax ! If wrapping past GM - else - itemp = i - endif - if (valid_pt(itemp,j)) then - if (fxy(itemp,j) < dmin) dmin = fxy(itemp,j) - if (fxy(itemp,j) > dmax) dmax = fxy(itemp,j) - endif - enddo - enddo - - if ( verb .ge. 3 ) then - print *,' ' - print *,'*--------------------------------------------*' - print *,'In first_ges_center, dmin= ',dmin,' dmax= ',dmax - endif - - -c We want to allow for storms moving out of the sub-region, -c in which case we might hit slightly lower or higher -c contours than were found in the sub-region, so allow for -c an extra buffer and modify dmin and dmax.... - - dbuffer = (dmax - dmin) / 2.0 - dmax = dmax + dbuffer - dmin = dmin - dbuffer - - if ( verb .ge. 3 ) then - print *,'after adjustment, dmin= ',dmin,' dmax= ',dmax - endif - -c Next 2 lines changed for compiler compatibility on -c other platforms.... -c contour_info%xmaxcont = dmax - amod(dmax,trkrinfo%contint) -c contour_info%xmincont = dmin - amod(dmin,trkrinfo%contint) - - tmp = trkrinfo%contint - contour_info%xmaxcont = dmax - mod(dmax,tmp) - contour_info%xmincont = dmin - mod(dmin,tmp) - - if ( verb .ge. 3 ) then - print *,'A1 contour_info%xmaxcont= ',contour_info%xmaxcont - print *,'A1 contour_info%xmincont= ',contour_info%xmincont - endif - - if (contour_info%xmincont > contour_info%xmaxcont) then - contour_info%xmincont = contour_info%xmaxcont - endif - -c if (dmin > contour_info%xmincont) then -c contour_info%xmincont=contour_info%xmincont + trkrinfo%contint -c endif -c if (dmax < contour_info%xmaxcont) then -c contour_info%xmaxcont=contour_info%xmaxcont - trkrinfo%contint -c endif - - if ( verb .ge. 3 ) then - print *,'A2 contour_info%xmaxcont= ',contour_info%xmaxcont - print *,'A2 contour_info%xmincont= ',contour_info%xmincont - print *,'maxconts= ',maxconts - endif - -c NOTE: In the loop below, the contour_info%contvals array is now -c (5/2003) no longer used in subsequent subroutines. But we still -c need to figure out the value of the contvals as we iterate the -c loop so we can know when we've surpassed dmax and can stop -c incrementing contour_info%numcont, which we do need in subsequent -c subroutines. - - contour_info%numcont = 0 - do n = 1,maxconts - contour_info%numcont = contour_info%numcont + 1 - contour_info%contvals(n) = contour_info%xmincont + - & float(n-1)*trkrinfo%contint -c print *,'n= ',n,' contour_info%contvals(n)= ' -c & ,contour_info%contvals(n) - if (contour_info%contvals(n) >= dmax) exit - enddo - - oldstormct = stormct - call find_all_maxmins (imax,jmax,ibeg,iend,jbeg,jend,fxy - & ,valid_pt,masked_out,contour_info - & ,trkrinfo,cmaxmin,maxstorm,stormct,maxmini - & ,maxminj,ifamret) - - if (stormct > 0) then - continue - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,' ' - print *,'!!! ************************************************' - print *,'!!! ' - print *,'!!! NOTE: In first_ges_center, the value of stormct' - print *,'!!! returned from find_all_maxmins is not greater' - print *,'!!! than 0. This means there are no new centers' - print *,'!!! to track, which is not likely. Perhaps you are' - print *,'!!! searching over too small of an area??' - print *,'!!! ' - print *,'!!! ************************************************' - print *,' ' - endif - - endif - - if (stormct > oldstormct .and. stormct > 0) then - isstart = oldstormct + 1 - - if ( verb .ge. 3 ) then - write (6,*) ' ' - write (6,*) 'New search: ' - write (6,*) 'Possible new max/min locations at ifh= ',ifh - write (6,*) '--------------------------------------------' - endif - - do n = isstart,stormct - if (trkrinfo%type == 'midlat') then - storm(n)%tcv_center = 'MIDL' - else if (trkrinfo%type == 'tcgen') then - storm(n)%tcv_center = 'TCG ' - endif - slonfg(n,ifh) = glonmin + (maxmini(n)-1)*dx - slatfg(n,ifh) = glatmax - (maxminj(n)-1)*dy - storm(n)%tcv_stspd = -99 - storm(n)%tcv_stdir = -99 - write (storm(n)%tcv_storm_id,'(i4.4)') n - write (storm(n)%tcv_storm_name,'(i4.4)') n - stormswitch(n) = 1 - if (cparm == 'mslp') then - - if ( verb .ge. 3 ) then - write (6,71) maxmini(n),maxminj(n),slonfg(n,ifh) - & ,360.-slonfg(n,ifh),slatfg(n,ifh) - & ,slp(maxmini(n),maxminj(n))/100.0 - endif - - endif - enddo - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,' New search: ' - print *,'!!! NOTE: No new storms found in find_all_maxmins' - print *,'!!! at ifh = ',ifh,' stormct= ',stormct - print *,'!!! oldstormct= ',oldstormct - print *,' ' - endif - - endif - - 71 format (1x,'i= ',i3,' j= ',i3,' lon: ',f7.2,'E (',f6.2,'W)' - & ,2x,' lat: ',f6.2,' mslp: ',f6.1,' mb') -c - return - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine find_all_maxmins (imax,jmax,ibeg,iend,jbeg,jend,fxy - & ,valid_pt,masked_out,contour_info - & ,trkrinfo,cmaxmin,maxstorm,stormct,maxmini - & ,maxminj,ifamret) -c -c ABSTRACT: This subroutine will search an area delineated by -c input i and j indeces in order to find all local maxes or mins -c in that area. The (i,j) locations of the maxes/mins are returned -c in the maxmini and maxminj arrays. The input 3-character string -c cmaxmin will tell the subroutine to look for a "max" or a "min". -c -c INPUT: -c imax Number of gridpoints in i direction in input grid -c jmax Number of gridpoints in j direction in input grid -c ibeg i-index for upper left location of grid to search -c iend i-index for lower right location of grid to search -c jbeg j-index for upper left location of grid to search -c jend j-index for lower right location of grid to search -c fxy Real array of data values -c valid_pt Logical bitmap masking non-valid grid points. This is a -c concern for the regional models, which are interpolated -c from Lam-Conf or NPS grids onto lat/lon grids, leaving -c grid points around the edges which have no valid data. -c masked_out Logical. T = data point is already accounted for, under -c the influence of another nearby max or min center, -c F = data point is available to be scanned by this -c subroutine for max or min centers. -c contour_info Type cint_stuff from module contours containing the -c the following 4 variables: -c 1. xmincont Real value for min contour level in the fxy data array -c 2. xmaxcont Real value for max contour level in the fxy data array -c 3. contvals Real array holding values of cont levels at this time -c 4. numcont Number of contour intervals found at this time -c trkrinfo derived type containing various user-input tracker parms -c cmaxmin String that declares if "min" or "max" is being searched -c maxstorm max # of storms that can be handled in this run -c -c INPUT/OUTPUT: -c stormct Integer: keeps and increments a running tab of the number -c of storms that have been tracked at any time across all -c forecast hours -c -c OUTPUT: -c maxmini integer array containing i-indeces of the max/min points -c maxminj integer array containing j-indeces of the max/min points -c ifamret return code from this subroutine - - USE trkrparms; USE set_max_parms; USE contours - USE verbose_output - - implicit none - - type (trackstuff) trkrinfo - type (cint_stuff) contour_info - integer stormct,i,j,ibeg,iend,jbeg,jend,ix,jx,ixp1,ixm1 - integer ip,jp,maxstorm,jxp1,jxm1,ifamret,isret,iaret - integer isoiret,icccret,igicwret,imax,jmax - character ccflag*1,get_last_isobar_flag*1 - character(*) cmaxmin - logical(1) still_finding_valid_maxmins,rough_gradient_check_okay - logical(1) valid_pt(imax,jmax),masked_out(imax,jmax) - integer maxmini(maxstorm),maxminj(maxstorm) - real fxy(imax,jmax) - real xavg,stdv,search_cutoff,dmin,dmax,sphere_cutoff - real plastbar,rlastbar -c----- - still_finding_valid_maxmins = .true. - - -c print *,'ctm beg of find_all_maxmins, maxstorm= ',maxstorm - - -c First, we want to get the mean and standard deviation of the input -c field to be searched. We can use the standard deviation info as -c part of our guideline for when to stop searching for maxes & mins. -c We will set the search cut-off threshold at 1/2 standard deviation -c above the mean for min searches. So, for the example of mslp, if -c the mean pressure over the whole domain is 1010 mb and the -c standard deviation is 12 mb, then when we are searching, if the -c lowest available (i.e., hasn't been found in a previous iteration -c of this loop) pressure is 1016, then it's time to stop searching. - - call avgcalc (fxy,imax*jmax,valid_pt,xavg,iaret) - call stdevcalc (fxy,imax*jmax,valid_pt,xavg,stdv,isret) - if (iaret /= 0 .or. isret /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: In find_all_maxmins, the calls to avgcalc' - print *,'!!! and/or stdevcalc returned an error.' - print *,'!!! iaret= ',iaret,' isret= ',iaret - print *,' ' - endif - - ifamret = 98 - return - endif - - if (cmaxmin == 'min') then - search_cutoff = xavg + stdv*0.5 - else - search_cutoff = xavg - stdv*0.5 - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,'In find_all_maxmins, search_cutoff= ',search_cutoff - print *,' ' - endif - -c Now begin to search the domain. We do a simple gridpoint scan, -c and once we find the max/min value, we pass the (i,j) coordinates -c at that point to a routine to check for a closed contour. Then -c we mask out those points in the contour (or, if there is not a -c closed contour, just the 8 points immediately surrounding the low -c center) and we do another iteration of search_loop to look for -c more lows. We mask out points we've found so that on subsequent -c iterations of search_loop, we don't find the same old center -c again and again and again..... - - search_loop: do while (still_finding_valid_maxmins) - - dmin = 9.99e20 - dmax = -9.99e20 - - jloop: do j = jbeg,jend - iloop: do i = ibeg,iend - - ip = i - jp = j - - if (ip > imax) then - if (trkrinfo%gridtype == 'global') then - ip = i - imax ! If wrapping past GM - else - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! WARNING: In find_all_maxmins, the ' - print *,'!!! user-requested eastern search boundary' - print *,'!!! is beyond the eastern bounds of ' - print *,'!!! this regional grid. The search' - print *,'!!! will not extend to the user-requested' - print *,'!!! grid boundary.' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! User-requested eastern i = ',ip - print *,' ' - endif - - exit iloop - - endif - endif - - if (valid_pt(ip,jp) .and..not. masked_out(ip,jp)) then - if (cmaxmin == 'min') then - if (fxy(ip,jp) < dmin) then - dmin = fxy(ip,jp) - ix = ip - jx = jp - endif - else - if (fxy(ip,jp) > dmax) then - dmax = fxy(ip,jp) - ix = ip - jx = jp - endif - endif - endif - - enddo iloop - enddo jloop - - if (cmaxmin == 'min') then - if (dmin < search_cutoff) then - continue - else - still_finding_valid_maxmins = .false. - exit search_loop - endif - else - if (dmax > search_cutoff) then - continue - else - still_finding_valid_maxmins = .false. - exit search_loop - endif - endif - -c As a rough first check, see if the neighboring points on all -c 4 sides have a gradient sloping down into the found min point, -c or at least that there is a flat field not having a gradient -c sloping away from the center point. - - call get_ijplus1_check_wrap (imax,jmax,ix,jx,ixp1,jxp1,ixm1 - & ,jxm1,trkrinfo,igicwret) - - if (igicwret /= 0) then - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In find_all_maxmins, the center we found' - print *,'!!! is too close to the grid boundary and will' - print *,'!!! NOT be checked for a closed contour.' - print *,'!!! ix= ',ix,' jx= ',jx,' fxy= ',fxy(ix,jx) - print *,'!!! ' - print *,' ' - endif - - masked_out(ix,jx) = .true. - cycle search_loop - endif - - if (cmaxmin == 'min') then - if (fxy(ix,jx) <= fxy(ixp1,jx) .and. - & fxy(ix,jx) <= fxy(ix,jxm1) .and. - & fxy(ix,jx) <= fxy(ixm1,jx) .and. - & fxy(ix,jx) <= fxy(ix,jxp1)) then - rough_gradient_check_okay = .true. - else - rough_gradient_check_okay = .false. - endif - else - if (fxy(ix,jx) >= fxy(ixp1,jx) .and. - & fxy(ix,jx) >= fxy(ix,jxm1) .and. - & fxy(ix,jx) >= fxy(ixm1,jx) .and. - & fxy(ix,jx) >= fxy(ix,jxp1)) then - rough_gradient_check_okay = .true. - else - rough_gradient_check_okay = .false. - endif - endif - - if (rough_gradient_check_okay) then - - if ( verb .ge. 3 ) then - print *,'Found a possible max/min at ix= ',ix,' jx= ',jx - endif - - -c From this rough check, we appear to have a gradient sloping -c in towards the center point. Now call the subroutine to -c check whether or not there is in fact a closed contour -c surrounding this local maximum or minimum. - - get_last_isobar_flag = 'n' - ccflag = 'n' - call check_closed_contour (imax,jmax,ix,jx,fxy,valid_pt - & ,masked_out,ccflag,cmaxmin,trkrinfo - & ,1,contour_info,get_last_isobar_flag,plastbar - & ,rlastbar,icccret) - - if (ccflag == 'y') then - if (stormct < maxstorm) then - stormct = stormct + 1 - - if ( verb .ge. 3 ) then - print *,'AAA stormct= ',stormct,' ix= ',ix,' jx= ',jx - endif - - maxmini(stormct) = ix - maxminj(stormct) = jx - else - - if ( verb .ge. 3 ) then - print *,'---max stormct reached, stormct= ', stormct - endif - - endif - else - - if ( verb .ge. 3 ) then - print *,'!!! contour check negative, ccflag= ',ccflag - endif - endif - - if ( verb .ge. 3 ) then - print *,' ' - print *,'*-----------------------------------------------*' - print *,'* After check_closed_contour... *' - print *,'*-----------------------------------------------*' - print *,' ' - endif - - endif - -c Regardless of whether or not the found point turns out to have -c a closed contour, we don't want to find this local minimum or -c its 8 surrounding points again in a search on a subsequent -c iteration of this loop. - - masked_out(ix,jx) = .true. - masked_out(ix,jxp1) = .true. - masked_out(ixp1,jxp1) = .true. - masked_out(ixp1,jx) = .true. - masked_out(ixp1,jxm1) = .true. - masked_out(ix,jxm1) = .true. - masked_out(ixm1,jxm1) = .true. - masked_out(ixm1,jx) = .true. - masked_out(ixm1,jxp1) = .true. - - enddo search_loop - - return - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine check_closed_contour (imax,jmax,ix,jx,fxy,valid_pt - & ,masked_out,closed_contour,cmaxmin,trkrinfo - & ,num_requested_contours,contour_info - & ,get_last_isobar_flag,plastbar,rlastbar,icccret) -c -c ABSTRACT: This subroutine checks a field of data around an input -c (ix,jx) data point to see if a closed contour exists around -c that data point. It can check for a closed contour on a max or a -c min field, depending on the value of the input variable 'cmaxmin'. -c The algorithm works by examining rings of the 8 data points -c surrounding a data point that is in the contour interval. For -c example, in the diagram below, the X represents the location of -c the local minimum value which was passed into this routine with -c the coordinates (ix,jx), let's say it's 985 mb. And let's assume -c that the data values at points A-I are all in the 4 mb contour -c interval of 985-989 mb, and that all the surrounding points have -c data values >= 989. To test for a closed contour, we first check -c the ring of 8 points immediately around point X to see what their -c data values are. If a data value is found that is below the -c lower limit of this contour interval (985 mb) or lower than the -c local minimum value at the X point that we initially targeted -c (985 mb), then we do NOT have a closed contour, and we exit this -c subroutine. But in our example, that's not the case, and we have -c 5 points (B,D,E,F,G) that are in the interval. So in our next -c iteration of the loop, we set up 5 rings, each one set up around -c the points found in the first iteration (B,D,E,F,G), and we check -c the 8 points around each of those points. A logical array is -c used so that as soon as a point is found, it is flagged as being -c found. In this way, when we look at the ring around point D, for -c example, we won't pick point X again and set up another ring -c around it in the next ring iteration and end up in an infinite -c loop, going back and forth between point X and point D. While -c checking the 8 points in a ring, if a found data value is above -c our contour interval (i.e., >= 989 mb), we just ignore the -c point; we only mark points that are in our contour interval, -c and again, if we find a point below our contour interval, we -c exit the subroutine with a flag indicating a closed contour was -c NOT found. So in this method, we keep spreading out from the -c initial local minimum and creating and checking new rings until -c we either: (a) Hit the edge of the regional grid, in which case -c we consider a closed contour NOT found, (b) Run into a data -c point that has been marked as being under the influence of -c another nearby low, in which case we consider a closed contour -c NOT found, (c) Run into a point which is below (above) our -c contour interval for a min (max) check, in which case we -c consider a closed contour NOT found, or (d) we run out of -c points to keep searching, we have no rings left to create and -c check because all of the surrounding points are above (below) -c our contour interval for a min (max) check, and by default we -c consider this a closed contour and return to the calling -c subroutine a flag indicating such. -c -c + + + + + + + + + + -c + + + + + + + + + + -c + + A B + + + + + + -c + + C D X E + + + + -c + + + + F G + + + + -c + + + + + H I + + + -c + + + + + + + + + + -c + + + + + + + + + + -c -c UPDATE: This subroutine was updated to keep searching for -c multiple closed contours until it can't find anymore. The -c input parameter num_requested_contours dictates how many -c contours to search for. In the case of just trying to roughly -c locate new centers and establish that there is a closed -c circulation, num_requested_contours will = 1, and we will exit -c after finding that 1 contour. But for a check after making a -c full center fix, we set num_requested_contours = 999 so that -c we can keep searching for all closed contours around the low. -c In this 999 case, you will eventually get to a point where -c there is no closed contour. In that case, in the standard -c output you will see a message telling you that you hit a point -c that is not in the contour and that there is no closed contour, -c but you will also notice that the ccflag = y, meaning there is -c a closed contour (because you have found at least 1 closed -c contour along the way). The reason to keep searching for more -c closed contours is that we can then return the value of the -c outermost closed isobar. -c -c INPUT: -c imax Num pts in i-direction on grid -c jmax Num pts in j-direction on grid -c ix i index for location of local max or min -c jx j index for location of local max or min -c fxy input data array -c valid_pt Logical; bitmap indicating if valid data at that pt -c masked_out Logical. T = data point is already accounted for, under -c the influence of another nearby max or min center, -c F = data point is available to be scanned by this -c subroutine for max or min centers. -c cmaxmin character string ('max' or 'min') that tells this -c routine what we're looking for. -c trkrinfo derived type that holds/describes various tracker parms -c contour_info Type cint_stuff from module contours. Contains -c contour information -c num_requested_contours For the simple first_ges_center check, -c this will be 1 (we just want to know if there's at -c least 1 closed contour). For the verifying check after -c we've found a center, this will be 9999 (i.e., just keep -c searching for more contours) -c get_last_isobar_flag character ('y' or 'n') to indicate whether -c or not to report on the value of the last closed isobar -c and the radius of the last closed isobar. -c -c OUTPUT: -c closed_contour character; A returned value of 'y' indicates that -c this routine was able to find a closed contour. -c plastbar Contains the value of the last closed isobar (unrounded) -c rlastbar Contains the mean radius of the last closed isobar -c -c LOCAL: -c num_pts_in_all_contours Counter for the number of pts inside of -c the contour we're looking at -c next_ring_ct Counter for the number of points that have been -c tagged to be used as center points for the next -c iteration of multiple_ring_loop. -c next_contour_ct Counter for the number of points that have been -c tagged to be used as center points in the first iteration -c through single_contour_scan_loop as we begin to scan -c points in the *next* contour interval. This counter gets -c incremented when, for example, we are searching points -c around a current center point and we find one that is not -c in our current interval, but rather is in the next -c interval. We want to remember this point and store the -c location, so we increment this counter and store the -c location in next_contour_i and next_contour_j arrays. -c beyond_contour_ct Counter for the number of points that have been -c tagged to be used as center points for some subsequent -c iteration of successive_contours_loop. This is -c different from next_contour_ct, which is used to hold -c the locations of points that are definitely in the -c *next* contour interval. Here, we have points that we -c just store in a pool of potential points to be searched -c in future iterations. These points can come about in -c cases where there is a very intense, very compact low -c with a tight pressure gradient, such that multiple -c contour intervals could be spanned in between 2 adjacent -c gridpoints (this is especially the case if the contour -c interval you have chosen is small). You need to be -c careful with how you handle this array. Once you find -c that you have searchable points in next_contour_i or -c next_contour_j, do not just simply empty out this -c beyond_contour count and its i and j arrays. The -c reason being that some of these "beyond" points may end -c up being used and searched in subsequent iterations, but -c not if we just delete them now. - - - USE set_max_parms; USE trkrparms; USE contours; USE grid_bounds - USE verbose_output - - implicit none - - type (trackstuff) trkrinfo - type (cint_stuff) contour_info - - integer i,j,ir,iria,irja,irx,jrx,ix,jx,imax,jmax - integer nb,ibx,jby,nct,iflip - integer mr,ringct,ixp1,ixm1,jxp1,jxm1,nring,iter - integer icenx,jcenx,icccret,next_ring_ct,igicwret - integer num_pts_in_all_contours,next_contour_ct - integer beyond_contour_ct - integer num_pts_in_one_contour - integer num_requested_contours,num_found_contours - integer nm,im,jm,inall,insingle,isc_count,rlast_distct - character found_a_point_in_our_contour*1,closed_contour*1 - character found_a_point_below_contour*1 - character found_a_point_above_contour*1,get_last_isobar_flag*1 - character(*) cmaxmin - logical(1) still_scanning - logical(1) valid_pt(imax,jmax),masked_out(imax,jmax) - logical(1) point_is_already_in_our_contour(imax,jmax) - logical(1) point_is_already_in_next_contour(imax,jmax) - logical(1) point_is_already_in_beyond_pool(imax,jmax) - integer isni,isnj,inci,incj,ibci,ibcj,ihmi,ihmj,itmi,itmj - integer, allocatable :: search_next_i(:) - integer, allocatable :: search_next_j(:) - integer, allocatable :: next_contour_i(:) - integer, allocatable :: next_contour_j(:) - integer, allocatable :: beyond_contour_i(:) - integer, allocatable :: beyond_contour_j(:) - integer, allocatable :: hold_mask_i_loc(:) - integer, allocatable :: hold_mask_j_loc(:) - integer, allocatable :: temp_mask_i_loc(:) - integer, allocatable :: temp_mask_j_loc(:) - integer, allocatable :: ringposi(:),ringposj(:) - real,allocatable :: ringpos(:,:) - real fxy(imax,jmax),contvals(maxconts) - real contlo,conthi,xcentval,contlo_next,conthi_next - real dist,degrees,rlast_distsum,plastbar,rlastbar -c - if (allocated(search_next_i)) deallocate (search_next_i) - if (allocated(search_next_j)) deallocate (search_next_j) - if (allocated(next_contour_i)) deallocate (next_contour_i) - if (allocated(next_contour_j)) deallocate (next_contour_j) - if (allocated(beyond_contour_i)) deallocate (beyond_contour_i) - if (allocated(beyond_contour_j)) deallocate (beyond_contour_j) - if (allocated(hold_mask_i_loc)) deallocate (hold_mask_i_loc) - if (allocated(hold_mask_j_loc)) deallocate (hold_mask_j_loc) - if (allocated(temp_mask_i_loc)) deallocate (temp_mask_i_loc) - if (allocated(temp_mask_j_loc)) deallocate (temp_mask_j_loc) - allocate (search_next_i(imax*jmax),stat=isni) - allocate (search_next_j(imax*jmax),stat=isnj) - allocate (next_contour_i(imax*jmax),stat=inci) - allocate (next_contour_j(imax*jmax),stat=incj) - allocate (beyond_contour_i((imax*jmax)/2),stat=ibci) - allocate (beyond_contour_j((imax*jmax)/2),stat=ibcj) - allocate (hold_mask_i_loc(imax*jmax),stat=ihmi) - allocate (hold_mask_j_loc(imax*jmax),stat=ihmj) - allocate (temp_mask_i_loc(imax*jmax),stat=itmi) - allocate (temp_mask_j_loc(imax*jmax),stat=itmj) - if (isni /= 0 .or. isnj /= 0 .or. inci /= 0 .or. incj /= 0 .or. - & ibci /= 0 .or. ibcj /= 0 .or. ihmi /= 0 .or. ihmj /= 0 .or. - & itmi /= 0 .or. itmj /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in check_closed_contour allocating' - print *,'!!! various search, hold and temp arrays.' - print *,'!!! isni = ',isni,' isnj= ',isnj - print *,'!!! inci = ',inci,' incj= ',incj - print *,'!!! ibci = ',ibci,' ibcj= ',ibcj - print *,'!!! ihmi = ',ihmi,' ihmj= ',ihmj - print *,'!!! itmi = ',itmi,' itmj= ',itmj - print *,' ' - endif - - STOP 98 - endif - - closed_contour = 'n' - xcentval = fxy(ix,jx) - num_found_contours = 0 - next_contour_ct = 0 - beyond_contour_ct = 0 - num_pts_in_all_contours = 0 - hold_mask_i_loc = 0 - hold_mask_j_loc = 0 - beyond_contour_i = 0 - beyond_contour_j = 0 - point_is_already_in_our_contour = .false. - point_is_already_in_beyond_pool = .false. - icccret = 0 - isc_count = 0 - plastbar = -999.0 - rlastbar = -999.0 - - if ( verb .ge. 3 ) then - print *,' ' - print *,'*-----------------------------------------------*' - print *,'* Top of check_closed_contour, ix= ',ix,' jx= ',jx - print *,'*-----------------------------------------------*' - print *,' ' - print *,'fxy(ix,jx)= ',fxy(ix,jx),' xcentval= ',xcentval - endif - -c First, set up the contour intervals that will be used. In -c the original version of this code, we used preset -c standard intervals (984,988,992,996,1000,1004....). But upon -c further review, it was decided that this was too arbitrary. -c So instead, we consider the found min (max) value to be the -c bottom (top) of the list of contour intervals. In this way, -c we can clearly specify and screen storms based on the "depth" -c of the pressure field as compared to the surroundings. - - i = 1 - do while (i <= maxconts) - if (cmaxmin == 'min') then - contvals(i) = xcentval + float(i-1)*trkrinfo%contint - i = i + 1 - else - iflip = maxconts - i + 1 - contvals(iflip) = xcentval - float(i-1)*trkrinfo%contint - i = i + 1 - endif - enddo - -c This successive_contours loop is the master loop.... - - successive_contours_loop: do while (num_found_contours < - & num_requested_contours) - -c Find the contour interval in which the center value resides. -c Note that the lower bound is included for a min check, while -c the upper bound is included for a max check. Note also that -c this subroutine can be used to find the last closed contour, -c and part of that functionality shows up in the next while -c statement where we reference "num_found_contours" in the -c array indeces for the contour values. Basically, the way we -c do this is, for example, if our central value is 990.4 mb and -c our contour interval is 4 mb, then in the first run through -c successive_contours_loop we see if we have a closed contour in -c the interval 990.4-994.4. If yes, then the next time through -c this loop, we see if we have a closed contour in the interval -c 994.4-998.4. If yes, then the next loop check is for 998.4- -c 1002.4, and so on.... We stop searching if we find a value -c that is either below the xcentval input into this subroutine -c or below the lower value of the current contour interval (this -c would mean a change in the gradient and would indicate that, -c in the case of mslp, we are heading down towards another, -c different low). - - isc_count = isc_count + 1 - - point_is_already_in_next_contour = .false. - - i = 1 - do while (i < maxconts) - if (cmaxmin == 'min') then - if (contvals(i) <= xcentval .and. xcentval < contvals(i+1)) - & then - - if ( verb .ge. 3 ) then - print *,'At A, num_found_contours= ',num_found_contours - endif - - contlo = contvals(i+num_found_contours) - conthi = contvals(i+1+num_found_contours) - - if ( verb .ge. 3 ) then - print *,'At A, contlo= ',contlo,' conthi= ',conthi - endif - exit - - endif - else - if (contvals(i) < xcentval .and. xcentval <= contvals(i+1)) - & then - contlo = contvals(i-num_found_contours) - conthi = contvals(i-num_found_contours+1) - exit - endif - endif - i = i + 1 - enddo - - if ( verb .ge. 3 ) then - print *,' ' - print *,'num_found_contours= ',num_found_contours - print *,'contlo= ',contlo,' conthi= ',conthi - print *,'xcentval= ',xcentval - endif - - -c This single_contour_scan_loop is the main loop for searching -c for one individual contour. If it is determined that a contour -c exists, control is returned to the successive_contours_loop, -c and if more contours were requested to be found, then the -c search continues onward & outward.... - - temp_mask_i_loc = 0 - temp_mask_j_loc = 0 - - iter = 1 - num_pts_in_one_contour = 0 - still_scanning = .true. - - rlast_distsum = 0.0 - rlast_distct = 0 - - single_contour_scan_loop: do while (still_scanning) - -c print *,' ' -c print *,' top of single contour scan loop' -c print *,'+++ iter= ',iter -c print *,' N1: next_contour_ct= ',next_contour_ct - - if (iter == 1 .and. num_found_contours == 0) then - ! For the first iteration, we have only the first ring, - ! which is centered on the input minimum/maximum point. - ringct = 1 - search_next_i(1) = ix - search_next_j(1) = jx - -c point_is_already_in_our_contour(ix,jx) = .true. -c num_pts_in_one_contour = num_pts_in_one_contour + 1 -c temp_mask_i_loc(num_pts_in_one_contour) = ix -c temp_mask_j_loc(num_pts_in_one_contour) = jx - - else if (iter == 1 .and. num_found_contours > 0) then - ! This is the first iteration in a *new* contour. - ! That is, we have already found 1 or more previous - ! contours while in previous iterations of - ! successive_contours_loop and we are now beginning - ! to look for the next contour. - -c print *,' N2: next_contour_ct= ',next_contour_ct - - if (next_contour_ct == 0) then - ! This would be for the special case in which, for - ! example, you've got a very intense, compact storm - ! that "skips" a contour. That is, suppose the - ! min pressure of a storm is 982 mb, and we are - ! utilizing a 4-mb contour interval, but all - ! surrounding data points are, say, 987 mb or - ! higher. Then, next_contour_ct would be 0 since no - ! data points were found in the next contour interval - ! of 982-986 mb, but we can continue searching since the - ! gradient is still sloping the correct way. The code in - ! this if statement handles this special case. - - if ( verb .ge. 3 ) then - print *,' ' - print *,'ALERT: next_contour_ct = 0 ' - endif - - if (cmaxmin == 'min') then - contlo_next = conthi - conthi_next = conthi + trkrinfo%contint - -c print *,'b4 ZZ, ringct= ',ringct -c print *,'at ZZ, bcc= ',beyond_contour_ct -c & ,'contlo_next= ',contlo_next -c & ,'conthi_next= ',conthi_next - - bey_con_min_loop: do nb = 1,beyond_contour_ct - - ibx = beyond_contour_i(nb) - jby = beyond_contour_j(nb) - - if (.not. point_is_already_in_beyond_pool(ibx,jby)) - & then - ! If this point is no longer in our pool of "beyond - ! contour" points, then just cycle out of this - ! iteration.... - cycle bey_con_min_loop - endif - -c print *,'-- ZZ, ibx= ',ibx,' jby= ',jby -c & ,' fxy(ibx,jby)= ',fxy(ibx,jby) - - if (fxy(ibx,jby) >= contlo_next .and. - & fxy(ibx,jby) < conthi_next) then - -c print *,'>> ZZ HIT!!, ibx= ',ibx,' jby= ',jby -c -c print *,' +++ BEYOND in NEXT: i= ',ibx,' j= ',jby -c & ,' fxy= ',fxy(ibx,jby) - - next_contour_ct = next_contour_ct + 1 - next_contour_i(next_contour_ct) = ibx - next_contour_j(next_contour_ct) = jby - - ! This point has now been identified as being in - ! the "next" contour interval, i.e., no longer in - ! the "beyond" contour pool. Therefore, set the - ! logical flag to indicate that this point is no - ! longer in the "beyond" contour pool. - - point_is_already_in_beyond_pool(ibx,jby) = .false. - - endif - -c print *,'.. ZZ, next_contour_ct= ',next_contour_ct - - enddo bey_con_min_loop - else - contlo_next = contlo - trkrinfo%contint - conthi_next = contlo - -c print *,'At A, beyond_contour_ct= ',beyond_contour_ct -c print *,' contlo_next = ',contlo_next -c print *,' conthi_next = ',conthi_next - - bey_con_max_loop: do nb = 1,beyond_contour_ct - -c print *,'in bey_con_max_loop, nb= ',nb - - ibx = beyond_contour_i(nb) - jby = beyond_contour_j(nb) - - if (.not. point_is_already_in_beyond_pool(ibx,jby)) - & then - ! If this point is no longer in our pool of "beyond - ! contour" points, then just cycle out of this - ! iteration.... - cycle bey_con_max_loop - endif - -c print *,'ibx= ',ibx,' jby= ',jby,' data= ' -c & ,fxy(ibx,jby) - - if (fxy(ibx,jby) > contlo_next .and. - & fxy(ibx,jby) <= conthi_next) then - - next_contour_ct = next_contour_ct + 1 - next_contour_i(next_contour_ct) = ibx - next_contour_j(next_contour_ct) = jby - -c print *,' ++ HIT! ibx= ',ibx,' jby= ',jby - - ! This point has now been identified as being in - ! the "next" contour interval, i.e., no longer in - ! the "beyond" contour pool. Therefore, set the - ! logical flag to indicate that this point is no - ! longer in the "beyond" contour pool. - - point_is_already_in_beyond_pool(ibx,jby) = .false. - - endif - enddo bey_con_max_loop - endif - - if (next_contour_ct > 0) then - ringct = next_contour_ct - else - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! XXX next_contour_ct not > 0 !!!' - print *,'next_contour_ct= ',next_contour_ct - print *,'beyond_contour_ct= ',beyond_contour_ct - print *,'ringct= ',ringct - print *,'next_ring_ct= ',next_ring_ct - print *,'cycling to top of successive_contours_loop..' - print *,' ' - endif - - ! The number of rings that we have available to search - ! in the next contour interval is 0, so cycle all the - ! way back to the top of the outer loop, which is - ! successive_contours_loop, so that we can increase the - ! contour bounds and search inside those new bounds. - ! Again, this is for the case in which we have an - ! intense, compact storm and we are using a small - ! contour interval, such that we are essentially - ! "skipping" over one of these intervals in one of the - ! loop iterations. We need to bump up the - ! num_found_contours by one in order to increase the - ! array index in the contvals array at the top of the - ! successive_contours_loop. It is kosher to do this - ! since the reason we are cycling back to the top of - ! that loop is that we are skipping over a contour - ! interval. - - num_found_contours = num_found_contours + 1 - cycle successive_contours_loop - - endif - - else - - ringct = next_contour_ct - - endif - - do nring = 1,ringct - search_next_i(nring) = next_contour_i(nring) - search_next_j(nring) = next_contour_j(nring) -c print *,'at A, nring= ',nring,' next_contour_i(nring)= ' -c & ,next_contour_i(nring),' next_contour_j(nring)= ' -c & ,next_contour_j(nring) - enddo - - next_contour_ct = 0 - - else - ringct = next_ring_ct - endif - - if (allocated(ringposi)) deallocate (ringposi) - if (allocated(ringposj)) deallocate (ringposj) - allocate (ringposi(ringct),stat=iria) - allocate (ringposj(ringct),stat=irja) - if (iria /= 0 .or. irja /= 0) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR in check_closed_contour allocating' - print *,'!!! various ring arrays. iria = ',iria - print *,'!!! irja = ',irja - print *,' ' - endif - - STOP 98 - endif - -ctm -c print *,' ' -c print *,'ringct= ',ringct - - do nring = 1,ringct - ringposi(nring) = search_next_i(nring) - ringposj(nring) = search_next_j(nring) -ctm -c print *,'nring= ',nring,' ringposi= ',ringposi(nring) -c & ,' ringposj= ',ringposj(nring) - enddo - - next_ring_ct = 0 - - ! This next loop reviews the points that have been - ! labelled for the "beyond_contour" pool. As we get further - ! into successive iterations of successive_contours_loop, - ! some of these previously "beyond" points are now within - ! the contour interval range that we are checking, so we - ! need to go through the list of "beyond" points and remove - ! any that are no longer in that "beyond" category.... - - check_beyond_loop: do nb = 1,beyond_contour_ct - - ibx = beyond_contour_i(nb) - jby = beyond_contour_j(nb) - - if (.not. point_is_already_in_beyond_pool(ibx,jby)) - & then - ! This point may have been removed already in a - ! previous iteration of successive_contours_loop. - ! If this point is no longer in our pool of "beyond - ! contour" points, then just cycle out of this - ! iteration.... - cycle check_beyond_loop - endif - - ! Check to see if any of the points being searched in the - ! upcoming multiple_ring_loop are points that had previously - ! been saved as "beyond_contour" points. If so, remove - ! their status as "beyond_contour" points by setting the - ! logical flag to false. - - do nring = 1,ringct - - if (ibx == ringposi(nring) .and. jby == ringposj(nring)) - & then -c print *,' ' -c print *,'!!! beyond remove: ibx= ',ibx,' jby= ',jby - point_is_already_in_beyond_pool(ibx,jby) = .false. - endif - - enddo - - enddo check_beyond_loop - - -c In each iteration of single_contour_scan_loop, we can have a -c different number of rings to analyze. In the first -c iteration, we only have 1 ring, the initial ring around the -c local max/min that was input to this subroutine. Subsequent -c iterations will have a variable number of rings, depending on -c how many new data points within our contour interval were -c found in the previous iteration. - - multiple_ring_loop: do mr = 1,ringct - - icenx = ringposi(mr) - jcenx = ringposj(mr) - -ctm -c print *,' --- iter= ',iter,' mr= ',mr,' icenx= ',icenx -c & ,' jcenx= ',jcenx - - call get_ijplus1_check_wrap (imax,jmax,icenx,jcenx,ixp1,jxp1 - & ,ixm1,jxm1,trkrinfo,igicwret) - - if (igicwret /= 0) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NO CLOSED CONTOUR: The call to ' - print *,'!!! get_ijplus1_check_wrap indicates the' - print *,'!!! max/min contour extends past the edge of' - print *,'!!! our regional grid. ' - print *,' ' - print *,' ' - endif - - - do nm = 1,num_pts_in_all_contours - im = hold_mask_i_loc(nm) - jm = hold_mask_j_loc(nm) - masked_out(im,jm) = .true. - enddo - - deallocate (ringposi); deallocate (ringposj) - deallocate (search_next_i); deallocate (search_next_j) - deallocate (next_contour_i); deallocate (next_contour_j) - deallocate (beyond_contour_i) - deallocate (beyond_contour_j) - deallocate (hold_mask_i_loc) - deallocate (hold_mask_j_loc) - deallocate (temp_mask_i_loc) - deallocate (temp_mask_j_loc) - icccret = 0 - return - endif - -c For each individual ring, we check all 8 points surrounding -c the center point. The points are numbered for each ring as -c shown in the diagram to the right of the "select case" -c statement just below. REMEMBER: The j in our grids -c increases from north to south, so that for a global grid, -c j=1 is at 90N and j=jmax is at 90S. - - individual_ring_loop: do ir = 1,9 - - select case (ir) - case (1); irx=ixm1; jrx=jcenx;! 2 3 4 - case (2); irx=ixm1; jrx=jxm1; ! - case (3); irx=icenx;jrx=jxm1; ! - case (4); irx=ixp1; jrx=jxm1; ! 1 (icenx,jcenx) 5 - case (5); irx=ixp1; jrx=jcenx;! - case (6); irx=ixp1; jrx=jxp1; ! - case (7); irx=icenx;jrx=jxp1; ! 8 7 6 - case (8); irx=ixm1; jrx=jxp1; ! - case (9); irx=icenx; jrx=jcenx; ! = center pt of ring - end select - -c Make sure the point we are looking at has valid data. -c This is an issue only on regional grids, where we have a -c buffer of bitmapped (null) data points surrounding the -c real grid. - -c print *,'ind ring loop: ir= ',ir,' irx= ',irx,' jrx= ',jrx - - if (.not. valid_pt(irx,jrx)) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In check_closed_contour, while ' - print *,'!!! checking points around (icenx,jcenx)=' - print *,'!!! (',icenx,',',jcenx,'), we hit a non-' - print *,'!!! valid point, meaning we are near the' - print *,'!!! bounds of the grid, or at least the ' - print *,'!!! bounds of the valid data for this ' - print *,'!!! grid. We will skip the' - print *,'!!! search for this center.' - print *,'!!! ' - print *,'!!! (i,j) of non-valid pt = (' - & ,irx,',',jrx,')' - print *,'!!! ' - endif - - do nm = 1,num_pts_in_all_contours - im = hold_mask_i_loc(nm) - jm = hold_mask_j_loc(nm) - masked_out(im,jm) = .true. - enddo - - deallocate (ringposi); deallocate (ringposj) - deallocate (search_next_i); deallocate (search_next_j) - deallocate (next_contour_i); deallocate (next_contour_j) - deallocate (beyond_contour_i) - deallocate (beyond_contour_j) - deallocate (hold_mask_i_loc) - deallocate (hold_mask_j_loc) - deallocate (temp_mask_i_loc) - deallocate (temp_mask_j_loc) - icccret = 0 - return - endif - -c Check to make sure that the point we are looking at is -c not considered under the influence of another nearby low. - - if (masked_out(irx,jrx)) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In check_closed_contour, while ' - print *,'!!! checking points around (icenx,jcenx)=' - print *,'!!! (',icenx,',',jcenx,'), we hit a point' - print *,'!!! that has been masked out, meaning it' - print *,'!!! belongs under the influence of ' - print *,'!!! another nearby low, so we will skip' - print *,'!!! the search for this center....' - print *,'!!! ' - print *,'!!! Min central value = ',xcentval - print *,'!!! (i,j) of central value = (',ix,',',jx,')' - print *,'!!! ' - print *,'!!! Masked-out value found = ',fxy(irx,jrx) - print *,'!!! (i,j) of masked value = (',irx,',' - & ,jrx,')' - print *,'!!! ' - print *,'!!! Lower bound of contour interval = ' - & ,contlo - print *,'!!! Upper bound of contour interval = ' - & ,conthi - print *,'!!! Contour interval = ',trkrinfo%contint - print *,'!!! ' - print *,'!!! closed_contour flag = ',closed_contour - print *,'!!! ' - endif - - do nm = 1,num_pts_in_all_contours - im = hold_mask_i_loc(nm) - jm = hold_mask_j_loc(nm) - masked_out(im,jm) = .true. - enddo - - deallocate (ringposi); deallocate (ringposj) - deallocate (search_next_i); deallocate (search_next_j) - deallocate (next_contour_i); deallocate (next_contour_j) - deallocate (beyond_contour_i) - deallocate (beyond_contour_j) - deallocate (hold_mask_i_loc) - deallocate (hold_mask_j_loc) - deallocate (temp_mask_i_loc) - deallocate (temp_mask_j_loc) - icccret = 0 - return - endif - -c If we have already hit this point on a previous ring -c check, then just ignore this point and cycle past it. - - if (point_is_already_in_our_contour(irx,jrx)) then -ctm -c print *,' ' -c print *,'Pt. AAA, already-in-contour.....' -c print *,'irx= ',irx,' jrx= ',jrx - cycle individual_ring_loop - endif - -c For a MIN check, check to see if the data point is below -c the contour interval or is below the local minimum value -c passed into this subroutine. In either case, exit and -c consider this to NOT be a closed contour. -c For a MAX check, check to see if the data point is above -c the contour interval or is above the local maximum value -c passed into this subroutine. In either case, exit and -c consider this to NOT be a closed contour. -c -c For example, for mslp, this would be as we're moving -c outward away from lower pressures to higher pressures, -c and then all of a sudden we come upon a lower pressure. -c This probably means we're heading toward another low -c pressure area, so mark the point and return to the -c calling routine. - - found_a_point_below_contour = 'n' - found_a_point_above_contour = 'n' - if (cmaxmin == 'min') then - if (fxy(irx,jrx) < xcentval .or. fxy(irx,jrx) < contlo) - & then - found_a_point_below_contour = 'y' - endif - else - if (fxy(irx,jrx) > xcentval .or. fxy(irx,jrx) > conthi) - & then - found_a_point_above_contour = 'y' - endif - endif - - if (found_a_point_below_contour == 'y' .or. - & found_a_point_above_contour == 'y') then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'!!! NOTE: In check_closed_contour, while ' - print *,'!!! checking points around (icenx,jcenx)=' - print *,'!!! (',icenx,',',jcenx,'), we hit a data' - print *,'!!! value that is less (greater) than the' - print *,'!!! current contour interval bound for a' - print *,'!!! min (max) and/or is less (greater) ' - print *,'!!! than the minimum (maximum) central ' - print *,'!!! value that we are centering the ' - print *,'!!! search on.' - print *,'!!! ' - print *,'!!! Central value = ',xcentval - print *,'!!! (i,j) of central value = (',ix,',',jx,')' - print *,'!!! ' - print *,'!!! Flagged value found = ',fxy(irx,jrx) - print *,'!!! (i,j) of flagged value = (',irx,',' - & ,jrx,')' - print *,'!!! ' - print *,'!!! Lower bound of contour interval = ' - & ,contlo - print *,'!!! Upper bound of contour interval = ' - & ,conthi - print *,'!!! Contour interval = ',trkrinfo%contint - print *,'!!! ' - print *,'!!! closed_contour flag = ',closed_contour - print *,'!!! ' - endif - - do nm = 1,num_pts_in_all_contours - im = hold_mask_i_loc(nm) - jm = hold_mask_j_loc(nm) - masked_out(im,jm) = .true. - enddo - - deallocate (ringposi); deallocate (ringposj) - deallocate (search_next_i); deallocate (search_next_j) - deallocate (next_contour_i); deallocate (next_contour_j) - deallocate (beyond_contour_i) - deallocate (beyond_contour_j) - deallocate (hold_mask_i_loc) - deallocate (hold_mask_j_loc) - deallocate (temp_mask_i_loc) - deallocate (temp_mask_j_loc) - icccret = 0 - return - endif - -c If we've made it this far, then we at least know that the -c gradient is still heading in the right direction. Do the -c check now to see if the value at this point is within our -c specific contour interval (there is the possibility that -c the value is beyond our interval, which will be checked -c for just below, and if that's the case, then that point -c will be processed in a subsequent iteration of this loop -c that encompasses that correct contour interval). - - found_a_point_in_our_contour = 'n' - if (cmaxmin == 'min') then - if (fxy(irx,jrx) >= contlo .and. fxy(irx,jrx) < conthi) - & then - found_a_point_in_our_contour = 'y' - endif - else - if (fxy(irx,jrx) > contlo .and. fxy(irx,jrx) <= conthi) - & then - found_a_point_in_our_contour = 'y' - endif - endif - - if (found_a_point_in_our_contour == 'y') then - ! We've found a data point in our interval, something - ! that is inside the closed contour, and it hasn't been - ! marked as being found in a previous iteration of this - ! loop, so mark it now and store the (i,j) location so - ! that we can scan a ring around this point in a - ! successive iteration of this loop for more potential - ! points within this interval... - - point_is_already_in_our_contour(irx,jrx) = .true. - - next_ring_ct = next_ring_ct + 1 - search_next_i(next_ring_ct) = irx - search_next_j(next_ring_ct) = jrx - -c print *,'at B, next_ring_ct= ',next_ring_ct -c & ,' search_next_i()= ',search_next_i(next_ring_ct) -c & ,' search_next_j()= ',search_next_j(next_ring_ct) - - num_pts_in_one_contour = num_pts_in_one_contour + 1 - temp_mask_i_loc(num_pts_in_one_contour) = irx - temp_mask_j_loc(num_pts_in_one_contour) = jrx - - if (get_last_isobar_flag == 'y') then - call calcdist (glon(ix),glat(jx) - & ,glon(irx),glat(jrx),dist,degrees) - rlast_distsum = rlast_distsum + dist - rlast_distct = rlast_distct + 1 - endif - -ctm -c print *,' ' -c print *,' PT IN! irx= ',irx,' jrx= ',jrx,' xval= ' -c & ,fxy(irx,jrx) -c print *,'next_ring_ct= ',next_ring_ct -c print *,'num_pts_in_one_contour= ' -c & ,num_pts_in_one_contour - endif - -c If we've made it this far AND the -c found_a_point_in_our_contour flag indicates that this -c point is not in our contour interval, then by default that -c means that this point is for a contour interval beyond -c what we're currently looking at. E.g., if we're looking -c at the contours around a 972 mb low and we're moving -c outward and currently checking the 984-988 mb contour -c interval, it means that we found, say, a gridpoint with -c 991 mb. So we want to mark that point for a future -c iteration of this loop that would be checking the -c 988-992 mb contour interval. - - if (found_a_point_in_our_contour /= 'y' .and. - & .not. point_is_already_in_next_contour(irx,jrx)) then - ! We've found a data point that is beyond our interval, - ! so this is not a concern for finding the bounds of - ! our current contour interval, but we want to mark - ! these points and remember them for the next iteration - ! of successive_scan_loop. (For example, suppose we - ! are currently searching for points in the 984-988 mb - ! range, and we find a point that is 990 -- mark it - ! here to be remembered when we scan for 988-992 mb). - if (cmaxmin == 'min') then - contlo_next = conthi - conthi_next = conthi + trkrinfo%contint - if (fxy(irx,jrx) >= contlo_next .and. - & fxy(irx,jrx) < conthi_next) then - ! "NEXT_CONTOUR" Comment: - ! We've found a point that is in the very next - ! contour interval.... - next_contour_ct = next_contour_ct + 1 - next_contour_i(next_contour_ct) = irx - next_contour_j(next_contour_ct) = jrx - point_is_already_in_next_contour(irx,jrx) = .true. - else if (fxy(irx,jrx) >= conthi_next) then - ! "BEYOND_CONTOUR" Comment: - ! This point is at least 1 contour interval beyond - ! the next contour interval. Dump the info into - ! these i and j arrays. This info will be used if - ! in the next iteration of single_contour_scan_loop, - ! next_contour_ct = 0. That would mean that we - ! have, e.g., an intensely deep low with a sharp - ! mslp gradient that essentially "skips" over a - ! contour interval. E.g., if using a 4 mb interval, - ! we go from 947 to 953 AND there are NO - ! intervening gridpoints in the 948-952 interval. - beyond_contour_ct = beyond_contour_ct + 1 - beyond_contour_i(beyond_contour_ct) = irx - beyond_contour_j(beyond_contour_ct) = jrx - point_is_already_in_beyond_pool(irx,jrx) = .true. -c print *,'bcc= ',beyond_contour_ct -c & ,'beyond_contour_i()= ' -c & ,beyond_contour_i(beyond_contour_ct) -c & ,'beyond_contour_j()= ' -c & ,beyond_contour_j(beyond_contour_ct) - endif - else - contlo_next = contlo - trkrinfo%contint - conthi_next = contlo - if (fxy(irx,jrx) > contlo_next .and. - & fxy(irx,jrx) <= conthi_next) then - ! See "NEXT_CONTOUR" comment just above.... - next_contour_ct = next_contour_ct + 1 - next_contour_i(next_contour_ct) = irx - next_contour_j(next_contour_ct) = jrx - point_is_already_in_next_contour(irx,jrx) = .true. -c print *,'NEXT ncc= ',next_contour_ct -c & ,'next_contour_i()= ' -c & ,next_contour_i(next_contour_ct) -c & ,'next_contour_j()= ' -c & ,next_contour_j(next_contour_ct) -c & ,' fxy= ',fxy(irx,jrx) - else if (fxy(irx,jrx) <= contlo_next) then - ! See "BEYOND_CONTOUR" comment just above.... - beyond_contour_ct = beyond_contour_ct + 1 - beyond_contour_i(beyond_contour_ct) = irx - beyond_contour_j(beyond_contour_ct) = jrx - point_is_already_in_beyond_pool(irx,jrx) = .true. -c print *,'BEYOND bcc= ',beyond_contour_ct -c & ,'beyond_contour_i()= ' -c & ,beyond_contour_i(beyond_contour_ct) -c & ,'beyond_contour_j()= ' -c & ,beyond_contour_j(beyond_contour_ct) -c & ,' fxy= ',fxy(irx,jrx) - endif - endif - endif - - enddo individual_ring_loop - - enddo multiple_ring_loop - - if (next_ring_ct > 0) then - iter = iter + 1 - else - icccret = 0 - still_scanning = .false. - if (allocated(ringposi)) deallocate (ringposi) - if (allocated(ringposj)) deallocate (ringposj) - num_found_contours = num_found_contours + 1 - closed_contour = 'y' - if (num_found_contours == 1) then - - if ( verb .ge. 3 ) then - print *,' ' - print *,'+++ Closed contour found ' - endif - - endif - endif - - enddo single_contour_scan_loop - - do insingle = 1,num_pts_in_one_contour - num_pts_in_all_contours = num_pts_in_all_contours + 1 - inall = num_pts_in_all_contours - hold_mask_i_loc(inall) = temp_mask_i_loc(insingle) - hold_mask_j_loc(inall) = temp_mask_j_loc(insingle) - enddo - - if (get_last_isobar_flag == 'y') then - if (cmaxmin == 'min') then - plastbar = conthi - else - plastbar = contlo - endif - if (rlast_distct > 0) then - rlastbar = rlast_distsum / float(rlast_distct) - rlastbar = rlastbar * 0.539638 ! convert km to nm - else - rlastbar = -999.0 - endif - endif - - enddo successive_contours_loop - - if ( verb .ge. 3 ) then - print *,' ' - print *,'END SUM: num of iterations = ',isc_count - endif - - do nm = 1,num_pts_in_all_contours - im = hold_mask_i_loc(nm) - jm = hold_mask_j_loc(nm) - masked_out(im,jm) = .true. - enddo - - if (allocated(search_next_i)) deallocate (search_next_i) - if (allocated(search_next_j)) deallocate (search_next_j) - if (allocated(next_contour_i)) deallocate (next_contour_i) - if (allocated(next_contour_j)) deallocate (next_contour_j) - if (allocated(beyond_contour_i)) deallocate (beyond_contour_i) - if (allocated(beyond_contour_j)) deallocate (beyond_contour_j) - if (allocated(hold_mask_i_loc)) deallocate (hold_mask_i_loc) - if (allocated(hold_mask_j_loc)) deallocate (hold_mask_j_loc) - if (allocated(temp_mask_i_loc)) deallocate (temp_mask_i_loc) - if (allocated(temp_mask_j_loc)) deallocate (temp_mask_j_loc) - if (allocated(ringposi)) deallocate (ringposi) - if (allocated(ringposj)) deallocate (ringposj) -c - return - end -c -c--------------------------------------------------------------------- -c -c--------------------------------------------------------------------- - subroutine get_ijplus1_check_wrap (imax,jmax,i,j,iplus1,jplus1 - & ,iminus1,jminus1,trkrinfo,igicwret) -c -c ABSTRACT: This subroutine takes an (i,j) position input and -c returns the four neighboring (i,j) points to the east, south, -c west and north. The routine checks for wrap around the GM, so -c that if, for example, you are on a global 360x181 grid and you -c are at point i=360, then i+1 = 361, so you need something to -c adjust that back to i = 1. Likewise, if you are at i=1 and -c looking for point i-1, it will adjust it to be point 360 -c instead of the meaningless point 0 (i=0). - - USE trkrparms - USE verbose_output - - implicit none - - type (trackstuff) trkrinfo - integer i,j,imax,jmax,iplus1,jplus1,iminus1,jminus1,igicwret - - igicwret = 0 - - jplus1 = j + 1 - jminus1 = j - 1 - iplus1 = i + 1 - iminus1 = i - 1 - - if (iplus1 > imax) then - if (trkrinfo%gridtype == 'global') then - iplus1 = iplus1 - imax ! If wrapping east of GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: Error in get_ijplus1_check_wrap. The' - print *,'!!! user-requested eastern search boundary' - print *,'!!! is too close to the eastern bounds of' - print *,'!!! this regional grid. When we check ' - print *,'!!! neighboring points, we are going past' - print *,'!!! the edge of the grid by one point. ' - print *,'!!! Cut back your requested eastern ' - print *,'!!! boundary by a degree or 2 in the ' - print *,'!!! script and resubmit....' - print *,'!!! ' - print *,'!!! imax of regional grid = ',imax - print *,'!!! User-requested eastern i = ',iplus1 - print *,' ' - endif - - igicwret = 98 - return - endif - endif - - if (iminus1 < 1) then - if (trkrinfo%gridtype == 'global') then - iminus1 = imax + iminus1 ! If wrapping west of GM - else - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: Error in get_ijplus1_check_wrap. The' - print *,'!!! user-requested western search boundary' - print *,'!!! is too close to the western bounds of' - print *,'!!! this regional grid. When we check ' - print *,'!!! neighboring points, we are going past' - print *,'!!! the edge of the grid by one point. ' - print *,'!!! Cut back your requested western ' - print *,'!!! boundary by a degree or 2 in the ' - print *,'!!! script and resubmit....' - print *,'!!! ' - print *,'!!! User-requested western i = ',iminus1 - print *,' ' - endif - - igicwret = 98 - return - endif - endif - - if (jplus1 > jmax .or. jminus1 < 1) then - - if ( verb .ge. 1 ) then - print *,' ' - print *,'!!! ERROR: Error in get_ijplus1_check_wrap. The ' - print *,'!!! user-requested northern or southern search' - print *,'!!! boundary is too close to the bounds of the' - print *,'!!! grid. Cut back your requested northern or' - print *,'!!! southern boundary by a degree or 2 in the' - print *,'!!! script and resubmit....' - print *,'!!! ' - print *,'!!! User-requested northern j = ',jminus1 - print *,'!!! User-requested southern j = ',jplus1 - print *,'!!! jmax of grid = ',jmax - print *,' ' - endif - - igicwret = 91 - return - endif - - return - end - -c------------------------------------------------------------------ -c -c------------------------------------------------------------------ - SUBROUTINE qsort(x,ind,n) -c -c Code converted using TO_F90 by Alan Miller -c Date: 2002-12-18 Time: 11:55:47 - - IMPLICIT NONE - INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(12, 60) - - REAL (dp), INTENT(IN) :: x(n) - INTEGER, INTENT(OUT) :: ind(n) - INTEGER, INTENT(IN) :: n - -c *************************************************************************** -c -c ROBERT RENKA -c OAK RIDGE NATL. LAB. -c -c THIS SUBROUTINE USES AN ORDER N*LOG(N) QUICK SORT TO SORT A REAL (dp) -c ARRAY X INTO INCREASING ORDER. THE ALGORITHM IS AS FOLLOWS. IND IS -c INITIALIZED TO THE ORDERED SEQUENCE OF INDICES 1,...,N, AND ALL INTERCHANGES -c ARE APPLIED TO IND. X IS DIVIDED INTO TWO PORTIONS BY PICKING A CENTRAL -c ELEMENT T. THE FIRST AND LAST ELEMENTS ARE COMPARED WITH T, AND -c INTERCHANGES ARE APPLIED AS NECESSARY SO THAT THE THREE VALUES ARE IN -c ASCENDING ORDER. INTERCHANGES ARE THEN APPLIED SO THAT ALL ELEMENTS -c GREATER THAN T ARE IN THE UPPER PORTION OF THE ARRAY AND ALL ELEMENTS -c LESS THAN T ARE IN THE LOWER PORTION. THE UPPER AND LOWER INDICES OF ONE -c OF THE PORTIONS ARE SAVED IN LOCAL ARRAYS, AND THE PROCESS IS REPEATED -c ITERATIVELY ON THE OTHER PORTION. WHEN A PORTION IS COMPLETELY SORTED, -c THE PROCESS BEGINS AGAIN BY RETRIEVING THE INDICES BOUNDING ANOTHER -c UNSORTED PORTION. -c -c INPUT PARAMETERS - N - LENGTH OF THE ARRAY X. -c -c X - VECTOR OF LENGTH N TO BE SORTED. -c -c IND - VECTOR OF LENGTH >= N. -c -c N AND X ARE NOT ALTERED BY THIS ROUTINE. -c -c OUTPUT PARAMETER - IND - SEQUENCE OF INDICES 1,...,N PERMUTED IN THE SAME -c FASHION AS X WOULD BE. THUS, THE ORDERING ON -c X IS DEFINED BY Y(I) = X(IND(I)). -c -c ********************************************************************* - - ! NOTE -- IU AND IL MUST BE DIMENSIONED >= LOG(N) WHERE LOG HAS BASE 2. - - !********************************************************************* - - INTEGER :: iu(21), il(21) - INTEGER :: m, i, j, k, l, ij, it, itt, indx - REAL :: r - REAL (dp) :: t - - ! LOCAL PARAMETERS - - - ! IU,IL = TEMPORARY STORAGE FOR THE UPPER AND LOWER - ! INDICES OF PORTIONS OF THE ARRAY X - ! M = INDEX FOR IU AND IL - ! I,J = LOWER AND UPPER INDICES OF A PORTION OF X - ! K,L = INDICES IN THE RANGE I,...,J - ! IJ = RANDOMLY CHOSEN INDEX BETWEEN I AND J - ! IT,ITT = TEMPORARY STORAGE FOR INTERCHANGES IN IND - ! INDX = TEMPORARY INDEX FOR X - ! R = PSEUDO RANDOM NUMBER FOR GENERATING IJ - ! T = CENTRAL ELEMENT OF X - - IF (n <= 0) RETURN - - ! INITIALIZE IND, M, I, J, AND R - - DO i = 1, n - ind(i) = i - END DO - m = 1 - i = 1 - j = n - r = .375 - - ! TOP OF LOOP - - 20 IF (i >= j) GO TO 70 - IF (r <= .5898437) THEN - r = r + .0390625 - ELSE - r = r - .21875 - END IF - - ! INITIALIZE K - - 30 k = i - - ! SELECT A CENTRAL ELEMENT OF X AND SAVE IT IN T - - ij = i + r*(j-i) - it = ind(ij) - t = x(it) - - ! IF THE FIRST ELEMENT OF THE ARRAY IS GREATER THAN T, - ! INTERCHANGE IT WITH T - - indx = ind(i) - IF (x(indx) > t) THEN - ind(ij) = indx - ind(i) = it - it = indx - t = x(it) - END IF - - ! INITIALIZE L - - l = j - - ! IF THE LAST ELEMENT OF THE ARRAY IS LESS THAN T, - ! INTERCHANGE IT WITH T - indx = ind(j) - IF (x(indx) >= t) GO TO 50 - ind(ij) = indx - ind(j) = it - it = indx - t = x(it) - - ! IF THE FIRST ELEMENT OF THE ARRAY IS GREATER THAN T, - ! INTERCHANGE IT WITH T - - indx = ind(i) - IF (x(indx) <= t) GO TO 50 - ind(ij) = indx - ind(i) = it - it = indx - t = x(it) - GO TO 50 - - ! INTERCHANGE ELEMENTS K AND L - - 40 itt = ind(l) - ind(l) = ind(k) - ind(k) = itt - - ! FIND AN ELEMENT IN THE UPPER PART OF THE ARRAY WHICH IS - ! NOT LARGER THAN T - - 50 l = l - 1 - indx = ind(l) - IF (x(indx) > t) GO TO 50 - - ! FIND AN ELEMENT IN THE LOWER PART OF THE ARRAY WHCIH IS NOT SMALLER THAN T - - 60 k = k + 1 - indx = ind(k) - IF (x(indx) < t) GO TO 60 - - ! IF K <= L, INTERCHANGE ELEMENTS K AND L - - IF (k <= l) GO TO 40 - - ! SAVE THE UPPER AND LOWER SUBSCRIPTS OF THE PORTION OF THE - ! ARRAY YET TO BE SORTED - - IF (l-i > j-k) THEN - il(m) = i - iu(m) = l - i = k - m = m + 1 - GO TO 80 - END IF - - il(m) = k - iu(m) = j - j = l - m = m + 1 - GO TO 80 - - - ! BEGIN AGAIN ON ANOTHER UNSORTED PORTION OF THE ARRAY - - 70 m = m - 1 - IF (m == 0) RETURN - i = il(m) - j = iu(m) - - 80 IF (j-i >= 11) GO TO 30 - IF (i == 1) GO TO 20 - i = i - 1 - - ! SORT ELEMENTS I+1,...,J. NOTE THAT 1 <= I < J AND J-I < 11. - - 90 i = i + 1 - IF (i == j) GO TO 70 - indx = ind(i+1) - t = x(indx) - it = indx - indx = ind(i) - IF (x(indx) <= t) GO TO 90 - k = i - - 100 ind(k+1) = ind(k) - k = k - 1 - indx = ind(k) - IF (t < x(indx)) GO TO 100 - - ind(k+1) = it - GO TO 90 - END SUBROUTINE qsort diff --git a/sorc/gettrk.fd/gettrk_modules.f b/sorc/gettrk.fd/gettrk_modules.f deleted file mode 100644 index d0f052144b..0000000000 --- a/sorc/gettrk.fd/gettrk_modules.f +++ /dev/null @@ -1,303 +0,0 @@ - module def_vitals - type tcvcard ! Define a new type for a TC Vitals card - character*4 tcv_center ! Hurricane Center Acronym - character*4 tcv_storm_id ! Storm Identifier (03L, etc) - character*9 tcv_storm_name ! Storm name - integer tcv_ymd ! Date of observation (yyyymmdd) - integer tcv_hhmm ! Time of observation (UTC) - integer tcv_lat ! Storm Lat (*10), always >0 - character*1 tcv_latns ! 'N' or 'S' - integer tcv_lon ! Storm Lon (*10), always >0 - character*1 tcv_lonew ! 'E' or 'W' - integer tcv_stdir ! Storm motion vector (in degr) - integer tcv_stspd ! Spd of storm movement (m/s*10) - integer tcv_pcen ! Min central pressure (mb) - integer tcv_penv ! val outrmost closed isobar(mb) - integer tcv_penvrad ! rad outrmost closed isobar(km) - integer tcv_vmax ! max sfc wind speed (m/s) - integer tcv_vmaxrad ! rad of max sfc wind spd (km) - integer tcv_r15ne ! NE rad of 15 m/s winds (km) - integer tcv_r15se ! SE rad of 15 m/s winds (km) - integer tcv_r15sw ! SW rad of 15 m/s winds (km) - integer tcv_r15nw ! NW rad of 15 m/s winds (km) - character*1 tcv_depth ! Storm depth (S,M,D) X=missing - end type tcvcard - type (tcvcard), save, allocatable :: storm(:) - integer, save, allocatable :: stormswitch(:) - real, save, allocatable :: slonfg(:,:),slatfg(:,:) - character*3, save, allocatable :: stcvtype(:) ! FOF or TCV - end module def_vitals -c - module gen_vitals - type gencard ! Define a new type for a genesis vitals card - integer gv_gen_date ! genesis date in yyyymmddhh - integer gv_gen_fhr ! genesis fcst hour (usually 0) - integer gv_gen_lat ! genesis lat (*10), always >0 - character*1 gv_gen_latns ! 'N' or 'S' - integer gv_gen_lon ! genesis lon (*10), always >0 - character*1 gv_gen_lonew ! 'W' or 'E' - character*3 gv_gen_type ! 'FOF'; or TC Vitals ATCF ID - integer gv_obs_ymd ! Date of observation (yyyymmdd) - integer gv_obs_hhmm ! Time of observation (UTC) - integer gv_obs_lat ! Storm Lat (*10), always >0 - character*1 gv_obs_latns ! 'N' or 'S' - integer gv_obs_lon ! Storm Lon (*10), always >0 - character*1 gv_obs_lonew ! 'E' or 'W' - integer gv_stdir ! Storm motion vector (in degr) - integer gv_stspd ! Spd of storm movement (m/s*10) - integer gv_pcen ! Min central pressure (mb) - integer gv_penv ! val outrmost closed isobar(mb) - integer gv_penvrad ! rad outrmost closed isobar(km) - integer gv_vmax ! max sfc wind speed (m/s) - integer gv_vmaxrad ! rad of max sfc wind spd (km) - integer gv_r15ne ! NE rad of 15 m/s winds (km) - integer gv_r15se ! SE rad of 15 m/s winds (km) - integer gv_r15sw ! SW rad of 15 m/s winds (km) - integer gv_r15nw ! NW rad of 15 m/s winds (km) - character*1 gv_depth ! Storm depth (S,M,D) X=missing - end type gencard - type (gencard), save, allocatable :: gstorm(:) - end module gen_vitals -c - module inparms - type datecard ! Define a new type for the input namelist parms - integer bcc ! First 2 chars of yy of date (century) - integer byy ! Beginning yy of date to search for - integer bmm ! Beginning mm of date to search for - integer bdd ! Beginning dd of date to search for - integer bhh ! Beginning hh of date to search for - integer model ! integer identifier for model data used - character*8 modtyp ! 'global' or 'regional' - character*7 lt_units ! 'hours' or 'minutes' to indicate the - ! units of lead times in grib files - character*6 file_seq ! 'onebig' or 'multi' tells if grib - ! data will be input as one big file or - ! as individual files for each tau. - character*8 nesttyp ! Either "moveable" or "fixed" - end type datecard - end module inparms -c - module trkrparms - type trackstuff ! Define a new type for various tracker parms - real westbd ! Western boundary of search area - real eastbd ! Eastern boundary of search area - real northbd ! Northern boundary of search area - real southbd ! Southern boundary of search area - character*7 type ! 'tracker', 'midlat' or 'tcgen' - real mslpthresh ! min mslp gradient to be maintained - real v850thresh ! min avg 850 Vt to be maintained - character*8 gridtype ! 'global' or 'regional' - real contint ! Contour interval to be used for - ! "midlat" or "tcgen" cases. - logical want_oci ! Flag for whether to compute & write - ! out roci for a trkrtype=tracker run - character*1 out_vit ! Flag for whether to write out vitals - integer gribver ! Indicates whether input data is - ! GRIBv1 (1) or GRIBv2 (2) - integer g2_jpdtn ! Indicates GRIB2 template to use when - ! reading (0 = deterministic fcst, - ! 1 = ens fcst) - end type trackstuff - end module trkrparms -c - module contours - integer, parameter :: maxconts=100 ! max # of cont. intervals - type cint_stuff ! Define a new type for contour interval info - real :: xmaxcont ! max contour level in a field - real :: xmincont ! min contour level in a field - real :: contvals(maxconts) ! contour values in the field - integer :: numcont ! # of contour levels in a field - end type cint_stuff - end module contours -c - module atcf - integer atcfnum ! ATCF ID of model (63 for GFDL...) - character*4 atcfname ! ATCF Name of model (GFSO for GFS...) - integer atcfymdh ! YMDH to be used as initial date for - ! output ATCF forecast records. Will - ! be equal to initial run date for all - ! models except SREF; SREF will have a - ! start date artificially modified to - ! be 3 hours earlier in order to not - ! cause the NHC interpolator to burp. - integer atcffreq ! frequency (in centahours) of output - ! for atcfunix and certain other - ! files. Default: 600 (six-hourly) - end module atcf -c - module gfilename_info - character*4 ,save :: gmodname ! Model ID for first part of GRIB - ! file name ("gfdl","hwrf","hrs", etc) - character*40 ,save :: rundescr ! This is descriptive and up to - ! the developer (e.g., "6thdeg", - ! "9km_run","1.6km_run" - ! "15km_ens_run_member_n13", etc) - character*40 ,save :: atcfdescr ! This is optional. If used, it - ! should be something that identifies - ! the particular storm, preferably - ! using the atcf ID. For example, the - ! GFDL model standard is to use - ! something like "ike09l", or - ! "two02e", etc. - end module gfilename_info -c - module phase - character*1 , save :: phaseflag ! Will phase be determined - ! (y/n) - character*4 , save :: phasescheme ! What scheme to use: - ! cps = Hart's cyclone phase space - ! vtt = Vitart - ! both = Both cps and vtt are used - real, save :: wcore_depth ! The contour interval (in deg K) - ! used in determining if a closed contour - ! exists in the 300-500 mb T data, for - ! use with the vtt scheme. - end module phase -c - module structure - character*1 , save :: structflag ! Will structure be - ! analyzed (y/n)? - character*1 , save :: ikeflag ! Will IKE & SDP be - ! computed (y/n)? - end module structure -c - module tracked_parms - real, save, allocatable :: zeta(:,:,:) - real, save, allocatable :: u(:,:,:) - real, save, allocatable :: v(:,:,:) - real, save, allocatable :: hgt(:,:,:) - real, save, allocatable :: slp(:,:) - real, save, allocatable :: tmean(:,:) - real, save, allocatable :: cpshgt(:,:,:) - integer, save, allocatable :: ifhours(:) - integer, save, allocatable :: iftotalmins(:) - integer, save, allocatable :: ifclockmins(:) - integer, save, allocatable :: ltix(:) - real, save, allocatable :: fhreal(:) - end module tracked_parms -c - module radii -c For Barnes smoothing of parameters for tracking, e-folding -c radius = retrk (km), influence radius = ritrk (km). Max radius -c for searching for the max vorticity = rads (km). There is an -c important distinction between rads and ritrk. rads is used to -c determine the maximum distance from the guess position that -c we'll allow points to be in order to be considered as a -c candidate location for the updated fix position. On the other -c hand, ritrk is used once you're doing the barnes analysis on -c data for that candidate location, so that if data is not within -c distance ritrk of the candidate location, we ignore it. Also, -c for use in find_maxmin, nhalf = the number of times to halve the -c spacing of the search grid. Note that different values are used -c for the magnitude of the wind than for other parameters; this is -c so that the search area is restricted in order to avoid a -c problem of the program finding one wind minimum near the center -c and another one out near the storm's edge. -c -c redlm and ridlm = the e-folding radius (km) and influence radius -c (km) for Barnes analysis of u,v for updating first guess lat,lon -c for search. dlm = deep layer mean. -c -c real, parameter :: retrk_most=60.0, retrk_vmag=60.0 -c real, parameter :: ritrk_most=120.0, ritrk_vmag=120.0 -c real, parameter :: rads_most=120.0, rads_vmag=120.0 -c real, parameter :: retrk_most=150.0, retrk_vmag=60.0 -c real, parameter :: ritrk_most=300.0, ritrk_vmag=120.0 -c real, parameter :: rads_most=300.0, rads_vmag=120.0 - real, parameter :: retrk_most=75.0, retrk_vmag=60.0 - real, parameter :: ritrk_most=150.0, ritrk_vmag=120.0 - real, parameter :: rads_most=300.0, rads_vmag=120.0 - real, parameter :: retrk_coarse=150.0, retrk_hres=60.0 - real, parameter :: rads_fine=200.0, rads_hres=150.0 - real, parameter :: ritrk_coarse=300.0, rads_coarse=350.0 - real, parameter :: redlm=500.0, ridlm=2000.0 -c real, parameter :: redlm=500.0, ridlm=1700.0 -ctpm6/14 real, parameter :: redlm=500.0, ridlm=1000.0 - end module radii -c - module grid_bounds - real, save :: glatmin, glatmax, glonmin, glonmax ! These - ! define the boundaries of the input data grid - real, save, allocatable :: glat(:), glon(:) ! Will be filled - ! with lat/lon values for each pt on input grid - end module grid_bounds -c - module error_parms - real, parameter :: err_gfs_init=275.0 ! init errmax for gfs,mrf - ! and gdas - real, parameter :: err_reg_init=300.0 ! init errmax for others - real, parameter :: err_ecm_max=330.0 ! errmax for ecmwf - real, parameter :: err_reg_max=225.0 ! errmax for others for - ! remaining fcst times - real, parameter :: maxspeed_tc=60 ! max speed of storm movement - ! for tracker or tcgen cases - real, parameter :: maxspeed_ml=80 ! max speed of storm movement - ! for midlat cases -C real, parameter :: errpgro=1.25, errpmax=600.0 - real, parameter :: errpgro=1.25, errpmax=485.0 - real, parameter :: stermn = 0.1 ! Min Std dev for trk errors - real, parameter :: uverrmax = 225.0 ! For use in get_uv_guess - end module error_parms -c - module set_max_parms - integer, parameter :: maxstorm_tc=15 ! max # of storms pgm can - ! handle, for tc tracker case - integer, parameter :: maxstorm_mg=2000 ! max # of storms pgm can - ! handle, for midlat or tcgen case - integer, parameter :: maxtime=500 ! max # of fcst times pgm - integer, parameter :: maxtp=11 ! max # of tracked parms - integer, parameter :: maxmodel=20 ! max # of models currently - ! available - integer, parameter :: max_ike_cats=6 ! max # of IKE categories - integer, save :: interval_fhr ! # of hrs between fcst times - integer, parameter :: maxcenters=150 ! max # of max/min centers - ! to be tracked. - end module set_max_parms -c - module level_parms - integer, parameter :: nlevs=4 ! max # of vert levs to be read - integer, parameter :: nlevg=3 ! # of vert levs to be used for - ! figuring next guess position - integer, parameter :: nlevm1=2 ! # tracked levs for hgt - integer, parameter :: nlevzeta=3 ! # tracked levs for zeta - integer, parameter :: levsfc=4 ! array position of sfc winds. - integer, parameter :: nlev850=1 ! array position in u and v - integer, parameter :: nlev700=2 ! arrays for 850, 700 & 500 - integer, parameter :: nlev500=3 ! winds. Used in get_uv_center - integer, parameter :: nlevs_cps=13 ! # levs for Hart's CPS - real, save :: wgts(nlevg) ! Wghts for use in get_next_ges - data wgts /0.25, 0.50, 0.25/ ! 850, 700 & 500 mb wgts - end module level_parms -c - module trig_vals - real, save :: pi, dtr - real, save :: dtk = 111.1949 ! Dist (km) over 1 deg lat - ! using erad=6371.0e+3 - real, save :: erad = 6371.0e+3 ! Earth's radius (m) - real, save :: ecircum = 40030.2 ! Earth's circumference - ! (km) using erad=6371.e3 - real, save :: omega = 7.292e-5 - end module trig_vals -c - module verbose_output - integer, save :: verb ! Level of detail printed to terminal - ! 0 = No output - ! 1 = Error messages only - ! 2 = - ! 3 = All - end module verbose_output -c - module waitfor_parms - character*1 :: use_waitfor ! y or n, for waiting for input files - integer :: wait_min_age ! min age (in seconds)... time since - ! last file modification - integer :: wait_min_size ! minimum file size in bytes - integer :: wait_max_wait ! max total wait time in seconds - integer :: wait_sleeptime ! number of seconds to wait between - ! checks - integer, parameter :: pfc_cmd_len = 800 - character*1 :: use_per_fcst_command ! enable per_fcst_command - character(pfc_cmd_len) :: per_fcst_command ! command to run every forecast time - end module waitfor_parms -c---------------------------------------------------------------------c -c diff --git a/sorc/gettrk.fd/makefile b/sorc/gettrk.fd/makefile deleted file mode 100644 index 97c44515da..0000000000 --- a/sorc/gettrk.fd/makefile +++ /dev/null @@ -1,41 +0,0 @@ -SHELL= /bin/sh -ISIZE = 4 -RSIZE = 8 -FCOMP= ifort -nofree -CCOMP= icc -##INC = /contrib/nceplibs/nwprod/lib/incmod/g2_d -# LIBS= -L/nwprod/lib -lw3emc_d -lw3nco_d -lbacio_4 -##LIBS= -L/contrib/nceplibs/nwprod/lib -lw3emc_d -lw3nco_d -lg2_d -lbacio_4 -ljasper -lpng -lz -LDFLAGS= -FFLAGS= -O2 -fpe0 -I $(INC) -i$(ISIZE) -r$(RSIZE) -CFLAGS= -O2 - -gettrk: gettrk_main.f gettrk_modules.o module_waitfor.o cwaitfor.o - @echo " " - @echo " Compiling the main tracking program and subroutines....." - $(FCOMP) $(FFLAGS) $(LDFLAGS) gettrk_modules.o module_waitfor.o cwaitfor.o gettrk_main.f $(LIBS) -o gettrk - @echo " " - -cwaitfor.o: cwaitfor.c - @echo " " - @echo " Compiling the waitfor C routine...." - $(CCOMP) $(CFLAGS) -c cwaitfor.c -o cwaitfor.o - -module_waitfor.o: module_waitfor.f - @echo " " - @echo " Compiling the waitfor fortran module...." - $(FCOMP) $(FFLAGS) -c module_waitfor.f -o module_waitfor.o - -gettrk_modules.o: gettrk_modules.f - @echo " " - @echo " Compiling the regular tracker fortran modules....." - $(FCOMP) $(FFLAGS) -c gettrk_modules.f -o gettrk_modules.o - @echo " " - -CMD = gettrk - -clean: - -rm -f *.o *.mod - -install: - mv $(CMD) ../../exec/$(CMD) diff --git a/sorc/gettrk.fd/module_waitfor.f b/sorc/gettrk.fd/module_waitfor.f deleted file mode 100644 index f6f1b0d31b..0000000000 --- a/sorc/gettrk.fd/module_waitfor.f +++ /dev/null @@ -1,90 +0,0 @@ - MODULE module_waitfor - implicit none - private - public :: waitfor, run_command - - integer, parameter :: minage_def=30, minsize_def=1 - & ,maxwait_def=-1, sleeptime_def=3 - - CONTAINS - subroutine run_command(command,retval) -! This routine uses the C system command to run a command. -! This gets around any arbitrary command length limits in -! fortran. -! Also, this way we get the command return status. - implicit none - character(*), intent(in) :: command - integer, intent(out) :: retval - call run_cmd_helper(trim(command)//char(0), & - &len_trim(command)+1,retval) - end subroutine run_command - - subroutine run_cmd_helper(cmd,cmdlen,retval) - implicit none - integer, intent(in) :: cmdlen - integer, intent(out) :: retval - character(*), intent(in) :: cmd(cmdlen) - - call c_run_command(retval,cmd) - end subroutine run_cmd_helper - - subroutine waitfor(filename,status,minage,minsize,maxwait - & ,sleeptime) - implicit none - character(*),intent(in) :: filename - integer, optional, intent(in) :: minage - integer, optional, intent(in) :: minsize - integer, optional, intent(in) :: maxwait - integer, optional, intent(in) :: sleeptime - integer, intent(out) :: status - - integer :: minage_in, minsize_in, maxwait_in, sleeptime_in - - status=99 - - if(present(minage)) then - minage_in=minage - else - minage_in=minage_def - endif - - if(present(minsize)) then - minsize_in=minsize - else - minsize_in=minsize_def - endif - - if(present(maxwait)) then - maxwait_in=maxwait - else - maxwait_in=maxwait_def - endif - - if(present(sleeptime)) then - sleeptime_in=sleeptime - else - sleeptime_in=sleeptime_def - endif - - call waitfor_helper(status,minage_in,minsize_in - & ,maxwait_in,sleeptime_in,trim(filename),len_trim(filename)) - end subroutine waitfor - - subroutine waitfor_helper(status,minage,minsize - & ,maxwait,sleeptime,filename,N) - integer, intent(in) :: minage,minsize,maxwait,sleeptime,N - character(len=N),intent(in) :: filename - integer, intent(out) :: status - - character(len=N+1) :: filename0 - character(len=1) :: null - integer :: np1 - - null=char(0) - filename0=filename//null - np1=N+1 - - call cwaitfor(status,minage,minsize,maxwait,sleeptime - & ,filename0) - end subroutine waitfor_helper - END MODULE module_waitfor diff --git a/sorc/gfs_bufr.fd/buff.f b/sorc/gfs_bufr.fd/buff.f index 5dd19f4b10..5441fbf5a8 100755 --- a/sorc/gfs_bufr.fd/buff.f +++ b/sorc/gfs_bufr.fd/buff.f @@ -4,7 +4,7 @@ subroutine buff(nint1,nend1,nint3,nend3,npoint,idate,jdate,levs, !! integer nint, nend, npoint, idate(4), levs, jdate integer nint1, nend1, nint3, nend3 integer npoint, idate(4), levs, jdate - real*8 data(6*levs+24), wrkd(1) + real*8 data(6*levs+25), wrkd(1) integer idtln, nf, nfile, np integer lss, istat(npoint), ios CHARACTER*150 FILESEQ diff --git a/sorc/gfs_bufr.fd/gfsbufr.f b/sorc/gfs_bufr.fd/gfsbufr.f index 5e8fe06198..e6e3d06517 100755 --- a/sorc/gfs_bufr.fd/gfsbufr.f +++ b/sorc/gfs_bufr.fd/gfsbufr.f @@ -11,6 +11,10 @@ program meteormrf C 16-09-27 HUIYA CHUANG MODIFY TO READ GFS NEMS OUTPUT ON GRID SPACE C 16-10-15 HUIYA CHUANG: CONSOLIDATE TO READ FLUX FIELDS IN THIS C PACKAGE TOO AND THIS SPEEDS UP BFS BUFR BY 3X +C 17-02-27 GUANG PING LOU: CHANGE MODEL OUTPUT READ-IN TO HOURLY +C TO 120 HOURS AND 3 HOURLY TO 180 HOURS. +C 19-07-16 GUANG PING LOU: CHANGE FROM NEMSIO TO GRIB2. +C C C USAGE: C INPUT FILES: @@ -37,28 +41,32 @@ program meteormrf C MACHINE: IBM SP C C$$$ + use netcdf + use mpi use nemsio_module use sigio_module implicit none - include 'mpif.h' +!! include 'mpif.h' integer,parameter:: nsta=3000 - integer(sigio_intkind),parameter:: lusig=11 + integer,parameter:: ifile=11 + integer,parameter:: levso=64 integer(sigio_intkind):: irets -! type(sigio_head):: sighead type(nemsio_gfile) :: gfile integer ncfsig, nsig integer istat(nsta), idate(4), jdate - integer :: iromb, maxwv, levs,nstart,nend,nint,nsfc,levsi,im,jm - integer :: kwskip,npoint,np,ist,is,iret,lss,nss,nf,nsk,nfile + integer :: levs,nstart,nend,nint,nsfc,levsi,im,jm + integer :: npoint,np,ist,is,iret,lss,nss,nf,nsk,nfile integer :: ielev integer :: lsfc real :: alat,alon,rla,rlo real :: wrkd(1),dummy real rlat(nsta), rlon(nsta), elevstn(nsta) - integer nint1, nend1, nint3, nend3 + integer iidum(nsta),jjdum(nsta) + integer nint1, nend1, nint3, nend3, np1 integer landwater(nsta) character*1 ns, ew character*4 t3 + character*4 cstat(nsta) character*32 desc character*150 dird, fnsig logical f00, makebufr @@ -68,8 +76,14 @@ program meteormrf CHARACTER*80 CLIST(4) INTEGER NPP(4) CHARACTER*8 SEQNAM(4) - integer ierr, mrank, msize + integer ierr, mrank, msize,ntask integer n0, ntot + integer :: error, ncid, id_var,dimid + character(len=10) :: dim_nam + character(len=6) :: fformat + !added from Cory + integer :: iope, ionproc + integer, allocatable :: iocomms(:) C DATA SBSET / 'ABCD1234' / C @@ -79,9 +93,9 @@ program meteormrf c DATA SEQNAM / 'HEADR', 'PRES TMDB UWND VWND SPFH OMEG', c & 'CLS1' ,'D10M' / C - namelist /nammet/ iromb, maxwv, levs, makebufr, dird, + namelist /nammet/ levs, makebufr, dird, & nstart, nend, nint, nend1, nint1, - & nint3, nsfc, f00 + & nint3, nsfc, f00, fformat, np1 call mpi_init(ierr) call mpi_comm_rank(MPI_COMM_WORLD,mrank,ierr) @@ -92,7 +106,6 @@ program meteormrf open(5,file='gfsparm') read(5,nammet) write(6,nammet) - kwskip = (maxwv + 1) * ((iromb+1) * maxwv + 2) npoint = 0 99 FORMAT (I6, F6.2,A1, F7.2,A1,1X,A4,1X,I2, A28, I4) do np = 1, nsta+2 @@ -110,6 +123,7 @@ program meteormrf rlat(npoint) = rla rlon(npoint) = rlo istat(npoint) = ist + cstat(npoint) = T3 elevstn(npoint) = ielev if(lsfc .le. 9) then @@ -129,6 +143,14 @@ program meteormrf print *, ' number of station exceeds nsta, abort program' call abort endif +! print*,'npoint= ', npoint +! print*,'np,IST,idum,jdum,rlat(np),rlon(np)= ' + if(np1 == 0) then + do np = 1, npoint + read(7,98) IST, iidum(np), jjdum(np), ALAT, ALON + enddo + endif + 98 FORMAT (3I6, 2F9.2) if (mrank.eq.0.and.makebufr) then REWIND 1 READ (1,100) SBSET @@ -156,27 +178,17 @@ program meteormrf if(f00) nss = nstart c do nf = nss, nend, nint ntot = (nend - nss) / nint + 1 - do n0 = 1, ntot, msize - nf = (n0 + mrank - 1) * nint + nss -C print*,'n0 ntot nint nss mrank msize',n0,ntot,nint, -C & nss,mrank,msize - if(n0.eq.1.and.mrank.gt.0) then -c print*,'min(mrank,ntot-1) = ',min(mrank,ntot-1) - do nsk = 1, min(mrank,ntot-1) -! read(12) dummy - enddo - endif - if(n0.gt.1.and.msize.gt.1.and.nf.le.nend) then - do nsk = 2, msize -! read(12) dummy - enddo - endif + ntask = mrank/(float(msize)/float(ntot)) + nf = ntask * nint + nss + print*,'n0 ntot nint nss mrank msize' + print*, n0,ntot,nint,nss,mrank,msize + print*,'nf, ntask= ', nf, ntask if(nf .le. nend1) then nfile = 21 + (nf / nint1) else nfile = 21 + (nend1/nint1) + (nf-nend1)/nint3 endif -C print*, 'nf,nint,nfile = ',nf,nint,nfile + print*, 'nf,nint,nfile = ',nf,nint,nfile if(nf.le.nend) then if(nf.lt.10) then fnsig = 'sigf0' @@ -193,6 +205,19 @@ program meteormrf endif print *, 'Opening file : ',fnsig +!! read in either nemsio or NetCDF files + if (fformat == 'netcdf') then + error=nf90_open(trim(fnsig),nf90_nowrite,ncid) + error=nf90_inq_dimid(ncid,"grid_xt",dimid) + error=nf90_inquire_dimension(ncid,dimid,dim_nam,im) + error=nf90_inq_dimid(ncid,"grid_yt",dimid) + error=nf90_inquire_dimension(ncid,dimid,dim_nam,jm) + error=nf90_inq_dimid(ncid,"pfull",dimid) + error=nf90_inquire_dimension(ncid,dimid,dim_nam,levsi) + error=nf90_close(ncid) + print*,'NetCDF file im,jm,lm= ',im,jm,levs,levsi + + else call nemsio_init(iret=irets) print *,'nemsio_init, iret=',irets call nemsio_open(gfile,trim(fnsig),'read',iret=irets) @@ -200,35 +225,50 @@ program meteormrf print*,"fail to open nems atmos file";stop endif - call nemsio_getfilehead(gfile,iret=irets + call nemsio_getfilehead(gfile,iret=irets & ,dimx=im,dimy=jm,dimz=levsi) if( irets /= 0 ) then print*,'error finding model dimensions '; stop endif - print*,'im,jm,lm= ',im,jm,levsi -! call sigio_sclose(nsig,irets) -! if(irets.ne.0) then -! call errmsg('sighdr: error closing header from file -! & '//fnsig(1:ncfsig)) -! call errexit(2) -! endif + print*,'nemsio file im,jm,lm= ',im,jm,levsi call nemsio_close(gfile,iret=irets) - call meteorg(npoint,rlat,rlon,istat,elevstn, + endif + allocate (iocomms(0:ntot)) + if (fformat == 'netcdf') then + print*,'iocomms= ', iocomms + call mpi_comm_split(MPI_COMM_WORLD,ntask,0,iocomms(ntask),ierr) + call mpi_comm_rank(iocomms(ntask), iope, ierr) + call mpi_comm_size(iocomms(ntask), ionproc, ierr) + + call meteorg(npoint,rlat,rlon,istat,cstat,elevstn, & nf,nfile,fnsig,jdate,idate, - & iromb,maxwv,kwskip,levs,levsi,im,jm,nsfc, - & landwater,nend1, nint1, nint3) - endif - enddo + & levsi,im,jm,nsfc, + & landwater,nend1, nint1, nint3, iidum,jjdum,np1, + & fformat,iocomms(ntask),iope,ionproc) + call mpi_barrier(iocomms(ntask), ierr) + call mpi_comm_free(iocomms(ntask), ierr) + else +!! For nemsio input + call meteorg(npoint,rlat,rlon,istat,cstat,elevstn, + & nf,nfile,fnsig,jdate,idate, + & levs,im,jm,nsfc, + & landwater,nend1, nint1, nint3, iidum,jjdum,np1, + & fformat,iocomms(ntask),iope,ionproc) + endif + endif call mpi_barrier(mpi_comm_world,ierr) call mpi_finalize(ierr) if(mrank.eq.0) then print *, ' starting to make bufr files' print *, ' makebufr= ', makebufr print *, 'nint1,nend1,nint3,nend= ',nint1,nend1,nint3,nend +!! idate = 0 7 1 2019 +!! jdate = 2019070100 + if(makebufr) then nend3 = nend call buff(nint1,nend1,nint3,nend3, - & npoint,idate,jdate,levs, + & npoint,idate,jdate,levso, & dird,lss,istat,sbset,seqflg,clist,npp,wrkd) CALL W3TAGE('METEOMRF') endif diff --git a/sorc/gfs_bufr.fd/makefile_module b/sorc/gfs_bufr.fd/makefile_module index af73fccb11..c640d0a927 100755 --- a/sorc/gfs_bufr.fd/makefile_module +++ b/sorc/gfs_bufr.fd/makefile_module @@ -1,17 +1,21 @@ -TARGET = gfs_bufr -AR = ar -ARFLAGS = ruv +##################################################################################### +# gfs_bufr using module compile standard +# # 11/08/2019 guang.ping.lou@noaa.gov: Create NetCDF version +# ##################################################################################### +# set -eux +# FC = $(myFC) $(myFCFLAGS) CPP = $(myCPP) $(myCPPFLAGS) -CPPFLAGS = -DLINUX -FFLAGS = $(OPTS) $(DEBUG) \ - -I$(NEMSIO_INC) \ +FFLAGS = -I$(NETCDF_INC) \ + -I$(NEMSIO_INC) \ -I$(SIGIO_INC4) \ -I$(W3EMC_INC4) -LIBS = $(NEMSIO_LIB) \ +LIBS = -L$(NETCDF_LIB) -lnetcdf -lnetcdff \ + -L$(HDF5_LIB) -lhdf5_hl -lhdf5 \ + $(NEMSIO_LIB) \ $(W3EMC_LIB4) \ $(W3NCO_LIB4) \ $(BUFR_LIB4) \ @@ -23,13 +27,13 @@ SRCM = gfsbufr.f OBJS = physcons.o funcphys.o meteorg.o bfrhdr.o newsig1.o terp3.o\ bfrize.o vintg.o buff.o rsearch.o \ svp.o calpreciptype.o lcl.o mstadb.o tdew.o\ - machine.o gslp.o modstuff1.o + machine.o gslp.o modstuff1.o read_nemsio.o read_netcdf_p.o CMD = ../../exec/gfs_bufr $(CMD): $(SRCM) $(OBJS) $(FC) $(FFLAGS) $(SRCM) $(OBJS) $(LIBS) -o $(CMD) - + machine.o: machine.f $(FC) $(FFLAGS) -free -c machine.f physcons.o: physcons.f machine.o @@ -41,7 +45,11 @@ gslp.o: gslp.f modstuff1.o: modstuff1.f $(FC) $(INC) $(FFLAGS) -free -c modstuff1.f meteorg.o: meteorg.f physcons.o funcphys.o - $(FC) $(INC) $(FFLAGS) -c meteorg.f + $(FC) $(INC) $(FFLAGS) -c meteorg.f +read_netcdf_p.o: read_netcdf_p.f + $(FC) $(INC) $(FFLAGS) -c read_netcdf_p.f +read_nemsio.o: read_nemsio.f + $(FC) $(INC) $(FFLAGS) -c read_nemsio.f bfrhdr.o: bfrhdr.f $(FC) $(FFLAGS) -c bfrhdr.f newsig1.o: newsig1.f diff --git a/sorc/gfs_bufr.fd/meteorg.f b/sorc/gfs_bufr.fd/meteorg.f index 5add9877c2..30a6eecece 100755 --- a/sorc/gfs_bufr.fd/meteorg.f +++ b/sorc/gfs_bufr.fd/meteorg.f @@ -1,7 +1,8 @@ - subroutine meteorg(npoint,rlat,rlon,istat,elevstn, + subroutine meteorg(npoint,rlat,rlon,istat,cstat,elevstn, & nf,nfile,fnsig,jdate,idate, - & iromb,maxwv,kwskip,levso,levs,im,jm,kdim, - & landwater,nend1,nint1,nint3) + & levs,im,jm,kdim, + & landwater,nend1,nint1,nint3,iidum,jjdum,np1, + & fformat,iocomms,iope,ionproc) !$$$ SUBPROGRAM DOCUMENTATION BLOCK ! . . . . @@ -29,6 +30,11 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, ! 2018-02-21 GUANG PING LOU THIS VERSION IS BACKWARD COMPATIBLE TO GFS MODEL ! 2018-03-27 GUANG PING LOU CHANGE STATION ELEVATION CORRECTION LAPSE RATE FROM 0.01 TO 0.0065 ! 2018-03-28 GUANG PING LOU GENERALIZE TIME INTERVAL +! 2019-07-08 GUANG PING LOU ADDED STATION CHARACTER IDS +! 2019-10-08 GUANG PING LOU MODIFY TO READ IN NetCDF FILES. RETAIN NEMSIO +! RELATED CALLS AND CLEAN UP THE CODE. +! 2020-04-24 GUANG PING LOU Clean up code and remove station height +! adjustment ! ! USAGE: CALL PROGRAM meteorg ! INPUT: @@ -40,10 +46,6 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, ! nf - forecast cycle ! fnsig - sigma file name ! idate(4) - date -! iromb - for triangular truncation iromb==0 -! maxwv - wave number -! kwskip - spectral array -! levso - output vertical layers ! levs - input vertical layers ! kdim - sfc file dimension ! @@ -56,6 +58,7 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, ! MACHINE: IBM SP ! !$$$ + use netcdf use nemsio_module use sigio_module use physcons @@ -63,55 +66,57 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, use funcphys implicit none include 'mpif.h' -! type(sigio_head):: sighead,sigheado -! type(sigio_data):: sigdata type(nemsio_gfile) :: gfile type(nemsio_gfile) :: ffile type(nemsio_gfile) :: ffile2 - integer :: kwskip,iromb,maxwv,nfile,npoint,levso,levs,kdim + integer :: nfile,npoint,levs,kdim integer :: nfile1 - integer :: i,j,im,jm,jj,idum,jdum,idvc,idsl - integer,parameter :: nvcoord=2 - real :: scalar(kwskip,2+levs*2) - real :: vector(kwskip,levs*2) - integer :: idate(4),nsig,nsfc,nflx,np,k,l,nf,nfhour + integer :: i,j,im,jm,kk,idum,jdum,idvc,idsl +! idsl Integer(sigio_intkind) semi-lagrangian id +! idvc Integer(sigio_intkind) vertical coordinate id +! (=1 for sigma, =2 for ec-hybrid, =3 for ncep hybrid) + integer,parameter :: nvcoord=2 + integer,parameter :: levso=64 + integer :: idate(4),nij,nflx2,np,k,l,nf,nfhour,np1 integer :: idate_nems(7) - integer :: iret,iret1,jdate,nsil,leveta,lm,lp1 - integer :: ie,iw,jn,js + integer :: iret,jdate,leveta,lm,lp1 character*150 :: fnsig,fngrib - real*8 :: data(6*levso+24) - real :: fhour,pp,ppn,qs,qsn,esn,es,psfc,ppi,dtemp,iwx,nd - real :: t,q,u,v,td,tlcl,plcl,qw,tw,xlat,xlon,iossil,dlon - real :: dx,dy,zhour,zhour2 +!! real*8 :: data(6*levs+25) + real*8 :: data2(6*levso+25) + real*8 :: rstat1 + character*8 :: cstat1 + character*4 :: cstat(npoint) + real :: fhour,pp,ppn,qs,qsn,esn,es,psfc,ppi,dtemp,nd + real :: t,q,u,v,td,tlcl,plcl,qw,tw,xlat,xlon integer,dimension(npoint):: landwater integer,dimension(im,jm):: lwmask real,dimension(im,jm):: apcp, cpcp - real,dimension(npoint,2+levso*3):: grids,gridsi + real,dimension(npoint,2+levs*3):: grids real,dimension(npoint) :: rlat,rlon,pmsl,ps,psn,elevstn real,dimension(im*jm) :: dum1d,dum1d2 real,dimension(im,jm) :: gdlat, hgt, gdlon real,dimension(im,jm,15) :: dum2d real,dimension(im,jm,levs) :: t3d, q3d, uh, vh,omega3d - real,dimension(im,jm,levs) :: delp,delz + real,dimension(im,jm,levs) :: delpz real,dimension(im,jm,levs+1) :: pint, zint - real,dimension(npoint,levso) :: gridu,gridv,omega,qnew,zp - real,dimension(npoint):: gradx, grady - real,dimension(npoint,levs) :: griddiv,gridui,gridvi,omegai - real,dimension(npoint,levso) :: p1,p2,p3,pd1,pd2,pd3,tt,ttnew - real,dimension(npoint,levso) :: z1 - real,dimension(npoint,levso+1) :: pi3 + real,dimension(npoint,levs) :: gridu,gridv,omega,qnew,zp + real,dimension(npoint,levs) :: p1,pd3,ttnew + real,dimension(npoint,levs) :: z1 + real,dimension(npoint,levs+1) :: pi3 real :: zp2(2) real,dimension(kdim,npoint) :: sfc - real,dimension(1,levso+1) :: prsi,phii - real,dimension(1,levso) :: gt0,gq0,prsl,phy_f3d + real,dimension(1,levs+1) :: prsi,phii + real,dimension(1,levs) :: gt0,gq0,prsl,phy_f3d real :: PREC,TSKIN,SR,randomno(1,2) real :: DOMR,DOMZR,DOMIP,DOMS - real :: vcoord(levs+1,nvcoord),vcoordnems(levs+1,3,2) + real :: vcoord(levs+1,nvcoord),vdummy(levs+1) + real :: vcoordnems(levs+1,3,2) real :: rdum - integer :: n3dfercld,iseedl,time + integer :: n3dfercld,iseedl integer :: istat(npoint) logical :: trace - logical, parameter :: debugprint=.true. +!! logical, parameter :: debugprint=.true. + logical, parameter :: debugprint=.false. character lprecip_accu*3 real, parameter :: ERAD=6.371E6 real, parameter :: DTR=3.1415926/180. @@ -119,35 +124,79 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, integer :: nf1, fint integer :: nend1, nint1, nint3 character*150 :: fngrib2 - character(len=20) :: VarNameP, VarNameCP integer recn_dpres,recn_delz,recn_dzdt integer :: jrec + equivalence (cstat1,rstat1) + integer iidum(npoint),jjdum(npoint) + integer :: error, ncid, ncid2, id_var,dimid + character(len=100) :: long_name + character(len=6) :: fformat + integer,dimension(8) :: clocking + character(10) :: date + character(12) :: time + character(7) :: zone + character(3) :: Zreverse + character(20) :: VarName,LayName + integer iocomms,iope,ionproc - nsig = 11 - nsfc = 12 - nflx = 6 * levso + nij = 12 +!! nflx = 6 * levs + nflx2 = 6 * levso recn_dpres = 0 recn_delz = 0 recn_dzdt = 0 jrec = 0 lprecip_accu='yes' -! call sigio_sropen(nsig,trim(fnsig),iret) -! call sigio_srhead(nsig,sighead,iret1) -! if(iret.ne.0 .or. iret1.ne.0) then -! print*,"fail to open sigma file" -! stop -! endif -! fhour=sighead%fhour -! idate=sighead%idate + idvc=2 + idsl=1 +!read in NetCDF file header info + print*,"fformat= ", fformat +! print*,'meteorg.f, idum,jdum= ' +! do np = 1, npoint +! print*, iidum(np), jjdum(np) +! enddo - call nemsio_open(gfile,trim(fnsig),'read',iret=iret) - call nemsio_getfilehead(gfile,iret=iret - + ,idate=idate_nems(1:7),nfhour=nfhour + if(fformat .eq. "netcdf") then + print*,'iocomms inside meteorg.f=', iocomms + error=nf90_open(trim(fnsig),ior(nf90_nowrite,nf90_mpiio), + & ncid,comm=iocomms, info = mpi_info_null) + error=nf90_get_att(ncid,nf90_global,"ak",vdummy) + do k = 1, levs+1 + vcoord(k,1)=vdummy(levs-k+1) + enddo + error=nf90_get_att(ncid,nf90_global,"bk",vdummy) + do k = 1, levs+1 + vcoord(k,2)=vdummy(levs-k+1) + enddo + error=nf90_inq_varid(ncid, "time", id_var) + error=nf90_get_var(ncid, id_var, nfhour) + print*, "nfhour:",nfhour + error=nf90_get_att(ncid,id_var,"units",long_name) +!! print*,'time units',' -- ',trim(long_name) + read(long_name(13:16),"(i4)")idate(4) + read(long_name(18:19),"(i2)")idate(2) + read(long_name(21:22),"(i2)")idate(3) + read(long_name(24:25),"(i2)")idate(1) + fhour=float(nfhour) + print*,'date= ', idate + jdate = idate(4)*1000000 + idate(2)*10000+ + & idate(3)*100 + idate(1) + print *, 'jdate = ', jdate + error=nf90_inq_varid(ncid, "lon", id_var) + error=nf90_get_var(ncid, id_var, gdlon) + error=nf90_inq_varid(ncid, "lat", id_var) + error=nf90_get_var(ncid, id_var, gdlat) +!!end read NetCDF hearder info, read nemsio below if necessary + else + + call nemsio_open(gfile,trim(fnsig),'read',iret=iret) + call nemsio_getfilehead(gfile,iret=iret + + ,idate=idate_nems(1:7),nfhour=nfhour + ,idvc=idvc,idsl=idsl,lat=dum1d,lon=dum1d2 + ,vcoord=vcoordnems) - - do k=1,levs+1 + + do k=1,levs+1 vcoord(k,1)=vcoordnems(k,1,1) vcoord(k,2)=vcoordnems(k,2,1) end do @@ -155,7 +204,7 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, idate(2)=idate_nems(2) idate(3)=idate_nems(3) idate(4)=idate_nems(1) - fhour=float(nfhour) + fhour=float(nfhour) print *, ' processing forecast hour ', fhour print *, ' idate =', idate jdate = idate(4)*1000000 + idate(2)*10000+ @@ -169,162 +218,172 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, gdlon(i,j)=dum1d2((j-1)*im+i) end do end do - if(debugprint)print*,'sample lat= ',gdlat(im/5,jm/4) + + endif !end read in nemsio hearder + + if(debugprint) then + do k=1,levs+1 + print*,'vcoord(k,1)= ', k, vcoord(k,1) + end do + do k=1,levs+1 + print*,'vcoord(k,2)= ', k, vcoord(k,2) + end do + print*,'sample lat= ',gdlat(im/5,jm/4) + ,gdlat(im/5,jm/3),gdlat(im/5,jm/2) - if(debugprint)print*,'sample lon= ',gdlon(im/5,jm/4) + print*,'sample lon= ',gdlon(im/5,jm/4) + ,gdlon(im/5,jm/3),gdlon(im/5,jm/2) - -! read nemsio data + endif ! topography - call nemsio_readrecvw34(gfile,'hgt','sfc',1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'surface hgt not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - hgt(i,j) = dum1d(jj+i) - end do - end do + if (fformat == 'netcdf') then + VarName='hgtsfc' + Zreverse='yes' + call read_netcdf_p(ncid,im,jm,1,VarName,hgt,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'surface hgt not found' + else + VarName='hgt' + LayName='sfc' + call read_nemsio(gfile,im,jm,1,VarName,LayName,hgt, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'surface hgt not found' + endif if(debugprint)print*,'sample sfc h= ',hgt(im/5,jm/4) + ,hgt(im/5,jm/3),hgt(im/5,jm/2) - end if ! surface pressure (Pa) -! scalar(:,2)=sigdata%ps - - call nemsio_readrecvw34(gfile,'pres','sfc',1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'surface pres not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - pint(i,j,1) = dum1d(jj+i) - end do - end do + if (fformat == 'netcdf') then + VarName='pressfc' + Zreverse='yes' + call read_netcdf_p(ncid,im,jm,1,VarName,pint(:,:,1), + & Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'surface pressure not found' + else + VarName='pres' + LayName='sfc' + call read_nemsio(gfile,im,jm,1,VarName, + & LayName,pint(:,:,1),error) + if (error /= 0) print*,'surface pressure not found' + endif if(debugprint)print*,'sample sfc P= ',pint(im/2,jm/4,1), + pint(im/2,jm/3,1),pint(im/2,jm/2,1) - end if -! temperature using nemsio - do k =1, levs - call nemsio_readrecvw34(gfile,'tmp' - + ,'mid layer',k,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'T not found at ',k - else - do j=1,jm - jj= (j-1)*im - do i=1,im - t3d(i,j,k) = dum1d(jj+i) - end do - end do - if(debugprint) - + print*,'sample T at lev ',k,' = ',t3d(im/2,jm/4,k), - + t3d(im/2,jm/3,k),t3d(im/2,jm/2,k) - end if +! temperature using NetCDF + if (fformat == 'netcdf') then + VarName='tmp' + Zreverse='yes' + call read_netcdf_p(ncid,im,jm,levs,VarName,t3d,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'temp not found' + else + VarName='tmp' + LayName='mid layer' + call read_nemsio(gfile,im,jm,levs,VarName,LayName,t3d,error) + if (error /= 0) print*,'temp not found' + endif + if(debugprint) then + print*,'sample T at lev=1 to levs ' + do k = 1, levs + print*,k, t3d(im/2,jm/3,k) + enddo + endif ! specific humidity - call nemsio_readrecvw34(gfile,'spfh' - + ,'mid layer',k,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'Q not found at ',k - else - do j=1,jm - jj= (j-1)*im - do i=1,im - q3d(i,j,k) = dum1d(jj+i) - end do - end do - if(debugprint) - + print*,'sample Q at lev ',k,' = ',q3d(im/2,jm/4,k), - + q3d(im/2,jm/3,k),q3d(im/2,jm/2,k) - end if + if (fformat == 'netcdf') then + VarName='spfh' + Zreverse='yes' + call read_netcdf_p(ncid,im,jm,levs,VarName,q3d,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'spfh not found' + else + VarName='spfh' + LayName='mid layer' + call read_nemsio(gfile,im,jm,levs,VarName,LayName,q3d,error) + if (error /= 0) print*,'spfh not found' + endif + if(debugprint) then + print*,'sample Q at lev=1 to levs ' + do k = 1, levs + print*,k, q3d(im/2,jm/3,k) + enddo + endif ! U wind - call nemsio_readrecvw34(gfile,'ugrd' - + ,'mid layer',k,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'U not found at ',k - else - do j=1,jm - jj= (j-1)*im - do i=1,im - uh(i,j,k) = dum1d(jj+i) - end do - end do - if(debugprint) - + print*,'sample U at lev ',k,' = ',uh(im/2,jm/4,k), - + uh(im/2,jm/3,k),uh(im/2,jm/2,k) - end if + if (fformat == 'netcdf') then + VarName='ugrd' + Zreverse='yes' + call read_netcdf_p(ncid,im,jm,levs,VarName,uh,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'ugrd not found' + else + VarName='ugrd' + LayName='mid layer' + call read_nemsio(gfile,im,jm,levs,VarName,LayName,uh,error) + if (error /= 0) print*,'ugrd not found' + endif + if(debugprint) then + print*,'sample U at lev=1 to levs ' + do k = 1, levs + print*,k, uh(im/2,jm/3,k) + enddo + endif ! V wind - call nemsio_readrecvw34(gfile,'vgrd' - + ,'mid layer',k,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'V not found at ',k - else - do j=1,jm - jj= (j-1)*im - do i=1,im - vh(i,j,k) = dum1d(jj+i) - end do - end do - if(debugprint) - + print*,'sample V at lev ',k,' = ',vh(im/2,jm/4,k), - + vh(im/2,jm/3,k),vh(im/2,jm/2,k) - end if + if (fformat == 'netcdf') then + VarName='vgrd' + Zreverse='yes' + call read_netcdf_p(ncid,im,jm,levs,VarName,vh,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'vgrd not found' + else + VarName='vgrd' + LayName='mid layer' + call read_nemsio(gfile,im,jm,levs,VarName,LayName,vh,error) + if (error /= 0) print*,'vgrd not found' + endif + if(debugprint) then + print*,'sample V at lev=1 to levs ' + do k = 1, levs + print*,k, vh(im/2,jm/3,k) + enddo + endif ! dzdt !added by Guang Ping Lou for FV3GFS - call nemsio_readrecvw34(gfile,'dzdt' - + ,'mid layer',k,data=dum1d,iret=iret) - if (iret /= 0) then - recn_dzdt = -9999 - print*,'dzdt not found at ',k - else - do j=1,jm - jj= (j-1)*im - do i=1,im - omega3d(i,j,k) = dum1d(jj+i) * 100.0 !convert from m/s to cm/s - end do - end do - if(debugprint) - + print*,'sample dzdt at lev ',k,' = ',omega3d(im/2,jm/4,k), - + omega3d(im/2,jm/3,k),omega3d(im/2,jm/2,k) - end if + if (fformat == 'netcdf') then + VarName='dzdt' + Zreverse='yes' + call read_netcdf_p(ncid,im,jm,levs,VarName,omega3d,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'dzdt not found' + else + VarName='dzdt' + LayName='mid layer' + call read_nemsio(gfile,im,jm,levs,VarName,LayName, + & omega3d,error) + if (error /= 0) print*,'dzdt not found' + endif + if(debugprint) then + print*,'sample dzdt at lev=1 to levs ' + do k = 1, levs + print*,k, omega3d(im/2,jm/3,k) + enddo + endif ! dpres !added by Guang Ping Lou for FV3GFS (interface pressure delta) - call nemsio_readrecvw34(gfile,'dpres' - + ,'mid layer',k,data=dum1d,iret=iret) - if (iret /= 0) then - recn_dpres = -9999 - print*,'dpres not found at ',k - else - do j=1,jm - jj= (j-1)*im - do i=1,im - delp(i,j,k) = dum1d(jj+i) - end do - end do - if(debugprint) - + print*,'sample dpres at lev ',k,' = ',delp(im/2,jm/4,k), - + delp(im/2,jm/3,k),delp(im/2,jm/2,k) - end if -! delz !added by Guang Ping Lou for FV3GFS ("height thickness" with unit "meters" bottom up) - call nemsio_readrecvw34(gfile,'delz' - + ,'mid layer',k,data=dum1d,iret=iret) - if (iret /= 0) then - recn_delz = -9999 - print*,'delz not found at ',k - else - do j=1,jm - jj= (j-1)*im - do i=1,im - delz(i,j,k) = dum1d(jj+i) - end do - end do - if(debugprint) - + print*,'sample delz at lev ',k,' = ',delz(im/2,jm/4,k), - + delz(im/2,jm/3,k),delz(im/2,jm/2,k) - end if - end do ! vertical loop k - + if (fformat == 'netcdf') then + VarName='dpres' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,levs,VarName,delpz,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'dpres not found' + else + VarName='dpres' + LayName='mid layer' + call read_nemsio(gfile,im,jm,levs,VarName,LayName, + & delpz,error) + if (error /= 0) print*,'dpres not found' + endif + if(debugprint) then + print*,'sample delp at lev=1 to levs ' + do k = 1, levs + print*,k, delpz(im/2,jm/3,k) + enddo + endif ! compute interface pressure if(recn_dpres == -9999) then do k=2,levs+1 @@ -336,55 +395,104 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, end do end do else -! compute pint using dpres from bot up if DZDT is used - do k=2,levs+1 +! compute pint using dpres from top down if DZDT is used + if (fformat == 'netcdf') then + do j=1,jm + do i=1,im + pint(i,j,levs+1) = delpz(i,j,1) + end do + end do + do k=levs,2,-1 + kk=levs-k+2 do j=1,jm do i=1,im - pint(i,j,k) = pint(i,j,k-1) - delp(i,j,k-1) + pint(i,j,k) = pint(i,j,k+1) + delpz(i,j,kk) end do end do - if(debugprint) - + print*,'sample interface pressure pint at lev ',k,' = ', - + pint(im/2,jm/4,k), - + pint(im/2,jm/3,k),pint(im/2,jm/2,k) end do + else + do k=2,levs+1 + do j=1,jm + do i=1,im + pint(i,j,k) = pint(i,j,k-1) - delpz(i,j,k-1) + end do + end do + end do + endif + if(debugprint) then + print*,'sample interface pressure pint at lev =1 to levs ' + do k = 1, levs+1 + print*,k, pint(im/2,jm/3,k),pint(im/3,jm/8,k) + enddo + endif endif +! delz !added by Guang Ping Lou for FV3GFS ("height thickness" with unit "meters" bottom up) + if (fformat == 'netcdf') then + VarName='delz' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,levs,VarName,delpz,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'delz not found' + else + VarName='delz' + LayName='mid layer' + call read_nemsio(gfile,im,jm,levs,VarName,LayName,delpz,error) + if (error /= 0) print*,'delz not found' + endif + if(debugprint) then + print*,'sample delz at lev=1 to levs ' + do k = 1, levs + print*,k, delpz(im/2,jm/3,k) + enddo + endif + ! compute interface height (meter) if(recn_delz == -9999) then print*, 'using calculated height' else -! compute pint using dpres from bot up if DZDT is used +! compute zint using delz from bot up if DZDT is used + if (fformat == 'netcdf') then do j=1,jm do i=1,im zint(i,j,1) = 0.0 end do end do do k=2,levs+1 + kk=levs-k+1 do j=1,jm do i=1,im - zint(i,j,k) = zint(i,j,k-1) + delz(i,j,k-1) + zint(i,j,k) = zint(i,j,k-1) - delpz(i,j,kk) end do end do - if(debugprint) - + print*,'sample interface height pint at lev ',k,' = ', - + zint(im/2,jm/4,k), - + zint(im/2,jm/3,k),zint(im/2,jm/2,k) end do + else + do k=2,levs+1 + do j=1,jm + do i=1,im + zint(i,j,k) = zint(i,j,k-1) + delpz(i,j,k-1) + end do + end do + end do + endif + if(debugprint) then + print*,'sample interface height zint at lev =1 to levs ' + do k = 1, levs+1 + print*,k, zint(im/2,jm/3,k),zint(im/3,jm/8,k) + enddo + endif endif -! close up this nems file - call nemsio_close(gfile,iret=iret) +! close up this NetCDF file + error=nf90_close(ncid) -! read surface data -! read(nsfc,err=910) sfc -! open nemsio flux file +! Now open up NetCDF surface files if ( nf .le. nend1 ) then nf1 = nf - nint1 else nf1 = nf - nint3 endif - if ( nf .eq. 0 ) nf1=0 - if(nf.eq.0) then + if ( nf == 0 ) nf1=0 + if(nf==0) then fngrib='flxf00' elseif(nf.lt.10) then fngrib='flxf0' @@ -396,7 +504,7 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, fngrib='flxf' write(fngrib(5:7),'(i3)') nf endif - if(nf1.eq.0) then + if(nf1==0) then fngrib2='flxf00' elseif(nf1.lt.10) then fngrib2='flxf0' @@ -408,155 +516,178 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, fngrib2='flxf' write(fngrib2(5:7),'(i3)') nf1 endif - call nemsio_open(ffile,trim(fngrib),'read',iret=iret) - call nemsio_open(ffile2,trim(fngrib2),'read',iret=iret) - print*, 'open file1,2= ', trim(fngrib),' ', trim(fngrib2) - if ( iret /= 0 ) then - print*,"fail to open nems flux file";stop - endif -! get hour when buket was last emptied - if(lprecip_accu == 'no') then - call nemsio_getheadvar(ffile,'zhour',zhour,iret=iret) - call nemsio_getheadvar(ffile2,'zhour',zhour2,iret=iret) - if(debugprint)print*,'sample zhour,zhour2= ',zhour,zhour2 - else - zhour=0.0 - zhour2=0.0 - if(debugprint)print*,'No bucket zhour,zhour2= ',zhour,zhour2 + if (fformat == 'netcdf') then + error=nf90_open(trim(fngrib),nf90_nowrite,ncid) +!open T-nint below + error=nf90_open(trim(fngrib2),nf90_nowrite,ncid2) + if(error /= 0)print*,'file not open',trim(fngrib), trim(fngrib2) + else + call nemsio_open(ffile,trim(fngrib),'read',iret=error) + call nemsio_open(ffile2,trim(fngrib2),'read',iret=error) + if(error /= 0)print*,'file not open',trim(fngrib), trim(fngrib2) endif ! land water mask - call nemsio_readrecvw34(ffile,'land','sfc',1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'land mask not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - lwmask(i,j) = dum1d(jj+i) - end do - end do + if (fformat == 'netcdf') then + VarName='land' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,lwmask,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'lwmask not found' + else + VarName='land' + LayName='sfc' + call read_nemsio(ffile,im,jm,1,VarName,LayName,lwmask,error) + if (error /= 0) print*,'lwmask not found' + endif if(debugprint) + print*,'sample land mask= ',lwmask(im/2,jm/4), + lwmask(im/2,jm/3) - end if ! surface T - call nemsio_readrecvw34(ffile,'tmp','sfc',1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'surface T not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,1) = dum1d(jj+i) - end do - end do + if (fformat == 'netcdf') then + VarName='tmpsfc' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,dum2d(:,:,1), + & Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'tmpsfc not found' + else + VarName='tmp' + LayName='sfc' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + & dum2d(:,:,1),error) + if (error /= 0) print*,'tmpsfc not found' + endif if(debugprint) + print*,'sample sfc T= ',dum2d(im/2,jm/4,1),dum2d(im/2,jm/3,1), + dum2d(im/2,jm/2,1) - end if ! 2m T - call nemsio_readrecvw34(ffile,'tmp','2 m above gnd', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'surface T not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,2) = dum1d(jj+i) - end do - end do - end if + if (fformat == 'netcdf') then + VarName='tmp2m' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,dum2d(:,:,2), + & Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'tmp2m not found' + else + VarName='tmp' + LayName='2 m above gnd' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,2),error) + if (error /= 0) print*,'tmp2m not found' + endif + if(debugprint) + + print*,'sample 2m T= ',dum2d(im/2,jm/4,2),dum2d(im/2,jm/3,2), + + dum2d(im/2,jm/2,2) ! 2m Q - call nemsio_readrecvw34(ffile,'spfh','2 m above gnd', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'surface T not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,3) = dum1d(jj+i) - end do - end do + if (fformat == 'netcdf') then + VarName='spfh2m' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,dum2d(:,:,3), + & Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'spfh2m not found' + else + VarName='spfh' + LayName='2 m above gnd' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,3),error) + if (error /= 0) print*,'spfh2m not found' + endif if(debugprint) + print*,'sample 2m Q= ',dum2d(im/2,jm/4,3),dum2d(im/2,jm/3,3), + dum2d(im/2,jm/2,3) - end if ! U10 - call nemsio_readrecvw34(ffile,'ugrd','10 m above gnd', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'10 m U not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,4) = dum1d(jj+i) - end do - end do - end if + if (fformat == 'netcdf') then + VarName='ugrd10m' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,dum2d(:,:,4), + & Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'ugrd10m not found' + else + VarName='ugrd' + LayName='10 m above gnd' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,4),error) + if (error /= 0) print*,'ugrd10m not found' + endif ! V10 - call nemsio_readrecvw34(ffile,'vgrd','10 m above gnd', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'10 m V not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,5) = dum1d(jj+i) - end do - end do - end if + if (fformat == 'netcdf') then + VarName='vgrd10m' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,dum2d(:,:,5), + & Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'vgrd10m not found' + else + VarName='vgrd' + LayName='10 m above gnd' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,5),error) + if (error /= 0) print*,'vgrd10m not found' + endif ! soil T - call nemsio_readrecvw34(ffile,'tmp','0-10 cm down', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'soil T not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,6) = dum1d(jj+i) - end do - end do + if (fformat == 'netcdf') then + VarName='soilt1' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,dum2d(:,:,6), + & Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'soilt1 not found' + else + VarName='tmp' + LayName='0-10 cm down' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,6),error) + if (error /= 0) print*,'soil T not found' + endif if(debugprint) + print*,'sample soil T= ',dum2d(im/2,jm/4,6),dum2d(im/2,jm/3,6), + dum2d(im/2,jm/2,6) - end if + ! snow depth - call nemsio_readrecvw34(ffile,'snod','sfc', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'snow depth not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,7) = dum1d(jj+i) - end do - end do - end if + if (fformat == 'netcdf') then + VarName='snod' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,dum2d(:,:,7), + & Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'snod not found' + else + VarName='snod' + LayName='sfc' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,7),error) + if (error /= 0) print*,'snod not found' + endif ! evaporation - call nemsio_readrecvw34(ffile,'lhtfl','sfc', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'latent heat flux not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,8) = dum1d(jj+i) - end do - end do - end if +!instantaneous surface latent heat net flux + if (fformat == 'netcdf') then + VarName='lhtfl' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,dum2d(:,:,8), + & Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'lhtfl not found' + else + VarName='lhtfl' + LayName='sfc' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,8),error) + if (error /= 0) print*,'lhtfl not found' + endif + if(debugprint) + + print*,'evaporation latent heat net flux= ', + + dum2d(im/2,jm/4,8),dum2d(im/2,jm/3,8) + if(debugprint) + + print*,'evaporation latent heat net flux stn 000692)= ', + + dum2d(2239,441,8) ! total precip if ( nf .le. nend1 ) then @@ -565,365 +696,279 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, fint = nint3 endif ! for accumulated precipitation: -! read meta data to see if precip has zero bucket -!! call nemsio_getheadvar(ffile,trim(VarName),lprecip_accu,iret) - call nemsio_searchrecv(ffile,jrec,'prate_ave','sfc',1,iret=iret) - if (jrec > 0) then - lprecip_accu='yes' - VarNameP='prate_ave' - VarNameCP='cprat_ave' - if(debugprint)print*,trim(VarNameP), - & " Continous precipitation rate found (no bucket)", - & "iret= ", iret - else - lprecip_accu='no' - VarNameP='prateb_ave' - VarNameCP='cpratb_ave' - if(debugprint)print*,trim(VarNameP), - & " Continous precipitation rate NOT found (with bucket)", - & "iret= ", iret - end if - - if(lprecip_accu == 'yes') then - if(debugprint) print*, 'continuous precipitation' - call nemsio_readrecvw34(ffile2,trim(VarNameP),'sfc', - & 1,data=dum1d2,iret=iret) - if (iret /= 0) then - print*,'total precip not found' - else - if(debugprint) - & print*,'sample fhour zhour zhour2,3= ', fhour, zhour, zhour2, - & '1sample precip rate= ',dum1d(im/2+(jm/4-1)*im), - + dum1d(im/2+(jm/3-1)*im),dum1d(im/2+(jm/2-1)*im) - end if - call nemsio_readrecvw34(ffile,trim(VarNameP),'sfc', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'prate_ave not found' - else + if (fformat == 'netcdf') then + VarName='prate_ave' + Zreverse='no' +!! call read_netcdf_p(ncid,im,jm,1,VarName,apcp,Zreverse,error) !current hour + call read_netcdf_p(ncid,im,jm,1,VarName,apcp,Zreverse, + & iope,ionproc,iocomms,error) +!! call read_netcdf_p(ncid2,im,jm,1,VarName,cpcp,Zreverse,error) !earlier hour + call read_netcdf_p(ncid2,im,jm,1,VarName,cpcp,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'prate_ave not found' + else + VarName='prate_ave' + LayName='sfc' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + apcp,error) + call read_nemsio(ffile2,im,jm,1,VarName,LayName, + + cpcp,error) + if (error /= 0) print*,'prate_ave2 not found' + endif if(debugprint) - & print*,'sample fhour zhour zhour2,4= ', fhour, zhour, zhour2, - & '2sample precip rate= ',dum1d(im/2+(jm/4-1)*im), - + dum1d(im/2+(jm/3-1)*im),dum1d(im/2+(jm/2-1)*im) + & print*,'sample fhour ,3= ', fhour, + & '1sample precip rate= ',apcp(im/2,jm/3),cpcp(im/2,jm/3) ap=fhour-fint do j=1,jm - jj= (j-1)*im do i=1,im - dum2d(i,j,9) =(dum1d(jj+i)*fhour-dum1d2(jj+i)*ap) - & * 3600.0 + dum2d(i,j,9) =(apcp(i,j)*fhour-cpcp(i,j)*ap)*3600.0 end do end do - end if if(debugprint) - & print*,'sample fhour zhour zhour2,5= ', fhour, zhour, zhour2, + & print*,'sample fhour ,5= ', fhour, & 'sample total precip= ',dum2d(im/2,jm/4,9), + dum2d(im/2,jm/3,9),dum2d(im/2,jm/2,9) ! convective precip - call nemsio_readrecvw34(ffile2,trim(VarNameCP),'sfc', - & 1,data=dum1d2,iret=iret) - if (iret /= 0) then - print*,'convective precip not found= ', trim(VarNameCP) - end if - call nemsio_readrecvw34(ffile,trim(VarNameCP),'sfc', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'cprat_ave not found= ', trim(VarNameCP) - else + if (fformat == 'netcdf') then + VarName='cprat_ave' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,apcp,Zreverse, + & iope,ionproc,iocomms,error) + call read_netcdf_p(ncid2,im,jm,1,VarName,cpcp,Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'cprat_ave not found' + else + VarName='cprat_ave' + LayName='sfc' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + apcp,error) + call read_nemsio(ffile2,im,jm,1,VarName,LayName, + + cpcp,error) + if (error /= 0) print*,'cprat_ave2 not found' + endif ap=fhour-fint do j=1,jm - jj= (j-1)*im do i=1,im - dum2d(i,j,10)=(dum1d(jj+i)*fhour-dum1d2(jj+i)*ap) - & * 3600.0 + dum2d(i,j,10)=(apcp(i,j)*fhour-cpcp(i,j)*ap)*3600.0 + & end do end do - end if - -!for bucketed precipitation: - else !if precip_accu = 'no' - if(debugprint) print*, 'bucketed precipitation' - if(debugprint)print*,trim(VarNameP), lprecip_accu - if ( mod(nf1,6) .eq. 0) then - do j=1,jm - do i=1,im - apcp(i,j) = 0.0 - end do - end do - print*, 'mod(nf1,6)= ', nf1 - print*,'sample fhour zhour zhour2,6= ', fhour, zhour, zhour2 - else - call nemsio_readrecvw34(ffile2,trim(VarNameP),'sfc', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'total precip not found' - else - if(debugprint) - & print*,'sample fhour zhour zhour2,7= ', fhour, zhour, zhour2, - & '1sample precip rate= ',dum1d(im/2+(jm/4-1)*im), - + dum1d(im/2+(jm/3-1)*im),dum1d(im/2+(jm/2-1)*im) - ap=3600.*(fhour-zhour2-fint) - do j=1,jm - jj= (j-1)*im - do i=1,im - apcp(i,j) = dum1d(jj+i)*ap - end do - end do - end if - end if - call nemsio_readrecvw34(ffile,trim(VarNameP),'sfc', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'prate_ave not found' - else - if(debugprint) - & print*,'sample fhour zhour zhour2,8= ', fhour, zhour, zhour2, - & '2sample precip rate= ',dum1d(im/2+(jm/4-1)*im), - + dum1d(im/2+(jm/3-1)*im),dum1d(im/2+(jm/2-1)*im) - ap = 3600.*(fhour-zhour) - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,9) = dum1d(jj+i)*ap - apcp(i,j) - end do - end do - end if - if(debugprint) - & print*,'sample fhour zhour zhour2,9= ', fhour, zhour, zhour2, - & 'sample total precip= ',dum2d(im/2,jm/4,9), - + dum2d(im/2,jm/3,9),dum2d(im/2,jm/2,9) - -! convective precip - if ( mod(nf1,6) .eq. 0) then - do j=1,jm - do i=1,im - cpcp(i,j) = 0.0 - end do - end do - print*, 'cpcp mod(nf1,6)= ', nf1 - else - call nemsio_readrecvw34(ffile2,trim(VarNameCP),'sfc', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'convective precip not found' - else - ap=3600.*(fhour-zhour2-fint) - do j=1,jm - jj= (j-1)*im - do i=1,im - cpcp(i,j) = dum1d(jj+i)*ap - end do - end do - end if - end if !precip_accu - call nemsio_readrecvw34(ffile,trim(VarNameCP),'sfc', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'cprat_ave not found' - else - ap = 3600.*(fhour-zhour) - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,10) = dum1d(jj+i)*ap - cpcp(i,j) - end do - end do - end if - end if ! water equi - call nemsio_readrecvw34(ffile,'weasd','sfc', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'water equivqlent not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,11) = dum1d(jj+i) - end do - end do - end if + if (fformat == 'netcdf') then + VarName='weasd' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName,dum2d(:,:,11), + & Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'weasd not found' + else + VarName='weasd' + LayName='sfc' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,11),error) + if (error /= 0) print*,'weasd not found' + endif ! low cloud fraction - call nemsio_readrecvw34(ffile,'tcdc_ave','low cld lay', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'latent heat flux not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,12) = dum1d(jj+i) - end do - end do - end if + if (fformat == 'netcdf') then + VarName='tcdc_avelcl' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName, + & dum2d(:,:,12),Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'tcdc_avelcl not found' + else + VarName='tcdc_ave' + LayName='low cld lay' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,12),error) + if (error /= 0) print*,'low cld lay not found' + endif ! mid cloud fraction - call nemsio_readrecvw34(ffile,'tcdc_ave','mid cld lay', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'latent heat flux not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,13) = dum1d(jj+i) - end do - end do - end if + if (fformat == 'netcdf') then + VarName='tcdc_avemcl' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName, + & dum2d(:,:,13),Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'tcdc_avemcl not found' + else + VarName='tcdc_ave' + LayName='mid cld lay' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,13),error) + if (error /= 0) print*,'mid cld lay not found' + endif ! high cloud fraction - call nemsio_readrecvw34(ffile,'tcdc_ave','high cld lay', - & 1,data=dum1d,iret=iret) - if (iret /= 0) then - print*,'latent heat flux not found' - else - do j=1,jm - jj= (j-1)*im - do i=1,im - dum2d(i,j,14) = dum1d(jj+i) - end do - end do + if (fformat == 'netcdf') then + VarName='tcdc_avehcl' + Zreverse='no' + call read_netcdf_p(ncid,im,jm,1,VarName, + & dum2d(:,:,14),Zreverse, + & iope,ionproc,iocomms,error) + if (error /= 0) print*,'tcdc_avehcl not found' + else + VarName='tcdc_ave' + LayName='high cld lay' + call read_nemsio(ffile,im,jm,1,VarName,LayName, + + dum2d(:,:,14),error) + if (error /= 0) print*,'high cld lay not found' + endif + if(debugprint) + print*,'sample high cloud frac= ',dum2d(im/2,jm/4,14), + dum2d(im/2,jm/3,14),dum2d(im/2,jm/2,14) - end if - - call nemsio_close(ffile,iret=iret) - call nemsio_close(ffile2,iret=iret) + if (fformat == 'netcdf') then + error=nf90_close(ncid) + error=nf90_close(ncid2) + else + call nemsio_close(ffile,iret=error) + call nemsio_close(ffile2,iret=error) + endif + call date_and_time(date,time,zone,clocking) +! print *,'10reading surface data end= ', clocking + print *,'10date, time, zone',date, time, zone +! +! get the nearest neighbor i,j from the table ! -! find nearest neighbor -! - dlon=360./float(im) do np=1, npoint +! use read in predetermined i,j + if (np1==0) then + idum=iidum(np) + jdum=jjdum(np) + + else +! find nearest neighbor rdum=rlon(np) if(rdum<0.)rdum=rdum+360. -! idum=nint(rdum/dlon)+1 ! assume evenly spaced longitude do j=1,jm-1 do i=1,im-1 if((rdum>=gdlon(i,j) .and. rdum<=gdlon(i+1,j)) .and. + (rlat(np)<=gdlat(i,j).and.rlat(np)>=gdlat(i,j+1)) ) then - if(landwater(np) .eq. 2)then + if(landwater(np) == 2)then idum=i jdum=j exit - else if(landwater(np) .eq. lwmask(i,j))then + else if(landwater(np) == lwmask(i,j))then idum=i jdum=j !1 exit - else if(landwater(np) .eq. lwmask(i+1,j))then + else if(landwater(np) == lwmask(i+1,j))then idum=i+1 jdum=j ! 2 exit - else if(landwater(np) .eq. lwmask(i-1,j))then + else if(landwater(np) == lwmask(i-1,j))then idum=i-1 jdum=j ! 3 exit - else if(landwater(np) .eq. lwmask(i,j+1))then + else if(landwater(np) == lwmask(i,j+1))then idum=i jdum=j+1 ! 4 exit - else if(landwater(np) .eq. lwmask(i,j-1))then + else if(landwater(np) == lwmask(i,j-1))then idum=i jdum=j-1 ! 5 exit - else if(landwater(np) .eq. lwmask(i+1,j-1))then + else if(landwater(np) == lwmask(i+1,j-1))then idum=i+1 jdum=j-1 ! 6 exit - else if(landwater(np) .eq. lwmask(i+1,j+1))then + else if(landwater(np) == lwmask(i+1,j+1))then idum=i+1 jdum=j+1 ! 7 exit - else if(landwater(np) .eq. lwmask(i-1,j+1))then + else if(landwater(np) == lwmask(i-1,j+1))then idum=i-1 jdum=j+1 ! 8 exit - else if(landwater(np) .eq. lwmask(i-1,j-1))then + else if(landwater(np) == lwmask(i-1,j-1))then idum=i-1 jdum=j-1 ! 9 exit - else if(landwater(np) .eq. lwmask(i,j+2))then + else if(landwater(np) == lwmask(i,j+2))then idum=i jdum=j+2 ! 10 exit - else if(landwater(np) .eq. lwmask(i+2,j))then + else if(landwater(np) == lwmask(i+2,j))then idum=i+2 jdum=j !11 exit - else if(landwater(np) .eq. lwmask(i,j-2))then + else if(landwater(np) == lwmask(i,j-2))then idum=i jdum=j-2 ! 12 exit - else if(landwater(np) .eq. lwmask(i-2,j))then + else if(landwater(np) == lwmask(i-2,j))then idum=i-2 jdum=j !13 exit - else if(landwater(np) .eq. lwmask(i-2,j+1))then + else if(landwater(np) == lwmask(i-2,j+1))then idum=i-2 jdum=j+1 ! 14 exit - else if(landwater(np) .eq. lwmask(i-1,j+2))then + else if(landwater(np) == lwmask(i-1,j+2))then idum=i-1 jdum=j+2 !15 exit - else if(landwater(np) .eq. lwmask(i+1,j+2))then + else if(landwater(np) == lwmask(i+1,j+2))then idum=i+1 jdum=j+2 !16 exit - else if(landwater(np) .eq. lwmask(i+2,j+1))then + else if(landwater(np) == lwmask(i+2,j+1))then idum=i+2 jdum=j+1 !17 exit - else if(landwater(np) .eq. lwmask(i+2,j-1))then + else if(landwater(np) == lwmask(i+2,j-1))then idum=i+2 jdum=j-1 !18 exit - else if(landwater(np) .eq. lwmask(i+1,j-2))then + else if(landwater(np) == lwmask(i+1,j-2))then idum=i+1 jdum=j-2 !19 exit - else if(landwater(np) .eq. lwmask(i-1,j-2))then + else if(landwater(np) == lwmask(i-1,j-2))then idum=i-1 jdum=j-2 !20 exit - else if(landwater(np) .eq. lwmask(i-2,j-1))then + else if(landwater(np) == lwmask(i-2,j-1))then idum=i-2 jdum=j-1 !21 exit - else if(landwater(np) .eq. lwmask(i-2,j-2))then + else if(landwater(np) == lwmask(i-2,j-2))then idum=i-2 jdum=j-2 !22 exit - else if(landwater(np) .eq. lwmask(i+2,j-2))then + else if(landwater(np) == lwmask(i+2,j-2))then idum=i+2 jdum=j-2 !23 exit - else if(landwater(np) .eq. lwmask(i+2,j+2))then + else if(landwater(np) == lwmask(i+2,j+2))then idum=i+2 jdum=j+2 !24 exit - else if(landwater(np) .eq. lwmask(i-2,j+2))then + else if(landwater(np) == lwmask(i-2,j+2))then idum=i-2 jdum=j+2 !25 exit - else if(landwater(np) .eq. lwmask(i+3,j))then + else if(landwater(np) == lwmask(i+3,j))then idum=i+3 jdum=j !26 exit - else if(landwater(np) .eq. lwmask(i-3,j))then + else if(landwater(np) == lwmask(i-3,j))then idum=i-3 jdum=j !27 exit - else if(landwater(np) .eq. lwmask(i,j+3))then + else if(landwater(np) == lwmask(i,j+3))then idum=i jdum=j+3 !28 exit - else if(landwater(np) .eq. lwmask(i,j-3))then + else if(landwater(np) == lwmask(i,j-3))then idum=i jdum=j-3 !29 exit @@ -941,25 +986,21 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, idum=max0(min0(idum,im),1) jdum=max0(min0(jdum,jm),1) - + endif !! read in i,j ends here + if (fhour==0.0) then + if(debugprint) then + write(nij,98) np,idum,jdum,rlat(np),rlon(np) + 98 FORMAT (3I6, 2F9.2) + if(elevstn(np)==-999.) elevstn(np)=hgt(idum,jdum) + write(9,99) np,rlat(np),rlon(np),elevstn(np),hgt(idum,jdum) + 99 FORMAT (I6, 4F9.2) if(np==1 .or.np==100)print*,'nearest neighbor for station ',np + ,idum,jdum,rlon(np),rlat(np),lwmask(i,j),landwater(np) + endif + endif - gridsi(np,1)=hgt(idum,jdum) - gridsi(np,2)=pint(idum,jdum,1) - ie=idum+1 - iw=idum-1 - jn=jdum-1 - js=jdum+1 - dx=(gdlon(ie,jdum)-gdlon(iw,jdum))*dtr*erad* - + cos(gdlat(idum,jdum)*dtr) - dy=(gdlat(idum,jn)-gdlat(idum,js))*erad*dtr - gradx(np)=(log(pint(ie,jdum,1)) - + -log(pint(iw,jdum,1)))/dx - grady(np)=(log(pint(idum,jn,1)) - + -log(pint(idum,js,1)))/dy - if(np==1.or.np==100)print*,'gradx,grady= ', - + gradx(np),grady(np) + grids(np,1)=hgt(idum,jdum) + grids(np,2)=pint(idum,jdum,1) sfc(5,np)=dum2d(idum,jdum,1) sfc(6,np)=dum2d(idum,jdum,6) @@ -980,18 +1021,16 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, if(sfc(11,np) .gt. sfc(12,np)) sfc(11,np)=sfc(12,np) do k=1,levs - gridsi(np,k+2)=t3d(idum,jdum,k) - gridsi(np,k+2+levs)=q3d(idum,jdum,k) - gridsi(np,k+2+2*levs)=omega3d(idum,jdum,k) - gridui(np,k)=uh(idum,jdum,k) - gridvi(np,k)=vh(idum,jdum,k) - p1(np,k)=0.5*(pint(idum,jdum,k)+pint(idum,jdum,k+1)) - z1(np,k)=0.5*(zint(idum,jdum,k)+zint(idum,jdum,k+1)) + grids(np,k+2)=t3d(idum,jdum,k) + grids(np,k+2+levs)=q3d(idum,jdum,k) + grids(np,k+2+2*levs)=omega3d(idum,jdum,k) + gridu(np,k)=uh(idum,jdum,k) + gridv(np,k)=vh(idum,jdum,k) + p1(np,k)=pint(idum,jdum,k+1) + z1(np,k)=zint(idum,jdum,k+1) +!! p1(np,k)=0.5*(pint(idum,jdum,k)+pint(idum,jdum,k+1)) +!! z1(np,k)=0.5*(zint(idum,jdum,k)+zint(idum,jdum,k+1)) - griddiv(np,k)=(uh(ie,jdum,k)-uh(iw,jdum,k))/dx+ - + (vh(idum,jn,k)*cos(gdlat(idum,jn)*dtr)- - + vh(idum,js,k)*cos(gdlat(idum,js)*dtr))/dy/ - + cos(gdlat(idum,jdum)*dtr) end do end do @@ -999,88 +1038,21 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, do np = 1, npoint ! !ps in kPa - ps(np) = gridsi(np,2)/1000. !! surface pressure + ps(np) = grids(np,2)/1000. !! surface pressure enddo ! -! compute omega(Pa/s) and interface layer pressure (Pa) -! - do np=1,npoint - call modstuff(levs,idvc,idsl, - & nvcoord,vcoord,ps(np)*1000, - & gradx(np),grady(np),griddiv(np,1:levs), - & gridui(np,1:levs),gridvi(np,1:levs), - & pd1(np,1:levs),pd1(np,1:levs),omegai(np,1:levs)) - enddo -! -! put omega (pa/s) in the tracer to prepare for interpolation -! - if(recn_dzdt == -9999) then !!calculated omega - print*, 'using calculated omega ' - do k = 1, levs - do np = 1, npoint - gridsi(np,2+levs*2+k) = omegai(np,k) - enddo - enddo - else - print*, 'using model dzdt m/s' - if(debugprint) then - do k = 1, levs - print*,'sample gridsi(dzdt) at lev ',k,' = ', - + gridsi(10,2+levs*2+k) - enddo - endif - endif -! print *, ' omegai =' -! print 6102, (omegai(1,k),k=1,levs) - -! ----------------- -! levs=levso so the following section will not be -! excuted so comment out sigma sction for now -! sigheado=sighead ! ----------------- - print*, 'levs,levso= ', levs, levso - if(levs.ne.levso) then - nsil = 13 - rewind nsil - do np = 1, npoint - grids(np,1) = gridsi(np,1) - grids(np,2) = gridsi(np,2) - enddo - call vintg(npoint,npoint,levs,levso,2, - & p1,gridui,gridvi,gridsi(1,3),gridsi(1,3+levs), - & p2,gridu, gridv, grids (1,3),grids (1,3+levso)) - do k = 1, levso - do np = 1, npoint - omega(np,k) = grids(np,2+levso*2+k) - enddo - enddo - else - do k = 1, levs - do np = 1, npoint - p2(np,k) = p1(np,k) - gridu(np,k) = gridui(np,k) - gridv(np,k) = gridvi(np,k) - omega(np,k) = omegai(np,k) - enddo - enddo ! Put topo(1),surf press(2),vir temp(3:66),and specifi hum(67:130) in grids ! for each station - do k = 1, 2*levs+2 - do np = 1, npoint - grids(np,k) = gridsi(np,k) - enddo - enddo - endif !END OF IF STATMENT LEVS .NE. LEVSO - if(recn_dzdt == 0 ) then !!DZDT +!! if(recn_dzdt == 0 ) then !!DZDT do k = 1, levs do np = 1, npoint - omega(np,k) = gridsi(np,2+levs*2+k) + omega(np,k) = grids(np,2+levs*2+k) enddo enddo if(debugprint) + print*,'sample (omega) dzdt ', (omega(3,k),k=1,levs) - endif ! ! move surface pressure to the station surface from the model surface ! @@ -1090,159 +1062,196 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, ! use the model elevation ! ! print *, "elevstn = ", elevstn(np) - if(elevstn(np).eq.-999.) elevstn(np) = grids(np,1) - psn(np) = ps(np) * exp(-con_g*(elevstn(np)-grids(np,1)) / - & (con_rd * grids(np,3))) - call sigio_modpr(1,1,levso,nvcoord,idvc, + if(elevstn(np)==-999.) elevstn(np) = grids(np,1) + psn(np) = ps(np) + call sigio_modpr(1,1,levs,nvcoord,idvc, & idsl,vcoord,iret, - & ps=psn(np)*1000,pd=pd3(np,1:levso),pm=p3(np,1:levso)) + & ps=psn(np)*1000,pd=pd3(np,1:levs)) grids(np,2) = log(psn(np)) - if(np==1)print*,'station H,grud H,psn,ps,new pm', - & elevstn(np),grids(np,1),psn(np),ps(np),p3(np,1:levso) + if(np==11)print*,'station H,grud H,psn,ps,new pm', + & elevstn(np),grids(np,1),psn(np),ps(np) + if(np==11)print*,'pd3= ', pd3(np,1:levs) enddo ! -! move t to new levels conserving theta -! move q to new levels conserving RH -! - do k = 1, levso - do np = 1, npoint - pp = p2(np,k) - ppn = p3(np,k) - tt(np,k) = grids(np,k+2) - ttnew(np,k) = tt(np,k) * (ppn/pp)**(con_rocp) - if(np==1)print*,'k,pp,ppn,tt,ttnew= ',k,pp,ppn, - + tt(np,k),ttnew(np,k) - call svp(qsn,esn,ppn,ttnew(np,k)) - call svp(qs,es,pp,tt(np,k)) - qnew(np,k) = grids(np,k+levso+2) * qsn / qs - enddo - enddo +!! test removing height adjustments + print*, 'do not do height adjustments' ! -! move the new values into the old +! get sea-level pressure (Pa) and layer geopotential height ! - do np = 1, npoint - ps(np) = psn(np) - enddo - do k = 1, levso + do k = 1, levs do np = 1, npoint - grids(np,k+2) = ttnew(np,k) - grids(np,k+levso+2) = qnew(np,k) + ttnew(np,k) = grids(np,k+2) + qnew(np,k) = grids(np,k+levs+2) enddo enddo - print*,'finish adjusting to station terrain' -! -! get sea-level pressure (Pa) and layer geopotential height -! + do np=1,npoint - call gslp(levso,elevstn(np),ps(np)*1000, - & p3(np,1:levso),ttnew(np,1:levso),qnew(np,1:levso), - & pmsl(np),zp(np,1:levso),zp2(1:2)) +!! call gslp(levs,elevstn(np),ps(np)*1000, + call gslp(levs,grids(np,1),ps(np)*1000, + & p1(np,1:levs),ttnew(np,1:levs),qnew(np,1:levs), + & pmsl(np),zp(np,1:levs),zp2(1:2)) enddo + print *, 'call gslp pmsl= ', (pmsl(np),np=1,20) if(recn_delz == -9999) then print*, 'using calculated height ' else print*, 'using model height m' - do k = 1, levso + do k = 1, levs do np=1, npoint zp(np,k) = z1(np,k) enddo enddo endif print*,'finish computing MSLP' - print*,'finish computing zp ', (zp(3,k),k=1,levso) - print*,'finish computing zp2(1-2) ', zp2(1),zp2(2) + print*,'finish computing zp ', (zp(11,k),k=1,levs) + print*,'finish computing zp2(11-12) ', zp2(11),zp2(12) ! ! prepare buffer data ! + if(iope == 0) then do np = 1, npoint pi3(np,1)=psn(np)*1000 - do k=1,levso + do k=1,levs pi3(np,k+1)=pi3(np,k)-pd3(np,k) !layer pressure (Pa) enddo - data(1) = ifix(fhour+.2) * 3600 ! FORECAST TIME (SEC) - data(2) = istat(np) ! STATION NUMBER - data(3) = rlat(np) ! LATITUDE (DEG N) - data(4) = rlon(np) ! LONGITUDE (DEG E) -! data(5) = grids(np,1) ! STATION ELEVATION (M) - data(5) = elevstn(np) ! STATION ELEVATION (M) +!! ==ivalence (cstat1,rstat1) + cstat1=cstat(np) +!! data(1) = ifix(fhour+.2) * 3600 ! FORECAST TIME (SEC) +!! data(2) = istat(np) ! STATION NUMBER +!! data(3) = rstat1 ! STATION CHARACTER ID +!! data(4) = rlat(np) ! LATITUDE (DEG N) +!! data(5) = rlon(np) ! LONGITUDE (DEG E) +!! data(6) = elevstn(np) ! STATION ELEVATION (M) + data2(1) = ifix(fhour+.2) * 3600 ! FORECAST TIME (SEC) + data2(2) = istat(np) ! STATION NUMBER + data2(3) = rstat1 ! STATION CHARACTER ID + data2(4) = rlat(np) ! LATITUDE (DEG N) + data2(5) = rlon(np) ! LONGITUDE (DEG E) + data2(6) = elevstn(np) ! STATION ELEVATION (M) psfc = 10. * psn(np) ! convert to MB leveta = 1 - do k = 1, levso + do k = 1, levs + kk= k/2 + 1 ! ! look for the layer above 500 mb for precip type computation ! if(pi3(np,k).ge.50000.) leveta = k ppi = pi3(np,k) t = grids(np,k+2) - q = max(1.e-8,grids(np,2+k+levso)) + q = max(1.e-8,grids(np,2+k+levs)) u = gridu(np,k) v = gridv(np,k) -! data((k-1)*6+6) = pi3(np,k) ! PRESSURE (PA) at interface layer - data((k-1)*6+6) = p3(np,k) ! PRESSURE (PA) at integer layer - data((k-1)*6+7) = t ! TEMPERATURE (K) - data((k-1)*6+8) = u ! U WIND (M/S) - data((k-1)*6+9) = v ! V WIND (M/S) - data((k-1)*6+10) = q ! HUMIDITY (KG/KG) - data((k-1)*6+11) = omega(np,k) ! Omega (pa/sec) !changed to dzdt(cm/s) if available +!! data((k-1)*6+7) = p1(np,k) ! PRESSURE (PA) at integer layer +!! data((k-1)*6+8) = t ! TEMPERATURE (K) +!! data((k-1)*6+9) = u ! U WIND (M/S) +!! data((k-1)*6+10) = v ! V WIND (M/S) +!! data((k-1)*6+11) = q ! HUMIDITY (KG/KG) +!! data((k-1)*6+12) = omega(np,k)*100. ! Omega (pa/sec) !changed to dzdt(cm/s) if available + if (mod(k,2)>0) then + data2((kk-1)*6+7) = p1(np,k) + data2((kk-1)*6+8) = t + data2((kk-1)*6+9) = u + data2((kk-1)*6+10) = v + data2((kk-1)*6+11) = q + data2((kk-1)*6+12) = omega(np,k)*100. + endif +!changed to dzdt(cm/s) if available enddo ! ! process surface flux file fields ! - data(7+nflx) = psfc * 100. ! SURFACE PRESSURE (PA) - data(6+nflx) = pmsl(np) +!! data(8+nflx) = psfc * 100. ! SURFACE PRESSURE (PA) +!! data(7+nflx) = pmsl(np) + data2(8+nflx2) = psfc * 100. ! SURFACE PRESSURE (PA) + data2(7+nflx2) = pmsl(np) !! dtemp = .0065 * (grids(np,1) - elevstn(np)) - dtemp = .0100 * (grids(np,1) - elevstn(np)) - sfc(37,np) = data(6+nflx) * .01 +!! dtemp = .0100 * (grids(np,1) - elevstn(np)) +!! sfc(37,np) = data(6+nflx) * .01 +!! sfc(37,np) = data(7+nflx) * .01 +!! sfc(39,np) = zp2(2) !500 hPa height + sfc(37,np) = data2(7+nflx2) * .01 sfc(39,np) = zp2(2) !500 hPa height ! ! do height correction if there is no snow or if the temp is less than 0 +! G.P.LOU: +! It was decided that no corrctions were needed due to higher model +! resolution. ! - if(sfc(10,np).eq.0.) then - sfc(30,np) = sfc(30,np) + dtemp - sfc(5,np) = sfc(5,np) + dtemp - endif - if(sfc(10,np).gt.0..and.sfc(5,np).lt.273.16) then - sfc(5,np) = sfc(5,np) + dtemp - if(sfc(5,np).gt.273.16) then - dtemp = sfc(5,np) - 273.16 - sfc(5,np) = 273.16 - endif - sfc(30,np) = sfc(30,np) + dtemp - endif - data(8+nflx) = sfc(5,np) ! tsfc (K) - data(9+nflx) = sfc(6,np) ! 10cm soil temp (K) - data(10+nflx) = sfc(17,np) ! evaporation (w/m**2) - data(11+nflx) = sfc(12,np) ! total precip (m) - data(12+nflx) = sfc(11,np) ! convective precip (m) - data(13+nflx) = sfc(10,np) ! water equi. snow (m) - data(14+nflx) = sfc(27,np) ! low cloud (%) - data(15+nflx) = sfc(26,np) ! mid cloud - data(16+nflx) = sfc(25,np) ! high cloud - data(17+nflx) = sfc(34,np) ! U10 (m/s) - data(18+nflx) = sfc(35,np) ! V10 (m/s) - data(19+nflx) = sfc(30,np) ! T2 (K) - data(20+nflx) = sfc(31,np) ! Q2 (K) +! if(sfc(10,np)==0.) then +! sfc(30,np) = sfc(30,np) + dtemp +! sfc(5,np) = sfc(5,np) + dtemp +! endif +! if(sfc(10,np).gt.0..and.sfc(5,np).lt.273.16) then +! sfc(5,np) = sfc(5,np) + dtemp +! if(sfc(5,np).gt.273.16) then +! dtemp = sfc(5,np) - 273.16 +! sfc(5,np) = 273.16 +! endif +! sfc(30,np) = sfc(30,np) + dtemp +! endif +! +!G.P. Lou 20200501: +!convert instantaneous surface latent heat net flux to surface +!evapolation 1 W m-2 = 0.0864 MJ m-2 day-1 +! and 1 mm day-1 = 2.45 MJ m-2 day-1 +! equivament to 0.0864/2.54 = 0.035265 +! equivament to 2.54/0.0864 = 28.3565 + if(debugprint) + + print*,'evaporation (stn 000692)= ',sfc(17,np) +!! data(9+nflx) = sfc(5,np) ! tsfc (K) +!! data(10+nflx) = sfc(6,np) ! 10cm soil temp (K) +!!! data(11+nflx) = sfc(17,np)/28.3565 ! evaporation (kg/m**2) from (W m-2) +!! data(11+nflx) = sfc(17,np)*0.035265 ! evaporation (kg/m**2) from (W m-2) +!! data(12+nflx) = sfc(12,np) ! total precip (m) +!! data(13+nflx) = sfc(11,np) ! convective precip (m) +!! data(14+nflx) = sfc(10,np) ! water equi. snow (m) +!! data(15+nflx) = sfc(27,np) ! low cloud (%) +!! data(16+nflx) = sfc(26,np) ! mid cloud +!! data(17+nflx) = sfc(25,np) ! high cloud +!! data(18+nflx) = sfc(34,np) ! U10 (m/s) +!! data(19+nflx) = sfc(35,np) ! V10 (m/s) +!! data(20+nflx) = sfc(30,np) ! T2 (K) +!! data(21+nflx) = sfc(31,np) ! Q2 (K) - data(21+nflx) = 0. - data(22+nflx) = 0. - data(23+nflx) = 0. - data(24+nflx) = 0. - iwx = 0 +!! data(22+nflx) = 0. +!! data(23+nflx) = 0. +!! data(24+nflx) = 0. +!! data(25+nflx) = 0. +!! create 64 level bufr files + data2(9+nflx2) = sfc(5,np) ! tsfc (K) + data2(10+nflx2) = sfc(6,np) ! 10cm soil temp (K) +!! data2(11+nflx2) = sfc(17,np)/28.3565 ! evaporation (kg/m**2) from (W m-2) + data2(11+nflx2) = sfc(17,np)*0.035265 ! evaporation (kg/m**2) from (W m-2) + data2(12+nflx2) = sfc(12,np) ! total precip (m) + data2(13+nflx2) = sfc(11,np) ! convective precip (m) + data2(14+nflx2) = sfc(10,np) ! water equi. snow (m) + data2(15+nflx2) = sfc(27,np) ! low cloud (%) + data2(16+nflx2) = sfc(26,np) ! mid cloud + data2(17+nflx2) = sfc(25,np) ! high cloud + data2(18+nflx2) = sfc(34,np) ! U10 (m/s) + data2(19+nflx2) = sfc(35,np) ! V10 (m/s) + data2(20+nflx2) = sfc(30,np) ! T2 (K) + data2(21+nflx2) = sfc(31,np) ! Q2 (K) + + data2(22+nflx2) = 0. + data2(23+nflx2) = 0. + data2(24+nflx2) = 0. + data2(25+nflx2) = 0. nd = 0 trace = .false. DOMS=0. DOMR=0. DOMIP=0. DOMZR=0. - if(np.eq.1.or.np.eq.2) nd = 1 - if(np.eq.1.or.np.eq.2) trace = .true. + if(np==1.or.np==2) nd = 1 + if(np==1.or.np==2) trace = .true. if(sfc(12,np).gt.0.) then !check for precip then calc precip type do k = 1, leveta+1 - pp = p3(np,k) + pp = p1(np,k) ppi = pi3(np,k) t = grids(np,k+2) - q = max(0.,grids(np,2+k+levso)) + q = max(0.,grids(np,2+k+levs)) u = gridu(np,k) v = gridv(np,k) if(q.gt.1.e-6.and.pp.ge.20000.) then @@ -1265,7 +1274,8 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, xlon=rlon(np) lm=leveta lp1=leveta+1 - PREC=data(11+nflx) +!! PREC=data(12+nflx) + PREC=data2(12+nflx2) n3dfercld=1 !if =3 then use Ferriers Explicit Precip Type TSKIN=1. !used in Ferriers Explicit Precip Scheme SR=1. !used in Ferriers Explicit Precip Scheme @@ -1276,42 +1286,36 @@ subroutine meteorg(npoint,rlat,rlon,istat,elevstn, & gt0,gq0,prsl,prsi,PREC,phii,n3dfercld,TSKIN,SR,phy_f3d, !input & DOMR,DOMZR,DOMIP,DOMS) ! Output vars endif - data(nflx + 21) = DOMS - data(nflx + 22) = DOMIP - data(nflx + 23) = DOMZR - data(nflx + 24) = DOMR - if(np.eq.1.or.np.eq.100) then +!! data(nflx + 22) = DOMS +!! data(nflx + 23) = DOMIP +!! data(nflx + 24) = DOMZR +!! data(nflx + 25) = DOMR + data2(nflx2 + 22) = DOMS + data2(nflx2 + 23) = DOMIP + data2(nflx2 + 24) = DOMZR + data2(nflx2 + 25) = DOMR + if(np==1.or.np==100) then print *, ' surface fields for hour', nf, 'np =', np - print *, (data(l+nflx),l=1,24) + print *, (data2(l+nflx2),l=1,25) print *, ' temperature sounding' - print 6101, (data((k-1)*6+7),k=1,levso) + print 6101, (data2((k-1)*6+8),k=1,levso) print *, ' omega sounding' - print *, (data((k-1)*6+11),k=1,levso) - print *, ' divergence sounding' - print *, (griddiv(np,k),k=1,levs) + print *, (data2((k-1)*6+12),k=1,levso) endif C print *, 'in meteorg nfile1= ', nfile1 - write(nfile) data +!! write(nfile) data + write(nfile) data2 enddo !End loop over stations np + endif + call date_and_time(date,time,zone,clocking) +! print *,'13reading write data end= ', clocking + print *,'13date, time, zone',date, time, zone print *, 'in meteorg nf,nfile,nfhour= ', nf,nfile,nfhour print *, 'Finished writing bufr data file' 6101 format(2x,6f12.3) 6102 format(2x,6f12.5) 6103 format(2x,6f12.5) ! -! write out surface binary file for grads -! -! time=0. -! nlev=1 -! nflag=1 -! write(gstid,'(i8)') istat(np) -!write(125,'(i4,x,i2,x,i2,x,i2,3x,a8,3x,f5.2,x,f7.2,x,4f5.2)') -! &jdat(1),jdat(2),jdat(3),jdat(5),gstid,rlat(np),rlon(np), -! &DOMR,DOMS,DOMIP,DOMZR - -! call sigio_axdata(sigdata,iret) -! call sigio_sclose(nsig,iret) -! call nemsio_close(gfile,iret=iret) close(unit=nfile) return 910 print *, ' error reading surface flux file' diff --git a/sorc/gfs_bufr.fd/read_nemsio.f b/sorc/gfs_bufr.fd/read_nemsio.f new file mode 100644 index 0000000000..d1262e7974 --- /dev/null +++ b/sorc/gfs_bufr.fd/read_nemsio.f @@ -0,0 +1,55 @@ + subroutine read_nemsio(gfile,im,jm,levs, + & VarName,LayName,Varout,iret) +!! This subroutine reads either 2d or 3d nemsio data +!! 12/12/2019 Guang Ping Lou + + use nemsio_module + implicit none + include 'mpif.h' + type(nemsio_gfile) :: gfile + character(len=20) :: VarName,LayName + integer,intent(in) :: im,jm,levs + real,intent(out) :: Varout(im,jm,levs) + real,dimension(im*jm) :: dum1d + integer :: iret,i,j,k,jj + + print*,'read_nemsio,im,jm,levs' + print*, im,jm,levs + print*,'VarName=',trim(VarName) + print*,'LayName=',trim(LayName) + if(levs > 1) then + do k =1, levs + call nemsio_readrecvw34(gfile,trim(VarName), + & trim(LayName),k,data=dum1d,iret=iret) + !print*,"VarName,k= ",trim(VarName), k + if (iret /= 0) then + print*,trim(VarName)," not found" + else + do j=1,jm + jj= (j-1)*im + do i=1,im + Varout(i,j,k) = dum1d(jj+i) + end do + end do + end if + enddo + + else + call nemsio_readrecvw34(gfile,trim(VarName), + & trim(LayName),1,data=dum1d,iret=iret) + !print*,"VarName= ",trim(VarName) + if (iret /= 0) then + print*,trim(VarName)," not found" + else + do j=1,jm + jj= (j-1)*im + do i=1,im + Varout(i,j,1) = dum1d(jj+i) + end do + end do + endif + + end if + + end subroutine read_nemsio + diff --git a/sorc/gfs_bufr.fd/read_netcdf.f b/sorc/gfs_bufr.fd/read_netcdf.f new file mode 100644 index 0000000000..a024323b31 --- /dev/null +++ b/sorc/gfs_bufr.fd/read_netcdf.f @@ -0,0 +1,55 @@ + subroutine read_netcdf(ncid,im,jm,levs, + & VarName,Varout,Zreverse,iret) +!! This subroutine reads either 2d or 3d NetCDF data +!! 12/12/2019 Guang Ping Lou + + use netcdf + implicit none + include 'mpif.h' + character(len=20),intent(in) :: VarName + character(len=3),intent(in) :: Zreverse + integer,intent(in) :: ncid,im,jm,levs + real,intent(out) :: Varout(im,jm,levs) + real :: dummy3d(im,jm,levs) + integer :: iret,i,j,k,id_var,kk + + if(levs > 1) then + iret = nf90_inq_varid(ncid,trim(VarName),id_var) + !print*,stat,varname,id_var + iret = nf90_get_var(ncid,id_var,dummy3d) + if (iret /= 0) then + print*,VarName," not found" + else +!For FV3GFS NetCDF output, vertical layers need to be reversed + if(Zreverse == "yes" ) then + do k = 1, levs + kk=levs-k+1 + do j=1, jm + do i=1, im + Varout(i,j,k) = dummy3d(i,j,kk) + enddo + enddo + enddo + else + do k = 1, levs + do j=1, jm + do i=1, im + Varout(i,j,k) = dummy3d(i,j,k) + enddo + enddo + enddo + endif + endif + + else + iret = nf90_inq_varid(ncid,trim(VarName),id_var) + !print*,stat,varname,id_var + iret = nf90_get_var(ncid,id_var,Varout(:,:,1)) + if (iret /= 0) then + print*,VarName," not found" + endif + + end if + + end subroutine read_netcdf + diff --git a/sorc/gfs_bufr.fd/read_netcdf_p.f b/sorc/gfs_bufr.fd/read_netcdf_p.f new file mode 100644 index 0000000000..4bfa8507be --- /dev/null +++ b/sorc/gfs_bufr.fd/read_netcdf_p.f @@ -0,0 +1,113 @@ + subroutine read_netcdf_p(ncid,im,jm,levs, + & VarName,Varout,Zreverse,iope,ionproc, + & iocomms,iret) +!! This subroutine reads either 2d or 3d NetCDF data in parallel +!! 02/08/2020 Guang Ping Lou + + use netcdf + use mpi + implicit none +!! include 'mpif.h' + character(len=20),intent(in) :: VarName + character(len=3),intent(in) :: Zreverse + integer,intent(in) :: ncid,im,jm,levs + real,intent(out) :: Varout(im,jm,levs) + real :: dummy3d(im,jm,levs) + integer :: iret,i,j,k,id_var,kk + integer :: iope,ionproc,iocomms + integer :: chunksize,ionproc1 + real, allocatable :: dummy(:,:,:) + integer start(3), count(3) + integer nskip + integer, allocatable :: starts(:) + integer, allocatable :: counts(:) + integer, allocatable :: chunksizes(:) + integer, allocatable :: rdispls(:) + integer, allocatable :: ii(:) + + if(levs > 1) then + nskip = int(levs/ionproc) + 1 + k=ionproc*nskip + if(k > levs) then + kk=(k-levs)/nskip + ionproc1=ionproc - kk + else + ionproc1=ionproc + endif + iret = nf90_inq_varid(ncid,trim(VarName),id_var) + allocate(starts(ionproc1), counts(ionproc1),ii(ionproc1)) + allocate(chunksizes(ionproc1)) + allocate(rdispls(ionproc1)) + print*,'ionproc,ionproc1,nskip= ',ionproc,ionproc1, nskip + print*,'trim(VarName)in read= ',trim(VarName) + starts(1) = 1 + ii(1) = 1 + do i = 2, ionproc1 + starts(i) = 1 + (i-1)*nskip + ii(i)= ii(i-1) + 1 + end do + do i=1, ionproc1 - 1 + counts(i) = starts(i+1) - starts(i) + end do + counts(ionproc1) = levs - starts(ionproc1)+1 + print*,'starts= ',starts + print*, 'counts= ', counts + k=ii(iope+1) + start = (/1,1,starts(k)/) + count = (/im,jm,counts(k)/) + chunksizes(:) = im * jm * counts(:) + rdispls(:) = im * jm * (starts(:)-1) + print*, 'iope,k,start,count= ',iope,k,start(3),count(3) + print*, 'chunksizes= ', chunksizes + print*, 'rdispls= ', rdispls + allocate (dummy(im,jm,count(3))) + iret=nf90_get_var(ncid,id_var,dummy, + & start=start,count=count) + if (iret /= 0) then + print*,VarName," not found" + endif + print*,'start(3),st(3):cnt(3)-1=',start(3),(start(3)+count(3)-1) + print*,'dummy(im/2,jm/2,:)= ', dummy(im/2,jm/2,:) + call mpi_allgatherv(dummy,chunksizes(k),mpi_real,dummy3d, + & chunksizes, rdispls, mpi_real, iocomms, iret) + print*,'VarName= ', VarName + print*,'dummy3d(im/2,jm/2,:)= ', dummy3d(im/2,jm/2,:) +!! call mpi_alltoallv(dummy, chunksizes, sdispls, mpi_real, dummy3d, +!! & chunksizes, rdispls, mpi_real, iocomms, iret) + +! enddo +!For FV3GFS NetCDF output, vertical layers need to be reversed + if(Zreverse == "yes" ) then + do k = 1, levs + kk=levs-k+1 + do j=1, jm + do i=1, im + Varout(i,j,k) = dummy3d(i,j,kk) + enddo + enddo + enddo + else + do k = 1, levs + do j=1, jm + do i=1, im + Varout(i,j,k) = dummy3d(i,j,k) + enddo + enddo + enddo + endif + deallocate(starts, counts,ii) + deallocate(chunksizes) + deallocate(rdispls) + deallocate (dummy) + + else + iret = nf90_inq_varid(ncid,trim(VarName),id_var) + print*,'trim(VarName)in read= ',trim(VarName) + iret = nf90_get_var(ncid,id_var,Varout(:,:,1)) + if (iret /= 0) then + print*,VarName," not found" + endif + + end if + end subroutine read_netcdf_p + diff --git a/sorc/global_chgres.fd/.gitignore b/sorc/global_chgres.fd/.gitignore deleted file mode 100644 index 013de5d463..0000000000 --- a/sorc/global_chgres.fd/.gitignore +++ /dev/null @@ -1 +0,0 @@ -global_chgres diff --git a/sorc/global_chgres.fd/Makefile b/sorc/global_chgres.fd/Makefile deleted file mode 100755 index e2687eff04..0000000000 --- a/sorc/global_chgres.fd/Makefile +++ /dev/null @@ -1,62 +0,0 @@ -SHELL =/bin/ksh -INCMOD =$(INCS) -LIBS =$(LIBSM) - -SRCM =chgres.f -SRCS = - -OBJS =num_parthds.o \ - nstio_module.o \ - nsst_chgres.o \ - funcphys.o \ - physcons.o \ - machine_8.o \ - surface_chgres.o \ - sfcsub.o \ - chgres_utils.o \ - nrlmsise00_sub.o \ - read_write.o \ - chgres.o - -FC =$(FCMP) -FC90 =$(FCMP95) -LDR =$(FCMP) - -FFLAGS =$(FFLAGSM) -OMPFLAG=$(OMPFLAGM) -LDFLAGS =$(LDFLAGSM) - -CMD =global_chgres -$(CMD): $(OBJS) - $(LDR) $(LDFLAGS) $(OBJS) $(LIBS) -o $(CMD) - -read_write.o: nstio_module.o surface_chgres.o read_write.f90 - $(FC90) $(FFLAGS) $(INCMOD) $(OMPFLAG) -c read_write.f90 -num_parthds.o: num_parthds.f90 - $(FC90) $(FFLAGS) $(OMPFLAG) -c num_parthds.f90 -nstio_module.o : nstio_module.f90 - $(FC90) $(FFLAGS) $(RECURS) -c nstio_module.f90 -nsst_chgres.o : nsst_chgres.f90 - $(FC90) $(FFLAGS) $(RECURS) -c nsst_chgres.f90 -chgres_utils.o: physcons.o funcphys.o chgres_utils.f90 - $(FC90) $(FFLAGS) $(RECURS) $(INCMOD) -c chgres_utils.f90 -nrlmsise00_sub.o: nrlmsise00_sub.f90 - $(FC90) $(FFLAGS) $(RECURS) -c nrlmsise00_sub.f90 -funcphys.o: funcphys.f90 physcons.o machine_8.o - $(FC90) $(FFLAGS) $(RECURS) -c funcphys.f90 -physcons.o: physcons.f90 machine_8.o - $(FC90) $(FFLAGS) $(RECURS) -c physcons.f90 -machine_8.o: machine_8.f90 - $(FC90) $(FFLAGS) $(RECURS) -c machine_8.f90 -sfcsub.o: machine_8.o sfcsub.F - $(FC) $(FFLAGS) $(OMPFLAG) -c sfcsub.F -surface_chgres.o: sfcsub.o machine_8.o surface_chgres.f90 - $(FC90) $(FFLAGS) $(INCMOD) $(RECURS) -c surface_chgres.f90 -chgres.o: surface_chgres.o funcphys.o chgres.f90 - $(FC90) $(FFLAGS) $(OMPFLAG) $(INCMOD) -c chgres.f90 -clean: - -rm -f $(OBJS) *.mod -install: - -cp $(CMD) ../../exec/. -clobber: clean - -rm -f $(CMD) diff --git a/sorc/global_chgres.fd/USERS_GUIDE b/sorc/global_chgres.fd/USERS_GUIDE deleted file mode 100755 index 5ec2542a68..0000000000 --- a/sorc/global_chgres.fd/USERS_GUIDE +++ /dev/null @@ -1,141 +0,0 @@ - HOW TO CONVERT A SURFACE RESTART FILE - -1.0 INTRODUCTION - -NEAREST NEIGHBOR INTERPOLATION IS PERFORMED SO THAT LAND/NONLAND -POINTS ON THE INPUT GRID ARE MAPPED TO LAND/NONLAND POINTS -ON THE TARGET GRID. IF THE INPUT FILE CONTAINS LANDICE -AND THE OUTPUT GRID IS TO HAVE LANDICE, THEN NONLAND IS -MAPPED TO NONLAND, LANDICE IS MAPPED TO LANDICE, ICE FREE -LAND IS MAPPED TO ICE FREE LAND. OPTIONALLY, THE CLIMO FIELDS -SUCH AS ALBEDO, ROUGHNESS, ETC, MAY DETERMINED ON THE OUTPUT -GRID FROM SFCCYCLE (WHICH IS CALLED FROM THE SURFACE -CHGRES MODULE). THE LATTER IS RECOMMENDED WHEN CONVERTING -FROM A LOW TO HIGH RESOLUTION GRID. A NEW LAND-SEA MASK IS -OPTIONALLY READ IN. IF IT IS MISSING, THE NEW LAND-SEA MASK IS -INTERPOLATED FROM THE OLD MASK. SKIN AND SOIL TEMPERATURE OVER -LAND ARE ADJUSTED FOR DIFFERENCES BETWEEN THE INPUT AND OUTPUT -OROGRAPHY. LIQ SOIL MOISTURE IS CALCULATED ACCORDING TO THE -ADJUSTED TEMP. OUTPUT OROGRAPHY MAY BE READ IN FROM FILE OR INTERPOLATED -FROM INPUT OROGRAPHY. NOTE: OLDER VERSIONS OF THE SURFACE -RESTART FILE (BEFORE IVS 200501) DO NOT HAVE OROGRAPHY RECORDS. -IN CASES WHERE THE INPUT SURFACE FILE IS PRE 200501, -THE PROGRAM WILL GET THE OROGRAPHY FROM THE SIGMA FILE. -THEREFORE, YOU MUST SET THE OPTIONS TO CONVERT A SIGMA FILE -AS WELL AS A SURFACE FILE. WHEN CHANGING A PRE 200501 FILE, -THE PROGRAM WILL INTERPOLATE ONLY THOSE LAND FIELDS NEEDED -TO RUN THE OLD OSU LAND MODEL AND OLD SEA ICE PHYSICS. -WHEN CHANGING A 200501 FILE, THE PROGRAM WILL INTERPOLATE/CALC -THOSE ADDITIONAL FIELDS NEEDED BY THE NOAH LSM (MAX SNOW ALB, -LIQ. SOIL MOIST, SNOW DEPTH, PRECIP, PRECIP TYPE, SLOPE TYPE, -MAX/MIN GREENNESS) AND THE NEW SEA ICE MODEL (ICE DEPTH AND -FRACTION). WHEN CHANGING A PRE 200501 FILE TO A 200501 FILE, -THE PROGRAM WILL AUTOMATICALLY INITIALIZE THE ABOVE -MENTIONED FIELDS USING EITHER GUESS VALUES OR VALUES -CALCULATED FROM SFCCYCLE. THE PROGRAM WILL ALSO CONVERT FROM TWO -TO FOUR SOIL LAYERS AND VICE VERSA. THE PROGRAM WILL RUN -ON THE FULL OR REDUCED GRID DEPENDING ON THE LONSPERLAT -RECORD OF THE INPUT FILE OR WHETHER THE USER SPECIFIES -AN EXTERNAL LONSPERLAT FILE. THE PROGRAM WILL INITIALIZE -ALL LAND STATES FOR THE LANDICE PHYSICS IF DESIRED. THE PROGRAM -WILL SCALE TOTAL SOIL MOISTURE FOR ANY DIFFERENCES IN SOIL -TYPE BETWEEN THE INPUT AND OUTPUT GRIDS. CONTACT G. GAYNO -WITH QUESTIONS. - -2.0 HOW TO RUN CHGRES - -THE PROGRAM IS CONTROLLED BY SETTING SEVERAL ENVIRONMENT VARIABLES -IN THE DRIVER SCRIPT. - -LSOIL - NUMBER OF SOIL LAYERS ON OUTPUT GRID. WHEN NOT SET, THE - DEFAULT IS SAME AS INPUT GRID. OTHERWISE, MAY BE SET TO - 2 OR 4 LAYERS. - -IVSSFC - THE VERSION NUMBER OF THE SURFACE RESTART FILE - -LANDICE_OPT - THE LANDICE PHYSICS OPTIONS: - 1-NO LANDICE ON INPUT GRID -> INITIALIZE LANDICE ON OUTPUT GRID - 2-LANDICE ON INPUT GRID -> LANDICE ON OUTPUT GRID - 3-NO LANDICE ON INPUT GRID -> NO LANDICE ON OUTPUT GRID - 4-LANDICE ON INPUT GRID -> REMOVE LANDICE FROM OUTPUT GRID - 5-INITIALIZE LANDICE OUTPUT GRID REGARDLESS OF WHETHER - INPUT GRID HAS LANDICE OR NOT. - -CLIMO_FIELDS_OPT - OPTION FOR DETERMINING CLIMATOLOGICAL FIELDS ON - OUTPUT GRID. - 1-INTERPOLATE ALL FROM INPUT GRID - 2-INTERPOLATE VEG, SOIL, SLOPE TYPE - FROM INPUT GRID. OTHERS FROM - SFCCYCLE PROGRAM. - 3-ALL FROM SFCCYCLE PROGRAM. - -#-------------------------------------------------------------------- -# Example #1: convert a t382 file with 4 soil layers and noah lsm -# physics and NO landice, to a 254 file with 2 soil layers and -# osu lsm physics (and no landice). -#-------------------------------------------------------------------- - -export CLIMO_FIELDS_OPT=3 -export LANDICE_OPT=3 -export IVSSFC=200004 -export LSOIL=2 - -./global_chgres.sh NULL \ - ./t382.sfc.input.file \ - NULL \ - ./t254.sfc.output.file \ - 254 0 768 384 - -#-------------------------------------------------------------------- -# Example #2: convert a t382 file with 4 soil layers and noah lsm -# physics AND landice fields, to a 254 file with 2 soil layers and -# osu lsm physics (and no landice). -#-------------------------------------------------------------------- - -export CLIMO_FIELDS_OPT=3 -export LANDICE_OPT=4 -export IVSSFC=200004 -export LSOIL=2 - -./global_chgres.sh NULL \ - ./t382.sfc.input.file \ - NULL \ - ./t254.sfc.output.file \ - 254 0 768 384 - -#-------------------------------------------------------------------- -# Example #3: convert a t254 file with 2 soil layers and osu lsm -# physics, to a t382 file with 4 soil layers and noah lsm physics and -# NO landice initialization. -# note: the old style surface files do not have terrain, so you -# must get this field from a sigma file. -#-------------------------------------------------------------------- - -export CLIMO_FIELDS_OPT=3 -export LANDICE_OPT=3 -export IVSSFC=200501 -export LSOIL=4 - -./global_chgres.sh ./t254.sig.input.file \ - ./t254.sfc.input.file \ - ./t382.sig.output.file \ - ./t382.sfc.output.file 382 0 1152 576 - -#-------------------------------------------------------------------- -# Example #4: convert a t254 file with 2 soil layers and osu lsm -# physics, to a t382 file with 4 soil layers and noah lsm physics -# and landice initialization. -# note: the old style surface files do not have terrain, so you -# must get this field from a sigma file. -#-------------------------------------------------------------------- - -export CLIMO_FIELDS_OPT=3 -export LANDICE_OPT=1 -export IVSSFC=200501 -export LSOIL=4 - -./global_chgres.sh ./t254.sig.input.file \ - ./t254.sfc.input.file \ - ./t382.sig.output.file \ - ./t382.sfc.output.file 382 0 1152 576 - diff --git a/sorc/global_chgres.fd/chgres.f90 b/sorc/global_chgres.fd/chgres.f90 deleted file mode 100755 index 7fb72c6d8f..0000000000 --- a/sorc/global_chgres.fd/chgres.f90 +++ /dev/null @@ -1,1525 +0,0 @@ -!----------------------------------------------------------------------- - PROGRAM CHGRES -!C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -! -! MAIN PROGRAM: GLOBAL_CHGRES -! PRGMMR: IREDELL ORG: NP23 DATE: 1999-09-10 -! -! ABSTRACT: THIS PROGRAM INTERPOLATES THE SIGMA, SURFACE AND NSST RESTART -! FILES FROM THE GLOBAL SPECTRAL MODEL TO THE FV3 CUBED SPHERE GRID. -! -! THE PROCEDURE FOR CHANGING THE SIGMA FILE RESOLUTION IS THUS: -! WHEN THE SIGMA FILE IS SIGIO FORMAT (SPECTRAL COEFFICIENTS) -! THE DATA IS FIRST CONVERTED FROM SPECTRAL TO GRID POINT -! SPACE (A GLOBAL GAUSSIAN OR REGULAR LAT/LON GRID). THE DIMENSIONS -! OF THAT GLOBAL GRID ARE USER-SELECTABLE. BY DEFAULT, THE -! DIMENSIONS ARE DETERMINED FROM THE JCAP VALUE OF THE INPUT -! DATA. NO CONVERSION IS REQUIRED WHEN THE WHEN THE SIGMA FILE -! IS IN NEMSIO FORMAT AS THE DATA ARE ALREADY IN GRID POINT SPACE. -! IF THE USER SELECTS A NEW NUMBER OF VERTICAL LEVELS OR A -! DIFFERENT TYPE OF LEVEL (I.E., HYBRID OR SIGMA), THEN A VERTICAL -! INTERPOLATION IS PERFOMRED. THE DATA ARE THEN INTERPOLATED -! FROM THE GLOBAL GRID TO THE SIX TILES OF THE FV3 CUBED SPHERE -! GRID. -! -! THE SURFACE FILE CONVERSION IS DONE FOR A SINGLE FV3 TILE ONLY. -! SO FOR A GLOBAL SIX TILE FV3 GRID, THIS PROGRAM MUST BE CALLED -! SIX TIMES. THE PROCEDURE FOR INTERPOLATING SURFACE DATA IS: -! NEAREST NEIGHBOR INTERPOLATION IS PERFORMED SO THAT LAND/NONLAND -! POINTS ON THE INPUT GRID ARE MAPPED TO LAND/NONLAND POINTS -! ON THE TARGET GRID. IF THE INPUT FILE CONTAINS LANDICE -! AND THE OUTPUT GRID IS TO HAVE LANDICE, THEN NONLAND IS -! MAPPED TO NONLAND, LANDICE IS MAPPED TO LANDICE, ICE FREE -! LAND IS MAPPED TO ICE FREE LAND. OPTIONALLY, THE CLIMO FIELDS -! SUCH AS ALBEDO, ROUGHNESS, ETC, MAY DETERMINED ON THE OUTPUT -! GRID FROM SFCCYCLE (WHICH IS CALLED FROM THE SURFACE -! CHGRES MODULE). THE LATTER IS RECOMMENDED WHEN CONVERTING -! FROM A LOW TO HIGH RESOLUTION GRID. THE LAND-SEA MASK ON THE -! TARGET FV3 TILE IS READ FROM FILE. SKIN AND SOIL TEMPERATURE OVER -! LAND ARE ADJUSTED FOR DIFFERENCES BETWEEN THE INPUT AND OUTPUT -! OROGRAPHY. LIQ SOIL MOISTURE IS CALCULATED ACCORDING TO THE -! ADJUSTED TEMP. OROGRAPHY ON THE TARGET FV3 TILE IS READ FROM -! THE SAME FILE AS THE FV3 LAND-SEA MASK. THE PROGRAM WILL ALSO -! CONVERT FROM TWO TO FOUR SOIL LAYERS AND VICE VERSA. IT WILL -! WILL INITIALIZE ALL LAND STATES FOR THE LANDICE PHYSICS IF -! DESIRED. THE PROGRAM WILL SCALE TOTAL SOIL MOISTURE FOR ANY -! DIFFERENCES IN SOIL TYPE BETWEEN THE INPUT AND OUTPUT GRIDS. -! -! THE PROCEDURE FOR CONVERTING AN NSST FILE IS THUS: -! NEAREST NEIGHBOR INTERPOLATION IS USED TO MAP TO THE OUTPUT -! GRID AS SOME NSST FIELDS ARE NOT CONTINUOUS. NSST FIELDS -! ARE ONLY REQUIRED AT OPEN WATER POINTS. FOR CONSISTENCY, -! THESE OPEN WATER POINTS ARE DETERMINED BY THE FV3 LAND-SEA -! MASK OUTPUT FROM THE SURFACE FILE CONVERSION STEP (WHICH -! INCLUDES SEA ICE). THEREFORE, WHEN CONVERTING AN NSST FILE, -! A SURFACE RESTART FILE MUST ALSO BE CONVERTED. AS FOR THE -! SURFACE, THE NSST CONVERSION IS DONE FOR A SINGLE FV3 TILE -! ONLY. -! -! PROGRAM HISTORY LOG: -! 98-04-03 IREDELL -! 2007 Juang, Moorthi, Gayno, F Yang, Doris Pan -! 2008 Moorthi S -! 2011-08-05 Gayno G : Added capability to work with nsst files -! 2011 J. Wang : change header for sigio to nemsio file -! 2013 Sarah Lu : revise NEWSIG (copied from global_chgres.fd) -! 2014 Moorthi S : merged trunk version with ngac version (nemsio) -! 2015 Moorthi S : added option to use binary orography -! 2015 Iredell M : added option to write nemsio on reduced grid -! 2015 Fanglin Y : added the logical rdgrid -! 2015-10-06 Moorthi S : added option to read past ics from Tom Hamill for GEFS -! 2015-12-06 Moorthi S : added option to read nemsio file without p, dp, vel (nopdpvv) -! 2016-04-22 Moorthi S : merge with Jim Ables's modifications adding latitudinal -! decomposition to enable changing resolution from a nemsio -! file to a nemsio file. Upgrade the code to work for -! vertical resolution change and fix some additional bugs. -! added nopdpvv option not to output p, dp and vvel -! 2016-04-27 Moorthi S : fixed a bug for nopdpvv=.false. -! 2016-06-01 Gayno G : option to process nsst files in nemsio format -! 2017-01-27 Gayno/GFDL : extensive modifications to interpolate gfs data -! to fv3 cubed sphere grid. -! 2017-04-12 Gayno : Write nsst records to the surface netcdf restart -! file. Previously, the nsst records were written -! -! NAMELISTS: -! NAMCHG: -! LEVS INTEGER NEW NUMBER OF ATMOSPHERIC LEVELS (DEFAULT: NO CHANGE -! FROM INPUT GFS DATA) -! NTRAC INTEGER NEW NUMBER OF TRACERS (DEFAULT: NO CHANGE FROM INPUT -! GFS DATA) -! LONB INTEGER NUMBER OF LONGITUDES - GFS GAUSSIAN INPUT GRID. ONLY -! USED WHEN INPUT GFS DATA IS SFCIO FORMAT. (DEFAULT: FROM -! INPUT GFS SFCIO DATA HEADER) -! LATB INTEGER NUMBER OF LATITUDES - GFS GAUSSIAN INPUT GRID. ONLY -! USED WHEN INPUT GFS DATA IS SFCIO FORMAT. (DEFAULT: FROM -! INPUT GFS SFCIO DATA HEADER) -! IDVC INTEGER NEW VERTICAL COORDINATE ID -! (1 FOR SIGMA, 2 FOR HYBRID, 3 GENERAL HYBRID) (DEFAULT: SAME AS -! INPUT GFS DATA) -! IDVM INTEGER NEW VERTICAL MASS VARIABLE ID -! (1 FOR LN(PS) AND 2 FOR PS (KPA)) (DEFAULT: SAME AS INPUT GFS -! DATA). -! IDSL INTEGER NEW TYPE OF SIGMA STRUCTURE -! (1 FOR PHILLIPS OR 2 FOR MEAN) (DEFAULT: SAME AS INPUT GFS DATA) -! MQUICK INTEGER FLAG TO SKIP VERTICAL INTERPOLATION. USEFUL WHEN THE -! NUMBER AND TYPE OF VERTICAL LEVELS IS NOT CHANGING. ONLY -! ACTIVE WHEN INPUT GFS DATA IS NEMSIO FORMAT. (DEFAULT: 0 - -! DONT SKIP. TO SKIP, SET TO 1) -! IDVT INTEGER NEW TRACER VARIABLE ID (DEFAULT: SAME AS INPUT GFS DATA) -! LATCH INTEGER NUMBER OF GAUSSIAN LATITUDES TO PROCESS AT ONE TIME -! (DEFAULT: 8) -! LSOIL INTEGER NEW NUMBER OF SOIL LAYERS (DEFAULT: NO CHANGE FROM INPUT -! GFS DATA). -! IVSSFC INTEGER NEW VERSION NUMBER SFC FILE (DEFAULT: NO CHANGE FROM INPUT -! GFS DATA). -! NVCOORD INTEGER NEW NUMBER OF VERTICAL COORDINATES -! (DEFAULT: NO CHANGE FROM INPUT GFS DATA) -! IDRT SPECTRAL TO INTERMEDIATE GRID OPTION. WHEN INPUT GFS SIGMA FILE IS -! SIGIO FORMAT (SPECTRAL COEFFICIENTS), CHGRES FIRST CONVERTS TO A -! TO A GLOBAL GRID. THAT GLOBAL GRID IS IN TURN INTERPOLATED TO THE -! FV3 GRID TILES. THE IDRT OPTION CONTROLS WHAT GLOBAL GRID IS -! CHOSEN. DEFAULT IS '4' - GLOBAL GAUSSIAN GRID. CAN ALSO CHOOSE -! '0' - GLOBAL REGULAR LAT/LON GRID. -! OUTTYP INTEGER NUMBER OF OUTPUT FILE TYPE. NOT USED YET. CURRENTLY, -! THE FV3 SIGMA AND SURFACE/NSST FILES ARE NETCDF FORMAT ONLY. -! CHGQ0 SET NEGATIVE VALUES OF TRACERS TO ZERO: 0 FALSE; 1 TRUE. -! REGIONAL FLAG FOR PROCESSING STAND-ALONE NEST. WHEN '1', REMOVE HALO -! FROM GRIDS AND CREATE AN ATMOSPHERIC BOUNDARY FILE. WHEN '2', -! CREATE BOUNDARY FILE ONLY. WHEN '0', PROCESS NORMALLY AS -! FOR A GLOBAL GRID. DEFAULT IS '0'. -! HALO WHEN RUNNING A STAND-ALONE NEST, THIS SPECIFIES THE NUMBER OF -! ROWS/COLS FOR THE HALO. -! -! INPUT FILES: -! UNIT 11 chgres.inp.sig GFS SIGMA FILE (IN EITHER SIGIO OR NEMSIO FORMAT) -! UNIT 13 chgres.inp.siglevel NEW VERTICAL STRUCTURE -! UNIT 21 chgres.inp.sfc GFS SURFACE FILE (SFCIO OR NEMSIO FORMAT) -! UNIT 17 chgres.inp.lpl3 WHEN GFS SIGMA FILE IS SIGIO (SPECTRAL), CHGRES -! FIRST CONVERTS TO A GLOBAL GAUSSIAN OR LAT/LON -! GRID. THIS GRID CAN BE REDUCED (# GRID POINTS -! DECREASES TOWARDS THE POLE). THIS FILE DEFINES -! THE REDUCED GRID. -! UNIT 31 chgres.inp.nst NSST FILE FOR INPUT GRID (NSTIO OR NEMSIO FORMAT) -! UNIT ?? chgres.fv3.orog.t[1-6] FV3 OROGRAPHY AND LAND MASK. ONE FILE FOR EACH -! SIX GLOBAL TILES (NETCDF FORMAT) -! UNIT ?? chgres.fv3.grd.t[1-6] FV3 GRID SPECS FILE. ONE FILE FOR EACH SIX -! GLOBAL TILES (NETCDF FORMAT) -! OUTPUT FILES: -! UNIT ?? gfs_ctrl.nc FV3 ATMOSPHERIC HEADER FILE (NETCDF FORMAT) -! UNIT ?? out.sfc.tile[1-6].nc FV3 SURFACE/NSST DATA FILE (NETCDF FORMAT) ONE -! FILE FOR EACH SIX GLOBAL TILES. -! UNIT ?? gfs_data.tile[1-6].nc FVN ATMOSPHERIC FILE (NETCDF FORMAT). ONE FILE -! FOR EACH SIX GLOBAL TILES. -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN 90 -! -! REMARKS: -! VALID VALUES OF IDVT -! ALL UNITS ARE SPECIFIC IN KG/KG -! IDVT NTRAC -! 0 2 VAPOR,OZONE,CLOUD (DEFAULT OPERATIONAL) -! 1 1 VAPOR,OZONE -! 2 1 VAPOR,CLOUD -! 21 2 VAPOR,OZONE,CLOUD -! 12 2 VAPOR,CLOUD,OZONE -! 100 20 SET 1: VAPOR,OZONE,CLOUD, AND INITIAL VALUES OF -! CLAT*CLON,CLAT*SLON,SLAT, -! V*SLON-U*SLAT*CLON,-V*CLON-U*SLAT*SLON,U*CLAT -! ONE,K,SIGMA,PS,PRES,TEMP,ENTROPY,MOIST ENTROPY -! VAPOR,OZONE,CLOUD -! 200 5 IDEA tracer set with O and O2 in addition q, O3, clw -! -! NUMBER OF TRACERS FOR NEMSIO FILE: -!-- data holder q(:,:,ntraco_q) -!-- ntraco_q=NTRAC_MET+NTRACO_AER -!-- nemsio data header recname/reclevtyp/reclev, NTRAC=NTRAC_MET+NTRAC_AER -!-- NTRAC_MET: meteorology tracerss, could be: spfh,ozn,cld -!-- NTRAC_AER: aerosol tracer -!-- -!C$$$ - USE SIGIO_MODULE - USE NEMSIO_MODULE - USE NEMSIO_GFS - USE SFCIO_MODULE - USE FUNCPHYS - USE SURFACE_CHGRES - - IMPLICIT NONE - INTEGER:: LEVS=0,NTRAC=0,LONB=0,LATB=0, & - IDVC=0,IDVM=0,IDSL=0,MQUICK=0,IDVT=0, & - LATCH=8,LSOIL=0,IVSSFC=0,NVCOORD=0, & - IDRT=4,OUTTYP=999,IALB=0,CHGQ0=0,ISOT=0,IVEGSRC=0, & - NTILES=6,TILE_NUM=1,REGIONAL=0,HALO=0 -! - REAL, PARAMETER :: PIFAC=180/ACOS(-1.0) -! - REAL RI(0:20),CPI(0:20) - - LOGICAL USE_UFO, NST_ANL, RDGRID, NOPDPVV - - NAMELIST/NAMCHG/ LEVS,NTRAC,LONB,LATB, & - IDVC,IDVM,IDSL,MQUICK,IDVT,LATCH, & - LSOIL,IVSSFC,NVCOORD,OUTTYP,IDRT,RI,CPI, & - IALB,CHGQ0,USE_UFO,NST_ANL,RDGRID, & - NOPDPVV,ISOT,IVEGSRC,NTILES,TILE_NUM, & - REGIONAL, HALO -! - INTEGER NSIGI,NSIL,NSIGO, & - IRET,IOSSIL,IRET0,IRET1, & - NCI,IMI,JMI,IMO,JMO,IJX,NTRACM, & - J1,J2,JL,IJL,J,JN,JS,N, & - NTRACO, IJMO, LATCH2, K, LATG2, & - NSFCI,NSFCO,INPTYP, & - SFCPRESS_ID_I, THERMODYN_ID_I, & - SFCPRESS_ID_O, THERMODYN_ID_O, & - NREC, LEVSI, LEVSO, I, L - - INTEGER :: IMO_WITH_HALO, JMO_WITH_HALO - INTEGER :: NSST_YEAR, NSST_MON - INTEGER :: NSST_DAY, NSST_HOUR - INTEGER, DIMENSION(200) :: KGDS_INPUT, KGDS_OUTPUT - REAL, ALLOCATABLE :: MASK_OUTPUT(:), RLATS_OUTPUT(:), & - RLONS_OUTPUT(:), NSST_INPUT(:,:,:), & - MASK_INPUT(:,:), NSST_OUTPUT(:,:) - INTEGER, PARAMETER :: NUM_NSST_FIELDS=18 - TYPE(SFC2D) :: SFCINPUT - TYPE(SFC1D) :: SFCOUTPUT - LOGICAL, PARAMETER :: MERGE=.FALSE. - LOGICAL :: DO_NSST - REAL,ALLOCATABLE :: SLAT(:),WLAT(:),CLAT(:),RLAT(:) - REAL,ALLOCATABLE :: OROGO(:,:), OROGO_UF(:,:) - REAL,ALLOCATABLE :: ZSI(:,:), PSI(:,:), PI(:,:,:), & - TI(:,:,:), UI(:,:,:),VI(:,:,:), & - QI(:,:,:,:), WI(:,:,:), TIV(:,:,:), & - XCP(:,:,:),VIRT(:,:,:),SUMQ(:,:,:) - REAL,ALLOCATABLE :: ZSO(:,:), PSO(:,:), PO(:,:,:), & - TO(:,:,:), UO(:,:,:),VO(:,:,:), & - QO(:,:,:,:), WO(:,:,:), TPO(:,:), & - DTDPO(:,:,:),DPO(:,:,:) - REAL,ALLOCATABLE :: F10MI(:,:),T2MI(:,:),Q2MI(:,:) - REAL,ALLOCATABLE :: UUSTARI(:,:),FFMMI(:,:),FFHHI(:,:) - REAL,ALLOCATABLE :: TPRCPI(:,:),SRFLAGI(:,:) - REAL,ALLOCATABLE :: F10MO(:,:),T2MO(:,:),Q2MO(:,:) - REAL,ALLOCATABLE :: UUSTARO(:,:),FFMMO(:,:),FFHHO(:,:) - REAL,ALLOCATABLE :: TPRCPO(:,:),SRFLAGO(:,:) - TYPE(SIGIO_HEAD) :: SIGHEADI,SIGHEADO - TYPE(SIGIO_DBTA) :: SIGDATAI - TYPE(SFCIO_HEAD) :: SFCHEADI - REAL,ALLOCATABLE :: SLMSKO(:,:) - REAL,ALLOCATABLE :: GEOLAT(:,:), GEOLON(:,:), TMPVAR(:,:) - REAL,ALLOCATABLE :: TMPLAT(:,:), TMPLON(:,:) - REAL :: FCSTHOUR, NSST_FHOUR - INTEGER :: IOLPL3,NLPL3 - INTEGER,ALLOCATABLE :: LPL3(:) - REAL, ALLOCATABLE :: AK(:), BK(:), CK(:), VCOORD(:,:), & - VCOORDI(:,:), VCOORDO(:,:) - -! Define variables for NEMSIO - TYPE(NEMSIO_GFILE) :: GFILEI,GFILEISFC - TYPE(NEMSIO_HEAD) :: GFSHEADI - TYPE(NEMSIO_HEADV) :: GFSHEADVI - TYPE(NEMSIO_DBTA) :: GFSDATAI - TYPE(NEMSIO_DBTA) :: GFSDATAO - CHARACTER(8) :: FILETYPE - CHARACTER(LEN=16) :: FILETYPE2 -! -! Define local vars: - INTEGER LONBO,LATBO,IDVCO,IDVMO,IDSLO,IDVTO, & - NVCOORDO,IDATE4O(4),LSOILO,IVSO, & - I_OZN,I_CLD, LSOILI, IVSI - CHARACTER(16),allocatable :: TRAC_NAME(:) - REAL(4) FHOURO - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! EXECUTION BEGINS -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RI = 0.0 - CPI = 0.0 - USE_UFO = .FALSE. - NST_ANL = .FALSE. - RDGRID = .FALSE. - NOPDPVV = .FALSE. - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! READ NAMELIST -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CALL W3TAGB('GLOBAL_CHGRES',1999,0253,0056,'NP23') - CALL GFUNCPHYS - READ(*,NAMCHG) - WRITE(6,NAMCHG) - - LATCH2 = LATCH + LATCH - - IF (REGIONAL == 1) THEN - PRINT*,"WILL CREATE GRIDS WITHOUT HALO." - PRINT*,"WILL CREATE ATMOSPHERIC BOUNDARY FILE." - ELSEIF (REGIONAL == 2) THEN - PRINT*,"WILL CREATE ATMOSPHERIC BOUNDARY FILE ONLY." - ELSE - HALO = 0 - ENDIF - - IF (REGIONAL > 0) THEN - IF (HALO == 0) THEN - PRINT *,'FATAL ERROR: MUST SPECIFIY NON-ZERO HALO.' - CALL ERREXIT(51) - ELSE - PRINT*,"USER SPECIFIED HALO IS: ", HALO, " ROWS/COLS." - ENDIF - ENDIF - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! OPEN INPUT ATMOSPHERIC FILE. DETERMINE FILE TYPE. -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NSIGI = 11 - NSIL = 13 - NLPL3 = 17 - NSIGO = 51 - INPTYP = 0 - - CALL NEMSIO_INIT(IRET) - - OPEN (NSIGI, FILE='chgres.inp.sig', ACCESS='DIRECT', RECL=16, IOSTAT=IRET) - READ (NSIGI, REC=1, IOSTAT=IRET1) FILETYPE2 - CLOSE (NSIGI) - - IF(IRET == 0 .AND. IRET1 == 0) THEN - IRET = INDEX(FILETYPE2, "NEMSIO") - IF (IRET /= 0) THEN - INPTYP = 1 - PRINT*,'INPUT ATMOS FILE chgres.inp.sig IS NEMSIO FORMAT' - ELSE - CALL SIGIO_SROPEN(NSIGI,'chgres.inp.sig',IRET) - CALL SIGIO_SRHEAD(NSIGI,SIGHEADI,IRET1) - IF(IRET == 0 .AND. IRET1 == 0) THEN - INPTYP = 2 - PRINT*,'INPUT ATMOS FILE chgres.inp.sig IS SIGIO FORMAT' - ENDIF - ENDIF - ENDIF - - IF(INPTYP /= 0) THEN - OPEN(NSIL,FILE='chgres.inp.siglevel', & - FORM='FORMATTED',STATUS='OLD',IOSTAT=IRET) - IF(IRET /= 0) NSIL = 0 - ELSE - PRINT*,'--- FAILED TO OPEN ATMOS FILE chgres.inp.sig ---' - PRINT*,'--- PROCEED TO CHANGE SFC FILE chgres.inp.sfc ---' - NSIGO = 0 - ENDIF - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! CHANGE RESOLUTION OF INPUT ATMOS SIGIO FILE. -! OUTPUT ATMOS FILE ON FV3 CUBED-SPHERE GRID WILL BE NETCDF FORMAT. -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IF(INPTYP == 2) THEN - - PRINT*, 'CHGRES INPUT: GFS SPECTRAL SIGIO SIGMA FILE ' - PRINT*, 'CHGRES OUTPUT: FV3 NETCDF FILE' - - IF (CPI(0) == 0.0) THEN - IF (MOD(SIGHEADI%IDVM/10,10) == 3) THEN - DO N=1,SIGHEADI%NTRAC+1 - CPI(N-1) = SIGHEADI%CPI(N) - RI(N-1) = SIGHEADI%RI(N) - ENDDO - ENDIF - ENDIF - - LEVSI = SIGHEADI%LEVS - LEVSO = LEVSI - IF(LEVS > 0) LEVSO = LEVS - LONBO = SIGHEADI%LONB - LATBO = SIGHEADI%LATB - IF(LONB > 0 .AND. LATB > 0) THEN - LONBO = LONB - LATBO = LATB - ENDIF - NTRACO = SIGHEADI%NTRAC - IF(NTRAC > 0) NTRACO = NTRAC - IF (IDVT == 200) THEN - NTRACO = MAX(SIGHEADI%NTRAC+2, NTRACO) - IF (NTRAC > 0 .AND. NTRACO > NTRAC) THEN - PRINT *,'FATAL ERROR: Incompatible values specified for NTRAC & IDVT' - CALL ERREXIT(13) - ENDIF - ENDIF - - ALLOCATE(TRAC_NAME(NTRACO)) - - CALL GET_TRACERS(IDVT, NTRACO, I_CLD, I_OZN, TRAC_NAME) - - IDVCO = SIGHEADI%IDVC - IDVMO = SIGHEADI%IDVM - IDSLO = SIGHEADI%IDSL - IDVTO = SIGHEADI%IDVT - NVCOORDO = SIGHEADI%NVCOORD - - IF (NVCOORDO >= 3 ) THEN - IF (SIGHEADI%VCOORD(1,NVCOORDO) < 0.0) THEN - SIGHEADI%VCOORD(:,NVCOORDO) = 0.0 - SIGHEADI%NVCOORD = 2 - ENDIF - ENDIF - - IF(IDVC > 0) IDVCO = IDVC - IF(IDVM >= 0) IDVMO = IDVM - IF(IDSL >= 0) IDSLO = IDSL - IF(IDVT > 0) IDVTO = IDVT - IF(IDVC == 1) NVCOORDO = 1 - IF(NVCOORD > 0) NVCOORDO = NVCOORD - - FHOURO = SIGHEADI%FHOUR - IDATE4O(1:4) = SIGHEADI%IDATE(1:4) - - IF(MQUICK == 1) THEN - PRINT*,'' - PRINT*,' MQUICK OPTION NOT AVAILABLE WHEN INPUT DATA IS' - PRINT*,' SPECTRAL GFS AND OUTPUT IS FV3 CUBE GRID.' - PRINT*,' IGNORING MQUICK SETTING.' - ENDIF - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! GET NEW SIGMA LEVELS -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IF(NSIL /= 0) THEN - ALLOCATE(VCOORDO(LEVSO+1,NVCOORDO)) - CALL NEWSIG(NSIL,IDVCO,LEVSO,NVCOORDO,VCOORDO,IOSSIL) - IF(IOSSIL == 0) THEN - PRINT*,"NEW MODEL LEVELS READ IN" - ENDIF - ELSEIF(IDVCO == SIGHEADI%IDVC .AND. & - LEVSO == SIGHEADI%LEVS .AND. & - NVCOORDO == SIGHEADI%NVCOORD) THEN - ALLOCATE(VCOORDO(LEVSO+1,NVCOORDO)) - VCOORDO = SIGHEADI%VCOORD - IOSSIL = 0 - PRINT*,"NEW MODEL LEVELS COPIED FROM OLD" - ELSE - IOSSIL = 42 - ENDIF - IF(IOSSIL /= 0) THEN - PRINT*,'' - PRINT*,"FATAL ERROR DEFINING SIGMA VALUES." - PRINT*,"IOSSIL IS: ",IOSSIL - CALL ERREXIT(8) - ENDIF - - PRINT*,'' - PRINT*,"INPUT SIGMA FILE SPECS:" - PRINT*," WAVES: ",SIGHEADI%JCAP - PRINT*," LEVELS: ",SIGHEADI%LEVS - PRINT*," NTRAC: ",SIGHEADI%NTRAC - PRINT*," IVS: ",SIGHEADI%IVS - PRINT*," IDVC: ",SIGHEADI%IDVC - PRINT*," NVCOORD: ",SIGHEADI%NVCOORD - PRINT*," IDVM: ",SIGHEADI%IDVM - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! READ IN 2D LONSPERLAT -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ALLOCATE(LPL3(LATBO)) - LPL3 = LONBO ! full grid as default - LATG2 = 0 - IF(RDGRID) THEN - PRINT*,'' - PRINT*,"READ LPL FROM UNIT ",NLPL3 - OPEN(NLPL3,FILE='chgres.inp.lpl3', & - FORM='FORMATTED',STATUS='OLD',IOSTAT=IOLPL3) - IF(IOLPL3 == 0) THEN - READ(NLPL3,*,IOSTAT=IOLPL3) LATG2,LPL3(1:MIN(LATG2,(LATBO+1)/2)) - PRINT *,'LPL3 READ: EXPECTED ',(LATBO+1)/2,', READ ',LATG2 - IF(IOLPL3 == 0 .AND. LATG2 == (LATBO+1)/2) THEN - DO J=1,LATBO/2 - LPL3(LATBO+1-J) = LPL3(J) - ENDDO - PRINT*,"LPL3 READ IN" - ENDIF - ELSE - PRINT*,"WARNING: BAD READ OF LONSPERLAT FILE. USE FULL GRID." - ENDIF - ENDIF - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! READ OLD SIGMA FILE -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CALL SIGIO_ALDBTA(SIGHEADI,SIGDATAI,IRET) - IF(IRET /= 0) THEN - PRINT*,'FATAL ERROR ALLOCATING SIGDATAI. IRET: ',IRET - CALL ERREXIT(4) - ENDIF - CALL SIGIO_SRDBTA(NSIGI,SIGHEADI,SIGDATAI,IRET) - IF(IRET /= 0) THEN - PRINT *,'FATAL ERROR READING FILE NSIGI=',NSIGI - CALL ERREXIT(94) - ENDIF - - NCI = SIZE(SIGDATAI%T,1) - IJX = LONBO*LATCH2 - NTRACM = MIN(SIGHEADI%NTRAC,NTRACO) - IF (IDVT == 200) NTRACO = MIN(SIGHEADI%NTRAC,NTRACO) + 2 - - CALL NEMSIO_GFS_ALGRD(LONBO,LATBO,LEVSO,NTRACO,GFSDATAO,NOPDPVV) - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! USE TRANSFORMS TO CHANGE RESOLUTION -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PRINT*,'' - IF (IDRT == 4) THEN - PRINT*,"TRANSFORM TO A GAUSSIAN GRID OF:" - ELSEIF (IDRT == 0) THEN - PRINT*,"TRANSFORM TO A LAT/ON GRID OF:" - ENDIF - PRINT*," I/J DIMS: ",LONBO,LATBO - PRINT*," LEVELS: ",LEVSO - PRINT*," NTRAC: ",NTRACO - PRINT*," IDVC: ",IDVCO - PRINT*," NVCOORD: ",NVCOORDO - PRINT*," IDVM: ",IDVMO - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! ALLOCATE TEMPORARY SIGIO DATA -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ALLOCATE(SLAT(LATBO), WLAT(LATBO), CLAT(LATBO), RLAT(LATBO)) - ALLOCATE(ZSI(LONBO,LATCH2), PSI(LONBO,LATCH2)) - ALLOCATE(PI(LONBO,LATCH2,LEVSI)) - ALLOCATE(TI(LONBO,LATCH2,LEVSI)) - ALLOCATE(UI(LONBO,LATCH2,LEVSI)) - ALLOCATE(VI(LONBO,LATCH2,LEVSI)) - ALLOCATE(QI(LONBO,LATCH2,LEVSI,NTRACM)) - IF (THERMODYN_ID_I == 3) THEN - ALLOCATE(SUMQ(LONBO,LATCH2,LEVSI)) - ALLOCATE(XCP (LONBO,LATCH2,LEVSI)) - ELSE - ALLOCATE(VIRT(LONBO,LATCH2,LEVSI)) - ENDIF - ALLOCATE(WI(LONBO,LATCH2,LEVSI)) - ALLOCATE(ZSO(LONBO,LATCH2), PSO(LONBO,LATCH2)) - ALLOCATE(PO(LONBO,LATCH2,LEVSO)) - ALLOCATE(TO(LONBO,LATCH2,LEVSO)) - ALLOCATE(UO(LONBO,LATCH2,LEVSO)) - ALLOCATE(VO(LONBO,LATCH2,LEVSO)) - ALLOCATE(WO(LONBO,LATCH2,LEVSO)) - ALLOCATE(QO(LONBO,LATCH2,LEVSO,NTRACO)) - ALLOCATE(TPO(LONBO,LEVSO)) - ALLOCATE(DPO(LONBO,LATCH2,LEVSO)) - ALLOCATE(DTDPO(LONBO,LATCH2,LEVSO)) - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! GET NEW LATITUDES -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CALL SPLAT(IDRT,LATBO,SLAT,WLAT) -!$omp parallel do private(j) - DO J=1,LATBO - CLAT(J) = SQRT(1-SLAT(J)*SLAT(J)) - RLAT(J) = PIFAC * ASIN(SLAT(J)) - ENDDO - DEALLOCATE(SLAT, CLAT, WLAT) -! -! ------------------------------------------------------------------ -! GET PS and T DATA TYPE FOR THE FILE - - SFCPRESS_ID_I = MOD(SIGHEADI%IDVM,10) - THERMODYN_ID_I = MOD(SIGHEADI%IDVM/10,10) - SFCPRESS_ID_O = MOD(IDVMO,10) - THERMODYN_ID_O = MOD(IDVMO/10,10) - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! LOOP OVER LATITUDE -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LATLOOP1 : DO J1=1,(LATBO+1)/2,LATCH - - J2 = MIN(J1+LATCH-1,(LATBO+1)/2) - JL = 2*(J2-J1+1) - IJL = LONBO*JL - CALL TRSSC(SIGHEADI%JCAP,NCI,SIGHEADI%LEVS,NTRACM, & - SIGHEADI%IDVM,IDRT,LONBO,LATBO,IJX,J1,J2,1, & - LPL3(J1:J2), & - SIGDATAI%HS,SIGDATAI%PS,SIGDATAI%T, & - SIGDATAI%D,SIGDATAI%Z,SIGDATAI%Q, & - ZSI,PSI,TI,UI,VI,QI) - - IF (THERMODYN_ID_I == 3) THEN - XCP(:,1:JL,:) = 0.0 - SUMQ(:,1:JL,:) = 0.0 - DO N=1,NTRACM - IF( CPI(N) .NE. 0.0 .AND. RI(N) .NE. 0.0) THEN - XCP(:,1:JL,:) = XCP(:,1:JL,:) + CPI(N)*QI(:,1:JL,:,N) - SUMQ(:,1:JL,:) = SUMQ(:,1:JL,:) + QI(:,1:JL,:,N) - ENDIF - ENDDO - XCP(:,1:JL,:) = (1.-SUMQ(:,1:JL,:))*CPI(0)+XCP(:,1:JL,:) - ELSE - VIRT(:,1:JL,:) = (1.+(461.50/287.05-1)*QI(:,1:JL,:,1)) - ENDIF - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! CONVERT TO SURFACE PRESSURE AND TEMPERATURE -! - SELECT CASE(SFCPRESS_ID_I) - CASE(0,1) - PSI(:,1:JL) = 1.E3*EXP(PSI(:,1:JL)) - CASE(2) - PSI(:,1:JL) = 1.E3*PSI(:,1:JL) - CASE DEFAULT - PRINT *,' DEFAULT SELECTED: PSI IS P IN PASCAL ' - END SELECT - - DO I=1,LONBO ! not using external gaussian terrain - ZSO(I,1:JL) = ZSI(I,1:JL) - ENDDO - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! COMPUTE NEW PRESSURE AND NEW SURFACE PRESSURE AND OMEGA -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IF (THERMODYN_ID_I == 3) THEN - TI(:,1:JL,:) = TI(:,1:JL,:)/CPI(0) ! enthalpy (CpT/Cpd) - ENDIF - - ALLOCATE(VCOORD(SIGHEADI%LEVS+1,SIGHEADI%NVCOORD)) - VCOORD = SIGHEADI%VCOORD - - CALL GETOMEGA(SIGHEADI%JCAP,NCI,SIGHEADI%LEVS, & - SIGHEADI%IDVC,SIGHEADI%IDVM,IDRT, & - SIGHEADI%IDSL,SIGHEADI%NVCOORD,VCOORD, & - LONBO,LATBO,IJL,IJX,J1,J2,1,SIGDATAI%D, & - SIGDATAI%PS,PSI,TI,UI,VI,WI) - - CALL SIGIO_MODPRD(IJL,IJX,SIGHEADI%LEVS,SIGHEADI%NVCOORD, & - SIGHEADI%IDVC,SIGHEADI%IDSL,VCOORD,IRET, & - PS=PSI,T=TI,PM=PI) - - DEALLOCATE (VCOORD) -! - SELECT CASE( THERMODYN_ID_I ) - CASE(0,1) - TI(:,1:JL,:) = TI(:,1:JL,:)/VIRT(:,1:JL,:) ! to t - CASE(2) - CASE(3) - TI(:,1:JL,:) = TI(:,1:JL,:)/XCP(:,1:JL,:)*CPI(0) ! to t - CASE DEFAULT - END SELECT - - PSO = PSI -! -! VERTICALLY INTERPOLATE UPPER-AIR FIELDS - HENRY JUANG'S APPROACH -! - CALL NEWPR1(IJL,IJX,LEVSO,SIGHEADI%LEVS,IDVCO,IDVMO,IDSLO, & - NVCOORDO, VCOORDO,RI, CPI, NTRACM, & - PI,TI,QI,PSO,PO,DPO) - - CALL VINTG(IJL,IJX,SIGHEADI%LEVS,LEVSO,NTRACM, & - PI,UI,VI,TI,QI,WI,PO,UO,VO,TO,QO,DTDPO,WO) - -! idea add init condition for temp tracer4-5 ( o o2) - IF (IDVT == 200) then - CALL VINTG_IDEA(LONBO,LATCH,LEVSO,NTRACO,PO,RLAT, & - LATBO,J1,J2,SIGHEADI%IDATE,UO,VO,TO,QO) - ENDIF -! - IF( IDVCO == 3 ) THEN - ALLOCATE(AK(LEVSO+1), BK(LEVSO+1), CK(LEVSO+1)) - DO K=1,LEVSO+1 - AK(K) = VCOORDO(K,1) - BK(K) = VCOORDO(K,2) - CK(K) = VCOORDO(K,3) - ENDDO - CALL CHECKDP(IJL,IJX,LEVSO,AK,BK,CK,PSO,TO,QO) - DEALLOCATE (AK, BK, CK) - ENDIF - -!----force tracers to be positvie - IF (CHGQ0 == 1) QO = MAX(QO, 0.0) - - DO J=J1,J2 - JN = J - JS = LATBO+1-J - DO I=1,LONBO - GFSDATAO%ZS(I,JN) = ZSO(I,2*(J-J1)+1) - GFSDATAO%ZS(I,JS) = ZSO(I,2*(J-J1)+2) - GFSDATAO%PS(I,JN) = PSO(I,2*(J-J1)+1) - GFSDATAO%PS(I,JS) = PSO(I,2*(J-J1)+2) - ENDDO - IF (NOPDPVV) THEN - DO K=1,LEVSO - DO I=1,LONBO - GFSDATAO%T(I,JN,K) = TO(I,2*(J-J1)+1,K) - GFSDATAO%T(I,JS,K) = TO(I,2*(J-J1)+2,K) - GFSDATAO%U(I,JN,K) = UO(I,2*(J-J1)+1,K) - GFSDATAO%U(I,JS,K) = UO(I,2*(J-J1)+2,K) - GFSDATAO%V(I,JN,K) = VO(I,2*(J-J1)+1,K) - GFSDATAO%V(I,JS,K) = VO(I,2*(J-J1)+2,K) - ENDDO - ENDDO - ELSE - DO K=1,LEVSO - DO I=1,LONBO - GFSDATAO%DP(I,JN,K) = DPO(I,2*(J-J1)+1,K) - GFSDATAO%DP(I,JS,K) = DPO(I,2*(J-J1)+2,K) - GFSDATAO%P(I,JN,K) = PO(I,2*(J-J1)+1,K) - GFSDATAO%P(I,JS,K) = PO(I,2*(J-J1)+2,K) - GFSDATAO%T(I,JN,K) = TO(I,2*(J-J1)+1,K) - GFSDATAO%T(I,JS,K) = TO(I,2*(J-J1)+2,K) - GFSDATAO%U(I,JN,K) = UO(I,2*(J-J1)+1,K) - GFSDATAO%U(I,JS,K) = UO(I,2*(J-J1)+2,K) - GFSDATAO%V(I,JN,K) = VO(I,2*(J-J1)+1,K) - GFSDATAO%V(I,JS,K) = VO(I,2*(J-J1)+2,K) - GFSDATAO%W(I,JN,K) = WO(I,2*(J-J1)+1,K) - GFSDATAO%W(I,JS,K) = WO(I,2*(J-J1)+2,K) - ENDDO - ENDDO - ENDIF - - DO N=1,NTRACM - DO K=1,LEVSO - DO I=1,LONBO - GFSDATAO%Q(I,JN,K,N) = QO(I,2*(J-J1)+1,K,N) - GFSDATAO%Q(I,JS,K,N) = QO(I,2*(J-J1)+2,K,N) - ENDDO - ENDDO - ENDDO - ENDDO - - ENDDO LATLOOP1 - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! DEALLOCATE TEMPORARY DATA -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DEALLOCATE(ZSI, PSI, PI, TI, UI, VI, WI, QI) - DEALLOCATE(ZSO, PSO, PO, TO, UO, VO, WO, QO) - DEALLOCATE(TPO, DTDPO, DPO) - DEALLOCATE(LPL3, RLAT) - IF (ALLOCATED(SUMQ)) DEALLOCATE(SUMQ) - IF (ALLOCATED(XCP)) DEALLOCATE(XCP) - IF (ALLOCATED(VIRT)) DEALLOCATE(VIRT) - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! GENERATE SPECIAL SETS OF TRACERS - IF(SIGHEADO%IDVT > 0 .AND. MOD(SIGHEADO%IDVT,100) == 0) THEN - PRINT*,'FATAL ERROR: USE OF SPECIAL TRACER SETS NOT YET IMPLEMENTED' - PRINT*,'FOR FV3. STOP.' - CALL ERREXIT(11) -!fv3 The specsets routine passes back tracers in spectral space. Routine -!fv3 should be modified to pass back tracers on gaussian or fv3 grid. -!fv3 CALL SPECSETS(SIGHEADO,SIGDATAO,IDRT) - ENDIF - - CALL SIGIO_AXDBTA(SIGDATAI,IRET) - - CALL SIGIO_SCLOSE(NSIGI,IRET) - - IF (REGIONAL < 2) THEN - CALL WRITE_FV3_ATMS_NETCDF(GFSDATAO%ZS,GFSDATAO%PS,GFSDATAO%T,GFSDATAO%W, & - GFSDATAO%U,GFSDATAO%V,GFSDATAO%Q,VCOORDO, & - LONBO,LATBO,LEVSO,NTRACM,NVCOORDO,NTILES,HALO) - ENDIF - - IF (REGIONAL >= 1) THEN - CALL WRITE_FV3_ATMS_BNDY_NETCDF(GFSDATAO%ZS,GFSDATAO%PS,GFSDATAO%T, & - GFSDATAO%W,GFSDATAO%U,GFSDATAO%V,GFSDATAO%Q,VCOORDO, & - LONBO,LATBO,LEVSO,NTRACM,NVCOORDO,HALO) - ENDIF - - CALL NEMSIO_GFS_AXGRD(GFSDATAO) - - DEALLOCATE (VCOORDO) - DEALLOCATE (TRAC_NAME) - -! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -! CHANGE RESOLUTION OF INPUT NEMSIO GRID FILE -! OUTPUT ATMOS FILE ON FV3 CUBED-SPHERE GRID WILL BE NETCDF FORMAT. -! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - ELSEIF(INPTYP == 1) THEN - - PRINT*, 'CHGRES INPUT: GFS GAUSSIAN NEMSIO GRID FILE ' - PRINT*, 'CHGRES OUTPUT: FV3 NETCDF FILE' - - CALL NEMSIO_OPEN(GFILEI,'chgres.inp.sig','read',IRET=IRET) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! OPEN (READ) NEMSIO GRID FILE HEADERS - CALL NEMSIO_GETFILEHEAD(GFILEI, IDATE=GFSHEADI%IDATE, & - NFHOUR=GFSHEADI%NFHOUR, & - NFMINUTE=GFSHEADI%NFMINUTE, & - NFSECONDN=GFSHEADI%NFSECONDN, & - NFSECONDD=GFSHEADI%NFSECONDD, & - VERSION=GFSHEADI%VERSION, & - NREC=GFSHEADI%NREC, & - DIMX=GFSHEADI%DIMX, & - DIMY=GFSHEADI%DIMY, & - DIMZ=GFSHEADI%DIMZ, & - JCAP=GFSHEADI%JCAP, & - NTRAC=GFSHEADI%NTRAC, & - NCLDT=GFSHEADI%NCLDT, & - NSOIL=GFSHEADI%NSOIL, & - IDSL=GFSHEADI%IDSL, & - IDVC=GFSHEADI%IDVC, & - IDVM=GFSHEADI%IDVM, & - IDRT=GFSHEADI%IDRT, IRET=IRET0) - - CALL NEMSIO_GETHEADVAR(GFILEI,'FHOUR', GFSHEADI%FHOUR,IRET=IRET) - - IF(IRET/=0) GFSHEADI%FHOUR = REAL(GFSHEADI%NFHOUR,8) + & - REAL(GFSHEADI%NFMINUTE,8)/60. + & - REAL(GFSHEADI%NFSECONDN,8)/(3600.*GFSHEADI%NFSECONDD) - - CALL NEMSIO_GETHEADVAR(GFILEI,'DIMY', GFSHEADI%LATB,IRET=IRET) - CALL NEMSIO_GETHEADVAR(GFILEI,'DIMX', GFSHEADI%LONB,IRET=IRET) - CALL NEMSIO_GETHEADVAR(GFILEI,'LEVS', GFSHEADI%LEVS,IRET=IRET) - CALL NEMSIO_GETHEADVAR(GFILEI,'ITRUN', GFSHEADI%ITRUN,IRET=IRET) - CALL NEMSIO_GETHEADVAR(GFILEI,'IORDER', GFSHEADI%IORDER,IRET=IRET) - CALL NEMSIO_GETHEADVAR(GFILEI,'IREALF', GFSHEADI%IREALF, IRET=IRET) - CALL NEMSIO_GETHEADVAR(GFILEI,'ICEN2', GFSHEADI%ICEN2,IRET=IRET) - CALL NEMSIO_GETHEADVAR(GFILEI,'IDVT', GFSHEADI%IDVT,IRET=IRET) - CALL NEMSIO_GETHEADVAR(GFILEI,'PDRYINI', GFSHEADI%PDRYINI,IRET=IRET) - CALL NEMSIO_GETHEADVAR(GFILEI,'IVS', GFSHEADI%IVSSIG,IRET=IRET) - CALL NEMSIO_GETHEADVAR(GFILEI,'NVCOORD', GFSHEADI%NVCOORD,IRET=IRET) - - PRINT*,'' - PRINT*,"INPUT NEMSIO FILE SPECS:" - WRITE(6,155) GFSHEADI%IDATE - 155 FORMAT(" DATE: ",7(I6)) - PRINT*," FHOUR: ",GFSHEADI%FHOUR - PRINT*," VERSION: ",GFSHEADI%VERSION - PRINT*," NREC: ",GFSHEADI%NREC - PRINT*," JCAP: ",GFSHEADI%JCAP - PRINT*," NTRAC: ",GFSHEADI%NTRAC - PRINT*," NCLDT: ",GFSHEADI%NCLDT - PRINT*," IDSL: ",GFSHEADI%IDSL - PRINT*," IDVC: ",GFSHEADI%IDVC - PRINT*," IDVM: ",GFSHEADI%IDVM - PRINT*," IDRT: ",GFSHEADI%IDRT - PRINT*," LONB: ",GFSHEADI%LONB - PRINT*," LATB: ",GFSHEADI%LATB - PRINT*," LEVS: ",GFSHEADI%LEVS - PRINT*," ITRUN: ",GFSHEADI%ITRUN - PRINT*," IORDER: ",GFSHEADI%IORDER - PRINT*," IREALF: ",GFSHEADI%IREALF - PRINT*," ICEN2: ",GFSHEADI%ICEN2 - PRINT*," IDVT: ",GFSHEADI%IDVT - PRINT*," PDRYINI: ",GFSHEADI%PDRYINI - PRINT*," IVSSIG: ",GFSHEADI%IVSSIG - PRINT*," NVCOORD: ",GFSHEADI%NVCOORD - - LEVSI = GFSHEADI%DIMZ - LONB = GFSHEADI%DIMX - LATB = GFSHEADI%DIMY - - ALLOCATE(GFSHEADVI%VCOORD(LEVSI+1,3,2)) - ALLOCATE(GFSHEADVI%CPI(GFSHEADI%NTRAC+1)) - ALLOCATE(GFSHEADVI%RI(GFSHEADI%NTRAC+1)) - - CALL NEMSIO_GETFILEHEAD(GFILEI, VCOORD=GFSHEADVI%VCOORD, & - CPI=GFSHEADVI%CPI, RI=GFSHEADVI%RI, & - IRET=IRET1) - - IF(IRET1.NE.0 ) THEN - PRINT*, 'FATAL ERROR READNG NEMSIO FILE HEADER. IRET: ', IRET1 - CALL ERREXIT(25) - ENDIF - - IF (GFSHEADI%NVCOORD == -9999) THEN - GFSHEADI%NVCOORD = 3 - IF (MAXVAL(GFSHEADVI%VCOORD(:,3,1)) == 0. .AND. & - MINVAL(GFSHEADVI%VCOORD(:,3,1)) == 0. ) THEN - GFSHEADI%NVCOORD = 2 -! jw for hyb: when no idsl is set - IF (GFSHEADI%IDSL == -9999)GFSHEADI%IDSL = 1 - IF (MAXVAL(GFSHEADVI%VCOORD(:,2,1)) == 0. .AND. & - MINVAL(GFSHEADVI%VCOORD(:,2,1)) ==0.) THEN - GFSHEADI%NVCOORD = 1 - ENDIF - ENDIF - ENDIF - - ALLOCATE(VCOORDI(LEVSI+1,GFSHEADI%NVCOORD)) - VCOORDI(:,:) = GFSHEADVI%VCOORD(:,:,1) - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! READ INPUT NEMSIO DATA ARRAY - - ALLOCATE(GFSDATAI%ZS(LONB,LATB)) - ALLOCATE(GFSDATAI%PS(LONB,LATB)) - ALLOCATE(GFSDATAI%T(LONB,LATB,LEVSI)) - ALLOCATE(GFSDATAI%U(LONB,LATB,LEVSI)) - ALLOCATE(GFSDATAI%V(LONB,LATB,LEVSI)) - ALLOCATE(GFSDATAI%Q(LONB,LATB,LEVSI,GFSHEADI%NTRAC)) - IF (.NOT. NOPDPVV) THEN - ALLOCATE(GFSDATAI%P(LONB,LATB,LEVSI)) - ALLOCATE(GFSDATAI%DP(LONB,LATB,LEVSI)) - ALLOCATE(GFSDATAI%W(LONB,LATB,LEVSI)) - ENDIF - - CALL NEMSIO_GFS_RDGRD(GFILEI,GFSDATAI,IRET=IRET) - - CALL NEMSIO_CLOSE(GFILEI,IRET=IRET) - - IF (LEVS > 0) THEN - LEVSO = LEVS - ELSE - LEVSO = LEVSI - ENDIF - - NTRACO = GFSHEADI%NTRAC - - IF(IDVT > 0)THEN - IDVTO = IDVT - ELSE - IDVTO = GFSHEADI%IDVT - ENDIF - - IF (NTRACO == 3 .AND. IDVTO == 21) THEN - PRINT*,'INPUT FILE TRACERS: SPFH, O3MR, CLWMR' - ELSE - PRINT*,'- FATAL ERROR: CHGRES ASSUMES NTRACO=3 AND IDVT=21' - PRINT*,'- INPUT FILE VALUES ARE ',NTRACO,IDVT - PRINT*,'- STOP.' - CALL ERREXIT(27) - ENDIF - - IF(IDVC > 0) THEN - IDVCO = IDVC - ELSE - IDVCO = GFSHEADI%IDVC - ENDIF - - IF(IDVM > 0) THEN - IDVMO = IDVM - ELSE - IDVMO = GFSHEADI%IDVM - ENDIF - - IF(IDSL > 0) THEN - IDSLO = IDSL - ELSE - IDSLO = GFSHEADI%IDSL - ENDIF - - IF(NVCOORD > 0) THEN - NVCOORDO = NVCOORD - ELSE - NVCOORDO = GFSHEADI%NVCOORD - ENDIF - - IF(MQUICK == 1) THEN - IF(LEVSO.NE.LEVSI) CALL ERREXIT(28) - ENDIF - -! GET NEW SIGMA LEVELS - - IF(NSIL /= 0) THEN - ALLOCATE(VCOORDO(LEVSO+1,NVCOORDO)) - CALL NEWSIG(NSIL, IDVCO, LEVSO, NVCOORDO, VCOORDO, IOSSIL) - IF(IOSSIL == 0) THEN - PRINT '(" NEW MODEL LEVELS READ IN")' - ENDIF - ELSEIF(IDVCO == GFSHEADI%IDVC .AND. & - LEVSO == LEVSI .AND. & - NVCOORDO == GFSHEADI%NVCOORD) THEN - ALLOCATE(VCOORDO(LEVSO+1,NVCOORDO)) - VCOORDO(:,:) = GFSHEADVI%VCOORD(:,1:NVCOORDO,1) - IOSSIL = 0 - PRINT '(" NEW MODEL LEVELS COPIED FROM OLD")' - ELSE - IOSSIL=42 - ENDIF - - IF(IOSSIL.NE.0) THEN - PRINT*,"FATAL ERROR DEFINING SIGMA VALUES. IOSSIL: ", IOSSIL - CALL ERREXIT(81) - ENDIF - - PRINT*,'' - PRINT*,"TRANSFORM TO A CUBED-SPHERE GRID OF:" - PRINT*," LEVELS: ",LEVSO - PRINT*," NTRAC: ",NTRACO - PRINT*," IDVC: ",IDVCO - PRINT*," NVCOORD: ",NVCOORDO - - IF (NOPDPVV) THEN - NREC = 2 + LEVSO*(3+NTRACO) !zs,ps,t,u,v,q(ntracer) - ELSE - NREC = 2 + LEVSO*(6+NTRACO) !zs,ps,p,dp,t,u,v,q(ntracer),vvel - ENDIF - - IF (NTRACO == GFSHEADI%NTRAC) THEN - CPI(0:NTRACO) = GFSHEADVI%CPI(1:NTRACO+1) - RI(0:NTRACO) = GFSHEADVI%RI(1:NTRACO+1) - ELSE - PRINT *,'FATAL ERROR: You have different Tracers from input,', & - ' make sure to provide CPI & RI, for generalized coordinate.' - PRINT*,' Stop program.' - CALL ERREXIT(24) - ENDIF - - MQUICKNEMS : IF (MQUICK == 0) THEN - - ALLOCATE(ZSI(LONB,LATCH2), PSI(LONB,LATCH2)) - ALLOCATE(TI(LONB,LATCH2,LEVSI), TIV(LONB,LATCH2,LEVSI), & - UI(LONB,LATCH2,LEVSI), VI(LONB,LATCH2,LEVSI), & - PI(LONB,LATCH2,LEVSI), WI(LONB,LATCH2,LEVSI), & - QI(LONB,LATCH2,LEVSI,NTRACO)) - - ALLOCATE(GFSDATAO%ZS(LONB,LATB)) - ALLOCATE(GFSDATAO%PS(LONB,LATB)) - ALLOCATE(GFSDATAO%T(LONB,LATB,LEVSO)) - ALLOCATE(GFSDATAO%U(LONB,LATB,LEVSO)) - ALLOCATE(GFSDATAO%V(LONB,LATB,LEVSO)) - ALLOCATE(GFSDATAO%Q(LONB,LATB,LEVSO,NTRACO)) - - IF (.NOT. NOPDPVV) THEN - ALLOCATE(GFSDATAO%P(LONB,LATB,LEVSO)) - ALLOCATE(GFSDATAO%DP(LONB,LATB,LEVSO)) - ALLOCATE(GFSDATAO%W(LONB,LATB,LEVSO)) - ELSE - ALLOCATE(PO(LONB,LATCH2,LEVSO)) - ALLOCATE(DPO(LONB,LATCH2,LEVSO)) - ALLOCATE(WO(LONB,LATCH2,LEVSO)) - ENDIF - - ALLOCATE(DTDPO(LONB,LATCH2,LEVSO)) - - LATLOOP : DO J1=1,LATB,LATCH2 - - J2 = MIN(J1+LATCH2-1, LATB) - JL = J2-J1+1 - IJL = LONB*JL - IJX = LONB*JL - - ZSI(:,:) = GFSDATAI%ZS(:,J1:J2) - PSI(:,:) = GFSDATAI%PS(:,J1:J2) - - IF (.NOT. NOPDPVV) THEN - PI(:,:,:) = GFSDATAI%P(:,J1:J2,:) - ELSE - DO L = 1, LEVSI - DO J = 1, JL - DO I = 1, LONB - PI(I,J,L) = VCOORDI(L,1) + VCOORDI(L,2)*PSI(i,j) - ENDDO - ENDDO - ENDDO - ENDIF - - TI(:,:,:) = GFSDATAI%T(:,J1:J2,:) - UI(:,:,:) = GFSDATAI%U(:,J1:J2,:) - VI(:,:,:) = GFSDATAI%V(:,J1:J2,:) - - DO N=1,NTRACO - QI(:,:,:,N) = GFSDATAI%Q(:,J1:J2,:,N) - ENDDO - - IF ( NREC == GFSHEADI%NREC .AND. .NOT. NOPDPVV ) THEN - WI(:,:,:) = GFSDATAI%W(:,J1:J2,:) - ELSE - WI = 0. - ENDIF - - TIV = TI*(1.+(461.50/287.05-1)*QI(:,:,:,1)) ! virtual temperature - - GFSDATAO%ZS(:,J1:J2) = ZSI - - CALL SIGIO_MODPRD(IJL,IJX,LEVSI,GFSHEADI%NVCOORD, & - GFSHEADI%IDVC,GFSHEADI%IDSL,VCOORDI,IRET, & - PS=PSI,T=TIV,PM=PI) - - TI = TIV / (1.+(461.50/287.05-1)*QI(:,:,:,1)) ! virtual temperature - - IF(ANY(TI == 0)) THEN - PRINT *,'WARNING: tmp=0,j1=',j1,'j2=',j2,'tmp=',MAXVAL(TI),MINVAL(TI) - ENDIF - - GFSDATAO%PS(:,J1:J2) = PSI - -!----------------------------------------------------------------------- -! VERTICALLY INTERPOLATE UPPER-AIR FIELDS -! -- Henry Juang's approach - - IF (NOPDPVV) THEN - CALL NEWPR1(IJL, IJX, LEVSO, LEVSI, IDVCO, IDVMO, IDSLO, & - NVCOORDO, VCOORDO, RI, CPI, NTRACO, & - PI, TI, QI, GFSDATAO%PS(:,J1:J2), PO, DPO) - - CALL VINTG(IJL,IJX,LEVSI,LEVSO,NTRACO,PI,UI,VI,TI,QI,WI, & - PO, GFSDATAO%U(:,J1:J2,:), GFSDATAO%V(:,J1:J2,:), & - GFSDATAO%T(:,J1:J2,:), GFSDATAO%Q(:,J1:J2,:,:), DTDPO, WO) - - ELSE - CALL NEWPR1(IJL, IJX, LEVSO, LEVSI, IDVCO, IDVMO, IDSLO, & - NVCOORDO, VCOORDO, RI, CPI, NTRACO, PI, TI, QI, & - GFSDATAO%PS(:,J1:J2), GFSDATAO%P(:,J1:J2,:), & - GFSDATAO%DP(:,J1:J2,:)) - - CALL VINTG(IJL,IJX,LEVSI,LEVSO,NTRACO,PI,UI,VI,TI,QI,WI, & - GFSDATAO%P(:,J1:J2,:),GFSDATAO%U(:,J1:J2,:), & - GFSDATAO%V(:,J1:J2,:),GFSDATAO%T(:,J1:J2,:), & - GFSDATAO%Q(:,J1:J2,:,:),DTDPO, & - GFSDATAO%W(:,J1:J2,:)) - ENDIF - - IF (IDVCO == 3) THEN - ALLOCATE(AK(LEVSO+1), BK(LEVSO+1), CK(LEVSO+1)) - - AK = VCOORDO(1:(LEVSO+1),1) - BK = VCOORDO(1:(LEVSO+1),2) - CK = VCOORDO(1:(LEVSO+1),3) - - CALL CHECKDP(IJL,IJX,LEVSO,AK,BK,CK,GFSDATAO%PS(:,J1:J2), & - GFSDATAO%T(:,J1:J2,:),GFSDATAO%Q(:,J1:J2,:,:)) - - DEALLOCATE(AK,BK,CK) - ENDIF - - ENDDO LATLOOP - - DEALLOCATE(ZSI, PSI, PI, TI, TIV, UI, VI, WI, QI, DTDPO) - - IF (ALLOCATED(PO)) DEALLOCATE(PO) - IF (ALLOCATED(DPO)) DEALLOCATE(DPO) - IF (ALLOCATED(WO)) DEALLOCATE(WO) - - ELSE ! MQUICK /= 0 - - ALLOCATE(GFSDATAO%ZS(LONB,LATB)) - ALLOCATE(GFSDATAO%PS(LONB,LATB)) - ALLOCATE(GFSDATAO%T(LONB,LATB,LEVSO)) - ALLOCATE(GFSDATAO%U(LONB,LATB,LEVSO)) - ALLOCATE(GFSDATAO%V(LONB,LATB,LEVSO)) - ALLOCATE(GFSDATAO%Q(LONB,LATB,LEVSO,NTRACO)) - - GFSDATAO%ZS = GFSDATAI%ZS - GFSDATAO%PS = GFSDATAI%PS - GFSDATAO%U = GFSDATAI%U - GFSDATAO%V = GFSDATAI%V - GFSDATAO%T = GFSDATAI%T - GFSDATAO%Q = GFSDATAI%Q - - IF (.NOT. NOPDPVV) THEN - ALLOCATE(GFSDATAO%W(LONB,LATB,LEVSO)) - ALLOCATE(GFSDATAO%P(LONB,LATB,LEVSO)) - ALLOCATE(GFSDATAO%DP(LONB,LATB,LEVSO)) - GFSDATAO%DP = GFSDATAI%DP - GFSDATAO%P = GFSDATAI%P - IF(NREC == GFSHEADI%NREC) THEN - GFSDATAO%W = GFSDATAI%W - ELSE - GFSDATAO%W = 0. - ENDIF - ENDIF - - ENDIF MQUICKNEMS - - DEALLOCATE(VCOORDI) - - CALL NEMSIO_GFS_AXHEADV(GFSHEADVI) - - CALL NEMSIO_GFS_AXGRD(GFSDATAI) - - IF (.NOT. ALLOCATED(GFSDATAO%W)) THEN - ALLOCATE(GFSDATAO%W(LONB,LATB,LEVSO)) - GFSDATAO%W = 0.0 - END IF - - IF (REGIONAL < 2) THEN - CALL WRITE_FV3_ATMS_NETCDF(GFSDATAO%ZS,GFSDATAO%PS,GFSDATAO%T,GFSDATAO%W, & - GFSDATAO%U,GFSDATAO%V,GFSDATAO%Q,VCOORDO, & - LONB,LATB,LEVSO,NTRACO,NVCOORDO,NTILES,HALO) - ENDIF - - IF (REGIONAL >=1) THEN - CALL WRITE_FV3_ATMS_BNDY_NETCDF(GFSDATAO%ZS,GFSDATAO%PS,GFSDATAO%T, & - GFSDATAO%W,GFSDATAO%U,GFSDATAO%V,GFSDATAO%Q,VCOORDO, & - LONB,LATB,LEVSO,NTRACO,NVCOORDO,HALO) - ENDIF - - DEALLOCATE(VCOORDO) - - CALL NEMSIO_GFS_AXGRD(GFSDATAO) - -! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ENDIF !!!END OF INPTYP OPTIONS FOR ATMOS FILE -! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -! --------------------------------------------------------------------- -! CLOSE FILES - IF(INPTYP /= 0) THEN - IF(NSIL > 0) CLOSE(NSIL) - ENDIF - -! --------------------------------------------------------------------- -! END OF CHANGE RESOLUTION FOR ATMOSPHERIC FIELDS. -! --------------------------------------------------------------------- - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! OPEN SURFACE FILES -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NSFCI = 21 - NSFCO = 61 - CALL SFCIO_SROPEN(NSFCI,'chgres.inp.sfc',IRET) - CALL SFCIO_SRHEAD(NSFCI,SFCHEADI,IRET1) - IF(IRET == 0 .AND. IRET1 == 0) THEN - INPTYP = 2 - CALL SFCIO_SCLOSE(NSFCI, IRET) - ELSE - CALL NEMSIO_OPEN(GFILEISFC,'chgres.inp.sfc','read',IRET=IRET) - CALL NEMSIO_GETFILEHEAD(GFILEISFC,GTYPE=FILETYPE,IRET=IRET) - PRINT *,'OPEN chgres.inp.sfc,iret=',IRET, 'gtype=',FILETYPE - IF (TRIM(FILETYPE) == 'NEMSIO' .AND. IRET == 0) THEN - INPTYP = 1 - CALL NEMSIO_CLOSE(GFILEISFC, IRET=IRET) - ELSE - INPTYP = 0 - NSFCO = 0 - ENDIF - ENDIF - - IF (NSFCO == 0) GOTO 80 - - INQUIRE (FILE="./chgres.inp.nst", EXIST=DO_NSST) - IF (DO_NSST .AND. NSFCO == 0) THEN - PRINT*,'FATAL ERROR: WHEN CONVERTING AN NSST RESTART FILE,' - PRINT*,'YOU MUST ALSO CONVERT A SURFACE RESTART FILE.' - CALL ERREXIT(33) - ENDIF - - IF(INPTYP==2) THEN - - CALL READ_GFS_SFC_HEADER_SFCIO (NSFCI,IMI,JMI,IVSI,LSOILI, & - FCSTHOUR,IDATE4O,KGDS_INPUT) - - ELSEIF(INPTYP==1) THEN - - CALL READ_GFS_SFC_HEADER_NEMSIO (IMI,JMI,IVSI,LSOILI, & - FCSTHOUR,IDATE4O,KGDS_INPUT) - - ENDIF - - ALLOCATE (SFCINPUT%ALNSF(IMI,JMI), SFCINPUT%ALNWF(IMI,JMI), & - SFCINPUT%ALVSF(IMI,JMI), SFCINPUT%ALVWF(IMI,JMI), & - SFCINPUT%CANOPY_MC(IMI,JMI),SFCINPUT%GREENFRC(IMI,JMI), & - SFCINPUT%FACSF(IMI,JMI), SFCINPUT%FACWF(IMI,JMI), & - SFCINPUT%SKIN_TEMP(IMI,JMI),SFCINPUT%LSMASK(IMI,JMI), & - SFCINPUT%SEA_ICE_FLAG(IMI,JMI), & - SFCINPUT%SNOW_LIQ_EQUIV(IMI,JMI), & - SFCINPUT%Z0(IMI,JMI), SFCINPUT%OROG(IMI,JMI), & - SFCINPUT%VEG_TYPE(IMI,JMI), SFCINPUT%SOIL_TYPE(IMI,JMI),& - SFCINPUT%SOILM_TOT(IMI,JMI,LSOILI), & - SFCINPUT%SOIL_TEMP(IMI,JMI,LSOILI) ) - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! THE 200501 VERSION OF THE SURFACE FILE HAS ADDITIONAL FIELDS FOR -! USE BY NOAH LSM AND NEW SEA ICE PHYSICS, WHILE OLDER VERSIONS -! DO NOT. IF THESE VARIABLES ARE NOT ALLOCATED, THE SURFACE CHGRES -! CODE WILL NOT INTERPOLATE THEM. - - IF (IVSI >= 200501) THEN - ALLOCATE (SFCINPUT%SEA_ICE_FRACT(IMI,JMI), & - SFCINPUT%SEA_ICE_DEPTH(IMI,JMI), & - SFCINPUT%MXSNOW_ALB(IMI,JMI), & - SFCINPUT%SNOW_DEPTH(IMI,JMI), & - SFCINPUT%SLOPE_TYPE(IMI,JMI), & - SFCINPUT%GREENFRC_MAX(IMI,JMI), & - SFCINPUT%GREENFRC_MIN(IMI,JMI), & - SFCINPUT%SOILM_LIQ(IMI,JMI,LSOILI) ) - ENDIF - - ALLOCATE (F10MI(IMI,JMI), T2MI(IMI,JMI), Q2MI(IMI,JMI), & - UUSTARI(IMI,JMI), FFMMI(IMI,JMI), FFHHI(IMI,JMI), & - SRFLAGI(IMI,JMI), TPRCPI(IMI,JMI) ) - - IF(INPTYP==2) THEN - - CALL READ_GFS_SFC_DATA_SFCIO (NSFCI, IMI, JMI, SFCINPUT, & - F10MI, T2MI, Q2MI, UUSTARI, FFMMI, FFHHI, & - SRFLAGI, TPRCPI) - - ELSE - - CALL READ_GFS_SFC_DATA_NEMSIO (IMI, JMI, LSOILI, IVSI, SFCINPUT, & - & F10MI, T2MI, Q2MI, UUSTARI, FFMMI, FFHHI, & - & SRFLAGI, TPRCPI) - - ENDIF - - IVSO = 200509 - IF(IVSSFC>0) IVSO = IVSSFC - - LSOILO = LSOILI - IF(LSOIL > 0) LSOILO = LSOIL - IF(IVSO < 200501) LSOILO = 2 - IF(LSOILO /= 2 .AND. LSOILO /= 4) THEN - PRINT*,"FATAL ERROR: NUMBER OF SOIL LAYERS MUST BE 2 OR 4." - CALL ERREXIT(9) - ENDIF - - CALL READ_FV3_GRID_DIMS_NETCDF(TILE_NUM,IMO,JMO) - - IMO_WITH_HALO = IMO - JMO_WITH_HALO = JMO - - IF (HALO > 0) THEN - IMO = IMO - (2*HALO) - JMO = JMO - (2*HALO) - PRINT*,"WILL REMOVE HALO." - PRINT*,"FULL GRID DIMENSIONS: ", IMO_WITH_HALO, JMO_WITH_HALO - PRINT*,"NO HALO DIMENSIONS : ", IMO, JMO - ENDIF - - IJMO = IMO * JMO - - PRINT '(" CHANGE SURFACE FILE RESOLUTION", & - " FROM ",I4," X ",I4," X ",I4," VERSION",I8)', & - IMI,JMI,LSOILI,IVSI - PRINT '(" ", & - " TO ",I4," X ",I4," X ",I4," VERSION",I8)', & - IMO,JMO,LSOILO,IVSO - - ALLOCATE(TMPVAR(IMO_WITH_HALO,JMO_WITH_HALO)) - ALLOCATE(TMPLAT(IMO_WITH_HALO,JMO_WITH_HALO)) - ALLOCATE(TMPLON(IMO_WITH_HALO,JMO_WITH_HALO)) - - ALLOCATE(GEOLAT(IMO,JMO)) - ALLOCATE(GEOLON(IMO,JMO)) - CALL READ_FV3_LATLON_NETCDF(TILE_NUM,IMO_WITH_HALO,JMO_WITH_HALO,TMPLON,TMPLAT) - DO J = 1, JMO - DO I = 1, IMO - GEOLAT(I,J) = TMPLAT(I+HALO,J+HALO) - GEOLON(I,J) = TMPLON(I+HALO,J+HALO) - ENDDO - ENDDO - - DEALLOCATE(TMPLAT, TMPLON) - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! INTERPOLATE SOME SURFACE FIELDS THE OLD WAY. THESE ARE FIELDS -! THAT ARE EITHER DIAGNOSTIC OR DO NOT REQUIRE SPECIAL HANDLING -! BY THE NEW SURFACE CHGRES LOGIC. - - ALLOCATE (F10MO(IMO,JMO), T2MO(IMO,JMO), Q2MO(IMO,JMO), & - UUSTARO(IMO,JMO), FFMMO(IMO,JMO), FFHHO(IMO,JMO), & - TPRCPO(IMO,JMO), SRFLAGO(IMO,JMO) ) - - CALL GL2ANY(0,1,F10MI,IMI,JMI,F10MO,IMO,JMO,GEOLON,GEOLAT) - CALL GL2ANY(0,1,T2MI,IMI,JMI,T2MO,IMO,JMO,GEOLON,GEOLAT) - CALL GL2ANY(0,1,Q2MI,IMI,JMI,Q2MO,IMO,JMO,GEOLON,GEOLAT) - CALL GL2ANY(0,1,UUSTARI,IMI,JMI,UUSTARO,IMO,JMO,GEOLON,GEOLAT) - CALL GL2ANY(0,1,FFMMI,IMI,JMI,FFMMO,IMO,JMO,GEOLON,GEOLAT) - CALL GL2ANY(0,1,FFHHI,IMI,JMI,FFHHO,IMO,JMO,GEOLON,GEOLAT) - CALL GL2ANY(0,1,TPRCPI,IMI,JMI,TPRCPO,IMO,JMO,GEOLON,GEOLAT) - CALL GL2ANY(2,1,SRFLAGI,IMI,JMI,SRFLAGO,IMO,JMO,GEOLON,GEOLAT) - - DEALLOCATE (F10MI, T2MI, Q2MI, UUSTARI, FFMMI, FFHHI) - DEALLOCATE (TPRCPI, SRFLAGI) - - ALLOCATE(SLMSKO(IMO,JMO)) - CALL READ_FV3_GRID_DATA_NETCDF('slmsk',TILE_NUM,IMO_WITH_HALO,JMO_WITH_HALO,TMPVAR) - DO J = 1, JMO - DO I = 1, IMO - SLMSKO(I,J) = TMPVAR(I+HALO,J+HALO) - ENDDO - ENDDO - ALLOCATE(SFCOUTPUT%LSMASK(IJMO)) - SFCOUTPUT%LSMASK = RESHAPE(SLMSKO, (/IJMO/)) - DEALLOCATE(SLMSKO) - - ALLOCATE(OROGO(IMO,JMO)) - CALL READ_FV3_GRID_DATA_NETCDF('orog_filt',TILE_NUM,IMO_WITH_HALO,JMO_WITH_HALO,TMPVAR) - DO J = 1, JMO - DO I = 1, IMO - OROGO(I,J) = TMPVAR(I+HALO,J+HALO) - ENDDO - ENDDO - ALLOCATE(SFCOUTPUT%OROG(IJMO)) - SFCOUTPUT%OROG = RESHAPE(OROGO, (/IJMO/)) - DEALLOCATE(OROGO) - - ALLOCATE(OROGO_UF(IMO,JMO)) - CALL READ_FV3_GRID_DATA_NETCDF('orog_raw',TILE_NUM,IMO_WITH_HALO,JMO_WITH_HALO,TMPVAR) - DO J = 1, JMO - DO I = 1, IMO - OROGO_UF(I,J) = TMPVAR(I+HALO,J+HALO) - ENDDO - ENDDO - - DEALLOCATE(TMPVAR) - - ALLOCATE(SFCOUTPUT%LATS(IJMO)) - SFCOUTPUT%LATS = RESHAPE(GEOLAT, (/IJMO/)) - DEALLOCATE(GEOLAT) - ALLOCATE(SFCOUTPUT%LONS(IJMO)) - SFCOUTPUT%LONS = RESHAPE(GEOLON, (/IJMO/)) - DEALLOCATE(GEOLON) - - ALLOCATE(SFCOUTPUT%ALNSF(IJMO)) - ALLOCATE(SFCOUTPUT%ALNWF(IJMO)) - ALLOCATE(SFCOUTPUT%ALVSF(IJMO)) - ALLOCATE(SFCOUTPUT%ALVWF(IJMO)) - ALLOCATE(SFCOUTPUT%CANOPY_MC(IJMO)) - ALLOCATE(SFCOUTPUT%FACSF(IJMO)) - ALLOCATE(SFCOUTPUT%FACWF(IJMO)) - ALLOCATE(SFCOUTPUT%GREENFRC(IJMO)) - ALLOCATE(SFCOUTPUT%SUBSTRATE_TEMP(IJMO)) - ALLOCATE(SFCOUTPUT%SKIN_TEMP(IJMO)) - ALLOCATE(SFCOUTPUT%SNOW_LIQ_EQUIV(IJMO)) - ALLOCATE(SFCOUTPUT%Z0(IJMO)) - ALLOCATE(SFCOUTPUT%SOILM_TOT(IJMO,LSOILO)) - ALLOCATE(SFCOUTPUT%SOIL_TEMP(IJMO,LSOILO)) - ALLOCATE(SFCOUTPUT%VEG_TYPE(IJMO)) - ALLOCATE(SFCOUTPUT%SOIL_TYPE(IJMO)) - ALLOCATE(SFCOUTPUT%SEA_ICE_FLAG(IJMO)) - IF (IVSO >= 200501) THEN - ALLOCATE(SFCOUTPUT%SLOPE_TYPE(IJMO)) - ALLOCATE(SFCOUTPUT%SEA_ICE_FRACT(IJMO)) - ALLOCATE(SFCOUTPUT%SEA_ICE_DEPTH(IJMO)) - ALLOCATE(SFCOUTPUT%SOILM_LIQ(IJMO,LSOILO)) - ALLOCATE(SFCOUTPUT%SNOW_DEPTH(IJMO)) - ALLOCATE(SFCOUTPUT%MXSNOW_ALB(IJMO)) - ALLOCATE(SFCOUTPUT%GREENFRC_MAX(IJMO)) - ALLOCATE(SFCOUTPUT%GREENFRC_MIN(IJMO)) - END IF - IF (IVSO >= 200509) then - ALLOCATE (SFCOUTPUT%SEA_ICE_TEMP(IJMO)) - END IF - -! the fv3 does not have a grib 1 gds. so, there is no way to set the -! kgds array for the output grid. ipolates only uses kgds for the -! output grid when doing the budget interpolation. so, for now, -! only bilinear and neighbor interpolation will be used. - - KGDS_OUTPUT = 0 - - CALL SURFACE_CHGRES_DRIVER(IMO,JMO,IJMO,LSOILO, & - KGDS_OUTPUT,SFCOUTPUT,IMI,JMI, & - OROGO_UF,USE_UFO,NST_ANL, & - LSOILI, IDATE4O(1), IDATE4O(2), & - IDATE4O(3), IDATE4O(4), FCSTHOUR, & - KGDS_INPUT, SFCINPUT, IALB, & - ISOT, IVEGSRC, MERGE, IRET) - - IF (IRET /= 0) THEN - PRINT*, "FATAL ERROR IN SURFACE CHGRES DRIVER. IRET: ", IRET - CALL ERREXIT(34) - END IF - - CALL SURFACE_CHGRES_AX2D(SFCINPUT) - - DEALLOCATE(OROGO_UF) - - IF (DO_NSST) THEN - - ALLOCATE(RLATS_OUTPUT(IJMO)) - RLATS_OUTPUT=SFCOUTPUT%LATS - ALLOCATE(RLONS_OUTPUT(IJMO)) - RLONS_OUTPUT=SFCOUTPUT%LONS - ALLOCATE(MASK_OUTPUT(IJMO)) - MASK_OUTPUT=SFCOUTPUT%LSMASK - WHERE(SFCOUTPUT%SEA_ICE_FLAG==1) MASK_OUTPUT=2 - - ALLOCATE(NSST_OUTPUT(IJMO,NUM_NSST_FIELDS)) - ALLOCATE(NSST_INPUT(IMI,JMI,NUM_NSST_FIELDS)) - ALLOCATE(MASK_INPUT(IMI,JMI)) - - IF (INPTYP == 1) THEN - CALL READ_GFS_NSST_DATA_NEMSIO (MASK_INPUT,NSST_INPUT,IMI,JMI, & - NUM_NSST_FIELDS,NSST_YEAR,NSST_MON,NSST_DAY, & - NSST_HOUR,NSST_FHOUR) - ELSEIF (INPTYP == 2) THEN - CALL READ_GFS_NSST_DATA_NSTIO (IMI,JMI,NUM_NSST_FIELDS, & - NSST_INPUT, MASK_INPUT,NSST_YEAR, & - NSST_MON,NSST_DAY,NSST_HOUR, & - NSST_FHOUR) - ENDIF - - PRINT*,"- CHANGE NSST FILE RESOLUTION FROM ",IMI, " X ",JMI - PRINT*," TO ",IMO, " X ",JMO - - CALL NSST_CHGRES(IMI, JMI, MASK_OUTPUT, SFCOUTPUT%SKIN_TEMP, & - IMO, IJMO, KGDS_INPUT, NSST_INPUT, MASK_INPUT, & - NSST_OUTPUT, NUM_NSST_FIELDS, & - KGDS_OUTPUT, RLATS_OUTPUT, RLONS_OUTPUT) - - DEALLOCATE(RLATS_OUTPUT,RLONS_OUTPUT) - DEALLOCATE(NSST_INPUT,MASK_INPUT,MASK_OUTPUT) - - CALL WRITE_FV3_SFC_DATA_NETCDF(IMO,JMO,LSOILO,SFCOUTPUT,F10MO, & - T2MO,Q2MO,UUSTARO,FFMMO,FFHHO,TPRCPO, & - SRFLAGO,TILE_NUM,NUM_NSST_FIELDS,NSST_OUTPUT) - - DEALLOCATE(NSST_OUTPUT) - - ELSE ! output surface data only. - - CALL WRITE_FV3_SFC_DATA_NETCDF(IMO,JMO,LSOILO,SFCOUTPUT,F10MO, & - T2MO,Q2MO,UUSTARO,FFMMO,FFHHO,TPRCPO, & - SRFLAGO,TILE_NUM,NUM_NSST_FIELDS) - - - ENDIF ! process nsst file - - DEALLOCATE(F10MO, T2MO, Q2MO, UUSTARO, FFMMO, FFHHO) - DEALLOCATE(TPRCPO, SRFLAGO) - CALL SURFACE_CHGRES_AX1D(SFCOUTPUT) - - 80 CONTINUE - - IF(NSIGO==0 .AND. NSFCO==0) THEN - PRINT *,'- NO INPUT ATMOS OR SURFACE FILE SPECIFIED' - ENDIF - - CALL W3TAGE('GLOBAL_CHGRES') - END PROGRAM CHGRES diff --git a/sorc/global_chgres.fd/chgres_utils.f90 b/sorc/global_chgres.fd/chgres_utils.f90 deleted file mode 100755 index af2bee0d4c..0000000000 --- a/sorc/global_chgres.fd/chgres_utils.f90 +++ /dev/null @@ -1,2264 +0,0 @@ - SUBROUTINE GL2ANY(IP,KM,G1,IM1,JM1,G2,IM2,JM2,RLON,RLAT) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: GL2ANY INTERPOLATE GAUSSIAN GRID TO ANY GRID -! PRGMMR: EMC ORG: W/NMC23 DATE: JAN-18-2017 -! -! ABSTRACT: LINEARLY INTERPOLATES GAUSSIAN GRID TO ANY GRID. -! -! PROGRAM HISTORY LOG: -! 2017-JAN-18 EMC INITIAL VERSION -! -! USAGE: CALL GL2ANY(IP,KM,G1,IM1,JM1,G2,IM2,JM2,RLON,RLAT) -! INPUT ARGUMENT LIST: -! IP INTEGER INTERPOLATION TYPE -! KM INTEGER NUMBER OF LEVELS -! G1 REAL (IM1,JM1,KM) INPUT GAUSSIAN FIELD -! IM1 INTEGER NUMBER OF INPUT LONGITUDES -! JM1 INTEGER NUMBER OF INPUT LATITUDES -! IM2 INTEGER NUMBER OF OUTPUT LONGITUDES -! JM2 INTEGER NUMBER OF OUTPUT LATITUDES -! RLON REAL (IM2,JM2) OUTPUT GRID LONGITUDES -! RLAT REAL (IM2,JM2) OUTPUT GRID LATITUDES -! OUTPUT ARGUMENT LIST: -! G2 REAL (IM2,JM2,KM) OUTPUT FIELD -! -! SUBPROGRAMS CALLED: -! IPOLATES IREDELL'S POLATE FOR SCALAR FIELDS -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - IMPLICIT NONE - INTEGER, INTENT(IN) :: IP, KM, IM1, JM1, IM2, JM2 - REAL, INTENT(IN) :: G1(IM1,JM1,KM) - REAL, INTENT(IN) :: RLAT(IM2,JM2),RLON(IM2,JM2) - REAL, INTENT(OUT) :: G2(IM2,JM2,KM) - LOGICAL*1 :: L1(IM1,JM1,KM),L2(IM2,JM2,KM) - INTEGER :: IB1(KM),IB2(KM) - INTEGER :: KGDS1(200),KGDS2(200) - INTEGER :: IPOPT(20), IRET, NO - DATA KGDS1/4,0,0,90000,0,0,-90000,193*0/ - DATA KGDS2/200*0/ - DATA IPOPT/20*0/ -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - L1=.TRUE. - KGDS2(1) = -1 - NO = IM2*JM2 - IB1=0 - KGDS1(2)=IM1 - KGDS1(3)=JM1 - KGDS1(8)=NINT(-360000./IM1) - KGDS1(10)=JM1/2 - CALL IPOLATES(IP,IPOPT,KGDS1,KGDS2,IM1*JM1,IM2*JM2,KM,IB1,L1,G1, & - NO,RLAT,RLON,IB2,L2,G2,IRET) - IF(IRET/=0)THEN - PRINT*,'FATAL ERROR IN ROUTINE GL2ANY, IRET: ', IRET - CALL ERREXIT(23) - ENDIF - END SUBROUTINE GL2ANY - -!----------------------------------------------------------------------- - SUBROUTINE GL2ANYV(IP,KM,G1U,G1V,IM1,JM1,G2U,G2V,IM2,JM2,RLON,RLAT) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: GL2ANYV INTERPOLATE GAUSSIAN GRID TO ANY GRID -! PRGMMR: EMC ORG: W/NMC23 DATE: JAN-23-2017 -! -! ABSTRACT: LINEARLY INTERPOLATES VECTOR FIELD FROM GAUSSIAN GRID TO -! ANY GRID. OUTPUT WINDS ARE EARTH RELATIVE. -! -! PROGRAM HISTORY LOG: -! 2017-JAN-23 ESRL/EMC INITIAL VERSION -! -! USAGE: CALL GL2ANY(IP,KM,G1U,G1V,IM1,JM1,G2U,G2V,IM2,JM2,RLON,RLAT) -! INPUT ARGUMENT LIST: -! IP INTEGER INTERPOLATION TYPE -! KM INTEGER NUMBER OF LEVELS -! G1U REAL (IM1,JM1,KM) INPUT GAUSSIAN U-COMPONENT FIELD -! G1V REAL (IM1,JM1,KM) INPUT GAUSSIAN V-COMPONENT FIELD -! IM1 INTEGER NUMBER OF INPUT LONGITUDES -! JM1 INTEGER NUMBER OF INPUT LATITUDES -! IM2 INTEGER NUMBER OF OUTPUT LONGITUDES -! JM2 INTEGER NUMBER OF OUTPUT LATITUDES -! RLON REAL (IM2,JM2) OUTPUT GRID LONGITUDES -! RLAT REAL (IM2,JM2) OUTPUT GRID LATITUDES -! OUTPUT ARGUMENT LIST: -! G2U REAL (IM2,JM2,KM) OUTPUT U-COMPONENT FIELD -! G2V REAL (IM2,JM2,KM) OUTPUT V-COMPONENT FIELD -! -! SUBPROGRAMS CALLED: -! IPOLATEV IREDELL'S POLATE FOR VECTOR FIELDS -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN 90 -! -!C$$$ - IMPLICIT NONE - INTEGER, INTENT(IN) :: IP, KM, IM1, JM1, IM2, JM2 - REAL, INTENT(IN) :: G1U(IM1,JM1,KM), G1V(IM1,JM1,KM) - REAL, INTENT(IN) :: RLAT(IM2,JM2),RLON(IM2,JM2) - REAL, INTENT(OUT) :: G2U(IM2,JM2,KM), G2V(IM2,JM2,KM) - LOGICAL*1 :: L1(IM1,JM1,KM),L2(IM2,JM2,KM) - INTEGER :: IB1(KM),IB2(KM) - INTEGER :: KGDS1(200),KGDS2(200) - INTEGER :: IPOPT(20), IRET, NO - REAL :: CROT(IM2,JM2),SROT(IM2,JM2) - DATA KGDS1/4,0,0,90000,0,0,-90000,193*0/ - DATA KGDS2/200*0/ - DATA IPOPT/20*0/ -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - L1=.TRUE. - KGDS2(1) = -1 ! THE OUTPUT GRID IS A SERIES OF POINTS - NO = IM2*JM2 - IB1=0 - KGDS1(2)=IM1 - KGDS1(3)=JM1 - KGDS1(8)=NINT(-360000./IM1) - KGDS1(10)=JM1/2 - CROT = 1.0 ! DONT ROTATE WINDS TO THE OUTPUT GRID. - SROT = 0.0 ! FV3 EXPECTS EARTH RELATIVE WINDS. - CALL IPOLATEV(IP,IPOPT,KGDS1,KGDS2,IM1*JM1,IM2*JM2,KM,IB1,L1,G1U, & - G1V,NO,RLAT,RLON,CROT,SROT,IB2,L2,G2U,G2V,IRET) - IF(IRET/=0)THEN - PRINT*,'FATAL ERROR IN ROUTINE GL2ANYV, IRET: ', IRET - CALL ERREXIT(23) - ENDIF - END SUBROUTINE GL2ANYV - -!----------------------------------------------------------------------- - SUBROUTINE NEWSIG(NSIL,IDVC,LEVS,NVCOORD,VCOORD,IRET) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: NEWSIG GET NEW SIGMA STRUCTURE -! PRGMMR: IREDELL ORG: W/NMC23 DATE: 98-04-03 -! -! ABSTRACT: READ IN INTERFACE SIGMA VALUES (OR USE OLD VALUES) -! AND COMPUTE FULL SIGMA VALUES. -! -! PROGRAM HISTORY LOG: -! 98-04-03 IREDELL -! -! USAGE: CALL NEWSIG(NSIL,IDVC,LEVS,NVCOORD,VCOORD,IRET) -! INPUT ARGUMENTS: -! NSIL INTEGER UNIT NUMBER OF NEW SIGMA INTERFACE VALUES -! IDVC INTEGER VERTICAL COORDINATE ID -! LEVS INTEGER NEW NUMBER OF LEVELS -! NVCOORD INTEGER NEW NUMBER OF VERTICAL COORDINATES -! OUTPUT ARGUMENTS: -! VCOORD REAL (LEVS+1,NVCOORD) NEW VERTICAL COORDINATES -! IRET INTEGER RETURN CODE -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - IMPLICIT NONE -! - INTEGER :: NSIL,IDVC,LEVS,NVCOORD,IRET - REAL :: VCOORD(LEVS+1,NVCOORD) -! - INTEGER :: IDVCI,LEVSI,NVCOORDI,K,N -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! READ VERTICAL COORDINATES - PRINT*,'' - PRINT*,"READ VERTICAL COORDS FROM UNIT ",NSIL - READ(NSIL,*,IOSTAT=IRET) IDVCI,LEVSI,NVCOORDI - write(*,*)'IDVCI=',IDVCI,' LEVSI=',LEVSI,' NVCOORDI=',NVCOORDI - IF(IRET == 0) THEN -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ! Added by Moorthi for gaea - if (nvcoordi == 0) then - nvcoordi = nvcoord - backspace nsil - if (idvci > 5) then - levsi = idvci - idvci = 0 - idvc = idvci - nvcoordi = 1 - nvcoord = nvcoordi - - backspace nsil - READ(NSIL,*,IOSTAT=IRET) (VCOORD(K,1),K=2,LEVS) - VCOORD(1,1) = 1. - VCOORD(LEVS+1,1) = 0. - else - READ(NSIL,*,IOSTAT=IRET) & - ((VCOORD(K,N),N=1,NVCOORD),K=1,LEVS+1) - endif - elseif (nvcoordi <= 3) then - READ(NSIL,*,IOSTAT=IRET) & - ((VCOORD(K,N),N=1,NVCOORD),K=1,LEVS+1) - else - write(0,*)'FATAL ERROR: nvcoordi=',nvcoordi,' not available-abort chgres' - call errexit(55) - endif - IF(IRET .NE. 0) RETURN - IF(IDVCI .NE. IDVC.OR.LEVSI .NE. LEVS) IRET = 28 - IF(NVCOORDI.NE. NVCOORD) IRET = 28 - IF(IRET .NE. 0) RETURN -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! READ INTERFACE HYBRID VALUES - ELSE - REWIND NSIL - READ(NSIL,*,IOSTAT=IRET) IDVCI - REWIND NSIL - IF(IRET == 0 .AND. (IDVCI == 2 .OR. IDVCI == 3)) THEN - READ(NSIL,*,IOSTAT=IRET) IDVCI, LEVSI - READ(NSIL,*,IOSTAT=IRET) (VCOORD(K,1),VCOORD(K,2),K=1,LEVS+1) - IF(IRET.NE.0) RETURN - IF(IDVCI.NE.IDVC.OR.LEVSI.NE.LEVS) IRET = 28 - IF(IRET.NE.0) RETURN -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! READ INTERFACE SIGMA VALUES - ELSE - VCOORD(1,1) = 1. - VCOORD(LEVS+1,1) = 0. - READ(NSIL,*,IOSTAT=IRET) LEVSI - READ(NSIL,*,IOSTAT=IRET) (VCOORD(K,1),K=2,LEVS) - IF(IRET.NE.0) RETURN - IF(LEVSI.NE.LEVS) IRET = 28 - IF(IRET.NE.0) RETURN - ENDIF -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ENDIF - IRET=0 - END SUBROUTINE NEWSIG -!----------------------------------------------------------------------- - SUBROUTINE TRSSC(JCAP,NC,KM,NTRAC,IDVM, & - IDRT,LONB,LATB,IJN,J1,J2,JC,LONSPERLAT, & - SZS,SPS,ST,SD,SZ,SQ,ZS,PS,T,U,V,Q) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: TRSSC TRANSFORM SIGMA SPECTRAL FIELDS TO GRID -! PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-10-31 -! -! ABSTRACT: TRANSFORMS SIGMA SPECTRAL FIELDS TO GRID AND CONVERTS -! LOG SURFACE PRESSURE TO SURFACE PRESSURE AND VIRTUAL TEMPERATURE -! TO TEMPERATURE. -! -! PROGRAM HISTORY LOG: -! 91-10-31 MARK IREDELL -! -! USAGE: CALL TRSSC(JCAP,NC,KM,NTRAC,IDVM, -! & IDRT,LONB,LATB,IJN,J1,J2,JC,LONSPERLAT, -! & SZS,SPS,ST,SD,SZ,SQ,ZS,PS,T,U,V,Q) -! INPUT ARGUMENT LIST: -! JCAP INTEGER SPECTRAL TRUNCATION -! NC INTEGER FIRST DIMENSION (NC>=(JCAP+1)*(JCAP+2)) -! KM INTEGER NUMBER OF LEVELS -! NTRAC INTEGER NUMBER OF TRACERS -! IDVM INTEGER MASS VARIABLE ID -! IDRT INTEGER DATA REPRESENTATION TYPE -! LONB INTEGER NUMBER OF LONGITUDES -! LATB INTEGER NUMBER OF LATITUDES -! IJN INTEGER HORIZONTAL DIMENSION -! J1 INTEGER FIRST LATITUDE -! J2 INTEGER LAST LATITUDE -! JC INTEGER NUMBER OF CPUS -! LONSPERLAT INTEGER (J1:J2) NUMBER OF LONGITUDES PER LATITUDE -! SZS REAL (NC) OROGRAPHY -! SPS REAL (NC) LOG SURFACE PRESSURE -! ST REAL (NC,LEVS) VIRTUAL TEMPERATURE -! SD REAL (NC,LEVS) DIVERGENCE -! SZ REAL (NC,LEVS) VORTICITY -! SQ REAL (NC,LEVS*NTRAC) TRACERS -! OUTPUT ARGUMENT LIST: -! ZS REAL (IJN) OROGRAPHY -! PS REAL (IJN) SURFACE PRESSURE -! T REAL (IJN,KM) TEMPERATURE -! U REAL (IJN,KM) ZONAL WIND -! V REAL (IJN,KM) MERIDIONAL WIND -! Q REAL (IJN,KM*NTRAC) TRACERS -! -! SUBPROGRAMS CALLED: -! SPTRAN PERFORM A SCALAR SPHERICAL TRANSFORM -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - INTEGER LONSPERLAT(J1:J2) - REAL SZS(NC),SPS(NC),ST(NC,KM),SD(NC,KM),SZ(NC,KM),SQ(NC,KM*NTRAC) - REAL ZS(IJN),PS(IJN),T(IJN,KM),U(IJN,KM),V(IJN,KM),Q(IJN,KM*NTRAC) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! SPECTRAL TRANSFORMS - LONB2=LONB*2 - IJ=LONB2*(J2-J1+1) - IN=1 - IS=1+LONB - CALL SPTRAN(0,JCAP,IDRT,LONB,LATB,1,1,1,LONB2,LONB2,NC,IJN, & - J1,J2,JC,SZS,ZS(IN),ZS(IS),1) - CALL SPTRAN(0,JCAP,IDRT,LONB,LATB,1,1,1,LONB2,LONB2,NC,IJN, & - J1,J2,JC,SPS,PS(IN),PS(IS),1) - CALL SPTRAN(0,JCAP,IDRT,LONB,LATB,KM,1,1,LONB2,LONB2,NC,IJN, & - J1,J2,JC,ST,T(IN,1),T(IS,1),1) - CALL SPTRANV(0,JCAP,IDRT,LONB,LATB,KM,1,1,LONB2,LONB2,NC,IJN, & - J1,J2,JC,SD,SZ,U(IN,1),U(IS,1),V(IN,1),V(IS,1),1) - CALL SPTRAN(0,JCAP,IDRT,LONB,LATB,KM*NTRAC,1,1,LONB2,LONB2,NC,IJN,& - J1,J2,JC,SQ,Q(IN,1),Q(IS,1),1) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! TRANSFORM TO REDUCED GRID INSTEAD - DO J=J1,J2 - JN=LONB2*(J-J1)+IN - JS=LONB2*(J-J1)+IS - CALL SPTRRJ(LONB,LONSPERLAT(J),ZS(JN),ZS(JN),1) - CALL SPTRRJ(LONB,LONSPERLAT(J),ZS(JS),ZS(JS),1) - CALL SPTRRJ(LONB,LONSPERLAT(J),PS(JN),PS(JN),1) - CALL SPTRRJ(LONB,LONSPERLAT(J),PS(JS),PS(JS),1) - DO K=1,KM - CALL SPTRRJ(LONB,LONSPERLAT(J),T(JN,K),T(JN,K),1) - CALL SPTRRJ(LONB,LONSPERLAT(J),T(JS,K),T(JS,K),1) - CALL SPTRRJ(LONB,LONSPERLAT(J),U(JN,K),U(JN,K),1) - CALL SPTRRJ(LONB,LONSPERLAT(J),U(JS,K),U(JS,K),1) - CALL SPTRRJ(LONB,LONSPERLAT(J),V(JN,K),V(JN,K),1) - CALL SPTRRJ(LONB,LONSPERLAT(J),V(JS,K),V(JS,K),1) - ENDDO - DO K=1,KM*NTRAC - CALL SPTRRJ(LONB,LONSPERLAT(J),Q(JN,K),Q(JN,K),1) - CALL SPTRRJ(LONB,LONSPERLAT(J),Q(JS,K),Q(JS,K),1) - ENDDO - ENDDO -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! CONVERT TO SURFACE PRESSURE AND TEMPERATURE -! SELECT CASE(MOD(IDVM,10)) -! CASE(0,1) -! DO I=1,IJ -! PS(I)=1.E3*EXP(PS(I)) -! ENDDO -! CASE(2) -! DO I=1,IJ -! PS(I)=1.E3*PS(I) -! ENDDO -! CASE DEFAULT -! DO I=1,IJ -! PS(I)=1.E3*EXP(PS(I)) -! ENDDO -! END SELECT -! SELECT CASE(MOD(IDVM/10,10)) -! CASE(0,1) -! DO K=1,KM -! DO I=1,IJ -! T(I,K)=T(I,K)/(1.+(461.50/287.05-1)*Q(I,K)) -! if (t(i,k) .lt. 10) print *,' t=',t(i,k),' i=',i -! ENDDO -! print *,' T=',t(ij,k),' q=',Q(IJ,K),' k=',k -! ENDDO -! CASE DEFAULT -! DO K=1,KM -! DO I=1,IJ -! T(I,K)=T(I,K)/(1.+(461.50/287.05-1)*Q(I,K)) -! ENDDO -! ENDDO -! END SELECT -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - END SUBROUTINE TRSSC -!----------------------------------------------------------------------- - SUBROUTINE NEWPS(IM,ZS,PS,IMX,KM,P,T,Q,ZSNEW,PSNEW) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: NEWPS COMPUTE NEW SURFACE PRESSURE -! PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-10-31 -! -! ABSTRACT: COMPUTES A NEW SURFACE PRESSURE GIVEN A NEW OROGRAPHY. -! THE NEW PRESSURE IS COMPUTED ASSUMING A HYDROSTATIC BALANCE -! AND A CONSTANT TEMPERATURE LAPSE RATE. BELOW GROUND, THE -! LAPSE RATE IS ASSUMED TO BE -6.5 K/KM. -! -! PROGRAM HISTORY LOG: -! 91-10-31 MARK IREDELL -! -! USAGE: CALL NEWPS(IM,ZS,PS,IMX,KM,P,T,Q,ZSNEW,PSNEW) -! INPUT ARGUMENT LIST: -! IM INTEGER NUMBER OF POINTS TO COMPUTE -! ZS REAL (IM) OLD OROGRAPHY (M) -! PS REAL (IM) OLD SURFACE PRESSURE (PA) -! IMX INTEGER FIRST DIMENSION -! KM INTEGER NUMBER OF LEVELS -! P REAL (IMX,KM) PRESSURES (PA) -! T REAL (IMX,KM) TEMPERATURES (K) -! Q REAL (IMX,KM) SPECIFIC HUMIDITIES (KG/KG) -! ZSNEW REAL (IM) NEW OROGRAPHY (M) -! OUTPUT ARGUMENT LIST: -! PSNEW REAL (IM) NEW SURFACE PRESSURE (PA) -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - INTEGER,INTENT(IN)::IM,IMX,KM - REAL,INTENT(IN):: ZS(IM),PS(IM),P(IMX,KM) - REAL,INTENT(IN):: T(IMX,KM),Q(IMX,KM) - REAL,INTENT(IN):: ZSNEW(IM) - REAL,INTENT(OUT):: PSNEW(IM) - PARAMETER(BETA=-6.5E-3,EPSILON=1.E-9) - PARAMETER(G=9.80665,RD=287.05,RV=461.50) - PARAMETER(GOR=G/RD,FV=RV/RD-1.) - REAL ZU(IM) - FTV(AT,AQ)=AT*(1+FV*AQ) - FGAM(APU,ATVU,APD,ATVD)=-GOR*LOG(ATVD/ATVU)/LOG(APD/APU) - FZ0(AP,ATV,AZD,APD)=AZD+ATV/GOR*LOG(APD/AP) - FZ1(AP,ATV,AZD,APD,AGAM)=AZD-ATV/AGAM*((APD/AP)**(-AGAM/GOR)-1) - FP0(AZ,AZU,APU,ATVU)=APU*EXP(-GOR/ATVU*(AZ-AZU)) - FP1(AZ,AZU,APU,ATVU,AGAM)=APU*(1+AGAM/ATVU*(AZ-AZU))**(-GOR/AGAM) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! COMPUTE SURFACE PRESSURE BELOW THE ORIGINAL GROUND - LS=0 - K=1 - GAMMA=BETA - DO I=1,IM -! if (zsnew(i) == zs(i)) then -! psnew(i) = ps(i) -! else - PU=P(I,K) - TVU=FTV(T(I,K),Q(I,K)) - ZU(I)=FZ1(PU,TVU,ZS(I),PS(I),GAMMA) - IF(ZSNEW(I).LE.ZU(I)) THEN - PU=P(I,K) - TVU=FTV(T(I,K),Q(I,K)) - IF(ABS(GAMMA).GT.EPSILON) THEN - PSNEW(I)=FP1(ZSNEW(I),ZU(I),PU,TVU,GAMMA) - ELSE - PSNEW(I)=FP0(ZSNEW(I),ZU(I),PU,TVU) - ENDIF - ELSE - PSNEW(I)=0 - LS=LS+1 - ENDIF -! endif - ENDDO -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! COMPUTE SURFACE PRESSURE ABOVE THE ORIGINAL GROUND - DO K=2,KM - IF(LS.GT.0) THEN - DO I=1,IM - IF(PSNEW(I).EQ.0) THEN - PU=P(I,K) - TVU=FTV(T(I,K),Q(I,K)) - PD=P(I,K-1) - TVD=FTV(T(I,K-1),Q(I,K-1)) - GAMMA=FGAM(PU,TVU,PD,TVD) - IF(ABS(GAMMA).GT.EPSILON) THEN - ZU(I)=FZ1(PU,TVU,ZU(I),PD,GAMMA) - ELSE - ZU(I)=FZ0(PU,TVU,ZU(I),PD) - ENDIF - IF(ZSNEW(I).LE.ZU(I)) THEN - IF(ABS(GAMMA).GT.EPSILON) THEN - PSNEW(I)=FP1(ZSNEW(I),ZU(I),PU,TVU,GAMMA) - ELSE - PSNEW(I)=FP0(ZSNEW(I),ZU(I),PU,TVU) - ENDIF - LS=LS-1 - ENDIF - ENDIF - ENDDO - ENDIF - ENDDO -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! COMPUTE SURFACE PRESSURE OVER THE TOP - IF(LS.GT.0) THEN - K=KM - GAMMA=0 - DO I=1,IM - IF(PSNEW(I).EQ.0) THEN - PU=P(I,K) - TVU=FTV(T(I,K),Q(I,K)) - PSNEW(I)=FP0(ZSNEW(I),ZU(I),PU,TVU) - ENDIF - ENDDO - ENDIF - END SUBROUTINE NEWPS -!----------------------------------------------------------------------- - SUBROUTINE VINTG(IM,IX,KM1,KM2,NT,P1,U1,V1,T1,Q1,W1,P2, & - U2,V2,T2,Q2,DTDP2,W2) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: VINTG VERTICALLY INTERPOLATE UPPER-AIR FIELDS -! PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-10-31 -! -! ABSTRACT: VERTICALLY INTERPOLATE UPPER-AIR FIELDS. -! WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS ARE INTERPOLATED. -! THE INTERPOLATION IS CUBIC LAGRANGIAN IN LOG PRESSURE -! WITH A MONOTONIC CONSTRAINT IN THE CENTER OF THE DOMAIN. -! IN THE OUTER INTERVALS IT IS LINEAR IN LOG PRESSURE. -! OUTSIDE THE DOMAIN, FIELDS ARE GENERALLY HELD CONSTANT, -! EXCEPT FOR TEMPERATURE AND HUMIDITY BELOW THE INPUT DOMAIN, -! WHERE THE TEMPERATURE LAPSE RATE IS HELD FIXED AT -6.5 K/KM AND -! THE RELATIVE HUMIDITY IS HELD CONSTANT. -! -! PROGRAM HISTORY LOG: -! 91-10-31 MARK IREDELL -! -! USAGE: CALL VINTG(IM,IX,KM1,KM2,NT,P1,U1,V1,T1,Q1,P2, -! & U2,V2,T2,Q2) -! INPUT ARGUMENT LIST: -! IM INTEGER NUMBER OF POINTS TO COMPUTE -! IX INTEGER FIRST DIMENSION -! KM1 INTEGER NUMBER OF INPUT LEVELS -! KM2 INTEGER NUMBER OF OUTPUT LEVELS -! NT INTEGER NUMBER OF TRACERS -! P1 REAL (IX,KM1) INPUT PRESSURES -! ORDERED FROM BOTTOM TO TOP OF ATMOSPHERE -! U1 REAL (IX,KM1) INPUT ZONAL WIND -! V1 REAL (IX,KM1) INPUT MERIDIONAL WIND -! T1 REAL (IX,KM1) INPUT TEMPERATURE (K) -! Q1 REAL (IX,KM1,NT) INPUT TRACERS (HUMIDITY FIRST) -! P2 REAL (IX,KM2) OUTPUT PRESSURES -! OUTPUT ARGUMENT LIST: -! U2 REAL (IX,KM2) OUTPUT ZONAL WIND -! V2 REAL (IX,KM2) OUTPUT MERIDIONAL WIND -! T2 REAL (IX,KM2) OUTPUT TEMPERATURE (K) -! Q2 REAL (IX,KM2,NT) OUTPUT TRACERS (HUMIDITY FIRST) -! DTDP2 REAL (IX,KM2) OUTPUT DTDP -! -! SUBPROGRAMS CALLED: -! TERP3 CUBICALLY INTERPOLATE IN ONE DIMENSION -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - REAL P1(IX,KM1),U1(IX,KM1),V1(IX,KM1),T1(IX,KM1),Q1(IX,KM1,NT) & - ,W1(IX,KM1) - REAL P2(IX,KM2),U2(IX,KM2),V2(IX,KM2),T2(IX,KM2),Q2(IX,KM2,NT) & - ,W2(IX,KM2) - REAL,optional :: DTDP2(IX,KM2) - PARAMETER(DLTDZ=-6.5E-3*287.05/9.80665) - PARAMETER(DLPVDRT=-2.5E6/461.50) - - REAL,allocatable :: Z1(:,:),Z2(:,:) - REAL,allocatable :: C1(:,:,:),C2(:,:,:),J2(:,:,:) - - allocate (Z1(IM+1,KM1),Z2(IM+1,KM2)) - allocate (C1(IM+1,KM1,4+NT),C2(IM+1,KM2,4+NT),J2(IM+1,KM2,4+NT)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! COMPUTE LOG PRESSURE INTERPOLATING COORDINATE -! AND COPY INPUT WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(K,I) - DO K=1,KM1 - DO I=1,IM - Z1(I,K) = -LOG(P1(I,K)) - C1(I,K,1) = U1(I,K) - C1(I,K,2) = V1(I,K) - C1(I,K,3) = W1(I,K) - C1(I,K,4) = T1(I,K) - C1(I,K,5) = Q1(I,K,1) - ENDDO - ENDDO -!$OMP END PARALLEL DO - DO N=2,NT - DO K=1,KM1 - DO I=1,IM - C1(I,K,4+N) = Q1(I,K,N) - ENDDO - ENDDO - ENDDO -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(K,I) - DO K=1,KM2 - DO I=1,IM - Z2(I,K) = -LOG(P2(I,K)) - ENDDO - ENDDO -!$OMP END PARALLEL DO -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! PERFORM LAGRANGIAN ONE-DIMENSIONAL INTERPOLATION -! THAT IS 4TH-ORDER IN INTERIOR, 2ND-ORDER IN OUTSIDE INTERVALS -! AND 1ST-ORDER FOR EXTRAPOLATION. - CALL TERP3(IM,1,1,1,1,4+NT,(IM+1)*KM1,(IM+1)*KM2, & - KM1,IM+1,IM+1,Z1,C1,KM2,IM+1,IM+1,Z2,C2,J2) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! COPY OUTPUT WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS -! EXCEPT BELOW THE INPUT DOMAIN, LET TEMPERATURE INCREASE WITH A FIXED -! LAPSE RATE AND LET THE RELATIVE HUMIDITY REMAIN CONSTANT. - DO K=1,KM2 - DO I=1,IM - U2(I,K)=C2(I,K,1) - V2(I,K)=C2(I,K,2) - W2(I,K)=C2(I,K,3) - DZ=Z2(I,K)-Z1(I,1) - IF(DZ.GE.0) THEN - T2(I,K)=C2(I,K,4) - Q2(I,K,1)=C2(I,K,5) -!jaa DTDP2(I,K)=-J2(I,K,4)/P2(I,K) - ELSE - T2(I,K)=T1(I,1)*EXP(DLTDZ*DZ) - Q2(I,K,1)=Q1(I,1,1)*EXP(DLPVDRT*(1/T2(I,K)-1/T1(I,1))-DZ) -!jaa DTDP2(I,K)=-T2(I,K)*DLTDZ/P2(I,K) - ENDIF - ENDDO - ENDDO - DO N=2,NT - DO K=1,KM2 - DO I=1,IM - Q2(I,K,N)=C2(I,K,4+N) - ENDDO - ENDDO - ENDDO - DEALLOCATE (Z1,Z2,C1,C2,J2) - END SUBROUTINE VINTG -!----------------------------------------------------------------------- - SUBROUTINE TERP3(IM,IXZ1,IXQ1,IXZ2,IXQ2,NM,NXQ1,NXQ2, & - & KM1,KXZ1,KXQ1,Z1,Q1,KM2,KXZ2,KXQ2,Z2,Q2,J2) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: TERP3 CUBICALLY INTERPOLATE IN ONE DIMENSION -! PRGMMR: IREDELL ORG: W/NMC23 DATE: 98-05-01 -! -! ABSTRACT: INTERPOLATE FIELD(S) IN ONE DIMENSION ALONG THE COLUMN(S). -! THE INTERPOLATION IS CUBIC LAGRANGIAN WITH A MONOTONIC CONSTRAINT -! IN THE CENTER OF THE DOMAIN. IN THE OUTER INTERVALS IT IS LINEAR. -! OUTSIDE THE DOMAIN, FIELDS ARE HELD CONSTANT. -! -! PROGRAM HISTORY LOG: -! 98-05-01 MARK IREDELL -! 1999-01-04 IREDELL USE ESSL SEARCH -! -! USAGE: CALL TERP3(IM,IXZ1,IXQ1,IXZ2,IXQ2,NM,NXQ1,NXQ2, -! & KM1,KXZ1,KXQ1,Z1,Q1,KM2,KXZ2,KXQ2,Z2,Q2,J2) -! INPUT ARGUMENT LIST: -! IM INTEGER NUMBER OF COLUMNS -! IXZ1 INTEGER COLUMN SKIP NUMBER FOR Z1 -! IXQ1 INTEGER COLUMN SKIP NUMBER FOR Q1 -! IXZ2 INTEGER COLUMN SKIP NUMBER FOR Z2 -! IXQ2 INTEGER COLUMN SKIP NUMBER FOR Q2 -! NM INTEGER NUMBER OF FIELDS PER COLUMN -! NXQ1 INTEGER FIELD SKIP NUMBER FOR Q1 -! NXQ2 INTEGER FIELD SKIP NUMBER FOR Q2 -! KM1 INTEGER NUMBER OF INPUT POINTS -! KXZ1 INTEGER POINT SKIP NUMBER FOR Z1 -! KXQ1 INTEGER POINT SKIP NUMBER FOR Q1 -! Z1 REAL (1+(IM-1)*IXZ1+(KM1-1)*KXZ1) -! INPUT COORDINATE VALUES IN WHICH TO INTERPOLATE -! (Z1 MUST BE STRICTLY MONOTONIC IN EITHER DIRECTION) -! Q1 REAL (1+(IM-1)*IXQ1+(KM1-1)*KXQ1+(NM-1)*NXQ1) -! INPUT FIELDS TO INTERPOLATE -! KM2 INTEGER NUMBER OF OUTPUT POINTS -! KXZ2 INTEGER POINT SKIP NUMBER FOR Z2 -! KXQ2 INTEGER POINT SKIP NUMBER FOR Q2 -! Z2 REAL (1+(IM-1)*IXZ2+(KM2-1)*KXZ2) -! OUTPUT COORDINATE VALUES TO WHICH TO INTERPOLATE -! (Z2 NEED NOT BE MONOTONIC) -! -! OUTPUT ARGUMENT LIST: -! Q2 REAL (1+(IM-1)*IXQ2+(KM2-1)*KXQ2+(NM-1)*NXQ2) -! OUTPUT INTERPOLATED FIELDS -! J2 REAL (1+(IM-1)*IXQ2+(KM2-1)*KXQ2+(NM-1)*NXQ2) -! OUTPUT INTERPOLATED FIELDS CHANGE WRT Z2 -! -! SUBPROGRAMS CALLED: -! RSEARCH SEARCH FOR A SURROUNDING REAL INTERVAL -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - IMPLICIT NONE - INTEGER IM,IXZ1,IXQ1,IXZ2,IXQ2,NM,NXQ1,NXQ2 - INTEGER KM1,KXZ1,KXQ1,KM2,KXZ2,KXQ2 - INTEGER I,K1,K2,N - REAL Z1(1+(IM-1)*IXZ1+(KM1-1)*KXZ1) - REAL Q1(1+(IM-1)*IXQ1+(KM1-1)*KXQ1+(NM-1)*NXQ1) - REAL Z2(1+(IM-1)*IXZ2+(KM2-1)*KXZ2) - REAL Q2(1+(IM-1)*IXQ2+(KM2-1)*KXQ2+(NM-1)*NXQ2) - REAL J2(1+(IM-1)*IXQ2+(KM2-1)*KXQ2+(NM-1)*NXQ2) - REAL FFA(IM),FFB(IM),FFC(IM),FFD(IM) - REAL GGA(IM),GGB(IM),GGC(IM),GGD(IM) - INTEGER K1S(IM,KM2) - REAL Z1A,Z1B,Z1C,Z1D,Q1A,Q1B,Q1C,Q1D,Z2S,Q2S,J2S -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! FIND THE SURROUNDING INPUT INTERVAL FOR EACH OUTPUT POINT. - CALL RSEARCH(IM,KM1,IXZ1,KXZ1,Z1,KM2,IXZ2,KXZ2,Z2,1,IM,K1S) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! GENERALLY INTERPOLATE CUBICALLY WITH MONOTONIC CONSTRAINT -! FROM TWO NEAREST INPUT POINTS ON EITHER SIDE OF THE OUTPUT POINT, -! BUT WITHIN THE TWO EDGE INTERVALS INTERPOLATE LINEARLY. -! KEEP THE OUTPUT FIELDS CONSTANT OUTSIDE THE INPUT DOMAIN. - -!$OMP PARALLEL DO DEFAULT(PRIVATE) SHARED(IM,IXZ1,IXQ1,IXZ2) -!$OMP+ SHARED(IXQ2,NM,NXQ1,NXQ2,KM1,KXZ1,KXQ1,Z1,Q1,KM2,KXZ2) -!$OMP+ SHARED(KXQ2,Z2,Q2,J2,K1S) - - DO K2=1,KM2 - DO I=1,IM - K1=K1S(I,K2) - IF(K1.EQ.1.OR.K1.EQ.KM1-1) THEN - Z2S=Z2(1+(I-1)*IXZ2+(K2-1)*KXZ2) - Z1A=Z1(1+(I-1)*IXZ1+(K1-1)*KXZ1) - Z1B=Z1(1+(I-1)*IXZ1+(K1+0)*KXZ1) - FFA(I)=(Z2S-Z1B)/(Z1A-Z1B) - FFB(I)=(Z2S-Z1A)/(Z1B-Z1A) - GGA(I)=1/(Z1A-Z1B) - GGB(I)=1/(Z1B-Z1A) - ELSEIF(K1.GT.1.AND.K1.LT.KM1-1) THEN - Z2S=Z2(1+(I-1)*IXZ2+(K2-1)*KXZ2) - Z1A=Z1(1+(I-1)*IXZ1+(K1-2)*KXZ1) - Z1B=Z1(1+(I-1)*IXZ1+(K1-1)*KXZ1) - Z1C=Z1(1+(I-1)*IXZ1+(K1+0)*KXZ1) - Z1D=Z1(1+(I-1)*IXZ1+(K1+1)*KXZ1) - FFA(I)=(Z2S-Z1B)/(Z1A-Z1B)* & - (Z2S-Z1C)/(Z1A-Z1C)* & - (Z2S-Z1D)/(Z1A-Z1D) - FFB(I)=(Z2S-Z1A)/(Z1B-Z1A)* & - (Z2S-Z1C)/(Z1B-Z1C)* & - (Z2S-Z1D)/(Z1B-Z1D) - FFC(I)=(Z2S-Z1A)/(Z1C-Z1A)* & - (Z2S-Z1B)/(Z1C-Z1B)* & - (Z2S-Z1D)/(Z1C-Z1D) - FFD(I)=(Z2S-Z1A)/(Z1D-Z1A)* & - (Z2S-Z1B)/(Z1D-Z1B)* & - (Z2S-Z1C)/(Z1D-Z1C) - GGA(I)= 1/(Z1A-Z1B)* & - (Z2S-Z1C)/(Z1A-Z1C)* & - (Z2S-Z1D)/(Z1A-Z1D)+ & - (Z2S-Z1B)/(Z1A-Z1B)* & - 1/(Z1A-Z1C)* & - (Z2S-Z1D)/(Z1A-Z1D)+ & - (Z2S-Z1B)/(Z1A-Z1B)* & - (Z2S-Z1C)/(Z1A-Z1C)* & - 1/(Z1A-Z1D) - GGB(I)= 1/(Z1B-Z1A)* & - (Z2S-Z1C)/(Z1B-Z1C)* & - (Z2S-Z1D)/(Z1B-Z1D)+ & - (Z2S-Z1A)/(Z1B-Z1A)* & - 1/(Z1B-Z1C)* & - (Z2S-Z1D)/(Z1B-Z1D)+ & - (Z2S-Z1A)/(Z1B-Z1A)* & - (Z2S-Z1C)/(Z1B-Z1C)* & - 1/(Z1B-Z1D) - GGC(I)= 1/(Z1C-Z1A)* & - (Z2S-Z1B)/(Z1C-Z1B)* & - (Z2S-Z1D)/(Z1C-Z1D)+ & - (Z2S-Z1A)/(Z1C-Z1A)* & - 1/(Z1C-Z1B)* & - (Z2S-Z1D)/(Z1C-Z1D)+ & - (Z2S-Z1A)/(Z1C-Z1A)* & - (Z2S-Z1B)/(Z1C-Z1B)* & - 1/(Z1C-Z1D) - GGD(I)= 1/(Z1D-Z1A)* & - (Z2S-Z1B)/(Z1D-Z1B)* & - (Z2S-Z1C)/(Z1D-Z1C)+ & - (Z2S-Z1A)/(Z1D-Z1A)* & - 1/(Z1D-Z1B)* & - (Z2S-Z1C)/(Z1D-Z1C)+ & - (Z2S-Z1A)/(Z1D-Z1A)* & - (Z2S-Z1B)/(Z1D-Z1B)* & - 1/(Z1D-Z1C) - ENDIF - ENDDO -! INTERPOLATE. - DO N=1,NM - DO I=1,IM - K1=K1S(I,K2) - IF(K1.EQ.0) THEN - Q2S=Q1(1+(I-1)*IXQ1+(N-1)*NXQ1) - J2S=0 - ELSEIF(K1.EQ.KM1) THEN - Q2S=Q1(1+(I-1)*IXQ1+(KM1-1)*KXQ1+(N-1)*NXQ1) - J2S=0 - ELSEIF(K1.EQ.1.OR.K1.EQ.KM1-1) THEN - Q1A=Q1(1+(I-1)*IXQ1+(K1-1)*KXQ1+(N-1)*NXQ1) - Q1B=Q1(1+(I-1)*IXQ1+(K1+0)*KXQ1+(N-1)*NXQ1) - Q2S=FFA(I)*Q1A+FFB(I)*Q1B - J2S=GGA(I)*Q1A+GGB(I)*Q1B - ELSE - Q1A=Q1(1+(I-1)*IXQ1+(K1-2)*KXQ1+(N-1)*NXQ1) - Q1B=Q1(1+(I-1)*IXQ1+(K1-1)*KXQ1+(N-1)*NXQ1) - Q1C=Q1(1+(I-1)*IXQ1+(K1+0)*KXQ1+(N-1)*NXQ1) - Q1D=Q1(1+(I-1)*IXQ1+(K1+1)*KXQ1+(N-1)*NXQ1) - Q2S=FFA(I)*Q1A+FFB(I)*Q1B+FFC(I)*Q1C+FFD(I)*Q1D - J2S=GGA(I)*Q1A+GGB(I)*Q1B+GGC(I)*Q1C+GGD(I)*Q1D - IF(Q2S.LT.MIN(Q1B,Q1C)) THEN - Q2S=MIN(Q1B,Q1C) - J2S=0 - ELSEIF(Q2S.GT.MAX(Q1B,Q1C)) THEN - Q2S=MAX(Q1B,Q1C) - J2S=0 - ENDIF - ENDIF - Q2(1+(I-1)*IXQ2+(K2-1)*KXQ2+(N-1)*NXQ2)=Q2S - J2(1+(I-1)*IXQ2+(K2-1)*KXQ2+(N-1)*NXQ2)=J2S - ENDDO - ENDDO - ENDDO -!$OMP END PARALLEL DO -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - END SUBROUTINE TERP3 -!----------------------------------------------------------------------- - SUBROUTINE RSEARCH(IM,KM1,IXZ1,KXZ1,Z1,KM2,IXZ2,KXZ2,Z2,IXL2,KXL2,& - & L2) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: RSEARCH SEARCH FOR A SURROUNDING REAL INTERVAL -! PRGMMR: IREDELL ORG: W/NMC23 DATE: 98-05-01 -! -! ABSTRACT: THIS SUBPROGRAM SEARCHES MONOTONIC SEQUENCES OF REAL NUMBERS -! FOR INTERVALS THAT SURROUND A GIVEN SEARCH SET OF REAL NUMBERS. -! THE SEQUENCES MAY BE MONOTONIC IN EITHER DIRECTION; THE REAL NUMBERS -! MAY BE SINGLE OR DOUBLE PRECISION; THE INPUT SEQUENCES AND SETS -! AND THE OUTPUT LOCATIONS MAY BE ARBITRARILY DIMENSIONED. -! -! PROGRAM HISTORY LOG: -! 1999-01-05 MARK IREDELL -! -! USAGE: CALL RSEARCH(IM,KM1,IXZ1,KXZ1,Z1,KM2,IXZ2,KXZ2,Z2,IXL2,KXL2, -! & L2) -! INPUT ARGUMENT LIST: -! IM INTEGER NUMBER OF SEQUENCES TO SEARCH -! KM1 INTEGER NUMBER OF POINTS IN EACH SEQUENCE -! IXZ1 INTEGER SEQUENCE SKIP NUMBER FOR Z1 -! KXZ1 INTEGER POINT SKIP NUMBER FOR Z1 -! Z1 REAL (1+(IM-1)*IXZ1+(KM1-1)*KXZ1) -! SEQUENCE VALUES TO SEARCH -! (Z1 MUST BE MONOTONIC IN EITHER DIRECTION) -! KM2 INTEGER NUMBER OF POINTS TO SEARCH FOR -! IN EACH RESPECTIVE SEQUENCE -! IXZ2 INTEGER SEQUENCE SKIP NUMBER FOR Z2 -! KXZ2 INTEGER POINT SKIP NUMBER FOR Z2 -! Z2 REAL (1+(IM-1)*IXZ2+(KM2-1)*KXZ2) -! SET OF VALUES TO SEARCH FOR -! (Z2 NEED NOT BE MONOTONIC) -! IXL2 INTEGER SEQUENCE SKIP NUMBER FOR L2 -! KXL2 INTEGER POINT SKIP NUMBER FOR L2 -! -! OUTPUT ARGUMENT LIST: -! L2 INTEGER (1+(IM-1)*IXL2+(KM2-1)*KXL2) -! INTERVAL LOCATIONS HAVING VALUES FROM 0 TO KM1 -! (Z2 WILL BE BETWEEN Z1(L2) AND Z1(L2+1)) -! -! SUBPROGRAMS CALLED: -! SBSRCH ESSL BINARY SEARCH -! DBSRCH ESSL BINARY SEARCH -! -! REMARKS: -! IF THE ARRAY Z1 IS DIMENSIONED (IM,KM1), THEN THE SKIP NUMBERS ARE -! IXZ1=1 AND KXZ1=IM; IF IT IS DIMENSIONED (KM1,IM), THEN THE SKIP -! NUMBERS ARE IXZ1=KM1 AND KXZ1=1; IF IT IS DIMENSIONED (IM,JM,KM1), -! THEN THE SKIP NUMBERS ARE IXZ1=1 AND KXZ1=IM*JM; ETCETERA. -! SIMILAR EXAMPLES APPLY TO THE SKIP NUMBERS FOR Z2 AND L2. -! -! RETURNED VALUES OF 0 OR KM1 INDICATE THAT THE GIVEN SEARCH VALUE -! IS OUTSIDE THE RANGE OF THE SEQUENCE. -! -! IF A SEARCH VALUE IS IDENTICAL TO ONE OF THE SEQUENCE VALUES -! THEN THE LOCATION RETURNED POINTS TO THE IDENTICAL VALUE. -! IF THE SEQUENCE IS NOT STRICTLY MONOTONIC AND A SEARCH VALUE IS -! IDENTICAL TO MORE THAN ONE OF THE SEQUENCE VALUES, THEN THE -! LOCATION RETURNED MAY POINT TO ANY OF THE IDENTICAL VALUES. -! -! TO BE EXACT, FOR EACH I FROM 1 TO IM AND FOR EACH K FROM 1 TO KM2, -! Z=Z2(1+(I-1)*IXZ2+(K-1)*KXZ2) IS THE SEARCH VALUE AND -! L=L2(1+(I-1)*IXL2+(K-1)*KXL2) IS THE LOCATION RETURNED. -! IF L=0, THEN Z IS LESS THAN THE START POINT Z1(1+(I-1)*IXZ1) -! FOR ASCENDING SEQUENCES (OR GREATER THAN FOR DESCENDING SEQUENCES). -! IF L=KM1, THEN Z IS GREATER THAN OR EQUAL TO THE END POINT -! Z1(1+(I-1)*IXZ1+(KM1-1)*KXZ1) FOR ASCENDING SEQUENCES -! (OR LESS THAN OR EQUAL TO FOR DESCENDING SEQUENCES). -! OTHERWISE Z IS BETWEEN THE VALUES Z1(1+(I-1)*IXZ1+(L-1)*KXZ1) AND -! Z1(1+(I-1)*IXZ1+(L-0)*KXZ1) AND MAY EQUAL THE FORMER. -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ -! IMPLICIT NONE -! INTEGER,INTENT(IN):: IM,KM1,IXZ1,KXZ1,KM2,IXZ2,KXZ2,IXL2,KXL2 -! REAL,INTENT(IN):: Z1(1+(IM-1)*IXZ1+(KM1-1)*KXZ1) -! REAL,INTENT(IN):: Z2(1+(IM-1)*IXZ2+(KM2-1)*KXZ2) -! INTEGER,INTENT(OUT):: L2(1+(IM-1)*IXL2+(KM2-1)*KXL2) -! INTEGER(4) INCX,N,INCY,M,INDX(KM2),RC(KM2),IOPT -! INTEGER I,K2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! FIND THE SURROUNDING INPUT INTERVAL FOR EACH OUTPUT POINT. -! DO I=1,IM -! IF(Z1(1+(I-1)*IXZ1).LE.Z1(1+(I-1)*IXZ1+(KM1-1)*KXZ1)) THEN -! INPUT COORDINATE IS MONOTONICALLY ASCENDING. -! INCX=KXZ2 -! N=KM2 -! INCY=KXZ1 -! M=KM1 -! IOPT=1 -! IF(DIGITS(1.).LT.DIGITS(1._8)) THEN -! CALL SBSRCH(Z2(1+(I-1)*IXZ2),INCX,N, -! & Z1(1+(I-1)*IXZ1),INCY,M,INDX,RC,IOPT) -! ELSE -! CALL DBSRCH(Z2(1+(I-1)*IXZ2),INCX,N, -! & Z1(1+(I-1)*IXZ1),INCY,M,INDX,RC,IOPT) -! ENDIF -! DO K2=1,KM2 -! L2(1+(I-1)*IXL2+(K2-1)*KXL2)=INDX(K2)-RC(K2) -! ENDDO -! ELSE -! INPUT COORDINATE IS MONOTONICALLY DESCENDING. -! INCX=KXZ2 -! N=KM2 -! INCY=-KXZ1 -! M=KM1 -! IOPT=0 -! IF(DIGITS(1.).LT.DIGITS(1._8)) THEN -! CALL SBSRCH(Z2(1+(I-1)*IXZ2),INCX,N, -! & Z1(1+(I-1)*IXZ1),INCY,M,INDX,RC,IOPT) -! ELSE -! CALL DBSRCH(Z2(1+(I-1)*IXZ2),INCX,N, -! & Z1(1+(I-1)*IXZ1),INCY,M,INDX,RC,IOPT) -! ENDIF -! DO K2=1,KM2 -! L2(1+(I-1)*IXL2+(K2-1)*KXL2)=KM1+1-INDX(K2) -! ENDDO -! ENDIF -! ENDDO -! - IMPLICIT NONE - INTEGER,INTENT(IN):: IM,KM1,IXZ1,KXZ1,KM2,IXZ2,KXZ2,IXL2,KXL2 - REAL,INTENT(IN):: Z1(1+(IM-1)*IXZ1+(KM1-1)*KXZ1) - REAL,INTENT(IN):: Z2(1+(IM-1)*IXZ2+(KM2-1)*KXZ2) - INTEGER,INTENT(OUT):: L2(1+(IM-1)*IXL2+(KM2-1)*KXL2) - INTEGER I,K2,L - REAL Z -!C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -!C FIND THE SURROUNDING INPUT INTERVAL FOR EACH OUTPUT POINT. - DO I=1,IM - IF(Z1(1+(I-1)*IXZ1).LE.Z1(1+(I-1)*IXZ1+(KM1-1)*KXZ1)) THEN -!C INPUT COORDINATE IS MONOTONICALLY ASCENDING. - DO K2=1,KM2 - Z=Z2(1+(I-1)*IXZ2+(K2-1)*KXZ2) - L=0 - DO - IF(Z.LT.Z1(1+(I-1)*IXZ1+L*KXZ1)) EXIT - L=L+1 - IF(L.EQ.KM1) EXIT - ENDDO - L2(1+(I-1)*IXL2+(K2-1)*KXL2)=L - ENDDO - ELSE -!C INPUT COORDINATE IS MONOTONICALLY DESCENDING. - DO K2=1,KM2 - Z=Z2(1+(I-1)*IXZ2+(K2-1)*KXZ2) - L=0 - DO - IF(Z.GT.Z1(1+(I-1)*IXZ1+L*KXZ1)) EXIT - L=L+1 - IF(L.EQ.KM1) EXIT - ENDDO - L2(1+(I-1)*IXL2+(K2-1)*KXL2)=L - ENDDO - ENDIF - ENDDO - - END SUBROUTINE RSEARCH -!----------------------------------------------------------------------- - SUBROUTINE SPPAD(I1,M1,Q1,I2,M2,Q2) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: SPPAD PAD OR TRUNCATE A SPECTRAL FIELD -! PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-10-31 -! -! ABSTRACT: PAD OR TRUNCATE A SPECTRAL FIELD -! -! PROGRAM HISTORY LOG: -! 91-10-31 MARK IREDELL -! -! USAGE: CALL SPPAD(I1,M1,Q1,I2,M2,Q2) -! -! INPUT ARGUMENT LIST: -! I1 - INTEGER INPUT SPECTRAL DOMAIN SHAPE -! (0 FOR TRIANGULAR, 1 FOR RHOMBOIDAL) -! M1 - INTEGER INPUT SPECTRAL TRUNCATION -! Q1 - REAL ((M+1)*((I+1)*M+2)) INPUT FIELD -! I2 - INTEGER OUTPUT SPECTRAL DOMAIN SHAPE -! (0 FOR TRIANGULAR, 1 FOR RHOMBOIDAL) -! M2 - INTEGER OUTPUT SPECTRAL TRUNCATION -! -! OUTPUT ARGUMENT LIST: -! Q2 - REAL ((M+1)*((I+1)*M+2)) OUTPUT FIELD -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - REAL Q1((M1+1)*((I1+1)*M1+2)) - REAL Q2((M2+1)*((I2+1)*M2+2)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DO L=0,M2 - DO N=L,I2*L+M2 - KS2=L*(2*M2+(I2-1)*(L-1))+2*N - IF(L.LE.M1.AND.N.LE.I1*L+M1) THEN - KS1=L*(2*M1+(I1-1)*(L-1))+2*N - Q2(KS2+1)=Q1(KS1+1) - Q2(KS2+2)=Q1(KS1+2) - ELSE - Q2(KS2+1)=0 - Q2(KS2+2)=0 - ENDIF - ENDDO - ENDDO -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RETURN - END SUBROUTINE SPPAD - SUBROUTINE SPECSETS(H,D,IDRT) -!----------------------------------------------------------------------- -!$$$ Subprogram documentation block -! -! Subprogram: specsets Create special tracer sets -! Prgmmr: Iredell Org: W/NP23 Date: 2004-09-24 -! -! Abstract: This subprogram optionally augments the tracers -! in the global model initial conditions if special tracer set -! are requested, based on the value of the tracer variable ID. -! -! Program history log: -! 2004-09-24 Iredell -! -! Modules used: -! sigio_module global model sigma file types and I/O -! -! Usage: call specsets(h,d,idrt) -! Input arguments: -! h type(sigio_head) sigma file header -! ak -! bk -! idsl -! idvc -! idvt -! jcap -! latb -! levs -! lonb -! ntrac -! si -! d type(sigio_data) sigma file data -! hs -! ps -! t -! d -! z -! q -! -! Output arguments: -! d type(sigio_data) sigma file data -! q -! -! Attributes: -! Language: Fortran90 -! -! Remarks: -! Pertinent values of h%idvt and h%ntrac -! idvt ntrac -! 100 20 set 1: vapor,ozone,cloud, and initial values of -! clat*clon,clat*slon,slat, -! v*slon-u*slat*clon,-v*clon-u*slat*slon,u*clat -! one,k,sigma,ps,pres,temp,entropy,moist entropy -! vapor,ozone,cloud -! -!C$$$ - use sigio_module - implicit none - type(sigio_head),intent(in):: h - type(sigio_dbta),intent(inout):: d - integer, intent(in) :: idrt - real,dimension(h%latb):: slat,wlat - real,dimension(h%lonb,h%latb):: hs,ps - real,dimension(h%lonb,h%latb,h%levs):: pm,pd - real,dimension(h%lonb,h%latb,h%levs):: t,u,v - real,dimension(h%lonb,h%latb,h%levs,h%ntrac):: q - real clat,rlon - real, allocatable :: vcoord(:,:) - - integer i,j,k,iret -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call splat(idrt,h%latb,slat,wlat) - call sptez(0,h%jcap,idrt,h%lonb,h%latb,d%hs,hs,+1) - call sptez(0,h%jcap,idrt,h%lonb,h%latb,d%ps,ps,+1) - call sptezm(0,h%jcap,idrt,h%lonb,h%latb,h%levs,d%t,t,+1) - call sptezmv(0,h%jcap,idrt,h%lonb,h%latb,h%levs,d%d,d%z,u,v,+1) - call sptezm(0,h%jcap,idrt,h%lonb,h%latb,h%levs*3,d%q,q,+1) - ps=1.e3*exp(ps) - t=t/(1.+(461.50/287.05-1)*q(:,:,:,1)) - allocate(vcoord(h%levs+1,h%nvcoord)) - vcoord = h%vcoord - call sigio_modprd(h%lonb*h%latb,h%lonb*h%latb,h%levs,h%nvcoord, & - h%idvc,h%idsl,vcoord,iret, & - ps=ps,t=t,pm=pm,pd=pd) - deallocate (vcoord) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if(h%idvt==100.and.h%ntrac==20) then -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(i,j,clat,rlon,k) - do j=1,h%latb - clat=sqrt(1-slat(j)**2) - do i=1,h%lonb - rlon=2*acos(-1.)*(i-1)/h%lonb - q(i,j,:,4)=clat*cos(rlon) - q(i,j,:,5)=clat*sin(rlon) - q(i,j,:,6)=slat(j) - q(i,j,:,7)=v(i,j,:)*sin(rlon)-u(i,j,:)*slat(j)*cos(rlon) - q(i,j,:,8)=-v(i,j,:)*cos(rlon)-u(i,j,:)*slat(j)*sin(rlon) - q(i,j,:,9)=u(i,j,:)*clat - q(i,j,:,10)=1 - q(i,j,:,11)=(/(k,k=1,h%levs)/) - q(i,j,:,12)=pm(i,j,:)/ps(i,j) - q(i,j,:,13)=ps(i,j) - q(i,j,:,14)=pm(i,j,:) - q(i,j,:,15)=t(i,j,:) - call dothe(1,1,h%levs,pm(i,j,:),t(i,j,:),q(i,j,:,1), & - q(i,j,:,16),q(i,j,:,17)) - q(i,j,:,16)=1004.6*log(q(i,j,:,16)/273.15) - q(i,j,:,17)=1004.6*log(q(i,j,:,17)/273.15) - q(i,j,:,18)=q(i,j,:,1) - q(i,j,:,19)=q(i,j,:,2) - q(i,j,:,20)=q(i,j,:,3) - enddo - enddo -!$OMP END PARALLEL DO - call sptezm(0,h%jcap,idrt,h%lonb,h%latb,h%levs*(h%ntrac-3), & - d%q(1,1,4),q(1,1,1,4),-1) - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine specsets -!----------------------------------------------------------------------- - subroutine dothe(im,ix,km,p,t,q,th,the) - use physcons - use funcphys - implicit none - integer,intent(in):: im,ix,km - real,intent(in):: p(ix,km),t(ix,km),q(ix,km) - real,intent(out):: th(ix,km),the(ix,km) - integer i,k - real(krealfp) pr,tr,qr - real(krealfp) qminr,elr,pvr,tdpdr,tlclr,pklclr -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! potential temperature - do k=1,km - do i=1,im - pr=p(i,k) - tr=t(i,k) - th(i,k)=tr/fpkapx(pr) - enddo - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! equivalent potential temperature - qminr=1.e-6 - do k=1,km - do i=1,im - pr=p(i,k) - tr=t(i,k) - qr=q(i,k) - if(qr.lt.qminr) then - elr=con_hvap+con_dldt*(tr-con_ttp) - elr=elr*exp(-con_dldt/con_cp*(qminr-qr)) - tr=(elr-con_hvap)/con_dldt+con_ttp - qr=qminr - endif - pvr=pr*qr/(con_eps-con_epsm1*qr) - tdpdr=tr-ftdpx(pvr) - tlclr=ftlclx(tr,tdpdr) - pklclr=fpkapx(pr)*tlclr/tr - the(i,k)=fthex(tlclr,pklclr) - enddo - enddo - end subroutine dothe -!----------------------------------------------------------------------- - SUBROUTINE NEWPR1(IM,IX,KM,KMP,IDVC,IDVM,IDSL,NVCOORD,VCOORD, & - & RI, CPI, NTRACM,PP,TP,QP,PS,PM,DP) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: NEWPR1 COMPUTE MODEL PRESSURES -! PRGMMR: JUANG ORG: W/NMC23 DATE: 2005-04-11 -! PRGMMR: Fanglin Yang ORG: W/NMC23 DATE: 2006-11-28 -! PRGMMR: S. Moorthi ORG: NCEP/EMC DATE: 2006-12-12 -! PRGMMR: S. Moorthi ORG: NCEP/EMC DATE: 2007-01-02 -! -! ABSTRACT: COMPUTE MODEL PRESSURES. -! -! PROGRAM HISTORY LOG: -! 2005-04-11 HANN_MING HENRY JUANG hybrid sigma, sigma-p, and sigma- -! -! USAGE: CALL NEWPR1(IM,IX,KM,KMP,IDVC,IDSL,NVCOORD,VCOORD,PP,TP,QP,P -! INPUT ARGUMENT LIST: -! IM INTEGER NUMBER OF POINTS TO COMPUTE -! IX INTEGER FIRST DIMENSION -! KM INTEGER NUMBER OF LEVELS -! KMP INTEGER NUMBER OF OLD LEVELS -! IDVC INTEGER VERTICAL COORDINATE ID -! (1 FOR SIGMA AND 2 FOR HYBRID) -! IDSL INTEGER TYPE OF SIGMA STRUCTURE -! (1 FOR PHILLIPS OR 2 FOR MEAN) -! NVCOORD INTEGER NUMBER OF VERTICAL COORDINATES -! VCOORD REAL (KM+1,NVCOORD) VERTICAL COORDINATE VALUES -! FOR IDVC=1, NVCOORD=1: SIGMA INTERFACE -! FOR IDVC=2, NVCOORD=2: HYBRID INTERFACE A AND B -! FOR IDVC=3, NVCOORD=3: JUANG GENERAL HYBRID INTERFACE -! AK REAL (KM+1) HYBRID INTERFACE A -! BK REAL (KM+1) HYBRID INTERFACE B -! CK REAL (KM+1) HYBRID INTERFACE C -! PP REAL (IX,KM) OLD PRESSURE -! TP REAL (IX,KM) OLD TEMPERATURE -! QP REAL (IX,KM) OLD SPECIFIC HUMIDITY -! PS REAL (IX) SURFACE PRESSURE (PA) -! OUTPUT ARGUMENT LIST: -! PM REAL (IX,KM) MID-LAYER PRESSURE (PA) -! DP REAL (IX,KM) LAYER DELTA PRESSURE (PA) -! TEMPORARY -! PI REAL (IX,KM+1) INTERFACE PRESSURE (PA) -! SI REAL (KM+1) SIGMA INTERFACE VALUES (IDVC=1) -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - IMPLICIT NONE - REAL, PARAMETER :: RD=287.05, RV=461.50, CP=1004.6, & - ROCP=RD/CP, ROCP1=ROCP+1, ROCPR=1/ROCP, & - FV=RV/RD-1. - integer im, ix, km, kmp, idvc, idvm, idsl, nvcoord, ntracm - real ri(0:ntracm), cpi(0:ntracm) - REAL SI(KM+1),AK(KM+1),BK(KM+1),CK(KM+1) - REAL VCOORD(KM+1,NVCOORD) - REAL PS(IX),PI(IX,KM+1),PM(IX,KM) - REAL DP(IX,KM) - REAL PP(IX,KMP),TP(IX,KMP),QP(IX,KMP,NTRACM) - REAL PO(KMP),TO(KMP),QO(KMP,ntracm) - REAL PN(KM ),TN(KM ),QN(KM,ntracm ), AKBKPS(KM) - REAL TOV(KM),TRK,PIO(KM+1) -! - real xcp, sumq, xcp2, sumq2, temu, temd, converg, dpmin, & - dpminall, tvu, tvd, tem, tem1, cp0i, qnk - integer sfcpress_id, thermodyn_id, i, k, n, nit -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sfcpress_id = mod(IDVM,1) - thermodyn_id = mod(IDVM/10,10) - ! hmhj for s-t - IF(IDVC.EQ.3) THEN - DO K=1,KM - AK(K) = VCOORD(K,1) - BK(K) = VCOORD(K,2) - CK(K) = VCOORD(K,3) - TOV(K) = 300.0 - ENDDO - PI(1:IM,1) = PS(1:IM) - PI(1:IM,KM+1) = 0.0 -! -! first guess : assume KMP=KM -! - if (thermodyn_id <= 1) then -!!$OMP PARALLEL DO DEFAULT(PRIVATE) SHARED(KM,kmp,IM) -!!$OMP+ SHARED(qn,qp,TOV,PI,AK,BK,PS,CK) -!$omp parallel do shared(km,kmp,im,qp,tp,tov,pi,ak,bk,ck) -!$omp1 private(i,k,tem,qnk,trk) - DO K=2,KM - tem = float(k-1) / float(kmp-1) - DO I=1,IM - qnk = qp(i,1,1) + (qp(i,kmp,1)-qp(i,1,1))*TEM - TRK = (TP(I,K)*(1.0+FV*QNK)/TOV(K)) ** ROCPR - ! p at interface - PI(I,K) = AK(K) + BK(K)*PS(I) + CK(K)*TRK - ENDDO - ENDDO -!!$OMP END PARALLEL DO - elseif (thermodyn_id == 3) then - cp0i = 1.0 / cpi(0) - DO K=2,KM - tem = float(k-1) / float(kmp-1) - DO I=1,IM - xcp = 0.0 - sumq = 0.0 - do n=1,NTRACM - qn(k,n) = qp(i,1,n) + (qp(i,kmp,n)-qp(i,1,n))*TEM - if( cpi(n).ne.0.0 ) then - xcp = xcp + cpi(n)*qn(k,n) - sumq = sumq + qn(k,n) - endif - enddo - xcp = (1.-sumq) + xcp * cp0i - tem1 = tp(i,1) + (tp(i,kmp)-tp(i,1))*tem - trk = (tem1*xcp/tov(k)) ** ROCPR - ! p at interface - PI(I,K) = AK(K) + BK(K)*PS(I) + CK(K)*TRK - enddo - enddo - endif - - DPMINALL=1000.0 -!$omp parallel do -!$omp1 shared(im,km,kmp,ntracm,thermodyn_id,pp,tp,qp,cpi,cp0i) -!$omp1 shared(ak,bk,ck,pi) -!$omp1 private(i,k,nit,converg,dpmin,tvu,tvd,trk) -!$omp1 private(pio,po,to,qo,pn,tn,qn,akbkps) -!$omp1 private(xcp,xcp2,sumq,sumq2,temu,temd) -! - DO I=1,IM - DO K=1,KMP - PO(K) = PP(I,K) - TO(K) = TP(I,K) - QO(K,:) = QP(I,K,:) - ENDDO - do k=2,km - akbkps(k) = ak(k) + bk(k)*ps(i) - enddo -! iteration - ! default number of iterations - DO Nit=1,400 - CONVERG = 0.0 - DPMIN = 1000.0 - DO K=1,KM+1 - PIO(K) = PI(I,K) - ENDDO - DO K=1,KM - PN(K) = 0.5*(PIO(K)+PIO(K+1)) - ENDDO -! do interpolation by the intrinsic method to get TN and QN - if (thermodyn_id <= 1) then - CALL VINTTQ(KMP,KM,PO,TO,QO(1,1),PN,TN,QN(1,1)) - DO K=2,KM - TVU = TN(K )*(1.0+FV*QN(K,1)) - TVD = TN(K-1)*(1.0+FV*QN(K-1,1)) - TRK = ((TVD+TVU)/(TOV(K-1)+TOV(K))) ** ROCPR - PI(I,K) = AKBKPS(K) + CK(K)*TRK - CONVERG = MAX(CONVERG,ABS(PI(I,K)-PIO(K)) & - /(PI(I,K)+PIO(K))) - ! make it converged faster - PI(I,K) = 0.5*(PI(I,K)+PIO(K)) - DPMIN = MIN(DPMIN,PI(I,K-1)-PI(I,K)) - ENDDO - elseif (thermodyn_id == 3) then - CALL VINTTR(1,1,KMP,KM,NTRACM,PO,TO,QO,PN,TN,QN) - DO K=2,KM - xcp = 0.0 - xcp2 = 0.0 - sumq = 0.0 - sumq2 = 0.0 - do n=1,NTRACM - if( cpi(n).ne.0.0 ) then - xcp = xcp + cpi(n)*qn(k,n) - sumq = sumq + qn(k,n) - xcp2 = xcp2 + cpi(n)*qn(k-1,n) - sumq2 = sumq2 + qn(k-1,n) - endif - enddo - temu = (1.-sumq) + xcp*cp0i - temd = (1.-sumq2) + xcp2*cp0i - trk = ((tn(k)*temu + tn(k-1)*temd) & - / (TOV(K) + TOV(K-1))) ** ROCPR - PI(I,K) = AKBKPS(K) + CK(K)*TRK - CONVERG = MAX(CONVERG,ABS(PI(I,K)-PIO(K)) & - /(PI(I,K)+PIO(K))) - ! make it converged f - PI(I,K) = 0.5*(PI(I,K)+PIO(K)) - DPMIN = MIN(DPMIN,PI(I,K-1)-PI(I,K)) - ENDDO -! if (i .eq. 1) print *,' converg=',converg,' nit=',nit - endif - IF( CONVERG.LE.1.E-6 ) GOTO 100 - ENDDO - 100 CONTINUE -! PRINT *,'I=',I,' CONVERGED AT',Nit,' ITERATIONS',' DPMIN=' -! &, DPMIN - DPMINALL = MIN(DPMINALL,DPMIN) - ENDDO -!!$OMP END PARALLEL DO -! PRINT *,' ---- THE MINIMUM DP FOR A GROUP IS ',DPMINALL - ELSE IF(IDVC.EQ.2) THEN - DO K=1,KM+1 - AK(K) = VCOORD(K,1) - BK(K) = VCOORD(K,2) - PI(1:IM,K) = AK(K) + BK(K)*PS(1:IM) - ENDDO - ELSE - DO K=1,KM+1 - SI(K) = VCOORD(K,1) - PI(1:IM,K) = SI(K)*PS(1:IM) - ENDDO - ENDIF -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IF(IDSL.EQ.2) THEN - DO K=1,KM - PM(1:IM,K) = (PI(1:IM,K)+PI(1:IM,K+1))/2 - ENDDO - ELSE -!$OMP PARALLEL DO DEFAULT(PRIVATE) SHARED(KM,PM,IM,PI) - DO K=1,KM - PM(1:IM,K) = ((PI(1:IM,K)**ROCP1-PI(1:IM,K+1)**ROCP1)/ & - (ROCP1*(PI(1:IM,K)-PI(1:IM,K+1))))**ROCPR - ENDDO -!$OMP END PARALLEL DO - ENDIF -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DO K=1,KM - DO I=1,IM - DP(I,K) = PI(I,K) - PI(I,K+1) - ENDDO - ENDDO -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - END SUBROUTINE NEWPR1 -!----------------------------------------------------------------------- - SUBROUTINE CHECKDP(IM,IX,KM,AK,BK,CK,PS,TP,QP) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: CHECKDP COMPUTE MODEL PRESSURES -! PRGMMR: JUANG ORG: W/NMC23 DATE: 2005-04-11 -! -! ABSTRACT: CHECK THICKNESS FOR SIGMA-THETA COORDINATE -! -! PROGRAM HISTORY LOG: -! 2005-04-11 HANN_MING HENRY JUANG hybrid sigma, sigma-p, and sigma- -! -! INPUT ARGUMENT LIST: -! IM INTEGER NUMBER OF POINTS TO COMPUTE -! IX INTEGER FIRST DIMENSION -! KM INTEGER NUMBER OF LEVELS -! AK REAL (KM+1) HYBRID INTERFACE A -! BK REAL (KM+1) HYBRID INTERFACE B -! CK REAL (KM+1) HYBRID INTERFACE C -! TP REAL (IX,KM) OLD TEMPERATURE -! QP REAL (IX,KM) OLD SPECIFIC HUMIDITY -! PS REAL (IX) SURFACE PRESSURE (PA) -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - IMPLICIT NONE - INTEGER IM,IX,KM - REAL,PARAMETER :: RD=287.05,RV=461.50,CP=1004.6 - REAL,PARAMETER :: ROCP=RD/CP,ROCP1=ROCP+1,ROCPR=1./ROCP, & - FV=RV/RD-1. - REAL AK(KM+1),BK(KM+1),CK(KM+1),PS(IX) - REAL TP(IX,KM),QP(IX,KM),PI(IM,KM+1) - REAL TOV(KM),TRK,TVU,TVD - INTEGER K,I,KMIN - REAL DPMIN,FTV,AT,AQ -! - FTV(AT,AQ)=AT*(1+FV*AQ) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DO K=1,KM - TOV(K) = 300.0 - ENDDO - PI(1:IM,1)=PS(1:IM) - PI(1:IM,KM+1)=0.0 -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(K,I,TVU,TVD,TRK) - DO K=2,KM - DO I=1,IM - TVU=FTV(TP(I,K ),QP(I,K )) - TVD=FTV(TP(I,K-1),QP(I,K-1)) - TRK = (TVD+TVU)/(TOV(K-1)+TOV(K)) - TRK = TRK ** ROCPR - PI(I,K)=AK(K)+BK(K)*PS(I)+CK(K)*TRK - ENDDO - ENDDO -!$OMP END PARALLEL DO - - DO I=1,IM - DPMIN=1000. - DO K=1,KM - IF( PI(I,K)-PI(I,K+1) .LT. DPMIN ) THEN - KMIN=K - DPMIN=PI(I,K)-PI(I,K+1) - ENDIF - ENDDO - IF( DPMIN.LT.0.0 )PRINT *,' I KMIN DPMIN ',I,KMIN,DPMIN - ENDDO - RETURN - END SUBROUTINE CHECKDP -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SUBROUTINE VINTTQ(KM1,KM2,P1,T1,Q1,P2,T2,Q2) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: VINTTQ VERTICALLY INTERPOLATE UPPER-AIR T AND Q -! PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-10-31 -! -! ABSTRACT: VERTICALLY INTERPOLATE UPPER-AIR FIELDS. -! WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS ARE INTERPOLATED. -! THE INTERPOLATION IS CUBIC LAGRANGIAN IN LOG PRESSURE -! WITH A MONOTONIC CONSTRAINT IN THE CENTER OF THE DOMAIN. -! IN THE OUTER INTERVALS IT IS LINEAR IN LOG PRESSURE. -! OUTSIDE THE DOMAIN, FIELDS ARE GENERALLY HELD CONSTANT, -! EXCEPT FOR TEMPERATURE AND HUMIDITY BELOW THE INPUT DOMAIN, -! WHERE THE TEMPERATURE LAPSE RATE IS HELD FIXED AT -6.5 K/KM AND -! THE RELATIVE HUMIDITY IS HELD CONSTANT. -! -! PROGRAM HISTORY LOG: -! 1991-10-31 MARK IREDELL -! 2005-08-31 Henry JUANG MODIFIED IT TO DO T AND Q FROM VINTG -! -! USAGE: CALL VINTTQ(IM,IX,KM1,KM2,P1,T1,Q1,P2,T2,Q2) -! INPUT ARGUMENT LIST: -! KM1 INTEGER NUMBER OF INPUT LEVELS -! KM2 INTEGER NUMBER OF OUTPUT LEVELS -! P1 REAL (IX,KM1) INPUT PRESSURES -! ORDERED FROM BOTTOM TO TOP OF ATMOSPHERE -! T1 REAL (IX,KM1) INPUT TEMPERATURE (K) -! Q1 REAL (IX,KM1,NT) INPUT TRACERS (HUMIDITY FIRST) -! P2 REAL (IX,KM2) OUTPUT PRESSURES -! OUTPUT ARGUMENT LIST: -! T2 REAL (IX,KM2) OUTPUT TEMPERATURE (K) -! Q2 REAL (IX,KM2,NT) OUTPUT TRACERS (HUMIDITY FIRST) -! -! SUBPROGRAMS CALLED: -! TERP3_HJ CUBICALLY INTERPOLATE IN ONE DIMENSION -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - IMPLICIT NONE - INTEGER KM1,KM2 - REAL P1(KM1),T1(KM1),Q1(KM1) - REAL P2(KM2),T2(KM2),Q2(KM2) - REAL,PARAMETER :: DLTDZ=-6.5E-3*287.05/9.80665 - REAL,PARAMETER :: DLPVDRT=-2.5E6/461.50 - REAL Z1(2,KM1),Z2(2,KM2) - REAL C1(2,KM1,2),C2(2,KM2,2) - INTEGER K - REAL DZ -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! COMPUTE LOG PRESSURE INTERPOLATING COORDINATE -! AND COPY INPUT WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(K) - DO K=1,KM1 - Z1(1,K)=-LOG(P1(K)) - C1(1,K,1)=T1(K) - C1(1,K,2)=Q1(K) - ENDDO -!$OMP END PARALLEL DO -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(K) - DO K=1,KM2 - Z2(1,K)=-LOG(P2(K)) - ENDDO -!$OMP END PARALLEL DO -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! PERFORM LAGRANGIAN ONE-DIMENSIONAL INTERPOLATION -! THAT IS 4TH-ORDER IN INTERIOR, 2ND-ORDER IN OUTSIDE INTERVALS -! AND 1ST-ORDER FOR EXTRAPOLATION. - CALL TERP3_HJ(1,1,1,1,1,2,2*KM1,2*KM2, & - KM1,2,2,Z1,C1,KM2,2,2,Z2,C2) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! COPY OUTPUT WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS -! EXCEPT BELOW THE INPUT DOMAIN, LET TEMPERATURE INCREASE WITH A FIXED -! LAPSE RATE AND LET THE RELATIVE HUMIDITY REMAIN CONSTANT. - DO K=1,KM2 - DZ=Z2(1,K)-Z1(1,1) - IF(DZ.GE.0) THEN - T2(K)=C2(1,K,1) - Q2(K)=C2(1,K,2) - ELSE - T2(K)=T1(1)*EXP(DLTDZ*DZ) - Q2(K)=Q1(1)*EXP(DLPVDRT*(1/T2(K)-1/T1(1))-DZ) - ENDIF - ENDDO - END SUBROUTINE VINTTQ -!----------------------------------------------------------------------- - SUBROUTINE TERP3_HJ(IM,IXZ1,IXQ1,IXZ2,IXQ2,NM,NXQ1,NXQ2, & - KM1,KXZ1,KXQ1,Z1,Q1,KM2,KXZ2,KXQ2,Z2,Q2) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: TERP3_HJ CUBICALLY INTERPOLATE IN ONE DIMENSION -! PRGMMR: IREDELL ORG: W/NMC23 DATE: 98-05-01 -! -! ABSTRACT: INTERPOLATE FIELD(S) IN ONE DIMENSION ALONG THE COLUMN(S). -! THE INTERPOLATION IS CUBIC LAGRANGIAN WITH A MONOTONIC CONSTRAINT -! IN THE CENTER OF THE DOMAIN. IN THE OUTER INTERVALS IT IS LINEAR. -! OUTSIDE THE DOMAIN, FIELDS ARE HELD CONSTANT. -! -! PROGRAM HISTORY LOG: -! 98-05-01 MARK IREDELL -! 1999-01-04 IREDELL USE ESSL SEARCH -! 2006-11-10 SIMPLIFIED VERSION OF TERP3 -! -! USAGE: CALL TERP3_HJ(IM,IXZ1,IXQ1,IXZ2,IXQ2,NM,NXQ1,NXQ2, -! & KM1,KXZ1,KXQ1,Z1,Q1,KM2,KXZ2,KXQ2,Z2,Q2) -! INPUT ARGUMENT LIST: -! IM INTEGER NUMBER OF COLUMNS -! IXZ1 INTEGER COLUMN SKIP NUMBER FOR Z1 -! IXQ1 INTEGER COLUMN SKIP NUMBER FOR Q1 -! IXZ2 INTEGER COLUMN SKIP NUMBER FOR Z2 -! IXQ2 INTEGER COLUMN SKIP NUMBER FOR Q2 -! NM INTEGER NUMBER OF FIELDS PER COLUMN -! NXQ1 INTEGER FIELD SKIP NUMBER FOR Q1 -! NXQ2 INTEGER FIELD SKIP NUMBER FOR Q2 -! KM1 INTEGER NUMBER OF INPUT POINTS -! KXZ1 INTEGER POINT SKIP NUMBER FOR Z1 -! KXQ1 INTEGER POINT SKIP NUMBER FOR Q1 -! Z1 REAL (1+(IM-1)*IXZ1+(KM1-1)*KXZ1) -! INPUT COORDINATE VALUES IN WHICH TO INTERPOLATE -! (Z1 MUST BE STRICTLY MONOTONIC IN EITHER DIRECTION) -! Q1 REAL (1+(IM-1)*IXQ1+(KM1-1)*KXQ1+(NM-1)*NXQ1) -! INPUT FIELDS TO INTERPOLATE -! KM2 INTEGER NUMBER OF OUTPUT POINTS -! KXZ2 INTEGER POINT SKIP NUMBER FOR Z2 -! KXQ2 INTEGER POINT SKIP NUMBER FOR Q2 -! Z2 REAL (1+(IM-1)*IXZ2+(KM2-1)*KXZ2) -! OUTPUT COORDINATE VALUES TO WHICH TO INTERPOLATE -! (Z2 NEED NOT BE MONOTONIC) -! -! OUTPUT ARGUMENT LIST: -! Q2 REAL (1+(IM-1)*IXQ2+(KM2-1)*KXQ2+(NM-1)*NXQ2) -! OUTPUT INTERPOLATED FIELDS -! -! SUBPROGRAMS CALLED: -! RSEARCH SEARCH FOR A SURROUNDING REAL INTERVAL -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - IMPLICIT NONE - INTEGER IM,IXZ1,IXQ1,IXZ2,IXQ2,NM,NXQ1,NXQ2,KM1,KXZ1,KXQ1, & - KM2,KXZ2,KXQ2 - REAL Z1(1+(IM-1)*IXZ1+(KM1-1)*KXZ1) - REAL Q1(1+(IM-1)*IXQ1+(KM1-1)*KXQ1+(NM-1)*NXQ1) - REAL Z2(1+(IM-1)*IXZ2+(KM2-1)*KXZ2) - REAL Q2(1+(IM-1)*IXQ2+(KM2-1)*KXQ2+(NM-1)*NXQ2) - REAL FFA(IM),FFB(IM),FFC(IM),FFD(IM) - INTEGER K1S(IM,KM2) - REAL Q2S,Q1A,Q1B,Q1C,Q1D,Z2S,Z1A,Z1B,Z1C,Z1D - INTEGER I,K1,K2,N -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! FIND THE SURROUNDING INPUT INTERVAL FOR EACH OUTPUT POINT. - CALL RSEARCH(IM,KM1,IXZ1,KXZ1,Z1,KM2,IXZ2,KXZ2,Z2,1,IM,K1S) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! GENERALLY INTERPOLATE CUBICALLY WITH MONOTONIC CONSTRAINT -! FROM TWO NEAREST INPUT POINTS ON EITHER SIDE OF THE OUTPUT POINT, -! BUT WITHIN THE TWO EDGE INTERVALS INTERPOLATE LINEARLY. -! KEEP THE OUTPUT FIELDS CONSTANT OUTSIDE THE INPUT DOMAIN. - DO K2=1,KM2 - DO I=1,IM - K1=K1S(I,K2) - IF(K1.EQ.1.OR.K1.EQ.KM1-1) THEN - Z2S=Z2(1+(I-1)*IXZ2+(K2-1)*KXZ2) - Z1A=Z1(1+(I-1)*IXZ1+(K1-1)*KXZ1) - Z1B=Z1(1+(I-1)*IXZ1+(K1+0)*KXZ1) - FFA(I)=(Z2S-Z1B)/(Z1A-Z1B) - FFB(I)=(Z2S-Z1A)/(Z1B-Z1A) - ELSEIF(K1.GT.1.AND.K1.LT.KM1-1) THEN - Z2S=Z2(1+(I-1)*IXZ2+(K2-1)*KXZ2) - Z1A=Z1(1+(I-1)*IXZ1+(K1-2)*KXZ1) - Z1B=Z1(1+(I-1)*IXZ1+(K1-1)*KXZ1) - Z1C=Z1(1+(I-1)*IXZ1+(K1+0)*KXZ1) - Z1D=Z1(1+(I-1)*IXZ1+(K1+1)*KXZ1) - FFA(I)=(Z2S-Z1B)/(Z1A-Z1B)* & - (Z2S-Z1C)/(Z1A-Z1C)* & - (Z2S-Z1D)/(Z1A-Z1D) - FFB(I)=(Z2S-Z1A)/(Z1B-Z1A)* & - (Z2S-Z1C)/(Z1B-Z1C)* & - (Z2S-Z1D)/(Z1B-Z1D) - FFC(I)=(Z2S-Z1A)/(Z1C-Z1A)* & - (Z2S-Z1B)/(Z1C-Z1B)* & - (Z2S-Z1D)/(Z1C-Z1D) - FFD(I)=(Z2S-Z1A)/(Z1D-Z1A)* & - (Z2S-Z1B)/(Z1D-Z1B)* & - (Z2S-Z1C)/(Z1D-Z1C) - ENDIF - ENDDO -! INTERPOLATE. - DO N=1,NM - DO I=1,IM - K1=K1S(I,K2) - IF(K1.EQ.0) THEN - Q2S=Q1(1+(I-1)*IXQ1+(N-1)*NXQ1) - ELSEIF(K1.EQ.KM1) THEN - Q2S=Q1(1+(I-1)*IXQ1+(KM1-1)*KXQ1+(N-1)*NXQ1) - ELSEIF(K1.EQ.1.OR.K1.EQ.KM1-1) THEN - Q1A=Q1(1+(I-1)*IXQ1+(K1-1)*KXQ1+(N-1)*NXQ1) - Q1B=Q1(1+(I-1)*IXQ1+(K1+0)*KXQ1+(N-1)*NXQ1) - Q2S=FFA(I)*Q1A+FFB(I)*Q1B - ELSE - Q1A=Q1(1+(I-1)*IXQ1+(K1-2)*KXQ1+(N-1)*NXQ1) - Q1B=Q1(1+(I-1)*IXQ1+(K1-1)*KXQ1+(N-1)*NXQ1) - Q1C=Q1(1+(I-1)*IXQ1+(K1+0)*KXQ1+(N-1)*NXQ1) - Q1D=Q1(1+(I-1)*IXQ1+(K1+1)*KXQ1+(N-1)*NXQ1) - Q2S=MIN(MAX( & - FFA(I)*Q1A+FFB(I)*Q1B+FFC(I)*Q1C+FFD(I)*Q1D, & - MIN(Q1B,Q1C)),MAX(Q1B,Q1C)) - ENDIF - Q2(1+(I-1)*IXQ2+(K2-1)*KXQ2+(N-1)*NXQ2)=Q2S - ENDDO - ENDDO - ENDDO -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - END SUBROUTINE TERP3_HJ -!----------------------------------------------------------------------- - SUBROUTINE VINTTR(IM,IX,KM1,KM2,NT,P1,T1,Q1,P2,T2,Q2) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! SUBPROGRAM: VINTG VERTICALLY INTERPOLATE UPPER-AIR FIELDS -! PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-10-31 -! PRGMMR: S. MOORTHI ORG: NCEP/EMC DATE: 2006-12-12 -! -! ABSTRACT: VERTICALLY INTERPOLATE UPPER-AIR FIELDS. -! WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS ARE INTERPOLATED. -! THE INTERPOLATION IS CUBIC LAGRANGIAN IN LOG PRESSURE -! WITH A MONOTONIC CONSTRAINT IN THE CENTER OF THE DOMAIN. -! IN THE OUTER INTERVALS IT IS LINEAR IN LOG PRESSURE. -! OUTSIDE THE DOMAIN, FIELDS ARE GENERALLY HELD CONSTANT, -! EXCEPT FOR TEMPERATURE AND HUMIDITY BELOW THE INPUT DOMAIN, -! WHERE THE TEMPERATURE LAPSE RATE IS HELD FIXED AT -6.5 K/KM AND -! THE RELATIVE HUMIDITY IS HELD CONSTANT. -! -! PROGRAM HISTORY LOG: -! 91-10-31 MARK IREDELL -! -! USAGE: CALL VINTTR(IM,IX,KM1,KM2,NT,P1,T1,Q1,P2,T2,Q2) -! INPUT ARGUMENT LIST: -! IM INTEGER NUMBER OF POINTS TO COMPUTE -! IX INTEGER FIRST DIMENSION -! KM1 INTEGER NUMBER OF INPUT LEVELS -! KM2 INTEGER NUMBER OF OUTPUT LEVELS -! NT INTEGER NUMBER OF TRACERS -! P1 REAL (IX,KM1) INPUT PRESSURES -! ORDERED FROM BOTTOM TO TOP OF ATMOSPHERE -! T1 REAL (IX,KM1) INPUT TEMPERATURE (K) -! Q1 REAL (IX,KM1,NT) INPUT TRACERS (HUMIDITY FIRST) -! P2 REAL (IX,KM2) OUTPUT PRESSURES -! OUTPUT ARGUMENT LIST: -! T2 REAL (IX,KM2) OUTPUT TEMPERATURE (K) -! Q2 REAL (IX,KM2,NT) OUTPUT TRACERS (HUMIDITY FIRST) -! -! SUBPROGRAMS CALLED: -! TERP3 CUBICALLY INTERPOLATE IN ONE DIMENSION -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - IMPLICIT NONE - INTEGER IM,IX,KM1,KM2,NT - REAL P1(IX,KM1),T1(IX,KM1),Q1(IX,KM1,NT) - REAL P2(IX,KM2),T2(IX,KM2),Q2(IX,KM2,NT) - REAL,PARAMETER :: DLTDZ=-6.5E-3*287.05/9.80665 - REAL,PARAMETER :: DLPVDRT=-2.5E6/461.50 - REAL Z1(IM+1,KM1),Z2(IM+1,KM2) - REAL C1(IM+1,KM1,1+NT),C2(IM+1,KM2,1+NT),J2(IM+1,KM2,1+NT) - INTEGER I,N,K - REAL DZ -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! COMPUTE LOG PRESSURE INTERPOLATING COORDINATE -! AND COPY INPUT WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS - -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(K,I) - DO K=1,KM1 - DO I=1,IM - Z1(I,K)=-LOG(P1(I,K)) - C1(I,K,1)=T1(I,K) - C1(I,K,2)=Q1(I,K,1) - ENDDO - ENDDO -!$OMP END PARALLEL DO - DO N=2,NT - DO K=1,KM1 - DO I=1,IM - C1(I,K,1+N)=Q1(I,K,N) - ENDDO - ENDDO - ENDDO -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(K,I) - DO K=1,KM2 - DO I=1,IM - Z2(I,K)=-LOG(P2(I,K)) - ENDDO - ENDDO -!$OMP END PARALLEL DO - -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! PERFORM LAGRANGIAN ONE-DIMENSIONAL INTERPOLATION -! THAT IS 4TH-ORDER IN INTERIOR, 2ND-ORDER IN OUTSIDE INTERVALS -! AND 1ST-ORDER FOR EXTRAPOLATION. - CALL TERP3(IM,1,1,1,1,1+NT,(IM+1)*KM1,(IM+1)*KM2, & - KM1,IM+1,IM+1,Z1,C1,KM2,IM+1,IM+1,Z2,C2,J2) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! COPY OUTPUT WIND, TEMPERATURE, HUMIDITY AND OTHER TRACERS -! EXCEPT BELOW THE INPUT DOMAIN, LET TEMPERATURE INCREASE WITH A FIXED -! LAPSE RATE AND LET THE RELATIVE HUMIDITY REMAIN CONSTANT. - DO K=1,KM2 -! print *,' p2=',p2(1,k),' k=',k -! print *,' J2=',j2(1,k,3),' k=',k - DO I=1,IM - DZ=Z2(I,K)-Z1(I,1) - IF(DZ.GE.0) THEN - T2(I,K)=C2(I,K,1) - Q2(I,K,1)=C2(I,K,2) - ELSE - T2(I,K)=T1(I,1)*EXP(DLTDZ*DZ) - Q2(I,K,1)=Q1(I,1,1)*EXP(DLPVDRT*(1/T2(I,K)-1/T1(I,1))-DZ) - ENDIF - ENDDO - ENDDO - DO N=2,NT - DO K=1,KM2 - DO I=1,IM - Q2(I,K,N)=C2(I,K,1+N) - ENDDO - ENDDO - ENDDO - END SUBROUTINE VINTTR - -!----------------------------------------------------------------------- - subroutine getomega(jcap,nc,km,idvc,idvm,idrt,idsl,nvcoord, & - vcoord,lonb,latb,ijl,ijn,j1,j2,jc,sd,sps,psi,ti,ui,vi,wi) - use sigio_module, only : sigio_modprd - implicit none -! - integer,intent(in):: jcap,nc,km,idvc,idvm,idrt,idsl,nvcoord - integer,intent(in):: lonb,latb,ijl,j1,j2,jc,ijn - real,intent(in):: vcoord(km+1,nvcoord) - real,intent(in):: sd(nc,km),sps(nc) - real,intent(in):: psi(ijn),ti(ijn,km),ui(ijn,km),vi(ijn,km) - real,intent(out):: wi(ijn,km) - real :: pd(ijn,km),pi(ijn,km+1),pm(ijn,km) - real :: os - real dpmdps(ijn,km),dpddps(ijn,km),dpidps(ijn,km+1),vgradp,psmean - real di(ijn,km),psx(ijn),psy(ijn) - integer k,i,ij,lonb2,in,is,iret -!----1. spectral transform - lonb2=lonb*2 - ij=lonb2*(j2-j1+1) - in=1 - is=1+lonb - call sptrand(0,jcap,idrt,lonb,latb,1,1,1,lonb2,lonb2,nc,ijn, & - j1,j2,jc,sps,psmean, & - psx(in),psx(is),psy(in),psy(is),1) - SELECT CASE(MOD(IDVM,10)) - CASE(0,1) - continue - CASE(2) -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(i) - do i=1,ijn - psx(i)=psx(i)/(psi(i)*1.0E-3) - psy(i)=psy(i)/(psi(i)*1.0E-3) - enddo -!$OMP END PARALLEL DO - CASE DEFAULT -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(i) - do i=1,ijn - psx(i)=psx(i)/psi(i) - psy(i)=psy(i)/psi(i) - enddo -!$OMP END PARALLEL DO - END SELECT - -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(K) - do K=1,km - call sptran(0,jcap,idrt,lonb,latb,1,1,1,lonb2,lonb2,nc,ijn, & - j1,j2,jc,sd(1,k),di(in,k),di(is,k),1) - enddo -!$OMP END PARALLEL DO - - call sigio_modprd(ijl,ijn,km,nvcoord,idvc,idsl,vcoord,iret, & - ps=psi,t=ti,pm=pm,pd=pd,dpmdps=dpmdps,dpddps=dpddps) - -!----3.omeda from modstuff -!$OMP PARALLEL DO DEFAULT(SHARED) -!$OMP+ PRIVATE(i) - do i=1,ijl - pi(i,1)=psi(i) - dpidps(i,1)=1. - do k=1,km - pi(i,k+1)=pi(i,k)-pd(i,k) - dpidps(i,k+1)=dpidps(i,k)-dpddps(i,k) - enddo - os=0. - do k=km,1,-1 - vgradp=ui(i,k)*psx(i)+vi(i,k)*psy(i) - os=os-vgradp*psi(i)*(dpmdps(i,k)-dpidps(i,k+1))- & - di(i,k)*(pm(i,k)-pi(i,k+1)) - wi(i,k)=vgradp*psi(i)*dpmdps(i,k)+os - os=os-vgradp*psi(i)*(dpidps(i,k)-dpmdps(i,k))- & - di(i,k)*(pi(i,k)-pm(i,k)) - enddo -! - enddo -!$OMP END PARALLEL DO - return - end subroutine getomega - subroutine sptrrj(imax,lonsperlat,grid,gred,idir) - implicit none - integer,intent(in):: imax,lonsperlat,idir - real,intent(inout):: grid(imax),gred(imax) - real four(imax+2),gour(lonsperlat) - integer i,iour - real rred - - rred = lonsperlat/real(imax) - four = 0 -!! take transformed to full 'grid' and make it like transformed to reduc - if(idir > 0) then - call spfft1(imax,imax/2+1,imax,1,four,grid,-idir) - call spfft1(lonsperlat,imax/2+1,imax,1,four,gour,idir) - do i=1,imax - iour = nint((i-1)*rred)+1 - if(iour == lonsperlat+1) iour =1 - gred(i) = gour(iour) - enddo -!! take transformed to reduced and interpolated 'gred' and make it like - elseif(idir < 0) then - do iour=1,lonsperlat - i = nint((iour-1)/rred)+1 - if(i == imax+1) i = 1 - gour(iour) = gred(i) - enddo - call spfft1(lonsperlat,imax/2+1,imax,1,four,gour,idir) - call spfft1(imax,imax/2+1,imax,1,four,grid,-idir) - endif - end subroutine sptrrj - subroutine compute_zh(im, jm, levp, ak_in, bk_in, ps, zs, t, sphum, zh) - implicit none - integer, intent(in):: levp, im,jm - real, intent(in), dimension(levp+1):: ak_in, bk_in - real, intent(in), dimension(im,jm):: ps, zs - real, intent(in), dimension(im,jm,levp):: t - real, intent(in), dimension(im,jm,levp):: sphum - real, intent(out), dimension(im,jm,levp+1):: zh - ! Local: - real, dimension(im,levp+1):: pe0, pn0 - real, dimension(levp+1) :: ak, bk - integer i,j,k - real, parameter :: GRAV = 9.80665 - real, parameter :: RDGAS = 287.05 - real, parameter :: RVGAS = 461.50 - real, parameter :: e0 = 610.71 - real, parameter :: hlv = 2.501e6 - real, parameter :: tfreeze = 273.15 - real :: zvir - real:: grd - grd = grav/rdgas - zvir = rvgas/rdgas - 1. - ak = ak_in - bk = bk_in - ak(levp+1) = max(1.e-9, ak(levp+1)) - - do j = 1, jm - do i=1, im - pe0(i,levp+1) = ak(levp+1) - pn0(i,levp+1) = log(pe0(i,levp+1)) - enddo - - do k=levp,1, -1 - do i=1,im - pe0(i,k) = ak(k) + bk(k)*ps(i,j) - pn0(i,k) = log(pe0(i,k)) - enddo - enddo - - zh(1:im,j,1) = zs(1:im,j) - do k = 2, levp+1 - do i = 1, im - zh(i,j,k) = zh(i,j,k-1)+t(i,j,k-1)*(1.+zvir*sphum(i,j,k-1))* & - (pn0(i,k-1)-pn0(i,k))/grd - enddo - enddo - - enddo - - end subroutine compute_zh - SUBROUTINE GET_TRACERS(IDVT, NTRACO, I_CLD, I_OZN, TRAC_NAME) - - IMPLICIT NONE - - INTEGER, INTENT(IN) :: IDVT, NTRACO - - CHARACTER(LEN=16), INTENT(OUT) :: TRAC_NAME(NTRACO) - - INTEGER, INTENT(OUT) :: I_CLD, I_OZN - - TRAC_NAME = ' ' - - TRAC_NAME(1) = 'spfh' - IF (NTRACO == 2) THEN - IF(IDVT == 1) THEN - TRAC_NAME(2) = 'o3mr' - I_OZN = 2 - I_CLD = 0 - ELSEIF(IDVT == 2) THEN - TRAC_NAME(2) = 'clwmr' - I_OZN = 0 - I_CLD = 2 - ENDIF - ELSEIF (NTRACO == 3) THEN - IF(IDVT == 0) THEN - TRAC_NAME(2) = 'o3mr' - TRAC_NAME(3) = 'clwmr' - I_OZN = 2 - I_CLD = 0 - ELSEIF(IDVT == 21) THEN - TRAC_NAME(2) = 'o3mr' - TRAC_NAME(3) = 'clwmr' - I_OZN = 2 - I_CLD = 3 - ELSEIF(IDVT == 12) THEN - TRAC_NAME(2) = 'clwmr' - TRAC_NAME(3) = 'o3mr' - I_OZN = 3 - I_CLD = 2 - ENDIF - ELSEIF (NTRACO == 4) THEN - TRAC_NAME(4) = 'tke' - IF(IDVT == 0) THEN - TRAC_NAME(2) = 'o3mr' - TRAC_NAME(3) = 'clwmr' - I_OZN = 2 - I_CLD = 0 - ELSEIF(IDVT == 21) THEN - TRAC_NAME(2) = 'o3mr' - TRAC_NAME(3) = 'clwmr' - I_OZN = 2 - I_CLD = 3 - ELSEIF(IDVT == 12) THEN - TRAC_NAME(2) = 'clwmr' - TRAC_NAME(3) = 'o3mr' - I_OZN = 3 - I_CLD = 2 - ENDIF - ELSEIF(IDVT == 100) THEN - TRAC_NAME(2) = 'clwmr' - TRAC_NAME(3) = 'o3mr' - I_OZN = 2 - I_CLD = 3 - ! for WAM - ELSEIF(IDVT == 200) THEN - TRAC_NAME(2) = 'clwmr' - TRAC_NAME(3) = 'o3mr' - TRAC_NAME(4) = 'o' - TRAC_NAME(5) = 'o2' - I_OZN = 2 - I_CLD = 3 - ENDIF - - END SUBROUTINE GET_TRACERS - SUBROUTINE VINTG_IDEA(IMO,LATCH,KM2,NT,P2,RLAT,JMO,J1,J2,IDAY, & - U2,V2,T2,Q2) -!$$$ SUBPROGRAM DOCUMENTATION BLOCK -! -! ABSTRACT: MAKE UPPER-AIR FIELDS MORE REAL -! WIND, TEMPERATURE, HUMIDITY AND OTHER TRACER -! -! USAGE: CALL VINTG_IDEA(IMO,LATCH,KM2,NT,P2,RLAT,JMO,J1,J2,IDAY, -! &U2,V2,T2,Q2) -! INPUT ARGUMENT LIST: -! IMO INTEGER NUMBER OF LOGITUDE -! LATCH INTEGER MAX NUMBER OF LAT TO PROCCESS -! KM2 INTEGER NUMBER OF OUTPUT LEVELS -! NT INTEGER NUMBER OF TRACERS INPUT -! JMO INTEGER NUMDER OF LATITUDE -! J1 INTEGER FIRST LATITUDE INDEX,(NORTH TO SOUTH) -! J2 INTEGER LAST LATITUDE INDEX, -! IDAY INTEGER (4) HOUR MONTH DAY YEAR -! RLAT REAL (JMO) LATITUDE IN DEGREE -! P2 REAL (IMO,2*LATCH,KM2) PRESSURES -! ORDERED FROM BOTTOM TO TOP OF ATMOSPHERE -! OUTPUT AND INPUT ARGUMENT LIST: -! U2 REAL (IMO,2*LATCH,KM2) ZONAL WIND -! V2 REAL (IMO,2*LATCH,KM2) MERIDIONAL WIND -! T2 REAL (IMO,2*LATCH,KM2) TEMPERATURE (K) -! Q2 REAL (IMO,2*LATCH,KM2,NT+2) TRACERS (HUMIDITY FIRST) -! -! SUBPROGRAMS CALLED: -! GETTEMP Calculate temperature -! -! ATTRIBUTES: -! LANGUAGE: FORTRAN -! -!C$$$ - IMPLICIT NONE - INTEGER, INTENT(IN) :: imo,latch,km2,nt,jmo,j1,j2,iday(4) - REAL , INTENT(IN) :: rlat(jmo),p2(imo,2*latch,km2) - REAL , INTENT(INOUT) :: u2(imo,2*latch,km2), & - v2(imo,2*latch,km2), & - t2(imo,2*latch,km2), & - q2(imo,2*latch,km2,nt) - REAL, parameter:: top=64.25 - ! molecular wght of O (g/mol) - REAL, parameter:: amo=15.9994 - ! molecular wght of O2 (g/mol) - REAL, parameter:: amo2=31.999 - ! molecular wght of N2 (g/mol) - REAL, parameter:: amn2=28.013 - REAL temps(km2),tempn(km2),zmprn(km2),zmprs(km2),wfun(10) - REAL n_os(km2),n_on(km2),n_o2s(km2),n_o2n(km2) - REAL n_n2s(km2),n_n2n(km2) - REAL sumn,sums,rlats,coe,hold - INTEGER i, j, k, kref, jjn, jjs, ciday, ik,idat(8),jdow,jday -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! get weight function at joints - do i=1,10 - wfun(i)=(i-1)/9. - enddo -! get calendar day -! call getcday(iday,ciday) -! ciday=iday(3)+30*(iday(2)-1) - idat(1)=iday(4) - idat(2)=iday(2) - idat(3)=iday(3) - idat(5)=iday(1) - call w3doxdat(idat,jdow,ciday,jday) -! print*,idat - print*,iday - print*,'ciday',ciday -! - do i=1,imo - do j=1,16 - do k=1,km2 - if(p2(i,j,k).le.0.) print*,i,j,k - enddo - enddo - enddo -! For EACH LATITUDE couple - do j=j1,j2 -! second index of data array for latitude couple - jjn=2*(j-j1)+1 - jjs=2*(j-j1)+2 -! Get zonal meam pressure - do k=1,km2 - sumn=0. - sums=0. - do i=1,imo - sumn=sumn+p2(i,jjn,k) - sums=sums+p2(i,jjs,k) - enddo - zmprn(k)=sumn/float(imo)*.01 - zmprs(k)=sums/float(imo)*.01 - enddo -! GET TEMP PROFILE - call gettemp(ciday,1,rlat(j),1,zmprn,km2,tempn,n_on,n_o2n, & - n_n2n) - rlats=-1.*rlat(j) - call gettemp(ciday,1,rlats,1,zmprs,km2,temps,n_os,n_o2s, & - n_n2s) -! JIONT WITH EACH LONGITUDE north - do i=1,imo - do k=1,km2 - hold = 1./(n_on(k)*amo+amo2*n_o2n(k)+amn2*n_n2n(k)) -! q2(i,jjn,k,nt+1)=(amo*n_on(k))*hold -! q2(i,jjn,k,nt+2)=(amo2*n_o2n(k))*hold - q2(i,jjn,k,nt-1) = (amo*n_on(k)) * hold - q2(i,jjn,k,nt) = (amo2*n_o2n(k)) * hold - enddo -! find joint location (orig data top) - do k=1,km2 - if(p2(i,jjn,k).le.top) then - kref=k - go to 10 - endif - enddo - 10 continue -! temperature joint - do k=kref,km2 - t2(i,jjn,k) = tempn(k) - enddo - do k=kref-10,kref-1 - t2(i,jjn,k) = wfun(k-kref+11) * tempn(k)+ & - (1.-wfun(k-kref+11)) * t2(i,jjn,k) - enddo -! others : u v q - do k=kref,km2 - coe = p2(i,jjn,k)/p2(i,jjn,kref) -! coe = log(p2(i,jjn,kref))/log(p2(i,jjn,k)) - u2(i,jjn,k) = coe*u2(i,jjn,kref) - v2(i,jjn,k) = coe*v2(i,jjn,kref) - enddo - enddo -! JIONT WITH EACH LONGITUDE south - do i=1,imo - do k=1,km2 - hold = 1./(n_os(k)*amo+amo2*n_o2s(k)+amn2*n_n2s(k)) - q2(i,jjs,k,nt-1) = (amo*n_os(k)) * hold - q2(i,jjs,k,nt) = (amo2*n_o2s(k)) * hold - enddo -! find joint location (orig data top) - do k=1,km2 - if(p2(i,jjs,k).le.top) then - kref=k - go to 11 - endif - enddo - 11 continue -! temperature joint - do k=kref,km2 - t2(i,jjs,k) = temps(k) - enddo - do k=kref-10,kref-1 - t2(i,jjs,k) = wfun(k-kref+11) * temps(k)+ & - (1.- wfun(k-kref+11)) * t2(i,jjs,k) - enddo -! others : u v q ........... - do k=kref,km2 - coe = p2(i,jjs,k)/p2(i,jjs,kref) -! coe = log(p2(i,jjs,kref))/log(p2(i,jjs,k)) - u2(i,jjs,k) = coe*u2(i,jjs,kref) - v2(i,jjs,k) = coe*v2(i,jjs,kref) - enddo - !logitude - enddo - enddo -! print*,'www1' -! print'(12f6.1)',(q2(1,i,km2,4),i=1,2*latch) - end subroutine vintg_idea -!----------------------------------------------------------------------- - subroutine gettemp(iday,nday,xlat,nlat,pr,np,temp,n_o,n_o2,n_n2) -! calculate temperature at each grid point useing nrlmsise00_sub - implicit none - !number of days - integer, intent(in) :: nday - !number of latitudes - integer, intent(in) :: nlat - !number of pressure le - integer, intent(in) :: np - ! pressure in mb - real, intent(in) :: pr(np) - !latitude in degree - real, intent(in) :: xlat(nlat) - !calender day - integer, intent(in) :: iday(nday) - ! temperature - real, intent(out) :: temp(np,nlat,nday) - ! number density of o ( - real, intent(out) :: n_o(np,nlat,nday) - ! number density of o2 - real, intent(out) :: n_o2(np,nlat,nday) - ! number density of N2 - real, intent(out) :: n_n2(np,nlat,nday) - ! altitude in km - real :: alt(np,nlat,nday) - real :: D(9),T(2),SW(25),AP(7),ut,xlong,xlst,f107, & - f107a - integer :: k,il,ip -! set magnetic index average value - DATA AP/7*9./ -! set swich 7,8,10,14 zero to avoid diurnal changes in output temperatu -! swich #7 is for diurnal,#8 is for semidiurnal,# 10 is for all UT/longi -! effect,#14 is for terdiurnal - data sw/1.,1.,1.,1.,1.,1.,0.,0.,1.,0.,1.,1.,1.,0.,1.,1.,1.,1.,1., & - 1.,1.,1.,1.,1.,1./ -! set 10.7cm flux be average value - f107=150. - f107a=150. -! turn on swich - CALL TSELEC(SW) -! set longitude, UT, local time , It should not make difference to outpu - ut=0. - xlong=0. - xlst=ut/3600.+xlong/15. -! calculate temperature for each lat,pres level,day - do k=1,nday - do il=1,nlat - do ip=1,np - CALL GHP7(IDAY(k),UT,ALT(ip,il,k),XLAT(il),XLONG,XLST,F107A,F107, & - AP,D,T,pr(ip)) - temp(ip,il,k)=t(2) - n_o(ip,il,k)=D(2) - n_o2(ip,il,k)=D(4) - n_n2(ip,il,k)=D(3) - enddo - enddo - enddo - end subroutine gettemp diff --git a/sorc/global_chgres.fd/funcphys.f90 b/sorc/global_chgres.fd/funcphys.f90 deleted file mode 100755 index bdd6d784e7..0000000000 --- a/sorc/global_chgres.fd/funcphys.f90 +++ /dev/null @@ -1,2895 +0,0 @@ -!------------------------------------------------------------------------------- -module funcphys -!$$$ Module Documentation Block -! -! Module: funcphys API for basic thermodynamic physics -! Author: Iredell Org: W/NX23 Date: 1999-03-01 -! -! Abstract: This module provides an Application Program Interface -! for computing basic thermodynamic physics functions, in particular -! (1) saturation vapor pressure as a function of temperature, -! (2) dewpoint temperature as a function of vapor pressure, -! (3) equivalent potential temperature as a function of temperature -! and scaled pressure to the kappa power, -! (4) temperature and specific humidity along a moist adiabat -! as functions of equivalent potential temperature and -! scaled pressure to the kappa power, -! (5) scaled pressure to the kappa power as a function of pressure, and -! (6) temperature at the lifting condensation level as a function -! of temperature and dewpoint depression. -! The entry points required to set up lookup tables start with a "g". -! All the other entry points are functions starting with an "f" or -! are subroutines starting with an "s". These other functions and -! subroutines are elemental; that is, they return a scalar if they -! are passed only scalars, but they return an array if they are passed -! an array. These other functions and subroutines can be inlined, too. -! -! Program History Log: -! 1999-03-01 Mark Iredell -! 1999-10-15 Mark Iredell SI unit for pressure (Pascals) -! 2001-02-26 Mark Iredell Ice phase changes of Hong and Moorthi -! -! Public Variables: -! krealfp Integer parameter kind or length of reals (=kind_phys) -! -! Public Subprograms: -! gpvsl Compute saturation vapor pressure over liquid table -! -! fpvsl Elementally compute saturation vapor pressure over liquid -! function result Real(krealfp) saturation vapor pressure in Pascals -! t Real(krealfp) temperature in Kelvin -! -! fpvslq Elementally compute saturation vapor pressure over liquid -! function result Real(krealfp) saturation vapor pressure in Pascals -! t Real(krealfp) temperature in Kelvin -! -! fpvslx Elementally compute saturation vapor pressure over liquid -! function result Real(krealfp) saturation vapor pressure in Pascals -! t Real(krealfp) temperature in Kelvin -! -! gpvsi Compute saturation vapor pressure over ice table -! -! fpvsi Elementally compute saturation vapor pressure over ice -! function result Real(krealfp) saturation vapor pressure in Pascals -! t Real(krealfp) temperature in Kelvin -! -! fpvsiq Elementally compute saturation vapor pressure over ice -! function result Real(krealfp) saturation vapor pressure in Pascals -! t Real(krealfp) temperature in Kelvin -! -! fpvsix Elementally compute saturation vapor pressure over ice -! function result Real(krealfp) saturation vapor pressure in Pascals -! t Real(krealfp) temperature in Kelvin -! -! gpvs Compute saturation vapor pressure table -! -! fpvs Elementally compute saturation vapor pressure -! function result Real(krealfp) saturation vapor pressure in Pascals -! t Real(krealfp) temperature in Kelvin -! -! fpvsq Elementally compute saturation vapor pressure -! function result Real(krealfp) saturation vapor pressure in Pascals -! t Real(krealfp) temperature in Kelvin -! -! fpvsx Elementally compute saturation vapor pressure -! function result Real(krealfp) saturation vapor pressure in Pascals -! t Real(krealfp) temperature in Kelvin -! -! gtdpl Compute dewpoint temperature over liquid table -! -! ftdpl Elementally compute dewpoint temperature over liquid -! function result Real(krealfp) dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! ftdplq Elementally compute dewpoint temperature over liquid -! function result Real(krealfp) dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! ftdplx Elementally compute dewpoint temperature over liquid -! function result Real(krealfp) dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! ftdplxg Elementally compute dewpoint temperature over liquid -! function result Real(krealfp) dewpoint temperature in Kelvin -! t Real(krealfp) guess dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! gtdpi Compute dewpoint temperature table over ice -! -! ftdpi Elementally compute dewpoint temperature over ice -! function result Real(krealfp) dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! ftdpiq Elementally compute dewpoint temperature over ice -! function result Real(krealfp) dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! ftdpix Elementally compute dewpoint temperature over ice -! function result Real(krealfp) dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! ftdpixg Elementally compute dewpoint temperature over ice -! function result Real(krealfp) dewpoint temperature in Kelvin -! t Real(krealfp) guess dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! gtdp Compute dewpoint temperature table -! -! ftdp Elementally compute dewpoint temperature -! function result Real(krealfp) dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! ftdpq Elementally compute dewpoint temperature -! function result Real(krealfp) dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! ftdpx Elementally compute dewpoint temperature -! function result Real(krealfp) dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! ftdpxg Elementally compute dewpoint temperature -! function result Real(krealfp) dewpoint temperature in Kelvin -! t Real(krealfp) guess dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! gthe Compute equivalent potential temperature table -! -! fthe Elementally compute equivalent potential temperature -! function result Real(krealfp) equivalent potential temperature in Kelvin -! t Real(krealfp) LCL temperature in Kelvin -! pk Real(krealfp) LCL pressure over 1e5 Pa to the kappa power -! -! ftheq Elementally compute equivalent potential temperature -! function result Real(krealfp) equivalent potential temperature in Kelvin -! t Real(krealfp) LCL temperature in Kelvin -! pk Real(krealfp) LCL pressure over 1e5 Pa to the kappa power -! -! fthex Elementally compute equivalent potential temperature -! function result Real(krealfp) equivalent potential temperature in Kelvin -! t Real(krealfp) LCL temperature in Kelvin -! pk Real(krealfp) LCL pressure over 1e5 Pa to the kappa power -! -! gtma Compute moist adiabat tables -! -! stma Elementally compute moist adiabat temperature and moisture -! the Real(krealfp) equivalent potential temperature in Kelvin -! pk Real(krealfp) pressure over 1e5 Pa to the kappa power -! tma Real(krealfp) parcel temperature in Kelvin -! qma Real(krealfp) parcel specific humidity in kg/kg -! -! stmaq Elementally compute moist adiabat temperature and moisture -! the Real(krealfp) equivalent potential temperature in Kelvin -! pk Real(krealfp) pressure over 1e5 Pa to the kappa power -! tma Real(krealfp) parcel temperature in Kelvin -! qma Real(krealfp) parcel specific humidity in kg/kg -! -! stmax Elementally compute moist adiabat temperature and moisture -! the Real(krealfp) equivalent potential temperature in Kelvin -! pk Real(krealfp) pressure over 1e5 Pa to the kappa power -! tma Real(krealfp) parcel temperature in Kelvin -! qma Real(krealfp) parcel specific humidity in kg/kg -! -! stmaxg Elementally compute moist adiabat temperature and moisture -! tg Real(krealfp) guess parcel temperature in Kelvin -! the Real(krealfp) equivalent potential temperature in Kelvin -! pk Real(krealfp) pressure over 1e5 Pa to the kappa power -! tma Real(krealfp) parcel temperature in Kelvin -! qma Real(krealfp) parcel specific humidity in kg/kg -! -! gpkap Compute pressure to the kappa table -! -! fpkap Elementally raise pressure to the kappa power. -! function result Real(krealfp) p over 1e5 Pa to the kappa power -! p Real(krealfp) pressure in Pascals -! -! fpkapq Elementally raise pressure to the kappa power. -! function result Real(krealfp) p over 1e5 Pa to the kappa power -! p Real(krealfp) pressure in Pascals -! -! fpkapo Elementally raise pressure to the kappa power. -! function result Real(krealfp) p over 1e5 Pa to the kappa power -! p Real(krealfp) surface pressure in Pascals -! -! fpkapx Elementally raise pressure to the kappa power. -! function result Real(krealfp) p over 1e5 Pa to the kappa power -! p Real(krealfp) pressure in Pascals -! -! grkap Compute pressure to the 1/kappa table -! -! frkap Elementally raise pressure to the 1/kappa power. -! function result Real(krealfp) pressure in Pascals -! pkap Real(krealfp) p over 1e5 Pa to the 1/kappa power -! -! frkapq Elementally raise pressure to the kappa power. -! function result Real(krealfp) pressure in Pascals -! pkap Real(krealfp) p over 1e5 Pa to the kappa power -! -! frkapx Elementally raise pressure to the kappa power. -! function result Real(krealfp) pressure in Pascals -! pkap Real(krealfp) p over 1e5 Pa to the kappa power -! -! gtlcl Compute LCL temperature table -! -! ftlcl Elementally compute LCL temperature. -! function result Real(krealfp) temperature at the LCL in Kelvin -! t Real(krealfp) temperature in Kelvin -! tdpd Real(krealfp) dewpoint depression in Kelvin -! -! ftlclq Elementally compute LCL temperature. -! function result Real(krealfp) temperature at the LCL in Kelvin -! t Real(krealfp) temperature in Kelvin -! tdpd Real(krealfp) dewpoint depression in Kelvin -! -! ftlclo Elementally compute LCL temperature. -! function result Real(krealfp) temperature at the LCL in Kelvin -! t Real(krealfp) temperature in Kelvin -! tdpd Real(krealfp) dewpoint depression in Kelvin -! -! ftlclx Elementally compute LCL temperature. -! function result Real(krealfp) temperature at the LCL in Kelvin -! t Real(krealfp) temperature in Kelvin -! tdpd Real(krealfp) dewpoint depression in Kelvin -! -! gfuncphys Compute all physics function tables -! -! Attributes: -! Language: Fortran 90 -! -!$$$ - use machine,only:kind_phys - use physcons - implicit none - private -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! Public Variables -! integer,public,parameter:: krealfp=selected_real_kind(15,45) - integer,public,parameter:: krealfp=kind_phys -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! Private Variables - real(krealfp),parameter:: psatb=con_psat*1.e-5 - integer,parameter:: nxpvsl=7501 - real(krealfp) c1xpvsl,c2xpvsl,tbpvsl(nxpvsl) - integer,parameter:: nxpvsi=7501 - real(krealfp) c1xpvsi,c2xpvsi,tbpvsi(nxpvsi) - integer,parameter:: nxpvs=7501 - real(krealfp) c1xpvs,c2xpvs,tbpvs(nxpvs) - integer,parameter:: nxtdpl=5001 - real(krealfp) c1xtdpl,c2xtdpl,tbtdpl(nxtdpl) - integer,parameter:: nxtdpi=5001 - real(krealfp) c1xtdpi,c2xtdpi,tbtdpi(nxtdpi) - integer,parameter:: nxtdp=5001 - real(krealfp) c1xtdp,c2xtdp,tbtdp(nxtdp) - integer,parameter:: nxthe=241,nythe=151 - real(krealfp) c1xthe,c2xthe,c1ythe,c2ythe,tbthe(nxthe,nythe) - integer,parameter:: nxma=151,nyma=121 - real(krealfp) c1xma,c2xma,c1yma,c2yma,tbtma(nxma,nyma),tbqma(nxma,nyma) - integer,parameter:: nxpkap=11001 - real(krealfp) c1xpkap,c2xpkap,tbpkap(nxpkap) - integer,parameter:: nxrkap=11001 - real(krealfp) c1xrkap,c2xrkap,tbrkap(nxrkap) - integer,parameter:: nxtlcl=151,nytlcl=61 - real(krealfp) c1xtlcl,c2xtlcl,c1ytlcl,c2ytlcl,tbtlcl(nxtlcl,nytlcl) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! Public Subprograms - public gpvsl,fpvsl,fpvslq,fpvslx - public gpvsi,fpvsi,fpvsiq,fpvsix - public gpvs,fpvs,fpvsq,fpvsx - public gtdpl,ftdpl,ftdplq,ftdplx,ftdplxg - public gtdpi,ftdpi,ftdpiq,ftdpix,ftdpixg - public gtdp,ftdp,ftdpq,ftdpx,ftdpxg - public gthe,fthe,ftheq,fthex - public gtma,stma,stmaq,stmax,stmaxg - public gpkap,fpkap,fpkapq,fpkapo,fpkapx - public grkap,frkap,frkapq,frkapx - public gtlcl,ftlcl,ftlclq,ftlclo,ftlclx - public gfuncphys -contains -!------------------------------------------------------------------------------- - subroutine gpvsl -!$$$ Subprogram Documentation Block -! -! Subprogram: gpvsl Compute saturation vapor pressure table over liquid -! Author: N Phillips W/NMC2X2 Date: 30 dec 82 -! -! Abstract: Computes saturation vapor pressure table as a function of -! temperature for the table lookup function fpvsl. -! Exact saturation vapor pressures are calculated in subprogram fpvslx. -! The current implementation computes a table with a length -! of 7501 for temperatures ranging from 180. to 330. Kelvin. -! -! Program History Log: -! 91-05-07 Iredell -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! -! Usage: call gpvsl -! -! Subprograms called: -! (fpvslx) inlinable function to compute saturation vapor pressure -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx - real(krealfp) xmin,xmax,xinc,x,t -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=180.0_krealfp - xmax=330.0_krealfp - xinc=(xmax-xmin)/(nxpvsl-1) - c1xpvsl=1.-xmin/xinc - c2xpvsl=1./xinc - do jx=1,nxpvsl - x=xmin+(jx-1)*xinc - t=x - tbpvsl(jx)=fpvslx(t) - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental function fpvsl(t) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpvsl Compute saturation vapor pressure over liquid -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute saturation vapor pressure from the temperature. -! A linear interpolation is done between values in a lookup table -! computed in gpvsl. See documentation for fpvslx for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is almost 6 decimal places. -! On the Cray, fpvsl is about 4 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! -! Usage: pvsl=fpvsl(t) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! -! Output argument list: -! fpvsl Real(krealfp) saturation vapor pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpvsl - real(krealfp),intent(in):: t - integer jx - real(krealfp) xj -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xpvsl+c2xpvsl*t,1._krealfp),real(nxpvsl,krealfp)) - jx=min(xj,nxpvsl-1._krealfp) - fpvsl=tbpvsl(jx)+(xj-jx)*(tbpvsl(jx+1)-tbpvsl(jx)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function fpvslq(t) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpvslq Compute saturation vapor pressure over liquid -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute saturation vapor pressure from the temperature. -! A quadratic interpolation is done between values in a lookup table -! computed in gpvsl. See documentation for fpvslx for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is almost 9 decimal places. -! On the Cray, fpvslq is about 3 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell quadratic interpolation -! 1999-03-01 Iredell f90 module -! -! Usage: pvsl=fpvslq(t) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! -! Output argument list: -! fpvslq Real(krealfp) saturation vapor pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpvslq - real(krealfp),intent(in):: t - integer jx - real(krealfp) xj,dxj,fj1,fj2,fj3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xpvsl+c2xpvsl*t,1._krealfp),real(nxpvsl,krealfp)) - jx=min(max(nint(xj),2),nxpvsl-1) - dxj=xj-jx - fj1=tbpvsl(jx-1) - fj2=tbpvsl(jx) - fj3=tbpvsl(jx+1) - fpvslq=(((fj3+fj1)/2-fj2)*dxj+(fj3-fj1)/2)*dxj+fj2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function fpvslx(t) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpvslx Compute saturation vapor pressure over liquid -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Exactly compute saturation vapor pressure from temperature. -! The water model assumes a perfect gas, constant specific heats -! for gas and liquid, and neglects the volume of the liquid. -! The model does account for the variation of the latent heat -! of condensation with temperature. The ice option is not included. -! The Clausius-Clapeyron equation is integrated from the triple point -! to get the formula -! pvsl=con_psat*(tr**xa)*exp(xb*(1.-tr)) -! where tr is ttp/t and other values are physical constants. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! -! Usage: pvsl=fpvslx(t) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! -! Output argument list: -! fpvslx Real(krealfp) saturation vapor pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpvslx - real(krealfp),intent(in):: t - real(krealfp),parameter:: dldt=con_cvap-con_cliq - real(krealfp),parameter:: heat=con_hvap - real(krealfp),parameter:: xpona=-dldt/con_rv - real(krealfp),parameter:: xponb=-dldt/con_rv+heat/(con_rv*con_ttp) - real(krealfp) tr -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tr=con_ttp/t - fpvslx=con_psat*(tr**xpona)*exp(xponb*(1.-tr)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - subroutine gpvsi -!$$$ Subprogram Documentation Block -! -! Subprogram: gpvsi Compute saturation vapor pressure table over ice -! Author: N Phillips W/NMC2X2 Date: 30 dec 82 -! -! Abstract: Computes saturation vapor pressure table as a function of -! temperature for the table lookup function fpvsi. -! Exact saturation vapor pressures are calculated in subprogram fpvsix. -! The current implementation computes a table with a length -! of 7501 for temperatures ranging from 180. to 330. Kelvin. -! -! Program History Log: -! 91-05-07 Iredell -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: call gpvsi -! -! Subprograms called: -! (fpvsix) inlinable function to compute saturation vapor pressure -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx - real(krealfp) xmin,xmax,xinc,x,t -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=180.0_krealfp - xmax=330.0_krealfp - xinc=(xmax-xmin)/(nxpvsi-1) - c1xpvsi=1.-xmin/xinc - c2xpvsi=1./xinc - do jx=1,nxpvsi - x=xmin+(jx-1)*xinc - t=x - tbpvsi(jx)=fpvsix(t) - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental function fpvsi(t) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpvsi Compute saturation vapor pressure over ice -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute saturation vapor pressure from the temperature. -! A linear interpolation is done between values in a lookup table -! computed in gpvsi. See documentation for fpvsix for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is almost 6 decimal places. -! On the Cray, fpvsi is about 4 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: pvsi=fpvsi(t) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! -! Output argument list: -! fpvsi Real(krealfp) saturation vapor pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpvsi - real(krealfp),intent(in):: t - integer jx - real(krealfp) xj -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xpvsi+c2xpvsi*t,1._krealfp),real(nxpvsi,krealfp)) - jx=min(xj,nxpvsi-1._krealfp) - fpvsi=tbpvsi(jx)+(xj-jx)*(tbpvsi(jx+1)-tbpvsi(jx)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function fpvsiq(t) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpvsiq Compute saturation vapor pressure over ice -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute saturation vapor pressure from the temperature. -! A quadratic interpolation is done between values in a lookup table -! computed in gpvsi. See documentation for fpvsix for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is almost 9 decimal places. -! On the Cray, fpvsiq is about 3 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell quadratic interpolation -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: pvsi=fpvsiq(t) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! -! Output argument list: -! fpvsiq Real(krealfp) saturation vapor pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpvsiq - real(krealfp),intent(in):: t - integer jx - real(krealfp) xj,dxj,fj1,fj2,fj3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xpvsi+c2xpvsi*t,1._krealfp),real(nxpvsi,krealfp)) - jx=min(max(nint(xj),2),nxpvsi-1) - dxj=xj-jx - fj1=tbpvsi(jx-1) - fj2=tbpvsi(jx) - fj3=tbpvsi(jx+1) - fpvsiq=(((fj3+fj1)/2-fj2)*dxj+(fj3-fj1)/2)*dxj+fj2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function fpvsix(t) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpvsix Compute saturation vapor pressure over ice -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Exactly compute saturation vapor pressure from temperature. -! The water model assumes a perfect gas, constant specific heats -! for gas and ice, and neglects the volume of the ice. -! The model does account for the variation of the latent heat -! of condensation with temperature. The liquid option is not included. -! The Clausius-Clapeyron equation is integrated from the triple point -! to get the formula -! pvsi=con_psat*(tr**xa)*exp(xb*(1.-tr)) -! where tr is ttp/t and other values are physical constants. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: pvsi=fpvsix(t) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! -! Output argument list: -! fpvsix Real(krealfp) saturation vapor pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpvsix - real(krealfp),intent(in):: t - real(krealfp),parameter:: dldt=con_cvap-con_csol - real(krealfp),parameter:: heat=con_hvap+con_hfus - real(krealfp),parameter:: xpona=-dldt/con_rv - real(krealfp),parameter:: xponb=-dldt/con_rv+heat/(con_rv*con_ttp) - real(krealfp) tr -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tr=con_ttp/t - fpvsix=con_psat*(tr**xpona)*exp(xponb*(1.-tr)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - subroutine gpvs -!$$$ Subprogram Documentation Block -! -! Subprogram: gpvs Compute saturation vapor pressure table -! Author: N Phillips W/NMC2X2 Date: 30 dec 82 -! -! Abstract: Computes saturation vapor pressure table as a function of -! temperature for the table lookup function fpvs. -! Exact saturation vapor pressures are calculated in subprogram fpvsx. -! The current implementation computes a table with a length -! of 7501 for temperatures ranging from 180. to 330. Kelvin. -! -! Program History Log: -! 91-05-07 Iredell -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: call gpvs -! -! Subprograms called: -! (fpvsx) inlinable function to compute saturation vapor pressure -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx - real(krealfp) xmin,xmax,xinc,x,t -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=180.0_krealfp - xmax=330.0_krealfp - xinc=(xmax-xmin)/(nxpvs-1) - c1xpvs=1.-xmin/xinc - c2xpvs=1./xinc - do jx=1,nxpvs - x=xmin+(jx-1)*xinc - t=x - tbpvs(jx)=fpvsx(t) - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental function fpvs(t) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpvs Compute saturation vapor pressure -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute saturation vapor pressure from the temperature. -! A linear interpolation is done between values in a lookup table -! computed in gpvs. See documentation for fpvsx for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is almost 6 decimal places. -! On the Cray, fpvs is about 4 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: pvs=fpvs(t) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! -! Output argument list: -! fpvs Real(krealfp) saturation vapor pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpvs - real(krealfp),intent(in):: t - integer jx - real(krealfp) xj -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xpvs+c2xpvs*t,1._krealfp),real(nxpvs,krealfp)) - jx=min(xj,nxpvs-1._krealfp) - fpvs=tbpvs(jx)+(xj-jx)*(tbpvs(jx+1)-tbpvs(jx)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function fpvsq(t) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpvsq Compute saturation vapor pressure -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute saturation vapor pressure from the temperature. -! A quadratic interpolation is done between values in a lookup table -! computed in gpvs. See documentation for fpvsx for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is almost 9 decimal places. -! On the Cray, fpvsq is about 3 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell quadratic interpolation -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: pvs=fpvsq(t) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! -! Output argument list: -! fpvsq Real(krealfp) saturation vapor pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpvsq - real(krealfp),intent(in):: t - integer jx - real(krealfp) xj,dxj,fj1,fj2,fj3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xpvs+c2xpvs*t,1._krealfp),real(nxpvs,krealfp)) - jx=min(max(nint(xj),2),nxpvs-1) - dxj=xj-jx - fj1=tbpvs(jx-1) - fj2=tbpvs(jx) - fj3=tbpvs(jx+1) - fpvsq=(((fj3+fj1)/2-fj2)*dxj+(fj3-fj1)/2)*dxj+fj2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function fpvsx(t) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpvsx Compute saturation vapor pressure -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Exactly compute saturation vapor pressure from temperature. -! The saturation vapor pressure over either liquid and ice is computed -! over liquid for temperatures above the triple point, -! over ice for temperatures 20 degress below the triple point, -! and a linear combination of the two for temperatures in between. -! The water model assumes a perfect gas, constant specific heats -! for gas, liquid and ice, and neglects the volume of the condensate. -! The model does account for the variation of the latent heat -! of condensation and sublimation with temperature. -! The Clausius-Clapeyron equation is integrated from the triple point -! to get the formula -! pvsl=con_psat*(tr**xa)*exp(xb*(1.-tr)) -! where tr is ttp/t and other values are physical constants. -! The reference for this computation is Emanuel(1994), pages 116-117. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: pvs=fpvsx(t) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! -! Output argument list: -! fpvsx Real(krealfp) saturation vapor pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpvsx - real(krealfp),intent(in):: t - real(krealfp),parameter:: tliq=con_ttp - real(krealfp),parameter:: tice=con_ttp-20.0 - real(krealfp),parameter:: dldtl=con_cvap-con_cliq - real(krealfp),parameter:: heatl=con_hvap - real(krealfp),parameter:: xponal=-dldtl/con_rv - real(krealfp),parameter:: xponbl=-dldtl/con_rv+heatl/(con_rv*con_ttp) - real(krealfp),parameter:: dldti=con_cvap-con_csol - real(krealfp),parameter:: heati=con_hvap+con_hfus - real(krealfp),parameter:: xponai=-dldti/con_rv - real(krealfp),parameter:: xponbi=-dldti/con_rv+heati/(con_rv*con_ttp) - real(krealfp) tr,w,pvl,pvi -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tr=con_ttp/t - if(t.ge.tliq) then - fpvsx=con_psat*(tr**xponal)*exp(xponbl*(1.-tr)) - elseif(t.lt.tice) then - fpvsx=con_psat*(tr**xponai)*exp(xponbi*(1.-tr)) - else - w=(t-tice)/(tliq-tice) - pvl=con_psat*(tr**xponal)*exp(xponbl*(1.-tr)) - pvi=con_psat*(tr**xponai)*exp(xponbi*(1.-tr)) - fpvsx=w*pvl+(1.-w)*pvi - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - subroutine gtdpl -!$$$ Subprogram Documentation Block -! -! Subprogram: gtdpl Compute dewpoint temperature over liquid table -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute dewpoint temperature table as a function of -! vapor pressure for inlinable function ftdpl. -! Exact dewpoint temperatures are calculated in subprogram ftdplxg. -! The current implementation computes a table with a length -! of 5001 for vapor pressures ranging from 1 to 10001 Pascals -! giving a dewpoint temperature range of 208 to 319 Kelvin. -! -! Program History Log: -! 91-05-07 Iredell -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! -! Usage: call gtdpl -! -! Subprograms called: -! (ftdplxg) inlinable function to compute dewpoint temperature over liquid -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx - real(krealfp) xmin,xmax,xinc,t,x,pv -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=1 - xmax=10001 - xinc=(xmax-xmin)/(nxtdpl-1) - c1xtdpl=1.-xmin/xinc - c2xtdpl=1./xinc - t=208.0 - do jx=1,nxtdpl - x=xmin+(jx-1)*xinc - pv=x - t=ftdplxg(t,pv) - tbtdpl(jx)=t - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental function ftdpl(pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdpl Compute dewpoint temperature over liquid -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute dewpoint temperature from vapor pressure. -! A linear interpolation is done between values in a lookup table -! computed in gtdpl. See documentation for ftdplxg for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is better than 0.0005 Kelvin -! for dewpoint temperatures greater than 250 Kelvin, -! but decreases to 0.02 Kelvin for a dewpoint around 230 Kelvin. -! On the Cray, ftdpl is about 75 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! -! Usage: tdpl=ftdpl(pv) -! -! Input argument list: -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdpl Real(krealfp) dewpoint temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdpl - real(krealfp),intent(in):: pv - integer jx - real(krealfp) xj -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xtdpl+c2xtdpl*pv,1._krealfp),real(nxtdpl,krealfp)) - jx=min(xj,nxtdpl-1._krealfp) - ftdpl=tbtdpl(jx)+(xj-jx)*(tbtdpl(jx+1)-tbtdpl(jx)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftdplq(pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdplq Compute dewpoint temperature over liquid -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute dewpoint temperature from vapor pressure. -! A quadratic interpolation is done between values in a lookup table -! computed in gtdpl. see documentation for ftdplxg for details. -! Input values outside table range are reset to table extrema. -! the interpolation accuracy is better than 0.00001 Kelvin -! for dewpoint temperatures greater than 250 Kelvin, -! but decreases to 0.002 Kelvin for a dewpoint around 230 Kelvin. -! On the Cray, ftdplq is about 60 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell quadratic interpolation -! 1999-03-01 Iredell f90 module -! -! Usage: tdpl=ftdplq(pv) -! -! Input argument list: -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdplq Real(krealfp) dewpoint temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdplq - real(krealfp),intent(in):: pv - integer jx - real(krealfp) xj,dxj,fj1,fj2,fj3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xtdpl+c2xtdpl*pv,1._krealfp),real(nxtdpl,krealfp)) - jx=min(max(nint(xj),2),nxtdpl-1) - dxj=xj-jx - fj1=tbtdpl(jx-1) - fj2=tbtdpl(jx) - fj3=tbtdpl(jx+1) - ftdplq=(((fj3+fj1)/2-fj2)*dxj+(fj3-fj1)/2)*dxj+fj2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftdplx(pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdplx Compute dewpoint temperature over liquid -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: exactly compute dewpoint temperature from vapor pressure. -! An approximate dewpoint temperature for function ftdplxg -! is obtained using ftdpl so gtdpl must be already called. -! See documentation for ftdplxg for details. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! -! Usage: tdpl=ftdplx(pv) -! -! Input argument list: -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdplx Real(krealfp) dewpoint temperature in Kelvin -! -! Subprograms called: -! (ftdpl) inlinable function to compute dewpoint temperature over liquid -! (ftdplxg) inlinable function to compute dewpoint temperature over liquid -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdplx - real(krealfp),intent(in):: pv - real(krealfp) tg -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tg=ftdpl(pv) - ftdplx=ftdplxg(tg,pv) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftdplxg(tg,pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdplxg Compute dewpoint temperature over liquid -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Exactly compute dewpoint temperature from vapor pressure. -! A guess dewpoint temperature must be provided. -! The water model assumes a perfect gas, constant specific heats -! for gas and liquid, and neglects the volume of the liquid. -! The model does account for the variation of the latent heat -! of condensation with temperature. The ice option is not included. -! The Clausius-Clapeyron equation is integrated from the triple point -! to get the formula -! pvs=con_psat*(tr**xa)*exp(xb*(1.-tr)) -! where tr is ttp/t and other values are physical constants. -! The formula is inverted by iterating Newtonian approximations -! for each pvs until t is found to within 1.e-6 Kelvin. -! This function can be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! -! Usage: tdpl=ftdplxg(tg,pv) -! -! Input argument list: -! tg Real(krealfp) guess dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdplxg Real(krealfp) dewpoint temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdplxg - real(krealfp),intent(in):: tg,pv - real(krealfp),parameter:: terrm=1.e-6 - real(krealfp),parameter:: dldt=con_cvap-con_cliq - real(krealfp),parameter:: heat=con_hvap - real(krealfp),parameter:: xpona=-dldt/con_rv - real(krealfp),parameter:: xponb=-dldt/con_rv+heat/(con_rv*con_ttp) - real(krealfp) t,tr,pvt,el,dpvt,terr - integer i -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - t=tg - do i=1,100 - tr=con_ttp/t - pvt=con_psat*(tr**xpona)*exp(xponb*(1.-tr)) - el=heat+dldt*(t-con_ttp) - dpvt=el*pvt/(con_rv*t**2) - terr=(pvt-pv)/dpvt - t=t-terr - if(abs(terr).le.terrm) exit - enddo - ftdplxg=t -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - subroutine gtdpi -!$$$ Subprogram Documentation Block -! -! Subprogram: gtdpi Compute dewpoint temperature over ice table -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute dewpoint temperature table as a function of -! vapor pressure for inlinable function ftdpi. -! Exact dewpoint temperatures are calculated in subprogram ftdpixg. -! The current implementation computes a table with a length -! of 5001 for vapor pressures ranging from 0.1 to 1000.1 Pascals -! giving a dewpoint temperature range of 197 to 279 Kelvin. -! -! Program History Log: -! 91-05-07 Iredell -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: call gtdpi -! -! Subprograms called: -! (ftdpixg) inlinable function to compute dewpoint temperature over ice -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx - real(krealfp) xmin,xmax,xinc,t,x,pv -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=0.1 - xmax=1000.1 - xinc=(xmax-xmin)/(nxtdpi-1) - c1xtdpi=1.-xmin/xinc - c2xtdpi=1./xinc - t=197.0 - do jx=1,nxtdpi - x=xmin+(jx-1)*xinc - pv=x - t=ftdpixg(t,pv) - tbtdpi(jx)=t - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental function ftdpi(pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdpi Compute dewpoint temperature over ice -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute dewpoint temperature from vapor pressure. -! A linear interpolation is done between values in a lookup table -! computed in gtdpi. See documentation for ftdpixg for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is better than 0.0005 Kelvin -! for dewpoint temperatures greater than 250 Kelvin, -! but decreases to 0.02 Kelvin for a dewpoint around 230 Kelvin. -! On the Cray, ftdpi is about 75 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: tdpi=ftdpi(pv) -! -! Input argument list: -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdpi Real(krealfp) dewpoint temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdpi - real(krealfp),intent(in):: pv - integer jx - real(krealfp) xj -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xtdpi+c2xtdpi*pv,1._krealfp),real(nxtdpi,krealfp)) - jx=min(xj,nxtdpi-1._krealfp) - ftdpi=tbtdpi(jx)+(xj-jx)*(tbtdpi(jx+1)-tbtdpi(jx)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftdpiq(pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdpiq Compute dewpoint temperature over ice -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute dewpoint temperature from vapor pressure. -! A quadratic interpolation is done between values in a lookup table -! computed in gtdpi. see documentation for ftdpixg for details. -! Input values outside table range are reset to table extrema. -! the interpolation accuracy is better than 0.00001 Kelvin -! for dewpoint temperatures greater than 250 Kelvin, -! but decreases to 0.002 Kelvin for a dewpoint around 230 Kelvin. -! On the Cray, ftdpiq is about 60 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell quadratic interpolation -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: tdpi=ftdpiq(pv) -! -! Input argument list: -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdpiq Real(krealfp) dewpoint temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdpiq - real(krealfp),intent(in):: pv - integer jx - real(krealfp) xj,dxj,fj1,fj2,fj3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xtdpi+c2xtdpi*pv,1._krealfp),real(nxtdpi,krealfp)) - jx=min(max(nint(xj),2),nxtdpi-1) - dxj=xj-jx - fj1=tbtdpi(jx-1) - fj2=tbtdpi(jx) - fj3=tbtdpi(jx+1) - ftdpiq=(((fj3+fj1)/2-fj2)*dxj+(fj3-fj1)/2)*dxj+fj2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftdpix(pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdpix Compute dewpoint temperature over ice -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: exactly compute dewpoint temperature from vapor pressure. -! An approximate dewpoint temperature for function ftdpixg -! is obtained using ftdpi so gtdpi must be already called. -! See documentation for ftdpixg for details. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: tdpi=ftdpix(pv) -! -! Input argument list: -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdpix Real(krealfp) dewpoint temperature in Kelvin -! -! Subprograms called: -! (ftdpi) inlinable function to compute dewpoint temperature over ice -! (ftdpixg) inlinable function to compute dewpoint temperature over ice -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdpix - real(krealfp),intent(in):: pv - real(krealfp) tg -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tg=ftdpi(pv) - ftdpix=ftdpixg(tg,pv) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftdpixg(tg,pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdpixg Compute dewpoint temperature over ice -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Exactly compute dewpoint temperature from vapor pressure. -! A guess dewpoint temperature must be provided. -! The water model assumes a perfect gas, constant specific heats -! for gas and ice, and neglects the volume of the ice. -! The model does account for the variation of the latent heat -! of sublimation with temperature. The liquid option is not included. -! The Clausius-Clapeyron equation is integrated from the triple point -! to get the formula -! pvs=con_psat*(tr**xa)*exp(xb*(1.-tr)) -! where tr is ttp/t and other values are physical constants. -! The formula is inverted by iterating Newtonian approximations -! for each pvs until t is found to within 1.e-6 Kelvin. -! This function can be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: tdpi=ftdpixg(tg,pv) -! -! Input argument list: -! tg Real(krealfp) guess dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdpixg Real(krealfp) dewpoint temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdpixg - real(krealfp),intent(in):: tg,pv - real(krealfp),parameter:: terrm=1.e-6 - real(krealfp),parameter:: dldt=con_cvap-con_csol - real(krealfp),parameter:: heat=con_hvap+con_hfus - real(krealfp),parameter:: xpona=-dldt/con_rv - real(krealfp),parameter:: xponb=-dldt/con_rv+heat/(con_rv*con_ttp) - real(krealfp) t,tr,pvt,el,dpvt,terr - integer i -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - t=tg - do i=1,100 - tr=con_ttp/t - pvt=con_psat*(tr**xpona)*exp(xponb*(1.-tr)) - el=heat+dldt*(t-con_ttp) - dpvt=el*pvt/(con_rv*t**2) - terr=(pvt-pv)/dpvt - t=t-terr - if(abs(terr).le.terrm) exit - enddo - ftdpixg=t -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - subroutine gtdp -!$$$ Subprogram Documentation Block -! -! Subprogram: gtdp Compute dewpoint temperature table -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute dewpoint temperature table as a function of -! vapor pressure for inlinable function ftdp. -! Exact dewpoint temperatures are calculated in subprogram ftdpxg. -! The current implementation computes a table with a length -! of 5001 for vapor pressures ranging from 0.5 to 1000.5 Pascals -! giving a dewpoint temperature range of 208 to 319 Kelvin. -! -! Program History Log: -! 91-05-07 Iredell -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: call gtdp -! -! Subprograms called: -! (ftdpxg) inlinable function to compute dewpoint temperature -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx - real(krealfp) xmin,xmax,xinc,t,x,pv -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=0.5 - xmax=10000.5 - xinc=(xmax-xmin)/(nxtdp-1) - c1xtdp=1.-xmin/xinc - c2xtdp=1./xinc - t=208.0 - do jx=1,nxtdp - x=xmin+(jx-1)*xinc - pv=x - t=ftdpxg(t,pv) - tbtdp(jx)=t - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental function ftdp(pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdp Compute dewpoint temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute dewpoint temperature from vapor pressure. -! A linear interpolation is done between values in a lookup table -! computed in gtdp. See documentation for ftdpxg for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is better than 0.0005 Kelvin -! for dewpoint temperatures greater than 250 Kelvin, -! but decreases to 0.02 Kelvin for a dewpoint around 230 Kelvin. -! On the Cray, ftdp is about 75 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: tdp=ftdp(pv) -! -! Input argument list: -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdp Real(krealfp) dewpoint temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdp - real(krealfp),intent(in):: pv - integer jx - real(krealfp) xj -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xtdp+c2xtdp*pv,1._krealfp),real(nxtdp,krealfp)) - jx=min(xj,nxtdp-1._krealfp) - ftdp=tbtdp(jx)+(xj-jx)*(tbtdp(jx+1)-tbtdp(jx)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftdpq(pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdpq Compute dewpoint temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute dewpoint temperature from vapor pressure. -! A quadratic interpolation is done between values in a lookup table -! computed in gtdp. see documentation for ftdpxg for details. -! Input values outside table range are reset to table extrema. -! the interpolation accuracy is better than 0.00001 Kelvin -! for dewpoint temperatures greater than 250 Kelvin, -! but decreases to 0.002 Kelvin for a dewpoint around 230 Kelvin. -! On the Cray, ftdpq is about 60 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell quadratic interpolation -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: tdp=ftdpq(pv) -! -! Input argument list: -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdpq Real(krealfp) dewpoint temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdpq - real(krealfp),intent(in):: pv - integer jx - real(krealfp) xj,dxj,fj1,fj2,fj3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xtdp+c2xtdp*pv,1._krealfp),real(nxtdp,krealfp)) - jx=min(max(nint(xj),2),nxtdp-1) - dxj=xj-jx - fj1=tbtdp(jx-1) - fj2=tbtdp(jx) - fj3=tbtdp(jx+1) - ftdpq=(((fj3+fj1)/2-fj2)*dxj+(fj3-fj1)/2)*dxj+fj2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftdpx(pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdpx Compute dewpoint temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: exactly compute dewpoint temperature from vapor pressure. -! An approximate dewpoint temperature for function ftdpxg -! is obtained using ftdp so gtdp must be already called. -! See documentation for ftdpxg for details. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: tdp=ftdpx(pv) -! -! Input argument list: -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdpx Real(krealfp) dewpoint temperature in Kelvin -! -! Subprograms called: -! (ftdp) inlinable function to compute dewpoint temperature -! (ftdpxg) inlinable function to compute dewpoint temperature -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdpx - real(krealfp),intent(in):: pv - real(krealfp) tg -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tg=ftdp(pv) - ftdpx=ftdpxg(tg,pv) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftdpxg(tg,pv) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftdpxg Compute dewpoint temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Exactly compute dewpoint temperature from vapor pressure. -! A guess dewpoint temperature must be provided. -! The saturation vapor pressure over either liquid and ice is computed -! over liquid for temperatures above the triple point, -! over ice for temperatures 20 degress below the triple point, -! and a linear combination of the two for temperatures in between. -! The water model assumes a perfect gas, constant specific heats -! for gas, liquid and ice, and neglects the volume of the condensate. -! The model does account for the variation of the latent heat -! of condensation and sublimation with temperature. -! The Clausius-Clapeyron equation is integrated from the triple point -! to get the formula -! pvsl=con_psat*(tr**xa)*exp(xb*(1.-tr)) -! where tr is ttp/t and other values are physical constants. -! The reference for this decision is Emanuel(1994), pages 116-117. -! The formula is inverted by iterating Newtonian approximations -! for each pvs until t is found to within 1.e-6 Kelvin. -! This function can be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! 2001-02-26 Iredell ice phase -! -! Usage: tdp=ftdpxg(tg,pv) -! -! Input argument list: -! tg Real(krealfp) guess dewpoint temperature in Kelvin -! pv Real(krealfp) vapor pressure in Pascals -! -! Output argument list: -! ftdpxg Real(krealfp) dewpoint temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftdpxg - real(krealfp),intent(in):: tg,pv - real(krealfp),parameter:: terrm=1.e-6 - real(krealfp),parameter:: tliq=con_ttp - real(krealfp),parameter:: tice=con_ttp-20.0 - real(krealfp),parameter:: dldtl=con_cvap-con_cliq - real(krealfp),parameter:: heatl=con_hvap - real(krealfp),parameter:: xponal=-dldtl/con_rv - real(krealfp),parameter:: xponbl=-dldtl/con_rv+heatl/(con_rv*con_ttp) - real(krealfp),parameter:: dldti=con_cvap-con_csol - real(krealfp),parameter:: heati=con_hvap+con_hfus - real(krealfp),parameter:: xponai=-dldti/con_rv - real(krealfp),parameter:: xponbi=-dldti/con_rv+heati/(con_rv*con_ttp) - real(krealfp) t,tr,w,pvtl,pvti,pvt,ell,eli,el,dpvt,terr - integer i -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - t=tg - do i=1,100 - tr=con_ttp/t - if(t.ge.tliq) then - pvt=con_psat*(tr**xponal)*exp(xponbl*(1.-tr)) - el=heatl+dldtl*(t-con_ttp) - dpvt=el*pvt/(con_rv*t**2) - elseif(t.lt.tice) then - pvt=con_psat*(tr**xponai)*exp(xponbi*(1.-tr)) - el=heati+dldti*(t-con_ttp) - dpvt=el*pvt/(con_rv*t**2) - else - w=(t-tice)/(tliq-tice) - pvtl=con_psat*(tr**xponal)*exp(xponbl*(1.-tr)) - pvti=con_psat*(tr**xponai)*exp(xponbi*(1.-tr)) - pvt=w*pvtl+(1.-w)*pvti - ell=heatl+dldtl*(t-con_ttp) - eli=heati+dldti*(t-con_ttp) - dpvt=(w*ell*pvtl+(1.-w)*eli*pvti)/(con_rv*t**2) - endif - terr=(pvt-pv)/dpvt - t=t-terr - if(abs(terr).le.terrm) exit - enddo - ftdpxg=t -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - subroutine gthe -!$$$ Subprogram Documentation Block -! -! Subprogram: gthe Compute equivalent potential temperature table -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute equivalent potential temperature table -! as a function of LCL temperature and pressure over 1e5 Pa -! to the kappa power for function fthe. -! Equivalent potential temperatures are calculated in subprogram fthex -! the current implementation computes a table with a first dimension -! of 241 for temperatures ranging from 183.16 to 303.16 Kelvin -! and a second dimension of 151 for pressure over 1e5 Pa -! to the kappa power ranging from 0.04**rocp to 1.10**rocp. -! -! Program History Log: -! 91-05-07 Iredell -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! -! Usage: call gthe -! -! Subprograms called: -! (fthex) inlinable function to compute equiv. pot. temperature -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx,jy - real(krealfp) xmin,xmax,ymin,ymax,xinc,yinc,x,y,pk,t -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=con_ttp-90._krealfp - xmax=con_ttp+30._krealfp - ymin=0.04_krealfp**con_rocp - ymax=1.10_krealfp**con_rocp - xinc=(xmax-xmin)/(nxthe-1) - c1xthe=1.-xmin/xinc - c2xthe=1./xinc - yinc=(ymax-ymin)/(nythe-1) - c1ythe=1.-ymin/yinc - c2ythe=1./yinc - do jy=1,nythe - y=ymin+(jy-1)*yinc - pk=y - do jx=1,nxthe - x=xmin+(jx-1)*xinc - t=x - tbthe(jx,jy)=fthex(t,pk) - enddo - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental function fthe(t,pk) -!$$$ Subprogram Documentation Block -! -! Subprogram: fthe Compute equivalent potential temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute equivalent potential temperature at the LCL -! from temperature and pressure over 1e5 Pa to the kappa power. -! A bilinear interpolation is done between values in a lookup table -! computed in gthe. see documentation for fthex for details. -! Input values outside table range are reset to table extrema, -! except zero is returned for too cold or high LCLs. -! The interpolation accuracy is better than 0.01 Kelvin. -! On the Cray, fthe is almost 6 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! -! Usage: the=fthe(t,pk) -! -! Input argument list: -! t Real(krealfp) LCL temperature in Kelvin -! pk Real(krealfp) LCL pressure over 1e5 Pa to the kappa power -! -! Output argument list: -! fthe Real(krealfp) equivalent potential temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fthe - real(krealfp),intent(in):: t,pk - integer jx,jy - real(krealfp) xj,yj,ftx1,ftx2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(c1xthe+c2xthe*t,real(nxthe,krealfp)) - yj=min(c1ythe+c2ythe*pk,real(nythe,krealfp)) - if(xj.ge.1..and.yj.ge.1.) then - jx=min(xj,nxthe-1._krealfp) - jy=min(yj,nythe-1._krealfp) - ftx1=tbthe(jx,jy)+(xj-jx)*(tbthe(jx+1,jy)-tbthe(jx,jy)) - ftx2=tbthe(jx,jy+1)+(xj-jx)*(tbthe(jx+1,jy+1)-tbthe(jx,jy+1)) - fthe=ftx1+(yj-jy)*(ftx2-ftx1) - else - fthe=0. - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftheq(t,pk) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftheq Compute equivalent potential temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute equivalent potential temperature at the LCL -! from temperature and pressure over 1e5 Pa to the kappa power. -! A biquadratic interpolation is done between values in a lookup table -! computed in gthe. see documentation for fthex for details. -! Input values outside table range are reset to table extrema, -! except zero is returned for too cold or high LCLs. -! The interpolation accuracy is better than 0.0002 Kelvin. -! On the Cray, ftheq is almost 3 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell quadratic interpolation -! 1999-03-01 Iredell f90 module -! -! Usage: the=ftheq(t,pk) -! -! Input argument list: -! t Real(krealfp) LCL temperature in Kelvin -! pk Real(krealfp) LCL pressure over 1e5 Pa to the kappa power -! -! Output argument list: -! ftheq Real(krealfp) equivalent potential temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftheq - real(krealfp),intent(in):: t,pk - integer jx,jy - real(krealfp) xj,yj,dxj,dyj - real(krealfp) ft11,ft12,ft13,ft21,ft22,ft23,ft31,ft32,ft33 - real(krealfp) ftx1,ftx2,ftx3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(c1xthe+c2xthe*t,real(nxthe,krealfp)) - yj=min(c1ythe+c2ythe*pk,real(nythe,krealfp)) - if(xj.ge.1..and.yj.ge.1.) then - jx=min(max(nint(xj),2),nxthe-1) - jy=min(max(nint(yj),2),nythe-1) - dxj=xj-jx - dyj=yj-jy - ft11=tbthe(jx-1,jy-1) - ft12=tbthe(jx-1,jy) - ft13=tbthe(jx-1,jy+1) - ft21=tbthe(jx,jy-1) - ft22=tbthe(jx,jy) - ft23=tbthe(jx,jy+1) - ft31=tbthe(jx+1,jy-1) - ft32=tbthe(jx+1,jy) - ft33=tbthe(jx+1,jy+1) - ftx1=(((ft31+ft11)/2-ft21)*dxj+(ft31-ft11)/2)*dxj+ft21 - ftx2=(((ft32+ft12)/2-ft22)*dxj+(ft32-ft12)/2)*dxj+ft22 - ftx3=(((ft33+ft13)/2-ft23)*dxj+(ft33-ft13)/2)*dxj+ft23 - ftheq=(((ftx3+ftx1)/2-ftx2)*dyj+(ftx3-ftx1)/2)*dyj+ftx2 - else - ftheq=0. - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- -! elemental function fthex(t,pk) - function fthex(t,pk) -!$$$ Subprogram Documentation Block -! -! Subprogram: fthex Compute equivalent potential temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Exactly compute equivalent potential temperature at the LCL -! from temperature and pressure over 1e5 Pa to the kappa power. -! Equivalent potential temperature is constant for a saturated parcel -! rising adiabatically up a moist adiabat when the heat and mass -! of the condensed water are neglected. Ice is also neglected. -! The formula for equivalent potential temperature (Holton) is -! the=t*(pd**(-rocp))*exp(el*eps*pv/(cp*t*pd)) -! where t is the temperature, pv is the saturated vapor pressure, -! pd is the dry pressure p-pv, el is the temperature dependent -! latent heat of condensation hvap+dldt*(t-ttp), and other values -! are physical constants defined in parameter statements in the code. -! Zero is returned if the input values make saturation impossible. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! -! Usage: the=fthex(t,pk) -! -! Input argument list: -! t Real(krealfp) LCL temperature in Kelvin -! pk Real(krealfp) LCL pressure over 1e5 Pa to the kappa power -! -! Output argument list: -! fthex Real(krealfp) equivalent potential temperature in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fthex - real(krealfp),intent(in):: t,pk - real(krealfp) p,tr,pv,pd,el,expo,expmax -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - p=pk**con_cpor - tr=con_ttp/t - pv=psatb*(tr**con_xpona)*exp(con_xponb*(1.-tr)) - pd=p-pv - if(pd.gt.pv) then - el=con_hvap+con_dldt*(t-con_ttp) - expo=el*con_eps*pv/(con_cp*t*pd) - fthex=t*pd**(-con_rocp)*exp(expo) - else - fthex=0. - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - subroutine gtma -!$$$ Subprogram Documentation Block -! -! Subprogram: gtma Compute moist adiabat tables -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute temperature and specific humidity tables -! as a function of equivalent potential temperature and -! pressure over 1e5 Pa to the kappa power for subprogram stma. -! Exact parcel temperatures are calculated in subprogram stmaxg. -! The current implementation computes a table with a first dimension -! of 151 for equivalent potential temperatures ranging from 200 to 500 -! Kelvin and a second dimension of 121 for pressure over 1e5 Pa -! to the kappa power ranging from 0.01**rocp to 1.10**rocp. -! -! Program History Log: -! 91-05-07 Iredell -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! -! Usage: call gtma -! -! Subprograms called: -! (stmaxg) inlinable subprogram to compute parcel temperature -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx,jy - real(krealfp) xmin,xmax,ymin,ymax,xinc,yinc,x,y,pk,the,t,q,tg -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=200._krealfp - xmax=500._krealfp - ymin=0.01_krealfp**con_rocp - ymax=1.10_krealfp**con_rocp - xinc=(xmax-xmin)/(nxma-1) - c1xma=1.-xmin/xinc - c2xma=1./xinc - yinc=(ymax-ymin)/(nyma-1) - c1yma=1.-ymin/yinc - c2yma=1./yinc - do jy=1,nyma - y=ymin+(jy-1)*yinc - pk=y - tg=xmin*y - do jx=1,nxma - x=xmin+(jx-1)*xinc - the=x - call stmaxg(tg,the,pk,t,q) - tbtma(jx,jy)=t - tbqma(jx,jy)=q - tg=t - enddo - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental subroutine stma(the,pk,tma,qma) -!$$$ Subprogram Documentation Block -! -! Subprogram: stma Compute moist adiabat temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute temperature and specific humidity of a parcel -! lifted up a moist adiabat from equivalent potential temperature -! at the LCL and pressure over 1e5 Pa to the kappa power. -! Bilinear interpolations are done between values in a lookup table -! computed in gtma. See documentation for stmaxg for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is better than 0.01 Kelvin -! and 5.e-6 kg/kg for temperature and humidity, respectively. -! On the Cray, stma is about 35 times faster than exact calculation. -! This subprogram should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell expand table -! 1999-03-01 Iredell f90 module -! -! Usage: call stma(the,pk,tma,qma) -! -! Input argument list: -! the Real(krealfp) equivalent potential temperature in Kelvin -! pk Real(krealfp) pressure over 1e5 Pa to the kappa power -! -! Output argument list: -! tma Real(krealfp) parcel temperature in Kelvin -! qma Real(krealfp) parcel specific humidity in kg/kg -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp),intent(in):: the,pk - real(krealfp),intent(out):: tma,qma - integer jx,jy - real(krealfp) xj,yj,ftx1,ftx2,qx1,qx2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xma+c2xma*the,1._krealfp),real(nxma,krealfp)) - yj=min(max(c1yma+c2yma*pk,1._krealfp),real(nyma,krealfp)) - jx=min(xj,nxma-1._krealfp) - jy=min(yj,nyma-1._krealfp) - ftx1=tbtma(jx,jy)+(xj-jx)*(tbtma(jx+1,jy)-tbtma(jx,jy)) - ftx2=tbtma(jx,jy+1)+(xj-jx)*(tbtma(jx+1,jy+1)-tbtma(jx,jy+1)) - tma=ftx1+(yj-jy)*(ftx2-ftx1) - qx1=tbqma(jx,jy)+(xj-jx)*(tbqma(jx+1,jy)-tbqma(jx,jy)) - qx2=tbqma(jx,jy+1)+(xj-jx)*(tbqma(jx+1,jy+1)-tbqma(jx,jy+1)) - qma=qx1+(yj-jy)*(qx2-qx1) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental subroutine stmaq(the,pk,tma,qma) -!$$$ Subprogram Documentation Block -! -! Subprogram: stmaq Compute moist adiabat temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute temperature and specific humidity of a parcel -! lifted up a moist adiabat from equivalent potential temperature -! at the LCL and pressure over 1e5 Pa to the kappa power. -! Biquadratic interpolations are done between values in a lookup table -! computed in gtma. See documentation for stmaxg for details. -! Input values outside table range are reset to table extrema. -! the interpolation accuracy is better than 0.0005 Kelvin -! and 1.e-7 kg/kg for temperature and humidity, respectively. -! On the Cray, stmaq is about 25 times faster than exact calculation. -! This subprogram should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell quadratic interpolation -! 1999-03-01 Iredell f90 module -! -! Usage: call stmaq(the,pk,tma,qma) -! -! Input argument list: -! the Real(krealfp) equivalent potential temperature in Kelvin -! pk Real(krealfp) pressure over 1e5 Pa to the kappa power -! -! Output argument list: -! tmaq Real(krealfp) parcel temperature in Kelvin -! qma Real(krealfp) parcel specific humidity in kg/kg -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp),intent(in):: the,pk - real(krealfp),intent(out):: tma,qma - integer jx,jy - real(krealfp) xj,yj,dxj,dyj - real(krealfp) ft11,ft12,ft13,ft21,ft22,ft23,ft31,ft32,ft33 - real(krealfp) ftx1,ftx2,ftx3 - real(krealfp) q11,q12,q13,q21,q22,q23,q31,q32,q33,qx1,qx2,qx3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xma+c2xma*the,1._krealfp),real(nxma,krealfp)) - yj=min(max(c1yma+c2yma*pk,1._krealfp),real(nyma,krealfp)) - jx=min(max(nint(xj),2),nxma-1) - jy=min(max(nint(yj),2),nyma-1) - dxj=xj-jx - dyj=yj-jy - ft11=tbtma(jx-1,jy-1) - ft12=tbtma(jx-1,jy) - ft13=tbtma(jx-1,jy+1) - ft21=tbtma(jx,jy-1) - ft22=tbtma(jx,jy) - ft23=tbtma(jx,jy+1) - ft31=tbtma(jx+1,jy-1) - ft32=tbtma(jx+1,jy) - ft33=tbtma(jx+1,jy+1) - ftx1=(((ft31+ft11)/2-ft21)*dxj+(ft31-ft11)/2)*dxj+ft21 - ftx2=(((ft32+ft12)/2-ft22)*dxj+(ft32-ft12)/2)*dxj+ft22 - ftx3=(((ft33+ft13)/2-ft23)*dxj+(ft33-ft13)/2)*dxj+ft23 - tma=(((ftx3+ftx1)/2-ftx2)*dyj+(ftx3-ftx1)/2)*dyj+ftx2 - q11=tbqma(jx-1,jy-1) - q12=tbqma(jx-1,jy) - q13=tbqma(jx-1,jy+1) - q21=tbqma(jx,jy-1) - q22=tbqma(jx,jy) - q23=tbqma(jx,jy+1) - q31=tbqma(jx+1,jy-1) - q32=tbqma(jx+1,jy) - q33=tbqma(jx+1,jy+1) - qx1=(((q31+q11)/2-q21)*dxj+(q31-q11)/2)*dxj+q21 - qx2=(((q32+q12)/2-q22)*dxj+(q32-q12)/2)*dxj+q22 - qx3=(((q33+q13)/2-q23)*dxj+(q33-q13)/2)*dxj+q23 - qma=(((qx3+qx1)/2-qx2)*dyj+(qx3-qx1)/2)*dyj+qx2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental subroutine stmax(the,pk,tma,qma) -!$$$ Subprogram Documentation Block -! -! Subprogram: stmax Compute moist adiabat temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Exactly compute temperature and humidity of a parcel -! lifted up a moist adiabat from equivalent potential temperature -! at the LCL and pressure over 1e5 Pa to the kappa power. -! An approximate parcel temperature for subprogram stmaxg -! is obtained using stma so gtma must be already called. -! See documentation for stmaxg for details. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! -! Usage: call stmax(the,pk,tma,qma) -! -! Input argument list: -! the Real(krealfp) equivalent potential temperature in Kelvin -! pk Real(krealfp) pressure over 1e5 Pa to the kappa power -! -! Output argument list: -! tma Real(krealfp) parcel temperature in Kelvin -! qma Real(krealfp) parcel specific humidity in kg/kg -! -! Subprograms called: -! (stma) inlinable subprogram to compute parcel temperature -! (stmaxg) inlinable subprogram to compute parcel temperature -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp),intent(in):: the,pk - real(krealfp),intent(out):: tma,qma - real(krealfp) tg,qg -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call stma(the,pk,tg,qg) - call stmaxg(tg,the,pk,tma,qma) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental subroutine stmaxg(tg,the,pk,tma,qma) -!$$$ Subprogram Documentation Block -! -! Subprogram: stmaxg Compute moist adiabat temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: exactly compute temperature and humidity of a parcel -! lifted up a moist adiabat from equivalent potential temperature -! at the LCL and pressure over 1e5 Pa to the kappa power. -! A guess parcel temperature must be provided. -! Equivalent potential temperature is constant for a saturated parcel -! rising adiabatically up a moist adiabat when the heat and mass -! of the condensed water are neglected. Ice is also neglected. -! The formula for equivalent potential temperature (Holton) is -! the=t*(pd**(-rocp))*exp(el*eps*pv/(cp*t*pd)) -! where t is the temperature, pv is the saturated vapor pressure, -! pd is the dry pressure p-pv, el is the temperature dependent -! latent heat of condensation hvap+dldt*(t-ttp), and other values -! are physical constants defined in parameter statements in the code. -! The formula is inverted by iterating Newtonian approximations -! for each the and p until t is found to within 1.e-4 Kelvin. -! The specific humidity is then computed from pv and pd. -! This subprogram can be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell exact computation -! 1999-03-01 Iredell f90 module -! -! Usage: call stmaxg(tg,the,pk,tma,qma) -! -! Input argument list: -! tg Real(krealfp) guess parcel temperature in Kelvin -! the Real(krealfp) equivalent potential temperature in Kelvin -! pk Real(krealfp) pressure over 1e5 Pa to the kappa power -! -! Output argument list: -! tma Real(krealfp) parcel temperature in Kelvin -! qma Real(krealfp) parcel specific humidity in kg/kg -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp),intent(in):: tg,the,pk - real(krealfp),intent(out):: tma,qma - real(krealfp),parameter:: terrm=1.e-4 - real(krealfp) t,p,tr,pv,pd,el,expo,thet,dthet,terr - integer i -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - t=tg - p=pk**con_cpor - do i=1,100 - tr=con_ttp/t - pv=psatb*(tr**con_xpona)*exp(con_xponb*(1.-tr)) - pd=p-pv - el=con_hvap+con_dldt*(t-con_ttp) - expo=el*con_eps*pv/(con_cp*t*pd) - thet=t*pd**(-con_rocp)*exp(expo) - dthet=thet/t*(1.+expo*(con_dldt*t/el+el*p/(con_rv*t*pd))) - terr=(thet-the)/dthet - t=t-terr - if(abs(terr).le.terrm) exit - enddo - tma=t - tr=con_ttp/t - pv=psatb*(tr**con_xpona)*exp(con_xponb*(1.-tr)) - pd=p-pv - qma=con_eps*pv/(pd+con_eps*pv) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine gpkap -!$$$ Subprogram documentation block -! -! Subprogram: gpkap Compute coefficients for p**kappa -! Author: Phillips org: w/NMC2X2 Date: 29 dec 82 -! -! Abstract: Computes pressure to the kappa table as a function of pressure -! for the table lookup function fpkap. -! Exact pressure to the kappa values are calculated in subprogram fpkapx. -! The current implementation computes a table with a length -! of 11001 for pressures ranging up to 110000 Pascals. -! -! Program History Log: -! 94-12-30 Iredell -! 1999-03-01 Iredell f90 module -! 1999-03-24 Iredell table lookup -! -! Usage: call gpkap -! -! Subprograms called: -! fpkapx function to compute exact pressure to the kappa -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx - real(krealfp) xmin,xmax,xinc,x,p -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=0._krealfp - xmax=110000._krealfp - xinc=(xmax-xmin)/(nxpkap-1) - c1xpkap=1.-xmin/xinc - c2xpkap=1./xinc - do jx=1,nxpkap - x=xmin+(jx-1)*xinc - p=x - tbpkap(jx)=fpkapx(p) - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental function fpkap(p) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpkap raise pressure to the kappa power. -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Raise pressure over 1e5 Pa to the kappa power. -! A linear interpolation is done between values in a lookup table -! computed in gpkap. See documentation for fpkapx for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy ranges from 9 decimal places -! at 100000 Pascals to 5 decimal places at 1000 Pascals. -! On the Cray, fpkap is over 5 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell standardized kappa, -! increased range and accuracy -! 1999-03-01 Iredell f90 module -! 1999-03-24 Iredell table lookup -! -! Usage: pkap=fpkap(p) -! -! Input argument list: -! p Real(krealfp) pressure in Pascals -! -! Output argument list: -! fpkap Real(krealfp) p over 1e5 Pa to the kappa power -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpkap - real(krealfp),intent(in):: p - integer jx - real(krealfp) xj -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xpkap+c2xpkap*p,1._krealfp),real(nxpkap,krealfp)) - jx=min(xj,nxpkap-1._krealfp) - fpkap=tbpkap(jx)+(xj-jx)*(tbpkap(jx+1)-tbpkap(jx)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function fpkapq(p) -!$$$ Subprogram Documentation Block -! -! Subprogram: fpkapq raise pressure to the kappa power. -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Raise pressure over 1e5 Pa to the kappa power. -! A quadratic interpolation is done between values in a lookup table -! computed in gpkap. see documentation for fpkapx for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy ranges from 12 decimal places -! at 100000 Pascals to 7 decimal places at 1000 Pascals. -! On the Cray, fpkap is over 4 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell standardized kappa, -! increased range and accuracy -! 1999-03-01 Iredell f90 module -! 1999-03-24 Iredell table lookup -! -! Usage: pkap=fpkapq(p) -! -! Input argument list: -! p Real(krealfp) pressure in Pascals -! -! Output argument list: -! fpkapq Real(krealfp) p over 1e5 Pa to the kappa power -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpkapq - real(krealfp),intent(in):: p - integer jx - real(krealfp) xj,dxj,fj1,fj2,fj3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xpkap+c2xpkap*p,1._krealfp),real(nxpkap,krealfp)) - jx=min(max(nint(xj),2),nxpkap-1) - dxj=xj-jx - fj1=tbpkap(jx-1) - fj2=tbpkap(jx) - fj3=tbpkap(jx+1) - fpkapq=(((fj3+fj1)/2-fj2)*dxj+(fj3-fj1)/2)*dxj+fj2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - function fpkapo(p) -!$$$ Subprogram documentation block -! -! Subprogram: fpkapo raise surface pressure to the kappa power. -! Author: Phillips org: w/NMC2X2 Date: 29 dec 82 -! -! Abstract: Raise surface pressure over 1e5 Pa to the kappa power -! using a rational weighted chebyshev approximation. -! The numerator is of order 2 and the denominator is of order 4. -! The pressure range is 40000-110000 Pa and kappa is defined in fpkapx. -! The accuracy of this approximation is almost 8 decimal places. -! On the Cray, fpkap is over 10 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell standardized kappa, -! increased range and accuracy -! 1999-03-01 Iredell f90 module -! -! Usage: pkap=fpkapo(p) -! -! Input argument list: -! p Real(krealfp) surface pressure in Pascals -! p should be in the range 40000 to 110000 -! -! Output argument list: -! fpkapo Real(krealfp) p over 1e5 Pa to the kappa power -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpkapo - real(krealfp),intent(in):: p - integer,parameter:: nnpk=2,ndpk=4 - real(krealfp):: cnpk(0:nnpk)=(/3.13198449e-1,5.78544829e-2,& - 8.35491871e-4/) - real(krealfp):: cdpk(0:ndpk)=(/1.,8.15968401e-2,5.72839518e-4,& - -4.86959812e-7,5.24459889e-10/) - integer n - real(krealfp) pkpa,fnpk,fdpk -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - pkpa=p*1.e-3_krealfp - fnpk=cnpk(nnpk) - do n=nnpk-1,0,-1 - fnpk=pkpa*fnpk+cnpk(n) - enddo - fdpk=cdpk(ndpk) - do n=ndpk-1,0,-1 - fdpk=pkpa*fdpk+cdpk(n) - enddo - fpkapo=fnpk/fdpk -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function fpkapx(p) -!$$$ Subprogram documentation block -! -! Subprogram: fpkapx raise pressure to the kappa power. -! Author: Phillips org: w/NMC2X2 Date: 29 dec 82 -! -! Abstract: raise pressure over 1e5 Pa to the kappa power. -! Kappa is equal to rd/cp where rd and cp are physical constants. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 94-12-30 Iredell made into inlinable function -! 1999-03-01 Iredell f90 module -! -! Usage: pkap=fpkapx(p) -! -! Input argument list: -! p Real(krealfp) pressure in Pascals -! -! Output argument list: -! fpkapx Real(krealfp) p over 1e5 Pa to the kappa power -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) fpkapx - real(krealfp),intent(in):: p -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fpkapx=(p/1.e5_krealfp)**con_rocp -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - subroutine grkap -!$$$ Subprogram documentation block -! -! Subprogram: grkap Compute coefficients for p**(1/kappa) -! Author: Phillips org: w/NMC2X2 Date: 29 dec 82 -! -! Abstract: Computes pressure to the 1/kappa table as a function of pressure -! for the table lookup function frkap. -! Exact pressure to the 1/kappa values are calculated in subprogram frkapx. -! The current implementation computes a table with a length -! of 11001 for pressures ranging up to 110000 Pascals. -! -! Program History Log: -! 94-12-30 Iredell -! 1999-03-01 Iredell f90 module -! 1999-03-24 Iredell table lookup -! -! Usage: call grkap -! -! Subprograms called: -! frkapx function to compute exact pressure to the 1/kappa -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx - real(krealfp) xmin,xmax,xinc,x,p -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=0._krealfp - xmax=fpkapx(110000._krealfp) - xinc=(xmax-xmin)/(nxrkap-1) - c1xrkap=1.-xmin/xinc - c2xrkap=1./xinc - do jx=1,nxrkap - x=xmin+(jx-1)*xinc - p=x - tbrkap(jx)=frkapx(p) - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental function frkap(pkap) -!$$$ Subprogram Documentation Block -! -! Subprogram: frkap raise pressure to the 1/kappa power. -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Raise pressure over 1e5 Pa to the 1/kappa power. -! A linear interpolation is done between values in a lookup table -! computed in grkap. See documentation for frkapx for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is better than 7 decimal places. -! On the IBM, fpkap is about 4 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell standardized kappa, -! increased range and accuracy -! 1999-03-01 Iredell f90 module -! 1999-03-24 Iredell table lookup -! -! Usage: p=frkap(pkap) -! -! Input argument list: -! pkap Real(krealfp) p over 1e5 Pa to the kappa power -! -! Output argument list: -! frkap Real(krealfp) pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) frkap - real(krealfp),intent(in):: pkap - integer jx - real(krealfp) xj -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xrkap+c2xrkap*pkap,1._krealfp),real(nxrkap,krealfp)) - jx=min(xj,nxrkap-1._krealfp) - frkap=tbrkap(jx)+(xj-jx)*(tbrkap(jx+1)-tbrkap(jx)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function frkapq(pkap) -!$$$ Subprogram Documentation Block -! -! Subprogram: frkapq raise pressure to the 1/kappa power. -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Raise pressure over 1e5 Pa to the 1/kappa power. -! A quadratic interpolation is done between values in a lookup table -! computed in grkap. see documentation for frkapx for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is better than 11 decimal places. -! On the IBM, fpkap is almost 4 times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 94-12-30 Iredell standardized kappa, -! increased range and accuracy -! 1999-03-01 Iredell f90 module -! 1999-03-24 Iredell table lookup -! -! Usage: p=frkapq(pkap) -! -! Input argument list: -! pkap Real(krealfp) p over 1e5 Pa to the kappa power -! -! Output argument list: -! frkapq Real(krealfp) pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) frkapq - real(krealfp),intent(in):: pkap - integer jx - real(krealfp) xj,dxj,fj1,fj2,fj3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xrkap+c2xrkap*pkap,1._krealfp),real(nxrkap,krealfp)) - jx=min(max(nint(xj),2),nxrkap-1) - dxj=xj-jx - fj1=tbrkap(jx-1) - fj2=tbrkap(jx) - fj3=tbrkap(jx+1) - frkapq=(((fj3+fj1)/2-fj2)*dxj+(fj3-fj1)/2)*dxj+fj2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function frkapx(pkap) -!$$$ Subprogram documentation block -! -! Subprogram: frkapx raise pressure to the 1/kappa power. -! Author: Phillips org: w/NMC2X2 Date: 29 dec 82 -! -! Abstract: raise pressure over 1e5 Pa to the 1/kappa power. -! Kappa is equal to rd/cp where rd and cp are physical constants. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 94-12-30 Iredell made into inlinable function -! 1999-03-01 Iredell f90 module -! -! Usage: p=frkapx(pkap) -! -! Input argument list: -! pkap Real(krealfp) p over 1e5 Pa to the kappa power -! -! Output argument list: -! frkapx Real(krealfp) pressure in Pascals -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) frkapx - real(krealfp),intent(in):: pkap -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - frkapx=pkap**(1/con_rocp)*1.e5_krealfp -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - subroutine gtlcl -!$$$ Subprogram Documentation Block -! -! Subprogram: gtlcl Compute equivalent potential temperature table -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute lifting condensation level temperature table -! as a function of temperature and dewpoint depression for function ftlcl. -! Lifting condensation level temperature is calculated in subprogram ftlclx -! The current implementation computes a table with a first dimension -! of 151 for temperatures ranging from 180.0 to 330.0 Kelvin -! and a second dimension of 61 for dewpoint depression ranging from -! 0 to 60 Kelvin. -! -! Program History Log: -! 1999-03-01 Iredell f90 module -! -! Usage: call gtlcl -! -! Subprograms called: -! (ftlclx) inlinable function to compute LCL temperature -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - integer jx,jy - real(krealfp) xmin,xmax,ymin,ymax,xinc,yinc,x,y,tdpd,t -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xmin=180._krealfp - xmax=330._krealfp - ymin=0._krealfp - ymax=60._krealfp - xinc=(xmax-xmin)/(nxtlcl-1) - c1xtlcl=1.-xmin/xinc - c2xtlcl=1./xinc - yinc=(ymax-ymin)/(nytlcl-1) - c1ytlcl=1.-ymin/yinc - c2ytlcl=1./yinc - do jy=1,nytlcl - y=ymin+(jy-1)*yinc - tdpd=y - do jx=1,nxtlcl - x=xmin+(jx-1)*xinc - t=x - tbtlcl(jx,jy)=ftlclx(t,tdpd) - enddo - enddo -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - elemental function ftlcl(t,tdpd) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftlcl Compute LCL temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute temperature at the lifting condensation level -! from temperature and dewpoint depression. -! A bilinear interpolation is done between values in a lookup table -! computed in gtlcl. See documentation for ftlclx for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is better than 0.0005 Kelvin. -! On the Cray, ftlcl is ? times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 1999-03-01 Iredell f90 module -! -! Usage: tlcl=ftlcl(t,tdpd) -! -! Input argument list: -! t Real(krealfp) LCL temperature in Kelvin -! tdpd Real(krealfp) dewpoint depression in Kelvin -! -! Output argument list: -! ftlcl Real(krealfp) temperature at the LCL in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftlcl - real(krealfp),intent(in):: t,tdpd - integer jx,jy - real(krealfp) xj,yj,ftx1,ftx2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xtlcl+c2xtlcl*t,1._krealfp),real(nxtlcl,krealfp)) - yj=min(max(c1ytlcl+c2ytlcl*tdpd,1._krealfp),real(nytlcl,krealfp)) - jx=min(xj,nxtlcl-1._krealfp) - jy=min(yj,nytlcl-1._krealfp) - ftx1=tbtlcl(jx,jy)+(xj-jx)*(tbtlcl(jx+1,jy)-tbtlcl(jx,jy)) - ftx2=tbtlcl(jx,jy+1)+(xj-jx)*(tbtlcl(jx+1,jy+1)-tbtlcl(jx,jy+1)) - ftlcl=ftx1+(yj-jy)*(ftx2-ftx1) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftlclq(t,tdpd) -!$$$ Subprogram Documentation Block -! -! Subprogram: ftlclq Compute LCL temperature -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute temperature at the lifting condensation level -! from temperature and dewpoint depression. -! A biquadratic interpolation is done between values in a lookup table -! computed in gtlcl. see documentation for ftlclx for details. -! Input values outside table range are reset to table extrema. -! The interpolation accuracy is better than 0.000003 Kelvin. -! On the Cray, ftlclq is ? times faster than exact calculation. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 1999-03-01 Iredell f90 module -! -! Usage: tlcl=ftlclq(t,tdpd) -! -! Input argument list: -! t Real(krealfp) LCL temperature in Kelvin -! tdpd Real(krealfp) dewpoint depression in Kelvin -! -! Output argument list: -! ftlcl Real(krealfp) temperature at the LCL in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftlclq - real(krealfp),intent(in):: t,tdpd - integer jx,jy - real(krealfp) xj,yj,dxj,dyj - real(krealfp) ft11,ft12,ft13,ft21,ft22,ft23,ft31,ft32,ft33 - real(krealfp) ftx1,ftx2,ftx3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - xj=min(max(c1xtlcl+c2xtlcl*t,1._krealfp),real(nxtlcl,krealfp)) - yj=min(max(c1ytlcl+c2ytlcl*tdpd,1._krealfp),real(nytlcl,krealfp)) - jx=min(max(nint(xj),2),nxtlcl-1) - jy=min(max(nint(yj),2),nytlcl-1) - dxj=xj-jx - dyj=yj-jy - ft11=tbtlcl(jx-1,jy-1) - ft12=tbtlcl(jx-1,jy) - ft13=tbtlcl(jx-1,jy+1) - ft21=tbtlcl(jx,jy-1) - ft22=tbtlcl(jx,jy) - ft23=tbtlcl(jx,jy+1) - ft31=tbtlcl(jx+1,jy-1) - ft32=tbtlcl(jx+1,jy) - ft33=tbtlcl(jx+1,jy+1) - ftx1=(((ft31+ft11)/2-ft21)*dxj+(ft31-ft11)/2)*dxj+ft21 - ftx2=(((ft32+ft12)/2-ft22)*dxj+(ft32-ft12)/2)*dxj+ft22 - ftx3=(((ft33+ft13)/2-ft23)*dxj+(ft33-ft13)/2)*dxj+ft23 - ftlclq=(((ftx3+ftx1)/2-ftx2)*dyj+(ftx3-ftx1)/2)*dyj+ftx2 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - function ftlclo(t,tdpd) -!$$$ Subprogram documentation block -! -! Subprogram: ftlclo Compute LCL temperature. -! Author: Phillips org: w/NMC2X2 Date: 29 dec 82 -! -! Abstract: Compute temperature at the lifting condensation level -! from temperature and dewpoint depression. the formula used is -! a polynomial taken from Phillips mstadb routine which empirically -! approximates the original exact implicit relationship. -! (This kind of approximation is customary (inman, 1969), but -! the original source for this particular one is not yet known. -MI) -! Its accuracy is about 0.03 Kelvin for a dewpoint depression of 30. -! This function should be expanded inline in the calling routine. -! -! Program History Log: -! 91-05-07 Iredell made into inlinable function -! 1999-03-01 Iredell f90 module -! -! Usage: tlcl=ftlclo(t,tdpd) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! tdpd Real(krealfp) dewpoint depression in Kelvin -! -! Output argument list: -! ftlclo Real(krealfp) temperature at the LCL in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftlclo - real(krealfp),intent(in):: t,tdpd - real(krealfp),parameter:: clcl1= 0.954442e+0,clcl2= 0.967772e-3,& - clcl3=-0.710321e-3,clcl4=-0.270742e-5 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ftlclo=t-tdpd*(clcl1+clcl2*t+tdpd*(clcl3+clcl4*t)) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - elemental function ftlclx(t,tdpd) -!$$$ Subprogram documentation block -! -! Subprogram: ftlclx Compute LCL temperature. -! Author: Iredell org: w/NMC2X2 Date: 25 March 1999 -! -! Abstract: Compute temperature at the lifting condensation level -! from temperature and dewpoint depression. A parcel lifted -! adiabatically becomes saturated at the lifting condensation level. -! The water model assumes a perfect gas, constant specific heats -! for gas and liquid, and neglects the volume of the liquid. -! The model does account for the variation of the latent heat -! of condensation with temperature. The ice option is not included. -! The Clausius-Clapeyron equation is integrated from the triple point -! to get the formulas -! pvlcl=con_psat*(trlcl**xa)*exp(xb*(1.-trlcl)) -! pvdew=con_psat*(trdew**xa)*exp(xb*(1.-trdew)) -! where pvlcl is the saturated parcel vapor pressure at the LCL, -! pvdew is the unsaturated parcel vapor pressure initially, -! trlcl is ttp/tlcl and trdew is ttp/tdew. The adiabatic lifting -! of the parcel is represented by the following formula -! pvdew=pvlcl*(t/tlcl)**(1/kappa) -! This formula is inverted by iterating Newtonian approximations -! until tlcl is found to within 1.e-6 Kelvin. Note that the minimum -! returned temperature is 180 Kelvin. -! -! Program History Log: -! 1999-03-25 Iredell -! -! Usage: tlcl=ftlclx(t,tdpd) -! -! Input argument list: -! t Real(krealfp) temperature in Kelvin -! tdpd Real(krealfp) dewpoint depression in Kelvin -! -! Output argument list: -! ftlclx Real(krealfp) temperature at the LCL in Kelvin -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none - real(krealfp) ftlclx - real(krealfp),intent(in):: t,tdpd - real(krealfp),parameter:: terrm=1.e-4,tlmin=180.,tlminx=tlmin-5. - real(krealfp) tr,pvdew,tlcl,ta,pvlcl,el,dpvlcl,terr,terrp - integer i -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tr=con_ttp/(t-tdpd) - pvdew=con_psat*(tr**con_xpona)*exp(con_xponb*(1.-tr)) - tlcl=t-tdpd - do i=1,100 - tr=con_ttp/tlcl - ta=t/tlcl - pvlcl=con_psat*(tr**con_xpona)*exp(con_xponb*(1.-tr))*ta**(1/con_rocp) - el=con_hvap+con_dldt*(tlcl-con_ttp) - dpvlcl=(el/(con_rv*t**2)+1/(con_rocp*tlcl))*pvlcl - terr=(pvlcl-pvdew)/dpvlcl - tlcl=tlcl-terr - if(abs(terr).le.terrm.or.tlcl.lt.tlminx) exit - enddo - ftlclx=max(tlcl,tlmin) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end function -!------------------------------------------------------------------------------- - subroutine gfuncphys -!$$$ Subprogram Documentation Block -! -! Subprogram: gfuncphys Compute all physics function tables -! Author: N Phillips w/NMC2X2 Date: 30 dec 82 -! -! Abstract: Compute all physics function tables. Lookup tables are -! set up for computing saturation vapor pressure, dewpoint temperature, -! equivalent potential temperature, moist adiabatic temperature and humidity, -! pressure to the kappa, and lifting condensation level temperature. -! -! Program History Log: -! 1999-03-01 Iredell f90 module -! -! Usage: call gfuncphys -! -! Subprograms called: -! gpvsl compute saturation vapor pressure over liquid table -! gpvsi compute saturation vapor pressure over ice table -! gpvs compute saturation vapor pressure table -! gtdpl compute dewpoint temperature over liquid table -! gtdpi compute dewpoint temperature over ice table -! gtdp compute dewpoint temperature table -! gthe compute equivalent potential temperature table -! gtma compute moist adiabat tables -! gpkap compute pressure to the kappa table -! grkap compute pressure to the 1/kappa table -! gtlcl compute LCL temperature table -! -! Attributes: -! Language: Fortran 90. -! -!$$$ - implicit none -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call gpvsl - call gpvsi - call gpvs - call gtdpl - call gtdpi - call gtdp - call gthe - call gtma - call gpkap - call grkap - call gtlcl -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- -end module diff --git a/sorc/global_chgres.fd/machine_8.f90 b/sorc/global_chgres.fd/machine_8.f90 deleted file mode 100755 index 19f8d01cf5..0000000000 --- a/sorc/global_chgres.fd/machine_8.f90 +++ /dev/null @@ -1,17 +0,0 @@ - MODULE MACHINE - -! Machine dependant constants - - IMPLICIT NONE - - SAVE - - integer kind_io4,kind_io8,kind_phys,kind_rad - parameter (kind_rad = selected_real_kind(13,60)) ! the '60' maps to 64-bit real - parameter (kind_phys = selected_real_kind(13,60)) ! the '60' maps to 64-bit real - parameter (kind_io4 = 4) - parameter (kind_io8 = 8) - integer kint_mpi - parameter (kint_mpi = 4) - - END MODULE MACHINE diff --git a/sorc/global_chgres.fd/nrlmsise00_sub.f90 b/sorc/global_chgres.fd/nrlmsise00_sub.f90 deleted file mode 100755 index 2738065c27..0000000000 --- a/sorc/global_chgres.fd/nrlmsise00_sub.f90 +++ /dev/null @@ -1,2427 +0,0 @@ - SUBROUTINE GTD7(IYD,SEC,ALT,GLAT,GLONG,STL,F107A,F107,AP,MASS,D,T) -! -! NRLMSISE-00 -! ----------- -! Neutral Atmosphere Empirical Model from the surface to lower -! exosphere -! -! NEW FEATURES: -! *Extensive satellite drag database used in model generation -! *Revised O2 (and O) in lower thermosphere -! *Additional nonlinear solar activity term -! *"ANOMALOUS OXYGEN" NUMBER DENSITY, OUTPUT D(9) -! At high altitudes (> 500 km), hot atomic oxygen or ionized -! oxygen can become appreciable for some ranges of subroutine -! inputs, thereby affecting drag on satellites and debris. We -! group these species under the term "anomalous oxygen," since -! their individual variations are not presently separable with -! the drag data used to define this model component. -! -! SUBROUTINES FOR SPECIAL OUTPUTS: -! -! HIGH ALTITUDE DRAG: EFFECTIVE TOTAL MASS DENSITY -! (SUBROUTINE GTD7D, OUTPUT D(6)) -! For atmospheric drag calculations at altitudes above 500 km, -! call SUBROUTINE GTD7D to compute the "effective total mass -! density" by including contributions from "anomalous oxygen." -! See "NOTES ON OUTPUT VARIABLES" below on D(6). -! -! PRESSURE GRID (SUBROUTINE GHP7) -! See subroutine GHP7 to specify outputs at a pressure level -! rather than at an altitude. -! -! OUTPUT IN M-3 and KG/M3: CALL METERS(.TRUE.) -! -! INPUT VARIABLES: -! IYD - YEAR AND DAY AS YYDDD (day of year from 1 to 365 (or 366) -! (Year ignored in current model) -! SEC - UT(SEC) -! ALT - ALTITUDE(KM) -! GLAT - GEODETIC LATITUDE(DEG) -! GLONG - GEODETIC LONGITUDE(DEG) -! STL - LOCAL APPARENT SOLAR TIME(HRS; see Note below) -! F107A - 81 day AVERAGE OF F10.7 FLUX (centered on day DDD) -! F107 - DAILY F10.7 FLUX FOR PREVIOUS DAY -! AP - MAGNETIC INDEX(DAILY) OR WHEN SW(9)=-1. : -! - ARRAY CONTAINING: -! (1) DAILY AP -! (2) 3 HR AP INDEX FOR CURRENT TIME -! (3) 3 HR AP INDEX FOR 3 HRS BEFORE CURRENT TIME -! (4) 3 HR AP INDEX FOR 6 HRS BEFORE CURRENT TIME -! (5) 3 HR AP INDEX FOR 9 HRS BEFORE CURRENT TIME -! (6) AVERAGE OF EIGHT 3 HR AP INDICIES FROM 12 TO 33 HRS PR -! TO CURRENT TIME -! (7) AVERAGE OF EIGHT 3 HR AP INDICIES FROM 36 TO 57 HRS PR -! TO CURRENT TIME -! MASS - MASS NUMBER (ONLY DENSITY FOR SELECTED GAS IS -! CALCULATED. MASS 0 IS TEMPERATURE. MASS 48 FOR ALL. -! MASS 17 IS Anomalous O ONLY.) -! -! NOTES ON INPUT VARIABLES: -! UT, Local Time, and Longitude are used independently in the -! model and are not of equal importance for every situation. -! For the most physically realistic calculation these three -! variables should be consistent (STL=SEC/3600+GLONG/15). -! The Equation of Time departures from the above formula -! for apparent local time can be included if available but -! are of minor importance. -! -! F107 and F107A values used to generate the model correspond -! to the 10.7 cm radio flux at the actual distance of the Earth -! from the Sun rather than the radio flux at 1 AU. The following -! site provides both classes of values: -! ftp://ftp.ngdc.noaa.gov/STP/SOLAR_DATA/SOLAR_RADIO/FLUX/ -! -! F107, F107A, and AP effects are neither large nor well -! established below 80 km and these parameters should be set to -! 150., 150., and 4. respectively. -! -! OUTPUT VARIABLES: -! D(1) - HE NUMBER DENSITY(CM-3) -! D(2) - O NUMBER DENSITY(CM-3) -! D(3) - N2 NUMBER DENSITY(CM-3) -! D(4) - O2 NUMBER DENSITY(CM-3) -! D(5) - AR NUMBER DENSITY(CM-3) -! D(6) - TOTAL MASS DENSITY(GM/CM3) -! D(7) - H NUMBER DENSITY(CM-3) -! D(8) - N NUMBER DENSITY(CM-3) -! D(9) - Anomalous oxygen NUMBER DENSITY(CM-3) -! T(1) - EXOSPHERIC TEMPERATURE -! T(2) - TEMPERATURE AT ALT -! -! NOTES ON OUTPUT VARIABLES: -! TO GET OUTPUT IN M-3 and KG/M3: CALL METERS(.TRUE.) -! -! O, H, and N are set to zero below 72.5 km -! -! T(1), Exospheric temperature, is set to global average for -! altitudes below 120 km. The 120 km gradient is left at global -! average value for altitudes below 72 km. -! -! D(6), TOTAL MASS DENSITY, is NOT the same for subroutines GTD7 -! and GTD7D -! -! SUBROUTINE GTD7 -- D(6) is the sum of the mass densities of t -! species labeled by indices 1-5 and 7-8 in output variable D. -! This includes He, O, N2, O2, Ar, H, and N but does NOT includ -! anomalous oxygen (species index 9). -! -! SUBROUTINE GTD7D -- D(6) is the "effective total mass density -! for drag" and is the sum of the mass densities of all species -! in this model, INCLUDING anomalous oxygen. -! -! SWITCHES: The following is for test and special purposes: -! -! TO TURN ON AND OFF PARTICULAR VARIATIONS CALL TSELEC(SW), -! WHERE SW IS A 25 ELEMENT ARRAY CONTAINING 0. FOR OFF, 1. -! FOR ON, OR 2. FOR MAIN EFFECTS OFF BUT CROSS TERMS ON -! FOR THE FOLLOWING VARIATIONS -! 1 - F10.7 EFFECT ON MEAN 2 - TIME INDEPENDENT -! 3 - SYMMETRICAL ANNUAL 4 - SYMMETRICAL SEMIANNUAL -! 5 - ASYMMETRICAL ANNUAL 6 - ASYMMETRICAL SEMIANNUAL -! 7 - DIURNAL 8 - SEMIDIURNAL -! 9 - DAILY AP 10 - ALL UT/LONG EFFECTS -! 11 - LONGITUDINAL 12 - UT AND MIXED UT/LONG -! 13 - MIXED AP/UT/LONG 14 - TERDIURNAL -! 15 - DEPARTURES FROM DIFFUSIVE EQUILIBRIUM -! 16 - ALL TINF VAR 17 - ALL TLB VAR -! 18 - ALL TN1 VAR 19 - ALL S VAR -! 20 - ALL TN2 VAR 21 - ALL NLB VAR -! 22 - ALL TN3 VAR 23 - TURBO SCALE HEIGHT VAR -! -! To get current values of SW: CALL TRETRV(SW) -! - DIMENSION D(9),T(2),AP(7),DS(9),TS(2) - DIMENSION ZN3(5),ZN2(4),SV(25) - COMMON/GTS3C/TLB,S,DB04,DB16,DB28,DB32,DB40,DB48,DB01,ZA,T0,Z0 & - ,G0,RL,DD,DB14,TR12 - COMMON/MESO7/TN1(5),TN2(4),TN3(5),TGN1(2),TGN2(2),TGN3(2) - COMMON/LOWER7/PTM(10),PDM(10,8) - COMMON/PARM7/PT(150),PD(150,9),PS(150),PDL(25,2),PTL(100,4), & - PMA(100,10),SAM(100) - COMMON/DATIM7/ISD(3),IST(2),NAM(2) - COMMON/DATIME/ISDATE(3),ISTIME(2),NAME(2) -! COMMON/CSW/SW(25),ISW,SWC(25) - COMMON/CSW/SW(25),SWC(25),ISW - COMMON/MAVG7/PAVGM(10) - COMMON/DMIX/DM04,DM16,DM28,DM32,DM40,DM01,DM14 - COMMON/PARMB/GSURF,RE - COMMON/METSEL/IMR - SAVE - EXTERNAL GTD7BK - DATA MN3/5/,ZN3/32.5,20.,15.,10.,0./ - DATA MN2/4/,ZN2/72.5,55.,45.,32.5/ - DATA ZMIX/62.5/,ALAST/99999./,MSSL/-999/ - DATA SV/25*1./ - IF(ISW.NE.64999) CALL TSELEC(SV) -! Put identification data into common/datime/ - DO 1 I=1,3 - ISDATE(I)=ISD(I) - 1 END DO - DO 2 I=1,2 - ISTIME(I)=IST(I) - NAME(I)=NAM(I) - 2 END DO -! -! Test for changed input - V1=VTST7(IYD,SEC,GLAT,GLONG,STL,F107A,F107,AP,1) -! Latitude variation of gravity (none for SW(2)=0) - XLAT=GLAT - IF(SW(2).EQ.0) XLAT=45. - CALL GLATF(XLAT,GSURF,RE) -! - XMM=PDM(5,3) -! -! THERMOSPHERE/MESOSPHERE (above ZN2(1)) - ALTT=AMAX1(ALT,ZN2(1)) - MSS=MASS -! Only calculate N2 in thermosphere if alt in mixed region - IF(ALT.LT.ZMIX.AND.MASS.GT.0) MSS=28 -! Only calculate thermosphere if input parameters changed -! or altitude above ZN2(1) in mesosphere - IF(V1.EQ.1..OR.ALT.GT.ZN2(1).OR.ALAST.GT.ZN2(1).OR.MSS.NE.MSSL) THEN - CALL GTS7(IYD,SEC,ALTT,GLAT,GLONG,STL,F107A,F107,AP,MSS,DS,TS) - DM28M=DM28 -! metric adjustment - IF(IMR.EQ.1) DM28M=DM28*1.E6 - MSSL=MSS - ENDIF - T(1)=TS(1) - T(2)=TS(2) - IF(ALT.GE.ZN2(1)) THEN - DO 5 J=1,9 - D(J)=DS(J) - 5 CONTINUE - GOTO 10 - ENDIF -! -! LOWER MESOSPHERE/UPPER STRATOSPHERE [between ZN3(1) and ZN2(1)] -! Temperature at nodes and gradients at end nodes -! Inverse temperature a linear function of spherical harmonics -! Only calculate nodes if input changed - IF(V1.EQ.1..OR.ALAST.GE.ZN2(1)) THEN - TGN2(1)=TGN1(2) - TN2(1)=TN1(5) - TN2(2)=PMA(1,1)*PAVGM(1)/(1.-SW(20)*GLOB7S(PMA(1,1))) - TN2(3)=PMA(1,2)*PAVGM(2)/(1.-SW(20)*GLOB7S(PMA(1,2))) - TN2(4)=PMA(1,3)*PAVGM(3)/(1.-SW(20)*SW(22)*GLOB7S(PMA(1,3))) - TGN2(2)=PAVGM(9)*PMA(1,10)*(1.+SW(20)*SW(22)*GLOB7S(PMA(1,10))) & - *TN2(4)*TN2(4)/(PMA(1,3)*PAVGM(3))**2 - TN3(1)=TN2(4) - ENDIF - IF(ALT.GE.ZN3(1)) GOTO 6 -! -! LOWER STRATOSPHERE AND TROPOSPHERE [below ZN3(1)] -! Temperature at nodes and gradients at end nodes -! Inverse temperature a linear function of spherical harmonics -! Only calculate nodes if input changed - IF(V1.EQ.1..OR.ALAST.GE.ZN3(1)) THEN - TGN3(1)=TGN2(2) - TN3(2)=PMA(1,4)*PAVGM(4)/(1.-SW(22)*GLOB7S(PMA(1,4))) - TN3(3)=PMA(1,5)*PAVGM(5)/(1.-SW(22)*GLOB7S(PMA(1,5))) - TN3(4)=PMA(1,6)*PAVGM(6)/(1.-SW(22)*GLOB7S(PMA(1,6))) - TN3(5)=PMA(1,7)*PAVGM(7)/(1.-SW(22)*GLOB7S(PMA(1,7))) - TGN3(2)=PMA(1,8)*PAVGM(8)*(1.+SW(22)*GLOB7S(PMA(1,8))) & - *TN3(5)*TN3(5)/(PMA(1,7)*PAVGM(7))**2 - ENDIF - 6 CONTINUE - IF(MASS.EQ.0) GOTO 50 -! LINEAR TRANSITION TO FULL MIXING BELOW ZN2(1) - DMC=0 - IF(ALT.GT.ZMIX) DMC=1.-(ZN2(1)-ALT)/(ZN2(1)-ZMIX) - DZ28=DS(3) -! ***** N2 DENSITY **** - DMR=DS(3)/DM28M-1. - D(3)=DENSM(ALT,DM28M,XMM,TZ,MN3,ZN3,TN3,TGN3,MN2,ZN2,TN2,TGN2) - D(3)=D(3)*(1.+DMR*DMC) -! ***** HE DENSITY **** - D(1)=0 - IF(MASS.NE.4.AND.MASS.NE.48) GOTO 204 - DMR=DS(1)/(DZ28*PDM(2,1))-1. - D(1)=D(3)*PDM(2,1)*(1.+DMR*DMC) - 204 CONTINUE -! **** O DENSITY **** - D(2)=0 - D(9)=0 - 216 CONTINUE -! ***** O2 DENSITY **** - D(4)=0 - IF(MASS.NE.32.AND.MASS.NE.48) GOTO 232 - DMR=DS(4)/(DZ28*PDM(2,4))-1. - D(4)=D(3)*PDM(2,4)*(1.+DMR*DMC) - 232 CONTINUE -! ***** AR DENSITY **** - D(5)=0 - IF(MASS.NE.40.AND.MASS.NE.48) GOTO 240 - DMR=DS(5)/(DZ28*PDM(2,5))-1. - D(5)=D(3)*PDM(2,5)*(1.+DMR*DMC) - 240 CONTINUE -! ***** HYDROGEN DENSITY **** - D(7)=0 -! ***** ATOMIC NITROGEN DENSITY **** - D(8)=0 -! -! TOTAL MASS DENSITY -! - IF(MASS.EQ.48) THEN - D(6) = 1.66E-24*(4.*D(1)+16.*D(2)+28.*D(3)+32.*D(4)+40.*D(5)+ & - D(7)+14.*D(8)) - IF(IMR.EQ.1) D(6)=D(6)/1000. - ENDIF - T(2)=TZ - 10 CONTINUE - GOTO 90 - 50 CONTINUE - DD=DENSM(ALT,1.,0,TZ,MN3,ZN3,TN3,TGN3,MN2,ZN2,TN2,TGN2) - T(2)=TZ - 90 CONTINUE - ALAST=ALT - RETURN - END SUBROUTINE GTD7 -!----------------------------------------------------------------------- - SUBROUTINE GTD7D(IYD,SEC,ALT,GLAT,GLONG,STL,F107A,F107,AP,MASS,D,T) -! -! NRLMSISE-00 -! ----------- -! This subroutine provides Effective Total Mass Density for -! output D(6) which includes contributions from "anomalous -! oxygen" which can affect satellite drag above 500 km. This -! subroutine is part of the distribution package for the -! Neutral Atmosphere Empirical Model from the surface to lower -! exosphere. See subroutine GTD7 for more extensive comments. -! -! INPUT VARIABLES: -! IYD - YEAR AND DAY AS YYDDD (day of year from 1 to 365 (or 366) -! (Year ignored in current model) -! SEC - UT(SEC) -! ALT - ALTITUDE(KM) -! GLAT - GEODETIC LATITUDE(DEG) -! GLONG - GEODETIC LONGITUDE(DEG) -! STL - LOCAL APPARENT SOLAR TIME(HRS; see Note below) -! F107A - 81 day AVERAGE OF F10.7 FLUX (centered on day DDD) -! F107 - DAILY F10.7 FLUX FOR PREVIOUS DAY -! AP - MAGNETIC INDEX(DAILY) OR WHEN SW(9)=-1. : -! - ARRAY CONTAINING: -! (1) DAILY AP -! (2) 3 HR AP INDEX FOR CURRENT TIME -! (3) 3 HR AP INDEX FOR 3 HRS BEFORE CURRENT TIME -! (4) 3 HR AP INDEX FOR 6 HRS BEFORE CURRENT TIME -! (5) 3 HR AP INDEX FOR 9 HRS BEFORE CURRENT TIME -! (6) AVERAGE OF EIGHT 3 HR AP INDICIES FROM 12 TO 33 HRS PR -! TO CURRENT TIME -! (7) AVERAGE OF EIGHT 3 HR AP INDICIES FROM 36 TO 57 HRS PR -! TO CURRENT TIME -! MASS - MASS NUMBER (ONLY DENSITY FOR SELECTED GAS IS -! CALCULATED. MASS 0 IS TEMPERATURE. MASS 48 FOR ALL. -! MASS 17 IS Anomalous O ONLY.) -! -! NOTES ON INPUT VARIABLES: -! UT, Local Time, and Longitude are used independently in the -! model and are not of equal importance for every situation. -! For the most physically realistic calculation these three -! variables should be consistent (STL=SEC/3600+GLONG/15). -! The Equation of Time departures from the above formula -! for apparent local time can be included if available but -! are of minor importance. -! -! F107 and F107A values used to generate the model correspond -! to the 10.7 cm radio flux at the actual distance of the Earth -! from the Sun rather than the radio flux at 1 AU. -! -! OUTPUT VARIABLES: -! D(1) - HE NUMBER DENSITY(CM-3) -! D(2) - O NUMBER DENSITY(CM-3) -! D(3) - N2 NUMBER DENSITY(CM-3) -! D(4) - O2 NUMBER DENSITY(CM-3) -! D(5) - AR NUMBER DENSITY(CM-3) -! D(6) - TOTAL MASS DENSITY(GM/CM3) [includes anomalous oxygen] -! D(7) - H NUMBER DENSITY(CM-3) -! D(8) - N NUMBER DENSITY(CM-3) -! D(9) - Anomalous oxygen NUMBER DENSITY(CM-3) -! T(1) - EXOSPHERIC TEMPERATURE -! T(2) - TEMPERATURE AT ALT -! - DIMENSION D(9),T(2),AP(7),DS(9),TS(2) - COMMON/METSEL/IMR - CALL GTD7(IYD,SEC,ALT,GLAT,GLONG,STL,F107A,F107,AP,MASS,D,T) -! TOTAL MASS DENSITY -! - IF(MASS.EQ.48) THEN - D(6) = 1.66E-24*(4.*D(1)+16.*D(2)+28.*D(3)+32.*D(4)+40.*D(5)+ & - D(7)+14.*D(8)+16.*D(9)) - IF(IMR.EQ.1) D(6)=D(6)/1000. - ENDIF - RETURN - END SUBROUTINE GTD7D -!----------------------------------------------------------------------- - SUBROUTINE GHP7(IYD,SEC,ALT,GLAT,GLONG,STL,F107A,F107,AP,D,T,PRESS) -! FIND ALTITUDE OF PRESSURE SURFACE (PRESS) FROM GTD7 -! INPUT: -! IYD - YEAR AND DAY AS YYDDD -! SEC - UT(SEC) -! GLAT - GEODETIC LATITUDE(DEG) -! GLONG - GEODETIC LONGITUDE(DEG) -! STL - LOCAL APPARENT SOLAR TIME(HRS) -! F107A - 3 MONTH AVERAGE OF F10.7 FLUX -! F107 - DAILY F10.7 FLUX FOR PREVIOUS DAY -! AP - MAGNETIC INDEX(DAILY) OR WHEN SW(9)=-1. : -! - ARRAY CONTAINING: -! (1) DAILY AP -! (2) 3 HR AP INDEX FOR CURRENT TIME -! (3) 3 HR AP INDEX FOR 3 HRS BEFORE CURRENT TIME -! (4) 3 HR AP INDEX FOR 6 HRS BEFORE CURRENT TIME -! (5) 3 HR AP INDEX FOR 9 HRS BEFORE CURRENT TIME -! (6) AVERAGE OF EIGHT 3 HR AP INDICIES FROM 12 TO 33 HRS PR -! TO CURRENT TIME -! (7) AVERAGE OF EIGHT 3 HR AP INDICIES FROM 36 TO 59 HRS PR -! TO CURRENT TIME -! PRESS - PRESSURE LEVEL(MB) -! OUTPUT: -! ALT - ALTITUDE(KM) -! D(1) - HE NUMBER DENSITY(CM-3) -! D(2) - O NUMBER DENSITY(CM-3) -! D(3) - N2 NUMBER DENSITY(CM-3) -! D(4) - O2 NUMBER DENSITY(CM-3) -! D(5) - AR NUMBER DENSITY(CM-3) -! D(6) - TOTAL MASS DENSITY(GM/CM3) -! D(7) - H NUMBER DENSITY(CM-3) -! D(8) - N NUMBER DENSITY(CM-3) -! D(9) - HOT O NUMBER DENSITY(CM-3) -! T(1) - EXOSPHERIC TEMPERATURE -! T(2) - TEMPERATURE AT ALT -! - COMMON/PARMB/GSURF,RE - COMMON/METSEL/IMR - DIMENSION D(9),T(2),AP(7) - SAVE - DATA BM/1.3806E-19/,RGAS/831.4/ - DATA TEST/.00043/,LTEST/12/ - PL=ALOG10(PRESS) -! Initial altitude estimate - IF(PL.GE.-5.) THEN - IF(PL.GT.2.5) ZI=18.06*(3.00-PL) - IF(PL.GT..75.AND.PL.LE.2.5) ZI=14.98*(3.08-PL) - IF(PL.GT.-1..AND.PL.LE..75) ZI=17.8*(2.72-PL) - IF(PL.GT.-2..AND.PL.LE.-1.) ZI=14.28*(3.64-PL) - IF(PL.GT.-4..AND.PL.LE.-2.) ZI=12.72*(4.32-PL) - IF(PL.LE.-4.) ZI=25.3*(.11-PL) - IDAY=MOD(IYD,1000) - CL=GLAT/90. - CL2=CL*CL - IF(IDAY.LT.182) CD=1.-IDAY/91.25 - IF(IDAY.GE.182) CD=IDAY/91.25-3. - CA=0 - IF(PL.GT.-1.11.AND.PL.LE.-.23) CA=1.0 - IF(PL.GT.-.23) CA=(2.79-PL)/(2.79+.23) - IF(PL.LE.-1.11.AND.PL.GT.-3.) CA=(-2.93-PL)/(-2.93+1.11) - Z=ZI-4.87*CL*CD*CA-1.64*CL2*CA+.31*CA*CL - ENDIF - IF(PL.LT.-5.) Z=22.*(PL+4.)**2+110 -! ITERATION LOOP - L=0 - 10 CONTINUE - L=L+1 - CALL GTD7(IYD,SEC,Z,GLAT,GLONG,STL,F107A,F107,AP,48,D,T) - XN=D(1)+D(2)+D(3)+D(4)+D(5)+D(7)+D(8) - P=BM*XN*T(2) - IF(IMR.EQ.1) P=P*1.E-6 - DIFF=PL-ALOG10(P) - IF(ABS(DIFF).LT.TEST .OR. L.EQ.LTEST) GOTO 20 - XM=D(6)/XN/1.66E-24 - IF(IMR.EQ.1) XM = XM*1.E3 - G=GSURF/(1.+Z/RE)**2 - SH=RGAS*T(2)/(XM*G) -! New altitude estimate using scale height - IF(L.LT.6) THEN - Z=Z-SH*DIFF*2.302 - ELSE - Z=Z-SH*DIFF - ENDIF - GOTO 10 - 20 CONTINUE - IF(L.EQ.LTEST) WRITE(6,100) PRESS,DIFF - 100 FORMAT(1X,29HGHP7 NOT CONVERGING FOR PRESS, 1PE12.2,E12.2) - ALT=Z - RETURN - END SUBROUTINE GHP7 -!----------------------------------------------------------------------- - SUBROUTINE GLATF(LAT,GV,REFF) -! CALCULATE LATITUDE VARIABLE GRAVITY (GV) AND EFFECTIVE -! RADIUS (REFF) - REAL LAT - SAVE - DATA DGTR/1.74533E-2/ - C2 = COS(2.*DGTR*LAT) - GV = 980.616*(1.-.0026373*C2) - REFF = 2.*GV/(3.085462E-6 + 2.27E-9*C2)*1.E-5 - RETURN - END SUBROUTINE GLATF -!----------------------------------------------------------------------- - FUNCTION VTST7(IYD,SEC,GLAT,GLONG,STL,F107A,F107,AP,IC) -! Test if geophysical variables or switches changed and save -! Return 0 if unchanged and 1 if changed - DIMENSION AP(7),IYDL(2),SECL(2),GLATL(2),GLL(2),STLL(2) - DIMENSION FAL(2),FL(2),APL(7,2),SWL(25,2),SWCL(25,2) -! COMMON/CSW/SW(25),ISW,SWC(25) - COMMON/CSW/SW(25),SWC(25),ISW - SAVE - DATA IYDL/2*-999/,SECL/2*-999./,GLATL/2*-999./,GLL/2*-999./ - DATA STLL/2*-999./,FAL/2*-999./,FL/2*-999./,APL/14*-999./ - DATA SWL/50*-999./,SWCL/50*-999./ - VTST7=0 - IF(IYD.NE.IYDL(IC)) GOTO 10 - IF(SEC.NE.SECL(IC)) GOTO 10 - IF(GLAT.NE.GLATL(IC)) GOTO 10 - IF(GLONG.NE.GLL(IC)) GOTO 10 - IF(STL.NE.STLL(IC)) GOTO 10 - IF(F107A.NE.FAL(IC)) GOTO 10 - IF(F107.NE.FL(IC)) GOTO 10 - DO 5 I=1,7 - IF(AP(I).NE.APL(I,IC)) GOTO 10 - 5 END DO - DO 7 I=1,25 - IF(SW(I).NE.SWL(I,IC)) GOTO 10 - IF(SWC(I).NE.SWCL(I,IC)) GOTO 10 - 7 END DO - GOTO 20 - 10 CONTINUE - VTST7=1 - IYDL(IC)=IYD - SECL(IC)=SEC - GLATL(IC)=GLAT - GLL(IC)=GLONG - STLL(IC)=STL - FAL(IC)=F107A - FL(IC)=F107 - DO 15 I=1,7 - APL(I,IC)=AP(I) - 15 END DO - DO 16 I=1,25 - SWL(I,IC)=SW(I) - SWCL(I,IC)=SWC(I) - 16 END DO - 20 CONTINUE - RETURN - END FUNCTION VTST7 -!----------------------------------------------------------------------- - SUBROUTINE GTS7(IYD,SEC,ALT,GLAT,GLONG,STL,F107A,F107,AP,MASS,D,T) -! -! Thermospheric portion of NRLMSISE-00 -! See GTD7 for more extensive comments -! -! OUTPUT IN M-3 and KG/M3: CALL METERS(.TRUE.) -! -! INPUT VARIABLES: -! IYD - YEAR AND DAY AS YYDDD (day of year from 1 to 365 (or 366) -! (Year ignored in current model) -! SEC - UT(SEC) -! ALT - ALTITUDE(KM) (>72.5 km) -! GLAT - GEODETIC LATITUDE(DEG) -! GLONG - GEODETIC LONGITUDE(DEG) -! STL - LOCAL APPARENT SOLAR TIME(HRS; see Note below) -! F107A - 81 day AVERAGE OF F10.7 FLUX (centered on day DDD) -! F107 - DAILY F10.7 FLUX FOR PREVIOUS DAY -! AP - MAGNETIC INDEX(DAILY) OR WHEN SW(9)=-1. : -! - ARRAY CONTAINING: -! (1) DAILY AP -! (2) 3 HR AP INDEX FOR CURRENT TIME -! (3) 3 HR AP INDEX FOR 3 HRS BEFORE CURRENT TIME -! (4) 3 HR AP INDEX FOR 6 HRS BEFORE CURRENT TIME -! (5) 3 HR AP INDEX FOR 9 HRS BEFORE CURRENT TIME -! (6) AVERAGE OF EIGHT 3 HR AP INDICIES FROM 12 TO 33 HRS PR -! TO CURRENT TIME -! (7) AVERAGE OF EIGHT 3 HR AP INDICIES FROM 36 TO 57 HRS PR -! TO CURRENT TIME -! MASS - MASS NUMBER (ONLY DENSITY FOR SELECTED GAS IS -! CALCULATED. MASS 0 IS TEMPERATURE. MASS 48 FOR ALL. -! MASS 17 IS Anomalous O ONLY.) -! -! NOTES ON INPUT VARIABLES: -! UT, Local Time, and Longitude are used independently in the -! model and are not of equal importance for every situation. -! For the most physically realistic calculation these three -! variables should be consistent (STL=SEC/3600+GLONG/15). -! The Equation of Time departures from the above formula -! for apparent local time can be included if available but -! are of minor importance. -! -! F107 and F107A values used to generate the model correspond -! to the 10.7 cm radio flux at the actual distance of the Earth -! from the Sun rather than the radio flux at 1 AU. The following -! site provides both classes of values: -! ftp://ftp.ngdc.noaa.gov/STP/SOLAR_DATA/SOLAR_RADIO/FLUX/ -! -! F107, F107A, and AP effects are neither large nor well -! established below 80 km and these parameters should be set to -! 150., 150., and 4. respectively. -! -! OUTPUT VARIABLES: -! D(1) - HE NUMBER DENSITY(CM-3) -! D(2) - O NUMBER DENSITY(CM-3) -! D(3) - N2 NUMBER DENSITY(CM-3) -! D(4) - O2 NUMBER DENSITY(CM-3) -! D(5) - AR NUMBER DENSITY(CM-3) -! D(6) - TOTAL MASS DENSITY(GM/CM3) [Anomalous O NOT included] -! D(7) - H NUMBER DENSITY(CM-3) -! D(8) - N NUMBER DENSITY(CM-3) -! D(9) - Anomalous oxygen NUMBER DENSITY(CM-3) -! T(1) - EXOSPHERIC TEMPERATURE -! T(2) - TEMPERATURE AT ALT -! - DIMENSION ZN1(5),ALPHA(9) - COMMON/GTS3C/TLB,S,DB04,DB16,DB28,DB32,DB40,DB48,DB01,ZA,T0,Z0 & - ,G0,RL,DD,DB14,TR12 - COMMON/MESO7/TN1(5),TN2(4),TN3(5),TGN1(2),TGN2(2),TGN3(2) - DIMENSION D(9),T(2),MT(11),AP(*),ALTL(8) - COMMON/LOWER7/PTM(10),PDM(10,8) - COMMON/PARM7/PT(150),PD(150,9),PS(150),PDL(25,2),PTL(100,4), & - PMA(100,10),SAM(100) -! COMMON/CSW/SW(25),ISW,SWC(25) - COMMON/CSW/SW(25),SWC(25),ISW - COMMON/TTEST/TINFG,GB,ROUT,TT(15) - COMMON/DMIX/DM04,DM16,DM28,DM32,DM40,DM01,DM14 - COMMON/METSEL/IMR - SAVE - DATA MT/48,0,4,16,28,32,40,1,49,14,17/ - DATA ALTL/200.,300.,160.,250.,240.,450.,320.,450./ - DATA MN1/5/,ZN1/120.,110.,100.,90.,72.5/ - DATA DGTR/1.74533E-2/,DR/1.72142E-2/,ALAST/-999./ - DATA ALPHA/-0.38,0.,0.,0.,0.17,0.,-0.38,0.,0./ -! Test for changed input - V2=VTST7(IYD,SEC,GLAT,GLONG,STL,F107A,F107,AP,2) -! - YRD=IYD - ZA=PDL(16,2) - ZN1(1)=ZA - DO 2 J=1,9 - D(J)=0. - 2 END DO -! TINF VARIATIONS NOT IMPORTANT BELOW ZA OR ZN1(1) - IF(ALT.GT.ZN1(1)) THEN - IF(V2.EQ.1..OR.ALAST.LE.ZN1(1)) TINF=PTM(1)*PT(1) & - *(1.+SW(16)*GLOBE7(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PT)) - ELSE - TINF=PTM(1)*PT(1) - ENDIF - T(1)=TINF -! GRADIENT VARIATIONS NOT IMPORTANT BELOW ZN1(5) - IF(ALT.GT.ZN1(5)) THEN - IF(V2.EQ.1.OR.ALAST.LE.ZN1(5)) G0=PTM(4)*PS(1) & - *(1.+SW(19)*GLOBE7(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PS)) - ELSE - G0=PTM(4)*PS(1) - ENDIF -! Calculate these temperatures only if input changed - IF(V2.EQ.1. .OR. ALT.LT.300.) & - TLB=PTM(2)*(1.+SW(17)*GLOBE7(YRD,SEC,GLAT,GLONG,STL, & - F107A,F107,AP,PD(1,4)))*PD(1,4) - S=G0/(TINF-TLB) -! Lower thermosphere temp variations not significant for -! density above 300 km - IF(ALT.LT.300.) THEN - IF(V2.EQ.1..OR.ALAST.GE.300.) THEN - TN1(2)=PTM(7)*PTL(1,1)/(1.-SW(18)*GLOB7S(PTL(1,1))) - TN1(3)=PTM(3)*PTL(1,2)/(1.-SW(18)*GLOB7S(PTL(1,2))) - TN1(4)=PTM(8)*PTL(1,3)/(1.-SW(18)*GLOB7S(PTL(1,3))) - TN1(5)=PTM(5)*PTL(1,4)/(1.-SW(18)*SW(20)*GLOB7S(PTL(1,4))) - TGN1(2)=PTM(9)*PMA(1,9)*(1.+SW(18)*SW(20)*GLOB7S(PMA(1,9))) & - *TN1(5)*TN1(5)/(PTM(5)*PTL(1,4))**2 - ENDIF - ELSE - TN1(2)=PTM(7)*PTL(1,1) - TN1(3)=PTM(3)*PTL(1,2) - TN1(4)=PTM(8)*PTL(1,3) - TN1(5)=PTM(5)*PTL(1,4) - TGN1(2)=PTM(9)*PMA(1,9) & - *TN1(5)*TN1(5)/(PTM(5)*PTL(1,4))**2 - ENDIF -! - Z0=ZN1(4) - T0=TN1(4) - TR12=1. -! - IF(MASS.EQ.0) GO TO 50 -! N2 variation factor at Zlb - G28=SW(21)*GLOBE7(YRD,SEC,GLAT,GLONG,STL,F107A,F107, & - AP,PD(1,3)) - DAY=AMOD(YRD,1000.) -! VARIATION OF TURBOPAUSE HEIGHT - ZHF=PDL(25,2) & - *(1.+SW(5)*PDL(25,1)*SIN(DGTR*GLAT)*COS(DR*(DAY-PT(14)))) - YRD=IYD - T(1)=TINF - XMM=PDM(5,3) - Z=ALT -! - DO 10 J = 1,11 - IF(MASS.EQ.MT(J)) GO TO 15 - 10 END DO - WRITE(6,100) MASS - GO TO 90 - 15 IF(Z.GT.ALTL(6).AND.MASS.NE.28.AND.MASS.NE.48) GO TO 17 -! -! **** N2 DENSITY **** -! -! Diffusive density at Zlb - DB28 = PDM(1,3)*EXP(G28)*PD(1,3) -! Diffusive density at Alt - D(3)=DENSU(Z,DB28,TINF,TLB, 28.,ALPHA(3),T(2),PTM(6),S,MN1,ZN1, & - TN1,TGN1) - DD=D(3) -! Turbopause - ZH28=PDM(3,3)*ZHF - ZHM28=PDM(4,3)*PDL(6,2) - XMD=28.-XMM -! Mixed density at Zlb - B28=DENSU(ZH28,DB28,TINF,TLB,XMD,ALPHA(3)-1.,TZ,PTM(6),S,MN1, & - ZN1,TN1,TGN1) - IF(Z.GT.ALTL(3).OR.SW(15).EQ.0.) GO TO 17 -! Mixed density at Alt - DM28=DENSU(Z,B28,TINF,TLB,XMM,ALPHA(3),TZ,PTM(6),S,MN1, & - ZN1,TN1,TGN1) -! Net density at Alt - D(3)=DNET(D(3),DM28,ZHM28,XMM,28.) - 17 CONTINUE - GO TO (20,50,20,25,90,35,40,45,25,48,46), J - 20 CONTINUE -! -! **** HE DENSITY **** -! -! Density variation factor at Zlb - G4 = SW(21)*GLOBE7(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PD(1,1)) -! Diffusive density at Zlb - DB04 = PDM(1,1)*EXP(G4)*PD(1,1) -! Diffusive density at Alt - D(1)=DENSU(Z,DB04,TINF,TLB, 4.,ALPHA(1),T(2),PTM(6),S,MN1,ZN1, & - TN1,TGN1) - DD=D(1) - IF(Z.GT.ALTL(1).OR.SW(15).EQ.0.) GO TO 24 -! Turbopause - ZH04=PDM(3,1) -! Mixed density at Zlb - B04=DENSU(ZH04,DB04,TINF,TLB,4.-XMM,ALPHA(1)-1., & - T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) -! Mixed density at Alt - DM04=DENSU(Z,B04,TINF,TLB,XMM,0.,T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) - ZHM04=ZHM28 -! Net density at Alt - D(1)=DNET(D(1),DM04,ZHM04,XMM,4.) -! Correction to specified mixing ratio at ground - RL=ALOG(B28*PDM(2,1)/B04) - ZC04=PDM(5,1)*PDL(1,2) - HC04=PDM(6,1)*PDL(2,2) -! Net density corrected at Alt - D(1)=D(1)*CCOR(Z,RL,HC04,ZC04) - 24 CONTINUE - IF(MASS.NE.48) GO TO 90 - 25 CONTINUE -! -! **** O DENSITY **** -! -! Density variation factor at Zlb - G16= SW(21)*GLOBE7(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PD(1,2)) -! Diffusive density at Zlb - DB16 = PDM(1,2)*EXP(G16)*PD(1,2) -! Diffusive density at Alt - D(2)=DENSU(Z,DB16,TINF,TLB, 16.,ALPHA(2),T(2),PTM(6),S,MN1, & - ZN1,TN1,TGN1) - DD=D(2) - IF(Z.GT.ALTL(2).OR.SW(15).EQ.0.) GO TO 34 -! Corrected from PDM(3,1) to PDM(3,2) 12/2/85 -! Turbopause - ZH16=PDM(3,2) -! Mixed density at Zlb - B16=DENSU(ZH16,DB16,TINF,TLB,16-XMM,ALPHA(2)-1., & - T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) -! Mixed density at Alt - DM16=DENSU(Z,B16,TINF,TLB,XMM,0.,T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) - ZHM16=ZHM28 -! Net density at Alt - D(2)=DNET(D(2),DM16,ZHM16,XMM,16.) -! 3/16/99 Change form to match O2 departure from diff equil near 150 -! km and add dependence on F10.7 -! RL=ALOG(B28*PDM(2,2)*ABS(PDL(17,2))/B16) - RL=PDM(2,2)*PDL(17,2)*(1.+SW(1)*PDL(24,1)*(F107A-150.)) - HC16=PDM(6,2)*PDL(4,2) - ZC16=PDM(5,2)*PDL(3,2) - HC216=PDM(6,2)*PDL(5,2) - D(2)=D(2)*CCOR2(Z,RL,HC16,ZC16,HC216) -! Chemistry correction - HCC16=PDM(8,2)*PDL(14,2) - ZCC16=PDM(7,2)*PDL(13,2) - RC16=PDM(4,2)*PDL(15,2) -! Net density corrected at Alt - D(2)=D(2)*CCOR(Z,RC16,HCC16,ZCC16) - 34 CONTINUE - IF(MASS.NE.48.AND.MASS.NE.49) GO TO 90 - 35 CONTINUE -! -! **** O2 DENSITY **** -! -! Density variation factor at Zlb - G32= SW(21)*GLOBE7(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PD(1,5)) -! Diffusive density at Zlb - DB32 = PDM(1,4)*EXP(G32)*PD(1,5) -! Diffusive density at Alt - D(4)=DENSU(Z,DB32,TINF,TLB, 32.,ALPHA(4),T(2),PTM(6),S,MN1, & - ZN1,TN1,TGN1) - IF(MASS.EQ.49) THEN - DD=DD+2.*D(4) - ELSE - DD=D(4) - ENDIF - IF(SW(15).EQ.0.) GO TO 39 - IF(Z.GT.ALTL(4)) GO TO 38 -! Turbopause - ZH32=PDM(3,4) -! Mixed density at Zlb - B32=DENSU(ZH32,DB32,TINF,TLB,32.-XMM,ALPHA(4)-1., & - T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) -! Mixed density at Alt - DM32=DENSU(Z,B32,TINF,TLB,XMM,0.,T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) - ZHM32=ZHM28 -! Net density at Alt - D(4)=DNET(D(4),DM32,ZHM32,XMM,32.) -! Correction to specified mixing ratio at ground - RL=ALOG(B28*PDM(2,4)/B32) - HC32=PDM(6,4)*PDL(8,2) - ZC32=PDM(5,4)*PDL(7,2) - D(4)=D(4)*CCOR(Z,RL,HC32,ZC32) - 38 CONTINUE -! Correction for general departure from diffusive equilibrium above - HCC32=PDM(8,4)*PDL(23,2) - HCC232=PDM(8,4)*PDL(23,1) - ZCC32=PDM(7,4)*PDL(22,2) - RC32=PDM(4,4)*PDL(24,2)*(1.+SW(1)*PDL(24,1)*(F107A-150.)) -! Net density corrected at Alt - D(4)=D(4)*CCOR2(Z,RC32,HCC32,ZCC32,HCC232) - 39 CONTINUE - IF(MASS.NE.48) GO TO 90 - 40 CONTINUE -! -! **** AR DENSITY **** -! -! Density variation factor at Zlb - G40= SW(21)*GLOBE7(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PD(1,6)) -! Diffusive density at Zlb - DB40 = PDM(1,5)*EXP(G40)*PD(1,6) -! Diffusive density at Alt - D(5)=DENSU(Z,DB40,TINF,TLB, 40.,ALPHA(5),T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) - DD=D(5) - IF(Z.GT.ALTL(5).OR.SW(15).EQ.0.) GO TO 44 -! Turbopause - ZH40=PDM(3,5) -! Mixed density at Zlb - B40=DENSU(ZH40,DB40,TINF,TLB,40.-XMM,ALPHA(5)-1., & - T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) -! Mixed density at Alt - DM40=DENSU(Z,B40,TINF,TLB,XMM,0.,T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) - ZHM40=ZHM28 -! Net density at Alt - D(5)=DNET(D(5),DM40,ZHM40,XMM,40.) -! Correction to specified mixing ratio at ground - RL=ALOG(B28*PDM(2,5)/B40) - HC40=PDM(6,5)*PDL(10,2) - ZC40=PDM(5,5)*PDL(9,2) -! Net density corrected at Alt - D(5)=D(5)*CCOR(Z,RL,HC40,ZC40) - 44 CONTINUE - IF(MASS.NE.48) GO TO 90 - 45 CONTINUE -! -! **** HYDROGEN DENSITY **** -! -! Density variation factor at Zlb - G1 = SW(21)*GLOBE7(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PD(1,7)) -! Diffusive density at Zlb - DB01 = PDM(1,6)*EXP(G1)*PD(1,7) -! Diffusive density at Alt - D(7)=DENSU(Z,DB01,TINF,TLB,1.,ALPHA(7),T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) - DD=D(7) - IF(Z.GT.ALTL(7).OR.SW(15).EQ.0.) GO TO 47 -! Turbopause - ZH01=PDM(3,6) -! Mixed density at Zlb - B01=DENSU(ZH01,DB01,TINF,TLB,1.-XMM,ALPHA(7)-1., & - T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) -! Mixed density at Alt - DM01=DENSU(Z,B01,TINF,TLB,XMM,0.,T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) - ZHM01=ZHM28 -! Net density at Alt - D(7)=DNET(D(7),DM01,ZHM01,XMM,1.) -! Correction to specified mixing ratio at ground - RL=ALOG(B28*PDM(2,6)*ABS(PDL(18,2))/B01) - HC01=PDM(6,6)*PDL(12,2) - ZC01=PDM(5,6)*PDL(11,2) - D(7)=D(7)*CCOR(Z,RL,HC01,ZC01) -! Chemistry correction - HCC01=PDM(8,6)*PDL(20,2) - ZCC01=PDM(7,6)*PDL(19,2) - RC01=PDM(4,6)*PDL(21,2) -! Net density corrected at Alt - D(7)=D(7)*CCOR(Z,RC01,HCC01,ZCC01) - 47 CONTINUE - IF(MASS.NE.48) GO TO 90 - 48 CONTINUE -! -! **** ATOMIC NITROGEN DENSITY **** -! -! Density variation factor at Zlb - G14 = SW(21)*GLOBE7(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PD(1,8)) -! Diffusive density at Zlb - DB14 = PDM(1,7)*EXP(G14)*PD(1,8) -! Diffusive density at Alt - D(8)=DENSU(Z,DB14,TINF,TLB,14.,ALPHA(8),T(2),PTM(6),S,MN1, & - ZN1,TN1,TGN1) - DD=D(8) - IF(Z.GT.ALTL(8).OR.SW(15).EQ.0.) GO TO 49 -! Turbopause - ZH14=PDM(3,7) -! Mixed density at Zlb - B14=DENSU(ZH14,DB14,TINF,TLB,14.-XMM,ALPHA(8)-1., & - T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) -! Mixed density at Alt - DM14=DENSU(Z,B14,TINF,TLB,XMM,0.,T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) - ZHM14=ZHM28 -! Net density at Alt - D(8)=DNET(D(8),DM14,ZHM14,XMM,14.) -! Correction to specified mixing ratio at ground - RL=ALOG(B28*PDM(2,7)*ABS(PDL(3,1))/B14) - HC14=PDM(6,7)*PDL(2,1) - ZC14=PDM(5,7)*PDL(1,1) - D(8)=D(8)*CCOR(Z,RL,HC14,ZC14) -! Chemistry correction - HCC14=PDM(8,7)*PDL(5,1) - ZCC14=PDM(7,7)*PDL(4,1) - RC14=PDM(4,7)*PDL(6,1) -! Net density corrected at Alt - D(8)=D(8)*CCOR(Z,RC14,HCC14,ZCC14) - 49 CONTINUE - IF(MASS.NE.48) GO TO 90 - 46 CONTINUE -! -! **** Anomalous OXYGEN DENSITY **** -! - G16H = SW(21)*GLOBE7(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PD(1,9)) - DB16H = PDM(1,8)*EXP(G16H)*PD(1,9) - THO=PDM(10,8)*PDL(7,1) - DD=DENSU(Z,DB16H,THO,THO,16.,ALPHA(9),T2,PTM(6),S,MN1, & - ZN1,TN1,TGN1) - ZSHT=PDM(6,8) - ZMHO=PDM(5,8) - ZSHO=SCALH(ZMHO,16.,THO) - D(9)=DD*EXP(-ZSHT/ZSHO*(EXP(-(Z-ZMHO)/ZSHT)-1.)) - IF(MASS.NE.48) GO TO 90 -! -! TOTAL MASS DENSITY -! - D(6) = 1.66E-24*(4.*D(1)+16.*D(2)+28.*D(3)+32.*D(4)+40.*D(5)+ & - D(7)+14.*D(8)) - DB48=1.66E-24*(4.*DB04+16.*DB16+28.*DB28+32.*DB32+40.*DB40+DB01+ & - 14.*DB14) - GO TO 90 -! TEMPERATURE AT ALTITUDE - 50 CONTINUE - Z=ABS(ALT) - DDUM = DENSU(Z,1., TINF,TLB,0.,0.,T(2),PTM(6),S,MN1,ZN1,TN1,TGN1) - 90 CONTINUE -! ADJUST DENSITIES FROM CGS TO KGM - IF(IMR.EQ.1) THEN - DO 95 I=1,9 - D(I)=D(I)*1.E6 - 95 CONTINUE - D(6)=D(6)/1000. - ENDIF - ALAST=ALT - RETURN - 100 FORMAT(1X,'MASS', I5, ' NOT VALID') - END SUBROUTINE GTS7 -!----------------------------------------------------------------------- - SUBROUTINE METERS(METER) -! Convert outputs to Kg & Meters if METER true - LOGICAL METER - COMMON/METSEL/IMR - SAVE - IMR=0 - IF(METER) IMR=1 - END SUBROUTINE METERS -!----------------------------------------------------------------------- - FUNCTION SCALH(ALT,XM,TEMP) -! Calculate scale height (km) - COMMON/PARMB/GSURF,RE - SAVE - DATA RGAS/831.4/ - G=GSURF/(1.+ALT/RE)**2 - SCALH=RGAS*TEMP/(G*XM) - RETURN - END FUNCTION SCALH -!----------------------------------------------------------------------- - FUNCTION GLOBE7(YRD,SEC,LAT,LONG,TLOC,F107A,F107,AP,P) -! CALCULATE G(L) FUNCTION -! Upper Thermosphere Parameters - REAL LAT, LONG - DIMENSION P(*),SV(25),AP(*) - COMMON/TTEST/TINF,GB,ROUT,T(15) -! COMMON/CSW/SW(25),ISW,SWC(25) - COMMON/CSW/SW(25),SWC(25),ISW - COMMON/LPOLY/PLG(9,4),CTLOC,STLOC,C2TLOC,S2TLOC,C3TLOC,S3TLOC, & - DAY,DF,DFA,APD,APDF,APT(4),XLONG,IYR - SAVE - DATA DGTR/1.74533E-2/,DR/1.72142E-2/, XL/1000./,TLL/1000./ - DATA SW9/1./,DAYL/-1./,P14/-1000./,P18/-1000./,P32/-1000./ - DATA HR/.2618/,SR/7.2722E-5/,SV/25*1./,NSW/14/,P39/-1000./ -! 3hr Magnetic activity functions -! Eq. A24d - G0(A)=(A-4.+(P(26)-1.)*(A-4.+(EXP(-ABS(P(25))*(A-4.))-1.)/ABS(P(25)))) -! Eq. A24c - SUMEX(EX)=1.+(1.-EX**19)/(1.-EX)*EX**(.5) -! Eq. A24a - SG0(EX)=(G0(AP(2))+(G0(AP(3))*EX+G0(AP(4))*EX*EX+G0(AP(5))*EX**3 & - +(G0(AP(6))*EX**4+G0(AP(7))*EX**12)*(1.-EX**8)/(1.-EX)) & - )/SUMEX(EX) - IF(ISW.NE.64999) CALL TSELEC(SV) - DO 10 J=1,14 - T(J)=0 - 10 END DO - IF(SW(9).GT.0) SW9=1. - IF(SW(9).LT.0) SW9=-1. - IYR = YRD/1000. - DAY = YRD - IYR*1000. - XLONG=LONG -! Eq. A22 (remainder of code) - IF(XL.EQ.LAT) GO TO 15 -! CALCULATE LEGENDRE POLYNOMIALS - C = SIN(LAT*DGTR) - S = COS(LAT*DGTR) - C2 = C*C - C4 = C2*C2 - S2 = S*S - PLG(2,1) = C - PLG(3,1) = 0.5*(3.*C2 -1.) - PLG(4,1) = 0.5*(5.*C*C2-3.*C) - PLG(5,1) = (35.*C4 - 30.*C2 + 3.)/8. - PLG(6,1) = (63.*C2*C2*C - 70.*C2*C + 15.*C)/8. - PLG(7,1) = (11.*C*PLG(6,1) - 5.*PLG(5,1))/6. -! PLG(8,1) = (13.*C*PLG(7,1) - 6.*PLG(6,1))/7. - PLG(2,2) = S - PLG(3,2) = 3.*C*S - PLG(4,2) = 1.5*(5.*C2-1.)*S - PLG(5,2) = 2.5*(7.*C2*C-3.*C)*S - PLG(6,2) = 1.875*(21.*C4 - 14.*C2 +1.)*S - PLG(7,2) = (11.*C*PLG(6,2)-6.*PLG(5,2))/5. -! PLG(8,2) = (13.*C*PLG(7,2)-7.*PLG(6,2))/6. -! PLG(9,2) = (15.*C*PLG(8,2)-8.*PLG(7,2))/7. - PLG(3,3) = 3.*S2 - PLG(4,3) = 15.*S2*C - PLG(5,3) = 7.5*(7.*C2 -1.)*S2 - PLG(6,3) = 3.*C*PLG(5,3)-2.*PLG(4,3) - PLG(7,3)=(11.*C*PLG(6,3)-7.*PLG(5,3))/4. - PLG(8,3)=(13.*C*PLG(7,3)-8.*PLG(6,3))/5. - PLG(4,4) = 15.*S2*S - PLG(5,4) = 105.*S2*S*C - PLG(6,4)=(9.*C*PLG(5,4)-7.*PLG(4,4))/2. - PLG(7,4)=(11.*C*PLG(6,4)-8.*PLG(5,4))/3. - XL=LAT - 15 CONTINUE - IF(TLL.EQ.TLOC) GO TO 16 - IF(SW(7).EQ.0.AND.SW(8).EQ.0.AND.SW(14).EQ.0) GOTO 16 - STLOC = SIN(HR*TLOC) - CTLOC = COS(HR*TLOC) - S2TLOC = SIN(2.*HR*TLOC) - C2TLOC = COS(2.*HR*TLOC) - S3TLOC = SIN(3.*HR*TLOC) - C3TLOC = COS(3.*HR*TLOC) - TLL = TLOC - 16 CONTINUE - IF(DAY.NE.DAYL.OR.P(14).NE.P14) CD14=COS(DR*(DAY-P(14))) - IF(DAY.NE.DAYL.OR.P(18).NE.P18) CD18=COS(2.*DR*(DAY-P(18))) - IF(DAY.NE.DAYL.OR.P(32).NE.P32) CD32=COS(DR*(DAY-P(32))) - IF(DAY.NE.DAYL.OR.P(39).NE.P39) CD39=COS(2.*DR*(DAY-P(39))) - DAYL = DAY - P14 = P(14) - P18 = P(18) - P32 = P(32) - P39 = P(39) -! F10.7 EFFECT - DF = F107 - F107A - DFA=F107A-150. - T(1) = P(20)*DF*(1.+P(60)*DFA) + P(21)*DF*DF + P(22)*DFA & - + P(30)*DFA**2 - F1 = 1. + (P(48)*DFA +P(20)*DF+P(21)*DF*DF)*SWC(1) - F2 = 1. + (P(50)*DFA+P(20)*DF+P(21)*DF*DF)*SWC(1) -! TIME INDEPENDENT - T(2) = & - (P(2)*PLG(3,1) + P(3)*PLG(5,1)+P(23)*PLG(7,1)) & - +(P(15)*PLG(3,1))*DFA*SWC(1) & - +P(27)*PLG(2,1) -! SYMMETRICAL ANNUAL - T(3) = & - (P(19) )*CD32 -! SYMMETRICAL SEMIANNUAL - T(4) = & - (P(16)+P(17)*PLG(3,1))*CD18 -! ASYMMETRICAL ANNUAL - T(5) = F1* & - (P(10)*PLG(2,1)+P(11)*PLG(4,1))*CD14 -! ASYMMETRICAL SEMIANNUAL - T(6) = P(38)*PLG(2,1)*CD39 -! DIURNAL - IF(SW(7).EQ.0) GOTO 200 - T71 = (P(12)*PLG(3,2))*CD14*SWC(5) - T72 = (P(13)*PLG(3,2))*CD14*SWC(5) - T(7) = F2* & - ((P(4)*PLG(2,2) + P(5)*PLG(4,2) + P(28)*PLG(6,2) & - + T71)*CTLOC & - + (P(7)*PLG(2,2) + P(8)*PLG(4,2) +P(29)*PLG(6,2) & - + T72)*STLOC) - 200 CONTINUE -! SEMIDIURNAL - IF(SW(8).EQ.0) GOTO 210 - T81 = (P(24)*PLG(4,3)+P(36)*PLG(6,3))*CD14*SWC(5) - T82 = (P(34)*PLG(4,3)+P(37)*PLG(6,3))*CD14*SWC(5) - T(8) = F2* & - ((P(6)*PLG(3,3) + P(42)*PLG(5,3) + T81)*C2TLOC & - +(P(9)*PLG(3,3) + P(43)*PLG(5,3) + T82)*S2TLOC) - 210 CONTINUE -! TERDIURNAL - IF(SW(14).EQ.0) GOTO 220 - T(14) = F2* & - ((P(40)*PLG(4,4)+(P(94)*PLG(5,4)+P(47)*PLG(7,4))*CD14*SWC(5))* & - S3TLOC & - +(P(41)*PLG(4,4)+(P(95)*PLG(5,4)+P(49)*PLG(7,4))*CD14*SWC(5))* & - C3TLOC) - 220 CONTINUE -! MAGNETIC ACTIVITY BASED ON DAILY AP - - IF(SW9.EQ.-1.) GO TO 30 - APD=(AP(1)-4.) - P44=P(44) - P45=P(45) - IF(P44.LT.0) P44=1.E-5 - APDF = APD+(P45-1.)*(APD+(EXP(-P44 *APD)-1.)/P44) - IF(SW(9).EQ.0) GOTO 40 - T(9)=APDF*(P(33)+P(46)*PLG(3,1)+P(35)*PLG(5,1)+ & - (P(101)*PLG(2,1)+P(102)*PLG(4,1)+P(103)*PLG(6,1))*CD14*SWC(5)+ & - (P(122)*PLG(2,2)+P(123)*PLG(4,2)+P(124)*PLG(6,2))*SWC(7)* & - COS(HR*(TLOC-P(125)))) - GO TO 40 - 30 CONTINUE - IF(P(52).EQ.0) GO TO 40 - EXP1 = EXP(-10800.*ABS(P(52))/(1.+P(139)*(45.-ABS(LAT)))) - IF(EXP1.GT..99999) EXP1=.99999 - IF(P(25).LT.1.E-4) P(25)=1.E-4 - APT(1)=SG0(EXP1) -! APT(2)=SG2(EXP1) -! APT(3)=SG0(EXP2) -! APT(4)=SG2(EXP2) - IF(SW(9).EQ.0) GOTO 40 - T(9) = APT(1)*(P(51)+P(97)*PLG(3,1)+P(55)*PLG(5,1)+ & - (P(126)*PLG(2,1)+P(127)*PLG(4,1)+P(128)*PLG(6,1))*CD14*SWC(5)+ & - (P(129)*PLG(2,2)+P(130)*PLG(4,2)+P(131)*PLG(6,2))*SWC(7)* & - COS(HR*(TLOC-P(132)))) - 40 CONTINUE - IF(SW(10).EQ.0.OR.LONG.LE.-1000.) GO TO 49 -! LONGITUDINAL - IF(SW(11).EQ.0) GOTO 230 - T(11)= (1.+P(81)*DFA*SWC(1))* & - ((P(65)*PLG(3,2)+P(66)*PLG(5,2)+P(67)*PLG(7,2) & - +P(104)*PLG(2,2)+P(105)*PLG(4,2)+P(106)*PLG(6,2) & - +SWC(5)*(P(110)*PLG(2,2)+P(111)*PLG(4,2)+P(112)*PLG(6,2))*CD14)* & - COS(DGTR*LONG) & - +(P(91)*PLG(3,2)+P(92)*PLG(5,2)+P(93)*PLG(7,2) & - +P(107)*PLG(2,2)+P(108)*PLG(4,2)+P(109)*PLG(6,2) & - +SWC(5)*(P(113)*PLG(2,2)+P(114)*PLG(4,2)+P(115)*PLG(6,2))*CD14)* & - SIN(DGTR*LONG)) - 230 CONTINUE -! UT AND MIXED UT,LONGITUDE - IF(SW(12).EQ.0) GOTO 240 - T(12)=(1.+P(96)*PLG(2,1))*(1.+P(82)*DFA*SWC(1))* & - (1.+P(120)*PLG(2,1)*SWC(5)*CD14)* & - ((P(69)*PLG(2,1)+P(70)*PLG(4,1)+P(71)*PLG(6,1))* & - COS(SR*(SEC-P(72)))) - T(12)=T(12)+SWC(11)* & - (P(77)*PLG(4,3)+P(78)*PLG(6,3)+P(79)*PLG(8,3))* & - COS(SR*(SEC-P(80))+2.*DGTR*LONG)*(1.+P(138)*DFA*SWC(1)) - 240 CONTINUE -! UT,LONGITUDE MAGNETIC ACTIVITY - IF(SW(13).EQ.0) GOTO 48 - IF(SW9.EQ.-1.) GO TO 45 - T(13)= APDF*SWC(11)*(1.+P(121)*PLG(2,1))* & - ((P( 61)*PLG(3,2)+P( 62)*PLG(5,2)+P( 63)*PLG(7,2))* & - COS(DGTR*(LONG-P( 64)))) & - +APDF*SWC(11)*SWC(5)* & - (P(116)*PLG(2,2)+P(117)*PLG(4,2)+P(118)*PLG(6,2))* & - CD14*COS(DGTR*(LONG-P(119))) & - + APDF*SWC(12)* & - (P( 84)*PLG(2,1)+P( 85)*PLG(4,1)+P( 86)*PLG(6,1))* & - COS(SR*(SEC-P( 76))) - GOTO 48 - 45 CONTINUE - IF(P(52).EQ.0) GOTO 48 - T(13)=APT(1)*SWC(11)*(1.+P(133)*PLG(2,1))* & - ((P(53)*PLG(3,2)+P(99)*PLG(5,2)+P(68)*PLG(7,2))* & - COS(DGTR*(LONG-P(98)))) & - +APT(1)*SWC(11)*SWC(5)* & - (P(134)*PLG(2,2)+P(135)*PLG(4,2)+P(136)*PLG(6,2))* & - CD14*COS(DGTR*(LONG-P(137))) & - +APT(1)*SWC(12)* & - (P(56)*PLG(2,1)+P(57)*PLG(4,1)+P(58)*PLG(6,1))* & - COS(SR*(SEC-P(59))) - 48 CONTINUE -! PARMS NOT USED: 83, 90,100,140-150 - 49 CONTINUE - TINF=P(31) - DO 50 I = 1,NSW - 50 TINF = TINF + ABS(SW(I))*T(I) - GLOBE7 = TINF - RETURN - END FUNCTION GLOBE7 -!----------------------------------------------------------------------- - SUBROUTINE TSELEC(SV) -! SET SWITCHES -! Output in COMMON/CSW/SW(25),ISW,SWC(25) -! SW FOR MAIN TERMS, SWC FOR CROSS TERMS -! -! TO TURN ON AND OFF PARTICULAR VARIATIONS CALL TSELEC(SV), -! WHERE SV IS A 25 ELEMENT ARRAY CONTAINING 0. FOR OFF, 1. -! FOR ON, OR 2. FOR MAIN EFFECTS OFF BUT CROSS TERMS ON -! -! To get current values of SW: CALL TRETRV(SW) -! - DIMENSION SV(*),SAV(25),SVV(*) -! COMMON/CSW/SW(25),ISW,SWC(25) - COMMON/CSW/SW(25),SWC(25),ISW - SAVE - DO 100 I = 1,25 - SAV(I)=SV(I) - SW(I)=AMOD(SV(I),2.) - IF(ABS(SV(I)).EQ.1.OR.ABS(SV(I)).EQ.2.) THEN - SWC(I)=1. - ELSE - SWC(I)=0. - ENDIF - 100 END DO - ISW=64999 - RETURN - ENTRY TRETRV(SVV) - DO 200 I=1,25 - SVV(I)=SAV(I) - 200 END DO - END SUBROUTINE TSELEC -!----------------------------------------------------------------------- - FUNCTION GLOB7S(P) -! VERSION OF GLOBE FOR LOWER ATMOSPHERE 10/26/99 - REAL LONG - COMMON/LPOLY/PLG(9,4),CTLOC,STLOC,C2TLOC,S2TLOC,C3TLOC,S3TLOC, & - DAY,DF,DFA,APD,APDF,APT(4),LONG,IYR -! COMMON/CSW/SW(25),ISW,SWC(25) - COMMON/CSW/SW(25),SWC(25),ISW - DIMENSION P(*),T(14) - SAVE - DATA DR/1.72142E-2/,DGTR/1.74533E-2/,PSET/2./ - DATA DAYL/-1./,P32,P18,P14,P39/4*-1000./ -! CONFIRM PARAMETER SET - IF(P(100).EQ.0) P(100)=PSET - IF(P(100).NE.PSET) THEN - WRITE(6,900) PSET,P(100) - 900 FORMAT(1X,'WRONG PARAMETER SET FOR GLOB7S',3F10.1) - STOP - ENDIF - DO 10 J=1,14 - T(J)=0. - 10 END DO - IF(DAY.NE.DAYL.OR.P32.NE.P(32)) CD32=COS(DR*(DAY-P(32))) - IF(DAY.NE.DAYL.OR.P18.NE.P(18)) CD18=COS(2.*DR*(DAY-P(18))) - IF(DAY.NE.DAYL.OR.P14.NE.P(14)) CD14=COS(DR*(DAY-P(14))) - IF(DAY.NE.DAYL.OR.P39.NE.P(39)) CD39=COS(2.*DR*(DAY-P(39))) - DAYL=DAY - P32=P(32) - P18=P(18) - P14=P(14) - P39=P(39) -! -! F10.7 - T(1)=P(22)*DFA -! TIME INDEPENDENT - T(2)=P(2)*PLG(3,1)+P(3)*PLG(5,1)+P(23)*PLG(7,1) & - +P(27)*PLG(2,1)+P(15)*PLG(4,1)+P(60)*PLG(6,1) -! SYMMETRICAL ANNUAL - T(3)=(P(19)+P(48)*PLG(3,1)+P(30)*PLG(5,1))*CD32 -! SYMMETRICAL SEMIANNUAL - T(4)=(P(16)+P(17)*PLG(3,1)+P(31)*PLG(5,1))*CD18 -! ASYMMETRICAL ANNUAL - T(5)=(P(10)*PLG(2,1)+P(11)*PLG(4,1)+P(21)*PLG(6,1))*CD14 -! ASYMMETRICAL SEMIANNUAL - T(6)=(P(38)*PLG(2,1))*CD39 -! DIURNAL - IF(SW(7).EQ.0) GOTO 200 - T71 = P(12)*PLG(3,2)*CD14*SWC(5) - T72 = P(13)*PLG(3,2)*CD14*SWC(5) - T(7) = & - ((P(4)*PLG(2,2) + P(5)*PLG(4,2) & - + T71)*CTLOC & - + (P(7)*PLG(2,2) + P(8)*PLG(4,2) & - + T72)*STLOC) - 200 CONTINUE -! SEMIDIURNAL - IF(SW(8).EQ.0) GOTO 210 - T81 = (P(24)*PLG(4,3)+P(36)*PLG(6,3))*CD14*SWC(5) - T82 = (P(34)*PLG(4,3)+P(37)*PLG(6,3))*CD14*SWC(5) - T(8) = & - ((P(6)*PLG(3,3) + P(42)*PLG(5,3) + T81)*C2TLOC & - +(P(9)*PLG(3,3) + P(43)*PLG(5,3) + T82)*S2TLOC) - 210 CONTINUE -! TERDIURNAL - IF(SW(14).EQ.0) GOTO 220 - T(14) = P(40)*PLG(4,4)*S3TLOC +P(41)*PLG(4,4)*C3TLOC - 220 CONTINUE -! MAGNETIC ACTIVITY - IF(SW(9).EQ.0) GOTO 40 - IF(SW(9).EQ.1) & - T(9)=APDF*(P(33)+P(46)*PLG(3,1)*SWC(2)) - IF(SW(9).EQ.-1) & - T(9)=(P(51)*APT(1)+P(97)*PLG(3,1)*APT(1)*SWC(2)) - 40 CONTINUE - IF(SW(10).EQ.0.OR.SW(11).EQ.0.OR.LONG.LE.-1000.) GO TO 49 -! LONGITUDINAL - T(11)= (1.+PLG(2,1)*(P(81)*SWC(5)*COS(DR*(DAY-P(82))) & - +P(86)*SWC(6)*COS(2.*DR*(DAY-P(87)))) & - +P(84)*SWC(3)*COS(DR*(DAY-P(85))) & - +P(88)*SWC(4)*COS(2.*DR*(DAY-P(89)))) & - *((P(65)*PLG(3,2)+P(66)*PLG(5,2)+P(67)*PLG(7,2) & - +P(75)*PLG(2,2)+P(76)*PLG(4,2)+P(77)*PLG(6,2) & - )*COS(DGTR*LONG) & - +(P(91)*PLG(3,2)+P(92)*PLG(5,2)+P(93)*PLG(7,2) & - +P(78)*PLG(2,2)+P(79)*PLG(4,2)+P(80)*PLG(6,2) & - )*SIN(DGTR*LONG)) - 49 CONTINUE - TT=0. - DO 50 I=1,14 - 50 TT=TT+ABS(SW(I))*T(I) - GLOB7S=TT - RETURN - END FUNCTION GLOB7S -!-------------------------------------------------------------------- - FUNCTION DENSU(ALT,DLB,TINF,TLB,XM,ALPHA,TZ,ZLB,S2, & - MN1,ZN1,TN1,TGN1) -! Calculate Temperature and Density Profiles for MSIS models -! New lower thermo polynomial 10/30/89 - DIMENSION ZN1(MN1),TN1(MN1),TGN1(2),XS(5),YS(5),Y2OUT(5) - COMMON/PARMB/GSURF,RE - COMMON/LSQV/MP,II,JG,LT,QPB(50),IERR,IFUN,N,J,DV(60) - SAVE - DATA RGAS/831.4/ - ZETA(ZZ,ZL)=(ZZ-ZL)*(RE+ZL)/(RE+ZZ) -!CCCCCWRITE(6,*) 'DB',ALT,DLB,TINF,TLB,XM,ALPHA,ZLB,S2,MN1,ZN1,TN1 - DENSU=1. -! Joining altitude of Bates and spline - ZA=ZN1(1) - Z=AMAX1(ALT,ZA) -! Geopotential altitude difference from ZLB - ZG2=ZETA(Z,ZLB) -! Bates temperature - TT=TINF-(TINF-TLB)*EXP(-S2*ZG2) - TA=TT - TZ=TT - DENSU=TZ - IF(ALT.GE.ZA) GO TO 10 -! -! CALCULATE TEMPERATURE BELOW ZA -! Temperature gradient at ZA from Bates profile - DTA=(TINF-TA)*S2*((RE+ZLB)/(RE+ZA))**2 - TGN1(1)=DTA - TN1(1)=TA - Z=AMAX1(ALT,ZN1(MN1)) - MN=MN1 - Z1=ZN1(1) - Z2=ZN1(MN) - T1=TN1(1) - T2=TN1(MN) -! Geopotental difference from Z1 - ZG=ZETA(Z,Z1) - ZGDIF=ZETA(Z2,Z1) -! Set up spline nodes - DO 20 K=1,MN - XS(K)=ZETA(ZN1(K),Z1)/ZGDIF - YS(K)=1./TN1(K) - 20 END DO -! End node derivatives - YD1=-TGN1(1)/(T1*T1)*ZGDIF - YD2=-TGN1(2)/(T2*T2)*ZGDIF*((RE+Z2)/(RE+Z1))**2 -! Calculate spline coefficients - CALL SPLINE(XS,YS,MN,YD1,YD2,Y2OUT) - X=ZG/ZGDIF - CALL SPLINT(XS,YS,Y2OUT,MN,X,Y) -! temperature at altitude - TZ=1./Y - DENSU=TZ - 10 IF(XM.EQ.0.) GO TO 50 -! -! CALCULATE DENSITY ABOVE ZA - GLB=GSURF/(1.+ZLB/RE)**2 - GAMMA=XM*GLB/(S2*RGAS*TINF) - EXPL=EXP(-S2*GAMMA*ZG2) - IF(EXPL.GT.50.OR.TT.LE.0.) THEN - EXPL=50. - ENDIF -! Density at altitude - DENSA=DLB*(TLB/TT)**(1.+ALPHA+GAMMA)*EXPL - DENSU=DENSA - IF(ALT.GE.ZA) GO TO 50 -! -! CALCULATE DENSITY BELOW ZA - GLB=GSURF/(1.+Z1/RE)**2 - GAMM=XM*GLB*ZGDIF/RGAS -! integrate spline temperatures - CALL SPLINI(XS,YS,Y2OUT,MN,X,YI) - EXPL=GAMM*YI - IF(EXPL.GT.50..OR.TZ.LE.0.) THEN - EXPL=50. - ENDIF -! Density at altitude - DENSU=DENSU*(T1/TZ)**(1.+ALPHA)*EXP(-EXPL) - 50 CONTINUE - RETURN - END FUNCTION DENSU -!-------------------------------------------------------------------- - FUNCTION DENSM(ALT,D0,XM,TZ,MN3,ZN3,TN3,TGN3,MN2,ZN2,TN2,TGN2) -! Calculate Temperature and Density Profiles for lower atmos. - DIMENSION ZN3(MN3),TN3(MN3),TGN3(2),XS(10),YS(10),Y2OUT(10) - DIMENSION ZN2(MN2),TN2(MN2),TGN2(2) - COMMON/PARMB/GSURF,RE - COMMON/FIT/TAF - COMMON/LSQV/MP,II,JG,LT,QPB(50),IERR,IFUN,N,J,DV(60) - SAVE - DATA RGAS/831.4/ - ZETA(ZZ,ZL)=(ZZ-ZL)*(RE+ZL)/(RE+ZZ) - DENSM=D0 - IF(ALT.GT.ZN2(1)) GOTO 50 -! STRATOSPHERE/MESOSPHERE TEMPERATURE - Z=AMAX1(ALT,ZN2(MN2)) - MN=MN2 - Z1=ZN2(1) - Z2=ZN2(MN) - T1=TN2(1) - T2=TN2(MN) - ZG=ZETA(Z,Z1) - ZGDIF=ZETA(Z2,Z1) -! Set up spline nodes - DO 210 K=1,MN - XS(K)=ZETA(ZN2(K),Z1)/ZGDIF - YS(K)=1./TN2(K) - 210 END DO - YD1=-TGN2(1)/(T1*T1)*ZGDIF - YD2=-TGN2(2)/(T2*T2)*ZGDIF*((RE+Z2)/(RE+Z1))**2 -! Calculate spline coefficients - CALL SPLINE(XS,YS,MN,YD1,YD2,Y2OUT) - X=ZG/ZGDIF - CALL SPLINT(XS,YS,Y2OUT,MN,X,Y) -! Temperature at altitude - TZ=1./Y - IF(XM.EQ.0.) GO TO 20 -! -! CALCULATE STRATOSPHERE/MESOSPHERE DENSITY - GLB=GSURF/(1.+Z1/RE)**2 - GAMM=XM*GLB*ZGDIF/RGAS -! Integrate temperature profile - CALL SPLINI(XS,YS,Y2OUT,MN,X,YI) - EXPL=GAMM*YI - IF(EXPL.GT.50.) EXPL=50. -! Density at altitude - DENSM=DENSM*(T1/TZ)*EXP(-EXPL) - 20 CONTINUE - IF(ALT.GT.ZN3(1)) GOTO 50 -! -! TROPOSPHERE/STRATOSPHERE TEMPERATURE - Z=ALT - MN=MN3 - Z1=ZN3(1) - Z2=ZN3(MN) - T1=TN3(1) - T2=TN3(MN) - ZG=ZETA(Z,Z1) - ZGDIF=ZETA(Z2,Z1) -! Set up spline nodes - DO 220 K=1,MN - XS(K)=ZETA(ZN3(K),Z1)/ZGDIF - YS(K)=1./TN3(K) - 220 END DO - YD1=-TGN3(1)/(T1*T1)*ZGDIF - YD2=-TGN3(2)/(T2*T2)*ZGDIF*((RE+Z2)/(RE+Z1))**2 -! Calculate spline coefficients - CALL SPLINE(XS,YS,MN,YD1,YD2,Y2OUT) - X=ZG/ZGDIF - CALL SPLINT(XS,YS,Y2OUT,MN,X,Y) -! temperature at altitude - TZ=1./Y - IF(XM.EQ.0.) GO TO 30 -! -! CALCULATE TROPOSPHERIC/STRATOSPHERE DENSITY -! - GLB=GSURF/(1.+Z1/RE)**2 - GAMM=XM*GLB*ZGDIF/RGAS -! Integrate temperature profile - CALL SPLINI(XS,YS,Y2OUT,MN,X,YI) - EXPL=GAMM*YI - IF(EXPL.GT.50.) EXPL=50. -! Density at altitude - DENSM=DENSM*(T1/TZ)*EXP(-EXPL) - 30 CONTINUE - 50 CONTINUE - IF(XM.EQ.0) DENSM=TZ - RETURN - END FUNCTION DENSM -!----------------------------------------------------------------------- - SUBROUTINE SPLINE(X,Y,N,YP1,YPN,Y2) -! CALCULATE 2ND DERIVATIVES OF CUBIC SPLINE INTERP FUNCTION -! ADAPTED FROM NUMERICAL RECIPES BY PRESS ET AL -! X,Y: ARRAYS OF TABULATED FUNCTION IN ASCENDING ORDER BY X -! N: SIZE OF ARRAYS X,Y -! YP1,YPN: SPECIFIED DERIVATIVES AT X(1) AND X(N); VALUES -! >= 1E30 SIGNAL SIGNAL SECOND DERIVATIVE ZERO -! Y2: OUTPUT ARRAY OF SECOND DERIVATIVES - PARAMETER (NMAX=100) - DIMENSION X(N),Y(N),Y2(N),U(NMAX) - SAVE - IF(YP1.GT..99E30) THEN - Y2(1)=0 - U(1)=0 - ELSE - Y2(1)=-.5 - U(1)=(3./(X(2)-X(1)))*((Y(2)-Y(1))/(X(2)-X(1))-YP1) - ENDIF - DO 11 I=2,N-1 - SIG=(X(I)-X(I-1))/(X(I+1)-X(I-1)) - P=SIG*Y2(I-1)+2. - Y2(I)=(SIG-1.)/P - U(I)=(6.*((Y(I+1)-Y(I))/(X(I+1)-X(I))-(Y(I)-Y(I-1)) & - /(X(I)-X(I-1)))/(X(I+1)-X(I-1))-SIG*U(I-1))/P - 11 END DO - IF(YPN.GT..99E30) THEN - QN=0 - UN=0 - ELSE - QN=.5 - UN=(3./(X(N)-X(N-1)))*(YPN-(Y(N)-Y(N-1))/(X(N)-X(N-1))) - ENDIF - Y2(N)=(UN-QN*U(N-1))/(QN*Y2(N-1)+1.) - DO 12 K=N-1,1,-1 - Y2(K)=Y2(K)*Y2(K+1)+U(K) - 12 END DO - RETURN - END SUBROUTINE SPLINE -!----------------------------------------------------------------------- - SUBROUTINE SPLINT(XA,YA,Y2A,N,X,Y) -! CALCULATE CUBIC SPLINE INTERP VALUE -! ADAPTED FROM NUMERICAL RECIPES BY PRESS ET AL. -! XA,YA: ARRAYS OF TABULATED FUNCTION IN ASCENDING ORDER BY X -! Y2A: ARRAY OF SECOND DERIVATIVES -! N: SIZE OF ARRAYS XA,YA,Y2A -! X: ABSCISSA FOR INTERPOLATION -! Y: OUTPUT VALUE - DIMENSION XA(N),YA(N),Y2A(N) - SAVE - KLO=1 - KHI=N - 1 CONTINUE - IF(KHI-KLO.GT.1) THEN - K=(KHI+KLO)/2 - IF(XA(K).GT.X) THEN - KHI=K - ELSE - KLO=K - ENDIF - GOTO 1 - ENDIF - H=XA(KHI)-XA(KLO) - IF(H.EQ.0) WRITE(6,*) 'BAD XA INPUT TO SPLINT' - A=(XA(KHI)-X)/H - B=(X-XA(KLO))/H - Y=A*YA(KLO)+B*YA(KHI)+ & - ((A*A*A-A)*Y2A(KLO)+(B*B*B-B)*Y2A(KHI))*H*H/6. - RETURN - END SUBROUTINE SPLINT -!----------------------------------------------------------------------- - SUBROUTINE SPLINI(XA,YA,Y2A,N,X,YI) -! INTEGRATE CUBIC SPLINE FUNCTION FROM XA(1) TO X -! XA,YA: ARRAYS OF TABULATED FUNCTION IN ASCENDING ORDER BY X -! Y2A: ARRAY OF SECOND DERIVATIVES -! N: SIZE OF ARRAYS XA,YA,Y2A -! X: ABSCISSA ENDPOINT FOR INTEGRATION -! Y: OUTPUT VALUE - DIMENSION XA(N),YA(N),Y2A(N) - SAVE - YI=0 - KLO=1 - KHI=2 - 1 CONTINUE - IF(X.GT.XA(KLO).AND.KHI.LE.N) THEN - XX=X - IF(KHI.LT.N) XX=AMIN1(X,XA(KHI)) - H=XA(KHI)-XA(KLO) - A=(XA(KHI)-XX)/H - B=(XX-XA(KLO))/H - A2=A*A - B2=B*B - YI=YI+((1.-A2)*YA(KLO)/2.+B2*YA(KHI)/2.+ & - ((-(1.+A2*A2)/4.+A2/2.)*Y2A(KLO)+ & - (B2*B2/4.-B2/2.)*Y2A(KHI))*H*H/6.)*H - KLO=KLO+1 - KHI=KHI+1 - GOTO 1 - ENDIF - RETURN - END SUBROUTINE SPLINI -!----------------------------------------------------------------------- - FUNCTION DNET(DD,DM,ZHM,XMM,XM) -! TURBOPAUSE CORRECTION FOR MSIS MODELS -! Root mean density -! 8/20/80 -! DD - diffusive density -! DM - full mixed density -! ZHM - transition scale length -! XMM - full mixed molecular weight -! XM - species molecular weight -! DNET - combined density - SAVE - A=ZHM/(XMM-XM) - IF(DM.GT.0.AND.DD.GT.0) GOTO 5 - WRITE(6,*) 'DNET LOG ERROR',DM,DD,XM - IF(DD.EQ.0.AND.DM.EQ.0) DD=1. - IF(DM.EQ.0) GOTO 10 - IF(DD.EQ.0) GOTO 20 - 5 CONTINUE - YLOG=A*ALOG(DM/DD) - IF(YLOG.LT.-10.) GO TO 10 - IF(YLOG.GT.10.) GO TO 20 - DNET=DD*(1.+EXP(YLOG))**(1/A) - GO TO 50 - 10 CONTINUE - DNET=DD - GO TO 50 - 20 CONTINUE - DNET=DM - GO TO 50 - 50 CONTINUE - RETURN - END FUNCTION DNET -!----------------------------------------------------------------------- - FUNCTION CCOR(ALT, R,H1,ZH) -! CHEMISTRY/DISSOCIATION CORRECTION FOR MSIS MODELS -! ALT - altitude -! R - target ratio -! H1 - transition scale length -! ZH - altitude of 1/2 R - SAVE - E=(ALT-ZH)/H1 - IF(E.GT.70.) GO TO 20 - IF(E.LT.-70.) GO TO 10 - EX=EXP(E) - CCOR=R/(1.+EX) - GO TO 50 - 10 CCOR=R - GO TO 50 - 20 CCOR=0. - GO TO 50 - 50 CONTINUE - CCOR=EXP(CCOR) - RETURN - END FUNCTION CCOR -!----------------------------------------------------------------------- - FUNCTION CCOR2(ALT, R,H1,ZH,H2) -! O&O2 CHEMISTRY/DISSOCIATION CORRECTION FOR MSIS MODELS - E1=(ALT-ZH)/H1 - E2=(ALT-ZH)/H2 - IF(E1.GT.70. .OR. E2.GT.70.) GO TO 20 - IF(E1.LT.-70. .AND. E2.LT.-70) GO TO 10 - EX1=EXP(E1) - EX2=EXP(E2) - CCOR2=R/(1.+.5*(EX1+EX2)) - GO TO 50 - 10 CCOR2=R - GO TO 50 - 20 CCOR2=0. - GO TO 50 - 50 CONTINUE - CCOR2=EXP(CCOR2) - RETURN - END FUNCTION CCOR2 -!----------------------------------------------------------------------- - BLOCK DATA GTD7BK -! MSISE-00 01-FEB-02 - COMMON/PARM7/PT1(50),PT2(50),PT3(50),PA1(50),PA2(50),PA3(50), & - PB1(50),PB2(50),PB3(50),PC1(50),PC2(50),PC3(50), & - PD1(50),PD2(50),PD3(50),PE1(50),PE2(50),PE3(50), & - PF1(50),PF2(50),PF3(50),PG1(50),PG2(50),PG3(50), & - PH1(50),PH2(50),PH3(50),PI1(50),PI2(50),PI3(50), & - PJ1(50),PJ2(50),PJ3(50),PK1(50),PL1(50),PL2(50), & - PM1(50),PM2(50),PN1(50),PN2(50),PO1(50),PO2(50), & - PP1(50),PP2(50),PQ1(50),PQ2(50),PR1(50),PR2(50), & - PS1(50),PS2(50),PU1(50),PU2(50),PV1(50),PV2(50), & - PW1(50),PW2(50),PX1(50),PX2(50),PY1(50),PY2(50), & - PZ1(50),PZ2(50),PAA1(50),PAA2(50) - COMMON/LOWER7/PTM(10),PDM(10,8) - COMMON/MAVG7/PAVGM(10) - COMMON/DATIM7/ISDATE(3),ISTIME(2),NAME(2) - COMMON/METSEL/IMR - common/pres/pr65(2,65),pr151(2,151) - DATA IMR/0/ - DATA ISDATE/'01-F','EB-0','2 '/,ISTIME/'15:4','9:27'/ - DATA NAME/'MSIS','E-00'/ -! TEMPERATURE - DATA PT1/ & - 9.86573E-01, 1.62228E-02, 1.55270E-02,-1.04323E-01,-3.75801E-03,& - -1.18538E-03,-1.24043E-01, 4.56820E-03, 8.76018E-03,-1.36235E-01,& - -3.52427E-02, 8.84181E-03,-5.92127E-03,-8.61650E+00, 0.00000E+00,& - 1.28492E-02, 0.00000E+00, 1.30096E+02, 1.04567E-02, 1.65686E-03,& - -5.53887E-06, 2.97810E-03, 0.00000E+00, 5.13122E-03, 8.66784E-02,& - 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00,-7.27026E-06,& - 0.00000E+00, 6.74494E+00, 4.93933E-03, 2.21656E-03, 2.50802E-03,& - 0.00000E+00, 0.00000E+00,-2.08841E-02,-1.79873E+00, 1.45103E-03,& - 2.81769E-04,-1.44703E-03,-5.16394E-05, 8.47001E-02, 1.70147E-01,& - 5.72562E-03, 5.07493E-05, 4.36148E-03, 1.17863E-04, 4.74364E-03/ - DATA PT2/ & - 6.61278E-03, 4.34292E-05, 1.44373E-03, 2.41470E-05, 2.84426E-03,& - 8.56560E-04, 2.04028E-03, 0.00000E+00,-3.15994E+03,-2.46423E-03,& - 1.13843E-03, 4.20512E-04, 0.00000E+00,-9.77214E+01, 6.77794E-03,& - 5.27499E-03, 1.14936E-03, 0.00000E+00,-6.61311E-03,-1.84255E-02,& - -1.96259E-02, 2.98618E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 6.44574E+02, 8.84668E-04, 5.05066E-04, 0.00000E+00, 4.02881E+03,& - -1.89503E-03, 0.00000E+00, 0.00000E+00, 8.21407E-04, 2.06780E-03,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - -1.20410E-02,-3.63963E-03, 9.92070E-05,-1.15284E-04,-6.33059E-05,& - -6.05545E-01, 8.34218E-03,-9.13036E+01, 3.71042E-04, 0.00000E+00/ - DATA PT3/ & - 4.19000E-04, 2.70928E-03, 3.31507E-03,-4.44508E-03,-4.96334E-03,& - -1.60449E-03, 3.95119E-03, 2.48924E-03, 5.09815E-04, 4.05302E-03,& - 2.24076E-03, 0.00000E+00, 6.84256E-03, 4.66354E-04, 0.00000E+00,& - -3.68328E-04, 0.00000E+00, 0.00000E+00,-1.46870E+02, 0.00000E+00,& - 0.00000E+00, 1.09501E-03, 4.65156E-04, 5.62583E-04, 3.21596E+00,& - 6.43168E-04, 3.14860E-03, 3.40738E-03, 1.78481E-03, 9.62532E-04,& - 5.58171E-04, 3.43731E+00,-2.33195E-01, 5.10289E-04, 0.00000E+00,& - 0.00000E+00,-9.25347E+04, 0.00000E+00,-1.99639E-03, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! HE DENSITY - DATA PA1/ & - 1.09979E+00,-4.88060E-02,-1.97501E-01,-9.10280E-02,-6.96558E-03,& - 2.42136E-02, 3.91333E-01,-7.20068E-03,-3.22718E-02, 1.41508E+00,& - 1.68194E-01, 1.85282E-02, 1.09384E-01,-7.24282E+00, 0.00000E+00,& - 2.96377E-01,-4.97210E-02, 1.04114E+02,-8.61108E-02,-7.29177E-04,& - 1.48998E-06, 1.08629E-03, 0.00000E+00, 0.00000E+00, 8.31090E-02,& - 1.12818E-01,-5.75005E-02,-1.29919E-02,-1.78849E-02,-2.86343E-06,& - 0.00000E+00,-1.51187E+02,-6.65902E-03, 0.00000E+00,-2.02069E-03,& - 0.00000E+00, 0.00000E+00, 4.32264E-02,-2.80444E+01,-3.26789E-03,& - 2.47461E-03, 0.00000E+00, 0.00000E+00, 9.82100E-02, 1.22714E-01,& - -3.96450E-02, 0.00000E+00,-2.76489E-03, 0.00000E+00, 1.87723E-03/ - DATA PA2/ & - -8.09813E-03, 4.34428E-05,-7.70932E-03, 0.00000E+00,-2.28894E-03,& - -5.69070E-03,-5.22193E-03, 6.00692E-03,-7.80434E+03,-3.48336E-03,& - -6.38362E-03,-1.82190E-03, 0.00000E+00,-7.58976E+01,-2.17875E-02,& - -1.72524E-02,-9.06287E-03, 0.00000E+00, 2.44725E-02, 8.66040E-02,& - 1.05712E-01, 3.02543E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - -6.01364E+03,-5.64668E-03,-2.54157E-03, 0.00000E+00, 3.15611E+02,& - -5.69158E-03, 0.00000E+00, 0.00000E+00,-4.47216E-03,-4.49523E-03,& - 4.64428E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 4.51236E-02, 2.46520E-02, 6.17794E-03, 0.00000E+00, 0.00000E+00,& - -3.62944E-01,-4.80022E-02,-7.57230E+01,-1.99656E-03, 0.00000E+00/ - DATA PA3/ & - -5.18780E-03,-1.73990E-02,-9.03485E-03, 7.48465E-03, 1.53267E-02,& - 1.06296E-02, 1.18655E-02, 2.55569E-03, 1.69020E-03, 3.51936E-02,& - -1.81242E-02, 0.00000E+00,-1.00529E-01,-5.10574E-03, 0.00000E+00,& - 2.10228E-03, 0.00000E+00, 0.00000E+00,-1.73255E+02, 5.07833E-01,& - -2.41408E-01, 8.75414E-03, 2.77527E-03,-8.90353E-05,-5.25148E+00,& - -5.83899E-03,-2.09122E-02,-9.63530E-03, 9.77164E-03, 4.07051E-03,& - 2.53555E-04,-5.52875E+00,-3.55993E-01,-2.49231E-03, 0.00000E+00,& - 0.00000E+00, 2.86026E+01, 0.00000E+00, 3.42722E-04, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! O DENSITY - DATA PB1/ & - 1.02315E+00,-1.59710E-01,-1.06630E-01,-1.77074E-02,-4.42726E-03,& - 3.44803E-02, 4.45613E-02,-3.33751E-02,-5.73598E-02, 3.50360E-01,& - 6.33053E-02, 2.16221E-02, 5.42577E-02,-5.74193E+00, 0.00000E+00,& - 1.90891E-01,-1.39194E-02, 1.01102E+02, 8.16363E-02, 1.33717E-04,& - 6.54403E-06, 3.10295E-03, 0.00000E+00, 0.00000E+00, 5.38205E-02,& - 1.23910E-01,-1.39831E-02, 0.00000E+00, 0.00000E+00,-3.95915E-06,& - 0.00000E+00,-7.14651E-01,-5.01027E-03, 0.00000E+00,-3.24756E-03,& - 0.00000E+00, 0.00000E+00, 4.42173E-02,-1.31598E+01,-3.15626E-03,& - 1.24574E-03,-1.47626E-03,-1.55461E-03, 6.40682E-02, 1.34898E-01,& - -2.42415E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.13666E-04/ - DATA PB2/ & - -5.40373E-03, 2.61635E-05,-3.33012E-03, 0.00000E+00,-3.08101E-03,& - -2.42679E-03,-3.36086E-03, 0.00000E+00,-1.18979E+03,-5.04738E-02,& - -2.61547E-03,-1.03132E-03, 1.91583E-04,-8.38132E+01,-1.40517E-02,& - -1.14167E-02,-4.08012E-03, 1.73522E-04,-1.39644E-02,-6.64128E-02,& - -6.85152E-02,-1.34414E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 6.07916E+02,-4.12220E-03,-2.20996E-03, 0.00000E+00, 1.70277E+03,& - -4.63015E-03, 0.00000E+00, 0.00000E+00,-2.25360E-03,-2.96204E-03,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 3.92786E-02, 1.31186E-02,-1.78086E-03, 0.00000E+00, 0.00000E+00,& - -3.90083E-01,-2.84741E-02,-7.78400E+01,-1.02601E-03, 0.00000E+00/ - DATA PB3/ & - -7.26485E-04,-5.42181E-03,-5.59305E-03, 1.22825E-02, 1.23868E-02,& - 6.68835E-03,-1.03303E-02,-9.51903E-03, 2.70021E-04,-2.57084E-02,& - -1.32430E-02, 0.00000E+00,-3.81000E-02,-3.16810E-03, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-9.05762E-04,-2.14590E-03,-1.17824E-03, 3.66732E+00,& - -3.79729E-04,-6.13966E-03,-5.09082E-03,-1.96332E-03,-3.08280E-03,& - -9.75222E-04, 4.03315E+00,-2.52710E-01, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! N2 DENSITY - DATA PC1/ & - 1.16112E+00, 0.00000E+00, 0.00000E+00, 3.33725E-02, 0.00000E+00,& - 3.48637E-02,-5.44368E-03, 0.00000E+00,-6.73940E-02, 1.74754E-01,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.74712E+02, 0.00000E+00,& - 1.26733E-01, 0.00000E+00, 1.03154E+02, 5.52075E-02, 0.00000E+00,& - 0.00000E+00, 8.13525E-04, 0.00000E+00, 0.00000E+00, 8.66784E-02,& - 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-2.50482E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.48894E-03,& - 6.16053E-04,-5.79716E-04, 2.95482E-03, 8.47001E-02, 1.70147E-01,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PC2/ & - 0.00000E+00, 2.47425E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PC3/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! TLB - DATA PD1/ & - 9.44846E-01, 0.00000E+00, 0.00000E+00,-3.08617E-02, 0.00000E+00,& - -2.44019E-02, 6.48607E-03, 0.00000E+00, 3.08181E-02, 4.59392E-02,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.74712E+02, 0.00000E+00,& - 2.13260E-02, 0.00000E+00,-3.56958E+02, 0.00000E+00, 1.82278E-04,& - 0.00000E+00, 3.07472E-04, 0.00000E+00, 0.00000E+00, 8.66784E-02,& - 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 3.83054E-03, 0.00000E+00, 0.00000E+00,& - -1.93065E-03,-1.45090E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-1.23493E-03, 1.36736E-03, 8.47001E-02, 1.70147E-01,& - 3.71469E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PD2/ & - 5.10250E-03, 2.47425E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 3.68756E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PD3/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! O2 DENSITY - DATA PE1/ & - 1.35580E+00, 1.44816E-01, 0.00000E+00, 6.07767E-02, 0.00000E+00,& - 2.94777E-02, 7.46900E-02, 0.00000E+00,-9.23822E-02, 8.57342E-02,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.38636E+01, 0.00000E+00,& - 7.71653E-02, 0.00000E+00, 8.18751E+01, 1.87736E-02, 0.00000E+00,& - 0.00000E+00, 1.49667E-02, 0.00000E+00, 0.00000E+00, 8.66784E-02,& - 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-3.67874E+02, 5.48158E-03, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 8.47001E-02, 1.70147E-01,& - 1.22631E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PE2/ & - 8.17187E-03, 3.71617E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.10826E-03,& - -3.13640E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - -7.35742E-02,-5.00266E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 1.94965E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PE3/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! AR DENSITY - DATA PF1/ & - 1.04761E+00, 2.00165E-01, 2.37697E-01, 3.68552E-02, 0.00000E+00,& - 3.57202E-02,-2.14075E-01, 0.00000E+00,-1.08018E-01,-3.73981E-01,& - 0.00000E+00, 3.10022E-02,-1.16305E-03,-2.07596E+01, 0.00000E+00,& - 8.64502E-02, 0.00000E+00, 9.74908E+01, 5.16707E-02, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 8.66784E-02,& - 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 3.46193E+02, 1.34297E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.48509E-03,& - -1.54689E-04, 0.00000E+00, 0.00000E+00, 8.47001E-02, 1.70147E-01,& - 1.47753E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PF2/ & - 1.89320E-02, 3.68181E-05, 1.32570E-02, 0.00000E+00, 0.00000E+00,& - 3.59719E-03, 7.44328E-03,-1.00023E-03,-6.50528E+03, 0.00000E+00,& - 1.03485E-02,-1.00983E-03,-4.06916E-03,-6.60864E+01,-1.71533E-02,& - 1.10605E-02, 1.20300E-02,-5.20034E-03, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - -2.62769E+03, 7.13755E-03, 4.17999E-03, 0.00000E+00, 1.25910E+04,& - 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.23595E-03, 4.60217E-03,& - 5.71794E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - -3.18353E-02,-2.35526E-02,-1.36189E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 2.03522E-02,-6.67837E+01,-1.09724E-03, 0.00000E+00/ - DATA PF3/ & - -1.38821E-02, 1.60468E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.51574E-02,& - -5.44470E-04, 0.00000E+00, 7.28224E-02, 6.59413E-02, 0.00000E+00,& - -5.15692E-03, 0.00000E+00, 0.00000E+00,-3.70367E+03, 0.00000E+00,& - 0.00000E+00, 1.36131E-02, 5.38153E-03, 0.00000E+00, 4.76285E+00,& - -1.75677E-02, 2.26301E-02, 0.00000E+00, 1.76631E-02, 4.77162E-03,& - 0.00000E+00, 5.39354E+00, 0.00000E+00,-7.51710E-03, 0.00000E+00,& - 0.00000E+00,-8.82736E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! H DENSITY - DATA PG1/ & - 1.26376E+00,-2.14304E-01,-1.49984E-01, 2.30404E-01, 2.98237E-02,& - 2.68673E-02, 2.96228E-01, 2.21900E-02,-2.07655E-02, 4.52506E-01,& - 1.20105E-01, 3.24420E-02, 4.24816E-02,-9.14313E+00, 0.00000E+00,& - 2.47178E-02,-2.88229E-02, 8.12805E+01, 5.10380E-02,-5.80611E-03,& - 2.51236E-05,-1.24083E-02, 0.00000E+00, 0.00000E+00, 8.66784E-02,& - 1.58727E-01,-3.48190E-02, 0.00000E+00, 0.00000E+00, 2.89885E-05,& - 0.00000E+00, 1.53595E+02,-1.68604E-02, 0.00000E+00, 1.01015E-02,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.84552E-04,& - -1.22181E-03, 0.00000E+00, 0.00000E+00, 8.47001E-02, 1.70147E-01,& - -1.04927E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00,-5.91313E-03/ - DATA PG2/ & - -2.30501E-02, 3.14758E-05, 0.00000E+00, 0.00000E+00, 1.26956E-02,& - 8.35489E-03, 3.10513E-04, 0.00000E+00, 3.42119E+03,-2.45017E-03,& - -4.27154E-04, 5.45152E-04, 1.89896E-03, 2.89121E+01,-6.49973E-03,& - -1.93855E-02,-1.48492E-02, 0.00000E+00,-5.10576E-02, 7.87306E-02,& - 9.51981E-02,-1.49422E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 2.65503E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.37110E-03, 3.24789E-04,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 6.14274E-02, 1.00376E-02,-8.41083E-04, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-1.27099E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PG3/ & - -3.94077E-03,-1.28601E-02,-7.97616E-03, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-6.71465E-03,-1.69799E-03, 1.93772E-03, 3.81140E+00,& - -7.79290E-03,-1.82589E-02,-1.25860E-02,-1.04311E-02,-3.02465E-03,& - 2.43063E-03, 3.63237E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! N DENSITY - DATA PH1/ & - 7.09557E+01,-3.26740E-01, 0.00000E+00,-5.16829E-01,-1.71664E-03,& - 9.09310E-02,-6.71500E-01,-1.47771E-01,-9.27471E-02,-2.30862E-01,& - -1.56410E-01, 1.34455E-02,-1.19717E-01, 2.52151E+00, 0.00000E+00,& - -2.41582E-01, 5.92939E-02, 4.39756E+00, 9.15280E-02, 4.41292E-03,& - 0.00000E+00, 8.66807E-03, 0.00000E+00, 0.00000E+00, 8.66784E-02,& - 1.58727E-01, 9.74701E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 6.70217E+01,-1.31660E-03, 0.00000E+00,-1.65317E-02,& - 0.00000E+00, 0.00000E+00, 8.50247E-02, 2.77428E+01, 4.98658E-03,& - 6.15115E-03, 9.50156E-03,-2.12723E-02, 8.47001E-02, 1.70147E-01,& - -2.38645E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.37380E-03/ - DATA PH2/ & - -8.41918E-03, 2.80145E-05, 7.12383E-03, 0.00000E+00,-1.66209E-02,& - 1.03533E-04,-1.68898E-02, 0.00000E+00, 3.64526E+03, 0.00000E+00,& - 6.54077E-03, 3.69130E-04, 9.94419E-04, 8.42803E+01,-1.16124E-02,& - -7.74414E-03,-1.68844E-03, 1.42809E-03,-1.92955E-03, 1.17225E-01,& - -2.41512E-02, 1.50521E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 1.60261E+03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.54403E-04,-1.87270E-02,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 2.76439E-02, 6.43207E-03,-3.54300E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-2.80221E-02, 8.11228E+01,-6.75255E-04, 0.00000E+00/ - DATA PH3/ & - -1.05162E-02,-3.48292E-03,-6.97321E-03, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-1.45546E-03,-1.31970E-02,-3.57751E-03,-1.09021E+00,& - -1.50181E-02,-7.12841E-03,-6.64590E-03,-3.52610E-03,-1.87773E-02,& - -2.22432E-03,-3.93895E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! HOT O DENSITY - DATA PI1/ & - 6.04050E-02, 1.57034E+00, 2.99387E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.51018E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.61650E+00, 1.26454E-02,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 5.50878E-03, 0.00000E+00, 0.00000E+00, 8.66784E-02,& - 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 6.23881E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 8.47001E-02, 1.70147E-01,& - -9.45934E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PI2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PI3/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! S PARAM - DATA PJ1/ & - 9.56827E-01, 6.20637E-02, 3.18433E-02, 0.00000E+00, 0.00000E+00,& - 3.94900E-02, 0.00000E+00, 0.00000E+00,-9.24882E-03,-7.94023E-03,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.74712E+02, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 2.74677E-03, 0.00000E+00, 1.54951E-02, 8.66784E-02,& - 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00,-6.99007E-04, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 1.24362E-02,-5.28756E-03, 8.47001E-02, 1.70147E-01,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PJ2/ & - 0.00000E+00, 2.47425E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PJ3/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! TURBO - DATA PK1/ & - 1.09930E+00, 3.90631E+00, 3.07165E+00, 9.86161E-01, 1.63536E+01,& - 4.63830E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 1.28840E+00, 3.10302E-02, 1.18339E-01,& - 1.00000E+00, 7.00000E-01, 1.15020E+00, 3.44689E+00, 1.28840E+00,& - 1.00000E+00, 1.08738E+00, 1.22947E+00, 1.10016E+00, 7.34129E-01,& - 1.15241E+00, 2.22784E+00, 7.95046E-01, 4.01612E+00, 4.47749E+00,& - 1.23435E+02,-7.60535E-02, 1.68986E-06, 7.44294E-01, 1.03604E+00,& - 1.72783E+02, 1.15020E+00, 3.44689E+00,-7.46230E-01, 9.49154E-01/ -! LOWER BOUNDARY - DATA PTM/ & - 1.04130E+03, 3.86000E+02, 1.95000E+02, 1.66728E+01, 2.13000E+02,& - 1.20000E+02, 2.40000E+02, 1.87000E+02,-2.00000E+00, 0.00000E+00/ - DATA PDM/ & - 2.45600E+07, 6.71072E-06, 1.00000E+02, 0.00000E+00, 1.10000E+02,& - 1.00000E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 8.59400E+10, 1.00000E+00, 1.05000E+02,-8.00000E+00, 1.10000E+02,& - 1.00000E+01, 9.00000E+01, 2.00000E+00, 0.00000E+00, 0.00000E+00,& - 2.81000E+11, 0.00000E+00, 1.05000E+02, 2.80000E+01, 2.89500E+01,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 3.30000E+10, 2.68270E-01, 1.05000E+02, 1.00000E+00, 1.10000E+02,& - 1.00000E+01, 1.10000E+02,-1.00000E+01, 0.00000E+00, 0.00000E+00,& - 1.33000E+09, 1.19615E-02, 1.05000E+02, 0.00000E+00, 1.10000E+02,& - 1.00000E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 1.76100E+05, 1.00000E+00, 9.50000E+01,-8.00000E+00, 1.10000E+02,& - 1.00000E+01, 9.00000E+01, 2.00000E+00, 0.00000E+00, 0.00000E+00,& - 1.00000E+07, 1.00000E+00, 1.05000E+02,-8.00000E+00, 1.10000E+02,& - 1.00000E+01, 9.00000E+01, 2.00000E+00, 0.00000E+00, 0.00000E+00,& - 1.00000E+06, 1.00000E+00, 1.05000E+02,-8.00000E+00, 5.50000E+02,& - 7.60000E+01, 9.00000E+01, 2.00000E+00, 0.00000E+00, 4.00000E+03/ -! TN1(2) - DATA PL1/ & - 1.00858E+00, 4.56011E-02,-2.22972E-02,-5.44388E-02, 5.23136E-04,& - -1.88849E-02, 5.23707E-02,-9.43646E-03, 6.31707E-03,-7.80460E-02,& - -4.88430E-02, 0.00000E+00, 0.00000E+00,-7.60250E+00, 0.00000E+00,& - -1.44635E-02,-1.76843E-02,-1.21517E+02, 2.85647E-02, 0.00000E+00,& - 0.00000E+00, 6.31792E-04, 0.00000E+00, 5.77197E-03, 8.66784E-02,& - 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-8.90272E+03, 3.30611E-03, 3.02172E-03, 0.00000E+00,& - -2.13673E-03,-3.20910E-04, 0.00000E+00, 0.00000E+00, 2.76034E-03,& - 2.82487E-03,-2.97592E-04,-4.21534E-03, 8.47001E-02, 1.70147E-01,& - 8.96456E-03, 0.00000E+00,-1.08596E-02, 0.00000E+00, 0.00000E+00/ - DATA PL2/ & - 5.57917E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 9.65405E-03, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TN1(3) - DATA PM1/ & - 9.39664E-01, 8.56514E-02,-6.79989E-03, 2.65929E-02,-4.74283E-03,& - 1.21855E-02,-2.14905E-02, 6.49651E-03,-2.05477E-02,-4.24952E-02,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.19148E+01, 0.00000E+00,& - 1.18777E-02,-7.28230E-02,-8.15965E+01, 1.73887E-02, 0.00000E+00,& - 0.00000E+00, 0.00000E+00,-1.44691E-02, 2.80259E-04, 8.66784E-02,& - 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 2.16584E+02, 3.18713E-03, 7.37479E-03, 0.00000E+00,& - -2.55018E-03,-3.92806E-03, 0.00000E+00, 0.00000E+00,-2.89757E-03,& - -1.33549E-03, 1.02661E-03, 3.53775E-04, 8.47001E-02, 1.70147E-01,& - -9.17497E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PM2/ & - 3.56082E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-1.00902E-02, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TN1(4) - DATA PN1/ & - 9.85982E-01,-4.55435E-02, 1.21106E-02, 2.04127E-02,-2.40836E-03,& - 1.11383E-02,-4.51926E-02, 1.35074E-02,-6.54139E-03, 1.15275E-01,& - 1.28247E-01, 0.00000E+00, 0.00000E+00,-5.30705E+00, 0.00000E+00,& - -3.79332E-02,-6.24741E-02, 7.71062E-01, 2.96315E-02, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 6.81051E-03,-4.34767E-03, 8.66784E-02,& - 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 1.07003E+01,-2.76907E-03, 4.32474E-04, 0.00000E+00,& - 1.31497E-03,-6.47517E-04, 0.00000E+00,-2.20621E+01,-1.10804E-03,& - -8.09338E-04, 4.18184E-04, 4.29650E-03, 8.47001E-02, 1.70147E-01,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PN2/ & - -4.04337E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-9.52550E-04,& - 8.56253E-04, 4.33114E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.21223E-03,& - 2.38694E-04, 9.15245E-04, 1.28385E-03, 8.67668E-04,-5.61425E-06,& - 1.04445E+00, 3.41112E+01, 0.00000E+00,-8.40704E-01,-2.39639E+02,& - 7.06668E-01,-2.05873E+01,-3.63696E-01, 2.39245E+01, 0.00000E+00,& - -1.06657E-03,-7.67292E-04, 1.54534E-04, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TN1(5) TN2(1) - DATA PO1/ & - 1.00320E+00, 3.83501E-02,-2.38983E-03, 2.83950E-03, 4.20956E-03,& - 5.86619E-04, 2.19054E-02,-1.00946E-02,-3.50259E-03, 4.17392E-02,& - -8.44404E-03, 0.00000E+00, 0.00000E+00, 4.96949E+00, 0.00000E+00,& - -7.06478E-03,-1.46494E-02, 3.13258E+01,-1.86493E-03, 0.00000E+00,& - -1.67499E-02, 0.00000E+00, 0.00000E+00, 5.12686E-04, 8.66784E-02,& - 1.58727E-01,-4.64167E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 4.37353E-03,-1.99069E+02, 0.00000E+00,-5.34884E-03, 0.00000E+00,& - 1.62458E-03, 2.93016E-03, 2.67926E-03, 5.90449E+02, 0.00000E+00,& - 0.00000E+00,-1.17266E-03,-3.58890E-04, 8.47001E-02, 1.70147E-01,& - 0.00000E+00, 0.00000E+00, 1.38673E-02, 0.00000E+00, 0.00000E+00/ - DATA PO2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.60571E-03,& - 6.28078E-04, 5.05469E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.57829E-03,& - -4.00855E-04, 5.04077E-05,-1.39001E-03,-2.33406E-03,-4.81197E-04,& - 1.46758E+00, 6.20332E+00, 0.00000E+00, 3.66476E-01,-6.19760E+01,& - 3.09198E-01,-1.98999E+01, 0.00000E+00,-3.29933E+02, 0.00000E+00,& - -1.10080E-03,-9.39310E-05, 1.39638E-04, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TN2(2) - DATA PP1/ & - 9.81637E-01,-1.41317E-03, 3.87323E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.58707E-02,& - -8.63658E-03, 0.00000E+00, 0.00000E+00,-2.02226E+00, 0.00000E+00,& - -8.69424E-03,-1.91397E-02, 8.76779E+01, 4.52188E-03, 0.00000E+00,& - 2.23760E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-7.07572E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - -4.11210E-03, 3.50060E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00,-8.36657E-03, 1.61347E+01, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00,-1.45130E-02, 0.00000E+00, 0.00000E+00/ - DATA PP2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.24152E-03,& - 6.43365E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.33255E-03,& - 2.42657E-03, 1.60666E-03,-1.85728E-03,-1.46874E-03,-4.79163E-06,& - 1.22464E+00, 3.53510E+01, 0.00000E+00, 4.49223E-01,-4.77466E+01,& - 4.70681E-01, 8.41861E+00,-2.88198E-01, 1.67854E+02, 0.00000E+00,& - 7.11493E-04, 6.05601E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TN2(3) - DATA PQ1/ & - 1.00422E+00,-7.11212E-03, 5.24480E-03, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-5.28914E-02,& - -2.41301E-02, 0.00000E+00, 0.00000E+00,-2.12219E+01,-1.03830E-02,& - -3.28077E-03, 1.65727E-02, 1.68564E+00,-6.68154E-03, 0.00000E+00,& - 1.45155E-02, 0.00000E+00, 8.42365E-03, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-4.34645E-03, 0.00000E+00, 0.00000E+00, 2.16780E-02,& - 0.00000E+00,-1.38459E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 7.04573E-03,-4.73204E+01, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 1.08767E-02, 0.00000E+00, 0.00000E+00/ - DATA PQ2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.08279E-03,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.21769E-04,& - -2.27387E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.26769E-03,& - 3.16901E-03, 4.60316E-04,-1.01431E-04, 1.02131E-03, 9.96601E-04,& - 1.25707E+00, 2.50114E+01, 0.00000E+00, 4.24472E-01,-2.77655E+01,& - 3.44625E-01, 2.75412E+01, 0.00000E+00, 7.94251E+02, 0.00000E+00,& - 2.45835E-03, 1.38871E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TN2(4) TN3(1) - DATA PR1/ & - 1.01890E+00,-2.46603E-02, 1.00078E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-6.70977E-02,& - -4.02286E-02, 0.00000E+00, 0.00000E+00,-2.29466E+01,-7.47019E-03,& - 2.26580E-03, 2.63931E-02, 3.72625E+01,-6.39041E-03, 0.00000E+00,& - 9.58383E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-1.85291E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 1.39717E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 9.19771E-03,-3.69121E+02, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00,-1.57067E-02, 0.00000E+00, 0.00000E+00/ - DATA PR2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-7.07265E-03,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.92953E-03,& - -2.77739E-03,-4.40092E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.47280E-03,& - 2.95035E-04,-1.81246E-03, 2.81945E-03, 4.27296E-03, 9.78863E-04,& - 1.40545E+00,-6.19173E+00, 0.00000E+00, 0.00000E+00,-7.93632E+01,& - 4.44643E-01,-4.03085E+02, 0.00000E+00, 1.15603E+01, 0.00000E+00,& - 2.25068E-03, 8.48557E-04,-2.98493E-04, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TN3(2) - DATA PS1/ & - 9.75801E-01, 3.80680E-02,-3.05198E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.85575E-02,& - 5.04057E-02, 0.00000E+00, 0.00000E+00,-1.76046E+02, 1.44594E-02,& - -1.48297E-03,-3.68560E-03, 3.02185E+01,-3.23338E-03, 0.00000E+00,& - 1.53569E-02, 0.00000E+00,-1.15558E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 4.89620E-03, 0.00000E+00, 0.00000E+00,-1.00616E-02,& - -8.21324E-03,-1.57757E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 6.63564E-03, 4.58410E+01, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00,-2.51280E-02, 0.00000E+00, 0.00000E+00/ - DATA PS2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 9.91215E-03,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.73148E-04,& - -1.29648E-03,-7.32026E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.68110E-03,& - -4.66003E-03,-1.31567E-03,-7.39390E-04, 6.32499E-04,-4.65588E-04,& - -1.29785E+00,-1.57139E+02, 0.00000E+00, 2.58350E-01,-3.69453E+01,& - 4.10672E-01, 9.78196E+00,-1.52064E-01,-3.85084E+03, 0.00000E+00,& - -8.52706E-04,-1.40945E-03,-7.26786E-04, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TN3(3) - DATA PU1/ & - 9.60722E-01, 7.03757E-02,-3.00266E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.22671E-02,& - 4.10423E-02, 0.00000E+00, 0.00000E+00,-1.63070E+02, 1.06073E-02,& - 5.40747E-04, 7.79481E-03, 1.44908E+02, 1.51484E-04, 0.00000E+00,& - 1.97547E-02, 0.00000E+00,-1.41844E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 5.77884E-03, 0.00000E+00, 0.00000E+00, 9.74319E-03,& - 0.00000E+00,-2.88015E+03, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00,-4.44902E-03,-2.92760E+01, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 2.34419E-02, 0.00000E+00, 0.00000E+00/ - DATA PU2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.36685E-03,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.65325E-04,& - -5.50628E-04, 3.31465E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.06179E-03,& - -3.08575E-03,-7.93589E-04,-1.08629E-04, 5.95511E-04,-9.05050E-04,& - 1.18997E+00, 4.15924E+01, 0.00000E+00,-4.72064E-01,-9.47150E+02,& - 3.98723E-01, 1.98304E+01, 0.00000E+00, 3.73219E+03, 0.00000E+00,& - -1.50040E-03,-1.14933E-03,-1.56769E-04, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TN3(4) - DATA PV1/ & - 1.03123E+00,-7.05124E-02, 8.71615E-03, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.82621E-02,& - -9.80975E-03, 0.00000E+00, 0.00000E+00, 2.89286E+01, 9.57341E-03,& - 0.00000E+00, 0.00000E+00, 8.66153E+01, 7.91938E-04, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 4.68917E-03, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 7.86638E-03, 0.00000E+00, 0.00000E+00, 9.90827E-03,& - 0.00000E+00, 6.55573E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.00200E+01, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 7.07457E-03, 0.00000E+00, 0.00000E+00/ - DATA PV2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.72268E-03,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.04970E-04,& - 1.21560E-03,-8.05579E-06, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.49941E-03,& - -4.57256E-04,-1.59311E-04, 2.96481E-04,-1.77318E-03,-6.37918E-04,& - 1.02395E+00, 1.28172E+01, 0.00000E+00, 1.49903E-01,-2.63818E+01,& - 0.00000E+00, 4.70628E+01,-2.22139E-01, 4.82292E-02, 0.00000E+00,& - -8.67075E-04,-5.86479E-04, 5.32462E-04, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TN3(5) SURFACE TEMP TSL - DATA PW1/ & - 1.00828E+00,-9.10404E-02,-2.26549E-02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.32420E-02,& - -9.08925E-03, 0.00000E+00, 0.00000E+00, 3.36105E+01, 0.00000E+00,& - 0.00000E+00, 0.00000E+00,-1.24957E+01,-5.87939E-03, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 2.79765E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.01237E+03, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00,-1.75553E-02, 0.00000E+00, 0.00000E+00/ - DATA PW2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.29699E-03,& - 1.26659E-03, 2.68402E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.17894E-03,& - 1.48746E-03, 1.06478E-04, 1.34743E-04,-2.20939E-03,-6.23523E-04,& - 6.36539E-01, 1.13621E+01, 0.00000E+00,-3.93777E-01, 2.38687E+03,& - 0.00000E+00, 6.61865E+02,-1.21434E-01, 9.27608E+00, 0.00000E+00,& - 1.68478E-04, 1.24892E-03, 1.71345E-03, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TGN3(2) SURFACE GRAD TSLG - DATA PX1/ & - 1.57293E+00,-6.78400E-01, 6.47500E-01, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-7.62974E-02,& - -3.60423E-01, 0.00000E+00, 0.00000E+00, 1.28358E+02, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 4.68038E+01, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-1.67898E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 2.90994E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.15706E+01, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PX2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TGN2(1) TGN1(2) - DATA PY1/ & - 8.60028E-01, 3.77052E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.17570E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 7.77757E-03, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 1.01024E+02, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 6.54251E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ - DATA PY2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.56959E-02,& - 1.91001E-02, 3.15971E-02, 1.00982E-02,-6.71565E-03, 2.57693E-03,& - 1.38692E+00, 2.82132E-01, 0.00000E+00, 0.00000E+00, 3.81511E+02,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! TGN3(1) TGN2(2) - DATA PZ1/ & - 1.06029E+00,-5.25231E-02, 3.73034E-01, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.31072E-02,& - -3.88409E-01, 0.00000E+00, 0.00000E+00,-1.65295E+02,-2.13801E-01,& - -4.38916E-02,-3.22716E-01,-8.82393E+01, 1.18458E-01, 0.00000E+00,& - -4.35863E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00,-1.19782E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 2.62229E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00,-5.37443E+01, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00,-4.55788E-01, 0.00000E+00, 0.00000E+00/ - DATA PZ2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.84009E-02,& - 3.96733E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.05494E-02,& - 7.39617E-02, 1.92200E-02,-8.46151E-03,-1.34244E-02, 1.96338E-02,& - 1.50421E+00, 1.88368E+01, 0.00000E+00, 0.00000E+00,-5.13114E+01,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 5.11923E-02, 3.61225E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00/ -! SEMIANNUAL MULT SAM - DATA PAA1/ & - 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,& - 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,& - 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,& - 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,& - 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,& - 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,& - 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,& - 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,& - 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00,& - 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00/ - DATA PAA2/ & - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,& - 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ -! MIDDLE ATMOSPHERE AVERAGES - DATA PAVGM/ & - 2.61000E+02, 2.64000E+02, 2.29000E+02, 2.17000E+02, 2.17000E+02,& - 2.23000E+02, 2.86760E+02,-2.93940E+00, 2.50000E+00, 0.00000E+00/ - END diff --git a/sorc/global_chgres.fd/nsst_chgres.f90 b/sorc/global_chgres.fd/nsst_chgres.f90 deleted file mode 100644 index 8de195dd1e..0000000000 --- a/sorc/global_chgres.fd/nsst_chgres.f90 +++ /dev/null @@ -1,233 +0,0 @@ - subroutine nsst_chgres(im_input, jm_input, & - mask_output, tskin_output, imo, ij_output, kgds_input, & - data_input, mask_input, data_output, num_nsst_fields, & - kgds_output, rlat_output, rlon_output) -!---------------------------------------------------------------- -! subroutine: nsst_chgres -! -! prgmmr: gayno org: emc date: 2011-Aug -! -! abstract: -! ======== -! interpolate nsst fields from one grid to another. -! nearest neighbor interpolation is used because some nsst -! fields are not continuous. nsst fields are only required -! at open water points. for consistency, the nsst land-sea -! mask is set to the land-sea mask from the surface restart -! file. therefore, when converting an nsst restart file, -! you must also convert a surface restart file. -! -! program history: -! =============== -! 2011-aug-05 initial version gayno -! 2017-dec-19 add bilinear option. ensure mask -! consistency between skin t and tref. -!---------------------------------------------------------------- - - implicit none - - integer, intent(in) :: imo - ! number of grid points on the - ! cubed-sphere side - integer, intent(in) :: ij_output - ! number of grid points - output grid. - integer, intent(in) :: kgds_input(200), kgds_output(200) - ! grib 1 grid desc section - input/output grids - integer, intent(in) :: im_input, jm_input - ! number of grid points in i/j direction - - ! input grid. - integer, intent(in) :: num_nsst_fields - ! number of nsst fields - - real, intent(in) :: mask_output(ij_output) - ! land mask - output grid - real, intent(in) :: tskin_output(ij_output) - ! skin temperature - output grid - real, intent(in) :: rlat_output(ij_output) - ! latitudes on output grid - real, intent(in) :: rlon_output(ij_output) - ! longitudes on output grid - real, intent(in) :: data_input(im_input,jm_input,num_nsst_fields) - ! nsst data on input grid - real, intent(in) :: mask_input(im_input,jm_input) - ! mask on input grid - - integer :: count_water - ! number of output grid points that are open water. - integer :: ij_input - ! number of grid points, input grid - integer :: ip, iret, ipopt(20) - integer :: ibi(num_nsst_fields), ibo(num_nsst_fields) - integer :: i, j, ij, k - integer, allocatable :: ijsav_water(:) - integer :: kgds(200) - - logical*1, allocatable :: bitmap_input(:,:,:) - logical*1, allocatable :: bitmap_water(:,:) - - real :: data_output(ij_output,num_nsst_fields) - real, allocatable :: data_water(:,:) - real, allocatable :: rlat_water(:), rlon_water(:) - real :: mdl_res_input, mdl_res_output - -!---------------------------------------------------------------- -! Bitmap flag for input data. All input fields will be -! interpolated using the same bitmap. -!---------------------------------------------------------------- - - ibi=1 - -!---------------------------------------------------------------- -! mask is: 0-open water, 1-land, 2-sea ice. nsst model -! only operates at open water points. Mask out these points. -! The one exception is TREF. Here include the TREF -! values at ice points. This is done for consistency with -! the how skin temperature is interpolated in surface_chgres.f90. -! At non-land points, skin temperture is a blend of the ice -! skin temp and the SST. So non-land skin temp is interpolated -! to non-land points. If TREF values at ice points are -! ignored, very large differences between skin/sst and TREF -! can happen near ice edges. -!---------------------------------------------------------------- - - allocate(bitmap_input(im_input,jm_input,num_nsst_fields)) - bitmap_input=.false. - do j=1,jm_input - do i=1,im_input - if (mask_input(i,j) < 0.5) then - bitmap_input(i,j,1:16)=.true. - bitmap_input(i,j,18:num_nsst_fields)=.true. - endif - enddo - enddo - - bitmap_input(:,:,17) = .false. ! TREF - do j=1,jm_input - do i=1,im_input - if (mask_input(i,j) < 0.5 .or. mask_input(i,j) > 1.5) then - bitmap_input(i,j,17)=.true. - endif - enddo - enddo - -!---------------------------------------------------------------- -! Only interpolate to output points that are open water. -! Mask values are: 0-open water, 1-land, 2-sea ice. -!---------------------------------------------------------------- - - count_water=0 - do ij=1, ij_output - if (mask_output(ij) < 0.5) then - count_water=count_water+1 - endif - enddo - - allocate(rlat_water(count_water)) - allocate(rlon_water(count_water)) - allocate(ijsav_water(count_water)) - count_water=0 - do ij=1, ij_output - if (mask_output(ij) < 0.5) then - count_water=count_water+1 - rlat_water(count_water)=rlat_output(ij) - rlon_water(count_water)=rlon_output(ij) - ijsav_water(count_water)=ij - endif - enddo - - allocate(data_water(count_water,num_nsst_fields)) - data_water=0.0 - allocate(bitmap_water(count_water,num_nsst_fields)) - bitmap_water=.false. - -!---------------------------------------------------------------- -! ipolates options. Must ensure these are the same -! values used in surface_chgres.f90. -!---------------------------------------------------------------- - - mdl_res_input = 360.0 / float(kgds_input(2)) - mdl_res_output = 360.0 / (float(imo) * 4.0) - - ipopt=0 - - if (mdl_res_input <= (0.75*mdl_res_output)) then - print*,"- INTERPOLATE NSST DATA FIELDS USING BILINEAR METHOD." - ip = 0 - ipopt(1)=1 - ipopt(2) = nint(1.0 / mdl_res_input) + 1 ! search box width of 1 deg. - else - print*,"- INTERPOLATE NSST DATA FIELDS USING NEIGHBOR METHOD." - ipopt(1) = nint(1.0 / mdl_res_input) + 1 ! search box width of 1 deg. - ip = 2 - end if - - kgds=kgds_output - kgds(1)=-1 ! tell ipolates to interpolate to just water points. - ! default is to interpolate to all grid points. - iret =0 - ij_input =im_input*jm_input - - call ipolates(ip,ipopt,kgds_input,kgds,ij_input,count_water,& - num_nsst_fields, ibi, bitmap_input, data_input, & - count_water,rlat_water,rlon_water,ibo,bitmap_water, & - data_water,iret) - - if (iret /=0) then - print*,'fatal error in ipolates interpolating nsst data ',iret - stop 445 - endif - - deallocate(bitmap_input) - -!---------------------------------------------------------------- -! ipolates may not find data at every output grid point. -! This can happen with isolated lakes, for example. -! Need to fill these points with default values. -!---------------------------------------------------------------- - - do k = 1, num_nsst_fields - do ij=1, count_water - if (.not.bitmap_water(ij,k)) then - data_water(ij,k)=0.0 ! default value for most fields - if (k==5) data_water(ij,k)=30.0 ! default value for xz - if (k==16) data_water(ij,k)=1.0 ! default value for ifd - if (k==17) then ! default for tref is skin t (sst) - data_water(ij,k)=tskin_output(ijsav_water(ij)) - write(6,50) rlat_water(ij), rlon_water(ij), data_water(ij,k) - endif - endif - enddo - enddo - -!---------------------------------------------------------------- -! IFD is a flag, but is stored as a float. Remove and -! fractional values. -!---------------------------------------------------------------- - - data_water(:,16) = float(nint(data_water(:,16))) - - deallocate(rlat_water,rlon_water,bitmap_water) - - 50 format(1x,'- USING DEFAULT VALUE FOR TREF AT LAT: ',f6.2, & - ' LON: ',f7.2,' IS ',f5.1) - -!---------------------------------------------------------------- -! Now put the water points back into the array that holds -! all output grid points. -!---------------------------------------------------------------- - - data_output=0.0 ! zero out fields at non-water points - data_output(:,5) = 30.0 ! filler value for xz at non-water points - data_output(:,17) = tskin_output ! use skin temperature from the - ! land model as fill value - ! for tref at non-water points. - - do ij=1, count_water - data_output(ijsav_water(ij),:)=data_water(ij,:) - enddo - - deallocate (ijsav_water) - deallocate (data_water) - - return - end subroutine nsst_chgres diff --git a/sorc/global_chgres.fd/nstio_module.f90 b/sorc/global_chgres.fd/nstio_module.f90 deleted file mode 100755 index a42ded0a1c..0000000000 --- a/sorc/global_chgres.fd/nstio_module.f90 +++ /dev/null @@ -1,1238 +0,0 @@ -!------------------------------------------------------------------------------- -module nstio_module -!$$$ Module Documentation Block -! -! Module: nstio_module API for global spectral nst file I/O -! Prgmmr: Xu Li (modified from sfcio_modul) Org: w/nx23 date: 2007-10-26 -! -! Abstract: This module provides an Application Program Interface -! for performing I/O on the nst restart file of the global nst diurnal warming and sub-layer cooling models. -! Functions include opening, reading, writing, and closing as well as -! allocating and deallocating data buffers sed in the transfers. -! The I/O performed here is sequential. -! The transfers are limited to header records or data records. -! -! Program History Log: -! 2007-10-26 Xu Li -! 2008-03-25 Xu Li: add surface mask field -! 2009-06-30 Xu Li: modified for NCEP DTM-1p -! -! Public Variables: -! nstio_lhead1 Integer parameter length of first header record (=32) -! nstio_intkind Integer parameter kind or length of passed integers (=4) -! nstio_realkind Integer parameter kind or length of passed reals (=4) -! nstio_dblekind Integer parameter kind or length of passed longreals (=8) -! nstio_realfill Real(nstio_realkind) fill value (=-9999.) -! nstio_dblefill Real(nstio_dblekind) fill value (=-9999.) -! -! Public Defined Types: -! nstio_head nst file header information -! clabnst Character(nstio_lhead1) ON85 label -! fhour Real(nstio_realkind) forecast hour -! idate Integer(nstio_intkind)(4) initial date -! (hour, month, day, 4-digit year) -! latb Integer(nstio_intkind) latitudes -! lonb Integer(nstio_intkind) longitudes -! ivo Integer(nstio_intkind) version number -! lsea Integer(nstio_intkind) sea levels -! irealf Integer(sigio_intkind) floating point flag -! (=1 for 4-byte ieee, =2 for 8-byte ieee) -! lpl Integer(nstio_intkind)(latb/2) lons per lat -! zsea Real(nstio_realkind) sea depths (meter) -! -! nstio_data nst file data fields -! slmsk Real(nstio_realkind)(:,:) pointer to lonb*latb -! surface mask: 0 = water; 1 = land; 2 = ice -! xt Real(nstio_realkind)(:,:) pointer to lonb*latb -! heat content in DTL (M*K) -! xs Real(nstio_realkind)(:,:) pointer to lonb*latb -! salinity content in DTL (M*ppt) -! xu Real(nstio_realkind)(:,:) pointer to lonb*latb -! u-current content in DTL (M*M/S) -! xv Real(nstio_realkind)(:,:) pointer to lonb*latb -! v-current content in DTL (M*M/S) -! xz Real(nstio_realkind)(:,:) pointer to lonb*latb -! DTL thickness (M) -! zm Real(nstio_realkind)(:,:) pointer to lonb*latb -! MXL thickness (M) -! xtts Real(nstio_realkind)(:,:) pointer to lonb*latb -! d(xt)/d(Ts) (1/M) -! xzts Real(nstio_realkind)(:,:) pointer to lonb*latb -! d(xz)/d(Ts) (M/K) -! dt_cool Real(nstio_realkind)(:,:) pointer to lonb*latb -! sea surface cooling amount by sub-layer cooling effect -! z_c Real(nstio_realkind)(:,:) pointer to lonb*latb -! sea sub-layer depth in m -! c_0 Real(nstio_realkind)(:,:) pointer to lonb*latb -! coefficient to calculate d(Tz)/d(tr) in dimensionless -! c_d Real(nstio_realkind)(:,:) pointer to lonb*latb -! coefficient to calculate d(Tz)/d(tr) in (1/M) -! w_0 Real(nstio_realkind)(:,:) pointer to lonb*latb -! coefficient to calculate d(Tz)/d(tr) in dimensionless -! w_d Real(nstio_realkind)(:,:) pointer to lonb*latb -! coefficient to calculate d(Tz)/d(tr) (1/M) -! d_conv Real(nstio_realkind)(:,:) pointer to lonb*latb -! FCL thickness (M) -! ifd Real(nstio_realkind)(:,:) pointer to lonb*latb -! index of time integral started mode: 0 = not yet; 1 = started already -! Tref Real(nstio_realkind)(:,:) pointer to lonb*latb -! reference temperature (K) -! Qrain Real(nstio_realkind)(:,:) pointer to lonb*latb -! sensible heat flux due to rainfall (W*M^-2) -! -! nstio_dbta nst file longreal data fields -! -! Public Subprograms: -! nstio_sropen Open nst file for sequential reading -! lu Integer(nstio_intkind) input logical unit -! cfname Character(*) input filename -! iret Integer(nstio_intkind) output return code -! -! nstio_swopen Open nst file for sequential writing -! lu Integer(nstio_intkind) input logical unit -! cfname Character(*) input filename -! iret Integer(nstio_intkind) output return code -! -! nstio_srclose Close nst file for sequential I/O -! lu Integer(nstio_intkind) input logical unit -! iret Integer(nstio_intkind) output return code -! -! nstio_srhead Read header information with sequential I/O -! lu Integer(nstio_intkind) input logical unit -! head Type(nstio_head) output header information -! iret Integer(nstio_intkind) output return code -! -! nstio_swhead Write header information with sequential I/O -! lu Integer(nstio_intkind) input logical unit -! head Type(nstio_head) input header information -! iret Integer(nstio_intkind) output return code -! -! nstio_alhead Allocate head allocatables -! head Type(nstio_head) input/output header information -! iret Integer(nstio_intkind) output return code -! latb Integer(nstio_intkind) optional latitudes -! lsea Integer(nstio_intkind) optional sea levels -! -! nstio_aldata Allocate data fields -! head Type(nstio_head) input header information -! data Type(nstio_data) output data fields -! iret Integer(nstio_intkind) output return code -! -! nstio_axdata Deallocate data fields -! data Type(nstio_data) output data fields -! iret Integer(nstio_intkind) output return code -! -! nstio_srdata Read data fields with sequential I/O -! lu Integer(nstio_intkind) input logical unit -! head Type(nstio_head) input header information -! data Type(nstio_data) output data fields -! iret Integer(nstio_intkind) output return code -! -! nstio_swdata Write data fields with sequential I/O -! lu Integer(nstio_intkind) input logical unit -! head Type(nstio_head) input header information -! data Type(nstio_data) input data fields -! iret Integer(nstio_intkind) output return code -! -! nstio_srohdc Open, read header & data and close with sequential I/O -! lu Integer(nstio_intkind) input logical unit -! cfname Character(*) input filename -! head Type(nstio_head) output header information -! data Type(nstio_data) output data fields -! iret Integer(nstio_intkind) output return code -! -! nstio_swohdc Open, write header & data and close with sequential I/O -! lu Integer(nstio_intkind) input logical unit -! cfname Character(*) input filename -! head Type(nstio_head) input header information -! data Type(nstio_data) input data fields -! iret Integer(nstio_intkind) output return code -! -! nstio_aldbta Allocate longreal data fields -! head Type(nstio_head) input header information -! dbta Type(nstio_dbta) output longreal data fields -! iret Integer(nstio_intkind) output return code -! -! nstio_axdbta Deallocate longreal data fields -! dbta Type(nstio_dbta) output longreal data fields -! iret Integer(nstio_intkind) output return code -! -! nstio_srdbta Read longreal data fields with sequential I/O -! lu Integer(nstio_intkind) input logical unit -! head Type(nstio_head) input header information -! dbta Type(nstio_dbta) output longreal data fields -! iret Integer(nstio_intkind) output return code -! -! nstio_swdbta Write longreal data fields with sequential I/O -! lu Integer(nstio_intkind) input logical unit -! head Type(nstio_head) input header information -! dbta Type(nstio_dbta) input longreal data fields -! iret Integer(nstio_intkind) output return code -! -! Remarks: -! (1) Here's the supported nst file formats. -! For ivo=200907 -! Label containing -! 'GFS ','NST ',ivo,nhead,ndata,reserved(3) (8 4-byte words) -! Header records -! lhead(nhead),ldata(ndata) (nhead+ndata 4-byte words) -! fhour, idate(4), lonb, latb, lsea, irealf, -! reserved(16) (25 4-byte words) -! lpl (latb/2 4-byte words) -! zsea (lsea 4-byte words) -! Data records -! slmsk (lonb*latb 4-byte words) -! xt (lonb*latb 4-byte words) -! xs (lonb*latb 4-byte words) -! xu (lonb*latb 4-byte words) -! xv (lonb*latb 4-byte words) -! xz (lonb*latb 4-byte words) -! zm (lonb*latb 4-byte words) -! xtts (lonb*latb 4-byte words) -! xzts (lonb*latb 4-byte words) -! dt_cool (lonb*latb 4-byte words) -! z_c (lonb*latb 4-byte words) -! c_0 (lonb*latb 4-byte words) -! c_d (lonb*latb 4-byte words) -! w_0 (lonb*latb 4-byte words) -! w_d (lonb*latb 4-byte words) -! d_conv (lonb*latb 4-byte words) -! ifd (lonb*latb 4-byte words) -! Tref (lonb*latb 4-byte words) -! Qrain (lonb*latb 4-byte words) -! -! (2) Possible return codes: -! 0 Successful call -! -1 Open or close I/O error -! -2 Header record I/O error or unrecognized version -! -3 Allocation or deallocation error -! -4 Data record I/O error -! -5 Insufficient data dimensions allocated -! -! Examples: -! (1) Read the entire nst file 'nstf24' and -! print out the northernmost nst temperature at greenwich. -! -! use nstio_module -! type(nstio_head):: head -! type(nstio_data):: data -! call nstio_srohdc(11,'nstf24',head,data,iret) -! print '(f8.2)',data%tref(1,1) -! end -! -! Attributes: -! Language: Fortran 90 -! -!$$$ - implicit none - private -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! Public Variables - integer,parameter,public:: ngrids_nst=19 - integer,parameter,public:: nstio_lhead1=32 - integer,parameter,public:: nstio_intkind=4,nstio_realkind=4,nstio_dblekind=8 - real(nstio_realkind),parameter,public:: nstio_realfill=-9999. - real(nstio_dblekind),parameter,public:: nstio_dblefill=nstio_realfill -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! Public Types - type,public:: nstio_head - character(nstio_lhead1):: clabnst=' ' - real(nstio_realkind):: fhour=0. - integer(nstio_intkind):: idate(4)=(/0,0,0,0/),latb=0,lonb=0,lsea=0,ivo=0 - integer(nstio_intkind):: irealf=1 - integer(nstio_intkind),allocatable:: lpl(:) - real(nstio_realkind),allocatable:: zsea(:) - end type - type,public:: nstio_data - real(nstio_realkind),pointer:: slmsk (:,:)=>null() - real(nstio_realkind),pointer:: xt (:,:)=>null() - real(nstio_realkind),pointer:: xs (:,:)=>null() - real(nstio_realkind),pointer:: xu (:,:)=>null() - real(nstio_realkind),pointer:: xv (:,:)=>null() - real(nstio_realkind),pointer:: xz (:,:)=>null() - real(nstio_realkind),pointer:: zm (:,:)=>null() - real(nstio_realkind),pointer:: xtts (:,:)=>null() - real(nstio_realkind),pointer:: xzts (:,:)=>null() - real(nstio_realkind),pointer:: dt_cool (:,:)=>null() - real(nstio_realkind),pointer:: z_c (:,:)=>null() - real(nstio_realkind),pointer:: c_0 (:,:)=>null() - real(nstio_realkind),pointer:: c_d (:,:)=>null() - real(nstio_realkind),pointer:: w_0 (:,:)=>null() - real(nstio_realkind),pointer:: w_d (:,:)=>null() - real(nstio_realkind),pointer:: d_conv (:,:)=>null() - real(nstio_realkind),pointer:: ifd (:,:)=>null() - real(nstio_realkind),pointer:: tref (:,:)=>null() - real(nstio_realkind),pointer:: Qrain (:,:)=>null() - end type - type,public:: nstio_dbta - real(nstio_dblekind),pointer:: slmsk (:,:)=>null() - real(nstio_dblekind),pointer:: xt (:,:)=>null() - real(nstio_dblekind),pointer:: xs (:,:)=>null() - real(nstio_dblekind),pointer:: xu (:,:)=>null() - real(nstio_dblekind),pointer:: xv (:,:)=>null() - real(nstio_dblekind),pointer:: xz (:,:)=>null() - real(nstio_dblekind),pointer:: zm (:,:)=>null() - real(nstio_dblekind),pointer:: xtts (:,:)=>null() - real(nstio_dblekind),pointer:: xzts (:,:)=>null() - real(nstio_dblekind),pointer:: dt_cool (:,:)=>null() - real(nstio_dblekind),pointer:: z_c (:,:)=>null() - real(nstio_dblekind),pointer:: c_0 (:,:)=>null() - real(nstio_dblekind),pointer:: c_d (:,:)=>null() - real(nstio_dblekind),pointer:: w_0 (:,:)=>null() - real(nstio_dblekind),pointer:: w_d (:,:)=>null() - real(nstio_dblekind),pointer:: d_conv (:,:)=>null() - real(nstio_dblekind),pointer:: ifd (:,:)=>null() - real(nstio_dblekind),pointer:: tref (:,:)=>null() - real(nstio_dblekind),pointer:: Qrain (:,:)=>null() - end type -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! Public Subprograms - public nstio_sropen,nstio_swopen,nstio_srclose,nstio_srhead,nstio_swhead - public nstio_alhead,nstio_aldata,nstio_axdata,nstio_srdata,nstio_swdata - public nstio_aldbta,nstio_axdbta,nstio_srdbta,nstio_swdbta - public nstio_srohdc,nstio_swohdc - interface nstio_srohdc - module procedure nstio_srohdca,nstio_srohdcb - end interface - interface nstio_swohdc - module procedure nstio_swohdca,nstio_swohdcb - end interface -contains -!------------------------------------------------------------------------------- - subroutine nstio_sropen(lu,cfname,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - character*(*),intent(in):: cfname - integer(nstio_intkind),intent(out):: iret - integer ios -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - open(lu,file=cfname,form='unformatted',& - status='old',action='read',iostat=ios) -! write(*,*) ' successfully opened : ',cfname, ios - iret=ios - if(iret.ne.0) iret=-1 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_swopen(lu,cfname,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - character*(*),intent(in):: cfname - integer(nstio_intkind),intent(out):: iret - integer ios -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - open(lu,file=cfname,form='unformatted',& - status='unknown',action='readwrite',iostat=ios) - iret=ios - if(iret.ne.0) iret=-1 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_srclose(lu,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - integer(nstio_intkind),intent(out):: iret - integer ios -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - close(lu,iostat=ios) - iret=ios - if(iret.ne.0) iret=-1 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_srhead(lu,head,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - type(nstio_head),intent(out):: head - integer(nstio_intkind),intent(out):: iret - integer:: ios - character(4):: cgfs,cnst - integer(nstio_intkind):: nhead,ndata,nresv(3) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - iret=-2 - rewind lu - read(lu,iostat=ios) head%clabnst(1:8) -! write(*,*) ' head%clabnst done, ios : ',head%clabnst(1:8), ios - if(ios.ne.0) return - if(head%clabnst(1:8).eq.'GFS NST ') then ! modern nst file - rewind lu - read(lu,iostat=ios) cgfs,cnst,head%ivo,nhead,nresv -! write(*,*) ' cgfs,cnst done, ios : ',cgfs,cnst, ios,head%ivo,nhead - if(ios.ne.0) return - if(head%ivo.eq.200907) then - read(lu,iostat=ios) - if(ios.ne.0) return - read(lu,iostat=ios) head%fhour,head%idate,head%lonb,head%latb,& - head%lsea,head%irealf -! write(*,*) ' head%fhour, ios : ',head%fhour, ios - if(ios.ne.0) return - call nstio_alhead(head,ios) - if(ios.ne.0) return - read(lu,iostat=ios) head%lpl - if(ios.ne.0) return - read(lu,iostat=ios) head%zsea - if(ios.ne.0) return - else - return - endif - endif - iret=0 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_swhead(lu,head,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - type(nstio_head),intent(in):: head - integer(nstio_intkind),intent(out):: iret - integer:: ios - integer i -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - iret=-2 - if(head%ivo.eq.200907) then - rewind lu - write(lu,iostat=ios) 'GFS NST ',head%ivo,ngrids_nst+4*head%lsea,0,0,0 - if(ios.ne.0) return - write(lu,iostat=ios) 4*(/8,ngrids_nst+4*head%lsea,25,head%latb/2,head%lsea/),& - 4*head%irealf*(/(head%lonb*head%latb,& - i=1,ngrids_nst+4*head%lsea)/) - if(ios.ne.0) return - write(lu,iostat=ios) head%fhour,head%idate,head%lonb,head%latb,& - head%lsea,head%irealf,(0,i=1,16) - if(ios.ne.0) return - write(lu,iostat=ios) head%lpl - if(ios.ne.0) return - write(lu,iostat=ios) head%zsea - if(ios.ne.0) return - iret=0 - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_alhead(head,iret,latb,lsea) - implicit none - type(nstio_head),intent(inout):: head - integer(nstio_intkind),intent(out):: iret - integer(nstio_intkind),optional,intent(in):: latb,lsea - integer dim1l,dim1z -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if(present(latb)) then - dim1l=latb/2 - else - dim1l=head%latb/2 - endif - if(present(lsea)) then - dim1z=lsea - else - dim1z=head%lsea - endif - if(allocated(head%lpl)) deallocate(head%lpl) - if(allocated(head%zsea)) deallocate(head%zsea) - allocate(head%lpl(dim1l),head%zsea(dim1z),stat=iret) - if(iret.eq.0) then - head%lpl=0 - head%zsea=nstio_realfill - endif - if(iret.ne.0) then - iret=-3 -! write(*,*) ' fail to allocate nstio%head, iret = ',iret - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_aldata(head,data,iret) - implicit none - type(nstio_head),intent(in):: head - type(nstio_data),intent(inout):: data - integer(nstio_intkind),intent(out):: iret - integer dim1,dim2,dim3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_axdata(data,iret) - dim1=head%lonb - dim2=head%latb - dim3=head%lsea -! write(*,*) 'in nstio_aldata, dim1, dim2, dim3 : ', dim1, dim2, dim3 - allocate(& - data%slmsk(dim1,dim2),& - data%xt(dim1,dim2),& - data%xs(dim1,dim2),& - data%xu(dim1,dim2),& - data%xv(dim1,dim2),& - data%xz(dim1,dim2),& - data%zm(dim1,dim2),& - data%xtts(dim1,dim2),& - data%xzts(dim1,dim2),& - data%dt_cool(dim1,dim2),& - data%z_c(dim1,dim2),& - data%c_0(dim1,dim2),& - data%c_d(dim1,dim2),& - data%w_0(dim1,dim2),& - data%w_d(dim1,dim2),& - data%d_conv(dim1,dim2),& - data%ifd(dim1,dim2),& - data%tref(dim1,dim2),& - data%Qrain(dim1,dim2),& - stat=iret) - if(iret.ne.0) then - iret=-3 -! write(*,*) ' fail to allocate nstio%data, iret = ',iret - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_axdata(data,iret) - implicit none - type(nstio_data),intent(inout):: data - integer(nstio_intkind),intent(out):: iret -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - deallocate(& - data%slmsk,& - data%xt,& - data%xs,& - data%xu,& - data%xv,& - data%xz,& - data%zm,& - data%xtts,& - data%xzts,& - data%dt_cool,& - data%z_c,& - data%c_0,& - data%c_d,& - data%w_0,& - data%w_d,& - data%d_conv,& - data%ifd,& - data%tref,& - data%Qrain,& - stat=iret) - nullify(& - data%slmsk,& - data%xt,& - data%xs,& - data%xu,& - data%xv,& - data%xz,& - data%zm,& - data%xtts,& - data%xzts,& - data%dt_cool,& - data%z_c,& - data%c_0,& - data%c_d,& - data%w_0,& - data%w_d,& - data%d_conv,& - data%ifd,& - data%tref,& - data%Qrain) - if(iret.ne.0) iret=-3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_srdata(lu,head,data,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - type(nstio_head),intent(in):: head - type(nstio_data),intent(inout):: data - integer(nstio_intkind),intent(out):: iret - integer:: dim1,dim2,dim3,mdim1,mdim2,mdim3 - integer:: ios - integer i - type(nstio_dbta) dbta -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dim1=head%lonb - dim2=head%latb - dim3=head%lsea - - mdim1=min(& - size(data%slmsk,1),& - size(data%xt,1),& - size(data%xs,1),& - size(data%xu,1),& - size(data%xv,1),& - size(data%xz,1),& - size(data%zm,1),& - size(data%xtts,1),& - size(data%xzts,1),& - size(data%dt_cool,1),& - size(data%z_c,1),& - size(data%c_0,1),& - size(data%c_d,1),& - size(data%w_0,1),& - size(data%w_d,1),& - size(data%d_conv,1),& - size(data%ifd,1),& - size(data%tref,1),& - size(data%Qrain,1)) - mdim2=min(& - size(data%slmsk,2),& - size(data%xt,2),& - size(data%xs,2),& - size(data%xu,2),& - size(data%xv,2),& - size(data%xz,2),& - size(data%zm,2),& - size(data%xtts,2),& - size(data%xzts,2),& - size(data%dt_cool,2),& - size(data%z_c,2),& - size(data%c_0,2),& - size(data%c_d,2),& - size(data%w_0,2),& - size(data%w_d,2),& - size(data%d_conv,2),& - size(data%ifd,2),& - size(data%tref,2),& - size(data%Qrain,2)) - mdim3=0 - iret=-5 - if(mdim1.lt.dim1.or.& - mdim2.lt.dim2.or.& - mdim3.lt.dim3) return - iret=-4 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if(head%ivo.eq.200907) then - if(head%irealf.ne.2) then - read(lu,iostat=ios) data%slmsk(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%xt(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%xs(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%xu(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%xv(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%xz(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%zm(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%xtts(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%xzts(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%dt_cool(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%z_c(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%c_0(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%c_d(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%w_0(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%w_d(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%d_conv(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%ifd(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%tref(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) data%Qrain(:dim1,:dim2) - if(ios.ne.0) return - else - call nstio_aldbta(head,dbta,iret) - if(iret.ne.0) return - call nstio_srdbta(lu,head,dbta,iret) - if(iret.ne.0) return - data%slmsk(:dim1,:dim2) = dbta%slmsk(:dim1,:dim2) - data%xt(:dim1,:dim2) = dbta%xt(:dim1,:dim2) - data%xs(:dim1,:dim2) = dbta%xs(:dim1,:dim2) - data%xu(:dim1,:dim2) = dbta%xu(:dim1,:dim2) - data%xv(:dim1,:dim2) = dbta%xv(:dim1,:dim2) - data%xz(:dim1,:dim2) = dbta%xz(:dim1,:dim2) - data%zm(:dim1,:dim2) = dbta%zm(:dim1,:dim2) - data%xtts(:dim1,:dim2) = dbta%xtts(:dim1,:dim2) - data%xzts(:dim1,:dim2) = dbta%xzts(:dim1,:dim2) - data%dt_cool(:dim1,:dim2) = dbta%dt_cool(:dim1,:dim2) - data%z_c(:dim1,:dim2) = dbta%z_c(:dim1,:dim2) - data%c_0(:dim1,:dim2) = dbta%c_0(:dim1,:dim2) - data%c_d(:dim1,:dim2) = dbta%c_d(:dim1,:dim2) - data%w_0(:dim1,:dim2) = dbta%w_0(:dim1,:dim2) - data%w_d(:dim1,:dim2) = dbta%w_d(:dim1,:dim2) - data%d_conv(:dim1,:dim2) = dbta%d_conv(:dim1,:dim2) - data%ifd(:dim1,:dim2) = dbta%ifd(:dim1,:dim2) - data%tref(:dim1,:dim2) = dbta%tref(:dim1,:dim2) - data%Qrain(:dim1,:dim2) = dbta%Qrain(:dim1,:dim2) - call nstio_axdbta(dbta,iret) - endif - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - iret=0 - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_swdata(lu,head,data,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - type(nstio_head),intent(in):: head - type(nstio_data),intent(in):: data - integer(nstio_intkind),intent(out):: iret - integer:: dim1,dim2,dim3,mdim1,mdim2,mdim3 - integer:: ios - integer i - type(nstio_dbta) dbta -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dim1=head%lonb - dim2=head%latb - dim3=head%lsea - mdim1=min(& - size(data%slmsk,1),& - size(data%xt,1),& - size(data%xs,1),& - size(data%xu,1),& - size(data%xv,1),& - size(data%xz,1),& - size(data%zm,1),& - size(data%xtts,1),& - size(data%xzts,1),& - size(data%dt_cool,1),& - size(data%z_c,1),& - size(data%c_0,1),& - size(data%c_d,1),& - size(data%w_0,1),& - size(data%w_d,1),& - size(data%d_conv,1),& - size(data%ifd,1),& - size(data%tref,1),& - size(data%Qrain,1)) - mdim2=min(& - size(data%slmsk,2),& - size(data%xt,2),& - size(data%xs,2),& - size(data%xu,2),& - size(data%xv,2),& - size(data%xz,2),& - size(data%zm,2),& - size(data%xtts,2),& - size(data%xzts,2),& - size(data%dt_cool,2),& - size(data%z_c,2),& - size(data%c_0,2),& - size(data%c_d,2),& - size(data%w_0,2),& - size(data%w_d,2),& - size(data%d_conv,2),& - size(data%ifd,2),& - size(data%tref,2)) - mdim3=0 - iret=-5 - if(mdim1.lt.dim1.or.& - mdim2.lt.dim2.or.& - mdim3.lt.dim3) return - iret=-4 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if(head%ivo.eq.200907) then - if(head%irealf.ne.2) then - write(lu,iostat=ios) data%slmsk(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%xt(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%xs(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%xu(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%xv(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%xz(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%zm(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%xtts(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%xzts(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%dt_cool(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%z_c(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%c_0(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%c_d(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%w_0(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%w_d(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%d_conv(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%ifd(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%tref(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) data%Qrain(:dim1,:dim2) - if(ios.ne.0) return - else - call nstio_aldbta(head,dbta,iret) - if(iret.ne.0) return - dbta%slmsk(:dim1,:dim2) = data%slmsk(:dim1,:dim2) - dbta%xt(:dim1,:dim2) = data%xt(:dim1,:dim2) - dbta%xs(:dim1,:dim2) = data%xs(:dim1,:dim2) - dbta%xu(:dim1,:dim2) = data%xu(:dim1,:dim2) - dbta%xv(:dim1,:dim2) = data%xv(:dim1,:dim2) - dbta%xz(:dim1,:dim2) = data%xz(:dim1,:dim2) - dbta%zm(:dim1,:dim2) = data%zm(:dim1,:dim2) - dbta%xtts(:dim1,:dim2) = data%xtts(:dim1,:dim2) - dbta%xzts(:dim1,:dim2) = data%xzts(:dim1,:dim2) - dbta%dt_cool(:dim1,:dim2) = data%dt_cool(:dim1,:dim2) - dbta%z_c(:dim1,:dim2) = data%z_c(:dim1,:dim2) - dbta%c_0(:dim1,:dim2) = data%c_0(:dim1,:dim2) - dbta%c_d(:dim1,:dim2) = data%c_d(:dim1,:dim2) - dbta%w_0(:dim1,:dim2) = data%w_0(:dim1,:dim2) - dbta%w_d(:dim1,:dim2) = data%w_d(:dim1,:dim2) - dbta%d_conv(:dim1,:dim2) = data%d_conv(:dim1,:dim2) - dbta%ifd(:dim1,:dim2) = data%ifd(:dim1,:dim2) - dbta%tref(:dim1,:dim2) = data%tref(:dim1,:dim2) - dbta%Qrain(:dim1,:dim2) = data%Qrain(:dim1,:dim2) - call nstio_swdbta(lu,head,dbta,iret) - if(iret.ne.0) return - call nstio_axdbta(dbta,iret) - endif - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - iret=0 - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_srohdca(lu,cfname,head,data,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - character*(*),intent(in):: cfname - type(nstio_head),intent(inout):: head - type(nstio_data),intent(inout):: data - integer(nstio_intkind),intent(out):: iret -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_sropen(lu,cfname,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_srhead(lu,head,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_aldata(head,data,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_srdata(lu,head,data,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_srclose(lu,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_swohdca(lu,cfname,head,data,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - character*(*),intent(in):: cfname - type(nstio_head),intent(in):: head - type(nstio_data),intent(in):: data - integer(nstio_intkind),intent(out):: iret -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_swopen(lu,cfname,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_swhead(lu,head,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_swdata(lu,head,data,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_srclose(lu,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_aldbta(head,dbta,iret) - implicit none - type(nstio_head),intent(in):: head - type(nstio_dbta),intent(inout):: dbta - integer(nstio_intkind),intent(out):: iret - integer dim1,dim2,dim3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_axdbta(dbta,iret) - dim1=head%lonb - dim2=head%latb - dim3=head%lsea - allocate(& - dbta%slmsk(dim1,dim2),& - dbta%xt(dim1,dim2),& - dbta%xs(dim1,dim2),& - dbta%xu(dim1,dim2),& - dbta%xv(dim1,dim2),& - dbta%xz(dim1,dim2),& - dbta%zm(dim1,dim2),& - dbta%xtts(dim1,dim2),& - dbta%xzts(dim1,dim2),& - dbta%dt_cool(dim1,dim2),& - dbta%z_c(dim1,dim2),& - dbta%c_0(dim1,dim2),& - dbta%c_d(dim1,dim2),& - dbta%w_0(dim1,dim2),& - dbta%w_d(dim1,dim2),& - dbta%d_conv(dim1,dim2),& - dbta%ifd(dim1,dim2),& - dbta%tref(dim1,dim2),& - dbta%Qrain(dim1,dim2),& - stat=iret) - if(iret.ne.0) iret=-3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_axdbta(dbta,iret) - implicit none - type(nstio_dbta),intent(inout):: dbta - integer(nstio_intkind),intent(out):: iret -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - deallocate(& - dbta%slmsk,& - dbta%xt,& - dbta%xs,& - dbta%xu,& - dbta%xv,& - dbta%xz,& - dbta%zm,& - dbta%xtts,& - dbta%xzts,& - dbta%dt_cool,& - dbta%z_c,& - dbta%c_0,& - dbta%c_d,& - dbta%w_0,& - dbta%w_d,& - dbta%d_conv,& - dbta%ifd,& - dbta%tref,& - dbta%Qrain,& - stat=iret) - nullify(& - dbta%slmsk,& - dbta%xt,& - dbta%xs,& - dbta%xu,& - dbta%xv,& - dbta%xz,& - dbta%zm,& - dbta%xtts,& - dbta%xzts,& - dbta%dt_cool,& - dbta%z_c,& - dbta%c_0,& - dbta%c_d,& - dbta%w_0,& - dbta%w_d,& - dbta%d_conv,& - dbta%ifd,& - dbta%tref) - if(iret.ne.0) iret=-3 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_srdbta(lu,head,dbta,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - type(nstio_head),intent(in):: head - type(nstio_dbta),intent(inout):: dbta - integer(nstio_intkind),intent(out):: iret - integer:: dim1,dim2,dim3,mdim1,mdim2,mdim3 - integer:: ios - integer i - type(nstio_data):: data -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dim1=head%lonb - dim2=head%latb - dim3=head%lsea - mdim1=min(& - size(dbta%slmsk,1),& - size(dbta%xt,1),& - size(dbta%xs,1),& - size(dbta%xu,1),& - size(dbta%xv,1),& - size(dbta%xz,1),& - size(dbta%zm,1),& - size(dbta%xtts,1),& - size(dbta%xzts,1),& - size(dbta%dt_cool,1),& - size(dbta%z_c,1),& - size(dbta%c_0,1),& - size(dbta%c_d,1),& - size(dbta%w_0,1),& - size(dbta%w_d,1),& - size(dbta%d_conv,1),& - size(dbta%ifd,1),& - size(dbta%tref,1),& - size(dbta%Qrain,1)) - mdim2=min(& - size(dbta%slmsk,2),& - size(dbta%xt,2),& - size(dbta%xs,2),& - size(dbta%xu,2),& - size(dbta%xv,2),& - size(dbta%xz,2),& - size(dbta%zm,2),& - size(dbta%xtts,2),& - size(dbta%xzts,2),& - size(dbta%dt_cool,2),& - size(dbta%z_c,2),& - size(dbta%c_0,2),& - size(dbta%c_d,2),& - size(dbta%w_0,2),& - size(dbta%w_d,2),& - size(dbta%d_conv,2),& - size(dbta%ifd,2),& - size(dbta%tref,2),& - size(dbta%Qrain,2)) - mdim3=0 - iret=-5 - if(mdim1.lt.dim1.or.& - mdim2.lt.dim2.or.& - mdim3.lt.dim3) return - iret=-4 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if(head%irealf.ne.2) then - call nstio_aldata(head,data,iret) - if(iret.ne.0) return - call nstio_srdata(lu,head,data,iret) - if(iret.ne.0) return - dbta%slmsk(:dim1,:dim2) = data%slmsk(:dim1,:dim2) - dbta%xt(:dim1,:dim2) = data%xt(:dim1,:dim2) - dbta%xs(:dim1,:dim2) = data%xs(:dim1,:dim2) - dbta%xu(:dim1,:dim2) = data%xu(:dim1,:dim2) - dbta%xv(:dim1,:dim2) = data%xv(:dim1,:dim2) - dbta%xz(:dim1,:dim2) = data%xz(:dim1,:dim2) - dbta%zm(:dim1,:dim2) = data%zm(:dim1,:dim2) - dbta%xtts(:dim1,:dim2) = data%xtts(:dim1,:dim2) - dbta%xzts(:dim1,:dim2) = data%xzts(:dim1,:dim2) - dbta%dt_cool(:dim1,:dim2) = data%dt_cool(:dim1,:dim2) - dbta%z_c(:dim1,:dim2) = data%z_c(:dim1,:dim2) - dbta%c_0(:dim1,:dim2) = data%c_0(:dim1,:dim2) - dbta%c_d(:dim1,:dim2) = data%c_d(:dim1,:dim2) - dbta%w_0(:dim1,:dim2) = data%w_0(:dim1,:dim2) - dbta%w_d(:dim1,:dim2) = data%w_d(:dim1,:dim2) - dbta%d_conv(:dim1,:dim2) = data%d_conv(:dim1,:dim2) - dbta%ifd(:dim1,:dim2) = data%ifd(:dim1,:dim2) - dbta%tref(:dim1,:dim2) = data%tref(:dim1,:dim2) - dbta%Qrain(:dim1,:dim2) = data%Qrain(:dim1,:dim2) - call nstio_axdata(data,iret) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - elseif(head%ivo == 200907) then - read(lu,iostat=ios) dbta%slmsk(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%xt(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%xs(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%xu(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%xv(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%xz(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%zm(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%xtts(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%xzts(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%dt_cool(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%z_c(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%c_0(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%c_d(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%w_0(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%w_d(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%d_conv(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%ifd(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%tref(:dim1,:dim2) - if(ios.ne.0) return - read(lu,iostat=ios) dbta%Qrain(:dim1,:dim2) - if(ios.ne.0) return - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - iret=0 - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_swdbta(lu,head,dbta,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - type(nstio_head),intent(in):: head - type(nstio_dbta),intent(in):: dbta - integer(nstio_intkind),intent(out):: iret - integer:: dim1,dim2,dim3,mdim1,mdim2,mdim3 - integer:: ios - integer i - type(nstio_data):: data -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dim1=head%lonb - dim2=head%latb - dim3=head%lsea - mdim1=min(& - size(dbta%slmsk,1),& - size(dbta%xt,1),& - size(dbta%xs,1),& - size(dbta%xu,1),& - size(dbta%xv,1),& - size(dbta%xz,1),& - size(dbta%zm,1),& - size(dbta%xtts,1),& - size(dbta%xzts,1),& - size(dbta%dt_cool,1),& - size(dbta%z_c,1),& - size(dbta%c_0,1),& - size(dbta%c_d,1),& - size(dbta%w_0,1),& - size(dbta%w_d,1),& - size(dbta%d_conv,1),& - size(dbta%ifd,1),& - size(dbta%tref,1),& - size(dbta%Qrain,1)) - mdim2=min(& - size(dbta%slmsk,2),& - size(dbta%xt,2),& - size(dbta%xs,2),& - size(dbta%xu,2),& - size(dbta%xv,2),& - size(dbta%xz,2),& - size(dbta%zm,2),& - size(dbta%xtts,2),& - size(dbta%xzts,2),& - size(dbta%dt_cool,2),& - size(dbta%z_c,2),& - size(dbta%c_0,2),& - size(dbta%c_d,2),& - size(dbta%w_0,2),& - size(dbta%w_d,2),& - size(dbta%d_conv,2),& - size(dbta%ifd,2),& - size(dbta%tref,2),& - size(dbta%Qrain,2)) - mdim3=0 - iret=-5 - if(mdim1.lt.dim1.or.& - mdim2.lt.dim2.or.& - mdim3.lt.dim3) return - iret=-4 -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if(head%irealf.ne.2) then - call nstio_aldata(head,data,iret) - if(iret.ne.0) return - data%slmsk(:dim1,:dim2) = dbta%slmsk(:dim1,:dim2) - data%xt(:dim1,:dim2) = dbta%xt(:dim1,:dim2) - data%xs(:dim1,:dim2) = dbta%xs(:dim1,:dim2) - data%xu(:dim1,:dim2) = dbta%xu(:dim1,:dim2) - data%xv(:dim1,:dim2) = dbta%xv(:dim1,:dim2) - data%xz(:dim1,:dim2) = dbta%xz(:dim1,:dim2) - data%zm(:dim1,:dim2) = dbta%zm(:dim1,:dim2) - data%xtts(:dim1,:dim2) = dbta%xtts(:dim1,:dim2) - data%xzts(:dim1,:dim2) = dbta%xzts(:dim1,:dim2) - data%dt_cool(:dim1,:dim2) = dbta%dt_cool(:dim1,:dim2) - data%z_c(:dim1,:dim2) = dbta%z_c(:dim1,:dim2) - data%c_0(:dim1,:dim2) = dbta%c_0(:dim1,:dim2) - data%c_d(:dim1,:dim2) = dbta%c_d(:dim1,:dim2) - data%w_0(:dim1,:dim2) = dbta%w_0(:dim1,:dim2) - data%w_d(:dim1,:dim2) = dbta%w_d(:dim1,:dim2) - data%d_conv(:dim1,:dim2) = dbta%d_conv(:dim1,:dim2) - data%ifd(:dim1,:dim2) = dbta%ifd(:dim1,:dim2) - data%tref(:dim1,:dim2) = dbta%tref(:dim1,:dim2) - data%Qrain(:dim1,:dim2) = dbta%Qrain(:dim1,:dim2) - call nstio_swdata(lu,head,data,iret) - if(iret.ne.0) return - call nstio_axdata(data,iret) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - elseif(head%ivo == 200907) then - write(lu,iostat=ios) dbta%slmsk(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%xt(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%xs(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%xu(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%xv(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%xz(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%zm(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%xtts(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%xzts(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%dt_cool(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%z_c(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%c_0(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%c_d(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%w_0(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%w_d(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%d_conv(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%ifd(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%tref(:dim1,:dim2) - if(ios.ne.0) return - write(lu,iostat=ios) dbta%Qrain(:dim1,:dim2) - if(ios.ne.0) return - endif -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - iret=0 - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_srohdcb(lu,cfname,head,dbta,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - character*(*),intent(in):: cfname - type(nstio_head),intent(inout):: head - type(nstio_dbta),intent(inout):: dbta - integer(nstio_intkind),intent(out):: iret -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_sropen(lu,cfname,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_srhead(lu,head,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_aldbta(head,dbta,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_srdbta(lu,head,dbta,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_srclose(lu,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- - subroutine nstio_swohdcb(lu,cfname,head,dbta,iret) - implicit none - integer(nstio_intkind),intent(in):: lu - character*(*),intent(in):: cfname - type(nstio_head),intent(in):: head - type(nstio_dbta),intent(in):: dbta - integer(nstio_intkind),intent(out):: iret -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_swopen(lu,cfname,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_swhead(lu,head,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_swdbta(lu,head,dbta,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - call nstio_srclose(lu,iret) - if(iret.ne.0) return -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine -!------------------------------------------------------------------------------- -end module diff --git a/sorc/global_chgres.fd/num_parthds.f90 b/sorc/global_chgres.fd/num_parthds.f90 deleted file mode 100755 index ee6ab9e833..0000000000 --- a/sorc/global_chgres.fd/num_parthds.f90 +++ /dev/null @@ -1,12 +0,0 @@ - INTEGER FUNCTION NUM_PARTHDS() - use omp_lib -!!$OMP PARALLEL -! num_parthds = omp_get_num_threads() - num_parthds = omp_get_max_threads() -! num_parthds = 6 -! num_parthds = 4 -!!$OMP END PARALLEL - - write(*,*)' NUM_PARTHDS=',num_parthds - return - END FUNCTION NUM_PARTHDS diff --git a/sorc/global_chgres.fd/physcons.f90 b/sorc/global_chgres.fd/physcons.f90 deleted file mode 100755 index 047d01c9dc..0000000000 --- a/sorc/global_chgres.fd/physcons.f90 +++ /dev/null @@ -1,103 +0,0 @@ -!!!!! ========================================================== !!!!! -!!!!! module 'physcons' description !!!!! -!!!!! ========================================================== !!!!! -! ! -! this module contains some the most frequently used math and ! -! physics constatns for gcm models. ! -! ! -! references: ! -! as set in NMC handbook from Smithsonian tables. ! -! ! -! modification history: ! -! ! -! 1990-04-30 g and rd are made consistent with NWS usage ! -! 2001-10-22 g made consistent with SI usage ! -! 2005-04-13 added molicular weights for gases - y-t hou ! -! ! -! external modules referenced: ! -! ! -! 'module machine' in 'machine.f' ! -! ! -! ! -!!!!! ========================================================== !!!!! -!!!!! end descriptions !!!!! -!!!!! ========================================================== !!!!! - -!========================================! - module physcons ! -!........................................! -! - use machine, only : kind_phys -! - implicit none -! - public - -! --- ... Math constants - - real(kind=kind_phys),parameter:: con_pi =3.1415926535897931 ! pi - real(kind=kind_phys),parameter:: con_sqrt2 =1.414214e+0 ! square root of 2 - real(kind=kind_phys),parameter:: con_sqrt3 =1.732051e+0 ! square root of 3 - -! --- ... Geophysics/Astronomy constants - - real(kind=kind_phys),parameter:: con_rerth =6.3712e+6 ! radius of earth (m) - real(kind=kind_phys),parameter:: con_g =9.80665e+0 ! gravity (m/s2) - real(kind=kind_phys),parameter:: con_omega =7.2921e-5 ! ang vel of earth (1/s) - real(kind=kind_phys),parameter:: con_p0 =1.01325e5 ! std atms pressure (pa) -! real(kind=kind_phys),parameter:: con_solr =1.36822e+3 ! solar constant (W/m2)-aer(2001) -! real(kind=kind_phys),parameter:: con_solr =1.3660e+3 ! solar constant (W/m2)-liu(2002) - real(kind=kind_phys),parameter:: con_solr =1.36742732e+3 ! solar constant (W/m2)-gfdl(1989) - OPR as of Jan 2006 - -! --- ... Thermodynamics constants - - real(kind=kind_phys),parameter:: con_rgas =8.314472 ! molar gas constant (J/mol/K) - real(kind=kind_phys),parameter:: con_rd =2.8705e+2 ! gas constant air (J/kg/K) - real(kind=kind_phys),parameter:: con_rv =4.6150e+2 ! gas constant H2O (J/kg/K) - real(kind=kind_phys),parameter:: con_cp =1.0046e+3 ! spec heat air @p (J/kg/K) - real(kind=kind_phys),parameter:: con_cv =7.1760e+2 ! spec heat air @v (J/kg/K) - real(kind=kind_phys),parameter:: con_cvap =1.8460e+3 ! spec heat H2O gas (J/kg/K) - real(kind=kind_phys),parameter:: con_cliq =4.1855e+3 ! spec heat H2O liq (J/kg/K) - real(kind=kind_phys),parameter:: con_csol =2.1060e+3 ! spec heat H2O ice (J/kg/K) - real(kind=kind_phys),parameter:: con_hvap =2.5000e+6 ! lat heat H2O cond (J/kg) - real(kind=kind_phys),parameter:: con_hfus =3.3358e+5 ! lat heat H2O fusion (J/kg) - real(kind=kind_phys),parameter:: con_psat =6.1078e+2 ! pres at H2O 3pt (Pa) - real(kind=kind_phys),parameter:: con_t0c =2.7315e+2 ! temp at 0C (K) - real(kind=kind_phys),parameter:: con_ttp =2.7316e+2 ! temp at H2O 3pt (K) - real(kind=kind_phys),parameter:: con_tice =2.7120e+2 ! temp freezing sea (K) - real(kind=kind_phys),parameter:: con_jcal =4.1855E+0 ! joules per calorie () - -! Secondary constants - - real(kind=kind_phys),parameter:: con_rocp =con_rd/con_cp - real(kind=kind_phys),parameter:: con_cpor =con_cp/con_rd - real(kind=kind_phys),parameter:: con_rog =con_rd/con_g - real(kind=kind_phys),parameter:: con_fvirt =con_rv/con_rd-1. - real(kind=kind_phys),parameter:: con_eps =con_rd/con_rv - real(kind=kind_phys),parameter:: con_epsm1 =con_rd/con_rv-1. - real(kind=kind_phys),parameter:: con_dldt =con_cvap-con_cliq - real(kind=kind_phys),parameter:: con_xpona =-con_dldt/con_rv - real(kind=kind_phys),parameter:: con_xponb =-con_dldt/con_rv+con_hvap/(con_rv*con_ttp) - -! --- ... Other Physics/Chemistry constants - - real(kind=kind_phys),parameter:: con_plnk =6.6260693e-34 ! planck constatn (J/s) -nist(2002) - real(kind=kind_phys),parameter:: con_sbc =5.6730e-8 ! stefan-boltzmann (W/m2/K4) -! real(kind=kind_phys),parameter:: con_sbc =5.670400e-8 ! stefan-boltzmann (W/m2/K4) -nist(2002) -! real(kind=kind_phys),parameter:: con_avgd =6.02214e23 ! avogadro constant (1/mol) -aer - real(kind=kind_phys),parameter:: con_avgd =6.0221415e23 ! avogadro constant (1/mol) -nist(2002) - real(kind=kind_phys),parameter:: con_gasv =22413.996e-6 ! vol of ideal gas at 273.15k, 101.325kpa (m3/mol) -nist(2002) -! real(kind=kind_phys),parameter:: con_amd =28.970 ! molecular wght of dry air (g/mol) - real(kind=kind_phys),parameter:: con_amd =28.9644 ! molecular wght of dry air (g/mol) - real(kind=kind_phys),parameter:: con_amw =18.0154 ! molecular wght of water vapor (g/mol) - real(kind=kind_phys),parameter:: con_amo3 =47.9982 ! molecular wght of o3 (g/mol) -! real(kind=kind_phys),parameter:: con_amo3 =48.0 ! molecular wght of o3 (g/mol) - real(kind=kind_phys),parameter:: con_amco2 =44.011 ! molecular wght of co2 (g/mol) - real(kind=kind_phys),parameter:: con_amo2 =31.9999 ! molecular wght of o2 (g/mol) - real(kind=kind_phys),parameter:: con_amch4 =16.043 ! molecular wght of ch4 (g/mol) - real(kind=kind_phys),parameter:: con_amn2o =44.013 ! molecular wght of n2o (g/mol) - - -!........................................! - end module physcons ! -!========================================! diff --git a/sorc/global_chgres.fd/read_write.f90 b/sorc/global_chgres.fd/read_write.f90 deleted file mode 100644 index 67d07e11c3..0000000000 --- a/sorc/global_chgres.fd/read_write.f90 +++ /dev/null @@ -1,3090 +0,0 @@ - SUBROUTINE WRITE_FV3_ATMS_HEADER_NETCDF(LEVS_P1, NTRACM, NVCOORD, VCOORD) - - IMPLICIT NONE - - INTEGER, INTENT(IN) :: LEVS_P1 - INTEGER, INTENT(IN) :: NTRACM - INTEGER, INTENT(IN) :: NVCOORD - - REAL, INTENT(IN) :: VCOORD(LEVS_P1, NVCOORD) - - CHARACTER(LEN=13) :: OUTFILE - - INTEGER :: ERROR, NCID - INTEGER :: DIM_NVCOORD, DIM_LEVSP - INTEGER :: ID_NTRAC, ID_VCOORD - INTEGER :: FSIZE=65536, INITAL = 0 - INTEGER :: HEADER_BUFFER_VAL = 16384 - - REAL(KIND=8) :: TMP(LEVS_P1,NVCOORD) - - include "netcdf.inc" - - OUTFILE = "./gfs_ctrl.nc" - - ERROR = NF__CREATE(OUTFILE, IOR(NF_NETCDF4,NF_CLASSIC_MODEL), INITAL, FSIZE, NCID) - CALL NETCDF_ERR(ERROR, 'Creating file '//TRIM(OUTFILE) ) - - ERROR = NF_DEF_DIM(NCID, 'nvcoord', NVCOORD, DIM_NVCOORD) - CALL NETCDF_ERR(ERROR, 'define dimension nvcoord for file='//TRIM(OUTFILE) ) - - ERROR = NF_DEF_DIM(NCID, 'levsp', LEVS_P1, DIM_LEVSP) - CALL NETCDF_ERR(ERROR, 'define dimension levsp for file='//TRIM(OUTFILE) ) - - ERROR = NF_DEF_VAR(NCID, 'ntrac', NF_INT, 0, (/0/), ID_NTRAC) - CALL NETCDF_ERR(ERROR, 'define var ntrac for file='//TRIM(OUTFILE) ) - - ERROR = NF_DEF_VAR(NCID, 'vcoord', NF_DOUBLE, 2, (/DIM_LEVSP, DIM_NVCOORD/), ID_VCOORD) - CALL NETCDF_ERR(ERROR, 'define var vcoord for file='//TRIM(OUTFILE) ) - - ERROR = NF__ENDDEF(NCID, HEADER_BUFFER_VAL,4,0,4) - CALL NETCDF_ERR(ERROR, 'end meta define for file='//TRIM(OUTFILE) ) - - ERROR = NF_PUT_VAR_INT( NCID, ID_NTRAC, NTRACM) - CALL NETCDF_ERR(ERROR, 'write var ntrac for file='//TRIM(OUTFILE) ) - - TMP(1:LEVS_P1,:) = VCOORD(LEVS_P1:1:-1,:) - ERROR = NF_PUT_VAR_DOUBLE( NCID, ID_VCOORD, TMP) - CALL NETCDF_ERR(ERROR, 'write var vcoord for file='//TRIM(OUTFILE) ) - - ERROR = NF_CLOSE(NCID) - - END SUBROUTINE WRITE_FV3_ATMS_HEADER_NETCDF - - subroutine netcdf_err( err, string ) - implicit none - integer, intent(in) :: err - character(len=*), intent(in) :: string - character(len=256) :: errmsg - include "netcdf.inc" - - if( err.EQ.NF_NOERR )return - errmsg = NF_STRERROR(err) - print*,'' - print*,'FATAL ERROR: ', trim(string), ': ', trim(errmsg) - print*,'STOP.' - call errexit(999) - - return - end subroutine netcdf_err - - subroutine write_fv3_sfc_data_netcdf(lonb, latb, lsoil, sfcoutput, f10m, & - t2m, q2m, uustar, ffmm, ffhh, tprcp, srflag, tile, & - num_nsst_fields, nsst_output) - - use surface_chgres, only : sfc1d - - implicit none - - integer, intent(in) :: latb, lonb, lsoil, tile - integer, intent(in) :: num_nsst_fields - character(len=128) :: outfile - - integer :: fsize=65536, inital = 0 - integer :: header_buffer_val = 16384 - integer :: dim_lon, dim_lat, dim_lsoil - integer :: error, ncid, i - integer :: id_lon, id_lat, id_lsoil - integer :: id_geolon, id_geolat, id_slmsk - integer :: id_tsea, id_sheleg, id_tg3 - integer :: id_zorl, id_alvsf, id_alvwf - integer :: id_alnsf, id_alnwf, id_vfrac - integer :: id_canopy, id_f10m, id_t2m - integer :: id_q2m, id_vtype, id_stype - integer :: id_facsf, id_facwf, id_uustar - integer :: id_ffmm, id_ffhh, id_hice - integer :: id_fice, id_tisfc, id_tprcp - integer :: id_srflag, id_snwdph, id_shdmin - integer :: id_shdmax, id_slope, id_snoalb - integer :: id_stc, id_smc, id_slc - integer :: id_tref, id_z_c, id_c_0 - integer :: id_c_d, id_w_0, id_w_d - integer :: id_xt, id_xs, id_xu, id_xv - integer :: id_xz, id_zm, id_xtts, id_xzts - integer :: id_d_conv, id_ifd, id_dt_cool - integer :: id_qrain - - logical :: write_nsst - - real, intent(in) :: f10m(lonb,latb) - real, intent(in) :: q2m(lonb,latb) - real, intent(in) :: t2m(lonb,latb) - real, intent(in) :: uustar(lonb,latb) - real, intent(in) :: ffmm(lonb,latb) - real, intent(in) :: ffhh(lonb,latb) - real, intent(in) :: tprcp(lonb,latb) - real, intent(in) :: srflag(lonb,latb) - real, intent(in), optional :: nsst_output(lonb*latb,num_nsst_fields) - real(kind=4) :: lsoil_data(lsoil) - real(kind=4), allocatable :: dum2d(:,:), dum3d(:,:,:) - - type(sfc1d) :: sfcoutput - - include "netcdf.inc" - - write_nsst = .false. - if (present(nsst_output)) write_nsst = .true. - - if (write_nsst) then - print*,'- WRITE FV3 SURFACE AND NSST DATA TO NETCDF FILE' - else - print*,'- WRITE FV3 SURFACE DATA TO NETCDF FILE' - endif - - if (tile < 10) then - write(outfile, '(A, I1, A)'), 'out.sfc.tile', tile, '.nc' - else - write(outfile, '(A, I2, A)'), 'out.sfc.tile', tile, '.nc' - endif - -!--- open the file - error = NF__CREATE(outfile, IOR(NF_NETCDF4,NF_CLASSIC_MODEL), inital, fsize, ncid) - call netcdf_err(error, 'CREATING FILE='//trim(outfile) ) - -!--- define dimension - error = nf_def_dim(ncid, 'lon', lonb, dim_lon) - call netcdf_err(error, 'DEFINING LON DIMENSION' ) - error = nf_def_dim(ncid, 'lat', latb, dim_lat) - call netcdf_err(error, 'DEFINING LAT DIMENSION' ) - error = nf_def_dim(ncid, 'lsoil', lsoil, dim_lsoil) - call netcdf_err(error, 'DEFINING LSOIL DIMENSION' ) - - !--- define field - error = nf_def_var(ncid, 'lon', NF_FLOAT, 1, (/dim_lon/), id_lon) - call netcdf_err(error, 'DEFINING LON FIELD' ) - error = nf_put_att_text(ncid, id_lon, "cartesian_axis", 1, "X") - call netcdf_err(error, 'WRITING LON FIELD' ) - error = nf_def_var(ncid, 'lat', NF_FLOAT, 1, (/dim_lat/), id_lat) - call netcdf_err(error, 'DEFINING LAT FIELD' ) - error = nf_put_att_text(ncid, id_lat, "cartesian_axis", 1, "Y") - call netcdf_err(error, 'WRITING LAT FIELD' ) - error = nf_def_var(ncid, 'lsoil', NF_FLOAT, 1, (/dim_lsoil/), id_lsoil) - call netcdf_err(error, 'DEFINING LSOIL FIELD' ) - error = nf_put_att_text(ncid, id_lsoil, "cartesian_axis", 1, "Z") - call netcdf_err(error, 'WRITING LSOIL FIELD' ) - error = nf_def_var(ncid, 'geolon', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_geolon) - call netcdf_err(error, 'DEFINING GEOLON' ) - error = nf_def_var(ncid, 'geolat', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_geolat) - call netcdf_err(error, 'DEFINING GEOLAT' ) - error = nf_def_var(ncid, 'slmsk', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_slmsk) - call netcdf_err(error, 'DEFINING SLMSK' ) - error = nf_def_var(ncid, 'tsea', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_tsea) - call netcdf_err(error, 'DEFINING TSEA' ) - error = nf_def_var(ncid, 'sheleg', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_sheleg) - call netcdf_err(error, 'DEFINING SHELEG' ) - error = nf_def_var(ncid, 'tg3', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_tg3) - call netcdf_err(error, 'DEFINING TG3' ) - error = nf_def_var(ncid, 'zorl', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_zorl) - call netcdf_err(error, 'DEFINING ZORL' ) - error = nf_def_var(ncid, 'alvsf', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_alvsf) - call netcdf_err(error, 'DEFINING ALVSF' ) - error = nf_def_var(ncid, 'alvwf', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_alvwf) - call netcdf_err(error, 'DEFINING ALVWF' ) - error = nf_def_var(ncid, 'alnsf', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_alnsf) - call netcdf_err(error, 'DEFINING ALNSF' ) - error = nf_def_var(ncid, 'alnwf', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_alnwf) - call netcdf_err(error, 'DEFINING ALNWF' ) - error = nf_def_var(ncid, 'vfrac', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_vfrac) - call netcdf_err(error, 'DEFINING VFRAC' ) - error = nf_def_var(ncid, 'canopy', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_canopy) - call netcdf_err(error, 'DEFINING CANOPY' ) - error = nf_def_var(ncid, 'f10m', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_f10m) - call netcdf_err(error, 'DEFINING F10M' ) - error = nf_def_var(ncid, 't2m', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_t2m) - call netcdf_err(error, 'DEFINING T2M' ) - error = nf_def_var(ncid, 'q2m', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_q2m) - call netcdf_err(error, 'DEFINING Q2M' ) - error = nf_def_var(ncid, 'vtype', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_vtype) - call netcdf_err(error, 'DEFINING VTYPE' ) - error = nf_def_var(ncid, 'stype', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_stype) - call netcdf_err(error, 'DEFINING STYPE' ) - error = nf_def_var(ncid, 'facsf', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_facsf) - call netcdf_err(error, 'DEFINING FACSF' ) - error = nf_def_var(ncid, 'facwf', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_facwf) - call netcdf_err(error, 'DEFINING FACWF' ) - error = nf_def_var(ncid, 'uustar', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_uustar) - call netcdf_err(error, 'DEFINING UUSTAR' ) - error = nf_def_var(ncid, 'ffmm', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_ffmm) - call netcdf_err(error, 'DEFINING FFMM' ) - error = nf_def_var(ncid, 'ffhh', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_ffhh) - call netcdf_err(error, 'DEFINING FFHH' ) - error = nf_def_var(ncid, 'hice', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_hice) - call netcdf_err(error, 'DEFINING HICE' ) - error = nf_def_var(ncid, 'fice', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_fice) - call netcdf_err(error, 'DEFINING FICE' ) - error = nf_def_var(ncid, 'tisfc', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_tisfc) - call netcdf_err(error, 'DEFINING TISFC' ) - error = nf_def_var(ncid, 'tprcp', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_tprcp) - call netcdf_err(error, 'DEFINING TPRCP' ) - error = nf_def_var(ncid, 'srflag', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_srflag) - call netcdf_err(error, 'DEFINING SRFLAG' ) - error = nf_def_var(ncid, 'snwdph', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_snwdph) - call netcdf_err(error, 'DEFINING SNWDPH' ) - error = nf_def_var(ncid, 'shdmin', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_shdmin) - call netcdf_err(error, 'DEFINING SHDMIN' ) - error = nf_def_var(ncid, 'shdmax', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_shdmax) - call netcdf_err(error, 'DEFINING SHDMAX' ) - error = nf_def_var(ncid, 'slope', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_slope) - call netcdf_err(error, 'DEFINING SLOPE' ) - error = nf_def_var(ncid, 'snoalb', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_snoalb) - call netcdf_err(error, 'DEFINING SNOALB' ) - error = nf_def_var(ncid, 'stc', NF_FLOAT, 3, (/dim_lon,dim_lat,dim_lsoil/), id_stc) - call netcdf_err(error, 'DEFINING STC' ) - error = nf_def_var(ncid, 'smc', NF_FLOAT, 3, (/dim_lon,dim_lat,dim_lsoil/), id_smc) - call netcdf_err(error, 'DEFINING SMC' ) - error = nf_def_var(ncid, 'slc', NF_FLOAT, 3, (/dim_lon,dim_lat,dim_lsoil/), id_slc) - call netcdf_err(error, 'DEFINING SLC' ) - if (write_nsst) then - error = nf_def_var(ncid, 'tref', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_tref) - call netcdf_err(error, 'DEFINING TREF' ) - error = nf_def_var(ncid, 'z_c', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_z_c) - call netcdf_err(error, 'DEFINING Z_C' ) - error = nf_def_var(ncid, 'c_0', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_c_0) - call netcdf_err(error, 'DEFINING C_0' ) - error = nf_def_var(ncid, 'c_d', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_c_d) - call netcdf_err(error, 'DEFINING C_D' ) - error = nf_def_var(ncid, 'w_0', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_w_0) - call netcdf_err(error, 'DEFINING W_0' ) - error = nf_def_var(ncid, 'w_d', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_w_d) - call netcdf_err(error, 'DEFINING W_D' ) - error = nf_def_var(ncid, 'xt', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_xt) - call netcdf_err(error, 'DEFINING XT' ) - error = nf_def_var(ncid, 'xs', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_xs) - call netcdf_err(error, 'DEFINING XS' ) - error = nf_def_var(ncid, 'xu', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_xu) - call netcdf_err(error, 'DEFINING XU' ) - error = nf_def_var(ncid, 'xv', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_xv) - call netcdf_err(error, 'DEFINING XV' ) - error = nf_def_var(ncid, 'xz', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_xz) - call netcdf_err(error, 'DEFINING XZ' ) - error = nf_def_var(ncid, 'zm', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_zm) - call netcdf_err(error, 'DEFINING ZM' ) - error = nf_def_var(ncid, 'xtts', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_xtts) - call netcdf_err(error, 'DEFINING XTTS' ) - error = nf_def_var(ncid, 'xzts', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_xzts) - call netcdf_err(error, 'DEFINING XZTS' ) - error = nf_def_var(ncid, 'd_conv', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_d_conv) - call netcdf_err(error, 'DEFINING D_CONV' ) - error = nf_def_var(ncid, 'ifd', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_ifd) - call netcdf_err(error, 'DEFINING IFD' ) - error = nf_def_var(ncid, 'dt_cool', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_dt_cool) - call netcdf_err(error, 'DEFINING DT_COOL' ) - error = nf_def_var(ncid, 'qrain', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_qrain) - call netcdf_err(error, 'DEFINING QRAIN' ) - endif - - error = nf__enddef(ncid, header_buffer_val,4,0,4) - call netcdf_err(error, 'DEFINING HEADER' ) - - allocate(dum2d(lonb,latb)) - - dum2d = reshape(sfcoutput%lons, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_lon, dum2d(:,1)) - call netcdf_err(error, 'WRITING LON HEADER RECORD' ) - - dum2d = reshape(sfcoutput%lats, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_lat, dum2d(1,:)) - call netcdf_err(error, 'WRITING LAT HEADER RECORD' ) - - do i = 1, lsoil - lsoil_data(i) = float(i) - enddo - error = nf_put_var_real( ncid, id_lsoil, lsoil_data) - call netcdf_err(error, 'WRITING LSOIL HEADER' ) - - dum2d = reshape(sfcoutput%lons, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_geolon, dum2d) - call netcdf_err(error, 'WRITING GEOLON RECORD' ) - - dum2d = reshape(sfcoutput%lats, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_geolat, dum2d) - call netcdf_err(error, 'WRITING GEOLAT RECORD' ) - - dum2d = reshape(sfcoutput%lsmask, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_slmsk, dum2d) - call netcdf_err(error, 'WRITING SLMSK RECORD' ) - - dum2d = reshape(sfcoutput%skin_temp, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_tsea, dum2d) - call netcdf_err(error, 'WRITING TSEA RECORD' ) - - dum2d = reshape(sfcoutput%snow_liq_equiv, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_sheleg, dum2d) - call netcdf_err(error, 'WRITING SHELEG RECORD' ) - - dum2d = reshape(sfcoutput%substrate_temp, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_tg3, dum2d) - call netcdf_err(error, 'WRITING TG3 RECORD' ) - - dum2d = reshape(sfcoutput%z0, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_zorl, dum2d) - call netcdf_err(error, 'WRITING ZORL RECORD' ) - - dum2d = reshape(sfcoutput%alvsf, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_alvsf, dum2d) - call netcdf_err(error, 'WRITING ALVSF RECORD' ) - - dum2d = reshape(sfcoutput%alvwf, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_alvwf, dum2d) - call netcdf_err(error, 'WRITING ALVWF RECORD' ) - - dum2d = reshape(sfcoutput%alnsf, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_alnsf, dum2d) - call netcdf_err(error, 'WRITING ALNSF RECORD' ) - - dum2d = reshape(sfcoutput%alnwf, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_alnwf, dum2d) - call netcdf_err(error, 'WRITING ALNWF RECORD' ) - - dum2d = reshape(sfcoutput%greenfrc, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_vfrac, dum2d) - call netcdf_err(error, 'WRITING VFRAC RECORD' ) - - dum2d = reshape(sfcoutput%canopy_mc, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_canopy, dum2d) - call netcdf_err(error, 'WRITING CANOPY RECORD' ) - - dum2d = f10m - error = nf_put_var_real( ncid, id_f10m, dum2d) - call netcdf_err(error, 'WRITING F10M RECORD' ) - - dum2d = t2m - error = nf_put_var_real( ncid, id_t2m, dum2d) - call netcdf_err(error, 'WRITING T2M RECORD' ) - - dum2d = q2m - error = nf_put_var_real( ncid, id_q2m, dum2d) - call netcdf_err(error, 'WRITING Q2M RECORD' ) - - dum2d = reshape(float(sfcoutput%veg_type), (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_vtype, dum2d) - call netcdf_err(error, 'WRITING VTYPE RECORD' ) - - dum2d = reshape(float(sfcoutput%soil_type), (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_stype, dum2d) - call netcdf_err(error, 'WRITING STYPE RECORD' ) - - dum2d = reshape(sfcoutput%facsf, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_facsf, dum2d) - call netcdf_err(error, 'WRITING FACSF RECORD' ) - - dum2d = reshape(sfcoutput%facwf, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_facwf, dum2d) - call netcdf_err(error, 'WRITING FACWF RECORD' ) - - dum2d = uustar - error = nf_put_var_real( ncid, id_uustar, dum2d) - call netcdf_err(error, 'WRITING UUSTAR RECORD' ) - - dum2d = ffmm - error = nf_put_var_real( ncid, id_ffmm, dum2d) - call netcdf_err(error, 'WRITING FFMM RECORD' ) - - dum2d = ffhh - error = nf_put_var_real( ncid, id_ffhh, dum2d) - call netcdf_err(error, 'WRITING FFHH RECORD' ) - - dum2d = reshape(sfcoutput%sea_ice_depth, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_hice, dum2d) - call netcdf_err(error, 'WRITING HICE RECORD' ) - - dum2d = reshape(sfcoutput%sea_ice_fract, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_fice, dum2d) - call netcdf_err(error, 'WRITING FICE RECORD' ) - - dum2d = reshape(sfcoutput%sea_ice_temp, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_tisfc, dum2d) - call netcdf_err(error, 'WRITING TISFC RECORD' ) - - dum2d = tprcp - error = nf_put_var_real( ncid, id_tprcp, dum2d) - call netcdf_err(error, 'WRITING TPRCP RECORD' ) - - dum2d = srflag - error = nf_put_var_real( ncid, id_srflag, dum2d) - call netcdf_err(error, 'WRITING SRFLAG RECORD' ) - - dum2d = reshape(sfcoutput%snow_depth, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_snwdph, dum2d) - call netcdf_err(error, 'WRITING SNWDPH RECORD' ) - - dum2d = reshape(sfcoutput%greenfrc_min, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_shdmin, dum2d) - call netcdf_err(error, 'WRITING SHDMIN RECORD' ) - - dum2d = reshape(sfcoutput%greenfrc_max, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_shdmax, dum2d) - call netcdf_err(error, 'WRITING SHDMAX RECORD' ) - - dum2d = reshape(float(sfcoutput%slope_type), (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_slope, dum2d) - call netcdf_err(error, 'WRITING SLOPE RECORD' ) - - dum2d = reshape(sfcoutput%mxsnow_alb, (/lonb,latb/) ) - error = nf_put_var_real( ncid, id_snoalb, dum2d) - call netcdf_err(error, 'WRITING SNOALB RECORD' ) - - deallocate (dum2d) - - allocate(dum3d(lonb,latb,lsoil)) - - dum3d = reshape(sfcoutput%soil_temp, (/lonb,latb,lsoil/) ) - error = nf_put_var_real( ncid, id_stc, dum3d) - call netcdf_err(error, 'WRITING STC RECORD' ) - - dum3d = reshape(sfcoutput%soilm_tot, (/lonb,latb,lsoil/) ) - error = nf_put_var_real( ncid, id_smc, dum3d) - call netcdf_err(error, 'WRITING SMC RECORD' ) - - dum3d = reshape(sfcoutput%soilm_liq, (/lonb,latb,lsoil/) ) - error = nf_put_var_real( ncid, id_slc, dum3d) - call netcdf_err(error, 'WRITING SLC RECORD' ) - - deallocate (dum3d) - - if (write_nsst) then - - allocate(dum2d(lonb,latb)) - - dum2d = reshape(nsst_output(:,17), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_tref, dum2d) - call netcdf_err(error, 'WRITING TREF RECORD' ) - - dum2d = reshape(nsst_output(:,10), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_z_c, dum2d) - call netcdf_err(error, 'WRITING Z_C RECORD' ) - - dum2d = reshape(nsst_output(:,11), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_c_0, dum2d) - call netcdf_err(error, 'WRITING C_0 RECORD' ) - - dum2d = reshape(nsst_output(:,12), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_c_d, dum2d) - call netcdf_err(error, 'WRITING C_D RECORD' ) - - dum2d = reshape(nsst_output(:,13), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_w_0, dum2d) - call netcdf_err(error, 'WRITING W_0 RECORD' ) - - dum2d = reshape(nsst_output(:,14), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_w_d, dum2d) - call netcdf_err(error, 'WRITING W_D RECORD' ) - - dum2d = reshape(nsst_output(:,1), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_xt, dum2d) - call netcdf_err(error, 'WRITING XT RECORD' ) - - dum2d = reshape(nsst_output(:,2), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_xs, dum2d) - call netcdf_err(error, 'WRITING XS RECORD' ) - - dum2d = reshape(nsst_output(:,3), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_xu, dum2d) - call netcdf_err(error, 'WRITING XU RECORD' ) - - dum2d = reshape(nsst_output(:,4), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_xv, dum2d) - call netcdf_err(error, 'WRITING XV RECORD' ) - - dum2d = reshape(nsst_output(:,5), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_xz, dum2d) - call netcdf_err(error, 'WRITING XZ RECORD' ) - - dum2d = reshape(nsst_output(:,6), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_zm, dum2d) - call netcdf_err(error, 'WRITING ZM RECORD' ) - - dum2d = reshape(nsst_output(:,7), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_xtts, dum2d) - call netcdf_err(error, 'WRITING XTTS RECORD' ) - - dum2d = reshape(nsst_output(:,8), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_xzts, dum2d) - call netcdf_err(error, 'WRITING XZTS RECORD' ) - - dum2d = reshape(nsst_output(:,15), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_d_conv, dum2d) - call netcdf_err(error, 'WRITING D_CONV RECORD' ) - - dum2d = reshape(nsst_output(:,16), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_ifd, dum2d) - call netcdf_err(error, 'WRITING IFD RECORD' ) - - dum2d = reshape(nsst_output(:,9), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_dt_cool, dum2d) - call netcdf_err(error, 'WRITING DT_COOL RECORD' ) - - dum2d = reshape(nsst_output(:,18), (/lonb,latb/) ) - error = nf_put_var_real(ncid, id_qrain, dum2d) - call netcdf_err(error, 'WRITING QRAIN RECORD' ) - - deallocate(dum2d) - - endif - - error = nf_close(ncid) - - end subroutine write_fv3_sfc_data_netcdf - - SUBROUTINE READ_FV3_LATLON_NETCDF(TILE_NUM, IMO, JMO, GEOLON, GEOLAT) - - use netcdf - - IMPLICIT NONE - - include "netcdf.inc" - - INTEGER, INTENT(IN) :: TILE_NUM, IMO, JMO - - REAL, INTENT(OUT) :: GEOLON(IMO,JMO), GEOLAT(IMO,JMO) - - CHARACTER(LEN=256) :: TILEFILE - - INTEGER :: ERROR, ID_DIM, NCID, NX, NY - INTEGER :: ID_VAR - - REAL, ALLOCATABLE :: TMPVAR(:,:) - - WRITE(TILEFILE, "(A,I1)") "chgres.fv3.grd.t", TILE_NUM - - ERROR=NF90_OPEN(TRIM(TILEFILE),NF_NOWRITE,NCID) - CALL NETCDF_ERR(ERROR, 'OPENING FILE: '//TRIM(TILEFILE) ) - - ERROR=NF90_INQ_DIMID(NCID, 'nx', ID_DIM) - CALL NETCDF_ERR(ERROR, 'ERROR READING NX ID' ) - - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=NX) - CALL NETCDF_ERR(ERROR, 'ERROR READING NX' ) - - ERROR=NF90_INQ_DIMID(NCID, 'ny', ID_DIM) - CALL NETCDF_ERR(ERROR, 'ERROR READING NY ID' ) - - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=NY) - CALL NETCDF_ERR(ERROR, 'ERROR READING NY' ) - - IF ((NX/2) /= IMO .OR. (NY/2) /= JMO) THEN - PRINT*,'FATAL ERROR: DIMENSIONS IN GRID FILE WRONG.' - CALL ERREXIT(160) - ENDIF - - ALLOCATE(TMPVAR(NX,NY)) - - ERROR=NF90_INQ_VARID(NCID, 'x', ID_VAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING X ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, TMPVAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING X RECORD' ) - - GEOLON(1:IMO,1:JMO) = TMPVAR(2:NX:2,2:NY:2) - - ERROR=NF90_INQ_VARID(NCID, 'y', ID_VAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING Y ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, TMPVAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING Y RECORD' ) - - GEOLAT(1:IMO,1:JMO) = TMPVAR(2:NX:2,2:NY:2) - - DEALLOCATE(TMPVAR) - - ERROR = NF_CLOSE(NCID) - - END SUBROUTINE READ_FV3_LATLON_NETCDF - - SUBROUTINE READ_FV3_GRID_DIMS_NETCDF(TILE_NUM,IMO,JMO) - - use netcdf - - IMPLICIT NONE - - include "netcdf.inc" - - INTEGER, INTENT(IN) :: TILE_NUM - INTEGER, INTENT(OUT) :: IMO, JMO - - CHARACTER(LEN=256) :: TILEFILE - - INTEGER :: ERROR, NCID, ID_DIM - - IF (TILE_NUM < 10) THEN - WRITE(TILEFILE, "(A,I1)") "chgres.fv3.orog.t", TILE_NUM - ELSE - WRITE(TILEFILE, "(A,I2)") "chgres.fv3.orog.t", TILE_NUM - ENDIF - - PRINT*,'WILL READ GRID DIMENSIONS FROM: ', TRIM(TILEFILE) - - ERROR=NF90_OPEN(TRIM(TILEFILE),NF_NOWRITE,NCID) - CALL NETCDF_ERR(ERROR, 'OPENING: '//TRIM(TILEFILE) ) - - ERROR=NF90_INQ_DIMID(NCID, 'lon', ID_DIM) - CALL NETCDF_ERR(ERROR, 'READING LON ID' ) - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=IMO) - CALL NETCDF_ERR(ERROR, 'READING LON VALUE' ) - - PRINT*,'I-DIRECTION GRID DIM: ',IMO - - ERROR=NF90_INQ_DIMID(NCID, 'lat', ID_DIM) - CALL NETCDF_ERR(ERROR, 'READING LAT ID' ) - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=JMO) - CALL NETCDF_ERR(ERROR, 'READING LAT VALUE' ) - - PRINT*,'J-DIRECTION GRID DIM: ',JMO - - ERROR = NF_CLOSE(NCID) - - END SUBROUTINE READ_FV3_GRID_DIMS_NETCDF - - SUBROUTINE READ_FV3_GRID_DATA_NETCDF(FIELD,TILE_NUM,IMO,JMO,SFCDATA) - - use netcdf - - IMPLICIT NONE - - include "netcdf.inc" - - CHARACTER(LEN=*) :: FIELD - - INTEGER, INTENT(IN) :: IMO, JMO, TILE_NUM - - REAL, INTENT(OUT) :: SFCDATA(IMO,JMO) - - CHARACTER(LEN=256) :: TILEFILE - - INTEGER :: ERROR, NCID, LAT, LON, ID_DIM - INTEGER :: ID_VAR - - IF (TILE_NUM < 10) THEN - WRITE(TILEFILE, "(A,I1)") "chgres.fv3.orog.t", TILE_NUM - ELSE - WRITE(TILEFILE, "(A,I2)") "chgres.fv3.orog.t", TILE_NUM - ENDIF - - PRINT*,'WILL READ ',TRIM(FIELD), ' FROM: ', TRIM(TILEFILE) - - ERROR=NF90_OPEN(TRIM(TILEFILE),NF_NOWRITE,NCID) - CALL NETCDF_ERR(ERROR, 'OPENING: '//TRIM(TILEFILE) ) - - ERROR=NF90_INQ_DIMID(NCID, 'lon', ID_DIM) - CALL NETCDF_ERR(ERROR, 'READING LON ID' ) - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=LON) - CALL NETCDF_ERR(ERROR, 'READING LON VALUE' ) - - PRINT*,'LON IS ',LON - IF(LON/=IMO) THEN - PRINT*,'FATAL ERROR: I-DIMENSIONS DO NOT MATCH ',LON,IMO - CALL ERREXIT(101) - ENDIF - - ERROR=NF90_INQ_DIMID(NCID, 'lat', ID_DIM) - CALL NETCDF_ERR(ERROR, 'READING LAT ID' ) - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=LAT) - CALL NETCDF_ERR(ERROR, 'READING LAT VALUE' ) - - PRINT*,'LAT IS ',LAT - IF(LAT/=JMO) THEN - PRINT*,'FATAL ERROR: J-DIMENSIONS DO NOT MATCH ',LAT,JMO - CALL ERREXIT(102) - ENDIF - - ERROR=NF90_INQ_VARID(NCID, FIELD, ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING FIELD ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, SFCDATA) - CALL NETCDF_ERR(ERROR, 'READING FIELD' ) - - ERROR = NF_CLOSE(NCID) - - END SUBROUTINE READ_FV3_GRID_DATA_NETCDF - - SUBROUTINE WRITE_FV3_ATMS_BNDY_NETCDF(ZS,PS,T,W,U,V,Q,VCOORD,LONB,LATB,& - LEVSO,NTRACM,NVCOORD,HALO) - -!--------------------------------------------------------------------------- -! -! Output data along the four halo boundaries. The naming convention is -! based on point (1,1) being in the lower left corner of the grid: -! -! --------------- TOP --------------- -! | | -! | | -! LEFT | | RIGHT -! | | -! |PT(1,1) | -! ------------- BOTTOM -------------- -! -!--------------------------------------------------------------------------- - - use netcdf - - IMPLICIT NONE - - include "netcdf.inc" - - INTEGER, INTENT(IN) :: LONB, LATB, LEVSO, NTRACM - INTEGER, INTENT(IN) :: NVCOORD, HALO - - REAL, INTENT(IN) :: PS(LONB,LATB), ZS(LONB,LATB) - REAL, INTENT(IN) :: T(LONB,LATB,LEVSO), W(LONB,LATB,LEVSO) - REAL, INTENT(IN) :: U(LONB,LATB,LEVSO), V(LONB,LATB,LEVSO) - REAL, INTENT(IN) :: Q(LONB,LATB,LEVSO,NTRACM) - REAL, INTENT(IN) :: VCOORD(LEVSO+1,NVCOORD) - - CHARACTER(LEN=256) :: OUTFILE, TILEFILE - - INTEGER :: I, II, J, JJ, IHALO, JHALO, K - INTEGER :: HALO_P1, IM, JM, JM2, ID_VAR - INTEGER :: ID_I_BOTTOM, ID_J_BOTTOM - INTEGER :: ID_I_TOP, ID_J_TOP - INTEGER :: ID_I_RIGHT, ID_J_RIGHT - INTEGER :: ID_I_LEFT, ID_J_LEFT - INTEGER :: ID_I_W_BOTTOM, ID_J_W_BOTTOM - INTEGER :: ID_I_W_TOP, ID_J_W_TOP - INTEGER :: ID_I_W_RIGHT, ID_J_W_RIGHT - INTEGER :: ID_I_W_LEFT, ID_J_W_LEFT - INTEGER :: ID_I_S_BOTTOM, ID_J_S_BOTTOM - INTEGER :: ID_I_S_TOP, ID_J_S_TOP - INTEGER :: ID_I_S_RIGHT, ID_J_S_RIGHT - INTEGER :: ID_I_S_LEFT, ID_J_S_LEFT - INTEGER :: ID_PS_TOP, ID_PS_BOTTOM - INTEGER :: ID_PS_RIGHT, ID_PS_LEFT - INTEGER :: ID_SPHUM_TOP, ID_SPHUM_BOTTOM - INTEGER :: ID_SPHUM_RIGHT, ID_SPHUM_LEFT - INTEGER :: ID_CLWMR_TOP, ID_CLWMR_BOTTOM - INTEGER :: ID_CLWMR_RIGHT, ID_CLWMR_LEFT - INTEGER :: ID_O3MR_TOP, ID_O3MR_BOTTOM - INTEGER :: ID_O3MR_RIGHT, ID_O3MR_LEFT - INTEGER :: ID_W_TOP, ID_W_BOTTOM - INTEGER :: ID_W_RIGHT, ID_W_LEFT - INTEGER :: ID_ZH_TOP, ID_ZH_BOTTOM - INTEGER :: ID_ZH_RIGHT, ID_ZH_LEFT - INTEGER :: ID_U_S_TOP, ID_U_S_BOTTOM - INTEGER :: ID_U_S_RIGHT, ID_U_S_LEFT - INTEGER :: ID_U_W_TOP, ID_U_W_BOTTOM - INTEGER :: ID_U_W_RIGHT, ID_U_W_LEFT - INTEGER :: ID_V_S_TOP, ID_V_S_BOTTOM - INTEGER :: ID_V_S_RIGHT, ID_V_S_LEFT - INTEGER :: ID_V_W_TOP, ID_V_W_BOTTOM - INTEGER :: ID_V_W_RIGHT, ID_V_W_LEFT - INTEGER :: ERROR, ID_DIM, NX, NY, NCID, NCID2 - INTEGER :: DIM_HALO, DIM_HALOP, DIM_LON, DIM_LAT - INTEGER :: DIM_LATM, DIM_LONP - INTEGER :: DIM_LEV, DIM_LEVP - INTEGER :: ISTART, IEND, JSTART, JEND - INTEGER :: LEVSO_P1 - INTEGER :: INITAL=0, FSIZE=65536 - INTEGER :: HEADER_BUFFER_VAL = 16384 - INTEGER, ALLOCATABLE :: IDUM(:) - - REAL, ALLOCATABLE :: GEOLAT(:,:), GEOLON(:,:) - REAL, ALLOCATABLE :: GEOLAT_HALO(:,:), GEOLON_HALO(:,:) - REAL, ALLOCATABLE :: HALO_2D(:,:), HALO_3D(:,:,:), HALO_3D2(:,:,:) - REAL, ALLOCATABLE :: AK(:), BK(:), ZH(:,:,:) - - REAL(KIND=4), ALLOCATABLE :: HALO_2D_4BYTE(:,:) - REAL(KIND=4), ALLOCATABLE :: HALO_3D_4BYTE(:,:,:) - - print*,'' - print*,'- COMPUTE AND OUTPUT LATERAL BOUNDARY DATA.' - - HALO_P1 = HALO + 1 - - LEVSO_P1 = LEVSO + 1 - - ALLOCATE(AK(LEVSO_P1)) - ALLOCATE(BK(LEVSO_P1)) - ALLOCATE(ZH(LONB,LATB,LEVSO_P1)) - - AK = VCOORD(:,1) - BK = VCOORD(:,2) - - CALL COMPUTE_ZH(LONB,LATB,LEVSO,AK,BK,PS,ZS,T,Q,ZH) - - DEALLOCATE(AK, BK) - -!---------------------------------------------------------------------------------- -! Read FV3 grid file. This routine only works for a regional domain -! and assumes that domain is tile number 7. -!---------------------------------------------------------------------------------- - - TILEFILE="chgres.fv3.grd.t7" - - PRINT*, "READ FV3 GRID INFO FROM: "//TRIM(TILEFILE) - - ERROR=NF90_OPEN(TRIM(TILEFILE),NF_NOWRITE,NCID) - CALL NETCDF_ERR(ERROR, 'OPENING FILE: '//TRIM(TILEFILE) ) - - ERROR=NF90_INQ_DIMID(NCID, 'nx', ID_DIM) - CALL NETCDF_ERR(ERROR, 'ERROR READING NX ID' ) - - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=NX) - CALL NETCDF_ERR(ERROR, 'ERROR READING NX' ) - - ERROR=NF90_INQ_DIMID(NCID, 'ny', ID_DIM) - CALL NETCDF_ERR(ERROR, 'ERROR READING NY ID' ) - - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=NY) - CALL NETCDF_ERR(ERROR, 'ERROR READING NY' ) - - IF (MOD(NX,2) /= 0) THEN - PRINT*,'FATAL ERROR: NX IS NOT EVEN' - CALL ERREXIT(130) - ENDIF - - IF (MOD(NY,2) /= 0) THEN - PRINT*,'FATAL ERROR: NY IS NOT EVEN' - CALL ERREXIT(131) - ENDIF - - IM = NX/2 - JM = NY/2 - - ALLOCATE(GEOLON(NX+1,NY+1)) - ALLOCATE(GEOLAT(NX+1,NY+1)) - - ERROR=NF90_INQ_VARID(NCID, 'x', ID_VAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING X ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, GEOLON) - CALL NETCDF_ERR(ERROR, 'ERROR READING X RECORD' ) - - ERROR=NF90_INQ_VARID(NCID, 'y', ID_VAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING Y ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, GEOLAT) - CALL NETCDF_ERR(ERROR, 'ERROR READING Y RECORD' ) - - ERROR = NF_CLOSE(NCID2) - -!---------------------------------------------------------------------------------- -! Create output file header. -!---------------------------------------------------------------------------------- - - WRITE(OUTFILE, '(A, I1, A)'), 'gfs_bndy.tile', 7, '.nc' - ERROR = NF__CREATE(OUTFILE, IOR(NF_NETCDF4,NF_CLASSIC_MODEL),INITAL, FSIZE, NCID2) - CALL NETCDF_ERR(ERROR, 'CREATING FILE: '//TRIM(OUTFILE) ) - - ERROR = NF90_DEF_DIM(NCID2, 'lon', IM, DIM_LON) - CALL NETCDF_ERR(ERROR, 'DEFINING LON DIMENSION') - - JM2 = JM - (2*HALO) - ERROR = NF90_DEF_DIM(NCID2, 'lat', JM2, DIM_LAT) - CALL NETCDF_ERR(ERROR, 'DEFINING LAT DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'lonp', (IM+1), DIM_LONP) - CALL NETCDF_ERR(ERROR, 'DEFINING LONP DIMENSION') - - JM2 = (JM + 1) - (2*HALO_P1) - ERROR = NF90_DEF_DIM(NCID2, 'latm', JM2, DIM_LATM) - CALL NETCDF_ERR(ERROR, 'DEFINING LATM DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'halo', HALO, DIM_HALO) - CALL NETCDF_ERR(ERROR, 'DEFINING HALO DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'halop', HALO_P1, DIM_HALOP) - CALL NETCDF_ERR(ERROR, 'DEFINING HALOP DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'lev', LEVSO, DIM_LEV) - CALL NETCDF_ERR(ERROR, 'DEFINING LEV DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'levp', LEVSO_P1, DIM_LEVP) - CALL NETCDF_ERR(ERROR, 'DEFINING LEVP DIMENSION') - - ERROR = NF90_DEF_VAR(NCID2, 'i_bottom', NF90_INT, & - (/DIM_LON/), ID_I_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING I_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'j_bottom', NF90_INT, & - (/DIM_HALO/), ID_J_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING J_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'i_top', NF90_INT, & - (/DIM_LON/), ID_I_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING I_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'j_top', NF90_INT, & - (/DIM_HALO/), ID_J_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING J_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'i_right', NF90_INT, & - (/DIM_HALO/), ID_I_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING I_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'j_right', NF90_INT, & - (/DIM_LAT/), ID_J_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING J_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'i_left', NF90_INT, & - (/DIM_HALO/), ID_I_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING I_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'j_left', NF90_INT, & - (/DIM_LAT/), ID_J_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING J_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'ps_bottom', NF90_FLOAT, & - (/DIM_LON, DIM_HALO/), ID_PS_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING PS_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'ps_top', NF90_FLOAT, & - (/DIM_LON, DIM_HALO/), ID_PS_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING PS_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'ps_right', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT/), ID_PS_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING PS_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'ps_left', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT/), ID_PS_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING PS_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'w_bottom', NF90_FLOAT, & - (/DIM_LON, DIM_HALO, DIM_LEV/), ID_W_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING W_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'w_top', NF90_FLOAT, & - (/DIM_LON, DIM_HALO, DIM_LEV/), ID_W_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING W_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'w_right', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT, DIM_LEV/), ID_W_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING W_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'w_left', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT, DIM_LEV/), ID_W_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING W_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'zh_bottom', NF90_FLOAT, & - (/DIM_LON, DIM_HALO, DIM_LEVP/), ID_ZH_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING ZH_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'zh_top', NF90_FLOAT, & - (/DIM_LON, DIM_HALO, DIM_LEVP/), ID_ZH_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING ZH_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'zh_right', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT, DIM_LEVP/), ID_ZH_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING ZH_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'zh_left', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT, DIM_LEVP/), ID_ZH_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING ZH_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'sphum_bottom', NF90_FLOAT, & - (/DIM_LON, DIM_HALO, DIM_LEV/), ID_SPHUM_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING SPHUM_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'sphum_top', NF90_FLOAT, & - (/DIM_LON, DIM_HALO, DIM_LEV/), ID_SPHUM_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING SPHUM_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'sphum_right', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT, DIM_LEV/), ID_SPHUM_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING SPHUM_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'sphum_left', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT, DIM_LEV/), ID_SPHUM_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING SPHUM_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'o3mr_bottom', NF90_FLOAT, & - (/DIM_LON, DIM_HALO, DIM_LEV/), ID_O3MR_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING O3MR_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'o3mr_top', NF90_FLOAT, & - (/DIM_LON, DIM_HALO, DIM_LEV/), ID_O3MR_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING O3MR_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'o3mr_right', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT, DIM_LEV/), ID_O3MR_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING O3MR_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'o3mr_left', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT, DIM_LEV/), ID_O3MR_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING O3MR_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'liq_wat_bottom', NF90_FLOAT, & - (/DIM_LON, DIM_HALO, DIM_LEV/), ID_CLWMR_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING LIQ_WAT_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'liq_wat_top', NF90_FLOAT, & - (/DIM_LON, DIM_HALO, DIM_LEV/), ID_CLWMR_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING LIQ_WAT_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'liq_wat_right', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT, DIM_LEV/), ID_CLWMR_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING LIQ_WAT_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'liq_wat_left', NF90_FLOAT, & - (/DIM_HALO, DIM_LAT, DIM_LEV/), ID_CLWMR_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING LIQ_WAT_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'i_w_bottom', NF90_INT, & - (/DIM_LONP/), ID_I_W_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING I_W_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'j_w_bottom', NF90_INT, & - (/DIM_HALO/), ID_J_W_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING J_W_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'i_w_top', NF90_INT, & - (/DIM_LONP/), ID_I_W_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING I_W_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'j_w_top', NF90_INT, & - (/DIM_HALO/), ID_J_W_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING J_W_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'i_w_right', NF90_INT, & - (/DIM_HALOP/), ID_I_W_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING I_W_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'j_w_right', NF90_INT, & - (/DIM_LAT/), ID_J_W_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING J_W_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'i_w_left', NF90_INT, & - (/DIM_HALOP/), ID_I_W_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING I_W_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'j_w_left', NF90_INT, & - (/DIM_LAT/), ID_J_W_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING J_W_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'u_w_bottom', NF90_FLOAT, & - (/DIM_LONP, DIM_HALO, DIM_LEV/), ID_U_W_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING U_W_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'u_w_top', NF90_FLOAT, & - (/DIM_LONP, DIM_HALO, DIM_LEV/), ID_U_W_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING U_W_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'u_w_right', NF90_FLOAT, & - (/DIM_HALOP, DIM_LAT, DIM_LEV/), ID_U_W_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING U_W_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'u_w_left', NF90_FLOAT, & - (/DIM_HALOP, DIM_LAT, DIM_LEV/), ID_U_W_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING U_W_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'v_w_bottom', NF90_FLOAT, & - (/DIM_LONP, DIM_HALO, DIM_LEV/), ID_V_W_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING V_W_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'v_w_top', NF90_FLOAT, & - (/DIM_LONP, DIM_HALO, DIM_LEV/), ID_V_W_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING V_W_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'v_w_right', NF90_FLOAT, & - (/DIM_HALOP, DIM_LAT, DIM_LEV/), ID_V_W_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING V_W_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'v_w_left', NF90_FLOAT, & - (/DIM_HALOP, DIM_LAT, DIM_LEV/), ID_V_W_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING V_W_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'i_s_bottom', NF90_INT, & - (/DIM_LON/), ID_I_S_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING I_S_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'j_s_bottom', NF90_INT, & - (/DIM_HALOP/), ID_J_S_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING J_S_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'i_s_top', NF90_INT, & - (/DIM_LON/), ID_I_S_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING I_S_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'j_s_top', NF90_INT, & - (/DIM_HALOP/), ID_J_S_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING J_S_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'i_s_right', NF90_INT, & - (/DIM_HALO/), ID_I_S_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING I_S_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'j_s_right', NF90_INT, & - (/DIM_LATM/), ID_J_S_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING J_S_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'i_s_left', NF90_INT, & - (/DIM_HALO/), ID_I_S_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING I_S_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'j_s_left', NF90_INT, & - (/DIM_LATM/), ID_J_S_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING J_S_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'u_s_bottom', NF90_FLOAT, & - (/DIM_LON, DIM_HALOP, DIM_LEV/), ID_U_S_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING U_S_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'u_s_top', NF90_FLOAT, & - (/DIM_LON, DIM_HALOP, DIM_LEV/), ID_U_S_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING U_S_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'u_s_right', NF90_FLOAT, & - (/DIM_HALO, DIM_LATM, DIM_LEV/), ID_U_S_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING U_S_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'u_s_left', NF90_FLOAT, & - (/DIM_HALO, DIM_LATM, DIM_LEV/), ID_U_S_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING U_S_LEFT') - - ERROR = NF90_DEF_VAR(NCID2, 'v_s_bottom', NF90_FLOAT, & - (/DIM_LON, DIM_HALOP, DIM_LEV/), ID_V_S_BOTTOM) - CALL NETCDF_ERR(ERROR, 'DEFINING V_S_BOTTOM') - - ERROR = NF90_DEF_VAR(NCID2, 'v_s_top', NF90_FLOAT, & - (/DIM_LON, DIM_HALOP, DIM_LEV/), ID_V_S_TOP) - CALL NETCDF_ERR(ERROR, 'DEFINING V_S_TOP') - - ERROR = NF90_DEF_VAR(NCID2, 'v_s_right', NF90_FLOAT, & - (/DIM_HALO, DIM_LATM, DIM_LEV/), ID_V_S_RIGHT) - CALL NETCDF_ERR(ERROR, 'DEFINING V_S_RIGHT') - - ERROR = NF90_DEF_VAR(NCID2, 'v_s_left', NF90_FLOAT, & - (/DIM_HALO, DIM_LATM, DIM_LEV/), ID_V_S_LEFT) - CALL NETCDF_ERR(ERROR, 'DEFINING V_S_LEFT') - - ERROR = NF__ENDDEF(NCID2, HEADER_BUFFER_VAL, 4, 0, 4) - CALL NETCDF_ERR(ERROR, 'DEFINING END OF HEADER') - -!---------------------------------------------------------------------------------- -! "Bottom" boundary. -!---------------------------------------------------------------------------------- - - ISTART = 1 - IEND = IM - JSTART = 1 - JEND = HALO - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_BOTTOM, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_BOTTOM') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_BOTTOM, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_BOTTOM') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = 2*I - JJ = 2*J - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_2D(ISTART:IEND,JSTART:JEND)) - ALLOCATE(HALO_2D_4BYTE(ISTART:IEND,JSTART:JEND)) - - CALL GL2ANY(0, 1, PS, LONB, LATB, HALO_2D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - HALO_2D_4BYTE = REAL(HALO_2D,4) - - ERROR = NF90_PUT_VAR(NCID2, ID_PS_BOTTOM, HALO_2D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING PS_BOTTOM') - - DEALLOCATE(HALO_2D, HALO_2D_4BYTE) - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANY(0, LEVSO, Q(:,:,:,1), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_SPHUM_BOTTOM, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING SPHUM_BOTTOM') - - CALL GL2ANY(0, LEVSO, Q(:,:,:,2), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_O3MR_BOTTOM, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING O3MR_BOTTOM') - - CALL GL2ANY(0, LEVSO, Q(:,:,:,3), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_CLWMR_BOTTOM, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING LIQ_WAT_BOTTOM') - - CALL GL2ANY(0, LEVSO, W, LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_W_BOTTOM, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING W_BOTTOM') - - DEALLOCATE(HALO_3D, HALO_3D_4BYTE) - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO_P1)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO_P1)) - - CALL GL2ANY(0, LEVSO_P1, ZH, LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO_P1 - HALO_3D_4BYTE(:,:,LEVSO_P1-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_ZH_BOTTOM, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING ZH_BOTTOM') - - DEALLOCATE(HALO_3D, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - - ISTART = 1 - IEND = IM+1 - JSTART = 1 - JEND = HALO - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_W_BOTTOM, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_W_BOTTOM') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_W_BOTTOM, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_W_BOTTOM') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = (2*I)-1 - JJ = 2*J - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D2(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANYV(0, LEVSO, U, V, LONB, LATB, HALO_3D, HALO_3D2, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_U_W_BOTTOM, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING U_W_BOTTOM') - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D2(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_V_W_BOTTOM, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING V_W_BOTTOM') - - DEALLOCATE(HALO_3D, HALO_3D2, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - - ISTART = 1 - IEND = IM - JSTART = 1 - JEND = HALO + 1 - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_S_BOTTOM, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_S_BOTTOM') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_S_BOTTOM, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_S_BOTTOM') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = 2*I - JJ = (2*J) - 1 - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D2(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANYV(0, LEVSO, U, V, LONB, LATB, HALO_3D, HALO_3D2, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_U_S_BOTTOM, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING U_S_BOTTOM') - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D2(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_V_S_BOTTOM, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING V_S_BOTTOM') - - DEALLOCATE(HALO_3D, HALO_3D2, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - -!---------------------------------------------------------------------------------- -! "Top" boundary. -!---------------------------------------------------------------------------------- - - ISTART = 1 - IEND = IM - JSTART = JM - HALO + 1 - JEND = JM - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_TOP, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_TOP') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_TOP, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_TOP') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = 2*I - JJ = 2*J - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_2D(ISTART:IEND,JSTART:JEND)) - ALLOCATE(HALO_2D_4BYTE(ISTART:IEND,JSTART:JEND)) - - CALL GL2ANY(0, 1, PS, LONB, LATB, HALO_2D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - HALO_2D_4BYTE = REAL(HALO_2D,4) - - ERROR = NF90_PUT_VAR(NCID2, ID_PS_TOP, HALO_2D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING PS_TOP') - - DEALLOCATE(HALO_2D, HALO_2D_4BYTE) - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANY(0, LEVSO, Q(:,:,:,1), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_SPHUM_TOP, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING SPHUM_TOP') - - CALL GL2ANY(0, LEVSO, Q(:,:,:,2), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_O3MR_TOP, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING O3MR_TOP') - - CALL GL2ANY(0, LEVSO, Q(:,:,:,3), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_CLWMR_TOP, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING CLWMR_TOP') - - CALL GL2ANY(0, LEVSO, W, LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_W_TOP, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING W_TOP') - - DEALLOCATE(HALO_3D, HALO_3D_4BYTE) - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO_P1)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO_P1)) - - CALL GL2ANY(0, LEVSO_P1, ZH, LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO_P1 - HALO_3D_4BYTE(:,:,LEVSO_P1-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_ZH_TOP, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING ZH_TOP') - - DEALLOCATE(HALO_3D, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - - ISTART = 1 - IEND = IM+1 - JSTART = JM - HALO + 1 - JEND = JM - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_W_TOP, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_W_TOP') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_W_TOP, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_W_TOP') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = (2*I)-1 - JJ = 2*J - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D2(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANYV(0, LEVSO, U, V, LONB, LATB, HALO_3D, HALO_3D2, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_U_W_TOP, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING U_W_TOP') - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D2(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_V_W_TOP, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING V_W_TOP') - - DEALLOCATE(HALO_3D, HALO_3D2, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - - ISTART = 1 - IEND = IM - JSTART = JM - HALO + 1 - JEND = JM + 1 - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_S_TOP, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_S_TOP') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_S_TOP, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_S_TOP') - - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = 2*I - JJ = (2*J) - 1 - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D2(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANYV(0, LEVSO, U, V, LONB, LATB, HALO_3D, HALO_3D2, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_U_S_TOP, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING U_S_TOP') - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D2(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_V_S_TOP, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING V_S_TOP') - - DEALLOCATE(HALO_3D, HALO_3D2, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - -!---------------------------------------------------------------------------------- -! "Left" boundary. -!---------------------------------------------------------------------------------- - - ISTART = 1 - IEND = HALO - JSTART = HALO + 1 - JEND = JM - HALO - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_LEFT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_LEFT') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_LEFT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_LEFT') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = 2*I - JJ = 2*J - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_2D(ISTART:IEND,JSTART:JEND)) - ALLOCATE(HALO_2D_4BYTE(ISTART:IEND,JSTART:JEND)) - - CALL GL2ANY(0, 1, PS, LONB, LATB, HALO_2D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - HALO_2D_4BYTE = REAL(HALO_2D,4) - - ERROR = NF90_PUT_VAR(NCID2, ID_PS_LEFT, HALO_2D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING PS_LEFT') - - DEALLOCATE(HALO_2D, HALO_2D_4BYTE) - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANY(0, LEVSO, Q(:,:,:,1), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_SPHUM_LEFT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING SPHUM_LEFT') - - CALL GL2ANY(0, LEVSO, Q(:,:,:,2), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_O3MR_LEFT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING O3MR_LEFT') - - CALL GL2ANY(0, LEVSO, Q(:,:,:,3), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_CLWMR_LEFT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING CLWMR_LEFT') - - CALL GL2ANY(0, LEVSO, W, LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_W_LEFT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING W_LEFT') - - DEALLOCATE(HALO_3D, HALO_3D_4BYTE) - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO_P1)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO_P1)) - - CALL GL2ANY(0, LEVSO_P1, ZH, LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO_P1 - HALO_3D_4BYTE(:,:,LEVSO_P1-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_ZH_LEFT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING ZH_LEFT') - - DEALLOCATE(HALO_3D, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - - ISTART = 1 - IEND = HALO + 1 - JSTART = HALO + 1 - JEND = JM - HALO - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_W_LEFT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_W_LEFT') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_W_LEFT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_W_LEFT') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = (2*I)-1 - JJ = 2*J - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D2(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANYV(0, LEVSO, U, V, LONB, LATB, HALO_3D, HALO_3D2, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_U_W_LEFT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING U_W_LEFT') - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D2(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_V_W_LEFT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING V_W_LEFT') - - DEALLOCATE(HALO_3D, HALO_3D2, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - - ISTART = 1 - IEND = HALO - JSTART = HALO_P1 + 1 - JEND = JM + 1 - HALO_P1 - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_S_LEFT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_S_LEFT') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_S_LEFT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_S_LEFT') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = 2*I - JJ = (2*J) - 1 - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D2(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANYV(0, LEVSO, U, V, LONB, LATB, HALO_3D, HALO_3D2, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_U_S_LEFT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING U_S_LEFT') - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D2(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_V_S_LEFT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING V_S_LEFT') - - DEALLOCATE(HALO_3D, HALO_3D2, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - -!---------------------------------------------------------------------------------- -! "Right" boundary. -!---------------------------------------------------------------------------------- - - ISTART = IM - HALO + 1 - IEND = IM - JSTART = HALO + 1 - JEND = JM - HALO - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_RIGHT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_RIGHT') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_RIGHT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_RIGHT') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = 2*I - JJ = 2*J - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_2D(ISTART:IEND,JSTART:JEND)) - ALLOCATE(HALO_2D_4BYTE(ISTART:IEND,JSTART:JEND)) - - CALL GL2ANY(0, 1, PS, LONB, LATB, HALO_2D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - HALO_2D_4BYTE = REAL(HALO_2D,4) - - ERROR = NF90_PUT_VAR(NCID2, ID_PS_RIGHT, HALO_2D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING PS_RIGHT') - - DEALLOCATE(HALO_2D, HALO_2D_4BYTE) - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANY(0, LEVSO, Q(:,:,:,1), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_SPHUM_RIGHT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING SPHUM_RIGHT') - - CALL GL2ANY(0, LEVSO, Q(:,:,:,2), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_O3MR_RIGHT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING O3MR_RIGHT') - - CALL GL2ANY(0, LEVSO, Q(:,:,:,3), LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_CLWMR_RIGHT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING CLWMR_RIGHT') - - CALL GL2ANY(0, LEVSO, W, LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_W_RIGHT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING W_RIGHT') - - DEALLOCATE(HALO_3D, HALO_3D_4BYTE) - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO_P1)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO_P1)) - - CALL GL2ANY(0, LEVSO_P1, ZH, LONB, LATB, HALO_3D, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - DO K = 1, LEVSO_P1 - HALO_3D_4BYTE(:,:,LEVSO_P1-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_ZH_RIGHT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING ZH_RIGHT') - - DEALLOCATE(HALO_3D, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - - ISTART = IM - HALO + 1 - IEND = IM + 1 - JSTART = HALO + 1 - JEND = JM - HALO - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_W_RIGHT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_W_RIGHT') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_W_RIGHT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_W_RIGHT') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = (2*I)-1 - JJ = 2*J - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D2(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANYV(0, LEVSO, U, V, LONB, LATB, HALO_3D, HALO_3D2, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_U_W_RIGHT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING U_W_RIGHT') - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D2(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_V_W_RIGHT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING V_W_RIGHT') - - DEALLOCATE(HALO_3D, HALO_3D2, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - - ISTART = IM - HALO + 1 - IEND = IM - JSTART = HALO_P1 + 1 - JEND = JM + 1 - HALO_P1 - - IHALO = IEND - ISTART + 1 - JHALO = JEND - JSTART + 1 - - ALLOCATE(IDUM(ISTART:IEND)) - DO I = ISTART, IEND - IDUM(I) = I - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_I_S_RIGHT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING I_S_RIGHT') - DEALLOCATE(IDUM) - - ALLOCATE(IDUM(JSTART:JEND)) - DO J = JSTART, JEND - IDUM(J) = J - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_J_S_RIGHT, IDUM) - CALL NETCDF_ERR(ERROR, 'WRITING J_S_RIGHT') - DEALLOCATE(IDUM) - - ALLOCATE(GEOLAT_HALO(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_HALO(ISTART:IEND,JSTART:JEND)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = 2*I - JJ = (2*J) - 1 - GEOLON_HALO(I,J) = GEOLON(II,JJ) - GEOLAT_HALO(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - ALLOCATE(HALO_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(HALO_3D2(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANYV(0, LEVSO, U, V, LONB, LATB, HALO_3D, HALO_3D2, IHALO, JHALO, GEOLON_HALO, GEOLAT_HALO) - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_U_S_RIGHT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING U_S_RIGHT') - - DO K = 1, LEVSO - HALO_3D_4BYTE(:,:,LEVSO-K+1) = REAL(HALO_3D2(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_V_S_RIGHT, HALO_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING V_S_RIGHT') - - DEALLOCATE(HALO_3D, HALO_3D2, HALO_3D_4BYTE) - DEALLOCATE(GEOLAT_HALO, GEOLON_HALO) - -!---------------------------------------------------------------------------------- -! Cleanup and close file. -!---------------------------------------------------------------------------------- - - DEALLOCATE(GEOLAT) - DEALLOCATE(GEOLON) - - ERROR = NF_CLOSE(NCID2) - - END SUBROUTINE WRITE_FV3_ATMS_BNDY_NETCDF - - SUBROUTINE WRITE_FV3_ATMS_NETCDF(ZS,PS,T,W,U,V,Q,VCOORD,LONB,LATB,& - LEVSO,NTRACM,NVCOORD,NTILES,HALO) - - use netcdf - - IMPLICIT NONE - - include "netcdf.inc" - - INTEGER, INTENT(IN) :: NTILES, LONB, LATB, LEVSO, NTRACM - INTEGER, INTENT(IN) :: NVCOORD, HALO - - REAL, INTENT(IN) :: PS(LONB,LATB), ZS(LONB,LATB) - REAL, INTENT(IN) :: T(LONB,LATB,LEVSO), W(LONB,LATB,LEVSO) - REAL, INTENT(IN) :: U(LONB,LATB,LEVSO), V(LONB,LATB,LEVSO) - REAL, INTENT(IN) :: Q(LONB,LATB,LEVSO,NTRACM) - REAL, INTENT(IN) :: VCOORD(LEVSO+1,NVCOORD) - - CHARACTER(LEN=256) :: TILEFILE, OUTFILE - - INTEGER :: ID_DIM, ID_VAR, IM, JM - INTEGER :: ERROR, N, NCID, NCID2, NX, NY - INTEGER :: INITAL=0, FSIZE=65536 - INTEGER :: HEADER_BUFFER_VAL = 16384 - INTEGER :: DIM_LON, DIM_LAT, DIM_LONP, DIM_LATP - INTEGER :: DIM_LEV, DIM_LEVP, DIM_TRACER - INTEGER :: ID_LON, ID_LAT, ID_PS - INTEGER :: ID_W, ID_ZH, ID_SPHUM, ID_O3MR - INTEGER :: ID_CLWMR, ID_U_W, ID_V_W - INTEGER :: ID_U_S, ID_V_S, K, LEVSO_P1 - INTEGER :: I, J, II, JJ - INTEGER :: ISTART, IEND, JSTART, JEND, IM_OUT, JM_OUT - INTEGER :: START_TILE, END_TILE - - REAL, ALLOCATABLE :: CUBE_2D(:,:), CUBE_3D(:,:,:), CUBE_3D2(:,:,:) - REAL, ALLOCATABLE :: AK(:), BK(:), ZH(:,:,:) - REAL, ALLOCATABLE :: GEOLAT(:,:), GEOLAT_W(:,:), GEOLAT_S(:,:) - REAL, ALLOCATABLE :: GEOLON(:,:), GEOLON_W(:,:) - REAL, ALLOCATABLE :: GEOLON_S(:,:), TMPVAR(:,:) - - REAL(KIND=4), ALLOCATABLE :: CUBE_2D_4BYTE(:,:) - REAL(KIND=4), ALLOCATABLE :: CUBE_3D_4BYTE(:,:,:) - - LEVSO_P1 = LEVSO + 1 - - CALL WRITE_FV3_ATMS_HEADER_NETCDF(LEVSO_P1, NTRACM, NVCOORD, VCOORD) - - ALLOCATE(AK(LEVSO_P1)) - ALLOCATE(BK(LEVSO_P1)) - ALLOCATE(ZH(LONB,LATB,(LEVSO_P1))) - - AK = VCOORD(:,1) - BK = VCOORD(:,2) - - CALL COMPUTE_ZH(LONB,LATB,LEVSO,AK,BK,PS,ZS,T,Q,ZH) - - DEALLOCATE(AK, BK) - - PRINT*,'' - - IF (HALO == 0) THEN ! NOT A REGIONAL GRID - START_TILE = 1 - END_TILE = NTILES - ELSE ! A REGIONAL GRID. ASSUME IT IS TILE 7. - START_TILE = 7 - END_TILE = 7 - ENDIF - - TILE_LOOP : DO N = START_TILE, END_TILE - - PRINT*,'WRITE FV3 ATMOSPHERIC DATA FOR TILE ',N - - IF (N < 10) THEN - WRITE(TILEFILE, "(A,I1)") "chgres.fv3.grd.t", N - ELSE - WRITE(TILEFILE, "(A,I2)") "chgres.fv3.grd.t", N - ENDIF - - ERROR=NF90_OPEN(TRIM(TILEFILE),NF_NOWRITE,NCID) - CALL NETCDF_ERR(ERROR, 'OPENING FILE: '//TRIM(TILEFILE) ) - - ERROR=NF90_INQ_DIMID(NCID, 'nx', ID_DIM) - CALL NETCDF_ERR(ERROR, 'ERROR READING NX ID' ) - - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=NX) - CALL NETCDF_ERR(ERROR, 'ERROR READING NX' ) - - ERROR=NF90_INQ_DIMID(NCID, 'ny', ID_DIM) - CALL NETCDF_ERR(ERROR, 'ERROR READING NY ID' ) - - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=NY) - CALL NETCDF_ERR(ERROR, 'ERROR READING NY' ) - - IF (MOD(NX,2) /= 0) THEN - PRINT*,'FATAL ERROR: NX IS NOT EVEN' - CALL ERREXIT(103) - ENDIF - - IF (MOD(NY,2) /= 0) THEN - PRINT*,'FATAL ERROR: NY IS NOT EVEN' - CALL ERREXIT(104) - ENDIF - - IM = NX/2 - JM = NY/2 - - IF (HALO > 0) THEN - ISTART = 1 + HALO - IEND = IM - HALO - JSTART = 1+ HALO - JEND = JM - HALO - PRINT*,'' - PRINT*,"WILL NOT PROCESS HALO REGION." - PRINT*,"HALO IS ", HALO, " ROWS/COLUMNS" - PRINT*,"WILL PROCESS I= ", ISTART, " TO ", IEND - PRINT*,"WILL PROCESS J= ", JSTART, " TO ", JEND - PRINT*,'' - ELSE - ISTART = 1 - IEND = IM - JSTART = 1 - JEND = JM - ENDIF - - IM_OUT = IEND - ISTART + 1 - JM_OUT = JEND - JSTART +1 - - PRINT*, "READ FV3 GRID INFO FROM: "//TRIM(TILEFILE) - - ALLOCATE(TMPVAR(NX+1,NY+1)) - ALLOCATE(GEOLON(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLON_W(ISTART:IEND+1,JSTART:JEND)) - ALLOCATE(GEOLON_S(ISTART:IEND,JSTART:JEND+1)) - - ERROR=NF90_INQ_VARID(NCID, 'x', ID_VAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING X ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, TMPVAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING X RECORD' ) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = 2*I - JJ = 2*J - GEOLON(I,J) = TMPVAR(II,JJ) - ENDDO - ENDDO - - DO J = JSTART, JEND - DO I = ISTART, IEND+1 - II = (2*I) - 1 - JJ = 2*J - GEOLON_W(I,J) = TMPVAR(II,JJ) - ENDDO - ENDDO - - DO J = JSTART, JEND+1 - DO I = ISTART, IEND - II = 2*I - JJ = (2*J) - 1 - GEOLON_S(I,J) = TMPVAR(II,JJ) - ENDDO - ENDDO - - ERROR=NF90_INQ_VARID(NCID, 'y', ID_VAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING Y ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, TMPVAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING Y RECORD' ) - - ERROR = NF_CLOSE(NCID) - - ALLOCATE(GEOLAT(ISTART:IEND,JSTART:JEND)) - ALLOCATE(GEOLAT_W(ISTART:IEND+1,JSTART:JEND)) - ALLOCATE(GEOLAT_S(ISTART:IEND,JSTART:JEND+1)) - - DO J = JSTART, JEND - DO I = ISTART, IEND - II = 2*I - JJ = 2*J - GEOLAT(I,J) = TMPVAR(II,JJ) - ENDDO - ENDDO - - DO J = JSTART, JEND - DO I = ISTART, IEND+1 - II = (2*I) - 1 - JJ = 2*J - GEOLAT_W(I,J) = TMPVAR(II,JJ) - ENDDO - ENDDO - - DO J = JSTART, JEND+1 - DO I = ISTART, IEND - II = 2*I - JJ = (2*J) - 1 - GEOLAT_S(I,J) = TMPVAR(II,JJ) - ENDDO - ENDDO - - DEALLOCATE(TMPVAR) - - IF (N < 10) THEN - WRITE(OUTFILE, "(A,I1,A)") 'gfs_data.tile', N, '.nc' - ELSE - WRITE(OUTFILE, "(A,I2,A)") 'gfs_data.tile', N, '.nc' - ENDIF - - ERROR = NF__CREATE(OUTFILE, IOR(NF_NETCDF4,NF_CLASSIC_MODEL),INITAL, FSIZE, NCID2) - CALL NETCDF_ERR(ERROR, 'CREATING FILE: '//TRIM(OUTFILE) ) - - ERROR = NF90_DEF_DIM(NCID2, 'lon', IM_OUT, DIM_LON) - CALL NETCDF_ERR(ERROR, 'DEFINING LON DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'lat', JM_OUT, DIM_LAT) - CALL NETCDF_ERR(ERROR, 'DEFINING LAT DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'lonp', (IM_OUT+1), DIM_LONP) - CALL NETCDF_ERR(ERROR, 'DEFINING LONP DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'latp', (JM_OUT+1), DIM_LATP) - CALL NETCDF_ERR(ERROR, 'DEFINING LATP DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'lev', LEVSO, DIM_LEV) - CALL NETCDF_ERR(ERROR, 'DEFINING LEV DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'levp', LEVSO_P1, DIM_LEVP) - CALL NETCDF_ERR(ERROR, 'DEFINING LEVP DIMENSION') - - ERROR = NF90_DEF_DIM(NCID2, 'ntracer', NTRACM, DIM_TRACER) - CALL NETCDF_ERR(ERROR, 'DEFINING NTRACER DIMENSION') - - ERROR = NF90_DEF_VAR(NCID2, 'lon', NF90_FLOAT, DIM_LON, ID_LON) - CALL NETCDF_ERR(ERROR, 'DEFINING LON VARIABLE') - - ERROR = NF_PUT_ATT_TEXT(NCID2, ID_LON, "cartesian_axis", 1, "X") - CALL NETCDF_ERR(ERROR, 'DEFINING X-AXIS') - - ERROR = NF90_DEF_VAR(NCID2, 'lat', NF90_FLOAT, DIM_LAT, ID_LAT) - CALL NETCDF_ERR(ERROR, 'DEFINING LAT VARIABLE') - - ERROR = NF_PUT_ATT_TEXT(NCID2, ID_LAT, "cartesian_axis", 1, "Y") - CALL NETCDF_ERR(ERROR, 'DEFINING Y-AXIS') - - ERROR = NF90_DEF_VAR(NCID2, 'ps', NF90_FLOAT, & - (/DIM_LON, DIM_LAT/), ID_PS) - CALL NETCDF_ERR(ERROR, 'DEFINING PS') - - ERROR = NF90_DEF_VAR(NCID2, 'w', NF90_FLOAT, & - (/DIM_LON, DIM_LAT, DIM_LEV/), ID_W) - CALL NETCDF_ERR(ERROR, 'DEFINING W') - - ERROR = NF90_DEF_VAR(NCID2, 'zh', NF90_FLOAT, & - (/DIM_LON, DIM_LAT, DIM_LEVP/), ID_ZH) - CALL NETCDF_ERR(ERROR, 'DEFINING ZH') - - ERROR = NF90_DEF_VAR(NCID2, 'sphum', NF90_FLOAT, & - (/DIM_LON, DIM_LAT, DIM_LEV/), ID_SPHUM) - CALL NETCDF_ERR(ERROR, 'DEFINING SPHUM') - - ERROR = NF90_DEF_VAR(NCID2, 'o3mr', NF90_FLOAT, & - (/DIM_LON, DIM_LAT, DIM_LEV/), ID_O3MR) - CALL NETCDF_ERR(ERROR, 'DEFINING O3MR') - - ERROR = NF90_DEF_VAR(NCID2, 'liq_wat', NF90_FLOAT, & - (/DIM_LON, DIM_LAT, DIM_LEV/), ID_CLWMR) - CALL NETCDF_ERR(ERROR, 'DEFINING LIQ_WAT') - - ERROR = NF90_DEF_VAR(NCID2, 'u_w', NF90_FLOAT, & - (/DIM_LONP, DIM_LAT, DIM_LEV/), ID_U_W) - CALL NETCDF_ERR(ERROR, 'DEFINING U_W') - - ERROR = NF90_DEF_VAR(NCID2, 'v_w', NF90_FLOAT, & - (/DIM_LONP, DIM_LAT, DIM_LEV/), ID_V_W) - CALL NETCDF_ERR(ERROR, 'DEFINING V_W') - - ERROR = NF90_DEF_VAR(NCID2, 'u_s', NF90_FLOAT, & - (/DIM_LON, DIM_LATP, DIM_LEV/), ID_U_S) - CALL NETCDF_ERR(ERROR, 'DEFINING U_S') - - ERROR = NF90_DEF_VAR(NCID2, 'v_s', NF90_FLOAT, & - (/DIM_LON, DIM_LATP, DIM_LEV/), ID_V_S) - CALL NETCDF_ERR(ERROR, 'DEFINING V_S') - - ERROR = NF__ENDDEF(NCID2, HEADER_BUFFER_VAL, 4, 0, 4) - CALL NETCDF_ERR(ERROR, 'DEFINING END OF HEADER') - -!------------------------------------------------------------------ -! Write out data. fv3 convention: lowest model level is levso. -! top model layer is 1. this is opposite the gfs convention. -!------------------------------------------------------------------ - - ALLOCATE(CUBE_2D(ISTART:IEND,JSTART:JEND), CUBE_2D_4BYTE(ISTART:IEND,JSTART:JEND)) - - CUBE_2D_4BYTE = REAL(GEOLON,4) - ERROR = NF90_PUT_VAR(NCID2, ID_LON, CUBE_2D_4BYTE(:,JSTART)) - CALL NETCDF_ERR(ERROR, 'WRITING LON') - - CUBE_2D_4BYTE = REAL(GEOLAT,4) - ERROR = NF90_PUT_VAR(NCID2, ID_LAT, CUBE_2D_4BYTE(ISTART,:)) - CALL NETCDF_ERR(ERROR, 'WRITING LAT') - - CALL GL2ANY(0,1,PS,LONB,LATB,CUBE_2D,IM_OUT,JM_OUT,GEOLON, GEOLAT) - CUBE_2D_4BYTE = REAL(CUBE_2D,4) - - ERROR = NF90_PUT_VAR(NCID2, ID_PS, CUBE_2D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING PS') - - DEALLOCATE(CUBE_2D_4BYTE, CUBE_2D) - - ALLOCATE(CUBE_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(CUBE_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANY(0,LEVSO,W,LONB,LATB,CUBE_3D,IM_OUT,JM_OUT,GEOLON, GEOLAT) - DO K = 1, LEVSO - CUBE_3D_4BYTE(:,:,LEVSO-K+1) = REAL(CUBE_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_W, CUBE_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING W') - - DEALLOCATE(CUBE_3D_4BYTE, CUBE_3D) - - ALLOCATE(CUBE_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO_P1)) - ALLOCATE(CUBE_3D(ISTART:IEND,JSTART:JEND,LEVSO_P1)) - - CALL GL2ANY(0,LEVSO_P1,ZH,LONB,LATB,CUBE_3D,IM_OUT,JM_OUT,GEOLON, GEOLAT) - DO K = 1, LEVSO_P1 - CUBE_3D_4BYTE(:,:,LEVSO_P1-K+1) = REAL(CUBE_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_ZH, CUBE_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING ZH') - - DEALLOCATE(CUBE_3D, CUBE_3D_4BYTE) - - ALLOCATE(CUBE_3D_4BYTE(ISTART:IEND,JSTART:JEND,LEVSO)) - ALLOCATE(CUBE_3D(ISTART:IEND,JSTART:JEND,LEVSO)) - - CALL GL2ANY(0,LEVSO,Q(:,:,:,1),LONB,LATB,CUBE_3D,IM_OUT,JM_OUT,GEOLON, GEOLAT) - DO K = 1, LEVSO - CUBE_3D_4BYTE(:,:,LEVSO-K+1) = REAL(CUBE_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_SPHUM, CUBE_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING SPHUM') - - CALL GL2ANY(0,LEVSO,Q(:,:,:,2),LONB,LATB,CUBE_3D,IM_OUT,JM_OUT,GEOLON, GEOLAT) - DO K = 1, LEVSO - CUBE_3D_4BYTE(:,:,LEVSO-K+1) = REAL(CUBE_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_O3MR, CUBE_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING O3MR') - - CALL GL2ANY(0,LEVSO,Q(:,:,:,3),LONB,LATB,CUBE_3D,IM_OUT,JM_OUT,GEOLON, GEOLAT) - DO K = 1, LEVSO - CUBE_3D_4BYTE(:,:,LEVSO-K+1) = REAL(CUBE_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_CLWMR, CUBE_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING CLWMR') - - DEALLOCATE (CUBE_3D, CUBE_3D_4BYTE) - - ALLOCATE(CUBE_3D_4BYTE(ISTART:IEND+1,JSTART:JEND,LEVSO)) - ALLOCATE(CUBE_3D(ISTART:IEND+1,JSTART:JEND,LEVSO)) - ALLOCATE(CUBE_3D2(ISTART:IEND+1,JSTART:JEND,LEVSO)) - - CALL GL2ANYV(0,LEVSO,U,V,LONB,LATB,CUBE_3D,CUBE_3D2,(IM_OUT+1),JM_OUT,GEOLON_W, GEOLAT_W) - - DO K = 1, LEVSO - CUBE_3D_4BYTE(:,:,LEVSO-K+1) = REAL(CUBE_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_U_W, CUBE_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING U_W') - - DO K = 1, LEVSO - CUBE_3D_4BYTE(:,:,LEVSO-K+1) = REAL(CUBE_3D2(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_V_W, CUBE_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING V_W') - - DEALLOCATE (CUBE_3D, CUBE_3D2, CUBE_3D_4BYTE) - - ALLOCATE(CUBE_3D_4BYTE(ISTART:IEND,JSTART:JEND+1,LEVSO)) - ALLOCATE(CUBE_3D(ISTART:IEND,JSTART:JEND+1,LEVSO)) - ALLOCATE(CUBE_3D2(ISTART:IEND,JSTART:JEND+1,LEVSO)) - - CALL GL2ANYV(0,LEVSO,U,V,LONB,LATB,CUBE_3D,CUBE_3D2,IM_OUT,(JM_OUT+1),GEOLON_S, GEOLAT_S) - - DO K = 1, LEVSO - CUBE_3D_4BYTE(:,:,LEVSO-K+1) = REAL(CUBE_3D(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_U_S, CUBE_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING U_S') - - DO K = 1, LEVSO - CUBE_3D_4BYTE(:,:,LEVSO-K+1) = REAL(CUBE_3D2(:,:,K),4) - ENDDO - - ERROR = NF90_PUT_VAR(NCID2, ID_V_S, CUBE_3D_4BYTE) - CALL NETCDF_ERR(ERROR, 'WRITING V_S') - - ERROR = NF_CLOSE(NCID2) - - DEALLOCATE(CUBE_3D, CUBE_3D2, CUBE_3D_4BYTE) - DEALLOCATE(GEOLON, GEOLON_W, GEOLON_S) - DEALLOCATE(GEOLAT, GEOLAT_W, GEOLAT_S) - - ENDDO TILE_LOOP - - DEALLOCATE(ZH) - - END SUBROUTINE WRITE_FV3_ATMS_NETCDF - - SUBROUTINE READ_GFS_NSST_DATA_NSTIO(IMI,JMI,NUM_NSST_FIELDS, & - NSST_INPUT, MASK_INPUT, & - NSST_YEAR, NSST_MON, & - NSST_DAY, NSST_HOUR, & - NSST_FHOUR) - - USE NSTIO_MODULE - - IMPLICIT NONE - - INTEGER, INTENT(IN) :: IMI, JMI, NUM_NSST_FIELDS - INTEGER, INTENT(OUT) :: NSST_YEAR, NSST_MON - INTEGER, INTENT(OUT) :: NSST_DAY, NSST_HOUR - - REAL, INTENT(OUT) :: NSST_FHOUR - REAL, INTENT(OUT) :: MASK_INPUT(IMI,JMI) - REAL, INTENT(OUT) :: NSST_INPUT(IMI,JMI,NUM_NSST_FIELDS) - - INTEGER(NSTIO_INTKIND) :: NSSTI, IRET - - TYPE(NSTIO_HEAD) :: NSST_IN_HEAD - TYPE(NSTIO_DATA) :: NSST_IN_DATA - - PRINT*,'- READ NSST FILE chgres.inp.nst.' -! OPEN NSST FILES - NSSTI=31 - CALL NSTIO_SROPEN(NSSTI,'chgres.inp.nst',IRET) - IF(IRET/=0)THEN - PRINT*,'FATAL ERROR OPENING chgres.inp.nst ', IRET - CALL ERREXIT(105) - ENDIF - CALL NSTIO_SRHEAD(NSSTI,NSST_IN_HEAD,IRET) - IF(IRET/=0)THEN - PRINT*,'FATAL ERROR READING chgres.inp.nst ', IRET - CALL ERREXIT(106) - ENDIF - CALL NSTIO_ALDATA(NSST_IN_HEAD,NSST_IN_DATA,IRET) - CALL NSTIO_SRDATA(NSSTI,NSST_IN_HEAD,NSST_IN_DATA,IRET) - IF(IRET/=0)THEN - PRINT*,'FATAL ERROR READING chgres.inp.nst ', IRET - CALL ERREXIT(107) - ENDIF - NSST_YEAR=NSST_IN_HEAD%IDATE(4) - NSST_MON=NSST_IN_HEAD%IDATE(2) - NSST_DAY=NSST_IN_HEAD%IDATE(3) - NSST_HOUR=NSST_IN_HEAD%IDATE(1) - NSST_FHOUR=NSST_IN_HEAD%FHOUR - NSST_INPUT(:,:,1)=NSST_IN_DATA%XT - NSST_INPUT(:,:,2)=NSST_IN_DATA%XS - NSST_INPUT(:,:,3)=NSST_IN_DATA%XU - NSST_INPUT(:,:,4)=NSST_IN_DATA%XV - NSST_INPUT(:,:,5)=NSST_IN_DATA%XZ - NSST_INPUT(:,:,6)=NSST_IN_DATA%ZM - NSST_INPUT(:,:,7)=NSST_IN_DATA%XTTS - NSST_INPUT(:,:,8)=NSST_IN_DATA%XZTS - NSST_INPUT(:,:,9)=NSST_IN_DATA%DT_COOL - NSST_INPUT(:,:,10)=NSST_IN_DATA%Z_C - NSST_INPUT(:,:,11)=NSST_IN_DATA%C_0 - NSST_INPUT(:,:,12)=NSST_IN_DATA%C_D - NSST_INPUT(:,:,13)=NSST_IN_DATA%W_0 - NSST_INPUT(:,:,14)=NSST_IN_DATA%W_D - NSST_INPUT(:,:,15)=NSST_IN_DATA%D_CONV - NSST_INPUT(:,:,16)=NSST_IN_DATA%IFD - NSST_INPUT(:,:,17)=NSST_IN_DATA%TREF - NSST_INPUT(:,:,18)=NSST_IN_DATA%QRAIN - MASK_INPUT=NSST_IN_DATA%SLMSK - CALL NSTIO_AXDATA(NSST_IN_DATA,IRET) - CALL NSTIO_SRCLOSE(NSSTI,IRET) - - END SUBROUTINE READ_GFS_NSST_DATA_NSTIO - - SUBROUTINE READ_GFS_NSST_DATA_NEMSIO (MASK_INPUT,NSST_INPUT,IMI,JMI, & - NUM_NSST_FIELDS,NSST_YEAR,NSST_MON,NSST_DAY, & - NSST_HOUR,NSST_FHOUR) - -!----------------------------------------------------------------------- -! Subroutine: read nsst data from nemsio file -! -! Author: George Gayno/EMC -! -! Abstract: Reads an nsst file in nemsio format. Places data -! in the "nsst_input" array as expected by routine -! nsst_chgres. -! -! Input files: -! "chgres.inp.nst" - input nsst nemsio file -! -! Output files: none -! -! History: -! 2016-04-05 Gayno - Initial version -! -! Condition codes: all non-zero codes are fatal -! 16 - bad initialization of nemsio environment -! 17 - bad open of nst file "chgres.inp.nst" -! 18 - bad read of "chgres.inp.nst" header -! 19 - the program assumes that the resolution of the -! nst grid matches the input surface grid. if -! they are not the same, stop procoessing. -! 20 - the nst file does not have the 19 required records. -! 21 - bad read of an nst file record. -!----------------------------------------------------------------------- - - use nemsio_module - - implicit none - - character(len=3) :: levtyp - character(len=8) :: recname(19) - - integer, intent(in) :: imi, jmi, num_nsst_fields - integer, intent(out) :: nsst_year, nsst_mon - integer, intent(out) :: nsst_day, nsst_hour - - real, intent(out) :: mask_input(imi,jmi) - real, intent(out) :: nsst_input(imi,jmi,num_nsst_fields) - real, intent(out) :: nsst_fhour - - integer(nemsio_intkind) :: iret, nrec, dimx, dimy, lev, nframe - integer(nemsio_intkind) :: idate(7), nfhour - - integer :: j - - real(nemsio_realkind),allocatable :: dummy(:) - - type(nemsio_gfile) :: gfile - - data recname /"land ", "xt ", "xs ", & - "xu ", "xv ", "xz ", & - "zm ", "xtts ", "xzts ", & - "dtcool ", "zc ", "c0 ", & - "cd ", "w0 ", "wd ", & - "dconv ", "ifd ", "tref ", & - "qrain " / - - print*,"- READ INPUT NSST DATA IN NEMSIO FORMAT" - - call nemsio_init(iret=iret) - if (iret /= 0) then - print*,"- FATAL ERROR: bad nemsio initialization." - print*,"- IRET IS ", iret - call errexit(108) - endif - - call nemsio_open(gfile, "chgres.inp.nst", "read", iret=iret) - if (iret /= 0) then - print*,"- FATAL ERROR: bad open of chgres.inp.nst." - print*,"- IRET IS ", iret - call errexit(109) - endif - - print*,"- READ FILE HEADER" - call nemsio_getfilehead(gfile,iret=iret,nrec=nrec,dimx=dimx, & - dimy=dimy,idate=idate,nfhour=nfhour) - if (iret /= 0) then - print*,"- FATAL ERROR: bad read of chgres.inp.nst header." - print*,"- IRET IS ", iret - call errexit(110) - endif - - if (dimx /= imi .or. dimy /= jmi) then - print*,"- FATAL ERROR: nst and sfc file resolution" - print*,"- must be the same." - call errexit(111) - endif - - if (nrec /= 19) then - print*,"- FATAL ERROR: nst file has wrong number of records." - call errexit(112) - endif - - nsst_year=idate(1) - nsst_mon=idate(2) - nsst_day=idate(3) - nsst_hour=idate(4) - nsst_fhour=float(nfhour) - - levtyp='sfc' - lev=1 - nframe=0 - - allocate(dummy(imi*jmi)) - -!----------------------------------------------------------------------- -! Read land mask. Note: older file versions use 'slmsk' -! as the header id. -!----------------------------------------------------------------------- - - call nemsio_readrecv(gfile,recname(1),levtyp,lev, & - dummy,nframe,iret) - if (iret /= 0) then - call nemsio_readrecv(gfile,"slmsk",levtyp,lev, & - dummy,nframe,iret) - if (iret /= 0) then - print*,"- FATAL ERROR: bad read of landmask record." - print*,"- IRET IS ", iret - call errexit(113) - endif - endif - mask_input = reshape (dummy, (/imi,jmi/)) - - print*,"- READ DATA RECORDS" - do j = 2, nrec - call nemsio_readrecv(gfile,recname(j),levtyp,lev, & - dummy,nframe,iret) - if (iret /= 0) then - print*,"- FATAL ERROR: bad read of chgres.inp.nst." - print*,"- IRET IS ", iret - call errexit(114) - endif - nsst_input(:,:,j-1) = reshape (dummy, (/imi,jmi/)) - enddo - - deallocate(dummy) - - call nemsio_close(gfile,iret=iret) - - call nemsio_finalize() - - END SUBROUTINE READ_GFS_NSST_DATA_NEMSIO - - SUBROUTINE READ_GFS_SFC_HEADER_NEMSIO (IMI,JMI,IVSI,LSOILI, & - FCSTHOUR,IDATE4O,KGDS_INPUT) - - USE NEMSIO_MODULE - - IMPLICIT NONE - - INTEGER, INTENT(OUT) :: IMI,JMI,IVSI,LSOILI,IDATE4O(4) - INTEGER, INTENT(OUT) :: KGDS_INPUT(200) - - REAL, INTENT(OUT) :: FCSTHOUR - - CHARACTER(LEN=8) :: FILETYPE - - INTEGER(NEMSIO_INTKIND) :: DIMX, DIMY, IRET, VERSION - INTEGER(NEMSIO_INTKIND) :: NSOIL, IDATE(7), NFHOUR - - TYPE(NEMSIO_GFILE) :: GFILEISFC - - CALL NEMSIO_OPEN(GFILEISFC,'chgres.inp.sfc','read',IRET=IRET) - IF (IRET /= 0) THEN - PRINT*,"FATAL ERROR OPENING chgres.inp.sfc" - PRINT*,"IRET IS: ",IRET - CALL ERREXIT(119) - ENDIF - - CALL NEMSIO_GETFILEHEAD(GFILEISFC,GTYPE=FILETYPE,IRET=IRET, & - VERSION=VERSION, DIMX=DIMX, DIMY=DIMY, NSOIL=NSOIL, & - IDATE=IDATE, NFHOUR=NFHOUR) - IF (IRET /= 0) THEN - PRINT*,"FATAL ERROR READING chgres.inp.sfc FILE HEADER." - PRINT*,"IRET IS: ",IRET - CALL ERREXIT(120) - ENDIF - -! check bad status - - CALL NEMSIO_CLOSE(GFILEISFC,IRET=IRET) - - IMI = DIMX - JMI = DIMY - LSOILI = NSOIL - IVSI = VERSION - FCSTHOUR = FLOAT(NFHOUR) - IDATE4O(1) = IDATE(4) ! HOUR - IDATE4O(2) = IDATE(2) ! MONTH - IDATE4O(3) = IDATE(3) ! DAY - IDATE4O(4) = IDATE(1) ! YEAR - - KGDS_INPUT = 0 - KGDS_INPUT(1) = 4 ! OCT 6 - TYPE OF GRID (GAUSSIAN) - KGDS_INPUT(2) = IMI ! OCT 7-8 - # PTS ON LATITUDE CIRCLE - KGDS_INPUT(3) = JMI ! OCT 9-10 - # PTS ON LONGITUDE CIRCLE - KGDS_INPUT(4) = 90000 ! OCT 11-13 - LAT OF ORIGIN - KGDS_INPUT(5) = 0 ! OCT 14-16 - LON OF ORIGIN - KGDS_INPUT(6) = 128 ! OCT 17 - RESOLUTION FLAG - KGDS_INPUT(7) = -90000 ! OCT 18-20 - LAT OF EXTREME POINT - KGDS_INPUT(8) = NINT(-360000./IMI) ! OCT 21-23 - LON OF EXTREME POINT - KGDS_INPUT(9) = NINT((360.0 / FLOAT(IMI))*1000.0) - ! OCT 24-25 - LONGITUDE DIRECTION INCR. - KGDS_INPUT(10) = JMI /2 ! OCT 26-27 - NUMBER OF CIRCLES POLE TO EQUATOR - KGDS_INPUT(12) = 255 ! OCT 29 - RESERVED - KGDS_INPUT(20) = 255 ! OCT 5 - NOT USED, SET TO 255 - - END SUBROUTINE READ_GFS_SFC_HEADER_NEMSIO - - SUBROUTINE READ_GFS_SFC_HEADER_SFCIO (NSFCI,IMI,JMI,IVSI,LSOILI, & - FCSTHOUR,IDATE4O,KGDS_INPUT) - - USE SFCIO_MODULE - - INTEGER, INTENT(IN) :: NSFCI - INTEGER, INTENT(OUT) :: IMI,JMI,IVSI,LSOILI,IDATE4O(4) - INTEGER, INTENT(OUT) :: KGDS_INPUT(200) - INTEGER :: IRET - - REAL, INTENT(OUT) :: FCSTHOUR - - TYPE(SFCIO_HEAD) :: SFCHEADI - - CALL SFCIO_SROPEN(NSFCI,'chgres.inp.sfc',IRET) - IF (IRET /= 0) THEN - PRINT*,"FATAL ERROR OPENING chgres.inp.sfc" - PRINT*,"IRET IS: ", IRET - CALL ERREXIT(121) - ENDIF - - CALL SFCIO_SRHEAD(NSFCI,SFCHEADI,IRET) - IF (IRET /= 0) THEN - PRINT*,"FATAL ERROR READING chgres.inp.sfc HEADER" - PRINT*,"IRET IS: ", IRET - CALL ERREXIT(122) - ENDIF - - CALL SFCIO_SCLOSE(NSFCI,IRET) - - IMI = SFCHEADI%LONB - JMI = SFCHEADI%LATB - IVSI = SFCHEADI%IVS - LSOILI = SFCHEADI%LSOIL - FCSTHOUR = SFCHEADI%FHOUR - IDATE4O = SFCHEADI%IDATE - - KGDS_INPUT = 0 - KGDS_INPUT(1) = 4 ! OCT 6 - TYPE OF GRID (GAUSSIAN) - KGDS_INPUT(2) = IMI ! OCT 7-8 - # PTS ON LATITUDE CIRCLE - KGDS_INPUT(3) = JMI ! OCT 9-10 - # PTS ON LONGITUDE CIRCLE - KGDS_INPUT(4) = 90000 ! OCT 11-13 - LAT OF ORIGIN - KGDS_INPUT(5) = 0 ! OCT 14-16 - LON OF ORIGIN - KGDS_INPUT(6) = 128 ! OCT 17 - RESOLUTION FLAG - KGDS_INPUT(7) = -90000 ! OCT 18-20 - LAT OF EXTREME POINT - KGDS_INPUT(8) = NINT(-360000./IMI) ! OCT 21-23 - LON OF EXTREME POINT - KGDS_INPUT(9) = NINT((360.0 / FLOAT(IMI))*1000.0) - ! OCT 24-25 - LONGITUDE DIRECTION INCR. - KGDS_INPUT(10) = JMI /2 ! OCT 26-27 - NUMBER OF CIRCLES POLE TO EQUATOR - KGDS_INPUT(12) = 255 ! OCT 29 - RESERVED - KGDS_INPUT(20) = 255 ! OCT 5 - NOT USED, SET TO 255 - - END SUBROUTINE READ_GFS_SFC_HEADER_SFCIO - - SUBROUTINE READ_GFS_SFC_DATA_NEMSIO (IMI, JMI, LSOILI, IVSI, SFCINPUT, & - F10MI, T2MI, Q2MI, & - UUSTARI, FFMMI, FFHHI, SRFLAGI, & - TPRCPI) - - USE NEMSIO_MODULE - USE NEMSIO_GFS - USE SURFACE_CHGRES - - IMPLICIT NONE - - INTEGER, INTENT(IN) :: IMI, JMI, LSOILI, IVSI - - REAL, INTENT(OUT) :: F10MI(IMI,JMI), T2MI(IMI,JMI) - REAL, INTENT(OUT) :: Q2MI(IMI,JMI), UUSTARI(IMI,JMI) - REAL, INTENT(OUT) :: FFMMI(IMI,JMI), FFHHI(IMI,JMI) - REAL, INTENT(OUT) :: SRFLAGI(IMI,JMI), TPRCPI(IMI,JMI) - - INTEGER(NEMSIO_INTKIND) :: IRET - INTEGER :: I, J, L - - TYPE(SFC2D) :: SFCINPUT - TYPE(NEMSIO_GFILE) :: GFILEISFC - TYPE(NEMSIO_DBTA) :: GFSDATAI - - CALL NEMSIO_OPEN(GFILEISFC,'chgres.inp.sfc','read',IRET=IRET) - IF(IRET /= 0)THEN - PRINT*,"FATAL ERROR OPENING chgres.inp.sfc" - PRINT*,"IRET IS ", IRET - CALL ERREXIT(144) - ENDIF - - CALL NEMSIO_GFS_ALSFC(IMI, JMI, LSOILI, GFSDATAI) - - CALL NEMSIO_GFS_RDSFC(GFILEISFC,GFSDATAI,IRET) - IF(IRET /= 0)THEN - PRINT*,"FATAL ERROR READING DATA FROM chgres.inp.sfc" - PRINT*,"IRET IS ", IRET - CALL ERREXIT(145) - ENDIF - - CALL NEMSIO_CLOSE(GFILEISFC, IRET=IRET) - -!$OMP PARALLEL DO PRIVATE(I,J) - DO J = 1, JMI - DO I = 1, IMI - - SFCINPUT%ALNSF(I,J) = GFSDATAI%ALNSF(I,J) - SFCINPUT%ALNWF(I,J) = GFSDATAI%ALNWF(I,J) - SFCINPUT%ALVSF(I,J) = GFSDATAI%ALVSF(I,J) - SFCINPUT%ALVWF(I,J) = GFSDATAI%ALVWF(I,J) - SFCINPUT%CANOPY_MC(I,J) = GFSDATAI%CANOPY(I,J) - SFCINPUT%GREENFRC(I,J) = GFSDATAI%VFRAC(I,J) - SFCINPUT%FACSF(I,J) = GFSDATAI%FACSF(I,J) - SFCINPUT%FACWF(I,J) = GFSDATAI%FACWF(I,J) - SFCINPUT%SKIN_TEMP(I,J) = GFSDATAI%TSEA(I,J) - SFCINPUT%LSMASK(I,J) = GFSDATAI%SLMSK(I,J) - SFCINPUT%SEA_ICE_FLAG(I,J) = 0 - IF(NINT(SFCINPUT%LSMASK(I,J))==2) THEN - SFCINPUT%LSMASK(I,J)=0. - SFCINPUT%SEA_ICE_FLAG(I,J) = 1 - ENDIF - SFCINPUT%Z0(I,J) = GFSDATAI%ZORL(I,J) - SFCINPUT%OROG(I,J) = GFSDATAI%OROG(I,J) - SFCINPUT%VEG_TYPE(I,J) = NINT(GFSDATAI%VTYPE(I,J)) - SFCINPUT%SOIL_TYPE(I,J) = NINT(GFSDATAI%STYPE(I,J)) - SFCINPUT%SNOW_LIQ_EQUIV(I,J) = GFSDATAI%SHELEG(I,J) - - ENDDO - ENDDO -!$OMP END PARALLEL DO - - DO L = 1, LSOILI -!$OMP PARALLEL DO PRIVATE(I,J) - DO J = 1, JMI - DO I = 1, IMI - SFCINPUT%SOILM_TOT(I,J,L) = GFSDATAI%SMC(I,J,L) - SFCINPUT%SOIL_TEMP(I,J,L) = GFSDATAI%STC(I,J,L) - ENDDO - ENDDO -!$OMP END PARALLEL DO - ENDDO - - SRFLAGI = 0.0 - TPRCPI = 0.0 - - IF (IVSI > 200501) THEN -!$OMP PARALLEL DO PRIVATE(I,J) - DO J = 1, JMI - DO I = 1, IMI - SFCINPUT%SEA_ICE_FRACT(I,J) = GFSDATAI%FICE(I,J) - SFCINPUT%SEA_ICE_DEPTH(I,J) = GFSDATAI%HICE(I,J) - SFCINPUT%MXSNOW_ALB(I,J) = GFSDATAI%SNOALB(I,J) - SFCINPUT%SNOW_DEPTH(I,J) = GFSDATAI%SNWDPH(I,J) - SFCINPUT%SLOPE_TYPE(I,J) = NINT(GFSDATAI%SLOPE(I,J)) - SFCINPUT%GREENFRC_MAX(I,J) = GFSDATAI%SHDMAX(I,J) - SFCINPUT%GREENFRC_MIN(I,J) = GFSDATAI%SHDMIN(I,J) - SRFLAGI(I,J) = GFSDATAI%SRFLAG(I,J) - TPRCPI(I,J) = GFSDATAI%TPRCP(I,J) - ENDDO - ENDDO -!$OMP END PARALLEL DO - - DO L=1,LSOILI -!$OMP PARALLEL DO PRIVATE(I,J) - DO J = 1, JMI - DO I = 1, IMI - SFCINPUT%SOILM_LIQ(I,J,L) = GFSDATAI%SLC(I,J,L) - ENDDO - ENDDO - ENDDO - - END IF ! IVS > 200501 - -!$OMP PARALLEL DO PRIVATE(I,J) - DO J = 1, JMI - DO I = 1, IMI - F10MI(I,J) = GFSDATAI%F10M(I,J) - T2MI(I,J) = GFSDATAI%T2M(I,J) - Q2MI(I,J) = GFSDATAI%Q2M(I,J) - UUSTARI(I,J) = GFSDATAI%UUSTAR(I,J) - FFMMI(I,J) = GFSDATAI%FFMM(I,J) - FFHHI(I,J) = GFSDATAI%FFHH(I,J) - ENDDO - ENDDO -!$OMP END PARALLEL DO - - END SUBROUTINE READ_GFS_SFC_DATA_NEMSIO - - SUBROUTINE READ_GFS_SFC_DATA_SFCIO (NSFCI, IMI, JMI, SFCINPUT, & - F10MI, T2MI, Q2MI, & - UUSTARI, FFMMI, FFHHI, SRFLAGI, & - TPRCPI) - - USE SFCIO_MODULE - USE SURFACE_CHGRES - - IMPLICIT NONE - - INTEGER, INTENT(IN) :: NSFCI, IMI, JMI - INTEGER :: I,J,L, IRET - - REAL, INTENT(OUT) :: F10MI(IMI,JMI), T2MI(IMI,JMI) - REAL, INTENT(OUT) :: Q2MI(IMI,JMI), UUSTARI(IMI,JMI) - REAL, INTENT(OUT) :: FFMMI(IMI,JMI), FFHHI(IMI,JMI) - REAL, INTENT(OUT) :: SRFLAGI(IMI,JMI), TPRCPI(IMI,JMI) - - TYPE(SFC2D) :: SFCINPUT - TYPE(SFCIO_HEAD) :: SFCHEADI - TYPE(SFCIO_DBTA) :: SFCDATAI - - CALL SFCIO_SROPEN(NSFCI,'chgres.inp.sfc',IRET) - IF(IRET /=0) THEN - PRINT*,"FATAL ERROR OPENING chgres.inp.sfc" - PRINT*,"IRET IS ", IRET - CALL ERREXIT(155) - ENDIF - - CALL SFCIO_SRHEAD(NSFCI,SFCHEADI,IRET) - IF(IRET /=0) THEN - PRINT*,"FATAL ERROR READING chgres.inp.sfc HEADER" - PRINT*,"IRET IS ", IRET - CALL ERREXIT(156) - ENDIF - - CALL SFCIO_ALDBTA(SFCHEADI,SFCDATAI,IRET) - IF(IRET.NE.0) THEN - PRINT*,"FATAL ERROR ALLOCATING SFC DATA STRUCTURE" - PRINT*,"IRET IS ", IRET - CALL ERREXIT(158) - ENDIF - - CALL SFCIO_SRDBTA(NSFCI,SFCHEADI,SFCDATAI,IRET) - IF(IRET /=0) THEN - PRINT*,"FATAL ERROR READING chgres.inp.sfc DATA" - PRINT*,"IRET IS ", IRET - CALL ERREXIT(157) - ENDIF - - CALL SFCIO_SCLOSE(NSFCI,IRET) - -!$OMP PARALLEL DO PRIVATE(I,J) - - DO J = 1, SFCHEADI%LATB - DO I = 1, SFCHEADI%LONB - - SFCINPUT%ALNSF(I,J) = SFCDATAI%ALNSF(I,J) - SFCINPUT%ALNWF(I,J) = SFCDATAI%ALNWF(I,J) - SFCINPUT%ALVSF(I,J) = SFCDATAI%ALVSF(I,J) - SFCINPUT%ALVWF(I,J) = SFCDATAI%ALVWF(I,J) - SFCINPUT%CANOPY_MC(I,J) = SFCDATAI%CANOPY(I,J) - SFCINPUT%GREENFRC(I,J) = SFCDATAI%VFRAC(I,J) - SFCINPUT%FACSF(I,J) = SFCDATAI%FACSF(I,J) - SFCINPUT%FACWF(I,J) = SFCDATAI%FACWF(I,J) - SFCINPUT%SKIN_TEMP(I,J) = SFCDATAI%TSEA(I,J) - SFCINPUT%LSMASK(I,J) = SFCDATAI%SLMSK(I,J) - SFCINPUT%SEA_ICE_FLAG(I,J) = 0 - IF(NINT(SFCINPUT%LSMASK(I,J))==2) THEN - SFCINPUT%LSMASK(I,J)=0. - SFCINPUT%SEA_ICE_FLAG(I,J) = 1 - ENDIF - SFCINPUT%Z0(I,J) = SFCDATAI%ZORL(I,J) - SFCINPUT%OROG(I,J) = SFCDATAI%OROG(I,J) - SFCINPUT%VEG_TYPE(I,J) = NINT(SFCDATAI%VTYPE(I,J)) - SFCINPUT%SOIL_TYPE(I,J) = NINT(SFCDATAI%STYPE(I,J)) - SFCINPUT%SNOW_LIQ_EQUIV(I,J) = SFCDATAI%SHELEG(I,J) - - ENDDO - ENDDO - -!$OMP END PARALLEL DO - - DO L = 1, SFCHEADI%LSOIL -!$OMP PARALLEL DO PRIVATE(I,J) - DO J = 1, SFCHEADI%LATB - DO I = 1, SFCHEADI%LONB - SFCINPUT%SOILM_TOT(I,J,L) = SFCDATAI%SMC(I,J,L) - SFCINPUT%SOIL_TEMP(I,J,L) = SFCDATAI%STC(I,J,L) - ENDDO - ENDDO -!$OMP END PARALLEL DO - ENDDO - - SRFLAGI = 0.0 - TPRCPI = 0.0 - - IF (SFCHEADI%IVS > 200501) THEN -!$OMP PARALLEL DO PRIVATE(I,J) - DO J = 1, SFCHEADI%LATB - DO I = 1, SFCHEADI%LONB - SFCINPUT%SEA_ICE_FRACT(I,J) = SFCDATAI%FICE(I,J) - SFCINPUT%SEA_ICE_DEPTH(I,J) = SFCDATAI%HICE(I,J) - SFCINPUT%MXSNOW_ALB(I,J) = SFCDATAI%SNOALB(I,J) - SFCINPUT%SNOW_DEPTH(I,J) = SFCDATAI%SNWDPH(I,J) - SFCINPUT%SLOPE_TYPE(I,J) = NINT(SFCDATAI%SLOPE(I,J)) - SFCINPUT%GREENFRC_MAX(I,J) = SFCDATAI%SHDMAX(I,J) - SFCINPUT%GREENFRC_MIN(I,J) = SFCDATAI%SHDMIN(I,J) - SRFLAGI(I,J) = SFCDATAI%SRFLAG(I,J) - TPRCPI(I,J) = SFCDATAI%TPRCP(I,J) - ENDDO - ENDDO -!$OMP END PARALLEL DO - - DO L=1,SFCHEADI%LSOIL -!$OMP PARALLEL DO PRIVATE(I,J) - DO J = 1, SFCHEADI%LATB - DO I = 1, SFCHEADI%LONB - SFCINPUT%SOILM_LIQ(I,J,L) = SFCDATAI%SLC(I,J,L) - ENDDO - ENDDO - ENDDO - - END IF ! IVS > 200501 - -!$OMP PARALLEL DO PRIVATE(I,J) - DO J = 1, SFCHEADI%LATB - DO I = 1, SFCHEADI%LONB - F10MI(I,J) = SFCDATAI%F10M(I,J) - T2MI(I,J) = SFCDATAI%T2M(I,J) - Q2MI(I,J) = SFCDATAI%Q2M(I,J) - UUSTARI(I,J) = SFCDATAI%UUSTAR(I,J) - FFMMI(I,J) = SFCDATAI%FFMM(I,J) - FFHHI(I,J) = SFCDATAI%FFHH(I,J) - ENDDO - ENDDO -!$OMP END PARALLEL DO - - CALL SFCIO_AXDBTA(SFCDATAI,IRET) - - END SUBROUTINE READ_GFS_SFC_DATA_SFCIO diff --git a/sorc/global_chgres.fd/sfcsub.F b/sorc/global_chgres.fd/sfcsub.F deleted file mode 100644 index 97f64187b8..0000000000 --- a/sorc/global_chgres.fd/sfcsub.F +++ /dev/null @@ -1,8397 +0,0 @@ - module sfccyc_module - implicit none - save -! -! grib code for each parameter - used in subroutines sfccycle and setrmsk. -! - integer kpdtsf,kpdwet,kpdsno,kpdzor,kpdais,kpdtg3,kpdplr,kpdgla, - & kpdmxi,kpdscv,kpdsmc,kpdoro,kpdmsk,kpdstc,kpdacn,kpdveg, - & kpdvet,kpdsot - &, kpdvmn,kpdvmx,kpdslp,kpdabs - &, kpdsnd, kpdabs_0, kpdabs_1, kpdalb(4) - parameter(kpdtsf=11, kpdwet=86, kpdsno=65, kpdzor=83, -! 1 kpdalb=84, kpdais=91, kpdtg3=11, kpdplr=224, - 1 kpdais=91, kpdtg3=11, kpdplr=224, - 2 kpdgla=238, kpdmxi=91, kpdscv=238, kpdsmc=144, - 3 kpdoro=8, kpdmsk=81, kpdstc=11, kpdacn=91, kpdveg=87, -!cbosu max snow albedo uses a grib id number of 159, not 255. - & kpdvmn=255, kpdvmx=255,kpdslp=236, kpdabs_0=255, - & kpdvet=225, kpdsot=224,kpdabs_1=159, - & kpdsnd=66 ) -! - integer, parameter :: kpdalb_0(4)=(/212,215,213,216/) - integer, parameter :: kpdalb_1(4)=(/189,190,191,192/) - integer, parameter :: kpdalf(2)=(/214,217/) -! - integer, parameter :: xdata=5000, ydata=2500, mdata=xdata*ydata - integer :: veg_type_landice - integer :: soil_type_landice -! - end module sfccyc_module - subroutine sfccycle(lugb,len,lsoil,sig1t,deltsfc - &, iy,im,id,ih,fh - &, rla, rlo, slmask,orog,orog_uf,use_ufo,nst_anl - &, sihfcs,sicfcs,sitfcs - &, swdfcs,slcfcs - &, vmnfcs,vmxfcs,slpfcs,absfcs - &, tsffcs,snofcs,zorfcs,albfcs,tg3fcs - &, cnpfcs,smcfcs,stcfcs,slifcs,aisfcs,f10m - &, vegfcs,vetfcs,sotfcs,alffcs - &, cvfcs,cvbfcs,cvtfcs,me,nlunit - &, sz_nml,input_nml_file - &, ialb,isot,ivegsrc) -! - use machine , only : kind_io8,kind_io4 - use sfccyc_module - implicit none - logical use_ufo, nst_anl - real (kind=kind_io8) sllnd,slsea,aicice,aicsea,tgice,rlapse, - & orolmx,orolmn,oroomx,oroomn,orosmx, - & orosmn,oroimx,oroimn,orojmx,orojmn, - & alblmx,alblmn,albomx,albomn,albsmx, - & albsmn,albimx,albimn,albjmx,albjmn, - & wetlmx,wetlmn,wetomx,wetomn,wetsmx, - & wetsmn,wetimx,wetimn,wetjmx,wetjmn, - & snolmx,snolmn,snoomx,snoomn,snosmx, - & snosmn,snoimx,snoimn,snojmx,snojmn, - & zorlmx,zorlmn,zoromx,zoromn,zorsmx, - & zorsmn,zorimx,zorimn,zorjmx, zorjmn, - & plrlmx,plrlmn,plromx,plromn,plrsmx, - & plrsmn,plrimx,plrimn,plrjmx,plrjmn, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfsmx, - & tsfsmn,tsfimx,tsfimn,tsfjmx,tsfjmn, - & tg3lmx,tg3lmn,tg3omx,tg3omn,tg3smx, - & tg3smn,tg3imx,tg3imn,tg3jmx,tg3jmn, - & stclmx,stclmn,stcomx,stcomn,stcsmx, - & stcsmn,stcimx,stcimn,stcjmx,stcjmn, - & smclmx,smclmn,smcomx,smcomn,smcsmx, - & smcsmn,smcimx,smcimn,smcjmx,smcjmn, - & scvlmx,scvlmn,scvomx,scvomn,scvsmx, - & scvsmn,scvimx,scvimn,scvjmx,scvjmn, - & veglmx,veglmn,vegomx,vegomn,vegsmx, - & vegsmn,vegimx,vegimn,vegjmx,vegjmn, - & vetlmx,vetlmn,vetomx,vetomn,vetsmx, - & vetsmn,vetimx,vetimn,vetjmx,vetjmn, - & sotlmx,sotlmn,sotomx,sotomn,sotsmx, - & sotsmn,sotimx,sotimn,sotjmx,sotjmn, - & alslmx,alslmn,alsomx,alsomn,alssmx, - & alssmn,alsimx,alsimn,alsjmx,alsjmn, - & epstsf,epsalb,epssno,epswet,epszor, - & epsplr,epsoro,epssmc,epsscv,eptsfc, - & epstg3,epsais,epsacn,epsveg,epsvet, - & epssot,epsalf,qctsfs,qcsnos,qctsfi, - & aislim,snwmin,snwmax,cplrl,cplrs, - & cvegl,czors,csnol,csnos,czorl,csots, - & csotl,cvwgs,cvetl,cvets,calfs, - & fcalfl,fcalfs,ccvt,ccnp,ccv,ccvb, - & calbl,calfl,calbs,ctsfs,grboro, - & grbmsk,ctsfl,deltf,caisl,caiss, - & fsalfl,fsalfs,flalfs,falbl,ftsfl, - & ftsfs,fzorl,fzors,fplrl,fsnos,faisl, - & faiss,fsnol,bltmsk,falbs,cvegs,percrit, - & deltsfc,critp2,critp3,blnmsk,critp1, - & fcplrl,fcplrs,fczors,fvets,fsotl,fsots, - & fvetl,fplrs,fvegl,fvegs,fcsnol,fcsnos, - & fczorl,fcalbs,fctsfl,fctsfs,fcalbl, - & falfs,falfl,fh,crit,zsca,ztsfc,tem1,tem2 - &, fsihl,fsihs,fsicl,fsics, - & csihl,csihs,csicl,csics,epssih,epssic - &, fvmnl,fvmns,fvmxl,fvmxs,fslpl,fslps, - & fabsl,fabss,cvmnl,cvmns,cvmxl,cvmxs, - & cslpl,cslps,cabsl,cabss,epsvmn,epsvmx, - & epsslp,epsabs - &, sihlmx,sihlmn,sihomx,sihomn,sihsmx, - & sihsmn,sihimx,sihimn,sihjmx,sihjmn, - & siclmx,siclmn,sicomx,sicomn,sicsmx, - & sicsmn,sicimx,sicimn,sicjmx,sicjmn - &, glacir_hice - &, vmnlmx,vmnlmn,vmnomx,vmnomn,vmnsmx, - & vmnsmn,vmnimx,vmnimn,vmnjmx,vmnjmn, - & vmxlmx,vmxlmn,vmxomx,vmxomn,vmxsmx, - & vmxsmn,vmximx,vmximn,vmxjmx,vmxjmn, - & slplmx,slplmn,slpomx,slpomn,slpsmx, - & slpsmn,slpimx,slpimn,slpjmx,slpjmn, - & abslmx,abslmn,absomx,absomn,abssmx, - & abssmn,absimx,absimn,absjmx,absjmn - &, sihnew - - integer imsk,jmsk,ifp,irtscv,irtacn,irtais,irtsno,irtzor, - & irtalb,irtsot,irtalf,j,irtvet,irtsmc,irtstc,irtveg, - & irtwet,k,iprnt,kk,irttsf,iret,i,igrdbg,iy,im,id, - & icalbl,icalbs,icalfl,ictsfs,lugb,len,lsoil,ih, - & ictsfl,iczors,icplrl,icplrs,iczorl,icalfs,icsnol, - & icsnos,irttg3,me,kqcm,nlunit,sz_nml,ialb - &, irtvmn, irtvmx, irtslp, irtabs, isot, ivegsrc - logical gausm, deads, qcmsk, znlst, monclm, monanl, - & monfcs, monmer, mondif, landice - character(len=*), intent(in) :: input_nml_file(sz_nml) - - integer num_parthds -! -! this is a limited point version of surface program. -! -! this program runs in two different modes: -! -! 1. analysis mode (fh=0.) -! -! this program merges climatology, analysis and forecast guess to create -! new surface fields. if analysis file is given, the program -! uses it if date of the analysis matches with iy,im,id,ih (see note -! below). -! -! 2. forecast mode (fh.gt.0.) -! -! this program interpolates climatology to the date corresponding to the -! forecast hour. if surface analysis file is given, for the corresponding -! dates, the program will use it. -! -! note: -! -! if the date of the analysis does not match given iy,im,id,ih, (and fh), -! the program searches an old analysis by going back 6 hours, then 12 hours, -! then one day upto nrepmx days (parameter statement in the subrotine fixrd. -! now defined as 8). this allows the user to provide non-daily analysis to -! be used. if matching field is not found, the forecast guess will be used. -! -! use of a combined earlier surface analyses and current analysis is -! not allowed (as was done in the old version for snow analysis in which -! old snow analysis is used in combination with initial guess), except -! for sea surface temperature. for sst anolmaly interpolation, you need to -! set lanom=.true. and must provide sst analysis at initial time. -! -! if you want to do complex merging of past and present surface field analysis, -! you need to create a separate file that contains daily surface field. -! -! for a dead start, do not supply fnbgsi or set fnbgsi=' ' -! -! lugb is the unit number used in this subprogram -! len ... number of points on which sfccyc operates -! lsoil .. number of soil layers (2 as of april, 1994) -! iy,im,id,ih .. year, month, day, and hour of initial state. -! fh .. forecast hour -! rla, rlo -- latitude and longitudes of the len points -! sig1t .. sigma level 1 temperature for dead start. should be on gaussian -! grid. if not dead start, no need for dimension but set to zero -! as in the example below. -! -! variable naming conventions: -! -! oro .. orography -! alb .. albedo -! wet .. soil wetness as defined for bucket model -! sno .. snow depth -! zor .. surface roughness length -! vet .. vegetation type -! plr .. plant evaporation resistance -! tsf .. surface skin temperature. sea surface temp. over ocean. -! tg3 .. deep soil temperature (at 500cm) -! stc .. soil temperature (lsoil layrs) -! smc .. soil moisture (lsoil layrs) -! scv .. snow cover (not snow depth) -! ais .. sea ice mask (0 or 1) -! acn .. sea ice concentration (fraction) -! gla .. glacier (permanent snow) mask (0 or 1) -! mxi .. maximum sea ice extent (0 or 1) -! msk .. land ocean mask (0=ocean 1=land) -! cnp .. canopy water content -! cv .. convective cloud cover -! cvb .. convective cloud base -! cvt .. convective cloud top -! sli .. land/sea/sea-ice mask. (1/0/2 respectively) -! veg .. vegetation cover -! sot .. soil type -!cwu [+2l] add sih & sic -! sih .. sea ice thickness -! sic .. sea ice concentration -!clu [+6l] add swd,slc,vmn,vmx,slp,abs -! swd .. actual snow depth -! slc .. liquid soil moisture (lsoil layers) -! vmn .. vegetation cover minimum -! vmx .. vegetation cover maximum -! slp .. slope type -! abs .. maximum snow albedo - -! -! definition of land/sea mask. sllnd for land and slsea for sea. -! definition of sea/ice mask. aicice for ice, aicsea for sea. -! tgice=max ice temperature -! rlapse=lapse rate for sst correction due to surface angulation -! - parameter(sllnd =1.0,slsea =0.0) - parameter(aicice=1.0,aicsea=0.0) - parameter(tgice=271.2) - parameter(rlapse=0.65e-2) -! -! max/min of fields for check and replace. -! -! ???lmx .. max over bare land -! ???lmn .. min over bare land -! ???omx .. max over open ocean -! ???omn .. min over open ocean -! ???smx .. max over snow surface (land and sea-ice) -! ???smn .. min over snow surface (land and sea-ice) -! ???imx .. max over bare sea ice -! ???imn .. min over bare sea ice -! ???jmx .. max over snow covered sea ice -! ???jmn .. min over snow covered sea ice -! - parameter(orolmx=8000.,orolmn=-1000.,oroomx=3000.,oroomn=-1000., - & orosmx=8000.,orosmn=-1000.,oroimx=3000.,oroimn=-1000., - & orojmx=3000.,orojmn=-1000.) -! parameter(alblmx=0.80,alblmn=0.06,albomx=0.06,albomn=0.06, -! & albsmx=0.80,albsmn=0.06,albimx=0.80,albimn=0.80, -! & albjmx=0.80,albjmn=0.80) -!cwu [-3l/+9l] change min/max for alb; add min/max for sih & sic -! parameter(alblmx=0.80,alblmn=0.01,albomx=0.01,albomn=0.01, -! & albsmx=0.80,albsmn=0.01,albimx=0.01,albimn=0.01, -! & albjmx=0.01,albjmn=0.01) -! note: the range values for bare land and snow covered land -! (alblmx, alblmn, albsmx, albsmn) are set below -! based on whether the old or new radiation is selected - parameter(albomx=0.06,albomn=0.06, - & albimx=0.80,albimn=0.06, - & albjmx=0.80,albjmn=0.06) - parameter(sihlmx=0.0,sihlmn=0.0,sihomx=5.0,sihomn=0.0, - & sihsmx=5.0,sihsmn=0.0,sihimx=5.0,sihimn=0.10, - & sihjmx=5.0,sihjmn=0.10,glacir_hice=3.0) -!cwu change sicimn & sicjmn Jan 2015 -! parameter(siclmx=0.0,siclmn=0.0,sicomx=1.0,sicomn=0.0, -! & sicsmx=1.0,sicsmn=0.0,sicimx=1.0,sicimn=0.50, -! & sicjmx=1.0,sicjmn=0.50) -! -! parameter(sihlmx=0.0,sihlmn=0.0,sihomx=8.0,sihomn=0.0, -! & sihsmx=8.0,sihsmn=0.0,sihimx=8.0,sihimn=0.10, -! & sihjmx=8.0,sihjmn=0.10,glacir_hice=3.0) - parameter(siclmx=0.0,siclmn=0.0,sicomx=1.0,sicomn=0.0, - & sicsmx=1.0,sicsmn=0.0,sicimx=1.0,sicimn=0.15, - & sicjmx=1.0,sicjmn=0.15) - - parameter(wetlmx=0.15,wetlmn=0.00,wetomx=0.15,wetomn=0.15, - & wetsmx=0.15,wetsmn=0.15,wetimx=0.15,wetimn=0.15, - & wetjmx=0.15,wetjmn=0.15) - parameter(snolmx=0.0,snolmn=0.0,snoomx=0.0,snoomn=0.0, - & snosmx=55000.,snosmn=0.001,snoimx=0.,snoimn=0.0, - & snojmx=10000.,snojmn=0.01) - parameter(zorlmx=300.,zorlmn=1.0,zoromx=1.0,zoromn=1.e-05, - & zorsmx=300.,zorsmn=1.0,zorimx=1.0,zorimn=1.0, - & zorjmx=1.0,zorjmn=1.0) - parameter(plrlmx=1000.,plrlmn=0.0,plromx=1000.0,plromn=0.0, - & plrsmx=1000.,plrsmn=0.0,plrimx=1000.,plrimn=0.0, - & plrjmx=1000.,plrjmn=0.0) -!clu [-1l/+1l] relax tsfsmx (for noah lsm) - parameter(tsflmx=353.,tsflmn=173.0,tsfomx=313.0,tsfomn=271.2, - & tsfsmx=305.0,tsfsmn=173.0,tsfimx=271.2,tsfimn=173.0, - & tsfjmx=273.16,tsfjmn=173.0) -! parameter(tsflmx=353.,tsflmn=173.0,tsfomx=313.0,tsfomn=271.21, -!* & tsfsmx=273.16,tsfsmn=173.0,tsfimx=271.21,tsfimn=173.0, -! & tsfsmx=305.0,tsfsmn=173.0,tsfimx=271.21,tsfimn=173.0, - parameter(tg3lmx=310.,tg3lmn=200.0,tg3omx=310.0,tg3omn=200.0, - & tg3smx=310.,tg3smn=200.0,tg3imx=310.0,tg3imn=200.0, - & tg3jmx=310.,tg3jmn=200.0) - parameter(stclmx=353.,stclmn=173.0,stcomx=313.0,stcomn=200.0, - & stcsmx=310.,stcsmn=200.0,stcimx=310.0,stcimn=200.0, - & stcjmx=310.,stcjmn=200.0) -!landice mods force a flag value of soil moisture of 1.0 -! at non-land points - parameter(smclmx=0.55,smclmn=0.0,smcomx=1.0,smcomn=1.0, - & smcsmx=0.55,smcsmn=0.0,smcimx=1.0,smcimn=1.0, - & smcjmx=1.0,smcjmn=1.0) - parameter(scvlmx=0.0,scvlmn=0.0,scvomx=0.0,scvomn=0.0, - & scvsmx=1.0,scvsmn=1.0,scvimx=0.0,scvimn=0.0, - & scvjmx=1.0,scvjmn=1.0) - parameter(veglmx=1.0,veglmn=0.0,vegomx=0.0,vegomn=0.0, - & vegsmx=1.0,vegsmn=0.0,vegimx=0.0,vegimn=0.0, - & vegjmx=0.0,vegjmn=0.0) - parameter(vmnlmx=1.0,vmnlmn=0.0,vmnomx=0.0,vmnomn=0.0, - & vmnsmx=1.0,vmnsmn=0.0,vmnimx=0.0,vmnimn=0.0, - & vmnjmx=0.0,vmnjmn=0.0) - parameter(vmxlmx=1.0,vmxlmn=0.0,vmxomx=0.0,vmxomn=0.0, - & vmxsmx=1.0,vmxsmn=0.0,vmximx=0.0,vmximn=0.0, - & vmxjmx=0.0,vmxjmn=0.0) - parameter(slplmx=9.0,slplmn=1.0,slpomx=0.0,slpomn=0.0, - & slpsmx=9.0,slpsmn=1.0,slpimx=0.,slpimn=0., - & slpjmx=0.,slpjmn=0.) -! note: the range values for bare land and snow covered land -! (alblmx, alblmn, albsmx, albsmn) are set below -! based on whether the old or new radiation is selected - parameter(absomx=0.0,absomn=0.0, - & absimx=0.0,absimn=0.0, - & absjmx=0.0,absjmn=0.0) -! vegetation type - parameter(vetlmx=20.,vetlmn=1.0,vetomx=0.0,vetomn=0.0, - & vetsmx=20.,vetsmn=1.0,vetimx=0.,vetimn=0., - & vetjmx=0.,vetjmn=0.) -! soil type - parameter(sotlmx=16.,sotlmn=1.0,sotomx=0.0,sotomn=0.0, - & sotsmx=16.,sotsmn=1.0,sotimx=0.,sotimn=0., - & sotjmx=0.,sotjmn=0.) -! fraction of vegetation for strongly and weakly zeneith angle dependent -! albedo - parameter(alslmx=1.0,alslmn=0.0,alsomx=0.0,alsomn=0.0, - & alssmx=1.0,alssmn=0.0,alsimx=0.0,alsimn=0.0, - & alsjmx=0.0,alsjmn=0.0) -! -! criteria used for monitoring -! - parameter(epstsf=0.01,epsalb=0.001,epssno=0.01, - & epswet=0.01,epszor=0.0000001,epsplr=1.,epsoro=0., - & epssmc=0.0001,epsscv=0.,eptsfc=0.01,epstg3=0.01, - & epsais=0.,epsacn=0.01,epsveg=0.01, - & epssih=0.001,epssic=0.001, - & epsvmn=0.01,epsvmx=0.01,epsabs=0.001,epsslp=0.01, - & epsvet=.01,epssot=.01,epsalf=.001) -! -! quality control of analysis snow and sea ice -! -! qctsfs .. surface temperature above which no snow allowed -! qcsnos .. snow depth above which snow must exist -! qctsfi .. sst above which sea-ice is not allowed -! -!clu relax qctsfs (for noah lsm) -!* parameter(qctsfs=283.16,qcsnos=100.,qctsfi=280.16) -!* parameter(qctsfs=288.16,qcsnos=100.,qctsfi=280.16) - parameter(qctsfs=293.16,qcsnos=100.,qctsfi=280.16) -! -!cwu [-2l] -!* ice concentration for ice limit (55 percent) -! -!* parameter(aislim=0.55) -! -! parameters to obtain snow depth from snow cover and temperature -! -! parameter(snwmin=25.,snwmax=100.) - parameter(snwmin=5.0,snwmax=100.) - real (kind=kind_io8), parameter :: ten=10.0, one=1.0 -! -! coeeficients of blending forecast and interpolated clim -! (or analyzed) fields over sea or land(l) (not for clouds) -! 1.0 = use of forecast -! 0.0 = replace with interpolated analysis -! -! these values are set for analysis mode. -! -! variables land sea -! --------------------------------------------------------- -! surface temperature forecast analysis -! surface temperature forecast forecast (over sea ice) -! albedo analysis analysis -! sea-ice analysis analysis -! snow analysis forecast (over sea ice) -! roughness analysis forecast -! plant resistance analysis analysis -! soil wetness (layer) weighted average analysis -! soil temperature forecast analysis -! canopy waver content forecast forecast -! convective cloud cover forecast forecast -! convective cloud bottm forecast forecast -! convective cloud top forecast forecast -! vegetation cover analysis analysis -! vegetation type analysis analysis -! soil type analysis analysis -! sea-ice thickness forecast forecast -! sea-ice concentration analysis analysis -! vegetation cover min analysis analysis -! vegetation cover max analysis analysis -! max snow albedo analysis analysis -! slope type analysis analysis -! liquid soil wetness analysis-weighted analysis -! actual snow depth analysis-weighted analysis -! -! note: if analysis file is not given, then time interpolated climatology -! is used. if analyiss file is given, it will be used as far as the -! date and time matches. if they do not match, it uses forecast. -! -! critical percentage value for aborting bad points when lgchek=.true. -! - logical lgchek - data lgchek/.true./ - data critp1,critp2,critp3/80.,80.,25./ -! -! integer kpdalb(4), kpdalf(2) -! data kpdalb/212,215,213,216/, kpdalf/214,217/ -! save kpdalb, kpdalf -! -! mask orography and variance on gaussian grid -! - real (kind=kind_io8) slmask(len),orog(len), orog_uf(len) - &, orogd(len) - real (kind=kind_io8) rla(len), rlo(len) -! -! permanent/extremes -! - character*500 fnglac,fnmxic - real (kind=kind_io8), allocatable :: glacir(:),amxice(:),tsfcl0(:) -! -! tsfcl0 is the climatological tsf at fh=0 -! -! climatology surface fields (last character 'c' or 'clm' indicate climatology) -! - character*500 fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fnplrc,fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc, - & fnvegc,fnvetc,fnsotc - &, fnvmnc,fnvmxc,fnslpc,fnabsc, fnalbc2 - real (kind=kind_io8) tsfclm(len), wetclm(len), snoclm(len), - & zorclm(len), albclm(len,4), aisclm(len), - & tg3clm(len), acnclm(len), cnpclm(len), - & cvclm (len), cvbclm(len), cvtclm(len), - & scvclm(len), tsfcl2(len), vegclm(len), - & vetclm(len), sotclm(len), alfclm(len,2), sliclm(len), - & smcclm(len,lsoil), stcclm(len,lsoil) - &, sihclm(len), sicclm(len) - &, vmnclm(len), vmxclm(len), slpclm(len), absclm(len) -! -! analyzed surface fields (last character 'a' or 'anl' indicate analysis) -! - character*500 fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fnplra,fntg3a,fnscva,fnsmca,fnstca,fnacna, - & fnvega,fnveta,fnsota - &, fnvmna,fnvmxa,fnslpa,fnabsa -! - real (kind=kind_io8) tsfanl(len), wetanl(len), snoanl(len), - & zoranl(len), albanl(len,4), aisanl(len), - & tg3anl(len), acnanl(len), cnpanl(len), - & cvanl (len), cvbanl(len), cvtanl(len), - & scvanl(len), tsfan2(len), veganl(len), - & vetanl(len), sotanl(len), alfanl(len,2), slianl(len), - & smcanl(len,lsoil), stcanl(len,lsoil) - &, sihanl(len), sicanl(len) - &, vmnanl(len), vmxanl(len), slpanl(len), absanl(len) -! - real (kind=kind_io8) tsfan0(len) ! sea surface temperature analysis at ft=0. -! -! predicted surface fields (last characters 'fcs' indicates forecast) -! - real (kind=kind_io8) tsffcs(len), wetfcs(len), snofcs(len), - & zorfcs(len), albfcs(len,4), aisfcs(len), - & tg3fcs(len), acnfcs(len), cnpfcs(len), - & cvfcs (len), cvbfcs(len), cvtfcs(len), - & slifcs(len), vegfcs(len), - & vetfcs(len), sotfcs(len), alffcs(len,2), - & smcfcs(len,lsoil), stcfcs(len,lsoil) - &, sihfcs(len), sicfcs(len), sitfcs(len) - &, vmnfcs(len), vmxfcs(len), slpfcs(len), absfcs(len) - &, swdfcs(len), slcfcs(len,lsoil) -! -! ratio of sigma level 1 wind and 10m wind (diagnozed by model and not touched -! in this program). -! - real (kind=kind_io8) f10m (len) - real (kind=kind_io8) fsmcl(25),fsmcs(25),fstcl(25),fstcs(25) - real (kind=kind_io8) fcsmcl(25),fcsmcs(25),fcstcl(25),fcstcs(25) - -!clu [+1l] add swratio (soil moisture liquid-to-total ratio) - real (kind=kind_io8) swratio(len,lsoil) -!clu [+1l] add fixratio (option to adjust slc from smc) - logical fixratio(lsoil) -! - integer icsmcl(25), icsmcs(25), icstcl(25), icstcs(25) -! - real (kind=kind_io8) csmcl(25), csmcs(25) - real (kind=kind_io8) cstcl(25), cstcs(25) -! - real (kind=kind_io8) slmskh(mdata) - character*500 fnmskh - integer kpd7, kpd9 -! - logical icefl1(len), icefl2(len) -! -! input and output surface fields (bges) file names -! -! -! sigma level 1 temperature for dead start -! - real (kind=kind_io8) sig1t(len) -! - character*32 label -! -! = 1 ==> forecast is used -! = 0 ==> analysis (or climatology) is used -! -! output file ... primary surface file for radiation and forecast -! -! rec. 1 label -! rec. 2 date record -! rec. 3 tsf -! rec. 4 soilm(two layers) ----> 4 layers -! rec. 5 snow -! rec. 6 soilt(two layers) ----> 4 layers -! rec. 7 tg3 -! rec. 8 zor -! rec. 9 cv -! rec. 10 cvb -! rec. 11 cvt -! rec. 12 albedo (four types) -! rec. 13 slimsk -! rec. 14 vegetation cover -! rec. 14 plantr -----> skip this record -! rec. 15 f10m -----> canopy -! rec. 16 canopy water content (cnpanl) -----> f10m -! rec. 17 vegetation type -! rec. 18 soil type -! rec. 19 zeneith angle dependent vegetation fraction (two types) -! rec. 20 uustar -! rec. 21 ffmm -! rec. 22 ffhh -!cwu add sih & sic -! rec. 23 sih(one category only) -! rec. 24 sic -!clu [+8l] add prcp, flag, swd, slc, vmn, vmx, slp, abs -! rec. 25 tprcp -! rec. 26 srflag -! rec. 27 swd -! rec. 28 slc (4 layers) -! rec. 29 vmn -! rec. 30 vmx -! rec. 31 slp -! rec. 32 abs - -! -! debug only -! ldebug=.true. creates bges files for climatology and analysis -! lqcbgs=.true. quality controls input bges file before merging (should have been -! qced in the forecast program) -! - logical ldebug,lqcbgs - logical lprnt -! -! debug only -! - character*500 fndclm,fndanl -! - logical lanom - -! - namelist/namsfc/fnglac,fnmxic, - & fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fnplrc,fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc, - & fnvegc,fnvetc,fnsotc,fnalbc2, - & fnvmnc,fnvmxc,fnslpc,fnabsc, - & fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fnplra,fntg3a,fnscva,fnsmca,fnstca,fnacna, - & fnvega,fnveta,fnsota, - & fnvmna,fnvmxa,fnslpa,fnabsa, - & fnmskh, - & ldebug,lgchek,lqcbgs,critp1,critp2,critp3, - & fndclm,fndanl, - & lanom, - & ftsfl,ftsfs,falbl,falbs,faisl,faiss,fsnol,fsnos, - & fzorl,fzors,fplrl,fplrs,fsmcl,fsmcs, - & fstcl,fstcs,fvegl,fvegs,fvetl,fvets,fsotl,fsots, - & fctsfl,fctsfs,fcalbl,fcalbs,fcsnol,fcsnos, - & fczorl,fczors,fcplrl,fcplrs,fcsmcl,fcsmcs, - & fcstcl,fcstcs,fsalfl,fsalfs,fcalfl,flalfs, - & fsihl,fsicl,fsihs,fsics,aislim,sihnew, - & fvmnl,fvmns,fvmxl,fvmxs,fslpl,fslps, - & fabsl,fabss, - & ictsfl,ictsfs,icalbl,icalbs,icsnol,icsnos, - & iczorl,iczors,icplrl,icplrs,icsmcl,icsmcs, - & icstcl,icstcs,icalfl,icalfs, - & gausm, deads, qcmsk, znlst, - & monclm, monanl, monfcs, monmer, mondif, igrdbg, - & blnmsk, bltmsk, landice -! - data gausm/.true./, deads/.false./, blnmsk/0.0/, bltmsk/90.0/ - &, qcmsk/.false./, znlst/.false./, igrdbg/-1/ - &, monclm/.false./, monanl/.false./, monfcs/.false./ - &, monmer/.false./, mondif/.false./, landice/.true./ -! -! defaults file names -! - data fnmskh/'global_slmask.t126.grb'/ - data fnalbc/'global_albedo4.1x1.grb'/ - data fnalbc2/'global_albedo4.1x1.grb'/ - data fntsfc/'global_sstclim.2x2.grb'/ - data fnsotc/'global_soiltype.1x1.grb'/ - data fnvegc/'global_vegfrac.1x1.grb'/ - data fnvetc/'global_vegtype.1x1.grb'/ - data fnglac/'global_glacier.2x2.grb'/ - data fnmxic/'global_maxice.2x2.grb'/ - data fnsnoc/'global_snoclim.1.875.grb'/ - data fnzorc/'global_zorclim.1x1.grb'/ - data fnaisc/'global_iceclim.2x2.grb'/ - data fntg3c/'global_tg3clim.2.6x1.5.grb'/ - data fnsmcc/'global_soilmcpc.1x1.grb'/ -!clu [+4l] add fn()c for vmn, vmx, abs, slp - data fnvmnc/'global_shdmin.0.144x0.144.grb'/ - data fnvmxc/'global_shdmax.0.144x0.144.grb'/ - data fnslpc/'global_slope.1x1.grb'/ - data fnabsc/'global_snoalb.1x1.grb'/ -! - data fnwetc/' '/ - data fnplrc/' '/ - data fnstcc/' '/ - data fnscvc/' '/ - data fnacnc/' '/ -! - data fntsfa/' '/ - data fnweta/' '/ - data fnsnoa/' '/ - data fnzora/' '/ - data fnalba/' '/ - data fnaisa/' '/ - data fnplra/' '/ - data fntg3a/' '/ - data fnsmca/' '/ - data fnstca/' '/ - data fnscva/' '/ - data fnacna/' '/ - data fnvega/' '/ - data fnveta/' '/ - data fnsota/' '/ -!clu [+4l] add fn()a for vmn, vmx, abs, slp - data fnvmna/' '/ - data fnvmxa/' '/ - data fnslpa/' '/ - data fnabsa/' '/ -! - data ldebug/.false./, lqcbgs/.true./ - data fndclm/' '/ - data fndanl/' '/ - data lanom/.false./ -! -! default relaxation time in hours to analysis or climatology - data ftsfl/99999.0/, ftsfs/0.0/ - data falbl/0.0/, falbs/0.0/ - data falfl/0.0/, falfs/0.0/ - data faisl/0.0/, faiss/0.0/ - data fsnol/0.0/, fsnos/99999.0/ - data fzorl/0.0/, fzors/99999.0/ - data fplrl/0.0/, fplrs/0.0/ - data fvetl/0.0/, fvets/99999.0/ - data fsotl/0.0/, fsots/99999.0/ - data fvegl/0.0/, fvegs/99999.0/ -!cwu [+4l] add f()l and f()s for sih, sic and aislim, sihlim - data fsihl/99999.0/, fsihs/99999.0/ -! data fsicl/99999.0/, fsics/99999.0/ - data fsicl/0.0/, fsics/0.0/ -! default ice concentration limit (50%), new ice thickness (20cm) -!cwu change ice concentration limit (15%) Jan 2015 -! data aislim/0.50/, sihnew/0.2/ - data aislim/0.15/, sihnew/0.2/ -!clu [+4l] add f()l and f()s for vmn, vmx, abs, slp - data fvmnl/0.0/, fvmns/99999.0/ - data fvmxl/0.0/, fvmxs/99999.0/ - data fslpl/0.0/, fslps/99999.0/ - data fabsl/0.0/, fabss/99999.0/ -! default relaxation time in hours to climatology if analysis missing - data fctsfl/99999.0/, fctsfs/99999.0/ - data fcalbl/99999.0/, fcalbs/99999.0/ - data fcsnol/99999.0/, fcsnos/99999.0/ - data fczorl/99999.0/, fczors/99999.0/ - data fcplrl/99999.0/, fcplrs/99999.0/ -! default flag to apply climatological annual cycle - data ictsfl/0/, ictsfs/1/ - data icalbl/1/, icalbs/1/ - data icalfl/1/, icalfs/1/ - data icsnol/0/, icsnos/0/ - data iczorl/1/, iczors/0/ - data icplrl/1/, icplrs/0/ -! - data ccnp/1.0/ - data ccv/1.0/, ccvb/1.0/, ccvt/1.0/ -! - data ifp/0/ -! - save ifp,fnglac,fnmxic, - & fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fnplrc,fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc,fnvegc, - & fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fnplra,fntg3a,fnscva,fnsmca,fnstca,fnacna,fnvega, - & fnvetc,fnveta, - & fnsotc,fnsota, -!clu [+2l] add fn()c and fn()a for vmn, vmx, slp, abs - & fnvmnc,fnvmxc,fnabsc,fnslpc, - & fnvmna,fnvmxa,fnabsa,fnslpa, - & ldebug,lgchek,lqcbgs,critp1,critp2,critp3, - & fndclm,fndanl, - & lanom, - & ftsfl,ftsfs,falbl,falbs,faisl,faiss,fsnol,fsnos, - & fzorl,fzors,fplrl,fplrs,fsmcl,fsmcs,falfl,falfs, - & fstcl,fstcs,fvegl,fvegs,fvetl,fvets,fsotl,fsots, - & fctsfl,fctsfs,fcalbl,fcalbs,fcsnol,fcsnos, - & fczorl,fczors,fcplrl,fcplrs,fcsmcl,fcsmcs, - & fcstcl,fcstcs,fcalfl,fcalfs, -!cwu [+1l] add f()l and f()s for sih, sic and aislim, sihnew - & fsihl,fsihs,fsicl,fsics,aislim,sihnew, -!clu [+2l] add f()l and f()s for vmn, vmx, slp, abs - & fvmnl,fvmns,fvmxl,fvmxs,fslpl,fslps, - & fabsl,fabss, - & ictsfl,ictsfs,icalbl,icalbs,icsnol,icsnos, - & iczorl,iczors,icplrl,icplrs,icsmcl,icsmcs, - & icstcl,icstcs,icalfl,icalfs, - & gausm, deads, qcmsk, - & monclm, monanl, monfcs, monmer, mondif, igrdbg, - & grboro, grbmsk, -! - & ctsfl, ctsfs, calbl, calfl, calbs, calfs, csmcs, - & csnol, csnos, czorl, czors, cplrl, cplrs, cstcl, - & cstcs, cvegl, cvwgs, cvetl, cvets, csotl, csots, - & csmcl -!cwu [+1l] add c()l and c()s for sih, sic - &, csihl, csihs, csicl, csics -!clu [+2l] add c()l and c()s for vmn, vmx, slp, abs - &, cvmnl, cvmns, cvmxl, cvmxs, cslpl, cslps, - & cabsl, cabss - &, imsk, jmsk, slmskh, blnmsk, bltmsk - &, glacir, amxice, tsfcl0 - &, caisl, caiss, cvegs -! - lprnt = .false. - iprnt = 1 -! do i=1,len -! if (ifp .eq. 0 .and. rla(i) .gt. 80.0) print *,' rla=',rla(i) -! *,' rlo=',rlo(i) -! tem1 = abs(rla(i) - 48.75) -! tem2 = abs(rlo(i) - (-68.50)) -! if(tem1 .lt. 0.25 .and. tem2 .lt. 0.50) then -! lprnt = .true. -! iprnt = i -! print *,' lprnt=',lprnt,' iprnt=',iprnt -! print *,' rla(i)=',rla(i),' rlo(i)=',rlo(i) -! endif -! enddo - if (ialb == 1) then - kpdabs = kpdabs_1 - kpdalb = kpdalb_1 - alblmx = .99 - albsmx = .99 - alblmn = .01 - albsmn = .01 - abslmx = 1.0 - abssmx = 1.0 - abssmn = .01 - abslmn = .01 - else - kpdabs = kpdabs_0 - kpdalb = kpdalb_0 - alblmx = .80 - albsmx = .80 - alblmn = .06 - albsmn = .06 - abslmx = .80 - abssmx = .80 - abslmn = .01 - abssmn = .01 - endif - if(ifp.eq.0) then - ifp = 1 - do k=1,lsoil - fsmcl(k) = 99999. - fsmcs(k) = 0. - fstcl(k) = 99999. - fstcs(k) = 0. - enddo -#ifdef INTERNAL_FILE_NML - read(input_nml_file, nml=namsfc) -#else -! print *,' in sfcsub nlunit=',nlunit,' me=',me,' ialb=',ialb - rewind(nlunit) - read (nlunit,namsfc) -#endif -! write(6,namsfc) -! - if (me .eq. 0) then - print *,'ftsfl,falbl,faisl,fsnol,fzorl=', - & ftsfl,falbl,faisl,fsnol,fzorl - print *,'fsmcl=',fsmcl(1:lsoil) - print *,'fstcl=',fstcl(1:lsoil) - print *,'ftsfs,falbs,faiss,fsnos,fzors=', - & ftsfs,falbs,faiss,fsnos,fzors - print *,'fsmcs=',fsmcs(1:lsoil) - print *,'fstcs=',fstcs(1:lsoil) - print *,' aislim=',aislim,' sihnew=',sihnew - print *,' isot=', isot,' ivegsrc=',ivegsrc - endif - - if (ivegsrc == 2) then ! sib - veg_type_landice=13 - else - veg_type_landice=15 - endif - if (isot == 0) then - soil_type_landice=9 - else - soil_type_landice=16 - endif -! - deltf = deltsfc / 24.0 -! - ctsfl=0. !... tsfc over land - if(ftsfl.ge.99999.) ctsfl=1. - if((ftsfl.gt.0.).and.(ftsfl.lt.99999)) ctsfl=exp(-deltf/ftsfl) -! - ctsfs=0. !... tsfc over sea - if(ftsfs.ge.99999.) ctsfs=1. - if((ftsfs.gt.0.).and.(ftsfs.lt.99999)) ctsfs=exp(-deltf/ftsfs) -! - do k=1,lsoil - csmcl(k)=0. !... soilm over land - if(fsmcl(k).ge.99999.) csmcl(k)=1. - if((fsmcl(k).gt.0.).and.(fsmcl(k).lt.99999)) - & csmcl(k)=exp(-deltf/fsmcl(k)) - csmcs(k)=0. !... soilm over sea - if(fsmcs(k).ge.99999.) csmcs(k)=1. - if((fsmcs(k).gt.0.).and.(fsmcs(k).lt.99999)) - & csmcs(k)=exp(-deltf/fsmcs(k)) - enddo -! - calbl=0. !... albedo over land - if(falbl.ge.99999.) calbl=1. - if((falbl.gt.0.).and.(falbl.lt.99999)) calbl=exp(-deltf/falbl) -! - calfl=0. !... fraction field for albedo over land - if(falfl.ge.99999.) calfl=1. - if((falfl.gt.0.).and.(falfl.lt.99999)) calfl=exp(-deltf/falfl) -! - calbs=0. !... albedo over sea - if(falbs.ge.99999.) calbs=1. - if((falbs.gt.0.).and.(falbs.lt.99999)) calbs=exp(-deltf/falbs) -! - calfs=0. !... fraction field for albedo over sea - if(falfs.ge.99999.) calfs=1. - if((falfs.gt.0.).and.(falfs.lt.99999)) calfs=exp(-deltf/falfs) -! - caisl=0. !... sea ice over land - if(faisl.ge.99999.) caisl=1. - if((faisl.gt.0.).and.(faisl.lt.99999)) caisl=1. -! - caiss=0. !... sea ice over sea - if(faiss.ge.99999.) caiss=1. - if((faiss.gt.0.).and.(faiss.lt.99999)) caiss=1. -! - csnol=0. !... snow over land - if(fsnol.ge.99999.) csnol=1. - if((fsnol.gt.0.).and.(fsnol.lt.99999)) csnol=exp(-deltf/fsnol) -! using the same way to bending snow as narr when fsnol is the negative value -! the magnitude of fsnol is the thread to determine the lower and upper bound -! of final swe - if(fsnol.lt.0.)csnol=fsnol -! - csnos=0. !... snow over sea - if(fsnos.ge.99999.) csnos=1. - if((fsnos.gt.0.).and.(fsnos.lt.99999)) csnos=exp(-deltf/fsnos) -! - czorl=0. !... roughness length over land - if(fzorl.ge.99999.) czorl=1. - if((fzorl.gt.0.).and.(fzorl.lt.99999)) czorl=exp(-deltf/fzorl) -! - czors=0. !... roughness length over sea - if(fzors.ge.99999.) czors=1. - if((fzors.gt.0.).and.(fzors.lt.99999)) czors=exp(-deltf/fzors) -! -! cplrl=0. !... plant resistance over land -! if(fplrl.ge.99999.) cplrl=1. -! if((fplrl.gt.0.).and.(fplrl.lt.99999)) cplrl=exp(-deltf/fplrl) -! -! cplrs=0. !... plant resistance over sea -! if(fplrs.ge.99999.) cplrs=1. -! if((fplrs.gt.0.).and.(fplrs.lt.99999)) cplrs=exp(-deltf/fplrs) -! - do k=1,lsoil - cstcl(k)=0. !... soilt over land - if(fstcl(k).ge.99999.) cstcl(k)=1. - if((fstcl(k).gt.0.).and.(fstcl(k).lt.99999)) - & cstcl(k)=exp(-deltf/fstcl(k)) - cstcs(k)=0. !... soilt over sea - if(fstcs(k).ge.99999.) cstcs(k)=1. - if((fstcs(k).gt.0.).and.(fstcs(k).lt.99999)) - & cstcs(k)=exp(-deltf/fstcs(k)) - enddo -! - cvegl=0. !... vegetation fraction over land - if(fvegl.ge.99999.) cvegl=1. - if((fvegl.gt.0.).and.(fvegl.lt.99999)) cvegl=exp(-deltf/fvegl) -! - cvegs=0. !... vegetation fraction over sea - if(fvegs.ge.99999.) cvegs=1. - if((fvegs.gt.0.).and.(fvegs.lt.99999)) cvegs=exp(-deltf/fvegs) -! - cvetl=0. !... vegetation type over land - if(fvetl.ge.99999.) cvetl=1. - if((fvetl.gt.0.).and.(fvetl.lt.99999)) cvetl=exp(-deltf/fvetl) -! - cvets=0. !... vegetation type over sea - if(fvets.ge.99999.) cvets=1. - if((fvets.gt.0.).and.(fvets.lt.99999)) cvets=exp(-deltf/fvets) -! - csotl=0. !... soil type over land - if(fsotl.ge.99999.) csotl=1. - if((fsotl.gt.0.).and.(fsotl.lt.99999)) csotl=exp(-deltf/fsotl) -! - csots=0. !... soil type over sea - if(fsots.ge.99999.) csots=1. - if((fsots.gt.0.).and.(fsots.lt.99999)) csots=exp(-deltf/fsots) - -!cwu [+16l]--------------------------------------------------------------- -! - csihl=0. !... sea ice thickness over land - if(fsihl.ge.99999.) csihl=1. - if((fsihl.gt.0.).and.(fsihl.lt.99999)) csihl=exp(-deltf/fsihl) -! - csihs=0. !... sea ice thickness over sea - if(fsihs.ge.99999.) csihs=1. - if((fsihs.gt.0.).and.(fsihs.lt.99999)) csihs=exp(-deltf/fsihs) -! - csicl=0. !... sea ice concentration over land - if(fsicl.ge.99999.) csicl=1. - if((fsicl.gt.0.).and.(fsicl.lt.99999)) csicl=exp(-deltf/fsicl) -! - csics=0. !... sea ice concentration over sea - if(fsics.ge.99999.) csics=1. - if((fsics.gt.0.).and.(fsics.lt.99999)) csics=exp(-deltf/fsics) - -!clu [+32l]--------------------------------------------------------------- -! - cvmnl=0. !... min veg cover over land - if(fvmnl.ge.99999.) cvmnl=1. - if((fvmnl.gt.0.).and.(fvmnl.lt.99999)) cvmnl=exp(-deltf/fvmnl) -! - cvmns=0. !... min veg cover over sea - if(fvmns.ge.99999.) cvmns=1. - if((fvmns.gt.0.).and.(fvmns.lt.99999)) cvmns=exp(-deltf/fvmns) -! - cvmxl=0. !... max veg cover over land - if(fvmxl.ge.99999.) cvmxl=1. - if((fvmxl.gt.0.).and.(fvmxl.lt.99999)) cvmxl=exp(-deltf/fvmxl) -! - cvmxs=0. !... max veg cover over sea - if(fvmxs.ge.99999.) cvmxs=1. - if((fvmxs.gt.0.).and.(fvmxs.lt.99999)) cvmxs=exp(-deltf/fvmxs) -! - cslpl=0. !... slope type over land - if(fslpl.ge.99999.) cslpl=1. - if((fslpl.gt.0.).and.(fslpl.lt.99999)) cslpl=exp(-deltf/fslpl) -! - cslps=0. !... slope type over sea - if(fslps.ge.99999.) cslps=1. - if((fslps.gt.0.).and.(fslps.lt.99999)) cslps=exp(-deltf/fslps) -! - cabsl=0. !... snow albedo over land - if(fabsl.ge.99999.) cabsl=1. - if((fabsl.gt.0.).and.(fabsl.lt.99999)) cabsl=exp(-deltf/fabsl) -! - cabss=0. !... snow albedo over sea - if(fabss.ge.99999.) cabss=1. - if((fabss.gt.0.).and.(fabss.lt.99999)) cabss=exp(-deltf/fabss) -!clu ---------------------------------------------------------------------- -! -! read a high resolution mask field for use in grib interpolation -! - call hmskrd(lugb,imsk,jmsk,fnmskh, - & kpdmsk,slmskh,gausm,blnmsk,bltmsk,me) -! if (qcmsk) call qcmask(slmskh,sllnd,slsea,imsk,jmsk,rla,rlo) -! - if (me .eq. 0) then - write(6,*) ' ' - write(6,*) ' lugb=',lugb,' len=',len, ' lsoil=',lsoil - write(6,*) 'iy=',iy,' im=',im,' id=',id,' ih=',ih,' fh=',fh - &, ' sig1t(1)=',sig1t(1) - &, ' gausm=',gausm,' blnmsk=',blnmsk,' bltmsk=',bltmsk - write(6,*) ' ' - endif -! -! reading permanent/extreme features (glacier points and maximum ice extent) -! - allocate (tsfcl0(len)) - allocate (glacir(len)) - allocate (amxice(len)) -! -! read glacier -! - kpd9 = -1 - kpd7 = -1 - call fixrdc(lugb,fnglac,kpdgla,kpd7,kpd9,slmask, - & glacir,len,iret - &, imsk, jmsk, slmskh, gausm, blnmsk, bltmsk - &, rla, rlo, me) -! znnt=1. -! call nntprt(glacir,len,znnt) -! -! read maximum ice extent -! - kpd7 = -1 - call fixrdc(lugb,fnmxic,kpdmxi,kpd7,kpd9,slmask, - & amxice,len,iret - &, imsk, jmsk, slmskh, gausm, blnmsk, bltmsk - &, rla, rlo, me) -! znnt=1. -! call nntprt(amxice,len,znnt) -! - crit=0.5 - call rof01(glacir,len,'ge',crit) - call rof01(amxice,len,'ge',crit) -! -! quality control max ice limit based on glacier points -! - call qcmxice(glacir,amxice,len,me) -! - endif ! first time loop finished -! - do i=1,len - sliclm(i) = 1. - snoclm(i) = 0. - icefl1(i) = .true. - enddo -! if(lprnt) print *,' tsffcsin=',tsffcs(iprnt) -! -! read climatology fields -! - if (me .eq. 0) then - write(6,*) '==============' - write(6,*) 'climatology' - write(6,*) '==============' - endif -! - percrit=critp1 -! - call clima(lugb,iy,im,id,ih,fh,len,lsoil,slmask, - & fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc,fnvegc, - & fnvetc,fnsotc, - & fnvmnc,fnvmxc,fnslpc,fnabsc, - & tsfclm,tsfcl2,wetclm,snoclm,zorclm,albclm,aisclm, - & tg3clm,cvclm ,cvbclm,cvtclm, - & cnpclm,smcclm,stcclm,sliclm,scvclm,acnclm,vegclm, - & vetclm,sotclm,alfclm, - & vmnclm,vmxclm,slpclm,absclm, - & kpdtsf,kpdwet,kpdsno,kpdzor,kpdalb,kpdais, - & kpdtg3,kpdscv,kpdacn,kpdsmc,kpdstc,kpdveg, - & kpdvet,kpdsot,kpdalf,tsfcl0, - & kpdvmn,kpdvmx,kpdslp,kpdabs, - & deltsfc, lanom - &, imsk, jmsk, slmskh, rla, rlo, gausm, blnmsk, bltmsk,me - &, lprnt, iprnt, fnalbc2, ialb) -! if(lprnt) print *,'tsfclm=',tsfclm(iprnt),' tsfcl2=',tsfcl2(iprnt) -! -! scale surface roughness and albedo to model required units -! - zsca=100. - call scale(zorclm,len,zsca) - zsca=0.01 - call scale(albclm,len,zsca) - call scale(albclm(1,2),len,zsca) - call scale(albclm(1,3),len,zsca) - call scale(albclm(1,4),len,zsca) - call scale(alfclm,len,zsca) - call scale(alfclm(1,2),len,zsca) -!clu [+4l] scale vmn, vmx, abs from percent to fraction - zsca=0.01 - call scale(vmnclm,len,zsca) - call scale(vmxclm,len,zsca) - call scale(absclm,len,zsca) - -! -! set albedo over ocean to albomx -! - call albocn(albclm,slmask,albomx,len) -! -! make sure vegetation type and soil type are non zero over land -! - call landtyp(vetclm,sotclm,slpclm,slmask,len) -! -!cwu [-1l/+1l] -!* ice concentration or ice mask (only ice mask used in the model now) -! ice concentration and ice mask (both are used in the model now) -! - if(fnaisc(1:8).ne.' ') then -!cwu [+5l/-1l] update sihclm, sicclm - do i=1,len - sihclm(i) = 3.0*aisclm(i) - sicclm(i) = aisclm(i) - if(slmask(i).eq.0..and.glacir(i).eq.1..and. - & sicclm(i).ne.1.) then - sicclm(i) = sicimx - sihfcs(i) = glacir_hice - endif - enddo - crit=aislim -!* crit=0.5 - call rof01(aisclm,len,'ge',crit) - elseif(fnacnc(1:8).ne.' ') then -!cwu [+4l] update sihclm, sicclm - do i=1,len - sihclm(i) = 3.0*acnclm(i) - sicclm(i) = acnclm(i) - if(slmask(i).eq.0..and.glacir(i).eq.1..and. - & sicclm(i).ne.1.) then - sicclm(i) = sicimx - sihfcs(i) = glacir_hice - endif - enddo - call rof01(acnclm,len,'ge',aislim) - do i=1,len - aisclm(i) = acnclm(i) - enddo - endif -! -! quality control of sea ice mask -! - call qcsice(aisclm,glacir,amxice,aicice,aicsea,sllnd,slmask, - & rla,rlo,len,me) -! -! set ocean/land/sea-ice mask -! - call setlsi(slmask,aisclm,len,aicice,sliclm) -! if(lprnt) print *,' aisclm=',aisclm(iprnt),' sliclm=' -! *,sliclm(iprnt),' slmask=',slmask(iprnt) -! -! write(6,*) 'sliclm' -! znnt=1. -! call nntprt(sliclm,len,znnt) -! -! quality control of snow -! - call qcsnow(snoclm,slmask,aisclm,glacir,len,snosmx,landice,me) -! - call setzro(snoclm,epssno,len) -! -! snow cover handling (we assume climatological snow depth is available) -! quality control of snow depth (note that snow should be corrected first -! because it influences tsf -! - kqcm=1 - call qcmxmn('snow ',snoclm,sliclm,snoclm,icefl1, - & snolmx,snolmn,snoomx,snoomn,snoimx,snoimn, - & snojmx,snojmn,snosmx,snosmn,epssno, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! write(6,*) 'snoclm' -! znnt=1. -! call nntprt(snoclm,len,znnt) -! -! get snow cover from snow depth array -! - if(fnscvc(1:8).eq.' ') then - call getscv(snoclm,scvclm,len) - endif -! -! set tsfc over snow to tsfsmx if greater -! - call snosfc(snoclm,tsfclm,tsfsmx,len,me) -! call snosfc(snoclm,tsfcl2,tsfsmx,len) - -! -! quality control -! - do i=1,len - icefl2(i) = sicclm(i) .gt. 0.99999 - enddo - kqcm=1 - call qcmxmn('tsfc ',tsfclm,sliclm,snoclm,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('tsf2 ',tsfcl2,sliclm,snoclm,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - do kk = 1, 4 - call qcmxmn('albc ',albclm(1,kk),sliclm,snoclm,icefl1, - & alblmx,alblmn,albomx,albomn,albimx,albimn, - & albjmx,albjmn,albsmx,albsmn,epsalb, - & rla,rlo,len,kqcm,percrit,lgchek,me) - enddo - if(fnwetc(1:8).ne.' ') then - call qcmxmn('wetc ',wetclm,sliclm,snoclm,icefl1, - & wetlmx,wetlmn,wetomx,wetomn,wetimx,wetimn, - & wetjmx,wetjmn,wetsmx,wetsmn,epswet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('zorc ',zorclm,sliclm,snoclm,icefl1, - & zorlmx,zorlmn,zoromx,zoromn,zorimx,zorimn, - & zorjmx,zorjmn,zorsmx,zorsmn,epszor, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! if(fnplrc(1:8).ne.' ') then -! call qcmxmn('plntc ',plrclm,sliclm,snoclm,icefl1, -! & plrlmx,plrlmn,plromx,plromn,plrimx,plrimn, -! & plrjmx,plrjmn,plrsmx,plrsmn,epsplr, -! & rla,rlo,len,kqcm,percrit,lgchek,me) -! endif - call qcmxmn('tg3c ',tg3clm,sliclm,snoclm,icefl1, - & tg3lmx,tg3lmn,tg3omx,tg3omn,tg3imx,tg3imn, - & tg3jmx,tg3jmn,tg3smx,tg3smn,epstg3, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! -! get soil temp and moisture (after all the qcs are completed) -! - if(fnsmcc(1:8).eq.' ') then - call getsmc(wetclm,len,lsoil,smcclm,me) - endif - call qcmxmn('smc1c ',smcclm(1,1),sliclm,snoclm,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc2c ',smcclm(1,2),sliclm,snoclm,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add smcclm(3:4) - if(lsoil.gt.2) then - call qcmxmn('smc3c ',smcclm(1,3),sliclm,snoclm,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc4c ',smcclm(1,4),sliclm,snoclm,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - if(fnstcc(1:8).eq.' ') then - call getstc(tsfclm,tg3clm,sliclm,len,lsoil,stcclm,tsfimx) - endif - call qcmxmn('stc1c ',stcclm(1,1),sliclm,snoclm,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc2c ',stcclm(1,2),sliclm,snoclm,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add stcclm(3:4) - if(lsoil.gt.2) then - call qcmxmn('stc3c ',stcclm(1,3),sliclm,snoclm,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc4c ',stcclm(1,4),sliclm,snoclm,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('vegc ',vegclm,sliclm,snoclm,icefl1, - & veglmx,veglmn,vegomx,vegomn,vegimx,vegimn, - & vegjmx,vegjmn,vegsmx,vegsmn,epsveg, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vetc ',vetclm,sliclm,snoclm,icefl1, - & vetlmx,vetlmn,vetomx,vetomn,vetimx,vetimn, - & vetjmx,vetjmn,vetsmx,vetsmn,epsvet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sotc ',sotclm,sliclm,snoclm,icefl1, - & sotlmx,sotlmn,sotomx,sotomn,sotimx,sotimn, - & sotjmx,sotjmn,sotsmx,sotsmn,epssot, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!cwu [+8l] --------------------------------------------------------------- - call qcmxmn('sihc ',sihclm,sliclm,snoclm,icefl1, - & sihlmx,sihlmn,sihomx,sihomn,sihimx,sihimn, - & sihjmx,sihjmn,sihsmx,sihsmn,epssih, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sicc ',sicclm,sliclm,snoclm,icefl1, - & siclmx,siclmn,sicomx,sicomn,sicimx,sicimn, - & sicjmx,sicjmn,sicsmx,sicsmn,epssic, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+16l] --------------------------------------------------------------- - call qcmxmn('vmnc ',vmnclm,sliclm,snoclm,icefl1, - & vmnlmx,vmnlmn,vmnomx,vmnomn,vmnimx,vmnimn, - & vmnjmx,vmnjmn,vmnsmx,vmnsmn,epsvmn, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vmxc ',vmxclm,sliclm,snoclm,icefl1, - & vmxlmx,vmxlmn,vmxomx,vmxomn,vmximx,vmximn, - & vmxjmx,vmxjmn,vmxsmx,vmxsmn,epsvmx, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('slpc ',slpclm,sliclm,snoclm,icefl1, - & slplmx,slplmn,slpomx,slpomn,slpimx,slpimn, - & slpjmx,slpjmn,slpsmx,slpsmn,epsslp, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('absc ',absclm,sliclm,snoclm,icefl1, - & abslmx,abslmn,absomx,absomn,absimx,absimn, - & absjmx,absjmn,abssmx,abssmn,epsabs, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu ---------------------------------------------------------------------- -! -! monitoring prints -! - if (monclm) then - if (me .eq. 0) then - print *,' ' - print *,'monitor of time and space interpolated climatology' - print *,' ' -! call count(sliclm,snoclm,len) - print *,' ' - call monitr('tsfclm',tsfclm,sliclm,snoclm,len) - call monitr('albclm',albclm(1,1),sliclm,snoclm,len) - call monitr('albclm',albclm(1,2),sliclm,snoclm,len) - call monitr('albclm',albclm(1,3),sliclm,snoclm,len) - call monitr('albclm',albclm(1,4),sliclm,snoclm,len) - call monitr('aisclm',aisclm,sliclm,snoclm,len) - call monitr('snoclm',snoclm,sliclm,snoclm,len) - call monitr('scvclm',scvclm,sliclm,snoclm,len) - call monitr('smcclm1',smcclm(1,1),sliclm,snoclm,len) - call monitr('smcclm2',smcclm(1,2),sliclm,snoclm,len) - call monitr('stcclm1',stcclm(1,1),sliclm,snoclm,len) - call monitr('stcclm2',stcclm(1,2),sliclm,snoclm,len) -!clu [+4l] add smcclm(3:4) and stcclm(3:4) - if(lsoil.gt.2) then - call monitr('smcclm3',smcclm(1,3),sliclm,snoclm,len) - call monitr('smcclm4',smcclm(1,4),sliclm,snoclm,len) - call monitr('stcclm3',stcclm(1,3),sliclm,snoclm,len) - call monitr('stcclm4',stcclm(1,4),sliclm,snoclm,len) - endif - call monitr('tg3clm',tg3clm,sliclm,snoclm,len) - call monitr('zorclm',zorclm,sliclm,snoclm,len) -! if (gaus) then - call monitr('cvaclm',cvclm ,sliclm,snoclm,len) - call monitr('cvbclm',cvbclm,sliclm,snoclm,len) - call monitr('cvtclm',cvtclm,sliclm,snoclm,len) -! endif - call monitr('sliclm',sliclm,sliclm,snoclm,len) -! call monitr('plrclm',plrclm,sliclm,snoclm,len) - call monitr('orog ',orog ,sliclm,snoclm,len) - call monitr('vegclm',vegclm,sliclm,snoclm,len) - call monitr('vetclm',vetclm,sliclm,snoclm,len) - call monitr('sotclm',sotclm,sliclm,snoclm,len) -!cwu [+2l] add sih, sic - call monitr('sihclm',sihclm,sliclm,snoclm,len) - call monitr('sicclm',sicclm,sliclm,snoclm,len) -!clu [+4l] add vmn, vmx, slp, abs - call monitr('vmnclm',vmnclm,sliclm,snoclm,len) - call monitr('vmxclm',vmxclm,sliclm,snoclm,len) - call monitr('slpclm',slpclm,sliclm,snoclm,len) - call monitr('absclm',absclm,sliclm,snoclm,len) - endif - endif -! -! - if (me .eq. 0) then - write(6,*) '==============' - write(6,*) ' analysis' - write(6,*) '==============' - endif -! -! fill in analysis array with climatology before reading analysis. -! - call filanl(tsfanl,tsfan2,wetanl,snoanl,zoranl,albanl,aisanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,scvanl,veganl, - & vetanl,sotanl,alfanl, - & sihanl,sicanl, - & vmnanl,vmxanl,slpanl,absanl, - & tsfclm,tsfcl2,wetclm,snoclm,zorclm,albclm,aisclm, - & tg3clm,cvclm ,cvbclm,cvtclm, - & cnpclm,smcclm,stcclm,sliclm,scvclm,vegclm, - & vetclm,sotclm,alfclm, - & sihclm,sicclm, - & vmnclm,vmxclm,slpclm,absclm, - & len,lsoil) -! -! reverse scaling to match with grib analysis input -! - zsca=0.01 - call scale(zoranl,len, zsca) - zsca=100. - call scale(albanl,len,zsca) - call scale(albanl(1,2),len,zsca) - call scale(albanl(1,3),len,zsca) - call scale(albanl(1,4),len,zsca) - call scale(alfanl,len,zsca) - call scale(alfanl(1,2),len,zsca) -!clu [+4l] reverse scale for vmn, vmx, abs - zsca=100. - call scale(vmnanl,len,zsca) - call scale(vmxanl,len,zsca) - call scale(absanl,len,zsca) -! - percrit=critp2 -! -! read analysis fields -! - call analy(lugb,iy,im,id,ih,fh,len,lsoil,slmask, - & fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fntg3a,fnscva,fnsmca,fnstca,fnacna,fnvega, - & fnveta,fnsota, - & fnvmna,fnvmxa,fnslpa,fnabsa, - & tsfanl,wetanl,snoanl,zoranl,albanl,aisanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & smcanl,stcanl,slianl,scvanl,acnanl,veganl, - & vetanl,sotanl,alfanl,tsfan0, - & vmnanl,vmxanl,slpanl,absanl, - & kpdtsf,kpdwet,kpdsno,kpdsnd,kpdzor,kpdalb,kpdais, - & kpdtg3,kpdscv,kpdacn,kpdsmc,kpdstc,kpdveg, - & kpdvet,kpdsot,kpdalf, - & kpdvmn,kpdvmx,kpdslp,kpdabs, - & irttsf,irtwet,irtsno,irtzor,irtalb,irtais, - & irttg3,irtscv,irtacn,irtsmc,irtstc,irtveg, - & irtvet,irtsot,irtalf - &, irtvmn,irtvmx,irtslp,irtabs, - & imsk, jmsk, slmskh, rla, rlo, gausm, blnmsk, bltmsk - &, me, lanom) -! if(lprnt) print *,' tsfanl=',tsfanl(iprnt) -! -! scale zor and alb to match forecast model units -! - zsca=100. - call scale(zoranl,len, zsca) - zsca=0.01 - call scale(albanl,len,zsca) - call scale(albanl(1,2),len,zsca) - call scale(albanl(1,3),len,zsca) - call scale(albanl(1,4),len,zsca) - call scale(alfanl,len,zsca) - call scale(alfanl(1,2),len,zsca) -!clu [+4] scale vmn, vmx, abs from percent to fraction - zsca=0.01 - call scale(vmnanl,len,zsca) - call scale(vmxanl,len,zsca) - call scale(absanl,len,zsca) -! -! interpolate climatology but fixing initial anomaly -! - if(fh > 0.0 .and. fntsfa(1:8) /= ' ' .and. lanom) then - call anomint(tsfan0,tsfclm,tsfcl0,tsfanl,len) - endif -! -! if the tsfanl is at sea level, then bring it to the surface using -! unfiltered orography (for lakes). if the analysis is at lake surface -! as in the nst model, then this call should be removed - moorthi 09/23/2011 -! - if (use_ufo .and. .not. nst_anl) then - ztsfc = 0.0 - call tsfcor(tsfanl,orog_uf,slmask,ztsfc,len,rlapse) - endif -! -! ice concentration or ice mask (only ice mask used in the model now) -! - if(fnaisa(1:8).ne.' ') then -!cwu [+5l/-1l] update sihanl, sicanl - do i=1,len - sihanl(i) = 3.0*aisanl(i) - sicanl(i) = aisanl(i) - if(slmask(i).eq.0..and.glacir(i).eq.1..and. - & sicanl(i).ne.1.) then - sicanl(i) = sicimx - sihfcs(i) = glacir_hice - endif - enddo - crit=aislim -!* crit=0.5 - call rof01(aisanl,len,'ge',crit) - elseif(fnacna(1:8).ne.' ') then -!cwu [+17l] update sihanl, sicanl - do i=1,len - sihanl(i) = 3.0*acnanl(i) - sicanl(i) = acnanl(i) - if(slmask(i).eq.0..and.glacir(i).eq.1..and. - & sicanl(i).ne.1.) then - sicanl(i) = sicimx - sihfcs(i) = glacir_hice - endif - enddo - crit=aislim - do i=1,len - if((slianl(i).eq.0.).and.(sicanl(i).ge.crit)) then - slianl(i)=2. -! print *,'cycle - new ice form: fice=',sicanl(i) - else if((slianl(i).ge.2.).and.(sicanl(i).lt.crit)) then - slianl(i)=0. -! print *,'cycle - ice free: fice=',sicanl(i) - else if((slianl(i).eq.1.).and.(sicanl(i).ge.sicimn)) then -! print *,'cycle - land covered by sea-ice: fice=',sicanl(i) - sicanl(i)=0. - endif - enddo -! znnt=10. -! call nntprt(acnanl,len,znnt) -! if(lprnt) print *,' acnanl=',acnanl(iprnt) -! do i=1,len -! if (acnanl(i) .gt. 0.3 .and. aisclm(i) .eq. 1.0 -! & .and. aisfcs(i) .ge. 0.75) acnanl(i) = aislim -! enddo -! if(lprnt) print *,' acnanl=',acnanl(iprnt) - call rof01(acnanl,len,'ge',aislim) - do i=1,len - aisanl(i)=acnanl(i) - enddo - endif -! if(lprnt) print *,' aisanl1=',aisanl(iprnt),' glacir=' -! &,glacir(iprnt),' slmask=',slmask(iprnt) -! - call qcsice(aisanl,glacir,amxice,aicice,aicsea,sllnd,slmask, - & rla,rlo,len,me) -! -! set ocean/land/sea-ice mask -! - call setlsi(slmask,aisanl,len,aicice,slianl) -! if(lprnt) print *,' aisanl=',aisanl(iprnt),' slianl=' -! *,slianl(iprnt),' slmask=',slmask(iprnt) -! -! - do k=1,lsoil - do i=1,len - if (slianl(i) .eq. 0) then - smcanl(i,k) = smcomx - stcanl(i,k) = tsfanl(i) - endif - enddo - enddo - -! write(6,*) 'slianl' -! znnt=1. -! call nntprt(slianl,len,znnt) -!cwu [+8l]---------------------------------------------------------------------- - call qcmxmn('siha ',sihanl,slianl,snoanl,icefl1, - & sihlmx,sihlmn,sihomx,sihomn,sihimx,sihimn, - & sihjmx,sihjmn,sihsmx,sihsmn,epssih, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sica ',sicanl,slianl,snoanl,icefl1, - & siclmx,siclmn,sicomx,sicomn,sicimx,sicimn, - & sicjmx,sicjmn,sicsmx,sicsmn,epssic, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! -! set albedo over ocean to albomx -! - call albocn(albanl,slmask,albomx,len) -! -! quality control of snow and sea-ice -! process snow depth or snow cover -! - if(fnsnoa(1:8).ne.' ') then - call setzro(snoanl,epssno,len) - call qcsnow(snoanl,slmask,aisanl,glacir,len,ten,landice,me) - if (.not.landice) then - call snodpth2(glacir,snosmx,snoanl, len, me) - endif - kqcm=1 - call snosfc(snoanl,tsfanl,tsfsmx,len,me) - call qcmxmn('snoa ',snoanl,slianl,snoanl,icefl1, - & snolmx,snolmn,snoomx,snoomn,snoimx,snoimn, - & snojmx,snojmn,snosmx,snosmn,epssno, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call getscv(snoanl,scvanl,len) - call qcmxmn('sncva ',scvanl,slianl,snoanl,icefl1, - & scvlmx,scvlmn,scvomx,scvomn,scvimx,scvimn, - & scvjmx,scvjmn,scvsmx,scvsmn,epsscv, - & rla,rlo,len,kqcm,percrit,lgchek,me) - else - crit=0.5 - call rof01(scvanl,len,'ge',crit) - call qcsnow(scvanl,slmask,aisanl,glacir,len,one,landice,me) - call qcmxmn('sncva ',scvanl,slianl,scvanl,icefl1, - & scvlmx,scvlmn,scvomx,scvomn,scvimx,scvimn, - & scvjmx,scvjmn,scvsmx,scvsmn,epsscv, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call snodpth(scvanl,slianl,tsfanl,snoclm, - & glacir,snwmax,snwmin,landice,len,snoanl,me) - call qcsnow(scvanl,slmask,aisanl,glacir,len,snosmx,landice,me) - call snosfc(snoanl,tsfanl,tsfsmx,len,me) - call qcmxmn('snowa ',snoanl,slianl,snoanl,icefl1, - & snolmx,snolmn,snoomx,snoomn,snoimx,snoimn, - & snojmx,snojmn,snosmx,snosmn,epssno, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif -! - do i=1,len - icefl2(i) = sicanl(i) .gt. 0.99999 - enddo - call qcmxmn('tsfa ',tsfanl,slianl,snoanl,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - do kk = 1, 4 - call qcmxmn('alba ',albanl(1,kk),slianl,snoanl,icefl1, - & alblmx,alblmn,albomx,albomn,albimx,albimn, - & albjmx,albjmn,albsmx,albsmn,epsalb, - & rla,rlo,len,kqcm,percrit,lgchek,me) - enddo - if(fnwetc(1:8).ne.' ' .or. fnweta(1:8).ne.' ' ) then - call qcmxmn('weta ',wetanl,slianl,snoanl,icefl1, - & wetlmx,wetlmn,wetomx,wetomn,wetimx,wetimn, - & wetjmx,wetjmn,wetsmx,wetsmn,epswet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('zora ',zoranl,slianl,snoanl,icefl1, - & zorlmx,zorlmn,zoromx,zoromn,zorimx,zorimn, - & zorjmx,zorjmn,zorsmx,zorsmn,epszor, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! if(fnplrc(1:8).ne.' ' .or. fnplra(1:8).ne.' ' ) then -! call qcmxmn('plna ',plranl,slianl,snoanl,icefl1, -! & plrlmx,plrlmn,plromx,plromn,plrimx,plrimn, -! & plrjmx,plrjmn,plrsmx,plrsmn,epsplr, -! & rla,rlo,len,kqcm,percrit,lgchek,me) -! endif - call qcmxmn('tg3a ',tg3anl,slianl,snoanl,icefl1, - & tg3lmx,tg3lmn,tg3omx,tg3omn,tg3imx,tg3imn, - & tg3jmx,tg3jmn,tg3smx,tg3smn,epstg3, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! -! get soil temp and moisture -! - if(fnsmca(1:8).eq.' ' .and. fnsmcc(1:8).eq.' ') then - call getsmc(wetanl,len,lsoil,smcanl,me) - endif - call qcmxmn('smc1a ',smcanl(1,1),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc2a ',smcanl(1,2),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add smcanl(3:4) - if(lsoil.gt.2) then - call qcmxmn('smc3a ',smcanl(1,3),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc4a ',smcanl(1,4),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - if(fnstca(1:8).eq.' ') then - call getstc(tsfanl,tg3anl,slianl,len,lsoil,stcanl,tsfimx) - endif - call qcmxmn('stc1a ',stcanl(1,1),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc2a ',stcanl(1,2),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add stcanl(3:4) - if(lsoil.gt.2) then - call qcmxmn('stc3a ',stcanl(1,3),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc4a ',stcanl(1,4),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('vega ',veganl,slianl,snoanl,icefl1, - & veglmx,veglmn,vegomx,vegomn,vegimx,vegimn, - & vegjmx,vegjmn,vegsmx,vegsmn,epsveg, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('veta ',vetanl,slianl,snoanl,icefl1, - & vetlmx,vetlmn,vetomx,vetomn,vetimx,vetimn, - & vetjmx,vetjmn,vetsmx,vetsmn,epsvet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sota ',sotanl,slianl,snoanl,icefl1, - & sotlmx,sotlmn,sotomx,sotomn,sotimx,sotimn, - & sotjmx,sotjmn,sotsmx,sotsmn,epssot, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+16l]---------------------------------------------------------------------- - call qcmxmn('vmna ',vmnanl,slianl,snoanl,icefl1, - & vmnlmx,vmnlmn,vmnomx,vmnomn,vmnimx,vmnimn, - & vmnjmx,vmnjmn,vmnsmx,vmnsmn,epsvmn, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vmxa ',vmxanl,slianl,snoanl,icefl1, - & vmxlmx,vmxlmn,vmxomx,vmxomn,vmximx,vmximn, - & vmxjmx,vmxjmn,vmxsmx,vmxsmn,epsvmx, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('slpa ',slpanl,slianl,snoanl,icefl1, - & slplmx,slplmn,slpomx,slpomn,slpimx,slpimn, - & slpjmx,slpjmn,slpsmx,slpsmn,epsslp, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('absa ',absanl,slianl,snoanl,icefl1, - & abslmx,abslmn,absomx,absomn,absimx,absimn, - & absjmx,absjmn,abssmx,abssmn,epsabs, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu ---------------------------------------------------------------------------- -! -! monitoring prints -! - if (monanl) then - if (me .eq. 0) then - print *,' ' - print *,'monitor of time and space interpolated analysis' - print *,' ' -! call count(slianl,snoanl,len) - print *,' ' - call monitr('tsfanl',tsfanl,slianl,snoanl,len) - call monitr('albanl',albanl,slianl,snoanl,len) - call monitr('aisanl',aisanl,slianl,snoanl,len) - call monitr('snoanl',snoanl,slianl,snoanl,len) - call monitr('scvanl',scvanl,slianl,snoanl,len) - call monitr('smcanl1',smcanl(1,1),slianl,snoanl,len) - call monitr('smcanl2',smcanl(1,2),slianl,snoanl,len) - call monitr('stcanl1',stcanl(1,1),slianl,snoanl,len) - call monitr('stcanl2',stcanl(1,2),slianl,snoanl,len) -!clu [+4l] add smcanl(3:4) and stcanl(3:4) - if(lsoil.gt.2) then - call monitr('smcanl3',smcanl(1,3),slianl,snoanl,len) - call monitr('smcanl4',smcanl(1,4),slianl,snoanl,len) - call monitr('stcanl3',stcanl(1,3),slianl,snoanl,len) - call monitr('stcanl4',stcanl(1,4),slianl,snoanl,len) - endif - call monitr('tg3anl',tg3anl,slianl,snoanl,len) - call monitr('zoranl',zoranl,slianl,snoanl,len) -! if (gaus) then - call monitr('cvaanl',cvanl ,slianl,snoanl,len) - call monitr('cvbanl',cvbanl,slianl,snoanl,len) - call monitr('cvtanl',cvtanl,slianl,snoanl,len) -! endif - call monitr('slianl',slianl,slianl,snoanl,len) -! call monitr('plranl',plranl,slianl,snoanl,len) - call monitr('orog ',orog ,slianl,snoanl,len) - call monitr('veganl',veganl,slianl,snoanl,len) - call monitr('vetanl',vetanl,slianl,snoanl,len) - call monitr('sotanl',sotanl,slianl,snoanl,len) -!cwu [+2l] add sih, sic - call monitr('sihanl',sihanl,slianl,snoanl,len) - call monitr('sicanl',sicanl,slianl,snoanl,len) -!clu [+4l] add vmn, vmx, slp, abs - call monitr('vmnanl',vmnanl,slianl,snoanl,len) - call monitr('vmxanl',vmxanl,slianl,snoanl,len) - call monitr('slpanl',slpanl,slianl,snoanl,len) - call monitr('absanl',absanl,slianl,snoanl,len) - endif - - endif -! -! read in forecast fields if needed -! - if (me .eq. 0) then - write(6,*) '==============' - write(6,*) ' fcst guess' - write(6,*) '==============' - endif -! - percrit=critp2 -! - if(deads) then -! -! fill in guess array with analysis if dead start. -! - percrit=critp3 - if (me .eq. 0) write(6,*) 'this run is dead start run' - call filfcs(tsffcs,wetfcs,snofcs,zorfcs,albfcs, - & tg3fcs,cvfcs ,cvbfcs,cvtfcs, - & cnpfcs,smcfcs,stcfcs,slifcs,aisfcs, - & vegfcs,vetfcs,sotfcs,alffcs, -!cwu [+1l] add ()fcs for sih, sic - & sihfcs,sicfcs, -!clu [+1l] add ()fcs for vmn, vmx, slp, abs - & vmnfcs,vmxfcs,slpfcs,absfcs, - & tsfanl,wetanl,snoanl,zoranl,albanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,aisanl, - & veganl,vetanl,sotanl,alfanl, -!cwu [+1l] add ()anl for sih, sic - & sihanl,sicanl, -!clu [+1l] add ()anl for vmn, vmx, slp, abs - & vmnanl,vmxanl,slpanl,absanl, - & len,lsoil) - if(sig1t(1).ne.0.) then - call usesgt(sig1t,slianl,tg3anl,len,lsoil,tsffcs,stcfcs, - & tsfimx) - do i=1,len - icefl2(i) = sicfcs(i) .gt. 0.99999 - enddo - kqcm=1 - call qcmxmn('tsff ',tsffcs,slifcs,snofcs,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc1f ',stcfcs(1,1),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc2f ',stcfcs(1,2),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - else - percrit=critp2 -! -! make reverse angulation correction to tsf -! make reverse orography correction to tg3 -! - if (use_ufo) then - ztsfc = 1.0 - orogd = orog - orog_uf - call tsfcor(tg3fcs,orogd,slmask,ztsfc,len,-rlapse) - ztsfc = 0. - call tsfcor(tsffcs,orogd,slmask,ztsfc,len,-rlapse) - else - ztsfc = 0. - call tsfcor(tsffcs,orog,slmask,ztsfc,len,-rlapse) - endif - -!clu [+12l] -------------------------------------------------------------- -! -! compute soil moisture liquid-to-total ratio over land -! - do j=1, lsoil - do i=1, len - if(smcfcs(i,j) .ne. 0.) then - swratio(i,j) = slcfcs(i,j)/smcfcs(i,j) - else - swratio(i,j) = -999. - endif - enddo - enddo -!clu ----------------------------------------------------------------------- -! - if(lqcbgs .and. irtacn .eq. 0) then - call qcsli(slianl,slifcs,len,me) - call albocn(albfcs,slmask,albomx,len) - do i=1,len - icefl2(i) = sicfcs(i) .gt. 0.99999 - enddo - kqcm=1 - call qcmxmn('snof ',snofcs,slifcs,snofcs,icefl1, - & snolmx,snolmn,snoomx,snoomn,snoimx,snoimn, - & snojmx,snojmn,snosmx,snosmn,epssno, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('tsff ',tsffcs,slifcs,snofcs,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - do kk = 1, 4 - call qcmxmn('albf ',albfcs(1,kk),slifcs,snofcs,icefl1, - & alblmx,alblmn,albomx,albomn,albimx,albimn, - & albjmx,albjmn,albsmx,albsmn,epsalb, - & rla,rlo,len,kqcm,percrit,lgchek,me) - enddo - if(fnwetc(1:8).ne.' ' .or. fnweta(1:8).ne.' ' ) - & then - call qcmxmn('wetf ',wetfcs,slifcs,snofcs,icefl1, - & wetlmx,wetlmn,wetomx,wetomn,wetimx,wetimn, - & wetjmx,wetjmn,wetsmx,wetsmn,epswet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('zorf ',zorfcs,slifcs,snofcs,icefl1, - & zorlmx,zorlmn,zoromx,zoromn,zorimx,zorimn, - & zorjmx,zorjmn,zorsmx,zorsmn,epszor, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! if(fnplrc(1:8).ne.' ' .or. fnplra(1:8).ne.' ' ) -! call qcmxmn('plnf ',plrfcs,slifcs,snofcs,icefl1, -! & plrlmx,plrlmn,plromx,plromn,plrimx,plrimn, -! & plrjmx,plrjmn,plrsmx,plrsmn,epsplr, -! & rla,rlo,len,kqcm,percrit,lgchek,me) -! endif - call qcmxmn('tg3f ',tg3fcs,slifcs,snofcs,icefl1, - & tg3lmx,tg3lmn,tg3omx,tg3omn,tg3imx,tg3imn, - & tg3jmx,tg3jmn,tg3smx,tg3smn,epstg3, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!cwu [+8l] --------------------------------------------------------------- - call qcmxmn('sihf ',sihfcs,slifcs,snofcs,icefl1, - & sihlmx,sihlmn,sihomx,sihomn,sihimx,sihimn, - & sihjmx,sihjmn,sihsmx,sihsmn,epssih, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sicf ',sicfcs,slifcs,snofcs,icefl1, - & siclmx,siclmn,sicomx,sicomn,sicimx,sicimn, - & sicjmx,sicjmn,sicsmx,sicsmn,epssic, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc1f ',smcfcs(1,1),slifcs,snofcs,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc2f ',smcfcs(1,2),slifcs,snofcs,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add smcfcs(3:4) - if(lsoil.gt.2) then - call qcmxmn('smc3f ',smcfcs(1,3),slifcs,snofcs,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc4f ',smcfcs(1,4),slifcs,snofcs,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('stc1f ',stcfcs(1,1),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc2f ',stcfcs(1,2),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add stcfcs(3:4) - if(lsoil.gt.2) then - call qcmxmn('stc3f ',stcfcs(1,3),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc4f ',stcfcs(1,4),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('vegf ',vegfcs,slifcs,snofcs,icefl1, - & veglmx,veglmn,vegomx,vegomn,vegimx,vegimn, - & vegjmx,vegjmn,vegsmx,vegsmn,epsveg, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vetf ',vetfcs,slifcs,snofcs,icefl1, - & vetlmx,vetlmn,vetomx,vetomn,vetimx,vetimn, - & vetjmx,vetjmn,vetsmx,vetsmn,epsvet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sotf ',sotfcs,slifcs,snofcs,icefl1, - & sotlmx,sotlmn,sotomx,sotomn,sotimx,sotimn, - & sotjmx,sotjmn,sotsmx,sotsmn,epssot, - & rla,rlo,len,kqcm,percrit,lgchek,me) - -!clu [+16l] --------------------------------------------------------------- - call qcmxmn('vmnf ',vmnfcs,slifcs,snofcs,icefl1, - & vmnlmx,vmnlmn,vmnomx,vmnomn,vmnimx,vmnimn, - & vmnjmx,vmnjmn,vmnsmx,vmnsmn,epsvmn, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vmxf ',vmxfcs,slifcs,snofcs,icefl1, - & vmxlmx,vmxlmn,vmxomx,vmxomn,vmximx,vmximn, - & vmxjmx,vmxjmn,vmxsmx,vmxsmn,epsvmx, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('slpf ',slpfcs,slifcs,snofcs,icefl1, - & slplmx,slplmn,slpomx,slpomn,slpimx,slpimn, - & slpjmx,slpjmn,slpsmx,slpsmn,epsslp, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('absf ',absfcs,slifcs,snofcs,icefl1, - & abslmx,abslmn,absomx,absomn,absimx,absimn, - & absjmx,absjmn,abssmx,abssmn,epsabs, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu ----------------------------------------------------------------------- - endif - endif -! - if (monfcs) then - if (me .eq. 0) then - print *,' ' - print *,'monitor of guess' - print *,' ' -! call count(slifcs,snofcs,len) - print *,' ' - call monitr('tsffcs',tsffcs,slifcs,snofcs,len) - call monitr('albfcs',albfcs,slifcs,snofcs,len) - call monitr('aisfcs',aisfcs,slifcs,snofcs,len) - call monitr('snofcs',snofcs,slifcs,snofcs,len) - call monitr('smcfcs1',smcfcs(1,1),slifcs,snofcs,len) - call monitr('smcfcs2',smcfcs(1,2),slifcs,snofcs,len) - call monitr('stcfcs1',stcfcs(1,1),slifcs,snofcs,len) - call monitr('stcfcs2',stcfcs(1,2),slifcs,snofcs,len) -!clu [+4l] add smcfcs(3:4) and stcfcs(3:4) - if(lsoil.gt.2) then - call monitr('smcfcs3',smcfcs(1,3),slifcs,snofcs,len) - call monitr('smcfcs4',smcfcs(1,4),slifcs,snofcs,len) - call monitr('stcfcs3',stcfcs(1,3),slifcs,snofcs,len) - call monitr('stcfcs4',stcfcs(1,4),slifcs,snofcs,len) - endif - call monitr('tg3fcs',tg3fcs,slifcs,snofcs,len) - call monitr('zorfcs',zorfcs,slifcs,snofcs,len) -! if (gaus) then - call monitr('cvafcs',cvfcs ,slifcs,snofcs,len) - call monitr('cvbfcs',cvbfcs,slifcs,snofcs,len) - call monitr('cvtfcs',cvtfcs,slifcs,snofcs,len) -! endif - call monitr('slifcs',slifcs,slifcs,snofcs,len) -! call monitr('plrfcs',plrfcs,slifcs,snofcs,len) - call monitr('orog ',orog ,slifcs,snofcs,len) - call monitr('vegfcs',vegfcs,slifcs,snofcs,len) - call monitr('vetfcs',vetfcs,slifcs,snofcs,len) - call monitr('sotfcs',sotfcs,slifcs,snofcs,len) -!cwu [+2l] add sih, sic - call monitr('sihfcs',sihfcs,slifcs,snofcs,len) - call monitr('sicfcs',sicfcs,slifcs,snofcs,len) -!clu [+4l] add vmn, vmx, slp, abs - call monitr('vmnfcs',vmnfcs,slifcs,snofcs,len) - call monitr('vmxfcs',vmxfcs,slifcs,snofcs,len) - call monitr('slpfcs',slpfcs,slifcs,snofcs,len) - call monitr('absfcs',absfcs,slifcs,snofcs,len) - endif - endif -! -!... update annual cycle in the sst guess.. -! -! if(lprnt) print *,'tsfclm=',tsfclm(iprnt),' tsfcl2=',tsfcl2(iprnt) -! *,' tsffcs=',tsffcs(iprnt),' slianl=',slianl(iprnt) - - if (fh-deltsfc > 0.001) then - do i=1,len - if(slianl(i) == 0.0) then - tsffcs(i) = tsffcs(i) + (tsfclm(i) - tsfcl2(i)) - endif - enddo - endif -! -! quality control analysis using forecast guess -! - call qcbyfc(tsffcs,snofcs,qctsfs,qcsnos,qctsfi,len,lsoil, - & snoanl,aisanl,slianl,tsfanl,albanl, - & zoranl,smcanl, - & smcclm,tsfsmx,albomx,zoromx,me) -! -! blend climatology and predicted fields -! - if(me .eq. 0) then - write(6,*) '==============' - write(6,*) ' merging' - write(6,*) '==============' - endif -! if(lprnt) print *,' tsffcs=',tsffcs(iprnt) -! - percrit=critp3 -! -! merge analysis and forecast. note tg3, ais are not merged -! - call merge(len,lsoil,iy,im,id,ih,fh,deltsfc, - & sihfcs,sicfcs, - & vmnfcs,vmxfcs,slpfcs,absfcs, - & tsffcs,wetfcs,snofcs,zorfcs,albfcs,aisfcs, - & cvfcs ,cvbfcs,cvtfcs, - & cnpfcs,smcfcs,stcfcs,slifcs,vegfcs, - & vetfcs,sotfcs,alffcs, - & sihanl,sicanl, - & vmnanl,vmxanl,slpanl,absanl, - & tsfanl,tsfan2,wetanl,snoanl,zoranl,albanl,aisanl, - & cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,veganl, - & vetanl,sotanl,alfanl, - & ctsfl,calbl,caisl,csnol,csmcl,czorl,cstcl,cvegl, - & ctsfs,calbs,caiss,csnos,csmcs,czors,cstcs,cvegs, - & ccv,ccvb,ccvt,ccnp,cvetl,cvets,csotl,csots, - & calfl,calfs, - & csihl,csihs,csicl,csics, - & cvmnl,cvmns,cvmxl,cvmxs,cslpl,cslps,cabsl,cabss, - & irttsf,irtwet,irtsno,irtzor,irtalb,irtais, - & irttg3,irtscv,irtacn,irtsmc,irtstc,irtveg, - & irtvmn,irtvmx,irtslp,irtabs, - & irtvet,irtsot,irtalf,landice,me) - - call setzro(snoanl,epssno,len) - -! if(lprnt) print *,' tanlm=',tsfanl(iprnt),' tfcsm=',tsffcs(iprnt) -! if(lprnt) print *,' sliam=',slianl(iprnt),' slifm=',slifcs(iprnt) - -! -! new ice/melted ice -! - call newice(slianl,slifcs,tsfanl,tsffcs,len,lsoil, -!cwu [+1l] add sihnew, aislim, sihanl & sicanl - & sihnew,aislim,sihanl,sicanl, - & albanl,snoanl,zoranl,smcanl,stcanl, - & albomx,snoomx,zoromx,smcomx,smcimx, -!cwu [-1l/+1l] change albimx to albimn - note albimx & albimn have been modified -! & tsfomn,tsfimx,albimx,zorimx,tgice, - & tsfomn,tsfimx,albimn,zorimx,tgice, - & rla,rlo,me) - -! if(lprnt) print *,'tsfanl=',tsfanl(iprnt),' tsffcs=',tsffcs(iprnt) -! if(lprnt) print *,' slian=',slianl(iprnt),' slifn=',slifcs(iprnt) -! -! set tsfc to tsnow over snow -! - call snosfc(snoanl,tsfanl,tsfsmx,len,me) -! - do i=1,len - icefl2(i) = sicanl(i) .gt. 0.99999 - enddo - kqcm=0 - call qcmxmn('snowm ',snoanl,slianl,snoanl,icefl1, - & snolmx,snolmn,snoomx,snoomn,snoimx,snoimn, - & snojmx,snojmn,snosmx,snosmn,epssno, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('tsfm ',tsfanl,slianl,snoanl,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - do kk = 1, 4 - call qcmxmn('albm ',albanl(1,kk),slianl,snoanl,icefl1, - & alblmx,alblmn,albomx,albomn,albimx,albimn, - & albjmx,albjmn,albsmx,albsmn,epsalb, - & rla,rlo,len,kqcm,percrit,lgchek,me) - enddo - if(fnwetc(1:8).ne.' ' .or. fnweta(1:8).ne.' ' ) - & then - call qcmxmn('wetm ',wetanl,slianl,snoanl,icefl1, - & wetlmx,wetlmn,wetomx,wetomn,wetimx,wetimn, - & wetjmx,wetjmn,wetsmx,wetsmn,epswet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('zorm ',zoranl,slianl,snoanl,icefl1, - & zorlmx,zorlmn,zoromx,zoromn,zorimx,zorimn, - & zorjmx,zorjmn,zorsmx,zorsmn,epszor, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! if(fnplrc(1:8).ne.' ' .or. fnplra(1:8).ne.' ' ) -! & then -! call qcmxmn('plntm ',plranl,slianl,snoanl,icefl1, -! & plrlmx,plrlmn,plromx,plromn,plrimx,plrimn, -! & plrjmx,plrjmn,plrsmx,plrsmn,epsplr, -! & rla,rlo,len,kqcm,percrit,lgchek,me) -! endif - call qcmxmn('stc1m ',stcanl(1,1),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc2m ',stcanl(1,2),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add stcanl(3:4) - if(lsoil.gt.2) then - call qcmxmn('stc3m ',stcanl(1,3),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc4m ',stcanl(1,4),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('smc1m ',smcanl(1,1),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc2m ',smcanl(1,2),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add smcanl(3:4) - if(lsoil.gt.2) then - call qcmxmn('smc3m ',smcanl(1,3),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc4m ',smcanl(1,4),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - kqcm=1 - call qcmxmn('vegm ',veganl,slianl,snoanl,icefl1, - & veglmx,veglmn,vegomx,vegomn,vegimx,vegimn, - & vegjmx,vegjmn,vegsmx,vegsmn,epsveg, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vetm ',vetanl,slianl,snoanl,icefl1, - & vetlmx,vetlmn,vetomx,vetomn,vetimx,vetimn, - & vetjmx,vetjmn,vetsmx,vetsmn,epsvet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sotm ',sotanl,slianl,snoanl,icefl1, - & sotlmx,sotlmn,sotomx,sotomn,sotimx,sotimn, - & sotjmx,sotjmn,sotsmx,sotsmn,epssot, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!cwu [+8l] add sih, sic, - call qcmxmn('sihm ',sihanl,slianl,snoanl,icefl1, - & sihlmx,sihlmn,sihomx,sihomn,sihimx,sihimn, - & sihjmx,sihjmn,sihsmx,sihsmn,epssih, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sicm ',sicanl,slianl,snoanl,icefl1, - & siclmx,siclmn,sicomx,sicomn,sicimx,sicimn, - & sicjmx,sicjmn,sicsmx,sicsmn,epssic, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+16l] add vmn, vmx, slp, abs - call qcmxmn('vmnm ',vmnanl,slianl,snoanl,icefl1, - & vmnlmx,vmnlmn,vmnomx,vmnomn,vmnimx,vmnimn, - & vmnjmx,vmnjmn,vmnsmx,vmnsmn,epsvmn, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vmxm ',vmxanl,slianl,snoanl,icefl1, - & vmxlmx,vmxlmn,vmxomx,vmxomn,vmximx,vmximn, - & vmxjmx,vmxjmn,vmxsmx,vmxsmn,epsvmx, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('slpm ',slpanl,slianl,snoanl,icefl1, - & slplmx,slplmn,slpomx,slpomn,slpimx,slpimn, - & slpjmx,slpjmn,slpsmx,slpsmn,epsslp, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('absm ',absanl,slianl,snoanl,icefl1, - & abslmx,abslmn,absomx,absomn,absimx,absimn, - & absjmx,absjmn,abssmx,abssmn,epsabs, - & rla,rlo,len,kqcm,percrit,lgchek,me) - -! - if(me .eq. 0) then - write(6,*) '==============' - write(6,*) 'final results' - write(6,*) '==============' - endif -! -! foreward correction to tg3 and tsf at the last stage -! -! if(lprnt) print *,' tsfbc=',tsfanl(iprnt) - if (use_ufo) then - ztsfc = 1. - call tsfcor(tg3anl,orogd,slmask,ztsfc,len,rlapse) - ztsfc = 0. - call tsfcor(tsfanl,orogd,slmask,ztsfc,len,rlapse) - else - ztsfc = 0. - call tsfcor(tsfanl,orog,slmask,ztsfc,len,rlapse) - endif -! if(lprnt) print *,' tsfaf=',tsfanl(iprnt) -! -! check the final merged product -! - if (monmer) then - if(me .eq. 0) then - print *,' ' - print *,'monitor of updated surface fields' - print *,' (includes angulation correction)' - print *,' ' -! call count(slianl,snoanl,len) - print *,' ' - call monitr('tsfanl',tsfanl,slianl,snoanl,len) - call monitr('albanl',albanl,slianl,snoanl,len) - call monitr('aisanl',aisanl,slianl,snoanl,len) - call monitr('snoanl',snoanl,slianl,snoanl,len) - call monitr('smcanl1',smcanl(1,1),slianl,snoanl,len) - call monitr('smcanl2',smcanl(1,2),slianl,snoanl,len) - call monitr('stcanl1',stcanl(1,1),slianl,snoanl,len) - call monitr('stcanl2',stcanl(1,2),slianl,snoanl,len) -!clu [+4l] add smcanl(3:4) and stcanl(3:4) - if(lsoil.gt.2) then - call monitr('smcanl3',smcanl(1,3),slianl,snoanl,len) - call monitr('smcanl4',smcanl(1,4),slianl,snoanl,len) - call monitr('stcanl3',stcanl(1,3),slianl,snoanl,len) - call monitr('stcanl4',stcanl(1,4),slianl,snoanl,len) - call monitr('tg3anl',tg3anl,slianl,snoanl,len) - call monitr('zoranl',zoranl,slianl,snoanl,len) - endif -! if (gaus) then - call monitr('cvaanl',cvanl ,slianl,snoanl,len) - call monitr('cvbanl',cvbanl,slianl,snoanl,len) - call monitr('cvtanl',cvtanl,slianl,snoanl,len) -! endif - call monitr('slianl',slianl,slianl,snoanl,len) -! call monitr('plranl',plranl,slianl,snoanl,len) - call monitr('orog ',orog ,slianl,snoanl,len) - call monitr('cnpanl',cnpanl,slianl,snoanl,len) - call monitr('veganl',veganl,slianl,snoanl,len) - call monitr('vetanl',vetanl,slianl,snoanl,len) - call monitr('sotanl',sotanl,slianl,snoanl,len) -!cwu [+2l] add sih, sic, - call monitr('sihanl',sihanl,slianl,snoanl,len) - call monitr('sicanl',sicanl,slianl,snoanl,len) -!clu [+4l] add vmn, vmx, slp, abs - call monitr('vmnanl',vmnanl,slianl,snoanl,len) - call monitr('vmxanl',vmxanl,slianl,snoanl,len) - call monitr('slpanl',slpanl,slianl,snoanl,len) - call monitr('absanl',absanl,slianl,snoanl,len) - endif - endif -! - if (mondif) then - do i=1,len - tsffcs(i) = tsfanl(i) - tsffcs(i) - snofcs(i) = snoanl(i) - snofcs(i) - tg3fcs(i) = tg3anl(i) - tg3fcs(i) - zorfcs(i) = zoranl(i) - zorfcs(i) -! plrfcs(i) = plranl(i) - plrfcs(i) -! albfcs(i) = albanl(i) - albfcs(i) - slifcs(i) = slianl(i) - slifcs(i) - aisfcs(i) = aisanl(i) - aisfcs(i) - cnpfcs(i) = cnpanl(i) - cnpfcs(i) - vegfcs(i) = veganl(i) - vegfcs(i) - vetfcs(i) = vetanl(i) - vetfcs(i) - sotfcs(i) = sotanl(i) - sotfcs(i) -!clu [+2l] add sih, sic - sihfcs(i) = sihanl(i) - sihfcs(i) - sicfcs(i) = sicanl(i) - sicfcs(i) -!clu [+4l] add vmn, vmx, slp, abs - vmnfcs(i) = vmnanl(i) - vmnfcs(i) - vmxfcs(i) = vmxanl(i) - vmxfcs(i) - slpfcs(i) = slpanl(i) - slpfcs(i) - absfcs(i) = absanl(i) - absfcs(i) - enddo - do j = 1,lsoil - do i = 1,len - smcfcs(i,j) = smcanl(i,j) - smcfcs(i,j) - stcfcs(i,j) = stcanl(i,j) - stcfcs(i,j) - enddo - enddo - do j = 1,4 - do i = 1,len - albfcs(i,j) = albanl(i,j) - albfcs(i,j) - enddo - enddo -! -! monitoring prints -! - if(me .eq. 0) then - print *,' ' - print *,'monitor of difference' - print *,' (includes angulation correction)' - print *,' ' - call monitr('tsfdif',tsffcs,slianl,snoanl,len) - call monitr('albdif',albfcs,slianl,snoanl,len) - call monitr('albdif1',albfcs,slianl,snoanl,len) - call monitr('albdif2',albfcs(1,2),slianl,snoanl,len) - call monitr('albdif3',albfcs(1,3),slianl,snoanl,len) - call monitr('albdif4',albfcs(1,4),slianl,snoanl,len) - call monitr('aisdif',aisfcs,slianl,snoanl,len) - call monitr('snodif',snofcs,slianl,snoanl,len) - call monitr('smcanl1',smcfcs(1,1),slianl,snoanl,len) - call monitr('smcanl2',smcfcs(1,2),slianl,snoanl,len) - call monitr('stcanl1',stcfcs(1,1),slianl,snoanl,len) - call monitr('stcanl2',stcfcs(1,2),slianl,snoanl,len) -!clu [+4l] add smcfcs(3:4) and stc(3:4) - if(lsoil.gt.2) then - call monitr('smcanl3',smcfcs(1,3),slianl,snoanl,len) - call monitr('smcanl4',smcfcs(1,4),slianl,snoanl,len) - call monitr('stcanl3',stcfcs(1,3),slianl,snoanl,len) - call monitr('stcanl4',stcfcs(1,4),slianl,snoanl,len) - endif - call monitr('tg3dif',tg3fcs,slianl,snoanl,len) - call monitr('zordif',zorfcs,slianl,snoanl,len) -! if (gaus) then - call monitr('cvadif',cvfcs ,slianl,snoanl,len) - call monitr('cvbdif',cvbfcs,slianl,snoanl,len) - call monitr('cvtdif',cvtfcs,slianl,snoanl,len) -! endif - call monitr('slidif',slifcs,slianl,snoanl,len) -! call monitr('plrdif',plrfcs,slianl,snoanl,len) - call monitr('cnpdif',cnpfcs,slianl,snoanl,len) - call monitr('vegdif',vegfcs,slianl,snoanl,len) - call monitr('vetdif',vetfcs,slianl,snoanl,len) - call monitr('sotdif',sotfcs,slianl,snoanl,len) -!cwu [+2l] add sih, sic - call monitr('sihdif',sihfcs,slianl,snoanl,len) - call monitr('sicdif',sicfcs,slianl,snoanl,len) -!clu [+4l] add vmn, vmx, slp, abs - call monitr('vmndif',vmnfcs,slianl,snoanl,len) - call monitr('vmxdif',vmxfcs,slianl,snoanl,len) - call monitr('slpdif',slpfcs,slianl,snoanl,len) - call monitr('absdif',absfcs,slianl,snoanl,len) - endif - endif -! -! - do i=1,len - tsffcs(i) = tsfanl(i) - snofcs(i) = snoanl(i) - tg3fcs(i) = tg3anl(i) - zorfcs(i) = zoranl(i) -! plrfcs(i) = plranl(i) -! albfcs(i) = albanl(i) - slifcs(i) = slianl(i) - aisfcs(i) = aisanl(i) - cvfcs(i) = cvanl(i) - cvbfcs(i) = cvbanl(i) - cvtfcs(i) = cvtanl(i) - cnpfcs(i) = cnpanl(i) - vegfcs(i) = veganl(i) - vetfcs(i) = vetanl(i) - sotfcs(i) = sotanl(i) -!clu [+4l] add vmn, vmx, slp, abs - vmnfcs(i) = vmnanl(i) - vmxfcs(i) = vmxanl(i) - slpfcs(i) = slpanl(i) - absfcs(i) = absanl(i) - enddo - do j = 1,lsoil - do i = 1,len - smcfcs(i,j) = smcanl(i,j) - if (slifcs(i) .gt. 0.0) then - stcfcs(i,j) = stcanl(i,j) - else - stcfcs(i,j) = tsffcs(i) - endif - enddo - enddo - do j = 1,4 - do i = 1,len - albfcs(i,j) = albanl(i,j) - enddo - enddo - do j = 1,2 - do i = 1,len - alffcs(i,j) = alfanl(i,j) - enddo - enddo - -!cwu [+20l] update sihfcs, sicfcs. remove sea ice over non-ice points - crit=aislim - do i=1,len - sihfcs(i) = sihanl(i) - sitfcs(i) = tsffcs(i) - if (slifcs(i).ge.2.) then - if (sicfcs(i).gt.crit) then - tsffcs(i) = (sicanl(i)*tsffcs(i) - & + (sicfcs(i)-sicanl(i))*tgice)/sicfcs(i) - sitfcs(i) = (tsffcs(i)-tgice*(1.0-sicfcs(i))) / sicfcs(i) - else - tsffcs(i) = tsfanl(i) -! tsffcs(i) = tgice - sihfcs(i) = sihnew - endif - endif - sicfcs(i) = sicanl(i) - enddo - do i=1,len - if (slifcs(i).lt.1.5) then - sihfcs(i) = 0. - sicfcs(i) = 0. - sitfcs(i) = tsffcs(i) - else if ((slifcs(i).ge.1.5).and.(sicfcs(i).lt.crit)) then - print *,'warning: check, slifcs and sicfcs', - & slifcs(i),sicfcs(i) - endif - enddo - -! -! ensure the consistency between slc and smc -! - do k=1, lsoil - fixratio(k) = .false. - if (fsmcl(k).lt.99999.) fixratio(k) = .true. - enddo - - if(me .eq. 0) then - print *,'dbgx --fixratio:',(fixratio(k),k=1,lsoil) - endif - - do k=1, lsoil - if(fixratio(k)) then - do i = 1, len - if(swratio(i,k) .eq. -999.) then - slcfcs(i,k) = smcfcs(i,k) - else - slcfcs(i,k) = swratio(i,k) * smcfcs(i,k) - endif - if (slifcs(i) .ne. 1.0) slcfcs(i,k) = 1.0 ! flag value for non-land points. - enddo - endif - enddo -! set liquid soil moisture to a flag value of 1.0 - if (landice) then - do i = 1, len - if (slifcs(i) .eq. 1.0 .and. - & nint(vetfcs(i)) == veg_type_landice) then - do k=1, lsoil - slcfcs(i,k) = 1.0 - enddo - endif - enddo - end if -! -! ensure the consistency between snwdph and sheleg -! - if(fsnol .lt. 99999.) then - if(me .eq. 0) then - print *,'dbgx -- scale snwdph from sheleg' - endif - do i = 1, len - if(slifcs(i).eq.1.) swdfcs(i) = 10.* snofcs(i) - enddo - endif - -! sea ice model only uses the liquid equivalent depth. -! so update the physical depth only for display purposes. -! use the same 3:1 ratio used by ice model. - - do i = 1, len - if (slifcs(i).ne.1) swdfcs(i) = 3.*snofcs(i) - enddo - - do i = 1, len - if(slifcs(i).eq.1.) then - if(snofcs(i).ne.0. .and. swdfcs(i).eq.0.) then - print *,'dbgx --scale snwdph from sheleg', - + i, swdfcs(i), snofcs(i) - swdfcs(i) = 10.* snofcs(i) - endif - endif - enddo -! landice mods - impose same minimum snow depth at -! landice as noah lsm. also ensure -! lower thermal boundary condition -! and skin t is no warmer than freezing -! after adjustment to terrain. - if (landice) then - do i = 1, len - if (slifcs(i) .eq. 1.0 .and. - & nint(vetfcs(i)) == veg_type_landice) then - snofcs(i) = max(snofcs(i),100.0) ! in mm - swdfcs(i) = max(swdfcs(i),1000.0) ! in mm - tg3fcs(i) = min(tg3fcs(i),273.15) - tsffcs(i) = min(tsffcs(i),273.15) - endif - enddo - end if -! -! if(lprnt) print *,' tsffcsf=',tsffcs(iprnt) - return - end subroutine sfccycle - subroutine count(slimsk,sno,ijmax) - use machine , only : kind_io8,kind_io4 - implicit none - real (kind=kind_io8) rl3,rl1,rl0,rl2,rl6,rl7,rl4,rl5 - integer l8,l7,l1,l2,ijmax,l0,l3,l5,l6,l4,ij -! - real (kind=kind_io8) slimsk(1),sno(1) -! -! count number of points for the four surface conditions -! - l0 = 0 - l1 = 0 - l2 = 0 - l3 = 0 - l4 = 0 - do ij=1,ijmax - if(slimsk(ij).eq.0.) l1 = l1 + 1 - if(slimsk(ij).eq.1. .and. sno(ij).le.0.) l0 = l0 + 1 - if(slimsk(ij).eq.2. .and. sno(ij).le.0.) l2 = l2 + 1 - if(slimsk(ij).eq.1. .and. sno(ij).gt.0.) l3 = l3 + 1 - if(slimsk(ij).eq.2. .and. sno(ij).gt.0.) l4 = l4 + 1 - enddo - l5 = l0 + l3 - l6 = l2 + l4 - l7 = l1 + l6 - l8 = l1 + l5 + l6 - rl0 = float(l0) / float(l8)*100. - rl3 = float(l3) / float(l8)*100. - rl1 = float(l1) / float(l8)*100. - rl2 = float(l2) / float(l8)*100. - rl4 = float(l4) / float(l8)*100. - rl5 = float(l5) / float(l8)*100. - rl6 = float(l6) / float(l8)*100. - rl7 = float(l7) / float(l8)*100. - print *,'1) no. of not snow-covered land points ',l0,' ',rl0,' ' - print *,'2) no. of snow covered land points ',l3,' ',rl3,' ' - print *,'3) no. of open sea points ',l1,' ',rl1,' ' - print *,'4) no. of not snow-covered seaice points ',l2,' ',rl2,' ' - print *,'5) no. of snow covered sea ice points ',l4,' ',rl4,' ' - print *,' ' - print *,'6) no. of land points ',l5,' ',rl5,' ' - print *,'7) no. sea points (including sea ice) ',l7,' ',rl7,' ' - print *,' (no. of sea ice points) (',l6,')',' ',rl6,' ' - print *,' ' - print *,'9) no. of total grid points ',l8 -! print *,' ' -! print *,' ' - -! -! if(lprnt) print *,' tsffcsf=',tsffcs(iprnt) - return - end - subroutine monitr(lfld,fld,slimsk,sno,ijmax) - use machine , only : kind_io8,kind_io4 - implicit none - integer ij,n,ijmax -! - real (kind=kind_io8) fld(ijmax), slimsk(ijmax),sno(ijmax) -! - real (kind=kind_io8) rmax(5),rmin(5) - character(len=*) lfld -! -! find max/min -! - do n=1,5 - rmax(n) = -9.e20 - rmin(n) = 9.e20 - enddo -! - do ij=1,ijmax - if(slimsk(ij).eq.0.) then - rmax(1) = max(rmax(1), fld(ij)) - rmin(1) = min(rmin(1), fld(ij)) - elseif(slimsk(ij).eq.1.) then - if(sno(ij).le.0.) then - rmax(2) = max(rmax(2), fld(ij)) - rmin(2) = min(rmin(2), fld(ij)) - else - rmax(4) = max(rmax(4), fld(ij)) - rmin(4) = min(rmin(4), fld(ij)) - endif - else - if(sno(ij).le.0.) then - rmax(3) = max(rmax(3), fld(ij)) - rmin(3) = min(rmin(3), fld(ij)) - else - rmax(5) = max(rmax(5), fld(ij)) - rmin(5) = min(rmin(5), fld(ij)) - endif - endif - enddo -! - print 100,lfld - print 101,rmax(1),rmin(1) - print 102,rmax(2),rmin(2), rmax(4), rmin(4) - print 103,rmax(3),rmin(3), rmax(5), rmin(5) -! -! print 102,rmax(2),rmin(2) -! print 103,rmax(3),rmin(3) -! print 104,rmax(4),rmin(4) -! print 105,rmax(5),rmin(5) - 100 format('0 *** ',a8,' ***') - 101 format(' open sea ......... max=',e12.4,' min=',e12.4) - 102 format(' land nosnow/snow .. max=',e12.4,' min=',e12.4 - &, ' max=',e12.4,' min=',e12.4) - 103 format(' seaice nosnow/snow max=',e12.4,' min=',e12.4 - &, ' max=',e12.4,' min=',e12.4) -! -! 100 format('0',2x,'*** ',a8,' ***') -! 102 format(2x,' land without snow ..... max=',e12.4,' min=',e12.4) -! 103 format(2x,' seaice without snow ... max=',e12.4,' min=',e12.4) -! 104 format(2x,' land with snow ........ max=',e12.4,' min=',e12.4) -! 105 format(2x,' sea ice with snow ..... max=',e12.4,' min=',e12.4) -! - return - end - subroutine dayoyr(iyr,imo,idy,ldy) - implicit none - integer ldy,i,idy,iyr,imo -! -! this routine figures out the day of the year given imo and idy -! - integer month(13) - data month/0,31,28,31,30,31,30,31,31,30,31,30,31/ - if(mod(iyr,4).eq.0) month(3) = 29 - ldy = idy - do i = 1, imo - ldy = ldy + month(i) - enddo - return - end - subroutine hmskrd(lugb,imsk,jmsk,fnmskh, - & kpds5,slmskh,gausm,blnmsk,bltmsk,me) - use machine , only : kind_io8,kind_io4 - use sfccyc_module, only : mdata, xdata, ydata - implicit none - integer kpds5,me,i,imsk,jmsk,lugb -! - character*500 fnmskh -! - real (kind=kind_io8) slmskh(mdata) - logical gausm - real (kind=kind_io8) blnmsk,bltmsk -! - imsk = xdata - jmsk = ydata - - if (me .eq. 0) then - write(6,*)' imsk=',imsk,' jmsk=',jmsk,' xdata=',xdata,' ydata=' - &, ydata - endif - - call fixrdg(lugb,imsk,jmsk,fnmskh, - & kpds5,slmskh,gausm,blnmsk,bltmsk,me) - -! print *,'in sfc_sub, aft fixrdg,slmskh=',maxval(slmskh), -! & minval(slmskh),'mdata=',mdata,'imsk*jmsk=',imsk*jmsk - - do i=1,imsk*jmsk - slmskh(i) = nint(slmskh(i)) - enddo -! - return - end - subroutine fixrdg(lugb,idim,jdim,fngrib, - & kpds5,gdata,gaus,blno,blto,me) - use machine , only : kind_io8,kind_io4 - use sfccyc_module, only : mdata - implicit none - integer lgrib,n,lskip,jret,j,ndata,lugi,jdim,idim,lugb, - & iret, me,kpds5,kdata,i,w3kindreal,w3kindint -! - character*(*) fngrib -! - real (kind=kind_io8) gdata(idim*jdim) - logical gaus - real (kind=kind_io8) blno,blto - real (kind=kind_io8) data8(idim*jdim) - real (kind=kind_io4), allocatable :: data4(:) -! - logical*1 lbms(mdata) -! - integer kpds(200),kgds(200) - integer jpds(200),jgds(200), kpds0(200) -! -! if(me .eq. 0) then -! write(6,*) ' ' -! write(6,*) '************************************************' -! endif -! - close(lugb) - call baopenr(lugb,fngrib,iret) - if (iret .ne. 0) then - write(6,*) ' error in opening file ',trim(fngrib) - print *,'error in opening file ',trim(fngrib) - call abort - endif - if (me .eq. 0) write(6,*) ' file ',trim(fngrib), - & ' opened. unit=',lugb - lugi = 0 - lskip = -1 - n = 0 - jpds = -1 - jgds = -1 - jpds(5) = kpds5 - kpds = jpds -! - call getgbh(lugb,lugi,lskip,jpds,jgds,lgrib,ndata, - & lskip,kpds,kgds,iret) -! - if(me .eq. 0) then - write(6,*) ' first grib record.' - write(6,*) ' kpds( 1-10)=',(kpds(j),j= 1,10) - write(6,*) ' kpds(11-20)=',(kpds(j),j=11,20) - write(6,*) ' kpds(21- )=',(kpds(j),j=21,22) - endif -! - kpds0=jpds - kpds0(4)=-1 - kpds0(18)=-1 - if(iret.ne.0) then - write(6,*) ' error in getgbh. iret: ', iret - if (iret == 99) write(6,*) ' field not found.' - call abort - endif -! - jpds = kpds0 - lskip = -1 - kdata=idim*jdim - call w3kind(w3kindreal,w3kindint) - if (w3kindreal == 8) then - call getgb(lugb,lugi,kdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data8,jret) - else if (w3kindreal == 4) then - allocate(data4(idim*jdim)) - call getgb(lugb,lugi,kdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data4,jret) - data8 = data4 - deallocate(data4) - else - write(0,*)' Invalid w3kindreal --- aborting' - call abort - endif -! - if(jret == 0) then - if(ndata.eq.0) then - write(6,*) ' error in getgb' - write(6,*) ' kpds=',kpds - write(6,*) ' kgds=',kgds - call abort - endif - idim = kgds(2) - jdim = kgds(3) - gaus = kgds(1).eq.4 - blno = kgds(5)*1.d-3 - blto = kgds(4)*1.d-3 - gdata(1:idim*jdim) = data8(1:idim*jdim) - if (me == 0) write(6,*) 'idim,jdim=',idim,jdim - &, ' gaus=',gaus,' blno=',blno,' blto=',blto - else - if (me ==. 0) write(6,*) 'idim,jdim=',idim,jdim - &, ' gaus=',gaus,' blno=',blno,' blto=',blto - write(6,*) ' error in getgb : jret=',jret - write(6,*) ' kpds(13)=',kpds(13),' kpds(15)=',kpds(15) - call abort - endif -! - return - end - subroutine getarea(kgds,dlat,dlon,rslat,rnlat,wlon,elon,ijordr - &, me) - use machine , only : kind_io8,kind_io4 - implicit none - integer j,me,kgds11 - real (kind=kind_io8) f0lon,f0lat,elon,dlon,dlat,rslat,wlon,rnlat -! -! get area of the grib record -! - integer kgds(22) - logical ijordr -! - if (me .eq. 0) then - write(6,*) ' kgds( 1-12)=',(kgds(j),j= 1,12) - write(6,*) ' kgds(13-22)=',(kgds(j),j=13,22) - endif -! - if(kgds(1).eq.0) then ! lat/lon grid -! - if (me .eq. 0) write(6,*) 'lat/lon grid' - dlat = float(kgds(10)) * 0.001 - dlon = float(kgds( 9)) * 0.001 - f0lon = float(kgds(5)) * 0.001 - f0lat = float(kgds(4)) * 0.001 - kgds11 = kgds(11) - if(kgds11.ge.128) then - wlon = f0lon - dlon*(kgds(2)-1) - elon = f0lon - if(dlon*kgds(2).gt.359.99) then - wlon =f0lon - dlon*kgds(2) - endif - dlon = -dlon - kgds11 = kgds11 - 128 - else - wlon = f0lon - elon = f0lon + dlon*(kgds(2)-1) - if(dlon*kgds(2).gt.359.99) then - elon = f0lon + dlon*kgds(2) - endif - endif - if(kgds11.ge.64) then - rnlat = f0lat + dlat*(kgds(3)-1) - rslat = f0lat - kgds11 = kgds11 - 64 - else - rnlat = f0lat - rslat = f0lat - dlat*(kgds(3)-1) - dlat = -dlat - endif - if(kgds11.ge.32) then - ijordr = .false. - else - ijordr = .true. - endif - - if(wlon.gt.180.) wlon = wlon - 360. - if(elon.gt.180.) elon = elon - 360. - wlon = nint(wlon*1000.) * 0.001 - elon = nint(elon*1000.) * 0.001 - rslat = nint(rslat*1000.) * 0.001 - rnlat = nint(rnlat*1000.) * 0.001 - return -! - elseif(kgds(1).eq.1) then ! mercator projection - write(6,*) 'mercator grid' - write(6,*) 'cannot process' - call abort -! - elseif(kgds(1).eq.2) then ! gnomonic projection - write(6,*) 'gnomonic grid' - write(6,*) 'error!! gnomonic projection not coded' - call abort -! - elseif(kgds(1).eq.3) then ! lambert conformal - write(6,*) 'lambert conformal' - write(6,*) 'cannot process' - call abort - elseif(kgds(1).eq.4) then ! gaussian grid -! - if (me .eq. 0) write(6,*) 'gaussian grid' - dlat = 99. - dlon = float(kgds( 9)) / 1000.0 - f0lon = float(kgds(5)) / 1000.0 - f0lat = 99. - kgds11 = kgds(11) - if(kgds11.ge.128) then - wlon = f0lon - elon = f0lon - if(dlon*kgds(2).gt.359.99) then - wlon = f0lon - dlon*kgds(2) - endif - dlon = -dlon - kgds11 = kgds11-128 - else - wlon = f0lon - elon = f0lon + dlon*(kgds(2)-1) - if(dlon*kgds(2).gt.359.99) then - elon = f0lon + dlon*kgds(2) - endif - endif - if(kgds11.ge.64) then - rnlat = 99. - rslat = 99. - kgds11 = kgds11 - 64 - else - rnlat = 99. - rslat = 99. - dlat = -99. - endif - if(kgds11.ge.32) then - ijordr = .false. - else - ijordr = .true. - endif - return -! - elseif(kgds(1).eq.5) then ! polar strereographic - write(6,*) 'polar stereographic grid' - write(6,*) 'cannot process' - call abort - return -! - elseif(kgds(1).eq.13) then ! oblique lambert conformal - write(6,*) 'oblique lambert conformal grid' - write(6,*) 'cannot process' - call abort -! - elseif(kgds(1).eq.50) then ! spherical coefficient - write(6,*) 'spherical coefficient' - write(6,*) 'cannot process' - call abort - return -! - elseif(kgds(1).eq.90) then ! space view perspective -! (orthographic grid) - write(6,*) 'space view perspective grid' - write(6,*) 'cannot process' - call abort - return -! - else ! unknown projection. abort. - write(6,*) 'error!! unknown map projection' - write(6,*) 'kgds(1)=',kgds(1) - print *,'error!! unknown map projection' - print *,'kgds(1)=',kgds(1) - call abort - endif -! - return - end - subroutine subst(data,imax,jmax,dlon,dlat,ijordr) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,j,ii,jj,jmax,imax,iret - real (kind=kind_io8) dlat,dlon -! - logical ijordr -! - real (kind=kind_io8) data(imax,jmax) - real (kind=kind_io8), allocatable :: work(:,:) -! - if(.not.ijordr.or. - & (ijordr.and.(dlat.gt.0..or.dlon.lt.0.))) then - allocate (work(imax,jmax)) - - if(.not.ijordr) then - do j=1,jmax - do i=1,imax - work(i,j) = data(j,i) - enddo - enddo - else - do j=1,jmax - do i=1,imax - work(i,j) = data(i,j) - enddo - enddo - endif - if (dlat > 0.0) then - if (dlon > 0.0) then - do j=1,jmax - jj = jmax - j + 1 - do i=1,imax - data(i,jj) = work(i,j) - enddo - enddo - else - do i=1,imax - data(imax-i+1,jj) = work(i,j) - enddo - endif - else - if (dlon > 0.0) then - do j=1,jmax - do i=1,imax - data(i,j) = work(i,j) - enddo - enddo - else - do j=1,jmax - do i=1,imax - data(imax-i+1,j) = work(i,j) - enddo - enddo - endif - endif - deallocate (work, stat=iret) - endif - return - end - subroutine la2ga(regin,imxin,jmxin,rinlon,rinlat,rlon,rlat,inttyp, - & gauout,len,lmask,rslmsk,slmask - &, outlat, outlon,me) - use machine , only : kind_io8,kind_io4 - implicit none - real (kind=kind_io8) wei4,wei3,wei2,sum2,sum1,sum3,wei1,sum4, - & wsum,tem,wsumiv,sums,sumn,wi2j2,x,y,wi1j1, - & wi1j2,wi2j1,rlat,rlon,aphi, - & rnume,alamd,denom - integer jy,ifills,ix,len,inttyp,me,i,j,jmxin,imxin,jq,jx,j1,j2, - & ii,i1,i2,kmami,it - integer nx,kxs,kxt - integer, allocatable, save :: imxnx(:) - integer, allocatable :: ifill(:) -! -! interpolation from lat/lon or gaussian grid to other lat/lon grid -! - real (kind=kind_io8) outlon(len),outlat(len),gauout(len), - & slmask(len) - real (kind=kind_io8) regin (imxin,jmxin),rslmsk(imxin,jmxin) -! - real (kind=kind_io8) rinlat(jmxin), rinlon(imxin) - integer iindx1(len), iindx2(len) - integer jindx1(len), jindx2(len) - real (kind=kind_io8) ddx(len), ddy(len), wrk(len) -! - logical lmask -! - logical first - integer num_threads - data first /.true./ - save num_threads, first -! - integer len_thread_m, len_thread, i1_t, i2_t - integer num_parthds -! - if (first) then - num_threads = num_parthds() - first = .false. - if (.not. allocated(imxnx)) allocate (imxnx(num_threads)) - endif -! -! if (me == 0) print *,' num_threads =',num_threads,' me=',me -! -! if(me .eq. 0) then -! print *,'rlon=',rlon,' me=',me -! print *,'rlat=',rlat,' me=',me,' imxin=',imxin,' jmxin=',jmxin -! endif -! -! do j=1,jmxin -! if(rlat.gt.0.) then -! rinlat(j) = rlat - float(j-1)*dlain -! else -! rinlat(j) = rlat + float(j-1)*dlain -! endif -! enddo -! -! if (me .eq. 0) then -! print *,'rinlat=' -! print *,(rinlat(j),j=1,jmxin) -! print *,'rinlon=' -! print *,(rinlon(i),i=1,imxin) -! -! print *,'outlat=' -! print *,(outlat(j),j=1,len) -! print *,(outlon(j),j=1,len) -! endif -! -! do i=1,imxin -! rinlon(i) = rlon + float(i-1)*dloin -! enddo -! -! print *,'rinlon=' -! print *,(rinlon(i),i=1,imxin) -! - len_thread_m = (len+num_threads-1) / num_threads - - if (inttyp /=1) allocate (ifill(num_threads)) -! -!$omp parallel do default(none) -!$omp+private(i1_t,i2_t,len_thread,it,i,ii,i1,i2) -!$omp+private(j,j1,j2,jq,ix,jy,nx,kxs,kxt,kmami) -!$omp+private(alamd,denom,rnume,aphi,x,y,wsum,wsumiv,sum1,sum2) -!$omp+private(sum3,sum4,wi1j1,wi2j1,wi1j2,wi2j2,wei1,wei2,wei3,wei4) -!$omp+private(sumn,sums) -!$omp+shared(imxin,jmxin,ifill) -!$omp+shared(outlon,outlat,wrk,iindx1,rinlon,jindx1,rinlat,ddx,ddy) -!$omp+shared(rlon,rlat,regin,gauout,imxnx) -!$omp+private(tem) -!$omp+shared(num_threads,len_thread_m,len,lmask,iindx2,jindx2,rslmsk) -!$omp+shared(inttyp,me,slmask) -! - do it=1,num_threads ! start of threaded loop ................... - i1_t = (it-1)*len_thread_m+1 - i2_t = min(i1_t+len_thread_m-1,len) - len_thread = i2_t-i1_t+1 -! -! find i-index for interpolation -! - do i=i1_t, i2_t - alamd = outlon(i) - if (alamd .lt. rlon) alamd = alamd + 360.0 - if (alamd .gt. 360.0+rlon) alamd = alamd - 360.0 - wrk(i) = alamd - iindx1(i) = imxin - enddo - do i=i1_t,i2_t - do ii=1,imxin - if(wrk(i) .ge. rinlon(ii)) iindx1(i) = ii - enddo - enddo - do i=i1_t,i2_t - i1 = iindx1(i) - if (i1 .lt. 1) i1 = imxin - i2 = i1 + 1 - if (i2 .gt. imxin) i2 = 1 - iindx1(i) = i1 - iindx2(i) = i2 - denom = rinlon(i2) - rinlon(i1) - if(denom.lt.0.) denom = denom + 360. - rnume = wrk(i) - rinlon(i1) - if(rnume.lt.0.) rnume = rnume + 360. - ddx(i) = rnume / denom - enddo -! -! find j-index for interplation -! - if(rlat.gt.0.) then - do j=i1_t,i2_t - jindx1(j)=0 - enddo - do jx=1,jmxin - do j=i1_t,i2_t - if(outlat(j).le.rinlat(jx)) jindx1(j) = jx - enddo - enddo - do j=i1_t,i2_t - jq = jindx1(j) - aphi=outlat(j) - if(jq.ge.1 .and. jq .lt. jmxin) then - j2=jq+1 - j1=jq - ddy(j)=(aphi-rinlat(j1))/(rinlat(j2)-rinlat(j1)) - elseif (jq .eq. 0) then - j2=1 - j1=1 - if(abs(90.-rinlat(j1)).gt.0.001) then - ddy(j)=(aphi-rinlat(j1))/(90.-rinlat(j1)) - else - ddy(j)=0.0 - endif - else - j2=jmxin - j1=jmxin - if(abs(-90.-rinlat(j1)).gt.0.001) then - ddy(j)=(aphi-rinlat(j1))/(-90.-rinlat(j1)) - else - ddy(j)=0.0 - endif - endif - jindx1(j)=j1 - jindx2(j)=j2 - enddo - else - do j=i1_t,i2_t - jindx1(j) = jmxin+1 - enddo - do jx=jmxin,1,-1 - do j=i1_t,i2_t - if(outlat(j).le.rinlat(jx)) jindx1(j) = jx - enddo - enddo - do j=i1_t,i2_t - jq = jindx1(j) - aphi=outlat(j) - if(jq.gt.1 .and. jq .le. jmxin) then - j2=jq - j1=jq-1 - ddy(j)=(aphi-rinlat(j1))/(rinlat(j2)-rinlat(j1)) - elseif (jq .eq. 1) then - j2=1 - j1=1 - if(abs(-90.-rinlat(j1)).gt.0.001) then - ddy(j)=(aphi-rinlat(j1))/(-90.-rinlat(j1)) - else - ddy(j)=0.0 - endif - else - j2=jmxin - j1=jmxin - if(abs(90.-rinlat(j1)).gt.0.001) then - ddy(j)=(aphi-rinlat(j1))/(90.-rinlat(j1)) - else - ddy(j)=0.0 - endif - endif - jindx1(j)=j1 - jindx2(j)=j2 - enddo - endif -! -! if (me .eq. 0 .and. inttyp .eq. 1) then -! print *,'la2ga' -! print *,'iindx1' -! print *,(iindx1(n),n=1,len) -! print *,'iindx2' -! print *,(iindx2(n),n=1,len) -! print *,'jindx1' -! print *,(jindx1(n),n=1,len) -! print *,'jindx2' -! print *,(jindx2(n),n=1,len) -! print *,'ddy' -! print *,(ddy(n),n=1,len) -! print *,'ddx' -! print *,(ddx(n),n=1,len) -! endif -! - sum1 = 0. - sum2 = 0. - sum3 = 0. - sum4 = 0. - if (lmask) then - wei1 = 0. - wei2 = 0. - wei3 = 0. - wei4 = 0. - do i=1,imxin - sum1 = sum1 + regin(i,1) * rslmsk(i,1) - sum2 = sum2 + regin(i,jmxin) * rslmsk(i,jmxin) - wei1 = wei1 + rslmsk(i,1) - wei2 = wei2 + rslmsk(i,jmxin) -! - sum3 = sum3 + regin(i,1) * (1.0-rslmsk(i,1)) - sum4 = sum4 + regin(i,jmxin) * (1.0-rslmsk(i,jmxin)) - wei3 = wei3 + (1.0-rslmsk(i,1)) - wei4 = wei4 + (1.0-rslmsk(i,jmxin)) - enddo -! - if(wei1.gt.0.) then - sum1 = sum1 / wei1 - else - sum1 = 0. - endif - if(wei2.gt.0.) then - sum2 = sum2 / wei2 - else - sum2 = 0. - endif - if(wei3.gt.0.) then - sum3 = sum3 / wei3 - else - sum3 = 0. - endif - if(wei4.gt.0.) then - sum4 = sum4 / wei4 - else - sum4 = 0. - endif - else - do i=1,imxin - sum1 = sum1 + regin(i,1) - sum2 = sum2 + regin(i,jmxin) - enddo - sum1 = sum1 / imxin - sum2 = sum2 / imxin - sum3 = sum1 - sum4 = sum2 - endif -! -! print *,' sum1=',sum1,' sum2=',sum2 -! *,' sum3=',sum3,' sum4=',sum4 -! print *,' rslmsk=',(rslmsk(i,1),i=1,imxin) -! print *,' slmask=',(slmask(i),i=1,imxout) -! *,' j1=',jindx1(1),' j2=',jindx2(1) -! -! -! inttyp=1 take the closest point value -! - if(inttyp.eq.1) then - - do i=i1_t,i2_t - jy = jindx1(i) - if(ddy(i) .ge. 0.5) jy = jindx2(i) - ix = iindx1(i) - if(ddx(i) .ge. 0.5) ix = iindx2(i) -! -!cggg start -! - if (.not. lmask) then - - gauout(i) = regin(ix,jy) - - else - - if(slmask(i).eq.rslmsk(ix,jy)) then - - gauout(i) = regin(ix,jy) - - else - - i1 = ix - j1 = jy - -! spiral around until matching mask is found. - do nx=1,jmxin*imxin/2 - kxs=sqrt(4*nx-2.5) - kxt=nx-int(kxs**2/4+1) - select case(mod(kxs,4)) - case(1) - ix=i1-kxs/4+kxt - jx=j1-kxs/4 - case(2) - ix=i1+1+kxs/4 - jx=j1-kxs/4+kxt - case(3) - ix=i1+1+kxs/4-kxt - jx=j1+1+kxs/4 - case default - ix=i1-kxs/4 - jx=j1+kxs/4-kxt - end select - if(jx.lt.1) then - ix=ix+imxin/2 - jx=2-jx - elseif(jx.gt.jmxin) then - ix=ix+imxin/2 - jx=2*jmxin-jx - endif - ix=modulo(ix-1,imxin)+1 - if(slmask(i).eq.rslmsk(ix,jx)) then - gauout(i) = regin(ix,jx) - go to 81 - endif - enddo - -!cggg here, set the gauout value to be 0, and let's sarah's land -!cggg routine assign a default. - - if (num_threads == 1) then - print*,'no matching mask found ',i,i1,j1,ix,jx - print*,'set to default value.' - endif - gauout(i) = 0.0 - - - 81 continue - - end if - - end if - -!cggg end - - enddo -! kmami=1 -! if (me == 0 .and. num_threads == 1) -! & call maxmin(gauout(i1_t),len_thread,kmami) - else ! nearest neighbor interpolation - -! -! quasi-bilinear interpolation -! - ifill(it) = 0 - imxnx(it) = 0 - do i=i1_t,i2_t - y = ddy(i) - j1 = jindx1(i) - j2 = jindx2(i) - x = ddx(i) - i1 = iindx1(i) - i2 = iindx2(i) -! - wi1j1 = (1.-x) * (1.-y) - wi2j1 = x *( 1.-y) - wi1j2 = (1.-x) * y - wi2j2 = x * y -! - tem = 4.*slmask(i) - rslmsk(i1,j1) - rslmsk(i2,j1) - & - rslmsk(i1,j2) - rslmsk(i2,j2) - if(lmask .and. abs(tem) .gt. 0.01) then - if(slmask(i).eq.1.) then - wi1j1 = wi1j1 * rslmsk(i1,j1) - wi2j1 = wi2j1 * rslmsk(i2,j1) - wi1j2 = wi1j2 * rslmsk(i1,j2) - wi2j2 = wi2j2 * rslmsk(i2,j2) - else - wi1j1 = wi1j1 * (1.0-rslmsk(i1,j1)) - wi2j1 = wi2j1 * (1.0-rslmsk(i2,j1)) - wi1j2 = wi1j2 * (1.0-rslmsk(i1,j2)) - wi2j2 = wi2j2 * (1.0-rslmsk(i2,j2)) - endif - endif -! - wsum = wi1j1 + wi2j1 + wi1j2 + wi2j2 - wrk(i) = wsum - if(wsum.ne.0.) then - wsumiv = 1./wsum -! - if(j1.ne.j2) then - gauout(i) = (wi1j1*regin(i1,j1) + wi2j1*regin(i2,j1) + - & wi1j2*regin(i1,j2) + wi2j2*regin(i2,j2)) - & *wsumiv - else -! - if (rlat .gt. 0.0) then - if (slmask(i) .eq. 1.0) then - sumn = sum1 - sums = sum2 - else - sumn = sum3 - sums = sum4 - endif - if( j1 .eq. 1) then - gauout(i) = (wi1j1*sumn +wi2j1*sumn + - & wi1j2*regin(i1,j2)+wi2j2*regin(i2,j2)) - & * wsumiv - elseif (j1 .eq. jmxin) then - gauout(i) = (wi1j1*regin(i1,j1)+wi2j1*regin(i2,j1)+ - & wi1j2*sums +wi2j2*sums ) - & * wsumiv - endif -! print *,' slmask=',slmask(i),' sums=',sums,' sumn=',sumn -! & ,' regin=',regin(i1,j2),regin(i2,j2),' j1=',j1,' j2=',j2 -! & ,' wij=',wi1j1, wi2j1, wi1j2, wi2j2,wsumiv - else - if (slmask(i) .eq. 1.0) then - sums = sum1 - sumn = sum2 - else - sums = sum3 - sumn = sum4 - endif - if( j1 .eq. 1) then - gauout(i) = (wi1j1*regin(i1,j1)+wi2j1*regin(i2,j1)+ - & wi1j2*sums +wi2j2*sums ) - & * wsumiv - elseif (j1 .eq. jmxin) then - gauout(i) = (wi1j1*sumn +wi2j1*sumn + - & wi1j2*regin(i1,j2)+wi2j2*regin(i2,j2)) - & * wsumiv - endif - endif - endif ! if j1 .ne. j2 - endif - enddo - do i=i1_t,i2_t - j1 = jindx1(i) - j2 = jindx2(i) - i1 = iindx1(i) - i2 = iindx2(i) - if(wrk(i) .eq. 0.0) then - if(.not.lmask) then - if (num_threads == 1) - & write(6,*) ' la2ga called with lmask=.true. but bad', - & ' rslmsk or slmask given' - call abort - endif - ifill(it) = ifill(it) + 1 - if(ifill(it) <= 2 ) then - if (me == 0 .and. num_threads == 1) then - write(6,*) 'i1,i2,j1,j2=',i1,i2,j1,j2 - write(6,*) 'rslmsk=',rslmsk(i1,j1),rslmsk(i1,j2), - & rslmsk(i2,j1),rslmsk(i2,j2) -! write(6,*) 'i,j=',i,j,' slmask(i)=',slmask(i) - write(6,*) 'i=',i,' slmask(i)=',slmask(i) - &, ' outlon=',outlon(i),' outlat=',outlat(i) - endif - endif -! spiral around until matching mask is found. - do nx=1,jmxin*imxin/2 - kxs=sqrt(4*nx-2.5) - kxt=nx-int(kxs**2/4+1) - select case(mod(kxs,4)) - case(1) - ix=i1-kxs/4+kxt - jx=j1-kxs/4 - case(2) - ix=i1+1+kxs/4 - jx=j1-kxs/4+kxt - case(3) - ix=i1+1+kxs/4-kxt - jx=j1+1+kxs/4 - case default - ix=i1-kxs/4 - jx=j1+kxs/4-kxt - end select - if(jx.lt.1) then - ix=ix+imxin/2 - jx=2-jx - elseif(jx.gt.jmxin) then - ix=ix+imxin/2 - jx=2*jmxin-jx - endif - ix=modulo(ix-1,imxin)+1 - if(slmask(i).eq.rslmsk(ix,jx)) then - gauout(i) = regin(ix,jx) - imxnx(it) = max(imxnx(it),nx) - go to 71 - endif - enddo -! - if (num_threads == 1) then - write(6,*) ' error!!! no filling value found in la2ga' -! write(6,*) ' i ix jx slmask(i) rslmsk ', -! & i,ix,jx,slmask(i),rslmsk(ix,jx) - endif - call abort -! - 71 continue - endif -! - enddo - endif - enddo ! end of threaded loop ................... -!$omp end parallel do -! - if(inttyp /= 1)then - ifills = 0 - do it=1,num_threads - ifills = ifills + ifill(it) - enddo - - if(ifills.gt.1) then - if (me .eq. 0) then - write(6,*) ' unable to interpolate. filled with nearest', - & ' point value at ',ifills,' points' -! & ' point value at ',ifills,' points imxnx=',imxnx(:) - endif - endif - deallocate (ifill) - endif -! -! kmami = 1 -! if (me == 0) call maxmin(gauout,len,kmami) -! - return - end subroutine la2ga - subroutine maxmin(f,imax,kmax) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,iimin,iimax,kmax,imax,k - real (kind=kind_io8) fmin,fmax -! - real (kind=kind_io8) f(imax,kmax) -! - do k=1,kmax -! - fmax = f(1,k) - fmin = f(1,k) -! - do i=1,imax - if(fmax.le.f(i,k)) then - fmax = f(i,k) - iimax = i - endif - if(fmin.ge.f(i,k)) then - fmin = f(i,k) - iimin = i - endif - enddo -! -! write(6,100) k,fmax,iimax,fmin,iimin -! 100 format(2x,'level=',i2,' max=',e11.4,' at i=',i7, -! & ' min=',e11.4,' at i=',i7) -! - enddo -! - return - end - subroutine filanl(tsfanl,tsfan2,wetanl,snoanl,zoranl,albanl, - & aisanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,scvanl,veganl, - & vetanl,sotanl,alfanl, -!cwu [+1l] add ()anl for sih, sic - & sihanl,sicanl, -!clu [+1l] add ()anl for vmn, vmx, slp, abs - & vmnanl,vmxanl,slpanl,absanl, - & tsfclm,tsfcl2,wetclm,snoclm,zorclm,albclm, - & aisclm, - & tg3clm,cvclm ,cvbclm,cvtclm, - & cnpclm,smcclm,stcclm,sliclm,scvclm,vegclm, - & vetclm,sotclm,alfclm, -!cwu [+1l] add ()clm for sih, sic - & sihclm,sicclm, -!clu [+1l] add ()clm for vmn, vmx, slp, abs - & vmnclm,vmxclm,slpclm,absclm, - & len,lsoil) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,j,len,lsoil -! - real (kind=kind_io8) tsfanl(len),tsfan2(len),wetanl(len), - & snoanl(len), - & zoranl(len),albanl(len,4),aisanl(len), - & tg3anl(len), - & cvanl (len),cvbanl(len),cvtanl(len), - & cnpanl(len), - & smcanl(len,lsoil),stcanl(len,lsoil), - & slianl(len),scvanl(len),veganl(len), - & vetanl(len),sotanl(len),alfanl(len,2) -!cwu [+1l] add ()anl for sih, sic - &, sihanl(len),sicanl(len) -!clu [+1l] add ()anl for vmn, vmx, slp, abs - &, vmnanl(len),vmxanl(len),slpanl(len),absanl(len) - real (kind=kind_io8) tsfclm(len),tsfcl2(len),wetclm(len), - & snoclm(len), - & zorclm(len),albclm(len,4),aisclm(len), - & tg3clm(len), - & cvclm (len),cvbclm(len),cvtclm(len), - & cnpclm(len), - & smcclm(len,lsoil),stcclm(len,lsoil), - & sliclm(len),scvclm(len),vegclm(len), - & vetclm(len),sotclm(len),alfclm(len,2) -!cwu [+1l] add ()clm for sih, sic - &, sihclm(len),sicclm(len) -!clu [+1l] add ()clm for vmn, vmx, slp, abs - &, vmnclm(len),vmxclm(len),slpclm(len),absclm(len) -! - do i=1,len - tsfanl(i) = tsfclm(i) ! tsf at t - tsfan2(i) = tsfcl2(i) ! tsf at t-deltsfc - wetanl(i) = wetclm(i) ! soil wetness - snoanl(i) = snoclm(i) ! snow - scvanl(i) = scvclm(i) ! snow cover - aisanl(i) = aisclm(i) ! seaice - slianl(i) = sliclm(i) ! land/sea/snow mask - zoranl(i) = zorclm(i) ! surface roughness -! plranl(i) = plrclm(i) ! maximum stomatal resistance - tg3anl(i) = tg3clm(i) ! deep soil temperature - cnpanl(i) = cnpclm(i) ! canopy water content - veganl(i) = vegclm(i) ! vegetation cover - vetanl(i) = vetclm(i) ! vegetation type - sotanl(i) = sotclm(i) ! soil type - cvanl(i) = cvclm(i) ! cv - cvbanl(i) = cvbclm(i) ! cvb - cvtanl(i) = cvtclm(i) ! cvt -!cwu [+4l] add sih, sic - sihanl(i) = sihclm(i) ! sea ice thickness - sicanl(i) = sicclm(i) ! sea ice concentration -!clu [+4l] add vmn, vmx, slp, abs - vmnanl(i) = vmnclm(i) ! min vegetation cover - vmxanl(i) = vmxclm(i) ! max vegetation cover - slpanl(i) = slpclm(i) ! slope type - absanl(i) = absclm(i) ! max snow albedo - enddo -! - do j=1,lsoil - do i=1,len - smcanl(i,j) = smcclm(i,j) ! layer soil wetness - stcanl(i,j) = stcclm(i,j) ! soil temperature - enddo - enddo - do j=1,4 - do i=1,len - albanl(i,j) = albclm(i,j) ! albedo - enddo - enddo - do j=1,2 - do i=1,len - alfanl(i,j) = alfclm(i,j) ! vegetation fraction for albedo - enddo - enddo -! - return - end - subroutine analy(lugb,iy,im,id,ih,fh,len,lsoil, - & slmask,fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fntg3a,fnscva,fnsmca,fnstca,fnacna,fnvega, - & fnveta,fnsota, -!clu [+1l] add fn()a for vmn, vmx, slp, abs - & fnvmna,fnvmxa,fnslpa,fnabsa, - & tsfanl,wetanl,snoanl,zoranl,albanl,aisanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & smcanl,stcanl,slianl,scvanl,acnanl,veganl, - & vetanl,sotanl,alfanl,tsfan0, -!clu [+1l] add ()anl for vmn, vmx, slp, abs - & vmnanl,vmxanl,slpanl,absanl, -!cggg snow mods start & kpdtsf,kpdwet,kpdsno,kpdzor,kpdalb,kpdais, - & kpdtsf,kpdwet,kpdsno,kpdsnd,kpdzor,kpdalb,kpdais, -!cggg snow mods end - & kpdtg3,kpdscv,kpdacn,kpdsmc,kpdstc,kpdveg, - & kprvet,kpdsot,kpdalf, -!clu [+1l] add kpd() for vmn, vmx, slp, abs - & kpdvmn,kpdvmx,kpdslp,kpdabs, - & irttsf,irtwet,irtsno,irtzor,irtalb,irtais, - & irttg3,irtscv,irtacn,irtsmc,irtstc,irtveg, - & irtvet,irtsot,irtalf -!clu [+1l] add irt() for vmn, vmx, slp, abs - &, irtvmn,irtvmx,irtslp,irtabs - &, imsk, jmsk, slmskh, outlat, outlon - &, gaus, blno, blto, me, lanom) - use machine , only : kind_io8,kind_io4 - implicit none - logical lanom - integer irtsmc,irtacn,irtstc,irtvet,irtveg,irtscv,irtzor,irtsno, - & irtalb,irttg3,irtais,iret,me,kk,kpdvet,i,irtalf,irtsot, -!cggg snow mods start & imsk,jmsk,irtwet,lsoil,len, kpdtsf,kpdsno,kpdwet,iy, - & imsk,jmsk,irtwet,lsoil,len,kpdtsf,kpdsno,kpdsnd,kpdwet,iy, -!cggg snow mods end - & lugb,im,ih,id,kpdveg,kpdstc,kprvet,irttsf,kpdsot,kpdsmc, - & kpdais,kpdzor,kpdtg3,kpdacn,kpdscv,j -!clu [+1l] add kpd() and irt() for vmn, vmx, slp, abs - &, kpdvmn,kpdvmx,kpdslp,kpdabs,irtvmn,irtvmx,irtslp,irtabs - real (kind=kind_io8) blto,blno,fh -! - real (kind=kind_io8) slmask(len) - real (kind=kind_io8) slmskh(imsk,jmsk) - real (kind=kind_io8) outlat(len), outlon(len) - integer kpdalb(4), kpdalf(2) -!cggg snow mods start - integer kpds(1000),kgds(1000),jpds(1000),jgds(1000) - integer lugi, lskip, lgrib, ndata -!cggg snow mods end -! - character*500 fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fntg3a,fnscva,fnsmca,fnstca,fnacna,fnvega, - & fnveta,fnsota -!clu [+1l] add fn()a for vmn, vmx, slp, abs - &, fnvmna,fnvmxa,fnslpa,fnabsa - - real (kind=kind_io8) tsfanl(len), wetanl(len), snoanl(len), - & zoranl(len), albanl(len,4), aisanl(len), - & tg3anl(len), acnanl(len), - & cvanl (len), cvbanl(len), cvtanl(len), - & slianl(len), scvanl(len), veganl(len), - & vetanl(len), sotanl(len), alfanl(len,2), - & smcanl(len,lsoil), stcanl(len,lsoil), - & tsfan0(len) -!clu [+1l] add ()anl for vmn, vmx, slp, abs - &, vmnanl(len),vmxanl(len),slpanl(len),absanl(len) -! - logical gaus -! -! tsf -! - irttsf = 1 - if(fntsfa(1:8).ne.' ') then - call fixrda(lugb,fntsfa,kpdtsf,slmask, - & iy,im,id,ih,fh,tsfanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irttsf = iret - if(iret == 1) then - write(6,*) 't surface analysis read error' - call abort - elseif(iret == -1) then - if (me == 0) then - print *,'old t surface analysis provided, indicating proper' - &, ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me == 0) print *,'t surface analysis provided.' - endif - else - if (me == 0) then -! print *,'************************************************' - print *,'no tsf analysis available. climatology used' - endif - endif -! -! tsf0 -! - if(fntsfa(1:8).ne.' ' .and. lanom) then - call fixrda(lugb,fntsfa,kpdtsf,slmask, - & iy,im,id,ih,0.,tsfan0,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if(iret == 1) then - write(6,*) 't surface at ft=0 analysis read error' - call abort - elseif(iret == -1) then - if (me == 0) then - write(6,*) 'could not find t surface analysis at ft=0' - endif - call abort - else - print *,'t surface analysis at ft=0 found.' - endif - else - do i=1,len - tsfan0(i)=-999.9 - enddo - endif -! -! albedo -! - irtalb=0 - if(fnalba(1:8).ne.' ') then - do kk = 1, 4 - call fixrda(lugb,fnalba,kpdalb(kk),slmask, - & iy,im,id,ih,fh,albanl(1,kk),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtalb=iret - if(iret.eq.1) then - write(6,*) 'albedo analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old albedo analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0 .and. kk .eq. 4) - & print *,'albedo analysis provided.' - endif - enddo - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no albedo analysis available. climatology used' - endif - endif -! -! vegetation fraction for albedo -! - irtalf=0 - if(fnalba(1:8).ne.' ') then - do kk = 1, 2 - call fixrda(lugb,fnalba,kpdalf(kk),slmask, - & iy,im,id,ih,fh,alfanl(1,kk),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtalf=iret - if(iret.eq.1) then - write(6,*) 'albedo analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old albedo analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0 .and. kk .eq. 4) - & print *,'albedo analysis provided.' - endif - enddo - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no vegfalbedo analysis available. climatology used' - endif - endif -! -! soil wetness -! - irtwet=0 - irtsmc=0 - if(fnweta(1:8).ne.' ') then - call fixrda(lugb,fnweta,kpdwet,slmask, - & iy,im,id,ih,fh,wetanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtwet=iret - if(iret.eq.1) then - write(6,*) 'bucket wetness analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old wetness analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'bucket wetness analysis provided.' - endif - elseif(fnsmca(1:8).ne.' ') then - call fixrda(lugb,fnsmca,kpdsmc,slmask, - & iy,im,id,ih,fh,smcanl(1,1),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - call fixrda(lugb,fnsmca,kpdsmc,slmask, - & iy,im,id,ih,fh,smcanl(1,2),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtsmc=iret - if(iret.eq.1) then - write(6,*) 'layer soil wetness analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old layer soil wetness analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'layer soil wetness analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no soil wetness analysis available. climatology used' - endif - endif -! -! read in snow depth/snow cover -! - irtscv=0 - if(fnsnoa(1:8).ne.' ') then - do i=1,len - scvanl(i)=0. - enddo -!cggg snow mods start -!cggg need to determine if the snow data is on the gaussian grid -!cggg or not. if gaussian, then data is a depth, not liq equiv -!cggg depth. if not gaussian, then data is from hua-lu's -!cggg program and is a liquid equiv. need to communicate -!cggg this to routine fixrda via the 3rd argument which is -!cggg the grib parameter id number. - call baopenr(lugb,fnsnoa,iret) - if (iret .ne. 0) then - write(6,*) ' error in opening file ',trim(fnsnoa) - print *,'error in opening file ',trim(fnsnoa) - call abort - endif - lugi=0 - lskip=-1 - jpds=-1 - jgds=-1 - kpds=jpds - call getgbh(lugb,lugi,lskip,jpds,jgds,lgrib,ndata, - & lskip,kpds,kgds,iret) - close(lugb) - if (iret .ne. 0) then - write(6,*) ' error reading header of file: ',trim(fnsnoa) - print *,'error reading header of file: ',trim(fnsnoa) - call abort - endif - if (kgds(1) == 4) then ! gaussian data is depth - call fixrda(lugb,fnsnoa,kpdsnd,slmask, - & iy,im,id,ih,fh,snoanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - snoanl=snoanl*100. ! convert from meters to liq. eq. - ! depth in mm using 10:1 ratio - else ! lat/lon data is liq equv. depth - call fixrda(lugb,fnsnoa,kpdsno,slmask, - & iy,im,id,ih,fh,snoanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif -!cggg snow mods end - irtscv=iret - if(iret.eq.1) then - write(6,*) 'snow depth analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old snow depth analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'snow depth analysis provided.' - endif - irtsno=0 - elseif(fnscva(1:8).ne.' ') then - do i=1,len - snoanl(i)=0. - enddo - call fixrda(lugb,fnscva,kpdscv,slmask, - & iy,im,id,ih,fh,scvanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtsno=iret - if(iret.eq.1) then - write(6,*) 'snow cover analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old snow cover analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'snow cover analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no snow/snocov analysis available. climatology used' - endif - endif -! -! sea ice mask -! - irtacn=0 - irtais=0 - if(fnacna(1:8).ne.' ') then - call fixrda(lugb,fnacna,kpdacn,slmask, - & iy,im,id,ih,fh,acnanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtacn=iret - if(iret.eq.1) then - write(6,*) 'ice concentration analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old ice concentration analysis provided', - & ' indicating proper file name is given' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'ice concentration analysis provided.' - endif - elseif(fnaisa(1:8).ne.' ') then - call fixrda(lugb,fnaisa,kpdais,slmask, - & iy,im,id,ih,fh,aisanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtais=iret - if(iret.eq.1) then - write(6,*) 'ice mask analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old ice-mask analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'ice mask analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no sea-ice analysis available. climatology used' - endif - endif -! -! surface roughness -! - irtzor=0 - if(fnzora(1:8).ne.' ') then - call fixrda(lugb,fnzora,kpdzor,slmask, - & iy,im,id,ih,fh,zoranl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtzor=iret - if(iret.eq.1) then - write(6,*) 'roughness analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old roughness analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'roughness analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no srfc roughness analysis available. climatology used' - endif - endif -! -! deep soil temperature -! - irttg3=0 - irtstc=0 - if(fntg3a(1:8).ne.' ') then - call fixrda(lugb,fntg3a,kpdtg3,slmask, - & iy,im,id,ih,fh,tg3anl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irttg3=iret - if(iret.eq.1) then - write(6,*) 'deep soil tmp analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old deep soil temp analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'deep soil tmp analysis provided.' - endif - elseif(fnstca(1:8).ne.' ') then - call fixrda(lugb,fnstca,kpdstc,slmask, - & iy,im,id,ih,fh,stcanl(1,1),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - call fixrda(lugb,fnstca,kpdstc,slmask, - & iy,im,id,ih,fh,stcanl(1,2),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtstc=iret - if(iret.eq.1) then - write(6,*) 'layer soil tmp analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old deep soil temp analysis provided', - & 'iindicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'layer soil tmp analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no deep soil temp analy available. climatology used' - endif - endif -! -! vegetation cover -! - irtveg=0 - if(fnvega(1:8).ne.' ') then - call fixrda(lugb,fnvega,kpdveg,slmask, - & iy,im,id,ih,fh,veganl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtveg=iret - if(iret.eq.1) then - write(6,*) 'vegetation cover analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old vegetation cover analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'gegetation cover analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no vegetation cover anly available. climatology used' - endif - endif -! -! vegetation type -! - irtvet=0 - if(fnveta(1:8).ne.' ') then - call fixrda(lugb,fnveta,kpdvet,slmask, - & iy,im,id,ih,fh,vetanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtvet=iret - if(iret.eq.1) then - write(6,*) 'vegetation type analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old vegetation type analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'vegetation type analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no vegetation type anly available. climatology used' - endif - endif -! -! soil type -! - irtsot=0 - if(fnsota(1:8).ne.' ') then - call fixrda(lugb,fnsota,kpdsot,slmask, - & iy,im,id,ih,fh,sotanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtsot=iret - if(iret.eq.1) then - write(6,*) 'soil type analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old soil type analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'soil type analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no soil type anly available. climatology used' - endif - endif - -!clu [+120l]-------------------------------------------------------------- -! -! min vegetation cover -! - irtvmn=0 - if(fnvmna(1:8).ne.' ') then - call fixrda(lugb,fnvmna,kpdvmn,slmask, - & iy,im,id,ih,fh,vmnanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtvmn=iret - if(iret.eq.1) then - write(6,*) 'shdmin analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old shdmin analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'shdmin analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no shdmin anly available. climatology used' - endif - endif - -! -! max vegetation cover -! - irtvmx=0 - if(fnvmxa(1:8).ne.' ') then - call fixrda(lugb,fnvmxa,kpdvmx,slmask, - & iy,im,id,ih,fh,vmxanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtvmx=iret - if(iret.eq.1) then - write(6,*) 'shdmax analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old shdmax analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'shdmax analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no shdmax anly available. climatology used' - endif - endif - -! -! slope type -! - irtslp=0 - if(fnslpa(1:8).ne.' ') then - call fixrda(lugb,fnslpa,kpdslp,slmask, - & iy,im,id,ih,fh,slpanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtslp=iret - if(iret.eq.1) then - write(6,*) 'slope type analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old slope type analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'slope type analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no slope type anly available. climatology used' - endif - endif - -! -! max snow albedo -! - irtabs=0 - if(fnabsa(1:8).ne.' ') then - call fixrda(lugb,fnabsa,kpdabs,slmask, - & iy,im,id,ih,fh,absanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtabs=iret - if(iret.eq.1) then - write(6,*) 'snoalb analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old snoalb analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'snoalb analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no snoalb anly available. climatology used' - endif - endif - -!clu ---------------------------------------------------------------------- -! - return - end - subroutine filfcs(tsffcs,wetfcs,snofcs,zorfcs,albfcs, - & tg3fcs,cvfcs ,cvbfcs,cvtfcs, - & cnpfcs,smcfcs,stcfcs,slifcs,aisfcs, - & vegfcs, vetfcs, sotfcs, alffcs, -!cwu [+1l] add ()fcs for sih, sic - & sihfcs,sicfcs, -!clu [+1l] add ()fcs for vmn, vmx, slp, abs - & vmnfcs,vmxfcs,slpfcs,absfcs, - & tsfanl,wetanl,snoanl,zoranl,albanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,aisanl, - & veganl, vetanl, sotanl, alfanl, -!cwu [+1l] add ()anl for sih, sic - & sihanl,sicanl, -!clu [+1l] add ()anl for vmn, vmx, slp, abs - & vmnanl,vmxanl,slpanl,absanl, - & len,lsoil) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,j,len,lsoil - real (kind=kind_io8) tsffcs(len),wetfcs(len),snofcs(len), - & zorfcs(len),albfcs(len,4),aisfcs(len), - & tg3fcs(len), - & cvfcs (len),cvbfcs(len),cvtfcs(len), - & cnpfcs(len), - & smcfcs(len,lsoil),stcfcs(len,lsoil), - & slifcs(len),vegfcs(len), - & vetfcs(len),sotfcs(len),alffcs(len,2) -!cwu [+1l] add ()fcs for sih, sic - &, sihfcs(len),sicfcs(len) -!clu [+1l] add ()fcs for vmn, vmx, slp, abs - &, vmnfcs(len),vmxfcs(len),slpfcs(len),absfcs(len) - real (kind=kind_io8) tsfanl(len),wetanl(len),snoanl(len), - & zoranl(len),albanl(len,4),aisanl(len), - & tg3anl(len), - & cvanl (len),cvbanl(len),cvtanl(len), - & cnpanl(len), - & smcanl(len,lsoil),stcanl(len,lsoil), - & slianl(len),veganl(len), - & vetanl(len),sotanl(len),alfanl(len,2) -!cwu [+1l] add ()anl for sih, sic - &, sihanl(len),sicanl(len) -!clu [+1l] add ()anl for vmn, vmx, slp, abs - &, vmnanl(len),vmxanl(len),slpanl(len),absanl(len) -! - write(6,*) ' this is a dead start run, tsfc over land is', - & ' set as lowest sigma level temperture if given.' - write(6,*) ' if not, set to climatological tsf over land is used' -! -! - do i=1,len - tsffcs(i) = tsfanl(i) ! tsf - albfcs(i,1) = albanl(i,1) ! albedo - albfcs(i,2) = albanl(i,2) ! albedo - albfcs(i,3) = albanl(i,3) ! albedo - albfcs(i,4) = albanl(i,4) ! albedo - wetfcs(i) = wetanl(i) ! soil wetness - snofcs(i) = snoanl(i) ! snow - aisfcs(i) = aisanl(i) ! seaice - slifcs(i) = slianl(i) ! land/sea/snow mask - zorfcs(i) = zoranl(i) ! surface roughness -! plrfcs(i) = plranl(i) ! maximum stomatal resistance - tg3fcs(i) = tg3anl(i) ! deep soil temperature - cnpfcs(i) = cnpanl(i) ! canopy water content - cvfcs(i) = cvanl(i) ! cv - cvbfcs(i) = cvbanl(i) ! cvb - cvtfcs(i) = cvtanl(i) ! cvt - vegfcs(i) = veganl(i) ! vegetation cover - vetfcs(i) = vetanl(i) ! vegetation type - sotfcs(i) = sotanl(i) ! soil type - alffcs(i,1) = alfanl(i,1) ! vegetation fraction for albedo - alffcs(i,2) = alfanl(i,2) ! vegetation fraction for albedo -!cwu [+2l] add sih, sic - sihfcs(i) = sihanl(i) ! sea ice thickness - sicfcs(i) = sicanl(i) ! sea ice concentration -!clu [+4l] add vmn, vmx, slp, abs - vmnfcs(i) = vmnanl(i) ! min vegetation cover - vmxfcs(i) = vmxanl(i) ! max vegetation cover - slpfcs(i) = slpanl(i) ! slope type - absfcs(i) = absanl(i) ! max snow albedo - enddo -! - do j=1,lsoil - do i=1,len - smcfcs(i,j) = smcanl(i,j) ! layer soil wetness - stcfcs(i,j) = stcanl(i,j) ! soil temperature - enddo - enddo -! - return - end - subroutine bktges(smcfcs,slianl,stcfcs,len,lsoil) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,j,len,lsoil,k - real (kind=kind_io8) smcfcs(len,lsoil), stcfcs(len,lsoil), - & slianl(len) -! -! note that smfcs comes in with the original unit (cm?) (not grib file) -! - do i = 1, len - smcfcs(i,1) = (smcfcs(i,1)/150.) * .37 + .1 - enddo - do k = 2, lsoil - do i = 1, len - smcfcs(i,k) = smcfcs(i,1) - enddo - enddo - if(lsoil.gt.2) then - do k = 3, lsoil - do i = 1, len - stcfcs(i,k) = stcfcs(i,2) - enddo - enddo - endif -! - return - end - subroutine rof01(aisfld,len,op,crit) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) aisfld(len),crit - character*2 op -! - if(op.eq.'ge') then - do i=1,len - if(aisfld(i).ge.crit) then - aisfld(i)=1. - else - aisfld(i)=0. - endif - enddo - elseif(op.eq.'gt') then - do i=1,len - if(aisfld(i).gt.crit) then - aisfld(i)=1. - else - aisfld(i)=0. - endif - enddo - elseif(op.eq.'le') then - do i=1,len - if(aisfld(i).le.crit) then - aisfld(i)=1. - else - aisfld(i)=0. - endif - enddo - elseif(op.eq.'lt') then - do i=1,len - if(aisfld(i).lt.crit) then - aisfld(i)=1. - else - aisfld(i)=0. - endif - enddo - else - write(6,*) ' illegal operator in rof01. op=',op - call abort - endif -! - return - end - subroutine tsfcor(tsfc,orog,slmask,umask,len,rlapse) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) rlapse,umask - real (kind=kind_io8) tsfc(len), orog(len), slmask(len) -! - do i=1,len - if(slmask(i).eq.umask) then - tsfc(i) = tsfc(i) - orog(i)*rlapse - endif - enddo - return - end - subroutine snodpth(scvanl,slianl,tsfanl,snoclm, - & glacir,snwmax,snwmin,landice,len,snoanl, me) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,me,len - logical, intent(in) :: landice - real (kind=kind_io8) sno,snwmax,snwmin -! - real (kind=kind_io8) scvanl(len), slianl(len), tsfanl(len), - & snoclm(len), snoanl(len), glacir(len) -! - if (me .eq. 0) write(6,*) 'snodpth' -! -! use surface temperature to get snow depth estimate -! - do i=1,len - sno = 0.0 -! -! over land -! - if(slianl(i).eq.1.) then - if(scvanl(i).eq.1.0) then - if(tsfanl(i).lt.243.0) then - sno = snwmax - elseif(tsfanl(i).lt.273.0) then - sno = snwmin+(snwmax-snwmin)*(273.0-tsfanl(i))/30.0 - else - sno = snwmin - endif - endif -! -! if glacial points has snow in climatology, set sno to snomax -! - if (.not.landice) then - if(glacir(i).eq.1.0) then - sno = snoclm(i) - if(sno.eq.0.) sno=snwmax - endif - endif - endif -! -! over sea ice -! -! snow over sea ice is cycled as of 01/01/94.....hua-lu pan -! - if(slianl(i).eq.2.0) then - sno=snoclm(i) - if(sno.eq.0.) sno=snwmax - endif -! - snoanl(i) = sno - enddo - return - end subroutine snodpth - subroutine merge(len,lsoil,iy,im,id,ih,fh,deltsfc, - & sihfcs,sicfcs, - & vmnfcs,vmxfcs,slpfcs,absfcs, - & tsffcs,wetfcs,snofcs,zorfcs,albfcs,aisfcs, - & cvfcs ,cvbfcs,cvtfcs, - & cnpfcs,smcfcs,stcfcs,slifcs,vegfcs, - & vetfcs,sotfcs,alffcs, - & sihanl,sicanl, - & vmnanl,vmxanl,slpanl,absanl, - & tsfanl,tsfan2,wetanl,snoanl,zoranl,albanl,aisanl, - & cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,veganl, - & vetanl,sotanl,alfanl, - & ctsfl,calbl,caisl,csnol,csmcl,czorl,cstcl,cvegl, - & ctsfs,calbs,caiss,csnos,csmcs,czors,cstcs,cvegs, - & ccv,ccvb,ccvt,ccnp,cvetl,cvets,csotl,csots, - & calfl,calfs, - & csihl,csihs,csicl,csics, - & cvmnl,cvmns,cvmxl,cvmxs,cslpl,cslps,cabsl,cabss, - & irttsf,irtwet,irtsno,irtzor,irtalb,irtais, - & irttg3,irtscv,irtacn,irtsmc,irtstc,irtveg, - & irtvmn,irtvmx,irtslp,irtabs, - & irtvet,irtsot,irtalf, landice, me) - use machine , only : kind_io8,kind_io4 - use sfccyc_module, only : veg_type_landice, soil_type_landice - implicit none - integer k,i,im,id,iy,len,lsoil,ih,irtacn,irtsmc,irtscv,irtais, - & irttg3,irtstc,irtalf,me,irtsot,irtveg,irtvet, irtzor, - & irtalb,irtsno,irttsf,irtwet,j - &, irtvmn,irtvmx,irtslp,irtabs - logical, intent(in) :: landice - real (kind=kind_io8) rvegs,rvets,rzors,raiss,rsnos,rsots,rcnp, - & rcvt,rcv,rcvb,rsnol,rzorl,raisl,ralbl, - & ralfl,rvegl,ralbs,ralfs,rtsfs,rvetl,rsotl, - & qzors,qvegs,qsnos,qalfs,qaiss,qvets,qcvt, - & qcnp,qcvb,qsots,qcv,qaisl,qsnol,qalfl, - & qtsfl,qalbl,qzorl,qtsfs,qalbs,qsotl,qvegl, - & qvetl,rtsfl,calbs,caiss,ctsfs,czorl,cvegl, - & csnos,ccvb,ccvt,ccv,czors,cvegs,caisl,csnol, - & calbl,fh,ctsfl,ccnp,csots,calfl,csotl,cvetl, - & cvets,calfs,deltsfc, - & csihl,csihs,csicl,csics, - & rsihl,rsihs,rsicl,rsics, - & qsihl,qsihs,qsicl,qsics - &, cvmnl,cvmns,cvmxl,cvmxs,cslpl,cslps - &, cabsl,cabss,rvmnl,rvmns,rvmxl,rvmxs - &, rslpl,rslps,rabsl,rabss,qvmnl,qvmns - &, qvmxl,qvmxs,qslpl,qslps,qabsl,qabss -! - real (kind=kind_io8) tsffcs(len), wetfcs(len), snofcs(len), - & zorfcs(len), albfcs(len,4), aisfcs(len), - & cvfcs (len), cvbfcs(len), cvtfcs(len), - & cnpfcs(len), - & smcfcs(len,lsoil),stcfcs(len,lsoil), - & slifcs(len), vegfcs(len), - & vetfcs(len), sotfcs(len), alffcs(len,2) - &, sihfcs(len), sicfcs(len) - &, vmnfcs(len),vmxfcs(len),slpfcs(len),absfcs(len) - real (kind=kind_io8) tsfanl(len),tsfan2(len), - & wetanl(len),snoanl(len), - & zoranl(len), albanl(len,4), aisanl(len), - & cvanl (len), cvbanl(len), cvtanl(len), - & cnpanl(len), - & smcanl(len,lsoil),stcanl(len,lsoil), - & slianl(len), veganl(len), - & vetanl(len), sotanl(len), alfanl(len,2) - &, sihanl(len),sicanl(len) - &, vmnanl(len),vmxanl(len),slpanl(len),absanl(len) -! - real (kind=kind_io8) csmcl(lsoil), csmcs(lsoil), - & cstcl(lsoil), cstcs(lsoil) - real (kind=kind_io8) rsmcl(lsoil), rsmcs(lsoil), - & rstcl(lsoil), rstcs(lsoil) - real (kind=kind_io8) qsmcl(lsoil), qsmcs(lsoil), - & qstcl(lsoil), qstcs(lsoil) - logical first - integer num_threads - data first /.true./ - save num_threads, first -! - integer len_thread_m, i1_t, i2_t, it - integer num_parthds -! - if (first) then - num_threads = num_parthds() - first = .false. - endif -! -! coeeficients of blending forecast and interpolated clim -! (or analyzed) fields over sea or land(l) (not for clouds) -! 1.0 = use of forecast -! 0.0 = replace with interpolated analysis -! -! merging coefficients are defined by parameter statement in calling program -! and therefore they should not be modified in this program. -! - rtsfl = ctsfl - ralbl = calbl - ralfl = calfl - raisl = caisl - rsnol = csnol -!clu rsmcl = csmcl - rzorl = czorl - rvegl = cvegl - rvetl = cvetl - rsotl = csotl - rsihl = csihl - rsicl = csicl - rvmnl = cvmnl - rvmxl = cvmxl - rslpl = cslpl - rabsl = cabsl -! - rtsfs = ctsfs - ralbs = calbs - ralfs = calfs - raiss = caiss - rsnos = csnos -! rsmcs = csmcs - rzors = czors - rvegs = cvegs - rvets = cvets - rsots = csots - rsihs = csihs - rsics = csics - rvmns = cvmns - rvmxs = cvmxs - rslps = cslps - rabss = cabss -! - rcv = ccv - rcvb = ccvb - rcvt = ccvt - rcnp = ccnp -! - do k=1,lsoil - rsmcl(k) = csmcl(k) - rsmcs(k) = csmcs(k) - rstcl(k) = cstcl(k) - rstcs(k) = cstcs(k) - enddo - if (fh-deltsfc < -0.001 .and. irttsf == 1) then - rtsfs = 1.0 - rtsfl = 1.0 -! do k=1,lsoil -! rsmcl(k) = 1.0 -! rsmcs(k) = 1.0 -! rstcl(k) = 1.0 -! rstcs(k) = 1.0 -! enddo - endif -! -! if analysis file name is given but no matching analysis date found, -! use guess (these are flagged by irt???=1). -! - if(irttsf == -1) then - rtsfl = 1. - rtsfs = 1. - endif - if(irtalb == -1) then - ralbl = 1. - ralbs = 1. - ralfl = 1. - ralfs = 1. - endif - if(irtais == -1) then - raisl = 1. - raiss = 1. - endif - if(irtsno == -1 .or. irtscv == -1) then - rsnol = 1. - rsnos = 1. - endif - if(irtsmc == -1 .or. irtwet == -1) then -! rsmcl = 1. -! rsmcs = 1. - do k=1,lsoil - rsmcl(k) = 1. - rsmcs(k) = 1. - enddo - endif - if(irtstc.eq.-1) then - do k=1,lsoil - rstcl(k) = 1. - rstcs(k) = 1. - enddo - endif - if(irtzor == -1) then - rzorl = 1. - rzors = 1. - endif - if(irtveg == -1) then - rvegl = 1. - rvegs = 1. - endif - if(irtvet.eq.-1) then - rvetl = 1. - rvets = 1. - endif - if(irtsot == -1) then - rsotl = 1. - rsots = 1. - endif - - if(irtacn == -1) then - rsicl = 1. - rsics = 1. - endif - if(irtvmn == -1) then - rvmnl = 1. - rvmns = 1. - endif - if(irtvmx == -1) then - rvmxl = 1. - rvmxs = 1. - endif - if(irtslp == -1) then - rslpl = 1. - rslps = 1. - endif - if(irtabs == -1) then - rabsl = 1. - rabss = 1. - endif -! - if(raiss == 1. .or. irtacn == -1) then - if (me == 0) print *,'use forecast land-sea-ice mask' - do i = 1, len - aisanl(i) = aisfcs(i) - slianl(i) = slifcs(i) - enddo - endif -! - if (me == 0) then - write(6,100) rtsfl,ralbl,raisl,rsnol,rsmcl,rzorl,rvegl - 100 format('rtsfl,ralbl,raisl,rsnol,rsmcl,rzorl,rvegl=',10f7.3) - write(6,101) rtsfs,ralbs,raiss,rsnos,rsmcs,rzors,rvegs - 101 format('rtsfs,ralbs,raiss,rsnos,rsmcs,rzors,rvegs=',10f7.3) -! print *,' ralfl=',ralfl,' ralfs=',ralfs,' rsotl=',rsotl -! *,' rsots=',rsots,' rvetl=',rvetl,' rvets=',rvets - endif -! - qtsfl = 1. - rtsfl - qalbl = 1. - ralbl - qalfl = 1. - ralfl - qaisl = 1. - raisl - qsnol = 1. - rsnol -! qsmcl = 1. - rsmcl - qzorl = 1. - rzorl - qvegl = 1. - rvegl - qvetl = 1. - rvetl - qsotl = 1. - rsotl - qsihl = 1. - rsihl - qsicl = 1. - rsicl - qvmnl = 1. - rvmnl - qvmxl = 1. - rvmxl - qslpl = 1. - rslpl - qabsl = 1. - rabsl -! - qtsfs = 1. - rtsfs - qalbs = 1. - ralbs - qalfs = 1. - ralfs - qaiss = 1. - raiss - qsnos = 1. - rsnos -! qsmcs = 1. - rsmcs - qzors = 1. - rzors - qvegs = 1. - rvegs - qvets = 1. - rvets - qsots = 1. - rsots - qsihs = 1. - rsihs - qsics = 1. - rsics - qvmns = 1. - rvmns - qvmxs = 1. - rvmxs - qslps = 1. - rslps - qabss = 1. - rabss -! - qcv = 1. - rcv - qcvb = 1. - rcvb - qcvt = 1. - rcvt - qcnp = 1. - rcnp -! - do k=1,lsoil - qsmcl(k) = 1. - rsmcl(k) - qsmcs(k) = 1. - rsmcs(k) - qstcl(k) = 1. - rstcl(k) - qstcs(k) = 1. - rstcs(k) - enddo -! -! merging -! - if(me .eq. 0) then - print *, 'dbgx-- csmcl:', (csmcl(k),k=1,lsoil) - print *, 'dbgx-- rsmcl:', (rsmcl(k),k=1,lsoil) - print *, 'dbgx-- csnol, csnos:',csnol,csnos - print *, 'dbgx-- rsnol, rsnos:',rsnol,rsnos - endif - -! print *, rtsfs, qtsfs, raiss , qaiss -! *, rsnos , qsnos, rzors , qzors, rvegs , qvegs -! *, rvets , qvets, rsots , qsots -! *, rcv, rcvb, rcvt, qcv, qcvb, qcvt -! *, ralbs, qalbs, ralfs, qalfs -! print *, rtsfl, qtsfl, raisl , qaisl -! *, rsnol , qsnol, rzorl , qzorl, rvegl , qvegl -! *, rvetl , qvetl, rsotl , qsotl -! *, ralbl, qalbl, ralfl, qalfl -! -! - len_thread_m = (len+num_threads-1) / num_threads - -!$omp parallel do private(i1_t,i2_t,it,i) - do it=1,num_threads ! start of threaded loop ................... - i1_t = (it-1)*len_thread_m+1 - i2_t = min(i1_t+len_thread_m-1,len) - do i=i1_t,i2_t - if(slianl(i).eq.0.) then - vetanl(i) = vetfcs(i)*rvets + vetanl(i)*qvets - sotanl(i) = sotfcs(i)*rsots + sotanl(i)*qsots - else - vetanl(i) = vetfcs(i)*rvetl + vetanl(i)*qvetl - sotanl(i) = sotfcs(i)*rsotl + sotanl(i)*qsotl - endif - enddo - enddo -!$omp end parallel do -! -!$omp parallel do private(i1_t,i2_t,it,i,k) -! - do it=1,num_threads ! start of threaded loop ................... - i1_t = (it-1)*len_thread_m+1 - i2_t = min(i1_t+len_thread_m-1,len) -! - do i=i1_t,i2_t - if(slianl(i).eq.0.) then -!.... tsffc2 is the previous anomaly + today's climatology -! tsffc2 = (tsffcs(i)-tsfan2(i))+tsfanl(i) -! tsfanl(i) = tsffc2 *rtsfs+tsfanl(i)*qtsfs -! - tsfanl(i) = tsffcs(i)*rtsfs + tsfanl(i)*qtsfs -! albanl(i) = albfcs(i)*ralbs + albanl(i)*qalbs - aisanl(i) = aisfcs(i)*raiss + aisanl(i)*qaiss - snoanl(i) = snofcs(i)*rsnos + snoanl(i)*qsnos - - zoranl(i) = zorfcs(i)*rzors + zoranl(i)*qzors - veganl(i) = vegfcs(i)*rvegs + veganl(i)*qvegs - sihanl(i) = sihfcs(i)*rsihs + sihanl(i)*qsihs - sicanl(i) = sicfcs(i)*rsics + sicanl(i)*qsics - vmnanl(i) = vmnfcs(i)*rvmns + vmnanl(i)*qvmns - vmxanl(i) = vmxfcs(i)*rvmxs + vmxanl(i)*qvmxs - slpanl(i) = slpfcs(i)*rslps + slpanl(i)*qslps - absanl(i) = absfcs(i)*rabss + absanl(i)*qabss - else - tsfanl(i) = tsffcs(i)*rtsfl + tsfanl(i)*qtsfl -! albanl(i) = albfcs(i)*ralbl + albanl(i)*qalbl - aisanl(i) = aisfcs(i)*raisl + aisanl(i)*qaisl - if(rsnol.ge.0)then - snoanl(i) = snofcs(i)*rsnol + snoanl(i)*qsnol - else ! envelope method - if(snoanl(i).ne.0)then - snoanl(i) = max(-snoanl(i)/rsnol, - & min(-snoanl(i)*rsnol, snofcs(i))) - endif - endif - zoranl(i) = zorfcs(i)*rzorl + zoranl(i)*qzorl - veganl(i) = vegfcs(i)*rvegl + veganl(i)*qvegl - vmnanl(i) = vmnfcs(i)*rvmnl + vmnanl(i)*qvmnl - vmxanl(i) = vmxfcs(i)*rvmxl + vmxanl(i)*qvmxl - slpanl(i) = slpfcs(i)*rslpl + slpanl(i)*qslpl - absanl(i) = absfcs(i)*rabsl + absanl(i)*qabsl - sihanl(i) = sihfcs(i)*rsihl + sihanl(i)*qsihl - sicanl(i) = sicfcs(i)*rsicl + sicanl(i)*qsicl - endif - - cnpanl(i) = cnpfcs(i)*rcnp + cnpanl(i)*qcnp -! -! snow over sea ice is cycled -! - if(slianl(i).eq.2.) then - snoanl(i) = snofcs(i) - endif -! - enddo - -! at landice points, set the soil type, slope type and -! greenness fields to flag values. - - if (landice) then - do i=i1_t,i2_t - if (nint(slianl(i)) == 1) then - if (nint(vetanl(i)) == veg_type_landice) then - sotanl(i) = soil_type_landice - veganl(i) = 0.0 - slpanl(i) = 9.0 - vmnanl(i) = 0.0 - vmxanl(i) = 0.0 - endif - end if ! if land - enddo - endif - - do i=i1_t,i2_t - cvanl(i) = cvfcs(i)*rcv + cvanl(i)*qcv - cvbanl(i) = cvbfcs(i)*rcvb + cvbanl(i)*qcvb - cvtanl(i) = cvtfcs(i)*rcvt + cvtanl(i)*qcvt - enddo -! - do k = 1, 4 - do i=i1_t,i2_t - if(slianl(i).eq.0.) then - albanl(i,k) = albfcs(i,k)*ralbs + albanl(i,k)*qalbs - else - albanl(i,k) = albfcs(i,k)*ralbl + albanl(i,k)*qalbl - endif - enddo - enddo -! - do k = 1, 2 - do i=i1_t,i2_t - if(slianl(i).eq.0.) then - alfanl(i,k) = alffcs(i,k)*ralfs + alfanl(i,k)*qalfs - else - alfanl(i,k) = alffcs(i,k)*ralfl + alfanl(i,k)*qalfl - endif - enddo - enddo -! - do k = 1, lsoil - do i=i1_t,i2_t - if(slianl(i).eq.0.) then - smcanl(i,k) = smcfcs(i,k)*rsmcs(k) + smcanl(i,k)*qsmcs(k) - stcanl(i,k) = stcfcs(i,k)*rstcs(k) + stcanl(i,k)*qstcs(k) - else -! soil moisture not used at landice points, so -! don't bother merging it. also, for now don't allow nudging -! to raise subsurface temperature above freezing. - stcanl(i,k) = stcfcs(i,k)*rstcl(k) + stcanl(i,k)*qstcl(k) - if (landice .and. slianl(i) == 1.0 .and. - & nint(vetanl(i)) == veg_type_landice) then - smcanl(i,k) = 1.0 ! use value as flag - stcanl(i,k) = min(stcanl(i,k), 273.15) - else - smcanl(i,k) = smcfcs(i,k)*rsmcl(k) + smcanl(i,k)*qsmcl(k) - end if - endif - enddo - enddo -! - enddo ! end of threaded loop ................... -!$omp end parallel do - return - end subroutine merge - subroutine newice(slianl,slifcs,tsfanl,tsffcs,len,lsoil, -!cwu [+1l] add sihnew,sicnew,sihanl,sicanl - & sihnew,sicnew,sihanl,sicanl, - & albanl,snoanl,zoranl,smcanl,stcanl, - & albsea,snosea,zorsea,smcsea,smcice, - & tsfmin,tsfice,albice,zorice,tgice, - & rla,rlo,me) -! - use machine , only : kind_io8,kind_io4 - implicit none - real (kind=kind_io8), parameter :: one=1.0 - real (kind=kind_io8) tgice,albice,zorice,tsfice,albsea,snosea, - & smcice,tsfmin,zorsea,smcsea -!cwu [+1l] add sicnew,sihnew - &, sicnew,sihnew - integer i,me,kount1,kount2,k,len,lsoil - real (kind=kind_io8) slianl(len), slifcs(len), - & tsffcs(len),tsfanl(len) - real (kind=kind_io8) albanl(len,4), snoanl(len), zoranl(len) - real (kind=kind_io8) smcanl(len,lsoil), stcanl(len,lsoil) -!cwu [+1l] add sihanl & sicanl - real (kind=kind_io8) sihanl(len), sicanl(len) -! - real (kind=kind_io8) rla(len), rlo(len) -! - if (me .eq. 0) write(6,*) 'newice' -! - kount1 = 0 - kount2 = 0 - do i=1,len - if(slifcs(i).ne.slianl(i)) then - if(slifcs(i).eq.1..or.slianl(i).eq.1.) then - print *,'inconsistency in slifcs or slianl' - print 910,rla(i),rlo(i),slifcs(i),slianl(i), - & tsffcs(i),tsfanl(i) - 910 format(2x,'at lat=',f5.1,' lon=',f5.1,' slifcs=',f4.1, - & ' slimsk=',f4.1,' tsffcs=',f5.1,' set to tsfanl=',f5.1) - call abort - endif -! -! interpolated climatology indicates melted sea ice -! - if(slianl(i).eq.0..and.slifcs(i).eq.2.) then - tsfanl(i) = tsfmin - albanl(i,1) = albsea - albanl(i,2) = albsea - albanl(i,3) = albsea - albanl(i,4) = albsea - snoanl(i) = snosea - zoranl(i) = zorsea - do k = 1, lsoil - smcanl(i,k) = smcsea -!cwu [+1l] set stcanl to tgice (over sea-ice) - stcanl(i,k) = tgice - enddo -!cwu [+2l] set siganl and sicanl - sihanl(i) = 0. - sicanl(i) = 0. - kount1 = kount1 + 1 - endif -! -! interplated climatoloyg/analysis indicates new sea ice -! - if(slianl(i).eq.2..and.slifcs(i).eq.0.) then - tsfanl(i) = tsfice - albanl(i,1) = albice - albanl(i,2) = albice - albanl(i,3) = albice - albanl(i,4) = albice - snoanl(i) = 0. - zoranl(i) = zorice - do k = 1, lsoil - smcanl(i,k) = smcice - stcanl(i,k) = tgice - enddo -!cwu [+2l] add sihanl & sicanl - sihanl(i) = sihnew - sicanl(i) = min(one, max(sicnew,sicanl(i))) - kount2 = kount2 + 1 - endif - endif - enddo -! - if (me .eq. 0) then - if(kount1.gt.0) then - write(6,*) 'sea ice melted. tsf,alb,zor are filled', - & ' at ',kount1,' points' - endif - if(kount2.gt.0) then - write(6,*) 'sea ice formed. tsf,alb,zor are filled', - & ' at ',kount2,' points' - endif - endif -! - return - end - subroutine qcsnow(snoanl,slmask,aisanl,glacir,len,snoval, - & landice,me) - use machine , only : kind_io8,kind_io4 - implicit none - integer kount,i,len,me - logical, intent(in) :: landice - real (kind=kind_io8) per,snoval - real (kind=kind_io8) snoanl(len),slmask(len), - & aisanl(len),glacir(len) - if (me .eq. 0) then - write(6,*) ' ' - write(6,*) 'qc of snow' - endif - if (.not.landice) then - kount=0 - do i=1,len - if(glacir(i).ne.0..and.snoanl(i).eq.0.) then -! if(glacir(i).ne.0..and.snoanl(i).lt.snoval*0.5) then - snoanl(i) = snoval - kount = kount + 1 - endif - enddo - per = float(kount) / float(len)*100. - if(kount.gt.0) then - if (me .eq. 0) then - print *,'snow filled over glacier points at ',kount, - & ' points (',per,'percent)' - endif - endif - endif ! landice check - kount = 0 - do i=1,len - if(slmask(i).eq.0.and.aisanl(i).eq.0) then - snoanl(i) = 0. - kount = kount + 1 - endif - enddo - per = float(kount) / float(len)*100. - if(kount.gt.0) then - if (me .eq. 0) then - print *,'snow set to zero over open sea at ',kount, - & ' points (',per,'percent)' - endif - endif - return - end subroutine qcsnow - subroutine qcsice(ais,glacir,amxice,aicice,aicsea,sllnd,slmask, - & rla,rlo,len,me) - use machine , only : kind_io8,kind_io4 - implicit none - integer kount1,kount,i,me,len - real (kind=kind_io8) per,aicsea,aicice,sllnd -! - real (kind=kind_io8) ais(len), glacir(len), - & amxice(len), slmask(len) - real (kind=kind_io8) rla(len), rlo(len) -! -! check sea-ice cover mask against land-sea mask -! - if (me .eq. 0) write(6,*) 'qc of sea ice' - kount = 0 - kount1 = 0 - do i=1,len - if(ais(i).ne.aicice.and.ais(i).ne.aicsea) then - print *,'sea ice mask not ',aicice,' or ',aicsea - print *,'ais(i),aicice,aicsea,rla(i),rlo(i,=', - & ais(i),aicice,aicsea,rla(i),rlo(i) - call abort - endif - if(slmask(i).eq.0..and.glacir(i).eq.1..and. -! if(slmask(i).eq.0..and.glacir(i).eq.2..and. - & ais(i).ne.1.) then - kount1 = kount1 + 1 - ais(i) = 1. - endif - if(slmask(i).eq.sllnd.and.ais(i).eq.aicice) then - kount = kount + 1 - ais(i) = aicsea - endif - enddo -! enddo - per = float(kount) / float(len)*100. - if(kount.gt.0) then - if(me .eq. 0) then - print *,' sea ice over land mask at ',kount,' points (',per, - & 'percent)' - endif - endif - per = float(kount1) / float(len)*100. - if(kount1.gt.0) then - if(me .eq. 0) then - print *,' sea ice set over glacier points over ocean at ', - & kount1,' points (',per,'percent)' - endif - endif -! kount=0 -! do j=1,jdim -! do i=1,idim -! if(amxice(i,j).ne.0..and.ais(i,j).eq.0.) then -! ais(i,j)=0. -! kount=kount+1 -! endif -! enddo -! enddo -! per=float(kount)/float(idim*jdim)*100. -! if(kount.gt.0) then -! print *,' sea ice exceeds maxice at ',kount,' points (',per, -! & 'percent)' -! endif -! -! remove isolated open ocean surrounded by sea ice and/or land -! -! remove isolated open ocean surrounded by sea ice and/or land -! -! ij = 0 -! do j=1,jdim -! do i=1,idim -! ij = ij + 1 -! ip = i + 1 -! im = i - 1 -! jp = j + 1 -! jm = j - 1 -! if(jp.gt.jdim) jp = jdim - 1 -! if(jm.lt.1) jm = 2 -! if(ip.gt.idim) ip = 1 -! if(im.lt.1) im = idim -! if(slmask(i,j).eq.0..and.ais(i,j).eq.0.) then -! if((slmask(ip,jp).eq.1..or.ais(ip,jp).eq.1.).and. -! & (slmask(i ,jp).eq.1..or.ais(i ,jp).eq.1.).and. -! & (slmask(im,jp).eq.1..or.ais(im,jp).eq.1.).and. -! & (slmask(ip,j ).eq.1..or.ais(ip,j ).eq.1.).and. -! & (slmask(im,j ).eq.1..or.ais(im,j ).eq.1.).and. -! & (slmask(ip,jm).eq.1..or.ais(ip,jm).eq.1.).and. -! & (slmask(i ,jm).eq.1..or.ais(i ,jm).eq.1.).and. -! & (slmask(im,jm).eq.1..or.ais(im,jm).eq.1.)) then -! ais(i,j) = 1. -! write(6,*) ' isolated open sea point surrounded by', -! & ' sea ice or land modified to sea ice', -! & ' at lat=',rla(i,j),' lon=',rlo(i,j) -! endif -! endif -! enddo -! enddo - return - end - subroutine setlsi(slmask,aisfld,len,aicice,slifld) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) aicice - real (kind=kind_io8) slmask(len), slifld(len), aisfld(len) -! -! set surface condition indicator slimsk -! - do i=1,len - slifld(i) = slmask(i) -! if(aisfld(i).eq.aicice) slifld(i) = 2.0 - if(aisfld(i).eq.aicice .and. slmask(i) .eq. 0.0) - & slifld(i) = 2.0 - enddo - return - end - subroutine scale(fld,len,scl) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) fld(len),scl - do i=1,len - fld(i) = fld(i) * scl - enddo - return - end - subroutine qcmxmn(ttl,fld,slimsk,sno,iceflg, - & fldlmx,fldlmn,fldomx,fldomn,fldimx,fldimn, - & fldjmx,fldjmn,fldsmx,fldsmn,epsfld, - & rla,rlo,len,mode,percrit,lgchek,me) -! - use machine , only : kind_io8,kind_io4 - implicit none - real (kind=kind_io8) permax,per,fldimx,fldimn,fldjmx,fldomn, - & fldlmx,fldlmn,fldomx,fldjmn,percrit, - & fldsmx,fldsmn,epsfld - integer kmaxi,kmini,kmaxj,kmino,kmaxl,kminl,kmaxo,mmprt,kminj, - & ij,nprt,kmaxs,kmins,i,me,len,mode - parameter(mmprt=2) -! - character*8 ttl - logical iceflg(len) - real (kind=kind_io8) fld(len),slimsk(len),sno(len), - & rla(len), rlo(len) - integer iwk(len) - logical lgchek -! - logical first - integer num_threads - data first /.true./ - save num_threads, first -! - integer len_thread_m, i1_t, i2_t, it - integer num_parthds -! - if (first) then - num_threads = num_parthds() - first = .false. - endif -! -! check against land-sea mask and ice cover mask -! - if(me .eq. 0) then -! print *,' ' - print *,'performing qc of ',ttl,' mode=',mode, - & '(0=count only, 1=replace)' - endif -! - len_thread_m = (len+num_threads-1) / num_threads -! -!$omp parallel do private(i1_t,i2_t,it,i) -!$omp+private(nprt,ij,iwk,kmaxs,kmins) -!$omp+private(kmaxl,kminl,kmaxo,kmino,kmaxi,kmini,kmaxj,kminj) -!$omp+shared(mode,epsfld) -!$omp+shared(fldlmx,fldlmn,fldomx,fldjmn,fldsmx,fldsmn) -!$omp+shared(fld,slimsk,sno,rla,rlo) -! - do it=1,num_threads ! start of threaded loop ................... - i1_t = (it-1)*len_thread_m+1 - i2_t = min(i1_t+len_thread_m-1,len) -! - kmaxl = 0 - kminl = 0 - kmaxo = 0 - kmino = 0 - kmaxi = 0 - kmini = 0 - kmaxj = 0 - kminj = 0 - kmaxs = 0 - kmins = 0 -! -! -! lower bound check over bare land -! - if (fldlmn .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.1..and.sno(i).le.0..and. - & fld(i).lt.fldlmn-epsfld) then - kminl=kminl+1 - iwk(kminl) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kminl) - do i=1,nprt - ij = iwk(i) - print 8001,rla(ij),rlo(ij),fld(ij),fldlmn - 8001 format(' bare land min. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e13.6, ' to ',e13.6) - enddo - endif - if (mode .eq. 1) then - do i=1,kminl - fld(iwk(i)) = fldlmn - enddo - endif - endif -! -! upper bound check over bare land -! - if (fldlmx .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.1..and.sno(i).le.0..and. - & fld(i).gt.fldlmx+epsfld) then - kmaxl=kmaxl+1 - iwk(kmaxl) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmaxl) - do i=1,nprt - ij = iwk(i) - print 8002,rla(ij),rlo(ij),fld(ij),fldlmx - 8002 format(' bare land max. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e13.6, ' to ',e13.6) - enddo - endif - if (mode .eq. 1) then - do i=1,kmaxl - fld(iwk(i)) = fldlmx - enddo - endif - endif -! -! lower bound check over snow covered land -! - if (fldsmn .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.1..and.sno(i).gt.0..and. - & fld(i).lt.fldsmn-epsfld) then - kmins=kmins+1 - iwk(kmins) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmins) - do i=1,nprt - ij = iwk(i) - print 8003,rla(ij),rlo(ij),fld(ij),fldsmn - 8003 format(' sno covrd land min. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmins - fld(iwk(i)) = fldsmn - enddo - endif - endif -! -! upper bound check over snow covered land -! - if (fldsmx .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.1..and.sno(i).gt.0..and. - & fld(i).gt.fldsmx+epsfld) then - kmaxs=kmaxs+1 - iwk(kmaxs) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmaxs) - do i=1,nprt - ij = iwk(i) - print 8004,rla(ij),rlo(ij),fld(ij),fldsmx - 8004 format(' snow land max. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmaxs - fld(iwk(i)) = fldsmx - enddo - endif - endif -! -! lower bound check over open ocean -! - if (fldomn .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.0..and. - & fld(i).lt.fldomn-epsfld) then - kmino=kmino+1 - iwk(kmino) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmino) - do i=1,nprt - ij = iwk(i) - print 8005,rla(ij),rlo(ij),fld(ij),fldomn - 8005 format(' open ocean min. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4,' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmino - fld(iwk(i)) = fldomn - enddo - endif - endif -! -! upper bound check over open ocean -! - if (fldomx .ne. 999.0) then - do i=i1_t,i2_t - if(fldomx.ne.999..and.slimsk(i).eq.0..and. - & fld(i).gt.fldomx+epsfld) then - kmaxo=kmaxo+1 - iwk(kmaxo) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmaxo) - do i=1,nprt - ij = iwk(i) - print 8006,rla(ij),rlo(ij),fld(ij),fldomx - 8006 format(' open ocean max. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmaxo - fld(iwk(i)) = fldomx - enddo - endif - endif -! -! lower bound check over sea ice without snow -! - if (fldimn .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.2..and.sno(i).le.0..and. - & fld(i).lt.fldimn-epsfld) then - kmini=kmini+1 - iwk(kmini) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmini) - do i=1,nprt - ij = iwk(i) - print 8007,rla(ij),rlo(ij),fld(ij),fldimn - 8007 format(' seaice no snow min. check lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmini - fld(iwk(i)) = fldimn - enddo - endif - endif -! -! upper bound check over sea ice without snow -! - if (fldimx .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.2..and.sno(i).le.0..and. - & fld(i).gt.fldimx+epsfld .and. iceflg(i)) then -! & fld(i).gt.fldimx+epsfld) then - kmaxi=kmaxi+1 - iwk(kmaxi) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmaxi) - do i=1,nprt - ij = iwk(i) - print 8008,rla(ij),rlo(ij),fld(ij),fldimx - 8008 format(' seaice no snow max. check lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmaxi - fld(iwk(i)) = fldimx - enddo - endif - endif -! -! lower bound check over sea ice with snow -! - if (fldjmn .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.2..and.sno(i).gt.0..and. - & fld(i).lt.fldjmn-epsfld) then - kminj=kminj+1 - iwk(kminj) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kminj) - do i=1,nprt - ij = iwk(i) - print 8009,rla(ij),rlo(ij),fld(ij),fldjmn - 8009 format(' sea ice snow min. check lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kminj - fld(iwk(i)) = fldjmn - enddo - endif - endif -! -! upper bound check over sea ice with snow -! - if (fldjmx .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.2..and.sno(i).gt.0..and. - & fld(i).gt.fldjmx+epsfld .and. iceflg(i)) then -! & fld(i).gt.fldjmx+epsfld) then - kmaxj=kmaxj+1 - iwk(kmaxj) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmaxj) - do i=1,nprt - ij = iwk(i) - print 8010,rla(ij),rlo(ij),fld(ij),fldjmx - 8010 format(' seaice snow max check lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmaxj - fld(iwk(i)) = fldjmx - enddo - endif - endif - enddo ! end of threaded loop ................... -!$omp end parallel do -! -! print results -! - if(me .eq. 0) then -! write(6,*) 'summary of qc' - permax=0. - if(kminl.gt.0) then - per=float(kminl)/float(len)*100. - print 9001,fldlmn,kminl,per - 9001 format(' bare land min check. modified to ',f8.1, - & ' at ',i5,' points ',f8.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmaxl.gt.0) then - per=float(kmaxl)/float(len)*100. - print 9002,fldlmx,kmaxl,per - 9002 format(' bare land max check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmino.gt.0) then - per=float(kmino)/float(len)*100. - print 9003,fldomn,kmino,per - 9003 format(' open ocean min check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmaxo.gt.0) then - per=float(kmaxo)/float(len)*100. - print 9004,fldomx,kmaxo,per - 9004 format(' open sea max check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmins.gt.0) then - per=float(kmins)/float(len)*100. - print 9009,fldsmn,kmins,per - 9009 format(' snow covered land min check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmaxs.gt.0) then - per=float(kmaxs)/float(len)*100. - print 9010,fldsmx,kmaxs,per - 9010 format(' snow covered land max check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmini.gt.0) then - per=float(kmini)/float(len)*100. - print 9005,fldimn,kmini,per - 9005 format(' bare ice min check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmaxi.gt.0) then - per=float(kmaxi)/float(len)*100. - print 9006,fldimx,kmaxi,per - 9006 format(' bare ice max check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kminj.gt.0) then - per=float(kminj)/float(len)*100. - print 9007,fldjmn,kminj,per - 9007 format(' snow covered ice min check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmaxj.gt.0) then - per=float(kmaxj)/float(len)*100. - print 9008,fldjmx,kmaxj,per - 9008 format(' snow covered ice max check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif -! commented on 06/30/99 -- moorthi -! if(lgchek) then -! if(permax.gt.percrit) then -! write(6,*) ' too many bad points. aborting ....' -! call abort -! endif -! endif -! - endif -! - return - end - subroutine setzro(fld,eps,len) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) fld(len),eps - do i=1,len - if(abs(fld(i)).lt.eps) fld(i) = 0. - enddo - return - end - subroutine getscv(snofld,scvfld,len) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) snofld(len),scvfld(len) -! - do i=1,len - scvfld(i) = 0. - if(snofld(i).gt.0.) scvfld(i) = 1. - enddo - return - end - subroutine getstc(tsffld,tg3fld,slifld,len,lsoil,stcfld,tsfimx) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer k,i,len,lsoil - real (kind=kind_io8) factor,tsfimx - real (kind=kind_io8) tsffld(len), tg3fld(len), slifld(len) - real (kind=kind_io8) stcfld(len,lsoil) -! -! layer soil temperature -! - do k = 1, lsoil - do i = 1, len - if(slifld(i).eq.1.0) then - factor = ((k-1) * 2 + 1) / (2. * lsoil) - stcfld(i,k) = factor*tg3fld(i)+(1.-factor)*tsffld(i) - elseif(slifld(i).eq.2.0) then - factor = ((k-1) * 2 + 1) / (2. * lsoil) - stcfld(i,k) = factor*tsfimx+(1.-factor)*tsffld(i) - else - stcfld(i,k) = tg3fld(i) - endif - enddo - enddo - if(lsoil.gt.2) then - do k = 3, lsoil - do i = 1, len - stcfld(i,k) = stcfld(i,2) - enddo - enddo - endif - return - end - subroutine getsmc(wetfld,len,lsoil,smcfld,me) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer k,i,len,lsoil,me - real (kind=kind_io8) wetfld(len), smcfld(len,lsoil) -! - if (me .eq. 0) write(6,*) 'getsmc' -! -! layer soil wetness -! - do k = 1, lsoil - do i = 1, len - smcfld(i,k) = (wetfld(i)*1000./150.)*.37 + .1 - enddo - enddo - return - end - subroutine usesgt(sig1t,slianl,tg3anl,len,lsoil,tsfanl,stcanl, - & tsfimx) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len,lsoil - real (kind=kind_io8) tsfimx - real (kind=kind_io8) sig1t(len), slianl(len), tg3anl(len) - real (kind=kind_io8) tsfanl(len), stcanl(len,lsoil) -! -! soil temperature -! - if(sig1t(1).gt.0.) then - do i=1,len - if(slianl(i).ne.0.) then - tsfanl(i) = sig1t(i) - endif - enddo - endif - call getstc(tsfanl,tg3anl,slianl,len,lsoil,stcanl,tsfimx) -! - return - end - subroutine snosfc(snoanl,tsfanl,tsfsmx,len,me) - use machine , only : kind_io8,kind_io4 - implicit none - integer kount,i,len,me - real (kind=kind_io8) per,tsfsmx - real (kind=kind_io8) snoanl(len), tsfanl(len) -! - if (me .eq. 0) write(6,*) 'set snow temp to tsfsmx if greater' - kount=0 - do i=1,len - if(snoanl(i).gt.0.) then - if(tsfanl(i).gt.tsfsmx) tsfanl(i)=tsfsmx - kount = kount + 1 - endif - enddo - if(kount.gt.0) then - if(me .eq. 0) then - per=float(kount)/float(len)*100. - write(6,*) 'snow sfc. tsf set to ',tsfsmx,' at ', - & kount, ' points ',per,'percent' - endif - endif - return - end - subroutine albocn(albclm,slmask,albomx,len) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) albomx - real (kind=kind_io8) albclm(len,4), slmask(len) - do i=1,len - if(slmask(i).eq.0) then - albclm(i,1) = albomx - albclm(i,2) = albomx - albclm(i,3) = albomx - albclm(i,4) = albomx - endif - enddo - return - end - subroutine qcmxice(glacir,amxice,len,me) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,kount,len,me - real (kind=kind_io8) glacir(len),amxice(len),per - if (me .eq. 0) write(6,*) 'qc of maximum ice extent' - kount=0 - do i=1,len - if(glacir(i).eq.1..and.amxice(i).eq.0.) then - amxice(i) = 0. - kount = kount + 1 - endif - enddo - if(kount.gt.0) then - per = float(kount) / float(len)*100. - if(me .eq. 0) write(6,*) ' max ice limit less than glacier' - &, ' coverage at ', kount, ' points ',per,'percent' - endif - return - end - subroutine qcsli(slianl,slifcs,len,me) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,kount,len,me - real (kind=kind_io8) slianl(len), slifcs(len),per - if (me .eq. 0) then - write(6,*) ' ' - write(6,*) 'qcsli' - endif - kount=0 - do i=1,len - if(slianl(i).eq.1..and.slifcs(i).eq.0.) then - kount = kount + 1 - slifcs(i) = 1. - endif - if(slianl(i).eq.0..and.slifcs(i).eq.1.) then - kount = kount + 1 - slifcs(i) = 0. - endif - if(slianl(i).eq.2..and.slifcs(i).eq.1.) then - kount = kount + 1 - slifcs(i) = 0. - endif - if(slianl(i).eq.1..and.slifcs(i).eq.2.) then - kount = kount + 1 - slifcs(i) = 1. - endif - enddo - if(kount.gt.0) then - per=float(kount)/float(len)*100. - if(me .eq. 0) then - write(6,*) ' inconsistency of slmask between forecast and', - & ' analysis corrected at ',kount, ' points ',per, - & 'percent' - endif - endif - return - end -! subroutine nntprt(data,imax,fact) -! real (kind=kind_io8) data(imax) -! ilast=0 -! i1=1 -! i2=80 -!1112 continue -! if(i2.ge.imax) then -! ilast=1 -! i2=imax -! endif -! write(6,*) ' ' -! do j=1,jmax -! write(6,1111) (nint(data(imax*(j-1)+i)*fact),i=i1,i2) -! enddo -! if(ilast.eq.1) return -! i1=i1+80 -! i2=i1+79 -! if(i2.ge.imax) then -! ilast=1 -! i2=imax -! endif -! go to 1112 -!1111 format(80i1) -! return -! end - subroutine qcbyfc(tsffcs,snofcs,qctsfs,qcsnos,qctsfi, - & len,lsoil,snoanl,aisanl,slianl,tsfanl,albanl, - & zoranl,smcanl, - & smcclm,tsfsmx,albomx,zoromx, me) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer kount,me,k,i,lsoil,len - real (kind=kind_io8) zoromx,per,albomx,qctsfi,qcsnos,qctsfs,tsfsmx - real (kind=kind_io8) tsffcs(len), snofcs(len) - real (kind=kind_io8) snoanl(len), aisanl(len), - & slianl(len), zoranl(len), - & tsfanl(len), albanl(len,4), - & smcanl(len,lsoil) - real (kind=kind_io8) smcclm(len,lsoil) -! - if (me .eq. 0) write(6,*) 'qc of snow and sea-ice analysis' -! -! qc of snow analysis -! -! questionable snow cover -! - kount = 0 - do i=1,len - if(slianl(i).gt.0..and. - & tsffcs(i).gt.qctsfs.and.snoanl(i).gt.0.) then - kount = kount + 1 - snoanl(i) = 0. - tsfanl(i) = tsffcs(i) - endif - enddo - if(kount.gt.0) then - per=float(kount)/float(len)*100. - if (me .eq. 0) then - write(6,*) ' guess surface temp .gt. ',qctsfs, - & ' but snow analysis indicates snow cover' - write(6,*) ' snow analysis set to zero', - & ' at ',kount, ' points ',per,'percent' - endif - endif -! -! questionable no snow cover -! - kount = 0 - do i=1,len - if(slianl(i).gt.0..and. - & snofcs(i).gt.qcsnos.and.snoanl(i).lt.0.) then - kount = kount + 1 - snoanl(i) = snofcs(i) - tsfanl(i) = tsffcs(i) - endif - enddo - if(kount.gt.0) then - per=float(kount)/float(len)*100. - if (me .eq. 0) then - write(6,*) ' guess snow depth .gt. ',qcsnos, - & ' but snow analysis indicates no snow cover' - write(6,*) ' snow analysis set to guess value', - & ' at ',kount, ' points ',per,'percent' - endif - endif -! -! questionable sea ice cover ! this qc is disable to correct error in -! surface temparature over observed sea ice points -! -! kount = 0 -! do i=1,len -! if(slianl(i).eq.2..and. -! & tsffcs(i).gt.qctsfi.and.aisanl(i).eq.1.) then -! kount = kount + 1 -! aisanl(i) = 0. -! slianl(i) = 0. -! tsfanl(i) = tsffcs(i) -! snoanl(i) = 0. -! zoranl(i) = zoromx -! albanl(i,1) = albomx -! albanl(i,2) = albomx -! albanl(i,3) = albomx -! albanl(i,4) = albomx -! do k=1,lsoil -! smcanl(i,k) = smcclm(i,k) -! enddo -! endif -! enddo -! if(kount.gt.0) then -! per=float(kount)/float(len)*100. -! if (me .eq. 0) then -! write(6,*) ' guess surface temp .gt. ',qctsfi, -! & ' but sea-ice analysis indicates sea-ice' -! write(6,*) ' sea-ice analysis set to zero', -! & ' at ',kount, ' points ',per,'percent' -! endif -! endif -! - return - end - subroutine setrmsk(kpds5,slmask,igaul,jgaul,wlon,rnlat, - & data,imax,jmax,rlnout,rltout,lmask,rslmsk - &, gaus,blno, blto, kgds1, kpds4, lbms) - use machine , only : kind_io8,kind_io4 - use sfccyc_module - implicit none - real (kind=kind_io8) blno,blto,wlon,rnlat,crit,data_max - integer i,j,ijmax,jgaul,igaul,kpds5,jmax,imax, kgds1, kspla - integer, intent(in) :: kpds4 - logical*1, intent(in) :: lbms(imax,jmax) - real*4 :: dummy(imax,jmax) - - real (kind=kind_io8) slmask(igaul,jgaul) - real (kind=kind_io8) data(imax,jmax),rslmsk(imax,jmax) - &, rlnout(imax), rltout(jmax) - real (kind=kind_io8) a(jmax), w(jmax), radi, dlat, dlon - logical lmask, gaus -! -! set the longitude and latitudes for the grib file -! - if (kgds1 .eq. 4) then ! grib file on gaussian grid - kspla=4 - call splat(kspla, jmax, a, w) -! - radi = 180.0 / (4.*atan(1.)) - do j=1,jmax - rltout(j) = acos(a(j)) * radi - enddo -! - if (rnlat .gt. 0.0) then - do j=1,jmax - rltout(j) = 90. - rltout(j) - enddo - else - do j=1,jmax - rltout(j) = -90. + rltout(j) - enddo - endif - elseif (kgds1 .eq. 0) then ! grib file on lat/lon grid - dlat = -(rnlat+rnlat) / float(jmax-1) - do j=1,jmax - rltout(j) = rnlat + (j-1) * dlat - enddo - else ! grib file on some other grid - call abort - endif - dlon = 360.0 / imax - do i=1,imax - rlnout(i) = wlon + (i-1)*dlon - enddo -! -! - ijmax = imax*jmax - rslmsk = 0. - -! TG3 MODS BEGIN - if(kpds5.eq.kpdtsf.and.imax.eq.138.and.jmax.eq.116 - & .and.kpds4.eq.128) then - -! print*,'turn off setrmsk for tg3' - lmask=.false. - elseif(kpds5.eq.kpdtsf) then -! TG3 MODS END - -! -! surface temperature -! -! lmask=.false. - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. -! -! bucket soil wetness -! - elseif(kpds5.eq.kpdwet) then - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. -! write(6,*) 'wet rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! snow depth -! - elseif(kpds5.eq.kpdsnd) then - if(kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask=.true. - else - lmask=.false. - end if -! -! snow liq equivalent depth -! - elseif(kpds5.eq.kpdsno) then - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. -! write(6,*) 'sno rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! soil moisture -! - elseif(kpds5.eq.kpdsmc) then - if(kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask=.true. - else - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. - endif -! -! surface roughness -! - elseif(kpds5.eq.kpdzor) then - do j=1,jmax - do i=1,imax - rslmsk(i,j)=data(i,j) - enddo - enddo - crit=9.9 - call rof01(rslmsk,ijmax,'lt',crit) - lmask=.true. -! write(6,*) 'zor rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! albedo -! -! elseif(kpds5.eq.kpdalb) then -! do j=1,jmax -! do i=1,imax -! rslmsk(i,j)=data(i,j) -! enddo -! enddo -! crit=99. -! call rof01(rslmsk,ijmax,'lt',crit) -! lmask=.true. -! write(6,*) 'alb rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! albedo -! -!cbosu new snowfree albedo database has bitmap, use it. - elseif(kpds5.eq.kpdalb(1)) then - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask = .true. - else ! no bitmap. old database has no water flag. - lmask=.false. - end if - elseif(kpds5.eq.kpdalb(2)) then -!cbosu - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask = .true. - else ! no bitmap. old database has no water flag. - lmask=.false. - end if - elseif(kpds5.eq.kpdalb(3)) then -!cbosu - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask = .true. - else ! no bitmap. old database has no water flag. - lmask=.false. - end if - elseif(kpds5.eq.kpdalb(4)) then -!cbosu - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask = .true. - else ! no bitmap. old database has no water flag. - lmask=.false. - end if -! -! vegetation fraction for albedo -! - elseif(kpds5.eq.kpdalf(1)) then -! rslmsk=data -! crit=0. -! call rof01(rslmsk,ijmax,'gt',crit) -! lmask=.true. - lmask=.false. - elseif(kpds5.eq.kpdalf(2)) then -! rslmsk=data -! crit=0. -! call rof01(rslmsk,ijmax,'gt',crit) -! lmask=.true. - lmask=.false. -! -! sea ice -! - elseif(kpds5.eq.kpdais) then - lmask=.false. -! call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat -! &, dlon, dlat, gaus, blno, blto) -! crit=0.5 -! call rof01(rslmsk,ijmax,'ge',crit) -! - data_max = 0.0 - do j=1,jmax - do i=1,imax - rslmsk(i,j) = data(i,j) - data_max= max(data_max,data(i,j)) - enddo - enddo - crit=1.0 - if (data_max .gt. crit) then - call rof01(rslmsk,ijmax,'gt',crit) - lmask=.true. - else - lmask=.false. - endif -! write(6,*) 'acn rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! deep soil temperature -! - elseif(kpds5.eq.kpdtg3) then - lmask=.false. -! call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat -! &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) -! crit=0.5 -! call rof01(rslmsk,ijmax,'ge',crit) -! lmask=.true. -! -! plant resistance -! -! elseif(kpds5.eq.kpdplr) then -! call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat -! &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) -! crit=0.5 -! call rof01(rslmsk,ijmax,'ge',crit) -! lmask=.true. -! -! write(6,*) 'plr rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! glacier points -! - elseif(kpds5.eq.kpdgla) then - lmask=.false. -! -! max ice extent -! - elseif(kpds5.eq.kpdmxi) then - lmask=.false. -! -! snow cover -! - elseif(kpds5.eq.kpdscv) then - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. -! write(6,*) 'scv rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! sea ice concentration -! - elseif(kpds5.eq.kpdacn) then - lmask=.false. - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. -! write(6,*) 'acn rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! vegetation cover -! - elseif(kpds5.eq.kpdveg) then -!cggg - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,jmax-j+1) = 1. ! need to flip grid in n/s direction - end if - enddo - enddo - lmask = .true. - else ! no bitmap, set mask the old way. - - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. - - end if -! -! soil type -! - elseif(kpds5.eq.kpdsot) then - - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo -! soil type is zero over water, use this to get a bitmap. - else - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - endif - lmask=.true. -! -! vegetation type -! - elseif(kpds5.eq.kpdvet) then - - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo -! veg type is zero over water, use this to get a bitmap. - else - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - endif - lmask=.true. -! -! these are for four new data type added by clu -- not sure its correct! -! - elseif(kpds5.eq.kpdvmn) then -! -!cggg greenness is zero over water, use this to get a bitmap. -! - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo -! - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - lmask=.true. -!cggg lmask=.false. -! - elseif(kpds5.eq.kpdvmx) then -! -!cggg greenness is zero over water, use this to get a bitmap. -! - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo -! - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - lmask=.true. -!cggg lmask=.false. -! - elseif(kpds5.eq.kpdslp) then -! -!cggg slope type is zero over water, use this to get a bitmap. -! - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo -! - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - lmask=.true. -!cggg lmask=.false. -! -!cbosu new maximum snow albedo database has bitmap - elseif(kpds5.eq.kpdabs) then - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask = .true. - else ! no bitmap. old database has zero over water - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - lmask=.true. - end if - endif -! - return - end - subroutine ga2la(gauin,imxin,jmxin,regout,imxout,jmxout, - & wlon,rnlat,rlnout,rltout,gaus,blno, blto) - use machine , only : kind_io8,kind_io4 - implicit none - integer i1,i2,j2,ishft,i,jj,j1,jtem,jmxout,imxin,jmxin,imxout, - & j,iret - real (kind=kind_io8) alamd,dxin,aphi,x,sum1,sum2,y,dlati,wlon, - & rnlat,dxout,dphi,dlat,facns,tem,blno, - & blto -! -! interpolation from lat/lon grid to other lat/lon grid -! - real (kind=kind_io8) gauin (imxin,jmxin), regout(imxout,jmxout) - &, rlnout(imxout), rltout(jmxout) - logical gaus -! - real, allocatable :: gaul(:) - real (kind=kind_io8) ddx(imxout),ddy(jmxout) - integer iindx1(imxout), iindx2(imxout), - & jindx1(jmxout), jindx2(jmxout) - integer jmxsav,n,kspla - data jmxsav/0/ - save jmxsav, gaul, dlati - real (kind=kind_io8) radi - real (kind=kind_io8) a(jmxin), w(jmxin) -! -! - logical first - integer num_threads - data first /.true./ - save num_threads, first -! - integer len_thread_m, j1_t, j2_t, it - integer num_parthds -! - if (first) then - num_threads = num_parthds() - first = .false. - endif -! - if (jmxin .ne. jmxsav) then - if (jmxsav .gt. 0) deallocate (gaul, stat=iret) - allocate (gaul(jmxin)) - jmxsav = jmxin - if (gaus) then -cjfe call gaulat(gaul,jmxin) -cjfe -! - kspla=4 - call splat(kspla, jmxin, a, w) -! - radi = 180.0 / (4.*atan(1.)) - do n=1,jmxin - gaul(n) = acos(a(n)) * radi - enddo -cjfe - do j=1,jmxin - gaul(j) = 90. - gaul(j) - enddo - else - dlat = -2*blto / float(jmxin-1) - dlati = 1 / dlat - do j=1,jmxin - gaul(j) = blto + (j-1) * dlat - enddo - endif - endif -! -! - dxin = 360. / float(imxin ) -! - do i=1,imxout - alamd = rlnout(i) - i1 = floor((alamd-blno)/dxin) + 1 - ddx(i) = (alamd-blno)/dxin-(i1-1) - iindx1(i) = modulo(i1-1,imxin) + 1 - iindx2(i) = modulo(i1 ,imxin) + 1 - enddo -! -! - len_thread_m = (jmxout+num_threads-1) / num_threads -! - if (gaus) then -! -!$omp parallel do private(j1_t,j2_t,it,j1,j2,jj) -!$omp+private(aphi) -!$omp+shared(num_threads,len_thread_m) -!$omp+shared(jmxin,jmxout,gaul,rltout,jindx1,ddy) -! - do it=1,num_threads ! start of threaded loop ................... - j1_t = (it-1)*len_thread_m+1 - j2_t = min(j1_t+len_thread_m-1,jmxout) -! - j2=1 - do 40 j=j1_t,j2_t - aphi=rltout(j) - do 50 jj=1,jmxin - if(aphi.lt.gaul(jj)) go to 50 - j2=jj - go to 42 - 50 continue - 42 continue - if(j2.gt.2) go to 43 - j1=1 - j2=2 - go to 44 - 43 continue - if(j2.le.jmxin) go to 45 - j1=jmxin-1 - j2=jmxin - go to 44 - 45 continue - j1=j2-1 - 44 continue - jindx1(j)=j1 - jindx2(j)=j2 - ddy(j)=(aphi-gaul(j1))/(gaul(j2)-gaul(j1)) - 40 continue - enddo ! end of threaded loop ................... -!$omp end parallel do -! - else -!$omp parallel do private(j1_t,j2_t,it,j1,j2,jtem) -!$omp+private(aphi) -!$omp+shared(num_threads,len_thread_m) -!$omp+shared(jmxin,jmxout,gaul,rltout,jindx1,ddy,dlati,blto) -! - do it=1,num_threads ! start of threaded loop ................... - j1_t = (it-1)*len_thread_m+1 - j2_t = min(j1_t+len_thread_m-1,jmxout) -! - j2=1 - do 400 j=j1_t,j2_t - aphi=rltout(j) - jtem = (aphi - blto) * dlati + 1 - if (jtem .ge. 1 .and. jtem .lt. jmxin) then - j1 = jtem - j2 = j1 + 1 - ddy(j)=(aphi-gaul(j1))/(gaul(j2)-gaul(j1)) - elseif (jtem .eq. jmxin) then - j1 = jmxin - j2 = jmxin - ddy(j)=1.0 - else - j1 = 1 - j2 = 1 - ddy(j)=1.0 - endif -! - jindx1(j) = j1 - jindx2(j) = j2 - 400 continue - enddo ! end of threaded loop ................... -!$omp end parallel do - endif -! -! write(6,*) 'ga2la' -! write(6,*) 'iindx1' -! write(6,*) (iindx1(n),n=1,imxout) -! write(6,*) 'iindx2' -! write(6,*) (iindx2(n),n=1,imxout) -! write(6,*) 'jindx1' -! write(6,*) (jindx1(n),n=1,jmxout) -! write(6,*) 'jindx2' -! write(6,*) (jindx2(n),n=1,jmxout) -! write(6,*) 'ddy' -! write(6,*) (ddy(n),n=1,jmxout) -! write(6,*) 'ddx' -! write(6,*) (ddx(n),n=1,jmxout) -! -! -!$omp parallel do private(j1_t,j2_t,it,i,i1,i2) -!$omp+private(j,j1,j2,x,y) -!$omp+shared(num_threads,len_thread_m) -!$omp+shared(imxout,iindx1,jindx1,ddx,ddy,gauin,regout) -! - do it=1,num_threads ! start of threaded loop ................... - j1_t = (it-1)*len_thread_m+1 - j2_t = min(j1_t+len_thread_m-1,jmxout) -! - do j=j1_t,j2_t - y = ddy(j) - j1 = jindx1(j) - j2 = jindx2(j) - do i=1,imxout - x = ddx(i) - i1 = iindx1(i) - i2 = iindx2(i) - regout(i,j) = (1.-x)*((1.-y)*gauin(i1,j1) + y*gauin(i1,j2)) - & + x *((1.-y)*gauin(i2,j1) + y*gauin(i2,j2)) - enddo - enddo - enddo ! end of threaded loop ................... -!$omp end parallel do -! - sum1 = 0. - sum2 = 0. - do i=1,imxin - sum1 = sum1 + gauin(i,1) - sum2 = sum2 + gauin(i,jmxin) - enddo - sum1 = sum1 / float(imxin) - sum2 = sum2 / float(imxin) -! - if (gaus) then - if (rnlat .gt. 0.0) then - do i=1,imxout - regout(i, 1) = sum1 - regout(i,jmxout) = sum2 - enddo - else - do i=1,imxout - regout(i, 1) = sum2 - regout(i,jmxout) = sum1 - enddo - endif - else - if (blto .lt. 0.0) then - if (rnlat .gt. 0.0) then - do i=1,imxout - regout(i, 1) = sum2 - regout(i,jmxout) = sum1 - enddo - else - do i=1,imxout - regout(i, 1) = sum1 - regout(i,jmxout) = sum2 - enddo - endif - else - if (rnlat .lt. 0.0) then - do i=1,imxout - regout(i, 1) = sum2 - regout(i,jmxout) = sum1 - enddo - else - do i=1,imxout - regout(i, 1) = sum1 - regout(i,jmxout) = sum2 - enddo - endif - endif - endif -! - return - end - subroutine landtyp(vegtype,soiltype,slptype,slmask,len) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) vegtype(len),soiltype(len),slmask(len) - +, slptype(len) -! -! make sure that the soil type and veg type are non-zero over land -! - do i = 1, len - if (slmask(i) .eq. 1) then - if (vegtype(i) .eq. 0.) vegtype(i) = 7 - if (soiltype(i) .eq. 0.) soiltype(i) = 2 - if (slptype(i) .eq. 0.) slptype(i) = 1 - endif - enddo - return - end subroutine landtyp - subroutine gaulat(gaul,k) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer n,k - real (kind=kind_io8) radi - real (kind=kind_io8) a(k), w(k), gaul(k) -! - call splat(4, k, a, w) -! - radi = 180.0 / (4.*atan(1.)) - do n=1,k - gaul(n) = acos(a(n)) * radi - enddo -! -! print *,'gaussian lat (deg) for jmax=',k -! print *,(gaul(n),n=1,k) -! - return - 70 write(6,6000) - 6000 format(//5x,'error in gauaw'//) - stop - end -!----------------------------------------------------------------------- - subroutine anomint(tsfan0,tsfclm,tsfcl0,tsfanl,len) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) tsfanl(len), tsfan0(len), - & tsfclm(len), tsfcl0(len) -! -! time interpolation of anomalies -! add initial anomaly to date interpolated climatology -! - write(6,*) 'anomint' - do i=1,len - tsfanl(i) = tsfan0(i) - tsfcl0(i) + tsfclm(i) - enddo - return - end - subroutine clima(lugb,iy,im,id,ih,fh,len,lsoil, - & slmask,fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc,fnvegc, - & fnvetc,fnsotc, - & fnvmnc,fnvmxc,fnslpc,fnabsc, - & tsfclm,tsfcl2,wetclm,snoclm,zorclm,albclm,aisclm, - & tg3clm,cvclm ,cvbclm,cvtclm, - & cnpclm,smcclm,stcclm,sliclm,scvclm,acnclm,vegclm, - & vetclm,sotclm,alfclm, - & vmnclm,vmxclm,slpclm,absclm, - & kpdtsf,kpdwet,kpdsno,kpdzor,kpdalb,kpdais, - & kpdtg3,kpdscv,kpdacn,kpdsmc,kpdstc,kpdveg, - & kpdvet,kpdsot,kpdalf,tsfcl0, - & kpdvmn,kpdvmx,kpdslp,kpdabs, - & deltsfc, lanom - &, imsk, jmsk, slmskh, outlat, outlon - &, gaus, blno, blto, me,lprnt,iprnt, fnalbc2, ialb) -! - use machine , only : kind_io8,kind_io4 - implicit none - real (kind=kind_io8) rjday,wei1x,wei2x,rjdayh,wei2m,wei1m,wei1s, - & wei2s,fh,stcmon1s,blto,blno,deltsfc,rjdayh2 - real (kind=kind_io8) wei1y,wei2y - integer jdoy,jday,jh,jdow,mmm,mmp,mm,iret,monend,i,k,jm,jd,iy4, - & jy,mon1,is2,isx,kpd9,is1,l,nn,mon2,mon,is,kpdsno, - & kpdzor,kpdtsf,kpdwet,kpdscv,kpdacn,kpdais,kpdtg3,im,id, - & lugb,iy,len,lsoil,ih,kpdsmc,iprnt,me,m1,m2,k1,k2, - & kpdvet,kpdsot,kpdstc,kpdveg,jmsk,imsk,j,ialb - &, kpdvmn,kpdvmx,kpdslp,kpdabs,landice_cat - integer kpdalb(4), kpdalf(2) -! - character*500 fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc,fnvegc, - & fnvetc,fnsotc,fnalbc2 - &, fnvmnc,fnvmxc,fnslpc,fnabsc - real (kind=kind_io8) tsfclm(len),tsfcl2(len), - & wetclm(len),snoclm(len), - & zorclm(len),albclm(len,4),aisclm(len), - & tg3clm(len),acnclm(len), - & cvclm (len),cvbclm(len),cvtclm(len), - & cnpclm(len), - & smcclm(len,lsoil),stcclm(len,lsoil), - & sliclm(len),scvclm(len),vegclm(len), - & vetclm(len),sotclm(len),alfclm(len,2) - &, vmnclm(len),vmxclm(len),slpclm(len),absclm(len) - real (kind=kind_io8) slmskh(imsk,jmsk) - real (kind=kind_io8) outlat(len), outlon(len) -! - real (kind=kind_io8) slmask(len), tsfcl0(len) - real (kind=kind_io8), allocatable :: slmask_noice(:) -! - logical lanom, gaus, first -! -! set z0 based on sib vegetation type - real (kind=kind_io8) z0_sib(13) - data z0_sib /2.653, 0.826, 0.563, 1.089, 0.854, 0.856, - & 0.035, 0.238, 0.065, 0.076, 0.011, 0.125, - & 0.011 / -! set z0 based on igbp vegetation type - real (kind=kind_io8) z0_igbp_min(20), z0_igbp_max(20) - real (kind=kind_io8) z0_season(12) - data z0_igbp_min /1.089, 2.653, 0.854, 0.826, 0.800, 0.050, - & 0.030, 0.856, 0.856, 0.150, 0.040, 0.130, - & 1.000, 0.250, 0.011, 0.011, 0.001, 0.076, - & 0.050, 0.030/ - data z0_igbp_max /1.089, 2.653, 0.854, 0.826, 0.800, 0.050, - & 0.030, 0.856, 0.856, 0.150, 0.040, 0.130, - & 1.000, 0.250, 0.011, 0.011, 0.001, 0.076, - & 0.050, 0.030/ -! -! dayhf : julian day of the middle of each month -! - real (kind=kind_io8) dayhf(13) - data dayhf/ 15.5, 45.0, 74.5,105.0,135.5,166.0, - & 196.5,227.5,258.0,288.5,319.0,349.5,380.5/ -! - real (kind=kind_io8) fha(5) - real(4) fha4(5) - integer w3kindreal,w3kindint - integer ida(8),jda(8),ivtyp, kpd7 -! - real (kind=kind_io8), allocatable :: tsf(:,:),sno(:,:), - & zor(:,:),wet(:,:), - & ais(:,:), acn(:,:), scv(:,:), smc(:,:,:), - & tg3(:), alb(:,:,:), alf(:,:), - & vet(:), sot(:), tsf2(:), - & veg(:,:), stc(:,:,:) - &, vmn(:), vmx(:), slp(:), absm(:) -! - integer mon1s, mon2s, sea1s, sea2s, sea1, sea2, hyr1, hyr2 - data first/.true./ - data mon1s/0/, mon2s/0/, sea1s/0/, sea2s/0/ -! - save first, tsf, sno, zor, wet, ais, acn, scv, smc, tg3, - & alb, alf, vet, sot, tsf2, veg, stc, - & vmn, vmx, slp, absm, - & mon1s, mon2s, sea1s, sea2s, dayhf, k1, k2, m1, m2, - & landice_cat -! - logical lprnt -! - do i=1,len - tsfclm(i) = 0.0 - tsfcl2(i) = 0.0 - snoclm(i) = 0.0 - wetclm(i) = 0.0 - zorclm(i) = 0.0 - aisclm(i) = 0.0 - tg3clm(i) = 0.0 - acnclm(i) = 0.0 - cvclm(i) = 0.0 - cvbclm(i) = 0.0 - cvtclm(i) = 0.0 - cnpclm(i) = 0.0 - sliclm(i) = 0.0 - scvclm(i) = 0.0 - vmnclm(i) = 0.0 - vmxclm(i) = 0.0 - slpclm(i) = 0.0 - absclm(i) = 0.0 - enddo - do k=1,lsoil - do i=1,len - smcclm(i,k) = 0.0 - stcclm(i,k) = 0.0 - enddo - enddo - do k=1,4 - do i=1,len - albclm(i,k) = 0.0 - enddo - enddo - do k=1,2 - do i=1,len - alfclm(i,k) = 0.0 - enddo - enddo -! - iret = 0 - monend = 9999 -! - if (first) then -! -! allocate variables to be saved -! - allocate (tsf(len,2), sno(len,2), zor(len,2), - & wet(len,2), ais(len,2), acn(len,2), - & scv(len,2), smc(len,lsoil,2), - & tg3(len), alb(len,4,2), alf(len,2), - & vet(len), sot(len), tsf2(len), -!clu [+1l] add vmn, vmx, slp, abs - & vmn(len), vmx(len), slp(len), absm(len), - & veg(len,2), stc(len,lsoil,2)) -! -! get tsf climatology for the begining of the forecast -! - if (fh .gt. 0.0) then -!cbosu - if (me == 0) print*,'bosu fh gt 0' - - iy4=iy - if(iy.lt.101) iy4=1900+iy4 - fha=0 - ida=0 - jda=0 -! fha(2)=nint(fh) - ida(1)=iy - ida(2)=im - ida(3)=id - ida(5)=ih - call w3kind(w3kindreal,w3kindint) - if(w3kindreal == 4) then - fha4=fha - call w3movdat(fha4,ida,jda) - else - call w3movdat(fha,ida,jda) - endif - jy=jda(1) - jm=jda(2) - jd=jda(3) - jh=jda(5) - if (me .eq. 0) write(6,*) ' forecast jy,jm,jd,jh', - & jy,jm,jd,jh - jdow = 0 - jdoy = 0 - jday = 0 - call w3doxdat(jda,jdow,jdoy,jday) - rjday=jdoy+jda(5)/24. - if(rjday.lt.dayhf(1)) rjday=rjday+365. -! - if (me .eq. 0) write(6,*) 'forecast jy,jm,jd,jh=',jy,jm,jd,jh -! -! for monthly mean climatology -! - monend = 12 - do mm=1,monend - mmm=mm - mmp=mm+1 - if(rjday.ge.dayhf(mmm).and.rjday.lt.dayhf(mmp)) then - mon1=mmm - mon2=mmp - go to 10 - endif - enddo - print *,'wrong rjday',rjday - call abort - 10 continue - wei1m = (dayhf(mon2)-rjday)/(dayhf(mon2)-dayhf(mon1)) - wei2m = (rjday-dayhf(mon1))/(dayhf(mon2)-dayhf(mon1)) - if(mon2.eq.13) mon2=1 - if (me .eq. 0) print *,'rjday,mon1,mon2,wei1m,wei2m=', - & rjday,mon1,mon2,wei1m,wei2m -! -! read monthly mean climatology of tsf -! - kpd7 = -1 - do nn=1,2 - mon = mon1 - if (nn .eq. 2) mon = mon2 - call fixrdc(lugb,fntsfc,kpdtsf,kpd7,mon,slmask, - & tsf(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo -! -! tsf at the begining of forecast i.e. fh=0 -! - do i=1,len - tsfcl0(i) = wei1m * tsf(i,1) + wei2m * tsf(i,2) - enddo - endif - endif -! -! compute current jy,jm,jd,jh of forecast and the day of the year -! - iy4=iy - if(iy.lt.101) iy4=1900+iy4 - fha = 0 - ida = 0 - jda = 0 - fha(2) = nint(fh) - ida(1) = iy - ida(2) = im - ida(3) = id - ida(5) = ih - call w3kind(w3kindreal,w3kindint) - if(w3kindreal==4) then - fha4=fha - call w3movdat(fha4,ida,jda) - else - call w3movdat(fha,ida,jda) - endif - jy = jda(1) - jm = jda(2) - jd = jda(3) - jh = jda(5) -! if (me .eq. 0) write(6,*) ' forecast jy,jm,jd,jh,rjday=', -! & jy,jm,jd,jh,rjday - jdow = 0 - jdoy = 0 - jday = 0 - call w3doxdat(jda,jdow,jdoy,jday) - rjday = jdoy+jda(5)/24. - if(rjday.lt.dayhf(1)) rjday=rjday+365. - - if (me .eq. 0) write(6,*) ' forecast jy,jm,jd,jh,rjday=', - & jy,jm,jd,jh,rjday -! - if (me .eq. 0) write(6,*) 'forecast jy,jm,jd,jh=',jy,jm,jd,jh -! -! for monthly mean climatology -! - monend = 12 - do mm=1,monend - mmm=mm - mmp=mm+1 - if(rjday.ge.dayhf(mmm).and.rjday.lt.dayhf(mmp)) then - mon1=mmm - mon2=mmp - go to 20 - endif - enddo - print *,'wrong rjday',rjday - call abort - 20 continue - wei1m=(dayhf(mon2)-rjday)/(dayhf(mon2)-dayhf(mon1)) - wei2m=(rjday-dayhf(mon1))/(dayhf(mon2)-dayhf(mon1)) - if(mon2.eq.13) mon2=1 - if (me .eq. 0) print *,'rjday,mon1,mon2,wei1m,wei2m=', - & rjday,mon1,mon2,wei1m,wei2m -! -! for seasonal mean climatology -! - monend = 4 - is = im/3 + 1 - if (is.eq.5) is = 1 - do mm=1,monend - mmm = mm*3 - 2 - mmp = (mm+1)*3 - 2 - if(rjday.ge.dayhf(mmm).and.rjday.lt.dayhf(mmp)) then - sea1 = mmm - sea2 = mmp - go to 30 - endif - enddo - print *,'wrong rjday',rjday - call abort - 30 continue - wei1s = (dayhf(sea2)-rjday)/(dayhf(sea2)-dayhf(sea1)) - wei2s = (rjday-dayhf(sea1))/(dayhf(sea2)-dayhf(sea1)) - if(sea2.eq.13) sea2=1 - if (me .eq. 0) print *,'rjday,sea1,sea2,wei1s,wei2s=', - & rjday,sea1,sea2,wei1s,wei2s -! -! for summer and winter values (maximum and minimum). -! - monend = 2 - is = im/6 + 1 - if (is.eq.3) is = 1 - do mm=1,monend - mmm = mm*6 - 5 - mmp = (mm+1)*6 - 5 - if(rjday.ge.dayhf(mmm).and.rjday.lt.dayhf(mmp)) then - hyr1 = mmm - hyr2 = mmp - go to 31 - endif - enddo - print *,'wrong rjday',rjday - call abort - 31 continue - wei1y = (dayhf(hyr2)-rjday)/(dayhf(hyr2)-dayhf(hyr1)) - wei2y = (rjday-dayhf(hyr1))/(dayhf(hyr2)-dayhf(hyr1)) - if(hyr2.eq.13) hyr2=1 - if (me .eq. 0) print *,'rjday,hyr1,hyr2,wei1y,wei2y=', - & rjday,hyr1,hyr2,wei1y,wei2y -! -! start reading in climatology and interpolate to the date -! - first_time : if (first) then -!cbosu - if (me == 0) print*,'bosu first time thru' -! -! annual mean climatology -! -! fraction of vegetation field for albedo -- there are two -! fraction fields in this version: strong zeneith angle dependent -! and weak zeneith angle dependent -! - kpd9 = -1 -cjfe - alf=0. -cjfe - - kpd7=-1 - if (ialb == 1) then -!cbosu still need facsf and facwf. read them from the production -!cbosu file -!cbosu - call fixrdc(lugb,fnalbc2,kpdalf(1),kpd7,kpd9,slmask - &, alf,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - else - call fixrdc(lugb,fnalbc,kpdalf(1),kpd7,kpd9,slmask - &, alf,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif - do i = 1, len - if(slmask(i).eq.1.) then - alf(i,2) = 100. - alf(i,1) - endif - enddo -! -! deep soil temperature -! - if(fntg3c(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fntg3c,kpdtg3,kpd7,kpd9,slmask, - & tg3,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif -! -! vegetation type -! -! when using the new gldas soil moisture climatology, a veg type -! dataset must be selected. -! - if(fnvetc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnvetc,kpdvet,kpd7,kpd9,slmask, - & vet,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological vegetation', - & ' type read in.' - landice_cat=13 - if (maxval(vet)> 13.0) landice_cat=15 - elseif(index(fnsmcc,'soilmgldas') /= 0) then ! new soil moisture climo - if (me .eq. 0) write(6,*) 'fatal error: must choose' - if (me .eq. 0) write(6,*) 'climatological veg type when' - if (me .eq. 0) write(6,*) 'using new gldas soil moisture.' - call abort - endif -! -! soil type -! - if(fnsotc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnsotc,kpdsot,kpd7,kpd9,slmask, - & sot,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological soil type read in.' - endif - -! -! min vegetation cover -! - if(fnvmnc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnvmnc,kpdvmn,kpd7,kpd9,slmask, - & vmn,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological shdmin read in.' - endif -! -! max vegetation cover -! - if(fnvmxc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnvmxc,kpdvmx,kpd7,kpd9,slmask, - & vmx,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological shdmax read in.' - endif -! -! slope type -! - if(fnslpc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnslpc,kpdslp,kpd7,kpd9,slmask, - & slp,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological slope read in.' - endif -! -! max snow albeod -! - if(fnabsc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnabsc,kpdabs,kpd7,kpd9,slmask, - & absm,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological snoalb read in.' - endif -!clu ---------------------------------------------------------------------- -! - is1 = sea1/3 + 1 - is2 = sea2/3 + 1 - if (is1 .eq. 5) is1 = 1 - if (is2 .eq. 5) is2 = 1 - do nn=1,2 -! -! seasonal mean climatology - if(nn.eq.1) then - isx=is1 - else - isx=is2 - endif - if(isx.eq.1) kpd9 = 12 - if(isx.eq.2) kpd9 = 3 - if(isx.eq.3) kpd9 = 6 - if(isx.eq.4) kpd9 = 9 -! -! seasonal mean climatology -! -! albedo -! there are four albedo fields in this version: -! two for strong zeneith angle dependent (visible and near ir) -! and two for weak zeneith angle dependent (vis ans nir) -! - if (ialb == 0) then - kpd7=-1 - do k = 1, 4 - call fixrdc(lugb,fnalbc,kpdalb(k),kpd7,kpd9,slmask, - & alb(1,k,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - endif -! -! monthly mean climatology -! - mon = mon1 - if (nn .eq. 2) mon = mon2 -!cbosu -!cbosu new snowfree albedo database is monthly. - if (ialb == 1) then - kpd7=-1 - do k = 1, 4 - call fixrdc(lugb,fnalbc,kpdalb(k),kpd7,mon,slmask, - & alb(1,k,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - endif - -! if(lprnt) print *,' mon1=',mon1,' mon2=',mon2 -! -! tsf at the current time t -! - kpd7=-1 - call fixrdc(lugb,fntsfc,kpdtsf,kpd7,mon,slmask, - & tsf(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) -! if(lprnt) print *,' tsf=',tsf(iprnt,nn),' nn=',nn -! -! tsf...at time t-deltsfc -! -! fh2 = fh - deltsfc -! if (fh2 .gt. 0.0) then -! call fixrd(lugb,fntsfc,kpdtsf,lclim,slmask, -! & iy,im,id,ih,fh2,tsfcl2,len,iret -! &, imsk, jmsk, slmskh, gaus,blno, blto -! &, outlat, outlon, me) -! else -! do i=1,len -! tsfcl2(i) = tsfclm(i) -! enddo -! endif -! -! soil wetness -! - if(fnwetc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnwetc,kpdwet,kpd7,mon,slmask, - & wet(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - elseif(fnsmcc(1:8).ne.' ') then - if (index(fnsmcc,'global_soilmcpc.1x1.grb') /= 0) then ! the old climo data - kpd7=-1 - call fixrdc(lugb,fnsmcc,kpdsmc,kpd7,mon,slmask, - & smc(1,lsoil,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - do l=1,lsoil-1 - do i = 1, len - smc(i,l,nn) = smc(i,lsoil,nn) - enddo - enddo - else ! the new gldas data. it does not have data defined at landice - ! points. so for efficiency, don't have fixrdc try to - ! find a value at landice points as defined by the vet type (vet). - allocate(slmask_noice(len)) - slmask_noice=1.0 - do i = 1, len - if (nint(vet(i)) < 1 .or. - & nint(vet(i)) == landice_cat) then - slmask_noice(i) = 0.0 - endif - enddo - do k = 1, lsoil - if (k==1) kpd7=10 ! 0_10 cm (pds octs 11 and 12) - if (k==2) kpd7=2600 ! 10_40 cm - if (k==3) kpd7=10340 ! 40_100 cm - if (k==4) kpd7=25800 ! 100_200 cm - call fixrdc(lugb,fnsmcc,kpdsmc,kpd7,mon,slmask_noice, - & smc(1,k,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - deallocate(slmask_noice) - endif - else - write(6,*) 'climatological soil wetness file not given' - call abort - endif -! -! soil temperature -! - if(fnstcc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnstcc,kpdstc,kpd7,mon,slmask, - & stc(1,lsoil,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - do l=1,lsoil-1 - do i = 1, len - stc(i,l,nn) = stc(i,lsoil,nn) - enddo - enddo - endif -! -! sea ice -! - kpd7=-1 - if(fnacnc(1:8).ne.' ') then - call fixrdc(lugb,fnacnc,kpdacn,kpd7,mon,slmask, - & acn(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - elseif(fnaisc(1:8).ne.' ') then - call fixrdc(lugb,fnaisc,kpdais,kpd7,mon,slmask, - & ais(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - else - write(6,*) 'climatological ice cover file not given' - call abort - endif -! -! snow depth -! - kpd7=-1 - call fixrdc(lugb,fnsnoc,kpdsno,kpd7,mon,slmask, - & sno(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) -! -! snow cover -! - if(fnscvc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnscvc,kpdscv,kpd7,mon,slmask, - & scv(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - write(6,*) 'climatological snow cover read in.' - endif -! -! surface roughness -! - if(fnzorc(1:3) == 'sib') then - if (me == 0) then - write(6,*) 'roughness length to be set from sib veg type' - endif - elseif(fnzorc(1:4) == 'igbp') then - if (me == 0) then - write(6,*) 'roughness length to be set from igbp veg type' - endif - else - kpd7=-1 - call fixrdc(lugb,fnzorc,kpdzor,kpd7,mon,slmask, - & zor(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif -! - do i = 1, len -! set clouds climatology to zero - cvclm (i) = 0. - cvbclm(i) = 0. - cvtclm(i) = 0. -! - cnpclm(i) = 0. !set canopy water content climatology to zero - enddo -! -! vegetation cover -! - if(fnvegc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnvegc,kpdveg,kpd7,mon,slmask, - & veg(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological vegetation', - & ' cover read in for mon=',mon - endif - - enddo -! - mon1s = mon1 ; mon2s = mon2 ; sea1s = sea1 ; sea2s = sea2 -! - if (me .eq. 0) print *,' mon1s=',mon1s,' mon2s=',mon2s - &,' sea1s=',sea1s,' sea2s=',sea2s -! - k1 = 1 ; k2 = 2 - m1 = 1 ; m2 = 2 -! - first = .false. - endif first_time -! -! to get tsf climatology at the previous call to sfccycle -! -! if (fh-deltsfc >= 0.0) then - rjdayh = rjday - deltsfc/24.0 -! else -! rjdayh = rjday -! endif -! if(lprnt) print *,' rjdayh=',rjdayh,' mon1=',mon1,' mon2=' -! &,mon2,' mon1s=',mon1s,' mon2s=',mon2s,' k1=',k1,' k2=',k2 - if (rjdayh .ge. dayhf(mon1)) then - if (mon2 .eq. 1) mon2 = 13 - wei1x = (dayhf(mon2)-rjdayh)/(dayhf(mon2)-dayhf(mon1)) - wei2x = 1.0 - wei1x - if (mon2 .eq. 13) mon2 = 1 - else - rjdayh2 = rjdayh - if (rjdayh .lt. dayhf(1)) rjdayh2 = rjdayh2 + 365.0 - if (mon1s .eq. mon1) then - mon1s = mon1 - 1 - if (mon1s .eq. 0) mon1s = 12 - k2 = k1 - k1 = mod(k2,2) + 1 - mon = mon1s - kpd7=-1 - call fixrdc(lugb,fntsfc,kpdtsf,kpd7,mon,slmask, - & tsf(1,k1),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif - mon2s = mon1s + 1 -! if (mon2s .eq. 1) mon2s = 13 - wei1x = (dayhf(mon2s)-rjdayh2)/(dayhf(mon2s)-dayhf(mon1s)) - wei2x = 1.0 - wei1x - if (mon2s .eq. 13) mon2s = 1 - do i=1,len - tsf2(i) = wei1x * tsf(i,k1) + wei2x * tsf(i,k2) - enddo - endif -! -!cbosu new albedo is monthly - if (sea1 .ne. sea1s) then - sea1s = sea1 - sea2s = sea2 - m1 = mod(m1,2) + 1 - m2 = mod(m1,2) + 1 -! -! seasonal mean climatology -! - isx = sea2/3 + 1 - if (isx .eq. 5) isx = 1 - if(isx.eq.1) kpd9 = 12 - if(isx.eq.2) kpd9 = 3 - if(isx.eq.3) kpd9 = 6 - if(isx.eq.4) kpd9 = 9 -! -! albedo -! there are four albedo fields in this version: -! two for strong zeneith angle dependent (visible and near ir) -! and two for weak zeneith angle dependent (vis ans nir) -! -!cbosu - if (ialb == 0) then - kpd7=-1 - do k = 1, 4 - call fixrdc(lugb,fnalbc,kpdalb(k),kpd7,kpd9,slmask - &, alb(1,k,m2),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - endif - - endif - - if (mon1 .ne. mon1s) then - - mon1s = mon1 - mon2s = mon2 - k1 = mod(k1,2) + 1 - k2 = mod(k1,2) + 1 -! -! monthly mean climatology -! - mon = mon2 - nn = k2 -!cbosu - if (ialb == 1) then - if (me == 0) print*,'bosu 2nd time in clima for month ', - & mon, k1,k2 - kpd7=-1 - do k = 1, 4 - call fixrdc(lugb,fnalbc,kpdalb(k),kpd7,mon,slmask, - & alb(1,k,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - endif -! -! tsf at the current time t -! - kpd7=-1 - call fixrdc(lugb,fntsfc,kpdtsf,kpd7,mon,slmask, - & tsf(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) -! -! soil wetness -! - if(fnwetc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnwetc,kpdwet,kpd7,mon,slmask, - & wet(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - elseif(fnsmcc(1:8).ne.' ') then - if (index(fnsmcc,'global_soilmcpc.1x1.grb') /= 0) then ! the old climo data - kpd7=-1 - call fixrdc(lugb,fnsmcc,kpdsmc,kpd7,mon,slmask, - & smc(1,lsoil,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - do l=1,lsoil-1 - do i = 1, len - smc(i,l,nn) = smc(i,lsoil,nn) - enddo - enddo - else ! the new gldas data. it does not have data defined at landice - ! points. so for efficiency, don't have fixrdc try to - ! find a value at landice points as defined by the vet type (vet). - allocate(slmask_noice(len)) - slmask_noice=1.0 - do i = 1, len - if (nint(vet(i)) < 1 .or. - & nint(vet(i)) == landice_cat) then - slmask_noice(i) = 0.0 - endif - enddo - do k = 1, lsoil - if (k==1) kpd7=10 ! 0_10 cm (pds octs 11 and 12) - if (k==2) kpd7=2600 ! 10_40 cm - if (k==3) kpd7=10340 ! 40_100 cm - if (k==4) kpd7=25800 ! 100_200 cm - call fixrdc(lugb,fnsmcc,kpdsmc,kpd7,mon,slmask_noice, - & smc(1,k,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - deallocate(slmask_noice) - endif - else - write(6,*) 'climatological soil wetness file not given' - call abort - endif -! -! sea ice -! - kpd7=-1 - if(fnacnc(1:8).ne.' ') then - call fixrdc(lugb,fnacnc,kpdacn,kpd7,mon,slmask, - & acn(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - elseif(fnaisc(1:8).ne.' ') then - call fixrdc(lugb,fnaisc,kpdais,kpd7,mon,slmask, - & ais(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - else - write(6,*) 'climatological ice cover file not given' - call abort - endif -! -! snow depth -! - kpd7=-1 - call fixrdc(lugb,fnsnoc,kpdsno,kpd7,mon,slmask, - & sno(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) -! -! snow cover -! - if(fnscvc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnscvc,kpdscv,kpd7,mon,slmask, - & scv(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - write(6,*) 'climatological snow cover read in.' - endif -! -! surface roughness -! - if(fnzorc(1:3) == 'sib') then - if (me == 0) then - write(6,*) 'roughness length to be set from sib veg type' - endif - elseif(fnzorc(1:4) == 'igbp') then - if (me == 0) then - write(6,*) 'roughness length to be set from igbp veg type' - endif - else - kpd7=-1 - call fixrdc(lugb,fnzorc,kpdzor,kpd7,mon,slmask, - & zor(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif -! -! vegetation cover -! - if(fnvegc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnvegc,kpdveg,kpd7,mon,slmask, - & veg(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) -! if (me .eq. 0) write(6,*) 'climatological vegetation', -! & ' cover read in for mon=',mon - endif -! - endif -! -! now perform the time interpolation -! -! when chosen, set the z0 based on the vegetation type. -! for this option to work, namelist variable fnvetc must be -! set to point at the proper vegetation type file. - if(fnzorc(1:3) == 'sib') then - if(fnvetc(1:4) == ' ') then - if (me==0) write(6,*) "must choose sib veg type climo file" - call abort - endif - zorclm = 0.0 - do i=1,len - ivtyp=nint(vet(i)) - if (ivtyp >= 1 .and. ivtyp <= 13) then - zorclm(i) = z0_sib(ivtyp) - endif - enddo - elseif(fnzorc(1:4) == 'igbp') then - if(fnvetc(1:4) == ' ') then - if (me==0) write(6,*) "must choose igbp veg type climo file" - call abort - endif - zorclm = 0.0 - do i=1,len - ivtyp=nint(vet(i)) - if (ivtyp >= 1 .and. ivtyp <= 20) then - z0_season(1) = z0_igbp_min(ivtyp) - z0_season(7) = z0_igbp_max(ivtyp) - if(outlat(i) < 0.0)then - zorclm(i) = wei1y * z0_season(hyr2) + - & wei2y *z0_season(hyr1) - else - zorclm(i) = wei1y * z0_season(hyr1) + - & wei2y *z0_season(hyr2) - endif - endif - enddo - else - do i=1,len - zorclm(i) = wei1m * zor(i,k1) + wei2m * zor(i,k2) - enddo - endif -! - do i=1,len - tsfclm(i) = wei1m * tsf(i,k1) + wei2m * tsf(i,k2) - snoclm(i) = wei1m * sno(i,k1) + wei2m * sno(i,k2) - cvclm(i) = 0.0 - cvbclm(i) = 0.0 - cvtclm(i) = 0.0 - cnpclm(i) = 0.0 - tsfcl2(i) = tsf2(i) - enddo -! if(lprnt) print *,' tsfclm=',tsfclm(iprnt),' wei1m=',wei1m -! &,' wei2m=',wei2m,' tsfk12=',tsf(iprnt,k1),tsf(iprnt,k2) -! - if (fh .eq. 0.0) then - do i=1,len - tsfcl0(i) = tsfclm(i) - enddo - endif - if (rjdayh .ge. dayhf(mon1)) then - do i=1,len - tsf2(i) = wei1x * tsf(i,k1) + wei2x * tsf(i,k2) - tsfcl2(i) = tsf2(i) - enddo - endif -! if(lprnt) print *,' tsf2=',tsf2(iprnt),' wei1x=',wei1x -! &,' wei2x=',wei2x,' tsfk12=',tsf(iprnt,k1),tsf(iprnt,k2) -! &,' mon1s=',mon1s,' mon2s=',mon2s -! &,' slmask=',slmask(iprnt) -! - if(fnacnc(1:8).ne.' ') then - do i=1,len - acnclm(i) = wei1m * acn(i,k1) + wei2m * acn(i,k2) - enddo - elseif(fnaisc(1:8).ne.' ') then - do i=1,len - aisclm(i) = wei1m * ais(i,k1) + wei2m * ais(i,k2) - enddo - endif -! - if(fnwetc(1:8).ne.' ') then - do i=1,len - wetclm(i) = wei1m * wet(i,k1) + wei2m * wet(i,k2) - enddo - elseif(fnsmcc(1:8).ne.' ') then - do k=1,lsoil - do i=1,len - smcclm(i,k) = wei1m * smc(i,k,k1) + wei2m * smc(i,k,k2) - enddo - enddo - endif -! - if(fnscvc(1:8).ne.' ') then - do i=1,len - scvclm(i) = wei1m * scv(i,k1) + wei2m * scv(i,k2) - enddo - endif -! - if(fntg3c(1:8).ne.' ') then - do i=1,len - tg3clm(i) = tg3(i) - enddo - elseif(fnstcc(1:8).ne.' ') then - do k=1,lsoil - do i=1,len - stcclm(i,k) = wei1m * stc(i,k,k1) + wei2m * stc(i,k,k2) - enddo - enddo - endif -! - if(fnvegc(1:8).ne.' ') then - do i=1,len - vegclm(i) = wei1m * veg(i,k1) + wei2m * veg(i,k2) - enddo - endif -! - if(fnvetc(1:8).ne.' ') then - do i=1,len - vetclm(i) = vet(i) - enddo - endif -! - if(fnsotc(1:8).ne.' ') then - do i=1,len - sotclm(i) = sot(i) - enddo - endif - - -!clu ---------------------------------------------------------------------- -! - if(fnvmnc(1:8).ne.' ') then - do i=1,len - vmnclm(i) = vmn(i) - enddo - endif -! - if(fnvmxc(1:8).ne.' ') then - do i=1,len - vmxclm(i) = vmx(i) - enddo - endif -! - if(fnslpc(1:8).ne.' ') then - do i=1,len - slpclm(i) = slp(i) - enddo - endif -! - if(fnabsc(1:8).ne.' ') then - do i=1,len - absclm(i) = absm(i) - enddo - endif -!clu ---------------------------------------------------------------------- -! -!cbosu diagnostic print - if (me == 0) print*,'monthly albedo weights are ', - & wei1m,' for k', k1, wei2m, ' for k', k2 - - if (ialb == 1) then - do k=1,4 - do i=1,len - albclm(i,k) = wei1m * alb(i,k,k1) + wei2m * alb(i,k,k2) - enddo - enddo - else - do k=1,4 - do i=1,len - albclm(i,k) = wei1s * alb(i,k,m1) + wei2s * alb(i,k,m2) - enddo - enddo - endif -! - do k=1,2 - do i=1,len - alfclm(i,k) = alf(i,k) - enddo - enddo -! -! end of climatology reads -! - return - end subroutine clima - subroutine fixrdc(lugb,fngrib,kpds5,kpds7,mon,slmask, - & gdata,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - use machine , only : kind_io8,kind_io4 - use sfccyc_module, only : mdata - implicit none - integer imax,jmax,ijmax,i,j,n,jret,inttyp,iret,imsk, - & jmsk,len,lugb,kpds5,mon,lskip,lgrib,ndata,lugi,me,kmami - &, jj,w3kindreal,w3kindint - real (kind=kind_io8) wlon,elon,rnlat,dlat,dlon,rslat,blno,blto -! -! read in grib climatology files and interpolate to the input -! grid. grib files should allow all the necessary parameters -! to be extracted from the description records. -! -! - character*500 fngrib -! character*80 fngrib, asgnstr -! - real (kind=kind_io8) slmskh(imsk,jmsk) -! - real (kind=kind_io8) gdata(len), slmask(len) - real (kind=kind_io8), allocatable :: data(:,:), rslmsk(:,:) - real (kind=kind_io8) data8(mdata) - real (kind=kind_io4), allocatable :: data4(:) - real (kind=kind_io8), allocatable :: rlngrb(:), rltgrb(:) -! - logical lmask, yr2kc, gaus, ijordr - logical*1 lbms(mdata) -! - integer, intent(in) :: kpds7 - integer kpds(1000),kgds(1000) - integer jpds(1000),jgds(1000), kpds0(1000) - real (kind=kind_io8) outlat(len), outlon(len) -! -! integer imax_sv, jmax_sv, wlon_sv, rnlat_sv, kpds1_sv -! date imax_sv/0/, jmax_sv/0/, wlon_sv/999.0/, rnlat_sv/999.0/ -! &, kpds1_sv/-1/ -! save imax_sv, jmax_sv, wlon_sv, rnlat_sv, kpds1_sv -! &, rlngrb, rltgrb -! - iret = 0 -! - if (me .eq. 0) write(6,*) ' in fixrdc for mon=',mon - &,' fngrib=',trim(fngrib) -! - close(lugb) - call baopenr(lugb,fngrib,iret) - if (iret .ne. 0) then - write(6,*) ' error in opening file ',trim(fngrib) - print *,'error in opening file ',trim(fngrib) - call abort - endif - if (me .eq. 0) write(6,*) ' file ',trim(fngrib), - & ' opened. unit=',lugb -! - lugi = 0 -! - lskip = -1 - jpds = -1 - jgds = -1 - jpds(5) = kpds5 - jpds(7) = kpds7 - kpds = jpds - call getgbh(lugb,lugi,lskip,jpds,jgds,lgrib,ndata, - & lskip,kpds,kgds,iret) - if (me .eq. 0) then - write(6,*) ' first grib record.' - write(6,*) ' kpds( 1-10)=',(kpds(j),j= 1,10) - write(6,*) ' kpds(11-20)=',(kpds(j),j=11,20) - write(6,*) ' kpds(21- )=',(kpds(j),j=21,22) - endif - yr2kc = (kpds(8) / 100) .gt. 0 - kpds0 = jpds - kpds0(4) = -1 - kpds0(18) = -1 - if(iret.ne.0) then - write(6,*) ' error in getgbh. iret: ', iret - if (iret==99) write(6,*) ' field not found.' - call abort - endif -! -! handling climatology file -! - lskip = -1 - n = 0 - jpds = kpds0 - jpds(9) = mon - if(jpds(9).eq.13) jpds(9) = 1 - call w3kind(w3kindreal,w3kindint) - if(w3kindreal==8) then - call getgb(lugb,lugi,mdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data8,jret) - else if (w3kindreal==4) then - allocate(data4(mdata)) - call getgb(lugb,lugi,mdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data4,jret) - data8 = data4 - deallocate(data4) - endif - if (me .eq. 0) write(6,*) ' input grib file dates=', - & (kpds(i),i=8,11) - if(jret.eq.0) then - if(ndata.eq.0) then - write(6,*) ' error in getgb' - write(6,*) ' kpds=',kpds - write(6,*) ' kgds=',kgds - call abort - endif - imax=kgds(2) - jmax=kgds(3) - ijmax=imax*jmax - allocate (data(imax,jmax)) - do j=1,jmax - jj = (j-1)*imax - do i=1,imax - data(i,j) = data8(jj+i) - enddo - enddo - if (me .eq. 0) write(6,*) 'imax,jmax,ijmax=',imax,jmax,ijmax - else - write(6,*) ' error in getgb - jret=', jret - call abort - endif -! -! if (me == 0) then -! write(6,*) ' maxmin of input as is' -! kmami=1 -! call maxmin(data(1,1),ijmax,kmami) -! endif -! - call getarea(kgds,dlat,dlon,rslat,rnlat,wlon,elon,ijordr,me) - if (me == 0) then - write(6,*) 'imax,jmax,ijmax,dlon,dlat,ijordr,wlon,rnlat=' - write(6,*) imax,jmax,ijmax,dlon,dlat,ijordr,wlon,rnlat - endif - call subst(data,imax,jmax,dlon,dlat,ijordr) -! -! first get slmask over input grid -! - allocate (rlngrb(imax), rltgrb(jmax)) - allocate (rslmsk(imax,jmax)) - - call setrmsk(kpds5,slmskh,imsk,jmsk,wlon,rnlat, - & data,imax,jmax,rlngrb,rltgrb,lmask,rslmsk - &, gaus,blno, blto, kgds(1), kpds(4), lbms) -! write(6,*) ' kpds5=',kpds5,' lmask=',lmask -! - inttyp = 0 - if(kpds5.eq.225) inttyp = 1 - if(kpds5.eq.230) inttyp = 1 - if(kpds5.eq.236) inttyp = 1 - if(kpds5.eq.224) inttyp = 1 - if (me .eq. 0) then - if(inttyp.eq.1) print *, ' nearest grid point used' - &, ' kpds5=',kpds5, ' lmask = ',lmask - endif -! - call la2ga(data,imax,jmax,rlngrb,rltgrb,wlon,rnlat,inttyp, - & gdata,len,lmask,rslmsk,slmask - &, outlat, outlon,me) -! - deallocate (rlngrb, stat=iret) - deallocate (rltgrb, stat=iret) - deallocate (data, stat=iret) - deallocate (rslmsk, stat=iret) - call baclose(lugb,iret) -! - return - end - subroutine fixrda(lugb,fngrib,kpds5,slmask, - & iy,im,id,ih,fh,gdata,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - use machine , only : kind_io8,kind_io4 - use sfccyc_module, only : mdata - implicit none - integer nrepmx,nvalid,imo,iyr,idy,jret,ihr,nrept,lskip,lugi, - & lgrib,j,ndata,i,inttyp,jmax,imax,ijmax,ij,jday,len,iret, - & jmsk,imsk,ih,kpds5,lugb,iy,id,im,jh,jd,jdoy,jdow,jm,me, - & monend,jy,iy4,kmami,iret2,jj,w3kindreal,w3kindint - real (kind=kind_io8) rnlat,rslat,wlon,elon,dlon,dlat,fh,blno, - & rjday,blto -! -! read in grib climatology/analysis files and interpolate to the input -! dates and the grid. grib files should allow all the necessary parameters -! to be extracted from the description records. -! -! nrepmx: max number of days for going back date search -! nvalid: analysis later than (current date - nvalid) is regarded as -! valid for current analysis -! - parameter(nrepmx=15, nvalid=4) -! - character*500 fngrib -! character*80 fngrib, asgnstr -! - real (kind=kind_io8) slmskh(imsk,jmsk) -! - real (kind=kind_io8) gdata(len), slmask(len) - real (kind=kind_io8), allocatable :: data(:,:),rslmsk(:,:) - real (kind=kind_io8) data8(mdata) - real (kind=kind_io4), allocatable :: data4(:) - real (kind=kind_io8), allocatable :: rlngrb(:), rltgrb(:) -! - logical lmask, yr2kc, gaus, ijordr - logical*1 lbms(mdata) -! - integer kpds(1000),kgds(1000) - integer jpds(1000),jgds(1000), kpds0(1000) - real (kind=kind_io8) outlat(len), outlon(len) -! -! dayhf : julian day of the middle of each month -! - real (kind=kind_io8) dayhf(13) - data dayhf/ 15.5, 45.0, 74.5,105.0,135.5,166.0, - & 196.5,227.5,258.0,288.5,319.0,349.5,380.5/ -! -! mjday : number of days in a month -! - integer mjday(12) - data mjday/31,28,31,30,31,30,31,31,30,31,30,31/ -! - real (kind=kind_io8) fha(5) - real(4) fha4(5) - integer ida(8),jda(8) -! - iret = 0 - monend = 9999 -! -! compute jy,jm,jd,jh of forecast and the day of the year -! - iy4=iy - if(iy.lt.101) iy4=1900+iy4 - fha=0 - ida=0 - jda=0 - fha(2)=nint(fh) - ida(1)=iy - ida(2)=im - ida(3)=id - ida(5)=ih - call w3kind(w3kindreal,w3kindint) - if(w3kindreal==4) then - fha4=fha - call w3movdat(fha4,ida,jda) - else - call w3movdat(fha,ida,jda) - endif - jy=jda(1) - jm=jda(2) - jd=jda(3) - jh=jda(5) -! if (me .eq. 0) write(6,*) ' forecast jy,jm,jd,jh,rjday=', -! & jy,jm,jd,jh,rjday - jdow = 0 - jdoy = 0 - jday = 0 - call w3doxdat(jda,jdow,jdoy,jday) - rjday=jdoy+jda(5)/24. - if(rjday.lt.dayhf(1)) rjday=rjday+365. - - if (me .eq. 0) write(6,*) ' forecast jy,jm,jd,jh,rjday=', - & jy,jm,jd,jh,rjday -! - if (me .eq. 0) then - write(6,*) 'forecast jy,jm,jd,jh=',jy,jm,jd,jh -! - write(6,*) ' ' - write(6,*) '************************************************' - endif -! - close(lugb) - call baopenr(lugb,fngrib,iret) - if (iret .ne. 0) then - write(6,*) ' error in opening file ',trim(fngrib) - print *,'error in opening file ',trim(fngrib) - call abort - endif - if (me .eq. 0) write(6,*) ' file ',trim(fngrib), - & ' opened. unit=',lugb -! - lugi = 0 -! - lskip=-1 - jpds=-1 - jgds=-1 - jpds(5)=kpds5 - kpds = jpds - call getgbh(lugb,lugi,lskip,jpds,jgds,lgrib,ndata, - & lskip,kpds,kgds,iret) - if (me .eq. 0) then - write(6,*) ' first grib record.' - write(6,*) ' kpds( 1-10)=',(kpds(j),j= 1,10) - write(6,*) ' kpds(11-20)=',(kpds(j),j=11,20) - write(6,*) ' kpds(21- )=',(kpds(j),j=21,22) - endif - yr2kc = (kpds(8) / 100) .gt. 0 - kpds0=jpds - kpds0(4)=-1 - kpds0(18)=-1 - if(iret.ne.0) then - write(6,*) ' error in getgbh. iret: ', iret - if(iret==99) write(6,*) ' field not found.' - call abort - endif -! -! handling analysis file -! -! find record for the given hour/day/month/year -! - nrept=0 - jpds=kpds0 - lskip = -1 - iyr=jy - if(iyr.le.100) iyr=2050-mod(2050-iyr,100) - imo=jm - idy=jd - ihr=jh -! year 2000 compatible data - if (yr2kc) then - jpds(8) = iyr - else - jpds(8) = mod(iyr,1900) - endif - 50 continue - jpds( 8)=mod(iyr-1,100)+1 - jpds( 9)=imo - jpds(10)=idy -! jpds(11)=ihr - jpds(21)=(iyr-1)/100+1 - call w3kind(w3kindreal,w3kindint) - if (w3kindreal == 8) then - call getgb(lugb,lugi,mdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data8,jret) - elseif (w3kindreal == 4) then - allocate (data4(mdata)) - call getgb(lugb,lugi,mdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data4,jret) - data8 = data4 - deallocate(data4) - endif - if (me .eq. 0) write(6,*) ' input grib file dates=', - & (kpds(i),i=8,11) - if(jret.eq.0) then - if(ndata.eq.0) then - write(6,*) ' error in getgb' - write(6,*) ' kpds=',kpds - write(6,*) ' kgds=',kgds - call abort - endif - imax=kgds(2) - jmax=kgds(3) - ijmax=imax*jmax - allocate (data(imax,jmax)) - do j=1,jmax - jj = (j-1)*imax - do i=1,imax - data(i,j) = data8(jj+i) - enddo - enddo - else - if(nrept.eq.0) then - if (me .eq. 0) then - write(6,*) ' no matching dates found. start searching', - & ' nearest matching dates (going back).' - endif - endif -! -! no matching ih found. search nearest hour -! - if(ihr.eq.6) then - ihr=0 - go to 50 - elseif(ihr.eq.12) then - ihr=0 - go to 50 - elseif(ihr.eq.18) then - ihr=12 - go to 50 - elseif(ihr.eq.0.or.ihr.eq.-1) then - idy=idy-1 - if(idy.eq.0) then - imo=imo-1 - if(imo.eq.0) then - iyr=iyr-1 - if(iyr.lt.0) iyr=99 - imo=12 - endif - idy=31 - if(imo.eq.4.or.imo.eq.6.or.imo.eq.9.or.imo.eq.11) idy=30 - if(imo.eq.2) then - if(mod(iyr,4).eq.0) then - idy=29 - else - idy=28 - endif - endif - endif - ihr=-1 - if (me .eq. 0) write(6,*) ' decremented dates=', - & iyr,imo,idy,ihr - nrept=nrept+1 - if(nrept.gt.nvalid) iret=-1 - if(nrept.gt.nrepmx) then - if (me .eq. 0) then - write(6,*) ' searching range exceeded.' - &, ' may be wrong grib file given' - write(6,*) ' fngrib=',trim(fngrib) - write(6,*) ' terminating search and', - & ' and setting gdata to -999' - write(6,*) ' range max=',nrepmx - endif -! imax=kgds(2) -! jmax=kgds(3) -! ijmax=imax*jmax -! do ij=1,ijmax -! data(ij)=0. -! enddo - go to 100 - endif - go to 50 - else - if (me .eq. 0) then - write(6,*) ' search of analysis for ihr=',ihr,' failed.' - write(6,*) ' kpds=',kpds - write(6,*) ' iyr,imo,idy,ihr=',iyr,imo,idy,ihr - endif - go to 100 - endif - endif -! - 80 continue -! if (me == 0) then -! write(6,*) ' maxmin of input as is' -! kmami=1 -! call maxmin(data(1,1),ijmax,kmami) -! endif -! - call getarea(kgds,dlat,dlon,rslat,rnlat,wlon,elon,ijordr,me) - if (me == 0) then - write(6,*) 'imax,jmax,ijmax,dlon,dlat,ijordr,wlon,rnlat=' - write(6,*) imax,jmax,ijmax,dlon,dlat,ijordr,wlon,rnlat - endif - call subst(data,imax,jmax,dlon,dlat,ijordr) -! -! first get slmask over input grid -! - allocate (rlngrb(imax), rltgrb(jmax)) - allocate (rslmsk(imax,jmax)) - call setrmsk(kpds5,slmskh,imsk,jmsk,wlon,rnlat, - & data,imax,jmax,rlngrb,rltgrb,lmask,rslmsk -! & data,imax,jmax,abs(dlon),abs(dlat),lmask,rslmsk -!cggg &, gaus,blno, blto, kgds(1)) - &, gaus,blno, blto, kgds(1), kpds(4), lbms) - -! write(6,*) ' kpds5=',kpds5,' lmask=',lmask -! - inttyp = 0 - if(kpds5.eq.225) inttyp = 1 - if(kpds5.eq.230) inttyp = 1 - if(kpds5.eq.66) inttyp = 1 - if(inttyp.eq.1) print *, ' nearest grid point used' -! - call la2ga(data,imax,jmax,rlngrb,rltgrb,wlon,rnlat,inttyp, - & gdata,len,lmask,rslmsk,slmask - &, outlat, outlon, me) -! - deallocate (rlngrb, stat=iret) - deallocate (rltgrb, stat=iret) - deallocate (data, stat=iret) - deallocate (rslmsk, stat=iret) - call baclose(lugb,iret2) -! write(6,*) ' ' - return -! - 100 continue - iret=1 - do i=1,len - gdata(i) = -999. - enddo -! - call baclose(lugb,iret2) -! - return - end subroutine fixrda - subroutine snodpth2(glacir,snwmax,snoanl, len, me) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,me,len - real (kind=kind_io8) snwmax -! - real (kind=kind_io8) snoanl(len), glacir(len) -! - if (me .eq. 0) write(6,*) 'snodpth2' -! - do i=1,len -! -! if glacial points has snow in climatology, set sno to snomax -! - if(glacir(i).ne.0..and.snoanl(i).lt.snwmax*0.5) then - snoanl(i) = snwmax + snoanl(i) - endif -! - enddo - return - end diff --git a/sorc/global_chgres.fd/surface_chgres.f90 b/sorc/global_chgres.fd/surface_chgres.f90 deleted file mode 100755 index 8886c2c1aa..0000000000 --- a/sorc/global_chgres.fd/surface_chgres.f90 +++ /dev/null @@ -1,2932 +0,0 @@ - module surface_chgres -!$$$ module documentation block -! -! module: surface_chgres interpolate land fields from one -! grid to another. -! prgmmr: gayno org: w/np2 date: 2005-10-25 -! -! abstract: a collection of routines to interpolate land fields -! from one grid to another. -! -! program history log: -! 2005-10-25 gayno - initial version -! 2006-04-25 gayno - use ipolates library to interpolate -! continous fields. modified for use -! with gfs and wrf. -! 2011-07-01 Moorthi - Added unfiltered orography for angulation correction -! -! usage: use surface_chgres -! -! attributes: -! langauge: fortran 90 -! -!$$$ -!----------------------------------------------------------------------- -! some variable definitions. -! -! climo_fields_opt option for determining climo fields on -! output grid. 1 ONLY!! -! 1-interpolate all from input grid -! 2-interpolate veg, soil, slope type -! from input grid. others from -! sfccycle program. -! 3-all from sfccycle program. -! landice_opt 1-no landice input grid -> landice output grid -! 2-landice input grid -> landice output grid -! 3-no landice input grid -> no landice output grid -! 4-landice input grid -> no landice output grid -! 5-landice output grid regardless of whether -! input grid has landice or not. -!----------------------------------------------------------------------- - - integer, private :: climo_fields_opt ! only for 1 - integer, private :: landice_opt - - integer, allocatable, private :: iindx_output(:) - integer, allocatable, private :: jindx_output(:) - - real, private :: mdl_res_input ! model resol in degrees - real, private :: mdl_res_output ! model resol in degrees - -!----------------------------------------------------------------------- -! these are flag values for veg and soil type at land ice points. -! they depend on the raw data source used. -! -! zobler soil type -> 9 -! statsgo soil type -> 16 -! usgs veg type -> 24 -! sib veg type -> 13 -! igbp veg type -> 15 -!----------------------------------------------------------------------- - - integer, private :: veg_type_ice - integer, private :: veg_type_ice_input - integer, private :: soil_type_ice - -!----------------------------------------------------------------------- -! note: "_input" refers to the input grid, "_output" refers -! to the output grid, "_output_ext" refers to data on output grid -! from an external process, such as sfccycle or gayno's wrf si. -! -! smcref_input/output onset of soil moisture stress -! smcdry_input/output air dry soil moisture limit -! smcwilt_input/output plant wilting point -! smclow_input/output soil moisture scalar multiplier -! smchigh_input/output soil moisture scalar multiplier -! smcmax_input/output maximum soil moisture content -! beta_input/output soil 'b' parameter -! psis_input/output saturated soil potential -! satdk_input/output saturated soil hydraulic conductivity -!----------------------------------------------------------------------- - - integer, parameter, private :: max_soil_types=50 - integer, parameter, private :: max_veg_types=50 - real, private :: salp_output - real, private :: snup_output(max_veg_types) - - real, private :: beta_input(max_soil_types) - real, private :: beta_output(max_soil_types) - real, private :: psis_input(max_soil_types) - real, private :: psis_output(max_soil_types) - real, private :: satdk_input(max_soil_types) - real, private :: satdk_output(max_soil_types) - real, private :: smcdry_input(max_soil_types) - real, private :: smcdry_output(max_soil_types) - real, private :: smchigh_input - real, private :: smchigh_output - real, private :: smclow_input - real, private :: smclow_output - real, private :: smcmax_input(max_soil_types) - real, private :: smcmax_output(max_soil_types) - real, private :: smcref_input(max_soil_types) - real, private :: smcref_output(max_soil_types) - real, private :: smcwilt_input(max_soil_types) - real, private :: smcwilt_output(max_soil_types) - -!---------------------------------------------------------------------- -! note: "_input" refers to the input grid, "_output" refers -! to the output grid, "_output_ext" refers to data on output grid -! from an external process, such as sfccycle or gayno's wrf si. -! -! when the modis data/new radiation treatment (ialb=1) is -! selected, these arrays hold (gfs): -! --------------------------------------------------------------------- -! -! alnsf - near ir blacksky albedo -! alnwf - near ir whitesky albedo -! alvsf - visible blacksky albedo -! alvwf - visible whitesky albedo -! -! --------------------------------------------------------------------- -! when the one degree data/older radiation treatment (ialb=0) is -! selected, these arrays hold (gfs): -! --------------------------------------------------------------------- -! -! alnsf - near ir albedo, strong cosz dependence -! alnwf - near ir albedo, weak cosz dependence -! alvsf - vis albedo, strong cosz dependence -! alvwf - vis albedo, weak cosz dependence -! -! --------------- -! other variables: -! --------------- -! -! albedo - include effects of snow cover - wrf/nam -! canopy_mc - canopy moisture content -! facsf - fraction, strong cosz dependence -! facwf - fraction, weak cosz dependence -! sea_ice_fract - sea ice fraction, decimal -! greenfrc - greenness fraction -! greenfrc_max - max annual greenness fraction -! greenfrc_min - min annual greenness fraction -! sea_ice_depth - sea ice depth -! lsmask - land/sea mask -! mxsnow_alb - maximum snow albedo -! orog - orography -! sea_ice_flag - yes/no sea ice flag -! skin_temp - skin temperature, sst over water -! snow_depth - physical snow depth -! snow_free_albedo - wrf/nam radiation package -! snow_liq_equiv - liq equivalent snow depth -! soilm_liq - liquid soil moisture -! soilm_tot - total soil moisture -! soil_temp - soil temperature -! slope_type - soil slope type (category) -! soil_type - soil type (category) -! substrate_temp - soil substrate temperature -! veg_type - vegetation type (category) -! z0 - roughness length -!----------------------------------------------------------------------- - - integer, allocatable, private :: slope_type_output_ext(:) - integer, allocatable, private :: soil_type_output_ext(:) - integer, allocatable, private :: veg_type_output_ext(:) - - real, allocatable, private :: alnsf_output_ext(:) - real, allocatable, private :: alnwf_output_ext(:) - real, allocatable, private :: alvsf_output_ext(:) - real, allocatable, private :: alvwf_output_ext(:) - real, allocatable, private :: facsf_output_ext(:) - real, allocatable, private :: facwf_output_ext(:) - real, allocatable, private :: greenfrc_output_ext(:) - real, allocatable, private :: greenfrc_max_output_ext(:) - real, allocatable, private :: greenfrc_min_output_ext(:) - real, allocatable, private :: mxsnow_alb_output_ext(:) - real, allocatable, private :: snow_free_albedo_output_ext(:) - real, allocatable, private :: substrate_temp_output_ext(:) - real, allocatable, private :: z0_output_ext(:) - -!----------------------------------------------------------------------- -! these structures are to be used by the program that uses this -! module to hold the input and output data. -!----------------------------------------------------------------------- - - type, public :: sfc1d - real, allocatable :: albedo(:) - real, allocatable :: alnsf(:) - real, allocatable :: alnwf(:) - real, allocatable :: alvsf(:) - real, allocatable :: alvwf(:) - real, allocatable :: canopy_mc(:) - real, allocatable :: facsf(:) - real, allocatable :: facwf(:) - real, allocatable :: sea_ice_fract(:) - real, allocatable :: greenfrc(:) - real, allocatable :: greenfrc_max(:) - real, allocatable :: greenfrc_min(:) - real, allocatable :: sea_ice_depth(:) - real, allocatable :: lats(:) - real, allocatable :: lons(:) - real, allocatable :: lsmask(:) - real, allocatable :: mxsnow_alb(:) - real, allocatable :: orog(:) - real, allocatable :: sea_ice_temp(:) - real, allocatable :: skin_temp(:) - real, allocatable :: snow_depth(:) - real, allocatable :: snow_free_albedo(:) - real, allocatable :: snow_liq_equiv(:) - real, allocatable :: soilm_liq(:,:) - real, allocatable :: soilm_tot(:,:) - real, allocatable :: soil_temp(:,:) - real, allocatable :: substrate_temp(:) - real, allocatable :: z0(:) - integer, allocatable :: sea_ice_flag(:) - integer, allocatable :: slope_type(:) - integer, allocatable :: soil_type(:) - integer, allocatable :: veg_type(:) - end type sfc1d - - type, public :: sfc2d - real, allocatable :: alnsf(:,:) - real, allocatable :: alnwf(:,:) - real, allocatable :: alvsf(:,:) - real, allocatable :: alvwf(:,:) - real, allocatable :: canopy_mc(:,:) - real, allocatable :: facsf(:,:) - real, allocatable :: facwf(:,:) - real, allocatable :: sea_ice_fract(:,:) - real, allocatable :: greenfrc(:,:) - real, allocatable :: greenfrc_max(:,:) - real, allocatable :: greenfrc_min(:,:) - real, allocatable :: sea_ice_depth(:,:) - real, allocatable :: lsmask(:,:) - real, allocatable :: mxsnow_alb(:,:) - real, allocatable :: orog(:,:) - real, allocatable :: sea_ice_temp(:,:) - real, allocatable :: skin_temp(:,:) - real, allocatable :: snow_depth(:,:) - real, allocatable :: snow_liq_equiv(:,:) - real, allocatable :: snow_free_albedo(:,:) - real, allocatable :: soilm_liq(:,:,:) - real, allocatable :: soilm_tot(:,:,:) - real, allocatable :: soil_temp(:,:,:) - real, allocatable :: substrate_temp(:,:) - real, allocatable :: z0(:,:) - integer, allocatable :: sea_ice_flag(:,:) - integer, allocatable :: slope_type(:,:) - integer, allocatable :: soil_type(:,:) - integer, allocatable :: veg_type(:,:) - end type sfc2d - - contains - - subroutine surface_chgres_driver(imdl_output, jmdl_output, & - ijmdl_output, nsoil_output, & - kgds_output, output, & - imdl_input, jmdl_input, & - orog_uf,use_ufo, nst_anl, & - nsoil_input, hour, month, & - day, year, fhour, & - kgds_input, input, ialb, & - isot, ivegsrc, merge, iret) -!$$$ subprogram documentation block -! -! subprogram: surface_chgres_driver driver routine for this module -! prgmmr: gayno org: w/np2 date: 2005-10-19 -! -! abstract: call some prep routines, then call main interpolation -! routine. -! -! program history log: -! 2005-10-19 gayno - initial version -! 2006-04-25 gayno - created common interface for gfs and wrf. -! -! usage: call surface_chgres_driver(imdl_output, jmdl_output, & -! ijmdl_output, nsoil_output, & -! lonsperlat_output, & -! kgds_output, output, & -! imdl_input, jmdl_input, & -! nsoil_input, hour, month, & -! day, year, fhour, & -! kgds_input, input, ialb, & -! isot, ivegsrc, merge, iret) -! input arguments: -! day cycle day -! fhour forecast hour -! hour cycle hour -! imdl_input i-dimension, input grid -! imdl_output i-dimension, output grid -! input land data on input grid -! jmdl_input j-dimension, input grid -! jmdl_output j-dimension, output grid -! kgds_input grib grid description section of input grid -! kgds_output grib grid description section of output grid -! lonserplat_output number of i points in each j row, output grid -! month cycle month -! merge used for regional model. set to false for gfs -! nsoil_input number of soil layers, input grid -! nsoil_output number of soil layers, output grid -! year cycle year -! ialb when '1', use new bosu albedo. when '0', -! use old albedo -! isot when '1', use new statsgo soil stype. -! when '0', use zobler soi type -! ivegsrc when '1', use new igbp vegetation type. -! when '2', use sib vegetation type -! outputs: -! iret error status, non-zero if there is a -! problem in this module. -! output land data on output grid -! -! subprograms called: -! setup - read program namelist, calculate soil parameters -! get_ext_climo_global - call sfccycle program to get climo -! fields on output grid -! call interp - interpolate and initialize land states on -! output grid -! attributes: -! langauge: fortran 90 -! - implicit none - - type(sfc2d) :: input - type(sfc1d) :: output - - integer, intent(in) :: hour, month, day, year, ialb, isot, ivegsrc - integer :: i, j, ij, ii, jj - integer, intent(in) :: imdl_input - integer, intent(in) :: imdl_output - integer, intent(in) :: ijmdl_output - integer, intent(inout) :: iret - integer, intent(in) :: jmdl_input - integer, intent(in) :: jmdl_output - integer, intent(in) :: kgds_input(200) - integer, intent(in) :: kgds_output(200) - integer, intent(in) :: nsoil_input - integer, intent(in) :: nsoil_output - - logical, intent(in) :: merge - - real, intent(in) :: fhour - real :: r - real, intent(in) :: orog_uf(ijmdl_output) - logical,intent(in) :: use_ufo, nst_anl - -!----------------------------------------------------------------------- -! perform various setup tasks. -!----------------------------------------------------------------------- - - iret = 0 ! becomes non-zero if there is an error in this module. - - print*,"- CALL SETUP ROUTINE" - call setup (kgds_input, input, imdl_input, jmdl_input, imdl_output, iret) - if (iret /= 0) return - -!----------------------------------------------------------------------- -! the output arrays are 1-d. keep track of their 2-d indices for -! various diagnostics. -! -! Get any output grid fixed fields (such as greenness) that are not -! to be interpolated from the input grid. for gfs, we call the -! sfccycle program, for nmm we read them in from grib files. -!----------------------------------------------------------------------- - - allocate (iindx_output(ijmdl_output)) - allocate (jindx_output(ijmdl_output)) - ij = 0 - do j = 1,jmdl_output - do i = 1, imdl_output - ij=ij+1 - iindx_output(ij)=i - jindx_output(ij)=j - enddo - enddo - print*,'- CALL CYCLE TO GET SURFACE STATIC/CLIMO FIELDS ON OUTPUT GRIDS.' - call get_ext_climo_global(ijmdl_output, output%lsmask, output%orog, & - orog_uf,use_ufo,nst_anl, & - output, hour, month, day, year, fhour, & - ialb, isot, ivegsrc) - - print*,"- CALL INTERP ROUTINE" - - call interp (imdl_input, jmdl_input, kgds_input, ijmdl_output, & - nsoil_input, nsoil_output, & - input, output, imdl_output, jmdl_output, & - kgds_output, ialb, merge, iret) - - - deallocate(iindx_output,jindx_output) - - return - - end subroutine surface_chgres_driver - - subroutine interp (imdl_input, jmdl_input, & - kgds_input, ijmdl_output, & - nsoil_input, nsoil_output, & - input, output, imdl_output, & - jmdl_output, kgds_output, ialb, merge, iret) -!$$$ subprogram documentation block -! -! subprogram: interp interpolate land states -! prgmmr: gayno org: w/np2 date: 2005-10-19 -! -! abstract: interpolate land states from one grid to another. -! discreet fields (such as soil/veg type) and fields -! that are a function of these discreet fields are -! always interpolated via nearest neighbor. other -! continuous fields are interpolated by budget, -! nearest neighbor or bilinear depending on the -! resolutions of the input and output grids. one -! exception is snow, which is never interpolated -! using bilinear. -! -! program history log: -! 2005-10-19 gayno - initial version -! 2006-04-25 gayno - modified to use ipolates library. -! modified to handle both gfs and nmm. -! -! usage: call interp (imdl_input, jmdl_input, & -! kgds_input, ijmdl_output, & -! nsoil_input, nsoil_output, & -! input, output, imdl_output, & -! jmdl_output, kgds_output, merge, iret) -! -! input arguments: -! ialb 1-modis albedo data -! imdl_input i-dimension, input grid -! imdl_output i-dimension, output grid -! ijmdl_output number of grid points, output grid -! input land data on input grid -! jmdl_input j-dimension, input grid -! jmdl_output j-dimension, output grid -! kgds_input grib grid description section of input grid -! kgds_output grib grid description section of output grid -! merge set to false for gfs -! nsoil_input number of soil layers, input grid -! nsoil_output number of soil layers, output grid -! outputs: -! iret error status, non-zero if a problem -! output land data on output grid -! -! subprograms called: -! gdswzd - convert from lat/lon to x/y on a gaussian grid -! ll2xy_egrid - convert from lat/lon to x/y on an e-grid grid -! find_nn_new - finds nearest neighbor input point for each -! output point that is the same type (land, -! landice, non-land) -! adjust_soilt_for_orog - adjust soil temperature for differences in -! orography between input and output grids -! calc_albedo - calculate albedo based on snow cover -! calc_liq_soilm - calculate liquid soil moisture -! rescale_soilm - rescale soil moisture for changes in -! soil type -! -! attributes: -! langauge: fortran 90 -! - use ll2xy_utils, only : ll2xy_egrid - - use interp_utils, only : find_nn_new - - use soil_utils, only : rescale_soilm, adjust_soilt_for_orog, & - calc_liq_soilm, calc_albedo - - use gdswzd_mod - - implicit none - - character*6 :: grid_type - real, parameter :: frz_ice=271.2, frz_h20=273.16 - integer :: count_land_output, count_nonland_output - integer :: count_sea_ice_output - integer, parameter :: flag_value = -999 - integer :: i,j, ij, ii, jj, n - integer, allocatable :: ibi(:), ibo(:) - integer, intent(in) :: ijmdl_output - integer, allocatable :: ijsav_land_output(:), ijsav_nonland_output(:), & - ijsav_sea_ice_output(:) - integer, intent(in) :: ialb, imdl_input, jmdl_input - integer, intent(in) :: imdl_output, jmdl_output - integer :: ipopt(20), int_opt, no - integer :: ipopt_snow(20), int_opt_snow - integer, allocatable :: ipts(:,:),jpts(:,:) - integer, intent(inout) :: iret - integer, intent(in) :: kgds_input(200), kgds_output(200) - integer :: kgds_output_tmp(200), kgdso1 - integer, allocatable :: mask_input(:,:) - integer, allocatable :: mask_output(:) - integer :: nsoil, nret - integer, intent(in) :: nsoil_input - integer, intent(in) :: nsoil_output - integer, allocatable :: nn_iindx_wrt_input_grid(:) - integer, allocatable :: nn_jindx_wrt_input_grid(:) - integer, allocatable :: soil_type_sav(:) - - logical, intent(in) :: merge - - real :: center_lat_input, center_lon_input - real :: dx_input, dy_input - real, allocatable :: input_dat(:,:,:) - real, allocatable :: lats_land_output(:), lons_land_output(:) - real, allocatable :: lats_nonland_output(:), lons_nonland_output(:) - real, allocatable :: lats_sea_ice_output(:), lons_sea_ice_output(:) - real, allocatable :: lsmask_output_temp(:) - real, allocatable :: orog_sav(:) - real, allocatable :: output_data_nonland(:), output_data_land(:) - real, allocatable :: output_data_sea_ice(:), output_data_land2(:,:) - real, allocatable :: output_data_sea_ice2(:,:) - real, allocatable :: snow_m(:) - real, allocatable :: soilm_sav(:,:) - real, allocatable :: xindx_wrt_input_grid(:) - real, allocatable :: yindx_wrt_input_grid(:) - - logical*1, allocatable :: bitmap_land_input(:,:) - logical*1, allocatable :: bitmap_land_output(:) - logical*1, allocatable :: bitmap_sea_ice_input(:,:) - logical*1, allocatable :: bitmap_sea_ice_output(:) - logical*1, allocatable :: bitmap_nonland_input(:,:) - logical*1, allocatable :: bitmap_nonland_output(:) - logical*1, allocatable :: bitmap_land_input2(:,:,:) - logical*1, allocatable :: bitmap_land_output2(:,:) - logical*1, allocatable :: bitmap_sea_ice_input2(:,:,:) - logical*1, allocatable :: bitmap_sea_ice_output2(:,:) - logical :: rescale_soil_moist - logical :: sea_ice_defaults - logical :: veg_from_input - - type(sfc2d) :: input - type(sfc1d) :: output - -!----------------------------------------------------------------------- -! the following variables are setup for use by the ipolates routines. -! -! to properly handle coastlines, the ipolates routines are passed -! the land and non-land points separately. -!----------------------------------------------------------------------- - - iret = 0 - - count_land_output=0 - count_nonland_output=0 - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0) then - count_land_output=count_land_output+1 - else - count_nonland_output=count_nonland_output+1 - endif - enddo - -!----------------------------------------------------------------------- -! note: there are separate options for handling snow (avoid -! bilinear method). Since IPOLATES does recognize the fv3 -! grid, you can't use the budget method. -!----------------------------------------------------------------------- - - ipopt=0 - - if (mdl_res_input <= (0.75*mdl_res_output)) then - print*,"- INTERPOLATE CONTINUOUS DATA FIELDS USING BILINEAR METHOD." - kgds_output_tmp = kgds_output - kgdso1 = -1 ! for subsection of model grid. - int_opt = 0 - ipopt(1)=1 - ipopt(2) = nint(1.0 / mdl_res_input) + 1 ! search box width of 1 deg. - int_opt_snow = 2 ! use neighbor method instead for snow. - ipopt_snow = 0 - ipopt_snow(1) = nint(1.0 / mdl_res_input) + 1 ! search box width of 1 deg. - else - print*,"- INTERPOLATE CONTINUOUS DATA FIELDS USING NEIGHBOR METHOD." - ipopt(1) = nint(1.0 / mdl_res_input) + 1 ! search box width of 1 deg. - kgdso1 = -1 ! for subsection of model grid. - int_opt = 2 - int_opt_snow = int_opt - ipopt_snow = ipopt - end if - -!----------------------------------------------------------------------- -! set up bitmap to tell ipolates where the land and non-land points -! are on the input and output grids. -!----------------------------------------------------------------------- - - allocate(bitmap_land_output(count_land_output)) - bitmap_land_output = .false. - allocate(output_data_land(count_land_output)) - output_data_land=0.0 - - allocate(ijsav_land_output(count_land_output)) - allocate(lats_land_output(count_land_output)) - allocate(lons_land_output(count_land_output)) - - count_land_output=0 - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0) then - count_land_output=count_land_output+1 - ijsav_land_output(count_land_output)=ij - lats_land_output(count_land_output)=output%lats(ij) - lons_land_output(count_land_output)=output%lons(ij) - endif - enddo - - allocate(bitmap_land_input(imdl_input,jmdl_input)) - bitmap_land_input=.false. - where(input%lsmask > 0.0) bitmap_land_input=.true. - -! non-land - - allocate(output_data_nonland(count_nonland_output)) - output_data_nonland=0.0 - allocate(bitmap_nonland_output(count_nonland_output)) - bitmap_nonland_output = .false. - - allocate(ijsav_nonland_output(count_nonland_output)) - allocate(lats_nonland_output(count_nonland_output)) - allocate(lons_nonland_output(count_nonland_output)) - - count_nonland_output=0 - do ij = 1, ijmdl_output - if (output%lsmask(ij) == 0.0) then - count_nonland_output=count_nonland_output+1 - ijsav_nonland_output(count_nonland_output)=ij - lats_nonland_output(count_nonland_output)=output%lats(ij) - lons_nonland_output(count_nonland_output)=output%lons(ij) - endif - enddo - - allocate(bitmap_nonland_input(imdl_input,jmdl_input)) - bitmap_nonland_input=.false. - where(input%lsmask == 0.0) bitmap_nonland_input=.true. - - allocate(bitmap_sea_ice_input(imdl_input,jmdl_input)) ! sea ice - bitmap_sea_ice_input=.false. - where(input%sea_ice_flag == 1) bitmap_sea_ice_input=.true. - -!----------------------------------------------------------------------- -! given the grib gds info of the input grid, and the lats and lons of -! output grid, calculate the x/y location of the output grid points -! with respect to the input grid. -!----------------------------------------------------------------------- - - allocate (xindx_wrt_input_grid(ijmdl_output)) - allocate (yindx_wrt_input_grid(ijmdl_output)) - - print*,"- DETERMINE CORRESPONDING X/Y ON INPUT GRID" - if(kgds_input(1) == 4) then - call gdswzd(kgds_input, -1, ijmdl_output, -999.9, & - xindx_wrt_input_grid, & - yindx_wrt_input_grid, & - output%lons, output%lats, nret) - grid_type="global" - elseif(kgds_input(1) == 203) then - center_lat_input = float(kgds_input(7)) * 0.001 - center_lon_input = float(kgds_input(8)) * 0.001 - dx_input = -(float(kgds_input(199)) * 0.00001) - dy_input = float(kgds_input(200)) * 0.00001 -! because of the e-grid's stagger, the routine ll2xy_egrid routine -! outputs nearest i/j whereas the gaussian routine (based on ipolates) -! outputs a float value. the rest of this module expects a float, -! so convert temp arrays i/jpts to a float value after routine call. - allocate (ipts(imdl_input,jmdl_input)) - allocate (jpts(imdl_input,jmdl_input)) - call ll2xy_egrid(output%lats, output%lons, imdl_input, jmdl_input, & - center_lat_input, center_lon_input, dx_input, dy_input, & - imdl_output, jmdl_output, ipts, jpts) - xindx_wrt_input_grid = reshape(float(ipts),(/ijmdl_output/)) - yindx_wrt_input_grid = reshape(float(jpts),(/ijmdl_output/)) - deallocate(ipts,jpts) - grid_type="egrid" - end if - -!----------------------------------------------------------------------- -! landice points are based on the vegetation type. so, need to -! handle this field first. -!----------------------------------------------------------------------- - - veg_from_input=.true. ! get veg_type from input grid - if (allocated(veg_type_output_ext)) then - print*,'- REPLACE VEG TYPE WITH EXTERNAL DATA.' - output%veg_type = 0 - where (output%lsmask > 0.0) output%veg_type = veg_type_output_ext - veg_from_input=.false. ! veg_type from externally prepared process. - ! don't get from input grid - deallocate (veg_type_output_ext) - end if - -!----------------------------------------------------------------------- -! for each point on the output grid, find the nearest neighbor -! point on the input grid. if output point is land (landice, water), -! the nearest neighbor will always be land (landice, water). -!----------------------------------------------------------------------- - - allocate (nn_iindx_wrt_input_grid(ijmdl_output)) - allocate (nn_jindx_wrt_input_grid(ijmdl_output)) - - allocate (mask_output(ijmdl_output)) - allocate (mask_input(imdl_input,jmdl_input)) - - if (landice_opt == 2 .and. .not.(veg_from_input)) then - do j = 1, jmdl_input - do i = 1, imdl_input - if (input%lsmask(i,j) > 0.0) then - if (input%veg_type(i,j) == veg_type_ice_input) then - mask_input(i,j) = 2 - else - mask_input(i,j) = 1 - end if - else - mask_input(i,j) = 0 - endif - enddo - enddo - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0) then - if (output%veg_type(ij) == veg_type_ice) then - mask_output(ij) = 2 - else - mask_output(ij) = 1 - end if - else - mask_output(ij) = 0 - endif - enddo - else - do j = 1, jmdl_input - do i = 1, imdl_input - if (input%lsmask(i,j) > 0.0) then - mask_input(i,j) = 1 - else - mask_input(i,j) = 0 - endif - enddo - enddo - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0) then - mask_output(ij) = 1 - else - mask_output(ij) = 0 - endif - enddo - end if - - print*,"- CALC NEAREST NEIGHBOR POINTS." - call find_nn_new(imdl_input, jmdl_input, mask_input, & - ijmdl_output, mask_output, & - flag_value, grid_type, mdl_res_input, merge, & - iindx_output, jindx_output, & - xindx_wrt_input_grid, yindx_wrt_input_grid, & - nn_iindx_wrt_input_grid, & - nn_jindx_wrt_input_grid) - - deallocate (mask_output) - deallocate (mask_input) - deallocate (xindx_wrt_input_grid) - deallocate (yindx_wrt_input_grid) - -!----------------------------------------------------------------------- -! if user selects, interpolate veg type from input grid. always -! use nearest neighbor approach on this discreet field. -!----------------------------------------------------------------------- - - if (veg_from_input) then - print*,"- INTERPOLATE VEG TYPE FROM INPUT GRID" - do ij = 1, ijmdl_output - if (output%lsmask(ij) == 0.0) then ! non-land points - output%veg_type(ij) = 0 - else - if ( (nn_iindx_wrt_input_grid(ij) /= flag_value) .and. & - (nn_jindx_wrt_input_grid(ij) /= flag_value) ) then - ii = nn_iindx_wrt_input_grid(ij) - jj = nn_jindx_wrt_input_grid(ij) - output%veg_type(ij) = input%veg_type(ii,jj) - else ! no nearest neighbor that is land. use a default. - output%veg_type(ij) = 6 - endif - end if - enddo - end if - -!----------------------------------------------------------------------- -! sea ice flag...and when using sea ice model - fraction and depth. -! logic is as follows: -! -! no ice model input -> no ice model output : interpolate ice flag -! as 0 or 100% coverage. -! -! no ice model input -> ice model output : interpolate ice flag -! as 0 or 100% coverage. set fract and depth to default values. -! -! ice model input -> ice model output : interpolate ice fraction. -! if > 50%, set ice flag to yes. interpolate ice depth. ensure -! consistency with ice flag. -! -! ice model input -> no ice model output : interpolate ice fraction. -! if > 50%, set ice flag to yes. -!----------------------------------------------------------------------- - - if (.not. allocated (input%sea_ice_fract)) then !input grid is pre-seaice model - print*,"- INTERPOLATE SEA ICE FLAG FROM INPUT GRID." - bitmap_nonland_output=.false. - output_data_nonland=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - no=count_nonland_output - allocate(ibo(1)) - allocate(input_dat(imdl_input,jmdl_input,1)) - input_dat(:,:,1)=float(input%sea_ice_flag) - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_nonland_output, & - 1, 1, bitmap_nonland_input, input_dat, & - no, lats_nonland_output, lons_nonland_output, ibo, & - bitmap_nonland_output, output_data_nonland, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - output%sea_ice_flag = 0 ! land - do ij = 1, count_nonland_output - if (bitmap_nonland_output(ij)) then - output%sea_ice_flag(ijsav_nonland_output(ij))=nint(output_data_nonland(ij)) ! 50% or greater - else - if(abs(lats_nonland_output(ij)) > 55.0) then ! use latitude based default - output%sea_ice_flag(ijsav_nonland_output(ij))=1 ! search failed, use default - else - output%sea_ice_flag(ijsav_nonland_output(ij))=0 ! search failed, use default - end if - endif - enddo - deallocate(input_dat) - sea_ice_defaults=.true. - else ! input grid used sea ice model, - print*,"- INTERPOLATE SEA ICE FRACTION FROM INPUT GRID." - bitmap_nonland_output=.false. - output_data_nonland=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - allocate(ibo(1)) - no=count_nonland_output - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_nonland_output, & - 1, 1, bitmap_nonland_input, input%sea_ice_fract, & - no, lats_nonland_output, lons_nonland_output, ibo, & - bitmap_nonland_output, output_data_nonland, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - output%sea_ice_flag = 0 ! land - do ij = 1, count_nonland_output - if (bitmap_nonland_output(ij)) then - if (output_data_nonland(ij) >= .15) then ! make this a variable? - output%sea_ice_flag(ijsav_nonland_output(ij))=1 - else - output%sea_ice_flag(ijsav_nonland_output(ij))=0 - endif - else ! use a default value - if(abs(lats_nonland_output(ij)) > 55.0) then - output%sea_ice_flag(ijsav_nonland_output(ij))=1 - else - output%sea_ice_flag(ijsav_nonland_output(ij))=0 - end if - endif - enddo - sea_ice_defaults=.false. - if (allocated(output%sea_ice_fract)) then ! output grid to use sea ice model - output%sea_ice_fract = 0.0 ! land - do ij = 1, count_nonland_output - if (bitmap_nonland_output(ij)) then - if (output_data_nonland(ij) >= .15) then ! make this a variable? - output%sea_ice_fract(ijsav_nonland_output(ij))=output_data_nonland(ij) - else - output%sea_ice_fract(ijsav_nonland_output(ij))=0.0 - endif - else - if (output%sea_ice_flag(ijsav_nonland_output(ij)) == 1) then - output%sea_ice_fract(ijsav_nonland_output(ij))=1.0 - end if - endif - enddo - end if - end if - -!----------------------------------------------------------------------- -! now that we know the sea ice on the output grid, set the -! mask for ice for future ipolates calls. -!----------------------------------------------------------------------- - - count_sea_ice_output=0 - do ij = 1, ijmdl_output - if (output%sea_ice_flag(ij) == 1) then - count_sea_ice_output=count_sea_ice_output+1 - endif - enddo - - if (count_sea_ice_output > 0) then - - allocate(output_data_sea_ice(count_sea_ice_output)) - output_data_sea_ice=0.0 - allocate(bitmap_sea_ice_output(count_sea_ice_output)) - bitmap_sea_ice_output = .false. - - allocate(ijsav_sea_ice_output(count_sea_ice_output)) - allocate(lats_sea_ice_output(count_sea_ice_output)) - allocate(lons_sea_ice_output(count_sea_ice_output)) - - count_sea_ice_output=0 - do ij = 1, ijmdl_output - if (output%sea_ice_flag(ij) == 1) then - count_sea_ice_output=count_sea_ice_output+1 - ijsav_sea_ice_output(count_sea_ice_output)=ij - lats_sea_ice_output(count_sea_ice_output)=output%lats(ij) - lons_sea_ice_output(count_sea_ice_output)=output%lons(ij) - endif - enddo - - end if - -!------------------------------------------------------------------------ -! output grid to use sea ice model. -! -! if sea_ice_defaults logical is true, then the input grid did not -! run with the sea ice model, so need to set fract and depth to -! default values. -! -! if logical is false, then input grid did run with ice model. -! fraction was calculated above, so now interpolate depth. -!------------------------------------------------------------------------ - if (allocated(output%sea_ice_fract) .and. allocated(output%sea_ice_depth)) then - if (count_sea_ice_output == 0) then - output%sea_ice_fract = 0.0 - output%sea_ice_depth = 0.0 - elseif (sea_ice_defaults) then - print*,"- INITIALIZE SEA ICE FRACTION AND DEPTH WITH DEFAULT VALUES" - do ij = 1, ijmdl_output - if (output%sea_ice_flag(ij) == 1) then - output%sea_ice_fract(ij) = 1.0 - if (output%lats(ij) > 0.0) then - output%sea_ice_depth(ij) = 3.0 ! in meters - else - output%sea_ice_depth(ij) = 1.5 ! in meters - end if - else - output%sea_ice_fract(ij) = 0.0 - output%sea_ice_depth(ij) = 0.0 - endif - enddo - else - print*,"- INTERPOLATE SEA ICE DEPTH FROM INPUT GRID." - bitmap_sea_ice_output=.false. - output_data_sea_ice=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - allocate(ibo(1)) - no=count_sea_ice_output - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_sea_ice_output, & - 1, 1, bitmap_sea_ice_input, input%sea_ice_depth, & - no, lats_sea_ice_output, lons_sea_ice_output, & - ibo, bitmap_sea_ice_output, & - output_data_sea_ice, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - output%sea_ice_depth = 0.0 ! open water/land - do ij = 1, count_sea_ice_output - if (bitmap_sea_ice_output(ij)) then - output%sea_ice_depth(ijsav_sea_ice_output(ij)) = & - output_data_sea_ice(ij) - else ! use a default value - if (output%sea_ice_flag(ijsav_sea_ice_output(ij)) == 1) then - output%sea_ice_depth(ijsav_sea_ice_output(ij))=1.5 - end if - endif - enddo - endif - end if - -!----------------------------------------------------------------------- -! always use externally generated substrate temps as these are -! tied to the terrain. when running with land ice options, ensure -! it is below freezing. note: for wrf grids, this field is read in -! the driver and passed in. so, only need to do land ice option check. -!----------------------------------------------------------------------- - - if (kgds_output(1) == 4 .or. kgds_output(1) == 0) then ! gaussian/latlon grid - output%substrate_temp = substrate_temp_output_ext - deallocate (substrate_temp_output_ext) - end if - - if (landice_opt == 1 .or. landice_opt == 2) then - print*,"- ENSURE SUBSTRATE TEMP BELOW FREEZING AT LAND ICE." - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - output%substrate_temp(ij) = min(output%substrate_temp(ij), frz_h20) - endif - enddo - endif - - if (kgds_output(1) == 4 .or. kgds_output(1) == 0) goto 77 ! gaussian/latlon grid - - where (output%lsmask == 0.0) output%substrate_temp = 280.0 ! water flag - where (output%sea_ice_flag == 1) output%substrate_temp = frz_ice ! sea ice flag - - 77 continue - -!----------------------------------------------------------------------- -! treat cmc as discreet field because it is a function of veg type. -!----------------------------------------------------------------------- - print*,"- INTERPOLATE CANOPY MOISTURE CONTENT" - do ij = 1, ijmdl_output - if (output%lsmask(ij) == 0.0) then ! non-land points - output%canopy_mc(ij) = 0 - else - if ( (nn_iindx_wrt_input_grid(ij) /= flag_value) .and. & - (nn_jindx_wrt_input_grid(ij) /= flag_value) ) then - ii = nn_iindx_wrt_input_grid(ij) - jj = nn_jindx_wrt_input_grid(ij) - output%canopy_mc(ij) = input%canopy_mc(ii,jj) - else ! no nearest neighbor that is land. use default. - output%canopy_mc(ij) = 0 - endif - endif - enddo - -!----------------------------------------------------------------------- -! treat soil moist as discreet field because it is a function of -! soil type. note: may want to consider other interpolation -! methods in the future as long as they use a soil type "mask." -!----------------------------------------------------------------------- - print*,"- INTERPOLATE TOTAL SOIL MOISTURE" - do ij = 1, ijmdl_output - if (output%lsmask(ij) == 0.0) then ! non-land points - output%soilm_tot(ij,:) = 1.0 - else - if ( (nn_iindx_wrt_input_grid(ij) /= flag_value) .and. & - (nn_jindx_wrt_input_grid(ij) /= flag_value) ) then - ii = nn_iindx_wrt_input_grid(ij) - jj = nn_jindx_wrt_input_grid(ij) - if (nsoil_output == nsoil_input) then - do n = 1, nsoil_output - output%soilm_tot(ij,n) = input%soilm_tot(ii,jj,n) - enddo - elseif (nsoil_output > nsoil_input) then - output%soilm_tot(ij,1) = input%soilm_tot(ii,jj,1) - do n = 2, nsoil_output - nsoil = min(n,nsoil_input) - output%soilm_tot(ij,n) = input%soilm_tot(ii,jj,nsoil) - enddo - else ! logic hardwired for 4->2 layers with thicknesses of - ! 0-.1,.1-.4,.4-1.0,1.0-2.0 and 0-.1,1.0-2.0 meters. - output%soilm_tot(ij,1) = input%soilm_tot(ii,jj,1) - output%soilm_tot(ij,2) =(0.3*input%soilm_tot(ii,jj,2) + & - 0.6*input%soilm_tot(ii,jj,3) + & - 1.0*input%soilm_tot(ii,jj,4))/1.9 - endif - else ! no nearest neighbor that is land. use default. - ! will be overwritten later if landice. - output%soilm_tot(ij,:) = 0.2 - endif - endif - enddo - -!----------------------------------------------------------------------- -! treat roughness as a discreet field as it is tied to vegetation -! type over land. (over water, it is a state variable, so might want -! to consider an approach other than nearest neighbor someday.) -!------------------------------------------------------------------------ - print*,"- INTERPOLATE Z0 FROM INPUT GRID." - do ij = 1, ijmdl_output - if ( (nn_iindx_wrt_input_grid(ij) /= flag_value) .and. & - (nn_jindx_wrt_input_grid(ij) /= flag_value) ) then - ii = nn_iindx_wrt_input_grid(ij) - jj = nn_jindx_wrt_input_grid(ij) - output%z0(ij) = input%z0(ii,jj) - else ! use a default value - if (output%lsmask(ij) > 0.0) then ! points with land - output%z0(ij) = 30.0 ! cm - else - if (output%sea_ice_flag(ij) == 1) then - output%z0(ij) = 1.0 ! cm - else ! open water - output%z0(ij) = 0.01 ! cm - end if - endif - endif - enddo -!----------------------------------------------------------------------- -! replace interpolated z0 with externally generated z0 -! on the output grid (if this data was read in). the externally -! generated data is only valid over land. -!----------------------------------------------------------------------- - if (allocated(z0_output_ext)) then - print*,'- REPLACE Z0 WITH EXTERNAL DATA AT LAND POINTS.' - where(output%lsmask > 0.0) output%z0 = z0_output_ext - deallocate (z0_output_ext) - end if - -!----------------------------------------------------------------------- -! skin temperature -!----------------------------------------------------------------------- - print*,"- INTERPOLATE SKIN TEMPERATURE FROM INPUT GRID." - bitmap_land_output=.false. - output_data_land=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - allocate(ibo(1)) - no=count_land_output - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_land_output, & - 1, 1, bitmap_land_input, input%skin_temp, & - no, lats_land_output, lons_land_output, ibo, & - bitmap_land_output, output_data_land, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - output%skin_temp= 0.0 - do ij = 1, count_land_output - if (bitmap_land_output(ij)) then - output%skin_temp(ijsav_land_output(ij))=output_data_land(ij) - else ! default value - output%skin_temp(ijsav_land_output(ij)) = & - output%substrate_temp(ijsav_land_output(ij)) - endif - enddo -! now do over non-land. note that skint is a mix of ice and open water temp. - bitmap_nonland_output=.false. - output_data_nonland=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - allocate(ibo(1)) - no=count_nonland_output - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_nonland_output, & - 1, 1, bitmap_nonland_input, input%skin_temp, & - no, lats_nonland_output, lons_nonland_output, ibo, & - bitmap_nonland_output, output_data_nonland, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - do ij = 1, count_nonland_output - if (bitmap_nonland_output(ij)) then - output%skin_temp(ijsav_nonland_output(ij))=output_data_nonland(ij) - else - if(abs(lats_nonland_output(ij)) >= 60.0) then - output%skin_temp(ijsav_nonland_output(ij)) = 273.16 - elseif(abs(lats_nonland_output(ij)) <= 30.0) then - output%skin_temp(ijsav_nonland_output(ij)) = 300.0 - else - output%skin_temp(ijsav_nonland_output(ij)) = (-.8947)*(abs(lats_nonland_output(ij))) + 326.84 - endif - endif - enddo - -! at sea ice points, don't let skin temp go above the freezing point. -! at open water points, don't let sst go below freezing point. - - do ij = 1, ijmdl_output - if (output%lsmask(ij) == 0.0) then - if (output%sea_ice_flag(ij) == 1) then - output%skin_temp(ij) = min(output%skin_temp(ij),frz_h20) - else - output%skin_temp(ij) = max(output%skin_temp(ij),(frz_ice+.01)) - endif - endif - enddo - -!----------------------------------------------------------------------- -! set sea ice temperature. relationship between skin temp and -! sea ice temp is: -! skint = icefract*tice + (1-icefract)*271.21 -! where 271.21K is the temp of any open water in the grid cell. -!----------------------------------------------------------------------- - if (allocated(output%sea_ice_temp)) then - do ij = 1, ijmdl_output - output%sea_ice_temp(ij) = output%skin_temp(ij) - if(output%sea_ice_flag(ij) == 1) then - output%sea_ice_temp(ij) = (output%skin_temp(ij) & - -(frz_ice)*(1.-output%sea_ice_fract(ij)))/output%sea_ice_fract(ij) - end if - enddo - end if - -!----------------------------------------------------------------------- -! soil temperature over land. treat as discreet field. -!----------------------------------------------------------------------- - allocate (orog_sav(ijmdl_output)) - orog_sav=0.0 - do n=1, nsoil_output - output%soil_temp(:,n)=output%skin_temp ! flag value open water - enddo - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0) then - if ( (nn_iindx_wrt_input_grid(ij) /= flag_value) .and. & - (nn_jindx_wrt_input_grid(ij) /= flag_value) ) then - ii = nn_iindx_wrt_input_grid(ij) - jj = nn_jindx_wrt_input_grid(ij) - if (nsoil_output == nsoil_input) then - do n = 1, nsoil_output - output%soil_temp(ij,n) = input%soil_temp(ii,jj,n) - enddo - elseif (nsoil_output > nsoil_input) then - output%soil_temp(ij,1) = input%soil_temp(ii,jj,1) - do n = 2, nsoil_output - nsoil = min(n,nsoil_input) - output%soil_temp(ij,n) = input%soil_temp(ii,jj,nsoil) - enddo - else ! logic hardwired for 4->2 layers with thicknesses of - ! 0-.1,.1-.4,.4-1.0,1.0-2.0 and 0-.1,1.0-2.0 meters. - output%soil_temp(ij,1) = input%soil_temp(ii,jj,1) - output%soil_temp(ij,2) =(0.3*input%soil_temp(ii,jj,2) + & - 0.6*input%soil_temp(ii,jj,3) + & - 1.0*input%soil_temp(ii,jj,4))/1.9 - endif - orog_sav(ij) = input%orog(ii,jj) - else - print*,'- *WARNING* SETTING TO DEFAULT VALUES AT POINT ', & - iindx_output(ij), jindx_output(ij) - orog_sav(ij) = output%orog(ij) ! turn off soil t adjustment - output%soil_temp(ij,:) = output%substrate_temp(ij) - endif - endif - enddo -!----------------------------------------------------------------------- -! "soil" temperature over sea ice. treat as continuous field. -! ipolates expects the number of ice levels to be the same. -! hence, the temporary variables for the input and output -! grids are both allocated to nsoil_input. the vertical -! interpolation to the output grid occurs in the logic -! after the ipolates call. -!----------------------------------------------------------------------- - - if (count_sea_ice_output > 0) then - - print*,"- INTERPOLATE SEA ICE COLUMN TEMPS FROM INPUT GRID." - allocate(bitmap_sea_ice_output2(count_sea_ice_output,nsoil_input)) - bitmap_sea_ice_output2=.false. - allocate(bitmap_sea_ice_input2(imdl_input,jmdl_input,nsoil_input)) - do n=1, nsoil_input - bitmap_sea_ice_input2(:,:,n)=bitmap_sea_ice_input - enddo - allocate(output_data_sea_ice2(count_sea_ice_output,nsoil_input)) - output_data_sea_ice2=0.0 - allocate(input_dat(imdl_input,jmdl_input,nsoil_input)) - do n=1, nsoil_input - input_dat(:,:,n)=input%soil_temp(:,:,n) - enddo - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - no=count_sea_ice_output - allocate(ibo(nsoil_input)) - allocate(ibi(nsoil_input)) - ibi=1 - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_sea_ice_output, & - nsoil_input, ibi, bitmap_sea_ice_input2, input_dat, & - no, lats_sea_ice_output, lons_sea_ice_output, ibo, & - bitmap_sea_ice_output2, output_data_sea_ice2, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate (ibi, ibo) - do ij = 1, count_sea_ice_output - if (bitmap_sea_ice_output2(ij,1)) then - if (nsoil_output == nsoil_input) then - do n = 1, nsoil_output - output%soil_temp(ijsav_sea_ice_output(ij),n) = & - output_data_sea_ice2(ij,n) - enddo - elseif (nsoil_output > nsoil_input) then - output%soil_temp(ijsav_sea_ice_output(ij),1) = & - output_data_sea_ice2(ij,1) - do n = 2, nsoil_output - nsoil = min(n,nsoil_input) - output%soil_temp(ijsav_sea_ice_output(ij),n) = & - output_data_sea_ice2(ij,nsoil) - enddo - else ! logic hardwired for 4->2 layers with thicknesses of - ! 0-.1,.1-.4,.4-1.0,1.0-2.0 and 0-.1,1.0-2.0 meters. - output%soil_temp(ijsav_sea_ice_output(ij),1) = & - output_data_sea_ice2(ij,1) - output%soil_temp(ijsav_sea_ice_output(ij),2) = & - (0.3*output_data_sea_ice2(ij,2) + & - 0.6*output_data_sea_ice2(ij,3) + & - 1.0*output_data_sea_ice2(ij,4))/1.9 - endif - else ! use a default value - output%soil_temp(ijsav_sea_ice_output(ij),:) = frz_ice - endif - enddo - deallocate (bitmap_sea_ice_output2, bitmap_sea_ice_input2, & - output_data_sea_ice2, input_dat) - - end if ! no ice - -!----------------------------------------------------------------------- -! for snow liq equiv, interpolate snow at land and sea ice points -! separately to prevent large gfs-imposed depths over land from -! influencing the snow depth at ice. -!----------------------------------------------------------------------- - print*,"- INTERPOLATE SNOW LIQUID EQUIV FROM INPUT GRID." - bitmap_land_output=.false. - output_data_land=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - no=count_land_output - allocate(ibo(1)) - call ipolates(int_opt_snow, ipopt_snow, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_land_output, & - 1, 1, bitmap_land_input, input%snow_liq_equiv, & - no, lats_land_output, lons_land_output, ibo, bitmap_land_output, & - output_data_land, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - output%snow_liq_equiv= 0.0 ! non-land -! the budget interpolation can spread very shallow amounts of snow over -! somewhat large areas. eliminate these. make sure these zeroed -! amounts agree with the snow depth calculated later. - do ij = 1, count_land_output - if (bitmap_land_output(ij)) then - if (int_opt == 3 .and. output_data_land(ij) < 0.2) then - output%snow_liq_equiv(ijsav_land_output(ij))=0.0 - else - output%snow_liq_equiv(ijsav_land_output(ij))=output_data_land(ij) - end if - else - if(abs(lats_land_output(ij)) > 55.0) then - output%snow_liq_equiv(ijsav_land_output(ij))= 2.5 ! search failed, use default (mm) - end if - endif - enddo -! now do snow over sea ice. - if (count_sea_ice_output > 0) then - - bitmap_sea_ice_output=.false. - output_data_sea_ice=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - no=count_sea_ice_output - allocate(ibo(1)) - call ipolates(int_opt_snow, ipopt_snow, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_sea_ice_output, & - 1, 1, bitmap_sea_ice_input, input%snow_liq_equiv, & - no, lats_sea_ice_output, lons_sea_ice_output, ibo, & - bitmap_sea_ice_output, output_data_sea_ice, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - do ij = 1, count_sea_ice_output - if (bitmap_sea_ice_output(ij)) then - output%snow_liq_equiv(ijsav_sea_ice_output(ij))=output_data_sea_ice(ij) - endif - enddo - endif ! no ice - -!----------------------------------------------------------------------- -! set state variables when initializing a land ice run. -!----------------------------------------------------------------------- - if (landice_opt == 1 .or. landice_opt == 2) then - print*,"- INITIALIZE STATE FIELDS AT POINTS WITH PERMANENT LAND ICE" - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. output%veg_type(ij) == veg_type_ice) then - output%canopy_mc(ij) = 0.0 - output%snow_liq_equiv(ij) = max(output%snow_liq_equiv(ij),100.) ! in mm - output%soilm_tot(ij,:) = 1.0 - endif - enddo - end if - -!----------------------------------------------------------------------- -! physical snow depth. not used for pre noah lsm runs. -! -! if input data was pre noah lsm, the snow depth array on the input grid -! will not be allocated. in this case, set depth to -! 10 times the snow liquid water equivalent. -! -! when initializing land ice case, ensure depth is at least 1 meter. -!----------------------------------------------------------------------- - - if (allocated(output%snow_depth)) then - print*,"- PROCESS SNOW DEPTH" - output%snow_depth = 0.0 - if (.not. allocated (input%snow_depth)) then - print*,"- INITIALIZE SNOW DEPTH FROM LIQ EQUIV." - do ij = 1, ijmdl_output - output%snow_depth(ij) = output%snow_liq_equiv(ij)*10.0 - enddo - else - print*,"- INTERPOLATE SNOW DEPTH FROM INPUT GRID - LAND." - bitmap_land_output=.false. - output_data_land=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - allocate(ibo(1)) - no=count_land_output - call ipolates(int_opt_snow, ipopt_snow, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_land_output, & - 1, 1, bitmap_land_input, input%snow_depth, & - no, lats_land_output, lons_land_output, ibo, bitmap_land_output, & - output_data_land, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) -! note: very shallow amounts of liquid equivalent are zeroed out -! when the budget interpolation is used. make sure depth is consistent. - do ij = 1, count_land_output - if (bitmap_land_output(ij)) then - if (output%snow_liq_equiv(ijsav_land_output(ij))==0.0) then - output%snow_depth(ijsav_land_output(ij))=0.0 - else - output%snow_depth(ijsav_land_output(ij))=output_data_land(ij) - end if - else ! default value. - output%snow_depth(ijsav_land_output(ij)) = & - output%snow_liq_equiv(ijsav_land_output(ij))*10.0 - endif - enddo - if (landice_opt == 1 .or. landice_opt == 2) then - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - output%snow_depth(ij) = max(output%snow_depth(ij),1000.) ! in mm - end if - enddo - endif -! now do snow over sea ice. - if (count_sea_ice_output > 0) then - print*,"- INTERPOLATE SNOW DEPTH FROM INPUT GRID - NON LAND." - bitmap_sea_ice_output=.false. - output_data_sea_ice=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - no=count_sea_ice_output - allocate(ibo(1)) - call ipolates(int_opt_snow, ipopt_snow, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_sea_ice_output, & - 1, 1, bitmap_sea_ice_input, input%snow_depth, & - no, lats_sea_ice_output, lons_sea_ice_output, ibo, & - bitmap_sea_ice_output, output_data_sea_ice, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - do ij = 1, count_sea_ice_output - if (bitmap_sea_ice_output(ij)) then ! ipolates found data -! ensure interpolated liq equiv is consistent with depth - if (output%snow_liq_equiv(ijsav_sea_ice_output(ij)) == 0.0) then - output%snow_depth(ijsav_sea_ice_output(ij)) = 0.0 - else - output%snow_depth(ijsav_sea_ice_output(ij))=output_data_sea_ice(ij) - endif - endif - enddo - endif ! no ice - endif - endif - -!----------------------------------------------------------------------- -! adjust soil temperatures for new orography -!----------------------------------------------------------------------- - - call adjust_soilt_for_orog(output%soil_temp, orog_sav, output%orog, & - output%lsmask, ijmdl_output, nsoil_output) - - deallocate (orog_sav) - -!----------------------------------------------------------------------- -! if input grid had landice, and output grid has landice, then -! need to ensure terrain adjustment did not raise sub-surface -! temperature above freezing. if initializing landice, -! use the substrate temp, which has already been qc'd for t>freezing. -!----------------------------------------------------------------------- - - if (landice_opt == 2) then - print*,"- ENSURE COLUMN TEMPERATURES BELOW FREEZING AT LAND ICE" - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - output%skin_temp(ij) = min(output%skin_temp(ij), frz_h20) - output%soil_temp(ij,:) = min(output%soil_temp(ij,:), frz_h20) - endif - enddo - endif - - if (landice_opt == 1) then - print*,"- INITIALIZE COLUMN TEMPERATURES AT POINTS WITH LAND ICE" - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - output%skin_temp(ij) = output%substrate_temp(ij) - output%soil_temp(ij,:) = output%substrate_temp(ij) - endif - enddo - end if - -!----------------------------------------------------------------------- -! soil type is discreet field, always use nearest neighbor. -!----------------------------------------------------------------------- - print*,"- INTERPOLATE SOIL TYPE" - do ij = 1, ijmdl_output - if (output%lsmask(ij) == 0.0) then ! non-land points - output%soil_type(ij) = 0 - else - if ( (nn_iindx_wrt_input_grid(ij) /= flag_value) .and. & - (nn_jindx_wrt_input_grid(ij) /= flag_value) ) then - ii = nn_iindx_wrt_input_grid(ij) - jj = nn_jindx_wrt_input_grid(ij) - output%soil_type(ij) = input%soil_type(ii,jj) - else ! no nearest neighbor that is land. use default. - if (landice_opt == 2 .and. output%veg_type(ij) == veg_type_ice) then - output%soil_type(ij) = soil_type_ice - else - output%soil_type(ij) = 2 - end if - endif - endif - enddo -!----------------------------------------------------------------------- -! the soil moisture rescaling algorithms depend on any changes to -! soil type. so, save the soil type interpolated from the input grid. -!----------------------------------------------------------------------- - rescale_soil_moist = .false. - -!----------------------------------------------------------------------- -! set soil type flag value at landice when initializing landice runs. -!----------------------------------------------------------------------- - if (landice_opt == 1) then - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - output%soil_type(ij) = soil_type_ice - endif - enddo - end if - - allocate(soil_type_sav(ijmdl_output)) - soil_type_sav = output%soil_type ! interpolated from input grid. - -!----------------------------------------------------------------------- -! replace interpolated soil type with externally generated soil type -! on the output grid (if this data was read in). -!----------------------------------------------------------------------- - if (allocated(soil_type_output_ext)) then - print*,'- REPLACE SOIL TYPE WITH EXTERNAL DATA.' - rescale_soil_moist = .true. - output%soil_type = 0 - where (output%lsmask > 0.0) output%soil_type = soil_type_output_ext - deallocate (soil_type_output_ext) - if (landice_opt == 1 .or. landice_opt == 2) then - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - output%soil_type(ij) = soil_type_ice - endif - enddo - end if - end if - -!----------------------------------------------------------------------- -! this option is used when the input grid has land ice, but the -! user does not want land ice on the output grid. need to set -! a soil moisture at these points. use the reference value for the -! soil type as a default start value. -!----------------------------------------------------------------------- - if (landice_opt == 4) then - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%soilm_tot(ij,1) > 0.99) then ! flag for landice. at these - ! points all layers are set to 1.0 - ! so just check the top layer. - soil_type_sav(ij) = output%soil_type(ij) ! turn off soilm rescaling - output%soilm_tot(ij,:) = smcref_output(output%soil_type(ij)) - endif - enddo - endif - -!----------------------------------------------------------------------- -! greenness. valid only over land. -!----------------------------------------------------------------------- - if (allocated(greenfrc_output_ext)) then - print*,'- USE EXTERNAL DATA TO SET GREENNESS.' - output%greenfrc = 0. - where(output%lsmask > 0.) output%greenfrc = greenfrc_output_ext - deallocate (greenfrc_output_ext) - else ! greenness interpolated from input grid. - print*,"- INTERPOLATE GREENNESS FROM INPUT GRID." - bitmap_land_output=.false. - output_data_land=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - allocate(ibo(1)) - no=count_land_output - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_land_output, & - 1, 1, bitmap_land_input, input%greenfrc, & - no, lats_land_output, lons_land_output, ibo, & - bitmap_land_output, output_data_land, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - output%greenfrc= 0.0 ! non-land - do ij = 1, count_land_output - if (bitmap_land_output(ij)) then - output%greenfrc(ijsav_land_output(ij))=output_data_land(ij) - else - output%greenfrc(ijsav_land_output(ij))=0.4 ! search failed, use default - endif - enddo - end if -!----------------------------------------------------------------------- -! once greenness is set, zero output any canopy moisture content -! at points with zero vegetation. recall, a greenness of 1% actually -! means bare ground. -!----------------------------------------------------------------------- - do ij = 1, ijmdl_output - if (output%greenfrc(ij) < 0.011) then - output%canopy_mc(ij) = 0.0 - endif - enddo -!----------------------------------------------------------------------- -! greenness is zero at landice points. -!----------------------------------------------------------------------- - if (landice_opt ==1 .or. landice_opt == 2) then - print*,"- SET GREENNESS AT LANDICE POINTS." - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - output%greenfrc(ij) = 0.0 - endif - enddo - end if - -!----------------------------------------------------------------------- -! min/max greenness. only processed when using the noah lsm. -!----------------------------------------------------------------------- - - if (allocated(output%greenfrc_min) .and. allocated(output%greenfrc_max)) then - if (allocated(greenfrc_min_output_ext) .and. & - allocated(greenfrc_max_output_ext)) then - print*,'- USE EXTERNAL DATA FOR MAX/MIN GREEENNESS.' - output%greenfrc_min = 0. - where(output%lsmask > 0.) output%greenfrc_min = greenfrc_min_output_ext - deallocate (greenfrc_min_output_ext) - output%greenfrc_max = 0. - where(output%lsmask > 0.) output%greenfrc_max = greenfrc_max_output_ext - deallocate (greenfrc_max_output_ext) - elseif (.not. allocated(input%greenfrc_max) .and. & - .not. allocated(input%greenfrc_min) ) then - print*,"- ABORT. INPUT FILE DOES NOT HAVE MAX/MIN GREENNESS." - iret = 99 - return - else - print*,"- INTERPOLATE MAX/MIN GREENNESS FROM INPUT GRID." - allocate(bitmap_land_output2(count_land_output,2)) - bitmap_land_output2=.false. - allocate(bitmap_land_input2(imdl_input,jmdl_input,2)) - bitmap_land_input2(:,:,1)=bitmap_land_input - bitmap_land_input2(:,:,2)=bitmap_land_input - allocate(output_data_land2(count_land_output,2)) - output_data_land2=0.0 - allocate(input_dat(imdl_input,jmdl_input,2)) - input_dat(:,:,1)=input%greenfrc_min - input_dat(:,:,2)=input%greenfrc_max - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - allocate(ibo(2)) - no=count_land_output - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_land_output, & - 2, (/1,1/), bitmap_land_input2, input_dat, & - no, lats_land_output, lons_land_output, ibo, & - bitmap_land_output2, output_data_land2, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - output%greenfrc_min= 0.0 ! non-land - output%greenfrc_max= 0.0 ! non-land - do ij = 1, count_land_output - if (bitmap_land_output2(ij,1)) then - output%greenfrc_min(ijsav_land_output(ij))=output_data_land2(ij,1) - else - output%greenfrc_min(ijsav_land_output(ij))=0.2 ! search failed, use default - endif - enddo - do ij = 1, count_land_output - if (bitmap_land_output2(ij,2)) then - output%greenfrc_max(ijsav_land_output(ij))=output_data_land2(ij,2) - else - output%greenfrc_max(ijsav_land_output(ij))=0.5 ! search failed, use default - endif - enddo - deallocate(bitmap_land_input2, bitmap_land_output2, input_dat, output_data_land2) - end if -!----------------------------------------------------------------------- -! set greenness to zero at land ice points. -!----------------------------------------------------------------------- - if (landice_opt ==1 .or. landice_opt == 2) then - print*,"- SET MAX/MIN GREENNESS TO ZERO AT LAND ICE." - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - output%greenfrc_min(ij) = 0.0 - output%greenfrc_max(ij) = 0.0 - endif - enddo - end if - end if - -!----------------------------------------------------------------------- -! slope type not used for pre-noah lsm runs. treat as discreet field. -!----------------------------------------------------------------------- - if (allocated (output%slope_type)) then - if (allocated(slope_type_output_ext)) then - print*,'- USE EXTERNAL DATA FOR SLOPE TYPE.' - output%slope_type = 0 - where (output%lsmask > 0.0) output%slope_type = slope_type_output_ext - deallocate (slope_type_output_ext) - elseif (.not. allocated (input%slope_type)) then - print*,"- ABORT. INPUT FILE DOES NOT HAVE SLOPE TYPE." - iret = 99 - return - else ! interpolate from input grid - print*,'- INTERPOLATE SLOPE TYPE FROM INPUT GRID.' - do ij = 1, ijmdl_output - if (output%lsmask(ij) == 0.0) then ! non-land points - output%slope_type(ij) = 0 - else - if ( (nn_iindx_wrt_input_grid(ij) /= flag_value) .and. & - (nn_jindx_wrt_input_grid(ij) /= flag_value) ) then - ii = nn_iindx_wrt_input_grid(ij) - jj = nn_jindx_wrt_input_grid(ij) - output%slope_type(ij) = input%slope_type(ii,jj) - else ! no nearest neighbor that is land. use default. - output%slope_type(ij) = 2 - endif - endif - enddo - end if - if (landice_opt == 1 .or. landice_opt == 2) then - print*,"- INITIALIZE SLOPE TYPE AT LANDICE POINTS." - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - output%slope_type(ij) = 9 - endif - enddo - end if - end if - -!----------------------------------------------------------------------- -! snow free albedo. note: at non-land points, the gfs calculates -! albedo internally. for surface files prior to 200501, the -! albedo was set to a flag value of 0.01, otherwise, it is set to -! 0.06. -!----------------------------------------------------------------------- - - SNOWFREE_ALB : if (allocated(output%alvsf)) then ! using 4 component albedo - - if (allocated(alvsf_output_ext) .and. & - allocated(alnsf_output_ext) .and. & - allocated(alnwf_output_ext) .and. & - allocated(alvwf_output_ext) .and. & - allocated(facsf_output_ext) .and. & - allocated(facwf_output_ext)) then - if (allocated(output%sea_ice_fract) .and. & - allocated(output%sea_ice_depth) ) then ! surface file is ivs 200501 - output%alvsf = 0.06 - output%alnsf = 0.06 - output%alnwf = 0.06 - output%alvwf = 0.06 - else ! surface file prior to ivs 200501 - output%alvsf = 0.01 - output%alnsf = 0.01 - output%alnwf = 0.01 - output%alvwf = 0.01 - endif - print*,'- SET ALVSF WITH EXTERNAL DATA OVER LAND' - where (output%lsmask > 0.0) output%alvsf = alvsf_output_ext - deallocate (alvsf_output_ext) - print*,'- SET ALNSF WITH EXTERNAL DATA OVER LAND' - where (output%lsmask > 0.0) output%alnsf = alnsf_output_ext - deallocate (alnsf_output_ext) - print*,'- SET ALNWF WITH EXTERNAL DATA OVER LAND' - where (output%lsmask > 0.0) output%alnwf = alnwf_output_ext - deallocate (alnwf_output_ext) - print*,'- SET ANVWF WITH EXTERNAL DATA OVER LAND' - where (output%lsmask > 0.0) output%alvwf = alvwf_output_ext - deallocate (alvwf_output_ext) - print*,'- SET FACSF WITH EXTERNAL DATA OVER LAND' - output%facsf = 0.0 ! non-land - where (output%lsmask > 0.0) output%facsf = facsf_output_ext - deallocate (facsf_output_ext) - print*,'- SET FACWF WITH EXTERNAL DATA OVER LAND' - output%facwf = 0.0 - where (output%lsmask > 0.0) output%facwf = facwf_output_ext - deallocate (facwf_output_ext) - else ! interp from input grid. - print*,"- INTERP SNOW-FREE ALBEDO FROM INPUT GRID" - allocate(bitmap_land_output2(count_land_output,6)) - bitmap_land_output2=.false. - allocate(bitmap_land_input2(imdl_input,jmdl_input,6)) - bitmap_land_input2(:,:,1)=bitmap_land_input - bitmap_land_input2(:,:,2)=bitmap_land_input - bitmap_land_input2(:,:,3)=bitmap_land_input - bitmap_land_input2(:,:,4)=bitmap_land_input - bitmap_land_input2(:,:,5)=bitmap_land_input - bitmap_land_input2(:,:,6)=bitmap_land_input - allocate(output_data_land2(count_land_output,6)) - output_data_land2=0.0 - allocate(input_dat(imdl_input,jmdl_input,6)) - input_dat(:,:,1)=input%alnsf - input_dat(:,:,2)=input%alnwf - input_dat(:,:,3)=input%alvsf - input_dat(:,:,4)=input%alvwf - input_dat(:,:,5)=input%facsf - input_dat(:,:,6)=input%facwf - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - allocate(ibo(6)) - no=count_land_output - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_land_output, & - 6, (/1,1,1,1,1,1/), bitmap_land_input2, input_dat, & - no, lats_land_output, lons_land_output, ibo, & - bitmap_land_output2, output_data_land2, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - output%facsf=0.0 ! non-land - output%facwf=0.0 ! non-land - if (allocated(output%sea_ice_fract) .and. & ! non-land points - allocated(output%sea_ice_depth) ) then ! surface file is ivs 200501 - output%alnsf=0.06 - output%alnwf=0.06 - output%alvsf=0.06 - output%alvwf=0.06 - else - output%alnsf=0.01 - output%alnwf=0.01 - output%alvsf=0.01 - output%alvwf=0.01 - endif - do ij = 1, count_land_output - if (bitmap_land_output2(ij,1)) then - output%alnsf(ijsav_land_output(ij))=output_data_land2(ij,1) - else - if (ialb == 1) then ! modis data - output%alnsf(ijsav_land_output(ij))=0.30 ! search failed, use default - else ! 1 degree gfs data - output%alnsf(ijsav_land_output(ij))=0.25 ! search failed, use default - endif - endif - enddo - do ij = 1, count_land_output - if (bitmap_land_output2(ij,2)) then - output%alnwf(ijsav_land_output(ij))=output_data_land2(ij,2) - else - if (ialb == 1) then ! modis - output%alnwf(ijsav_land_output(ij))=0.29 ! search failed, use default - else ! 1 degree gfs data - output%alnwf(ijsav_land_output(ij))=0.2 ! search failed, use default - endif - endif - enddo - do ij = 1, count_land_output - if (bitmap_land_output2(ij,3)) then - output%alvsf(ijsav_land_output(ij))=output_data_land2(ij,3) - else - if (ialb == 1) then ! modis - output%alvsf(ijsav_land_output(ij))=0.15 ! search failed, use default - else ! 1 degree gfs data - output%alvsf(ijsav_land_output(ij))=0.15 ! search failed, use default - endif - endif - enddo - do ij = 1, count_land_output - if (bitmap_land_output2(ij,4)) then - output%alvwf(ijsav_land_output(ij))=output_data_land2(ij,4) - else - if (ialb == 1) then ! modis - output%alvwf(ijsav_land_output(ij))=0.14 ! search failed, use default - else ! 1 degree gfs data - output%alvwf(ijsav_land_output(ij))=0.1 ! search failed, use default - end if - endif - enddo - do ij = 1, count_land_output - if (bitmap_land_output2(ij,5)) then - output%facsf(ijsav_land_output(ij))=output_data_land2(ij,5) - else - output%facsf(ijsav_land_output(ij))=0.5 ! search failed, use default - endif - enddo - do ij = 1, count_land_output - if (bitmap_land_output2(ij,6)) then - output%facwf(ijsav_land_output(ij))=output_data_land2(ij,6) - else - output%facwf(ijsav_land_output(ij))=0.5 ! search failed, use default - endif - enddo - deallocate(bitmap_land_input2, bitmap_land_output2, input_dat, output_data_land2) - end if -!----------------------------------------------------------------------- -! single snowfree albedo used by wrf/nmm -!----------------------------------------------------------------------- - elseif (allocated(output%snow_free_albedo)) then - if (allocated(snow_free_albedo_output_ext)) then - print*,"- SET SNOW FREE ALBEDO WITH EXTERNAL DATA" - output%snow_free_albedo = 0.06 ! open water - where (output%lsmask > 0.0) output%snow_free_albedo = & - snow_free_albedo_output_ext ! land - where (output%sea_ice_flag == 1) output%snow_free_albedo = 0.65 ! sea ice - else - print*,"- INTERPOLATE SNOW-FREE (BASE) ALBEDO FROM INPUT GRID." - bitmap_land_output=.false. - output_data_land=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - no=count_land_output - allocate(ibo(1)) - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_land_output, & - 1, 1, bitmap_land_input, input%snow_free_albedo, & - no, lats_land_output, lons_land_output, ibo, & - bitmap_land_output, output_data_land, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - output%snow_free_albedo = 0.06 ! open water - do ij = 1, count_land_output - if (bitmap_land_output(ij)) then - output%snow_free_albedo(ijsav_land_output(ij))=output_data_land(ij) - else - output%snow_free_albedo(ijsav_land_output(ij))=0.2 ! search failed, use default - endif - enddo - where (output%sea_ice_flag == 1) output%snow_free_albedo = 0.65 ! sea ice - endif - endif SNOWFREE_ALB - -!----------------------------------------------------------------------- -! maximum snow albedo for noah runs. -!----------------------------------------------------------------------- - if (allocated (output%mxsnow_alb)) then - if (allocated(mxsnow_alb_output_ext)) then - print*,'- SET MAX SNOW ALBEDO WITH EXTERNAL DATA.' - output%mxsnow_alb = 0.0 - where (output%lsmask>0.0) output%mxsnow_alb = mxsnow_alb_output_ext - deallocate (mxsnow_alb_output_ext) - elseif (.not. allocated(input%mxsnow_alb)) then - print*,"- ABORT. INPUT FILE DOES NOT HAVE MAX SNOW ALBEDO." - iret = 99 - return - else ! interpolate from input grid - print*,"- INTERPOLATE MAX SNOW ALBEDO FROM INPUT GRID." - bitmap_land_output=.false. - output_data_land=0.0 - kgds_output_tmp=kgds_output - kgds_output_tmp(1) = kgdso1 - no=count_land_output - allocate(ibo(1)) - call ipolates(int_opt, ipopt, kgds_input, kgds_output_tmp, & - (imdl_input*jmdl_input), count_land_output, & - 1, 1, bitmap_land_input, input%mxsnow_alb, & - no, lats_land_output, lons_land_output, ibo, bitmap_land_output, & - output_data_land, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - return - endif - deallocate(ibo) - output%mxsnow_alb= 0.0 ! non-land - do ij = 1, count_land_output - if (bitmap_land_output(ij)) then - output%mxsnow_alb(ijsav_land_output(ij))=output_data_land(ij) - else - output%mxsnow_alb(ijsav_land_output(ij))=0.7 ! search failed, use default - endif - enddo - end if - end if - -!----------------------------------------------------------------------- -! if the soil types have changed, need to rescale -! the soil moisture. -!----------------------------------------------------------------------- - if (rescale_soil_moist) then - print*,'- RESCALE SOIL MOISTURE FOR NEW SOIL TYPE.' - allocate (soilm_sav(ijmdl_output,nsoil_output)) - soilm_sav = output%soilm_tot - allocate (lsmask_output_temp(ijmdl_output)) - lsmask_output_temp = output%lsmask -! don't bother doing this at landice points as soil moisture is -! not used. - if (landice_opt == 1 .or. landice_opt == 2) then - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - lsmask_output_temp(ij) = 0.0 - endif - enddo - endif - call rescale_soilm(soilm_sav, output%soilm_tot, & - soil_type_sav, output%soil_type, & - smcdry_input, smcdry_output, & - smcwilt_input, smcwilt_output, & - smcref_input, smcref_output, & - smcmax_input, smcmax_output, & - lsmask_output_temp, output%greenfrc, & - ijmdl_output, & - nsoil_output, max_soil_types) - deallocate (soilm_sav) - deallocate (lsmask_output_temp) - end if - deallocate(soil_type_sav) - -!----------------------------------------------------------------------- -! now calculate the liquid portion of the total soil moisture. -!----------------------------------------------------------------------- - if (allocated (output%soilm_liq)) then - print*,'- CALCULATE LIQUID PORTION OF TOTAL SOIL MOISTURE.' - output%soilm_liq = 1.0 ! flag value for non-land points - allocate (lsmask_output_temp(ijmdl_output)) - lsmask_output_temp = output%lsmask -! don't bother doing this at landice points as soil moisture is -! not used. - if (landice_opt == 1 .or. landice_opt == 2) then - do ij = 1, ijmdl_output - if (output%lsmask(ij) > 0.0 .and. & - output%veg_type(ij) == veg_type_ice) then - lsmask_output_temp(ij) = 0.0 - endif - enddo - endif - call calc_liq_soilm(output%soil_type, output%soilm_tot, & - output%soil_temp, output%soilm_liq, & - lsmask_output_temp, beta_output, & - psis_output, smcmax_output, & - max_soil_types, & - ijmdl_output, nsoil_output) - deallocate (lsmask_output_temp) - end if - -!----------------------------------------------------------------------- -! for single albedo, need to calc snow effects. -!----------------------------------------------------------------------- - if (allocated (output%albedo)) then - print*,"- CALCULATE SNOW EFFECT ON ALBEDO" - output%albedo=0.06 ! open water value - allocate (snow_m(ijmdl_output)) - snow_m = output%snow_liq_equiv * 0.001 - call calc_albedo(output%lsmask, output%veg_type, ijmdl_output, & - salp_output, snup_output, max_veg_types, & - output%snow_free_albedo, output%mxsnow_alb, & - snow_m, output%albedo) - where(output%sea_ice_flag == 1) output%albedo = 0.65 ! as in eta after may 3, 05 - deallocate (snow_m) - end if - - where(output%sea_ice_flag == 1) output%lsmask = 2.0 - - deallocate (bitmap_land_output, bitmap_land_input) - deallocate (bitmap_nonland_output, bitmap_nonland_input) - deallocate (bitmap_sea_ice_input) - deallocate (ijsav_land_output, ijsav_nonland_output) - deallocate (lats_land_output, lons_land_output) - deallocate (lats_nonland_output, lons_nonland_output) - deallocate (nn_iindx_wrt_input_grid, nn_jindx_wrt_input_grid) - deallocate (output_data_land, output_data_nonland) - if (allocated (output_data_sea_ice)) deallocate(output_data_sea_ice) - if (allocated (bitmap_sea_ice_output)) deallocate(bitmap_sea_ice_output) - if (allocated (lats_sea_ice_output)) deallocate(lats_sea_ice_output) - if (allocated (lons_sea_ice_output)) deallocate(lons_sea_ice_output) - if (allocated (ijsav_sea_ice_output)) deallocate(ijsav_sea_ice_output) - - return - - end subroutine interp -!----------------------------------------------------------------------- - subroutine setup(kgds_input, input, imdl_input, jmdl_input, & - imo, iret) -!$$$ subprogram documentation block -! -! subprogram: setup perform various setup tasks -! prgmmr: gayno org: w/np2 date: 2005-10-19 -! -! abstract: read configuration namelist, calculate model resolution, -! calculate some soil parameters. -! -! program history log: -! 2005-10-19 gayno - initial version -! -! usage: 'call setup' with the following arguments -! input arguments (input/output denotes input/output grid): -! kgds_input grib grid description section of input grid -! input surface data on input grid -! i/jmdl_input i/j dimensions of input grid -! output arguments -! iret error status, non-zero means an error occurred -! other outputs: -! mdl_res_input/output resolution (in degrees) of model -! input/output grid -! smcref_input/output onset of soil moisture stress, input/output -! grid values -! smcdry_input/output air dry soil moisture limit, input/output -! grid values -! smcwilt_input/output plant wilting point, input/output grid -! values -! soil_type_ice soil type for land ice points -! veg_type_ice veg type for land ice (output grid) -! veg_type_ice_input veg type for land ice (input grid) -! -! namelists: -! options: -! climo_fields_opt option for determining climo fields on -! output grid. 1 ONLY!! -! 1-interpolate all from input grid -! 2-interpolate veg, soil, slope type -! from input grid. others from -! cycle program. -! 3-all from cycle program. -! landice_opt 1-no landice input grid -> landice output grid -! 2-landice input grid -> landice output grid -! 3-no landice input grid -> no landice output grid -! 4-landice input grid -> no landice output grid -! 5-landice on output grid regardless of -! whether input grid has landice or not. -! soil_parameters (input/output grid values): -! soil_src_input/output source of soil type database (ex: zobler) -! smclow_input/output soil moisture scalar multiplier -! smchigh_input/output soil moisture scalar multiplier -! smcmax_input/output maximum soil moisture content -! beta_input/output soil 'b' parameter -! psis_input/output saturated soil potential -! satdk_input/output saturated soil hydraulic conductivity -! -! veg_parameters: -! veg_src_input/output source of veg type database (ex: usgs) -! salp_output plant factor in albedo calculation -! snup_output plant factor in albedo calculation -! -! input files: -! unit 81 configuration namelists -! -! subprograms called: -! calc_soil_parms - calculate soil parameters -! -! attributes: -! langauge: fortran 90 -! -!$$$ - use soil_utils, only : calc_soil_parms - - implicit none - - character*10 :: soil_src_input, soil_src_output, & - veg_src_input, veg_src_output - - integer, intent(in) :: imdl_input, jmdl_input - integer :: i,j, istat - integer, intent(in) :: kgds_input(200), imo - integer, intent(inout) :: iret - - type(sfc2d) :: input - - namelist /soil_parameters/ soil_src_input, & - smclow_input, & - smchigh_input, & - smcmax_input, & - beta_input, & - psis_input, & - satdk_input, & - soil_src_output, & - smclow_output, & - smchigh_output, & - smcmax_output, & - beta_output, & - psis_output, & - satdk_output - - namelist /veg_parameters/ veg_src_input, & - veg_src_output, & - salp_output, & - snup_output - - namelist /options/ climo_fields_opt, & - landice_opt - - iret=0 - print*,"- READ CONFIGURATION NAMELIST." - open(81, iostat=istat, err=900) - read(81, nml=soil_parameters, iostat=istat, err=910) - read(81, nml=veg_parameters, iostat=istat, err=910) - read(81, nml=options, iostat=istat, err=910) - close(81) - - mdl_res_input = 360.0 / float(kgds_input(2)) - print*,"- RESOLUTION OF INPUT GRID IN DEGREES IS: ", mdl_res_input - - mdl_res_output = 360.0 / (float(imo) * 4.0) - print*,"- RESOLUTION OF OUTPUT GRID IN DEGREES IS: ", mdl_res_output - -!----------------------------------------------------------------------- -! the flag values of soil and veg type for landice depend on -! what raw databases were used. -!----------------------------------------------------------------------- - - select case (trim(soil_src_output)) - case("zobler") - soil_type_ice=9 - case("statsgo") - soil_type_ice=16 - case default - print*,'- BAD CHOICE OF OUTPUT GRID SOIL SOURCE ',trim(soil_src_output) - iret=1 - return - end select - - select case (trim(veg_src_output)) - case("usgs") - veg_type_ice=24 - case("sib") - veg_type_ice=13 - case("igbp") - veg_type_ice=15 - case default - print*,'- BAD CHOICE OF OUTPUT GRID VEG SOURCE ',trim(veg_src_output) - iret=2 - return - end select - - select case (trim(veg_src_input)) - case("usgs") - veg_type_ice_input=24 - case("sib") - veg_type_ice_input=13 - case("igbp") - veg_type_ice_input=15 - case default - print*,'- BAD CHOICE OF INPUT GRID VEG SOURCE ',trim(veg_src_input) - iret=3 - return - end select - -!----------------------------------------------------------------------- -! parameters for soil type on input/output grids. -!----------------------------------------------------------------------- - - print*,'- CALCULATE SOIL PARAMETERS' - call calc_soil_parms(smclow_input, smchigh_input, & - smcmax_input, beta_input, & - satdk_input, psis_input, max_soil_types, & - smcref_input, smcwilt_input, smcdry_input) - - call calc_soil_parms(smclow_output, smchigh_output, & - smcmax_output, beta_output, & - satdk_output, psis_output, max_soil_types, & - smcref_output, smcwilt_output, smcdry_output) - -!----------------------------------------------------------------------- -! certain landice options are only valid if the input grid has -! or does not have landice. check for the soil moisture flag value -! of 1.0 at land ice points. -!----------------------------------------------------------------------- - - if (landice_opt == 1 .or. landice_opt == 3) then - do j = 1, jmdl_input - do i = 1, imdl_input - if (input%lsmask(i,j) > 0.0 .and. input%soilm_tot(i,j,1) > 0.99) then - print*,"- LANDICE OPTION OF ", landice_opt, " IS NOT VALID WHEN" - print*,"- INPUT DATA HAS LANDICE." - iret=4 - return - end if - enddo - enddo - elseif (landice_opt == 2 .or. landice_opt == 4) then - do j = 1, jmdl_input - do i = 1, imdl_input - if (input%lsmask(i,j) > 0.0 .and. input%soilm_tot(i,j,1) > 0.99) then - return - end if - enddo - enddo - print*,"- LANDICE OPTION OF ", landice_opt, " IS NOT VALID WHEN" - print*,"- INPUT DATA DOES NOT HAVE LANDICE." - iret=5 - return - elseif (landice_opt == 5) then - print*,"- WILL FORCE LANDICE INITIALIZATION." - landice_opt = 1 ! for rest of module, 1 and 5 are equivalent. - end if - - return - -900 print*,"- ERROR OPENING CONFIG NAMELIST. ISTAT IS ", istat - iret=6 - return - -910 print*,"- ERROR READING CONFIG NAMELIST. ISTAT IS ", istat - iret=7 - return - - end subroutine setup -!----------------------------------------------------------------------- - subroutine get_ext_climo_global(ijmdl_output, lsmask_output, orog_output, & - orog_uf, use_ufo, nst_anl, output, & - hour, month, day, & - year, fhour, ialb, isot, ivegsrc) -!$$$ subprogram documentation block -! -! subprogram: get_ext_climo_global get climo fields on global grid -! prgmmr: gayno org: w/np2 date: 2005-10-19 -! -! abstract: get climo fields, such as soil type and albedo on the -! output grid by calling the surface cycle code. according -! to the option selected by the user, the climo fields on the -! output grid will come from either surface cycle or be -! interpolated from the input grid. if a field is to be -! interpolated from the input grid, the corresponding array -! from surface cycle will be deallocated. -! note!! surface cycle is only called to get the climo -! fields on the grid. NOT to update the SST, snow or sea ice. -! -! program history log: -! 2005-10-19 gayno - initial version -! -! usage: call subroutine get_ext_climo_global & -! (ijmdl_output, & -! lsmask_output, orog_output, orog_uf, & -! use_ufo, nst_anl, output, & -! hour, month, day, & -! year, fhour, ialb, isot, ivegsrc) -! input arguments: -! ijmdl_output number of grid points, output grid -! lsmask_output landmask (0-nonland, 1-land) output grid -! orog_output orography of output grid -! orog_uf unfiltered orography of output grid -! use_ufo when 'true' use unfiltered orography -! nst_anl when 'true' use nsst model -! hour/month/day/year YYYYMMDDHH of cycle -! fhour forecast hour with respect to cycle time -! ialb when '1', use bosu albedo. when '0', -! use old albedo -! isot when '1', use new statsgo soil type. -! when '0', use zobler soil type -! ivegsrc when '1', use new igbp vegetation type. -! when '2', use sib vegetation type -! outputs: -! substrate_temp_output_ext substrate temperature from sfccycle -! soil_type_output_ext soil type from sfccycle -! veg_type_output_ext vegetation type from sfccycle -! slope_type_output_ext slope type from sfccycle -! mxsnow_alb_output_ext max snow albedo from sfccycle -! z0_output_ext roughness from sfccycle -! greenfrc_output_ext greenness fraction from sfccycle -! greenfrc_min_output_ext min greenness fraction from sfccycle -! greenfrc_max_output_ext max greenness fraction from sfccycle -! facsf_output_ext fraction, strong cosz dependence from sfccycle -! facwf_output_ext fraction, weak cosz dependence from sfccycle -! -! - old radiation treatment (ialb = 0) -! alnsf_output_ext near ir albedo, strong cosz depend. from sfccycle -! alnwf_output_ext near ir albedo, weak cosz depend. from sfccycle -! alvsf_output_ext vis albedo, strong cosz depend. from sfccycle -! alvwf_output_ext vis albedo, weak cosz depend. from sfccycle -! -! - new radiation treatment (ialb = 1) -! alnsf_output_ext near ir black sky albedo -! alnwf_output_ext near ir white sky albedo -! alvsf_output_ext visible black sky albedo -! alvwf_output_ext visible white sky albedo -! -! subprograms called: -! sfccycle - calculate soil parameters -! -! attributes: -! langauge: fortran 90 -! -!$$$ - use machine, only : kind_io8 - - implicit none - - integer, intent(in) :: hour, month, day, year, ialb - integer, intent(in) :: ijmdl_output, isot, ivegsrc - integer :: lsoil - integer, parameter :: lugb = 51 - integer, parameter :: sz_nml = 1 - integer :: nlunit - - real, intent(in) :: fhour - real, intent(in) :: lsmask_output(ijmdl_output) - real, intent(in) :: orog_output(ijmdl_output) - real, intent(in) :: orog_uf (ijmdl_output) - logical,intent(in) :: use_ufo, nst_anl - - character(len=4) :: input_nml_file(sz_nml) - - real (kind=kind_io8), allocatable :: sig1t(:), & - slmask(:), orog(:), sihfcs(:), sicfcs(:), sitfcs(:),& - swdfcs(:), slcfcs(:,:), vmnfcs(:), vmxfcs(:), & - slpfcs(:), absfcs(:), TSFFCS(:), SNOFCS(:), ZORFCS(:), & - ALBFCS(:,:), TG3FCS(:), CNPFCS(:), SMCFCS(:,:), STCFCS(:,:), & - slifcs(:), AISFCS(:), F10M(:), vegfcs(:), vetfcs(:), & - sotfcs(:), ALFFCS(:,:), CVFCS(:), CVBFCS(:), CVTFCS(:), & - lats(:), lons(:) - - real(kind=kind_io8) :: deltsfc, fh - - type(sfc1d), intent(in) :: output - - input_nml_file="NULL" - lsoil = 4 - deltsfc = 0.0 - fh = fhour - - allocate (sig1t(ijmdl_output), slmask(ijmdl_output), & - orog(ijmdl_output), sihfcs(ijmdl_output), & - sicfcs(ijmdl_output), swdfcs(ijmdl_output), & - sitfcs(ijmdl_output), & - slcfcs(ijmdl_output,lsoil), vmnfcs(ijmdl_output), & - vmxfcs(ijmdl_output), slpfcs(ijmdl_output), & - absfcs(ijmdl_output), TSFFCS(ijmdl_output), & - SNOFCS(ijmdl_output), zorfcs(ijmdl_output), & - ALBFCS(ijmdl_output,4), tg3fcs(ijmdl_output), & - CNPFCS(ijmdl_output), SMCFCS(ijmdl_output,lsoil), & - STCFCS(ijmdl_output,lsoil), slifcs(ijmdl_output), & - AISFCS(ijmdl_output), F10M(ijmdl_output), & - vegfcs(ijmdl_output), vetfcs(ijmdl_output), & - sotfcs(ijmdl_output), ALFFCS(ijmdl_output,2), & - CVFCS(ijmdl_output), CVBFCS(ijmdl_output), & - CVTFCS(ijmdl_output), lats(ijmdl_output), & - lons(ijmdl_output)) - - slmask = lsmask_output - - orog = orog_output - -!orog = orog_output - orog_uf - - nlunit = 35 - - sig1t = 0.0; sihfcs = 0.0; sicfcs = 0.0; swdfcs = 0.0 - slcfcs = 0.0; vmnfcs = 0.0; vmxfcs = 0.0; slpfcs = 0.0 - absfcs = 0.0; tsffcs = 0.0; snofcs = 0.0; zorfcs = 0.0 - albfcs = 0.0; tg3fcs = 0.0; cnpfcs = 0.0; smcfcs = 0.0 - stcfcs = 0.0; slifcs = 0.0; aisfcs = 0.0; f10m = 0.0 - vegfcs = 0.0; vetfcs = 0.0; sotfcs = 0.0; alffcs = 0.0 - cvfcs = 0.0; cvbfcs = 0.0; cvtfcs = 0.0; sitfcs = 0.0 - lats=output%lats; lons=output%lons - call SFCCYCLE(LUGB,ijmdl_output,LSOIL,SIG1T,DELTSFC, & - year,month,day,hour,FH, & - lats, lons, SLMASK,OROG,orog_uf,use_ufo,nst_anl, & - SIHFCS,SICFCS,SITFCS, & - SWDFCS,SLCFCS, & - VMNFCS, VMXFCS, SLPFCS, ABSFCS, & - TSFFCS,SNOFCS,ZORFCS,ALBFCS,TG3FCS, & - CNPFCS,SMCFCS,STCFCS,slifcs,AISFCS,F10M, & - VEGFCS, VETFCS, SOTFCS, ALFFCS, & - CVFCS,CVBFCS,CVTFCS,0,NLUNIT, & - SZ_NML, INPUT_NML_FILE, IALB,ISOT,IVEGSRC) -!----------------------------------------------------------------------- -! if an array is deallocated, the rest of code knows to interpolate -! that field from the input grid. -! -! always use tbot from surface cycle as it is imitmately tied to the -! output terrain. -!----------------------------------------------------------------------- - - allocate (substrate_temp_output_ext(ijmdl_output)) - substrate_temp_output_ext = tg3fcs - - if (climo_fields_opt == 3) then - allocate (soil_type_output_ext(ijmdl_output)) - soil_type_output_ext = nint(sotfcs) - allocate (veg_type_output_ext(ijmdl_output)) - veg_type_output_ext = nint(vetfcs) - allocate (slope_type_output_ext(ijmdl_output)) - slope_type_output_ext = nint(slpfcs) - end if - - if (climo_fields_opt == 2 .or. climo_fields_opt == 3) then - allocate (mxsnow_alb_output_ext(ijmdl_output)) - mxsnow_alb_output_ext = absfcs - allocate (z0_output_ext(ijmdl_output)) - z0_output_ext = zorfcs - allocate (greenfrc_output_ext(ijmdl_output)) - greenfrc_output_ext = vegfcs - allocate (greenfrc_min_output_ext(ijmdl_output)) - greenfrc_min_output_ext = vmnfcs - allocate (greenfrc_max_output_ext(ijmdl_output)) - greenfrc_max_output_ext = vmxfcs - allocate (alnsf_output_ext(ijmdl_output)) - alnsf_output_ext = albfcs(:,3) - allocate (alnwf_output_ext(ijmdl_output)) - alnwf_output_ext = albfcs(:,4) - allocate (alvsf_output_ext(ijmdl_output)) - alvsf_output_ext = albfcs(:,1) - allocate (alvwf_output_ext(ijmdl_output)) - alvwf_output_ext = albfcs(:,2) - allocate (facsf_output_ext(ijmdl_output)) - facsf_output_ext = alffcs(:,1) - allocate (facwf_output_ext(ijmdl_output)) - facwf_output_ext = alffcs(:,2) - end if - - deallocate (sig1t, slmask, orog, sihfcs, sicfcs, swdfcs, & - slcfcs, vmnfcs, vmxfcs, slpfcs, absfcs, sitfcs, & - TSFFCS, SNOFCS, zorfcs, ALBFCS, tg3fcs, & - CNPFCS, SMCFCS, STCFCS, slifcs, AISFCS, F10M,& - vegfcs, vetfcs, sotfcs, ALFFCS, CVFCS, CVBFCS, CVTFCS, & - lats, lons) - - return - end subroutine get_ext_climo_global -!----------------------------------------------------------------------- - subroutine get_ext_climo_nmm(imdl_output, jmdl_output, curr_hour, & - curr_mon, curr_day, curr_year, iret) -!$$$ subprogram documentation block -! -! subprogram: get_ext_climo_nmm get climo fields on nmm grid -! prgmmr: gayno org: w/np2 date: 2006-04-14 -! -! abstract: get climo fields, such as soil type and albedo on the -! output grid by reading them from grib files. -! user selects what fields to read in by setting the -! namelist entries for the path/name of the grib file. -! if a field is NOT read in from the grib file, it -! will be interpolated from the input grid. -! -! program history log: -! 2006-04-14 gayno - initial version -! -! usage: 'call get_ext_climo_global' with the following arguments -! input arguments: -! i/jmdl_output number of grid points, output grid -! in the i/j direction -! curr_hour/mon/day/year current time (used to interpolate -! monthly datasets) -! outputs: -! soil_type_output_ext soil type -! veg_type_output_ext vegetation type -! slope_type_output_ext slope type -! mxsnow_alb_output_ext max snow albedo -! z0_output_ext roughness -! greenfrc_output_ext greenness fraction -! snow_free_output_ext snowfree albedo -! -! namelists: -! optional_output_fields: (path/name of climo grib files) -! snow_free_albedo_output_file -! greenfrc_output_file -! mxsnow_alb_output_file -! slope_type_output_file -! soil_type_output_file -! veg_type_output_file -! z0_output_file -! -! input files: -! unit 81 configuration namelists -! -! subprograms called: -! read_grib_data - read single grib field -! degrib_climo - degrib multiple time period grib file -! time_interp - time interpolate a field to current date -! inventory - inventory multiple time period grib file -! -! attributes: -! langauge: fortran 90 -! -!$$$ - - use read_write_utils, only : read_grib_data, & - date, & - degrib_climo, & - time_interp, & - inventory - - implicit none - - namelist /optional_output_fields/ snow_free_albedo_output_file, & - greenfrc_output_file, & - mxsnow_alb_output_file, & - slope_type_output_file, & - soil_type_output_file, & - veg_type_output_file, & - z0_output_file - - character*150 :: soil_type_output_file - character*150 :: veg_type_output_file - character*150 :: slope_type_output_file - character*150 :: mxsnow_alb_output_file - character*150 :: greenfrc_output_file - character*150 :: snow_free_albedo_output_file - character*150 :: z0_output_file - - integer, intent(in) :: imdl_output, jmdl_output, & - curr_hour, curr_day, & - curr_year, curr_mon - - integer :: iret, param_num, tot_num_recs, & - curr_minute, ijmdl_output, istat - - real, allocatable :: dummy(:) - real, allocatable :: data_climo(:,:,:) - - type (date), allocatable :: dates(:) - - iret = 0 - - print*,"- READ CONFIGURATION NAMELIST." - - open(81, iostat=istat, err=900) - read(81, nml=optional_output_fields, iostat=istat, err=910) - close(81) - - ijmdl_output = imdl_output * jmdl_output - -!----------------------------------------------------------------------- -! if user chooses, read soil type, veg type, slope type and -! max snow albedo. -!----------------------------------------------------------------------- - - if (len_trim(soil_type_output_file) > 0) then - print*,"- DEGRIB SOIL TYPE ON OUTPUT GRID" - allocate (dummy(ijmdl_output)) - allocate (soil_type_output_ext(ijmdl_output)) - call read_grib_data(soil_type_output_file, 224, dummy, & - ijmdl_output, iret) - if (iret /= 0) then - print*,'- ERROR DEGRIBBING OUTPUT GRID SOIL TYPE' - return - end if - soil_type_output_ext = nint(dummy) - deallocate (dummy) - end if - - if (len_trim(veg_type_output_file) > 0) then - print*,"- DEGRIB VEG TYPE ON OUTPUT GRID" - allocate (dummy(ijmdl_output)) - allocate (veg_type_output_ext(ijmdl_output)) - call read_grib_data(veg_type_output_file, 225, dummy, & - ijmdl_output, iret) - if (iret /= 0) then - print*,'- ERROR DEGRIBBING OUTPUT GRID VEG TYPE' - return - end if - veg_type_output_ext = nint(dummy) - deallocate (dummy) - end if - - if (len_trim(slope_type_output_file) > 0) then - print*,"- DEGRIB SLOPE TYPE ON OUTPUT GRID" - allocate (dummy(ijmdl_output)) - allocate (slope_type_output_ext(ijmdl_output)) - call read_grib_data(slope_type_output_file, 222, dummy, & - ijmdl_output, iret) - if (iret /= 0) then - print*,'- ERROR DEGRIBBING OUTPUT GRID SLOPE TYPE' - return - end if - slope_type_output_ext = nint(dummy) - deallocate (dummy) - end if - - if (len_trim(mxsnow_alb_output_file) > 0) then - print*,"- DEGRIB MAX SNOW ALBEDO ON OUTPUT GRID" - allocate (mxsnow_alb_output_ext(ijmdl_output)) - call read_grib_data(mxsnow_alb_output_file, 159, & - mxsnow_alb_output_ext, ijmdl_output, iret) - if (iret /= 0) then - print*,'- ERROR DEGRIBBING OUTPUT GRID MAX SNOW ALBEDO' - return - end if -! grib standard is %, but model expects decimal. - mxsnow_alb_output_ext = mxsnow_alb_output_ext * 0.01 - end if - -!----------------------------------------------------------------------- -! greenness fraction. -!----------------------------------------------------------------------- - - if (len_trim(greenfrc_output_file) > 0) then - print*,"- DEGRIB GREENNESS ON OUTPUT GRID" - param_num = 87 - call inventory(greenfrc_output_file, param_num, tot_num_recs, iret, 0) - if (iret /= 0) then - print*,'- ERROR DEGRIBBING OUTPUT GRID GREENNESS FRACTION.' - return - end if - allocate (dates(tot_num_recs)) - allocate (data_climo(imdl_output,jmdl_output,tot_num_recs)) - call degrib_climo(data_climo, dates, ijmdl_output, & - param_num, greenfrc_output_file, & - tot_num_recs, iret, 0) - if (iret /= 0) then - print*,'- ERROR DEGRIBBING OUTPUT GRID GREENNESS FRACTION.' - return - end if - allocate (greenfrc_output_ext(ijmdl_output)) - greenfrc_output_ext = 0.0 -! need to adjust this for fcst hour???? - curr_minute = 0 - call time_interp(data_climo, dates, tot_num_recs, & - ijmdl_output, curr_year, curr_mon, curr_day, & - curr_hour, curr_minute, greenfrc_output_ext) -! grib standard is %, but model expects decimal. - greenfrc_output_ext = greenfrc_output_ext * 0.01 - deallocate (dates) - deallocate (data_climo) - end if - -!----------------------------------------------------------------------- -! albedo (snow free) -!----------------------------------------------------------------------- - - if (len_trim(snow_free_albedo_output_file) > 0) then - print*,"- DEGRIB SNOW FREE ALBEDO ON OUTPUT GRID" - param_num = 170 - call inventory(snow_free_albedo_output_file, param_num, & - tot_num_recs, iret, 0) - if (iret /= 0) then - print*,'- ERROR DEGRIBBING OUTPUT GRID SNOW-FREE ALBEDO' - return - end if - allocate (dates(tot_num_recs)) - allocate (data_climo(imdl_output,jmdl_output,tot_num_recs)) - call degrib_climo(data_climo, dates, ijmdl_output, & - param_num, snow_free_albedo_output_file, & - tot_num_recs, iret, 0) - if (iret /= 0) then - print*,'- ERROR DEGRIBBING OUTPUT GRID SNOW-FREE ALBEDO' - return - end if - allocate (snow_free_albedo_output_ext(ijmdl_output)) - snow_free_albedo_output_ext = 0.0 -! need to adjust this for fcst hour???? - curr_minute = 0 - call time_interp(data_climo, dates, tot_num_recs, & - ijmdl_output, curr_year, curr_mon, curr_day, & - curr_hour, curr_minute, snow_free_albedo_output_ext) -! grib standard is %, but model uses decimal. - snow_free_albedo_output_ext = snow_free_albedo_output_ext * 0.01 - deallocate (dates) - deallocate (data_climo) - end if - -!----------------------------------------------------------------------- -! roughness length. -!----------------------------------------------------------------------- - - if (len_trim(z0_output_file) > 0) then - print*,"- DEGRIB ROUGHNESS ON OUTPUT GRID" - param_num = 83 - call inventory(z0_output_file, param_num, tot_num_recs, iret, 0) - if (iret /= 0) then - print*,'- ERROR DEGRIBBING OUTPUT GRID ROUGHNESS LENGTH' - return - end if - allocate (dates(tot_num_recs)) - allocate (data_climo(imdl_output,jmdl_output,tot_num_recs)) - call degrib_climo(data_climo, dates, ijmdl_output, & - param_num, z0_output_file, tot_num_recs, iret, 0) - if (iret /= 0) then - print*,'- ERROR DEGRIBBING OUTPUT GRID ROUGHNESS LENGTH' - return - end if - allocate (z0_output_ext(ijmdl_output)) - z0_output_ext = -1.0 -!nmm does not use a time varying field. no need to time interp. - if (tot_num_recs > 1) then - curr_minute = 0 - call time_interp(data_climo, dates, tot_num_recs, & - ijmdl_output, curr_year, curr_mon, curr_day, & - curr_hour, curr_minute, z0_output_ext) - else - z0_output_ext = reshape(data_climo(:,:,1),(/ijmdl_output/)) - end if -!----------------------------------------------------------------------- -! interp code expects z0 in cm, raw data in meters. -!----------------------------------------------------------------------- - z0_output_ext = z0_output_ext * 100.0 - deallocate (data_climo) - deallocate (dates) - end if - - return - -900 print*,"- ERROR OPENING CONFIG NAMELIST. ISTAT IS ", istat - iret = 11 - return - -910 print*,"- ERROR READING CONFIG NAMELIST. ISTAT IS ", istat - iret = 12 - return - - end subroutine get_ext_climo_nmm - -!----------------------------------------------------------------------- - subroutine surface_chgres_ax2d(dum) -!$$$ subprogram documentation block -! -! subprogram: surface_chgres_ax2d free up memory -! prgmmr: gayno org: w/np2 date: 2005-10-19 -! -! abstract: deallocate a sfc2d data structure -! -! program history log: -! 2005-10-19 gayno - initial version -! -! usage: call surface_chgres_ax2d(dum) -! input arguments: -! dum data structure containing several surface fields -! -! attributes: -! langauge: fortran 90 -! -!$$$ - type (sfc2d), intent(inout) :: dum - - if (allocated (dum%alnsf)) deallocate (dum%alnsf) - if (allocated (dum%alnwf)) deallocate (dum%alnwf) - if (allocated (dum%alvsf)) deallocate (dum%alvsf) - if (allocated (dum%alvwf)) deallocate (dum%alvwf) - if (allocated (dum%canopy_mc)) deallocate (dum%canopy_mc) - if (allocated (dum%facsf)) deallocate (dum%facsf) - if (allocated (dum%facwf)) deallocate (dum%facwf) - if (allocated (dum%sea_ice_fract)) deallocate (dum%sea_ice_fract) - if (allocated (dum%greenfrc)) deallocate (dum%greenfrc) - if (allocated (dum%greenfrc_max)) deallocate (dum%greenfrc_max) - if (allocated (dum%greenfrc_min)) deallocate (dum%greenfrc_min) - if (allocated (dum%sea_ice_depth)) deallocate (dum%sea_ice_depth) - if (allocated (dum%lsmask)) deallocate (dum%lsmask) - if (allocated (dum%mxsnow_alb)) deallocate (dum%mxsnow_alb) - if (allocated (dum%orog)) deallocate (dum%orog) - if (allocated (dum%sea_ice_temp)) deallocate (dum%sea_ice_temp) - if (allocated (dum%skin_temp)) deallocate (dum%skin_temp) - if (allocated (dum%snow_depth)) deallocate (dum%snow_depth) - if (allocated (dum%snow_liq_equiv)) deallocate (dum%snow_liq_equiv) - if (allocated (dum%snow_free_albedo))deallocate (dum%snow_free_albedo) - if (allocated (dum%soilm_liq)) deallocate (dum%soilm_liq) - if (allocated (dum%soilm_tot)) deallocate (dum%soilm_tot) - if (allocated (dum%soil_temp)) deallocate (dum%soil_temp) - if (allocated (dum%z0)) deallocate (dum%z0) - if (allocated (dum%sea_ice_flag)) deallocate (dum%sea_ice_flag) - if (allocated (dum%slope_type)) deallocate (dum%slope_type) - if (allocated (dum%soil_type)) deallocate (dum%soil_type) - if (allocated (dum%veg_type)) deallocate (dum%veg_type) - - end subroutine surface_chgres_ax2d -!----------------------------------------------------------------------- - subroutine surface_chgres_ax1d(dum) -!$$$ subprogram documentation block -! -! subprogram: surface_chgres_ax1d free up memory -! prgmmr: gayno org: w/np2 date: 2005-10-19 -! -! abstract: deallocate a sfc1d data structure -! -! program history log: -! 2005-10-19 gayno - initial version -! -! usage: call surface_chgres_ax1d(dum) -! input arguments: -! dum data structure containing several surface fields -! -! attributes: -! langauge: fortran 90 -! -!$$$ - type (sfc1d), intent(inout) :: dum - - if (allocated (dum%albedo)) deallocate (dum%albedo) - if (allocated (dum%alnsf)) deallocate (dum%alnsf) - if (allocated (dum%alnwf)) deallocate (dum%alnwf) - if (allocated (dum%alvsf)) deallocate (dum%alvsf) - if (allocated (dum%alvwf)) deallocate (dum%alvwf) - if (allocated (dum%canopy_mc)) deallocate (dum%canopy_mc) - if (allocated (dum%facsf)) deallocate (dum%facsf) - if (allocated (dum%facwf)) deallocate (dum%facwf) - if (allocated (dum%sea_ice_fract)) deallocate (dum%sea_ice_fract) - if (allocated (dum%greenfrc)) deallocate (dum%greenfrc) - if (allocated (dum%greenfrc_max)) deallocate (dum%greenfrc_max) - if (allocated (dum%greenfrc_min)) deallocate (dum%greenfrc_min) - if (allocated (dum%sea_ice_depth)) deallocate (dum%sea_ice_depth) - if (allocated (dum%lats)) deallocate (dum%lats) - if (allocated (dum%lons)) deallocate (dum%lons) - if (allocated (dum%lsmask)) deallocate (dum%lsmask) - if (allocated (dum%mxsnow_alb)) deallocate (dum%mxsnow_alb) - if (allocated (dum%orog)) deallocate (dum%orog) - if (allocated (dum%sea_ice_temp)) deallocate (dum%sea_ice_temp) - if (allocated (dum%skin_temp)) deallocate (dum%skin_temp) - if (allocated (dum%snow_depth)) deallocate (dum%snow_depth) - if (allocated (dum%snow_free_albedo))deallocate (dum%snow_free_albedo) - if (allocated (dum%snow_liq_equiv)) deallocate (dum%snow_liq_equiv) - if (allocated (dum%soilm_liq)) deallocate (dum%soilm_liq) - if (allocated (dum%soilm_tot)) deallocate (dum%soilm_tot) - if (allocated (dum%soil_temp)) deallocate (dum%soil_temp) - if (allocated (dum%substrate_temp)) deallocate (dum%substrate_temp) - if (allocated (dum%z0)) deallocate (dum%z0) - if (allocated (dum%sea_ice_flag)) deallocate (dum%sea_ice_flag) - if (allocated (dum%slope_type)) deallocate (dum%slope_type) - if (allocated (dum%soil_type)) deallocate (dum%soil_type) - if (allocated (dum%veg_type)) deallocate (dum%veg_type) - - end subroutine surface_chgres_ax1d - - end module surface_chgres diff --git a/sorc/global_cycle.fd/Makefile b/sorc/global_cycle.fd/Makefile deleted file mode 100755 index 028d2744fd..0000000000 --- a/sorc/global_cycle.fd/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -SHELL= /bin/ksh -FC =$(FCMP) -LIBS =$(LIBSM) -OBJS =num_parthds.o machine.o cycle.o sfcsub.o read_write_data.o - -CMD =global_cycle -$(CMD): $(OBJS) - ${FC} ${DEBUG} $(FFLAGS) $(LDFLG) $(OBJS) $(LIBS) -o $(CMD) - -num_parthds.o: num_parthds.f90 - $(FC) $(FFLAGS) $(OMPFLAG) -c num_parthds.f90 - -machine.o: machine.f90 - ${FC} $(FFLAGS) -c machine.f90 - -read_write_data.o: read_write_data.f90 - ${FC} $(FFLAGS) -c read_write_data.f90 - -sfcsub.o: machine.o sfcsub.F - $(FC) $(FFLAGS) $(OMPFLAG) -c sfcsub.F - -cycle.o: read_write_data.o cycle.f90 - $(FC) $(FFLAGS) -c cycle.f90 - -install: - -cp -p $(CMD) ../../exec/. -clean: - -rm -f $(OBJS) *.mod $(CMD) diff --git a/sorc/global_cycle.fd/cycle.f90 b/sorc/global_cycle.fd/cycle.f90 deleted file mode 100755 index 95df7b5ac4..0000000000 --- a/sorc/global_cycle.fd/cycle.f90 +++ /dev/null @@ -1,1204 +0,0 @@ - PROGRAM SFC_DRV - -!---------------------------------------------------------------------- -! -! Stand alone surface/NSST cycle driver for the cubed-sphere grid. -! Each cubed-sphere tile runs independently on its own mpi task. -! The surface update component runs with threads. The NSST -! update component in not threaded. -! -! The program can be run in the following ways: - -! 1) Update the surface fields only. NSST fields are not -! processed. Invoke this option by setting namelist -! variable DONST=.false. Output files only contain -! surface fields. -! -! 2) Update the surface fields and NSST TREF field using -! GSI increments on the Gaussian grid. All other NSST -! fields are cycled. Invoke this option by setting -! namelist variable DONST=.true. and GSI_FILE to -! the name of the GSI increment file. -! -! 3) Update surface and run with NSST, but postpone the TREF update. -! Here all NSST fields are cycled. But the NSST IFD field is -! used to flag points that flipped from ice to open water. -! To invoke this option, set DONST=.true. and GSI_FILE="NULL". -! -! 4) Perform the NSST TREF adjustment only. Surface fields are -! only cycled. To run with this option, set DONST=.true., -! GSI_FILE to the GSI increment file, and ADJT_NST_ONLY=.true. -! The input cubed-sphere restart files must be those from -! option (3). -! -! NOTE: running (3) then (4) is equivalent to running (2). -! -! INPUT FILES: -! ----------- -! fngrid.$NNN The cubed-sphere grid file (contains -! grid point latitude and longitdue). -! fnorog.$NNN The cubed-sphere orography file (contains -! land mask and orography). -! fnbgsi.$NNN The cubed-sphere input sfc/nsst restart -! file. -! $GSI_FILE Gaussian GSI file which contains NSST -! TREF increments -! -! OUTPUT FILES: -! ------------ -! fnbgso.$NNN The updated sfc/nsst restart file. -! -! NOTE: $NNN corresponds to (mpi rank + 1) - -! NAMELIST VARIABLE DEFINITIONS: -! -! IDIM,JDIM i/j dimension of a cubed-sphere tile. -! LUGB Unit number used in the sfccycle subprogram -! to read input datasets. -! LSOIL Number of soil layers. -! IY,IM,ID,IH Year, month, day, and hour of initial state. -! FH Forecast hour -! DELTSFC Cycling frequency in hours. -! IALB Use modis albedo when '1'. Use brigleb when '0'. -! USE_UFO Adjust sst and soil substrate temperature for -! differences between the filtered and unfiltered -! terrain. -! DONST Process NSST records. -! ADJT_NST_ONLY When true, only do the NSST update (don't call -! sfcsub component). -! ISOT Use statsgo soil type when '1'. Use zobler when '0'. -! IVEGSRC Use igbp veg type when '1'. Use sib when '2'. -! ZSEA1/2_MM When running with NSST model, this is the lower/ -! upper bound of depth of sea temperature. In -! whole mm. -! MAX_TASKS Normally, program should be run with a number of mpi -! tasks equal to the number of cubed-sphere tiles -! being processed. However, the current parallel -! scripts may over-specify the number of tasks. -! Set this variable to not process any ranks > -! (max_tasks-1). -! GSI_FILE path/name of the gaussian GSI file which contains NSST -! TREF increments. -! -! 2005-02-03: Iredell for global_analysis -! 2014-11-30: xuli add nst_anl -! 2015-05-26: Hang Lei Added NEMSIO read/write function in the code -! 2017-08-08: Gayno Modify to work on cubed-sphere grid. -! Added processing of NSST and TREF update. -! Added mpi directives. -!---------------------------------------------------------------------- - - IMPLICIT NONE -! - include 'mpif.h' - - CHARACTER(LEN=3) :: DONST - INTEGER :: IDIM, JDIM, LSOIL, LUGB, IY, IM, ID, IH, IALB - INTEGER :: ISOT, IVEGSRC, LENSFC, ZSEA1_MM, ZSEA2_MM, IERR - INTEGER :: NPROCS, MYRANK, NUM_THREADS, NUM_PARTHDS, MAX_TASKS - REAL :: FH, DELTSFC, ZSEA1, ZSEA2 - LOGICAL :: USE_UFO, DO_NSST, ADJT_NST_ONLY -! - NAMELIST/NAMCYC/ IDIM,JDIM,LSOIL,LUGB,IY,IM,ID,IH,FH, & - DELTSFC,IALB,USE_UFO,DONST, & - ADJT_NST_ONLY,ISOT,IVEGSRC,ZSEA1_MM, & - ZSEA2_MM, MAX_TASKS -! - DATA IDIM,JDIM,LSOIL/96,96,4/ - DATA IY,IM,ID,IH,FH/1997,8,2,0,0./ - DATA LUGB/51/, DELTSFC/0.0/, IALB/1/, MAX_TASKS/99999/ - DATA ISOT/1/, IVEGSRC/2/, ZSEA1_MM/0/, ZSEA2_MM/0/ -! - CALL MPI_INIT(IERR) - CALL MPI_COMM_SIZE(MPI_COMM_WORLD, NPROCS, IERR) - CALL MPI_COMM_RANK(MPI_COMM_WORLD, MYRANK, IERR) - - if (myrank==0) call w3tagb('GLOBAL_CYCLE',2018,0179,0055,'NP20') - - NUM_THREADS = NUM_PARTHDS() - - PRINT* - PRINT*,"STARTING CYCLE PROGRAM ON RANK ", MYRANK - PRINT*,"RUNNING WITH ", NPROCS, "TASKS" - PRINT*,"AND WITH ", NUM_THREADS, " THREADS." - - USE_UFO = .FALSE. - DONST = "NO" - ADJT_NST_ONLY = .FALSE. - - PRINT* - PRINT*,"READ NAMCYC NAMELIST." - - CALL BAOPENR(36, "fort.36", IERR) - READ(36, NML=NAMCYC) - IF (MYRANK==0) WRITE(6,NAMCYC) - - IF (MAX_TASKS < 99999 .AND. MYRANK > (MAX_TASKS - 1)) THEN - PRINT*,"USER SPECIFIED MAX NUMBER OF TASKS: ", MAX_TASKS - PRINT*,"WILL NOT RUN CYCLE PROGRAM ON RANK: ", MYRANK - GOTO 333 - ENDIF - - LENSFC = IDIM*JDIM ! TOTAL NUMBER OF POINTS FOR THE CUBED-SPHERE TILE - - ZSEA1 = FLOAT(ZSEA1_MM) / 1000.0 ! CONVERT FROM MM TO METERS - ZSEA2 = FLOAT(ZSEA2_MM) / 1000.0 - - IF (DONST == "YES") THEN - DO_NSST=.TRUE. - ELSE - DO_NSST=.FALSE. - ENDIF - - PRINT* - IF (MYRANK==0) PRINT*,"LUGB,IDIM,JDIM,LSOIL,DELTSFC,IY,IM,ID,IH,FH: ", & - LUGB,IDIM,JDIM,LSOIL,DELTSFC,IY,IM,ID,IH,FH - - CALL SFCDRV(LUGB,IDIM,JDIM,LENSFC,LSOIL,DELTSFC, & - IY,IM,ID,IH,FH,IALB, & - USE_UFO,DO_NSST,ADJT_NST_ONLY, & - ZSEA1,ZSEA2,ISOT,IVEGSRC,MYRANK) - - PRINT* - PRINT*,'CYCLE PROGRAM COMPLETED NORMALLY ON RANK: ', MYRANK - - 333 CONTINUE - - CALL MPI_BARRIER(MPI_COMM_WORLD, IERR) - - if (myrank==0) call w3tage('GLOBAL_CYCLE') - - CALL MPI_FINALIZE(IERR) - - STOP - - END PROGRAM SFC_DRV -! - SUBROUTINE SFCDRV(LUGB,IDIM,JDIM,LENSFC,LSOIL,DELTSFC, & - IY,IM,ID,IH,FH,IALB, & - USE_UFO,DO_NSST,ADJT_NST_ONLY, & - ZSEA1,ZSEA2,ISOT,IVEGSRC,MYRANK) -! - USE READ_WRITE_DATA - - IMPLICIT NONE - - INTEGER, INTENT(IN) :: IDIM, JDIM, LENSFC, LSOIL, IALB - INTEGER, INTENT(IN) :: LUGB, IY, IM, ID, IH - INTEGER, INTENT(IN) :: ISOT, IVEGSRC, MYRANK - - LOGICAL, INTENT(IN) :: USE_UFO, DO_NSST, ADJT_NST_ONLY - - REAL, INTENT(IN) :: FH, DELTSFC, ZSEA1, ZSEA2 - - INTEGER, PARAMETER :: NLUNIT=35 - INTEGER, PARAMETER :: SZ_NML=1 - - CHARACTER*500 :: GSI_FILE - CHARACTER(LEN=4) :: INPUT_NML_FILE(SZ_NML) - - INTEGER :: I, IERR - - REAL :: SLMASK(LENSFC), OROG(LENSFC) - REAL :: SIHFCS(LENSFC), SICFCS(LENSFC) - REAL :: SITFCS(LENSFC), TSFFCS(LENSFC) - REAL :: SNOFCS(LENSFC), ZORFCS(LENSFC) - REAL :: ALBFCS(LENSFC,4), TG3FCS(LENSFC) - REAL :: CNPFCS(LENSFC), SMCFCS(LENSFC,LSOIL) - REAL :: STCFCS(LENSFC,LSOIL), SLIFCS(LENSFC) - REAL :: AISFCS(LENSFC), F10M(LENSFC) - REAL :: VEGFCS(LENSFC), VETFCS(LENSFC) - REAL :: SOTFCS(LENSFC), ALFFCS(LENSFC,2) - REAL :: CVFCS(LENSFC), CVTFCS(LENSFC) - REAL :: CVBFCS(LENSFC), TPRCP(LENSFC) - REAL :: SRFLAG(LENSFC), SWDFCS(LENSFC) - REAL :: SLCFCS(LENSFC,LSOIL), VMXFCS(LENSFC) - REAL :: VMNFCS(LENSFC), T2M(LENSFC) - REAL :: Q2M(LENSFC), SLPFCS(LENSFC) - REAL :: ABSFCS(LENSFC), OROG_UF(LENSFC) - REAL :: USTAR(LENSFC) - REAL :: FMM(LENSFC), FHH(LENSFC) - REAL :: RLA(LENSFC), RLO(LENSFC) - REAL(KIND=4) :: ZSOIL(LSOIL) - REAL :: SIG1T(LENSFC) - REAL, ALLOCATABLE :: SLIFCS_FG(:) - - TYPE(NSST_DATA) :: NSST - -!-------------------------------------------------------------------------------- -! GSI_FILE is the path/name of the gaussian GSI file which contains NSST -! increments. -!-------------------------------------------------------------------------------- - - DATA GSI_FILE/'NULL'/ - - NAMELIST/NAMSFCD/ GSI_FILE - -!-------------------------------------------------------------------------------- -! -! This program runs in two different modes: -! -! 1. Analysis mode (FH=0.) -! -! This program merges climatology, analysis and forecast guess to create -! new surface fields. If analysis file is given, the program -! uses it if date of the analysis matches with IY,IM,ID,IH (see Note -! below). -! -! 2. Forecast mode (FH.GT.0.) -! -! This program interpolates climatology to the date corresponding to the -! forecast hour. If surface analysis file is given, for the corresponding -! dates, the program will use it. This is forcing-by-observation experiment. -! -! NOTE: -! -! If the date of the analysis does not match given IY,IM,ID,IH, (and FH), -! the program searches an old analysis by going back 6 hours, then 12 hours, -! then one day upto NREPMX days (parameter statement in the SUBROTINE FIXRD. -! Now defined as 15). This allows the user to provide non-daily analysis to -! be used. If matching field is not found, the forecast guess will be used. -! -! LUGB is the unit number used in sfccycle subprogram -! IDIM,JDIM is thegrid dimension in x and y direction, respectively of a tile -! of the cubed-sphere grid. -! LSOIL is the number of soil layers -! IY,IM,ID,IH is the Year, month, day, and hour of initial state. -! FH is the forecast hour -! SIG1T is the sigma level 1 temperature for dead start. -! SIG1T is the sigma level 1 temperature for dead start. -! If not dead start, no need for dimension but set to zero. -! -! Variable naming conventions: -! -! OROG .. Orography -! ALB .. Snow-free albedo -! SNO .. Liquid-equivalent snow depth -! ZOR .. Surface roughness length -! VET .. Vegetation type -! TSF .. Surface skin temperature. Sea surface temp. over ocean. -! TG3 .. Deep soil temperature (at 500cm) -! STC .. Soil temperature (LSOIL layrs) -! SMC .. Total soil moisture (LSOIL layrs) -! AIS .. Sea ice mask (0 or 1) -! CNP .. Canopy water content -! CV .. Convective cloud cover -! CVB .. Convective cloud base -! CVT .. Convective cloud top -! SLI .. LAND/SEA/SEA-ICE mask. (1/0/2 respectively) -! VEG .. Vegetation cover -! SOT .. Soil type -! SIH .. Sea ice thickness -! SIC .. Sea ice concentration -! SWD .. Actual snow depth -! SLC .. Liquid soil moisture (LSOIL layers) -! VMN .. Vegetation cover minimum -! VMX .. Vegetation cover maximum -! SLP .. Slope type -! ABS .. Maximum snow albedo -! T2M .. 2m Temperature -! Q2M .. 2m Specific Humidity -! TICE .. Ice Temperature -! OROG_UF .. Orography unfiltered -! -! COEEFICIENTS OF BLENDING FORECAST AND INTERPOLATED CLIM -! (OR ANALYZED) FIELDS OVER SEA OR LAND(L) (NOT FOR CLOUDS) -! 1.0 = USE OF FORECAST -! 0.0 = REPLACE WITH INTERPOLATED ANALYSIS -! -! These values are set for analysis mode. -! -! Variables Land Sea -! --------------------------------------------------------- -! Surface temperature Forecast Analysis -! Albedo Analysis Analysis -! Sea-ice Analysis Analysis -! Snow Analysis Forecast (over sea ice) -! Roughness Analysis Forecast -! Plant resistance Analysis Analysis -! Soil wetness (layer) Weighted average Analysis -! Soil temperature Forecast Analysis -! Canopy waver content Forecast Forecast -! Convective cloud cover Forecast Forecast -! Convective cloud bottm Forecast Forecast -! Convective cloud top Forecast Forecast -! Vegetation cover Analysis Analysis -! vegetation type Analysis Analysis -! soil type Analysis Analysis -! -!-------------------------------------------------------------------------------- - - SIG1T = 0.0 ! Not a dead start! - - INPUT_NML_FILE = "NULL" - - CALL BAOPENR(37, "fort.37", IERR) - READ (37, NML=NAMSFCD) - WRITE(6,NAMSFCD) - - PRINT* - PRINT*,'IN ROUTINE SFCDRV,IDIM=',IDIM,'JDIM=',JDIM,'FH=',FH - -!-------------------------------------------------------------------------------- -! READ THE OROGRAPHY AND GRID POINT LAT/LONS FOR THE CUBED-SPHERE TILE. -!-------------------------------------------------------------------------------- - - CALL READ_LAT_LON_OROG(RLA,RLO,OROG,OROG_UF,IDIM,JDIM,LENSFC) - - IF (DO_NSST) THEN - PRINT* - PRINT*,"WILL PROCESS NSST RECORDS." - ALLOCATE(NSST%C_0(LENSFC)) - ALLOCATE(NSST%C_D(LENSFC)) - ALLOCATE(NSST%D_CONV(LENSFC)) - ALLOCATE(NSST%DT_COOL(LENSFC)) - ALLOCATE(NSST%IFD(LENSFC)) - ALLOCATE(NSST%QRAIN(LENSFC)) - ALLOCATE(NSST%TREF(LENSFC)) - ALLOCATE(NSST%TFINC(LENSFC)) - ALLOCATE(NSST%W_0(LENSFC)) - ALLOCATE(NSST%W_D(LENSFC)) - ALLOCATE(NSST%XS(LENSFC)) - ALLOCATE(NSST%XT(LENSFC)) - ALLOCATE(NSST%XTTS(LENSFC)) - ALLOCATE(NSST%XU(LENSFC)) - ALLOCATE(NSST%XV(LENSFC)) - ALLOCATE(NSST%XZ(LENSFC)) - ALLOCATE(NSST%XZTS(LENSFC)) - ALLOCATE(NSST%Z_C(LENSFC)) - ALLOCATE(NSST%ZM(LENSFC)) - ALLOCATE(SLIFCS_FG(LENSFC)) - ENDIF - -!-------------------------------------------------------------------------------- -! READ THE INPUT SURFACE DATA ON THE CUBED-SPHERE TILE. -!-------------------------------------------------------------------------------- - - CALL READ_DATA(TSFFCS,SMCFCS,SNOFCS,STCFCS,TG3FCS,ZORFCS, & - CVFCS,CVBFCS,CVTFCS,ALBFCS,SLIFCS, & - VEGFCS,CNPFCS,F10M,VETFCS,SOTFCS, & - ALFFCS,USTAR,FMM,FHH,SIHFCS,SICFCS, & - SITFCS,TPRCP,SRFLAG,SWDFCS,VMNFCS, & - VMXFCS,SLCFCS,SLPFCS,ABSFCS,T2M,Q2M, & - SLMASK,ZSOIL,LSOIL,LENSFC,DO_NSST,NSST) - - IF (USE_UFO) THEN - PRINT* - PRINT*,'USE UNFILTERED OROGRAPHY.' - ELSE - OROG_UF = 0.0 - ENDIF - - DO I=1,LENSFC - AISFCS(I) = 0. - IF(NINT(SLIFCS(I)).EQ.2) AISFCS(I) = 1. - ENDDO - - IF (DO_NSST) THEN - IF (ADJT_NST_ONLY) THEN - PRINT* - PRINT*,"FIRST GUESS MASK ADJUSTED BY IFD RECORD" - SLIFCS_FG = SLIFCS - WHERE(NINT(NSST%IFD) == 3) SLIFCS_FG = 2.0 - ELSE - PRINT* - PRINT*,"SAVE FIRST GUESS MASK" - SLIFCS_FG = SLIFCS - ENDIF - ENDIF - -!-------------------------------------------------------------------------------- -! UPDATE SURFACE FIELDS. -!-------------------------------------------------------------------------------- - - IF (.NOT. ADJT_NST_ONLY) THEN - PRINT* - PRINT*,"CALL SFCCYCLE TO UPDATE SURFACE FIELDS." - CALL SFCCYCLE(LUGB,LENSFC,LSOIL,SIG1T,DELTSFC, & - IY,IM,ID,IH,FH,RLA,RLO, & - SLMASK,OROG, OROG_UF, USE_UFO, DO_NSST, & - SIHFCS,SICFCS,SITFCS,SWDFCS,SLCFCS, & - VMNFCS,VMXFCS,SLPFCS,ABSFCS, & - TSFFCS,SNOFCS,ZORFCS,ALBFCS,TG3FCS, & - CNPFCS,SMCFCS,STCFCS,SLIFCS,AISFCS,F10M, & - VEGFCS,VETFCS,SOTFCS,ALFFCS, & - CVFCS,CVBFCS,CVTFCS,MYRANK,NLUNIT, & - SZ_NML, INPUT_NML_FILE, & - IALB,ISOT,IVEGSRC) - ENDIF - -!-------------------------------------------------------------------------------- -! IF RUNNING WITH NSST, READ IN GSI FILE WITH THE UPDATED INCREMENTS (ON THE -! GAUSSIAN GRID), INTERPOLATE INCREMENTS TO THE CUBED-SPHERE TILE, AND PERFORM -! REQUIRED ADJUSTMENTS AND QC. -!-------------------------------------------------------------------------------- - - IF (DO_NSST) THEN - IF (GSI_FILE == "NULL") THEN - PRINT* - PRINT*,"NO GSI FILE. ADJUST IFD FOR FORMER ICE POINTS." - DO I = 1, LENSFC - IF (NINT(SLIFCS_FG(I)) == 2 .AND. NINT(SLIFCS(I)) == 0) THEN - NSST%IFD(I) = 3.0 - ENDIF - ENDDO - NSST%TFINC = 0.0 - ELSE - PRINT* - PRINT*,"ADJUST TREF FROM GSI INCREMENT" - CALL READ_GSI_DATA(GSI_FILE) - CALL ADJUST_NSST(RLA,RLO,SLIFCS,SLIFCS_FG,TSFFCS,SITFCS,STCFCS, & - NSST,LENSFC,LSOIL,IDIM,JDIM,ZSEA1,ZSEA2,IM,ID,DELTSFC) - ENDIF - ENDIF - -!-------------------------------------------------------------------------------- -! WRITE OUT UPDATED SURFACE DATA ON THE CUBED-SPHERE TILE. -!-------------------------------------------------------------------------------- - - CALL WRITE_DATA(SLIFCS,TSFFCS,SNOFCS,TG3FCS,ZORFCS, & - ALBFCS,ALFFCS,VEGFCS,CNPFCS,F10M, & - T2M,Q2M,VETFCS,SOTFCS,USTAR,FMM,FHH, & - SICFCS,SIHFCS,SITFCS, & - TPRCP,SRFLAG,SWDFCS, & - VMNFCS,VMXFCS,SLPFCS,ABSFCS, & - SLCFCS,SMCFCS,STCFCS, & - IDIM,JDIM,LENSFC,LSOIL,DO_NSST,NSST) - - IF (DO_NSST) THEN - DEALLOCATE(NSST%C_0) - DEALLOCATE(NSST%C_D) - DEALLOCATE(NSST%D_CONV) - DEALLOCATE(NSST%DT_COOL) - DEALLOCATE(NSST%IFD) - DEALLOCATE(NSST%QRAIN) - DEALLOCATE(NSST%TREF) - DEALLOCATE(NSST%TFINC) - DEALLOCATE(NSST%W_0) - DEALLOCATE(NSST%W_D) - DEALLOCATE(NSST%XS) - DEALLOCATE(NSST%XT) - DEALLOCATE(NSST%XTTS) - DEALLOCATE(NSST%XU) - DEALLOCATE(NSST%XV) - DEALLOCATE(NSST%XZ) - DEALLOCATE(NSST%XZTS) - DEALLOCATE(NSST%Z_C) - DEALLOCATE(NSST%ZM) - DEALLOCATE(SLIFCS_FG) - ENDIF - - RETURN - - END SUBROUTINE SFCDRV - - SUBROUTINE ADJUST_NSST(RLA,RLO,SLMSK_TILE,SLMSK_FG_TILE,SKINT_TILE,& - SICET_TILE,SOILT_TILE,NSST,LENSFC,LSOIL, & - IDIM,JDIM,ZSEA1,ZSEA2,MON,DAY,DELTSFC) - -!-------------------------------------------------------------------------------- -! READ IN GSI FILE WITH THE UPDATED TREF INCREMENTS (ON THE GAUSSIAN -! GRID), INTERPOLATE INCREMENTS TO THE CUBED-SPHERE TILE, AND PERFORM -! REQUIRED NSST ADJUSTMENTS AND QC. -!-------------------------------------------------------------------------------- - - USE GDSWZD_MOD - USE READ_WRITE_DATA, ONLY : IDIM_GAUS, JDIM_GAUS, & - SLMSK_GAUS, DTREF_GAUS, & - NSST_DATA - - IMPLICIT NONE - - include 'mpif.h' - - INTEGER, INTENT(IN) :: LENSFC, LSOIL, IDIM, JDIM, MON, DAY - - REAL, INTENT(IN) :: SLMSK_TILE(LENSFC), SLMSK_FG_TILE(LENSFC) - REAL, INTENT(IN) :: ZSEA1, ZSEA2, DELTSFC - REAL, INTENT(INOUT) :: RLA(LENSFC), RLO(LENSFC), SKINT_TILE(LENSFC) - REAL, INTENT(INOUT) :: SICET_TILE(LENSFC), SOILT_TILE(LENSFC,LSOIL) - - TYPE(NSST_DATA) :: NSST - - REAL, PARAMETER :: TFREEZ=271.21 - REAL, PARAMETER :: TMAX=313.0 - - INTEGER :: IOPT, NRET, KGDS_GAUS(200) - INTEGER :: IGAUS, JGAUS, IJ, II, JJ, III, JJJ, KRAD - INTEGER :: ISTART, IEND, JSTART, JEND - INTEGER :: MASK_TILE, MASK_FG_TILE - INTEGER :: ITILE, JTILE - INTEGER :: MAX_SEARCH, I, J - INTEGER :: IGAUSP1, JGAUSP1 - INTEGER, ALLOCATABLE :: ID1(:,:), ID2(:,:), JDC(:,:) - - LOGICAL :: IS_ICE - - REAL :: TREF_SAVE, WSUM - REAL :: FILL, DTZM, GAUS_RES_KM, DTREF - REAL, ALLOCATABLE :: XPTS(:), YPTS(:), LATS(:), LONS(:) - REAL, ALLOCATABLE :: DUM2D(:,:), LATS_RAD(:), LONS_RAD(:) - REAL, ALLOCATABLE :: AGRID(:,:,:), S2C(:,:,:) - - KGDS_GAUS = 0 - KGDS_GAUS(1) = 4 ! OCT 6 - TYPE OF GRID (GAUSSIAN) - KGDS_GAUS(2) = IDIM_GAUS ! OCT 7-8 - # PTS ON LATITUDE CIRCLE - KGDS_GAUS(3) = JDIM_GAUS - KGDS_GAUS(4) = 90000 ! OCT 11-13 - LAT OF ORIGIN - KGDS_GAUS(5) = 0 ! OCT 14-16 - LON OF ORIGIN - KGDS_GAUS(6) = 128 ! OCT 17 - RESOLUTION FLAG - KGDS_GAUS(7) = -90000 ! OCT 18-20 - LAT OF EXTREME POINT - KGDS_GAUS(8) = NINT(-360000./FLOAT(IDIM_GAUS)) ! OCT 21-23 - LON OF EXTREME POINT - KGDS_GAUS(9) = NINT((360.0 / FLOAT(IDIM_GAUS))*1000.0) - ! OCT 24-25 - LONGITUDE DIRECTION INCR. - KGDS_GAUS(10) = JDIM_GAUS/2 ! OCT 26-27 - NUMBER OF CIRCLES POLE TO EQUATOR - KGDS_GAUS(12) = 255 ! OCT 29 - RESERVED - KGDS_GAUS(20) = 255 ! OCT 5 - NOT USED, SET TO 255 - - PRINT* - PRINT*,'ADJUST NSST USING GSI INCREMENTS ON GAUSSIAN GRID' - -!---------------------------------------------------------------------- -! CALL GDSWZD TO COMPUTE THE LAT/LON OF EACH GSI GAUSSIAN GRID POINT. -!---------------------------------------------------------------------- - - IOPT = 0 - FILL = -9999. - ALLOCATE(XPTS(IDIM_GAUS*JDIM_GAUS)) - ALLOCATE(YPTS(IDIM_GAUS*JDIM_GAUS)) - ALLOCATE(LATS(IDIM_GAUS*JDIM_GAUS)) - ALLOCATE(LONS(IDIM_GAUS*JDIM_GAUS)) - XPTS = FILL - YPTS = FILL - LATS = FILL - LONS = FILL - - CALL GDSWZD(KGDS_GAUS,IOPT,(IDIM_GAUS*JDIM_GAUS),FILL,XPTS,YPTS,LONS,LATS,NRET) - - IF (NRET /= (IDIM_GAUS*JDIM_GAUS)) THEN - PRINT*,'FATAL ERROR: PROBLEM IN GDSWZD. STOP.' - CALL MPI_ABORT(MPI_COMM_WORLD, 12) - ENDIF - - DEALLOCATE (XPTS, YPTS) - - ALLOCATE(DUM2D(IDIM_GAUS,JDIM_GAUS)) - DUM2D = RESHAPE(LATS, (/IDIM_GAUS,JDIM_GAUS/) ) - DEALLOCATE(LATS) - - ALLOCATE(LATS_RAD(JDIM_GAUS)) - DO J = 1, JDIM_GAUS - LATS_RAD(J) = DUM2D(1,JDIM_GAUS-J+1) * 3.1415926 / 180.0 - ENDDO - - DUM2D = RESHAPE(LONS, (/IDIM_GAUS,JDIM_GAUS/) ) - DEALLOCATE(LONS) - ALLOCATE(LONS_RAD(IDIM_GAUS)) - LONS_RAD = DUM2D(:,1) * 3.1415926 / 180.0 - - DEALLOCATE(DUM2D) - - ALLOCATE(AGRID(IDIM,JDIM,2)) - AGRID(:,:,1) = RESHAPE (RLO, (/IDIM,JDIM/) ) - AGRID(:,:,2) = RESHAPE (RLA, (/IDIM,JDIM/) ) - AGRID = AGRID * 3.1415926 / 180.0 - - ALLOCATE(ID1(IDIM,JDIM)) - ALLOCATE(ID2(IDIM,JDIM)) - ALLOCATE(JDC(IDIM,JDIM)) - ALLOCATE(S2C(IDIM,JDIM,4)) - -!---------------------------------------------------------------------- -! COMPUTE BILINEAR WEIGHTS FOR EACH MODEL POINT FROM THE NEAREST -! FOUR GSI/GAUSSIAN POINTS. DOES NOT ACCOUNT FOR MASK. THAT -! HAPPENS LATER. -!---------------------------------------------------------------------- - - CALL REMAP_COEF( 1, IDIM, 1, JDIM, IDIM_GAUS, JDIM_GAUS, & - LONS_RAD, LATS_RAD, ID1, ID2, JDC, S2C, AGRID ) - - DEALLOCATE(LONS_RAD, LATS_RAD, AGRID) - -!---------------------------------------------------------------------- -! THE MAXIMUM DISTANCE TO SEARCH IS 500 KM. HOW MANY GAUSSIAN -! GRID LENGTHS IS THAT? -!---------------------------------------------------------------------- - - GAUS_RES_KM = 360.0 / IDIM_GAUS * 111.0 - MAX_SEARCH = CEILING(500.0/GAUS_RES_KM) - - PRINT* - PRINT*,'MAXIMUM SEARCH IS ',MAX_SEARCH, ' GAUSSIAN POINTS.' - PRINT* - -!---------------------------------------------------------------------- -! TREF INCREMENT WILL BE OUTPUT. INITIALIZE TO ZERO. -!---------------------------------------------------------------------- - - NSST%TFINC = 0.0 - - IJ_LOOP : DO IJ = 1, LENSFC - - MASK_TILE = NINT(SLMSK_TILE(IJ)) - MASK_FG_TILE = NINT(SLMSK_FG_TILE(IJ)) - -!---------------------------------------------------------------------- -! THESE ARE ICE POINTS. SET TREF TO FREEZING. -!---------------------------------------------------------------------- - - IF (MASK_TILE == 2) THEN - NSST%TREF(IJ) = TFREEZ - CYCLE IJ_LOOP - ENDIF - -!---------------------------------------------------------------------- -! IF THE MODEL POINT WAS ICE COVERED, BUT IS NOW OPEN WATER, SET -! TREF TO FREEZING, XZ TO '30' AND ALL OTHER FIELDS TO ZERO. -!---------------------------------------------------------------------- - - IF (MASK_FG_TILE == 2 .AND. MASK_TILE == 0) THEN - CALL NSST_WATER_RESET(NSST,IJ,TFREEZ) - CYCLE IJ_LOOP - ENDIF - -!---------------------------------------------------------------------- -! SKIP LAND POINTS. NSST NOT APPLIED AT LAND. -!---------------------------------------------------------------------- - - IF (MASK_TILE == 1) THEN - CYCLE IJ_LOOP - ENDIF - -!---------------------------------------------------------------------- -! THESE ARE POINTS THAT ARE OPEN WATER AND WERE OPEN WATER PRIOR -! TO ANY ICE UPDATE BY SFCCYCLE. UPDATE TREF AND SKIN TEMP. -! AT OPEN WATER POINTS, THE SEA ICE TEMPERATURE (SICET_TILE) AND -! SOIL COLUMN TEMPERATURE (SOILT_TILE) ARE SET TO THE SKIN TEMP. -! IT IS SIMPLY A FILLER VALUE. THESE FIELDS ARE NOT USED AT -! OPEN WATER POINTS. -!---------------------------------------------------------------------- - - JTILE = (IJ-1) / IDIM + 1 - ITILE = MOD(IJ,IDIM) - IF (ITILE==0) ITILE = IDIM - -!---------------------------------------------------------------------- -! SEE IF ANY OF THE NEAREST GSI POINTS MASK AREA OPEN WATER. -! IF SO, APPLY NSST INCREMENT USING BILINEAR INTERPOLATION. -!---------------------------------------------------------------------- - - IGAUS = ID1(ITILE,JTILE) - JGAUS = JDC(ITILE,JTILE) - IGAUSP1 = ID2(ITILE,JTILE) - JGAUSP1 = JDC(ITILE,JTILE)+1 - - IF (SLMSK_GAUS(IGAUS,JGAUS) == 0 .OR. & - SLMSK_GAUS(IGAUSP1,JGAUS) == 0 .OR. & - SLMSK_GAUS(IGAUSP1,JGAUSP1) == 0 .OR. & - SLMSK_GAUS(IGAUS,JGAUSP1) == 0) THEN - - DTREF = 0.0 - WSUM = 0.0 - - IF (SLMSK_GAUS(IGAUS,JGAUS) == 0) THEN - DTREF = DTREF + (S2C(ITILE,JTILE,1) * DTREF_GAUS(IGAUS,JGAUS)) - WSUM = WSUM + S2C(ITILE,JTILE,1) - ENDIF - - IF (SLMSK_GAUS(IGAUSP1,JGAUS) == 0) THEN - DTREF = DTREF + (S2C(ITILE,JTILE,2) * DTREF_GAUS(IGAUSP1,JGAUS)) - WSUM = WSUM + S2C(ITILE,JTILE,2) - ENDIF - - IF (SLMSK_GAUS(IGAUSP1,JGAUSP1) == 0) THEN - DTREF = DTREF + (S2C(ITILE,JTILE,3) * DTREF_GAUS(IGAUSP1,JGAUSP1)) - WSUM = WSUM + S2C(ITILE,JTILE,3) - ENDIF - - IF (SLMSK_GAUS(IGAUS,JGAUSP1) == 0) THEN - DTREF = DTREF + (S2C(ITILE,JTILE,4) * DTREF_GAUS(IGAUS,JGAUSP1)) - WSUM = WSUM + S2C(ITILE,JTILE,4) - ENDIF - - DTREF = DTREF / WSUM - - TREF_SAVE = NSST%TREF(IJ) - NSST%TREF(IJ) = NSST%TREF(IJ) + DTREF - NSST%TREF(IJ) = MAX(NSST%TREF(IJ), TFREEZ) - NSST%TREF(IJ) = MIN(NSST%TREF(IJ), TMAX) - NSST%TFINC(IJ) = NSST%TREF(IJ) - TREF_SAVE - - CALL DTZM_POINT(NSST%XT(IJ),NSST%XZ(IJ),NSST%DT_COOL(IJ), & - NSST%Z_C(IJ),ZSEA1,ZSEA2,DTZM) - - SKINT_TILE(IJ) = NSST%TREF(IJ) + DTZM - SKINT_TILE(IJ) = MAX(SKINT_TILE(IJ), TFREEZ) - SKINT_TILE(IJ) = MIN(SKINT_TILE(IJ), TMAX) - - SICET_TILE(IJ) = SKINT_TILE(IJ) - SOILT_TILE(IJ,:) = SKINT_TILE(IJ) - -!---------------------------------------------------------------------- -! NO NEARBY GSI/GAUSSIAN OPEN WATER POINTS. PERFORM A SPIRAL SEARCH TO -! FIND NEAREST NON-LAND POINT ON GSI/GAUSSIAN GRID. -!---------------------------------------------------------------------- - - ELSE - - IS_ICE = .FALSE. - - DO KRAD = 1, MAX_SEARCH - - ISTART = IGAUS - KRAD - IEND = IGAUS + KRAD - JSTART = JGAUS - KRAD - JEND = JGAUS + KRAD - - DO JJ = JSTART, JEND - DO II = ISTART, IEND - - IF((JJ == JSTART) .OR. (JJ == JEND) .OR. & - (II == ISTART) .OR. (II == IEND)) THEN - - IF ((JJ >= 1) .AND. (JJ <= JDIM_GAUS)) THEN - - JJJ = JJ - IF (II <= 0) THEN - III = IDIM_GAUS + II - ELSE IF (II >= (IDIM_GAUS+1)) THEN - III = II - IDIM_GAUS - ELSE - III = II - END IF - -!---------------------------------------------------------------------- -! SEE IF NEARBY POINTS ARE SEA ICE. IF THEY ARE, AND THE SEARCH FOR -! A GAUSSIAN GRID OPEN WATER POINT FAILS, THEN TREF WILL BE SET TO -! FREEZING BELOW. -!---------------------------------------------------------------------- - - IF (KRAD <= 2 .AND. SLMSK_GAUS(III,JJJ) == 2) IS_ICE = .TRUE. - - IF (SLMSK_GAUS(III,JJJ) == 0) THEN - - PRINT*,'MISMATCH AT TILE POINT ',ITILE,JTILE - PRINT*,'UPDATE TREF USING GSI INCREMENT AT ',III,JJJ,DTREF_GAUS(III,JJJ) - - TREF_SAVE = NSST%TREF(IJ) - NSST%TREF(IJ ) = NSST%TREF(IJ) + DTREF_GAUS(III,JJJ) - NSST%TREF(IJ) = MAX(NSST%TREF(IJ), TFREEZ) - NSST%TREF(IJ) = MIN(NSST%TREF(IJ), TMAX) - NSST%TFINC(IJ) = NSST%TREF(IJ) - TREF_SAVE - - CALL DTZM_POINT(NSST%XT(IJ),NSST%XZ(IJ),NSST%DT_COOL(IJ), & - NSST%Z_C(IJ),ZSEA1,ZSEA2,DTZM) - - SKINT_TILE(IJ) = NSST%TREF(IJ) + DTZM - SKINT_TILE(IJ) = MAX(SKINT_TILE(IJ), TFREEZ) - SKINT_TILE(IJ) = MIN(SKINT_TILE(IJ), TMAX) - - SICET_TILE(IJ) = SKINT_TILE(IJ) - SOILT_TILE(IJ,:) = SKINT_TILE(IJ) - CYCLE IJ_LOOP - - ENDIF ! GSI/Gaussian mask is open water - - ENDIF - - ENDIF - - ENDDO - ENDDO - - ENDDO ! KRAD LOOP - -!---------------------------------------------------------------------- -! THE SEARCH FAILED. IF THERE IS NEARBY ICE, SET TREF TO FREEZING. -! ELSE UPDATE TREF BASED ON THE ANNUAL SST CYCLE. -!---------------------------------------------------------------------- - - PRINT*,'WARNING !!!!!! SEARCH FAILED AT TILE POINT ',ITILE,JTILE - - IF (IS_ICE) THEN - NSST%TREF(IJ) = TFREEZ - PRINT*,"NEARBY ICE. SET TREF TO FREEZING" - ELSE - CALL CLIMO_TREND(RLA(IJ),MON,DAY,DELTSFC,DTREF) - TREF_SAVE = NSST%TREF(IJ) - NSST%TREF(IJ) = NSST%TREF(IJ) + DTREF - NSST%TREF(IJ) = MAX(NSST%TREF(IJ), TFREEZ) - NSST%TREF(IJ) = MIN(NSST%TREF(IJ), TMAX) - NSST%TFINC(IJ) = NSST%TREF(IJ) - TREF_SAVE - PRINT*,'UPDATE TREF FROM SST CLIMO ',DTREF - ENDIF - - CALL DTZM_POINT(NSST%XT(IJ),NSST%XZ(IJ),NSST%DT_COOL(IJ), & - NSST%Z_C(IJ),ZSEA1,ZSEA2,DTZM) - - SKINT_TILE(IJ) = NSST%TREF(IJ) + DTZM - SKINT_TILE(IJ) = MAX(SKINT_TILE(IJ), TFREEZ) - SKINT_TILE(IJ) = MIN(SKINT_TILE(IJ), TMAX) - - SICET_TILE(IJ) = SKINT_TILE(IJ) - SOILT_TILE(IJ,:) = SKINT_TILE(IJ) - - ENDIF ! NEARBY GAUSSIAN POINTS ARE OPEN WATER? - - ENDDO IJ_LOOP - - DEALLOCATE(ID1, ID2, JDC, S2C) - - END SUBROUTINE ADJUST_NSST - - SUBROUTINE CLIMO_TREND(LATITUDE, MON, DAY, DELTSFC, DTREF) - -!---------------------------------------------------------------- -! IF THE TILE POINT IS AN ISOLATED WATER POINT THAT HAS NO -! CORRESPONDING GSI WATER POINT, THEN TREF IS UPDATED USING -! THE RTG SST CLIMO TREND. THIS MONTHLY TREND IS SORTED BY -! LATITUDE BAND. -!---------------------------------------------------------------- - - IMPLICIT NONE - - INTEGER, INTENT(IN) :: MON, DAY - - REAL, INTENT(IN) :: LATITUDE, DELTSFC - REAL, INTENT(OUT) :: DTREF - - INTEGER :: NUM_DAYS(12), MON2, MON1 - - REAL, TARGET :: SST_80_90(12) - REAL, TARGET :: SST_70_80(12) - REAL, TARGET :: SST_60_70(12) - REAL, TARGET :: SST_50_60(12) - REAL, TARGET :: SST_40_50(12) - REAL, TARGET :: SST_30_40(12) - REAL, TARGET :: SST_20_30(12) - REAL, TARGET :: SST_10_20(12) - REAL, TARGET :: SST_00_10(12) - REAL, TARGET :: SST_M10_00(12) - REAL, TARGET :: SST_M20_M10(12) - REAL, TARGET :: SST_M30_M20(12) - REAL, TARGET :: SST_M40_M30(12) - REAL, TARGET :: SST_M50_M40(12) - REAL, TARGET :: SST_M60_M50(12) - REAL, TARGET :: SST_M70_M60(12) - REAL, TARGET :: SST_M80_M70(12) - REAL, TARGET :: SST_M90_M80(12) - - REAL, POINTER :: SST(:) - - DATA NUM_DAYS /31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31/ - - DATA SST_80_90 /271.466, 271.458, 271.448, 271.445, 271.519, 271.636, & - 272.023, 272.066, 272.001, 271.698, 271.510, 271.472/ - - DATA SST_70_80 /272.149, 272.103, 272.095, 272.126, 272.360, 272.988, & - 274.061, 274.868, 274.415, 273.201, 272.468, 272.268/ - - DATA SST_60_70 /274.240, 274.019, 273.988, 274.185, 275.104, 276.875, & - 279.005, 280.172, 279.396, 277.586, 275.818, 274.803/ - - DATA SST_50_60 /277.277, 276.935, 277.021, 277.531, 279.100, 281.357, & - 283.735, 285.171, 284.399, 282.328, 279.918, 278.199/ - - DATA SST_40_50 /281.321, 280.721, 280.850, 281.820, 283.958, 286.588, & - 289.195, 290.873, 290.014, 287.652, 284.898, 282.735/ - - DATA SST_30_40 /289.189, 288.519, 288.687, 289.648, 291.547, 293.904, & - 296.110, 297.319, 296.816, 295.225, 292.908, 290.743/ - - DATA SST_20_30 /294.807, 294.348, 294.710, 295.714, 297.224, 298.703, & - 299.682, 300.127, 300.099, 299.455, 297.953, 296.177/ - - DATA SST_10_20 /298.878, 298.720, 299.033, 299.707, 300.431, 300.709, & - 300.814, 300.976, 301.174, 301.145, 300.587, 299.694/ - - DATA SST_00_10 /300.415, 300.548, 300.939, 301.365, 301.505, 301.141, & - 300.779, 300.660, 300.818, 300.994, 300.941, 300.675/ - - DATA SST_M10_00 /300.226, 300.558, 300.914, 301.047, 300.645, 299.870, & - 299.114, 298.751, 298.875, 299.294, 299.721, 299.989/ - - DATA SST_M20_M10 /299.547, 299.985, 300.056, 299.676, 298.841, 297.788, & - 296.893, 296.491, 296.687, 297.355, 298.220, 298.964/ - - DATA SST_M30_M20 /297.524, 298.073, 297.897, 297.088, 295.846, 294.520, & - 293.525, 293.087, 293.217, 293.951, 295.047, 296.363/ - - DATA SST_M40_M30 /293.054, 293.765, 293.468, 292.447, 291.128, 289.781, & - 288.773, 288.239, 288.203, 288.794, 289.947, 291.553/ - - DATA SST_M50_M40 /285.052, 285.599, 285.426, 284.681, 283.761, 282.826, & - 282.138, 281.730, 281.659, 281.965, 282.768, 283.961/ - - DATA SST_M60_M50 /277.818, 278.174, 277.991, 277.455, 276.824, 276.229, & - 275.817, 275.585, 275.560, 275.687, 276.142, 276.968/ - - DATA SST_M70_M60 /273.436, 273.793, 273.451, 272.813, 272.349, 272.048, & - 271.901, 271.838, 271.845, 271.889, 272.080, 272.607/ - - DATA SST_M80_M70 /271.579, 271.578, 271.471, 271.407, 271.392, 271.391, & - 271.390, 271.391, 271.394, 271.401, 271.422, 271.486/ - - DATA SST_M90_M80 /271.350, 271.350, 271.350, 271.350, 271.350, 271.350, & - 271.350, 271.350, 271.350, 271.350, 271.350, 271.350/ - - NULLIFY(SST) - IF (LATITUDE > 80.0) THEN - SST => SST_80_90 - ELSEIF (LATITUDE > 70.0) THEN - SST => SST_70_80 - ELSEIF (LATITUDE > 60.0) THEN - SST => SST_60_70 - ELSEIF (LATITUDE > 50.0) THEN - SST => SST_50_60 - ELSEIF (LATITUDE > 40.0) THEN - SST => SST_40_50 - ELSEIF (LATITUDE > 30.0) THEN - SST => SST_30_40 - ELSEIF (LATITUDE > 20.0) THEN - SST => SST_20_30 - ELSEIF (LATITUDE > 10.0) THEN - SST => SST_10_20 - ELSEIF (LATITUDE > 0.0) THEN - SST => SST_00_10 - ELSEIF (LATITUDE > -10.0) THEN - SST => SST_M10_00 - ELSEIF (LATITUDE > -20.0) THEN - SST => SST_M20_M10 - ELSEIF (LATITUDE > -30.0) THEN - SST => SST_M30_M20 - ELSEIF (LATITUDE > -40.0) THEN - SST => SST_M40_M30 - ELSEIF (LATITUDE > -50.0) THEN - SST => SST_M50_M40 - ELSEIF (LATITUDE > -60.0) THEN - SST => SST_M60_M50 - ELSEIF (LATITUDE > -70.0) THEN - SST => SST_M70_M60 - ELSEIF (LATITUDE > -80.0) THEN - SST => SST_M80_M70 - ELSE - SST => SST_M90_M80 - END IF - - IF (DAY >= 15) THEN - MON2 = MON+1 - IF(MON2 == 13) MON2 = 1 - MON1 = MON - DTREF = (SST(MON2) - SST(MON1)) / NUM_DAYS(MON1) - ELSE - MON1 = MON - 1 - IF (MON1 == 0) MON1=12 - MON2 = MON - DTREF = (SST(MON2) - SST(MON1)) / NUM_DAYS(MON1) - ENDIF - - DTREF = DTREF * (DELTSFC / 24.0) - - END SUBROUTINE CLIMO_TREND - - SUBROUTINE DTZM_POINT(XT,XZ,DT_COOL,ZC,Z1,Z2,DTZM) -! ===================================================================== ! -! ! -! description: get dtzm = mean of dT(z) (z1 - z2) with NSST dT(z) ! -! dT(z) = (1-z/xz)*dt_warm - (1-z/zc)*dt_cool ! -! ! -! usage: ! -! ! -! call dtzm_point ! -! ! -! inputs: ! -! (xt,xz,dt_cool,zc,z1,z2, ! -! outputs: ! -! dtzm) ! -! ! -! program history log: ! -! ! -! 2015 -- xu li createad original code ! -! inputs: ! -! xt - real, heat content in dtl 1 ! -! xz - real, dtl thickness 1 ! -! dt_cool - real, sub-layer cooling amount 1 ! -! zc - sub-layer cooling thickness 1 ! -! z1 - lower bound of depth of sea temperature 1 ! -! z2 - upper bound of depth of sea temperature 1 ! -! outputs: ! -! dtzm - mean of dT(z) (z1 to z2) 1 ! -! - implicit none - - real, intent(in) :: xt,xz,dt_cool,zc,z1,z2 - real, intent(out) :: dtzm - - real, parameter :: zero = 0.0 - real, parameter :: one = 1.0 - real, parameter :: half = 0.5 - real :: dt_warm,dtw,dtc -! -! get the mean warming in the range of z=z1 to z=z2 -! - dtw = zero - if ( xt > zero ) then - dt_warm = (xt+xt)/xz ! Tw(0) - if ( z1 < z2) then - if ( z2 < xz ) then - dtw = dt_warm*(one-(z1+z2)/(xz+xz)) - elseif ( z1 < xz .and. z2 >= xz ) then - dtw = half*(one-z1/xz)*dt_warm*(xz-z1)/(z2-z1) - endif - elseif ( z1 == z2 ) then - if ( z1 < xz ) then - dtw = dt_warm*(one-z1/xz) - endif - endif - endif -! -! get the mean cooling in the range of z=z1 to z=z2 -! - dtc = zero - if ( zc > zero ) then - if ( z1 < z2) then - if ( z2 < zc ) then - dtc = dt_cool*(one-(z1+z2)/(zc+zc)) - elseif ( z1 < zc .and. z2 >= zc ) then - dtc = half*(one-z1/zc)*dt_cool*(zc-z1)/(z2-z1) - endif - elseif ( z1 == z2 ) then - if ( z1 < zc ) then - dtc = dt_cool*(one-z1/zc) - endif - endif - endif - -! -! get the mean T departure from Tf in the range of z=z1 to z=z2 -! - dtzm = dtw - dtc - - END SUBROUTINE DTZM_POINT - - SUBROUTINE NSST_WATER_RESET(NSST,IJ,TFREEZ) - -!------------------------------------------------------------------- -! IF THE FIRST GUESS WAS SEA ICE, BUT THE ANALYSIS IS OPEN WATER, -! RESET ALL NSST VARIABLES. -!------------------------------------------------------------------- - - USE READ_WRITE_DATA, ONLY : NSST_DATA - - IMPLICIT NONE - - INTEGER, INTENT(IN) :: IJ - - REAL, INTENT(IN) :: TFREEZ - - TYPE(NSST_DATA), INTENT(INOUT) :: NSST - - NSST%C_0(IJ) = 0.0 - NSST%C_D(IJ) = 0.0 - NSST%D_CONV(IJ) = 0.0 - NSST%DT_COOL(IJ) = 0.0 - NSST%IFD(IJ) = 0.0 - NSST%QRAIN(IJ) = 0.0 - NSST%TREF(IJ) = TFREEZ - NSST%W_0(IJ) = 0.0 - NSST%W_D(IJ) = 0.0 - NSST%XS(IJ) = 0.0 - NSST%XT(IJ) = 0.0 - NSST%XTTS(IJ) = 0.0 - NSST%XU(IJ) = 0.0 - NSST%XV(IJ) = 0.0 - NSST%XZ(IJ) = 30.0 - NSST%XZTS(IJ) = 0.0 - NSST%Z_C(IJ) = 0.0 - NSST%ZM(IJ) = 0.0 - - END SUBROUTINE NSST_WATER_RESET - - SUBROUTINE REMAP_COEF( is, ie, js, je,& - im, jm, lon, lat, id1, id2, jdc, s2c, agrid ) - -!---------------------------------------------------------------------- -! THIS ROUTINE WAS TAKEN FROM THE FORECAST MODEL - -! ./ATMOS_CUBED_SPHERE/TOOLS/FV_TREAT_DA_INC.F90. -!---------------------------------------------------------------------- - - implicit none - integer, intent(in):: is, ie, js, je - integer, intent(in):: im, jm - real, intent(in):: lon(im), lat(jm) - real, intent(out):: s2c(is:ie,js:je,4) - integer, intent(out), dimension(is:ie,js:je):: id1, id2, jdc - real, intent(in):: agrid(is:ie,js:je,2) - ! local: - real :: rdlon(im) - real :: rdlat(jm) - real:: a1, b1 - real, parameter :: pi = 3.1415926 - integer i,j, i1, i2, jc, i0, j0 - do i=1,im-1 - rdlon(i) = 1. / (lon(i+1) - lon(i)) - enddo - rdlon(im) = 1. / (lon(1) + 2.*pi - lon(im)) - - do j=1,jm-1 - rdlat(j) = 1. / (lat(j+1) - lat(j)) - enddo - - ! * Interpolate to cubed sphere cell center - do 5000 j=js,je - - do i=is,ie - - if ( agrid(i,j,1)>lon(im) ) then - i1 = im; i2 = 1 - a1 = (agrid(i,j,1)-lon(im)) * rdlon(im) - elseif ( agrid(i,j,1)=lon(i0) .and. agrid(i,j,1)<=lon(i0+1) ) then - i1 = i0; i2 = i0+1 - a1 = (agrid(i,j,1)-lon(i1)) * rdlon(i0) - go to 111 - endif - enddo - endif -111 continue - - if ( agrid(i,j,2)lat(jm) ) then - jc = jm-1 - b1 = 1. - else - do j0=1,jm-1 - if ( agrid(i,j,2)>=lat(j0) .and. agrid(i,j,2)<=lat(j0+1) ) then - jc = j0 - b1 = (agrid(i,j,2)-lat(jc)) * rdlat(jc) - go to 222 - endif - enddo - endif -222 continue - - if ( a1<0.0 .or. a1>1.0 .or. b1<0.0 .or. b1>1.0 ) then - write(*,*) 'gid=', i,j,a1, b1 - endif - - s2c(i,j,1) = (1.-a1) * (1.-b1) - s2c(i,j,2) = a1 * (1.-b1) - s2c(i,j,3) = a1 * b1 - s2c(i,j,4) = (1.-a1) * b1 - id1(i,j) = i1 - id2(i,j) = i2 - jdc(i,j) = jc - enddo !i-loop -5000 continue ! j-loop - - END SUBROUTINE REMAP_COEF diff --git a/sorc/global_cycle.fd/machine.f90 b/sorc/global_cycle.fd/machine.f90 deleted file mode 100755 index 7cc16f3eed..0000000000 --- a/sorc/global_cycle.fd/machine.f90 +++ /dev/null @@ -1,15 +0,0 @@ - MODULE MACHINE - - IMPLICIT NONE - SAVE -! Machine dependant constants - integer, parameter :: kind_io4 = 4, kind_io8 = 8 , kind_ior = 8, & - kind_evod = 8, kind_dbl_prec = 8, & - kind_rad = selected_real_kind(13,60), & ! the '60' maps to 64-bit real - kind_phys = selected_real_kind(13,60), & ! the '60' maps to 64-bit real - kind_REAL = 8, & ! used in cmp_comm - kind_INTEGER = 4 ! -,,- -! - real(kind=kind_evod), parameter :: mprec = 1.e-12 ! machine precision to restrict dep - - END MODULE MACHINE diff --git a/sorc/global_cycle.fd/makefile.sh b/sorc/global_cycle.fd/makefile.sh deleted file mode 100755 index 3ba5efb207..0000000000 --- a/sorc/global_cycle.fd/makefile.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/ksh -set -x - -#----------------------------------------------------- -#-use standard module. -#----------------------------------------------------- - -export FCMP=${FCMP:-ifort} - -##export DEBUG='-ftrapuv -check all -check nooutput_conversion -fp-stack-check -fstack-protector -traceback -g' -export INCS="-I$IP_INCd ${NETCDF_INCLUDE}" -export FFLAGS="$INCS -O3 -fp-model precise -r8 -convert big_endian -traceback -g" -export OMPFLAG=-qopenmp -export LDFLG=-qopenmp - -export LIBSM="${W3NCO_LIBd} ${BACIO_LIB4} ${IP_LIBd} ${SP_LIBd} ${NETCDF_LDFLAGS_F}" - -make -f Makefile clean -make -f Makefile -make -f Makefile install -make -f Makefile clean diff --git a/sorc/global_cycle.fd/num_parthds.f90 b/sorc/global_cycle.fd/num_parthds.f90 deleted file mode 100755 index c629dfb5db..0000000000 --- a/sorc/global_cycle.fd/num_parthds.f90 +++ /dev/null @@ -1,7 +0,0 @@ - integer function num_parthds() - use omp_lib -!$OMP PARALLEL - num_parthds=omp_get_num_threads() -!$OMP END PARALLEL - return - end function num_parthds diff --git a/sorc/global_cycle.fd/read_write_data.f90 b/sorc/global_cycle.fd/read_write_data.f90 deleted file mode 100644 index 829ba087b2..0000000000 --- a/sorc/global_cycle.fd/read_write_data.f90 +++ /dev/null @@ -1,1495 +0,0 @@ - MODULE READ_WRITE_DATA - - USE NETCDF - - PRIVATE - -! DATA STRUCTURE TO HOLD ALL NSST RECORDS. - - TYPE, PUBLIC :: NSST_DATA - REAL, ALLOCATABLE :: C_0(:) - REAL, ALLOCATABLE :: C_D(:) - REAL, ALLOCATABLE :: D_CONV(:) - REAL, ALLOCATABLE :: DT_COOL(:) - REAL, ALLOCATABLE :: IFD(:) - REAL, ALLOCATABLE :: QRAIN(:) - REAL, ALLOCATABLE :: TREF(:) - REAL, ALLOCATABLE :: TFINC(:) - REAL, ALLOCATABLE :: W_0(:) - REAL, ALLOCATABLE :: W_D(:) - REAL, ALLOCATABLE :: XS(:) - REAL, ALLOCATABLE :: XT(:) - REAL, ALLOCATABLE :: XTTS(:) - REAL, ALLOCATABLE :: XU(:) - REAL, ALLOCATABLE :: XV(:) - REAL, ALLOCATABLE :: XZ(:) - REAL, ALLOCATABLE :: XZTS(:) - REAL, ALLOCATABLE :: Z_C(:) - REAL, ALLOCATABLE :: ZM(:) - END TYPE NSST_DATA - - INTEGER, PUBLIC :: IDIM_GAUS, JDIM_GAUS - - INTEGER, ALLOCATABLE, PUBLIC :: SLMSK_GAUS(:,:) - - REAL, ALLOCATABLE, PUBLIC :: DTREF_GAUS(:,:) - - PUBLIC :: READ_DATA - PUBLIC :: READ_GSI_DATA - PUBLIC :: READ_LAT_LON_OROG - PUBLIC :: WRITE_DATA - - CONTAINS - - subroutine write_data(slifcs,tsffcs,snofcs,tg3fcs,zorfcs, & - albfcs,alffcs,vegfcs,cnpfcs,f10m, & - t2m,q2m,vetfcs,sotfcs,ustar,fmm,fhh, & - sicfcs,sihfcs,sitfcs,tprcp,srflag, & - swdfcs,vmnfcs,vmxfcs,slpfcs, & - absfcs,slcfcs,smcfcs,stcfcs,& - idim,jdim,lensfc,lsoil,do_nsst,nsst) - -!------------------------------------------------------------------ -! Write out all surface records - and nsst records if selected - -! to a netcdf file. -! -! Note: the model restart files contain an additional snow field - -! snow cover (snocvr). That field is required for bit identical -! reproducability. If that record does not exist, the model -! will compute it as an initialization step. Because this -! program does not contain the snow cover algorithm, it will -! let the model compute it. -!------------------------------------------------------------------ - - implicit none - - integer, intent(in) :: idim, jdim, lensfc, lsoil - - logical, intent(in) :: do_nsst - - real, intent(in) :: slifcs(lensfc), tsffcs(lensfc) - real, intent(in) :: snofcs(lensfc), tg3fcs(lensfc) - real, intent(in) :: vegfcs(lensfc), cnpfcs(lensfc) - real, intent(in) :: zorfcs(lensfc), albfcs(lensfc,4) - real, intent(in) :: f10m(lensfc), alffcs(lensfc,2) - real, intent(in) :: t2m(lensfc), q2m(lensfc) - real, intent(in) :: vetfcs(lensfc), sotfcs(lensfc) - real, intent(in) :: ustar(lensfc), fmm(lensfc) - real, intent(in) :: fhh(lensfc), sicfcs(lensfc) - real, intent(in) :: sihfcs(lensfc), sitfcs(lensfc) - real, intent(in) :: tprcp(lensfc), srflag(lensfc) - real, intent(in) :: swdfcs(lensfc), vmnfcs(lensfc) - real, intent(in) :: vmxfcs(lensfc), slpfcs(lensfc) - real, intent(in) :: absfcs(lensfc), slcfcs(lensfc,lsoil) - real, intent(in) :: smcfcs(lensfc,lsoil), stcfcs(lensfc,lsoil) - - type(nsst_data) :: nsst - - character(len=3) :: rankch - character(len=50) :: fnbgso - - integer :: fsize=65536, inital=0 - integer :: header_buffer_val = 16384 - integer :: dims_3d(3), dims_strt(3), dims_end(3) - integer :: dims_4d(4), dims4_strt(4), dims4_end(4) - integer :: error, i, ncid - integer :: dim_x, dim_y, dim_lsoil, dim_time - integer :: id_x, id_y, id_lsoil, id_time - integer :: id_slmsk, id_tsea, id_sheleg - integer :: id_alnwf, id_alvwf, id_alnsf, id_alvsf - integer :: id_tg3, id_zorl, id_facsf, id_facwf - integer :: id_vfrac, id_canopy, id_f10m, id_t2m - integer :: id_q2m, id_stype, id_vtype, id_uustar - integer :: id_ffmm, id_ffhh, id_fice, id_hice - integer :: id_tisfc, id_tprcp, id_srflag - integer :: id_snwdph, id_shdmin, id_shdmax - integer :: id_slope, id_snoalb, id_qrain - integer :: id_dt_cool, id_ifd, id_d_conv - integer :: id_xzts, id_xtts, id_zm, id_xz - integer :: id_xv, id_xu, id_xs, id_xt - integer :: id_w_d, id_w_0, id_c_d, id_tfinc - integer :: id_c_0, id_z_c, id_tref - integer :: id_stc, id_smc, id_slc - integer :: myrank - - real(kind=4) :: times - real(kind=4), allocatable :: lsoil_data(:), x_data(:), y_data(:) - real(kind=8), allocatable :: dum2d(:,:), dum3d(:,:,:) - - include "mpif.h" - - call mpi_comm_rank(mpi_comm_world, myrank, error) - - write(rankch, '(i3.3)') (myrank+1) - - fnbgso = "./fnbgso." // rankch - - print* - print*,"WRITE OUTPUT SFC DATA TO: ",trim(fnbgso) - -!--- open the file - error = NF90_CREATE(fnbgso, IOR(NF90_NETCDF4,NF90_CLASSIC_MODEL), ncid, initialsize=inital, chunksize=fsize) - call netcdf_err(error, 'CREATING FILE='//trim(fnbgso) ) - -!--- define dimensions - error = nf90_def_dim(ncid, 'xaxis_1', idim, dim_x) - call netcdf_err(error, 'DEFINING XAXIS DIMENSION' ) - error = nf90_def_dim(ncid, 'yaxis_1', jdim, dim_y) - call netcdf_err(error, 'DEFINING YAXIS DIMENSION' ) - error = nf90_def_dim(ncid, 'zaxis_1', lsoil, dim_lsoil) - call netcdf_err(error, 'DEFINING ZAXIS DIMENSION' ) - error = nf90_def_dim(ncid, 'Time', 1, dim_time) - call netcdf_err(error, 'DEFINING TIME DIMENSION' ) - - !--- define fields - error = nf90_def_var(ncid, 'xaxis_1', NF90_FLOAT, dim_x, id_x) - call netcdf_err(error, 'DEFINING XAXIS_1 FIELD' ) - error = nf90_put_att(ncid, id_x, "long_name", "xaxis_1") - call netcdf_err(error, 'DEFINING XAXIS_1 LONG NAME' ) - error = nf90_put_att(ncid, id_x, "units", "none") - call netcdf_err(error, 'DEFINING XAXIS_1 UNITS' ) - error = nf90_put_att(ncid, id_x, "cartesian_axis", "X") - call netcdf_err(error, 'WRITING XAXIS_1 FIELD' ) - - error = nf90_def_var(ncid, 'yaxis_1', NF90_FLOAT, dim_y, id_y) - call netcdf_err(error, 'DEFINING YAXIS_1 FIELD' ) - error = nf90_put_att(ncid, id_y, "long_name", "yaxis_1") - call netcdf_err(error, 'DEFINING YAXIS_1 LONG NAME' ) - error = nf90_put_att(ncid, id_y, "units", "none") - call netcdf_err(error, 'DEFINING YAXIS_1 UNITS' ) - error = nf90_put_att(ncid, id_y, "cartesian_axis", "Y") - call netcdf_err(error, 'WRITING YAXIS_1 FIELD' ) - - error = nf90_def_var(ncid, 'zaxis_1', NF90_FLOAT, dim_lsoil, id_lsoil) - call netcdf_err(error, 'DEFINING ZAXIS_1 FIELD' ) - error = nf90_put_att(ncid, id_lsoil, "long_name", "zaxis_1") - call netcdf_err(error, 'DEFINING ZAXIS_1 LONG NAME' ) - error = nf90_put_att(ncid, id_lsoil, "units", "none") - call netcdf_err(error, 'DEFINING ZAXIS_1 UNITS' ) - error = nf90_put_att(ncid, id_lsoil, "cartesian_axis", "Z") - call netcdf_err(error, 'WRITING ZAXIS_1 FIELD' ) - - error = nf90_def_var(ncid, 'Time', NF90_FLOAT, dim_time, id_time) - call netcdf_err(error, 'DEFINING TIME FIELD' ) - error = nf90_put_att(ncid, id_time, "long_name", "Time") - call netcdf_err(error, 'DEFINING TIME LONG NAME' ) - error = nf90_put_att(ncid, id_time, "units", "time level") - call netcdf_err(error, 'DEFINING TIME UNITS' ) - error = nf90_put_att(ncid, id_time, "cartesian_axis", "T") - call netcdf_err(error, 'WRITING TIME FIELD' ) - - dims_3d(1) = dim_x - dims_3d(2) = dim_y - dims_3d(3) = dim_time - - error = nf90_def_var(ncid, 'slmsk', NF90_DOUBLE, dims_3d, id_slmsk) - call netcdf_err(error, 'DEFINING SLMSK' ) - error = nf90_put_att(ncid, id_slmsk, "long_name", "slmsk") - call netcdf_err(error, 'DEFINING SLMSK LONG NAME' ) - error = nf90_put_att(ncid, id_slmsk, "units", "none") - call netcdf_err(error, 'DEFINING SLMSK UNITS' ) - - error = nf90_def_var(ncid, 'tsea', NF90_DOUBLE, dims_3d, id_tsea) - call netcdf_err(error, 'DEFINING TSEA' ) - error = nf90_put_att(ncid, id_tsea, "long_name", "tsea") - call netcdf_err(error, 'DEFINING TSEA LONG NAME' ) - error = nf90_put_att(ncid, id_tsea, "units", "none") - call netcdf_err(error, 'DEFINING TSEA UNITS' ) - - error = nf90_def_var(ncid, 'sheleg', NF90_DOUBLE, dims_3d, id_sheleg) - call netcdf_err(error, 'DEFINING SHELEG' ) - error = nf90_put_att(ncid, id_sheleg, "long_name", "sheleg") - call netcdf_err(error, 'DEFINING SHELEG LONG NAME' ) - error = nf90_put_att(ncid, id_sheleg, "units", "none") - call netcdf_err(error, 'DEFINING SHELEG UNITS' ) - - error = nf90_def_var(ncid, 'tg3', NF90_DOUBLE, dims_3d, id_tg3) - call netcdf_err(error, 'DEFINING TG3' ) - error = nf90_put_att(ncid, id_tg3, "long_name", "tg3") - call netcdf_err(error, 'DEFINING TG3 LONG NAME' ) - error = nf90_put_att(ncid, id_tg3, "units", "none") - call netcdf_err(error, 'DEFINING TG3 UNITS' ) - - error = nf90_def_var(ncid, 'zorl', NF90_DOUBLE, dims_3d, id_zorl) - call netcdf_err(error, 'DEFINING ZORL' ) - error = nf90_put_att(ncid, id_zorl, "long_name", "zorl") - call netcdf_err(error, 'DEFINING ZORL LONG NAME' ) - error = nf90_put_att(ncid, id_zorl, "units", "none") - call netcdf_err(error, 'DEFINING ZORL UNITS' ) - - error = nf90_def_var(ncid, 'alvsf', NF90_DOUBLE, dims_3d, id_alvsf) - call netcdf_err(error, 'DEFINING ALVSF' ) - error = nf90_put_att(ncid, id_alvsf, "long_name", "alvsf") - call netcdf_err(error, 'DEFINING ALVSF LONG NAME' ) - error = nf90_put_att(ncid, id_alvsf, "units", "none") - call netcdf_err(error, 'DEFINING ALVSF UNITS' ) - - error = nf90_def_var(ncid, 'alvwf', NF90_DOUBLE, dims_3d, id_alvwf) - call netcdf_err(error, 'DEFINING ALVWF' ) - error = nf90_put_att(ncid, id_alvwf, "long_name", "alvwf") - call netcdf_err(error, 'DEFINING ALVWF LONG NAME' ) - error = nf90_put_att(ncid, id_alvwf, "units", "none") - call netcdf_err(error, 'DEFINING ALVWF UNITS' ) - - error = nf90_def_var(ncid, 'alnsf', NF90_DOUBLE, dims_3d, id_alnsf) - call netcdf_err(error, 'DEFINING ALNSF' ) - error = nf90_put_att(ncid, id_alnsf, "long_name", "alnsf") - call netcdf_err(error, 'DEFINING ALNSF LONG NAME' ) - error = nf90_put_att(ncid, id_alnsf, "units", "none") - call netcdf_err(error, 'DEFINING ALNSF UNITS' ) - - error = nf90_def_var(ncid, 'alnwf', NF90_DOUBLE, dims_3d, id_alnwf) - call netcdf_err(error, 'DEFINING ALNWF' ) - error = nf90_put_att(ncid, id_alnwf, "long_name", "alnwf") - call netcdf_err(error, 'DEFINING ALNWF LONG NAME' ) - error = nf90_put_att(ncid, id_alnwf, "units", "none") - call netcdf_err(error, 'DEFINING ALNWF UNITS' ) - - error = nf90_def_var(ncid, 'facsf', NF90_DOUBLE, dims_3d, id_facsf) - call netcdf_err(error, 'DEFINING FACSF' ) - error = nf90_put_att(ncid, id_facsf, "long_name", "facsf") - call netcdf_err(error, 'DEFINING FACSF LONG NAME' ) - error = nf90_put_att(ncid, id_facsf, "units", "none") - call netcdf_err(error, 'DEFINING FACSF UNITS' ) - - error = nf90_def_var(ncid, 'facwf', NF90_DOUBLE, dims_3d, id_facwf) - call netcdf_err(error, 'DEFINING FACWF' ) - error = nf90_put_att(ncid, id_facwf, "long_name", "facwf") - call netcdf_err(error, 'DEFINING FACWF LONG NAME' ) - error = nf90_put_att(ncid, id_facwf, "units", "none") - call netcdf_err(error, 'DEFINING FACWF UNITS' ) - - error = nf90_def_var(ncid, 'vfrac', NF90_DOUBLE, dims_3d, id_vfrac) - call netcdf_err(error, 'DEFINING VFRAC' ) - error = nf90_put_att(ncid, id_vfrac, "long_name", "vfrac") - call netcdf_err(error, 'DEFINING FACWF LONG NAME' ) - error = nf90_put_att(ncid, id_vfrac, "units", "none") - call netcdf_err(error, 'DEFINING VFRAC UNITS' ) - - error = nf90_def_var(ncid, 'canopy', NF90_DOUBLE, dims_3d, id_canopy) - call netcdf_err(error, 'DEFINING CANOPY' ) - error = nf90_put_att(ncid, id_canopy, "long_name", "canopy") - call netcdf_err(error, 'DEFINING CANOPY LONG NAME' ) - error = nf90_put_att(ncid, id_canopy, "units", "none") - call netcdf_err(error, 'DEFINING CANOPY UNITS' ) - - error = nf90_def_var(ncid, 'f10m', NF90_DOUBLE, dims_3d, id_f10m) - call netcdf_err(error, 'DEFINING F10M' ) - error = nf90_put_att(ncid, id_f10m, "long_name", "f10m") - call netcdf_err(error, 'DEFINING F10M LONG NAME' ) - error = nf90_put_att(ncid, id_f10m, "units", "none") - call netcdf_err(error, 'DEFINING F10M UNITS' ) - - error = nf90_def_var(ncid, 't2m', NF90_DOUBLE, dims_3d, id_t2m) - call netcdf_err(error, 'DEFINING T2M' ) - error = nf90_put_att(ncid, id_t2m, "long_name", "t2m") - call netcdf_err(error, 'DEFINING T2M LONG NAME' ) - error = nf90_put_att(ncid, id_t2m, "units", "none") - call netcdf_err(error, 'DEFINING T2M UNITS' ) - - error = nf90_def_var(ncid, 'q2m', NF90_DOUBLE, dims_3d, id_q2m) - call netcdf_err(error, 'DEFINING Q2M' ) - error = nf90_put_att(ncid, id_q2m, "long_name", "q2m") - call netcdf_err(error, 'DEFINING Q2M LONG NAME' ) - error = nf90_put_att(ncid, id_q2m, "units", "none") - call netcdf_err(error, 'DEFINING Q2M UNITS' ) - - error = nf90_def_var(ncid, 'vtype', NF90_DOUBLE, dims_3d, id_vtype) - call netcdf_err(error, 'DEFINING VTYPE' ) - error = nf90_put_att(ncid, id_vtype, "long_name", "vtype") - call netcdf_err(error, 'DEFINING VTYPE LONG NAME' ) - error = nf90_put_att(ncid, id_vtype, "units", "none") - call netcdf_err(error, 'DEFINING VTYPE UNITS' ) - - error = nf90_def_var(ncid, 'stype', NF90_DOUBLE, dims_3d, id_stype) - call netcdf_err(error, 'DEFINING STYPE' ) - error = nf90_put_att(ncid, id_stype, "long_name", "stype") - call netcdf_err(error, 'DEFINING STYPE LONG NAME' ) - error = nf90_put_att(ncid, id_stype, "units", "none") - call netcdf_err(error, 'DEFINING STYPE UNITS' ) - - error = nf90_def_var(ncid, 'uustar', NF90_DOUBLE, dims_3d, id_uustar) - call netcdf_err(error, 'DEFINING UUSTAR' ) - error = nf90_put_att(ncid, id_uustar, "long_name", "uustar") - call netcdf_err(error, 'DEFINING UUSTAR LONG NAME' ) - error = nf90_put_att(ncid, id_uustar, "units", "none") - call netcdf_err(error, 'DEFINING UUSTAR UNITS' ) - - error = nf90_def_var(ncid, 'ffmm', NF90_DOUBLE, dims_3d, id_ffmm) - call netcdf_err(error, 'DEFINING FFMM' ) - error = nf90_put_att(ncid, id_ffmm, "long_name", "ffmm") - call netcdf_err(error, 'DEFINING FFMM LONG NAME' ) - error = nf90_put_att(ncid, id_ffmm, "units", "none") - call netcdf_err(error, 'DEFINING FFMM UNITS' ) - - error = nf90_def_var(ncid, 'ffhh', NF90_DOUBLE, dims_3d, id_ffhh) - call netcdf_err(error, 'DEFINING FFHH' ) - error = nf90_put_att(ncid, id_ffhh, "long_name", "ffhh") - call netcdf_err(error, 'DEFINING FFHH LONG NAME' ) - error = nf90_put_att(ncid, id_ffhh, "units", "none") - call netcdf_err(error, 'DEFINING FFHH UNITS' ) - - error = nf90_def_var(ncid, 'hice', NF90_DOUBLE, dims_3d, id_hice) - call netcdf_err(error, 'DEFINING HICE' ) - error = nf90_put_att(ncid, id_hice, "long_name", "hice") - call netcdf_err(error, 'DEFINING HICE LONG NAME' ) - error = nf90_put_att(ncid, id_hice, "units", "none") - call netcdf_err(error, 'DEFINING HICE UNITS' ) - - error = nf90_def_var(ncid, 'fice', NF90_DOUBLE, dims_3d, id_fice) - call netcdf_err(error, 'DEFINING FICE' ) - error = nf90_put_att(ncid, id_fice, "long_name", "fice") - call netcdf_err(error, 'DEFINING FICE LONG NAME' ) - error = nf90_put_att(ncid, id_fice, "units", "none") - call netcdf_err(error, 'DEFINING FICE UNITS' ) - - error = nf90_def_var(ncid, 'tisfc', NF90_DOUBLE, dims_3d, id_tisfc) - call netcdf_err(error, 'DEFINING TISFC' ) - error = nf90_put_att(ncid, id_tisfc, "long_name", "tisfc") - call netcdf_err(error, 'DEFINING TISFC LONG NAME' ) - error = nf90_put_att(ncid, id_tisfc, "units", "none") - call netcdf_err(error, 'DEFINING TISFC UNITS' ) - - error = nf90_def_var(ncid, 'tprcp', NF90_DOUBLE, dims_3d, id_tprcp) - call netcdf_err(error, 'DEFINING TPRCP' ) - error = nf90_put_att(ncid, id_tprcp, "long_name", "tprcp") - call netcdf_err(error, 'DEFINING TPRCP LONG NAME' ) - error = nf90_put_att(ncid, id_tprcp, "units", "none") - call netcdf_err(error, 'DEFINING TPRCP UNITS' ) - - error = nf90_def_var(ncid, 'srflag', NF90_DOUBLE, dims_3d, id_srflag) - call netcdf_err(error, 'DEFINING SRFLAG' ) - error = nf90_put_att(ncid, id_srflag, "long_name", "srflag") - call netcdf_err(error, 'DEFINING SRFLAG LONG NAME' ) - error = nf90_put_att(ncid, id_srflag, "units", "none") - call netcdf_err(error, 'DEFINING SRFLAG UNITS' ) - - error = nf90_def_var(ncid, 'snwdph', NF90_DOUBLE, dims_3d, id_snwdph) - call netcdf_err(error, 'DEFINING SNWDPH' ) - error = nf90_put_att(ncid, id_snwdph, "long_name", "snwdph") - call netcdf_err(error, 'DEFINING SNWDPH LONG NAME' ) - error = nf90_put_att(ncid, id_snwdph, "units", "none") - call netcdf_err(error, 'DEFINING SNWDPH UNITS' ) - - error = nf90_def_var(ncid, 'shdmin', NF90_DOUBLE, dims_3d, id_shdmin) - call netcdf_err(error, 'DEFINING SHDMIN' ) - error = nf90_put_att(ncid, id_shdmin, "long_name", "shdmin") - call netcdf_err(error, 'DEFINING SHDMIN LONG NAME' ) - error = nf90_put_att(ncid, id_shdmin, "units", "none") - call netcdf_err(error, 'DEFINING SHDMIN UNITS' ) - - error = nf90_def_var(ncid, 'shdmax', NF90_DOUBLE, dims_3d, id_shdmax) - call netcdf_err(error, 'DEFINING SHDMAX' ) - error = nf90_put_att(ncid, id_shdmax, "long_name", "shdmax") - call netcdf_err(error, 'DEFINING SHDMAX LONG NAME' ) - error = nf90_put_att(ncid, id_shdmax, "units", "none") - call netcdf_err(error, 'DEFINING SHDMAX UNITS' ) - - error = nf90_def_var(ncid, 'slope', NF90_DOUBLE, dims_3d, id_slope) - call netcdf_err(error, 'DEFINING SLOPE' ) - error = nf90_put_att(ncid, id_slope, "long_name", "slope") - call netcdf_err(error, 'DEFINING SLOPE LONG NAME' ) - error = nf90_put_att(ncid, id_slope, "units", "none") - call netcdf_err(error, 'DEFINING SLOPE UNITS' ) - - error = nf90_def_var(ncid, 'snoalb', NF90_DOUBLE, dims_3d, id_snoalb) - call netcdf_err(error, 'DEFINING SNOALB' ) - error = nf90_put_att(ncid, id_snoalb, "long_name", "snoalb") - call netcdf_err(error, 'DEFINING SNOALB LONG NAME' ) - error = nf90_put_att(ncid, id_snoalb, "units", "none") - call netcdf_err(error, 'DEFINING SNOALB UNITS' ) - - NSST_HEADER : if (do_nsst) then - - print* - print*,"WRITE NSST RECORDS." - - error = nf90_def_var(ncid, 'tref', NF90_DOUBLE, dims_3d, id_tref) - call netcdf_err(error, 'DEFINING TREF' ) - error = nf90_put_att(ncid, id_tref, "long_name", "tref") - call netcdf_err(error, 'DEFINING TREF LONG NAME' ) - error = nf90_put_att(ncid, id_tref, "units", "none") - call netcdf_err(error, 'DEFINING TREF UNITS' ) - - error = nf90_def_var(ncid, 'z_c', NF90_DOUBLE, dims_3d, id_z_c) - call netcdf_err(error, 'DEFINING Z_C' ) - error = nf90_put_att(ncid, id_z_c, "long_name", "z_c") - call netcdf_err(error, 'DEFINING Z_C LONG NAME' ) - error = nf90_put_att(ncid, id_z_c, "units", "none") - call netcdf_err(error, 'DEFINING Z_C UNITS' ) - - error = nf90_def_var(ncid, 'c_0', NF90_DOUBLE, dims_3d, id_c_0) - call netcdf_err(error, 'DEFINING C_0' ) - error = nf90_put_att(ncid, id_c_0, "long_name", "c_0") - call netcdf_err(error, 'DEFINING C_0 LONG NAME' ) - error = nf90_put_att(ncid, id_c_0, "units", "none") - call netcdf_err(error, 'DEFINING C_0 UNITS' ) - - error = nf90_def_var(ncid, 'c_d', NF90_DOUBLE, dims_3d, id_c_d) - call netcdf_err(error, 'DEFINING C_D' ) - error = nf90_put_att(ncid, id_c_d, "long_name", "c_d") - call netcdf_err(error, 'DEFINING C_D LONG NAME' ) - error = nf90_put_att(ncid, id_c_d, "units", "none") - call netcdf_err(error, 'DEFINING C_D UNITS' ) - - error = nf90_def_var(ncid, 'w_0', NF90_DOUBLE, dims_3d, id_w_0) - call netcdf_err(error, 'DEFINING W_0' ) - error = nf90_put_att(ncid, id_w_0, "long_name", "w_0") - call netcdf_err(error, 'DEFINING W_0 LONG NAME' ) - error = nf90_put_att(ncid, id_w_0, "units", "none") - call netcdf_err(error, 'DEFINING W_0 UNITS' ) - - error = nf90_def_var(ncid, 'w_d', NF90_DOUBLE, dims_3d, id_w_d) - call netcdf_err(error, 'DEFINING W_D' ) - error = nf90_put_att(ncid, id_w_d, "long_name", "w_d") - call netcdf_err(error, 'DEFINING W_D LONG NAME' ) - error = nf90_put_att(ncid, id_w_d, "units", "none") - call netcdf_err(error, 'DEFINING W_D UNITS' ) - - error = nf90_def_var(ncid, 'xt', NF90_DOUBLE, dims_3d, id_xt) - call netcdf_err(error, 'DEFINING XT' ) - error = nf90_put_att(ncid, id_xt, "long_name", "xt") - call netcdf_err(error, 'DEFINING XT LONG NAME' ) - error = nf90_put_att(ncid, id_xt, "units", "none") - call netcdf_err(error, 'DEFINING XT UNITS' ) - - error = nf90_def_var(ncid, 'xs', NF90_DOUBLE, dims_3d, id_xs) - call netcdf_err(error, 'DEFINING XS' ) - error = nf90_put_att(ncid, id_xs, "long_name", "xs") - call netcdf_err(error, 'DEFINING XS LONG NAME' ) - error = nf90_put_att(ncid, id_xs, "units", "none") - call netcdf_err(error, 'DEFINING XS UNITS' ) - - error = nf90_def_var(ncid, 'xu', NF90_DOUBLE, dims_3d, id_xu) - call netcdf_err(error, 'DEFINING XU' ) - error = nf90_put_att(ncid, id_xu, "long_name", "xu") - call netcdf_err(error, 'DEFINING XU LONG NAME' ) - error = nf90_put_att(ncid, id_xu, "units", "none") - call netcdf_err(error, 'DEFINING XU UNITS' ) - - error = nf90_def_var(ncid, 'xv', NF90_DOUBLE, dims_3d, id_xv) - call netcdf_err(error, 'DEFINING XV' ) - error = nf90_put_att(ncid, id_xv, "long_name", "xv") - call netcdf_err(error, 'DEFINING XV LONG NAME' ) - error = nf90_put_att(ncid, id_xv, "units", "none") - call netcdf_err(error, 'DEFINING XV UNITS' ) - - error = nf90_def_var(ncid, 'xz', NF90_DOUBLE, dims_3d, id_xz) - call netcdf_err(error, 'DEFINING XZ' ) - error = nf90_put_att(ncid, id_xz, "long_name", "xz") - call netcdf_err(error, 'DEFINING XZ LONG NAME' ) - error = nf90_put_att(ncid, id_xz, "units", "none") - call netcdf_err(error, 'DEFINING XZ UNITS' ) - - error = nf90_def_var(ncid, 'zm', NF90_DOUBLE, dims_3d, id_zm) - call netcdf_err(error, 'DEFINING ZM' ) - error = nf90_put_att(ncid, id_zm, "long_name", "zm") - call netcdf_err(error, 'DEFINING ZM LONG NAME' ) - error = nf90_put_att(ncid, id_zm, "units", "none") - call netcdf_err(error, 'DEFINING ZM UNITS' ) - - error = nf90_def_var(ncid, 'xtts', NF90_DOUBLE, dims_3d, id_xtts) - call netcdf_err(error, 'DEFINING XTTS' ) - error = nf90_put_att(ncid, id_xtts, "long_name", "xtts") - call netcdf_err(error, 'DEFINING XTTS LONG NAME' ) - error = nf90_put_att(ncid, id_xtts, "units", "none") - call netcdf_err(error, 'DEFINING XTTS UNITS' ) - - error = nf90_def_var(ncid, 'xzts', NF90_DOUBLE, dims_3d, id_xzts) - call netcdf_err(error, 'DEFINING XZTS' ) - error = nf90_put_att(ncid, id_xzts, "long_name", "xzts") - call netcdf_err(error, 'DEFINING XZTS LONG NAME' ) - error = nf90_put_att(ncid, id_xzts, "units", "none") - call netcdf_err(error, 'DEFINING XZTS UNITS' ) - - error = nf90_def_var(ncid, 'd_conv', NF90_DOUBLE, dims_3d, id_d_conv) - call netcdf_err(error, 'DEFINING D_CONV' ) - error = nf90_put_att(ncid, id_d_conv, "long_name", "d_conv") - call netcdf_err(error, 'DEFINING D_CONV LONG NAME' ) - error = nf90_put_att(ncid, id_d_conv, "units", "none") - call netcdf_err(error, 'DEFINING D_CONV UNITS' ) - - error = nf90_def_var(ncid, 'ifd', NF90_DOUBLE, dims_3d, id_ifd) - call netcdf_err(error, 'DEFINING IFD' ) - error = nf90_put_att(ncid, id_ifd, "long_name", "ifd") - call netcdf_err(error, 'DEFINING IFD LONG NAME' ) - error = nf90_put_att(ncid, id_ifd, "units", "none") - call netcdf_err(error, 'DEFINING IFD UNITS' ) - - error = nf90_def_var(ncid, 'dt_cool', NF90_DOUBLE, dims_3d, id_dt_cool) - call netcdf_err(error, 'DEFINING DT_COOL' ) - error = nf90_put_att(ncid, id_dt_cool, "long_name", "dt_cool") - call netcdf_err(error, 'DEFINING DT_COOL LONG NAME' ) - error = nf90_put_att(ncid, id_dt_cool, "units", "none") - call netcdf_err(error, 'DEFINING DT_COOL UNITS' ) - - error = nf90_def_var(ncid, 'qrain', NF90_DOUBLE, dims_3d, id_qrain) - call netcdf_err(error, 'DEFINING QRAIN' ) - error = nf90_put_att(ncid, id_qrain, "long_name", "qrain") - call netcdf_err(error, 'DEFINING QRAIN LONG NAME' ) - error = nf90_put_att(ncid, id_qrain, "units", "none") - call netcdf_err(error, 'DEFINING QRAIN UNITS' ) - - error = nf90_def_var(ncid, 'tfinc', NF90_DOUBLE, dims_3d, id_tfinc) - call netcdf_err(error, 'DEFINING TFINC' ) - error = nf90_put_att(ncid, id_tfinc, "long_name", "tfinc") - call netcdf_err(error, 'DEFINING TFINC LONG NAME' ) - error = nf90_put_att(ncid, id_tfinc, "units", "none") - call netcdf_err(error, 'DEFINING TFINC UNITS' ) - - endif NSST_HEADER - - dims_4d(1) = dim_x - dims_4d(2) = dim_y - dims_4d(3) = dim_lsoil - dims_4d(4) = dim_time - - error = nf90_def_var(ncid, 'stc', NF90_DOUBLE, dims_4d, id_stc) - call netcdf_err(error, 'DEFINING STC' ) - error = nf90_put_att(ncid, id_stc, "long_name", "stc") - call netcdf_err(error, 'DEFINING STC LONG NAME' ) - error = nf90_put_att(ncid, id_stc, "units", "none") - call netcdf_err(error, 'DEFINING STC UNITS' ) - - error = nf90_def_var(ncid, 'smc', NF90_DOUBLE, dims_4d, id_smc) - call netcdf_err(error, 'DEFINING SMC' ) - error = nf90_put_att(ncid, id_smc, "long_name", "smc") - call netcdf_err(error, 'DEFINING SMC LONG NAME' ) - error = nf90_put_att(ncid, id_smc, "units", "none") - call netcdf_err(error, 'DEFINING SMC UNITS' ) - - error = nf90_def_var(ncid, 'slc', NF90_DOUBLE, dims_4d, id_slc) - call netcdf_err(error, 'DEFINING SLC' ) - error = nf90_put_att(ncid, id_slc, "long_name", "slc") - call netcdf_err(error, 'DEFINING SLC LONG NAME' ) - error = nf90_put_att(ncid, id_slc, "units", "none") - call netcdf_err(error, 'DEFINING SLC UNITS' ) - - error = nf90_enddef(ncid, header_buffer_val,4,0,4) - call netcdf_err(error, 'DEFINING HEADER' ) - -!--------------------------------------------------------------------------------- -! Write data -!--------------------------------------------------------------------------------- - - allocate(lsoil_data(lsoil)) - do i = 1, lsoil - lsoil_data(i) = float(i) - enddo - - allocate(x_data(idim)) - do i = 1, idim - x_data(i) = float(i) - enddo - - allocate(y_data(jdim)) - do i = 1, jdim - y_data(i) = float(i) - enddo - - error = nf90_put_var( ncid, id_lsoil, lsoil_data) - call netcdf_err(error, 'WRITING ZAXIS RECORD' ) - error = nf90_put_var( ncid, id_x, x_data) - call netcdf_err(error, 'WRITING XAXIS RECORD' ) - error = nf90_put_var( ncid, id_y, y_data) - call netcdf_err(error, 'WRITING YAXIS RECORD' ) - times = 1.0 - error = nf90_put_var( ncid, id_time, times) - call netcdf_err(error, 'WRITING TIME RECORD' ) - - deallocate(lsoil_data, x_data, y_data) - - dims_strt(1:3) = 1 - dims_end(1) = idim - dims_end(2) = jdim - dims_end(3) = 1 - - allocate(dum2d(idim,jdim)) - - dum2d = reshape(slifcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_slmsk, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING LANDMASK RECORD' ) - - dum2d = reshape(tsffcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_tsea, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING TSEA RECORD' ) - - dum2d = reshape(snofcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_sheleg, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING SHELEG RECORD' ) - - dum2d = reshape(tg3fcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_tg3, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING TG3 RECORD' ) - - dum2d = reshape(zorfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_zorl, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING ZORL RECORD' ) - - dum2d = reshape(albfcs(:,1), (/idim,jdim/)) - error = nf90_put_var( ncid, id_alvsf, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING ALVSF RECORD' ) - - dum2d = reshape(albfcs(:,2), (/idim,jdim/)) - error = nf90_put_var( ncid, id_alvwf, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING ALVWF RECORD' ) - - dum2d = reshape(albfcs(:,3), (/idim,jdim/)) - error = nf90_put_var( ncid, id_alnsf, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING ALNSF RECORD' ) - - dum2d = reshape(albfcs(:,4), (/idim,jdim/)) - error = nf90_put_var( ncid, id_alnwf, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING ALNWF RECORD' ) - - dum2d = reshape(alffcs(:,1), (/idim,jdim/)) - error = nf90_put_var( ncid, id_facsf, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING FACSF RECORD' ) - - dum2d = reshape(alffcs(:,2), (/idim,jdim/)) - error = nf90_put_var( ncid, id_facwf, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING FACWF RECORD' ) - - dum2d = reshape(vegfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_vfrac, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING VFRAC RECORD' ) - - dum2d = reshape(cnpfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_canopy, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING CANOPY RECORD' ) - - dum2d = reshape(f10m, (/idim,jdim/)) - error = nf90_put_var( ncid, id_f10m, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING F10M RECORD' ) - - dum2d = reshape(t2m, (/idim,jdim/)) - error = nf90_put_var( ncid, id_t2m, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING T2M RECORD' ) - - dum2d = reshape(q2m, (/idim,jdim/)) - error = nf90_put_var( ncid, id_q2m, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING Q2M RECORD' ) - - dum2d = reshape(vetfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_vtype, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING VTYPE RECORD' ) - - dum2d = reshape(sotfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_stype, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING STYPE RECORD' ) - - dum2d = reshape(ustar, (/idim,jdim/)) - error = nf90_put_var( ncid, id_uustar, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING UUSTAR RECORD' ) - - dum2d = reshape(fmm, (/idim,jdim/)) - error = nf90_put_var( ncid, id_ffmm, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING FFMM RECORD' ) - - dum2d = reshape(fhh, (/idim,jdim/)) - error = nf90_put_var( ncid, id_ffhh, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING FFHH RECORD' ) - - dum2d = reshape(sihfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_hice, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING HICE RECORD' ) - - dum2d = reshape(sicfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_fice, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING FICE RECORD' ) - - dum2d = reshape(sitfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_tisfc, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING TISFC RECORD' ) - - dum2d = reshape(tprcp, (/idim,jdim/)) - error = nf90_put_var( ncid, id_tprcp, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING TPRCP RECORD' ) - - dum2d = reshape(srflag, (/idim,jdim/)) - error = nf90_put_var( ncid, id_srflag, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING SRFLAG RECORD' ) - - dum2d = reshape(swdfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_snwdph, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING SNWDPH RECORD' ) - - dum2d = reshape(vmnfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_shdmin, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING SHDMIN RECORD' ) - - dum2d = reshape(vmxfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_shdmax, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING SHDMAX RECORD' ) - - dum2d = reshape(slpfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_slope, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING SLOPE RECORD' ) - - dum2d = reshape(absfcs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_snoalb, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING SNOALB RECORD' ) - - NSST_WRITE : if (do_nsst) then - - dum2d = reshape(nsst%tref, (/idim,jdim/)) - error = nf90_put_var( ncid, id_tref, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING TREF RECORD' ) - - dum2d = reshape(nsst%z_c, (/idim,jdim/)) - error = nf90_put_var( ncid, id_z_c, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING Z_C RECORD' ) - - dum2d = reshape(nsst%c_0, (/idim,jdim/)) - error = nf90_put_var( ncid, id_c_0, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING C_0 RECORD' ) - - dum2d = reshape(nsst%c_d, (/idim,jdim/)) - error = nf90_put_var( ncid, id_c_d, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING C_D RECORD' ) - - dum2d = reshape(nsst%w_0, (/idim,jdim/)) - error = nf90_put_var( ncid, id_w_0, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING W_0 RECORD' ) - - dum2d = reshape(nsst%w_d, (/idim,jdim/)) - error = nf90_put_var( ncid, id_w_d, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING W_D RECORD' ) - - dum2d = reshape(nsst%xt, (/idim,jdim/)) - error = nf90_put_var( ncid, id_xt, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING XT RECORD' ) - - dum2d = reshape(nsst%xs, (/idim,jdim/)) - error = nf90_put_var( ncid, id_xs, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING XS RECORD' ) - - dum2d = reshape(nsst%xu, (/idim,jdim/)) - error = nf90_put_var( ncid, id_xu, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING XU RECORD' ) - - dum2d = reshape(nsst%xv, (/idim,jdim/)) - error = nf90_put_var( ncid, id_xv, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING XV RECORD' ) - - dum2d = reshape(nsst%xz, (/idim,jdim/)) - error = nf90_put_var( ncid, id_xz, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING XZ RECORD' ) - - dum2d = reshape(nsst%zm, (/idim,jdim/)) - error = nf90_put_var( ncid, id_zm, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING ZM RECORD' ) - - dum2d = reshape(nsst%zm, (/idim,jdim/)) - error = nf90_put_var( ncid, id_zm, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING ZM RECORD' ) - - dum2d = reshape(nsst%xtts, (/idim,jdim/)) - error = nf90_put_var( ncid, id_xtts, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING XTTS RECORD' ) - - dum2d = reshape(nsst%xzts, (/idim,jdim/)) - error = nf90_put_var( ncid, id_xzts, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING XZTS RECORD' ) - - dum2d = reshape(nsst%d_conv, (/idim,jdim/)) - error = nf90_put_var( ncid, id_d_conv, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING D_CONV RECORD' ) - - dum2d = reshape(nsst%ifd, (/idim,jdim/)) - error = nf90_put_var( ncid, id_ifd, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING IFD RECORD' ) - - dum2d = reshape(nsst%dt_cool, (/idim,jdim/)) - error = nf90_put_var( ncid, id_dt_cool, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING DT_COOL RECORD' ) - - dum2d = reshape(nsst%qrain, (/idim,jdim/)) - error = nf90_put_var( ncid, id_qrain, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING QRAIN RECORD' ) - - dum2d = reshape(nsst%tfinc, (/idim,jdim/)) - error = nf90_put_var( ncid, id_tfinc, dum2d, dims_strt, dims_end) - call netcdf_err(error, 'WRITING TFINC RECORD' ) - - endif NSST_WRITE - - deallocate(dum2d) - - dims4_strt(1:4) = 1 - dims4_end(1) = idim - dims4_end(2) = jdim - dims4_end(3) = lsoil - dims4_end(4) = 1 - - allocate(dum3d(idim,jdim,lsoil)) - - dum3d = reshape(slcfcs, (/idim,jdim,lsoil/)) - error = nf90_put_var( ncid, id_slc, dum3d, dims4_strt, dims4_end) - call netcdf_err(error, 'WRITING SLC RECORD' ) - - dum3d = reshape(smcfcs, (/idim,jdim,lsoil/)) - error = nf90_put_var( ncid, id_smc, dum3d, dims4_strt, dims4_end) - call netcdf_err(error, 'WRITING SMC RECORD' ) - - dum3d = reshape(stcfcs, (/idim,jdim,lsoil/)) - error = nf90_put_var( ncid, id_stc, dum3d, dims4_strt, dims4_end) - call netcdf_err(error, 'WRITING STC RECORD' ) - - deallocate(dum3d) - - error = nf90_close(ncid) - - end subroutine write_data - - SUBROUTINE READ_LAT_LON_OROG(RLA,RLO,OROG,OROG_UF,& - IDIM,JDIM,IJDIM) - -!-------------------------------------------------------------- -! READ LATITUDE, LONGITUDE, FILTERED OROGRAPHY, AND -! UNFILTERED OROGRAPHY FOR THE CUBED-SPHERE TILE FROM -! THE "GRID" FILE. -!-------------------------------------------------------------- - - IMPLICIT NONE - - include "mpif.h" - - INTEGER, INTENT(IN) :: IDIM, JDIM, IJDIM - - REAL, INTENT(OUT) :: RLA(IJDIM),RLO(IJDIM) - REAL, INTENT(OUT) :: OROG(IJDIM),OROG_UF(IJDIM) - - CHARACTER(LEN=50) :: FNOROG, FNGRID - CHARACTER(LEN=3) :: RANKCH - - INTEGER :: ERROR, NCID, NCID_OROG - INTEGER :: I, II, J, JJ, MYRANK - INTEGER :: ID_DIM, ID_VAR, NX, NY - - REAL, ALLOCATABLE :: DUMMY(:,:), GEOLAT(:,:), GEOLON(:,:) - REAL(KIND=4), ALLOCATABLE :: DUMMY4(:,:) - - CALL MPI_COMM_RANK(MPI_COMM_WORLD, MYRANK, ERROR) - - WRITE(RANKCH, '(I3.3)') (MYRANK+1) - - FNGRID = "./fngrid." // RANKCH - - PRINT* - PRINT*, "READ FV3 GRID INFO FROM: "//TRIM(FNGRID) - - ERROR=NF90_OPEN(TRIM(FNGRID),NF90_NOWRITE,NCID) - CALL NETCDF_ERR(ERROR, 'OPENING FILE: '//TRIM(FNGRID) ) - - ERROR=NF90_INQ_DIMID(NCID, 'nx', ID_DIM) - CALL NETCDF_ERR(ERROR, 'ERROR READING NX ID' ) - - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=NX) - CALL NETCDF_ERR(ERROR, 'ERROR READING NX' ) - - ERROR=NF90_INQ_DIMID(NCID, 'ny', ID_DIM) - CALL NETCDF_ERR(ERROR, 'ERROR READING NY ID' ) - - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=NY) - CALL NETCDF_ERR(ERROR, 'ERROR READING NY' ) - - IF ((NX/2) /= IDIM .OR. (NY/2) /= JDIM) THEN - PRINT*,'FATAL ERROR: DIMENSIONS IN FILE: ',(NX/2),(NY/2) - PRINT*,'DO NOT MATCH GRID DIMENSIONS: ',IDIM,JDIM - CALL MPI_ABORT(MPI_COMM_WORLD, 130) - ENDIF - - ALLOCATE(GEOLON(NX+1,NY+1)) - ALLOCATE(GEOLAT(NX+1,NY+1)) - - ERROR=NF90_INQ_VARID(NCID, 'x', ID_VAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING X ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, GEOLON) - CALL NETCDF_ERR(ERROR, 'ERROR READING X RECORD' ) - - ERROR=NF90_INQ_VARID(NCID, 'y', ID_VAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING Y ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, GEOLAT) - CALL NETCDF_ERR(ERROR, 'ERROR READING Y RECORD' ) - - ERROR = NF90_CLOSE(NCID) - - ALLOCATE(DUMMY(IDIM,JDIM)) - - DO J = 1, JDIM - DO I = 1, IDIM - II = 2*I - JJ = 2*J - DUMMY(I,J) = GEOLON(II,JJ) - ENDDO - ENDDO - - RLO = RESHAPE(DUMMY, (/IJDIM/)) - - DEALLOCATE(GEOLON) - - DO J = 1, JDIM - DO I = 1, IDIM - II = 2*I - JJ = 2*J - DUMMY(I,J) = GEOLAT(II,JJ) - ENDDO - ENDDO - - RLA = RESHAPE(DUMMY, (/IJDIM/)) - - DEALLOCATE(GEOLAT, DUMMY) - - FNOROG = "./fnorog." // RANKCH - - PRINT* - PRINT*, "READ FV3 OROG INFO FROM: "//TRIM(FNOROG) - - ERROR=NF90_OPEN(TRIM(FNOROG),NF90_NOWRITE,NCID_OROG) - CALL NETCDF_ERR(ERROR, 'OPENING FILE: '//TRIM(FNOROG) ) - - ALLOCATE(DUMMY4(IDIM,JDIM)) - - ERROR=NF90_INQ_VARID(NCID_OROG, 'orog_raw', ID_VAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING orog_raw ID' ) - ERROR=NF90_GET_VAR(NCID_OROG, ID_VAR, DUMMY4) - CALL NETCDF_ERR(ERROR, 'ERROR READING orog_raw RECORD' ) - OROG_UF = RESHAPE(DUMMY4, (/IJDIM/)) - - ERROR=NF90_INQ_VARID(NCID_OROG, 'orog_filt', ID_VAR) - CALL NETCDF_ERR(ERROR, 'ERROR READING orog_filt ID' ) - ERROR=NF90_GET_VAR(NCID_OROG, ID_VAR, DUMMY4) - CALL NETCDF_ERR(ERROR, 'ERROR READING orog_filt RECORD' ) - OROG = RESHAPE(DUMMY4, (/IJDIM/)) - - DEALLOCATE(DUMMY4) - - ERROR = NF90_CLOSE(NCID_OROG) - - END SUBROUTINE READ_LAT_LON_OROG - - SUBROUTINE NETCDF_ERR( ERR, STRING ) - -!-------------------------------------------------------------- -! IF AT NETCDF CALL RETURNS AN ERROR, PRINT OUT A MESSAGE -! AND STOP PROCESSING. -!-------------------------------------------------------------- - - IMPLICIT NONE - - include 'mpif.h' - - INTEGER, INTENT(IN) :: ERR - CHARACTER(LEN=*), INTENT(IN) :: STRING - CHARACTER(LEN=80) :: ERRMSG - - IF( ERR == NF90_NOERR )RETURN - ERRMSG = NF90_STRERROR(ERR) - PRINT*,'' - PRINT*,'FATAL ERROR: ', TRIM(STRING), ': ', TRIM(ERRMSG) - PRINT*,'STOP.' - CALL MPI_ABORT(MPI_COMM_WORLD, 999) - - RETURN - END SUBROUTINE NETCDF_ERR - - SUBROUTINE READ_GSI_DATA(GSI_FILE) - -!----------------------------------------------------------------- -! READ FILE FROM THE GSI CONTAINING THE FOUNDATION TEMPERATURE -! INCREMENTS AND MASK. DATA IS IN NETCDF AND ON A GAUSSIAN GRID. -! THE GRID CONTAINS TWO EXTRA ROWS FOR EACH POLE. THE -! INTERPOLATION FROM GAUSSIAN TO NATIVE GRID ASSUMES NO POLE -! POINTS, SO THESE ARE REMOVED. -!----------------------------------------------------------------- - - IMPLICIT NONE - - CHARACTER(LEN=*), INTENT(IN) :: GSI_FILE - - INTEGER :: ERROR, ID_DIM, NCID - INTEGER :: ID_VAR, J - - INTEGER(KIND=1), ALLOCATABLE :: IDUMMY(:,:) - - REAL(KIND=8), ALLOCATABLE :: DUMMY(:,:) - - PRINT* - PRINT*, "READ INPUT GSI DATA FROM: "//TRIM(GSI_FILE) - - ERROR=NF90_OPEN(TRIM(GSI_FILE),NF90_NOWRITE,NCID) - CALL NETCDF_ERR(ERROR, 'OPENING FILE: '//TRIM(GSI_FILE) ) - - ERROR=NF90_INQ_DIMID(NCID, 'latitude', ID_DIM) - CALL NETCDF_ERR(ERROR, 'READING latitude' ) - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=JDIM_GAUS) - CALL NETCDF_ERR(ERROR, 'READING latitude' ) - JDIM_GAUS = JDIM_GAUS - 2 ! WILL IGNORE POLE POINTS - - ERROR=NF90_INQ_DIMID(NCID, 'longitude', ID_DIM) - CALL NETCDF_ERR(ERROR, 'READING longitude' ) - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=IDIM_GAUS) - CALL NETCDF_ERR(ERROR, 'READING longitude' ) - - ALLOCATE(DUMMY(IDIM_GAUS,JDIM_GAUS+2)) - ALLOCATE(DTREF_GAUS(IDIM_GAUS,JDIM_GAUS)) - - ERROR=NF90_INQ_VARID(NCID, "dtf", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING dtf ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, DUMMY) - CALL NETCDF_ERR(ERROR, 'READING dtf' ) - - ALLOCATE(IDUMMY(IDIM_GAUS,JDIM_GAUS+2)) - ALLOCATE(SLMSK_GAUS(IDIM_GAUS,JDIM_GAUS)) - - ERROR=NF90_INQ_VARID(NCID, "msk", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING msk ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, IDUMMY) - CALL NETCDF_ERR(ERROR, 'READING msk' ) - -! REMOVE POLE POINTS. - - DO J = 1, JDIM_GAUS - SLMSK_GAUS(:,J) = IDUMMY(:,J+1) - DTREF_GAUS(:,J) = DUMMY(:,J+1) - ENDDO - - DEALLOCATE(DUMMY) - DEALLOCATE(IDUMMY) - - ERROR = NF90_CLOSE(NCID) - - END SUBROUTINE READ_GSI_DATA - - SUBROUTINE READ_DATA(TSFFCS,SMCFCS,SNOFCS,STCFCS, & - TG3FCS,ZORFCS, & - CVFCS,CVBFCS,CVTFCS,ALBFCS, & - SLIFCS,VEGFCS,CNPFCS,F10M, & - VETFCS,SOTFCS,ALFFCS, & - USTAR,FMM,FHH, & - SIHFCS,SICFCS,SITFCS, & - TPRCP,SRFLAG,SWDFCS, & - VMNFCS,VMXFCS,SLCFCS, & - SLPFCS,ABSFCS,T2M,Q2M,SLMASK, & - ZSOIL,LSOIL,LENSFC,DO_NSST,NSST) - -!----------------------------------------------------------------- -! READ THE FIRST GUESS SURFACE RECORDS AND NSST RECORDS (IF -! SELECTED) FOR A SINGLE CUBED-SPHERE TILE. -!----------------------------------------------------------------- - - IMPLICIT NONE - - include "mpif.h" - - INTEGER, INTENT(IN) :: LSOIL, LENSFC - - LOGICAL, INTENT(IN) :: DO_NSST - - REAL, INTENT(OUT) :: CVFCS(LENSFC), CVBFCS(LENSFC) - REAL, INTENT(OUT) :: CVTFCS(LENSFC), ALBFCS(LENSFC,4) - REAL, INTENT(OUT) :: SLIFCS(LENSFC), CNPFCS(LENSFC) - REAL, INTENT(OUT) :: VEGFCS(LENSFC), F10M(LENSFC) - REAL, INTENT(OUT) :: VETFCS(LENSFC), SOTFCS(LENSFC) - REAL, INTENT(OUT) :: TSFFCS(LENSFC), SNOFCS(LENSFC) - REAL, INTENT(OUT) :: TG3FCS(LENSFC), ZORFCS(LENSFC) - REAL, INTENT(OUT) :: ALFFCS(LENSFC,2), USTAR(LENSFC) - REAL, INTENT(OUT) :: FMM(LENSFC), FHH(LENSFC) - REAL, INTENT(OUT) :: SIHFCS(LENSFC), SICFCS(LENSFC) - REAL, INTENT(OUT) :: SITFCS(LENSFC), TPRCP(LENSFC) - REAL, INTENT(OUT) :: SRFLAG(LENSFC), SWDFCS(LENSFC) - REAL, INTENT(OUT) :: VMNFCS(LENSFC), VMXFCS(LENSFC) - REAL, INTENT(OUT) :: SLPFCS(LENSFC), ABSFCS(LENSFC) - REAL, INTENT(OUT) :: T2M(LENSFC), Q2M(LENSFC), SLMASK(LENSFC) - REAL, INTENT(OUT) :: SLCFCS(LENSFC,LSOIL) - REAL, INTENT(OUT) :: SMCFCS(LENSFC,LSOIL) - REAL, INTENT(OUT) :: STCFCS(LENSFC,LSOIL) - REAL(KIND=4), INTENT(OUT) :: ZSOIL(LSOIL) - - TYPE(NSST_DATA) :: NSST - - CHARACTER(LEN=50) :: FNBGSI - CHARACTER(LEN=3) :: RANKCH - - INTEGER :: ERROR, NCID, MYRANK - INTEGER :: IDIM, JDIM, ID_DIM - INTEGER :: ID_VAR - - REAL(KIND=8), ALLOCATABLE :: DUMMY(:,:), DUMMY3D(:,:,:) - - CALL MPI_COMM_RANK(MPI_COMM_WORLD, MYRANK, ERROR) - - WRITE(RANKCH, '(I3.3)') (MYRANK+1) - - FNBGSI = "./fnbgsi." // RANKCH - - PRINT* - PRINT*, "READ INPUT SFC DATA FROM: "//TRIM(FNBGSI) - - ERROR=NF90_OPEN(TRIM(FNBGSI),NF90_NOWRITE,NCID) - CALL NETCDF_ERR(ERROR, 'OPENING FILE: '//TRIM(FNBGSI) ) - - ERROR=NF90_INQ_DIMID(NCID, 'xaxis_1', ID_DIM) - CALL NETCDF_ERR(ERROR, 'READING xaxis_1' ) - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=IDIM) - CALL NETCDF_ERR(ERROR, 'READING xaxis_1' ) - - ERROR=NF90_INQ_DIMID(NCID, 'yaxis_1', ID_DIM) - CALL NETCDF_ERR(ERROR, 'READING yaxis_1' ) - ERROR=NF90_INQUIRE_DIMENSION(NCID,ID_DIM,LEN=JDIM) - CALL NETCDF_ERR(ERROR, 'READING yaxis_1' ) - - IF ((IDIM*JDIM) /= LENSFC) THEN - PRINT*,'FATAL ERROR: DIMENSIONS WRONG.' - CALL MPI_ABORT(MPI_COMM_WORLD, 88) - ENDIF - - ALLOCATE(DUMMY(IDIM,JDIM)) - - ERROR=NF90_INQ_VARID(NCID, "tsea", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING tsea ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING tsea' ) - TSFFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "sheleg", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING sheleg ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING sheleg' ) - SNOFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "tg3", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING tg3 ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING tg3' ) - TG3FCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "zorl", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING zorl ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING zorl' ) - ZORFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "alvsf", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING alvsf ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING alvsf' ) - ALBFCS(:,1) = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "alvwf", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING alvwf ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING alvwf' ) - ALBFCS(:,2) = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "alnsf", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING alnsf ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING alnsf' ) - ALBFCS(:,3) = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "alnwf", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING alnwf ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING alnwf' ) - ALBFCS(:,4) = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "slmsk", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING slmsk ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING slmsk' ) - SLIFCS = RESHAPE(DUMMY, (/LENSFC/)) - SLMASK = SLIFCS - WHERE (SLMASK > 1.5) SLMASK=0.0 ! remove sea ice - - ERROR=NF90_INQ_VARID(NCID, "canopy", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING canopy ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING canopy' ) - CNPFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "vfrac", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING vfrac ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING vfrac' ) - VEGFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "f10m", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING f10m ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING f10m' ) - F10M = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "vtype", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING vtype ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING vtype' ) - VETFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "stype", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING stype ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING stype' ) - SOTFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "facsf", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING facsf ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING facsf' ) - ALFFCS(:,1) = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "facwf", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING facwf ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING facwf' ) - ALFFCS(:,2) = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "uustar", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING uustar ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING uustar' ) - USTAR = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "ffmm", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING ffmm ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING ffmm' ) - FMM = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "ffhh", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING ffhh ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING ffhh' ) - FHH = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "hice", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING hice ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING hice' ) - SIHFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "fice", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING fice ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING fice' ) - SICFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "tisfc", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING tisfc ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING tisfc' ) - SITFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "tprcp", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING tprcp ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING tprcp' ) - TPRCP = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "srflag", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING srflag ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING srflag' ) - SRFLAG = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "snwdph", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING snwdph ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING snwdph' ) - SWDFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "shdmin", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING shdmin ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING shdmin' ) - VMNFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "shdmax", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING shdmax ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING shdmax' ) - VMXFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "slope", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING slope ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING slope' ) - SLPFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "snoalb", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING snoalb ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING snoalb' ) - ABSFCS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "t2m", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING t2m ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING t2m' ) - T2M = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "q2m", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING q2m ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING q2m' ) - Q2M = RESHAPE(DUMMY, (/LENSFC/)) - - NSST_READ : IF(DO_NSST) THEN - - PRINT* - PRINT*,"WILL READ NSST RECORDS." - - ERROR=NF90_INQ_VARID(NCID, "c_0", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING c_0 ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING c_0' ) - NSST%C_0 = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "c_d", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING c_d ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING c_d' ) - NSST%C_D = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "d_conv", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING d_conv ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING d_conv' ) - NSST%D_CONV = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "dt_cool", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING dt_cool ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING dt_cool' ) - NSST%DT_COOL = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "ifd", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING ifd ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING ifd' ) - NSST%IFD = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "qrain", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING qrain ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING qrain' ) - NSST%QRAIN = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "tref", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING tref ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING tref' ) - NSST%TREF = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "w_0", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING w_0 ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING w_0' ) - NSST%W_0 = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "w_d", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING w_d ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING w_d' ) - NSST%W_D = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "xs", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING xs ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING xs' ) - NSST%XS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "xt", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING xt ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING xt' ) - NSST%XT = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "xtts", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING xtts ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING xtts' ) - NSST%XTTS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "xu", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING xu ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING xu' ) - NSST%XU = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "xv", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING xv ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING xv' ) - NSST%XV = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "xz", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING xz ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING xz' ) - NSST%XZ = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "xzts", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING xzts ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING xzts' ) - NSST%XZTS = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "z_c", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING z_c ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING z_c' ) - NSST%Z_C = RESHAPE(DUMMY, (/LENSFC/)) - - ERROR=NF90_INQ_VARID(NCID, "zm", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING zm ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy) - CALL NETCDF_ERR(ERROR, 'READING zm' ) - NSST%ZM = RESHAPE(DUMMY, (/LENSFC/)) - - END IF NSST_READ - - DEALLOCATE(DUMMY) - - ALLOCATE(DUMMY3D(IDIM,JDIM,LSOIL)) - - ERROR=NF90_INQ_VARID(NCID, "smc", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING smc ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy3d) - CALL NETCDF_ERR(ERROR, 'READING smc' ) - SMCFCS = RESHAPE(DUMMY3D, (/LENSFC,LSOIL/)) - - ERROR=NF90_INQ_VARID(NCID, "slc", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING slc ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy3d) - CALL NETCDF_ERR(ERROR, 'READING slc' ) - SLCFCS = RESHAPE(DUMMY3D, (/LENSFC,LSOIL/)) - - ERROR=NF90_INQ_VARID(NCID, "stc", ID_VAR) - CALL NETCDF_ERR(ERROR, 'READING stc ID' ) - ERROR=NF90_GET_VAR(NCID, ID_VAR, dummy3d) - CALL NETCDF_ERR(ERROR, 'READING stc' ) - STCFCS = RESHAPE(DUMMY3D, (/LENSFC,LSOIL/)) - - DEALLOCATE(DUMMY3D) - -! cloud fields not in warm restart files. set to zero? - - CVFCS = 0.0 - CVTFCS = 0.0 - CVBFCS = 0.0 - -! soil layer thicknesses not in warm restart files. hardwire -! for now. - - ZSOIL(1) = -0.1 - ZSOIL(2) = -0.4 - ZSOIL(3) = -1.0 - ZSOIL(4) = -2.0 - - ERROR = NF90_CLOSE(NCID) - - END SUBROUTINE READ_DATA - - END MODULE READ_WRITE_DATA diff --git a/sorc/global_cycle.fd/sfcsub.F b/sorc/global_cycle.fd/sfcsub.F deleted file mode 100644 index 97f64187b8..0000000000 --- a/sorc/global_cycle.fd/sfcsub.F +++ /dev/null @@ -1,8397 +0,0 @@ - module sfccyc_module - implicit none - save -! -! grib code for each parameter - used in subroutines sfccycle and setrmsk. -! - integer kpdtsf,kpdwet,kpdsno,kpdzor,kpdais,kpdtg3,kpdplr,kpdgla, - & kpdmxi,kpdscv,kpdsmc,kpdoro,kpdmsk,kpdstc,kpdacn,kpdveg, - & kpdvet,kpdsot - &, kpdvmn,kpdvmx,kpdslp,kpdabs - &, kpdsnd, kpdabs_0, kpdabs_1, kpdalb(4) - parameter(kpdtsf=11, kpdwet=86, kpdsno=65, kpdzor=83, -! 1 kpdalb=84, kpdais=91, kpdtg3=11, kpdplr=224, - 1 kpdais=91, kpdtg3=11, kpdplr=224, - 2 kpdgla=238, kpdmxi=91, kpdscv=238, kpdsmc=144, - 3 kpdoro=8, kpdmsk=81, kpdstc=11, kpdacn=91, kpdveg=87, -!cbosu max snow albedo uses a grib id number of 159, not 255. - & kpdvmn=255, kpdvmx=255,kpdslp=236, kpdabs_0=255, - & kpdvet=225, kpdsot=224,kpdabs_1=159, - & kpdsnd=66 ) -! - integer, parameter :: kpdalb_0(4)=(/212,215,213,216/) - integer, parameter :: kpdalb_1(4)=(/189,190,191,192/) - integer, parameter :: kpdalf(2)=(/214,217/) -! - integer, parameter :: xdata=5000, ydata=2500, mdata=xdata*ydata - integer :: veg_type_landice - integer :: soil_type_landice -! - end module sfccyc_module - subroutine sfccycle(lugb,len,lsoil,sig1t,deltsfc - &, iy,im,id,ih,fh - &, rla, rlo, slmask,orog,orog_uf,use_ufo,nst_anl - &, sihfcs,sicfcs,sitfcs - &, swdfcs,slcfcs - &, vmnfcs,vmxfcs,slpfcs,absfcs - &, tsffcs,snofcs,zorfcs,albfcs,tg3fcs - &, cnpfcs,smcfcs,stcfcs,slifcs,aisfcs,f10m - &, vegfcs,vetfcs,sotfcs,alffcs - &, cvfcs,cvbfcs,cvtfcs,me,nlunit - &, sz_nml,input_nml_file - &, ialb,isot,ivegsrc) -! - use machine , only : kind_io8,kind_io4 - use sfccyc_module - implicit none - logical use_ufo, nst_anl - real (kind=kind_io8) sllnd,slsea,aicice,aicsea,tgice,rlapse, - & orolmx,orolmn,oroomx,oroomn,orosmx, - & orosmn,oroimx,oroimn,orojmx,orojmn, - & alblmx,alblmn,albomx,albomn,albsmx, - & albsmn,albimx,albimn,albjmx,albjmn, - & wetlmx,wetlmn,wetomx,wetomn,wetsmx, - & wetsmn,wetimx,wetimn,wetjmx,wetjmn, - & snolmx,snolmn,snoomx,snoomn,snosmx, - & snosmn,snoimx,snoimn,snojmx,snojmn, - & zorlmx,zorlmn,zoromx,zoromn,zorsmx, - & zorsmn,zorimx,zorimn,zorjmx, zorjmn, - & plrlmx,plrlmn,plromx,plromn,plrsmx, - & plrsmn,plrimx,plrimn,plrjmx,plrjmn, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfsmx, - & tsfsmn,tsfimx,tsfimn,tsfjmx,tsfjmn, - & tg3lmx,tg3lmn,tg3omx,tg3omn,tg3smx, - & tg3smn,tg3imx,tg3imn,tg3jmx,tg3jmn, - & stclmx,stclmn,stcomx,stcomn,stcsmx, - & stcsmn,stcimx,stcimn,stcjmx,stcjmn, - & smclmx,smclmn,smcomx,smcomn,smcsmx, - & smcsmn,smcimx,smcimn,smcjmx,smcjmn, - & scvlmx,scvlmn,scvomx,scvomn,scvsmx, - & scvsmn,scvimx,scvimn,scvjmx,scvjmn, - & veglmx,veglmn,vegomx,vegomn,vegsmx, - & vegsmn,vegimx,vegimn,vegjmx,vegjmn, - & vetlmx,vetlmn,vetomx,vetomn,vetsmx, - & vetsmn,vetimx,vetimn,vetjmx,vetjmn, - & sotlmx,sotlmn,sotomx,sotomn,sotsmx, - & sotsmn,sotimx,sotimn,sotjmx,sotjmn, - & alslmx,alslmn,alsomx,alsomn,alssmx, - & alssmn,alsimx,alsimn,alsjmx,alsjmn, - & epstsf,epsalb,epssno,epswet,epszor, - & epsplr,epsoro,epssmc,epsscv,eptsfc, - & epstg3,epsais,epsacn,epsveg,epsvet, - & epssot,epsalf,qctsfs,qcsnos,qctsfi, - & aislim,snwmin,snwmax,cplrl,cplrs, - & cvegl,czors,csnol,csnos,czorl,csots, - & csotl,cvwgs,cvetl,cvets,calfs, - & fcalfl,fcalfs,ccvt,ccnp,ccv,ccvb, - & calbl,calfl,calbs,ctsfs,grboro, - & grbmsk,ctsfl,deltf,caisl,caiss, - & fsalfl,fsalfs,flalfs,falbl,ftsfl, - & ftsfs,fzorl,fzors,fplrl,fsnos,faisl, - & faiss,fsnol,bltmsk,falbs,cvegs,percrit, - & deltsfc,critp2,critp3,blnmsk,critp1, - & fcplrl,fcplrs,fczors,fvets,fsotl,fsots, - & fvetl,fplrs,fvegl,fvegs,fcsnol,fcsnos, - & fczorl,fcalbs,fctsfl,fctsfs,fcalbl, - & falfs,falfl,fh,crit,zsca,ztsfc,tem1,tem2 - &, fsihl,fsihs,fsicl,fsics, - & csihl,csihs,csicl,csics,epssih,epssic - &, fvmnl,fvmns,fvmxl,fvmxs,fslpl,fslps, - & fabsl,fabss,cvmnl,cvmns,cvmxl,cvmxs, - & cslpl,cslps,cabsl,cabss,epsvmn,epsvmx, - & epsslp,epsabs - &, sihlmx,sihlmn,sihomx,sihomn,sihsmx, - & sihsmn,sihimx,sihimn,sihjmx,sihjmn, - & siclmx,siclmn,sicomx,sicomn,sicsmx, - & sicsmn,sicimx,sicimn,sicjmx,sicjmn - &, glacir_hice - &, vmnlmx,vmnlmn,vmnomx,vmnomn,vmnsmx, - & vmnsmn,vmnimx,vmnimn,vmnjmx,vmnjmn, - & vmxlmx,vmxlmn,vmxomx,vmxomn,vmxsmx, - & vmxsmn,vmximx,vmximn,vmxjmx,vmxjmn, - & slplmx,slplmn,slpomx,slpomn,slpsmx, - & slpsmn,slpimx,slpimn,slpjmx,slpjmn, - & abslmx,abslmn,absomx,absomn,abssmx, - & abssmn,absimx,absimn,absjmx,absjmn - &, sihnew - - integer imsk,jmsk,ifp,irtscv,irtacn,irtais,irtsno,irtzor, - & irtalb,irtsot,irtalf,j,irtvet,irtsmc,irtstc,irtveg, - & irtwet,k,iprnt,kk,irttsf,iret,i,igrdbg,iy,im,id, - & icalbl,icalbs,icalfl,ictsfs,lugb,len,lsoil,ih, - & ictsfl,iczors,icplrl,icplrs,iczorl,icalfs,icsnol, - & icsnos,irttg3,me,kqcm,nlunit,sz_nml,ialb - &, irtvmn, irtvmx, irtslp, irtabs, isot, ivegsrc - logical gausm, deads, qcmsk, znlst, monclm, monanl, - & monfcs, monmer, mondif, landice - character(len=*), intent(in) :: input_nml_file(sz_nml) - - integer num_parthds -! -! this is a limited point version of surface program. -! -! this program runs in two different modes: -! -! 1. analysis mode (fh=0.) -! -! this program merges climatology, analysis and forecast guess to create -! new surface fields. if analysis file is given, the program -! uses it if date of the analysis matches with iy,im,id,ih (see note -! below). -! -! 2. forecast mode (fh.gt.0.) -! -! this program interpolates climatology to the date corresponding to the -! forecast hour. if surface analysis file is given, for the corresponding -! dates, the program will use it. -! -! note: -! -! if the date of the analysis does not match given iy,im,id,ih, (and fh), -! the program searches an old analysis by going back 6 hours, then 12 hours, -! then one day upto nrepmx days (parameter statement in the subrotine fixrd. -! now defined as 8). this allows the user to provide non-daily analysis to -! be used. if matching field is not found, the forecast guess will be used. -! -! use of a combined earlier surface analyses and current analysis is -! not allowed (as was done in the old version for snow analysis in which -! old snow analysis is used in combination with initial guess), except -! for sea surface temperature. for sst anolmaly interpolation, you need to -! set lanom=.true. and must provide sst analysis at initial time. -! -! if you want to do complex merging of past and present surface field analysis, -! you need to create a separate file that contains daily surface field. -! -! for a dead start, do not supply fnbgsi or set fnbgsi=' ' -! -! lugb is the unit number used in this subprogram -! len ... number of points on which sfccyc operates -! lsoil .. number of soil layers (2 as of april, 1994) -! iy,im,id,ih .. year, month, day, and hour of initial state. -! fh .. forecast hour -! rla, rlo -- latitude and longitudes of the len points -! sig1t .. sigma level 1 temperature for dead start. should be on gaussian -! grid. if not dead start, no need for dimension but set to zero -! as in the example below. -! -! variable naming conventions: -! -! oro .. orography -! alb .. albedo -! wet .. soil wetness as defined for bucket model -! sno .. snow depth -! zor .. surface roughness length -! vet .. vegetation type -! plr .. plant evaporation resistance -! tsf .. surface skin temperature. sea surface temp. over ocean. -! tg3 .. deep soil temperature (at 500cm) -! stc .. soil temperature (lsoil layrs) -! smc .. soil moisture (lsoil layrs) -! scv .. snow cover (not snow depth) -! ais .. sea ice mask (0 or 1) -! acn .. sea ice concentration (fraction) -! gla .. glacier (permanent snow) mask (0 or 1) -! mxi .. maximum sea ice extent (0 or 1) -! msk .. land ocean mask (0=ocean 1=land) -! cnp .. canopy water content -! cv .. convective cloud cover -! cvb .. convective cloud base -! cvt .. convective cloud top -! sli .. land/sea/sea-ice mask. (1/0/2 respectively) -! veg .. vegetation cover -! sot .. soil type -!cwu [+2l] add sih & sic -! sih .. sea ice thickness -! sic .. sea ice concentration -!clu [+6l] add swd,slc,vmn,vmx,slp,abs -! swd .. actual snow depth -! slc .. liquid soil moisture (lsoil layers) -! vmn .. vegetation cover minimum -! vmx .. vegetation cover maximum -! slp .. slope type -! abs .. maximum snow albedo - -! -! definition of land/sea mask. sllnd for land and slsea for sea. -! definition of sea/ice mask. aicice for ice, aicsea for sea. -! tgice=max ice temperature -! rlapse=lapse rate for sst correction due to surface angulation -! - parameter(sllnd =1.0,slsea =0.0) - parameter(aicice=1.0,aicsea=0.0) - parameter(tgice=271.2) - parameter(rlapse=0.65e-2) -! -! max/min of fields for check and replace. -! -! ???lmx .. max over bare land -! ???lmn .. min over bare land -! ???omx .. max over open ocean -! ???omn .. min over open ocean -! ???smx .. max over snow surface (land and sea-ice) -! ???smn .. min over snow surface (land and sea-ice) -! ???imx .. max over bare sea ice -! ???imn .. min over bare sea ice -! ???jmx .. max over snow covered sea ice -! ???jmn .. min over snow covered sea ice -! - parameter(orolmx=8000.,orolmn=-1000.,oroomx=3000.,oroomn=-1000., - & orosmx=8000.,orosmn=-1000.,oroimx=3000.,oroimn=-1000., - & orojmx=3000.,orojmn=-1000.) -! parameter(alblmx=0.80,alblmn=0.06,albomx=0.06,albomn=0.06, -! & albsmx=0.80,albsmn=0.06,albimx=0.80,albimn=0.80, -! & albjmx=0.80,albjmn=0.80) -!cwu [-3l/+9l] change min/max for alb; add min/max for sih & sic -! parameter(alblmx=0.80,alblmn=0.01,albomx=0.01,albomn=0.01, -! & albsmx=0.80,albsmn=0.01,albimx=0.01,albimn=0.01, -! & albjmx=0.01,albjmn=0.01) -! note: the range values for bare land and snow covered land -! (alblmx, alblmn, albsmx, albsmn) are set below -! based on whether the old or new radiation is selected - parameter(albomx=0.06,albomn=0.06, - & albimx=0.80,albimn=0.06, - & albjmx=0.80,albjmn=0.06) - parameter(sihlmx=0.0,sihlmn=0.0,sihomx=5.0,sihomn=0.0, - & sihsmx=5.0,sihsmn=0.0,sihimx=5.0,sihimn=0.10, - & sihjmx=5.0,sihjmn=0.10,glacir_hice=3.0) -!cwu change sicimn & sicjmn Jan 2015 -! parameter(siclmx=0.0,siclmn=0.0,sicomx=1.0,sicomn=0.0, -! & sicsmx=1.0,sicsmn=0.0,sicimx=1.0,sicimn=0.50, -! & sicjmx=1.0,sicjmn=0.50) -! -! parameter(sihlmx=0.0,sihlmn=0.0,sihomx=8.0,sihomn=0.0, -! & sihsmx=8.0,sihsmn=0.0,sihimx=8.0,sihimn=0.10, -! & sihjmx=8.0,sihjmn=0.10,glacir_hice=3.0) - parameter(siclmx=0.0,siclmn=0.0,sicomx=1.0,sicomn=0.0, - & sicsmx=1.0,sicsmn=0.0,sicimx=1.0,sicimn=0.15, - & sicjmx=1.0,sicjmn=0.15) - - parameter(wetlmx=0.15,wetlmn=0.00,wetomx=0.15,wetomn=0.15, - & wetsmx=0.15,wetsmn=0.15,wetimx=0.15,wetimn=0.15, - & wetjmx=0.15,wetjmn=0.15) - parameter(snolmx=0.0,snolmn=0.0,snoomx=0.0,snoomn=0.0, - & snosmx=55000.,snosmn=0.001,snoimx=0.,snoimn=0.0, - & snojmx=10000.,snojmn=0.01) - parameter(zorlmx=300.,zorlmn=1.0,zoromx=1.0,zoromn=1.e-05, - & zorsmx=300.,zorsmn=1.0,zorimx=1.0,zorimn=1.0, - & zorjmx=1.0,zorjmn=1.0) - parameter(plrlmx=1000.,plrlmn=0.0,plromx=1000.0,plromn=0.0, - & plrsmx=1000.,plrsmn=0.0,plrimx=1000.,plrimn=0.0, - & plrjmx=1000.,plrjmn=0.0) -!clu [-1l/+1l] relax tsfsmx (for noah lsm) - parameter(tsflmx=353.,tsflmn=173.0,tsfomx=313.0,tsfomn=271.2, - & tsfsmx=305.0,tsfsmn=173.0,tsfimx=271.2,tsfimn=173.0, - & tsfjmx=273.16,tsfjmn=173.0) -! parameter(tsflmx=353.,tsflmn=173.0,tsfomx=313.0,tsfomn=271.21, -!* & tsfsmx=273.16,tsfsmn=173.0,tsfimx=271.21,tsfimn=173.0, -! & tsfsmx=305.0,tsfsmn=173.0,tsfimx=271.21,tsfimn=173.0, - parameter(tg3lmx=310.,tg3lmn=200.0,tg3omx=310.0,tg3omn=200.0, - & tg3smx=310.,tg3smn=200.0,tg3imx=310.0,tg3imn=200.0, - & tg3jmx=310.,tg3jmn=200.0) - parameter(stclmx=353.,stclmn=173.0,stcomx=313.0,stcomn=200.0, - & stcsmx=310.,stcsmn=200.0,stcimx=310.0,stcimn=200.0, - & stcjmx=310.,stcjmn=200.0) -!landice mods force a flag value of soil moisture of 1.0 -! at non-land points - parameter(smclmx=0.55,smclmn=0.0,smcomx=1.0,smcomn=1.0, - & smcsmx=0.55,smcsmn=0.0,smcimx=1.0,smcimn=1.0, - & smcjmx=1.0,smcjmn=1.0) - parameter(scvlmx=0.0,scvlmn=0.0,scvomx=0.0,scvomn=0.0, - & scvsmx=1.0,scvsmn=1.0,scvimx=0.0,scvimn=0.0, - & scvjmx=1.0,scvjmn=1.0) - parameter(veglmx=1.0,veglmn=0.0,vegomx=0.0,vegomn=0.0, - & vegsmx=1.0,vegsmn=0.0,vegimx=0.0,vegimn=0.0, - & vegjmx=0.0,vegjmn=0.0) - parameter(vmnlmx=1.0,vmnlmn=0.0,vmnomx=0.0,vmnomn=0.0, - & vmnsmx=1.0,vmnsmn=0.0,vmnimx=0.0,vmnimn=0.0, - & vmnjmx=0.0,vmnjmn=0.0) - parameter(vmxlmx=1.0,vmxlmn=0.0,vmxomx=0.0,vmxomn=0.0, - & vmxsmx=1.0,vmxsmn=0.0,vmximx=0.0,vmximn=0.0, - & vmxjmx=0.0,vmxjmn=0.0) - parameter(slplmx=9.0,slplmn=1.0,slpomx=0.0,slpomn=0.0, - & slpsmx=9.0,slpsmn=1.0,slpimx=0.,slpimn=0., - & slpjmx=0.,slpjmn=0.) -! note: the range values for bare land and snow covered land -! (alblmx, alblmn, albsmx, albsmn) are set below -! based on whether the old or new radiation is selected - parameter(absomx=0.0,absomn=0.0, - & absimx=0.0,absimn=0.0, - & absjmx=0.0,absjmn=0.0) -! vegetation type - parameter(vetlmx=20.,vetlmn=1.0,vetomx=0.0,vetomn=0.0, - & vetsmx=20.,vetsmn=1.0,vetimx=0.,vetimn=0., - & vetjmx=0.,vetjmn=0.) -! soil type - parameter(sotlmx=16.,sotlmn=1.0,sotomx=0.0,sotomn=0.0, - & sotsmx=16.,sotsmn=1.0,sotimx=0.,sotimn=0., - & sotjmx=0.,sotjmn=0.) -! fraction of vegetation for strongly and weakly zeneith angle dependent -! albedo - parameter(alslmx=1.0,alslmn=0.0,alsomx=0.0,alsomn=0.0, - & alssmx=1.0,alssmn=0.0,alsimx=0.0,alsimn=0.0, - & alsjmx=0.0,alsjmn=0.0) -! -! criteria used for monitoring -! - parameter(epstsf=0.01,epsalb=0.001,epssno=0.01, - & epswet=0.01,epszor=0.0000001,epsplr=1.,epsoro=0., - & epssmc=0.0001,epsscv=0.,eptsfc=0.01,epstg3=0.01, - & epsais=0.,epsacn=0.01,epsveg=0.01, - & epssih=0.001,epssic=0.001, - & epsvmn=0.01,epsvmx=0.01,epsabs=0.001,epsslp=0.01, - & epsvet=.01,epssot=.01,epsalf=.001) -! -! quality control of analysis snow and sea ice -! -! qctsfs .. surface temperature above which no snow allowed -! qcsnos .. snow depth above which snow must exist -! qctsfi .. sst above which sea-ice is not allowed -! -!clu relax qctsfs (for noah lsm) -!* parameter(qctsfs=283.16,qcsnos=100.,qctsfi=280.16) -!* parameter(qctsfs=288.16,qcsnos=100.,qctsfi=280.16) - parameter(qctsfs=293.16,qcsnos=100.,qctsfi=280.16) -! -!cwu [-2l] -!* ice concentration for ice limit (55 percent) -! -!* parameter(aislim=0.55) -! -! parameters to obtain snow depth from snow cover and temperature -! -! parameter(snwmin=25.,snwmax=100.) - parameter(snwmin=5.0,snwmax=100.) - real (kind=kind_io8), parameter :: ten=10.0, one=1.0 -! -! coeeficients of blending forecast and interpolated clim -! (or analyzed) fields over sea or land(l) (not for clouds) -! 1.0 = use of forecast -! 0.0 = replace with interpolated analysis -! -! these values are set for analysis mode. -! -! variables land sea -! --------------------------------------------------------- -! surface temperature forecast analysis -! surface temperature forecast forecast (over sea ice) -! albedo analysis analysis -! sea-ice analysis analysis -! snow analysis forecast (over sea ice) -! roughness analysis forecast -! plant resistance analysis analysis -! soil wetness (layer) weighted average analysis -! soil temperature forecast analysis -! canopy waver content forecast forecast -! convective cloud cover forecast forecast -! convective cloud bottm forecast forecast -! convective cloud top forecast forecast -! vegetation cover analysis analysis -! vegetation type analysis analysis -! soil type analysis analysis -! sea-ice thickness forecast forecast -! sea-ice concentration analysis analysis -! vegetation cover min analysis analysis -! vegetation cover max analysis analysis -! max snow albedo analysis analysis -! slope type analysis analysis -! liquid soil wetness analysis-weighted analysis -! actual snow depth analysis-weighted analysis -! -! note: if analysis file is not given, then time interpolated climatology -! is used. if analyiss file is given, it will be used as far as the -! date and time matches. if they do not match, it uses forecast. -! -! critical percentage value for aborting bad points when lgchek=.true. -! - logical lgchek - data lgchek/.true./ - data critp1,critp2,critp3/80.,80.,25./ -! -! integer kpdalb(4), kpdalf(2) -! data kpdalb/212,215,213,216/, kpdalf/214,217/ -! save kpdalb, kpdalf -! -! mask orography and variance on gaussian grid -! - real (kind=kind_io8) slmask(len),orog(len), orog_uf(len) - &, orogd(len) - real (kind=kind_io8) rla(len), rlo(len) -! -! permanent/extremes -! - character*500 fnglac,fnmxic - real (kind=kind_io8), allocatable :: glacir(:),amxice(:),tsfcl0(:) -! -! tsfcl0 is the climatological tsf at fh=0 -! -! climatology surface fields (last character 'c' or 'clm' indicate climatology) -! - character*500 fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fnplrc,fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc, - & fnvegc,fnvetc,fnsotc - &, fnvmnc,fnvmxc,fnslpc,fnabsc, fnalbc2 - real (kind=kind_io8) tsfclm(len), wetclm(len), snoclm(len), - & zorclm(len), albclm(len,4), aisclm(len), - & tg3clm(len), acnclm(len), cnpclm(len), - & cvclm (len), cvbclm(len), cvtclm(len), - & scvclm(len), tsfcl2(len), vegclm(len), - & vetclm(len), sotclm(len), alfclm(len,2), sliclm(len), - & smcclm(len,lsoil), stcclm(len,lsoil) - &, sihclm(len), sicclm(len) - &, vmnclm(len), vmxclm(len), slpclm(len), absclm(len) -! -! analyzed surface fields (last character 'a' or 'anl' indicate analysis) -! - character*500 fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fnplra,fntg3a,fnscva,fnsmca,fnstca,fnacna, - & fnvega,fnveta,fnsota - &, fnvmna,fnvmxa,fnslpa,fnabsa -! - real (kind=kind_io8) tsfanl(len), wetanl(len), snoanl(len), - & zoranl(len), albanl(len,4), aisanl(len), - & tg3anl(len), acnanl(len), cnpanl(len), - & cvanl (len), cvbanl(len), cvtanl(len), - & scvanl(len), tsfan2(len), veganl(len), - & vetanl(len), sotanl(len), alfanl(len,2), slianl(len), - & smcanl(len,lsoil), stcanl(len,lsoil) - &, sihanl(len), sicanl(len) - &, vmnanl(len), vmxanl(len), slpanl(len), absanl(len) -! - real (kind=kind_io8) tsfan0(len) ! sea surface temperature analysis at ft=0. -! -! predicted surface fields (last characters 'fcs' indicates forecast) -! - real (kind=kind_io8) tsffcs(len), wetfcs(len), snofcs(len), - & zorfcs(len), albfcs(len,4), aisfcs(len), - & tg3fcs(len), acnfcs(len), cnpfcs(len), - & cvfcs (len), cvbfcs(len), cvtfcs(len), - & slifcs(len), vegfcs(len), - & vetfcs(len), sotfcs(len), alffcs(len,2), - & smcfcs(len,lsoil), stcfcs(len,lsoil) - &, sihfcs(len), sicfcs(len), sitfcs(len) - &, vmnfcs(len), vmxfcs(len), slpfcs(len), absfcs(len) - &, swdfcs(len), slcfcs(len,lsoil) -! -! ratio of sigma level 1 wind and 10m wind (diagnozed by model and not touched -! in this program). -! - real (kind=kind_io8) f10m (len) - real (kind=kind_io8) fsmcl(25),fsmcs(25),fstcl(25),fstcs(25) - real (kind=kind_io8) fcsmcl(25),fcsmcs(25),fcstcl(25),fcstcs(25) - -!clu [+1l] add swratio (soil moisture liquid-to-total ratio) - real (kind=kind_io8) swratio(len,lsoil) -!clu [+1l] add fixratio (option to adjust slc from smc) - logical fixratio(lsoil) -! - integer icsmcl(25), icsmcs(25), icstcl(25), icstcs(25) -! - real (kind=kind_io8) csmcl(25), csmcs(25) - real (kind=kind_io8) cstcl(25), cstcs(25) -! - real (kind=kind_io8) slmskh(mdata) - character*500 fnmskh - integer kpd7, kpd9 -! - logical icefl1(len), icefl2(len) -! -! input and output surface fields (bges) file names -! -! -! sigma level 1 temperature for dead start -! - real (kind=kind_io8) sig1t(len) -! - character*32 label -! -! = 1 ==> forecast is used -! = 0 ==> analysis (or climatology) is used -! -! output file ... primary surface file for radiation and forecast -! -! rec. 1 label -! rec. 2 date record -! rec. 3 tsf -! rec. 4 soilm(two layers) ----> 4 layers -! rec. 5 snow -! rec. 6 soilt(two layers) ----> 4 layers -! rec. 7 tg3 -! rec. 8 zor -! rec. 9 cv -! rec. 10 cvb -! rec. 11 cvt -! rec. 12 albedo (four types) -! rec. 13 slimsk -! rec. 14 vegetation cover -! rec. 14 plantr -----> skip this record -! rec. 15 f10m -----> canopy -! rec. 16 canopy water content (cnpanl) -----> f10m -! rec. 17 vegetation type -! rec. 18 soil type -! rec. 19 zeneith angle dependent vegetation fraction (two types) -! rec. 20 uustar -! rec. 21 ffmm -! rec. 22 ffhh -!cwu add sih & sic -! rec. 23 sih(one category only) -! rec. 24 sic -!clu [+8l] add prcp, flag, swd, slc, vmn, vmx, slp, abs -! rec. 25 tprcp -! rec. 26 srflag -! rec. 27 swd -! rec. 28 slc (4 layers) -! rec. 29 vmn -! rec. 30 vmx -! rec. 31 slp -! rec. 32 abs - -! -! debug only -! ldebug=.true. creates bges files for climatology and analysis -! lqcbgs=.true. quality controls input bges file before merging (should have been -! qced in the forecast program) -! - logical ldebug,lqcbgs - logical lprnt -! -! debug only -! - character*500 fndclm,fndanl -! - logical lanom - -! - namelist/namsfc/fnglac,fnmxic, - & fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fnplrc,fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc, - & fnvegc,fnvetc,fnsotc,fnalbc2, - & fnvmnc,fnvmxc,fnslpc,fnabsc, - & fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fnplra,fntg3a,fnscva,fnsmca,fnstca,fnacna, - & fnvega,fnveta,fnsota, - & fnvmna,fnvmxa,fnslpa,fnabsa, - & fnmskh, - & ldebug,lgchek,lqcbgs,critp1,critp2,critp3, - & fndclm,fndanl, - & lanom, - & ftsfl,ftsfs,falbl,falbs,faisl,faiss,fsnol,fsnos, - & fzorl,fzors,fplrl,fplrs,fsmcl,fsmcs, - & fstcl,fstcs,fvegl,fvegs,fvetl,fvets,fsotl,fsots, - & fctsfl,fctsfs,fcalbl,fcalbs,fcsnol,fcsnos, - & fczorl,fczors,fcplrl,fcplrs,fcsmcl,fcsmcs, - & fcstcl,fcstcs,fsalfl,fsalfs,fcalfl,flalfs, - & fsihl,fsicl,fsihs,fsics,aislim,sihnew, - & fvmnl,fvmns,fvmxl,fvmxs,fslpl,fslps, - & fabsl,fabss, - & ictsfl,ictsfs,icalbl,icalbs,icsnol,icsnos, - & iczorl,iczors,icplrl,icplrs,icsmcl,icsmcs, - & icstcl,icstcs,icalfl,icalfs, - & gausm, deads, qcmsk, znlst, - & monclm, monanl, monfcs, monmer, mondif, igrdbg, - & blnmsk, bltmsk, landice -! - data gausm/.true./, deads/.false./, blnmsk/0.0/, bltmsk/90.0/ - &, qcmsk/.false./, znlst/.false./, igrdbg/-1/ - &, monclm/.false./, monanl/.false./, monfcs/.false./ - &, monmer/.false./, mondif/.false./, landice/.true./ -! -! defaults file names -! - data fnmskh/'global_slmask.t126.grb'/ - data fnalbc/'global_albedo4.1x1.grb'/ - data fnalbc2/'global_albedo4.1x1.grb'/ - data fntsfc/'global_sstclim.2x2.grb'/ - data fnsotc/'global_soiltype.1x1.grb'/ - data fnvegc/'global_vegfrac.1x1.grb'/ - data fnvetc/'global_vegtype.1x1.grb'/ - data fnglac/'global_glacier.2x2.grb'/ - data fnmxic/'global_maxice.2x2.grb'/ - data fnsnoc/'global_snoclim.1.875.grb'/ - data fnzorc/'global_zorclim.1x1.grb'/ - data fnaisc/'global_iceclim.2x2.grb'/ - data fntg3c/'global_tg3clim.2.6x1.5.grb'/ - data fnsmcc/'global_soilmcpc.1x1.grb'/ -!clu [+4l] add fn()c for vmn, vmx, abs, slp - data fnvmnc/'global_shdmin.0.144x0.144.grb'/ - data fnvmxc/'global_shdmax.0.144x0.144.grb'/ - data fnslpc/'global_slope.1x1.grb'/ - data fnabsc/'global_snoalb.1x1.grb'/ -! - data fnwetc/' '/ - data fnplrc/' '/ - data fnstcc/' '/ - data fnscvc/' '/ - data fnacnc/' '/ -! - data fntsfa/' '/ - data fnweta/' '/ - data fnsnoa/' '/ - data fnzora/' '/ - data fnalba/' '/ - data fnaisa/' '/ - data fnplra/' '/ - data fntg3a/' '/ - data fnsmca/' '/ - data fnstca/' '/ - data fnscva/' '/ - data fnacna/' '/ - data fnvega/' '/ - data fnveta/' '/ - data fnsota/' '/ -!clu [+4l] add fn()a for vmn, vmx, abs, slp - data fnvmna/' '/ - data fnvmxa/' '/ - data fnslpa/' '/ - data fnabsa/' '/ -! - data ldebug/.false./, lqcbgs/.true./ - data fndclm/' '/ - data fndanl/' '/ - data lanom/.false./ -! -! default relaxation time in hours to analysis or climatology - data ftsfl/99999.0/, ftsfs/0.0/ - data falbl/0.0/, falbs/0.0/ - data falfl/0.0/, falfs/0.0/ - data faisl/0.0/, faiss/0.0/ - data fsnol/0.0/, fsnos/99999.0/ - data fzorl/0.0/, fzors/99999.0/ - data fplrl/0.0/, fplrs/0.0/ - data fvetl/0.0/, fvets/99999.0/ - data fsotl/0.0/, fsots/99999.0/ - data fvegl/0.0/, fvegs/99999.0/ -!cwu [+4l] add f()l and f()s for sih, sic and aislim, sihlim - data fsihl/99999.0/, fsihs/99999.0/ -! data fsicl/99999.0/, fsics/99999.0/ - data fsicl/0.0/, fsics/0.0/ -! default ice concentration limit (50%), new ice thickness (20cm) -!cwu change ice concentration limit (15%) Jan 2015 -! data aislim/0.50/, sihnew/0.2/ - data aislim/0.15/, sihnew/0.2/ -!clu [+4l] add f()l and f()s for vmn, vmx, abs, slp - data fvmnl/0.0/, fvmns/99999.0/ - data fvmxl/0.0/, fvmxs/99999.0/ - data fslpl/0.0/, fslps/99999.0/ - data fabsl/0.0/, fabss/99999.0/ -! default relaxation time in hours to climatology if analysis missing - data fctsfl/99999.0/, fctsfs/99999.0/ - data fcalbl/99999.0/, fcalbs/99999.0/ - data fcsnol/99999.0/, fcsnos/99999.0/ - data fczorl/99999.0/, fczors/99999.0/ - data fcplrl/99999.0/, fcplrs/99999.0/ -! default flag to apply climatological annual cycle - data ictsfl/0/, ictsfs/1/ - data icalbl/1/, icalbs/1/ - data icalfl/1/, icalfs/1/ - data icsnol/0/, icsnos/0/ - data iczorl/1/, iczors/0/ - data icplrl/1/, icplrs/0/ -! - data ccnp/1.0/ - data ccv/1.0/, ccvb/1.0/, ccvt/1.0/ -! - data ifp/0/ -! - save ifp,fnglac,fnmxic, - & fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fnplrc,fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc,fnvegc, - & fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fnplra,fntg3a,fnscva,fnsmca,fnstca,fnacna,fnvega, - & fnvetc,fnveta, - & fnsotc,fnsota, -!clu [+2l] add fn()c and fn()a for vmn, vmx, slp, abs - & fnvmnc,fnvmxc,fnabsc,fnslpc, - & fnvmna,fnvmxa,fnabsa,fnslpa, - & ldebug,lgchek,lqcbgs,critp1,critp2,critp3, - & fndclm,fndanl, - & lanom, - & ftsfl,ftsfs,falbl,falbs,faisl,faiss,fsnol,fsnos, - & fzorl,fzors,fplrl,fplrs,fsmcl,fsmcs,falfl,falfs, - & fstcl,fstcs,fvegl,fvegs,fvetl,fvets,fsotl,fsots, - & fctsfl,fctsfs,fcalbl,fcalbs,fcsnol,fcsnos, - & fczorl,fczors,fcplrl,fcplrs,fcsmcl,fcsmcs, - & fcstcl,fcstcs,fcalfl,fcalfs, -!cwu [+1l] add f()l and f()s for sih, sic and aislim, sihnew - & fsihl,fsihs,fsicl,fsics,aislim,sihnew, -!clu [+2l] add f()l and f()s for vmn, vmx, slp, abs - & fvmnl,fvmns,fvmxl,fvmxs,fslpl,fslps, - & fabsl,fabss, - & ictsfl,ictsfs,icalbl,icalbs,icsnol,icsnos, - & iczorl,iczors,icplrl,icplrs,icsmcl,icsmcs, - & icstcl,icstcs,icalfl,icalfs, - & gausm, deads, qcmsk, - & monclm, monanl, monfcs, monmer, mondif, igrdbg, - & grboro, grbmsk, -! - & ctsfl, ctsfs, calbl, calfl, calbs, calfs, csmcs, - & csnol, csnos, czorl, czors, cplrl, cplrs, cstcl, - & cstcs, cvegl, cvwgs, cvetl, cvets, csotl, csots, - & csmcl -!cwu [+1l] add c()l and c()s for sih, sic - &, csihl, csihs, csicl, csics -!clu [+2l] add c()l and c()s for vmn, vmx, slp, abs - &, cvmnl, cvmns, cvmxl, cvmxs, cslpl, cslps, - & cabsl, cabss - &, imsk, jmsk, slmskh, blnmsk, bltmsk - &, glacir, amxice, tsfcl0 - &, caisl, caiss, cvegs -! - lprnt = .false. - iprnt = 1 -! do i=1,len -! if (ifp .eq. 0 .and. rla(i) .gt. 80.0) print *,' rla=',rla(i) -! *,' rlo=',rlo(i) -! tem1 = abs(rla(i) - 48.75) -! tem2 = abs(rlo(i) - (-68.50)) -! if(tem1 .lt. 0.25 .and. tem2 .lt. 0.50) then -! lprnt = .true. -! iprnt = i -! print *,' lprnt=',lprnt,' iprnt=',iprnt -! print *,' rla(i)=',rla(i),' rlo(i)=',rlo(i) -! endif -! enddo - if (ialb == 1) then - kpdabs = kpdabs_1 - kpdalb = kpdalb_1 - alblmx = .99 - albsmx = .99 - alblmn = .01 - albsmn = .01 - abslmx = 1.0 - abssmx = 1.0 - abssmn = .01 - abslmn = .01 - else - kpdabs = kpdabs_0 - kpdalb = kpdalb_0 - alblmx = .80 - albsmx = .80 - alblmn = .06 - albsmn = .06 - abslmx = .80 - abssmx = .80 - abslmn = .01 - abssmn = .01 - endif - if(ifp.eq.0) then - ifp = 1 - do k=1,lsoil - fsmcl(k) = 99999. - fsmcs(k) = 0. - fstcl(k) = 99999. - fstcs(k) = 0. - enddo -#ifdef INTERNAL_FILE_NML - read(input_nml_file, nml=namsfc) -#else -! print *,' in sfcsub nlunit=',nlunit,' me=',me,' ialb=',ialb - rewind(nlunit) - read (nlunit,namsfc) -#endif -! write(6,namsfc) -! - if (me .eq. 0) then - print *,'ftsfl,falbl,faisl,fsnol,fzorl=', - & ftsfl,falbl,faisl,fsnol,fzorl - print *,'fsmcl=',fsmcl(1:lsoil) - print *,'fstcl=',fstcl(1:lsoil) - print *,'ftsfs,falbs,faiss,fsnos,fzors=', - & ftsfs,falbs,faiss,fsnos,fzors - print *,'fsmcs=',fsmcs(1:lsoil) - print *,'fstcs=',fstcs(1:lsoil) - print *,' aislim=',aislim,' sihnew=',sihnew - print *,' isot=', isot,' ivegsrc=',ivegsrc - endif - - if (ivegsrc == 2) then ! sib - veg_type_landice=13 - else - veg_type_landice=15 - endif - if (isot == 0) then - soil_type_landice=9 - else - soil_type_landice=16 - endif -! - deltf = deltsfc / 24.0 -! - ctsfl=0. !... tsfc over land - if(ftsfl.ge.99999.) ctsfl=1. - if((ftsfl.gt.0.).and.(ftsfl.lt.99999)) ctsfl=exp(-deltf/ftsfl) -! - ctsfs=0. !... tsfc over sea - if(ftsfs.ge.99999.) ctsfs=1. - if((ftsfs.gt.0.).and.(ftsfs.lt.99999)) ctsfs=exp(-deltf/ftsfs) -! - do k=1,lsoil - csmcl(k)=0. !... soilm over land - if(fsmcl(k).ge.99999.) csmcl(k)=1. - if((fsmcl(k).gt.0.).and.(fsmcl(k).lt.99999)) - & csmcl(k)=exp(-deltf/fsmcl(k)) - csmcs(k)=0. !... soilm over sea - if(fsmcs(k).ge.99999.) csmcs(k)=1. - if((fsmcs(k).gt.0.).and.(fsmcs(k).lt.99999)) - & csmcs(k)=exp(-deltf/fsmcs(k)) - enddo -! - calbl=0. !... albedo over land - if(falbl.ge.99999.) calbl=1. - if((falbl.gt.0.).and.(falbl.lt.99999)) calbl=exp(-deltf/falbl) -! - calfl=0. !... fraction field for albedo over land - if(falfl.ge.99999.) calfl=1. - if((falfl.gt.0.).and.(falfl.lt.99999)) calfl=exp(-deltf/falfl) -! - calbs=0. !... albedo over sea - if(falbs.ge.99999.) calbs=1. - if((falbs.gt.0.).and.(falbs.lt.99999)) calbs=exp(-deltf/falbs) -! - calfs=0. !... fraction field for albedo over sea - if(falfs.ge.99999.) calfs=1. - if((falfs.gt.0.).and.(falfs.lt.99999)) calfs=exp(-deltf/falfs) -! - caisl=0. !... sea ice over land - if(faisl.ge.99999.) caisl=1. - if((faisl.gt.0.).and.(faisl.lt.99999)) caisl=1. -! - caiss=0. !... sea ice over sea - if(faiss.ge.99999.) caiss=1. - if((faiss.gt.0.).and.(faiss.lt.99999)) caiss=1. -! - csnol=0. !... snow over land - if(fsnol.ge.99999.) csnol=1. - if((fsnol.gt.0.).and.(fsnol.lt.99999)) csnol=exp(-deltf/fsnol) -! using the same way to bending snow as narr when fsnol is the negative value -! the magnitude of fsnol is the thread to determine the lower and upper bound -! of final swe - if(fsnol.lt.0.)csnol=fsnol -! - csnos=0. !... snow over sea - if(fsnos.ge.99999.) csnos=1. - if((fsnos.gt.0.).and.(fsnos.lt.99999)) csnos=exp(-deltf/fsnos) -! - czorl=0. !... roughness length over land - if(fzorl.ge.99999.) czorl=1. - if((fzorl.gt.0.).and.(fzorl.lt.99999)) czorl=exp(-deltf/fzorl) -! - czors=0. !... roughness length over sea - if(fzors.ge.99999.) czors=1. - if((fzors.gt.0.).and.(fzors.lt.99999)) czors=exp(-deltf/fzors) -! -! cplrl=0. !... plant resistance over land -! if(fplrl.ge.99999.) cplrl=1. -! if((fplrl.gt.0.).and.(fplrl.lt.99999)) cplrl=exp(-deltf/fplrl) -! -! cplrs=0. !... plant resistance over sea -! if(fplrs.ge.99999.) cplrs=1. -! if((fplrs.gt.0.).and.(fplrs.lt.99999)) cplrs=exp(-deltf/fplrs) -! - do k=1,lsoil - cstcl(k)=0. !... soilt over land - if(fstcl(k).ge.99999.) cstcl(k)=1. - if((fstcl(k).gt.0.).and.(fstcl(k).lt.99999)) - & cstcl(k)=exp(-deltf/fstcl(k)) - cstcs(k)=0. !... soilt over sea - if(fstcs(k).ge.99999.) cstcs(k)=1. - if((fstcs(k).gt.0.).and.(fstcs(k).lt.99999)) - & cstcs(k)=exp(-deltf/fstcs(k)) - enddo -! - cvegl=0. !... vegetation fraction over land - if(fvegl.ge.99999.) cvegl=1. - if((fvegl.gt.0.).and.(fvegl.lt.99999)) cvegl=exp(-deltf/fvegl) -! - cvegs=0. !... vegetation fraction over sea - if(fvegs.ge.99999.) cvegs=1. - if((fvegs.gt.0.).and.(fvegs.lt.99999)) cvegs=exp(-deltf/fvegs) -! - cvetl=0. !... vegetation type over land - if(fvetl.ge.99999.) cvetl=1. - if((fvetl.gt.0.).and.(fvetl.lt.99999)) cvetl=exp(-deltf/fvetl) -! - cvets=0. !... vegetation type over sea - if(fvets.ge.99999.) cvets=1. - if((fvets.gt.0.).and.(fvets.lt.99999)) cvets=exp(-deltf/fvets) -! - csotl=0. !... soil type over land - if(fsotl.ge.99999.) csotl=1. - if((fsotl.gt.0.).and.(fsotl.lt.99999)) csotl=exp(-deltf/fsotl) -! - csots=0. !... soil type over sea - if(fsots.ge.99999.) csots=1. - if((fsots.gt.0.).and.(fsots.lt.99999)) csots=exp(-deltf/fsots) - -!cwu [+16l]--------------------------------------------------------------- -! - csihl=0. !... sea ice thickness over land - if(fsihl.ge.99999.) csihl=1. - if((fsihl.gt.0.).and.(fsihl.lt.99999)) csihl=exp(-deltf/fsihl) -! - csihs=0. !... sea ice thickness over sea - if(fsihs.ge.99999.) csihs=1. - if((fsihs.gt.0.).and.(fsihs.lt.99999)) csihs=exp(-deltf/fsihs) -! - csicl=0. !... sea ice concentration over land - if(fsicl.ge.99999.) csicl=1. - if((fsicl.gt.0.).and.(fsicl.lt.99999)) csicl=exp(-deltf/fsicl) -! - csics=0. !... sea ice concentration over sea - if(fsics.ge.99999.) csics=1. - if((fsics.gt.0.).and.(fsics.lt.99999)) csics=exp(-deltf/fsics) - -!clu [+32l]--------------------------------------------------------------- -! - cvmnl=0. !... min veg cover over land - if(fvmnl.ge.99999.) cvmnl=1. - if((fvmnl.gt.0.).and.(fvmnl.lt.99999)) cvmnl=exp(-deltf/fvmnl) -! - cvmns=0. !... min veg cover over sea - if(fvmns.ge.99999.) cvmns=1. - if((fvmns.gt.0.).and.(fvmns.lt.99999)) cvmns=exp(-deltf/fvmns) -! - cvmxl=0. !... max veg cover over land - if(fvmxl.ge.99999.) cvmxl=1. - if((fvmxl.gt.0.).and.(fvmxl.lt.99999)) cvmxl=exp(-deltf/fvmxl) -! - cvmxs=0. !... max veg cover over sea - if(fvmxs.ge.99999.) cvmxs=1. - if((fvmxs.gt.0.).and.(fvmxs.lt.99999)) cvmxs=exp(-deltf/fvmxs) -! - cslpl=0. !... slope type over land - if(fslpl.ge.99999.) cslpl=1. - if((fslpl.gt.0.).and.(fslpl.lt.99999)) cslpl=exp(-deltf/fslpl) -! - cslps=0. !... slope type over sea - if(fslps.ge.99999.) cslps=1. - if((fslps.gt.0.).and.(fslps.lt.99999)) cslps=exp(-deltf/fslps) -! - cabsl=0. !... snow albedo over land - if(fabsl.ge.99999.) cabsl=1. - if((fabsl.gt.0.).and.(fabsl.lt.99999)) cabsl=exp(-deltf/fabsl) -! - cabss=0. !... snow albedo over sea - if(fabss.ge.99999.) cabss=1. - if((fabss.gt.0.).and.(fabss.lt.99999)) cabss=exp(-deltf/fabss) -!clu ---------------------------------------------------------------------- -! -! read a high resolution mask field for use in grib interpolation -! - call hmskrd(lugb,imsk,jmsk,fnmskh, - & kpdmsk,slmskh,gausm,blnmsk,bltmsk,me) -! if (qcmsk) call qcmask(slmskh,sllnd,slsea,imsk,jmsk,rla,rlo) -! - if (me .eq. 0) then - write(6,*) ' ' - write(6,*) ' lugb=',lugb,' len=',len, ' lsoil=',lsoil - write(6,*) 'iy=',iy,' im=',im,' id=',id,' ih=',ih,' fh=',fh - &, ' sig1t(1)=',sig1t(1) - &, ' gausm=',gausm,' blnmsk=',blnmsk,' bltmsk=',bltmsk - write(6,*) ' ' - endif -! -! reading permanent/extreme features (glacier points and maximum ice extent) -! - allocate (tsfcl0(len)) - allocate (glacir(len)) - allocate (amxice(len)) -! -! read glacier -! - kpd9 = -1 - kpd7 = -1 - call fixrdc(lugb,fnglac,kpdgla,kpd7,kpd9,slmask, - & glacir,len,iret - &, imsk, jmsk, slmskh, gausm, blnmsk, bltmsk - &, rla, rlo, me) -! znnt=1. -! call nntprt(glacir,len,znnt) -! -! read maximum ice extent -! - kpd7 = -1 - call fixrdc(lugb,fnmxic,kpdmxi,kpd7,kpd9,slmask, - & amxice,len,iret - &, imsk, jmsk, slmskh, gausm, blnmsk, bltmsk - &, rla, rlo, me) -! znnt=1. -! call nntprt(amxice,len,znnt) -! - crit=0.5 - call rof01(glacir,len,'ge',crit) - call rof01(amxice,len,'ge',crit) -! -! quality control max ice limit based on glacier points -! - call qcmxice(glacir,amxice,len,me) -! - endif ! first time loop finished -! - do i=1,len - sliclm(i) = 1. - snoclm(i) = 0. - icefl1(i) = .true. - enddo -! if(lprnt) print *,' tsffcsin=',tsffcs(iprnt) -! -! read climatology fields -! - if (me .eq. 0) then - write(6,*) '==============' - write(6,*) 'climatology' - write(6,*) '==============' - endif -! - percrit=critp1 -! - call clima(lugb,iy,im,id,ih,fh,len,lsoil,slmask, - & fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc,fnvegc, - & fnvetc,fnsotc, - & fnvmnc,fnvmxc,fnslpc,fnabsc, - & tsfclm,tsfcl2,wetclm,snoclm,zorclm,albclm,aisclm, - & tg3clm,cvclm ,cvbclm,cvtclm, - & cnpclm,smcclm,stcclm,sliclm,scvclm,acnclm,vegclm, - & vetclm,sotclm,alfclm, - & vmnclm,vmxclm,slpclm,absclm, - & kpdtsf,kpdwet,kpdsno,kpdzor,kpdalb,kpdais, - & kpdtg3,kpdscv,kpdacn,kpdsmc,kpdstc,kpdveg, - & kpdvet,kpdsot,kpdalf,tsfcl0, - & kpdvmn,kpdvmx,kpdslp,kpdabs, - & deltsfc, lanom - &, imsk, jmsk, slmskh, rla, rlo, gausm, blnmsk, bltmsk,me - &, lprnt, iprnt, fnalbc2, ialb) -! if(lprnt) print *,'tsfclm=',tsfclm(iprnt),' tsfcl2=',tsfcl2(iprnt) -! -! scale surface roughness and albedo to model required units -! - zsca=100. - call scale(zorclm,len,zsca) - zsca=0.01 - call scale(albclm,len,zsca) - call scale(albclm(1,2),len,zsca) - call scale(albclm(1,3),len,zsca) - call scale(albclm(1,4),len,zsca) - call scale(alfclm,len,zsca) - call scale(alfclm(1,2),len,zsca) -!clu [+4l] scale vmn, vmx, abs from percent to fraction - zsca=0.01 - call scale(vmnclm,len,zsca) - call scale(vmxclm,len,zsca) - call scale(absclm,len,zsca) - -! -! set albedo over ocean to albomx -! - call albocn(albclm,slmask,albomx,len) -! -! make sure vegetation type and soil type are non zero over land -! - call landtyp(vetclm,sotclm,slpclm,slmask,len) -! -!cwu [-1l/+1l] -!* ice concentration or ice mask (only ice mask used in the model now) -! ice concentration and ice mask (both are used in the model now) -! - if(fnaisc(1:8).ne.' ') then -!cwu [+5l/-1l] update sihclm, sicclm - do i=1,len - sihclm(i) = 3.0*aisclm(i) - sicclm(i) = aisclm(i) - if(slmask(i).eq.0..and.glacir(i).eq.1..and. - & sicclm(i).ne.1.) then - sicclm(i) = sicimx - sihfcs(i) = glacir_hice - endif - enddo - crit=aislim -!* crit=0.5 - call rof01(aisclm,len,'ge',crit) - elseif(fnacnc(1:8).ne.' ') then -!cwu [+4l] update sihclm, sicclm - do i=1,len - sihclm(i) = 3.0*acnclm(i) - sicclm(i) = acnclm(i) - if(slmask(i).eq.0..and.glacir(i).eq.1..and. - & sicclm(i).ne.1.) then - sicclm(i) = sicimx - sihfcs(i) = glacir_hice - endif - enddo - call rof01(acnclm,len,'ge',aislim) - do i=1,len - aisclm(i) = acnclm(i) - enddo - endif -! -! quality control of sea ice mask -! - call qcsice(aisclm,glacir,amxice,aicice,aicsea,sllnd,slmask, - & rla,rlo,len,me) -! -! set ocean/land/sea-ice mask -! - call setlsi(slmask,aisclm,len,aicice,sliclm) -! if(lprnt) print *,' aisclm=',aisclm(iprnt),' sliclm=' -! *,sliclm(iprnt),' slmask=',slmask(iprnt) -! -! write(6,*) 'sliclm' -! znnt=1. -! call nntprt(sliclm,len,znnt) -! -! quality control of snow -! - call qcsnow(snoclm,slmask,aisclm,glacir,len,snosmx,landice,me) -! - call setzro(snoclm,epssno,len) -! -! snow cover handling (we assume climatological snow depth is available) -! quality control of snow depth (note that snow should be corrected first -! because it influences tsf -! - kqcm=1 - call qcmxmn('snow ',snoclm,sliclm,snoclm,icefl1, - & snolmx,snolmn,snoomx,snoomn,snoimx,snoimn, - & snojmx,snojmn,snosmx,snosmn,epssno, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! write(6,*) 'snoclm' -! znnt=1. -! call nntprt(snoclm,len,znnt) -! -! get snow cover from snow depth array -! - if(fnscvc(1:8).eq.' ') then - call getscv(snoclm,scvclm,len) - endif -! -! set tsfc over snow to tsfsmx if greater -! - call snosfc(snoclm,tsfclm,tsfsmx,len,me) -! call snosfc(snoclm,tsfcl2,tsfsmx,len) - -! -! quality control -! - do i=1,len - icefl2(i) = sicclm(i) .gt. 0.99999 - enddo - kqcm=1 - call qcmxmn('tsfc ',tsfclm,sliclm,snoclm,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('tsf2 ',tsfcl2,sliclm,snoclm,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - do kk = 1, 4 - call qcmxmn('albc ',albclm(1,kk),sliclm,snoclm,icefl1, - & alblmx,alblmn,albomx,albomn,albimx,albimn, - & albjmx,albjmn,albsmx,albsmn,epsalb, - & rla,rlo,len,kqcm,percrit,lgchek,me) - enddo - if(fnwetc(1:8).ne.' ') then - call qcmxmn('wetc ',wetclm,sliclm,snoclm,icefl1, - & wetlmx,wetlmn,wetomx,wetomn,wetimx,wetimn, - & wetjmx,wetjmn,wetsmx,wetsmn,epswet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('zorc ',zorclm,sliclm,snoclm,icefl1, - & zorlmx,zorlmn,zoromx,zoromn,zorimx,zorimn, - & zorjmx,zorjmn,zorsmx,zorsmn,epszor, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! if(fnplrc(1:8).ne.' ') then -! call qcmxmn('plntc ',plrclm,sliclm,snoclm,icefl1, -! & plrlmx,plrlmn,plromx,plromn,plrimx,plrimn, -! & plrjmx,plrjmn,plrsmx,plrsmn,epsplr, -! & rla,rlo,len,kqcm,percrit,lgchek,me) -! endif - call qcmxmn('tg3c ',tg3clm,sliclm,snoclm,icefl1, - & tg3lmx,tg3lmn,tg3omx,tg3omn,tg3imx,tg3imn, - & tg3jmx,tg3jmn,tg3smx,tg3smn,epstg3, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! -! get soil temp and moisture (after all the qcs are completed) -! - if(fnsmcc(1:8).eq.' ') then - call getsmc(wetclm,len,lsoil,smcclm,me) - endif - call qcmxmn('smc1c ',smcclm(1,1),sliclm,snoclm,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc2c ',smcclm(1,2),sliclm,snoclm,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add smcclm(3:4) - if(lsoil.gt.2) then - call qcmxmn('smc3c ',smcclm(1,3),sliclm,snoclm,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc4c ',smcclm(1,4),sliclm,snoclm,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - if(fnstcc(1:8).eq.' ') then - call getstc(tsfclm,tg3clm,sliclm,len,lsoil,stcclm,tsfimx) - endif - call qcmxmn('stc1c ',stcclm(1,1),sliclm,snoclm,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc2c ',stcclm(1,2),sliclm,snoclm,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add stcclm(3:4) - if(lsoil.gt.2) then - call qcmxmn('stc3c ',stcclm(1,3),sliclm,snoclm,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc4c ',stcclm(1,4),sliclm,snoclm,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('vegc ',vegclm,sliclm,snoclm,icefl1, - & veglmx,veglmn,vegomx,vegomn,vegimx,vegimn, - & vegjmx,vegjmn,vegsmx,vegsmn,epsveg, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vetc ',vetclm,sliclm,snoclm,icefl1, - & vetlmx,vetlmn,vetomx,vetomn,vetimx,vetimn, - & vetjmx,vetjmn,vetsmx,vetsmn,epsvet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sotc ',sotclm,sliclm,snoclm,icefl1, - & sotlmx,sotlmn,sotomx,sotomn,sotimx,sotimn, - & sotjmx,sotjmn,sotsmx,sotsmn,epssot, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!cwu [+8l] --------------------------------------------------------------- - call qcmxmn('sihc ',sihclm,sliclm,snoclm,icefl1, - & sihlmx,sihlmn,sihomx,sihomn,sihimx,sihimn, - & sihjmx,sihjmn,sihsmx,sihsmn,epssih, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sicc ',sicclm,sliclm,snoclm,icefl1, - & siclmx,siclmn,sicomx,sicomn,sicimx,sicimn, - & sicjmx,sicjmn,sicsmx,sicsmn,epssic, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+16l] --------------------------------------------------------------- - call qcmxmn('vmnc ',vmnclm,sliclm,snoclm,icefl1, - & vmnlmx,vmnlmn,vmnomx,vmnomn,vmnimx,vmnimn, - & vmnjmx,vmnjmn,vmnsmx,vmnsmn,epsvmn, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vmxc ',vmxclm,sliclm,snoclm,icefl1, - & vmxlmx,vmxlmn,vmxomx,vmxomn,vmximx,vmximn, - & vmxjmx,vmxjmn,vmxsmx,vmxsmn,epsvmx, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('slpc ',slpclm,sliclm,snoclm,icefl1, - & slplmx,slplmn,slpomx,slpomn,slpimx,slpimn, - & slpjmx,slpjmn,slpsmx,slpsmn,epsslp, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('absc ',absclm,sliclm,snoclm,icefl1, - & abslmx,abslmn,absomx,absomn,absimx,absimn, - & absjmx,absjmn,abssmx,abssmn,epsabs, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu ---------------------------------------------------------------------- -! -! monitoring prints -! - if (monclm) then - if (me .eq. 0) then - print *,' ' - print *,'monitor of time and space interpolated climatology' - print *,' ' -! call count(sliclm,snoclm,len) - print *,' ' - call monitr('tsfclm',tsfclm,sliclm,snoclm,len) - call monitr('albclm',albclm(1,1),sliclm,snoclm,len) - call monitr('albclm',albclm(1,2),sliclm,snoclm,len) - call monitr('albclm',albclm(1,3),sliclm,snoclm,len) - call monitr('albclm',albclm(1,4),sliclm,snoclm,len) - call monitr('aisclm',aisclm,sliclm,snoclm,len) - call monitr('snoclm',snoclm,sliclm,snoclm,len) - call monitr('scvclm',scvclm,sliclm,snoclm,len) - call monitr('smcclm1',smcclm(1,1),sliclm,snoclm,len) - call monitr('smcclm2',smcclm(1,2),sliclm,snoclm,len) - call monitr('stcclm1',stcclm(1,1),sliclm,snoclm,len) - call monitr('stcclm2',stcclm(1,2),sliclm,snoclm,len) -!clu [+4l] add smcclm(3:4) and stcclm(3:4) - if(lsoil.gt.2) then - call monitr('smcclm3',smcclm(1,3),sliclm,snoclm,len) - call monitr('smcclm4',smcclm(1,4),sliclm,snoclm,len) - call monitr('stcclm3',stcclm(1,3),sliclm,snoclm,len) - call monitr('stcclm4',stcclm(1,4),sliclm,snoclm,len) - endif - call monitr('tg3clm',tg3clm,sliclm,snoclm,len) - call monitr('zorclm',zorclm,sliclm,snoclm,len) -! if (gaus) then - call monitr('cvaclm',cvclm ,sliclm,snoclm,len) - call monitr('cvbclm',cvbclm,sliclm,snoclm,len) - call monitr('cvtclm',cvtclm,sliclm,snoclm,len) -! endif - call monitr('sliclm',sliclm,sliclm,snoclm,len) -! call monitr('plrclm',plrclm,sliclm,snoclm,len) - call monitr('orog ',orog ,sliclm,snoclm,len) - call monitr('vegclm',vegclm,sliclm,snoclm,len) - call monitr('vetclm',vetclm,sliclm,snoclm,len) - call monitr('sotclm',sotclm,sliclm,snoclm,len) -!cwu [+2l] add sih, sic - call monitr('sihclm',sihclm,sliclm,snoclm,len) - call monitr('sicclm',sicclm,sliclm,snoclm,len) -!clu [+4l] add vmn, vmx, slp, abs - call monitr('vmnclm',vmnclm,sliclm,snoclm,len) - call monitr('vmxclm',vmxclm,sliclm,snoclm,len) - call monitr('slpclm',slpclm,sliclm,snoclm,len) - call monitr('absclm',absclm,sliclm,snoclm,len) - endif - endif -! -! - if (me .eq. 0) then - write(6,*) '==============' - write(6,*) ' analysis' - write(6,*) '==============' - endif -! -! fill in analysis array with climatology before reading analysis. -! - call filanl(tsfanl,tsfan2,wetanl,snoanl,zoranl,albanl,aisanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,scvanl,veganl, - & vetanl,sotanl,alfanl, - & sihanl,sicanl, - & vmnanl,vmxanl,slpanl,absanl, - & tsfclm,tsfcl2,wetclm,snoclm,zorclm,albclm,aisclm, - & tg3clm,cvclm ,cvbclm,cvtclm, - & cnpclm,smcclm,stcclm,sliclm,scvclm,vegclm, - & vetclm,sotclm,alfclm, - & sihclm,sicclm, - & vmnclm,vmxclm,slpclm,absclm, - & len,lsoil) -! -! reverse scaling to match with grib analysis input -! - zsca=0.01 - call scale(zoranl,len, zsca) - zsca=100. - call scale(albanl,len,zsca) - call scale(albanl(1,2),len,zsca) - call scale(albanl(1,3),len,zsca) - call scale(albanl(1,4),len,zsca) - call scale(alfanl,len,zsca) - call scale(alfanl(1,2),len,zsca) -!clu [+4l] reverse scale for vmn, vmx, abs - zsca=100. - call scale(vmnanl,len,zsca) - call scale(vmxanl,len,zsca) - call scale(absanl,len,zsca) -! - percrit=critp2 -! -! read analysis fields -! - call analy(lugb,iy,im,id,ih,fh,len,lsoil,slmask, - & fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fntg3a,fnscva,fnsmca,fnstca,fnacna,fnvega, - & fnveta,fnsota, - & fnvmna,fnvmxa,fnslpa,fnabsa, - & tsfanl,wetanl,snoanl,zoranl,albanl,aisanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & smcanl,stcanl,slianl,scvanl,acnanl,veganl, - & vetanl,sotanl,alfanl,tsfan0, - & vmnanl,vmxanl,slpanl,absanl, - & kpdtsf,kpdwet,kpdsno,kpdsnd,kpdzor,kpdalb,kpdais, - & kpdtg3,kpdscv,kpdacn,kpdsmc,kpdstc,kpdveg, - & kpdvet,kpdsot,kpdalf, - & kpdvmn,kpdvmx,kpdslp,kpdabs, - & irttsf,irtwet,irtsno,irtzor,irtalb,irtais, - & irttg3,irtscv,irtacn,irtsmc,irtstc,irtveg, - & irtvet,irtsot,irtalf - &, irtvmn,irtvmx,irtslp,irtabs, - & imsk, jmsk, slmskh, rla, rlo, gausm, blnmsk, bltmsk - &, me, lanom) -! if(lprnt) print *,' tsfanl=',tsfanl(iprnt) -! -! scale zor and alb to match forecast model units -! - zsca=100. - call scale(zoranl,len, zsca) - zsca=0.01 - call scale(albanl,len,zsca) - call scale(albanl(1,2),len,zsca) - call scale(albanl(1,3),len,zsca) - call scale(albanl(1,4),len,zsca) - call scale(alfanl,len,zsca) - call scale(alfanl(1,2),len,zsca) -!clu [+4] scale vmn, vmx, abs from percent to fraction - zsca=0.01 - call scale(vmnanl,len,zsca) - call scale(vmxanl,len,zsca) - call scale(absanl,len,zsca) -! -! interpolate climatology but fixing initial anomaly -! - if(fh > 0.0 .and. fntsfa(1:8) /= ' ' .and. lanom) then - call anomint(tsfan0,tsfclm,tsfcl0,tsfanl,len) - endif -! -! if the tsfanl is at sea level, then bring it to the surface using -! unfiltered orography (for lakes). if the analysis is at lake surface -! as in the nst model, then this call should be removed - moorthi 09/23/2011 -! - if (use_ufo .and. .not. nst_anl) then - ztsfc = 0.0 - call tsfcor(tsfanl,orog_uf,slmask,ztsfc,len,rlapse) - endif -! -! ice concentration or ice mask (only ice mask used in the model now) -! - if(fnaisa(1:8).ne.' ') then -!cwu [+5l/-1l] update sihanl, sicanl - do i=1,len - sihanl(i) = 3.0*aisanl(i) - sicanl(i) = aisanl(i) - if(slmask(i).eq.0..and.glacir(i).eq.1..and. - & sicanl(i).ne.1.) then - sicanl(i) = sicimx - sihfcs(i) = glacir_hice - endif - enddo - crit=aislim -!* crit=0.5 - call rof01(aisanl,len,'ge',crit) - elseif(fnacna(1:8).ne.' ') then -!cwu [+17l] update sihanl, sicanl - do i=1,len - sihanl(i) = 3.0*acnanl(i) - sicanl(i) = acnanl(i) - if(slmask(i).eq.0..and.glacir(i).eq.1..and. - & sicanl(i).ne.1.) then - sicanl(i) = sicimx - sihfcs(i) = glacir_hice - endif - enddo - crit=aislim - do i=1,len - if((slianl(i).eq.0.).and.(sicanl(i).ge.crit)) then - slianl(i)=2. -! print *,'cycle - new ice form: fice=',sicanl(i) - else if((slianl(i).ge.2.).and.(sicanl(i).lt.crit)) then - slianl(i)=0. -! print *,'cycle - ice free: fice=',sicanl(i) - else if((slianl(i).eq.1.).and.(sicanl(i).ge.sicimn)) then -! print *,'cycle - land covered by sea-ice: fice=',sicanl(i) - sicanl(i)=0. - endif - enddo -! znnt=10. -! call nntprt(acnanl,len,znnt) -! if(lprnt) print *,' acnanl=',acnanl(iprnt) -! do i=1,len -! if (acnanl(i) .gt. 0.3 .and. aisclm(i) .eq. 1.0 -! & .and. aisfcs(i) .ge. 0.75) acnanl(i) = aislim -! enddo -! if(lprnt) print *,' acnanl=',acnanl(iprnt) - call rof01(acnanl,len,'ge',aislim) - do i=1,len - aisanl(i)=acnanl(i) - enddo - endif -! if(lprnt) print *,' aisanl1=',aisanl(iprnt),' glacir=' -! &,glacir(iprnt),' slmask=',slmask(iprnt) -! - call qcsice(aisanl,glacir,amxice,aicice,aicsea,sllnd,slmask, - & rla,rlo,len,me) -! -! set ocean/land/sea-ice mask -! - call setlsi(slmask,aisanl,len,aicice,slianl) -! if(lprnt) print *,' aisanl=',aisanl(iprnt),' slianl=' -! *,slianl(iprnt),' slmask=',slmask(iprnt) -! -! - do k=1,lsoil - do i=1,len - if (slianl(i) .eq. 0) then - smcanl(i,k) = smcomx - stcanl(i,k) = tsfanl(i) - endif - enddo - enddo - -! write(6,*) 'slianl' -! znnt=1. -! call nntprt(slianl,len,znnt) -!cwu [+8l]---------------------------------------------------------------------- - call qcmxmn('siha ',sihanl,slianl,snoanl,icefl1, - & sihlmx,sihlmn,sihomx,sihomn,sihimx,sihimn, - & sihjmx,sihjmn,sihsmx,sihsmn,epssih, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sica ',sicanl,slianl,snoanl,icefl1, - & siclmx,siclmn,sicomx,sicomn,sicimx,sicimn, - & sicjmx,sicjmn,sicsmx,sicsmn,epssic, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! -! set albedo over ocean to albomx -! - call albocn(albanl,slmask,albomx,len) -! -! quality control of snow and sea-ice -! process snow depth or snow cover -! - if(fnsnoa(1:8).ne.' ') then - call setzro(snoanl,epssno,len) - call qcsnow(snoanl,slmask,aisanl,glacir,len,ten,landice,me) - if (.not.landice) then - call snodpth2(glacir,snosmx,snoanl, len, me) - endif - kqcm=1 - call snosfc(snoanl,tsfanl,tsfsmx,len,me) - call qcmxmn('snoa ',snoanl,slianl,snoanl,icefl1, - & snolmx,snolmn,snoomx,snoomn,snoimx,snoimn, - & snojmx,snojmn,snosmx,snosmn,epssno, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call getscv(snoanl,scvanl,len) - call qcmxmn('sncva ',scvanl,slianl,snoanl,icefl1, - & scvlmx,scvlmn,scvomx,scvomn,scvimx,scvimn, - & scvjmx,scvjmn,scvsmx,scvsmn,epsscv, - & rla,rlo,len,kqcm,percrit,lgchek,me) - else - crit=0.5 - call rof01(scvanl,len,'ge',crit) - call qcsnow(scvanl,slmask,aisanl,glacir,len,one,landice,me) - call qcmxmn('sncva ',scvanl,slianl,scvanl,icefl1, - & scvlmx,scvlmn,scvomx,scvomn,scvimx,scvimn, - & scvjmx,scvjmn,scvsmx,scvsmn,epsscv, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call snodpth(scvanl,slianl,tsfanl,snoclm, - & glacir,snwmax,snwmin,landice,len,snoanl,me) - call qcsnow(scvanl,slmask,aisanl,glacir,len,snosmx,landice,me) - call snosfc(snoanl,tsfanl,tsfsmx,len,me) - call qcmxmn('snowa ',snoanl,slianl,snoanl,icefl1, - & snolmx,snolmn,snoomx,snoomn,snoimx,snoimn, - & snojmx,snojmn,snosmx,snosmn,epssno, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif -! - do i=1,len - icefl2(i) = sicanl(i) .gt. 0.99999 - enddo - call qcmxmn('tsfa ',tsfanl,slianl,snoanl,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - do kk = 1, 4 - call qcmxmn('alba ',albanl(1,kk),slianl,snoanl,icefl1, - & alblmx,alblmn,albomx,albomn,albimx,albimn, - & albjmx,albjmn,albsmx,albsmn,epsalb, - & rla,rlo,len,kqcm,percrit,lgchek,me) - enddo - if(fnwetc(1:8).ne.' ' .or. fnweta(1:8).ne.' ' ) then - call qcmxmn('weta ',wetanl,slianl,snoanl,icefl1, - & wetlmx,wetlmn,wetomx,wetomn,wetimx,wetimn, - & wetjmx,wetjmn,wetsmx,wetsmn,epswet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('zora ',zoranl,slianl,snoanl,icefl1, - & zorlmx,zorlmn,zoromx,zoromn,zorimx,zorimn, - & zorjmx,zorjmn,zorsmx,zorsmn,epszor, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! if(fnplrc(1:8).ne.' ' .or. fnplra(1:8).ne.' ' ) then -! call qcmxmn('plna ',plranl,slianl,snoanl,icefl1, -! & plrlmx,plrlmn,plromx,plromn,plrimx,plrimn, -! & plrjmx,plrjmn,plrsmx,plrsmn,epsplr, -! & rla,rlo,len,kqcm,percrit,lgchek,me) -! endif - call qcmxmn('tg3a ',tg3anl,slianl,snoanl,icefl1, - & tg3lmx,tg3lmn,tg3omx,tg3omn,tg3imx,tg3imn, - & tg3jmx,tg3jmn,tg3smx,tg3smn,epstg3, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! -! get soil temp and moisture -! - if(fnsmca(1:8).eq.' ' .and. fnsmcc(1:8).eq.' ') then - call getsmc(wetanl,len,lsoil,smcanl,me) - endif - call qcmxmn('smc1a ',smcanl(1,1),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc2a ',smcanl(1,2),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add smcanl(3:4) - if(lsoil.gt.2) then - call qcmxmn('smc3a ',smcanl(1,3),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc4a ',smcanl(1,4),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - if(fnstca(1:8).eq.' ') then - call getstc(tsfanl,tg3anl,slianl,len,lsoil,stcanl,tsfimx) - endif - call qcmxmn('stc1a ',stcanl(1,1),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc2a ',stcanl(1,2),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add stcanl(3:4) - if(lsoil.gt.2) then - call qcmxmn('stc3a ',stcanl(1,3),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc4a ',stcanl(1,4),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('vega ',veganl,slianl,snoanl,icefl1, - & veglmx,veglmn,vegomx,vegomn,vegimx,vegimn, - & vegjmx,vegjmn,vegsmx,vegsmn,epsveg, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('veta ',vetanl,slianl,snoanl,icefl1, - & vetlmx,vetlmn,vetomx,vetomn,vetimx,vetimn, - & vetjmx,vetjmn,vetsmx,vetsmn,epsvet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sota ',sotanl,slianl,snoanl,icefl1, - & sotlmx,sotlmn,sotomx,sotomn,sotimx,sotimn, - & sotjmx,sotjmn,sotsmx,sotsmn,epssot, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+16l]---------------------------------------------------------------------- - call qcmxmn('vmna ',vmnanl,slianl,snoanl,icefl1, - & vmnlmx,vmnlmn,vmnomx,vmnomn,vmnimx,vmnimn, - & vmnjmx,vmnjmn,vmnsmx,vmnsmn,epsvmn, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vmxa ',vmxanl,slianl,snoanl,icefl1, - & vmxlmx,vmxlmn,vmxomx,vmxomn,vmximx,vmximn, - & vmxjmx,vmxjmn,vmxsmx,vmxsmn,epsvmx, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('slpa ',slpanl,slianl,snoanl,icefl1, - & slplmx,slplmn,slpomx,slpomn,slpimx,slpimn, - & slpjmx,slpjmn,slpsmx,slpsmn,epsslp, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('absa ',absanl,slianl,snoanl,icefl1, - & abslmx,abslmn,absomx,absomn,absimx,absimn, - & absjmx,absjmn,abssmx,abssmn,epsabs, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu ---------------------------------------------------------------------------- -! -! monitoring prints -! - if (monanl) then - if (me .eq. 0) then - print *,' ' - print *,'monitor of time and space interpolated analysis' - print *,' ' -! call count(slianl,snoanl,len) - print *,' ' - call monitr('tsfanl',tsfanl,slianl,snoanl,len) - call monitr('albanl',albanl,slianl,snoanl,len) - call monitr('aisanl',aisanl,slianl,snoanl,len) - call monitr('snoanl',snoanl,slianl,snoanl,len) - call monitr('scvanl',scvanl,slianl,snoanl,len) - call monitr('smcanl1',smcanl(1,1),slianl,snoanl,len) - call monitr('smcanl2',smcanl(1,2),slianl,snoanl,len) - call monitr('stcanl1',stcanl(1,1),slianl,snoanl,len) - call monitr('stcanl2',stcanl(1,2),slianl,snoanl,len) -!clu [+4l] add smcanl(3:4) and stcanl(3:4) - if(lsoil.gt.2) then - call monitr('smcanl3',smcanl(1,3),slianl,snoanl,len) - call monitr('smcanl4',smcanl(1,4),slianl,snoanl,len) - call monitr('stcanl3',stcanl(1,3),slianl,snoanl,len) - call monitr('stcanl4',stcanl(1,4),slianl,snoanl,len) - endif - call monitr('tg3anl',tg3anl,slianl,snoanl,len) - call monitr('zoranl',zoranl,slianl,snoanl,len) -! if (gaus) then - call monitr('cvaanl',cvanl ,slianl,snoanl,len) - call monitr('cvbanl',cvbanl,slianl,snoanl,len) - call monitr('cvtanl',cvtanl,slianl,snoanl,len) -! endif - call monitr('slianl',slianl,slianl,snoanl,len) -! call monitr('plranl',plranl,slianl,snoanl,len) - call monitr('orog ',orog ,slianl,snoanl,len) - call monitr('veganl',veganl,slianl,snoanl,len) - call monitr('vetanl',vetanl,slianl,snoanl,len) - call monitr('sotanl',sotanl,slianl,snoanl,len) -!cwu [+2l] add sih, sic - call monitr('sihanl',sihanl,slianl,snoanl,len) - call monitr('sicanl',sicanl,slianl,snoanl,len) -!clu [+4l] add vmn, vmx, slp, abs - call monitr('vmnanl',vmnanl,slianl,snoanl,len) - call monitr('vmxanl',vmxanl,slianl,snoanl,len) - call monitr('slpanl',slpanl,slianl,snoanl,len) - call monitr('absanl',absanl,slianl,snoanl,len) - endif - - endif -! -! read in forecast fields if needed -! - if (me .eq. 0) then - write(6,*) '==============' - write(6,*) ' fcst guess' - write(6,*) '==============' - endif -! - percrit=critp2 -! - if(deads) then -! -! fill in guess array with analysis if dead start. -! - percrit=critp3 - if (me .eq. 0) write(6,*) 'this run is dead start run' - call filfcs(tsffcs,wetfcs,snofcs,zorfcs,albfcs, - & tg3fcs,cvfcs ,cvbfcs,cvtfcs, - & cnpfcs,smcfcs,stcfcs,slifcs,aisfcs, - & vegfcs,vetfcs,sotfcs,alffcs, -!cwu [+1l] add ()fcs for sih, sic - & sihfcs,sicfcs, -!clu [+1l] add ()fcs for vmn, vmx, slp, abs - & vmnfcs,vmxfcs,slpfcs,absfcs, - & tsfanl,wetanl,snoanl,zoranl,albanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,aisanl, - & veganl,vetanl,sotanl,alfanl, -!cwu [+1l] add ()anl for sih, sic - & sihanl,sicanl, -!clu [+1l] add ()anl for vmn, vmx, slp, abs - & vmnanl,vmxanl,slpanl,absanl, - & len,lsoil) - if(sig1t(1).ne.0.) then - call usesgt(sig1t,slianl,tg3anl,len,lsoil,tsffcs,stcfcs, - & tsfimx) - do i=1,len - icefl2(i) = sicfcs(i) .gt. 0.99999 - enddo - kqcm=1 - call qcmxmn('tsff ',tsffcs,slifcs,snofcs,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc1f ',stcfcs(1,1),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc2f ',stcfcs(1,2),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - else - percrit=critp2 -! -! make reverse angulation correction to tsf -! make reverse orography correction to tg3 -! - if (use_ufo) then - ztsfc = 1.0 - orogd = orog - orog_uf - call tsfcor(tg3fcs,orogd,slmask,ztsfc,len,-rlapse) - ztsfc = 0. - call tsfcor(tsffcs,orogd,slmask,ztsfc,len,-rlapse) - else - ztsfc = 0. - call tsfcor(tsffcs,orog,slmask,ztsfc,len,-rlapse) - endif - -!clu [+12l] -------------------------------------------------------------- -! -! compute soil moisture liquid-to-total ratio over land -! - do j=1, lsoil - do i=1, len - if(smcfcs(i,j) .ne. 0.) then - swratio(i,j) = slcfcs(i,j)/smcfcs(i,j) - else - swratio(i,j) = -999. - endif - enddo - enddo -!clu ----------------------------------------------------------------------- -! - if(lqcbgs .and. irtacn .eq. 0) then - call qcsli(slianl,slifcs,len,me) - call albocn(albfcs,slmask,albomx,len) - do i=1,len - icefl2(i) = sicfcs(i) .gt. 0.99999 - enddo - kqcm=1 - call qcmxmn('snof ',snofcs,slifcs,snofcs,icefl1, - & snolmx,snolmn,snoomx,snoomn,snoimx,snoimn, - & snojmx,snojmn,snosmx,snosmn,epssno, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('tsff ',tsffcs,slifcs,snofcs,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - do kk = 1, 4 - call qcmxmn('albf ',albfcs(1,kk),slifcs,snofcs,icefl1, - & alblmx,alblmn,albomx,albomn,albimx,albimn, - & albjmx,albjmn,albsmx,albsmn,epsalb, - & rla,rlo,len,kqcm,percrit,lgchek,me) - enddo - if(fnwetc(1:8).ne.' ' .or. fnweta(1:8).ne.' ' ) - & then - call qcmxmn('wetf ',wetfcs,slifcs,snofcs,icefl1, - & wetlmx,wetlmn,wetomx,wetomn,wetimx,wetimn, - & wetjmx,wetjmn,wetsmx,wetsmn,epswet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('zorf ',zorfcs,slifcs,snofcs,icefl1, - & zorlmx,zorlmn,zoromx,zoromn,zorimx,zorimn, - & zorjmx,zorjmn,zorsmx,zorsmn,epszor, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! if(fnplrc(1:8).ne.' ' .or. fnplra(1:8).ne.' ' ) -! call qcmxmn('plnf ',plrfcs,slifcs,snofcs,icefl1, -! & plrlmx,plrlmn,plromx,plromn,plrimx,plrimn, -! & plrjmx,plrjmn,plrsmx,plrsmn,epsplr, -! & rla,rlo,len,kqcm,percrit,lgchek,me) -! endif - call qcmxmn('tg3f ',tg3fcs,slifcs,snofcs,icefl1, - & tg3lmx,tg3lmn,tg3omx,tg3omn,tg3imx,tg3imn, - & tg3jmx,tg3jmn,tg3smx,tg3smn,epstg3, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!cwu [+8l] --------------------------------------------------------------- - call qcmxmn('sihf ',sihfcs,slifcs,snofcs,icefl1, - & sihlmx,sihlmn,sihomx,sihomn,sihimx,sihimn, - & sihjmx,sihjmn,sihsmx,sihsmn,epssih, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sicf ',sicfcs,slifcs,snofcs,icefl1, - & siclmx,siclmn,sicomx,sicomn,sicimx,sicimn, - & sicjmx,sicjmn,sicsmx,sicsmn,epssic, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc1f ',smcfcs(1,1),slifcs,snofcs,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc2f ',smcfcs(1,2),slifcs,snofcs,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add smcfcs(3:4) - if(lsoil.gt.2) then - call qcmxmn('smc3f ',smcfcs(1,3),slifcs,snofcs,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc4f ',smcfcs(1,4),slifcs,snofcs,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('stc1f ',stcfcs(1,1),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc2f ',stcfcs(1,2),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add stcfcs(3:4) - if(lsoil.gt.2) then - call qcmxmn('stc3f ',stcfcs(1,3),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc4f ',stcfcs(1,4),slifcs,snofcs,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('vegf ',vegfcs,slifcs,snofcs,icefl1, - & veglmx,veglmn,vegomx,vegomn,vegimx,vegimn, - & vegjmx,vegjmn,vegsmx,vegsmn,epsveg, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vetf ',vetfcs,slifcs,snofcs,icefl1, - & vetlmx,vetlmn,vetomx,vetomn,vetimx,vetimn, - & vetjmx,vetjmn,vetsmx,vetsmn,epsvet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sotf ',sotfcs,slifcs,snofcs,icefl1, - & sotlmx,sotlmn,sotomx,sotomn,sotimx,sotimn, - & sotjmx,sotjmn,sotsmx,sotsmn,epssot, - & rla,rlo,len,kqcm,percrit,lgchek,me) - -!clu [+16l] --------------------------------------------------------------- - call qcmxmn('vmnf ',vmnfcs,slifcs,snofcs,icefl1, - & vmnlmx,vmnlmn,vmnomx,vmnomn,vmnimx,vmnimn, - & vmnjmx,vmnjmn,vmnsmx,vmnsmn,epsvmn, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vmxf ',vmxfcs,slifcs,snofcs,icefl1, - & vmxlmx,vmxlmn,vmxomx,vmxomn,vmximx,vmximn, - & vmxjmx,vmxjmn,vmxsmx,vmxsmn,epsvmx, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('slpf ',slpfcs,slifcs,snofcs,icefl1, - & slplmx,slplmn,slpomx,slpomn,slpimx,slpimn, - & slpjmx,slpjmn,slpsmx,slpsmn,epsslp, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('absf ',absfcs,slifcs,snofcs,icefl1, - & abslmx,abslmn,absomx,absomn,absimx,absimn, - & absjmx,absjmn,abssmx,abssmn,epsabs, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu ----------------------------------------------------------------------- - endif - endif -! - if (monfcs) then - if (me .eq. 0) then - print *,' ' - print *,'monitor of guess' - print *,' ' -! call count(slifcs,snofcs,len) - print *,' ' - call monitr('tsffcs',tsffcs,slifcs,snofcs,len) - call monitr('albfcs',albfcs,slifcs,snofcs,len) - call monitr('aisfcs',aisfcs,slifcs,snofcs,len) - call monitr('snofcs',snofcs,slifcs,snofcs,len) - call monitr('smcfcs1',smcfcs(1,1),slifcs,snofcs,len) - call monitr('smcfcs2',smcfcs(1,2),slifcs,snofcs,len) - call monitr('stcfcs1',stcfcs(1,1),slifcs,snofcs,len) - call monitr('stcfcs2',stcfcs(1,2),slifcs,snofcs,len) -!clu [+4l] add smcfcs(3:4) and stcfcs(3:4) - if(lsoil.gt.2) then - call monitr('smcfcs3',smcfcs(1,3),slifcs,snofcs,len) - call monitr('smcfcs4',smcfcs(1,4),slifcs,snofcs,len) - call monitr('stcfcs3',stcfcs(1,3),slifcs,snofcs,len) - call monitr('stcfcs4',stcfcs(1,4),slifcs,snofcs,len) - endif - call monitr('tg3fcs',tg3fcs,slifcs,snofcs,len) - call monitr('zorfcs',zorfcs,slifcs,snofcs,len) -! if (gaus) then - call monitr('cvafcs',cvfcs ,slifcs,snofcs,len) - call monitr('cvbfcs',cvbfcs,slifcs,snofcs,len) - call monitr('cvtfcs',cvtfcs,slifcs,snofcs,len) -! endif - call monitr('slifcs',slifcs,slifcs,snofcs,len) -! call monitr('plrfcs',plrfcs,slifcs,snofcs,len) - call monitr('orog ',orog ,slifcs,snofcs,len) - call monitr('vegfcs',vegfcs,slifcs,snofcs,len) - call monitr('vetfcs',vetfcs,slifcs,snofcs,len) - call monitr('sotfcs',sotfcs,slifcs,snofcs,len) -!cwu [+2l] add sih, sic - call monitr('sihfcs',sihfcs,slifcs,snofcs,len) - call monitr('sicfcs',sicfcs,slifcs,snofcs,len) -!clu [+4l] add vmn, vmx, slp, abs - call monitr('vmnfcs',vmnfcs,slifcs,snofcs,len) - call monitr('vmxfcs',vmxfcs,slifcs,snofcs,len) - call monitr('slpfcs',slpfcs,slifcs,snofcs,len) - call monitr('absfcs',absfcs,slifcs,snofcs,len) - endif - endif -! -!... update annual cycle in the sst guess.. -! -! if(lprnt) print *,'tsfclm=',tsfclm(iprnt),' tsfcl2=',tsfcl2(iprnt) -! *,' tsffcs=',tsffcs(iprnt),' slianl=',slianl(iprnt) - - if (fh-deltsfc > 0.001) then - do i=1,len - if(slianl(i) == 0.0) then - tsffcs(i) = tsffcs(i) + (tsfclm(i) - tsfcl2(i)) - endif - enddo - endif -! -! quality control analysis using forecast guess -! - call qcbyfc(tsffcs,snofcs,qctsfs,qcsnos,qctsfi,len,lsoil, - & snoanl,aisanl,slianl,tsfanl,albanl, - & zoranl,smcanl, - & smcclm,tsfsmx,albomx,zoromx,me) -! -! blend climatology and predicted fields -! - if(me .eq. 0) then - write(6,*) '==============' - write(6,*) ' merging' - write(6,*) '==============' - endif -! if(lprnt) print *,' tsffcs=',tsffcs(iprnt) -! - percrit=critp3 -! -! merge analysis and forecast. note tg3, ais are not merged -! - call merge(len,lsoil,iy,im,id,ih,fh,deltsfc, - & sihfcs,sicfcs, - & vmnfcs,vmxfcs,slpfcs,absfcs, - & tsffcs,wetfcs,snofcs,zorfcs,albfcs,aisfcs, - & cvfcs ,cvbfcs,cvtfcs, - & cnpfcs,smcfcs,stcfcs,slifcs,vegfcs, - & vetfcs,sotfcs,alffcs, - & sihanl,sicanl, - & vmnanl,vmxanl,slpanl,absanl, - & tsfanl,tsfan2,wetanl,snoanl,zoranl,albanl,aisanl, - & cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,veganl, - & vetanl,sotanl,alfanl, - & ctsfl,calbl,caisl,csnol,csmcl,czorl,cstcl,cvegl, - & ctsfs,calbs,caiss,csnos,csmcs,czors,cstcs,cvegs, - & ccv,ccvb,ccvt,ccnp,cvetl,cvets,csotl,csots, - & calfl,calfs, - & csihl,csihs,csicl,csics, - & cvmnl,cvmns,cvmxl,cvmxs,cslpl,cslps,cabsl,cabss, - & irttsf,irtwet,irtsno,irtzor,irtalb,irtais, - & irttg3,irtscv,irtacn,irtsmc,irtstc,irtveg, - & irtvmn,irtvmx,irtslp,irtabs, - & irtvet,irtsot,irtalf,landice,me) - - call setzro(snoanl,epssno,len) - -! if(lprnt) print *,' tanlm=',tsfanl(iprnt),' tfcsm=',tsffcs(iprnt) -! if(lprnt) print *,' sliam=',slianl(iprnt),' slifm=',slifcs(iprnt) - -! -! new ice/melted ice -! - call newice(slianl,slifcs,tsfanl,tsffcs,len,lsoil, -!cwu [+1l] add sihnew, aislim, sihanl & sicanl - & sihnew,aislim,sihanl,sicanl, - & albanl,snoanl,zoranl,smcanl,stcanl, - & albomx,snoomx,zoromx,smcomx,smcimx, -!cwu [-1l/+1l] change albimx to albimn - note albimx & albimn have been modified -! & tsfomn,tsfimx,albimx,zorimx,tgice, - & tsfomn,tsfimx,albimn,zorimx,tgice, - & rla,rlo,me) - -! if(lprnt) print *,'tsfanl=',tsfanl(iprnt),' tsffcs=',tsffcs(iprnt) -! if(lprnt) print *,' slian=',slianl(iprnt),' slifn=',slifcs(iprnt) -! -! set tsfc to tsnow over snow -! - call snosfc(snoanl,tsfanl,tsfsmx,len,me) -! - do i=1,len - icefl2(i) = sicanl(i) .gt. 0.99999 - enddo - kqcm=0 - call qcmxmn('snowm ',snoanl,slianl,snoanl,icefl1, - & snolmx,snolmn,snoomx,snoomn,snoimx,snoimn, - & snojmx,snojmn,snosmx,snosmn,epssno, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('tsfm ',tsfanl,slianl,snoanl,icefl2, - & tsflmx,tsflmn,tsfomx,tsfomn,tsfimx,tsfimn, - & tsfjmx,tsfjmn,tsfsmx,tsfsmn,epstsf, - & rla,rlo,len,kqcm,percrit,lgchek,me) - do kk = 1, 4 - call qcmxmn('albm ',albanl(1,kk),slianl,snoanl,icefl1, - & alblmx,alblmn,albomx,albomn,albimx,albimn, - & albjmx,albjmn,albsmx,albsmn,epsalb, - & rla,rlo,len,kqcm,percrit,lgchek,me) - enddo - if(fnwetc(1:8).ne.' ' .or. fnweta(1:8).ne.' ' ) - & then - call qcmxmn('wetm ',wetanl,slianl,snoanl,icefl1, - & wetlmx,wetlmn,wetomx,wetomn,wetimx,wetimn, - & wetjmx,wetjmn,wetsmx,wetsmn,epswet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('zorm ',zoranl,slianl,snoanl,icefl1, - & zorlmx,zorlmn,zoromx,zoromn,zorimx,zorimn, - & zorjmx,zorjmn,zorsmx,zorsmn,epszor, - & rla,rlo,len,kqcm,percrit,lgchek,me) -! if(fnplrc(1:8).ne.' ' .or. fnplra(1:8).ne.' ' ) -! & then -! call qcmxmn('plntm ',plranl,slianl,snoanl,icefl1, -! & plrlmx,plrlmn,plromx,plromn,plrimx,plrimn, -! & plrjmx,plrjmn,plrsmx,plrsmn,epsplr, -! & rla,rlo,len,kqcm,percrit,lgchek,me) -! endif - call qcmxmn('stc1m ',stcanl(1,1),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc2m ',stcanl(1,2),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add stcanl(3:4) - if(lsoil.gt.2) then - call qcmxmn('stc3m ',stcanl(1,3),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('stc4m ',stcanl(1,4),slianl,snoanl,icefl1, - & stclmx,stclmn,stcomx,stcomn,stcimx,stcimn, - & stcjmx,stcjmn,stcsmx,stcsmn,eptsfc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - call qcmxmn('smc1m ',smcanl(1,1),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc2m ',smcanl(1,2),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+8l] add smcanl(3:4) - if(lsoil.gt.2) then - call qcmxmn('smc3m ',smcanl(1,3),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('smc4m ',smcanl(1,4),slianl,snoanl,icefl1, - & smclmx,smclmn,smcomx,smcomn,smcimx,smcimn, - & smcjmx,smcjmn,smcsmx,smcsmn,epssmc, - & rla,rlo,len,kqcm,percrit,lgchek,me) - endif - kqcm=1 - call qcmxmn('vegm ',veganl,slianl,snoanl,icefl1, - & veglmx,veglmn,vegomx,vegomn,vegimx,vegimn, - & vegjmx,vegjmn,vegsmx,vegsmn,epsveg, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vetm ',vetanl,slianl,snoanl,icefl1, - & vetlmx,vetlmn,vetomx,vetomn,vetimx,vetimn, - & vetjmx,vetjmn,vetsmx,vetsmn,epsvet, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sotm ',sotanl,slianl,snoanl,icefl1, - & sotlmx,sotlmn,sotomx,sotomn,sotimx,sotimn, - & sotjmx,sotjmn,sotsmx,sotsmn,epssot, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!cwu [+8l] add sih, sic, - call qcmxmn('sihm ',sihanl,slianl,snoanl,icefl1, - & sihlmx,sihlmn,sihomx,sihomn,sihimx,sihimn, - & sihjmx,sihjmn,sihsmx,sihsmn,epssih, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('sicm ',sicanl,slianl,snoanl,icefl1, - & siclmx,siclmn,sicomx,sicomn,sicimx,sicimn, - & sicjmx,sicjmn,sicsmx,sicsmn,epssic, - & rla,rlo,len,kqcm,percrit,lgchek,me) -!clu [+16l] add vmn, vmx, slp, abs - call qcmxmn('vmnm ',vmnanl,slianl,snoanl,icefl1, - & vmnlmx,vmnlmn,vmnomx,vmnomn,vmnimx,vmnimn, - & vmnjmx,vmnjmn,vmnsmx,vmnsmn,epsvmn, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('vmxm ',vmxanl,slianl,snoanl,icefl1, - & vmxlmx,vmxlmn,vmxomx,vmxomn,vmximx,vmximn, - & vmxjmx,vmxjmn,vmxsmx,vmxsmn,epsvmx, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('slpm ',slpanl,slianl,snoanl,icefl1, - & slplmx,slplmn,slpomx,slpomn,slpimx,slpimn, - & slpjmx,slpjmn,slpsmx,slpsmn,epsslp, - & rla,rlo,len,kqcm,percrit,lgchek,me) - call qcmxmn('absm ',absanl,slianl,snoanl,icefl1, - & abslmx,abslmn,absomx,absomn,absimx,absimn, - & absjmx,absjmn,abssmx,abssmn,epsabs, - & rla,rlo,len,kqcm,percrit,lgchek,me) - -! - if(me .eq. 0) then - write(6,*) '==============' - write(6,*) 'final results' - write(6,*) '==============' - endif -! -! foreward correction to tg3 and tsf at the last stage -! -! if(lprnt) print *,' tsfbc=',tsfanl(iprnt) - if (use_ufo) then - ztsfc = 1. - call tsfcor(tg3anl,orogd,slmask,ztsfc,len,rlapse) - ztsfc = 0. - call tsfcor(tsfanl,orogd,slmask,ztsfc,len,rlapse) - else - ztsfc = 0. - call tsfcor(tsfanl,orog,slmask,ztsfc,len,rlapse) - endif -! if(lprnt) print *,' tsfaf=',tsfanl(iprnt) -! -! check the final merged product -! - if (monmer) then - if(me .eq. 0) then - print *,' ' - print *,'monitor of updated surface fields' - print *,' (includes angulation correction)' - print *,' ' -! call count(slianl,snoanl,len) - print *,' ' - call monitr('tsfanl',tsfanl,slianl,snoanl,len) - call monitr('albanl',albanl,slianl,snoanl,len) - call monitr('aisanl',aisanl,slianl,snoanl,len) - call monitr('snoanl',snoanl,slianl,snoanl,len) - call monitr('smcanl1',smcanl(1,1),slianl,snoanl,len) - call monitr('smcanl2',smcanl(1,2),slianl,snoanl,len) - call monitr('stcanl1',stcanl(1,1),slianl,snoanl,len) - call monitr('stcanl2',stcanl(1,2),slianl,snoanl,len) -!clu [+4l] add smcanl(3:4) and stcanl(3:4) - if(lsoil.gt.2) then - call monitr('smcanl3',smcanl(1,3),slianl,snoanl,len) - call monitr('smcanl4',smcanl(1,4),slianl,snoanl,len) - call monitr('stcanl3',stcanl(1,3),slianl,snoanl,len) - call monitr('stcanl4',stcanl(1,4),slianl,snoanl,len) - call monitr('tg3anl',tg3anl,slianl,snoanl,len) - call monitr('zoranl',zoranl,slianl,snoanl,len) - endif -! if (gaus) then - call monitr('cvaanl',cvanl ,slianl,snoanl,len) - call monitr('cvbanl',cvbanl,slianl,snoanl,len) - call monitr('cvtanl',cvtanl,slianl,snoanl,len) -! endif - call monitr('slianl',slianl,slianl,snoanl,len) -! call monitr('plranl',plranl,slianl,snoanl,len) - call monitr('orog ',orog ,slianl,snoanl,len) - call monitr('cnpanl',cnpanl,slianl,snoanl,len) - call monitr('veganl',veganl,slianl,snoanl,len) - call monitr('vetanl',vetanl,slianl,snoanl,len) - call monitr('sotanl',sotanl,slianl,snoanl,len) -!cwu [+2l] add sih, sic, - call monitr('sihanl',sihanl,slianl,snoanl,len) - call monitr('sicanl',sicanl,slianl,snoanl,len) -!clu [+4l] add vmn, vmx, slp, abs - call monitr('vmnanl',vmnanl,slianl,snoanl,len) - call monitr('vmxanl',vmxanl,slianl,snoanl,len) - call monitr('slpanl',slpanl,slianl,snoanl,len) - call monitr('absanl',absanl,slianl,snoanl,len) - endif - endif -! - if (mondif) then - do i=1,len - tsffcs(i) = tsfanl(i) - tsffcs(i) - snofcs(i) = snoanl(i) - snofcs(i) - tg3fcs(i) = tg3anl(i) - tg3fcs(i) - zorfcs(i) = zoranl(i) - zorfcs(i) -! plrfcs(i) = plranl(i) - plrfcs(i) -! albfcs(i) = albanl(i) - albfcs(i) - slifcs(i) = slianl(i) - slifcs(i) - aisfcs(i) = aisanl(i) - aisfcs(i) - cnpfcs(i) = cnpanl(i) - cnpfcs(i) - vegfcs(i) = veganl(i) - vegfcs(i) - vetfcs(i) = vetanl(i) - vetfcs(i) - sotfcs(i) = sotanl(i) - sotfcs(i) -!clu [+2l] add sih, sic - sihfcs(i) = sihanl(i) - sihfcs(i) - sicfcs(i) = sicanl(i) - sicfcs(i) -!clu [+4l] add vmn, vmx, slp, abs - vmnfcs(i) = vmnanl(i) - vmnfcs(i) - vmxfcs(i) = vmxanl(i) - vmxfcs(i) - slpfcs(i) = slpanl(i) - slpfcs(i) - absfcs(i) = absanl(i) - absfcs(i) - enddo - do j = 1,lsoil - do i = 1,len - smcfcs(i,j) = smcanl(i,j) - smcfcs(i,j) - stcfcs(i,j) = stcanl(i,j) - stcfcs(i,j) - enddo - enddo - do j = 1,4 - do i = 1,len - albfcs(i,j) = albanl(i,j) - albfcs(i,j) - enddo - enddo -! -! monitoring prints -! - if(me .eq. 0) then - print *,' ' - print *,'monitor of difference' - print *,' (includes angulation correction)' - print *,' ' - call monitr('tsfdif',tsffcs,slianl,snoanl,len) - call monitr('albdif',albfcs,slianl,snoanl,len) - call monitr('albdif1',albfcs,slianl,snoanl,len) - call monitr('albdif2',albfcs(1,2),slianl,snoanl,len) - call monitr('albdif3',albfcs(1,3),slianl,snoanl,len) - call monitr('albdif4',albfcs(1,4),slianl,snoanl,len) - call monitr('aisdif',aisfcs,slianl,snoanl,len) - call monitr('snodif',snofcs,slianl,snoanl,len) - call monitr('smcanl1',smcfcs(1,1),slianl,snoanl,len) - call monitr('smcanl2',smcfcs(1,2),slianl,snoanl,len) - call monitr('stcanl1',stcfcs(1,1),slianl,snoanl,len) - call monitr('stcanl2',stcfcs(1,2),slianl,snoanl,len) -!clu [+4l] add smcfcs(3:4) and stc(3:4) - if(lsoil.gt.2) then - call monitr('smcanl3',smcfcs(1,3),slianl,snoanl,len) - call monitr('smcanl4',smcfcs(1,4),slianl,snoanl,len) - call monitr('stcanl3',stcfcs(1,3),slianl,snoanl,len) - call monitr('stcanl4',stcfcs(1,4),slianl,snoanl,len) - endif - call monitr('tg3dif',tg3fcs,slianl,snoanl,len) - call monitr('zordif',zorfcs,slianl,snoanl,len) -! if (gaus) then - call monitr('cvadif',cvfcs ,slianl,snoanl,len) - call monitr('cvbdif',cvbfcs,slianl,snoanl,len) - call monitr('cvtdif',cvtfcs,slianl,snoanl,len) -! endif - call monitr('slidif',slifcs,slianl,snoanl,len) -! call monitr('plrdif',plrfcs,slianl,snoanl,len) - call monitr('cnpdif',cnpfcs,slianl,snoanl,len) - call monitr('vegdif',vegfcs,slianl,snoanl,len) - call monitr('vetdif',vetfcs,slianl,snoanl,len) - call monitr('sotdif',sotfcs,slianl,snoanl,len) -!cwu [+2l] add sih, sic - call monitr('sihdif',sihfcs,slianl,snoanl,len) - call monitr('sicdif',sicfcs,slianl,snoanl,len) -!clu [+4l] add vmn, vmx, slp, abs - call monitr('vmndif',vmnfcs,slianl,snoanl,len) - call monitr('vmxdif',vmxfcs,slianl,snoanl,len) - call monitr('slpdif',slpfcs,slianl,snoanl,len) - call monitr('absdif',absfcs,slianl,snoanl,len) - endif - endif -! -! - do i=1,len - tsffcs(i) = tsfanl(i) - snofcs(i) = snoanl(i) - tg3fcs(i) = tg3anl(i) - zorfcs(i) = zoranl(i) -! plrfcs(i) = plranl(i) -! albfcs(i) = albanl(i) - slifcs(i) = slianl(i) - aisfcs(i) = aisanl(i) - cvfcs(i) = cvanl(i) - cvbfcs(i) = cvbanl(i) - cvtfcs(i) = cvtanl(i) - cnpfcs(i) = cnpanl(i) - vegfcs(i) = veganl(i) - vetfcs(i) = vetanl(i) - sotfcs(i) = sotanl(i) -!clu [+4l] add vmn, vmx, slp, abs - vmnfcs(i) = vmnanl(i) - vmxfcs(i) = vmxanl(i) - slpfcs(i) = slpanl(i) - absfcs(i) = absanl(i) - enddo - do j = 1,lsoil - do i = 1,len - smcfcs(i,j) = smcanl(i,j) - if (slifcs(i) .gt. 0.0) then - stcfcs(i,j) = stcanl(i,j) - else - stcfcs(i,j) = tsffcs(i) - endif - enddo - enddo - do j = 1,4 - do i = 1,len - albfcs(i,j) = albanl(i,j) - enddo - enddo - do j = 1,2 - do i = 1,len - alffcs(i,j) = alfanl(i,j) - enddo - enddo - -!cwu [+20l] update sihfcs, sicfcs. remove sea ice over non-ice points - crit=aislim - do i=1,len - sihfcs(i) = sihanl(i) - sitfcs(i) = tsffcs(i) - if (slifcs(i).ge.2.) then - if (sicfcs(i).gt.crit) then - tsffcs(i) = (sicanl(i)*tsffcs(i) - & + (sicfcs(i)-sicanl(i))*tgice)/sicfcs(i) - sitfcs(i) = (tsffcs(i)-tgice*(1.0-sicfcs(i))) / sicfcs(i) - else - tsffcs(i) = tsfanl(i) -! tsffcs(i) = tgice - sihfcs(i) = sihnew - endif - endif - sicfcs(i) = sicanl(i) - enddo - do i=1,len - if (slifcs(i).lt.1.5) then - sihfcs(i) = 0. - sicfcs(i) = 0. - sitfcs(i) = tsffcs(i) - else if ((slifcs(i).ge.1.5).and.(sicfcs(i).lt.crit)) then - print *,'warning: check, slifcs and sicfcs', - & slifcs(i),sicfcs(i) - endif - enddo - -! -! ensure the consistency between slc and smc -! - do k=1, lsoil - fixratio(k) = .false. - if (fsmcl(k).lt.99999.) fixratio(k) = .true. - enddo - - if(me .eq. 0) then - print *,'dbgx --fixratio:',(fixratio(k),k=1,lsoil) - endif - - do k=1, lsoil - if(fixratio(k)) then - do i = 1, len - if(swratio(i,k) .eq. -999.) then - slcfcs(i,k) = smcfcs(i,k) - else - slcfcs(i,k) = swratio(i,k) * smcfcs(i,k) - endif - if (slifcs(i) .ne. 1.0) slcfcs(i,k) = 1.0 ! flag value for non-land points. - enddo - endif - enddo -! set liquid soil moisture to a flag value of 1.0 - if (landice) then - do i = 1, len - if (slifcs(i) .eq. 1.0 .and. - & nint(vetfcs(i)) == veg_type_landice) then - do k=1, lsoil - slcfcs(i,k) = 1.0 - enddo - endif - enddo - end if -! -! ensure the consistency between snwdph and sheleg -! - if(fsnol .lt. 99999.) then - if(me .eq. 0) then - print *,'dbgx -- scale snwdph from sheleg' - endif - do i = 1, len - if(slifcs(i).eq.1.) swdfcs(i) = 10.* snofcs(i) - enddo - endif - -! sea ice model only uses the liquid equivalent depth. -! so update the physical depth only for display purposes. -! use the same 3:1 ratio used by ice model. - - do i = 1, len - if (slifcs(i).ne.1) swdfcs(i) = 3.*snofcs(i) - enddo - - do i = 1, len - if(slifcs(i).eq.1.) then - if(snofcs(i).ne.0. .and. swdfcs(i).eq.0.) then - print *,'dbgx --scale snwdph from sheleg', - + i, swdfcs(i), snofcs(i) - swdfcs(i) = 10.* snofcs(i) - endif - endif - enddo -! landice mods - impose same minimum snow depth at -! landice as noah lsm. also ensure -! lower thermal boundary condition -! and skin t is no warmer than freezing -! after adjustment to terrain. - if (landice) then - do i = 1, len - if (slifcs(i) .eq. 1.0 .and. - & nint(vetfcs(i)) == veg_type_landice) then - snofcs(i) = max(snofcs(i),100.0) ! in mm - swdfcs(i) = max(swdfcs(i),1000.0) ! in mm - tg3fcs(i) = min(tg3fcs(i),273.15) - tsffcs(i) = min(tsffcs(i),273.15) - endif - enddo - end if -! -! if(lprnt) print *,' tsffcsf=',tsffcs(iprnt) - return - end subroutine sfccycle - subroutine count(slimsk,sno,ijmax) - use machine , only : kind_io8,kind_io4 - implicit none - real (kind=kind_io8) rl3,rl1,rl0,rl2,rl6,rl7,rl4,rl5 - integer l8,l7,l1,l2,ijmax,l0,l3,l5,l6,l4,ij -! - real (kind=kind_io8) slimsk(1),sno(1) -! -! count number of points for the four surface conditions -! - l0 = 0 - l1 = 0 - l2 = 0 - l3 = 0 - l4 = 0 - do ij=1,ijmax - if(slimsk(ij).eq.0.) l1 = l1 + 1 - if(slimsk(ij).eq.1. .and. sno(ij).le.0.) l0 = l0 + 1 - if(slimsk(ij).eq.2. .and. sno(ij).le.0.) l2 = l2 + 1 - if(slimsk(ij).eq.1. .and. sno(ij).gt.0.) l3 = l3 + 1 - if(slimsk(ij).eq.2. .and. sno(ij).gt.0.) l4 = l4 + 1 - enddo - l5 = l0 + l3 - l6 = l2 + l4 - l7 = l1 + l6 - l8 = l1 + l5 + l6 - rl0 = float(l0) / float(l8)*100. - rl3 = float(l3) / float(l8)*100. - rl1 = float(l1) / float(l8)*100. - rl2 = float(l2) / float(l8)*100. - rl4 = float(l4) / float(l8)*100. - rl5 = float(l5) / float(l8)*100. - rl6 = float(l6) / float(l8)*100. - rl7 = float(l7) / float(l8)*100. - print *,'1) no. of not snow-covered land points ',l0,' ',rl0,' ' - print *,'2) no. of snow covered land points ',l3,' ',rl3,' ' - print *,'3) no. of open sea points ',l1,' ',rl1,' ' - print *,'4) no. of not snow-covered seaice points ',l2,' ',rl2,' ' - print *,'5) no. of snow covered sea ice points ',l4,' ',rl4,' ' - print *,' ' - print *,'6) no. of land points ',l5,' ',rl5,' ' - print *,'7) no. sea points (including sea ice) ',l7,' ',rl7,' ' - print *,' (no. of sea ice points) (',l6,')',' ',rl6,' ' - print *,' ' - print *,'9) no. of total grid points ',l8 -! print *,' ' -! print *,' ' - -! -! if(lprnt) print *,' tsffcsf=',tsffcs(iprnt) - return - end - subroutine monitr(lfld,fld,slimsk,sno,ijmax) - use machine , only : kind_io8,kind_io4 - implicit none - integer ij,n,ijmax -! - real (kind=kind_io8) fld(ijmax), slimsk(ijmax),sno(ijmax) -! - real (kind=kind_io8) rmax(5),rmin(5) - character(len=*) lfld -! -! find max/min -! - do n=1,5 - rmax(n) = -9.e20 - rmin(n) = 9.e20 - enddo -! - do ij=1,ijmax - if(slimsk(ij).eq.0.) then - rmax(1) = max(rmax(1), fld(ij)) - rmin(1) = min(rmin(1), fld(ij)) - elseif(slimsk(ij).eq.1.) then - if(sno(ij).le.0.) then - rmax(2) = max(rmax(2), fld(ij)) - rmin(2) = min(rmin(2), fld(ij)) - else - rmax(4) = max(rmax(4), fld(ij)) - rmin(4) = min(rmin(4), fld(ij)) - endif - else - if(sno(ij).le.0.) then - rmax(3) = max(rmax(3), fld(ij)) - rmin(3) = min(rmin(3), fld(ij)) - else - rmax(5) = max(rmax(5), fld(ij)) - rmin(5) = min(rmin(5), fld(ij)) - endif - endif - enddo -! - print 100,lfld - print 101,rmax(1),rmin(1) - print 102,rmax(2),rmin(2), rmax(4), rmin(4) - print 103,rmax(3),rmin(3), rmax(5), rmin(5) -! -! print 102,rmax(2),rmin(2) -! print 103,rmax(3),rmin(3) -! print 104,rmax(4),rmin(4) -! print 105,rmax(5),rmin(5) - 100 format('0 *** ',a8,' ***') - 101 format(' open sea ......... max=',e12.4,' min=',e12.4) - 102 format(' land nosnow/snow .. max=',e12.4,' min=',e12.4 - &, ' max=',e12.4,' min=',e12.4) - 103 format(' seaice nosnow/snow max=',e12.4,' min=',e12.4 - &, ' max=',e12.4,' min=',e12.4) -! -! 100 format('0',2x,'*** ',a8,' ***') -! 102 format(2x,' land without snow ..... max=',e12.4,' min=',e12.4) -! 103 format(2x,' seaice without snow ... max=',e12.4,' min=',e12.4) -! 104 format(2x,' land with snow ........ max=',e12.4,' min=',e12.4) -! 105 format(2x,' sea ice with snow ..... max=',e12.4,' min=',e12.4) -! - return - end - subroutine dayoyr(iyr,imo,idy,ldy) - implicit none - integer ldy,i,idy,iyr,imo -! -! this routine figures out the day of the year given imo and idy -! - integer month(13) - data month/0,31,28,31,30,31,30,31,31,30,31,30,31/ - if(mod(iyr,4).eq.0) month(3) = 29 - ldy = idy - do i = 1, imo - ldy = ldy + month(i) - enddo - return - end - subroutine hmskrd(lugb,imsk,jmsk,fnmskh, - & kpds5,slmskh,gausm,blnmsk,bltmsk,me) - use machine , only : kind_io8,kind_io4 - use sfccyc_module, only : mdata, xdata, ydata - implicit none - integer kpds5,me,i,imsk,jmsk,lugb -! - character*500 fnmskh -! - real (kind=kind_io8) slmskh(mdata) - logical gausm - real (kind=kind_io8) blnmsk,bltmsk -! - imsk = xdata - jmsk = ydata - - if (me .eq. 0) then - write(6,*)' imsk=',imsk,' jmsk=',jmsk,' xdata=',xdata,' ydata=' - &, ydata - endif - - call fixrdg(lugb,imsk,jmsk,fnmskh, - & kpds5,slmskh,gausm,blnmsk,bltmsk,me) - -! print *,'in sfc_sub, aft fixrdg,slmskh=',maxval(slmskh), -! & minval(slmskh),'mdata=',mdata,'imsk*jmsk=',imsk*jmsk - - do i=1,imsk*jmsk - slmskh(i) = nint(slmskh(i)) - enddo -! - return - end - subroutine fixrdg(lugb,idim,jdim,fngrib, - & kpds5,gdata,gaus,blno,blto,me) - use machine , only : kind_io8,kind_io4 - use sfccyc_module, only : mdata - implicit none - integer lgrib,n,lskip,jret,j,ndata,lugi,jdim,idim,lugb, - & iret, me,kpds5,kdata,i,w3kindreal,w3kindint -! - character*(*) fngrib -! - real (kind=kind_io8) gdata(idim*jdim) - logical gaus - real (kind=kind_io8) blno,blto - real (kind=kind_io8) data8(idim*jdim) - real (kind=kind_io4), allocatable :: data4(:) -! - logical*1 lbms(mdata) -! - integer kpds(200),kgds(200) - integer jpds(200),jgds(200), kpds0(200) -! -! if(me .eq. 0) then -! write(6,*) ' ' -! write(6,*) '************************************************' -! endif -! - close(lugb) - call baopenr(lugb,fngrib,iret) - if (iret .ne. 0) then - write(6,*) ' error in opening file ',trim(fngrib) - print *,'error in opening file ',trim(fngrib) - call abort - endif - if (me .eq. 0) write(6,*) ' file ',trim(fngrib), - & ' opened. unit=',lugb - lugi = 0 - lskip = -1 - n = 0 - jpds = -1 - jgds = -1 - jpds(5) = kpds5 - kpds = jpds -! - call getgbh(lugb,lugi,lskip,jpds,jgds,lgrib,ndata, - & lskip,kpds,kgds,iret) -! - if(me .eq. 0) then - write(6,*) ' first grib record.' - write(6,*) ' kpds( 1-10)=',(kpds(j),j= 1,10) - write(6,*) ' kpds(11-20)=',(kpds(j),j=11,20) - write(6,*) ' kpds(21- )=',(kpds(j),j=21,22) - endif -! - kpds0=jpds - kpds0(4)=-1 - kpds0(18)=-1 - if(iret.ne.0) then - write(6,*) ' error in getgbh. iret: ', iret - if (iret == 99) write(6,*) ' field not found.' - call abort - endif -! - jpds = kpds0 - lskip = -1 - kdata=idim*jdim - call w3kind(w3kindreal,w3kindint) - if (w3kindreal == 8) then - call getgb(lugb,lugi,kdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data8,jret) - else if (w3kindreal == 4) then - allocate(data4(idim*jdim)) - call getgb(lugb,lugi,kdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data4,jret) - data8 = data4 - deallocate(data4) - else - write(0,*)' Invalid w3kindreal --- aborting' - call abort - endif -! - if(jret == 0) then - if(ndata.eq.0) then - write(6,*) ' error in getgb' - write(6,*) ' kpds=',kpds - write(6,*) ' kgds=',kgds - call abort - endif - idim = kgds(2) - jdim = kgds(3) - gaus = kgds(1).eq.4 - blno = kgds(5)*1.d-3 - blto = kgds(4)*1.d-3 - gdata(1:idim*jdim) = data8(1:idim*jdim) - if (me == 0) write(6,*) 'idim,jdim=',idim,jdim - &, ' gaus=',gaus,' blno=',blno,' blto=',blto - else - if (me ==. 0) write(6,*) 'idim,jdim=',idim,jdim - &, ' gaus=',gaus,' blno=',blno,' blto=',blto - write(6,*) ' error in getgb : jret=',jret - write(6,*) ' kpds(13)=',kpds(13),' kpds(15)=',kpds(15) - call abort - endif -! - return - end - subroutine getarea(kgds,dlat,dlon,rslat,rnlat,wlon,elon,ijordr - &, me) - use machine , only : kind_io8,kind_io4 - implicit none - integer j,me,kgds11 - real (kind=kind_io8) f0lon,f0lat,elon,dlon,dlat,rslat,wlon,rnlat -! -! get area of the grib record -! - integer kgds(22) - logical ijordr -! - if (me .eq. 0) then - write(6,*) ' kgds( 1-12)=',(kgds(j),j= 1,12) - write(6,*) ' kgds(13-22)=',(kgds(j),j=13,22) - endif -! - if(kgds(1).eq.0) then ! lat/lon grid -! - if (me .eq. 0) write(6,*) 'lat/lon grid' - dlat = float(kgds(10)) * 0.001 - dlon = float(kgds( 9)) * 0.001 - f0lon = float(kgds(5)) * 0.001 - f0lat = float(kgds(4)) * 0.001 - kgds11 = kgds(11) - if(kgds11.ge.128) then - wlon = f0lon - dlon*(kgds(2)-1) - elon = f0lon - if(dlon*kgds(2).gt.359.99) then - wlon =f0lon - dlon*kgds(2) - endif - dlon = -dlon - kgds11 = kgds11 - 128 - else - wlon = f0lon - elon = f0lon + dlon*(kgds(2)-1) - if(dlon*kgds(2).gt.359.99) then - elon = f0lon + dlon*kgds(2) - endif - endif - if(kgds11.ge.64) then - rnlat = f0lat + dlat*(kgds(3)-1) - rslat = f0lat - kgds11 = kgds11 - 64 - else - rnlat = f0lat - rslat = f0lat - dlat*(kgds(3)-1) - dlat = -dlat - endif - if(kgds11.ge.32) then - ijordr = .false. - else - ijordr = .true. - endif - - if(wlon.gt.180.) wlon = wlon - 360. - if(elon.gt.180.) elon = elon - 360. - wlon = nint(wlon*1000.) * 0.001 - elon = nint(elon*1000.) * 0.001 - rslat = nint(rslat*1000.) * 0.001 - rnlat = nint(rnlat*1000.) * 0.001 - return -! - elseif(kgds(1).eq.1) then ! mercator projection - write(6,*) 'mercator grid' - write(6,*) 'cannot process' - call abort -! - elseif(kgds(1).eq.2) then ! gnomonic projection - write(6,*) 'gnomonic grid' - write(6,*) 'error!! gnomonic projection not coded' - call abort -! - elseif(kgds(1).eq.3) then ! lambert conformal - write(6,*) 'lambert conformal' - write(6,*) 'cannot process' - call abort - elseif(kgds(1).eq.4) then ! gaussian grid -! - if (me .eq. 0) write(6,*) 'gaussian grid' - dlat = 99. - dlon = float(kgds( 9)) / 1000.0 - f0lon = float(kgds(5)) / 1000.0 - f0lat = 99. - kgds11 = kgds(11) - if(kgds11.ge.128) then - wlon = f0lon - elon = f0lon - if(dlon*kgds(2).gt.359.99) then - wlon = f0lon - dlon*kgds(2) - endif - dlon = -dlon - kgds11 = kgds11-128 - else - wlon = f0lon - elon = f0lon + dlon*(kgds(2)-1) - if(dlon*kgds(2).gt.359.99) then - elon = f0lon + dlon*kgds(2) - endif - endif - if(kgds11.ge.64) then - rnlat = 99. - rslat = 99. - kgds11 = kgds11 - 64 - else - rnlat = 99. - rslat = 99. - dlat = -99. - endif - if(kgds11.ge.32) then - ijordr = .false. - else - ijordr = .true. - endif - return -! - elseif(kgds(1).eq.5) then ! polar strereographic - write(6,*) 'polar stereographic grid' - write(6,*) 'cannot process' - call abort - return -! - elseif(kgds(1).eq.13) then ! oblique lambert conformal - write(6,*) 'oblique lambert conformal grid' - write(6,*) 'cannot process' - call abort -! - elseif(kgds(1).eq.50) then ! spherical coefficient - write(6,*) 'spherical coefficient' - write(6,*) 'cannot process' - call abort - return -! - elseif(kgds(1).eq.90) then ! space view perspective -! (orthographic grid) - write(6,*) 'space view perspective grid' - write(6,*) 'cannot process' - call abort - return -! - else ! unknown projection. abort. - write(6,*) 'error!! unknown map projection' - write(6,*) 'kgds(1)=',kgds(1) - print *,'error!! unknown map projection' - print *,'kgds(1)=',kgds(1) - call abort - endif -! - return - end - subroutine subst(data,imax,jmax,dlon,dlat,ijordr) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,j,ii,jj,jmax,imax,iret - real (kind=kind_io8) dlat,dlon -! - logical ijordr -! - real (kind=kind_io8) data(imax,jmax) - real (kind=kind_io8), allocatable :: work(:,:) -! - if(.not.ijordr.or. - & (ijordr.and.(dlat.gt.0..or.dlon.lt.0.))) then - allocate (work(imax,jmax)) - - if(.not.ijordr) then - do j=1,jmax - do i=1,imax - work(i,j) = data(j,i) - enddo - enddo - else - do j=1,jmax - do i=1,imax - work(i,j) = data(i,j) - enddo - enddo - endif - if (dlat > 0.0) then - if (dlon > 0.0) then - do j=1,jmax - jj = jmax - j + 1 - do i=1,imax - data(i,jj) = work(i,j) - enddo - enddo - else - do i=1,imax - data(imax-i+1,jj) = work(i,j) - enddo - endif - else - if (dlon > 0.0) then - do j=1,jmax - do i=1,imax - data(i,j) = work(i,j) - enddo - enddo - else - do j=1,jmax - do i=1,imax - data(imax-i+1,j) = work(i,j) - enddo - enddo - endif - endif - deallocate (work, stat=iret) - endif - return - end - subroutine la2ga(regin,imxin,jmxin,rinlon,rinlat,rlon,rlat,inttyp, - & gauout,len,lmask,rslmsk,slmask - &, outlat, outlon,me) - use machine , only : kind_io8,kind_io4 - implicit none - real (kind=kind_io8) wei4,wei3,wei2,sum2,sum1,sum3,wei1,sum4, - & wsum,tem,wsumiv,sums,sumn,wi2j2,x,y,wi1j1, - & wi1j2,wi2j1,rlat,rlon,aphi, - & rnume,alamd,denom - integer jy,ifills,ix,len,inttyp,me,i,j,jmxin,imxin,jq,jx,j1,j2, - & ii,i1,i2,kmami,it - integer nx,kxs,kxt - integer, allocatable, save :: imxnx(:) - integer, allocatable :: ifill(:) -! -! interpolation from lat/lon or gaussian grid to other lat/lon grid -! - real (kind=kind_io8) outlon(len),outlat(len),gauout(len), - & slmask(len) - real (kind=kind_io8) regin (imxin,jmxin),rslmsk(imxin,jmxin) -! - real (kind=kind_io8) rinlat(jmxin), rinlon(imxin) - integer iindx1(len), iindx2(len) - integer jindx1(len), jindx2(len) - real (kind=kind_io8) ddx(len), ddy(len), wrk(len) -! - logical lmask -! - logical first - integer num_threads - data first /.true./ - save num_threads, first -! - integer len_thread_m, len_thread, i1_t, i2_t - integer num_parthds -! - if (first) then - num_threads = num_parthds() - first = .false. - if (.not. allocated(imxnx)) allocate (imxnx(num_threads)) - endif -! -! if (me == 0) print *,' num_threads =',num_threads,' me=',me -! -! if(me .eq. 0) then -! print *,'rlon=',rlon,' me=',me -! print *,'rlat=',rlat,' me=',me,' imxin=',imxin,' jmxin=',jmxin -! endif -! -! do j=1,jmxin -! if(rlat.gt.0.) then -! rinlat(j) = rlat - float(j-1)*dlain -! else -! rinlat(j) = rlat + float(j-1)*dlain -! endif -! enddo -! -! if (me .eq. 0) then -! print *,'rinlat=' -! print *,(rinlat(j),j=1,jmxin) -! print *,'rinlon=' -! print *,(rinlon(i),i=1,imxin) -! -! print *,'outlat=' -! print *,(outlat(j),j=1,len) -! print *,(outlon(j),j=1,len) -! endif -! -! do i=1,imxin -! rinlon(i) = rlon + float(i-1)*dloin -! enddo -! -! print *,'rinlon=' -! print *,(rinlon(i),i=1,imxin) -! - len_thread_m = (len+num_threads-1) / num_threads - - if (inttyp /=1) allocate (ifill(num_threads)) -! -!$omp parallel do default(none) -!$omp+private(i1_t,i2_t,len_thread,it,i,ii,i1,i2) -!$omp+private(j,j1,j2,jq,ix,jy,nx,kxs,kxt,kmami) -!$omp+private(alamd,denom,rnume,aphi,x,y,wsum,wsumiv,sum1,sum2) -!$omp+private(sum3,sum4,wi1j1,wi2j1,wi1j2,wi2j2,wei1,wei2,wei3,wei4) -!$omp+private(sumn,sums) -!$omp+shared(imxin,jmxin,ifill) -!$omp+shared(outlon,outlat,wrk,iindx1,rinlon,jindx1,rinlat,ddx,ddy) -!$omp+shared(rlon,rlat,regin,gauout,imxnx) -!$omp+private(tem) -!$omp+shared(num_threads,len_thread_m,len,lmask,iindx2,jindx2,rslmsk) -!$omp+shared(inttyp,me,slmask) -! - do it=1,num_threads ! start of threaded loop ................... - i1_t = (it-1)*len_thread_m+1 - i2_t = min(i1_t+len_thread_m-1,len) - len_thread = i2_t-i1_t+1 -! -! find i-index for interpolation -! - do i=i1_t, i2_t - alamd = outlon(i) - if (alamd .lt. rlon) alamd = alamd + 360.0 - if (alamd .gt. 360.0+rlon) alamd = alamd - 360.0 - wrk(i) = alamd - iindx1(i) = imxin - enddo - do i=i1_t,i2_t - do ii=1,imxin - if(wrk(i) .ge. rinlon(ii)) iindx1(i) = ii - enddo - enddo - do i=i1_t,i2_t - i1 = iindx1(i) - if (i1 .lt. 1) i1 = imxin - i2 = i1 + 1 - if (i2 .gt. imxin) i2 = 1 - iindx1(i) = i1 - iindx2(i) = i2 - denom = rinlon(i2) - rinlon(i1) - if(denom.lt.0.) denom = denom + 360. - rnume = wrk(i) - rinlon(i1) - if(rnume.lt.0.) rnume = rnume + 360. - ddx(i) = rnume / denom - enddo -! -! find j-index for interplation -! - if(rlat.gt.0.) then - do j=i1_t,i2_t - jindx1(j)=0 - enddo - do jx=1,jmxin - do j=i1_t,i2_t - if(outlat(j).le.rinlat(jx)) jindx1(j) = jx - enddo - enddo - do j=i1_t,i2_t - jq = jindx1(j) - aphi=outlat(j) - if(jq.ge.1 .and. jq .lt. jmxin) then - j2=jq+1 - j1=jq - ddy(j)=(aphi-rinlat(j1))/(rinlat(j2)-rinlat(j1)) - elseif (jq .eq. 0) then - j2=1 - j1=1 - if(abs(90.-rinlat(j1)).gt.0.001) then - ddy(j)=(aphi-rinlat(j1))/(90.-rinlat(j1)) - else - ddy(j)=0.0 - endif - else - j2=jmxin - j1=jmxin - if(abs(-90.-rinlat(j1)).gt.0.001) then - ddy(j)=(aphi-rinlat(j1))/(-90.-rinlat(j1)) - else - ddy(j)=0.0 - endif - endif - jindx1(j)=j1 - jindx2(j)=j2 - enddo - else - do j=i1_t,i2_t - jindx1(j) = jmxin+1 - enddo - do jx=jmxin,1,-1 - do j=i1_t,i2_t - if(outlat(j).le.rinlat(jx)) jindx1(j) = jx - enddo - enddo - do j=i1_t,i2_t - jq = jindx1(j) - aphi=outlat(j) - if(jq.gt.1 .and. jq .le. jmxin) then - j2=jq - j1=jq-1 - ddy(j)=(aphi-rinlat(j1))/(rinlat(j2)-rinlat(j1)) - elseif (jq .eq. 1) then - j2=1 - j1=1 - if(abs(-90.-rinlat(j1)).gt.0.001) then - ddy(j)=(aphi-rinlat(j1))/(-90.-rinlat(j1)) - else - ddy(j)=0.0 - endif - else - j2=jmxin - j1=jmxin - if(abs(90.-rinlat(j1)).gt.0.001) then - ddy(j)=(aphi-rinlat(j1))/(90.-rinlat(j1)) - else - ddy(j)=0.0 - endif - endif - jindx1(j)=j1 - jindx2(j)=j2 - enddo - endif -! -! if (me .eq. 0 .and. inttyp .eq. 1) then -! print *,'la2ga' -! print *,'iindx1' -! print *,(iindx1(n),n=1,len) -! print *,'iindx2' -! print *,(iindx2(n),n=1,len) -! print *,'jindx1' -! print *,(jindx1(n),n=1,len) -! print *,'jindx2' -! print *,(jindx2(n),n=1,len) -! print *,'ddy' -! print *,(ddy(n),n=1,len) -! print *,'ddx' -! print *,(ddx(n),n=1,len) -! endif -! - sum1 = 0. - sum2 = 0. - sum3 = 0. - sum4 = 0. - if (lmask) then - wei1 = 0. - wei2 = 0. - wei3 = 0. - wei4 = 0. - do i=1,imxin - sum1 = sum1 + regin(i,1) * rslmsk(i,1) - sum2 = sum2 + regin(i,jmxin) * rslmsk(i,jmxin) - wei1 = wei1 + rslmsk(i,1) - wei2 = wei2 + rslmsk(i,jmxin) -! - sum3 = sum3 + regin(i,1) * (1.0-rslmsk(i,1)) - sum4 = sum4 + regin(i,jmxin) * (1.0-rslmsk(i,jmxin)) - wei3 = wei3 + (1.0-rslmsk(i,1)) - wei4 = wei4 + (1.0-rslmsk(i,jmxin)) - enddo -! - if(wei1.gt.0.) then - sum1 = sum1 / wei1 - else - sum1 = 0. - endif - if(wei2.gt.0.) then - sum2 = sum2 / wei2 - else - sum2 = 0. - endif - if(wei3.gt.0.) then - sum3 = sum3 / wei3 - else - sum3 = 0. - endif - if(wei4.gt.0.) then - sum4 = sum4 / wei4 - else - sum4 = 0. - endif - else - do i=1,imxin - sum1 = sum1 + regin(i,1) - sum2 = sum2 + regin(i,jmxin) - enddo - sum1 = sum1 / imxin - sum2 = sum2 / imxin - sum3 = sum1 - sum4 = sum2 - endif -! -! print *,' sum1=',sum1,' sum2=',sum2 -! *,' sum3=',sum3,' sum4=',sum4 -! print *,' rslmsk=',(rslmsk(i,1),i=1,imxin) -! print *,' slmask=',(slmask(i),i=1,imxout) -! *,' j1=',jindx1(1),' j2=',jindx2(1) -! -! -! inttyp=1 take the closest point value -! - if(inttyp.eq.1) then - - do i=i1_t,i2_t - jy = jindx1(i) - if(ddy(i) .ge. 0.5) jy = jindx2(i) - ix = iindx1(i) - if(ddx(i) .ge. 0.5) ix = iindx2(i) -! -!cggg start -! - if (.not. lmask) then - - gauout(i) = regin(ix,jy) - - else - - if(slmask(i).eq.rslmsk(ix,jy)) then - - gauout(i) = regin(ix,jy) - - else - - i1 = ix - j1 = jy - -! spiral around until matching mask is found. - do nx=1,jmxin*imxin/2 - kxs=sqrt(4*nx-2.5) - kxt=nx-int(kxs**2/4+1) - select case(mod(kxs,4)) - case(1) - ix=i1-kxs/4+kxt - jx=j1-kxs/4 - case(2) - ix=i1+1+kxs/4 - jx=j1-kxs/4+kxt - case(3) - ix=i1+1+kxs/4-kxt - jx=j1+1+kxs/4 - case default - ix=i1-kxs/4 - jx=j1+kxs/4-kxt - end select - if(jx.lt.1) then - ix=ix+imxin/2 - jx=2-jx - elseif(jx.gt.jmxin) then - ix=ix+imxin/2 - jx=2*jmxin-jx - endif - ix=modulo(ix-1,imxin)+1 - if(slmask(i).eq.rslmsk(ix,jx)) then - gauout(i) = regin(ix,jx) - go to 81 - endif - enddo - -!cggg here, set the gauout value to be 0, and let's sarah's land -!cggg routine assign a default. - - if (num_threads == 1) then - print*,'no matching mask found ',i,i1,j1,ix,jx - print*,'set to default value.' - endif - gauout(i) = 0.0 - - - 81 continue - - end if - - end if - -!cggg end - - enddo -! kmami=1 -! if (me == 0 .and. num_threads == 1) -! & call maxmin(gauout(i1_t),len_thread,kmami) - else ! nearest neighbor interpolation - -! -! quasi-bilinear interpolation -! - ifill(it) = 0 - imxnx(it) = 0 - do i=i1_t,i2_t - y = ddy(i) - j1 = jindx1(i) - j2 = jindx2(i) - x = ddx(i) - i1 = iindx1(i) - i2 = iindx2(i) -! - wi1j1 = (1.-x) * (1.-y) - wi2j1 = x *( 1.-y) - wi1j2 = (1.-x) * y - wi2j2 = x * y -! - tem = 4.*slmask(i) - rslmsk(i1,j1) - rslmsk(i2,j1) - & - rslmsk(i1,j2) - rslmsk(i2,j2) - if(lmask .and. abs(tem) .gt. 0.01) then - if(slmask(i).eq.1.) then - wi1j1 = wi1j1 * rslmsk(i1,j1) - wi2j1 = wi2j1 * rslmsk(i2,j1) - wi1j2 = wi1j2 * rslmsk(i1,j2) - wi2j2 = wi2j2 * rslmsk(i2,j2) - else - wi1j1 = wi1j1 * (1.0-rslmsk(i1,j1)) - wi2j1 = wi2j1 * (1.0-rslmsk(i2,j1)) - wi1j2 = wi1j2 * (1.0-rslmsk(i1,j2)) - wi2j2 = wi2j2 * (1.0-rslmsk(i2,j2)) - endif - endif -! - wsum = wi1j1 + wi2j1 + wi1j2 + wi2j2 - wrk(i) = wsum - if(wsum.ne.0.) then - wsumiv = 1./wsum -! - if(j1.ne.j2) then - gauout(i) = (wi1j1*regin(i1,j1) + wi2j1*regin(i2,j1) + - & wi1j2*regin(i1,j2) + wi2j2*regin(i2,j2)) - & *wsumiv - else -! - if (rlat .gt. 0.0) then - if (slmask(i) .eq. 1.0) then - sumn = sum1 - sums = sum2 - else - sumn = sum3 - sums = sum4 - endif - if( j1 .eq. 1) then - gauout(i) = (wi1j1*sumn +wi2j1*sumn + - & wi1j2*regin(i1,j2)+wi2j2*regin(i2,j2)) - & * wsumiv - elseif (j1 .eq. jmxin) then - gauout(i) = (wi1j1*regin(i1,j1)+wi2j1*regin(i2,j1)+ - & wi1j2*sums +wi2j2*sums ) - & * wsumiv - endif -! print *,' slmask=',slmask(i),' sums=',sums,' sumn=',sumn -! & ,' regin=',regin(i1,j2),regin(i2,j2),' j1=',j1,' j2=',j2 -! & ,' wij=',wi1j1, wi2j1, wi1j2, wi2j2,wsumiv - else - if (slmask(i) .eq. 1.0) then - sums = sum1 - sumn = sum2 - else - sums = sum3 - sumn = sum4 - endif - if( j1 .eq. 1) then - gauout(i) = (wi1j1*regin(i1,j1)+wi2j1*regin(i2,j1)+ - & wi1j2*sums +wi2j2*sums ) - & * wsumiv - elseif (j1 .eq. jmxin) then - gauout(i) = (wi1j1*sumn +wi2j1*sumn + - & wi1j2*regin(i1,j2)+wi2j2*regin(i2,j2)) - & * wsumiv - endif - endif - endif ! if j1 .ne. j2 - endif - enddo - do i=i1_t,i2_t - j1 = jindx1(i) - j2 = jindx2(i) - i1 = iindx1(i) - i2 = iindx2(i) - if(wrk(i) .eq. 0.0) then - if(.not.lmask) then - if (num_threads == 1) - & write(6,*) ' la2ga called with lmask=.true. but bad', - & ' rslmsk or slmask given' - call abort - endif - ifill(it) = ifill(it) + 1 - if(ifill(it) <= 2 ) then - if (me == 0 .and. num_threads == 1) then - write(6,*) 'i1,i2,j1,j2=',i1,i2,j1,j2 - write(6,*) 'rslmsk=',rslmsk(i1,j1),rslmsk(i1,j2), - & rslmsk(i2,j1),rslmsk(i2,j2) -! write(6,*) 'i,j=',i,j,' slmask(i)=',slmask(i) - write(6,*) 'i=',i,' slmask(i)=',slmask(i) - &, ' outlon=',outlon(i),' outlat=',outlat(i) - endif - endif -! spiral around until matching mask is found. - do nx=1,jmxin*imxin/2 - kxs=sqrt(4*nx-2.5) - kxt=nx-int(kxs**2/4+1) - select case(mod(kxs,4)) - case(1) - ix=i1-kxs/4+kxt - jx=j1-kxs/4 - case(2) - ix=i1+1+kxs/4 - jx=j1-kxs/4+kxt - case(3) - ix=i1+1+kxs/4-kxt - jx=j1+1+kxs/4 - case default - ix=i1-kxs/4 - jx=j1+kxs/4-kxt - end select - if(jx.lt.1) then - ix=ix+imxin/2 - jx=2-jx - elseif(jx.gt.jmxin) then - ix=ix+imxin/2 - jx=2*jmxin-jx - endif - ix=modulo(ix-1,imxin)+1 - if(slmask(i).eq.rslmsk(ix,jx)) then - gauout(i) = regin(ix,jx) - imxnx(it) = max(imxnx(it),nx) - go to 71 - endif - enddo -! - if (num_threads == 1) then - write(6,*) ' error!!! no filling value found in la2ga' -! write(6,*) ' i ix jx slmask(i) rslmsk ', -! & i,ix,jx,slmask(i),rslmsk(ix,jx) - endif - call abort -! - 71 continue - endif -! - enddo - endif - enddo ! end of threaded loop ................... -!$omp end parallel do -! - if(inttyp /= 1)then - ifills = 0 - do it=1,num_threads - ifills = ifills + ifill(it) - enddo - - if(ifills.gt.1) then - if (me .eq. 0) then - write(6,*) ' unable to interpolate. filled with nearest', - & ' point value at ',ifills,' points' -! & ' point value at ',ifills,' points imxnx=',imxnx(:) - endif - endif - deallocate (ifill) - endif -! -! kmami = 1 -! if (me == 0) call maxmin(gauout,len,kmami) -! - return - end subroutine la2ga - subroutine maxmin(f,imax,kmax) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,iimin,iimax,kmax,imax,k - real (kind=kind_io8) fmin,fmax -! - real (kind=kind_io8) f(imax,kmax) -! - do k=1,kmax -! - fmax = f(1,k) - fmin = f(1,k) -! - do i=1,imax - if(fmax.le.f(i,k)) then - fmax = f(i,k) - iimax = i - endif - if(fmin.ge.f(i,k)) then - fmin = f(i,k) - iimin = i - endif - enddo -! -! write(6,100) k,fmax,iimax,fmin,iimin -! 100 format(2x,'level=',i2,' max=',e11.4,' at i=',i7, -! & ' min=',e11.4,' at i=',i7) -! - enddo -! - return - end - subroutine filanl(tsfanl,tsfan2,wetanl,snoanl,zoranl,albanl, - & aisanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,scvanl,veganl, - & vetanl,sotanl,alfanl, -!cwu [+1l] add ()anl for sih, sic - & sihanl,sicanl, -!clu [+1l] add ()anl for vmn, vmx, slp, abs - & vmnanl,vmxanl,slpanl,absanl, - & tsfclm,tsfcl2,wetclm,snoclm,zorclm,albclm, - & aisclm, - & tg3clm,cvclm ,cvbclm,cvtclm, - & cnpclm,smcclm,stcclm,sliclm,scvclm,vegclm, - & vetclm,sotclm,alfclm, -!cwu [+1l] add ()clm for sih, sic - & sihclm,sicclm, -!clu [+1l] add ()clm for vmn, vmx, slp, abs - & vmnclm,vmxclm,slpclm,absclm, - & len,lsoil) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,j,len,lsoil -! - real (kind=kind_io8) tsfanl(len),tsfan2(len),wetanl(len), - & snoanl(len), - & zoranl(len),albanl(len,4),aisanl(len), - & tg3anl(len), - & cvanl (len),cvbanl(len),cvtanl(len), - & cnpanl(len), - & smcanl(len,lsoil),stcanl(len,lsoil), - & slianl(len),scvanl(len),veganl(len), - & vetanl(len),sotanl(len),alfanl(len,2) -!cwu [+1l] add ()anl for sih, sic - &, sihanl(len),sicanl(len) -!clu [+1l] add ()anl for vmn, vmx, slp, abs - &, vmnanl(len),vmxanl(len),slpanl(len),absanl(len) - real (kind=kind_io8) tsfclm(len),tsfcl2(len),wetclm(len), - & snoclm(len), - & zorclm(len),albclm(len,4),aisclm(len), - & tg3clm(len), - & cvclm (len),cvbclm(len),cvtclm(len), - & cnpclm(len), - & smcclm(len,lsoil),stcclm(len,lsoil), - & sliclm(len),scvclm(len),vegclm(len), - & vetclm(len),sotclm(len),alfclm(len,2) -!cwu [+1l] add ()clm for sih, sic - &, sihclm(len),sicclm(len) -!clu [+1l] add ()clm for vmn, vmx, slp, abs - &, vmnclm(len),vmxclm(len),slpclm(len),absclm(len) -! - do i=1,len - tsfanl(i) = tsfclm(i) ! tsf at t - tsfan2(i) = tsfcl2(i) ! tsf at t-deltsfc - wetanl(i) = wetclm(i) ! soil wetness - snoanl(i) = snoclm(i) ! snow - scvanl(i) = scvclm(i) ! snow cover - aisanl(i) = aisclm(i) ! seaice - slianl(i) = sliclm(i) ! land/sea/snow mask - zoranl(i) = zorclm(i) ! surface roughness -! plranl(i) = plrclm(i) ! maximum stomatal resistance - tg3anl(i) = tg3clm(i) ! deep soil temperature - cnpanl(i) = cnpclm(i) ! canopy water content - veganl(i) = vegclm(i) ! vegetation cover - vetanl(i) = vetclm(i) ! vegetation type - sotanl(i) = sotclm(i) ! soil type - cvanl(i) = cvclm(i) ! cv - cvbanl(i) = cvbclm(i) ! cvb - cvtanl(i) = cvtclm(i) ! cvt -!cwu [+4l] add sih, sic - sihanl(i) = sihclm(i) ! sea ice thickness - sicanl(i) = sicclm(i) ! sea ice concentration -!clu [+4l] add vmn, vmx, slp, abs - vmnanl(i) = vmnclm(i) ! min vegetation cover - vmxanl(i) = vmxclm(i) ! max vegetation cover - slpanl(i) = slpclm(i) ! slope type - absanl(i) = absclm(i) ! max snow albedo - enddo -! - do j=1,lsoil - do i=1,len - smcanl(i,j) = smcclm(i,j) ! layer soil wetness - stcanl(i,j) = stcclm(i,j) ! soil temperature - enddo - enddo - do j=1,4 - do i=1,len - albanl(i,j) = albclm(i,j) ! albedo - enddo - enddo - do j=1,2 - do i=1,len - alfanl(i,j) = alfclm(i,j) ! vegetation fraction for albedo - enddo - enddo -! - return - end - subroutine analy(lugb,iy,im,id,ih,fh,len,lsoil, - & slmask,fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fntg3a,fnscva,fnsmca,fnstca,fnacna,fnvega, - & fnveta,fnsota, -!clu [+1l] add fn()a for vmn, vmx, slp, abs - & fnvmna,fnvmxa,fnslpa,fnabsa, - & tsfanl,wetanl,snoanl,zoranl,albanl,aisanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & smcanl,stcanl,slianl,scvanl,acnanl,veganl, - & vetanl,sotanl,alfanl,tsfan0, -!clu [+1l] add ()anl for vmn, vmx, slp, abs - & vmnanl,vmxanl,slpanl,absanl, -!cggg snow mods start & kpdtsf,kpdwet,kpdsno,kpdzor,kpdalb,kpdais, - & kpdtsf,kpdwet,kpdsno,kpdsnd,kpdzor,kpdalb,kpdais, -!cggg snow mods end - & kpdtg3,kpdscv,kpdacn,kpdsmc,kpdstc,kpdveg, - & kprvet,kpdsot,kpdalf, -!clu [+1l] add kpd() for vmn, vmx, slp, abs - & kpdvmn,kpdvmx,kpdslp,kpdabs, - & irttsf,irtwet,irtsno,irtzor,irtalb,irtais, - & irttg3,irtscv,irtacn,irtsmc,irtstc,irtveg, - & irtvet,irtsot,irtalf -!clu [+1l] add irt() for vmn, vmx, slp, abs - &, irtvmn,irtvmx,irtslp,irtabs - &, imsk, jmsk, slmskh, outlat, outlon - &, gaus, blno, blto, me, lanom) - use machine , only : kind_io8,kind_io4 - implicit none - logical lanom - integer irtsmc,irtacn,irtstc,irtvet,irtveg,irtscv,irtzor,irtsno, - & irtalb,irttg3,irtais,iret,me,kk,kpdvet,i,irtalf,irtsot, -!cggg snow mods start & imsk,jmsk,irtwet,lsoil,len, kpdtsf,kpdsno,kpdwet,iy, - & imsk,jmsk,irtwet,lsoil,len,kpdtsf,kpdsno,kpdsnd,kpdwet,iy, -!cggg snow mods end - & lugb,im,ih,id,kpdveg,kpdstc,kprvet,irttsf,kpdsot,kpdsmc, - & kpdais,kpdzor,kpdtg3,kpdacn,kpdscv,j -!clu [+1l] add kpd() and irt() for vmn, vmx, slp, abs - &, kpdvmn,kpdvmx,kpdslp,kpdabs,irtvmn,irtvmx,irtslp,irtabs - real (kind=kind_io8) blto,blno,fh -! - real (kind=kind_io8) slmask(len) - real (kind=kind_io8) slmskh(imsk,jmsk) - real (kind=kind_io8) outlat(len), outlon(len) - integer kpdalb(4), kpdalf(2) -!cggg snow mods start - integer kpds(1000),kgds(1000),jpds(1000),jgds(1000) - integer lugi, lskip, lgrib, ndata -!cggg snow mods end -! - character*500 fntsfa,fnweta,fnsnoa,fnzora,fnalba,fnaisa, - & fntg3a,fnscva,fnsmca,fnstca,fnacna,fnvega, - & fnveta,fnsota -!clu [+1l] add fn()a for vmn, vmx, slp, abs - &, fnvmna,fnvmxa,fnslpa,fnabsa - - real (kind=kind_io8) tsfanl(len), wetanl(len), snoanl(len), - & zoranl(len), albanl(len,4), aisanl(len), - & tg3anl(len), acnanl(len), - & cvanl (len), cvbanl(len), cvtanl(len), - & slianl(len), scvanl(len), veganl(len), - & vetanl(len), sotanl(len), alfanl(len,2), - & smcanl(len,lsoil), stcanl(len,lsoil), - & tsfan0(len) -!clu [+1l] add ()anl for vmn, vmx, slp, abs - &, vmnanl(len),vmxanl(len),slpanl(len),absanl(len) -! - logical gaus -! -! tsf -! - irttsf = 1 - if(fntsfa(1:8).ne.' ') then - call fixrda(lugb,fntsfa,kpdtsf,slmask, - & iy,im,id,ih,fh,tsfanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irttsf = iret - if(iret == 1) then - write(6,*) 't surface analysis read error' - call abort - elseif(iret == -1) then - if (me == 0) then - print *,'old t surface analysis provided, indicating proper' - &, ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me == 0) print *,'t surface analysis provided.' - endif - else - if (me == 0) then -! print *,'************************************************' - print *,'no tsf analysis available. climatology used' - endif - endif -! -! tsf0 -! - if(fntsfa(1:8).ne.' ' .and. lanom) then - call fixrda(lugb,fntsfa,kpdtsf,slmask, - & iy,im,id,ih,0.,tsfan0,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if(iret == 1) then - write(6,*) 't surface at ft=0 analysis read error' - call abort - elseif(iret == -1) then - if (me == 0) then - write(6,*) 'could not find t surface analysis at ft=0' - endif - call abort - else - print *,'t surface analysis at ft=0 found.' - endif - else - do i=1,len - tsfan0(i)=-999.9 - enddo - endif -! -! albedo -! - irtalb=0 - if(fnalba(1:8).ne.' ') then - do kk = 1, 4 - call fixrda(lugb,fnalba,kpdalb(kk),slmask, - & iy,im,id,ih,fh,albanl(1,kk),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtalb=iret - if(iret.eq.1) then - write(6,*) 'albedo analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old albedo analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0 .and. kk .eq. 4) - & print *,'albedo analysis provided.' - endif - enddo - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no albedo analysis available. climatology used' - endif - endif -! -! vegetation fraction for albedo -! - irtalf=0 - if(fnalba(1:8).ne.' ') then - do kk = 1, 2 - call fixrda(lugb,fnalba,kpdalf(kk),slmask, - & iy,im,id,ih,fh,alfanl(1,kk),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtalf=iret - if(iret.eq.1) then - write(6,*) 'albedo analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old albedo analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0 .and. kk .eq. 4) - & print *,'albedo analysis provided.' - endif - enddo - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no vegfalbedo analysis available. climatology used' - endif - endif -! -! soil wetness -! - irtwet=0 - irtsmc=0 - if(fnweta(1:8).ne.' ') then - call fixrda(lugb,fnweta,kpdwet,slmask, - & iy,im,id,ih,fh,wetanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtwet=iret - if(iret.eq.1) then - write(6,*) 'bucket wetness analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old wetness analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'bucket wetness analysis provided.' - endif - elseif(fnsmca(1:8).ne.' ') then - call fixrda(lugb,fnsmca,kpdsmc,slmask, - & iy,im,id,ih,fh,smcanl(1,1),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - call fixrda(lugb,fnsmca,kpdsmc,slmask, - & iy,im,id,ih,fh,smcanl(1,2),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtsmc=iret - if(iret.eq.1) then - write(6,*) 'layer soil wetness analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old layer soil wetness analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'layer soil wetness analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no soil wetness analysis available. climatology used' - endif - endif -! -! read in snow depth/snow cover -! - irtscv=0 - if(fnsnoa(1:8).ne.' ') then - do i=1,len - scvanl(i)=0. - enddo -!cggg snow mods start -!cggg need to determine if the snow data is on the gaussian grid -!cggg or not. if gaussian, then data is a depth, not liq equiv -!cggg depth. if not gaussian, then data is from hua-lu's -!cggg program and is a liquid equiv. need to communicate -!cggg this to routine fixrda via the 3rd argument which is -!cggg the grib parameter id number. - call baopenr(lugb,fnsnoa,iret) - if (iret .ne. 0) then - write(6,*) ' error in opening file ',trim(fnsnoa) - print *,'error in opening file ',trim(fnsnoa) - call abort - endif - lugi=0 - lskip=-1 - jpds=-1 - jgds=-1 - kpds=jpds - call getgbh(lugb,lugi,lskip,jpds,jgds,lgrib,ndata, - & lskip,kpds,kgds,iret) - close(lugb) - if (iret .ne. 0) then - write(6,*) ' error reading header of file: ',trim(fnsnoa) - print *,'error reading header of file: ',trim(fnsnoa) - call abort - endif - if (kgds(1) == 4) then ! gaussian data is depth - call fixrda(lugb,fnsnoa,kpdsnd,slmask, - & iy,im,id,ih,fh,snoanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - snoanl=snoanl*100. ! convert from meters to liq. eq. - ! depth in mm using 10:1 ratio - else ! lat/lon data is liq equv. depth - call fixrda(lugb,fnsnoa,kpdsno,slmask, - & iy,im,id,ih,fh,snoanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif -!cggg snow mods end - irtscv=iret - if(iret.eq.1) then - write(6,*) 'snow depth analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old snow depth analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'snow depth analysis provided.' - endif - irtsno=0 - elseif(fnscva(1:8).ne.' ') then - do i=1,len - snoanl(i)=0. - enddo - call fixrda(lugb,fnscva,kpdscv,slmask, - & iy,im,id,ih,fh,scvanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtsno=iret - if(iret.eq.1) then - write(6,*) 'snow cover analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old snow cover analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'snow cover analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no snow/snocov analysis available. climatology used' - endif - endif -! -! sea ice mask -! - irtacn=0 - irtais=0 - if(fnacna(1:8).ne.' ') then - call fixrda(lugb,fnacna,kpdacn,slmask, - & iy,im,id,ih,fh,acnanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtacn=iret - if(iret.eq.1) then - write(6,*) 'ice concentration analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old ice concentration analysis provided', - & ' indicating proper file name is given' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'ice concentration analysis provided.' - endif - elseif(fnaisa(1:8).ne.' ') then - call fixrda(lugb,fnaisa,kpdais,slmask, - & iy,im,id,ih,fh,aisanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtais=iret - if(iret.eq.1) then - write(6,*) 'ice mask analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old ice-mask analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'ice mask analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no sea-ice analysis available. climatology used' - endif - endif -! -! surface roughness -! - irtzor=0 - if(fnzora(1:8).ne.' ') then - call fixrda(lugb,fnzora,kpdzor,slmask, - & iy,im,id,ih,fh,zoranl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtzor=iret - if(iret.eq.1) then - write(6,*) 'roughness analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old roughness analysis provided, indicating proper', - & ' file name is given. no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'roughness analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no srfc roughness analysis available. climatology used' - endif - endif -! -! deep soil temperature -! - irttg3=0 - irtstc=0 - if(fntg3a(1:8).ne.' ') then - call fixrda(lugb,fntg3a,kpdtg3,slmask, - & iy,im,id,ih,fh,tg3anl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irttg3=iret - if(iret.eq.1) then - write(6,*) 'deep soil tmp analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old deep soil temp analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'deep soil tmp analysis provided.' - endif - elseif(fnstca(1:8).ne.' ') then - call fixrda(lugb,fnstca,kpdstc,slmask, - & iy,im,id,ih,fh,stcanl(1,1),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - call fixrda(lugb,fnstca,kpdstc,slmask, - & iy,im,id,ih,fh,stcanl(1,2),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtstc=iret - if(iret.eq.1) then - write(6,*) 'layer soil tmp analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old deep soil temp analysis provided', - & 'iindicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'layer soil tmp analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no deep soil temp analy available. climatology used' - endif - endif -! -! vegetation cover -! - irtveg=0 - if(fnvega(1:8).ne.' ') then - call fixrda(lugb,fnvega,kpdveg,slmask, - & iy,im,id,ih,fh,veganl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtveg=iret - if(iret.eq.1) then - write(6,*) 'vegetation cover analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old vegetation cover analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'gegetation cover analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no vegetation cover anly available. climatology used' - endif - endif -! -! vegetation type -! - irtvet=0 - if(fnveta(1:8).ne.' ') then - call fixrda(lugb,fnveta,kpdvet,slmask, - & iy,im,id,ih,fh,vetanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtvet=iret - if(iret.eq.1) then - write(6,*) 'vegetation type analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old vegetation type analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'vegetation type analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no vegetation type anly available. climatology used' - endif - endif -! -! soil type -! - irtsot=0 - if(fnsota(1:8).ne.' ') then - call fixrda(lugb,fnsota,kpdsot,slmask, - & iy,im,id,ih,fh,sotanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtsot=iret - if(iret.eq.1) then - write(6,*) 'soil type analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old soil type analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'soil type analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no soil type anly available. climatology used' - endif - endif - -!clu [+120l]-------------------------------------------------------------- -! -! min vegetation cover -! - irtvmn=0 - if(fnvmna(1:8).ne.' ') then - call fixrda(lugb,fnvmna,kpdvmn,slmask, - & iy,im,id,ih,fh,vmnanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtvmn=iret - if(iret.eq.1) then - write(6,*) 'shdmin analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old shdmin analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'shdmin analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no shdmin anly available. climatology used' - endif - endif - -! -! max vegetation cover -! - irtvmx=0 - if(fnvmxa(1:8).ne.' ') then - call fixrda(lugb,fnvmxa,kpdvmx,slmask, - & iy,im,id,ih,fh,vmxanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtvmx=iret - if(iret.eq.1) then - write(6,*) 'shdmax analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old shdmax analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'shdmax analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no shdmax anly available. climatology used' - endif - endif - -! -! slope type -! - irtslp=0 - if(fnslpa(1:8).ne.' ') then - call fixrda(lugb,fnslpa,kpdslp,slmask, - & iy,im,id,ih,fh,slpanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtslp=iret - if(iret.eq.1) then - write(6,*) 'slope type analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old slope type analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'slope type analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no slope type anly available. climatology used' - endif - endif - -! -! max snow albedo -! - irtabs=0 - if(fnabsa(1:8).ne.' ') then - call fixrda(lugb,fnabsa,kpdabs,slmask, - & iy,im,id,ih,fh,absanl,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - irtabs=iret - if(iret.eq.1) then - write(6,*) 'snoalb analysis read error' - call abort - elseif(iret.eq.-1) then - if (me .eq. 0) then - print *,'old snoalb analysis provided', - & ' indicating proper file name is given.' - print *,' no error suspected.' - write(6,*) 'forecast guess will be used' - endif - else - if (me .eq. 0) print *,'snoalb analysis provided.' - endif - else - if (me .eq. 0) then -! print *,'************************************************' - print *,'no snoalb anly available. climatology used' - endif - endif - -!clu ---------------------------------------------------------------------- -! - return - end - subroutine filfcs(tsffcs,wetfcs,snofcs,zorfcs,albfcs, - & tg3fcs,cvfcs ,cvbfcs,cvtfcs, - & cnpfcs,smcfcs,stcfcs,slifcs,aisfcs, - & vegfcs, vetfcs, sotfcs, alffcs, -!cwu [+1l] add ()fcs for sih, sic - & sihfcs,sicfcs, -!clu [+1l] add ()fcs for vmn, vmx, slp, abs - & vmnfcs,vmxfcs,slpfcs,absfcs, - & tsfanl,wetanl,snoanl,zoranl,albanl, - & tg3anl,cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,aisanl, - & veganl, vetanl, sotanl, alfanl, -!cwu [+1l] add ()anl for sih, sic - & sihanl,sicanl, -!clu [+1l] add ()anl for vmn, vmx, slp, abs - & vmnanl,vmxanl,slpanl,absanl, - & len,lsoil) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,j,len,lsoil - real (kind=kind_io8) tsffcs(len),wetfcs(len),snofcs(len), - & zorfcs(len),albfcs(len,4),aisfcs(len), - & tg3fcs(len), - & cvfcs (len),cvbfcs(len),cvtfcs(len), - & cnpfcs(len), - & smcfcs(len,lsoil),stcfcs(len,lsoil), - & slifcs(len),vegfcs(len), - & vetfcs(len),sotfcs(len),alffcs(len,2) -!cwu [+1l] add ()fcs for sih, sic - &, sihfcs(len),sicfcs(len) -!clu [+1l] add ()fcs for vmn, vmx, slp, abs - &, vmnfcs(len),vmxfcs(len),slpfcs(len),absfcs(len) - real (kind=kind_io8) tsfanl(len),wetanl(len),snoanl(len), - & zoranl(len),albanl(len,4),aisanl(len), - & tg3anl(len), - & cvanl (len),cvbanl(len),cvtanl(len), - & cnpanl(len), - & smcanl(len,lsoil),stcanl(len,lsoil), - & slianl(len),veganl(len), - & vetanl(len),sotanl(len),alfanl(len,2) -!cwu [+1l] add ()anl for sih, sic - &, sihanl(len),sicanl(len) -!clu [+1l] add ()anl for vmn, vmx, slp, abs - &, vmnanl(len),vmxanl(len),slpanl(len),absanl(len) -! - write(6,*) ' this is a dead start run, tsfc over land is', - & ' set as lowest sigma level temperture if given.' - write(6,*) ' if not, set to climatological tsf over land is used' -! -! - do i=1,len - tsffcs(i) = tsfanl(i) ! tsf - albfcs(i,1) = albanl(i,1) ! albedo - albfcs(i,2) = albanl(i,2) ! albedo - albfcs(i,3) = albanl(i,3) ! albedo - albfcs(i,4) = albanl(i,4) ! albedo - wetfcs(i) = wetanl(i) ! soil wetness - snofcs(i) = snoanl(i) ! snow - aisfcs(i) = aisanl(i) ! seaice - slifcs(i) = slianl(i) ! land/sea/snow mask - zorfcs(i) = zoranl(i) ! surface roughness -! plrfcs(i) = plranl(i) ! maximum stomatal resistance - tg3fcs(i) = tg3anl(i) ! deep soil temperature - cnpfcs(i) = cnpanl(i) ! canopy water content - cvfcs(i) = cvanl(i) ! cv - cvbfcs(i) = cvbanl(i) ! cvb - cvtfcs(i) = cvtanl(i) ! cvt - vegfcs(i) = veganl(i) ! vegetation cover - vetfcs(i) = vetanl(i) ! vegetation type - sotfcs(i) = sotanl(i) ! soil type - alffcs(i,1) = alfanl(i,1) ! vegetation fraction for albedo - alffcs(i,2) = alfanl(i,2) ! vegetation fraction for albedo -!cwu [+2l] add sih, sic - sihfcs(i) = sihanl(i) ! sea ice thickness - sicfcs(i) = sicanl(i) ! sea ice concentration -!clu [+4l] add vmn, vmx, slp, abs - vmnfcs(i) = vmnanl(i) ! min vegetation cover - vmxfcs(i) = vmxanl(i) ! max vegetation cover - slpfcs(i) = slpanl(i) ! slope type - absfcs(i) = absanl(i) ! max snow albedo - enddo -! - do j=1,lsoil - do i=1,len - smcfcs(i,j) = smcanl(i,j) ! layer soil wetness - stcfcs(i,j) = stcanl(i,j) ! soil temperature - enddo - enddo -! - return - end - subroutine bktges(smcfcs,slianl,stcfcs,len,lsoil) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,j,len,lsoil,k - real (kind=kind_io8) smcfcs(len,lsoil), stcfcs(len,lsoil), - & slianl(len) -! -! note that smfcs comes in with the original unit (cm?) (not grib file) -! - do i = 1, len - smcfcs(i,1) = (smcfcs(i,1)/150.) * .37 + .1 - enddo - do k = 2, lsoil - do i = 1, len - smcfcs(i,k) = smcfcs(i,1) - enddo - enddo - if(lsoil.gt.2) then - do k = 3, lsoil - do i = 1, len - stcfcs(i,k) = stcfcs(i,2) - enddo - enddo - endif -! - return - end - subroutine rof01(aisfld,len,op,crit) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) aisfld(len),crit - character*2 op -! - if(op.eq.'ge') then - do i=1,len - if(aisfld(i).ge.crit) then - aisfld(i)=1. - else - aisfld(i)=0. - endif - enddo - elseif(op.eq.'gt') then - do i=1,len - if(aisfld(i).gt.crit) then - aisfld(i)=1. - else - aisfld(i)=0. - endif - enddo - elseif(op.eq.'le') then - do i=1,len - if(aisfld(i).le.crit) then - aisfld(i)=1. - else - aisfld(i)=0. - endif - enddo - elseif(op.eq.'lt') then - do i=1,len - if(aisfld(i).lt.crit) then - aisfld(i)=1. - else - aisfld(i)=0. - endif - enddo - else - write(6,*) ' illegal operator in rof01. op=',op - call abort - endif -! - return - end - subroutine tsfcor(tsfc,orog,slmask,umask,len,rlapse) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) rlapse,umask - real (kind=kind_io8) tsfc(len), orog(len), slmask(len) -! - do i=1,len - if(slmask(i).eq.umask) then - tsfc(i) = tsfc(i) - orog(i)*rlapse - endif - enddo - return - end - subroutine snodpth(scvanl,slianl,tsfanl,snoclm, - & glacir,snwmax,snwmin,landice,len,snoanl, me) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,me,len - logical, intent(in) :: landice - real (kind=kind_io8) sno,snwmax,snwmin -! - real (kind=kind_io8) scvanl(len), slianl(len), tsfanl(len), - & snoclm(len), snoanl(len), glacir(len) -! - if (me .eq. 0) write(6,*) 'snodpth' -! -! use surface temperature to get snow depth estimate -! - do i=1,len - sno = 0.0 -! -! over land -! - if(slianl(i).eq.1.) then - if(scvanl(i).eq.1.0) then - if(tsfanl(i).lt.243.0) then - sno = snwmax - elseif(tsfanl(i).lt.273.0) then - sno = snwmin+(snwmax-snwmin)*(273.0-tsfanl(i))/30.0 - else - sno = snwmin - endif - endif -! -! if glacial points has snow in climatology, set sno to snomax -! - if (.not.landice) then - if(glacir(i).eq.1.0) then - sno = snoclm(i) - if(sno.eq.0.) sno=snwmax - endif - endif - endif -! -! over sea ice -! -! snow over sea ice is cycled as of 01/01/94.....hua-lu pan -! - if(slianl(i).eq.2.0) then - sno=snoclm(i) - if(sno.eq.0.) sno=snwmax - endif -! - snoanl(i) = sno - enddo - return - end subroutine snodpth - subroutine merge(len,lsoil,iy,im,id,ih,fh,deltsfc, - & sihfcs,sicfcs, - & vmnfcs,vmxfcs,slpfcs,absfcs, - & tsffcs,wetfcs,snofcs,zorfcs,albfcs,aisfcs, - & cvfcs ,cvbfcs,cvtfcs, - & cnpfcs,smcfcs,stcfcs,slifcs,vegfcs, - & vetfcs,sotfcs,alffcs, - & sihanl,sicanl, - & vmnanl,vmxanl,slpanl,absanl, - & tsfanl,tsfan2,wetanl,snoanl,zoranl,albanl,aisanl, - & cvanl ,cvbanl,cvtanl, - & cnpanl,smcanl,stcanl,slianl,veganl, - & vetanl,sotanl,alfanl, - & ctsfl,calbl,caisl,csnol,csmcl,czorl,cstcl,cvegl, - & ctsfs,calbs,caiss,csnos,csmcs,czors,cstcs,cvegs, - & ccv,ccvb,ccvt,ccnp,cvetl,cvets,csotl,csots, - & calfl,calfs, - & csihl,csihs,csicl,csics, - & cvmnl,cvmns,cvmxl,cvmxs,cslpl,cslps,cabsl,cabss, - & irttsf,irtwet,irtsno,irtzor,irtalb,irtais, - & irttg3,irtscv,irtacn,irtsmc,irtstc,irtveg, - & irtvmn,irtvmx,irtslp,irtabs, - & irtvet,irtsot,irtalf, landice, me) - use machine , only : kind_io8,kind_io4 - use sfccyc_module, only : veg_type_landice, soil_type_landice - implicit none - integer k,i,im,id,iy,len,lsoil,ih,irtacn,irtsmc,irtscv,irtais, - & irttg3,irtstc,irtalf,me,irtsot,irtveg,irtvet, irtzor, - & irtalb,irtsno,irttsf,irtwet,j - &, irtvmn,irtvmx,irtslp,irtabs - logical, intent(in) :: landice - real (kind=kind_io8) rvegs,rvets,rzors,raiss,rsnos,rsots,rcnp, - & rcvt,rcv,rcvb,rsnol,rzorl,raisl,ralbl, - & ralfl,rvegl,ralbs,ralfs,rtsfs,rvetl,rsotl, - & qzors,qvegs,qsnos,qalfs,qaiss,qvets,qcvt, - & qcnp,qcvb,qsots,qcv,qaisl,qsnol,qalfl, - & qtsfl,qalbl,qzorl,qtsfs,qalbs,qsotl,qvegl, - & qvetl,rtsfl,calbs,caiss,ctsfs,czorl,cvegl, - & csnos,ccvb,ccvt,ccv,czors,cvegs,caisl,csnol, - & calbl,fh,ctsfl,ccnp,csots,calfl,csotl,cvetl, - & cvets,calfs,deltsfc, - & csihl,csihs,csicl,csics, - & rsihl,rsihs,rsicl,rsics, - & qsihl,qsihs,qsicl,qsics - &, cvmnl,cvmns,cvmxl,cvmxs,cslpl,cslps - &, cabsl,cabss,rvmnl,rvmns,rvmxl,rvmxs - &, rslpl,rslps,rabsl,rabss,qvmnl,qvmns - &, qvmxl,qvmxs,qslpl,qslps,qabsl,qabss -! - real (kind=kind_io8) tsffcs(len), wetfcs(len), snofcs(len), - & zorfcs(len), albfcs(len,4), aisfcs(len), - & cvfcs (len), cvbfcs(len), cvtfcs(len), - & cnpfcs(len), - & smcfcs(len,lsoil),stcfcs(len,lsoil), - & slifcs(len), vegfcs(len), - & vetfcs(len), sotfcs(len), alffcs(len,2) - &, sihfcs(len), sicfcs(len) - &, vmnfcs(len),vmxfcs(len),slpfcs(len),absfcs(len) - real (kind=kind_io8) tsfanl(len),tsfan2(len), - & wetanl(len),snoanl(len), - & zoranl(len), albanl(len,4), aisanl(len), - & cvanl (len), cvbanl(len), cvtanl(len), - & cnpanl(len), - & smcanl(len,lsoil),stcanl(len,lsoil), - & slianl(len), veganl(len), - & vetanl(len), sotanl(len), alfanl(len,2) - &, sihanl(len),sicanl(len) - &, vmnanl(len),vmxanl(len),slpanl(len),absanl(len) -! - real (kind=kind_io8) csmcl(lsoil), csmcs(lsoil), - & cstcl(lsoil), cstcs(lsoil) - real (kind=kind_io8) rsmcl(lsoil), rsmcs(lsoil), - & rstcl(lsoil), rstcs(lsoil) - real (kind=kind_io8) qsmcl(lsoil), qsmcs(lsoil), - & qstcl(lsoil), qstcs(lsoil) - logical first - integer num_threads - data first /.true./ - save num_threads, first -! - integer len_thread_m, i1_t, i2_t, it - integer num_parthds -! - if (first) then - num_threads = num_parthds() - first = .false. - endif -! -! coeeficients of blending forecast and interpolated clim -! (or analyzed) fields over sea or land(l) (not for clouds) -! 1.0 = use of forecast -! 0.0 = replace with interpolated analysis -! -! merging coefficients are defined by parameter statement in calling program -! and therefore they should not be modified in this program. -! - rtsfl = ctsfl - ralbl = calbl - ralfl = calfl - raisl = caisl - rsnol = csnol -!clu rsmcl = csmcl - rzorl = czorl - rvegl = cvegl - rvetl = cvetl - rsotl = csotl - rsihl = csihl - rsicl = csicl - rvmnl = cvmnl - rvmxl = cvmxl - rslpl = cslpl - rabsl = cabsl -! - rtsfs = ctsfs - ralbs = calbs - ralfs = calfs - raiss = caiss - rsnos = csnos -! rsmcs = csmcs - rzors = czors - rvegs = cvegs - rvets = cvets - rsots = csots - rsihs = csihs - rsics = csics - rvmns = cvmns - rvmxs = cvmxs - rslps = cslps - rabss = cabss -! - rcv = ccv - rcvb = ccvb - rcvt = ccvt - rcnp = ccnp -! - do k=1,lsoil - rsmcl(k) = csmcl(k) - rsmcs(k) = csmcs(k) - rstcl(k) = cstcl(k) - rstcs(k) = cstcs(k) - enddo - if (fh-deltsfc < -0.001 .and. irttsf == 1) then - rtsfs = 1.0 - rtsfl = 1.0 -! do k=1,lsoil -! rsmcl(k) = 1.0 -! rsmcs(k) = 1.0 -! rstcl(k) = 1.0 -! rstcs(k) = 1.0 -! enddo - endif -! -! if analysis file name is given but no matching analysis date found, -! use guess (these are flagged by irt???=1). -! - if(irttsf == -1) then - rtsfl = 1. - rtsfs = 1. - endif - if(irtalb == -1) then - ralbl = 1. - ralbs = 1. - ralfl = 1. - ralfs = 1. - endif - if(irtais == -1) then - raisl = 1. - raiss = 1. - endif - if(irtsno == -1 .or. irtscv == -1) then - rsnol = 1. - rsnos = 1. - endif - if(irtsmc == -1 .or. irtwet == -1) then -! rsmcl = 1. -! rsmcs = 1. - do k=1,lsoil - rsmcl(k) = 1. - rsmcs(k) = 1. - enddo - endif - if(irtstc.eq.-1) then - do k=1,lsoil - rstcl(k) = 1. - rstcs(k) = 1. - enddo - endif - if(irtzor == -1) then - rzorl = 1. - rzors = 1. - endif - if(irtveg == -1) then - rvegl = 1. - rvegs = 1. - endif - if(irtvet.eq.-1) then - rvetl = 1. - rvets = 1. - endif - if(irtsot == -1) then - rsotl = 1. - rsots = 1. - endif - - if(irtacn == -1) then - rsicl = 1. - rsics = 1. - endif - if(irtvmn == -1) then - rvmnl = 1. - rvmns = 1. - endif - if(irtvmx == -1) then - rvmxl = 1. - rvmxs = 1. - endif - if(irtslp == -1) then - rslpl = 1. - rslps = 1. - endif - if(irtabs == -1) then - rabsl = 1. - rabss = 1. - endif -! - if(raiss == 1. .or. irtacn == -1) then - if (me == 0) print *,'use forecast land-sea-ice mask' - do i = 1, len - aisanl(i) = aisfcs(i) - slianl(i) = slifcs(i) - enddo - endif -! - if (me == 0) then - write(6,100) rtsfl,ralbl,raisl,rsnol,rsmcl,rzorl,rvegl - 100 format('rtsfl,ralbl,raisl,rsnol,rsmcl,rzorl,rvegl=',10f7.3) - write(6,101) rtsfs,ralbs,raiss,rsnos,rsmcs,rzors,rvegs - 101 format('rtsfs,ralbs,raiss,rsnos,rsmcs,rzors,rvegs=',10f7.3) -! print *,' ralfl=',ralfl,' ralfs=',ralfs,' rsotl=',rsotl -! *,' rsots=',rsots,' rvetl=',rvetl,' rvets=',rvets - endif -! - qtsfl = 1. - rtsfl - qalbl = 1. - ralbl - qalfl = 1. - ralfl - qaisl = 1. - raisl - qsnol = 1. - rsnol -! qsmcl = 1. - rsmcl - qzorl = 1. - rzorl - qvegl = 1. - rvegl - qvetl = 1. - rvetl - qsotl = 1. - rsotl - qsihl = 1. - rsihl - qsicl = 1. - rsicl - qvmnl = 1. - rvmnl - qvmxl = 1. - rvmxl - qslpl = 1. - rslpl - qabsl = 1. - rabsl -! - qtsfs = 1. - rtsfs - qalbs = 1. - ralbs - qalfs = 1. - ralfs - qaiss = 1. - raiss - qsnos = 1. - rsnos -! qsmcs = 1. - rsmcs - qzors = 1. - rzors - qvegs = 1. - rvegs - qvets = 1. - rvets - qsots = 1. - rsots - qsihs = 1. - rsihs - qsics = 1. - rsics - qvmns = 1. - rvmns - qvmxs = 1. - rvmxs - qslps = 1. - rslps - qabss = 1. - rabss -! - qcv = 1. - rcv - qcvb = 1. - rcvb - qcvt = 1. - rcvt - qcnp = 1. - rcnp -! - do k=1,lsoil - qsmcl(k) = 1. - rsmcl(k) - qsmcs(k) = 1. - rsmcs(k) - qstcl(k) = 1. - rstcl(k) - qstcs(k) = 1. - rstcs(k) - enddo -! -! merging -! - if(me .eq. 0) then - print *, 'dbgx-- csmcl:', (csmcl(k),k=1,lsoil) - print *, 'dbgx-- rsmcl:', (rsmcl(k),k=1,lsoil) - print *, 'dbgx-- csnol, csnos:',csnol,csnos - print *, 'dbgx-- rsnol, rsnos:',rsnol,rsnos - endif - -! print *, rtsfs, qtsfs, raiss , qaiss -! *, rsnos , qsnos, rzors , qzors, rvegs , qvegs -! *, rvets , qvets, rsots , qsots -! *, rcv, rcvb, rcvt, qcv, qcvb, qcvt -! *, ralbs, qalbs, ralfs, qalfs -! print *, rtsfl, qtsfl, raisl , qaisl -! *, rsnol , qsnol, rzorl , qzorl, rvegl , qvegl -! *, rvetl , qvetl, rsotl , qsotl -! *, ralbl, qalbl, ralfl, qalfl -! -! - len_thread_m = (len+num_threads-1) / num_threads - -!$omp parallel do private(i1_t,i2_t,it,i) - do it=1,num_threads ! start of threaded loop ................... - i1_t = (it-1)*len_thread_m+1 - i2_t = min(i1_t+len_thread_m-1,len) - do i=i1_t,i2_t - if(slianl(i).eq.0.) then - vetanl(i) = vetfcs(i)*rvets + vetanl(i)*qvets - sotanl(i) = sotfcs(i)*rsots + sotanl(i)*qsots - else - vetanl(i) = vetfcs(i)*rvetl + vetanl(i)*qvetl - sotanl(i) = sotfcs(i)*rsotl + sotanl(i)*qsotl - endif - enddo - enddo -!$omp end parallel do -! -!$omp parallel do private(i1_t,i2_t,it,i,k) -! - do it=1,num_threads ! start of threaded loop ................... - i1_t = (it-1)*len_thread_m+1 - i2_t = min(i1_t+len_thread_m-1,len) -! - do i=i1_t,i2_t - if(slianl(i).eq.0.) then -!.... tsffc2 is the previous anomaly + today's climatology -! tsffc2 = (tsffcs(i)-tsfan2(i))+tsfanl(i) -! tsfanl(i) = tsffc2 *rtsfs+tsfanl(i)*qtsfs -! - tsfanl(i) = tsffcs(i)*rtsfs + tsfanl(i)*qtsfs -! albanl(i) = albfcs(i)*ralbs + albanl(i)*qalbs - aisanl(i) = aisfcs(i)*raiss + aisanl(i)*qaiss - snoanl(i) = snofcs(i)*rsnos + snoanl(i)*qsnos - - zoranl(i) = zorfcs(i)*rzors + zoranl(i)*qzors - veganl(i) = vegfcs(i)*rvegs + veganl(i)*qvegs - sihanl(i) = sihfcs(i)*rsihs + sihanl(i)*qsihs - sicanl(i) = sicfcs(i)*rsics + sicanl(i)*qsics - vmnanl(i) = vmnfcs(i)*rvmns + vmnanl(i)*qvmns - vmxanl(i) = vmxfcs(i)*rvmxs + vmxanl(i)*qvmxs - slpanl(i) = slpfcs(i)*rslps + slpanl(i)*qslps - absanl(i) = absfcs(i)*rabss + absanl(i)*qabss - else - tsfanl(i) = tsffcs(i)*rtsfl + tsfanl(i)*qtsfl -! albanl(i) = albfcs(i)*ralbl + albanl(i)*qalbl - aisanl(i) = aisfcs(i)*raisl + aisanl(i)*qaisl - if(rsnol.ge.0)then - snoanl(i) = snofcs(i)*rsnol + snoanl(i)*qsnol - else ! envelope method - if(snoanl(i).ne.0)then - snoanl(i) = max(-snoanl(i)/rsnol, - & min(-snoanl(i)*rsnol, snofcs(i))) - endif - endif - zoranl(i) = zorfcs(i)*rzorl + zoranl(i)*qzorl - veganl(i) = vegfcs(i)*rvegl + veganl(i)*qvegl - vmnanl(i) = vmnfcs(i)*rvmnl + vmnanl(i)*qvmnl - vmxanl(i) = vmxfcs(i)*rvmxl + vmxanl(i)*qvmxl - slpanl(i) = slpfcs(i)*rslpl + slpanl(i)*qslpl - absanl(i) = absfcs(i)*rabsl + absanl(i)*qabsl - sihanl(i) = sihfcs(i)*rsihl + sihanl(i)*qsihl - sicanl(i) = sicfcs(i)*rsicl + sicanl(i)*qsicl - endif - - cnpanl(i) = cnpfcs(i)*rcnp + cnpanl(i)*qcnp -! -! snow over sea ice is cycled -! - if(slianl(i).eq.2.) then - snoanl(i) = snofcs(i) - endif -! - enddo - -! at landice points, set the soil type, slope type and -! greenness fields to flag values. - - if (landice) then - do i=i1_t,i2_t - if (nint(slianl(i)) == 1) then - if (nint(vetanl(i)) == veg_type_landice) then - sotanl(i) = soil_type_landice - veganl(i) = 0.0 - slpanl(i) = 9.0 - vmnanl(i) = 0.0 - vmxanl(i) = 0.0 - endif - end if ! if land - enddo - endif - - do i=i1_t,i2_t - cvanl(i) = cvfcs(i)*rcv + cvanl(i)*qcv - cvbanl(i) = cvbfcs(i)*rcvb + cvbanl(i)*qcvb - cvtanl(i) = cvtfcs(i)*rcvt + cvtanl(i)*qcvt - enddo -! - do k = 1, 4 - do i=i1_t,i2_t - if(slianl(i).eq.0.) then - albanl(i,k) = albfcs(i,k)*ralbs + albanl(i,k)*qalbs - else - albanl(i,k) = albfcs(i,k)*ralbl + albanl(i,k)*qalbl - endif - enddo - enddo -! - do k = 1, 2 - do i=i1_t,i2_t - if(slianl(i).eq.0.) then - alfanl(i,k) = alffcs(i,k)*ralfs + alfanl(i,k)*qalfs - else - alfanl(i,k) = alffcs(i,k)*ralfl + alfanl(i,k)*qalfl - endif - enddo - enddo -! - do k = 1, lsoil - do i=i1_t,i2_t - if(slianl(i).eq.0.) then - smcanl(i,k) = smcfcs(i,k)*rsmcs(k) + smcanl(i,k)*qsmcs(k) - stcanl(i,k) = stcfcs(i,k)*rstcs(k) + stcanl(i,k)*qstcs(k) - else -! soil moisture not used at landice points, so -! don't bother merging it. also, for now don't allow nudging -! to raise subsurface temperature above freezing. - stcanl(i,k) = stcfcs(i,k)*rstcl(k) + stcanl(i,k)*qstcl(k) - if (landice .and. slianl(i) == 1.0 .and. - & nint(vetanl(i)) == veg_type_landice) then - smcanl(i,k) = 1.0 ! use value as flag - stcanl(i,k) = min(stcanl(i,k), 273.15) - else - smcanl(i,k) = smcfcs(i,k)*rsmcl(k) + smcanl(i,k)*qsmcl(k) - end if - endif - enddo - enddo -! - enddo ! end of threaded loop ................... -!$omp end parallel do - return - end subroutine merge - subroutine newice(slianl,slifcs,tsfanl,tsffcs,len,lsoil, -!cwu [+1l] add sihnew,sicnew,sihanl,sicanl - & sihnew,sicnew,sihanl,sicanl, - & albanl,snoanl,zoranl,smcanl,stcanl, - & albsea,snosea,zorsea,smcsea,smcice, - & tsfmin,tsfice,albice,zorice,tgice, - & rla,rlo,me) -! - use machine , only : kind_io8,kind_io4 - implicit none - real (kind=kind_io8), parameter :: one=1.0 - real (kind=kind_io8) tgice,albice,zorice,tsfice,albsea,snosea, - & smcice,tsfmin,zorsea,smcsea -!cwu [+1l] add sicnew,sihnew - &, sicnew,sihnew - integer i,me,kount1,kount2,k,len,lsoil - real (kind=kind_io8) slianl(len), slifcs(len), - & tsffcs(len),tsfanl(len) - real (kind=kind_io8) albanl(len,4), snoanl(len), zoranl(len) - real (kind=kind_io8) smcanl(len,lsoil), stcanl(len,lsoil) -!cwu [+1l] add sihanl & sicanl - real (kind=kind_io8) sihanl(len), sicanl(len) -! - real (kind=kind_io8) rla(len), rlo(len) -! - if (me .eq. 0) write(6,*) 'newice' -! - kount1 = 0 - kount2 = 0 - do i=1,len - if(slifcs(i).ne.slianl(i)) then - if(slifcs(i).eq.1..or.slianl(i).eq.1.) then - print *,'inconsistency in slifcs or slianl' - print 910,rla(i),rlo(i),slifcs(i),slianl(i), - & tsffcs(i),tsfanl(i) - 910 format(2x,'at lat=',f5.1,' lon=',f5.1,' slifcs=',f4.1, - & ' slimsk=',f4.1,' tsffcs=',f5.1,' set to tsfanl=',f5.1) - call abort - endif -! -! interpolated climatology indicates melted sea ice -! - if(slianl(i).eq.0..and.slifcs(i).eq.2.) then - tsfanl(i) = tsfmin - albanl(i,1) = albsea - albanl(i,2) = albsea - albanl(i,3) = albsea - albanl(i,4) = albsea - snoanl(i) = snosea - zoranl(i) = zorsea - do k = 1, lsoil - smcanl(i,k) = smcsea -!cwu [+1l] set stcanl to tgice (over sea-ice) - stcanl(i,k) = tgice - enddo -!cwu [+2l] set siganl and sicanl - sihanl(i) = 0. - sicanl(i) = 0. - kount1 = kount1 + 1 - endif -! -! interplated climatoloyg/analysis indicates new sea ice -! - if(slianl(i).eq.2..and.slifcs(i).eq.0.) then - tsfanl(i) = tsfice - albanl(i,1) = albice - albanl(i,2) = albice - albanl(i,3) = albice - albanl(i,4) = albice - snoanl(i) = 0. - zoranl(i) = zorice - do k = 1, lsoil - smcanl(i,k) = smcice - stcanl(i,k) = tgice - enddo -!cwu [+2l] add sihanl & sicanl - sihanl(i) = sihnew - sicanl(i) = min(one, max(sicnew,sicanl(i))) - kount2 = kount2 + 1 - endif - endif - enddo -! - if (me .eq. 0) then - if(kount1.gt.0) then - write(6,*) 'sea ice melted. tsf,alb,zor are filled', - & ' at ',kount1,' points' - endif - if(kount2.gt.0) then - write(6,*) 'sea ice formed. tsf,alb,zor are filled', - & ' at ',kount2,' points' - endif - endif -! - return - end - subroutine qcsnow(snoanl,slmask,aisanl,glacir,len,snoval, - & landice,me) - use machine , only : kind_io8,kind_io4 - implicit none - integer kount,i,len,me - logical, intent(in) :: landice - real (kind=kind_io8) per,snoval - real (kind=kind_io8) snoanl(len),slmask(len), - & aisanl(len),glacir(len) - if (me .eq. 0) then - write(6,*) ' ' - write(6,*) 'qc of snow' - endif - if (.not.landice) then - kount=0 - do i=1,len - if(glacir(i).ne.0..and.snoanl(i).eq.0.) then -! if(glacir(i).ne.0..and.snoanl(i).lt.snoval*0.5) then - snoanl(i) = snoval - kount = kount + 1 - endif - enddo - per = float(kount) / float(len)*100. - if(kount.gt.0) then - if (me .eq. 0) then - print *,'snow filled over glacier points at ',kount, - & ' points (',per,'percent)' - endif - endif - endif ! landice check - kount = 0 - do i=1,len - if(slmask(i).eq.0.and.aisanl(i).eq.0) then - snoanl(i) = 0. - kount = kount + 1 - endif - enddo - per = float(kount) / float(len)*100. - if(kount.gt.0) then - if (me .eq. 0) then - print *,'snow set to zero over open sea at ',kount, - & ' points (',per,'percent)' - endif - endif - return - end subroutine qcsnow - subroutine qcsice(ais,glacir,amxice,aicice,aicsea,sllnd,slmask, - & rla,rlo,len,me) - use machine , only : kind_io8,kind_io4 - implicit none - integer kount1,kount,i,me,len - real (kind=kind_io8) per,aicsea,aicice,sllnd -! - real (kind=kind_io8) ais(len), glacir(len), - & amxice(len), slmask(len) - real (kind=kind_io8) rla(len), rlo(len) -! -! check sea-ice cover mask against land-sea mask -! - if (me .eq. 0) write(6,*) 'qc of sea ice' - kount = 0 - kount1 = 0 - do i=1,len - if(ais(i).ne.aicice.and.ais(i).ne.aicsea) then - print *,'sea ice mask not ',aicice,' or ',aicsea - print *,'ais(i),aicice,aicsea,rla(i),rlo(i,=', - & ais(i),aicice,aicsea,rla(i),rlo(i) - call abort - endif - if(slmask(i).eq.0..and.glacir(i).eq.1..and. -! if(slmask(i).eq.0..and.glacir(i).eq.2..and. - & ais(i).ne.1.) then - kount1 = kount1 + 1 - ais(i) = 1. - endif - if(slmask(i).eq.sllnd.and.ais(i).eq.aicice) then - kount = kount + 1 - ais(i) = aicsea - endif - enddo -! enddo - per = float(kount) / float(len)*100. - if(kount.gt.0) then - if(me .eq. 0) then - print *,' sea ice over land mask at ',kount,' points (',per, - & 'percent)' - endif - endif - per = float(kount1) / float(len)*100. - if(kount1.gt.0) then - if(me .eq. 0) then - print *,' sea ice set over glacier points over ocean at ', - & kount1,' points (',per,'percent)' - endif - endif -! kount=0 -! do j=1,jdim -! do i=1,idim -! if(amxice(i,j).ne.0..and.ais(i,j).eq.0.) then -! ais(i,j)=0. -! kount=kount+1 -! endif -! enddo -! enddo -! per=float(kount)/float(idim*jdim)*100. -! if(kount.gt.0) then -! print *,' sea ice exceeds maxice at ',kount,' points (',per, -! & 'percent)' -! endif -! -! remove isolated open ocean surrounded by sea ice and/or land -! -! remove isolated open ocean surrounded by sea ice and/or land -! -! ij = 0 -! do j=1,jdim -! do i=1,idim -! ij = ij + 1 -! ip = i + 1 -! im = i - 1 -! jp = j + 1 -! jm = j - 1 -! if(jp.gt.jdim) jp = jdim - 1 -! if(jm.lt.1) jm = 2 -! if(ip.gt.idim) ip = 1 -! if(im.lt.1) im = idim -! if(slmask(i,j).eq.0..and.ais(i,j).eq.0.) then -! if((slmask(ip,jp).eq.1..or.ais(ip,jp).eq.1.).and. -! & (slmask(i ,jp).eq.1..or.ais(i ,jp).eq.1.).and. -! & (slmask(im,jp).eq.1..or.ais(im,jp).eq.1.).and. -! & (slmask(ip,j ).eq.1..or.ais(ip,j ).eq.1.).and. -! & (slmask(im,j ).eq.1..or.ais(im,j ).eq.1.).and. -! & (slmask(ip,jm).eq.1..or.ais(ip,jm).eq.1.).and. -! & (slmask(i ,jm).eq.1..or.ais(i ,jm).eq.1.).and. -! & (slmask(im,jm).eq.1..or.ais(im,jm).eq.1.)) then -! ais(i,j) = 1. -! write(6,*) ' isolated open sea point surrounded by', -! & ' sea ice or land modified to sea ice', -! & ' at lat=',rla(i,j),' lon=',rlo(i,j) -! endif -! endif -! enddo -! enddo - return - end - subroutine setlsi(slmask,aisfld,len,aicice,slifld) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) aicice - real (kind=kind_io8) slmask(len), slifld(len), aisfld(len) -! -! set surface condition indicator slimsk -! - do i=1,len - slifld(i) = slmask(i) -! if(aisfld(i).eq.aicice) slifld(i) = 2.0 - if(aisfld(i).eq.aicice .and. slmask(i) .eq. 0.0) - & slifld(i) = 2.0 - enddo - return - end - subroutine scale(fld,len,scl) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) fld(len),scl - do i=1,len - fld(i) = fld(i) * scl - enddo - return - end - subroutine qcmxmn(ttl,fld,slimsk,sno,iceflg, - & fldlmx,fldlmn,fldomx,fldomn,fldimx,fldimn, - & fldjmx,fldjmn,fldsmx,fldsmn,epsfld, - & rla,rlo,len,mode,percrit,lgchek,me) -! - use machine , only : kind_io8,kind_io4 - implicit none - real (kind=kind_io8) permax,per,fldimx,fldimn,fldjmx,fldomn, - & fldlmx,fldlmn,fldomx,fldjmn,percrit, - & fldsmx,fldsmn,epsfld - integer kmaxi,kmini,kmaxj,kmino,kmaxl,kminl,kmaxo,mmprt,kminj, - & ij,nprt,kmaxs,kmins,i,me,len,mode - parameter(mmprt=2) -! - character*8 ttl - logical iceflg(len) - real (kind=kind_io8) fld(len),slimsk(len),sno(len), - & rla(len), rlo(len) - integer iwk(len) - logical lgchek -! - logical first - integer num_threads - data first /.true./ - save num_threads, first -! - integer len_thread_m, i1_t, i2_t, it - integer num_parthds -! - if (first) then - num_threads = num_parthds() - first = .false. - endif -! -! check against land-sea mask and ice cover mask -! - if(me .eq. 0) then -! print *,' ' - print *,'performing qc of ',ttl,' mode=',mode, - & '(0=count only, 1=replace)' - endif -! - len_thread_m = (len+num_threads-1) / num_threads -! -!$omp parallel do private(i1_t,i2_t,it,i) -!$omp+private(nprt,ij,iwk,kmaxs,kmins) -!$omp+private(kmaxl,kminl,kmaxo,kmino,kmaxi,kmini,kmaxj,kminj) -!$omp+shared(mode,epsfld) -!$omp+shared(fldlmx,fldlmn,fldomx,fldjmn,fldsmx,fldsmn) -!$omp+shared(fld,slimsk,sno,rla,rlo) -! - do it=1,num_threads ! start of threaded loop ................... - i1_t = (it-1)*len_thread_m+1 - i2_t = min(i1_t+len_thread_m-1,len) -! - kmaxl = 0 - kminl = 0 - kmaxo = 0 - kmino = 0 - kmaxi = 0 - kmini = 0 - kmaxj = 0 - kminj = 0 - kmaxs = 0 - kmins = 0 -! -! -! lower bound check over bare land -! - if (fldlmn .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.1..and.sno(i).le.0..and. - & fld(i).lt.fldlmn-epsfld) then - kminl=kminl+1 - iwk(kminl) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kminl) - do i=1,nprt - ij = iwk(i) - print 8001,rla(ij),rlo(ij),fld(ij),fldlmn - 8001 format(' bare land min. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e13.6, ' to ',e13.6) - enddo - endif - if (mode .eq. 1) then - do i=1,kminl - fld(iwk(i)) = fldlmn - enddo - endif - endif -! -! upper bound check over bare land -! - if (fldlmx .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.1..and.sno(i).le.0..and. - & fld(i).gt.fldlmx+epsfld) then - kmaxl=kmaxl+1 - iwk(kmaxl) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmaxl) - do i=1,nprt - ij = iwk(i) - print 8002,rla(ij),rlo(ij),fld(ij),fldlmx - 8002 format(' bare land max. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e13.6, ' to ',e13.6) - enddo - endif - if (mode .eq. 1) then - do i=1,kmaxl - fld(iwk(i)) = fldlmx - enddo - endif - endif -! -! lower bound check over snow covered land -! - if (fldsmn .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.1..and.sno(i).gt.0..and. - & fld(i).lt.fldsmn-epsfld) then - kmins=kmins+1 - iwk(kmins) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmins) - do i=1,nprt - ij = iwk(i) - print 8003,rla(ij),rlo(ij),fld(ij),fldsmn - 8003 format(' sno covrd land min. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmins - fld(iwk(i)) = fldsmn - enddo - endif - endif -! -! upper bound check over snow covered land -! - if (fldsmx .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.1..and.sno(i).gt.0..and. - & fld(i).gt.fldsmx+epsfld) then - kmaxs=kmaxs+1 - iwk(kmaxs) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmaxs) - do i=1,nprt - ij = iwk(i) - print 8004,rla(ij),rlo(ij),fld(ij),fldsmx - 8004 format(' snow land max. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmaxs - fld(iwk(i)) = fldsmx - enddo - endif - endif -! -! lower bound check over open ocean -! - if (fldomn .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.0..and. - & fld(i).lt.fldomn-epsfld) then - kmino=kmino+1 - iwk(kmino) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmino) - do i=1,nprt - ij = iwk(i) - print 8005,rla(ij),rlo(ij),fld(ij),fldomn - 8005 format(' open ocean min. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4,' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmino - fld(iwk(i)) = fldomn - enddo - endif - endif -! -! upper bound check over open ocean -! - if (fldomx .ne. 999.0) then - do i=i1_t,i2_t - if(fldomx.ne.999..and.slimsk(i).eq.0..and. - & fld(i).gt.fldomx+epsfld) then - kmaxo=kmaxo+1 - iwk(kmaxo) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmaxo) - do i=1,nprt - ij = iwk(i) - print 8006,rla(ij),rlo(ij),fld(ij),fldomx - 8006 format(' open ocean max. check. lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmaxo - fld(iwk(i)) = fldomx - enddo - endif - endif -! -! lower bound check over sea ice without snow -! - if (fldimn .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.2..and.sno(i).le.0..and. - & fld(i).lt.fldimn-epsfld) then - kmini=kmini+1 - iwk(kmini) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmini) - do i=1,nprt - ij = iwk(i) - print 8007,rla(ij),rlo(ij),fld(ij),fldimn - 8007 format(' seaice no snow min. check lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmini - fld(iwk(i)) = fldimn - enddo - endif - endif -! -! upper bound check over sea ice without snow -! - if (fldimx .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.2..and.sno(i).le.0..and. - & fld(i).gt.fldimx+epsfld .and. iceflg(i)) then -! & fld(i).gt.fldimx+epsfld) then - kmaxi=kmaxi+1 - iwk(kmaxi) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmaxi) - do i=1,nprt - ij = iwk(i) - print 8008,rla(ij),rlo(ij),fld(ij),fldimx - 8008 format(' seaice no snow max. check lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmaxi - fld(iwk(i)) = fldimx - enddo - endif - endif -! -! lower bound check over sea ice with snow -! - if (fldjmn .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.2..and.sno(i).gt.0..and. - & fld(i).lt.fldjmn-epsfld) then - kminj=kminj+1 - iwk(kminj) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kminj) - do i=1,nprt - ij = iwk(i) - print 8009,rla(ij),rlo(ij),fld(ij),fldjmn - 8009 format(' sea ice snow min. check lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kminj - fld(iwk(i)) = fldjmn - enddo - endif - endif -! -! upper bound check over sea ice with snow -! - if (fldjmx .ne. 999.0) then - do i=i1_t,i2_t - if(slimsk(i).eq.2..and.sno(i).gt.0..and. - & fld(i).gt.fldjmx+epsfld .and. iceflg(i)) then -! & fld(i).gt.fldjmx+epsfld) then - kmaxj=kmaxj+1 - iwk(kmaxj) = i - endif - enddo - if(me == 0 . and. it == 1 .and. num_threads == 1) then - nprt = min(mmprt,kmaxj) - do i=1,nprt - ij = iwk(i) - print 8010,rla(ij),rlo(ij),fld(ij),fldjmx - 8010 format(' seaice snow max check lat=',f5.1, - & ' lon=',f6.1,' fld=',e11.4, ' to ',e11.4) - enddo - endif - if (mode .eq. 1) then - do i=1,kmaxj - fld(iwk(i)) = fldjmx - enddo - endif - endif - enddo ! end of threaded loop ................... -!$omp end parallel do -! -! print results -! - if(me .eq. 0) then -! write(6,*) 'summary of qc' - permax=0. - if(kminl.gt.0) then - per=float(kminl)/float(len)*100. - print 9001,fldlmn,kminl,per - 9001 format(' bare land min check. modified to ',f8.1, - & ' at ',i5,' points ',f8.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmaxl.gt.0) then - per=float(kmaxl)/float(len)*100. - print 9002,fldlmx,kmaxl,per - 9002 format(' bare land max check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmino.gt.0) then - per=float(kmino)/float(len)*100. - print 9003,fldomn,kmino,per - 9003 format(' open ocean min check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmaxo.gt.0) then - per=float(kmaxo)/float(len)*100. - print 9004,fldomx,kmaxo,per - 9004 format(' open sea max check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmins.gt.0) then - per=float(kmins)/float(len)*100. - print 9009,fldsmn,kmins,per - 9009 format(' snow covered land min check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmaxs.gt.0) then - per=float(kmaxs)/float(len)*100. - print 9010,fldsmx,kmaxs,per - 9010 format(' snow covered land max check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmini.gt.0) then - per=float(kmini)/float(len)*100. - print 9005,fldimn,kmini,per - 9005 format(' bare ice min check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmaxi.gt.0) then - per=float(kmaxi)/float(len)*100. - print 9006,fldimx,kmaxi,per - 9006 format(' bare ice max check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kminj.gt.0) then - per=float(kminj)/float(len)*100. - print 9007,fldjmn,kminj,per - 9007 format(' snow covered ice min check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif - if(kmaxj.gt.0) then - per=float(kmaxj)/float(len)*100. - print 9008,fldjmx,kmaxj,per - 9008 format(' snow covered ice max check. modified to ',f8.1, - & ' at ',i5,' points ',f4.1,'percent') - if(per.gt.permax) permax=per - endif -! commented on 06/30/99 -- moorthi -! if(lgchek) then -! if(permax.gt.percrit) then -! write(6,*) ' too many bad points. aborting ....' -! call abort -! endif -! endif -! - endif -! - return - end - subroutine setzro(fld,eps,len) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) fld(len),eps - do i=1,len - if(abs(fld(i)).lt.eps) fld(i) = 0. - enddo - return - end - subroutine getscv(snofld,scvfld,len) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) snofld(len),scvfld(len) -! - do i=1,len - scvfld(i) = 0. - if(snofld(i).gt.0.) scvfld(i) = 1. - enddo - return - end - subroutine getstc(tsffld,tg3fld,slifld,len,lsoil,stcfld,tsfimx) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer k,i,len,lsoil - real (kind=kind_io8) factor,tsfimx - real (kind=kind_io8) tsffld(len), tg3fld(len), slifld(len) - real (kind=kind_io8) stcfld(len,lsoil) -! -! layer soil temperature -! - do k = 1, lsoil - do i = 1, len - if(slifld(i).eq.1.0) then - factor = ((k-1) * 2 + 1) / (2. * lsoil) - stcfld(i,k) = factor*tg3fld(i)+(1.-factor)*tsffld(i) - elseif(slifld(i).eq.2.0) then - factor = ((k-1) * 2 + 1) / (2. * lsoil) - stcfld(i,k) = factor*tsfimx+(1.-factor)*tsffld(i) - else - stcfld(i,k) = tg3fld(i) - endif - enddo - enddo - if(lsoil.gt.2) then - do k = 3, lsoil - do i = 1, len - stcfld(i,k) = stcfld(i,2) - enddo - enddo - endif - return - end - subroutine getsmc(wetfld,len,lsoil,smcfld,me) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer k,i,len,lsoil,me - real (kind=kind_io8) wetfld(len), smcfld(len,lsoil) -! - if (me .eq. 0) write(6,*) 'getsmc' -! -! layer soil wetness -! - do k = 1, lsoil - do i = 1, len - smcfld(i,k) = (wetfld(i)*1000./150.)*.37 + .1 - enddo - enddo - return - end - subroutine usesgt(sig1t,slianl,tg3anl,len,lsoil,tsfanl,stcanl, - & tsfimx) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len,lsoil - real (kind=kind_io8) tsfimx - real (kind=kind_io8) sig1t(len), slianl(len), tg3anl(len) - real (kind=kind_io8) tsfanl(len), stcanl(len,lsoil) -! -! soil temperature -! - if(sig1t(1).gt.0.) then - do i=1,len - if(slianl(i).ne.0.) then - tsfanl(i) = sig1t(i) - endif - enddo - endif - call getstc(tsfanl,tg3anl,slianl,len,lsoil,stcanl,tsfimx) -! - return - end - subroutine snosfc(snoanl,tsfanl,tsfsmx,len,me) - use machine , only : kind_io8,kind_io4 - implicit none - integer kount,i,len,me - real (kind=kind_io8) per,tsfsmx - real (kind=kind_io8) snoanl(len), tsfanl(len) -! - if (me .eq. 0) write(6,*) 'set snow temp to tsfsmx if greater' - kount=0 - do i=1,len - if(snoanl(i).gt.0.) then - if(tsfanl(i).gt.tsfsmx) tsfanl(i)=tsfsmx - kount = kount + 1 - endif - enddo - if(kount.gt.0) then - if(me .eq. 0) then - per=float(kount)/float(len)*100. - write(6,*) 'snow sfc. tsf set to ',tsfsmx,' at ', - & kount, ' points ',per,'percent' - endif - endif - return - end - subroutine albocn(albclm,slmask,albomx,len) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) albomx - real (kind=kind_io8) albclm(len,4), slmask(len) - do i=1,len - if(slmask(i).eq.0) then - albclm(i,1) = albomx - albclm(i,2) = albomx - albclm(i,3) = albomx - albclm(i,4) = albomx - endif - enddo - return - end - subroutine qcmxice(glacir,amxice,len,me) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,kount,len,me - real (kind=kind_io8) glacir(len),amxice(len),per - if (me .eq. 0) write(6,*) 'qc of maximum ice extent' - kount=0 - do i=1,len - if(glacir(i).eq.1..and.amxice(i).eq.0.) then - amxice(i) = 0. - kount = kount + 1 - endif - enddo - if(kount.gt.0) then - per = float(kount) / float(len)*100. - if(me .eq. 0) write(6,*) ' max ice limit less than glacier' - &, ' coverage at ', kount, ' points ',per,'percent' - endif - return - end - subroutine qcsli(slianl,slifcs,len,me) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,kount,len,me - real (kind=kind_io8) slianl(len), slifcs(len),per - if (me .eq. 0) then - write(6,*) ' ' - write(6,*) 'qcsli' - endif - kount=0 - do i=1,len - if(slianl(i).eq.1..and.slifcs(i).eq.0.) then - kount = kount + 1 - slifcs(i) = 1. - endif - if(slianl(i).eq.0..and.slifcs(i).eq.1.) then - kount = kount + 1 - slifcs(i) = 0. - endif - if(slianl(i).eq.2..and.slifcs(i).eq.1.) then - kount = kount + 1 - slifcs(i) = 0. - endif - if(slianl(i).eq.1..and.slifcs(i).eq.2.) then - kount = kount + 1 - slifcs(i) = 1. - endif - enddo - if(kount.gt.0) then - per=float(kount)/float(len)*100. - if(me .eq. 0) then - write(6,*) ' inconsistency of slmask between forecast and', - & ' analysis corrected at ',kount, ' points ',per, - & 'percent' - endif - endif - return - end -! subroutine nntprt(data,imax,fact) -! real (kind=kind_io8) data(imax) -! ilast=0 -! i1=1 -! i2=80 -!1112 continue -! if(i2.ge.imax) then -! ilast=1 -! i2=imax -! endif -! write(6,*) ' ' -! do j=1,jmax -! write(6,1111) (nint(data(imax*(j-1)+i)*fact),i=i1,i2) -! enddo -! if(ilast.eq.1) return -! i1=i1+80 -! i2=i1+79 -! if(i2.ge.imax) then -! ilast=1 -! i2=imax -! endif -! go to 1112 -!1111 format(80i1) -! return -! end - subroutine qcbyfc(tsffcs,snofcs,qctsfs,qcsnos,qctsfi, - & len,lsoil,snoanl,aisanl,slianl,tsfanl,albanl, - & zoranl,smcanl, - & smcclm,tsfsmx,albomx,zoromx, me) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer kount,me,k,i,lsoil,len - real (kind=kind_io8) zoromx,per,albomx,qctsfi,qcsnos,qctsfs,tsfsmx - real (kind=kind_io8) tsffcs(len), snofcs(len) - real (kind=kind_io8) snoanl(len), aisanl(len), - & slianl(len), zoranl(len), - & tsfanl(len), albanl(len,4), - & smcanl(len,lsoil) - real (kind=kind_io8) smcclm(len,lsoil) -! - if (me .eq. 0) write(6,*) 'qc of snow and sea-ice analysis' -! -! qc of snow analysis -! -! questionable snow cover -! - kount = 0 - do i=1,len - if(slianl(i).gt.0..and. - & tsffcs(i).gt.qctsfs.and.snoanl(i).gt.0.) then - kount = kount + 1 - snoanl(i) = 0. - tsfanl(i) = tsffcs(i) - endif - enddo - if(kount.gt.0) then - per=float(kount)/float(len)*100. - if (me .eq. 0) then - write(6,*) ' guess surface temp .gt. ',qctsfs, - & ' but snow analysis indicates snow cover' - write(6,*) ' snow analysis set to zero', - & ' at ',kount, ' points ',per,'percent' - endif - endif -! -! questionable no snow cover -! - kount = 0 - do i=1,len - if(slianl(i).gt.0..and. - & snofcs(i).gt.qcsnos.and.snoanl(i).lt.0.) then - kount = kount + 1 - snoanl(i) = snofcs(i) - tsfanl(i) = tsffcs(i) - endif - enddo - if(kount.gt.0) then - per=float(kount)/float(len)*100. - if (me .eq. 0) then - write(6,*) ' guess snow depth .gt. ',qcsnos, - & ' but snow analysis indicates no snow cover' - write(6,*) ' snow analysis set to guess value', - & ' at ',kount, ' points ',per,'percent' - endif - endif -! -! questionable sea ice cover ! this qc is disable to correct error in -! surface temparature over observed sea ice points -! -! kount = 0 -! do i=1,len -! if(slianl(i).eq.2..and. -! & tsffcs(i).gt.qctsfi.and.aisanl(i).eq.1.) then -! kount = kount + 1 -! aisanl(i) = 0. -! slianl(i) = 0. -! tsfanl(i) = tsffcs(i) -! snoanl(i) = 0. -! zoranl(i) = zoromx -! albanl(i,1) = albomx -! albanl(i,2) = albomx -! albanl(i,3) = albomx -! albanl(i,4) = albomx -! do k=1,lsoil -! smcanl(i,k) = smcclm(i,k) -! enddo -! endif -! enddo -! if(kount.gt.0) then -! per=float(kount)/float(len)*100. -! if (me .eq. 0) then -! write(6,*) ' guess surface temp .gt. ',qctsfi, -! & ' but sea-ice analysis indicates sea-ice' -! write(6,*) ' sea-ice analysis set to zero', -! & ' at ',kount, ' points ',per,'percent' -! endif -! endif -! - return - end - subroutine setrmsk(kpds5,slmask,igaul,jgaul,wlon,rnlat, - & data,imax,jmax,rlnout,rltout,lmask,rslmsk - &, gaus,blno, blto, kgds1, kpds4, lbms) - use machine , only : kind_io8,kind_io4 - use sfccyc_module - implicit none - real (kind=kind_io8) blno,blto,wlon,rnlat,crit,data_max - integer i,j,ijmax,jgaul,igaul,kpds5,jmax,imax, kgds1, kspla - integer, intent(in) :: kpds4 - logical*1, intent(in) :: lbms(imax,jmax) - real*4 :: dummy(imax,jmax) - - real (kind=kind_io8) slmask(igaul,jgaul) - real (kind=kind_io8) data(imax,jmax),rslmsk(imax,jmax) - &, rlnout(imax), rltout(jmax) - real (kind=kind_io8) a(jmax), w(jmax), radi, dlat, dlon - logical lmask, gaus -! -! set the longitude and latitudes for the grib file -! - if (kgds1 .eq. 4) then ! grib file on gaussian grid - kspla=4 - call splat(kspla, jmax, a, w) -! - radi = 180.0 / (4.*atan(1.)) - do j=1,jmax - rltout(j) = acos(a(j)) * radi - enddo -! - if (rnlat .gt. 0.0) then - do j=1,jmax - rltout(j) = 90. - rltout(j) - enddo - else - do j=1,jmax - rltout(j) = -90. + rltout(j) - enddo - endif - elseif (kgds1 .eq. 0) then ! grib file on lat/lon grid - dlat = -(rnlat+rnlat) / float(jmax-1) - do j=1,jmax - rltout(j) = rnlat + (j-1) * dlat - enddo - else ! grib file on some other grid - call abort - endif - dlon = 360.0 / imax - do i=1,imax - rlnout(i) = wlon + (i-1)*dlon - enddo -! -! - ijmax = imax*jmax - rslmsk = 0. - -! TG3 MODS BEGIN - if(kpds5.eq.kpdtsf.and.imax.eq.138.and.jmax.eq.116 - & .and.kpds4.eq.128) then - -! print*,'turn off setrmsk for tg3' - lmask=.false. - elseif(kpds5.eq.kpdtsf) then -! TG3 MODS END - -! -! surface temperature -! -! lmask=.false. - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. -! -! bucket soil wetness -! - elseif(kpds5.eq.kpdwet) then - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. -! write(6,*) 'wet rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! snow depth -! - elseif(kpds5.eq.kpdsnd) then - if(kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask=.true. - else - lmask=.false. - end if -! -! snow liq equivalent depth -! - elseif(kpds5.eq.kpdsno) then - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. -! write(6,*) 'sno rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! soil moisture -! - elseif(kpds5.eq.kpdsmc) then - if(kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask=.true. - else - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. - endif -! -! surface roughness -! - elseif(kpds5.eq.kpdzor) then - do j=1,jmax - do i=1,imax - rslmsk(i,j)=data(i,j) - enddo - enddo - crit=9.9 - call rof01(rslmsk,ijmax,'lt',crit) - lmask=.true. -! write(6,*) 'zor rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! albedo -! -! elseif(kpds5.eq.kpdalb) then -! do j=1,jmax -! do i=1,imax -! rslmsk(i,j)=data(i,j) -! enddo -! enddo -! crit=99. -! call rof01(rslmsk,ijmax,'lt',crit) -! lmask=.true. -! write(6,*) 'alb rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! albedo -! -!cbosu new snowfree albedo database has bitmap, use it. - elseif(kpds5.eq.kpdalb(1)) then - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask = .true. - else ! no bitmap. old database has no water flag. - lmask=.false. - end if - elseif(kpds5.eq.kpdalb(2)) then -!cbosu - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask = .true. - else ! no bitmap. old database has no water flag. - lmask=.false. - end if - elseif(kpds5.eq.kpdalb(3)) then -!cbosu - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask = .true. - else ! no bitmap. old database has no water flag. - lmask=.false. - end if - elseif(kpds5.eq.kpdalb(4)) then -!cbosu - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask = .true. - else ! no bitmap. old database has no water flag. - lmask=.false. - end if -! -! vegetation fraction for albedo -! - elseif(kpds5.eq.kpdalf(1)) then -! rslmsk=data -! crit=0. -! call rof01(rslmsk,ijmax,'gt',crit) -! lmask=.true. - lmask=.false. - elseif(kpds5.eq.kpdalf(2)) then -! rslmsk=data -! crit=0. -! call rof01(rslmsk,ijmax,'gt',crit) -! lmask=.true. - lmask=.false. -! -! sea ice -! - elseif(kpds5.eq.kpdais) then - lmask=.false. -! call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat -! &, dlon, dlat, gaus, blno, blto) -! crit=0.5 -! call rof01(rslmsk,ijmax,'ge',crit) -! - data_max = 0.0 - do j=1,jmax - do i=1,imax - rslmsk(i,j) = data(i,j) - data_max= max(data_max,data(i,j)) - enddo - enddo - crit=1.0 - if (data_max .gt. crit) then - call rof01(rslmsk,ijmax,'gt',crit) - lmask=.true. - else - lmask=.false. - endif -! write(6,*) 'acn rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! deep soil temperature -! - elseif(kpds5.eq.kpdtg3) then - lmask=.false. -! call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat -! &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) -! crit=0.5 -! call rof01(rslmsk,ijmax,'ge',crit) -! lmask=.true. -! -! plant resistance -! -! elseif(kpds5.eq.kpdplr) then -! call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat -! &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) -! crit=0.5 -! call rof01(rslmsk,ijmax,'ge',crit) -! lmask=.true. -! -! write(6,*) 'plr rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! glacier points -! - elseif(kpds5.eq.kpdgla) then - lmask=.false. -! -! max ice extent -! - elseif(kpds5.eq.kpdmxi) then - lmask=.false. -! -! snow cover -! - elseif(kpds5.eq.kpdscv) then - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. -! write(6,*) 'scv rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! sea ice concentration -! - elseif(kpds5.eq.kpdacn) then - lmask=.false. - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) -! &, dlon, dlat, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. -! write(6,*) 'acn rslmsk' -! znnt=1. -! call nntprt(rslmsk,ijmax,znnt) -! -! vegetation cover -! - elseif(kpds5.eq.kpdveg) then -!cggg - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,jmax-j+1) = 1. ! need to flip grid in n/s direction - end if - enddo - enddo - lmask = .true. - else ! no bitmap, set mask the old way. - - call ga2la(slmask,igaul,jgaul,rslmsk,imax,jmax,wlon,rnlat - &, rlnout, rltout, gaus, blno, blto) - crit=0.5 - call rof01(rslmsk,ijmax,'ge',crit) - lmask=.true. - - end if -! -! soil type -! - elseif(kpds5.eq.kpdsot) then - - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo -! soil type is zero over water, use this to get a bitmap. - else - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - endif - lmask=.true. -! -! vegetation type -! - elseif(kpds5.eq.kpdvet) then - - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo -! veg type is zero over water, use this to get a bitmap. - else - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - endif - lmask=.true. -! -! these are for four new data type added by clu -- not sure its correct! -! - elseif(kpds5.eq.kpdvmn) then -! -!cggg greenness is zero over water, use this to get a bitmap. -! - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo -! - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - lmask=.true. -!cggg lmask=.false. -! - elseif(kpds5.eq.kpdvmx) then -! -!cggg greenness is zero over water, use this to get a bitmap. -! - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo -! - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - lmask=.true. -!cggg lmask=.false. -! - elseif(kpds5.eq.kpdslp) then -! -!cggg slope type is zero over water, use this to get a bitmap. -! - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo -! - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - lmask=.true. -!cggg lmask=.false. -! -!cbosu new maximum snow albedo database has bitmap - elseif(kpds5.eq.kpdabs) then - if (kpds4 == 192) then ! use the bitmap - rslmsk = 0. - do j = 1, jmax - do i = 1, imax - if (lbms(i,j)) then - rslmsk(i,j) = 1. - end if - enddo - enddo - lmask = .true. - else ! no bitmap. old database has zero over water - do j = 1, jmax - do i = 1, imax - rslmsk(i,j) = data(i,j) - enddo - enddo - crit=0.1 - call rof01(rslmsk,ijmax,'gt',crit) - lmask=.true. - end if - endif -! - return - end - subroutine ga2la(gauin,imxin,jmxin,regout,imxout,jmxout, - & wlon,rnlat,rlnout,rltout,gaus,blno, blto) - use machine , only : kind_io8,kind_io4 - implicit none - integer i1,i2,j2,ishft,i,jj,j1,jtem,jmxout,imxin,jmxin,imxout, - & j,iret - real (kind=kind_io8) alamd,dxin,aphi,x,sum1,sum2,y,dlati,wlon, - & rnlat,dxout,dphi,dlat,facns,tem,blno, - & blto -! -! interpolation from lat/lon grid to other lat/lon grid -! - real (kind=kind_io8) gauin (imxin,jmxin), regout(imxout,jmxout) - &, rlnout(imxout), rltout(jmxout) - logical gaus -! - real, allocatable :: gaul(:) - real (kind=kind_io8) ddx(imxout),ddy(jmxout) - integer iindx1(imxout), iindx2(imxout), - & jindx1(jmxout), jindx2(jmxout) - integer jmxsav,n,kspla - data jmxsav/0/ - save jmxsav, gaul, dlati - real (kind=kind_io8) radi - real (kind=kind_io8) a(jmxin), w(jmxin) -! -! - logical first - integer num_threads - data first /.true./ - save num_threads, first -! - integer len_thread_m, j1_t, j2_t, it - integer num_parthds -! - if (first) then - num_threads = num_parthds() - first = .false. - endif -! - if (jmxin .ne. jmxsav) then - if (jmxsav .gt. 0) deallocate (gaul, stat=iret) - allocate (gaul(jmxin)) - jmxsav = jmxin - if (gaus) then -cjfe call gaulat(gaul,jmxin) -cjfe -! - kspla=4 - call splat(kspla, jmxin, a, w) -! - radi = 180.0 / (4.*atan(1.)) - do n=1,jmxin - gaul(n) = acos(a(n)) * radi - enddo -cjfe - do j=1,jmxin - gaul(j) = 90. - gaul(j) - enddo - else - dlat = -2*blto / float(jmxin-1) - dlati = 1 / dlat - do j=1,jmxin - gaul(j) = blto + (j-1) * dlat - enddo - endif - endif -! -! - dxin = 360. / float(imxin ) -! - do i=1,imxout - alamd = rlnout(i) - i1 = floor((alamd-blno)/dxin) + 1 - ddx(i) = (alamd-blno)/dxin-(i1-1) - iindx1(i) = modulo(i1-1,imxin) + 1 - iindx2(i) = modulo(i1 ,imxin) + 1 - enddo -! -! - len_thread_m = (jmxout+num_threads-1) / num_threads -! - if (gaus) then -! -!$omp parallel do private(j1_t,j2_t,it,j1,j2,jj) -!$omp+private(aphi) -!$omp+shared(num_threads,len_thread_m) -!$omp+shared(jmxin,jmxout,gaul,rltout,jindx1,ddy) -! - do it=1,num_threads ! start of threaded loop ................... - j1_t = (it-1)*len_thread_m+1 - j2_t = min(j1_t+len_thread_m-1,jmxout) -! - j2=1 - do 40 j=j1_t,j2_t - aphi=rltout(j) - do 50 jj=1,jmxin - if(aphi.lt.gaul(jj)) go to 50 - j2=jj - go to 42 - 50 continue - 42 continue - if(j2.gt.2) go to 43 - j1=1 - j2=2 - go to 44 - 43 continue - if(j2.le.jmxin) go to 45 - j1=jmxin-1 - j2=jmxin - go to 44 - 45 continue - j1=j2-1 - 44 continue - jindx1(j)=j1 - jindx2(j)=j2 - ddy(j)=(aphi-gaul(j1))/(gaul(j2)-gaul(j1)) - 40 continue - enddo ! end of threaded loop ................... -!$omp end parallel do -! - else -!$omp parallel do private(j1_t,j2_t,it,j1,j2,jtem) -!$omp+private(aphi) -!$omp+shared(num_threads,len_thread_m) -!$omp+shared(jmxin,jmxout,gaul,rltout,jindx1,ddy,dlati,blto) -! - do it=1,num_threads ! start of threaded loop ................... - j1_t = (it-1)*len_thread_m+1 - j2_t = min(j1_t+len_thread_m-1,jmxout) -! - j2=1 - do 400 j=j1_t,j2_t - aphi=rltout(j) - jtem = (aphi - blto) * dlati + 1 - if (jtem .ge. 1 .and. jtem .lt. jmxin) then - j1 = jtem - j2 = j1 + 1 - ddy(j)=(aphi-gaul(j1))/(gaul(j2)-gaul(j1)) - elseif (jtem .eq. jmxin) then - j1 = jmxin - j2 = jmxin - ddy(j)=1.0 - else - j1 = 1 - j2 = 1 - ddy(j)=1.0 - endif -! - jindx1(j) = j1 - jindx2(j) = j2 - 400 continue - enddo ! end of threaded loop ................... -!$omp end parallel do - endif -! -! write(6,*) 'ga2la' -! write(6,*) 'iindx1' -! write(6,*) (iindx1(n),n=1,imxout) -! write(6,*) 'iindx2' -! write(6,*) (iindx2(n),n=1,imxout) -! write(6,*) 'jindx1' -! write(6,*) (jindx1(n),n=1,jmxout) -! write(6,*) 'jindx2' -! write(6,*) (jindx2(n),n=1,jmxout) -! write(6,*) 'ddy' -! write(6,*) (ddy(n),n=1,jmxout) -! write(6,*) 'ddx' -! write(6,*) (ddx(n),n=1,jmxout) -! -! -!$omp parallel do private(j1_t,j2_t,it,i,i1,i2) -!$omp+private(j,j1,j2,x,y) -!$omp+shared(num_threads,len_thread_m) -!$omp+shared(imxout,iindx1,jindx1,ddx,ddy,gauin,regout) -! - do it=1,num_threads ! start of threaded loop ................... - j1_t = (it-1)*len_thread_m+1 - j2_t = min(j1_t+len_thread_m-1,jmxout) -! - do j=j1_t,j2_t - y = ddy(j) - j1 = jindx1(j) - j2 = jindx2(j) - do i=1,imxout - x = ddx(i) - i1 = iindx1(i) - i2 = iindx2(i) - regout(i,j) = (1.-x)*((1.-y)*gauin(i1,j1) + y*gauin(i1,j2)) - & + x *((1.-y)*gauin(i2,j1) + y*gauin(i2,j2)) - enddo - enddo - enddo ! end of threaded loop ................... -!$omp end parallel do -! - sum1 = 0. - sum2 = 0. - do i=1,imxin - sum1 = sum1 + gauin(i,1) - sum2 = sum2 + gauin(i,jmxin) - enddo - sum1 = sum1 / float(imxin) - sum2 = sum2 / float(imxin) -! - if (gaus) then - if (rnlat .gt. 0.0) then - do i=1,imxout - regout(i, 1) = sum1 - regout(i,jmxout) = sum2 - enddo - else - do i=1,imxout - regout(i, 1) = sum2 - regout(i,jmxout) = sum1 - enddo - endif - else - if (blto .lt. 0.0) then - if (rnlat .gt. 0.0) then - do i=1,imxout - regout(i, 1) = sum2 - regout(i,jmxout) = sum1 - enddo - else - do i=1,imxout - regout(i, 1) = sum1 - regout(i,jmxout) = sum2 - enddo - endif - else - if (rnlat .lt. 0.0) then - do i=1,imxout - regout(i, 1) = sum2 - regout(i,jmxout) = sum1 - enddo - else - do i=1,imxout - regout(i, 1) = sum1 - regout(i,jmxout) = sum2 - enddo - endif - endif - endif -! - return - end - subroutine landtyp(vegtype,soiltype,slptype,slmask,len) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) vegtype(len),soiltype(len),slmask(len) - +, slptype(len) -! -! make sure that the soil type and veg type are non-zero over land -! - do i = 1, len - if (slmask(i) .eq. 1) then - if (vegtype(i) .eq. 0.) vegtype(i) = 7 - if (soiltype(i) .eq. 0.) soiltype(i) = 2 - if (slptype(i) .eq. 0.) slptype(i) = 1 - endif - enddo - return - end subroutine landtyp - subroutine gaulat(gaul,k) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer n,k - real (kind=kind_io8) radi - real (kind=kind_io8) a(k), w(k), gaul(k) -! - call splat(4, k, a, w) -! - radi = 180.0 / (4.*atan(1.)) - do n=1,k - gaul(n) = acos(a(n)) * radi - enddo -! -! print *,'gaussian lat (deg) for jmax=',k -! print *,(gaul(n),n=1,k) -! - return - 70 write(6,6000) - 6000 format(//5x,'error in gauaw'//) - stop - end -!----------------------------------------------------------------------- - subroutine anomint(tsfan0,tsfclm,tsfcl0,tsfanl,len) -! - use machine , only : kind_io8,kind_io4 - implicit none - integer i,len - real (kind=kind_io8) tsfanl(len), tsfan0(len), - & tsfclm(len), tsfcl0(len) -! -! time interpolation of anomalies -! add initial anomaly to date interpolated climatology -! - write(6,*) 'anomint' - do i=1,len - tsfanl(i) = tsfan0(i) - tsfcl0(i) + tsfclm(i) - enddo - return - end - subroutine clima(lugb,iy,im,id,ih,fh,len,lsoil, - & slmask,fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc,fnvegc, - & fnvetc,fnsotc, - & fnvmnc,fnvmxc,fnslpc,fnabsc, - & tsfclm,tsfcl2,wetclm,snoclm,zorclm,albclm,aisclm, - & tg3clm,cvclm ,cvbclm,cvtclm, - & cnpclm,smcclm,stcclm,sliclm,scvclm,acnclm,vegclm, - & vetclm,sotclm,alfclm, - & vmnclm,vmxclm,slpclm,absclm, - & kpdtsf,kpdwet,kpdsno,kpdzor,kpdalb,kpdais, - & kpdtg3,kpdscv,kpdacn,kpdsmc,kpdstc,kpdveg, - & kpdvet,kpdsot,kpdalf,tsfcl0, - & kpdvmn,kpdvmx,kpdslp,kpdabs, - & deltsfc, lanom - &, imsk, jmsk, slmskh, outlat, outlon - &, gaus, blno, blto, me,lprnt,iprnt, fnalbc2, ialb) -! - use machine , only : kind_io8,kind_io4 - implicit none - real (kind=kind_io8) rjday,wei1x,wei2x,rjdayh,wei2m,wei1m,wei1s, - & wei2s,fh,stcmon1s,blto,blno,deltsfc,rjdayh2 - real (kind=kind_io8) wei1y,wei2y - integer jdoy,jday,jh,jdow,mmm,mmp,mm,iret,monend,i,k,jm,jd,iy4, - & jy,mon1,is2,isx,kpd9,is1,l,nn,mon2,mon,is,kpdsno, - & kpdzor,kpdtsf,kpdwet,kpdscv,kpdacn,kpdais,kpdtg3,im,id, - & lugb,iy,len,lsoil,ih,kpdsmc,iprnt,me,m1,m2,k1,k2, - & kpdvet,kpdsot,kpdstc,kpdveg,jmsk,imsk,j,ialb - &, kpdvmn,kpdvmx,kpdslp,kpdabs,landice_cat - integer kpdalb(4), kpdalf(2) -! - character*500 fntsfc,fnwetc,fnsnoc,fnzorc,fnalbc,fnaisc, - & fntg3c,fnscvc,fnsmcc,fnstcc,fnacnc,fnvegc, - & fnvetc,fnsotc,fnalbc2 - &, fnvmnc,fnvmxc,fnslpc,fnabsc - real (kind=kind_io8) tsfclm(len),tsfcl2(len), - & wetclm(len),snoclm(len), - & zorclm(len),albclm(len,4),aisclm(len), - & tg3clm(len),acnclm(len), - & cvclm (len),cvbclm(len),cvtclm(len), - & cnpclm(len), - & smcclm(len,lsoil),stcclm(len,lsoil), - & sliclm(len),scvclm(len),vegclm(len), - & vetclm(len),sotclm(len),alfclm(len,2) - &, vmnclm(len),vmxclm(len),slpclm(len),absclm(len) - real (kind=kind_io8) slmskh(imsk,jmsk) - real (kind=kind_io8) outlat(len), outlon(len) -! - real (kind=kind_io8) slmask(len), tsfcl0(len) - real (kind=kind_io8), allocatable :: slmask_noice(:) -! - logical lanom, gaus, first -! -! set z0 based on sib vegetation type - real (kind=kind_io8) z0_sib(13) - data z0_sib /2.653, 0.826, 0.563, 1.089, 0.854, 0.856, - & 0.035, 0.238, 0.065, 0.076, 0.011, 0.125, - & 0.011 / -! set z0 based on igbp vegetation type - real (kind=kind_io8) z0_igbp_min(20), z0_igbp_max(20) - real (kind=kind_io8) z0_season(12) - data z0_igbp_min /1.089, 2.653, 0.854, 0.826, 0.800, 0.050, - & 0.030, 0.856, 0.856, 0.150, 0.040, 0.130, - & 1.000, 0.250, 0.011, 0.011, 0.001, 0.076, - & 0.050, 0.030/ - data z0_igbp_max /1.089, 2.653, 0.854, 0.826, 0.800, 0.050, - & 0.030, 0.856, 0.856, 0.150, 0.040, 0.130, - & 1.000, 0.250, 0.011, 0.011, 0.001, 0.076, - & 0.050, 0.030/ -! -! dayhf : julian day of the middle of each month -! - real (kind=kind_io8) dayhf(13) - data dayhf/ 15.5, 45.0, 74.5,105.0,135.5,166.0, - & 196.5,227.5,258.0,288.5,319.0,349.5,380.5/ -! - real (kind=kind_io8) fha(5) - real(4) fha4(5) - integer w3kindreal,w3kindint - integer ida(8),jda(8),ivtyp, kpd7 -! - real (kind=kind_io8), allocatable :: tsf(:,:),sno(:,:), - & zor(:,:),wet(:,:), - & ais(:,:), acn(:,:), scv(:,:), smc(:,:,:), - & tg3(:), alb(:,:,:), alf(:,:), - & vet(:), sot(:), tsf2(:), - & veg(:,:), stc(:,:,:) - &, vmn(:), vmx(:), slp(:), absm(:) -! - integer mon1s, mon2s, sea1s, sea2s, sea1, sea2, hyr1, hyr2 - data first/.true./ - data mon1s/0/, mon2s/0/, sea1s/0/, sea2s/0/ -! - save first, tsf, sno, zor, wet, ais, acn, scv, smc, tg3, - & alb, alf, vet, sot, tsf2, veg, stc, - & vmn, vmx, slp, absm, - & mon1s, mon2s, sea1s, sea2s, dayhf, k1, k2, m1, m2, - & landice_cat -! - logical lprnt -! - do i=1,len - tsfclm(i) = 0.0 - tsfcl2(i) = 0.0 - snoclm(i) = 0.0 - wetclm(i) = 0.0 - zorclm(i) = 0.0 - aisclm(i) = 0.0 - tg3clm(i) = 0.0 - acnclm(i) = 0.0 - cvclm(i) = 0.0 - cvbclm(i) = 0.0 - cvtclm(i) = 0.0 - cnpclm(i) = 0.0 - sliclm(i) = 0.0 - scvclm(i) = 0.0 - vmnclm(i) = 0.0 - vmxclm(i) = 0.0 - slpclm(i) = 0.0 - absclm(i) = 0.0 - enddo - do k=1,lsoil - do i=1,len - smcclm(i,k) = 0.0 - stcclm(i,k) = 0.0 - enddo - enddo - do k=1,4 - do i=1,len - albclm(i,k) = 0.0 - enddo - enddo - do k=1,2 - do i=1,len - alfclm(i,k) = 0.0 - enddo - enddo -! - iret = 0 - monend = 9999 -! - if (first) then -! -! allocate variables to be saved -! - allocate (tsf(len,2), sno(len,2), zor(len,2), - & wet(len,2), ais(len,2), acn(len,2), - & scv(len,2), smc(len,lsoil,2), - & tg3(len), alb(len,4,2), alf(len,2), - & vet(len), sot(len), tsf2(len), -!clu [+1l] add vmn, vmx, slp, abs - & vmn(len), vmx(len), slp(len), absm(len), - & veg(len,2), stc(len,lsoil,2)) -! -! get tsf climatology for the begining of the forecast -! - if (fh .gt. 0.0) then -!cbosu - if (me == 0) print*,'bosu fh gt 0' - - iy4=iy - if(iy.lt.101) iy4=1900+iy4 - fha=0 - ida=0 - jda=0 -! fha(2)=nint(fh) - ida(1)=iy - ida(2)=im - ida(3)=id - ida(5)=ih - call w3kind(w3kindreal,w3kindint) - if(w3kindreal == 4) then - fha4=fha - call w3movdat(fha4,ida,jda) - else - call w3movdat(fha,ida,jda) - endif - jy=jda(1) - jm=jda(2) - jd=jda(3) - jh=jda(5) - if (me .eq. 0) write(6,*) ' forecast jy,jm,jd,jh', - & jy,jm,jd,jh - jdow = 0 - jdoy = 0 - jday = 0 - call w3doxdat(jda,jdow,jdoy,jday) - rjday=jdoy+jda(5)/24. - if(rjday.lt.dayhf(1)) rjday=rjday+365. -! - if (me .eq. 0) write(6,*) 'forecast jy,jm,jd,jh=',jy,jm,jd,jh -! -! for monthly mean climatology -! - monend = 12 - do mm=1,monend - mmm=mm - mmp=mm+1 - if(rjday.ge.dayhf(mmm).and.rjday.lt.dayhf(mmp)) then - mon1=mmm - mon2=mmp - go to 10 - endif - enddo - print *,'wrong rjday',rjday - call abort - 10 continue - wei1m = (dayhf(mon2)-rjday)/(dayhf(mon2)-dayhf(mon1)) - wei2m = (rjday-dayhf(mon1))/(dayhf(mon2)-dayhf(mon1)) - if(mon2.eq.13) mon2=1 - if (me .eq. 0) print *,'rjday,mon1,mon2,wei1m,wei2m=', - & rjday,mon1,mon2,wei1m,wei2m -! -! read monthly mean climatology of tsf -! - kpd7 = -1 - do nn=1,2 - mon = mon1 - if (nn .eq. 2) mon = mon2 - call fixrdc(lugb,fntsfc,kpdtsf,kpd7,mon,slmask, - & tsf(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo -! -! tsf at the begining of forecast i.e. fh=0 -! - do i=1,len - tsfcl0(i) = wei1m * tsf(i,1) + wei2m * tsf(i,2) - enddo - endif - endif -! -! compute current jy,jm,jd,jh of forecast and the day of the year -! - iy4=iy - if(iy.lt.101) iy4=1900+iy4 - fha = 0 - ida = 0 - jda = 0 - fha(2) = nint(fh) - ida(1) = iy - ida(2) = im - ida(3) = id - ida(5) = ih - call w3kind(w3kindreal,w3kindint) - if(w3kindreal==4) then - fha4=fha - call w3movdat(fha4,ida,jda) - else - call w3movdat(fha,ida,jda) - endif - jy = jda(1) - jm = jda(2) - jd = jda(3) - jh = jda(5) -! if (me .eq. 0) write(6,*) ' forecast jy,jm,jd,jh,rjday=', -! & jy,jm,jd,jh,rjday - jdow = 0 - jdoy = 0 - jday = 0 - call w3doxdat(jda,jdow,jdoy,jday) - rjday = jdoy+jda(5)/24. - if(rjday.lt.dayhf(1)) rjday=rjday+365. - - if (me .eq. 0) write(6,*) ' forecast jy,jm,jd,jh,rjday=', - & jy,jm,jd,jh,rjday -! - if (me .eq. 0) write(6,*) 'forecast jy,jm,jd,jh=',jy,jm,jd,jh -! -! for monthly mean climatology -! - monend = 12 - do mm=1,monend - mmm=mm - mmp=mm+1 - if(rjday.ge.dayhf(mmm).and.rjday.lt.dayhf(mmp)) then - mon1=mmm - mon2=mmp - go to 20 - endif - enddo - print *,'wrong rjday',rjday - call abort - 20 continue - wei1m=(dayhf(mon2)-rjday)/(dayhf(mon2)-dayhf(mon1)) - wei2m=(rjday-dayhf(mon1))/(dayhf(mon2)-dayhf(mon1)) - if(mon2.eq.13) mon2=1 - if (me .eq. 0) print *,'rjday,mon1,mon2,wei1m,wei2m=', - & rjday,mon1,mon2,wei1m,wei2m -! -! for seasonal mean climatology -! - monend = 4 - is = im/3 + 1 - if (is.eq.5) is = 1 - do mm=1,monend - mmm = mm*3 - 2 - mmp = (mm+1)*3 - 2 - if(rjday.ge.dayhf(mmm).and.rjday.lt.dayhf(mmp)) then - sea1 = mmm - sea2 = mmp - go to 30 - endif - enddo - print *,'wrong rjday',rjday - call abort - 30 continue - wei1s = (dayhf(sea2)-rjday)/(dayhf(sea2)-dayhf(sea1)) - wei2s = (rjday-dayhf(sea1))/(dayhf(sea2)-dayhf(sea1)) - if(sea2.eq.13) sea2=1 - if (me .eq. 0) print *,'rjday,sea1,sea2,wei1s,wei2s=', - & rjday,sea1,sea2,wei1s,wei2s -! -! for summer and winter values (maximum and minimum). -! - monend = 2 - is = im/6 + 1 - if (is.eq.3) is = 1 - do mm=1,monend - mmm = mm*6 - 5 - mmp = (mm+1)*6 - 5 - if(rjday.ge.dayhf(mmm).and.rjday.lt.dayhf(mmp)) then - hyr1 = mmm - hyr2 = mmp - go to 31 - endif - enddo - print *,'wrong rjday',rjday - call abort - 31 continue - wei1y = (dayhf(hyr2)-rjday)/(dayhf(hyr2)-dayhf(hyr1)) - wei2y = (rjday-dayhf(hyr1))/(dayhf(hyr2)-dayhf(hyr1)) - if(hyr2.eq.13) hyr2=1 - if (me .eq. 0) print *,'rjday,hyr1,hyr2,wei1y,wei2y=', - & rjday,hyr1,hyr2,wei1y,wei2y -! -! start reading in climatology and interpolate to the date -! - first_time : if (first) then -!cbosu - if (me == 0) print*,'bosu first time thru' -! -! annual mean climatology -! -! fraction of vegetation field for albedo -- there are two -! fraction fields in this version: strong zeneith angle dependent -! and weak zeneith angle dependent -! - kpd9 = -1 -cjfe - alf=0. -cjfe - - kpd7=-1 - if (ialb == 1) then -!cbosu still need facsf and facwf. read them from the production -!cbosu file -!cbosu - call fixrdc(lugb,fnalbc2,kpdalf(1),kpd7,kpd9,slmask - &, alf,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - else - call fixrdc(lugb,fnalbc,kpdalf(1),kpd7,kpd9,slmask - &, alf,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif - do i = 1, len - if(slmask(i).eq.1.) then - alf(i,2) = 100. - alf(i,1) - endif - enddo -! -! deep soil temperature -! - if(fntg3c(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fntg3c,kpdtg3,kpd7,kpd9,slmask, - & tg3,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif -! -! vegetation type -! -! when using the new gldas soil moisture climatology, a veg type -! dataset must be selected. -! - if(fnvetc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnvetc,kpdvet,kpd7,kpd9,slmask, - & vet,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological vegetation', - & ' type read in.' - landice_cat=13 - if (maxval(vet)> 13.0) landice_cat=15 - elseif(index(fnsmcc,'soilmgldas') /= 0) then ! new soil moisture climo - if (me .eq. 0) write(6,*) 'fatal error: must choose' - if (me .eq. 0) write(6,*) 'climatological veg type when' - if (me .eq. 0) write(6,*) 'using new gldas soil moisture.' - call abort - endif -! -! soil type -! - if(fnsotc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnsotc,kpdsot,kpd7,kpd9,slmask, - & sot,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological soil type read in.' - endif - -! -! min vegetation cover -! - if(fnvmnc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnvmnc,kpdvmn,kpd7,kpd9,slmask, - & vmn,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological shdmin read in.' - endif -! -! max vegetation cover -! - if(fnvmxc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnvmxc,kpdvmx,kpd7,kpd9,slmask, - & vmx,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological shdmax read in.' - endif -! -! slope type -! - if(fnslpc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnslpc,kpdslp,kpd7,kpd9,slmask, - & slp,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological slope read in.' - endif -! -! max snow albeod -! - if(fnabsc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnabsc,kpdabs,kpd7,kpd9,slmask, - & absm,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological snoalb read in.' - endif -!clu ---------------------------------------------------------------------- -! - is1 = sea1/3 + 1 - is2 = sea2/3 + 1 - if (is1 .eq. 5) is1 = 1 - if (is2 .eq. 5) is2 = 1 - do nn=1,2 -! -! seasonal mean climatology - if(nn.eq.1) then - isx=is1 - else - isx=is2 - endif - if(isx.eq.1) kpd9 = 12 - if(isx.eq.2) kpd9 = 3 - if(isx.eq.3) kpd9 = 6 - if(isx.eq.4) kpd9 = 9 -! -! seasonal mean climatology -! -! albedo -! there are four albedo fields in this version: -! two for strong zeneith angle dependent (visible and near ir) -! and two for weak zeneith angle dependent (vis ans nir) -! - if (ialb == 0) then - kpd7=-1 - do k = 1, 4 - call fixrdc(lugb,fnalbc,kpdalb(k),kpd7,kpd9,slmask, - & alb(1,k,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - endif -! -! monthly mean climatology -! - mon = mon1 - if (nn .eq. 2) mon = mon2 -!cbosu -!cbosu new snowfree albedo database is monthly. - if (ialb == 1) then - kpd7=-1 - do k = 1, 4 - call fixrdc(lugb,fnalbc,kpdalb(k),kpd7,mon,slmask, - & alb(1,k,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - endif - -! if(lprnt) print *,' mon1=',mon1,' mon2=',mon2 -! -! tsf at the current time t -! - kpd7=-1 - call fixrdc(lugb,fntsfc,kpdtsf,kpd7,mon,slmask, - & tsf(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) -! if(lprnt) print *,' tsf=',tsf(iprnt,nn),' nn=',nn -! -! tsf...at time t-deltsfc -! -! fh2 = fh - deltsfc -! if (fh2 .gt. 0.0) then -! call fixrd(lugb,fntsfc,kpdtsf,lclim,slmask, -! & iy,im,id,ih,fh2,tsfcl2,len,iret -! &, imsk, jmsk, slmskh, gaus,blno, blto -! &, outlat, outlon, me) -! else -! do i=1,len -! tsfcl2(i) = tsfclm(i) -! enddo -! endif -! -! soil wetness -! - if(fnwetc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnwetc,kpdwet,kpd7,mon,slmask, - & wet(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - elseif(fnsmcc(1:8).ne.' ') then - if (index(fnsmcc,'global_soilmcpc.1x1.grb') /= 0) then ! the old climo data - kpd7=-1 - call fixrdc(lugb,fnsmcc,kpdsmc,kpd7,mon,slmask, - & smc(1,lsoil,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - do l=1,lsoil-1 - do i = 1, len - smc(i,l,nn) = smc(i,lsoil,nn) - enddo - enddo - else ! the new gldas data. it does not have data defined at landice - ! points. so for efficiency, don't have fixrdc try to - ! find a value at landice points as defined by the vet type (vet). - allocate(slmask_noice(len)) - slmask_noice=1.0 - do i = 1, len - if (nint(vet(i)) < 1 .or. - & nint(vet(i)) == landice_cat) then - slmask_noice(i) = 0.0 - endif - enddo - do k = 1, lsoil - if (k==1) kpd7=10 ! 0_10 cm (pds octs 11 and 12) - if (k==2) kpd7=2600 ! 10_40 cm - if (k==3) kpd7=10340 ! 40_100 cm - if (k==4) kpd7=25800 ! 100_200 cm - call fixrdc(lugb,fnsmcc,kpdsmc,kpd7,mon,slmask_noice, - & smc(1,k,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - deallocate(slmask_noice) - endif - else - write(6,*) 'climatological soil wetness file not given' - call abort - endif -! -! soil temperature -! - if(fnstcc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnstcc,kpdstc,kpd7,mon,slmask, - & stc(1,lsoil,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - do l=1,lsoil-1 - do i = 1, len - stc(i,l,nn) = stc(i,lsoil,nn) - enddo - enddo - endif -! -! sea ice -! - kpd7=-1 - if(fnacnc(1:8).ne.' ') then - call fixrdc(lugb,fnacnc,kpdacn,kpd7,mon,slmask, - & acn(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - elseif(fnaisc(1:8).ne.' ') then - call fixrdc(lugb,fnaisc,kpdais,kpd7,mon,slmask, - & ais(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - else - write(6,*) 'climatological ice cover file not given' - call abort - endif -! -! snow depth -! - kpd7=-1 - call fixrdc(lugb,fnsnoc,kpdsno,kpd7,mon,slmask, - & sno(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) -! -! snow cover -! - if(fnscvc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnscvc,kpdscv,kpd7,mon,slmask, - & scv(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - write(6,*) 'climatological snow cover read in.' - endif -! -! surface roughness -! - if(fnzorc(1:3) == 'sib') then - if (me == 0) then - write(6,*) 'roughness length to be set from sib veg type' - endif - elseif(fnzorc(1:4) == 'igbp') then - if (me == 0) then - write(6,*) 'roughness length to be set from igbp veg type' - endif - else - kpd7=-1 - call fixrdc(lugb,fnzorc,kpdzor,kpd7,mon,slmask, - & zor(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif -! - do i = 1, len -! set clouds climatology to zero - cvclm (i) = 0. - cvbclm(i) = 0. - cvtclm(i) = 0. -! - cnpclm(i) = 0. !set canopy water content climatology to zero - enddo -! -! vegetation cover -! - if(fnvegc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnvegc,kpdveg,kpd7,mon,slmask, - & veg(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - if (me .eq. 0) write(6,*) 'climatological vegetation', - & ' cover read in for mon=',mon - endif - - enddo -! - mon1s = mon1 ; mon2s = mon2 ; sea1s = sea1 ; sea2s = sea2 -! - if (me .eq. 0) print *,' mon1s=',mon1s,' mon2s=',mon2s - &,' sea1s=',sea1s,' sea2s=',sea2s -! - k1 = 1 ; k2 = 2 - m1 = 1 ; m2 = 2 -! - first = .false. - endif first_time -! -! to get tsf climatology at the previous call to sfccycle -! -! if (fh-deltsfc >= 0.0) then - rjdayh = rjday - deltsfc/24.0 -! else -! rjdayh = rjday -! endif -! if(lprnt) print *,' rjdayh=',rjdayh,' mon1=',mon1,' mon2=' -! &,mon2,' mon1s=',mon1s,' mon2s=',mon2s,' k1=',k1,' k2=',k2 - if (rjdayh .ge. dayhf(mon1)) then - if (mon2 .eq. 1) mon2 = 13 - wei1x = (dayhf(mon2)-rjdayh)/(dayhf(mon2)-dayhf(mon1)) - wei2x = 1.0 - wei1x - if (mon2 .eq. 13) mon2 = 1 - else - rjdayh2 = rjdayh - if (rjdayh .lt. dayhf(1)) rjdayh2 = rjdayh2 + 365.0 - if (mon1s .eq. mon1) then - mon1s = mon1 - 1 - if (mon1s .eq. 0) mon1s = 12 - k2 = k1 - k1 = mod(k2,2) + 1 - mon = mon1s - kpd7=-1 - call fixrdc(lugb,fntsfc,kpdtsf,kpd7,mon,slmask, - & tsf(1,k1),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif - mon2s = mon1s + 1 -! if (mon2s .eq. 1) mon2s = 13 - wei1x = (dayhf(mon2s)-rjdayh2)/(dayhf(mon2s)-dayhf(mon1s)) - wei2x = 1.0 - wei1x - if (mon2s .eq. 13) mon2s = 1 - do i=1,len - tsf2(i) = wei1x * tsf(i,k1) + wei2x * tsf(i,k2) - enddo - endif -! -!cbosu new albedo is monthly - if (sea1 .ne. sea1s) then - sea1s = sea1 - sea2s = sea2 - m1 = mod(m1,2) + 1 - m2 = mod(m1,2) + 1 -! -! seasonal mean climatology -! - isx = sea2/3 + 1 - if (isx .eq. 5) isx = 1 - if(isx.eq.1) kpd9 = 12 - if(isx.eq.2) kpd9 = 3 - if(isx.eq.3) kpd9 = 6 - if(isx.eq.4) kpd9 = 9 -! -! albedo -! there are four albedo fields in this version: -! two for strong zeneith angle dependent (visible and near ir) -! and two for weak zeneith angle dependent (vis ans nir) -! -!cbosu - if (ialb == 0) then - kpd7=-1 - do k = 1, 4 - call fixrdc(lugb,fnalbc,kpdalb(k),kpd7,kpd9,slmask - &, alb(1,k,m2),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - endif - - endif - - if (mon1 .ne. mon1s) then - - mon1s = mon1 - mon2s = mon2 - k1 = mod(k1,2) + 1 - k2 = mod(k1,2) + 1 -! -! monthly mean climatology -! - mon = mon2 - nn = k2 -!cbosu - if (ialb == 1) then - if (me == 0) print*,'bosu 2nd time in clima for month ', - & mon, k1,k2 - kpd7=-1 - do k = 1, 4 - call fixrdc(lugb,fnalbc,kpdalb(k),kpd7,mon,slmask, - & alb(1,k,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - endif -! -! tsf at the current time t -! - kpd7=-1 - call fixrdc(lugb,fntsfc,kpdtsf,kpd7,mon,slmask, - & tsf(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) -! -! soil wetness -! - if(fnwetc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnwetc,kpdwet,kpd7,mon,slmask, - & wet(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - elseif(fnsmcc(1:8).ne.' ') then - if (index(fnsmcc,'global_soilmcpc.1x1.grb') /= 0) then ! the old climo data - kpd7=-1 - call fixrdc(lugb,fnsmcc,kpdsmc,kpd7,mon,slmask, - & smc(1,lsoil,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - do l=1,lsoil-1 - do i = 1, len - smc(i,l,nn) = smc(i,lsoil,nn) - enddo - enddo - else ! the new gldas data. it does not have data defined at landice - ! points. so for efficiency, don't have fixrdc try to - ! find a value at landice points as defined by the vet type (vet). - allocate(slmask_noice(len)) - slmask_noice=1.0 - do i = 1, len - if (nint(vet(i)) < 1 .or. - & nint(vet(i)) == landice_cat) then - slmask_noice(i) = 0.0 - endif - enddo - do k = 1, lsoil - if (k==1) kpd7=10 ! 0_10 cm (pds octs 11 and 12) - if (k==2) kpd7=2600 ! 10_40 cm - if (k==3) kpd7=10340 ! 40_100 cm - if (k==4) kpd7=25800 ! 100_200 cm - call fixrdc(lugb,fnsmcc,kpdsmc,kpd7,mon,slmask_noice, - & smc(1,k,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - enddo - deallocate(slmask_noice) - endif - else - write(6,*) 'climatological soil wetness file not given' - call abort - endif -! -! sea ice -! - kpd7=-1 - if(fnacnc(1:8).ne.' ') then - call fixrdc(lugb,fnacnc,kpdacn,kpd7,mon,slmask, - & acn(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - elseif(fnaisc(1:8).ne.' ') then - call fixrdc(lugb,fnaisc,kpdais,kpd7,mon,slmask, - & ais(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - else - write(6,*) 'climatological ice cover file not given' - call abort - endif -! -! snow depth -! - kpd7=-1 - call fixrdc(lugb,fnsnoc,kpdsno,kpd7,mon,slmask, - & sno(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) -! -! snow cover -! - if(fnscvc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnscvc,kpdscv,kpd7,mon,slmask, - & scv(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - write(6,*) 'climatological snow cover read in.' - endif -! -! surface roughness -! - if(fnzorc(1:3) == 'sib') then - if (me == 0) then - write(6,*) 'roughness length to be set from sib veg type' - endif - elseif(fnzorc(1:4) == 'igbp') then - if (me == 0) then - write(6,*) 'roughness length to be set from igbp veg type' - endif - else - kpd7=-1 - call fixrdc(lugb,fnzorc,kpdzor,kpd7,mon,slmask, - & zor(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - endif -! -! vegetation cover -! - if(fnvegc(1:8).ne.' ') then - kpd7=-1 - call fixrdc(lugb,fnvegc,kpdveg,kpd7,mon,slmask, - & veg(1,nn),len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) -! if (me .eq. 0) write(6,*) 'climatological vegetation', -! & ' cover read in for mon=',mon - endif -! - endif -! -! now perform the time interpolation -! -! when chosen, set the z0 based on the vegetation type. -! for this option to work, namelist variable fnvetc must be -! set to point at the proper vegetation type file. - if(fnzorc(1:3) == 'sib') then - if(fnvetc(1:4) == ' ') then - if (me==0) write(6,*) "must choose sib veg type climo file" - call abort - endif - zorclm = 0.0 - do i=1,len - ivtyp=nint(vet(i)) - if (ivtyp >= 1 .and. ivtyp <= 13) then - zorclm(i) = z0_sib(ivtyp) - endif - enddo - elseif(fnzorc(1:4) == 'igbp') then - if(fnvetc(1:4) == ' ') then - if (me==0) write(6,*) "must choose igbp veg type climo file" - call abort - endif - zorclm = 0.0 - do i=1,len - ivtyp=nint(vet(i)) - if (ivtyp >= 1 .and. ivtyp <= 20) then - z0_season(1) = z0_igbp_min(ivtyp) - z0_season(7) = z0_igbp_max(ivtyp) - if(outlat(i) < 0.0)then - zorclm(i) = wei1y * z0_season(hyr2) + - & wei2y *z0_season(hyr1) - else - zorclm(i) = wei1y * z0_season(hyr1) + - & wei2y *z0_season(hyr2) - endif - endif - enddo - else - do i=1,len - zorclm(i) = wei1m * zor(i,k1) + wei2m * zor(i,k2) - enddo - endif -! - do i=1,len - tsfclm(i) = wei1m * tsf(i,k1) + wei2m * tsf(i,k2) - snoclm(i) = wei1m * sno(i,k1) + wei2m * sno(i,k2) - cvclm(i) = 0.0 - cvbclm(i) = 0.0 - cvtclm(i) = 0.0 - cnpclm(i) = 0.0 - tsfcl2(i) = tsf2(i) - enddo -! if(lprnt) print *,' tsfclm=',tsfclm(iprnt),' wei1m=',wei1m -! &,' wei2m=',wei2m,' tsfk12=',tsf(iprnt,k1),tsf(iprnt,k2) -! - if (fh .eq. 0.0) then - do i=1,len - tsfcl0(i) = tsfclm(i) - enddo - endif - if (rjdayh .ge. dayhf(mon1)) then - do i=1,len - tsf2(i) = wei1x * tsf(i,k1) + wei2x * tsf(i,k2) - tsfcl2(i) = tsf2(i) - enddo - endif -! if(lprnt) print *,' tsf2=',tsf2(iprnt),' wei1x=',wei1x -! &,' wei2x=',wei2x,' tsfk12=',tsf(iprnt,k1),tsf(iprnt,k2) -! &,' mon1s=',mon1s,' mon2s=',mon2s -! &,' slmask=',slmask(iprnt) -! - if(fnacnc(1:8).ne.' ') then - do i=1,len - acnclm(i) = wei1m * acn(i,k1) + wei2m * acn(i,k2) - enddo - elseif(fnaisc(1:8).ne.' ') then - do i=1,len - aisclm(i) = wei1m * ais(i,k1) + wei2m * ais(i,k2) - enddo - endif -! - if(fnwetc(1:8).ne.' ') then - do i=1,len - wetclm(i) = wei1m * wet(i,k1) + wei2m * wet(i,k2) - enddo - elseif(fnsmcc(1:8).ne.' ') then - do k=1,lsoil - do i=1,len - smcclm(i,k) = wei1m * smc(i,k,k1) + wei2m * smc(i,k,k2) - enddo - enddo - endif -! - if(fnscvc(1:8).ne.' ') then - do i=1,len - scvclm(i) = wei1m * scv(i,k1) + wei2m * scv(i,k2) - enddo - endif -! - if(fntg3c(1:8).ne.' ') then - do i=1,len - tg3clm(i) = tg3(i) - enddo - elseif(fnstcc(1:8).ne.' ') then - do k=1,lsoil - do i=1,len - stcclm(i,k) = wei1m * stc(i,k,k1) + wei2m * stc(i,k,k2) - enddo - enddo - endif -! - if(fnvegc(1:8).ne.' ') then - do i=1,len - vegclm(i) = wei1m * veg(i,k1) + wei2m * veg(i,k2) - enddo - endif -! - if(fnvetc(1:8).ne.' ') then - do i=1,len - vetclm(i) = vet(i) - enddo - endif -! - if(fnsotc(1:8).ne.' ') then - do i=1,len - sotclm(i) = sot(i) - enddo - endif - - -!clu ---------------------------------------------------------------------- -! - if(fnvmnc(1:8).ne.' ') then - do i=1,len - vmnclm(i) = vmn(i) - enddo - endif -! - if(fnvmxc(1:8).ne.' ') then - do i=1,len - vmxclm(i) = vmx(i) - enddo - endif -! - if(fnslpc(1:8).ne.' ') then - do i=1,len - slpclm(i) = slp(i) - enddo - endif -! - if(fnabsc(1:8).ne.' ') then - do i=1,len - absclm(i) = absm(i) - enddo - endif -!clu ---------------------------------------------------------------------- -! -!cbosu diagnostic print - if (me == 0) print*,'monthly albedo weights are ', - & wei1m,' for k', k1, wei2m, ' for k', k2 - - if (ialb == 1) then - do k=1,4 - do i=1,len - albclm(i,k) = wei1m * alb(i,k,k1) + wei2m * alb(i,k,k2) - enddo - enddo - else - do k=1,4 - do i=1,len - albclm(i,k) = wei1s * alb(i,k,m1) + wei2s * alb(i,k,m2) - enddo - enddo - endif -! - do k=1,2 - do i=1,len - alfclm(i,k) = alf(i,k) - enddo - enddo -! -! end of climatology reads -! - return - end subroutine clima - subroutine fixrdc(lugb,fngrib,kpds5,kpds7,mon,slmask, - & gdata,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - use machine , only : kind_io8,kind_io4 - use sfccyc_module, only : mdata - implicit none - integer imax,jmax,ijmax,i,j,n,jret,inttyp,iret,imsk, - & jmsk,len,lugb,kpds5,mon,lskip,lgrib,ndata,lugi,me,kmami - &, jj,w3kindreal,w3kindint - real (kind=kind_io8) wlon,elon,rnlat,dlat,dlon,rslat,blno,blto -! -! read in grib climatology files and interpolate to the input -! grid. grib files should allow all the necessary parameters -! to be extracted from the description records. -! -! - character*500 fngrib -! character*80 fngrib, asgnstr -! - real (kind=kind_io8) slmskh(imsk,jmsk) -! - real (kind=kind_io8) gdata(len), slmask(len) - real (kind=kind_io8), allocatable :: data(:,:), rslmsk(:,:) - real (kind=kind_io8) data8(mdata) - real (kind=kind_io4), allocatable :: data4(:) - real (kind=kind_io8), allocatable :: rlngrb(:), rltgrb(:) -! - logical lmask, yr2kc, gaus, ijordr - logical*1 lbms(mdata) -! - integer, intent(in) :: kpds7 - integer kpds(1000),kgds(1000) - integer jpds(1000),jgds(1000), kpds0(1000) - real (kind=kind_io8) outlat(len), outlon(len) -! -! integer imax_sv, jmax_sv, wlon_sv, rnlat_sv, kpds1_sv -! date imax_sv/0/, jmax_sv/0/, wlon_sv/999.0/, rnlat_sv/999.0/ -! &, kpds1_sv/-1/ -! save imax_sv, jmax_sv, wlon_sv, rnlat_sv, kpds1_sv -! &, rlngrb, rltgrb -! - iret = 0 -! - if (me .eq. 0) write(6,*) ' in fixrdc for mon=',mon - &,' fngrib=',trim(fngrib) -! - close(lugb) - call baopenr(lugb,fngrib,iret) - if (iret .ne. 0) then - write(6,*) ' error in opening file ',trim(fngrib) - print *,'error in opening file ',trim(fngrib) - call abort - endif - if (me .eq. 0) write(6,*) ' file ',trim(fngrib), - & ' opened. unit=',lugb -! - lugi = 0 -! - lskip = -1 - jpds = -1 - jgds = -1 - jpds(5) = kpds5 - jpds(7) = kpds7 - kpds = jpds - call getgbh(lugb,lugi,lskip,jpds,jgds,lgrib,ndata, - & lskip,kpds,kgds,iret) - if (me .eq. 0) then - write(6,*) ' first grib record.' - write(6,*) ' kpds( 1-10)=',(kpds(j),j= 1,10) - write(6,*) ' kpds(11-20)=',(kpds(j),j=11,20) - write(6,*) ' kpds(21- )=',(kpds(j),j=21,22) - endif - yr2kc = (kpds(8) / 100) .gt. 0 - kpds0 = jpds - kpds0(4) = -1 - kpds0(18) = -1 - if(iret.ne.0) then - write(6,*) ' error in getgbh. iret: ', iret - if (iret==99) write(6,*) ' field not found.' - call abort - endif -! -! handling climatology file -! - lskip = -1 - n = 0 - jpds = kpds0 - jpds(9) = mon - if(jpds(9).eq.13) jpds(9) = 1 - call w3kind(w3kindreal,w3kindint) - if(w3kindreal==8) then - call getgb(lugb,lugi,mdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data8,jret) - else if (w3kindreal==4) then - allocate(data4(mdata)) - call getgb(lugb,lugi,mdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data4,jret) - data8 = data4 - deallocate(data4) - endif - if (me .eq. 0) write(6,*) ' input grib file dates=', - & (kpds(i),i=8,11) - if(jret.eq.0) then - if(ndata.eq.0) then - write(6,*) ' error in getgb' - write(6,*) ' kpds=',kpds - write(6,*) ' kgds=',kgds - call abort - endif - imax=kgds(2) - jmax=kgds(3) - ijmax=imax*jmax - allocate (data(imax,jmax)) - do j=1,jmax - jj = (j-1)*imax - do i=1,imax - data(i,j) = data8(jj+i) - enddo - enddo - if (me .eq. 0) write(6,*) 'imax,jmax,ijmax=',imax,jmax,ijmax - else - write(6,*) ' error in getgb - jret=', jret - call abort - endif -! -! if (me == 0) then -! write(6,*) ' maxmin of input as is' -! kmami=1 -! call maxmin(data(1,1),ijmax,kmami) -! endif -! - call getarea(kgds,dlat,dlon,rslat,rnlat,wlon,elon,ijordr,me) - if (me == 0) then - write(6,*) 'imax,jmax,ijmax,dlon,dlat,ijordr,wlon,rnlat=' - write(6,*) imax,jmax,ijmax,dlon,dlat,ijordr,wlon,rnlat - endif - call subst(data,imax,jmax,dlon,dlat,ijordr) -! -! first get slmask over input grid -! - allocate (rlngrb(imax), rltgrb(jmax)) - allocate (rslmsk(imax,jmax)) - - call setrmsk(kpds5,slmskh,imsk,jmsk,wlon,rnlat, - & data,imax,jmax,rlngrb,rltgrb,lmask,rslmsk - &, gaus,blno, blto, kgds(1), kpds(4), lbms) -! write(6,*) ' kpds5=',kpds5,' lmask=',lmask -! - inttyp = 0 - if(kpds5.eq.225) inttyp = 1 - if(kpds5.eq.230) inttyp = 1 - if(kpds5.eq.236) inttyp = 1 - if(kpds5.eq.224) inttyp = 1 - if (me .eq. 0) then - if(inttyp.eq.1) print *, ' nearest grid point used' - &, ' kpds5=',kpds5, ' lmask = ',lmask - endif -! - call la2ga(data,imax,jmax,rlngrb,rltgrb,wlon,rnlat,inttyp, - & gdata,len,lmask,rslmsk,slmask - &, outlat, outlon,me) -! - deallocate (rlngrb, stat=iret) - deallocate (rltgrb, stat=iret) - deallocate (data, stat=iret) - deallocate (rslmsk, stat=iret) - call baclose(lugb,iret) -! - return - end - subroutine fixrda(lugb,fngrib,kpds5,slmask, - & iy,im,id,ih,fh,gdata,len,iret - &, imsk, jmsk, slmskh, gaus,blno, blto - &, outlat, outlon, me) - use machine , only : kind_io8,kind_io4 - use sfccyc_module, only : mdata - implicit none - integer nrepmx,nvalid,imo,iyr,idy,jret,ihr,nrept,lskip,lugi, - & lgrib,j,ndata,i,inttyp,jmax,imax,ijmax,ij,jday,len,iret, - & jmsk,imsk,ih,kpds5,lugb,iy,id,im,jh,jd,jdoy,jdow,jm,me, - & monend,jy,iy4,kmami,iret2,jj,w3kindreal,w3kindint - real (kind=kind_io8) rnlat,rslat,wlon,elon,dlon,dlat,fh,blno, - & rjday,blto -! -! read in grib climatology/analysis files and interpolate to the input -! dates and the grid. grib files should allow all the necessary parameters -! to be extracted from the description records. -! -! nrepmx: max number of days for going back date search -! nvalid: analysis later than (current date - nvalid) is regarded as -! valid for current analysis -! - parameter(nrepmx=15, nvalid=4) -! - character*500 fngrib -! character*80 fngrib, asgnstr -! - real (kind=kind_io8) slmskh(imsk,jmsk) -! - real (kind=kind_io8) gdata(len), slmask(len) - real (kind=kind_io8), allocatable :: data(:,:),rslmsk(:,:) - real (kind=kind_io8) data8(mdata) - real (kind=kind_io4), allocatable :: data4(:) - real (kind=kind_io8), allocatable :: rlngrb(:), rltgrb(:) -! - logical lmask, yr2kc, gaus, ijordr - logical*1 lbms(mdata) -! - integer kpds(1000),kgds(1000) - integer jpds(1000),jgds(1000), kpds0(1000) - real (kind=kind_io8) outlat(len), outlon(len) -! -! dayhf : julian day of the middle of each month -! - real (kind=kind_io8) dayhf(13) - data dayhf/ 15.5, 45.0, 74.5,105.0,135.5,166.0, - & 196.5,227.5,258.0,288.5,319.0,349.5,380.5/ -! -! mjday : number of days in a month -! - integer mjday(12) - data mjday/31,28,31,30,31,30,31,31,30,31,30,31/ -! - real (kind=kind_io8) fha(5) - real(4) fha4(5) - integer ida(8),jda(8) -! - iret = 0 - monend = 9999 -! -! compute jy,jm,jd,jh of forecast and the day of the year -! - iy4=iy - if(iy.lt.101) iy4=1900+iy4 - fha=0 - ida=0 - jda=0 - fha(2)=nint(fh) - ida(1)=iy - ida(2)=im - ida(3)=id - ida(5)=ih - call w3kind(w3kindreal,w3kindint) - if(w3kindreal==4) then - fha4=fha - call w3movdat(fha4,ida,jda) - else - call w3movdat(fha,ida,jda) - endif - jy=jda(1) - jm=jda(2) - jd=jda(3) - jh=jda(5) -! if (me .eq. 0) write(6,*) ' forecast jy,jm,jd,jh,rjday=', -! & jy,jm,jd,jh,rjday - jdow = 0 - jdoy = 0 - jday = 0 - call w3doxdat(jda,jdow,jdoy,jday) - rjday=jdoy+jda(5)/24. - if(rjday.lt.dayhf(1)) rjday=rjday+365. - - if (me .eq. 0) write(6,*) ' forecast jy,jm,jd,jh,rjday=', - & jy,jm,jd,jh,rjday -! - if (me .eq. 0) then - write(6,*) 'forecast jy,jm,jd,jh=',jy,jm,jd,jh -! - write(6,*) ' ' - write(6,*) '************************************************' - endif -! - close(lugb) - call baopenr(lugb,fngrib,iret) - if (iret .ne. 0) then - write(6,*) ' error in opening file ',trim(fngrib) - print *,'error in opening file ',trim(fngrib) - call abort - endif - if (me .eq. 0) write(6,*) ' file ',trim(fngrib), - & ' opened. unit=',lugb -! - lugi = 0 -! - lskip=-1 - jpds=-1 - jgds=-1 - jpds(5)=kpds5 - kpds = jpds - call getgbh(lugb,lugi,lskip,jpds,jgds,lgrib,ndata, - & lskip,kpds,kgds,iret) - if (me .eq. 0) then - write(6,*) ' first grib record.' - write(6,*) ' kpds( 1-10)=',(kpds(j),j= 1,10) - write(6,*) ' kpds(11-20)=',(kpds(j),j=11,20) - write(6,*) ' kpds(21- )=',(kpds(j),j=21,22) - endif - yr2kc = (kpds(8) / 100) .gt. 0 - kpds0=jpds - kpds0(4)=-1 - kpds0(18)=-1 - if(iret.ne.0) then - write(6,*) ' error in getgbh. iret: ', iret - if(iret==99) write(6,*) ' field not found.' - call abort - endif -! -! handling analysis file -! -! find record for the given hour/day/month/year -! - nrept=0 - jpds=kpds0 - lskip = -1 - iyr=jy - if(iyr.le.100) iyr=2050-mod(2050-iyr,100) - imo=jm - idy=jd - ihr=jh -! year 2000 compatible data - if (yr2kc) then - jpds(8) = iyr - else - jpds(8) = mod(iyr,1900) - endif - 50 continue - jpds( 8)=mod(iyr-1,100)+1 - jpds( 9)=imo - jpds(10)=idy -! jpds(11)=ihr - jpds(21)=(iyr-1)/100+1 - call w3kind(w3kindreal,w3kindint) - if (w3kindreal == 8) then - call getgb(lugb,lugi,mdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data8,jret) - elseif (w3kindreal == 4) then - allocate (data4(mdata)) - call getgb(lugb,lugi,mdata,lskip,jpds,jgds,ndata,lskip, - & kpds,kgds,lbms,data4,jret) - data8 = data4 - deallocate(data4) - endif - if (me .eq. 0) write(6,*) ' input grib file dates=', - & (kpds(i),i=8,11) - if(jret.eq.0) then - if(ndata.eq.0) then - write(6,*) ' error in getgb' - write(6,*) ' kpds=',kpds - write(6,*) ' kgds=',kgds - call abort - endif - imax=kgds(2) - jmax=kgds(3) - ijmax=imax*jmax - allocate (data(imax,jmax)) - do j=1,jmax - jj = (j-1)*imax - do i=1,imax - data(i,j) = data8(jj+i) - enddo - enddo - else - if(nrept.eq.0) then - if (me .eq. 0) then - write(6,*) ' no matching dates found. start searching', - & ' nearest matching dates (going back).' - endif - endif -! -! no matching ih found. search nearest hour -! - if(ihr.eq.6) then - ihr=0 - go to 50 - elseif(ihr.eq.12) then - ihr=0 - go to 50 - elseif(ihr.eq.18) then - ihr=12 - go to 50 - elseif(ihr.eq.0.or.ihr.eq.-1) then - idy=idy-1 - if(idy.eq.0) then - imo=imo-1 - if(imo.eq.0) then - iyr=iyr-1 - if(iyr.lt.0) iyr=99 - imo=12 - endif - idy=31 - if(imo.eq.4.or.imo.eq.6.or.imo.eq.9.or.imo.eq.11) idy=30 - if(imo.eq.2) then - if(mod(iyr,4).eq.0) then - idy=29 - else - idy=28 - endif - endif - endif - ihr=-1 - if (me .eq. 0) write(6,*) ' decremented dates=', - & iyr,imo,idy,ihr - nrept=nrept+1 - if(nrept.gt.nvalid) iret=-1 - if(nrept.gt.nrepmx) then - if (me .eq. 0) then - write(6,*) ' searching range exceeded.' - &, ' may be wrong grib file given' - write(6,*) ' fngrib=',trim(fngrib) - write(6,*) ' terminating search and', - & ' and setting gdata to -999' - write(6,*) ' range max=',nrepmx - endif -! imax=kgds(2) -! jmax=kgds(3) -! ijmax=imax*jmax -! do ij=1,ijmax -! data(ij)=0. -! enddo - go to 100 - endif - go to 50 - else - if (me .eq. 0) then - write(6,*) ' search of analysis for ihr=',ihr,' failed.' - write(6,*) ' kpds=',kpds - write(6,*) ' iyr,imo,idy,ihr=',iyr,imo,idy,ihr - endif - go to 100 - endif - endif -! - 80 continue -! if (me == 0) then -! write(6,*) ' maxmin of input as is' -! kmami=1 -! call maxmin(data(1,1),ijmax,kmami) -! endif -! - call getarea(kgds,dlat,dlon,rslat,rnlat,wlon,elon,ijordr,me) - if (me == 0) then - write(6,*) 'imax,jmax,ijmax,dlon,dlat,ijordr,wlon,rnlat=' - write(6,*) imax,jmax,ijmax,dlon,dlat,ijordr,wlon,rnlat - endif - call subst(data,imax,jmax,dlon,dlat,ijordr) -! -! first get slmask over input grid -! - allocate (rlngrb(imax), rltgrb(jmax)) - allocate (rslmsk(imax,jmax)) - call setrmsk(kpds5,slmskh,imsk,jmsk,wlon,rnlat, - & data,imax,jmax,rlngrb,rltgrb,lmask,rslmsk -! & data,imax,jmax,abs(dlon),abs(dlat),lmask,rslmsk -!cggg &, gaus,blno, blto, kgds(1)) - &, gaus,blno, blto, kgds(1), kpds(4), lbms) - -! write(6,*) ' kpds5=',kpds5,' lmask=',lmask -! - inttyp = 0 - if(kpds5.eq.225) inttyp = 1 - if(kpds5.eq.230) inttyp = 1 - if(kpds5.eq.66) inttyp = 1 - if(inttyp.eq.1) print *, ' nearest grid point used' -! - call la2ga(data,imax,jmax,rlngrb,rltgrb,wlon,rnlat,inttyp, - & gdata,len,lmask,rslmsk,slmask - &, outlat, outlon, me) -! - deallocate (rlngrb, stat=iret) - deallocate (rltgrb, stat=iret) - deallocate (data, stat=iret) - deallocate (rslmsk, stat=iret) - call baclose(lugb,iret2) -! write(6,*) ' ' - return -! - 100 continue - iret=1 - do i=1,len - gdata(i) = -999. - enddo -! - call baclose(lugb,iret2) -! - return - end subroutine fixrda - subroutine snodpth2(glacir,snwmax,snoanl, len, me) - use machine , only : kind_io8,kind_io4 - implicit none - integer i,me,len - real (kind=kind_io8) snwmax -! - real (kind=kind_io8) snoanl(len), glacir(len) -! - if (me .eq. 0) write(6,*) 'snodpth2' -! - do i=1,len -! -! if glacial points has snow in climatology, set sno to snomax -! - if(glacir(i).ne.0..and.snoanl(i).lt.snwmax*0.5) then - snoanl(i) = snwmax + snoanl(i) - endif -! - enddo - return - end diff --git a/sorc/gridbull.fd/BIN2CHAR.f b/sorc/gridbull.fd/BIN2CHAR.f deleted file mode 100755 index 9548c1af1f..0000000000 --- a/sorc/gridbull.fd/BIN2CHAR.f +++ /dev/null @@ -1,51 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: BIN2CHAR CONVERTS BINARY NUMBER TO EBCDIC -C PRGMMR: BOSTELMAN ORG: W/NMC421 DATE: 96-05-23 -C -C ABSTRACT: CONVERTS A INTEGER QUANTITY TO EBCDIC CHARACTERS -C -C PROGRAM HISTORY LOG: -C 96-05-23 W.J. BOSTELMAN -C -C USAGE: CALL BIN2CHAR (NUMBIN, KDATA, N2) -C -C INPUT ARGUMENT LIST: -C NUMBIN = INTEGER QUANTITY (RANGE: 0 - 99999999) -C N2 = DESIRED LENGTH OF FINAL CHARACTER STRING, LEFT -C JUSTIFIED. EXAMPLES: 'I2', 'I4', 'I10', WHERE 'I' IS -C THE FORMAT TYPE SPECIFIER AND 'W' IS THE WIDTH (# OF DIGITS) -C -C OUTPUT ARGUMENT LIST: -C KDATA = CONVERTED NUMERIC TO EBCDIC CHARACTER STRING. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - SUBROUTINE BIN2CHAR (NUMBIN, KDATA, N2) -C - CHARACTER*3 IW(8) - CHARACTER*7 FORMT - CHARACTER*(*) KDATA -C - INTEGER NUMBIN -C - DATA IW /'1.1', '2.2', '3.3', '4.4', '5.5','6.6','7.7','8.8'/ -C - NERR = 0 - IF (N2 .LT. 9) THEN ! >>> START PROCESSING - FORMT = '(I'//IW(N2)//')' - KDATA = ' ' - WRITE (KDATA, FORMT) NUMBIN -C - ELSE ! >>>> DON'T PROCESS - NERR = 12 - PRINT *, ' EXCEEDED NUMBER SIZE IN SUB BIN2CHAR, NERR = ' - & , NERR - ENDIF -C - RETURN - END diff --git a/sorc/gridbull.fd/BIN2EBCD.f b/sorc/gridbull.fd/BIN2EBCD.f deleted file mode 100755 index 0b2f4c5a60..0000000000 --- a/sorc/gridbull.fd/BIN2EBCD.f +++ /dev/null @@ -1,92 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: BIN2EBCD CONVERTS BINARY NUMBERS TO EBCDIC -C PRGMMR: BOSTELMAN ORG: W/NMC421 DATE: 96-05-23 -C -C ABSTRACT: CONVERTS INTEGER QUANTITY ARRAY TO EBCDIC CHARACTERS -C THE CHARACTER REPRESENTATION IS RIGHT JUSTIFIED AND -C ZERO FILLED TO LEFT TO FILL IN THE STRING WIDTH. THE -C RESULT IS A CONTINUOUS BLOCK OF N1 STRINGS OF N2 WIDTH. -C -C PROGRAM HISTORY LOG: -C 96-05-23 W.J. BOSTELMAN -C -C USAGE: CALL BIN2EBCD (NUMBIN, KDATA, N1, N2, MINUS) -C -C INPUT ARGUMENT LIST: -C NUMBIN = INTEGER QUANTITY (RANGE: 0 - 99999999) -C N1 = NO. OF INTEGERS TO CONVERT -C N2 = DESIRED LENGTH OF FINAL CHARACTER STRING, LEFT -C JUSTIFIED. EXAMPLES: 'I2', 'I4', 'I10', WHERE 'I' IS -C THE FORMAT TYPE SPECIFIER AND 'W' IS THE WIDTH (# OF DIGITS) -C MINUS = CHARACTER TO BE INSERTED IN HIGH ORDER POSITION OF A -C NEGATIVE NUMBER FIELD -C -C OUTPUT ARGUMENT LIST: -C KDATA = CONVERTED NUMERIC TO EBCDIC CHARACTER STRING. -C NERR = ZERO IF NO PROBLEMS, -C = NONZERO IF ENCOUNTERS UNEXPECTED CHARACTER. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - SUBROUTINE BIN2EBCD (NUMBIN, KDATA, N1, N2, MINUS) -C - PARAMETER (MXLEN = 285) - PARAMETER (MXDIG = 8) -C - CHARACTER*1 MINUS - CHARACTER*3 IW (MXDIG) - CHARACTER*3 NREPS - CHARACTER*3 NREPX - CHARACTER*20 FORMT - CHARACTER*2280 KBUF - CHARACTER*(*) KDATA -C - INTEGER NUMBIN (MXLEN) - INTEGER NUMBINA(MXLEN) -C - LOGICAL NEGNUM (MXLEN), NEGATIVE -C - DATA IW /'1.1', '2.2', '3.3', '4.4', '5.5','6.6','7.7','8.8'/ -C - NERR = 0 - IF (N2 .LE. MXDIG) THEN ! >>> START PROCESSING - NEGATIVE = .FALSE. - NEGNUM = .FALSE. -C - DO I = 1, N1 ! >>>>> LOOK FOR NEGATIVES AND FLAG'M - IF (NUMBIN(I) .LT. 0) THEN - NUMBINA(I) = IABS (NUMBIN(I)) - NEGNUM(I) = .TRUE. - NEGATIVE = .TRUE. - ELSE - NUMBINA(I) = NUMBIN(I) - ENDIF - END DO -C - WRITE (NREPS, '(I3)') N1 ! FORMAT REPETITION FACTOR - FORMT = '('//NREPS//'I'//IW(N2)//')' ! CONVERSION FORMAT - KBUF = ' ' ! CHARACTER BUFFER AREA - WRITE (KBUF, FORMT) (NUMBINA(J),J=1,N1) ! CONVERT NUMBERS -C - IF (NEGATIVE) THEN - DO I = 1, N1 - IF (NEGNUM(I)) THEN - KBUF (N2*(I-1) + 1: N2*(I-1) + 1) = MINUS - ENDIF - END DO - ENDIF - KDATA(:N1*N2) = KBUF(:N1*N2) ! PUT IN OUTPUT VARIABLE -C - ELSE ! >>>> DON'T PROCESS - NERR = 12 - PRINT *, ' EXCEEDED NUMBER SIZE IN SUB BIN2EBCD, NERR = ' - & , NERR - ENDIF -C - RETURN - END diff --git a/sorc/gridbull.fd/BULLET.f b/sorc/gridbull.fd/BULLET.f deleted file mode 100755 index f012fe4036..0000000000 --- a/sorc/gridbull.fd/BULLET.f +++ /dev/null @@ -1,498 +0,0 @@ - SUBROUTINE BULLET (CNAME,NCAT,NDATA,KPDS,NEXT,NBLK) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: BULLET FORMATS FM 47-V GRID CODE BULLETIN -C PRGMMR: BOSTELMAN ORG: W/NMC42 DATE: 92-03-09 -C -C ABSTRACT: FORMAT A BULLETIN IN FM 47-V GRID CODE FROM THE MANUAL ON -C CODES, VOLUME I (WMO 306), FOLLOWING OFFICE NOTE 167 GUIDELINES, -C AND BLOCK THE BULLETIN UNDER OFFICE NOTE 100 GUIDELINES. -C -C PROGRAM HISTORY LOG: -C 81-12-20 R. ALLARD ORGINATOR -C 92-03-09 W. BOSTELMAN - UPGRADED DOCBLOCK -C 98-06-29 Gilbert - Made Y2K compliant. Check for year = 100. -C -C -C USAGE: CALL BULLET (NAME,NCAT,NDATA,LABEL,NEXT,NBLK) -C INPUT ARGUMENT LIST: -C CNAME - ADDRESS OF BULLETIN NAME IN GLOBAL FORMAT (TTAAII) -C NCAT - BULLETIN CATALOG NUMBER (INTEGER*4) -C NDATA - ADDRESS OF 285 PT INPUT DATA ARRAY (INTEGER*4) -C KPDS - GRIB PDS Array in w3fi63 layout -C -C OUTPUT ARGUMENT LIST: -C NBLK - ADDRESS OF OUTPUT DATA ARRAY THAT CAN HOLD TWO 1280 -C CHARACTER RECORDS. -C NEXT - INTEGER*4 VARIABLE FOR USE AS A W3AI19 PARAMETER. -C -C INPUT FILES: -C NONE -C -C OUTPUT FILES: -C NONE -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C -C - CHARACTER*4 KON - CHARACTER*4 K1,K2,K7,K8,K9,K10,K15,K20,K25,MINUS,NPOS - CHARACTER*4 NTYPE(6),NA4,NS - CHARACTER*1 CIS - CHARACTER*2 CMM - CHARACTER*2 CN1N2 - CHARACTER*2 LTYPH - CHARACTER*2 NAME2 - CHARACTER*2 NAME3 - CHARACTER*2 NNNQH - CHARACTER*1 LTYPE(6) - CHARACTER*1 NAME(6) - CHARACTER*1 NNNQ(12) - CHARACTER*3 NEOL - CHARACTER*3 CNNN - CHARACTER*3 CFCST - CHARACTER*4 CJJMM - CHARACTER*4 CKKNN - CHARACTER*4 YYGG - CHARACTER*6 AREG - CHARACTER*6 CNAME - CHARACTER*6 DTYPE - CHARACTER*6 I3J3 - CHARACTER*8 CBPRF - CHARACTER*5 GROUP - CHARACTER*12 NNNQQ - CHARACTER*21 WMOHDR - CHARACTER*40 CHDR - CHARACTER*72 CLINE -C - CHARACTER*19 SECT0 - CHARACTER*36 SECT1 - CHARACTER*42 SECT1P - CHARACTER*18 SECT3 - CHARACTER*30 SECT3H - CHARACTER*25 SECT5 -C - CHARACTER*2280 DBLK - CHARACTER*2560 NBLK -C - INTEGER(8) BULPRF - INTEGER ISUBS(6) - INTEGER IGP(0:199) - INTEGER KKNNX(0:2) - INTEGER KPDS(*) - INTEGER NCA(6) - INTEGER NCB(6) - INTEGER NCHRS(6) - INTEGER NDATA(285) -C - LOGICAL IPOLE -C - EQUIVALENCE ( CBPRF(1:1), BULPRF) -C -C -C ///////////////////////////////////////////////////////////////////// -C -C HEADINGS -C -C ............................................. -C -C '1XXXXX (CHED) -C -C TTAAII KWBC YYGG00<<@ (HED) -C -C GRID 07NNN 10101<<@ (HED0) -C -C 111 1AAAA 2PP99 6JJMM 7YYGG 0MM99<<@ (HED1) -C -C 111 1AAAA 5BB00 6JJMM 7YYGG 0MM99<<@ -C -C 111 1AAAA 2PP99 6JJMM 7YYGG 81TTT 0MMGG<<@ (HED1P) -C -C 111 1AAAA 5BB00 6JJMM 7YYGG 81TTT 0MMGG<<@ -C -C 333 1151I 2NN20<<@ (HED3) -C -C 333 1151I 2NN20 30S00 0RRRR<<@ (HED3H) -C -C 555 07NNN 10101<<@777<<@% (HED5) -C -C ............................................. -C -C BULLETIN PREFIX -C -C For Little_endian -C - DATA BULPRF /Z'2030303030303127' / -C -C For Big_endian -C DATA BULPRF /Z'2731303030303020' / -C -C BULLETIN ID. (NAME, ORIGINATING CENTER, AND DAY-TIME GROUP) -C - DATA WMOHDR/ 'TTAAII KWBC YYGG00<<@' / -C -C SECTION 0. (GRID CODE MESSAGE ID) -C - DATA SECT0 / 'GRID 07NNN 10101<<@' / -C -C SECTION 1. (GRID CODE DATA ID) -C - DATA SECT1 / '111 1AAAA 2PP99 6JJMM 7YYGG 0MM99<<@' / -C - DATA SECT1P/ '111 1AAAA 2PP99 6JJMM 7YYGG 81TTT 0MM99<<@' / -C -C SECTION 3. (GRID CODE DATA FORMAT ID) -C - DATA SECT3 / '333 1151I 2NN20<<@' / -C - DATA SECT3H/ '333 1151I 2NN20 30S00 0RRRR<<@' / -C -C SECTION 5. (GRID CODE MESSAGE TRAILER) -C - DATA SECT5 / '555 07NNN 10101<<@777<<@%' / -C -C ///////////////////////////////////////////////////////////////////// -C -C NUMBER OF GRID POINTS PER DATA LINE SEGMENT -C -C N2 1 2 3 4 5 6 -C - DATA NCA / 19, 19, 19, 13, 11, 9 / - DATA NCB / 0, 0, 0, 6, 8, 10 / -C -C ///////////////////////////////////////////////////////////////////// -C -C PRESS HEIGHT TEMP DDDFF UUVV REL HUM -C - DATA DTYPE / 'PHTWUR' / - DATA LTYPE / 'P', 'H', 'T', 'W', 'U', 'R' / - DATA NTYPE / '0100', '0200', '0400', '2200', '2324', '1300' / - DATA NCHRS / 3, 3, 2, 5, 5, 2 / - DATA ISUBS / 2, 2, 3, 2, 1, 2 / -C -C (THE ABOVE ARRAYS MUST HAVE CORRESPONDING ENTRIES.) -C -C ///////////////////////////////////////////////////////////////////// -C -C N3 1 2 3 4 5 6 7 8 9 10 11 12 -C - DATA NNNQ / 'A','B','C','D','E','F','G','H','I','J','K','L' / - DATA NNNQQ / 'ABCDEFGHIJKL' / -C -C ///////////////////////////////////////////////////////////////////// -C Model Run IDs updated 6/21/96 -C - DATA IGP / 5*99, 11, 4*99, 80, 8*99, 48, 19*99, 48, 99, 99, 11 - & , 11, 11, 8*99, 48, 10*99, 11, 3*99, 50, 50, 80, 2*99 - & , 4*80, 2*50, 80, 50, 2*11, 3*48, 3*80, 111*99 / -C - DATA K1 / '0100' / - DATA K2 / '0200' / - DATA K7 / '0700' / - DATA K8 / '0800' / - DATA K9 / '0900' / - DATA K10 / '1000' / - DATA K15 / '1500' / - DATA K20 / '2000' / - DATA K25 / '2500' / -C - DATA MINUS/ '1 ' / - DATA NPOS / '0 ' / -C - DATA NEOL / '<<@' / - DATA AREG / ' '/, ICAT /0/, IBCKUP/0/, IDATYP/0/ -C - DATA KKNNX / 9901, 0, 9801 / -C -C -C ///////////////////////////////////////////////////////////////////// -C -C -C INITIALIZATION -C -C -C LENGTH OF HEADINGS IN NUMBER OF CHARACTERS. -C - LCHED = 40 - LHED = 21 - LHED0 = 19 - LHED1 = 36 - LHED1P = 42 - LHED3 = 18 - LHED3H = 30 - LHED5 = 25 -C - LL = 18 * 4 - N1 = 285 - NB = 640 * 4 -C - NEXT = 0 -C -C EXTRACT FORECAST HOUR FROM DATA FIELD LABEL. (ZERO IF ANALYSIS) -C - NFCST = KPDS(14) -C -C EXTRACT LEVEL FROM DATA FIELD LABEL. -C - LEVEL = KPDS(7) -C -C DETERMINE THE SUBSCRIPT FOR ARRAYS LTYPE, NTYPE, NCHRS AND ISUBS. -C - I = INDEX (DTYPE, CNAME(2:2)) - IS= ISUBS(I) - NA4= NTYPE(I) - N2 = NCHRS(I) -C - MARK=0 - IF (I .EQ. 2 .AND. (LEVEL.GT.0 .AND. - & LEVEL .LE. 300 .OR. LEVEL .EQ. 1000)) THEN - MARK = 1 - ENDIF -C - IF (I.EQ.3) THEN -C -C CHANGE GROUP CHR. LENGTH AND SIGN INDICATOR IF TEMPS BELOW 500 MB. -C - IDS1 = KPDS(6) - IF(IDS1.EQ.102.OR.IDS1.EQ.1 .OR. LEVEL .GT. 500) THEN - N2=3 - IS=1 - ENDIF - ENDIF -C -C DETERMINE THE VALUE OF NNN. -C - N3 = INDEX (NNNQQ, CNAME(3:3)) - NNN = N3 - N1N2= N2 * 10 - IF (I .EQ. 5) N1N2 = 22 -C -C DETERMINE QUADRANT BELT (NQB), WHERE N.H. = 0, TROP = 1, AND S.H. =2. -C - NQB=(NNN-1)/4 -C -C FORMAT AND BLOCK HEADINGS -C -C FORMAT VARIABLE AND BLOCK CHED. -C -C ..... XXXXX (CATALOG NUMBER) -C - NBLK = ' ' -CCC CALL W3FI61 (CHDR, NCAT, AREG, IBCKUP, IDATYP, IERR) - NBLK(1:LCHED) = CBPRF ! Replaces W3FI61 - NEXT = LCHED -C -C FORMAT VARIABLES AND BLOCK HED. -C -C ..... TTAAII (BULLETIN NAME) -C - WMOHDR(1:6) = CNAME -C -C ..... YYGG (DAY-TIME GROUP) -C - IGG = KPDS(11) - IYY = KPDS(10) - IYYGG = IYY*100 + IGG - CALL BIN2CHAR (IYYGG, YYGG, 4) - WMOHDR(13:16) = YYGG - NBLK(NEXT+1:NEXT+LHED) = WMOHDR - NEXT = NEXT + LHED -C -C FORMAT VARIABLE AND BLOCK HED0. -C -C ..... NNN (CATALOG NUMBER OF GRID) -C - CALL BIN2CHAR (NNN, CNNN, 3) - SECT0(8:10) = CNNN(1:3) - NBLK(NEXT+1:NEXT+LHED0) = SECT0 - NEXT = NEXT + LHED0 -C -C FORMAT VARIABLES AND BLOCK HED1. -C -C ..... AAAA (BULLETIN DATA TYPE(S)) -C - SECT1(6:9) = NA4 - IF(LEVEL .GT. 0) THEN -C -C ..... PP (PRESSURE LEVEL IN HUNDREDS OF MILLIBARS - GROUP 2PP99) -C - IF (LEVEL .EQ. 1000) THEN - LPP = 0 - ELSE - LPP=LEVEL*10 - ENDIF - LSFC=20099+LPP - ELSEIF (LEVEL .EQ. 0) THEN -C -C ..... BB (SPECIAL SFC - MSL, EARTH, OR TROPOPAUSE - GROUP 5BB00) -C SET MARK = 1 WHEN .NE. TEMPS -C - IDS1 = KPDS(6) - IF (IDS1 .EQ. 102) THEN - LSFC = 56000 - IF (NA4 .NE. NTYPE(3)) MARK = 1 - ELSEIF (IDS1 .EQ. 1) THEN - LSFC = 50100 - IF (NA4 .NE. NTYPE(3)) MARK = 1 - ELSEIF (IDS1 .EQ. 7) THEN - LSFC = 50700 - ELSE - LSFC = 59900 - ENDIF - ENDIF -C -C .....INSERT EITHER GROUP 2PP99 OR 5BB00 IN SECTION 1 HEADING. -C - CALL BIN2CHAR (LSFC, GROUP, 5) - SECT1(11:15) = GROUP(1:5) -C -C ..... JJMM (YEAR OF CENTURY AND MONTH) -C - JJ = KPDS(8) - if (jj.eq.100) jj=0 - MM = KPDS(9) - JJMM = JJ*100 + MM - CALL BIN2CHAR (JJMM, CJJMM, 4) - SECT1(18:21) = CJJMM -C -C ..... YYGG (DAY OF MONTH AND TIME GROUP) -C - SECT1(24:27) = YYGG -C -C ..... MM (PROCEDURE OR MODEL USED TO GENERATE THE DATA FIELD) -C - M2 = KPDS(2) - IF (M2 .GT. 199) M2 = 199 - MM = IGP(M2) -C - CALL BIN2CHAR (MM, CMM, 2) - SECT1(30:31) = CMM(1:2) - IF (NFCST .GT. 0) THEN -C -C ..... TTT (USE HED1P HEADING FOR FORECAST BULLETINS) -C - SECT1P(1:27) = SECT1(1:27) - CALL BIN2CHAR (NFCST, CFCST, 3) - SECT1P(31:33) = CFCST(1:3) - SECT1P(35:39) = SECT1(29:33) - NBLK(NEXT+1:NEXT+LHED1P) = SECT1P - NEXT = NEXT + LHED1P - ELSE - NBLK(NEXT+1:NEXT+LHED1) = SECT1 - NEXT = NEXT + LHED1 - ENDIF -C -C FORMAT VARIABLES AND BLOCK HED3. (HED3H IF ADDITIVE CONSTANT USED) -C -C ..... I (SIGN INDICATOR) -C - CIS = CHAR (IS + 48) - SECT3(9:9) = CIS -C -C ..... NN (NUMBER OF DIGITS EACH GRID POINT FOR A1A1A2A2) -C - CALL BIN2CHAR (N1N2, CN1N2, 2) - SECT3(12:13) = CN1N2(1:2) -C - IF (MARK .EQ. 0) THEN - NBLK(NEXT+1:NEXT+LHED3) = SECT3 - NEXT = NEXT + LHED3 - ELSE - SECT3H(1:13) = SECT3(1:13) -C - NS=NPOS - IF (LEVEL .EQ. 1000) THEN - NS = MINUS - KON = K1 - ELSEIF (LEVEL .EQ. 300) THEN - KON = K7 - ELSEIF (LEVEL .EQ. 250) THEN - KON = K8 - ELSEIF (LEVEL .EQ. 200) THEN - KON = K9 - ELSEIF (LEVEL .LE. 150 .AND. LEVEL .GT. 70) THEN - KON = K10 - ELSEIF (LEVEL .LE. 70 .AND. LEVEL .GT. 30) THEN - KON = K15 - ELSEIF (LEVEL .LE. 30 .AND. LEVEL .GT. 10) THEN - KON = K20 - ELSEIF (LEVEL .EQ. 10) THEN - KON = K25 - ELSEIF (LEVEL .LT. 10 .AND. LEVEL .GT. 0) THEN - KON = K20 - ELSEIF (LEVEL .EQ. 0) THEN - KON = K2 - ENDIF -C -C ..... S (SIGN OF RRRR) -C - SECT3H(19:19) = NS -C -C ..... RRRR (ADDITIVE CONSTANT - DECAMETERS) -C - SECT3H(24:27) = KON - NBLK(NEXT+1:NEXT+LHED3H) = SECT3H - NEXT = NEXT + LHED3H - ENDIF -C -C F O R M A T A N D B L O C K D A T A L I N E S -C - CALL BIN2EBCD (NDATA, DBLK, N1, N2, '1') - IJ = 0 - INC= 10 - K = NCA(N2) - KK = 0 - NN = 19 - I3J3 = ' ' - IPOLE = .FALSE. - IF (NQB .EQ. 0 .OR. NQB .EQ. 2) IPOLE = .TRUE. -C - JLAST = 15 - DO J = 1, JLAST - IF (J .NE. JLAST .OR. (J.EQ.JLAST .AND. .NOT.IPOLE)) THEN - KK = KK + 1 - KKNN = KK * 100 + NN - NC1 = NCA(N2) - NC2 = NCB(N2) - ELSEIF (J .EQ. JLAST .AND. IPOLE) THEN - KKNN = KKNNX(NQB) - NC1 = 1 - NC2 = 0 - ENDIF - CALL BIN2CHAR (KKNN, CKKNN, 4) - N = 0 - CLINE = ' ' - CLINE(N+1:N+4) = CKKNN - N = N + 5 - CALL BIN2CHAR (IJ, I3J3, 6) - IJ = IJ + INC - CLINE(N+1:N+6) = I3J3 - N = N + 7 - I1 = (J - 1) * NN * N2 - CLINE(N+1:N+N2*NC1) = DBLK(I1+1:I1+N2*NC1) - NBLK(NEXT+1:NEXT+N+N2*NC1+3) = CLINE(:N+N2*NC1) // NEOL - NEXT = NEXT + N + N2 * NC1 + 3 - IF (NC2 .GT. 0) THEN - I2 = I1 + N2 * NC1 - NBLK(NEXT+1:NEXT+N2*NC2+3) = DBLK(I2+1:I2+N2*NC2) // NEOL - NEXT = NEXT + N2 * NC2 + 3 - ENDIF - END DO -C -C FORMAT VARIABLE AND BLOCK TRAILER. -C -C -C ..... NNN (CATALOG NUMBER OF GRID) -C - SECT5(7:9) = CNNN - NBLK(NEXT+1:NEXT+LHED5) = SECT5 - NEXT = NEXT + LHED5 -C - RETURN - END diff --git a/sorc/gridbull.fd/GRIDBUL.f b/sorc/gridbull.fd/GRIDBUL.f deleted file mode 100755 index 8125201d8c..0000000000 --- a/sorc/gridbull.fd/GRIDBUL.f +++ /dev/null @@ -1,533 +0,0 @@ - PROGRAM GRIDBUL -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK *** -C -C MAIN PROGRAM: BULLS_GRIDBULL -C PRGMMR: GILBERT ORG: NP11 DATE: 2000-01-06 -C -C ABSTRACT: THIS PROGRAM FORMATS GRID-POINT VALUES IN FM 47-V GRID CODE -C FOR TRANSMISSION ON THE GLOBAL TELECOMMUNICATIONS SYSTEM (GTS). AN -C EXTERNAL SEQUENTIAL DATA SET CONTAINING ONE OR MORE TWO CARD SUBSETS -C CONTROLS THE BULLETINS PRODUCED. EACH SUBSET PROVIDES ELEMENTS 5-7 -C OF GRIB PDS INPUT FIELD IDENTIFICATION, A DIRECT ACCESS FILE -C DDNAME, A BULLETIN SERIES NAME, AND THE CCAP MDL CATALOG NUMBER(S). -C A NONZERO MDL NUMBER TELLS THE PROGRAM TO PRODUCE THE CORRESPONDING -C BULLETIN IN THE SERIES OF TWELVE. OFFICE NOTE 167 DESCRIBES FULLY -C THE TWELVE BULLETIN AREAS, THE BULLETIN NAMING CONVENTIONS, THE -C TYPES OF DATA, AND THE BULLETIN FORMATS. -C -C PROGRAM HISTORY LOG: -C 81-12-20 R. ALLARD, ORIGINAL AUTHOR for NAS version -C -C 96- 6-21 W. Bostelman, Converted pgm and subroutines to run on CRAY -C Input data is now from sequential GRIB files. -C The MM parameter table has been updated to reflect current -C models and procedures. -C 97- 2-10 W. Bostelman, Corrected Line Feed Definition -C 97- 2-26 W. Bostelman, Added optional Grid Type Parameter to input -C cards and upgraded the processing summary and diagnostic -C messages. Input file error messages will now contain the -C offending file name and summaries will indicate how much -C processing was done with respect to total requested. -C 98-06-29 Gilbert - Removed calls to W3LOG. -C 2012-11-02 VUONG CHANGED VARIABLE ENVVAR TO CHARACTER*6 -C 2016-02-19 VUONG SET JGDS=-1 TO SEARCH AS A WILDCARD -C -C USAGE: -C INPUT FILES: -C -C FT20F001 REFERENCES A SEQUENTIAL FILE THAT CONTROLS VIA TWO CARD -C SUBSETS THE SEQUENTIAL FILE(S) AND DATA FIELD(S) READ -C AND THE GRID BULLETIN(S) PRODUCED. CARD ONE CONTAINS A -C DIRECT ACCESS INPUT FILE DDNAME LEFT-ADJUSTED IN COLUMNS -C 1-8, A THREE WORD GRID PDS LABEL IN -C COLUMNS 11-38 WITH TWO SPACES SEPARATING EACH HEXADECIMAL -C WORD, THE BULLETIN SERIES NAME IN GENERIC FORM TTAAII IN -C COLUMNS 63-68, AND A "1" IN COLUMN 71. CARD TWO CONTAINS -C TWELVE RIGHT-ADJUSTED FIVE DIGIT MDL NUMBERS IN COLUMNS -C 1-60, THE BULLETIN SERIES NAME REPEATED IN COLUMNS 63-68, -C AND A "2" IN COLUMN 71. -C -C GRIB data files start at ft11 -C GRIB index file " " ft31 -C They correspond to the old file names given on the data cards. -C (EXAMPLES: ANL, F12, F24, F36, F48, F72, FXN, GANL, GF12). -C -C OUTPUT FILES: -C -C FT06F001 - I/O SUMMARY AND ANY ERROR MESSAGES FOR THE PRINTER. -C -C FT88F001 - SEQUENTIAL FILE CONTAINING GRID BULLETIN(S) IN OFFICE -C NOTE 167 FORMAT AND BLOCKED UNDER OFFICE NOTE 100 -C GUIDELINES. -C -C JOBLOG - REQUIREMENT WHEN JOBNAME IN PRODUCTION FORMAT. -C -C -C SUBPROGRAMS CALLED: -C -C UNIQUE: BIN2CHAR, BIN2EBCD, BULLET, PAKWND, QUADAX, WINDY -C -C W3LIB: W3TAGB, W3TAGE -C -C EXIT STATE: -C -C COND = 0 -C -C REMARKS: -C -C 1. THE SERIES BULLETIN NAME CORRESPONDS TO THE FIRST QUADRANT -C AREA OF THE NORTHERN HEMISPHERE. THE PROGRAM MODIFIES THE THIRD -C LETTER OF THE NAME WITH THE LETTER A TO L CORRESPONDING TO THE -C MDL NUMBER POSITION IN THE DATA CARD. A ZERO MDL NUMBER MEANS -C TO SKIP THE CORRESPONDING BULLETIN. -C -C 2. THE THREE WORD PDS label IN THE FIRST CARD OF A TWO CARD -C SUBSET ALWAYS DENOTES A GLOBAL FIELD. -C -C 3. THE U-COMPONENT IDENTIFIER ALWAYS APPEARS IN THE FIRST CARD -C FOR WIND BULLETINS. THE PROGRAM MODIFIES THE Q-IDENTIFIER TO -C INPUT THE V-COMPONENT. -C -C 4. THE PROGRAM HANDLES ONLY GRIB data on GRID type 3. -C -C 5. WHEN THE PROGRAM RECOGNIZES AN ERROR CONDITION, IT PRINTS A -C MESSAGE AND SKIPS THE CURRENT TWO CARD SUBSET. -C -C 6. PROGRAM FORMS HEIGHT, TEMPERATURE, WIND, RELATIVE HUMIDITY, -C AND PRESSURE BULLETINS. -C -C *************************************************************** -C -C ATTRIBUTES: -C -C LANGUAGE: FORTRAN 77 -C -C SOURCE STATEMENTS: PGM SIZE: -C -C$$$ -C - PARAMETER (MXSIZE = 65160,lrecl=1280) -C - CHARACTER*1 LTRS (26) - CHARACTER*1 LNFEED - CHARACTER*1 TTAAII (6) - CHARACTER*2 II (17) - CHARACTER*2 KXXT, LXXT - CHARACTER*2 NAME (3) - CHARACTER*2 NTYPE (6) - CHARACTER*4 TBULL, TXBULL - CHARACTER*8 DDPOST, KEYWD - CHARACTER*8 DDNAME, PRNAME, GNAME1, GNAME2,PRINIT - CHARACTER*6 envvar - CHARACTER*44 MSG - CHARACTER*80 fileb,filei,fileo - CHARACTER*2560 NBLK -C - INTEGER IDTBL (1539) - INTEGER IFLD (2695) - INTEGER IUNITS (10) - INTEGER KTYPE (12) - INTEGER LEVS (16) - INTEGER LOCTBL (256) - INTEGER MDL (12) - INTEGER MPDS (27), KPDS (27) - INTEGER JGDS (100), KGDS (100) - INTEGER KTAU (19), NTAU - INTEGER KDIR (285), KSPD (285), KFLD (285) -C - REAL ADDKH (15) - REAL FLDA (285), FLDB (285) - REAL FLD1 (MXSIZE), FLD2 (MXSIZE) -C - LOGICAL*1 KBMS (MXSIZE) -C - EQUIVALENCE (GNAME1, NAME(1), TTAAII(1)) -C - DATA KMAX / 255 / - DATA KNBR / 285 / - DATA MSG /'*** of GRID BULLETINS GENERATED.:'/ -C -C DATA SET REFERENCE NUMBERS USED FOR SEQUENTIAL FILES. -C - DATA KARD / 20 / - DATA KOUT / 88 / - DATA KPRT / 6 / - DATA KPST / 5 / -C -C TABLE OF CONSTANTS SUBTRACTED FROM HEIGHT DATA TO PRESERVE 3 DIGITS. -C - DATA ADDKH / -C ..... 1000 MB 850 MB 700 MB 500 MB 400 MB - & -100.0, 0.0, 0.0, 0.0, 0.0, -C ...... 300 MB 250 MB 200 MB 150 MB 100 MB - & 700.0, 800.0, 900.0, 1000.0, 1000.0, -C ....... 70 MB 50 MB 30 MB 20 MB 10 MB - & 1500.0, 1500.0, 2000.0, 2000.0, 2500.0 / -C -C TABLE OF PERMISSIBLE TT CHARACTERS IN GNAMES. (TTAAII) -C (INDEX = JTYPE) - DATA NTYPE / 'GP','GH','GT','GW','GR','GU' / -C -C TABLE OF LEVEL DESIGNATORS PERMITTED IN THE GNAMES. (TTAAII) -C - DATA II / '98', '99', '85', '70', '50', - A '40', '30', '25', '20', '15', - B '10', '07', '05', '03', '02', - C '01', '97' / -C -C TABLE OF PERMISSIBLE FIRST ID WORDS (SANS TAU) IN O.N. 84 FORMAT. -C (INDEX = KIND) - DATA KTYPE / 7, 52, 11, 11, 11, 11, 33, 34, 1, 2, 1, 80 / -C HEIGHT -C RELATIVE HUMIDITY -C TEMPERATURE (SFC) (MSL) (TROP) -C WIND (TROP) -C PRESSURE(SFC) (MSL) (TROP) -C WTMP -C -C TABLE OF PERMISSIBLE LEVELS -C - DATA LEVS / 0, 1000, 850, 700, 500, - & 400, 300, 250, 200, 150, - & 100, 70, 50, 30, 20, - & 10 / -C -C TABLE OF PERMISSIBLE TAUS (FORECAST HOURS). -C - DATA KTAU / - A 0,6,12,18,24,30,36,42,48,60,72,84,96,108,120,132,144,156,168 / -C -C TABLE OF ALPHABETIC CHARACTERS. -C - DATA LTRS / 'A','B','C','D','E','F','G','H','I','J','K','L','M', - A 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z' / -C - DATA IUNITS / 11, 31, 12, 32, 13, 33, 14, 34, 15, 35 / -C -C DATA JGDS / 0, 360, 180, 89500, 500, 128, -89500, -500, 2*1000, -C & 9*0, 255, 80*0 / -C - 10 FORMAT(A8,5I10,4X,A8,I1,/,12I5,2X,A8,I1) - 20 FORMAT('0ERROR READING DATA CARDS IN SUBSET NUMBER ',I2,'.') - 40 FORMAT('0CARD SUBSET ',I2,' LABELS DO NOT MATCH: ',A8,2X,A8) - 50 FORMAT('0CARD SUBSET',I2,' HAS BAD SEQUENCE NUMBERS: ',2(2X,I5)) - 80 FORMAT('0BAD GNAME IN LABEL OF DATA CARD SUBSET ',I5,'.') - 90 FORMAT('0TAU VALUE ',I5,' IS NOT VALID IN CARD SUBSET ',I5,'.') - 100 FORMAT('0LEVEL ',Z8,' NOT IN TABLE. CARD SUBSET ',I5,'.') -C -C .... INITIALIZATION. -C - CALL W3TAGB('BULLS_GRIDBULL',2000,0006,0098,'NP11') - - IU = 0 - IBULLS = 0 - NAREAS = 12 - NBULLS = 0 - KRDSET = 0 - LNFEED = CHAR(10) - NBRTXS = 0 - PRINIT = 'PRNAME' - PRNAME = PRINIT - KXXT='XXXX' - LXXT='XXXX' -c -c open output transmission file -c - ENVVAR='FORT ' - WRITE(ENVVAR(5:6),FMT='(I2)') KOUT - CALL GETENV(ENVVAR,FILEO) - OPEN(KOUT,FILE=FILEO,ACCESS='DIRECT',RECL=lrecl) - irec=1 -C -C .... READ A TWO CARD SUBSET TO INITIALIZE INPUT-OUTPUT PARAMETERS. -C - 1000 CONTINUE - JREW = 0 - JGDS = -1 - MPDS = -1 - READ (KARD,10,ERR=7000,END=6000) DDNAME,(MPDS(I),I=5,7),IGRD - & ,IDUM ,GNAME1, KSEQ1,MDL,GNAME2,KSEQ2 -C - IF (IGRD .EQ. 0) THEN ! Check for Grid Type - MPDS(3) = 3 ! Default - ELSE - MPDS(3) = IGRD - ENDIF -C -C .... Accumulate Bulletin Total to Make -C - DO IAREA = 1, NAREAS - IF (MDL(IAREA) .GT. 0) THEN - IBULLS = IBULLS + 1 - ENDIF - END DO -C - KRDSET=KRDSET+1 -C ...... CHECK THE CARD LABELS AND SEQUENCE NUMBERS. - IF(GNAME1.NE.GNAME2) GO TO 7100 - IF(KSEQ1.NE.1.OR.KSEQ2.NE.2) GO TO 7200 -C ...... DETERMINE IF NEW FILE, FIRST FILE OR SAME AS PREVIOUS FILE. - IF(DDNAME.EQ.PRNAME) GO TO 1150 - IF(PRNAME.EQ.PRINIT) GO TO 1100 -C ...... CLOSE PREVIOUS FILE. - CALL BACLOSE (LUGB,irt) - CALL BACLOSE (LUGI,irt) - 1100 CONTINUE - IU = IU + 1 - LUGB = IUNITS(IU) - IU = IU + 1 - LUGI = IUNITS(IU) - PRNAME=DDNAME -C -C .... Open GRIB data file and index file -C - write(envvar(5:6),fmt='(I2)') lugb - call getenv(envvar,fileb) - write(envvar(5:6),fmt='(I2)') lugi - call getenv(envvar,filei) - call baopenr(lugb,fileb,iret1) - call baopenr(lugi,filei,iret2) - - if ( iret1+iret2 .ne. 0 ) then - write(6,*)' Error opening GRIB data or index file.' - stop 2 - endif - - 1150 CONTINUE -C -C ............ R E A D I N A N D U N P A C K G R I B -C D A T A F I E L D -C - CALL GETGB (LUGB, LUGI, MXSIZE, JREW, MPDS, JGDS, - & KPTS, KREW, KPDS, KGDS, KBMS, FLD1, IRET) - IF (IRET .NE. 0) THEN - PRINT *, 'Data field not found Reading Unit ', LUGI,', IRET = ' - & ,IRET,', MPDS ids = ',MPDS(5), MPDS(6), MPDS(7) - GO TO 1000 - ENDIF -C -C ..... SET DATA TYPE INDICATOR. - KIND=0 - DO 1300 K=1,12 - KIND=K - KXX=MPDS(5) - IF(KXX.EQ.KTYPE(K)) GO TO 1350 - 1300 CONTINUE - PRINT *, ' Data type ',MPDS(5),' is not recognized by table' - GO TO 1000 -C - 1350 CONTINUE - KWND=0 - IF(KIND.LT.7.OR.KIND.GT.8) GO TO 1500 - KWND=1 - MPDS(5) = MPDS(5) + 1 -C -C ............ R E A D I N A N D U N P A C K G R I B -C D A T A F I E L D -C - CALL GETGB (LUGB, LUGI, MXSIZE, JREW, MPDS, JGDS, - & KPTS, KREW, KPDS, KGDS, KBMS, FLD2, IRET) - IF (IRET .NE. 0) THEN - PRINT *, 'Data field not found Reading Unit ', LUGI,', IRET = ' - & ,IRET,', MPDS ids = ',MPDS(5), MPDS(6), MPDS(7) - GO TO 1000 - ENDIF -C - 1500 CONTINUE -C ..... CHECK FOR LETTER G AND TYPE INDICATOR IN GNAME LABEL. - DO 1600 J=1,6 - JTYPE=J - IF(NAME(1).EQ.NTYPE(J)) GO TO 1700 - 1600 CONTINUE - GO TO 7500 -C - 1700 CONTINUE -C ..... VERIFY THAT LETTER A IS SPECIFIED IN AREA DESIGNATOR OF GNAME -C ..... LABEL. - KXXT=LTRS(1) - LXXT=TTAAII(3) - IF(LXXT.NE.KXXT) GO TO 7500 -C ..... VERIFY THE TAU PORTION OF ID(1) AND THE GNAME LABEL. - NTAU = KPDS(14) - DO 2100 J=1,19 - KXXT=LTRS(J) - IF(NTAU.EQ.KTAU(J)) GO TO 2200 - 2100 CONTINUE - GO TO 7600 -C - 2200 CONTINUE - LXXT=TTAAII(4) - IF(LXXT.NE.KXXT) GO TO 7500 -C ..... VERIFY THE LEVEL PORTION (II) OF THE GNAME LABEL. - JLEV=0 - IF(KPDS(7).NE.0) GO TO 2300 - IF(NAME(3).EQ.II(1)) JLEV=1 - IF(NAME(3).EQ.II(17)) JLEV=17 - IF(JLEV.NE.0) GO TO 2600 - GO TO 7500 -C - 2300 CONTINUE - DO 2400 J=2,16 - JLEV=J - IF(KPDS(7).EQ.LEVS(J)) GO TO 2500 - 2400 CONTINUE - GO TO 7700 - 2500 CONTINUE - IF(NAME(3).NE.II(JLEV)) GO TO 7500 - 2600 CONTINUE - IF(JTYPE.GT.3) GO TO 3500 -C ..... INITIALIZE CONSTANTS TO ADJUST DATA FROM O.N. 84 TO GRID CODE -C ..... UNITS. - IF(JTYPE.NE.3) GO TO 3000 -C ...TEMPERATURE. (KELVIN TO CELSIUS) - SCALE=1.0 - ADDON=273.16 - GO TO 3200 -C -C ...HEIGHT. (GPM TO DECAMETERS) - 3000 CONTINUE - IF(JTYPE.NE.2) GO TO 3100 - SCALE=0.1 - ADDON=ADDKH(JLEV-1) - GO TO 3200 -C - 3100 CONTINUE - IF(KIND.LT.9.OR.KIND.GT.10) GO TO 3500 -C ...PRESSURE. (SFC OR MSL) - SCALE = 0.01 - ADDON = 200.0 - 3200 CONTINUE -C ..... RESCALE DATA FIELD(S). (SEE TABLES I AND II IN O.N. 167) - DO 3300 K=1,KPTS - FLD1(K) = FLD1(K) * SCALE - ADDON - 3300 CONTINUE - IF (JTYPE .EQ. 3 .AND. JLEV.EQ.1) THEN ! Add -90.5 row for SST - DO K = 1, 360 - FLD1 (KPTS + K) = FLD1 (KPTS - 360 + K) - END DO - ENDIF - 3500 CONTINUE -C -C ..... DETERMINE WHICH OF THE 12 GRID AREAS ARE BULLETINS. ADJUST -C ..... BULLETIN NAME TO CORRECT AREA (A-L). DETERMINE WHETHER -C ..... NORTHERN HEMISPHERE, TROPICAL BELT, OR SOUTHERN HEMISPHERE -C ..... BULLETIN. -C - DO 5700 M=1,12 - IF(MDL(M).EQ.0) GO TO 5700 - TTAAII(3)=LTRS(M) -C ..... EXTRACT QUADRANTS FROM A 1 X 1 DEGREE GLOBAL GRID. - N=M - CALL QUADAX (FLD1, FLDA, N) -C - IF(KWND.EQ.0) GO TO 5000 - CALL QUADAX (FLD2, FLDB, N) ! V-WIND COMPONENT -C - IF(JTYPE.EQ.6) GO TO 4700 -C ..... FORM WIND DIRECTION AND SPEED. - CALL WINDY(FLDA,FLDB,KDIR,KSPD,KNBR) -C ..... SET WIND DIRECTION TO NEAREST 5 DEGREES AND FORM WIND GROUP -C ..... DDDVV. - DO 4600 K=1,KNBR - KDIR(K)=(FLOAT(KDIR(K))+2.5)/5.0 - KDIR(K)=KDIR(K)*5 - IF(KDIR(K).EQ.0.AND.KSPD(K).GT.0) KDIR(K)=360 - KFLD(K)=(KDIR(K)*100)+KSPD(K) - 4600 CONTINUE - GO TO 5500 -C - 4700 CONTINUE -C ..... PACK U AND V WIND COMPONENTS INTO SUUVV WIND GROUP. - CALL PAKWND(FLDA,FLDB,KFLD,KNBR) - GO TO 5500 -C - 5000 CONTINUE -C ..... CONVERT QUADRANT DATA TO INTEGER. - DO 5100 K=1,KNBR - IF(FLDA(K).LT.0) GO TO 5050 - KFLD(K)=FLDA(K)+0.5 - GO TO 5100 -C - 5050 CONTINUE - KFLD(K)=FLDA(K)-0.5 - 5100 CONTINUE - IF(JTYPE.NE.3) GO TO 5300 -C ..... ADJUST TEMPERATURES 500 MB AND ABOVE. -C ..... POSITIVE VALUES ARE ZEROED AND NEGATIVE VALUES ARE ABSOLUTE. - IF(JLEV.LT.5) GO TO 5500 - DO 5200 K=1,KNBR - IF(KFLD(K).GT.0) KFLD(K)=0 - KFLD(K)=IABS(KFLD(K)) - 5200 CONTINUE - 5300 CONTINUE - IF(JTYPE.NE.5) GO TO 5500 -C ..... SET RELATIVE HUMIDITY VALUES > THAN 99 PERCENT TO 99. - DO 5400 K=1,KNBR - IF(KFLD(K).GT.99) KFLD(K)=99 - 5400 CONTINUE - 5500 CONTINUE -C -C ..... FORMAT AND OUTPUT A BULLETIN. -C - CALL BULLET(GNAME1,MDL(M),KFLD,KPDS,NEXT,NBLK) - NBRTXS=NBRTXS+1 - WRITE (KOUT,rec=irec) NBLK(:1280) -c WRITE (KOUT,rec=irec) NBLK(:1280), LNFEED - irec=irec+1 - IF(NEXT.LE.1280) GO TO 5700 - WRITE (KOUT,rec=irec) NBLK(1281:) -c WRITE (KOUT,rec=irec) NBLK(1281:), LNFEED - irec=irec+1 - 5700 CONTINUE - GO TO 1000 -C -C ..... PRINT THE RUN SUMMARY AND EXIT THE PROGRAM. - 6000 CONTINUE -C - NBULLS = IBULLS - NUNPRO = NBULLS - NBRTXS - WRITE(KPRT,*) - WRITE(KPRT,*) ' NO. OF DATA CARDS PROCESSED ...... ', KRDSET - WRITE(KPRT,*) ' NO. OF BULLETINS TO MAKE ......... ', NBULLS - WRITE(KPRT,*) ' NO. OF BULLETINS IN TRANS FILE ... ', NBRTXS - WRITE(KPRT,*) ' NO. OF UNPROCESSED BULLETINS ..... ', NUNPRO - WRITE (TBULL, 15) NBRTXS - WRITE (TXBULL, 15) NBULLS - 15 FORMAT (I4) - MSG(5:8) = TBULL - MSG(13:16) = TXBULL - CALL W3TAGE('BULLS_GRIDBULL') - STOP -C -C ..... ERROR READING A DATA CARD SUBSET. SUBSET SKIPPED. - 7000 CONTINUE - KRDSET=KRDSET+1 - WRITE (KPRT,20) KRDSET - GO TO 1000 -C -C ..... BAD DATA CARD SUBSET LABEL(S). SUBSET SKIPPED. - 7100 CONTINUE - WRITE (KPRT,40) KRDSET,GNAME1,GNAME2 - GO TO 1000 -C -C ..... BAD DATA CARD SUBSET SEQUENCE NUMBER(S). SUBSET SKIPPED. - 7200 CONTINUE - WRITE(KPRT,50) KRDSET,KSEQ1,KSEQ2 - GO TO 1000 -C -C ..... BAD GNAME LABEL IN CARD SUBSET. SUBSET SKIPPED. - 7500 CONTINUE - WRITE (KPRT,80) KRDSET - GO TO 1000 -C -C ..... BAD TAU IN ID(1) OF CARD SUBSET. SUBSET SKIPPED. - 7600 CONTINUE - WRITE (KPRT,90) NTAU,KRDSET - GO TO 1000 -C -C ..... ILLEGAL LEVEL IN ID(2) OF CARD SUBSET. SUBSET SKIPPED. - 7700 CONTINUE - WRITE (KPRT,100) KPDS(7), KRDSET - GO TO 1000 -C - END diff --git a/sorc/gridbull.fd/PAKWND.f b/sorc/gridbull.fd/PAKWND.f deleted file mode 100755 index 5e7f9cba4b..0000000000 --- a/sorc/gridbull.fd/PAKWND.f +++ /dev/null @@ -1,57 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PAKWND PACKS U,V COMPONENTS TOGETHER -C PRGMMR: BOSTELMAN ORG: W/NMC42 DATE: 92-03-09 -C -C ABSTRACT: PACKS U AN V WIND COMPONENTS USING CODE 3856 SIGN -C CONVENTIONS. (ISUBS IN 333 BULLETIN HEADING MUST = 1. -C SEE CODE 1851.) -C -C PROGRAM HISTORY LOG: -C 81-12-20 R. ALLARD ORGINATOR -C 92-03-09 W. BOSTELMAN - UPGRADED DOCBLOCK -C -C USAGE: CALL PAKWND (U,V,K,N) -C INPUT ARGUMENT LIST: -C U - U WIND COMPONENT ARRAY (REAL*4) -C V - V WIND COMPONENT ARRAY (REAL*4) -C N - DIMENSION OF U, V, AND K ARRAYS -C -C OUTPUT ARGUMENT LIST: -C K - COMBINED SIGN AND U, V COMPONENT ARRAY (INTEGER*4) -C -C INPUT FILES: -C NONE -C -C OUTPUT FILES: -C NONE -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - SUBROUTINE PAKWND(U,V,K,N) -C - DIMENSION U(N), V(N), K(N) -C - DO 3000 J=1,N - IF(U(J).LT.0.0) GO TO 1000 - ISIGN=0 - IF(V(J).LT.0.0) ISIGN=20000 - GO TO 2000 - 1000 CONTINUE - ISIGN=10000 - IF(V(J).LT.0.0) ISIGN=30000 - 2000 CONTINUE - IU=ABS(U(J))+0.5 - IV=ABS(V(J))+0.5 - K(J)=IU*100+IV+ISIGN - 3000 CONTINUE -C - RETURN -C - END diff --git a/sorc/gridbull.fd/QUADAX.f b/sorc/gridbull.fd/QUADAX.f deleted file mode 100755 index fe09e5dc99..0000000000 --- a/sorc/gridbull.fd/QUADAX.f +++ /dev/null @@ -1,58 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: QUADAX Extracts qudrant from grid -C PRGMMR: BOSTELMAN ORG: W/NMC421 DATE: 96-05-23 -C -C ABSTRACT: Extracts desired quadrant from input field -C -C PROGRAM HISTORY LOG: -C 96-06-12 W.J. BOSTELMAN -C -C USAGE: CALL QUADAX (FLDS, FLDB, NQ) -C -C INPUT ARGUMENT LIST: -C FLDSA - 1 deg lat-lon grid field -C NQ - Area number of quadrant -C -C OUTPUT ARGUMENT LIST: -C FLDB - 5 deg lat-lon quadrant -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - SUBROUTINE QUADAX (FLDA, FLDB, NQ) -C - PARAMETER (IPTS = 360, JPTS = 181) - PARAMETER (IJOUT = 285) -C - INTEGER ILEFT (4), IRGHT (4) - INTEGER JBEGN (3), JEND (3), JINC(3) -C - REAL FLDA (IPTS, JPTS), FLDB(IJOUT) -C - DATA ILEFT / 271, 181, 91, 1 / - DATA IRGHT / 360, 271, 181, 91 / - DATA JBEGN / 71, 56, 111 / - DATA JEND / 1, 126, 181 / - DATA JINC / -5, 5, 5 / - DATA ISKIP / 5 / -C - IJ = 1 - NQJ = (NQ - 1) / 4 + 1 - NQI = MOD (NQ-1, 4) + 1 - DO J = JBEGN (NQJ), JEND (NQJ), JINC (NQJ) - DO I = ILEFT (NQI), IRGHT (NQI), ISKIP - FLDB (IJ) = FLDA (I,J) - IJ = IJ + 1 - END DO - IF (NQI .EQ. 1) THEN ! COPY 0E TO 360E - FLDB (IJ) = FLDA (1, J) - IJ = IJ + 1 - ENDIF - END DO -C - RETURN - END diff --git a/sorc/gridbull.fd/WINDY.f b/sorc/gridbull.fd/WINDY.f deleted file mode 100755 index 6d3ad403c2..0000000000 --- a/sorc/gridbull.fd/WINDY.f +++ /dev/null @@ -1,64 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: WINDY COMPUTES WIND SPEED AND DIRECTION -C PRGMMR: BOSTELMAN ORG: W/NMC42 DATE: 92-03-09 -C -C ABSTRACT: THIS SUBROUTINE COMPUTES THE WIND DIRECTION AND WIND -C SPEED AT EACH POINT IN A SET OF GRID POINTS FROM THE EARTH -C ORIENTED U AND V COMPONENTS FOR THE GIVEN SET OF POINTS. -C -C PROGRAM HISTORY LOG: -C 81-12-20 R. ALLARD ORGINATOR -C 92-03-09 W. BOSTELMAN - UPGRADED DOCBLOCK -C -C USAGE: CALL WINDY (U,V,NDIR,NSPD,N) -C INPUT ARGUMENT LIST: -C U - ARRAY OF WESTERLY WIND COMPONENTS (INPUT) -C V - ARRAY OF SOUTHERLY WIND COMPONENTS (INPUT) -C N - NUMBER OF ELEMENTS IN EACH OF THE ABOVE ARRAYS -C -C OUTPUT ARGUMENT LIST: -C NDIR - ARRAY OF WIND DIRECTIONS IN DEGREES (OUTPUT) -C NSPD - ARRAY OF WIND SPEEDS IN SAME UNIT AS U AND V (OUTPUT) -C -C INPUT FILES: -C NONE -C -C OUTPUT FILES: -C NONE -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - SUBROUTINE WINDY(U,V,NDIR,NSPD,N) -C - DIMENSION U(N), V(N), NDIR(N), NSPD(N) - DO 50 I=1,N - NSPD(I)=SQRT(U(I)*U(I)+V(I)*V(I))+0.5 - IF(NSPD(I)) 15,10,15 - 10 NDIR(I)=0 - GO TO 50 - 15 IF(U(I)) 20,29,20 - 20 DIR=(ATAN(V(I)/U(I)))*57.29578 - IF(DIR) 21,22,22 - 21 NDIR(I)=DIR-0.5 - GO TO 29 - 22 NDIR(I)=DIR+0.5 - 29 IF(V(I)) 40,30,30 - 30 IF(U(I)) 36,31,35 - 31 NDIR(I)=180 - GO TO 50 - 35 NDIR(I)=270-NDIR(I) - GO TO 50 - 36 NDIR(I)=90-NDIR(I) - GO TO 50 - 40 IF(U(I)) 36,45,35 - 45 NDIR(I)=360 - 50 CONTINUE - RETURN - END diff --git a/sorc/gridbull.fd/makefile.theia b/sorc/gridbull.fd/makefile.theia deleted file mode 100755 index 5843db34c7..0000000000 --- a/sorc/gridbull.fd/makefile.theia +++ /dev/null @@ -1,78 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BIN2CHAR.f BIN2EBCD.f BULLET.f GRIDBUL.f PAKWND.f QUADAX.f WINDY.f - -OBJS= BIN2CHAR.o BIN2EBCD.o BULLET.o GRIDBUL.o PAKWND.o QUADAX.o WINDY.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS= ${W3NCO_LIB4} ${BACIO_LIB4} -CMD = gridbull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -fp-model strict -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/gridbull.fd/makefile.wcoss b/sorc/gridbull.fd/makefile.wcoss deleted file mode 100755 index 5843db34c7..0000000000 --- a/sorc/gridbull.fd/makefile.wcoss +++ /dev/null @@ -1,78 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BIN2CHAR.f BIN2EBCD.f BULLET.f GRIDBUL.f PAKWND.f QUADAX.f WINDY.f - -OBJS= BIN2CHAR.o BIN2EBCD.o BULLET.o GRIDBUL.o PAKWND.o QUADAX.o WINDY.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS= ${W3NCO_LIB4} ${BACIO_LIB4} -CMD = gridbull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -fp-model strict -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/gridbull.fd/makefile.wcoss_cray b/sorc/gridbull.fd/makefile.wcoss_cray deleted file mode 100755 index d5295e3ce8..0000000000 --- a/sorc/gridbull.fd/makefile.wcoss_cray +++ /dev/null @@ -1,78 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BIN2CHAR.f BIN2EBCD.f BULLET.f GRIDBUL.f PAKWND.f QUADAX.f WINDY.f - -OBJS= BIN2CHAR.o BIN2EBCD.o BULLET.o GRIDBUL.o PAKWND.o QUADAX.o WINDY.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ftn -LDFLAGS = -LIBS= ${W3NCO_LIB4} ${BACIO_LIB4} -CMD = gridbull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -axCORE-AVX2 -fp-model strict -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/gridbull.fd/makefile.wcoss_dell_p3 b/sorc/gridbull.fd/makefile.wcoss_dell_p3 deleted file mode 100755 index 1827a727c5..0000000000 --- a/sorc/gridbull.fd/makefile.wcoss_dell_p3 +++ /dev/null @@ -1,78 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BIN2CHAR.f BIN2EBCD.f BULLET.f GRIDBUL.f PAKWND.f QUADAX.f WINDY.f - -OBJS= BIN2CHAR.o BIN2EBCD.o BULLET.o GRIDBUL.o PAKWND.o QUADAX.o WINDY.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS= ${W3NCO_LIB4} ${BACIO_LIB4} -CMD = gridbull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -axCORE-AVX2 -fp-model strict -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index d70b76a046..38a44930ba 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -8,16 +8,16 @@ machine=${2} if [ $# -lt 2 ]; then echo '***ERROR*** must specify two arguements: (1) RUN_ENVIR, (2) machine' - echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia )' + echo ' Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera )' exit 1 fi if [ $RUN_ENVIR != emc -a $RUN_ENVIR != nco ]; then - echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia )' + echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera )' exit 1 fi -if [ $machine != cray -a $machine != theia -a $machine != dell ]; then - echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | theia )' +if [ $machine != cray -a $machine != dell -a $machine != hera ]; then + echo 'Syntax: link_fv3gfs.sh ( nco | emc ) ( cray | dell | hera )' exit 1 fi @@ -31,76 +31,116 @@ pwd=$(pwd -P) #--model fix fields #------------------------------ if [ $machine == "cray" ]; then - FIX_DIR="/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix" + FIX_DIR="/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix_nco_gfsv16" elif [ $machine = "dell" ]; then - FIX_DIR="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix_nco_gfsv15" # GFSv15 fix -elif [ $machine = "theia" ]; then - FIX_DIR="/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix" + FIX_DIR="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix_nco_gfsv16" +elif [ $machine = "hera" ]; then + FIX_DIR="/scratch1/NCEPDEV/global/glopara/fix_nco_gfsv16" fi cd ${pwd}/../fix ||exit 8 -for dir in fix_am fix_chem fix_fv3 fix_fv3_gmted2010 fix_orog fix_sfc_climo fix_verif ; do - [[ -d $dir ]] && rm -rf $dir - $LINK $FIX_DIR/$dir $dir +for dir in fix_am fix_fv3_gmted2010 fix_gldas fix_orog fix_verif fix_wave_gfs ; do + if [ -d $dir ]; then + [[ $RUN_ENVIR = nco ]] && chmod -R 755 $dir + rm -rf $dir + fi + $LINK $FIX_DIR/$dir . done +if [ -d ${pwd}/ufs_utils.fd ]; then + cd ${pwd}/ufs_utils.fd/sorc + ./link_fixdirs.sh $RUN_ENVIR $machine +fi -#------------------------------ -#--add gfs_post file -#------------------------------ +#--------------------------------------- +#--add files from external repositories +#--------------------------------------- cd ${pwd}/../jobs ||exit 8 - $LINK ../sorc/gfs_post.fd/jobs/JGLOBAL_POST_MANAGER . - $LINK ../sorc/gfs_post.fd/jobs/JGLOBAL_NCEPPOST . + $LINK ../sorc/gfs_post.fd/jobs/JGLOBAL_ATMOS_POST_MANAGER . + $LINK ../sorc/gfs_post.fd/jobs/JGLOBAL_ATMOS_NCEPPOST . + $LINK ../sorc/gldas.fd/jobs/JGDAS_ATMOS_GLDAS . cd ${pwd}/../parm ||exit 8 [[ -d post ]] && rm -rf post $LINK ../sorc/gfs_post.fd/parm post + [[ -d gldas ]] && rm -rf gldas + $LINK ../sorc/gldas.fd/parm gldas cd ${pwd}/../scripts ||exit 8 - $LINK ../sorc/gfs_post.fd/scripts/exgdas_nceppost.sh.ecf . - $LINK ../sorc/gfs_post.fd/scripts/exgfs_nceppost.sh.ecf . - $LINK ../sorc/gfs_post.fd/scripts/exglobal_pmgr.sh.ecf . + $LINK ../sorc/gfs_post.fd/scripts/exgdas_atmos_nceppost.sh . + $LINK ../sorc/gfs_post.fd/scripts/exgfs_atmos_nceppost.sh . + $LINK ../sorc/gfs_post.fd/scripts/exglobal_atmos_pmgr.sh . + $LINK ../sorc/ufs_utils.fd/scripts/exemcsfc_global_sfc_prep.sh . + $LINK ../sorc/gldas.fd/scripts/exgdas_atmos_gldas.sh . cd ${pwd}/../ush ||exit 8 - for file in fv3gfs_downstream_nems.sh fv3gfs_dwn_nems.sh gfs_nceppost.sh gfs_transfer.sh link_crtm_fix.sh trim_rh.sh fix_precip.sh; do + for file in fv3gfs_downstream_nems.sh fv3gfs_dwn_nems.sh gfs_nceppost.sh \ + gfs_transfer.sh mod_icec.sh link_crtm_fix.sh trim_rh.sh fix_precip.sh; do $LINK ../sorc/gfs_post.fd/ush/$file . done + for file in emcsfc_ice_blend.sh fv3gfs_driver_grid.sh fv3gfs_make_orog.sh global_cycle_driver.sh \ + emcsfc_snow.sh fv3gfs_filter_topo.sh global_chgres_driver.sh global_cycle.sh \ + fv3gfs_chgres.sh fv3gfs_make_grid.sh global_chgres.sh ; do + $LINK ../sorc/ufs_utils.fd/ush/$file . + done + for file in gldas_archive.sh gldas_forcing.sh gldas_get_data.sh gldas_process_data.sh gldas_liscrd.sh gldas_post.sh ; do + $LINK ../sorc/gldas.fd/ush/$file . + done +cd ${pwd}/../util ||exit 8 + for file in sub_slurm sub_wcoss_c sub_wcoss_d ; do + $LINK ../sorc/ufs_utils.fd/util/$file . + done -#------------------------------ -#--add gfs_wafs file -#------------------------------ -cd ${pwd}/../jobs ||exit 8 - $LINK ../sorc/gfs_wafs.fd/jobs/* . -cd ${pwd}/../parm ||exit 8 - [[ -d wafs ]] && rm -rf wafs +#----------------------------------- +#--add gfs_wafs link if checked out +if [ -d ${pwd}/gfs_wafs.fd ]; then +#----------------------------------- + cd ${pwd}/../jobs ||exit 8 + $LINK ../sorc/gfs_wafs.fd/jobs/* . + cd ${pwd}/../parm ||exit 8 + [[ -d wafs ]] && rm -rf wafs $LINK ../sorc/gfs_wafs.fd/parm/wafs wafs -cd ${pwd}/../scripts ||exit 8 + cd ${pwd}/../scripts ||exit 8 $LINK ../sorc/gfs_wafs.fd/scripts/* . -cd ${pwd}/../ush ||exit 8 + cd ${pwd}/../ush ||exit 8 $LINK ../sorc/gfs_wafs.fd/ush/* . -cd ${pwd}/../fix ||exit 8 + cd ${pwd}/../fix ||exit 8 + [[ -d wafs ]] && rm -rf wafs $LINK ../sorc/gfs_wafs.fd/fix/* . +fi #------------------------------ #--add GSI/EnKF file #------------------------------ cd ${pwd}/../jobs ||exit 8 - $LINK ../sorc/gsi.fd/jobs/JGLOBAL_ANALYSIS . - $LINK ../sorc/gsi.fd/jobs/JGLOBAL_ENKF_SELECT_OBS . - $LINK ../sorc/gsi.fd/jobs/JGLOBAL_ENKF_INNOVATE_OBS . - $LINK ../sorc/gsi.fd/jobs/JGLOBAL_ENKF_UPDATE . - $LINK ../sorc/gsi.fd/jobs/JGDAS_ENKF_RECENTER . - $LINK ../sorc/gsi.fd/jobs/JGDAS_ENKF_FCST . - $LINK ../sorc/gsi.fd/jobs/JGDAS_ENKF_POST . + $LINK ../sorc/gsi.fd/jobs/JGLOBAL_ATMOS_ANALYSIS . + $LINK ../sorc/gsi.fd/jobs/JGLOBAL_ATMOS_ANALYSIS_CALC . + $LINK ../sorc/gsi.fd/jobs/JGDAS_ATMOS_ANALYSIS_DIAG . + $LINK ../sorc/gsi.fd/jobs/JGDAS_ENKF_SELECT_OBS . + $LINK ../sorc/gsi.fd/jobs/JGDAS_ENKF_DIAG . + $LINK ../sorc/gsi.fd/jobs/JGDAS_ENKF_UPDATE . + $LINK ../sorc/gsi.fd/jobs/JGDAS_ENKF_ECEN . + $LINK ../sorc/gsi.fd/jobs/JGDAS_ENKF_SFC . + $LINK ../sorc/gsi.fd/jobs/JGDAS_ENKF_FCST . + $LINK ../sorc/gsi.fd/jobs/JGDAS_ENKF_POST . + $LINK ../sorc/gsi.fd/jobs/JGDAS_ATMOS_CHGRES_FORENKF . cd ${pwd}/../scripts ||exit 8 - $LINK ../sorc/gsi.fd/scripts/exglobal_analysis_fv3gfs.sh.ecf . - $LINK ../sorc/gsi.fd/scripts/exglobal_innovate_obs_fv3gfs.sh.ecf . - $LINK ../sorc/gsi.fd/scripts/exglobal_enkf_innovate_obs_fv3gfs.sh.ecf . - $LINK ../sorc/gsi.fd/scripts/exglobal_enkf_update_fv3gfs.sh.ecf . - $LINK ../sorc/gsi.fd/scripts/exglobal_enkf_recenter_fv3gfs.sh.ecf . - $LINK ../sorc/gsi.fd/scripts/exglobal_enkf_fcst_fv3gfs.sh.ecf . - $LINK ../sorc/gsi.fd/scripts/exglobal_enkf_post_fv3gfs.sh.ecf . + $LINK ../sorc/gsi.fd/scripts/exglobal_atmos_analysis.sh . + $LINK ../sorc/gsi.fd/scripts/exglobal_atmos_analysis_calc.sh . + $LINK ../sorc/gsi.fd/scripts/exglobal_diag.sh . + $LINK ../sorc/gsi.fd/scripts/exgdas_enkf_select_obs.sh . + $LINK ../sorc/gsi.fd/scripts/exgdas_enkf_update.sh . + $LINK ../sorc/gsi.fd/scripts/exgdas_enkf_ecen.sh . + $LINK ../sorc/gsi.fd/scripts/exgdas_enkf_sfc.sh . + $LINK ../sorc/gsi.fd/scripts/exgdas_enkf_fcst.sh . + $LINK ../sorc/gsi.fd/scripts/exgdas_enkf_post.sh . + $LINK ../sorc/gsi.fd/scripts/exgdas_atmos_chgres_forenkf.sh . cd ${pwd}/../fix ||exit 8 [[ -d fix_gsi ]] && rm -rf fix_gsi $LINK ../sorc/gsi.fd/fix fix_gsi +cd ${pwd}/../ush ||exit 8 + $LINK ../sorc/gsi.fd/ush/gsi_utils.py . + $LINK ../sorc/gsi.fd/ush/calcanl_gfs.py . + $LINK ../sorc/gsi.fd/ush/calcinc_gfs.py . + $LINK ../sorc/gsi.fd/ush/getncdimlen . #------------------------------ @@ -118,10 +158,10 @@ cd ${pwd}/../fix ||exit 8 $LINK ../../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/fix/gdas_radmon_satype.txt . $LINK ../../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/fix/gdas_radmon_scaninfo.txt . cd ${pwd}/../jobs ||exit 8 - $LINK ../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gdas.v1.0.0/jobs/JGDAS_VMINMON . - $LINK ../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gfs.v1.0.0/jobs/JGFS_VMINMON . - $LINK ../sorc/gsi.fd/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/jobs/JGDAS_VERFOZN . - $LINK ../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/jobs/JGDAS_VERFRAD . + $LINK ../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gdas.v1.0.0/jobs/JGDAS_ATMOS_VMINMON . + $LINK ../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gfs.v1.0.0/jobs/JGFS_ATMOS_VMINMON . + $LINK ../sorc/gsi.fd/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/jobs/JGDAS_ATMOS_VERFOZN . + $LINK ../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/jobs/JGDAS_ATMOS_VERFRAD . cd ${pwd}/../parm ||exit 8 [[ -d mon ]] && rm -rf mon mkdir -p mon @@ -132,10 +172,10 @@ cd ${pwd}/../parm ||exit 8 $LINK ../../sorc/gsi.fd/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/parm/gdas_oznmon.parm . # $LINK ../../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/parm/gdas_radmon.parm . cd ${pwd}/../scripts ||exit 8 - $LINK ../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gdas.v1.0.0/scripts/exgdas_vrfminmon.sh.ecf . - $LINK ../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gfs.v1.0.0/scripts/exgfs_vrfminmon.sh.ecf . - $LINK ../sorc/gsi.fd/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/scripts/exgdas_vrfyozn.sh.ecf . - $LINK ../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/scripts/exgdas_vrfyrad.sh.ecf . + $LINK ../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gdas.v1.0.0/scripts/exgdas_atmos_vminmon.sh . + $LINK ../sorc/gsi.fd/util/Minimization_Monitor/nwprod/gfs.v1.0.0/scripts/exgfs_atmos_vminmon.sh . + $LINK ../sorc/gsi.fd/util/Ozone_Monitor/nwprod/gdas_oznmon.v2.0.0/scripts/exgdas_atmos_verfozn.sh . + $LINK ../sorc/gsi.fd/util/Radiance_Monitor/nwprod/gdas_radmon.v3.0.0/scripts/exgdas_atmos_verfrad.sh . cd ${pwd}/../ush ||exit 8 $LINK ../sorc/gsi.fd/util/Minimization_Monitor/nwprod/minmon_shared.v1.0.1/ush/minmon_xtrct_costs.pl . $LINK ../sorc/gsi.fd/util/Minimization_Monitor/nwprod/minmon_shared.v1.0.1/ush/minmon_xtrct_gnorms.pl . @@ -156,54 +196,128 @@ cd ${pwd}/../ush ||exit 8 cd $pwd/../exec [[ -s global_fv3gfs.x ]] && rm -f global_fv3gfs.x $LINK ../sorc/fv3gfs.fd/NEMS/exe/global_fv3gfs.x . +if [ -d ../sorc/fv3gfs.fd/WW3/exec ]; then # Wave execs + for waveexe in ww3_gint ww3_grib ww3_grid ww3_multi ww3_ounf ww3_ounp ww3_outf ww3_outp ww3_prep ww3_prnc; do + [[ -s $waveexe ]] && rm -f $waveexe + $LINK ../sorc/fv3gfs.fd/WW3/exec/$waveexe . + done +fi [[ -s gfs_ncep_post ]] && rm -f gfs_ncep_post $LINK ../sorc/gfs_post.fd/exec/ncep_post gfs_ncep_post -for wafsexe in wafs_awc_wafavn wafs_blending wafs_cnvgrib2 wafs_gcip wafs_makewafs wafs_setmissing; do - [[ -s $wafsexe ]] && rm -f $wafsexe - $LINK ../sorc/gfs_wafs.fd/exec/$wafsexe . -done +if [ -d ${pwd}/gfs_wafs.fd ]; then + for wafsexe in \ + wafs_awc_wafavn wafs_blending wafs_blending_0p25 \ + wafs_cnvgrib2 wafs_gcip wafs_grib2_0p25 \ + wafs_makewafs wafs_setmissing; do + [[ -s $wafsexe ]] && rm -f $wafsexe + $LINK ../sorc/gfs_wafs.fd/exec/$wafsexe . + done +fi +for ufs_utilsexe in \ + emcsfc_ice_blend emcsfc_snow2mdl global_chgres global_cycle ; do + [[ -s $ufs_utilsexe ]] && rm -f $ufs_utilsexe + $LINK ../sorc/ufs_utils.fd/exec/$ufs_utilsexe . +done -for gsiexe in global_gsi.x global_enkf.x calc_increment_ens.x getsfcensmeanp.x getsigensmeanp_smooth.x getsigensstatp.x recentersigp.x oznmon_horiz.x oznmon_time.x radmon_angle radmon_bcoef radmon_bcor radmon_time ;do +for gsiexe in calc_analysis.x calc_increment_ens_ncio.x calc_increment_ens.x \ + getsfcensmeanp.x getsigensmeanp_smooth.x getsigensstatp.x global_enkf.x global_gsi.x \ + interp_inc.x ncdiag_cat.x oznmon_horiz.x oznmon_time.x radmon_angle.x \ + radmon_bcoef.x radmon_bcor.x radmon_time.x recentersigp.x;do [[ -s $gsiexe ]] && rm -f $gsiexe $LINK ../sorc/gsi.fd/exec/$gsiexe . done +for gldasexe in gdas2gldas gldas2gdas gldas_forcing gldas_model gldas_post gldas_rst; do + [[ -s $gldasexe ]] && rm -f $gldasexe + $LINK ../sorc/gldas.fd/exec/$gldasexe . +done #------------------------------ #--link source code directories #------------------------------ cd ${pwd}/../sorc || exit 8 + [[ -d calc_analysis.fd ]] && rm -rf calc_analysis.fd + $SLINK gsi.fd/util/netcdf_io/calc_analysis.fd calc_analysis.fd + + [[ -d calc_increment_ens.fd ]] && rm -rf calc_increment_ens.fd $SLINK gsi.fd/util/EnKF/gfs/src/calc_increment_ens.fd calc_increment_ens.fd + + [[ -d calc_increment_ens_ncio.fd ]] && rm -rf calc_increment_ens_ncio.fd + $SLINK gsi.fd/util/EnKF/gfs/src/calc_increment_ens_ncio.fd calc_increment_ens_ncio.fd + + [[ -d getsfcensmeanp.fd ]] && rm -rf getsfcensmeanp.fd $SLINK gsi.fd/util/EnKF/gfs/src/getsfcensmeanp.fd getsfcensmeanp.fd + + [[ -d getsigensmeanp_smooth.fd ]] && rm -rf getsigensmeanp_smooth.fd $SLINK gsi.fd/util/EnKF/gfs/src/getsigensmeanp_smooth.fd getsigensmeanp_smooth.fd + + [[ -d getsigensstatp.fd ]] && rm -rf getsigensstatp.fd $SLINK gsi.fd/util/EnKF/gfs/src/getsigensstatp.fd getsigensstatp.fd - $SLINK gsi.fd/src global_enkf.fd - $SLINK gsi.fd/src global_gsi.fd + + [[ -d global_enkf.fd ]] && rm -rf global_enkf.fd + $SLINK gsi.fd/src/enkf global_enkf.fd + + [[ -d global_gsi.fd ]] && rm -rf global_gsi.fd + $SLINK gsi.fd/src/gsi global_gsi.fd + + [[ -d interp_inc.fd ]] && rm -rf interp_inc.fd + $SLINK gsi.fd/util/netcdf_io/interp_inc.fd interp_inc.fd + + [[ -d ncdiag.fd ]] && rm -rf ncdiag.fd + $SLINK gsi.fd/src/ncdiag ncdiag_cat.fd + + [[ -d oznmon_horiz.fd ]] && rm -rf oznmon_horiz.fd $SLINK gsi.fd/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_horiz.fd oznmon_horiz.fd + + [[ -d oznmon_time.fd ]] && rm -rf oznmon_time.fd $SLINK gsi.fd/util/Ozone_Monitor/nwprod/oznmon_shared.v2.0.0/sorc/oznmon_time.fd oznmon_time.fd + + [[ -d radmon_angle.fd ]] && rm -rf radmon_angle.fd $SLINK gsi.fd/util/Radiance_Monitor/nwprod/radmon_shared.v3.0.0/sorc/verf_radang.fd radmon_angle.fd + + [[ -d radmon_bcoef.fd ]] && rm -rf radmon_bcoef.fd $SLINK gsi.fd/util/Radiance_Monitor/nwprod/radmon_shared.v3.0.0/sorc/verf_radbcoef.fd radmon_bcoef.fd + + [[ -d radmon_bcor.fd ]] && rm -rf radmon_bcor.fd $SLINK gsi.fd/util/Radiance_Monitor/nwprod/radmon_shared.v3.0.0/sorc/verf_radbcor.fd radmon_bcor.fd + + [[ -d radmon_time.fd ]] && rm -rf radmon_time.fd $SLINK gsi.fd/util/Radiance_Monitor/nwprod/radmon_shared.v3.0.0/sorc/verf_radtime.fd radmon_time.fd + + [[ -d recentersigp.fd ]] && rm -rf recentersigp.fd $SLINK gsi.fd/util/EnKF/gfs/src/recentersigp.fd recentersigp.fd $SLINK gfs_post.fd/sorc/ncep_post.fd gfs_ncep_post.fd - $SLINK fre-nctools.fd/tools/filter_topo filter_topo.fd - $SLINK fre-nctools.fd/tools/fregrid fregrid.fd - $SLINK fre-nctools.fd/tools/make_hgrid make_hgrid.fd - $SLINK fre-nctools.fd/tools/make_solo_mosaic make_solo_mosaic.fd - $SLINK fre-nctools.fd/tools/shave.fd shave.fd - - $SLINK gfs_wafs.fd/sorc/wafs_awc_wafavn.fd wafs_awc_wafavn.fd - $SLINK gfs_wafs.fd/sorc/wafs_blending.fd wafs_blending.fd - $SLINK gfs_wafs.fd/sorc/wafs_cnvgrib2.fd wafs_cnvgrib2.fd - $SLINK gfs_wafs.fd/sorc/wafs_gcip.fd wafs_gcip.fd - $SLINK gfs_wafs.fd/sorc/wafs_makewafs.fd wafs_makewafs.fd - $SLINK gfs_wafs.fd/sorc/wafs_setmissing.fd wafs_setmissing.fd + + $SLINK ufs_utils.fd/sorc/fre-nctools.fd/tools/shave.fd shave.fd + for prog in filter_topo fregrid make_hgrid make_solo_mosaic ; do + $SLINK ufs_utils.fd/sorc/fre-nctools.fd/tools/$prog ${prog}.fd + done + for prog in global_cycle.fd nemsio_read.fd nemsio_chgdate.fd \ + emcsfc_ice_blend.fd nst_tf_chg.fd \ + emcsfc_snow2mdl.fd global_chgres.fd nemsio_get.fd orog.fd ;do + $SLINK ufs_utils.fd/sorc/$prog $prog + done + + + if [ -d ${pwd}/gfs_wafs.fd ]; then + $SLINK gfs_wafs.fd/sorc/wafs_awc_wafavn.fd wafs_awc_wafavn.fd + $SLINK gfs_wafs.fd/sorc/wafs_blending.fd wafs_blending.fd + $SLINK gfs_wafs.fd/sorc/wafs_blending_0p25.fd wafs_blending_0p25.fd + $SLINK gfs_wafs.fd/sorc/wafs_cnvgrib2.fd wafs_cnvgrib2.fd + $SLINK gfs_wafs.fd/sorc/wafs_gcip.fd wafs_gcip.fd + $SLINK gfs_wafs.fd/sorc/wafs_grib2_0p25.fd wafs_grib2_0p25.fd + $SLINK gfs_wafs.fd/sorc/wafs_makewafs.fd wafs_makewafs.fd + $SLINK gfs_wafs.fd/sorc/wafs_setmissing.fd wafs_setmissing.fd + fi + + for prog in gdas2gldas.fd gldas2gdas.fd gldas_forcing.fd gldas_model.fd gldas_post.fd gldas_rst.fd ;do + $SLINK gldas.fd/sorc/$prog $prog + done #------------------------------ #--choose dynamic config.base for EMC installation @@ -212,6 +326,7 @@ cd $pwd/../parm/config [[ -s config.base ]] && rm -f config.base if [ $RUN_ENVIR = nco ] ; then cp -p config.base.nco.static config.base + cp -p config.resources.nco.static config.resources else cp -p config.base.emc.dyn config.base fi @@ -220,5 +335,3 @@ fi exit 0 - - diff --git a/sorc/machine-setup.sh b/sorc/machine-setup.sh index 776b76de69..2dbe6abd7e 100644 --- a/sorc/machine-setup.sh +++ b/sorc/machine-setup.sh @@ -18,36 +18,33 @@ fi target="" USERNAME=`echo $LOGNAME | awk '{ print tolower($0)'}` - -if [[ -d /lfs3 ]] ; then - # We are on NOAA Jet - if ( ! eval module help > /dev/null 2>&1 ) ; then - echo load the module command 1>&2 - source /apps/lmod/lmod/init/$__ms_shell - fi - target=jet - module purge - export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib - echo NCEPLIBS HARD SET to $NCEPLIBS in `pwd`/module_setup.sh.inc - module use $NCEPLIBS/modulefiles -elif [[ -d /scratch3 ]] ; then - # We are on NOAA Theia +##--------------------------------------------------------------------------- +export hname=`hostname | cut -c 1,1` +if [[ -d /scratch1 ]] ; then + # We are on NOAA Hera if ( ! eval module help > /dev/null 2>&1 ) ; then echo load the module command 1>&2 source /apps/lmod/lmod/init/$__ms_shell fi - target=theia + target=hera module purge - module use /scratch3/NCEPDEV/nwprod/modulefiles/ - module use /scratch3/NCEPDEV/nwprod/lib/modulefiles + module load intel + module load impi + export NCEPLIBS=/scratch2/NCEPDEV/nwprod/NCEPLIBS + module use $NCEPLIBS/modulefiles + #export WRFPATH=$NCEPLIBS/wrf.shared.new/v1.1.1/src + export myFC=mpiifort + export FCOMP=mpiifort + +##--------------------------------------------------------------------------- elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then # We are on NOAA Luna or Surge if ( ! eval module help > /dev/null 2>&1 ) ; then echo load the module command 1>&2 source /opt/modules/default/init/$__ms_shell fi - target=wcoss_cray + target=wcoss_cray # Silence the "module purge" to avoid the expected error messages # related to modules that load modules. module purge > /dev/null 2>&1 @@ -59,12 +56,10 @@ elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then module use /opt/cray/ari/modulefiles module use /opt/modulefiles module purge > /dev/null 2>&1 - # Workaround until module issues are fixed: #unset _LMFILES_ #unset LOADEDMODULES echo y 2> /dev/null | module clear > /dev/null 2>&1 - module use /usrx/local/prod/modulefiles module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles module use /gpfs/hps/nco/ops/nwprod/modulefiles @@ -74,6 +69,7 @@ elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then module use /opt/modulefiles module load modules +##--------------------------------------------------------------------------- elif [[ -L /usrx && "$( readlink /usrx 2> /dev/null )" =~ dell ]] ; then # We are on NOAA Venus or Mars if ( ! eval module help > /dev/null 2>&1 ) ; then @@ -83,6 +79,8 @@ elif [[ -L /usrx && "$( readlink /usrx 2> /dev/null )" =~ dell ]] ; then target=wcoss_dell_p3 module purge +##--------------------------------------------------------------------------- + elif [[ -d /dcom && -d /hwrf ]] ; then # We are on NOAA Tide or Gyre if ( ! eval module help > /dev/null 2>&1 ) ; then @@ -91,6 +89,8 @@ elif [[ -d /dcom && -d /hwrf ]] ; then fi target=wcoss module purge + +##--------------------------------------------------------------------------- elif [[ -d /glade ]] ; then # We are on NCAR Yellowstone if ( ! eval module help > /dev/null 2>&1 ) ; then @@ -99,19 +99,82 @@ elif [[ -d /glade ]] ; then fi target=yellowstone module purge + +##--------------------------------------------------------------------------- elif [[ -d /lustre && -d /ncrc ]] ; then # We are on GAEA. + # We are on GAEA. + echo gaea if ( ! eval module help > /dev/null 2>&1 ) ; then # We cannot simply load the module command. The GAEA # /etc/profile modifies a number of module-related variables # before loading the module command. Without those variables, # the module command fails. Hence we actually have to source # /etc/profile here. - echo load the module command 1>&2 source /etc/profile + __ms_source_etc_profile=yes + else + __ms_source_etc_profile=no fi - target=gaea module purge + module purge +# clean up after purge + unset _LMFILES_ + unset _LMFILES_000 + unset _LMFILES_001 + unset LOADEDMODULES + module load modules + if [[ -d /opt/cray/ari/modulefiles ]] ; then + module use -a /opt/cray/ari/modulefiles + fi + if [[ -d /opt/cray/pe/ari/modulefiles ]] ; then + module use -a /opt/cray/pe/ari/modulefiles + fi + if [[ -d /opt/cray/pe/craype/default/modulefiles ]] ; then + module use -a /opt/cray/pe/craype/default/modulefiles + fi + if [[ -s /etc/opt/cray/pe/admin-pe/site-config ]] ; then + source /etc/opt/cray/pe/admin-pe/site-config + fi + export NCEPLIBS=/lustre/f1/pdata/ncep_shared/NCEPLIBS/lib + if [[ -d "$NCEPLIBS" ]] ; then + module use $NCEPLIBS/modulefiles + fi + if [[ "$__ms_source_etc_profile" == yes ]] ; then + source /etc/profile + unset __ms_source_etc_profile + fi + +target=gaea + +# GWV ADD +module load craype +module load intel +export NCEPLIBS=/lustre/f2/dev/ncep/George.Vandenberghe/NEWCOPY/l508/lib/ +module use $NCEPLIBS/modulefiles +export myFC=ftn +export WRFPATH=$NCEPLIBS/wrf.shared.new/v1.1.1/src +export FCOMP=ftn +# END GWV ADD + +##--------------------------------------------------------------------------- +elif [[ -d /lfs3 ]] ; then + # We are on NOAA Jet + if ( ! eval module help > /dev/null 2>&1 ) ; then + echo load the module command 1>&2 + source /apps/lmod/lmod/init/$__ms_shell + fi + target=jet + module purge +module load intel/15.0.3.187 +module load impi +#export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib + export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/ljtjet/lib +export NCEPLIBS=/mnt/lfs3/projects/hfv3gfs/gwv/NCEPLIBS.15X + module use $NCEPLIBS/modulefiles +export WRFPATH=$NCEPLIBS/wrf.shared.new/v1.1.1/src +export myFC=mpiifort + else echo WARNING: UNKNOWN PLATFORM 1>&2 fi diff --git a/sorc/mkgfsnemsioctl.fd/makefile b/sorc/mkgfsnemsioctl.fd/makefile deleted file mode 100755 index 351cda92d4..0000000000 --- a/sorc/mkgfsnemsioctl.fd/makefile +++ /dev/null @@ -1,10 +0,0 @@ -SHELL =/bin/ksh -EXEC =../../exec/mkgfsnemsioctl -FOPTS = -O -FR -I$(NEMSIO_INC) -LOPTS = $(OPTS) -LIBS = $(NEMSIO_LIB) $(BACIO_LIB4) $(W3NCO_LIBd) -OBJS = mkgfsnemsioctl.o -SRCS = mkgfsnemsioctl.f -# ************************************************************************* -all: $(SRCS) - $(FCMP) $(FOPTS) $(LOPTS) ${SRCS} -o $(EXEC) $(LIBS) diff --git a/sorc/mkgfsnemsioctl.fd/mkgfsnemsioctl.f b/sorc/mkgfsnemsioctl.fd/mkgfsnemsioctl.f deleted file mode 100644 index cdc9efc901..0000000000 --- a/sorc/mkgfsnemsioctl.fd/mkgfsnemsioctl.f +++ /dev/null @@ -1,535 +0,0 @@ -!- - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -- -! the program create NEMS GFS sfc ctl file -! -! Mar 12, 2015 Jun Wang -! - - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -- -! - program main - use nemsio_module - implicit none -! -!--------------------------------------------------------------------------- - type(nemsio_gfile) :: gfile - character(255) cin,cindx - real,allocatable :: data(:,:) -!--------------------------------------------------------------------------- -!--- nemsio meta data - integer nrec,im,jm,lm,idate(7),nfhour,tlmeta,nsoil,fieldsize - real(4),allocatable :: lat1(:),lat(:),lon1(:) - real(8),allocatable :: slat(:) - character(16),allocatable:: recname(:),reclevtyp(:) - integer,allocatable:: reclev(:) -!--------------------------------------------------------------------------- -!--- local vars - character(3) cmon - character(16) reclevtyp_sht - character(32) ctldate,varname - character(35) sweep_blanks - real(8) radi - real lon_stt,lat_stt,lon_intl,lat_intl - integer i,n,j,krec,iret,io_unit,idrt,nmeta -!--------------------------------------------------------------------------- -!--------------------------------------------------------------------------- -! - call nemsio_init(iret=iret) - if(iret/=0) print *,'ERROR: nemsio_init ' -! -!--------------------------------------------------------------------------- -!*** read nemsio grd header info -!--------------------------------------------------------------------------- -!--- open gfile for reading - call getarg(1,cin) - print *,'filename is cin=',trim(cin) - if(trim(cin)=='') then - print *,'usage: mknemsioctl input_nemsio_file_name' - stop - endif - call getarg(2,cindx) - if(trim(cindx)=='') then - cindx=trim(cin)//'.ctl' - endif - - call nemsio_open(gfile,trim(cin),'READ',iret=iret) - if(iret/=0) print *,'Error: open nemsio file,',trim(cin),' iret=',iret - - call nemsio_getfilehead(gfile,iret=iret,nrec=nrec,dimx=im,dimy=jm, & - dimz=lm,idate=idate,nfhour=nfhour,nmeta=nmeta, & - nsoil=nsoil,idrt=idrt,tlmeta=tlmeta) -! - fieldsize=im*jm - allocate(recname(nrec),reclevtyp(nrec),reclev(nrec)) - allocate(lat1(fieldsize),lat(jm),lon1(fieldsize)) - call nemsio_getfilehead(gfile,iret=iret,recname=recname, & - reclevtyp=reclevtyp,reclev=reclev,lat=lat1,lon=lon1) -! - call nemsio_close(gfile,iret=iret) -! - call nemsio_finalize() -! -!--------------------------------------------------------------------------- -!****** write .ctl file -!--------------------------------------------------------------------------- -! -!-- get date - call cmonth(idate(2),cmon) - write(ctldate,'(i2.2,a,i2.2,a3,i4.4)')idate(4),'Z',idate(3) & - ,cmon,idate(1) -!-- get Gaussian grid - if(idrt==4) then -!-- data has lat/lon info - if (nmeta>=8) then - lon_stt=lon1(1) - lon_intl=lon1(2)-lon1(1) - do j=1,jm - lat(j) = lat1(1+(j-1)*im) - enddo - else - call splat8(idrt,jm,slat) - radi=180.0/(4.*atan(1.0)) - do j=1,jm - lat(j) = asin(slat(j)) * radi - enddo - lon_stt=0. - lon_intl=360./real(jm) - endif - elseif(idrt==0) then - if(nmeta>=8) then - lon_stt=lon1(1) - lon_intl=lon1(2)-lon1(1) - lat_stt=-abs(lat1(1)) - lat_intl=abs(lat1(1+im)-lat1(1)) -!! print*, "im=",im,' jm=',jm -!! print*, "lon1=",lon1 -!! print*, "lat_intl=",lat_intl -!! print*, "lat1=",lat1 - else - if (mod(jm,2) == 0) then - lat_intl=180.0/real(jm) - lat_stt=-90.0+0.5*lat_intl - else - lat_intl=180.0/real(jm-1) - lat_stt=-90.0 - endif - lon_intl=360./real(im) - lon_stt=0.5*lon_intl - endif - endif - - io_unit=650 - open(io_unit,file=trim(cindx),form='formatted') -! - write(io_unit,105)trim(cin) - write(io_unit,106) - - if (idrt == 4 )then - write(io_unit,107) - elseif(idrt==0) then - if(nmeta>=8) then - if (lat1(1)>lat1(im+1)) then - write(io_unit,107) - else - write(io_unit,1077) - endif - else - write(io_unit,1077) - endif - endif - - write(io_unit,108)tlmeta - write(io_unit,109) - write(io_unit,111)im,lon_stt,lon_intl - if (idrt==4) then - write(io_unit,112)jm - write(io_unit,113)(lat(i),i=jm,1,-1) - else - write(io_unit,120)jm,lat_stt,lat_intl - endif - write(io_unit,114)lm - if(nfhour/=0) then - write(io_unit,115)1,trim(ctldate),nfhour - else - write(io_unit,116)1,trim(ctldate) - endif - -! - 105 FORMAT('dset ^',A) - 106 FORMAT('undef 9.99E+20') - 107 FORMAT('options big_endian sequential yrev') - 1077 FORMAT('options big_endian sequential') - 108 FORMAT('fileheader',I12.0) - 109 FORMAT('title gfs nemsioi file') - - 111 FORMAT('xdef ',I6,' linear ',f9.6,' ',f9.6) - 112 FORMAT('ydef ',I6,' levels') - 113 FORMAT(10f11.6) - - 114 FORMAT('zdef ',I6,' linear 1 1') - 115 FORMAT('tdef ',I6,' linear ',A12,' ',I6,'hr') - 116 FORMAT('tdef ',I6,' linear ',A12,' 1yr') -! - 120 FORMAT('ydef ',I6,' linear ',f13.6,' ',f9.6) -! - krec=0 - do n=1,nrec - if(reclev(n)==1) then - krec=krec+1 - endif - enddo - - WRITE(IO_UNIT,'(A,I6)')'VARS ',krec - - n=1 - do while (n<=nrec) - reclevtyp_sht=reclevtyp(n) - if(trim(reclevtyp_sht) == "convect-cld bot") then - reclevtyp_sht="cvb" - elseif (trim(reclevtyp_sht) == "convect-cld top") then - reclevtyp_sht="cvt" - elseif (trim(reclevtyp_sht) == "high cld bot") then - reclevtyp_sht="hcb" - elseif (trim(reclevtyp_sht) == "high cld top") then - reclevtyp_sht="hct" - elseif (trim(reclevtyp_sht) == "mid cld bot") then - reclevtyp_sht="mcb" - elseif (trim(reclevtyp_sht) == "mid cld top") then - reclevtyp_sht="mct" - elseif (trim(reclevtyp_sht) == "low cld bot") then - reclevtyp_sht="lcb" - elseif (trim(reclevtyp_sht) == "low cld top") then - reclevtyp_sht="lct" - elseif (trim(reclevtyp_sht) == "convect-cld laye") then - reclevtyp_sht="cvcl" - elseif (trim(reclevtyp_sht) == "bndary-layer cld") then - reclevtyp_sht="bdrlc" - elseif (trim(reclevtyp_sht) == "atmos col") then - reclevtyp_sht="acol" - elseif (trim(reclevtyp_sht) == "high cld lay") then - reclevtyp_sht="hcl" - elseif (trim(reclevtyp_sht) == "mid cld lay") then - reclevtyp_sht="mcl" - elseif (trim(reclevtyp_sht) == "low cld lay") then - reclevtyp_sht="lcl" - elseif (trim(reclevtyp_sht) == "2 m above gnd") then - reclevtyp_sht="2m" - elseif (trim(reclevtyp_sht) == "10 m above gnd") then - reclevtyp_sht="10m" - endif - varname=sweep_blanks(trim(recname(n))//trim(reclevtyp_sht)) - if(trim(reclevtyp(n))=='mid layer') then - write(io_unit,'(a16,i3,a)')varname,lm,' 99 model layer' - n=n+lm - elseif(trim(reclevtyp(n))=='soil layer') then - write(io_unit,'(a16,i3,a)')varname,nsoil,' 99 soil layer' - n=n+nsoil - elseif(trim(reclevtyp(n))=='2 m above gnd') then - recname(n)=trim(recname(n))//'2m' - write(io_unit,'(a16,a7,a)')varname,' 0 99 ',trim(reclevtyp(n)) - n=n+1 - elseif(trim(reclevtyp(n))=='10 m above gnd') then - recname(n)=trim(recname(n))//'10m' - write(io_unit,'(a16,a7,a)')varname,' 0 99 ',trim(reclevtyp(n)) - n=n+1 - else - write(io_unit,'(a16,a7,a)')varname,' 0 99 ',trim(reclevtyp(n)) - n=n+1 - endif - enddo - - write(io_unit,'(A8)')'endvars' - close(io_unit) - -!--------------------------------------------------------------------------- -!****** clean up -!--------------------------------------------------------------------------- - deallocate(recname,reclevtyp,reclev,lat,lat1,lon1) -!--------------------------------------------------------------------------- -! -! - - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -- - stop - - end program -! - - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -- - SUBROUTINE CMONTH(IMON,CMON) -! -!----------------------------------------------------------------------- -!*** Convert month -!----------------------------------------------------------------------- -! - INTEGER,INTENT(IN) :: IMON - CHARACTER(LEN=3) :: CMON -! -!----------------------------------------------------------------------- -! - SELECT CASE (IMON) - CASE(1) - CMON='Jan' - CASE(2) - CMON='Feb' - CASE(3) - CMON='Mar' - CASE(4) - CMON='Apr' - CASE(5) - CMON='May' - CASE(6) - CMON='Jun' - CASE(7) - CMON='Jul' - CASE(8) - CMON='Aug' - CASE(9) - CMON='Sep' - CASE(10) - CMON='Oct' - CASE(11) - CMON='Nov' - CASE(12) - CMON='Dec' - END SELECT -! -!----------------------------------------------------------------------- -! - END SUBROUTINE CMONTH - -! - sUBROUTINE splat4(IDRT,JMAX,ASLAT) -! - implicit none - integer,intent(in) :: idrt,jmax - real(4),intent(out) :: ASLAT(JMAX) - INTEGER,PARAMETER:: KD=SELECTED_REAL_KIND(15,45) - REAL(KIND=KD):: PK(JMAX/2),PKM1(JMAX/2),PKM2(JMAX/2) - REAL(KIND=KD):: ASLATD(JMAX/2),SP,SPMAX,EPS=10.d0*EPSILON(SP) - integer,PARAMETER:: JZ=50 - REAL(8) BZ(JZ) - DATA BZ / 2.4048255577d0, 5.5200781103d0, & - 8.6537279129d0, 11.7915344391d0, 14.9309177086d0, 18.0710639679d0, & - 21.2116366299d0, 24.3524715308d0, 27.4934791320d0, 30.6346064684d0, & - 33.7758202136d0, 36.9170983537d0, 40.0584257646d0, 43.1997917132d0, & - 46.3411883717d0, 49.4826098974d0, 52.6240518411d0, 55.7655107550d0, & - 58.9069839261d0, 62.0484691902d0, 65.1899648002d0, 68.3314693299d0, & - 71.4729816036d0, 74.6145006437d0, 77.7560256304d0, 80.8975558711d0, & - 84.0390907769d0, 87.1806298436d0, 90.3221726372d0, 93.4637187819d0, & - 96.6052679510d0, 99.7468198587d0, 102.888374254d0, 106.029930916d0, & - 109.171489649d0, 112.313050280d0, 115.454612653d0, 118.596176630d0, & - 121.737742088d0, 124.879308913d0, 128.020877005d0, 131.162446275d0, & - 134.304016638d0, 137.445588020d0, 140.587160352d0, 143.728733573d0, & - 146.870307625d0, 150.011882457d0, 153.153458019d0, 156.295034268d0 / - REAL(8):: DLT,D1=1.d0 - INTEGER(4):: JHE,JHO,J0=0 - real(8),PARAMETER :: PI=3.14159265358979d0,C=(1.d0-(2.d0/PI)**2)*0.25d0 - real(8) r - integer jh,js,n,j -!C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -!C GAUSSIAN LATITUDES - IF(IDRT.EQ.4) THEN - JH=JMAX/2 - JHE=(JMAX+1)/2 - R=1.d0/SQRT((JMAX+0.5d0)**2+C) - DO J=1,MIN(JH,JZ) - ASLATD(J)=COS(BZ(J)*R) - ENDDO - DO J=JZ+1,JH - ASLATD(J)=COS((BZ(JZ)+(J-JZ)*PI)*R) - ENDDO - SPMAX=1.d0 - DO WHILE(SPMAX.GT.EPS) - SPMAX=0.d0 - DO J=1,JH - PKM1(J)=1.d0 - PK(J)=ASLATD(J) - ENDDO - DO N=2,JMAX - DO J=1,JH - PKM2(J)=PKM1(J) - PKM1(J)=PK(J) - PK(J)=((2*N-1)*ASLATD(J)*PKM1(J)-(N-1)*PKM2(J))/N - ENDDO - ENDDO - DO J=1,JH - SP=PK(J)*(1.d0-ASLATD(J)**2)/(JMAX*(PKM1(J)-ASLATD(J)*PK(J))) - ASLATD(J)=ASLATD(J)-SP - SPMAX=MAX(SPMAX,ABS(SP)) - ENDDO - ENDDO -!CDIR$ IVDEP - DO J=1,JH - ASLAT(J)=ASLATD(J) - ASLAT(JMAX+1-J)=-ASLAT(J) - ENDDO - IF(JHE.GT.JH) THEN - ASLAT(JHE)=0.d0 - ENDIF -!C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -!C EQUALLY-SPACED LATITUDES INCLUDING POLES - ELSEIF(IDRT.EQ.0) THEN - JH=JMAX/2 - JHE=(JMAX+1)/2 - JHO=JHE-1 - DLT=PI/(JMAX-1) - ASLAT(1)=1.d0 - DO J=2,JH - ASLAT(J)=COS((J-1)*DLT) - ENDDO -!CDIR$ IVDEP - DO J=1,JH - ASLAT(JMAX+1-J)=-ASLAT(J) - ENDDO - IF(JHE.GT.JH) THEN - ASLAT(JHE)=0.d0 - ENDIF -!C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -!C EQUALLY-SPACED LATITUDES EXCLUDING POLES - ELSEIF(IDRT.EQ.256) THEN - JH=JMAX/2 - JHE=(JMAX+1)/2 - JHO=JHE - DLT=PI/JMAX - ASLAT(1)=1.d0 - DO J=1,JH - ASLAT(J)=COS((J-0.5)*DLT) - ENDDO -!CDIR$ IVDEP - DO J=1,JH - ASLAT(JMAX+1-J)=-ASLAT(J) - ENDDO - IF(JHE.GT.JH) THEN - ASLAT(JHE)=0.d0 - ENDIF - ENDIF -!C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine splat4 -! -!---------------------------------------------------------------------- - SUBROUTINE splat8(IDRT,JMAX,ASLAT) -!$$$ - implicit none - integer,intent(in) :: idrt,jmax - real(8),intent(out) :: ASLAT(JMAX) - INTEGER,PARAMETER:: KD=SELECTED_REAL_KIND(15,45) - REAL(KIND=KD):: PK(JMAX/2),PKM1(JMAX/2),PKM2(JMAX/2) - REAL(KIND=KD):: ASLATD(JMAX/2),SP,SPMAX,EPS=10.d0*EPSILON(SP) - integer,PARAMETER:: JZ=50 - REAL(8) BZ(JZ) - DATA BZ / 2.4048255577d0, 5.5200781103d0, & - 8.6537279129d0, 11.7915344391d0, 14.9309177086d0, 18.0710639679d0, & - 21.2116366299d0, 24.3524715308d0, 27.4934791320d0, 30.6346064684d0, & - 33.7758202136d0, 36.9170983537d0, 40.0584257646d0, 43.1997917132d0, & - 46.3411883717d0, 49.4826098974d0, 52.6240518411d0, 55.7655107550d0, & - 58.9069839261d0, 62.0484691902d0, 65.1899648002d0, 68.3314693299d0, & - 71.4729816036d0, 74.6145006437d0, 77.7560256304d0, 80.8975558711d0, & - 84.0390907769d0, 87.1806298436d0, 90.3221726372d0, 93.4637187819d0, & - 96.6052679510d0, 99.7468198587d0, 102.888374254d0, 106.029930916d0, & - 109.171489649d0, 112.313050280d0, 115.454612653d0, 118.596176630d0, & - 121.737742088d0, 124.879308913d0, 128.020877005d0, 131.162446275d0, & - 134.304016638d0, 137.445588020d0, 140.587160352d0, 143.728733573d0, & - 146.870307625d0, 150.011882457d0, 153.153458019d0, 156.295034268d0 / - REAL(8):: DLT,D1=1.d0 - INTEGER(4):: JHE,JHO,J0=0 - real(8),PARAMETER :: PI=3.14159265358979d0,C=(1.d0-(2.d0/PI)**2)*0.25d0 - real(8) r - integer jh,js,n,j -!C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -!C GAUSSIAN LATITUDES - IF(IDRT.EQ.4) THEN - JH=JMAX/2 - JHE=(JMAX+1)/2 - R=1.d0/SQRT((JMAX+0.5d0)**2+C) - DO J=1,MIN(JH,JZ) - ASLATD(J)=COS(BZ(J)*R) - ENDDO - DO J=JZ+1,JH - ASLATD(J)=COS((BZ(JZ)+(J-JZ)*PI)*R) - ENDDO - SPMAX=1.d0 - DO WHILE(SPMAX.GT.EPS) - SPMAX=0.d0 - DO J=1,JH - PKM1(J)=1.d0 - PK(J)=ASLATD(J) - ENDDO - DO N=2,JMAX - DO J=1,JH - PKM2(J)=PKM1(J) - PKM1(J)=PK(J) - PK(J)=((2*N-1)*ASLATD(J)*PKM1(J)-(N-1)*PKM2(J))/N - ENDDO - ENDDO - DO J=1,JH - SP=PK(J)*(1.d0-ASLATD(J)**2)/(JMAX*(PKM1(J)-ASLATD(J)*PK(J))) - ASLATD(J)=ASLATD(J)-SP - SPMAX=MAX(SPMAX,ABS(SP)) - ENDDO - ENDDO -!CDIR$ IVDEP - DO J=1,JH - ASLAT(J)=ASLATD(J) - ASLAT(JMAX+1-J)=-ASLAT(J) - ENDDO - IF(JHE.GT.JH) THEN - ASLAT(JHE)=0.d0 - ENDIF -!C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -!C EQUALLY-SPACED LATITUDES INCLUDING POLES - ELSEIF(IDRT.EQ.0) THEN - JH=JMAX/2 - JHE=(JMAX+1)/2 - JHO=JHE-1 - DLT=PI/(JMAX-1) - ASLAT(1)=1.d0 - DO J=2,JH - ASLAT(J)=COS((J-1)*DLT) - ENDDO -!CDIR$ IVDEP - DO J=1,JH - ASLAT(JMAX+1-J)=-ASLAT(J) - ENDDO - IF(JHE.GT.JH) THEN - ASLAT(JHE)=0.d0 - ENDIF -!C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -!C EQUALLY-SPACED LATITUDES EXCLUDING POLES - ELSEIF(IDRT.EQ.256) THEN - JH=JMAX/2 - JHE=(JMAX+1)/2 - JHO=JHE - DLT=PI/JMAX - ASLAT(1)=1.d0 - DO J=1,JH - ASLAT(J)=COS((J-0.5d0)*DLT) - ENDDO -!DIR$ IVDEP - DO J=1,JH - ASLAT(JMAX+1-J)=-ASLAT(J) - ENDDO - IF(JHE.GT.JH) THEN - ASLAT(JHE)=0.d0 - ENDIF - ENDIF -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end subroutine splat8 -!----------------------------------------------------------------------- - - character(35) function sweep_blanks(in_str) - -! - implicit none -! - character(*), intent(in) :: in_str - character(35) :: out_str - character :: ch - integer :: j - - out_str = " " - do j=1, len_trim(in_str) - ! get j-th char - ch = in_str(j:j) - if (ch .eq. "-") then - out_str = trim(out_str) // "_" - else if (ch .ne. " ") then - out_str = trim(out_str) // ch - endif - sweep_blanks = out_str - end do - end function sweep_blanks - diff --git a/sorc/navybull.fd/BULHDR.f b/sorc/navybull.fd/BULHDR.f deleted file mode 100755 index fa68db583d..0000000000 --- a/sorc/navybull.fd/BULHDR.f +++ /dev/null @@ -1,83 +0,0 @@ - SUBROUTINE BULHDR ( ITME, IDAY, NBLK, NXTBLK ) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: BULHDR FORMATS THE BULLETIN HEADER LINE -C PRGMMR: BOB HOLLERN ORG: W/NP12 DATE: 97-04-17 -C -C ABSTRACT: FORMATS THE ADMN74 KWBC BULLETIN HEADER LINE. -C -C PROGRAM HISTORY LOG: -C -C 97-04-17 BOB HOLLERN, AUTHOR -C -C USAGE: CALL BULHDR( ITME, IDAY, NBLK, NXTBLK ) -C -C INPUT ARGUMENT LIST: -C -C ITME - INTEGER VARIABLE SET TO THE BULLETIN HEADER GMT -C HOUR -C -C IDAY - INTEGER VARIABLE SET TO CURRENT DAY OF MONTH -C -C -C OUTPUT ARGUMENT LIST: -C -C NXTBLK - INTEGER VARIABLE SET TO LAST LOCATION IN NBLK -C WHERE BULLETIN DATA WAS STORED -C -C NBLK - CHARACTER ARRAY TO HOLD THE ADMN74 KWBC BULLETIN DATA -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C$$$ - CHARACTER*2560 NBLK -C - CHARACTER*12 BULHD -C - CHARACTER*7 NSOH -C - CHARACTER*4 IEOL, HR -C - CHARACTER*2 DAYMO -C - DATA NSOH / '''100000' / -C - DATA IEOL / '<<@ ' / -C - DATA BULHD / 'ADMN74 KWBC ' / -C - DATA N2560 / 2560 / -C -100 FORMAT ( 1X, 'NBLK = ', 26(/1X, 60A1 ) ) -C -C SET NXTBLK = 0 TO INITIALIZE NBLK TO BLANKS -C - NXTBLK = 0 - CALL W3AI19( NSOH, 7, NBLK, N2560, NXTBLK ) -C - PRINT *, 'BULDHR: NXTBLK = ', NXTBLK - WRITE(6,100) (NBLK(I:I),I=1,NXTBLK) -C -C BULLETIN HEADER STARTS AT LOCATION 41 IN NBLK -C - NXTBLK = 40 - CALL W3AI19( BULHD, 12, NBLK, N2560, NXTBLK ) -C - PRINT *, 'BULDHR: NXTBLK = ', NXTBLK - WRITE(6,100) (NBLK(I:I),I=1,NXTBLK) -C -C PUT DATE/TIME IN HEADER -C - WRITE( UNIT=DAYMO(1:2), FMT='(I2.2)' ) IDAY -C - CALL W3AI19( DAYMO, 2, NBLK, N2560, NXTBLK ) -C - WRITE( UNIT=HR(1:4), FMT='(I4.4)' ) ITME - CALL W3AI19( HR, 4, NBLK, N2560, NXTBLK ) - CALL W3AI19( IEOL, 3, NBLK, N2560, NXTBLK ) -C - PRINT *, 'BULDHR: NXTBLK = ', NXTBLK - WRITE(6,100) (NBLK(I:I),I=1,NXTBLK) -C - RETURN - END diff --git a/sorc/navybull.fd/NAVYBULL.f b/sorc/navybull.fd/NAVYBULL.f deleted file mode 100755 index 6cf9b46776..0000000000 --- a/sorc/navybull.fd/NAVYBULL.f +++ /dev/null @@ -1,344 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: BULLS_NAVYBULL -C PRGMMR: VUONG ORG: NP11 DATE: 2000-01-03 -C -C ABSTRACT: COMPUTES A TRANSMISSION FILE FROM SHIP REPORTS ??? -C OWNER IS UNKNOWN, WHO THE OUTPUT GOES TO IS UNKNOWN. -C -C PROGRAM HISTORY LOG: -C 97-03-12 L.L. MORONE CRAY VERSION -C 98-07-10 VUONG REPLACED CALLS TO IW3GAD WITH CALLS TO Y2K -C COMPLIANT ROUTINE IW3UNP29 AND REMOVED CALLS -C TO W3LOG AND CONVERTED TO FORTRAN 90 -C 99-12-20 VUONG CONVERTED TO RUN ON IBM RS/6000 SP -C 2016-03-01 VUONG REMOVED OPEN STATEMENT THAT CONFLICTS WITH IW3UNP29 -C -C USAGE: -C -C INPUT FILES: -C FT11F001 - SFC SHIP FILE -C FT12F001 - PARM FIELD DENOTING WHAT RUN CYCLE -C FT15F001 - FILE CONTAINING DATES AND TIMES OF -C PREVIOUS RUNS -C -C OUTPUT FILES: -C FT06F001 - STANDARD FORTRAN OUTPUT PRINT FILE -C FT15F001 - FILE CONTAINING DATES AND TIMES OF -C PREVIOUS RUNS -C FT51F001 - TRANSMISSION FILE -C -C SUBPROGRAMS CALLED: -C UNIQUE: - BULHDR -C -C LIBRARY: -C W3LIB - W3TAGB W3TAGE IW3UNP29 W3AI19 -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C = 99 - ERROR IN PARM FIELD -C -C REMARKS: JOB IS IJP'D IN WW1NV8W2 , WW1NV2P2 , WW1NV0D2 , WW1NV6K2 -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C -C$$$ - PROGRAM NAVYBULL - CHARACTER*2560 NBLK - DIMENSION NSHIP(1000),RSHIP(5280) - CHARACTER*8 XID - CHARACTER*8 RCPTID - CHARACTER*1 PHR(2),P0,P1,P2,P6,P8 - CHARACTER*1 DIRLAT(2),DIRLON(2) - CHARACTER*1 CCORS,CSPD - CHARACTER*1 IETX,LF - CHARACTER*4 IEOL - CHARACTER*4 NAMA,NAMB,IRCPT2,IRCPT1 - CHARACTER*3 CLAT - CHARACTER*4 CLON - CHARACTER*2 CDAY,CHR - CHARACTER*10 CDATE(4) - - DATA IEOL/'<<@ '/ - DATA DIRLAT/'N','S'/ - DATA DIRLON/'W','E'/ - DATA P0/'0'/,P1/'1'/,P2/'2'/,P6/'6'/,P8/'8'/ - DATA XID/'LASTRTIM'/ - DATA IETX/'%'/ - EQUIVALENCE (NSHIP(1),RSHIP(1),CDATE(1)) - EQUIVALENCE (RSHIP(11),NAMA) - EQUIVALENCE (RSHIP(12),NAMB) - EQUIVALENCE (RSHIP(5),IRCPT1) - EQUIVALENCE (RSHIP(6),IRCPT2) - CALL W3TAGB('BULLS_NAVYBULL',2000,0003,0069,'NP11') - N = 0 - NXTBLK=0 - NSIZBK=1280 - N2560 = 2560 - LF = CHAR(10) - NSTA = 0 - IUNIT = 51 - OPEN(IUNIT,ACCESS='DIRECT',RECL=1281) - IREC=1 -C -C **************** READ POINTER FOR CORRECT HOUR ********************** -C *** READ IN CONTENTS OF PARM FIELD THAT DENOTES RUN CYCLE *********** - - READ(12,22,END=23) PHR - WRITE(6,444) PHR - 444 FORMAT(' PHR',3X,2A1) - IF (PHR(1) .EQ. P0 .AND. PHR(2) .EQ. P0) GO TO 7 - IF (PHR(1) .EQ. P0 .AND. PHR(2) .EQ. P6) GO TO 6 - IF (PHR(1) .EQ. P1 .AND. PHR(2) .EQ. P2) GO TO 12 - IF (PHR(1) .EQ. P1 .AND. PHR(2) .EQ. P8) GO TO 18 - CALL W3TAGE('BULLS_NAVYBULL') - CALL ERREXIT (99) - 7 READ (15,13,END=23) RCPTID,LTIME1,LDATE1,N1,N2,N3,N4,N5,N6 - NHOUR=1 - GO TO 25 - 6 READ (15,13,END=23) RCPTID,N1,N2,LTIME1,LDATE1,N3,N4,N5,N6 - NHOUR=2 - GO TO 25 - 12 READ (15,13,END=23) RCPTID,N1,N2,N3,N4,LTIME1,LDATE1,N5,N6 - NHOUR=3 - GO TO 25 - 18 READ (15,13,END=23) RCPTID,N1,N2,N3,N4,N5,N6,LTIME1,LDATE1 - NHOUR=4 - 13 FORMAT(A8,4(I4,I2)) - 22 FORMAT(2A1) -C *** -C -C ******* IF POINTER IS MISSING OR INCORRECT, LIST ALL SHIPS ********* -C - 25 IF(RCPTID .EQ. XID) GO TO 41 - 23 LTIME1=8888 - LDATE1=88 - WRITE(6,31) - 31 FORMAT(' BAD TIME CHECK ID - LIST ALL SHIPS, INCLU. DUPLICATES') - WRITE(6,88) NHOUR,RCPTID, XID - 88 FORMAT(' NHOUR, RCPTID, XID ',I2,2(2X,A8)) -C *** -C -C *** INITIALIZE POINTER OUT (LAST RECEIPT TIME FROM THIS RUN) TO *** -C *** POINTER IN (LAST RECEIPT TIME FROM PREVIOUS RUN) *** -C - 41 LTIME2=LTIME1 - LDATE2=LDATE1 - WRITE(6,560) LTIME1,LTIME2,LDATE1,LDATE2 - 560 FORMAT(' LTIME1,LTIME2,LDATE1,LDATE2 ',4I6) -C *** - NUNIT = 11 -C OPEN (UNIT=NUNIT, FILE='SFCSHP', FORM='UNFORMATTED', -C X ACCESS='SEQUENTIAL',STATUS='OLD', IOSTAT=IERR) -C IF(IERR.NE.0) THEN -C PRINT 290, NUNIT -C GO TO 500 -C ENDIF -C 290 FORMAT(' I/O ERROR OPENING SFCSHP FILE ON UNIT',I3) - - 5 IF(IW3UNP29(NUNIT,RSHIP,IER).EQ.0) GO TO 50 - GO TO (10,20,30,40), IER - 10 CONTINUE -C -C READ IN NMC DATE WORD FROM HEADER -C - READ(CDATE(2),301) IYR,IMO,IDAY,ITME - 301 FORMAT(I4,3I2.2) - - WRITE(6,333) IYR,IMO,IDAY,ITME - 333 FORMAT(' YEAR, MONTH, DAY, TIME OF SFCSHP FILE: ',I4, - C 3(1X,I2.2)) -C READ IN DUMP TIME - READ(CDATE(3),302) IRTM - 302 FORMAT(I4) - - ITME=ITME*100 -C *** -C ***** WRITE FIRST BULLETIN HEADER *** - CALL BULHDR (ITME,IDAY,NBLK,NXTBLK) - GO TO 5 -C *** - 20 CONTINUE -C -C LOGICAL END OF FILE REACHED -C - IF(NSTA.GT.0) THEN - ISTATS = 0 - GO TO 210 - ELSE - PRINT 320 - 320 FORMAT(' LOGICAL END OF FILE REACHED WITH NO USABLE DATA') - ISTATS = 1 - GO TO 210 - ENDIF - 30 CONTINUE -C -C PHYSICAL END OF FILE REACHED -C - IF(NSTA.GT.0) THEN - ISTATS = 0 - GO TO 210 - ELSE - PRINT 330 - 330 FORMAT(' PHYSICAL END OF FILE REACHED WITH NO USABLE DATA') - ISTATS = 1 - GO TO 210 - ENDIF - 40 CONTINUE -C -C I/O ERROR READING RECORD BLOCK -C - PRINT 340 - 340 FORMAT(' I/O ERROR READING RECORD BLOCK') - ISTATS = 1 - GO TO 5 - 50 CONTINUE - -C -C ********************** READ A REPORT ********************************* -C -C **************** SKIP DATA OTHER THAN SHIPS ************************** - IF (NSHIP(9) .LT. 521 .OR. NSHIP(9) .GT. 523) GO TO 5 - NSTA = NSTA + 1 -C -C **** BUILD INTEGER RECEIPT TIME FROM EBCDIC WORDS 5 AND 6 ************ - READ(IRCPT2,56) IRHR - READ(IRCPT1,56) IHNDHR - 56 FORMAT(I2) - IRTIME = IRHR*100+IHNDHR -C *** -C -C ************** CORRECT DATE FOR REPORTS FROM PREVIOUS DAY ********** - IRDAY=IDAY - ITIME = RSHIP(4) -C WRITE(6,555) IRTIME, ITIME, IRTM, IRDAY,LDATE1,LTIME1 -C 555 FORMAT(' IRTIME, ITIME, IRTM, IRDAY, LDATE1, LTIME1',6I5) - IF (IRTIME .LE. IRTM .AND. ITIME .LE. IRTM) GO TO 145 - IRDAY=IRDAY-1 - IF (IRDAY .GT. 0 ) GO TO 145 - IRDAY=31 - IF (IMO .EQ. 5 .OR. IMO .EQ. 7 .OR. IMO .EQ. 10 .OR. IMO . EQ. 12) - * IRDAY=30 - IF (IMO .EQ. 3) IRDAY=28 - IF (IMO .EQ. 3 .AND. MOD(IYR,4) .EQ. 0) IRDAY=29 -C *** -C -C *** CHECK DATE AND TIME AGAINST POINTER TO ELIMINATE DUPLICATES *** -C - 145 CONTINUE -C WRITE(6,557) IRTIME, ITIME, IRTM, IRDAY,LDATE1,LTIME1 -C 557 FORMAT(' AT 145,IRTIME, ITIME, IRTM, IRDAY, LDATE1, LTIME1',6I5) - IF (IRDAY .LT. LDATE1 .AND. LDATE1-IRDAY .LT. 25) GO TO 5 - IF (IRDAY .GT. LDATE1 .OR. LDATE1-IRDAY .GE. 25) GO TO 146 - IF(IRTIME .LE. LTIME1 .AND. LTIME1 .LE. 2400) GO TO 5 -C *** -C -C ******** DETERMINE DIRECTION OF LAT AND LON ************************** - 146 XLAT=RSHIP(1)/100. - XLON=RSHIP(2)/100. - IDLT=1 - IF (XLAT .GE. 0.00) GO TO 150 - IDLT=2 - XLAT=ABS(XLAT) - 150 IDLN=1 - IF(XLON .LE. 180.00) GO TO 160 - IDLN=2 - XLON=360.00-XLON - 160 ILAT=XLAT*10. - ILON=XLON*10. -C ***** INITIALIZE COURSE AND SPEED IN CASE NONE ARE REPORTED ********* - ICORS = 11 - ISPD = 11 -C FIND LOCATION OF CAT 52 DATA - ILOC = NSHIP(32) - ICORS = NSHIP(ILOC+12) - ISPD = NSHIP(ILOC+13) -C -C *************************** BUILD BULLETIN *************************** - CALL W3AI19(NAMA,4,NBLK,N2560,NXTBLK) - CALL W3AI19(NAMB,3,NBLK,N2560,NXTBLK) - WRITE(UNIT=CLAT(1:3),FMT='(I3.3)') ILAT - WRITE(UNIT=CLON(1:4),FMT='(I4.4)') ILON - CALL W3AI19(CLAT,3,NBLK,N2560,NXTBLK) - CALL W3AI19(DIRLAT(IDLT),1,NBLK,N2560,NXTBLK) - NXTBLK = NXTBLK + 1 - CALL W3AI19(CLON,4,NBLK,N2560,NXTBLK) - CALL W3AI19(DIRLON(IDLN),1,NBLK,N2560,NXTBLK) - IF (ICORS .GE. 10 .OR. ICORS .LT. 0) ICORS = 9 - WRITE(UNIT=CCORS(1:1),FMT='(I1)') ICORS - NXTBLK = NXTBLK + 1 - CALL W3AI19(CCORS,1,NBLK,N2560,NXTBLK) - IF (ISPD .GE. 10 .OR. ISPD .LT. 0) THEN - NXTBLK = NXTBLK + 3 - GO TO 155 - ENDIF - WRITE(UNIT=CSPD(1:1),FMT='(I1)') ISPD - NXTBLK = NXTBLK + 1 - CALL W3AI19(CSPD,1,NBLK,N2560,NXTBLK) - NXTBLK = NXTBLK + 1 - 155 WRITE(UNIT=CDAY(1:2),FMT='(I2.2)') IRDAY - CALL W3AI19(CDAY,2,NBLK,N2560,NXTBLK) - 162 ITIME = ITIME/100 - WRITE(UNIT=CHR(1:2),FMT='(I2.2)') ITIME - CALL W3AI19(CHR,2,NBLK,N2560,NXTBLK) - CALL W3AI19(IEOL,3,NBLK,N2560,NXTBLK) - PRINT 199, NSTA, NXTBLK - 199 FORMAT( ' NSTA, NBLK ',2I6) -C *** -C ********* CHECK FOR END OF BLOCK OR END OF TRANSMISSION*************** - IF (NXTBLK .GE. 2530) THEN - CALL W3AI19(IETX,1,NBLK,N2560,NXTBLK) -C - WRITE(IUNIT,REC=IREC) NBLK(1:1280),LF - IREC=IREC+1 - IF(NXTBLK.GT.1280) THEN - WRITE(IUNIT,REC=IREC) NBLK(1281:2560),LF - IREC=IREC+1 - NXTBLK = 0 - CALL BULHDR(ITME,IDAY,NBLK,NXTBLK) - ENDIF - ENDIF -C *** -C ***** IF DATE-TIME OF REPORT IS LATEST THUS FAR, UPDATE POINTER ***** - 200 IF (((IRDAY .LT. LDATE2) .AND. ((LDATE2 - IRDAY) .LT. 15)) .OR. - *((IRTIME .LE. LTIME2) .AND. (IRDAY .EQ. LDATE2)) .OR. - *(IRTIME .GT. 2400) .OR. (IRDAY .GT. 31)) GO TO 5 - LTIME2=IRTIME - LDATE2=IRDAY - GO TO 5 -C *** -C ********** FINISHED; WRITE OUT NEW POINTER FOR CORRECT HOUR ********** -C ********** BUT FIRST, WRITE OUT LAST GROUP OF OBS ********** -C ********** PRESUMABLY SHORTER THAN 2530 CHARACTERS ********** - 210 CONTINUE - PRINT 211, NSTA, NXTBLK - 211 FORMAT( ' AFTER 210, NSTA, NBLK ',2I6) - IF (NXTBLK .GT. 62) THEN - CALL W3AI19(IETX,1,NBLK,N2560,NXTBLK) -C - WRITE(IUNIT,REC=IREC) NBLK(1:1280),LF - IREC=IREC+1 - - IF(NXTBLK.GT.1280) THEN - WRITE(IUNIT,REC=IREC) NBLK(1281:2560),LF - IREC=IREC+1 - ENDIF - ENDIF -C - REWIND 15 - GO TO (300,306,312,318),NHOUR - 300 WRITE(15,220) LTIME2,LDATE2,N1,N2,N3,N4,N5,N6 - GO TO 212 - 306 WRITE(15,220) N1,N2,LTIME2,LDATE2,N3,N4,N5,N6 - GO TO 212 - 312 WRITE(15,220) N1,N2,N3,N4,LTIME2,LDATE2,N5,N6 - GO TO 212 - 318 WRITE(15,220) N1,N2,N3,N4,N5,N6,LTIME2,LDATE2 - 212 L=N+1 -C *** -C *************** FINISH OFF LAST TRANSMISSION ************************ - 220 FORMAT('LASTRTIM',4(I4,I2)) - CALL W3TAGE('BULLS_NAVYBULL') - 500 STOP - END diff --git a/sorc/navybull.fd/makefile.theia b/sorc/navybull.fd/makefile.theia deleted file mode 100755 index 77b3750ad0..0000000000 --- a/sorc/navybull.fd/makefile.theia +++ /dev/null @@ -1,79 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:44:09 PM on 03/12/97 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BULHDR.f NAVYBULL.f - -OBJS= BULHDR.o NAVYBULL.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS = -Xlinker --start-group ${W3EMC_LIB8} ${W3NCO_LIB8} ${BUFR_LIB8} -CMD = navybull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -convert big_endian -assume noold_ldout_format -r8 -i8 - -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/navybull.fd/makefile.wcoss b/sorc/navybull.fd/makefile.wcoss deleted file mode 100755 index 77b3750ad0..0000000000 --- a/sorc/navybull.fd/makefile.wcoss +++ /dev/null @@ -1,79 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:44:09 PM on 03/12/97 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BULHDR.f NAVYBULL.f - -OBJS= BULHDR.o NAVYBULL.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS = -Xlinker --start-group ${W3EMC_LIB8} ${W3NCO_LIB8} ${BUFR_LIB8} -CMD = navybull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -convert big_endian -assume noold_ldout_format -r8 -i8 - -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/navybull.fd/makefile.wcoss_cray b/sorc/navybull.fd/makefile.wcoss_cray deleted file mode 100755 index 51c99f2c0f..0000000000 --- a/sorc/navybull.fd/makefile.wcoss_cray +++ /dev/null @@ -1,79 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:44:09 PM on 03/12/97 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BULHDR.f NAVYBULL.f - -OBJS= BULHDR.o NAVYBULL.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ftn -LDFLAGS = -LIBS = -Xlinker --start-group ${W3EMC_LIB8} ${W3NCO_LIB8} ${BUFR_LIB8} -CMD = navybull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -axCORE-AVX2 -convert big_endian -assume noold_ldout_format -r8 -i8 - -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/navybull.fd/makefile.wcoss_dell_p3 b/sorc/navybull.fd/makefile.wcoss_dell_p3 deleted file mode 100755 index 77b3750ad0..0000000000 --- a/sorc/navybull.fd/makefile.wcoss_dell_p3 +++ /dev/null @@ -1,79 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:44:09 PM on 03/12/97 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BULHDR.f NAVYBULL.f - -OBJS= BULHDR.o NAVYBULL.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS = -Xlinker --start-group ${W3EMC_LIB8} ${W3NCO_LIB8} ${BUFR_LIB8} -CMD = navybull -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -convert big_endian -assume noold_ldout_format -r8 -i8 - -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - rm -f $(OBJS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/ncl.setup b/sorc/ncl.setup new file mode 100644 index 0000000000..c848fb9887 --- /dev/null +++ b/sorc/ncl.setup @@ -0,0 +1,28 @@ +if [ $target == wcoss_dell_p3 ] +then +module load NCL/6.4.0 +fi + +if [ $target == wcoss_cray ] +then +module load gcc/4.9.2 +module load NCL-gnu-haswell/6.3.0 +fi + +if [ $target == wcoss ] +then +module load ncarg/v6.1.0 +fi + +if [ $target == jet ] +then +module load ncl/6.5.0 +export NCARG_LIB=$NCARG_ROOT/lib +fi + +if [ $target == hera ] +then +module load ncl/6.5.0 +export NCARG_LIB=$NCARG_ROOT/lib +fi + diff --git a/sorc/nemsio_cvt.fd/makefile b/sorc/nemsio_cvt.fd/makefile deleted file mode 100755 index 1fb2143db5..0000000000 --- a/sorc/nemsio_cvt.fd/makefile +++ /dev/null @@ -1,12 +0,0 @@ -SHELL =/bin/sh -EXEC =../../exec/nemsio_cvt -FOPTS = -O -FR -I$(NEMSIO_INC) -LOPTS = $(OPTS) -LIBS = $(NEMSIO_LIB) $(BACIO_LIB4) $(W3NCO_LIBd) -OBJS = nemsio_cvt -SRCS = nemsio_cvt.f -# ************************************************************************* - all: $(OBJS) - - $(OBJS): $(SRCS) - $(FCMP) $(FOPTS) $(LOPTS) $(SRCS) -o $(EXEC) $(LIBS) diff --git a/sorc/nemsio_cvt.fd/nemsio_cvt.f b/sorc/nemsio_cvt.fd/nemsio_cvt.f deleted file mode 100644 index c3c1ad1160..0000000000 --- a/sorc/nemsio_cvt.fd/nemsio_cvt.f +++ /dev/null @@ -1,300 +0,0 @@ -!- - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -- -! the program convert a nemsio file to the opposite endian -! - - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -! -- - program main -! - use nemsio_module - implicit none -! - type(nemsio_gfile) :: gfile,gfilew -! - character(255) cin,cout - character(8) gdatatype,lcnv - logical datareal4 - real,allocatable :: tmp(:) - real(8),allocatable :: tmp8(:) - character(16) file_endian,file_endianw -!--------------------------------------------------------------------------- -!--- nemsio meta data - integer i,nrec,fieldsize,iret -!--------------------------------------------------------------------------- -! -!--- initialize - call nemsio_init(iret=iret) -! -!--- open gfile for reading - call getarg(1,cin) - call getarg(2,lcnv) - if(cin=='') then - print *,'Usage: nemsio_cvt $FILE_NAME ' - stop - endif - if(lcnv=='')lcnv='YES' -! print *,'cin=',trim(cin),' lcnv=',trim(lcnv) -! - call nemsio_open(gfile,trim(cin),'read',iret=iret) - if(iret/=0) print *,'3b:: after open read, ',trim(cin), ' iret=',iret -! -!to set file header gfilew for write - call set_gfile(gfile,lcnv,cin,cout,gfilew,gdatatype,fieldsize,nrec, & - file_endian,file_endianw) -! -!if just check file endian, not convert - if(lcnv == 'NO') then - stop - endif -! - if(gdatatype(1:4)=="bin4".or.gdatatype(1:4)=="grib") then - allocate(tmp(fieldsize)) - datareal4=.true. - else if(gdatatype(1:4)=="bin8") then - allocate(tmp8(fieldsize)) - datareal4=.false. - endif -! - do i=1,nrec - if(datareal4) then - call nemsio_readrec(gfile,i,data=tmp,iret=iret) - call nemsio_writerec(gfilew,i,data=tmp,iret=iret) - else - call nemsio_readrec(gfile,i,data=tmp8,iret=iret) - call nemsio_writerec(gfilew,i,data=tmp8,iret=iret) - endif - - enddo -! -!--- close nemsio file - call nemsio_close(gfile,iret=iret) - if ( iret .ne.0) print *,'open input file,iret=',iret - call nemsio_close(gfilew,iret=iret) - if ( iret .ne.0) print *,'open output file,iret=',iret - -!!--------------------------------------------------------------------------- - if(allocated(tmp))deallocate(tmp) - if(allocated(tmp8))deallocate(tmp8) -! -!--------------------------------------------------------------------------- -! - call nemsio_finalize() -! - print *,'File ',trim(cin),' in ',trim(file_endian), & - ' is converted to ', trim(cout),' in ',trim(file_endianw) -! -! - - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -! -- - stop - - end program - -!############################################################################ -! - subroutine set_gfile(gfile,lcnv,cin,cout,gfilew,gdatatype,fieldsize, & - nrec,file_endian,file_endianw) -! - use nemsio_module - implicit none -! - type(nemsio_gfile),intent(in) :: gfile - character(*),intent(in) :: lcnv,cin - character(*),intent(out) :: cout - type(nemsio_gfile),intent(inout) :: gfilew - character(8),intent(out) :: gdatatype - integer,intent(out) :: fieldsize,nrec - character(*),intent(out) :: file_endian,file_endianw -! -! local vars - integer im,jm,lm,ntrac,nframe,nmetavari,nmetavarr,nmeta, & - nmetavarl,nmetavarc,nmetavarr8,nmetaaryi,nmetaaryr, & - nmetaaryl,nmetaaryc,nmetaaryr8,iret - integer,allocatable :: reclev(:),varival(:),aryilen(:),aryrlen(:), & - aryllen(:),aryclen(:),aryr8len(:),aryival(:,:) - real,allocatable :: lat(:),lon(:),dx(:),dy(:),cpi(:),ri(:), & - vcoord(:,:,:),varrval(:),aryrval(:,:) - real(8),allocatable :: varr8val(:),aryr8val(:,:) - logical extrameta - logical,allocatable :: varlval(:),arylval(:,:) - character(16),allocatable :: recname(:),reclevtyp(:),variname(:), & - varrname(:),varlname(:),varcname(:),varr8name(:), & - aryiname(:),aryrname(:),arylname(:),arycname(:), & - aryr8name(:),varcval(:),arycval(:,:) -! - gfilew=gfile -! - call nemsio_getfilehead(gfile,dimx=im,dimy=jm,dimz=lm,nrec=nrec, & - nmeta=nmeta,gdatatype=gdatatype, & - nframe=nframe,ntrac=ntrac,file_endian=file_endian, & - extrameta=extrameta,nmetavari=nmetavari,nmetavarr=nmetavarr,& - nmetavarl=nmetavarl,nmetavarc=nmetavarc,nmetavarr8=nmetavarr8,& - nmetaaryi=nmetaaryi,nmetaaryr=nmetaaryr,nmetaaryl=nmetaaryl, & - nmetaaryc=nmetaaryc,nmetaaryr8=nmetaaryr8) -! -! print *,'in set_gfile,im=',im,'jm=',jm,'lm=',lm,'nrec=',nrec, & -! 'nmeta=',nmeta,'gdatatype=',gdatatype,'file_endian=',file_endian, & -! 'ntrac=',ntrac,'extrameta=',extrameta - -! - if(trim(file_endian)=='big_endian') then - file_endianw='little_endian' - gdatatype=trim(gdatatype(1:4))//"_le" - cout=trim(cin)//"_le" - elseif(trim(file_endian)=='little_endian') then - file_endianw='big_endian' - gdatatype=trim(gdatatype(1:4))//"_be" - cout=trim(cin)//"_be" - else - print *,'wrong endian in input file: ',trim(file_endian) - endif - if(lcnv == 'NO') then - print *,'File ',trim(cin),' is in ',trim(file_endian) - return - endif -! -!set array - fieldsize=(im+2*nframe)*(jm+2*nframe) - allocate(recname(nrec),reclevtyp(nrec),reclev(nrec)) - allocate(lon(fieldsize),lat(fieldsize),dx(fieldsize),dy(fieldsize)) - allocate(cpi(ntrac+1),ri(ntrac+1)) - allocate(vcoord(lm+1,3,2)) -! - if(nmeta>=5) then - call nemsio_getfilehead(gfile,iret=iret, recname=recname, & - reclevtyp=reclevtyp, reclev=reclev) - if(iret/=0) print *,'nemsio_cnv: cant get record infor!' - endif -! - if(nmeta>=6) then - call nemsio_getfilehead(gfile,iret=iret, vcoord=vcoord) - if(iret/=0) print *,'nemsio_cnv: cant get vcoord!' - endif -! - if(nmeta>=8) then - call nemsio_getfilehead(gfile,iret=iret, lon=lon,lat=lat) - if(iret/=0) print *,'nemsio_cnv: cant get lat/lon!' - endif -! - if(nmeta>=10) then - call nemsio_getfilehead(gfile,iret=iret, dx=dx,dy=dy) - if(iret/=0) print *,'nemsio_cnv: cant get dx/dy!' - endif -! - if(nmeta>=12) then - call nemsio_getfilehead(gfile,iret=iret, cpi=cpi,ri=ri) - if(iret/=0) print *,'nemsio_cnv: cant get cpi/ri!' - endif -! -! get user defined header vars - if(extrameta) then -! - if(nmetavari>0) then - allocate(variname(nmetavari),varival(nmetavari)) - call nemsio_getfilehead(gfile,iret=iret,variname=variname, & - varival=varival) - endif -! - if(nmetavarr>0) then - allocate(varrname(nmetavarr),varrval(nmetavarr)) - call nemsio_getfilehead(gfile,iret=iret,varrname=varrname, & - varrval=varrval) - endif -! - if(nmetavarl>0) then - allocate(varlname(nmetavarl),varlval(nmetavarl)) - call nemsio_getfilehead(gfile,iret=iret,varlname=varlname, & - varlval=varlval) - endif -! - if(nmetavarc>0) then - allocate(varcname(nmetavarc),varcval(nmetavarc)) - call nemsio_getfilehead(gfile,iret=iret,varcname=varcname, & - varcval=varcval) - endif -! - if(nmetavarr8>0) then - allocate(varr8name(nmetavarr8),varr8val(nmetavarr8)) - call nemsio_getfilehead(gfile,iret=iret,varr8name=varr8name, & - varr8val=varr8val) - endif -! - if(nmetaaryi>0) then - allocate(aryiname(nmetaaryi),aryilen(nmetaaryi)) - call nemsio_getfilehead(gfile,iret=iret,aryiname=aryiname, & - aryilen=aryilen) - allocate(aryival(maxval(aryilen),nmetaaryi)) - call nemsio_getfilehead(gfile,iret=iret,aryival=aryival) - endif -! - if(nmetaaryr>0) then - allocate(aryrname(nmetaaryr),aryrlen(nmetaaryr)) - call nemsio_getfilehead(gfile,iret=iret,aryrname=aryrname, & - aryrlen=aryrlen) - allocate(aryrval(maxval(aryrlen),nmetaaryr)) - call nemsio_getfilehead(gfile,iret=iret,aryrval=aryrval) - endif -! - if(nmetaaryl>0) then - allocate(arylname(nmetaaryl),aryllen(nmetaaryl)) - call nemsio_getfilehead(gfile,iret=iret,arylname=arylname, & - aryllen=aryllen) - allocate(arylval(maxval(aryllen),nmetaaryl)) - call nemsio_getfilehead(gfile,iret=iret,arylval=arylval) - endif -! - if(nmetaaryc>0) then - allocate(arycname(nmetaaryc),aryclen(nmetaaryc)) - call nemsio_getfilehead(gfile,iret=iret,arycname=arycname, & - aryclen=aryclen) - allocate(arycval(maxval(aryclen),nmetaaryc)) - call nemsio_getfilehead(gfile,iret=iret,arycval=arycval) - endif -! - if(nmetaaryr8>0) then - allocate(aryr8name(nmetaaryr8),aryr8len(nmetaaryr8)) - call nemsio_getfilehead(gfile,iret=iret,aryr8name=aryr8name, & - aryr8len=aryr8len) - allocate(aryr8val(maxval(aryr8len),nmetaaryr8)) - call nemsio_getfilehead(gfile,iret=iret,aryr8val=aryr8val) - endif -! - endif -! - call nemsio_open(gfilew,trim(cout),'write',iret=iret, & - gdatatype=gdatatype, & - recname=recname,reclevtyp=reclevtyp,reclev=reclev, & - lat=lat,lon=lon,cpi=cpi,ri=ri,extrameta=extrameta, & - nmetavari=nmetavari,nmetavarr=nmetavarr,nmetavarl=nmetavarl,& - nmetavarc=nmetavarc,nmetavarr8=nmetavarr8, & - nmetaaryi=nmetaaryi,nmetaaryr=nmetaaryr,nmetaaryl=nmetaaryl,& - nmetaaryc=nmetaaryc,nmetaaryr8=nmetaaryr8, & - variname=variname,varival=varival, & - varrname=varrname,varrval=varrval, & - varlname=varlname,varlval=varlval, & - varcname=varcname,varcval=varcval, & - varr8name=varr8name,varr8val=varr8val, & - aryiname=aryiname,aryival=aryival, & - aryrname=aryrname,aryrval=aryrval, & - arylname=arylname,arylval=arylval, & - arycname=arycname,arycval=arycval, & - aryr8name=aryiname,aryr8val=aryr8val) - if(iret.ne.0) then - print *,'ERROR: after open, file=',trim(cout),'fiel_endian=', & - trim(file_endian) - endif -! - if(allocated(recname)) deallocate(recname,reclevtyp,reclev) - if(allocated(vcoord)) deallocate(vcoord) - if(allocated(lon)) deallocate(lon,lat) - if(allocated(dy)) deallocate(dx,dy) - if(allocated(ri)) deallocate(cpi,ri) - if(allocated(variname))deallocate(variname,varival) - if(allocated(varrname))deallocate(varrname,varrval) - if(allocated(varlname))deallocate(varlname,varlval) - if(allocated(varcname))deallocate(varcname,varcval) - if(allocated(varr8name))deallocate(varr8name,varr8val) - if(allocated(aryiname))deallocate(aryiname,aryilen,aryival) - if(allocated(aryrname))deallocate(aryrname,aryrlen,aryrval) - if(allocated(arylname))deallocate(arylname,aryllen,arylval) - if(allocated(arycname))deallocate(arycname,aryclen,arycval) - if(allocated(aryr8name))deallocate(aryr8name,aryr8len,aryr8val) -! - end subroutine set_gfile diff --git a/sorc/nemsio_get.fd/makefile b/sorc/nemsio_get.fd/makefile deleted file mode 100755 index 4040c63fa0..0000000000 --- a/sorc/nemsio_get.fd/makefile +++ /dev/null @@ -1,10 +0,0 @@ -EXEC =../../exec/nemsio_get -FOPTS =-O -FR -I$(NEMSIO_INC) -convert big_endian -LOPTS = $(OPTS) -LIBS =$(NEMSIO_LIB) $(BACIO_LIB4) $(W3NCO_LIBd) -OBJS = nemsio_get.o -SRCS = nemsio_get.f -# ************************************************************************* -all: ${OBJS} -$(OBJS): $(SRCS) - $(FCMP) $(FOPTS) $(LOPTS) $(SRCS) -o $(EXEC) $(LIBS) diff --git a/sorc/nemsio_get.fd/nemsio_get.f b/sorc/nemsio_get.fd/nemsio_get.f deleted file mode 100644 index cc265e0698..0000000000 --- a/sorc/nemsio_get.fd/nemsio_get.f +++ /dev/null @@ -1,408 +0,0 @@ -!- - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -- -! the program provide value for a variable/field in a nemsio file -! revision history: -! Jan 2010: Jun Wang Initial code -! - - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -- -! - program main -! - use nemsio_module - implicit none -! - type(nemsio_gfile) :: gfile -! - character(255) cin,filenm - character(16) varname - character(16) varlevtyp - character(3) cvarlev - integer varlev - real,allocatable :: data(:) -!--------------------------------------------------------------------------- -!--- nemsio meta data - integer nrec,im,jm,nframe,nmetaaryi,nmetaaryr,nmetaaryl,nmetaaryc, & - nmetaaryr8,i,j,fieldsize,iret,idate(7),levs,ntrac, tlmeta - integer ivar - real(4) rvar - real(8) r8var - logical lvar - character(10) odate - character(16) cvar, file_endian - character(35) mystr,sweep_blanks - character(4) gdatatype - character(16),allocatable:: recname(:) - character(16),allocatable :: reclevtyp(:) - integer,allocatable:: reclev(:) - real(4),allocatable ::vcoord(:,:,:),lat(:),lon(:),cpi(:),ri(:),dx(:),dy(:) -!--------------------------------------------------------------------------- -! - character(16),allocatable :: aryiname(:),aryrname(:),arylname(:),arycname(:),& - aryr8name(:) - integer,allocatable :: aryilen(:),aryrlen(:),aryllen(:),aryclen(:),aryr8len(:) - integer,allocatable :: iary(:) - real(4),allocatable :: rary(:) - real(8),allocatable :: r8ary(:) - logical,allocatable :: lary(:) - character(16),allocatable :: cary(:) -! -!-------------set up nemsio write-------------------------- - call nemsio_init(iret=iret) -! -!--------------------------------------------------------------------------- -!******Example 2: read full history file -!--------------------------------------------------------------------------- -!--- open gfile for reading - call getarg(1,cin) - call nemsio_open(gfile,trim(cin),'READ',iret=iret) - if (iret .ne.0 ) then - print *,'ERROR: can not open file ',trim(cin) - stop - endif -! - call nemsio_getfilehead(gfile,iret=iret,gdatatype=gdatatype,dimx=im,dimy=jm, & - nframe=nframe,dimz=levs,nrec=nrec,ntrac=ntrac,tlmeta=tlmeta, & - file_endian=file_endian,nmetaaryi=nmetaaryi,nmetaaryr=nmetaaryr, & - nmetaaryl=nmetaaryl,nmetaaryc=nmetaaryc) -! - fieldsize=(im+2*nframe)*(jm+2*nframe) -! - call getarg(2,varname) - call getarg(3,varlevtyp) - call getarg(4,cvarlev) - read(cvarlev,'(I3)')varlev -! -!*** 1: test for var: - call nemsio_getheadvar(gfile,trim(varname),ivar,iret=iret) - if(iret/=0) then - call nemsio_getheadvar(gfile,trim(varname),rvar,iret=iret) - if(iret/=0) then - call nemsio_getheadvar(gfile,trim(varname),lvar,iret=iret) - if(iret/=0) then - call nemsio_getheadvar(gfile,trim(varname),cvar,iret=iret) - if(iret/=0) then - call nemsio_getheadvar(gfile,trim(varname),r8var,iret=iret) - if(iret==0) then - print *,trim(varname),'=',r8var - stop - endif - else - print *,trim(varname),'=',trim(cvar) - stop - endif - else - print *,trim(varname),'=',lvar - stop - endif - else - print *,trim(varname),'=',rvar - stop - endif - else - print *,trim(varname),'=',ivar - stop - endif - -!*** 5: test for array: -! *** integer -!idate - if( trim(varname)=='idate') then - call nemsio_getfilehead(gfile,idate=idate,iret=iret) - if(iret==0) then - print *,'idate=',idate - write(odate,'(I4.4,I2.2,I2.2,I2.2)')idate(1),idate(2),idate(3),idate(4) - print *,'idate_ymdh=',odate - stop - endif - endif -!vcoord - if(equal_str_nocase(trim(varname),'vcoord')) then - allocate(vcoord(levs+1,3,2)) - call nemsio_getfilehead(gfile,vcoord=vcoord,iret=iret) - if(iret==0) then - print *,'levs=',levs,'vcoord(1:levs+1,1,1)=',vcoord(:,1,1) - print *,'levs=',levs,'vcoord(1:levs+1,2,1)=',vcoord(:,2,1) - print *,'levs=',levs,'vcoord(1:levs+1,3,1)=',vcoord(:,3,1) - print *,'levs=',levs,'vcoord(1:levs+1,1,2)=',vcoord(:,1,2) - print *,'levs=',levs,'vcoord(1:levs+1,2,2)=',vcoord(:,2,2) - print *,'levs=',levs,'vcoord(1:levs+1,3,2)=',vcoord(:,3,2) - deallocate(vcoord) - stop - endif - deallocate(vcoord) - endif -! -!recname - if(equal_str_nocase(trim(varname),'recname')) then - allocate(recname(nrec)) - call nemsio_getfilehead(gfile,recname=recname,iret=iret) - if(iret==0) then - print *,'nrec=',nrec,'recname(1:nrec)=',recname - deallocate(recname) - stop - endif - deallocate(recname) - endif -! -!reclevtyp - if(equal_str_nocase(trim(varname),'reclevtyp')) then - allocate(reclevtyp(nrec)) - call nemsio_getfilehead(gfile,reclevtyp=reclevtyp,iret=iret) - if(iret==0) then - print *,'nrec=',nrec,'reclevtyp(1:nrec)=',reclevtyp - deallocate(reclevtyp) - stop - endif - deallocate(reclevtyp) - endif -! -!reclev - if(equal_str_nocase(trim(varname),'reclev')) then - allocate(reclev(nrec)) - call nemsio_getfilehead(gfile,reclev=reclev,iret=iret) - if(iret==0) then - print *,'nrec=',nrec,'reclev(1:nrec)=',reclev - deallocate(reclev) - stop - endif - deallocate(reclev) - endif -! -!lat - if(equal_str_nocase(trim(varname),'lat')) then - allocate(lat((im+2*nframe)*(jm+2*nframe))) - call nemsio_getfilehead(gfile,lat=lat,iret=iret) - if(iret==0) then - print *,'domainsize=',(im+2*nframe)*(jm+2*nframe),'lat(1:domainsize)=',lat - deallocate(lat) - stop - endif - deallocate(lat) - endif -! -!lon - if(equal_str_nocase(trim(varname),'lon')) then - allocate(lon((im+2*nframe)*(jm+2*nframe))) - call nemsio_getfilehead(gfile,lon=lon,iret=iret) - if(iret==0) then - print *,'domainsize=',(im+2*nframe)*(jm+2*nframe),'lon(1:domainsize)=',lon - deallocate(lon) - stop - endif - deallocate(lon) - endif -! -!dx - if(equal_str_nocase(trim(varname),'dx')) then - allocate(dx((im+2*nframe)*(jm+2*nframe))) - call nemsio_getfilehead(gfile,dx=dx,iret=iret) - if(iret==0) then - print *,'domainsize=',(im+2*nframe)*(jm+2*nframe),'dx(1:domainsize)=',dx - deallocate(dx) - stop - endif - deallocate(dx) - endif -! -!dy - if(equal_str_nocase(trim(varname),'dy')) then - allocate(dy((im+2*nframe)*(jm+2*nframe))) - call nemsio_getfilehead(gfile,dy=dy,iret=iret) - if(iret==0) then - print *,'domainsize=',(im+2*nframe)*(jm+2*nframe),'dy(1:domainsize)=',dy - deallocate(dy) - stop - endif - deallocate(dy) - endif -! -!cpi - if(equal_str_nocase(trim(varname),'cpi')) then - allocate(cpi(ntrac+1)) - call nemsio_getfilehead(gfile,cpi=cpi,iret=iret) - if(iret==0) then - print *,'ntrac+1=',ntrac+1,'cpi(1:ntrac+1)=',cpi - deallocate(cpi) - stop - endif - deallocate(cpi) - endif -! -!ri - if(equal_str_nocase(trim(varname),'ri')) then - allocate(ri(ntrac+1)) - call nemsio_getfilehead(gfile,ri=ri,iret=iret) - if(iret==0) then - print *,'ntrac+1=',ntrac+1,'ri(1:ntrac+1)=',ri - deallocate(ri) - stop - endif - deallocate(ri) - endif -! -!tlmeta - if(equal_str_nocase(trim(varname),'tlmeta')) then - print *,'tlmeta=',tlmeta - stop - endif -! -!file_endian - if(equal_str_nocase(trim(varname),'file_endian')) then - print *,'file_endian=',file_endian - stop - endif - -!int array - if(nmetaaryi>0) then - allocate(aryiname(nmetaaryi),aryilen(nmetaaryi)) - call nemsio_getfilehead(gfile,iret=iret,aryiname=aryiname,aryilen=aryilen) - Do i=1,nmetaaryi -! if(trim(varname)==aryiname(i)) then - if(equal_str_nocase(trim(varname),trim(aryiname(i)))) then - j=i - call nemsio_getfilehead(gfile, aryilen=aryilen) - allocate(iary(aryilen(j))) - call nemsio_getheadvar(gfile,trim(varname),iary,iret=iret) - if(iret==0) then - print *,trim(varname),'(1:',aryilen(j),')=',iary - if(equal_str_nocase(trim(varname),"fcstdate")) then - write(odate,'(I4.4,I2.2,I2.2,I2.2)')iary(1),iary(2),iary(3),iary(4) - print *,'fcstdate_ymdh=',odate - endif - call nemsio_close(gfile) - call nemsio_finalize() - stop - endif - endif - enddo - endif -! -! *** real4 - if(nmetaaryr>0) then - allocate(aryrname(nmetaaryr),aryrlen(nmetaaryr)) - call nemsio_getfilehead(gfile,iret=iret,aryrname=aryrname,aryrlen=aryrlen) - Do i=1,nmetaaryr - if(equal_str_nocase(trim(varname),trim(aryrname(i)))) then - j=i - call nemsio_getfilehead(gfile, aryrlen=aryrlen) - allocate(rary(aryrlen(j))) - call nemsio_getheadvar(gfile,trim(varname),rary,iret=iret) - if(iret==0) then - print *,trim(varname),'(1:',aryrlen(j),')=',rary - call nemsio_close(gfile) - call nemsio_finalize() - stop - endif - endif - enddo - endif -! -! *** real8 - if(nmetaaryr8>0) then - allocate(aryr8name(nmetaaryr8),aryr8len(nmetaaryr8)) - call nemsio_getfilehead(gfile,iret=iret,aryr8name=aryr8name,aryr8len=aryr8len) - Do i=1,nmetaaryr8 - if(equal_str_nocase(trim(varname),trim(aryr8name(i)))) then - j=i - call nemsio_getfilehead(gfile, aryr8len=aryr8len) - allocate(rary(aryr8len(j))) - call nemsio_getheadvar(gfile,trim(varname),rary,iret=iret) - if(iret==0) then - print *,trim(varname),'(1:',aryr8len(j),')=',rary - call nemsio_close(gfile) - call nemsio_finalize() - stop - endif - endif - enddo - endif -! - if(nmetaaryl>0) then - allocate(arylname(nmetaaryl),aryllen(nmetaaryl)) - call nemsio_getfilehead(gfile,iret=iret,arylname=arylname,aryllen=aryllen) - Do i=1,nmetaaryl - if(equal_str_nocase(trim(varname),trim(arylname(i)))) then - j=i - allocate(lary(aryllen(j))) - call nemsio_getheadvar(gfile,trim(varname),lary,iret=iret) - if(iret==0) then - print *,trim(varname),'(1:',aryllen(j),')=',lary - call nemsio_close(gfile) - call nemsio_finalize() - stop - endif - endif - enddo - endif -! - if(nmetaaryc>0) then - allocate(arycname(nmetaaryc),aryclen(nmetaaryc)) - call nemsio_getfilehead(gfile,iret=iret,arycname=arycname,aryclen=aryclen) - Do i=1,nmetaaryc - if(equal_str_nocase(trim(varname),trim(arycname(i)))) then - j=i - allocate(cary(aryclen(j))) - call nemsio_getheadvar(gfile,trim(varname),cary,iret=iret) - if(iret==0) then - print *,trim(varname),'(1:',aryclen(j),')=',cary - call nemsio_close(gfile) - call nemsio_finalize() - stop - endif - endif - enddo - endif -! -! -!*** 6: test for 2D array: - allocate(data(fieldsize)) - call nemsio_readrecv(gfile,varname,varlevtyp,varlev,data=data,iret=iret) - if(iret==0) then - print *,'fieldsize=',(im+2*nframe)*(jm+2*nframe),'i=',im+2*nframe - do j=1,jm+2*nframe - print *,'j=',j,trim(varname),'=',data(1+(j-1)*(im+2*nframe):j*(im+2*nframe)) - enddo -!-- output pure binary file for 1 2D array - mystr=trim(varname)//trim(varlevtyp)//trim(cvarlev) - filenm=sweep_blanks(mystr) - open(991,file=trim(filenm),form='unformatted') - write(991) ((data(i+(j-1)*(im+2*nframe)),i=1,im+2*nframe),j=1,jm+2*nframe) - close(991) -! - deallocate(data) - call nemsio_close(gfile) - call nemsio_finalize() - stop - endif -! - call nemsio_close(gfile) - call nemsio_finalize() -! - print *,'no ',trim(varname), ' in the nemsio file!' -! -! - - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -- - stop - -!----------------------------------------------------------------------- -! - end program - -!----------------------------------------------------------------------- -! - character(35) function sweep_blanks(in_str) -! - implicit none -! - character(*), intent(in) :: in_str - character(35) :: out_str - character :: ch - integer :: j - - out_str = " " - do j=1, len_trim(in_str) - ! get j-th char - ch = in_str(j:j) - if (ch .ne. " ") then - out_str = trim(out_str) // ch - endif - sweep_blanks = out_str - end do - end function sweep_blanks diff --git a/sorc/nemsio_read.fd/makefile b/sorc/nemsio_read.fd/makefile deleted file mode 100755 index 34beec5444..0000000000 --- a/sorc/nemsio_read.fd/makefile +++ /dev/null @@ -1,13 +0,0 @@ -SHELL =/bin/sh -EXEC =../../exec/nemsio_read -FOPTS = -O -FR -I$(NEMSIO_INC) -LOPTS = $(OPTS) -LIBS = $(NEMSIO_LIB) $(BACIO_LIB4) $(W3NCO_LIBd) -OBJS = nemsio_read.o -SRCS = nemsio_read.f -# ************************************************************************* -all: $(OBJS) - -$(OBJS): $(SRCS) - $(FCMP) $(FOPTS) $(LOPTS) $(SRCS) -o $(EXEC) $(LIBS) - diff --git a/sorc/nemsio_read.fd/nemsio_read.f b/sorc/nemsio_read.fd/nemsio_read.f deleted file mode 100644 index af51e7bf86..0000000000 --- a/sorc/nemsio_read.fd/nemsio_read.f +++ /dev/null @@ -1,197 +0,0 @@ -!- - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -- -! the program reads and list the contents in a nemsio file -! - - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -! Revision history -! Sep 2008: Jun Wang Initial code -! -- - program main -! - use nemsio_module - implicit none -! - integer, parameter:: double=selected_real_kind(p=13,r=200) - type(nemsio_gfile) :: gfile,gfilem2,gfilem3,gfiled2 -! - real (kind=8) timef - character(255) cin - character(8) gdatatype,modelname - character(2) level - real,allocatable :: tmp(:) -!--------------------------------------------------------------------------- -!--- nemsio meta data - real isecond,stime,etime,dummy - integer nrec,im,jm,lm,l,idate(7),version, im2,jm2, nframe, & - ntrac,irealf,nrec1,version1,nmeta1,nfhour,nfminute,nfsecond, & - nfsecondn,nfsecondd,nmeta,tlmeta - integer nsoil,jcap,ncld,idsl,idvc,idvm,idrt,rlon_min,rlon_max, & - rlat_min,rlat_max - integer nmetavari,nmetavarr,nmetavarl,nmetavarc,nmetavarr8, & - nmetaaryi,nmetaaryr,nmetaaryl,nmetaaryc,nmetaaryr8 - integer ihrst,idat(3),mp_physics,sf_surface_physics,icycle,fieldsize - logical global, run,extrameta - character(16),allocatable :: recname(:),reclevtyp(:) - integer,allocatable :: reclev(:) - real,allocatable :: cpi(:),ri(:) -!--------------------------------------------------------------------------- -!--- local vars - character(16) vname - character(32) gtype - character(16) vlevtyp - integer i,ii,j,jj,jrec,krec,vlev,iret,lev,ista,iend,jsta,jend -!--------------------------------------------------------------------------- -! - character(16),allocatable :: variname(:),varrname(:),varlname(:),varcname(:),varr8name(:), & - aryiname(:),aryrname(:),arylname(:),arycname(:),aryr8name(:) - integer,allocatable :: varival(:),aryilen(:),aryrlen(:),aryllen(:),aryclen(:),aryr8len(:) - integer,allocatable :: aryival(:,:) - real,allocatable :: varrval(:),aryrval(:,:) - real(8),allocatable :: varr8val(:),aryr8val(:,:) - logical,allocatable :: varlval(:),arylval(:,:) - character(16),allocatable :: varcval(:),arycval(:,:) -! -!--------------------------------------------------------------------------- -! -!-------------set up nemsio write-------------------------- - call nemsio_init(iret=iret) - print *,'nemsio_init, iret=',iret -! -!+++++++++++++++++ read nemsil file with 2 meta data -!+++++++++++++++++++++++++++ -! -!--- open gfile for reading - print *,'3b:: start reading nemsio file ' -! cin='nemsio_2meta_big' - call getarg(1,cin) - call nemsio_open(gfile,trim(cin),'read',iret=iret) - if(iret/=0) print *,'3b:: after open read, ',trim(cin), ' iret=',iret -! -!--- get dimension - im=0;jm=0;lm=0;nframe=0;nrec=0 - call nemsio_getfilehead(gfile,dimx=im,dimy=jm,dimz=lm,nframe=nframe,nrec=nrec,& - gdatatype=gdatatype,modelname=modelname,nmeta=nmeta,ntrac=ntrac,tlmeta=tlmeta,iret=iret) - print *,'3b:: gfilem2,im=',im,'jm=',jm,'lm=',lm,'nframe=',nframe,'nrec=',nrec, & - 'gdatatype=',gdatatype,' modelname=',modelname,' nmeta=',nmeta,'ntrac=',ntrac, & - 'tlmeta=',tlmeta,'iret=',iret -!--- meta data info - call nemsio_getfilehead(gfile,nfhour=nfhour,nfminute=nfminute,nsoil=nsoil,ncldt=ncld,& - idsl=idsl,idvc=idvc,idvm=idvm,idrt=idrt,iret=iret) - print *,'3b:: gfilem2,nfhour=',nfhour,'jcap=',jcap,'ncld=',ncld,'idvc=',idvc,'idrt=',idrt -! -! call nemsio_getheadvar(gfile,'nfhour',nfhour,iret=iret) -! print *,'nfhour=',nfhour -! call nemsio_getheadvar(gfile,'latf', latf,iret=iret) -! print *,'latf=',latf -! - call nemsio_getfilehead(gfile,nmetavari=nmetavari,nmetavarr=nmetavarr,nmetavarl=nmetavarl, & - nmetavarc=nmetavarc,nmetavarr8=nmetavarr8,nmetaaryi=nmetaaryi,nmetaaryr=nmetaaryr, & - nmetaaryr8=nmetaaryr8,nmetaaryl=nmetaaryl, nmetaaryc=nmetaaryc) - print *,'nmetavari=',nmetavari,'nmetavarr=',nmetavarr,'nmetavarl=',nmetavarl, & - 'nmetavarc=',nmetavarc,'nmetavarr8=',nmetavarr8 - print *,'nmetaaryi=',nmetaaryi,'nmetaaryr=',nmetaaryr,'nmetaaryl=',nmetaaryl, & - 'nmetaaryc=',nmetaaryc,'nmetaaryr8=',nmetaaryr8 - if(nmetavari>0) then - allocate(variname(nmetavari),varival(nmetavari)) - call nemsio_getfilehead(gfile,variname=variname,varival=varival) - print *,'variname=',variname,'varival=',varival - endif - if(nmetavarr>0) then - allocate(varrname(nmetavarr),varrval(nmetavarr)) - call nemsio_getfilehead(gfile,varrname=varrname,varrval=varrval) - print *,'varrname=',varrname,'varrval=',varrval - endif - if(nmetavarr8>0) then - allocate(varr8name(nmetavarr8),varr8val(nmetavarr8)) - call nemsio_getfilehead(gfile,varr8name=varr8name,varr8val=varr8val) - print *,'varr8name=',varr8name,'varr8val=',varr8val - endif - if(nmetavarl>0) then - allocate(varlname(nmetavarl),varlval(nmetavarl)) - call nemsio_getfilehead(gfile,varlname=varlname,varlval=varlval) - print *,'varlname=',varlname,'varlval=',varlval - endif - if(nmetavarc>0) then - allocate(varcname(nmetavarc),varcval(nmetavarc)) - call nemsio_getfilehead(gfile,varcname=varcname,varcval=varcval) - print *,'varcname=',varcname,'varcval=',varcval - endif - - if(nmetaaryi>0) then - allocate(aryiname(nmetaaryi),aryilen(nmetaaryi)) - call nemsio_getfilehead(gfile,aryiname=aryiname,aryilen=aryilen) - print *,'aryiname=',aryiname,'aryilen=',aryilen - allocate(aryival(maxval(aryilen),nmetaaryi)) - call nemsio_getfilehead(gfile,aryival=aryival) - do i=1,nmetaaryi - print *,'aryiname=',aryiname(i),aryilen(i),aryival(1:aryilen(i),i) - enddo - endif - if(nmetaaryr>0) then - allocate(aryrname(nmetaaryr),aryrlen(nmetaaryr)) - call nemsio_getfilehead(gfile,aryrname=aryrname,aryrlen=aryrlen) - print *,'aryrname=',aryrname,'aryrlen=',aryrlen - allocate(aryrval(maxval(aryrlen),nmetaaryr)) - call nemsio_getfilehead(gfile,aryrval=aryrval) - do i=1,nmetaaryr - print *,'aryrname=',aryrname(i),aryrlen(i),aryrval(1:aryrlen(i),i) - enddo - endif - if(nmetaaryr8>0) then - allocate(aryr8name(nmetaaryr8),aryr8len(nmetaaryr8)) - call nemsio_getfilehead(gfile,aryr8name=aryr8name,aryr8len=aryr8len) - print *,'aryr8name=',aryr8name,'aryr8len=',aryr8len - allocate(aryr8val(maxval(aryr8len),nmetaaryr8)) - call nemsio_getfilehead(gfile,aryr8val=aryr8val) - do i=1,nmetaaryr8 - print *,'aryr8name=',aryr8name(i),aryr8len(i),aryr8val(1:aryr8len(i),i) - enddo - endif - if(nmetaaryl>0) then - allocate(arylname(nmetaaryl),aryllen(nmetaaryl)) - call nemsio_getfilehead(gfile,arylname=arylname,aryllen=aryllen) - print *,'arylname=',arylname,'aryllen=',aryllen - allocate(arylval(maxval(aryllen),nmetaaryl)) - call nemsio_getfilehead(gfile,arylval=arylval) - do i=1,nmetaaryl - print *,'arylname=',arylname(i),aryllen(i),arylval(1:aryllen(i),i) - enddo - endif - if(nmetaaryc>0) then - allocate(arycname(nmetaaryc),aryclen(nmetaaryc)) - call nemsio_getfilehead(gfile,arycname=arycname,aryclen=aryclen) - print *,'arycname=',arycname,'aryclen=',aryclen - allocate(arycval(maxval(aryclen),nmetaaryc)) - call nemsio_getfilehead(gfile,arycval=arycval) - do i=1,nmetaaryc - print *,'arycname=',arycname(i),aryclen(i),arycval(1:aryclen(i),i) - enddo - endif - - -! -!---read fields -! - fieldsize=(im+2*nframe)*(jm+2*nframe) - allocate(tmp(fieldsize)) - do jrec=1,nrec - call nemsio_getrechead(gfile,jrec,vname,vlevtyp,vlev,iret) - call nemsio_readrec(gfile,jrec,tmp,iret=iret) - print *,'3b:: read,jrec=',jrec,'iret=',iret,' vname=',trim(vname), & - ' vlevtyp=',trim(vlevtyp),' vlev=',vlev,'data=',maxval(tmp),minval(tmp) - enddo -! -!--- close nemsio file - call nemsio_close(gfile,iret=iret) - if ( iret .ne.0) print *,'iret=',iret - -!!--------------------------------------------------------------------------- - deallocate(tmp) -! -!--------------------------------------------------------------------------- -! - call nemsio_finalize() -! - - - - -- - -- - -- - -- - - -- - -- -- - -- - -- - - -- - - - -- - -! -- - stop - - end program - diff --git a/sorc/nst_tf_chg.fd/Makefile b/sorc/nst_tf_chg.fd/Makefile deleted file mode 100755 index 048e37103e..0000000000 --- a/sorc/nst_tf_chg.fd/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -SHELL= /bin/sh - -CMD= nst_tf_chg.x - -OBJS = setup.o nst_tf_chg.o read_tfs_nc.o smth9_msk.o nc_check.o - -build: $(CMD) - -$(CMD): $(OBJS) - $(FCOMP) $(FFLAGS) -I$(NEMSIO_INC) $(NETCDF_INCLUDE) -o $(CMD) $(OBJS) $(NETCDF_LDFLAGS_F) $(NEMSIO_LIB) $(BACIO_LIB4) $(W3NCO_LIBd) - -setup.o: setup.f90 - $(FCOMP) $(FFLAGS) -c setup.f90 -nst_tf_chg.o: nst_tf_chg.f90 - $(FCOMP) $(FFLAGS) -I$(NEMSIO_INC) $(NETCDF_INCLUDE) -c nst_tf_chg.f90 -nc_check.o: nc_check.f90 - $(FCOMP) $(FFLAGS) $(NETCDF_INCLUDE) -c nc_check.f90 -read_tfs_nc.o: read_tfs_nc.f90 - $(FCOMP) $(FFLAGS) $(NETCDF_INCLUDE) -c read_tfs_nc.f90 -smth9_msk.o: smth9_msk.f90 - $(FCOMP) $(FFLAGS) -c smth9_msk.f90 - -install: - cp ${CMD} ../../exec - -clean: - rm -f *.o *.mod ${CMD} ../../exec/${CMD} - -test: - @echo NO TESTS YET diff --git a/sorc/nst_tf_chg.fd/makefile.sh b/sorc/nst_tf_chg.fd/makefile.sh deleted file mode 100755 index dac12eb3bb..0000000000 --- a/sorc/nst_tf_chg.fd/makefile.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -export FFLAGS="-O3 -fp-model precise -g -r8 -i4" -# for debugging -#export FFLAGS="-g -r8 -i4 -warn unused -check bounds" - -export NETCDF_INCLUDE="-I${NETCDF}/include" -export NETCDF_LDFLAGS_F="-L${NETCDF}/lib -lnetcdf -lnetcdff -L${HDF5}/lib -lhdf5 -lhdf5_fortran" - -make clean -make build -err=$? -if [ $err -ne 0 ]; then - echo ERROR BUILDING nst_tf_chg - exit 2 -fi -make install - -exit diff --git a/sorc/nst_tf_chg.fd/nc_check.f90 b/sorc/nst_tf_chg.fd/nc_check.f90 deleted file mode 100644 index f1f0973bb7..0000000000 --- a/sorc/nst_tf_chg.fd/nc_check.f90 +++ /dev/null @@ -1,12 +0,0 @@ -subroutine nc_check(status) - - use netcdf - - integer, intent ( in) :: status - - if(status /= nf90_noerr) then - print *, trim(nf90_strerror(status)) - stop "Stopped" - end if -end subroutine nc_check - diff --git a/sorc/nst_tf_chg.fd/nst_tf_chg.f90 b/sorc/nst_tf_chg.fd/nst_tf_chg.f90 deleted file mode 100755 index 32997c8a25..0000000000 --- a/sorc/nst_tf_chg.fd/nst_tf_chg.f90 +++ /dev/null @@ -1,234 +0,0 @@ -program nst_tref_chg -! Abstract: Replace tref to be a new one by -! 1. Read in a new Tref -! 2. Smoothing Tref -! Created by Xu Li, Mar., 2017 - use nemsio_module, only: nemsio_init,nemsio_open,nemsio_close - use nemsio_module, only: nemsio_gfile,nemsio_getfilehead - use nemsio_module, only: nemsio_readrec,nemsio_writerec,nemsio_readrecv,nemsio_writerecv - use setup, only: nsmth,istyp,init_setup - implicit none - integer, parameter :: nrec_nst=19 - character(5) :: fnamei,fnameo,ftfanl - character(16), dimension(nrec_nst) :: recname - integer :: lonb,latb,nlon,nlat - integer :: iret,n,i,j - real, allocatable, dimension(:) :: rwork1d - real, allocatable, dimension(:,:) :: tf_anl,work2d,land,tref - integer, allocatable, dimension(:,:) :: mask - type(nemsio_gfile):: gfilei, gfileo - namelist/config/nsmth,istyp - - fnamei='fnsti' - fnameo='fnsto' - ftfanl='ftfan' - - call init_setup - - read(5,config) - - write(*,*) 'nsmth,istyp : ',nsmth,istyp -! -! assign recname, reclevtyp and reclev for nsst file -! -!Initiate nemsio - call nemsio_init(iret=iret) -!open gfilei_nst (nstf06_mem???) - call nemsio_open(gfilei,fnamei,'read',iret=iret) -! read head of gfilei_nst - call nemsio_getfilehead(gfilei, dimx=lonb,dimy=latb,iret=iret) - - nlon = lonb - nlat = latb - write(*,*) 'lonb, latb : ',lonb, latb - allocate(rwork1d(lonb*latb)) - allocate(tref(lonb,latb),tf_anl(lonb,latb),land(lonb,latb), mask(lonb,latb), work2d(lonb,latb)) -!open nemsio nstanl - gfileo=gfilei -! read the nrec_sfc variables from sfcgcy and then write then to sfcanl -! -! recname(1) = 'land ' -! recname(2) = 'xt ' -! recname(3) = 'xs ' -! recname(4) = 'xu ' -! recname(5) = 'xv ' -! recname(6) = 'xz ' -! recname(7) = 'zm ' -! recname(8) = 'xtts ' -! recname(9) = 'xzts ' -! recname(10) = 'dtcool ' -! recname(11) = 'zc ' -! recname(12) = 'c0 ' -! recname(13) = 'cd ' -! recname(14) = 'w0 ' -! recname(15) = 'wd ' -! recname(16) = 'dconv ' -! recname(17) = 'ifd ' -! recname(18) = 'tref ' -! recname(19) = 'qrain ' - - - recname(1) = 'c0 ' - recname(2) = 'cd ' - recname(3) = 'dconv ' - recname(4) = 'dtcool ' - recname(5) = 'ifd ' - recname(6) = 'land ' - recname(7) = 'qrain ' - recname(8) = 'tref ' - recname(9) = 'w0 ' - recname(10) = 'wd ' - recname(11) = 'xs ' - recname(12) = 'xt ' - recname(13) = 'xtts ' - recname(14) = 'xu ' - recname(15) = 'xv ' - recname(16) = 'xz ' - recname(17) = 'xzts ' - recname(18) = 'zc ' - recname(19) = 'zm ' - - call nemsio_open(gfileo,fnameo,'write',iret=iret,recname=recname) - -! xt - call nemsio_readrecv(gfilei, 'xt', 'sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for xt', ' Status = ', iret - call nemsio_writerecv(gfileo,'xt','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for xt', ' Status = ', iret -! xs - call nemsio_readrecv(gfilei, 'xs', 'sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for xs', ' Status = ', iret - call nemsio_writerecv(gfileo,'xs','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for xs', ' Status = ', iret -! xu - call nemsio_readrecv(gfilei, 'xu', 'sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for xu', ' Status = ', iret - call nemsio_writerecv(gfileo,'xu','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for xu', ' Status = ', iret -! xv - call nemsio_readrecv(gfilei, 'xv', 'sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for xv', ' Status = ', iret - call nemsio_writerecv(gfileo,'xv','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for xv', ' Status = ', iret -! xz - call nemsio_readrecv(gfilei, 'xz', 'sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for xz', ' Status = ', iret - call nemsio_writerecv(gfileo,'xz','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for xz', ' Status = ', iret -! zm - call nemsio_readrecv(gfilei, 'zm', 'sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for zm', ' Status = ', iret - call nemsio_writerecv(gfileo,'zm','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for zm', ' Status = ', iret -! xtts - call nemsio_readrecv(gfilei, 'xtts', 'sfc', 1,rwork1d,iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for xtts', ' Status = ', iret - call nemsio_writerecv(gfileo,'xtts','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for xtts', ' Status = ', iret -! xzts - call nemsio_readrecv(gfilei, 'xzts', 'sfc', 1,rwork1d,iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for xzts', ' Status = ', iret - call nemsio_writerecv(gfileo,'xzts','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for xzts', ' Status = ', iret -! dt_cool - call nemsio_readrecv(gfilei, 'dtcool','sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for dtcool', ' Status = ', iret - call nemsio_writerecv(gfileo,'dtcool','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for dtcool', ' Status = ', iret -! z_c - call nemsio_readrecv(gfilei, 'zc','sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for zc', ' Status = ', iret - call nemsio_writerecv(gfileo,'zc','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for zc', ' Status = ', iret -! c_0 - call nemsio_readrecv(gfilei, 'c0','sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for c0', ' Status = ', iret - call nemsio_writerecv(gfileo,'c0','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for c0', ' Status = ', iret -! c_d - call nemsio_readrecv(gfilei, 'cd','sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for cd', ' Status = ', iret - call nemsio_writerecv(gfileo,'cd','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for cd', ' Status = ', iret -! w_0 - call nemsio_readrecv(gfilei, 'w0','sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for w0', ' Status = ', iret - call nemsio_writerecv(gfileo,'w0','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for w0', ' Status = ', iret -! w_d - call nemsio_readrecv(gfilei, 'wd','sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for wd', ' Status = ', iret - call nemsio_writerecv(gfileo,'wd','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for wd', ' Status = ', iret -! tref - call nemsio_readrecv(gfilei, 'tref', 'sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for tref', ' Status = ', iret - - tref=reshape(rwork1d,(/size(tref,1),size(tref,2)/)) - -! slmsk/land - call nemsio_readrecv(gfilei,'land', 'sfc', 1, rwork1d,iret=iret) - write(*,*) ' nemsio_readrecv, land, iret = ',iret - - if ( iret /= 0 ) then -! For some retro run periods to prepare FY17 implementation, the sfc mask name could be slmsk - print *,'could not read land, try to read slmsk instead as the old sfc mask name' - call nemsio_readrecv(gfilei,'slmsk','sfc',1,rwork1d,iret=iret) - if (iret /= 0) then - write(6,*) 'readrecv for gfilei for slmsk', ' Status = ', iret - endif - endif - land=reshape(rwork1d,(/size(land,1),size(land,2)/)) - - call nemsio_writerecv(gfileo,'land','sfc',1,rwork1d,iret=iret) - - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for land', ' Status = ', iret - - if ( nsmth == 100 ) then - call read_tfs_nc(ftfanl,tf_anl,int(land),nlon,nlat) - write(*,*) 'nlon, nlat : ',nlon, nlat - if ( nlon /= lonb .or. nlat /= latb ) then - write(*,*) 'inconsistent dimensions, nlon,nlat,lonb,latb ; ',nlon,nlat,lonb,latb - stop - endif - do j = 1, latb - do i = 1, lonb - if ( land(i,j) == 0.0 ) then - tref(i,j) = tf_anl(i,j) - endif - enddo - enddo - else - do n = 1, nsmth - write(*,'(a,I4)') ' smooth times : ',n - work2d = tref - call smth9_msk(work2d,tref,int(land),lonb,latb,istyp) - enddo - endif - - rwork1d = reshape( tref,(/size(rwork1d)/) ) - call nemsio_writerecv(gfileo,'tref','sfc',1,rwork1d,iret=iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for tref', ' Status = ', iret - -! d_conv - call nemsio_readrecv(gfilei, 'dconv', 'sfc', 1, rwork1d,iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for dconv', ' Status = ', iret - call nemsio_writerecv(gfileo,'dconv','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for dconv', ' Status = ', iret -! ifd - call nemsio_readrecv(gfilei, 'ifd', 'sfc', 1, rwork1d, iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for ifd', ' Status = ', iret - call nemsio_writerecv(gfileo,'ifd','sfc',1,rwork1d,iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for ifd', ' Status = ', iret -! qrain - call nemsio_readrecv(gfilei,'qrain', 'sfc', 1, rwork1d,iret=iret) - if ( iret /= 0 ) write(6,*) 'readrecv for gfilei for qrain', ' Status = ', iret - call nemsio_writerecv(gfileo,'qrain','sfc',1,rwork1d,iret=iret) - if ( iret /= 0 ) write(6,*) 'writerecv for gfileo for ifd', ' Status = ', iret - - deallocate(rwork1d) - call nemsio_close(gfilei,iret=iret) - call nemsio_close(gfileo,iret=iret) - - -end program nst_tref_chg diff --git a/sorc/nst_tf_chg.fd/read_tfs_nc.f90 b/sorc/nst_tf_chg.fd/read_tfs_nc.f90 deleted file mode 100644 index c53950df37..0000000000 --- a/sorc/nst_tf_chg.fd/read_tfs_nc.f90 +++ /dev/null @@ -1,94 +0,0 @@ -subroutine read_tfs_nc(filename,tf,mask,nlon,nlat) -! -! abstract : read Tf at GFS Gaussin grids in netCDF -! - use netcdf - implicit none - - ! This is the name of the data file we will read. - character (len=5), intent(in) :: filename - integer, intent(in) :: nlat,nlon - real, dimension(nlon,nlat), intent(out) :: tf - integer, dimension(nlon,nlat), intent(in) :: mask -! Local variables - real, dimension(nlon,nlat) :: tf_tmp - - integer :: ncid - - integer, parameter :: ndims = 3 - real, parameter :: xoffset = 273.15, scale_factor = 0.01 - character (len = *), parameter :: lat_name = "latitude" - character (len = *), parameter :: lon_name = "longitude" - character (len = *), parameter :: tim_name = "time" - character (len = *), parameter :: tf_name="tf" - character (len = *), parameter :: mask_name="slmsk" - integer :: no_fill,fill_value - integer :: lon_varid, lat_varid, tf_varid, mask_varid - - ! The start and count arrays will tell the netCDF library where to read our data. - integer, dimension(ndims) :: start, count - real, dimension(nlat) :: xlats - real, dimension(nlon) :: xlons - - character (len = *), parameter :: units = "units" - character (len = *), parameter :: tf_units = "kelvin", mask_units = "none" - character (len = *), parameter :: lat_units = "degrees_north" - character (len = *), parameter :: lon_units = "degrees_east" - character (len = *), parameter :: tim_units = "seconds" - - integer :: missv -! Loop indices - integer :: rec, i,j - -! To check the units attributes. - character*80 tf_units_in, mask_units_in - character*80 lat_units_in, lon_units_in - - write(*,*) 'filename, nlon, nlat : ',filename, nlon, nlat - -! Open the file. -! call nc_check( nf90_open(filename, nf90_netcdf4, ncid) ) - call nc_check( nf90_open(filename, nf90_nowrite, ncid) ) - -! Get the varids of the latitude and longitude coordinate variables. -! call nc_check( nf90_inq_varid(ncid, lat_name, lat_varid) ) -! call nc_check( nf90_inq_varid(ncid, lon_name, lon_varid) ) - -! Read the time, latitude and longitude data. -! call nc_check( nf90_get_var(ncid, lat_varid, xlats) ) -! call nc_check( nf90_get_var(ncid, lon_varid, xlons) ) - -! Get the varids of the tf & mask netCDF variables. - call nc_check( nf90_inq_varid(ncid, tf_name, tf_varid) ) -! call nc_check( nf90_inq_varid(ncid, mask_name, mask_varid) ) - -! Get the missing value of analysed_sst -! call nc_check( nf90_get_att(ncid, tf_varid, '_FillValue', missv) ) -! write(*,*) 'ostia Tf fill_value, missing_value : ',missv,missing_value - -! Read 1 record of nlat*nlon values, starting at the beginning -! of the record (the (1, 1, rec) element in the netCDF file). - start = (/ 1, 1, 1 /) - count = (/ nlon, nlat, 1 /) - -! Read the tf & mask data from the file, one record at a time. - call nc_check( nf90_get_var(ncid, tf_varid, tf_tmp, start, count) ) -! call nc_check( nf90_get_var(ncid, mask_varid, mask, start, count) ) - - do j = 1, nlat - do i = 1, nlon - if ( mask(i,j) == 0 ) then - tf(i,j) = real(tf_tmp(i,nlat+1-j))*scale_factor + xoffset - endif - enddo - enddo - -! Close the file. This frees up any internal netCDF resources -! associated with the file. - call nc_check( nf90_close(ncid) ) - -! If we got this far, everything worked as expected. Yipee! - print *,"*** SUCCESS reading file ", filename, "!" - -end subroutine read_tfs_nc - diff --git a/sorc/nst_tf_chg.fd/read_tfs_nc_2d.f90 b/sorc/nst_tf_chg.fd/read_tfs_nc_2d.f90 deleted file mode 100644 index 310db46cbf..0000000000 --- a/sorc/nst_tf_chg.fd/read_tfs_nc_2d.f90 +++ /dev/null @@ -1,92 +0,0 @@ -subroutine read_tfs_nc(filename,tf,mask,nlon,nlat) -! -! abstract : read Tf at GFS Gaussin grids in netCDF -! - use netcdf - implicit none - - ! This is the name of the data file we will read. - character (len=6), intent(in) :: filename - integer, intent(in) :: nlat,nlon - real, dimension(nlon,nlat), intent(out) :: tf - integer, dimension(nlon,nlat), intent(in) :: mask -! Local variables - real, dimension(nlon,nlat) :: tf_tmp - - integer :: ncid - - integer, parameter :: ndims = 2 - real, parameter :: xoffset = 273.15, scale_factor = 0.01 - character (len = *), parameter :: lat_name = "latitude" - character (len = *), parameter :: lon_name = "longitude" - character (len = *), parameter :: tf_name="tf" - character (len = *), parameter :: mask_name="slmsk" - integer :: no_fill,fill_value - integer :: lon_varid, lat_varid, tf_varid, mask_varid - - ! The start and count arrays will tell the netCDF library where to read our data. - integer, dimension(ndims) :: start, count - real, dimension(nlat) :: xlats - real, dimension(nlon) :: xlons - - character (len = *), parameter :: units = "units" - character (len = *), parameter :: tf_units = "kelvin", mask_units = "none" - character (len = *), parameter :: lat_units = "degrees_north" - character (len = *), parameter :: lon_units = "degrees_east" - - integer :: missv -! Loop indices - integer :: rec, i,j - -! To check the units attributes. - character*80 tf_units_in, mask_units_in - character*80 lat_units_in, lon_units_in - - write(*,*) 'filename, nlon, nlat : ',filename, nlon, nlat - -! Open the file. -! call nc_check( nf90_open(filename, nf90_netcdf4, ncid) ) - call nc_check( nf90_open(filename, nf90_nowrite, ncid) ) - -! Get the varids of the latitude and longitude coordinate variables. -! call nc_check( nf90_inq_varid(ncid, lat_name, lat_varid) ) -! call nc_check( nf90_inq_varid(ncid, lon_name, lon_varid) ) - -! Read the time, latitude and longitude data. -! call nc_check( nf90_get_var(ncid, lat_varid, xlats) ) -! call nc_check( nf90_get_var(ncid, lon_varid, xlons) ) - -! Get the varids of the tf & mask netCDF variables. - call nc_check( nf90_inq_varid(ncid, tf_name, tf_varid) ) -! call nc_check( nf90_inq_varid(ncid, mask_name, mask_varid) ) - -! Get the missing value of analysed_sst -! call nc_check( nf90_get_att(ncid, tf_varid, '_FillValue', missv) ) -! write(*,*) 'ostia Tf fill_value, missing_value : ',missv,missing_value - -! Read 1 record of nlat*nlon values, starting at the beginning -! of the record (the (1, 1, rec) element in the netCDF file). - start = (/ 1, 1 /) - count = (/ nlon, nlat /) - -! Read the tf & mask data from the file, one record at a time. - call nc_check( nf90_get_var(ncid, tf_varid, tf_tmp, start, count) ) -! call nc_check( nf90_get_var(ncid, mask_varid, mask, start, count) ) - - do j = 1, nlat - do i = 1, nlon - if ( mask(i,j) == 0 ) then - tf(i,j) = real(tf_tmp(i,nlat+1-j))*scale_factor + xoffset - endif - enddo - enddo - -! Close the file. This frees up any internal netCDF resources -! associated with the file. - call nc_check( nf90_close(ncid) ) - -! If we got this far, everything worked as expected. Yipee! - print *,"*** SUCCESS reading file ", filename, "!" - -end subroutine read_tfs_nc - diff --git a/sorc/nst_tf_chg.fd/setup.f90 b/sorc/nst_tf_chg.fd/setup.f90 deleted file mode 100755 index adadf7dea7..0000000000 --- a/sorc/nst_tf_chg.fd/setup.f90 +++ /dev/null @@ -1,37 +0,0 @@ -module setup -!$$$ module documentation block -! . . . . -! module: setup -! prgmmr: Xu Li date: 2017-03-13 -! -! abstract: This module contains variables to run nst_tf_chg -! -! program history log: -! -! Subroutines Included: -! sub init_grdmod - initialize grided related variables to default values -! -! Variable Definitions: -! def nsmth - the number of 9-point smooth -! def missing_value - missing_value -! -!$$$ end documentation block - - integer :: nsmth,istyp - -contains - - subroutine init_setup -! -! abstract: set defaults for observation related variables -! - implicit none - -! Initialize arrays used in namelist obs_input - nsmth = 0 - istyp = 0 - end subroutine init_setup - -end module setup - - diff --git a/sorc/nst_tf_chg.fd/smth9_msk.f90 b/sorc/nst_tf_chg.fd/smth9_msk.f90 deleted file mode 100644 index 75cd42b724..0000000000 --- a/sorc/nst_tf_chg.fd/smth9_msk.f90 +++ /dev/null @@ -1,90 +0,0 @@ - subroutine smth9_msk(a,b,isli,nlon,nlat,istyp) -!$$$ subprogram documentation block -! . . . -! subprogram: smth9_msk --- 9-point smoother with surface mask -! by spatial average from a to b with ancillary surface mask (e.g., -! analysis grid => surface grid) for global arrays -! to gurantee the averaged value (b) is determined by the -! candidates (a) with the identical surface type from (a) -! -! prgrmmr: li - initial version; org: np2. 03/13/2017 -! -! -! program history log: -! -! input argument list: -! a - real: 2-d array such as analysis increment at analysis grids -! isli - integer: 2-d array: surface mask (0 = water, 1 = land, 2 = sea ice) for a grids - -! nlat - integer: number of latitude of a & b -! nlon - integer: number of longitude of a & b -! istyp - integer: target surface type value -! -! output argument list: -! b - real: 2-d array -! -! attributes: -! language: f90 -! machines: ibm RS/6000 SP; SGI Origin 2000; Compaq HP -! -!$$$ end documentation block -! USES: - - implicit none - -! INPUT: - real , dimension(nlon,nlat), intent(in ) :: a - integer, dimension(nlon,nlat), intent(in ) :: isli - - integer, intent(in ) :: nlat,nlon,istyp - -!OUTPUT: - real , dimension(nlon,nlat), intent(inout) :: b - -!Declare local variables - integer :: i,j,ii,jj,ix,iy - integer :: num - - real :: bout,dlat,dlon - - b=a -!Loop over all grids of array b to get interpolated value - do j = 1, nlat - do i = 1, nlon - if ( isli(i,j) == istyp ) then -! -! get the averraged value with the nearby grids (in a) which has -! the identical surface mask (in b) only - - num = 0 - bout = 0.0 - do ii = i-1, i+1 - ix = ii - if ( ix == 0 ) ix = nlon - if ( ix == nlon + 1 ) ix = 1 - do jj = j-1, j+1 - iy = jj - iy = max(min(nlat,iy),1) - if ( isli(ix,iy) == istyp ) then - bout = bout + a(ix,iy) - num = num + 1 - endif - enddo - enddo - - if ( num > 0 ) then - bout = bout/real(num) - else - write(*,'(a,I4,I3,I5)') 'smth9_msk: warning, no data to averageistyp, keep it as is (orginal value) num ; ',istyp,num - endif - - b(i,j)=bout - - endif ! if ( isli(i,j) == istyp ) then - enddo ! do i = 1, nlon - enddo ! do j = 1, nlat - - - - end subroutine smth9_msk - diff --git a/sorc/orog.fd/.gitignore b/sorc/orog.fd/.gitignore deleted file mode 100644 index 2c9c240818..0000000000 --- a/sorc/orog.fd/.gitignore +++ /dev/null @@ -1 +0,0 @@ -ml01rg2.x diff --git a/sorc/orog.fd/Makefile b/sorc/orog.fd/Makefile deleted file mode 100755 index ab31834de9..0000000000 --- a/sorc/orog.fd/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -SHELL =/bin/ksh -LIBS =$(LIBSM) - -SRCM =mtnlm7_oclsm.f -SRCS = - -OBJS =mtnlm7_oclsm.o netcdf_io.o -FC =$(FCMP) -FC90 =$(FCMP95) -LDR =$(FCMP) - -FFLAGS =$(FFLAGSM) -OMPFLAG=$(OMPFLAGM) -LDFLAGS =$(LDFLAGSM) - -CMD =orog.x -$(CMD): $(OBJS) - $(LDR) $(LDFLAGS) $(OBJS) $(LIBS) -o $(CMD) - -netcdf_io.o: netcdf_io.F90 - $(FC) $(FFLAGS) $(OMPFLAG) -c netcdf_io.F90 -mtnlm7_oclsm.o: mtnlm7_oclsm.f - $(FC) $(FFLAGS) $(OMPFLAG) -c mtnlm7_oclsm.f -clean: - -rm -f $(OBJS) *.mod -install: - -cp $(CMD) ../../exec/. -clobber: clean - -rm -f $(CMD) diff --git a/sorc/orog.fd/README b/sorc/orog.fd/README deleted file mode 100755 index 774e92f39e..0000000000 --- a/sorc/orog.fd/README +++ /dev/null @@ -1,27 +0,0 @@ -Orography mtnvar14 and land-sea mask generator - WCOSS version tar ball - -The code generates the global orographic elevations on a given Gaussian lonb -by latb grid with a spectral filter if requested from the USGS 30" input -lon/lat array and 30" RAMP radar elevations (GICE) for Antarctic 30" -elevations with the UMD lake mask and for the land sea mask and RAMP -radar elevations (GICE) for Antarctic 30" elevations. In addition, the -mtnvar14 file gravity wave drag variance and higher moments, and -Mountain Blocking files are generated. An ocean model lsm can override -the land mask keeping the lake mask intact (defaults off). A low resolution -190.384x190_128-192 (T190 382x190 Gaussian grid with a Quadritic filter -from waves 128 to 192 - the last wave is not set to zero) setup file -qbsub_mtnlsm190.384x190_128-192.sh -is included with output and results as well as a current t1534 GFS -SLG setup file. This file can be used to submit a batch job orgmlw.sh. -This script will compile the fortran code mtnlm7_oclsm.f, and execute the -code, setting up the local input files and create a temporary directory for -computation and transfer the files back to the starting dir. Root directories -and names have been removed where possible. Reset the fortran compiler and -note that the program is running in r8 and the files are big-endian. -The scripts use modules to set the link libraries and the module script is -included as well as the lib source code and make files to compile these. -An example Grads control file for reading the ieee files is included as Grads -has trouble with the 14 record mtnvar14 file read as one record as the model -requries. The single record orogb and slmgb grib files are read by grads. - -Jordan Alpert diff --git a/sorc/orog.fd/README_OC b/sorc/orog.fd/README_OC deleted file mode 100755 index 10b93bf586..0000000000 --- a/sorc/orog.fd/README_OC +++ /dev/null @@ -1,25 +0,0 @@ - For this implementation: -! --- if mskocn=1 ocean land sea mask given/present, =0 if not present -! --- OCLSM is real(*4) array with fractional values possible -! --- 0 is ocean and 1 is land for slm -! --- Step 1: Only change SLM after GFS SLM is applied -! --- upgrade to fractional lsm with ice mask and lake mask separate later -! --- SLM is only field that will be altered by OCLSM -! --- Ocean land sea mask ocean points made ocean in atm model -! --- Land and Lakes and all other atm elv moments remain unchanged. - The LSM Gaussian file from the ocean model sometimes arrives with -! --- 0=Ocean and 1=Land or it arrives with 1=Ocean and 0=land without -! --- metadata to distinguish its disposition. - In fortran code one should set these switches: - MSKOCN = 1 ! Ocean land sea mask =1, =0 if not present - NOTOCN = 1 ! =1 Ocean lsm input reverse: Ocean=1, land=0 - as in - if (notocn .eq. 1)then - print *,' Ocean LSM Reversed: NOTOCN=',notocn - endif - and the reversal will be undone. - - -If ocean land sea mask file is not present, the system will continue and -no incorporate it. - diff --git a/sorc/orog.fd/machine.h b/sorc/orog.fd/machine.h deleted file mode 100755 index a9316ed4bf..0000000000 --- a/sorc/orog.fd/machine.h +++ /dev/null @@ -1,11 +0,0 @@ -cc Machine dependant constants (*j*) added io2 20051101 -cc - integer kind_io2,kind_io4,kind_io8 - integer kind_evod -cc - parameter (kind_io2 =2) - parameter (kind_io4 =4) - parameter (kind_io8 =8) - parameter (kind_evod=8) - real(kind=kind_evod) mprec ! machine precision to restrict dep - parameter(mprec = 1.e-12 ) diff --git a/sorc/orog.fd/mtnlm7_oclsm.f b/sorc/orog.fd/mtnlm7_oclsm.f deleted file mode 100755 index a910616e60..0000000000 --- a/sorc/orog.fd/mtnlm7_oclsm.f +++ /dev/null @@ -1,4455 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: TERRAIN TERRAIN MAKER FOR GLOBAL SPECTRAL MODEL -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-04-16 -C -C ABSTRACT: THIS PROGRAM CREATES 7 TERRAIN-RELATED FILES -C COMPUTED FROM THE NAVY 10-MINUTE TERRAIN DATASET. -C THE MODEL PHYSICS GRID PARAMETERS AND SPECTRAL TRUNCATION -C AND FILTER PARAMETERS ARE READ BY THIS PROGRAM AS INPUT. -C THE 7 FILES PRODUCED ARE RESPECTIVELY: -C 1) SEA-LAND MASK ON MODEL PHYSICS GRID -C 2) GRIDDED OROGRAPHY ON MODEL PHYSICS GRID -C 3) MOUNTAIN STD DEV ON MODEL PHYSICS GRID -C 4) SPECTRAL OROGRAPHY IN SPECTRAL DOMAIN -C 5) UNFILTERED GRIDDED OROGRAPHY ON MODEL PHYSICS GRID -C 6) GRIB SEA-LAND MASK ON MODEL PHYSICS GRID -C 7) GRIB GRIDDED OROGRAPHY ON MODEL PHYSICS GRID -C THE OROGRAPHY IS ONLY FILTERED FOR WAVENUMBERS GREATER THAN NF0. -C FOR WAVENUMBERS N BETWEEN NF0 AND NF1, THE OROGRAPHY IS FILTERED -C BY THE FACTOR 1-((N-NF0)/(NF1-NF0))**2. THE FILTERED OROGRAPHY -C WILL NOT HAVE INFORMATION BEYOND WAVENUMBER NF1. -C -C PROGRAM HISTORY LOG: -C 92-04-16 IREDELL -C 98-02-02 IREDELL FILTER -C 98-05-31 HONG Modified for subgrid orography used in Kim's scheme -C 98-12-31 HONG Modified for high-resolution GTOPO orography -C 99-05-31 HONG Modified for getting OL4 (mountain fraction) -! 00-02-10 Moorthi's modifications -C 00-04-11 HONG Modified for reduced grids -C 00-04-12 Iredell Modified for reduced grids -C 02-01-07 (*j*) modified for principal axes of orography -! There are now 14 files, 4 additional for lm mb -! 04-04-04 (*j*) re-Test on IST/ilen calc for sea-land mask(*j*) -! 04-09-04 minus sign here in MAKEOA IST and IEN as in MAKEMT! -! 05-09-05 if test on HK and HLPRIM for GAMMA SQRT -! 07-08-07 replace 8' with 30" incl GICE, conintue w/ S-Y. lake slm -! 08-08-07 All input 30", UMD option, and filter as described below -! --- Quadratic filter applied by default. -! --- NF0 is normally set to an even value beyond the previous truncation, -! --- for example, for jcap=382, NF0=254+2 -! --- NF1 is set as jcap+2 (and/or nearest even), eg., for t382, NF1=382+2=384 -! --- if no filter is desired then NF1=NF0=0 and ORF=ORO -! --- but if no filter but spectral to grid (with gibbs) then NF1=jcap+2, and NF1=jcap+1 -C -C -C USAGE: -C -C INPUT FILES: -C UNIT5 - PHYSICS LONGITUDES (IM), PHYSICS LATITUDES (JM), -C SPECTRAL TRUNCATION (NM), RHOMBOIDAL FLAG (NR), -C AND FIRST AND SECOND FILTER PARAMETERS (NF0,NF1). -C RESPECTIVELY READ IN FREE FORMAT. -C UNIT235 - GTOPO 30" AVR for ZAVG elevation -C UNIT10 - 30" UMD land (lake) cover mask see MSKSRC switch -C XUNIT11 - GTOPO AVR -C XUNIT12 - GTOPO STD DEV -C XUNIT13 - GTOPO MAX -C UNIT14 - GTOPO SLM (10' NAVY if switched to get lakes -C UNIT15 - GICE Grumbine 30" RAMP Antarctica orog IMNx3616 -C UNIT25 - Ocean land-sea mask on gaussian grid -C -C OUTPUT FILES: -C UNIT51 - SEA-LAND MASK (IM,JM) -C UNIT52 - GRIDDED OROGRAPHY (IM,JM) -C UNIT54 - SPECTRAL OROGRAPHY ((NM+1)*((NR+1)*NM+2)) -C UNIT55 - UNFILTERED GRIDDED OROGRAPHY (IM,JM) -C UNIT57 - GRIB GRIDDED OROGRAPHY (IM,JM) -C -C SUBPROGRAMS CALLED: -C UNIQUE: -C TERSUB - MAIN SUBPROGRAM -C SPLAT - COMPUTE GAUSSIAN LATITUDES OR EQUALLY-SPACED LATITUDES -C LIBRARY: -C SPTEZ - SPHERICAL TRANSFORM -C GBYTES - UNPACK BITS -C -C REMARKS: FORTRAN 9X EXTENSIONS ARE USED. -C -C ATTRIBUTES: -C CRAY YMP & IBM AIX 3 5 00C88D5D4C00. -C -C$$$ -CFPP$ NOCONCUR F - include 'netcdf.inc' - logical fexist, opened - integer fsize, ncid, error, id_dim, nx, ny - character(len=256) :: OUTGRID = "none" - character(len=256) :: INPUTOROG = "none" - logical :: do_oa = .true. ! create oa and ol data. - logical :: grid_from_file = .true. - integer :: MTNRES,IM,JM,NM,NR,NF0,NF1,EFAC,BLAT,NW - fsize=65536 - READ(5,*) MTNRES,IM,JM,NM,NR,NF0,NF1,EFAC,BLAT - READ(5,*) OUTGRID - READ(5,*) INPUTOROG -! MTNRES=1 -! IM=48 -! JM=48 -! NM=46 -! NF0=0 -! NF1=0 -! efac=0 -! blat=0 -! NR=0 -! OUTGRID = "C48_grid.tile1.nc" -! INPUTOROG = "oro.288x144.nc" - print*, "INPUTOROG=", trim(INPUTOROG) - print*, "IM,JM=", IM, JM -! --- MTNRES defines the input (highest) elev resolution -! --- =1 is topo30 30" in units of 1/2 minute. -! so MTNRES for old values must be *2. -! =16 is now Song Yu's 8' orog the old ops standard -! --- other possibilities are =8 for 4' and =4 for 2' see -! HJ for T1000 test. Must set to 1 for now. - MTNRES=1 - print*, MTNRES,IM,JM,NM,NR,NF0,NF1,EFAC,BLAT - NW=(NM+1)*((NR+1)*NM+2) - IMN = 360*120/MTNRES - JMN = 180*120/MTNRES - print *, ' Starting terr12 mtnlm7_slm30.f IMN,JMN:',IMN,JMN - -! --- read the grid resolution if the OUTGRID exists. - if( trim(OUTGRID) .NE. "none" ) then - inquire(file=trim(OUTGRID), exist=fexist) - if(.not. fexist) then - print*, "file "//trim(OUTGRID)//" does not exist" - CALL ERREXIT(4) - endif - do ncid = 103, 512 - inquire( ncid,OPENED=opened ) - if( .NOT.opened )exit - end do - - print*, "outgrid=", trim(outgrid) - error=NF__OPEN(trim(OUTGRID),NF_NOWRITE,fsize,ncid) - call netcdf_err(error, 'Open file '//trim(OUTGRID) ) - error=nf_inq_dimid(ncid, 'nx', id_dim) - call netcdf_err(error, 'inquire dimension nx from file '// - & trim(OUTGRID) ) - error=nf_inq_dimlen(ncid,id_dim,nx) - call netcdf_err(error, 'inquire dimension nx length '// - & 'from file '//trim(OUTGRID) ) - - error=nf_inq_dimid(ncid, 'ny', id_dim) - call netcdf_err(error, 'inquire dimension ny from file '// - & trim(OUTGRID) ) - error=nf_inq_dimlen(ncid,id_dim,ny) - call netcdf_err(error, 'inquire dimension ny length '// - & 'from file '//trim(OUTGRID) ) - print*, "nx = ", nx - if(IM .ne. nx/2) then - print*, "IM=",IM, " /= grid file nx/2=",nx/2 - print*, "Set IM = ", nx/2 - IM = nx/2 - endif - if(JM .ne. ny/2) then - print*, "JM=",JM, " /= grid file ny/2=",ny/2 - print*, "Set JM = ", ny/2 - JM = ny/2 - endif - error=nf_close(ncid) - call netcdf_err(error, 'close file '//trim(OUTGRID) ) - - endif - - - CALL TERSUB(IMN,JMN,IM,JM,NM,NR,NF0,NF1,NW,EFAC,BLAT, - & OUTGRID,INPUTOROG) - STOP - END - SUBROUTINE TERSUB(IMN,JMN,IM,JM,NM,NR,NF0,NF1,NW,EFAC,BLAT, - & OUTGRID,INPUTOROG) -!jaa use ipfort - implicit none - include 'machine.h' - include 'netcdf.inc' -C - integer :: IMN,JMN,IM,JM,NW - character(len=*), intent(in) :: OUTGRID - character(len=*), intent(in) :: INPUTOROG - integer :: NR,NF0,NF1 - real, parameter :: MISSING_VALUE=-9999. - real, PARAMETER :: PI=3.1415926535897931 - integer :: efac, blat - integer, PARAMETER :: NMT=14 - INTEGER ZSLMX(2700,1350) - integer NM - logical LATLONGRID - INTEGER,allocatable:: ZAVG(:,:),ZSLM(:,:) - REAL(4),allocatable:: GICE(:,:),OCLSM(:,:) - real :: DEGRAD - integer*1,allocatable:: UMD(:,:) - integer*1 i3save - integer*2 glob(IMN,JMN), i2save - logical grid_from_file - INTEGER KPDS(200),KGDS(200), zsave1,zsave2,itopo,kount - INTEGER kount2,islmx,jslmx,oldslm,msksrc,mskocn,notocn - REAL COSCLT(JM),WGTCLT(JM),RCLT(JM),XLAT(JM),DIFFX(JM/2) - REAL XLON(IM) - LOGICAL is_south_pole(IM,JM), is_north_pole(IM,JM) - REAL GEOLON(IM,JM),GEOLAT(IM,JM) - REAL, allocatable :: tmpvar(:,:) - REAL GEOLON_C(IM+1,JM+1),GEOLAT_C(IM+1,JM+1) - REAL DX(IM,JM),DY(IM,JM) - REAL SLM(IM,JM),ORO(IM,JM),VAR(IM,JM),ORS(NW),ORF(IM,JM) - REAL land_frac(IM,JM) - REAL THETA(IM,JM),GAMMA(IM,JM),SIGMA(IM,JM),ELVMAX(IM,JM) - REAL WZ4(IM,JM),VAR4(IM,JM),OA(IM,JM,4),OL(IM,JM,4),SLMI(IM,JM) - integer IST(IM,jm),IEN(IM,jm),JST(JM),JEN(JM) - integer IWORK(IM,JM,4) - real WORK1(IM,JM),WORK2(IM,JM),WORK3(IM,JM),WORK4(IM,JM) - real WORK5(IM,JM),WORK6(IM,JM),GLAT(JMN) - LOGICAL SPECTR, REVLAT, FILTER - logical fexist - real HPRIME(IM,JM,14) - real oaa(4),ola(4),sumdif,avedif,alon,alat - real, allocatable :: oa_in(:,:,:), ol_in(:,:,:) - real, allocatable :: slm_in(:,:), lon_in(:,:), lat_in(:,:) - integer numi(jm),ios,iosg,latg2,istat - integer maxc3,maxc4,maxc5,maxc6,maxc7,maxc8 - integer lonsperlat(jm/2),itest,jtest - integer i, j, nx, ny, ncid, js, jn, iw, ie, k - integer it,jt,i1,error,id_dim,id_var,nx_in,ny_in - integer i_south_pole,j_south_pole,i_north_pole,j_north_pole - real maxlat, minlat - logical opened - logical LB(IM*JM) - integer fsize,wgta,IN,INW,INE,IS,ISW,ISE,M,N,IMT,IRET - complex ffj(im/2+1) - real dlat,PHI,DELXN,RS,RN,slma,oroa,vara,var4a,xn,XS,FFF - real WWW - real :: timef,tbeg,tend,tbeg1 - logical :: output_binary - output_binary = .false. - tbeg1=timef() - tbeg=timef() - fsize = 65536 - - allocate (ZAVG(IMN,JMN)) - allocate (ZSLM(IMN,JMN)) - allocate (GICE(IMN+1,3601)) - allocate (UMD(IMN,JMN)) - allocate (OCLSM(IM,JM)) - -! -! SET CONSTANTS AND ZERO FIELDS -! - DEGRAD = 180./PI - SPECTR = NM .GT. 0 ! if NM <=0 grid is assumed lat/lon - FILTER = .TRUE. ! Spectr Filter defaults true and set by NF1 & NF0 -! MSKSRC = 0 ! MSKSRC=0 navy 10 lake msk, 1 UMD 30, -1 no lakes - MSKSRC = 1 ! MSKSRC=0 navy 10 lake msk, 1 UMD 30, -1 no lakes - REVLAT = BLAT .LT. 0 ! Reverse latitude/longitude for output - ITOPO = 1 ! topo 30" read, otherwise tiles (opt offline) - MSKOCN = 1 ! Ocean land sea mask =1, =0 if not present - NOTOCN = 1 ! =1 Ocean lsm input reverse: Ocean=1, land=0 -! --- The LSM Gaussian file from the ocean model sometimes arrives with -! --- 0=Ocean and 1=Land or it arrives with 1=Ocean and 0=land without -! --- metadata to distinguish its disposition. The AI below mitigates this. - - print *,' In TERSUB, ITOPO=',itopo - if (mskocn .eq. 1)then - print *,' Ocean Model LSM Present and ' - print *, ' Overrides OCEAN POINTS in LSM: mskocn=',mskocn - if (notocn .eq. 1)then - print *,' Ocean LSM Reversed: NOTOCN=',notocn - endif - endif -C -C --- old S-Y. files -C- OPEN(UNIT=11,FORM='FORMATTED',ERR=900) ! average -C- OPEN(UNIT=12,FORM='FORMATTED',ERR=900) ! Std Dev -C- OPEN(UNIT=13,FORM='FORMATTED',ERR=900) ! maximum -C- OPEN(UNIT=14,FORM='FORMATTED',ERR=900) ! sea-land-lake-mask -C -! --- READ(11,11) ZAVG -! --- READ(12,11) ZVAR -! --- READ(13,11) ZMAX -! --- 11 FORMAT(20I4) -! -! --- MSKSRC 0 navy 10' lake mask, =1 for 30" UMD lake mask, -! --- MSKSRC internally set if above fails at -1 for no lakes -! --- - IF (MSKSRC .eq. 0 ) then - READ(14,12,iostat=ios) ZSLMX - 12 FORMAT(80I1) - if (ios.ne.0) then - MSKSRC=-1 - print *,' navy10 lake mask rd fail -- ios,MSKSRC:',ios,MSKSRC - endif - ELSE - print *,' Attempt to open/read UMD 30" slmsk MSKSRC=',MSKSRC -! --- not 0 so MSKSRC=1 and attempt to open/read UMD 30" slmsk -! open(10,file= -! &"/scratch2/portfolios/NCEPDEV/global/noscrub/Jordan.Alpert/wx23ja -! &/terrain30/landcover30.fixed", -! & recl=43200*21600, access='direct',iostat=istat) - open(10,file="landcover30.fixed", - & recl=43200*21600, access='direct',iostat=istat) - - IF (istat.ne.0) then - MSKSRC=-1 - print *,' UMD lake mask open failed -- ios,MSKSRC:',istat,MSKSRC - ELSE -! - read(10, rec=1,iostat=istat) UMD - print *,' UMD lake mask opened OK -- ios,MSKSRC:',istat,MSKSRC -! - ENDIF -! -------------- - IF (istat.ne.0) then -! --- When UMD read fails attempt to read navy 10' - print *,' UMD lake mask rd err -- trying navy 10',istat - MSKSRC=0 - print *,' ***** MSKSRC set to 0 MSKSRC=',MSKSRC - if (MSKSRC .eq. 0 ) then - READ(14,12,iostat=ios) ZSLMX - if (ios.ne.0) then - MSKSRC=-1 - print *,' navy10 lake mask rd fail - ios,MSKSRC:',ios,MSKSRC - endif - endif - ELSE - print *,' UMD lake, UMD(50,50)=',UMD(50,50),MSKSRC - ENDIF -! -------------- -! --- good UMD land cover read and MSKSRC=1 - ENDIF -C -C- READ_G for global 30" terrain -C - print *,' About to call read_g, ITOPO=',ITOPO - if ( ITOPO .ne. 0 ) call read_g(glob,ITOPO) -! --- transpose even though glob 30" is from S to N and NCEP std is N to S - do j=1,jmn/2 - do I=1,imn - jt=jmn - j + 1 - i2save = glob(I,j) - glob(I,j)=glob(I,jt) - glob(I,jt) = i2save - enddo - enddo -! --- transpose glob as USGS 30" is from dateline and NCEP std is 0 - do j=1,jmn - do I=1,imn/2 - it=imn/2 + i - i2save = glob(i,J) - glob(i,J)=glob(it,J) - glob(it,J) = i2save - enddo - enddo - print *,' After read_g, glob(500,500)=',glob(500,500) -! - -! --- IMN,JMN - print*, ' IM, JM, NM, NR, NF0, NF1, EFAC, BLAT' - print*, IM,JM,NM,NR,NF0,NF1,EFAC,BLAT - print *,' imn,jmn,glob(imn,jmn)=',imn,jmn,glob(imn,jmn) - print *,' UBOUND ZAVG=',UBOUND(ZAVG) - print *,' UBOUND glob=',UBOUND(glob) - print *,' UBOUND ZSLM=',UBOUND(ZSLM) - print *,' UBOUND GICE=',UBOUND(GICE) - print *,' UBOUND OCLSM=',UBOUND(OCLSM) -! -! --- 0 is ocean and 1 is land for slm -! -C -! --- ZSLM initialize with all land 1, ocean 0 -! ZSLM=1 - do j=1,jmn - do i=1,imn - zslm(i,j)=1 - enddo - enddo - - SELECTCASE(MSKSRC) -C---- 30" sea land mask. 0 are water (lake or ocean) - CASE(1) -! --- transpose even though glob 30" is from S to N and NCEP std is N to S - do j=1,jmn/2 - do I=1,imn - jt=jmn - j + 1 - i3save = UMD(I,j) - UMD(I,j)=UMD(I,jt) - UMD(I,jt) = i3save - enddo - enddo -! --- transpose UMD as USGS 30" is from dateline and NCEP std is 0 - do j=1,jmn - do i=1,imn/2 - it=imn/2 + i - i3save = UMD(i,J) - UMD(i,J)=UMD(it,J) - UMD(it,J) = i3save - enddo - enddo -! --- UMD slmsk with 30" lakes and set ZAVG from glob - do j=1,jmn - do i=1,imn - if ( UMD(i,j) .eq. 0 ) ZSLM(i,j) = 0 - ZAVG(i,j) = glob(i,j) - enddo - enddo -! --- Global land in slm plus lakes on 30" grid and elev set over globe -! --- -! --- When navy 10' mask is set MSKSRC=0 - CASE(0) -! --- MSKSRC 0 navy 10' lake mask, =1 for 30" UMD lake mask, -1 no lakes - print *,' NAVY 10 (8) slmsk for lakes, MSKSRC=',MSKSRC - kount = 0 - kount2 = 0 - do j=1,jmn - oldslm = ZSLM(IMN,j) - do i=1,imn - i1 = i + 1 -! --- slmsk with 10' lakes and set ZAVG from 30" glob - ZAVG(i,j) = glob(i,j) - if ( glob(i,j) .eq. -9999 ) then - ZSLM(i,j) = 0 - kount = kount + 1 - endif - islmx=(i-1)/16 + 1 - jslmx=(j-1)/16 + 1 - if ( ZSLMX(islmx,jslmx) .eq. 0 ) then - if ( j .gt. 8 .and. j .lt. JMN-8 ) then - if (i1 .gt. IMN ) i1 = i1 - IMN -! ----- - if(ZSLM(i,j).eq.1 .and. oldslm .eq. 1 .and. ZSLM(i1,j).eq.1)then - if (i .ne. 1) oldslm = ZSLM(i,j) - ZSLM(i,j) = 0 - kount2 = kount2 + 1 - endif -! ----- - endif - endif - enddo - enddo -! --- - CASE(-1) - print *,' ***** set ZAVG and slm from 30" glob, MSKSRC=',MSKSRC - kount = 0 - kount2 = 0 - do j=1,jmn - do i=1,imn - i1 = i + 1 -! --- UMD slmsk with 10' lakes and set ZAVG from 30" glob - ZAVG(i,j) = glob(i,j) - if ( glob(i,j) .eq. -9999 ) then - ZSLM(i,j) = 0 - kount = kount + 1 - endif - enddo - enddo - END SELECT -! --- -! --- Fixing an error in the topo 30" data set at pole (-9999). - do i=1,imn - ZSLM(i,1)=0 - ZSLM(i,JMN)=1 - enddo -! -! print *,' kount1,2,ZAVG(1,1),ZAVG(imn,jmn),ZAVG(500,500)', -! & kount,kount2,ZAVG(1,1),ZAVG(imn,jmn),ZAVG(500,500) -! --- The center of pixel (1,1) is 89.9958333N/179.9958333W with dx/dy -! --- spacing of 1/120 degrees. -! -! READ REDUCED GRID EXTENTS IF GIVEN -! - read(20,*,iostat=ios) latg2,lonsperlat - if(ios.ne.0.or.2*latg2.ne.jm) then - do j=1,jm - numi(j)=im - enddo - print *,ios,latg2,'COMPUTE TERRAIN ON A FULL GAUSSIAN GRID' - else - do j=1,jm/2 - numi(j)=lonsperlat(j) - enddo - do j=jm/2+1,jm - numi(j)=lonsperlat(jm+1-j) - enddo - print *,ios,latg2,'COMPUTE TERRAIN ON A REDUCED GAUSSIAN GRID', - & numi -C print *,ios,latg2,'COMPUTE TERRAIN ON A REDUCED GAUSSIAN GRID' - endif -! print *,ios,latg2,'TERRAIN ON GAUSSIAN GRID',numi - -! -! This code assumes that lat runs from north to south for gg! -! - print *,' SPECTR=',SPECTR,' REVLAT=',REVLAT,' ** with GICE-07 **' - IF (SPECTR) THEN - CALL SPLAT(4,JM,COSCLT,WGTCLT) - DO J=1,JM/2 - RCLT(J) = ACOS(COSCLT(J)) - ENDDO - DO J = 1,JM/2 - PHI = RCLT(J) * DEGRAD - XLAT(J) = 90. - PHI - XLAT(JM-J+1) = PHI - 90. - ENDDO - ELSE - CALL SPLAT(0,JM,COSCLT,WGTCLT) - DO J=1,JM - RCLT(J) = ACOS(COSCLT(J)) - XLAT(J) = 90.0 - RCLT(J) * DEGRAD - ENDDO - ENDIF -! -c print *,' cosclt=',cosclt -! print *,' RCLT(1)=',RCLT(1) - sumdif = 0. - DO J = JM/2,2,-1 - DIFFX(J) = xlat(J) - XLAT(j-1) - sumdif = sumdif + DIFFX(J) - ENDDO - avedif=sumdif/(float(JM/2)) -! print *,' XLAT= avedif: ',avedif -! write (6,107) (xlat(J)-xlat(j-1),J=JM,2,-1) - print *,' XLAT=' - write (6,106) (xlat(J),J=JM,1,-1) - 106 format( 10(f7.3,1x)) - 107 format( 10(f9.5,1x)) -C - DELXN = 360./IMN ! MOUNTAIN DATA RESOLUTION -C - DO J=1,JMN - GLAT(J) = -90. + (J-1) * DELXN + DELXN * 0.5 - ENDDO - print *, - & ' Before GICE ZAVG(1,2)=',ZAVG(1,2),ZSLM(1,2) - print *, - & ' Before GICE ZAVG(1,12)=',ZAVG(1,12),ZSLM(1,12) - print *, - & ' Before GICE ZAVG(1,52)=',ZAVG(1,52),ZSLM(1,52) - print *, - & ' Before GICE ZAVG(1,112)=',ZAVG(1,JMN-112),ZSLM(1,112) -! GICE: Grumbine 30" Antarctica orog IMNx3616 from S to N & wraped E-W. -! NB: Zfields are S to N and W-E! - iosg = 0 - READ(15,iostat=iosg) GICE - if(iosg .ne. 0 ) then - print *,' *** Err on reading GICE record, iosg=',iosg - print *,' exec continues but NO GICE correction done ' -! stop - else - print *,' GICE 30" Antarctica RAMP orog 43200x3616 read OK' - print *,' Processing! ' - print *,' Processing! ' - print *,' Processing! ' - do j = 1, 3601 - do i = 1, IMN - zsave1 = ZAVG(i,j) - zsave2 = ZSLM(i,j) - if( GICE(i,j) .ne. -99. .and. GICE(i,j) .ne. -1.0 ) then - if ( GICE(i,j) .gt. 0.) then - ZAVG(i,j) = int( GICE(i,j) + 0.5 ) -!! --- for GICE values less than or equal to 0 (0, -1, or -99) then -!! --- radar-sat (RAMP) values are not valid and revert back to old orog - ZSLM(i,j) = 1 - endif - endif -!jaa ALON = float(i-1) * 360./float(IMN) -!jaa ALAT = glat(j) -! if( ZAVG(i,j) .ne. zsave1 .and. i .lt. 3 ) -! & print *,' antarctica change to ZAVG(i=',i,'j=',j,')=', -! & ZAVG(i,j),ZSLM(i,j),' from originally:',zsave1,zsave2 -! &write(6,151)i,j,ZAVG(i,j),ZSLM(i,j),zsave1,zsave2,ALAT,ALON -! 151 format(1x,'antarctica ZAVG(i=',i3,' j=',i3,')=',i5,i3, -! &' orig:',i5,i3,' Lat=',f8.3,f9.3,'E') -!jaa if( ZAVG(i,j) .ne. zsave1 ) then -!jaa if ( i .le. 1201 .and. i .gt. 1200 )then -!jaa write(6,152)i,j,ZAVG(i,j),ZSLM(i,j),zsave1,zsave2,ALAT,ALON, -!jaa & GICE(i,j) -!jaa endif -!jaa endif - 152 format(1x,' ZAVG(i=',i4,' j=',i4,')=',i5,i3, - &' orig:',i5,i4,' Lat=',f7.3,f8.2,'E',' GICE=',f8.1) - enddo - enddo - endif -! print *, -! & ' After GICE ZAVG(1,2)=',ZAVG(1,2),ZSLM(1,2) -! print *, -! & ' After GICE ZAVG(1,12)=',ZAVG(1,12),ZSLM(1,12) -! print *, -! & ' After GICE ZAVG(1,52)=',ZAVG(1,52),ZSLM(1,52) -! print *, -! & ' After GICE ZAVG(1,112)=',ZAVG(1,112),ZSLM(1,112) -!C -C COMPUTE MOUNTAIN DATA : ORO SLM VAR (Std Dev) OC -C -! --- The coupled ocean model is already on a Guasian grid if (IM,JM) -! --- Attempt to Open the file if mskocn=1 - istat=0 - if (mskocn .eq. 1) then -! open(25,form='unformatted',iostat=istat) -! open(25,form='binary',iostat=istat) -! --- open to fort.25 with link to file in script - open(25,form='formatted',iostat=istat) - if (istat.ne.0) then - mskocn = 0 - print *,' Ocean lsm file Open failure: mskocn,istat=',mskocn,istat - else - mskocn = 1 - print *,' Ocean lsm file Opened OK: mskocn,istat=',mskocn,istat - endif -! --- Read it in - ios=0 - OCLSM=0. -! read(25,iostat=ios)OCLSM - read(25,*,iostat=ios)OCLSM - if (ios.ne.0) then - mskocn = 0 -! --- did not properly read Gaussian grid ocean land-sea mask, but -! continue using ZSLMX - print *,' Rd fail: Ocean lsm - continue, mskocn,ios=',mskocn,ios - else - mskocn = 1 - print *,' Rd OK: ocean lsm: mskocn,ios=',mskocn,ios -! --- LSM initialized to ocean mask especially for case where Ocean -! --- changed by ocean model to land to cope with its problems -! --- remember, that lake mask is in zslm to be assigned in MAKEMT. - if ( mskocn .eq. 1 ) then - DO J = 1,JM - DO I = 1,numi(j) - if ( notocn .eq. 0 ) then - slmi(i,j) = float(NINT(OCLSM(i,j))) - else - if ( NINT(OCLSM(i,j)) .eq. 0) then - slmi(i,j) = 1 - else - slmi(i,j) = 0 - endif - endif - enddo - enddo - print *,' OCLSM',OCLSM(1,1),OCLSM(50,50),OCLSM(75,75),OCLSM(IM,JM) - print *,' SLMI:',SLMI(1,1),SLMI(50,50),SLMI(75,75),SLMI(IM,JM) -! --- Diag -! WRITE(27,iostat=ios) REAL(SLMI,4) -! print *,' write SLMI/OCLSM diag input:',ios - endif - endif - - else - print *,' Not using Ocean model land sea mask' - endif - - if (mskocn .eq. 1)then - print *,' LSM:',OCLSM(1,1),OCLSM(50,50),OCLSM(75,75),OCLSM(IM,JM) - endif - -!--- reading grid file. - grid_from_file = .false. - is_south_pole = .false. - is_north_pole = .false. - i_south_pole = 0 - j_south_pole = 0 - i_north_pole = 0 - j_north_pole = 0 - if( trim(OUTGRID) .NE. "none" ) then - grid_from_file = .true. - inquire(file=trim(OUTGRID), exist=fexist) - if(.not. fexist) then - print*, "file "//trim(OUTGRID)//" does not exist" - CALL ERREXIT(4) - endif - do ncid = 103, 512 - inquire( ncid,OPENED=opened ) - if( .NOT.opened )exit - end do - - print*, "outgrid=", trim(outgrid) - error=NF__OPEN(trim(OUTGRID),NF_NOWRITE,fsize,ncid) - call netcdf_err(error, 'Open file '//trim(OUTGRID) ) - error=nf_inq_dimid(ncid, 'nx', id_dim) - call netcdf_err(error, 'inquire dimension nx from file '// - & trim(OUTGRID) ) - nx = 2*IM - ny = 2*JM -! error=nf_inq_dimlen(ncid,id_dim,nx) -! print*, "nx = ", nx, id_dim -! call netcdf_err(error, 'inquire dimension nx length '// -! & 'from file '//trim(OUTGRID) ) -! error=nf_inq_dimid(ncid, 'ny', id_dim) -! call netcdf_err(error, 'inquire dimension ny from file '// -! & trim(OUTGRID) ) -! error=nf_inq_dimlen(ncid,id_dim,ny) -! call netcdf_err(error, 'inquire dimension ny length '// -! & 'from file '//trim(OUTGRID) ) -! IM should equal nx/2 and JM should equal ny/2 -! if(IM .ne. nx/2) then -! print*, "IM=",IM, " /= grid file nx/2=",nx/2 -! CALL ERREXIT(4) -! endif -! if(JM .ne. ny/2) then -! print*, "JM=",JM, " /= grid file ny/2=",ny/2 -! CALL ERREXIT(4) -! endif - print*, "Read the grid from file "//trim(OUTGRID) - - allocate(tmpvar(nx+1,ny+1)) - - error=nf_inq_varid(ncid, 'x', id_var) - call netcdf_err(error, 'inquire varid of x from file ' - & //trim(OUTGRID) ) - error=nf_get_var_double(ncid, id_var, tmpvar) - call netcdf_err(error, 'inquire data of x from file ' - & //trim(OUTGRID) ) - !--- adjust lontitude to be between 0 and 360. - do j = 1,ny+1; do i = 1,nx+1 - if(tmpvar(i,j) .NE. MISSING_VALUE) then - if(tmpvar(i,j) .GT. 360) tmpvar(i,j) = tmpvar(i,j) - 360 - if(tmpvar(i,j) .LT. 0) tmpvar(i,j) = tmpvar(i,j) + 360 - endif - enddo; enddo - - geolon(1:IM,1:JM) = tmpvar(2:nx:2,2:ny:2) - geolon_c(1:IM+1,1:JM+1) = tmpvar(1:nx+1:2,1:ny+1:2) - - error=nf_inq_varid(ncid, 'y', id_var) - call netcdf_err(error, 'inquire varid of y from file ' - & //trim(OUTGRID) ) - error=nf_get_var_double(ncid, id_var, tmpvar) - call netcdf_err(error, 'inquire data of y from file ' - & //trim(OUTGRID) ) - geolat(1:IM,1:JM) = tmpvar(2:nx:2,2:ny:2) - geolat_c(1:IM+1,1:JM+1) = tmpvar(1:nx+1:2,1:ny+1:2) - - !--- figure out pole location. - maxlat = -90 - minlat = 90 - i_north_pole = 0 - j_north_pole = 0 - i_south_pole = 0 - j_south_pole = 0 - do j = 1, ny+1; do i = 1, nx+1 - if( tmpvar(i,j) > maxlat ) then - i_north_pole=i - j_north_pole=j - maxlat = tmpvar(i,j) - endif - if( tmpvar(i,j) < minlat ) then - i_south_pole=i - j_south_pole=j - minlat = tmpvar(i,j) - endif - enddo ; enddo - !--- only when maxlat is close to 90. the point is north pole - if(maxlat < 89.9 ) then - i_north_pole = 0 - j_north_pole = 0 - endif - if(minlat > -89.9 ) then - i_south_pole = 0 - j_south_pole = 0 - endif - print*, "minlat=", minlat, "maxlat=", maxlat - print*, "north pole supergrid index is ", - & i_north_pole, j_north_pole - print*, "south pole supergrid index is ", - & i_south_pole, j_south_pole - deallocate(tmpvar) - - if(i_south_pole >0 .and. j_south_pole > 0) then - if(mod(i_south_pole,2)==0) then ! stretched grid - do j = 1, JM; do i = 1, IM - if(i==i_south_pole/2 .and. (j==j_south_pole/2 - & .or. j==j_south_pole/2+1) ) then - is_south_pole(i,j) = .true. - print*, "south pole at i,j=", i, j - endif - enddo; enddo - else - do j = 1, JM; do i = 1, IM - if((i==i_south_pole/2 .or. i==i_south_pole/2+1) - & .and. (j==j_south_pole/2 .or. - & j==j_south_pole/2+1) ) then - is_south_pole(i,j) = .true. - print*, "south pole at i,j=", i, j - endif - enddo; enddo - endif - endif - if(i_north_pole >0 .and. j_north_pole > 0) then - if(mod(i_north_pole,2)==0) then ! stretched grid - do j = 1, JM; do i = 1, IM - if(i==i_north_pole/2 .and. (j==j_north_pole/2 .or. - & j==j_north_pole/2+1) ) then - is_north_pole(i,j) = .true. - print*, "north pole at i,j=", i, j - endif - enddo; enddo - else - do j = 1, JM; do i = 1, IM - if((i==i_north_pole/2 .or. i==i_north_pole/2+1) - & .and. (j==j_north_pole/2 .or. - & j==j_north_pole/2+1) ) then - is_north_pole(i,j) = .true. - print*, "north pole at i,j=", i, j - endif - enddo; enddo - endif - endif - - - allocate(tmpvar(nx,ny)) - error=nf_inq_varid(ncid, 'area', id_var) - call netcdf_err(error, 'inquire varid of area from file ' - & //trim(OUTGRID) ) - error=nf_get_var_double(ncid, id_var, tmpvar) - call netcdf_err(error, 'inquire data of area from file ' - & //trim(OUTGRID) ) - - do j = 1, jm - do i = 1, im - dx(i,j) = sqrt(tmpvar(2*i-1,2*j-1)+tmpvar(2*i,2*j-1) - & +tmpvar(2*i-1,2*j )+tmpvar(2*i,2*j )) - dy(i,j) = dx(i,j) - enddo - enddo -! allocate(tmpvar(nx,ny+1)) - -! error=nf_inq_varid(ncid, 'dx', id_var) -! call netcdf_err(error, 'inquire varid of dx from file ' -! & //trim(OUTGRID) ) -! error=nf_get_var_double(ncid, id_var, tmpvar) -! call netcdf_err(error, 'inquire data of dx from file ' -! & //trim(OUTGRID) ) -! dx(1:IM,1:JM+1) = tmpvar(2:nx:2,1:ny+1:2) -! deallocate(tmpvar) - -! allocate(tmpvar(nx+1,ny)) -! error=nf_inq_varid(ncid, 'dy', id_var) -! call netcdf_err(error, 'inquire varid of dy from file ' -! & //trim(OUTGRID) ) -! error=nf_get_var_double(ncid, id_var, tmpvar) -! call netcdf_err(error, 'inquire data of dy from file ' -! & //trim(OUTGRID) ) -! dy(1:IM+1,1:JM) = tmpvar(1:nx+1:2,2:ny:2) -! deallocate(tmpvar) - endif - tend=timef() - write(6,*)' Timer 1 time= ',tend-tbeg - ! -! --- CALL MAKEMT(ZAVG,ZSLM,ORO,OCLSM,mskocn,SLM,VAR,VAR4,GLAT, - if(grid_from_file) then - tbeg=timef() - CALL MAKEMT2(ZAVG,ZSLM,ORO,SLM,land_frac,VAR,VAR4,GLAT, - & IM,JM,IMN,JMN,geolon_c,geolat_c) - tend=timef() - write(6,*)' MAKEMT2 time= ',tend-tbeg - else - - CALL MAKEMT(ZAVG,ZSLM,ORO,SLM,VAR,VAR4,GLAT, - & IST,IEN,JST,JEN,IM,JM,IMN,JMN,XLAT,numi) - endif - call minmxj(IM,JM,ORO,' ORO') - call minmxj(IM,JM,SLM,' SLM') - call minmxj(IM,JM,VAR,' VAR') - call minmxj(IM,JM,VAR4,' VAR4') -C --- check for nands in above -! call nanc(ORO,IM*JM,"MAKEMT_ORO") -! call nanc(SLM,IM*JM,"MAKEMT_SLM") -! call nanc(VAR,IM*JM,"MAKEMT_VAR") -! call nanc(VAR4,IM*JM,"MAKEMT_VAR4") -! -C check antarctic pole -! DO J = 1,JM -! DO I = 1,numi(j) -! if ( i .le. 100 .and. i .ge. 1 )then -! if (j .ge. JM-1 )then -! if (height .eq. 0.) print *,'I,J,SLM:',I,J,SLM(I,J) -! write(6,153)i,j,ORO(i,j),HEIGHT,SLM(i,j) -! endif -! endif -! ENDDO -! ENDDO -C -C === Compute mtn principal coord HTENSR: THETA,GAMMA,SIGMA -C - if(grid_from_file) then - tbeg=timef() - CALL MAKEPC2(ZAVG,ZSLM,THETA,GAMMA,SIGMA,GLAT, - 1 IM,JM,IMN,JMN,geolon_c,geolat_c) - tend=timef() - write(6,*)' MAKEPC2 time= ',tend-tbeg - else - CALL MAKEPC(ZAVG,ZSLM,THETA,GAMMA,SIGMA,GLAT, - 1 IST,IEN,JST,JEN,IM,JM,IMN,JMN,XLAT,numi) - endif - - call minmxj(IM,JM,THETA,' THETA') - call minmxj(IM,JM,GAMMA,' GAMMA') - call minmxj(IM,JM,SIGMA,' SIGMA') - -C --- check for nands in above -! call nanc(THETA,IM*JM,"MAKEPC_THETA") -! call nanc(GAMMA,IM*JM,"MAKEPC_GAMMA") -! call nanc(SIGMA,IM*JM,"MAKEPC_SIGMA") -C -C COMPUTE MOUNTAIN DATA : OA OL -C - call minmxj(IM,JM,ORO,' ORO') - print*, "inputorog=", trim(INPUTOROG) - if(grid_from_file) then - if(trim(INPUTOROG) == "none") then - print*, "calling MAKEOA2 to compute OA, OL" - tbeg=timef() - CALL MAKEOA2(ZAVG,zslm,VAR,GLAT,OA,OL,IWORK,ELVMAX,ORO, - 1 WORK1,WORK2,WORK3,WORK4,WORK5,WORK6, - 2 IM,JM,IMN,JMN,geolon_c,geolat_c, - 3 geolon,geolat,dx,dy,is_south_pole,is_north_pole) - tend=timef() - write(6,*)' MAKEOA2 time= ',tend-tbeg - else - !-- read the data from INPUTOROG file. - error=NF__OPEN(trim(INPUTOROG),NF_NOWRITE,fsize,ncid) - call netcdf_err(error, 'Open file '//trim(INPUTOROG) ) - error=nf_inq_dimid(ncid, 'lon', id_dim) - call netcdf_err(error, 'inquire dimension lon from file '// - & trim(INPUTOROG) ) - error=nf_inq_dimlen(ncid,id_dim,nx_in) - call netcdf_err(error, 'inquire dimension lon length '// - & 'from file '//trim(INPUTOROG) ) - error=nf_inq_dimid(ncid, 'lat', id_dim) - call netcdf_err(error, 'inquire dimension lat from file '// - & trim(INPUTOROG) ) - error=nf_inq_dimlen(ncid,id_dim,ny_in) - call netcdf_err(error, 'inquire dimension lat length '// - & 'from file '//trim(INPUTOROG) ) - - print*, "extrapolate OA, OL from Gaussian grid with nx=", - & nx_in, ", ny=", ny_in - allocate(oa_in(nx_in,ny_in,4), ol_in(nx_in,ny_in,4)) - allocate(slm_in(nx_in,ny_in) ) - allocate(lon_in(nx_in,ny_in), lat_in(nx_in,ny_in) ) - - error=nf_inq_varid(ncid, 'oa1', id_var) - call netcdf_err(error, 'inquire varid of oa1 from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, oa_in(:,:,1)) - call netcdf_err(error, 'inquire data of oa1 from file ' - & //trim(INPUTOROG) ) - error=nf_inq_varid(ncid, 'oa2', id_var) - call netcdf_err(error, 'inquire varid of oa2 from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, oa_in(:,:,2)) - call netcdf_err(error, 'inquire data of oa2 from file ' - & //trim(INPUTOROG) ) - error=nf_inq_varid(ncid, 'oa3', id_var) - call netcdf_err(error, 'inquire varid of oa3 from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, oa_in(:,:,3)) - call netcdf_err(error, 'inquire data of oa3 from file ' - & //trim(INPUTOROG) ) - error=nf_inq_varid(ncid, 'oa4', id_var) - call netcdf_err(error, 'inquire varid of oa4 from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, oa_in(:,:,4)) - call netcdf_err(error, 'inquire data of oa4 from file ' - & //trim(INPUTOROG) ) - - error=nf_inq_varid(ncid, 'ol1', id_var) - call netcdf_err(error, 'inquire varid of ol1 from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, ol_in(:,:,1)) - call netcdf_err(error, 'inquire data of ol1 from file ' - & //trim(INPUTOROG) ) - error=nf_inq_varid(ncid, 'ol2', id_var) - call netcdf_err(error, 'inquire varid of ol2 from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, ol_in(:,:,2)) - call netcdf_err(error, 'inquire data of ol2 from file ' - & //trim(INPUTOROG) ) - error=nf_inq_varid(ncid, 'ol3', id_var) - call netcdf_err(error, 'inquire varid of ol3 from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, ol_in(:,:,3)) - call netcdf_err(error, 'inquire data of ol3 from file ' - & //trim(INPUTOROG) ) - error=nf_inq_varid(ncid, 'ol4', id_var) - call netcdf_err(error, 'inquire varid of ol4 from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, ol_in(:,:,4)) - call netcdf_err(error, 'inquire data of ol4 from file ' - & //trim(INPUTOROG) ) - - error=nf_inq_varid(ncid, 'slmsk', id_var) - call netcdf_err(error, 'inquire varid of slmsk from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, slm_in) - call netcdf_err(error, 'inquire data of slmsk from file ' - & //trim(INPUTOROG) ) - - error=nf_inq_varid(ncid, 'geolon', id_var) - call netcdf_err(error, 'inquire varid of geolon from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, lon_in) - call netcdf_err(error, 'inquire data of geolon from file ' - & //trim(INPUTOROG) ) - - error=nf_inq_varid(ncid, 'geolat', id_var) - call netcdf_err(error, 'inquire varid of geolat from file ' - & //trim(INPUTOROG) ) - error=nf_get_var_double(ncid, id_var, lat_in) - call netcdf_err(error, 'inquire data of geolat from file ' - & //trim(INPUTOROG) ) - - ! set slmsk=2 to be ocean (0) - do j=1,ny_in; do i=1,nx_in - if(slm_in(i,j) == 2) slm_in(i,j) = 0 - enddo; enddo - - error=nf_close(ncid) - call netcdf_err(error, 'close file ' - & //trim(INPUTOROG) ) - - print*, "calling MAKEOA3 to compute OA, OL" - CALL MAKEOA3(ZAVG,zslm,VAR,GLAT,OA,OL,IWORK,ELVMAX,ORO,SLM, - 1 WORK1,WORK2,WORK3,WORK4,WORK5,WORK6, - 2 IM,JM,IMN,JMN,geolon_c,geolat_c, - 3 geolon,geolat,is_south_pole,is_north_pole,nx_in,ny_in, - 4 oa_in,ol_in,slm_in,lon_in,lat_in) - endif - else - CALL MAKEOA(ZAVG,VAR,GLAT,OA,OL,IWORK,ELVMAX,ORO, - 1 WORK1,WORK2,WORK3,WORK4, - 2 WORK5,WORK6, - 3 IST,IEN,JST,JEN,IM,JM,IMN,JMN,XLAT,numi) - endif - tbeg=timef() - call minmxj(IM,JM,OA,' OA') - call minmxj(IM,JM,OL,' OL') - call minmxj(IM,JM,ELVMAX,' ELVMAX') - call minmxj(IM,JM,ORO,' ORO') -C --- check for nands in above -! call nanc(OA(1,1,1), IM*JM,"MAKEOA_OA(1,1,1)") -! call nanc(OA(1,1,2), IM*JM,"MAKEOA_OA(1,1,2)") -! call nanc(OA(1,1,3), IM*JM,"MAKEOA_OA(1,1,3)") -! call nanc(OA(1,1,4), IM*JM,"MAKEOA_OA(1,1,4)") -! call nanc(OL(1,1,1), IM*JM,"MAKEOA_OL(1,1,1)") -! call nanc(OL(1,1,2), IM*JM,"MAKEOA_OL(1,1,2)") -! call nanc(OL(1,1,3), IM*JM,"MAKEOA_OL(1,1,3)") -! call nanc(OL(1,1,4), IM*JM,"MAKEOA_OL(1,1,4)") -! call nanc(ELVMAX, IM*JM,"MAKEPC_ELVMAX") - - maxc3 = 0 - maxc4 = 0 - maxc5 = 0 - maxc6 = 0 - maxc7 = 0 - maxc8 = 0 - DO J = 1,JM - DO I = 1,numi(j) - if (ELVMAX(I,J) .gt. 3000.) maxc3 = maxc3 +1 - if (ELVMAX(I,J) .gt. 4000.) maxc4 = maxc4 +1 - if (ELVMAX(I,J) .gt. 5000.) maxc5 = maxc5 +1 - if (ELVMAX(I,J) .gt. 6000.) maxc6 = maxc6 +1 - if (ELVMAX(I,J) .gt. 7000.) maxc7 = maxc7 +1 - if (ELVMAX(I,J) .gt. 8000.) maxc8 = maxc8 +1 - ENDDO - ENDDO - print *,' MAXC3:',maxc3,maxc4,maxc5,maxc6,maxc7,maxc8 -! -c itest=151 -c jtest=56 -C - print *,' ===> Replacing ELVMAX with ELVMAX-ORO <=== ' - print *,' ===> if ELVMAX<=ORO replace with proxy <=== ' - print *,' ===> the sum of mean orog (ORO) and std dev <=== ' - DO J = 1,JM - DO I = 1,numi(j) - if (ELVMAX(I,J) .lt. ORO(I,J) ) then -C--- subtracting off ORO leaves std dev (this should never happen) - ELVMAX(I,J) = MAX( 3. * VAR(I,J),0.) - else - ELVMAX(I,J) = MAX( ELVMAX(I,J) - ORO(I,J),0.) - endif - ENDDO - ENDDO - maxc3 = 0 - maxc4 = 0 - maxc5 = 0 - maxc6 = 0 - maxc7 = 0 - maxc8 = 0 - DO J = 1,JM - DO I = 1,numi(j) - if (ELVMAX(I,J) .gt. 3000.) maxc3 = maxc3 +1 - if (ELVMAX(I,J) .gt. 4000.) maxc4 = maxc4 +1 - if (ELVMAX(I,J) .gt. 5000.) maxc5 = maxc5 +1 - if (ELVMAX(I,J) .gt. 6000.) maxc6 = maxc6 +1 - if (ELVMAX(I,J) .gt. 7000.) maxc7 = maxc7 +1 - if (ELVMAX(I,J) .gt. 8000.) maxc8 = maxc8 +1 - ENDDO - ENDDO - print *,' after MAXC 3-6 km:',maxc3,maxc4,maxc5,maxc6 -c - call mnmxja(IM,JM,ELVMAX,itest,jtest,' ELVMAX') -! if (JM .gt. 0) stop -C -C ZERO OVER OCEAN -C - print *,' Testing at point (itest,jtest)=',itest,jtest - print *,' SLM(itest,jtest)=',slm(itest,jtest),itest,jtest - print *,' ORO(itest,jtest)=',oro(itest,jtest),itest,jtest - DO J = 1,JM - DO I = 1,numi(j) - IF(SLM(I,J).EQ.0.) THEN -C VAR(I,J) = 0. - VAR4(I,J) = 0. - OA(I,J,1) = 0. - OA(I,J,2) = 0. - OA(I,J,3) = 0. - OA(I,J,4) = 0. - OL(I,J,1) = 0. - OL(I,J,2) = 0. - OL(I,J,3) = 0. - OL(I,J,4) = 0. -C THETA(I,J) =0. -C GAMMA(I,J) =0. -C SIGMA(I,J) =0. -C ELVMAX(I,J)=0. -! --- the sub-grid scale parameters for mtn blocking and gwd retain -! --- properties even if over ocean but there is elevation within the -! --- gaussian grid box. - ENDIF - ENDDO - ENDDO -C -! --- if mskocn=1 ocean land sea mask given, =0 if not present -! --- OCLSM is real(*4) array with fractional values possible -! --- 0 is ocean and 1 is land for slm -! --- Step 1: Only change SLM after GFS SLM is applied -! --- SLM is only field that will be altered by OCLSM -! --- Ocean land sea mask ocean points made ocean in atm model -! --- Land and Lakes and all other atm elv moments remain unchanged. - if ( mskocn .eq. 1 ) then - - DO j = 1,jm - DO i = 1,numi(j) - if (abs (oro(i,j)) .lt. 1. ) then - slm(i,j) = slmi(i,j) - else - if ( slmi(i,j) .eq. 1. .and. slm(i,j) .eq. 1) slm(i,j) = 1 - if ( slmi(i,j) .eq. 0. .and. slm(i,j) .eq. 0) slm(i,j) = 0 - if ( slmi(i,j) .eq. 0. .and. slm(i,j) .eq. 1) slm(i,j) = 0 - if ( slmi(i,j) .eq. 0. .and. slm(i,j) .eq. 0) slm(i,j) = 0 - endif - enddo - enddo - endif - print *,' SLM(itest,jtest)=',slm(itest,jtest),itest,jtest - print *,' ORO(itest,jtest)=',oro(itest,jtest),itest,jtest - -C REMOVE ISOLATED POINTS - DO J=2,JM-1 - JN=J-1 - JS=J+1 - RN=REAL(NUMI(JN))/REAL(NUMI(J)) - RS=REAL(NUMI(JS))/REAL(NUMI(J)) - DO I=1,NUMI(J) - IW=MOD(I+IM-2,IM)+1 - IE=MOD(I,IM)+1 - SLMA=SLM(IW,J)+SLM(IE,J) - OROA=ORO(IW,J)+ORO(IE,J) - VARA=VAR(IW,J)+VAR(IE,J) - VAR4A=VAR4(IW,J)+VAR4(IE,J) - DO K=1,4 - OAA(K)=OA(IW,J,K)+OA(IE,J,K) -! --- (*j*) fix typo: - OLA(K)=OL(IW,J,K)+OL(IE,J,K) - ENDDO - WGTA=2 - XN=RN*(I-1)+1 - IF(ABS(XN-NINT(XN)).LT.1.E-2) THEN - IN=MOD(NINT(XN)-1,NUMI(JN))+1 - INW=MOD(IN+NUMI(JN)-2,NUMI(JN))+1 - INE=MOD(IN,NUMI(JN))+1 - SLMA=SLMA+SLM(INW,JN)+SLM(IN,JN)+SLM(INE,JN) - OROA=OROA+ORO(INW,JN)+ORO(IN,JN)+ORO(INE,JN) - VARA=VARA+VAR(INW,JN)+VAR(IN,JN)+VAR(INE,JN) - VAR4A=VAR4A+VAR4(INW,JN)+VAR4(IN,JN)+VAR4(INE,JN) - DO K=1,4 - OAA(K)=OAA(K)+OA(INW,JN,K)+OA(IN,JN,K)+OA(INE,JN,K) - OLA(K)=OLA(K)+OL(INW,JN,K)+OL(IN,JN,K)+OL(INE,JN,K) - ENDDO - WGTA=WGTA+3 - ELSE - INW=INT(XN) - INE=MOD(INW,NUMI(JN))+1 - SLMA=SLMA+SLM(INW,JN)+SLM(INE,JN) - OROA=OROA+ORO(INW,JN)+ORO(INE,JN) - VARA=VARA+VAR(INW,JN)+VAR(INE,JN) - VAR4A=VAR4A+VAR4(INW,JN)+VAR4(INE,JN) - DO K=1,4 - OAA(K)=OAA(K)+OA(INW,JN,K)+OA(INE,JN,K) - OLA(K)=OLA(K)+OL(INW,JN,K)+OL(INE,JN,K) - ENDDO - WGTA=WGTA+2 - ENDIF - XS=RS*(I-1)+1 - IF(ABS(XS-NINT(XS)).LT.1.E-2) THEN - IS=MOD(NINT(XS)-1,NUMI(JS))+1 - ISW=MOD(IS+NUMI(JS)-2,NUMI(JS))+1 - ISE=MOD(IS,NUMI(JS))+1 - SLMA=SLMA+SLM(ISW,JS)+SLM(IS,JS)+SLM(ISE,JS) - OROA=OROA+ORO(ISW,JS)+ORO(IS,JS)+ORO(ISE,JS) - VARA=VARA+VAR(ISW,JS)+VAR(IS,JS)+VAR(ISE,JS) - VAR4A=VAR4A+VAR4(ISW,JS)+VAR4(IS,JS)+VAR4(ISE,JS) - DO K=1,4 - OAA(K)=OAA(K)+OA(ISW,JS,K)+OA(IS,JS,K)+OA(ISE,JS,K) - OLA(K)=OLA(K)+OL(ISW,JS,K)+OL(IS,JS,K)+OL(ISE,JS,K) - ENDDO - WGTA=WGTA+3 - ELSE - ISW=INT(XS) - ISE=MOD(ISW,NUMI(JS))+1 - SLMA=SLMA+SLM(ISW,JS)+SLM(ISE,JS) - OROA=OROA+ORO(ISW,JS)+ORO(ISE,JS) - VARA=VARA+VAR(ISW,JS)+VAR(ISE,JS) - VAR4A=VAR4A+VAR4(ISW,JS)+VAR4(ISE,JS) - DO K=1,4 - OAA(K)=OAA(K)+OA(ISW,JS,K)+OA(ISE,JS,K) - OLA(K)=OLA(K)+OL(ISW,JS,K)+OL(ISE,JS,K) - ENDDO - WGTA=WGTA+2 - ENDIF - OROA=OROA/WGTA - VARA=VARA/WGTA - VAR4A=VAR4A/WGTA - DO K=1,4 - OAA(K)=OAA(K)/WGTA - OLA(K)=OLA(K)/WGTA - ENDDO - IF(SLM(I,J).EQ.0..AND.SLMA.EQ.WGTA) THEN - PRINT '("SEA ",2F8.0," MODIFIED TO LAND",2F8.0," AT ",2I8)', - & ORO(I,J),VAR(I,J),OROA,VARA,I,J - SLM(I,J)=1. - ORO(I,J)=OROA - VAR(I,J)=VARA - VAR4(I,J)=VAR4A - DO K=1,4 - OA(I,J,K)=OAA(K) - OL(I,J,K)=OLA(K) - ENDDO - ELSEIF(SLM(I,J).EQ.1..AND.SLMA.EQ.0.) THEN - PRINT '("LAND",2F8.0," MODIFIED TO SEA ",2F8.0," AT ",2I8)', - & ORO(I,J),VAR(I,J),OROA,VARA,I,J - SLM(I,J)=0. - ORO(I,J)=OROA - VAR(I,J)=VARA - VAR4(I,J)=VAR4A - DO K=1,4 - OA(I,J,K)=OAA(K) - OL(I,J,K)=OLA(K) - ENDDO - ENDIF - ENDDO - ENDDO -C--- print for testing after isolated points removed - print *,' after isolated points removed' - call minmxj(IM,JM,ORO,' ORO') -C print *,' JM=',JM,' numi=',numi - print *,' ORO(itest,jtest)=',oro(itest,jtest) - print *,' VAR(itest,jtest)=',var(itest,jtest) - print *,' VAR4(itest,jtest)=',var4(itest,jtest) - print *,' OA(itest,jtest,1)=',oa(itest,jtest,1) - print *,' OA(itest,jtest,2)=',oa(itest,jtest,2) - print *,' OA(itest,jtest,3)=',oa(itest,jtest,3) - print *,' OA(itest,jtest,4)=',oa(itest,jtest,4) - print *,' OL(itest,jtest,1)=',ol(itest,jtest,1) - print *,' OL(itest,jtest,2)=',ol(itest,jtest,2) - print *,' OL(itest,jtest,3)=',ol(itest,jtest,3) - print *,' OL(itest,jtest,4)=',ol(itest,jtest,4) - print *,' Testing at point (itest,jtest)=',itest,jtest - print *,' THETA(itest,jtest)=',theta(itest,jtest) - print *,' GAMMA(itest,jtest)=',GAMMA(itest,jtest) - print *,' SIGMA(itest,jtest)=',SIGMA(itest,jtest) - print *,' ELVMAX(itest,jtest)=',ELVMAX(itest,jtest) - print *,' EFAC=',EFAC -C - DO J=1,JM - DO I=1,numi(j) - ORO(I,J) = ORO(I,J) + EFAC*VAR(I,J) - HPRIME(I,J,1) = VAR(I,J) - HPRIME(I,J,2) = VAR4(I,J) - HPRIME(I,J,3) = oa(I,J,1) - HPRIME(I,J,4) = oa(I,J,2) - HPRIME(I,J,5) = oa(I,J,3) - HPRIME(I,J,6) = oa(I,J,4) - HPRIME(I,J,7) = ol(I,J,1) - HPRIME(I,J,8) = ol(I,J,2) - HPRIME(I,J,9) = ol(I,J,3) - HPRIME(I,J,10)= ol(I,J,4) - HPRIME(I,J,11)= THETA(I,J) - HPRIME(I,J,12)= GAMMA(I,J) - HPRIME(I,J,13)= SIGMA(I,J) - HPRIME(I,J,14)= ELVMAX(I,J) - ENDDO - ENDDO -! - call mnmxja(IM,JM,ELVMAX,itest,jtest,' ELVMAX') -! --- Quadratic filter applied by default. -! --- NF0 is normally set to an even value beyond the previous truncation, -! --- for example, for jcap=382, NF0=254+2 -! --- NF1 is set as jcap+2 (and/or nearest even), eg., for t382, NF1=382+2=384 -! --- if no filter is desired then NF1=NF0=0 and ORF=ORO -! --- if no filter but spectral to grid (with gibbs) then NF1=jcap+2, and NF1=jcap+1 -! - IF ( NF1 - NF0 .eq. 0 ) FILTER=.FALSE. - print *,' NF1, NF0, FILTER=',NF1,NF0,FILTER - IF (FILTER) THEN -C SPECTRALLY TRUNCATE AND FILTER OROGRAPHY - do j=1,jm - if(numi(j).lt.im) then - ffj=cmplx(0.,0.) - call spfft1(numi(j),im/2+1,numi(j),1,ffj,oro(1,j),-1) - call spfft1(im,im/2+1,im,1,ffj,oro(1,j),+1) - endif - enddo - CALL SPTEZ(NR,NM,4,IM,JM,ORS,ORO,-1) -! - print *,' about to apply spectral filter ' - FFF=1./(NF1-NF0)**2 - I=0 - DO M=0,NM - DO N=M,NM+NR*M - IF(N.GT.NF0) THEN - WWW=MAX(1.-FFF*(N-NF0)**2,0.) - ORS(I+1)=ORS(I+1)*WWW - ORS(I+2)=ORS(I+2)*WWW - ENDIF - I=I+2 - ENDDO - ENDDO -! - CALL SPTEZ(NR,NM,4,IM,JM,ORS,ORF,+1) - do j=1,jm - if(numi(j).lt.im) then - call spfft1(im,im/2+1,im,1,ffj,orf(1,j),-1) - call spfft1(numi(j),im/2+1,numi(j),1,ffj,orf(1,j),+1) - endif - enddo - - ELSE - IF (REVLAT) THEN - CALL REVERS(IM, JM, numi, SLM, WORK1) - CALL REVERS(IM, JM, numi, ORO, WORK1) - DO IMT=1,NMT - CALL REVERS(IM, JM, numi, HPRIME(1,1,IMT), WORK1) - ENDDO - ENDIF - ORS=0. - ORF=ORO - ENDIF - call mnmxja(IM,JM,ELVMAX,itest,jtest,' ELVMAX') - print *,' ELVMAX(',itest,jtest,')=',ELVMAX(itest,jtest) - print *,' after spectral filter is applied' - call minmxj(IM,JM,ORO,' ORO') - call minmxj(IM,JM,ORF,' ORF') -C -C USE NEAREST NEIGHBOR INTERPOLATION TO FILL FULL GRIDS - call rg2gg(im,jm,numi,slm) - call rg2gg(im,jm,numi,oro) - call rg2gg(im,jm,numi,orf) -C --- not apply to new prin coord and ELVMAX (*j*) - do imt=1,10 - call rg2gg(im,jm,numi,hprime(1,1,imt)) - enddo -C - print *,' after nearest neighbor interpolation applied ' - call minmxj(IM,JM,ORO,' ORO') - call minmxj(IM,JM,ORF,' ORF') - call mnmxja(IM,JM,ELVMAX,itest,jtest,' ELVMAX') - print *,' ORO,ORF(itest,jtest),itest,jtest:', - & ORO(itest,jtest),ORF(itest,jtest),itest,jtest - print *,' ELVMAX(',itest,jtest,')=',ELVMAX(itest,jtest) - - -C check antarctic pole - DO J = 1,JM - DO I = 1,numi(j) - if ( i .le. 21 .and. i .ge. 1 )then - if (j .eq. JM )write(6,153)i,j,ORO(i,j),ELVMAX(i,j),SLM(i,j) - 153 format(1x,' ORO,ELVMAX(i=',i4,' j=',i4,')=',2E14.5,f5.1) - endif - ENDDO - ENDDO - tend=timef() - write(6,*)' Timer 5 time= ',tend-tbeg - if (output_binary) then - tbeg=timef() -C OUTPUT BINARY FIELDS - print *,' OUTPUT BINARY FIELDS' - WRITE(51) REAL(SLM,4) - WRITE(52) REAL(ORF,4) - WRITE(53) REAL(HPRIME,4) - WRITE(54) REAL(ORS,4) - WRITE(55) REAL(ORO,4) - WRITE(66) REAL(THETA,4) - WRITE(67) REAL(GAMMA,4) - WRITE(68) REAL(SIGMA,4) -! --- OCLSM is real(4) write only if ocean mask is present - if ( mskocn .eq. 1 ) then - ios=0 - WRITE(27,iostat=ios) OCLSM - print *,' write OCLSM input:',ios -! print *,' LSM:',OCLSM(1,1),OCLSM(50,50),OCLSM(75,75),OCLSM(IM,JM) - endif -C - call minmxj(IM,JM,ORO,' ORO') - print *,' IM=',IM,' JM=',JM,' SPECTR=',SPECTR -C--- Test binary file output: - WRITE(71) REAL(SLM,4) - DO IMT=1,NMT - WRITE(71) REAL(HPRIME(:,:,IMT),4) - print *,' HPRIME(',itest,jtest,imt,')=',HPRIME(itest,jtest,imt) - ENDDO - WRITE(71) REAL(ORO,4) - IF (SPECTR) THEN - WRITE(71) REAL(ORF,4) ! smoothed spectral orography! - ENDIF -C OUTPUT GRIB FIELDS - KPDS=0 - KPDS(1)=7 - KPDS(2)=78 - KPDS(3)=255 - KPDS(4)=128 - KPDS(5)=81 - KPDS(6)=1 - kpds(8)=2004 - KPDS(9)=1 - KPDS(10)=1 - KPDS(13)=4 - KPDS(15)=1 - KPDS(16)=51 - KPDS(17)=1 - KPDS(18)=1 - KPDS(19)=1 - KPDS(21)=20 - KPDS(22)=0 - KGDS=0 - KGDS(1)=4 - KGDS(2)=IM - KGDS(3)=JM - KGDS(4)=90000-180000/PI*RCLT(1) - KGDS(6)=128 - KGDS(7)=180000/PI*RCLT(1)-90000 - KGDS(8)=-NINT(360000./IM) - KGDS(9)=NINT(360000./IM) - KGDS(10)=JM/2 - KGDS(20)=255 -! --- SLM - CALL BAOPEN(56,'fort.56',IRET) - if (iret .ne. 0) print *,' BAOPEN ERROR UNIT 56: IRET=',IRET - CALL PUTGB(56,IM*JM,KPDS,KGDS,LB,SLM,IRET) - print *,' SLM: putgb-KPDS(22,5),iret:',KPDS(22),KPDS(5),IRET - if (iret .ne. 0) print *,' SLM PUTGB ERROR: UNIT 56: IRET=',IRET - print *,' SLM: putgb-KPDS(22,5),iret:',KPDS(22),KPDS(5),IRET -! --- OCLSM if present -! if ( mskocn .eq. 1 ) then -! CALL BAOPEN(27,'fort.27',IRET) -! if (iret .ne. 0) print *,' OCLSM BAOPEN ERROR UNIT 27:IRET=',IRET -! CALL PUTGB(27,IM*JM,KPDS,KGDS,LB,OCLSM,IRET) -! if (iret .ne. 0) print *,' OCLSM PUTGB ERROR: UNIT 27:IRET=',IRET -! print *,' OCLSM: putgb-KPDS(22,5),iret:',KPDS(22),KPDS(5),IRET -! endif - - KPDS(5)=8 - IF (SPECTR) THEN - CALL BAOPEN(57,'fort.57',IRET) - CALL PUTGB(57,IM*JM,KPDS,KGDS,LB,ORF,IRET) - print *,' ORF (ORO): putgb-KPDS(22,5),iret:',KPDS(22),KPDS(5),IRET - ENDIF -C -C === write out theta (angle of land to East) using #101 (wave dir) -C === [radians] and since < 1 scale adjust kpds(22) -C - KPDS(5)=101 - CALL BAOPEN(58,'fort.58',IRET) - CALL PUTGB(58,IM*JM,KPDS,KGDS,LB,THETA,IRET) - print *,' THETA: putgb-KPDS(22,5),iret:',KPDS(22),KPDS(5),IRET -C -C === write out (land aspect ratio or anisotropy) using #102 -C === (as in wind wave hgt) -C - KPDS(22)=2 - KPDS(5)=102 - CALL BAOPEN(60,'fort.60',IRET) - CALL PUTGB(60,IM*JM,KPDS,KGDS,LB,SIGMA,IRET) - print *,' SIGMA: putgb-KPDS(22,5),iret:',KPDS(22),KPDS(5),IRET -C -C === write out (slope parameter sigma) using #9 -C === (as in std hgt) -C - KPDS(22)=1 - KPDS(5)=103 - CALL BAOPEN(59,'fort.59',IRET) - CALL PUTGB(59,IM*JM,KPDS,KGDS,LB,GAMMA,IRET) - print *,' GAMMA: putgb-KPDS(22,5),iret:',KPDS(22),KPDS(5),IRET -C - KPDS(22)=1 - KPDS(5)=9 - CALL BAOPEN(61,'fort.61',IRET) - CALL PUTGB(61,IM*JM,KPDS,KGDS,LB,HPRIME,IRET) - print *,' HPRIME: putgb-KPDS(22,5),iret:',KPDS(22),KPDS(5),IRET -C -C - KPDS(22)=0 - KPDS(5)=8 - CALL BAOPEN(62,'fort.62',IRET) - CALL PUTGB(62,IM*JM,KPDS,KGDS,LB,ELVMAX,IRET) - print *,' ELVMAX: putgb-KPDS(22,5),iret:',KPDS(22),KPDS(5),IRET - endif ! output_binary -C - DELXN = 360./IM - do i=1,im - xlon(i) = DELXN*(i-1) - enddo - IF(trim(OUTGRID) == "none") THEN - do j=1,jm - do i=1,im - geolon(i,j) = xlon(i) - geolat(i,j) = xlat(j) - enddo - enddo - else - do j = 1, jm - xlat(j) = geolat(1,j) - enddo - do i = 1, im - xlon(i) = geolon(i,1) - enddo - endif - tend=timef() - write(6,*)' Binary output time= ',tend-tbeg - tbeg=timef() - CALL WRITE_NETCDF(IM,JM,SLM,land_frac,ORO,ORF,HPRIME,1,1, - 1 GEOLON(1:IM,1:JM),GEOLAT(1:IM,1:JM), XLON,XLAT) - tend=timef() - write(6,*)' WRITE_NETCDF time= ',tend-tbeg - print *,' wrote netcdf file out.oro.tile?.nc' - - print *,' ===== Deallocate Arrays and ENDING MTN VAR OROG program' - deallocate (ZAVG) - deallocate (ZSLM) - deallocate (UMD) - deallocate (GICE) - tend=timef() - write(6,*)' Total runtime time= ',tend-tbeg1 - RETURN - END - SUBROUTINE MAKEMT(ZAVG,ZSLM,ORO,SLM,VAR,VAR4, -! SUBROUTINE MAKEMT(ZAVG,ZSLM,ORO,OCLSM,mskocn,SLM,VAR,VAR4, - 1 GLAT,IST,IEN,JST,JEN,IM,JM,IMN,JMN,XLAT,numi) - DIMENSION GLAT(JMN),XLAT(JM) -! REAL*4 OCLSM - INTEGER ZAVG(IMN,JMN),ZSLM(IMN,JMN) - DIMENSION ORO(IM,JM),SLM(IM,JM),VAR(IM,JM),VAR4(IM,JM) - DIMENSION IST(IM,jm),IEN(IM,jm),JST(JM),JEN(JM),numi(jm) - INTEGER mskocn,isave - LOGICAL FLAG, DEBUG -C==== DATA DEBUG/.TRUE./ - DATA DEBUG/.FALSE./ -C -! ---- OCLSM holds the ocean (im,jm) grid -! --- mskocn=1 Use ocean model sea land mask, OK and present, -! --- mskocn=0 dont use Ocean model sea land mask, not OK, not present - print *,' _____ SUBROUTINE MAKEMT ' -C---- GLOBAL XLAT AND XLON ( DEGREE ) -C - JM1 = JM - 1 - DELXN = 360./IMN ! MOUNTAIN DATA RESOLUTION -C - DO J=1,JMN - GLAT(J) = -90. + (J-1) * DELXN + DELXN * 0.5 - ENDDO -C -C---- FIND THE AVERAGE OF THE MODES IN A GRID BOX -C -C (*j*) for hard wired zero offset (lambda s =0) for terr05 - DO J=1,JM - DO I=1,numi(j) - IM1 = numi(j) - 1 - DELX = 360./numi(j) ! GAUSSIAN GRID RESOLUTION - FACLON = DELX / DELXN - IST(I,j) = FACLON * FLOAT(I-1) - FACLON * 0.5 + 1 - IEN(I,j) = FACLON * FLOAT(I) - FACLON * 0.5 + 1 -! IST(I,j) = FACLON * FLOAT(I-1) + 1.0001 -! IEN(I,j) = FACLON * FLOAT(I) + 0.0001 -C - IF (IST(I,j) .LE. 0) IST(I,j) = IST(I,j) + IMN - IF (IEN(I,j) .LT. IST(I,j)) IEN(I,j) = IEN(I,j) + IMN -! -! if ( I .lt. 10 .and. J .ge. JM-1 ) -! 1 PRINT*,' MAKEMT: I j IST IEN ',I,j,IST(I,j),IEN(I,j) - ENDDO -! if ( J .ge. JM-1 ) then -! print *,' *** FACLON=',FACLON, 'numi(j=',j,')=',numi(j) -! endif - ENDDO - print *,' DELX=',DELX,' DELXN=',DELXN - DO J=1,JM-1 - FLAG=.TRUE. - DO J1=1,JMN - XXLAT = (XLAT(J)+XLAT(J+1))/2. - IF(FLAG.AND.GLAT(J1).GT.XXLAT) THEN - JST(J) = J1 - JEN(J+1) = J1 - 1 - FLAG = .FALSE. - ENDIF - ENDDO -CX PRINT*, ' J JST JEN ',J,JST(J),JEN(J),XLAT(J),GLAT(J1) - ENDDO - JST(JM) = MAX(JST(JM-1) - (JEN(JM-1)-JST(JM-1)),1) - JEN(1) = MIN(JEN(2) + (JEN(2)-JST(2)),JMN) -! PRINT*, ' JM JST JEN=',JST(JM),JEN(JM),XLAT(JM),GLAT(JMN) -C -C...FIRST, AVERAGED HEIGHT -C - DO J=1,JM - DO I=1,numi(j) - ORO(I,J) = 0.0 - VAR(I,J) = 0.0 - VAR4(I,J) = 0.0 - XNSUM = 0.0 - XLAND = 0.0 - XWATR = 0.0 - XL1 = 0.0 - XS1 = 0.0 - XW1 = 0.0 - XW2 = 0.0 - XW4 = 0.0 - DO II1 = 1, IEN(I,J) - IST(I,J) + 1 - I1 = IST(I,J) + II1 - 1 - IF(I1.LE.0.) I1 = I1 + IMN - IF(I1.GT.IMN) I1 = I1 - IMN -! if ( i .le. 10 .and. i .ge. 1 ) then -! if (j .eq. JM ) -! &print *,' J,JST,JEN,IST,IEN,I1=', -! &J,JST(j),JEN(J),IST(I,j),IEN(I,j),I1 -! endif - DO J1=JST(J),JEN(J) - XLAND = XLAND + FLOAT(ZSLM(I1,J1)) - XWATR = XWATR + FLOAT(1-ZSLM(I1,J1)) - XNSUM = XNSUM + 1. - HEIGHT = FLOAT(ZAVG(I1,J1)) -C......... - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - XL1 = XL1 + HEIGHT * FLOAT(ZSLM(I1,J1)) - XS1 = XS1 + HEIGHT * FLOAT(1-ZSLM(I1,J1)) - XW1 = XW1 + HEIGHT - XW2 = XW2 + HEIGHT ** 2 -C check antarctic pole -! if ( i .le. 10 .and. i .ge. 1 )then -! if (j .ge. JM-1 )then -C=== degub testing -! print *," I,J,I1,J1,XL1,XS1,XW1,XW2:",I,J,I1,J1,XL1,XS1,XW1,XW2 -! 153 format(1x,' ORO,ELVMAX(i=',i4,' j=',i4,')=',2E14.5,3f5.1) -! endif -! endif - ENDDO - ENDDO - IF(XNSUM.GT.1.) THEN -! --- SLM initialized with OCLSM calc from all land points except .... -! --- 0 is ocean and 1 is land for slm -! --- Step 1 is to only change SLM after GFS SLM is applied - - SLM(I,J) = FLOAT(NINT(XLAND/XNSUM)) - IF(SLM(I,J).NE.0.) THEN - ORO(I,J)= XL1 / XLAND - ELSE - ORO(I,J)= XS1 / XWATR - ENDIF - VAR(I,J)=SQRT(MAX(XW2/XNSUM-(XW1/XNSUM)**2,0.)) - DO II1 = 1, IEN(I,j) - IST(I,J) + 1 - I1 = IST(I,J) + II1 - 1 - IF(I1.LE.0.) I1 = I1 + IMN - IF(I1.GT.IMN) I1 = I1 - IMN - DO J1=JST(J),JEN(J) - HEIGHT = FLOAT(ZAVG(I1,J1)) - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - XW4 = XW4 + (HEIGHT-ORO(I,J)) ** 4 - ENDDO - ENDDO - IF(VAR(I,J).GT.1.) THEN -! if ( I .lt. 20 .and. J .ge. JM-19 ) then -! print *,'I,J,XW4,XNSUM,VAR(I,J)',I,J,XW4,XNSUM,VAR(I,J) -! endif - VAR4(I,J) = MIN(XW4/XNSUM/VAR(I,J) **4,10.) - ENDIF - ENDIF - ENDDO - ENDDO - WRITE(6,*) "! MAKEMT ORO SLM VAR VAR4 DONE" -C - - RETURN - END - - SUBROUTINE get_index(IMN,JMN,npts,lonO,latO,DELXN, - & jst,jen,ilist,numx) - implicit none - integer, intent(in) :: IMN,JMN - integer :: npts - real, intent(in) :: LONO(npts), LATO(npts) - real, intent(in) :: DELXN - integer, intent(out) :: jst,jen - integer, intent(out) :: ilist(IMN) - integer, intent(out) :: numx - real minlat,maxlat,minlon,maxlon - integer i2, ii, ist, ien - - minlat = minval(LATO) - maxlat = maxval(LATO) - minlon = minval(LONO) - maxlon = maxval(LONO) - ist = minlon/DELXN+1 - ien = maxlon/DELXN+1 - jst = (minlat+90)/DELXN+1 - jen = (maxlat+90)/DELXN - !--- add a few points to both ends of j-direction - jst = jst - 5 - if(jst<1) jst = 1 - jen = jen + 5 - if(jen>JMN) jen = JMN - - !--- when around the pole, just search through all the points. - if((jst == 1 .OR. jen == JMN) .and. - & (ien-ist+1 > IMN/2) )then - numx = IMN - do i2 = 1, IMN - ilist(i2) = i2 - enddo - else if( ien-ist+1 > IMN/2 ) then ! cross longitude = 0 - !--- find the minimum that greater than IMN/2 - !--- and maximum that less than IMN/2 - ist = 0 - ien = IMN+1 - do i2 = 1, npts - ii = LONO(i2)/DELXN+1 - if(ii <0 .or. ii>IMN) print*,"ii=",ii,IMN,LONO(i2),DELXN - if( ii < IMN/2 ) then - ist = max(ist,ii) - else if( ii > IMN/2 ) then - ien = min(ien,ii) - endif - enddo - if(ist<1 .OR. ist>IMN) then - print*, "ist<1 .or. ist>IMN" - call ABORT() - endif - if(ien<1 .OR. ien>IMN) then - print*, "iend<1 .or. iend>IMN" - call ABORT() - endif - - numx = IMN - ien + 1 - do i2 = 1, numx - ilist(i2) = ien + (i2-1) - enddo - do i2 = 1, ist - ilist(numx+i2) = i2 - enddo - numx = numx+ist - else - numx = ien-ist+1 - do i2 = 1, numx - ilist(i2) = ist + (i2-1) - enddo - endif - - END - - SUBROUTINE MAKEMT2(ZAVG,ZSLM,ORO,SLM,land_frac,VAR,VAR4, - 1 GLAT,IM,JM,IMN,JMN,lon_c,lat_c) - implicit none - real, parameter :: D2R = 3.14159265358979/180. - integer, parameter :: MAXSUM=20000000 - real hgt_1d(MAXSUM) - integer IM, JM, IMN, JMN - real GLAT(JMN), GLON(IMN) - INTEGER ZAVG(IMN,JMN),ZSLM(IMN,JMN) - real land_frac(IM,JM) - real ORO(IM,JM),SLM(IM,JM),VAR(IM,JM),VAR4(IM,JM) - integer IST,IEN,JST, JEN - real lon_c(IM+1,JM+1), lat_c(IM+1,JM+1) - INTEGER mskocn,isave - LOGICAL FLAG, DEBUG - real LONO(4),LATO(4),LONI,LATI - real HEIGHT - integer JM1,i,j,nsum,ii,jj,i1,numx,i2 - integer ilist(IMN) - real DELXN,XNSUM,XLAND,XWATR,XL1,XS1,XW1,XW2,XW4 -!jaa - real :: xnsum_j,xland_j,xwatr_j - logical inside_a_polygon -C==== DATA DEBUG/.TRUE./ - DATA DEBUG/.FALSE./ -C -! ---- OCLSM holds the ocean (im,jm) grid -! --- mskocn=1 Use ocean model sea land mask, OK and present, -! --- mskocn=0 dont use Ocean model sea land mask, not OK, not present - print *,' _____ SUBROUTINE MAKEMT2 ' -C---- GLOBAL XLAT AND XLON ( DEGREE ) -C - JM1 = JM - 1 - DELXN = 360./IMN ! MOUNTAIN DATA RESOLUTION -C - DO J=1,JMN - GLAT(J) = -90. + (J-1) * DELXN + DELXN * 0.5 - ENDDO - DO I=1,IMN - GLON(I) = 0. + (I-1) * DELXN + DELXN * 0.5 - ENDDO - - land_frac(:,:) = 0.0 -C -C---- FIND THE AVERAGE OF THE MODES IN A GRID BOX -C -C (*j*) for hard wired zero offset (lambda s =0) for terr05 -!$omp parallel do -!$omp* private (j,i,xnsum,xland,xwatr,nsum,xl1,xs1,xw1,xw2,xw4,lono, -!$omp* lato,jst,jen,ilist,numx,jj,i2,ii,loni,lati,height, -!$omp* hgt_1d) - DO J=1,JM -! print*, "J=", J - DO I=1,IM - ORO(I,J) = 0.0 - VAR(I,J) = 0.0 - VAR4(I,J) = 0.0 - XNSUM = 0.0 - XLAND = 0.0 - XWATR = 0.0 - nsum = 0 - XL1 = 0.0 - XS1 = 0.0 - XW1 = 0.0 - XW2 = 0.0 - XW4 = 0.0 - - LONO(1) = lon_c(i,j) - LONO(2) = lon_c(i+1,j) - LONO(3) = lon_c(i+1,j+1) - LONO(4) = lon_c(i,j+1) - LATO(1) = lat_c(i,j) - LATO(2) = lat_c(i+1,j) - LATO(3) = lat_c(i+1,j+1) - LATO(4) = lat_c(i,j+1) - call get_index(IMN,JMN,4,LONO,LATO,DELXN,jst,jen,ilist,numx) - do jj = jst, jen; do i2 = 1, numx - ii = ilist(i2) - LONI = ii*DELXN - LATI = -90 + jj*DELXN - if(inside_a_polygon(LONI*D2R,LATI*D2R,4, - & LONO*D2R,LATO*D2R))then - - XLAND = XLAND + FLOAT(ZSLM(ii,jj)) - XWATR = XWATR + FLOAT(1-ZSLM(ii,jj)) - XNSUM = XNSUM + 1. - HEIGHT = FLOAT(ZAVG(ii,jj)) - nsum = nsum+1 - if(nsum > MAXSUM) then - print*, "nsum is greater than MAXSUM, increase MAXSUM" - call ABORT() - endif - hgt_1d(nsum) = HEIGHT - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - XL1 = XL1 + HEIGHT * FLOAT(ZSLM(ii,jj)) - XS1 = XS1 + HEIGHT * FLOAT(1-ZSLM(ii,jj)) - XW1 = XW1 + HEIGHT - XW2 = XW2 + HEIGHT ** 2 - endif - enddo ; enddo - - - IF(XNSUM.GT.1.) THEN -! --- SLM initialized with OCLSM calc from all land points except .... -! --- 0 is ocean and 1 is land for slm -! --- Step 1 is to only change SLM after GFS SLM is applied - land_frac(i,j) = XLAND/XNSUM - SLM(I,J) = FLOAT(NINT(XLAND/XNSUM)) - IF(SLM(I,J).NE.0.) THEN - ORO(I,J)= XL1 / XLAND - ELSE - ORO(I,J)= XS1 / XWATR - ENDIF - VAR(I,J)=SQRT(MAX(XW2/XNSUM-(XW1/XNSUM)**2,0.)) - do I1 = 1, NSUM - XW4 = XW4 + (hgt_1d(I1) - ORO(i,j)) ** 4 - enddo - - IF(VAR(I,J).GT.1.) THEN - VAR4(I,J) = MIN(XW4/XNSUM/VAR(I,J) **4,10.) - ENDIF - ENDIF - ENDDO - ENDDO -!$omp end parallel do - WRITE(6,*) "! MAKEMT ORO SLM VAR VAR4 DONE" -C - - RETURN - END - - - SUBROUTINE MAKEPC(ZAVG,ZSLM,THETA,GAMMA,SIGMA, - 1 GLAT,IST,IEN,JST,JEN,IM,JM,IMN,JMN,XLAT,numi) -C -C=== PC: principal coordinates of each Z avg orog box for L&M -C - parameter(REARTH=6.3712E+6) - DIMENSION GLAT(JMN),XLAT(JM),DELTAX(JMN) - INTEGER ZAVG(IMN,JMN),ZSLM(IMN,JMN) - DIMENSION ORO(IM,JM),SLM(IM,JM),HL(IM,JM),HK(IM,JM) - DIMENSION HX2(IM,JM),HY2(IM,JM),HXY(IM,JM),HLPRIM(IM,JM) - DIMENSION THETA(IM,JM),GAMMA(IM,JM),SIGMA2(IM,JM),SIGMA(IM,JM) - DIMENSION IST(IM,jm),IEN(IM,jm),JST(JM),JEN(JM),numi(jm) - LOGICAL FLAG, DEBUG -C=== DATA DEBUG/.TRUE./ - DATA DEBUG/.FALSE./ -C - PI = 4.0 * ATAN(1.0) - CERTH = PI * REARTH -C---- GLOBAL XLAT AND XLON ( DEGREE ) -C - JM1 = JM - 1 - DELXN = 360./IMN ! MOUNTAIN DATA RESOLUTION - DELTAY = CERTH / FLOAT(JMN) - print *, 'MAKEPC: DELTAY=',DELTAY -C - DO J=1,JMN - GLAT(J) = -90. + (J-1) * DELXN + DELXN * 0.5 - DELTAX(J) = DELTAY * COSD(GLAT(J)) - ENDDO -C -C---- FIND THE AVERAGE OF THE MODES IN A GRID BOX -C - DO J=1,JM - DO I=1,numi(j) -C IM1 = numi(j) - 1 - DELX = 360./numi(j) ! GAUSSIAN GRID RESOLUTION - FACLON = DELX / DELXN - IST(I,j) = FACLON * FLOAT(I-1) - FACLON * 0.5 - IST(I,j) = IST(I,j) + 1 - IEN(I,j) = FACLON * FLOAT(I) - FACLON * 0.5 -C if (debug) then -C if ( I .lt. 10 .and. J .lt. 10 ) -C 1 PRINT*, ' I j IST IEN ',I,j,IST(I,j),IEN(I,j) -C endif -! IST(I,j) = FACLON * FLOAT(I-1) + 1.0001 -! IEN(I,j) = FACLON * FLOAT(I) + 0.0001 - IF (IST(I,j) .LE. 0) IST(I,j) = IST(I,j) + IMN - IF (IEN(I,j) .LT. IST(I,j)) IEN(I,j) = IEN(I,j) + IMN - if (debug) then - if ( I .lt. 10 .and. J .lt. 10 ) - 1 PRINT*, ' I j IST IEN ',I,j,IST(I,j),IEN(I,j) - endif - IF (IEN(I,j) .LT. IST(I,j)) - 1 print *,' MAKEPC: IEN < IST: I,J,IST(I,J),IEN(I,J)', - 2 I,J,IST(I,J),IEN(I,J) - ENDDO - ENDDO - DO J=1,JM-1 - FLAG=.TRUE. - DO J1=1,JMN - XXLAT = (XLAT(J)+XLAT(J+1))/2. - IF(FLAG.AND.GLAT(J1).GT.XXLAT) THEN - JST(J) = J1 - JEN(J+1) = J1 - 1 - FLAG = .FALSE. - ENDIF - ENDDO - ENDDO - JST(JM) = MAX(JST(JM-1) - (JEN(JM-1)-JST(JM-1)),1) - JEN(1) = MIN(JEN(2) + (JEN(2)-JST(2)),JMN) - if (debug) then - PRINT*, ' IST,IEN(1,1-numi(1,JM))',IST(1,1),IEN(1,1), - 1 IST(numi(JM),JM),IEN(numi(JM),JM), numi(JM) - PRINT*, ' JST,JEN(1,JM) ',JST(1),JEN(1),JST(JM),JEN(JM) - endif -C -C... DERIVITIVE TENSOR OF HEIGHT -C - DO J=1,JM - DO I=1,numi(j) - ORO(I,J) = 0.0 - HX2(I,J) = 0.0 - HY2(I,J) = 0.0 - HXY(I,J) = 0.0 - XNSUM = 0.0 - XLAND = 0.0 - XWATR = 0.0 - XL1 = 0.0 - XS1 = 0.0 - xfp = 0.0 - yfp = 0.0 - xfpyfp = 0.0 - xfp2 = 0.0 - yfp2 = 0.0 - HL(I,J) = 0.0 - HK(I,J) = 0.0 - HLPRIM(I,J) = 0.0 - THETA(I,J) = 0.0 - GAMMA(I,J) = 0. - SIGMA2(I,J) = 0. - SIGMA(I,J) = 0. -C - DO II1 = 1, IEN(I,J) - IST(I,J) + 1 - I1 = IST(I,J) + II1 - 1 - IF(I1.LE.0.) I1 = I1 + IMN - IF(I1.GT.IMN) I1 = I1 - IMN -C -C=== set the rest of the indexs for ave: 2pt staggered derivitive -C - i0 = i1 - 1 - if (i1 - 1 .le. 0 ) i0 = i0 + imn - if (i1 - 1 .gt. imn) i0 = i0 - imn -C - ip1 = i1 + 1 - if (i1 + 1 .le. 0 ) ip1 = ip1 + imn - if (i1 + 1 .gt. imn) ip1 = ip1 - imn -C - DO J1=JST(J),JEN(J) - if (debug) then - if ( I1 .eq. IST(I,J) .and. J1 .eq. JST(J) ) - 1 PRINT*, ' J, J1,IST,JST,DELTAX,GLAT ', - 2 J,J1,IST(I,J),JST(J),DELTAX(J1),GLAT(J1) - if ( I1 .eq. IEN(I,J) .and. J1 .eq. JEN(J) ) - 1 PRINT*, ' J, J1,IEN,JEN,DELTAX,GLAT ', - 2 J,J1,IEN(I,J),JEN(J),DELTAX(J1),GLAT(J1) - endif - XLAND = XLAND + FLOAT(ZSLM(I1,J1)) - XWATR = XWATR + FLOAT(1-ZSLM(I1,J1)) - XNSUM = XNSUM + 1. -C - HEIGHT = FLOAT(ZAVG(I1,J1)) - hi0 = float(zavg(i0,j1)) - hip1 = float(zavg(ip1,j1)) -C - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - if(hi0 .lt. -990.) hi0 = 0.0 - if(hip1 .lt. -990.) hip1 = 0.0 -C........ xfp = xfp + 0.5 * ( hip1 - hi0 ) / DELTAX(J1) - xfp = 0.5 * ( hip1 - hi0 ) / DELTAX(J1) - xfp2 = xfp2 + 0.25 * ( ( hip1 - hi0 )/DELTAX(J1) )** 2 -C -! --- not at boundaries -!RAB if ( J1 .ne. JST(1) .and. J1 .ne. JEN(JM) ) then - if ( J1 .ne. JST(JM) .and. J1 .ne. JEN(1) ) then - hj0 = float(zavg(i1,j1-1)) - hjp1 = float(zavg(i1,j1+1)) - if(hj0 .lt. -990.) hj0 = 0.0 - if(hjp1 .lt. -990.) hjp1 = 0.0 -C....... yfp = yfp + 0.5 * ( hjp1 - hj0 ) / DELTAY - yfp = 0.5 * ( hjp1 - hj0 ) / DELTAY - yfp2 = yfp2 + 0.25 * ( ( hjp1 - hj0 )/DELTAY )**2 -C -C..............elseif ( J1 .eq. JST(J) .or. J1 .eq. JEN(JM) ) then -C === the NH pole: NB J1 goes from High at NP to Low toward SP -C -!RAB elseif ( J1 .eq. JST(1) ) then - elseif ( J1 .eq. JST(JM) ) then - ijax = i1 + imn/2 - if (ijax .le. 0 ) ijax = ijax + imn - if (ijax .gt. imn) ijax = ijax - imn -C..... at N pole we stay at the same latitude j1 but cross to opp side - hijax = float(zavg(ijax,j1)) - hi1j1 = float(zavg(i1,j1)) - if(hijax .lt. -990.) hijax = 0.0 - if(hi1j1 .lt. -990.) hi1j1 = 0.0 -C....... yfp = yfp + 0.5 * ( ( 0.5 * ( hijax + hi1j1) ) - hi1j1 )/DELTAY - yfp = 0.5 * ( ( 0.5 * ( hijax - hi1j1 ) ) )/DELTAY - yfp2 = yfp2 + 0.25 * ( ( 0.5 * ( hijax - hi1j1) ) - 1 / DELTAY )**2 -C -C === the SH pole: NB J1 goes from High at NP to Low toward SP -C -!RAB elseif ( J1 .eq. JEN(JM) ) then - elseif ( J1 .eq. JEN(1) ) then - ijax = i1 + imn/2 - if (ijax .le. 0 ) ijax = ijax + imn - if (ijax .gt. imn) ijax = ijax - imn - hijax = float(zavg(ijax,j1)) - hi1j1 = float(zavg(i1,j1)) - if(hijax .lt. -990.) hijax = 0.0 - if(hi1j1 .lt. -990.) hi1j1 = 0.0 - if ( i1 .lt. 5 )print *,' S.Pole i1,j1 :',i1,j1,hijax,hi1j1 -C..... yfp = yfp + 0.5 * (0.5 * ( hijax - hi1j1) )/DELTAY - yfp = 0.5 * (0.5 * ( hijax - hi1j1) )/DELTAY - yfp2 = yfp2 + 0.25 * ( (0.5 * (hijax - hi1j1) ) - 1 / DELTAY )**2 - endif -C -C === The above does an average across the pole for the bndry in j. -C23456789012345678901234567890123456789012345678901234567890123456789012...... -C - xfpyfp = xfpyfp + xfp * yfp - XL1 = XL1 + HEIGHT * FLOAT(ZSLM(I1,J1)) - XS1 = XS1 + HEIGHT * FLOAT(1-ZSLM(I1,J1)) -C -C === average the HX2, HY2 and HXY -C === This will be done over all land -C - ENDDO - ENDDO -C -C === HTENSR -C - IF(XNSUM.GT.1.) THEN - SLM(I,J) = FLOAT(NINT(XLAND/XNSUM)) - IF(SLM(I,J).NE.0.) THEN - ORO(I,J)= XL1 / XLAND - HX2(I,J) = xfp2 / XLAND - HY2(I,J) = yfp2 / XLAND - HXY(I,J) = xfpyfp / XLAND - ELSE - ORO(I,J)= XS1 / XWATR - ENDIF -C=== degub testing - if (debug) then - print *," I,J,i1,j1,HEIGHT:", I,J,i1,j1,HEIGHT, - 1 XLAND,SLM(i,j) - print *," xfpyfp,xfp2,yfp2:",xfpyfp,xfp2,yfp2 - print *," HX2,HY2,HXY:",HX2(I,J),HY2(I,J),HXY(I,J) - ENDIF -C -C === make the principal axes, theta, and the degree of anisotropy, -C === and sigma2, the slope parameter -C - HK(I,J) = 0.5 * ( HX2(I,J) + HY2(I,J) ) - HL(I,J) = 0.5 * ( HX2(I,J) - HY2(I,J) ) - HLPRIM(I,J) = SQRT(HL(I,J)*HL(I,J) + HXY(I,J)*HXY(I,J)) - IF( HL(I,J).NE. 0. .AND. SLM(I,J) .NE. 0. ) THEN -C - THETA(I,J) = 0.5 * ATAN2D(HXY(I,J),HL(I,J)) -C === for testing print out in degrees -C THETA(I,J) = 0.5 * ATAN2(HXY(I,J),HL(I,J)) - ENDIF - SIGMA2(I,J) = ( HK(I,J) + HLPRIM(I,J) ) - if ( SIGMA2(I,J) .GE. 0. ) then - SIGMA(I,J) = SQRT(SIGMA2(I,J) ) - if (sigma2(i,j) .ne. 0. .and. - & HK(I,J) .GE. HLPRIM(I,J) ) - 1 GAMMA(I,J) = sqrt( (HK(I,J) - HLPRIM(I,J)) / SIGMA2(I,J) ) - else - SIGMA(I,J)=0. - endif - ENDIF - if (debug) then - print *," I,J,THETA,SIGMA,GAMMA,",I,J,THETA(I,J), - 1 SIGMA(I,J),GAMMA(I,J) - print *," HK,HL,HLPRIM:",HK(I,J),HL(I,J),HLPRIM(I,J) - endif - ENDDO - ENDDO - WRITE(6,*) "! MAKE Principal Coord DONE" -C - RETURN - END - - SUBROUTINE MAKEPC2(ZAVG,ZSLM,THETA,GAMMA,SIGMA, - 1 GLAT,IM,JM,IMN,JMN,lon_c,lat_c) -C -C=== PC: principal coordinates of each Z avg orog box for L&M -C - implicit none - real, parameter :: REARTH=6.3712E+6 - real, parameter :: D2R = 3.14159265358979/180. - integer :: IM,JM,IMN,JMN - real :: GLAT(JMN),DELTAX(JMN) - INTEGER ZAVG(IMN,JMN),ZSLM(IMN,JMN) - real lon_c(IM+1,JM+1), lat_c(IM+1,JM+1) - real ORO(IM,JM),SLM(IM,JM),HL(IM,JM),HK(IM,JM) - real HX2(IM,JM),HY2(IM,JM),HXY(IM,JM),HLPRIM(IM,JM) - real THETA(IM,JM),GAMMA(IM,JM),SIGMA2(IM,JM),SIGMA(IM,JM) - real PI,CERTH,DELXN,DELTAY,XNSUM,XLAND,XWATR,XL1,XS1 - real xfp,yfp,xfpyfp,xfp2,yfp2,HEIGHT - real hi0,hip1,hj0,hjp1,hijax,hi1j1 - real LONO(4),LATO(4),LONI,LATI - integer i,j,i1,j1,i2,jst,jen,numx,i0,ip1,ijax - integer ilist(IMN) - logical inside_a_polygon - LOGICAL FLAG, DEBUG -C=== DATA DEBUG/.TRUE./ - DATA DEBUG/.FALSE./ -C - PI = 4.0 * ATAN(1.0) - CERTH = PI * REARTH -C---- GLOBAL XLAT AND XLON ( DEGREE ) -C - DELXN = 360./IMN ! MOUNTAIN DATA RESOLUTION - DELTAY = CERTH / FLOAT(JMN) - print *, 'MAKEPC2: DELTAY=',DELTAY -C - DO J=1,JMN - GLAT(J) = -90. + (J-1) * DELXN + DELXN * 0.5 - DELTAX(J) = DELTAY * COSD(GLAT(J)) - ENDDO -C -C---- FIND THE AVERAGE OF THE MODES IN A GRID BOX -C - -C... DERIVITIVE TENSOR OF HEIGHT -C -!$omp parallel do -!$omp* private (j,i,xnsum,xland,xwatr,xl1,xs1,xfp,yfp,xfpyfp, -!$omp* xfp2,yfp2,lono,lato,jst,jen,ilist,numx,j1,i2,i1, -!$omp* loni,lati,i0,ip1,height,hi0,hip1,hj0,hjp1,ijax, -!$omp* hijax,hi1j1) - DO J=1,JM -! print*, "J=", J - DO I=1,IM - ORO(I,J) = 0.0 - HX2(I,J) = 0.0 - HY2(I,J) = 0.0 - HXY(I,J) = 0.0 - XNSUM = 0.0 - XLAND = 0.0 - XWATR = 0.0 - XL1 = 0.0 - XS1 = 0.0 - xfp = 0.0 - yfp = 0.0 - xfpyfp = 0.0 - xfp2 = 0.0 - yfp2 = 0.0 - HL(I,J) = 0.0 - HK(I,J) = 0.0 - HLPRIM(I,J) = 0.0 - THETA(I,J) = 0.0 - GAMMA(I,J) = 0. - SIGMA2(I,J) = 0. - SIGMA(I,J) = 0. - - LONO(1) = lon_c(i,j) - LONO(2) = lon_c(i+1,j) - LONO(3) = lon_c(i+1,j+1) - LONO(4) = lon_c(i,j+1) - LATO(1) = lat_c(i,j) - LATO(2) = lat_c(i+1,j) - LATO(3) = lat_c(i+1,j+1) - LATO(4) = lat_c(i,j+1) - call get_index(IMN,JMN,4,LONO,LATO,DELXN,jst,jen,ilist,numx) - - do j1 = jst, jen; do i2 = 1, numx - i1 = ilist(i2) - LONI = i1*DELXN - LATI = -90 + j1*DELXN - if(inside_a_polygon(LONI*D2R,LATI*D2R,4, - & LONO*D2R,LATO*D2R))then - -C=== set the rest of the indexs for ave: 2pt staggered derivitive -C - i0 = i1 - 1 - if (i1 - 1 .le. 0 ) i0 = i0 + imn - if (i1 - 1 .gt. imn) i0 = i0 - imn -C - ip1 = i1 + 1 - if (i1 + 1 .le. 0 ) ip1 = ip1 + imn - if (i1 + 1 .gt. imn) ip1 = ip1 - imn - - XLAND = XLAND + FLOAT(ZSLM(I1,J1)) - XWATR = XWATR + FLOAT(1-ZSLM(I1,J1)) - XNSUM = XNSUM + 1. -C - HEIGHT = FLOAT(ZAVG(I1,J1)) - hi0 = float(zavg(i0,j1)) - hip1 = float(zavg(ip1,j1)) -C - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - if(hi0 .lt. -990.) hi0 = 0.0 - if(hip1 .lt. -990.) hip1 = 0.0 -C........ xfp = xfp + 0.5 * ( hip1 - hi0 ) / DELTAX(J1) - xfp = 0.5 * ( hip1 - hi0 ) / DELTAX(J1) - xfp2 = xfp2 + 0.25 * ( ( hip1 - hi0 )/DELTAX(J1) )** 2 -C -! --- not at boundaries -!RAB if ( J1 .ne. JST(1) .and. J1 .ne. JEN(JM) ) then - if ( J1 .ne. 1 .and. J1 .ne. JMN ) then - hj0 = float(zavg(i1,j1-1)) - hjp1 = float(zavg(i1,j1+1)) - if(hj0 .lt. -990.) hj0 = 0.0 - if(hjp1 .lt. -990.) hjp1 = 0.0 -C....... yfp = yfp + 0.5 * ( hjp1 - hj0 ) / DELTAY - yfp = 0.5 * ( hjp1 - hj0 ) / DELTAY - yfp2 = yfp2 + 0.25 * ( ( hjp1 - hj0 )/DELTAY )**2 -C -C..............elseif ( J1 .eq. JST(J) .or. J1 .eq. JEN(JM) ) then -C === the NH pole: NB J1 goes from High at NP to Low toward SP -C -!RAB elseif ( J1 .eq. JST(1) ) then - elseif ( J1 .eq. 1 ) then - ijax = i1 + imn/2 - if (ijax .le. 0 ) ijax = ijax + imn - if (ijax .gt. imn) ijax = ijax - imn -C..... at N pole we stay at the same latitude j1 but cross to opp side - hijax = float(zavg(ijax,j1)) - hi1j1 = float(zavg(i1,j1)) - if(hijax .lt. -990.) hijax = 0.0 - if(hi1j1 .lt. -990.) hi1j1 = 0.0 -C....... yfp = yfp + 0.5 * ( ( 0.5 * ( hijax + hi1j1) ) - hi1j1 )/DELTAY - yfp = 0.5 * ( ( 0.5 * ( hijax - hi1j1 ) ) )/DELTAY - yfp2 = yfp2 + 0.25 * ( ( 0.5 * ( hijax - hi1j1) ) - 1 / DELTAY )**2 -C -C === the SH pole: NB J1 goes from High at NP to Low toward SP -C -!RAB elseif ( J1 .eq. JEN(JM) ) then - elseif ( J1 .eq. JMN ) then - ijax = i1 + imn/2 - if (ijax .le. 0 ) ijax = ijax + imn - if (ijax .gt. imn) ijax = ijax - imn - hijax = float(zavg(ijax,j1)) - hi1j1 = float(zavg(i1,j1)) - if(hijax .lt. -990.) hijax = 0.0 - if(hi1j1 .lt. -990.) hi1j1 = 0.0 - if ( i1 .lt. 5 )print *,' S.Pole i1,j1 :',i1,j1, - & hijax,hi1j1 -C..... yfp = yfp + 0.5 * (0.5 * ( hijax - hi1j1) )/DELTAY - yfp = 0.5 * (0.5 * ( hijax - hi1j1) )/DELTAY - yfp2 = yfp2 + 0.25 * ( (0.5 * (hijax - hi1j1) ) - 1 / DELTAY )**2 - endif -C -C === The above does an average across the pole for the bndry in j. -C23456789012345678901234567890123456789012345678901234567890123456789012...... -C - xfpyfp = xfpyfp + xfp * yfp - XL1 = XL1 + HEIGHT * FLOAT(ZSLM(I1,J1)) - XS1 = XS1 + HEIGHT * FLOAT(1-ZSLM(I1,J1)) - ENDIF -C -C === average the HX2, HY2 and HXY -C === This will be done over all land -C - ENDDO - ENDDO -C -C === HTENSR -C - IF(XNSUM.GT.1.) THEN - SLM(I,J) = FLOAT(NINT(XLAND/XNSUM)) - IF(SLM(I,J).NE.0.) THEN - ORO(I,J)= XL1 / XLAND - HX2(I,J) = xfp2 / XLAND - HY2(I,J) = yfp2 / XLAND - HXY(I,J) = xfpyfp / XLAND - ELSE - ORO(I,J)= XS1 / XWATR - ENDIF -C=== degub testing - if (debug) then - print *," I,J,i1,j1,HEIGHT:", I,J,i1,j1,HEIGHT, - 1 XLAND,SLM(i,j) - print *," xfpyfp,xfp2,yfp2:",xfpyfp,xfp2,yfp2 - print *," HX2,HY2,HXY:",HX2(I,J),HY2(I,J),HXY(I,J) - ENDIF -C -C === make the principal axes, theta, and the degree of anisotropy, -C === and sigma2, the slope parameter -C - HK(I,J) = 0.5 * ( HX2(I,J) + HY2(I,J) ) - HL(I,J) = 0.5 * ( HX2(I,J) - HY2(I,J) ) - HLPRIM(I,J) = SQRT(HL(I,J)*HL(I,J) + HXY(I,J)*HXY(I,J)) - IF( HL(I,J).NE. 0. .AND. SLM(I,J) .NE. 0. ) THEN -C - THETA(I,J) = 0.5 * ATAN2D(HXY(I,J),HL(I,J)) -C === for testing print out in degrees -C THETA(I,J) = 0.5 * ATAN2(HXY(I,J),HL(I,J)) - ENDIF - SIGMA2(I,J) = ( HK(I,J) + HLPRIM(I,J) ) - if ( SIGMA2(I,J) .GE. 0. ) then - SIGMA(I,J) = SQRT(SIGMA2(I,J) ) - if (sigma2(i,j) .ne. 0. .and. - & HK(I,J) .GE. HLPRIM(I,J) ) - 1 GAMMA(I,J) = sqrt( (HK(I,J) - HLPRIM(I,J)) / SIGMA2(I,J) ) - else - SIGMA(I,J)=0. - endif - ENDIF - if (debug) then - print *," I,J,THETA,SIGMA,GAMMA,",I,J,THETA(I,J), - 1 SIGMA(I,J),GAMMA(I,J) - print *," HK,HL,HLPRIM:",HK(I,J),HL(I,J),HLPRIM(I,J) - endif - ENDDO - ENDDO -!$omp end parallel do - WRITE(6,*) "! MAKE Principal Coord DONE" -C - RETURN - END - - SUBROUTINE MAKEOA(ZAVG,VAR,GLAT,OA4,OL,IOA4,ELVMAX, - 1 ORO,oro1,XNSUM,XNSUM1,XNSUM2,XNSUM3,XNSUM4, - 2 IST,IEN,JST,JEN,IM,JM,IMN,JMN,XLAT,numi) - DIMENSION GLAT(JMN),XLAT(JM) - INTEGER ZAVG(IMN,JMN) - DIMENSION ORO(IM,JM),ORO1(IM,JM),ELVMAX(IM,JM),ZMAX(IM,JM) - DIMENSION OA4(IM,JM,4),IOA4(IM,JM,4) - DIMENSION IST(IM,jm),IEN(IM,jm),JST(JM),JEN(JM) - DIMENSION XNSUM(IM,JM),XNSUM1(IM,JM),XNSUM2(IM,JM) - DIMENSION XNSUM3(IM,JM),XNSUM4(IM,JM) - DIMENSION VAR(IM,JM),OL(IM,JM,4),numi(jm) - LOGICAL FLAG -C -C---- GLOBAL XLAT AND XLON ( DEGREE ) -C -! --- IM1 = IM - 1 removed (not used in this sub) - JM1 = JM - 1 - DELXN = 360./IMN ! MOUNTAIN DATA RESOLUTION -C - DO J=1,JMN - GLAT(J) = -90. + (J-1) * DELXN + DELXN * 0.5 - ENDDO - print *,' IM=',IM,' JM=',JM,' IMN=',IMN,' JMN=',JMN -C -C---- FIND THE AVERAGE OF THE MODES IN A GRID BOX -C - DO j=1,jm - DO I=1,numi(j) - DELX = 360./numi(j) ! GAUSSIAN GRID RESOLUTION - FACLON = DELX / DELXN -C --- minus sign here in IST and IEN as in MAKEMT! - IST(I,j) = FACLON * FLOAT(I-1) - FACLON * 0.5 - IST(I,j) = IST(I,j) + 1 - IEN(I,j) = FACLON * FLOAT(I) - FACLON * 0.5 -! IST(I,j) = FACLON * FLOAT(I-1) + 1.0001 -! IEN(I,j) = FACLON * FLOAT(I) + 0.0001 - IF (IST(I,j) .LE. 0) IST(I,j) = IST(I,j) + IMN - IF (IEN(I,j) .LT. IST(I,j)) IEN(I,j) = IEN(I,j) + IMN -cx PRINT*, ' I j IST IEN ',I,j,IST(I,j),IEN(I,j) - if ( I .lt. 3 .and. J .lt. 3 ) - 1PRINT*,' MAKEOA: I j IST IEN ',I,j,IST(I,j),IEN(I,j) - if ( I .lt. 3 .and. J .ge. JM-1 ) - 1PRINT*,' MAKEOA: I j IST IEN ',I,j,IST(I,j),IEN(I,j) - ENDDO - ENDDO - print *,'MAKEOA: DELXN,DELX,FACLON',DELXN,DELX,FACLON - print *, ' ***** ready to start JST JEN section ' - DO J=1,JM-1 - FLAG=.TRUE. - DO J1=1,JMN -! --- XXLAT added as in MAKEMT and in next line as well - XXLAT = (XLAT(J)+XLAT(J+1))/2. - IF(FLAG.AND.GLAT(J1).GT.XXLAT) THEN - JST(J) = J1 -! --- JEN(J+1) = J1 - 1 - FLAG = .FALSE. - if ( J .eq. 1 ) - 1PRINT*,' MAKEOA: XX j JST JEN ',j,JST(j),JEN(j) - ENDIF - ENDDO - if ( J .lt. 3 ) - 1PRINT*,' MAKEOA: j JST JEN ',j,JST(j),JEN(j) - if ( J .ge. JM-2 ) - 1PRINT*,' MAKEOA: j JST JEN ',j,JST(j),JEN(j) -C FLAG=.TRUE. -C DO J1=JST(J),JMN -C IF(FLAG.AND.GLAT(J1).GT.XLAT(J)) THEN -C JEN(J) = J1 - 1 -C FLAG = .FALSE. -C ENDIF -C ENDDO - ENDDO - JST(JM) = MAX(JST(JM-1) - (JEN(JM-1)-JST(JM-1)),1) - JEN(1) = MIN(JEN(2) + (JEN(2)-JST(2)),JMN) - print *,' ***** JST(1) JEN(1) ',JST(1),JEN(1) - print *,' ***** JST(JM) JEN(JM) ',JST(JM),JEN(JM) -C - DO J=1,JM - DO I=1,numi(j) - XNSUM(I,J) = 0.0 - ELVMAX(I,J) = ORO(I,J) - ZMAX(I,J) = 0.0 - ENDDO - ENDDO -! -! --- # of peaks > ZAVG value and ZMAX(IM,JM) -- ORO is already avg. -! --- to JM or to JM1 - DO J=1,JM - DO I=1,numi(j) - DO II1 = 1, IEN(I,J) - IST(I,J) + 1 - I1 = IST(I,J) + II1 - 1 -! --- next line as in makemt (I1 not II1) (*j*) 20070701 - IF(I1.LE.0.) I1 = I1 + IMN - IF (I1 .GT. IMN) I1 = I1 - IMN - DO J1=JST(J),JEN(J) - HEIGHT = FLOAT(ZAVG(I1,J1)) - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - IF ( HEIGHT .gt. ORO(I,J) ) then - if ( HEIGHT .gt. ZMAX(I,J) )ZMAX(I,J) = HEIGHT - XNSUM(I,J) = XNSUM(I,J) + 1 - ENDIF - ENDDO - ENDDO - if ( I .lt. 5 .and. J .ge. JM-5 ) then - print *,' I,J,ORO(I,J),XNSUM(I,J),ZMAX(I,J):', - 1 I,J,ORO(I,J),XNSUM(I,J),ZMAX(I,J) - endif - ENDDO - ENDDO -! -C.... make ELVMAX ORO from MAKEMT sub -C -! --- this will make work1 array take on oro's values on return - DO J=1,JM - DO I=1,numi(j) - - ORO1(I,J) = ORO(I,J) - ELVMAX(I,J) = ZMAX(I,J) - ENDDO - ENDDO -C........ -C The MAX elev peak (no averaging) -C........ -! DO J=1,JM -! DO I=1,numi(j) -! DO II1 = 1, IEN(I,J) - IST(I,J) + 1 -! I1 = IST(I,J) + II1 - 1 -! IF(I1.LE.0.) I1 = I1 + IMN -! IF(I1.GT.IMN) I1 = I1 - IMN -! DO J1=JST(J),JEN(J) -! if ( ELVMAX(I,J) .lt. ZMAX(I1,J1)) -! 1 ELVMAX(I,J) = ZMAX(I1,J1) -! ENDDO -! ENDDO -! ENDDO -! ENDDO -C -C---- COUNT NUMBER OF MODE. HIGHER THAN THE HC, CRITICAL HEIGHT -C IN A GRID BOX - DO J=1,JM - DO I=1,numi(j) - XNSUM1(I,J) = 0.0 - XNSUM2(I,J) = 0.0 - XNSUM3(I,J) = 0.0 - XNSUM4(I,J) = 0.0 - ENDDO - ENDDO -! --- loop - DO J=1,JM1 - DO I=1,numi(j) - HC = 1116.2 - 0.878 * VAR(I,J) -! print *,' I,J,HC,VAR:',I,J,HC,VAR(I,J) - DO II1 = 1, IEN(I,J) - IST(I,J) + 1 - I1 = IST(I,J) + II1 - 1 -! IF (I1.LE.0.) print *,' I1 less than 0',I1,II1,IST(I,J),IEN(I,J) -! if ( J .lt. 3 .or. J .gt. JM-2 ) then -! IF(I1 .GT. IMN)print *,' I1 > IMN',J,I1,II1,IMN,IST(I,J),IEN(I,J) -! endif - IF(I1.GT.IMN) I1 = I1 - IMN - DO J1=JST(J),JEN(J) - IF(FLOAT(ZAVG(I1,J1)) .GT. HC) - 1 XNSUM1(I,J) = XNSUM1(I,J) + 1 - XNSUM2(I,J) = XNSUM2(I,J) + 1 - ENDDO - ENDDO -C - INCI = NINT((IEN(I,j)-IST(I,j)) * 0.5) - ISTTT = MIN(MAX(IST(I,j)-INCI,1),IMN) - IEDDD = MIN(MAX(IEN(I,j)-INCI,1),IMN) -C - INCJ = NINT((JEN(J)-JST(J)) * 0.5) - JSTTT = MIN(MAX(JST(J)-INCJ,1),JMN) - JEDDD = MIN(MAX(JEN(J)-INCJ,1),JMN) -! if ( J .lt. 3 .or. J .gt. JM-3 ) then -! if(I .lt. 3 .or. I .gt. IM-3) then -! print *,' INCI,ISTTT,IEDDD,INCJ,JSTTT,JEDDD:', -! 1 I,J,INCI,ISTTT,IEDDD,INCJ,JSTTT,JEDDD -! endif -! endif -C - DO I1=ISTTT,IEDDD - DO J1=JSTTT,JEDDD - IF(FLOAT(ZAVG(I1,J1)) .GT. HC) - 1 XNSUM3(I,J) = XNSUM3(I,J) + 1 - XNSUM4(I,J) = XNSUM4(I,J) + 1 - ENDDO - ENDDO -cx print*,' i j hc var ',i,j,hc,var(i,j) -cx print*,'xnsum12 ',xnsum1(i,j),xnsum2(i,j) -cx print*,'xnsum34 ',xnsum3(i,j),xnsum4(i,j) - ENDDO - ENDDO -C -C---- CALCULATE THE 3D OROGRAPHIC ASYMMETRY FOR 4 WIND DIRECTIONS -C---- AND THE 3D OROGRAPHIC SUBGRID OROGRAPHY FRACTION -C (KWD = 1 2 3 4) -C ( WD = W S SW NW) -C -C - DO KWD = 1, 4 - DO J=1,JM - DO I=1,numi(j) - OA4(I,J,KWD) = 0.0 - ENDDO - ENDDO - ENDDO -C - DO J=1,JM-2 - DO I=1,numi(j) - II = I + 1 - IF (II .GT. numi(j)) II = II - numi(j) - XNPU = XNSUM(I,J) + XNSUM(I,J+1) - XNPD = XNSUM(II,J) + XNSUM(II,J+1) - IF (XNPD .NE. XNPU) OA4(II,J+1,1) = 1. - XNPD / MAX(XNPU , 1.) - OL(II,J+1,1) = (XNSUM3(I,J+1)+XNSUM3(II,J+1))/ - 1 (XNSUM4(I,J+1)+XNSUM4(II,J+1)) -! if ( I .lt. 20 .and. J .ge. JM-19 ) then -! PRINT*,' MAKEOA: I J IST IEN ',I,j,IST(I,J),IEN(I,J) -! PRINT*,' HC VAR ',HC,VAR(i,j) -! PRINT*,' MAKEOA: XNSUM(I,J)=',XNSUM(I,J),XNPU, XNPD -! PRINT*,' MAKEOA: XNSUM3(I,J+1),XNSUM3(II,J+1)', -! 1 XNSUM3(I,J+1),XNSUM3(II,J+1) -! PRINT*,' MAKEOA: II, OA4(II,J+1,1), OL(II,J+1,1):', -! 1 II, OA4(II,J+1,1), OL(II,J+1,1) -! endif - ENDDO - ENDDO - DO J=1,JM-2 - DO I=1,numi(j) - II = I + 1 - IF (II .GT. numi(j)) II = II - numi(j) - XNPU = XNSUM(I,J+1) + XNSUM(II,J+1) - XNPD = XNSUM(I,J) + XNSUM(II,J) - IF (XNPD .NE. XNPU) OA4(II,J+1,2) = 1. - XNPD / MAX(XNPU , 1.) - OL(II,J+1,2) = (XNSUM3(II,J)+XNSUM3(II,J+1))/ - 1 (XNSUM4(II,J)+XNSUM4(II,J+1)) - ENDDO - ENDDO - DO J=1,JM-2 - DO I=1,numi(j) - II = I + 1 - IF (II .GT. numi(j)) II = II - numi(j) - XNPU = XNSUM(I,J+1) + ( XNSUM(I,J) + XNSUM(II,J+1) )*0.5 - XNPD = XNSUM(II,J) + ( XNSUM(I,J) + XNSUM(II,J+1) )*0.5 - IF (XNPD .NE. XNPU) OA4(II,J+1,3) = 1. - XNPD / MAX(XNPU , 1.) - OL(II,J+1,3) = (XNSUM1(II,J)+XNSUM1(I,J+1))/ - 1 (XNSUM2(II,J)+XNSUM2(I,J+1)) - ENDDO - ENDDO - DO J=1,JM-2 - DO I=1,numi(j) - II = I + 1 - IF (II .GT. numi(j)) II = II - numi(j) - XNPU = XNSUM(I,J) + ( XNSUM(II,J) + XNSUM(I,J+1) )*0.5 - XNPD = XNSUM(II,J+1) + ( XNSUM(II,J) + XNSUM(I,J+1) )*0.5 - IF (XNPD .NE. XNPU) OA4(II,J+1,4) = 1. - XNPD / MAX(XNPU , 1.) - OL(II,J+1,4) = (XNSUM1(I,J)+XNSUM1(II,J+1))/ - 1 (XNSUM2(I,J)+XNSUM2(II,J+1)) - ENDDO - ENDDO -C - DO KWD = 1, 4 - DO I=1,numi(j) - OL(I,1,KWD) = OL(I,2,KWD) - OL(I,JM,KWD) = OL(I,JM-1,KWD) - ENDDO - ENDDO -C - DO KWD=1,4 - DO J=1,JM - DO I=1,numi(j) - T = OA4(I,J,KWD) - OA4(I,J,KWD) = SIGN( MIN( ABS(T), 1. ), T ) - ENDDO - ENDDO - ENDDO -C - NS0 = 0 - NS1 = 0 - NS2 = 0 - NS3 = 0 - NS4 = 0 - NS5 = 0 - NS6 = 0 - DO KWD=1,4 - DO J=1,JM - DO I=1,numi(j) - T = ABS( OA4(I,J,KWD) ) - IF(T .EQ. 0.) THEN - IOA4(I,J,KWD) = 0 - NS0 = NS0 + 1 - ELSE IF(T .GT. 0. .AND. T .LE. 1.) THEN - IOA4(I,J,KWD) = 1 - NS1 = NS1 + 1 - ELSE IF(T .GT. 1. .AND. T .LE. 10.) THEN - IOA4(I,J,KWD) = 2 - NS2 = NS2 + 1 - ELSE IF(T .GT. 10. .AND. T .LE. 100.) THEN - IOA4(I,J,KWD) = 3 - NS3 = NS3 + 1 - ELSE IF(T .GT. 100. .AND. T .LE. 1000.) THEN - IOA4(I,J,KWD) = 4 - NS4 = NS4 + 1 - ELSE IF(T .GT. 1000. .AND. T .LE. 10000.) THEN - IOA4(I,J,KWD) = 5 - NS5 = NS5 + 1 - ELSE IF(T .GT. 10000.) THEN - IOA4(I,J,KWD) = 6 - NS6 = NS6 + 1 - ENDIF - ENDDO - ENDDO - ENDDO -C - WRITE(6,*) "! MAKEOA EXIT" -C - RETURN - END - - - function get_lon_angle(dx,lat, DEGRAD) - implicit none - real dx, lat, DEGRAD - - real get_lon_angle - real, parameter :: RADIUS = 6371000 - - get_lon_angle = 2*asin( sin(dx/RADIUS*0.5)/cos(lat) )*DEGRAD - - end function get_lon_angle - - function get_lat_angle(dy, DEGRAD) - implicit none - real dy, DEGRAD - - real get_lat_angle - real, parameter :: RADIUS = 6371000 - - get_lat_angle = dy/RADIUS*DEGRAD - - end function get_lat_angle - - SUBROUTINE MAKEOA2(ZAVG,zslm,VAR,GLAT,OA4,OL,IOA4,ELVMAX, - 1 ORO,oro1,XNSUM,XNSUM1,XNSUM2,XNSUM3,XNSUM4, - 2 IM,JM,IMN,JMN,lon_c,lat_c,lon_t,lat_t,dx,dy, - 3 is_south_pole,is_north_pole ) - implicit none - real, parameter :: MISSING_VALUE = -9999. - real, parameter :: D2R = 3.14159265358979/180. - real, PARAMETER :: R2D=180./3.14159265358979 - integer IM,JM,IMN,JMN - real GLAT(JMN) - INTEGER ZAVG(IMN,JMN),ZSLM(IMN,JMN) - real ORO(IM,JM),ORO1(IM,JM),ELVMAX(IM,JM),ZMAX(IM,JM) - real OA4(IM,JM,4) - integer IOA4(IM,JM,4) - real lon_c(IM+1,JM+1), lat_c(IM+1,JM+1) - real lon_t(IM,JM), lat_t(IM,JM) - real dx(IM,JM), dy(IM,JM) - logical is_south_pole(IM,JM), is_north_pole(IM,JM) - real XNSUM(IM,JM),XNSUM1(IM,JM),XNSUM2(IM,JM) - real XNSUM3(IM,JM),XNSUM4(IM,JM) - real VAR(IM,JM),OL(IM,JM,4) - LOGICAL FLAG - integer i,j,ilist(IMN),numx,i1,j1,ii1 - integer KWD,II,npts - real LONO(4),LATO(4),LONI,LATI - real DELXN,HC,HEIGHT,XNPU,XNPD,T - integer NS0,NS1,NS2,NS3,NS4,NS5,NS6 - logical inside_a_polygon - real lon,lat,dlon,dlat,dlat_old - real lon1,lat1,lon2,lat2 - real xnsum11,xnsum12,xnsum21,xnsum22,xnsumx - real HC_11, HC_12, HC_21, HC_22 - real xnsum1_11,xnsum1_12,xnsum1_21,xnsum1_22 - real xnsum2_11,xnsum2_12,xnsum2_21,xnsum2_22 - real get_lon_angle, get_lat_angle, get_xnsum - integer ist, ien, jst, jen - real xland,xwatr,xl1,xs1,oroavg,slm -C -C---- GLOBAL XLAT AND XLON ( DEGREE ) -C - DELXN = 360./IMN ! MOUNTAIN DATA RESOLUTION -C - DO J=1,JMN - GLAT(J) = -90. + (J-1) * DELXN + DELXN * 0.5 - ENDDO - print *,' IM=',IM,' JM=',JM,' IMN=',IMN,' JMN=',JMN -C -C---- FIND THE AVERAGE OF THE MODES IN A GRID BOX -C -C - DO J=1,JM - DO I=1,IM - XNSUM(I,J) = 0.0 - ELVMAX(I,J) = ORO(I,J) - ZMAX(I,J) = 0.0 -C---- COUNT NUMBER OF MODE. HIGHER THAN THE HC, CRITICAL HEIGHT -C IN A GRID BOX - XNSUM1(I,J) = 0.0 - XNSUM2(I,J) = 0.0 - XNSUM3(I,J) = 0.0 - XNSUM4(I,J) = 0.0 - ORO1(I,J) = ORO(I,J) - ELVMAX(I,J) = ZMAX(I,J) - ENDDO - ENDDO - -! --- # of peaks > ZAVG value and ZMAX(IM,JM) -- ORO is already avg. -! --- to JM or to JM1 -!$omp parallel do -!$omp* private (j,i,hc,lono,lato,jst,jen,ilist,numx,j1,ii1,i1,loni, -!$omp* lati,height) - DO J=1,JM -! print*, "J=", J - DO I=1,IM - HC = 1116.2 - 0.878 * VAR(I,J) - LONO(1) = lon_c(i,j) - LONO(2) = lon_c(i+1,j) - LONO(3) = lon_c(i+1,j+1) - LONO(4) = lon_c(i,j+1) - LATO(1) = lat_c(i,j) - LATO(2) = lat_c(i+1,j) - LATO(3) = lat_c(i+1,j+1) - LATO(4) = lat_c(i,j+1) - call get_index(IMN,JMN,4,LONO,LATO,DELXN,jst,jen,ilist,numx) - do j1 = jst, jen; do ii1 = 1, numx - i1 = ilist(ii1) - LONI = i1*DELXN - LATI = -90 + j1*DELXN - if(inside_a_polygon(LONI*D2R,LATI*D2R,4, - & LONO*D2R,LATO*D2R))then - - HEIGHT = FLOAT(ZAVG(I1,J1)) - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - IF ( HEIGHT .gt. ORO(I,J) ) then - if ( HEIGHT .gt. ZMAX(I,J) )ZMAX(I,J) = HEIGHT - ENDIF - endif - ENDDO ; ENDDO - ENDDO - ENDDO -!$omp end parallel do -C -! --- this will make work1 array take on oro's values on return -! --- this will make work1 array take on oro's values on return - DO J=1,JM - DO I=1,IM - - ORO1(I,J) = ORO(I,J) - ELVMAX(I,J) = ZMAX(I,J) - ENDDO - ENDDO - - DO KWD = 1, 4 - DO J=1,JM - DO I=1,IM - OA4(I,J,KWD) = 0.0 - OL(I,J,KWD) = 0.0 - ENDDO - ENDDO - ENDDO - ! -! --- # of peaks > ZAVG value and ZMAX(IM,JM) -- ORO is already avg. -C -C---- CALCULATE THE 3D OROGRAPHIC ASYMMETRY FOR 4 WIND DIRECTIONS -C---- AND THE 3D OROGRAPHIC SUBGRID OROGRAPHY FRACTION -C (KWD = 1 2 3 4) -C ( WD = W S SW NW) -C -C -!$omp parallel do -!$omp* private (j,i,lon,lat,kwd,dlon,dlat,lon1,lon2,lat1,lat2, -!$omp* xnsum11,xnsum12,xnsum21,xnsum22,xnpu,xnpd, -!$omp* xnsum1_11,xnsum2_11,hc_11, xnsum1_12,xnsum2_12, -!$omp* hc_12,xnsum1_21,xnsum2_21,hc_21, xnsum1_22, -!$omp* xnsum2_22,hc_22) - DO J=1,JM -! print*, "j = ", j - DO I=1,IM - lon = lon_t(i,j) - lat = lat_t(i,j) - !--- for around north pole, oa and ol are all 0 - - if(is_north_pole(i,j)) then - print*, "set oa1 = 0 and ol=0 at i,j=", i,j - do kwd = 1, 4 - oa4(i,j,kwd) = 0. - ol(i,j,kwd) = 0. - enddo - else if(is_south_pole(i,j)) then - print*, "set oa1 = 0 and ol=1 at i,j=", i,j - do kwd = 1, 4 - oa4(i,j,kwd) = 0. - ol(i,j,kwd) = 1. - enddo - else - - !--- for each point, find a lat-lon grid box with same dx and dy as the cubic grid box - dlon = get_lon_angle(dx(i,j), lat*D2R, R2D ) - dlat = get_lat_angle(dy(i,j), R2D) - !--- adjust dlat if the points are close to pole. - if( lat-dlat*0.5<-90.) then - print*, "at i,j =", i,j, lat, dlat, lat-dlat*0.5 - print*, "ERROR: lat-dlat*0.5<-90." - call ERREXIT(4) - endif - if( lat+dlat*2 > 90.) then - dlat_old = dlat - dlat = (90-lat)*0.5 - print*, "at i,j=",i,j," adjust dlat from ", - & dlat_old, " to ", dlat - endif - !--- lower left - lon1 = lon-dlon*1.5 - lon2 = lon-dlon*0.5 - lat1 = lat-dlat*0.5 - lat2 = lat+dlat*0.5 - - if(lat1<-90 .or. lat2>90) then - print*, "at upper left i=,j=", i, j, lat, dlat,lat1,lat2 - endif - xnsum11 = get_xnsum(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn) - - !--- upper left - lon1 = lon-dlon*1.5 - lon2 = lon-dlon*0.5 - lat1 = lat+dlat*0.5 - lat2 = lat+dlat*1.5 - if(lat1<-90 .or. lat2>90) then - print*, "at lower left i=,j=", i, j, lat, dlat,lat1,lat2 - endif - xnsum12 = get_xnsum(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn) - - !--- lower right - lon1 = lon-dlon*0.5 - lon2 = lon+dlon*0.5 - lat1 = lat-dlat*0.5 - lat2 = lat+dlat*0.5 - if(lat1<-90 .or. lat2>90) then - print*, "at upper right i=,j=", i, j, lat, dlat,lat1,lat2 - endif - xnsum21 = get_xnsum(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn) - - !--- upper right - lon1 = lon-dlon*0.5 - lon2 = lon+dlon*0.5 - lat1 = lat+dlat*0.5 - lat2 = lat+dlat*1.5 - if(lat1<-90 .or. lat2>90) then - print*, "at lower right i=,j=", i, j, lat, dlat,lat1,lat2 - endif - - xnsum22 = get_xnsum(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn) - - XNPU = xnsum11 + xnsum12 - XNPD = xnsum21 + xnsum22 - IF (XNPD .NE. XNPU) OA4(I,J,1) = 1. - XNPD / MAX(XNPU , 1.) - - XNPU = xnsum11 + xnsum21 - XNPD = xnsum12 + xnsum22 - IF (XNPD .NE. XNPU) OA4(I,J,2) = 1. - XNPD / MAX(XNPU , 1.) - - XNPU = xnsum11 + (xnsum12+xnsum21)*0.5 - XNPD = xnsum22 + (xnsum12+xnsum21)*0.5 - IF (XNPD .NE. XNPU) OA4(I,J,3) = 1. - XNPD / MAX(XNPU , 1.) - - XNPU = xnsum12 + (xnsum11+xnsum22)*0.5 - XNPD = xnsum21 + (xnsum11+xnsum22)*0.5 - IF (XNPD .NE. XNPU) OA4(I,J,4) = 1. - XNPD / MAX(XNPU , 1.) - - - !--- calculate OL3 and OL4 - !--- lower left - lon1 = lon-dlon*1.5 - lon2 = lon-dlon*0.5 - lat1 = lat-dlat*0.5 - lat2 = lat+dlat*0.5 - if(lat1<-90 .or. lat2>90) then - print*, "at upper left i=,j=", i, j, lat, dlat,lat1,lat2 - endif - call get_xnsum2(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn, xnsum1_11, xnsum2_11, HC_11) - - !--- upper left - lon1 = lon-dlon*1.5 - lon2 = lon-dlon*0.5 - lat1 = lat+dlat*0.5 - lat2 = lat+dlat*1.5 - if(lat1<-90 .or. lat2>90) then - print*, "at lower left i=,j=", i, j, lat, dlat,lat1,lat2 - endif - call get_xnsum2(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn, xnsum1_12, xnsum2_12, HC_12) - - !--- lower right - lon1 = lon-dlon*0.5 - lon2 = lon+dlon*0.5 - lat1 = lat-dlat*0.5 - lat2 = lat+dlat*0.5 - if(lat1<-90 .or. lat2>90) then - print*, "at upper right i=,j=", i, j, lat, dlat,lat1,lat2 - endif - call get_xnsum2(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn, xnsum1_21, xnsum2_21, HC_21) - - !--- upper right - lon1 = lon-dlon*0.5 - lon2 = lon+dlon*0.5 - lat1 = lat+dlat*0.5 - lat2 = lat+dlat*1.5 - if(lat1<-90 .or. lat2>90) then - print*, "at lower right i=,j=", i, j, lat, dlat,lat1,lat2 - endif - call get_xnsum2(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn, xnsum1_22, xnsum2_22, HC_22) - - OL(i,j,3) = (XNSUM1_22+XNSUM1_11)/(XNSUM2_22+XNSUM2_11) - OL(i,j,4) = (XNSUM1_12+XNSUM1_21)/(XNSUM2_12+XNSUM2_21) - - !--- calculate OL1 and OL2 - !--- lower left - lon1 = lon-dlon*2.0 - lon2 = lon-dlon - lat1 = lat - lat2 = lat+dlat - if(lat1<-90 .or. lat2>90) then - print*, "at upper left i=,j=", i, j, lat, dlat,lat1,lat2 - endif - call get_xnsum3(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn, xnsum1_11, xnsum2_11, HC_11) - - !--- upper left - lon1 = lon-dlon*2.0 - lon2 = lon-dlon - lat1 = lat+dlat - lat2 = lat+dlat*2.0 - if(lat1<-90 .or. lat2>90) then - print*, "at lower left i=,j=", i, j, lat, dlat,lat1,lat2 - endif - - call get_xnsum3(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn, xnsum1_12, xnsum2_12, HC_12) - - !--- lower right - lon1 = lon-dlon - lon2 = lon - lat1 = lat - lat2 = lat+dlat - if(lat1<-90 .or. lat2>90) then - print*, "at upper right i=,j=", i, j, lat, dlat,lat1,lat2 - endif - call get_xnsum3(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn, xnsum1_21, xnsum2_21, HC_21) - - !--- upper right - lon1 = lon-dlon - lon2 = lon - lat1 = lat+dlat - lat2 = lat+dlat*2.0 - if(lat1<-90 .or. lat2>90) then - print*, "at lower right i=,j=", i, j, lat, dlat,lat1,lat2 - endif - - call get_xnsum3(lon1,lat1,lon2,lat2,IMN,JMN,GLAt, - & zavg,zslm,delxn, xnsum1_22, xnsum2_22, HC_22) - - OL(i,j,1) = (XNSUM1_11+XNSUM1_21)/(XNSUM2_11+XNSUM2_21) - OL(i,j,2) = (XNSUM1_21+XNSUM1_22)/(XNSUM2_21+XNSUM2_22) - ENDIF - ENDDO - ENDDO -!$omp end parallel do - DO KWD=1,4 - DO J=1,JM - DO I=1,IM - T = OA4(I,J,KWD) - OA4(I,J,KWD) = SIGN( MIN( ABS(T), 1. ), T ) - ENDDO - ENDDO - ENDDO -C - NS0 = 0 - NS1 = 0 - NS2 = 0 - NS3 = 0 - NS4 = 0 - NS5 = 0 - NS6 = 0 - DO KWD=1,4 - DO J=1,JM - DO I=1,IM - T = ABS( OA4(I,J,KWD) ) - IF(T .EQ. 0.) THEN - IOA4(I,J,KWD) = 0 - NS0 = NS0 + 1 - ELSE IF(T .GT. 0. .AND. T .LE. 1.) THEN - IOA4(I,J,KWD) = 1 - NS1 = NS1 + 1 - ELSE IF(T .GT. 1. .AND. T .LE. 10.) THEN - IOA4(I,J,KWD) = 2 - NS2 = NS2 + 1 - ELSE IF(T .GT. 10. .AND. T .LE. 100.) THEN - IOA4(I,J,KWD) = 3 - NS3 = NS3 + 1 - ELSE IF(T .GT. 100. .AND. T .LE. 1000.) THEN - IOA4(I,J,KWD) = 4 - NS4 = NS4 + 1 - ELSE IF(T .GT. 1000. .AND. T .LE. 10000.) THEN - IOA4(I,J,KWD) = 5 - NS5 = NS5 + 1 - ELSE IF(T .GT. 10000.) THEN - IOA4(I,J,KWD) = 6 - NS6 = NS6 + 1 - ENDIF - ENDDO - ENDDO - ENDDO -C - WRITE(6,*) "! MAKEOA2 EXIT" -C - RETURN - END - - -C----------------------------------------------------------------------- - SUBROUTINE GL2ANY(IP,KM,G1,IM1,JM1,G2,IM2,JM2,IDRTI,RLON,RLAT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: GL2GL INTERPOLATE GAUSSIAN GRID TO GAUSSIAN GRID -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-10-31 -C -C ABSTRACT: LINEARLY INTERPOLATES GAUSSIAN GRID TO GAUSSIAN GRID. -C -C PROGRAM HISTORY LOG: -C 91-10-31 MARK IREDELL -C -C USAGE: CALL GL2GL(IP,KM,G1,IM1,JM1,G2,IM2,JM2) -C INPUT ARGUMENT LIST: -C IP INTEGER INTERPOLATION TYPE -C KM INTEGER NUMBER OF LEVELS -C G1 REAL (IM1,JM1,KM) INPUT GAUSSIAN FIELD -C IM1 INTEGER NUMBER OF INPUT LONGITUDES -C JM1 INTEGER NUMBER OF INPUT LATITUDES -C IM2 INTEGER NUMBER OF OUTPUT LONGITUDES -C JM2 INTEGER NUMBER OF OUTPUT LATITUDES -C OUTPUT ARGUMENT LIST: -C G2 REAL (IM2,JM2,KM) OUTPUT GAUSSIAN FIELD -C -C SUBPROGRAMS CALLED: -C IPOLATES IREDELL'S POLATE FOR SCALAR FIELDS -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN -C -CC$$$ - REAL G1(IM1,JM1,KM),G2(IM2,JM2,KM) - LOGICAL*1 L1(IM1,JM1,KM),L2(IM2,JM2,KM) - REAL, intent(in) :: RLAT(IM2,JM2),RLON(IM2,JM2) - INTEGER IB1(KM),IB2(KM) - INTEGER KGDS1(200),KGDS2(200) - INTEGER IDRTI, IDRTO - DATA KGDS1/4,0,0,90000,0,0,-90000,193*0/ - DATA KGDS2/4,0,0,90000,0,0,-90000,193*0/ - INTEGER IPOPT(20) - DATA IPOPT/20*0/ -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - KGDS1(1) = IDRTI - KGDS2(1) = -1 - NO = IM2*JM2 - IF(IM1.NE.IM2.OR.JM1.NE.JM2) THEN - IB1=0 - KGDS1(2)=IM1 - KGDS1(3)=JM1 - KGDS1(8)=NINT(-360000./IM1) - KGDS1(10)=JM1/2 - KGDS2(2)=IM2 - KGDS2(3)=JM2 - KGDS2(8)=NINT(-360000./IM2) - KGDS2(10)=JM2/2 - CALL IPOLATES(IP,IPOPT,KGDS1,KGDS2,IM1*JM1,IM2*JM2,KM,IB1,L1,G1, - & NO,RLAT,RLON,IB2,L2,G2,IRET) - ELSE - G2=G1 - ENDIF - END - - - function spherical_distance(theta1,phi1,theta2,phi2) - - real, intent(in) :: theta1, phi1, theta2, phi2 - real :: spherical_distance, dot - - if(theta1 == theta2 .and. phi1 == phi2) then - spherical_distance = 0.0 - return - endif - - dot = cos(phi1)*cos(phi2)*cos(theta1-theta2) + sin(phi1)*sin(phi2) - if(dot > 1. ) dot = 1. - if(dot < -1.) dot = -1. - spherical_distance = acos(dot) - - return - - end function spherical_distance - - subroutine get_mismatch_index(im_in, jm_in, geolon_in,geolat_in, - & bitmap_in,num_out, lon_out,lat_out, iindx, jindx ) - integer, intent(in) :: im_in, jm_in, num_out - real, intent(in) :: geolon_in(im_in,jm_in) - real, intent(in) :: geolat_in(im_in,jm_in) - logical*1, intent(in) :: bitmap_in(im_in,jm_in) - real, intent(in) :: lon_out(num_out), lat_out(num_out) - integer, intent(out):: iindx(num_out), jindx(num_out) - real, parameter :: MAX_DIST = 1.e+20 - integer, parameter :: NUMNBR = 20 - integer :: i_c,j_c,jstart,jend - real :: lon,lat - - print*, "im_in,jm_in = ", im_in, jm_in - print*, "num_out = ", num_out - print*, "max and min of lon_in is", minval(geolon_in), - & maxval(geolon_in) - print*, "max and min of lat_in is", minval(geolat_in), - & maxval(geolat_in) - print*, "max and min of lon_out is", minval(lon_out), - & maxval(lon_out) - print*, "max and min of lat_out is", minval(lat_out), - & maxval(lat_out) - print*, "count(bitmap_in)= ", count(bitmap_in), MAX_DIST - - do n = 1, num_out - ! print*, "n = ", n - lon = lon_out(n) - lat = lat_out(n) - !--- find the j-index for the nearest point - i_c = 0; j_c = 0 - do j = 1, jm_in-1 - if(lat .LE. geolat_in(1,j) .and. - & lat .GE. geolat_in(1,j+1)) then - j_c = j - endif - enddo - if(lat > geolat_in(1,1)) j_c = 1 - if(lat < geolat_in(1,jm_in)) j_c = jm_in - ! print*, "lat =", lat, geolat_in(1,jm_in), geolat_in(1,jm_in-1) - ! The input is Gaussian grid. - jstart = max(j_c-NUMNBR,1) - jend = min(j_c+NUMNBR,jm_in) - dist = MAX_DIST - iindx(n) = 0 - jindx(n) = 0 - ! print*, "jstart, jend =", jstart, jend - do j = jstart, jend; do i = 1,im_in - if(bitmap_in(i,j) ) then - ! print*, "bitmap_in is true" - d = spherical_distance(lon_out(n),lat_out(n), - & geolon_in(i,j), geolat_in(i,j)) - if( dist > d ) then - iindx(n) = i; jindx(n) = j - dist = d - endif - endif - enddo; enddo - if(iindx(n) ==0) then - print*, "lon,lat=", lon,lat - print*, "jstart, jend=", jstart, jend, dist - print*, "ERROR in get mismatch_index: not find nearest points" - call ERREXIT(4) - endif - enddo - - end subroutine get_mismatch_index - - - subroutine interpolate_mismatch(im_in, jm_in, data_in, - & num_out, data_out, iindx, jindx) - integer, intent(in) :: im_in, jm_in, num_out - real, intent(in) :: data_in(im_in,jm_in) - real, intent(out):: data_out(num_out) - integer, intent(in) :: iindx(num_out), jindx(num_out) - - do n = 1, num_out - data_out(n) = data_in(iindx(n),jindx(n)) - enddo - - end subroutine interpolate_mismatch - - SUBROUTINE MAKEOA3(ZAVG,zslm,VAR,GLAT,OA4,OL,IOA4,ELVMAX, - 1 ORO,SLM,oro1,XNSUM,XNSUM1,XNSUM2,XNSUM3,XNSUM4, - 2 IM,JM,IMN,JMN,lon_c,lat_c,lon_t,lat_t, - 3 is_south_pole,is_north_pole,IMI,JMI,OA_IN,OL_IN, - 4 slm_in,lon_in,lat_in) - implicit none - real, parameter :: MISSING_VALUE = -9999. - real, parameter :: D2R = 3.14159265358979/180. - real, PARAMETER :: R2D=180./3.14159265358979 - integer IM,JM,IMN,JMN,IMI,JMI - real GLAT(JMN) - INTEGER ZAVG(IMN,JMN),ZSLM(IMN,JMN) - real SLM(IM,JM) - real ORO(IM,JM),ORO1(IM,JM),ELVMAX(IM,JM),ZMAX(IM,JM) - real OA4(IM,JM,4) - integer IOA4(IM,JM,4) - real OA_IN(IMI,JMI,4), OL_IN(IMI,JMI,4) - real slm_in(IMI,JMI) - real lon_in(IMI,JMI), lat_in(IMI,JMI) - real lon_c(IM+1,JM+1), lat_c(IM+1,JM+1) - real lon_t(IM,JM), lat_t(IM,JM) - logical is_south_pole(IM,JM), is_north_pole(IM,JM) - real XNSUM(IM,JM),XNSUM1(IM,JM),XNSUM2(IM,JM) - real XNSUM3(IM,JM),XNSUM4(IM,JM) - real VAR(IM,JM),OL(IM,JM,4) - LOGICAL FLAG - integer i,j,ilist(IMN),numx,i1,j1,ii1 - integer KWD,II,npts - real LONO(4),LATO(4),LONI,LATI - real DELXN,HC,HEIGHT,XNPU,XNPD,T - integer NS0,NS1,NS2,NS3,NS4,NS5,NS6 - logical inside_a_polygon - real lon,lat,dlon,dlat,dlat_old - real lon1,lat1,lon2,lat2 - real xnsum11,xnsum12,xnsum21,xnsum22,xnsumx - real HC_11, HC_12, HC_21, HC_22 - real xnsum1_11,xnsum1_12,xnsum1_21,xnsum1_22 - real xnsum2_11,xnsum2_12,xnsum2_21,xnsum2_22 - real get_lon_angle, get_lat_angle, get_xnsum - integer ist, ien, jst, jen - real xland,xwatr,xl1,xs1,oroavg - integer int_opt, ipopt(20), kgds_input(200), kgds_output(200) - integer count_land_output - integer ij, ijmdl_output, iret, num_mismatch_land, num - integer ibo(1) - logical*1, allocatable :: bitmap_input(:,:) - logical*1, allocatable :: bitmap_output(:) - integer, allocatable :: ijsav_land_output(:) - real, allocatable :: lats_land_output(:) - real, allocatable :: lons_land_output(:) - real, allocatable :: output_data_land(:) - real, allocatable :: lons_mismatch_output(:) - real, allocatable :: lats_mismatch_output(:) - real, allocatable :: data_mismatch_output(:) - integer, allocatable :: iindx(:), jindx(:) -C -C---- GLOBAL XLAT AND XLON ( DEGREE ) -C - DELXN = 360./IMN ! MOUNTAIN DATA RESOLUTION -C - ijmdl_output = IM*JM - - DO J=1,JMN - GLAT(J) = -90. + (J-1) * DELXN + DELXN * 0.5 - ENDDO - print *,' IM=',IM,' JM=',JM,' IMN=',IMN,' JMN=',JMN -C -C---- FIND THE AVERAGE OF THE MODES IN A GRID BOX -C -C - DO J=1,JM - DO I=1,IM - XNSUM(I,J) = 0.0 - ELVMAX(I,J) = ORO(I,J) - ZMAX(I,J) = 0.0 -C---- COUNT NUMBER OF MODE. HIGHER THAN THE HC, CRITICAL HEIGHT -C IN A GRID BOX - XNSUM1(I,J) = 0.0 - XNSUM2(I,J) = 0.0 - XNSUM3(I,J) = 0.0 - XNSUM4(I,J) = 0.0 - ORO1(I,J) = ORO(I,J) - ELVMAX(I,J) = ZMAX(I,J) - ENDDO - ENDDO - -! --- # of peaks > ZAVG value and ZMAX(IM,JM) -- ORO is already avg. -! --- to JM or to JM1 - DO J=1,JM -! print*, "J=", J - DO I=1,IM - HC = 1116.2 - 0.878 * VAR(I,J) - LONO(1) = lon_c(i,j) - LONO(2) = lon_c(i+1,j) - LONO(3) = lon_c(i+1,j+1) - LONO(4) = lon_c(i,j+1) - LATO(1) = lat_c(i,j) - LATO(2) = lat_c(i+1,j) - LATO(3) = lat_c(i+1,j+1) - LATO(4) = lat_c(i,j+1) - call get_index(IMN,JMN,4,LONO,LATO,DELXN,jst,jen,ilist,numx) - do j1 = jst, jen; do ii1 = 1, numx - i1 = ilist(ii1) - LONI = i1*DELXN - LATI = -90 + j1*DELXN - if(inside_a_polygon(LONI*D2R,LATI*D2R,4, - & LONO*D2R,LATO*D2R))then - - HEIGHT = FLOAT(ZAVG(I1,J1)) - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - IF ( HEIGHT .gt. ORO(I,J) ) then - if ( HEIGHT .gt. ZMAX(I,J) )ZMAX(I,J) = HEIGHT - ENDIF - endif - ENDDO ; ENDDO - ENDDO - ENDDO - -C -! --- this will make work1 array take on oro's values on return -! --- this will make work1 array take on oro's values on return - DO J=1,JM - DO I=1,IM - - ORO1(I,J) = ORO(I,J) - ELVMAX(I,J) = ZMAX(I,J) - ENDDO - ENDDO - - DO KWD = 1, 4 - DO J=1,JM - DO I=1,IM - OA4(I,J,KWD) = 0.0 - OL(I,J,KWD) = 0.0 - ENDDO - ENDDO - ENDDO - - !--- use the nearest point to do remapping. - int_opt = 2 - ipopt=0 - KGDS_INPUT = 0 - KGDS_INPUT(1) = 4 ! OCT 6 - TYPE OF GRID (GAUSSIAN) - KGDS_INPUT(2) = IMI ! OCT 7-8 - # PTS ON LATITUDE CIRCLE - KGDS_INPUT(3) = JMI ! OCT 9-10 - # PTS ON LONGITUDE CIRCLE - KGDS_INPUT(4) = 90000 ! OCT 11-13 - LAT OF ORIGIN - KGDS_INPUT(5) = 0 ! OCT 14-16 - LON OF ORIGIN - KGDS_INPUT(6) = 128 ! OCT 17 - RESOLUTION FLAG - KGDS_INPUT(7) = -90000 ! OCT 18-20 - LAT OF EXTREME POINT - KGDS_INPUT(8) = NINT(-360000./IMI) ! OCT 21-23 - LON OF EXTREME POINT - KGDS_INPUT(9) = NINT((360.0 / FLOAT(IMI))*1000.0) - ! OCT 24-25 - LONGITUDE DIRECTION INCR. - KGDS_INPUT(10) = JMI /2 ! OCT 26-27 - NUMBER OF CIRCLES POLE TO EQUATOR - KGDS_INPUT(12) = 255 ! OCT 29 - RESERVED - KGDS_INPUT(20) = 255 ! OCT 5 - NOT USED, SET TO 255 - - - KGDS_OUTPUT = -1 -! KGDS_OUTPUT(1) = IDRT ! OCT 6 - TYPE OF GRID (GAUSSIAN) - KGDS_OUTPUT(2) = IM ! OCT 7-8 - # PTS ON LATITUDE CIRCLE - KGDS_OUTPUT(3) = JM ! OCT 9-10 - # PTS ON LONGITUDE CIRCLE - KGDS_OUTPUT(4) = 90000 ! OCT 11-13 - LAT OF ORIGIN - KGDS_OUTPUT(5) = 0 ! OCT 14-16 - LON OF ORIGIN - KGDS_OUTPUT(6) = 128 ! OCT 17 - RESOLUTION FLAG - KGDS_OUTPUT(7) = -90000 ! OCT 18-20 - LAT OF EXTREME POINT - KGDS_OUTPUT(8) = NINT(-360000./IM) ! OCT 21-23 - LON OF EXTREME POINT - KGDS_OUTPUT(9) = NINT((360.0 / FLOAT(IM))*1000.0) - ! OCT 24-25 - LONGITUDE DIRECTION INCR. - KGDS_OUTPUT(10) = JM /2 ! OCT 26-27 - NUMBER OF CIRCLES POLE TO EQUATOR - KGDS_OUTPUT(12) = 255 ! OCT 29 - RESERVED - KGDS_OUTPUT(20) = 255 ! OCT 5 - NOT USED, SET TO 255 - - count_land_output=0 - print*, "sum(slm) = ", sum(slm) - do ij = 1, ijmdl_output - j = (ij-1)/IM + 1 - i = mod(ij-1,IM) + 1 - if (slm(i,j) > 0.0) then - count_land_output=count_land_output+1 - endif - enddo - allocate(bitmap_input(imi,jmi)) - bitmap_input=.false. - print*, "number of land input=", sum(slm_in) - where(slm_in > 0.0) bitmap_input=.true. - print*, "count(bitmap_input)", count(bitmap_input) - - allocate(bitmap_output(count_land_output)) - allocate(output_data_land(count_land_output)) - allocate(ijsav_land_output(count_land_output)) - allocate(lats_land_output(count_land_output)) - allocate(lons_land_output(count_land_output)) - - - - count_land_output=0 - do ij = 1, ijmdl_output - j = (ij-1)/IM + 1 - i = mod(ij-1,IM) + 1 - if (slm(i,j) > 0.0) then - count_land_output=count_land_output+1 - ijsav_land_output(count_land_output)=ij - lats_land_output(count_land_output)=lat_t(i,j) - lons_land_output(count_land_output)=lon_t(i,j) - endif - enddo - - oa4 = 0.0 - ol = 0.0 - - do KWD=1,4 - bitmap_output = .false. - output_data_land = 0.0 - call ipolates(int_opt, ipopt, kgds_input, kgds_output, - & (IMI*JMI), count_land_output, - & 1, 1, bitmap_input, oa_in(:,:,KWD), - & count_land_output, lats_land_output, - & lons_land_output, ibo, - & bitmap_output, output_data_land, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - call ERREXIT(4) - endif - - num_mismatch_land = 0 - do ij = 1, count_land_output - if (bitmap_output(ij)) then - j = (ijsav_land_output(ij)-1)/IM + 1 - i = mod(ijsav_land_output(ij)-1,IM) + 1 - oa4(i,j,KWD)=output_data_land(ij) - else ! default value - num_mismatch_land = num_mismatch_land + 1 - endif - enddo - print*, "num_mismatch_land = ", num_mismatch_land - - if(.not. allocated(data_mismatch_output)) then - allocate(lons_mismatch_output(num_mismatch_land)) - allocate(lats_mismatch_output(num_mismatch_land)) - allocate(data_mismatch_output(num_mismatch_land)) - allocate(iindx(num_mismatch_land)) - allocate(jindx(num_mismatch_land)) - - num = 0 - do ij = 1, count_land_output - if (.not. bitmap_output(ij)) then - num = num+1 - lons_mismatch_output(num) = lons_land_output(ij) - lats_mismatch_output(num) = lats_land_output(ij) - endif - enddo - - ! For those land points that with bitmap_output=.false. use - ! the nearest land points to interpolate. - print*,"before get_mismatch_index", count(bitmap_input) - call get_mismatch_index(imi,jmi,lon_in*D2R, - & lat_in*D2R,bitmap_input,num_mismatch_land, - & lons_mismatch_output*D2R,lats_mismatch_output*D2R, - & iindx, jindx ) - endif - - data_mismatch_output = 0 - call interpolate_mismatch(imi,jmi,oa_in(:,:,KWD), - & num_mismatch_land,data_mismatch_output,iindx,jindx) - - num = 0 - do ij = 1, count_land_output - if (.not. bitmap_output(ij)) then - num = num+1 - j = (ijsav_land_output(ij)-1)/IM + 1 - i = mod(ijsav_land_output(ij)-1,IM) + 1 - oa4(i,j,KWD) = data_mismatch_output(num) - if(i==372 .and. j== 611) then - print*, "ij=",ij, num, oa4(i,j,KWD),iindx(num),jindx(num) - endif - endif - enddo - - - enddo - - !OL - do KWD=1,4 - bitmap_output = .false. - output_data_land = 0.0 - call ipolates(int_opt, ipopt, kgds_input, kgds_output, - & (IMI*JMI), count_land_output, - & 1, 1, bitmap_input, ol_in(:,:,KWD), - & count_land_output, lats_land_output, - & lons_land_output, ibo, - & bitmap_output, output_data_land, iret) - if (iret /= 0) then - print*,'- ERROR IN IPOLATES ',iret - call ERREXIT(4) - endif - - num_mismatch_land = 0 - do ij = 1, count_land_output - if (bitmap_output(ij)) then - j = (ijsav_land_output(ij)-1)/IM + 1 - i = mod(ijsav_land_output(ij)-1,IM) + 1 - ol(i,j,KWD)=output_data_land(ij) - else ! default value - num_mismatch_land = num_mismatch_land + 1 - endif - enddo - print*, "num_mismatch_land = ", num_mismatch_land - - data_mismatch_output = 0 - call interpolate_mismatch(imi,jmi,ol_in(:,:,KWD), - & num_mismatch_land,data_mismatch_output,iindx,jindx) - - num = 0 - do ij = 1, count_land_output - if (.not. bitmap_output(ij)) then - num = num+1 - j = (ijsav_land_output(ij)-1)/IM + 1 - i = mod(ijsav_land_output(ij)-1,IM) + 1 - ol(i,j,KWD) = data_mismatch_output(num) - if(i==372 .and. j== 611) then - print*, "ij=",ij, num, ol(i,j,KWD),iindx(num),jindx(num) - endif - endif - enddo - - - enddo - - deallocate(lons_mismatch_output,lats_mismatch_output) - deallocate(data_mismatch_output,iindx,jindx) - deallocate(bitmap_output,output_data_land) - deallocate(ijsav_land_output,lats_land_output) - deallocate(lons_land_output) - - DO KWD=1,4 - DO J=1,JM - DO I=1,IM - T = OA4(I,J,KWD) - OA4(I,J,KWD) = SIGN( MIN( ABS(T), 1. ), T ) - ENDDO - ENDDO - ENDDO -C - NS0 = 0 - NS1 = 0 - NS2 = 0 - NS3 = 0 - NS4 = 0 - NS5 = 0 - NS6 = 0 - DO KWD=1,4 - DO J=1,JM - DO I=1,IM - T = ABS( OA4(I,J,KWD) ) - IF(T .EQ. 0.) THEN - IOA4(I,J,KWD) = 0 - NS0 = NS0 + 1 - ELSE IF(T .GT. 0. .AND. T .LE. 1.) THEN - IOA4(I,J,KWD) = 1 - NS1 = NS1 + 1 - ELSE IF(T .GT. 1. .AND. T .LE. 10.) THEN - IOA4(I,J,KWD) = 2 - NS2 = NS2 + 1 - ELSE IF(T .GT. 10. .AND. T .LE. 100.) THEN - IOA4(I,J,KWD) = 3 - NS3 = NS3 + 1 - ELSE IF(T .GT. 100. .AND. T .LE. 1000.) THEN - IOA4(I,J,KWD) = 4 - NS4 = NS4 + 1 - ELSE IF(T .GT. 1000. .AND. T .LE. 10000.) THEN - IOA4(I,J,KWD) = 5 - NS5 = NS5 + 1 - ELSE IF(T .GT. 10000.) THEN - IOA4(I,J,KWD) = 6 - NS6 = NS6 + 1 - ENDIF - ENDDO - ENDDO - ENDDO -C - WRITE(6,*) "! MAKEOA3 EXIT" -C - RETURN - END - - SUBROUTINE REVERS(IM, JM, numi, F, WRK) -! - REAL F(IM,JM), WRK(IM,JM) - integer numi(jm) -C -C reverse east-west and north-south -c...... fix this routine up to take numi (*j*) -C..... at least have 5 variables ....and keep REVLAT .FALSE. - imb2 = im / 2 - do i=1,im*jm - WRK(i,1) = F(i,1) - enddo - do j=1,jm - jr = jm - j + 1 - do i=1,im - ir = i + imb2 - if (ir .gt. im) ir = ir - im - f(ir,jr) = WRK(i,j) - enddo - enddo -! - tem = 0.0 - do i=1,im - tem= tem + F(I,1) - enddo - tem = tem / im - do i=1,im - F(I,1) = tem - enddo -! - RETURN - END - - subroutine rg2gg(im,jm,numi,a) - implicit none - integer,intent(in):: im,jm,numi(jm) - real,intent(inout):: a(im,jm) - integer j,ir,ig - real r,t(im) - do j=1,jm - r=real(numi(j))/real(im) - do ig=1,im - ir=mod(nint((ig-1)*r),numi(j))+1 - t(ig)=a(ir,j) - enddo - do ig=1,im - a(ig,j)=t(ig) - enddo - enddo - end subroutine - subroutine gg2rg(im,jm,numi,a) - implicit none - integer,intent(in):: im,jm,numi(jm) - real,intent(inout):: a(im,jm) - integer j,ir,ig - real r,t(im) - do j=1,jm - r=real(numi(j))/real(im) - do ir=1,numi(j) - ig=nint((ir-1)/r)+1 - t(ir)=a(ig,j) - enddo - do ir=1,numi(j) - a(ir,j)=t(ir) - enddo - enddo - end subroutine - SUBROUTINE minmxj(IM,JM,A,title) - -c this routine is using real*4 on the sp - - implicit none - - real A(IM,JM),rmin,rmax - integer i,j,IM,JM - character*8 title - - rmin=1.e+10 - rmax=-rmin -csela.................................................... -csela if(rmin.eq.1.e+10)return -csela.................................................... - DO j=1,JM - DO i=1,IM - if(A(i,j).ge.rmax)rmax=A(i,j) - if(A(i,j).le.rmin)rmin=A(i,j) - ENDDO - ENDDO - write(6,150)rmin,rmax,title -150 format('rmin=',e13.4,2x,'rmax=',e13.4,2x,a8,' ') -C - RETURN - END - SUBROUTINE mnmxja(IM,JM,A,imax,jmax,title) - -c this routine is using real*4 on the sp - - implicit none - - real A(IM,JM),rmin,rmax - integer i,j,IM,JM,imax,jmax - character*8 title - - rmin=1.e+10 - rmax=-rmin -csela.................................................... -csela if(rmin.eq.1.e+10)return -csela.................................................... - DO j=1,JM - DO i=1,IM - if(A(i,j).ge.rmax)then - rmax=A(i,j) - imax=i - jmax=j - endif - if(A(i,j).le.rmin)rmin=A(i,j) - ENDDO - ENDDO - write(6,150)rmin,rmax,title -150 format('rmin=',e13.4,2x,'rmax=',e13.4,2x,a8,' ') -C - RETURN - END - -C----------------------------------------------------------------------- - SUBROUTINE SPFFT1(IMAX,INCW,INCG,KMAX,W,G,IDIR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: SPFFT1 PERFORM MULTIPLE FAST FOURIER TRANSFORMS -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 96-02-20 -C -C ABSTRACT: THIS SUBPROGRAM PERFORMS MULTIPLE FAST FOURIER TRANSFORMS -C BETWEEN COMPLEX AMPLITUDES IN FOURIER SPACE AND REAL VALUES -C IN CYCLIC PHYSICAL SPACE. -C SUBPROGRAM SPFFT1 INITIALIZES TRIGONOMETRIC DATA EACH CALL. -C USE SUBPROGRAM SPFFT TO SAVE TIME AND INITIALIZE ONCE. -C THIS VERSION INVOKES THE IBM ESSL FFT. -C -C PROGRAM HISTORY LOG: -C 1998-12-18 IREDELL -C -C USAGE: CALL SPFFT1(IMAX,INCW,INCG,KMAX,W,G,IDIR) -C -C INPUT ARGUMENT LIST: -C IMAX - INTEGER NUMBER OF VALUES IN THE CYCLIC PHYSICAL SPACE -C (SEE LIMITATIONS ON IMAX IN REMARKS BELOW.) -C INCW - INTEGER FIRST DIMENSION OF THE COMPLEX AMPLITUDE ARRAY -C (INCW >= IMAX/2+1) -C INCG - INTEGER FIRST DIMENSION OF THE REAL VALUE ARRAY -C (INCG >= IMAX) -C KMAX - INTEGER NUMBER OF TRANSFORMS TO PERFORM -C W - COMPLEX(INCW,KMAX) COMPLEX AMPLITUDES IF IDIR>0 -C G - REAL(INCG,KMAX) REAL VALUES IF IDIR<0 -C IDIR - INTEGER DIRECTION FLAG -C IDIR>0 TO TRANSFORM FROM FOURIER TO PHYSICAL SPACE -C IDIR<0 TO TRANSFORM FROM PHYSICAL TO FOURIER SPACE -C -C OUTPUT ARGUMENT LIST: -C W - COMPLEX(INCW,KMAX) COMPLEX AMPLITUDES IF IDIR<0 -C G - REAL(INCG,KMAX) REAL VALUES IF IDIR>0 -C -C SUBPROGRAMS CALLED: -C SCRFT IBM ESSL COMPLEX TO REAL FOURIER TRANSFORM -C DCRFT IBM ESSL COMPLEX TO REAL FOURIER TRANSFORM -C SRCFT IBM ESSL REAL TO COMPLEX FOURIER TRANSFORM -C DRCFT IBM ESSL REAL TO COMPLEX FOURIER TRANSFORM -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C -C REMARKS: -C THE RESTRICTIONS ON IMAX ARE THAT IT MUST BE A MULTIPLE -C OF 1 TO 25 FACTORS OF TWO, UP TO 2 FACTORS OF THREE, -C AND UP TO 1 FACTOR OF FIVE, SEVEN AND ELEVEN. -C -C THIS SUBPROGRAM IS THREAD-SAFE. -C -C$$$ - IMPLICIT NONE - INTEGER,INTENT(IN):: IMAX,INCW,INCG,KMAX,IDIR - COMPLEX,INTENT(INOUT):: W(INCW,KMAX) - REAL,INTENT(INOUT):: G(INCG,KMAX) - REAL:: AUX1(25000+INT(0.82*IMAX)) - REAL:: AUX2(20000+INT(0.57*IMAX)) - INTEGER:: NAUX1,NAUX2 -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NAUX1=25000+INT(0.82*IMAX) - NAUX2=20000+INT(0.57*IMAX) -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C FOURIER TO PHYSICAL TRANSFORM. - SELECT CASE(IDIR) - CASE(1:) - SELECT CASE(DIGITS(1.)) - CASE(DIGITS(1._4)) - CALL SCRFT(1,W,INCW,G,INCG,IMAX,KMAX,-1,1., - & AUX1,NAUX1,AUX2,NAUX2,0.,0) - CALL SCRFT(0,W,INCW,G,INCG,IMAX,KMAX,-1,1., - & AUX1,NAUX1,AUX2,NAUX2,0.,0) - CASE(DIGITS(1._8)) - CALL DCRFT(1,W,INCW,G,INCG,IMAX,KMAX,-1,1., - & AUX1,NAUX1,AUX2,NAUX2,0.,0) - CALL DCRFT(0,W,INCW,G,INCG,IMAX,KMAX,-1,1., - & AUX1,NAUX1,AUX2,NAUX2,0.,0) - END SELECT -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C PHYSICAL TO FOURIER TRANSFORM. - CASE(:-1) - SELECT CASE(DIGITS(1.)) - CASE(DIGITS(1._4)) - CALL SRCFT(1,G,INCG,W,INCW,IMAX,KMAX,+1,1./IMAX, - & AUX1,NAUX1,AUX2,NAUX2,0.,0) - CALL SRCFT(0,G,INCG,W,INCW,IMAX,KMAX,+1,1./IMAX, - & AUX1,NAUX1,AUX2,NAUX2,0.,0) - CASE(DIGITS(1._8)) - CALL DRCFT(1,G,INCG,W,INCW,IMAX,KMAX,+1,1./IMAX, - & AUX1,NAUX1,AUX2,NAUX2,0.,0) - CALL DRCFT(0,G,INCG,W,INCW,IMAX,KMAX,+1,1./IMAX, - & AUX1,NAUX1,AUX2,NAUX2,0.,0) - END SELECT - END SELECT - END SUBROUTINE - subroutine read_g(glob,ITOPO) -! -! --- if ITOPO = 1 then read gtopo30_gg.fine 43200X21600 30" file -! --- if ITOPO = 2 then read topo 30" .DEM tile files -! --- in either case, glob will be n Interger*2 array. -! --- This routine write out a grads ctl file for displaying the -! --- tiles in the output working dir. The glob array can not be -! --- acted on with grads, but the tiles can be if lat/lon are reduced slightly -cc - implicit none -cc - include 'machine.h' - include 'resevod.h' -cc - integer*2 glob(360*120,180*120) -cc - integer ix,jx - integer ia,ja -cc - parameter (ix=40*120,jx=50*120) - parameter (ia=60*120,ja=30*120) -cc - integer*2 idat(ix,jx),itopo -cc -ccmr integer*2 m9999 -ccmr data m9999 / -9999 / -cc -ccmr integer i_count(360*120) -ccmr integer j_max_y(360*120) -cc - integer i,j,inttyp -cc - real(kind=8) dloin,dlain,rlon,rlat -cc - open(235, file="./fort.235", access='direct', recl=43200*21600*2) - read(235,rec=1)glob - rewind(235) -cc -cc - print*,' ' - call maxmin (glob,360*120*180*120,'global0') -cc -cc - dloin=1.d0/120.d0 - dlain=1.d0/120.d0 -cc - rlon= -179.995833333333333333333333d0 - rlat= 89.995833333333333333333333d0 -cc - inttyp=-1 ! average rectangular subset -ccmr inttyp= 1 ! take closest grid point value -ccmr inttyp= 0 ! interpolate from four closest grid point values -cc -! call la2ga_gtopo30(glob,360*120,180*120, -! & dloin,dlain,rlon,rlat,inttyp, -! & .true.,glob, -! & 0,lonf,latg) -cc - return - end - subroutine maxmin(ia,len,tile) -ccmr - implicit none -ccmr - integer*2 ia(len) - character*7 tile - integer iaamax, iaamin, len, j, m, ja, kount - integer(8) sum2,std,mean,isum - integer i_count_notset,kount_9 -! --- missing is -9999 -c - isum = 0 - sum2 = 0 - kount = 0 - kount_9 = 0 - iaamax = -9999999 -ccmr iaamin = 1 - iaamin = 9999999 - i_count_notset=0 - do 10 m=1,len - ja=ia(m) -ccmr if ( ja .lt. 0 ) print *,' ja < 0:',ja -ccmr if ( ja .eq. -9999 ) goto 10 - if ( ja .eq. -9999 ) then - kount_9=kount_9+1 - goto 10 - endif - if ( ja .eq. -12345 ) i_count_notset=i_count_notset+1 -ccmr if ( ja .eq. 0 ) goto 11 - iaamax = max0( iaamax, ja ) - iaamin = min0( iaamin, ja ) -! iaamax = max0( iaamax, ia(m,j) ) -! iaamin = min0( iaamin, ia(m,j) ) - 11 continue - kount = kount + 1 - isum = isum + ja -ccmr sum2 = sum2 + ifix( float(ja) * float(ja) ) - sum2 = sum2 + ja*ja - 10 continue -! - mean = isum/kount - std = ifix(sqrt(float((sum2/(kount))-mean**2))) - print*,tile,' max=',iaamax,' min=',iaamin,' sum=',isum, - & ' i_count_notset=',i_count_notset - print*,tile,' mean=',mean,' std.dev=',std, - & ' ko9s=',kount,kount_9,kount+kount_9 - return - end - SUBROUTINE minmaxj(IM,JM,A,title) - -c this routine is using real*4 on the sp - - implicit none - - real(kind=4) A(IM,JM),rmin,rmax,undef - integer i,j,IM,JM,imax,jmax,imin,jmin,iundef - character*8 title,chara - data chara/' '/ - chara=title - rmin=1.e+10 - rmax=-rmin - imax=0 - imin=0 - jmax=0 - jmin=0 - iundef=0 - undef=-9999. -csela.................................................... -csela if(rmin.eq.1.e+10)return -csela.................................................... - DO j=1,JM - DO i=1,IM - if(A(i,j).ge.rmax)then - rmax=A(i,j) - imax=i - jmax=j - endif - if(A(i,j).le.rmin)then - if ( A(i,j) .eq. undef ) then - iundef = iundef + 1 - else - rmin=A(i,j) - imin=i - jmin=j - endif - endif - ENDDO - ENDDO - write(6,150)chara,rmin,imin,jmin,rmax,imax,jmax,iundef -150 format(1x,a8,2x,'rmin=',e13.4,2i6,2x,'rmax=',e13.4,3i6) -C - RETURN - END - - - !routine to map (lon, lat) to (x,y,z) - subroutine latlon2xyz(siz,lon, lat, x, y, z) - implicit none - integer, intent(in) :: siz - real, intent(in) :: lon(siz), lat(siz) - real, intent(out) :: x(siz), y(siz), z(siz) - - integer n - - do n = 1, siz - x(n) = cos(lat(n))*cos(lon(n)) - y(n) = cos(lat(n))*sin(lon(n)) - z(n) = sin(lat(n)) - enddo - end - - FUNCTION spherical_angle(v1, v2, v3) - implicit none - real, parameter :: EPSLN30 = 1.e-30 - real, parameter :: PI=3.1415926535897931 - real v1(3), v2(3), v3(3) - real spherical_angle - - real px, py, pz, qx, qy, qz, ddd; - - ! vector product between v1 and v2 - px = v1(2)*v2(3) - v1(3)*v2(2) - py = v1(3)*v2(1) - v1(1)*v2(3) - pz = v1(1)*v2(2) - v1(2)*v2(1) - ! vector product between v1 and v3 - qx = v1(2)*v3(3) - v1(3)*v3(2); - qy = v1(3)*v3(1) - v1(1)*v3(3); - qz = v1(1)*v3(2) - v1(2)*v3(1); - - ddd = (px*px+py*py+pz*pz)*(qx*qx+qy*qy+qz*qz); - if ( ddd <= 0.0 ) then - spherical_angle = 0. - else - ddd = (px*qx+py*qy+pz*qz) / sqrt(ddd); - if( abs(ddd-1) < EPSLN30 ) ddd = 1; - if( abs(ddd+1) < EPSLN30 ) ddd = -1; - if ( ddd>1. .or. ddd<-1. ) then - !FIX to correctly handle co-linear points (angle near pi or 0) */ - if (ddd < 0.) then - spherical_angle = PI - else - spherical_angle = 0. - endif - else - spherical_angle = acos( ddd ) - endif - endif - - return - END - - FUNCTION inside_a_polygon(lon1, lat1, npts, lon2, lat2) - implicit none - real, parameter :: EPSLN10 = 1.e-10 - real, parameter :: EPSLN8 = 1.e-8 - real, parameter :: PI=3.1415926535897931 - real, parameter :: RANGE_CHECK_CRITERIA=0.05 - real :: anglesum, angle, spherical_angle - integer i, ip1 - real lon1, lat1 - integer npts - real lon2(npts), lat2(npts) - real x2(npts), y2(npts), z2(npts) - real lon1_1d(1), lat1_1d(1) - real x1(1), y1(1), z1(1) - real pnt0(3),pnt1(3),pnt2(3) - logical inside_a_polygon - real max_x2,min_x2,max_y2,min_y2,max_z2,min_z2 - !first convert to cartesian grid */ - call latlon2xyz(npts,lon2, lat2, x2, y2, z2); - lon1_1d(1) = lon1 - lat1_1d(1) = lat1 - call latlon2xyz(1,lon1_1d, lat1_1d, x1, y1, z1); - inside_a_polygon = .false. - max_x2 = maxval(x2) - if( x1(1) > max_x2+RANGE_CHECK_CRITERIA ) return - min_x2 = minval(x2) - if( x1(1)+RANGE_CHECK_CRITERIA < min_x2 ) return - max_y2 = maxval(y2) - if( y1(1) > max_y2+RANGE_CHECK_CRITERIA ) return - min_y2 = minval(y2) - if( y1(1)+RANGE_CHECK_CRITERIA < min_y2 ) return - max_z2 = maxval(z2) - if( z1(1) > max_z2+RANGE_CHECK_CRITERIA ) return - min_z2 = minval(z2) - if( z1(1)+RANGE_CHECK_CRITERIA < min_z2 ) return - - pnt0(1) = x1(1) - pnt0(2) = y1(1) - pnt0(3) = z1(1) - - anglesum = 0; - do i = 1, npts - if(abs(x1(1)-x2(i)) < EPSLN10 .and. - & abs(y1(1)-y2(i)) < EPSLN10 .and. - & abs(z1(1)-z2(i)) < EPSLN10 ) then ! same as the corner point - inside_a_polygon = .true. - return - endif - ip1 = i+1 - if(ip1>npts) ip1 = 1 - pnt1(1) = x2(i) - pnt1(2) = y2(i) - pnt1(3) = z2(i) - pnt2(1) = x2(ip1) - pnt2(2) = y2(ip1) - pnt2(3) = z2(ip1) - - angle = spherical_angle(pnt0, pnt2, pnt1); -! anglesum = anglesum + spherical_angle(pnt0, pnt2, pnt1); - anglesum = anglesum + angle - enddo - - if(abs(anglesum-2*PI) < EPSLN8) then - inside_a_polygon = .true. - else - inside_a_polygon = .false. - endif - - return - - end - - - function get_xnsum(lon1,lat1,lon2,lat2,IMN,JMN, - & glat,zavg,zslm,delxn) - implicit none - - real get_xnsum - logical verbose - real lon1,lat1,lon2,lat2,oro,delxn - integer IMN,JMN - real glat(JMN) - integer zavg(IMN,JMN),zslm(IMN,JMN) - integer i, j, ist, ien, jst, jen, i1 - real HEIGHT - real xland,xwatr,xl1,xs1,slm,xnsum - !---figure out ist,ien,jst,jen - do j = 1, JMN - if( GLAT(J) .GT. lat1 ) then - jst = j - exit - endif - enddo - do j = 1, JMN - if( GLAT(J) .GT. lat2 ) then - jen = j - exit - endif - enddo - - - ist = lon1/delxn + 1 - ien = lon2/delxn - if(ist .le.0) ist = ist + IMN - if(ien < ist) ien = ien + IMN -! if(verbose) print*, "ist,ien=",ist,ien,jst,jen - - !--- compute average oro - oro = 0.0 - xnsum = 0 - xland = 0 - xwatr = 0 - xl1 = 0 - xs1 = 0 - do j = jst,jen - do i1 = 1, ien - ist + 1 - i = ist + i1 -1 - if( i .LE. 0) i = i + imn - if( i .GT. IMN) i = i - imn - XLAND = XLAND + FLOAT(ZSLM(I,J)) - XWATR = XWATR + FLOAT(1-ZSLM(I,J)) - XNSUM = XNSUM + 1. - HEIGHT = FLOAT(ZAVG(I,J)) - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - XL1 = XL1 + HEIGHT * FLOAT(ZSLM(I,J)) - XS1 = XS1 + HEIGHT * FLOAT(1-ZSLM(I,J)) - enddo - enddo - if( XNSUM > 1.) THEN - SLM = FLOAT(NINT(XLAND/XNSUM)) - IF(SLM.NE.0.) THEN - ORO= XL1 / XLAND - ELSE - ORO = XS1 / XWATR - ENDIF - ENDIF - - get_xnsum = 0 - do j = jst, jen - do i1= 1, ien-ist+1 - i = ist + i1 -1 - if( i .LE. 0) i = i + imn - if( i .GT. IMN) i = i - imn - HEIGHT = FLOAT(ZAVG(I,J)) - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - IF ( HEIGHT .gt. ORO ) get_xnsum = get_xnsum + 1 - enddo - enddo -! if(verbose) print*, "get_xnsum=", get_xnsum, oro - - end function get_xnsum - - - subroutine get_xnsum2(lon1,lat1,lon2,lat2,IMN,JMN, - & glat,zavg,zslm,delxn,xnsum1,xnsum2,HC) - implicit none - - real, intent(out) :: xnsum1,xnsum2,HC - logical verbose - real lon1,lat1,lon2,lat2,oro,delxn - integer IMN,JMN - real glat(JMN) - integer zavg(IMN,JMN),zslm(IMN,JMN) - integer i, j, ist, ien, jst, jen, i1 - real HEIGHT, var - real XW1,XW2,slm,xnsum - !---figure out ist,ien,jst,jen - do j = 1, JMN - if( GLAT(J) .GT. lat1 ) then - jst = j - exit - endif - enddo - do j = 1, JMN - if( GLAT(J) .GT. lat2 ) then - jen = j - exit - endif - enddo - - - ist = lon1/delxn + 1 - ien = lon2/delxn - if(ist .le.0) ist = ist + IMN - if(ien < ist) ien = ien + IMN -! if(verbose) print*, "ist,ien=",ist,ien,jst,jen - - !--- compute average oro - xnsum = 0 - XW1 = 0 - XW2 = 0 - do j = jst,jen - do i1 = 1, ien - ist + 1 - i = ist + i1 -1 - if( i .LE. 0) i = i + imn - if( i .GT. IMN) i = i - imn - XNSUM = XNSUM + 1. - HEIGHT = FLOAT(ZAVG(I,J)) - IF(HEIGHT.LT.-990.) HEIGHT = 0.0 - XW1 = XW1 + HEIGHT - XW2 = XW2 + HEIGHT ** 2 - enddo - enddo - var = SQRT(MAX(XW2/XNSUM-(XW1/XNSUM)**2,0.)) - HC = 1116.2 - 0.878 * VAR - xnsum1 = 0 - xnsum2 = 0 - do j = jst, jen - do i1= 1, ien-ist+1 - i = ist + i1 -1 - if( i .LE. 0) i = i + imn - if( i .GT. IMN) i = i - imn - HEIGHT = FLOAT(ZAVG(I,J)) - IF ( HEIGHT .gt. HC ) xnsum1 = xnsum1 + 1 - xnsum2 = xnsum2 + 1 - enddo - enddo - - end subroutine get_xnsum2 - - - subroutine get_xnsum3(lon1,lat1,lon2,lat2,IMN,JMN, - & glat,zavg,zslm,delxn,xnsum1,xnsum2,HC) - implicit none - - real, intent(out) :: xnsum1,xnsum2 - real lon1,lat1,lon2,lat2,oro,delxn - integer IMN,JMN - real glat(JMN) - integer zavg(IMN,JMN),zslm(IMN,JMN) - integer i, j, ist, ien, jst, jen, i1 - real HEIGHT, HC - real XW1,XW2,slm,xnsum - !---figure out ist,ien,jst,jen - ! if lat1 or lat 2 is 90 degree. set jst = JMN - jst = JMN - jen = JMN - do j = 1, JMN - if( GLAT(J) .GT. lat1 ) then - jst = j - exit - endif - enddo - do j = 1, JMN - if( GLAT(J) .GT. lat2 ) then - jen = j - exit - endif - enddo - - - ist = lon1/delxn + 1 - ien = lon2/delxn - if(ist .le.0) ist = ist + IMN - if(ien < ist) ien = ien + IMN -! if(verbose) print*, "ist,ien=",ist,ien,jst,jen - - xnsum1 = 0 - xnsum2 = 0 - do j = jst, jen - do i1= 1, ien-ist+1 - i = ist + i1 -1 - if( i .LE. 0) i = i + imn - if( i .GT. IMN) i = i - imn - HEIGHT = FLOAT(ZAVG(I,J)) - IF ( HEIGHT .gt. HC ) xnsum1 = xnsum1 + 1 - xnsum2 = xnsum2 + 1 - enddo - enddo - - end subroutine get_xnsum3 - - subroutine nanc(a,l,c) -c compiler opt TRAPS= -qinitauto=FF911299 -qflttrap=ov:zero:inv:en -qsig trap -c or call subroutine below -c subroutine to report NaNS and NaNQ within an address -c range for real*8 words. -c as written the routine prints a single line for each call -c and prints a message and returns to the caller on detection of the FIRST -c NaN in the range. The message is passed in the third -c argument. If no NaN values are found it returns silently. -c A real*4 version can be created by making A real*4 - -c arguments (all are input only) -c -c A real*8 variable or array -c L number of words to scan (length of array) -c C distinctive message set in caller to indicate where -c the routine was called. -c - integer inan1,inan2,inan3,inan4,inaq1,inaq2,inaq3,inaq4 - real word - integer itest - equivalence (itest,word) -c -c signaling NaN - data inan1/x'7F800001'/ - data inan2/x'7FBFFFFF'/ - data inan3/x'FF800001'/ - data inan4/x'FFBFFFFF'/ -c -c quiet NaN -c - data inaq1/x'7FC00000'/ - data inaq2/x'7FFFFFFF'/ - data inaq3/x'FFC00000'/ - data inaq4/x'FFFFFFFF'/ -c - real(kind=8)a(l),rtc,t1,t2 - character*24 cn - character*(*) c - t1=rtc() -cgwv print *, ' nanc call ',c - do k=1,l - word=a(k) - if( (itest .GE. inan1 .AND. itest .LE. inan2) .OR. - * (itest .GE. inan3 .AND. itest .LE. inan4) ) then - print *,' NaNs detected at word',k,' ',c - return - endif - if( (itest .GE. inaq1 .AND. itest .LE. inaq2) .OR. - * (itest .GE. inaq3 .AND. itest .LE. inaq4) ) then - print *,' NaNq detected at word',k,' ',c - return - endif - - 101 format(e20.10) - end do - t2=rtc() -cgwv print 102,l,t2-t1,c - 102 format(' time to check ',i9,' words is ',f10.4,' ',a24) - return - end - real function timef - character(8) :: date - character(10) :: time - character(5) :: zone - integer,dimension(8) :: values - integer :: total - real :: elapsed - call date_and_time(date,time,zone,values) - total=(3600*values(5))+(60*values(6)) - * +values(7) - elapsed=float(total) + (1.0e-3*float(values(8))) - timef=elapsed - return - end diff --git a/sorc/orog.fd/netcdf_io.F90 b/sorc/orog.fd/netcdf_io.F90 deleted file mode 100755 index b582559c18..0000000000 --- a/sorc/orog.fd/netcdf_io.F90 +++ /dev/null @@ -1,175 +0,0 @@ -!------------------------------------------------------------------------------- -! write out data in netcdf format - subroutine write_netcdf(im, jm, slm, land_frac, oro, orf, hprime, ntiles, tile, geolon, geolat, lon, lat) - implicit none - integer, intent(in):: im, jm, ntiles, tile - real, intent(in) :: lon(im), lat(jm) - real, intent(in), dimension(im,jm) :: slm, oro, orf, geolon, geolat, land_frac - real, intent(in), dimension(im,jm,14):: hprime - character(len=128) :: outfile - integer :: error, ncid, i - integer :: header_buffer_val = 16384 - integer :: fsize=65536, inital = 0 - integer :: dim1, dim2 - integer :: dim_lon, dim_lat - integer :: id_lon,id_lat,id_geolon,id_geolat - integer :: id_slmsk,id_orog_raw,id_orog_filt,id_land_frac - integer :: id_stddev,id_convex - integer :: id_oa1,id_oa2,id_oa3,id_oa4 - integer :: id_ol1,id_ol2,id_ol3,id_ol4 - integer :: id_theta,id_gamma,id_sigma,id_elvmax - include "netcdf.inc" - - if(ntiles > 1) then - write(outfile, '(a,i4.4,a)') 'out.oro.tile', tile, '.nc' - else - outfile = "out.oro.nc" - endif - - dim1=size(lon,1) - dim2=size(lat,1) - write(6,*) ' netcdf dims are: ',dim1, dim2 - - !--- open the file - error = NF__CREATE(outfile, IOR(NF_NETCDF4,NF_CLASSIC_MODEL), inital, fsize, ncid) - call netcdf_err(error, 'Creating file '//trim(outfile) ) - !--- define dimension - error = nf_def_dim(ncid, 'lon', dim1, dim_lon) - call netcdf_err(error, 'define dimension lon for file='//trim(outfile) ) - error = nf_def_dim(ncid, 'lat', dim2, dim_lat) - call netcdf_err(error, 'define dimension lat for file='//trim(outfile) ) - - !--- define field - error = nf_def_var(ncid, 'lon', NF_FLOAT, 1, (/dim_lon/), id_lon) - call netcdf_err(error, 'define var lon for file='//trim(outfile) ) - error = nf_put_att_text(ncid, id_lon, "cartesian_axis", 1, "X") - call netcdf_err(error, 'put att cartesian_axis for lon for file='//trim(outfile) ) - error = nf_def_var(ncid, 'lat', NF_FLOAT, 1, (/dim_lat/), id_lat) - call netcdf_err(error, 'define var lat for file='//trim(outfile) ) - error = nf_put_att_text(ncid, id_lat, "cartesian_axis", 1, "Y") - call netcdf_err(error, 'put att cartesian_axis for lat for file='//trim(outfile) ) - - error = nf_def_var(ncid, 'geolon', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_geolon) - call netcdf_err(error, 'define var geolon for file='//trim(outfile) ) - error = nf_def_var(ncid, 'geolat', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_geolat) - call netcdf_err(error, 'define var geolat for file='//trim(outfile) ) -!---slmsk - error = nf_def_var(ncid, 'slmsk', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_slmsk) - call netcdf_err(error, 'define var slmsk for file='//trim(outfile) ) -!--- land_frac - error = nf_def_var(ncid, 'land_frac', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_land_frac) - call netcdf_err(error, 'define var land_frac for file='//trim(outfile) ) - -!---orography - raw - error = nf_def_var(ncid, 'orog_raw', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_orog_raw) - call netcdf_err(error, 'define var orog_raw for file='//trim(outfile) ) -!---orography - filtered - error = nf_def_var(ncid, 'orog_filt', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_orog_filt) - call netcdf_err(error, 'define var orog_filt for file='//trim(outfile) ) -!---stddev - error = nf_def_var(ncid, 'stddev', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_stddev) - call netcdf_err(error, 'define var stddev for file='//trim(outfile) ) -!---convexity - error = nf_def_var(ncid, 'convexity', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_convex) - call netcdf_err(error, 'define var convexity for file='//trim(outfile) ) -!---oa1 -> oa4 - error = nf_def_var(ncid, 'oa1', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_oa1) - call netcdf_err(error, 'define var oa1 for file='//trim(outfile) ) - error = nf_def_var(ncid, 'oa2', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_oa2) - call netcdf_err(error, 'define var oa2 for file='//trim(outfile) ) - error = nf_def_var(ncid, 'oa3', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_oa3) - call netcdf_err(error, 'define var oa3 for file='//trim(outfile) ) - error = nf_def_var(ncid, 'oa4', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_oa4) - call netcdf_err(error, 'define var oa4 for file='//trim(outfile) ) -!---ol1 -> ol4 - error = nf_def_var(ncid, 'ol1', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_ol1) - call netcdf_err(error, 'define var ol1 for file='//trim(outfile) ) - error = nf_def_var(ncid, 'ol2', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_ol2) - call netcdf_err(error, 'define var ol2 for file='//trim(outfile) ) - error = nf_def_var(ncid, 'ol3', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_ol3) - call netcdf_err(error, 'define var ol3 for file='//trim(outfile) ) - error = nf_def_var(ncid, 'ol4', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_ol4) - call netcdf_err(error, 'define var ol4 for file='//trim(outfile) ) -!---theta gamma sigma elvmax - error = nf_def_var(ncid, 'theta', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_theta) - call netcdf_err(error, 'define var theta for file='//trim(outfile) ) - error = nf_def_var(ncid, 'gamma', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_gamma) - call netcdf_err(error, 'define var gamma for file='//trim(outfile) ) - error = nf_def_var(ncid, 'sigma', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_sigma) - call netcdf_err(error, 'define var sigma for file='//trim(outfile) ) - error = nf_def_var(ncid, 'elvmax', NF_FLOAT, 2, (/dim_lon,dim_lat/), id_elvmax) - call netcdf_err(error, 'define var elvmax for file='//trim(outfile) ) - - error = nf__enddef(ncid, header_buffer_val,4,0,4) - call netcdf_err(error, 'end meta define for file='//trim(outfile) ) - - !--- write out data - error = nf_put_var_double( ncid, id_lon, lon(:)) - call netcdf_err(error, 'write var lon for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_lat, lat(:)) - call netcdf_err(error, 'write var lat for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_geolon, geolon(:dim1,:dim2)) - call netcdf_err(error, 'write var geolon for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_geolat, geolat(:dim1,:dim2)) - call netcdf_err(error, 'write var geolat for file='//trim(outfile) ) - - error = nf_put_var_double( ncid, id_slmsk, slm(:dim1,:dim2)) - call netcdf_err(error, 'write var slmsk for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_land_frac, land_frac(:dim1,:dim2)) - call netcdf_err(error, 'write var land_frac for file='//trim(outfile) ) - - error = nf_put_var_double( ncid, id_orog_raw, oro(:dim1,:dim2)) - call netcdf_err(error, 'write var orog_raw for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_orog_filt, orf(:dim1,:dim2)) - call netcdf_err(error, 'write var orog_filt for file='//trim(outfile) ) - - error = nf_put_var_double( ncid, id_stddev, hprime(:dim1,:dim2,1)) - call netcdf_err(error, 'write var stddev for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_convex, hprime(:dim1,:dim2,2)) - call netcdf_err(error, 'write var convex for file='//trim(outfile) ) - - error = nf_put_var_double( ncid, id_oa1, hprime(:dim1,:dim2,3)) - call netcdf_err(error, 'write var oa1 for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_oa2, hprime(:dim1,:dim2,4)) - call netcdf_err(error, 'write var oa2 for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_oa3, hprime(:dim1,:dim2,5)) - call netcdf_err(error, 'write var oa3 for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_oa4, hprime(:dim1,:dim2,6)) - call netcdf_err(error, 'write var oa4 for file='//trim(outfile) ) - - error = nf_put_var_double( ncid, id_ol1, hprime(:dim1,:dim2,7)) - call netcdf_err(error, 'write var ol1 for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_ol2, hprime(:dim1,:dim2,8)) - call netcdf_err(error, 'write var ol2 for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_ol3, hprime(:dim1,:dim2,9)) - call netcdf_err(error, 'write var ol3 for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_ol4, hprime(:dim1,:dim2,10)) - call netcdf_err(error, 'write var ol4 for file='//trim(outfile) ) - - error = nf_put_var_double( ncid, id_theta, hprime(:dim1,:dim2,11)) - call netcdf_err(error, 'write var theta for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_gamma, hprime(:dim1,:dim2,12)) - call netcdf_err(error, 'write var gamma for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_sigma, hprime(:dim1,:dim2,13)) - call netcdf_err(error, 'write var sigma for file='//trim(outfile) ) - error = nf_put_var_double( ncid, id_elvmax, hprime(:dim1,:dim2,14)) - call netcdf_err(error, 'write var elvmax for file='//trim(outfile) ) - - error = nf_close(ncid) - call netcdf_err(error, 'close file='//trim(outfile) ) - - end subroutine - -!------------------------------------------------------------------------------- - subroutine netcdf_err( err, string ) - integer, intent(in) :: err - character(len=*), intent(in) :: string - character(len=256) :: errmsg - include "netcdf.inc" - - if( err.EQ.NF_NOERR )return - errmsg = NF_STRERROR(err) - print*, trim(string), ': ', trim(errmsg) - - return - end subroutine netcdf_err diff --git a/sorc/orog.fd/resevod.h b/sorc/orog.fd/resevod.h deleted file mode 100755 index 5943e28bee..0000000000 --- a/sorc/orog.fd/resevod.h +++ /dev/null @@ -1,7 +0,0 @@ - integer latg,latg2 - integer lonf - real(kind=kind_evod) rerth -cc - parameter ( lonf = 192 ) - parameter ( latg = 94 ) - parameter ( latg2 = latg/2 ) diff --git a/sorc/overpdtg2.fd/makefile.theia b/sorc/overpdtg2.fd/makefile.theia deleted file mode 100755 index 7aa65f6e26..0000000000 --- a/sorc/overpdtg2.fd/makefile.theia +++ /dev/null @@ -1,55 +0,0 @@ -SHELL=/bin/sh -# -SRCS= overpdtg2.f -OBJS= overpdtg2.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -#LDFLAGS = -p -bnoquiet -bloadmap:mug -#LDFLAGS = -pg - -LIBS= ${G2_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${JASPER_LIB} ${PNG_LIB} ${Z_LIB} - -CMD = overpdtg2 -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -I ${G2_INC4} -assume noold_ldout_format -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -install: - mkdir -p ../../exec - cp -p $(CMD) ../../exec - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/overpdtg2.fd/makefile.wcoss b/sorc/overpdtg2.fd/makefile.wcoss deleted file mode 100755 index 7aa65f6e26..0000000000 --- a/sorc/overpdtg2.fd/makefile.wcoss +++ /dev/null @@ -1,55 +0,0 @@ -SHELL=/bin/sh -# -SRCS= overpdtg2.f -OBJS= overpdtg2.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -#LDFLAGS = -p -bnoquiet -bloadmap:mug -#LDFLAGS = -pg - -LIBS= ${G2_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${JASPER_LIB} ${PNG_LIB} ${Z_LIB} - -CMD = overpdtg2 -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -I ${G2_INC4} -assume noold_ldout_format -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -install: - mkdir -p ../../exec - cp -p $(CMD) ../../exec - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/overpdtg2.fd/makefile.wcoss_cray b/sorc/overpdtg2.fd/makefile.wcoss_cray deleted file mode 100755 index 9d7a8603d8..0000000000 --- a/sorc/overpdtg2.fd/makefile.wcoss_cray +++ /dev/null @@ -1,55 +0,0 @@ -SHELL=/bin/sh -# -SRCS= overpdtg2.f -OBJS= overpdtg2.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ftn -#LDFLAGS = -p -bnoquiet -bloadmap:mug -#LDFLAGS = -pg - -LIBS= ${G2_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${JASPER_LIB} ${PNG_LIB} ${Z_LIB} - -CMD = overpdtg2 -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -I ${G2_INC4} -assume noold_ldout_format -axCORE-AVX2 -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -install: - mkdir -p ../../exec - cp -p $(CMD) ../../exec - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/overpdtg2.fd/makefile.wcoss_dell_p3 b/sorc/overpdtg2.fd/makefile.wcoss_dell_p3 deleted file mode 100755 index 5df68e2159..0000000000 --- a/sorc/overpdtg2.fd/makefile.wcoss_dell_p3 +++ /dev/null @@ -1,55 +0,0 @@ -SHELL=/bin/sh -# -SRCS= overpdtg2.f -OBJS= overpdtg2.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -#LDFLAGS = -p -bnoquiet -bloadmap:mug -#LDFLAGS = -pg - -LIBS= ${G2_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${JASPER_LIB} ${PNG_LIB} ${Z_LIB} - -CMD = overpdtg2 -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -I ${G2_INC4} -assume noold_ldout_format -axCORE-AVX2 -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -install: - mkdir -p ../../exec - cp -p $(CMD) ../../exec - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/overpdtg2.fd/overpdtg2.f b/sorc/overpdtg2.fd/overpdtg2.f deleted file mode 100755 index 62e9a7e69f..0000000000 --- a/sorc/overpdtg2.fd/overpdtg2.f +++ /dev/null @@ -1,323 +0,0 @@ - program overpdtg2 -C SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: OVERPDTG2 -C PRGMMR: BOI VUONG ORG: SIB DATE: 2014-10-27 -C -C ABSTRACT: THIS PROGRAM READS AN ENTIRE GRIB2 FILE FROM UNIT 11 -C AND WRITES IT BACK OUT TO UNIT 51, REPLACING THE INTERNAL -C TYPE OF FIXED SURFACE LEVEL FROM 200 TO 10 (Entire atmosphere) -C TO ONLT FIELD PWAT. IT READS IN FROM UNIT 5 IN BASE 10. -C -C PROGRAM HISTORY LOG: -C 2010-09-01 BOI VUONG -C 2014-10-27 BOI VUONG Modified program overpdtg2 to change -C type of fixed surface from 200 to 10200 to 10 (Entire atmosphere) for field PWAT in -C AWIPS grids products -C USAGE: -C INPUT ARGUMENT LIST: -C UNIT 5 ID - Type of fixed surface octet(10) in PDT 4.0 (In base 10) -C UNIT 11 Fortran unit number of input GRIB2 file -C -C OUTPUT FILES: -C UNIT 51 Output GRIB2 file -C -C SUBPROGRAMS CALLED: (LIST ALL CALLED FROM ANYWHERE IN CODES) -C -C LIBRARY: -C W3LIB - errexit -C BACIO - baopenr, baopenw, baclose -C -C REMARKS: None -C -C ATTRIBUTES: -C LANGUAGE: Fortran 90 -C MACHINE: IBM SP -C -C - use params - use params_ecmwf - use grib_mod - use re_alloc - - integer :: ifl1,ifl3 - integer :: ipack - character * 6 envvar -C - CHARACTER(len=1),pointer,dimension(:) :: cgrib - CHARACTER(len=8) :: ctemp - type(gribfield) :: gfld,prevfld - integer,dimension(200) :: jids,jpdt,jgdt - character(len=80) :: gfilein,ftemplate,gfileout - integer :: listsec0(2)=(/0,2/) - integer :: igds(5)=(/0,0,0,0,0/),previgds(5) - integer :: idrstmpl(200), id - integer :: currlen=1000000 - logical :: unpack=.true. - logical :: open_grb=.false. -! -! --- Initialize Variables --- -! - gfld%idsect => NULL() - gfld%local => NULL() - gfld%list_opt => NULL() - gfld%igdtmpl => NULL() - gfld%ipdtmpl => NULL() - gfld%coord_list => NULL() - gfld%idrtmpl => NULL() - gfld%bmap => NULL() - gfld%fld => NULL() - - allocate(cgrib(currlen)) -! -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! -! Open input and output grib files -! - IFL1=11 - IFL3=51 -C -C Read GRIB2 data file names from the FORTnn -C environment variables, and open the files. -C - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') ifl1 - call getenv(envvar,gfilein) - CALL BAOPENR(ifl1,gfilein,IOS) - if (IOS.NE.0) then - call errmsg('overpdtg2: cannot open input GRIB file '// - & gfilein) - call errexit(3) - endif -C -C Write output GRIB2 file name from FORT -C environment variable, and open file. -C - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') ifl3 - call getenv(envvar,gfileout) - CALL BAOPENW(ifl3,gfileout,IOS) - if (IOS.NE.0) then - call errmsg('overpdtg2: cannot open output GRIB file '// - & gfileout) - call errexit(4) - endif -C - read *,id ! input in Model Indentifier (IN BASE 10) -C -C - ifli1=0 - jdisc=-1 - jids=-9999 - jpdt=-9999 -! PWAT (Disc.=0; Cat=1, Parm=3) - jgdt=-9999 - jpdtn=-1 - jgdtn=-1 -! - npoints=0 - icount=0 - jskp=0 !0 TO SEARCH FROM BEGINNING - iret = 0 -! -! Search for PWAT (Precipitable Water) at fixed surface -! level 200 (Entire atmosphere) in PDT 4.0 -! PWAT (Disc.=0; Cat=1, Parm=3) -! - foreachinputrecord: do - prevfld=gfld - call getgb2(ifl1,ifli1,jskp,jdisc,jids,jpdtn,jpdt,jgdtn,jgdt, - & unpack,jskp,gfld,iret) - if ( iret.ne.0) then - if ( iret.eq.99 ) exit - print *,' getgb2 error = ',iret - cycle - endif -! -! This program uses only for AWIPS grid products -! for field PWAT to change type of fixed surface -! from 200 to 10 (Entire atmosphere) PWAT (Disc.=0; Cat=1, Parm=3) -! REPLACES TYPE OF FIXED SURFACE LEVEl IN PRODUCT TEMPLATE 4.0 -! - if (gfld%ipdtmpl(1).eq.1.AND.gfld%ipdtmpl(2).eq.3 - & .AND.gfld%ipdtmpl(3).eq.2) then - if (gfld%ipdtmpl(10).eq.200) then - print *,' ' - write(6,'(A,I0,A,150(1X,I0))') - & ' OLD PDT 4.',gfld%ipdtnum,' :', - & gfld%ipdtmpl(1:gfld%ipdtlen) - - gfld%ipdtmpl(10)=id - - write(6,'(A,I0,A,150(1x,I0))') - & ' NEW PDT 4.',gfld%ipdtnum,' :', - & gfld%ipdtmpl(1:gfld%ipdtlen) - icount=icount+1 - end if - end if -! -! Determine packing information from GRIB2 file -! The default packing is 31 -! -! print *,' gfld%idrtnum = ', gfld%idrtnum -! - ! Set DRT info ( packing info ) - if ( gfld%idrtnum.eq.0 ) then ! Simple packing - ipack = 0 - elseif ( gfld%idrtnum.eq.2 ) then ! Complex packing - ipack = 2 - elseif ( gfld%idrtnum.eq.3 ) then ! Complex and spatial packing - ipack = 31 - elseif ( gfld%idrtnum.eq.40.or.gfld%idrtnum.eq.15 ) then ! JPEG 2000 packing - ipack = 40 - elseif ( gfld%idrtnum.eq.41 ) then ! PNG packing - ipack = 41 - endif - ! - ! Ensure that cgrib array is large enough - ! -C print *,' gfld%ifldnum = ', gfld%ifldnum -C print *,' gfld%ngrdpts = ', gfld%ngrdpts - - if (gfld%ifldnum == 1 ) then ! start new GRIB2 message - npoints=gfld%ngrdpts - else - npoints=npoints+gfld%ngrdpts - endif - newlen=npoints*4 - if ( newlen.gt.currlen ) then - !if (allocated(cgrib)) deallocate(cgrib) - !allocate(cgrib(newlen),stat=is) - call realloc(cgrib,currlen,newlen,is) - currlen=newlen - endif - if (gfld%ifldnum == 1 ) then ! start new GRIB2 message - if (open_grb) then ! close previous GRIB2 message first - call gribend(cgrib,lcgrib,lengrib,ierr) - if (ierr.ne.0) then - write(6,*) ' ERROR ending new GRIB2 message = ',ierr - cycle - endif - open_grb=.false. - call wryte(ifl3,lengrib,cgrib) - endif - ! - ! Create new GRIB Message - ! - listsec0(1)=gfld%discipline - listsec0(2)=gfld%version -C - call gribcreate(cgrib,lcgrib,listsec0,gfld%idsect,ierr) - if (ierr.ne.0) then - write(6,*) ' ERROR creating new GRIB2 field = ',ierr - cycle - endif - open_grb=.true. - endif - ! - ! Add grid to GRIB message, if previous grid in same - ! message is not the same. - ! - previgds=igds - igds(1)=gfld%griddef - igds(2)=gfld%ngrdpts - igds(3)=gfld%numoct_opt - igds(4)=gfld%interp_opt - igds(5)=gfld%igdtnum - if ( .NOT. associated(gfld%list_opt) ) - & allocate(gfld%list_opt(1)) - if (gfld%ifldnum == 1 ) then ! add grid to GRIB2 message - call addgrid(cgrib,lcgrib,igds,gfld%igdtmpl,gfld%igdtlen, - & gfld%list_opt,gfld%num_opt,ierr) - else ! check if previous grid is the same as the current - if ( gfld%igdtlen.ne.prevfld%igdtlen .OR. - & gfld%num_opt.ne.prevfld%num_opt .OR. - & any(igds.ne.previgds) .OR. - & any(gfld%igdtmpl(1:gfld%igdtlen).NE. - & prevfld%igdtmpl(1:prevfld%igdtlen)) .OR. - & any(gfld%list_opt(1:gfld%num_opt).NE. - & prevfld%list_opt(1:prevfld%num_opt)) ) then - call addgrid(cgrib,lcgrib,igds,gfld%igdtmpl,gfld%igdtlen, - & gfld%list_opt,gfld%num_opt,ierr) - endif - endif - if (ierr.ne.0) then - write(6,*) ' ERROR adding GRIB2 grid = ',ierr - cycle - endif - call gf_free(prevfld) - idrstmpl=0 - ! - ! Add field to GRIB message - ! - ! Set DRT info ( packing info ) - if ( ipack.eq.0 ) then - idrsnum=0 - elseif ( ipack.eq.2 ) then - idrsnum=2 - idrstmpl(6)=1 - elseif ( ipack.eq.31.OR.ipack.eq.32 ) then - idrsnum=ipack/10 - idrstmpl(6)=1 - idrstmpl(17)=mod(ipack,10) ! order of s.d. - elseif ( ipack.eq.40 .OR. ipack.eq.41 .OR. - & ipack.eq.40000 .OR. ipack.eq.40010 ) then - idrsnum=ipack - idrstmpl(6)=0 - idrstmpl(7)=255 - else - idrsnum=3 - idrstmpl(17)=1 ! order of s.d. - idrstmpl(6)=1 ! general group split - ctemp=param_get_abbrev(gfld%discipline,gfld%ipdtmpl(1), - & gfld%ipdtmpl(2)) - if (ctemp.eq.'A PCP ') idrsnum=2 - endif - idrstmpl(2)=gfld%idrtmpl(2) - idrstmpl(3)=gfld%idrtmpl(3) - if ( .NOT. associated(gfld%coord_list) ) - & allocate(gfld%coord_list(1)) - if ( gfld%ibmap.ne.0 .AND. gfld%ibmap.ne.254) then - if ( .NOT. associated(gfld%bmap) ) allocate(gfld%bmap(1)) - endif - ! - ! Add field to GRIB message - ! - call addfield(cgrib,lcgrib,gfld%ipdtnum,gfld%ipdtmpl, - & gfld%ipdtlen,gfld%coord_list,gfld%num_coord, - & idrsnum,idrstmpl,200, - & gfld%fld,gfld%ngrdpts,gfld%ibmap,gfld%bmap,ierr) - if (ierr.ne.0) then - write(6,*) ' ERROR adding GRIB2 field = ',ierr - cycle - endif - enddo foreachinputrecord - - if (open_grb) then ! close last GRIB2 message - call gribend(cgrib,lcgrib,lengrib,ierr) - if (ierr.ne.0) then - write(6,*) ' ERROR ending new GRIB2 message = ',ierr - if (associated(cgrib)) deallocate(cgrib) - call gf_free(gfld) - call gf_free(prevfld) -! return - endif - open_grb=.false. - call wryte(ifl3,lengrib,cgrib) - endif - - if (associated(cgrib)) deallocate(cgrib) - call gf_free(gfld) - call gf_free(prevfld) -! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -! close grib files -! - print *, ' ' - print *, ' Total Number of Records Found = ',icount - print *, ' ' -C - CALL BACLOSE(ifl1,IOS) - CALL BACLOSE(ifl3,IOS) - - stop - end diff --git a/sorc/overpdtg2.fd/sample.script b/sorc/overpdtg2.fd/sample.script deleted file mode 100755 index 3d66227c14..0000000000 --- a/sorc/overpdtg2.fd/sample.script +++ /dev/null @@ -1,16 +0,0 @@ -# THIS SCRIPT READS A FORECAST FILE (UNIT 11), REPLACESTYPE OF FIXED -# SURFACE LEVEL IN PRODUCT TEMPLATE 4.x FROM A ID FILE UNIT 51. -# STANDARD INPUT IS A ID (2-DIGIT INTEGER), -# FOR EXAMPLE: 10 (Entire atmosphere) for field PWAT in -# AWIPS grids products - -set -x - -# cp /com/gfs/prod/gfs.${PDY}/gfs.t00z.pgrb2.1p00.f012 . - -export FORT11=gfs.t00z.pgrb2.1p00.f012 -export FORT51=gfs.t00z.pgrb2.1p00.f012_new - -overpdtg2 << EOF -10 -EOF diff --git a/sorc/partial_build.sh b/sorc/partial_build.sh index f0f0bc23b6..f61e0639c4 100755 --- a/sorc/partial_build.sh +++ b/sorc/partial_build.sh @@ -2,20 +2,21 @@ # define the array of the name of build program # declare -a Build_prg=("Build_libs" "Build_fv3gfs" \ - "Build_gsi" "Build_ncep_post" \ + "Build_gsi" \ + "Build_gldas" \ + "Build_ncep_post" \ + "Build_ufs_utils" \ + "Build_gldas" \ "Build_gfs_wafs" \ - "Build_gdas" "Build_nems_util" \ - "Build_chgres" "Build_cycle" \ - "Build_sfcanl_nsttfchg" \ - "Build_orog" "Build_tropcy" \ - "Build_nctools" "Build_enkf_chgres_recenter" \ - "Build_gfs_fbwndgfs" "Build_gfs_overpdtg2" \ - "Build_gfs_wintemv" \ - "Build_gfs_bufrsnd" "Build_emcsfc" \ - "Build_fv3nc2nemsio" "Build_regrid_nemsio" \ - "Build_gfs_util" \ - "Build_prod_util" \ - "Build_grib_util") + "Build_gaussian_sfcanl" \ + "Build_tropcy" \ + "Build_enkf_chgres_recenter" \ + "Build_enkf_chgres_recenter_nc" \ + "Build_gfs_fbwndgfs" \ + "Build_gfs_bufrsnd" \ + "Build_fv3nc2nemsio" \ + "Build_regrid_nemsio" \ + "Build_gfs_util") # # function parse_cfg: read config file and retrieve the values diff --git a/sorc/relocate_mv_nvortex.fd/BOUND.f b/sorc/relocate_mv_nvortex.fd/BOUND.f deleted file mode 100755 index 6475438373..0000000000 --- a/sorc/relocate_mv_nvortex.fd/BOUND.f +++ /dev/null @@ -1,28 +0,0 @@ - SUBROUTINE BOUND(NMX,XR,ro) -C - PARAMETER (IMX=41 , JMX=41) -C - DIMENSION XR(NMX),ro(nmx) - COMMON /XXX/ XF(IMX,JMX),XC,YC,DX,DY - COMMON /POSIT/ XOLD,YOLD - PI = 4.*ATAN(1.0) -c fact=cos(yold*pi/180.) - fact=1.0 - DO 10 I=1,NMX - THETA= 2.*PI*FLOAT(I-1)/FLOAT(NMX) - X=RO(i)/fact*COS(THETA)+XC +1. - Y=RO(i)*SIN(THETA)+YC +1. - IX=INT(X/DX) - IY=INT(Y/DY) - IX1=IX+1 - IY1=IY+1 - P=X/DX-FLOAT(IX) - Q=Y/DY-FLOAT(IY) - XR(I)=(1.-P)*(1.-Q)*XF(IX,IY) +(1.-P)*Q*XF(IX,IY+1) - 1 + (1.-Q)*P*XF(IX+1,IY) + P*Q*XF(IX+1,IY+1) -c write(6,*) 'QLIU TEST, BOUND=',XR(I),XF(IX,IY),XF(IX,IY+1), -c 2 XF(IX+1,IY),XF(IX+1,IY+1),I - -10 CONTINUE - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/FDUMP.f b/sorc/relocate_mv_nvortex.fd/FDUMP.f deleted file mode 100755 index 644e933fdb..0000000000 --- a/sorc/relocate_mv_nvortex.fd/FDUMP.f +++ /dev/null @@ -1,24 +0,0 @@ - SUBROUTINE FDUMP -C***BEGIN PROLOGUE FDUMP -C***DATE WRITTEN 790801 (YYMMDD) -C***REVISION DATE 820801 (YYMMDD) -C***CATEGORY NO. Z -C***KEYWORDS ERROR,XERROR PACKAGE -C***AUTHOR JONES, R. E., (SNLA) -C***PURPOSE Symbolic dump (should be locally written). -C***DESCRIPTION -C ***Note*** Machine Dependent Routine -C FDUMP is intended to be replaced by a locally written -C version which produces a symbolic dump. Failing this, -C it should be replaced by a version which prints the -C subprogram nesting list. Note that this dump must be -C printed on each of up to five files, as indicated by the -C XGETUA routine. See XSETUA and XGETUA for details. -C -C Written by Ron Jones, with SLATEC Common Math Library Subcommittee -C Latest revision --- 23 May 1979 -C***ROUTINES CALLED (NONE) -C***END PROLOGUE FDUMP -C***FIRST EXECUTABLE STATEMENT FDUMP - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/H12.f b/sorc/relocate_mv_nvortex.fd/H12.f deleted file mode 100755 index 3a3323436f..0000000000 --- a/sorc/relocate_mv_nvortex.fd/H12.f +++ /dev/null @@ -1,137 +0,0 @@ - SUBROUTINE H12(MODE,LPIVOT,L1,M,U,IUE,UP,C,ICE,ICV,NCV) -C***BEGIN PROLOGUE H12 -C***REFER TO HFTI,LSEI,WNNLS -C -C SUBROUTINE H12 (MODE,LPIVOT,L1,M,U,IUE,UP,C,ICE,ICV,NCV) -C -C C.L.Lawson and R.J.Hanson, Jet Propulsion Laboratory, 1973 Jun 12 -C to appear in 'Solving Least Squares Problems', Prentice-Hall, 1974 -C -C Modified at SANDIA LABS, May 1977, to -- -C -C 1) Remove double precision accumulation, and -C 2) Include usage of the Basic Linear Algebra Package for -C vectors longer than a particular threshold. -C -C Construction and/or application of a single -C Householder transformation.. Q = I + U*(U**T)/B -C -C MODE = 1 or 2 to select algorithm H1 or H2 . -C LPIVOT is the index of the pivot element. -C L1,M If L1 .LE. M the transformation will be constructed to -C zero elements indexed from L1 through M. If L1 GT. M -C THE SUBROUTINE DOES AN IDENTITY TRANSFORMATION. -C U(),IUE,UP On entry to H1 U() contains the pivot vector. -C IUE is the storage increment between elements. -C On exit from H1 U() and UP -C contain quantities defining the vector U of the -C Householder transformation. On entry to H2 U() -C and UP should contain quantities previously computed -C by H1. These will not be modified by H2. -C C() On entry to H1 or H2 C() contains a matrix which will be -C regarded as a set of vectors to which the Householder -C transformation is to be applied. On exit C() contains the -C set of transformed vectors. -C ICE Storage increment between elements of vectors in C(). -C ICV Storage increment between vectors in C(). -C NCV Number of vectors in C() to be transformed. If NCV .LE. 0 -C no operations will be done on C(). -C***ROUTINES CALLED SAXPY,SDOT,SSWAP -C***END PROLOGUE H12 -c - USE setparms -c - DIMENSION U(IUE,M), C(1) -C***FIRST EXECUTABLE STATEMENT H12 - ONE=1. -C - IF (0.GE.LPIVOT.OR.LPIVOT.GE.L1.OR.L1.GT.M) RETURN - CL=ABS(U(1,LPIVOT)) - IF (MODE.EQ.2) GO TO 60 -C ****** CONSTRUCT THE TRANSFORMATION. ****** - DO 10 J=L1,M - 10 CL=AMAX1(ABS(U(1,J)),CL) - IF (CL) 130,130,20 - 20 CLINV=ONE/CL - SM=(U(1,LPIVOT)*CLINV)**2 - DO 30 J=L1,M - 30 SM=SM+(U(1,J)*CLINV)**2 - CL=CL*SQRT(SM) - IF (U(1,LPIVOT)) 50,50,40 - 40 CL=-CL - 50 UP=U(1,LPIVOT)-CL - U(1,LPIVOT)=CL - GO TO 70 -C ****** APPLY THE TRANSFORMATION I+U*(U**T)/B TO C. ****** -C - 60 IF (CL) 130,130,70 - 70 IF (NCV.LE.0) RETURN - B=UP*U(1,LPIVOT) -C B MUST BE NONPOSITIVE HERE. IF B = 0., RETURN. -C - IF (B) 80,130,130 - 80 B=ONE/B - MML1P2=M-L1+2 - IF (MML1P2.GT.20) GO TO 140 - I2=1-ICV+ICE*(LPIVOT-1) - INCR=ICE*(L1-LPIVOT) - DO 120 J=1,NCV - I2=I2+ICV - I3=I2+INCR - I4=I3 - SM=C(I2)*UP - DO 90 I=L1,M - SM=SM+C(I3)*U(1,I) - 90 I3=I3+ICE - IF (SM) 100,120,100 - 100 SM=SM*B - C(I2)=C(I2)+SM*UP - DO 110 I=L1,M - C(I4)=C(I4)+SM*U(1,I) - 110 I4=I4+ICE - 120 CONTINUE - 130 RETURN - 140 CONTINUE - L1M1=L1-1 - KL1=1+(L1M1-1)*ICE - KL2=KL1 - KLP=1+(LPIVOT-1)*ICE - UL1M1=U(1,L1M1) - U(1,L1M1)=UP - IF (LPIVOT.EQ.L1M1) GO TO 150 - if (kind(C) == real_single) then - CALL SSWAP(NCV,C(KL1),ICV,C(KLP),ICV) - else if (kind(C) == real_double) then - CALL DSWAP(NCV,C(KL1),ICV,C(KLP),ICV) - endif - - 150 CONTINUE - - if (kind(U) == real_single .and. kind(C) == real_single) then - do J=1,NCV - SM=SDOT(MML1P2,U(1,L1M1),IUE,C(KL1),ICE) - SM=SM*B - CALL SAXPY (MML1P2,SM,U(1,L1M1),IUE,C(KL1),ICE) - KL1=KL1+ICV - enddo - else if (kind(U) == real_double .and. kind(C) == real_double) then - do J=1,NCV - SM=DDOT(MML1P2,U(1,L1M1),IUE,C(KL1),ICE) - SM=SM*B - CALL DAXPY (MML1P2,SM,U(1,L1M1),IUE,C(KL1),ICE) - KL1=KL1+ICV - enddo - endif - - U(1,L1M1)=UL1M1 - IF (LPIVOT.EQ.L1M1) RETURN - KL1=KL2 - - if (kind(C) == real_single) then - CALL SSWAP(NCV,C(KL1),ICV,C(KLP),ICV) - else if (kind(C) == real_double) then - CALL DSWAP(NCV,C(KL1),ICV,C(KLP),ICV) - endif - - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/I1MACH.f b/sorc/relocate_mv_nvortex.fd/I1MACH.f deleted file mode 100755 index 09dd15ae6b..0000000000 --- a/sorc/relocate_mv_nvortex.fd/I1MACH.f +++ /dev/null @@ -1,108 +0,0 @@ - INTEGER FUNCTION I1MACH(I) -C***BEGIN PROLOGUE I1MACH -C***DATE WRITTEN 750101 (YYMMDD) -C***REVISION DATE 910131 (YYMMDD) -C***CATEGORY NO. R1 -C***KEYWORDS MACHINE CONSTANTS -C***AUTHOR FOX, P. A., (BELL LABS) -C HALL, A. D., (BELL LABS) -C SCHRYER, N. L., (BELL LABS) -C***PURPOSE Returns integer machine dependent constants -C***DESCRIPTION -C -C This is the CMLIB version of I1MACH, the integer machine -C constants subroutine originally developed for the PORT library. -C -C I1MACH can be used to obtain machine-dependent parameters -C for the local machine environment. It is a function -C subroutine with one (input) argument, and can be called -C as follows, for example -C -C K = I1MACH(I) -C -C where I=1,...,16. The (output) value of K above is -C determined by the (input) value of I. The results for -C various values of I are discussed below. -C -C I/O unit numbers. -C I1MACH( 1) = the standard input unit. -C I1MACH( 2) = the standard output unit. -C I1MACH( 3) = the standard punch unit. -C I1MACH( 4) = the standard error message unit. -C -C Words. -C I1MACH( 5) = the number of bits per integer storage unit. -C I1MACH( 6) = the number of characters per integer storage unit. -C -C Integers. -C assume integers are represented in the S-digit, base-A form -C -C sign ( X(S-1)*A**(S-1) + ... + X(1)*A + X(0) ) -C -C where 0 .LE. X(I) .LT. A for I=0,...,S-1. -C I1MACH( 7) = A, the base. -C I1MACH( 8) = S, the number of base-A digits. -C I1MACH( 9) = A**S - 1, the largest magnitude. -C -C Floating-Point Numbers. -C Assume floating-point numbers are represented in the T-digit, -C base-B form -C sign (B**E)*( (X(1)/B) + ... + (X(T)/B**T) ) -C -C where 0 .LE. X(I) .LT. B for I=1,...,T, -C 0 .LT. X(1), and EMIN .LE. E .LE. EMAX. -C I1MACH(10) = B, the base. -C -C Single-Precision -C I1MACH(11) = T, the number of base-B digits. -C I1MACH(12) = EMIN, the smallest exponent E. -C I1MACH(13) = EMAX, the largest exponent E. -C -C Double-Precision -C I1MACH(14) = T, the number of base-B digits. -C I1MACH(15) = EMIN, the smallest exponent E. -C I1MACH(16) = EMAX, the largest exponent E. -C -C To alter this function for a particular environment, -C the desired set of DATA statements should be activated by -C removing the C from column 1. Also, the values of -C I1MACH(1) - I1MACH(4) should be checked for consistency -C with the local operating system. -C***REFERENCES FOX P.A., HALL A.D., SCHRYER N.L.,*FRAMEWORK FOR A -C PORTABLE LIBRARY*, ACM TRANSACTIONS ON MATHEMATICAL -C SOFTWARE, VOL. 4, NO. 2, JUNE 1978, PP. 177-188. -C***ROUTINES CALLED (NONE) -C***END PROLOGUE I1MACH -C - INTEGER IMACH(16),OUTPUT - EQUIVALENCE (IMACH(4),OUTPUT) -C -C MACHINE CONSTANTS FOR THE IBM RS 6000 -C USING THE 32 BIT INTEGER COMPILER OPTION -C -C === MACHINE = 1 .32-BIT-INTEGER - DATA IMACH( 1) / 5 / - DATA IMACH( 2) / 6 / - DATA IMACH( 3) / 6 / - DATA IMACH( 4) / 0 / - DATA IMACH( 5) / 32 / - DATA IMACH( 6) / 4 / - DATA IMACH( 7) / 2 / - DATA IMACH( 8) / 31 / - DATA IMACH( 9) / 2147483647 / - DATA IMACH(10) / 2 / - DATA IMACH(11) / 24 / - DATA IMACH(12) / -125 / - DATA IMACH(13) / 128 / - DATA IMACH(14) / 53 / - DATA IMACH(15) / -1021 / - DATA IMACH(16) / 1024 / -c -C***FIRST EXECUTABLE STATEMENT I1MACH - IF (I .LT. 1 .OR. I .GT. 16) - 1 CALL XERROR ( 'I1MACH -- I OUT OF BOUNDS',25,1,2) -C - I1MACH=IMACH(I) - RETURN -C - END diff --git a/sorc/relocate_mv_nvortex.fd/J4SAVE.f b/sorc/relocate_mv_nvortex.fd/J4SAVE.f deleted file mode 100644 index 630238cda8..0000000000 --- a/sorc/relocate_mv_nvortex.fd/J4SAVE.f +++ /dev/null @@ -1,51 +0,0 @@ - FUNCTION J4SAVE(IWHICH,IVALUE,ISET) -C***BEGIN PROLOGUE J4SAVE -C***REFER TO XERROR -C Abstract -C J4SAVE saves and recalls several global variables needed -C by the library error handling routines. -C -C Description of Parameters -C --Input-- -C IWHICH - Index of item desired. -C = 1 Refers to current error number. -C = 2 Refers to current error control flag. -C = 3 Refers to current unit number to which error -C messages are to be sent. (0 means use standard.) -C = 4 Refers to the maximum number of times any -C message is to be printed (as set by XERMAX). -C = 5 Refers to the total number of units to which -C each error message is to be written. -C = 6 Refers to the 2nd unit for error messages -C = 7 Refers to the 3rd unit for error messages -C = 8 Refers to the 4th unit for error messages -C = 9 Refers to the 5th unit for error messages -C IVALUE - The value to be set for the IWHICH-th parameter, -C if ISET is .TRUE. . -C ISET - If ISET=.TRUE., the IWHICH-th parameter will BE -C given the value, IVALUE. If ISET=.FALSE., the -C IWHICH-th parameter will be unchanged, and IVALUE -C is a dummy parameter. -C --Output-- -C The (old) value of the IWHICH-th parameter will be returned -C in the function value, J4SAVE. -C -C Written by Ron Jones, with SLATEC Common Math Library Subcommittee -C Adapted from Bell Laboratories PORT Library Error Handler -C Latest revision --- 23 MAY 1979 -C***REFERENCES JONES R.E., KAHANER D.K., "XERROR, THE SLATEC ERROR-" -C HANDLING PACKAGE", SAND82-0800, SANDIA LABORATORIES," -C 1982. -C***ROUTINES CALLED (NONE) -C***END PROLOGUE J4SAVE - LOGICAL ISET - INTEGER IPARAM(9) - SAVE IPARAM - DATA IPARAM(1),IPARAM(2),IPARAM(3),IPARAM(4)/0,2,0,10/ - DATA IPARAM(5)/1/ - DATA IPARAM(6),IPARAM(7),IPARAM(8),IPARAM(9)/0,0,0,0/ -C***FIRST EXECUTABLE STATEMENT J4SAVE - J4SAVE = IPARAM(IWHICH) - IF (ISET) IPARAM(IWHICH) = IVALUE - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/SEPAR.f b/sorc/relocate_mv_nvortex.fd/SEPAR.f deleted file mode 100755 index 8d7a444ec4..0000000000 --- a/sorc/relocate_mv_nvortex.fd/SEPAR.f +++ /dev/null @@ -1,146 +0,0 @@ - SUBROUTINE SEPAR(XD,XM) -C -C SEPERATES A FIELD INTO HURRICANE COMPONENT AND REMAINDER -C - - PARAMETER( NMX=24,nmx1=nmx+1,nmx2=nmx*2,nmx6=nmx*6) - PARAMETER (IMX=41 , JMX=41) - DIMENSION XR(NMX),XD(IMX,JMX) -CC - COMMON /POSIT/ XOLD,YOLD,XCORN,YCORN - COMMON /XXX/ XF(IMX,JMX),XC,YC,DX,DY - dimension XM(IMX,JMX) -C -c new arrays - dimension b(nmx),w(nmx),ab(nmx,nmx1),ipvt(nmx) - 1 ,wrk(nmx6),iwrk(nmx2) - common /matrix/ a(nmx,nmx),capd2 - common /vect/rovect(nmx),xvect(nmx),yvect(nmx) -c - DATA XR/24*0./ -C -C XC,YC ARE HURRICANE COORDINATES -C RO IS RADIUS AT WHICH HURRICANE COMPONENT OF FIELD GOES TO ZERO -C XR ARRAY CONTAINS THE FIELD VALUES OF 12 EQUALLY SPACED POINTS -C ON CIRCLE OF RADIUS RO CENTERED AT XC,YC -C -c set ro to be max value of rovect -c - ro=0. - do 22 i=1,nmx - ro=amax1(ro,rovect(i)) -22 continue - PI = 4.*ATAN(1.0) - PI180 = 4.*ATAN(1.0)/180. -c qliu FACT = COS(YOLD*PI180) - FACT = 1.0 -c DDEL=1.0*PI180 -c DTHA=1.0*PI180 -CC -CC XC IS THE I POSITION OF THE CENTER OF THE OLD VORTEX -CC YC IS THE J POSITION OF THE CENTER OF THE OLD VORTEX -CC DDEL IS THE LONG. IN RADIANS OF THE OUTER NEST -CC DTHA IS THE LAT. IN RADIANS OF THE OUTER NEST -CC -c no fact here -c DX=FACT*DDEL/PI180 -c -c dx=ddel/pi180 -c DY=DTHA/PI180 - dx=1.0 - DY=1.0 -cc - XC = (XOLD-XCORN)*DX - YC = (YOLD-YCORN)*DY - IS=INT((XC-RO/fact)/DX) +1. - IE=INT((XC+RO/fact)/DX + 1.) - JS=INT((YC-RO)/DY) +1. - JE=INT((YC+RO)/DY + 1.) -C - DO 1 J = 1 , JMX - DO 1 I = 1 , IMX - XF(I,J) = XD(I,J) -1 CONTINUE -C -C SUBROUTINE BOUND COMPUTES FIELD VALUES OF ARRAY XR USING -C BILINEAR INTERPOLATION -C -c - CALL BOUND(NMX,XR,rovect) - -C -c xrop(nmx) are the interpolated values of the disturbance -c field at the rovect pts -c -c romax is the maximum value in rovect(nmx). Within the loop a local -c ro is computed for use in the separation. At the start of the loop -c ro is again set to romax to define the domain. -c -c -c - w=0. - romax=ro -C - DO 10 IX=IS,IE - DO 11 JY=JS,JE - ro=romax -c X=XC-RO +DX*(IX-IS) -c Y=YC-RO +DY*(JY-JS) - X= DX*float(IX) -1. - Y= DY*float(JY) -1. - delx=(x-xc)*fact - dely=(y-yc) - DR=SQRT((delx)**2 +(dely)**2) - IF(DR.GT.RO)GOTO11 - IF(delx.ne.0.) THETA=ATAN((dely)/(delx)) - if(delx.eq.0..and.dely.lt.0.)theta=270.*pi180 - if(delx.eq.0..and.dely.gt.0.)theta=90. *pi180 - IF(delx.LT.0.)THETA=THETA+PI - IF(THETA.LT.0.)THETA=2.*PI+THETA - N1=INT(THETA*NMX/(2.*PI)) - IF(N1.GT.nmx)write(6,*)N1,THETA*57.296 - IF(N1.LT.0)write(6,*) N1,THETA*57.296 - N2=N1+2 - IF(N2.GT.NMX)N2=N2-NMX - DELTH=THETA- 2.*PI*FLOAT(N1)/FLOAT(NMX) -c - ro=delth*float(nmx)/(2.*pi)*(rovect(n2)-rovect(n1+1)) - 1 +rovect(n1+1) - IF(DR.GT.ro)GOTO11 - XRO=DELTH*FLOAT(NMX)/(2.*PI)*(XR(N2)-XR(N1+1)) +XR(N1+1) -CC -c Now add new code to compute distance from each gridpt. to rovect pts -c - do 12 ip=1,nmx - dpij= (fact*(x-xvect(ip)))**2 +(y-yvect(ip))**2 - b(ip)=exp(-dpij/capd2) -12 continue -c -c - do 44 ip=1,nmx - do 43 jp=1,nmx -43 ab(ip,jp)=a(ip,jp) - ab(ip,nmx1)=b(ip) -44 continue -c -c solve system using constrained least squares method -c - call wnnls(ab,nmx,0,nmx,nmx,0,1.,w,rnm,md,iwrk,wrk) -c - temp=0. - do 20 ip=1,nmx - temp=temp +w(ip)*xr(ip) -20 continue -c xh(ix,jy)=xf(ix,jy)-temp -c qliu xd(ix,jy)=temp - xm(ix,jy)=temp -11 CONTINUE -10 CONTINUE -c write(6,*) 'qliu test2' - do j=1,jmx - do i=1,imx -c write(6,*) xf(i,j),xd(i,j),xf(i,j)-xd(i,j),i,j - end do - end do - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/WNLIT.f b/sorc/relocate_mv_nvortex.fd/WNLIT.f deleted file mode 100755 index 16c218215f..0000000000 --- a/sorc/relocate_mv_nvortex.fd/WNLIT.f +++ /dev/null @@ -1,437 +0,0 @@ - SUBROUTINE WNLIT(W,MDW,M,N,L,IPIVOT,ITYPE,H,SCALE,RNORM,IDOPE, - 1 DOPE,DONE) -C***BEGIN PROLOGUE WNLIT -C***REFER TO WNNLS -C -C This is a companion subprogram to WNNLS( ). -C The documentation for WNNLS( ) has more complete -C usage instructions. -C -C Note The M by (N+1) matrix W( , ) contains the rt. hand side -C B as the (N+1)st col. -C -C Triangularize L1 by L1 subsystem, where L1=MIN(M,L), with -C col interchanges. -C Revised March 4, 1982. -C***ROUTINES CALLED H12,ISAMAX,SCOPY,SROTM,SROTMG,SSCAL,SSWAP -C***END PROLOGUE WNLIT -C -C THE EDITING REQUIRED TO CONVERT THIS SUBROUTINE FROM SINGLE TO -C DOUBLE PRECISION INVOLVES THE FOLLOWING CHARACTER STRING CHANGES. -C USE AN EDITING COMMAND (CHANGE) /STRING-1/(TO)STRING-2/. -C (BEGIN CHANGES AT LINE WITH C++ IN COLS. 1-3.) -C /REAL (12 BLANKS)/DOUBLE PRECISION/,/SCOPY/DCOPY/,/SROTM/DROTM/, -C /SSCAL/DSCAL/, -C /SSWAP/DSWAP/,/AMAX1/DMAX1/,/ISAMAX/IDAMAX/,/.E-/.D-/,/E0/D0/ -C -C++ - USE setparms -c - REAL W(MDW,1), H(1), SCALE(1), DOPE(4), SPARAM(5) - REAL ALSQ, AMAX, EANORM, FAC, FACTOR, HBAR, ONE, RN - REAL RNORM, SN, T, TAU, TENM3, ZERO - REAL AMAX1 - INTEGER ITYPE(1), IPIVOT(1), IDOPE(8) - integer(kind = int_single) ISAMAX,IDAMAX - LOGICAL INDEP, DONE, RECALC - DATA TENM3 /1.E-3/, ZERO /0.E0/, ONE /1.E0/ -C -C***FIRST EXECUTABLE STATEMENT WNLIT - ME = IDOPE(1) - MEP1 = IDOPE(2) - KRANK = IDOPE(3) - KRP1 = IDOPE(4) - NSOLN = IDOPE(5) - NIV = IDOPE(6) - NIV1 = IDOPE(7) - L1 = IDOPE(8) -C - ALSQ = DOPE(1) - EANORM = DOPE(2) - FAC = DOPE(3) - TAU = DOPE(4) - NP1 = N + 1 - LB = MIN0(M-1,L) - RECALC = .TRUE. - RNORM = ZERO - KRANK = 0 -C WE SET FACTOR=1.E0 SO THAT THE HEAVY WEIGHT ALAMDA WILL BE -C INCLUDED IN THE TEST FOR COL INDEPENDENCE. - FACTOR = 1.E0 - I = 1 - IP1 = 2 - LEND = L - 10 IF (.NOT.(I.LE.LB)) GO TO 150 -C -C SET IR TO POINT TO THE I-TH ROW. - IR = I - MEND = M - ASSIGN 20 TO IGO996 - GO TO 460 -C -C UPDATE-COL-SS-AND-FIND-PIVOT-COL - 20 ASSIGN 30 TO IGO993 - GO TO 560 -C -C PERFORM-COL-INTERCHANGE -C -C SET IC TO POINT TO I-TH COL. - 30 IC = I - ASSIGN 40 TO IGO990 - GO TO 520 -C -C TEST-INDEP-OF-INCOMING-COL - 40 IF (.NOT.(INDEP)) GO TO 110 -C -C ELIMINATE I-TH COL BELOW DIAG. USING MOD. GIVENS TRANSFORMATIONS -C APPLIED TO (A B). - J = M - DO 100 JJ=IP1,M - JM1 = J - 1 - JP = JM1 -C WHEN OPERATING NEAR THE ME LINE, USE THE LARGEST ELT. -C ABOVE IT AS THE PIVOT. - IF (.NOT.(J.EQ.MEP1)) GO TO 80 - IMAX = ME - AMAX = SCALE(ME)*W(ME,I)**2 - 50 IF (.NOT.(JP.GE.I)) GO TO 70 - T = SCALE(JP)*W(JP,I)**2 - IF (.NOT.(T.GT.AMAX)) GO TO 60 - IMAX = JP - AMAX = T - 60 JP = JP - 1 - GO TO 50 - 70 JP = IMAX - 80 IF (.NOT.(W(J,I).NE.ZERO)) GO TO 90 - CALL SROTMG(SCALE(JP), SCALE(J), W(JP,I), W(J,I), SPARAM) - W(J,I) = ZERO - CALL SROTM(NP1-I, W(JP,IP1), MDW, W(J,IP1), MDW, SPARAM) - 90 J = JM1 - 100 CONTINUE - GO TO 140 - 110 CONTINUE - IF (.NOT.(LEND.GT.I)) GO TO 130 -C -C COL I IS DEPENDENT. SWAP WITH COL LEND. - MAX = LEND -C -C PERFORM-COL-INTERCHANGE - ASSIGN 120 TO IGO993 - GO TO 560 - 120 CONTINUE - LEND = LEND - 1 -C -C FIND COL IN REMAINING SET WITH LARGEST SS. - if (kind(H) == real_single) then - MAX = ISAMAX(LEND-I+1,H(I),1) + I - 1 - else if (kind(H) == real_double) then - MAX = IDAMAX(LEND-I+1,H(I),1) + I - 1 - endif - HBAR = H(MAX) - GO TO 30 - 130 CONTINUE - KRANK = I - 1 - GO TO 160 - 140 I = IP1 - IP1 = IP1 + 1 - GO TO 10 - 150 KRANK = L1 - 160 CONTINUE - KRP1 = KRANK + 1 - IF (.NOT.(KRANK.LT.ME)) GO TO 290 - FACTOR = ALSQ - DO 170 I=KRP1,ME - IF (L.GT.0) W(I,1) = ZERO - if (kind(W) == real_single) then - CALL SCOPY(L, W(I,1), 0, W(I,1), MDW) - else if (kind(W) == real_double) then - CALL DCOPY(L, W(I,1), 0, W(I,1), MDW) - endif - 170 CONTINUE -C -C DETERMINE THE RANK OF THE REMAINING EQUALITY CONSTRAINT -C EQUATIONS BY ELIMINATING WITHIN THE BLOCK OF CONSTRAINED -C VARIABLES. REMOVE ANY REDUNDANT CONSTRAINTS. - LP1 = L + 1 - RECALC = .TRUE. - LB = MIN0(L+ME-KRANK,N) - I = LP1 - IP1 = I + 1 - 180 IF (.NOT.(I.LE.LB)) GO TO 280 - IR = KRANK + I - L - LEND = N - MEND = ME - ASSIGN 190 TO IGO996 - GO TO 460 -C -C UPDATE-COL-SS-AND-FIND-PIVOT-COL - 190 ASSIGN 200 TO IGO993 - GO TO 560 -C -C PERFORM-COL-INTERCHANGE -C -C ELIMINATE ELEMENTS IN THE I-TH COL. - 200 J = ME - 210 IF (.NOT.(J.GT.IR)) GO TO 230 - JM1 = J - 1 - IF (.NOT.(W(J,I).NE.ZERO)) GO TO 220 - CALL SROTMG(SCALE(JM1), SCALE(J), W(JM1,I), W(J,I), SPARAM) - W(J,I) = ZERO - CALL SROTM(NP1-I, W(JM1,IP1), MDW, W(J,IP1), MDW, SPARAM) - 220 J = JM1 - GO TO 210 -C -C SET IC=I=COL BEING ELIMINATED - 230 IC = I - ASSIGN 240 TO IGO990 - GO TO 520 -C -C TEST-INDEP-OF-INCOMING-COL - 240 IF (INDEP) GO TO 270 -C -C REMOVE ANY REDUNDANT OR DEPENDENT EQUALITY CONSTRAINTS. - JJ = IR - 250 IF (.NOT.(IR.LE.ME)) GO TO 260 - W(IR,1) = ZERO - - if (kind(W) == real_single) then - CALL SCOPY(N, W(IR,1), 0, W(IR,1), MDW) - else if (kind(W) == real_double) then - CALL DCOPY(N, W(IR,1), 0, W(IR,1), MDW) - endif - - RNORM = RNORM + (SCALE(IR)*W(IR,NP1)/ALSQ)*W(IR,NP1) - W(IR,NP1) = ZERO - SCALE(IR) = ONE -C RECLASSIFY THE ZEROED ROW AS A LEAST SQUARES EQUATION. - ITYPE(IR) = 1 - IR = IR + 1 - GO TO 250 -C -C REDUCE ME TO REFLECT ANY DISCOVERED DEPENDENT EQUALITY -C CONSTRAINTS. - 260 CONTINUE - ME = JJ - 1 - MEP1 = ME + 1 - GO TO 300 - 270 I = IP1 - IP1 = IP1 + 1 - GO TO 180 - 280 CONTINUE - 290 CONTINUE - 300 CONTINUE - IF (.NOT.(KRANK.LT.L1)) GO TO 420 -C -C TRY TO DETERMINE THE VARIABLES KRANK+1 THROUGH L1 FROM THE -C LEAST SQUARES EQUATIONS. CONTINUE THE TRIANGULARIZATION WITH -C PIVOT ELEMENT W(MEP1,I). -C - RECALC = .TRUE. -C -C SET FACTOR=ALSQ TO REMOVE EFFECT OF HEAVY WEIGHT FROM -C TEST FOR COL INDEPENDENCE. - FACTOR = ALSQ - KK = KRP1 - I = KK - IP1 = I + 1 - 310 IF (.NOT.(I.LE.L1)) GO TO 410 -C -C SET IR TO POINT TO THE MEP1-ST ROW. - IR = MEP1 - LEND = L - MEND = M - ASSIGN 320 TO IGO996 - GO TO 460 -C -C UPDATE-COL-SS-AND-FIND-PIVOT-COL - 320 ASSIGN 330 TO IGO993 - GO TO 560 -C -C PERFORM-COL-INTERCHANGE -C -C ELIMINATE I-TH COL BELOW THE IR-TH ELEMENT. - 330 IRP1 = IR + 1 - J = M - DO 350 JJ=IRP1,M - JM1 = J - 1 - IF (.NOT.(W(J,I).NE.ZERO)) GO TO 340 - CALL SROTMG(SCALE(JM1), SCALE(J), W(JM1,I), W(J,I), SPARAM) - W(J,I) = ZERO - CALL SROTM(NP1-I, W(JM1,IP1), MDW, W(J,IP1), MDW, SPARAM) - 340 J = JM1 - 350 CONTINUE -C -C TEST IF NEW PIVOT ELEMENT IS NEAR ZERO. IF SO, THE COL IS -C DEPENDENT. - T = SCALE(IR)*W(IR,I)**2 - INDEP = T.GT.TAU**2*EANORM**2 - IF (.NOT.INDEP) GO TO 380 -C -C COL TEST PASSED. NOW MUST PASS ROW NORM TEST TO BE CLASSIFIED -C AS INDEPENDENT. - RN = ZERO - DO 370 I1=IR,M - DO 360 J1=IP1,N - RN = AMAX1(RN,SCALE(I1)*W(I1,J1)**2) - 360 CONTINUE - 370 CONTINUE - INDEP = T.GT.TAU**2*RN -C -C IF INDEPENDENT, SWAP THE IR-TH AND KRP1-ST ROWS TO MAINTAIN THE -C TRIANGULAR FORM. UPDATE THE RANK INDICATOR KRANK AND THE -C EQUALITY CONSTRAINT POINTER ME. - 380 IF (.NOT.(INDEP)) GO TO 390 - if (kind(W) == real_single) then - CALL SSWAP(NP1, W(KRP1,1), MDW, W(IR,1), MDW) - else if (kind(W) == real_double) then - CALL DSWAP(NP1, W(KRP1,1), MDW, W(IR,1), MDW) - endif - if (kind(SCALE) == real_single) then - CALL SSWAP(1, SCALE(KRP1), 1, SCALE(IR), 1) - else if (kind(SCALE) == real_double) then - CALL DSWAP(1, SCALE(KRP1), 1, SCALE(IR), 1) - endif -C RECLASSIFY THE LEAST SQ. EQUATION AS AN EQUALITY CONSTRAINT AND -C RESCALE IT. - ITYPE(IR) = 0 - T = SQRT(SCALE(KRP1)) - - if (kind(W) == real_single) then - CALL SSCAL(NP1, T, W(KRP1,1), MDW) - else if (kind(W) == real_double) then - CALL DSCAL(NP1, T, W(KRP1,1), MDW) - endif - - SCALE(KRP1) = ALSQ - ME = MEP1 - MEP1 = ME + 1 - KRANK = KRP1 - KRP1 = KRANK + 1 - GO TO 400 - 390 GO TO 430 - 400 I = IP1 - IP1 = IP1 + 1 - GO TO 310 - 410 CONTINUE - 420 CONTINUE - 430 CONTINUE -C -C IF PSEUDORANK IS LESS THAN L, APPLY HOUSEHOLDER TRANS. -C FROM RIGHT. - IF (.NOT.(KRANK.LT.L)) GO TO 450 - DO 440 I=1,KRANK - J = KRP1 - I - CALL H12(1, J, KRP1, L, W(J,1), MDW, H(J), W, MDW, 1, J-1) - 440 CONTINUE - 450 NIV = KRANK + NSOLN - L - NIV1 = NIV + 1 - IF (L.EQ.N) DONE = .TRUE. -C -C END OF INITIAL TRIANGULARIZATION. - IDOPE(1) = ME - IDOPE(2) = MEP1 - IDOPE(3) = KRANK - IDOPE(4) = KRP1 - IDOPE(5) = NSOLN - IDOPE(6) = NIV - IDOPE(7) = NIV1 - IDOPE(8) = L1 - RETURN - 460 CONTINUE -C -C TO UPDATE-COL-SS-AND-FIND-PIVOT-COL -C -C THE COL SS VECTOR WILL BE UPDATED AT EACH STEP. WHEN -C NUMERICALLY NECESSARY, THESE VALUES WILL BE RECOMPUTED. -C - IF (.NOT.(IR.NE.1 .AND. (.NOT.RECALC))) GO TO 480 -C UPDATE COL SS =SUM OF SQUARES. - DO 470 J=I,LEND - H(J) = H(J) - SCALE(IR-1)*W(IR-1,J)**2 - 470 CONTINUE -C -C TEST FOR NUMERICAL ACCURACY. - if (kind(H) == real_single) then - MAX = ISAMAX(LEND-I+1,H(I),1) + I - 1 - else if (kind(H) == real_double) then - MAX = IDAMAX(LEND-I+1,H(I),1) + I - 1 - endif - RECALC = HBAR + TENM3*H(MAX).EQ.HBAR -C -C IF REQUIRED, RECALCULATE COL SS, USING ROWS IR THROUGH MEND. - 480 IF (.NOT.(RECALC)) GO TO 510 - DO 500 J=I,LEND - H(J) = ZERO - DO 490 K=IR,MEND - H(J) = H(J) + SCALE(K)*W(K,J)**2 - 490 CONTINUE - 500 CONTINUE -C -C FIND COL WITH LARGEST SS. - if (kind(H) == real_single) then - MAX = ISAMAX(LEND-I+1,H(I),1) + I - 1 - else if (kind(H) == real_double) then - MAX = IDAMAX(LEND-I+1,H(I),1) + I - 1 - endif - - HBAR = H(MAX) - 510 GO TO 600 - 520 CONTINUE -C -C TO TEST-INDEP-OF-INCOMING-COL -C -C TEST THE COL IC TO DETERMINE IF IT IS LINEARLY INDEPENDENT -C OF THE COLS ALREADY IN THE BASIS. IN THE INIT TRI -C STEP, WE USUALLY WANT THE HEAVY WEIGHT ALAMDA TO -C BE INCLUDED IN THE TEST FOR INDEPENDENCE. IN THIS CASE THE -C VALUE OF FACTOR WILL HAVE BEEN SET TO 1.E0 BEFORE THIS -C PROCEDURE IS INVOKED. IN THE POTENTIALLY RANK DEFICIENT -C PROBLEM, THE VALUE OF FACTOR WILL HAVE BEEN -C SET TO ALSQ=ALAMDA**2 TO REMOVE THE EFFECT OF THE HEAVY WEIGHT -C FROM THE TEST FOR INDEPENDENCE. -C -C WRITE NEW COL AS PARTITIONED VECTOR -C (A1) NUMBER OF COMPONENTS IN SOLN SO FAR = NIV -C (A2) M-NIV COMPONENTS -C AND COMPUTE SN = INVERSE WEIGHTED LENGTH OF A1 -C RN = INVERSE WEIGHTED LENGTH OF A2 -C CALL THE COL INDEPENDENT WHEN RN .GT. TAU*SN - SN = ZERO - RN = ZERO - DO 550 J=1,MEND - T = SCALE(J) - IF (J.LE.ME) T = T/FACTOR - T = T*W(J,IC)**2 - IF (.NOT.(J.LT.IR)) GO TO 530 - SN = SN + T - GO TO 540 - 530 RN = RN + T - 540 CONTINUE - 550 CONTINUE - INDEP = RN.GT.TAU**2*SN - GO TO 590 - 560 CONTINUE -C -C TO PERFORM-COL-INTERCHANGE -C - IF (.NOT.(MAX.NE.I)) GO TO 570 -C EXCHANGE ELEMENTS OF PERMUTED INDEX VECTOR AND PERFORM COL -C INTERCHANGES. - ITEMP = IPIVOT(I) - IPIVOT(I) = IPIVOT(MAX) - IPIVOT(MAX) = ITEMP - - if (kind(W) == real_single) then - CALL SSWAP(M, W(1,MAX), 1, W(1,I), 1) - else if (kind(W) == real_double) then - CALL DSWAP(M, W(1,MAX), 1, W(1,I), 1) - endif - - T = H(MAX) - H(MAX) = H(I) - H(I) = T - 570 GO TO 580 - 580 GO TO IGO993, (30, 200, 330, 120) - 590 GO TO IGO990, (40, 240) - 600 GO TO IGO996, (20, 190, 320) - END diff --git a/sorc/relocate_mv_nvortex.fd/WNLSM.f b/sorc/relocate_mv_nvortex.fd/WNLSM.f deleted file mode 100755 index 2f039d70c6..0000000000 --- a/sorc/relocate_mv_nvortex.fd/WNLSM.f +++ /dev/null @@ -1,822 +0,0 @@ - SUBROUTINE WNLSM(W,MDW,MME,MA,N,L,PRGOPT,X,RNORM,MODE,IPIVOT, - 1 ITYPE,WD,H,SCALE,Z,TEMP,D) -C***BEGIN PROLOGUE WNLSM -C***REFER TO WNNLS -C -C This is a companion subprogram to WNNLS( ). -C The documentation for WNNLS( ) has more complete -C usage instructions. -C -C Written by Karen H. Haskell, Sandia Laboratories, -C with the help of R.J. Hanson, Sandia Laboratories, -C December 1976 - January 1978. -C Revised March 4, 1982. -C -C In addition to the parameters discussed in the prologue to -C subroutine WNNLS, the following work arrays are used in -C subroutine WNLSM (they are passed through the calling -C sequence from WNNLS for purposes of variable dimensioning). -C Their contents will in general be of no interest to the user. -C -C IPIVOT(*) -C An array of length N. Upon completion it contains the -C pivoting information for the cols of W(*,*). -C -C ITYPE(*) -C An array of length M which is used to keep track -C of the classification of the equations. ITYPE(I)=0 -C denotes equation I as an equality constraint. -C ITYPE(I)=1 denotes equation I as a least squares -C equation. -C -C WD(*) -C An array of length N. Upon completion it contains the -C dual solution vector. -C -C H(*) -C An array of length N. Upon completion it contains the -C pivot scalars of the Householder transformations performed -C in the case KRANK.LT.L. -C -C SCALE(*) -C An array of length M which is used by the subroutine -C to store the diagonal matrix of weights. -C These are used to apply the modified Givens -C transformations. -C -C Z(*),TEMP(*) -C Working arrays of length N. -C -C D(*) -C An array of length N that contains the -C column scaling for the matrix (E). -C (A) -C***ROUTINES CALLED H12,ISAMAX,SASUM,SAXPY,SCOPY,SNRM2,SROTM,SROTMG, -C SSCAL,SSWAP,WNLIT,XERROR -C***END PROLOGUE WNLSM -C -C THE EDITING REQUIRED TO CONVERT THIS SUBROUTINE FROM SINGLE TO -C DOUBLE PRECISION INVOLVES THE FOLLOWING CHARACTER STRING CHANGES. -C USE AN EDITING COMMAND (CHANGE) /STRING-1/(TO)STRING-2/. -C (BEGIN CHANGES AT LINE WITH C++ IN COLS. 1-3.) -C /REAL (12 BLANKS)/DOUBLE PRECISION/,/SASUM/DASUM/,/SROTMG/DROTMG/, -C /SNRM2/DNRM2/,/ SQRT/ DSQRT/,/SROTM/DROTM/,/AMAX1/DMAX1/, -C /SCOPY/DCOPY/,/SSCAL/DSCAL/,/SAXPY/DAXPY/,/E0/D0/,/SSWAP/DSWAP/, -C /ISAMAX/IDAMAX/,/SRELPR/DRELPR/ -C -C SUBROUTINE WNLSM (W,MDW,MME,MA,N,L,PRGOPT,X,RNORM,MODE, -C 1 IPIVOT,ITYPE,WD,H,SCALE,Z,TEMP,D) -C++ - USE setparms -c - REAL W(MDW,1), X(1), WD(1), H(1), SCALE(1), DOPE(4) - REAL Z(1), TEMP(1), PRGOPT(1), D(1), SPARAM(5) - REAL ALAMDA, ALPHA, ALSQ, AMAX, BNORM, EANORM - REAL SRELPR, FAC, ONE, BLOWUP - REAL RNORM, SM, T, TAU, TWO, WMAX, ZERO, ZZ, Z2 - REAL AMAX1, SQRT, SNRM2, SASUM, DNRM2, DASUM - - INTEGER IPIVOT(1), ITYPE(1), IDOPE(8) - integer(kind = int_single) ISAMAX,IDAMAX - LOGICAL HITCON, FEASBL, DONE, POS - DATA ZERO /0.E0/, ONE /1.E0/, TWO /2.E0/, SRELPR /0.E0/ -C -C INITIALIZE-VARIABLES -C***FIRST EXECUTABLE STATEMENT WNLSM - ASSIGN 10 TO IGO998 - GO TO 180 -C -C PERFORM INITIAL TRIANGULARIZATION IN THE SUBMATRIX -C CORRESPONDING TO THE UNCONSTRAINED VARIABLES USING -C THE PROCEDURE INITIALLY-TRIANGULARIZE. - 10 ASSIGN 20 TO IGO995 - GO TO 280 -C -C PERFORM WNNLS ALGORITHM USING THE FOLLOWING STEPS. -C -C UNTIL(DONE) -C -C COMPUTE-SEARCH-DIRECTION-AND-FEASIBLE-POINT -C -C WHEN (HITCON) ADD-CONSTRAINTS -C -C ELSE PERFORM-MULTIPLIER-TEST-AND-DROP-A-CONSTRAINT -C -C FIN -C -C COMPUTE-FINAL-SOLUTION -C - 20 IF (DONE) GO TO 80 -C - ASSIGN 30 TO IGO991 - GO TO 300 -C -C COMPUTE-SEARCH-DIRECTION-AND-FEASIBLE-POINT -C - 30 IF (.NOT.(HITCON)) GO TO 50 - ASSIGN 40 TO IGO986 - GO TO 370 - 40 GO TO 70 -C -C WHEN (HITCON) ADD-CONSTRAINTS -C - 50 ASSIGN 60 TO IGO983 - GO TO 640 - 60 CONTINUE -C -C ELSE PERFORM-MULTIPLIER-TEST-AND-DROP-A-CONSTRAINT -C - 70 GO TO 20 -C - 80 ASSIGN 90 TO IGO980 - GO TO 1000 -C -C COMPUTE-FINAL-SOLUTION -C - 90 RETURN - 100 CONTINUE -C -C TO PROCESS-OPTION-VECTOR - FAC = 1.E-4 -C -C THE NOMINAL TOLERANCE USED IN THE CODE, - TAU = SQRT(SRELPR) -C -C THE NOMINAL BLOW-UP FACTOR USED IN THE CODE. - BLOWUP = TAU -C -C THE NOMINAL COLUMN SCALING USED IN THE CODE IS -C THE IDENTITY SCALING. - D(1) = ONE - if (kind(D) == real_single) then - CALL SCOPY(N, D, 0, D, 1) - else if (kind(D) == real_double) then - CALL DCOPY(N, D, 0, D, 1) - endif -C -C DEFINE BOUND FOR NUMBER OF OPTIONS TO CHANGE. - NOPT = 1000 -C -C DEFINE BOUND FOR POSITIVE VALUE OF LINK. - NLINK = 100000 - NTIMES = 0 - LAST = 1 - LINK = PRGOPT(1) - IF (.NOT.(LINK.LE.0 .OR. LINK.GT.NLINK)) GO TO 110 - NERR = 3 - IOPT = 1 - CALL XERROR( 'WNNLS( ) THE OPTION VECTOR IS UNDEFINED', 39, NERR, - 1 IOPT) - MODE = 2 - RETURN - 110 IF (.NOT.(LINK.GT.1)) GO TO 160 - NTIMES = NTIMES + 1 - IF (.NOT.(NTIMES.GT.NOPT)) GO TO 120 - NERR = 3 - IOPT = 1 - CALL XERROR( 'WNNLS( ). THE LINKS IN THE OPTION VECTOR ARE CYCLING - 1.', 53, NERR, IOPT) - MODE = 2 - RETURN - 120 KEY = PRGOPT(LAST+1) - IF (.NOT.(KEY.EQ.6 .AND. PRGOPT(LAST+2).NE.ZERO)) GO TO 140 - - if (kind(W) == real_single) then - do J=1,N - T = SNRM2(M,W(1,J),1) - IF (T.NE.ZERO) T = ONE/T - D(J) = T - enddo - else if (kind(W) == real_double) then - do J=1,N - T = DNRM2(M,W(1,J),1) - IF (T.NE.ZERO) T = ONE/T - D(J) = T - enddo - endif - - 140 IF (KEY.EQ.7) then - if (kind(PRGOPT) == real_single) then - CALL SCOPY(N, PRGOPT(LAST+2), 1, D, 1) - else if (kind(PRGOPT) == real_double) then - CALL DCOPY(N, PRGOPT(LAST+2), 1, D, 1) - endif - endif - IF (KEY.EQ.8) TAU = AMAX1(SRELPR,PRGOPT(LAST+2)) - IF (KEY.EQ.9) BLOWUP = AMAX1(SRELPR,PRGOPT(LAST+2)) - NEXT = PRGOPT(LINK) - IF (.NOT.(NEXT.LE.0 .OR. NEXT.GT.NLINK)) GO TO 150 - NERR = 3 - IOPT = 1 - CALL XERROR( 'WNNLS( ) THE OPTION VECTOR IS UNDEFINED', 39, NERR, - 1 IOPT) - MODE = 2 - RETURN - 150 LAST = LINK - LINK = NEXT - GO TO 110 - - 160 if (kind(W) == real_single) then - do J=1,N - CALL SSCAL(M, D(J), W(1,J), 1) - enddo - else if (kind(W) == real_double) then - do J=1,N - CALL DSCAL(M, D(J), W(1,J), 1) - enddo - endif - - GO TO 1260 - 180 CONTINUE -C -C TO INITIALIZE-VARIABLES -C -C SRELPR IS THE PRECISION FOR THE PARTICULAR MACHINE -C BEING USED. THIS LOGIC AVOIDS RECOMPUTING IT EVERY ENTRY. - IF (.NOT.(SRELPR.EQ.ZERO)) GO TO 210 -c*** changed back by BROSS -c*** changed by RF Boisvert, 19-Feb-92 (fails on HP 9000 Series 300) -cross srelpr = r1mach(4) - SRELPR = ONE - 190 IF (ONE+SRELPR.EQ.ONE) GO TO 200 - SRELPR = SRELPR/TWO - GO TO 190 - 200 SRELPR = SRELPR*TWO -cross - 210 M = MA + MME - ME = MME - MEP1 = ME + 1 - ASSIGN 220 TO IGO977 - GO TO 100 -C -C PROCESS-OPTION-VECTOR - 220 DONE = .FALSE. - ITER = 0 - ITMAX = 3*(N-L) - MODE = 0 - LP1 = L + 1 - NSOLN = L - NSP1 = NSOLN + 1 - NP1 = N + 1 - NM1 = N - 1 - L1 = MIN0(M,L) -C -C COMPUTE SCALE FACTOR TO APPLY TO EQUAL. CONSTRAINT EQUAS. - - if (kind(W) == real_single) then - do J=1,N - WD(J) = SASUM(M,W(1,J),1) - enddo - IMAX = ISAMAX(N,WD,1) - EANORM = WD(IMAX) - BNORM = SASUM(M,W(1,NP1),1) - else if (kind(W) == real_double) then - do J=1,N - WD(J) = DASUM(M,W(1,J),1) - enddo - IMAX = IDAMAX(N,WD,1) - EANORM = WD(IMAX) - BNORM = DASUM(M,W(1,NP1),1) - endif - - ALAMDA = EANORM/(SRELPR*FAC) -C -C DEFINE SCALING DIAG MATRIX FOR MOD GIVENS USAGE AND -C CLASSIFY EQUATION TYPES. - ALSQ = ALAMDA**2 - DO 260 I=1,M -C -C WHEN EQU I IS HEAVILY WEIGHTED ITYPE(I)=0, ELSE ITYPE(I)=1. - IF (.NOT.(I.LE.ME)) GO TO 240 - T = ALSQ - ITEMP = 0 - GO TO 250 - 240 T = ONE - ITEMP = 1 - 250 SCALE(I) = T - ITYPE(I) = ITEMP - 260 CONTINUE -C -C SET THE SOLN VECTOR X(*) TO ZERO AND THE COL INTERCHANGE -C MATRIX TO THE IDENTITY. - X(1) = ZERO - if (kind(X) == real_single) then - CALL SCOPY(N, X, 0, X, 1) - else if (kind(X) == real_double) then - CALL DCOPY(N, X, 0, X, 1) - endif - DO 270 I=1,N - IPIVOT(I) = I - 270 CONTINUE - GO TO 1230 - 280 CONTINUE -C -C TO INITIALLY-TRIANGULARIZE -C -C SET FIRST L COMPS. OF DUAL VECTOR TO ZERO BECAUSE -C THESE CORRESPOND TO THE UNCONSTRAINED VARIABLES. - IF (.NOT.(L.GT.0)) GO TO 290 - WD(1) = ZERO - if (kind(WD) == real_single) then - CALL SCOPY(L, WD, 0, WD, 1) - else if (kind(WD) == real_double) then - CALL DCOPY(L, WD, 0, WD, 1) - endif -C -C THE ARRAYS IDOPE(*) AND DOPE(*) ARE USED TO PASS -C INFORMATION TO WNLIT(). THIS WAS DONE TO AVOID -C A LONG CALLING SEQUENCE OR THE USE OF COMMON. - 290 IDOPE(1) = ME - IDOPE(2) = MEP1 - IDOPE(3) = 0 - IDOPE(4) = 1 - IDOPE(5) = NSOLN - IDOPE(6) = 0 - IDOPE(7) = 1 - IDOPE(8) = L1 -C - DOPE(1) = ALSQ - DOPE(2) = EANORM - DOPE(3) = FAC - DOPE(4) = TAU - CALL WNLIT(W, MDW, M, N, L, IPIVOT, ITYPE, H, SCALE, RNORM, - 1 IDOPE, DOPE, DONE) - ME = IDOPE(1) - MEP1 = IDOPE(2) - KRANK = IDOPE(3) - KRP1 = IDOPE(4) - NSOLN = IDOPE(5) - NIV = IDOPE(6) - NIV1 = IDOPE(7) - L1 = IDOPE(8) - GO TO 1240 - 300 CONTINUE -C -C TO COMPUTE-SEARCH-DIRECTION-AND-FEASIBLE-POINT -C -C SOLVE THE TRIANGULAR SYSTEM OF CURRENTLY NON-ACTIVE -C VARIABLES AND STORE THE SOLUTION IN Z(*). -C -C SOLVE-SYSTEM - ASSIGN 310 TO IGO958 - GO TO 1110 -C -C INCREMENT ITERATION COUNTER AND CHECK AGAINST MAX. NUMBER -C OF ITERATIONS. - 310 ITER = ITER + 1 - IF (.NOT.(ITER.GT.ITMAX)) GO TO 320 - MODE = 1 - DONE = .TRUE. -C -C CHECK TO SEE IF ANY CONSTRAINTS HAVE BECOME ACTIVE. -C IF SO, CALCULATE AN INTERPOLATION FACTOR SO THAT ALL -C ACTIVE CONSTRAINTS ARE REMOVED FROM THE BASIS. - 320 ALPHA = TWO - HITCON = .FALSE. - IF (.NOT.(L.LT.NSOLN)) GO TO 360 - DO 350 J=LP1,NSOLN - ZZ = Z(J) - IF (.NOT.(ZZ.LE.ZERO)) GO TO 340 - T = X(J)/(X(J)-ZZ) - IF (.NOT.(T.LT.ALPHA)) GO TO 330 - ALPHA = T - JCON = J - 330 HITCON = .TRUE. - 340 CONTINUE - 350 CONTINUE - 360 GO TO 1220 - 370 CONTINUE -C -C TO ADD-CONSTRAINTS -C -C USE COMPUTED ALPHA TO INTERPOLATE BETWEEN LAST -C FEASIBLE SOLUTION X(*) AND CURRENT UNCONSTRAINED -C (AND INFEASIBLE) SOLUTION Z(*). - IF (.NOT.(LP1.LE.NSOLN)) GO TO 390 - DO 380 J=LP1,NSOLN - X(J) = X(J) + ALPHA*(Z(J)-X(J)) - 380 CONTINUE - 390 FEASBL = .FALSE. - GO TO 410 - 400 IF (FEASBL) GO TO 610 -C -C REMOVE COL JCON AND SHIFT COLS JCON+1 THROUGH N TO THE -C LEFT. SWAP COL JCON INTO THE N-TH POSITION. THIS ACHIEVES -C UPPER HESSENBERG FORM FOR THE NONACTIVE CONSTRAINTS AND -C LEAVES AN UPPER HESSENBERG MATRIX TO RETRIANGULARIZE. - 410 DO 420 I=1,M - T = W(I,JCON) -! if (kind(W) == real_single) then -! CALL SCOPY(N-JCON, W(I,JCON+1), MDW, W(I,JCON), MDW) -! else if (kind(W) == real_double) then -! CALL DCOPY(N-JCON, W(I,JCON+1), MDW, W(I,JCON), MDW) -! endif - do j=jcon,n-1 - w(i,j)=w(i,j+1) - end do - W(I,N) = T - 420 CONTINUE -C -C UPDATE PERMUTED INDEX VECTOR TO REFLECT THIS SHIFT AND SWAP. - ITEMP = IPIVOT(JCON) - IF (.NOT.(JCON.LT.N)) GO TO 440 - DO 430 I=JCON,NM1 - IPIVOT(I) = IPIVOT(I+1) - 430 CONTINUE - 440 IPIVOT(N) = ITEMP -C -C SIMILARLY REPERMUTE X(*) VECTOR. -! if (kind(X) == real_single) then -! CALL SCOPY(N-JCON, X(JCON+1), 1, X(JCON), 1) -! else if (kind(X) == real_double) then -! CALL DCOPY(N-JCON, X(JCON+1), 1, X(JCON), 1) -! endif - do j=jcon,n-1 - X(j)=X(J+1) - end do - - X(N) = ZERO - NSP1 = NSOLN - NSOLN = NSOLN - 1 - NIV1 = NIV - NIV = NIV - 1 -C -C RETRIANGULARIZE UPPER HESSENBERG MATRIX AFTER ADDING CONSTRAINTS. - J = JCON - I = KRANK + JCON - L - 450 IF (.NOT.(J.LE.NSOLN)) GO TO 570 - IF (.NOT.(ITYPE(I).EQ.0 .AND. ITYPE(I+1).EQ.0)) GO TO 470 - ASSIGN 460 TO IGO938 - GO TO 620 -C -C (ITYPE(I).EQ.0 .AND. ITYPE(I+1).EQ.0) ZERO-IP1-TO-I-IN-COL-J - 460 GO TO 560 - 470 IF (.NOT.(ITYPE(I).EQ.1 .AND. ITYPE(I+1).EQ.1)) GO TO 490 - ASSIGN 480 TO IGO938 - GO TO 620 -C -C (ITYPE(I).EQ.1 .AND. ITYPE(I+1).EQ.1) ZERO-IP1-TO-I-IN-COL-J - 480 GO TO 560 - 490 IF (.NOT.(ITYPE(I).EQ.1 .AND. ITYPE(I+1).EQ.0)) GO TO 510 - if (kind(W) == real_single) then - CALL SSWAP(NP1, W(I,1), MDW, W(I+1,1), MDW) - else if (kind(W) == real_double) then - CALL DSWAP(NP1, W(I,1), MDW, W(I+1,1), MDW) - endif - if (kind(SCALE) == real_single) then - CALL SSWAP(1, SCALE(I), 1, SCALE(I+1), 1) - else if (kind(SCALE) == real_double) then - CALL DSWAP(1, SCALE(I), 1, SCALE(I+1), 1) - endif - ITEMP = ITYPE(I+1) - ITYPE(I+1) = ITYPE(I) - ITYPE(I) = ITEMP -C -C SWAPPED ROW WAS FORMERLY A PIVOT ELT., SO IT WILL -C BE LARGE ENOUGH TO PERFORM ELIM. - ASSIGN 500 TO IGO938 - GO TO 620 -C -C ZERO-IP1-TO-I-IN-COL-J - 500 GO TO 560 - 510 IF (.NOT.(ITYPE(I).EQ.0 .AND. ITYPE(I+1).EQ.1)) GO TO 550 - T = SCALE(I)*W(I,J)**2/ALSQ - IF (.NOT.(T.GT.TAU**2*EANORM**2)) GO TO 530 - ASSIGN 520 TO IGO938 - GO TO 620 - 520 GO TO 540 - 530 if (kind(W) == real_single) then - CALL SSWAP(NP1, W(I,1), MDW, W(I+1,1), MDW) - else if (kind(W) == real_double) then - CALL DSWAP(NP1, W(I,1), MDW, W(I+1,1), MDW) - endif - if (kind(SCALE) == real_single) then - CALL SSWAP(1, SCALE(I), 1, SCALE(I+1), 1) - else if (kind(SCALE) == real_double) then - CALL DSWAP(1, SCALE(I), 1, SCALE(I+1), 1) - endif - - ITEMP = ITYPE(I+1) - ITYPE(I+1) = ITYPE(I) - ITYPE(I) = ITEMP - W(I+1,J) = ZERO - 540 CONTINUE - 550 CONTINUE - 560 I = I + 1 - J = J + 1 - GO TO 450 -C -C SEE IF THE REMAINING COEFFS IN THE SOLN SET ARE FEASIBLE. THEY -C SHOULD BE BECAUSE OF THE WAY ALPHA WAS DETERMINED. IF ANY ARE -C INFEASIBLE IT IS DUE TO ROUNDOFF ERROR. ANY THAT ARE NON- -C POSITIVE WILL BE SET TO ZERO AND REMOVED FROM THE SOLN SET. - 570 IF (.NOT.(LP1.LE.NSOLN)) GO TO 590 - DO 580 JCON=LP1,NSOLN - IF (X(JCON).LE.ZERO) GO TO 600 - 580 CONTINUE - 590 FEASBL = .TRUE. - 600 CONTINUE - GO TO 400 - 610 GO TO 1200 - 620 CONTINUE -C -C TO ZERO-IP1-TO-I-IN-COL-J - IF (.NOT.(W(I+1,J).NE.ZERO)) GO TO 630 - CALL SROTMG(SCALE(I), SCALE(I+1), W(I,J), W(I+1,J), SPARAM) - W(I+1,J) = ZERO - CALL SROTM(NP1-J, W(I,J+1), MDW, W(I+1,J+1), MDW, SPARAM) - 630 GO TO 1290 - 640 CONTINUE -C -C TO PERFORM-MULTIPLIER-TEST-AND-DROP-A-CONSTRAINT - if (kind(Z) == real_single) then - CALL SCOPY(NSOLN, Z, 1, X, 1) - else if (kind(Z) == real_double) then - CALL DCOPY(NSOLN, Z, 1, X, 1) - endif - - IF (.NOT.(NSOLN.LT.N)) GO TO 650 - X(NSP1) = ZERO - if (kind(X) == real_single) then - CALL SCOPY(N-NSOLN, X(NSP1), 0, X(NSP1), 1) - else if (kind(X) == real_double) then - CALL DCOPY(N-NSOLN, X(NSP1), 0, X(NSP1), 1) - endif - - 650 I = NIV1 - 660 IF (.NOT.(I.LE.ME)) GO TO 690 -C -C RECLASSIFY LEAST SQUARES EQATIONS AS EQUALITIES AS -C NECESSARY. - IF (.NOT.(ITYPE(I).EQ.0)) GO TO 670 - I = I + 1 - GO TO 680 - 670 if (kind(W) == real_single) then - CALL SSWAP(NP1, W(I,1), MDW, W(ME,1), MDW) - else if (kind(W) == real_double) then - CALL DSWAP(NP1, W(I,1), MDW, W(ME,1), MDW) - endif - if (kind(SCALE) == real_single) then - CALL SSWAP(1, SCALE(I), 1, SCALE(ME), 1) - else if (kind(SCALE) == real_double) then - CALL DSWAP(1, SCALE(I), 1, SCALE(ME), 1) - endif - - ITEMP = ITYPE(I) - ITYPE(I) = ITYPE(ME) - ITYPE(ME) = ITEMP - MEP1 = ME - ME = ME - 1 - 680 GO TO 660 -C -C FORM INNER PRODUCT VECTOR WD(*) OF DUAL COEFFS. - 690 IF (.NOT.(NSP1.LE.N)) GO TO 730 - DO 720 J=NSP1,N - SM = ZERO - IF (.NOT.(NSOLN.LT.M)) GO TO 710 - DO 700 I=NSP1,M - SM = SM + SCALE(I)*W(I,J)*W(I,NP1) - 700 CONTINUE - 710 WD(J) = SM - 720 CONTINUE - 730 GO TO 750 - 740 IF (POS .OR. DONE) GO TO 970 -C -C FIND J SUCH THAT WD(J)=WMAX IS MAXIMUM. THIS DETERMINES -C THAT THE INCOMING COL J WILL REDUCE THE RESIDUAL VECTOR -C AND BE POSITIVE. - 750 WMAX = ZERO - IWMAX = NSP1 - IF (.NOT.(NSP1.LE.N)) GO TO 780 - DO 770 J=NSP1,N - IF (.NOT.(WD(J).GT.WMAX)) GO TO 760 - WMAX = WD(J) - IWMAX = J - 760 CONTINUE - 770 CONTINUE - 780 IF (.NOT.(WMAX.LE.ZERO)) GO TO 790 - DONE = .TRUE. - GO TO 960 -C -C SET DUAL COEFF TO ZERO FOR INCOMING COL. - 790 WD(IWMAX) = ZERO -C -C WMAX .GT. ZERO, SO OKAY TO MOVE COL IWMAX TO SOLN SET. -C PERFORM TRANSFORMATION TO RETRIANGULARIZE, AND TEST -C FOR NEAR LINEAR DEPENDENCE. -C SWAP COL IWMAX INTO NSOLN-TH POSITION TO MAINTAIN UPPER -C HESSENBERG FORM OF ADJACENT COLS, AND ADD NEW COL TO -C TRIANGULAR DECOMPOSITION. - NSOLN = NSP1 - NSP1 = NSOLN + 1 - NIV = NIV1 - NIV1 = NIV + 1 - IF (.NOT.(NSOLN.NE.IWMAX)) GO TO 800 - if (kind(W) == real_single) then - CALL SSWAP(M, W(1,NSOLN), 1, W(1,IWMAX), 1) - else if (kind(W) == real_double) then - CALL DSWAP(M, W(1,NSOLN), 1, W(1,IWMAX), 1) - endif - WD(IWMAX) = WD(NSOLN) - WD(NSOLN) = ZERO - ITEMP = IPIVOT(NSOLN) - IPIVOT(NSOLN) = IPIVOT(IWMAX) - IPIVOT(IWMAX) = ITEMP -C -C REDUCE COL NSOLN SO THAT THE MATRIX OF NONACTIVE -C CONSTRAINTS VARIABLES IS TRIANGULAR. - 800 J = M - 810 IF (.NOT.(J.GT.NIV)) GO TO 870 - JM1 = J - 1 - JP = JM1 -C -C WHEN OPERATING NEAR THE ME LINE, TEST TO SEE IF THE PIVOT ELT. -C IS NEAR ZERO. IF SO, USE THE LARGEST ELT. ABOVE IT AS THE PIVOT. -C THIS IS TO MAINTAIN THE SHARP INTERFACE BETWEEN WEIGHTED AND -C NON-WEIGHTED ROWS IN ALL CASES. - IF (.NOT.(J.EQ.MEP1)) GO TO 850 - IMAX = ME - AMAX = SCALE(ME)*W(ME,NSOLN)**2 - 820 IF (.NOT.(JP.GE.NIV)) GO TO 840 - T = SCALE(JP)*W(JP,NSOLN)**2 - IF (.NOT.(T.GT.AMAX)) GO TO 830 - IMAX = JP - AMAX = T - 830 JP = JP - 1 - GO TO 820 - 840 JP = IMAX - 850 IF (.NOT.(W(J,NSOLN).NE.ZERO)) GO TO 860 - CALL SROTMG(SCALE(JP), SCALE(J), W(JP,NSOLN), W(J,NSOLN), SPARAM) - W(J,NSOLN) = ZERO - CALL SROTM(NP1-NSOLN, W(JP,NSP1), MDW, W(J,NSP1), MDW, SPARAM) - 860 J = JM1 - GO TO 810 -C -C SOLVE FOR Z(NSOLN)=PROPOSED NEW VALUE FOR X(NSOLN). -C TEST IF THIS IS NONPOSITIVE OR TOO LARGE. -C IF THIS WAS TRUE OR IF THE PIVOT TERM WAS ZERO REJECT -C THE COL AS DEPENDENT. - 870 IF (.NOT.(W(NIV,NSOLN).NE.ZERO)) GO TO 890 - ISOL = NIV - ASSIGN 880 TO IGO897 - GO TO 980 -C -C TEST-PROPOSED-NEW-COMPONENT - 880 GO TO 940 - 890 IF (.NOT.(NIV.LE.ME .AND. W(MEP1,NSOLN).NE.ZERO)) GO TO 920 -C -C TRY TO ADD ROW MEP1 AS AN ADDITIONAL EQUALITY CONSTRAINT. -C CHECK SIZE OF PROPOSED NEW SOLN COMPONENT. -C REJECT IT IF IT IS TOO LARGE. - ISOL = MEP1 - ASSIGN 900 TO IGO897 - GO TO 980 -C -C TEST-PROPOSED-NEW-COMPONENT - 900 IF (.NOT.(POS)) GO TO 910 -C -C SWAP ROWS MEP1 AND NIV, AND SCALE FACTORS FOR THESE ROWS. - - if (kind(W) == real_single) then - CALL SSWAP(NP1, W(MEP1,1), MDW, W(NIV,1), MDW) - else if (kind(W) == real_double) then - CALL DSWAP(NP1, W(MEP1,1), MDW, W(NIV,1), MDW) - endif - if (kind(SCALE) == real_single) then - CALL SSWAP(1, SCALE(MEP1), 1, SCALE(NIV), 1) - else if (kind(SCALE) == real_double) then - CALL DSWAP(1, SCALE(MEP1), 1, SCALE(NIV), 1) - endif - - ITEMP = ITYPE(MEP1) - ITYPE(MEP1) = ITYPE(NIV) - ITYPE(NIV) = ITEMP - ME = MEP1 - MEP1 = ME + 1 - 910 GO TO 930 - 920 POS = .FALSE. - 930 CONTINUE - 940 IF (POS) GO TO 950 - NSP1 = NSOLN - NSOLN = NSOLN - 1 - NIV1 = NIV - NIV = NIV - 1 - 950 CONTINUE - 960 GO TO 740 - 970 GO TO 1250 - 980 CONTINUE -C -C TO TEST-PROPOSED-NEW-COMPONENT - Z2 = W(ISOL,NP1)/W(ISOL,NSOLN) - Z(NSOLN) = Z2 - POS = Z2.GT.ZERO - IF (.NOT.(Z2*EANORM.GE.BNORM .AND. POS)) GO TO 990 - POS = .NOT.(BLOWUP*Z2*EANORM.GE.BNORM) - 990 GO TO 1280 - 1000 CONTINUE -C TO COMPUTE-FINAL-SOLUTION -C -C SOLVE SYSTEM, STORE RESULTS IN X(*). -C - ASSIGN 1010 TO IGO958 - GO TO 1110 -C SOLVE-SYSTEM - 1010 if (kind(Z) == real_single) then - CALL SCOPY(NSOLN, Z, 1, X, 1) - else if (kind(Z) == real_double) then - CALL DCOPY(NSOLN, Z, 1, X, 1) - endif -C -C APPLY HOUSEHOLDER TRANSFORMATIONS TO X(*) IF KRANK.LT.L - IF (.NOT.(0.LT.KRANK .AND. KRANK.LT.L)) GO TO 1030 - DO 1020 I=1,KRANK - CALL H12(2, I, KRP1, L, W(I,1), MDW, H(I), X, 1, 1, 1) - 1020 CONTINUE -C -C FILL IN TRAILING ZEROES FOR CONSTRAINED VARIABLES NOT IN SOLN. - 1030 IF (.NOT.(NSOLN.LT.N)) GO TO 1040 - X(NSP1) = ZERO - if (kind(X) == real_single) then - CALL SCOPY(N-NSOLN, X(NSP1), 0, X(NSP1), 1) - else if (kind(X) == real_double) then - CALL DCOPY(N-NSOLN, X(NSP1), 0, X(NSP1), 1) - endif -C -C REPERMUTE SOLN VECTOR TO NATURAL ORDER. - 1040 DO 1070 I=1,N - J = I - 1050 IF (IPIVOT(J).EQ.I) GO TO 1060 - J = J + 1 - GO TO 1050 - 1060 IPIVOT(J) = IPIVOT(I) - IPIVOT(I) = J - if (kind(X) == real_single) then - CALL SSWAP(1, X(J), 1, X(I), 1) - else if (kind(X) == real_double) then - CALL DSWAP(1, X(J), 1, X(I), 1) - endif - 1070 CONTINUE -C -C RESCALE THE SOLN USING THE COL SCALING. - DO 1080 J=1,N - X(J) = X(J)*D(J) - 1080 CONTINUE - IF (.NOT.(NSOLN.LT.M)) GO TO 1100 - DO 1090 I=NSP1,M - T = W(I,NP1) - IF (I.LE.ME) T = T/ALAMDA - T = (SCALE(I)*T)*T - RNORM = RNORM + T - 1090 CONTINUE - 1100 RNORM = SQRT(RNORM) - GO TO 1210 -C -C TO SOLVE-SYSTEM -C - 1110 CONTINUE - IF (.NOT.(DONE)) GO TO 1120 - ISOL = 1 - GO TO 1130 - 1120 ISOL = LP1 - 1130 IF (.NOT.(NSOLN.GE.ISOL)) GO TO 1190 -C -C COPY RT. HAND SIDE INTO TEMP VECTOR TO USE OVERWRITING METHOD. - if (kind(W) == real_single) then - CALL SCOPY(NIV, W(1,NP1), 1, TEMP, 1) - else if (kind(W) == real_double) then - CALL DCOPY(NIV, W(1,NP1), 1, TEMP, 1) - endif - - DO 1180 JJ=ISOL,NSOLN - J = NSOLN - JJ + ISOL - IF (.NOT.(J.GT.KRANK)) GO TO 1140 - I = NIV - JJ + ISOL - GO TO 1150 - 1140 I = J - 1150 IF (.NOT.(J.GT.KRANK .AND. J.LE.L)) GO TO 1160 - Z(J) = ZERO - GO TO 1170 - 1160 Z(J) = TEMP(I)/W(I,J) - - if (kind(W) == real_single .and. kind(TEMP) == real_single) - & then - CALL SAXPY(I-1, -Z(J), W(1,J), 1, TEMP, 1) - else if (kind(W) == real_double .and. kind(TEMP) == real_double) - & then - CALL DAXPY(I-1, -Z(J), W(1,J), 1, TEMP, 1) - endif - - 1170 CONTINUE - 1180 CONTINUE - 1190 GO TO 1270 - 1200 GO TO IGO986, (40) - 1210 GO TO IGO980, (90) - 1220 GO TO IGO991, (30) - 1230 GO TO IGO998, (10) - 1240 GO TO IGO995, (20) - 1250 GO TO IGO983, (60) - 1260 GO TO IGO977, (220) - 1270 GO TO IGO958, (310, 1010) - 1280 GO TO IGO897, (880, 900) - 1290 GO TO IGO938, (460, 480, 500, 520) - END diff --git a/sorc/relocate_mv_nvortex.fd/WNNLS.f b/sorc/relocate_mv_nvortex.fd/WNNLS.f deleted file mode 100755 index eadec53d79..0000000000 --- a/sorc/relocate_mv_nvortex.fd/WNNLS.f +++ /dev/null @@ -1,356 +0,0 @@ - SUBROUTINE WNNLS(W,MDW,ME,MA,N,L,PRGOPT,X,RNORM,MODE,IWORK,WORK) -C***BEGIN PROLOGUE WNNLS -C***DATE WRITTEN 790701 (YYMMDD) -C***REVISION DATE 820801 (YYMMDD) -C***CATEGORY NO. K1A2A -C***KEYWORDS CONSTRAINED LEAST SQUARES,CURVE FITTING,DATA FITTING, -C EQUALITY CONSTRAINTS,INEQUALITY CONSTRAINTS, -C NONNEGATIVITY CONSTRAINTS,QUADRATIC PROGRAMMING -C***AUTHOR HANSON, R. J., (SNLA) -C HASKELL, K. H., (SNLA) -C***PURPOSE Solve a linearly constrained least squares problem with -C equality constraints and nonnegativity constraints on -C selected variables. -C***DESCRIPTION -C -C DIMENSION W(MDW,N+1),PRGOPT(*),X(N),IWORK(M+N),WORK(M+5*N) -C -C Written by Karen H. Haskell, Sandia Laboratories, -C and R.J. Hanson, Sandia Laboratories. -C -C Abstract -C -C This subprogram solves a linearly constrained least squares -C problem. Suppose there are given matrices E and A of -C respective dimensions ME by N and MA by N, and vectors F -C and B of respective lengths ME and MA. This subroutine -C solves the problem -C -C EX = F, (equations to be exactly satisfied) -C -C AX = B, (equations to be approximately satisfied, -C in the least squares sense) -C -C subject to components L+1,...,N nonnegative -C -C Any values ME.GE.0, MA.GE.0 and 0.LE. L .LE.N are permitted. -C -C The problem is reposed as problem WNNLS -C -C (WT*E)X = (WT*F) -C ( A) ( B), (least squares) -C subject to components L+1,...,N nonnegative. -C -C The subprogram chooses the heavy weight (or penalty parameter) WT. -C -C The parameters for WNNLS are -C -C INPUT.. -C -C W(*,*),MDW, The array W(*,*) is double subscripted with first -C ME,MA,N,L dimensioning parameter equal to MDW. For this -C discussion let us call M = ME + MA. Then MDW -C must satisfy MDW.GE.M. The condition MDW.LT.M -C is an error. -C -C The array W(*,*) contains the matrices and vectors -C -C (E F) -C (A B) -C -C in rows and columns 1,...,M and 1,...,N+1 -C respectively. Columns 1,...,L correspond to -C unconstrained variables X(1),...,X(L). The -C remaining variables are constrained to be -C nonnegative. The condition L.LT.0 or L.GT.N is -C an error. -C -C PRGOPT(*) This real-valued array is the option vector. -C If the user is satisfied with the nominal -C subprogram features set -C -C PRGOPT(1)=1 (or PRGOPT(1)=1.0) -C -C Otherwise PRGOPT(*) is a linked list consisting of -C groups of data of the following form -C -C LINK -C KEY -C DATA SET -C -C The parameters LINK and KEY are each one word. -C The DATA SET can be comprised of several words. -C The number of items depends on the value of KEY. -C The value of LINK points to the first -C entry of the next group of data within -C PRGOPT(*). The exception is when there are -C no more options to change. In that -C case LINK=1 and the values KEY and DATA SET -C are not referenced. The general layout of -C PRGOPT(*) is as follows. -C -C ...PRGOPT(1)=LINK1 (link to first entry of next group) -C . PRGOPT(2)=KEY1 (key to the option change) -C . PRGOPT(3)=DATA VALUE (data value for this change) -C . . -C . . -C . . -C ...PRGOPT(LINK1)=LINK2 (link to the first entry of -C . next group) -C . PRGOPT(LINK1+1)=KEY2 (key to the option change) -C . PRGOPT(LINK1+2)=DATA VALUE -C ... . -C . . -C . . -C ...PRGOPT(LINK)=1 (no more options to change) -C -C Values of LINK that are nonpositive are errors. -C A value of LINK.GT.NLINK=100000 is also an error. -C This helps prevent using invalid but positive -C values of LINK that will probably extend -C beyond the program limits of PRGOPT(*). -C Unrecognized values of KEY are ignored. The -C order of the options is arbitrary and any number -C of options can be changed with the following -C restriction. To prevent cycling in the -C processing of the option array a count of the -C number of options changed is maintained. -C Whenever this count exceeds NOPT=1000 an error -C message is printed and the subprogram returns. -C -C OPTIONS.. -C -C KEY=6 -C Scale the nonzero columns of the -C entire data matrix -C (E) -C (A) -C to have length one. The DATA SET for -C this option is a single value. It must -C be nonzero if unit length column scaling is -C desired. -C -C KEY=7 -C Scale columns of the entire data matrix -C (E) -C (A) -C with a user-provided diagonal matrix. -C The DATA SET for this option consists -C of the N diagonal scaling factors, one for -C each matrix column. -C -C KEY=8 -C Change the rank determination tolerance from -C the nominal value of SQRT(SRELPR). This quantity -C can be no smaller than SRELPR, The arithmetic- -C storage precision. The quantity used -C here is internally restricted to be at -C least SRELPR. The DATA SET for this option -C is the new tolerance. -C -C KEY=9 -C Change the blow-up parameter from the -C nominal value of SQRT(SRELPR). The reciprocal of -C this parameter is used in rejecting solution -C components as too large when a variable is -C first brought into the active set. Too large -C means that the proposed component times the -C reciprocal of the parameter is not less than -C the ratio of the norms of the right-side -C vector and the data matrix. -C This parameter can be no smaller than SRELPR, -C the arithmetic-storage precision. -C -C For example, suppose we want to provide -C a diagonal matrix to scale the problem -C matrix and change the tolerance used for -C determining linear dependence of dropped col -C vectors. For these options the dimensions of -C PRGOPT(*) must be at least N+6. The FORTRAN -C statements defining these options would -C be as follows. -C -C PRGOPT(1)=N+3 (link to entry N+3 in PRGOPT(*)) -C PRGOPT(2)=7 (user-provided scaling key) -C -C CALL SCOPY(N,D,1,PRGOPT(3),1) (copy the N -C scaling factors from a user array called D(*) -C into PRGOPT(3)-PRGOPT(N+2)) -C -C PRGOPT(N+3)=N+6 (link to entry N+6 of PRGOPT(*)) -C PRGOPT(N+4)=8 (linear dependence tolerance key) -C PRGOPT(N+5)=... (new value of the tolerance) -C -C PRGOPT(N+6)=1 (no more options to change) -C -C -C IWORK(1), The amounts of working storage actually allocated -C IWORK(2) for the working arrays WORK(*) and IWORK(*), -C respectively. These quantities are compared with -C the actual amounts of storage needed for WNNLS( ). -C Insufficient storage allocated for either WORK(*) -C or IWORK(*) is considered an error. This feature -C was included in WNNLS( ) because miscalculating -C the storage formulas for WORK(*) and IWORK(*) -C might very well lead to subtle and hard-to-find -C execution errors. -C -C The length of WORK(*) must be at least -C -C LW = ME+MA+5*N -C This test will not be made if IWORK(1).LE.0. -C -C The length of IWORK(*) must be at least -C -C LIW = ME+MA+N -C This test will not be made if IWORK(2).LE.0. -C -C OUTPUT.. -C -C X(*) An array dimensioned at least N, which will -C contain the N components of the solution vector -C on output. -C -C RNORM The residual norm of the solution. The value of -C RNORM contains the residual vector length of the -C equality constraints and least squares equations. -C -C MODE The value of MODE indicates the success or failure -C of the subprogram. -C -C MODE = 0 Subprogram completed successfully. -C -C = 1 Max. number of iterations (equal to -C 3*(N-L)) exceeded. Nearly all problems -C should complete in fewer than this -C number of iterations. An approximate -C solution and its corresponding residual -C vector length are in X(*) and RNORM. -C -C = 2 Usage error occurred. The offending -C condition is noted with the error -C processing subprogram, XERROR( ). -C -C User-designated -C Working arrays.. -C -C WORK(*) A real-valued working array of length at least -C M + 5*N. -C -C IWORK(*) An integer-valued working array of length at least -C M+N. -C***REFERENCES K.H. HASKELL AND R.J. HANSON, *AN ALGORITHM FOR -C LINEAR LEAST SQUARES PROBLEMS WITH EQUALITY AND -C NONNEGATIVITY CONSTRAINTS*, SAND77-0552, JUNE 1978. -C K.H. HASKELL AND R.J. HANSON, *SELECTED ALGORITHMS FOR -C THE LINEARLY CONSTRAINED LEAST SQUARES PROBLEM-- -C A USERS GUIDE*, SAND78-1290, AUGUST 1979. -C K.H. HASKELL AND R.H. HANSON, *AN ALGORITHM FOR -C LINEAR LEAST SQUARES PROBLEMS WITH EQUALITY AND -C NONNEGATIVITY CONSTRAINTS*, MATH. PROG. 21 (1981), -C PP. 98-118. -C R.J. HANSON AND K.H. HASKELL, *TWO ALGORITHMS FOR THE -C LINEARLY CONSTRAINED LEAST SQUARES PROBLEM*, ACM -C TRANS. ON MATH. SOFTWARE, SEPT. 1982. -C***ROUTINES CALLED WNLSM,XERROR,XERRWV -C***END PROLOGUE WNNLS -C -C THE EDITING REQUIRED TO CONVERT THIS SUBROUTINE FROM SINGLE TO -C DOUBLE PRECISION INVOLVES THE FOLLOWING CHARACTER STRING CHANGES. -C USE AN EDITING COMMAND (CHANGE) /STRING-1/(TO)STRING-2/. -C (START AT LINE WITH C++ IN COLS. 1-3.) -C /REAL (12 BLANKS)/DOUBLE PRECISION/,/, DUMMY/,SNGL(DUMMY)/ -C -C WRITTEN BY KAREN H. HASKELL, SANDIA LABORATORIES, -C AND R.J. HANSON, SANDIA LABORATORIES. -C REVISED FEB.25, 1982. -C -C SUBROUTINES CALLED BY WNNLS( ) -C -C++ -C WNLSM COMPANION SUBROUTINE TO WNNLS( ), WHERE -C MOST OF THE COMPUTATION TAKES PLACE. -C -C XERROR,XERRWV FROM SLATEC ERROR PROCESSING PACKAGE. -C THIS IS DOCUMENTED IN SANDIA TECH. REPT., -C SAND78-1189. -C -C REFERENCES -C -C 1. SOLVING LEAST SQUARES PROBLEMS, BY C.L. LAWSON -C AND R.J. HANSON. PRENTICE-HALL, INC. (1974). -C -C 2. BASIC LINEAR ALGEBRA SUBPROGRAMS FOR FORTRAN USAGE, BY -C C.L. LAWSON, R.J. HANSON, D.R. KINCAID, AND F.T. KROGH. -C TOMS, V. 5, NO. 3, P. 308. ALSO AVAILABLE AS -C SANDIA TECHNICAL REPORT NO. SAND77-0898. -C -C 3. AN ALGORITHM FOR LINEAR LEAST SQUARES WITH EQUALITY -C AND NONNEGATIVITY CONSTRAINTS, BY K.H. HASKELL AND -C R.J. HANSON. AVAILABLE AS SANDIA TECHNICAL REPORT NO. -C SAND77-0552, AND MATH. PROGRAMMING, VOL. 21, (1981), P. 98-118. -C -C 4. SLATEC COMMON MATH. LIBRARY ERROR HANDLING -C PACKAGE. BY R. E. JONES. AVAILABLE AS SANDIA -C TECHNICAL REPORT SAND78-1189. -C - REAL DUMMY, W(MDW,1), PRGOPT(1), X(1), WORK(1), RNORM - INTEGER IWORK(*) -C -C -C***FIRST EXECUTABLE STATEMENT WNNLS - MODE = 0 - iwork(1)=mdw*6 - iwork(2)=mdw*2 - IF (MA+ME.LE.0 .OR. N.LE.0) RETURN - IF (.NOT.(IWORK(1).GT.0)) GO TO 20 - LW = ME + MA + 5*N - IF (.NOT.(IWORK(1).LT.LW)) GO TO 10 - NERR = 2 - IOPT = 1 - write(6,*) 'work array',iwork(1),lw - CALL XERRWV( 'WNNLS( ), INSUFFICIENT STORAGE ALLOCATED FOR WORK(*) - 1, NEED LW=I1 BELOW', 70, NERR, IOPT, 1, LW, 0, 0, DUMMY, DUMMY) - MODE = 2 - RETURN - 10 CONTINUE - 20 IF (.NOT.(IWORK(2).GT.0)) GO TO 40 - LIW = ME + MA + N - IF (.NOT.(IWORK(2).LT.LIW)) GO TO 30 - NERR = 2 - IOPT = 1 - CALL XERRWV( 'WNNLS( ), INSUFFICIENT STORAGE ALLOCATED FOR IWORK(* - 1), NEED LIW=I1 BELOW', 72, NERR, IOPT, 1, LIW, 0, 0, DUMMY, DUMMY) - MODE = 2 - RETURN - 30 CONTINUE - 40 IF (.NOT.(MDW.LT.ME+MA)) GO TO 50 - NERR = 1 - IOPT = 1 - CALL XERROR( 'WNNLS( ), THE VALUE MDW.LT.ME+MA IS AN ERROR', 44, - 1 NERR, IOPT) - MODE = 2 - RETURN - 50 IF (0.LE.L .AND. L.LE.N) GO TO 60 - NERR = 2 - IOPT = 1 - CALL XERROR( 'WNNLS( ), L.LE.0.AND.L.LE.N IS REQUIRED', 39, NERR, - 1 IOPT) - MODE = 2 - RETURN -C -C THE PURPOSE OF THIS SUBROUTINE IS TO BREAK UP THE ARRAYS -C WORK(*) AND IWORK(*) INTO SEPARATE WORK ARRAYS -C REQUIRED BY THE MAIN SUBROUTINE WNLSM( ). -C - 60 L1 = N + 1 - L2 = L1 + N - L3 = L2 + ME + MA - L4 = L3 + N - L5 = L4 + N -C - CALL WNLSM(W, MDW, ME, MA, N, L, PRGOPT, X, RNORM, MODE, IWORK, - 1 IWORK(L1), WORK(1), WORK(L1), WORK(L2), WORK(L3), WORK(L4), - 2 WORK(L5)) - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/XERABT.f b/sorc/relocate_mv_nvortex.fd/XERABT.f deleted file mode 100755 index 95990ae709..0000000000 --- a/sorc/relocate_mv_nvortex.fd/XERABT.f +++ /dev/null @@ -1,31 +0,0 @@ - SUBROUTINE XERABT(MESSG,NMESSG) -C***BEGIN PROLOGUE XERABT -C***DATE WRITTEN 790801 (YYMMDD) -C***REVISION DATE 820801 (YYMMDD) -C***CATEGORY NO. R3C -C***KEYWORDS ERROR,XERROR PACKAGE -C***AUTHOR JONES, R. E., (SNLA) -C***PURPOSE Aborts program execution and prints error message. -C***DESCRIPTION -C Abstract -C ***Note*** machine dependent routine -C XERABT aborts the execution of the program. -C The error message causing the abort is given in the calling -C sequence, in case one needs it for printing on a dayfile, -C for example. -C -C Description of Parameters -C MESSG and NMESSG are as in XERROR, except that NMESSG may -C be zero, in which case no message is being supplied. -C -C Written by Ron Jones, with SLATEC Common Math Library Subcommittee -C Latest revision --- 19 MAR 1980 -C***REFERENCES JONES R.E., KAHANER D.K., "XERROR, THE SLATEC ERROR-" -C HANDLING PACKAGE", SAND82-0800, SANDIA LABORATORIES," -C 1982. -C***ROUTINES CALLED (NONE) -C***END PROLOGUE XERABT - CHARACTER*(*) MESSG -C***FIRST EXECUTABLE STATEMENT XERABT - STOP - END diff --git a/sorc/relocate_mv_nvortex.fd/XERCTL.f b/sorc/relocate_mv_nvortex.fd/XERCTL.f deleted file mode 100755 index 6020d55588..0000000000 --- a/sorc/relocate_mv_nvortex.fd/XERCTL.f +++ /dev/null @@ -1,47 +0,0 @@ - SUBROUTINE XERCTL(MESSG1,NMESSG,NERR,LEVEL,KONTRL) -C***BEGIN PROLOGUE XERCTL -C***DATE WRITTEN 790801 (YYMMDD) -C***REVISION DATE 820801 (YYMMDD) -C***CATEGORY NO. R3C -C***KEYWORDS ERROR,XERROR PACKAGE -C***AUTHOR JONES, R. E., (SNLA) -C***PURPOSE Allows user control over handling of individual errors. -C***DESCRIPTION -C Abstract -C Allows user control over handling of individual errors. -C Just after each message is recorded, but before it is -C processed any further (i.e., before it is printed or -C a decision to abort is made), a call is made to XERCTL. -C If the user has provided his own version of XERCTL, he -C can then override the value of KONTROL used in processing -C this message by redefining its value. -C KONTRL may be set to any value from -2 to 2. -C The meanings for KONTRL are the same as in XSETF, except -C that the value of KONTRL changes only for this message. -C If KONTRL is set to a value outside the range from -2 to 2, -C it will be moved back into that range. -C -C Description of Parameters -C -C --Input-- -C MESSG1 - the first word (only) of the error message. -C NMESSG - same as in the call to XERROR or XERRWV. -C NERR - same as in the call to XERROR or XERRWV. -C LEVEL - same as in the call to XERROR or XERRWV. -C KONTRL - the current value of the control flag as set -C by a call to XSETF. -C -C --Output-- -C KONTRL - the new value of KONTRL. If KONTRL is not -C defined, it will remain at its original value. -C This changed value of control affects only -C the current occurrence of the current message. -C***REFERENCES JONES R.E., KAHANER D.K., "XERROR, THE SLATEC ERROR-" -C HANDLING PACKAGE", SAND82-0800, SANDIA LABORATORIES," -C 1982. -C***ROUTINES CALLED (NONE) -C***END PROLOGUE XERCTL - CHARACTER*20 MESSG1 -C***FIRST EXECUTABLE STATEMENT XERCTL - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/XERPRT.f b/sorc/relocate_mv_nvortex.fd/XERPRT.f deleted file mode 100755 index 6370bc017a..0000000000 --- a/sorc/relocate_mv_nvortex.fd/XERPRT.f +++ /dev/null @@ -1,34 +0,0 @@ - SUBROUTINE XERPRT(MESSG,NMESSG) -C***BEGIN PROLOGUE XERPRT -C***DATE WRITTEN 790801 (YYMMDD) -C***REVISION DATE 820801 (YYMMDD) -C***CATEGORY NO. Z -C***KEYWORDS ERROR,XERROR PACKAGE -C***AUTHOR JONES, R. E., (SNLA) -C***PURPOSE Prints error messages. -C***DESCRIPTION -C Abstract -C Print the Hollerith message in MESSG, of length NMESSG, -C on each file indicated by XGETUA. -C Latest revision --- 19 MAR 1980 -C***REFERENCES JONES R.E., KAHANER D.K., "XERROR, THE SLATEC ERROR-" -C HANDLING PACKAGE", SAND82-0800, SANDIA LABORATORIES," -C 1982. -C***ROUTINES CALLED I1MACH,S88FMT,XGETUA -C***END PROLOGUE XERPRT - INTEGER LUN(5) - CHARACTER*(*) MESSG -C OBTAIN UNIT NUMBERS AND WRITE LINE TO EACH UNIT -C***FIRST EXECUTABLE STATEMENT XERPRT - CALL XGETUA(LUN,NUNIT) - LENMES = LEN(MESSG) - DO 20 KUNIT=1,NUNIT - IUNIT = LUN(KUNIT) - IF (IUNIT.EQ.0) IUNIT = I1MACH(4) - DO 10 ICHAR=1,LENMES,72 - LAST = MIN0(ICHAR+71 , LENMES) - WRITE (IUNIT,'(1X,A)') MESSG(ICHAR:LAST) - 10 CONTINUE - 20 CONTINUE - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/XERROR.f b/sorc/relocate_mv_nvortex.fd/XERROR.f deleted file mode 100755 index 56b0f98000..0000000000 --- a/sorc/relocate_mv_nvortex.fd/XERROR.f +++ /dev/null @@ -1,51 +0,0 @@ - SUBROUTINE XERROR(MESSG,NMESSG,NERR,LEVEL) -C***BEGIN PROLOGUE XERROR -C***DATE WRITTEN 790801 (YYMMDD) -C***REVISION DATE 820801 (YYMMDD) -C***CATEGORY NO. R3C -C***KEYWORDS ERROR,XERROR PACKAGE -C***AUTHOR JONES, R. E., (SNLA) -C***PURPOSE Processes an error (diagnostic) message. -C***DESCRIPTION -C Abstract -C XERROR processes a diagnostic message, in a manner -C determined by the value of LEVEL and the current value -C of the library error control flag, KONTRL. -C (See subroutine XSETF for details.) -C -C Description of Parameters -C --Input-- -C MESSG - the Hollerith message to be processed, containing -C no more than 72 characters. -C NMESSG- the actual number of characters in MESSG. -C NERR - the error number associated with this message. -C NERR must not be zero. -C LEVEL - error category. -C =2 means this is an unconditionally fatal error. -C =1 means this is a recoverable error. (I.e., it is -C non-fatal if XSETF has been appropriately called.) -C =0 means this is a warning message only. -C =-1 means this is a warning message which is to be -C printed at most once, regardless of how many -C times this call is executed. -C -C Examples -C CALL XERROR('SMOOTH -- NUM WAS ZERO.',23,1,2) -C CALL XERROR('INTEG -- LESS THAN FULL ACCURACY ACHIEVED.', -C 43,2,1) -C CALL XERROR('ROOTER -- ACTUAL ZERO OF F FOUND BEFORE INTERVAL F -C 1ULLY COLLAPSED.',65,3,0) -C CALL XERROR('EXP -- UNDERFLOWS BEING SET TO ZERO.',39,1,-1) -C -C Latest revision --- 19 MAR 1980 -C Written by Ron Jones, with SLATEC Common Math Library Subcommittee -C***REFERENCES JONES R.E., KAHANER D.K., "XERROR, THE SLATEC ERROR-" -C HANDLING PACKAGE", SAND82-0800, SANDIA LABORATORIES," -C 1982. -C***ROUTINES CALLED XERRWV -C***END PROLOGUE XERROR - CHARACTER*(*) MESSG -C***FIRST EXECUTABLE STATEMENT XERROR - CALL XERRWV(MESSG,NMESSG,NERR,LEVEL,0,0,0,0,0.,0.) - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/XERRWV.f b/sorc/relocate_mv_nvortex.fd/XERRWV.f deleted file mode 100755 index 7dfa412675..0000000000 --- a/sorc/relocate_mv_nvortex.fd/XERRWV.f +++ /dev/null @@ -1,153 +0,0 @@ - SUBROUTINE XERRWV(MESSG,NMESSG,NERR,LEVEL,NI,I1,I2,NR,R1,R2) -C***BEGIN PROLOGUE XERRWV -C***DATE WRITTEN 800319 (YYMMDD) -C***REVISION DATE 820801 (YYMMDD) -C***CATEGORY NO. R3C -C***KEYWORDS ERROR,XERROR PACKAGE -C***AUTHOR JONES, R. E., (SNLA) -C***PURPOSE Processes error message allowing 2 integer and two real -C values to be included in the message. -C***DESCRIPTION -C Abstract -C XERRWV processes a diagnostic message, in a manner -C determined by the value of LEVEL and the current value -C of the library error control flag, KONTRL. -C (See subroutine XSETF for details.) -C In addition, up to two integer values and two real -C values may be printed along with the message. -C -C Description of Parameters -C --Input-- -C MESSG - the Hollerith message to be processed. -C NMESSG- the actual number of characters in MESSG. -C NERR - the error number associated with this message. -C NERR must not be zero. -C LEVEL - error category. -C =2 means this is an unconditionally fatal error. -C =1 means this is a recoverable error. (I.e., it is -C non-fatal if XSETF has been appropriately called.) -C =0 means this is a warning message only. -C =-1 means this is a warning message which is to be -C printed at most once, regardless of how many -C times this call is executed. -C NI - number of integer values to be printed. (0 to 2) -C I1 - first integer value. -C I2 - second integer value. -C NR - number of real values to be printed. (0 to 2) -C R1 - first real value. -C R2 - second real value. -C -C Examples -C CALL XERRWV('SMOOTH -- NUM (=I1) WAS ZERO.',29,1,2, -C 1 1,NUM,0,0,0.,0.) -C CALL XERRWV('QUADXY -- REQUESTED ERROR (R1) LESS THAN MINIMUM ( -C 1R2).,54,77,1,0,0,0,2,ERRREQ,ERRMIN) -C -C Latest revision --- 19 MAR 1980 -C Written by Ron Jones, with SLATEC Common Math Library Subcommittee -C***REFERENCES JONES R.E., KAHANER D.K., "XERROR, THE SLATEC ERROR-" -C HANDLING PACKAGE", SAND82-0800, SANDIA LABORATORIES," -C 1982. -C***ROUTINES CALLED FDUMP,I1MACH,J4SAVE,XERABT,XERCTL,XERPRT,XERSAV, -C XGETUA -C***END PROLOGUE XERRWV - CHARACTER*(*) MESSG - CHARACTER*20 LFIRST - CHARACTER*37 FORM - DIMENSION LUN(5) -C GET FLAGS -C***FIRST EXECUTABLE STATEMENT XERRWV - LKNTRL = J4SAVE(2,0,.FALSE.) - MAXMES = J4SAVE(4,0,.FALSE.) -C CHECK FOR VALID INPUT - IF ((NMESSG.GT.0).AND.(NERR.NE.0).AND. - 1 (LEVEL.GE.(-1)).AND.(LEVEL.LE.2)) GO TO 10 - IF (LKNTRL.GT.0) CALL XERPRT('FATAL ERROR IN...',17) - CALL XERPRT('XERROR -- INVALID INPUT',23) - IF (LKNTRL.GT.0) CALL FDUMP - IF (LKNTRL.GT.0) CALL XERPRT('JOB ABORT DUE TO FATAL ERROR.', - 1 29) - IF (LKNTRL.GT.0) CALL XERSAV(' ',0,0,0,KDUMMY) - CALL XERABT('XERROR -- INVALID INPUT',23) - RETURN - 10 CONTINUE -C RECORD MESSAGE - JUNK = J4SAVE(1,NERR,.TRUE.) - CALL XERSAV(MESSG,NMESSG,NERR,LEVEL,KOUNT) -C LET USER OVERRIDE - LFIRST = MESSG - LMESSG = NMESSG - LERR = NERR - LLEVEL = LEVEL - CALL XERCTL(LFIRST,LMESSG,LERR,LLEVEL,LKNTRL) -C RESET TO ORIGINAL VALUES - LMESSG = NMESSG - LERR = NERR - LLEVEL = LEVEL - LKNTRL = MAX0(-2,MIN0(2,LKNTRL)) - MKNTRL = IABS(LKNTRL) -C DECIDE WHETHER TO PRINT MESSAGE - IF ((LLEVEL.LT.2).AND.(LKNTRL.EQ.0)) GO TO 100 - IF (((LLEVEL.EQ.(-1)).AND.(KOUNT.GT.MIN0(1,MAXMES))) - 1.OR.((LLEVEL.EQ.0) .AND.(KOUNT.GT.MAXMES)) - 2.OR.((LLEVEL.EQ.1) .AND.(KOUNT.GT.MAXMES).AND.(MKNTRL.EQ.1)) - 3.OR.((LLEVEL.EQ.2) .AND.(KOUNT.GT.MAX0(1,MAXMES)))) GO TO 100 - IF (LKNTRL.LE.0) GO TO 20 - CALL XERPRT(' ',1) -C INTRODUCTION - IF (LLEVEL.EQ.(-1)) CALL XERPRT - 1('WARNING MESSAGE...THIS MESSAGE WILL ONLY BE PRINTED ONCE.',57) - IF (LLEVEL.EQ.0) CALL XERPRT('WARNING IN...',13) - IF (LLEVEL.EQ.1) CALL XERPRT - 1 ('RECOVERABLE ERROR IN...',23) - IF (LLEVEL.EQ.2) CALL XERPRT('FATAL ERROR IN...',17) - 20 CONTINUE -C MESSAGE - CALL XERPRT(MESSG,LMESSG) - CALL XGETUA(LUN,NUNIT) - ISIZEI = LOG10(FLOAT(I1MACH(9))) + 1.0 - ISIZEF = LOG10(FLOAT(I1MACH(10))**I1MACH(11)) + 1.0 - DO 50 KUNIT=1,NUNIT - IUNIT = LUN(KUNIT) - IF (IUNIT.EQ.0) IUNIT = I1MACH(4) - DO 22 I=1,MIN(NI,2) - WRITE (FORM,21) I,ISIZEI - 21 FORMAT ('(11X,21HIN ABOVE MESSAGE, I',I1,'=,I',I2,') ') - IF (I.EQ.1) WRITE (IUNIT,FORM) I1 - IF (I.EQ.2) WRITE (IUNIT,FORM) I2 - 22 CONTINUE - DO 24 I=1,MIN(NR,2) - WRITE (FORM,23) I,ISIZEF+10,ISIZEF - 23 FORMAT ('(11X,21HIN ABOVE MESSAGE, R',I1,'=,E', - 1 I2,'.',I2,')') - IF (I.EQ.1) WRITE (IUNIT,FORM) R1 - IF (I.EQ.2) WRITE (IUNIT,FORM) R2 - 24 CONTINUE - IF (LKNTRL.LE.0) GO TO 40 -C ERROR NUMBER - WRITE (IUNIT,30) LERR - 30 FORMAT (15H ERROR NUMBER =,I10) - 40 CONTINUE - 50 CONTINUE -C TRACE-BACK - IF (LKNTRL.GT.0) CALL FDUMP - 100 CONTINUE - IFATAL = 0 - IF ((LLEVEL.EQ.2).OR.((LLEVEL.EQ.1).AND.(MKNTRL.EQ.2))) - 1IFATAL = 1 -C QUIT HERE IF MESSAGE IS NOT FATAL - IF (IFATAL.LE.0) RETURN - IF ((LKNTRL.LE.0).OR.(KOUNT.GT.MAX0(1,MAXMES))) GO TO 120 -C PRINT REASON FOR ABORT - IF (LLEVEL.EQ.1) CALL XERPRT - 1 ('JOB ABORT DUE TO UNRECOVERED ERROR.',35) - IF (LLEVEL.EQ.2) CALL XERPRT - 1 ('JOB ABORT DUE TO FATAL ERROR.',29) -C PRINT ERROR SUMMARY - CALL XERSAV(' ',-1,0,0,KDUMMY) - 120 CONTINUE -C ABORT - IF ((LLEVEL.EQ.2).AND.(KOUNT.GT.MAX0(1,MAXMES))) LMESSG = 0 - CALL XERABT(MESSG,LMESSG) - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/XERSAV.f b/sorc/relocate_mv_nvortex.fd/XERSAV.f deleted file mode 100755 index 89a88ade9b..0000000000 --- a/sorc/relocate_mv_nvortex.fd/XERSAV.f +++ /dev/null @@ -1,104 +0,0 @@ - SUBROUTINE XERSAV(MESSG,NMESSG,NERR,LEVEL,ICOUNT) -C***BEGIN PROLOGUE XERSAV -C***DATE WRITTEN 800319 (YYMMDD) -C***REVISION DATE 820801 (YYMMDD) -C***CATEGORY NO. Z -C***KEYWORDS ERROR,XERROR PACKAGE -C***AUTHOR JONES, R. E., (SNLA) -C***PURPOSE Records that an error occurred. -C***DESCRIPTION -C Abstract -C Record that this error occurred. -C -C Description of Parameters -C --Input-- -C MESSG, NMESSG, NERR, LEVEL are as in XERROR, -C except that when NMESSG=0 the tables will be -C dumped and cleared, and when NMESSG is less than zero the -C tables will be dumped and not cleared. -C --Output-- -C ICOUNT will be the number of times this message has -C been seen, or zero if the table has overflowed and -C does not contain this message specifically. -C When NMESSG=0, ICOUNT will not be altered. -C -C Written by Ron Jones, with SLATEC Common Math Library Subcommittee -C Latest revision --- 19 Mar 1980 -C***REFERENCES JONES R.E., KAHANER D.K., "XERROR, THE SLATEC ERROR-" -C HANDLING PACKAGE", SAND82-0800, SANDIA LABORATORIES," -C 1982. -C***ROUTINES CALLED I1MACH,S88FMT,XGETUA -C***END PROLOGUE XERSAV - INTEGER LUN(5) - CHARACTER*(*) MESSG - CHARACTER*20 MESTAB(10),MES - DIMENSION NERTAB(10),LEVTAB(10),KOUNT(10) - SAVE MESTAB,NERTAB,LEVTAB,KOUNT,KOUNTX -C NEXT TWO DATA STATEMENTS ARE NECESSARY TO PROVIDE A BLANK -C ERROR TABLE INITIALLY - DATA KOUNT(1),KOUNT(2),KOUNT(3),KOUNT(4),KOUNT(5), - 1 KOUNT(6),KOUNT(7),KOUNT(8),KOUNT(9),KOUNT(10) - 2 /0,0,0,0,0,0,0,0,0,0/ - DATA KOUNTX/0/ -C***FIRST EXECUTABLE STATEMENT XERSAV - IF (NMESSG.GT.0) GO TO 80 -C DUMP THE TABLE - IF (KOUNT(1).EQ.0) RETURN -C PRINT TO EACH UNIT - CALL XGETUA(LUN,NUNIT) - DO 60 KUNIT=1,NUNIT - IUNIT = LUN(KUNIT) - IF (IUNIT.EQ.0) IUNIT = I1MACH(4) -C PRINT TABLE HEADER - WRITE (IUNIT,10) - 10 FORMAT (32H0 ERROR MESSAGE SUMMARY/ - 1 51H MESSAGE START NERR LEVEL COUNT) -C PRINT BODY OF TABLE - DO 20 I=1,10 - IF (KOUNT(I).EQ.0) GO TO 30 - WRITE (IUNIT,15) MESTAB(I),NERTAB(I),LEVTAB(I),KOUNT(I) - 15 FORMAT (1X,A20,3I10) - 20 CONTINUE - 30 CONTINUE -C PRINT NUMBER OF OTHER ERRORS - IF (KOUNTX.NE.0) WRITE (IUNIT,40) KOUNTX - 40 FORMAT (41H0OTHER ERRORS NOT INDIVIDUALLY TABULATED=,I10) - WRITE (IUNIT,50) - 50 FORMAT (1X) - 60 CONTINUE - IF (NMESSG.LT.0) RETURN -C CLEAR THE ERROR TABLES - DO 70 I=1,10 - 70 KOUNT(I) = 0 - KOUNTX = 0 - RETURN - 80 CONTINUE -C PROCESS A MESSAGE... -C SEARCH FOR THIS MESSG, OR ELSE AN EMPTY SLOT FOR THIS MESSG, -C OR ELSE DETERMINE THAT THE ERROR TABLE IS FULL. - MES = MESSG - DO 90 I=1,10 - II = I - IF (KOUNT(I).EQ.0) GO TO 110 - IF (MES.NE.MESTAB(I)) GO TO 90 - IF (NERR.NE.NERTAB(I)) GO TO 90 - IF (LEVEL.NE.LEVTAB(I)) GO TO 90 - GO TO 100 - 90 CONTINUE -C THREE POSSIBLE CASES... -C TABLE IS FULL - KOUNTX = KOUNTX+1 - ICOUNT = 1 - RETURN -C MESSAGE FOUND IN TABLE - 100 KOUNT(II) = KOUNT(II) + 1 - ICOUNT = KOUNT(II) - RETURN -C EMPTY SLOT FOUND FOR NEW MESSAGE - 110 MESTAB(II) = MES - NERTAB(II) = NERR - LEVTAB(II) = LEVEL - KOUNT(II) = 1 - ICOUNT = 1 - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/XGETUA.f b/sorc/relocate_mv_nvortex.fd/XGETUA.f deleted file mode 100755 index 2f0e5f6f7f..0000000000 --- a/sorc/relocate_mv_nvortex.fd/XGETUA.f +++ /dev/null @@ -1,46 +0,0 @@ - SUBROUTINE XGETUA(IUNITA,N) -C***BEGIN PROLOGUE XGETUA -C***DATE WRITTEN 790801 (YYMMDD) -C***REVISION DATE 820801 (YYMMDD) -C***CATEGORY NO. R3C -C***KEYWORDS ERROR,XERROR PACKAGE -C***AUTHOR JONES, R. E., (SNLA) -C***PURPOSE Returns unit number(s) to which error messages are being -C sent. -C***DESCRIPTION -C Abstract -C XGETUA may be called to determine the unit number or numbers -C to which error messages are being sent. -C These unit numbers may have been set by a call to XSETUN, -C or a call to XSETUA, or may be a default value. -C -C Description of Parameters -C --Output-- -C IUNIT - an array of one to five unit numbers, depending -C on the value of N. A value of zero refers to the -C default unit, as defined by the I1MACH machine -C constant routine. Only IUNIT(1),...,IUNIT(N) are -C defined by XGETUA. The values of IUNIT(N+1),..., -C IUNIT(5) are not defined (for N .LT. 5) or altered -C in any way by XGETUA. -C N - the number of units to which copies of the -C error messages are being sent. N will be in the -C range from 1 to 5. -C -C Latest revision --- 19 MAR 1980 -C Written by Ron Jones, with SLATEC Common Math Library Subcommittee -C***REFERENCES JONES R.E., KAHANER D.K., "XERROR, THE SLATEC ERROR-" -C HANDLING PACKAGE", SAND82-0800, SANDIA LABORATORIES," -C 1982. -C***ROUTINES CALLED J4SAVE -C***END PROLOGUE XGETUA - DIMENSION IUNITA(5) -C***FIRST EXECUTABLE STATEMENT XGETUA - N = J4SAVE(5,0,.FALSE.) - DO 30 I=1,N - INDEX = I+4 - IF (I.EQ.1) INDEX = 3 - IUNITA(I) = J4SAVE(INDEX,0,.FALSE.) - 30 CONTINUE - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/amatrix.f b/sorc/relocate_mv_nvortex.fd/amatrix.f deleted file mode 100755 index 0e84ed95e5..0000000000 --- a/sorc/relocate_mv_nvortex.fd/amatrix.f +++ /dev/null @@ -1,21 +0,0 @@ - subroutine amatrix - parameter(nmx=24) - common /matrix/ a(nmx,nmx),capd2 - COMMON /POSIT/ XOLD,YOLD,XCORN,YCORN - common /vect/rovect(nmx),xvect(nmx),yvect(nmx) -c - PI180 = 4.*ATAN(1.0)/180. - yo=yold*pi180 -c qliu fact=cos(yo) - fact=1.0 -c capd2=(3.15)*(3.15) - capd2=(2.25)*(2.25) - do 10 ip=1,nmx - do 10 jp=ip,nmx - dpij=(fact*(xvect(ip)-xvect(jp)))**2 +(yvect(ip)-yvect(jp))**2 - a(ip,jp)= exp(-dpij/capd2) - a(jp,ip)= a(ip,jp) -10 continue -100 format(5f8.4) - return - end diff --git a/sorc/relocate_mv_nvortex.fd/fft99.f b/sorc/relocate_mv_nvortex.fd/fft99.f deleted file mode 100755 index 3fcdedc7ed..0000000000 --- a/sorc/relocate_mv_nvortex.fd/fft99.f +++ /dev/null @@ -1,1126 +0,0 @@ -C - SUBROUTINE FFT99(A,WORK,TRIGS,IFAX,INC,JUMP,N,LOT,ISIGN) -C -C PURPOSE PERFORMS MULTIPLE FAST FOURIER TRANSFORMS. THIS PACKAGE -C WILL PERFORM A NUMBER OF SIMULTANEOUS REAL/HALF-COMPLEX -C PERIODIC FOURIER TRANSFORMS OR CORRESPONDING INVERSE -C TRANSFORMS, I.E. GIVEN A SET OF REAL DATA VECTORS, THE -C PACKAGE RETURNS A SET OF 'HALF-COMPLEX' FOURIER -C COEFFICIENT VECTORS, OR VICE VERSA. THE LENGTH OF THE -C TRANSFORMS MUST BE AN EVEN NUMBER GREATER THAN 4 THAT HAS -C NO OTHER FACTORS EXCEPT POSSIBLY POWERS OF 2, 3, AND 5. -C THIS IS AN ALL FORTRAN VERSION OF THE CRAYLIB PACKAGE -C THAT IS MOSTLY WRITTEN IN CAL. -C -C THE PACKAGE FFT99F CONTAINS SEVERAL USER-LEVEL ROUTINES: -C -C SUBROUTINE FFTFAX -C AN INITIALIZATION ROUTINE THAT MUST BE CALLED ONCE -C BEFORE A SEQUENCE OF CALLS TO THE FFT ROUTINES -C (PROVIDED THAT N IS NOT CHANGED). -C -C SUBROUTINES FFT99 AND FFT991 -C TWO FFT ROUTINES THAT RETURN SLIGHTLY DIFFERENT -C ARRANGEMENTS OF THE DATA IN GRIDPOINT SPACE. -C -C -C ACCESS THIS FORTRAN VERSION MAY BE ACCESSED WITH -C -C *FORTRAN,P=XLIB,SN=FFT99F -C -C TO ACCESS THE CRAY OBJECT CODE, CALLING THE USER ENTRY -C POINTS FROM A CRAY PROGRAM IS SUFFICIENT. THE SOURCE -C FORTRAN AND CAL CODE FOR THE CRAYLIB VERSION MAY BE -C ACCESSED USING -C -C FETCH P=CRAYLIB,SN=FFT99 -C FETCH P=CRAYLIB,SN=CAL99 -C -C USAGE LET N BE OF THE FORM 2**P * 3**Q * 5**R, WHERE P .GE. 1, -C Q .GE. 0, AND R .GE. 0. THEN A TYPICAL SEQUENCE OF -C CALLS TO TRANSFORM A GIVEN SET OF REAL VECTORS OF LENGTH -C N TO A SET OF 'HALF-COMPLEX' FOURIER COEFFICIENT VECTORS -C OF LENGTH N IS -C -C DIMENSION IFAX(13),TRIGS(3*N/2+1),A(M*(N+2)), -C + WORK(M*(N+1)) -C -C CALL FFTFAX (N, IFAX, TRIGS) -C CALL FFT99 (A,WORK,TRIGS,IFAX,INC,JUMP,N,M,ISIGN) -C -C SEE THE INDIVIDUAL WRITE-UPS FOR FFTFAX, FFT99, AND -C FFT991 BELOW, FOR A DETAILED DESCRIPTION OF THE -C ARGUMENTS. -C -C HISTORY THE PACKAGE WAS WRITTEN BY CLIVE TEMPERTON AT ECMWF IN -C NOVEMBER, 1978. IT WAS MODIFIED, DOCUMENTED, AND TESTED -C FOR NCAR BY RUSS REW IN SEPTEMBER, 1980. -C -C----------------------------------------------------------------------- -C -C SUBROUTINE FFTFAX (N,IFAX,TRIGS) -C -C PURPOSE A SET-UP ROUTINE FOR FFT99 AND FFT991. IT NEED ONLY BE -C CALLED ONCE BEFORE A SEQUENCE OF CALLS TO THE FFT -C ROUTINES (PROVIDED THAT N IS NOT CHANGED). -C -C ARGUMENT IFAX(13),TRIGS(3*N/2+1) -C DIMENSIONS -C -C ARGUMENTS -C -C ON INPUT N -C AN EVEN NUMBER GREATER THAN 4 THAT HAS NO PRIME FACTOR -C GREATER THAN 5. N IS THE LENGTH OF THE TRANSFORMS (SEE -C THE DOCUMENTATION FOR FFT99 AND FFT991 FOR THE -C DEFINITIONS OF THE TRANSFORMS). -C -C IFAX -C AN INTEGER ARRAY. THE NUMBER OF ELEMENTS ACTUALLY USED -C WILL DEPEND ON THE FACTORIZATION OF N. DIMENSIONING -C IFAX FOR 13 SUFFICES FOR ALL N LESS THAN A MILLION. -C -C TRIGS -C A FLOATING POINT ARRAY OF DIMENSION 3*N/2 IF N/2 IS -C EVEN, OR 3*N/2+1 IF N/2 IS ODD. -C -C ON OUTPUT IFAX -C CONTAINS THE FACTORIZATION OF N/2. IFAX(1) IS THE -C NUMBER OF FACTORS, AND THE FACTORS THEMSELVES ARE STORED -C IN IFAX(2),IFAX(3),... IF FFTFAX IS CALLED WITH N ODD, -C OR IF N HAS ANY PRIME FACTORS GREATER THAN 5, IFAX(1) -C IS SET TO -99. -C -C TRIGS -C AN ARRAY OF TRIGNOMENTRIC FUNCTION VALUES SUBSEQUENTLY -C USED BY THE FFT ROUTINES. -C -C----------------------------------------------------------------------- -C -C SUBROUTINE FFT991 (A,WORK,TRIGS,IFAX,INC,JUMP,N,M,ISIGN) -C AND -C SUBROUTINE FFT99 (A,WORK,TRIGS,IFAX,INC,JUMP,N,M,ISIGN) -C -C PURPOSE PERFORM A NUMBER OF SIMULTANEOUS REAL/HALF-COMPLEX -C PERIODIC FOURIER TRANSFORMS OR CORRESPONDING INVERSE -C TRANSFORMS, USING ORDINARY SPATIAL ORDER OF GRIDPOINT -C VALUES (FFT991) OR EXPLICIT CYCLIC CONTINUITY IN THE -C GRIDPOINT VALUES (FFT99). GIVEN A SET -C OF REAL DATA VECTORS, THE PACKAGE RETURNS A SET OF -C 'HALF-COMPLEX' FOURIER COEFFICIENT VECTORS, OR VICE -C VERSA. THE LENGTH OF THE TRANSFORMS MUST BE AN EVEN -C NUMBER THAT HAS NO OTHER FACTORS EXCEPT POSSIBLY POWERS -C OF 2, 3, AND 5. THESE VERSION OF FFT991 AND FFT99 ARE -C OPTIMIZED FOR USE ON THE CRAY-1. -C -C ARGUMENT A(M*(N+2)), WORK(M*(N+1)), TRIGS(3*N/2+1), IFAX(13) -C DIMENSIONS -C -C ARGUMENTS -C -C ON INPUT A -C AN ARRAY OF LENGTH M*(N+2) CONTAINING THE INPUT DATA -C OR COEFFICIENT VECTORS. THIS ARRAY IS OVERWRITTEN BY -C THE RESULTS. -C -C WORK -C A WORK ARRAY OF DIMENSION M*(N+1) -C -C TRIGS -C AN ARRAY SET UP BY FFTFAX, WHICH MUST BE CALLED FIRST. -C -C IFAX -C AN ARRAY SET UP BY FFTFAX, WHICH MUST BE CALLED FIRST. -C -C INC -C THE INCREMENT (IN WORDS) BETWEEN SUCCESSIVE ELEMENTS OF -C EACH DATA OR COEFFICIENT VECTOR (E.G. INC=1 FOR -C CONSECUTIVELY STORED DATA). -C -C JUMP -C THE INCREMENT (IN WORDS) BETWEEN THE FIRST ELEMENTS OF -C SUCCESSIVE DATA OR COEFFICIENT VECTORS. ON THE CRAY-1, -C TRY TO ARRANGE DATA SO THAT JUMP IS NOT A MULTIPLE OF 8 -C (TO AVOID MEMORY BANK CONFLICTS). FOR CLARIFICATION OF -C INC AND JUMP, SEE THE EXAMPLES BELOW. -C -C N -C THE LENGTH OF EACH TRANSFORM (SEE DEFINITION OF -C TRANSFORMS, BELOW). -C -C M -C THE NUMBER OF TRANSFORMS TO BE DONE SIMULTANEOUSLY. -C -C ISIGN -C = +1 FOR A TRANSFORM FROM FOURIER COEFFICIENTS TO -C GRIDPOINT VALUES. -C = -1 FOR A TRANSFORM FROM GRIDPOINT VALUES TO FOURIER -C COEFFICIENTS. -C -C ON OUTPUT A -C IF ISIGN = +1, AND M COEFFICIENT VECTORS ARE SUPPLIED -C EACH CONTAINING THE SEQUENCE: -C -C A(0),B(0),A(1),B(1),...,A(N/2),B(N/2) (N+2 VALUES) -C -C THEN THE RESULT CONSISTS OF M DATA VECTORS EACH -C CONTAINING THE CORRESPONDING N+2 GRIDPOINT VALUES: -C -C FOR FFT991, X(0), X(1), X(2),...,X(N-1),0,0. -C FOR FFT99, X(N-1),X(0),X(1),X(2),...,X(N-1),X(0). -C (EXPLICIT CYCLIC CONTINUITY) -C -C WHEN ISIGN = +1, THE TRANSFORM IS DEFINED BY: -C X(J)=SUM(K=0,...,N-1)(C(K)*EXP(2*I*J*K*PI/N)) -C WHERE C(K)=A(K)+I*B(K) AND C(N-K)=A(K)-I*B(K) -C AND I=SQRT (-1) -C -C IF ISIGN = -1, AND M DATA VECTORS ARE SUPPLIED EACH -C CONTAINING A SEQUENCE OF GRIDPOINT VALUES X(J) AS -C DEFINED ABOVE, THEN THE RESULT CONSISTS OF M VECTORS -C EACH CONTAINING THE CORRESPONDING FOURIER COFFICIENTS -C A(K), B(K), 0 .LE. K .LE N/2. -C -C WHEN ISIGN = -1, THE INVERSE TRANSFORM IS DEFINED BY: -C C(K)=(1/N)*SUM(J=0,...,N-1)(X(J)*EXP(-2*I*J*K*PI/N)) -C WHERE C(K)=A(K)+I*B(K) AND I=SQRT(-1) -C -C A CALL WITH ISIGN=+1 FOLLOWED BY A CALL WITH ISIGN=-1 -C (OR VICE VERSA) RETURNS THE ORIGINAL DATA. -C -C NOTE: THE FACT THAT THE GRIDPOINT VALUES X(J) ARE REAL -C IMPLIES THAT B(0)=B(N/2)=0. FOR A CALL WITH ISIGN=+1, -C IT IS NOT ACTUALLY NECESSARY TO SUPPLY THESE ZEROS. -C -C EXAMPLES GIVEN 19 DATA VECTORS EACH OF LENGTH 64 (+2 FOR EXPLICIT -C CYCLIC CONTINUITY), COMPUTE THE CORRESPONDING VECTORS OF -C FOURIER COEFFICIENTS. THE DATA MAY, FOR EXAMPLE, BE -C ARRANGED LIKE THIS: -C -C FIRST DATA A(1)= . . . A(66)= A(70) -C VECTOR X(63) X(0) X(1) X(2) ... X(63) X(0) (4 EMPTY LOCATIONS) -C -C SECOND DATA A(71)= . . . A(140) -C VECTOR X(63) X(0) X(1) X(2) ... X(63) X(0) (4 EMPTY LOCATIONS) -C -C AND SO ON. HERE INC=1, JUMP=70, N=64, M=19, ISIGN=-1, -C AND FFT99 SHOULD BE USED (BECAUSE OF THE EXPLICIT CYCLIC -C CONTINUITY). -C -C ALTERNATIVELY THE DATA MAY BE ARRANGED LIKE THIS: -C -C FIRST SECOND LAST -C DATA DATA DATA -C VECTOR VECTOR VECTOR -C -C A(1)= A(2)= A(19)= -C -C X(63) X(63) . . . X(63) -C A(20)= X(0) X(0) . . . X(0) -C A(39)= X(1) X(1) . . . X(1) -C . . . -C . . . -C . . . -C -C IN WHICH CASE WE HAVE INC=19, JUMP=1, AND THE REMAINING -C PARAMETERS ARE THE SAME AS BEFORE. IN EITHER CASE, EACH -C COEFFICIENT VECTOR OVERWRITES THE CORRESPONDING INPUT -C DATA VECTOR. -C -C----------------------------------------------------------------------- - DIMENSION A(N),WORK(N),TRIGS(N),IFAX(1) -C -C SUBROUTINE "FFT99" - MULTIPLE FAST REAL PERIODIC TRANSFORM -C CORRESPONDING TO OLD SCALAR ROUTINE FFT9 -C PROCEDURE USED TO CONVERT TO HALF-LENGTH COMPLEX TRANSFORM -C IS GIVEN BY COOLEY, LEWIS AND WELCH (J. SOUND VIB., VOL. 12 -C (1970), 315-337) -C -C A IS THE ARRAY CONTAINING INPUT AND OUTPUT DATA -C WORK IS AN AREA OF SIZE (N+1)*LOT -C TRIGS IS A PREVIOUSLY PREPARED LIST OF TRIG FUNCTION VALUES -C IFAX IS A PREVIOUSLY PREPARED LIST OF FACTORS OF N/2 -C INC IS THE INCREMENT WITHIN EACH DATA 'VECTOR' -C (E.G. INC=1 FOR CONSECUTIVELY STORED DATA) -C JUMP IS THE INCREMENT BETWEEN THE START OF EACH DATA VECTOR -C N IS THE LENGTH OF THE DATA VECTORS -C LOT IS THE NUMBER OF DATA VECTORS -C ISIGN = +1 FOR TRANSFORM FROM SPECTRAL TO GRIDPOINT -C = -1 FOR TRANSFORM FROM GRIDPOINT TO SPECTRAL -C -C ORDERING OF COEFFICIENTS: -C A(0),B(0),A(1),B(1),A(2),B(2),...,A(N/2),B(N/2) -C WHERE B(0)=B(N/2)=0; (N+2) LOCATIONS REQUIRED -C -C ORDERING OF DATA: -C X(N-1),X(0),X(1),X(2),...,X(N),X(0) -C I.E. EXPLICIT CYCLIC CONTINUITY; (N+2) LOCATIONS REQUIRED -C -C VECTORIZATION IS ACHIEVED ON CRAY BY DOING THE TRANSFORMS IN -C PARALLEL -C -C *** N.B. N IS ASSUMED TO BE AN EVEN NUMBER -C -C DEFINITION OF TRANSFORMS: -C ------------------------- -C -C ISIGN=+1: X(J)=SUM(K=0,...,N-1)(C(K)*EXP(2*I*J*K*PI/N)) -C WHERE C(K)=A(K)+I*B(K) AND C(N-K)=A(K)-I*B(K) -C -C ISIGN=-1: A(K)=(1/N)*SUM(J=0,...,N-1)(X(J)*COS(2*J*K*PI/N)) -C B(K)=-(1/N)*SUM(J=0,...,N-1)(X(J)*SIN(2*J*K*PI/N)) -C -C -C THE FOLLOWING CALL IS FOR MONITORING LIBRARY USE AT NCAR -C CALL Q8QST4 ( 4HXLIB, 6HFFT99F, 5HFFT99, 10HVERSION 01) - NFAX=IFAX(1) - NX=N+1 - NH=N/2 - INK=INC+INC - IF (ISIGN.EQ.+1) GO TO 30 -C -C IF NECESSARY, TRANSFER DATA TO WORK AREA - IGO=50 - IF (MOD(NFAX,2).EQ.1) GOTO 40 - IBASE=INC+1 - JBASE=1 - DO 20 L=1,LOT - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 10 M=1,N - WORK(J)=A(I) - I=I+INC - J=J+1 - 10 CONTINUE - IBASE=IBASE+JUMP - JBASE=JBASE+NX - 20 CONTINUE -C - IGO=60 - GO TO 40 -C -C PREPROCESSING (ISIGN=+1) -C ------------------------ -C - 30 CONTINUE - CALL FFT99A(A,WORK,TRIGS,INC,JUMP,N,LOT) - IGO=60 -C -C COMPLEX TRANSFORM -C ----------------- -C - 40 CONTINUE - IA=INC+1 - LA=1 - DO 80 K=1,NFAX - IF (IGO.EQ.60) GO TO 60 - 50 CONTINUE - CALL VPASSM(A(IA),A(IA+INC),WORK(1),WORK(2),TRIGS, - * INK,2,JUMP,NX,LOT,NH,IFAX(K+1),LA) - IGO=60 - GO TO 70 - 60 CONTINUE - CALL VPASSM(WORK(1),WORK(2),A(IA),A(IA+INC),TRIGS, - * 2,INK,NX,JUMP,LOT,NH,IFAX(K+1),LA) - IGO=50 - 70 CONTINUE - LA=LA*IFAX(K+1) - 80 CONTINUE -C - IF (ISIGN.EQ.-1) GO TO 130 -C -C IF NECESSARY, TRANSFER DATA FROM WORK AREA - IF (MOD(NFAX,2).EQ.1) GO TO 110 - IBASE=1 - JBASE=IA - DO 100 L=1,LOT - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 90 M=1,N - A(J)=WORK(I) - I=I+1 - J=J+INC - 90 CONTINUE - IBASE=IBASE+NX - JBASE=JBASE+JUMP - 100 CONTINUE -C -C FILL IN CYCLIC BOUNDARY POINTS - 110 CONTINUE - IA=1 - IB=N*INC+1 -CDIR$ IVDEP - DO 120 L=1,LOT - A(IA)=A(IB) - A(IB+INC)=A(IA+INC) - IA=IA+JUMP - IB=IB+JUMP - 120 CONTINUE - GO TO 140 -C -C POSTPROCESSING (ISIGN=-1): -C -------------------------- -C - 130 CONTINUE - CALL FFT99B(WORK,A,TRIGS,INC,JUMP,N,LOT) -C - 140 CONTINUE - RETURN - END - SUBROUTINE FFT99A(A,WORK,TRIGS,INC,JUMP,N,LOT) - DIMENSION A(N),WORK(N),TRIGS(N) -C -C SUBROUTINE FFT99A - PREPROCESSING STEP FOR FFT99, ISIGN=+1 -C (SPECTRAL TO GRIDPOINT TRANSFORM) -C - NH=N/2 - NX=N+1 - INK=INC+INC -C -C A(0) AND A(N/2) - IA=1 - IB=N*INC+1 - JA=1 - JB=2 -CDIR$ IVDEP - DO 10 L=1,LOT - WORK(JA)=A(IA)+A(IB) - WORK(JB)=A(IA)-A(IB) - IA=IA+JUMP - IB=IB+JUMP - JA=JA+NX - JB=JB+NX - 10 CONTINUE -C -C REMAINING WAVENUMBERS - IABASE=2*INC+1 - IBBASE=(N-2)*INC+1 - JABASE=3 - JBBASE=N-1 -C - DO 30 K=3,NH,2 - IA=IABASE - IB=IBBASE - JA=JABASE - JB=JBBASE - C=TRIGS(N+K) - S=TRIGS(N+K+1) -CDIR$ IVDEP - DO 20 L=1,LOT - WORK(JA)=(A(IA)+A(IB))- - * (S*(A(IA)-A(IB))+C*(A(IA+INC)+A(IB+INC))) - WORK(JB)=(A(IA)+A(IB))+ - * (S*(A(IA)-A(IB))+C*(A(IA+INC)+A(IB+INC))) - WORK(JA+1)=(C*(A(IA)-A(IB))-S*(A(IA+INC)+A(IB+INC)))+ - * (A(IA+INC)-A(IB+INC)) - WORK(JB+1)=(C*(A(IA)-A(IB))-S*(A(IA+INC)+A(IB+INC)))- - * (A(IA+INC)-A(IB+INC)) - IA=IA+JUMP - IB=IB+JUMP - JA=JA+NX - JB=JB+NX - 20 CONTINUE - IABASE=IABASE+INK - IBBASE=IBBASE-INK - JABASE=JABASE+2 - JBBASE=JBBASE-2 - 30 CONTINUE -C - IF (IABASE.NE.IBBASE) GO TO 50 -C WAVENUMBER N/4 (IF IT EXISTS) - IA=IABASE - JA=JABASE -CDIR$ IVDEP - DO 40 L=1,LOT - WORK(JA)=2.0*A(IA) - WORK(JA+1)=-2.0*A(IA+INC) - IA=IA+JUMP - JA=JA+NX - 40 CONTINUE -C - 50 CONTINUE - RETURN - END - SUBROUTINE FFT99B(WORK,A,TRIGS,INC,JUMP,N,LOT) - DIMENSION WORK(N),A(N),TRIGS(N) -C -C SUBROUTINE FFT99B - POSTPROCESSING STEP FOR FFT99, ISIGN=-1 -C (GRIDPOINT TO SPECTRAL TRANSFORM) -C - NH=N/2 - NX=N+1 - INK=INC+INC -C -C A(0) AND A(N/2) - SCALE=1.0/FLOAT(N) - IA=1 - IB=2 - JA=1 - JB=N*INC+1 -CDIR$ IVDEP - DO 10 L=1,LOT - A(JA)=SCALE*(WORK(IA)+WORK(IB)) - A(JB)=SCALE*(WORK(IA)-WORK(IB)) - A(JA+INC)=0.0 - A(JB+INC)=0.0 - IA=IA+NX - IB=IB+NX - JA=JA+JUMP - JB=JB+JUMP - 10 CONTINUE -C -C REMAINING WAVENUMBERS - SCALE=0.5*SCALE - IABASE=3 - IBBASE=N-1 - JABASE=2*INC+1 - JBBASE=(N-2)*INC+1 -C - DO 30 K=3,NH,2 - IA=IABASE - IB=IBBASE - JA=JABASE - JB=JBBASE - C=TRIGS(N+K) - S=TRIGS(N+K+1) -CDIR$ IVDEP - DO 20 L=1,LOT - A(JA)=SCALE*((WORK(IA)+WORK(IB)) - * +(C*(WORK(IA+1)+WORK(IB+1))+S*(WORK(IA)-WORK(IB)))) - A(JB)=SCALE*((WORK(IA)+WORK(IB)) - * -(C*(WORK(IA+1)+WORK(IB+1))+S*(WORK(IA)-WORK(IB)))) - A(JA+INC)=SCALE*((C*(WORK(IA)-WORK(IB))-S*(WORK(IA+1)+WORK(IB+1))) - * +(WORK(IB+1)-WORK(IA+1))) - A(JB+INC)=SCALE*((C*(WORK(IA)-WORK(IB))-S*(WORK(IA+1)+WORK(IB+1))) - * -(WORK(IB+1)-WORK(IA+1))) - IA=IA+NX - IB=IB+NX - JA=JA+JUMP - JB=JB+JUMP - 20 CONTINUE - IABASE=IABASE+2 - IBBASE=IBBASE-2 - JABASE=JABASE+INK - JBBASE=JBBASE-INK - 30 CONTINUE -C - IF (IABASE.NE.IBBASE) GO TO 50 -C WAVENUMBER N/4 (IF IT EXISTS) - IA=IABASE - JA=JABASE - SCALE=2.0*SCALE -CDIR$ IVDEP - DO 40 L=1,LOT - A(JA)=SCALE*WORK(IA) - A(JA+INC)=-SCALE*WORK(IA+1) - IA=IA+NX - JA=JA+JUMP - 40 CONTINUE -C - 50 CONTINUE - RETURN - END - SUBROUTINE FFT991(A,WORK,TRIGS,IFAX,INC,JUMP,N,LOT,ISIGN) - DIMENSION A(N),WORK(N),TRIGS(N),IFAX(1) -C -C SUBROUTINE "FFT991" - MULTIPLE REAL/HALF-COMPLEX PERIODIC -C FAST FOURIER TRANSFORM -C -C SAME AS FFT99 EXCEPT THAT ORDERING OF DATA CORRESPONDS TO -C THAT IN MRFFT2 -C -C PROCEDURE USED TO CONVERT TO HALF-LENGTH COMPLEX TRANSFORM -C IS GIVEN BY COOLEY, LEWIS AND WELCH (J. SOUND VIB., VOL. 12 -C (1970), 315-337) -C -C A IS THE ARRAY CONTAINING INPUT AND OUTPUT DATA -C WORK IS AN AREA OF SIZE (N+1)*LOT -C TRIGS IS A PREVIOUSLY PREPARED LIST OF TRIG FUNCTION VALUES -C IFAX IS A PREVIOUSLY PREPARED LIST OF FACTORS OF N/2 -C INC IS THE INCREMENT WITHIN EACH DATA 'VECTOR' -C (E.G. INC=1 FOR CONSECUTIVELY STORED DATA) -C JUMP IS THE INCREMENT BETWEEN THE START OF EACH DATA VECTOR -C N IS THE LENGTH OF THE DATA VECTORS -C LOT IS THE NUMBER OF DATA VECTORS -C ISIGN = +1 FOR TRANSFORM FROM SPECTRAL TO GRIDPOINT -C = -1 FOR TRANSFORM FROM GRIDPOINT TO SPECTRAL -C -C ORDERING OF COEFFICIENTS: -C A(0),B(0),A(1),B(1),A(2),B(2),...,A(N/2),B(N/2) -C WHERE B(0)=B(N/2)=0; (N+2) LOCATIONS REQUIRED -C -C ORDERING OF DATA: -C X(0),X(1),X(2),...,X(N-1) -C -C VECTORIZATION IS ACHIEVED ON CRAY BY DOING THE TRANSFORMS IN -C PARALLEL -C -C *** N.B. N IS ASSUMED TO BE AN EVEN NUMBER -C -C DEFINITION OF TRANSFORMS: -C ------------------------- -C -C ISIGN=+1: X(J)=SUM(K=0,...,N-1)(C(K)*EXP(2*I*J*K*PI/N)) -C WHERE C(K)=A(K)+I*B(K) AND C(N-K)=A(K)-I*B(K) -C -C ISIGN=-1: A(K)=(1/N)*SUM(J=0,...,N-1)(X(J)*COS(2*J*K*PI/N)) -C B(K)=-(1/N)*SUM(J=0,...,N-1)(X(J)*SIN(2*J*K*PI/N)) -C -C THE FOLLOWING CALL IS FOR MONITORING LIBRARY USE AT NCAR -C CALL Q8QST4 ( 4HXLIB, 6HFFT99F, 6HFFT991, 10HVERSION 01) - NFAX=IFAX(1) - NX=N+1 - NH=N/2 - INK=INC+INC - IF (ISIGN.EQ.+1) GO TO 30 -C -C IF NECESSARY, TRANSFER DATA TO WORK AREA - IGO=50 - IF (MOD(NFAX,2).EQ.1) GOTO 40 - IBASE=1 - JBASE=1 - DO 20 L=1,LOT - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 10 M=1,N - WORK(J)=A(I) - I=I+INC - J=J+1 - 10 CONTINUE - IBASE=IBASE+JUMP - JBASE=JBASE+NX - 20 CONTINUE -C - IGO=60 - GO TO 40 -C -C PREPROCESSING (ISIGN=+1) -C ------------------------ -C - 30 CONTINUE - CALL FFT99A(A,WORK,TRIGS,INC,JUMP,N,LOT) - IGO=60 -C -C COMPLEX TRANSFORM -C ----------------- -C - 40 CONTINUE - IA=1 - LA=1 - DO 80 K=1,NFAX - IF (IGO.EQ.60) GO TO 60 - 50 CONTINUE - CALL VPASSM(A(IA),A(IA+INC),WORK(1),WORK(2),TRIGS, - * INK,2,JUMP,NX,LOT,NH,IFAX(K+1),LA) - IGO=60 - GO TO 70 - 60 CONTINUE - CALL VPASSM(WORK(1),WORK(2),A(IA),A(IA+INC),TRIGS, - * 2,INK,NX,JUMP,LOT,NH,IFAX(K+1),LA) - IGO=50 - 70 CONTINUE - LA=LA*IFAX(K+1) - 80 CONTINUE -C - IF (ISIGN.EQ.-1) GO TO 130 -C -C IF NECESSARY, TRANSFER DATA FROM WORK AREA - IF (MOD(NFAX,2).EQ.1) GO TO 110 - IBASE=1 - JBASE=1 - DO 100 L=1,LOT - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 90 M=1,N - A(J)=WORK(I) - I=I+1 - J=J+INC - 90 CONTINUE - IBASE=IBASE+NX - JBASE=JBASE+JUMP - 100 CONTINUE -C -C FILL IN ZEROS AT END - 110 CONTINUE - IB=N*INC+1 -CDIR$ IVDEP - DO 120 L=1,LOT - A(IB)=0.0 - A(IB+INC)=0.0 - IB=IB+JUMP - 120 CONTINUE - GO TO 140 -C -C POSTPROCESSING (ISIGN=-1): -C -------------------------- -C - 130 CONTINUE - CALL FFT99B(WORK,A,TRIGS,INC,JUMP,N,LOT) -C - 140 CONTINUE - RETURN - END - SUBROUTINE FFTFAX(N,IFAX,TRIGS) - DIMENSION IFAX(13),TRIGS(1) -C -C MODE 3 IS USED FOR REAL/HALF-COMPLEX TRANSFORMS. IT IS POSSIBLE -C TO DO COMPLEX/COMPLEX TRANSFORMS WITH OTHER VALUES OF MODE, BUT -C DOCUMENTATION OF THE DETAILS WERE NOT AVAILABLE WHEN THIS ROUTINE -C WAS WRITTEN. -C - DATA MODE /3/ - CALL FAX (IFAX, N, MODE) - I = IFAX(1) - IF (IFAX(I+1) .GT. 5 .OR. N .LE. 4) IFAX(1) = -99 - IF (IFAX(1) .LE. 0 ) WRITE(6,1) N - IF (IFAX(1) .LE. 0 ) STOP 999 - CALL FFTRIG (TRIGS, N, MODE) - 1 FORMAT(//5X, ' FFTFAX -- INVALID N =', I5,/) - RETURN - END - SUBROUTINE FAX(IFAX,N,MODE) - DIMENSION IFAX(10) - NN=N - IF (IABS(MODE).EQ.1) GO TO 10 - IF (IABS(MODE).EQ.8) GO TO 10 - NN=N/2 - IF ((NN+NN).EQ.N) GO TO 10 - IFAX(1)=-99 - RETURN - 10 K=1 -C TEST FOR FACTORS OF 4 - 20 IF (MOD(NN,4).NE.0) GO TO 30 - K=K+1 - IFAX(K)=4 - NN=NN/4 - IF (NN.EQ.1) GO TO 80 - GO TO 20 -C TEST FOR EXTRA FACTOR OF 2 - 30 IF (MOD(NN,2).NE.0) GO TO 40 - K=K+1 - IFAX(K)=2 - NN=NN/2 - IF (NN.EQ.1) GO TO 80 -C TEST FOR FACTORS OF 3 - 40 IF (MOD(NN,3).NE.0) GO TO 50 - K=K+1 - IFAX(K)=3 - NN=NN/3 - IF (NN.EQ.1) GO TO 80 - GO TO 40 -C NOW FIND REMAINING FACTORS - 50 L=5 - INC=2 -C INC ALTERNATELY TAKES ON VALUES 2 AND 4 - 60 IF (MOD(NN,L).NE.0) GO TO 70 - K=K+1 - IFAX(K)=L - NN=NN/L - IF (NN.EQ.1) GO TO 80 - GO TO 60 - 70 L=L+INC - INC=6-INC - GO TO 60 - 80 IFAX(1)=K-1 -C IFAX(1) CONTAINS NUMBER OF FACTORS - NFAX=IFAX(1) -C SORT FACTORS INTO ASCENDING ORDER - IF (NFAX.EQ.1) GO TO 110 - DO 100 II=2,NFAX - ISTOP=NFAX+2-II - DO 90 I=2,ISTOP - IF (IFAX(I+1).GE.IFAX(I)) GO TO 90 - ITEM=IFAX(I) - IFAX(I)=IFAX(I+1) - IFAX(I+1)=ITEM - 90 CONTINUE - 100 CONTINUE - 110 CONTINUE - RETURN - END - SUBROUTINE FFTRIG(TRIGS,N,MODE) - DIMENSION TRIGS(1) - PI=2.0*ASIN(1.0) - IMODE=IABS(MODE) - NN=N - IF (IMODE.GT.1.AND.IMODE.LT.6) NN=N/2 - DEL=(PI+PI)/FLOAT(NN) - L=NN+NN - DO 10 I=1,L,2 - ANGLE=0.5*FLOAT(I-1)*DEL - TRIGS(I)=COS(ANGLE) - TRIGS(I+1)=SIN(ANGLE) - 10 CONTINUE - IF (IMODE.EQ.1) RETURN - IF (IMODE.EQ.8) RETURN - DEL=0.5*DEL - NH=(NN+1)/2 - L=NH+NH - LA=NN+NN - DO 20 I=1,L,2 - ANGLE=0.5*FLOAT(I-1)*DEL - TRIGS(LA+I)=COS(ANGLE) - TRIGS(LA+I+1)=SIN(ANGLE) - 20 CONTINUE - IF (IMODE.LE.3) RETURN - DEL=0.5*DEL - LA=LA+NN - IF (MODE.EQ.5) GO TO 40 - DO 30 I=2,NN - ANGLE=FLOAT(I-1)*DEL - TRIGS(LA+I)=2.0*SIN(ANGLE) - 30 CONTINUE - RETURN - 40 CONTINUE - DEL=0.5*DEL - DO 50 I=2,N - ANGLE=FLOAT(I-1)*DEL - TRIGS(LA+I)=SIN(ANGLE) - 50 CONTINUE - RETURN - END - SUBROUTINE VPASSM(A,B,C,D,TRIGS,INC1,INC2,INC3,INC4,LOT,N,IFAC,LA) - DIMENSION A(N),B(N),C(N),D(N),TRIGS(N) -C -C SUBROUTINE "VPASSM" - MULTIPLE VERSION OF "VPASSA" -C PERFORMS ONE PASS THROUGH DATA -C AS PART OF MULTIPLE COMPLEX FFT ROUTINE -C A IS FIRST REAL INPUT VECTOR -C B IS FIRST IMAGINARY INPUT VECTOR -C C IS FIRST REAL OUTPUT VECTOR -C D IS FIRST IMAGINARY OUTPUT VECTOR -C TRIGS IS PRECALCULATED TABLE OF SINES " COSINES -C INC1 IS ADDRESSING INCREMENT FOR A AND B -C INC2 IS ADDRESSING INCREMENT FOR C AND D -C INC3 IS ADDRESSING INCREMENT BETWEEN A"S & B"S -C INC4 IS ADDRESSING INCREMENT BETWEEN C"S & D"S -C LOT IS THE NUMBER OF VECTORS -C N IS LENGTH OF VECTORS -C IFAC IS CURRENT FACTOR OF N -C LA IS PRODUCT OF PREVIOUS FACTORS -C - DATA SIN36/0.587785252292473/,COS36/0.809016994374947/, - * SIN72/0.951056516295154/,COS72/0.309016994374947/, - * SIN60/0.866025403784437/ -C - M=N/IFAC - IINK=M*INC1 - JINK=LA*INC2 - JUMP=(IFAC-1)*JINK - IBASE=0 - JBASE=0 - IGO=IFAC-1 - IF (IGO.GT.4) RETURN - GO TO (10,50,90,130),IGO -C -C CODING FOR FACTOR 2 -C - 10 IA=1 - JA=1 - IB=IA+IINK - JB=JA+JINK - DO 20 L=1,LA - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 15 IJK=1,LOT - C(JA+J)=A(IA+I)+A(IB+I) - D(JA+J)=B(IA+I)+B(IB+I) - C(JB+J)=A(IA+I)-A(IB+I) - D(JB+J)=B(IA+I)-B(IB+I) - I=I+INC3 - J=J+INC4 - 15 CONTINUE - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 - 20 CONTINUE - IF (LA.EQ.M) RETURN - LA1=LA+1 - JBASE=JBASE+JUMP - DO 40 K=LA1,M,LA - KB=K+K-2 - C1=TRIGS(KB+1) - S1=TRIGS(KB+2) - DO 30 L=1,LA - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 25 IJK=1,LOT - C(JA+J)=A(IA+I)+A(IB+I) - D(JA+J)=B(IA+I)+B(IB+I) - C(JB+J)=C1*(A(IA+I)-A(IB+I))-S1*(B(IA+I)-B(IB+I)) - D(JB+J)=S1*(A(IA+I)-A(IB+I))+C1*(B(IA+I)-B(IB+I)) - I=I+INC3 - J=J+INC4 - 25 CONTINUE - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 - 30 CONTINUE - JBASE=JBASE+JUMP - 40 CONTINUE - RETURN -C -C CODING FOR FACTOR 3 -C - 50 IA=1 - JA=1 - IB=IA+IINK - JB=JA+JINK - IC=IB+IINK - JC=JB+JINK - DO 60 L=1,LA - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 55 IJK=1,LOT - C(JA+J)=A(IA+I)+(A(IB+I)+A(IC+I)) - D(JA+J)=B(IA+I)+(B(IB+I)+B(IC+I)) - C(JB+J)=(A(IA+I)-0.5*(A(IB+I)+A(IC+I)))-(SIN60*(B(IB+I)-B(IC+I))) - C(JC+J)=(A(IA+I)-0.5*(A(IB+I)+A(IC+I)))+(SIN60*(B(IB+I)-B(IC+I))) - D(JB+J)=(B(IA+I)-0.5*(B(IB+I)+B(IC+I)))+(SIN60*(A(IB+I)-A(IC+I))) - D(JC+J)=(B(IA+I)-0.5*(B(IB+I)+B(IC+I)))-(SIN60*(A(IB+I)-A(IC+I))) - I=I+INC3 - J=J+INC4 - 55 CONTINUE - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 - 60 CONTINUE - IF (LA.EQ.M) RETURN - LA1=LA+1 - JBASE=JBASE+JUMP - DO 80 K=LA1,M,LA - KB=K+K-2 - KC=KB+KB - C1=TRIGS(KB+1) - S1=TRIGS(KB+2) - C2=TRIGS(KC+1) - S2=TRIGS(KC+2) - DO 70 L=1,LA - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 65 IJK=1,LOT - C(JA+J)=A(IA+I)+(A(IB+I)+A(IC+I)) - D(JA+J)=B(IA+I)+(B(IB+I)+B(IC+I)) - C(JB+J)= - * C1*((A(IA+I)-0.5*(A(IB+I)+A(IC+I)))-(SIN60*(B(IB+I)-B(IC+I)))) - * -S1*((B(IA+I)-0.5*(B(IB+I)+B(IC+I)))+(SIN60*(A(IB+I)-A(IC+I)))) - D(JB+J)= - * S1*((A(IA+I)-0.5*(A(IB+I)+A(IC+I)))-(SIN60*(B(IB+I)-B(IC+I)))) - * +C1*((B(IA+I)-0.5*(B(IB+I)+B(IC+I)))+(SIN60*(A(IB+I)-A(IC+I)))) - C(JC+J)= - * C2*((A(IA+I)-0.5*(A(IB+I)+A(IC+I)))+(SIN60*(B(IB+I)-B(IC+I)))) - * -S2*((B(IA+I)-0.5*(B(IB+I)+B(IC+I)))-(SIN60*(A(IB+I)-A(IC+I)))) - D(JC+J)= - * S2*((A(IA+I)-0.5*(A(IB+I)+A(IC+I)))+(SIN60*(B(IB+I)-B(IC+I)))) - * +C2*((B(IA+I)-0.5*(B(IB+I)+B(IC+I)))-(SIN60*(A(IB+I)-A(IC+I)))) - I=I+INC3 - J=J+INC4 - 65 CONTINUE - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 - 70 CONTINUE - JBASE=JBASE+JUMP - 80 CONTINUE - RETURN -C -C CODING FOR FACTOR 4 -C - 90 IA=1 - JA=1 - IB=IA+IINK - JB=JA+JINK - IC=IB+IINK - JC=JB+JINK - ID=IC+IINK - JD=JC+JINK - DO 100 L=1,LA - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 95 IJK=1,LOT - C(JA+J)=(A(IA+I)+A(IC+I))+(A(IB+I)+A(ID+I)) - C(JC+J)=(A(IA+I)+A(IC+I))-(A(IB+I)+A(ID+I)) - D(JA+J)=(B(IA+I)+B(IC+I))+(B(IB+I)+B(ID+I)) - D(JC+J)=(B(IA+I)+B(IC+I))-(B(IB+I)+B(ID+I)) - C(JB+J)=(A(IA+I)-A(IC+I))-(B(IB+I)-B(ID+I)) - C(JD+J)=(A(IA+I)-A(IC+I))+(B(IB+I)-B(ID+I)) - D(JB+J)=(B(IA+I)-B(IC+I))+(A(IB+I)-A(ID+I)) - D(JD+J)=(B(IA+I)-B(IC+I))-(A(IB+I)-A(ID+I)) - I=I+INC3 - J=J+INC4 - 95 CONTINUE - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 - 100 CONTINUE - IF (LA.EQ.M) RETURN - LA1=LA+1 - JBASE=JBASE+JUMP - DO 120 K=LA1,M,LA - KB=K+K-2 - KC=KB+KB - KD=KC+KB - C1=TRIGS(KB+1) - S1=TRIGS(KB+2) - C2=TRIGS(KC+1) - S2=TRIGS(KC+2) - C3=TRIGS(KD+1) - S3=TRIGS(KD+2) - DO 110 L=1,LA - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 105 IJK=1,LOT - C(JA+J)=(A(IA+I)+A(IC+I))+(A(IB+I)+A(ID+I)) - D(JA+J)=(B(IA+I)+B(IC+I))+(B(IB+I)+B(ID+I)) - C(JC+J)= - * C2*((A(IA+I)+A(IC+I))-(A(IB+I)+A(ID+I))) - * -S2*((B(IA+I)+B(IC+I))-(B(IB+I)+B(ID+I))) - D(JC+J)= - * S2*((A(IA+I)+A(IC+I))-(A(IB+I)+A(ID+I))) - * +C2*((B(IA+I)+B(IC+I))-(B(IB+I)+B(ID+I))) - C(JB+J)= - * C1*((A(IA+I)-A(IC+I))-(B(IB+I)-B(ID+I))) - * -S1*((B(IA+I)-B(IC+I))+(A(IB+I)-A(ID+I))) - D(JB+J)= - * S1*((A(IA+I)-A(IC+I))-(B(IB+I)-B(ID+I))) - * +C1*((B(IA+I)-B(IC+I))+(A(IB+I)-A(ID+I))) - C(JD+J)= - * C3*((A(IA+I)-A(IC+I))+(B(IB+I)-B(ID+I))) - * -S3*((B(IA+I)-B(IC+I))-(A(IB+I)-A(ID+I))) - D(JD+J)= - * S3*((A(IA+I)-A(IC+I))+(B(IB+I)-B(ID+I))) - * +C3*((B(IA+I)-B(IC+I))-(A(IB+I)-A(ID+I))) - I=I+INC3 - J=J+INC4 - 105 CONTINUE - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 - 110 CONTINUE - JBASE=JBASE+JUMP - 120 CONTINUE - RETURN -C -C CODING FOR FACTOR 5 -C - 130 IA=1 - JA=1 - IB=IA+IINK - JB=JA+JINK - IC=IB+IINK - JC=JB+JINK - ID=IC+IINK - JD=JC+JINK - IE=ID+IINK - JE=JD+JINK - DO 140 L=1,LA - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 135 IJK=1,LOT - C(JA+J)=A(IA+I)+(A(IB+I)+A(IE+I))+(A(IC+I)+A(ID+I)) - D(JA+J)=B(IA+I)+(B(IB+I)+B(IE+I))+(B(IC+I)+B(ID+I)) - C(JB+J)=(A(IA+I)+COS72*(A(IB+I)+A(IE+I))-COS36*(A(IC+I)+A(ID+I))) - * -(SIN72*(B(IB+I)-B(IE+I))+SIN36*(B(IC+I)-B(ID+I))) - C(JE+J)=(A(IA+I)+COS72*(A(IB+I)+A(IE+I))-COS36*(A(IC+I)+A(ID+I))) - * +(SIN72*(B(IB+I)-B(IE+I))+SIN36*(B(IC+I)-B(ID+I))) - D(JB+J)=(B(IA+I)+COS72*(B(IB+I)+B(IE+I))-COS36*(B(IC+I)+B(ID+I))) - * +(SIN72*(A(IB+I)-A(IE+I))+SIN36*(A(IC+I)-A(ID+I))) - D(JE+J)=(B(IA+I)+COS72*(B(IB+I)+B(IE+I))-COS36*(B(IC+I)+B(ID+I))) - * -(SIN72*(A(IB+I)-A(IE+I))+SIN36*(A(IC+I)-A(ID+I))) - C(JC+J)=(A(IA+I)-COS36*(A(IB+I)+A(IE+I))+COS72*(A(IC+I)+A(ID+I))) - * -(SIN36*(B(IB+I)-B(IE+I))-SIN72*(B(IC+I)-B(ID+I))) - C(JD+J)=(A(IA+I)-COS36*(A(IB+I)+A(IE+I))+COS72*(A(IC+I)+A(ID+I))) - * +(SIN36*(B(IB+I)-B(IE+I))-SIN72*(B(IC+I)-B(ID+I))) - D(JC+J)=(B(IA+I)-COS36*(B(IB+I)+B(IE+I))+COS72*(B(IC+I)+B(ID+I))) - * +(SIN36*(A(IB+I)-A(IE+I))-SIN72*(A(IC+I)-A(ID+I))) - D(JD+J)=(B(IA+I)-COS36*(B(IB+I)+B(IE+I))+COS72*(B(IC+I)+B(ID+I))) - * -(SIN36*(A(IB+I)-A(IE+I))-SIN72*(A(IC+I)-A(ID+I))) - I=I+INC3 - J=J+INC4 - 135 CONTINUE - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 - 140 CONTINUE - IF (LA.EQ.M) RETURN - LA1=LA+1 - JBASE=JBASE+JUMP - DO 160 K=LA1,M,LA - KB=K+K-2 - KC=KB+KB - KD=KC+KB - KE=KD+KB - C1=TRIGS(KB+1) - S1=TRIGS(KB+2) - C2=TRIGS(KC+1) - S2=TRIGS(KC+2) - C3=TRIGS(KD+1) - S3=TRIGS(KD+2) - C4=TRIGS(KE+1) - S4=TRIGS(KE+2) - DO 150 L=1,LA - I=IBASE - J=JBASE -CDIR$ IVDEP - DO 145 IJK=1,LOT - C(JA+J)=A(IA+I)+(A(IB+I)+A(IE+I))+(A(IC+I)+A(ID+I)) - D(JA+J)=B(IA+I)+(B(IB+I)+B(IE+I))+(B(IC+I)+B(ID+I)) - C(JB+J)= - * C1*((A(IA+I)+COS72*(A(IB+I)+A(IE+I))-COS36*(A(IC+I)+A(ID+I))) - * -(SIN72*(B(IB+I)-B(IE+I))+SIN36*(B(IC+I)-B(ID+I)))) - * -S1*((B(IA+I)+COS72*(B(IB+I)+B(IE+I))-COS36*(B(IC+I)+B(ID+I))) - * +(SIN72*(A(IB+I)-A(IE+I))+SIN36*(A(IC+I)-A(ID+I)))) - D(JB+J)= - * S1*((A(IA+I)+COS72*(A(IB+I)+A(IE+I))-COS36*(A(IC+I)+A(ID+I))) - * -(SIN72*(B(IB+I)-B(IE+I))+SIN36*(B(IC+I)-B(ID+I)))) - * +C1*((B(IA+I)+COS72*(B(IB+I)+B(IE+I))-COS36*(B(IC+I)+B(ID+I))) - * +(SIN72*(A(IB+I)-A(IE+I))+SIN36*(A(IC+I)-A(ID+I)))) - C(JE+J)= - * C4*((A(IA+I)+COS72*(A(IB+I)+A(IE+I))-COS36*(A(IC+I)+A(ID+I))) - * +(SIN72*(B(IB+I)-B(IE+I))+SIN36*(B(IC+I)-B(ID+I)))) - * -S4*((B(IA+I)+COS72*(B(IB+I)+B(IE+I))-COS36*(B(IC+I)+B(ID+I))) - * -(SIN72*(A(IB+I)-A(IE+I))+SIN36*(A(IC+I)-A(ID+I)))) - D(JE+J)= - * S4*((A(IA+I)+COS72*(A(IB+I)+A(IE+I))-COS36*(A(IC+I)+A(ID+I))) - * +(SIN72*(B(IB+I)-B(IE+I))+SIN36*(B(IC+I)-B(ID+I)))) - * +C4*((B(IA+I)+COS72*(B(IB+I)+B(IE+I))-COS36*(B(IC+I)+B(ID+I))) - * -(SIN72*(A(IB+I)-A(IE+I))+SIN36*(A(IC+I)-A(ID+I)))) - C(JC+J)= - * C2*((A(IA+I)-COS36*(A(IB+I)+A(IE+I))+COS72*(A(IC+I)+A(ID+I))) - * -(SIN36*(B(IB+I)-B(IE+I))-SIN72*(B(IC+I)-B(ID+I)))) - * -S2*((B(IA+I)-COS36*(B(IB+I)+B(IE+I))+COS72*(B(IC+I)+B(ID+I))) - * +(SIN36*(A(IB+I)-A(IE+I))-SIN72*(A(IC+I)-A(ID+I)))) - D(JC+J)= - * S2*((A(IA+I)-COS36*(A(IB+I)+A(IE+I))+COS72*(A(IC+I)+A(ID+I))) - * -(SIN36*(B(IB+I)-B(IE+I))-SIN72*(B(IC+I)-B(ID+I)))) - * +C2*((B(IA+I)-COS36*(B(IB+I)+B(IE+I))+COS72*(B(IC+I)+B(ID+I))) - * +(SIN36*(A(IB+I)-A(IE+I))-SIN72*(A(IC+I)-A(ID+I)))) - C(JD+J)= - * C3*((A(IA+I)-COS36*(A(IB+I)+A(IE+I))+COS72*(A(IC+I)+A(ID+I))) - * +(SIN36*(B(IB+I)-B(IE+I))-SIN72*(B(IC+I)-B(ID+I)))) - * -S3*((B(IA+I)-COS36*(B(IB+I)+B(IE+I))+COS72*(B(IC+I)+B(ID+I))) - * -(SIN36*(A(IB+I)-A(IE+I))-SIN72*(A(IC+I)-A(ID+I)))) - D(JD+J)= - * S3*((A(IA+I)-COS36*(A(IB+I)+A(IE+I))+COS72*(A(IC+I)+A(ID+I))) - * +(SIN36*(B(IB+I)-B(IE+I))-SIN72*(B(IC+I)-B(ID+I)))) - * +C3*((B(IA+I)-COS36*(B(IB+I)+B(IE+I))+COS72*(B(IC+I)+B(ID+I))) - * -(SIN36*(A(IB+I)-A(IE+I))-SIN72*(A(IC+I)-A(ID+I)))) - I=I+INC3 - J=J+INC4 - 145 CONTINUE - IBASE=IBASE+INC1 - JBASE=JBASE+INC2 - 150 CONTINUE - JBASE=JBASE+JUMP - 160 CONTINUE - RETURN - END -C ALTERNATE NAME - SUBROUTINE RFFTMLT(A,WORK,TRIGS,IFAX,INC,JUMP,N,LOT,ISIGN) - DIMENSION A(N),WORK(N),TRIGS(N),IFAX(1) - CALL FFT991(A,WORK,TRIGS,IFAX,INC,JUMP,N,LOT,ISIGN) - END diff --git a/sorc/relocate_mv_nvortex.fd/landcmsk.f b/sorc/relocate_mv_nvortex.fd/landcmsk.f deleted file mode 100755 index 7256bd51cf..0000000000 --- a/sorc/relocate_mv_nvortex.fd/landcmsk.f +++ /dev/null @@ -1,39 +0,0 @@ - subroutine landcmsk(IK,JK,GLON,GLAT,ZDATG,IFLAG,lsflag,kst) -cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -c -cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -c parameter (IK=384,JK=190,ijdim=IK*JK,NSG=24000,NST=10) - parameter (NSG=54000,NST=10) - DIMENSION ZDATG(IK,JK),GLON(IK,JK),GLAT(IK,JK) - DIMENSION ING(NSG),JNG(NSG) - CHARACTER ST_NAME(NST)*3 - COMMON /TR/ING,JNG,IB - COMMON /NHC2/MDX,MDY - COMMON /NHC3/AMDX,AMDY - COMMON /STNAME/ST_NAME - COMMON /CHEN/KUNIT,ITIM -c - lsflag = 1 - - DO I = 1,IB - IW = ING(I) - JW = JNG(I) - IF(ZDATG(IW,JW).gt.500.)then - iflag = 1 -cnew MDX=0 -cnew MDY=0 -cnew AMDX=0. -cnew AMDY=0. - write(6,*)' Filter domain topography height > 500 m' - 1 ,', storm name = ', ST_NAME(KST), - 2 ', forecast time = ',ITIM,'h', - 3 ', only wind field is relocated' - go to 50 - END IF - END DO - - 50 continue - - - end - diff --git a/sorc/relocate_mv_nvortex.fd/makefile b/sorc/relocate_mv_nvortex.fd/makefile deleted file mode 100755 index bd8c3725b6..0000000000 --- a/sorc/relocate_mv_nvortex.fd/makefile +++ /dev/null @@ -1,37 +0,0 @@ -SHELL= /bin/sh - -##LIBDIR= /contrib/nceplibs/nwprod/lib -##LIBS_REL= -L$(LIBDIR) -lw3nco_v2.0.6_4 -lsigio_v1.0.1_4 -lbacio_v2.0.1_4 /contrib/nceplibs/dev/lib/libsp_v2.0.2_d-12.0.a -##LIBS_SIG= $(LIBDIR)/incmod/sigio_v1.0.1 - -SRCS= modules.f mv_nvortex.f BOUND.f sig_p_convt1.f SEPAR.f \ - WNLIT.f FDUMP.f H12.f I1MACH.f J4SAVE.f XGETUA.f WNLSM.f \ - WNNLS.f XERABT.f XERCTL.f XERPRT.f XERROR.f XERRWV.f XERSAV.f\ - srotm.f srotmg.f amatrix.f rodist.f landcmsk.f w3tagb.f - -OBJS= modules.o mv_nvortex.o BOUND.o sig_p_convt1.o SEPAR.o \ - WNLIT.o FDUMP.o H12.o I1MACH.o J4SAVE.o XGETUA.o WNLSM.o \ - WNNLS.o XERABT.o XERCTL.o XERPRT.o XERROR.o XERRWV.o XERSAV.o \ - srotm.o srotmg.o amatrix.o rodist.o landcmsk.o w3tagb.o - -##FC = ifort - -CMD = relocate_mv_nvortex - -##FFLAGS= -openmp -O3 -g -traceback -r8 -I ${LIBS_SIG} -LDFLAGS= -mkl -lmpi -openmp - -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(FFLAGS) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS_REL) - -clean: - -rm -f *.o *.mod - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -install: - mv $(CMD) ../../exec/$(CMD) - diff --git a/sorc/relocate_mv_nvortex.fd/makefile_cray b/sorc/relocate_mv_nvortex.fd/makefile_cray deleted file mode 100755 index dab4eaeb7e..0000000000 --- a/sorc/relocate_mv_nvortex.fd/makefile_cray +++ /dev/null @@ -1,38 +0,0 @@ -SHELL= /bin/sh - -##LIBDIR= /contrib/nceplibs/nwprod/lib -##LIBS_REL= -L$(LIBDIR) -lw3nco_v2.0.6_4 -lsigio_v1.0.1_4 -lbacio_v2.0.1_4 /contrib/nceplibs/dev/lib/libsp_v2.0.2_d-12.0.a -##LIBS_SIG= $(LIBDIR)/incmod/sigio_v1.0.1 - -SRCS= modules.f mv_nvortex.f BOUND.f sig_p_convt1.f SEPAR.f \ - WNLIT.f FDUMP.f H12.f I1MACH.f J4SAVE.f XGETUA.f WNLSM.f \ - WNNLS.f XERABT.f XERCTL.f XERPRT.f XERROR.f XERRWV.f XERSAV.f\ - srotm.f srotmg.f amatrix.f rodist.f landcmsk.f w3tagb.f - -OBJS= modules.o mv_nvortex.o BOUND.o sig_p_convt1.o SEPAR.o \ - WNLIT.o FDUMP.o H12.o I1MACH.o J4SAVE.o XGETUA.o WNLSM.o \ - WNNLS.o XERABT.o XERCTL.o XERPRT.o XERROR.o XERRWV.o XERSAV.o \ - srotm.o srotmg.o amatrix.o rodist.o landcmsk.o w3tagb.o - -##FC = ifort - -CMD = relocate_mv_nvortex - -##FFLAGS= -openmp -O3 -g -traceback -r8 -I ${LIBS_SIG} -#LDFLAGS= -mkl --openmp -LDFLAGS= -openmp - -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(FFLAGS) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS_REL) - -clean: - -rm -f *.o *.mod - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -install: - mv $(CMD) ../../exec/$(CMD) - diff --git a/sorc/relocate_mv_nvortex.fd/makefile_theia b/sorc/relocate_mv_nvortex.fd/makefile_theia deleted file mode 100755 index c1679c532b..0000000000 --- a/sorc/relocate_mv_nvortex.fd/makefile_theia +++ /dev/null @@ -1,38 +0,0 @@ -SHELL= /bin/sh - -##LIBDIR= /contrib/nceplibs/nwprod/lib -##LIBS_REL= -L$(LIBDIR) -lw3nco_v2.0.6_4 -lsigio_v1.0.1_4 -lbacio_v2.0.1_4 /contrib/nceplibs/dev/lib/libsp_v2.0.2_d-12.0.a -##LIBS_SIG= $(LIBDIR)/incmod/sigio_v1.0.1 - -SRCS= modules.f mv_nvortex.f BOUND.f sig_p_convt1.f SEPAR.f \ - WNLIT.f FDUMP.f H12.f I1MACH.f J4SAVE.f XGETUA.f WNLSM.f \ - WNNLS.f XERABT.f XERCTL.f XERPRT.f XERROR.f XERRWV.f XERSAV.f\ - srotm.f srotmg.f amatrix.f rodist.f landcmsk.f w3tagb.f - -OBJS= modules.o mv_nvortex.o BOUND.o sig_p_convt1.o SEPAR.o \ - WNLIT.o FDUMP.o H12.o I1MACH.o J4SAVE.o XGETUA.o WNLSM.o \ - WNNLS.o XERABT.o XERCTL.o XERPRT.o XERROR.o XERRWV.o XERSAV.o \ - srotm.o srotmg.o amatrix.o rodist.o landcmsk.o w3tagb.o - -##FC = ifort - -CMD = relocate_mv_nvortex - -##FFLAGS= -openmp -O3 -g -traceback -r8 -I ${LIBS_SIG} -#LDFLAGS= -mkl -lmpi -openmp -LDFLAGS= -mkl -mt_mpi -openmp - -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(FFLAGS) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS_REL) - -clean: - -rm -f *.o *.mod - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -install: - mv $(CMD) ../../exec/$(CMD) - diff --git a/sorc/relocate_mv_nvortex.fd/makefile_wcoss b/sorc/relocate_mv_nvortex.fd/makefile_wcoss deleted file mode 100755 index bd8c3725b6..0000000000 --- a/sorc/relocate_mv_nvortex.fd/makefile_wcoss +++ /dev/null @@ -1,37 +0,0 @@ -SHELL= /bin/sh - -##LIBDIR= /contrib/nceplibs/nwprod/lib -##LIBS_REL= -L$(LIBDIR) -lw3nco_v2.0.6_4 -lsigio_v1.0.1_4 -lbacio_v2.0.1_4 /contrib/nceplibs/dev/lib/libsp_v2.0.2_d-12.0.a -##LIBS_SIG= $(LIBDIR)/incmod/sigio_v1.0.1 - -SRCS= modules.f mv_nvortex.f BOUND.f sig_p_convt1.f SEPAR.f \ - WNLIT.f FDUMP.f H12.f I1MACH.f J4SAVE.f XGETUA.f WNLSM.f \ - WNNLS.f XERABT.f XERCTL.f XERPRT.f XERROR.f XERRWV.f XERSAV.f\ - srotm.f srotmg.f amatrix.f rodist.f landcmsk.f w3tagb.f - -OBJS= modules.o mv_nvortex.o BOUND.o sig_p_convt1.o SEPAR.o \ - WNLIT.o FDUMP.o H12.o I1MACH.o J4SAVE.o XGETUA.o WNLSM.o \ - WNNLS.o XERABT.o XERCTL.o XERPRT.o XERROR.o XERRWV.o XERSAV.o \ - srotm.o srotmg.o amatrix.o rodist.o landcmsk.o w3tagb.o - -##FC = ifort - -CMD = relocate_mv_nvortex - -##FFLAGS= -openmp -O3 -g -traceback -r8 -I ${LIBS_SIG} -LDFLAGS= -mkl -lmpi -openmp - -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(FFLAGS) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS_REL) - -clean: - -rm -f *.o *.mod - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -install: - mv $(CMD) ../../exec/$(CMD) - diff --git a/sorc/relocate_mv_nvortex.fd/makefile_wcoss_dell_p3 b/sorc/relocate_mv_nvortex.fd/makefile_wcoss_dell_p3 deleted file mode 100755 index 7cc284ef0c..0000000000 --- a/sorc/relocate_mv_nvortex.fd/makefile_wcoss_dell_p3 +++ /dev/null @@ -1,37 +0,0 @@ -SHELL= /bin/sh - -##LIBDIR= /contrib/nceplibs/nwprod/lib -##LIBS_REL= -L$(LIBDIR) -lw3nco_v2.0.6_4 -lsigio_v1.0.1_4 -lbacio_v2.0.1_4 /contrib/nceplibs/dev/lib/libsp_v2.0.2_d-12.0.a -##LIBS_SIG= $(LIBDIR)/incmod/sigio_v1.0.1 - -SRCS= modules.f mv_nvortex.f BOUND.f sig_p_convt1.f SEPAR.f \ - WNLIT.f FDUMP.f H12.f I1MACH.f J4SAVE.f XGETUA.f WNLSM.f \ - WNNLS.f XERABT.f XERCTL.f XERPRT.f XERROR.f XERRWV.f XERSAV.f\ - srotm.f srotmg.f amatrix.f rodist.f landcmsk.f w3tagb.f - -OBJS= modules.o mv_nvortex.o BOUND.o sig_p_convt1.o SEPAR.o \ - WNLIT.o FDUMP.o H12.o I1MACH.o J4SAVE.o XGETUA.o WNLSM.o \ - WNNLS.o XERABT.o XERCTL.o XERPRT.o XERROR.o XERRWV.o XERSAV.o \ - srotm.o srotmg.o amatrix.o rodist.o landcmsk.o w3tagb.o - -FC = mpiifort - -CMD = relocate_mv_nvortex - -##FFLAGS= -openmp -O3 -g -traceback -r8 -I ${LIBS_SIG} -LDFLAGS= -mkl -lmpi -qopenmp - -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(FFLAGS) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS_REL) - -clean: - -rm -f *.o *.mod - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -install: - mv $(CMD) ../../exec/$(CMD) - diff --git a/sorc/relocate_mv_nvortex.fd/modules.f b/sorc/relocate_mv_nvortex.fd/modules.f deleted file mode 100755 index 92b6d910e5..0000000000 --- a/sorc/relocate_mv_nvortex.fd/modules.f +++ /dev/null @@ -1,6 +0,0 @@ - module setparms - integer :: real_single, real_double - integer :: int_single, int_double - parameter (real_single = 4, real_double = real_single * 2) - parameter (int_single = 4, int_double = int_single * 2) - end module setparms diff --git a/sorc/relocate_mv_nvortex.fd/mv_nvortex.f b/sorc/relocate_mv_nvortex.fd/mv_nvortex.f deleted file mode 100644 index 712855531c..0000000000 --- a/sorc/relocate_mv_nvortex.fd/mv_nvortex.f +++ /dev/null @@ -1,3848 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: RELOCATE_MV_NVORTEX -C PROGMMR: QINGFU LIU ORG: NP23 DATE: 2013-03-15 -C -C ABSTRACT: RELOCATES HURRICANE VORTEX IN GLOBAL MODEL. -C THIS PROGRAM CONTAINS THE FOLLOWING STEPS: -C 1) CONVERTS THE GLOBAL SPECTRAL COEFS TO GAUSSIAN GRID -C AND DEFINES A 40x40 DEG AREAS AROUND THE REPORTED HURRICANES. -C 2) USING GFDL PROCEDURE SEPARATES THE HURRICANE DISTURBANCE FROM -C THE ENVIRONMENTAL FIELD AND MOVE THE HURRICANE DISTURBANCE TO -C THE OBSERVATIONAL LOCATION. -C 3) CONVERTS THE GAUSSIAN GRID TO GLOBAL SPECTRAL COEFS. -C -C PROGRAM HISTORY LOG: -C 2000-04-25 QINGFU LIU -C 2000-06-14 DENNIS KEYSER -- ADDED CALLS TO W3TAGB AND W3TAGE -C AND CALLS TO ERREXIT FOR NON-ZERO STOP CONDITIONS. -C 2005 Mark Iredell -- Generailzed to sigma-P coordinate -C 2007-10-01 S. Moorthi -- include enthalpy and more prognostic variables -C 2010-09-01 Fanglin Yang -- add threading -C 2012 J. Woollen -- converted to MPI in order to process multiple -C backgrouds in the same run -C 2012-12-01 J. Woollen -- transitioned to WCOSS -C 2013-03-15 D. Stokes -- added/modified some informational print or write -C statements to aid tracing of the output stream. -C 2014-02-10 James Taft -- Speed up the excutable: -C provide a new SPLIB, and also initialize the -C working array wk_s1 with a threading initialization. -C 2014-02-10 Eugene Mirvis -- add threading to the makefile -C 2014-03-20 Qingfu Liu -- Reduce memory usage and speed up the code: -C Remove some working arrays, and change a few working -C arrays from real(8) to real(4). Increase the size of some working -C arrays to accommodate high resolution model. -C -C USAGE: -C INPUT FILES: -C -C UNIT 11 THE CURRENT TC VITAL FILE -C UNIT 20 THE SIGMA FILE AT TIME t-3 -C UNIT 21 THE SIGMA FILE AT (CURRENT) TIME t -C UNIT 22 THE SIGMA FILE AT TIME t+3 -C UNIT 30 MODEL VORTEX CENTER LOCATION AT TIME t-3,t,t+3 -C -C SUBPROGRAMS CALLED: -C UNIQUE - modules BOUND_QLIU fft99 sig_p_convt1 -C SEPAR_QLIU WNLIT FDUMP H12 -C I1MACH J4SAVE XGETUA WNLSM -C WNNLS XERABT XERCTL XERPRT -C XERROR XERRWV XERSAV srotm -C srotmg rodist_qliu amatrix_qliu -C LIBRARY: -C W3LIB - W3TAGB W3TAGE ERREXIT -C -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C COND = 56 - NO TC VITAL DATA (OR TC VITAL IS EMPTY) -C -C REMARKS: NONE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ -C -C234567890123456789012345678901234567890123456789012345678901234567890 -C - - PROGRAM RELOCATE_MV_NVORTEX - - use sigio_module - use nemsio_module - use nemsio_gfs - - integer, parameter :: IRX=41, JRX=41, NST=10 - - COMMON/SMTH/ CLAT,CLON - COMMON/CNT/ SLON,SLAT - COMMON /NHC/ KSTM,IC_N(NST),JC_N(NST) - COMMON /NHC1/SLON_N(NST),SLAT_N(NST),CLON_N(NST),CLAT_N(NST) - - COMMON /HDAT1/NWRT1,NRED1,NWT1 - COMMON /HDAT3/NWRT2,NRED2 -C ! NST is the max storm num - CHARACTER ST_NAME(NST)*3,TCVT(NST)*95 - COMMON /STNAME/ST_NAME - COMMON /TCVIT/TCVT - COMMON /CHEN/KUNIT,ITIM,NTIM - - REAL, ALLOCATABLE :: GLAT(:),GLON(:) - REAL, ALLOCATABLE :: COLRAD(:),WGT(:),WGTCS(:),RCS2(:) - - REAL, ALLOCATABLE :: PSL(:,:),PS2(:),PS3(:,:) - REAL, ALLOCATABLE :: ZG(:,:),PSFC(:,:),PSLB(:,:),T00(:,:) - -! REAL, ALLOCATABLE :: HDAT(:,:,:,:),HDATA(:,:,:),PDAT(:,:,:) - REAL, ALLOCATABLE :: HDAT(:,:,:,:),PDAT(:,:,:) - REAL(4),ALLOCATABLE :: HDATA(:,:,:) - - REAL(4),ALLOCATABLE :: WRK1_4(:,:,:), WRK2_4(:,:,:,:) - REAL, ALLOCATABLE :: WORK_8(:) - REAL, ALLOCATABLE :: WK_S1(:,:),WK_G1(:,:,:) - REAL(4),ALLOCATABLE :: WK_G(:,:,:),WK_G2(:,:,:) - REAL, ALLOCATABLE :: WR_S1(:),WR_S2(:) - REAL, ALLOCATABLE :: WR_G1(:,:),WR_G2(:,:) - REAL, ALLOCATABLE :: U8501(:,:),V8501(:,:) - - REAL(4),ALLOCATABLE :: SLREF(:),VCRD(:,:), tref(:) - REAL(4),ALLOCATABLE :: cpi(:), vcrd4(:,:,:) - - integer * 4 iret, iret1, irets, imjm4, km4, idvm, ntrac - integer * 4 idvc, idsl, nvcd - integer * 4 idrt, idate7(7) - integer * 4 nfhour,nfminute,nfsecondn,nfsecondd - integer inptyp - integer * 4 dimx, dimy, dimz - integer iunit, mtv, mtv1, mtv2, mtv3, maxwv, maxwv2 - integer imax, jmax, mwave, kmax, maxwv22 - real, allocatable :: thref(:),tki(:,:),pdn(:,:),pup(:,:) - real, allocatable :: pupk(:,:),pdnk(:,:) - real,parameter :: p0=100000.0,p0i=1.0/p0,zero4=0.0, - & rkappa=2.8705e+2/1.0046e+3, - & rk=rkappa, rk1=rk+1.0, rkr=1.0/rk - real tkrt0,xcp,sumq - integer i,k - integer BKGFREQ - character*30 flname - - REAL(4) PSREF(1) - - REAL STRPSF(NST) - -! real(8) get_memory,xmem - - REAL(4) FHOUR -! REAL(4) FHOUR,DUMMY(245) -! REAL DUMMY8(245) - -! CHARACTER*8 LAB(4) - DIMENSION IDATE(4) - - CHARACTER cfile*7,kfile*7,ciunit*2,ckunit*2 - character(80) parm,outp - logical nopdpvv - -! COMMON /COEF1/LAB -! COMMON /COEF2/IDATE -! COMMON /COEF3/FHOUR,DUMMY -! COMMON /COEF3/nvcd,idvc,idsl,vcrd -! COMMON /COEF5/NCNT,NCNT2 - - - type(sigio_head) head - type(sigio_data):: data1 - - type(nemsio_gfile) :: gfile - type(nemsio_head) :: ghead - type(nemsio_headv) :: gheadv - type(nemsio_data) :: gdata - - include "mpif.h" - -!-------------------------------------------------------------------------- - call mpi_init(ierr) - call mpi_comm_rank(MPI_COMM_WORLD,myid,ierr) - call mpi_comm_size(MPI_COMM_WORLD,nprc,ierr) - write(parm,'("parm.",i1)')myid; open(5,file=parm) - write(outp,'("stdo.",i1)')myid; open(6,file=outp,recl=132) - read(5,*) itim,imax,jmax,BKGFREQ -!-------------------------------------------------------------------------- - - CALL W3TAGB('RELOCATE_MV_NVORTEX',2013,0074,0000,'NP23') - -! the following are prints rather than write statements to send the info to stdout. -! writes to unit 6 will be diverted to individual files for each process. - if(myid.eq.0)then - print '(/,a,a)','*** A single call to this MPI version of ' - $ ,'relocate_mv_nvortex spawns multiple processes.' - print '(a,a,/)','*** W3TAGB/E are called for each ' - $ ,'background field to be processed.' - endif - print '(a,i0,a,i0,a,i0/a,a,i0,a/)', - $ 'In task ',myid,' of relocate_mv_nvortex for fhr ',itim - $ ,', writes to unit 6 are being diverted to file stdo.',myid - $ ,'Select output from w3tagb/e (start/end times and resource ' - $ ,'stats) may be diverted to file stdo.',myid - $ ,' or stdout, depending on the version of w3tagb/e used.' -! end block of informational print statements - - WRITE(6,*) '===> WELCOME TO RELOCATE_MV_NVORTEX - MPI VERSION ', - $ '02-22-2013' - write(6,*)' ' - write(6,*)' FORECAST HOUR= ', ITIM - write(6,*)' IMAX, JMAX= ', IMAX,JMAX - write(6,*)' ' - write(6,'(a,a,/)') 'Informational output from multiple storms ' - $ ,'relocated for one background field might be interspersed' - - if ( BKGFREQ == 1 ) then - NTIM = 7 - IUNIT = 19+ITIM-2 - else if ( BKGFREQ == 3 ) then - NTIM = 3 - IUNIT = 19+ITIM/3 - endif - KUNIT = 50+ITIM - - NRED1 = 0 - NWRT1 = 0 - NRED2 = 0 - NWRT2 = 0 - - write(ciunit,'(I2)')iunit - cfile='fort.'//ciunit - - write(ckunit,'(I2)')KUNIT - kfile='fort.'//ckunit - -! write(6,*)cfile,kfile - - call nemsio_init() - - call sigio_sropen(IUNIT,cfile,iret) - call sigio_srhead(IUNIT,head,iret) - - inptyp = 1 ! default - - if (iret == 0) then - inptyp = 2 ! Spectral GFS input file - - call sigio_swopen(KUNIT,kfile,iret) - call sigio_swhead(KUNIT,head,iret) - - call sigio_aldata(head,data1,iret) - call sigio_srdata(IUNIT,head,data1,iret) - if (iret.ne.0) write(6,*)'sigio_srdata failed,iret=',iret -! - idvc = head%idvc !idvc=2 for hybrid, idvc=1 for sigma files - idsl = head%idsl - idvm = head%idvm - ntrac = head%ntrac - - MWAVE = head%jcap - KMAX = head%levs - latb = head%latb - lonb = head%lonb - IDATE = head%idate - FHOUR = head%fhour - - write(6,*)' idvm= ', idvm - write(6,*)' LONB, LATB, KMAX, MWAVE= ', LONB,LATB,KMAX,MWAVE - if(imax<=lonb.or.jmax<=latb) then - imax=lonb;jmax=latb - write(6,*),'imax,jmax reset to sigma header values=',imax,jmax - endif - - if (mod(idvm/10,10) == 3 .and. idvc == 3) then - allocate ( cpi(ntrac+1) ) - cpi = head%cpi - endif - - nvcd=head%nvcoord - allocate ( vcrd(KMAX+1,nvcd) ) - vcrd=head%vcoord - - print*,' complete reading data, inptyp=', inptyp - - else - - nopdpvv=.true. - call nemsio_gfsgrd_open(gfile,trim(cfile),'read',nopdpvv, - & ghead,gheadv,iret=ios) - print *,'in mv_relocat,nemsio file,',trim(cfile),' ios=',ios - if (ios == 0) then - inptyp = 1 ! nemsio GFS input file - else - if (ios /= 0) print *,'nemsio_open failed,ios=',ios - endif - - print *,'dim=',ghead%dimx,ghead%dimy,ghead%dimz, - & ghead%ntrac,'nrec=',ghead%nrec - - print *,'datatype=',ghead%gdatatype - print *,'recname=',gheadv%recname(1:3) - - idsl=ghead%idsl - mwave=ghead%jcap - idvm=ghead%idvm - if (mod(idvm,10)==2)idvm=11 - ntrac=ghead%ntrac - idvc=ghead%idvc - if(imax<=ghead%dimx.or.jmax<=ghead%dimy) then - imax=ghead%dimx;jmax=ghead%dimy - write(6,*),'imax,jmax reset to header values=',imax,jmax - endif - kmax=ghead%dimz - idate7=ghead%IDATE - NFHOUR=ghead%NFHOUR - NFMINUTE=ghead%NFMINUTE - NFSECONDN=ghead%NFSECONDN - NFSECONDD=ghead%NFSECONDD - idate(1)=idate7(4) - idate(2:3)=idate7(2:3) - idate(4)=idate7(1) - print *,'in mv_nreloc,idsl=',idsl,'nwave=',mwave,'idvm=',idvm, - & 'idvc=',idvc,'ntrac=',ntrac,'kmax=',kmax,'idate=',idate - - allocate ( vcrd4(kmax+1,3,2) ) - allocate ( cpi(ntrac+1) ) - call nemsio_getfilehead(gfile,iret=iret,vcoord=vcrd4,cpi=cpi) -! - FHOUR=real(NFHOUR,8)+real(NFMINUTE/60.,8)+ - & real(nfsecondn*1./(nfsecondd*360.),8) - print *,' idate=',idate(:),' fhour=',fhour,nfhour,nfminute, - & nfsecondn,nfsecondd,'idrt=',ghead%idrt,'cpi=',cpi -! - print*,'test QL' - NVCD=3 - vcrd3_max=0. - vcrd3_min=0. - vcrd2_max=0. - vcrd2_min=0. - do k=1,kmax+1 - print*,'k,vcrd4=',vcrd4(k,3,1),vcrd4(k,2,1) - if(vcrd3_max.lt.vcrd4(k,3,1))vcrd3_max=vcrd4(k,3,1) - if(vcrd3_min.gt.vcrd4(k,3,1))vcrd3_min=vcrd4(k,3,1) - if(vcrd2_max.lt.vcrd4(k,2,1))vcrd2_max=vcrd4(k,2,1) - if(vcrd2_min.gt.vcrd4(k,2,1))vcrd2_min=vcrd4(k,2,1) - end do - - print*,'max,min=',vcrd3_max,vcrd3_min,vcrd2_max,vcrd2_min - - IF(abs(vcrd3_max).lt.1.e-10.and.abs(vcrd3_min).lt.1.e-10) - & then - NVCD=2 - ELSEIF(abs(vcrd2_max).lt.1.e-10.and. - & abs(vcrd2_min).lt.1.e-10)then - NVCD=1 - ENDIF - - print*,' NVCD=',NVCD - - allocate ( vcrd(KMAX+1,nvcd) ) - vcrd(:,:)=vcrd4(1:KMAX+1,1:nvcd,1) -! vcrd(1:KMAX+1,1:nvcd)=vcrd4(1:KMAX+1,1:nvcd,1) -!read data - print*,' start reading data' - - call nemsio_gfs_algrd(imax,jmax,kmax,ntrac,gdata,nopdpvv) - call nemsio_gfs_rdgrd(gfile,gdata,iret=ios) - - print*,' complete reading data, inptyp=', inptyp - - endif - - WRITE(6,210) (IDATE(I),I=1,4),FHOUR -c 1 ,(DUMMY(K),K=1,2*KMAX+1) -210 FORMAT(5X,' INPUT DATE AND FCST HOUR ',4I5,F7.1/(2X,G13.6)) - - MAXWV=(MWAVE+1)*(MWAVE+2)/2 - MAXWV2=2*MAXWV - MAXWV22=MAXWV2+1 - - JHF=JMAX/2 - -! MTV = KMAX*(3+ntrac) + 2 - MTV = KMAX*4 + 2 - MTV1 = KMAX*5 + 2 - MTV2 = KMAX*6 + 3 - MTV3 = (2*KMAX+1)*6 + 3 - - ALLOCATE ( GLAT(JMAX),GLON(IMAX),T00(IMAX,JMAX) ) - ALLOCATE ( COLRAD(JHF), WGT(JHF),WGTCS(JHF),RCS2(JHF) ) - ALLOCATE ( ZG(IMAX,JMAX),PSFC(IMAX,JMAX),PSLB(IMAX,JMAX) ) - ALLOCATE ( PSL(IMAX,JMAX),PS2(MAXWV2),PS3(IMAX,JMAX) ) - - if(inptyp==2) then - ALLOCATE ( WORK_8(MAXWV22) ) - ALLOCATE ( WR_S1(MAXWV2),WR_S2(MAXWV2) ) - ALLOCATE ( WK_S1(MAXWV2,KMAX) ) -c$omp parallel do - do k=1,kmax - do i=1,maxwv2 - wk_s1(i,k)=0.0 - enddo - enddo - end if - T00=0. - - ALLOCATE ( WK_G1(IMAX,JMAX,KMAX) ) - ALLOCATE ( WK_G(IMAX,JMAX,KMAX),WK_G2(IMAX,JMAX,KMAX) ) - ALLOCATE ( WR_G1(IMAX,JMAX),WR_G2(IMAX,JMAX) ) - ALLOCATE ( U8501(IMAX,JMAX),V8501(IMAX,JMAX) ) - - ALLOCATE ( SLREF(KMAX), TREF(KMAX) ) - - ALLOCATE ( HDAT(IRX,JRX,MTV2,NST) ) - ALLOCATE ( HDATA(IMAX,JMAX,MTV) ) - ALLOCATE ( PDAT(IRX,JRX,MTV3) ) - - CALL GLATS(JHF,COLRAD,WGT,WGTCS,RCS2) - - PI = ASIN(1.)*2 - RDR = 180./PI -! - DO LL = 1,JHF - LLS = JMAX+1 - LL - GLAT(LL) = 90. - COLRAD(LL)*RDR - GLAT(LLS) = -GLAT(LL) - ENDDO - -! DO LL=1,JMAX -! write(6,*)'GLAT(LL)=',LL,GLAT(LL) -! END DO -! - DLN = 360.0/FLOAT(IMAX) - DO LN = 1,IMAX - GLON(LN) = (LN-1) * DLN - ENDDO - - PSREF = 1.E5 - tref = 270.0 - - CALL sigio_modpr(1,1,KMAX,nvcd,idvc,idsl,vcrd,iret, - & ps=PSREF,t=tref,pm=SLREF) - - SLREF = SLREF/1.E5 - - do k=1,kmax - write(6,*)'k,SLREF=',k,SLREF(k) - end do - - CALL HURR_MESS(IMAX,JMAX,GLON,GLAT,STRPSF) - -!------ for sigio file: -! - if (inptyp == 2) then - - DO NW=1,MAXWV2 - WORK_8(NW) = data1%hs(NW) - END DO - call SPTEZ(0,MWAVE,4,IMAX,JMAX,WORK_8,WK_G1(1,1,1),+1) - - WR_G1(:,:)=WK_G1(:,:,1) - print *,'hgt=',maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - - elseif (inptyp == 1) then - -! wk_G1(:,:,1) = gdata%zs(1:IMAX,1:JMAX)/9.8 - wk_G1(:,:,1) = gdata%zs(1:IMAX,1:JMAX) - call maxmin(wk_G1(1,1,1),IMAX*JMAX,1,1,1,'zs in gbl') - - WR_G1(:,:)=WK_G1(:,:,1) - print *,'hgt=',maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - - endif - - CALL SPC2G(IMAX,JMAX,GLON,GLAT,ZG,PSFC,PSLB,T00, - 1 MTV,MTV2,HDAT,HDATA,WK_G1(1,1,1),1,idvm) - - if (inptyp == 2) then - - DO NW=1,MAXWV2 - WORK_8(NW) = data1%ps(NW) - END DO - call SPTEZ(0,MWAVE,4,IMAX,JMAX,WORK_8,WK_G1(1,1,1),+1) - - WR_G1(:,:)=WK_G1(:,:,1) - print *,'pres=',maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - - elseif (inptyp == 1) then - -! if (mod(idvm,10)==2)then -! wk_G1(:,:,1)=gdata%ps(1:IMAX,1:JMAX)*0.001 -! else - wk_G1(:,:,1) = LOG(gdata%ps(1:IMAX,1:JMAX)*0.001) -! end if - - WR_G1(:,:)=WK_G1(:,:,1) - print *,'pres=',maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - print *,'pres2=',maxval(gdata%ps), - & minval(gdata%ps),gdata%ps(1,1) - - end if -! - CALL SPC2G(IMAX,JMAX,GLON,GLAT,ZG,PSFC,PSLB,T00, - 1 MTV,MTV2,HDAT,HDATA,WK_G1(1,1,1),2,idvm) - -! write(6,*)' after SPC2G for PSFC' - - if (inptyp == 2) then - - DO K=1,KMAX - DO NW=1,MAXWV2 - WK_S1(NW,K) = data1%t(NW,k) - END DO - END DO - - CALL SPTEZM(0,MWAVE,4,IMAX,JMAX,KMAX,WK_S1,WK_G1,+1) - - DO K=1,KMAX - WR_G1(:,:)=WK_G1(:,:,K) - print *,'K,tmp= ',K,maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - END DO - - WK_G(:,:,:)=WK_G1(:,:,:) - DO K=1,KMAX - DO NW=1,MAXWV2 - WK_S1(NW,K) = data1%q(NW,K,1) - END DO - END DO - - CALL SPTEZM(0,MWAVE,4,IMAX,JMAX,KMAX,WK_S1,WK_G1,+1) - - WK_G2(:,:,:)=WK_G1(:,:,:) - - if (mod(idvm/10,10) == 3 .and. idvc == 3) then - - ALLOCATE ( WRK1_4(IMAX,JMAX,KMAX) ) - ALLOCATE ( WRK2_4(IMAX,JMAX,KMAX,ntrac) ) - - do nt=2,ntrac - DO K=1,KMAX - DO NW=1,MAXWV2 - WK_S1(NW,K) = data1%q(NW,K,nt) - END DO - ENDDO - CALL SPTEZM(0,MWAVE,4,IMAX,JMAX,KMAX,WK_S1,WK_G1,+1) - wrk2_4(:,:,:,nt) = wk_g1 - ENDDO - imjm4 = imax*jmax ; km4 = kmax - -! write(6,*)' imjm4=',imjm4,' km4=',km4,' ntrac=',ntrac -! &,' cpi=',head%cpi - wrk1_4 = wk_g - wrk2_4(:,:,:,1) = wk_g2 - -! write(6,*)' bef cnvtdv wrk1_4=',wrk1_4(1,90,:) - call sigio_cnvtdv(imjm4, imjm4, km4, idvc - &, idvm, ntrac, iret, wrk1_4 - &, wrk2_4, head%cpi,1) -! write(6,*)' iret=',iret,' after cnvtdv','wrk2_4=',wrk2_4(1,90,:) - if (iret /= 0) then - write(6,*)'return code from cnvtdv=',iret,'job stopping' - stop 444 - endif - - wk_g = wrk1_4 * (1.+(461.50/287.05-1)*wrk2_4(:,:,:,1)) - if(allocated(wrk1_4)) deallocate(wrk1_4) - if(allocated(wrk2_4)) deallocate(wrk2_4) - endif - -! xmem = get_memory() -! write(6,234) ' before SPTEZMV ',xmem - - WK_G1(:,:,:)=WK_G(:,:,:) - - elseif (inptyp == 1) then - - wk_G(:,:,:) = gdata%t(1:IMAX,1:JMAX,1:KMAX) - WK_G2(:,:,:) = gdata%q(1:IMAX,1:JMAX,1:KMAX,1) - wk_G1(:,:,:) = wk_g(:,:,:)*(1.+(461.50/287.05-1)* - & WK_G2(:,:,:)) - - DO K=1,KMAX - WR_G1(:,:)=WK_G1(:,:,K) - print *,'K,tmp= ',K,maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - END DO - -! DO K=1,KMAX -! WR_G1(:,:)=WK_G2(:,:,K) -! print *,'K,spfh= ',K,maxval(WR_G1),minval(WR_G1),WR_G1(1,1) -! END DO - - end if - - DO K=1,KMAX - IDX=10 - IF(K.EQ.1)IDX=3 -! Virtual Temperature - CALL SPC2G(IMAX,JMAX,GLON,GLAT,ZG,PSFC,PSLB,T00, - 1 MTV,MTV2,HDAT,HDATA,WK_G1(1,1,K),IDX,idvm) - ENDDO - - IDX = 10 -! - if (inptyp == 2) then - - DO K=1,KMAX - DO NW=1,MAXWV2 - WK_S1(NW,K) = data1%d(NW,K) - END DO - ENDDO - CALL SPTEZM(0,MWAVE,4,IMAX,JMAX,KMAX,WK_S1,WK_G1,+1) - WK_G(:,:,:)=WK_G1(:,:,:) - DO K=1,KMAX - DO NW=1,MAXWV2 - WK_S1(NW,K) = data1%z(NW,K) - END DO - ENDDO - CALL SPTEZM(0,MWAVE,4,IMAX,JMAX,KMAX,WK_S1,WK_G1,+1) - WK_G2(:,:,:)=WK_G1(:,:,:) - - elseif (inptyp == 1) then - - WK_G(:,:,:) = gdata%u(1:IMAX,1:JMAX,1:KMAX) - WK_G2(:,:,:) = gdata%v(1:IMAX,1:JMAX,1:KMAX) - - DO K=1,KMAX - WR_G1(:,:)=gdata%u(:,:,K) -! print *,'K,u2= ',K,maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - END DO - DO K=1,KMAX - WR_G1(:,:)=gdata%v(:,:,K) -! print *,'K,v2= ',K,maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - END DO - - end if - -C.. CALCULATE U, V at ~850 mb - -! K850=3+KMAX+(KMAX/4)*4+1 - K8501=1 - DIST2=ABS(SLREF(1)-0.85) - DO K=1,KMAX - DIST1=ABS(SLREF(K)-0.85) - IF(DIST1.LT.DIST2)THEN - K8501=K - DIST2=DIST1 - END IF - END DO - - print*,'K8501=',K8501 - - K=K8501 - - if (inptyp == 2) then - - DO NW=1,MAXWV2 - WR_S1(NW) = data1%d(NW,K) - WR_S2(NW) = data1%z(NW,K) - END DO - - CALL SPTEZV(0,MWAVE,4,IMAX,JMAX,WR_S1,WR_S2, - & U8501,V8501,+1) - - deallocate(work_8,wk_s1) - deallocate(wr_s1,wr_s2) - - print *,'u8501=',maxval(U8501),minval(U8501),U8501(1,1) - print *,'v8501=',maxval(V8501),minval(V8501),V8501(1,1) - - elseif (inptyp == 1) then - - U8501(:,:) = gdata%u(1:IMAX,1:JMAX,K8501) - V8501(:,:) = gdata%v(1:IMAX,1:JMAX,K8501) - - print *,'u8501=',maxval(U8501),minval(U8501),U8501(1,1) - print *,'v8501=',maxval(V8501),minval(V8501),V8501(1,1) - print *,'ugrd=',maxval(gdata%u),minval(gdata%u),gdata%u(1,1,1) - print *,'vgrd=',maxval(gdata%v),minval(gdata%v),gdata%v(1,1,1) - - end if - - deallocate(wk_g1) - -! xmem = get_memory() -! write(6,234) ' after SPTEZMV ',xmem - - IDX=10 - DO K=1,KMAX - WR_G1(:,:)=WK_G(:,:,K) - WR_G2(:,:)=WK_G2(:,:,K) - CALL SPC2G(IMAX,JMAX,GLON,GLAT,ZG,PSFC,PSLB,T00, - 1 MTV,MTV2,HDAT,HDATA,WR_G1(1,1),IDX,idvm) - CALL SPC2G(IMAX,JMAX,GLON,GLAT,ZG,PSFC,PSLB,T00, - 1 MTV,MTV2,HDAT,HDATA,WR_G2(1,1),IDX,idvm) -! -!.. CONVERT DI, ZE TO U,V and U,V TO DI ZE again for confirm -! - CALL SPC2G(IMAX,JMAX,GLON,GLAT,ZG,PSFC,PSLB,T00, - 1 MTV,MTV2,HDAT,HDATA,U8501(1,1),100,idvm) - CALL SPC2G(IMAX,JMAX,GLON,GLAT,ZG,PSFC,PSLB,T00, - 1 MTV,MTV2,HDAT,HDATA,V8501(1,1),101,idvm) - ENDDO -! Specific Humidity - -! deallocate(wk_g,wk_g2,WR_G1,WR_G2,U8501,V8501) - deallocate(wk_g,wk_g2,WR_G2,U8501,V8501) - - ALLOCATE ( WK_G1(IMAX,JMAX,KMAX) ) - - if (inptyp == 2) then - - ALLOCATE ( WK_S1(MAXWV2,KMAX) ) - -c$omp parallel do - do k=1,kmax - do i=1,maxwv2 - wk_s1(i,k)=0.0 - enddo - enddo - - DO K=1,KMAX - DO NW=1,MAXWV2 - WK_S1(NW,K) = data1%q(NW,K,1) - END DO - END DO - - CALL SPTEZM(0,MWAVE,4,IMAX,JMAX,KMAX,WK_S1,WK_G1,+1) - - DEALLOCATE ( WK_S1 ) - - elseif (inptyp == 1) then - - WK_G1(:,:,:) = gdata%q(1:IMAX,1:JMAX,1:KMAX,1) - - end if - - DO K=1,KMAX - CALL SPC2G(IMAX,JMAX,GLON,GLAT,ZG,PSFC,PSLB,T00, - 1 MTV,MTV2,HDAT,HDATA,WK_G1(1,1,K),IDX,idvm) - ENDDO -! - DEALLOCATE ( COLRAD, WGT, WGTCS, RCS2 ) - DEALLOCATE ( ZG, PSFC ) -! DEALLOCATE ( WORK_8, WK_S1, WK_S2, WK_G ) -! DEALLOCATE ( WK_G2 ) - DEALLOCATE ( WK_G1 ) - -! DO K=1,MTV -! write(6,*)'HDATA,K=',K -! WR_G1(:,:)=HDATA(:,:,K) -! call maxmin(WR_G1,IMAX*JMAX,1,1,1,'HDATA') -! END DO - - DEALLOCATE ( WR_G1 ) - - CALL HURR_REL(inptyp,MWAVE,IMAX,JMAX,KMAX,MAXWV2, - 1 JHF,MTV,MTV1,MTV2,MTV3, - 2 HDAT,HDATA,PDAT,PSL,PS3,PSLB,T00,SLREF, - 3 nvcd,idvc,idsl,vcrd,idvm,ntrac, - 4 STRPSF) - - - if (inptyp == 2) then - - ALLOCATE ( WK_S1(MAXWV2,KMAX) ) - ALLOCATE ( WK_G1(IMAX,JMAX,KMAX) ) - -c$omp parallel do - do k=1,kmax - do i=1,maxwv2 - wk_s1(i,k)=0.0 - enddo - enddo - - CALL G2SPC(KUNIT,MWAVE,MAXWV2,IMAX,JMAX,PS3,PS2) - - DO I=1,MAXWV2 - data1%ps(I) = PS2(I) - END DO -! - if (mod(idvm/10,10) == 3 .and. idvc == 3) then - ALLOCATE ( WRK1_4(IMAX,JMAX,KMAX) ) - ALLOCATE ( WRK2_4(IMAX,JMAX,KMAX,ntrac) ) - imjm4 = imax*jmax ; km4 = kmax -! write(6,*)' imjm4=',imjm4,' km4=',km4,' ntrac=',ntrac -! &,' cpi=',head%cpi,' in HURR_REL' - wrk1_4 = hdata(:,:,3:kmax+2) - & / (1.+(461.50/287.05-1)*HDATA(:,:,3+3*kmax:2+4*kmax)) - call sigio_cnvtdv(imjm4, imjm4, km4, idvc - &, idvm, ntrac, iret, wrk1_4 - &, wrk2_4, head%cpi,-1) -! write(6,*)' iret=',iret,' 2after cnvtdv','wrk2_4=',wrk1_4(1,1,1) - if (iret /= 0) then - write(6,*)' return code from cnvtdv = ',iret,' job stopping' - stop 777 - endif - hdata(:,:,3:2+kmax) = wrk1_4 - if(allocated(wrk1_4)) deallocate(wrk1_4) - if(allocated(wrk2_4)) deallocate(wrk2_4) -! - endif - - DO K=1,KMAX - DO J=1,JMAX - DO I=1,IMAX - WK_G1(I,J,K) = HDATA(I,J,2+K) - END DO - END DO - END DO - - CALL SPTEZM(0,MWAVE,4,IMAX,JMAX,KMAX,WK_S1, - & WK_G1,-1) -! & HDATA(1,1,3),-1) - - DO K=1,KMAX - DO I=1,MAXWV2 - data1%t(I,K)=WK_S1(I,K) - END DO - END DO - - DO K=1,KMAX - DO J=1,JMAX - DO I=1,IMAX - WK_G1(I,J,K) = HDATA(I,J,KMAX+1+2*K) - END DO - END DO - END DO - - CALL SPTEZM(0,MWAVE,4,IMAX,JMAX,KMAX,WK_S1,WK_G1,-1) - - DO K=1,KMAX - DO I=1,MAXWV2 - data1%d(I,K) = WK_S1(I,K) - END DO - END DO - - DO K=1,KMAX - DO J=1,JMAX - DO I=1,IMAX - WK_G1(I,J,K) = HDATA(I,J,KMAX+2+2*K) - END DO - END DO - END DO - - CALL SPTEZM(0,MWAVE,4,IMAX,JMAX,KMAX,WK_S1,WK_G1,-1) - - DO K=1,KMAX - DO I=1,MAXWV2 - data1%z(I,K) = WK_S1(I,K) - END DO - END DO - - DO K=1,KMAX - DO J=1,JMAX - DO I=1,IMAX - WK_G1(I,J,K) = HDATA(I,J,3*KMAX+2+K) - END DO - END DO - END DO - - CALL SPTEZM(0,MWAVE,4,IMAX,JMAX,KMAX,WK_S1, - & WK_G1,-1) -! & HDATA(1,1,3+3*KMAX),-1) - - DO K=1,KMAX - DO I=1,MAXWV2 - data1%q(I,K,1)=WK_S1(I,K) - END DO - END DO -C - DEALLOCATE ( WK_S1, WK_G1, PS2 ) -! - DO K=1,KMAX - data1%d(1,K) = 0.0 - data1%z(1,K) = 0.0 - END DO - - CALL sigio_swdata(KUNIT,head,data1,iret) - - write(6,*) 'jcap= ',head%jcap,MWAVE - - elseif(inptyp==1) then !--- output nemsio file - - PSL=PS3 ! assign surface pressure -! ! ps in pascal - PSL=exp(psl) - gdata%ps = psl*1000. - print *,'pres2=',maxval(gdata%ps),minval(gdata%ps),gdata%ps(1,1) -! print *,'in nemsio out,ps=',maxval(gdata%ps),minval(gdata%ps) -! ! seniable tmp - gdata%t(:,:,1:kmax) = hdata(:,:,3:kmax+2) - & / (1.+(461.50/287.05-1)*HDATA(:,:,3+3*kmax:2+4*kmax)) - -! print *,'in nemsio out,t=',maxval(gdata%t),minval(gdata%t) -! ! q - gdata%q(:,:,1:kmax,1) = HDATA(:,:,3+3*KMAX:2+4*KMAX) - - if (nopdpvv) then - print*,'no p and dp in input/output data' - else -!recompute dpres and pres from T: -! first, to be consistent with model, compute enthalpy or tv from T - - if( (ghead%idvm/10) == 3 .and. idvc == 3) then - ALLOCATE ( WK_G(IMAX,JMAX,KMAX) ) - do k=1,kmax - do j=1,jmax - do i=1,imax - xcp = 0.0 - sumq = 0.0 - do n=1,ghead%ntrac - if( cpi(n+1) .ne. 0.0) then - xcp = xcp + gdata%q(i,j,k,n) * cpi(n+1) - sumq = sumq + gdata%q(i,j,k,n) - endif - enddo - xcp = (1.-sumq)*cpi(1) + sumq ! Mean Cp - wk_g(i,j,k) = gdata%t(i,j,k)*xcp - enddo - enddo - enddo - endif - do k=1,kmax - print *,'in nemsio in,k=',k,'dp=',maxval(gdata%dp(:,:,k)), - & minval(gdata%dp(:,:,k)),'vcrd=',vcrd(k,1:2),vcrd(k+1,1:2) - print *,'in nemsio in,k=',k,'p=',maxval(gdata%p(:,:,k)), - & minval(gdata%p(:,:,k)) - end do -! now compute dp - if ((ghead%idvm/10) == 3 .and. idvc == 3) then - allocate(thref(KMAX),tki(IMAX,KMAX)) - thref(:) = 300.0 - tki(:,1) = 0.0 - tki(:,KMAX+1) = 0.0 - do j=1,jmax -! - do k=2,Kmax - do i=1,IMAX - tkrt0 = (wk_g(i,j,k-1)+wk_g(i,j,k)) - & / (thref(k-1)+thref(k)) - tki (i,k) = vcrd(k,3)/1000.*tkrt0**rkappa - enddo - enddo - do k=1,Kmax - do i=1,IMAX - gdata%dp(i,j,k) = (vcrd(k,1)-vcrd(k+1,1))/1000.+ - & (vcrd(k,2)-vcrd(k+1,2)) - & * psl(i,j) + tki(i,k) - tki(i,k+1) - gdata%dp(i,j,k)=gdata%dp(i,j,k)*1000. - enddo - enddo -! -! if(j==1)print *,'in mv,dp(1,1,1)=',gdata%dp(1,1,1), -! & 'tki=',tki(1,1:5),'vcd=',vcrd(1:3,1:3),'psl=', -! & psl(1,1) - enddo - deallocate(thref,tki,wk_g) -! print *,'in nemsio out,dp=',maxval(gdata%dp(:,:,1)), -! & minval(gdata%dp(:,:,1)) -! - elseif (idvc == 2) then - do k=1,Kmax - kk = kmax - k + 1 - gdata%dp(:,:,k) = (vcrd(k,1)-vcrd(k+1,1))*0.001 - & + (vcrd(k,2)-vcrd(k+1,2)) * psl(:,:) - gdata%dp(:,:,k) = gdata%dp(:,:,k)*1000. - print *,'in nemsio out,k=',k,'dp=',maxval(gdata%dp(:,:,k)), - & minval(gdata%dp(:,:,k)),'vcrd=',vcrd(k,1:2),vcrd(k+1,1:2), - & 'psl=', psl(1,1) - enddo - elseif (idvc == 1) then - do k=1,Kmax - gdata%dp(:,:,k) = ((vcrd(k,1) - vcrd(k+1,1)) * psl(:,:)) - enddo - endif -!pres - allocate(pdn(IMAX,JMAX),pup(IMAX,JMAX)) - allocate(pdnk(IMAX,JMAX),pupk(IMAX,JMAX)) - pdn(:,:) = gdata%ps(:,:) - pdnk = (pdn*p0i) ** rk - do k=1,Kmax - pup(:,:) = max(pdn(:,:)-gdata%dp(:,:,k),zero4) - if (idvc == 3 ) then - gdata%p(:,:,k) = 0.5*(pup(:,:)+pdn(:,:)) - pdn(:,:) = pup(:,:) - else - do j=1,jmax - do i=1,imax - pupk(i,j) = (pup(i,j)*p0i) ** rk - gdata%p(i,j,k) = p0*((pdnk(i,j)*pdn(i,j)- - & pupk(i,j)*pup(i,j)) /(rk1*(pdn(i,j)-pup(i,j)))) ** rkr - pdn(i,j) = pup(i,j) - pdnk(i,j) = pupk(i,j) - enddo - enddo - endif - print *,'in nemsio out,k=',k,'p=',maxval(gdata%p(:,:,k)), - & minval(gdata%p(:,:,k)) - enddo - - endif ! nopdpvv -!u/v - DO K=1,KMAX - DO J=1,JMAX - DO I=1,IMAX - gdata%u(I,J,K) = HDATA(I,J,KMAX+1+2*K) - END DO - END DO - END DO - - DO K=1,KMAX - DO J=1,JMAX - DO I=1,IMAX - gdata%v(I,J,K) = HDATA(I,J,KMAX+2+2*K) - END DO - END DO - END DO - -! print *,'aft set gdata u,v,u=',maxval(gdata%u),minval(gdata%u) -! -!--open nemsio file -! gfileo = gfile -! ghead%gdatatype='grib' -! ghead%gdatatype='bin4' - print *,'datatype2=',ghead%gdatatype - print *,'recname2=',gheadv%recname(1:3) - - print *,'wrt size(vcoord)=',size(gheadv%vcoord,1), - & size(gheadv%vcoord,2),size(gheadv%vcoord,3) - call nemsio_gfsgrd_open(gfile,trim(kfile), - & 'write',nopdpvv,ghead,gheadv,iret=ios) - if (iret /= 0) print *,'open nemsio write file,',trim(kfile) - &, 'iret=',iret - print *,'aft open, ios=',ios - call nemsio_gfs_wrtgrd(gfile,gdata,iret=ios) - print *,'aft write, ios=',ios - if (iret /=0 ) print *,'nemsio write grd,ret=',iret - print*,' complete reading data, inptyp=', inptyp - print *,'hgt=',maxval(gdata%zs),minval(gdata%zs),gdata%zs(1,1) - print *,'pres=',maxval(gdata%ps),minval(gdata%ps),gdata%ps(1,1) - print *,'tmp=',maxval(gdata%t),minval(gdata%t),gdata%t(1,1,1) - print *,'ugrd=',maxval(gdata%u),minval(gdata%u),gdata%u(1,1,1) - print *,'vgrd=',maxval(gdata%v),minval(gdata%v),gdata%v(1,1,1) - print *,'spfh=',maxval(gdata%q(:,:,:,1)),minval(gdata%q(:,:,:,1)) - print *,'o3mr=',maxval(gdata%q(:,:,:,2)),minval(gdata%q(:,:,:,2)) - print *,'clwmr=',maxval(gdata%q(:,:,:,3)),minval(gdata%q(:,:,:,3)) - - ALLOCATE ( WR_G1(IMAX,JMAX) ) - DO K=1,KMAX - WR_G1(:,:)=gdata%t(:,:,K) - print *,'K,tmp= ',K,maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - END DO - DO K=1,KMAX - WR_G1(:,:)=gdata%u(:,:,K) -! print *,'K,u2= ',K,maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - END DO - DO K=1,KMAX - WR_G1(:,:)=gdata%v(:,:,K) -! print *,'K,v2= ',K,maxval(WR_G1),minval(WR_G1),WR_G1(1,1) - END DO -! DO K=1,KMAX -! WR_G1(:,:)=gdata%q(:,:,K,1) -! print *,'K,spfh2= ',K,maxval(WR_G1),minval(WR_G1),WR_G1(1,1) -! END DO - - DEALLOCATE ( WR_G1 ) - - call nemsio_close(gfile) -! - endif - - call nemsio_finalize() - -! xmem = get_memory() -! write(6,234) 'after sigio_swdata ',xmem - 234 format(a30,' mem ',g13.6,' MB') - - CALL W3TAGE('RELOCATE_MV_NVORTEX') - call mpi_finalize(ierr) -C - STOP - END -C - SUBROUTINE GLATS(LGGHAF,COLRAD,WGT,WGTCS,RCS2) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GLATS COMPUTES LOCATION OF GAUSSIAN LATITUDES. -C PRGMMR: JOSEPH SELA ORG: W/NMC23 DATE: 88-04-05 -C -C ABSTRACT: COMPUTES THE LOCATION OF THE GAUSSIAN LATITUDES FOR THE -C INPUT LGGHAF. THE LATITUDES ARE DETERMINED BY FINDING -C THE ZEROS OF THE LEGENDRE POLYNOMIALS. -C -C PROGRAM HISTORY LOG: -C 88-04-05 JOSEPH SELA -C -C USAGE: CALL GLATS (LGGHAF, COLRAD, WGT, WGTCS, RCS2) -C INPUT ARGUMENT LIST: -C LGGHAF - NUMBER OF GAUSSIAN LATITUDES IN A HEMISPHERE. -C -C OUTPUT ARGUMENT LIST: -C COLRAD - ARRAY OF COLATITUDE OF GAUSSIAN LATITUDES -C IN NORTHERN HEMISPHERE. -C WGT - ARRAY OF WEIGHTS AT EACH GAUSSIAN LATITUDE -C REQUIRED FOR GAUSSIAN QUADRATURE. -C WGTCS - ARRAY OF GAUSSIAN WEIGHT/SIN OF COLATITUDE SQUARED. -C RCS2 - ARRAY OF RECIPROCAL OF SIN OF COLATITUDE SQUARED. -C -C OUTPUT FILES: -C OUTPUT - write(6,*)OUT FILE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 200. -C MACHINE: CYBER 205. -C -C$$$ - implicit none - REAL(8) EPS,SI,RL2,PI,DRADZ,RAD,DRAD,P1,P2,PHI,X,W,SCALE,SN,RC - REAL COLRAD(LGGHAF),WGT(LGGHAF),WGTCS(LGGHAF),RCS2(LGGHAF) - INTEGER L2,LGGHAF,K1,K,ITER - EPS=1.E-12 -C write(6,*) 101 -C101 FORMAT ('0 I COLAT COLRAD WGT', 12X, 'WGTCS', -CCCC 1 10X, 'ITER RES') - SI = 1.0 - L2=2*LGGHAF - RL2=L2 - SCALE = 2.0/(RL2*RL2) - K1=L2-1 - PI = ATAN(SI)*4.E+00 - DRADZ = PI / 360./10. - RAD = 0.0 - DO 1000 K=1,LGGHAF - ITER=0 - DRAD=DRADZ -1 CALL POLY(L2,RAD,P2) -2 P1 =P2 - ITER=ITER+1 - RAD=RAD+DRAD - CALL POLY(L2,RAD,P2) - IF(SIGN(SI,P1).EQ.SIGN(SI,P2)) GO TO 2 - IF(DRAD.LT.EPS)GO TO 3 - RAD=RAD-DRAD - DRAD = DRAD * 0.25 - GO TO 1 -3 CONTINUE - COLRAD(K)=RAD - PHI = RAD * 180 / PI - CALL POLY(K1,RAD,P1) - X = COS(RAD) - W = SCALE * (1.0 - X*X)/ (P1*P1) - WGT(K) = W - SN = SIN(RAD) - W=W/(SN*SN) - WGTCS(K) = W - RC=1./(SN*SN) - RCS2(K) = RC - CALL POLY(L2,RAD,P1) -C write(6,*) 102,K,PHI,COLRAD(K),WGT(K),WGTCS(K),ITER,P1 -C102 FORMAT(1H ,I2,2X,F6.2,2X,F10.7,2X,E13.7,2X,E13.7,2X,I4,2X,D13.7) -1000 CONTINUE - RETURN - END - SUBROUTINE POLY(N,RAD,P) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: POLY EVALUATES LEGENDRE POLYNOMIAL. -C PRGMMR: JOSEPH SELA ORG: W/NMC23 DATE: 88-04-01 -C -C ABSTRACT: EVALUATES THE UNNORMALIZED LEGENDRE POLYNOMIAL -C OF SPECIFIED DEGREE AT A GIVEN COLATITUDE USING A STANDARD -C RECURSION FORMULA. REAL ARITHMETIC IS USED. -C -C PROGRAM HISTORY LOG: -C 88-04-01 JOSEPH SELA -C -C USAGE: CALL POLY (N, RAD, P) -C INPUT ARGUMENT LIST: -C N - DEGREE OF LEGENDRE POLYNOMIAL. -C RAD - REAL COLATITUDE IN RADIANS. -C -C OUTPUT ARGUMENT LIST: -C P - REAL VALUE OF LEGENDRE POLYNOMIAL. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 200. -C MACHINE: CYBER 205. -C -C$$$ - implicit none - REAL(8) X,RAD,Y1,Y2,Y3,G,P - INTEGER I,N - X = COS(RAD) - Y1 = 1.0 - Y2=X - DO 1 I=2,N - G=X*Y2 - Y3=G-Y1+G-(G-Y1)/FLOAT(I) - Y1=Y2 - Y2=Y3 -1 CONTINUE - P=Y3 - RETURN - END - - subroutine maxmin(a,len,k,k1,k2,ch) - dimension a(len,k) - character ch*(*) -c - do 100 j=k1,k2 - aamax = a(1,j) - aamin = a(1,j) - do 10 m=1,len - aamax = max( aamax, a(m,j) ) - aamin = min( aamin, a(m,j) ) -10 continue - write(6,*)ch,' has max=',aamax,' min=',aamin -100 continue - return - end -C - SUBROUTINE PMSL2PS(IMAX,JMAX,GLON,GLAT, - 1 IUT,MTV2,DUMM,HDAT,ZN,TN) - - real, parameter :: G=9.8, R=287.05, GAMMA=6.7*0.001 - PARAMETER (IRX=41,JRX=41,NST=10) - REAL GLON(IMAX),GLAT(JMAX),DUMM(IMAX,JMAX) - REAL TN(IRX,JRX) - REAL ZN(IRX,JRX),PSN(IRX,JRX),PSFCN(IRX,JRX) - - - COMMON /HDAT1/NWRT1,NRED1,NWT1 - REAL HDAT(IRX,JRX,MTV2,NST) - - CALL CUT_DM(IMAX,JMAX,GLON,GLAT,PSN,DUMM,1) - -C.. Using interpolated MSLP, Make surface pressure - -!$omp parallel do -!$omp& private(I,J,A,B,C,DD,D1) - DO I=1,IRX - DO J=1,JRX -! PSN(I,J) = LOG(PSN(I,J)) -! A = (GAMMA * ZN(I,J)) / TN(I,J) -! B = LOG(1+A) -! C = (G*B)/(R*GAMMA) -! DD = PSN(I,J) - C -! D1 = EXP(DD)/1000. -! PSFCN(I,J) = LOG(D1) -! PSN(I,J) = EXP(PSN(I,J)) - DD = TN(I,J)+0.0065*ZN(I,J) - D1 = 1.-0.0065*ZN(I,J)/DD - PSFCN(I,J) = LOG(PSN(I,J)*0.001)+5.257*LOG(D1) - ENDDO - ENDDO - -C write(6,*)'MSLP at Hurricane center ',psn(31,21)/100. -c call maxmin(psn,41*41,1,1,1,'sea-level pressure in reg') -c call maxmin(psfcn,41*41,1,1,1,'sfc pressure in reg (hPa)') -c call maxmin(dum1,41*41,1,1,1,'sfc pressure in reg(ln(cb))') -c call maxmin(zn,41*41,1,1,1,'terraine in reg') -c call maxmin(tn,41*41,1,1,1,'temperature at k=1 in reg') -c write(6,*)'============================' -C -c write(6,*)'write sfc press' -c WRITE(IUT) ((PSFCN(I,J),I=1,IRX),J=JRX,1,-1) - CALL WRIT1(IUT,NWT1,NWRT1,MTV2,PSFCN,HDAT) -c write(6,*)'write MSLP' -c WRITE(IUT) ((PSN(I,J),I=1,IRX),J=JRX,1,-1) - CALL WRIT1(IUT,NWT1,NWRT1,MTV2,PSN,HDAT) -c write(6,*)'write t1' -c WRITE(IUT) ((TN(I,J),I=1,IRX),J=JRX,1,-1) - CALL WRIT1(IUT,NWT1,NWRT1,MTV2,TN,HDAT) - RETURN - END -C - SUBROUTINE SPC2G(IMAX,JMAX,GLON,GLAT,ZG,PSFC,PSLB,T00, - 1 MTV,MTV2,HDAT,HDATA,DUM,IDX,idvm) -CCCCC MEMBER HALF -c SAVE -C - PARAMETER ( IRX= 41,JRX= 41, NST=10 ) - real, parameter :: G=9.8, R=287.05, GAMMA=6.7*0.001 - - integer * 4 idvm - COMMON/SMTH/ CLAT,CLON - REAL GLON(IMAX),GLAT(JMAX) - COMMON /NHC/ KSTM,IC_N(NST),JC_N(NST) - COMMON /NHC1/ SLON_N(NST),SLAT_N(NST),CLON_N(NST),CLAT_N(NST) - COMMON/CNT/ SLON,SLAT - COMMON /CHEN/KUNIT,ITIM -! - REAL HDAT(IRX,JRX,MTV2,NST) - REAL(4) HDATA(IMAX,JMAX,MTV) - REAL DUM(IMAX,JMAX) - - COMMON /HDAT1/NWRT1,NRED1,NWT1 - COMMON /HDAT3/NWRT2,NRED2 - - REAL ZG(IMAX,JMAX),PSFC(IMAX,JMAX),PSLB(IMAX,JMAX) - REAL T1(IMAX,JMAX),T00(IMAX,JMAX) - REAL PS(IMAX,JMAX),DUMM(IMAX,JMAX),PSL(IMAX,JMAX) - - REAL ZN(IRX,JRX),TN(IRX,JRX),NEW(IRX,JRX) -! -!.. Global coefficent to Gaussian grid -! -! call SPTEZ(0,MWAVE,4,IMAX,JMAX,DO,DUM,+1) - - IF(IDX.NE.100.AND.IDX.NE.101) THEN -! WRITE(66) DUM - - NWRT2 = NWRT2+1 - DO J=1,JMAX - DO I=1,IMAX - HDATA(I,J,NWRT2) = DUM(I,J) - END DO - END DO -! write(6,*)'WRIT2 COUNT = ',NWRT2,' hdata=',hdata(1,jmax/2,nwrt2) -! &,' idx=',idx - -! CALL WRIT2(DUM) -! write(6,*)'=====IDX ',IDX -! call maxmin(DUM,IMAX*JMAX,1,1,1,'DUM in gbl') - -! test qliu -! READ(66) DUM -! CALL G2SPC(DUM) -! end qliu - -! IF(IDX.EQ.1) write(6,*)'TERRAIN AT 289, 80 ',DUM(289,80) - ENDIF -! - IF(IDX.EQ.1) THEN - DO I=1,IMAX - DO J=1,JMAX - ZG(I,J) = DUM(I,J) - ENDDO - ENDDO - ELSEIF(IDX.EQ.2) THEN - DO I=1,IMAX - DO J=1,JMAX - PSFC(I,J) = DUM(I,J) - ENDDO - ENDDO - ELSEIF(IDX.EQ.3) THEN - DO I=1,IMAX - DO J=1,JMAX - T1(I,J) = DUM(I,J) - ENDDO - ENDDO - ENDIF -! - IF(IDX.EQ.2)call maxmin(PSFC,IMAX*JMAX,1,1,1,'psfc in gbl') - IF(IDX.EQ.3)call maxmin(T1,IMAX*JMAX,1,1,1,'T1 in gbl') - - IF(IDX.EQ.3)THEN - if (mod(idvm,10)==2)then -!$omp parallel do -!$omp& private(I,J) - DO I=1,IMAX - DO J=1,JMAX - PS(i,j)=PSFC(I,J)*1000. - PSFC(I,J) = LOG(PS(i,j)) - ENDDO - ENDDO - else -!$omp parallel do -!$omp& private(I,J) - DO I=1,IMAX - DO J=1,JMAX - PS(i,j)=EXP(PSFC(I,J))*1000. - PSFC(I,J) = LOG(PS(i,j)) - ENDDO - ENDDO - end if - call maxmin(ps,IMAX*JMAX,1,1,1,'sfc press in gbl') -! -!.. Calculate MSLP from SFC Pressure -! -!$omp parallel do -!$omp& private(I,J,A,B,C) - DO I=1,IMAX - DO J=1,JMAX -! A = (GAMMA * ZG(I,J)) / T1(I,J) -! B = LOG(1+A) -! C = (G*B)/(R*GAMMA) -! PSL(I,J) = PSFC(I,J) + C - T00(I,J)=T1(I,J)+0.0065*ZG(I,J) - C = 5.257*LOG(1.-0.0065*ZG(I,J)/T00(I,J)) - PSL(I,J) = PSFC(I,J) - C - DUMM(I,J) = EXP(PSL(I,J)) - ENDDO - ENDDO - - call maxmin(DUMM,IMAX*JMAX,1,1,1,'MSLP in gbl') -! write(70)DUMM - PSLB = DUMM - ENDIF - - DO K=1,KSTM - - IUT=K - -! NWRT1 = 0 - NWT1=0 - - SLON = SLON_N(K) - SLAT = SLAT_N(K) - CLON = CLON_N(K) - CLAT = CLAT_N(K) - IC = IC_N(K) - JC = JC_N(K) -! - IF (IDX.EQ.1) THEN - CALL CUT_DM(IMAX,JMAX,GLON,GLAT,ZN,DUM,2) -! WRITE(IUT) ((ZN(I,J),I=1,IRX),J=JRX,1,-1) - CALL WRIT1(IUT,NWT1,NWRT1,MTV2,ZN,HDAT) - write(6,222)K,ITIM,SLON,SLAT,CLON,CLAT,IC,JC - 222 FORMAT(/' STORM ',I2,', FORECAST HOUR ',I4/, - 1 ' SLON,SLAT,CLON,CLAT,IC,JC=',4F10.3,2x,2I5/) -! write(6,*)'write zn' - ENDIF - IF (IDX.EQ.3) THEN - DO I=1,41 - DO J=1,41 - ZN(I,J)=HDAT(I,J,1,IUT) - END DO - END DO - END IF - IF (IDX.EQ.3) CALL CUT_DM(IMAX,JMAX,GLON,GLAT,TN,DUM,3) - IF(IDX.NE.1.AND.IDX.NE.3.AND.IDX.LT.100) THEN - CALL CUT_DM(IMAX,JMAX,GLON,GLAT,NEW,DUM,3) - ELSEIF(IDX.GE.100) THEN - CALL CUT_DM(IMAX,JMAX,GLON,GLAT,NEW,DUM,IDX) - ENDIF - -! IF(IDX.LE.3)write(6,*)'===at sub SPC2G just bfr call PMSL2PS ===' -! IF(IDX.EQ.1)call maxmin(zg,IMAX*JMAX,1,1,1,'terrain in gbl') -! IF(IDX.EQ.1)call maxmin(zn,41*41,1,1,1,'terrain in reg') -! IF(IDX.EQ.2)call maxmin(psfc,IMAX*JMAX,1,1,1,'sfc pres in gbl') -! IF(IDX.EQ.2)call maxmin(new,41*41,1,1,1,'sfc pres in reg') -! IF(IDX.EQ.3)call maxmin(t1,IMAX*JMAX,1,1,1,'temp at k=1 in gbl') -! IF(IDX.EQ.3)call maxmin(tn,41*41,1,1,1,'temp at k=1 in reg') -! IF(IDX.LE.3)write(6,*)'=======================================' -! - IF(IDX.EQ.3) CALL PMSL2PS(IMAX,JMAX,GLON,GLAT, - 1 IUT,MTV2,DUMM,HDAT,ZN,TN) -131 FORMAT(1x,'TERRAIN') -121 FORMAT(1x,20F5.0) - -! - IF(IDX.GT.3) THEN -! WRITE(IUT)((NEW(I,J),I=1,IRX),J=JRX,1,-1) - CALL WRIT1(IUT,NWT1,NWRT1,MTV2,NEW,HDAT) - ENDIF - - IF(K.LT.KSTM)NWRT1=NWRT1-NWT1 - - ENDDO -! - RETURN - END -C - SUBROUTINE DECVAR(ISTART,IEND,IVALUE,IERDEC,FMT,BUFF) -C - PARAMETER (NCHLIN=130) -C - CHARACTER FMT*(*),BUFF*(*),OUTLIN*1 -C -c SAVE -C - DIMENSION OUTLIN(NCHLIN) -C -c && 2 comments -CC WRITE(6,1) FMT,BUFF -CC 1 FORMAT(/'...FMT=',A10,/,' ...BUFF=',A100) -C - READ(BUFF(ISTART:IEND),FMT,ERR=10) IVALUE - IERDEC=0 - RETURN -C - 10 CONTINUE -C - OUTLIN=' ' -C - IERDEC=10 - OUTLIN(ISTART:IEND)='*' -C - WRITE(6,31) (OUTLIN(ICH1),ICH1=1,NCHLIN) - WRITE(6,32) BUFF - 31 FORMAT(/'******ERROR DECODING, BUFF=',/,130A1) - 32 FORMAT(A130) -C - RETURN - END - - - SUBROUTINE HURR_MESS(IMAX,JMAX,GLON,GLAT,STRPSF) - - PARAMETER (IRX=41,JRX=41,NST=10) - PARAMETER (MAXVIT=15) - - COMMON/SMTH/ CLAT,CLON - REAL GLAT(JMAX),GLON(IMAX) - REAL STRPSF(NST) - COMMON /NHC/ KSTM,IC_N(NST),JC_N(NST) - COMMON /NHC1/ SLON_N(NST),SLAT_N(NST),CLON_N(NST),CLAT_N(NST) - DIMENSION STMDIR(NST),STMSPD(NST) -c CHARACTER ST_NAME(NST)*3,TCVT(NST)*95 - CHARACTER ST_NAME(10)*3,STMNAME(10)*3,TCVT(10)*95 - COMMON /STNAME/ST_NAME - COMMON /TCVIT/TCVT - COMMON /CHEN/KUNIT,ITIM,NTIM - - CHARACTER BUFIN(95)*1,BUFY2K(95)*1,STMNAM(NST)*12,STMNMZ*9 - CHARACTER FMTVIT(MAXVIT)*6,BUFINZ*100,LATNS*1,LONEW*1 - - DIMENSION IVTVAR(MAXVIT),VITVAR(MAXVIT),VITFAC(MAXVIT), - 1 ISTVAR(MAXVIT),IENVAR(MAXVIT) - - DIMENSION ISTMCX1(NTIM,NST),ISTMCY1(NTIM,NST), - 1 STMCX(NST),STMCY(NST) - - DATA ISTVAR/20,29,34,39,45,49,53,58,63,68,71,75,80,85,90/ - DATA IENVAR/27,32,36,42,47,51,56,61,66,69,73,78,83,88,93/ - DATA VITFAC/2*1.0,2*0.1,1.0,0.1,9*1.0/ - DATA FMTVIT/'(I8.8)','(I4.4)','(I3.3)','(I4.4)',2*'(I3.3)', - 1 3*'(I4.4)','(I2.2)','(I3.3)',4*'(I4.4)'/ - - EQUIVALENCE (BUFIN(37),LATNS),(BUFIN(43),LONEW), - 1 (BUFIN(10),STMNMZ),(BUFIN(1),BUFINZ) -C EQUIVALENCE (IVTVAR(1),IDATEZ),(IVTVAR(2),IUTCZ) -C - EQUIVALENCE (VITVAR( 3),STMLTZ),(VITVAR( 4),STMLNZ), - 1 (VITVAR( 5),STMDRZ),(VITVAR( 6),STMSPZ), - 1 (VITVAR( 9),RMPSFZ) -C - ONEDEG=360./(2.*3.1415926*6.37E6) -C - DO I=1,10 - SLON_N(I)=0. - SLAT_N(I)=0. - CLON_N(I)=0. - CLAT_N(I)=0. - IC_N(I)=0 - JC_N(I)=0 - END DO - - 90 REWIND 11 - KREC=0 - KSTORM=0 - NERROR=0 -C -C Get the hurricane center from the hurricane message made by NHC -C -C READ A RECORD INTO BUFFER -C - 100 CONTINUE - READ(11,101,ERR=990,END=200) (BUFIN(NCH),NCH=1,95) - 101 FORMAT(95A1) - - if(BUFIN(35).eq.'N' .or. BUFIN(35).eq.'S') then - - write(6,*) ' ' - write(6,*) '==> RECORD from tcvitals file contains a', - $ ' 2-digit year "' - write(6,*) ' ' - - BUFY2K(1:19) = BUFIN(1:19) - IF(BUFIN(20)//BUFIN(21).GT.'20') THEN - BUFY2K(20) = '1' - BUFY2K(21) = '9' - ELSE - BUFY2K(20) = '2' - BUFY2K(21) = '0' - ENDIF - BUFY2K(22:95) = BUFIN(20:93) - BUFIN = BUFY2K - - write(6,*) ' ' - write(6,*) '==> 2-digit year converted to 4-digit year "' - write(6,*) ' ' - - else if(BUFIN(37).eq.'N' .or. BUFIN(37).eq.'S') then - - write(6,*) ' ' - write(6,*) '==> RECORD from tcvitals file -- contains a', - $ ' 4-digit year "' - write(6,*) ' ' - - else - - write(6,*) ' ' - write(6,*) '***** Cannot determine if this record contains ', - $ 'a 2-digit year or a 4-digit year - skip it and try reading ', - $ 'the next record' - write(6,*) ' ' - go to 100 - - end if - -C -C DECODE DATE AND TIME -C - DO 110 IV=1,2 - CALL DECVAR(ISTVAR(IV),IENVAR(IV),IVTVAR(IV),IERDEC,FMTVIT(IV), - 1 BUFINZ) - - 110 CONTINUE - - DO 140 IV=3,MAXVIT - CALL DECVAR(ISTVAR(IV),IENVAR(IV),IVTVAR(IV),IERDEC,FMTVIT(IV), - 1 BUFINZ) - VITVAR(IV)=REAL(IVTVAR(IV))*VITFAC(IV) - 140 CONTINUE - -C ***************************************************** -C ***************************************************** -C **** IMPORTANT NOTES: **** -C **** **** -C **** ALL STORM LONGITUDES CONVERTED TO **** -C **** 0-360 DEGREES, POSITIVE EASTWARD !!! **** -C **** **** -C **** ALL STORM SPEEDS ARE IN M/SEC **** -C **** **** -C **** ALL DISTANCE DATA ARE IN KM **** -C **** **** -C **** ALL PRESSURE DATA ARE IN HPA (MB) **** -C ***************************************************** -C ***************************************************** -C -C SIGN OF LATITUDE AND CONVERT LONGITUDE -C - IF(LATNS .EQ. 'S') THEN - STMLTZ=-STMLTZ - ELSE IF(LATNS .NE. 'N') THEN - WRITE(6,153) STMLTZ,STMLNZ,LATNS - 153 FORMAT('******ERROR DECODING LATNS, ERROR RECOVERY NEEDED.', - 1 ' STMLTZ,STMLNZ,LATNS=',2F12.2,2X,A1) - GO TO 100 - ENDIF -C - IF(LONEW .EQ. 'W') THEN - STMLNZ=360.-STMLNZ - ELSE IF(LONEW .NE. 'E') THEN - WRITE(6,157) STMLTZ,STMLNZ,LATNS - 157 FORMAT('******ERROR DECODING LONEW, ERROR RECOVERY NEEDED.', - 1 ' STMLTZ,STMLNZ,LATNS=',2F12.2,2X,A1) - ENDIF - - IF(STMLNZ.gt.345..or.STMLNZ.lt.15.)go to 100 - - KREC=KREC+1 - - DO I=1,3 - ST_NAME(KREC)(I:I)=BUFIN(I+5) - END DO - DO I=1,95 - TCVT(KREC)(I:I)=BUFIN(I) - END DO -C - IF(KSTORM .LT. 10) THEN - KSTORM=KSTORM+1 - CLAT_N(KSTORM)=STMLTZ - CLON_N(KSTORM)=STMLNZ - STMDIR(KSTORM)=STMDRZ - STMSPD(KSTORM)=STMSPZ - STMNAM(KSTORM)=STMNMZ - STRPSF(KSTORM)=RMPSFZ - GO TO 100 -C - ELSE - - 300 WRITE(6,301) KSTORM - 301 FORMAT(/'******KSTORM EXCEEDS AVAILABLE SPACE, KSTORM=',I5 - 1 ,/,' Results may have serious problem') - GO TO 200 - - ENDIF - - 200 IF(KSTORM .GT. 0) THEN - WRITE(6,201)KSTORM,KREC - 201 FORMAT(/'...FOUND STORM IN VITALS FILE.',/,4X,I5, - 2 ' TOTAL NUMBER OF RECORDS READ=',I7) - ELSE - WRITE(6,202) - 202 FORMAT(/'NO STORM FOUND IN VITALS FILE.') - CALL W3TAGE('RELOCATE_MV_NVORTEX') - CALL ERREXIT(56) - END IF -C -c Correct to the storm center position - - PI=ATAN(1.0)*4.E+00 - PI180 = PI/180. - DT=(float(ITIM)-6.)*3600. ! Second - ONEDEG=360./(2.*PI*6.37E6) ! Degree/Meter - FACT=DT*ONEDEG - - KSTM=KSTORM - -c WRITE(12, 233) KSTM -c 233 FORMAT(2x,I5) - - DO I=1,KSTM - - write(6,430)STMNAM(I),CLAT_N(I),CLON_N(I),STMDIR(I),STMSPD(I) - 430 FORMAT(/' STORM NAME: ',A12,/, ' READIN STORM CENTER=',2F12.4, - 1 /,' STORM DIR and SPEED: ',2F12.4) - - write(6,*)'RAD OUTMOST CLOSED ISOBAR= ',STRPSF(I),' km' - - STRPSF(I)=STRPSF(I)*1000.*ONEDEG - - write(6,*)'RAD OUTMOST CLOSED ISOBAR= ',STRPSF(I),' degree' - -cnew USTM=STMSPD(I)*SIN(PI180*STMDIR(I)) -cnew VSTM=STMSPD(I)*COS(PI180*STMDIR(I)) -cnew CLON_N(I)=CLON_N(I)+USTM*FACT/COS(PI180*CLAT_N(I)) -cnew CLAT_N(I)=CLAT_N(I)+VSTM*FACT - -cnew write(6,*) 'CORRECTED STORM CENTER AT TIME HOUR ',ITIM,' =', -cnew 1 CLON_N(I),CLAT_N(I) - - END DO - - IF ( NTIM == 3 ) THEN - INDX1=ITIM/3 - ELSE IF ( NTIM == 7 )THEN - INDX1=ITIM-2 - ENDIF - - K1STM=0 - DO I=1,10 - STMCX(I)=0. - STMCY(I)=0. - STMNAME(I)='NUL' - IF ( NTIM == 3 ) THEN - READ(30,442,end=436) - & (ISTMCY1(J,I),ISTMCX1(J,I),J=1,NTIM),STMNAME(I) - ELSEIF ( NTIM == 7 ) THEN - READ(30,443,end=436) - & (ISTMCY1(J,I),ISTMCX1(J,I),J=1,NTIM),STMNAME(I) - ENDIF - IFWRT=0 - DO J=1,NTIM - IF(ISTMCY1(J,I).EQ.0.and.ISTMCX1(J,I).EQ.0)THEN - IFWRT=1 - END IF - END DO - IF(IFWRT.EQ.1)THEN -! STMNAME(I)='NUL' - DO J=1,NTIM - ISTMCY1(J,I)=0. - ISTMCX1(J,I)=0. - END DO - END IF - STMCX(I)=360.-ISTMCX1(INDX1,I)*0.1 - STMCY(I)=ISTMCY1(INDX1,I)*0.1 - K1STM=K1STM+1 - write(6,*)' CT STORM Model CENTER at ',ITIM,'h = ', - & STMNAME(I),STMCX(I),STMCY(I) - END DO - 442 FORMAT(22x,6i4,25x,A3) - 443 FORMAT(14x,14i4,1x,A3) - 436 CONTINUE - - REWIND 30 - - DO I=1,KSTM - DO K=1,K1STM - IF(STMNAME(K).EQ.ST_NAME(I))THEN - IFWRT=0 - DO J=1,NTIM - IF(ISTMCY1(J,K).EQ.0.and.ISTMCX1(J,K).EQ.0)THEN - IFWRT=1 - END IF - END DO - IF(IFWRT.EQ.0)THEN - XDIST6H=CLON_N(I)-(360.-ISTMCX1((NTIM+1)/2,K)*0.1) - YDIST6H=CLAT_N(I)-ISTMCY1((NTIM+1)/2,K)*0.1 - CLON_N(I)=STMCX(K)+XDIST6H - CLAT_N(I)=STMCY(K)+YDIST6H - ELSE - USTM=STMSPD(I)*SIN(PI180*STMDIR(I)) - VSTM=STMSPD(I)*COS(PI180*STMDIR(I)) - CLON_N(I)=CLON_N(I)+USTM*FACT/COS(PI180*CLAT_N(I)) - CLAT_N(I)=CLAT_N(I)+VSTM*FACT - END IF - write(6,*) ' CT STORM OBS. CENTER at ',ITIM,'h = ', - & STMNAME(K),CLON_N(I),CLAT_N(I) - END IF - END DO - END DO - - - DO 900 I=1,KSTM - - CLON=CLON_N(I) - CLAT=CLAT_N(I) - - AMN = 500. - DO 10 ILA = 1,JMAX - DMN = ABS (GLAT(ILA) - CLAT) - IF (DMN.LE.AMN) THEN - AMN = DMN - JC = ILA - ENDIF -10 CONTINUE -C - BMN = 500. - DO 20 ILO = 1,IMAX - OMN = ABS (GLON(ILO) - CLON) - IF (OMN.LE.BMN) THEN - BMN = OMN - IC = ILO - ENDIF -20 CONTINUE - - IC_N(I)=IC - JC_N(I)=JC -C - write(6,*)' ' -c write(6,*)'==========AT SUB HURR_MESS=============' -c write(6,*)'... 1st guess ... center of hurricane' -c write(6,*)'===IC,JC=== ',IC,JC,GLON(IC),GLAT(JC) -c write(6,*)'==DIST OF CLON AND IC===',BMN -c write(6,*)'==DIST OF CLAT AND JC===',AMN - - SLON_N(I) = IFIX(GLON(IC)+0.5 - IRX/2) - SLAT_N(I) = IFIX(GLAT(JC)+0.5 - JRX/2) - write(6,*)' ' -c write(6,*)'==========================================' -c write(6,*)'SLAT, SLON = ', SLAT_N(I),SLON_N(I) -c WRITE(12,123)SLON_N(I),SLAT_N(I),CLON_N(I),CLAT_N(I) -c123 FORMAT(1x,4F10.3) - write(6,*)'==========================================' - - 900 CONTINUE - - RETURN - - 990 WRITE(6,991) BUFIN - 991 FORMAT('******ERROR READING STORM RECORD. BUFIN IS:',/, - 1 ' ******',A95,'******') - call mpi_finalize(iret) !!!GO TO 100 - RETURN - - END -C - - SUBROUTINE CUT_DM(IMAX,JMAX,GLON,GLAT,NEW,OLD,IV) -C - PARAMETER (IRX=41,JRX=41) - - COMMON/SMTH/ CLAT,CLON - REAL GLAT(JMAX),GLON(IMAX),OLD(IMAX,JMAX) - COMMON/CNT/ SLON,SLAT - REAL NEW(IRX,JRX) -C - X=360./FLOAT(IMAX) - -!!$OMP PARALLEL DO DEFAULT(PRIVATE) -!!$OMP+ SHARED(IMAX,JMAX,GLON,GLAT,NEW,OLD,IV) -!!$OMP+ SHARED(CLAT,CLON,SLON,SLAT,X) - DO 10 J=1,JRX - BLA = 90. - SLAT - (J-1) - DO 10 I=1,IRX - BLO = SLON + (I-1) - IF(BLO.GT.360.)BLO=BLO-360. -C - DO 20 IG=IMAX,1,-1 - DON = BLO - GLON(IG) - IF (DON.GE.0) THEN - DX = DON - IX = IG - GO TO 1 - ENDIF -20 CONTINUE -C -1 DO 30 JG=JMAX,1,-1 - GLA = 90 - GLAT(JG) - DAT = BLA - GLA - IF (DAT.GE.0) THEN - DY = DAT - IY = JG - Y = GLAT(JG)-GLAT(JG+1) - GO TO 2 - ENDIF -30 CONTINUE -C -2 IF (IV.EQ.2) THEN - DD1 = SQRT(DX**2.+DY**2.) - DD2 = SQRT(DX**2.+(Y-DY)**2.) - DD3 = SQRT((X-DX)**2.+DY**2.) - DD4 = SQRT((X-DX)**2.+(Y-DY)**2.) - IF(DD1.LE.0.2) THEN - NEW(I,J) = OLD(IX,IY) - GO TO 10 - ENDIF - IF(DD2.LE.0.2) THEN - NEW(I,J) = OLD(IX,IY+1) - GO TO 10 - ENDIF - IF(DD3.LE.0.2) THEN - NEW(I,J) = OLD(IX+1,IY) - GO TO 10 - ENDIF - IF(DD4.LE.0.2) THEN - NEW(I,J) = OLD(IX+1,IY+1) - GO TO 10 - ENDIF - ENDIF -C - X1 = ( DY*OLD(IX ,IY+1) + (Y-DY)*OLD(IX ,IY) ) / Y - X2 = ( DY*OLD(IX+1,IY+1) + (Y-DY)*OLD(IX+1,IY) ) / Y - Y1 = ( DX*OLD(IX+1,IY ) + (X-DX)*OLD(IX,IY ) ) / X - Y2 = ( DX*OLD(IX+1,IY+1) + (X-DX)*OLD(IX,IY+1) ) / X - XX = (DX*X2 + (X-DX)*X1)/X - YY = (DY*Y2 + (Y-DY)*Y1)/Y - NEW(I,J) = (XX+YY)/2. -c xxxxx=0.25*(OLD(IX,IY)+OLD(IX+1,IY)+ -c & OLD(IX,IY+1)+OLD(IX+1,IY+1)) -C -c IF(IV.GE.100) THEN -C -c IF(I.LE.30.AND.J.EQ.20)THEN -c write(6,*)'OLD 1,2,3,4 ', -c 1 OLD(IX,IY),OLD(IX+1,IY),OLD(IX,IY+1),OLD(IX+1,IY+1) -c write(6,*)'X,Y,DX,DY ',X,Y,DX,DY -c write(6,*)'X1,X2,Y1,Y2 ',x1,x2,y1,y2 -c write(6,*)'XX, YY ',XX,YY -c write(6,*)'NEW ',NEW(I,J) -c write(6,*)'LAT, LON at SM Domain ',SLAT+(J-1),SLON+(I-1) -c write(6,*)'LAT, LON at Gauss grid ',GLAT(IY),GLON(IX) -c write(6,*)'IX,IY ',IX,IY -c write(6,*)'BLA, BLO, GLA, GLO ',BLA, BLO, GLA, GLON(IX) -c ENDIF -c ENDIF -C -10 CONTINUE -!!$OMP END PARALLEL DO -C - RETURN - END - - - SUBROUTINE WRIT1(IUT,NWT1,NWRT1,MTV2,DIN,HDAT) - PARAMETER (IRX=41,JRX=41,NST=10) - REAL DIN(IRX,JRX),HDAT(IRX,JRX,MTV2,NST) - NWRT1 = NWRT1 + 1 - NWT1 = NWT1 + 1 -! write(6,*)'WRIT1 COUNT = ',NWRT1,NWT1,IUT - DO J=1,JRX - DO I=1,IRX - HDAT(I,J,NWRT1,IUT) = DIN(I,J) - END DO - END DO -! write(6,*)' inwrit1 hdat=',hdat(41,41,nwrt1,iut),' nwrt1=',nwrt1 -! &,' iut=',iut - return - END - - SUBROUTINE READ1(IUT,NRED1,MTV3,DOUT,PDAT) - PARAMETER (IRX=41,JRX=41) - REAL DOUT(IRX,JRX),PDAT(IRX,JRX,MTV3) - NRED1=NRED1+1 -! write(6,*)'READ1 COUNT = ',NRED1 - DO J=1,JRX - DO I=1,IRX - DOUT(I,J)=PDAT(I,J,NRED1) - END DO - END DO - END - - SUBROUTINE WRIT2(IMAX,JMAX,NWRT2,MTV,DIN,HDATA) - REAL DIN(IMAX,JMAX) - REAL(4) HDATA(IMAX,JMAX,MTV) - NWRT2=NWRT2+1 -c write(6,*)'WRIT2 COUNT = ',NWRT2 -c call maxmin(DIN,IMAX*JMAX,1,1,1,'DIN in gbl') - DO J=1,JMAX - DO I=1,IMAX - HDATA(I,J,NWRT2)=DIN(I,J) - END DO - END DO - END - - SUBROUTINE READ2(IMAX,JMAX,NRED2,MTV,DOUT,HDATA) - REAL DOUT(IMAX,JMAX) - REAL(4) HDATA(IMAX,JMAX,MTV) - NRED2=NRED2+1 -c write(6,*)'READ2 COUNT = ',NRED2 - DO J=1,JMAX - DO I=1,IMAX - DOUT(I,J)=HDATA(I,J,NRED2) - END DO - END DO - END - - - SUBROUTINE HURR_REL(inptyp,MWAVE,IMAX,JMAX,KMAX,MAXWV2, - 1 JHF,MTV,MTV1,MTV2,MTV3, - 2 HDAT,HDATA,PDAT,PSL,PS3,PSLB,T00,SL, - 3 nvcd,idvc,idsl,vcrd,idvm,ntrac, - 4 STRPSF) - -c SUBROUTINE HURR_REL(MWAVE,KMAX,MAXWV2, -c 1 MTV,MTV1,MTV2,MTV3, -c 2 HDAT,HDATA,PDAT,PSLB) - -C -C SEPARATE HURRICANE VORTEX FROM ENVIRONMENTAL FIELD, THEN -C RELOCATE THE HURRICANCE VORTEX TO NEW LOCATION -C REF, Kurihara et al 1992, 1995. MWR -C - - use sigio_module -! use sigio_r_module - - - PARAMETER (IX=41,JX=41,NF=11,IT=24,IR=120,IJ=IX*JX) - PARAMETER (NSG=54000) - PARAMETER (NST=10) - PARAMETER (NSG5=NSG/3) -c PARAMETER (IMAX=384,JMAX=190,NSG=24000) -c PARAMETER (JHF=JMAX/2,NST=10) -C - integer inptyp - integer MWAVE,IMAX,JMAX,KMAX,MAXWV2, - & JHF,MTV,MTV1,MTV2,MTV3 - integer * 4 nvcd,idvc,idsl,idvm,ntrac - &, imjm4, km4, iret - DIMENSION U(IX,JX),V(IX,JX),UD(IX,JX),US(IX,JX),VS(IX,JX) - DIMENSION SKIP(IX,JX),M(11),FK(NF),TW(IT,IR) - DIMENSION VD(IX,JX),XTU(IX,NF),XTV(IX,NF),DKY(IX,JX) - DIMENSION YTU(IX,JX),YTV(IX,JX),RS(IT),R0(IT),RF(IT) -! DIMENSION INP(IJ),JNP(IJ),CM(IJ),DIST(IJ) - DIMENSION ALAT(JX),ALON(IX),ZG(IX,JX),DATG(IMAX,JMAX) - DIMENSION GLON(IMAX,JMAX),GLAT(IMAX,JMAX),ZDATG(IMAX,JMAX) - DIMENSION ING(NSG),JNG(NSG) - - DIMENSION ING5(NSG5),JNG5(NSG5) - DIMENSION ING6(NSG5),JNG6(NSG5) - DIMENSION RRIJ(NSG5) - - REAL COLRAD(JHF), WGT(JHF),WGTCS(JHF),RCS2(JHF) - COMMON /ST/ALON,ALAT - - COMMON /NHC/ KSTM1,IC_N(NST),JC_N(NST) - COMMON /NHC1/SLON_N(NST),SLAT_N(NST),CLON_N(NST),CLAT_N(NST) - - COMMON /NHC2/MDX,MDY - COMMON /NHC3/AMDX,AMDY - COMMON /POSIT/CLON_NEW,CLAT_NEW,SLON,SLAT,CLON,CLAT,RAD - COMMON /vect/R0,XVECT(IT),YVECT(IT) - COMMON /TR/ING,JNG,IB -c COMMON /TR/ZDATG,GLON,GLAT,ING,JNG,IB - COMMON /CHNL/IUT,KSTM - - COMMON /HDAT1/NWRT1,NRED1,NWT1 - COMMON /HDAT3/NWRT2,NRED2 - REAL PSLB(IMAX,JMAX),T00(IMAX,JMAX) - REAL(4) SL(KMAX) - REAL HDAT(IX,JX,MTV2,NST) - REAL(4) HDATA(IMAX,JMAX,MTV) - REAL PDAT(IX,JX,MTV3) - REAL HSIG(IX,JX,KMAX),HP(IX,JX,2*KMAX+1) - - REAL STRPSF(NST) - - REAL STMCX(NST),STMCY(NST) - CHARACTER ST_NAME(NST)*3,STMNAME(NST)*3,TCVT(NST)*95 - COMMON /STNAME/ST_NAME - COMMON /TCVIT/TCVT - COMMON /CHEN/KUNIT,ITIM,NTIM - - INTEGER ISTMCX1(NTIM,NST),ISTMCY1(NTIM,NST) - -! REAL(4) FHOUR,DUMMY(245) -! CHARACTER*8 LAB(4) -! DIMENSION IDATE(4) - DIMENSION DKM(IX,JX) - DIMENSION ENV(IX,JX,MTV2),ENV1(IX,JX,MTV3) - - real (4) vcrd(KMAX+1,nvcd) -cc - REAL PSL(IMAX,JMAX),PS3(IMAX,JMAX) - REAL(4), ALLOCATABLE :: HDATA30(:,:,:) - REAL, ALLOCATABLE :: PDAT30(:,:,:),PSL30(:,:),PS30(:,:) - REAL, ALLOCATABLE :: HSIG30(:,:,:),HP30(:,:,:),PDAT301(:,:,:) - REAL, ALLOCATABLE :: GLON30(:,:),GLAT30(:,:) -! REAL, ALLOCATABLE :: WK_S1(:,:),WK_S2(:,:),WK_G(:,:,:) -! REAL, ALLOCATABLE :: WK_S1(:,:),WK_G1(:,:,:) - -! COMMON /COEF1/LAB -! COMMON /COEF2/IDATE -! COMMON /COEF3/FHOUR,DUMMY -! COMMON /COEF5/NCNT,NCNT2 -C - DATA M/2,3,4,2,5,6,7,2,8,9,2/ -C - -! NCNT2 = 0 - - DO LO = 1,NSG - ING(LO) = 0 - JNG(LO) = 0 - ENDDO -C - CALL GLATS(JHF,COLRAD,WGT,WGTCS,RCS2) -C - PI=ASIN(1.)*2 - RAD=PI/180. -C - DO I = 1,IMAX - DO LL = 1,JHF - LLS = JMAX+1 - LL - GLAT(I,LL) = 90. - COLRAD(LL)/RAD - GLAT(I,LLS) = -GLAT(I,LL) - ENDDO - ENDDO -C - DLN = 360.0/FLOAT(IMAX) - DO J = 1,JMAX - DO LN = 1,IMAX - GLON(LN,J) = (LN-1) * DLN - ENDDO - ENDDO -C -c REWIND 12 -c REWIND 20 - -cql READ(20)LAB -c WRITE(6,124) LAB -124 FORMAT(4A8) -!1111 WRITE(KUNIT) LAB -! WRITE(6,210) (IDATE(I),I=1,4) -c 1 ,FHOUR,(DUMMY(K),K=1,2*KMAX+1) -!210 FORMAT(5X,' INPUT DATE AND FCST HOUR ',4I5,F7.1/(2X,G13.6)) -!1111 WRITE(KUNIT)FHOUR,(IDATE(I),I=1,4),DUMMY - -c WRITE(KUNIT)(SKIP2(NW),NW=1,MAXWV2) -C - DO I=1,NF - FK(I)=0.5/(1-COS(2.*PI/M(I))) - ENDDO -C -c READ(12, 233) KSTM -c 233 FORMAT(2x,I5) - KSTM = KSTM1 - - write(6,244) KSTM - 244 FORMAT('NUMBER OF STORMS: ',I5) - - IF ( NTIM == 3 ) THEN - INDX1=ITIM/3 - ELSE IF ( NTIM == 7 )THEN - INDX1=ITIM-2 - ENDIF - - K1STM=0 - DO I=1,NST - STMCX(I)=0. - STMCY(I)=0. - STMNAME(I)='NUL' - IF ( NTIM == 3 ) then - READ(30,442,end=436) - & (ISTMCY1(J,I),ISTMCX1(J,I),J=1,NTIM),STMNAME(I) - ELSEIF ( NTIM == 7 ) then - READ(30,443,end=436) - & (ISTMCY1(J,I),ISTMCX1(J,I),J=1,NTIM),STMNAME(I) - ENDIF - IFWRT=0 - DO J=1,NTIM - IF(ISTMCY1(J,I).EQ.0.and.ISTMCX1(J,I).EQ.0)THEN - IFWRT=1 - END IF - END DO - IF(IFWRT.EQ.1)THEN -! STMNAME(I)='NUL' - DO J=1,NTIM - ISTMCY1(J,I)=0. - ISTMCX1(J,I)=0. - END DO - END IF - STMCX(I)=360.-ISTMCX1(INDX1,I)*0.1 - STMCY(I)=ISTMCY1(INDX1,I)*0.1 - K1STM=K1STM+1 -c write(6,*)'QLIU test=',STMNAME(I),STMCX(I),STMCY(I) - END DO - 442 FORMAT(22x,6i4,25x,A3) - 443 FORMAT(14x,14i4,1x,A3) - 436 CONTINUE - - DO 788 KST=1,KSTM - -c IUT=89+KST - IUT=KST -C - DO K=1,MTV2 - DO J=1,JX - DO I=1,IX - ENV(I,J,K)=HDAT(I,J,K,KST) - END DO - END DO -! write(6,*)'data new K,KST = ',K,KST -! call maxmin(ENV(1,1,K),IX*JX,1,1,1,'ENV(I,J,K)') - END DO - -! write(6,*)' ENV=',ENV(41,41,1:67) - - PSC_MX=0. - DO J=1,JX - DO I=1,IX - IF(PSC_MX.LT.ENV(I,J,2))PSC_MX=ENV(I,J,2) - END DO - END DO - PSC_MX1=EXP(PSC_MX)*1000.+500.0 - write(6,*)'MAX SFC PRESS=',PSC_MX1 - - CALL SIG2P(KMAX,MTV2,MTV3,ENV(1,1,1),PDAT(1,1,1), - & PSC_MX1,HSIG,HP,KST,nvcd,idvc,idsl,vcrd) - - - NWRT1 = 0 - NWRT2 = 0 - NRED1 = 0 - NRED2 = 0 - - CALL READ2(IMAX,JMAX,NRED2,MTV,ZDATG,HDATA) - -c WRIT2(NWRT2,MTV,ZDATG,HDATA) - NWRT2 = 1 - - CALL READ1(IUT,NRED1,MTV3,ZG,PDAT) - - call maxmin(zg,ix*jx,1,1,1,'regional terrain') - IFLAG=0 -cnew DO J=1,JX -cnew DO I=1,IX -cnew IF(ZG(I,J).GT.200.)THEN -cnew IFLAG=1 -c write(6,*)'Max Terrain Height > 200 m' -cnew GO TO 443 -cnew END IF -cnew END DO -cnew END DO -cnew 443 CONTINUE -C - -C.. READ U, V at ~850 mb - -! K850=3+KMAX+(KMAX/4)*4+1 - K8501=1 - DIST2=ABS(SL(1)-0.85) - DO K=1,KMAX - DIST1=ABS(SL(K)-0.85) - IF(DIST1.LT.DIST2)THEN - K8501=K - DIST2=DIST1 - END IF - END DO - -! Be consistent with 2001 operational model for KMAX=42 -! set K8501=K8501+1 - IF(KMAX.EQ.42) K8501=K8501+1 - - K850=3+KMAX+4*(K8501-1)+1 - - IF(K8501.LT.1.OR.K8501.GT.KMAX)THEN - write(6,*)'K8501 is out of bound' - STOP - END IF - - write(6,*)'QLIUQLIU test',K850 - - NRED1 = NRED1 + K850 - DO J=1,JX - DO I=1,IX - U(I,J)=HDAT(I,J,K850+2,KST) - V(I,J)=HDAT(I,J,K850+3,KST) - END DO - END DO - -! call maxmin(U(1,1),IX*JX,1,1,1,'U(I,J)') -! call maxmin(V(1,1),IX*JX,1,1,1,'V(I,J)') -C -c qliu -c get Hurricane Center -c READ(12,123)SLON,SLAT,CLON_NHC,CLAT_NHC -c123 FORMAT(1X,4F10.2) - SLON = SLON_N(KST) - SLAT = SLAT_N(KST) - CLON_NHC = CLON_N(KST) - CLAT_NHC = CLAT_N(KST) - - RR1=1.E20 - DO J=1,JMAX - DO I=1,IMAX - A=GLON(I,J)-CLON_NHC - B=GLAT(I,J)-CLAT_NHC -! A=GLON(I,J)-CLON_NEW -! B=GLAT(I,J)-CLAT_NEW - RR2=A*A+B*B - IF(RR1.GT.RR2)THEN - RR1=RR2 - I30C=I - J30C=J - END IF - END DO - END DO - - NX30=((30./DLN)/2)*2+1 - NY30=((30./(GLAT(I30C,J30C-1)-GLAT(I30C,J30C)))/2)*2+1 - - print*,'I30C,J30C,NX30,NY30=',I30C,J30C,NX30,NY30 - print*,'CLON_NEW,CLAT_NEW,CLON_NHC,CLAT_NHC=', - & CLON_NEW,CLAT_NEW,CLON_NHC,CLAT_NHC - - I30S=I30C-(NX30-1)/2 - J30S=J30C-(NY30-1)/2 - I30E=I30S+NX30-1 - J30E=J30S+NY30-1 - - print*,'I30S,J30S,I30E,J30E=',I30S,J30S,I30E,J30E - - ALLOCATE ( HDATA30(NX30,NY30,MTV) ) - ALLOCATE ( PSL30(NX30,NY30),PS30(NX30,NY30) ) - ALLOCATE ( PDAT30(NX30,NY30,MTV3),PDAT301(NX30,NY30,MTV3) ) - ALLOCATE ( HSIG30(NX30,NY30,KMAX),HP30(NX30,NY30,2*KMAX+1) ) - ALLOCATE ( GLON30(NX30,NY30),GLAT30(NX30,NY30) ) - - DO J=J30S,J30E - JJ1=J-J30S+1 - DO I=I30S,I30E - II1=I-I30S+1 - PSL30(II1,JJ1)=PSLB(I,J) - PS30(II1,JJ1)=HDATA(I,J,2) - GLON30(II1,JJ1)=GLON(I,J) - GLAT30(II1,JJ1)=GLAT(I,J) - DO K=1,MTV - HDATA30(II1,JJ1,K)=HDATA(I,J,K) - END DO - END DO - END DO - - print*,'before CALL SIG2P30' -! print*,'test9997',PSL30(185,78) - - CALL SIG2P30(NX30,NY30,KMAX,MTV,MTV3,HDATA30(1,1,1), - & PDAT30(1,1,1),PSL30,PSC_MX1,HSIG30,HP30, - & KST,nvcd,idvc,idsl,vcrd) - - print*,'after CALL SIG2P30' -! print*,'test9998',PSL30(185,78) - - PDAT301=PDAT30 - - Z_MAX1=0. - DO J=1,NY30 - DO I=1,NX30 - if(PDAT30(I,J,1).gt.Z_MAX1)then - I_z1=I - J_z1=J - Z_MAX1=PDAT30(I,J,1) - end if - END DO - END DO - -! print*,'I,J,z_max1=',I_z1,J_z1,Z_MAX1 -! print*,'ql test333,PDAT301,PDAT30,1=',PDAT301(1,1,1),PDAT30(1,1,1) -! print*,'ql test333,PDAT301,PDAT30,2=',PDAT301(1,1,2),PDAT30(1,1,2) -! print*,'ql test333,PDAT301,PDAT30,3=',PDAT301(1,1,3),PDAT30(1,1,3) - -! DO K=4,MTV3 -! print*,'ql test333,PDAT301,PDAT30,k=',k,PDAT301(1,1,k), -! & PDAT30(1,1,k) -! END DO - CLON = SLON+20. - CLAT = SLAT+20. -c write(6,*)'CLON, CLAT, SLON, SLAT=',CLON, CLAT, SLON, SLAT -c write(6,*)'CLON_NHC,CLAT_NHC=',CLON_NHC,CLAT_NHC -c fact=cos(CLAT*rad) - fact=1.0 - do j=1,jx - do i=1,ix -! East-West wind in new coordinate (phi,theta) -! this conversion only affects Hurrican Center determination and R0 - U(I,J)=U(I,J)/fact - end do - end do -C.. DO ZONAL FILTER -C -!$omp parallel do -!$omp& private(I,J,N,XTU,XTV) - CYC_100: DO J=1,JX !DO 100 J=1,JX - DO N=1,NF - XTU(1,N) = U(1,J) - XTU(IX,N) = U(IX,J) - XTV(1,N) = V(1,J) - XTV(IX,N) = V(IX,J) - ENDDO -C - DO I=2,IX-1 - XTU(I,1) = U(I,J)+FK(1)*(U(I-1,J)+U(I+1,J)-2.*U(I,J)) - XTV(I,1) = V(I,J)+FK(1)*(V(I-1,J)+V(I+1,J)-2.*V(I,J)) - ENDDO -C - DO N=2,NF - DO I=2,IX-1 - XTU(I,N)=XTU(I,N-1)+FK(N)*(XTU(I-1,N-1)+XTU(I+1,N-1)-2. - 1 *XTU(I,N-1)) - XTV(I,N)=XTV(I,N-1)+FK(N)*(XTV(I-1,N-1)+XTV(I+1,N-1)-2. - 1 *XTV(I,N-1)) - ENDDO - ENDDO -C - DO I=1,IX - US(I,J) = XTU(I,NF) - VS(I,J) = XTV(I,NF) - ENDDO -C - ENDDO CYC_100 -!100 CONTINUE -C -C.. DO MERIDIONAL FILTER -C -!$omp parallel do -!$omp& private(I,J,N,YTU,YTV) - CYC_200: DO I=1,IX ! DO 200 I=1,IX -C - DO N=1,NF - YTU(1,N) = US(I,1) - YTU(JX,N) = US(I,JX) - YTV(1,N) = VS(I,1) - YTV(JX,N) = VS(I,JX) - ENDDO -C - DO J = 2 , JX-1 - YTU(J,1) = US(I,J) + FK(1)*(US(I,J-1) + US(I,J+1) - * -2.*US(I,J)) - YTV(J,1) = VS(I,J) + FK(1)*(VS(I,J-1) + VS(I,J+1) - * -2.*VS(I,J)) - ENDDO -CC - DO N = 2 , NF - DO J = 2 , JX-1 - YTU(J,N) = YTU(J,N-1) + FK(N)*(YTU(J-1,N-1) + - * YTU(J+1,N-1) - 2.*YTU(J,N-1)) - YTV(J,N) = YTV(J,N-1) + FK(N)*(YTV(J-1,N-1) + - * YTV(J+1,N-1) - 2.*YTV(J,N-1)) - ENDDO - ENDDO -C - DO J = 1 , JX - US(I,J) = YTU(J,NF) - VS(I,J) = YTV(J,NF) - ENDDO - ENDDO CYC_200 -!200 CONTINUE -C -C.. GET THE DISTURBANCE FIELD -C - DO I=1,IX - DO J=1,JX - UD(I,J) = U(I,J) - US(I,J) - VD(I,J) = V(I,J) - VS(I,J) - ENDDO - ENDDO -c WRITE(39) ((U(I,J),I=1,IX),J=Jx,1,-1) -c WRITE(39) ((V(I,J),I=1,IX),J=Jx,1,-1) -c WRITE(39) ((US(I,J),I=1,IX),J=Jx,1,-1) -c WRITE(39) ((VS(I,J),I=1,IX),J=Jx,1,-1) -c WRITE(39) ((UD(I,J),I=1,IX),J=Jx,1,-1) -c WRITE(39) ((VD(I,J),I=1,IX),J=Jx,1,-1) -C -C.. FIND NEW VORTEX CENTER -C - DO I=1,IX - ALON(I)=SLON+(I-1) - END DO - DO J=1,JX - ALAT(J)=SLAT+(J-1) - END DO - -c CALL FIND_NEWCT1(UD,VD) - CALL FIND_NEWCT(UD,VD) - - ICHEK=0 - CLON_TIM=0. - CLAT_TIM=0. - DO I=1,K1STM - IF(STMNAME(I).EQ.ST_NAME(KST))THEN - CLON_TIM=STMCX(I) - CLAT_TIM=STMCY(I) - ICHEK=1 - GO TO 446 - END IF - END DO - 446 CONTINUE - IF((ICHEK.EQ.1).AND.(ABS(CLON_TIM).LT.359.5))THEN - CLON_NEW=CLON_TIM - CLAT_NEW=CLAT_TIM - ELSE - write(6,*)'GFDL CENTER= ',ITIM,'h ',CLON_NEW,CLAT_NEW - CLON_NEW=CLON_NHC - CLAT_NEW=CLAT_NHC - ENDIF - -C -C.. CALCULATE TANGENTIAL WIND AROUND CIRCLE -C 24 DIRECTION, RADIALLY 0.1DEG INTERVAL -C - CALL TWIND(UD,VD,TW) -C -C.. CALCULATE STARTING POINT AT EACH DIRECTION -C - CALL STRT_PT(RS,TW,RFAVG) -C -C.. DETERMINE FILTER DOMAIN D0 (=1.25*Rf) -C - CALL FILTER(RS,TW,RF,RFAVG,STRPSF,KST) - - AMDX=CLON_NHC-CLON_NEW - AMDY=CLAT_NHC-CLAT_NEW - MDX=IFIX((CLON_NHC-CLON_NEW)/DLN) - - IF(ITIM.EQ.6)THEN - WRITE(62,65)TCVT(KST)(1:32), - & CLON_NHC,CLAT_NHC,CLON_NEW, - & CLAT_NEW,CLON_TIM,CLAT_TIM,AMDX,AMDY, - & SQRT(AMDX*AMDX+AMDY*AMDY) - 65 FORMAT(/'STORM NAME: ',A32, - & /' OBSERVED CENTER POSITION: ',2F10.2, - & /' MODEL CENTER POSITION : ',2F10.2, - & /' MODEL CENTER POSITION (TIM): ',2F10.2, - & /' RELOCATION DISTANCE (DEGREE): ',3F10.2) - DO I=1,K1STM - IF(STMNAME(I).EQ.ST_NAME(KST))THEN - IFWRT=0 - DO J=1,NTIM - IF(ISTMCY1(J,I).EQ.0.and.ISTMCX1(J,I).EQ.0)THEN - IFWRT=1 - END IF - END DO - IF(IFWRT.EQ.1)THEN - WRITE(62,76)TCVT(KST)(1:32) - ELSE - WRITE(62,77)TCVT(KST)(1:32) - END IF - 76 FORMAT(/' STORM: ',A32,10x,' is bogused') - 77 FORMAT(/' STORM: ',A32,10x) - WRITE(62,79) - & (ISTMCY1(J,I),ISTMCX1(J,I),J=1,NTIM),STMNAME(I) - 79 FORMAT(/' TRACKER OUTPUT: ',i4,5x,A3) - END IF - END DO - END IF - -c test by qliu -c MDX=MDX+50 -c AMDX=AMDX+50*DLN - - DO J=1,JMAX-1 - IF(CLAT_NHC.LT.GLAT(1,J).and. - & CLAT_NHC.GE.GLAT(1,J+1))THEN - MNHC=J - IF(CLAT_NHC.LT.0.5*(GLAT(1,J)+GLAT(1,J+1)))MNHC=J+1 - GO TO 566 - END IF - END DO - 566 CONTINUE - DO J=1,JMAX-1 - IF(CLAT_NEW.LT.GLAT(1,J).and. - & CLAT_NEW.GE.GLAT(1,J+1))THEN - MNEW=J - IF(CLAT_NEW.LT.0.5*(GLAT(1,J)+GLAT(1,J+1)))MNEW=J+1 - GO TO 577 - END IF - END DO - 577 CONTINUE - MDY=MNHC-MNEW - write(6,*)'MDX,MDY,MNHC,MNEW=',MDX,MDY,MNHC,MNEW - write(6,*)'AMDX,AMDY=',AMDX,AMDY - write(6,*)'CLON_NHC,CLAT_NHC=',CLON_NHC,CLAT_NHC - write(6,*)'CLON_NEW,CLAT_NEW=',CLON_NEW,CLAT_NEW - RDIST2=AMDX*AMDX+AMDY*AMDY - IF(RDIST2.LE.0.02)THEN - write(6,*)' ' - write(6,*)' FORECAST TIME= ',ITIM,'h ', - 1 ', STORM NAME= ',ST_NAME(KST) - write(6,*)' CENTER DISTANCE is less than 15 km', - 1 ', storm is not relocated' - AMDX=0. - AMDY=0. - MDX=0 - MDY=0 -c IF(KST.NE.KSTM)THEN -c DO I=1,113 -c READ(IUT1) DATG -c WRITE(IUT2) DATG -c END DO -c GO TO 788 -c END IF - ELSE - write(6,*)' ' - write(6,*)' FORECAST TIME= ',ITIM,'h', - 1 ' STORM NAME= ',ST_NAME(KST) - write(6,*)' Center Distance = ',SQRT(RDIST2),' Deg.', - 3 ', relocation starts ...... ' - - END IF -c - IB=0 - IB5=0 - ING5=0 - JNG5=0 - - IB6=0 - ING6=0 - JNG6=0 - - RRIJ=0. -C - DO J=1,JMAX - DO I=1,IMAX - A = GLON(I,J) - CLON_NEW - B = GLAT(I,J) - CLAT_NEW - R = SQRT(A**2. + B**2.) - IF(R.EQ.0.) GO TO 444 - TH = ACOS(A/R) / RAD - IF(B.LT.0.) TH = 360-TH -C - IF(TH.LE.7.5 .OR. TH.GT.352.5 ) IC = 1 - DO M2=2,24 - IF((TH.GT.(15.*(M2-1)-7.5)).and. - & (TH.LE.(15.*M2-7.5)))IC=M2 - END DO -C - IF(R.LT.R0(IC)) THEN - IB = IB+1 - ING(IB) = I - JNG(IB) = J - ENDIF -C - IF((R.LT.R0(IC)).and.R.GT.(R0(IC)-0.6))THEN - IB5=IB5+1 - ING5(IB5)=I - JNG5(IB5)=J - WT2=min(1.0,(R0(IC)-R)/0.6) - RRIJ(IB5)=WT2*WT2*(3.-2.*WT2) - END IF - - IF((R.LT.R0(IC)).and.R.GT.(R0(IC)-0.5))THEN - IB6=IB6+1 - ING6(IB6)=I - JNG6(IB6)=J - END IF - - - - GO TO 22 -C -444 IB = IB+1 - ING(IB) = I - JNG(IB) = J -22 CONTINUE - ENDDO - ENDDO -C - CALL landcmsk(IMAX,JMAX,GLON,GLAT,ZDATG,IFLAG,lsflag,kst) - -c temp relocation turned on -c IFLAG = 0 - -c Check if the syndata need to be called - - IF(ITIM.EQ.3)THEN - DO I=1,K1STM - IF(STMNAME(I).EQ.ST_NAME(KST))THEN - IFWRT=0 - DO J=1,NTIM - IF(ISTMCY1(J,I).EQ.0.and.ISTMCX1(J,I).EQ.0)THEN - IFWRT=1 - END IF - END DO - IF(IFWRT.EQ.1)THEN - WRITE(65,101) TCVT(KST) - END IF - 101 FORMAT(A95) - END IF - END DO - END IF - - - write(6,*)'GAUSSIAN GRID # WITHIN R0 ',IB -! DO I = 1,IB -! write(6,*)'GAUSSIAN GRID WITHIN R0, LAT,LON ',ING(I), -! 1 JNG(I),GLAT(ING(I),JNG(I)),GLON(ING(I),JNG(I)) -! write(6,*)'GAUSSIAN GRID WITHIN R0 ',ING(I),JNG(I) -! ENDDO - -C.. SETTING VALUE for xvect, yvect, a(,), capd2 - - call rodist - - call amatrix -c -c REWIND IUT - - KMP=2*KMAX+1 - KDIV1=3+KMP - KQ1=KDIV1+4*KMP - - NRED1 = 0 - - IG = 0 - DO 777 IV = 1,MTV3 - - IREM = -22 -C - CALL READ1(IUT,NRED1,MTV3,SKIP,PDAT) -C - DO J=1,JX - DO I=1,IX - ENV1(I,J,IV) = SKIP(I,J) - ENDDO - ENDDO - -! write(6,*)'pressure data new K = ',IV -! call maxmin(ENV1(1,1,IV),IX*JX,1,1,1,'ENV1(I,J,K)') - - IF(IV.GT.KDIV1.AND.IV.LE.KQ1)IREM=MOD(IV-KDIV1,4) - IF((IV.GE.3.AND.IV.LE.KDIV1).OR.(IV.GT.KQ1).OR. - 1 (IREM.EQ.1.OR.IREM.EQ.2)) THEN - IG = IG+1 -! write(6,*)'ORIGINAL VARIABLE # IS ',IV -! write(6,*)'VARIABLE # IS ',IG - -c added by Qingfu Liu -c obtain the disturbance field - - DO J=1,JX - DO I=1,IX - U(I,J)=SKIP(I,J) - END DO - END DO -c -c First smooth in east-west direction -c -!$omp parallel do -!$omp& private(I,J,N,XTU) - CYC_107: DO J=1,JX ! DO 107 J=1,JX - DO N=1,NF - XTU(1,N) = U(1,J) - XTU(IX,N) = U(IX,J) - ENDDO -C - DO I=2,IX-1 - XTU(I,1) = U(I,J)+FK(1)*(U(I-1,J)+U(I+1,J)-2.*U(I,J)) - ENDDO -C - DO N=2,NF - DO I=2,IX-1 - XTU(I,N)=XTU(I,N-1)+FK(N)*(XTU(I-1,N-1)+XTU(I+1,N-1)-2. - 1 *XTU(I,N-1)) - ENDDO - ENDDO -C - DO I=1,IX - US(I,J) = XTU(I,NF) - ENDDO -C - ENDDO CYC_107 -! 107 CONTINUE -C -C.. DO MERIDIONAL FILTER -C -!$omp parallel do -!$omp& private(I,J,N,YTU) - CYC_207: DO I=1,IX ! DO 207 I=1,IX -C - DO N=1,NF - YTU(1,N) = US(I,1) - YTU(JX,N) = US(I,JX) - ENDDO -C - DO J = 2 , JX-1 - YTU(J,1) = US(I,J) + FK(1)*(US(I,J-1) + US(I,J+1) - * -2.*US(I,J)) - ENDDO -CC - DO N = 2 , NF - DO J = 2 , JX-1 - YTU(J,N) = YTU(J,N-1) + FK(N)*(YTU(J-1,N-1) + - * YTU(J+1,N-1) - 2.*YTU(J,N-1)) - ENDDO - ENDDO -C - DO J = 1 , JX - US(I,J) = YTU(J,NF) - ENDDO - ENDDO CYC_207 -! 207 CONTINUE -C -C.. GET THE DISTURBANCE FIELD -C - DO I=1,IX - DO J=1,JX - DKY(I,J) = U(I,J) - US(I,J) - ENDDO - ENDDO - - DKM=DKY - CALL SEPAR(DKY,DKM) - - DO J=1,JX - DO I=1,IX - SKIP(I,J)=DKM(I,J) -c SKIP(I,J)=U(I,J) - DKY(I,J) = DKM(I,J) + US(I,J) -c DKY(I,J) = U(I,J) - ENDDO - ENDDO - - - DO J=1,JX - DO I=1,IX - ENV1(I,J,IV) = DKY(I,J) -! ENV1(I,J,IV) = DKY(I,J)-PDAT(I,J,IV) - ENDDO - ENDDO - - ENDIF - - 777 CONTINUE - -! ENV=0. - -! CALL P2SIG(KMAX,MTV2,MTV3,ENV(1,1,1),ENV1(1,1,1), -! & PDAT(1,1,1),HDAT(1,1,1,KST),PSC_MX1,HSIG,HP,KST, -! & nvcd,idvc,idsl,vcrd) - -cnew K=1,2 and the U,V field was doubled here, but never used later -! DO K=1,MTV2 -! DO J=1,JX -! DO I=1,IX -! ENV(I,J,K)=ENV(I,J,K)+HDAT(I,J,K,KST) -! END DO -! END DO -! write(6,*)'test new K,KST = ',K,KST -! call maxmin(ENV(1,1,K),IX*JX,1,1,1,'ENV(I,J,K)') -! call maxmin(HDAT(1,1,K,KST),IX*JX,1,1,1,'HDAT(I,J,K,KST)') -! END DO -cnew - - KDIV2=3+KMAX - KQ2=KDIV2+4*KMAX - - IG = 0 - DO 781 IV = 1,MTV3 - - IREM = -22 -C - IF(IV.GT.KDIV1.AND.IV.LE.KQ1)IREM=MOD(IV-KDIV1,4) - IF((IV.GE.3.AND.IV.LE.KDIV1).OR.(IV.GT.KQ1).OR. - 1 (IREM.EQ.1.OR.IREM.EQ.2)) THEN -! IF(IV.GT.KDIV2.AND.IV.LE.KQ2)IREM=MOD(IV-KDIV2,4) -! IF((IV.GE.3.AND.IV.LE.KDIV2).OR.(IV.GT.KQ2).OR. -! 1 (IREM.EQ.1.OR.IREM.EQ.2)) THEN -!! IG = IG+1 - IG = IV - - DO J=1,JX - DO I=1,IX - DKY(I,J) = ENV1(I,J,IV) - ENDDO - ENDDO - -! print*,'IV,KST=',IV,KST - -! if(IV.LT.5)then -! print*,'ql test444,PDAT301,ENV1,IV=',IV, -! $ PDAT301(1,1,IV),DKY(1,1) !,PSL30(185,78),PS30(185,78) -! end if -! call maxmin(PDAT301(1,1,IV),IX*JX,1,1,1,'PDAT301(I,J,IV)') - - CALL GMOVE3(KST,KMAX,IMAX,JMAX,NX30,NY30,MTV3,I30S,J30S,T00, - 1 PDAT301,DKY,IG,IV,IFLAG,PSLB,ZDATG,GLON30,GLAT30,PSL30,PS30, - 2 idvm,inptyp,NSG5,IB5,IB6,ING5,JNG5,ING6,JNG6,RRIJ) - -c CALL GMOVE(KST,MWAVE,MAXWV2,MTV,MTV1,HDATA,SKIP2,DKY, -c 1 IG,IFLAG,PSLB) - -! if(IV.LT.5)then -! print*,'ql test444,PDAT301,PS30,IV=',IV, -! $ PDAT301(1,1,IV) !,PS30(185,78),PSL30(185,78),PSLB(1,1) -! end if -! call maxmin(PDAT301(1,1,IV),IX*JX,1,1,1,'PDAT301(I,J,IV)') - - ENDIF - - 781 CONTINUE - - DO J=1,NY30 - DO I=1,NX30 - PDAT301(i,j,2)=PS30(i,j) - PDAT30(i,j,2)=PS30(i,j) - P_TEMP1=PDAT301(i,j,3)-PDAT30(i,j,3) - PDAT30(i,j,3)=PDAT301(i,j,3) - PDAT301(i,j,3)=P_TEMP1 - END DO - END DO - print*,'ql test111,PDAT301,PDAT30,1=',PDAT301(1,1,1),PDAT30(1,1,1) - print*,'ql test111,PDAT301,PDAT30,2=',PDAT301(1,1,2),PDAT30(1,1,2) - print*,'ql test111,PDAT301,PDAT30,3=',PDAT301(1,1,3),PDAT30(1,1,3) - DO K=4,MTV3 - DO J=1,NY30 - DO I=1,NX30 - PDAT301(i,j,k)=PDAT301(i,j,k)-PDAT30(i,j,k) - END DO - END DO -! print*,'ql test111,PDAT301,PDAT30,k=',k,PDAT301(1,1,k), -! & PDAT30(1,1,k) - END DO - -! print*,'call before P2SIG30' - - CALL P2SIG30(NX30,NY30,KMAX,MTV,MTV3, - & PDAT301(1,1,1),PDAT30(1,1,1),HDATA30(1,1,1),PSL30, - & PSC_MX1,HSIG30,HP30,KST,nvcd,idvc,idsl,vcrd) - -! print*,'call after P2SIG30' - - DO K=1,MTV -! if(k.lt.4)print*,'ql test222,HDATA,HDATA30,k=',k, -! & HDATA(I30S,J30S,k),HDATA30(1,1,k) - DO J=J30S,J30E - JJ1=J-J30S+1 - DO I=I30S,I30E - II1=I-I30S+1 - HDATA(I,J,K)=HDATA30(II1,JJ1,K) - END DO - END DO - END DO - - DO J=1,JMAX - DO I=1,IMAX - PS3(I,J)=HDATA(I,J,2) - END DO - END DO - DO J=J30S,J30E - JJ1=J-J30S+1 - DO I=I30S,I30E - II1=I-I30S+1 - PS3(I,J)=PS30(II1,JJ1) - PSLB(I,J)=PSL30(II1,JJ1) - END DO - END DO - -! print*,'ql test888,HDATA,PS30,PS3,,2=',HDATA(I30S,J30S,2), -! & PS30(1,1),PS3(1,1) - - deallocate (HDATA30,PSL30,PS30,PDAT30,PDAT301,HSIG30,HP30) - deallocate (GLON30,GLAT30) - - 788 CONTINUE - -C - RDIST2 = AMDX*AMDX + AMDY*AMDY - IF(RDIST2.LE.0.02)THEN - write(6,*)'TIME= ',ITIM,'h, Model Center is not relocated' - ELSE - write(6,*)'TIME= ',ITIM,'h, vortex relocation is completed' - END IF - - RETURN - END -C - SUBROUTINE FIND_NEWCT(UD,VD) - PARAMETER (IR=15,IT=24,IX=41,JX=41,ID=7,JD=7) - DIMENSION TNMX(ID,JD),UD(IX,JX),VD(IX,JX) - DIMENSION WTM(IR),R0(IT) - COMMON /POSIT/CLON_NEW,CLAT_NEW,SLON,SLAT,CLON,CLAT,RAD - COMMON /vect/R0,XVECT(IT),YVECT(IT) -c COMMON /CT/SLON,SLAT,CLON,CLAT,RAD -c COMMON /GA/CLON_NEW,CLAT_NEW,R0 -C - PI=ASIN(1.)*2. - RAD=PI/180. -C - XLAT = CLAT-3. - XLON = CLON-3. -c write(6,*)'STARTING LAT, LON AT FIND NEW CENTER ',XLAT,XLON -C - DO I=1,ID - DO J=1,JD - TNMX(I,J) = 0. - BLON = XLON + (I-1) - BLAT = XLAT + (J-1) -C -C.. CALCULATE TANGENTIAL WIND EVERY 1 deg INTERVAL -C.. 7*7 deg AROUND 1ST 1ST GUESS VORTEX CENTER -C - DO 10 JL=1,IR - WTS= 0. - DO 20 IL=1,IT - DR = JL - DD = (IL-1)*15*RAD - DLON = DR*COS(DD) - DLAT = DR*SIN(DD) - TLON = BLON + DLON - TLAT = BLAT + DLAT -C.. INTERPOLATION U, V AT TLON,TLAT AND CLACULATE TANGENTIAL WIND - IDX = IFIX(TLON) - SLON + 1 - IDY = IFIX(TLAT) - SLAT + 1 - DXX = TLON - IFIX(TLON) - DYY = TLAT - IFIX(TLAT) -C - X1 = UD(IDX ,IDY+1)*DYY + UD(IDX ,IDY)*(1-DYY) - X2 = UD(IDX+1,IDY+1)*DYY + UD(IDX+1,IDY)*(1-DYY) - Y1 = UD(IDX+1,IDY )*DXX + UD(IDX,IDY )*(1-DXX) - Y2 = UD(IDX+1,IDY+1)*DXX + UD(IDX,IDY+1)*(1-DXX) - UT = (X1*(1-DXX)+X2*DXX + Y1*(1-DYY)+Y2*DYY)/2. - IF(IL.EQ.0.OR.IL.EQ.13) UT = Y1 - IF(IL.EQ.7.OR.IL.EQ.19) UT = X1 -C - X1 = VD(IDX ,IDY+1)*DYY + VD(IDX ,IDY)*(1-DYY) - X2 = VD(IDX+1,IDY+1)*DYY + VD(IDX+1,IDY)*(1-DYY) - Y1 = VD(IDX+1,IDY )*DXX + VD(IDX,IDY )*(1-DXX) - Y2 = VD(IDX+1,IDY+1)*DXX + VD(IDX,IDY+1)*(1-DXX) - VT = (X1*(1-DXX)+X2*DXX + Y1*(1-DYY)+Y2*DYY)/2. - IF(IL.EQ.0.OR.IL.EQ.13) VT = Y1 - IF(IL.EQ.7.OR.IL.EQ.19) VT = X1 -C.. TANGENTIAL WIND - WT = -SIN(DD)*UT + COS(DD)*VT - WTS = WTS+WT -20 CONTINUE - WTM(JL) = WTS/24. -10 CONTINUE -C -C Southern Hemisphere - IF(CLAT_NEW.LT.0)THEN - DO JL=1,IR - WTM(JL)=-WTM(JL) - END DO - END IF -C EnD SH - - TX = -10000000. - DO KL = 1,IR - IF(WTM(KL).GE.TX) THEN - TX = WTM(KL) - ENDIF - ENDDO -C - TNMX(I,J) = TX - ENDDO - ENDDO - - -C.. FIND NEW CENTER - TTX = -1000000. - DO I=1,ID - DO J=1,JD - IF(TNMX(I,J).GE.TTX) THEN - TTX = TNMX(I,J) - NIC = I - NJC = J - ENDIF - ENDDO - ENDDO -C - CLAT_NEW = XLAT + (NJC-1) - CLON_NEW = XLON + (NIC-1) -C - write(6,*)'NEW CENTER, I, J IS ',NIC,NJC - write(6,*)'NEW CENTER, LAT,LON IS ',CLAT_NEW,CLON_NEW - write(6,*)'MAX TAN. WIND AT NEW CENTER IS ',TTX -C - RETURN - END -C - SUBROUTINE TWIND(UD,VD,TW) -C - PARAMETER (IX=41,JX=41,NF=11,IT=24,IR=120) - DIMENSION UD(IX,JX),VD(IX,JX),TW(IT,IR),R0(IT) - COMMON /POSIT/CLON_NEW,CLAT_NEW,SLON,SLAT,CLON,CLAT,RAD - COMMON /vect/R0,XVECT(IT),YVECT(IT) -c COMMON /CT/SLON,SLAT,CLON,CLAT,RAD -c COMMON /GA/CLON_NEW,CLAT_NEW,R0 -C -!$omp parallel do -!$omp& private(I,J,DR,DD,DLON,DLAT,TLON,TLAT,IDX, -!$omp& IDY,DXX,DYY,X1,X2,Y1,Y2,UT,VT) - DO J=1,IR - DO I=1,IT -C.. DETERMINE LAT, LON AREOUND CIRCLE - DR = 0.1*J - DD = (I-1)*15.*RAD - DLON = DR*COS(DD) - DLAT = DR*SIN(DD) - TLON = CLON_NEW + DLON - TLAT = CLAT_NEW + DLAT -C.. INTERPOLATION U, V AT TLON,TLAT AND CLACULATE TANGENTIAL WIND - IDX = IFIX(TLON) - SLON + 1 - IDY = IFIX(TLAT) - SLAT + 1 - DXX = TLON - IFIX(TLON) - DYY = TLAT - IFIX(TLAT) -C - X1 = UD(IDX ,IDY+1)*DYY + UD(IDX ,IDY)*(1-DYY) - X2 = UD(IDX+1,IDY+1)*DYY + UD(IDX+1,IDY)*(1-DYY) - Y1 = UD(IDX+1,IDY )*DXX + UD(IDX,IDY )*(1-DXX) - Y2 = UD(IDX+1,IDY+1)*DXX + UD(IDX,IDY+1)*(1-DXX) - UT = (X1*(1-DXX)+X2*DXX + Y1*(1-DYY)+Y2*DYY)/2. - IF(I.EQ.0.OR.I.EQ.13) UT = Y1 - IF(I.EQ.7.OR.I.EQ.19) UT = X1 -C - X1 = VD(IDX ,IDY+1)*DYY + VD(IDX ,IDY)*(1-DYY) - X2 = VD(IDX+1,IDY+1)*DYY + VD(IDX+1,IDY)*(1-DYY) - Y1 = VD(IDX+1,IDY )*DXX + VD(IDX,IDY )*(1-DXX) - Y2 = VD(IDX+1,IDY+1)*DXX + VD(IDX,IDY+1)*(1-DXX) - VT = (X1*(1-DXX)+X2*DXX + Y1*(1-DYY)+Y2*DYY)/2. - IF(I.EQ.0.OR.I.EQ.13) VT = Y1 - IF(I.EQ.7.OR.I.EQ.19) VT = X1 -C.. TANGENTIAL WIND - TW(I,J) = -SIN(DD)*UT + COS(DD)*VT -C - ENDDO - ENDDO -C SH - IF(CLAT_NEW.LT.0)THEN - DO J=1,IR - DO I=1,IT - TW(I,J)=-TW(I,J) - ENDDO - ENDDO - END IF -C End SH -C - RETURN - END -C - SUBROUTINE STRT_PT(RMX,TW,RFAVG) -C - PARAMETER (IX=41,JX=41,NF=11,IT=24,IR=120) - DIMENSION TW(IT,IR),TWM(IR),TMXX(IT),RMX(IT) - REAL JMX -C - DO I=1,IR - TWM(I) = 0. - ENDDO -C -C.. CALCULATE MEAN TANGENTIAL WIND -C - DO 10 J=1,IR - TM=0. - DO 20 I=1,IT - TM = TM + TW(I,J) -20 CONTINUE - TWM(J) = TM/24. -c write(6,*)'MEAN TANGENTIAL WIND ',J,TWM(J) -10 CONTINUE -C -C.. FIND MAXIMUM TANGENTIAL WIND RADIUS -C - TMX=-100000000000. - DO J=1,IR - IF(TWM(J).GE.TMX) THEN - TMX=TWM(J) - JMX = J*0.1 - ENDIF - ENDDO -C - write(6,*)'MAXIMUM TANGENTIAL WIND RADIUS ',JMX - JJ=IFIX(JMX*10.) - write(6,*)'MAXIMUM TANGENTIAL WIND SPEED ',TWM(JJ) -C - JXX = 15 * JMX -c write(6,*)'JXX, 15*JMX is ',JXX -C - ICK = 1 - CNT = 0.000004 -c write(6,*)'CNT ',CNT -C - DO 30 K=JXX,120 - IF(TWM(K).GE.6..OR.TWM(K).LT.3.) GO TO 30 - DXX = 10000. - DV = TWM(K) - TWM(min(K+1,ir)) - DVDR = DV/DXX - IF(DVDR.LT.CNT) ICK = ICK+1 - IF(ICK.EQ.3) THEN - RF=K*0.1 - GO TO 40 - ENDIF -30 CONTINUE -C -40 CONTINUE - IF(ICK.NE.3) THEN - DO IK=JXX,120 - IF(TWM(IK).LE.3) THEN - RF = IK*0.1 - ICK=3 - GO TO 50 - ENDIF - ENDDO - ENDIF -C -50 CONTINUE - IF(ICK.NE.3) RF = 12. -C - RFAVG = RF -c -C.. CALCULATE Ra, Rb.. REF. KURIHARA ET AL. 1995 -C - RA = IFIX((0.5 * JMX)*10.)/10. - RB = IFIX((0.75 * JMX + 0.25 * RF)*10.)/10. - IRA = IFIX(RA*10.+0.5) - IRB = IFIX(RB*10.+0.5) -C -c write(6,*)'Ra, Rb, Rf ', RA,RB,RF -C -C.. DETERMINE STARTING POINT FOR EVERY 24 DIRECTION -C - DO I=1,IT - TMXX(I) = -100000000. - DO J=1,IR - IF(TW(I,J).GE.TMXX(I)) THEN - TMXX(I) = TW(I,J) - RMX(I) = J*0.1*1.1 - ENDIF - ENDDO - ENDDO -C -c DO I=1,IT -c write(6,*)'I, MX TANGENTIAL WIND RADIUS ',I,RMX(I),TMXX(I) -c ENDDO -C - DO I=1,IT - IF (RMX(I).GT.RB.OR.RMX(I).LT.RA) THEN - TMX = -10000000. - DO KK=IRA,IRB - IF(TW(I,KK).GE.TMX) RM = KK * 0.1 * 1.1 - ENDDO - MR = IFIX(RM*10. + 0.5) - ICL=0 - DO LL = MR,IRB - IF(TW(I,LL).LT.0.) ICL=ICL+1 - ENDDO - IF(ICL.EQ.0) RMX(I) = RM*1.1 - ENDIF - ENDDO -C -c DO I=1,IT -c write(6,*)'I, RST ',I,RMX(I) -c ENDDO -C - RETURN - END -C - SUBROUTINE FILTER(RS,TW,RF,RFAVG,STRPSF,KST) - PARAMETER (IX=41,JX=41,IT=24,IR=120,NST=10) -C - DIMENSION RS(IT),TW(IT,IR),RF(IT),R0(IT),IST(IT) - REAL STRPSF(NST) - COMMON /vect/R0,XVECT(IT),YVECT(IT) -c COMMON /GA/CLON_NEW,CLAT_NEW,R0 -C - ICK = 1 - CNT = 0.000004 -c write(6,*)'CNT ',CNT -C - DO I=1,IT - IST(I) = IFIX(RS(I)*10) -c write(6,*)'STARTING POINT ',I,IST(I) - ENDDO -C - DO 100 I=1,IT - IS = IST(I) -C - DO 30 K=IS,IR - IF(TW(I,K).GE.6..OR.TW(I,K).LT.3.) GO TO 30 - DXX = 10000. - DV = TW(I,K) - TW(I,min(K+1,ir)) - DVDR = DV/DXX - IF(DVDR.LT.CNT) THEN - ICK = ICK+1 - ENDIF - IF(ICK.EQ.3) THEN - RF(I)=K*0.1 + 0.0000001 -c write(6,*)'1st Catagory ',I - GO TO 100 - ENDIF -30 CONTINUE -C -40 CONTINUE - DO IK=IS,IR - IF(TW(I,IK).LE.3) THEN - RF(I) = IK*0.1 + 0.00000001 -c write(6,*)'2nd Catagory ',I - GO TO 100 - ENDIF - ENDDO -C -50 CONTINUE -c write(6,*)'3rd Catagory ',I - RF(I) = 12. -100 CONTINUE -C -c RMAX=0. - DO I=1,IT - R0(I) = 1.25 * RF(I) -!! NEW -! IF(R0(I).LT.2.0)R0(I)=2.0 - IF(R0(I).LT.3.0)R0(I)=3.0 - IF(R0(I).LT.(1.2*STRPSF(KST)))R0(I)=1.2*STRPSF(KST) - IF(R0(I).GT.(1.5*STRPSF(KST)))R0(I)=1.5*STRPSF(KST) - IF(R0(I).GT.11.0)R0(I)=11.0 -c IF(RMAX.LT.R0(I))RMAX=R0(I) - write(6,*)'R0,Rf AT EACH DIRECTION ',I,R0(I),RF(I) - ENDDO -C test for circular domain -c DO I=1,IT -c R0(I)=RMAX -cc R0(I) = RFAVG*1.25 -c write(6,*)'R0,Rf AT EACH DIRECTION ',I,R0(I),RF(I) -c ENDDO -C - RETURN - END -C - SUBROUTINE GMOVE3(KST,KMAX,IMAX,JMAX,IGU,JGU,MTV3,I30S,J30S,T00, - 1 PDAT30,DM1,IS1,IV,IFLAG,PSLB,ZDATG,GLON30,GLAT30,PSL30,PS30, - 2 idvm,inptyp,NSG5,IB5,IB6,ING5,JNG5,ING6,JNG6,RRIJ) - -c SUBROUTINE GMOVE(KST,MWAVE,MAXWV2,MTV,MTV1,HDATA,DM1, -c 1 IS1,IFLAG,PSLB) -c PARAMETER (IX=41,JX=41,IGU=384,JGU=190) - PARAMETER (IX=41,JX=41) - PARAMETER (IT=24,NSG=54000) -C - integer inptyp - integer * 4 idvm - DIMENSION DMM(IX,JX),DATG(IGU,JGU),DDAT(IGU,JGU) - DIMENSION DATS(IGU,JGU) - DIMENSION ZDATG(IMAX,JMAX) - REAL T00(IMAX,JMAX) - DIMENSION DM1(IX,JX),T1(IGU,JGU) - DIMENSION R0(IT),GLAT30(IGU,JGU),GLON30(IGU,JGU),ING(NSG),JNG(NSG) - DIMENSION ING5(NSG5),JNG5(NSG5) - DIMENSION ING6(NSG5),JNG6(NSG5) - DIMENSION RRIJ(NSG5) - DIMENSION ALAT(JX),ALON(IX) - COMMON /POSIT/CLON_NEW,CLAT_NEW,SLON,SLAT,CLON,CLAT,RAD - COMMON /vect/R0,XVECT(IT),YVECT(IT) - COMMON /ST/ALON,ALAT - COMMON /NHC2/MDX,MDY - COMMON /NHC3/AMDX,AMDY - COMMON /CHNL/IUT,KSTM -c COMMON /CT/SLON,SLAT,CLON,CLAT,RAD -c COMMON /GA/CLON_NEW,CLAT_NEW,R0 - COMMON /TR/ING,JNG,IB -c COMMON /TR/ZDATG,GLON,GLAT,ING,JNG,IB - - COMMON /HDAT3/NWRT2,NRED2 - REAL PDAT30(IGU,JGU,MTV3) - REAL PSLB(IMAX,JMAX) - COMMON /CHEN/KUNIT,ITIM - - DIMENSION DATG2(IGU,JGU) - - REAL PSL30(IGU,JGU),PS30(IGU,JGU) - -! COMMON /COEF5/NCNT,NCNT2 -C -C.. SETTING BASIC VARIABLES FOR INTERPOLATING GAUSSIAN GRID -C - NMAX=2*KMAX+1 - - ISE = IS1 - DO I=1,IX - DO J=1,JX - DMM(I,J) = DM1(I,J) - ENDDO - ENDDO - -! print*,'qingfu test new, ISE = ', ISE - -! call maxmin(DMM,ix*jx,1,1,1,'DMM(I,J)') -C -C.. INTERPOLATE TO GAUSSIAN GRID -C -! CALL READ2(IGU,JGU,NRED2,MTV,DATG,HDATA) - DO I=1,IGU - DO J=1,JGU - DATG(I,J)=PDAT30(I,J,IS1) - ENDDO - ENDDO -c - DO I=1,IGU - DO J=1,JGU - DATG2(I,J)=DATG(I,J) - DDAT(I,J)=0. - ENDDO - ENDDO - -! call maxmin(DATG2,IGU*JGU,1,1,1,'DATG2(I,J)') -C - RDIST2=AMDX*AMDX+AMDY*AMDY - IF(RDIST2.GT.0.02)THEN -cc test -!$omp parallel do -!$omp& private(I,IW,JW,IW1,JW1,HLA,HLO,II,JJ,LX,LY,DXX,DYY,X1,X2,Y1,Y2) - CYC_555: DO I = 1,IB - IW = ING(I) - JW = JNG(I) - IW1 = IW-I30S+1 - JW1 = JW-J30S+1 - - IF(IW1*JW1.le.0)print*,'IW,JW,IW1,JW1=',I,IW,JW,IW1,JW1,I30S,J30 - -c DO IW = 1, IGU -c DO JW = 1, JGU - HLA = GLAT30(IW1,JW1) - HLO = GLON30(IW1,JW1) -C - DO II=1,IX-1 - IF(HLO.GT.ALON(II).and.HLO.LE.ALON(II+1))THEN - DO JJ=1,JX-1 - IF(HLA.GT.ALAT(JJ).and.HLA.LE.ALAT(JJ+1))THEN - LX=II - LY=JJ - - DXX = HLO-ALON(LX) - DYY = HLA-ALAT(LY) -C - X1 = DMM(LX ,LY+1)*DYY + DMM(LX ,LY )*(1-DYY) - X2 = DMM(LX+1,LY+1)*DYY + DMM(LX+1,LY )*(1-DYY) - Y1 = DMM(LX+1,LY )*DXX + DMM(LX ,LY )*(1-DXX) - Y2 = DMM(LX+1,LY+1)*DXX + DMM(LX ,LY+1)*(1-DXX) - DATG(IW1,JW1)=(X1*(1-DXX)+X2*DXX + Y1*(1-DYY)+Y2*DYY)/2. - -! IF(ISE.GE.2) DDAT(IW1,JW1)=DATG2(IW1,JW1)-DATG(IW1,JW1) - CYCLE CYC_555 ! GO TO 555 - - END IF - END DO - END IF - END DO -! 555 CONTINUE -c ENDDO -c ENDDO - ENDDO CYC_555 - - if(inptyp.eq.1.and.ISE.GT.(NMAX+3).and.ISE.LE.(5*NMAX+3))then - -! DO I=1,IGU -! DO J=1,JGU -! DATS(I,J)=DATG(I,J) -! ENDDO -! ENDDO -!!$omp parallel do -!!$omp& private(I,IW,JW) -! DO I = 1,IB6 -! IW = ING6(I) -! JW = JNG6(I) -! DATG(IW,JW)=0.2*(DATS(IW-1,JW)+DATS(IW+1,JW) -! & +DATS(IW,JW-1)+DATS(IW,JW+1)+DATS(IW,JW)) -! END DO - - DO I=1,IGU - DO J=1,JGU - DATS(I,J)=DATG(I,J) - ENDDO - ENDDO -!$omp parallel do -!$omp& private(I,IW,JW) - DO I = 1,IB5 - IW = ING5(I)-I30S+1 - JW = JNG5(I)-J30S+1 -! DATG(IW,JW)=DATS(IW,JW) - DATG(IW,JW)=DATS(IW,JW)*RRIJ(I) - & +DATG2(IW,JW)*(1.-RRIJ(I)) - END DO - - end if - -! IF(ISE.GE.2)THEN - IF(ISE.GE.4)THEN - DDAT=0. - DO I = 1,IB - IW = ING(I)-I30S+1 - JW = JNG(I)-J30S+1 - DDAT(IW,JW)=DATG2(IW,JW)-DATG(IW,JW) -! IF(I.LT.5)print*,'ISE,IW,JW,DATG2,DATG=', -! & ISE,IW,JW,DATG2(IW,JW),DATG(IW,JW) - END DO - END IF - - END IF -c end test - - IF(ISE.EQ.3) THEN -c -c READ(70) PSL -! PSL=PSLB - -! DO I=1,IGU -! I1=I+I30S-1 -! DO J=1,JGU -! J1=J+J30S-1 -! PSL30(I,J)=PSLB(I1,J1) -! ENDDO -! ENDDO - -! print*,'test9991,PSL30=',PSL30(185,78) - - DDAT=0. - DO I = 1,IB - IW = ING(I)-I30S+1 - JW = JNG(I)-J30S+1 - DDAT(IW,JW)=PSL30(IW,JW)-DATG(IW,JW) - PSL30(IW,JW)=DATG(IW,JW) - END DO - -! print*,'test9992,PSL30=',PSL30(185,78) -c -c Move vortex - -cc DO I = 1,IB -cc IW = ING(I) -cc JW = JNG(I) -cc IWX=IW+MDX -cc JWY=JW+MDY -cc IF(IWX.GT.IGU)IWX=IWX-IGU -cc IF(IWX.LT.1)IWX=IWX+IGU -CQLIUC -cc PSL(IWX,JWY) = PSL(IWX,JWY)+DDAT(IW,JW) -cc ENDDO - -! print*,'test9993,PSL30=',PSL30(185,78) - - CALL MOVETX(IGU,JGU,I30S,J30S,GLON30,GLAT30,PSL30,DDAT) - - DO I=1,IGU - I1=I+I30S-1 - DO J=1,JGU - J1=J+J30S-1 - PSLB(I1,J1)=PSL30(I,J) - ENDDO - ENDDO - -! print*,'test9994,PSL30=',PSL30(185,78) - -! PSLB = PSL - -! CALL WRIT2(IGU,JGU,NWRT2,MTV,PSL,HDATA) - DO I=1,IGU - DO J=1,JGU - PDAT30(I,J,IV) = PSL30(I,J) - ENDDO - ENDDO -c - ELSEIF(ISE.EQ.4) THEN -cyc REWIND 36 -cyc READ(36) PSL -! PSL = PSLB - DO I=1,IGU - I1=I+I30S-1 - DO J=1,JGU - J1=J+J30S-1 - PSL30(I,J)=PSLB(I1,J1) - ENDDO - ENDDO - - IF(IFLAG.EQ.1)THEN - DO I=1,IGU - DO J=1,JGU - T1(I,J) = DATG2(I,J) - ENDDO - ENDDO - ELSE - DO I=1,IGU - DO J=1,JGU - T1(I,J) = DATG(I,J) - ENDDO - ENDDO - END IF -! IF(KST.EQ.KSTM)THEN - CALL SLP2SP3(IMAX,JMAX,IGU,JGU,I30S,J30S,ZDATG,KUNIT, - & T00,T1,PSL30,PS30,idvm) -! END IF - -! print*,'test9995,PSL30=',PSL30(185,78),PS30(185,78) - - END IF - -c temperature field -c qliu - - IF(ISE.GE.4.and.ISE.LE.(NMAX+3))then - IF(IFLAG.EQ.1)THEN -cold IF(KST.EQ.KSTM) THEN -cql READ(20)SKIP2 -cold NCNT2 = NCNT2 + 1 -cold WRITE(KUNIT)(SKIP2(NW,NCNT2),NW=1,MAXWV2) -cold END IF -! CALL WRIT2(IGU,JGU,NWRT2,MTV,DATG2,HDATA) - DO I=1,IGU - DO J=1,JGU - PDAT30(I,J,IV) = DATG2(I,J) - ENDDO - ENDDO - ELSE - -c Move vortex -cc DO I = 1,IB -cc IW = ING(I) -cc JW = JNG(I) -cc IWX=IW+MDX -cc JWY=JW+MDY -cc IF(IWX.GT.IGU)IWX=IWX-IGU -cc IF(IWX.LT.1)IWX=IWX+IGU -CQLIUC -cc DATG(IWX,JWY) = DATG(IWX,JWY)+DDAT(IW,JW) -cc ENDDO - - CALL MOVETX(IGU,JGU,I30S,J30S,GLON30,GLAT30,DATG,DDAT) - -cnew IF(KST.EQ.KSTM) THEN -cql READ(20)SKIP2 -cnew NCNT2 = NCNT2 + 1 -cnew CALL G2SPC(DATG) -cnew END IF - -! CALL WRIT2(IGU,JGU,NWRT2,MTV,DATG,HDATA) - DO I=1,IGU - DO J=1,JGU - PDAT30(I,J,IV) = DATG(I,J) - ENDDO - ENDDO - - END IF - END IF -C - IF(ISE.GT.(NMAX+3).and.ISE.LE.(5*NMAX+3))THEN -c Move vortex - -cc DO I = 1,IB -cc IW = ING(I) -cc JW = JNG(I) -cc IWX=IW+MDX -cc JWY=JW+MDY -cc IF(IWX.GT.IGU)IWX=IWX-IGU -cc IF(IWX.LT.1)IWX=IWX+IGU -CQLIUC -cc DATG(IWX,JWY) = DATG(IWX,JWY)+DDAT(IW,JW) -cc ENDDO - -! CALL MOVETX1(IGU,JGU,GLON,GLAT,DATG,DDAT) - CALL MOVETX(IGU,JGU,I30S,J30S,GLON30,GLAT30,DATG,DDAT) -C -cnew IF(KST.EQ.KSTM) THEN -cnew CALL G2SPC(DATG) -cnew END IF - -! CALL WRIT2(IGU,JGU,NWRT2,MTV,DATG,HDATA) - DO I=1,IGU - DO J=1,JGU - PDAT30(I,J,IV) = DATG(I,J) - ENDDO - ENDDO - - ENDIF - - IF(ISE.GT.(5*NMAX+3))THEN - IF(IFLAG.EQ.1)THEN -cold IF(KST.EQ.KSTM) THEN -cold CALL G2SPC(KUNIT,MWAVE,IGU,JGU,DATG2) -cold END IF -! CALL WRIT2(IGU,JGU,NWRT2,MTV,DATG2,HDATA) - DO I=1,IGU - DO J=1,JGU - PDAT30(I,J,IV) = DATG(I,J) - ENDDO - ENDDO - ELSE - -c Move vortex -cc DO I = 1,IB -cc IW = ING(I) -cc JW = JNG(I) -cc IWX=IW+MDX -cc JWY=JW+MDY -cc IF(IWX.GT.IGU)IWX=IWX-IGU -cc IF(IWX.LT.1)IWX=IWX+IGU -CQLIUC -cc DATG(IWX,JWY) = DATG(IWX,JWY)+DDAT(IW,JW) -cc ENDDO - - CALL MOVETX(IGU,JGU,I30S,J30S,GLON30,GLAT30,DATG,DDAT) - -cnew IF(KST.EQ.KSTM) THEN -cnew CALL G2SPC(DATG) -cnew END IF - -! CALL WRIT2(IGU,JGU,NWRT2,MTV,DATG,HDATA) - DO I=1,IGU - DO J=1,JGU - PDAT30(I,J,IV) = DATG(I,J) - ENDDO - ENDDO - END IF - - ENDIF - -C - RETURN - END -C - SUBROUTINE SLP2SP3(IMAX,JMAX,IGU,JGU,I30S,J30S,ZDATG,KUNIT, - & T00,T1,PSL30,PS30,idvm) -c PARAMETER (IGU=384,JGU=190) -C - integer *4 idvm - real, parameter :: G=9.8, R=287.05, GAMMA=6.7*0.001 -! - DIMENSION T1(IGU,JGU) - REAL PSL30(IGU,JGU),PS30(IGU,JGU) - DIMENSION ZDATG(IMAX,JMAX) - REAL T00(IMAX,JMAX) -c COMMON /TR/ZDATG,GLON,GLAT,ING,JNG,IB -! -!.. MAKE SFC PRESSURE FROM MSLP -! -!$omp parallel do -!$omp& private(IH,JH,PMSL,A,B,C,DD) - DO JH=1,JGU - JH1=JH+J30S-1 - DO IH=1,IGU - IH1=IH+I30S-1 -! PMSL = LOG(PSL30(IH,JH)) -! A = (GAMMA * ZDATG(IH1,JH1)) / T1(IH,JH) -! B = LOG(1+A) -! C = (G*B)/(R*GAMMA) -! DD = PMSL - C -! PS30(IH,JH) = EXP(DD)/1000. - A = 1.-0.0065*ZDATG(IH1,JH1)/T00(IH1,JH1) - DD = LOG(PSL30(IH,JH))+5.257*LOG(A) - PS30(IH,JH) = EXP(DD)/1000. -! IF (PSL(IH,JH).LE.10.) write(6,*)'SP is Less than 100mb at ', -! & IH,JH,D1 - ENDDO - ENDDO - if (mod(idvm, 10) /= 2) then - PS30 = LOG(PS30) - endif - print*,'test666,PSL30,PS30=',PSL30(1,1),PS30(1,1) -! write(6,*)' in SLP2SP PSL=',PSL(1,90) -C -C.. GAUSSIAN GRID TO SPECTRAL COEFFEICENT -C - call maxmin(psl,igu*jgu,1,1,1,'global SLP at SLP after int') - call maxmin(t1,igu*jgu,1,1,1,'global T1 at SLP after int') -C - RETURN - END -C - SUBROUTINE G2SPC(KUNIT,MWAVE,MAXWV2,IMAX,JMAX,Q1,PS2) -! - REAL Q1(IMAX,JMAX) - REAL PS2(MAXWV2) - - REAL, ALLOCATABLE :: DN(:) - -!moor MAXWV2 = (MWAVE+1)*(MWAVE+2) - MAXWV22 = MAXWV2 + 1 - - ALLOCATE ( DN(MAXWV22) ) -! -! call maxmin(dn,MAXWV2,1,1,1,'surface pressure after making') - - call SPTEZ(0,MWAVE,4,IMAX,JMAX,DN,Q1,-1) - - DO I=1,MAXWV2 - PS2(I) = DN(I) - END DO -! - DEALLOCATE (DN) - - RETURN - END - -C----------------------------------------------------------------------- - SUBROUTINE MODPR(IM,IX,KM,IDVC,IDSL,SI,AK,BK,PS,PI,PM) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: MODPR COMPUTE MODEL PRESSURES -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 92-10-31 -C -C ABSTRACT: COMPUTE MODEL PRESSURES. -C -C PROGRAM HISTORY LOG: -C 2001-07-25 MARK IREDELL -C -C USAGE: CALL MODPR(IM,IX,KM,IDVC,IDSL,SI,AK,BK,PS,PI,PM) -C INPUT ARGUMENT LIST: -C IM INTEGER NUMBER OF POINTS TO COMPUTE -C IX INTEGER FIRST DIMENSION -C KM INTEGER NUMBER OF LEVELS -C IDVC INTEGER VERTICAL COORDINATE ID -C (1 FOR SIGMA AND 2 FOR HYBRID) -C IDSL INTEGER TYPE OF SIGMA STRUCTURE -C (1 FOR PHILLIPS OR 2 FOR MEAN) -C SI REAL (KM+1) SIGMA INTERFACE VALUES (IDVC=1) -C AK REAL (KM+1) HYBRID INTERFACE A (IDVC=2) -C BK REAL (KM+1) HYBRID INTERFACE B (IDVC=2) -C PS REAL (IX) SURFACE PRESSURE (PA) -C OUTPUT ARGUMENT LIST: -C PI REAL (IX,KM+1) INTERFACE PRESSURE (PA) -C PM REAL (IX,KM) MID-LAYER PRESSURE (PA) -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN -C -C$$$ - REAL SI(KM+1),AK(KM+1),BK(KM+1),PS(IX),PI(IX,KM),PM(IX,KM) -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IF(IDVC.EQ.2) THEN - DO K=1,KM+1 - PI(1:IM,K)=AK(K)+BK(K)*PS - ENDDO -! write(6,*)'idvc=',idvc -! write(6,*)'ak=',ak -! write(6,*)'bk=',bk -! write(6,*)'ps(1)=',ps(1) -! write(6,*)'pi(1,:)=',pi(1,:) - ELSE - DO K=1,KM+1 - PI(1:IM,K)=SI(K)*PS - ENDDO - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IF(IDSL.EQ.2) THEN - DO K=1,KM - PM(1:IM,K)=(PI(1:IM,K)+PI(1:IM,K+1))/2 - ENDDO - ELSE - ROCP=287.05/1004.6 - ROCP1=ROCP+1 - ROCPR=1/ROCP -!$omp parallel do -!$omp& private(K) - DO K=1,KM - PM(1:IM,K)=((PI(1:IM,K)**ROCP1-PI(1:IM,K+1)**ROCP1)/ - & (ROCP1*(PI(1:IM,K)-PI(1:IM,K+1))))**ROCPR - ENDDO -! write(6,*)'pm(1,:)=',pm(1,:) - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - END diff --git a/sorc/relocate_mv_nvortex.fd/rodist.f b/sorc/relocate_mv_nvortex.fd/rodist.f deleted file mode 100755 index 339f7a552b..0000000000 --- a/sorc/relocate_mv_nvortex.fd/rodist.f +++ /dev/null @@ -1,25 +0,0 @@ - subroutine rodist - parameter(nmx=24) - common /vect/rovect(nmx),xvect(nmx),yvect(nmx) - COMMON /POSIT/ XOLD,YOLD,XCORN,YCORN -c -c write(6,*) 'rovect',rovect - pi=4.0*atan(1.0) - PI180 = 4.*ATAN(1.0)/180. - yo=yold*pi180 -c qliu fact=cos(yo) - fact=1.0 - xc=xold-xcorn - yc=yold-ycorn -c - do 10 ip=1,nmx -c - theta=float(ip-1)/float(nmx)*2.*pi - r=rovect(ip) -c - xvect(ip)=r*cos(theta)/fact +xc - yvect(ip)=r*sin(theta) +yc -10 continue -c - return - end diff --git a/sorc/relocate_mv_nvortex.fd/sedr_omp b/sorc/relocate_mv_nvortex.fd/sedr_omp deleted file mode 100755 index c23ed6884c..0000000000 --- a/sorc/relocate_mv_nvortex.fd/sedr_omp +++ /dev/null @@ -1,8 +0,0 @@ -set -euax - -for file in mv_nvortex.f sig_p_convt1.f -do -sed -e "s/\$OMP/!\$OMP/" $file >tmpout; mv tmpout $file -done - - diff --git a/sorc/relocate_mv_nvortex.fd/sig_p_convt1.f b/sorc/relocate_mv_nvortex.fd/sig_p_convt1.f deleted file mode 100644 index 16bf50b617..0000000000 --- a/sorc/relocate_mv_nvortex.fd/sig_p_convt1.f +++ /dev/null @@ -1,1640 +0,0 @@ - - SUBROUTINE SIG2P(KMAX,MTV2,MTV3,HDAT,PDAT,PSFCM,H,HP,KST, - & nvcd,idvc,idsl,vcrd) -c -c subprogram: -c prgmmr: Qingfu Liu date: 2000-04-25 -c Fanglin Yang: add OpenMP date: 2010-09-01 -c -c abstract: -c Convert data from SIG surface to P surface. -c -c usage: call -c Input: HDAT - DATA at SIG surface -c KST: not used -C Ouput: PDAT - DATA at P surface - - use sigio_module - use sigio_r_module - - implicit none - integer mtv2, mtv3, kst - integer * 4 nvcd, idvc, idsl, kmax - - integer, PARAMETER :: IX=41, JX=41 - - REAL HDAT(IX,JX,MTV2),PDAT(IX,JX,MTV3) - REAL ZS(IX,JX),APS(IX,JX) - REAL H(IX,JX,KMAX),HP(IX,JX,2*KMAX+1) - - REAL(4) PS(IX,JX) - -c REAL(4) FHOUR,X(160),SI(KMAX+1),SL(KMAX) -! REAL*4 FHOUR,DUMMY(245) -! COMMON /COEF3/FHOUR,DUMMY -! REAL DUMMY8(245) - - REAL, ALLOCATABLE :: TV(:,:,:), DIV(:,:,:), VORT(:,:,:), - & U(:,:,:), V(:,:,:), SH(:,:,:) - REAL, ALLOCATABLE :: RH(:,:,:), APG(:,:,:), T(:,:,:) - REAL, ALLOCATABLE :: P(:),AP(:) - REAL, ALLOCATABLE :: DIVP(:,:,:), VORTP(:,:,:), UP(:,:,:), - & VP(:,:,:), RHP(:,:,:), SHP(:,:,:), - & TP(:,:,:) - - REAL(4), ALLOCATABLE :: PSIG(:,:,:), TV4(:,:,:) - REAL(4), ALLOCATABLE :: SIREF(:),SLREF(:),PD1(:), tref(:) - REAL(4) vcrd(KMAX+1,nvcd),PSREF(1) -! - real, parameter :: COEF1=461.5/287.05-1.0 - &, COEF2=287.05/9.8 - &, GAMA=6.5E-3, COEF3=COEF2*GAMA -! - integer kmax1, nmax, i, j, k, l, n - integer * 4 iret, ixjx4 - real es, shs, w, dtemp, tvu, tvd, tdry, psfcm, w1 - - KMAX1=KMAX+1 - NMAX=2*KMAX+1 - - write(6,*)' KMAX=',KMAX,' KMAX1=',KMAX1,' NMAX=',NMAX - - ALLOCATE ( SIREF(KMAX1),SLREF(KMAX),PD1(KMAX),tref(kmax) ) - -! DUMMY8=DUMMY -! IDVC=DUMMY(220) -! IDSL=DUMMY(219) -! CALL MODPR(1,1,KMAX,IDVC,IDSL, -! & DUMMY8(1),DUMMY8(1),DUMMY8(KMAX+2),1.E5, -! & SIREF,SLREF) - - PSREF = 1.E5 - tref = 270.0 - - CALL sigio_modpr(1,1,KMAX,nvcd,idvc,idsl,vcrd,iret, - & ps=PSREF,t=tref,pd=pd1,pm=SLREF) - - SIREF(1)=1.E5 - do k=1,KMAX - SIREF(k+1)=SIREF(k)-pd1(k) -! write(6,*)'SIREF test=',K+1,SIREF(k+1),SLREF(k) - end do - - SIREF = SIREF/1.E5 - SLREF = SLREF/1.E5 - - ALLOCATE ( TV(IX,JX,KMAX), DIV(IX,JX,KMAX), - & VORT(IX,JX,KMAX),U(IX,JX,KMAX), - & V(IX,JX,KMAX),SH(IX,JX,KMAX) ) - ALLOCATE ( TV4(IX,JX,KMAX)) - - ALLOCATE ( PSIG(IX,JX,KMAX),RH(IX,JX,KMAX), - & APG(IX,JX,KMAX+1),T(IX,JX,KMAX) ) - - ALLOCATE ( P(NMAX),AP(NMAX) ) - ALLOCATE ( DIVP(IX,JX,NMAX),VORTP(IX,JX,NMAX), - & UP(IX,JX,NMAX), VP(IX,JX,NMAX), - & RHP(IX,JX,NMAX),SHP(IX,JX,NMAX), - & TP(IX,JX,NMAX) ) - -! Surface Height and Surface Press -!$omp parallel do -!$omp& private(I,J) - DO J=1,JX - DO I=1,IX - ZS(I,J) = HDAT(I,J,1) - PS(I,J) = EXP(HDAT(I,J,2))*1000. - APS(I,J) = ALOG(1.*PS(I,J)) - END DO - END DO - -! DIV, VORT, U, V, T and Specific Humidity at Sigma Level -!$omp parallel do -!$omp& private(I,J,K) - DO K=1,KMAX - DO J=1,JX - DO I=1,IX - DIV(I,J,K) = HDAT(I,J,KMAX+4+4*(K-1)) - VORT(I,J,K) = HDAT(I,J,KMAX+5+4*(K-1)) - U(I,J,K) = HDAT(I,J,KMAX+6+4*(K-1)) - V(I,J,K) = HDAT(I,J,KMAX+7+4*(K-1)) - SH(I,J,K) = HDAT(I,J,KMAX*5+3+K) - TV(I,J,K) = HDAT(I,J,3+K) - T(I,J,K) = TV(I,J,K)/(1.+COEF1*SH(I,J,K)) - END DO - END DO - END DO -! write(6,*)' coef1=',coef1 -! write(6,*)' SH=',SH(16,37,:) - -! Press at Sigma-Level -! write(6,*)'IX,JX,KMAX,IDVC,IDSL=',IX,JX,KMAX,IDVC,IDSL -! CALL MODPR(IX*JX,IX*JX,KMAX,IDVC,IDSL, -! & DUMMY8(1),DUMMY8(1),DUMMY8(KMAX+2),PS, -! & APG,PSIG) - - ixjx4 = ix * jx - tv4 = tv -! write(6,*)' tv4=',tv4(16,37,:) -! write(6,*)' ps=',ps(16,37) - CALL sigio_modpr(IXJX4,IXJX4,KMAX,nvcd,idvc,idsl,vcrd,iret, - & ps=PS,t=tv4,pm=PSIG) - deallocate (tv4) - -! write(6,*)'PSIG(1,1,1)=',PSIG(1,1,1) - -!$omp parallel do -!$omp& private(I,J,K) - DO K=1,KMAX - DO J=1,JX - DO I=1,IX - APG(I,J,K)=ALOG(1.*PSIG(I,J,K)) - END DO - END DO - END DO - - DO J=1,JX - DO I=1,IX - TVD = TV(I,J,1) - H(I,J,1) = ZS(I,J)-COEF2*TVD*(APG(I,J,1)-APS(I,J)) - DO K=2,KMAX - TVU = TV(I,J,K) - H(I,J,K) = H(I,J,K-1)- - & COEF2*0.5*(TVD+TVU)*(APG(I,J,K)-APG(I,J,K-1)) - TVD = TVU - END DO - END DO - END DO - -! Const. P-Level - DO K=1,KMAX - P(2*K-1) = SIREF(K)*PSFCM - P(2*K) = SLREF(K)*PSFCM - END DO - P(NMAX) = SLREF(KMAX)*0.5*PSFCM - DO N=1,NMAX - AP(N) = ALOG(P(N)) - END DO - -! write(6,*)' P=',P - -!!$omp parallel do -!!$omp& private(I,J,N,K) - DO J=1,JX - DO I=1,IX -! if( i == 16 .and. j == 37) write(6,*)' T=',T(i,j,1),t(i,j,kmax) -! &,' h=',h(i,j,1),' P=',P(1),p(nmax),' psig=',psig(i,j,1) -! &,psig(i,j,kmax) - DO N=1,NMAX - IF(P(N).GE.PSIG(I,J,1))THEN - HP(I,J,N)=H(I,J,1)+ - & TV(I,J,1)/GAMA*(1.-(P(N)/PSIG(I,J,1))**COEF3) - ELSE IF((P(N).LT.PSIG(I,J,1)).AND. - & (P(N).GT.PSIG(I,J,KMAX)))THEN - DO K=1,KMAX-1 - IF((P(N).LT.PSIG(I,J,L)).AND. - & (P(N).GE.PSIG(I,J,L+1)))THEN - HP(I,J,N)=H(I,J,K)+ - & TV(I,J,K)/GAMA*(1.-(P(N)/PSIG(I,J,K))**COEF3) - END IF - END DO - ELSE IF(P(N).LE.PSIG(I,J,KMAX))THEN - HP(I,J,N)=H(I,J,KMAX)+ - & TV(I,J,KMAX)/GAMA*(1.-(P(N)/PSIG(I,J,KMAX))**COEF3) - ELSE - write(6,*)'SOMETHING IS WRONG' - END IF - END DO - END DO - END DO - -c RH at K=1 (Sigma=0.995) -! DO K=1,KMAX - K=1 -!$omp parallel do -!$omp& private(I,J,DTEMP,ES,SHS) - DO J=1,JX - DO I=1,IX - DTEMP = T(I,J,K)-273.15 - ES = 611.2*EXP(17.67*DTEMP/(DTEMP+243.5)) - SHS = 0.622*ES/(PSIG(I,J,K)-0.378*ES) - RH(I,J,K) = MIN(MAX(SH(I,J,K)/SHS,0.),1.0) - END DO - END DO -! END DO - -! Interpolate to Const. Press Level. -!$omp parallel do -!$omp& private(I,J,N,L,TDRY,DTEMP,ES,SHS,W,W1) - DO J=1,JX - DO I=1,IX - CYC_123: DO N=1,NMAX -! if( i == 16 .and. j == 37) -! &write(6,*)' i=',i,' j=',j,' n=',n,' p=',p(n),' psig=',psig(i,j,1) -! &,' T=',t(i,j,1),' gama=',gama,'hp=',hp(i,j,n),' h=',h(i,j,1) - IF(P(N).GE.PSIG(I,J,1))THEN -! below SIGMA K=1 - DIVP(I,J,N)=DIV(I,J,1) - VORTP(I,J,N)=VORT(I,J,1) - UP(I,J,N)=U(I,J,1) - VP(I,J,N)=V(I,J,1) - RHP(I,J,N)=RH(I,J,1) ! RH at SIGMA K=1 - TDRY=T(I,J,1)-GAMA*(HP(I,J,N)-H(I,J,1)) - DTEMP=TDRY-273.15 - ES=611.2*EXP(17.67*DTEMP/(DTEMP+243.5)) -! if( i == 16 .and. j == 37) -! &write(6,*)' es=',es,' pn=',p(n),0.378*es - SHS=0.622*ES/(P(N)-0.378*ES) - SHP(I,J,N)=RHP(I,J,N)*SHS - TP(I,J,N)=TDRY*(1.+COEF1*SHP(I,J,N)) -! within domain - ELSE IF((P(N).LT.PSIG(I,J,1)).AND. - & (P(N).GT.PSIG(I,J,KMAX)))THEN - DO L=1,KMAX-1 - IF((P(N).LT.PSIG(I,J,L)).AND. - & (P(N).GE.PSIG(I,J,L+1)))THEN - W=(AP(N)-APG(I,J,L))/(APG(I,J,L+1)-APG(I,J,L)) -c W1=(P(N)-PSIG(I,J,L))/(PSIG(I,J,L+1)-PSIG(I,J,L)) - DIVP(I,J,N)=DIV(I,J,L)+ - & W*(DIV(I,J,L+1)-DIV(I,J,L)) - VORTP(I,J,N)=VORT(I,J,L)+ - & W*(VORT(I,J,L+1)-VORT(I,J,L)) - UP(I,J,N)=U(I,J,L)+W*(U(I,J,L+1)-U(I,J,L)) - VP(I,J,N)=V(I,J,L)+W*(V(I,J,L+1)-V(I,J,L)) - TP(I,J,N)=TV(I,J,L)+W*(TV(I,J,L+1)-TV(I,J,L)) - SHP(I,J,N)=SH(I,J,L)+W*(SH(I,J,L+1)-SH(I,J,L)) - CYCLE CYC_123 !GO TO 123 - END IF - END DO -! 123 CONTINUE -! above top - ELSE IF(P(N).LE.PSIG(I,J,KMAX))THEN - DIVP(I,J,N)=DIV(I,J,KMAX) - VORTP(I,J,N)=VORT(I,J,KMAX) - UP(I,J,N)=U(I,J,KMAX) - VP(I,J,N)=V(I,J,KMAX) - TDRY=T(I,J,KMAX)-GAMA*(HP(I,J,N)-H(I,J,KMAX)) - SHP(I,J,N)=SH(I,J,KMAX) - TP(I,J,N)=TDRY*(1.+COEF1*SHP(I,J,N)) - ELSE - write(6,*)'SOMETHING IS WRONG' - END IF - - END DO CYC_123 - END DO - END DO - -!!$omp parallel do -!!$omp& private(I,J,N) - DO J=1,JX - DO I=1,IX - PDAT(I,J,1) = HDAT(I,J,1) - PDAT(I,J,2) = HDAT(I,J,2) - PDAT(I,J,3) = HDAT(I,J,3) - DO N=1,NMAX - PDAT(I,J,NMAX+4+4*(N-1)) = DIVP(I,J,N) - PDAT(I,J,NMAX+5+4*(N-1)) = VORTP(I,J,N) - PDAT(I,J,NMAX+6+4*(N-1)) = UP(I,J,N) - PDAT(I,J,NMAX+7+4*(N-1)) = VP(I,J,N) - PDAT(I,J,NMAX*5+3+N) = SHP(I,J,N) - PDAT(I,J,3+N) = TP(I,J,N) - END DO - END DO - END DO - - DEALLOCATE ( SIREF,SLREF,PD1,tref ) - DEALLOCATE ( T, TV, DIV, VORT, U, V, SH ) - DEALLOCATE ( PSIG, RH, APG ) - DEALLOCATE ( P, AP ) - DEALLOCATE ( DIVP, VORTP, UP, VP, RHP, SHP, TP ) - - END - - SUBROUTINE SIG2P30(IX,JX,KMAX,MTV,MTV3,HDAT,PDAT,PSL,PSFCM, - & H,HP,KST,nvcd,idvc,idsl,vcrd) -c -c subprogram: -c prgmmr: Qingfu Liu date: 2000-04-25 -c Fanglin Yang: add OpenMP date: 2010-09-01 -c -c abstract: -c Convert data from SIG surface to P surface. -c -c usage: call -c Input: HDAT - DATA at SIG surface -c KST: not used -C Ouput: PDAT - DATA at P surface - - use sigio_module - use sigio_r_module - - implicit none - integer ix, jx, mtv, mtv3, kst - integer * 4 nvcd, idvc, idsl, kmax - -! integer, PARAMETER :: IX=41, JX=41 - - REAL PDAT(IX,JX,MTV3) - REAL ZS(IX,JX),APS(IX,JX),PSL(IX,JX) - REAL H(IX,JX,KMAX),HP(IX,JX,2*KMAX+1) - - REAL(4) HDAT(IX,JX,MTV),PS(IX,JX) - -c REAL(4) FHOUR,X(160),SI(KMAX+1),SL(KMAX) -! REAL*4 FHOUR,DUMMY(245) -! COMMON /COEF3/FHOUR,DUMMY -! REAL DUMMY8(245) - - REAL, ALLOCATABLE :: TV(:,:,:), DIV(:,:,:), VORT(:,:,:), - & SH(:,:,:) - REAL, ALLOCATABLE :: RH(:,:,:), APG(:,:,:), T(:,:,:) - REAL, ALLOCATABLE :: P(:),AP(:) - REAL, ALLOCATABLE :: DIVP(:,:,:), VORTP(:,:,:), - & RHP(:,:,:), SHP(:,:,:), - & TP(:,:,:) - - REAL(4), ALLOCATABLE :: PSIG(:,:,:), TV4(:,:,:) - REAL(4), ALLOCATABLE :: SIREF(:),SLREF(:),PD1(:), tref(:) - REAL(4) vcrd(KMAX+1,nvcd),PSREF(1) -! - real, parameter :: COEF1=461.5/287.05-1.0 - &, COEF2=287.05/9.8 - &, GAMA=6.5E-3, COEF3=COEF2*GAMA -! - integer kmax1, nmax, i, j, k, l, n - integer * 4 iret, ixjx4 - real es, shs, w, dtemp, tvu, tvd, tdry, psfcm, w1 - - KMAX1=KMAX+1 - NMAX=2*KMAX+1 - - write(6,*)' IX=',IX,' JX=',JX - write(6,*)' KMAX=',KMAX,' KMAX1=',KMAX1,' NMAX=',NMAX - - ALLOCATE ( SIREF(KMAX1),SLREF(KMAX),PD1(KMAX),tref(kmax) ) - -! DUMMY8=DUMMY -! IDVC=DUMMY(220) -! IDSL=DUMMY(219) -! CALL MODPR(1,1,KMAX,IDVC,IDSL, -! & DUMMY8(1),DUMMY8(1),DUMMY8(KMAX+2),1.E5, -! & SIREF,SLREF) - - PSREF = 1.E5 - tref = 270.0 - - CALL sigio_modpr(1,1,KMAX,nvcd,idvc,idsl,vcrd,iret, - & ps=PSREF,t=tref,pd=pd1,pm=SLREF) - - SIREF(1)=1.E5 - do k=1,KMAX - SIREF(k+1)=SIREF(k)-pd1(k) -! write(6,*)'SIREF test=',K+1,SIREF(k+1),SLREF(k) - end do - - SIREF = SIREF/1.E5 - SLREF = SLREF/1.E5 - - ALLOCATE ( TV(IX,JX,KMAX), DIV(IX,JX,KMAX), - & VORT(IX,JX,KMAX),SH(IX,JX,KMAX) ) - ALLOCATE ( TV4(IX,JX,KMAX)) - - ALLOCATE ( PSIG(IX,JX,KMAX),RH(IX,JX,KMAX), - & APG(IX,JX,KMAX+1),T(IX,JX,KMAX) ) - - ALLOCATE ( P(NMAX),AP(NMAX) ) - ALLOCATE ( DIVP(IX,JX,NMAX),VORTP(IX,JX,NMAX), - & RHP(IX,JX,NMAX),SHP(IX,JX,NMAX), - & TP(IX,JX,NMAX) ) - -! Surface Height and Surface Press -!$omp parallel do -!$omp& private(I,J) - DO J=1,JX - DO I=1,IX - ZS(I,J) = HDAT(I,J,1) - PS(I,J) = EXP(HDAT(I,J,2))*1000. - APS(I,J) = ALOG(1.*PS(I,J)) - END DO - END DO - - print*,'ql test5549' - print*,'mtv,mtv3=',mtv,mtv3 -! DIV, VORT, U, V, T and Specific Humidity at Sigma Level -!!!$omp parallel do -!!!$omp& private(I,J,K) - DO K=1,KMAX - DO J=1,JX - DO I=1,IX - DIV(I,J,K) = HDAT(I,J,KMAX+3+2*(K-1)) - VORT(I,J,K) = HDAT(I,J,KMAX+4+2*(K-1)) - SH(I,J,K) = HDAT(I,J,KMAX*3+2+K) - TV(I,J,K) = HDAT(I,J,2+K) - T(I,J,K) = TV(I,J,K)/(1.+COEF1*SH(I,J,K)) -! if(i.eq.1.and.j.eq.1)print*,i,j,k,DIV(I,J,K), -! & VORT(I,J,K),SH(I,J,K), TV(I,J,K),T(I,J,K) -! if(k.ge.(kmax-1))print*,i,j,k - END DO - END DO - END DO -! print*,'ql test5550' -! write(6,*)' coef1=',coef1 -! write(6,*)' SH=',SH(16,37,:) - -! Press at Sigma-Level -! write(6,*)'IX,JX,KMAX,IDVC,IDSL=',IX,JX,KMAX,IDVC,IDSL -! CALL MODPR(IX*JX,IX*JX,KMAX,IDVC,IDSL, -! & DUMMY8(1),DUMMY8(1),DUMMY8(KMAX+2),PS, -! & APG,PSIG) - - ixjx4 = ix * jx - tv4 = tv -! write(6,*)' tv4=',tv4(16,37,:) -! write(6,*)' ps=',ps(16,37) - CALL sigio_modpr(IXJX4,IXJX4,KMAX,nvcd,idvc,idsl,vcrd,iret, - & ps=PS,t=tv4,pm=PSIG) - deallocate (tv4) - -! print*,'ql test5551' -! write(6,*)'PSIG(1,1,1)=',PSIG(1,1,1) - -!$omp parallel do -!$omp& private(I,J,K) - DO K=1,KMAX - DO J=1,JX - DO I=1,IX - APG(I,J,K)=ALOG(1.*PSIG(I,J,K)) - END DO - END DO - END DO - - DO J=1,JX - DO I=1,IX - TVD = TV(I,J,1) - H(I,J,1) = ZS(I,J)-COEF2*TVD*(APG(I,J,1)-APS(I,J)) - DO K=2,KMAX - TVU = TV(I,J,K) - H(I,J,K) = H(I,J,K-1)- - & COEF2*0.5*(TVD+TVU)*(APG(I,J,K)-APG(I,J,K-1)) - TVD = TVU - END DO - END DO - END DO - -! Const. P-Level - DO K=1,KMAX - P(2*K-1) = SIREF(K)*PSFCM - P(2*K) = SLREF(K)*PSFCM - END DO - P(NMAX) = SLREF(KMAX)*0.5*PSFCM - DO N=1,NMAX - AP(N) = ALOG(P(N)) - END DO - -! print*,'ql test5552' - -! write(6,*)' P=',P - -!!$omp parallel do -!!$omp& private(I,J,N,K) - DO J=1,JX - DO I=1,IX -! if( i == 16 .and. j == 37) write(6,*)' T=',T(i,j,1),t(i,j,kmax) -! &,' h=',h(i,j,1),' P=',P(1),p(nmax),' psig=',psig(i,j,1) -! &,psig(i,j,kmax) - DO N=1,NMAX - IF(P(N).GE.PSIG(I,J,1))THEN - HP(I,J,N)=H(I,J,1)+ - & TV(I,J,1)/GAMA*(1.-(P(N)/PSIG(I,J,1))**COEF3) - ELSE IF((P(N).LT.PSIG(I,J,1)).AND. - & (P(N).GT.PSIG(I,J,KMAX)))THEN - DO K=1,KMAX-1 - IF((P(N).LT.PSIG(I,J,L)).AND. - & (P(N).GE.PSIG(I,J,L+1)))THEN - HP(I,J,N)=H(I,J,K)+ - & TV(I,J,K)/GAMA*(1.-(P(N)/PSIG(I,J,K))**COEF3) - END IF - END DO - ELSE IF(P(N).LE.PSIG(I,J,KMAX))THEN - HP(I,J,N)=H(I,J,KMAX)+ - & TV(I,J,KMAX)/GAMA*(1.-(P(N)/PSIG(I,J,KMAX))**COEF3) - ELSE - write(6,*)'SOMETHING IS WRONG' - END IF - END DO - END DO - END DO - -c RH at K=1 (Sigma=0.995) -! DO K=1,KMAX - K=1 -!$omp parallel do -!$omp& private(I,J,DTEMP,ES,SHS) - DO J=1,JX - DO I=1,IX - DTEMP = T(I,J,K)-273.15 - ES = 611.2*EXP(17.67*DTEMP/(DTEMP+243.5)) - SHS = 0.622*ES/(PSIG(I,J,K)-0.378*ES) - RH(I,J,K) = MIN(MAX(SH(I,J,K)/SHS,0.),1.0) - END DO - END DO -! END DO - -! print*,'ql test5553' - -! Interpolate to Const. Press Level. -!$omp parallel do -!$omp& private(I,J,N,L,TDRY,DTEMP,ES,SHS,W,W1) - DO J=1,JX - DO I=1,IX - CYC_123: DO N=1,NMAX -! if( i == 16 .and. j == 37) -! &write(6,*)' i=',i,' j=',j,' n=',n,' p=',p(n),' psig=',psig(i,j,1) -! &,' T=',t(i,j,1),' gama=',gama,'hp=',hp(i,j,n),' h=',h(i,j,1) - IF(P(N).GE.PSIG(I,J,1))THEN -! below SIGMA K=1 - DIVP(I,J,N)=DIV(I,J,1) - VORTP(I,J,N)=VORT(I,J,1) - RHP(I,J,N)=RH(I,J,1) ! RH at SIGMA K=1 - TDRY=T(I,J,1)-GAMA*(HP(I,J,N)-H(I,J,1)) - DTEMP=TDRY-273.15 - ES=611.2*EXP(17.67*DTEMP/(DTEMP+243.5)) -! if( i == 16 .and. j == 37) -! &write(6,*)' es=',es,' pn=',p(n),0.378*es - SHS=0.622*ES/(P(N)-0.378*ES) - SHP(I,J,N)=RHP(I,J,N)*SHS - TP(I,J,N)=TDRY*(1.+COEF1*SHP(I,J,N)) -! within domain - ELSE IF((P(N).LT.PSIG(I,J,1)).AND. - & (P(N).GT.PSIG(I,J,KMAX)))THEN - DO L=1,KMAX-1 - IF((P(N).LT.PSIG(I,J,L)).AND. - & (P(N).GE.PSIG(I,J,L+1)))THEN - W=(AP(N)-APG(I,J,L))/(APG(I,J,L+1)-APG(I,J,L)) -c W1=(P(N)-PSIG(I,J,L))/(PSIG(I,J,L+1)-PSIG(I,J,L)) - DIVP(I,J,N)=DIV(I,J,L)+ - & W*(DIV(I,J,L+1)-DIV(I,J,L)) - VORTP(I,J,N)=VORT(I,J,L)+ - & W*(VORT(I,J,L+1)-VORT(I,J,L)) - TP(I,J,N)=TV(I,J,L)+W*(TV(I,J,L+1)-TV(I,J,L)) - SHP(I,J,N)=SH(I,J,L)+W*(SH(I,J,L+1)-SH(I,J,L)) - CYCLE CYC_123 !GO TO 123 - END IF - END DO -! 123 CONTINUE -! above top - ELSE IF(P(N).LE.PSIG(I,J,KMAX))THEN - DIVP(I,J,N)=DIV(I,J,KMAX) - VORTP(I,J,N)=VORT(I,J,KMAX) - TDRY=T(I,J,KMAX)-GAMA*(HP(I,J,N)-H(I,J,KMAX)) - SHP(I,J,N)=SH(I,J,KMAX) - TP(I,J,N)=TDRY*(1.+COEF1*SHP(I,J,N)) - ELSE - write(6,*)'SOMETHING IS WRONG' - END IF - - END DO CYC_123 - END DO - END DO - -! print*,'ql test5554' - -!!$omp parallel do -!!$omp& private(I,J,N) - DO J=1,JX - DO I=1,IX - PDAT(I,J,1) = HDAT(I,J,1) - PDAT(I,J,2) = HDAT(I,J,2) - PDAT(I,J,3) = PSL(I,J) - DO N=1,NMAX - PDAT(I,J,NMAX+4+4*(N-1)) = DIVP(I,J,N) - PDAT(I,J,NMAX+5+4*(N-1)) = VORTP(I,J,N) - PDAT(I,J,NMAX+6+4*(N-1)) = 0. - PDAT(I,J,NMAX+7+4*(N-1)) = 0. - PDAT(I,J,NMAX*5+3+N) = SHP(I,J,N) - PDAT(I,J,3+N) = TP(I,J,N) - END DO - END DO - END DO - -!! call maxmin(HDAT(1,1,2),IX*JX,1,1,1,'surface pressure') -!! call maxmin(PSL,IX*JX,1,1,1,'sea level pressure') -! print*,'ql test5555' - - DEALLOCATE ( SIREF,SLREF,PD1,tref ) - DEALLOCATE ( T, TV, DIV, VORT, SH ) - DEALLOCATE ( PSIG, RH, APG ) - DEALLOCATE ( P, AP ) - DEALLOCATE ( DIVP, VORTP, RHP, SHP, TP ) - - END - - SUBROUTINE P2SIG(KMAX,MTV2,MTV3,HDPB,PDPB,PDAT,HDAT, - & PSFCM,H,HP,KST,nvcd,idvc,idsl,vcrd) - -c P to SIG conversion -c -c Input: HDPB (perturbation part), PDPB (perturbation part) -c Input: PDAT (total field), PDPB+PDAT = ENV part -C Ouput: HDPB (the value at the top most level kmax is not changed) -c KST: not used - - use sigio_module - use sigio_r_module - - implicit none - integer kmax, mtv2, mtv3, kst - integer * 4 nvcd, idvc, idsl - integer, PARAMETER :: IX=41, JX=41 - - REAL HDPB(IX,JX,MTV2),HDAT(IX,JX,MTV2) - REAL PDPB(IX,JX,MTV3),PDAT(IX,JX,MTV3) - REAL ZS(IX,JX),APS(IX,JX) - REAL H(IX,JX,KMAX),HP(IX,JX,2*KMAX+1) - - REAL(4) PS(IX,JX) - -c REAL(4) FHOUR,X(160),SI(KMAX+1),SL(KMAX) -! REAL*4 FHOUR,DUMMY(245) -! COMMON /COEF3/FHOUR,DUMMY -! REAL DUMMY8(245) - - REAL, ALLOCATABLE :: TV(:,:,:),DIV(:,:,:),VORT(:,:,:), - & U(:,:,:),V(:,:,:),SH(:,:,:) - REAL, ALLOCATABLE :: RH(:,:,:), - & APG(:,:,:) - REAL, ALLOCATABLE :: P(:),AP(:) - REAL, ALLOCATABLE :: DIVP(:,:,:),VORTP(:,:,:),UP(:,:,:), - & VP(:,:,:),RHP(:,:,:) - REAL, ALLOCATABLE :: TVP(:,:,:),TVP_E(:,:,:) - REAL, ALLOCATABLE :: TP_E(:,:,:) - REAL, ALLOCATABLE :: SHP(:,:,:),SHP_E(:,:,:) - REAL, ALLOCATABLE :: HT_T(:,:,:),HSH_T(:,:,:) - - REAL(4), ALLOCATABLE :: PSIG(:,:,:), TVP_E4(:,:,:) - - REAL(4), ALLOCATABLE :: SIREF(:),SLREF(:),PD1(:),tref(:) - - REAL(4) vcrd(KMAX+1,nvcd),PSREF(1) -! - real, parameter :: COEF1=461.5/287.05-1.0 - &, COEF2=287.05/9.8 - &, GAMA=6.5E-3, COEF3=COEF2*GAMA -! - integer kmax1, nmax, i, j, k, l, n, ntrac, iret - real es, shs, w, dtemp, tdry, psfcm, sh_e, w1, tvd, tvu - - KMAX1 = KMAX+1 - NMAX = 2*KMAX+1 - - ALLOCATE ( SIREF(KMAX1),SLREF(KMAX),PD1(KMAX), tref(kmax) ) - -! DUMMY8=DUMMY -! IDVC=DUMMY(220) -! IDSL=DUMMY(219) -! CALL MODPR(1,1,KMAX,IDVC,IDSL, -! & DUMMY8(1),DUMMY8(1),DUMMY8(KMAX+2),1.E5, - - PSREF = 1.E5 - tref = 270.0 - - CALL sigio_modpr(1,1,KMAX,nvcd,idvc,idsl,vcrd,iret, - & ps=PSREF,t=tref,pd=pd1,pm=SLREF) - - SIREF(1)=1.E5 - do k=1,KMAX - SIREF(k+1)=SIREF(k)-pd1(k) - end do - - SIREF = SIREF/1.E5 - SLREF = SLREF/1.E5 - - ALLOCATE ( TV(IX,JX,KMAX), DIV(IX,JX,KMAX), - & VORT(IX,JX,KMAX),U(IX,JX,KMAX), - & V(IX,JX,KMAX),SH(IX,JX,KMAX) ) - - ALLOCATE ( PSIG(IX,JX,KMAX),RH(IX,JX,KMAX), - & APG(IX,JX,KMAX+1) ) - - ALLOCATE ( HT_T(IX,JX,KMAX),HSH_T(IX,JX,KMAX) ) - - ALLOCATE ( TVP(IX,JX,NMAX),TVP_E(IX,JX,NMAX), - & SHP(IX,JX,NMAX),SHP_E(IX,JX,NMAX), - & TP_E(IX,JX,NMAX), TVP_E4(IX,JX,NMAX) ) - - ALLOCATE ( P(NMAX),AP(NMAX) ) - ALLOCATE ( DIVP(IX,JX,NMAX),VORTP(IX,JX,NMAX), - & UP(IX,JX,NMAX), VP(IX,JX,NMAX), - & RHP(IX,JX,NMAX) ) - -c Surface Height and Surface Press -!$omp parallel do -!$omp& private(I,J) - DO J=1,JX - DO I=1,IX - ZS(I,J) = PDPB(I,J,1) ! Full field - PS(I,J) = EXP(PDPB(I,J,2))*1000. ! FULL field - APS(I,J) = ALOG(1.*PS(I,J)) - END DO - END DO - -c DIV, VORT, U, V, T and Specific Humidity at P-Level -!$omp parallel do -!$omp& private(I,J,N) - DO J=1,JX - DO I=1,IX - DO N=1,NMAX - DIVP(I,J,N) = PDPB(I,J,NMAX+4+4*(N-1)) - VORTP(I,J,N) = PDPB(I,J,NMAX+5+4*(N-1)) - UP(I,J,N) = PDPB(I,J,NMAX+6+4*(N-1)) - VP(I,J,N) = PDPB(I,J,NMAX+7+4*(N-1)) - SHP(I,J,N) = PDPB(I,J,NMAX*5+3+N) - SHP_E(I,J,N) = SHP(I,J,N)+PDAT(I,J,NMAX*5+3+N) - TVP(I,J,N) = PDPB(I,J,3+N) - TVP_E(I,J,N) = TVP(I,J,N)+PDAT(I,J,3+N) - TP_E(I,J,N) = TVP_E(I,J,N)/(1.+COEF1*SHP_E(I,J,N)) - END DO - END DO - END DO - -!$omp parallel do -!$omp& private(I,J,K) - DO J=1,JX - DO I=1,IX - DO K=1,KMAX-1 - HSH_T(I,J,K) = HDAT(I,J,KMAX*5+3+K) ! Specific Hum. - HT_T(I,J,K) = HDAT(I,J,3+K) - END DO - END DO - END DO - -c Const. P-Level - DO K=1,KMAX - P(2*K-1) = SIREF(K)*PSFCM - P(2*K) = SLREF(K)*PSFCM - END DO - P(NMAX) = SLREF(KMAX)*0.5*PSFCM - DO N=1,NMAX - AP(N) = ALOG(P(N)) - END DO - -! DO J=1,JX -! DO I=1,IX -! TVD=TVP_E(I,J,1) -! HP(I,J,1)=ZS(I,J)- -! & TP_E(I,J,1)/GAMA*(1.-(PS(I,J)/P(1))**COEF3) -! DO N=2,NMAX -! TVU=TVP_E(I,J,N) -! HP(I,J,N)=HP(I,J,N-1)- -! & COEF2*0.5*(TVD+TVU)*(AP(N)-AP(N-1)) -! TVD=TVU -! END DO -! END DO -! END DO - -c Press at Sigma-Level - - tvp_e4 = tvp_e - CALL sigio_modpr(IX*JX,IX*JX,KMAX,nvcd,idvc,idsl,vcrd,iret, - & ps=PS,t=tvp_e4,pm=PSIG) - -!$omp parallel do -!$omp& private(I,J,K) - DO K=1,KMAX - DO J=1,JX - DO I=1,IX - APG(I,J,K) = ALOG(1.*PSIG(I,J,K)) - END DO - END DO - END DO - - -! DO K=1,KMAX -! N=2*K -! DO J=1,JX -! DO I=1,IX -! H(I,J,K)=HP(I,J,N)+ -! & TP_E(I,J,N)/GAMA*(1.-(PSIG(I,J,K)/P(N))**COEF3) -! END DO -! END DO -! END DO - - DO N=1,NMAX - K=(N-1)/2+1 -c write(6,*)'Press=',N,P(N)/100. -c write(6,*)'Press2=',N,K,P(N),HP(20,20,N),H(20,20,K) - END DO - -c RH at Press level -! DO N=1,NMAX - N=1 -!$omp parallel do -!$omp& private(I,J,DTEMP,ES,SHS) - DO J=1,JX - DO I=1,IX - DTEMP=TP_E(I,J,N)-273.15 - ES=611.2*EXP(17.67*DTEMP/(DTEMP+243.5)) - SHS=0.622*ES/(P(N)-0.378*ES) - RHP(I,J,N)=MIN(MAX(SHP_E(I,J,N)/SHS,0.),1.0) - END DO - END DO -! END DO - -! Interpolate to Sigma Level. -!$omp parallel do -!$omp& private(I,J,K,L,TDRY,DTEMP,ES,SHS,SH_E,W,W1) - DO J=1,JX - DO I=1,IX - CYC_123: DO K=1,KMAX - IF(PSIG(I,J,K).GE.P(1))THEN -! below Press K=1 - DIV(I,J,K)=DIVP(I,J,1) - VORT(I,J,K)=VORTP(I,J,1) - U(I,J,K)=UP(I,J,1) - V(I,J,K)=VP(I,J,1) - RH(I,J,K)=RHP(I,J,1) ! RH at SIGMA K=1 - TDRY=TP_E(I,J,1)-GAMA*(H(I,J,K)-HP(I,J,1)) - DTEMP=TDRY-273.15 - ES=611.2*EXP(17.67*DTEMP/(DTEMP+243.5)) - SHS=0.622*ES/(PSIG(I,J,K)-0.378*ES) - SH_E=RH(I,J,K)*SHS - SH(I,J,K)=SH_E-HSH_T(I,J,K) ! Pert. Part - TV(I,J,K)=TDRY*(1.+COEF1*SH_E)-HT_T(I,J,K) -! write(6,*)'LLL2=',SHP(I,J,1),SHP_E(I,J,K) -! write(6,*)' ',SH(I,J,K),SH_E -! within domain - ELSE IF((PSIG(I,J,K).LT.P(1)).AND. - & (PSIG(I,J,K).GT.P(NMAX)))THEN - DO L=1,NMAX-1 - IF((PSIG(I,J,K).LT.P(L)).AND. - & (PSIG(I,J,K).GE.P(L+1)))THEN - W = (APG(I,J,K)-AP(L))/(AP(L+1)-AP(L)) -c W1=(PSIG(I,J,K)-P(L))/(P(L+1)-P(L)) - DIV(I,J,K) = DIVP(I,J,L)+ - & W*(DIVP(I,J,L+1)-DIVP(I,J,L)) - VORT(I,J,K) = VORTP(I,J,L)+ - & W*(VORTP(I,J,L+1)-VORTP(I,J,L)) - U(I,J,K) = UP(I,J,L)+W*(UP(I,J,L+1)-UP(I,J,L)) - V(I,J,K) = VP(I,J,L)+W*(VP(I,J,L+1)-VP(I,J,L)) - TV(I,J,K) = TVP(I,J,L)+W*(TVP(I,J,L+1)-TVP(I,J,L)) - SH(I,J,K) = SHP(I,J,L)+W*(SHP(I,J,L+1)-SHP(I,J,L)) - CYCLE CYC_123 ! GO TO 123 - END IF - END DO -! 123 CONTINUE -! above top - ELSE IF(PSIG(I,J,K).LE.P(NMAX))THEN - DIV(I,J,K) = DIVP(I,J,NMAX) - VORT(I,J,K) = VORTP(I,J,NMAX) - U(I,J,K) = UP(I,J,NMAX) - V(I,J,K) = VP(I,J,NMAX) - TDRY = TP_E(I,J,NMAX)-GAMA*(H(I,J,K)-HP(I,J,NMAX)) - SH(I,J,K) = SHP(I,J,NMAX) - SH_E = SH(I,J,K)+HSH_T(I,J,K) - TV(I,J,K) = TDRY*(1.+COEF1*SH_E)-HT_T(I,J,K) - ELSE - write(6,*)'SOMETHING IS WRONG' - END IF - - END DO CYC_123 - END DO - END DO - -!!$omp parallel do -!!$omp& private(I,J,K) - DO J=1,JX - DO I=1,IX - HDPB(I,J,1) = PDPB(I,J,1) - HDPB(I,J,2) = PDPB(I,J,2) - HDPB(I,J,3) = PDPB(I,J,3) - DO K=1,KMAX-1 - HDPB(I,J,KMAX+4+4*(K-1)) = DIV(I,J,K) - HDPB(I,J,KMAX+5+4*(K-1)) = VORT(I,J,K) - HDPB(I,J,KMAX+6+4*(K-1)) = U(I,J,K) - HDPB(I,J,KMAX+7+4*(K-1)) = V(I,J,K) - HDPB(I,J,KMAX*5+3+K) = SH(I,J,K) - HDPB(I,J,3+K) = TV(I,J,K) - END DO - END DO - END DO - - DEALLOCATE ( SIREF,SLREF,PD1,tref ) - DEALLOCATE ( TV, DIV, VORT, U, V, SH ) - DEALLOCATE ( PSIG, RH, APG ) - DEALLOCATE ( P, AP ) - DEALLOCATE ( DIVP, VORTP, UP, VP, RHP, SHP ) - DEALLOCATE ( TVP, TVP_E, TP_E, SHP_E, HT_T, HSH_T, TVP_E4) - - END - - SUBROUTINE P2SIG30(IX,JX,KMAX,MTV,MTV3,PDPB,PDAT,HDAT,PSL, - & PSFCM,H,HP,KST,nvcd,idvc,idsl,vcrd) - -c P to SIG conversion -c -c Input: PDPB (perturbation part) -c Input: PDAT (total field), PDPB+PDAT = ENV part -C Ouput: HDAT (the value at the top most level kmax is not changed) -c KST: not used - - use sigio_module - use sigio_r_module - - implicit none - integer ix, jx, kmax, mtv, mtv3, kst - integer * 4 nvcd, idvc, idsl -! integer, PARAMETER :: IX=41, JX=41 - - REAL(4) HDAT(IX,JX,MTV) - REAL PDPB(IX,JX,MTV3),PDAT(IX,JX,MTV3) - REAL ZS(IX,JX),APS(IX,JX),PSL(IX,JX) - REAL H(IX,JX,KMAX),HP(IX,JX,2*KMAX+1) - REAL HDPB1,HDPB2,HDPB3,HDPB4 - - REAL(4) PS(IX,JX) - -c REAL(4) FHOUR,X(160),SI(KMAX+1),SL(KMAX) -! REAL*4 FHOUR,DUMMY(245) -! COMMON /COEF3/FHOUR,DUMMY -! REAL DUMMY8(245) - - REAL, ALLOCATABLE :: TV(:,:,:),DIV(:,:,:),VORT(:,:,:), - & SH(:,:,:) - REAL, ALLOCATABLE :: RH(:,:,:), - & APG(:,:,:) - REAL, ALLOCATABLE :: P(:),AP(:) - REAL, ALLOCATABLE :: DIVP(:,:,:),VORTP(:,:,:), - & RHP(:,:,:) - REAL, ALLOCATABLE :: TVP(:,:,:),TVP_E(:,:,:) - REAL, ALLOCATABLE :: TP_E(:,:,:) - REAL, ALLOCATABLE :: SHP(:,:,:),SHP_E(:,:,:) - REAL, ALLOCATABLE :: HT_T(:,:,:),HSH_T(:,:,:) - - REAL(4), ALLOCATABLE :: PSIG(:,:,:), TVP_E4(:,:,:) - - REAL(4), ALLOCATABLE :: SIREF(:),SLREF(:),PD1(:),tref(:) - - REAL(4) vcrd(KMAX+1,nvcd),PSREF(1) -! - real, parameter :: COEF1=461.5/287.05-1.0 - &, COEF2=287.05/9.8 - &, GAMA=6.5E-3, COEF3=COEF2*GAMA -! - integer kmax1, nmax, i, j, k, l, n, ntrac, iret - real es, shs, w, dtemp, tdry, psfcm, sh_e, w1, tvd, tvu - - KMAX1 = KMAX+1 - NMAX = 2*KMAX+1 - - ALLOCATE ( SIREF(KMAX1),SLREF(KMAX),PD1(KMAX), tref(kmax) ) - -! DUMMY8=DUMMY -! IDVC=DUMMY(220) -! IDSL=DUMMY(219) -! CALL MODPR(1,1,KMAX,IDVC,IDSL, -! & DUMMY8(1),DUMMY8(1),DUMMY8(KMAX+2),1.E5, - - PSREF = 1.E5 - tref = 270.0 - - CALL sigio_modpr(1,1,KMAX,nvcd,idvc,idsl,vcrd,iret, - & ps=PSREF,t=tref,pd=pd1,pm=SLREF) - - SIREF(1)=1.E5 - do k=1,KMAX - SIREF(k+1)=SIREF(k)-pd1(k) - end do - - SIREF = SIREF/1.E5 - SLREF = SLREF/1.E5 - - ALLOCATE ( TV(IX,JX,KMAX), DIV(IX,JX,KMAX), - & VORT(IX,JX,KMAX),SH(IX,JX,KMAX) ) - - ALLOCATE ( PSIG(IX,JX,KMAX),RH(IX,JX,KMAX), - & APG(IX,JX,KMAX+1) ) - - ALLOCATE ( HT_T(IX,JX,KMAX),HSH_T(IX,JX,KMAX) ) - - ALLOCATE ( TVP(IX,JX,NMAX),TVP_E(IX,JX,NMAX), - & SHP(IX,JX,NMAX),SHP_E(IX,JX,NMAX), - & TP_E(IX,JX,NMAX), TVP_E4(IX,JX,NMAX) ) - - ALLOCATE ( P(NMAX),AP(NMAX) ) - ALLOCATE ( DIVP(IX,JX,NMAX),VORTP(IX,JX,NMAX), - & RHP(IX,JX,NMAX) ) - -c Surface Height and Surface Press -!$omp parallel do -!$omp& private(I,J) - DO J=1,JX - DO I=1,IX - ZS(I,J) = PDPB(I,J,1) ! Full field - PS(I,J) = EXP(PDPB(I,J,2))*1000. ! FULL field - APS(I,J) = ALOG(1.*PS(I,J)) - END DO - END DO - -! print*,'test 44444' - -c DIV, VORT, U, V, T and Specific Humidity at P-Level -!$omp parallel do -!$omp& private(I,J,N) - DO J=1,JX - DO I=1,IX - DO N=1,NMAX - DIVP(I,J,N) = PDPB(I,J,NMAX+4+4*(N-1)) - VORTP(I,J,N) = PDPB(I,J,NMAX+5+4*(N-1)) - SHP(I,J,N) = PDPB(I,J,NMAX*5+3+N) - SHP_E(I,J,N) = SHP(I,J,N)+PDAT(I,J,NMAX*5+3+N) - TVP(I,J,N) = PDPB(I,J,3+N) - TVP_E(I,J,N) = TVP(I,J,N)+PDAT(I,J,3+N) - TP_E(I,J,N) = TVP_E(I,J,N)/(1.+COEF1*SHP_E(I,J,N)) - END DO - END DO - END DO - -! print*,'test 44445' - -!$omp parallel do -!$omp& private(I,J,K) - DO J=1,JX - DO I=1,IX - DO K=1,KMAX-1 - HSH_T(I,J,K) = HDAT(I,J,KMAX*3+2+K) ! Specific Hum. - HT_T(I,J,K) = HDAT(I,J,2+K) - END DO - END DO - END DO - -c Const. P-Level - DO K=1,KMAX - P(2*K-1) = SIREF(K)*PSFCM - P(2*K) = SLREF(K)*PSFCM - END DO - P(NMAX) = SLREF(KMAX)*0.5*PSFCM - DO N=1,NMAX - AP(N) = ALOG(P(N)) - END DO - - DO J=1,JX - DO I=1,IX - TVD=TVP_E(I,J,1) - HP(I,J,1)=ZS(I,J)- - & TP_E(I,J,1)/GAMA*(1.-(PS(I,J)/P(1))**COEF3) - DO N=2,NMAX - TVU=TVP_E(I,J,N) - HP(I,J,N)=HP(I,J,N-1)- - & COEF2*0.5*(TVD+TVU)*(AP(N)-AP(N-1)) - TVD=TVU - END DO - END DO - END DO - -! print*,'test 44446' - -c Press at Sigma-Level - - tvp_e4 = tvp_e - CALL sigio_modpr(IX*JX,IX*JX,KMAX,nvcd,idvc,idsl,vcrd,iret, - & ps=PS,t=tvp_e4,pm=PSIG) - -!$omp parallel do -!$omp& private(I,J,K) - DO K=1,KMAX - DO J=1,JX - DO I=1,IX - APG(I,J,K) = ALOG(1.*PSIG(I,J,K)) - END DO - END DO - END DO - - -!!$omp parallel do -!!$omp& private(I,J,K,L) - DO J=1,JX - DO I=1,IX - DO K=1,KMAX - IF(PSIG(I,J,K).GE.P(1))THEN - H(I,J,K)=HP(I,J,1)+ - & TP_E(I,J,1)/GAMA*(1.-(PSIG(I,J,K)/P(1))**COEF3) - ELSE IF((PSIG(I,J,K).LT.P(1)).AND. - & (PSIG(I,J,K).GT.P(NMAX)))THEN - DO L=1,NMAX-1 - IF((PSIG(I,J,K).LT.P(L)).AND. - & (PSIG(I,J,K).GE.P(L+1)))THEN - H(I,J,K)=HP(I,J,L)+ - & TP_E(I,J,L)/GAMA*(1.-(PSIG(I,J,K)/P(L))**COEF3) - END IF - END DO - ELSE IF(PSIG(I,J,K).LE.P(NMAX))THEN - H(I,J,K)=HP(I,J,NMAX)+ - & TP_E(I,J,NMAX)/GAMA*(1.-(PSIG(I,J,K)/P(NMAX))**COEF3) - ELSE - write(6,*)'SOMETHING IS WRONG' - END IF - END DO - END DO - END DO - - DO N=1,NMAX - K=(N-1)/2+1 -c write(6,*)'Press=',N,P(N)/100. -c write(6,*)'Press2=',N,K,P(N),HP(20,20,N),H(20,20,K) - END DO - -c RH at Press level -! DO N=1,NMAX - N=1 -!$omp parallel do -!$omp& private(I,J,DTEMP,ES,SHS) - DO J=1,JX - DO I=1,IX - DTEMP=TP_E(I,J,N)-273.15 - ES=611.2*EXP(17.67*DTEMP/(DTEMP+243.5)) - SHS=0.622*ES/(P(N)-0.378*ES) - RHP(I,J,N)=MIN(MAX(SHP_E(I,J,N)/SHS,0.),1.0) - END DO - END DO -! END DO - -! print*,'test 44447' - -! Interpolate to Sigma Level. -!$omp parallel do -!$omp& private(I,J,K,L,TDRY,DTEMP,ES,SHS,SH_E,W,W1) - DO J=1,JX - DO I=1,IX - CYC_123: DO K=1,KMAX - IF(PSIG(I,J,K).GE.P(1))THEN -! below Press K=1 - DIV(I,J,K)=DIVP(I,J,1) - VORT(I,J,K)=VORTP(I,J,1) - RH(I,J,K)=RHP(I,J,1) ! RH at SIGMA K=1 - TDRY=TP_E(I,J,1)-GAMA*(H(I,J,K)-HP(I,J,1)) - DTEMP=TDRY-273.15 - ES=611.2*EXP(17.67*DTEMP/(DTEMP+243.5)) - SHS=0.622*ES/(PSIG(I,J,K)-0.378*ES) - SH_E=RH(I,J,K)*SHS - SH(I,J,K)=SH_E-HSH_T(I,J,K) ! Pert. Part - TV(I,J,K)=TDRY*(1.+COEF1*SH_E)-HT_T(I,J,K) -! write(6,*)'LLL2=',SHP(I,J,1),SHP_E(I,J,K) -! write(6,*)' ',SH(I,J,K),SH_E -! within domain - ELSE IF((PSIG(I,J,K).LT.P(1)).AND. - & (PSIG(I,J,K).GT.P(NMAX)))THEN - DO L=1,NMAX-1 - IF((PSIG(I,J,K).LT.P(L)).AND. - & (PSIG(I,J,K).GE.P(L+1)))THEN - W = (APG(I,J,K)-AP(L))/(AP(L+1)-AP(L)) -c W1=(PSIG(I,J,K)-P(L))/(P(L+1)-P(L)) - DIV(I,J,K) = DIVP(I,J,L)+ - & W*(DIVP(I,J,L+1)-DIVP(I,J,L)) - VORT(I,J,K) = VORTP(I,J,L)+ - & W*(VORTP(I,J,L+1)-VORTP(I,J,L)) - TV(I,J,K) = TVP(I,J,L)+W*(TVP(I,J,L+1)-TVP(I,J,L)) - SH(I,J,K) = SHP(I,J,L)+W*(SHP(I,J,L+1)-SHP(I,J,L)) - CYCLE CYC_123 ! GO TO 123 - END IF - END DO -! 123 CONTINUE -! above top - ELSE IF(PSIG(I,J,K).LE.P(NMAX))THEN - DIV(I,J,K) = DIVP(I,J,NMAX) - VORT(I,J,K) = VORTP(I,J,NMAX) - TDRY = TP_E(I,J,NMAX)-GAMA*(H(I,J,K)-HP(I,J,NMAX)) - SH(I,J,K) = SHP(I,J,NMAX) - SH_E = SH(I,J,K)+HSH_T(I,J,K) - TV(I,J,K) = TDRY*(1.+COEF1*SH_E)-HT_T(I,J,K) - ELSE - write(6,*)'SOMETHING IS WRONG' - END IF - - END DO CYC_123 - END DO - END DO - -! print*,'test 44448' - -!!$omp parallel do -!!$omp& private(I,J,K,HDPB1,HDPB2,HDPB3,HDPB4) - DO J=1,JX - DO I=1,IX - HDAT(I,J,1) = PDPB(I,J,1) - HDAT(I,J,2) = PDPB(I,J,2) - PSL(I,J) = PDAT(I,J,3)+PDPB(I,J,3) -! HDAT(I,J,3) = HDAT(I,J,3)+PDPB(I,J,3) - DO K=1,KMAX - HDPB1 = HDAT(I,J,KMAX+3+2*(K-1)) + DIV(I,J,K) - HDAT(I,J,KMAX+3+2*(K-1)) = HDPB1 - HDPB2 = HDAT(I,J,KMAX+4+2*(K-1)) + VORT(I,J,K) - HDAT(I,J,KMAX+4+2*(K-1)) = HDPB2 - HDPB3 = HDAT(I,J,KMAX*3+2+K) + SH(I,J,K) - HDAT(I,J,KMAX*3+2+K) = HDPB3 - HDPB4 = HDAT(I,J,2+K) + TV(I,J,K) - HDAT(I,J,2+K) = HDPB4 - END DO - END DO - END DO - -! print*,'test 44449' - - DEALLOCATE ( SIREF,SLREF,PD1,tref ) - DEALLOCATE ( TV, DIV, VORT, SH ) - DEALLOCATE ( PSIG, RH, APG ) - DEALLOCATE ( P, AP ) - DEALLOCATE ( DIVP, VORTP, RHP, SHP ) - DEALLOCATE ( TVP, TVP_E, TP_E, SHP_E, HT_T, HSH_T, TVP_E4) - - END - - - - SUBROUTINE MOVETX1(IGU,JGU,GLON,GLAT,DATG,DDAT) - - PARAMETER (IX=41,JX=41,NSG=54000) - - DIMENSION DATG(IGU,JGU),DDAT(IGU,JGU) - DIMENSION GLAT(IGU,JGU),GLON(IGU,JGU) - DIMENSION ING(NSG),JNG(NSG) - - COMMON /TR/ING,JNG,IB - COMMON /NHC2/MDX,MDY - COMMON /NHC3/AMDX,AMDY - - RDIST2=AMDX*AMDX+AMDY*AMDY - IF(RDIST2.LE.0.02)THEN - DO I = 1,IB - IW = ING(I) - JW = JNG(I) - DATG(IW,JW)=DATG(IW,JW)+DDAT(IW,JW) - END DO - RETURN - END IF - - IWMAX=0 - IWMIN=10000 - JWMAX=0 - JWMIN=10000 - DO I = 1,IB - IW = ING(I) - JW = JNG(I) - IF(IWMAX.LT.IW)IWMAX=IW - IF(IWMIN.GT.IW)IWMIN=IW - IF(JWMAX.LT.JW)JWMAX=JW - IF(JWMIN.GT.JW)JWMIN=JW - END DO - IWMAX2=IWMAX+1 - IWMIN2=IWMIN-1 - JWMAX2=JWMAX+1 - JWMIN2=JWMIN-1 - -! write(6,*)'qliu=',IWMAX2,IWMIN2,JWMAX2,JWMIN2 - -!$omp parallel do -!$omp& private(II,JJ,IW1,JW1,IW,JW,HLA,HLO,HLO1,HLO2,HLA1,HLA2, -!$omp& LX,LY,DXX,DYY,X1,X2,Y1,Y2,DATT) - DO IW1 = IWMIN2,IWMAX2 - CYC_555: DO JW1 = JWMIN2,JWMAX2 - IW=IW1+MDX - JW=JW1+MDY - IF(IW.GT.IGU)IW=IW-IGU - IF(IW.LT.1)IW=IW+IGU - HLA = GLAT(IW,JW) - HLO = GLON(IW,JW) -C - DO II=1,IGU-1 - HLO1 = GLON(II,10)+AMDX - HLO2 = GLON(II+1,10)+AMDX - IF(HLO1.GT.360.)HLO1=HLO1-360. - IF(HLO1.LT.0.)HLO1=HLO1+360. - IF(HLO2.GT.360.)HLO2=HLO2-360. - IF(HLO2.LT.0.)HLO2=HLO2+360. - IF((HLO.GT.HLO1.and.HLO.LE.HLO2).OR. - & (HLO.LE.HLO1.and.HLO.GT.HLO2))THEN - DO JJ=1,JGU-1 - HLA1=GLAT(10,JJ)+AMDY - HLA2=GLAT(10,JJ+1)+AMDY - IF(HLA.LT.HLA1.and.HLA.GE.HLA2)THEN - LX=II - LY=JJ+1 - - DXX = (HLO-HLO1)/(HLO2-HLO1) - IF(HLO1.GT.HLO2)DXX=1.-(HLO-HLO2)/(HLO1-HLO2) - DYY = (HLA-HLA2)/(HLA1-HLA2) -C - X1 = DDAT(LX ,LY-1)*DYY + DDAT(LX ,LY )*(1-DYY) - X2 = DDAT(LX+1,LY-1)*DYY + DDAT(LX+1,LY )*(1-DYY) - Y1 = DDAT(LX+1,LY )*DXX + DDAT(LX ,LY )*(1-DXX) - Y2 = DDAT(LX+1,LY-1)*DXX + DDAT(LX ,LY-1)*(1-DXX) - DATT=(X1*(1.-DXX)+X2*DXX + Y1*(1.-DYY)+Y2*DYY)/2. - DATG(IW,JW)=DATG(IW,JW)+DATT -c write(6,*)'tttest=',DATT,DATG(IW,JW),LX,LY - CYCLE CYC_555 ! GO TO 555 - END IF - END DO - - END IF - END DO -! 555 CONTINUE - - ENDDO CYC_555 - ENDDO - END - - - SUBROUTINE MOVETX(IGU,JGU,I30S,J30S,GLON,GLAT,DATG,DDAT) - - PARAMETER (IX=41,JX=41,NSG=54000) - - DIMENSION DATG(IGU,JGU),DDAT(IGU,JGU) - DIMENSION GLAT(IGU,JGU),GLON(IGU,JGU) - DIMENSION ING(NSG),JNG(NSG) - DIMENSION HLON(300),HLAT(300) - DIMENSION DTT(300,300),DTT2(300,300) -c DIMENSION TEST(IGU,JGU) - - COMMON /TR/ING,JNG,IB - COMMON /NHC2/MDX,MDY - COMMON /NHC3/AMDX,AMDY - - - RDIST2=AMDX*AMDX+AMDY*AMDY - IF(RDIST2.LE.0.02)THEN - DO I = 1,IB - IW = ING(I)-I30S+1 - JW = JNG(I)-J30S+1 - DATG(IW,JW)=DATG(IW,JW)+DDAT(IW,JW) - END DO - RETURN - END IF - -c TEST=DATG -c CALL MOVETX1(TEST,DDAT) - - IWMAX=0 - IWMIN=10000 - JWMAX=0 - JWMIN=10000 - DO I = 1,IB - IW = ING(I)-I30S+1 - JW = JNG(I)-J30S+1 - IF(IWMAX.LT.IW)IWMAX=IW - IF(IWMIN.GT.IW)IWMIN=IW - IF(JWMAX.LT.JW)JWMAX=JW - IF(JWMIN.GT.JW)JWMIN=JW - END DO - IWMAX1=IWMAX+1 - IWMIN1=IWMIN-1 - JWMAX1=JWMAX+1 - JWMIN1=JWMIN-1 - -c write(6,*)'qliu=',IWMAX1,IWMIN1,JWMAX1,JWMIN1 - - IIM=IWMAX-IWMIN+5 - JJM=JWMAX-JWMIN+5 - DO II=1,IIM - II1=II+IWMIN-3 - IF(II1.GT.IGU)II1=II1-IGU - IF(II1.LT.1)II1=II1+IGU - HLON(II) = GLON(II1,10)+AMDX - DO JJ=1,JJM - JJ1=JJ+JWMIN-3 - HLAT(JJ)=90.-(GLAT(10,JJ1)+AMDY) - DTT(II,JJ)=DDAT(II1,JJ1) - END DO - END DO - - CALL splie2(HLON,HLAT,DTT,IIM,JJM,DTT2) - -!$omp parallel do -!$omp& private(IW1,JW1,IW,JW,HLA,HLO,DATT) - DO IW1 = IWMIN1,IWMAX1 - DO JW1 = JWMIN1,JWMAX1 - IW=IW1+MDX - JW=JW1+MDY - IF(IW.GT.IGU)IW=IW-IGU - IF(IW.LT.1)IW=IW+IGU - HLA = 90.-GLAT(IW,JW) - HLO = GLON(IW,JW) -C - CALL splin2(HLON,HLAT,DTT,DTT2,IIM,JJM,HLO,HLA,DATT) - DATG(IW,JW)=DATG(IW,JW)+DATT - -c DIFF=TEST(IW,JW)-DATG(IW,JW) -c DIFF1=ABS(DIFF/(ABS(TEST(IW,JW))+1.E-15)) -c IF(DIFF1.GT.0.2)THEN -c write(6,*)'QQQQ=',DIFF,TEST(IW,JW),DATG(IW,JW) -c END IF - ENDDO - ENDDO - END - - - SUBROUTINE splie2(x1a,x2a,ya,m,n,y2a) - INTEGER m,n,NN - PARAMETER (NN=300) - REAL x1a(NN),x2a(NN),y2a(NN,NN),ya(NN,NN) - INTEGER j,k - REAL y2tmp(NN),ytmp(NN) -!$omp parallel do -!$omp& private(j,k,ytmp,y2tmp) - do j=1,m - do k=1,n - ytmp(k)=ya(j,k) - end do - call spline(x2a,ytmp,n,1.e30,1.e30,y2tmp) - do k=1,n - y2a(j,k)=y2tmp(k) - end do - end do - return - END - - SUBROUTINE splin2(x1a,x2a,ya,y2a,m,n,x1,x2,y) - INTEGER m,n,NN - PARAMETER (NN=300) - REAL x1,x2,y,x1a(NN),x2a(NN) - REAL y2a(NN,NN),ya(NN,NN) - INTEGER j,k - REAL y2tmp(NN),ytmp(NN),yytmp(NN) - do j=1,m - do k=1,n - ytmp(k)=ya(j,k) - y2tmp(k)=y2a(j,k) - end do - call splint(x2a,ytmp,y2tmp,n,x2,yytmp(j)) - end do - call spline(x1a,yytmp,m,1.e30,1.e30,y2tmp) - call splint(x1a,yytmp,y2tmp,m,x1,y) - return - END - - - SUBROUTINE splint(xa,ya,y2a,n,x,y) - INTEGER n,NN - PARAMETER (NN=300) - REAL x,y,xa(NN),y2a(NN),ya(NN) - INTEGER k,khi,klo - REAL a,b,h - klo=1 - khi=n - 1 if((khi-klo).gt.1)then - k=(khi+klo)/2 - if(xa(k).gt.x)then - khi=k - else - klo=k - end if - go to 1 - end if - h=xa(khi)-xa(klo) - if(h.eq.0.)pause 'bad xa input in splint' - a=(xa(khi)-x)/h - b=(x-xa(klo))/h - y=a*ya(klo)+b*ya(khi)+ - * ((a**3-a)*y2a(klo)+(b**3-b)*y2a(khi))*(h**2)/6. - return - END - - SUBROUTINE spline(x,y,n,yp1,ypn,y2) - INTEGER n,NN,NMAX - PARAMETER (NN=300,NMAX=2000) - REAL yp1,ypn,x(NN),y(NN),y2(NN) - INTEGER i,k - REAL p,qn,sig,un,u(NMAX) - if(yp1.gt..99e30)then - y2(1)=0. - u(1)=0. - else - y2(1)=-0.5 - u(1)=(3./(x(2)-x(1)))*((y(2)-y(1))/(x(2)-x(1))-yp1) - end if - do i=2,n-1 - sig=(x(i)-x(i-1))/(x(i+1)-x(i-1)) - p=sig*y2(i-1)+2. - y2(i)=(sig-1.)/p - u(i)=(6.*((y(i+1)-y(i))/(x(i+1)-x(i))-(y(i)-y(i-1)) - * /(x(i)-x(i-1)))/(x(i+1)-x(i-1))-sig*u(i-1))/p - end do - if(ypn.gt..99e30)then - qn=0. - un=0. - else - qn=0.5 - un=(3./(x(n)-x(n-1)))*(ypn-(y(n)-y(n-1))/(x(n)-x(n-1))) - end if - y2(n)=(un-qn*u(n-1))/(qn*y2(n-1)+1.) - do k=n-1,1,-1 - y2(k)=y2(k)*y2(k+1)+u(k) - end do - return - END - -C - SUBROUTINE FIND_NEWCT1(UD,VD) - PARAMETER (IR=15,IT=24,IX=41,JX=41) - PARAMETER (ID=41,JD=41,DTX=0.2,DTY=0.2) ! Search x-Domain (ID-1)*DTX - DIMENSION TNMX(ID,JD),UD(IX,JX),VD(IX,JX) - DIMENSION WTM(IR),R0(IT) - COMMON /POSIT/CLON_NEW,CLAT_NEW,SLON,SLAT,CLON,CLAT,RAD - - COMMON /vect/R0,XVECT(IT),YVECT(IT) -c COMMON /CT/SLON,SLAT,CLON,CLAT,RAD -c COMMON /GA/CLON_NEW,CLAT_NEW,R0 -C - PI=ASIN(1.)*2. - RAD=PI/180. -C - XLAT = CLAT-(JD-1)*DTY/2. - XLON = CLON-(ID-1)*DTX/2. -c write(6,*)'STARTING LAT, LON AT FIND NEW CENTER ',XLAT,XLON -C - DO I=1,ID - DO J=1,JD - TNMX(I,J) = 0. - BLON = XLON + (I-1)*DTX - BLAT = XLAT + (J-1)*DTY -C -C.. CALCULATE TANGENTIAL WIND EVERY 1 deg INTERVAL -C.. 10*10 deg AROUND 1ST 1ST GUESS VORTEX CENTER -C - DO 10 JL=1,IR - WTS= 0. - DO 20 IL=1,IT - DR = JL - DD = (IL-1)*15*RAD - DLON = DR*COS(DD) - DLAT = DR*SIN(DD) - TLON = BLON + DLON - TLAT = BLAT + DLAT -C.. INTERPOLATION U, V AT TLON,TLAT AND CLACULATE TANGENTIAL WIND - IDX = IFIX(TLON) - SLON + 1 - IDY = IFIX(TLAT) - SLAT + 1 - DXX = TLON - IFIX(TLON) - DYY = TLAT - IFIX(TLAT) -C - X1 = UD(IDX ,IDY+1)*DYY + UD(IDX ,IDY)*(1-DYY) - X2 = UD(IDX+1,IDY+1)*DYY + UD(IDX+1,IDY)*(1-DYY) - Y1 = UD(IDX+1,IDY )*DXX + UD(IDX,IDY )*(1-DXX) - Y2 = UD(IDX+1,IDY+1)*DXX + UD(IDX,IDY+1)*(1-DXX) - UT = (X1*(1-DXX)+X2*DXX + Y1*(1-DYY)+Y2*DYY)/2. - IF(IL.EQ.0.OR.IL.EQ.13) UT = Y1 - IF(IL.EQ.7.OR.IL.EQ.19) UT = X1 -C - X1 = VD(IDX ,IDY+1)*DYY + VD(IDX ,IDY)*(1-DYY) - X2 = VD(IDX+1,IDY+1)*DYY + VD(IDX+1,IDY)*(1-DYY) - Y1 = VD(IDX+1,IDY )*DXX + VD(IDX,IDY )*(1-DXX) - Y2 = VD(IDX+1,IDY+1)*DXX + VD(IDX,IDY+1)*(1-DXX) - VT = (X1*(1-DXX)+X2*DXX + Y1*(1-DYY)+Y2*DYY)/2. - IF(IL.EQ.0.OR.IL.EQ.13) VT = Y1 - IF(IL.EQ.7.OR.IL.EQ.19) VT = X1 -C.. TANGENTIAL WIND - WT = -SIN(DD)*UT + COS(DD)*VT - WTS = WTS+WT -20 CONTINUE - WTM(JL) = WTS/24. -10 CONTINUE -C -C Southern Hemisphere - IF(CLAT_NEW.LT.0)THEN - DO JL=1,IR - WTM(JL)=-WTM(JL) - END DO - END IF -C EnD SH - - TX = -10000000. - DO KL = 1,IR - IF(WTM(KL).GE.TX) THEN - TX = WTM(KL) - ENDIF - ENDDO -C - TNMX(I,J) = TX - ENDDO - ENDDO - - -C.. FIND NEW CENTER - TTX = -1000000. - DO I=1,ID - DO J=1,JD - IF(TNMX(I,J).GE.TTX) THEN - TTX = TNMX(I,J) - NIC = I - NJC = J - ENDIF - ENDDO - ENDDO -C - CLAT_NEW = XLAT + (NJC-1)*DTY - CLON_NEW = XLON + (NIC-1)*DTX -C - write(6,*)'NEW CENTER, I, J IS ',NIC,NJC - write(6,*)'NEW CENTER, LAT,LON IS ',CLAT_NEW,CLON_NEW - write(6,*)'MAX TAN. WIND AT NEW CENTER IS ',TTX -C - RETURN - END - diff --git a/sorc/relocate_mv_nvortex.fd/sptranf.f b/sorc/relocate_mv_nvortex.fd/sptranf.f deleted file mode 100755 index 211808d5a4..0000000000 --- a/sorc/relocate_mv_nvortex.fd/sptranf.f +++ /dev/null @@ -1,170 +0,0 @@ -C----------------------------------------------------------------------- - SUBROUTINE SPTRANF(IROMB,MAXWV,IDRT,IMAX,JMAX,KMAX, - & IP,IS,JN,JS,KW,KG,JB,JE,JC, - & WAVE,GRIDN,GRIDS,IDIR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: SPTRAN PERFORM A SCALAR SPHERICAL TRANSFORM -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 96-02-29 -C -C ABSTRACT: THIS SUBPROGRAM PERFORMS A SPHERICAL TRANSFORM -C BETWEEN SPECTRAL COEFFICIENTS OF SCALAR QUANTITIES -C AND FIELDS ON A GLOBAL CYLINDRICAL GRID. -C THE WAVE-SPACE CAN BE EITHER TRIANGULAR OR RHOMBOIDAL. -C THE GRID-SPACE CAN BE EITHER AN EQUALLY-SPACED GRID -C (WITH OR WITHOUT POLE POINTS) OR A GAUSSIAN GRID. -C THE WAVE AND GRID FIELDS MAY HAVE GENERAL INDEXING, -C BUT EACH WAVE FIELD IS IN SEQUENTIAL 'IBM ORDER', -C I.E. WITH ZONAL WAVENUMBER AS THE SLOWER INDEX. -C TRANSFORMS ARE DONE IN LATITUDE PAIRS FOR EFFICIENCY; -C THUS GRID ARRAYS FOR EACH HEMISPHERE MUST BE PASSED. -C IF SO REQUESTED, JUST A SUBSET OF THE LATITUDE PAIRS -C MAY BE TRANSFORMED IN EACH INVOCATION OF THE SUBPROGRAM. -C THE TRANSFORMS ARE ALL MULTIPROCESSED OVER LATITUDE EXCEPT -C THE TRANSFORM FROM FOURIER TO SPECTRAL IS MULTIPROCESSED -C OVER ZONAL WAVENUMBER TO ENSURE REPRODUCIBILITY. -C TRANSFORM SEVERAL FIELDS AT A TIME TO IMPROVE VECTORIZATION. -C SUBPROGRAM CAN BE CALLED FROM A MULTIPROCESSING ENVIRONMENT. -C -C PROGRAM HISTORY LOG: -C 96-02-29 IREDELL -C 1998-12-15 IREDELL GENERIC FFT USED -C OPENMP DIRECTIVES INSERTED -C -C USAGE: CALL SPTRANF(IROMB,MAXWV,IDRT,IMAX,JMAX,KMAX, -C & IP,IS,JN,JS,KW,KG,JB,JE,JC, -C & WAVE,GRIDN,GRIDS,IDIR) -C INPUT ARGUMENTS: -C IROMB - INTEGER SPECTRAL DOMAIN SHAPE -C (0 FOR TRIANGULAR, 1 FOR RHOMBOIDAL) -C MAXWV - INTEGER SPECTRAL TRUNCATION -C IDRT - INTEGER GRID IDENTIFIER -C (IDRT=4 FOR GAUSSIAN GRID, -C IDRT=0 FOR EQUALLY-SPACED GRID INCLUDING POLES, -C IDRT=256 FOR EQUALLY-SPACED GRID EXCLUDING POLES) -C IMAX - INTEGER EVEN NUMBER OF LONGITUDES. -C JMAX - INTEGER NUMBER OF LATITUDES. -C KMAX - INTEGER NUMBER OF FIELDS TO TRANSFORM. -C IP - INTEGER LONGITUDE INDEX FOR THE PRIME MERIDIAN -C IS - INTEGER SKIP NUMBER BETWEEN LONGITUDES -C JN - INTEGER SKIP NUMBER BETWEEN N.H. LATITUDES FROM NORTH -C JS - INTEGER SKIP NUMBER BETWEEN S.H. LATITUDES FROM SOUTH -C KW - INTEGER SKIP NUMBER BETWEEN WAVE FIELDS -C KG - INTEGER SKIP NUMBER BETWEEN GRID FIELDS -C JB - INTEGER LATITUDE INDEX (FROM POLE) TO BEGIN TRANSFORM -C JE - INTEGER LATITUDE INDEX (FROM POLE) TO END TRANSFORM -C JC - INTEGER NUMBER OF CPUS OVER WHICH TO MULTIPROCESS -C WAVE - REAL (*) WAVE FIELDS IF IDIR>0 -C GRIDN - REAL (*) N.H. GRID FIELDS (STARTING AT JB) IF IDIR<0 -C GRIDS - REAL (*) S.H. GRID FIELDS (STARTING AT JB) IF IDIR<0 -C IDIR - INTEGER TRANSFORM FLAG -C (IDIR>0 FOR WAVE TO GRID, IDIR<0 FOR GRID TO WAVE) -C OUTPUT ARGUMENTS: -C WAVE - REAL (*) WAVE FIELDS IF IDIR<0 -C GRIDN - REAL (*) N.H. GRID FIELDS (STARTING AT JB) IF IDIR>0 -C GRIDS - REAL (*) S.H. GRID FIELDS (STARTING AT JB) IF IDIR>0 -C -C SUBPROGRAMS CALLED: -C SPTRANF0 SPTRANF SPECTRAL INITIALIZATION -C SPTRANF1 SPTRANF SPECTRAL TRANSFORM -C -C REMARKS: MINIMUM GRID DIMENSIONS FOR UNALIASED TRANSFORMS TO SPECTRAL: -C DIMENSION LINEAR QUADRATIC -C ----------------------- --------- ------------- -C IMAX 2*MAXWV+2 3*MAXWV/2*2+2 -C JMAX (IDRT=4,IROMB=0) 1*MAXWV+1 3*MAXWV/2+1 -C JMAX (IDRT=4,IROMB=1) 2*MAXWV+1 5*MAXWV/2+1 -C JMAX (IDRT=0,IROMB=0) 2*MAXWV+3 3*MAXWV/2*2+3 -C JMAX (IDRT=0,IROMB=1) 4*MAXWV+3 5*MAXWV/2*2+3 -C JMAX (IDRT=256,IROMB=0) 2*MAXWV+1 3*MAXWV/2*2+1 -C JMAX (IDRT=256,IROMB=1) 4*MAXWV+1 5*MAXWV/2*2+1 -C ----------------------- --------- ------------- -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C -C$$$ - REAL WAVE(*),GRIDN(*),GRIDS(*) - REAL EPS((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EPSTOP(MAXWV+1) - REAL ENN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2) - REAL ELONN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2) - REAL EON((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EONTOP(MAXWV+1) - REAL(8) AFFT(2*(50000+4*IMAX)) - REAL CLAT(JB:JE),SLAT(JB:JE),WLAT(JB:JE) - REAL PLN((MAXWV+1)*((IROMB+1)*MAXWV+2)/2,JB:JE) - REAL PLNTOP(MAXWV+1,JB:JE) - REAL WTOP(2*(MAXWV+1)) - REAL G(IMAX,2) -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MP=0 - - CALL SPTRANF0(IROMB,MAXWV,IDRT,IMAX,JMAX,JB,JE, - & EPS,EPSTOP,ENN1,ELONN1,EON,EONTOP, - & AFFT,CLAT,SLAT,WLAT,PLN,PLNTOP) - -!$OMP PARALLEL DO PRIVATE(KWS,WTOP,G,IJKN,IJKS),FIRSTPRIVATE(AFFT) - - DO K=1,KMAX - -C TRANSFORM WAVE TO GRID -C ---------------------- - IF(IDIR.GT.0) THEN - KWS=(K-1)*KW - WTOP=0 - DO J=JB,JE - CALL SPTRANF1(IROMB,MAXWV,IDRT,IMAX,JMAX,J,J, - & EPS,EPSTOP,ENN1,ELONN1,EON,EONTOP, - & AFFT,CLAT(J),SLAT(J),WLAT(J), - & PLN(1,J),PLNTOP(1,J),MP, - & WAVE(KWS+1),WTOP,G,IDIR) - IF(IP.EQ.1.AND.IS.EQ.1) THEN - DO I=1,IMAX - IJKN=I+(J-JB)*JN+(K-1)*KG - IJKS=I+(J-JB)*JS+(K-1)*KG - GRIDN(IJKN)=G(I,1) - GRIDS(IJKS)=G(I,2) - ENDDO - ELSE - DO I=1,IMAX - IJKN=MOD(I+IP-2,IMAX)*IS+(J-JB)*JN+(K-1)*KG+1 - IJKS=MOD(I+IP-2,IMAX)*IS+(J-JB)*JS+(K-1)*KG+1 - GRIDN(IJKN)=G(I,1) - GRIDS(IJKS)=G(I,2) - ENDDO - ENDIF - ENDDO - -C TRANSFORM GRID TO WAVE -C ---------------------- - - ELSE - KWS=(K-1)*KW - WTOP=0 - DO J=JB,JE - IF(WLAT(J).GT.0.) THEN - IF(IP.EQ.1.AND.IS.EQ.1) THEN - DO I=1,IMAX - IJKN=I+(J-JB)*JN+(K-1)*KG - IJKS=I+(J-JB)*JS+(K-1)*KG - G(I,1)=GRIDN(IJKN) - G(I,2)=GRIDS(IJKS) - ENDDO - ELSE - DO I=1,IMAX - IJKN=MOD(I+IP-2,IMAX)*IS+(J-JB)*JN+(K-1)*KG+1 - IJKS=MOD(I+IP-2,IMAX)*IS+(J-JB)*JS+(K-1)*KG+1 - G(I,1)=GRIDN(IJKN) - G(I,2)=GRIDS(IJKS) - ENDDO - ENDIF - CALL SPTRANF1(IROMB,MAXWV,IDRT,IMAX,JMAX,J,J, - & EPS,EPSTOP,ENN1,ELONN1,EON,EONTOP, - & AFFT,CLAT(J),SLAT(J),WLAT(J), - & PLN(1,J),PLNTOP(1,J),MP, - & WAVE(KWS+1),WTOP,G,IDIR) - ENDIF - ENDDO - ENDIF - ENDDO - END diff --git a/sorc/relocate_mv_nvortex.fd/sptranfv.f b/sorc/relocate_mv_nvortex.fd/sptranfv.f deleted file mode 100755 index bf7fe6fbe1..0000000000 --- a/sorc/relocate_mv_nvortex.fd/sptranfv.f +++ /dev/null @@ -1,211 +0,0 @@ -C----------------------------------------------------------------------- - SUBROUTINE SPTRANFV(IROMB,MAXWV,IDRT,IMAX,JMAX,KMAX, - & IP,IS,JN,JS,KW,KG,JB,JE,JC, - & WAVED,WAVEZ,GRIDUN,GRIDUS,GRIDVN,GRIDVS,IDIR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: SPTRANFV PERFORM A VECTOR SPHERICAL TRANSFORM -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 96-02-29 -C -C ABSTRACT: THIS SUBPROGRAM PERFORMS A SPHERICAL TRANSFORM -C BETWEEN SPECTRAL COEFFICIENTS OF DIVERGENCES AND CURLS -C AND VECTOR FIELDS ON A GLOBAL CYLINDRICAL GRID. -C THE WAVE-SPACE CAN BE EITHER TRIANGULAR OR RHOMBOIDAL. -C THE GRID-SPACE CAN BE EITHER AN EQUALLY-SPACED GRID -C (WITH OR WITHOUT POLE POINTS) OR A GAUSSIAN GRID. -C THE WAVE AND GRID FIELDS MAY HAVE GENERAL INDEXING, -C BUT EACH WAVE FIELD IS IN SEQUENTIAL 'IBM ORDER', -C I.E. WITH ZONAL WAVENUMBER AS THE SLOWER INDEX. -C TRANSFORMS ARE DONE IN LATITUDE PAIRS FOR EFFICIENCY; -C THUS GRID ARRAYS FOR EACH HEMISPHERE MUST BE PASSED. -C IF SO REQUESTED, JUST A SUBSET OF THE LATITUDE PAIRS -C MAY BE TRANSFORMED IN EACH INVOCATION OF THE SUBPROGRAM. -C THE TRANSFORMS ARE ALL MULTIPROCESSED OVER LATITUDE EXCEPT -C THE TRANSFORM FROM FOURIER TO SPECTRAL IS MULTIPROCESSED -C OVER ZONAL WAVENUMBER TO ENSURE REPRODUCIBILITY. -C TRANSFORM SEVERAL FIELDS AT A TIME TO IMPROVE VECTORIZATION. -C SUBPROGRAM CAN BE CALLED FROM A MULTIPROCESSING ENVIRONMENT. -C -C PROGRAM HISTORY LOG: -C 96-02-29 IREDELL -C 1998-12-15 IREDELL GENERIC FFT USED -C OPENMP DIRECTIVES INSERTED -C -C USAGE: CALL SPTRANFV(IROMB,MAXWV,IDRT,IMAX,JMAX,KMAX, -C & IP,IS,JN,JS,KW,KG,JB,JE,JC, -C & WAVED,WAVEZ,GRIDUN,GRIDUS,GRIDVN,GRIDVS,IDIR) -C INPUT ARGUMENTS: -C IROMB - INTEGER SPECTRAL DOMAIN SHAPE -C (0 FOR TRIANGULAR, 1 FOR RHOMBOIDAL) -C MAXWV - INTEGER SPECTRAL TRUNCATION -C IDRT - INTEGER GRID IDENTIFIER -C (IDRT=4 FOR GAUSSIAN GRID, -C IDRT=0 FOR EQUALLY-SPACED GRID INCLUDING POLES, -C IDRT=256 FOR EQUALLY-SPACED GRID EXCLUDING POLES) -C IMAX - INTEGER EVEN NUMBER OF LONGITUDES. -C JMAX - INTEGER NUMBER OF LATITUDES. -C KMAX - INTEGER NUMBER OF FIELDS TO TRANSFORM. -C IP - INTEGER LONGITUDE INDEX FOR THE PRIME MERIDIAN -C IS - INTEGER SKIP NUMBER BETWEEN LONGITUDES -C JN - INTEGER SKIP NUMBER BETWEEN N.H. LATITUDES FROM NORTH -C JS - INTEGER SKIP NUMBER BETWEEN S.H. LATITUDES FROM SOUTH -C KW - INTEGER SKIP NUMBER BETWEEN WAVE FIELDS -C KG - INTEGER SKIP NUMBER BETWEEN GRID FIELDS -C JB - INTEGER LATITUDE INDEX (FROM POLE) TO BEGIN TRANSFORM -C JE - INTEGER LATITUDE INDEX (FROM POLE) TO END TRANSFORM -C JC - INTEGER NUMBER OF CPUS OVER WHICH TO MULTIPROCESS -C WAVED - REAL (*) WAVE DIVERGENCE FIELDS IF IDIR>0 -C WAVEZ - REAL (*) WAVE VORTICITY FIELDS IF IDIR>0 -C GRIDUN - REAL (*) N.H. GRID U-WINDS (STARTING AT JB) IF IDIR<0 -C GRIDUS - REAL (*) S.H. GRID U-WINDS (STARTING AT JB) IF IDIR<0 -C GRIDVN - REAL (*) N.H. GRID V-WINDS (STARTING AT JB) IF IDIR<0 -C GRIDVS - REAL (*) S.H. GRID V-WINDS (STARTING AT JB) IF IDIR<0 -C IDIR - INTEGER TRANSFORM FLAG -C (IDIR>0 FOR WAVE TO GRID, IDIR<0 FOR GRID TO WAVE) -C OUTPUT ARGUMENTS: -C WAVED - REAL (*) WAVE DIVERGENCE FIELDS IF IDIR<0 -C [WAVED=(D(GRIDU)/DLAM+D(CLAT*GRIDV)/DPHI)/(CLAT*RERTH)] -C WAVEZ - REAL (*) WAVE VORTICITY FIELDS IF IDIR<0 -C [WAVEZ=(D(GRIDV)/DLAM-D(CLAT*GRIDU)/DPHI)/(CLAT*RERTH)] -C GRIDUN - REAL (*) N.H. GRID U-WINDS (STARTING AT JB) IF IDIR>0 -C GRIDUS - REAL (*) S.H. GRID U-WINDS (STARTING AT JB) IF IDIR>0 -C GRIDVN - REAL (*) N.H. GRID V-WINDS (STARTING AT JB) IF IDIR>0 -C GRIDVS - REAL (*) S.H. GRID V-WINDS (STARTING AT JB) IF IDIR>0 -C -C SUBPROGRAMS CALLED: -C SPTRANF0 SPTRANF SPECTRAL INITIALIZATION -C SPTRANF1 SPTRANF SPECTRAL TRANSFORM -C SPDZ2UV COMPUTE WINDS FROM DIVERGENCE AND VORTICITY -C SPUV2DZ COMPUTE DIVERGENCE AND VORTICITY FROM WINDS -C -C REMARKS: MINIMUM GRID DIMENSIONS FOR UNALIASED TRANSFORMS TO SPECTRAL: -C DIMENSION LINEAR QUADRATIC -C ----------------------- --------- ------------- -C IMAX 2*MAXWV+2 3*MAXWV/2*2+2 -C JMAX (IDRT=4,IROMB=0) 1*MAXWV+1 3*MAXWV/2+1 -C JMAX (IDRT=4,IROMB=1) 2*MAXWV+1 5*MAXWV/2+1 -C JMAX (IDRT=0,IROMB=0) 2*MAXWV+3 3*MAXWV/2*2+3 -C JMAX (IDRT=0,IROMB=1) 4*MAXWV+3 5*MAXWV/2*2+3 -C JMAX (IDRT=256,IROMB=0) 2*MAXWV+1 3*MAXWV/2*2+1 -C JMAX (IDRT=256,IROMB=1) 4*MAXWV+1 5*MAXWV/2*2+1 -C ----------------------- --------- ------------- -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C -C$$$ - REAL WAVED(*),WAVEZ(*),GRIDUN(*),GRIDUS(*),GRIDVN(*),GRIDVS(*) - REAL EPS((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EPSTOP(MAXWV+1) - REAL ENN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2) - REAL ELONN1((MAXWV+1)*((IROMB+1)*MAXWV+2)/2) - REAL EON((MAXWV+1)*((IROMB+1)*MAXWV+2)/2),EONTOP(MAXWV+1) - REAL(8) AFFT(2*(50000+4*IMAX)) - REAL CLAT(JB:JE),SLAT(JB:JE),WLAT(JB:JE) - REAL PLN((MAXWV+1)*((IROMB+1)*MAXWV+2)/2,JB:JE) - REAL PLNTOP(MAXWV+1,JB:JE) - INTEGER MP(2) - REAL W((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2,2) - REAL WTOP(2*(MAXWV+1),2) - REAL G(IMAX,2,2) - REAL WINC((MAXWV+1)*((IROMB+1)*MAXWV+2)/2*2,2) -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C SET PARAMETERS - MX=(MAXWV+1)*((IROMB+1)*MAXWV+2)/2 - MP=1 - CALL SPTRANF0(IROMB,MAXWV,IDRT,IMAX,JMAX,JB,JE, - & EPS,EPSTOP,ENN1,ELONN1,EON,EONTOP, - & AFFT,CLAT,SLAT,WLAT,PLN,PLNTOP) -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C TRANSFORM WAVE TO GRID - IF(IDIR.GT.0) THEN -!$OMP PARALLEL DO PRIVATE(KWS,W,WTOP,G,IJKN,IJKS), -!$OMP+firstprivate(afft) - DO K=1,KMAX - KWS=(K-1)*KW -! write(6,*) ' k=',k,' kws=',kws - CALL SPDZ2UV(IROMB,MAXWV,ENN1,ELONN1,EON,EONTOP, - & WAVED(KWS+1),WAVEZ(KWS+1), - & W(1,1),W(1,2),WTOP(1,1),WTOP(1,2)) - DO J=JB,JE - CALL SPTRANF1(IROMB,MAXWV,IDRT,IMAX,JMAX,J,J, - & EPS,EPSTOP,ENN1,ELONN1,EON,EONTOP, - & AFFT,CLAT(J),SLAT(J),WLAT(J), - & PLN(1,J),PLNTOP(1,J),MP, - & W(1,1),WTOP(1,1),G(1,1,1),IDIR) - CALL SPTRANF1(IROMB,MAXWV,IDRT,IMAX,JMAX,J,J, - & EPS,EPSTOP,ENN1,ELONN1,EON,EONTOP, - & AFFT,CLAT(J),SLAT(J),WLAT(J), - & PLN(1,J),PLNTOP(1,J),MP, - & W(1,2),WTOP(1,2),G(1,1,2),IDIR) - IF(IP.EQ.1.AND.IS.EQ.1) THEN - DO I=1,IMAX - IJKN=I+(J-JB)*JN+(K-1)*KG - IJKS=I+(J-JB)*JS+(K-1)*KG - GRIDUN(IJKN)=G(I,1,1) - GRIDUS(IJKS)=G(I,2,1) - GRIDVN(IJKN)=G(I,1,2) - GRIDVS(IJKS)=G(I,2,2) - ENDDO - ELSE - DO I=1,IMAX - IJKN=MOD(I+IP-2,IMAX)*IS+(J-JB)*JN+(K-1)*KG+1 - IJKS=MOD(I+IP-2,IMAX)*IS+(J-JB)*JS+(K-1)*KG+1 - GRIDUN(IJKN)=G(I,1,1) - GRIDUS(IJKS)=G(I,2,1) - GRIDVN(IJKN)=G(I,1,2) - GRIDVS(IJKS)=G(I,2,2) - ENDDO - ENDIF - ENDDO - ENDDO -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C TRANSFORM GRID TO WAVE - ELSE -!$OMP PARALLEL DO PRIVATE(KWS,W,WTOP,G,IJKN,IJKS,WINC), -!$OMP+firstprivate(afft) - DO K=1,KMAX - KWS=(K-1)*KW - W=0 - WTOP=0 - DO J=JB,JE - IF(WLAT(J).GT.0.) THEN - IF(IP.EQ.1.AND.IS.EQ.1) THEN - DO I=1,IMAX - IJKN=I+(J-JB)*JN+(K-1)*KG - IJKS=I+(J-JB)*JS+(K-1)*KG - G(I,1,1)=GRIDUN(IJKN)/CLAT(J)**2 - G(I,2,1)=GRIDUS(IJKS)/CLAT(J)**2 - G(I,1,2)=GRIDVN(IJKN)/CLAT(J)**2 - G(I,2,2)=GRIDVS(IJKS)/CLAT(J)**2 - ENDDO - ELSE - DO I=1,IMAX - IJKN=MOD(I+IP-2,IMAX)*IS+(J-JB)*JN+(K-1)*KG+1 - IJKS=MOD(I+IP-2,IMAX)*IS+(J-JB)*JS+(K-1)*KG+1 - G(I,1,1)=GRIDUN(IJKN)/CLAT(J)**2 - G(I,2,1)=GRIDUS(IJKS)/CLAT(J)**2 - G(I,1,2)=GRIDVN(IJKN)/CLAT(J)**2 - G(I,2,2)=GRIDVS(IJKS)/CLAT(J)**2 - ENDDO - ENDIF - CALL SPTRANF1(IROMB,MAXWV,IDRT,IMAX,JMAX,J,J, - & EPS,EPSTOP,ENN1,ELONN1,EON,EONTOP, - & AFFT,CLAT(J),SLAT(J),WLAT(J), - & PLN(1,J),PLNTOP(1,J),MP, - & W(1,1),WTOP(1,1),G(1,1,1),IDIR) - CALL SPTRANF1(IROMB,MAXWV,IDRT,IMAX,JMAX,J,J, - & EPS,EPSTOP,ENN1,ELONN1,EON,EONTOP, - & AFFT,CLAT(J),SLAT(J),WLAT(J), - & PLN(1,J),PLNTOP(1,J),MP, - & W(1,2),WTOP(1,2),G(1,1,2),IDIR) - ENDIF - ENDDO - CALL SPUV2DZ(IROMB,MAXWV,ENN1,ELONN1,EON,EONTOP, - & W(1,1),W(1,2),WTOP(1,1),WTOP(1,2), - & WINC(1,1),WINC(1,2)) - WAVED(KWS+1:KWS+2*MX)=WAVED(KWS+1:KWS+2*MX)+WINC(1:2*MX,1) - WAVEZ(KWS+1:KWS+2*MX)=WAVEZ(KWS+1:KWS+2*MX)+WINC(1:2*MX,2) - ENDDO - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - END diff --git a/sorc/relocate_mv_nvortex.fd/srotm.f b/sorc/relocate_mv_nvortex.fd/srotm.f deleted file mode 100755 index 50bac19fa0..0000000000 --- a/sorc/relocate_mv_nvortex.fd/srotm.f +++ /dev/null @@ -1,106 +0,0 @@ - SUBROUTINE SROTM (N,SX,INCX,SY,INCY,SPARAM) -C -C APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX -C -C (SX**T) , WHERE **T INDICATES TRANSPOSE. THE ELEMENTS OF SX ARE IN -C (DX**T) -C -C SX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE -C LX = (-INCX)*N, AND SIMILARLY FOR SY USING USING LY AND INCY. -C WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS.. -C -C SFLAG=-1.E0 SFLAG=0.E0 SFLAG=1.E0 SFLAG=-2.E0 -C -C (SH11 SH12) (1.E0 SH12) (SH11 1.E0) (1.E0 0.E0) -C H=( ) ( ) ( ) ( ) -C (SH21 SH22), (SH21 1.E0), (-1.E0 SH22), (0.E0 1.E0). -C SEE SROTMG FOR A DESCRIPTION OF DATA STORAGE IN SPARAM. -C - DIMENSION SX(1),SY(1),SPARAM(5) - DATA ZERO,TWO/0.E0,2.E0/ -C - SFLAG=SPARAM(1) - IF(N .LE. 0 .OR.(SFLAG+TWO.EQ.ZERO)) GO TO 140 - IF(.NOT.(INCX.EQ.INCY.AND. INCX .GT.0)) GO TO 70 -C - NSTEPS=N*INCX - IF(SFLAG) 50,10,30 - 10 CONTINUE - SH12=SPARAM(4) - SH21=SPARAM(3) - DO 20 I=1,NSTEPS,INCX - W=SX(I) - Z=SY(I) - SX(I)=W+Z*SH12 - SY(I)=W*SH21+Z - 20 CONTINUE - GO TO 140 - 30 CONTINUE - SH11=SPARAM(2) - SH22=SPARAM(5) - DO 40 I=1,NSTEPS,INCX - W=SX(I) - Z=SY(I) - SX(I)=W*SH11+Z - SY(I)=-W+SH22*Z - 40 CONTINUE - GO TO 140 - 50 CONTINUE - SH11=SPARAM(2) - SH12=SPARAM(4) - SH21=SPARAM(3) - SH22=SPARAM(5) - DO 60 I=1,NSTEPS,INCX - W=SX(I) - Z=SY(I) - SX(I)=W*SH11+Z*SH12 - SY(I)=W*SH21+Z*SH22 - 60 CONTINUE - GO TO 140 - 70 CONTINUE - KX=1 - KY=1 - IF(INCX .LT. 0) KX=1+(1-N)*INCX - IF(INCY .LT. 0) KY=1+(1-N)*INCY -C - IF(SFLAG)120,80,100 - 80 CONTINUE - SH12=SPARAM(4) - SH21=SPARAM(3) - DO 90 I=1,N - W=SX(KX) - Z=SY(KY) - SX(KX)=W+Z*SH12 - SY(KY)=W*SH21+Z - KX=KX+INCX - KY=KY+INCY - 90 CONTINUE - GO TO 140 - 100 CONTINUE - SH11=SPARAM(2) - SH22=SPARAM(5) - DO 110 I=1,N - W=SX(KX) - Z=SY(KY) - SX(KX)=W*SH11+Z - SY(KY)=-W+SH22*Z - KX=KX+INCX - KY=KY+INCY - 110 CONTINUE - GO TO 140 - 120 CONTINUE - SH11=SPARAM(2) - SH12=SPARAM(4) - SH21=SPARAM(3) - SH22=SPARAM(5) - DO 130 I=1,N - W=SX(KX) - Z=SY(KY) - SX(KX)=W*SH11+Z*SH12 - SY(KY)=W*SH21+Z*SH22 - KX=KX+INCX - KY=KY+INCY - 130 CONTINUE - 140 CONTINUE - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/srotmg.f b/sorc/relocate_mv_nvortex.fd/srotmg.f deleted file mode 100755 index 24243a13c9..0000000000 --- a/sorc/relocate_mv_nvortex.fd/srotmg.f +++ /dev/null @@ -1,166 +0,0 @@ - SUBROUTINE SROTMG (SD1,SD2,SX1,SY1,SPARAM) -C -C CONSTRUCT THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS -C THE SECOND COMPONENT OF THE 2-VECTOR (SQRT(SD1)*SX1,SQRT(SD2)* -C SY2)**T. -C WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS.. -C -C SFLAG=-1.E0 SFLAG=0.E0 SFLAG=1.E0 SFLAG=-2.E0 -C -C (SH11 SH12) (1.E0 SH12) (SH11 1.E0) (1.E0 0.E0) -C H=( ) ( ) ( ) ( ) -C (SH21 SH22), (SH21 1.E0), (-1.E0 SH22), (0.E0 1.E0). -C LOCATIONS 2-4 OF SPARAM CONTAIN SH11,SH21,SH12, AND SH22 -C RESPECTIVELY. (VALUES OF 1.E0, -1.E0, OR 0.E0 IMPLIED BY THE -C VALUE OF SPARAM(1) ARE NOT STORED IN SPARAM.) -C -C THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE -C INEXACT. THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE -C OF SD1 AND SD2. ALL ACTUAL SCALING OF DATA IS DONE USING GAM. -C - DIMENSION SPARAM(5) -C - DATA ZERO,ONE,TWO /0.E0,1.E0,2.E0/ - DATA GAM,GAMSQ,RGAMSQ/4096.E0,1.67772E7,5.96046E-8/ - IF(.NOT. SD1 .LT. ZERO) GO TO 10 -C GO ZERO-H-D-AND-SX1.. - GO TO 60 - 10 CONTINUE -C CASE-SD1-NONNEGATIVE - SP2=SD2*SY1 - IF(.NOT. SP2 .EQ. ZERO) GO TO 20 - SFLAG=-TWO - GO TO 260 -C REGULAR-CASE.. - 20 CONTINUE - SP1=SD1*SX1 - SQ2=SP2*SY1 - SQ1=SP1*SX1 -C - IF(.NOT. ABS(SQ1) .GT. ABS(SQ2)) GO TO 40 - SH21=-SY1/SX1 - SH12=SP2/SP1 -C - SU=ONE-SH12*SH21 -C - IF(.NOT. SU .LE. ZERO) GO TO 30 -C GO ZERO-H-D-AND-SX1.. - GO TO 60 - 30 CONTINUE - SFLAG=ZERO - SD1=SD1/SU - SD2=SD2/SU - SX1=SX1*SU -C GO SCALE-CHECK.. - GO TO 100 - 40 CONTINUE - IF(.NOT. SQ2 .LT. ZERO) GO TO 50 -C GO ZERO-H-D-AND-SX1.. - GO TO 60 - 50 CONTINUE - SFLAG=ONE - SH11=SP1/SP2 - SH22=SX1/SY1 - SU=ONE+SH11*SH22 - STEMP=SD2/SU - SD2=SD1/SU - SD1=STEMP - SX1=SY1*SU -C GO SCALE-CHECK - GO TO 100 -C PROCEDURE..ZERO-H-D-AND-SX1.. - 60 CONTINUE - SFLAG=-ONE - SH11=ZERO - SH12=ZERO - SH21=ZERO - SH22=ZERO -C - SD1=ZERO - SD2=ZERO - SX1=ZERO -C RETURN.. - GO TO 220 -C PROCEDURE..FIX-H.. - 70 CONTINUE - IF(.NOT. SFLAG .GE. ZERO) GO TO 90 -C - IF(.NOT. SFLAG .EQ. ZERO) GO TO 80 - SH11=ONE - SH22=ONE - SFLAG=-ONE - GO TO 90 - 80 CONTINUE - SH21=-ONE - SH12=ONE - SFLAG=-ONE - 90 CONTINUE - GO TO IGO,(120,150,180,210) -C PROCEDURE..SCALE-CHECK - 100 CONTINUE - 110 CONTINUE - IF(.NOT. SD1 .LE. RGAMSQ) GO TO 130 - IF(SD1 .EQ. ZERO) GO TO 160 - ASSIGN 120 TO IGO -C FIX-H.. - GO TO 70 - 120 CONTINUE - SD1=SD1*GAM**2 - SX1=SX1/GAM - SH11=SH11/GAM - SH12=SH12/GAM - GO TO 110 - 130 CONTINUE - 140 CONTINUE - IF(.NOT. SD1 .GE. GAMSQ) GO TO 160 - ASSIGN 150 TO IGO -C FIX-H.. - GO TO 70 - 150 CONTINUE - SD1=SD1/GAM**2 - SX1=SX1*GAM - SH11=SH11*GAM - SH12=SH12*GAM - GO TO 140 - 160 CONTINUE - 170 CONTINUE - IF(.NOT. ABS(SD2) .LE. RGAMSQ) GO TO 190 - IF(SD2 .EQ. ZERO) GO TO 220 - ASSIGN 180 TO IGO -C FIX-H.. - GO TO 70 - 180 CONTINUE - SD2=SD2*GAM**2 - SH21=SH21/GAM - SH22=SH22/GAM - GO TO 170 - 190 CONTINUE - 200 CONTINUE - IF(.NOT. ABS(SD2) .GE. GAMSQ) GO TO 220 - ASSIGN 210 TO IGO -C FIX-H.. - GO TO 70 - 210 CONTINUE - SD2=SD2/GAM**2 - SH21=SH21*GAM - SH22=SH22*GAM - GO TO 200 - 220 CONTINUE - IF(SFLAG)250,230,240 - 230 CONTINUE - SPARAM(3)=SH21 - SPARAM(4)=SH12 - GO TO 260 - 240 CONTINUE - SPARAM(2)=SH11 - SPARAM(5)=SH22 - GO TO 260 - 250 CONTINUE - SPARAM(2)=SH11 - SPARAM(3)=SH21 - SPARAM(4)=SH12 - SPARAM(5)=SH22 - 260 CONTINUE - SPARAM(1)=SFLAG - RETURN - END diff --git a/sorc/relocate_mv_nvortex.fd/w3tagb.f b/sorc/relocate_mv_nvortex.fd/w3tagb.f deleted file mode 100755 index 75822951ee..0000000000 --- a/sorc/relocate_mv_nvortex.fd/w3tagb.f +++ /dev/null @@ -1,121 +0,0 @@ - SUBROUTINE W3TAGB(PROG,KYR,JD,LF,ORG) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: W3TAGB OPERATIONAL JOB IDENTIFIER -C PRGMMR: FARLEY ORG: NP11 DATE: 1998-03-17 -C -C ABSTRACT: PRINTS IDENTIFYING INFORMATION FOR OPERATIONAL -C codes. CALLED AT THE BEGINNING OF A code, W3TAGB PRINTS -C THE program NAME, THE YEAR AND JULIAN DAY OF ITS -C COMPILATION, AND THE RESPONSIBLE ORGANIZATION. ON A 2ND -C LINE IT PRINTS THE STARTING DATE-TIME. CALLED AT THE -C END OF A JOB, entry routine, W3TAGE PRINTS A LINE WITH THE -C ENDING DATE-TIME AND A 2ND LINE STATING THE program name -C AND THAT IT HAS ENDED. -C -C PROGRAM HISTORY LOG: -C 85-10-29 J.NEWELL -C 89-10-20 R.E.JONES CONVERT TO CRAY CFT77 FORTRAN -C 91-03-01 R.E.JONES ADD MACHINE NAME TO ENDING LINE -C 92-12-02 R.E.JONES ADD START-ENDING TIME-DATE -C 93-11-16 R.E.JONES ADD DAY OF YEAR, DAY OF WEEK, AND JULIAN DAY -C NUMBER. -C 97-12-24 M.FARLEY PRINT STATEMENTS MODIFIED FOR 4-DIGIT YR -C 98-03-17 M.FARLEY REPLACED DATIMX WITH CALLS TO W3LOCDAT/W3DOXDAT -C 99-01-29 B. VUONG CONVERTED TO IBM RS/6000 SP -C -C 99-06-17 A. Spruill ADJUSTED THE SIZE OF PROGRAM NAME TO ACCOMMODATE -C THE 20 CHARACTER NAME CONVENTION ON THE IBM SP. -C 1999-08-24 Gilbert added call to START() in W3TAGB and a call -C to SUMMARY() in W3TAGE to print out a -C resource summary list for the program using -C W3TAGs. -C 2012-10-18 Vuong REMOVE PRINT STATEMENT 604 -C 2013-02-06 Vuong MODIFIED PRINT STATEMENT 604 -C -C USAGE: CALL W3TAGB(PROG, KYR, JD, LF, ORG) -C CALL W3TAGE(PROG) -C -C INPUT VARIABLES: -C NAMES INTERFACE DESCRIPTION OF VARIABLES AND TYPES -C ------ --------- ----------------------------------------------- -C PROG ARG LIST PROGRAM NAME CHARACTER*1 -C KYR ARG LIST YEAR OF COMPILATION INTEGER -C JD ARG LIST JULIAN DAY OF COMPILATION INTEGER -C LF ARG LIST HUNDRETHS OF JULIAN DAY OF COMPILATION -C INTEGER (RANGE IS 0 TO 99 INCLUSIVE) -C ORG ARG LIST ORGANIZATION CODE (SUCH AS WD42) -C CHARACTER*1 -C -C OUTPUT VARIABLES: -C NAMES INTERFACE DESCRIPTION OF VARIABLES AND TYPES -C ---------------------------------------------------------------- -C DDATE PRINT YEAR AND JULIAN DAY (NEAREST HUNDRETH) -C FILE OF COMPILATION REAL -C -C SUBPROGRAMS CALLED: CLOCK, DATE -C -C REMARKS: FULL WORD USED IN ORDER TO HAVE AT LEAST -C SEVEN DECIMAL DIGITS ACCURACY FOR VALUE OF DDATE. -C SUBPROGRAM CLOCK AND DATE MAY DIFFER FOR EACH TYPE -C COMPUTER. YOU MAY HAVE TO CHANGE THEM FOR ANOTHER -C TYPE OF COMPUTER. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C -C$$$ -C - CHARACTER *(*) PROG,ORG - CHARACTER * 3 JMON(12) - CHARACTER * 3 DAYW(7) -C - INTEGER IDAT(8), JDOW, JDOY, JDAY -C - SAVE -C - DATA DAYW/'SUN','MON','TUE','WEN','THU','FRI','SAT'/ - DATA JMON /'JAN','FEB','MAR','APR','MAY','JUN', - & 'JUL','AUG','SEP','OCT','NOV','DEC'/ -C - CALL START() - - DYR = KYR - DYR = 1.0E+03 * DYR - DJD = JD - DLF = LF - DLF = 1.0E-02 * DLF - DDATE = DYR + DJD + DLF - write(6,600) - 600 FORMAT(//,10('* . * . ')) - write(6,601) PROG, DDATE, ORG - 601 FORMAT(5X,'PROGRAM ',A,' HAS BEGUN. COMPILED ',F10.2, - & 5X, 'ORG: ',A) -C - CALL W3LOCDAT(IDAT) - CALL W3DOXDAT(IDAT,JDOW,JDOY,JDAY) - write(6,602) JMON(IDAT(2)),IDAT(3),IDAT(1),IDAT(5),IDAT(6), - & IDAT(7),IDAT(8),JDOY,DAYW(JDOW),JDAY - 602 FORMAT(5X,'STARTING DATE-TIME ',A3,1X,I2.2,',', - & I4.4,2X,2(I2.2,':'),I2.2,'.',I3.3,2X,I3,2X,A3,2X,I8,//) - RETURN -C - ENTRY W3TAGE(PROG) -C - CALL W3LOCDAT(IDAT) - CALL W3DOXDAT(IDAT,JDOW,JDOY,JDAY) - write(6,603) JMON(IDAT(2)),IDAT(3),IDAT(1),IDAT(5),IDAT(6), - & IDAT(7),IDAT(8),JDOY,DAYW(JDOW),JDAY - 603 FORMAT(//,5X,'ENDING DATE-TIME ',A3,1X,I2.2,',', - & I4.4,2X,2(I2.2,':'),I2.2,'.',I3.3,2X,I3,2X,A3,2X,I8) - write(6,604) PROG - 604 FORMAT(5X,'PROGRAM ',A,' HAS ENDED.') -C 604 FORMAT(5X,'PROGRAM ',A,' HAS ENDED. CRAY J916/2048') -C 604 FORMAT(5X,'PROGRAM ',A,' HAS ENDED. CRAY Y-MP EL2/256') - write(6,605) - 605 FORMAT(10('* . * . ')) - - CALL SUMMARY() -C - RETURN - END diff --git a/sorc/wintemv.fd/BLOCKDATA001.f b/sorc/wintemv.fd/BLOCKDATA001.f deleted file mode 100755 index f436500de9..0000000000 --- a/sorc/wintemv.fd/BLOCKDATA001.f +++ /dev/null @@ -1,72 +0,0 @@ - BLOCK DATA -C - COMMON /BLK1/ -C REAL*4 - 1 ULCLAT, ULCLON, -C INTEGER*4 - 2 ISEQ, KTRAN, IDDFF, ITEMP, ITROP, - 3 MAXHGT, KEYS, NCAT, KHEM, KCNT, - 4 KEYCNT, LABEL, LVL, ITIME, LVLNNN, - 6 MTAU, -C CHARACTER*4 - 7 TROP1, KWBC1, MAXW1, KWMO, -C INTEGER*2 - 8 JTAU, MAXTRP, LONINC, LATINC, NLVLS, - 9 NLON, NLAT, KTAU, -C CHARACTER*1 - 2 ACOMM, - 3 DATEND, KTTY, SPACE, MOUT, - 4 A, B, LF, CR, - 5 HEADR1, - 6 ALFAA, ALFAE, ALFAF, ALFAM, - 7 ALFAN, ALFAP, ALFAS, ALFAW, - 8 ALFAZ, KWMO1 -C - save - REAL ULCLAT(200) - REAL ULCLON(200) -C - INTEGER ISEQ(200), KTRAN, KEYS - data ktran/51/, keys/05/ - INTEGER NCAT(200), KHEM - INTEGER KCNT(200), KEYCNT, LABEL(12) - INTEGER IDDFF(145,37,10) - INTEGER ITEMP(145,37,9) - INTEGER ITROP(145,37), MAXHGT(145,37) - INTEGER LVL(9,100), ITIME(8) - INTEGER LVLNNN(9) - data lvlnnn/50,100,180,240,300,340,390,450,500/ -C - INTEGER JTAU(5), MAXTRP(200), LONINC(200) - INTEGER LATINC(200), NLVLS(200), NLON(200) - INTEGER NLAT(200), KTAU(200) - CHARACTER*40 ACOMM - data acomm/'H100000 '/ - CHARACTER*4 KWMO(5) - data kwmo/'XXXX','JJ K','WBC ','DDGG','GG '/ -C -C - CHARACTER*1 DATEND - data DATEND/'9'/ - - CHARACTER*4 KWBC1,MAXW1 - data KWBC1/'KWBC'/,MAXW1/'MAXW'/ - CHARACTER*4 TROP1 - data TROP1/'TROP'/ -C - CHARACTER*1 A(200) - CHARACTER*1 B(200), KTTY(69,160), SPACE - data SPACE/' '/ - CHARACTER*1 MOUT(1280) - CHARACTER*1 KWMO1(18),LF,CR - data LF/'@'/,CR/'<'/ - CHARACTER*1 HEADR1(4,100) - CHARACTER*1 ALFAA - data ALFAA/'A'/ - CHARACTER*1 ALFAN,ALFAE,ALFAS,ALFAW - data ALFAN/'N'/,ALFAE/'E'/,ALFAS/'S'/,ALFAW/'W'/ - CHARACTER*1 ALFAF - data ALFAF/'F'/ - CHARACTER*1 ALFAZ,ALFAM, ALFAP - data ALFAZ/'Z'/,ALFAM/'M'/, ALFAP/'P'/ - END diff --git a/sorc/wintemv.fd/VALKEY.f b/sorc/wintemv.fd/VALKEY.f deleted file mode 100755 index 644f0de659..0000000000 --- a/sorc/wintemv.fd/VALKEY.f +++ /dev/null @@ -1,380 +0,0 @@ - SUBROUTINE VALKEY -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: VALKEY PERFORM VARIOUS CONSISTENCY CHECKS -C PRGMMR: CAVANAUGH ORG: W/NMC42 DATE: 88-03-24 -C -C ABSTRACT: PERFORM VARIOUS CONSISTENCY CHECKS. -C -C PROGRAM HISTORY LOG: -C 88-03-24 CAVANAUGH -C YY-MM-DD MODIFIER1 DESCRIPTION OF CHANGE -C -C USAGE: CALL VALKEY (*) -C INPUT ARGUMENT LIST: -C * - RETURN ADDRESS -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C -C$$$ -C - COMMON /BLK1/ -C REAL*4 - 1 ULCLAT, ULCLON, -C INTEGER*4 - 2 ISEQ, KTRAN, IDDFF, ITEMP, ITROP, - 3 MAXHGT, KEYS, NCAT, KHEM, KCNT, - 4 KEYCNT, LABEL, LVL, ITIME, LVLNNN, - 6 MTAU, -C CHARACTER*4 - 7 TROP1, KWBC1, MAXW1, KWMO, -C INTEGER*2 - 8 JTAU, MAXTRP, LONINC, LATINC, NLVLS, - 9 NLON, NLAT, KTAU, -C CHARACTER*1 - 2 ACOMM, - 3 DATEND, KTTY, SPACE, MOUT, - 4 A, B, LF, CR, - 5 HEADR1, - 6 ALFAA, ALFAE, ALFAF, ALFAM, - 7 ALFAN, ALFAP, ALFAS, ALFAW, - 8 ALFAZ, KWMO1 -C -C -C -C - save - REAL ULCLAT(200) - REAL ULCLON(200) - REAL XULCLT(500),XULCLN(500) -C - INTEGER ISEQ(200), KTRAN, KEYS - INTEGER NCAT(200), KHEM - INTEGER KCNT(200), KEYCNT, LABEL(12) - INTEGER IDDFF(145,37,10) - INTEGER ITEMP(145,37,9) - INTEGER ITROP(145,37), MAXHGT(145,37) - INTEGER LVL(9,100), ITIME(8) - INTEGER LVLNNN(9) - INTEGER MISEQ(500), MNCAT(500), MLVL(9,500) - INTEGER MLNINC(500), MMXTRP(500), MLTINC(500) - INTEGER MNLVLS(500), MNLON(500), MNLAT(500) - INTEGER MKTAU(500) -C - INTEGER JTAU(5), MAXTRP(200), LONINC(200) - INTEGER LATINC(200), NLVLS(200), NLON(200) - INTEGER NLAT(200), KTAU(200) - INTEGER KYREAD - data KYREAD/0/ -C - CHARACTER*4 KWMO(5) -C - CHARACTER*1 DATEND -C -C - CHARACTER*1 A(200) - CHARACTER*1 B(200), KTTY(69,160), SPACE - CHARACTER*1 ACOMM(40), MOUT(1280) - CHARACTER*1 KWMO1(18), LF, CR - CHARACTER*1 HEADR1(4,100) - CHARACTER*4 TROP1, MAXW1, KWBC1 - CHARACTER*1 MHEDR1(4,500), MA(500), MB(500) - CHARACTER*1 ALFAA, ALFAE - CHARACTER*1 ALFAF, ALFAN, ALFAS - CHARACTER*1 ALFAW, ALFAZ - CHARACTER*1 ALFAM, ALFAP - 100 FORMAT(' HEADING ERROR ',A1) - 10 FORMAT (' ENTERING VALKEY') - 15 FORMAT (' EOF READING KEYS, PRESUMABLY THAT IS O.K.') - 17 FORMAT (' ERROR EXIT') - 110 FORMAT(' BULLETIN SEQUENCE NUMBER') - 120 FORMAT(' TAU OUT OF RANGE') - 130 FORMAT(' CATALOG NR OUT OF RANGE') - 140 FORMAT(' LONGITUDE - ULC - OUT OF RANGE') - 150 FORMAT(' INCORRECT E-W INDICATOR') - 160 FORMAT(' LONGITUDE INCREMENT INCORRECT') - 170 FORMAT(' NUMBER OF LONGITUDE STRIPS INCORRECT') - 180 FORMAT(' LATITUDE - ULC - OUT OF RANGE') - 190 FORMAT(' INCORRECT N-S INDICATOR',3(3X,A1),' CARD NO.', - 1 I3) - 200 FORMAT(' LATITUDE INCREMENT INCORRECT') - 210 FORMAT(' NUMBER OF LATITUDE STRIPS INCORRECT') - 220 FORMAT(' NLVLS AND ACTUAL LEVELS DO NOT AGREE') - 230 FORMAT(' BULLETIN CONTAINS MORE THAN 2000 CHARACTERS') - 240 FORMAT (4A1,I2,1X,I2,1X,I5,1X,F6.2,1X,A1,2(1X,I1),1X,F5.2,1X,A1, - * 1X,I1,2(1X,I2),1X,9I1,1X,I1,16X,I8) - 250 FORMAT(9X,4A1,I2,1X,I2,1X,I5,1X,F6.2,1X,A1,2(1X,I1),1X,F5.2,1X,A1, - * 1X,I1,2(1X,I2),1X,9I1,1X,I1,16X,I8) - 251 FORMAT (1X,I4) - 260 FORMAT (' I/O ERROR READING KEYS') - 270 FORMAT (' HEADER AND SEQ NR ',4A1,I2,/, - *' TAU ',I2,' CATALOG NR ',I5,/, - *' LONGITUDE ',F6.2,' E-W ',A1,' LONINC ',I6,' NLON ',I6,/, - *' LATITUDE ',F6.2,' N-S ',A1,' LATINC ',I6,' NLAT ',I6,/, - *' LEVELS ',I2,' LEVEL 1-9 ',9(1X,I6),/, - *' TROPOPAUSE/MAX WINDS ',I6,' LSEQ ',I6) - 280 FORMAT(4(1X,A1)) -C WRITE (6,10) - KEYCNT=0 - KPTR=1 - TIMKEY=MTAU*6 - IF(KYREAD.NE.0) GO TO 1000 - KYREAD=1 - mmptr = 0 - DO 600 kk=1,500 - READ(KEYS,240,ERR=3150,END=1000)(MHEDR1(N,kk),N=1,4), - 2 MISEQ(kk),MKTAU(kk),MNCAT(kk),XULCLN(kk), - 3 MB(kk),MLNINC(kk),MNLON(kk),XULCLT(kk), - 4 MA(kk),MLTINC(kk),MNLAT(kk),MNLVLS(kk), - 5 (MLVL(N,kk),N=1,9),MMXTRP(kk),MLSEQ - mmptr = kk - 600 CONTINUE -C READ KEY LIST - 1000 continue - DO 3000 IK=1,MMPTR - KERR=0 - DO 1010 IJ=1,4 - HEADR1(IJ,KPTR) = MHEDR1(IJ,IK) - 1010 CONTINUE - ISEQ(KPTR) = MISEQ(IK) - KTAU(KPTR) = MKTAU(IK) - NCAT(KPTR) = MNCAT(IK) - ULCLON(KPTR) = XULCLN(IK) - B(KPTR) = MB(IK) - LONINC(KPTR) = MLNINC(IK) - NLON(KPTR) = MNLON(IK) - ULCLAT(KPTR) = XULCLT(IK) - A(KPTR) = MA(IK) - LATINC(KPTR) = MLTINC(IK) - NLAT(KPTR) = MNLAT(IK) - NLVLS(KPTR) = MNLVLS(IK) - DO 1011 IJ=1,9 - LVL(IJ,KPTR)= MLVL(IJ,IK) - 1011 CONTINUE - MAXTRP(KPTR) = MMXTRP(IK) -c WRITE(6,270)(HEADR1(N,KPTR),N=1,4),ISEQ(KPTR),KTAU(KPTR), -c * NCAT(KPTR),ULCLON(KPTR),B(KPTR),LONINC(KPTR),NLON(KPTR), -c * ULCLAT(KPTR),A(KPTR),LATINC(KPTR),NLAT(KPTR),NLVLS(KPTR), -c * (LVL(N,KPTR),N=1,9),MAXTRP(KPTR),LSEQ - IF (KTAU(KPTR).EQ.TIMKEY) THEN -C -C CHECK N-S INDICATOR -C -C ---------------------------- -C -C ---------------------------- - if(a(kptr).ne.alfan) then - if(a(kptr).ne.alfas) then - kerr = 2 - endif - endif - IF (KHEM.EQ.1.AND.A(KPTR).NE.ALFAN) goto 3000 - IF (KHEM.EQ.2.AND.A(KPTR).NE.ALFAS) goto 3000 -C -C END OF FILE -C -C ERROR WHILE READING LIST OF KEYS -C -C -C PERFORM RANGE AND OR VALIDITY CHECKS ON KEY -C - 1200 CONTINUE -C -C CHECK HEADERS FOR ALL ALFAS -C -C ----------------------- - IF (HEADR1(1,KPTR).NE.ALFAF) THEN - KERR = 3 - WRITE(6, 100) HEADR1(I,KPTR) - ELSE - DO 1210 I = 2 , 4 - IF (HEADR1(I,KPTR).GT.ALFAZ) THEN - KERR = 3 - WRITE(6, 100) HEADR1(I,KPTR) - END IF - 1210 CONTINUE - END IF -C -C CHECK SEQUENCE NUMBER -C - 1250 CONTINUE - IF(ISEQ(KPTR).LT.1.OR.ISEQ(KPTR).GT.99) THEN -C SEQUENCE NUMBER ERROR - KERR = 4 - WRITE(6, 110) - END IF -C -C CHECK LENGTH OF FORECAST (KTAU(KPTR)) -C - IF (KTAU(KPTR).LT.6.AND.KTAU(KPTR).GT.48) THEN -C FORECAST TIME OUT OF RANGE - KERR = 5 - WRITE(6, 120) - END IF -C -C CHECK CATALOG NUMBER -C - IF (NCAT(KPTR).LT.0.AND.NCAT(KPTR).GT.9999) THEN -C CATALOG NUMBER OUT OF RANGE - KERR = 6 - WRITE(6, 130) - END IF -C -C CHECK LONGITUDE OF UPPER LEFT CORNER -C - IF (ULCLON(KPTR).LT.0.0.OR.ULCLON(KPTR).GT.180.0) THEN -C IMPROPER LONGITUDE VALUE - KERR = 7 - WRITE(6, 140) - ENDIF -C -C CHECK E-W INDICATOR -C - 1450 CONTINUE - IF (B(KPTR).EQ.ALFAE.OR.B(KPTR).EQ.ALFAW) THEN - GO TO 1500 - ELSE -C NOT E OR W INDICATOR - KERR = 8 - WRITE(6, 150) - END IF -C -C CHECK LONGITUDE INCREMENT INDICATOR -C - 1500 CONTINUE - IF (LONINC(KPTR).LT.1.OR.LONINC(KPTR).GT.3) THEN -C LONGITUDE INCREMENT OUT OF RANGE - KERR = 9 - WRITE(6, 160) - END IF -C -C CHECK RANGE OF LONGITUDE STRIPS -C - 1550 CONTINUE - IF (NLON(KPTR).LT.1.OR.NLON(KPTR).GT.7) THEN -C TOO MANY LONGITUDE STRIPS - KERR = 10 - WRITE(6, 170) - END IF -C -C CHECK LATITUDE OF ULC -C - 1600 CONTINUE - IF (ULCLAT(KPTR).LT.0.0.OR.ULCLAT(KPTR).GT.90.0) THEN -C LATITUDE OUT OF RANGE - KERR = 11 - WRITE(6, 180) - END IF -C -C CHECK LATITUDE INCREMENT INDICATOR -C - 1700 CONTINUE - IF (LATINC(KPTR).LT.1.OR.LATINC(KPTR).GT.3) THEN -C LATITUDE INCREMENT OUT OF RANGE - KERR = 12 - WRITE(6, 200) - END IF -C -C SET LATITUDE INCREMENT FROM INPUT TABULAR VALUE TO -C TRUE MULTIPLIER OF 2.5DEG TO GET DESIRED INCREMENTS -C - 1725 CONTINUE - IF (LATINC(KPTR).GT.2) THEN - LATINC(KPTR)=4 - END IF -C -C CHECK FOR LATITUDE BOUNDARY VIOLATION -C -C TEST IS TO BE SURE THAT SOUTHERN MOST EXTENT OF -C OUTPUT GRID DOES NOT EXTEND SOUTH OF EQUATOR -C -C NEED TO GENERATE SOUTHERN HEMISPHERE TEST IN FUTURE -C -C ------------------------------------ - IF(A(KPTR).NE.ALFAN) THEN - X=90.0 - ULCLAT(KPTR) - IF ((X/2.5-(NLAT(KPTR)-1)*LATINC(KPTR)+.001).GE.0) THEN - GO TO 1750 - END IF - END IF - IF((ULCLAT(KPTR)/2.5-(NLAT(KPTR)-1)*LATINC(KPTR)+.001).GE.0) - & THEN - GOTO 1750 - END IF - print *, ' a(kptr), alfan =', a(kptr), alfan - print *, ' ulclat(kptr),nlat(kptr),latinc(kptr) =' - print *, ulclat(kptr), nlat(kptr), latinc(kptr) - x = ULCLAT(KPTR)/2.5-(NLAT(KPTR)-1)*LATINC(KPTR) - print *, ' x =', x -C ------------------------------------ - 205 FORMAT (1X,'LATITUDE BOUNDARY VIOLATION') - 1740 WRITE (6,205) -C LATITUDE INCREMENT OUT OF RANGE - KERR = 13 -C -C CHECK NUMBER OF LATITUDE STRIPS -C - 1750 CONTINUE - IF (NLAT(KPTR).LT.1.OR.NLAT(KPTR).GT.12) THEN - KERR = 14 - WRITE(6, 210) - END IF -C -C SEE IF LVL TOTAL IS EQUAL TO NLVLS -C - 1800 CONTINUE - K = 0 - DO 1850 M = 1 , 9 - IF (LVL(M,KPTR).EQ.1) THEN - K = K + 1 - END IF - 1850 CONTINUE -C - IF (NLVLS(KPTR).NE.K) THEN - KERR = 15 - WRITE(6, 220) - END IF -C -C CHECK BULLETIN CHARACTER LOADING -C - 1900 CONTINUE - KHDGS = 45 + (NLON(KPTR) * 9) - KLVLS = NLVLS(KPTR) - IF (MAXTRP(KPTR).NE.0) THEN - KLVLS = KLVLS + 2 - END IF - KOUNT = KHDGS + (KLVLS * (7 + NLON(KPTR) * 9) * NLAT(KPTR)) - 1 + ((NLAT(KPTR)-1) * 7) - IF (KOUNT.LE.2000) THEN - GO TO 2000 - END IF - KERR = 16 - WRITE(6, 230) -C -C IF NO ERROR EXISTS ON THIS KEY, -C RETURN W/VALID KEY -C - 2000 CONTINUE - IF (KERR.EQ.0) THEN - KEYCNT=KEYCNT+1 - KPTR=KPTR+1 - ELSE -C SHOW KEY IN ERROR - PRINT *,'ERROR ERROR ERROR ERROR' - WRITE(6,250) (HEADR1(N,KPTR),N=1,4),ISEQ(KPTR),KTAU(KPTR), - * NCAT(KPTR),ULCLON(KPTR),B(KPTR), - * LONINC(KPTR),NLON(KPTR),ULCLAT(KPTR),A(KPTR), - * LATINC(KPTR),NLAT(KPTR),NLVLS(KPTR), - * (LVL(N,KPTR),N=1,9),MAXTRP(KPTR),LSEQ - END IF - endif -C GET NEXT KEY - 3000 CONTINUE - RETURN - 3150 WRITE (6,260) - WRITE (6,17) - RETURN - END diff --git a/sorc/wintemv.fd/XTRACT.f b/sorc/wintemv.fd/XTRACT.f deleted file mode 100755 index c0966d6f00..0000000000 --- a/sorc/wintemv.fd/XTRACT.f +++ /dev/null @@ -1,307 +0,0 @@ - SUBROUTINE XTRACT -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: XTRACT EXTRACT REQUIRED ON84 FIELDS -C PRGMMR: CAVANAUGH ORG: W/NMC42 DATE: 88-03-24 -C -C ABSTRACT: EXTRACT ON84 FIELDS REQUIRED FOR THE PRODUCTION -C OF WINTEM BULLETINS. -C -C PROGRAM HISTORY LOG: -C 88-03-24 CAVANAUGH -C 2012-11-15 VUONG VARIABLE ENVVAR TO CHARACTER*6 -C -C USAGE: CALL XTRACT (*) -C INPUT ARGUMENT LIST: -C * - RETURN ADDRESS -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C -C$$$ -C - COMMON /BLK1/ -C REAL*4 - 1 ULCLAT, ULCLON, -C INTEGER*4 - 2 ISEQ, KTRAN, IDDFF, ITEMP, ITROP, - 3 MAXHGT, KEYS, NCAT, KHEM, KCNT, - 4 KEYCNT, LABEL, LVL, ITIME, LVLNNN, - 6 MTAU, -C CHARACTER*4 - 7 TROP1, KWBC1, MAXW1, KWMO, -C INTEGER*2 - 8 JTAU, MAXTRP, LONINC, LATINC, NLVLS, - 9 NLON, NLAT, KTAU, -C CHARACTER*1 - 2 ACOMM, - 3 DATEND, KTTY, SPACE, MOUT, - 4 A, B, LF, CR, - 5 HEADR1, - 6 ALFAA, ALFAE, ALFAF, ALFAM, - 7 ALFAN, ALFAP, ALFAS, ALFAW, - 8 ALFAZ, KWMO1 -C - save - CHARACTER*8 LFN -C - REAL WORK(144), GN(145,37,2), ULCLAT(200) - REAL ULCLON(200) -C REAL CNST(4)/0.,1.,0.,0./ -C - INTEGER ISEQ(200), KTRAN, KEYS - INTEGER NCAT(200), KHEM, LABSV(3,50) - INTEGER KCNT(200), KEYCNT, LABEL(12) - INTEGER IDDFF(145,37,10) - INTEGER ITEMP(145,37,9) - INTEGER ITROP(145,37), MAXHGT(145,37) - INTEGER LVL(9,100), ITIME(8) - INTEGER LVLNNN(9) - CHARACTER*4 KWMO(5) -C -C BASE OF FIRST ON84ID WORD -C -C U-COMP V-COMP TEMP HGT -c INTEGER*4 L1(4)/Z03000800,Z03100800,Z01000800,Z00100800/ -c INTEGER*4 M1(3)/Z03008300,Z03108300,Z00808300/ -c INTEGER*4 M2/Z00000000/,M3(2)/Z0000001B,Z0000001C/ -c INTEGER*4 LTRP/Z00808200/,M4(2)/Z0000001D,Z0000001E/ -c INTEGER*4 M5/Z0000003D/ -C -C BASE OF SECOND ON84ID WORD -C -C 850MB -c INTEGER*4 LP2LEV(9)/Z014C0882, -C 700MB 500MB 400MB 300MB -c 1 Z01117082,Z00C35082,Z009C4082,Z00753082, -C 250MB 200MB 150MB 100MB -c 2 Z0061A882,Z004E2082,Z003A9882,Z00271082/ -C -C ENTRY FOR FIFTH WORD OF ON84ID -C -c INTEGER*4 L5(4)/Z3E,Z3E,Z3D,Z3D/ -C -C - INTEGER JTAU(5), MAXTRP(200), LONINC(200) - INTEGER LATINC(200), NLVLS(200), NLON(200) - INTEGER NLAT(200), KTAU(200) - integer level(10) -C -C - CHARACTER*1 DATEND -C -C - CHARACTER*1 A(200) - CHARACTER*1 B(200), KTTY(69,160), SPACE - CHARACTER*1 ACOMM(40), MOUT(1280) - CHARACTER*1 KWMO1(18), LF, CR - CHARACTER*1 HEADR1(4,100) - CHARACTER*1 ALFAA, ALFAE, EWINDC - CHARACTER*1 ALFAF, ALFAN, ALFAS - CHARACTER*1 ALFAW, ALFAZ - CHARACTER*1 ALFAM, ALFAP - CHARACTER*4 TROP1, MAXW1, KWBC1 - character*6 envvar - character*80 fileb,filei - - - data level/850,700,500,400,300,250,200,150,100,0/ - 100 FORMAT (' CHECK FOR INCORRECT LABEL',3(2X,Z4)) - 110 FORMAT (' SPECIFIED MAP TYPE NOT AVAILABLE',I4) - 1 FORMAT ('ENTERING EXTRACT') - 3 FORMAT(' UNIQUE ENTRY # ',I4) - 4 FORMAT(' LABEL=',12Z10) - 5 FORMAT(' LEVEL ',I4) - 6 FORMAT(' NORMAL XTRACT EXIT') - MAPIN=28 - MAPOUT=30 - IF(KHEM.NE.1) GO TO 500 - MAPIN=27 - MAPOUT=29 - 500 INTERP=0 -C WRITE (6,1) - IPTR=0 -C -C CHECK EACH VALID KEY -C - DO 4000 IKEY= 1, KEYCNT -C 10 DIFFERENT PRESSURE LEVELS -C ADJUST 6, 12 HOUR BRANCHES - ITAU = KTAU(IKEY)/6 -c -c unit numbers are : -c 11, 31 for 6-hour forecast -c 12, 32 for 12-hour forecast -c 13, 33 for 18-hour forecast -c 14, 34 for 24-hour forecast -c - lgb = itau + 10 - lgi = itau + 30 - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lgb - call getenv(envvar,fileb) - write(envvar(5:6),fmt='(I2)') lgi - call getenv(envvar,filei) - call baopen(lgb,fileb,iret) - call baopen(lgi,filei,iret) - -C --------------------------- -C -C GET EACH ACTIVE LEVEL FOR THIS VALID KEY -C - DO 3000 JJ = 1 , 9 - IF (LVL(JJ,IKEY).NE.1) GO TO 3000 - DO 2000 KK = 1, 3 - IER=0 - goto (1000,1100,1200) kk - 1000 continue -c get u field - kpds5 = 33 - kpds6 = 100 - kpds7 = level(jj) - call readgrib(gn(1,1,1),kpds5,kpds6,kpds7,lgb,lgi, - & khem) -c - DO 1050 J=1,37 -c WRITE(6,300)(GN(I,J,1),I=131,145) - 300 FORMAT(15(1X,F5.1)) - 1050 CONTINUE - GO TO 2000 -C - 1100 continue -c get v field - kpds5 = 34 - kpds6 = 100 - kpds7 = level(jj) - call readgrib(gn(1,1,2),kpds5,kpds6,kpds7,lgb,lgi, - & khem) - DO 1110 J=1,37 -c WRITE(6,300)(GN(I,J,2),I=131,145) - 1110 CONTINUE -C GENERATE DDFFF FROM U,V COMPONENTS - DO 1150 J=1,37 - DO 1125 I=1,145 - CALL W3FC00 (GN(I,J,1),GN(I,J,2),NDIR,NSPD) - DDFFF = NDIR * 1000 + NSPD*1.93 - IDDFF(I,J,JJ)=DDFFF + .5 - 1125 CONTINUE -c WRITE (6,310)(IDDFF(I,J,JJ),I=131,145) - 1150 CONTINUE -C IF(KHEM.EQ.1.AND.JJ.EQ.5)GO TO 1170 -C GO TO 1180 -C1170 DO 1172 J=1,37 -C DO 1171 I=1,145 -C GN(I,J,1)=IDDFF(I,J,JJ) -C1171 CONTINUE -C1172 CONTINUE -C CALL GRDPRT(GN(1,1,1),KTBL,CNST,KTITLE,KRECT,KCONTR) -C1180 CONTINUE - GO TO 2000 - 1200 continue -c get temperature - kpds5 = 11 - kpds6 = 100 - kpds7 = level(jj) - call readgrib(gn(1,1,1),kpds5,kpds6,kpds7,lgb,lgi, - & khem) - DO 1220 j=1,37 -c WRITE(6,300)(GN(I,J,1)-273.16,i=131,145) - 1220 CONTINUE - DO 1300 J=1,37 - DO 1250 I=1,145 - TEMP=GN(I,J,1)-273.16 - ITEMP(I,J,JJ)=TEMP + .5 - 1250 CONTINUE - 1300 CONTINUE - DO 1140 N=1,37 -c WRITE(6,310)(IDDFF(M,N,JJ),M=131,145) -c WRITE(6,310)(ITEMP(M,N,JJ),M=131,145) - 310 FORMAT(15(1X,I5)) - 1140 CONTINUE - 2000 CONTINUE - 3000 CONTINUE -C -C IF MAXW/TROP FLAG IS NOT ON, SKIP THIS BLOCK OF CODE -C - IF (MAXTRP(IKEY).NE.1) GO TO 4000 -c get tropopause pressure - kpds5 = 1 - kpds6 = 7 - kpds7 = 0 - call readgrib(gn(1,1,1),kpds5,kpds6,kpds7,lgb,lgi, - & khem) -c convert from Pa unit to mb - do j = 1, 37 - do i = 1, 145 - gn(i,j,1) = gn(i,j,1) / 100. - enddo - enddo -C CONVERT PRESSURE TO HEIGHT - 3025 DO 3075 J=1,37 - DO 3050 I=1,145 - CALL W3FA03(GN(I,J,1),GN(I,J,2),TMP,THETA) - GN(I,J,2)=GN(I,J,2)*.0328 - 3050 CONTINUE -c WRITE (6,320)(GN(I,J,2),I=131,145) - 320 FORMAT (1X,15F5.0) - 3075 CONTINUE - DO 3072 J=1,37 - DO 3070 I=1,145 - ITROP(I,J)=GN(I,J,2) + .5 - ITROP(I,J)=((ITROP(I,J)+5)/10)*10 - 3070 CONTINUE - 3072 CONTINUE - DO 3085 J=1,37 -c WRITE (6,325)(ITROP(I,J),I=131,145) - 325 FORMAT (15(1X,I6)) - 3085 CONTINUE -C -C GET MAX WIND DATA -C U-COMP FIRST 145 X 37 -C -c get u-component of max wind - kpds5 = 33 - kpds6 = 6 - kpds7 = 0 - call readgrib(gn(1,1,1),kpds5,kpds6,kpds7,lgb,lgi, - & khem) -c get v-component of max wind - kpds5 = 34 - kpds6 = 6 - kpds7 = 0 - call readgrib(gn(1,1,2),kpds5,kpds6,kpds7,lgb,lgi, - & khem) -C CALCULATE DDFFF - DO 3250 J=1,37 - DO 3225 I=1,145 - CALL W3FC00 (GN(I,J,1),GN(I,J,2),NDIR,NSPD) - DDFFF=NDIR*1000+NSPD*1.93 - IDDFF(I,J,10)=DDFFF + .5 - 3225 CONTINUE -c WRITE (6,350)(IDDFF(I,J,10),I=131,145) - 350 FORMAT (15(1X,I5)) - 3250 CONTINUE -c get pressure of max wind - kpds5 = 1 - kpds6 = 6 - kpds7 = 0 - call readgrib(gn(1,1,1),kpds5,kpds6,kpds7,lgb,lgi, - & khem) -C HEIGHT OF MAX WIND - 3300 DO 3350 J=1,37 - DO 3325 I=1,145 -c convert to mb - gn(i,j,1) = gn(i,j,1) / 100. - CALL W3FA03(GN(I,J,1),GN(I,J,2),TMP,THETA) - MAXHGT(I,J)=GN(I,J,2)*.0328 + .5 - MAXHGT(I,J)=((MAXHGT(I,J)+5)/10)*10 - 3325 CONTINUE - 3350 CONTINUE -C - 3500 CONTINUE - 4000 CONTINUE -C WRITE (6,6) - RETURN - END diff --git a/sorc/wintemv.fd/la2la.f b/sorc/wintemv.fd/la2la.f deleted file mode 100755 index f015a9425f..0000000000 --- a/sorc/wintemv.fd/la2la.f +++ /dev/null @@ -1,82 +0,0 @@ - subroutine la2la(gridi,imi,jmi,grido,imo,jmo) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: LA2LA interpolation routine for regulat grids -C PRGMMR: CAVANAUGH ORG: W/NMC42 DATE: 88-03-24 -C -C ABSTRACT: PREVENTS UNNECESSARY REACCESSING OF ON84 DATA FIELDS. -C -C PROGRAM HISTORY LOG: -C 88-03-24 CAVANAUGH -C YY-MM-DD MODIFIER1 DESCRIPTION OF CHANGE -C -C USAGE: CALL LABLCK (IPTR, *) -C INPUT ARGUMENT LIST: -C IPTR - -C -C OUTPUT ARGUMENT LIST: -C IPTR - -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C -C$$$ - dimension gridi(imi,jmi), grido(imo,jmo) - dimension iindx1(1000), iindx2(1000) - dimension jindx1(500), jindx2(500) - dimension ddx(1000), ddy(500) - real nlat -c - dphi = 180. / float(jmi) - dpho = 180. / float(jmo) - dxin = 360. / float(imi) - dxout = 360. / float(imo) -c - wlon = 0. - do i = 1, imo - alamd = wlon + float(i-1) * dxout - if(alamd.lt.0.) alamd = alamd + 360. - if(alamd.gt.360.) alamd = alamd - 360. - i1 = alamd / dxin + 1.0001 - iindx1(i) = i1 - i2 = i1 + 1 - if(i2.gt.imi) i2 = 1 - iindx2(i) = i2 - ddx(i) = (alamd-float(i1-1)*dxin)/dxin - enddo -c -c we are going southward -c for convinience, we set lat to 0 at north pole and positive southward -c as is in the 1-deg by 1 deg grid -c - nlat = 0. - do j = 1, jmo - alatd = nlat + float(j-1) * dpho - j1 = alatd / dphi + 1.0001 - if(j1.lt.1) j1 = 1 - jindx1(j) = j1 - j2 = j1 + 1 - if(j2.gt.jmi) j2 = jmi - jindx2(j) = j2 - ddy(j) = (alatd-float(j1-1)*dphi)/dphi - enddo - do j = 1, jmo - y = ddy(j) - j1 = jindx1(j) - j2 = jindx2(j) - do i = 1, imo - x = ddx(i) - i1 = iindx1(i) - i2 = iindx2(i) - w1 = (1. - y) * (1. - x) - w2 = (1. - y) * x - w3 = y * (1. - x) - w4 = y * x - grido(i,j) = w1 * gridi(i1,j1) + w2 * gridi(i2,j1) - & + w3 * gridi(i1,j2) + w4 * gridi(i2,j2) - enddo - enddo - return - end diff --git a/sorc/wintemv.fd/makefile.theia b/sorc/wintemv.fd/makefile.theia deleted file mode 100755 index 867940ceb0..0000000000 --- a/sorc/wintemv.fd/makefile.theia +++ /dev/null @@ -1,83 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BLOCKDATA001.f VALKEY.f XTRACT.f la2la.f readgrib.f \ - w3fc00.f wintemv.f - -OBJS= BLOCKDATA001.o VALKEY.o XTRACT.o la2la.o readgrib.o \ - w3fc00.o wintemv.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS= ${W3NCO_LIB8} ${W3EMC_LIB8} ${BACIO_LIB8} - -CMD = wintemv -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -convert big_endian -r8 -i8 -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -install: - mkdir -p ../../exec - cp -p $(CMD) ../../exec -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/wintemv.fd/makefile.wcoss b/sorc/wintemv.fd/makefile.wcoss deleted file mode 100755 index 867940ceb0..0000000000 --- a/sorc/wintemv.fd/makefile.wcoss +++ /dev/null @@ -1,83 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BLOCKDATA001.f VALKEY.f XTRACT.f la2la.f readgrib.f \ - w3fc00.f wintemv.f - -OBJS= BLOCKDATA001.o VALKEY.o XTRACT.o la2la.o readgrib.o \ - w3fc00.o wintemv.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS= ${W3NCO_LIB8} ${W3EMC_LIB8} ${BACIO_LIB8} - -CMD = wintemv -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -convert big_endian -r8 -i8 -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -install: - mkdir -p ../../exec - cp -p $(CMD) ../../exec -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/wintemv.fd/makefile.wcoss_cray b/sorc/wintemv.fd/makefile.wcoss_cray deleted file mode 100755 index 84854ca00a..0000000000 --- a/sorc/wintemv.fd/makefile.wcoss_cray +++ /dev/null @@ -1,84 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BLOCKDATA001.f VALKEY.f XTRACT.f la2la.f readgrib.f \ - w3fc00.f wintemv.f - -OBJS= BLOCKDATA001.o VALKEY.o XTRACT.o la2la.o readgrib.o \ - w3fc00.o wintemv.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ftn -LDFLAGS = -LIBS= ${W3NCO_LIB8} ${W3EMC_LIB8} ${BACIO_LIB8} - -CMD = wintemv -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -convert big_endian -r8 -i8 -axCORE-AVX2 -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -install: - mkdir -p ../../exec - cp -p $(CMD) ../../exec - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/wintemv.fd/makefile.wcoss_dell_p3 b/sorc/wintemv.fd/makefile.wcoss_dell_p3 deleted file mode 100755 index fe884025d2..0000000000 --- a/sorc/wintemv.fd/makefile.wcoss_dell_p3 +++ /dev/null @@ -1,84 +0,0 @@ -SHELL=/bin/sh -# -# This makefile was produced by /usr/bin/fmgen at 12:00:38 PM on 11/27/96 -# If it is invoked by the command line -# make -f makefile -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable named a.out. -# -# If it is invoked by the command line -# make -f makefile a.out.prof -# it will compile the fortran modules indicated by SRCS into the object -# modules indicated by OBJS and produce an executable which profiles -# named a.out.prof. -# -# To remove all the objects but leave the executables use the command line -# make -f makefile clean -# -# To remove everything but the source files use the command line -# make -f makefile clobber -# -# To remove the source files created by /usr/bin/fmgen and this makefile -# use the command line -# make -f makefile void -# -# The parameters SRCS and OBJS should not need to be changed. If, however, -# you need to add a new module add the name of the source module to the -# SRCS parameter and add the name of the resulting object file to the OBJS -# parameter. The new modules are not limited to fortran, but may be C, YACC, -# LEX, or CAL. An explicit rule will need to be added for PASCAL modules. -# -SRCS= BLOCKDATA001.f VALKEY.f XTRACT.f la2la.f readgrib.f \ - w3fc00.f wintemv.f - -OBJS= BLOCKDATA001.o VALKEY.o XTRACT.o la2la.o readgrib.o \ - w3fc00.o wintemv.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -LDFLAGS = -LIBS= ${W3NCO_LIB8} ${W3EMC_LIB8} ${BACIO_LIB8} - -CMD = wintemv -PROFLIB = -lprof - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -O3 -g -assume byterecl -assume noold_ldout_format -convert big_endian -r8 -i8 -axCORE-AVX2 -#FFLAGS = -F -#FFLAGS = -Wf"-ez" - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -install: - mkdir -p ../../exec - cp -p $(CMD) ../../exec - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/sorc/wintemv.fd/readgrib.f b/sorc/wintemv.fd/readgrib.f deleted file mode 100755 index 096e05ad05..0000000000 --- a/sorc/wintemv.fd/readgrib.f +++ /dev/null @@ -1,77 +0,0 @@ - subroutine readgrib(grido,kp5,kp6,kp7,lgb,lgi,khem) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: readgrib get grib records -C PRGMMR: CAVANAUGH ORG: W/NMC42 DATE: 88-03-24 -C -C ABSTRACT: PREVENTS UNNECESSARY REACCESSING OF ON84 DATA FIELDS. -C -C PROGRAM HISTORY LOG: -C 88-03-24 CAVANAUGH -C YY-MM-DD MODIFIER1 DESCRIPTION OF CHANGE -C -C USAGE: CALL LABLCK (IPTR, *) -C INPUT ARGUMENT LIST: -C IPTR - -C -C OUTPUT ARGUMENT LIST: -C IPTR - -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN -C MACHINE: NAS -C -C$$$ - parameter (im=360,jm=181,ijm=im*jm) - integer kpds(100), jpds(100), kgds(30), jgds(30) - logical lbms(im,jm) - dimension gridi(im,jm), grido(145,37) - dimension grid(144,73) - -C -C - lupgb = lgb - lupgi = lgi - - lskip = -1 - do jj = 1, 100 - jpds(jj) = -1 - enddo - do jj = 1, 30 - jgds(jj) = -1 - enddo -c -c Extract 1-deg by 1-deg field -c - jpds(5) = kp5 - jpds(6) = kp6 - jpds(7) = kp7 - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,gridi,ierr) - IF(IERR.NE.0) GO TO 500 -c -c interpolate to 2.5 by 2.5 deg field -c - call la2la(gridi,im,jm,grid,144,73) -c -c put in hemisphere grid and reverse the order -c - jlm = 38 - if(khem.eq.2) jlm = 74 -!$OMP PARALLEL DO - - do j = 1, 37 - jin = jlm - j - do i = 1, 144 - grido(i,j) = grid(i,jin) - enddo - grido(145,j) = grido(1,j) - enddo - return - 500 print *, ' getgb error' - print *,' lupgb = ', lupgb, ' lupgi = ', lupgi - print *, ' ierr =', ierr - call errexit (2) - end diff --git a/sorc/wintemv.fd/w3fc00.f b/sorc/wintemv.fd/w3fc00.f deleted file mode 100755 index 158816f513..0000000000 --- a/sorc/wintemv.fd/w3fc00.f +++ /dev/null @@ -1,12 +0,0 @@ - subroutine w3fc00(u,v,ndir,nspd) - spd = sqrt(u ** 2 + v ** 2) - dir = 0. - if(u.ne.0.or.v.ne.0.) then - dir = 270. - atan2(v,u) * 180. / 3.1415926535898 - endif - if(dir.lt.0.) dir = dir + 360. - if(dir.gt.360.) dir = dir - 360. - ndir = dir / 10. + .5 - nspd = spd + .5 - return - end diff --git a/sorc/wintemv.fd/wintemv.f b/sorc/wintemv.fd/wintemv.f deleted file mode 100755 index fb0d2cbe2c..0000000000 --- a/sorc/wintemv.fd/wintemv.f +++ /dev/null @@ -1,668 +0,0 @@ -C DATA SET WINTEMV AT LEVEL 060 AS OF 09/13/91 -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: WINTEMV -C PRGMMR: VUONG ORG: NP11 DATE: 1999-08-31 -C -C ABSTRACT: THIS IS AN EXTERNALLY DRIVEN PROGRAM DESIGNED TOD -C GENERATE WIND FORECAST BULLETINS IN WINTEM FORMAT. -C BULLETIN KEYS ARE GENERATED DESCRIBING THE AREA, -C FORECAST PERIOD, FLIGHT LEVELS, AND SPACING OF -C FORECAST POINTS. THESE KEYS ARE STORED EXTERNAL TO -C THE MAIN PROGRAM. THIS PROVIDES AN EASY METHOD OF -C ADDING NEW BULLETINS AS REQUIRED, AND THE EXCLUSION -C OF THOSE BULLETINS THAT NO LONGER HAVE A PRACTICAL -C USE. THIS CAN BE ACCOMPLISHED WITHOUT INTERRUPTING -C THE OPERATION OF THE MAIN PROGRAM. -C -C PROGRAM HISTORY LOG: -C 88-03-24 CAVANAUGH -C 87-08-17 CAVANAUGH DESCRIPTION OF CHANGE -C 88-01-06 FARLEY REPLACED XDAM I/O WITH VSAM I/O -C 88-03-18 FARLEY REMOVED 'V' FROM DDNAMES -C 90-11-14 CAVANAUGH ENTERED CHECK TO PREVENT 0 DEG WIND DIRECTIONS -C 91-08-19 CAVANAUGH MODIFIED PROGRAM TO GENERATE COMMUNICATIONS -C PREFIX USING W3FI61. MODIFIED UNIT NUMBERS -C TO CONFORM TO I/O UNIT NUMBER CONVENTIONS. -C 91-09-06 CAVANAUGH REMOVED ALL REFERENCES TO PARM FIELD, -C RESTORED UNIT NUMBERS FOR THE PRESENT. -C 98-04-24 VUONG REPLACED W3FQ02 WITH CALLS TO W3UTCDAT -C 99-08-31 VUONG CONVERTED TO RUN ON THE IBM RS/6000 SP -C 2012-11-15 VUONG CHANGED VARIABLE ENVVAR TO CHARACTER*6 -C -C USAGE: -C INPUT FILES: -C FT05F001 - LIST OF BULLETIN KEYS -c fort.11 ... 6-hr 1x1 pressure grib file -c fort.12 ... 12-hr 1x1 pressure grib file -c fort.13 ... 18-hr 1x1 pressure grib file -c fort.14 ... 24-hr 1x1 pressure grib file -c fort.31 ... 6-hr 1x1 pressure grib index file -c fort.32 ... 12-hr 1x1 pressure grib index file -c fort.33 ... 18-hr 1x1 pressure grib index file -c fort.34 ... 24-hr 1x1 pressure grib index file -C -C OUTPUT FILES: -C FT06F001 - PRINT FILE -C FT51F001 - BULLETINS FOR TRAN -C -C SUBPROGRAMS CALLED: -C UNIQUE: - VALKEY XTRACT LABLCK -C LIBRARY: -C W3LIB - IW3VGE W3AG15 W3AI15 W3FA03 W3FA11 -C W3FA13 W3FC00 W3FC07 W3FT08 W3FT09 W3FT10 -C W3FT11 W3UTCDAT -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C = 1 - NO VALID KEYS -C = 5 - ERROR ON 1 OR MORE INPUT KEYS, MUST CORRECT -C = 10 - TRAN NOT POSTED -C = 300 - HAVE VALID KEYS, NO BULLETINS GENERATED -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C -C$$$ -C -C -C START OF PROGRAM -C - COMMON /BLK1/ -C REAL*4 - 1 ULCLAT, ULCLON, -C INTEGER*4 - 2 ISEQ, KTRAN, IDDFF, ITEMP, ITROP, - 3 MAXHGT, KEYS, NCAT, KHEM, KCNT, - 4 KEYCNT, LABEL, LVL, ITIME, LVLNNN, - 6 MTAU, -C CHARACTER*4 - 7 TROP1, KWBC1, MAXW1, KWMO, -C INTEGER*2 - 8 JTAU, MAXTRP, LONINC, LATINC, NLVLS, - 9 NLON, NLAT, KTAU, -C CHARACTER*1 - 2 ACOMM, - 3 DATEND, KTTY, SPACE, MOUT, - 4 A, B, LF, CR, - 5 HEADR1, - 6 ALFAA, ALFAE, ALFAF, ALFAM, - 7 ALFAN, ALFAP, ALFAS, ALFAW, - 8 ALFAZ, KWMO1 -C -C - CHARACTER*8 WORKA -C - REAL ULCLAT(200), ULCLON(200) -C - INTEGER ISEQ(200), KTRAN, KEYS - INTEGER NCAT(200), KHEM - INTEGER KCNT(200), KEYCNT, LABEL(12) - INTEGER IDDFF(145,37,10) - INTEGER ITEMP(145,37,9) - INTEGER ITROP(145,37), MAXHGT(145,37) - INTEGER LVL(9,100), ITIME(8), IHRMIN - INTEGER LVLNNN(9) - INTEGER JTAU(5), MAXTRP(200), LONINC(200) - INTEGER LATINC(200), NLVLS(200), NLON(200) - INTEGER NLAT(200), KTAU(200) - INTEGER KCOM2(20) - INTEGER MDAYS(12) -C - CHARACTER*1 DATEND - CHARACTER*2 KT - CHARACTER*4 KWMO(5) - CHARACTER*1 A(200) - CHARACTER*1 B(200), KTTY(69,160), SPACE - CHARACTER*1 ACOMM(40), MOUT(1280) - CHARACTER*1 KWMO1(18), LF, CR - CHARACTER*1 HEADR1(4,100), TROP1(4), MAXW1(4), KWBC1(4) - CHARACTER*1 ALFAA, EWINDC, ETX - CHARACTER*1 ALFAF, ALFAE, ALFAW, ALFAN - CHARACTER*1 ALFAZ, ALFAS - CHARACTER*1 ALFAM, ALFAP, WORKB(8),KETX, lfascii - CHARACTER*6 WINTEM,BLANKS,AREG,ENVVAR - character *80 line, fileo -C - data wintem/'WINTEM'/,blanks/' '/,ketx/'>'/,etx/'%'/ - data kt/'KT'/ - data mdays/31,28,31,30,31,30,31,31,30,31,30,31/ -C - EQUIVALENCE (WORKA,WORKB(1)) -C - CALL W3TAGB('WINTEMV',2012,0320,0087,'NP11') - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') ktran - call getenv(envvar,fileo) - OPEN(KTRAN,FILE=FILEO,ACCESS='DIRECT',RECL=1281) - IREC=1 - lfascii = char(10) -C -C LOOP THRU ALL TAU PERIODS -C - DO 9000 MTAU = 1, 8 -C -C LOOP THRU BOTH HEMISPHERES IF REQUIRED -C - DO 8000 KHEM = 1, 2 -C GET ALL VALID KEYS BASED ON FORECAST PERIOD (TAU) -C FOR REQUESTED HEMISPHERE -C - KEYCNT=0 - CALL VALKEY -C IF NO VALID KEYS, OUTPUT MESSAGE -C - IF (KEYCNT.EQ.0) THEN -c WRITE (6,9051) KEYCNT - 9051 FORMAT (1X,'KEYCNT=',I4,121X) - GO TO 8000 - END IF -C INITIALIZE ALL FIELDS - DO M=1,10 - DO J=1,37 - DO I=1,145 - IDDFF(I,J,M)=99999 - ITROP(I,J)=999 - MAXHGT(I,J)=999 - END DO - END DO - END DO -C -C HAVE ALL VALID KEYS (TAU), EXTRACT REQUIRED DATA -C -c WRITE(6,9511) KEYCNT - 9511 FORMAT (I4,' VALID KEYS',117X) - CALL XTRACT -C -C BUILD COMPLETE BULLETIN FOR TRANSMISSION -C & GENERATE TTY FORMAT DATA FOR MICROFICHE -C - BULCNT=0 -C -C OBTAIN CURRENT GMT FOR BULLETIN HEADERS -C - CALL W3UTCDAT (ITIME) -C -C PROCESS BULLETINS -C -C FOR EACH BULLETIN -C - DO 4600 IBULL = 1, KEYCNT -C INITIALIZE LATITUDE START INDEX FOR ULC - IF (KHEM.EQ.1) THEN -C NORTHERN HEMISPHERE - SIXLAT = ULCLAT(IBULL)/2.5 +1 - ELSE -C SOUTHERN HEMISPHERE - SIXLAT = 37.0 - ULCLAT(IBULL)/2.5 - END IF - LATSIX = SIXLAT + .5 -C INITIALIZE LONGITUDE START INDEX FOR ULC - SIXLON = ULCLON(IBULL)/2.5 + 1 - IF(B(IBULL).EQ.ALFAW) THEN - SIXLON = 145.0 - ULCLON(IBULL)/2.5 - END IF - LONSIX = SIXLON + .5 -C INITIALIZE LINE NUMBER FOR ARCHIVE OUTPUT - KLIN = 1 -C IF 10 DEGREE SPACING IS DESIRED, ADJUST INCREMENT -C VALUES TO GET 10 DEGREES. - ILNINC = LONINC(IBULL) - IF (LONINC(IBULL).GT.2) THEN - ILNINC = 4 - END IF -C - ILTINC = -LATINC(IBULL) - IF (LATINC(IBULL).GT.2) THEN - ILTINC = - 4 - END IF - DO J=1,160 - DO I=1,69 - KTTY(I,J)=SPACE - END DO - END DO -C -C BUILD BULLETIN HEADER -C - DO I = 1, 4 - ktty(i,klin) = headr1(i,ibull) - END DO -C -C ENTER SEQUENCE NUMBER -C - N1 = 1 - N2 = 2 - CALL W3AI15 (ISEQ(IBULL),line,N1,N2,'-') - do ii = 1, 2 - ktty(ii+4,klin) = line(ii:ii) - enddo - DO I=1, 4 - ktty(i+7,klin) = kwbc1(i) - END DO - KWMO1(12) = SPACE - ktty(12,klin) = space -C -C DATE/TIME TO KWMO HEADER -C - N1 = 1 - N2 = 2 - CALL W3AI15 (ITIME(3),line,N1,N2,'-') - do ii = 1, 2 - ktty(12+ii,klin) = line(ii:ii) - enddo - N2 = 4 - IHRMIN = ITIME(5) * 100 + ITIME(6) - CALL W3AI15 (IHRMIN,line,N1,N2,'-') - do ii = 1, 4 - ktty(ii+14,klin) = line(ii:ii) - enddo -C -C KWMO HEADER TO ARCHIVE ARRAY -C - KCNT(KLIN) = 18 -c DO 4150 I = 1, 18 -c KTTY(I,KLIN) = KWMO1(I) -c4150 CONTINUE - WRITE (6,100)(KTTY(N,KLIN),N=1,69) - KLIN = 2 -C -C WINTEM LINE TO OUTPUT -C - DO I = 1, 6 - KTTY(I,KLIN) = WINTEM(I:I) - END DO - IF (IHRMIN.LT.1200) THEN - KTIME = 0 - ELSE - KTIME = 1200 - END IF - KKEY = ITIME(1) - ((ITIME(1)/4) * 4) - IF (KKEY.EQ.0) THEN - MDAYS(2) = 29 - END IF - MM = ITIME(2) - KDD = ITIME(3) - KTIME = KTIME + KTAU(IBULL) * 100 - GO TO 4170 - 4168 KTIME = KTIME - 2400 - KDD = KDD + 1 - 4170 CONTINUE - IF (KTIME.GE.2400) THEN - GO TO 4168 - END IF - GO TO 4174 - 4172 KDD = KDD - MDAYS(MM) - MM = MM + 1 - IF (MM.GT.12) THEN - MM = 1 - END IF - 4174 CONTINUE - IF (KDD.GT.MDAYS(MM)) THEN - GO TO 4172 - END IF - KTIME = KTIME + KDD * 10000 - INPOS = 8 - N1 = 1 - N2 = 6 - CALL W3AI15 (KTIME,line,N1,N2,'-') - do i = 1, 6 - ktty(i+inpos-1,klin) = line(i:i) - enddo - INPOS = INPOS + N2 - INPOS = 15 - KTTY(INPOS,KLIN) = KT(1:1) - INPOS = 16 - KTTY(INPOS,KLIN) = KT(2:2) - INPOS = 17 - KCNT(KLIN) = INPOS - 1 - WRITE (6,100)(KTTY(N,KLIN),N=1,69) - KLIN = KLIN + 1 -C -C FOR EACH LATITUDE BAND -C - JLAT=NLAT(IBULL) - LATEND = LATSIX + (NLAT(IBULL) - 1) * ILTINC - LONEND = LONSIX + (NLON(IBULL)-1) * ILNINC - DO 4500 MLAT = 1, JLAT - ILAT = LATSIX - ((MLAT-1) * IABS(ILTINC)) -C -C LATITUDE INSERT -C - VALLAT = (10*ULCLAT(IBULL))+(MLAT-1)*(ILTINC*2.5)*10. - IF (KHEM.EQ.2) VALLAT = (10*ULCLAT(IBULL))+(MLAT-1) - * * (-ILTINC*2.5) * 10. - LATVAL = VALLAT + .5 - N1 = 1 - N2 = 3 -c CALL W3AI15 (LATVAL,KTTY(1,KLIN),N1,N2,'-') - CALL W3AI15 (LATVAL,line,N1,N2,'-') - do i = 1, 3 - ktty(i,klin) = line(i:i) - enddo - KTTY(4,KLIN) = ALFAN - IF (KHEM.EQ.2) KTTY(4,KLIN) = ALFAS -C -C LONGITUDE INSERT, IF ON FIRST LATITUDE LABEL LINE -C - INPOS = 5 - IF (KLIN.GT.3) GO TO 4203 - VALLON = ULCLON(IBULL) * 10 - LONVAL = VALLON + .5 - KLON=NLON(IBULL) - EWINDC=B(IBULL) - DO 4200 I = 1, KLON - K = 4 - IF (I.EQ.1) THEN - K = 2 - END IF -C -C INSERT LEAD SPACES -C - INPOS = INPOS + K -C -C INSERT LONGITUDE VALUE -C - N1 = 1 - N2 = 4 - CALL W3AI15 (LONVAL,line,N1,N2,'-') - do ii = 1, 4 - ktty(ii+inpos-1,klin) = line(ii:ii) - enddo - INPOS = INPOS + N2 - KTTY(INPOS,KLIN) = EWINDC - INPOS = INPOS + 1 - IF(LONVAL.GE.1800) THEN - EWINDC=ALFAW - END IF - IF(LONVAL.GT.1800) THEN - LONVAL=LONVAL-(LONVAL-180) - END IF - IF (EWINDC.EQ.ALFAE) THEN - GO TO 4180 - END IF - LONVAL = LONVAL - ILNINC * 25 - GO TO 4200 - 4180 LONVAL = LONVAL + ILNINC * 25 - 4200 CONTINUE - 4203 KCNT(KLIN) = INPOS -1 - WRITE (6,100)(KTTY(N,KLIN),N=1,69) - KLIN = KLIN + 1 -C -C PROCESS TROPOPAUSE HEIGHTS IF FLAG IS ON -C - IF (MAXTRP(IBULL).NE.1) THEN - GO TO 4250 - END IF -C -C TROPOPAUSE HEIGHTS -C - INPOS = 1 - DO 4205 I = 1, 4 - KTTY(INPOS,KLIN) = TROP1(I) - INPOS = INPOS + 1 - 4205 CONTINUE - DO 4210 ILONG=LONSIX,LONEND,ILNINC - K = 1 - IF (INPOS.GT.5) K = 6 - INPOS = INPOS + K - N1 = 1 - N2 = 3 -c CALL W3AI15 (ITROP(ILONG,ILAT), -c * KTTY(INPOS,KLIN),N1,N2,'-') - CALL W3AI15 (ITROP(ILONG,ILAT), - * line,N1,N2,'-') - do ii = 1, 3 - ktty(ii+inpos-1,klin) = - & line(ii:ii) - enddo - INPOS = INPOS + N2 - 4210 CONTINUE - KCNT(KLIN) = INPOS - 1 - WRITE (6,100)(KTTY(N,KLIN),N=1,69) - KLIN = KLIN + 1 -C -C MAX WIND INFORMATION -C - INPOS = 1 - DO 4220 I = 1, 4 - KTTY(INPOS,KLIN) = MAXW1(I) - INPOS = INPOS + 1 - 4220 CONTINUE - KLON=NLON(IBULL) - DO 4130 ILONG=LONSIX,LONEND,ILNINC - KTTY(INPOS,KLIN) = SPACE - INPOS = INPOS + 1 - N2 = 3 - CALL W3AI15 (MAXHGT(ILONG,ILAT),line,N1,N2,'-') - do ii = 1, 3 - ktty(ii+inpos-1,klin) = - & line(ii:ii) - enddo - INPOS = INPOS + N2 - N2 = 5 - CALL W3AI15 (IDDFF(ILONG,ILAT,10),line, - * N1,N2,'-') - do ii = 1, 5 - ktty(ii+inpos-1,klin) = - & line(ii:ii) - enddo - INPOS = INPOS + N2 - 4130 CONTINUE - KCNT(KLIN) = INPOS -1 - WRITE (6,100)(KTTY(N,KLIN),N=1,69) - KLIN = KLIN + 1 -C -C WINDS BY LEVELS -C - 4250 DO 4400 J = 1, 9 - KLVL = 10 - J - INPOS=1 - IF (LVL(KLVL,IBULL).NE.1) THEN - GO TO 4400 - END IF -C -C ENTER HEIGHT VALUE FOR THIS BULLETIN LINE -C - KTTY(INPOS,KLIN) = ALFAF - INPOS = INPOS + 1 - N1 = 1 - N2 = 3 - CALL W3AI15 (LVLNNN(KLVL),line, - * N1,N2,'-') - do ii = 1, 3 - ktty(ii+inpos-1,klin) = - & line(ii:ii) - enddo - INPOS = INPOS + N2 -C -C WINDS BY LONGITUDE -C - DO 4300 ILONG=LONSIX,LONEND,ILNINC - LONPTR = ILONG - IF (LONPTR.GE.145) THEN - LONPTR = LONPTR - 144 - END IF -C -C INSERT LEAD SPACE -C - KTTY(INPOS,KLIN) = SPACE - INPOS = INPOS + 1 -C -C MOVE WIND TO OUTPUT LOCATION -C - N1 = 1 - N2 = 5 - IDF = IDDFF(ILONG,ILAT,KLVL) - IF (IDF.LT.1000.AND.IDF.GE.0) THEN - IDDFF(ILONG,ILAT,KLVL)= IDF+36000 - END IF - CALL W3AI15 (IDDFF(ILONG,ILAT,KLVL),WORKA,N1,N2,'-') - DO 4275 N=1,N2 - KTTY(INPOS,KLIN)=WORKB(N) - INPOS=INPOS+1 - 4275 CONTINUE -C -C MOVE TEMPERATURE TO OUTPUT LOCATION -C - KTTY(INPOS,KLIN)= ALFAM - IF(ITEMP(ILONG,ILAT,KLVL).GE.0) THEN - KTTY(INPOS,KLIN)=ALFAP - END IF - INPOS=INPOS+1 - KTEMP=IABS(ITEMP(ILONG,ILAT,KLVL)) - N2 = 2 - CALL W3AI15 (KTEMP,WORKA,N1,N2,'-') - DO 4280 N=1,N2 - KTTY(INPOS,KLIN)=WORKB(N) - INPOS=INPOS+1 -4280 CONTINUE -4300 CONTINUE -C -C WRITE LINE TO ARCHIVE/TTY OUTPUT -C - KCNT(KLIN)=INPOS-1 - WRITE (6,100)(KTTY(N,KLIN),N=1,69) - 100 FORMAT (1X,69A1) - KLIN=KLIN+1 -C - 4400 CONTINUE -C - 4500 CONTINUE -C -C CALL ROUTINE TO FORMAT TTY MSG FOR TRANSMISSION -C & PASS TO TRAN FILE -C -C -C ------------------------------------------------------- -C COMMUNICATIONS PREFIX - ICAT = NCAT(IBULL) - AREG(1:6) = BLANKS(1:6) - IBCKUP = 0 - IDAYTP = 3 -c CALL W3FI61(MOUT,ICAT,AREG,IBCKUP,IDAYTP,IERR) - call w3ai15(icat,line,1,7,'-') - do ii = 1, 40 - mout(ii) = space - enddo - do ii = 3, 7 - mout(ii) = line(ii-2:ii-2) - enddo - write(mout,4510) - 4510 format("'") - mout(2) = '1' -C ------------------------------------------------------- - MPTR = 41 -C -C DO ALL TTY LINES -C - DO 4550 II= 1, KLIN -C -C DO ALL CHARACTERS IN TTY LINE -C - JCNT = KCNT(II) - DO 4525 J = 1, JCNT - MOUT(MPTR) = KTTY(J,II) - MPTR = MPTR + 1 - IF (MPTR.LE.1280) GO TO 4525 -c WRITE (KTRAN)(MOUT(N),N=1,1280), -c & lfascii - WRITE (KTRAN,REC=IREC)(MOUT(N),N=1,1280),lfascii - irec=irec+1 -C WRITE (6,5812)(MOUT(N),N=1,1280) - DO 4522 K = 1, 1280 - MOUT(K) = SPACE - 4522 CONTINUE - MPTR = 1 - 4525 CONTINUE -C -C CRCRLF INSERTION -C - DO 4540 J = 1,3 - IF (J.LE.2) GO TO 4530 - MOUT(MPTR) = LF - GO TO 4535 - 4530 MOUT(MPTR) = CR - 4535 MPTR = MPTR + 1 - IF (MPTR.LE.1280) GO TO 4540 -c WRITE (KTRAN)(MOUT(N),N=1,1280), -c & lfascii - WRITE (KTRAN,REC=IREC)(MOUT(N),N=1,1280),lfascii - irec=irec+1 - -C WRITE (6,5812)(MOUT(N),N=1,1280) - MPTR = 1 - DO 4537 K = 1, 1280 - MOUT(K) = SPACE - 4537 CONTINUE - 4540 CONTINUE -C - 4550 CONTINUE -C END OF BULLETIN FOR TRAN, INSERT ETX - MOUT(MPTR)=ETX - MPTR=MPTR + 1 - IF(MPTR.LE.1280) GO TO 4551 -c WRITE(KTRAN)(MOUT(N),N=1,1280), -c & lfascii - WRITE (KTRAN,REC=IREC)(MOUT(N),N=1,1280),lfascii - irec=irec+1 - - MPTR=1 - 4551 CONTINUE -C -C IF BLOCK CONTAINS DATA, WRITE TO TRAN FILE -C - IF (MPTR.LE.1) GO TO 4560 -c WRITE (KTRAN)(MOUT(N),N=1,1280), -c & lfascii - WRITE (KTRAN,REC=IREC)(MOUT(N),N=1,1280),lfascii - irec=irec+1 - - 4599 FORMAT(16(80A1)) -C WRITE (6,5812)(MOUT(N),N=1,1280) - DO 4545 K=1,1280 - MOUT(K)=SPACE - 4545 CONTINUE - 4560 CONTINUE - WRITE (6,110) - 110 FORMAT(1X,' ') - WRITE (6,110) - BULCNT=BULCNT+1 - MOUT(MPTR)=KETX - 4600 CONTINUE -C TRANSMISSION SECTION -C -C -C ARE THERE ANY BULLETINS READY FOR TRANSMISSION -C - IF (BULCNT.GT.0) GO TO 8000 - CALL W3TAGE('WINTEMV') - GO TO 9999 -C -C5812 FORMAT (16(1X,80A1,/)) -C -C RETURN FOR NEXT BULLETIN - 8000 CONTINUE - 9000 CONTINUE -C - KRET = 0 -C -C SWITCH TO PREVENT UNWANTED TRANSMISSIONS -C COMMENT OUT NEXT LINE TO PERMIT TRANSMISSION OF BULLETINS -C IF (KRET.EQ.0) GO TO 9800 -C -C -c REWIND KTRAN -c CALL W3AG15 ('FT24F001','TRAN ',KRET) -c IF (KRET.NE.0) THEN -c PRINT *,'ERROR RETURN FROM W3AG15 =',KRET -c WRITE(6,910) -c END IF -C - 9999 CONTINUE - CALL W3TAGE('WINTEMV') - 4999 STOP - 910 FORMAT (' BULLETINS WERE NOT POSTED') - 920 FORMAT (' ',8A1,2X,44A1,2X,8A1,2X,6A1,2X,A1) - END diff --git a/ush/drive_makeprepbufr.sh b/ush/drive_makeprepbufr.sh index 7b098219f5..ad36904724 100755 --- a/ush/drive_makeprepbufr.sh +++ b/ush/drive_makeprepbufr.sh @@ -39,6 +39,8 @@ DONST=${DONST:-"NO"} ############################################################### # Set script and dependency variables +export COMPONENT=${COMPONENT:-atmos} + GDATE=$($NDATE -$assim_freq $CDATE) cymd=$(echo $CDATE | cut -c1-8) @@ -49,13 +51,13 @@ ghh=$(echo $GDATE | cut -c9-10) OPREFIX="${CDUMP}.t${chh}z." OSUFFIX=".bufr_d" GPREFIX="gdas.t${ghh}z." -GSUFFIX=".nemsio" +GSUFFIX=${GSUFFIX:-$SUFFIX} APREFIX="${CDUMP}.t${chh}z." -ASUFFIX=".nemsio" +ASUFFIX=${ASUFFIX:-$SUFFIX} -COMIN_OBS=${COMIN_OBS:-"$DMPDIR/$CDATE/$CDUMP"} -COMIN_GES=${COMIN_GES:-"$ROTDIR/gdas.$gymd/$ghh"} -COMOUT=${COMOUT:-"$ROTDIR/$CDUMP.$cymd/$chh"} +COMIN_OBS=${COMIN_OBS:-"$DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc}"} +COMIN_GES=${COMIN_GES:-"$ROTDIR/gdas.$gymd/$ghh/$COMPONENT"} +COMOUT=${COMOUT:-"$ROTDIR/$CDUMP.$cymd/$chh/$COMPONENT"} [[ ! -d $COMOUT ]] && mkdir -p $COMOUT export DATA="$RUNDIR/$CDATE/$CDUMP/prepbufr" [[ -d $DATA ]] && rm -rf $DATA diff --git a/ush/emcsfc_ice_blend.sh b/ush/emcsfc_ice_blend.sh deleted file mode 100755 index 35f15d61f8..0000000000 --- a/ush/emcsfc_ice_blend.sh +++ /dev/null @@ -1,200 +0,0 @@ -#!/bin/sh - -#### UNIX Script Documentation Block ################################### -# . . -# Script name: emcsfc_ice_blend.sh -# RFC Contact: George Gayno -# Abstract: This script calls the emcsfc_ice_blend program to create -# a global ice concentation from a blend of National Ice Center IMS data -# and EMC/MMAB 5-minute data. -# -# Script History Log: -# July 2014 Gayno Initial version -# Oct 2014 Gayno The emcsfc_ice_blend program was modified to -# use all grib 2 for i/o. Modify default -# filenames to use 'grib2' extension. -# Aug 2015 Gayno Convert output blended ice file from -# grib 2 to grib 1. Bring up to NCO standards. -# -# Usage: -# Parameters: [no arguments] -# Input Files: -# $IMS_FILE - ims ice cover data (grib 1 or 2) -# $FIVE_MIN_ICE_FILE - 5-minute global ice concentration (grib 2) -# $FIVE_MIN_ICE_MASK_FILE - land/sea mask of $FIVE_MIN_ICE_FILE -# (grib 2) -# Output Files: -# $BLENDED_ICE_FILE - blended ice concentration file. program -# produces grib 2. script converts to -# grib 1 expected by gfs. -# -# Condition codes: -# 0 - normal termination -# non 0 - input data is missing or emcsfc_ice_blend program -# terminated abnormally. -# -# Attributes: -# Language: RedHat Linux -# Machine: NCEP WCOSS -# -######################################################################### - -VERBOSE=${VERBOSE:-"YES"} -if [[ "$VERBOSE" == YES ]]; then - set -x -fi - -#----------------------------------------------------------------------- -# the "postmsg", "startmsg" and "prep_step" utilities -# are only used in ncep ops when the "prod_util" module is loaded. -#----------------------------------------------------------------------- - -use_prod_util=`echo $UTILROOT` -if ((${#use_prod_util} != 0)); then - use_prod_util="true" -else - use_prod_util="false" -fi - -export pgm=emcsfc_ice_blend -if test "$use_prod_util" = "true" ; then - startmsg -fi - -#------------------------------------------------------------------------ -# working directory -#------------------------------------------------------------------------ - -DATA=${DATA:-$PWD} -if [ ! -d $DATA ]; then - mkdir -p $DATA -fi -cd $DATA - -#------------------------------------------------------------------------ -# set up script variables -#------------------------------------------------------------------------ - -# copy output ice blend data to com? -SENDCOM=${SENDCOM:-"NO"} - -envir=${envir:-"prod"} -NWROOT=${NWROOT:-"/nw${envir}"} - -HOMEgfs=${HOMEgfs:-${NWPROD:-$NWROOT/gfs.${gfs_ver:?}}} -FIXam=${FIXam:-$HOMEgfs/fix/fix_am} -EXECgfs=${EXECgfs:-$HOMEgfs/exec} - -# output com directory. -COMOUT=${COMOUT:-$PWD} - -# the input data. ims may be grib1 or grib2. five_min files are grib 2. -IMS_FILE=${IMS_FILE:-"ims.grib2"} -FIVE_MIN_ICE_FILE=${FIVE_MIN_ICE_FILE:-"seaice.5min.grib2"} -FIVE_MIN_ICE_MASK_FILE=${FIVE_MIN_ICE_MASK_FILE:-${FIXam}/emcsfc_gland5min.grib2} - -# the output ice blend data (grib) -BLENDED_ICE_FILE=${BLENDED_ICE_FILE:-seaice.5min.blend} - -# the program executable -BLENDICEEXEC=${BLENDICEEXEC:-$EXECgfs/emcsfc_ice_blend} - -# standard output file -pgmout=${pgmout:-OUTPUT} - -#------------------------------------------------------------------------ -# Interpolate ims data to ncep grid 173 (the grid used by mmab 5-minute ice data). -# If ims is grib1 format, convert to grib2. If ims data is missing, then -# don't run ice blend program. Copy old blended data to current directory. -#------------------------------------------------------------------------ - -if [ -f "${IMS_FILE}" ] -then - $WGRIB2 -Sec0 ${IMS_FILE} 2>&1 | grep "grib1 message" - status=$? - if (( status == 0 )); then - $CNVGRIB -g12 -p40 ${IMS_FILE} ./ims.grib2 - else - cp ${IMS_FILE} ./ims.grib2 - fi - $WGRIB2 ims.grib2 -match "ICEC" -grib ims.icec.grib2 - grid173="0 0 0 0 0 0 0 0 4320 2160 0 0 89958000 42000 48 -89958000 359958000 83000 83000 0" - $COPYGB2 -x -i3 -g "$grid173" ims.icec.grib2 ims.icec.5min.grib2 -else - msg="WARNING in ${pgm}: IMS ice data missing. Can not run program." - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - exit 3 -fi - -#------------------------------------------------------------------------ -# Does EMC/MMAB 5-minute ice data exist? If not, don't run ice blend -# program. Copy old blended data to current directory. -#------------------------------------------------------------------------ - -if [ ! -f ${FIVE_MIN_ICE_FILE} ] -then - msg="WARNING in ${pgm}: MMAB ice data missing. Can not run program." - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - exit 5 -fi - -#------------------------------------------------------------------------ -# Run program to blend data. -#------------------------------------------------------------------------ - -if test "$use_prod_util" = "true" ; then - . prep_step -fi - -# These are input files. -export FORT17="$FIVE_MIN_ICE_MASK_FILE" -export FORT11="ims.icec.5min.grib2" -export FORT15="$FIVE_MIN_ICE_FILE" - -# This is the output blended file -export FORT51="$BLENDED_ICE_FILE" - -$BLENDICEEXEC >> $pgmout 2> errfile -rc=$? - -#------------------------------------------------------------------------ -# Did program run without error? -# -# If no, copy old blended ice file to current directory. -# -# If yes, convert file from grib 2 to grib 1 expected by gfs as -# follows: -# - use wgrib 2 to set corner point longitude to 0.042 degrees -# to prevent round-off error during the cnvgrib step. -# - use cnvgrib to convert from grib2 to grib 1. -# - use copygb to replace bitmap with '1.57' land flag value -# expected by global cycle program. -#------------------------------------------------------------------------ - -if (( rc != 0 )) -then - msg="WARNING: ${pgm} completed abnormally." - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - exit $rc -else - $WGRIB2 -set_int 3 51 42000 ${BLENDED_ICE_FILE} -grib ${BLENDED_ICE_FILE}.corner - $CNVGRIB -g21 ${BLENDED_ICE_FILE}.corner ${BLENDED_ICE_FILE}.bitmap - rm $BLENDED_ICE_FILE - $COPYGB -M "#1.57" -x ${BLENDED_ICE_FILE}.bitmap $BLENDED_ICE_FILE - msg="${pgm} completed normally." - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - if [ "$SENDCOM" = "YES" ] ; then - cp $BLENDED_ICE_FILE $COMOUT - fi - rm -f ${BLENDED_ICE_FILE}.corner ${BLENDED_ICE_FILE}.bitmap -fi - -exit 0 diff --git a/ush/emcsfc_snow.sh b/ush/emcsfc_snow.sh deleted file mode 100755 index b738ba49e7..0000000000 --- a/ush/emcsfc_snow.sh +++ /dev/null @@ -1,242 +0,0 @@ -#!/bin/ksh - -#### UNIX Script Documentation Block ################################### -# . . -# Script name: emcsfc_snow.sh -# RFC Contact: George Gayno -# Abstract: This script calls the emcsfc_snow2mdl program to create a -# model snow analysis from IMS snow cover and AFWA snow depth data. -# -# Script History Log: -# 07/2014 Gayno Initial version -# 12/2014 Gayno Use grib 2 version of snow cover climo file. -# Add $OUTPUT_GRIB2 environment variable to -# control whether model analysis is grib 1 or -# grib 2. -# 08/2015 Gayno Bring up to current NCO standard. -# -# Usage: -# Parameters: < no arguments > -# Input files: -# $GFS_LONSPERLAT_FILE - definition of gfs reduced grid (text) -# $MODEL_SLMASK_FILE - model landmask (grib 1 or 2) -# $MODEL_LATITUDE_FILE - model latitude (grib 1 or 2) -# $MODEL_LONGITUDE_FILE - model longitude (grib 1 or 2) -# $AFWA_NH_FILE - nh afwa snow data (grib 1) -# $AFWA_SH_FILE - sh afwa snow data (grib 1) -# $IMS_FILE - nh ims snow cover data (grib 2) -# $CLIMO_QC - nh climatological snow cover (grib 2) -# fort.41 - program configuration namelist -# Output files: -# $MODEL_SNOW_FILE - output snow analysis on model grid (grib 1 or 2) -# -# Condition codes: -# 0 - normal termination -# $rc1 - non-zero status indicates corrupt ims data. -# $rc2 - non-zero status indicates a problem in emcsfc_snow2mdl execution. -# see source code for details - /nwprod/gfs.vX.Y.Z/sorc/emcsfc_snow2mdl.fd -# -# If a non-zero status occurs, no model snow analysis will be created. -# This is not fatal to the model executation. But any problems should -# be investigated. -# -# Attributes: -# Language: RedHat Linux -# Machine: NCEP WCOSS -# -######################################################################### - -VERBOSE=${VERBOSE:-"YES"} -if [[ "$VERBOSE" == YES ]]; then - set -x -fi - -#----------------------------------------------------------------------- -# the "postmsg", "startmsg" and "prep_step" utilities -# are only used in ncep ops when the "prod_util" module is loaded. -#----------------------------------------------------------------------- - -use_prod_util=`echo $UTILROOT` -if ((${#use_prod_util} != 0)); then - use_prod_util="true" -else - use_prod_util="false" -fi - -export pgm=emcsfc_snow2mdl -if test "$use_prod_util" = "true" ; then - startmsg -fi - -#------------------------------------------------------------------------ -# Path names -#------------------------------------------------------------------------ - -envir=${envir:-"prod"} -NWROOT=${NWROOT:-"/nw${envir}"} -HOMEgfs=${HOMEgfs:-$NWROOT/gfs.${gfs_ver:?}} -EXECgfs=${EXECgfs:-$HOMEgfs/exec} -FIXam=${FIXam:-$HOMEgfs/fix/fix_am} - -COMOUT=${COMOUT:-$PWD} - -#------------------------------------------------------------------------ -# The snow2mdl executable -#------------------------------------------------------------------------ - -SNOW2MDLEXEC=${SNOW2MDLEXEC:-${EXECgfs}/emcsfc_snow2mdl} - -#------------------------------------------------------------------------ -# Fixed files that describe the model grid: landmask, latitudes/longitudes. -# And for gfs only, the definition of the reduced grid (lonsperlat). -# The lonsperlat file is optional. If not chosen, will create gfs -# snow analysis on the 'full' grid. -#------------------------------------------------------------------------ - -MODEL_SLMASK_FILE=${MODEL_SLMASK_FILE:-global_slmask.t1534.3072.1536.grb} -MODEL_LATITUDE_FILE=${MODEL_LATITUDE_FILE:-global_latitudes.t1534.3072.1536.grb} -MODEL_LONGITUDE_FILE=${MODEL_LONGITUDE_FILE:-global_longitudes.t1534.3072.1536.grb} -GFS_LONSPERLAT_FILE=${GFS_LONSPERLAT_FILE:-global_lonsperlat.t1534.3072.1536.txt} - -#------------------------------------------------------------------------ -# Input snow data. ims snow cover and afwa snow depth. ims is NH only. -# In OPS, we run with ims only, or ims and afwa. afwa data is too -# unreliable to use on its own. ims is grib2. afwa is grib1. -#------------------------------------------------------------------------ - -AFWA_NH_FILE=${AFWA_NH_FILE:-"NPR.SNWN.SP.S1200.MESH16"} -AFWA_SH_FILE=${AFWA_SH_FILE:-"NPR.SNWS.SP.S1200.MESH16"} -IMS_FILE=${IMS_FILE:-"imssnow96.grb.grib2"} - -#------------------------------------------------------------------------ -# File of snow cover climo used to qc the input snow data -#------------------------------------------------------------------------ - -CLIMO_QC=${CLIMO_QC:-${FIXam}/emcsfc_snow_cover_climo.grib2} - -#------------------------------------------------------------------------ -# Output snow analysis on model grid -#------------------------------------------------------------------------ - -MODEL_SNOW_FILE=${MODEL_SNOW_FILE:-"snogrb_model"} -OUTPUT_GRIB2=${OUTPUT_GRIB2:-.false.} # grib 1 when false. - -SENDCOM=${SENDCOM:-NO} - -#------------------------------------------------------------------------ -# working directory -#------------------------------------------------------------------------ - -DATA=${DATA:-$(pwd)} -if [ ! -d $DATA ]; then - mkdir -p $DATA -fi -cd $DATA - -#------------------------------------------------------------------------ -# Do a quick check of the ims data to ensure it is not corrupt. -# WGRIB2 works for a grib 1 or grib 2 file. If IMS is bad, -# don't run emcsfc_snow2mdl program because afwa data alone is -# unreliable. -#------------------------------------------------------------------------ - -$WGRIB2 ${IMS_FILE} -rc1=$? - -if ((rc1 != 0));then - msg="WARNING: ${pgm} detects corrupt IMS data. Can not run." - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - exit $rc1 -fi - -#------------------------------------------------------------------------ -# The model analysis time is set to the ims valid time, because the -# ims data has highest priority of all input data. -#------------------------------------------------------------------------ - -$WGRIB2 -Sec0 ${IMS_FILE} 2>&1 | grep "grib1 message" -status=$? -if (( status == 0 )); then # grib 1 file - tempdate=$($WGRIB -v $IMS_FILE | head -1) - typeset -L10 IMSDATE10 - IMSDATE10=${tempdate#*D=} -else # grib 2 file - tempdate=$($WGRIB2 -t $IMS_FILE | head -1) - typeset -L10 IMSDATE10 - IMSDATE10=${tempdate#*d=} -fi -IMSYEAR=$(echo $IMSDATE10 | cut -c1-4) -IMSMONTH=$(echo $IMSDATE10 | cut -c5-6) -IMSDAY=$(echo $IMSDATE10 | cut -c7-8) -IMSHOUR=0 # emc convention is to use 00Z. - -if test "$use_prod_util" = "true" ; then - . prep_step -fi - -rm -f ./fort.41 -cat > ./fort.41 << ! - &source_data - autosnow_file="" - nesdis_snow_file="${IMS_FILE}" - nesdis_lsmask_file="" - afwa_snow_global_file="" - afwa_snow_nh_file="${AFWA_NH_FILE}" - afwa_snow_sh_file="${AFWA_SH_FILE}" - afwa_lsmask_nh_file="" - afwa_lsmask_sh_file="" - / - &qc - climo_qc_file="${CLIMO_QC}" - / - &model_specs - model_lat_file="${MODEL_LATITUDE_FILE}" - model_lon_file="${MODEL_LONGITUDE_FILE}" - model_lsmask_file="${MODEL_SLMASK_FILE}" - gfs_lpl_file="${GFS_LONSPERLAT_FILE}" - / - &output_data - model_snow_file="./${MODEL_SNOW_FILE}" - output_grib2=${OUTPUT_GRIB2} - / - &output_grib_time - grib_year=${IMSYEAR} - grib_month=${IMSMONTH} - grib_day=${IMSDAY} - grib_hour=${IMSHOUR} - / - ¶meters - lat_threshold=55.0 - min_snow_depth=0.05 - snow_cvr_threshold=50.0 - / -! - -pgmout=${pgmout:-OUTPUT} - -eval $SNOW2MDLEXEC >> $pgmout 2> errfile -rc2=$? - -if ((rc2!= 0));then - msg="WARNING: ${pgm} completed abnormally." - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - exit $rc2 -else - msg="${pgm} completed normally." - if test "$use_prod_util" = "true" ; then - postmsg "$jlogfile" "$msg" - fi - if test "$SENDCOM" = "YES" - then - cp $MODEL_SNOW_FILE $COMOUT - rm -f $MODEL_SNOW_FILE - fi -fi - -rm -f ./fort.41 - -exit 0 diff --git a/ush/fv3gfs_chgres.sh b/ush/fv3gfs_chgres.sh deleted file mode 100755 index e7733b1bd9..0000000000 --- a/ush/fv3gfs_chgres.sh +++ /dev/null @@ -1,468 +0,0 @@ -#!/bin/sh -#----WCOSS_DELL JOBCARD -#BSUB -P FV3GFS-T2O -#BSUB -o log.chgres.%J -#BSUB -e log.chgres.%J -#BSUB -J fv3_chgres -#BSUB -q devmax -#BSUB -M 2400 -#BSUB -W 10:00 -#BSUB -R span[ptile=14] -#BSUB -n 14 - -#----WCOSS_CRAY JOBCARD -##BSUB -L /bin/sh -##BSUB -P FV3GFS-T2O -##BSUB -oo log.chgres.%J -##BSUB -eo log.chgres.%J -##BSUB -J fv3_chgres -##BSUB -q dev -##BSUB -M 2400 -##BSUB -W 10:00 -##BSUB -extsched 'CRAYLINUX[]' - -#----THEIA JOBCARD -##PBS -N fv3_chgres_driver -##PBS -A fv3-cpu -##PBS -o log.chgres -##PBS -e log.chgres -##PBS -l nodes=1:ppn=24 -##PBS -q batch -##PBS -l walltime=06:00:00 -set -x - -#------------------------------------------------------------------------------------------------- -# This script calls ./ush/global_chgres_driver.sh to create high-res and/or enkf cold -# start initial conditions, and stages all necessary DA files for starting a forecast-only -# or cycled fv3gfs experiment. -# Fanglin Yang, 03/08/2018 -#------------------------------------------------------------------------------------------------- - -export machine=WCOSS_DELL_P3 ;#WCOSS_C, WCOSS_DELL_P3, THEIA - -if [ $machine = WCOSS_C ]; then - export HOMEgfs=/gpfs/hps3/emc/global/noscrub/$USER/git/fv3gfs/master - export PTMP="/gpfs/hps2/ptmp/$USER" - export zero_bias_dir=/gpfs/hps3/emc/global/noscrub/emc.glopara/ICS/bias_zero -elif [ $machine = WCOSS_DELL_P3 ]; then - export HOMEgfs=/gpfs/dell2/emc/modeling/noscrub/$USER/git/fv3gfs/master - export PTMP="/gpfs/dell2/ptmp/$USER" - export zero_bias_dir=/gpfs/hps3/emc/global/noscrub/emc.glopara/ICS/bias_zero -elif [ $machine = THEIA ]; then - export HOMEgfs=/scratch4/NCEPDEV/global/save/$USER/git/fv3gfs/master - export PTMP="/scratch4/NCEPDEV/stmp4/$USER" - export zero_bias_dir=/scratch4/NCEPDEV/global/save/Fanglin.Yang/git/bias_zero -else - echo "Please define HOMEgfs and PTMP for your machine. exit" - exit -fi - -export PSLOT=fv3test -export CDUMP=gdas -export CASE_HIGH=C768 -export CASE_ENKF=C384 -export CDATE=2018050100 - -export NSTSMTH=YES ##apply 9-point smoothing to nsst tref -export NST_TF_CHG=$HOMEgfs/exec/nst_tf_chg.x -export ZERO_BIAS=YES ##zeroed out all bias and radsat files - -#=========================================================== -#=========================================================== - -export ymd=`echo $CDATE | cut -c 1-8` -export cyc=`echo $CDATE | cut -c 9-10` -export yy=`echo $CDATE | cut -c 1-4` -export mm=`echo $CDATE | cut -c 5-6` -export dd=`echo $CDATE | cut -c 7-8` - -export ROTDIR=$PTMP/$PSLOT -export RUNDIR=$ROTDIR/chgres - -export NODES=1 -export APRUNC="" - -. $HOMEgfs/ush/load_fv3gfs_modules.sh -status=$? -[[ $status -ne 0 ]] && exit $status - -if [ $machine = WCOSS_C ]; then - # . $MODULESHOME/init/sh 2>>/dev/null - # module load prod_util prod_envir hpss 2>>/dev/null - # module load PrgEnv-intel 2>>/dev/null - export KMP_AFFINITY=disabled - export OMP_NUM_THREADS_CH=24 - export APRUNC="aprun -n 1 -N 1 -j 1 -d $OMP_NUM_THREADS_CH -cc depth" - export APRUNTF='aprun -q -j1 -n1 -N1 -d1 -cc depth' - export SUB=/u/emc.glopara/bin/sub_wcoss_c - export ACCOUNT=FV3GFS-T2O - export QUEUE=dev - export QUEUE_TRANS=dev_transfer -elif [ $machine = WCOSS_DELL_P3 ]; then - # . /usrx/local/prod/lmod/lmod/init/sh 2>>/dev/null - # module purge 2>>/dev/null - # module load EnvVars/1.0.2 2>>/dev/null - # module load lsf/10.1 2>>/dev/null - # module load ips/18.0.1.163 2>>/dev/null - # module load impi/18.0.1 2>>/dev/null - # module load prod_util/1.1.0 2>>/dev/null - # module load prod_envir/1.0.2 2>>/dev/null - # module load HPSS/5.0.2.5 2>>/dev/null - # module load NetCDF/4.5.0 2>>/dev/null - # module load HDF5-serial/1.10.1 2>>/dev/null - export OMP_NUM_THREADS_CH=14 - export KMP_AFFINITY=disabled - export APRUNC="time" - export APRUNTF="time" - export SUB=/u/emc.glopara/bin/sub_wcoss_d - export ACCOUNT=FV3GFS-T2O - export QUEUE=dev - export QUEUE_TRANS=dev_transfer -elif [ $machine = THEIA ]; then - # source $HOMEgfs/sorc/machine-setup.sh - # module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles - # module load netcdf hdf5/1.8.14 2>>/dev/null - export APRUNC=time - export APRUNTF=time - export OMP_NUM_THREADS_CH=24 - export SUB=/home/Fanglin.Yang/bin/sub_theia - export ACCOUNT=fv3-cpu - export QUEUE=batch - export QUEUE_TRANS=service -else - echo "$machine not supported, exit" - exit -fi - - - -#---------------------------- -#---------------------------- -#--for high-res -#---------------------------- -#---------------------------- -export CASE=$CASE_HIGH -export INIDIR=$RUNDIR/$CDUMP/$CASE -export COMROT=$ROTDIR/${CDUMP}.$ymd/$cyc -export OUTDIR=$COMROT/INPUT -export DATA=$INIDIR/stmp -rm -rf $INIDIR $OUTDIR $DATA -mkdir -p $INIDIR $OUTDIR $DATA -cd $INIDIR ||exit 8 - -#................................................ -if [ -s $COMROOT/gfs/prod/${CDUMP}.${ymd} ]; then -#................................................ - ## get operational real-time data from COMROT - atm=./${CDUMP}.t${cyc}z.atmanl.nemsio - sfc=./${CDUMP}.t${cyc}z.sfcanl.nemsio - nst=./${CDUMP}.t${cyc}z.nstanl.nemsio - biascr=./${CDUMP}.t${cyc}z.abias - biascr_pc=./${CDUMP}.t${cyc}z.abias_pc - aircraft_t_bias=./${CDUMP}.t${cyc}z.abias_air - radstat=./${CDUMP}.t${cyc}z.radstat - for ff in $atm $sfc $nst ; do - cp $COMROOT/gfs/prod/${CDUMP}.${ymd}/$ff . - done - if [ $CDUMP = gdas ]; then - for ff in $biascr $biascr_pc $aircraft_t_bias $radstat ; do - cp $COMROOT/gfs/prod/${CDUMP}.${ymd}/$ff $COMROT/. - done - fi - -#................................................ -else ##get data from HPSS archive -#................................................ - -if [ $CDATE -le 2017072012 ]; then - if [ $CDATE -ge 2016110100 ]; then - oldexp=prnemsrn - elif [ $CDATE -ge 2016050100 ]; then - oldexp=pr4rn_1605 - elif [ $CDATE -ge 2015121500 ]; then - oldexp=pr4rn_1512 - elif [ $CDATE -ge 2015050200 ]; then - oldexp=pr4rn_1505 - elif [ $CDATE -ge 2014073000 ]; then - oldexp=pr4rn_1408 - elif [ $CDATE -ge 2014050100 ]; then - oldexp=pr4rn_1405 - else - echo "NEMS GSM retro ICs do not exit, exit" - exit 1 - fi - - HPSSPATH=/5year/NCEPDEV/emc-global/emc.glopara/WCOSS_C/$oldexp ##use q3fy17 nems gfs parallel ics - tarball_high=${CDATE}${CDUMP}.tar - atm=gfnanl.${CDUMP}.$CDATE - sfc=sfnanl.${CDUMP}.$CDATE - nst=nsnanl.${CDUMP}.$CDATE - biascr=biascr.${CDUMP}.$CDATE - biascr_pc=biascr_pc.${CDUMP}.$CDATE - aircraft_t_bias=aircraft_t_bias.${CDUMP}.$CDATE - radstat=radstat.${CDUMP}.$CDATE -else - HPSSPATH=/NCEPPROD/hpssprod/runhistory/rh$yy/$yy$mm/$yy$mm$dd ##use operational nems gfs nems gfs ics - if [ $CDUMP = gfs ]; then - tarball_high=gpfs_hps_nco_ops_com_gfs_prod_${CDUMP}.${CDATE}.anl.tar - else - tarball_high=gpfs_hps_nco_ops_com_gfs_prod_${CDUMP}.${CDATE}.tar - fi - atm=./${CDUMP}.t${cyc}z.atmanl.nemsio - sfc=./${CDUMP}.t${cyc}z.sfcanl.nemsio - nst=./${CDUMP}.t${cyc}z.nstanl.nemsio - biascr=./${CDUMP}.t${cyc}z.abias - biascr_pc=./${CDUMP}.t${cyc}z.abias_pc - aircraft_t_bias=./${CDUMP}.t${cyc}z.abias_air - radstat=./${CDUMP}.t${cyc}z.radstat -fi - -#--extract ICs from hpss -cat > read_hpss.sh <>/dev/null - - #export machine=$machine - #if [ $machine = WCOSS_C ]; then - # . $MODULESHOME/init/sh 2>>/dev/null - # module load hpss 2>>/dev/null - #elif [ $machine = WCOSS_DELL_P3 ]; then - # . /usrx/local/prod/lmod/lmod/init/sh 2>>/dev/null - # module load HPSS/5.0.2.5 2>>/dev/null - #elif [ $machine = THEIA ]; then - # source $HOMEgfs/sorc/machine-setup.sh 2>>/dev/null - # module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles 2>>/dev/null - # module load hpss 2>>/dev/null - #fi - - cd $INIDIR - htar -xvf $HPSSPATH/$tarball_high $atm $sfc $nst - if [ $CDUMP = gdas ]; then - cd $COMROT - htar -xvf $HPSSPATH/$tarball_high $biascr $biascr_pc $aircraft_t_bias $radstat - if [ $CDATE -le 2017072000 ]; then - mv biascr.${CDUMP}.$CDATE ${CDUMP}.t${cyc}z.abias - mv biascr_pc.${CDUMP}.$CDATE ${CDUMP}.t${cyc}z.abias_pc - mv aircraft_t_bias.${CDUMP}.$CDATE ${CDUMP}.t${cyc}z.abias_air - mv radstat.${CDUMP}.$CDATE ${CDUMP}.t${cyc}z.radstat - fi - fi -EOF1 -chmod u+x read_hpss.sh -$SUB -a $ACCOUNT -q $QUEUE_TRANS -p 1/1/S -r 1024/1/1 -t 2:00:00 -j read_hpss -o read_hpss.out $INIDIR/read_hpss.sh - -#................................................ -fi -#................................................ - - -testfile=$INIDIR/$sfc -nsleep=0; tsleep=120; msleep=50 -while test ! -s $testfile -a $nsleep -lt $msleep;do - sleep $tsleep; nsleep=`expr $nsleep + 1` -done -sleep 300 - -if [ ! -s $testfile ]; then - echo "$testfile does not exist, exit !" - exit 1 -fi - - -#------------------------------ -if [ $NSTSMTH = "YES" ]; then -#------------------------------ -mv $nst fnsti -rm -f tf_chg_parm.input -cat >tf_chg_parm.input < read_hpss.sh <>/dev/null - - #export machine=$machine - #if [ $machine = WCOSS_C ]; then - # . $MODULESHOME/init/sh 2>>/dev/null - # module load hpss 2>>/dev/null - #elif [ $machine = WCOSS_DELL_P3 ]; then - # . /usrx/local/prod/lmod/lmod/init/sh 2>>/dev/null - # module load HPSS/5.0.2.5 2>>/dev/null - #elif [ $machine = THEIA ]; then - # source $HOMEgfs/sorc/machine-setup.sh 2>>/dev/null - # module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles 2>>/dev/null - # module load hpss 2>>/dev/null - #fi - - cd $INIDIR - htar -xvf $HPSSPATH/$tarball_enkf_atm - if [ $CDATE -le 2017072000 ]; then - htar -xvf $HPSSPATH/$tarball_enkf_sfcnst - fi -EOF -chmod u+x read_hpss.sh -$SUB -a $ACCOUNT -q $QUEUE_TRANS -p 1/1/S -r 1024/1/1 -t 2:00:00 -j read_hpss -o read_hpss.out $INIDIR/read_hpss.sh - -#................................................ -fi -#................................................ - - -nsleep=0; tsleep=120; msleep=50 -while test ! -s $testfile -a $nsleep -lt $msleep;do - sleep $tsleep; nsleep=`expr $nsleep + 1` -done - -if [ ! -s $testfile ]; then - echo " $testfile does not exist, exit" - exit -fi - -#--------------------------- -n=1 -while [ $n -le 80 ]; do -#--------------------------- -mem=$(printf %03i $n) -mchar=mem$(printf %03i $n) - - -export COMROT=$ROTDIR/enkfgdas.$ymd/$cyc/$mchar -export OUTDIR=$COMROT/INPUT -export DATA=$INIDIR/$mchar -rm -rf $OUTDIR $DATA -mkdir -p $OUTDIR $DATA - -atm=${CDUMP}.t${cyc}z.atmanl.nemsio -sfc=${CDUMP}.t${cyc}z.sfcanl.nemsio -nst=${CDUMP}.t${cyc}z.nstanl.nemsio -rm -rf $atm $sfc $nst - -if [ $CDATE -le 2017072000 ]; then - ln -fs siganl_${CDATE}_$mchar $atm - ln -fs sfcanl_${CDATE}_$mchar $sfc - ln -fs nstanl_${CDATE}_$mchar $nst - cp nstanl_${CDATE}_$mchar fnsti -else - ln -fs gdas.t${cyc}z.ratmanl.${mchar}.nemsio $atm - ln -fs gdas.t${cyc}z.sfcanl.${mchar}.nemsio $sfc - ln -fs gdas.t${cyc}z.nstanl.${mchar}.nemsio $nst - cp gdas.t${cyc}z.nstanl.${mchar}.nemsio fnsti -fi - -#------------------------------ -if [ $NSTSMTH = "YES" ]; then -#------------------------------ -rm -f tf_chg_parm.input -cat >tf_chg_parm.input <50km, C384->25km, C768->13km, C1152->8.5km, C3072->3.2km -#---------------------------------------------------------------------------------------- - -if [ $res -eq 48 ]; then - export cd4=0.12; export max_slope=0.12; export n_del2_weak=4; export peak_fac=1.1 -elif [ $res -eq 96 ]; then - export cd4=0.12; export max_slope=0.12; export n_del2_weak=8; export peak_fac=1.1 -elif [ $res -eq 128 ]; then - export cd4=0.13; export max_slope=0.12; export n_del2_weak=8; export peak_fac=1.1 -elif [ $res -eq 192 ]; then - export cd4=0.15; export max_slope=0.12; export n_del2_weak=12; export peak_fac=1.05 -elif [ $res -eq 384 ]; then - export cd4=0.15; export max_slope=0.12; export n_del2_weak=12; export peak_fac=1.0 -elif [ $res -eq 768 ]; then - export cd4=0.15; export max_slope=0.12; export n_del2_weak=16; export peak_fac=1.0 -elif [ $res -eq 1152 ]; then - export cd4=0.15; export max_slope=0.16; export n_del2_weak=20; export peak_fac=1.0 -elif [ $res -eq 3072 ]; then - export cd4=0.15; export max_slope=0.30; export n_del2_weak=24; export peak_fac=1.0 -else - echo "grid C$res not supported, exit" - exit -fi - -#---------------------------------------------------------------------------------- -# Make grid and orography. -#---------------------------------------------------------------------------------- - -#---------------------------------------------------------------------------------- -# Uniform grid. -#---------------------------------------------------------------------------------- - -if [ $gtype = uniform ]; then - - export ntiles=6 - export name=C${res} - export grid_dir=$TMPDIR/$name/grid - export orog_dir=$TMPDIR/$name/orog - export filter_dir=$TMPDIR/$name/filter_topo - rm -rf $TMPDIR/$name - mkdir -p $grid_dir $orog_dir $filter_dir - - echo - echo "............ execute fv3gfs_make_grid.sh ................." - $script_dir/fv3gfs_make_grid.sh $res $grid_dir $script_dir - err=$? - if [ $err != 0 ]; then - exit $err - fi - - echo "Begin uniform orography generation at `date`" - -#---------------------------------------------------------------------------------- -# On WCOSS_C use cfp to run multiple tiles simulatneously for the orography -#---------------------------------------------------------------------------------- - - if [ $machine = WCOSS_C ]; then - echo "$script_dir/fv3gfs_make_orog.sh $res 3 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 6 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 1 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 2 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 4 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 5 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - aprun -j 1 -n 4 -N 4 -d 6 -cc depth cfp $TMPDIR/orog.file1 - rm $TMPDIR/orog.file1 - elif [ $machine = THEIA ]; then - for tile in 1 2 3 4 5 6 ; do - echo - echo "............ execute fv3gfs_make_orog.sh for tile $tile .................." - $script_dir/fv3gfs_make_orog.sh $res $tile $grid_dir $orog_dir $script_dir $topo $TMPDIR - done - fi - - echo "End uniform orography generation at `date`" - - echo - echo "............ execute fv3gfs_filter_topo.sh .............." - $script_dir/fv3gfs_filter_topo.sh $res $grid_dir $orog_dir $filter_dir $cd4 $peak_fac $max_slope $n_del2_weak $script_dir $gtype - err=$? - if [ $err != 0 ]; then - exit $err - fi - echo "Grid and orography files are now prepared for uniform grid" - -#---------------------------------------------------------------------------------- -# Stretched grid. -#---------------------------------------------------------------------------------- - -elif [ $gtype = stretch ]; then - - export ntiles=6 - export rn=$( echo "$stetch_fac * 10" | bc | cut -c1-2 ) - export name=C${res}r${rn}_${title} - export grid_dir=$TMPDIR/${name}/grid - export orog_dir=$TMPDIR/$name/orog - export filter_dir=$TMPDIR/${name}/filter_topo - rm -rf $TMPDIR/$name - mkdir -p $grid_dir $orog_dir $filter_dir - - echo - echo "............ execute fv3gfs_make_grid.sh ................." - $script_dir/fv3gfs_make_grid.sh $res $grid_dir $stetch_fac $target_lon $target_lat $script_dir - err=$? - if [ $err != 0 ]; then - exit $err - fi - - echo "Begin stretch orography generation at `date`" - -#---------------------------------------------------------------------------------- -# On WCOSS_C use cfp to run multiple tiles simulatneously for the orography -#---------------------------------------------------------------------------------- - - if [ $machine = WCOSS_C ]; then - echo "$script_dir/fv3gfs_make_orog.sh $res 1 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 3 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 4 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 5 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 2 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 6 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - aprun -j 1 -n 4 -N 4 -d 6 -cc depth cfp $TMPDIR/orog.file1 - rm $TMPDIR/orog.file1 - elif [ $machine = THEIA ]; then - for tile in 1 2 3 4 5 6 ; do - echo - echo "............ execute fv3gfs_make_orog.sh for tile $tile .................." - $script_dir/fv3gfs_make_orog.sh $res $tile $grid_dir $orog_dir $script_dir $topo $TMPDIR - done - fi - - echo "End stretch orography generation at `date`" - - echo - echo "............ execute fv3gfs_filter_topo.sh .............." - $script_dir/fv3gfs_filter_topo.sh $res $grid_dir $orog_dir $filter_dir $cd4 $peak_fac $max_slope $n_del2_weak $script_dir $gtype - err=$? - if [ $err != 0 ]; then - exit $err - fi - echo "Grid and orography files are now prepared for stretched grid" - -#---------------------------------------------------------------------------------- -# Nested grid. -#---------------------------------------------------------------------------------- - -elif [ $gtype = nest ]; then - - export ntiles=7 - export rn=$( echo "$stetch_fac * 10" | bc | cut -c1-2 ) - export name=C${res}r${rn}n${refine_ratio}_${title} - export grid_dir=$TMPDIR/${name}/grid - export orog_dir=$TMPDIR/$name/orog - export filter_dir=$orog_dir # nested grid topography will be filtered online - rm -rf $TMPDIR/$name - mkdir -p $grid_dir $orog_dir $filter_dir - - echo - echo "............ execute fv3gfs_make_grid.sh ................." - $script_dir/fv3gfs_make_grid.sh $res $grid_dir $stetch_fac $target_lon $target_lat $refine_ratio $istart_nest $jstart_nest $iend_nest $jend_nest $halo $script_dir - err=$? - if [ $err != 0 ]; then - exit $err - fi - - echo "Begin stretch nest orography generation at `date`" - -#---------------------------------------------------------------------------------- -# On WCOSS_C use cfp to run multiple tiles simulatneously for the orography -#---------------------------------------------------------------------------------- - - if [ $machine = WCOSS_C ]; then - echo "$script_dir/fv3gfs_make_orog.sh $res 1 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 3 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 4 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 2 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 5 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 6 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - echo "$script_dir/fv3gfs_make_orog.sh $res 7 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - aprun -j 1 -n 4 -N 4 -d 6 -cc depth cfp $TMPDIR/orog.file1 - rm $TMPDIR/orog.file1 - elif [ $machine = THEIA ]; then - for tile in 1 2 3 4 5 6 7; do - echo - echo "............ execute fv3gfs_make_orog.sh for tile $tile .................." - $script_dir/fv3gfs_make_orog.sh $res $tile $grid_dir $orog_dir $script_dir $topo $TMPDIR - done - fi - - echo "Grid and orography files are now prepared for nested grid" - -#---------------------------------------------------------------------------------- -# Regional grid. -#---------------------------------------------------------------------------------- - -elif [ $gtype = regional ]; then - -#---------------------------------------------------------------------------------- -# We are now creating only 1 tile and it is tile 7 -#---------------------------------------------------------------------------------- - - export ntiles=1 - export halop1=4 #we need a halo of 4 for the boundary data - tile=7 - set +x # don't echo all the computation to figure out how many points to add/subtract from start/end nest values - -#---------------------------------------------------------------------------------- -# Number of parent points -#---------------------------------------------------------------------------------- - - nptsx=`expr $iend_nest - $istart_nest + 1` - nptsy=`expr $jend_nest - $jstart_nest + 1` - -#---------------------------------------------------------------------------------- -# Number of compute grid points -#---------------------------------------------------------------------------------- - - npts_cgx=`expr $nptsx \* $refine_ratio / 2` - npts_cgy=`expr $nptsy \* $refine_ratio / 2` - -#---------------------------------------------------------------------------------- -# Figure out how many columns/rows to add in each direction so we have at least -# 5 halo points for make_hgrid and the orography program. -#---------------------------------------------------------------------------------- - - index=0 - add_subtract_value=0 - while (test "$index" -le "0") - do - add_subtract_value=`expr $add_subtract_value + 1` - iend_nest_halo=`expr $iend_nest + $add_subtract_value` - istart_nest_halo=`expr $istart_nest - $add_subtract_value` - newpoints_i=`expr $iend_nest_halo - $istart_nest_halo + 1` - newpoints_cg_i=`expr $newpoints_i \* $refine_ratio / 2` - diff=`expr $newpoints_cg_i - $npts_cgx` - if [ $diff -ge 10 ]; then - index=`expr $index + 1` - fi - done - jend_nest_halo=`expr $jend_nest + $add_subtract_value` - jstart_nest_halo=`expr $jstart_nest - $add_subtract_value` - - echo "================================================================================== " - echo "For refine_ratio= $refine_ratio" - echo " iend_nest= $iend_nest iend_nest_halo= $iend_nest_halo istart_nest= $istart_nest istart_nest_halo= $istart_nest_halo" - echo " jend_nest= $jend_nest jend_nest_halo= $jend_nest_halo jstart_nest= $jstart_nest jstart_nest_halo= $jstart_nest_halo" - echo "================================================================================== " - set -x - - export ntiles=1 - tile=7 - export rn=$( echo "$stetch_fac * 10" | bc | cut -c1-2 ) - export name=C${res}r${rn}n${refine_ratio}_${title} - export grid_dir=$TMPDIR/${name}/grid - export orog_dir=$TMPDIR/$name/orog - export filter_dir=$orog_dir # nested grid topography will be filtered online - rm -rf $TMPDIR/$name - mkdir -p $grid_dir $orog_dir $filter_dir - - echo - echo "............ execute fv3gfs_make_grid.sh ................." - $script_dir/fv3gfs_make_grid.sh $res $grid_dir $stetch_fac $target_lon $target_lat $refine_ratio \ - $istart_nest_halo $jstart_nest_halo $iend_nest_halo $jend_nest_halo $halo $script_dir - err=$? - if [ $err != 0 ]; then - exit $err - fi - - echo "Begin regional orography generation at `date`" - -#---------------------------------------------------------------------------------- -# On WCOSS_C use cfp to run multiple tiles simulatneously for the orography. -# For now we only have one tile but in the future we will have more. -#---------------------------------------------------------------------------------- - - if [ $machine = WCOSS_C ]; then - echo "$script_dir/fv3gfs_make_orog.sh $res 7 $grid_dir $orog_dir $script_dir $topo $TMPDIR " >>$TMPDIR/orog.file1 - aprun -j 1 -n 4 -N 4 -d 6 -cc depth cfp $TMPDIR/orog.file1 - rm $TMPDIR/orog.file1 - elif [ $machine = THEIA ]; then - echo - echo "............ execute fv3gfs_make_orog.sh for tile $tile .................." - $script_dir/fv3gfs_make_orog.sh $res $tile $grid_dir $orog_dir $script_dir $topo $TMPDIR - fi - - echo - echo "............ execute fv3gfs_filter_topo.sh .............." - $script_dir/fv3gfs_filter_topo.sh $res $grid_dir $orog_dir $filter_dir $cd4 $peak_fac $max_slope $n_del2_weak $script_dir $gtype - err=$? - if [ $err != 0 ]; then - exit $err - fi - echo - echo "............ execute shave to reduce grid and orography files to required compute size .............." - cd $filter_dir - -#---------------------------------------------------------------------------------- -# Shave the orography file and then the grid file, the echo creates the input -# file that contains the number of required points in x and y and the input -# and output file names.This first run of shave uses a halo of 4. -# This is necessary so that chgres will create BC's with 4 rows/columns which is -# necessary for pt. -#---------------------------------------------------------------------------------- - - echo $npts_cgx $npts_cgy $halop1 \'$filter_dir/oro.C${res}.tile${tile}.nc\' \'$filter_dir/oro.C${res}.tile${tile}.shave.nc\' >input.shave.orog - echo $npts_cgx $npts_cgy $halop1 \'$filter_dir/C${res}_grid.tile${tile}.nc\' \'$filter_dir/C${res}_grid.tile${tile}.shave.nc\' >input.shave.grid - - if [ $machine = WCOSS_C ]; then - $APRUN $exec_dir/shave.x input.shave.orog.halo$halo - echo $npts_cgx $npts_cgy $halo \'$filter_dir/C${res}_grid.tile${tile}.nc\' \'$filter_dir/C${res}_grid.tile${tile}.shave.nc\' >input.shave.grid.halo$halo - if [ $machine = WCOSS_C ]; then - $APRUN $exec_dir/shave.x input.nml < INPS - echo $OUTGRID >> INPS - echo $orogfile >> INPS - cat INPS - time $executable < INPS - - if [ $? -ne 0 ]; then - echo "ERROR in running $executable " - exit 1 - else - if [ $is_latlon -eq 1 ]; then - export outfile=oro.${lonb}x${latb}.nc - else - export outfile=oro.C${res}.tile${tile}.nc - fi - - mv ./out.oro.nc $outdir/$outfile - echo "file $outdir/$outfile is created" - echo "Successfully running $executable " - exit 0 - fi - - -exit diff --git a/ush/fv3ics.py b/ush/fv3ics.py deleted file mode 100755 index 5b9afba9ed..0000000000 --- a/ush/fv3ics.py +++ /dev/null @@ -1,349 +0,0 @@ -#!/usr/bin/env python -############################################################### -# < next few lines under version control, D O N O T E D I T > -# $Date$ -# $Revision$ -# $Author$ -# $Id$ -############################################################### - - -import os -import sys -import glob -import subprocess -import string -import random -import argparse - - -__author__ = "Rahul Mahajan" -__organization__ = "NOAA/NCEP/EMC" -__email__ = "rahul.mahajan@noaa.gov" -__version__ = '1.0.0' - - -def set_machine(): - - if os.path.isdir('/scratch4'): - return 'THEIA' - elif os.path.isdir('/gpfs/hps2'): - return 'WCOSS_C' - elif os.path.isdir('/gpfs/dell2'): - return 'WCOSS_DELL_P3' - else: - raise NotImplementedError('Unknown machine') - - -def set_paths(): - - if machine in ['THEIA']: - homegfs = "/scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/gfs.v15.0.0" - stmp = "/scratch4/NCEPDEV/stmp4/%s" % os.environ['USER'] - elif machine in ['WCOSS_C']: - homegfs = "/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/gfs.v15.0.0" - stmp = "/gpfs/hps3/stmp/%s" % os.environ['USER'] - elif machine in ['WCOSS_DELL_P3']: - homegfs = "/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/gfs.v15.0.0" - stmp = "/gpfs/dell2/stmp/%s" % os.environ['USER'] - - return homegfs, stmp - - -def get_accountinfo(): - - if machine in ['THEIA']: - queue, account = 'batch', 'fv3-cpu' - elif machine in ['WCOSS_C']: - queue, account = 'dev', 'FV3GFS-T2O' - elif machine in ['WCOSS_DELL_P3']: - queue, account = 'dev', 'FV3GFS-T2O' - - return queue, account - - -def get_jobcard(): - - queue, account = get_accountinfo() - - mdict = {'queue':queue, 'account': account, 'icsdir':icsdir, 'date':date, 'pwd':os.environ['PWD'], 'nthreads':nthreads} - - if machine in ['WCOSS_C']: - - strings = ''' -#BSUB -J fv3ics_ -#BSUB -P {account} -#BSUB -q {queue} -#BSUB -W 0:30 -#BSUB -M 3072 -#BSUB -extsched 'CRAYLINUX[]' -R '1*{{select[craylinux && !vnode]}} + 24*{{select[craylinux && vnode]span[ptile=24] cu[type=cabinet]}}' -#BSUB -e {icsdir}/{date}///fv3ics.log -#BSUB -o {icsdir}/{date}///fv3ics.log -#BSUB -cwd {pwd} -'''.format(**mdict) - - elif machine in ['WCOSS_DELL_P3']: - - strings = ''' -#BSUB -J fv3ics_ -#BSUB -P {account} -#BSUB -q {queue} -#BSUB -W 0:30 -#BSUB -M 3072 -#BSUB -n 1 -#BSUB -R span[ptile=1] -#BSUB -R affinity[core(28):distribute=balance] -#BSUB -e {icsdir}/{date}///fv3ics.log -#BSUB -o {icsdir}/{date}///fv3ics.log -#BSUB -cwd {pwd} -'''.format(**mdict) - - elif machine in ['THEIA']: - - strings = ''' -#PBS -N fv3ics_ -#PBS -A {account} -#PBS -q {queue} -#PBS -l walltime=00:30:00 -#PBS -l nodes=1:ppn={nthreads} -#PBS -o {icsdir}/{date}///fv3ics.log -#PBS -j oe -'''.format(**mdict) - - return strings - - -def get_jobtemplate(): - - strings = '''#!/bin/sh''' - - strings += get_jobcard() - - mdict = {'machine':machine, 'homegfs':homegfs, 'stmp':stmp, 'date':date, 'icsdir':icsdir, 'nthreads':nthreads - } - strings += ''' -set -x -export machine={machine} -target=$(echo $machine | tr '[A-Z]' '[a-z]') - -export HOMEgfs={homegfs} -export STMP={stmp} - -export CDATE={date} -export CASE= -export INIDIR={icsdir}/$CDATE/ -export OUTDIR={icsdir}/$CDATE/$CASE//INPUT -export DATA=$STMP/RUNDIRS/tmpdir.fv3ics/$CDATE/$CASE/ - -export OMP_NUM_THREADS_CH={nthreads} -'''.format(**mdict) - - strings += ''' -export ATMANL=$INIDIR/ -export SFCANL=$INIDIR/ -''' - if nsst: - strings += '''export NSTANL=$INIDIR/ -''' - - if machine in ['WCOSS_C']: - strings += ''' -export APRUNC="aprun -j 1 -n 1 -N 1 -d $OMP_NUM_THREADS_CH -cc depth" - - if machine in ['WCOSS_DELL_P3']: - strings += ''' -export APRUNC="mpirun -n 1" -target="cray" -''' - - strings += ''' -[[ -d $DATA ]] && rm -rf $DATA -[[ -d $OUTDIR ]] && rm -rf $OUTDIR -mkdir -p $OUTDIR - -# Load appropriate modulefiles for global_chgres -source $HOMEgfs/modulefiles/module-setup.sh.inc -module use $HOMEgfs/modulefiles/fv3gfs -module load $HOMEgfs/modulefiles/module_base.wcoss_c -module load global_chgres.$target -module list - -$HOMEgfs/ush/global_chgres_driver.sh -status=$? -exit $status -''' - - return strings - - -def get_jobscript(member, files, jcap, case, strings): - - strings = strings.replace('', member) - strings = strings.replace('', jcap) - strings = strings.replace('', case) - - strings = strings.replace('', files['atmanl']) - strings = strings.replace('', files['sfcanl']) - if nsst: - strings = strings.replace('', files['nstanl']) - - return strings - - -def get_submitcmd(): - - if machine in ['THEIA']: - cmd = 'qsub' - elif machine in ['WCOSS_C']: - cmd = 'bsub <' - elif machine in ['WCOSS_DELL_P3']: - cmd = 'bsub <' - - return cmd - - -def submit_jobs(jobs): - - def _random_id(length=8): - return ''.join(random.sample(string.ascii_letters + string.digits, length)) - - submit_cmd = get_submitcmd() - - for job in jobs: - - script = 'submit_%s.sh' % _random_id() - open(script, 'wb').write(job) - - cmd = '%s %s' % (submit_cmd, script) - try: - subprocess.check_call(cmd, stderr=subprocess.STDOUT, shell=True) - except subprocess.CalledProcessError as e: - print e.output - finally: - if not debug: - os.remove(script) - - return - - -def main(): - - global machine, homegfs, stmp, nthreads - global date, icsdir - global nsst - global CASE_det, CASE_ens, JCAP_det, JCAP_ens - global debug - - icsdirdoc = [] - icsdirdoc.append('Convert GFS files into FV3 files\n') - icsdirdoc.append('\n') - icsdirdoc.append('This script expects the following directory structure:\n') - icsdirdoc.append('\n') - icsdirdoc.append('ICSDIR/ [--icsdir]\n') - icsdirdoc.append('\tYYYYMMDDHH/ [--date]\n') - icsdirdoc.append('\t\tgdas.tHHz.abias\n') - icsdirdoc.append('\t\tgdas.tHHz.abias_pc\n') - icsdirdoc.append('\t\tgdas.tHHz.abias_air\n') - icsdirdoc.append('\t\tgdas.tHHz.radstat\n') - icsdirdoc.append('\t\tT1534/ [--JCAP_det]\n') - icsdirdoc.append('\t\t\tgdas.tHHz.atmanl.nemsio\n') - icsdirdoc.append('\t\t\tgdas.tHHz.sfcanl.nemsio\n') - icsdirdoc.append('\t\t\tgdas.tHHz.nstanl.nemsio (optional)\n') - icsdirdoc.append('\t\tT574/ [--JCAP_ens]\n') - icsdirdoc.append('\t\t\tgdas.tHHz.ratmanl.memXXX.nemsio\n') - icsdirdoc.append('\t\t\tgdas.tHHz.sfcanl.memXXX.nemsio\n') - icsdirdoc.append('\t\t\tgdas.tHHz.nstanl.memXXX.nemsio (optional)\n') - icsdirdoc.append('\t\tC96/ [--CASE_det] [--CASE_ens]\n') - icsdirdoc.append('\t\t\tcontrol/\n') - icsdirdoc.append('\t\t\t\tfv3ics.log\n') - icsdirdoc.append('\t\t\t\tINPUT/\n') - icsdirdoc.append('\t\t\t\t\tgfs_data.nc\n') - icsdirdoc.append('\t\t\t\t\t...\n') - icsdirdoc.append('\t\t\tmem001/\n') - icsdirdoc.append('\t\t\t\tfv3ics.log\n') - icsdirdoc.append('\t\t\t\tINPUT/\n') - icsdirdoc.append('\t\t\t\t\tgfs_data.nc\n') - icsdirdoc.append('\t\t\t\t\t...\n') - - parser = argparse.ArgumentParser(usage=''.join(icsdirdoc), formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument('--date', help='date of initial conditions to convert from GFS to FV3', type=str, metavar='YYYYMMDDHH', required=True) - parser.add_argument('--icsdir', help='full path to initial conditions directory', type=str, required=True) - parser.add_argument('--cdump', help='cycle', type=str, required=False, default='gdas') - parser.add_argument('--CASE_det', help='desired resolution of the FV3 deterministic initial conditions', type=int, required=False, default=None) - parser.add_argument('--CASE_ens', help='desired resolution of the FV3 ensemble initial conditions', type=int, required=False, default=None) - parser.add_argument('--JCAP_det', help='resolution of the deterministic GFS initial conditions', type=int, required=False, default=1534) - parser.add_argument('--JCAP_ens', help='resolution of the ensemble GFS initial conditions', type=int, required=False, default=574) - parser.add_argument('--nthreads', help='how many threads to use', type=int, required=False, default=24) - parser.add_argument('--debug', help='aid in debugging', action='store_true',required=False) - - input_args = parser.parse_args() - - if input_args.CASE_det is None and input_args.CASE_ens is None: - print 'CASE_det and CASE_ens both cannot be None' - print 'nothing to do, EXIT!' - print '\n' - sys.exit(1) - - date = input_args.date - icsdir = input_args.icsdir - CASE_det = input_args.CASE_det - CASE_ens = input_args.CASE_ens - JCAP_det = input_args.JCAP_det - JCAP_ens = input_args.JCAP_ens - nthreads = input_args.nthreads - cdump = input_args.cdump - debug = input_args.debug - - PDY = date[:8] - cyc = date[8:] - - prefix = '%s.t%sz' % (cdump, cyc) - suffix = 'nemsio' - - chgres_det = False if CASE_det is None else True - chgres_ens = False if CASE_ens is None else True - - machine = set_machine() - homegfs, stmp = set_paths() - - nsst = True if os.path.exists('%s/%s/T%s/%s.nstanl.%s' % (icsdir, date, JCAP_det, prefix, suffix)) else False - - job_template = get_jobtemplate() - - jobs = [] - - if chgres_det: - - files = {} - files['atmanl'] = '%s.atmanl.%s' % (prefix, suffix) - files['sfcanl'] = '%s.sfcanl.%s' % (prefix, suffix) - files['nstanl'] = '%s.nstanl.%s' % (prefix, suffix) if nsst else None - - cmd = 'mkdir -p %s/%s/C%d/control' % (icsdir, date, CASE_det) - os.system(cmd) - cmd = 'rm -f %s/%s/C%d/control/fv3ics.log' % (icsdir, date, CASE_det) - os.system(cmd) - job_script = get_jobscript('control', files, 'T%d' % JCAP_det, 'C%d' % CASE_det, job_template) - jobs.append(job_script) - - if chgres_ens: - nens = len(glob.glob('%s/%s/T%s/%s.ratmanl.mem???.%s' % (icsdir, date, JCAP_ens, prefix, suffix))) - - for i in range(1, nens+1): - - files = {} - files['atmanl'] = '%s.ratmanl.mem%03d.%s' % (prefix, i, suffix) - files['sfcanl'] = '%s.sfcanl.mem%03d.%s' % (prefix, i, suffix) - files['nstanl'] = '%s.nstanl.mem%03d.%s' % (prefix, i, suffix) if nsst else None - - cmd = 'mkdir -p %s/%s/C%d/mem%03d' % (icsdir, date, CASE_ens, i) - os.system(cmd) - cmd = 'rm -f %s/%s/C%d/mem%03d/fv3ics.log' % (icsdir, date, CASE_ens, i) - os.system(cmd) - job_script = get_jobscript('mem%03d' % i, files, 'T%d' % JCAP_ens, 'C%d' % CASE_ens, job_template) - jobs.append(job_script) - - submit_jobs(jobs) - -if __name__ == '__main__': - main() diff --git a/ush/gaussian_sfcanl.sh b/ush/gaussian_sfcanl.sh index 85e10da695..866cd6d255 100755 --- a/ush/gaussian_sfcanl.sh +++ b/ush/gaussian_sfcanl.sh @@ -12,12 +12,16 @@ # # Script history log: # 2018-01-30 Gayno initial script +# 2019-1030 Gayno updates to output analysis file in netcdf or nemsio # # Usage: gaussian_sfcanl.sh # # Imported Shell Variables: # CASE Model resolution. Defaults to C768. # DONST Process NST fields when 'yes'. Default is 'no'. +# OUTPUT_FILE Output gaussian analysis file format. Default is "nemsio" +# Set to "netcdf" for netcdf output file +# Otherwise, output in nemsio. # BASEDIR Root directory where all scripts and fixed files reside. # Default is /nwprod2. # HOMEgfs Directory for gfs version. Default is @@ -119,7 +123,14 @@ LATB_CASE=$((res*2)) LONB_SFC=${LONB_SFC:-$LONB_CASE} LATB_SFC=${LATB_SFC:-$LATB_CASE} DONST=${DONST:-"NO"} - +LEVS=${LEVS:-64} +LEVSP1=$(($LEVS+1)) +OUTPUT_FILE=${OUTPUT_FILE:-"nemsio"} +if [ $OUTPUT_FILE = "netcdf" ]; then + export NETCDF_OUT=".true." +else + export NETCDF_OUT=".false." +fi # Directories. gfs_ver=${gfs_ver:-v15.0.0} @@ -135,6 +146,7 @@ COMOUT=${COMOUT:-$(pwd)} # Filenames. XC=${XC} GAUSFCANLEXE=${GAUSFCANLEXE:-$EXECgfs/gaussian_sfcanl.exe} +SIGLEVEL=${SIGLEVEL:-$FIXam/global_hyblev.l${LEVSP1}.txt} CDATE=${CDATE:?} @@ -195,10 +207,10 @@ $NLN $FIXfv3/$CASE/${CASE}_oro_data.tile4.nc ./orog.tile4.nc $NLN $FIXfv3/$CASE/${CASE}_oro_data.tile5.nc ./orog.tile5.nc $NLN $FIXfv3/$CASE/${CASE}_oro_data.tile6.nc ./orog.tile6.nc -$NLN $FIXam/global_hyblev.l65.txt ./vcoord.txt +$NLN $SIGLEVEL ./vcoord.txt # output gaussian global surface analysis files -$NLN $COMOUT/${APREFIX}sfcanl${ASUFFIX} ./sfc.gaussian.nemsio +$NLN $COMOUT/${APREFIX}sfcanl${ASUFFIX} ./sfc.gaussian.analysis.file # Executable namelist cat < fort.41 @@ -209,7 +221,8 @@ cat < fort.41 hh=$ih, igaus=$LONB_SFC, jgaus=$LATB_SFC, - donst=$DONST + donst=$DONST, + netcdf_out=$NETCDF_OUT / EOF diff --git a/ush/getdump.sh b/ush/getdump.sh index da0b80af71..3766914f14 100755 --- a/ush/getdump.sh +++ b/ush/getdump.sh @@ -1,11 +1,14 @@ #!/bin/ksh set -x +export COMPONENT=${COMPONENT:-atmos} + CDATE=${1:-""} CDUMP=${2:-""} -SOURCE_DIR=${3:-$DMPDIR/$CDATE/$CDUMP} -TARGET_DIR=${4:-$ROTDIR/${CDUMP}.${PDY}/$cyc} +SOURCE_DIR=${3:-$DMPDIR/${CDUMP}${DUMP_SUFFIX}.${PDY}/${cyc}} +TARGET_DIR=${4:-$ROTDIR/${CDUMP}.${PDY}/$cyc/$COMPONENT} +DUMP_SUFFIX=${DUMP_SUFFIX:-""} # Exit if SORUCE_DIR does not exist if [ ! -s $SOURCE_DIR ]; then diff --git a/ush/gfs_bfr2gpk.sh b/ush/gfs_bfr2gpk.sh index 8930521201..1b77237cf6 100755 --- a/ush/gfs_bfr2gpk.sh +++ b/ush/gfs_bfr2gpk.sh @@ -27,9 +27,9 @@ export BPATH # Set output directory: -COMAWP=${COMAWP:-$COMROOT/nawips/${envir}/${RUN}.${PDY}} +COMAWP=${COMAWP:-$COMOUT/gempak} OUTDIR=$COMAWP -mkdir -p $OUTDIR +if [ ! -d $OUTDIR ]; then mkdir -p $OUTDIR; fi outfilbase=gfs_${PDY}${cyc} @@ -49,7 +49,7 @@ SNOUTF = ${outfilbase}.snd SFOUTF = ${outfilbase}.sfc SNPRMF = sngfs.prm SFPRMF = sfgfs.prm -TIMSTN = 170/2100 +TIMSTN = 170/2150 r ex diff --git a/ush/gfs_bufr.sh b/ush/gfs_bufr.sh index 5862a40a0a..9ec4d53243 100755 --- a/ush/gfs_bufr.sh +++ b/ush/gfs_bufr.sh @@ -15,6 +15,7 @@ # 2018-03-22 Guang Ping Lou: Making it works for either 1 hourly or 3 hourly output # 2018-05-22 Guang Ping Lou: Making it work for both GFS and FV3GFS # 2018-05-30 Guang Ping Lou: Make sure all files are available. +# 2019-10-10 Guang Ping Lou: Read in NetCDF files echo "History: February 2003 - First implementation of this utility script" # @@ -27,17 +28,6 @@ else f00flag=".false." fi -export pgm=gfs_flux -#. prep_step - -cat << EOF > gfsflxparm - &NAMKEN - nout=$FINT,lonf=$LONB,latg=$LATB,nsfc=80, - nstart=$FSTART,nend=$FEND,nint=$FINT, - nend1=$NEND1,nint1=$NINT1,nint3=$NINT3, - nzero=$NZERO,f00=$f00flag, -/ -EOF hh=$FSTART while test $hh -le $FEND do @@ -58,20 +48,17 @@ else bufrflag=".false." fi -if [ -s ${COMIN}/${RUN}.${cycle}.sfcf000.nemsio ]; then - SFCF="sfc" +##fformat="nc" +##fformat="nemsio" + CLASS="class1fv3" - else - SFCF="flx" - CLASS="class1" -fi cat << EOF > gfsparm &NAMMET - iromb=0,maxwv=$JCAP,levs=$LEVS,makebufr=$bufrflag, + levs=$LEVS,makebufr=$bufrflag, dird="$COMOUT/bufr.${cycle}/bufr", nstart=$FSTART,nend=$FEND,nint=$FINT, nend1=$NEND1,nint1=$NINT1,nint3=$NINT3, - nsfc=80,f00=$f00flag, + nsfc=80,f00=$f00flag,fformat=$fformat,np1=0 / EOF @@ -95,7 +82,7 @@ do ic=0 while [ $ic -lt 1000 ] do - if [ ! -f $COMIN/${RUN}.${cycle}.logf${hh2}.nemsio ] + if [ ! -f $COMIN/${RUN}.${cycle}.logf${hh2}.${logfm} ] then sleep 10 ic=`expr $ic + 1` @@ -109,8 +96,8 @@ do fi done #------------------------------------------------------------------ - ln -sf $COMIN/${RUN}.${cycle}.atmf${hh2}.nemsio sigf${hh} - ln -sf $COMIN/${RUN}.${cycle}.${SFCF}f${hh2}.nemsio flxf${hh} + ln -sf $COMIN/${RUN}.${cycle}.atmf${hh2}.${atmfm} sigf${hh} + ln -sf $COMIN/${RUN}.${cycle}.sfcf${hh2}.${atmfm} flxf${hh} hh=` expr $hh + $FINT ` if test $hh -lt 10 @@ -122,10 +109,7 @@ done # define input BUFR table file. ln -sf $PARMbufrsnd/bufr_gfs_${CLASS}.tbl fort.1 ln -sf ${STNLIST:-$PARMbufrsnd/bufr_stalist.meteo.gfs} fort.8 +ln -sf $PARMbufrsnd/bufr_ij13km.txt fort.7 -#startmsg -##export APRUN=${APRUN_POSTSND:-'aprun -n 12 -N 3 -j 1'} -##${APRUN:-mpirun.lsf} ${GBUFR:-$EXECbufrsnd/gfs_bufr} < gfsparm > out_gfs_bufr_$FEND -##mpirun $EXECbufrsnd/gfs_bufr < gfsparm > out_gfs_bufr_$FEND ${APRUN_POSTSND} $EXECbufrsnd/gfs_bufr < gfsparm > out_gfs_bufr_$FEND export err=$?;err_chk diff --git a/ush/gfs_bufr_netcdf.sh b/ush/gfs_bufr_netcdf.sh new file mode 100755 index 0000000000..2237ce7793 --- /dev/null +++ b/ush/gfs_bufr_netcdf.sh @@ -0,0 +1,115 @@ +#!/bin/ksh +# +# UTILITY SCRIPT NAME : gfsbufr.sh +# AUTHOR : Hua-Lu Pan +# DATE WRITTEN : 02/03/97 +# +# Abstract: This utility script produces BUFR file of +# station forecasts from the GFS suite. +# +# Input: none +# Script History Log: +# 2016-10-30 H Chuang: Tranistion to read nems output. +# Change to read flux file fields in gfs_bufr +# so remove excution of gfs_flux +# 2018-03-22 Guang Ping Lou: Making it works for either 1 hourly or 3 hourly output +# 2018-05-22 Guang Ping Lou: Making it work for both GFS and FV3GFS +# 2018-05-30 Guang Ping Lou: Make sure all files are available. +# 2019-10-10 Guang Ping Lou: Read in NetCDF files +echo "History: February 2003 - First implementation of this utility script" +# + +set -ax + +if test "$F00FLAG" = "YES" +then + f00flag=".true." +else + f00flag=".false." +fi + +hh=$FSTART +while test $hh -le $FEND +do + hh=` expr $hh + $FINT ` + if test $hh -lt 10 + then + hh=0$hh + fi +done + +export pgm=gfs_bufr +#. prep_step + +if test "$MAKEBUFR" = "YES" +then + bufrflag=".true." +else + bufrflag=".false." +fi + +fformat="nc" + + SFCF="sfc" + CLASS="class1fv3" +cat << EOF > gfsparm + &NAMMET + levs=$LEVS,makebufr=$bufrflag, + dird="$COMOUT/bufr.${cycle}/bufr", + nstart=$FSTART,nend=$FEND,nint=$FINT, + nend1=$NEND1,nint1=$NINT1,nint3=$NINT3, + nsfc=80,f00=$f00flag, +/ +EOF + +hh=$FSTART + if test $hh -lt 100 + then + hh1=`echo "${hh#"${hh%??}"}"` + hh=$hh1 + fi +while test $hh -le $FEND +do + if test $hh -lt 100 + then + hh2=0$hh + else + hh2=$hh + fi + +#--------------------------------------------------------- +# Make sure all files are available: + ic=0 + while [ $ic -lt 1000 ] + do + if [ ! -f $COMIN/${RUN}.${cycle}.logf${hh2}.${fformat} ] + then + sleep 10 + ic=`expr $ic + 1` + else + break + fi + + if [ $ic -ge 360 ] + then + err_exit "COULD NOT LOCATE logf${hh2} file AFTER 1 HOUR" + fi + done +#------------------------------------------------------------------ + ln -sf $COMIN/${RUN}.${cycle}.atmf${hh2}.${fformat} sigf${hh} + ln -sf $COMIN/${RUN}.${cycle}.${SFCF}f${hh2}.${fformat} flxf${hh} + + hh=` expr $hh + $FINT ` + if test $hh -lt 10 + then + hh=0$hh + fi +done + +# define input BUFR table file. +ln -sf $PARMbufrsnd/bufr_gfs_${CLASS}.tbl fort.1 +ln -sf ${STNLIST:-$PARMbufrsnd/bufr_stalist.meteo.gfs} fort.8 +ln -sf $PARMbufrsnd/bufr_ij13km.txt fort.7 + +${APRUN_POSTSND} $EXECbufrsnd/gfs_bufr < gfsparm > out_gfs_bufr_$FEND +export err=$?;err_chk diff --git a/ush/gfs_sndp.sh b/ush/gfs_sndp.sh index 5ac720dc4c..74c7884dde 100755 --- a/ush/gfs_sndp.sh +++ b/ush/gfs_sndp.sh @@ -16,6 +16,7 @@ export m=$1 mkdir $DATA/$m cd $DATA/$m cp $FIXbufrsnd/gfs_collective${m}.list $DATA/$m/. +set +x CCCC=KWBC file_list=gfs_collective${m}.list @@ -59,6 +60,7 @@ EOF rm $DATA/${m}/bufrout done +set -x # if test $SENDCOM = 'NO' if test $SENDCOM = 'YES' then diff --git a/ush/global_chgres.sh b/ush/global_chgres.sh deleted file mode 100755 index 3945dba348..0000000000 --- a/ush/global_chgres.sh +++ /dev/null @@ -1,545 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: global_chgres.sh -# Script description: Convert GFS restart files to the FV3 cubed-sphere grid. -# -# Author: Mark Iredell Org: NP23 Date: 1999-03-01 -# -# Abstract: This script converts the GFS restart files, namely the sigma -# file, surface file, nst file or all 3, to the cubed-sphere grid. When -# converting an nst file, you must also convert a surface file. -# All input files are specified by the first three arguments. -# The horizontal/vertical resolution of the output files is given by -# the CASE/LEVS arguments. When the input sigma file is sigio format, -# the conversion is done in two steps. First, the spectral coefficients -# are converted to grid point space. By default, this intermediate -# data are on a gaussian grid with i/j dimension as described by the -# input file header. These defaults may be overridden by the IDRT, -# LONB and LATB environment variables. The sigma file is converted -# to all six sides of the cube. The surface and nst files are only -# converted to one side of the cube (as specified by the TILE_NUM -# environment variable). I.e., you must run this script six times -# to fully convert a surface or nst file. -# -# Script history log: -# 1999-03-01 Mark Iredell -# 2011-08-05 Added logic for nst restart files. G. Gayno -# 2011-10-10 Updated for gaea - S. Moorthi -# 2016-12-27 Updated for FV3 core. G. Gayno -# 2017-04-12 Remove references to output nsst file. nsst data -# now written to surface restart file. -# 2018-02-09 Updated for regional grids. -# -# Usage: global_chgres.sh SIGINP SFCINP NSTINP CASE LEVS -# -# Input script positional parameters: -# 1 Input sigma file (SIGINP) -# 2 Input surface file (SFCINP) -# 3 Input nst file (NSTINP) -# 4 Output cubed-sphere resolution (CASE) -# 5 New number of vertical sigma levels (LEVS) -# -# Imported Shell Variables: -# SIGINP Input sigma file -# overridden by $1; skip sigma conversion if missing -# SFCINP Input surface file -# overridden by $2; skip surface conversion if missing -# NSTINP Input nst file -# overridden by $3; skip surface conversion if missing -# CASE Output cubed-sphere resolution. -# overridden by $4. -# LEVS New number of sigma levels -# overridden by $5; one or the other is required -# OUTTYP Output file type. Not used yet. The sigma/atms and -# surface/nsst files are output in netcdf. -# IDRT When converting an atmospheric file in sigio format, -# this is the grid type after spectral conversion. -# 4: guassian(default); 0: lat-lon -# LONB When converting an atmospheric file in sigio format, -# this is the number of longitudes of the intermediate grid -# after spectral conversion. When converting a surface -# file, this is the number of longitudes of the input -# climatological soil moisture data file. -# LATB When converting an atmospheric file in sigio format, -# this is the number of latitudes of the intermediate grid -# after spectral conversion. When converting a surface -# file, this is the number of latitudes of the input -# climatological soil moisture data file. -# NTRAC New number of tracers -# defaults to input sigma file value -# REGIONAL Process stand-alone regional grid. When '1', remove halo -# from grids and create an atmospheric boundary file. -# When '2', create boundary file only. When '0', -# do neither (process as normal for a global grid). -# Default is '0'. -# HALO When processing a stand-alone regional grid, this -# specifies the number of rows/cols for the halo. -# Default is '0'. -# IDVC New vertical coordinate id (1 for sigma, 2 for hybrid) -# defaults to input sigma file value -# IDSL New midlayer pressure id (1 for phillips, 2 for mean) -# defaults to input sigma file value -# TILE_NUM The number of the cubed-sphere tile to convert surface -# and nst data. -# NWROOT A string that defaults to /nwprod -# gfs_ver Version number. Defaults to v15.0.0. -# BASEDIR Base directory. Defaults to /nwprod2 -# HOMEgfs GFS home directory. Defaults to $BASEDIR/gfs.${gfs_ver} -# FIXam Directory for global climo files -# Defaults to $HOMEgfs/fix/fix_am -# FIXfv3 Directory for model 'grid' and 'orography' files. -# Defaults to HOMEgfs/fix/fix_fv3_gmted2010 -# EXECgfs Directory for global executables. -# Defaults to $HOMEgfs/exec -# DATA working directory -# (if nonexistent will be made, used and deleted) -# defaults to current working directory -# XC Suffix to add to executables -# defaults to none -# SIGLEVEL New sigma levels ("NULL" to use from input sigma file) -# defaults to ${FIXam}/global_siglevel.l${LEVS}.txt -# FNGLAC Input glacier climatology GRIB file -# defaults to ${FIXam}/global_glacier.2x2.grb -# FNMXIC Input maximum sea ice climatology GRIB file -# defaults to ${FIXam}/global_maxice.2x2.grb -# FNTSFC Input SST climatology GRIB file -# defaults to ${FIXam}/global_sstclim.2x2.grb -# FNSNOC Input snow climatology GRIB file -# defaults to ${FIXam}/global_snoclim.1.875.grb -# FNZORC Input roughness climatology -# defaults to sib vegtetation type-based lookup table -# FNVETC must be set to ${FIXam}/global_vegtype.1x1.grb -# FNALBC Input 4-component albedo climatology GRIB file -# defaults to ${FIXam}/global_albedo4.1x1.grb -# FNALBC2 Input 'facsf' and 'facwf' albedo climatology GRIB file -# defaults to ${FIXam}/global_albedo4.1x1.grb -# FNAISC Input sea ice climatology GRIB file -# defaults to ${FIXam}/global_iceclim.2x2.grb -# FNTG3C Input deep soil temperature climatology GRIB file -# defaults to ${FIXam}/global_tg3clim.2.6x1.5.grb -# FNVEGC Input vegetation fraction climatology GRIB file -# defaults to ${FIXam}/global_vegfrac.1x1.grb -# FNVETC Input vegetation type climatology GRIB file -# defaults to ${FIXam}/global_vegtype.1x1.grb -# FNSOTC Input soil type climatology GRIB file -# defaults to ${FIXam}/global_soiltype.1x1.grb -# FNSMCC Input soil moisture climatology GRIB file -# defaults to ${FIXam}/global_soilmgldas.statsgo.t$JCAP.$LONB.$LATB.grb -# FNVMNC Input min veg frac climatology GRIB file -# defaults to ${FIXam}/global_shdmin.0.144x0.144.grb -# FNVMXC Input max veg frac climatology GRIB file -# defaults to ${FIXam}/global_shdmax.0.144x0.144.grb -# FNSLPC Input slope type climatology GRIB file -# defaults to ${FIXam}/global_slope.1x1.grb -# FNABSC Input max snow albedo climatology GRIB file -# defaults to ${FIXam}/global_snoalb.1x1.grb -# FNMSKH Input high resolution land mask GRIB file -# defaults to ${FIXam}/seaice_newland.grb -# CLIMO_ -# FIELDS_OPT 1-Climo/static fields (albedo, soil type, greenness, etc.) -# interpolated from input grid. -# 2-Vegetation, slope and soil type interpolated from input -# grid. All other climo/static fields from sfccycle. -# 3-All climo/static fields from sfccycle. -# defaults to '3' -# LANDICE_OPT 1-Input no landice => output landice -# 2-Input landice => output landice. -# 3-Input no landice => output no landice -# 4-Input landice => output no landice -# 5-Output landice regardless of input -# LSOIL 2-Output file with 2 soil layers -# 4-Output file with 4 soil layers -# 0-Default, number of soil layers same as input file -# IVSSFC Version number of surface restart file -# 0-Default, same as input file. -# LONSPERLAT New lonsperlat ("NULL" to use from input surface file) -# CHGRESEXEC Change resolution executable -# defaults to ${EXECgfs}/global_chgres -# INISCRIPT Preprocessing script -# defaults to none -# LOGSCRIPT Log posting script -# defaults to none -# ERRSCRIPT Error processing script -# defaults to 'eval [[ $err = 0 ]]' -# ENDSCRIPT Postprocessing script -# defaults to none -# CHGRESVARS Other namelist inputs to the change resolution executable -# such as IGEN,MQUICK. Defaults to none set. -# NTHREADS Number of threads -# defaults to 1 -# NTHSTACK Size of stack per thread -# defaults to 64000000 -# PGMOUT Executable standard output -# defaults to $pgmout, then to '&1' -# PGMERR Executable standard error -# defaults to $pgmerr, then to '&1' -# pgmout Executable standard output default -# pgmerr Executable standard error default -# REDOUT standard output redirect ('1>' or '1>>') -# defaults to '1>', or to '1>>' to append if $PGMOUT is a file -# REDERR standard error redirect ('2>' or '2>>') -# defaults to '2>', or to '2>>' to append if $PGMERR is a file -# VERBOSE Verbose flag (YES or NO) -# defaults to NO -# FV3GRID_TILE# Contains grid information (lat/lon) for the cubed-sphere grid. -# One file for each of the six tiles. -# FV3OROG_TILE# Contains mask and orography for the cubed-sphere grid. -# One file for each of the six tiles. -# -# Exported Shell Variables: -# PGM Current program name -# pgm -# ERR Last return code -# err -# -# Modules and files referenced: -# scripts : $INISCRIPT -# $LOGSCRIPT -# $ERRSCRIPT -# $ENDSCRIPT -# -# programs : $CHGRESEXEC -# -# input data : $1 or $SIGINP -# $2 or $SFCINP -# $3 or $NSTINP -# $SIGLEVEL -# $LONSPERLAT -# $FVGRID_TILE[1-6] -# $FVOROG_TILE[1-6] -# -# output data: -# $PGMOUT -# $PGMERR -# -# scratch : ${DATA}/chgres.inp.sig -# ${DATA}/chgres.inp.siglevel -# ${DATA}/chgres.inp.sfc -# ${DATA}/chgres.inp.nst -# ${DATA}/chgres.inp.lpl3 -# ${DATA}/chgres.fv3.grd.t[1-6] -# ${DATA}/chgres.fv3.orog.t[1-6] -# ${DATA}/fort.35 -# ${DATA}/fort.81 -# ${DATA}/NULL -# -# Remarks: -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -# Control variable resolution priority -# 1 Command line argument. -# 2 Environment variable. -# 3 Inline default. -# -# Attributes: -# Language: POSIX shell -# Machine: IBM SP -# -#### -################################################################################ -# Set environment. -VERBOSE=${VERBOSE:-"NO"} -if [[ "$VERBOSE" = "YES" ]] ; then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi -# Command line arguments. -APRUNC=${APRUNC:-""} -SIGINP=${1:-${SIGINP:-NULL}} -SFCINP=${2:-${SFCINP:-NULL}} -NSTINP=${3:-${NSTINP:-NULL}} -CASE=${4:-${CASE:?}} -LEVS=${5:-${LEVS:?}} -# Directories. -gfs_ver=${gfs_ver:-v15.0.0} -BASEDIR=${BASEDIR:-${NWROOT:-/nwprod2}} -HOMEgfs=${HOMEgfs:-$BASEDIR/gfs.${gfs_ver}} -EXECgfs=${EXECgfs:-$HOMEgfs/exec} -FIXfv3=${FIXfv3:-$HOMEgfs/fix/fix_fv3_gmted2010} -FIXam=${FIXam:-$HOMEgfs/fix/fix_am} - -DATA=${DATA:-$(pwd)} -# Filenames. -CHGRESEXEC=${CHGRESEXEC:-${EXECgfs}/global_chgres$XC} -# - -CRES=$(echo $CASE | cut -c2-) -JCAP_CASE=$((CRES*2-2)) -LATB_CASE=$((CRES*2)) -LONB_CASE=$((CRES*4)) - -JCAP=${JCAP:-$JCAP_CASE} -LONB=${LONB:-$LONB_CASE} -LATB=${LATB:-$LATB_CASE} - -SIGLEVEL=${SIGLEVEL:-${FIXam}/global_hyblev.l${LEVS}.txt} -if [ $LEVS = 128 ]; then - SIGLEVEL=${SIGLEVEL:-${FIXam}/global_hyblev.l${LEVS}B.txt} -fi -FNGLAC=${FNGLAC:-${FIXam}/global_glacier.2x2.grb} -FNMXIC=${FNMXIC:-${FIXam}/global_maxice.2x2.grb} -FNTSFC=${FNTSFC:-${FIXam}/cfs_oi2sst1x1monclim19822001.grb} -FNSNOC=${FNSNOC:-${FIXam}/global_snoclim.1.875.grb} -FNZORC=${FNZORC:-sib} -FNALBC=${FNALBC:-${FIXam}/global_albedo4.1x1.grb} -FNALBC2=${FNALBC2:-${FIXam}/global_albedo4.1x1.grb} -FNAISC=${FNAISC:-${FIXam}/cfs_ice1x1monclim19822001.grb} -FNTG3C=${FNTG3C:-${FIXam}/global_tg3clim.2.6x1.5.grb} -FNVEGC=${FNVEGC:-${FIXam}/global_vegfrac.0.144.decpercent.grb} -FNVETC=${FNVETC:-${FIXam}/global_vegtype.1x1.grb} -FNSOTC=${FNSOTC:-${FIXam}/global_soiltype.1x1.grb} -FNSMCC=${FNSMCC:-${FIXam}/global_soilmgldas.statsgo.t${JCAP}.${LONB}.${LATB}.grb} -FNVMNC=${FNVMNC:-${FIXam}/global_shdmin.0.144x0.144.grb} -FNVMXC=${FNVMXC:-${FIXam}/global_shdmax.0.144x0.144.grb} -FNSLPC=${FNSLPC:-${FIXam}/global_slope.1x1.grb} -FNABSC=${FNABSC:-${FIXam}/global_snoalb.1x1.grb} -FNMSKH=${FNMSKH:-${FIXam}/global_slmask.t1534.3072.1536.grb} -LANDICE_OPT=${LANDICE_OPT:-2} -CLIMO_FIELDS_OPT=${CLIMO_FIELDS_OPT:-3} -SOILTYPE_INP=${SOILTYPE_INP:-"zobler"} -SOILTYPE_OUT=${SOILTYPE_OUT:-"zobler"} -VEGTYPE_INP=${VEGTYPE_INP:-"sib"} -VEGTYPE_OUT=${VEGTYPE_OUT:-"sib"} -LONSPERLAT=${LONSPERLAT:-NULL} -export INISCRIPT=${INISCRIPT} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT} -export ENDSCRIPT=${ENDSCRIPT} -# Other variables. -TILE_NUM=${TILE_NUM:-1} -IDRT=${IDRT:-4} -OUTTYP=${OUTTYP:-999} -NTRAC=${NTRAC:-3} -REGIONAL=${REGIONAL:-0} -HALO=${HALO:-0} -gtype=${gtype:-uniform} -IALB=${IALB:-0} -IDVC=${IDVC:-2} -IDVT=${IDVT:-21} -IDVM=${IDVM:-0} -IDSL=${IDSL:-1} -LSOIL=${LSOIL:-0} -IVSSFC=${IVSSFC:-0} -use_ufo=${use_ufo:-.true.} -rdgrid=${rdgrid:-.false.} -NTHREADS=${NTHREADS:-1} -NTHSTACK=${NTHSTACK:-1024000000} -XLSMPOPTS=${XLSMPOPTS:-"parthds=$NTHREADS:stack=$NTHSTACK"} -export KMP_STACKSIZE=${KMP_STACKSIZE:-$NTHSTACK} -export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} -export PGMERR=${PGMERR:-${pgmerr:-'&2'}} -export REDOUT=${REDOUT:-'1>'} -export REDERR=${REDERR:-'2>'} -CHGRESVARS=${CHGRESVARS} -################################################################################ -# Preprocessing -$INISCRIPT -pwd=$(pwd) -if [[ -d $DATA ]] -then - mkdata=NO -else - mkdir -p $DATA - mkdata=YES -fi -cd $DATA||exit 99 -################################################################################ -# Change resolution -#export XLSMPOPTS="parthds=$NTHREADS:stack=$NTHSTACK" -export PGM=$CHGRESEXEC -export pgm=$PGM -$LOGSCRIPT -rm -f NULL -ln -sf $SIGINP chgres.inp.sig -ln -sf $SIGLEVEL chgres.inp.siglevel -ln -sf $SFCINP chgres.inp.sfc -ln -sf $NSTINP chgres.inp.nst -ln -sf $LONSPERLAT chgres.inp.lpl3 - -if [ $gtype = regional ]; then - tile=7 - ln -sf ${FIXfv3}/${CASE}/${CASE}_grid.tile${tile}.halo${HALO}.nc chgres.fv3.grd.t${tile} - ln -sf ${FIXfv3}/${CASE}/${CASE}_oro_data.tile${tile}.halo${HALO}.nc chgres.fv3.orog.t${tile} -else - tile=1 - while [ $tile -le $ntiles ]; do - ln -sf ${FIXfv3}/C${CRES}/C${CRES}_grid.tile${tile}.nc chgres.fv3.grd.t${tile} - ln -sf ${FIXfv3}/C${CRES}/C${CRES}_oro_data.tile${tile}.nc chgres.fv3.orog.t${tile} - tile=`expr $tile + 1 ` - done -fi - -if [[ $LANDICE_OPT = 3 || $LANDICE_OPT = 4 ]] -then - LANDICE=.false. -else - LANDICE=.true. -fi - -if [[ $VEGTYPE_OUT = "sib" ]]; then - IVEGSRC=2 -elif [[ $VEGTYPE_OUT = "igbp" ]]; then - IVEGSRC=1 -fi - -if [[ $SOILTYPE_OUT = "zobler" ]]; then - ISOT=0 -elif [[ $SOILTYPE_OUT = "statsgo" ]]; then - ISOT=1 -fi - -# If the appropriate resolution fix file is not present, use the highest resolution available (T1534) -[[ ! -f $FNSMCC ]] && FNSMCC="$FIXam/global_soilmgldas.statsgo.t1534.3072.1536.grb" - -cat << EOF > fort.35 - &NAMSFC - FNGLAC='${FNGLAC}' - FNMXIC='${FNMXIC}' - FNTSFC='${FNTSFC}' - FNSNOC='${FNSNOC}' - FNZORC='${FNZORC}' - FNALBC='${FNALBC}' - FNALBC2='${FNALBC2}' - FNAISC='${FNAISC}' - FNTG3C='${FNTG3C}' - FNVEGC='${FNVEGC}' - FNVETC='${FNVETC}' - FNSOTC='${FNSOTC}' - FNSMCC='${FNSMCC}' - FNVMNC='${FNVMNC}' - FNVMXC='${FNVMXC}' - FNSLPC='${FNSLPC}' - FNABSC='${FNABSC}' - FNMSKH='${FNMSKH}' - FNTSFA='' - FNACNA='' - FNSNOA='' - LDEBUG=.false. - LANDICE=$LANDICE -/ -EOF - -if [[ $SOILTYPE_INP = "zobler" ]]; then -cat << EOF > fort.81 - &soil_parameters - soil_src_input = "zobler" - smclow_input = 0.5 - smchigh_input = 6.0 - smcmax_input= 0.421, 0.464, 0.468, 0.434, 0.406, 0.465, - 0.404, 0.439, 0.421 - beta_input = 4.26, 8.72, 11.55, 4.74, 10.73, 8.17, - 6.77, 5.25, 4.26 - psis_input = 0.040, 0.620, 0.470, 0.140, 0.100, 0.260, - 0.140, 0.360, 0.040 - satdk_input = 1.41e-5, 0.20e-5, 0.10e-5, 0.52e-5, 0.72e-5, - 0.25e-5, 0.45e-5, 0.34e-5, 1.41e-5 -EOF -elif [[ $SOILTYPE_INP = "statsgo" ]]; then -cat << EOF > fort.81 - &soil_parameters - soil_src_input = "statsgo" - smclow_input = 0.5 - smchigh_input = 6.0 - smcmax_input= 0.395, 0.421, 0.434, 0.476, 0.476, 0.439, - 0.404, 0.464, 0.465, 0.406, 0.468, 0.457, - 0.464, -9.99, 0.200, 0.421 - beta_input = 4.05, 4.26, 4.74, 5.33, 5.33, 5.25, - 6.77, 8.72, 8.17, 10.73, 10.39, 11.55, - 5.25, -9.99, 4.05, 4.26 - psis_input = 0.0350, 0.0363, 0.1413, 0.7586, 0.7586, 0.3548, - 0.1349, 0.6166, 0.2630, 0.0977, 0.3236, 0.4677, - 0.3548, -9.99, 0.0350, 0.0363 - satdk_input = 1.7600e-4, 1.4078e-5, 5.2304e-6, 2.8089e-6, 2.8089e-6, - 3.3770e-6, 4.4518e-6, 2.0348e-6, 2.4464e-6, 7.2199e-6, - 1.3444e-6, 9.7384e-7, 3.3770e-6, -9.99, 1.4078e-5, - 1.4078e-5 -EOF -fi - -if [[ $SOILTYPE_OUT = "zobler" ]]; then -cat << EOF >> fort.81 - soil_src_output = "zobler" - smclow_output = 0.5 - smchigh_output = 6.0 - smcmax_output= 0.421, 0.464, 0.468, 0.434, 0.406, 0.465, - 0.404, 0.439, 0.421 - beta_output = 4.26, 8.72, 11.55, 4.74, 10.73, 8.17, - 6.77, 5.25, 4.26 - psis_output = 0.040, 0.620, 0.470, 0.140, 0.100, 0.260, - 0.140, 0.360, 0.040 - satdk_output = 1.41e-5, 0.20e-5, 0.10e-5, 0.52e-5, 0.72e-5, - 0.25e-5, 0.45e-5, 0.34e-5, 1.41e-5 -/ -EOF -elif [[ $SOILTYPE_OUT = "statsgo" ]]; then -cat << EOF >> fort.81 - soil_src_output = "statsgo" - smclow_output = 0.5 - smchigh_output = 6.0 - smcmax_output= 0.395, 0.421, 0.434, 0.476, 0.476, 0.439, - 0.404, 0.464, 0.465, 0.406, 0.468, 0.457, - 0.464, -9.99, 0.200, 0.421 - beta_output = 4.05, 4.26, 4.74, 5.33, 5.33, 5.25, - 6.77, 8.72, 8.17, 10.73, 10.39, 11.55, - 5.25, -9.99, 4.05, 4.26 - psis_output = 0.0350, 0.0363, 0.1413, 0.7586, 0.7586, 0.3548, - 0.1349, 0.6166, 0.2630, 0.0977, 0.3236, 0.4677, - 0.3548, -9.99, 0.0350, 0.0363 - satdk_output = 1.7600e-4, 1.4078e-5, 5.2304e-6, 2.8089e-6, 2.8089e-6, - 3.3770e-6, 4.4518e-6, 2.0348e-6, 2.4464e-6, 7.2199e-6, - 1.3444e-6, 9.7384e-7, 3.3770e-6, -9.99, 1.4078e-5, - 1.4078e-5 -/ -EOF -fi - -cat << EOF >> fort.81 - &veg_parameters - veg_src_input = "${VEGTYPE_INP}" - veg_src_output = "${VEGTYPE_OUT}" - salp_output= -999. - snup_output= -999. -/ - &options - CLIMO_FIELDS_OPT=${CLIMO_FIELDS_OPT} - LANDICE_OPT=${LANDICE_OPT} - / -EOF - -export OMP_NUM_THREADS=${OMP_NUM_THREADS_CH:-${CHGRESTHREAD:-1}} - - eval $APRUNC $CHGRESEXEC <&2 -fi -exit $err diff --git a/ush/global_chgres_driver.sh b/ush/global_chgres_driver.sh deleted file mode 100755 index 473111681b..0000000000 --- a/ush/global_chgres_driver.sh +++ /dev/null @@ -1,273 +0,0 @@ -#!/bin/ksh -set -ax -#------------------------------------------------------------------------------------------------- -# Makes ICs on fv3 globally uniform cubed-sphere grid using operational GFS initial conditions. -# Fanglin Yang, 09/30/2016 -# This script is created based on the C-shell scripts fv3_gfs_preproc/IC_scripts/DRIVER_CHGRES.csh -# and submit_chgres.csh provided by GFDL. APRUN and environment variables are added to run on -# WCOSS CRAY. Directory and file names are standaridized to follow NCEP global model convention. -# This script calls fv3gfs_chgres.sh. -# Fanglin Yang and George Gayno, 02/08/2017 -# Modified to use the new CHGRES George Gayno developed. -# Fanglin Yang 03/08/2017 -# Generalized and streamlined the script and enabled to run on multiple platforms. -# Fanglin Yang 03/20/2017 -# Added option to process NEMS GFS initial condition which contains new land datasets. -# Switch to use ush/global_chgres.sh. -#------------------------------------------------------------------------------------------------- - -export OMP_NUM_THREADS_CH=${OMP_NUM_THREADS_CH:-24} -export APRUNC=${APRUNC:-"time"} - -export CASE=${CASE:-C96} # resolution of tile: 48, 96, 192, 384, 768, 1152, 3072 -export CRES=`echo $CASE | cut -c 2-` -export CDATE=${CDATE:-${cdate:-2017031900}} # format yyyymmddhh yyyymmddhh ... -export CDUMP=${CDUMP:-gfs} # gfs or gdas -export LEVS=${LEVS:-65} -export LSOIL=${LSOIL:-4} -export REGIONAL=${REGIONAL:-0} # default is to assume uniform grid, which is REGIONAL=0 - # REGIONAL=1 - generate data and boundary (for regional case) - # REGIONAL=2 - generate boundaries only (for regional case) - -export VERBOSE=YES -pwd=$(pwd) -export NWPROD=${NWPROD:-$pwd} -export HOMEgfs=${HOMEgfs:-$NWPROD/gfs.v15.0.0} -export FIXfv3=${FIXfv3:-$HOMEgfs/fix/fix_fv3_gmted2010} -export FIXam=${FIXam:-$HOMEgfs/fix/fix_am} -export CHGRESEXEC=$HOMEgfs/exec/global_chgres -export CHGRESSH=$HOMEgfs/ush/global_chgres.sh - -# Location of initial conditions for GFS (before chgres) and FV3 (after chgres) -export INIDIR=${INIDIR:-$pwd} -export OUTDIR=${OUTDIR:-$pwd/INPUT} -mkdir -p $OUTDIR - -export gtype=${gtype:-uniform} # grid type = uniform, stretch, nest or stand alone regional - -if [ $gtype = uniform ]; then - echo "creating uniform ICs" - export ntiles=6 -elif [ $gtype = stretch ]; then - echo "creating stretched ICs" - export ntiles=6 -elif [ $gtype = nest ]; then - echo "creating nested ICs" - export ntiles=7 -elif [ $gtype = regional ]; then - echo "creating standalone regional ICs" - export ntiles=1 - export TILE_NUM=7 -else - echo "Error: please specify grid type with 'gtype' as uniform, stretch, nest, or regional" - exit 9 -fi - -#--------------------------------------------------------------- - -# Temporary rundirectory -export DATA=${DATA:-${RUNDIR:-$pwd/rundir$$}} -if [ ! -s $DATA ]; then mkdir -p $DATA; fi -cd $DATA || exit 8 - -export ymd=`echo $CDATE | cut -c 1-8` -export cyc=`echo $CDATE | cut -c 9-10` - -# Determine if we are current operations with NSST or the one before that -if [ ${ATMANL:-"NULL"} = "NULL" ]; then - if [ -s ${INIDIR}/nsnanl.${CDUMP}.$CDATE -o -s ${INIDIR}/${CDUMP}.t${cyc}z.nstanl.nemsio ]; then - ictype='opsgfs' - else - ictype='oldgfs' - fi -else - if [ ${NSTANL:-"NULL"} = "NULL" ]; then - ictype='oldgfs' - else - ictype='opsgfs' - fi -fi - -if [ $ictype = oldgfs ]; then # input data is old spectral sigio format. - - if [ ${ATMANL:-"NULL"} = "NULL" ]; then - if [ -s ${INIDIR}/siganl.${CDUMP}.$CDATE ]; then - export ATMANL=$INIDIR/siganl.${CDUMP}.$CDATE - export SFCANL=$INIDIR/sfcanl.${CDUMP}.$CDATE - else - export ATMANL=$INIDIR/${CDUMP}.t${cyc}z.sanl - export SFCANL=$INIDIR/${CDUMP}.t${cyc}z.sfcanl - fi - fi - - export NSTANL="NULL" - export SOILTYPE_INP=zobler - export VEGTYPE_INP=sib - export nopdpvv=.false. - - #--sigio to user defined lat-lon gaussian grid - JCAP_CASE=$((CRES*2-2)) - LONB_ATM=$((CRES*4)) - LATB_ATM=$((CRES*2)) - LONB_SFC=$((CRES*4)) - LATB_SFC=$((CRES*2)) - if [ $CRES -gt 768 -o $gtype = stretch -o $gtype = nest ]; then - JCAP_CASE=1534 - LONB_ATM=3072 - LATB_ATM=1536 - LONB_SFC=3072 - LATB_SFC=1536 - fi - -elif [ $ictype = opsgfs ]; then # input data is nemsio format. - - if [ ${ATMANL:-"NULL"} = "NULL" ]; then - if [ -s ${INIDIR}/gfnanl.${CDUMP}.$CDATE ]; then - export ATMANL=$INIDIR/gfnanl.${CDUMP}.$CDATE - export SFCANL=$INIDIR/sfnanl.${CDUMP}.$CDATE - export NSTANL=$INIDIR/nsnanl.${CDUMP}.$CDATE - else - export ATMANL=$INIDIR/${CDUMP}.t${cyc}z.atmanl.nemsio - export SFCANL=$INIDIR/${CDUMP}.t${cyc}z.sfcanl.nemsio - export NSTANL=$INIDIR/${CDUMP}.t${cyc}z.nstanl.nemsio - fi - fi - - export SOILTYPE_INP=statsgo - export VEGTYPE_INP=igbp - export nopdpvv=.true. - - LONB_ATM=0 # not used for - LATB_ATM=0 # ops files - JCAP_CASE=$((CRES*2-2)) - LONB_SFC=$((CRES*4)) - LATB_SFC=$((CRES*2)) - if [ $CRES -gt 768 -o $gtype = stretch -o $gtype = nest ]; then - JCAP_CASE=1534 - LONB_SFC=3072 - LATB_SFC=1536 - fi -fi # is input data old or new format? - - -# to use new albedo, soil/veg type -export CLIMO_FIELDS_OPT=3 -export LANDICE_OPT=2 -export IALB=1 -export SOILTYPE_OUT=statsgo -export VEGTYPE_OUT=igbp -export FNZORC=igbp - -export SIGLEVEL=${FIXam}/global_hyblev.l${LEVS}.txt -if [ $LEVS = 128 ]; then export SIGLEVEL=${FIXam}/global_hyblev.l${LEVS}B.txt; fi -export FNGLAC=${FIXam}/global_glacier.2x2.grb -export FNMXIC=${FIXam}/global_maxice.2x2.grb -export FNTSFC=${FIXam}/cfs_oi2sst1x1monclim19822001.grb -export FNSNOC=${FIXam}/global_snoclim.1.875.grb -export FNALBC2=${FIXam}/global_albedo4.1x1.grb -export FNAISC=${FIXam}/cfs_ice1x1monclim19822001.grb -export FNTG3C=${FIXam}/global_tg3clim.2.6x1.5.grb -export FNVEGC=${FIXam}/global_vegfrac.0.144.decpercent.grb -export FNVMNC=${FIXam}/global_shdmin.0.144x0.144.grb -export FNVMXC=${FIXam}/global_shdmax.0.144x0.144.grb -export FNSLPC=${FIXam}/global_slope.1x1.grb -export FNMSKH=${FIXam}/seaice_newland.grb -export FNSMCC=$FIXam/global_soilmgldas.statsgo.t${JCAP_CASE}.${LONB_SFC}.${LATB_SFC}.grb -export FNSOTC=$FIXam/global_soiltype.statsgo.t${JCAP_CASE}.${LONB_SFC}.${LATB_SFC}.rg.grb -export FNVETC=$FIXam/global_vegtype.igbp.t${JCAP_CASE}.${LONB_SFC}.${LATB_SFC}.rg.grb -export FNABSC=$FIXam/global_mxsnoalb.uariz.t${JCAP_CASE}.${LONB_SFC}.${LATB_SFC}.rg.grb -export FNALBC=$FIXam/global_snowfree_albedo.bosu.t${JCAP_CASE}.${LONB_SFC}.${LATB_SFC}.rg.grb - -# -# For a regional run, if REGIONAL=2 (generate boundary data only) this script is called multiple times -# so that each boundary time other than hour 0 will be done individually. This allows multiple instances -# of chgres to execute simultaneously -# - -if [ $REGIONAL -ne 2 ]; then # REGIONAL -ne 2 is for uniform and regional hour 0 - -#------------------------------------------------ -# Convert atmospheric file. -#------------------------------------------------ - - export CHGRESVARS="use_ufo=.false.,idvc=2,idvt=21,idsl=1,IDVM=0,nopdpvv=$nopdpvv" - export SIGINP=$ATMANL - export SFCINP=NULL - export NSTINP=NULL - export JCAP=$JCAP_CASE - export LATB=$LATB_ATM - export LONB=$LONB_ATM - $CHGRESSH - rc=$? - if [[ $rc -ne 0 ]] ; then - echo "***ERROR*** rc= $rc" - exit $rc - fi - - mv ${DATA}/gfs_data.tile*.nc $OUTDIR/. - mv ${DATA}/gfs_ctrl.nc $OUTDIR/. - if [ $gtype = regional ]; then - mv ${DATA}/gfs_bndy.tile7.nc $OUTDIR/gfs_bndy.tile7.000.nc - fi - -#--------------------------------------------------- -# Convert surface and nst files one tile at a time. -#--------------------------------------------------- - - export CHGRESVARS="use_ufo=.true.,idvc=2,idvt=21,idsl=1,IDVM=0,nopdpvv=$nopdpvv" - export SIGINP=NULL - export SFCINP=$SFCANL - export NSTINP=$NSTANL - export JCAP=$JCAP_CASE - export LATB=$LATB_SFC - export LONB=$LONB_SFC - - if [ $gtype = regional ]; then - $CHGRESSH - mv ${DATA}/out.sfc.tile${TILE_NUM}.nc $OUTDIR/sfc_data.tile${TILE_NUM}.nc - rc=$? - if [[ $rc -ne 0 ]] ; then - echo "***ERROR*** rc= $rc" - exit $rc - fi - else - tile=1 - while [ $tile -le $ntiles ]; do - export TILE_NUM=$tile - $CHGRESSH - rc=$? - if [[ $rc -ne 0 ]] ; then - echo "***ERROR*** rc= $rc" - exit $rc - fi - mv ${DATA}/out.sfc.tile${tile}.nc $OUTDIR/sfc_data.tile${tile}.nc - tile=`expr $tile + 1 ` - done - fi - -else # REGIONAL = 2, just generate boundary data - - export CHGRESVARS="use_ufo=.false.,nst_anl=$nst_anl,idvc=2,idvt=21,idsl=1,IDVM=0,nopdpvv=$nopdpvv" - export ATMANL=$INIDIR/${CDUMP}.t${cyc}z.atmf${bchour}.nemsio - export SIGINP=$ATMANL - export SFCINP=NULL - export NSTINP=NULL - export LATB=$LATB_ATM - export LONB=$LONB_ATM - -# -# run chgres and check rc to make sure it was successful -# - - $CHGRESSH - rc=$? - if [[ $rc -ne 0 ]] ; then - echo "***ERROR*** rc= $rc" - exit $rc - fi - - mv ${DATA}/gfs_bndy.tile7.nc $OUTDIR/gfs_bndy.tile7.${bchour}.nc - -fi - -exit 0 diff --git a/ush/global_cycle.sh b/ush/global_cycle.sh deleted file mode 100755 index a0cc229431..0000000000 --- a/ush/global_cycle.sh +++ /dev/null @@ -1,404 +0,0 @@ -#!/bin/ksh -################################################################################ -#### UNIX Script Documentation Block -# . . -# Script name: global_cycle.sh -# Script description: Makes a global spectral model surface analysis -# -# Author: Mark Iredell Org: NP23 Date: 2005-02-03 -# -# Abstract: This script makes a global spectral model surface analysis. -# -# Script history log: -# 2005-02-03 Iredell extracted from global_analysis.sh -# 2014-11-30 xuli add NST_ANL -# 2017-08-19 Gayno updates for FV3GFS. -# -# Usage: global_cycle.sh -# -# Imported Shell Variables: -# CASE Model resolution. Defaults to C768. -# JCAP Spectral truncation of the global fixed climatology files -# (such as albedo), which are on the old GFS gaussian grid. -# Computed from CASE by default. -# LATB i-dimension of the global climatology files. NOT the -# i-dimension of the model grid. Computed from CASE by default. -# LONB j-dimension of the global climatology files. NOT the -# j-dimension of the model grid. Computed from CASE by default. -# BASEDIR Root directory where all scripts and fixed files reside. -# Default is /nwprod2. -# HOMEgfs Directory for gfs. Default is -# $BASEDIR/gfs.v15.0.0. -# FIXSUBDA Sub-directory where fixed climatology files reside. -# Defaults to fix/fix_am. -# FIXam Directory for the global fixed climatology files. -# Defaults to $HOMEgfs/fix/fix_am -# FIXfv3 Directory for the model grid and orography netcdf -# files. Defaults to $HOMEgfs/fix/fix_fv3/${CASE} -# EXECgfs Directory of the program executable. Defaults to -# $HOMEgfs/exec -# DATA Working directory -# (if nonexistent will be made, used and deleted) -# Defaults to current working directory -# COMIN Directory containing the input analysis data -# (such as sea ice). Defaults to current -# working directory. -# COMOUT Output directory -# (if nonexistent will be made) -# defaults to current working directory -# XC Suffix to add to executables. Defaults to none. -# PREINP Prefix to add to input analysis files. -# Defaults to none. -# SUFINP Suffix to add to input analysis files. -# Defaults to none. -# CYCLEXEC Program executable. -# Defaults to ${EXECgfs}/global_cycle$XC -# FNGLAC Input glacier climatology GRIB file. -# Defaults to ${FIXam}/global_glacier.2x2.grb -# FNMXIC Input maximum sea ice climatology GRIB file. -# Defaults to ${FIXam}/global_maxice.2x2.grb -# FNTSFC Input SST climatology GRIB file. -# Defaults to ${FIXam}/RTGSST.1982.2012.monthly.clim.grb -# FNSNOC Input snow climatology GRIB file. -# Defaults to ${FIXam}/global_snoclim.1.875.grb -# FNZORC Input roughness climatology. -# Defaults to igbp vegetation type-based lookup table -# FNVETC must be set to igbp file: -# ${FIXam}/global_vegtype.igbp.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.rg.grb -# FNALBC Input 4-component albedo climatology GRIB file. -# defaults to ${FIXam}/global_snowfree_albedo.bosu.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.rg.grb -# FNALBC2 Input 'facsf' and 'facwf' albedo climatology GRIB file. -# Defaults to ${FIXam}/global_albedo4.1x1.grb -# FNAISC Input sea ice climatology GRIB file. -# Defaults to ${FIXam}/CFSR.SEAICE.1982.2012.monthly.clim.grb -# FNTG3C Input deep soil temperature climatology GRIB file. -# Defaults to ${FIXam}/global_tg3clim.2.6x1.5.grb -# FNVEGC Input vegetation fraction climatology GRIB file. -# Defaults to ${FIXam}/global_vegfrac.0.144.decpercent.grb -# FNVETC Input vegetation type climatology GRIB file. -# Defaults to ${FIXam}/global_vegtype.igbp.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.rg.grb -# FNSOTC Input soil type climatology GRIB file. -# Defaults to ${FIXam}/global_soiltype.statsgo.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.rg.grb -# FNSMCC Input soil moisture climatology GRIB file. -# Defaults to ${FIXam}/global_soilmgldas.statsgo.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.grb -# FNVMNC Input min veg frac climatology GRIB file. -# Defaults to ${FIXam}/global_shdmin.0.144x0.144.grb -# FNVMXC Input max veg frac climatology GRIB file. -# Defaults to ${FIXam}/global_shdmax.0.144x0.144.grb -# FNSLPC Input slope type climatology GRIB file. -# Defaults to ${FIXam}/global_slope.1x1.grb -# FNABSC Input max snow albedo climatology GRIB file. -# Defaults to ${FIXam}/global_mxsnoalb.uariz.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.rg.grb -# FNMSKH Input high resolution land mask GRIB file. Use to set mask for -# some of the input climatology fields. This is NOT the model mask. -# Defaults to ${FIXam}/seaice_newland.grb -# GSI_FILE GSI file on the gaussian grid containing NST increments. -# Defaults to NULL (no file). -# FNTSFA Input SST analysis GRIB file. -# Defaults to ${COMIN}/${PREINP}sstgrb${SUFINP} -# FNACNA Input sea ice analysis GRIB file. -# Defaults to ${COMIN}/${PREINP}engicegrb${SUFINP} -# FNSNOA Input snow analysis GRIB file. -# Defaults to ${COMIN}/${PREINP}snogrb${SUFINP} -# INISCRIPT Preprocessing script. Defaults to none. -# LOGSCRIPT Log posting script. Defaults to none. -# ERRSCRIPT Error processing script -# defaults to 'eval [[ $err = 0 ]]' -# ENDSCRIPT Postprocessing script -# defaults to none -# CDATE Output analysis date in yyyymmddhh format. Required. -# FHOUR Output forecast hour. Defaults to 00hr. -# LSOIL Number of soil layers. Defaults to 4. -# FSMCL2 Scale in days to relax to soil moisture climatology. -# Defaults to 60. -# FSLPL Scale in days to relax to slope type climatology. -# Defaults to 99999 (use first guess) -# FSOTL Scale in days to relax to soil type climatology. -# Defaults to 99999 (use first guess) -# FVETL Scale in days to relax to veg type climatology. -# Defaults to 99999 (use first guess) -# DELTSFC Cycling frequency in hours. Defaults to 0. -# IALB Integer flag for Albedo - 0 for Brigleb and 1 for Modis -# based albedo - defaults to 1 -# ISOT Integer flag for soil type - 0 for zobler, 1 for statsgo -# Defaults to 1. -# IVEGSRC Integer flag for veg type - 1 for igbp, 2 for sib -# Defaults to 1. -# CYCLVARS Other namelist inputs to the cycle executable -# defaults to none set -# PGMOUT Executable standard output -# defaults to $pgmout, then to '&1' -# PGMERR Executable standard error -# defaults to $pgmerr, then to '&1' -# pgmout Executable standard output default -# pgmerr Executable standard error default -# REDOUT standard output redirect ('1>' or '1>>') -# defaults to '1>', or to '1>>' to append if $PGMOUT is a file -# REDERR standard error redirect ('2>' or '2>>') -# defaults to '2>', or to '2>>' to append if $PGMERR is a file -# VERBOSE Verbose flag (YES or NO) -# defaults to NO -# use_ufo Adjust sst and soil substrate temperature for differences -# between the filtered and unfiltered terrain. Default is true. -# DONST Process NST records when using NST model. Default is 'no'. -# ADJT_NSST_ -# ONLY When .true. only do the NSST update (don't call the sfcsub -# component). Default is .false. - call sfcsub and update -# NSST. -# zsea1/zsea2 When running with NST model, this is the lower/upper bound -# of depth of sea temperature. In whole mm. -# MAX_TASKS_CY Normally, program should be run with a number of mpi tasks -# equal to the number of cubed-sphere tiles being processed. -# However, the current parallel scripts may over-specify the -# number of tasks. Set this variable to not process -# any ranks greater than max_tasks-1. Default is '99999', -# which means to process using all tasks. -# global_ -# gfs_ver Version number of gfs directory. Default is -# v15.0.0. -# OMP_NUM_ -# THREADS_CY Number of omp threads to use. Default is 1. -# APRUNC Machine specific command to invoke the executable. -# Default is none. -# -# Exported Shell Variables: -# PGM Current program name -# pgm -# ERR Last return code -# err -# -# Modules and files referenced: -# scripts : $INISCRIPT -# $LOGSCRIPT -# $ERRSCRIPT -# $ENDSCRIPT -# -# programs : $CYCLEXEC -# -# fixed data : $FNGLAC -# $FNMXIC -# $FNTSFC -# $FNSNOC -# $FNZORC -# $FNALBC -# $FNALBC2 -# $FNAISC -# $FNTG3C -# $FNVEGC -# $FNVETC -# $FNSOTC -# $FNSMCC -# $FNVMNC -# $FNVMXC -# $FNSLPC -# $FNABSC -# $FNMSKH -# -# input data : $FNTSFA -# $FNACNA -# $FNSNOA -# -# output data: $PGMOUT -# $PGMERR -# -# Remarks: -# -# Condition codes -# 0 - no problem encountered -# >0 - some problem encountered -# -# Control variable resolution priority -# 1 Command line argument. -# 2 Environment variable. -# 3 Inline default. -# -# Attributes: -# Language: POSIX shell -# Machine: IBM SP -# -################################################################################ - -# Set environment. -VERBOSE=${VERBOSE:-"NO"} -if [[ "$VERBOSE" = "YES" ]] ; then - echo $(date) EXECUTING $0 $* >&2 - set -x -fi - -CASE=${CASE:-C768} - -# Directories. -gfs_ver=${gfs_ver:-v15.0.0} -BASEDIR=${BASEDIR:-${NWROOT:-/nwprod2}} -HOMEgfs=${HOMEgfs:-$BASEDIR/gfs_ver.${gfs_ver}} -EXECgfs=${EXECgfs:-$HOMEgfs/exec} -FIXfv3=${FIXfv3:-$HOMEgfs/fix/fix_fv3_gmted2010/$CASE} -FIXam=${FIXam:-$HOMEgfs/fix/fix_am} -DATA=${DATA:-$(pwd)} -COMIN=${COMIN:-$(pwd)} -COMOUT=${COMOUT:-$(pwd)} - -# Filenames. -XC=${XC} -PREINP=${PREINP} -SUFINP=${SUFINP} -CYCLEXEC=${CYCLEXEC:-$EXECgfs/global_cycle$XC} - -CDATE=${CDATE:?} -FHOUR=${FHOUR:-00} - -CRES=$(echo $CASE | cut -c2-) -JCAP_CASE=$((2*CRES-2)) -LONB_CASE=$((4*CRES)) -LATB_CASE=$((2*CRES)) -DELTSFC=${DELTSFC:-0} - -LSOIL=${LSOIL:-4} -FSMCL2=${FSMCL2:-60} -FSLPL=${FSLPL:-99999.} -FSOTL=${FSOTL:-99999.} -FVETL=${FVETL:-99999.} -IALB=${IALB:-1} -ISOT=${ISOT:-1} -IVEGSRC=${IVEGSRC:-1} -CYCLVARS=${CYCLVARS:-""} -use_ufo=${use_ufo:-.true.} -DONST=${DONST:-"NO"} -ADJT_NST_ONLY=${ADJT_NST_ONLY:-.false.} -zsea1=${zsea1:-0} -zsea2=${zsea2:-0} -MAX_TASKS_CY=${MAX_TASKS_CY:-99999} - -FNGLAC=${FNGLAC:-${FIXam}/global_glacier.2x2.grb} -FNMXIC=${FNMXIC:-${FIXam}/global_maxice.2x2.grb} -FNTSFC=${FNTSFC:-${FIXam}/RTGSST.1982.2012.monthly.clim.grb} -FNSNOC=${FNSNOC:-${FIXam}/global_snoclim.1.875.grb} -FNZORC=${FNZORC:-igbp} -FNALBC2=${FNALBC2:-${FIXam}/global_albedo4.1x1.grb} -FNAISC=${FNAISC:-${FIXam}/CFSR.SEAICE.1982.2012.monthly.clim.grb} -FNTG3C=${FNTG3C:-${FIXam}/global_tg3clim.2.6x1.5.grb} -FNVEGC=${FNVEGC:-${FIXam}/global_vegfrac.0.144.decpercent.grb} -FNALBC=${FNALBC:-${FIXam}/global_snowfree_albedo.bosu.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.rg.grb} -FNVETC=${FNVETC:-${FIXam}/global_vegtype.igbp.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.rg.grb} -FNSOTC=${FNSOTC:-${FIXam}/global_soiltype.statsgo.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.rg.grb} -FNSMCC=${FNSMCC:-${FIXam}/global_soilmgldas.statsgo.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.grb} -FNABSC=${FNABSC:-${FIXam}/global_mxsnoalb.uariz.t$JCAP_CASE.$LONB_CASE.$LATB_CASE.rg.grb} -FNVMNC=${FNVMNC:-${FIXam}/global_shdmin.0.144x0.144.grb} -FNVMXC=${FNVMXC:-${FIXam}/global_shdmax.0.144x0.144.grb} -FNSLPC=${FNSLPC:-${FIXam}/global_slope.1x1.grb} -FNMSKH=${FNMSKH:-${FIXam}/global_slmask.t1534.3072.1536.grb} -GSI_FILE=${GSI_FILE:-"NULL"} -FNTSFA=${FNTSFA:-${COMIN}/${PREINP}sstgrb${SUFINP}} -FNACNA=${FNACNA:-${COMIN}/${PREINP}engicegrb${SUFINP}} -FNSNOA=${FNSNOA:-${COMIN}/${PREINP}snogrb${SUFINP}} -export INISCRIPT=${INISCRIPT} -export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} -export LOGSCRIPT=${LOGSCRIPT} -export ENDSCRIPT=${ENDSCRIPT} -# Other variables. -export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} -export PGMERR=${PGMERR:-${pgmerr:-'&2'}} -export REDOUT=${REDOUT:-'1>'} -export REDERR=${REDERR:-'2>'} -# Set defaults -################################################################################ -# Preprocessing -$INISCRIPT -pwd=$(pwd) -if [[ -d $DATA ]] -then - mkdata=NO -else - mkdir -p $DATA - mkdata=YES -fi -cd $DATA||exit 99 -[[ -d $COMOUT ]]||mkdir -p $COMOUT - -# If the appropriate resolution fix file is not present, use the highest resolution available (T1534) -[[ ! -f $FNALBC ]] && FNALBC="$FIXam/global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb" -[[ ! -f $FNVETC ]] && FNVETC="$FIXam/global_vegtype.igbp.t1534.3072.1536.rg.grb" -[[ ! -f $FNSOTC ]] && FNSOTC="$FIXam/global_soiltype.statsgo.t1534.3072.1536.rg.grb" -[[ ! -f $FNABSC ]] && FNABSC="$FIXam/global_mxsnoalb.uariz.t1534.3072.1536.rg.grb" -[[ ! -f $FNSMCC ]] && FNSMCC="$FIXam/global_soilmgldas.statsgo.t1534.3072.1536.grb" - -################################################################################ -# Make surface analysis -export PGM=$CYCLEXEC -export pgm=$PGM -$LOGSCRIPT - -iy=$(echo $CDATE|cut -c1-4) -im=$(echo $CDATE|cut -c5-6) -id=$(echo $CDATE|cut -c7-8) -ih=$(echo $CDATE|cut -c9-10) - -export OMP_NUM_THREADS=${OMP_NUM_THREADS_CY:-${CYCLETHREAD:-1}} - -cat << EOF > fort.35 -&NAMSFC - FNGLAC="$FNGLAC", - FNMXIC="$FNMXIC", - FNTSFC="$FNTSFC", - FNSNOC="$FNSNOC", - FNZORC="$FNZORC", - FNALBC="$FNALBC", - FNALBC2="$FNALBC2", - FNAISC="$FNAISC", - FNTG3C="$FNTG3C", - FNVEGC="$FNVEGC", - FNVETC="$FNVETC", - FNSOTC="$FNSOTC", - FNSMCC="$FNSMCC", - FNVMNC="$FNVMNC", - FNVMXC="$FNVMXC", - FNSLPC="$FNSLPC", - FNABSC="$FNABSC", - FNMSKH="$FNMSKH", - FNTSFA="$FNTSFA", - FNACNA="$FNACNA", - FNSNOA="$FNSNOA", - LDEBUG=.false., - FSLPL=$FSLPL, - FSOTL=$FSOTL, - FVETL=$FVETL, - FSMCL(2)=$FSMCL2, - FSMCL(3)=$FSMCL2, - FSMCL(4)=$FSMCL2, - $CYCLVARS - / -EOF - -cat << EOF > fort.36 - &NAMCYC - idim=$CRES, jdim=$CRES, lsoil=$LSOIL, - iy=$iy, im=$im, id=$id, ih=$ih, fh=$FHOUR, - deltsfc=$DELTSFC,ialb=$IALB,use_ufo=$use_ufo,donst=$DONST, - adjt_nst_only=$ADJT_NST_ONLY,isot=$ISOT,ivegsrc=$IVEGSRC, - zsea1_mm=$zsea1,zsea2_mm=$zsea2,MAX_TASKS=$MAX_TASKS_CY - / -EOF - -cat << EOF > fort.37 - &NAMSFCD - GSI_FILE="$GSI_FILE", - / -EOF - -$APRUNCY $CYCLEXEC $REDOUT$PGMOUT $REDERR$PGMERR - -export ERR=$? -export err=$ERR -$ERRSCRIPT||exit 2 - -################################################################################ -# Postprocessing -cd $pwd -[[ $mkdata = YES ]]&&rmdir $DATA -$ENDSCRIPT -set +x -if [[ "$VERBOSE" = "YES" ]] -then - echo $(date) EXITING $0 with return code $err >&2 -fi -exit $err diff --git a/ush/global_cycle_driver.sh b/ush/global_cycle_driver.sh deleted file mode 100755 index 7a8c2a8cec..0000000000 --- a/ush/global_cycle_driver.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh - -set -ax - -#------------------------------------------------------------------------------------------------- -# Update surface fields in FV3 restart files on the cubed-sphere grid -# George Gayno, 09/XX/2017 -# Rahul Mahajan, 10/11/2017 -#------------------------------------------------------------------------------------------------- - -export machine=${machine:-"WCOSS_C"} - -export CASE=${CASE:-C768} # resolution of tile: 48, 96, 192, 384, 768, 1152, 3072 -export CDATE=${CDATE:-${cdate:-2017031900}} # format yyyymmddhh yyyymmddhh ... -export CDUMP=${CDUMP:-gfs} # gfs or gdas - -pwd=$(pwd) -export NWPROD=${NWPROD:-$pwd} -export DMPDIR=${DMPDIR:-$NWPROD} -export HOMEgfs=${HOMEgfs:-$NWPROD/gfs.v15.0.0} -export FIXam=${FIXam:-$HOMEgfs/fix/fix_am} -export FIXfv3=${FIXfv3:-$HOMEgfs/fix/fix_fv3_gmted2010} - -ntiles=${ntiles:-6} -DONST=${DONST:-"NO"} -COMIN=${COMIN:-$pwd} -COMOUT=${COMOUT:-$pwd} - -CYCLESH=${CYCLESH:-$HOMEgfs/ush/global_cycle.sh} -export CYCLEXEC=${CYCLEXEC:-$HOMEgfs/exec/global_cycle} -export OMP_NUM_THREADS_CY=${OMP_NUM_THREADS_CY:-24} -export APRUNCY=${APRUNCY:-"time"} -export VERBOSE=${VERBOSE:-"YES"} - -export FHOUR=${FHOUR:-0} -export DELTSFC=${DELTSFC:-6} - -PDY=$(echo $CDATE | cut -c1-8) -cyc=$(echo $CDATE | cut -c9-10) - -export FNTSFA=${FNTSFA:-$DMPDIR/$CDATE/$CDUMP/${CDUMP}.t${cyc}z.rtgssthr.grb} -export FNSNOA=${FNSNOA:-$DMPDIR/$CDATE/$CDUMP/${CDUMP}.t${cyc}z.snogrb_t1534.3072.1536} -export FNACNA=${FNACNA:-$DMPDIR/$CDATE/$CDUMP/${CDUMP}.t${cyc}z.seaice.5min.blend.grb} - -export CYCLVARS=${CYCLVARS:-"FSNOL=-2.,FSNOS=99999.,"} - -if [ $DONST = "YES" ]; then - export GSI_FILE=${GSI_FILE:-$COMOUT/dtfanl.nc} - export ADJT_NST_ONLY=${ADJT_NST_ONLY:-".false."} -else - export GSI_FILE="NULL" - export ADJT_NST_ONLY=".false." -fi - -CRES=$(echo $CASE | cut -c 2-) -JCAP_CASE=$((2*CRES-2)) -LONB_CASE=$((4*CRES)) -LATB_CASE=$((2*CRES)) - -export JCAP=${JCAP:-$JCAP_CASE} -export LONB=${LONB:-$LONB_CASE} -export LATB=${LATB:-$LATB_CASE} - -export MAX_TASKS_CY=${MAX_TASKS_CY:-99999} - -# Temporary rundirectory -export DATA=${DATA:-$pwd/rundir$$} -rm -fr $DATA -mkdir -p $DATA - -for n in $(seq 1 $ntiles); do - ln -fs $COMIN/$PDY.${cyc}0000.sfc_data.tile${n}.nc $DATA/fnbgsi.00$n - ln -fs $COMOUT/$PDY.${cyc}0000.sfcanl_data.tile${n}.nc $DATA/fnbgso.00$n - ln -fs $FIXfv3/C${CRES}/C${CRES}_grid.tile${n}.nc $DATA/fngrid.00$n - ln -fs $FIXfv3/C${CRES}/C${CRES}_oro_data.tile${n}.nc $DATA/fnorog.00$n -done - -$CYCLESH -rc=$? -if [[ $rc -ne 0 ]] ; then - echo "***ERROR*** rc= $rc" - exit $rc -fi - -exit 0 diff --git a/ush/global_tracker.sh b/ush/global_tracker.sh deleted file mode 100755 index a348bf533e..0000000000 --- a/ush/global_tracker.sh +++ /dev/null @@ -1,107 +0,0 @@ -#! /bin/ksh -set -x - -export CDATE=${1:-?} -export CDUMP=${2:-?} -export COMOUT=${3:-?} -export DATA=${4:-?} -export nknd=${5:-0} - -export PSLOT=${PSLOT:-x} -export FHMAX2=${FHMAX2:-252} -export FHOUT=${FHOUT:-3} -user=$LOGNAME - -# Load production utility module. Used by PARATRKR -shell=${SHELL:-ksh} -export machine=${machine:-WCOSS_C} -if [ $machine = WCOSS_C ]; then -# . $MODULESHOME/init/sh 2>>/dev/null -# module load iobuf/2.0.5 2>>/dev/null - export IOBUF_PARAMS="*:size=32M:count=4:verbose" - export APRUNTRACK="aprun -j1 -n1 -N1 -d1" -elif [ $machine = WCOSS_DELL_P3 ]; then - export IOBUF_PARAMS="*:size=32M:count=4:verbose" - export APRUNTRACK="mpirun -n 1 " -fi -# -export HOMEDIR=$HOMEgfs -export USHDIR=${USHDIR:-$HOMEDIR/ush} -export archsyndir=${archsyndir:-$COMROOTp1/arch/prod/syndat} -export HOMERELO=${HOMERELO:-$HOMEDIR} -FIXRELO=${FIXRELO:-${HOMERELO}/fix} -GRIBVERSION=${GRIBVERSION:-"grib2"} -# -export GETTRKEXEC=${GETTRKEXEC:-$HOMEDIR/exec/gettrk} -export inpdate=$CDATE -export paradir=$COMIN -export prxtrak=$DATA -export vdir=$DATA - -if [ ! -d ${vdir} ]; then - mkdir -p ${vdir} -fi -if [ ! -d ${prxtrak} ]; then - mkdir -p ${prxtrak} -fi - -cd $vdir - -# Always keep cmodel as "para" - -export cmodel=para -if [ "$GRIBVERSION" = "grib1" ]; then - export gribver=1 -else - export gribver=2 -fi - -# TRACKID can be changed to "parx", "pary", "parw", etc.... - -# -nn=$((`echo $PSLOT | wc -c`-1)) -if [ $nn -eq 1 ] ; then - export TRACKID=`echo par$PSLOT | cut -c1-4` -else -# export TRACKID=pr$PSLOT - export TRACKID=`echo pr$PSLOT | cut -c1-4` -fi - - -export YYYYMMDDHH=${inpdate} -export PDY=` echo ${YYYYMMDDHH} | cut -c1-8` -export cyc=` echo ${YYYYMMDDHH} | cut -c9-10` -if [[ -r tcvitl.$CDUMP.$CDATE ]]; then - export AUXTCVIT=$DATA/auxtcvit.$CDATE - export GDATE=$($NDATE -06 $CDATE) - cat tcvitl.gdas.$GDATE tcvitl.$CDUMP.$CDATE >$AUXTCVIT -else - export AUXTCVIT=JUNK_NOFILE -fi - -if [ $nknd -gt 1 ] ; then - export CDUMP=${CDUMP}${nknd} -fi - -gfstrackhour1=180; gfstrackhour2=252 -if [ $gfstrackhour1 -gt $FHMAX2 ]; then gfstrackhour1=$FHMAX2 ; fi -if [ $gfstrackhour2 -gt $FHMAX2 ]; then gfstrackhour2=$FHMAX2 ; fi - -if [[ $CDUMP = gdas ]]; then - ${APRUNTRACK} ${PARATRKR:-$USHDIR/global_extrkr.sh} --gdas-last-hour 9 - cp $DATA/trak.$TRACKID.atcfunix.$CDATE $COMOUT/atcfunix.$CDUMP.$CDATE -else - # Run first tracker for 180 hours for NHC/JTWC operational forecast: - ${APRUNTRACK} ${PARATRKR:-$USHDIR/global_extrkr.sh} --gfs-last-hour $gfstrackhour1 --wait-for-data 900 - cp $DATA/trak.$TRACKID.atcfunix.$CDATE $COMOUT/atcfunix.$CDUMP.$CDATE - if [ $machine = WCOSS_C -o $machine = WCOSS_DELL_P3 ]; then - # Run a second tracker for 252 hours for experimental ten day forecasts: - if [ $gfstrackhour2 -gt $gfstrackhour1 ]; then; - export SENDNHC=NO - ${APRUNTRACK} ${PARATRKR:-$USHDIR/global_extrkr.sh} --gfs-last-hour $gfstrackhour2 --wait-for-data 900 - cp $DATA/trak.$TRACKID.atcfunix.$CDATE $COMOUT/atcf252hr.$CDUMP.$CDATE - fi - fi -fi - - diff --git a/ush/hpssarch_gen.sh b/ush/hpssarch_gen.sh index 9b951086ce..1f4c8ed542 100755 --- a/ush/hpssarch_gen.sh +++ b/ush/hpssarch_gen.sh @@ -12,6 +12,20 @@ type=${1:-gfs} ##gfs, gdas, enkfgdas or enkfggfs CDATE=${CDATE:-2018010100} PDY=$(echo $CDATE | cut -c 1-8) cyc=$(echo $CDATE | cut -c 9-10) +OUTPUT_FILE=${OUTPUT_FILE:-"netcdf"} +OUTPUT_HISTORY=${OUTPUT_HISTORY:-".true."} +SUFFIX=${SUFFIX:-".nc"} +if [ $SUFFIX = ".nc" ]; then + format="netcdf" +else + format="nemsio" +fi + +# Set whether to archive downstream products +DO_DOWN=${DO_DOWN:-"NO"} +if [ $DO_BUFRSND = "YES" -o $WAFSF = "YES" ]; then + export DO_DOWN="YES" +fi #----------------------------------------------------- if [ $type = "gfs" ]; then @@ -27,18 +41,25 @@ if [ $type = "gfs" ]; then rm -f gfsb.txt rm -f gfs_pgrb2b.txt rm -f gfs_flux.txt - rm -f gfs_nemsioa.txt - rm -f gfs_nemsiob.txt + rm -f gfs_${format}a.txt + rm -f gfs_${format}b.txt rm -f gfs_restarta.txt touch gfsa.txt touch gfsb.txt touch gfs_pgrb2b.txt touch gfs_flux.txt - touch gfs_nemsioa.txt - touch gfs_nemsiob.txt + touch gfs_${format}a.txt + touch gfs_${format}b.txt touch gfs_restarta.txt - dirname="./gfs.${PDY}/${cyc}/" + if [ $DO_DOWN = "YES" ]; then + rm -f gfs_downstream.txt + touch gfs_downstream.txt + fi + + dirpath="gfs.${PDY}/${cyc}/atmos/" + dirname="./${dirpath}" + head="gfs.t${cyc}z." #.................. @@ -47,6 +68,7 @@ if [ $type = "gfs" ]; then echo "${dirname}${head}pgrb2b.0p50.anl " >>gfs_pgrb2b.txt echo "${dirname}${head}pgrb2b.0p50.anl.idx " >>gfs_pgrb2b.txt + echo "./logs/${CDATE}/gfs*.log " >>gfsa.txt echo "${dirname}${head}gsistat " >>gfsa.txt echo "${dirname}${head}nsstbufr " >>gfsa.txt echo "${dirname}${head}prepbufr " >>gfsa.txt @@ -54,16 +76,32 @@ if [ $type = "gfs" ]; then echo "${dirname}${head}prepbufr.acft_profiles " >>gfsa.txt echo "${dirname}${head}pgrb2.0p25.anl " >>gfsa.txt echo "${dirname}${head}pgrb2.0p25.anl.idx " >>gfsa.txt - echo "${dirname}avn.t${cyc}z.cyclone.trackatcfunix " >>gfsa.txt - echo "${dirname}gfso.t${cyc}z.cyclone.trackatcfunix " >>gfsa.txt + echo "${dirname}avno.t${cyc}z.cyclone.trackatcfunix " >>gfsa.txt + echo "${dirname}avnop.t${cyc}z.cyclone.trackatcfunix " >>gfsa.txt + echo "${dirname}trak.gfso.atcfunix.${PDY}${cyc} " >>gfsa.txt + echo "${dirname}trak.gfso.atcfunix.altg.${PDY}${cyc} " >>gfsa.txt echo "${dirname}storms.gfso.atcf_gen.${PDY}${cyc} " >>gfsa.txt echo "${dirname}storms.gfso.atcf_gen.altg.${PDY}${cyc} " >>gfsa.txt - echo "${dirname}trak.gfso.atcf_gen.${PDY}${cyc} " >>gfsa.txt - echo "${dirname}trak.gfso.atcf_gen.altg.${PDY}${cyc} " >>gfsa.txt - echo "${dirname}nawips/gfs_${PDY}${cyc}.sfc " >>gfsa.txt - echo "${dirname}nawips/gfs_${PDY}${cyc}.snd " >>gfsa.txt - echo "${dirname}bufr.t${cyc}z " >>gfsa.txt - echo "./logs/${CDATE}/gfs*.log " >>gfsa.txt + + if [ $DO_DOWN = "YES" ]; then + if [ $DO_BUFRSND = "YES" ]; then + echo "${dirname}gempak/gfs_${PDY}${cyc}.sfc " >>gfs_downstream.txt + echo "${dirname}gempak/gfs_${PDY}${cyc}.snd " >>gfs_downstream.txt + echo "${dirname}wmo/gfs_collective*.postsnd_${cyc} " >>gfs_downstream.txt + echo "${dirname}bufr.t${cyc}z " >>gfs_downstream.txt + echo "${dirname}gfs.t${cyc}z.bufrsnd.tar.gz " >>gfs_downstream.txt + fi + if [ $WAFSF = "YES" ]; then + echo "${dirname}wafsgfs*.t${cyc}z.gribf*.grib2 " >>gfs_downstream.txt + echo "${dirname}gfs.t${cyc}z.wafs_grb45f*.grib2 " >>gfs_downstream.txt + echo "${dirname}gfs.t${cyc}z.wafs_grb45f*.nouswafs.grib2 " >>gfs_downstream.txt + echo "${dirname}WAFS_blended_${PDY}${cyc}f*.grib2 " >>gfs_downstream.txt + echo "${dirname}gfs.t*z.gcip.f*.grib2 " >>gfs_downstream.txt + echo "${dirname}gfs.t${cyc}z.wafs_0p25.f*.grib2 " >>gfs_downstream.txt + echo "${dirname}gfs.t${cyc}z.wafs_0p25_unblended.f*.grib2" >>gfs_downstream.txt + echo "${dirname}WAFS_0p25_blended_${PDY}${cyc}f*.grib2 " >>gfs_downstream.txt + fi + fi echo "${dirname}${head}pgrb2.0p50.anl " >>gfsb.txt echo "${dirname}${head}pgrb2.0p50.anl.idx " >>gfsb.txt @@ -76,20 +114,26 @@ if [ $type = "gfs" ]; then fhr=$(printf %03i $fh) echo "${dirname}${head}pgrb2b.0p25.f${fhr} " >>gfs_pgrb2b.txt echo "${dirname}${head}pgrb2b.0p25.f${fhr}.idx " >>gfs_pgrb2b.txt - echo "${dirname}${head}pgrb2b.0p50.f${fhr} " >>gfs_pgrb2b.txt - echo "${dirname}${head}pgrb2b.0p50.f${fhr}.idx " >>gfs_pgrb2b.txt + if [ -s $ROTDIR/${dirpath}${head}pgrb2b.0p50.f${fhr} ]; then + echo "${dirname}${head}pgrb2b.0p50.f${fhr} " >>gfs_pgrb2b.txt + echo "${dirname}${head}pgrb2b.0p50.f${fhr}.idx " >>gfs_pgrb2b.txt + fi echo "${dirname}${head}sfluxgrbf${fhr}.grib2 " >>gfs_flux.txt echo "${dirname}${head}sfluxgrbf${fhr}.grib2.idx " >>gfs_flux.txt echo "${dirname}${head}pgrb2.0p25.f${fhr} " >>gfsa.txt echo "${dirname}${head}pgrb2.0p25.f${fhr}.idx " >>gfsa.txt - echo "${dirname}${head}logf${fhr}.nemsio " >>gfsa.txt + echo "${dirname}${head}logf${fhr}.txt " >>gfsa.txt - echo "${dirname}${head}pgrb2.0p50.f${fhr} " >>gfsb.txt - echo "${dirname}${head}pgrb2.0p50.f${fhr}.idx " >>gfsb.txt - echo "${dirname}${head}pgrb2.1p00.f${fhr} " >>gfsb.txt - echo "${dirname}${head}pgrb2.1p00.f${fhr}.idx " >>gfsb.txt + if [ -s $ROTDIR/${dirpath}${head}pgrb2.0p50.f${fhr} ]; then + echo "${dirname}${head}pgrb2.0p50.f${fhr} " >>gfsb.txt + echo "${dirname}${head}pgrb2.0p50.f${fhr}.idx " >>gfsb.txt + fi + if [ -s $ROTDIR/${dirpath}${head}pgrb2.1p00.f${fhr} ]; then + echo "${dirname}${head}pgrb2.1p00.f${fhr} " >>gfsb.txt + echo "${dirname}${head}pgrb2.1p00.f${fhr}.idx " >>gfsb.txt + fi inc=$FHOUT_GFS if [ $FHMAX_HF_GFS -gt 0 -a $FHOUT_HF_GFS -gt 0 -a $fh -lt $FHMAX_HF_GFS ]; then @@ -101,29 +145,47 @@ if [ $type = "gfs" ]; then #.................. - echo "${dirname}${head}atmanl.nemsio " >>gfs_nemsioa.txt - echo "${dirname}${head}sfcanl.nemsio " >>gfs_nemsioa.txt - echo "${dirname}${head}atmf000.nemsio " >>gfs_nemsioa.txt - echo "${dirname}${head}sfcf000.nemsio " >>gfs_nemsioa.txt - echo "${dirname}${head}atminc.nc " >>gfs_nemsioa.txt - echo "${dirname}${head}dtfanl.nc " >>gfs_nemsioa.txt + echo "${dirname}${head}atmanl${SUFFIX} " >>gfs_${format}a.txt + echo "${dirname}${head}sfcanl${SUFFIX} " >>gfs_${format}a.txt + echo "${dirname}${head}atmi*.nc " >>gfs_${format}a.txt + echo "${dirname}${head}dtfanl.nc " >>gfs_${format}a.txt + echo "${dirname}${head}loginc.txt " >>gfs_${format}a.txt #.................. - fh=6 + if [ $OUTPUT_HISTORY = ".true." ]; then + fh=0 while [ $fh -le 36 ]; do fhr=$(printf %03i $fh) - echo "${dirname}${head}atmf${fhr}.nemsio " >>gfs_nemsiob.txt - echo "${dirname}${head}sfcf${fhr}.nemsio " >>gfs_nemsiob.txt + echo "${dirname}${head}atmf${fhr}${SUFFIX} " >>gfs_${format}b.txt + echo "${dirname}${head}sfcf${fhr}${SUFFIX} " >>gfs_${format}b.txt fh=$((fh+6)) done + fi + + #.................. + echo "${dirname}RESTART/*0000.sfcanl_data.tile1.nc " >>gfs_restarta.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile2.nc " >>gfs_restarta.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile3.nc " >>gfs_restarta.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile4.nc " >>gfs_restarta.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile5.nc " >>gfs_restarta.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile6.nc " >>gfs_restarta.txt #.................. - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile1.nc " >>gfs_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile2.nc " >>gfs_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile3.nc " >>gfs_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile4.nc " >>gfs_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile5.nc " >>gfs_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile6.nc " >>gfs_restarta.txt + if [ $DO_WAVE = "YES" ]; then + + rm -rf gfswave.txt + touch gfswave.txt + + dirpath="gfs.${PDY}/${cyc}/wave/" + dirname="./${dirpath}" + + head="gfswave.t${cyc}z." + + #........................... + echo "${dirname}gridded/${head}* " >>gfswave.txt + echo "${dirname}station/${head}* " >>gfswave.txt + + fi #----------------------------------------------------- fi ##end of gfs @@ -142,21 +204,37 @@ if [ $type = "gdas" ]; then touch gdas_restarta.txt touch gdas_restartb.txt - dirname="./gdas.${PDY}/${cyc}/" + dirpath="gdas.${PDY}/${cyc}/atmos/" + dirname="./${dirpath}" head="gdas.t${cyc}z." #.................. - echo "${dirname}${head}cnvstat " >>gdas.txt echo "${dirname}${head}gsistat " >>gdas.txt - echo "${dirname}${head}oznstat " >>gdas.txt - echo "${dirname}${head}radstat " >>gdas.txt echo "${dirname}${head}pgrb2.0p25.anl " >>gdas.txt echo "${dirname}${head}pgrb2.0p25.anl.idx " >>gdas.txt echo "${dirname}${head}pgrb2.1p00.anl " >>gdas.txt echo "${dirname}${head}pgrb2.1p00.anl.idx " >>gdas.txt - echo "${dirname}${head}atmanl.nemsio " >>gdas.txt - echo "${dirname}${head}sfcanl.nemsio " >>gdas.txt - for fstep in prep anal fcst vrfy radmon minmon oznmon; do + echo "${dirname}${head}atmanl${SUFFIX} " >>gdas.txt + echo "${dirname}${head}sfcanl${SUFFIX} " >>gdas.txt + if [ -s $ROTDIR/${dirpath}${head}atmanl.ensres${SUFFIX} ]; then + echo "${dirname}${head}atmanl.ensres${SUFFIX} " >>gdas.txt + fi + if [ -s $ROTDIR/${dirpath}${head}atma003.ensres${SUFFIX} ]; then + echo "${dirname}${head}atma003.ensres${SUFFIX} " >>gdas.txt + fi + if [ -s $ROTDIR/${dirpath}${head}atma009.ensres${SUFFIX} ]; then + echo "${dirname}${head}atma009.ensres${SUFFIX} " >>gdas.txt + fi + if [ -s $ROTDIR/${dirpath}${head}cnvstat ]; then + echo "${dirname}${head}cnvstat " >>gdas.txt + fi + if [ -s $ROTDIR/${dirpath}${head}oznstat ]; then + echo "${dirname}${head}oznstat " >>gdas.txt + fi + if [ -s $ROTDIR/${dirpath}${head}radstat ]; then + echo "${dirname}${head}radstat " >>gdas.txt + fi + for fstep in prep anal gldas fcst vrfy radmon minmon oznmon; do if [ -s $ROTDIR/logs/${CDATE}/gdas${fstep}.log ]; then echo "./logs/${CDATE}/gdas${fstep}.log " >>gdas.txt fi @@ -172,16 +250,26 @@ if [ $type = "gdas" ]; then echo "${dirname}${head}pgrb2.0p25.f${fhr}.idx " >>gdas.txt echo "${dirname}${head}pgrb2.1p00.f${fhr} " >>gdas.txt echo "${dirname}${head}pgrb2.1p00.f${fhr}.idx " >>gdas.txt - echo "${dirname}${head}logf${fhr}.nemsio " >>gdas.txt - echo "${dirname}${head}atmf${fhr}.nemsio " >>gdas.txt - echo "${dirname}${head}sfcf${fhr}.nemsio " >>gdas.txt + echo "${dirname}${head}logf${fhr}.txt " >>gdas.txt + echo "${dirname}${head}atmf${fhr}${SUFFIX} " >>gdas.txt + echo "${dirname}${head}sfcf${fhr}${SUFFIX} " >>gdas.txt fh=$((fh+3)) done + flist="001 002 004 005 007 008" + for fhr in $flist; do + echo "${dirname}${head}sfluxgrbf${fhr}.grib2 " >>gdas.txt + echo "${dirname}${head}sfluxgrbf${fhr}.grib2.idx " >>gdas.txt + done + #.................. - echo "${dirname}${head}cnvstat " >>gdas_restarta.txt - echo "${dirname}${head}radstat " >>gdas_restarta.txt + if [ -s $ROTDIR/${dirpath}${head}cnvstat ]; then + echo "${dirname}${head}cnvstat " >>gdas_restarta.txt + fi + if [ -s $ROTDIR/${dirpath}${head}radstat ]; then + echo "${dirname}${head}radstat " >>gdas_restarta.txt + fi echo "${dirname}${head}nsstbufr " >>gdas_restarta.txt echo "${dirname}${head}prepbufr " >>gdas_restarta.txt echo "${dirname}${head}prepbufr_pre-qc " >>gdas_restarta.txt @@ -190,19 +278,43 @@ if [ $type = "gdas" ]; then echo "${dirname}${head}abias_air " >>gdas_restarta.txt echo "${dirname}${head}abias_int " >>gdas_restarta.txt echo "${dirname}${head}abias_pc " >>gdas_restarta.txt - echo "${dirname}${head}atminc.nc " >>gdas_restarta.txt + echo "${dirname}${head}atmi*nc " >>gdas_restarta.txt echo "${dirname}${head}dtfanl.nc " >>gdas_restarta.txt + echo "${dirname}${head}loginc.txt " >>gdas_restarta.txt + + echo "${dirname}RESTART/*0000.sfcanl_data.tile1.nc " >>gdas_restarta.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile2.nc " >>gdas_restarta.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile3.nc " >>gdas_restarta.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile4.nc " >>gdas_restarta.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile5.nc " >>gdas_restarta.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile6.nc " >>gdas_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile1.nc " >>gdas_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile2.nc " >>gdas_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile3.nc " >>gdas_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile4.nc " >>gdas_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile5.nc " >>gdas_restarta.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile6.nc " >>gdas_restarta.txt #.................. echo "${dirname}RESTART " >>gdas_restartb.txt + #.................. + if [ $DO_WAVE = "YES" ]; then + + rm -rf gdaswave.txt + touch gdaswave.txt + rm -rf gdaswave_restart.txt + touch gdaswave_restart.txt + + dirpath="gdas.${PDY}/${cyc}/wave/" + dirname="./${dirpath}" + + head="gdaswave.t${cyc}z." + + #........................... + echo "${dirname}gridded/${head}* " >>gdaswave.txt + echo "${dirname}station/${head}* " >>gdaswave.txt + + echo "${dirname}restart/* " >>gdaswave_restart.txt + + fi + + #----------------------------------------------------- fi ##end of gdas #----------------------------------------------------- @@ -212,36 +324,70 @@ fi ##end of gdas if [ $type = "enkfgdas" -o $type = "enkfgfs" ]; then #----------------------------------------------------- + IAUFHRS_ENKF=${IAUFHRS_ENKF:-6} + lobsdiag_forenkf=${lobsdiag_forenkf:-".false."} + nfhrs=`echo $IAUFHRS_ENKF | sed 's/,/ /g'` NMEM_ENKF=${NMEM_ENKF:-80} NMEM_EARCGRP=${NMEM_EARCGRP:-10} ##number of ens memebers included in each tarball NTARS=$((NMEM_ENKF/NMEM_EARCGRP)) [[ $NTARS -eq 0 ]] && NTARS=1 [[ $((NTARS*NMEM_EARCGRP)) -lt $NMEM_ENKF ]] && NTARS=$((NTARS+1)) - NTARS2=$((NTARS/2)) +##NTARS2=$((NTARS/2)) # number of earc groups to include analysis/increments + NTARS2=$NTARS - dirname="./enkf${CDUMP}.${PDY}/${cyc}/" + dirpath="enkf${CDUMP}.${PDY}/${cyc}/atmos/" + dirname="./${dirpath}" head="${CDUMP}.t${cyc}z." #.................. rm -f enkf${CDUMP}.txt touch enkf${CDUMP}.txt - echo "${dirname}${head}cnvstat.ensmean " >>enkf${CDUMP}.txt echo "${dirname}${head}enkfstat " >>enkf${CDUMP}.txt echo "${dirname}${head}gsistat.ensmean " >>enkf${CDUMP}.txt - echo "${dirname}${head}oznstat.ensmean " >>enkf${CDUMP}.txt - echo "${dirname}${head}radstat.ensmean " >>enkf${CDUMP}.txt - echo "${dirname}${head}atmanl.ensmean.nemsio " >>enkf${CDUMP}.txt - for fstep in eobs eomg ecen eupd efcs epos ; do + if [ -s $ROTDIR/${dirpath}${head}cnvstat.ensmean ]; then + echo "${dirname}${head}cnvstat.ensmean " >>enkf${CDUMP}.txt + fi + if [ -s $ROTDIR/${dirpath}${head}oznstat.ensmean ]; then + echo "${dirname}${head}oznstat.ensmean " >>enkf${CDUMP}.txt + fi + if [ -s $ROTDIR/${dirpath}${head}radstat.ensmean ]; then + echo "${dirname}${head}radstat.ensmean " >>enkf${CDUMP}.txt + fi + for FHR in $nfhrs; do # loop over analysis times in window + if [ $FHR -eq 6 ]; then + if [ -s $ROTDIR/${dirpath}${head}atmanl.ensmean${SUFFIX} ]; then + echo "${dirname}${head}atmanl.ensmean${SUFFIX} " >>enkf${CDUMP}.txt + fi + if [ -s $ROTDIR/${dirpath}${head}atminc.ensmean${SUFFIX} ]; then + echo "${dirname}${head}atminc.ensmean${SUFFIX} " >>enkf${CDUMP}.txt + fi + else + if [ -s $ROTDIR/${dirpath}${head}atma00${FHR}.ensmean${SUFFIX} ]; then + echo "${dirname}${head}atma00${FHR}.ensmean${SUFFIX} " >>enkf${CDUMP}.txt + fi + if [ -s $ROTDIR/${dirpath}${head}atmi00${FHR}.ensmean${SUFFIX} ]; then + echo "${dirname}${head}atmi00${FHR}.ensmean${SUFFIX} " >>enkf${CDUMP}.txt + fi + fi + done # loop over FHR + for fstep in eobs eomg ecen esfc eupd efcs epos ; do echo "logs/${CDATE}/${CDUMP}${fstep}*.log " >>enkf${CDUMP}.txt done + +# Ensemble spread file only available with netcdf output fh=3 while [ $fh -le 9 ]; do - fhr=$(printf %03i $fh) - echo "${dirname}${head}atmf${fhr}.ensmean.nc4 " >>enkf${CDUMP}.txt - echo "${dirname}${head}atmf${fhr}.ensspread.nc4 " >>enkf${CDUMP}.txt - fh=$((fh+3)) + fhr=$(printf %03i $fh) + echo "${dirname}${head}atmf${fhr}.ensmean${SUFFIX} " >>enkf${CDUMP}.txt + echo "${dirname}${head}sfcf${fhr}.ensmean${SUFFIX} " >>enkf${CDUMP}.txt + if [ $OUTPUT_FILE = "netcdf" ]; then + if [ -s $ROTDIR/${dirpath}${head}atmf${fhr}.ensspread${SUFFIX} ]; then + echo "${dirname}${head}atmf${fhr}.ensspread${SUFFIX} " >>enkf${CDUMP}.txt + fi + fi + fh=$((fh+3)) done #........................... @@ -258,34 +404,70 @@ if [ $type = "enkfgdas" -o $type = "enkfgfs" ]; then m=1 while [ $m -le $NMEM_EARCGRP ]; do - nm=$(((n-1)*NMEM_EARCGRP+m)) - mem=$(printf %03i $nm) - dirname="./enkf${CDUMP}.${PDY}/${cyc}/mem${mem}/" - head="${CDUMP}.t${cyc}z." + nm=$(((n-1)*NMEM_EARCGRP+m)) + mem=$(printf %03i $nm) + dirpath="enkf${CDUMP}.${PDY}/${cyc}/atmos/mem${mem}/" + dirname="./${dirpath}" + head="${CDUMP}.t${cyc}z." #--- - if [ $n -le $NTARS2 ]; then - echo "${dirname}${head}ratmanl.nemsio " >>enkf${CDUMP}_grp${n}.txt + for FHR in $nfhrs; do # loop over analysis times in window + if [ $FHR -eq 6 ]; then + if [ $n -le $NTARS2 ]; then + if [ -s $ROTDIR/${dirpath}${head}atmanl${SUFFIX} ] ; then + echo "${dirname}${head}atmanl${SUFFIX} " >>enkf${CDUMP}_grp${n}.txt + fi + if [ -s $ROTDIR/${dirpath}${head}ratminc${SUFFIX} ] ; then + echo "${dirname}${head}ratminc${SUFFIX} " >>enkf${CDUMP}_grp${n}.txt + fi + fi + if [ -s $ROTDIR/${dirpath}${head}ratminc${SUFFIX} ] ; then + echo "${dirname}${head}ratminc${SUFFIX} " >>enkf${CDUMP}_restarta_grp${n}.txt + fi + + else + if [ $n -le $NTARS2 ]; then + if [ -s $ROTDIR/${dirpath}${head}atma00${FHR}${SUFFIX} ] ; then + echo "${dirname}${head}atma00${FHR}${SUFFIX} " >>enkf${CDUMP}_grp${n}.txt + fi + if [ -s $ROTDIR/${dirpath}${head}ratmi00${FHR}${SUFFIX} ] ; then + echo "${dirname}${head}ratmi00${FHR}${SUFFIX} " >>enkf${CDUMP}_grp${n}.txt + fi + fi + if [ -s $ROTDIR/${dirpath}${head}ratmi00${FHR}${SUFFIX} ] ; then + echo "${dirname}${head}ratmi00${FHR}${SUFFIX} " >>enkf${CDUMP}_restarta_grp${n}.txt + fi + + fi + echo "${dirname}${head}atmf00${FHR}${SUFFIX} " >>enkf${CDUMP}_grp${n}.txt + if [ $FHR -eq 6 ]; then + echo "${dirname}${head}sfcf00${FHR}${SUFFIX} " >>enkf${CDUMP}_grp${n}.txt + fi + done # loop over FHR + + if [[ lobsdiag_forenkf = ".false." ]] ; then + echo "${dirname}${head}gsistat " >>enkf${CDUMP}_grp${n}.txt + if [ -s $ROTDIR/${dirpath}${head}cnvstat ] ; then + echo "${dirname}${head}cnvstat " >>enkf${CDUMP}_grp${n}.txt + fi + if [ -s $ROTDIR/${dirpath}${head}radstat ]; then + echo "${dirname}${head}radstat " >>enkf${CDUMP}_restarta_grp${n}.txt + fi + if [ -s $ROTDIR/${dirpath}${head}cnvstat ]; then + echo "${dirname}${head}cnvstat " >>enkf${CDUMP}_restarta_grp${n}.txt + fi + echo "${dirname}${head}abias " >>enkf${CDUMP}_restarta_grp${n}.txt + echo "${dirname}${head}abias_air " >>enkf${CDUMP}_restarta_grp${n}.txt + echo "${dirname}${head}abias_int " >>enkf${CDUMP}_restarta_grp${n}.txt + echo "${dirname}${head}abias_pc " >>enkf${CDUMP}_restarta_grp${n}.txt fi - echo "${dirname}${head}atmf006.nemsio " >>enkf${CDUMP}_grp${n}.txt - echo "${dirname}${head}cnvstat " >>enkf${CDUMP}_grp${n}.txt - echo "${dirname}${head}gsistat " >>enkf${CDUMP}_grp${n}.txt - - #--- - echo "${dirname}${head}atminc.nc " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}${head}abias " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}${head}abias_air " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}${head}abias_int " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}${head}abias_pc " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}${head}radstat " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}${head}cnvstat " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile1.nc " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile2.nc " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile3.nc " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile4.nc " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile5.nc " >>enkf${CDUMP}_restarta_grp${n}.txt - echo "${dirname}RESTART/${PDY}.${cyc}0000.sfcanl_data.tile6.nc " >>enkf${CDUMP}_restarta_grp${n}.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile1.nc " >>enkf${CDUMP}_restarta_grp${n}.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile2.nc " >>enkf${CDUMP}_restarta_grp${n}.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile3.nc " >>enkf${CDUMP}_restarta_grp${n}.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile4.nc " >>enkf${CDUMP}_restarta_grp${n}.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile5.nc " >>enkf${CDUMP}_restarta_grp${n}.txt + echo "${dirname}RESTART/*0000.sfcanl_data.tile6.nc " >>enkf${CDUMP}_restarta_grp${n}.txt #--- echo "${dirname}RESTART " >>enkf${CDUMP}_restartb_grp${n}.txt @@ -304,6 +486,5 @@ if [ $type = "enkfgdas" -o $type = "enkfgfs" ]; then fi ##end of enkfgdas or enkfgfs #----------------------------------------------------- - exit 0 diff --git a/ush/load_fv3gfs_modules.sh b/ush/load_fv3gfs_modules.sh index e48f1af471..8972b65753 100755 --- a/ush/load_fv3gfs_modules.sh +++ b/ush/load_fv3gfs_modules.sh @@ -15,9 +15,9 @@ module use "$HOMEgfs/modulefiles" if [[ -d /lfs3 ]] ; then # We are on NOAA Jet module load module_base.jet -elif [[ -d /scratch3 ]] ; then - # We are on NOAA Theia - module load module_base.theia +elif [[ -d /scratch1 ]] ; then + # We are on NOAA Hera + module load module_base.hera elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then # We are on NOAA Luna or Surge module load module_base.wcoss_c diff --git a/ush/mkbull_ntc.sh b/ush/mkbull_ntc.sh deleted file mode 100755 index 456f80cf94..0000000000 --- a/ush/mkbull_ntc.sh +++ /dev/null @@ -1,121 +0,0 @@ -# UTILITY SCRIPT NAME : mkbull_ntc.sh -# AUTHOR : David Michaud -# -# ABSTRACT : This utility script generates GRID Bulletins from analysis -# and forecast files. -# -# INPUT: 4 arguments are input to this script. -# 1st argument - hour list - Fcst hour list -# 2nd argument - bullparm - parameter input. -# 3rd argument - out - bulletin file -# -echo "History: JAN 2000 - Modified for IBM SP" -echo "History: AUG 2005 - Converted to send the bulletins to TOC via" -echo " NTC rather than using the status file" -# - -set +x -hour_list=$1 -bullparm=$2 -out=$3 -num=$# - -if test $num -eq 3 -then - echo "" - echo " Appropriate number of arguments were passed" - echo "" - set -x -else - echo "" - echo "Usage: $0 bullparm outputname" - echo "" - exit 16 -fi - -set +x -echo "########################################################" -echo "# Begin making the VARIAN FAX CHART $out maps" -echo "########################################################" -set -x - -msg="Enter Make mkbull utility." -postmsg "$jlogfile" "$msg" - -export pgm=gridbull -. prep_step - -############################## -# Copy Input Field to $DATA -############################## -pgbunit=11 -pgbiunit=31 - -for i in $hour_list -do - if test "$i" = "anl" - then - pgrbfile="pgrbanl" - pgrbifile="pgrbianl" - elif test "$i" = "rtgssthr" - then - pgrbfile="rtgssthr" - pgrbifile="rtgssthr.index" - cp $COMIN/${cyc}/${RUN}.${cycle}.${pgrbfile}.grib2 . - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File ${RUN}.${cycle}.${pgrbfile}.grib2 does not exist." - exit $err - fi - - export grid="0 6 0 0 0 0 0 0 360 180 0 0 89500000 500000 48 -89500000 359500000 1000000 1000000 0" - $COPYGB2 -g "$grid" -i0 -x gdas.t12z.rtgssthr.grib2 gdas.t12z.rtgssthr_1p0.grib2 - - $CNVGRIB -g21 gdas.t12z.rtgssthr_1p0.grib2 $pgrbfile - $GRBINDEX $pgrbfile $pgrbifile - else - pgrbfile="pgrbf$i" - pgrb2file="pgrb2.1p00.f$i" - pgrbifile="pgrbif$i" - fi - if test ! -f $pgrbfile - then - cp $COMIN/${cyc}/${RUN}.${cycle}.$pgrb2file . - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File ${RUN}.${cycle}.$pgrb2file does not exist." - exit $err - fi - - $CNVGRIB -g21 ${RUN}.${cycle}.$pgrb2file $pgrbfile - fi - - if test ! -f $pgrbifile - then - $GRBINDEX $pgrbfile $pgrbifile - fi - - eval export FORT${pgbunit}="$pgrbfile" - eval export FORT${pgbiunit}="$pgrbifile" - - pgbunit=`expr $pgbunit + 1` - pgbiunit=`expr $pgbiunit + 1` -done - -export FORT20=$bullparm -export FORT88="$out" - -startmsg -$EXECgfs/gridbull >> $pgmout 2> errfile -export err=$?;err_chk - -############################## -# Post Files to ${COMOUTwmo} -############################## - -$UTILgfs/ush/make_ntc_bull.pl WMOBH NONE KWBC NONE $DATA/$out ${COMOUTwmo}/$out - -msg="mkbull_ntc.sh completed normally" -postmsg "$jlogfile" "$msg" - -exit diff --git a/ush/mkwintem.sh b/ush/mkwintem.sh deleted file mode 100755 index a12c825fcf..0000000000 --- a/ush/mkwintem.sh +++ /dev/null @@ -1,65 +0,0 @@ - -# UTILITY SCRIPT NAME : mkwintem.sh -# AUTHOR : Hua-Lu Pan -# DATE WRITTEN : 02/03/97 -# -# Abstract: This utility script produces the wind temp -# bulletins, from the GFS forecast fields. -# -# Input: none -# -echo "History: February 1997 - First implementation of this utility script" -echo "History: July 2014 - Modify to use GFS 1.0 deg GRIB2" -# - -set -xa - -job_name=`echo $job|sed 's/[jpt]gfs/gfs/'` - -export pgm=wintemv -. prep_step - - -for fhr in 06 12 18 24 -do - - cp $COMIN/gfs.${cycle}.pgrb2.1p00.f0${fhr} . - $CNVGRIB -g21 gfs.${cycle}.pgrb2.1p00.f0${fhr} pgrbf${fhr} - $GRBINDEX pgrbf${fhr} pgrbif${fhr} - -done - -cp $PARMwmo/bulls_wkeysb wkeysb -export FORT11="pgrbf06" -export FORT12="pgrbf12" -export FORT13="pgrbf18" -export FORT14="pgrbf24" -export FORT31="pgrbif06" -export FORT32="pgrbif12" -export FORT33="pgrbif18" -export FORT34="pgrbif24" -export FORT51="wintemv.bul" -$EXECgfs/wintemv < wkeysb >> $pgmout 2>errfile -export err=$?; err_chk - -#################################################################### - - if test $SENDCOM = 'YES' - then - cp wintemv.bul $COMOUTwmo/wintemv.tran.$job_name - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File wintemv.bul does not exist." - exit $err - fi - -# Add an entry to the OSO status file. - - if test $SENDDBN = 'YES' - then - ${UTILgfs}/ush/make_ntc_bull.pl WMONV NONE KWNO NONE \ - wintemv.bul $COMOUTwmo/wintemv.tran.$job_name - fi - fi - -################################################################### diff --git a/ush/parse-storm-type.pl b/ush/parse-storm-type.pl index 332deb5353..3f1a362f65 100755 --- a/ush/parse-storm-type.pl +++ b/ush/parse-storm-type.pl @@ -5,7 +5,7 @@ while(defined($_=<>)) { chomp; - /^((?:NHC |JTWC) [0-59]\d[A-Z]) (\S+)\s+(.*\d\d\d\d\d\d\d\d \d\d\d\d.{34} .. .*)/ or do { + /^((?:NHC |JTWC) [0-589]\d[A-Z]) (\S+)\s+(.*\d\d\d\d\d\d\d\d \d\d\d\d.{34} .. .*)/ or do { warn "Ignoring invalid line: \"$_\"\n"; next; }; @@ -19,7 +19,8 @@ if(length($line)>=152) { $tctype=substr($_,150,2); } else { - warn "MISSING STORM TYPE (ASSUME XX): $_\n"; + # warn "MISSING STORM TYPE (ASSUME XX): $_\n"; + warn "NO STORM TYPE: $_\n"; } if($tctype =~ /DB|EX|LO|WV|XX/i) { warn "Ignoring line due to TC type $tctype: $_"; diff --git a/ush/rocoto/fv3gfs_workflow.sh b/ush/rocoto/fv3gfs_workflow.sh index 7e52c6e760..7331b646f7 100755 --- a/ush/rocoto/fv3gfs_workflow.sh +++ b/ush/rocoto/fv3gfs_workflow.sh @@ -17,10 +17,7 @@ edate="2017080112" # USER NEED NOT MODIFY BELOW THIS LINE ###################################### -if [ -d /scratch4/NCEPDEV ]; then - machine="theia" - icsdir="/scratch4/NCEPDEV/global/noscrub/glopara/ICS/FV3GFS" -elif [ -d /gpfs/hps3 ]; then +if [ -d /gpfs/hps3 ]; then machine="cray" icsdir="/gpfs/hps3/emc/global/noscrub/emc.glopara/ICS" else diff --git a/ush/rocoto/rocoto.py b/ush/rocoto/rocoto.py index d048bb1ba0..77ea659709 100755 --- a/ush/rocoto/rocoto.py +++ b/ush/rocoto/rocoto.py @@ -1,12 +1,5 @@ #!/usr/bin/env python -############################################################### -# < next few lines under version control, D O N O T E D I T > -# $Date$ -# $Revision$ -# $Author$ -# $Id$ -############################################################### ''' MODULE: rocoto.py diff --git a/ush/rocoto/rocoto_viewer.py b/ush/rocoto/rocoto_viewer.py index 26db6943fc..8dfad7286e 100755 --- a/ush/rocoto/rocoto_viewer.py +++ b/ush/rocoto/rocoto_viewer.py @@ -192,11 +192,12 @@ def load_produtil_pythonpath(): pass PRODUTIL = collections.defaultdict(list) - PRODUTIL['theia'] = '/scratch4/NCEPDEV/global/save/glopara/svn/nceplibs/produtil/trunk/ush' + PRODUTIL['hera'] = '/scratch1/NCEPDEV/global/glopara/svn/nceplibs/produtil/trunk/ush' PRODUTIL['luna'] = '/gpfs/hps3/emc/global/noscrub/emc.glopara/svn/nceplibs/produtil/trunk/ush' - PRODUTIL['tide'] = '/gpfs/td1/emc/global/save/emc.glopara/svn/nceplibs/produtil/trunk/ush' - PRODUTIL['gyre'] = '/gpfs/gd1/emc/global/save/emc.glopara/svn/nceplibs/produtil/trunk/ush' - try_clusters = ('theia','luna','tide','gyre') + PRODUTIL['surge'] = '/gpfs/hps3/emc/global/noscrub/emc.glopara/svn/nceplibs/produtil/trunk/ush' + PRODUTIL['mars'] = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/svn/nceplibs/produtil/trunk/ush' + PRODUTIL['venus'] = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/svn/nceplibs/produtil/trunk/ush' + try_clusters = ('hera','luna','surge','mars','venus') for cluster in try_clusters: sys.path.append(PRODUTIL[cluster]) diff --git a/ush/rocoto/setup_expt.py b/ush/rocoto/setup_expt.py index c4ec7c0567..f2040e382b 100755 --- a/ush/rocoto/setup_expt.py +++ b/ush/rocoto/setup_expt.py @@ -12,17 +12,14 @@ import sys import glob import shutil +import socket from datetime import datetime from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter +import workflow_utils as wfu - -global machines global expdir, configdir, comrot, pslot, resdet, resens, nens, cdump, idate, edate, gfs_cyc -machines = ['THEIA', 'WCOSS_C', 'WCOSS_DELL_P3'] - - def makedirs_if_missing(d): if not os.path.exists(d): os.makedirs(d) @@ -79,12 +76,12 @@ def edit_baseconfig(): top = os.path.abspath(os.path.join( os.path.abspath(here), '../..')) - # make a copy of the default before editing - shutil.copy(base_config, base_config + '.default') + if os.path.exists(base_config): + os.unlink(base_config) print '\nSDATE = %s\nEDATE = %s' % (idate, edate) - with open(base_config + '.default', 'rt') as fi: - with open(base_config + '.new', 'wt') as fo: + with open(base_config + '.emc.dyn', 'rt') as fi: + with open(base_config, 'wt') as fo: for line in fi: line = line.replace('@MACHINE@', machine.upper()) \ .replace('@PSLOT@', pslot) \ @@ -94,6 +91,16 @@ def edit_baseconfig(): .replace('@CASECTL@', 'C%d' % resdet) \ .replace('@NMEM_ENKF@', '%d' % nens) \ .replace('@HOMEgfs@', top) \ + .replace('@BASE_GIT@', base_git) \ + .replace('@DMPDIR@', dmpdir) \ + .replace('@NWPROD@', nwprod) \ + .replace('@HOMEDIR@', homedir) \ + .replace('@STMP@', stmp) \ + .replace('@PTMP@', ptmp) \ + .replace('@NOSCRUB@', noscrub) \ + .replace('@ACCOUNT@', account) \ + .replace('@QUEUE@', queue) \ + .replace('@QUEUE_ARCH@', queue_arch) \ .replace('@gfs_cyc@', '%d' % gfs_cyc) if expdir is not None: line = line.replace('@EXPDIR@', os.path.dirname(expdir)) @@ -102,12 +109,10 @@ def edit_baseconfig(): if 'ICSDIR' in line: continue fo.write(line) - os.unlink(base_config) - os.rename(base_config + '.new', base_config) print '' print 'EDITED: %s/config.base as per user input.' % expdir - print 'DEFAULT: %s/config.base.default is for reference only.' % expdir + print 'DEFAULT: %s/config.base.emc.dyn is for reference only.' % expdir print 'Please verify and delete the default file before proceeding.' print '' @@ -134,18 +139,11 @@ def edit_baseconfig(): parser.add_argument('--nens', help='number of ensemble members', type=int, required=False, default=20) parser.add_argument('--cdump', help='CDUMP to start the experiment', type=str, required=False, default='gdas') parser.add_argument('--gfs_cyc', help='GFS cycles to run', type=int, choices=[0, 1, 2, 4], default=1, required=False) + parser.add_argument('--partition', help='partition on machine', type=str, required=False, default=None) args = parser.parse_args() - if os.path.exists('/scratch3'): - machine = 'THEIA' - elif os.path.exists('/gpfs') and os.path.exists('/etc/SuSE-release'): - machine = 'WCOSS_C' - elif os.path.exists('/gpfs/dell2'): - machine = 'WCOSS_DELL_P3' - else: - print 'workflow is currently only supported on: %s' % ' '.join(machines) - raise NotImplementedError('Cannot auto-detect platform, ABORT!') + machine = wfu.detectMachine() configdir = args.configdir if not configdir: @@ -162,6 +160,48 @@ def edit_baseconfig(): nens = args.nens cdump = args.cdump gfs_cyc = args.gfs_cyc + partition = args.partition + + # Set machine defaults + if machine == 'WCOSS_DELL_P3': + base_git = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git' + base_svn = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git' + dmpdir = '/gpfs/dell3/emc/global/dump' + nwprod = '/gpfs/dell1/nco/ops/nwprod' + homedir = '/gpfs/dell2/emc/modeling/noscrub/$USER' + stmp = '/gpfs/dell3/stmp/$USER' + ptmp = '/gpfs/dell3/ptmp/$USER' + noscrub = '/gpfs/dell2/emc/modeling/noscrub/$USER' + account = 'GFS-DEV' + queue = 'dev' + queue_arch = 'dev_transfer' + if partition in ['3p5']: + queue = 'dev2' + queue_arch = 'dev2_transfer' + elif machine == 'WCOSS_C': + base_git = '/gpfs/hps3/emc/global/noscrub/emc.glopara/git' + base_svn = '/gpfs/hps3/emc/global/noscrub/emc.glopara/svn' + dmpdir = '/gpfs/dell3/emc/global/dump' + nwprod = '/gpfs/hps/nco/ops/nwprod' + homedir = '/gpfs/hps3/emc/global/noscrub/$USER' + stmp = '/gpfs/hps2/stmp/$USER' + ptmp = '/gpfs/hps2/ptmp/$USER' + noscrub = '/gpfs/hps3/emc/global/noscrub/$USER' + account = 'GFS-DEV' + queue = 'dev' + queue_arch = 'dev_transfer' + elif machine == 'HERA': + base_git = '/scratch1/NCEPDEV/global/glopara/git' + base_svn = '/scratch1/NCEPDEV/global/glopara/svn' + dmpdir = '/scratch1/NCEPDEV/global/glopara/dump' + nwprod = '/scratch1/NCEPDEV/global/glopara/nwpara' + homedir = '/scratch1/NCEPDEV/global/$USER' + stmp = '/scratch1/NCEPDEV/stmp2/$USER' + ptmp = '/scratch1/NCEPDEV/stmp4/$USER' + noscrub = '$HOMEDIR' + account = 'fv3-cpu' + queue = 'batch' + queue_arch = 'service' if args.icsdir is not None and not os.path.exists(icsdir): msg = 'Initial conditions do not exist in %s' % icsdir diff --git a/ush/rocoto/setup_expt_fcstonly.py b/ush/rocoto/setup_expt_fcstonly.py index 08d6c65956..2769b35aaf 100755 --- a/ush/rocoto/setup_expt_fcstonly.py +++ b/ush/rocoto/setup_expt_fcstonly.py @@ -12,17 +12,14 @@ import sys import glob import shutil +import socket from datetime import datetime from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter +import workflow_utils as wfu - -global machines global expdir, configdir, comrot, pslot, res, idate, edate, gfs_cyc -machines = ['THEIA', 'WCOSS_C', 'WCOSS_DELL_P3'] - - def makedirs_if_missing(d): if not os.path.exists(d): os.makedirs(d) @@ -68,6 +65,16 @@ def edit_baseconfig(): .replace('@EDATE@', edate.strftime('%Y%m%d%H')) \ .replace('@CASECTL@', 'C%d' % res) \ .replace('@HOMEgfs@', top) \ + .replace('@BASE_GIT@', base_git) \ + .replace('@DMPDIR@', dmpdir) \ + .replace('@NWPROD@', nwprod) \ + .replace('@HOMEDIR@', homedir) \ + .replace('@STMP@', stmp) \ + .replace('@PTMP@', ptmp) \ + .replace('@NOSCRUB@', noscrub) \ + .replace('@ACCOUNT@', account) \ + .replace('@QUEUE@', queue) \ + .replace('@QUEUE_ARCH@', queue_arch) \ .replace('@gfs_cyc@', '%d' % gfs_cyc) if expdir is not None: line = line.replace('@EXPDIR@', os.path.dirname(expdir)) @@ -102,18 +109,11 @@ def edit_baseconfig(): parser.add_argument('--edate', help='end date experiment', type=str, required=True) parser.add_argument('--configdir', help='full path to directory containing the config files', type=str, required=False, default=None) parser.add_argument('--gfs_cyc', help='GFS cycles to run', type=int, choices=[0, 1, 2, 4], default=1, required=False) + parser.add_argument('--partition', help='partition on machine', type=str, required=False, default=None) args = parser.parse_args() - if os.path.exists('/scratch3'): - machine = 'THEIA' - elif os.path.exists('/gpfs') and os.path.exists('/etc/SuSE-release'): - machine = 'WCOSS_C' - elif os.path.exists('/gpfs/dell2'): - machine = 'WCOSS_DELL_P3' - else: - print 'workflow is currently only supported on: %s' % ' '.join(machines) - raise NotImplementedError('Cannot auto-detect platform, ABORT!') + machine = wfu.detectMachine() configdir = args.configdir if not configdir: @@ -126,6 +126,48 @@ def edit_baseconfig(): comrot = args.comrot if args.comrot is None else os.path.join(args.comrot, pslot) expdir = args.expdir if args.expdir is None else os.path.join(args.expdir, pslot) gfs_cyc = args.gfs_cyc + partition = args.partition + + # Set machine defaults + if machine == 'WCOSS_DELL_P3': + base_git = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git' + base_svn = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git' + dmpdir = '/gpfs/dell3/emc/global/dump' + nwprod = '/gpfs/dell1/nco/ops/nwprod' + homedir = '/gpfs/dell2/emc/modeling/noscrub/$USER' + stmp = '/gpfs/dell3/stmp/$USER' + ptmp = '/gpfs/dell3/ptmp/$USER' + noscrub = '/gpfs/dell2/emc/modeling/noscrub/$USER' + account = 'GFS-DEV' + queue = 'dev' + queue_arch = 'dev_transfer' + if partition in ['3p5']: + queue = 'dev2' + queue_arch = 'dev2_transfer' + elif machine == 'WCOSS_C': + base_git = '/gpfs/hps3/emc/global/noscrub/emc.glopara/git' + base_svn = '/gpfs/hps3/emc/global/noscrub/emc.glopara/svn' + dmpdir = '/gpfs/dell3/emc/global/dump' + nwprod = '/gpfs/hps/nco/ops/nwprod' + homedir = '/gpfs/hps3/emc/global/noscrub/$USER' + stmp = '/gpfs/hps2/stmp/$USER' + ptmp = '/gpfs/hps2/ptmp/$USER' + noscrub = '/gpfs/hps3/emc/global/noscrub/$USER' + account = 'GFS-DEV' + queue = 'dev' + queue_arch = 'dev_transfer' + elif machine == 'HERA': + base_git = '/scratch1/NCEPDEV/global/glopara/git' + base_svn = '/scratch1/NCEPDEV/global/glopara/svn' + dmpdir = '/scratch1/NCEPDEV/global/glopara/dump' + nwprod = '/scratch1/NCEPDEV/global/glopara/nwpara' + homedir = '/scratch1/NCEPDEV/global/$USER' + stmp = '/scratch1/NCEPDEV/stmp2/$USER' + ptmp = '/scratch1/NCEPDEV/stmp4/$USER' + noscrub = '$HOMEDIR' + account = 'fv3-cpu' + queue = 'batch' + queue_arch = 'service' # COMROT directory create_comrot = True diff --git a/ush/rocoto/setup_workflow.py b/ush/rocoto/setup_workflow.py index b4737f541b..6987423bf7 100755 --- a/ush/rocoto/setup_workflow.py +++ b/ush/rocoto/setup_workflow.py @@ -1,12 +1,5 @@ #!/usr/bin/env python -############################################################### -# < next few lines under version control, D O N O T E D I T > -# $Date$ -# $Revision$ -# $Author$ -# $Id$ -############################################################### ''' PROGRAM: Create the ROCOTO workflow given the configuration of the GFS parallel @@ -49,10 +42,28 @@ def main(): print 'input arg: --expdir = %s' % repr(args.expdir) sys.exit(1) - gfs_steps = ['prep', 'anal', 'fcst', 'postsnd', 'post', 'awips', 'gempak', 'vrfy', 'arch'] - hyb_steps = ['eobs', 'eomg', 'eupd', 'ecen', 'efcs', 'epos', 'earc'] + gfs_steps = ['prep', 'anal', 'analdiag', 'analcalc', 'gldas', 'fcst', 'postsnd', 'post', 'vrfy', 'arch'] + gfs_steps_gempak = ['gempak'] + gfs_steps_awips = ['awips'] + gfs_steps_wafs = ['wafs', 'wafsgrib2', 'wafsblending', 'wafsgcip', 'wafsgrib20p25', 'wafsblending0p25'] + #hyb_steps = ['eobs', 'eomg', 'eupd', 'ecen', 'efcs', 'epos', 'earc'] + metp_steps = ['metp'] + wav_steps = ['waveinit', 'waveprep', 'wavepostsbs', 'wavepostbndpnt', 'wavepostpnt'] + #Implement additional wave jobs at later date + wav_steps_gempak = ['wavegempak'] + wav_steps_awips = ['waveawipsbulls', 'waveawipsgridded'] +# From gfsv16b latest +# gfs_steps = ['prep', 'anal', 'gldas', 'fcst', 'postsnd', 'post', 'awips', 'gempak', 'vrfy', 'metp', 'arch'] + hyb_steps = ['eobs', 'ediag', 'eomg', 'eupd', 'ecen', 'esfc', 'efcs', 'echgres', 'epos', 'earc'] steps = gfs_steps + hyb_steps if _base.get('DOHYBVAR', 'NO') == 'YES' else gfs_steps + steps = steps + metp_steps if _base.get('DO_METP', 'NO') == 'YES' else steps + steps = steps + gfs_steps_gempak if _base.get('DO_GEMPAK', 'NO') == 'YES' else steps + steps = steps + gfs_steps_awips if _base.get('DO_AWIPS', 'NO') == 'YES' else steps + steps = steps + gfs_steps_wafs if _base.get('WAFSF', 'NO') == 'YES' else steps + steps = steps + wav_steps if _base.get('DO_WAVE', 'NO') == 'YES' else steps + steps = steps + wav_steps_gempak if _base.get('DO_GEMPAK', 'NO') == 'YES' else steps + steps = steps + wav_steps_awips if _base.get('DO_AWIPS', 'NO') == 'YES' else steps dict_configs = wfu.source_configs(configs, steps) @@ -148,6 +159,9 @@ def get_definitions(base): Create entities related to the experiment ''' + machine = base.get('machine', wfu.detectMachine()) + scheduler = wfu.get_scheduler(machine) + strings = [] strings.append('\n') @@ -174,20 +188,19 @@ def get_definitions(base): strings.append('\n') strings.append('\t\n') strings.append('\t\n' % base['ACCOUNT']) + strings.append('\t\n' % base['QUEUE']) - if base['machine'] == 'THEIA' and wfu.check_slurm(): - strings.append('\t\n' % base['QUEUE_ARCH']) + strings.append('\t\n' % base['QUEUE_ARCH']) + if scheduler in ['slurm']: strings.append('\t\n' % base['QUEUE_ARCH']) - else: - strings.append('\t\n' % base['QUEUE_ARCH']) - strings.append('\t\n' % wfu.get_scheduler(base['machine'])) + strings.append('\t\n' % scheduler) strings.append('\n') strings.append('\t\n') strings.append('\t\n') strings.append('\n') strings.append('\t\n') strings.append('\t\n') - strings.append('\t\n') + strings.append('\t\n') strings.append('\t\n') strings.append('\n') @@ -216,32 +229,61 @@ def get_gdasgfs_resources(dict_configs, cdump='gdas'): ''' base = dict_configs['base'] - machine = base.get('machine', 'WCOSS_C') + machine = base.get('machine', wfu.detectMachine()) + scheduler = wfu.get_scheduler(machine) do_bufrsnd = base.get('DO_BUFRSND', 'NO').upper() do_gempak = base.get('DO_GEMPAK', 'NO').upper() do_awips = base.get('DO_AWIPS', 'NO').upper() + do_wafs = base.get('WAFSF', 'NO').upper() + do_metp = base.get('DO_METP', 'NO').upper() + do_gldas = base.get('DO_GLDAS', 'NO').upper() + do_wave = base.get('DO_WAVE', 'NO').upper() + do_wave_cdump = base.get('WAVE_CDUMP', 'BOTH').upper() + reservation = base.get('RESERVATION', 'NONE').upper() - tasks = ['prep', 'anal', 'fcst', 'post', 'vrfy', 'arch'] + #tasks = ['prep', 'anal', 'fcst', 'post', 'vrfy', 'arch'] + tasks = ['prep', 'anal', 'analcalc'] + if cdump in ['gdas']: + tasks += ['analdiag'] + if cdump in ['gdas'] and do_gldas in ['Y', 'YES']: + tasks += ['gldas'] + if cdump in ['gdas'] and do_wave in ['Y', 'YES'] and do_wave_cdump in ['GDAS', 'BOTH']: + #tasks += ['waveinit', 'waveprep', 'wavepostsbs', 'wavepostbndpnt', 'wavepostpnt', 'wavestat'] + tasks += ['waveinit', 'waveprep', 'wavepostsbs', 'wavepostbndpnt', 'wavepostpnt'] + + tasks += ['fcst', 'post', 'vrfy', 'arch'] + + if cdump in ['gfs'] and do_wave in ['Y', 'YES'] and do_wave_cdump in ['GFS', 'BOTH']: + #tasks += ['waveinit', 'waveprep', 'wavepostsbs', 'wavepostbndpnt', 'wavepostpnt', 'wavestat'] + tasks += ['waveinit', 'waveprep', 'wavepostsbs', 'wavepostbndpnt', 'wavepostpnt'] if cdump in ['gfs'] and do_bufrsnd in ['Y', 'YES']: tasks += ['postsnd'] if cdump in ['gfs'] and do_gempak in ['Y', 'YES']: tasks += ['gempak'] + if cdump in ['gfs'] and do_wave in ['Y', 'YES'] and do_gempak in ['Y', 'YES']: + tasks += ['wavegempak'] if cdump in ['gfs'] and do_awips in ['Y', 'YES']: tasks += ['awips'] - + if cdump in ['gfs'] and do_wafs in ['Y', 'YES']: + tasks += ['wafs', 'wafsgrib2', 'wafsblending', 'wafsgcip', 'wafsgrib20p25', 'wafsblending0p25'] + if cdump in ['gfs'] and do_metp in ['Y', 'YES']: + tasks += ['metp'] + if cdump in ['gfs'] and do_wave in ['Y', 'YES'] and do_awips in ['Y', 'YES']: + tasks += ['waveawipsbulls', 'waveawipsgridded'] + dict_resources = OrderedDict() for task in tasks: cfg = dict_configs[task] - wtimestr, resstr, queuestr, memstr, natstr = wfu.get_resources(machine, cfg, task, cdump=cdump) + wtimestr, resstr, queuestr, memstr, natstr = wfu.get_resources(machine, cfg, task, reservation, cdump=cdump) taskstr = '%s_%s' % (task.upper(), cdump.upper()) strings = [] strings.append('\t\n' % (taskstr, queuestr)) - if base['machine'] == 'THEIA' and wfu.check_slurm() and task == 'arch': + if scheduler in ['slurm'] and task in ['arch']: strings.append('\t\n' % taskstr ) strings.append('\t\n' % (taskstr, wtimestr)) strings.append('\t\n' % (taskstr, resstr)) @@ -260,16 +302,19 @@ def get_hyb_resources(dict_configs): ''' base = dict_configs['base'] - machine = base.get('machine', 'WCOSS_C') + machine = base.get('machine', wfu.detectMachine()) + scheduler = wfu.get_scheduler(machine) lobsdiag_forenkf = base.get('lobsdiag_forenkf', '.false.').upper() eupd_cyc= base.get('EUPD_CYC', 'gdas').upper() + reservation = base.get('RESERVATION', 'NONE').upper() dict_resources = OrderedDict() # These tasks can be run in either or both cycles - tasks1 = ['eobs', 'eomg', 'eupd'] if lobsdiag_forenkf in ['.T.', '.TRUE.']: - tasks.remove('eomg') + tasks1 = ['eobs', 'ediag', 'eupd', 'echgres'] + else: + tasks1 = ['eobs', 'eomg', 'eupd', 'echgres'] if eupd_cyc in ['BOTH']: cdumps = ['gfs', 'gdas'] @@ -283,7 +328,7 @@ def get_hyb_resources(dict_configs): cfg = dict_configs['eobs'] if task in ['eomg'] else dict_configs[task] - wtimestr, resstr, queuestr, memstr, natstr = wfu.get_resources(machine, cfg, task, cdump=cdump) + wtimestr, resstr, queuestr, memstr, natstr = wfu.get_resources(machine, cfg, task, reservation, cdump=cdump) taskstr = '%s_%s' % (task.upper(), cdump.upper()) @@ -301,18 +346,18 @@ def get_hyb_resources(dict_configs): # These tasks are always run as part of the GDAS cycle cdump = 'gdas' - tasks2 = ['ecen', 'efcs', 'epos', 'earc'] + tasks2 = ['ecen', 'esfc', 'efcs', 'epos', 'earc'] for task in tasks2: cfg = dict_configs[task] - wtimestr, resstr, queuestr, memstr, natstr = wfu.get_resources(machine, cfg, task, cdump=cdump) + wtimestr, resstr, queuestr, memstr, natstr = wfu.get_resources(machine, cfg, task, reservation, cdump=cdump) taskstr = '%s_%s' % (task.upper(), cdump.upper()) strings = [] strings.append('\t\n' % (taskstr, queuestr)) - if base['machine'] == 'THEIA' and wfu.check_slurm() and task == 'earc': + if scheduler in ['slurm'] and task in ['earc']: strings.append('\t\n' % taskstr ) strings.append('\t\n' % (taskstr, wtimestr)) strings.append('\t\n' % (taskstr, resstr)) @@ -331,7 +376,7 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'): ''' envars = [] - if wfu.check_slurm(): + if wfu.get_scheduler(wfu.detectMachine()) in ['slurm']: envars.append(rocoto.create_envar(name='SLURM_SET', value='YES')) envars.append(rocoto.create_envar(name='RUN_ENVIR', value='&RUN_ENVIR;')) envars.append(rocoto.create_envar(name='HOMEgfs', value='&HOMEgfs;')) @@ -343,12 +388,19 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'): base = dict_configs['base'] gfs_cyc = base.get('gfs_cyc', 0) + gldas_cyc = base.get('gldas_cyc', 0) dohybvar = base.get('DOHYBVAR', 'NO').upper() eupd_cyc = base.get('EUPD_CYC', 'gdas').upper() do_bufrsnd = base.get('DO_BUFRSND', 'NO').upper() do_gempak = base.get('DO_GEMPAK', 'NO').upper() do_awips = base.get('DO_AWIPS', 'NO').upper() + do_wafs = base.get('WAFSF', 'NO').upper() + do_metp = base.get('DO_METP', 'NO').upper() + do_gldas = base.get('DO_GLDAS', 'NO').upper() + do_wave = base.get('DO_WAVE', 'NO').upper() + do_wave_cdump = base.get('WAVE_CDUMP', 'BOTH').upper() dumpsuffix = base.get('DUMP_SUFFIX', '') + gridsuffix = base.get('SUFFIX', '') dict_tasks = OrderedDict() @@ -356,10 +408,10 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'): deps = [] dep_dict = {'type': 'metatask', 'name': '%spost' % 'gdas', 'offset': '-06:00:00'} deps.append(rocoto.add_dependency(dep_dict)) - data = '&ROTDIR;/gdas.@Y@m@d/@H/gdas.t@Hz.atmf009.nemsio' + data = '&ROTDIR;/gdas.@Y@m@d/@H/atmos/gdas.t@Hz.atmf009%s' % (gridsuffix) dep_dict = {'type': 'data', 'data': data, 'offset': '-06:00:00'} deps.append(rocoto.add_dependency(dep_dict)) - data = '&DMPDIR;/@Y@m@d@H/%s%s/%s.t@Hz.updated.status.tm00.bufr_d' % (cdump, dumpsuffix, cdump) + data = '&DMPDIR;/%s%s.@Y@m@d/@H/%s.t@Hz.updated.status.tm00.bufr_d' % (cdump, dumpsuffix, cdump) dep_dict = {'type': 'data', 'data': data} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) @@ -377,6 +429,34 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'): dict_tasks['%sprep' % cdump] = task + # wave tasks in gdas or gfs or both + if do_wave_cdump in ['BOTH']: + cdumps = ['gfs', 'gdas'] + elif do_wave_cdump in ['GFS']: + cdumps = ['gfs'] + elif do_wave_cdump in ['GDAS']: + cdumps = ['gdas'] + + # waveinit + if do_wave in ['Y', 'YES'] and cdump in cdumps: + deps = [] + dep_dict = {'type': 'task', 'name': '%sprep' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type': 'cycleexist', 'condition': 'not', 'offset': '-06:00:00'} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='or', dep=deps) + task = wfu.create_wf_task('waveinit', cdump=cdump, envar=envars, dependency=dependencies) + dict_tasks['%swaveinit' % cdump] = task + + # waveprep + if do_wave in ['Y', 'YES'] and cdump in cdumps: + deps = [] + dep_dict = {'type': 'task', 'name': '%swaveinit' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('waveprep', cdump=cdump, envar=envars, dependency=dependencies) + dict_tasks['%swaveprep' % cdump] = task + # anal deps = [] dep_dict = {'type': 'task', 'name': '%sprep' % cdump} @@ -391,23 +471,78 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'): dict_tasks['%sanal' % cdump] = task - # fcst + # analcalc deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.loginc.txt' % (cdump, cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) dep_dict = {'type': 'task', 'name': '%sanal' % cdump} deps.append(rocoto.add_dependency(dep_dict)) + if dohybvar in ['y', 'Y', 'yes', 'YES'] and cdump == 'gdas': + dep_dict = {'type': 'task', 'name': '%sechgres' % 'gdas', 'offset': '-06:00:00'} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + else: + dependencies = rocoto.create_dependency(dep_condition='or', dep=deps) + task = wfu.create_wf_task('analcalc', cdump=cdump, envar=envars, dependency=dependencies) + + dict_tasks['%sanalcalc' % cdump] = task + + # analdiag if cdump in ['gdas']: - dep_dict = {'type': 'cycleexist', 'condition': 'not', 'offset': '-06:00:00'} + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.loginc.txt' % (cdump, cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type': 'task', 'name': '%sanal' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='or', dep=deps) + task = wfu.create_wf_task('analdiag', cdump=cdump, envar=envars, dependency=dependencies) + + dict_tasks['%sanaldiag' % cdump] = task + + # gldas + if cdump in ['gdas'] and do_gldas in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.loginc.txt' % (cdump, cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type': 'task', 'name': '%sanal' % cdump} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep_condition='or', dep=deps) + task = wfu.create_wf_task('gldas', cdump=cdump, envar=envars, dependency=dependencies) + + dict_tasks['%sgldas' % cdump] = task + + # fcst + deps = [] + #data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.loginc.txt' % (cdump, cdump) + #dep_dict = {'type': 'data', 'data': data} +# #deps.append(rocoto.add_dependency(dep_dict)) + if do_wave in ['Y', 'YES'] and cdump in cdumps: + dep_dict = {'type': 'task', 'name': '%swaveprep' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + if cdump in ['gdas']: + if do_gldas in ['Y', 'YES']: + dep_dict = {'type': 'task', 'name': '%sgldas' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + else: + dep_dict = {'type': 'task', 'name': '%sanalcalc' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + # dep_dict = {'type': 'cycleexist', 'condition': 'not', 'offset': '-06:00:00'} + # deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='or',dep=deps) elif cdump in ['gfs']: - dependencies = rocoto.create_dependency(dep=deps) + dep_dict = {'type': 'task', 'name': '%sanal' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and',dep=deps) task = wfu.create_wf_task('fcst', cdump=cdump, envar=envars, dependency=dependencies) dict_tasks['%sfcst' % cdump] = task # post deps = [] - data = '&ROTDIR;/%s.@Y@m@d/@H/%s.t@Hz.log#dep#.nemsio' % (cdump, cdump) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.log#dep#.txt' % (cdump, cdump) dep_dict = {'type': 'data', 'data': data} deps.append(rocoto.add_dependency(dep_dict)) dep_dict = {'type': 'task', 'name': '%sfcst' % cdump} @@ -425,6 +560,89 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'): dict_tasks['%spost' % cdump] = task + # wavepostsbs + if do_wave in ['Y', 'YES'] and cdump in cdumps: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/wave/rundata/%swave.out_grd.gnh_10m.@Y@m@d.@H0000' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/wave/rundata/%swave.out_grd.aoc_9km.@Y@m@d.@H0000' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/wave/rundata/%swave.out_grd.gsh_15m.@Y@m@d.@H0000' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wavepostsbs', cdump=cdump, envar=envars, dependency=dependencies) + dict_tasks['%swavepostsbs' % cdump] = task + + # wavepostbndpnt + if do_wave in ['Y', 'YES'] and cdump in ['gfs']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.logf180.txt' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('wavepostbndpnt', cdump=cdump, envar=envars, dependency=dependencies) + dict_tasks['%swavepostbndpnt' % cdump] = task + + # wavepostpnt + if do_wave in ['Y', 'YES'] and cdump in ['gdas']: + deps = [] + dep_dict = {'type':'task', 'name':'%sfcst' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('wavepostpnt', cdump=cdump, envar=envars, dependency=dependencies) + dict_tasks['%swavepostpnt' % cdump] = task + + if do_wave in ['Y', 'YES'] and cdump in ['gfs']: + deps = [] + dep_dict = {'type':'task', 'name':'%sfcst' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type':'task', 'name':'%swavepostbndpnt' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wavepostpnt', cdump=cdump, envar=envars, dependency=dependencies) + dict_tasks['%swavepostpnt' % cdump] = task + + # wavegempak + if do_wave in ['Y', 'YES'] and do_gempak in ['Y', 'YES'] and cdump in ['gfs']: + deps = [] + dep_dict = {'type':'task', 'name':'%swavepostsbs' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('wavegempak', cdump=cdump, envar=envars, dependency=dependencies) + dict_tasks['%swavegempak' % cdump] = task + + # waveawipsgridded + if do_wave in ['Y', 'YES'] and do_awips in ['Y', 'YES'] and cdump in ['gfs']: + deps = [] + dep_dict = {'type':'task', 'name':'%swavepostsbs' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('waveawipsgridded', cdump=cdump, envar=envars, dependency=dependencies) + dict_tasks['%swaveawipsgridded' % cdump] = task + + # waveawipsbulls + if do_wave in ['Y', 'YES'] and do_awips in ['Y', 'YES'] and cdump in ['gfs']: + deps = [] + dep_dict = {'type':'task', 'name':'%swavepostsbs' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type':'task', 'name':'%swavepostpnt' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('waveawipsbulls', cdump=cdump, envar=envars, dependency=dependencies) + dict_tasks['%swaveawipsbulls' % cdump] = task + + # wavestat + #if do_wave in ['Y', 'YES'] and cdump in cdumps: + # deps = [] + # dep_dict = {'type':'task', 'name':'%swavepost' % cdump} + # deps.append(rocoto.add_dependency(dep_dict)) + # dependencies = rocoto.create_dependency(dep=deps) + # task = wfu.create_wf_task('wavestat', cdump=cdump, envar=envars, dependency=dependencies) + # dict_tasks['%swavestat' % cdump] = task + # vrfy deps = [] dep_dict = {'type': 'metatask', 'name': '%spost' % cdump} @@ -434,9 +652,24 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'): dict_tasks['%svrfy' % cdump] = task - + # metp + if cdump in ['gfs'] and do_metp in ['Y', 'YES']: + deps = [] + dep_dict = {'type':'metatask', 'name':'%spost' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type':'task', 'name':'%sarch' % cdump, 'offset':'-&INTERVAL_GFS;'} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + metpcase = rocoto.create_envar(name='METPCASE', value='#metpcase#') + metpenvars = envars + [metpcase] + varname1 = 'metpcase' + varval1 = 'g2g1 g2o1 pcp1' + task = wfu.create_wf_task('metp', cdump=cdump, envar=metpenvars, dependency=dependencies, + metatask='metp', varname=varname1, varval=varval1) + dict_tasks['%smetp' % cdump] = task + + #postsnd if cdump in ['gfs'] and do_bufrsnd in ['Y', 'YES']: - #postsnd deps = [] dep_dict = {'type': 'task', 'name': '%sfcst' % cdump} deps.append(rocoto.add_dependency(dep_dict)) @@ -445,15 +678,12 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'): dict_tasks['%spostsnd' % cdump] = task + # awips if cdump in ['gfs'] and do_awips in ['Y', 'YES']: - # awips deps = [] - data = '&ROTDIR;/%s.@Y@m@d/@H/%s.t@Hz.sfluxgrb#dep#.grib2.idx' % (cdump, cdump) - dep_dict = {'type': 'data', 'data': data} - deps.append(rocoto.add_dependency(dep_dict)) dep_dict = {'type': 'metatask', 'name': '%spost' % cdump} deps.append(rocoto.add_dependency(dep_dict)) - dependencies = rocoto.create_dependency(dep_condition='or', dep=deps) + dependencies = rocoto.create_dependency(dep=deps) fhrgrp = rocoto.create_envar(name='FHRGRP', value='#grp#') fhrlst = rocoto.create_envar(name='FHRLST', value='#lst#') ROTDIR = rocoto.create_envar(name='ROTDIR', value='&ROTDIR;') @@ -463,11 +693,11 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'): vardict = {varname2: varval2, varname3: varval3} task = wfu.create_wf_task('awips', cdump=cdump, envar=awipsenvars, dependency=dependencies, metatask='awips', varname=varname1, varval=varval1, vardict=vardict) - + dict_tasks['%sawips' % cdump] = task + # gempak if cdump in ['gfs'] and do_gempak in ['Y', 'YES']: - # gempak deps = [] dep_dict = {'type': 'metatask', 'name': '%spost' % cdump} deps.append(rocoto.add_dependency(dep_dict)) @@ -476,12 +706,192 @@ def get_gdasgfs_tasks(dict_configs, cdump='gdas'): dict_tasks['%sgempak' % cdump] = task + # wafs + if cdump in ['gfs'] and do_wafs in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if006' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if012' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if015' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if018' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if021' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if024' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if027' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if030' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if033' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if036' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wafs', cdump=cdump, envar=envars, dependency=dependencies) + + dict_tasks['%swafs' % cdump] = task + + # wafsgcip + if cdump in ['gfs'] and do_wafs in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if006' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if012' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if015' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if018' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if021' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if024' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if027' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if030' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if033' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if036' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wafsgcip', cdump=cdump, envar=envars, dependency=dependencies) + + dict_tasks['%swafsgcip' % cdump] = task + + # wafsgrib2 + if cdump in ['gfs'] and do_wafs in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if006' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if012' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if015' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if018' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if021' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if024' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if027' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if030' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if033' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if036' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wafsgrib2', cdump=cdump, envar=envars, dependency=dependencies) + + dict_tasks['%swafsgrib2' % cdump] = task + + # wafsgrib20p25 + if cdump in ['gfs'] and do_wafs in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if006' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if012' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if015' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if018' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if021' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if024' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if027' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if030' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if033' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if036' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wafsgrib20p25', cdump=cdump, envar=envars, dependency=dependencies) + + dict_tasks['%swafsgrib20p25' % cdump] = task + + # wafsblending + if cdump in ['gfs'] and do_wafs in ['Y', 'YES']: + deps = [] + dep_dict = {'type': 'task', 'name': '%swafsgrib2' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('wafsblending', cdump=cdump, envar=envars, dependency=dependencies) + + dict_tasks['%swafsblending' % cdump] = task + + # wafsblending0p25 + if cdump in ['gfs'] and do_wafs in ['Y', 'YES']: + deps = [] + dep_dict = {'type': 'task', 'name': '%swafsgrib20p25' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('wafsblending0p25', cdump=cdump, envar=envars, dependency=dependencies) + + dict_tasks['%swafsblending0p25' % cdump] = task + # arch deps = [] dep_dict = {'type': 'task', 'name': '%svrfy' % cdump} deps.append(rocoto.add_dependency(dep_dict)) dep_dict = {'type': 'streq', 'left': '&ARCHIVE_TO_HPSS;', 'right': 'YES'} deps.append(rocoto.add_dependency(dep_dict)) + if do_wave in ['Y', 'YES']: + dep_dict = {'type': 'task', 'name': '%swavepostsbs' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type': 'task', 'name': '%swavepostpnt' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + if cdump in ['gfs']: + dep_dict = {'type': 'task', 'name': '%swavepostbndpnt' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) task = wfu.create_wf_task('arch', cdump=cdump, envar=envars, dependency=dependencies) @@ -517,7 +927,7 @@ def get_hyb_tasks(dict_configs, cycledef='enkf'): EARCGROUPS = ' '.join(['%02d' % x for x in range(0, nearc_grps + 1)]) envars = [] - if wfu.check_slurm(): + if wfu.get_scheduler(wfu.detectMachine()) in ['slurm']: envars.append(rocoto.create_envar(name='SLURM_SET', value='YES')) envars.append(rocoto.create_envar(name='RUN_ENVIR', value='&RUN_ENVIR;')) envars.append(rocoto.create_envar(name='HOMEgfs', value='&HOMEgfs;')) @@ -566,12 +976,22 @@ def get_hyb_tasks(dict_configs, cycledef='enkf'): dict_tasks['%seomn' % cdump] = task + # ediag + else: + deps = [] + dep_dict = {'type': 'task', 'name': '%seobs' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('ediag', cdump=cdump, envar=envars1, dependency=dependencies, cycledef=cycledef) + + dict_tasks['%sediag' % cdump] = task + # eupd deps = [] if lobsdiag_forenkf in ['.F.', '.FALSE.']: dep_dict = {'type': 'metatask', 'name': '%seomn' % cdump} else: - dep_dict = {'type': 'task', 'name': '%seobs' % cdump} + dep_dict = {'type': 'task', 'name': '%sediag' % cdump} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps) task = wfu.create_wf_task('eupd', cdump=cdump, envar=envars1, dependency=dependencies, cycledef=cycledef) @@ -584,30 +1004,81 @@ def get_hyb_tasks(dict_configs, cycledef='enkf'): envars1 = envars + [envar_cdump] cdump_eupd = 'gfs' if eupd_cyc in ['GFS'] else 'gdas' - # ecen - deps = [] - dep_dict = {'type': 'task', 'name': '%sanal' % cdump} - deps.append(rocoto.add_dependency(dep_dict)) + # ecmn, ecen + deps1 = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.loganl.txt' % (cdump, cdump) + dep_dict = {'type': 'data', 'data': data} + deps1.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type': 'task', 'name': '%sanalcalc' % cdump} + deps1.append(rocoto.add_dependency(dep_dict)) + dependencies1 = rocoto.create_dependency(dep_condition='or', dep=deps1) + + deps2 = [] + deps2 = dependencies1 dep_dict = {'type': 'task', 'name': '%seupd' % cdump_eupd} - deps.append(rocoto.add_dependency(dep_dict)) - dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) - task = wfu.create_wf_task('ecen', cdump=cdump, envar=envars1, dependency=dependencies, cycledef=cycledef) + deps2.append(rocoto.add_dependency(dep_dict)) + dependencies2 = rocoto.create_dependency(dep_condition='and', dep=deps2) - dict_tasks['%secen' % cdump] = task + fhrgrp = rocoto.create_envar(name='FHRGRP', value='#grp#') + fhrlst = rocoto.create_envar(name='FHRLST', value='#lst#') + ecenenvars = envars1 + [fhrgrp] + [fhrlst] + varname1, varname2, varname3 = 'grp', 'dep', 'lst' + varval1, varval2, varval3 = get_ecengroups(dict_configs, dict_configs['ecen'], cdump=cdump) + vardict = {varname2: varval2, varname3: varval3} + task = wfu.create_wf_task('ecen', cdump=cdump, envar=ecenenvars, dependency=dependencies2, + metatask='ecmn', varname=varname1, varval=varval1, vardict=vardict) + + dict_tasks['%secmn' % cdump] = task + + # esfc + deps1 = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.loganl.txt' % (cdump, cdump) + dep_dict = {'type': 'data', 'data': data} + deps1.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type': 'task', 'name': '%sanalcalc' % cdump} + deps1.append(rocoto.add_dependency(dep_dict)) + dependencies1 = rocoto.create_dependency(dep_condition='or', dep=deps1) + + deps2 = [] + deps2 = dependencies1 + dep_dict = {'type': 'task', 'name': '%seupd' % cdump_eupd} + deps2.append(rocoto.add_dependency(dep_dict)) + dependencies2 = rocoto.create_dependency(dep_condition='and', dep=deps2) + task = wfu.create_wf_task('esfc', cdump=cdump, envar=envars1, dependency=dependencies2, cycledef=cycledef) + + dict_tasks['%sesfc' % cdump] = task # efmn, efcs - deps = [] - dep_dict = {'type': 'task', 'name': '%secen' % cdump} - deps.append(rocoto.add_dependency(dep_dict)) + deps1 = [] + dep_dict = {'type': 'metatask', 'name': '%secmn' % cdump} + deps1.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type': 'task', 'name': '%sesfc' % cdump} + deps1.append(rocoto.add_dependency(dep_dict)) + dependencies1 = rocoto.create_dependency(dep_condition='and', dep=deps1) + + deps2 = [] + deps2 = dependencies1 dep_dict = {'type': 'cycleexist', 'condition': 'not', 'offset': '-06:00:00'} - deps.append(rocoto.add_dependency(dep_dict)) - dependencies = rocoto.create_dependency(dep_condition='or', dep=deps) + deps2.append(rocoto.add_dependency(dep_dict)) + dependencies2 = rocoto.create_dependency(dep_condition='or', dep=deps2) + efcsenvars = envars1 + [ensgrp] - task = wfu.create_wf_task('efcs', cdump=cdump, envar=efcsenvars, dependency=dependencies, + task = wfu.create_wf_task('efcs', cdump=cdump, envar=efcsenvars, dependency=dependencies2, metatask='efmn', varname='grp', varval=EFCSGROUPS, cycledef=cycledef) dict_tasks['%sefmn' % cdump] = task + # echgres + deps1 = [] + dep_dict = {'type': 'task', 'name': '%sfcst' % cdump} + deps1.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type': 'metatask', 'name': '%sefmn' % cdump} + deps1.append(rocoto.add_dependency(dep_dict)) + dependencies1 = rocoto.create_dependency(dep_condition='and', dep=deps1) + task = wfu.create_wf_task('echgres', cdump=cdump, envar=envars1, dependency=dependencies1, cycledef=cycledef) + + dict_tasks['%sechgres' % cdump] = task + # epmn, epos deps = [] dep_dict = {'type': 'metatask', 'name': '%sefmn' % cdump} @@ -700,7 +1171,7 @@ def get_postgroups(post, cdump='gdas'): fhrs = [f.tolist() for f in fhrs] fhrgrp = ' '.join(['%03d' % x for x in range(0, ngrps+1)]) - fhrdep = ' '.join(['f000'] + [f[-1] for f in fhrs]) + fhrdep = ' '.join(['anl'] + [f[-1] for f in fhrs]) fhrlst = ' '.join(['anl'] + ['_'.join(f) for f in fhrs]) return fhrgrp, fhrdep, fhrlst @@ -739,6 +1210,36 @@ def get_awipsgroups(awips, cdump='gdas'): return fhrgrp, fhrdep, fhrlst +def get_ecengroups(dict_configs, ecen, cdump='gdas'): + + base = dict_configs['base'] + + if base.get('DOIAU_ENKF', 'NO') == 'YES' : + fhrs = list(base.get('IAUFHRS','6').split(',')) + ifhrs = ['f00%01s' % f for f in fhrs] + ifhrs0 = ifhrs[0] + nfhrs = len(fhrs) + + ifhrs = ['f00%01s' % f for f in fhrs] + ifhrs0 = ifhrs[0] + nfhrs = len(fhrs) + + necengrp = ecen['NECENGRP'] + ngrps = necengrp if len(fhrs) > necengrp else len(fhrs) + + ifhrs = np.array_split(ifhrs, ngrps) + + fhrgrp = ' '.join(['%03d' % x for x in range(0, ngrps)]) + fhrdep = ' '.join([f[-1] for f in ifhrs]) + fhrlst = ' '.join(['_'.join(f) for f in ifhrs]) + + else: + fhrgrp='000' + fhrdep='f006' + fhrlst='f006' + + return fhrgrp, fhrdep, fhrlst + def get_eposgroups(epos, cdump='gdas'): fhmin = epos['FHMIN_ENKF'] @@ -776,8 +1277,8 @@ def create_xml(dict_configs): create the workflow XML ''' - from __builtin__ import any as b_any - + from __builtin__ import any as b_any + base = dict_configs['base'] dohybvar = base.get('DOHYBVAR', 'NO').upper() gfs_cyc = base.get('gfs_cyc', 0) @@ -795,11 +1296,21 @@ def create_xml(dict_configs): # Get hybrid related entities, resources, workflow if dohybvar in ['Y', 'YES']: + dict_hyb_resources = get_hyb_resources(dict_configs) dict_hyb_tasks = get_hyb_tasks(dict_configs) # Removes &MEMORY_JOB_DUMP post mortem from hyb tasks - hyp_tasks = {'gdaseobs':'gdaseobs', 'gdaseomg':'gdaseomn', 'gdaseupd':'gdaseupd','gdasecen':'gdasecen','gdasefcs':'gdasefmn','gdasepos':'gdasepmn','gdasearc':'gdaseamn'} + hyp_tasks = {'gdaseobs':'gdaseobs', + 'gdasediag':'gdasediag', + 'gdaseomg':'gdaseomn', + 'gdaseupd':'gdaseupd', + 'gdasecen':'gdasecmn', + 'gdasesfc':'gdasesfc', + 'gdasefcs':'gdasefmn', + 'gdasepos':'gdasepmn', + 'gdasearc':'gdaseamn', + 'gdasechgres':'gdasechgres'} for each_task, each_resource_string in dict_hyb_resources.iteritems(): #print each_task,hyp_tasks[each_task] #print dict_hyb_tasks[hyp_tasks[each_task]] @@ -810,13 +1321,13 @@ def create_xml(dict_configs): if 'memory' not in each_line: temp_task_string.append(each_line) dict_hyb_tasks[each_task] = ''.join(temp_task_string) - if hyp_tasks[each_task] in dict_hyb_tasks: + if hyp_tasks[each_task] in dict_hyb_tasks: temp_task_string = [] for each_line in re.split(r'(\s+)', dict_hyb_tasks[hyp_tasks[each_task]]): if 'memory' not in each_line: temp_task_string.append(each_line) dict_hyb_tasks[hyp_tasks[each_task]] = ''.join(temp_task_string) - + # Get GFS cycle related entities, resources, workflow dict_gfs_resources = get_gdasgfs_resources(dict_configs, cdump='gfs') dict_gfs_tasks = get_gdasgfs_tasks(dict_configs, cdump='gfs') @@ -842,7 +1353,7 @@ def create_xml(dict_configs): if 'memory' not in each_line: temp_task_string.append(each_line) dict_gfs_tasks[each_task] = ''.join(temp_task_string) - + # Put together the XML file xmlfile = [] diff --git a/ush/rocoto/setup_workflow_fcstonly.py b/ush/rocoto/setup_workflow_fcstonly.py index 18e8ebdc92..0ef0985f80 100755 --- a/ush/rocoto/setup_workflow_fcstonly.py +++ b/ush/rocoto/setup_workflow_fcstonly.py @@ -1,12 +1,5 @@ #!/usr/bin/env python -############################################################### -# < next few lines under version control, D O N O T E D I T > -# $Date$ -# $Revision$ -# $Author$ -# $Id$ -############################################################### ''' PROGRAM: Create the ROCOTO workflow for a forecast only experiment given the configuration of the GFS parallel @@ -34,8 +27,8 @@ import rocoto import workflow_utils as wfu - -taskplan = ['getic', 'fv3ic', 'fcst', 'post', 'vrfy', 'arch'] +#taskplan = ['getic', 'fv3ic', 'waveinit', 'waveprep', 'fcst', 'post', 'wavepostsbs', 'wavegempak', 'waveawipsbulls', 'waveawipsgridded', 'wavepost', 'wavestat', 'wafs', 'wafsgrib2', 'wafsblending', 'wafsgcip', 'wafsgrib20p25', 'wafsblending0p25', 'vrfy', 'metp', 'arch'] +taskplan = ['getic', 'fv3ic', 'waveinit', 'waveprep', 'fcst', 'post', 'wavepostsbs', 'wavepostbndpnt', 'wavepostpnt', 'wavegempak', 'waveawipsbulls', 'waveawipsgridded', 'wafs', 'wafsgrib2', 'wafsblending', 'wafsgcip', 'wafsgrib20p25', 'wafsblending0p25', 'vrfy', 'metp', 'arch'] def main(): parser = ArgumentParser(description='Setup XML workflow and CRONTAB for a forecast only experiment.', formatter_class=ArgumentDefaultsHelpFormatter) @@ -97,6 +90,9 @@ def get_definitions(base): Create entities related to the experiment ''' + machine = base.get('machine', wfu.detectMachine()) + scheduler = wfu.get_scheduler(machine) + strings = [] strings.append('\n') @@ -128,19 +124,17 @@ def get_definitions(base): strings.append('\t\n') strings.append('\t\n' % base['ACCOUNT']) strings.append('\t\n' % base['QUEUE']) - if base['machine'] == 'THEIA' and wfu.check_slurm(): - strings.append('\t\n' % base['QUEUE']) + strings.append('\t\n' % base['QUEUE_ARCH']) + if scheduler in ['slurm']: strings.append('\t\n' % base['QUEUE_ARCH']) - else: - strings.append('\t\n' % base['QUEUE_ARCH']) - strings.append('\t\n' % wfu.get_scheduler(base['machine'])) + strings.append('\t\n' % scheduler) strings.append('\n') strings.append('\t\n') strings.append('\t\n') strings.append('\n') strings.append('\t\n') strings.append('\t\n') - strings.append('\t\n') + strings.append('\t\n') strings.append('\t\n') strings.append('\n') @@ -158,20 +152,25 @@ def get_resources(dict_configs, cdump='gdas'): strings.append('\n') base = dict_configs['base'] - machine = base.get('machine', 'WCOSS_C') + machine = base.get('machine', wfu.detectMachine()) + reservation = base.get('RESERVATION', 'NONE').upper() + scheduler = wfu.get_scheduler(machine) + + do_wave = base.get('DO_WAVE', 'NO').upper() + do_gempak = base.get('DO_GEMPAK', 'NO').upper() + do_awips = base.get('DO_AWIPS', 'NO').upper() + do_metp = base.get('DO_METP', 'NO').upper() for task in taskplan: cfg = dict_configs[task] - wtimestr, resstr, queuestr, memstr, natstr = wfu.get_resources(machine, cfg, task, cdump=cdump) + wtimestr, resstr, queuestr, memstr, natstr = wfu.get_resources(machine, cfg, task, reservation, cdump=cdump) taskstr = '%s_%s' % (task.upper(), cdump.upper()) strings.append('\t\n' % (taskstr, queuestr)) - if base['machine'] == 'THEIA' and wfu.check_slurm() and task == 'arch': - strings.append('\t\n' % taskstr ) - elif base['machine'] == 'THEIA' and wfu.check_slurm() and task == 'getic': + if scheduler in ['slurm'] and task in ['getic', 'arch']: strings.append('\t\n' % taskstr ) strings.append('\t\n' % (taskstr, wtimestr)) strings.append('\t\n' % (taskstr, resstr)) @@ -231,34 +230,50 @@ def get_workflow(dict_configs, cdump='gdas'): envars.append(rocoto.create_envar(name='PDY', value='@Y@m@d')) envars.append(rocoto.create_envar(name='cyc', value='@H')) + base = dict_configs['base'] + do_wave = base.get('DO_WAVE', 'NO').upper() + do_gempak = base.get('DO_GEMPAK', 'NO').upper() + do_awips = base.get('DO_AWIPS', 'NO').upper() + do_wafs = base.get('WAFSF', 'NO').upper() + do_metp = base.get('DO_METP', 'NO').upper() + tasks = [] # getics deps = [] - data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/pgbanl.&CDUMP;.@Y@m@d@H' + data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CDUMP;.@Y@m@d/@H/siganl.&CDUMP;.@Y@m@d@H' dep_dict = {'type':'data', 'data':data} deps.append(rocoto.add_dependency(dep_dict)) - data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/siganl.&CDUMP;.@Y@m@d@H' + data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CDUMP;.@Y@m@d/@H/&CDUMP;.t@Hz.sanl' dep_dict = {'type':'data', 'data':data} deps.append(rocoto.add_dependency(dep_dict)) - data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/sfcanl.&CDUMP;.@Y@m@d@H' + data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CDUMP;.@Y@m@d/@H/gfnanl.&CDUMP;.@Y@m@d@H' dep_dict = {'type':'data', 'data':data} deps.append(rocoto.add_dependency(dep_dict)) - deps = rocoto.create_dependency(dep_condition='and', dep=deps) + data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CDUMP;.@Y@m@d/@H/&CDUMP;.t@Hz.atmanl.nemsio' + dep_dict = {'type':'data', 'data':data} + deps.append(rocoto.add_dependency(dep_dict)) + deps = rocoto.create_dependency(dep_condition='or', dep=deps) dependencies = rocoto.create_dependency(dep_condition='not', dep=deps) task = wfu.create_wf_task('getic', cdump=cdump, envar=envars, dependency=dependencies) tasks.append(task) tasks.append('\n') - # chgres + # chgres fv3ic deps = [] - data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/siganl.&CDUMP;.@Y@m@d@H' + data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CDUMP;.@Y@m@d/@H/siganl.&CDUMP;.@Y@m@d@H' dep_dict = {'type':'data', 'data':data} deps.append(rocoto.add_dependency(dep_dict)) - data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/sfcanl.&CDUMP;.@Y@m@d@H' + data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CDUMP;.@Y@m@d/@H/&CDUMP;.t@Hz.sanl' dep_dict = {'type':'data', 'data':data} deps.append(rocoto.add_dependency(dep_dict)) - dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CDUMP;.@Y@m@d/@H/gfnanl.&CDUMP;.@Y@m@d@H' + dep_dict = {'type':'data', 'data':data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CDUMP;.@Y@m@d/@H/&CDUMP;.t@Hz.atmanl.nemsio' + dep_dict = {'type':'data', 'data':data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='or', dep=deps) deps = [] data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CASE;/INPUT/gfs_data.tile6.nc' @@ -279,6 +294,22 @@ def get_workflow(dict_configs, cdump='gdas'): tasks.append(task) tasks.append('\n') + # waveinit + if do_wave in ['Y', 'YES']: + task = wfu.create_wf_task('waveinit', cdump=cdump, envar=envars) + tasks.append(task) + tasks.append('\n') + + # waveprep + if do_wave in ['Y', 'YES']: + deps = [] + dep_dict = {'type': 'task', 'name': '%swaveinit' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('waveprep', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + # fcst deps = [] data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CASE;/INPUT/gfs_data.tile6.nc' @@ -287,6 +318,9 @@ def get_workflow(dict_configs, cdump='gdas'): data = '&ICSDIR;/@Y@m@d@H/&CDUMP;/&CASE;/INPUT/sfc_data.tile6.nc' dep_dict = {'type':'data', 'data':data} deps.append(rocoto.add_dependency(dep_dict)) + if do_wave in ['Y', 'YES']: + dep_dict = {'type': 'task', 'name': '%swaveprep' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) task = wfu.create_wf_task('fcst', cdump=cdump, envar=envars, dependency=dependencies) tasks.append(task) @@ -294,7 +328,7 @@ def get_workflow(dict_configs, cdump='gdas'): # post deps = [] - data = '&ROTDIR;/%s.@Y@m@d/@H/%s.t@Hz.log#dep#.nemsio' % (cdump, cdump) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.log#dep#.txt' % (cdump, cdump) dep_dict = {'type': 'data', 'data': data} deps.append(rocoto.add_dependency(dep_dict)) dependencies = rocoto.create_dependency(dep=deps) @@ -310,6 +344,260 @@ def get_workflow(dict_configs, cdump='gdas'): tasks.append(task) tasks.append('\n') + # wavepostsbs + if do_wave in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/wave/rundata/%swave.out_grd.gnh_10m.@Y@m@d.@H0000' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/wave/rundata/%swave.out_grd.aoc_9km.@Y@m@d.@H0000' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/wave/rundata/%swave.out_grd.gsh_15m.@Y@m@d.@H0000' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wavepostsbs', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # wavepostbndpnt + if do_wave in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.logf180.txt' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('wavepostbndpnt', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # wavepostpnt + if do_wave in ['Y', 'YES']: + deps = [] + dep_dict = {'type':'task', 'name':'%sfcst' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type':'task', 'name':'%swavepostbndpnt' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wavepostpnt', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # wavestat + #if do_wave in ['Y', 'YES']: + # deps = [] + # dep_dict = {'type':'task', 'name':'%swavepost' % cdump} + # deps.append(rocoto.add_dependency(dep_dict)) + # dependencies = rocoto.create_dependency(dep=deps) + # task = wfu.create_wf_task('wavestat', cdump=cdump, envar=envars, dependency=dependencies) + # tasks.append(task) + # tasks.append('\n') + + # wavegempak + if do_wave in ['Y', 'YES'] and do_gempak in ['Y', 'YES']: + deps = [] + dep_dict = {'type':'task', 'name':'%swavepostsbs' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('wavegempak', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # waveawipsbulls + if do_wave in ['Y', 'YES'] and do_awips in ['Y', 'YES']: + deps = [] + dep_dict = {'type':'task', 'name':'%swavepostsbs' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type':'task', 'name':'%swavepostpnt' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('waveawipsbulls', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # waveawipsgridded + if do_wave in ['Y', 'YES'] and do_awips in ['Y', 'YES']: + deps = [] + dep_dict = {'type':'task', 'name':'%swavepostsbs' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('waveawipsgridded', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # wafs + if do_wafs in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if006' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if012' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if015' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if018' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if021' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if024' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if027' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if030' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if033' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if036' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wafs', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # wafsgcip + if do_wafs in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if006' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if012' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if015' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if018' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if021' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if024' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if027' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if030' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if033' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if036' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wafsgcip', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # wafsgrib2 + if do_wafs in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if006' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if012' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if015' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if018' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if021' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if024' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if027' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if030' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if033' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if036' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wafsgrib2', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # wafsgrib20p25 + if do_wafs in ['Y', 'YES']: + deps = [] + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if006' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if012' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if015' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if018' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if021' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if024' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if027' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if030' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if033' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + data = '&ROTDIR;/%s.@Y@m@d/@H/atmos/%s.t@Hz.wafs.grb2if036' % (cdump,cdump) + dep_dict = {'type': 'data', 'data': data} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + task = wfu.create_wf_task('wafsgrib20p25', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # wafsblending + if do_wafs in ['Y', 'YES']: + deps = [] + dep_dict = {'type': 'task', 'name': '%swafsgrib2' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('wafsblending', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + + # wafsblending0p25 + if do_wafs in ['Y', 'YES']: + deps = [] + dep_dict = {'type': 'task', 'name': '%swafsgrib20p25' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep=deps) + task = wfu.create_wf_task('wafsblending0p25', cdump=cdump, envar=envars, dependency=dependencies) + tasks.append(task) + tasks.append('\n') + # vrfy deps = [] dep_dict = {'type':'metatask', 'name':'%spost' % cdump} @@ -319,8 +607,27 @@ def get_workflow(dict_configs, cdump='gdas'): tasks.append(task) tasks.append('\n') + # metp + if do_metp in ['Y', 'YES']: + deps = [] + dep_dict = {'type':'metatask', 'name':'%spost' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) + dep_dict = {'type':'task', 'name':'%sarch' % cdump, 'offset':'-&INTERVAL;'} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) + metpcase = rocoto.create_envar(name='METPCASE', value='#metpcase#') + metpenvars = envars + [metpcase] + varname1 = 'metpcase' + varval1 = 'g2g1 g2o1 pcp1' + task = wfu.create_wf_task('metp', cdump=cdump, envar=metpenvars, dependency=dependencies, + metatask='metp', varname=varname1, varval=varval1) + tasks.append(task) + tasks.append('\n') + # arch deps = [] + dep_dict = {'type':'metatask', 'name':'%spost' % cdump} + deps.append(rocoto.add_dependency(dep_dict)) dep_dict = {'type':'task', 'name':'%svrfy' % cdump} deps.append(rocoto.add_dependency(dep_dict)) dep_dict = {'type':'streq', 'left':'&ARCHIVE_TO_HPSS;', 'right':'YES'} @@ -385,7 +692,7 @@ def create_xml(dict_configs): if any( substring in each_line for substring in memory_dict): temp_workflow += each_line workflow = temp_workflow - + # Start writing the XML file fh = open('%s/%s.xml' % (base['EXPDIR'], base['PSLOT']), 'w') diff --git a/ush/rocoto/workflow_utils.py b/ush/rocoto/workflow_utils.py index 6105e742e8..e8a6b8c06a 100755 --- a/ush/rocoto/workflow_utils.py +++ b/ush/rocoto/workflow_utils.py @@ -1,12 +1,5 @@ #!/usr/bin/env python -############################################################### -# < next few lines under version control, D O N O T E D I T > -# $Date$ -# $Revision$ -# $Author$ -# $Id$ -############################################################### ''' Module containing functions all workflow setups require ''' @@ -22,8 +15,7 @@ import rocoto DATE_ENV_VARS=['CDATE','SDATE','EDATE'] -SCHEDULER_MAP={'ZEUS':'moabtorque', - 'THEIA':'moabtorque', +SCHEDULER_MAP={'HERA':'slurm', 'WCOSS':'lsf', 'WCOSS_DELL_P3':'lsf', 'WCOSS_C':'lsfcray'} @@ -150,28 +142,25 @@ def config_parser(files): return varbles -def check_slurm(print_message = False): - if find_executable('srun'): - if print_message: - print 'Info: Using Slurm as scheduler because srun was found in your path' - non_decimal = re.compile(r'[^\d.]+') - rocoto_version = non_decimal.sub('',find_executable('rocotorun').replace('.','')) - if int(rocoto_version) < 130: - print 'WARNING: XML workflow is being made to use Slurm because it was set in your' - print 'environment and the correct version of Rocoto is not loaded.' - print 'Make sure to use Rocoto 1.3.0rc2 or newer (example: module load rocoto/1.3.0rc2).' - return True +def detectMachine(): + + machines = ['HERA', 'WCOSS_C', 'WCOSS_DELL_P3'] + + if os.path.exists('/scratch1/NCEPDEV'): + return 'HERA' + elif os.path.exists('/gpfs') and os.path.exists('/etc/SuSE-release'): + return 'WCOSS_C' + elif os.path.exists('/gpfs/dell2'): + return 'WCOSS_DELL_P3' else: - return False + print 'workflow is currently only supported on: %s' % ' '.join(machines) + raise NotImplementedError('Cannot auto-detect platform, ABORT!') def get_scheduler(machine): - if check_slurm(print_message=True): - return 'slurm' - else: - try: - return SCHEDULER_MAP[machine] - except KeyError: - raise UnknownMachineError('Unknown machine: %s'%(machine,)) + try: + return SCHEDULER_MAP[machine] + except KeyError: + raise UnknownMachineError('Unknown machine: %s, ABORT!' % machine) def create_wf_task(task, cdump='gdas', cycledef=None, envar=None, dependency=None, \ metatask=None, varname=None, varval=None, vardict=None, \ @@ -204,14 +193,11 @@ def create_wf_task(task, cdump='gdas', cycledef=None, envar=None, dependency=Non 'log': '&ROTDIR;/logs/@Y@m@d@H/%s.log' % taskstr, \ 'envar': envar, \ 'dependency': dependency, \ - 'partition' : '&PARTITION_%s_%s;' % (task.upper(),cdump.upper()), \ 'final': final} - if task in ['getic','arch','earc'] and check_slurm(): + if task in ['getic','arch','earc'] and get_scheduler(detectMachine()) in ['slurm']: task_dict['partition'] = '&PARTITION_%s_%s;' % (task.upper(),cdump.upper()) - else: - task_dict['partition'] = None - + if metatask is None: task = rocoto.create_task(task_dict) else: @@ -244,18 +230,17 @@ def create_firstcyc_task(cdump='gdas'): 'command': 'sleep 1', \ 'jobname': '&PSLOT;_%s_@H' % taskstr, \ 'account': '&ACCOUNT;', \ + 'queue': '&QUEUE_ARCH;', \ 'walltime': '&WALLTIME_ARCH_%s;' % cdump.upper(), \ 'native': '&NATIVE_ARCH_%s;' % cdump.upper(), \ 'resources': '&RESOURCES_ARCH_%s;' % cdump.upper(), \ 'log': '&ROTDIR;/logs/@Y@m@d@H/%s.log' % taskstr, \ + 'queue': '&QUEUE_ARCH_%s;' % cdump.upper(), \ 'dependency': dependencies} - if check_slurm(): - task_dict['queue'] = '&QUEUE_ARCH_GFS;' - task_dict['partition'] = '&PARTITION_ARCH_GFS;' - else: - task_dict['queue'] = '&QUEUE_ARCH;' - task_dict['partition'] = None + if get_scheduler(detectMachine()) in ['slurm']: + task_dict['queue'] = '&QUEUE;' + task_dict['partition'] = '&PARTITION_ARCH;' task = rocoto.create_task(task_dict) @@ -280,7 +265,9 @@ def get_gfs_interval(gfs_cyc): return interval -def get_resources(machine, cfg, task, cdump='gdas'): +def get_resources(machine, cfg, task, reservation, cdump='gdas'): + + scheduler = get_scheduler(machine) if cdump in ['gfs'] and 'wtime_%s_gfs' % task in cfg.keys(): wtimestr = cfg['wtime_%s_gfs' % task] @@ -301,7 +288,7 @@ def get_resources(machine, cfg, task, cdump='gdas'): else: ppn = cfg['npe_node_%s' % ltask] - if machine in [ 'WCOSS_DELL_P3']: + if machine in [ 'WCOSS_DELL_P3', 'HERA']: threads = cfg['nth_%s' % ltask] nodes = np.int(np.ceil(np.float(tasks) / np.float(ppn))) @@ -309,31 +296,34 @@ def get_resources(machine, cfg, task, cdump='gdas'): memstr = '' if memory is None else str(memory) natstr = '' - if machine in ['THEIA'] and check_slurm(): + if scheduler in ['slurm']: natstr = '--export=NONE' - - if machine in ['ZEUS', 'THEIA', 'WCOSS_C', 'WCOSS_DELL_P3']: - resstr = '%d:ppn=%d' % (nodes, ppn) + + if machine in ['HERA', 'WCOSS_C', 'WCOSS_DELL_P3']: + + if machine in ['HERA']: + resstr = '%d:ppn=%d:tpp=%d' % (nodes, ppn, threads) + else: + resstr = '%d:ppn=%d' % (nodes, ppn) if machine in ['WCOSS_C'] and task in ['arch', 'earc', 'getic']: resstr += '' if machine in ['WCOSS_DELL_P3']: - natstr = "-R 'affinity[core(%d)]'" % (threads) + if not reservation in ['NONE']: + natstr = "-U %s -R 'affinity[core(%d)]'" % (reservation, threads) + else: + natstr = "-R 'affinity[core(%d)]'" % (threads) if task in ['arch', 'earc', 'getic']: - natstr = "-R 'affinity[core(1)]'" + natstr = "-R 'affinity[core(1)]'" elif machine in ['WCOSS']: resstr = '%d' % tasks - queuestr = '&QUEUE_ARCH;' - # Tricky logic added for Theia arch queues because partition - # is a subset of queue for service queues (for now) if task in ['arch', 'earc', 'getic']: - if machine in ['THEIA'] and check_slurm(): - queuestr = '&QUEUE;' + queuestr = '&QUEUE;' if scheduler in ['slurm'] else '&QUEUE_ARCH;' else: queuestr = '&QUEUE;' @@ -352,16 +342,16 @@ def create_crontab(base, cronint=5): return # Leaving the code for a wrapper around crontab file if needed again later -# if check_slurm() and base['machine'] in ['THEIA']: +# if check_slurm(): # # cronintstr = '*/%d * * * *' % cronint # rocotorunstr = '%s -d %s/%s.db -w %s/%s.xml' % (rocotoruncmd, base['EXPDIR'], base['PSLOT'], base['EXPDIR'], base['PSLOT']) -# +# # wrapper_strings = [] # wrapper_strings.append('#!/bin/env tcsh\n') # wrapper_strings.append('\n') # wrapper_strings.append('module load slurm\n') -# wrapper_strings.append('module load rocoto\n') +# wrapper_strings.append('module load rocoto/1.3.0-RC4\n') # wrapper_strings.append('\n') # wrapper_strings.append(rocotorunstr) # @@ -373,7 +363,7 @@ def create_crontab(base, cronint=5): # os.chmod(script_file,stat.S_IRWXU|stat.S_IRWXG|stat.S_IRWXO) # fh.close() # -# rocotorunstr = 'ssh %s %s/%s.sh' % (socket.gethostname(), base['EXPDIR'], base['PSLOT']) +# rocotorunstr = 'ssh %s %s/%s.sh' % (socket.gethostname(), base['EXPDIR'], base['PSLOT']) # # else: diff --git a/ush/scale_dec.sh b/ush/scale_dec.sh new file mode 100755 index 0000000000..8fba2f703b --- /dev/null +++ b/ush/scale_dec.sh @@ -0,0 +1,25 @@ +#!/bin/ksh +# +# This script uses WGRIB2 to change binary scale factor +# and Decimal scale factor in GRIB2 file +# +# -set_scaling D B +# D = decimal scaling or the text 'same' with no quotes +# B = binary scaling or the text 'same' with no quotes +# +set -x + +f=$1 + +export WGRIB2=${WGRIB2:-${NWROOT}/grib_util.v1.1.0/exec/wgrib2} + +# export WGRIB2=/gpfs/dell1/nco/ops/nwprod/grib_util.v1.1.0/exec/wgrib2 + +$WGRIB2 $f -not_if ':(TMP|PWAT|WEASD):' -grib $f.new \ + -if ':(TMP|PWAT):' -set_grib_type same \ + -set_scaling -1 0 -grib_out $f.new \ + -if ':(WEASD):' -set_grib_type same \ + -set_scaling 0 0 -grib_out $f.new +export err=$?; err_chk +mv $f.new $f +exit 0 diff --git a/ush/syndat_qctropcy.sh b/ush/syndat_qctropcy.sh index 4a4d010fc8..d72e52f9cc 100755 --- a/ush/syndat_qctropcy.sh +++ b/ush/syndat_qctropcy.sh @@ -371,7 +371,8 @@ then if [ "$copy_back" = 'YES' -a ${envir} = 'prod' ]; then if [ -s $HOMENHC/tcvitals ]; then cp nhc $HOMENHC/tcvitals - elif [ -s $HOMENHCp1/tcvitals ]; then + fi + if [ -s $HOMENHCp1/tcvitals ]; then cp nhc $HOMENHCp1/tcvitals fi diff --git a/ush/wave_grib2_sbs.sh b/ush/wave_grib2_sbs.sh new file mode 100755 index 0000000000..ec0255ba79 --- /dev/null +++ b/ush/wave_grib2_sbs.sh @@ -0,0 +1,278 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_grib2_sbs.sh +# Script description: Create grib2 files for the wave component +# +# Author: Hendrik Tolman Org: NCEP/EMC Date: 2007-07-11 +# Abstract: Creates grib2 files from WW3 binary output +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +# Requirements: +# - wgrib2 with IPOLATES library +# +################################################################################ +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $GRIBDATA +# postmsg "$jlogfile" "Making GRIB2 Files." # commented to reduce unnecessary output to jlogfile + + alertName=`echo $RUN|tr [a-z] [A-Z]` + + grdID=$1 + gribDIR=${grdID}_grib + rm -rfd ${gribDIR} + mkdir ${gribDIR} + err=$? + if [ $err != 0 ] + then + set +x + echo ' ' + echo '******************************************************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 (COULD NOT CREATE TEMP DIRECTORY) *** ' + echo '******************************************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2 (Could not create temp directory)" + exit 1 + fi + + cd ${gribDIR} + +# 0.b Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + GRIDNR=$2 + MODNR=$3 + ymdh=$4 + fhr=$5 + grdnam=$6 + grdres=$7 + gribflags=$8 + ngrib=1 # only one time slice + dtgrib=3600 # only one time slice +# SBS one time slice per file + FH3=$(printf %03i $fhr) + +# Verify if grib2 file exists from interrupted run + ENSTAG="" + if [ ${waveMEMB} ]; then ENSTAG=".${membTAG}${waveMEMB}" ; fi + outfile=${WAV_MOD_TAG}.${cycle}${ENSTAG}.${grdnam}.${grdres}.f${FH3}.grib2 + +# Only create file if not present in COM + if [ ! -s ${COMOUT}/gridded/${outfile}.idx ]; then + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make GRIB files |' + echo '+--------------------------------+' + echo " Model ID : $WAV_MOD_TAG" + [[ "$LOUD" = YES ]] && set -x + + if [ -z "$CDATE" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || \ + [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ + [ -z "$gribflags" ] || \ + [ -z "$GRIDNR" ] || [ -z "$MODNR" ] || [ -z "$SENDDBN" ] + then + set +x + echo ' ' + echo '***************************************************' + echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' + echo '***************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" + exit 1 + fi + +# 0.c Starting time for output + + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + + set +x + echo " Starting time : $tstart" + echo " Time step : Single SBS + echo " Number of times : Single SBS + echo " GRIB field flags : $gribflags" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 0.e Links to working directory + + ln -s ${DATA}/mod_def.$grdID mod_def.ww3 + ln -s ${DATA}/output_${ymdh}0000/out_grd.$grdID out_grd.ww3 + +# --------------------------------------------------------------------------- # +# 1. Generate GRIB file with all data +# 1.a Generate input file for ww3_grib2 +# Template copied in mother script ... + + set +x + echo " Generate input file for ww3_grib2" + [[ "$LOUD" = YES ]] && set -x + + sed -e "s/TIME/$tstart/g" \ + -e "s/DT/$dtgrib/g" \ + -e "s/NT/$ngrib/g" \ + -e "s/GRIDNR/$GRIDNR/g" \ + -e "s/MODNR/$MODNR/g" \ + -e "s/FLAGS/$gribflags/g" \ + ${DATA}/ww3_grib2.${grdID}.inp.tmpl > ww3_grib.inp + + + echo "ww3_grib.inp" + cat ww3_grib.inp +# 1.b Run GRIB packing program + + set +x + echo " Run ww3_grib2" + echo " Executing $EXECwave/ww3_grib" + [[ "$LOUD" = YES ]] && set -x + + export pgm=ww3_grib;. prep_step + $EXECwave/ww3_grib > grib2_${grdnam}_${FH3}.out 2>&1 + export err=$?;err_chk + + if [ ! -s gribfile ]; then + set +x + echo ' ' + echo '************************************************ ' + echo '*** FATAL ERROR : ERROR IN ww3_grib encoding *** ' + echo '************************************************ ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2" + exit 3 + fi + + if [ $fht -gt 0 ]; then + $WGRIB2 gribfile -set_date $CDATE -set_ftime "$fhr hour fcst" -grib ${COMOUT}/gridded/${outfile} + err=$? + else + $WGRIB2 gribfile -set_date $CDATE -set_ftime "$fhr hour fcst" -set table_1.4 1 -set table_1.2 1 -grib ${COMOUT}/gridded/${outfile} + err=$? + fi + + if [ $err != 0 ] + then + set +x + echo ' ' + echo '********************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 *** ' + echo '********************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2" + exit 3 + fi + +# Create index + $WGRIB2 -s $COMOUT/gridded/${outfile} > $COMOUT/gridded/${outfile}.idx + +# Create grib2 subgrid is this is the source grid + if [ "${grdID}" = "${WAV_SUBGRBSRC}" ]; then + for subgrb in ${WAV_SUBGRB}; do + subgrbref=`echo ${!subgrb} | cut -d " " -f 1-20` + subgrbnam=`echo ${!subgrb} | cut -d " " -f 21` + subgrbres=`echo ${!subgrb} | cut -d " " -f 22` + subfnam="${WAV_MOD_TAG}.${cycle}${ENSTAG}.${subgrbnam}.${subgrbres}.f${FH3}.grib2" + $COPYGB2 -g "${subgrbref}" -i0 -x ${COMOUT}/gridded/${outfile} ${COMOUT}/gridded/${subfnam} + $WGRIB2 -s $COMOUT/gridded/${subfnam} > $COMOUT/gridded/${subfnam}.idx + done + fi + +# 1.e Save in /com + + if [ ! -s $COMOUT/gridded/${outfile} ] + then + set +x + echo ' ' + echo '********************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 *** ' + echo '********************************************* ' + echo ' ' + echo " Error in moving grib file ${outfile} to com" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grib2" + exit 4 + fi + if [ ! -s $COMOUT/gridded/${outfile} ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_grib2 INDEX FILE *** ' + echo '*************************************************** ' + echo ' ' + echo " Error in moving grib file ${outfile}.idx to com" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN creating ww3_grib2 index" + exit 4 + fi + + # if [ "$SENDDBN" = 'YES' ] + if [[ "$SENDDBN" = 'YES' ]] && [[ ${outfile} != *global.0p50* ]] + then + set +x + echo " Alerting GRIB file as $COMOUT/gridded/${outfile}" + echo " Alerting GRIB index file as $COMOUT/gridded/${outfile}.idx" + [[ "$LOUD" = YES ]] && set -x + # $DBNROOT/bin/dbn_alert MODEL WAVE_GRIB_GB2 $job $COMOUT/gridded/${outfile} + $DBNROOT/bin/dbn_alert MODEL ${alertName}_WAVE_GB2 $job $COMOUT/gridded/${outfile} + $DBNROOT/bin/dbn_alert MODEL ${alertName}_WAVE_GB2_WIDX $job $COMOUT/gridded/${outfile}.idx + else + echo "${outfile} is global.0p50, not alert out" + fi + + +# --------------------------------------------------------------------------- # +# 3. Clean up the directory + + rm -f gribfile + + set +x + echo " Removing work directory after success." + [[ "$LOUD" = YES ]] && set -x + + cd ../ + mv -f ${gribDIR} done.${gribDIR} + + else + set +x + echo ' ' + echo " File ${COMOUT}/gridded/${outfile} found, skipping generation process" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + fi + + set +x + echo ' ' + echo "End of ww3_grib2.sh at" + date + [[ "$LOUD" = YES ]] && set -x + +# End of ww3_grib2.sh -------------------------------------------------- # diff --git a/ush/wave_grid_interp.sh b/ush/wave_grid_interp.sh new file mode 100755 index 0000000000..0d90b9c56c --- /dev/null +++ b/ush/wave_grid_interp.sh @@ -0,0 +1,210 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_grid_interp.sh +# Script description: Create grib2 files for the wave component +# +# Author: Arun Chawla Org: NCEP/EMC Date: 2009-07-22 +# Abstract: Creates grib2 files from WW3 binary output +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera +# +# $Id$ +############################################################################### +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $DATA + + grdID=$1 + ymdh=$2 + dt=$3 + nst=$4 + postmsg "$jlogfile" "Making GRID Interpolation Files for $grdID." + rm -rf grint_${grdID}_${ymdh} + mkdir grint_${grdID}_${ymdh} + err=$? + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '************************************************************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grid_interp (COULD NOT CREATE TEMP DIRECTORY) *** ' + echo '************************************************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grid_interp (Could not create temp directory)" + exit 1 + fi + + cd grint_${grdID}_${ymdh} + +# 0.b Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make GRID files |' + echo '+--------------------------------+' + echo " Model ID : $WAV_MOD_TAG" + [[ "$LOUD" = YES ]] && set -x + + if [ -z "$YMDH" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || \ + [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ + [ -z "$SENDDBN" ] || [ -z "$waveGRD" ] + then + set +x + echo ' ' + echo '***************************************************' + echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' + echo '***************************************************' + echo ' ' + echo "$YMDH $cycle $EXECwave $COMOUT $WAV_MOD_TAG $SENDCOM $SENDDBN $waveGRD" + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" + exit 1 + fi + +# 0.c Links to files + + rm -f ../out_grd.$grdID + + if [ ! -f ../${grdID}_interp.inp.tmpl ]; then + cp $FIXwave/${grdID}_interp.inp.tmpl ../. + fi + ln -sf ../${grdID}_interp.inp.tmpl . + + for ID in $waveGRD + do + ln -sf ../out_grd.$ID . + done + + for ID in $waveGRD $grdID + do + ln -sf ../mod_def.$ID . + done + +# --------------------------------------------------------------------------- # +# 1. Generate GRID file with all data +# 1.a Generate Input file + + time="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + + sed -e "s/TIME/$time/g" \ + -e "s/DT/$dt/g" \ + -e "s/NSTEPS/$nst/g" ${grdID}_interp.inp.tmpl > ww3_gint.inp + +# Check if there is an interpolation weights file available + + wht_OK='no' + if [ ! -f ${DATA}/WHTGRIDINT.bin.${grdID} ]; then + if [ -f $FIXwave/WHTGRIDINT.bin.${grdID} ] + then + set +x + echo ' ' + echo " Copying $FIXwave/WHTGRIDINT.bin.${grdID} " + [[ "$LOUD" = YES ]] && set -x + cp $FIXwave/WHTGRIDINT.bin.${grdID} ${DATA} + wht_OK='yes' + else + set +x + echo ' ' + echo " Not found: $FIXwave/WHTGRIDINT.bin.${grdID} " + fi + fi +# Check and link weights file + if [ -f ${DATA}/WHTGRIDINT.bin.${grdID} ] + then + ln -s ${DATA}/WHTGRIDINT.bin.${grdID} ./WHTGRIDINT.bin + fi + +# 1.b Run interpolation code + + set +x + echo " Run ww3_gint + echo " Executing $EXECwave/ww3_gint + [[ "$LOUD" = YES ]] && set -x + + $EXECwave/ww3_gint 1> gint.{$grdID}.out 2>&1 + err=$? + +# Write interpolation file to main TEMP dir area if not there yet + if [ "wht_OK" = 'no' ] + then + cp -f ./WHTGRIDINT.bin ${DATA}/WHTGRIDINT.bin.${grdID} + cp -f ./WHTGRIDINT.bin ${FIXwave}/WHTGRIDINT.bin.${grdID} + fi + + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_gint interpolation * ' + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_gint interpolation" + exit 3 + fi + +# 1.b Clean up + + rm -f grid_interp.inp + rm -f mod_def.* + mv out_grd.$grdID ../out_grd.$grdID + +# 1.c Save in /com + + if [ "$SENDCOM" = 'YES' ] + then + set +x + echo " Saving GRID file as $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.$PDY$cyc" + [[ "$LOUD" = YES ]] && set -x + cp ../out_grd.$grdID $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.$PDY$cyc + +# if [ "$SENDDBN" = 'YES' ] +# then +# set +x +# echo " Alerting GRID file as $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.$PDY$cyc +# [[ "$LOUD" = YES ]] && set -x + +# +# PUT DBNET ALERT HERE .... +# + +# fi + fi + +# --------------------------------------------------------------------------- # +# 2. Clean up the directory + + set +x + echo " Removing work directory after success." + [[ "$LOUD" = YES ]] && set -x + + cd .. + mv -f grint_${grdID}_${ymdh} done.grint_${grdID}_${ymdh} + + set +x + echo ' ' + echo "End of ww3_interp.sh at" + date + +# End of ww3_grid_interp.sh -------------------------------------------- # diff --git a/ush/wave_grid_interp_sbs.sh b/ush/wave_grid_interp_sbs.sh new file mode 100755 index 0000000000..88a85387ee --- /dev/null +++ b/ush/wave_grid_interp_sbs.sh @@ -0,0 +1,219 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_grid_interp_sbs.sh +# Script description: Interpolate from native grids to target grid +# +# Author: J-Henrique Alves Org: NCEP/EMC Date: 2019-11-02 +# Abstract: Creates grib2 files from WW3 binary output +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +# Requirements: +# - wgrib2 with IPOLATES library +# +################################################################################ +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + cd $GRDIDATA + + grdID=$1 + ymdh=$2 + dt=$3 + nst=$4 + postmsg "$jlogfile" "Making GRID Interpolation Files for $grdID." + rm -rf grint_${grdID}_${ymdh} + mkdir grint_${grdID}_${ymdh} + err=$? + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '************************************************************************************* ' + echo '*** FATAL ERROR : ERROR IN ww3_grid_interp (COULD NOT CREATE TEMP DIRECTORY) *** ' + echo '************************************************************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grid_interp (Could not create temp directory)" + exit 1 + fi + + cd grint_${grdID}_${ymdh} + +# 0.b Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make GRID files |' + echo '+--------------------------------+' + echo " Model ID : $WAV_MOD_TAG" + [[ "$LOUD" = YES ]] && set -x + + if [ -z "$CDATE" ] || [ -z "$cycle" ] || [ -z "$EXECwave" ] || \ + [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || [ -z "$SENDCOM" ] || \ + [ -z "$SENDDBN" ] || [ -z "$waveGRD" ] + then + set +x + echo ' ' + echo '***************************************************' + echo '*** EXPORTED VARIABLES IN postprocessor NOT SET ***' + echo '***************************************************' + echo ' ' + echo "$CDATE $cycle $EXECwave $COMOUT $WAV_MOD_TAG $SENDCOM $SENDDBN $waveGRD" + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN postprocessor NOT SET" + exit 1 + fi + +# 0.c Links to files + + rm -f ${DATA}/output_${ymdh}0000/out_grd.$grdID + + if [ ! -f ${DATA}/${grdID}_interp.inp.tmpl ]; then + cp $FIXwave/${grdID}_interp.inp.tmpl ${DATA} + fi + ln -sf ${DATA}/${grdID}_interp.inp.tmpl . + + for ID in $waveGRD + do + ln -sf ${DATA}/output_${ymdh}0000/out_grd.$ID . + done + + for ID in $waveGRD $grdID + do + ln -sf ${DATA}/mod_def.$ID . + done + +# --------------------------------------------------------------------------- # +# 1. Generate GRID file with all data +# 1.a Generate Input file + + time="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + + sed -e "s/TIME/$time/g" \ + -e "s/DT/$dt/g" \ + -e "s/NSTEPS/$nst/g" ${grdID}_interp.inp.tmpl > ww3_gint.inp + +# Check if there is an interpolation weights file available + + wht_OK='no' + if [ ! -f ${DATA}/WHTGRIDINT.bin.${grdID} ]; then + if [ -f $FIXwave/WHTGRIDINT.bin.${grdID} ] + then + set +x + echo ' ' + echo " Copying $FIXwave/WHTGRIDINT.bin.${grdID} " + [[ "$LOUD" = YES ]] && set -x + cp $FIXwave/WHTGRIDINT.bin.${grdID} ${DATA} + wht_OK='yes' + else + set +x + echo ' ' + echo " Not found: $FIXwave/WHTGRIDINT.bin.${grdID} " + fi + fi +# Check and link weights file + if [ -f ${DATA}/WHTGRIDINT.bin.${grdID} ] + then + ln -s ${DATA}/WHTGRIDINT.bin.${grdID} ./WHTGRIDINT.bin + fi + +# 1.b Run interpolation code + + set +x + echo " Run ww3_gint + echo " Executing $EXECwave/ww3_gint + [[ "$LOUD" = YES ]] && set -x + + export pgm=ww3_gint;. prep_step + $EXECwave/ww3_gint 1> gint.${grdID}.out 2>&1 + export err=$?;err_chk + +# Write interpolation file to main TEMP dir area if not there yet + if [ "wht_OK" = 'no' ] + then + cp -f ./WHTGRIDINT.bin ${DATA}/WHTGRIDINT.bin.${grdID} + cp -f ./WHTGRIDINT.bin ${FIXwave}/WHTGRIDINT.bin.${grdID} + fi + + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_gint interpolation * ' + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_gint interpolation" + exit 3 + fi + +# 1.b Clean up + + rm -f grid_interp.inp + rm -f mod_def.* + mv out_grd.$grdID ${DATA}/output_${ymdh}0000/out_grd.$grdID + +# 1.c Save in /com + + if [ "$SENDCOM" = 'YES' ] + then + set +x + echo " Saving GRID file as $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.${CDATE}" + [[ "$LOUD" = YES ]] && set -x + cp ${DATA}/output_${ymdh}0000/out_grd.$grdID $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.${CDATE} + +# if [ "$SENDDBN" = 'YES' ] +# then +# set +x +# echo " Alerting GRID file as $COMOUT/rundata/$WAV_MOD_TAG.out_grd.$grdID.${CDATE} +# [[ "$LOUD" = YES ]] && set -x + +# +# PUT DBNET ALERT HERE .... +# + +# fi + fi + +# --------------------------------------------------------------------------- # +# 2. Clean up the directory + + set +x + echo " Removing work directory after success." + [[ "$LOUD" = YES ]] && set -x + + cd ../ + mv -f grint_${grdID}_${ymdh} done.grint_${grdID}_${ymdh} + + set +x + echo ' ' + echo "End of ww3_interp.sh at" + date + +# End of ww3_grid_interp.sh -------------------------------------------- # diff --git a/ush/wave_grid_moddef.sh b/ush/wave_grid_moddef.sh new file mode 100755 index 0000000000..640769f991 --- /dev/null +++ b/ush/wave_grid_moddef.sh @@ -0,0 +1,137 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_grid_moddef.sh +# Script description: Create grib2 files for the wave component +# +# Author: J-Henrique Alves Org: NCEP/EMC Date: 2011-04-08 +# Abstract: Creates model definition files for the wave model WW3 +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera +# +# $Id$ +# # +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + postmsg "$jlogfile" "Generating mod_def file" + + mkdir -p moddef_${1} + cd moddef_${1} + + grdID=$1 + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Generate moddef file |' + echo '+--------------------------------+' + echo " Grid : $1" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 0.b Check if grid set + + if [ "$#" -lt '1' ] + then + set +x + echo ' ' + echo '**************************************************' + echo '*** Grid not identifife in ww3_mod_def.sh ***' + echo '**************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "GRID IN ww3_mod_def.sh NOT SET" + exit 1 + else + grdID=$1 + fi + +# 0.c Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + if [ -z "$grdID" ] || [ -z "$EXECwave" ] || [ -z "$wave_sys_ver" ] + then + set +x + echo ' ' + echo '*********************************************************' + echo '*** EXPORTED VARIABLES IN ww3_mod_def.sh NOT SET ***' + echo '*********************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN ww3_mod_def.sh NOT SET" + exit 2 + fi + +# --------------------------------------------------------------------------- # +# 2. Create mod_def file + + set +x + echo ' ' + echo ' Creating mod_def file ...' + echo " Executing $EXECwave/ww3_grid" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + + rm -f ww3_grid.inp + ln -sf ../ww3_grid.inp.$grdID ww3_grid.inp + + $EXECwave/ww3_grid 1> grid_${grdID}.out 2>&1 + err=$? + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_grid *** ' + echo '******************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_grid" + exit 3 + fi + + if [ -f mod_def.ww3 ] + then + cp mod_def.ww3 $COMOUT/rundata/${CDUMP}wave.mod_def.${grdID} + mv mod_def.ww3 ../mod_def.$grdID + else + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : MOD DEF FILE NOT FOUND *** ' + echo '******************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : Mod def File creation FAILED" + exit 4 + fi + +# --------------------------------------------------------------------------- # +# 3. Clean up + + cd .. + rm -rf moddef_$grdID + + set +x + echo ' ' + echo 'End of ww3_mod_def.sh at' + date + +# End of ww3_mod_def.sh ------------------------------------------------- # diff --git a/ush/wave_outp_cat.sh b/ush/wave_outp_cat.sh new file mode 100755 index 0000000000..9169e37bdf --- /dev/null +++ b/ush/wave_outp_cat.sh @@ -0,0 +1,155 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_outp_cat.sh +# Script description: Gathers ASCII data files for all fhr for each buoy +# +# Author: Jessica Meixner Org: NCEP/EMC Date: 2020-08-27 +# Abstract: Cats spec files from each fhr into one for each buoy +# +# Script history log: +# 2020-08-27 Jessica Meixner creation of script +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +################################################################################ +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + bloc=$1 + MAXHOUR=$2 + specdir=$3 + +# 0.b Check if buoy location set + + if [ "$#" -lt '1' ] + then + set +x + echo ' ' + echo '***********************************************' + echo '*** LOCATION ID IN ww3_outp_spec.sh NOT SET ***' + echo '***********************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "LOCATION ID IN ww3_outp_cat.sh NOT SET" + exit 1 + else + buoy=$bloc + fi + +# 0.c Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + if [ -z "$DTPNT_WAV" ] || [ -z "$FHMIN_WAV" ] || \ + [ -z "$WAV_MOD_TAG" ] || [ -z "${STA_DIR}" ] + then + set +x + echo ' ' + echo '******************************************************' + echo '*** EXPORTED VARIABLES IN ww3_outp_cat.sh NOT SET ***' + echo '******************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN ww3_outp_cat.sh NOT SET" + exit 3 + fi + + +# --------------------------------------------------------------------------- # +# 1. Cat for a buoy all fhr into one file + + set +x + echo " Generate input file for ww3_outp." + [[ "$LOUD" = YES ]] && set -x + + if [ "$specdir" = "bull" ] + then + outfile=${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.bull + coutfile=${STA_DIR}/c${specdir}/$WAV_MOD_TAG.$buoy.cbull + rm outfile coutfile + else + outfile=${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.spec + rm outfile + fi + + fhr=$FHMIN_WAV + fhrp=$fhr + while [ $fhr -le $MAXHOUR ]; do + + ymdh=`$NDATE $fhr $CDATE` + if [ "$specdir" = "bull" ] + then + outfilefhr=${STA_DIR}/${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.bull + coutfilefhr=${STA_DIR}/c${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.cbull + else + outfilefhr=${STA_DIR}/${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.spec + fi + + if [ -f $outfilefhr ] + then + if [ "$specdir" = "bull" ] + then + cat $outfilefhr >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.bull + cat $coutfilefhr >> ${STA_DIR}/c${specdir}/$WAV_MOD_TAG.$buoy.cbull + rm $outfilefhr $coutfilefhr + else + cat $outfilefhr >> ${STA_DIR}/${specdir}/$WAV_MOD_TAG.$buoy.spec + #rm $outfilefhr + fi + else + set +x + echo ' ' + echo '************************************************************************** ' + echo "*** FATAL ERROR : OUTPUT DATA FILE FOR BOUY $bouy at ${ymdh} NOT FOUND *** " + echo '************************************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=2; export err;${errchk} + exit $err + fi + + FHINCP=$(( DTPNT_WAV / 3600 )) + if [ $fhr = $fhrp ] + then + fhrp=$((fhr+FHINCP)) + fi + echo $fhrp + + fhr=$fhrp # no gridded output, loop with out_pnt stride + + done + + if [ ! -f ${outfile} ] + then + set +x + echo ' ' + echo '*************************************************** ' + echo " FATAL ERROR : OUTPUTFILE ${outfile} not created " + echo '*************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + err=2; export err;${errchk} + exit $err + fi + + set +x + echo ' ' + echo 'End of ww3_outp_cat.sh at' + date + +# End of ww3_outp_cat.sh ---------------------------------------------------- # diff --git a/ush/wave_outp_spec.sh b/ush/wave_outp_spec.sh new file mode 100755 index 0000000000..88d88e8b7f --- /dev/null +++ b/ush/wave_outp_spec.sh @@ -0,0 +1,263 @@ +#!/bin/bash +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_outp_spec.sh +# Script description: Generates ASCII data files with the wave spectral data +# +# Author: Hendrik Tolman Org: NCEP/EMC Date: 2007-03-17 +# Abstract: Creates grib2 files from WW3 binary output +# +# Script history log: +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported to R&D machine Hera +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +################################################################################ +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set +x + + bloc=$1 + ymdh=$2 + specdir=$3 + workdir=$4 + + YMDHE=`$NDATE $FHMAX_WAV $CDATE` + + cd $workdir + + rm -rf ${specdir}_${bloc} + mkdir ${specdir}_${bloc} + err=$? + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '****************************************************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_outp_spec (COULD NOT CREATE TEMP DIRECTORY) *** ' + echo '****************************************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_outp_spec (Could not create temp directory)" + exit 1 + fi + + cd ${specdir}_${bloc} + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make spectral file |' + echo '+--------------------------------+' + echo " Model ID : $WAV_MOD_TAG" + [[ "$LOUD" = YES ]] && set -x + +# 0.b Check if buoy location set + + if [ "$#" -lt '1' ] + then + set +x + echo ' ' + echo '***********************************************' + echo '*** LOCATION ID IN ww3_outp_spec.sh NOT SET ***' + echo '***********************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "LOCATION ID IN ww3_outp_spec.sh NOT SET" + exit 1 + else + buoy=$bloc + grep $buoy ${DATA}/buoy_log.ww3 > tmp_list.loc + while read line + do + buoy_name=`echo $line | awk '{print $2}'` + if [ $buoy = $buoy_name ] + then + point=`echo $line | awk '{ print $1 }'` + set +x + echo " Location ID/# : $buoy (${point})" + echo " Spectral output start time : $ymdh " + echo ' ' + [[ "$LOUD" = YES ]] && set -x + break + fi + done < tmp_list.loc + if [ -z "$point" ] + then + set +x + echo '******************************************************' + echo '*** LOCATION ID IN ww3_outp_spec.sh NOT RECOGNIZED ***' + echo '******************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "LOCATION ID IN ww3_outp_spec.sh NOT RECOGNIZED" + exit 2 + fi + fi + + +# 0.c Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + if [ -z "$CDATE" ] || [ -z "$dtspec" ] || [ -z "$EXECwave" ] || \ + [ -z "$WAV_MOD_TAG" ] || [ -z "${STA_DIR}" ] + then + set +x + echo ' ' + echo '******************************************************' + echo '*** EXPORTED VARIABLES IN ww3_outp_spec.sh NOT SET ***' + echo '******************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN ww3_outp_spec.sh NOT SET" + exit 3 + fi + +# 0.d Starting time for output + + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + YMD="`echo $ymdh | cut -c1-8`" + HMS="`echo $ymdh | cut -c9-10`0000" + set +x + echo " Output starts at $tstart." + echo ' ' + [[ "$LOUD" = YES ]] && set -x + +# 0.e sync important files + +# $FSYNC ${DATA}/mod_def.${waveuoutpGRD} +# $FSYNC ${DATA}/out_pnt.${waveuoutpGRD} +# $FSYNC ${DATA}/ww3_outp_spec.inp.tmpl + +# 0.f Links to mother directory + + ln -s ${DATA}/mod_def.${waveuoutpGRD} ./mod_def.ww3 + ln -s ${DATA}/output_${ymdh}0000/out_pnt.${waveuoutpGRD} ./out_pnt.ww3 + +# --------------------------------------------------------------------------- # +# 2. Generate spectral data file +# 2.a Input file for postprocessor + + set +x + echo " Generate input file for ww3_outp." + [[ "$LOUD" = YES ]] && set -x + + if [ "$specdir" = "bull" ] + then + tstart="`echo $ymdh | cut -c1-8` `echo $ymdh | cut -c9-10`0000" + truntime="`echo $CDATE | cut -c1-8` `echo $YMDH | cut -c9-10`0000" + sed -e "s/TIME/$tstart/g" \ + -e "s/DT/$dtspec/g" \ + -e "s/POINT/$point/g" \ + -e "s/REFT/$truntime/g" \ + ${DATA}/ww3_outp_bull.inp.tmpl > ww3_outp.inp + outfile=${buoy}.bull + coutfile=${buoy}.cbull + else + sed -e "s/TIME/$tstart/g" \ + -e "s/DT/$dtspec/g" \ + -e "s/POINT/$point/g" \ + -e "s/ITYPE/1/g" \ + -e "s/FORMAT/F/g" \ + ${DATA}/ww3_outp_spec.inp.tmpl > ww3_outp.inp + outfile=ww3.`echo $tstart | cut -c3-8``echo $tstart | cut -c10-11`.spc + fi + +# 2.b Run the postprocessor + + set +x + echo " Executing $EXECwave/ww3_outp" + [[ "$LOUD" = YES ]] && set -x + + export pgm=ww3_outp;. prep_step + $EXECwave/ww3_outp 1> outp_${specdir}_${buoy}.out 2>&1 + export err=$?;err_chk + + + if [ "$err" != '0' ] + then + set +x + echo ' ' + echo '******************************************** ' + echo '*** FATAL ERROR : ERROR IN ww3_outp *** ' + echo '******************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : ERROR IN ww3_outp" + exit 4 + fi + +# --------------------------------------------------------------------------- # +# 3. Clean up +# 3.a Move data to directory for station ascii files + + if [ -f $outfile ] + then + if [ "${ymdh}" = "${CDATE}" ] + then + if [ "$specdir" = "bull" ] + then + cat $outfile | sed -e '9,$d' >> ${STA_DIR}/${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.bull + cat $coutfile | sed -e '8,$d' >> ${STA_DIR}/c${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.cbull + else + cat $outfile >> ${STA_DIR}/${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.spec + fi + elif [ "${ymdh}" = "${YMDHE}" ] + then + if [ "$specdir" = "bull" ] + then + cat $outfile | sed -e '1,7d' >> ${STA_DIR}/${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.bull + cat $coutfile | sed -e '1,6d' >> ${STA_DIR}/c${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.cbull + else + cat $outfile | sed -n "/^${YMD} ${HMS}$/,\$p" >> ${STA_DIR}/${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.spec + fi + else + if [ "$specdir" = "bull" ] + then + cat $outfile | sed -e '1,7d' | sed -e '2,$d' >> ${STA_DIR}/${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.bull + cat $coutfile | sed -e '1,6d' | sed -e '2,$d' >> ${STA_DIR}/c${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.cbull + else + cat $outfile | sed -n "/^${YMD} ${HMS}$/,\$p" >> ${STA_DIR}/${specdir}fhr/$WAV_MOD_TAG.${ymdh}.$buoy.spec + fi + fi + else + set +x + echo ' ' + echo '***************************************************************** ' + echo '*** FATAL ERROR : OUTPUT DATA FILE FOR BOUY $bouy NOT FOUND *** ' + echo '***************************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : OUTPUT DATA FILE FOR BOUY $bouy NOT FOUND" + exit 5 + fi + +# 3.b Clean up the rest + + rm -f ww3_outp.inp + rm -f mod_def.ww3 out_pnt.ww3 + + cd .. + rm -rf ${specdir}_${bloc} + + set +x + echo ' ' + echo 'End of ww3_outp_spec.sh at' + date + +# End of ww3_outp_spec.sh ---------------------------------------------------- # diff --git a/ush/wave_prnc_cur.sh b/ush/wave_prnc_cur.sh new file mode 100755 index 0000000000..80578f97ab --- /dev/null +++ b/ush/wave_prnc_cur.sh @@ -0,0 +1,98 @@ +#!/bin/sh +# +################################################################################ +# +# UNIX Script Documentation Block +# Script name: wave_prns_cur.sh +# Script description: Acquires current data and generates binary input for WW3 +# +# Author: J.-Henrique Alves Org: NCEP/EMC Date: 2019-11-06 +# Abstract: Creates current binary data for forcing WW3 +# +# Script history log: +# 2019-10-02 J-Henrique Alves: origination, first version +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# 2020-06-10 J-Henrique Alves Ported R&D machine Hera +# +# $Id$ +# +# Attributes: +# Language: Bourne-again (BASH) shell +# Machine: WCOSS-DELL-P3 +# +################################################################################ +# +set -x + +ymdh_rtofs=$1 +curfile=$2 +fhr=$3 +flagfirst=$4 +fh3=`printf "%03d" "${fhr#0}"` + +# Timing has to be made relative to the single 00z RTOFS cycle for that PDY + +mkdir -p rtofs_${ymdh_rtofs} +cd rtofs_${ymdh_rtofs} + +ncks -x -v sst,sss,layer_density $curfile cur_uv_${PDY}_${fext}${fh3}.nc +ncks -O -a -h -x -v Layer cur_uv_${PDY}_${fext}${fh3}.nc cur_temp1.nc +ncwa -h -O -a Layer cur_temp1.nc cur_temp2.nc +ncrename -h -O -v MT,time -d MT,time cur_temp2.nc +ncks -v u_velocity,v_velocity cur_temp2.nc cur_temp3.nc +mv -f cur_temp3.nc cur_uv_${PDY}_${fext}${fh3}_flat.nc + +# Convert to regular lat lon file +# If weights need to be regenerated due to CDO ver change, use: +# $CDO genbil,r4320x2160 rtofs_glo_2ds_f000_3hrly_prog.nc weights.nc +cp ${FIXwave}/weights_rtofs_to_r4320x2160.nc ./weights.nc + +# Interpolate to regular 5 min grid +$CDO remap,r4320x2160,weights.nc cur_uv_${PDY}_${fext}${fh3}_flat.nc cur_5min_01.nc + +# Perform 9-point smoothing twice to make RTOFS data less noisy when +# interpolating from 1/12 deg RTOFS grid to 1/6 deg wave grid +if [ "WAV_CUR_CDO_SMOOTH" = "YES" ]; then + $CDO -f nc -smooth9 cur_5min_01.nc cur_5min_02.nc + $CDO -f nc -smooth9 cur_5min_02.nc cur_glo_uv_${PDY}_${fext}${fh3}_5min.nc +else + mv cur_5min_01.nc cur_glo_uv_${PDY}_${fext}${fh3}_5min.nc +fi + +# Cleanup +rm -f cur_temp[123].nc cur_5min_??.nc cur_glo_uv_${PDY}_${fext}${fh3}.nc weights.nc + +if [ ${flagfirst} = "T" ] +then + sed -e "s/HDRFL/T/g" ${FIXwave}/ww3_prnc.cur.${WAVECUR_FID}.inp.tmpl > ww3_prnc.inp +else + sed -e "s/HDRFL/F/g" ${FIXwave}/ww3_prnc.cur.${WAVECUR_FID}.inp.tmpl > ww3_prnc.inp +fi + +rm -f cur.nc +ln -s cur_glo_uv_${PDY}_${fext}${fh3}_5min.nc cur.nc +ln -s ${DATA}/mod_def.${WAVECUR_FID} ./mod_def.ww3 + +export pgm=ww3_prnc;. prep_step +$EXECwave/ww3_prnc 1> prnc_${WAVECUR_FID}_${ymdh_rtofs}.out 2>&1 + +export err=$?; err_chk + +if [ "$err" != '0' ] +then + cat prnc_${WAVECUR_FID}_${ymdh_rtofs}.out + set $setoff + echo ' ' + echo '******************************************** ' + echo '*** WARNING: NON-FATAL ERROR IN ww3_prnc *** ' + echo '******************************************** ' + echo ' ' + set $seton + postmsg "$jlogfile" "WARNING: NON-FATAL ERROR IN ww3_prnc." + exit 4 +fi + +mv -f current.ww3 ${DATA}/${WAVECUR_DID}.${ymdh_rtofs} + +cd ${DATA} + diff --git a/ush/wave_prnc_ice.sh b/ush/wave_prnc_ice.sh new file mode 100755 index 0000000000..bd46bbcb69 --- /dev/null +++ b/ush/wave_prnc_ice.sh @@ -0,0 +1,201 @@ +#!/bin/sh +############################################################################### +# # +# This script preprocesses ice fields for the ocean wave models. # +# It is run as a child scipt by the corresponding preprocessig script. # +# # +# Remarks : # +# - This script runs in the work directory designated in the mother script in # +# which it generates its own sub-directory 'ice'. # +# - Because this script is not essential for the running for the wave model # +# (as long as it runs every now and then) the error exit codes are set to # +# 0. The main program script will then not find the file ice.ww3 and send # +# a message to the wave.log file. # +# - See section 0.b for variables that need to be set. # +# # +# Update record : # +# # +# - Origination: Hendrik Tolman 01-Mar-2007 # +# 2019-11-02 J-Henrique Alves Ported to global-workflow. +# # +# Update log # +# Nov2019 JHAlves - Merging wave scripts to global workflow # +# # +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + cd $DATA + seton='-xa' + setoff='+xa' + set $seton + + rm -rf ice + mkdir ice + cd ice + ln -s ${DATA}/postmsg . + +# 0.b Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + set $setoff + echo ' ' + echo '+--------------------------------+' + echo '! Make ice fields |' + echo '+--------------------------------+' + echo " Model TAG : $WAV_MOD_TAG" + echo " Model ID : ${CDUMP}wave" + echo " Ice grid ID : $WAVEICE_FID" + echo " Ice file : $WAVICEFILE" + echo ' ' + set $seton + postmsg "$jlogfile" "Making ice fields." + + if [ -z "$YMDH" ] || [ -z "$cycle" ] || \ + [ -z "$COMOUT" ] || [ -z "$FIXwave" ] || [ -z "$EXECwave" ] || \ + [ -z "$WAV_MOD_TAG" ] || [ -z "$WAVEICE_FID" ] || [ -z "$SENDCOM" ] || \ + [ -z "$COMIN_WAV_ICE" ] + then + set $setoff + echo ' ' + echo '**************************************************' + echo '*** EXPORTED VARIABLES IN preprocessor NOT SET ***' + echo '**************************************************' + echo ' ' + exit 1 + set $seton + postmsg "$jlogfile" "NON-FATAL ERROR - EXPORTED VARIABLES IN preprocessor NOT SET" + fi + +# 0.c Links to working directory + + ln -s ${DATA}/mod_def.$WAVEICE_FID mod_def.ww3 + +# --------------------------------------------------------------------------- # +# 1. Get the necessary files +# 1.a Copy the ice data file + + file=${COMIN_WAV_ICE}/${WAVICEFILE} + + if [ -f $file ] + then + cp $file ice.grib + fi + + if [ -f ice.grib ] + then + set $setoff + echo " ice.grib copied ($file)." + set $seton + else + set $setoff + echo ' ' + echo '************************************** ' + echo "*** FATAL ERROR: NO ICE FILE $file *** " + echo '************************************** ' + echo ' ' + set $seton + postmsg "$jlogfile" "FATAL ERROR - NO ICE FILE (GFS GRIB)" + exit 2 + fi + +# --------------------------------------------------------------------------- # +# 2. Process the GRIB packed ice file +# 2.a Unpack data + + set $setoff + echo ' Extracting data from ice.grib ...' + set $seton + + $WGRIB2 ice.grib -netcdf icean_5m.nc 2>&1 > wgrib.out + + + err=$? + + if [ "$err" != '0' ] + then + cat wgrib.out + set $setoff + echo ' ' + echo '**************************************** ' + echo '*** ERROR IN UNPACKING GRIB ICE FILE *** ' + echo '**************************************** ' + echo ' ' + set $seton + postmsg "$jlogfile" "ERROR IN UNPACKING GRIB ICE FILE." + exit 3 + fi + + rm -f wgrib.out + rm -f ice.grib + rm -f ice.index + + +# 2.d Run through preprocessor wave_prep + + set $setoff + echo ' Run through preprocessor ...' + echo ' ' + set $seton + + cp -f ${DATA}/ww3_prnc.ice.$WAVEICE_FID.inp.tmpl ww3_prnc.inp + + export pgm=ww3_prnc;. prep_step + + $EXECwave/ww3_prnc 1> prnc_${WAVEICE_FID}_${cycle}.out 2>&1 + export err=$?; err_chk + + if [ "$err" != '0' ] + then + cat prnc_${WAVEICE_FID}_${cycle}.out + set $setoff + echo ' ' + echo '******************************************** ' + echo '*** WARNING: NON-FATAL ERROR IN ww3_prnc *** ' + echo '******************************************** ' + echo ' ' + set $seton + postmsg "$jlogfile" "WARNING: NON-FATAL ERROR IN ww3_prnc." + exit 4 + fi + + rm -f wave_prep.out ww3_prep.inp ice.raw mod_def.ww3 + +# --------------------------------------------------------------------------- # +# 3. Save the ice file +# +# Ice file name will have ensemble member number if WW3ATMIENS=T +# and only WAV_MOD_ID if WW3ATMIENS=F +# + if [ "${WW3ATMIENS}" = "T" ] + then + icefile=${WAV_MOD_TAG}.${WAVEICE_FID}.$cycle.ice + elif [ "${WW3ATMIENS}" = "F" ] + then + icefile=${CDUMP}wave.${WAVEICE_FID}.$cycle.ice + fi + + set $setoff + echo " Saving ice.ww3 as $COMOUT/rundata/${icefile}" + set $seton + cp ice.ww3 $COMOUT/rundata/${icefile} + rm -f ice.ww3 + +# --------------------------------------------------------------------------- # +# 4. Clean up the directory + + set $setoff + echo " Removing work directory after success." + set $seton + + cd .. + rm -rf ice + + set $setoff + echo ' ' + echo 'End of waveice.sh at' + date + +# End of waveice.sh --------------------------------------------------------- # diff --git a/ush/wave_tar.sh b/ush/wave_tar.sh new file mode 100755 index 0000000000..358be51a92 --- /dev/null +++ b/ush/wave_tar.sh @@ -0,0 +1,233 @@ +#!/bin/bash +############################################################################### +# # +# This script tars the sectral or bulletin files into a single file and # +# puts it into /com. This is a separate script to enable it to be run in # +# parallel using poe. It also tars the spectral and bulletin files of the # +# old grids that are generated for backward compatibility # +# # +# Remarks : # +# - Shell script variables controling time, directories etc. are set in the # +# mother script. # +# - This script runs in the work directory designated in the mother script. # +# Under this directory it geneates a work directory TAR_$type_$ID which is # +# removed if this script exits normally. # +# - See section 0.c for variables that need to be set. # +# # +# Origination: Hendrik Tolman March 13, 2007 # +# Update log # +# Nov2019 JHAlves - Merging wave scripts to global workflow # +# 2020-06-10 J-Henrique Alves Ported R&D machine Hera +# # +############################################################################### +# +# --------------------------------------------------------------------------- # +# 0. Preparations +# 0.a Basic modes of operation + + # set execution trace prompt. ${0##*/} adds the script's basename + PS4=" \${SECONDS} ${0##*/} L\${LINENO} + " + set -x + + # Use LOUD variable to turn on/off trace. Defaults to YES (on). + export LOUD=${LOUD:-YES}; [[ $LOUD = yes ]] && export LOUD=YES + [[ "$LOUD" != YES ]] && set -x + + cd $DATA + postmsg "$jlogfile" "Making TAR FILE" + + alertName=`echo $RUN|tr [a-z] [A-Z]` + + set +x + echo ' ' + echo '+--------------------------------+' + echo '! Make tar file |' + echo '+--------------------------------+' + echo " ID : $1" + echo " Type : $2" + echo " Number of files : $3" + [[ "$LOUD" = YES ]] && set -x + + +# 0.b Check if type set + + if [ "$#" -lt '3' ] + then + set +x + echo ' ' + echo '********************************************' + echo '*** VARIABLES IN ww3_tar.sh NOT SET ***' + echo '********************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "TYPE IN ww3_tar.sh NOT SET" + exit 1 + else + ID=$1 + type=$2 + nb=$3 + fi + + filext=$type + if [ "$type" = "ibp" ]; then filext='spec'; fi + + rm -rf TAR_${filext}_$ID + mkdir TAR_${filext}_$ID +# this directory is used only for error capturing + +# 0.c Define directories and the search path. +# The tested variables should be exported by the postprocessor script. + + if [ -z "$cycle" ] || [ -z "$COMOUT" ] || [ -z "$WAV_MOD_TAG" ] || \ + [ -z "$SENDCOM" ] || [ -z "$SENDDBN" ] || [ -z "${STA_DIR}" ] + then + set +x + echo ' ' + echo '*****************************************************' + echo '*** EXPORTED VARIABLES IN ww3_tar.sh NOT SET ***' + echo '*****************************************************' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "EXPORTED VARIABLES IN ww3_tar.sh NOT SET" + exit 2 + fi + + cd ${STA_DIR}/${type} + +# --------------------------------------------------------------------------- # +# 2. Generate tar file (spectral files are compressed) + + set +x + echo ' ' + echo ' Making tar file ...' + set -x + + count=0 + countMAX=5 + tardone='no' + + while [ "$count" -lt "$countMAX" ] && [ "$tardone" = 'no' ] + do + + nf=`ls | awk '/'$ID.*.$filext'/ {a++} END {print a}'` + nbm2=$(( $nb - 2 )) + if [ $nf -ge $nbm2 ] + then + tar -cf $ID.$cycle.${type}_tar ./$ID.*.$filext + exit=$? + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '***************************************** ' + echo '*** FATAL ERROR : TAR CREATION FAILED *** ' + echo '***************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : TAR CREATION FAILED" + exit 3 + fi + + if [ -f "$ID.$cycle.${type}_tar" ] + then + tardone='yes' + fi + else + set +x + echo ' All files not found for tar. Sleeping 10 seconds and trying again ..' + [[ "$LOUD" = YES ]] && set -x + sleep 10 + count=`expr $count + 1` + fi + + done + + if [ "$tardone" = 'no' ] + then + set +x + echo ' ' + echo '***************************************** ' + echo '*** FATAL ERROR : TAR CREATION FAILED *** ' + echo '***************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : TAR CREATION FAILED" + exit 3 + fi + + if [ "$type" = 'spec' ] + then + if [ -s $ID.$cycle.${type}_tar ] + then + file_name=$ID.$cycle.${type}_tar.gz + /usr/bin/gzip -c $ID.$cycle.${type}_tar > ${file_name} + exit=$? + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '***************************************************** ' + echo '*** FATAL ERROR : SPECTRAL TAR COMPRESSION FAILED *** ' + echo '***************************************************** ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : SPECTRAL TAR COMPRESSION FAILED" + exit 4 + fi + fi + else + file_name=$ID.$cycle.${type}_tar + fi + +# --------------------------------------------------------------------------- # +# 3. Move data to /com + + set +x + echo ' ' + echo " Moving tar file ${file_name} to $COMOUT ..." + [[ "$LOUD" = YES ]] && set -x + + cp ${file_name} $COMOUT/station/. + + exit=$? + + if [ "$exit" != '0' ] + then + set +x + echo ' ' + echo '************************************* ' + echo '*** FATAL ERROR : TAR COPY FAILED *** ' + echo '************************************* ' + echo ' ' + [[ "$LOUD" = YES ]] && set -x + postmsg "$jlogfile" "FATAL ERROR : TAR COPY FAILED" + exit 4 + fi + + # if [ "$SENDDBN" = 'YES' -a $type != "ibp" ] + if [ "$SENDDBN" = 'YES' ] + then + set +x + echo ' ' + echo " Alerting TAR file as $COMOUT/station/${file_name}" + echo ' ' + [[ "$LOUD" = YES ]] && set -x + $DBNROOT/bin/dbn_alert MODEL ${alertName}_WAVE_TAR $job $COMOUT/station/${file_name} + fi + +# --------------------------------------------------------------------------- # +# 4. Final clean up + + cd $DATA + + set +x; [[ "$LOUD" = YES ]] && set -v + rm -rf ${STA_DIR}/${type} + set +v + + echo ' ' + echo 'End of ww3_tar.sh at' + date + +# End of ww3_tar.sh ----------------------------------------------------- # diff --git a/util/fix/convertfax.tbl b/util/fix/convertfax.tbl deleted file mode 100755 index cb339a7061..0000000000 --- a/util/fix/convertfax.tbl +++ /dev/null @@ -1,93 +0,0 @@ -##### convertfax.tbl Fax graphic conversion table -##### -##### The keyword can be up to 8 characters long, but make sure -##### it contains no spaces. Leave at least one space -##### between width and the keyword -##### -##### 05/01/2006 Lilly - Table is created. -##### 08/27/2007 Lilly - Modify table to remove keywords 06HPPT_p (6-hour -##### precipitation) and 24HPPT_p (24-hour precipitation). -##### HPC no longer requires printed copies of the 6- and -##### 24-hour precipitation graphics. -##### 04/02/2008 Lilly - Modify table to remove the following keywords: -##### - FM2D01_p fm2dot_00HR_850MB_HGT_TMP -##### - FM2D02_p fm2dot_00HR_700MB_HGT_TMP -##### - FM2D03_p fm2dot_00HR_500MB_HGT_TMP -##### - FM2D04_p fm2dot_00HR_300MB_HGT_ISO -##### - FM2D05_p fm2dot_00HR_200MB_HGT_ISO -##### - FM2D06_p fm2dot_00HR_250MB_HGT_ISO -##### - FM2D07_p fm2dot_00HR_100MB_HGT_ISO -##### - PLOT70_p ANL_070MB_HGT_WIND -##### - DM3GFS_p bcgfsmp1.D-3_GFS_500MB_HGT_DN -##### - DP0GFS_p bcgfsmp1.D+0_GFS_500MB_HGT_DN_TENDENDENCY -##### - DP3GFS_p bcgfsmp1.D+3_GFS_500MB_HGT_DN -##### - DP6GFS_p bcgfsmp1.D+6_GFS_500MB_HGT_DN -##### - ECMWFD_p ECMWF_500MB_D+3_HGT_DN -##### - RG250_p rg250plt_250MB_PLOTTED_DATA -##### -Keyword width height FMAT WMO ORIG HEADER ROTATE -##################################################################################### -RADAR 1728 1100 fax QAUA00 KWBC YES NO -RADAR_g 1728 1100 gif QAUA00 KWBC NO 180 -WXDEP 1728 1107 fax QGUA00 KWBC YES NO -WXDEP_g 1728 1107 gif QGUA00 KWBC NO 180 -MAX_TMP 1728 1140 fax QTTA00 KWBC YES NO -MAXT_g 1728 1140 gif QTTA00 KWBC NO 180 -MIN_TMP 1728 1140 fax QTTA01 KWBC YES NO -MINT_g 1728 1140 gif QTTA01 KWBC NO 180 -24HRPCPN 1728 1140 fax QETA00 KWBC YES NO -24HPPT_g 1728 1140 gif QETA00 KWBC NO 180 -12ZSNOW 1728 1140 fax QSTA00 KWBC YES NO -12ZSNO_g 1728 1140 gif QSTA00 KWBC NO 180 -SNOWOB_p 1728 1140 ps QETA00 KWBC NO 90 -FREEZLEV 1728 1200 fax QYSA00 KWBC YES NO -FREEZL_g 1728 1200 gif QYSA00 KWBC NO 180 -FREEZL_p 1728 1200 ps QYSA00 KWBC NO NO -AVGRELHU 1728 1200 fax QRUA00 KWBC YES NO -AVGREL_g 1728 1200 gif QRUA00 KWBC NO 180 -AVGREL_p 1728 1200 ps QRUA00 KWBC NO NO -LI_KINDX 1728 1200 fax QXUA00 KWBC YES NO -LIKIDX_g 1728 1200 gif QXUA00 KWBC NO 180 -LIKIDX_p 1728 1200 ps QXUA00 KWBC NO NO -PPT_PCNT 1728 1200 fax QESA00 KWBC YES NO -PPT_PC_g 1728 1200 gif QESA00 KWBC NO 180 -PPT_PC_p 1728 1200 ps QESA00 KWBC NO NO -GMEXWV 1728 2120 fax QJAA88 KWBC YES NO -FM2D01_g 1728 1900 gif QHUA04 KWBC NO 180 -FM2D001 1728 1165 fax QHUA04 KWBC YES NO -FM2D02_g 1728 1900 gif QHTA07 KWBC NO 180 -FM2D002 1728 1165 fax QHTA07 KWBC YES NO -FM2D03_g 1728 1900 gif QHTA11 KWBC NO 180 -FM2D003 1728 1425 fax QHTA11 KWBC YES NO -FM2D04_g 1728 1900 gif QHUA15 KWBC NO 180 -FM2DA04 1728 1165 fax QHUA15 KWBC YES NO -FM2D05_g 1728 1900 gif QHUA17 KWBC NO 180 -FM2D005 1728 1165 fax QHUA17 KWBC YES NO -FM2D06_g 1728 1900 gif QHUA17 KWBC NO 180 -FM2D07_g 1728 1900 gif QHUA17 KWBC NO 180 -GD12NH_p 1728 1863 ps QHUA15 KWBC NO NO -GDTROP_g 1728 6942 gif QYFA99 KWBC NO 270 -V48140_1 1728 1800 fax QMTQ81 KWBC YES NO -TRP850V 1728 1400 fax PPEA85 KWBC YES NO -TRP850_g 1728 3540 gif PPEA85 KWBC NO 270 -TRP700V 1728 3540 fax QZQA07 KWBC YES NO -TRP700A 1728 1400 fax PPEA70 KWBC YES NO -TRP700_g 1728 3540 gif QZQA07 KWBC NO 270 -TRP500V 1728 3500 fax QZQA11 KWBC YES NO -TRP500A 1728 1400 fax PPEA50 KWBC YES NO -TRP500_g 1728 3500 gif QZQA11 KWBC NO 270 -TRP250V 1728 3500 fax QZQA16 KWBC YES NO -TRP250A 1728 1400 fax PPEA25 KWBC YES NO -TRP250_g 1728 3500 gif QZQA16 KWBC NO 270 -NHANL_g 1728 1863 gif QWTA16 KWBC NO 180 -WNDAFT 1728 1244 fax QWTA16 KWBC YES NO -WNDAFT_g 1728 1244 gif QWTA16 KWBC NO 180 -GDTROPE 1728 3480 fax QWQA00 KWBC YES NO -GDTROPW 1728 3530 fax QWAA00 KWBC YES NO -TRPSFG01 1728 3600 fax QWUI01 KWBC YES NO -GDTROPC 1728 2630 fax QYFA99 KWBC YES NO -HMERC48A 1728 2353 fax QDEQ99 KWBC YES NO -TRPSFG02 1728 2734 fax QWFI99 KWBC YES NO -TRPSFG03 1728 2734 fax QWFQ99 KWBC YES NO -OPCWND24 1728 1655 fax QWBI99 KWBC YES 180 -OPCWND48 1728 1655 fax QWBQ99 KWBC YES 180 diff --git a/util/fix/graph_awpseed b/util/fix/graph_awpseed deleted file mode 100755 index eb3ba63df7..0000000000 Binary files a/util/fix/graph_awpseed and /dev/null differ diff --git a/util/fix/graph_gphbg/ll4002.pur b/util/fix/graph_gphbg/ll4002.pur deleted file mode 100755 index a313717a6a..0000000000 Binary files a/util/fix/graph_gphbg/ll4002.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr2502.pur b/util/fix/graph_gphbg/mr2502.pur deleted file mode 100755 index 32db2ae262..0000000000 Binary files a/util/fix/graph_gphbg/mr2502.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr3001.pur b/util/fix/graph_gphbg/mr3001.pur deleted file mode 100755 index 9dab619175..0000000000 Binary files a/util/fix/graph_gphbg/mr3001.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr4002.pur b/util/fix/graph_gphbg/mr4002.pur deleted file mode 100755 index 6f61433579..0000000000 Binary files a/util/fix/graph_gphbg/mr4002.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr4004.pur b/util/fix/graph_gphbg/mr4004.pur deleted file mode 100755 index 1e784d32d6..0000000000 Binary files a/util/fix/graph_gphbg/mr4004.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr4202.pur b/util/fix/graph_gphbg/mr4202.pur deleted file mode 100755 index f98536c68e..0000000000 Binary files a/util/fix/graph_gphbg/mr4202.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr5101.pur b/util/fix/graph_gphbg/mr5101.pur deleted file mode 100755 index 628d321ec8..0000000000 Binary files a/util/fix/graph_gphbg/mr5101.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr5102.pur b/util/fix/graph_gphbg/mr5102.pur deleted file mode 100755 index 6f4ae5ec36..0000000000 Binary files a/util/fix/graph_gphbg/mr5102.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr5103.pur b/util/fix/graph_gphbg/mr5103.pur deleted file mode 100755 index 9aa02ae839..0000000000 Binary files a/util/fix/graph_gphbg/mr5103.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr5104.pur b/util/fix/graph_gphbg/mr5104.pur deleted file mode 100755 index 3c03ad0929..0000000000 Binary files a/util/fix/graph_gphbg/mr5104.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr5105.pur b/util/fix/graph_gphbg/mr5105.pur deleted file mode 100755 index 6494e1126a..0000000000 Binary files a/util/fix/graph_gphbg/mr5105.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr5106.pur b/util/fix/graph_gphbg/mr5106.pur deleted file mode 100755 index 324d80f959..0000000000 Binary files a/util/fix/graph_gphbg/mr5106.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/mr5113.pur b/util/fix/graph_gphbg/mr5113.pur deleted file mode 100755 index 8c37071f96..0000000000 Binary files a/util/fix/graph_gphbg/mr5113.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh1301.pur b/util/fix/graph_gphbg/nh1301.pur deleted file mode 100755 index 129c2a6a62..0000000000 Binary files a/util/fix/graph_gphbg/nh1301.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh1302.pur b/util/fix/graph_gphbg/nh1302.pur deleted file mode 100755 index 906780bcd9..0000000000 Binary files a/util/fix/graph_gphbg/nh1302.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh2005.pur b/util/fix/graph_gphbg/nh2005.pur deleted file mode 100755 index d45b66c142..0000000000 Binary files a/util/fix/graph_gphbg/nh2005.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh2007.pur b/util/fix/graph_gphbg/nh2007.pur deleted file mode 100755 index 7373f96840..0000000000 Binary files a/util/fix/graph_gphbg/nh2007.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh2500x.pur b/util/fix/graph_gphbg/nh2500x.pur deleted file mode 100755 index 99c10ba204..0000000000 Binary files a/util/fix/graph_gphbg/nh2500x.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh2501.pur b/util/fix/graph_gphbg/nh2501.pur deleted file mode 100755 index a4dfc00aac..0000000000 Binary files a/util/fix/graph_gphbg/nh2501.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh4004.pur b/util/fix/graph_gphbg/nh4004.pur deleted file mode 100755 index c7ae18b092..0000000000 Binary files a/util/fix/graph_gphbg/nh4004.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh4005.pur b/util/fix/graph_gphbg/nh4005.pur deleted file mode 100755 index 310c4aabfc..0000000000 Binary files a/util/fix/graph_gphbg/nh4005.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh4006.pur b/util/fix/graph_gphbg/nh4006.pur deleted file mode 100755 index 5e18fba32d..0000000000 Binary files a/util/fix/graph_gphbg/nh4006.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh5107.pur b/util/fix/graph_gphbg/nh5107.pur deleted file mode 100755 index 0a5611b38a..0000000000 Binary files a/util/fix/graph_gphbg/nh5107.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh5108.pur b/util/fix/graph_gphbg/nh5108.pur deleted file mode 100755 index 6fed03c673..0000000000 Binary files a/util/fix/graph_gphbg/nh5108.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh5109.pur b/util/fix/graph_gphbg/nh5109.pur deleted file mode 100755 index 6384d92cde..0000000000 Binary files a/util/fix/graph_gphbg/nh5109.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/nh5110.pur b/util/fix/graph_gphbg/nh5110.pur deleted file mode 100755 index bc55ee2d73..0000000000 Binary files a/util/fix/graph_gphbg/nh5110.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/pn1302.pur b/util/fix/graph_gphbg/pn1302.pur deleted file mode 100755 index 6cf8acc3d8..0000000000 Binary files a/util/fix/graph_gphbg/pn1302.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/pn2302.pur b/util/fix/graph_gphbg/pn2302.pur deleted file mode 100755 index dbe32909b4..0000000000 Binary files a/util/fix/graph_gphbg/pn2302.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/pn2601.pur b/util/fix/graph_gphbg/pn2601.pur deleted file mode 100755 index 91dcaaba45..0000000000 Binary files a/util/fix/graph_gphbg/pn2601.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/sh2001.pur b/util/fix/graph_gphbg/sh2001.pur deleted file mode 100755 index d84803c690..0000000000 Binary files a/util/fix/graph_gphbg/sh2001.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/sh4001.pur b/util/fix/graph_gphbg/sh4001.pur deleted file mode 100755 index 0b8d4de4b4..0000000000 Binary files a/util/fix/graph_gphbg/sh4001.pur and /dev/null differ diff --git a/util/fix/graph_gphbg/sh5110.pur b/util/fix/graph_gphbg/sh5110.pur deleted file mode 100755 index bc55ee2d73..0000000000 Binary files a/util/fix/graph_gphbg/sh5110.pur and /dev/null differ diff --git a/util/fix/graph_pillist1 b/util/fix/graph_pillist1 deleted file mode 100755 index 2db9eff575..0000000000 --- a/util/fix/graph_pillist1 +++ /dev/null @@ -1,754 +0,0 @@ -0 AFOS MASTER SUBSET/PIL LIST TO FOLLOW 673 PRODUCTS DEFINED 30 MAR 99 DKPH -1 6102 6602 A01 04 12-HR GFS 850 MB HEIGHTS N.H. ADDED 14FEB95 7127 -1 6103 6603 A02 04 24-HR GFS 850 MB HEIGHTS N.H. CHANGED14FEB95 7127 -1 6104 6604 A03 04 36-HR GFS 850 MB HEIGHTS N.H. ADDED 14FEB95 7127 -1 6111 6611 A04 04 12-HR GFS 850 MB TEMPS N.H. ADDED 14FEB95 7127 -1 6112 6612 A05 04 24-HR GFS 850 MB TEMPS N.H. ADDED 14FEB95 7127 -1 6113 6613 A06 04 36-HR GFS 850 MB TEMPS N.H. ADDED 14FEB95 7127 -1 6325 6825 A07 04 48-HR GFS 300MB ISOTACHS N.HEM ADDED 14FEB95 127 -1 6326 6826 A08 04 60-HR GFS 300MB ISOTACHS N.HEM ADDED 14FEB95 127 -1 6327 6827 A09 04 72-HR GFS 300MB ISOTACHS N.HEM ADDED 14FEB95 127 -1 6304 6804 A10 04 48-HR GFS 300MB HEIGHTS N.HEM. ADDED 14FEB95 127 -1 6305 6805 A11 04 60-HR GFS 300MB HEIGHTS N.HEM. ADDED 14FEB95 127 -1 6306 6806 A12 04 72-HR GFS 300MB HEIGHTS N.HEM. ADDED 14FEB95 127 -1 8201 8701 COM 04 3HR FCST UPPER AIR SOUNDINGS OMA NB 080 -1 8200 8700 EPI 04 3HR FCST UPPER AIR SOUNDINGS PIT PA 096 -1 9071 9571 E01 04 00HR ECMWF 500MB HGT N.H. ADDED 15FEB95 127 -1 9072 9572 E02 04 24HR ECMWF 500MB HGT N.H. ADDED 15FEB95 127 -1 9073 9573 E03 04 48HR ECMWF 500MB HGT N.H. ADDED 15FEB95 127 -1 9074 9574 E04 04 72HR ECMWF 500MB HGT N.H. ADDED 15FEB95 127 -1 9075 9575 E05 04 96HR ECMWF 500MB HGT N.H. ADDED 15FEB95 127 -1 9076 9576 E06 04 120HR ECMWF 500MB HGT N.H. CHANGED 15FEB95 127 -1 9077 9577 E07 04 144HR ECMWF 500MB HGT N.H. ADDED 15FEB95 127 -1 9078 9578 E08 04 00 HR ECMWF 500MB VORTICITY ADDED 15FEB95 127 -1 9079 9579 E09 04 24 HR ECMWF 500MB VORTICITY ADDED 15FEB95 127 -1 9080 9580 E10 04 48 HR ECMWF 500MB VORTICITY ADDED 15FEB95 127 -1 9081 9581 E11 04 72 HR ECMWF 500MB VORTICITY ADDED 15FEB95 127 -1 9050 9550 E12 04 00HR ECMWF MSL PRESSURE ADDED 09FEB95 127 -1 9051 9551 E13 04 24HR ECMWF MSL PRESSURE ADDED 09FEB95 127 -1 9052 9552 E14 04 48HR ECMWF MSL PRESSURE ADDED 09FEB95 127 -1 9053 9553 E15 04 72HR ECMWF MSL PRESSURE ADDED 09FEB95 127 -1 9054 9554 E16 04 96HR ECMWF MSL PRESSURE ADDED 09FEB95 127 -1 9055 9555 E17 04 120HR ECMWF MSL PRESSURE CHANGES 15FEB95 127 -1 9056 9556 E18 04 144HR ECMWF MSL PRESSURE ADDED 15FEB95 127 -1 9057 9557 E19 04 00HR ECMWF 1000-500MB THK ADDED 15FEB95 127 -1 9058 9558 E20 04 24HR ECMWF 1000-500MB THK ADDED 15FEB95 127 -1 9059 9559 E21 04 48HR ECMWF 1000-500MB THK ADDED 15FEB95 127 -1 9060 9560 E22 04 72HR ECMWF 1000-500MB THK ADDED 15FEB95 127 -1 9064 9564 E23 04 00HR ECMWF RELATIVE HUMIDITY ADDED 15FEB95 127 -1 9065 9565 E24 04 24HR ECMWF RELATIVE HUMIDITY ADDED 15FEB95 127 -1 9066 9566 E25 04 48HR ECMWF RELATIVE HUMIDITY ADDED 15FEB95 127 -1 9067 9567 E26 04 72HR ECMWF RELATIVE HUMIDITY ADDED 15FEB95 127 -1 7180 7680 XYZ 04 100MB ANAL HEIGHTS N.HEM. 127 -1 7145 7645 HDW 04 18-HR HI-LVL SIG WX E.MERC(MANUAL) 127 -1 7172 7672 XYZ 04 24-HR 150MB HEIGHTS N.HEM. 127 -1 7175 7675 XYZ 04 24-HR PE 150MB ISOTACHS N.HEM. 127 -1 7146 7646 HEW 04 24-HR HI-LVL SIG WX E.MERC(MANUAL) 127 -1 7141 7641 HPW 04 18-HR HI-LVL SIG WX P.MERC(MANUAL) 127 -1 7142 7642 HUW 04 24-HR HI-LVL SIG WX P.MERC(MANUAL) 127 -1 7143 7643 H3W 04 18-HR HI-LVL SIG WX W.MERC(MANUAL) 127 -1 7144 7644 H4W 04 24-HR HI-LVL SIG WX W.MERC(MANUAL) 127 -1 7540 7540 FL1 04 18-30 HR TSTM PROB FCST TDL GRID S 084 -1 7541 7541 FL2 04 30-42 HR TSTM PROB FCST TDL GRID S 084 -1 6030 6530 XYZ 04 PE ANAL LIFTED INDEX N.HEM. 10-23TEM 127 -1 6020 6520 IAD 04 PE ANAL MEAN REL HUM N.HEM. TAN111389 7127 -1 6031 6531 XYZ 04 12-HR PE LIFTED INDEX N.HEM. 10-23TEM 127 -1 6021 6521 ICD 04 12-HR PE MEAN REL HUM N.HEM. TAN111389 7127 -1 6022 6522 IED 04 24-HR PE MEAN REL HUM N.HEM. TAN111389 7127 -1 6032 6532 XYZ 04 24-HR PE LIFTED INDEX N.HEM. 10-23TEM 127 -1 6132 6632 IEZ 04 24-HR PE 850-500MB THICKNESS N.HEM. TAN111389 7127 -1 6023 6523 IGD 04 36-HR PE MEAN REL HUM N.HEM. TAN111389 7127 -1 6033 6533 XYZ 04 36-HR PE LIFTED INDEX N.HEM. 10-23TEM 127 -1 5062 5562 INL 04 00-HR 500MB LIFTED INDEX N.AM CH092394 127 -1 6024 6524 IID 04 48-HR SPEC AVG REL HUM N.H. TAN111389 7127 -1 6076 6576 IJD 04 60-HR GFS MEAN REL HUM N.H. TAN111389 7127 -1 6073 6573 ITD 04 72-HR RELATIVE HUMIDITY N. H GFS C100694 7127 -1 6074 6574 IVD 04 96-HR RELATIVE HUMIDITY N.H GFS C100694 7127 -1 6075 6575 IXD 04 120-HR RELATIVE HUMIDITY N.H GFS C100694 7127 -1 5015 5515 I0D 03 00HR 700MB MEAN RELATIVE HUMIDITY N. AM C092994 127 -1 5030 5530 I0L 03 00HR LIFTED INDEX RGL N.AM C092994 8127 -1 7095 7595 I0P 03 PRECIPITABLE WATER CNTRS N.AM. 127 -1 7093 7593 XYZ 03 AVG REL H SFC-500MB CNTRS N.A. 10-23TEM 112085 127 -1 7091 7591 XYZ 03 INITIAL LIFTED/K INDEX CNTRS N.AM. 10-23TEM 127 -1 5020 5520 I05 03 00HR 700MB MEAN RELATIVE HUMIDITY NAM CH092794 127 -1 5082 5582 I1D 03 06-HR SURFACE-500MB RELATIVE HUMIDITY (RGL) 127 -1 5016 5516 I2D 03 12-HR 700MB MEAN RELATIVE HUMIDITY N.AM.C092994 127 -1 5031 5531 I2L 03 12-HR LIFTED INDEX NGM N.AM C092994 8127 -1 5021 5521 I25 03 12-HR 700MB MEAN RELATIVE HUMIDITY NAMCH092394 127 -1 5083 5583 I3D 03 18-HR SURFACE-500MB RELATIVE HUMIDITY NAM 093094 127 -1 5017 5517 I4D 03 24-HR 700MB MEAN RELATIVE HUMIDITY C093094 127 -1 8022 8522 I4K 04 24 HR TRAJ K-INDEX N.AM. 127 -1 5032 5532 I4L 03 24-HR LIFTED INDEX NGM N. AM C093094 8127 -1 5022 5522 I45 03 24-HR 700MB RELATIVE HUMIDITY N AM CH092394 127 -1 5018 5518 I6D 03 36-HR 700MB MEAN RELATIVE HUMIDITY N.AM C100394 127 -1 5033 5533 I6L 03 36-HR LIFTED INDEX N.AM. C100394 8127 -1 5023 5523 I65 03 36-HR 700MB RELATIVE HUMIDITY N AM CH092394 127 -1 5019 5519 I8D 03 48-HR 700MB MEAN RELATIVE HUMIDITY N. AM C100394 127 -1 5034 5534 I8L 03 48-HR LIFTED INDEX N.AM. C100394 8127 -1 5024 5524 I85 03 48-HR 700MB MEAN RELATIVE HUMIDITY N AM C100494 127 -1 6050 6550 KAK 04 1000-500MB THICKNESS PE ANAL N.HEM. TAN111389 7127 -1 6051 6551 KCK 04 12-HR PE 1000-500MB THICKNESS N.HEM. TAN111389 7127 -1 6052 6552 KEK 04 24-HR PE 1000-500MB THICKNESS N.HEM. TAN111389 7127 -1 6053 6553 KGK 04 36-HR PE 1000-500MB THICKNESS N.HEM. TAN111389 7127 -1 6054 6554 KIK 04 48-HR PE 1000-500MB THICKNESS N.HEM. TAN111389 7127 -1 6063 6563 KTK 04 72HR 1000-500MB THICKNESS GFS N.H C100694 7127 -1 6064 6564 KVK 04 96HR 1000-500MB THICKNESS GFS N.H C100694 7127 -1 6065 6565 KXK 04 120HR 1000-500MB THICKNESS N.H GFS C100694 7127 -1 5055 5555 K0K 03 00HR 1000-500MB THICKNESS RGL N.A. C092994 127 -1 5050 5550 K03 03 1000-500MB THICKNESS ANALYSIS N.A.K0K-3CH092794 127 -1 5060 5560 K1K 03 06-HR 1000-500MB THICKNESS RGL N. A C092994 127 -1 5056 5556 K2K 03 12-HR 1000-500MB THICKNESS RGL N.A. C092994 127 -1 5051 5551 K23 03 12-HR 1000-500MB THICKNESS N. AM CH092394 127 -1 5061 5561 K3K 03 18-HR 1000-500MB THICKNESS RGL NA. C093094 127 -1 5057 5557 K4K 03 24-HR 1000-500MB THICKNESS NGM NA. C093094 127 -1 5052 5552 K43 03 24-HR 1000-500MB THICKNESS N. AM CH092394 127 -1 5058 5558 K6K 03 36-HR 1000-500MB THICKNESS. N. AM C100394 127 -1 5053 5553 K63 03 36-HR 1000-500MB THICKNESS N. AM CH092394 127 -1 5059 5559 K8K 03 48-HR 1000-500MB THICKNESS N. AM C100394 127 -1 5054 5554 K83 03 48-HR 1000-500MB THICKNESS N. AM CH092394 127 -1 6055 6555 KJK 04 60-HR GFS THKNS N.H. ADD022185 K9-J TAN111389 7127 -1 5039 5539 LDS 03 LIGHTNING DETECTION SUMMARY 127 -1 7140 7640 LEW 03 24-HR L0W-LVL SIG WX N.H.(MANUAL) 127 -1 5141 5641 LTM 04 WINDS ALOFT 2ND STANDARD LVL N.A. REST 121285 127 -1 7096 7596 L0A 03 FREEZING LEVEL DATA N.AM. 127 -1 5025 5525 L0D 03 BOUNDARY LAYER RELATIVE HUMIDITY ANALYSIS NA RGL 8127 -1 7097 7597 L0F 03 FREEZING LEVEL CNTRS N.AM. 127 -1 5040 5540 L0M 03 00-HR RGL BOUNDARY LAYER WINDS(NA) RE-USE 112085 127 -1 5067 5567 L1M 03 06-HR RGL BOUNDARY LAYER WINDS(NA) ADDED 052087 127 -1 5261 5761 L1Z 03 06-HR NGM MOISTURE CONVERGENCE(NA) ADDED 041988 8127 -1 5026 5526 L2D 03 12-HR BOUNDARY LAYER RELATIVE HUMIDITY (RGL)NA 8127 -1 5041 5541 L2M 03 12-HR RGL BOUNDARY LAYER WINDS(NA) RE-USE 112085 127 -1 7220 7482 L2W 03 12-HR LO-LVL WX DEP. N.A.(INTERGRAPH) 127 -1 6258 6758 L2W 03 12-HR LO-LVL WX DEP. N.A.(INTERGRAPH) 127 -1 7221 7721 L2G 03 12-HR LO-LVL TURB. N.A.(MANUAL) 127 -1 7222 7486 L2F 03 12-HR LO-LVL FRZG. LVL N.A.(INTERGRAPH) 127 -1 6266 6766 L2F 03 12-HR LO-LVL FRZG. LVL N.A.(INTERGRAPH) 127 -1 7271 7470 L2P 03 12-HR PCPN INSTANTANEOUS N.A.(INTERGRAPH) 127 -1 6294 6794 L2P 03 12-HR PCPN INSTANTANEOUS N.A.(INTERGRAPH) 127 -1 5262 5762 L2Z 03 12-HR NGM MOISTURE CONVERGENCE(NA) ADDED 041988 8127 -1 5068 5568 L3M 03 18-HR RGL BOUNDARY LAYER WINDS(NA) ADDED 052087 127 -1 5260 5760 L3Z 03 18-HR NGM MOISTURE CONVERGENCE(NA) ADDED 041089 8127 -1 5027 5527 L4D 03 24-HR BOUNDARY LAYER RELATIVE HUMIDITY NAM 8127 -1 5042 5542 L4M 03 24-HR RGL BOUNDARY LAYER WINDS(NA) RE-USE 112085 127 -1 7223 7483 L4W 03 24-HR LO-LVL WX DEP. N.A.(INTERGRAPH) 127 -1 6260 6760 L4W 03 24-HR LO-LVL WX DEP. N.A.(INTERGRAPH) 127 -1 7225 7487 L4F 03 24-HR LO-LVL FRZG. LVL. N.A.(INTERGRAPH) 127 -1 6268 6768 L4F 03 24-HR LO-LVL FRZG. LVL. N.A.(INTERGRAPH) 127 -1 7272 7471 L4P 03 24-HR PCPN INSTANTANEOUS N.A.(INTERGRAPH) 127 -1 6296 6796 L4P 03 24-HR PCPN INSTANTANEOUS N.A.(INTERGRAPH) 127 -1 5028 5528 L6D 03 36-HR RGL BND LAYER REL HUM N.A. TAN111389 8127 -1 5043 5543 L6M 03 36-HR RGL BOUNDARY LAYER WINDS(NA) 127 -1 7273 7474 L6P 03 36-HR CLDS&PCPN INSTANTS N.A.(INTERGRAPH) 127 -1 5029 5529 L8D 03 48-HR RGL BND LAYER REL HUM N.A. TAN111389 8127 -1 5044 5544 L8M 03 48-HR RGL BOUNDARY LAYER WINDS(NA) RE-USE 112085 127 -1 7274 7475 L8P 03 48-HR CLDS&PCPN INSTANTS N.A.(INTERGRAPH) 127 -1 5064 5564 L8U 04 48-HR LFM BND U GRIDDED FIELD(N.AM.) 127 -1 5069 5569 L8V 04 48-HR LFM BND V GRIDDED FIELD(N.AM.) 127 -1 7020 7520 NE2 04 06-12 HR TSTM PROB FCST TDL GRID ER & CR 112 -1 7021 7521 NE3 04 12-18 HR TSTM PROB FCST TDL GRID ER & CR 112 -1 7022 7522 NE4 04 18-24 HR TSTM PROB FCST TDL GRID ER & CR 112 -1 7023 7523 NE5 04 24-30 HR TSTM PROB FCST TDL GRID ER & CR 112 -1 6090 6590 0O1 04 12H GFS SWH (SIGNIFICANT WAVE HEIGHT) NH 108 -1 6094 6594 0O2 04 12H GFS PRIM DR (PRIMARY WAVE DIRECTION) NH 108 -1 6098 6598 0O3 04 12H GFS PRIM PR (PRIMARY WAVE PERIOD) NH 072 -1 7024 7524 OK2 04 06-12 HR TSTM PROB FCST TDL GRID ER,CR & SR 116 -1 7025 7525 OK3 04 12-18 HR TSTM PROB FCST TDL GRID ER,CR & SR 116 -1 7026 7526 OK4 04 18-24 HR TSTM PROB FCST TDL GRID ER,CR & SR 116 -1 7027 7527 OK5 04 24-30 HR TSTM PROB FCST TDL GRID ER,CR & SR 116 -1 6091 6591 0P1 04 24H GFS SWH (SIGNIFICANT WAVE HEIGHT) NH 108 -1 6095 6595 0P2 04 24H GFS PRIM DR (PRIMARY WAVE DIRECTION) NH 108 -1 6099 6599 0P3 04 24H GFS PRIM PR (PRIMARY WAVE PERIOD) NH 072 -1 6092 6592 0R1 04 48H GFS SWH (SIGNIFICANT WAVE HEIGHT) NH 108 -1 6096 6596 0R2 04 48H GFS PRIM DR (PRIMARY WAVE DIRECTION) NH 108 -1 6100 6600 0R3 04 48H GFS PRIM PR (PRIMARY WAVE PERIOD) NH 072 -1 6093 6593 0T1 04 72H GFS SWH (SIGNIFICANT WAVE HEIGHT) NH 108 -1 6097 6597 0T2 04 72H GFS PRIM DR (PRIMARY WAVE DIRECTION) NH 108 -1 6101 6601 0T3 04 72H GFS PRIM PR (PRIMARY WAVE PERIOD) NH 072 -1 7007 7507 PAA 03 6-HR SFC ANAL PLOT N.HEM. 127 -1 7004 7504 PNA 04 NORTH AFRICA & VICINITY PLOT N.H. ADDED 092586 068 -1 7092 7592 P0D 03 AVG REL HUMIDITY SFC - 500 MB DATA N.AM. 127 -1 7090 7590 P01 03 INITIAL LIFTED/K INDEX DATA N.AM. 127 -1 7212 7712 P04 04 OBSERVED TIDE DEPARTURE PLOTS(N.AM) 127 -1 7094 7594 P03 03 PRECIPABLE WATER DATA N.AM. 127 -1 7080 7580 P0X 04 12 HR OBS MAX TMPS ENDING 00Z N.AM. 127 -1 7081 7581 P0N 04 12 HR OBS MIN TMPS ENDING 12Z N.AM. 127 -1 7102 7602 P0S 04 24HR SFC SNOW COVER SUMMARY N.AM. 127 -1 7177 7677 P0P 04 24HR SFC PRECIP SUMMARY N.AM. 127 -1 7001 7501 P0A 03 3-HR SFC ANAL PLOT N.AM. 127 -1 7211 7711 P0W 03 3-HR SFC WX DEPICTION PLOT(NORTH AM) 127 -1 7082 7582 P4X 04 24-HR MOS MX/MN TEMP PLOTTED DATA N.AM. 127 -1 7083 7583 P6X 04 36-HR MOS MX/MN TEMP PLOTTED DATA N.AM. 127 -1 7084 7584 P8X 04 48-HR MOS MX/MN TEMP PLOTTED DATA N.AM. 127 -1 7086 7586 P9X 04 60-HR MOS MX/MN TEMP PLOTTED DATA N.AM. 127 -1 7392 7892 64E 04 24-HR SFC SOLAR ENERGY PLOT. N.A. 116 -1 7390 7890 64H 04 24-HR HOURS SUNSHINE PLOT N.A. 116 -1 7393 7893 68E 04 48-HR SFC SOLAR ENERGY PLOT. N.A. 116 -1 7391 7891 68H 04 48-HR HOURS SUNSHINE PLOT N.A. 116 -1 8203 8703 WSL 04 3HR FCST UPPER AIR SOUNDINGS SLC UT 072 -1 8202 8702 SSE 04 3HR FCST UPPER AIR SOUNDINGS SEP TX 068 -1 7200 7700 TAA 04 OBSERVED TROPOPUASE PLOTTED WINDS N.AM. 127 -1 7195 7695 TEG 04 24-HR PE TROP VRT WND SHR N.HEM. TAN111389 7127 -1 7300 7300 T00 04 CHECKOUT N.AM. 96 -1 7301 7301 T01 04 CHECKOUT N.AM. 96 -1 7302 7302 T02 04 CHECKOUT N.AM. 96 -1 7303 7303 T03 04 CHECKOUT N.AM. 96 -1 7304 7304 T04 04 CHECKOUT N.AM. 96 -1 7305 7305 T05 04 CHECKOUT N.AM. 96 -1 7306 7306 T06 04 CHECKOUT N.AM. 96 -1 7307 7307 T07 04 CHECKOUT N.AM. 96 -1 7308 7308 T08 04 CHECKOUTN.AM. 96 -1 7309 7309 T09 04 CHECKOUT N.AM. 96 -1 7038 7038 T06 04 DAY 1 TRAVEL MAP 23Z N.AM. 080 -1 7039 7039 T07 04 DAY 2 TRAVEL MAP 23Z N.AM. 080 -1 7538 7538 T08 04 DAY 1 TRAVEL MAP 11Z N.AM. 080 -1 7539 7539 T09 04 DAY 2 TRAVEL MAP 11Z N.AM. 080 -1 7310 7310 T10 04 CHECKOUT-N.H. 096 -1 7311 7311 T11 04 CHECKOUT N.H. 96 -1 7312 7312 T12 04 CHECKOUT N.H. 96 -1 7313 7313 T13 04 CHECKOUT N.H. 96 -1 7314 7314 T14 04 CHECKOUT N.H. 96 -1 7315 7315 T15 04 CHECKOUT N.H. 96 -1 7316 7316 T16 04 CHECKOUT N.H. 96 -1 7317 7317 T17 04 CHECKOUT U.S. 96 -1 7318 7318 T18 04 CHECKOUT U.S. 96 -1 7319 7319 T19 04 CHECKOUT U.S. 96 -1 7320 7320 T20 04 CHECKOUT N.H.-A. 96 -1 7321 7321 T21 04 CHECKOUT N.H.-A. 96 -1 7322 7322 T22 04 CHECKOUT N.H.-A. 96 -1 7323 7323 T23 04 CHECKOUT N.H.-A. 96 -1 7324 7324 T24 04 CHECKOUT N.H.-A. 96 -1 7325 7325 T25 04 CHECKOUT N.H.-A. 96 -1 7326 7326 T26 04 CHECKOUT N.H.-A 96 -1 7327 7327 T27 04 CHECKOUT N.H.-A. 96 -1 7328 7328 T28 04 CHECKOUT N.H.-A. 96 -1 7329 7329 T29 04 CHECKOUT N.H.-A. 96 -1 7330 7330 T30 04 CHECKOUT WH-M 96 -1 7331 7331 T31 04 CHECKOUT WH-M 96 -1 7332 7332 T32 04 CHECKOUT WH-M 96 -1 7333 7333 T33 04 CHECKOUT WH-M 96 -1 7334 7334 T34 04 CHECKOUT WH-M 96 -1 7335 7335 T35 04 CHECKOUT WH-M 127 -1 7336 7336 T36 04 CHECKOUT WH-M 96 -1 7337 7337 T37 04 CHECKOUT WH-M 96 -1 7338 7338 T38 04 CHECKOUT WH-M 96 -1 7339 7339 T39 04 CHECKOUT WH-M 96 -1 7340 7340 T40 04 CHECKOUT EH-M 96 -1 7341 7341 T41 04 CHECKOUT EH-M 96 -1 7342 7342 T42 04 CHECKOUT EH-M 96 -1 7343 7343 T43 04 CHECKOUT EH-M 96 -1 7344 7344 T44 04 CHECKOUT EH-M 96 -1 7345 7345 T45 04 CHECKOUT EHKF-M 96 -1 7346 7346 T46 04 CHECKOUT EH-M 96 -1 7347 7347 T47 04 CHECKOUT EH-M 96 -1 7348 7348 T48 04 CHECKOUT EH-M 96 -1 7349 7349 T49 04 CHECKOUT EH-M 96 -1 7350 7350 T50 04 CHECKOUT PAC-M 96 -1 7351 7351 T51 04 CHECKOUT PAC-M 96 -1 7352 7352 T52 04 CHECKOUT PAC-M 96 -1 7353 7353 T53 04 CHECKOUT PAC-M 96 -1 7354 7354 T54 04 CHECKOUT PAC-M 96 -1 7355 7355 T55 04 CHECKOUT PAC-M 96 -1 7356 7356 T56 04 CHECKOUT PAC-M 96 -1 7357 7357 T57 04 CHECKOUT PAC-M 96 -1 7358 7358 T58 04 CHECKOUT PAC-M 96 -1 7359 7359 T59 04 CHECKOUT PAC-M 96 -1 7360 7360 T60 04 CHECKOUT NO BGN 96 -1 7361 7361 T61 04 CHECKOUT NO BGN 96 -1 7362 7362 T62 04 CHECKOUT NO BGN 96 -1 7363 7363 T63 04 CHECKOUT NO BGN 96 -1 7364 7364 T64 04 CHECKOUT NO BGN 96 -1 7365 7365 T65 04 CHECKOUT NO BGN 96 -1 7366 7366 T66 04 CHECKOUT NO BGN 96 -1 7367 7367 T67 04 CHECKOUT NO BGN 96 -1 7368 7368 T68 04 CHECKOUT NO BGN 96 -1 7369 7369 T69 04 CHECKOUT NO BGN 96 -1 9021 9521 U01 04 00HR UKMET 500MB HGT N.H. ADDED 14FEB95 127 -1 9022 9522 U02 04 24HR UKMET 500MB HGT N.H. ADDED 14FEB95 127 -1 9023 9523 U03 04 48HR UKMET 500MB HGT N.H. ADDED 14FEB95 127 -1 9024 9524 U04 04 72HR UKMET 500MB HGT N.H. ADDED 14FEB95 127 -1 9025 9525 U05 04 96HR UKMET 500MB HGT N.H. ADDED 14FEB95 127 -1 9026 9526 U06 04 120HR UKMET 500MB HGT N.H. CHANGED 14FEB95 127 -1 9027 9527 U07 04 144HR UKMET 500MB HGT N.H. ADDED 14FEB95 127 -1 9028 9528 U08 04 00 HR UKMET 500MB VORTICITY ADDED 14FEB95 127 -1 9029 9529 U09 04 24 HR UKMET 500MB VORTICITY ADDED 14FEB95 127 -1 9030 9530 U10 04 48 HR UKMET 500MB VORTICITY ADDED 14FEB95 127 -1 9031 9531 U11 04 72 HR UKMET 500MB VORTICITY ADDED 14FEB95 127 -1 9000 9500 U12 04 00HR UKMET MSL PRESSURE ADDED 09FEB95 127 -1 9001 9501 U13 04 24HR UKMET MSL PRESSURE ADDED 09FEB95 127 -1 9002 9502 U14 04 48HR UKMET MSL PRESSURE ADDED 09FEB95 127 -1 9003 9503 U15 04 72HR UKMET MSL PRESSURE ADDED 09FEB95 127 -1 9004 9504 U16 04 96HR UKMET MSL PRESSURE ADDED 14FEB95 127 -1 9005 9505 U17 04 120HR UKMET MSL PRESSURE CHANGED 14FEB95 127 -1 9006 9506 U18 04 144HR UKMET MSL PRESSURE ADDED 14FEB95 127 -1 9007 9507 U19 04 00HR UKMET 1000-500MB THK ADDED 14FEB95 127 -1 9008 9508 U20 04 24HR UKMET 1000-500MB THK ADDED 14FEB95 127 -1 9009 9509 U21 04 48HR UKMET 1000-500MB THK ADDED 14FEB95 127 -1 9010 9510 U22 04 72HR UKMET 1000-500MB THK ADDED 14FEB95 127 -1 9014 9514 U23 04 00HR UKMET RELATIVE HUMIDITY ADDED 14FEB95 127 -1 9015 9515 U24 04 24HR UKMET RELATIVE HUMIDITY ADDED 14FEB95 127 -1 9016 9516 U25 04 48HR UKMET RELATIVE HUMIDITY ADDED 14FEB95 127 -1 9017 9517 U26 04 72HR UKMET RELATIVE HUMIDITY ADDED 14FEB95 127 -1 7060 7560 WR1 04 00-06HR THNDRSTRM PROB FCST. WR1 DEFINED 042987 127 -1 7061 7561 WR2 04 06-12HR THNDRSTRM PROB FCST. WR2 DEFINED 051286 127 -1 7062 7562 WR3 04 12-18HR THNDRSTRM PROB FCST. WR3 DEFINED 051286 127 -1 7063 7563 WR4 04 18-24HR THNDRSTRM PROB FCST. WR4 DEFINED 051286 127 -1 7064 7564 WR5 04 24-30HR THNDRSTRM PROB FCST. WR5 DEFINED 042987 127 -1 6208 6708 XYZ 04 84-HR PE 500MB HEIGHTS N.H. 5KH DELETED 052985 127 -1 6209 6709 XYZ 03 96-HR PE 500MB HEIGHTS N.H. 5K0 DELETED 052985 127 -1 6224 6724 XYZ 04 GFS 00HR 500MB VORTICITY N.H. 5NV DEFINED 052985 127 -1 6225 6725 XYZ 04 GFS 24HR 500MB VORTICITY N.H. 5PV DEFINED 052985 127 -1 6226 6726 XYZ 04 GFS 48HR 500MB VORTICITY N.H. 5RV DEFINED 052985 127 -1 6227 6727 XYZ 04 GFS 72HR 500MB VORTICITY N.H. 5TV DEFINED 052985 127 -1 6228 6728 XYZ 04 GFS 96HR 500MB VORTICITY N.H. 5VV DEFINED 052985 127 -1 6229 6729 XYZ 04 GFS 120HR 500MB VORTICITY N.H.5XV DEFINED 052985 127 -1 6430 6930 XYZ 04 18-HR PE TROP STRM N.HEM. 127 -1 6431 6931 XYZ 04 18-HR PE TROP ISOTACHS N.HEM. 127 -1 6432 6932 XYZ 04 18-HR PE TROP PRESSURE N.HEM. 127 -1 6433 6933 XYZ 04 18-HR PE TROP VERT WIND SHEAR N.HEM. 127 -1 7191 7691 XYZ 04 18-HR PE TROP PRESSURE N.HEM PFAX 127 -1 7194 7694 XYZ 04 18-HR PE TROP VRT WND SHR N.HEM. PFAX 127 -1 7192 7692 XYZ 04 24-HR PE TROP PRESSURE N.HEM. 127 -1 7408 7908 XYZ 04 24-HR MOS SOLAR RADIATION CNTRS. N.AM. 072 -1 7396 7896 XYZ 04 24-HR SFC SOLAR ENERGY CNTRS.N.A. ADDED 040285 116 -1 7410 7910 XYZ 04 48-HR MOS SOLAR RADIATION CNTRS. N.AM. 072 -1 7397 7897 XYZ 04 48-HR SFC SOLAR ENERGY CNTRS.N.A. ADDED 040285 116 -1 7184 7684 XYZ 04 100MB ANAL ISOTACHS N.HEM. HAY DEL 062084 100 -1 7131 7631 P2W 04 12 HR LFM MOS SFC WIND/CLD. 127 -1 7132 7632 P3W 04 18 HR LFM MOS SFC WIND/CLD. 127 -1 7133 7633 P4W 04 24 HR LFM MOS SFC WIND/CLD. 127 -1 7134 7634 P5W 04 30 HR LFM MOS SFC WIND/CLD. 127 -1 7072 7572 04X 04 24-HR MOS MX/MN TEMP ISOTHERM N.A. 04X REP 102793 127 -1 7076 7576 09X 04 60-HR MOS MX/MN TEMP ISOTHERM N.A. 09X REP 102793 127 -1 7050 7550 XYZ 03 INITIAL 500MB HEIGHTS N.HEM. 5TH DEL 032785 9127 -1 7060 7560 XYZ 03 INITIAL 500MB VORTICITY N.HEM. 5TV DEL 032785 9127 -1 6000 6500 0AI 04 00-HR GFS MSL PRESS N.H. ADDED 110287 127 -1 6001 6501 0CI 04 12-HR PE MSL PRESS N.HEM. 127 -1 6002 6502 0EI 04 24-HR PE MSL PRESS N.HEM. 127 -1 6003 6503 0GI 04 36-HR PE MSL PRESS N.HEM. 127 -1 6004 6504 0II 04 48-HR PE MSL PRESS N.HEM. 127 -1 6005 6505 0JI 04 60-HR SPEC SFC ISOBARS.N.H. ADDED 022185 127 -1 7431 7931 0OF 04 12-HR PE MOS POF N.AM. 127 -1 6082 6582 0OJ 04 12-HR NOW ATLAN OCNSFC WIND N.AM REUSE 092388 100 -1 6086 6586 0OM 04 12-HR NOW PACIF OCNSFC WIND N.AM REUSE 092388 076 -1 6011 6511 0OQ 04 12-HR PE PRECIP N.HEM. 127 -1 7432 7932 0PF 04 24-HR PE MOS POF N.AM. 127 -1 6083 6583 0PJ 04 24-HR NOW ATLAN OCNSFC WIND N.AM REUSE 092388 100 -1 6087 6587 0PM 04 24-HR NOW PACIF OCNSFC WIND N.AM REUSE 092388 076 -1 7422 7922 0PP 04 24-HR PE MOS POP FOR 12 HRS. N.AM. 127 -1 6012 6512 0PQ 04 24-HR PE PRECIP N.HEM. 127 -1 7402 7902 0PX 04 24-HR PE MOS MX/MN TEMP ISOTHERM N.AM. 127 -1 6013 6513 0QQ 04 36-HR PE PRECIP N.HEM. 127 -1 7403 7903 0QX 04 36-HR PE MOS MX/MN TEMP ISOTHERM N.AM. 127 -1 7423 7923 0QP 04 36-HR PE MOS POP FOR 12 HRS. N.AM. 127 -1 7433 7933 0QF 04 36-HR PE MOS POF N.AM. 127 -1 7434 7934 0RF 04 48-HR PE MOS POF N.AM. 127 -1 6084 6584 0RJ 04 48-HR NOW ATLAN OCNSFC WIND N.AM REUSE 092388 100 -1 6088 6588 0RM 04 48-HR NOW PACIF OCNSFC WIND N.AM REUSE 092388 076 -1 7424 7924 0RP 04 48-HR PE MOS POP FOR 12 HRS. N.AM. 127 -1 6014 6514 0RQ 04 48-HR PE PRECIP N.HEM. 127 -1 7404 7904 0RX 04 48-HR PE MOS MX/MN TEMP ISOTHERM N.AM. 127 -1 7406 7906 0SX 04 60-HR PE MOS MX/MN TEMP ISOTHERM N.AM. 127 -1 7426 7926 0SP 04 60-HR PE MOS POP FOR 12 HRS. N.AM. 127 -1 8031 8531 0TG 04 12-36 HR TSTM PBLTY N.A. ADDED 052595 127 -1 6043 6543 0TI 04 72-HR SEA LEVEL PRESSURE N.H C100694 127 -1 6085 6585 0TJ 04 72-HR NOW ATLAN OCNSFC WIND N.AM REUSE 092388 100 -1 6089 6589 0TM 04 72-HR NOW PACIF OCNSFC WIND N.AM REUSE 092388 076 -1 8035 8535 0TO 04 12-36 HR SEVERE TSTM PBLTY N.A. ADDED 052595 127 -1 6044 6544 0VI 04 96-HR SEA LEVEL PRESSURE GFS N.H C1000694 127 -1 6045 6545 0XI 04 120-HR SEA LEVEL PRESSURE GFS N.H C100694 127 -1 8020 8520 0WD 04 24 HR TRAJ SFC DEWPOINTS N.AM. 127 -1 8021 8521 0WJ 04 24 HR TRAJ SFC PARCEL TRAJ N.AM. 116 -1 8120 8620 0W1 04 24 HR TRAJ SFC PARCEL TRAJ N.AM. 127 -1 8040 8540 TJS 04 24 HR TRAJ SFC PARCEL TRAJ.E-W US FOR AWIPS 127 -1 5005 5505 00I 03 00HR MEAN SEA LEVEL PRESSURE N.AM NGM C092994 127 -1 5116 5616 00L 03 00H SURFACE LIFTED INDEX N.AM C092994 RGL 127 -1 5000 5500 004 03 MEAN SEA LEVEL PRESSURE ANALYSIS NAM CH092794 127 -1 5086 5586 01E 04 0-6HR OBJECTIVE QPF-TDL ADDED 041387 127 -1 7078 7578 01O 03 2-6 HR SEVR WX FCST N.A.(INTRG) 010-01O 082984 127 -1 7077 7577 01G 04 2-6 HR TSTM FCST N.AM.(INTRG) 011-01G 082984 127 -1 5065 5565 01I 03 06-HR MEAN SEA LEFEL PRESSURE N. AM (RGL) 127 -1 5045 5545 01Q 03 06-HR RGL(NGM ) QPF N.A. ADDED 070887 8127 -1 5089 5589 02E 04 3-9HR OBJECTIVE QPF-TDL ADDED 041387 127 -1 8030 8530 02G 04 06-24 HR TSTM PBLTY N.A. ADDED 052695 127 -1 5006 5506 02I 03 12-HR MEAN SEA LEVEL PRESSURE RGL N.AM C092994 127 -1 5117 5617 02L 03 12-HR SURFACE LIFTED INDEX N. AM (RGL) 127 -1 8034 8534 02O 04 06-24 HR SEVERE TSTM PBLTY N.A. ADDED 052595 127 -1 5046 5546 02Q 03 12-HR RGL(NGM ) QPF N.A. RE-USE 112085 8127 -1 5011 5511 022 03 12-HR QUANTITATIVE PRECIPITATION FORECAST NAM 127 -1 5001 5501 024 03 12-HR MEAN SEA LEVEL PRESSURE NA CH092394 127 -1 8032 8532 03G 04 24-48 HR TSTM PBLTY N.A ADDED 052595 127 -1 5066 5566 03I 03 18-HR MEAN SEA LEVEL PRESSURE NAM C093094 127 -1 8036 8536 03O 04 24-48 HR SEVERE TSTM PBLTY N.A. ADDED 052595 127 -1 5085 5585 03Q 03 18-HR RGL(NGM ) QPF N.A. ADDED 070887 8127 -1 8029 8529 04G 04 24 HR MOS TSTM PBLTY N.A. 127 -1 5007 5507 04I 03 24-HR MEAN SEA LEVEL PRESSURE N. AM C093094 127 -1 5118 5618 04L 03 24-HR SURFACE LIFTED INDEX N.AM C093094 127 -1 8028 8528 04O 04 24 HR MOS SEVERE TSTM PBLTY N.A. 127 -1 7202 7702 04P 04 24-HR MOS POP 12-HR PERIOD N.AM. 127 -1 5047 5547 04Q 03 24-HR RGL(NGM ) QPF N.A. RE-USE 112085 8127 -1 5012 5512 042 03 24-HR QUANTITATIVE PRECIPITATION FORECAST NAM 127 -1 5002 5502 044 03 24-HR MEAN SEA LEVEL PRESSURE N AM CH092394 127 -1 8033 8533 05G 04 36-60 HR TSTM PBLTY N.A. ADDED 052595 127 -1 8037 8537 05O 04 36-60 HR SEVERE TSTM PBLTY N.A. ADDED 052595 127 -1 7103 7603 06G 04 24HR THUNDERSTORM OUTLOOK N.AM. 116 -1 5008 5508 06I 03 36-HR MEAN SEA LEVEL PRESSURE N. AM C100394 127 -1 5119 5619 06L 03 36-HR RGL SFC LI N.AM. ADDED 170191 127 -1 7104 7604 06O 03 24HR SEVERE LOCAL STORM OUTLOOK N.AM. 116 -1 7203 7703 06P 04 36-HR MOS POP 12-HR PERIOD N.AM. 127 -1 5048 5548 06Q 03 36-HR RGL(NGM ) QPF N.A. RE-USE 112085 8127 -1 7073 7573 06X 04 36-HR MOS MX/MN TEMP ISOTHERM N.A. REST 091284 96 -1 5013 5513 062 03 36-HR QUANTITATIVE PRECIPITATION FORECAST NAM 127 -1 5003 5503 064 03 36-HR MEAN SEA LEVEL PRESSURE N. AM CH092694 127 -1 5009 5509 08I 03 48-HR MEAN SEA LEVEL PRESSURE N. AM C100394 127 -1 7204 7704 08P 04 48-HR MOS POP 12-HR PERIOD N.AM. 127 -1 5049 5549 08Q 03 48-HR RGL(NGM ) QPF N.A. RE-USE 112085 8127 -1 7074 7574 08X 04 48-HR MOS MX/MN TEMP ISOTHERM N.A. REST 091284 96 -1 5014 5514 082 03 48-HR QUANTITATIVE PRECIPITATION FORECAST NAM 127 -1 5004 5504 084 03 48-HR MEAN SEA LEVEL PRESSURE N AM CH092394 127 -1 7206 7706 09P 04 60-HR MOS POP 12-HR PERIOD N.AM. 127 -1 7161 7661 2DH 04 18-HR PE 250MB HGTS N.HEM. 127 -1 7164 7664 2DY 04 18-HR PE 250MB ISOTACHS N.HEM. 116 -1 7162 7662 2E4 04 24-HR PE 250MB HGTS N.HEM. 127 -1 7165 7665 2E5 04 24-HR PE 250MB ISOTACHS N.HEM. 127 -1 5391 5891 20M 04 WINDS ALOFT 34000 FT. N.AM. 127 -1 5410 5910 20T 04 200MB TEMPERATURE ANALYSIS NA CH092394 127 -1 5440 5940 20A 04 200MB 2-DOT ANAL PLOT DATA N.AM. 127 -1 5390 5890 20B 03 250MB 2-DOT ANAL PLOT DATA N.AM. 127 -1 5376 5876 200 03 250MB ISOTACH ANALYSIS N.A. NAM C09FEB95 127 -1 5355 5855 201 03 00-HR 250MB HEIGHT RGL N.A.. C092994 127 -1 5365 5865 202 03 00-HR 250MB TEMPERATURE RGL N.AM C092994 127 -1 5375 5875 203 03 00-HR 250MB ISOTACH RGL N.A. C092994 127 -1 5356 5856 206 03 250MB HEIGHT ANALYSIS N.A.. NAM C09FEB95 127 -1 5366 5866 208 03 250MB TEMPERATURE ANANLYSIS NA NAM C09FEB95 127 -1 5352 5852 241 03 24-HR 250MB HEIGHT N.AM. C093094 127 -1 7135 7635 24M 04 FL340 24-HR WINDS/TEMPS ADD 052186 068 -1 5372 5872 24Y 03 24-HR 250MB ISOTACH NGM N.AM. C093094 127 -1 6300 6800 3AH 04 300MB PE ANAL HEIGHTS N.HEM. TAN111389 7127 -1 6320 6820 3AY 04 300MB PE ANAL ISOTACHS N.HEM. TAN111389 7127 -1 6321 6821 3CY 04 12HR FCST 300MB ISOTACHS N.HEM ADDED 05JAN93 7127 -1 6324 6824 3DY 04 18HR FCST 300MB ISOTACHS N.HEM ADDED 05JAN93 7127 -1 6302 6802 3EH 04 24-HR PE 300MB HEIGHTS N.HEM. TAN111389 7127 -1 6322 6822 3EY 04 24-HR PE 300MB ISOTACHS N.HEM. TAN111389 7127 -1 6303 6803 3GH 04 36-HR PE 300MB HEIGHTS N.HEM. TAN111389 7127 -1 6323 6823 3GY 04 36-HR PE 300MB ISOTACHS N.HEM. TAN111389 7127 -1 5300 5800 30H 04 300MB HEIGHT ANALYSIS N.AM. CH092394 127 -1 5320 5820 30Y 04 300MB ISOTACH ANALYSIS N.AM. CH092394 127 -1 5340 5840 30A 03 300MB 2-DOT ANAL PLOT DATA N.AM. 127 -1 7152 7652 XYZ 04 24-HR PE 400MB HEIGHTS N.HEM. 127 -1 7155 7655 XYZ 04 24-HR PE 400MB WINDS N.HEM. 127 -1 5291 5791 40M 04 WINDS ALOFT 24000 FT. N.AM. 127 -1 7066 7566 5AC 04 24-HR 500MB HEIGHT CHANGE N.HEM. 127 -1 6200 6700 5AH 04 500MB PE ANAL HEIGHTS N.HEM. 127 -1 6210 6710 XYZ 04 500MB PE ANAL TEMPS N.HEM. 10-23TEM 127 -1 6230 6730 5AV 04 500MB PE ANAL VORTICITY N.HEM. TAN111389 7127 -1 6201 6701 5CH 04 12-HR PE 500MB HEIGHTS N.HEM. 127 -1 6231 6731 5CV 04 12-HR PE 500MB VORTICITY N.HEM. TAN111389 7127 -1 6221 6721 XYZ 04 12-HR 500MB ISOTACHS N.HEM. 10-23TEM 127 -1 6202 6702 5EH 04 24-HR PE 500MB HEIGHTS N.HEM. 127 -1 6232 6732 5EV 04 24-HR PE 500MB VORTICITY N.HEM. TAN111389 7127 -1 6222 6722 XYZ 04 24-HR PE 500MB ISOTACHS N.HEM. 10-23TEM 127 -1 6203 6703 5GH 04 36-HR PE 500MB HEIGHTS N.HEM. 127 -1 6233 6733 5GV 04 36-HR PE 500MB VORTICITY N.HEM. TAN111389 7127 -1 6223 6723 XYZ 04 36-HR PE 500MB ISOTACHS N.HEM. 10-23TEM 127 -1 6204 6704 5IH 04 48-HR PE 500MB HEIGHTS N.HEM. 127 -1 6234 6734 5IV 04 48-HR PE 500MB VORTICITY N.HEM. TAN111389 7127 -1 6207 6707 5KH 04 72-HR GFS 500MB HEIGHTS N.H. 5J0_5KH 110287 127 -1 6209 6709 5K0 04 96-HR PE 500MB HEIGHTS N.HEM. 127 -1 6199 6699 5LC 04 108HR 500MB WAVES 0-5 HGTS/DN. REVISED 01/11/85 127 -1 6198 6698 5LM 04 108HR 500MB WAVES 0-5 HGTS. REVISED 011185 127 -1 6191 6691 5SH 04 60HR 500MB HEIGHT N.H. C100694 127 -1 6192 6692 5TH 04 72HR 500MB HEIGHT N.H. C100694 127 -1 6193 6693 5UH 04 84HR 500MB HEIGHT GFS N.H C100694 127 -1 6194 6694 5VH 04 96HR 500MB HEIGHT GFS N.H C100694 127 -1 6195 6695 5WH 04 108HR 500MB HEIGHT GFS N.H. C100694 127 -1 6196 6696 5XH 04 120HR 500MB HEIGHT GFS N.H. C100694 127 -1 6197 6697 5YH 04 132HR 500MB HEIGHT GFS N.H. C100694 127 -1 6216 6716 5T5 04 00HR 500 MB HEIGHT WAVES 0-5 N. H C100594 127 -1 6217 6717 5T6 04 00HR 500 MB HEIGHT-WAVE2 N. HEM. 127 -1 6169 6669 5ZC 04 GFS 6-10 DAY MEAN DEPART N.H. ADDED 062785 127 -1 6168 6668 5ZH 04 GFS 6-10 DAY MEAN HEIGHT N.H. ADDED 062785 127 -1 5240 5740 50A 03 500MB 2-DOT ANAL PLOT DATA N.AM. 127 -1 5205 5705 50H 03 00HR 500MB HEIGHT NGM N.A. C092994 127 -1 5210 5710 508 03 500MB TEMPERATURE ANALYSIS NA C092394 127 -1 5235 5735 50V 03 00HR 500MB VORTICITY NGM N.A. C092994 127 -1 5200 5700 506 03 500MB HEIGHT ANALYSIS N.A. 50H_506 CH092394 127 -1 5230 5730 507 03 00HR 500MB VORTICITY N.A. 50V_507 CH092794 127 -1 5198 5698 51H 03 06-HR 500MB HEIGHT N.A. (NGM) C092994 127 -1 5206 5706 52H 03 12-HR 500MB HEIGHT RGL N.A. C092994 127 -1 5228 5728 51V 03 06-HR 500MB VORTICITY N.A. (NGM) C092994 127 -1 5236 5736 52V 03 12-HR 500MB VORTICITY NGM N.A. C092994 127 -1 5201 5701 526 03 12-HR 500MB HEIGHT N. AM CH092394 127 -1 5231 5731 527 03 12-HR 500MB VORTICITY N. AM CH092394 127 -1 5199 5699 53H 03 18-HR 500MB HEIGHT NGM N.A. C093094 127 -1 5207 5707 54H 03 24-HR 500MB HEIGHT NGM N.A. C093094 127 -1 5229 5729 53V 03 18-HR 500MB VORTICITY NGM N.A. C093094 127 -1 5237 5737 54V 03 24-HR 500MB VORTICITY NGM N.A. C093094 127 -1 5202 5702 546 03 24-HR 500MB HEIGHT N. AM CH092394 127 -1 5232 5732 547 03 24-HR 500MB VORTICITY N. AM CH092394 127 -1 5208 5708 56H 03 36-HR 500MB HEIGHT N. AM C100394 127 -1 5238 5738 56V 03 36-HR 500MB VORTICITY N. AM C100394 127 -1 5203 5703 566 03 36-HR 500MB HEIGHT N. AM CH092394 127 -1 5233 5733 567 03 36-HR 500MB VORTICITY N. AM CH092394 127 -1 5209 5709 58H 03 48-HR 500MB HEIGHT N.A. C100394 127 -1 5239 5739 58V 03 48-HR 500MB VORTICITY N.A. C100394 127 -1 5204 5704 586 03 48-HR 500MB HEIGHT N. AM CH092394 127 -1 5234 5734 587 03 48-HR 500MB VORTICITY N. AM CH092394 127 -1 6206 6706 5JH 04 60-HR GFS 500MB HEIGHT N.H. 59H_5JH 110287 127 -1 6235 6735 5JV 04 60-HR GFS VORTICITY H.H. 59V_5JV TAN111389 7127 -1 7383 7883 6AJ 04 SAT. GULF STRM. ANAL. SPECIAL 127 -1 7370 7370 XYZ 04 COOLING DEGREE DAYS FROM PREVIOUS WEEK N.AM. 127 -1 7373 7373 XYZ 04 HTG DEGREE DAYS FROM PREVIOUS WEEK N.AM. 127 -1 7297 7797 6KA 04 WKLY ANLYS DROUGHT/WETNESS INDEX N.AM.(INTRG) 127 -1 7298 7798 6KB 04 WKLY ANLYS CROP MOISTURE INDEX N.AM.(INTRG) 127 -1 7371 7371 XYZ 04 COOLING DEGREE DAYS FM JAN 1 1941-1978 N.AM. 127 -1 7374 7374 6MI 04 HTG DEGREE DAYS FM JULY 1 1941-1978 N.AM. 127 -1 7385 7885 6TI 04 BEARING SEA ICE ANAL. SPECIAL 127 -1 8000 8500 6TY 04 00 HR GMX SWH PDR N.A. 068 -1 8001 8501 6UY 04 12 HR GMX SWH PDR N.A. 068 -1 8002 8502 6VY 04 24 HR GMX SWH PDR N.A. 068 -1 8003 8503 6WY 04 36 HR GMX SWH PDR N.A. 068 -1 8004 8504 6ZY 04 48 HR GMX SWH PDR N.A. 068 -1 7381 7881 60E 04 EXPR. SAT. CLD. E. COAST SPECIAL 127 -1 7382 7882 60W 04 EXPR. SAT. CLD. W. COAST SPECIAL 127 -1 7384 7884 60I 04 SAT. GT. LAKES OBSRV. SPECIAL 127 -1 5241 5741 60M 04 WINDS ALOFT 14000 FT. N.AM. 127 -1 5176 5676 7UV 04 12-HR 700MB VERTICAL VELOCITY NA CH092394 127 -1 5177 5677 7WV 04 24-HR 700MB VERTICAL VELOCITY N AM CH092394 127 -1 5178 5678 7YV 04 36-HR 700MB VERTICAL VELOCITY N AM CH092394 127 -1 5179 5679 7ZV 04 48-HR 700MB VERTICAL VELOCITY N AM CH092394 127 -1 7394 7894 64P 04 24-HR PCNT POSSIBLE SUNSHINE CNTR.N.A. ADD 040285 127 -1 7395 7895 68P 04 48-HR PCNT POSSIBLE SUNSHINE CNTR.N.A. ADD 040285 127 -1 7372 7372 XYZ 04 COOLING DEGREE DAYS FM JAN 1 1976-1977 127 -1 7375 7375 XYZ 04 HTG DEGREE DAYS FM JULY 1 1976-1977 N.AM. 127 -1 6180 6680 XYZ 04 6-HR PE VERT VEL N.HEM. 10-23TEMP 127 -1 6181 6681 7CV 04 12-HR PE VERT VEL N.HEM. TAN111389 7127 -1 6182 6682 7EV 04 24-HR PE VERT VEL N.HEM. TAN111389 7127 -1 6152 6652 7EH 04 24-HR PE 700MB HEIGHTS N.HEM. TAN111389 7127 -1 6172 6672 XYZ 04 24-HR PE 700MB ISOTACHS N.HEM. 10-23TEM 127 -1 6153 6653 7GH 04 36-HR SPEC 700MB HGTS N.H. TAN111389 7127 -1 6183 6683 7GV 04 36-HR PE VERT VEL N.HEM. TAN111389 7127 -1 6154 6654 7IH 04 48-HR SPEC 700MB HGTS N.H. TAN111389 7127 -1 6184 6684 7IV 04 48-HR SPEC 700MB VV N.H. TAN111389 7127 -1 6155 6655 7JH 04 60-HR GFS 700 HT N.H. ADD 79-7 TAN111389 7127 -1 6185 6685 7JV 04 60-HR GFS 700 VV N.H. ADD 79V-7JV TAN111389 7127 -1 7378 7878 7MH 04 30 DAY MEAN 700 MB HGTS N.AM. XXX=79H CHG.022185 127 -1 8025 8525 7WD 04 24 HR TRAJ 700 DEWPOINTS N.AM. 127 -1 8026 8526 7WJ 04 24 HR TRAJ 700 PARCEL TRAJ. N.AM. 116 -1 8121 8621 7W1 04 24 HR TRAJ 700 PARCEL TRAJ. N.AM. 127 -1 8041 8541 TJ7 04 24 HR TRAJ 700 PARCEL TRAJ.E-W US FOR AWIPS 127 -1 5070 5570 7WG 04 RGL 24 HR TRAJ 700 VERT. DISPLACEMENT N.AM. 127 -1 5071 5571 7XG 04 RGL 36 HR TRAJ 700 VERT. DISPLACEMENT N.AM. 127 -1 5072 5572 7YG 04 RGL 48 HR TRAJ 700 VERT. DISPLACEMENT N.AM. 127 -1 5155 5655 70H 03 00HR 700MB HEIGHT N.AM. C092994 127 -1 5160 5660 708 03 700MB TEMPERATURE ANALYSIS NA. C092394 127 -1 5185 5685 70V 03 700MB RGL ANAL VERT VEL N.AM ADDED 112085 8127 -1 5190 5690 70A 03 700MB 2-DOT ANAL PLOT DATA N.AM. 127 -1 5156 5656 72H 03 12-HR 700MB HEIGHT RGL N.AM. C092994 127 -1 5186 5686 72V 03 12-HR RGL 700MB VERT VEL N.AM RE-USE 112085 8127 -1 5157 5657 74H 03 24-HR 700MB HEIGHT NGM N.AM. C093094 127 -1 5187 5687 74V 03 24-HR RGL 700MB VERT VEL N.AM RE-USE 112085 8127 -1 5158 5658 76H 03 36-HR 700MB HEIGHT N.AM. C100394 127 -1 5188 5688 76V 03 36-HR RGL 700MB VERT VEL N.AM. RE-USE 112085 8127 -1 5159 5659 78H 03 48-HR 700MB HEIGHT N.AM. C100394 127 -1 5189 5689 78V 03 48-HR RGL 700MB VERT VEL N.AM. RE-USE 112085 8127 -1 7377 7877 79J 04 30 DAY MEAN STORM TRACKS N.AM. 127 -1 6105 6605 8IH 04 48-HR GFS 850 MB HEIGHTS N.H. CHANGED09FEB95 7127 -1 6114 6614 8IT 04 48-HR GFS 850 MB TEMPS N.H. TAN111389 7127 -1 6106 6606 8JH 04 60-HR GFS 850 MB HEIGHTS N.H. TAN111389 7127 -1 6116 6616 8JT 04 60-HR GFS 850 MB TEMPS N.H. TAN111389 7127 -1 8023 8523 8WT 04 24 HR TRAJ 850 TMPS N.AM. 127 -1 8024 8524 8WJ 04 24 HR TRAJ 850 PARCEL TRAJ N.AM. 116 -1 8122 8622 8W1 04 24 HR TRAJ 850 PARCEL TRAJ N.AM. 127 -1 8042 8542 TJ8 04 24 HR TRAJ 850 PARCEL TRAJ.E-W US FOR AWIPS 127 -1 5140 5640 80A 03 850MB 2-DOT ANAL PLOT DATA N.AM. 127 -1 5130 5630 80H 03 00-HR 850MB TEMPERATURE RGL N. AM C092994 127 -1 5135 5635 80T 03 00-HR 850MB TEMPERATURE RGL N. AM C092994 127 -1 5105 5605 806 03 850MB HEIGHT ANALYSIS NA. 80H_806 CH092394 127 -1 5115 5615 808 03 850MB TEMPERATURE ANALYSIS NA. CH092394 127 -1 5131 5631 82H 03 12-HR 850MB HEIGHT N.AM RGL C092994 127 -1 5136 5636 82T 03 12-HR 850MB TEMPERATURE N.AM RGL C092994 127 -1 5101 5601 826 03 12-HR 850MB HEIGHT N. AM. CH092394 127 -1 5111 5611 828 03 12-HR 850MB TEMPERATURE N. AM CH092394 127 -1 5132 5632 84H 03 24-HR 850MB HEIGHT NGM N.AM. C093094 127 -1 5137 5637 84T 03 24-HR 850MB TEMPERATURE N.AM C093094 127 -1 5102 5602 846 03 24-HR 850MB HEIGHT N. AM CH092394 127 -1 5112 5612 848 03 24-HR 850MB TEMPERATURE N. AM CH092394 127 -1 5133 5633 86H 03 36-HR 850MB HEIGHT N.AM. C100394 127 -1 5103 5603 866 03 36-HR 850MB HEIGHT N. AM CH092394 127 -1 5138 5638 86T 03 36-HR 850MB TEMPERATURE N. AM C100394 127 -1 5113 5613 868 03 36-HR 850MB TEMPERATURE N. AM CH092394 127 -1 5134 5634 88H 03 48-HR 850MB HEIGHT N.AM. C100394 127 -1 5104 5604 886 03 48-HR 850MB HEIGHT N.A. 10-23TEM C100494 127 -1 5139 5639 88T 03 48-HR 850MB TEMPERATURE N. AM C100394 127 -1 5114 5614 888 03 48-HR 850MB TEMPERATURE N AM C100494 127 -1 5080 5580 9AM 03 00-HR SURFACE GEOSTROPHIC WINDS(N.AM) 127 -1 5081 5581 9AV 04 00-HR SURFACE GEOSTROPHIC VORT.(N.AM 116 -1 7000 7500 9AC 04 12-HR SURFACE PRESSURE CHANGE N. HEM 127 -1 7005 7505 9AI 03 6-HR SFC ANAL ISOBARS N.HEM. 127 -1 7006 7506 9AA 03 6-HR SFC ANAL ISOBARS(INTERMED.) N.HEM. 127 -1 7009 7509 9AF 03 6-HR SFC ANAL FRONTS N.HEM.(MANUAL) 127 -1 9999 9999 9D0 03 SPECIAL DROUGHT BULLETINS FRM CAC (INTERGRAPH) 127 -1 9999 9999 9D1 03 SPECIAL DROUGHT BULLETINS FRM CAC (INTERGRAPH) 127 -1 9999 9999 9D2 03 SPECIAL DROUGHT BULLETINS FRM CAC (INTERGRAPH) 127 -1 9999 9999 9D3 03 SPECIAL DROUGHT BULLETINS FRM CAC (INTERGRAPH) 127 -1 9999 9999 9D4 03 SPECIAL DROUGHT BULLETINS FRM CAC (INTERGRAPH) 127 -1 9999 9999 9D5 03 SPECIAL DROUGHT BULLETINS FRM CAC (INTERGRAPH) 127 -1 9999 9999 9D6 03 SPECIAL DROUGHT BULLETINS FRM CAC (INTERGRAPH) 127 -1 9999 9999 9D7 03 SPECIAL DROUGHT BULLETINS FRM CAC (INTERGRAPH) 127 -1 9999 9999 9D8 03 SPECIAL DROUGHT BULLETINS FRM CAC (INTERGRAPH) 127 -1 9999 9999 9D9 03 SPECIAL DROUGHT BULLETINS FRM CAC (INTERGRAPH) 127 -1 9999 9999 9EE 03 6HR QPF-PD3 (INTERGRAPH) 127 -1 9999 9999 9FE 03 6HR QPF-PD4 (INTERGRAPH) 127 -1 7241 7241 9JH 04 DAY 3 SFC FRONTS/ISOBARS N.H.(INTERGRAPH) 127 -1 7242 7242 9KH 04 DAY 4 SFC FRONTS/ISOBARS N.H.(INTERGRAPH) 127 -1 7243 7243 9LH 04 DAY 5 SFC FRONTS/ISOBARS N.H.(INTERGRAPH) 127 -1 6246 6746 9MT 04 30 DAY TMP PROBABILITY N.AM.(INTERGRAPH) 127 -1 6247 6747 9ME 04 30 DAY TOTAL PCPN PROB. N.AM.(INTERGRAPH) 127 -1 7380 7880 9MS 04 30 DAY PRECIPITATION ANOM. N.AM.(MANUAL)DON'T USE 127 -1 9999 9999 9PW 03 24HR MARINE SIG WX (INTERGRAPH) 108 -1 9999 9999 9RW 03 36HR MARINE SIG WX (INTERGRAPH) 108 -1 9999 9999 9TW 03 72HR MARINE SIG WX (INTERGRAPH) 108 -1 7250 7250 90X 04 DAILY NORM MX-TMPS N.A.(MANUAL) 127 -1 7254 7254 90N 04 DAILY NORM MN-TMPS N.A.(MANUAL) 127 -1 7018 7018 90R 03 HRLY RADAR SUMMARY CONTOURS N.A. (OSO) 127 -1 7019 7019 90S 03 HRLY RADAR SUMMARY LABELS N.A. (OSO) 127 -1 7003 7503 90C 04 12-HR SFC PRESS. CHANGE N.AM. 127 -1 7008 7508 90F 03 3-HR SFC ANAL FRONTS N.AM.(INTERGRAPH) 127 -1 7002 7502 90I 03 3-HR SFC ANAL ISOBARS N.AM.(INTRG) 127 -1 7110 7610 90W 03 3-HR SFC WX DEPICTION PACIFIC(MANUAL) 127 -1 7210 7710 90W 03 3-HR SFC WX DEPICTION ANAL(NORTH AM) 127 -1 7280 7280 90T 04 6-10 DAY NORMAL TEMPS N.AM. 127 -1 7261 7468 92F 03 12-HR SFC FRONTS/ISOBARS N.A.(INTERGRAPH) 127 -1 6288 6788 92F 03 12-HR SFC FRONTS/ISOBARS N.A.(INTERGRAPH) 127 -1 7291 7791 XYZ 04 12-HR AIR STAGNATION N.A.(INTERGRAPH) 127 -1 7295 7795 92O 03 12-HR SELS SVR WX OUTLOOK N.AM. 127 -1 7235 7466 91E 03 6-12 HR QPF N.A.(INTERGRAPH) 127 -1 7230 7461 92E 03 6-12 HR QPF N.A.(INTERGRAPH) 127 -1 7207 7207 93P 04 DAY 3 FCST MIN,MAX TEMP AND POP WITH DN 127 -1 7231 7462 93E 03 12-18 HR QPF N.A. (INTERGRAPH) 127 -1 7232 7463 93S 03 12-HR HEAVY SNOW TAU=18 N.A.(INTERGRAPH) 127 -1 7208 7208 94P 04 DAY 4 FCST MIN,MAX TEMP AND POP WITH DN(INTRG) 127 -1 7236 7467 94E 03 EXCESSIVE RNFL PTN OUTLK. N.A. (INTERGRAPH) 127 -1 7233 7464 94Q 03 24-HR QPF DAY1 12Z-12Z N.A.(INTERGRAPH) 127 -1 7262 7469 94F 03 24-HR SFC FRONTS/ISOBARS N.A.(INTERGRAPH) 127 -1 6290 6790 94F 03 24-HR SFC FRONTS/ISOBARS N.A.(INTERGRAPH) 127 -1 7292 7792 XYZ 04 24-HR AIR STAGNATION N.A.(INTERGRAPH) 127 -1 7296 7796 94O 04 CONVECTIVE OUTLOOK DAY 1 127 -1 7209 7209 95P 04 DAY 5 MIN,MAX TEMP AND POP WITH DN(INTRG) 127 -1 7244 7244 95E 04 5 DAY TOTAL PRECIP N.A.(INTERGRAPH) 127 -1 7245 7245 95B 04 5 DAY MEAN MIN-TMP DN N.A.(INTERGRAPH) 127 -1 7246 7246 95A 04 5 DAY MEAN MAX-TMP DN N.A.(INTERGRAPH) 127 -1 7285 7785 96C 04 6-10 DAY MEAN 500 MB HGT ANOMALY N.H. ADD 05JAN93 127 -1 7283 7283 96E 04 6-10 DAY TOTAL PCPN N.A.(INTERGRAPH) 127 -1 7263 7472 96F 03 36-HR SFC FRONTS/ISOBARS N.A.(INTERGRAPH) 127 -1 7284 7784 96H 04 6-10 DAY MEAN 500 MB HGTS N.H. ADDED 05JAN93 127 -1 7216 7216 96P 04 DAY 6 MIN,MAX TEMP AND POP WITH DN(INTRG) 127 -1 7293 7793 XYZ 04 36-HR AIR STAGNATION N.A.(INTERGRAPH) 127 -1 7281 7281 96T 04 6-10 DAY MEAN TEMP ANOMALY N.A.(INTERGRAPH) 127 -1 7217 7217 97P 04 DAY 7 MIN,MAX TEMP AND POP WITH DN(INTRG) 127 -1 7234 7465 98Q 03 24-HR QPF DAY2 12Z-12Z N.A.(INTERGRAPH) 127 -1 7264 7473 98F 03 48-HR SFC FRONTS/ISOBARS N.A.(INTERGRAPH) 127 -1 7294 7794 XYZ 04 48-HR AIR STAGNATION N.A.(INTERGRAPH) 127 -1 7299 7799 98O 04 CONVECTIVE OUTLOOK DAY 2 127 -1 6248 6748 99T 04 90 DAY TMP PROBABILITY N.AM. (INTERGRAPH) 127 -1 6249 6749 99P 04 90 DAY PRECIP. PROB. N.AM. (INTERGRAPH) 127 -1 5145 5645 B1U 04 06-HR LFM BNDY LYR U WND (GRIDDED) ADDED 070887 080 -1 5147 5647 B2U 04 12-HR LFM BNDY LYR U WND (GRIDDED) ADDED 070887 080 -1 5146 5646 B1V 04 06-HR LFM BNDY LYR V WND (GRIDDED) ADDED 070887 080 -1 5148 5648 B2V 04 12-HR LFM BNDY LYR V WND (GRIDDED) ADDED 070887 080 -1 5074 5574 L1W 04 06-HR LFM PRECIP WATER (GRIDDED) ADDED 040387 080 -1 5078 5578 L2W 04 12-HR LFM PRECIP WATER (GRIDDED) ADDED 040387 080 -1 5077 5577 11D 04 06-HR LFM 1000MB DEW-PT(GRIDDED) ADDED 040387 080 -1 5144 5644 12D 04 12-HR LFM 1000MB DEW-PT(GRIDDED) ADDED 070887 080 -1 5075 5575 11H 04 06-HR LFM 1000MB HEIGHT(GRIDDED) ADDED 040387 080 -1 5142 5642 12H 04 12-HR LFM 1000MB HEIGHT(GRIDDED) ADDED 070887 080 -1 5076 5576 11T 04 06-HR LFM 1000MB TEMP (GRIDDED) ADDED 040387 080 -1 5143 5643 12T 04 12-HR LFM 1000MB TEMP (GRIDDED) ADDED 070887 080 -1 5250 5750 50H 04 00-HR LFM 500MB HEIGHT(GRIDDED) ADDED 040387 080 -1 5251 5751 51H 04 06-HR LFM 500MB HEIGHT(GRIDDED) ADDED 040387 080 -1 5252 5752 52H 04 12-HR LFM 500MB HEIGHT(GRIDDED) ADDED 040387 080 -1 5253 5753 53H 04 18-HR LFM 500MB HEIGHT(GRIDDED) ADDED 040387 080 -1 5254 5754 54H 04 24-HR LFM 500MB HEIGHT(GRIDDED) ADDED 040387 080 -1 5255 5755 55H 04 30-HR LFM 500MB HEIGHT(GRIDDED) ADDED 040387 080 -1 5256 5756 56H 04 36-HR LFM 500MB HEIGHT(GRIDDED) ADDED 040387 080 -0 AFOS PLOT SUBSET/PIL LIST TO FOLLOW 80 PRODUCTS DEFINED 04-02-85 -1 7177 7677 XYZ 04 18-HR PE 150MB PLOTTED TEMPS N.HEM. 127 -1 7178 7678 XYZ 04 24-HR PE 150MB PLOTTED TEMPS N.HEM. 127 -1 7187 7687 XYZ 04 100MB ANAL PLOTTED TEMPS N.HEM. HAT DEL 062084 100 -1 7197 7697 XYZ 04 18-HR PE TROP PLOTTED TEMPS N.HEM. 127 -1 7198 7698 XYZ 04 24-HR PE TROP PLOTTED TEMPS N.HEM. 127 -1 8221 8721 XYZ 04 18-HR 500MB PLOTTED TEMPS W.MERC 127 -1 8223 8723 XYZ 04 18-HR 500MB PLOTTED TEMPS PAC.MERC 127 -1 8222 8722 XYZ 04 18-HR 500MB PLOTTED TEMPS E.MERC 127 -1 8321 8821 XYZ 04 18-HR 300MB PLOTTED TEMPS W.MWEC 127 -1 8322 8822 XYZ 04 18-HR 300MB PLOTTED TEMPS E.MERC 127 -1 8421 8921 XYZ 04 18-HR 200MB PLOTTED TEMPS W.MWEC 127 -1 8225 8725 XYZ 04 24-HR 500MB PLOTTED TEMPS W.MERC 127 -1 8227 8727 XYZ 04 24-HR 500MB PLOTTED TEMPS PAC.MERC 127 -1 8226 8726 XYZ 04 24-HR 500MB PLOTTED TEMPS E.MERC 127 -1 8325 8825 XYZ 04 24-HR 300MB PLOTTED TEMPS W.MERC 127 -1 8326 8826 XYZ 04 24-HR 300MB PLOTTED TEMPS E.MERC 127 -1 8425 8925 XYZ 04 24-HR 200MB PLOTTED TEMPS W.MERC 127 -1 8426 8926 XYZ 04 24-HR 200MB PLOTTED TEMPS E.MERC 127 -1 8471 8971 XYZ 04 18-HR TROP PLOTTED TEMPS W.MERC 127 -1 8473 8973 XYZ 04 18-HR TROP PLOTTED TEMPS P.MERC 127 -1 8472 8972 XYZ 04 18-HR TROP PLOTTED TEMPS E.MERC 127 -1 8475 8975 XYZ 04 24-HR TROP PLOTTED TEMPS W.MERC 127 -1 8477 8977 XYZ 04 24-HR TROP PLOTTED TEMPS P.MERC 127 -1 8476 8976 XYZ 04 24-HR TROP PLOTTED TEMPS E.MERC 127 -1 8281 8781 XYZ 04 18-HR 400MB U W.MERC (GRIDDED) 127 -1 8283 8783 XYZ 04 18-HR 400MB U P.MERC (GRIDDED) 127 -1 8282 8782 XYZ 04 18-HR 400MB U E.MERC (GRIDDED) 127 -1 8291 8791 XYZ 04 18-HR 400MB V W.MERC (GRIDDED) 127 -1 8293 8793 XYZ 04 18-HR 400MB V P.MERC (GRIDDED) 127 -1 8292 8792 XYZ 04 18-HR 400MB V E.MERC (GRIDDED) 127 -1 8381 8881 XYZ 04 18-HR 250MB U W.MERC (GRIDDED) 127 -1 8383 8883 XYZ 04 18-HR 250MB U P.MERC (GRIDDED) 127 -1 8382 8882 XYZ 04 18-HR 250MB U E.MERC (GRIDDED) 127 -1 8391 8891 XYZ 04 18-HR 250MB V W.MERC (GRIDDED) 127 -1 8393 8893 XYZ 04 18-HR 250MB V P.MERC (GRIDDED) 127 -1 8392 8892 XYZ 04 18-HR 250MB V E.MERC (GRIDDED) 127 -1 8481 8981 XYZ 04 18-HR 150MB U W.MERC (GRIDDED) 127 -1 8483 8983 XYZ 04 18-HR 150MB U P.MERC (GRIDDED) 127 -1 8482 8982 XYZ 04 18-HR 150MB U E.MERC (GRIDDED) 127 -1 8491 8991 XYZ 04 18-HR 150MB V W.MERC (GRIDDED) 127 -1 8493 8993 XYZ 04 18-HR 150MB V P.MERC (GRIDDED) 127 -1 8492 8992 XYZ 04 18-HR 150MB V E.MERC (GRIDDED) 127 -1 8285 8785 XYZ 04 24-HR 400MB U W.MERC (GRIDDED) 127 -1 8287 8787 XYZ 04 24-HR 400MB U P.MERC (GRIDDED) 127 -1 8286 8786 XYZ 04 24-HR 400MB U E.MERC (GRIDDED) 127 -1 8295 8795 XYZ 04 24-HR 400MB V W.MERC (GRIDDED) 127 -1 8297 8797 XYZ 04 24-HR 400MB V P.MERC (GRIDDED) 127 -1 8296 8796 XYZ 04 24-HR 400MB V E.MERC (GRIDDED) 127 -1 8385 8885 XYZ 04 24-HR 250MB U W.MERC (GRIDDED) 127 -1 8387 8887 XYZ 04 24-HR 250MB U P.MERC (GRIDDED) 127 -1 8386 8886 XYZ 04 24-HR 250MB U E.MERC (GRIDDED) 127 -1 8395 8895 XYZ 04 24-HR 250MB V W.MERC (GRIDDED) 127 -1 8397 8897 XYZ 04 24-HR 250MB V P.MERC (GRIDDED) 127 -1 8396 8896 XYZ 04 24-HR 250MB V E.MERC (GRIDDED) 127 -1 8485 8985 XYZ 04 24-HR 150MB U W.MERC (GRIDDED) 127 -1 8487 8987 XYZ 04 24-HR 150MB U P.MERC (GRIDDED) 127 -1 8486 8986 XYZ 04 24-HR 150MB U E.MERC (GRIDDED) 127 -1 8495 8995 XYZ 04 24-HR 150MB V W.MERC (GRIDDED) 127 -1 8497 8997 XYZ 04 24-HR 150MB V P.MERC (GRIDDED) 127 -1 8496 8996 XYZ 04 24-HR 150MB V E.MERC (GRIDDED) 127 -1 7407 7907 XYZ 04 24-HR LFM MOS SOLAR RADIATION PLOT N.AM. 072 -1 7409 7909 XYZ 04 48-HR LFM MOS SOLAR RADIATION PLOT N.AM. 072 -1 7111 7611 XYZ 04 12-HR LFM MOS PCPN TYPE PLOT N.A. FOR 04F 082984 127 -1 7112 7612 XYZ 04 24-HR LFM MOS PCPN TYPE PLOT N.A. FOR 06F 082984 127 -1 7113 7613 XYZ 04 36-HR LFM MOS PCPN TYPE PLOT N.A. FOR 08F 082984 127 -1 7114 7614 XYZ 04 48-HR LFM MOS PCPN TYPE PLOT N.A. 127 -1 7167 7667 2DT 04 18-HR PE 250MB PLOTTED TEMPS N.HEM. 116 -1 7168 7668 2E6 04 24-HR PE 250MB PLOTTED TEMPS N.HEM. 127 -1 8422 8922 XYZ 04 18-HR 200MB PLOTTED TEMPS E.MERC 096 -1 8423 8923 XYZ 04 18-HR 200MB PLOTTED TEMPS PAC.MERC 120 -1 8427 8927 XYZ 04 24-HR 200MB PLOTTED TEMPS PAC.MERC. REST 011185 127 -1 8323 8823 XYZ 04 18-HR 300MB PLOTTED TEMPS PAC.MERC 088 -1 8327 8827 XYZ 04 24-HR 300MB PLOTTED TEMPS PAC.MERC 112 -1 7158 7658 XYZ 04 24-HR PE 400MB PLOTTED TEMPS N.HEM. 127 -1 7392 7892 64E 04 24-HR SFC SOLAR ENERGY PLOT. N.A. ADDED 040285 116 -1 7390 7890 64H 04 24-HR HOURS SUNSHINE PLOT N.A. ADDED 040285 116 -1 7393 7893 68E 04 48-HR SFC SOLAR ENERGY PLOT. N.A. ADDED 040285 116 -1 7391 7891 68H 04 48-HR HOURS SUNSHINE PLOT N.A. ADDED 040285 116 -1 7307 7307 T07 04 CHECKOUT N.AM. 96 -0 AFOS MERC SUBSET/PIL LIST TO FOLLOW 00 PRODUCTS DEFINED 90-01-03 diff --git a/util/fix/graph_ras2bity.header b/util/fix/graph_ras2bity.header deleted file mode 100755 index 17ef41f1fb..0000000000 --- a/util/fix/graph_ras2bity.header +++ /dev/null @@ -1,7 +0,0 @@ -PURERAST0015257600000000nh2500x 000069120000002700006912950906 -.filler .. filler ..filler .. filler .. -filler .. filler ..filler .. filler ..filler .. filler ..filler .. filler .. -filler .. filler ..filler .. filler ..filler .. filler ..filler .. filler .. -filler .. filler ..filler .. filler ..filler .. filler ..filler .. filler .. -filler .. filler ..filler .. filler ..filler .. filler ..filler .. filler .. -filler .. filler ..filler .. filler ..filler .. filler ..filler .. filler .. diff --git a/util/fix/graph_sixbitb.generic.f15 b/util/fix/graph_sixbitb.generic.f15 deleted file mode 100755 index b3723d7320..0000000000 --- a/util/fix/graph_sixbitb.generic.f15 +++ /dev/null @@ -1 +0,0 @@ -OPNL 1824H00Z 12 0 1 1OPN33 1 diff --git a/util/fix/graph_sixbitb.trpsfcmv.all b/util/fix/graph_sixbitb.trpsfcmv.all deleted file mode 100755 index 73227a6020..0000000000 --- a/util/fix/graph_sixbitb.trpsfcmv.all +++ /dev/null @@ -1,44 +0,0 @@ -IAREA 2 09 2600 -IAREA 1 09 2300 -IAREA 4 09 000 -IAREA 5 09 216 -IAREA 000002000003003450 -IAREA 2 11 800 -IAREA 1 11 4400 -IAREA 4 11 116 -IAREA 5 11 096 -IAREA 2 12 800 -IAREA 1 12 3600 -IAREA 4 12 116 -IAREA 5 12 096 -IAREA 2 13 800 -IAREA 1 13 2804 -IAREA 4 13 116 -IAREA 5 13 096 -IAREA 2 14 800 -IAREA 1 14 4400 -IAREA 4 14 032 -IAREA 5 14 096 -IAREA 2 15 800 -IAREA 1 15 3600 -IAREA 4 15 032 -IAREA 5 15 096 -IAREA 2 16 800 -IAREA 1 16 2800 -IAREA 4 16 032 -IAREA 5 16 096 -IAREA 2 17 800 -IAREA 1 17 4400 -IAREA 4 17 110 -IAREA 5 17 096 -IAREA 2 18 800 -IAREA 1 18 3600 -IAREA 4 18 110 -IAREA 5 18 096 -IAREA 2 19 800 -IAREA 1 19 2800 -IAREA 4 19 110 -IAREA 5 19 096 -BOX 1490 1390 4 16 -BOX 1490 2390 4 16 -BOX 1490 6290 4 16 diff --git a/util/fix/graph_sixbitb.trpsfcmv.t00z b/util/fix/graph_sixbitb.trpsfcmv.t00z deleted file mode 100755 index 6770cce569..0000000000 --- a/util/fix/graph_sixbitb.trpsfcmv.t00z +++ /dev/null @@ -1,8 +0,0 @@ -1RUN OPN3300Z 2 - SFC U 00HR SFC V 00HR SFC TEMPS00HR OPN33 POLARW-T 1 03 -3V0099 VFULL 2700 3825 0 0 00HR SFC PROG -3 D270 EAST 3656 3827 0 0 00HR SFC PROG -3 D186 WEST 3657 3801 0 0 00HR SFC PROG - SFC U 00HR SFC V 00HR SFC TEMPS00HR OPN33 POLARW-T 1 02 -3V0099 VFULL 0099 2031 0 0 00HR SFC PROG -3 H066 PACF 3658 3875 0 0 00HR SFC PROG diff --git a/util/fix/graph_sixbitb.trpsfcmv.t06z b/util/fix/graph_sixbitb.trpsfcmv.t06z deleted file mode 100755 index 6a2d0a7865..0000000000 --- a/util/fix/graph_sixbitb.trpsfcmv.t06z +++ /dev/null @@ -1,4 +0,0 @@ -1RUN OPN3300Z 1 - SFC U 00HR SFC V 00HR SFC TEMPS00HR OPN33 POLARW-T 1 2 -3V0099 VFULL 2701 3825 0 0 00HR SFC PROG -3 HO33 PACF 3659 3821 0 0 00HR SFC PROG diff --git a/util/fix/graph_sixbitb.trpsfcmv.t12z b/util/fix/graph_sixbitb.trpsfcmv.t12z deleted file mode 100755 index 319c4b0faa..0000000000 --- a/util/fix/graph_sixbitb.trpsfcmv.t12z +++ /dev/null @@ -1,8 +0,0 @@ -1RUN OPN3300Z 2 - SFC U 00HR SFC V 00HR SFC TEMPS18HR OPN33 POLARW-T 1 03 -3V0099 VFULL 2702 3825 0 0 00HR SFC PROG -3 D035 EAST 3668 3827 0 0 00HR SFC PROG -3 D280 WEST 3669 3801 0 0 00HR SFC PROG - SFC U 00HR SFC V 00HR SFC TEMPS18HR OPN33 POLARW-T 1 02 -3V0099 VFULL 0099 3835 0 0 00HR SFC PROG -3 H022 PACF 3670 3871 0 0 00HR SFC PROG diff --git a/util/fix/graph_sixbitb.trpsfcmv.t18z b/util/fix/graph_sixbitb.trpsfcmv.t18z deleted file mode 100755 index c9973edd4c..0000000000 --- a/util/fix/graph_sixbitb.trpsfcmv.t18z +++ /dev/null @@ -1,4 +0,0 @@ -1RUN OPN3300Z 1 - SFC U 00HR SFC V 00HR SFC TEMPS00HR OPN33 POLARW-T 1 2 -3V0099 VFULL 2704 3825 0 0 00HR SFC PROG -3 HO12 PACF 3671 3821 0 0 00HR SFC PROG diff --git a/util/fix/graph_sixbitb.wndanftf.t00z b/util/fix/graph_sixbitb.wndanftf.t00z deleted file mode 100755 index 926f9bb8c1..0000000000 --- a/util/fix/graph_sixbitb.wndanftf.t00z +++ /dev/null @@ -1,6 +0,0 @@ -1RUN OPN3300Z 2 - 150 U 18HR 150 V 18HR 150 TEMPS18HR OPN33 POLARW-T 1 1 -3V0099 VFULL 2927 0 0 0 18HR 150MB PROG - 150 U 18HR 150 V 18HR 150 TEMPS18HR OPN33 POLARW-T 1 1 -3V0099 VFULL 2929 0 0 0 18HR 150MB PROG - diff --git a/util/fix/graph_sixbitb.wndanftf.t12z b/util/fix/graph_sixbitb.wndanftf.t12z deleted file mode 100755 index 65f1f0b8bc..0000000000 --- a/util/fix/graph_sixbitb.wndanftf.t12z +++ /dev/null @@ -1,6 +0,0 @@ -1RUN OPN3300Z 2 - 150 U 18HR 150 V 18HR 150 TEMPS18HR OPN33 POLARW-T 1 1 -3V0099 VFULL 2977 0 0 0 18HR 150MB PROG - 150 U 18HR 150 V 18HR 150 TEMPS18HR OPN33 POLARW-T 1 1 -3V0099 VFULL 2979 0 0 0 18HR 150MB PROG - diff --git a/util/fix/graph_snd2forgn.names b/util/fix/graph_snd2forgn.names deleted file mode 100755 index 6b80c0f780..0000000000 --- a/util/fix/graph_snd2forgn.names +++ /dev/null @@ -1,320 +0,0 @@ -snd2forgn.names LAST UPDATED Thu Dec 28 11:08:09 EST 2000 Peter Henrichsen -These maps are made on the cray. - this member found on hp36 as: - /tmp_mnt/export/sgi73/peterhen/util/fix/ibm/graph_snd2forgn.names.dec28 - on IBM SP as - /nfsuser/g02/wx12ph/util/fix/graph_snd2forgn.names also in - /nwprod/util/fix/graph_snd2forgn.names - -SNDKEY DBDET TYPE FOREIGN NAME - -fax.radatanl FAXX radatanl.vae - -fax.fm1dotfx FAXX fm1dotfx.vae -fax.rgl2dotx PWWB_FAXX rgl2dotx.vag - -fax.mconv FAXX mconv.vag - -fax.raf06fx0 FAXX raf06fx0.vag -fax.raf18fx0 FAXX raf18fx0.vag -fax.raf18fx2 FAXX raf18fx2.vag -fax.raf36fx0 FAXX raf36fx0.vag -fax.raf36fx2 FAXX raf36fx2.vag -fax.rapfax00 FAXX rapfax00.vag -fax.rapfax12 FAXX rapfax12.vag -fax.rapfax24 FAXX rapfax24.vag -fax.rapfax36 FAXX rapfax36.vag -fax.rapfax48 FAXX rapfax48.vag -fax.ngmcgrd24 FAXX cgrdmp24.vag -fax.ngmcgrd48 FAXX cgrdmp48.vag -fax.ngmtjfax FAXX ngmtjfax.vag - -fax.gf12nhfx PWWB_FAXX gf12nhfx.vaf -fax.gf12shfx FAXX gf12shfx.vaf - -fax.smshem FAXX smshem.vaa - -fax.sst FAXX sst.vaa - -fax.smwave FAXX smwave.vaa - -fax.plot70mb PWWB_FAXX plot70mb.vaa - -fax.nam500_12hrchng FAXX nam500_12hrchng -fax.lfmfax00 FAXX lfmfax00.vae -fax.lfmvar00 FAXX lfmvar00.vae -faxnam00.oprnl140 FAXX lfmfax00.vae -faxnam00.oprnl120 FAXX lfmvar00.vae -fax.namfax12 FAXX namfax12.nam -fax.namvar12 FAXX namvar12.nam -faxnam12.oprnl140 FAXX namfax12.nam -faxnam12.oprnl120 FAXX namvar12.nam -fax.namfax24 FAXX namfax24.nam -fax.namvar24 FAXX namvar24.nam - -fax.gbpefx06 FAXX gbpefx06.vaf -fax.pfxgdas06 FAXX pfxgdas06.vaf - -fax.gbpefx18 FAXX gbpefx18.vaf -fax.pfxgdas18 FAXX pfxgdas18.vaf - -cgrdet24.nam FAXX cgrdet24.nam -cgrdet48.nam FAXX cgrdet48.nam - -cgrdnam24.nam FAXX cgrdet24.nam -cgrdnam48.nam FAXX cgrdet48.nam - -faxnam24.oprnl140 FAXX namfax24.nam -faxnam24.oprnl120 FAXX namvar24.nam -fax.namfax36 FAXX namfax36.nam -fax.namvar36 FAXX namvar36.nam -faxnam36.oprnl140 FAXX namfax36.nam -faxnam36.oprnl120 FAXX namvar36.nam - -fax.namfax48 FAXX namfax48.nam -fax.namvar48 FAXX namvar48.nam -faxnam48.oprnl140 FAXX namfax48.nam -faxnam48.oprnl120 FAXX namvar48.nam -fax.thndstrm FAXX thndstrm.vae -fax.fmplt250 PWWB fmplt250.vae - -fax.wndverfx PWWB wndverfx.vaa - -fax.acarmaps FAXX acarmaps.vae - -fax.fdfax FAXX fdfax.vae - -fax.fmprecip FAXX fmprecip.vae -fax.fmwdfcst FAXX fmwdfcst.vae -fax.popfaxv FAXX popfaxv.vae -fax.mxmnbkup FAXX mxmnbkup.vae -fax.solargrd FAXX solargrd.vae -fax.cwcvlfmv FAXX cwcvlfmv.vae -fax.tmpdwp FAXX tmpdwp.vae -fax.bndwnd FAXX bndwnd.vae -fax.trajfax FAXX trajfax.vae -fax.brknel FAXX brknel.vae - -fax.mrf48 FAXX mrf48.vam -fax.thck36hr FAXX thck36hr.vaa - - -fax.sh4wefax FAXX sh4wefax.vaa -fax.shwefx34 FAXX shwefx34.vam - -fax.shwefx5 FAXX shwefx5.vaa -fax.shvwefax FAXX shvwefax.vaa - -fax.brknlgfs FAXX brknlgfs.vaa -fax.extpefax FAXX extpefax.vaa - -fax.alaskanc FAXX alaskanc.vam -fax.midestrw FAXX midestrw.vam -fax.peprecip FAXX peprecip.vaa -fax.xtpeamrf FAXX xtpeamrf.vam -fax.xtpebmrf FAXX xtpebmrf.vam - -fax.radbk96 FAXX radbk96 -fax.radmrf FAXX radmrf -fax.souther1 FAXX souther1.vam -fax.souther2 FAXX souther2.vam - -fax.ecmwfmp2 PWWB ecmwfmp2.vam - - -fax.bcmrfmp1 PWWB bcmrfmp1.vam -fax.bcmrfmp2 FAXX bcmrfmp2.vam - -fax.extdmap1 PWWB extdmap1.vam - -blended.mrfecmwf PWWB mrfecmwf.vmr - -fax.cachilv1 FAXX cachilv1.vaf -fax.cachilv2 FAXX cachilv2.vaf - -ukmetmap.t00z PWWB ukmet00z.vam -ukmetmap.t12z PWWB ukmet12z.vam - -fax.ozone FAXX ozone.vaf - - -fax.hrlycnt1 FAXX hrlycnt1.vrw -fax.ctrmap1 FAXX ctrmap1.vrw -fax.ctrmap4 FAXX ctrmap4.vrw - -fax.fd250plt PWWB_FAXX fd250plt.vaw -fax.fax250plt PWWB fd250plt.vaw - -fax.pfax1 FAXX pfax1.vaa - - - -fax.mk1fax12 FAXX mk1fax00.vaa -fax.mk1fax00 FAXX mk1fax00.vaa - -fax.avpolar FAXX avpolar.vaa -fax.avmerc FAXX avmerc.vaa -fax.avmrcwfx FAXX avmrcwfx.vaa -fax.selamerc FAXX selamerc.vaa -fax.pvprecip FAXX pvprecip.vaa -fax.gmexwv00 FAXX gmexwv00.vaa - -fax.nppepfx1 FAXX nppepfx1.vaa -fax.nppepfx2 FAXX nppepfx2.vaa - -fax.hnlmerc1 FAXX hnlmerc1.vaa -fax.hnlmerc2 FAXX hnlmerc2.vaa -fax.hnlmerc3 FAXX hnlmerc3.vaa - -fax.mercfax FAXX mercfax.vaa -fax.merckup FAXX mercbkup.vaa - -fax.wndfcstv FAXX wndfcstv.vaa -fax.pepfax60 FAXX pepfax60.vaa -fax.mconv FAXX mconv.vag -fax.shipice FAXX shipice.vaf -fax.presscng FAXX presscng.vrw - - -FAXPCPSN.00 PWWB prcpsn00.vaa 2820 2250 -FAXPCPSN.06 PWWB prcpsn06.vaa 2821 2251 -FAXPCPSN.12 PWWB prcpsn12.vaa 2822 2252 2830 -FAXPCPSN.18 PWWB prcpsn18.vaa 2823 2253 - - -SURFACE GEOSTROPHIC WIND AND REL VORT: - -fax.geowvort FAXX geowvort.vrw - - - -24 HOUR PRECIP VERIFICATION MAP: - -var.qpb24 PWWB qpb24fax.vai 9404 -bup.qpb24 PWWB qpb24bup.vai 9405 -testqpb PWWB qpb24test.vai 9405 - - - -VAFTAD products: as of 30 mar 1998 13:55L - -fax.vaftad1T00Z FAXX vafta10z.vaa 3456 -fax.vaftad2T00Z FAXX vafta20z.vaa 3457 - -fax.vaftad1T12Z FAXX vafta12z.vaa 3458 -fax.vaftad2T12Z FAXX vafta22z.vaa 3459 - - -WAFS PRODUCTS as of 21 OCT 1998 14:40L - -fax.wafs0600Z FAXX wafs0600.vaa -fax.wafs1800Z FAXX wafs1800.vaa -fax.wafs3000Z FAXX wafs3000.vaa - -fax.wafs0612Z FAXX wafs0612.vaa -fax.wafs1812Z FAXX wafs1812.vaa -fax.wafs3012Z FAXX wafs3012.vaa - - -PRODUCTS for NCDC: as of 28 aug 1997 14:10L - -fax.hrlycnt2 NCDC_FAXX hrlycnt2.vrw - -fax.tropct00z NCDC_FAXX tropc00z.vaa tropc00z ncdcname -fax.tropct06z NCDC_FAXX tropc06z.vaa tropc06z ncdcname -fax.tropct12z NCDC_FAXX tropc12z.vaa tropc12z ncdcname -fax.tropct18z NCDC_FAXX tropc18z.vaa tropc18z ncdcname - -fax.trpic06z NCDC_FAXX trpic06z.vaf trpic06z - -fax.trpicmer NCDC_FAXX trpicmer.vaf trpicmer ncdcname -fax.trpismer NCDC_PWWB_FAXX trpismer.vaa trpismer ncdcname -fax.offmerc PWWB trpmerc.vaa - -fax.nhfctrmv NCDC_FAXX nhfctrmv.vrw nhfctrmv - -fax.wxpxmap3 NCDC_FAXX wxpxmap3.vrw wxpxmap3 ncdcname -fax.wxpxmap4 NCDC_FAXX wxpxmap4.vrw wxpxmap4 ncdcname - -fax.apfxanl NCDC_PWWB_FAXX apfxanl.vag apfxanl ncdcname - -fax.pepfax00 NCDC_FAXX_PWWB pepfax00.vaa pepfax00 ncdcname -fax.pepfax12 NCDC_FAXX pepfax12.vaa pepfax12 ncdcname -fax.pepfax24 NCDC_FAXX pepfax24.vaa pepfax24 ncdcname -fax.pepfax36 NCDC_FAXX pepfax36.vaa pepfax36 ncdcname -fax.pepfax48 NCDC_FAXX pepfax48.vaa pepfax48 ncdcname - -fax.uab NCDC_FAXX uab.vaf uab - -fax.fm2dotfx NCDC_PWWB_FAXX fm2dotfx.vae fm2dotfx ncdcname - -fax.ganlnhfx NCDC_PWWB_FAXX ganlnhfx.vaf ganlnhfx ncdcname -fax.ganlshfx NCDC_FAXX ganlshfx.vaf ganlshfx ncdcname - -fax.bkwndalf NCDC_FAXX bkwndalf.vae bkwndalf ncdcname - -fax.wndalftf NCDC_FAXX wndalftf.vaa wndalftf - -fax.probturb NCDC_FAXX probturb.vaa probturb - -fax.rmksacft NCDC_FAXX rmksacft.vai rmksacft -fax.rmksacf2 NCDC_FAXX rmksacf2.vai rmksacf2 - -fax.opcsigww NCDC_FAXX opcsigww.vaa opcsigww -fax.opcwinds NCDC_FAXX opcwinds.vaa opcwinds ncdcname -fax.opcwindi NCDC_FAXX opcwindi.vaa opcwindi - -faxmxmn.00.ncdc NCDC_FAXX ObsMaximumTmp00Z ObsMaximumTmp00Z ncdcname 2705 -faxmxmn.12.ncdc NCDC_FAXX ObsMinimumTmp12Z ObsMinimumTmp12Z ncdcname 2706 - -faxprcp.12.ncdc NCDC_FAXX 24Hrprecplot12Z 24Hrprecplot12Z ncdcname 2831 -faxsnow.12.ncdc NCDC_FAXX 6HrSnowCover12Z 6HrSnowCover12Z ncdcname 2254 - - -ALNOTS AND GENOTS : as of 25 NOV 1997 1215L - - -akfax PWWB_FAXX var150.vck -difax PWWB_FAXX var151.vck -honolulu PWWB_FAXX var152.vck -wefaxmap PWWB_FAXX var153.vck - -alnot.00 PWWB_FAXX var154.vck -alnot.12 PWWB_FAXX var155.vck - -tkfax PWWB var150.vck -tifax PWWB var151.vck -tonolulu PWWB var152.vck -tefax PWWB var153.vck - -tlnot.00 PWWB var154.vck -tlnot.12 PWWB var155.vck - -PRODUCTS for TPC: as of 09 feb 2000 11:05 - -SNDKEY DBNET TYPE TPC DFAX subset source oldname - name slot num -________________________________________________________________________ - -660X TPC_6BIT_nhc-hp13 660X.6bt D291 3456 ig2 VOLASH00ZP1.D291 -661X TPC_6BIT_nhc-hp13 661X.6bt D292 3457 ig2 VOLASH00ZP2.D292 -662X TPC_6BIT_nhc-hp13 662X.6bt D293 3458 ig2 VOLASH12ZP1.D293 -663X TPC_6BIT_nhc-hp13 663X.6bt D294 3459 ig2 VOLASH12ZP2.D294 -W.T00Z TPC_6BIT_nhc-hp13 668X.6bt D186 3657 j552d 00zsfc-wh.D186 -W.T12Z TPC_6BIT_nhc-hp13 669X.6bt D280 3669 j552p 12zsfc-wh.D280 - -TEXT PRODUCTS for LDM that will be sent via the weather wire. -16 apr 2000 peter henrichsen - -SNDKEY DBNET_TYPE DBNET_SUBTYPE -________________________________________________________________________ -uvbull WAN_TEXT aeus41_kwbc_uvicac - -GIF files for nesdis (VAFTAD) that will be ftp'd to the foreign work station. -12 May 2000 Peter Henrichsen - -SNDKEY DBNET_TYPE DBNET_SUBTYPE -________________________________________________________________________ -vaftad.gif FTP_FILE hpipb2_/pub/VAFTAD - - diff --git a/util/fix/graph_wndanftf.header b/util/fix/graph_wndanftf.header deleted file mode 100755 index 70db610053..0000000000 --- a/util/fix/graph_wndanftf.header +++ /dev/null @@ -1,7 +0,0 @@ -PURERAST0015257600000000nh2500x 000012440000002700001728950906 -filler .. filler ..filler .. filler ..filler .. filler ..filler .. filler .. -filler .. filler ..filler .. filler ..filler .. filler ..filler .. filler .. -filler .. filler ..filler .. filler ..filler .. filler ..filler .. filler .. -filler .. filler ..filler .. filler ..filler .. filler ..filler .. filler .. -filler .. filler ..filler .. filler ..filler .. filler ..filler .. filler .. -filler .. filler ..filler .. filler ..filler .. filler ..filler diff --git a/util/fix/identifyfax.tbl b/util/fix/identifyfax.tbl deleted file mode 100755 index b11272f05b..0000000000 --- a/util/fix/identifyfax.tbl +++ /dev/null @@ -1,93 +0,0 @@ -##### identifyfax.tbl Fax graphic identification table -##### -##### The keyword can be up to 8 characters long, but make sure -##### it contains no spaces. Leave at least one space -##### between sub00 and the keyword -##### -##### 05/01/2006 Lilly - Table is created. -##### 08/27/2007 Lilly - Modify table to remove keywords 06HPPT_p (6-hour -##### precipitation) and 24HPPT_p (24-hour precipitation). -##### HPC no longer requires printed copies of the 6- and -##### 24-hour precipitation graphics. -##### 04/02/2008 Lilly - Modify table to remove the following keywords: -##### - FM2D01_p fm2dot_00HR_850MB_HGT_TMP -##### - FM2D02_p fm2dot_00HR_700MB_HGT_TMP -##### - FM2D03_p fm2dot_00HR_500MB_HGT_TMP -##### - FM2D04_p fm2dot_00HR_300MB_HGT_ISO -##### - FM2D05_p fm2dot_00HR_200MB_HGT_ISO -##### - FM2D06_p fm2dot_00HR_250MB_HGT_ISO -##### - FM2D07_p fm2dot_00HR_100MB_HGT_ISO -##### - PLOT70_p ANL_070MB_HGT_WIND -##### - DM3GFS_p bcgfsmp1.D-3_GFS_500MB_HGT_DN -##### - DP0GFS_p bcgfsmp1.D+0_GFS_500MB_HGT_DN_TENDENDENCY -##### - DP3GFS_p bcgfsmp1.D+3_GFS_500MB_HGT_DN -##### - DP6GFS_p bcgfsmp1.D+6_GFS_500MB_HGT_DN -##### - ECMWFD_p ECMWF_500MB_D+3_HGT_DN -##### - RG250_p rg250plt_250MB_PLOTTED_DATA -##### -Keyword sub00 sub06 sub12 sub18 gif toc prt lprt name -############################################################################################ -RADAR x x x x NO YES NO x radar.fax -RADAR_g x x x x YES NO NO x radar.fax -WXDEP x x x x NO YES NO x wxpxmap -WXDEP_g x x x x YES NO NO x wxpxmap -MAX_TMP 2705 x x x NO YES NO x max_temperture -MAXT_g 2705 x x x YES NO NO x max_temperture -MIN_TMP x x 2706 x NO YES NO x min_temperture -MINT_g x x 2706 x YES NO NO x min_temperture -24HRPCPN x x 2831 x NO YES NO x 24HR_PPT -24HPPT_g x x 2831 x YES NO NO x 24HR_PPT -12ZSNOW x x 2254 x NO YES NO x 12Z_snow_cover -12ZSNO_g x x 2254 x YES NO NO x 12Z_snow_cover -SNOWOB_p 2250 2251 2252 2253 NO NO YES lj8-44 obs_snow_cover -FREEZLEV 4910 x 4930 x NO YES NO x freezing_level -FREEZL_g 4910 x 4930 x YES NO NO x freezing_level -FREEZL_p 4910 x 4930 x NO NO YES hplj4sdm freezing_level -AVGRELHU 4911 x 4931 x NO YES NO x avg_rel_hum -AVGREL_g 4911 x 4931 x YES NO NO x avg_rel_hum -AVGREL_p 4911 x 4931 x NO NO YES hplj4sdm avg_rel_hum -LI_KINDX 4912 x 4932 x NO YES NO x li_k_index -LIKIDX_g 4912 x 4932 x YES NO NO x li_k_index -LIKIDX_p 4912 x 4932 x NO NO YES hplj4sdm li_k_index -PPT_PCNT 4913 x 4933 x NO YES NO x precip_water -PPT_PC_g 4913 x 4933 x YES NO NO x precip_water -PPT_PC_p 4913 x 4933 x NO NO YES hplj4sdm precip_water -GMEXWV 2728 x 2729 x NO YES NO x 12HR_48HOUR_FRCST_WAVE_HGT_DIR -FM2D01_g 2230 x 2280 x YES NO NO x fm2dot_00HR_850MB_HGT_TMP -FM2D001 2329 x 2339 x NO YES NO x fm2dot_00HR_850MB_HGT_TMP -FM2D02_g 2235 x 2285 x YES NO NO x fm2dot_00HR_700MB_HGT_TMP -FM2D002 2331 x 2341 x NO YES NO x fm2dot_00HR_700MB_HGT_TMP -FM2D03_g 2242 x 2292 x YES NO NO x fm2dot_00HR_500MB_HGT_TMP -FM2D003 2333 x 2343 x NO YES NO x fm2dot_00HR_500MB_HGT_TMP -FM2D04_g 2318 x 2368 x YES NO NO x fm2dot_00HR_300MB_HGT_ISO -FM2DA04 2335 x x x NO YES NO x fm2dot_ANAL_300MB_HGT_ISO -FM2D05_g 2323 x 2373 x YES NO NO x fm2dot_00HR_200MB_HGT_ISO -FM2D005 2337 x 2347 x NO YES NO x fm2dot_00HR_200MB_HGT_ISO -FM2D06_g 2742 x 2792 x YES NO NO x fm2dot_00HR_250MB_HGT_ISO -FM2D07_g 4328 x 4329 x YES NO NO x fm2dot_00HR_100MB_HGT_ISO -GD12NH_p x 2745 x 2795 NO NO YES hplj4sdm gf12nhfx_12HR_250MB_HGT_ISO -GDTROPC 3658 3659 3670 3671 NO YES NO x PACF_TROPICAL_SFC_ANAL -GDTROP_g 2700 2701 2702 2704 YES NO NO x VFULL_TROPICAL_SFC_ANAL -V48140_1 2008 x x x NO YES NO x 48HR_500MB_HGT_VORT -TRP850V 3837 x 3887 x NO YES NO x ANAL_850MB_HGT_WIND -TRP850_g 3836 x 3886 x YES NO NO x 00HR_850MB_HGT_WIND -TRP700V 2400 x 2450 x NO YES NO x 00HR_700MB_HGT_WIND -TRP700A 3840 x 3890 x NO YES NO x ANAL_700MB_HGT_WIND -TRP700_g 2400 x 2450 x YES NO NO x 00HR_700MB_HGT_WIND -TRP500V 2403 x 2453 x NO YES NO x 00HR_500MB_HGT_WIND -TRP500A 3842 x 3892 x NO YES NO x ANAL_500MB_HGT_WIND -TRP500_g 2403 x 2453 x YES NO NO x 00HR_500MB_HGT_WIND -TRP250V 2406 2406 2456 2456 NO YES NO x 00HR_250MB_HGT_WIND -TRP250A 3844 3844 3894 3894 NO YES NO x ANAL_250MB_HGT_WIND -TRP250_g 2406 2406 2456 2456 YES NO NO x 00HR_250MB_HGT_WIND -WNDAFT 2927 x 2977 x NO YES NO x WNDS_ALOFT_GR_14_24_34 -WNDAFT_g 2929 x 2979 x YES NO NO x WNDS_ALOFT_GR_14_24_34 -GDTROPE 3656 x 3668 x NO YES NO x MERC_TROP_SFC_E -GDTROPW 3657 x 3669 x NO YES NO x MERC_TROP_SFC_W -TRPSFG01 x x 4390 x NO YES NO x 24HR_1000MB_STREAMLINE_WIND -TRPSFG02 x x 4350 x NO YES NO x 24HR_1000MB_STREAMF_WIND -TRPSFG03 x x 4352 x NO YES NO x 48HR_1000MB_STREAMF_WIND -HMERC48A 2424 x 2424 x NO YES NO x 48HR_SFC_1000MB_500MB_THKNESS -NHANL_g 2439 x 2489 x YES NO NO x gfs_200_hgt_tmp_nh_anl -OPCWND24 1521 x 1521 x NO YES NO x 24HR_FRCST_OCEAN_SFC_WND_WAVE -OPCWND48 1525 x 1525 x NO YES NO x 48HR_FRCST_OCEAN_SFC_WND_WAVE diff --git a/util/fix/wafsubset_wmo.tbl b/util/fix/wafsubset_wmo.tbl deleted file mode 100755 index c4b0b00226..0000000000 --- a/util/fix/wafsubset_wmo.tbl +++ /dev/null @@ -1,684 +0,0 @@ -##### wafsubset_wmo.tbl Waf graphic subset and WMO table -##### -##### -##### 12/12/2005 -##### -############################################################################################ -a0612 5400 5401 5406 5407 5100 5101 5106 5107 5112 5113 5118 5119 5124 5125 -a5400 PWNB85 KWNO 06HR_FL050_AMERICA_MERC -a5401 PWNC85 KWNO 12HR_FL050_AMERICA_MERC -a5406 PWNB70 KWNO 06HR_FL100_AMERICA_MERC -a5407 PWNC70 KWNO 12HR_FL100_AMERICA_MERC -a5100 PWNB50 KWBC 06HR_FL180_AMERICA_MERC -a5101 PWNC50 KWBC 12HR_FL180_AMERICA_MERC -a5106 PWNB40 KWBC 06HR_FL240_AMERICA_MERC -a5107 PWNC40 KWBC 12HR_FL240_AMERICA_MERC -a5112 PWNB30 KWBC 06HR_FL300_AMERICA_MERC -a5113 PWNC30 KWBC 12HR_FL300_AMERICA_MERC -a5118 PWNB25 KWBC 06HR_FL340_AMERICA_MERC -a5119 PWNC25 KWBC 12HR_FL340_AMERICA_MERC -a5124 PWNB20 KWBC 06HR_FL390_AMERICA_MERC -a5125 PWNC20 KWBC 12HR_FL390_AMERICA_MERC - -a1824 5402 5403 5408 5409 5102 5103 5108 5109 5114 5115 5120 5121 5126 5127 -a5402 PWND85 KWNO 18HR_FL050_AMERICA_MERC -a5403 PWNE85 KWNO 24HR_FL050_AMERICA_MERC -a5408 PWND70 KWNO 18HR_FL100_AMERICA_MERC -a5409 PWNE70 KWNO 24HR_FL100_AMERICA_MERC -a5102 PWND50 KWBC 18HR_FL180_AMERICA_MERC -a5103 PWNE50 KWBC 24HR_FL180_AMERICA_MERC -a5108 PWND40 KWBC 18HR_FL240_AMERICA_MERC -a5109 PWNE40 KWBC 24HR_FL240_AMERICA_MERC -a5114 PWND30 KWBC 18HR_FL300_AMERICA_MERC -a5115 PWNE30 KWBC 24HR_FL300_AMERICA_MERC -a5120 PWND25 KWBC 18HR_FL340_AMERICA_MERC -a5121 PWNE25 KWBC 24HR_FL340_AMERICA_MERC -a5126 PWND20 KWBC 18HR_FL390_AMERICA_MERC -a5127 PWNE20 KWBC 24HR_FL390_AMERICA_MERC - -a3036 5404 5405 5410 5411 5104 5105 5110 5111 5116 5117 5122 5123 5128 5129 -a5404 PWNF85 KWNO 30HR_FL050_AMERICA_MERC -a5405 PWNG85 KWNO 36HR_FL050_AMERICA_MERC -a5410 PWNF70 KWNO 30HR_FL100_AMERICA_MERC -a5411 PWNG70 KWNO 36HR_FL100_AMERICA_MERC -a5104 PWNF50 KWBC 30HR_FL180_AMERICA_MERC -a5105 PWNG50 KWBC 36HR_FL180_AMERICA_MERC -a5110 PWNF40 KWBC 30HR_FL240_AMERICA_MERC -a5111 PWNG40 KWBC 36HR_FL240_AMERICA_MERC -a5116 PWNF30 KWBC 30HR_FL300_AMERICA_MERC -a5117 PWNG30 KWBC 36HR_FL300_AMERICA_MERC -a5122 PWNF25 KWBC 30HR_FL340_AMERICA_MERC -a5123 PWNG25 KWBC 36HR_FL340_AMERICA_MERC -a5128 PWNF20 KWBC 30HR_FL390_AMERICA_MERC -a5129 PWNG20 KWBC 36HR_FL390_AMERICA_MERC - -b10612 5412 5413 5418 5419 5190 5191 5196 5197 5202 5203 5208 5209 5214 5215 5220 5221 5226 5227 -b15412 PWSB85 KWNO 06HR_FL050_EUR_S_AM_MERC -b15413 PWSC85 KWNO 12HR_FL050_EUR_S_AM_MERC -b15418 PWSB70 KWNO 06HR_FL100_EUR_S_AM_MERC -b15419 PWSC70 KWNO 12HR_FL100_EUR_S_AM_MERC -b15190 PWSB50 KWBC 06HR_FL180_EUR_S_AM_MERC -b15191 PWSC50 KWBC 12HR_FL180_EUR_S_AM_MERC -b15196 PWSB40 KWBC 06HR_FL240_EUR_S_AM_MERC -b15197 PWSC40 KWBC 12HR_FL240_EUR_S_AM_MERC -b15202 PWSB30 KWBC 06HR_FL300_EUR_S_AM_MERC -b15203 PWSC30 KWBC 12HR_FL300_EUR_S_AM_MERC -b15208 PWSB25 KWBC 06HR_FL340_EUR_S_AM_MERC -b15209 PWSC25 KWBC 12HR_FL340_EUR_S_AM_MERC -b15214 PWSB20 KWBC 06HR_FL390_EUR_S_AM_MERC -b15215 PWSC20 KWBC 12HR_FL390_EUR_S_AM_MERC -b15220 PWSB15 KWBC 06HR_FL450_EUR_S_AM_MERC -b15221 PWSC15 KWBC 12HR_FL450_EUR_S_AM_MERC -b15226 PWSB07 KWBC 06HR_FL630_EUR_S_AM_MERC -b15227 PWSC07 KWBC 12HR_FL630_EUR_S_AM_MERC - -b11824 5414 5415 5420 5421 5192 5193 5198 5199 5204 5205 5210 5211 5216 5217 5222 5223 5228 5229 -b15414 PWSD85 KWNO 18HR_FL050_EUR_S_AM_MERC -b15415 PWSE85 KWNO 24HR_FL050_EUR_S_AM_MERC -b15420 PWSD70 KWNO 18HR_FL100_EUR_S_AM_MERC -b15421 PWSE70 KWNO 24HR_FL100_EUR_S_AM_MERC -b15192 PWSD50 KWBC 18HR_FL180_EUR_S_AM_MERC -b15193 PWSE50 KWBC 24HR_FL180_EUR_S_AM_MERC -b15198 PWSD40 KWBC 18HR_FL240_EUR_S_AM_MERC -b15199 PWSE40 KWBC 24HR_FL240_EUR_S_AM_MERC -b15204 PWSD30 KWBC 18HR_FL300_EUR_S_AM_MERC -b15205 PWSE30 KWBC 24HR_FL300_EUR_S_AM_MERC -b15210 PWSD25 KWBC 18HR_FL340_EUR_S_AM_MERC -b15211 PWSE25 KWBC 24HR_FL340_EUR_S_AM_MERC -b15216 PWSD20 KWBC 18HR_FL390_EUR_S_AM_MERC -b15217 PWSE20 KWBC 24HR_FL390_EUR_S_AM_MERC -b15222 PWSD15 KWBC 18HR_FL450_EUR_S_AM_MERC -b15223 PWSE15 KWBC 24HR_FL450_EUR_S_AM_MERC -b15228 PWSD07 KWBC 18HR_FL630_EUR_S_AM_MERC -b15229 PWSE07 KWBC 24HR_FL630_EUR_S_AM_MERC - -b13036 5416 5417 5422 5423 5194 5195 5200 5201 5206 5207 5212 5213 5218 5219 5224 5225 5230 5231 -b15416 PWSF85 KWNO 30HR_FL050_EUR_S_AM_MERC -b15417 PWSG85 KWNO 36HR_FL050_EUR_S_AM_MERC -b15422 PWSF70 KWNO 30HR_FL100_EUR_S_AM_MERC -b15423 PWSG70 KWNO 36HR_FL100_EUR_S_AM_MERC -b15194 PWSF50 KWBC 30HR_FL180_EUR_S_AM_MERC -b15195 PWSG50 KWBC 36HR_FL180_EUR_S_AM_MERC -b15200 PWSF40 KWBC 30HR_FL240_EUR_S_AM_MERC -b15201 PWSG40 KWBC 36HR_FL240_EUR_S_AM_MERC -b15206 PWSF30 KWBC 30HR_FL300_EUR_S_AM_MERC -b15207 PWSG30 KWBC 36HR_FL300_EUR_S_AM_MERC -b15212 PWSF25 KWBC 30HR_FL340_EUR_S_AM_MERC -b15213 PWSG25 KWBC 36HR_FL340_EUR_S_AM_MERC -b15218 PWSF20 KWBC 30HR_FL390_EUR_S_AM_MERC -b15219 PWSG20 KWBC 36HR_FL390_EUR_S_AM_MERC -b15224 PWSF15 KWBC 30HR_FL450_EUR_S_AM_MERC -b15225 PWSG15 KWBC 36HR_FL450_EUR_S_AM_MERC -b15230 PWSF07 KWBC 30HR_FL630_EUR_S_AM_MERC -b15231 PWSG07 KWBC 36HR_FL630_EUR_S_AM_MERC - -f0612 5130 5131 5136 5137 5142 5143 5148 5149 5154 5155 -f5130 PWFB50 KWBC 06HR_FL180_S_PACIFIC_MERC -f5131 PWFC50 KWBC 12HR_FL180_S_PACIFIC_MERC -f5136 PWFB40 KWBC 06HR_FL240_S_PACIFIC_MERC -f5137 PWFC40 KWBC 12HR_FL240_S_PACIFIC_MERC -f5142 PWFB30 KWBC 06HR_FL300_S_PACIFIC_MERC -f5143 PWFC30 KWBC 12HR_FL300_S_PACIFIC_MERC -f5148 PWFB25 KWBC 06HR_FL340_S_PACIFIC_MERC -f5149 PWFC25 KWBC 12HR_FL340_S_PACIFIC_MERC -f5154 PWFB20 KWBC 06HR_FL390_S_PACIFIC_MERC -f5155 PWFC20 KWBC 12HR_FL390_S_PACIFIC_MERC - -f1824 5132 5133 5138 5139 5144 5145 5150 5151 5156 5157 -f5132 PWFD50 KWBC 18HR_FL180_S_PACIFIC_MERC -f5133 PWFE50 KWBC 24HR_FL180_S_PACIFIC_MERC -f5138 PWFD40 KWBC 18HR_FL240_S_PACIFIC_MERC -f5139 PWFE40 KWBC 24HR_FL240_S_PACIFIC_MERC -f5144 PWFD30 KWBC 18HR_FL300_S_PACIFIC_MERC -f5145 PWFE30 KWBC 24HR_FL300_S_PACIFIC_MERC -f5150 PWFD25 KWBC 18HR_FL340_S_PACIFIC_MERC -f5151 PWFE25 KWBC 24HR_FL340_S_PACIFIC_MERC -f5156 PWFD20 KWBC 18HR_FL390_S_PACIFIC_MERC -f5157 PWFE20 KWBC 24HR_FL390_S_PACIFIC_MERC - -f3036 5134 5135 5140 5141 5146 5147 5152 5153 5158 5159 -f5134 PWFF50 KWBC 30HR_FL180_S_PACIFIC_MERC -f5135 PWFG50 KWBC 36HR_FL180_S_PACIFIC_MERC -f5140 PWFF40 KWBC 30HR_FL240_S_PACIFIC_MERC -f5141 PWFG40 KWBC 36HR_FL240_S_PACIFIC_MERC -f5146 PWFF30 KWBC 30HR_FL300_S_PACIFIC_MERC -f5147 PWFG30 KWBC 36HR_FL300_S_PACIFIC_MERC -f5152 PWFF25 KWBC 30HR_FL340_S_PACIFIC_MERC -f5153 PWFG25 KWBC 36HR_FL340_S_PACIFIC_MERC -f5158 PWFF20 KWBC 30HR_FL390_S_PACIFIC_MERC -f5159 PWFG20 KWBC 36HR_FL390_S_PACIFIC_MERC - -f10612 5170 5171 5176 5177 5182 5183 5160 5161 -f15170 PWFB85 KWBC 06HR_FL050_S_PACIFIC_MERC -f15171 PWFC85 KWBC 12HR_FL050_S_PACIFIC_MERC -f15176 PWFB70 KWBC 06HR_FL100_S_PACIFIC_MERC -f15177 PWFC70 KWBC 12HR_FL100_S_PACIFIC_MERC -f15182 PWFB15 KWBC 06HR_FL450_S_PACIFIC_MERC -f15183 PWFC15 KWBC 12HR_FL450_S_PACIFIC_MERC -f15160 PWFB07 KWBC 06HR_FL630_S_PACIFIC_MERC -f15161 PWFC07 KWBC 12HR_FL630_S_PACIFIC_MERC - -f11824 5172 5173 5178 5179 5184 5185 5162 5163 -f15172 PWFD85 KWBC 18HR_FL050_S_PACIFIC_MERC -f15173 PWFE85 KWBC 24HR_FL050_S_PACIFIC_MERC -f15178 PWFD70 KWBC 18HR_FL100_S_PACIFIC_MERC -f15179 PWFE70 KWBC 24HR_FL100_S_PACIFIC_MERC -f15184 PWFD15 KWBC 18HR_FL450_S_PACIFIC_MERC -f15185 PWFE15 KWBC 24HR_FL450_S_PACIFIC_MERC -f15162 PWFD07 KWBC 18HR_FL630_S_PACIFIC_MERC -f15163 PWFE07 KWBC 24HR_FL630_S_PACIFIC_MERC - -f13036 5174 5180 5186 5164 5175 5181 5187 5165 -f15174 PWFF85 KWBC 30HR_FL050_S_PACIFIC_MERC -f15175 PWFG85 KWBC 36HR_FL050_S_PACIFIC_MERC -f15180 PWFF70 KWBC 30HR_FL100_S_PACIFIC_MERC -f15181 PWFG70 KWBC 36HR_FL100_S_PACIFIC_MERC -f15186 PWFF15 KWBC 30HR_FL450_S_PACIFIC_MERC -f15187 PWFG15 KWBC 36HR_FL450_S_PACIFIC_MERC -f15164 PWFF07 KWBC 30HR_FL630_S_PACIFIC_MERC -f15165 PWFG07 KWBC 36HR_FL630_S_PACIFIC_MERC - -c0612 5500 5501 5506 5507 5512 5513 5518 5519 5524 5525 5530 5531 5536 5537 5542 5543 5548 5549 -c5500 PWRB85 KWNO 06HR_FL050_AFRICA_MERC -c5501 PWRC85 KWNO 12HR_FL050_AFRICA_MERC -c5506 PWRB70 KWNO 06HR_FL100_AFRICA_MERC -c5507 PWRC70 KWNO 12HR_FL100_AFRICA_MERC -c5512 PWRB50 KWNO 06HR_FL180_AFRICA_MERC -c5513 PWRC50 KWNO 12HR_FL180_AFRICA_MERC -c5518 PWRB40 KWNO 06HR_FL240_AFRICA_MERC -c5519 PWRC40 KWNO 12HR_FL240_AFRICA_MERC -c5524 PWRB30 KWNO 06HR_FL300_AFRICA_MERC -c5525 PWRC30 KWNO 12HR_FL300_AFRICA_MERC -c5530 PWRB25 KWNO 06HR_FL340_AFRICA_MERC -c5531 PWRC25 KWNO 12HR_FL340_AFRICA_MERC -c5536 PWRB20 KWNO 06HR_FL390_AFRICA_MERC -c5537 PWRC20 KWNO 12HR_FL390_AFRICA_MERC -c5542 PWRB15 KWNO 06HR_FL450_AFRICA_MERC -c5543 PWRC15 KWNO 12HR_FL450_AFRICA_MERC -c5548 PWRB07 KWNO 06HR_FL630_AFRICA_MERC -c5549 PWRC07 KWNO 12HR_FL630_AFRICA_MERC - -c1824 5502 5503 5508 5509 5514 5515 5520 5521 5526 5527 5532 5533 5538 5539 5544 5545 5550 5551 -c5502 PWRD85 KWNO 18HR_FL050_AFRICA_MERC -c5503 PWRE85 KWNO 24HR_FL050_AFRICA_MERC -c5508 PWRD70 KWNO 18HR_FL100_AFRICA_MERC -c5509 PWRE70 KWNO 24HR_FL100_AFRICA_MERC -c5514 PWRD50 KWNO 18HR_FL180_AFRICA_MERC -c5515 PWRE50 KWNO 24HR_FL180_AFRICA_MERC -c5520 PWRD40 KWNO 18HR_FL240_AFRICA_MERC -c5521 PWRE40 KWNO 24HR_FL240_AFRICA_MERC -c5526 PWRD30 KWNO 18HR_FL300_AFRICA_MERC -c5527 PWRE30 KWNO 24HR_FL300_AFRICA_MERC -c5532 PWRD25 KWNO 18HR_FL340_AFRICA_MERC -c5533 PWRE25 KWNO 24HR_FL340_AFRICA_MERC -c5538 PWRD20 KWNO 18HR_FL390_AFRICA_MERC -c5539 PWRE20 KWNO 24HR_FL390_AFRICA_MERC -c5544 PWRD15 KWNO 18HR_FL450_AFRICA_MERC -c5545 PWRE15 KWNO 24HR_FL450_AFRICA_MERC -c5550 PWRD07 KWNO 18HR_FL630_AFRICA_MERC -c5551 PWRE07 KWNO 24HR_FL630_AFRICA_MERC - -c3036 5504 5505 5510 5511 5516 5517 5522 5523 5528 5529 5534 5535 5540 5541 5546 5547 5552 5553 -c5504 PWRF85 KWNO 30HR_FL050_AFRICA_MERC -c5505 PWRG85 KWNO 36HR_FL050_AFRICA_MERC -c5510 PWRF70 KWNO 30HR_FL100_AFRICA_MERC -c5511 PWRG70 KWNO 36HR_FL100_AFRICA_MERC -c5516 PWRF50 KWNO 30HR_FL180_AFRICA_MERC -c5517 PWRG50 KWNO 36HR_FL180_AFRICA_MERC -c5522 PWRF40 KWNO 30HR_FL240_AFRICA_MERC -c5523 PWRG40 KWNO 36HR_FL240_AFRICA_MERC -c5528 PWRF30 KWNO 30HR_FL300_AFRICA_MERC -c5529 PWRG30 KWNO 36HR_FL300_AFRICA_MERC -c5534 PWRF25 KWNO 30HR_FL340_AFRICA_MERC -c5535 PWRG25 KWNO 36HR_FL340_AFRICA_MERC -c5540 PWRF20 KWNO 30HR_FL390_AFRICA_MERC -c5541 PWRG20 KWNO 36HR_FL390_AFRICA_MERC -c5546 PWRF15 KWNO 30HR_FL450_AFRICA_MERC -c5547 PWRG15 KWNO 36HR_FL450_AFRICA_MERC -c5552 PWRF07 KWNO 30HR_FL630_AFRICA_MERC -c5553 PWRG07 KWNO 36HR_FL630_AFRICA_MERC - -d0612 5554 5555 5560 5561 5566 5567 5572 5573 5578 5579 5584 5585 5590 5591 5596 5597 5602 5603 -d5554 PWZB85 KWNO 06HR_FL050_ASIA_MERC -d5555 PWZC85 KWNO 12HR_FL050_ASIA_MERC -d5560 PWZB70 KWNO 06HR_FL100_ASIA_MERC -d5561 PWZC70 KWNO 12HR_FL100_ASIA_MERC -d5566 PWZB50 KWNO 06HR_FL180_ASIA_MERC -d5567 PWZC50 KWNO 12HR_FL180_ASIA_MERC -d5572 PWZB40 KWNO 06HR_FL240_ASIA_MERC -d5573 PWZC40 KWNO 12HR_FL240_ASIA_MERC -d5578 PWZB30 KWNO 06HR_FL300_ASIA_MERC -d5579 PWZC30 KWNO 12HR_FL300_ASIA_MERC -d5584 PWZB25 KWNO 06HR_FL340_ASIA_MERC -d5585 PWZC25 KWNO 12HR_FL340_ASIA_MERC -d5590 PWZB20 KWNO 06HR_FL390_ASIA_MERC -d5591 PWZC20 KWNO 12HR_FL390_ASIA_MERC -d5596 PWZB15 KWNO 06HR_FL450_ASIA_MERC -d5597 PWZC15 KWNO 12HR_FL450_ASIA_MERC -d5602 PWZB07 KWNO 06HR_FL630_ASIA_MERC -d5603 PWZC07 KWNO 12HR_FL630_ASIA_MERC - -d1824 5556 5557 5562 5563 5568 5569 5574 5575 5580 5581 5586 5587 5592 5593 5598 5599 5604 5605 -d5556 PWZD85 KWNO 18HR_FL050_ASIA_MERC -d5557 PWZE85 KWNO 24HR_FL050_ASIA_MERC -d5562 PWZD70 KWNO 18HR_FL100_ASIA_MERC -d5563 PWZE70 KWNO 24HR_FL100_ASIA_MERC -d5568 PWZD50 KWNO 18HR_FL180_ASIA_MERC -d5569 PWZE50 KWNO 24HR_FL180_ASIA_MERC -d5574 PWZD40 KWNO 18HR_FL240_ASIA_MERC -d5575 PWZE40 KWNO 24HR_FL240_ASIA_MERC -d5580 PWZD30 KWNO 18HR_FL300_ASIA_MERC -d5581 PWZE30 KWNO 24HR_FL300_ASIA_MERC -d5586 PWZD25 KWNO 18HR_FL340_ASIA_MERC -d5587 PWZE25 KWNO 24HR_FL340_ASIA_MERC -d5592 PWZD20 KWNO 18HR_FL390_ASIA_MERC -d5593 PWZE20 KWNO 24HR_FL390_ASIA_MERC -d5598 PWZD15 KWNO 18HR_FL450_ASIA_MERC -d5599 PWZE15 KWNO 24HR_FL450_ASIA_MERC -d5604 PWZD07 KWNO 18HR_FL630_ASIA_MERC -d5605 PWZE07 KWNO 24HR_FL630_ASIA_MERC - -d3036 5558 5559 5564 5565 5570 5571 5576 5577 5582 5583 5588 5589 5594 5595 5600 5601 5606 5607 -d5558 PWZF85 KWNO 30HR_FL050_ASIA_MERC -d5559 PWZG85 KWNO 36HR_FL050_ASIA_MERC -d5564 PWZF70 KWNO 30HR_FL100_ASIA_MERC -d5565 PWZG70 KWNO 36HR_FL100_ASIA_MERC -d5570 PWZF50 KWNO 30HR_FL180_ASIA_MERC -d5571 PWZG50 KWNO 36HR_FL180_ASIA_MERC -d5576 PWZF40 KWNO 30HR_FL240_ASIA_MERC -d5577 PWZG40 KWNO 36HR_FL240_ASIA_MERC -d5582 PWZF30 KWNO 30HR_FL300_ASIA_MERC -d5583 PWZG30 KWNO 36HR_FL300_ASIA_MERC -d5588 PWZF25 KWNO 30HR_FL340_ASIA_MERC -d5589 PWZG25 KWNO 36HR_FL340_ASIA_MERC -d5594 PWZF20 KWNO 30HR_FL390_ASIA_MERC -d5595 PWZG20 KWNO 36HR_FL390_ASIA_MERC -d5600 PWZF15 KWNO 30HR_FL450_ASIA_MERC -d5601 PWZG15 KWNO 36HR_FL450_ASIA_MERC -d5606 PWZF07 KWNO 30HR_FL630_ASIA_MERC -d5607 PWZG07 KWNO 36HR_FL630_ASIA_MERC - -e0612 5608 5609 5614 5615 5620 5621 5626 5627 5632 5633 5638 5639 5644 5645 5650 5651 5656 5657 -e5608 PWGB85 KWNO 06HR_FL050_IND_OCN_MERC -e5609 PWGC85 KWNO 12HR_FL050_IND_OCN_MERC -e5614 PWGB70 KWNO 06HR_FL100_IND_OCN_MERC -e5615 PWGC70 KWNO 12HR_FL100_IND_OCN_MERC -e5620 PWGB50 KWNO 06HR_FL180_IND_OCN_MERC -e5621 PWGC50 KWNO 12HR_FL180_IND_OCN_MERC -e5626 PWGB40 KWNO 06HR_FL240_IND_OCN_MERC -e5627 PWGC40 KWNO 12HR_FL240_IND_OCN_MERC -e5632 PWGB30 KWNO 06HR_FL300_IND_OCN_MERC -e5633 PWGC30 KWNO 12HR_FL300_IND_OCN_MERC -e5638 PWGB25 KWNO 06HR_FL340_IND_OCN_MERC -e5639 PWGC25 KWNO 12HR_FL340_IND_OCN_MERC -e5644 PWGB20 KWNO 06HR_FL390_IND_OCN_MERC -e5645 PWGC20 KWNO 12HR_FL390_IND_OCN_MERC -e5650 PWGB15 KWNO 06HR_FL450_IND_OCN_MERC -e5651 PWGC15 KWNO 12HR_FL450_IND_OCN_MERC -e5656 PWGB07 KWNO 06HR_FL630_IND_OCN_MERC -e5657 PWGC07 KWNO 12HR_FL630_IND_OCN_MERC - -e1824 5610 5611 5616 5617 5622 5623 5628 5629 5634 5635 5640 5641 5646 5647 5652 5653 5658 5659 -e5610 PWGD85 KWNO 18HR_FL050_IND_OCN_MERC -e5611 PWGE85 KWNO 24HR_FL050_IND_OCN_MERC -e5616 PWGD70 KWNO 18HR_FL100_IND_OCN_MERC -e5617 PWGE70 KWNO 24HR_FL100_IND_OCN_MERC -e5622 PWGD50 KWNO 18HR_FL180_IND_OCN_MERC -e5623 PWGE50 KWNO 24HR_FL180_IND_OCN_MERC -e5628 PWGD40 KWNO 18HR_FL240_IND_OCN_MERC -e5629 PWGE40 KWNO 24HR_FL240_IND_OCN_MERC -e5634 PWGD30 KWNO 18HR_FL300_IND_OCN_MERC -e5635 PWGE30 KWNO 24HR_FL300_IND_OCN_MERC -e5640 PWGD25 KWNO 18HR_FL340_IND_OCN_MERC -e5641 PWGE25 KWNO 24HR_FL340_IND_OCN_MERC -e5646 PWGD20 KWNO 18HR_FL390_IND_OCN_MERC -e5647 PWGE20 KWNO 24HR_FL390_IND_OCN_MERC -e5652 PWGD15 KWNO 18HR_FL450_IND_OCN_MERC -e5653 PWGE15 KWNO 24HR_FL450_IND_OCN_MERC -e5658 PWGD07 KWNO 18HR_FL630_IND_OCN_MERC -e5659 PWGE07 KWNO 24HR_FL630_IND_OCN_MERC - -e3036 5612 5613 5618 5619 5624 5625 5630 5631 5636 5637 5642 5643 5648 5649 5654 5655 5660 5661 -e5612 PWGF85 KWNO 30HR_FL050_IND_OCN_MERC -e5613 PWGG85 KWNO 36HR_FL050_IND_OCN_MERC -e5618 PWGF70 KWNO 30HR_FL100_IND_OCN_MERC -e5619 PWGG70 KWNO 36HR_FL100_IND_OCN_MERC -e5624 PWGF50 KWNO 30HR_FL180_IND_OCN_MERC -e5625 PWGG50 KWNO 36HR_FL180_IND_OCN_MERC -e5630 PWGF40 KWNO 30HR_FL240_IND_OCN_MERC -e5631 PWGG40 KWNO 36HR_FL240_IND_OCN_MERC -e5636 PWGF30 KWNO 30HR_FL300_IND_OCN_MERC -e5637 PWGG30 KWNO 36HR_FL300_IND_OCN_MERC -e5642 PWGF25 KWNO 30HR_FL340_IND_OCN_MERC -e5643 PWGG25 KWNO 36HR_FL340_IND_OCN_MERC -e5648 PWGF20 KWNO 30HR_FL390_IND_OCN_MERC -e5649 PWGG20 KWNO 36HR_FL390_IND_OCN_MERC -e5654 PWGF15 KWNO 30HR_FL450_IND_OCN_MERC -e5655 PWGG15 KWNO 36HR_FL450_IND_OCN_MERC -e5660 PWGF07 KWNO 30HR_FL630_IND_OCN_MERC -e5661 PWGG07 KWNO 36HR_FL630_IND_OCN_MERC - -g0612 5662 5663 5668 5669 5836 5837 5674 5675 5680 5681 5686 5687 5692 5693 5698 5699 5704 5705 5710 5711 -g5662 PWCB85 KWNO 06HR_FL050_EURASIA_POLAR_STR -g5663 PWCC85 KWNO 12HR_FL050_EURASIA_POLAR_STR -g5668 PWCB70 KWNO 06HR_FL100_EURASIA_POLAR_STR -g5669 PWCC70 KWNO 12HR_FL100_EURASIA_POLAR_STR -g5836 PWCB60 KWNO 06HR_FL140_EURASIA_POLAR_STR -g5837 PWCC60 KWNO 12HR_FL140_EURASIA_POLAR_STR -g5674 PWCB50 KWNO 06HR_FL180_EURASIA_POLAR_STR -g5675 PWCC50 KWNO 12HR_FL180_EURASIA_POLAR_STR -g5680 PWCB40 KWNO 06HR_FL240_EURASIA_POLAR_STR -g5681 PWCC40 KWNO 12HR_FL240_EURASIA_POLAR_STR -g5686 PWCB30 KWNO 06HR_FL300_EURASIA_POLAR_STR -g5687 PWCC30 KWNO 12HR_FL300_EURASIA_POLAR_STR -g5692 PWCB25 KWNO 06HR_FL340_EURASIA_POLAR_STR -g5693 PWCC25 KWNO 12HR_FL340_EURASIA_POLAR_STR -g5698 PWCB20 KWNO 06HR_FL390_EURASIA_POLAR_STR -g5699 PWCC20 KWNO 12HR_FL390_EURASIA_POLAR_STR -g5704 PWCB15 KWNO 06HR_FL450_EURASIA_POLAR_STR -g5705 PWCC15 KWNO 12HR_FL450_EURASIA_POLAR_STR -g5710 PWCB07 KWNO 06HR_FL630_EURASIA_POLAR_STR -g5711 PWCC07 KWNO 12HR_FL630_EURASIA_POLAR_STR - -g1824 5664 5665 5670 5671 5838 5839 5676 5677 5682 5683 5688 5689 5694 5695 5700 5701 5706 5707 5712 5713 -g5664 PWCD85 KWNO 18HR_FL050_EURASIA_POLAR_STR -g5665 PWCE85 KWNO 24HR_FL050_EURASIA_POLAR_STR -g5670 PWCD70 KWNO 18HR_FL100_EURASIA_POLAR_STR -g5671 PWCE70 KWNO 24HR_FL100_EURASIA_POLAR_STR -g5838 PWCE60 KWNO 24HR_FL140_EURASIA_POLAR_STR -g5839 PWCD60 KWNO 18HR_FL140_EURASIA_POLAR_STR -g5676 PWCD50 KWNO 18HR_FL180_EURASIA_POLAR_STR -g5677 PWCE50 KWNO 24HR_FL180_EURASIA_POLAR_STR -g5682 PWCD40 KWNO 18HR_FL240_EURASIA_POLAR_STR -g5683 PWCE40 KWNO 24HR_FL240_EURASIA_POLAR_STR -g5688 PWCD30 KWNO 18HR_FL300_EURASIA_POLAR_STR -g5689 PWCE30 KWNO 24HR_FL300_EURASIA_POLAR_STR -g5694 PWCD25 KWNO 18HR_FL340_EURASIA_POLAR_STR -g5695 PWCE25 KWNO 24HR_FL340_EURASIA_POLAR_STR -g5700 PWCD20 KWNO 18HR_FL390_EURASIA_POLAR_STR -g5701 PWCE20 KWNO 24HR_FL390_EURASIA_POLAR_STR -g5706 PWCD15 KWNO 18HR_FL450_EURASIA_POLAR_STR -g5707 PWCE15 KWNO 24HR_FL450_EURASIA_POLAR_STR -g5712 PWCD07 KWNO 18HR_FL630_EURASIA_POLAR_STR -g5713 PWCE07 KWNO 24HR_FL630_EURASIA_POLAR_STR - -g3036 5666 5667 5672 5673 5840 5841 5678 5679 5684 5685 5690 5691 5696 5697 5702 5703 5708 5709 5714 5715 -g5666 PWCF85 KWNO 30HR_FL050_EURASIA_POLAR_STR -g5667 PWCG85 KWNO 36HR_FL050_EURASIA_POLAR_STR -g5672 PWCF70 KWNO 30HR_FL100_EURASIA_POLAR_STR -g5673 PWCG70 KWNO 36HR_FL100_EURASIA_POLAR_STR -g5840 PWCF60 KWNO 30HR_FL140_EURASIA_POLAR_STR -g5841 PWCG60 KWNO 36HR_FL140_EURASIA_POLAR_STR -g5678 PWCF50 KWNO 30HR_FL180_EURASIA_POLAR_STR -g5679 PWCG50 KWNO 36HR_FL180_EURASIA_POLAR_STR -g5684 PWCF40 KWNO 30HR_FL240_EURASIA_POLAR_STR -g5685 PWCG40 KWNO 36HR_FL240_EURASIA_POLAR_STR -g5690 PWCF30 KWNO 30HR_FL300_EURASIA_POLAR_STR -g5691 PWCG30 KWNO 36HR_FL300_EURASIA_POLAR_STR -g5696 PWCF25 KWNO 30HR_FL340_EURASIA_POLAR_STR -g5697 PWCG25 KWNO 36HR_FL340_EURASIA_POLAR_STR -g5702 PWCF20 KWNO 30HR_FL390_EURASIA_POLAR_STR -g5703 PWCG20 KWNO 36HR_FL390_EURASIA_POLAR_STR -g5708 PWCF15 KWNO 30HR_FL450_EURASIA_POLAR_STR -g5709 PWCG15 KWNO 36HR_FL450_EURASIA_POLAR_STR -g5714 PWCF07 KWNO 30HR_FL630_EURASIA_POLAR_STR -g5715 PWCG07 KWNO 36HR_FL630_EURASIA_POLAR_STR - -h0612 5424 5425 5430 5431 5842 5843 5250 5251 5256 5257 5262 5263 5268 5269 5274 5275 5280 5281 5286 5287 -h5424 PWAB85 KWNO 06HR_FL050_ATLANTIC_POLAR_STR -h5425 PWAC85 KWNO 12HR_FL050_ATLANTIC_POLAR_STR -h5430 PWAB70 KWNO 06HR_FL100_ATLANTIC_POLAR_STR -h5431 PWAC70 KWNO 12HR_FL100_ATLANTIC_POLAR_STR -h5842 PWAB60 KWNO 06HR_FL140_ATLANTIC_POLAR_STR -h5843 PWAC60 KWNO 12HR_FL140_ATLANTIC_POLAR_STR -h5250 PWAB50 KWNO 06HR_FL180_ATLANTIC_POLAR_STR -h5251 PWAC50 KWNO 12HR_FL180_ATLANTIC_POLAR_STR -h5256 PWAB40 KWNO 06HR_FL240_ATLANTIC_POLAR_STR -h5257 PWAC40 KWNO 12HR_FL240_ATLANTIC_POLAR_STR -h5262 PWAB30 KWNO 06HR_FL300_ATLANTIC_POLAR_STR -h5263 PWAC30 KWNO 12HR_FL300_ATLANTIC_POLAR_STR -h5268 PWAB25 KWNO 06HR_FL340_ATLANTIC_POLAR_STR -h5269 PWAC25 KWNO 12HR_FL340_ATLANTIC_POLAR_STR -h5274 PWAB20 KWNO 06HR_FL390_ATLANTIC_POLAR_STR -h5275 PWAC20 KWNO 12HR_FL390_ATLANTIC_POLAR_STR -h5280 PWAB15 KWNO 06HR_FL450_ATLANTIC_POLAR_STR -h5281 PWAC15 KWNO 12HR_FL450_ATLANTIC_POLAR_STR -h5286 PWAB07 KWNO 06HR_FL630_ATLANTIC_POLAR_STR -h5287 PWAC07 KWNO 12HR_FL630_ATLANTIC_POLAR_STR - -h1824 5426 5427 5432 5433 5844 5845 5252 5253 5258 5259 5264 5265 5270 5271 5276 5277 5282 5283 5288 5289 -h5426 PWAD85 KWNO 18HR_FL050_ATLANTIC_POLAR_STR -h5427 PWAE85 KWNO 24HR_FL050_ATLANTIC_POLAR_STR -h5432 PWAD70 KWNO 18HR_FL100_ATLANTIC_POLAR_STR -h5433 PWAE70 KWNO 24HR_FL100_ATLANTIC_POLAR_STR -h5844 PWAD60 KWNO 18HR_FL140_ATLANTIC_POLAR_STR -h5845 PWAE60 KWNO 24HR_FL140_ATLANTIC_POLAR_STR -h5252 PWAD50 KWNO 18HR_FL180_ATLANTIC_POLAR_STR -h5253 PWAE50 KWNO 24HR_FL180_ATLANTIC_POLAR_STR -h5258 PWAD40 KWNO 18HR_FL240_ATLANTIC_POLAR_STR -h5259 PWAE40 KWNO 24HR_FL240_ATLANTIC_POLAR_STR -h5264 PWAD30 KWNO 18HR_FL300_ATLANTIC_POLAR_STR -h5265 PWAE30 KWNO 24HR_FL300_ATLANTIC_POLAR_STR -h5270 PWAD25 KWNO 18HR_FL340_ATLANTIC_POLAR_STR -h5271 PWAE25 KWNO 24HR_FL340_ATLANTIC_POLAR_STR -h5276 PWAD20 KWNO 18HR_FL390_ATLANTIC_POLAR_STR -h5277 PWAE20 KWNO 24HR_FL390_ATLANTIC_POLAR_STR -h5282 PWAD15 KWNO 18HR_FL450_ATLANTIC_POLAR_STR -h5283 PWAE15 KWNO 24HR_FL450_ATLANTIC_POLAR_STR -h5288 PWAD07 KWNO 18HR_FL630_ATLANTIC_POLAR_STR -h5289 PWAE07 KWNO 24HR_FL630_ATLANTIC_POLAR_STR - -h3036 5428 5429 5434 5435 5846 5847 5254 5255 5260 5261 5266 5267 5272 5273 5278 5279 5284 5285 5290 5291 -h5428 PWAF85 KWNO 30HR_FL050_ATLANTIC_POLAR_STR -h5429 PWAG85 KWNO 36HR_FL050_ATLANTIC_POLAR_STR -h5434 PWAF70 KWNO 30HR_FL100_ATLANTIC_POLAR_STR -h5435 PWAG70 KWNO 36HR_FL100_ATLANTIC_POLAR_STR -h5846 PWAF60 KWNO 30HR_FL140_ATLANTIC_POLAR_STR -h5847 PWAG60 KWNO 36HR_FL140_ATLANTIC_POLAR_STR -h5254 PWAF50 KWNO 30HR_FL180_ATLANTIC_POLAR_STR -h5255 PWAG50 KWNO 36HR_FL180_ATLANTIC_POLAR_STR -h5260 PWAF40 KWNO 30HR_FL240_ATLANTIC_POLAR_STR -h5261 PWAG40 KWNO 36HR_FL240_ATLANTIC_POLAR_STR -h5266 PWAF30 KWNO 30HR_FL300_ATLANTIC_POLAR_STR -h5267 PWAG30 KWNO 36HR_FL300_ATLANTIC_POLAR_STR -h5272 PWAF25 KWNO 30HR_FL340_ATLANTIC_POLAR_STR -h5273 PWAG25 KWNO 36HR_FL340_ATLANTIC_POLAR_STR -h5278 PWAF20 KWNO 30HR_FL390_ATLANTIC_POLAR_STR -h5279 PWAG20 KWNO 36HR_FL390_ATLANTIC_POLAR_STR -h5284 PWAF15 KWNO 30HR_FL450_ATLANTIC_POLAR_STR -h5285 PWAG15 KWNO 36HR_FL450_ATLANTIC_POLAR_STR -h5290 PWAF07 KWNO 30HR_FL630_ATLANTIC_POLAR_STR -h5291 PWAG07 KWNO 36HR_FL630_ATLANTIC_POLAR_STR - -i0612 5436 5437 5442 5443 5848 5849 5300 5301 5306 5307 5312 5313 5318 5319 5324 5325 5330 5331 5336 5337 -i5436 PWYB85 KWNO 06HR_FL050_N_PAC_POLAR_STR -i5437 PWYC85 KWNO 12HR_FL050_N_PAC_POLAR_STR -i5442 PWYB70 KWNO 06HR_FL100_N_PAC_POLAR_STR -i5443 PWYC70 KWNO 12HR_FL100_N_PAC_POLAR_STR -i5848 PWYB60 KWNO 06HR_FL140_N_PAC_POLAR_STR -i5849 PWYC60 KWNO 12HR_FL140_N_PAC_POLAR_STR -i5300 PWYB50 KWNO 06HR_FL180_N_PAC_POLAR_STR -i5301 PWYC50 KWNO 12HR_FL180_N_PAC_POLAR_STR -i5306 PWYB40 KWNO 06HR_FL240_N_PAC_POLAR_STR -i5307 PWYC40 KWNO 12HR_FL240_N_PAC_POLAR_STR -i5312 PWYB30 KWNO 06HR_FL300_N_PAC_POLAR_STR -i5313 PWYC30 KWNO 12HR_FL300_N_PAC_POLAR_STR -i5318 PWYB25 KWNO 06HR_FL340_N_PAC_POLAR_STR -i5319 PWYC25 KWNO 12HR_FL340_N_PAC_POLAR_STR -i5324 PWYB20 KWNO 06HR_FL390_N_PAC_POLAR_STR -i5325 PWYC20 KWNO 12HR_FL390_N_PAC_POLAR_STR -i5330 PWYB15 KWNO 06HR_FL450_N_PAC_POLAR_STR -i5331 PWYC15 KWNO 12HR_FL450_N_PAC_POLAR_STR -i5336 PWYB07 KWNO 06HR_FL630_N_PAC_POLAR_STR -i5337 PWYC07 KWNO 12HR_FL630_N_PAC_POLAR_STR - -i1824 5438 5439 5444 5445 5850 5851 5302 5303 5308 5309 5314 5315 5320 5321 5326 5327 5332 5333 5338 5339 -i5438 PWYD85 KWNO 18HR_FL050_N_PAC_POLAR_STR -i5439 PWYE85 KWNO 24HR_FL050_N_PAC_POLAR_STR -i5444 PWYD70 KWNO 18HR_FL100_N_PAC_POLAR_STR -i5445 PWYE70 KWNO 24HR_FL100_N_PAC_POLAR_STR -i5850 PWYD60 KWNO 18HR_FL140_N_PAC_POLAR_STR -i5851 PWYE60 KWNO 24HR_FL140_N_PAC_POLAR_STR -i5302 PWYD50 KWNO 18HR_FL180_N_PAC_POLAR_STR -i5303 PWYE50 KWNO 24HR_FL180_N_PAC_POLAR_STR -i5308 PWYD40 KWNO 18HR_FL240_N_PAC_POLAR_STR -i5309 PWYE40 KWNO 24HR_FL240_N_PAC_POLAR_STR -i5314 PWYD30 KWNO 18HR_FL300_N_PAC_POLAR_STR -i5315 PWYE30 KWNO 24HR_FL300_N_PAC_POLAR_STR -i5320 PWYD25 KWNO 18HR_FL340_N_PAC_POLAR_STR -i5321 PWYE25 KWNO 24HR_FL340_N_PAC_POLAR_STR -i5326 PWYD20 KWNO 18HR_FL390_N_PAC_POLAR_STR -i5327 PWYE20 KWNO 24HR_FL390_N_PAC_POLAR_STR -i5332 PWYD15 KWNO 18HR_FL450_N_PAC_POLAR_STR -i5333 PWYE15 KWNO 24HR_FL450_N_PAC_POLAR_STR -i5338 PWYD07 KWNO 18HR_FL630_N_PAC_POLAR_STR -i5339 PWYE07 KWNO 24HR_FL630_N_PAC_POLAR_STR - -i3036 5440 5441 5446 5447 5852 5853 5304 5305 5310 5311 5316 5317 5322 5323 5328 5329 5334 5335 5340 5341 -i5440 PWYF85 KWNO 30HR_FL050_N_PAC_POLAR_STR -i5441 PWYG85 KWNO 36HR_FL050_N_PAC_POLAR_STR -i5446 PWYF70 KWNO 30HR_FL100_N_PAC_POLAR_STR -i5447 PWYG70 KWNO 36HR_FL100_N_PAC_POLAR_STR -i5852 PWYF60 KWNO 30HR_FL140_N_PAC_POLAR_STR -i5853 PWYG60 KWNO 36HR_FL140_N_PAC_POLAR_STR -i5304 PWYF50 KWNO 30HR_FL180_N_PAC_POLAR_STR -i5305 PWYG50 KWNO 36HR_FL180_N_PAC_POLAR_STR -i5310 PWYF40 KWNO 30HR_FL240_N_PAC_POLAR_STR -i5311 PWYG40 KWNO 36HR_FL240_N_PAC_POLAR_STR -i5316 PWYF30 KWNO 30HR_FL300_N_PAC_POLAR_STR -i5317 PWYG30 KWNO 36HR_FL300_N_PAC_POLAR_STR -i5322 PWYF25 KWNO 30HR_FL340_N_PAC_POLAR_STR -i5323 PWYG25 KWNO 36HR_FL340_N_PAC_POLAR_STR -i5328 PWYF20 KWNO 30HR_FL390_N_PAC_POLAR_STR -i5329 PWYG20 KWNO 36HR_FL390_N_PAC_POLAR_STR -i5334 PWYF15 KWNO 30HR_FL450_N_PAC_POLAR_STR -i5335 PWYG15 KWNO 36HR_FL450_N_PAC_POLAR_STR -i5340 PWYF07 KWNO 30HR_FL630_N_PAC_POLAR_STR -i5341 PWYG07 KWNO 36HR_FL630_N_PAC_POLAR_STR - -j0612 5450 5451 5456 5457 5854 5855 5350 5351 5356 5357 5362 5363 5368 5369 5374 5375 5380 5381 5386 5387 -j5450 PWJB85 KWNO 06HR_FL050_S_PAC_POLAR_STR -j5451 PWJC85 KWNO 12HR_FL050_S_PAC_POLAR_STR -j5456 PWJB70 KWNO 06HR_FL100_S_PAC_POLAR_STR -j5457 PWJC70 KWNO 12HR_FL100_S_PAC_POLAR_STR -j5854 PWJB60 KWNO 06HR_FL140_S_PAC_POLAR_STR -j5855 PWJC60 KWNO 12HR_FL140_S_PAC_POLAR_STR -j5350 PWJB50 KWNO 06HR_FL180_S_PAC_POLAR_STR -j5351 PWJC50 KWNO 12HR_FL180_S_PAC_POLAR_STR -j5356 PWJB40 KWNO 06HR_FL240_S_PAC_POLAR_STR -j5357 PWJC40 KWNO 12HR_FL240_S_PAC_POLAR_STR -j5362 PWJB30 KWNO 06HR_FL300_S_PAC_POLAR_STR -j5363 PWJC30 KWNO 12HR_FL300_S_PAC_POLAR_STR -j5368 PWJB25 KWNO 06HR_FL340_S_PAC_POLAR_STR -j5369 PWJC25 KWNO 12HR_FL340_S_PAC_POLAR_STR -j5374 PWJB20 KWNO 06HR_FL390_S_PAC_POLAR_STR -j5375 PWJC20 KWNO 12HR_FL390_S_PAC_POLAR_STR -j5380 PWJB15 KWNO 06HR_FL450_S_PAC_POLAR_STR -j5381 PWJC15 KWNO 12HR_FL450_S_PAC_POLAR_STR -j5386 PWJB07 KWNO 06HR_FL630_S_PAC_POLAR_STR -j5387 PWJC07 KWNO 12HR_FL630_S_PAC_POLAR_STR - -j1824 5452 5453 5458 5459 5856 5857 5352 5353 5358 5359 5364 5365 5370 5371 5376 5377 5382 5383 5388 5389 -j5452 PWJD85 KWNO 18HR_FL050_S_PAC_POLAR_STR -j5453 PWJE85 KWNO 24HR_FL050_S_PAC_POLAR_STR -j5458 PWJD70 KWNO 18HR_FL100_S_PAC_POLAR_STR -j5459 PWJE70 KWNO 24HR_FL100_S_PAC_POLAR_STR -j5856 PWJD60 KWNO 18HR_FL140_S_PAC_POLAR_STR -j5857 PWJE60 KWNO 24HR_FL140_S_PAC_POLAR_STR -j5352 PWJD50 KWNO 18HR_FL180_S_PAC_POLAR_STR -j5353 PWJE50 KWNO 24HR_FL180_S_PAC_POLAR_STR -j5358 PWJD40 KWNO 18HR_FL240_S_PAC_POLAR_STR -j5359 PWJE40 KWNO 24HR_FL240_S_PAC_POLAR_STR -j5364 PWJD30 KWNO 18HR_FL300_S_PAC_POLAR_STR -j5365 PWJE30 KWNO 24HR_FL300_S_PAC_POLAR_STR -j5370 PWJD25 KWNO 18HR_FL340_S_PAC_POLAR_STR -j5371 PWJE25 KWNO 24HR_FL340_S_PAC_POLAR_STR -j5376 PWJD20 KWNO 18HR_FL390_S_PAC_POLAR_STR -j5377 PWJE20 KWNO 24HR_FL390_S_PAC_POLAR_STR -j5382 PWJD15 KWNO 18HR_FL450_S_PAC_POLAR_STR -j5383 PWJE15 KWNO 24HR_FL450_S_PAC_POLAR_STR -j5388 PWJD07 KWNO 18HR_FL630_S_PAC_POLAR_STR -j5389 PWJE07 KWNO 24HR_FL630_S_PAC_POLAR_STR - -j3036 5454 5455 5460 5461 5858 5859 5354 5355 5360 5361 5366 5367 5372 5373 5378 5379 5384 5385 5390 5391 -j5454 PWJF85 KWNO 30HR_FL050_S_PAC_POLAR_STR -j5455 PWJG85 KWNO 36HR_FL050_S_PAC_POLAR_STR -j5460 PWJF70 KWNO 30HR_FL100_S_PAC_POLAR_STR -j5461 PWJG70 KWNO 36HR_FL100_S_PAC_POLAR_STR -j5858 PWJF60 KWNO 30HR_FL140_S_PAC_POLAR_STR -j5859 PWJG60 KWNO 36HR_FL140_S_PAC_POLAR_STR -j5354 PWJF50 KWNO 30HR_FL180_S_PAC_POLAR_STR -j5355 PWJG50 KWNO 36HR_FL180_S_PAC_POLAR_STR -j5360 PWJF40 KWNO 30HR_FL240_S_PAC_POLAR_STR -j5361 PWJG40 KWNO 36HR_FL240_S_PAC_POLAR_STR -j5366 PWJF30 KWNO 30HR_FL300_S_PAC_POLAR_STR -j5367 PWJG30 KWNO 36HR_FL300_S_PAC_POLAR_STR -j5372 PWJF25 KWNO 30HR_FL340_S_PAC_POLAR_STR -j5373 PWJG25 KWNO 36HR_FL340_S_PAC_POLAR_STR -j5378 PWJF20 KWNO 30HR_FL390_S_PAC_POLAR_STR -j5379 PWJG20 KWNO 36HR_FL390_S_PAC_POLAR_STR -j5384 PWJF15 KWNO 30HR_FL450_S_PAC_POLAR_STR -j5385 PWJG15 KWNO 36HR_FL450_S_PAC_POLAR_STR -j5390 PWJF07 KWNO 30HR_FL630_S_PAC_POLAR_STR -j5391 PWJG07 KWNO 36HR_FL630_S_PAC_POLAR_STR - -m0612 5900 5901 5906 5907 5912 5913 5918 5919 5924 5925 5930 5931 5936 5937 5942 5943 5948 5949 -m5900 PWMB85 KWNO 06HR_FL050_PACIFIC_MERC -m5901 PWMC85 KWNO 12HR_FL050_PACIFIC_MERC -m5906 PWMB70 KWNO 06HR_FL100_PACIFIC_MERC -m5907 PWMC70 KWNO 12HR_FL100_PACIFIC_MERC -m5912 PWMB50 KWNO 06HR_FL180_PACIFIC_MERC -m5913 PWMC50 KWNO 12HR_FL180_PACIFIC_MERC -m5918 PWMB40 KWNO 06HR_FL240_PACIFIC_MERC -m5919 PWMC40 KWNO 12HR_FL240_PACIFIC_MERC -m5924 PWMB30 KWNO 06HR_FL300_PACIFIC_MERC -m5925 PWMC30 KWNO 12HR_FL300_PACIFIC_MERC -m5930 PWMB25 KWNO 06HR_FL340_PACIFIC_MERC -m5931 PWMC25 KWNO 12HR_FL340_PACIFIC_MERC -m5936 PWMB20 KWNO 06HR_FL390_PACIFIC_MERC -m5937 PWMC20 KWNO 12HR_FL390_PACIFIC_MERC -m5942 PWMB15 KWNO 06HR_FL450_PACIFIC_MERC -m5943 PWMC15 KWNO 12HR_FL450_PACIFIC_MERC -m5948 PWMB07 KWNO 06HR_FL630_PACIFIC_MERC -m5949 PWMC07 KWNO 12HR_FL630_PACIFIC_MERC - -m1824 5902 5903 5908 5909 5914 5915 5920 5921 5926 5927 5932 5933 5938 5939 5944 5945 5950 5951 -m5902 PWMD85 KWNO 18HR_FL050_PACIFIC_MERC -m5903 PWME85 KWNO 24HR_FL050_PACIFIC_MERC -m5908 PWMD70 KWNO 18HR_FL100_PACIFIC_MERC -m5909 PWME70 KWNO 24HR_FL100_PACIFIC_MERC -m5914 PWMD50 KWNO 18HR_FL180_PACIFIC_MERC -m5915 PWME50 KWNO 24HR_FL180_PACIFIC_MERC -m5920 PWMD40 KWNO 18HR_FL240_PACIFIC_MERC -m5921 PWME40 KWNO 24HR_FL240_PACIFIC_MERC -m5926 PWMD30 KWNO 18HR_FL300_PACIFIC_MERC -m5927 PWME30 KWNO 24HR_FL300_PACIFIC_MERC -m5932 PWMD25 KWNO 18HR_FL340_PACIFIC_MERC -m5933 PWME25 KWNO 24HR_FL340_PACIFIC_MERC -m5938 PWMD20 KWNO 18HR_FL390_PACIFIC_MERC -m5939 PWME20 KWNO 24HR_FL390_PACIFIC_MERC -m5944 PWMD15 KWNO 18HR_FL450_PACIFIC_MERC -m5945 PWME15 KWNO 24HR_FL450_PACIFIC_MERC -m5950 PWMD07 KWNO 18HR_FL630_PACIFIC_MERC -m5951 PWME07 KWNO 24HR_FL630_PACIFIC_MERC - -m3036 5904 5905 5910 5911 5916 5917 5922 5923 5928 5929 5934 5935 5940 5941 5946 5947 5952 5953 -m5904 PWMF85 KWNO 30HR_FL050_PACIFIC_MERC -m5905 PWMG85 KWNO 36HR_FL050_PACIFIC_MERC -m5910 PWMF70 KWNO 30HR_FL100_PACIFIC_MERC -m5911 PWMG70 KWNO 36HR_FL100_PACIFIC_MERC -m5916 PWMF50 KWNO 30HR_FL180_PACIFIC_MERC -m5917 PWMG50 KWNO 36HR_FL180_PACIFIC_MERC -m5922 PWMF40 KWNO 30HR_FL240_PACIFIC_MERC -m5923 PWMG40 KWNO 36HR_FL240_PACIFIC_MERC -m5928 PWMF30 KWNO 30HR_FL300_PACIFIC_MERC -m5929 PWMG30 KWNO 36HR_FL300_PACIFIC_MERC -m5934 PWMF25 KWNO 30HR_FL340_PACIFIC_MERC -m5935 PWMG25 KWNO 36HR_FL340_PACIFIC_MERC -m5940 PWMF20 KWNO 30HR_FL390_PACIFIC_MERC -m5941 PWMG20 KWNO 36HR_FL390_PACIFIC_MERC -m5946 PWMF15 KWNO 30HR_FL450_PACIFIC_MERC -m5947 PWMG15 KWNO 36HR_FL450_PACIFIC_MERC -m5952 PWMF07 KWNO 30HR_FL630_PACIFIC_MERC -m5953 PWMG07 KWNO 36HR_FL630_PACIFIC_MERC - diff --git a/util/fix/wafsubset_wmo.tbl.06hr b/util/fix/wafsubset_wmo.tbl.06hr deleted file mode 100755 index f8dece9f23..0000000000 --- a/util/fix/wafsubset_wmo.tbl.06hr +++ /dev/null @@ -1,101 +0,0 @@ -a5400 PWNB85 KWNO 06HR_FL050_AMERICA_MERC -a5406 PWNB70 KWNO 06HR_FL100_AMERICA_MERC -a5100 PWNB50 KWBC 06HR_FL180_AMERICA_MERC -a5106 PWNB40 KWBC 06HR_FL240_AMERICA_MERC -a5112 PWNB30 KWBC 06HR_FL300_AMERICA_MERC -a5118 PWNB25 KWBC 06HR_FL340_AMERICA_MERC -a5124 PWNB20 KWBC 06HR_FL390_AMERICA_MERC -b15412 PWSB85 KWNO 06HR_FL050_EUR_S_AM_MERC -b15418 PWSB70 KWNO 06HR_FL100_EUR_S_AM_MERC -b15190 PWSB50 KWBC 06HR_FL180_EUR_S_AM_MERC -b15196 PWSB40 KWBC 06HR_FL240_EUR_S_AM_MERC -b15202 PWSB30 KWBC 06HR_FL300_EUR_S_AM_MERC -b15208 PWSB25 KWBC 06HR_FL340_EUR_S_AM_MERC -b15214 PWSB20 KWBC 06HR_FL390_EUR_S_AM_MERC -b15220 PWSB15 KWBC 06HR_FL450_EUR_S_AM_MERC -b15226 PWSB07 KWBC 06HR_FL630_EUR_S_AM_MERC -c5500 PWRB85 KWNO 06HR_FL050_AFRICA_MERC -c5506 PWRB70 KWNO 06HR_FL100_AFRICA_MERC -c5512 PWRB50 KWNO 06HR_FL180_AFRICA_MERC -c5518 PWRB40 KWNO 06HR_FL240_AFRICA_MERC -c5524 PWRB30 KWNO 06HR_FL300_AFRICA_MERC -c5530 PWRB25 KWNO 06HR_FL340_AFRICA_MERC -c5536 PWRB20 KWNO 06HR_FL390_AFRICA_MERC -c5542 PWRB15 KWNO 06HR_FL450_AFRICA_MERC -c5548 PWRB07 KWNO 06HR_FL630_AFRICA_MERC -d5554 PWZB85 KWNO 06HR_FL050_ASIA_MERC -d5560 PWZB70 KWNO 06HR_FL100_ASIA_MERC -d5566 PWZB50 KWNO 06HR_FL180_ASIA_MERC -d5572 PWZB40 KWNO 06HR_FL240_ASIA_MERC -d5578 PWZB30 KWNO 06HR_FL300_ASIA_MERC -d5584 PWZB25 KWNO 06HR_FL340_ASIA_MERC -d5590 PWZB20 KWNO 06HR_FL390_ASIA_MERC -d5596 PWZB15 KWNO 06HR_FL450_ASIA_MERC -d5602 PWZB07 KWNO 06HR_FL630_ASIA_MERC -e5608 PWGB85 KWNO 06HR_FL050_IND_OCN_MERC -e5614 PWGB70 KWNO 06HR_FL100_IND_OCN_MERC -e5620 PWGB50 KWNO 06HR_FL180_IND_OCN_MERC -e5626 PWGB40 KWNO 06HR_FL240_IND_OCN_MERC -e5632 PWGB30 KWNO 06HR_FL300_IND_OCN_MERC -e5638 PWGB25 KWNO 06HR_FL340_IND_OCN_MERC -e5644 PWGB20 KWNO 06HR_FL390_IND_OCN_MERC -e5650 PWGB15 KWNO 06HR_FL450_IND_OCN_MERC -e5656 PWGB07 KWNO 06HR_FL630_IND_OCN_MERC -f5130 PWFB50 KWBC 06HR_FL180_S_PACIFIC_MERC -f5136 PWFB40 KWBC 06HR_FL240_S_PACIFIC_MERC -f5142 PWFB30 KWBC 06HR_FL300_S_PACIFIC_MERC -f5148 PWFB25 KWBC 06HR_FL340_S_PACIFIC_MERC -f5154 PWFB20 KWBC 06HR_FL390_S_PACIFIC_MERC -f15170 PWFB85 KWBC 06HR_FL050_S_PACIFIC_MERC -f15176 PWFB70 KWBC 06HR_FL100_S_PACIFIC_MERC -f15182 PWFB15 KWBC 06HR_FL450_S_PACIFIC_MERC -f15160 PWFB07 KWBC 06HR_FL630_S_PACIFIC_MERC -g5662 PWCB85 KWNO 06HR_FL050_EURASIA_POLAR_STR -g5668 PWCB70 KWNO 06HR_FL100_EURASIA_POLAR_STR -g5836 PWCB60 KWNO 06HR_FL140_EURASIA_POLAR_STR -g5674 PWCB50 KWNO 06HR_FL180_EURASIA_POLAR_STR -g5680 PWCB40 KWNO 06HR_FL240_EURASIA_POLAR_STR -g5686 PWCB30 KWNO 06HR_FL300_EURASIA_POLAR_STR -g5692 PWCB25 KWNO 06HR_FL340_EURASIA_POLAR_STR -g5698 PWCB20 KWNO 06HR_FL390_EURASIA_POLAR_STR -g5704 PWCB15 KWNO 06HR_FL450_EURASIA_POLAR_STR -g5710 PWCB07 KWNO 06HR_FL630_EURASIA_POLAR_STR -h5424 PWAB85 KWNO 06HR_FL050_ATLANTIC_POLAR_STR -h5430 PWAB70 KWNO 06HR_FL100_ATLANTIC_POLAR_STR -h5842 PWAB60 KWNO 06HR_FL140_ATLANTIC_POLAR_STR -h5250 PWAB50 KWNO 06HR_FL180_ATLANTIC_POLAR_STR -h5256 PWAB40 KWNO 06HR_FL240_ATLANTIC_POLAR_STR -h5262 PWAB30 KWNO 06HR_FL300_ATLANTIC_POLAR_STR -h5268 PWAB25 KWNO 06HR_FL340_ATLANTIC_POLAR_STR -h5274 PWAB20 KWNO 06HR_FL390_ATLANTIC_POLAR_STR -h5280 PWAB15 KWNO 06HR_FL450_ATLANTIC_POLAR_STR -h5286 PWAB07 KWNO 06HR_FL630_ATLANTIC_POLAR_STR -i5436 PWYB85 KWNO 06HR_FL050_N_PAC_POLAR_STR -i5442 PWYB70 KWNO 06HR_FL100_N_PAC_POLAR_STR -i5848 PWYB60 KWNO 06HR_FL140_N_PAC_POLAR_STR -i5300 PWYB50 KWNO 06HR_FL180_N_PAC_POLAR_STR -i5306 PWYB40 KWNO 06HR_FL240_N_PAC_POLAR_STR -i5312 PWYB30 KWNO 06HR_FL300_N_PAC_POLAR_STR -i5318 PWYB25 KWNO 06HR_FL340_N_PAC_POLAR_STR -i5324 PWYB20 KWNO 06HR_FL390_N_PAC_POLAR_STR -i5330 PWYB15 KWNO 06HR_FL450_N_PAC_POLAR_STR -i5336 PWYB07 KWNO 06HR_FL630_N_PAC_POLAR_STR -j5450 PWJB85 KWNO 06HR_FL050_S_PAC_POLAR_STR -j5456 PWJB70 KWNO 06HR_FL100_S_PAC_POLAR_STR -j5854 PWJB60 KWNO 06HR_FL140_S_PAC_POLAR_STR -j5350 PWJB50 KWNO 06HR_FL180_S_PAC_POLAR_STR -j5356 PWJB40 KWNO 06HR_FL240_S_PAC_POLAR_STR -j5362 PWJB30 KWNO 06HR_FL300_S_PAC_POLAR_STR -j5368 PWJB25 KWNO 06HR_FL340_S_PAC_POLAR_STR -j5374 PWJB20 KWNO 06HR_FL390_S_PAC_POLAR_STR -j5380 PWJB15 KWNO 06HR_FL450_S_PAC_POLAR_STR -j5386 PWJB07 KWNO 06HR_FL630_S_PAC_POLAR_STR -m5900 PWMB85 KWNO 06HR_FL050_PACIFIC_MERC -m5906 PWMB70 KWNO 06HR_FL100_PACIFIC_MERC -m5912 PWMB50 KWNO 06HR_FL180_PACIFIC_MERC -m5918 PWMB40 KWNO 06HR_FL240_PACIFIC_MERC -m5924 PWMB30 KWNO 06HR_FL300_PACIFIC_MERC -m5930 PWMB25 KWNO 06HR_FL340_PACIFIC_MERC -m5936 PWMB20 KWNO 06HR_FL390_PACIFIC_MERC -m5942 PWMB15 KWNO 06HR_FL450_PACIFIC_MERC -m5948 PWMB07 KWNO 06HR_FL630_PACIFIC_MERC diff --git a/util/fix/wafsubset_wmo.tbl.12hr b/util/fix/wafsubset_wmo.tbl.12hr deleted file mode 100755 index 2b7b65bca2..0000000000 --- a/util/fix/wafsubset_wmo.tbl.12hr +++ /dev/null @@ -1,101 +0,0 @@ -a5401 PWNC85 KWNO 12HR_FL050_AMERICA_MERC -a5407 PWNC70 KWNO 12HR_FL100_AMERICA_MERC -a5101 PWNC50 KWBC 12HR_FL180_AMERICA_MERC -a5107 PWNC40 KWBC 12HR_FL240_AMERICA_MERC -a5113 PWNC30 KWBC 12HR_FL300_AMERICA_MERC -a5119 PWNC25 KWBC 12HR_FL340_AMERICA_MERC -a5125 PWNC20 KWBC 12HR_FL390_AMERICA_MERC -b15413 PWSC85 KWNO 12HR_FL050_EUR_S_AM_MERC -b15419 PWSC70 KWNO 12HR_FL100_EUR_S_AM_MERC -b15191 PWSC50 KWBC 12HR_FL180_EUR_S_AM_MERC -b15197 PWSC40 KWBC 12HR_FL240_EUR_S_AM_MERC -b15203 PWSC30 KWBC 12HR_FL300_EUR_S_AM_MERC -b15209 PWSC25 KWBC 12HR_FL340_EUR_S_AM_MERC -b15215 PWSC20 KWBC 12HR_FL390_EUR_S_AM_MERC -b15221 PWSC15 KWBC 12HR_FL450_EUR_S_AM_MERC -b15227 PWSC07 KWBC 12HR_FL630_EUR_S_AM_MERC -c5501 PWRC85 KWNO 12HR_FL050_AFRICA_MERC -c5507 PWRC70 KWNO 12HR_FL100_AFRICA_MERC -c5513 PWRC50 KWNO 12HR_FL180_AFRICA_MERC -c5519 PWRC40 KWNO 12HR_FL240_AFRICA_MERC -c5525 PWRC30 KWNO 12HR_FL300_AFRICA_MERC -c5531 PWRC25 KWNO 12HR_FL340_AFRICA_MERC -c5537 PWRC20 KWNO 12HR_FL390_AFRICA_MERC -c5543 PWRC15 KWNO 12HR_FL450_AFRICA_MERC -c5549 PWRC07 KWNO 12HR_FL630_AFRICA_MERC -d5555 PWZC85 KWNO 12HR_FL050_ASIA_MERC -d5561 PWZC70 KWNO 12HR_FL100_ASIA_MERC -d5567 PWZC50 KWNO 12HR_FL180_ASIA_MERC -d5573 PWZC40 KWNO 12HR_FL240_ASIA_MERC -d5579 PWZC30 KWNO 12HR_FL300_ASIA_MERC -d5585 PWZC25 KWNO 12HR_FL340_ASIA_MERC -d5591 PWZC20 KWNO 12HR_FL390_ASIA_MERC -d5597 PWZC15 KWNO 12HR_FL450_ASIA_MERC -d5603 PWZC07 KWNO 12HR_FL630_ASIA_MERC -e5609 PWGC85 KWNO 12HR_FL050_IND_OCN_MERC -e5615 PWGC70 KWNO 12HR_FL100_IND_OCN_MERC -e5621 PWGC50 KWNO 12HR_FL180_IND_OCN_MERC -e5627 PWGC40 KWNO 12HR_FL240_IND_OCN_MERC -e5633 PWGC30 KWNO 12HR_FL300_IND_OCN_MERC -e5639 PWGC25 KWNO 12HR_FL340_IND_OCN_MERC -e5645 PWGC20 KWNO 12HR_FL390_IND_OCN_MERC -e5651 PWGC15 KWNO 12HR_FL450_IND_OCN_MERC -e5657 PWGC07 KWNO 12HR_FL630_IND_OCN_MERC -f5131 PWFC50 KWBC 12HR_FL180_S_PACIFIC_MERC -f5137 PWFC40 KWBC 12HR_FL240_S_PACIFIC_MERC -f5143 PWFC30 KWBC 12HR_FL300_S_PACIFIC_MERC -f5149 PWFC25 KWBC 12HR_FL340_S_PACIFIC_MERC -f5155 PWFC20 KWBC 12HR_FL390_S_PACIFIC_MERC -f15171 PWFC85 KWBC 12HR_FL050_S_PACIFIC_MERC -f15177 PWFC70 KWBC 12HR_FL100_S_PACIFIC_MERC -f15183 PWFC15 KWBC 12HR_FL450_S_PACIFIC_MERC -f15161 PWFC07 KWBC 12HR_FL630_S_PACIFIC_MERC -g5663 PWCC85 KWNO 12HR_FL050_EURASIA_POLAR_STR -g5669 PWCC70 KWNO 12HR_FL100_EURASIA_POLAR_STR -g5837 PWCC60 KWNO 12HR_FL140_EURASIA_POLAR_STR -g5675 PWCC50 KWNO 12HR_FL180_EURASIA_POLAR_STR -g5681 PWCC40 KWNO 12HR_FL240_EURASIA_POLAR_STR -g5687 PWCC30 KWNO 12HR_FL300_EURASIA_POLAR_STR -g5693 PWCC25 KWNO 12HR_FL340_EURASIA_POLAR_STR -g5699 PWCC20 KWNO 12HR_FL390_EURASIA_POLAR_STR -g5705 PWCC15 KWNO 12HR_FL450_EURASIA_POLAR_STR -g5711 PWCC07 KWNO 12HR_FL630_EURASIA_POLAR_STR -h5425 PWAC85 KWNO 12HR_FL050_ATLANTIC_POLAR_STR -h5431 PWAC70 KWNO 12HR_FL100_ATLANTIC_POLAR_STR -h5843 PWAC60 KWNO 12HR_FL140_ATLANTIC_POLAR_STR -h5251 PWAC50 KWNO 12HR_FL180_ATLANTIC_POLAR_STR -h5257 PWAC40 KWNO 12HR_FL240_ATLANTIC_POLAR_STR -h5263 PWAC30 KWNO 12HR_FL300_ATLANTIC_POLAR_STR -h5269 PWAC25 KWNO 12HR_FL340_ATLANTIC_POLAR_STR -h5275 PWAC20 KWNO 12HR_FL390_ATLANTIC_POLAR_STR -h5281 PWAC15 KWNO 12HR_FL450_ATLANTIC_POLAR_STR -h5287 PWAC07 KWNO 12HR_FL630_ATLANTIC_POLAR_STR -i5437 PWYC85 KWNO 12HR_FL050_N_PAC_POLAR_STR -i5443 PWYC70 KWNO 12HR_FL100_N_PAC_POLAR_STR -i5849 PWYC60 KWNO 12HR_FL140_N_PAC_POLAR_STR -i5301 PWYC50 KWNO 12HR_FL180_N_PAC_POLAR_STR -i5307 PWYC40 KWNO 12HR_FL240_N_PAC_POLAR_STR -i5313 PWYC30 KWNO 12HR_FL300_N_PAC_POLAR_STR -i5319 PWYC25 KWNO 12HR_FL340_N_PAC_POLAR_STR -i5325 PWYC20 KWNO 12HR_FL390_N_PAC_POLAR_STR -i5331 PWYC15 KWNO 12HR_FL450_N_PAC_POLAR_STR -i5337 PWYC07 KWNO 12HR_FL630_N_PAC_POLAR_STR -j5451 PWJC85 KWNO 12HR_FL050_S_PAC_POLAR_STR -j5457 PWJC70 KWNO 12HR_FL100_S_PAC_POLAR_STR -j5855 PWJC60 KWNO 12HR_FL140_S_PAC_POLAR_STR -j5351 PWJC50 KWNO 12HR_FL180_S_PAC_POLAR_STR -j5357 PWJC40 KWNO 12HR_FL240_S_PAC_POLAR_STR -j5363 PWJC30 KWNO 12HR_FL300_S_PAC_POLAR_STR -j5369 PWJC25 KWNO 12HR_FL340_S_PAC_POLAR_STR -j5375 PWJC20 KWNO 12HR_FL390_S_PAC_POLAR_STR -j5381 PWJC15 KWNO 12HR_FL450_S_PAC_POLAR_STR -j5387 PWJC07 KWNO 12HR_FL630_S_PAC_POLAR_STR -m5901 PWMC85 KWNO 12HR_FL050_PACIFIC_MERC -m5907 PWMC70 KWNO 12HR_FL100_PACIFIC_MERC -m5913 PWMC50 KWNO 12HR_FL180_PACIFIC_MERC -m5919 PWMC40 KWNO 12HR_FL240_PACIFIC_MERC -m5925 PWMC30 KWNO 12HR_FL300_PACIFIC_MERC -m5931 PWMC25 KWNO 12HR_FL340_PACIFIC_MERC -m5937 PWMC20 KWNO 12HR_FL390_PACIFIC_MERC -m5943 PWMC15 KWNO 12HR_FL450_PACIFIC_MERC -m5949 PWMC07 KWNO 12HR_FL630_PACIFIC_MERC diff --git a/util/fix/wafsubset_wmo.tbl.18hr b/util/fix/wafsubset_wmo.tbl.18hr deleted file mode 100755 index 9527956b3c..0000000000 --- a/util/fix/wafsubset_wmo.tbl.18hr +++ /dev/null @@ -1,101 +0,0 @@ -a5402 PWND85 KWNO 18HR_FL050_AMERICA_MERC -a5408 PWND70 KWNO 18HR_FL100_AMERICA_MERC -a5102 PWND50 KWBC 18HR_FL180_AMERICA_MERC -a5108 PWND40 KWBC 18HR_FL240_AMERICA_MERC -a5114 PWND30 KWBC 18HR_FL300_AMERICA_MERC -a5120 PWND25 KWBC 18HR_FL340_AMERICA_MERC -a5126 PWND20 KWBC 18HR_FL390_AMERICA_MERC -b15414 PWSD85 KWNO 18HR_FL050_EUR_S_AM_MERC -b15420 PWSD70 KWNO 18HR_FL100_EUR_S_AM_MERC -b15192 PWSD50 KWBC 18HR_FL180_EUR_S_AM_MERC -b15198 PWSD40 KWBC 18HR_FL240_EUR_S_AM_MERC -b15204 PWSD30 KWBC 18HR_FL300_EUR_S_AM_MERC -b15210 PWSD25 KWBC 18HR_FL340_EUR_S_AM_MERC -b15216 PWSD20 KWBC 18HR_FL390_EUR_S_AM_MERC -b15222 PWSD15 KWBC 18HR_FL450_EUR_S_AM_MERC -b15228 PWSD07 KWBC 18HR_FL630_EUR_S_AM_MERC -c5502 PWRD85 KWNO 18HR_FL050_AFRICA_MERC -c5508 PWRD70 KWNO 18HR_FL100_AFRICA_MERC -c5514 PWRD50 KWNO 18HR_FL180_AFRICA_MERC -c5520 PWRD40 KWNO 18HR_FL240_AFRICA_MERC -c5526 PWRD30 KWNO 18HR_FL300_AFRICA_MERC -c5532 PWRD25 KWNO 18HR_FL340_AFRICA_MERC -c5538 PWRD20 KWNO 18HR_FL390_AFRICA_MERC -c5544 PWRD15 KWNO 18HR_FL450_AFRICA_MERC -c5550 PWRD07 KWNO 18HR_FL630_AFRICA_MERC -d5556 PWZD85 KWNO 18HR_FL050_ASIA_MERC -d5562 PWZD70 KWNO 18HR_FL100_ASIA_MERC -d5568 PWZD50 KWNO 18HR_FL180_ASIA_MERC -d5574 PWZD40 KWNO 18HR_FL240_ASIA_MERC -d5580 PWZD30 KWNO 18HR_FL300_ASIA_MERC -d5586 PWZD25 KWNO 18HR_FL340_ASIA_MERC -d5592 PWZD20 KWNO 18HR_FL390_ASIA_MERC -d5598 PWZD15 KWNO 18HR_FL450_ASIA_MERC -d5604 PWZD07 KWNO 18HR_FL630_ASIA_MERC -e5610 PWGD85 KWNO 18HR_FL050_IND_OCN_MERC -e5616 PWGD70 KWNO 18HR_FL100_IND_OCN_MERC -e5622 PWGD50 KWNO 18HR_FL180_IND_OCN_MERC -e5628 PWGD40 KWNO 18HR_FL240_IND_OCN_MERC -e5634 PWGD30 KWNO 18HR_FL300_IND_OCN_MERC -e5640 PWGD25 KWNO 18HR_FL340_IND_OCN_MERC -e5646 PWGD20 KWNO 18HR_FL390_IND_OCN_MERC -e5652 PWGD15 KWNO 18HR_FL450_IND_OCN_MERC -e5658 PWGD07 KWNO 18HR_FL630_IND_OCN_MERC -f5132 PWFD50 KWBC 18HR_FL180_S_PACIFIC_MERC -f5138 PWFD40 KWBC 18HR_FL240_S_PACIFIC_MERC -f5144 PWFD30 KWBC 18HR_FL300_S_PACIFIC_MERC -f5150 PWFD25 KWBC 18HR_FL340_S_PACIFIC_MERC -f5156 PWFD20 KWBC 18HR_FL390_S_PACIFIC_MERC -f15172 PWFD85 KWBC 18HR_FL050_S_PACIFIC_MERC -f15178 PWFD70 KWBC 18HR_FL100_S_PACIFIC_MERC -f15184 PWFD15 KWBC 18HR_FL450_S_PACIFIC_MERC -f15162 PWFD07 KWBC 18HR_FL630_S_PACIFIC_MERC -g5664 PWCD85 KWNO 18HR_FL050_EURASIA_POLAR_STR -g5670 PWCD70 KWNO 18HR_FL100_EURASIA_POLAR_STR -g5839 PWCD60 KWNO 18HR_FL140_EURASIA_POLAR_STR -g5676 PWCD50 KWNO 18HR_FL180_EURASIA_POLAR_STR -g5682 PWCD40 KWNO 18HR_FL240_EURASIA_POLAR_STR -g5688 PWCD30 KWNO 18HR_FL300_EURASIA_POLAR_STR -g5694 PWCD25 KWNO 18HR_FL340_EURASIA_POLAR_STR -g5700 PWCD20 KWNO 18HR_FL390_EURASIA_POLAR_STR -g5706 PWCD15 KWNO 18HR_FL450_EURASIA_POLAR_STR -g5712 PWCD07 KWNO 18HR_FL630_EURASIA_POLAR_STR -h5426 PWAD85 KWNO 18HR_FL050_ATLANTIC_POLAR_STR -h5432 PWAD70 KWNO 18HR_FL100_ATLANTIC_POLAR_STR -h5844 PWAD60 KWNO 18HR_FL140_ATLANTIC_POLAR_STR -h5252 PWAD50 KWNO 18HR_FL180_ATLANTIC_POLAR_STR -h5258 PWAD40 KWNO 18HR_FL240_ATLANTIC_POLAR_STR -h5264 PWAD30 KWNO 18HR_FL300_ATLANTIC_POLAR_STR -h5270 PWAD25 KWNO 18HR_FL340_ATLANTIC_POLAR_STR -h5276 PWAD20 KWNO 18HR_FL390_ATLANTIC_POLAR_STR -h5282 PWAD15 KWNO 18HR_FL450_ATLANTIC_POLAR_STR -h5288 PWAD07 KWNO 18HR_FL630_ATLANTIC_POLAR_STR -i5438 PWYD85 KWNO 18HR_FL050_N_PAC_POLAR_STR -i5444 PWYD70 KWNO 18HR_FL100_N_PAC_POLAR_STR -i5850 PWYD60 KWNO 18HR_FL140_N_PAC_POLAR_STR -i5302 PWYD50 KWNO 18HR_FL180_N_PAC_POLAR_STR -i5308 PWYD40 KWNO 18HR_FL240_N_PAC_POLAR_STR -i5314 PWYD30 KWNO 18HR_FL300_N_PAC_POLAR_STR -i5320 PWYD25 KWNO 18HR_FL340_N_PAC_POLAR_STR -i5326 PWYD20 KWNO 18HR_FL390_N_PAC_POLAR_STR -i5332 PWYD15 KWNO 18HR_FL450_N_PAC_POLAR_STR -i5338 PWYD07 KWNO 18HR_FL630_N_PAC_POLAR_STR -j5452 PWJD85 KWNO 18HR_FL050_S_PAC_POLAR_STR -j5458 PWJD70 KWNO 18HR_FL100_S_PAC_POLAR_STR -j5856 PWJD60 KWNO 18HR_FL140_S_PAC_POLAR_STR -j5352 PWJD50 KWNO 18HR_FL180_S_PAC_POLAR_STR -j5358 PWJD40 KWNO 18HR_FL240_S_PAC_POLAR_STR -j5364 PWJD30 KWNO 18HR_FL300_S_PAC_POLAR_STR -j5370 PWJD25 KWNO 18HR_FL340_S_PAC_POLAR_STR -j5376 PWJD20 KWNO 18HR_FL390_S_PAC_POLAR_STR -j5382 PWJD15 KWNO 18HR_FL450_S_PAC_POLAR_STR -j5388 PWJD07 KWNO 18HR_FL630_S_PAC_POLAR_STR -m5902 PWMD85 KWNO 18HR_FL050_PACIFIC_MERC -m5908 PWMD70 KWNO 18HR_FL100_PACIFIC_MERC -m5914 PWMD50 KWNO 18HR_FL180_PACIFIC_MERC -m5920 PWMD40 KWNO 18HR_FL240_PACIFIC_MERC -m5926 PWMD30 KWNO 18HR_FL300_PACIFIC_MERC -m5932 PWMD25 KWNO 18HR_FL340_PACIFIC_MERC -m5938 PWMD20 KWNO 18HR_FL390_PACIFIC_MERC -m5944 PWMD15 KWNO 18HR_FL450_PACIFIC_MERC -m5950 PWMD07 KWNO 18HR_FL630_PACIFIC_MERC diff --git a/util/fix/wafsubset_wmo.tbl.24hr b/util/fix/wafsubset_wmo.tbl.24hr deleted file mode 100755 index 389e053ec3..0000000000 --- a/util/fix/wafsubset_wmo.tbl.24hr +++ /dev/null @@ -1,101 +0,0 @@ -a5403 PWNE85 KWNO 24HR_FL050_AMERICA_MERC -a5409 PWNE70 KWNO 24HR_FL100_AMERICA_MERC -a5103 PWNE50 KWBC 24HR_FL180_AMERICA_MERC -a5109 PWNE40 KWBC 24HR_FL240_AMERICA_MERC -a5115 PWNE30 KWBC 24HR_FL300_AMERICA_MERC -a5121 PWNE25 KWBC 24HR_FL340_AMERICA_MERC -a5127 PWNE20 KWBC 24HR_FL390_AMERICA_MERC -b15415 PWSE85 KWNO 24HR_FL050_EUR_S_AM_MERC -b15421 PWSE70 KWNO 24HR_FL100_EUR_S_AM_MERC -b15193 PWSE50 KWBC 24HR_FL180_EUR_S_AM_MERC -b15199 PWSE40 KWBC 24HR_FL240_EUR_S_AM_MERC -b15205 PWSE30 KWBC 24HR_FL300_EUR_S_AM_MERC -b15211 PWSE25 KWBC 24HR_FL340_EUR_S_AM_MERC -b15217 PWSE20 KWBC 24HR_FL390_EUR_S_AM_MERC -b15223 PWSE15 KWBC 24HR_FL450_EUR_S_AM_MERC -b15229 PWSE07 KWBC 24HR_FL630_EUR_S_AM_MERC -c5503 PWRE85 KWNO 24HR_FL050_AFRICA_MERC -c5509 PWRE70 KWNO 24HR_FL100_AFRICA_MERC -c5515 PWRE50 KWNO 24HR_FL180_AFRICA_MERC -c5521 PWRE40 KWNO 24HR_FL240_AFRICA_MERC -c5527 PWRE30 KWNO 24HR_FL300_AFRICA_MERC -c5533 PWRE25 KWNO 24HR_FL340_AFRICA_MERC -c5539 PWRE20 KWNO 24HR_FL390_AFRICA_MERC -c5545 PWRE15 KWNO 24HR_FL450_AFRICA_MERC -c5551 PWRE07 KWNO 24HR_FL630_AFRICA_MERC -d5557 PWZE85 KWNO 24HR_FL050_ASIA_MERC -d5563 PWZE70 KWNO 24HR_FL100_ASIA_MERC -d5569 PWZE50 KWNO 24HR_FL180_ASIA_MERC -d5575 PWZE40 KWNO 24HR_FL240_ASIA_MERC -d5581 PWZE30 KWNO 24HR_FL300_ASIA_MERC -d5587 PWZE25 KWNO 24HR_FL340_ASIA_MERC -d5593 PWZE20 KWNO 24HR_FL390_ASIA_MERC -d5599 PWZE15 KWNO 24HR_FL450_ASIA_MERC -d5605 PWZE07 KWNO 24HR_FL630_ASIA_MERC -e5611 PWGE85 KWNO 24HR_FL050_IND_OCN_MERC -e5617 PWGE70 KWNO 24HR_FL100_IND_OCN_MERC -e5623 PWGE50 KWNO 24HR_FL180_IND_OCN_MERC -e5629 PWGE40 KWNO 24HR_FL240_IND_OCN_MERC -e5635 PWGE30 KWNO 24HR_FL300_IND_OCN_MERC -e5641 PWGE25 KWNO 24HR_FL340_IND_OCN_MERC -e5647 PWGE20 KWNO 24HR_FL390_IND_OCN_MERC -e5653 PWGE15 KWNO 24HR_FL450_IND_OCN_MERC -e5659 PWGE07 KWNO 24HR_FL630_IND_OCN_MERC -f5133 PWFE50 KWBC 24HR_FL180_S_PACIFIC_MERC -f5139 PWFE40 KWBC 24HR_FL240_S_PACIFIC_MERC -f5145 PWFE30 KWBC 24HR_FL300_S_PACIFIC_MERC -f5151 PWFE25 KWBC 24HR_FL340_S_PACIFIC_MERC -f5157 PWFE20 KWBC 24HR_FL390_S_PACIFIC_MERC -f15173 PWFE85 KWBC 24HR_FL050_S_PACIFIC_MERC -f15179 PWFE70 KWBC 24HR_FL100_S_PACIFIC_MERC -f15185 PWFE15 KWBC 24HR_FL450_S_PACIFIC_MERC -f15163 PWFE07 KWBC 24HR_FL630_S_PACIFIC_MERC -g5665 PWCE85 KWNO 24HR_FL050_EURASIA_POLAR_STR -g5671 PWCE70 KWNO 24HR_FL100_EURASIA_POLAR_STR -g5838 PWCE60 KWNO 24HR_FL140_EURASIA_POLAR_STR -g5677 PWCE50 KWNO 24HR_FL180_EURASIA_POLAR_STR -g5683 PWCE40 KWNO 24HR_FL240_EURASIA_POLAR_STR -g5689 PWCE30 KWNO 24HR_FL300_EURASIA_POLAR_STR -g5695 PWCE25 KWNO 24HR_FL340_EURASIA_POLAR_STR -g5701 PWCE20 KWNO 24HR_FL390_EURASIA_POLAR_STR -g5707 PWCE15 KWNO 24HR_FL450_EURASIA_POLAR_STR -g5713 PWCE07 KWNO 24HR_FL630_EURASIA_POLAR_STR -h5427 PWAE85 KWNO 24HR_FL050_ATLANTIC_POLAR_STR -h5433 PWAE70 KWNO 24HR_FL100_ATLANTIC_POLAR_STR -h5845 PWAE60 KWNO 24HR_FL140_ATLANTIC_POLAR_STR -h5253 PWAE50 KWNO 24HR_FL180_ATLANTIC_POLAR_STR -h5259 PWAE40 KWNO 24HR_FL240_ATLANTIC_POLAR_STR -h5265 PWAE30 KWNO 24HR_FL300_ATLANTIC_POLAR_STR -h5271 PWAE25 KWNO 24HR_FL340_ATLANTIC_POLAR_STR -h5277 PWAE20 KWNO 24HR_FL390_ATLANTIC_POLAR_STR -h5283 PWAE15 KWNO 24HR_FL450_ATLANTIC_POLAR_STR -h5289 PWAE07 KWNO 24HR_FL630_ATLANTIC_POLAR_STR -i5439 PWYE85 KWNO 24HR_FL050_N_PAC_POLAR_STR -i5445 PWYE70 KWNO 24HR_FL100_N_PAC_POLAR_STR -i5851 PWYE60 KWNO 24HR_FL140_N_PAC_POLAR_STR -i5303 PWYE50 KWNO 24HR_FL180_N_PAC_POLAR_STR -i5309 PWYE40 KWNO 24HR_FL240_N_PAC_POLAR_STR -i5315 PWYE30 KWNO 24HR_FL300_N_PAC_POLAR_STR -i5321 PWYE25 KWNO 24HR_FL340_N_PAC_POLAR_STR -i5327 PWYE20 KWNO 24HR_FL390_N_PAC_POLAR_STR -i5333 PWYE15 KWNO 24HR_FL450_N_PAC_POLAR_STR -i5339 PWYE07 KWNO 24HR_FL630_N_PAC_POLAR_STR -j5453 PWJE85 KWNO 24HR_FL050_S_PAC_POLAR_STR -j5459 PWJE70 KWNO 24HR_FL100_S_PAC_POLAR_STR -j5857 PWJE60 KWNO 24HR_FL140_S_PAC_POLAR_STR -j5353 PWJE50 KWNO 24HR_FL180_S_PAC_POLAR_STR -j5359 PWJE40 KWNO 24HR_FL240_S_PAC_POLAR_STR -j5365 PWJE30 KWNO 24HR_FL300_S_PAC_POLAR_STR -j5371 PWJE25 KWNO 24HR_FL340_S_PAC_POLAR_STR -j5377 PWJE20 KWNO 24HR_FL390_S_PAC_POLAR_STR -j5383 PWJE15 KWNO 24HR_FL450_S_PAC_POLAR_STR -j5389 PWJE07 KWNO 24HR_FL630_S_PAC_POLAR_STR -m5903 PWME85 KWNO 24HR_FL050_PACIFIC_MERC -m5909 PWME70 KWNO 24HR_FL100_PACIFIC_MERC -m5915 PWME50 KWNO 24HR_FL180_PACIFIC_MERC -m5921 PWME40 KWNO 24HR_FL240_PACIFIC_MERC -m5927 PWME30 KWNO 24HR_FL300_PACIFIC_MERC -m5933 PWME25 KWNO 24HR_FL340_PACIFIC_MERC -m5939 PWME20 KWNO 24HR_FL390_PACIFIC_MERC -m5945 PWME15 KWNO 24HR_FL450_PACIFIC_MERC -m5951 PWME07 KWNO 24HR_FL630_PACIFIC_MERC diff --git a/util/fix/wafsubset_wmo.tbl.30hr b/util/fix/wafsubset_wmo.tbl.30hr deleted file mode 100755 index f7ded67097..0000000000 --- a/util/fix/wafsubset_wmo.tbl.30hr +++ /dev/null @@ -1,101 +0,0 @@ -a5404 PWNF85 KWNO 30HR_FL050_AMERICA_MERC -a5410 PWNF70 KWNO 30HR_FL100_AMERICA_MERC -a5104 PWNF50 KWBC 30HR_FL180_AMERICA_MERC -a5110 PWNF40 KWBC 30HR_FL240_AMERICA_MERC -a5116 PWNF30 KWBC 30HR_FL300_AMERICA_MERC -a5122 PWNF25 KWBC 30HR_FL340_AMERICA_MERC -a5128 PWNF20 KWBC 30HR_FL390_AMERICA_MERC -b15416 PWSF85 KWNO 30HR_FL050_EUR_S_AM_MERC -b15422 PWSF70 KWNO 30HR_FL100_EUR_S_AM_MERC -b15194 PWSF50 KWBC 30HR_FL180_EUR_S_AM_MERC -b15200 PWSF40 KWBC 30HR_FL240_EUR_S_AM_MERC -b15206 PWSF30 KWBC 30HR_FL300_EUR_S_AM_MERC -b15212 PWSF25 KWBC 30HR_FL340_EUR_S_AM_MERC -b15218 PWSF20 KWBC 30HR_FL390_EUR_S_AM_MERC -b15224 PWSF15 KWBC 30HR_FL450_EUR_S_AM_MERC -b15230 PWSF07 KWBC 30HR_FL630_EUR_S_AM_MERC -c5504 PWRF85 KWNO 30HR_FL050_AFRICA_MERC -c5510 PWRF70 KWNO 30HR_FL100_AFRICA_MERC -c5516 PWRF50 KWNO 30HR_FL180_AFRICA_MERC -c5522 PWRF40 KWNO 30HR_FL240_AFRICA_MERC -c5528 PWRF30 KWNO 30HR_FL300_AFRICA_MERC -c5534 PWRF25 KWNO 30HR_FL340_AFRICA_MERC -c5540 PWRF20 KWNO 30HR_FL390_AFRICA_MERC -c5546 PWRF15 KWNO 30HR_FL450_AFRICA_MERC -c5552 PWRF07 KWNO 30HR_FL630_AFRICA_MERC -d5558 PWZF85 KWNO 30HR_FL050_ASIA_MERC -d5564 PWZF70 KWNO 30HR_FL100_ASIA_MERC -d5570 PWZF50 KWNO 30HR_FL180_ASIA_MERC -d5576 PWZF40 KWNO 30HR_FL240_ASIA_MERC -d5582 PWZF30 KWNO 30HR_FL300_ASIA_MERC -d5588 PWZF25 KWNO 30HR_FL340_ASIA_MERC -d5594 PWZF20 KWNO 30HR_FL390_ASIA_MERC -d5600 PWZF15 KWNO 30HR_FL450_ASIA_MERC -d5606 PWZF07 KWNO 30HR_FL630_ASIA_MERC -e5612 PWGF85 KWNO 30HR_FL050_IND_OCN_MERC -e5618 PWGF70 KWNO 30HR_FL100_IND_OCN_MERC -e5624 PWGF50 KWNO 30HR_FL180_IND_OCN_MERC -e5630 PWGF40 KWNO 30HR_FL240_IND_OCN_MERC -e5636 PWGF30 KWNO 30HR_FL300_IND_OCN_MERC -e5642 PWGF25 KWNO 30HR_FL340_IND_OCN_MERC -e5648 PWGF20 KWNO 30HR_FL390_IND_OCN_MERC -e5654 PWGF15 KWNO 30HR_FL450_IND_OCN_MERC -e5660 PWGF07 KWNO 30HR_FL630_IND_OCN_MERC -f5134 PWFF50 KWBC 30HR_FL180_S_PACIFIC_MERC -f5140 PWFF40 KWBC 30HR_FL240_S_PACIFIC_MERC -f5146 PWFF30 KWBC 30HR_FL300_S_PACIFIC_MERC -f5152 PWFF25 KWBC 30HR_FL340_S_PACIFIC_MERC -f5158 PWFF20 KWBC 30HR_FL390_S_PACIFIC_MERC -f15174 PWFF85 KWBC 30HR_FL050_S_PACIFIC_MERC -f15180 PWFF70 KWBC 30HR_FL100_S_PACIFIC_MERC -f15186 PWFF15 KWBC 30HR_FL450_S_PACIFIC_MERC -f15164 PWFF07 KWBC 30HR_FL630_S_PACIFIC_MERC -g5666 PWCF85 KWNO 30HR_FL050_EURASIA_POLAR_STR -g5672 PWCF70 KWNO 30HR_FL100_EURASIA_POLAR_STR -g5840 PWCF60 KWNO 30HR_FL140_EURASIA_POLAR_STR -g5678 PWCF50 KWNO 30HR_FL180_EURASIA_POLAR_STR -g5684 PWCF40 KWNO 30HR_FL240_EURASIA_POLAR_STR -g5690 PWCF30 KWNO 30HR_FL300_EURASIA_POLAR_STR -g5696 PWCF25 KWNO 30HR_FL340_EURASIA_POLAR_STR -g5702 PWCF20 KWNO 30HR_FL390_EURASIA_POLAR_STR -g5708 PWCF15 KWNO 30HR_FL450_EURASIA_POLAR_STR -g5714 PWCF07 KWNO 30HR_FL630_EURASIA_POLAR_STR -h5428 PWAF85 KWNO 30HR_FL050_ATLANTIC_POLAR_STR -h5434 PWAF70 KWNO 30HR_FL100_ATLANTIC_POLAR_STR -h5846 PWAF60 KWNO 30HR_FL140_ATLANTIC_POLAR_STR -h5254 PWAF50 KWNO 30HR_FL180_ATLANTIC_POLAR_STR -h5260 PWAF40 KWNO 30HR_FL240_ATLANTIC_POLAR_STR -h5266 PWAF30 KWNO 30HR_FL300_ATLANTIC_POLAR_STR -h5272 PWAF25 KWNO 30HR_FL340_ATLANTIC_POLAR_STR -h5278 PWAF20 KWNO 30HR_FL390_ATLANTIC_POLAR_STR -h5284 PWAF15 KWNO 30HR_FL450_ATLANTIC_POLAR_STR -h5290 PWAF07 KWNO 30HR_FL630_ATLANTIC_POLAR_STR -i5440 PWYF85 KWNO 30HR_FL050_N_PAC_POLAR_STR -i5446 PWYF70 KWNO 30HR_FL100_N_PAC_POLAR_STR -i5852 PWYF60 KWNO 30HR_FL140_N_PAC_POLAR_STR -i5304 PWYF50 KWNO 30HR_FL180_N_PAC_POLAR_STR -i5310 PWYF40 KWNO 30HR_FL240_N_PAC_POLAR_STR -i5316 PWYF30 KWNO 30HR_FL300_N_PAC_POLAR_STR -i5322 PWYF25 KWNO 30HR_FL340_N_PAC_POLAR_STR -i5328 PWYF20 KWNO 30HR_FL390_N_PAC_POLAR_STR -i5334 PWYF15 KWNO 30HR_FL450_N_PAC_POLAR_STR -i5340 PWYF07 KWNO 30HR_FL630_N_PAC_POLAR_STR -j5454 PWJF85 KWNO 30HR_FL050_S_PAC_POLAR_STR -j5460 PWJF70 KWNO 30HR_FL100_S_PAC_POLAR_STR -j5858 PWJF60 KWNO 30HR_FL140_S_PAC_POLAR_STR -j5354 PWJF50 KWNO 30HR_FL180_S_PAC_POLAR_STR -j5360 PWJF40 KWNO 30HR_FL240_S_PAC_POLAR_STR -j5366 PWJF30 KWNO 30HR_FL300_S_PAC_POLAR_STR -j5372 PWJF25 KWNO 30HR_FL340_S_PAC_POLAR_STR -j5378 PWJF20 KWNO 30HR_FL390_S_PAC_POLAR_STR -j5384 PWJF15 KWNO 30HR_FL450_S_PAC_POLAR_STR -j5390 PWJF07 KWNO 30HR_FL630_S_PAC_POLAR_STR -m5904 PWMF85 KWNO 30HR_FL050_PACIFIC_MERC -m5910 PWMF70 KWNO 30HR_FL100_PACIFIC_MERC -m5916 PWMF50 KWNO 30HR_FL180_PACIFIC_MERC -m5922 PWMF40 KWNO 30HR_FL240_PACIFIC_MERC -m5928 PWMF30 KWNO 30HR_FL300_PACIFIC_MERC -m5934 PWMF25 KWNO 30HR_FL340_PACIFIC_MERC -m5940 PWMF20 KWNO 30HR_FL390_PACIFIC_MERC -m5946 PWMF15 KWNO 30HR_FL450_PACIFIC_MERC -m5952 PWMF07 KWNO 30HR_FL630_PACIFIC_MERC diff --git a/util/fix/wafsubset_wmo.tbl.36hr b/util/fix/wafsubset_wmo.tbl.36hr deleted file mode 100755 index 8db60d4839..0000000000 --- a/util/fix/wafsubset_wmo.tbl.36hr +++ /dev/null @@ -1,101 +0,0 @@ -a5405 PWNG85 KWNO 36HR_FL050_AMERICA_MERC -a5411 PWNG70 KWNO 36HR_FL100_AMERICA_MERC -a5105 PWNG50 KWBC 36HR_FL180_AMERICA_MERC -a5111 PWNG40 KWBC 36HR_FL240_AMERICA_MERC -a5117 PWNG30 KWBC 36HR_FL300_AMERICA_MERC -a5123 PWNG25 KWBC 36HR_FL340_AMERICA_MERC -a5129 PWNG20 KWBC 36HR_FL390_AMERICA_MERC -b15417 PWSG85 KWNO 36HR_FL050_EUR_S_AM_MERC -b15423 PWSG70 KWNO 36HR_FL100_EUR_S_AM_MERC -b15195 PWSG50 KWBC 36HR_FL180_EUR_S_AM_MERC -b15201 PWSG40 KWBC 36HR_FL240_EUR_S_AM_MERC -b15207 PWSG30 KWBC 36HR_FL300_EUR_S_AM_MERC -b15213 PWSG25 KWBC 36HR_FL340_EUR_S_AM_MERC -b15219 PWSG20 KWBC 36HR_FL390_EUR_S_AM_MERC -b15225 PWSG15 KWBC 36HR_FL450_EUR_S_AM_MERC -b15231 PWSG07 KWBC 36HR_FL630_EUR_S_AM_MERC -c5505 PWRG85 KWNO 36HR_FL050_AFRICA_MERC -c5511 PWRG70 KWNO 36HR_FL100_AFRICA_MERC -c5517 PWRG50 KWNO 36HR_FL180_AFRICA_MERC -c5523 PWRG40 KWNO 36HR_FL240_AFRICA_MERC -c5529 PWRG30 KWNO 36HR_FL300_AFRICA_MERC -c5535 PWRG25 KWNO 36HR_FL340_AFRICA_MERC -c5541 PWRG20 KWNO 36HR_FL390_AFRICA_MERC -c5547 PWRG15 KWNO 36HR_FL450_AFRICA_MERC -c5553 PWRG07 KWNO 36HR_FL630_AFRICA_MERC -d5559 PWZG85 KWNO 36HR_FL050_ASIA_MERC -d5565 PWZG70 KWNO 36HR_FL100_ASIA_MERC -d5571 PWZG50 KWNO 36HR_FL180_ASIA_MERC -d5577 PWZG40 KWNO 36HR_FL240_ASIA_MERC -d5583 PWZG30 KWNO 36HR_FL300_ASIA_MERC -d5589 PWZG25 KWNO 36HR_FL340_ASIA_MERC -d5595 PWZG20 KWNO 36HR_FL390_ASIA_MERC -d5601 PWZG15 KWNO 36HR_FL450_ASIA_MERC -d5607 PWZG07 KWNO 36HR_FL630_ASIA_MERC -e5613 PWGG85 KWNO 36HR_FL050_IND_OCN_MERC -e5619 PWGG70 KWNO 36HR_FL100_IND_OCN_MERC -e5625 PWGG50 KWNO 36HR_FL180_IND_OCN_MERC -e5631 PWGG40 KWNO 36HR_FL240_IND_OCN_MERC -e5637 PWGG30 KWNO 36HR_FL300_IND_OCN_MERC -e5643 PWGG25 KWNO 36HR_FL340_IND_OCN_MERC -e5649 PWGG20 KWNO 36HR_FL390_IND_OCN_MERC -e5655 PWGG15 KWNO 36HR_FL450_IND_OCN_MERC -e5661 PWGG07 KWNO 36HR_FL630_IND_OCN_MERC -f5135 PWFG50 KWBC 36HR_FL180_S_PACIFIC_MERC -f5141 PWFG40 KWBC 36HR_FL240_S_PACIFIC_MERC -f5147 PWFG30 KWBC 36HR_FL300_S_PACIFIC_MERC -f5153 PWFG25 KWBC 36HR_FL340_S_PACIFIC_MERC -f5159 PWFG20 KWBC 36HR_FL390_S_PACIFIC_MERC -f15175 PWFG85 KWBC 36HR_FL050_S_PACIFIC_MERC -f15181 PWFG70 KWBC 36HR_FL100_S_PACIFIC_MERC -f15187 PWFG15 KWBC 36HR_FL450_S_PACIFIC_MERC -f15165 PWFG07 KWBC 36HR_FL630_S_PACIFIC_MERC -g5667 PWCG85 KWNO 36HR_FL050_EURASIA_POLAR_STR -g5673 PWCG70 KWNO 36HR_FL100_EURASIA_POLAR_STR -g5841 PWCG60 KWNO 36HR_FL140_EURASIA_POLAR_STR -g5679 PWCG50 KWNO 36HR_FL180_EURASIA_POLAR_STR -g5685 PWCG40 KWNO 36HR_FL240_EURASIA_POLAR_STR -g5691 PWCG30 KWNO 36HR_FL300_EURASIA_POLAR_STR -g5697 PWCG25 KWNO 36HR_FL340_EURASIA_POLAR_STR -g5703 PWCG20 KWNO 36HR_FL390_EURASIA_POLAR_STR -g5709 PWCG15 KWNO 36HR_FL450_EURASIA_POLAR_STR -g5715 PWCG07 KWNO 36HR_FL630_EURASIA_POLAR_STR -h5429 PWAG85 KWNO 36HR_FL050_ATLANTIC_POLAR_STR -h5435 PWAG70 KWNO 36HR_FL100_ATLANTIC_POLAR_STR -h5847 PWAG60 KWNO 36HR_FL140_ATLANTIC_POLAR_STR -h5255 PWAG50 KWNO 36HR_FL180_ATLANTIC_POLAR_STR -h5261 PWAG40 KWNO 36HR_FL240_ATLANTIC_POLAR_STR -h5267 PWAG30 KWNO 36HR_FL300_ATLANTIC_POLAR_STR -h5273 PWAG25 KWNO 36HR_FL340_ATLANTIC_POLAR_STR -h5279 PWAG20 KWNO 36HR_FL390_ATLANTIC_POLAR_STR -h5285 PWAG15 KWNO 36HR_FL450_ATLANTIC_POLAR_STR -h5291 PWAG07 KWNO 36HR_FL630_ATLANTIC_POLAR_STR -i5441 PWYG85 KWNO 36HR_FL050_N_PAC_POLAR_STR -i5447 PWYG70 KWNO 36HR_FL100_N_PAC_POLAR_STR -i5853 PWYG60 KWNO 36HR_FL140_N_PAC_POLAR_STR -i5305 PWYG50 KWNO 36HR_FL180_N_PAC_POLAR_STR -i5311 PWYG40 KWNO 36HR_FL240_N_PAC_POLAR_STR -i5317 PWYG30 KWNO 36HR_FL300_N_PAC_POLAR_STR -i5323 PWYG25 KWNO 36HR_FL340_N_PAC_POLAR_STR -i5329 PWYG20 KWNO 36HR_FL390_N_PAC_POLAR_STR -i5335 PWYG15 KWNO 36HR_FL450_N_PAC_POLAR_STR -i5341 PWYG07 KWNO 36HR_FL630_N_PAC_POLAR_STR -j5455 PWJG85 KWNO 36HR_FL050_S_PAC_POLAR_STR -j5461 PWJG70 KWNO 36HR_FL100_S_PAC_POLAR_STR -j5859 PWJG60 KWNO 36HR_FL140_S_PAC_POLAR_STR -j5355 PWJG50 KWNO 36HR_FL180_S_PAC_POLAR_STR -j5361 PWJG40 KWNO 36HR_FL240_S_PAC_POLAR_STR -j5367 PWJG30 KWNO 36HR_FL300_S_PAC_POLAR_STR -j5373 PWJG25 KWNO 36HR_FL340_S_PAC_POLAR_STR -j5379 PWJG20 KWNO 36HR_FL390_S_PAC_POLAR_STR -j5385 PWJG15 KWNO 36HR_FL450_S_PAC_POLAR_STR -j5391 PWJG07 KWNO 36HR_FL630_S_PAC_POLAR_STR -m5905 PWMG85 KWNO 36HR_FL050_PACIFIC_MERC -m5911 PWMG70 KWNO 36HR_FL100_PACIFIC_MERC -m5917 PWMG50 KWNO 36HR_FL180_PACIFIC_MERC -m5923 PWMG40 KWNO 36HR_FL240_PACIFIC_MERC -m5929 PWMG30 KWNO 36HR_FL300_PACIFIC_MERC -m5935 PWMG25 KWNO 36HR_FL340_PACIFIC_MERC -m5941 PWMG20 KWNO 36HR_FL390_PACIFIC_MERC -m5947 PWMG15 KWNO 36HR_FL450_PACIFIC_MERC -m5953 PWMG07 KWNO 36HR_FL630_PACIFIC_MERC diff --git a/util/modulefiles/gfs_util.hera b/util/modulefiles/gfs_util.hera new file mode 100644 index 0000000000..cf880d66b6 --- /dev/null +++ b/util/modulefiles/gfs_util.hera @@ -0,0 +1,29 @@ +#%Module##################################################### +## Module file for GFS util +############################################################# +# +# Loading required system modules +# + +module use -a /scratch2/NCEPDEV/nwprod/NCEPLIBS/modulefiles +# Loading Intel Compiler Suite +module load intel/18.0.5.274 + +module load bacio/2.0.3 +module load w3emc/2.3.1 +module load w3nco/2.0.6 +module load ip/3.0.1 +module load sp/2.0.2 +module load bufr/11.3.0 + +module load jasper/1.900.1 +module load png/1.2.44 +module load z/1.2.11 + +module load ncl/6.5.0 +module load gempak/7.4.2 + +module load impi/2018.0.4 + +export GEMINC=/apps/gempak/7.4.2/gempak/include +export GEMOLB=/apps/gempak/7.4.2/os/linux64/lib diff --git a/util/modulefiles/gfs_util.theia b/util/modulefiles/gfs_util.theia deleted file mode 100644 index 50c7bf1d59..0000000000 --- a/util/modulefiles/gfs_util.theia +++ /dev/null @@ -1,25 +0,0 @@ -#%Module##################################################### -## Module file for GFS util -############################################################# -# -# Loading required system modules -# - -# Loading Intel Compiler Suite -module load intel/18.1.163 -module load impi/5.1.2.150 -module load ncl/6.3.0 -module load gempak/7.4.2 - -# Loding nceplibs modules -module use -a /scratch3/NCEPDEV/nwprod/lib/modulefiles -module load bacio/v2.0.1 -module load w3emc/v2.2.0 -module load w3nco/v2.0.6 -module load ip/v3.0.0 -module load sp/v2.0.2 -module load bufr/v11.1.0 -module load graphics/v2.0.0 - -export GEMINC=/apps/gempak/7.4.2/gempak/include -export GEMOLB=/apps/gempak/7.4.2/os/linux64/lib diff --git a/util/modulefiles/gfs_util.wcoss_cray b/util/modulefiles/gfs_util.wcoss_cray index c7caab04a5..9e69300822 100755 --- a/util/modulefiles/gfs_util.wcoss_cray +++ b/util/modulefiles/gfs_util.wcoss_cray @@ -6,24 +6,21 @@ # module load modules module load craype-sandybridge - module load PrgEnv-intel/5.2.56 - module switch intel/15.0.6.233 + module load PrgEnv-intel/5.2.82 + module switch intel/18.1.163 module unload gcc module load gcc # Loading GEMPAK module unload gempak - module use -a /gpfs/hps/nco/ops/nwpara/modulefiles - module load gempak/7.3.3 -# module load gempak/6.32.0 + module load gempak/7.3.0 module unload ncarg-intel-sandybridge - module load ncarg-intel-sandybridge/6.1.0 - module load graphics-intel/2.0.0 + module load ncarg-intel-sandybridge/6.3.0 # Loading Intel-Compiled NCEP Libraries - module load bacio-intel/2.0.1 - module load w3emc-intel/2.2.0 - module load w3nco-intel/2.0.6 - module load ip-intel/3.0.0 - module load sp-intel/2.0.2 + module load bacio-intel/2.0.3 + module load w3emc-intel/2.4.0 + module load w3nco-intel/2.2.0 + module load ip-intel/3.0.2 + module load sp-intel/2.0.3 module load bufr-intel/11.3.0 diff --git a/util/modulefiles/gfs_util.wcoss_dell_p3 b/util/modulefiles/gfs_util.wcoss_dell_p3 index 28e786f46c..bde874a371 100755 --- a/util/modulefiles/gfs_util.wcoss_dell_p3 +++ b/util/modulefiles/gfs_util.wcoss_dell_p3 @@ -9,19 +9,14 @@ module load NCL/6.4.0 # Loading GEMPAK module - module use -a /gpfs/dell1/nco/ops/nwpara/modulefiles/compiler_prod/ips/18.0.1 - module load gempak/7.3.3 - -# module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ -# module load gempak/7.3.1 + module use -a /gpfs/dell1/nco/ops/nwprod/modulefiles/ + module load gempak/7.3.3 # Loading Intel-Compiled NCEP Libraries - module load bacio/2.0.2 - module load w3emc/2.3.0 - module load w3nco/2.0.6 - module load ip/3.0.1 - module load sp/2.0.2 - module load g2/3.1.0 + module load bacio/2.0.3 + module load w3emc/2.4.0 + module load w3nco/2.2.0 + module load ip/3.0.2 + module load sp/2.0.3 + module load g2/3.2.0 module load bufr/11.3.0 - -module load graphics/2.0.0 diff --git a/util/parm/bull_grdbgdas.d12 b/util/parm/bull_grdbgdas.d12 deleted file mode 100755 index 07034dee07..0000000000 --- a/util/parm/bull_grdbgdas.d12 +++ /dev/null @@ -1,38 +0,0 @@ -VANL5 11 1 0 255 0 GTAA98 1 - 5140 5675 5728 5787 5927 5768 4029 4030 5905 5906 5907 5908 GTAA98 2 -VGANL 7 100 1000 0 0 GHAA99 1 - 0 0 0 0 8044 8050 8056 8062 8068 8074 8080 8086 GHAA99 2 -VGANL 7 100 700 0 0 GHAA70 1 - 0 0 0 0 8043 8049 8055 8061 8067 8073 8079 8085 GHAA70 2 -VGANL 7 100 500 0 0 GHAA50 1 - 0 0 0 0 8042 8048 8054 8060 8066 8072 8078 8084 GHAA50 2 -VGANL 7 100 200 0 0 GHAA20 1 - 0 0 0 0 8041 8047 8053 8059 8065 8071 8077 8083 GHAA20 2 -VGANL 7 100 100 0 0 GHAA10 1 - 0 0 0 0 8040 8046 8052 8058 8064 8070 8076 8082 GHAA10 2 -VGANL 7 100 50 0 0 GHAA05 1 - 9296 9304 9312 9320 8039 8045 8051 8057 8063 8069 8075 8081 GHAA05 2 -VGANL 11 100 1000 0 0 GTAA99 1 - 0 0 0 0 8139 8145 8151 8170 8176 8182 8188 8194 GTAA99 2 -VGANL 11 100 700 0 0 GTAA70 1 - 0 0 0 0 8138 8144 8150 8169 8175 8181 8187 8193 GTAA70 2 -VGANL 11 100 500 0 0 GTAA50 1 - 0 0 0 0 8137 8143 8149 8168 8174 8180 8186 8192 GTAA50 2 -VGANL 11 100 200 0 0 GTAA20 1 - 0 0 0 0 8136 8142 8148 8167 8173 8179 8185 8191 GTAA20 2 -VGANL 11 100 100 0 0 GTAA10 1 - 0 0 0 0 8135 8141 8147 8153 8172 8178 8184 8190 GTAA10 2 -VGANL 11 100 50 0 0 GTAA05 1 - 8088 8096 8119 8127 8134 8140 8146 8152 8171 8177 8183 8189 GTAA05 2 -VGANL 33 100 1000 0 0 GWAA99 1 - 0 0 0 0 8224 8230 8699 8708 8680 8686 8692 8698 GWAA99 2 -VGANL 33 100 700 0 0 GWAA70 1 - 0 0 0 0 8223 8229 8235 8673 8679 8685 8691 8697 GWAA70 2 -VGANL 33 100 500 0 0 GWAA50 1 - 0 0 0 0 8222 8228 8234 8672 8678 8684 8690 8696 GWAA50 2 -VGANL 33 100 200 0 0 GWAA20 1 - 0 0 0 0 8221 8227 8233 8671 8677 8683 8689 8695 GWAA20 2 -VGANL 33 100 100 0 0 GWAA10 1 - 0 0 0 0 8220 8226 8232 8670 8676 8682 8688 8694 GWAA10 2 -VGANL 33 100 50 0 0 GWAA05 1 - 8195 8201 8207 8213 8219 8225 8231 8669 8675 8681 8687 8693 GWAA05 2 diff --git a/util/parm/graph_faxmakr.gfs_t00z.00 b/util/parm/graph_faxmakr.gfs_t00z.00 deleted file mode 100755 index 92a26c8386..0000000000 --- a/util/parm/graph_faxmakr.gfs_t00z.00 +++ /dev/null @@ -1,32 +0,0 @@ -! USING JCDATA MEMBER(faxmakr.j615_00.00) 11 March 1999 Peter Henrichsen -! "!" IS A SYMBOL FOR COMMENT. -! THE FOLLOWING SECTION IS OVERALL MANTATORY INFORMATION. -% TOLM: TOTAL MAPS=0001,SEED FILE=48 !00 HOUR MAPS FROM THE 00Z GFS RUN. -! "%" MANDATORY CARD. -% ILC1: NH4004, 0, 72, 0,1728,1876, 72, 0,1728,1876; -% ILC2: 0, 0,-338,-263, 0; -! -338= -9*T1, -263= -7*T1, where T1=37.5 -! -------------------------------------------------------------- -% GRPM: GRPMAP=01,GRBFILE=11,GRDINDX=31, FCST00=000 ! Anl -! -------------------------------------------------------------- -% TITL: NUMBYE=48," V2439 ^ 200MB ANALYSIS HEIGHTS/TEMPERATURE " -% JFID: NUMBYE=27," V2439 ANAL 200 HGT/TEMP " -% TLOC: TITXY= 300, 5,GULXY= 750, 180; 0, 0;DUCKXY=1450, 5,DUCKFG= 7,L=1 -! OUTC: NOGPHS=02,OUTGPH1=76,OUTGPH2=77,FAXFIL=71,T1=0018.750,FAX SUBSET=2439 -% OUTC: NOGPHS=02,OUTGPH1=76,OUTGPH2=77,FAXFIL=71,T1=0037.500,FAX SUBSET=2439 -% INPF: NUMFLD=01,GRAPHS=01,KEYIDX=02, -% IDS1: X'00100800,X'004E2082,X'00000000,X'00000000,X'0000001B,X'0000084D -% WWBD: -87116; -96148; 90145; 95165; CW= -87116; -96148; 90145; 95165; -! "?" IS A OPTIONAL CARD TO OVERWRITE THE DEFAULT. -? LINE: DOUBLE WEI=1,DASHFG=0,DASHMASK= 0, 0 -? UAMV: 0000.00,0000.00,0000.00, MA=00001.000000,00000.008334,000012.000000 -? LAB1: FONT=15.0,NC=3,FORM='A999',RTC=-15,UPC=-10,IFF='IFF3',B1_RC= 1.0 -? LAB2: NLAB=5,FIX=-15,-21,-29,-37,-45 -? CTRA: NDVD=2,NDIV=3,CNTRFILT=0,CENTFILT=0 -! PROJ: XPO= 65.00,YPO= 65.00,XAD=-18.00,YAD=-14.00,CU2GI= 1905.00,IP=0,IPOPT=0 -? VICK: 2439, 0, 0,1863,X'8000',X'D800', 0, 0; -% ENDF: ---------- END OF THE FIRST FIELD ---------------------------------- -% INPF: NUMFLD=01,GRAPHS=02,KEYIDX=05, -% IDS1: X'01000800,X'004E2082,X'00000000,X'00000000,X'0000001B,X'0000084D -? LINE: DOUBLE WEI=1,DASHFG=1,DASHMASK=15,20 -% ENDM: -----------------------------------------------------END OF 01 MAP-- diff --git a/util/parm/graph_faxmakr.gfs_t12z.00 b/util/parm/graph_faxmakr.gfs_t12z.00 deleted file mode 100755 index 99f0a147e9..0000000000 --- a/util/parm/graph_faxmakr.gfs_t12z.00 +++ /dev/null @@ -1,32 +0,0 @@ -! USING JCDATA MEMBER(faxmakr.j615d.00) 11 March 1999 Peter Henrichsen -! "!" IS A SYMBOL FOR COMMENT. -! THE FOLLOWING SECTION IS OVERALL MANTATORY INFORMATION. -% TOLM: TOTAL MAPS=0001,SEED FILE=48 !00 HOUR MAPS FROM THE 12Z GFS RUN. -! "%" MANDATORY CARD. -% ILC1: NH4004, 0, 72, 0,1728,1876, 72, 0,1728,1876; -% ILC2: 0, 0,-338,-263, 0; -! -338= -9*T1, -263= -7*T1, where T1=37.5 -! -------------------------------------------------------------- -% GRPM: GRPMAP=01,GRBFILE=11,GRDINDX=31, FCST00=000 ! Anl -! -------------------------------------------------------------- -% TITL: NUMBYE=48," V2489 ^ 200MB ANALYSIS HEIGHTS/TEMPERATURE " -% JFID: NUMBYE=27," V2489 ANAL 200 HGT/TEMP " -% TLOC: TITXY= 300, 5,GULXY= 750, 180; 0, 0;DUCKXY=1450, 5,DUCKFG= 7,L=1 -! OUTC: NOGPHS=02,OUTGPH1=76,OUTGPH2=77,FAXFIL=71,T1=0018.750,FAX SUBSET=2489 -% OUTC: NOGPHS=02,OUTGPH1=76,OUTGPH2=77,FAXFIL=71,T1=0037.500,FAX SUBSET=2489 -% INPF: NUMFLD=01,GRAPHS=01,KEYIDX=02, -% IDS1: X'00100800,X'004E2082,X'00000000,X'00000000,X'0000001B,X'0000084D -% WWBD: -87116; -96148; 90145; 95165; CW= -87116; -96148; 90145; 95165; -! "?" IS A OPTIONAL CARD TO OVERWRITE THE DEFAULT. -? LINE: DOUBLE WEI=1,DASHFG=0,DASHMASK= 0, 0 -? UAMV: 0000.00,0000.00,0000.00, MA=00001.000000,00000.008334,000012.000000 -? LAB1: FONT=15.0,NC=3,FORM='A999',RTC=-15,UPC=-10,IFF='IFF3',B1_RC= 1.0 -? LAB2: NLAB=5,FIX=-15,-21,-29,-37,-45 -? CTRA: NDVD=2,NDIV=3,CNTRFILT=0,CENTFILT=0 -! PROJ: XPO= 65.00,YPO= 65.00,XAD=-18.00,YAD=-14.00,CU2GI= 1905.00,IP=0,IPOPT=0 -? VICK: 2489, 0, 0,1863,X'8000',X'D800', 0, 0; -% ENDF: ---------- END OF THE FIRST FIELD ---------------------------------- -% INPF: NUMFLD=01,GRAPHS=02,KEYIDX=05, -% IDS1: X'01000800,X'004E2082,X'00000000,X'00000000,X'0000001B,X'0000084D -? LINE: DOUBLE WEI=1,DASHFG=1,DASHMASK=15,20 -% ENDM: -----------------------------------------------------END OF 01 MAP-- diff --git a/util/parm/graph_faxmakr.ukmet_00 b/util/parm/graph_faxmakr.ukmet_00 deleted file mode 100755 index 683a929eba..0000000000 --- a/util/parm/graph_faxmakr.ukmet_00 +++ /dev/null @@ -1,37 +0,0 @@ -! USING JCDATA MEMBER(j873k) FOR JOB WW0873 10 APR 1997 LUKE LIN -! "!" IS A SYMBOL FOR COMMENT. -! THE FOLLOWING SECTION IS OVERALL MANTATORY INFORMATION. -% TOLM: TOTAL MAPS=0001,SEED FILE=48 !(72-144)HR UKMET MAPS FROM THE FNL RUN. -! "%" MANDATORY CARD. -% ILC1: NH4004, 0, 72, 0,1728,1876, 72, 0,1728,1876; -% ILC2: 0, 0,-338,-263, 0; -! -338= -9*T1, -263= -7*T1, where T1=37.5 -! -------------------------------------------------------------- -% GRPM: GRPMAP=01,GRBFILE=12,GRDINDX=32, FSTD+3=132 -! -------------------------------------------------------------- -% TITL: NUMBYE=35,"V9014 UKMET 500MB D+3+ HGT/DN FROM " -% JFID: NUMBYE=28," V9014 D+3+ UKMET 500 HT/DN " -% TLOC: TITXY= 100, 5,GULXY= 750, 180; 0, 0;DUCKXY=1350, 50,DUCKFG= 6,L=1 -% OUTC: NOGPHS=02,OUTGPH1=76,OUTGPH2=77,FAXFIL=71,T1=0037.500,FAX SUBSET=9014 -% INPF: NUMFLD=01,GRAPHS=01,KEYIDX=02,MEANFG= 1,MEANTP=D+3+, -% IDS1: X'00100884,X'60C35082,X'00000009,X'00000000,X'0000001B,X'0097084D -% WWBD: -87116; -96148; 90145; 95165; CW= -87116; -96148; 90145; 95165; -! "?" IS A OPTIONAL CARD TO OVERWRITE THE DEFAULT. -% UAMV: 0000.00,0000.00,0000.00, MA=00001.000000,00000.016667,000006.000000 -? LINE: DOUBLE WEI=1,DASHFG=0,DASHMASK= 0, 0 -? CTRA: NDVD=2,NDIV=4,CNTRFILT=0,CENTFILT=0 -! PROJ: XPO= 65.00,YPO= 65.00,XAD=-18.00,YAD=-14.00,CU2GI= 1905.00,IP=0,IPOPT=0 -? LAB1: FONT=15.0,NC=3,FORM='A999',RTC=-15,UPC=-10,IFF='IFF3',B1_RC= 1.0 -? LAB2: NLAB=5,FIX=-15,-23,-31,-39,-47 -? VICK: 9014, 0, 0,1863,X'8000',X'D800', 0, 0; -% ENDF: ---------- END OF THE FIRST FIELD ---------------------------------- -% INPF: NUMFLD=01,GRAPHS=02,KEYIDX=02, -% IDS1: X'00100884,X'60C35082,X'00000009,X'00000000,X'0000021B,X'0097084D -% UAMV: 0000.00,0000.00,0000.00, MA=00000.100000,00000.166667,000060.000000 -? LINE: DOUBLE WEI=1,DASHFG=1,DASHMASK=15 20 -? SHAD: SHADFG=1,SHADMASK=-9, 0; -? CEN1: FONT=11.0,NC=4,CEN=1,FORM='A+-+',XID=-15.0,YID= -5.0,XLIM= -500.0 -? CEN2: FLO='IFF4',FHI='IFF4',B1_RC= 1.0 -? LAB1: FONT=15.0,NC=3,FORM='A999',IRT=-15,IUP=-10,IFF='IFF3',B1_RC= 1.0 -? LAB2: NLAB=0,FIX=-16,-24,-32,-40,-48 -% ENDM: -----------------------------------------------------END OF 01 MAP-- diff --git a/util/parm/graph_faxmakr.ukmet_12 b/util/parm/graph_faxmakr.ukmet_12 deleted file mode 100755 index cb7079fb2f..0000000000 --- a/util/parm/graph_faxmakr.ukmet_12 +++ /dev/null @@ -1,38 +0,0 @@ -! USING JCDATA MEMBER(j873w) FOR JOB WW0873 08 JULY 1997 STEVE LILLY -! "!" IS A SYMBOL FOR COMMENT. -! THE FOLLOWING SECTION IS OVERALL MANTATORY INFORMATION. -% TOLM: TOTAL MAPS=0001,SEED FILE=48 !(72-144)HR UKMET MAPS FROM THE FNL RUN. -! 12Z cycle -! "%" MANDATORY CARD. -% ILC1: NH4004, 0, 72, 0,1728,1876, 72, 0,1728,1876; -% ILC2: 0, 0,-338,-263, 0; -! -338= -9*T1, -263= -7*T1, where T1=37.5 -! -------------------------------------------------------------- -% GRPM: GRPMAP=01,GRBFILE=12,GRDINDX=32, FSTD+3=132 -! -------------------------------------------------------------- -% TITL: NUMBYE=35,"V9029 UKMET 500MB D+3+ HGT/DN FROM " -% JFID: NUMBYE=28," V9029 D+3+ UKMET 500 HT/DN " -% TLOC: TITXY= 100, 5,GULXY= 750, 180; 0, 0;DUCKXY=1350, 50,DUCKFG= 6,L=1 -% OUTC: NOGPHS=02,OUTGPH1=76,OUTGPH2=77,FAXFIL=71,T1=0037.500,FAX SUBSET=9029 -% INPF: NUMFLD=01,GRAPHS=01,KEYIDX=02,MEANFG= 2,MEANTP=D+3+, -% IDS1: X'00100884,X'60C35082,X'00000009,X'00000000,X'0000001B,X'0097084D -% WWBD: -87116; -96148; 90145; 95165; CW= -87116; -96148; 90145; 95165; -! "?" IS A OPTIONAL CARD TO OVERWRITE THE DEFAULT. -% UAMV: 0000.00,0000.00,0000.00, MA=00001.000000,00000.016667,000006.000000 -? LINE: DOUBLE WEI=1,DASHFG=0,DASHMASK= 0, 0 -? CTRA: NDVD=2,NDIV=4,CNTRFILT=0,CENTFILT=0 -! PROJ: XPO= 65.00,YPO= 65.00,XAD=-18.00,YAD=-14.00,CU2GI= 1905.00,IP=0,IPOPT=0 -? LAB1: FONT=15.0,NC=3,FORM='A999',RTC=-15,UPC=-10,IFF='IFF3',B1_RC= 1.0 -? LAB2: NLAB=5,FIX=-15,-23,-31,-39,-47 -? VICK: 9029, 0, 0,1863,X'8000',X'D800', 0, 0; -% ENDF: ---------- END OF THE FIRST FIELD ---------------------------------- -% INPF: NUMFLD=01,GRAPHS=02,KEYIDX=02, -% IDS1: X'00100884,X'60C35082,X'00000009,X'00000000,X'0000021B,X'0097084D -% UAMV: 0000.00,0000.00,0000.00, MA=00000.100000,00000.166667,000060.000000 -? LINE: DOUBLE WEI=1,DASHFG=1,DASHMASK=15 20 -? SHAD: SHADFG=1,SHADMASK=-9, 0; -? CEN1: FONT=11.0,NC=4,CEN=1,FORM='A+-+',XID=-15.0,YID= -5.0,XLIM= -500.0 -? CEN2: FLO='IFF4',FHI='IFF4',B1_RC= 1.0 -? LAB1: FONT=15.0,NC=3,FORM='A999',IRT=-15,IUP=-10,IFF='IFF3',B1_RC= 1.0 -? LAB2: NLAB=0,FIX=-16,-24,-32,-40,-48 -% ENDM: -----------------------------------------------------END OF 01 MAP-- diff --git a/util/parm/graph_plotvpap.gfs.anl b/util/parm/graph_plotvpap.gfs.anl deleted file mode 100755 index 0c892d3658..0000000000 --- a/util/parm/graph_plotvpap.gfs.anl +++ /dev/null @@ -1,4 +0,0 @@ -1 KRUN = TROPIC1, NLVLS = 5, IOPTN = 1; -2 850MB, 700MB, 500MB, 250MB, 150MB; -3 XADJ= -002, YADJ= 002 -999 THIS IS THE LAST INPUT CARD ... diff --git a/util/parm/graph_plotvpap.plotmlty.ft26 b/util/parm/graph_plotvpap.plotmlty.ft26 deleted file mode 100755 index 51767490be..0000000000 --- a/util/parm/graph_plotvpap.plotmlty.ft26 +++ /dev/null @@ -1,18 +0,0 @@ - OVERPLOTTING STATIONS...JOB PLOTVPAP STEVEN G. LILLY 18 OCT 1989 - 012 MAX NUMBER OF DIG READ IS THREE - 72221 30N086W STATION BLOCK ID 'EGLIN AFB/VALPARAIS' - 72225 32N085W 'FORT BENNING' - 72269 32N106W 'WHITE SANDS' - 72355 34N098W 'FORT SILL' - 72391 34N119W 'POINT MAGUNAS' - 72424 38N086W 'FORT KNOTS' - 72455 39N096W 'FORT RILEY' - 74733 33N106W 'NORTHRUP LNDG STRIP' - 74734 33N106W 'WHITE SANDS MISSILE' - 74671 36N087W 'FORT CAMPBELL' - 74780 32N081W 'FORT STEWART RESERV' - 74792 34N080W 'POINSETT RANGE' - DETERMINING IF THE OVERPLOTTING STATIONS NEEDS TO BE MOVE - LIST=002 INDICATES WHICH STATIONS ARE BEING COMPARED - 72274 32N110W 72273 31N110W 'TUCSON(NWS) FORT HUACHUCA' - 72393 34N120W 72381 34N116W 'VANDENBERG(NWS) TWENTY PALMS' diff --git a/util/parm/graph_rsonde.ft05.P b/util/parm/graph_rsonde.ft05.P deleted file mode 100755 index 52c184f186..0000000000 --- a/util/parm/graph_rsonde.ft05.P +++ /dev/null @@ -1 +0,0 @@ -P diff --git a/util/parm/graph_rsonde.ft05.Z b/util/parm/graph_rsonde.ft05.Z deleted file mode 100755 index e900b1c81c..0000000000 --- a/util/parm/graph_rsonde.ft05.Z +++ /dev/null @@ -1 +0,0 @@ -Z diff --git a/util/parm/graph_rsondplt.ft05.P b/util/parm/graph_rsondplt.ft05.P deleted file mode 100755 index 52c184f186..0000000000 --- a/util/parm/graph_rsondplt.ft05.P +++ /dev/null @@ -1 +0,0 @@ -P diff --git a/util/parm/graph_rsondplt.ft05.T b/util/parm/graph_rsondplt.ft05.T deleted file mode 100755 index 62a6e3c9df..0000000000 --- a/util/parm/graph_rsondplt.ft05.T +++ /dev/null @@ -1 +0,0 @@ -T diff --git a/util/parm/graph_rsondplt.ft05.Z b/util/parm/graph_rsondplt.ft05.Z deleted file mode 100755 index e900b1c81c..0000000000 --- a/util/parm/graph_rsondplt.ft05.Z +++ /dev/null @@ -1 +0,0 @@ -Z diff --git a/util/parm/graph_trpanl.ft5.gfs_t00z.anl b/util/parm/graph_trpanl.ft5.gfs_t00z.anl deleted file mode 100755 index 88c3cc7dee..0000000000 --- a/util/parm/graph_trpanl.ft5.gfs_t00z.anl +++ /dev/null @@ -1 +0,0 @@ -OPNL 2448H00Z 4 0 1 0OPN26 1 diff --git a/util/parm/graph_trpanl.ft5.gfs_t06z.anl b/util/parm/graph_trpanl.ft5.gfs_t06z.anl deleted file mode 100755 index 545ed9b1c9..0000000000 --- a/util/parm/graph_trpanl.ft5.gfs_t06z.anl +++ /dev/null @@ -1 +0,0 @@ -OPNL 2448H00Z 1 0 1 0OPN26 1 diff --git a/util/parm/graph_trpanl.ft5.gfs_t12z.anl b/util/parm/graph_trpanl.ft5.gfs_t12z.anl deleted file mode 100755 index 876b8bd2a8..0000000000 --- a/util/parm/graph_trpanl.ft5.gfs_t12z.anl +++ /dev/null @@ -1 +0,0 @@ -OPNL 2448H12Z 4 0 1 0OPN26 1 diff --git a/util/parm/graph_trpanl.ft5.gfs_t18z.anl b/util/parm/graph_trpanl.ft5.gfs_t18z.anl deleted file mode 100755 index 6aef38b7ea..0000000000 --- a/util/parm/graph_trpanl.ft5.gfs_t18z.anl +++ /dev/null @@ -1 +0,0 @@ -OPNL 2448H12Z 1 0 1 0OPN26 1 diff --git a/util/parm/graph_trpanl.ft8.gfs_t00z.anl b/util/parm/graph_trpanl.ft8.gfs_t00z.anl deleted file mode 100755 index 25c4cd4090..0000000000 --- a/util/parm/graph_trpanl.ft8.gfs_t00z.anl +++ /dev/null @@ -1,13 +0,0 @@ -1RUN OPN2600Z 4 JFNL - 850 STRM 00HR 850 ITACH00HR 850 V 00HR OPN26 MERCIS-I 124 2 -3V904 VFULL 3836 0 0 0 00HR 850 HT/WIND -3J052 APT5 3837 3838 0 0 00HR 850 HT/WIND - 700 STRM 00HR 700 U 00HR 700 V 00HR OPN26 MERCIS-I 120 2 -3V900 VFULL 2400 0 0 0 00HR 700 HT/WIND -3J045 APT5 3840 3841 0 0 00HR 700 HT/WIND - 500 STRM 00HR 500 ITACH00HR 500 V 00HR OPN26 MERCIS-I 121 2 -3V901 VFULL 2403 0 0 0 00HR 500 HT/WIND -3J046 APT5 3842 3843 0 0 00HR 500 HT/WIND - 250 STRM 00HR 250 ITACH00HR 250 V 00HR OPN26 MERCIS-I 122 2 -3V902 VFULL 2406 0 0 0 00HR 250 HT/WIND -3J047 APT5 3844 3845 0 0 00HR 250 HT/WIND diff --git a/util/parm/graph_trpanl.ft8.gfs_t06z.anl b/util/parm/graph_trpanl.ft8.gfs_t06z.anl deleted file mode 100755 index fe41ae305f..0000000000 --- a/util/parm/graph_trpanl.ft8.gfs_t06z.anl +++ /dev/null @@ -1,5 +0,0 @@ -1RUN OPN2600Z 1 JFNL - 250 STRM 00HR 250 ITACH00HR 250 V 00HR OPN26 MERCIS-I 122 2 -3V902 VFULL 2406 0 0 0 00HR 250 HT/WIND -3J047 APT5 3844 3845 0 0 00HR 250 HT/WIND - diff --git a/util/parm/graph_trpanl.ft8.gfs_t12z.anl b/util/parm/graph_trpanl.ft8.gfs_t12z.anl deleted file mode 100755 index 0c16530990..0000000000 --- a/util/parm/graph_trpanl.ft8.gfs_t12z.anl +++ /dev/null @@ -1,14 +0,0 @@ -1RUN OPN2612Z 4 - 850 STRM 00HR 850 ITACH00HR 850 V 00HR OPN26 MERCIS-I 124 2 -3V954 VFULL 3886 0 0 0 00HR 850 HT/WIND -3J147 APT5 3887 3888 0 0 00HR 850 HT/WIND - 700 STRM 00HR 700 ITACH00HR 700 V 00HR OPN26 MERCIS-I 120 2 -3V950 VFULL 2450 0 0 0 00HR 700 HT/WIND -3J101 APT5 3890 3891 0 0 00HR 700 HT/WIND - 500 STRM 00HR 500 ITACH00HR 500 V 00HR OPN26 MERCIS-I 121 2 -3V951 VFULL 2453 0 0 0 00HR 500 HT/WIND -3J102 APT5 3892 3893 0 0 00HR 500 HT/WIND - 250 STRM 00HR 250 ITACH00HR 250 V 00HR OPN26 MERCIS-I 122 2 -3V952 VFULL 2456 0 0 0 00HR 250 HT/WIND -3J103 APT5 3894 3895 0 0 00HR 250 HT/WIND - diff --git a/util/parm/graph_trpanl.ft8.gfs_t18z.anl b/util/parm/graph_trpanl.ft8.gfs_t18z.anl deleted file mode 100755 index b37de05d9d..0000000000 --- a/util/parm/graph_trpanl.ft8.gfs_t18z.anl +++ /dev/null @@ -1,6 +0,0 @@ -1RUN OPN2612Z 1 JFNL - 250 STRM 00HR 250 ITACH00HR 250 V 00HR OPN26 MERCIS-I 122 2 -3V952 VFULL 2456 0 0 0 00HR 250 HT/WIND -3J103 APT5 3894 3895 0 0 00HR 250 HT/WIND - - diff --git a/util/parm/graph_trpsfprv_ft05.t12z b/util/parm/graph_trpsfprv_ft05.t12z deleted file mode 100755 index 28b97ee3b8..0000000000 --- a/util/parm/graph_trpsfprv_ft05.t12z +++ /dev/null @@ -1 +0,0 @@ -OPNL 2448H12Z 2 0 1 0OPN26 1 diff --git a/util/parm/graph_trpsfprv_ft08.t12z b/util/parm/graph_trpsfprv_ft08.t12z deleted file mode 100755 index ea2940c374..0000000000 --- a/util/parm/graph_trpsfprv_ft08.t12z +++ /dev/null @@ -1,7 +0,0 @@ -1RUN OPN2612Z 2 - 1000 STRM 24HR OPN26 MERCIS 214 2 -3V4390 VFULL 4390 0 0 0 24HR1000MB PROG -3H4350 HONO 4350 4351 0 0 24HR1000MB PROG - 1000 STRM 48HR OPN26 MERCIS 215 2 -3V4391 VFULL 4391 0 0 0 48HR1000MB PROG -3H4352 HONO 4352 4353 0 0 48HR1000MB PROG diff --git a/util/parm/graph_upaprep.ft22.aircft b/util/parm/graph_upaprep.ft22.aircft deleted file mode 100755 index e73b72d482..0000000000 --- a/util/parm/graph_upaprep.ft22.aircft +++ /dev/null @@ -1,10 +0,0 @@ -AIRCFT ******** - 00. 00. 000. 00. #N LAT S LAT W LON E LON (4F6.0) -ZOB -TOB -TDO -DDO -FFO -QMRK -POB -******** diff --git a/util/parm/graph_upaprep.ft23.satwnd b/util/parm/graph_upaprep.ft23.satwnd deleted file mode 100755 index 3d2dcf6607..0000000000 --- a/util/parm/graph_upaprep.ft23.satwnd +++ /dev/null @@ -1,10 +0,0 @@ -SATWND ******** - 00. 00. 000. 00. #N LAT S LAT W LON E LON (4F6.0) -ZOB -TOB -TDO -DDO -FFO -QMRK -POB -******** diff --git a/util/parm/graph_upaprep.ft24.tiros b/util/parm/graph_upaprep.ft24.tiros deleted file mode 100755 index d97f122c49..0000000000 --- a/util/parm/graph_upaprep.ft24.tiros +++ /dev/null @@ -1,23 +0,0 @@ -TIROSX ********TIROSX=OFF - 00 00 90. 00. 000. 360. -ZOB -TOB -TDO -DDO -FFO -HG12 -QMRK -******** -1000 -925 -850 -700 -500 -400 -300 -250 -200 -150 -100 -******** -******** diff --git a/util/parm/graph_upaprep.ft9.mrcontrl b/util/parm/graph_upaprep.ft9.mrcontrl deleted file mode 100755 index 0e8da0cd72..0000000000 --- a/util/parm/graph_upaprep.ft9.mrcontrl +++ /dev/null @@ -1,33 +0,0 @@ -UPAUPA ******** -1 72 76 60. -60. 000. 360. -ZOB -TOB -TDO -DDO -FFO -HG12 -QMRK -******** -1000 -925 -850 -700 -500 -400 -300 -250 -200 -150 -100 - 70 - 50 - 30 - 20 - 10 - 7 - 5 - 3 - 2 - 1 -******** -******** diff --git a/util/sorc/compile_gfs_util_wcoss.sh b/util/sorc/compile_gfs_util_wcoss.sh index 6c9285bf03..26e065a221 100755 --- a/util/sorc/compile_gfs_util_wcoss.sh +++ b/util/sorc/compile_gfs_util_wcoss.sh @@ -2,7 +2,7 @@ ###################################################################### # -# Build executable GFS utility for GFS V15.0.0 +# Build executable GFS utility for GFS V16.0.0 # ###################################################################### @@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no source ../../sorc/machine-setup.sh > /dev/null 2>&1 cwd=`pwd` -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then +if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "hera" ] ; then echo " " echo " You are on WCOSS: $target " echo " " @@ -18,7 +18,7 @@ elif [ "$target" = "wcoss" ] ; then echo " " echo " " echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " + echo " You do not need to build GFS utilities for GFS V16.0.0 " echo " " echo " " exit @@ -35,23 +35,23 @@ echo " " source ../modulefiles/gfs_util.${target} module list -dirlist="faxmakr faxmakrx fxcompoz gendata overgridid plotvpap ras2bit - ras2bity rdbfmsua redsat rsonde rsondplt sixbitb sixbitb2 - trpanl trpsfcmv trpsfprv upaprep webtitle wndanftf mkgfsawps" +dirlist="overgridid rdbfmsua webtitle mkgfsawps" set -x for dir in $dirlist do - cd $dir.fd + cd ${dir}.fd + echo "PWD: $PWD" set +x echo " " echo " ### ${dir} ### " echo " " set -x - compile_${dir}_wcoss.sh + ./compile_${dir}_wcoss.sh set +x echo " " echo " ######################################### " echo " " cd .. + echo "BACK TO: $PWD" done diff --git a/util/sorc/faxmakr.fd/absvor.f b/util/sorc/faxmakr.fd/absvor.f deleted file mode 100755 index 9afb068902..0000000000 --- a/util/sorc/faxmakr.fd/absvor.f +++ /dev/null @@ -1,351 +0,0 @@ - SUBROUTINE ABSVOR(KSOUTH,FLDU,FLDV,IMAX,JMAX,XMESHL,XIPOLE,XJPOLE, - 1 WORK,FABSVO,IERROR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C $ . . . -C SUBPROGRAM: ABSVOR ABSOLUTE VORTICITY FROM WINDS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GENERATES A FIELD OF ABSOLUTE VORTICITY FROM THE GIVEN WINDS -C ON A GRID WHICH OVERLAYS A POLAR STEREOGRAPHIC MAP PROJECTION -C TRUE AT 60N LATITUDE IF FOR A NORTHERN HEMISPHERIC MAP -C (TRUE AT 60S LATITUDE IF FOR A SOUTHERN HEMISPHERIC MAP). -C -C PROGRAM HISTORY LOG: -C 82-08-03 SHIMOMURA -C 88-10-06 LUKE LIN ADD NEW DOCBLOCK -C 95-02-15 LUKE LIN CONVERT IT CFT-77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 SP -C -C USAGE: CALL ABSVOR(KSOUTH,FLDU,FLDV,IMAX,JMAX,XMESHL,XIPOLE, -C XJPOLE,WORK,FABSVO,IERROR) -C INPUT ARGUMENT LIST: -C KSOUTH - SET KSOUTH=0 IF DATA IS FOR NORTHERN HEMISPHERIC MAP -C - SET KSOUTH=1 IF DATA IS FOR SOUTHERN HEMISPHERIC MAP -C FLDU - REAL*4 FLDU(IMAX,JMAX) -C - U-COMPONENT OF THE WIND IN METERS PER SEC. -C - U-COMPONENT IS GRID-ORIENTED COMPONENT IN X DIRECTION -C FLDV - REAL*4 FLDV(IMAX,JMAX) -C - V-COMPONENT OF THE WIND IN METERS PER SEC. -C - V-COMPONENT IS GRID-ORIENTED COMPONENT IN Y DIRECTION -C IMAX - I-DIMENSION OF THE GRID -C JMAX - J-DIMENSION OF THE GRID -C XMESHL - GRID INTERVAL (IN KILOMETERS) AT TRUE LATITUDE. -C XIPOLE - LOCATION OF POLE, I-COORDINATE OF POLE (REAL*4) -C XJPOLE - LOCATION OF POLE, J-COORDINATE OF POLE (REAL*4) -C WORK - REAL*4 WORK(IMAX,6) FOR TEMPORARY WORK SPACE -C -C OUTPUT ARGUMENT LIST: -C FABSVO - REAL*4 FABSVO(IMAX,JMAX) -C - FOR THE RESULTING ABSOULUTE VORTICITY VALUES -C IERROR - =0 IF NORMAL RETURN; -C - =1 ABNORMAL RETURN (IMAX/JMAX HAS INVALID VALUE); -C - =2 ABNORMAL RETURN (XMESHL IS ZERO OR NEGATIVE). -C -C REMARKS: THE EDGE POINTS IN THE RESULTING FIELD OF ABSOLUTE -C VORTICITY HAVE BEEN FILLED WITH VALUES IDENTICAL TO THE ADJACENT -C FIRST INTERIOR POINTS, SO DON'T USE THE BOUNDARY POINTS UNLESS YOU -C HAVE TO. -C CAUTION ... THE 65*65 FIELDS FROM THE SPECTRAL MODEL, AS OF THIS -C DATE, CONTAIN GARBAGE IN THE CORNERS BEYOND THE EQUATOR, SO IF -C YOU ARE USING THOSE FOR FLDU AND FLDV, THEN IGNORE THE RESULTING -C STRANGE VALUES IN THE CORNERS BEYOND THE EQUATOR. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C -C ... DERIVATION OF PROCEDURE ... -C ... IN THIS SUB WE WILL USE DIAGONAL DIFFERENCING -C ... WITH X-AXIS HEADING SOUTHEASTWARD ON GRID -C ... RELATIVE VORTICITY ZETA = DV/DX - DU/DY -C ... DX IS APPROXIMATED BY DISTANCE OF SQRT(2) GRID INTERVALS -C ... CONVERTED TO EARTH DISTANCE BY MEANS OF THE MAP FACTOR: -C ... MAPFACTOR = (1+SINLAT) / (1+SIN(60)) -C -C ... DX = SQRT(2) * XMESHL * MAPFACTOR -C ... THE MAP FACTOR USED FOR DX IS APPROXIMATED BY THE AVERAGE -C ... OF THE MAPFACTOR AT SOUTHEAST POINT AND NORTHWEST POINT -C -C ... AVG MAPFACTOR =(1/2)*(MAPFACTOR(SE) + MAPFACTOR(NW)) -C =(1/(2*(1+SIN60)))*(1+SINLAT(SE)+1+SINLAT(NW)) -C -C ... DX = (1.414*XMESHL/((2*(1+SIN60)))*(2+SINLAT(SE) + SINLAT(NW)) -C -C DV 2*(1+SIN60) V(SOUTHEAST) - V(NORTHWEST) -C -- = ------------ * ----------------------------------- -C DX 1.414*XMESHL 2 + SINLAT(SE) + SINLAT(NW) -C -C -C * * * * * * * * * * * -C - REAL FLDU(IMAX,JMAX) - REAL FLDV(IMAX,JMAX) - REAL FABSVO(IMAX,JMAX) - REAL WORK(IMAX,6) - REAL Y(4) -C ... WHERE Y(4) IS USED TO INTERPOLATE IN 4X4 -C - LOGICAL LSHEMI -C - DATA CNV2RD / 0.0174533 / - DATA OMEGA2 / 1.4584E-1 / -C ... WHERE 2 OMEGA SHUD BE 1.4584E-4 BUT I AM SCALING IT BY 1000. -C - DATA EARTHR / 6371.2 / -C ... WHERE EARTHR IS EARTH RADIUS IN KM ... -C - DATA KU / 1 / - DATA KV / 2 / - DATA KSIN / 3 / - DATA SICO45 / 0.7071068 / - DATA A1,A2,A3,A4 / -0.0625, 0.5625, 0.5625, -0.0625 / -C -1/16, 9/16, 9/16, -1/16 -C ... WHICH IS USED IN INTERPOLATING -C -C . . . S T A R T . . . -C - IERROR = 0 - LSHEMI = .FALSE. - IF(KSOUTH .NE. 0) LSHEMI = .TRUE. - IM2 = IMAX - 1 - IF(IM2 .LT. 2) GO TO 911 - JM2 = JMAX - 1 - IF(JM2 .LT. 2) GO TO 911 - IF(XMESHL .LE. 0.0) GO TO 922 -C -C ... INITIALIZE CONSTANT FOR DISTANCE FROM POLE TO EQUATOR -C ... IN GRID INTERVALS - RMAPKM = 1.8660254 * EARTHR - RMAPGI = RMAPKM / XMESHL - GISQD = RMAPGI * RMAPGI -C - EM = 1.0 + SIN(60.0*CNV2RD) - EMOVRD = 2.0*EM / (1.4142136*XMESHL) -C ... IN EMOVRD THE XMESHL IS IN KM, SO THE NUMBERS WILL BE -C ... TOO BIG BY A FACTOR OF 1000.0 -C -C ... THE WORK ARRAY WILL BE USED TO KEEP TWO ROWS OF DATA -C ... NEEDED FOR CALCULATING THE VORTICITY -C ... UPRIME, VPRIME, AND SINLAT FOR BOTH ROWS -C -C ... INITIALIZE THE FIRST ROW'S DATA ... - J = 1 - XJ = FLOAT(J) - XJPOLE - JCURR = 0 - DO 222 I = 1,IMAX - U = FLDU(I,J) - V = FLDV(I,J) - UPRIME = SICO45 * (U - V) - VPRIME = SICO45 * (U + V) - WORK(I,JCURR+KU) = UPRIME - WORK(I,JCURR+KV) = VPRIME - XI = FLOAT(I) - XIPOLE - RSQD = XI*XI + XJ*XJ - SINLAT = (GISQD - RSQD) / (GISQD + RSQD) - WORK(I,JCURR+KSIN) = SINLAT - 222 CONTINUE -C - JCURR = 3 - JABV = 0 - DO 277 JBIG = 1,JM2 - IF(JABV .EQ. 0) GO TO 233 -C ... ELSE, JABV MUST HAVE BEEN =3, SO RESET IT TO ZERO - JABV = 0 - JCURR = 3 - GO TO 244 - 233 CONTINUE -C ... JABV WAS = 0, SO CHG IT TO = 3 - JABV = 3 - JCURR = 0 - 244 CONTINUE - JB1 = JBIG + 1 - XJ = FLOAT(JB1) - XJPOLE - DO 255 I = 1,IMAX - U = FLDU(I,JB1) - V = FLDV(I,JB1) - UPRIME = SICO45 * (U - V) - VPRIME = SICO45 * (U+V) - WORK(I,JABV+KU) = UPRIME - WORK(I,JABV+KV) = VPRIME - XI = FLOAT(I) - XIPOLE - RSQD = XI * XI + XJ * XJ - SINLAT = (GISQD - RSQD) / (GISQD + RSQD) - WORK(I,JABV+KSIN) = SINLAT - 255 CONTINUE -C - DO 266 I = 1,IM2 - VSE = WORK(I+1,JCURR+KV) - VNW = WORK(I,JABV+KV) - USW = WORK(I,JCURR+KU) - UNE = WORK(I+1,JABV+KU) - DENOMV = 2.0 + WORK(I+1,JCURR+KSIN) + WORK(I,JABV+KSIN) - DVDX = (VSE - VNW) / DENOMV -C - DENOMU = 2.0 + WORK(I+1,JABV+KSIN) + WORK(I,JCURR+KSIN) - DUDY = (UNE - USW) / DENOMU -C - ZETA3 = EMOVRD * (DVDX - DUDY) -C ... WHICH IS THE SCALED RELATIVE VORTICITY AT OFFSET POINT -C ... (VALID AT MIDDLE OF GRID SQUARE) -C ... NEXT, GET CORIOLIS PARAMETER ALSO FOR OFFSET POINT ... - F3 = OMEGA2*0.25*(WORK(I,JCURR+KSIN) + WORK(I+1,JCURR+KSIN) + - 1 WORK(I,JABV+KSIN) + WORK(I+1,JABV+KSIN)) -C - IF(LSHEMI) F3 = -F3 -C - FABSVO(I,JBIG) = (ZETA3+F3) / 1000.0 -C ... THE OFFSET ABSOLUTE VORTICITY HAS BEEN STORED AT THE -C ... LOWER LEFT CORNER OF THE SQUARE WITHIN WHICH THE VALUE IS -C ... VALID FOR. - 266 CONTINUE - 277 CONTINUE -C -C ... TO GET THE OFFSET POINTS BACK TO GRIDPOINTS, AVERAGE -C ... THE 4 POINTS SURROUNDING A GRIDPOINT. -C ... GO BACKWARDS THROUGH THE GRID TO AVOID OVERWRITING -C ... A VALUE I NEED TO USE YET. - ICHK = 0 - JWKIN = 1 - JWKMID = 2 - JWKOUT = 3 -C ... USES 3 ROWS OF WORK ARRAY AS HOLDING TANK TO PREVENT OVERWRIT -C -C ... DO 1ST INTERIOR ROW ADJACENT TO TOP ROW FIRST -C ... BY AVGG 4 SURROUNDING POINTS AND STORE IN WORK(I,JWKIN) - JL = JMAX-2 - IMXM2 = IMAX - 2 - DO 411 IL = 1,IMXM2 - ALL = FABSVO(IL,JL) - ALR = FABSVO(IL+1,JL) - AUL = FABSVO(IL,JL+1) - AUR = FABSVO(IL+1,JL+1) -C - AVG = (ALL+ALR+AUL+AUR) / 4.0 - WORK(IL+1,JWKIN) = AVG - 411 CONTINUE -C ... THEN FILL BOTH ENDS OF THIS LINE W/ SAME VALUE AS 1ST INTERIOR - WORK(1,JWKIN) = WORK(2,JWKIN) - WORK(IMAX,JWKIN) = WORK(IMAX-1,JWKIN) -C ... WHICH FINISHED FIRST INTERIOR ROW ADJACENT TO TOP ROW -C -C ... NEXT, MAKE A DUPLICATE OF FIRST INTERIOR FOR TOP ROW -C ... AND SAVE TEMPORARILY IN WORK(I,JWKMID) - DO 422 I = 1,IMAX - WORK(I,JWKMID) = WORK(I,JWKIN) - 422 CONTINUE -C -C ... NOW WE ARE FAR ENOUGH INTO GRID TO HAVE 4X4 POINTS FOR -C ... 16-POINT INTERPOLATION ... - JMXM4 = JMAX - 4 - DO 477 JR = 1,JMXM4 - JLL = JMAX - JR - 3 -C ... TO GET POINT(ILL,JLL) TO POINT AT LOWER LEFT CORNER OF 4X4 -C -C ... TO RESET POINTERS OF FIRSTIN FIRST OUT STACK - JSAVIN = JWKIN - JWKIN = JWKOUT - JWKOUT = JWKMID - JWKMID = JSAVIN -C ... AT FIRST INTERIOR POINT ADJACENT TO LEFT AND RIGHT ENDS -C ... OF THIS LINE, USE 4-POINT AVERAGE - ALL = FABSVO(1,JLL+1) - ALR = FABSVO(2,JLL+1) - AUL = FABSVO(1,JLL+2) - AUR = FABSVO(2,JLL+2) -C - AVG = (ALL + ALR + AUL + AUR) / 4.0 - WORK(2,JWKIN) = AVG -C ... THEN PUT SAME VALUE IN EDGE POINT - WORK(1,JWKIN) = AVG -C -C ... SIMILARLY AT THE RIGHT END OF THIS ROW ... - ALL = FABSVO(IMAX-2,JLL+1) - ALR = FABSVO(IMAX-1,JLL+1) - AUL = FABSVO(IMAX-2,JLL+2) - AUR = FABSVO(IMAX-1,JLL+2) -C - AVG = (ALL + ALR + AUL + AUR) / 4.0 - WORK(IMAX-1,JWKIN) = AVG - WORK(IMAX,JWKIN) = AVG -C ... NEXT DO THE GOOD 4X4 INTERIOR POINTS OF THIS ROW - IMXM4 = IMAX - 4 - DO 444 ILL = 1,IMXM4 -C -C ... INTERPOLATE TO CENTER OF 4X4 ARRAY WHOSE LOWER-LEFT -C ... CORNER IS AT (ILL,JLL) - JTHIS = JLL - DO 440 JJ = 1,4 -C - Y(JJ) = A1*FABSVO(ILL,JTHIS) + A2*FABSVO(ILL+1,JTHIS) - 1 + A3*FABSVO(ILL+2,JTHIS) + A4*FABSVO(ILL+3,JTHIS) -C - JTHIS = JTHIS + 1 - 440 CONTINUE - RESULT = A1*Y(1) + A2*Y(2) + A3*Y(3) +A4*Y(4) - IDEST = ILL + 2 - WORK(IDEST,JWKIN) = RESULT - 444 CONTINUE -C ... WHICH FINISHED INTERPOLATING ONE ROW -C ... NEXT OVERWRITE FABSVO ONE ROW FROM WORK(I,JWKOUT) - JOVRWR = JLL + 4 - DO 455 I = 1,IMAX - FABSVO(I,JOVRWR) = WORK(I,JWKOUT) - 455 CONTINUE - 477 CONTINUE -C ... WHEN IT FALLS OUT OF 477 LOOP, -C ... I HAVE DONE DESTINATION ROW J=3 AND STORED IT IN -C ... WORK(I,JWKIN), AND I HAVE OVERWRITTEN FABSVO(I,5) -C ... WITH CONTENTS OF WORK(I,JWKOUT) -C -C ... SO WHAT IS LEFT IN HOLDING TANK? -C ... WORK(I,JWKMID) HAS JDESTINATION=4 -C ... WORK(I,JWKIN) HAS JDESTINATION=3 -C -C ... AND I STILL NEED TO DO FIRST INTERIOR ROW USING DATA -C ... IN FABSVO ROWS 1 AND 2 -C -C ... SO I CAN OVERWRITE ROWS 4 AND 3 - DO 511 I = 1,IMAX - FABSVO(I,4) = WORK(I,JWKMID) - 511 CONTINUE - DO 522 I = 1,IMAX - FABSVO(I,3) = WORK(I,JWKIN) - 522 CONTINUE -C ... NOW HOLDING TANK IN WORK ARRAY IS ALL CLEAR -C ... AND FIRST TWO ROWS OF FABSVO STILL HAS OFFSET DATA - JL = 1 - DO 533 IL=1,IMXM2 - ALL = FABSVO(IL,JL) - ALR = FABSVO(IL+1,JL) - AUL = FABSVO(IL,JL+1) - AUR = FABSVO(IL+1,JL+1) -C - AVG = (ALL+ALR+AUL+AUR) / 4.0 - WORK(IL+1,JWKOUT) = AVG - 533 CONTINUE - WORK(1,JWKOUT) = WORK(2,JWKOUT) - WORK(IMAX,JWKOUT) = WORK(IMAX-1,JWKOUT) -C ... WHICH COMEPLETES 1ST INTERIOR ROW SO OVERWRITE ROW2 - DO 544 I = 1,IMAX - FABSVO(I,2) = WORK(I,JWKOUT) - 544 CONTINUE -C ... FINALLY SET BOTTOM ROW IDENTICAL TO FIRST INTERIOR ROW - DO 555 I = 1,IMAX - FABSVO(I,1) = WORK(I,JWKOUT) - 555 CONTINUE - GO TO 999 -C - 911 CONTINUE - IERROR = 1 - GO TO 999 - 922 CONTINUE - IERROR = 2 - GO TO 999 -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakr.fd/absvws.f b/util/sorc/faxmakr.fd/absvws.f deleted file mode 100755 index e90b579ece..0000000000 --- a/util/sorc/faxmakr.fd/absvws.f +++ /dev/null @@ -1,37 +0,0 @@ - SUBROUTINE ABSVWS(FLD,WRK,IMAX,JMAX) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: ABSVWS PERFORM SPECIAL ABSOLUTE VALUE FOR VWS. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PREPARE ABSOLUTE VALUE FIELD FOR VERTICAL WIND SHIELD. -C -C PROGRAM HISTORY LOG: -C 96-10-04 LUKE LIN ORIGINAL AUTHOR -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C -C USAGE: CALL ABSVWS(FLD,WRK,IMAX,JMAX) -C INPUT ARGUMENT LIST: -C FLD _ THE ABSVWSITATION FIELD FOR CLIFFING AND SMOOTHING -C WRK _ THE WORKING FIELD FOR SMOOTHING USING W3FM08 -C IMAX,JMAX_ THE DIMENSIONS OF FLD AND WRKNG USING W3FM08 -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C FLD _ THE ABSOLUTE VWS FIELD -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - DIMENSION FLD(IMAX,JMAX) - DIMENSION WRK(IMAX,JMAX) -C -C - DO 50 J=1,JMAX - DO 50 I=1,IMAX - FLD(I,J)= ABS(FLD(I,J)) - 50 CONTINUE -C - END diff --git a/util/sorc/faxmakr.fd/block.f b/util/sorc/faxmakr.fd/block.f deleted file mode 100755 index 7165b496ba..0000000000 --- a/util/sorc/faxmakr.fd/block.f +++ /dev/null @@ -1,195 +0,0 @@ - BLOCK DATA -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: BLOCKDAT INITIALIZE THE ARRAYS IN COMMON ICON. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: BLOCK DATA IS USED TO INITIALIZE THE CONSTANTS FOR UNPACKING -C AND SCALING THE GRID POINT DATA FIELDS FOR CONTOURING AND LABELING -C OF CONTOURS.SCALING THE GRID POINT FIELDS FOR CONTOURING AND -C -C PROGRAM HISTORY LOG: -C 94-09-19 ORIGINAL AUTHOR HENRICHSEN -C 94-09-23 HENRICHSEN ADDED PRESSURE CHANGE AND HEIGHT CHANGE -C 94-09-29 HENRICHSEN ADDED # 45 WHICH IS 50% RH. -C 94-10-03 HENRICHSEN RENAMED LIFTED INDEX 21 & 29 TO -C TO BEST LIFTED INDEX "LIB". WHERE -C THIS WAS ITEM # 17 IN PEPFAX. -C 94-10-04 HENRICHSEN ADDED TRAJECTORY TEMPS, VERTICAL DISPLACEMENT, -C AND KINDEX. -C 94-12-15 HENRICHSEN CORRECTED LIFTED INDEX "LIB" TO "LI4" AND -C THE PREVIOUS "LI4" TO "LI '. -C 95-02-14 HENRICHSEN REMOVE ITEM# 13 MAKE VORTICITY FROM U AND V -C FIELDS. -C 95-07-14 LUKE LIN ADD 0-9 VECTORS. -C 96-09-12 LUKE LIN ADD CGRID PRECIP CONSTANTS. -C 96-11-18 LUKE LIN OPEN 41 FOR TROPOPAUSE STREAM FUNCTION. -C 97-03-12 LUKE LIN OPEN 18 FOR BLENDED AVERAGE -C 97-12-04 LUKE LIN CHANGE 39 FOR SFC GEO REL VORTICITY -C 97-12-10 C. CARUSO CHANGE 17 FOR SFC GEO WIND -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C -C OUTPUT ARGUMENT LIST: -C COMMON - /ICON/ UA1(50),UA2(50),UA3(50),UM1(50), -C - UM2(50),UM3(50),KTYPE(50) -C -C REMARKS: THE "KTYPES" 26 AND ABOVE WILL PRODUCE MAPS WITH -C TWICE AS MANY CONTOURS. FOR EXAMPLE KTYPE(1) WILL PRODUCE A MAP -C WITH ISOBAR LINES EVERY FOUR MILLIBARS. -C WHERE AS KTYPE(26) WILL PRODUCE A MAP WITH ISOBAR LINES EVERY -C TWO MILLIBARS. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON /ICON/ UA1(50),UA2(50),UA3(50),UM1(50),UM2(50),UM3(50), - 1 KTYPE(50) - CHARACTER*4 KTYPE - REAL UA1,UA2,UA3,UM1,UM2,UM3 -C - COMMON /MCON/ IADDB,IADDTAU,NUMTYP,NUMKEY, - 1 MTAU(18),MEAN(18),LMEAN,KDN,LDN -C - INTEGER NUMTYP - INTEGER MTAU - CHARACTER*4 MEAN - LOGICAL LMEAN - LOGICAL KDN - LOGICAL LDN -C - DATA NUMTYP /13/ - DATA MTAU/ -36, 12, 84, 96, 108, 120, - 1 132, 144, 156, 168, 204, 216, - 2 324, 0, 0, 0, 0, 0/ - DATA MEAN/'D-3 ','D+0 ','D+3 ','D+3+','D+4 ','D+4+', - 1 'D+5 ','D+5+','D+6 ','D+6+','D+8 ','D+8+', - 2 'D+13',' ',' ',' ',' ',' '/ - DATA KTYPE/'PRS ','HGT ','THK ','HTC ','TMP ','RH ', - 1 'QP ','OZNE','VORT','ISO ','WPT ','VEV ', - 2 '....','SWND','WVHT','ICEG','WDVT','HGTB', - 3 'QPVV','LI ','LI4 ','PSC ','HTC ','MSLP', - 4 'RH ','SF ','BHR ','LI ','LI4 ','PWTR', - 5 'PRS ','HGT ','THK ','HTC ','TMP ','RH ', - 6 'PCP ','RHPT','VORT','ISOT','....','VEV ', - 7 'TPRS','TVWS','RH ','TTM ','TVD ','TKI ', - 8 'QPVV','VEV '/ -C . . . DATA FOR SCALING...... -C -C VALUES FOR KEYIDX FOLLOW: -C 1 = PESSURE, 2 = HEIGHT, 3 = THICKNESS, 4 = HEIGHT CHANGE, -C 4 = HEIGHT CHANGE WITH CENTERS AS BIG "H" AND BIG "L". -C 5 = TEMPERATURE, -C 6 = RELATIVE HUMIDITY NO CENTERS WITH LINES EVERY 20%. -C 7 = PRECIPITATION -C 8 = OZONE, 9 = VORTICITY, 10 = ISOTACHS, 11 = WIND PLOTS, -C 12 = VERT VEL, 13 = MAKE VORT, 14 = SEA SURFACE WIND SPEED. -C 15 = WAVE HEIGHTS,16 = SOLID ICE EDGE,17 = SFC GEOS WIND. -C 18 = BLENDED AVERAGE -C 19 = A PCP FOR BIG C GRID FOR 12 HOUR ACCUMULATION -C 20 = SFC TO 500 LIFTED INDEX, -C 21 = BEST LIFTED INDEX ALSO KNOWN AS THE 4-LAYER LIFTED INDEX. -C 22 = PRESSURE CHANGE -C 23 = HEIGHT CHANGE WITH CENTER AS 2 DIGET NUMBER WITH + OR - -C 24 = MSL PRESSURE ANL(VSLPANL) -C 25 = RELATIVE HUMILITY CENTERS WITH LINES EVERY 20% -C 26 = NGM SURFACE PRESSURE, -C 27 = BOUNDRY LAYER HUMIDITY CENTERS WITH LINES EVERY 10% -C 28 = SFC TO 500 LIFTED INDEX, -C 29 = BEST LIFTED INDEX ALSO KNOWN AS THE 4-LAYER LIFTED INDEX. -C 30 = PRICIP WATER -C 31 = PESSURE,32 = HIEGHT,33 = THICKNESS,34 = HEIGHT CHANGE, -C 35 = TEMPERATURE, -C 36 = RELATIVE HUMIDITY CENTERS WITH LINES EVERY 15% -C 37 = PRECIPITATION -C 38 = RH PLOT -C 39 = SFC GEO REL VORTICITY, -C 40 = ISOTACHS, -C 41 = TROPOPAUSE STREAM FUNCTION -C 42 = VERTICAL VELOCITY, -C 43 = TROPOPAUSE PRESSURE, -C 44 = TROPOPAUSE VWS, -C 45 = RELATIVE HUMIDITY CENTERS + THE 50% LINE -C 46 = TRJECTORY TEMPERATURE/DEPOINT TEMPERATURE. -C 47 = TRJECTORY NET VERTICAL DISPLACEMENT. -C 48 = TRJECTORY K INDEX. -C 49 = A PCP FOR BIG C GRID FOR 6 HOUR ACCUMULATION -C 50 = A VV FOR BIG C GRID -C -C . . . .ADDITIVE CONSTANTS NEW UNITS TO OLD UNITS. -C - DATA UA1/0.0 ,0.0 ,0.0 ,0.0 ,-273.16 , - 2 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 3 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 4 0.0 ,0.0 ,0.0 ,0.0 ,-273.16 , - 5 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 6 0.0 ,0.0 ,-273.16,0.0 ,0.0 , - 7 0.0 ,0.0 ,0.0 ,0.0 ,-273.16 , - 8 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 9 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - A -273.16 ,0.0 ,0.0 ,0.0 ,0.0 / -C . . . .MULTIPLICATIVE CONSTANTS NEW UNITS TO OLD UNITS. -C - DATA UM1/0.01 ,1.0 ,1.0 ,1.0 ,1.0 , - 2 1.0 ,.03937 ,1.5 ,1.0E5 ,1.94254 , - 3 1.94254,-10.0 ,1.0 ,1.94254,3.280833, - 4 1.0 ,1.94254,1.0 ,.03937 ,1.0 , - 5 1.0 ,0.01 ,0.1 , 1.0 ,1.0 , - 6 0.01 ,1.0 ,1.0 ,1.0 ,0.03937 , - 7 1.0 ,1.0 ,1.0 ,1.0 ,1.0 , - 8 1.0 ,39.37 ,1.0 ,1.0E5 ,1.94254 , - 9 9.434E-6 ,-1.0E3 ,0.01 ,592.084973,1.0 , - A 1.0 ,0.01 ,1.0 ,.03937,-1.0E1 / -C . . . .ADDITIVE CONSTANTS FOR CONTOURING. -C - DATA UA2/0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 2 6.5 ,.98 ,0.0 ,0.0 ,6.5 , - 3 0.0 ,0.0 ,0.0 ,-2.5 ,8.0 , - 4 0.0 ,0.0 ,0.0 ,0.98 ,0.0 , - 5 0.0 ,0.0 ,0.0 ,0.0 ,6.5 , - 6 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 7 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 8 0.0 ,.94 ,0.0 ,0.0 ,0.0 , - 9 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - A 0.0 ,0.0 ,0.0 ,0.96 ,0.0 / -C . . . .MULTIPLICATIVE CONSTANTS FOR CONTOURING. -C - DATA UM2/0.25 ,.008333,.016667,.016667,0.2 , - 2 0.05 ,2.0 ,0.5 ,0.5 ,0.05 , - 3 1.0 ,0.5 ,0.5 ,0.1 ,0.125 , - 4 0.5 ,1.0 ,0.01667,2.0 ,0.25 , - 5 0.25 ,0.25 ,.16667 ,.50 ,0.05 , - 6 0.25 ,0.1 ,.5 ,0.5 ,8.0 , - 7 0.50 ,.033334,.033334,.016667,0.4 , - 8 0.06667,4.0 ,1.0 ,0.5 ,0.10 , -C 9 0.50 ,1.0 ,.04 ,1.0 ,.02 , - 9 0.01 ,1.0 ,.02 ,0.5 ,.02 , - A 0.20 ,0.05 ,.25 ,4.0 ,.33334 / -C . . . .ADDITIVE CONSTANTS FOR CENTER FINDING/CONTOUR LABELING. -C - DATA UA3/0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 2 -6.5 ,-.98 ,0.0 ,0.0 ,-6.5 , - 3 0.0 ,0.0 ,0.0 ,2.5 ,-8.0 , - 4 0.0 ,0.0 ,0.0 ,-.98 ,0.0 , - 5 0.0 ,0.0 ,0.0 ,0.0 ,-6.5 , - 6 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 7 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 8 0.0 ,-.94 ,0.0 ,0.0 ,0.0 , - 9 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - A 0.0 ,0.0 ,0.0 ,-.96 ,0.0 / -C . . . .MULTIPLICATIVE CONSTANTS FOR CENTER FINDING/CONTOUR LABELING. -C - DATA UM3/4.0 ,12.0 ,6.0 ,6.0 ,5.0 , - 2 20.0 ,50.0 ,20. ,2.0 ,20.0 , - 3 1.0 ,2.0 ,1.0 ,10.0 ,8.0 , - 4 2.0 ,1.0 ,6.0 ,50.0 , 4.0 , - 5 4.0 ,4.0 ,60.0 ,2.0 ,20.0 , - 6 4.0 ,10.0 ,2.0 ,2.0 ,12.5 , - 7 2.0 ,3.0 ,3.0 ,6.0 ,2.5 , - 8 15.0 ,25.0 ,10. ,2.0 ,10.0 , - 9 100.0 ,1.0 ,50.0 ,2.0 ,50.0 , - 6 5.0 ,20.0 ,4.0 ,25.0 ,3.0 / -C - END diff --git a/util/sorc/faxmakr.fd/clabep.f b/util/sorc/faxmakr.fd/clabep.f deleted file mode 100755 index efee9d3e77..0000000000 --- a/util/sorc/faxmakr.fd/clabep.f +++ /dev/null @@ -1,209 +0,0 @@ - SUBROUTINE CLABEP(Z,IMAX,JMAX,S,A,B,M,IJFOX,LOX, - X ITABMB,ITABFL,MXITR,LPLMI,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLABEP DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: FINDS WITHIN A GIVEN RECTANGULAR ARRAY OF THE -C FORM Z(IMAX,JMAX) AND A FIXED I COLUMN OR J ROW (IJFIX) ALL OF -C THE CONTOUR LABELS THAT CUT THIS FIXED I COLUMN (NORTH/SOUTH -C LABELS) OR J ROW (EAST/WEST LABELS). WHENEVER IJFIX IS POSITIVE -C A FIXED J ROW IS DESIRED, WHENEVER IJFIX IS NEGATIVE A FIXED -C I COLUMN IS DESIRED. IN ADDITION BASED ON THE SCALE OF THE GRID -C (SCALE) THIS SUBROUTINE RESTRICTS THE NUMBER OF CONTOUR LABELS -C ALLOWED PER I OR J DISTANCE WHEN PREPARING THE LABELS FOR OUTPUT. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-10-03 LUKE LIN CONVERT IT CFT77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C ASSIGNED INDEFF VALUE FOR IBM USING RANGE -C FUNCTION FOR xlf qintsize=8 qrealsize=8 -C OPTIONS -C -C USAGE: CALL CLABEP( Z, IMAX, JMAX, S, A, B, M, IJFOX, LOX, -C ITABMB, ITABFL, MXITR, LPLMI, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON/ADJ3/IRTCOR,IUPCOR -C - INTEGER ITEXT(3),JTEXT(3) - CHARACTER*8 IFF(5) - REAL Z(IMAX,JMAX) - INTEGER ITABMB(MXITR),ITABFL(MXITR) -C - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - INTEGER M(2) -C - REAL INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 -C - DATA INDEF / 1.0E307 / -C - DATA ITEXT/0,0,0/ -C -C ...WHERE UP AND RIGHT ARE DIR REL TO LABEL NUMBERS VIEWED NATURALY -C/// EQUIVALENCE(LTEXT,ITEXT(1)) -C/// EQUIVALENCE(MTEXT,JTEXT(1)) -C - IJFIX=IJFOX - KCON4=20 - KCON5=30 - IMIN=1 - JMIN=1 - KBEG=IMIN+2 - KLIM=IMAX-2 - ITYPE=0 - IF(IJFIX.GE.0) GO TO 10 - IJFIX=-IJFIX - KBEG=JMIN+2 - KLIM=JMAX-4 - ITYPE=1 - 10 Q=S*20. - REM=1. - KCON6=(FLOAT(IJFIX-1)*Q*3.)+0.5 -C ...WHERE KCON6 IS TRUE LOCN (IN DOTS) OF THE PT ON FIXED COORD. - ICAL1 = KCON6 + IRTCOR -C ...THIS ICAL1 IS IDOTS FOR PUTNLAB FOR CONST I CASE, BUT NOT FOR J - Q1=1./(2.*Q*Q) - Q2=(Q+1.)/2. - Q3=1./Q - N=8 - KLAST=0 - KSTART=KBEG - IF(ITYPE.EQ.1) GO TO 15 - DO 11 K=KBEG,KLIM - IDEF=Z(K,IJFIX) - IF(IDEF.NE.INDEF) GO TO 12 - KSTART=KSTART+1 - 11 CONTINUE - GO TO 500 - 12 L=Z(KSTART,IJFIX) - GO TO 20 - 15 DO 16 K=KBEG,KLIM - IDEF=Z(IJFIX,K) - IF(IDEF.NE.INDEF) GO TO 17 - KSTART=KSTART+1 - 16 CONTINUE - GO TO 500 - 17 L=Z(IJFIX,KSTART)+10000. - 20 DO 200 K=KSTART,KLIM - Q4=REM/2. - Q5=1.-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) -C -C CHECK FOR IMBEDDED GRID -C - IF(ITYPE.EQ.1) GO TO 25 - KDEF1=Z(K,IJFIX) - KDEF2=Z(K+1,IJFIX) - KDEF3=Z(K-1,IJFIX) - KDEF4=Z(K+2,IJFIX) - YD2=0 - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF).OR.(KDEF3.EQ.INDEF).OR. - X(KDEF4.EQ.INDEF)) GO TO 21 - YD2=(Z(K+2,IJFIX)-Z(K+1,IJFIX)-Z(K,IJFIX)+Z(K-1,IJFIX))*Q1 - 21 IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 200 - YD1=(Z(K+1,IJFIX)-Z(K,IJFIX))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(K,IJFIX)+Q5*Q4*YD1 - GO TO 35 - 25 KDEF1=Z(IJFIX,K) - KDEF2=Z(IJFIX,K+1) - KDEF3=Z(IJFIX,K-1) - KDEF4=Z(IJFIX,K+2) - YD2=0 - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF).OR.(KDEF3.EQ.INDEF).OR. - X(KDEF4.EQ.INDEF)) GO TO 31 - YD2=(Z(IJFIX,K+2)-Z(IJFIX,K+1)-Z(IJFIX,K)+Z(IJFIX,K-1))*Q1 - 31 IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 200 - YD1=(Z(IJFIX,K+1)-Z(IJFIX,K))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(IJFIX,K)+Q5*Q4*YD1+10000. - 35 DO 130 KK=1,IINC - MM=YVAL - IF((MM-L).EQ.0) GO TO 125 -C -C COMPUTE A LABEL -C - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - KCON7 = FLOAT(K - 1) * Q * 3.0 - IF(ITYPE.EQ.1) GO TO 40 - JCAL = KCON6 + IRTCOR - ICAL = KCON7 + KCON1 + IUPCOR - ICAL1 = ICAL - GO TO 45 - 40 CONTINUE - JCAL = KCON7 + KCON1 + IUPCOR -C ...THIS JCAL IS JDOTS FOR PUTNLAB FOR CONST I CASE. - ICAL = JCAL - 45 CONTINUE - HOLD=B*(XVAL+A) - ITEXT(1)=SIGN((ABS(HOLD)+0.05),HOLD) - KPOSX = KCON4 -C PRINT *,' ICAL=',ICAL,' KLAST=',KLAST,' KPOSX=',KPOSX - IF(ABS(ICAL-KLAST).LT.KPOSX) GO TO 125 - KLAST=ICAL -C PRINT *,' LOX=',LOX - IF(LOX.EQ.1) GO TO 109 - 50 INTG=ITEXT(1) - NCHAR=M(2) -C -C FORMAT STRIP LABEL -C - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - N=12 -C??? WRITE(LTEXT,FMT=IFF)JTEXT(1) - WRITE(LTEXT,FMT=IFF)MTEXT -C - CALL PUTLAB(ICAL1,JCAL,PUTHGT,LTEXT,PUTANG,N,IPRPUT,ITAPUT) - GO TO 125 -C -C USE INDIRECT LABELS -C - 109 CONTINUE -C print *,' at 109, mxitr=',mxitr - DO 110 ITR=1,MXITR - ITSAVE=ITR -C PRINT *,' ITEXT(1)=',ITEXT(1),' ITABMB=',ITABMB(ITR) - IF(ITABMB(ITR).EQ.ITEXT(1)) GO TO 112 - 110 CONTINUE - GO TO 125 - 112 KLAST=ICAL - ITEXT(1)=ITABFL(ITSAVE) - GO TO 50 - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE - 200 CONTINUE - 500 RETURN - END diff --git a/util/sorc/faxmakr.fd/clear.f b/util/sorc/faxmakr.fd/clear.f deleted file mode 100755 index 0dbe96fe43..0000000000 --- a/util/sorc/faxmakr.fd/clear.f +++ /dev/null @@ -1,84 +0,0 @@ - SUBROUTINE CLEAR(BLAT,XINDEF,FLD,IMAX,JMAX,KEY,IRTN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLEAR FILLS EDGES OF FIELD WITH INDEFINITES. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: FILLS THE AREA OUTSIDE OF THE GIVEN LATITUDE WITH -C INDEFINATES. -C -C PROGRAM HISTORY LOG: -C 89-11-29 ORIGINAL AUTHOR HENRICHSEN. -C 92-07-06 HENRICHSEN CONVERT TO FORTRAN 77. -C 94-10-11 HENRICHSEN PASS IN INDEF ARG. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL CLEAR(BLAT,XINDEF,FLD,IMAX,JMAX,KEY,IRTN) -C INPUT ARGUMENT LIST: -C BLAT - REAL*4 THE GIVEN MAXIMUM LATITUDE FOR WHICH -C INDEFINITES WILL BE INSERTED INTO DATA FIELD. -C XINDEF - REAL*4 THE GIVEN VALUE TO BE PUT IN FIELD. -C FLD - REAL*4 (IMAX,JMAX) ARRAY CONTAINING DATA FIELD. -C IMAX/JMAX- INTEGER*4 DIMENSIONS OF FLD. -C KEY - INTEGER*4 GRID KEY FLAG USED FOR SUB TRULL. -C -C OUTPUT ARGUMENT LIST: -C IRTN - RETURN CODE. -C - =0 EVERYTHING OK. -C - =1 KEY OUT OF RANGE (RANGE IS 1 TO 14). -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C - REAL ALAT - REAL ALONG - REAL BLAT - REAL FLD(IMAX,JMAX) - REAL XI - REAL XINDEF - REAL XJ -C -C CHECK VALUE OF KEY -C - IRTN = 0 - NUMPNT = 0 - PRINT *, ' KEYCLR = ',KEY - IF(KEY.GT.0.AND.KEY.LE.14) THEN -C - DO J=1,JMAX - XJ = J - DO I=1,IMAX - XI = I - CALL TRULL(XI,XJ,ALAT,ALONG,KEY) -C -C CHECK TO SEE IF ALAT IS LESS THAN OR EQ TO BLAT. -C IF TRUE LOAD AN INDEF AT THAT GRID POINT. -C - IF(ALAT.LE.BLAT) THEN -C - FLD(I,J) = XINDEF - NUMPNT = NUMPNT + 1 - ENDIF - ENDDO - ENDDO -C - WRITE(6,FMT='('' CLEAR; FILLED '',I4,'' POINTS OUT SIDE'', - 1 '' OF '',F5.2,'' WITH INDEFINITES USING GRID KEY='',I2)') - 2 NUMPNT,BLAT,KEY - ELSE -C -C KEY IS OUT OF RANGE. -C - WRITE(6,FMT='('' *** ERROR SUB CLEAR;'', - 1 '' GRID KEY VALUE '',I2,'' IS BAD.'')')KEY - IRNT = 1 - ENDIF - RETURN - END diff --git a/util/sorc/faxmakr.fd/closee.f b/util/sorc/faxmakr.fd/closee.f deleted file mode 100755 index 106bd42642..0000000000 --- a/util/sorc/faxmakr.fd/closee.f +++ /dev/null @@ -1,238 +0,0 @@ - SUBROUTINE CLOSEE(Z,IMAX,JMAX,S,A,B,M,IUP,IX,JY,LPLMI,ITST,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLOSEE LABEL CONTOURS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO LABEL CONTOURS ALONG A CONSTANT JROW FROM THE GIVEN -C POINT LOOKING FOR CONTOURS ALONG INCREASING I OVER IUP GRID -C INTERVALS. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD UNKNOWN -C 90-03-15 LILLY ADD DOCBLOCK TO SUBROUTINE -C 93-06-01 GILBERT/LILLY CONVERTED TO FORTRAN 77 -C 96-11-30 YEN - CONVERT FROM HDS TO CRAY. CORRECT POTENTIAL -C PROBLEM WITH GETTING VALUES OUT OF BOUNDS AS -C HAD ENCOUNTERED IN CLOSED. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO INDEFF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL CLOSEE(Z,IMAX,JMAX,S,A,B,M,IUP,IX,JY,XLPLMIT,ITST,IFF) -C -C INPUT ARGUMENT LIST: -C Z - SCALED DATA ARRAY OF SIZE IMAX,JMAX IN WHICH TO FIND -C - CENTER VALUES. -C IMAX,JMAX- DIMENSIONS OF Z ARRAY. -C S - SCALE VALUE WHICH IS DOTS PER GRID INTERVAL/ 60.0. -C - IE 37.5/60.0 -C A - ADDATIVE VALUE FOR CONVERTING CONTOUR VALUE BACK -C - TO THE ORGINAL UNITS. -C B - MULTIPLICATIVE VALUE FOR CONVERTING CONTOUR VALUE -C - BACK TO THE ORGINAL UNITS. -C M - ARRAY DIMENSIONED 2: -C - FIRST WORD IS A FLAG AND HAS THE VALUE OF 0, 1, 2, 3. -C - IF NE TO 0 THEN FIRST HALF OF IUP CONTAINS THE VALUE -C - OF CONTOURS THAT WILL NOT BE LABELED. -C - 2ND WORD IS A NUMBER OF CHARACTERS IN CONTOUR LABEL. -C IUP - TWO HALF WORD ARRAY WHERE: -C - FIRST HALF IS 0 IF ALL CONTOURS WITHIN IUP UNITS ARE -C - TO BE LABELED. -C - IF NE TO 0 THEN FIRST HALF OF IUP CONTAINS THE VALUE -C - OR RANGE OF CONTOURS THAT WILL NOT BE LABELED. -C - 2ND HALF IS NUMBER OF GRID INTERVALS FROM CENTER TO -C - LABEL CONTOURS. -C IX,JY - I,J COORDINATES WITHIN Z ARRAY OF CENTER POINT. -C XLPLMT - FORMAT WORD FOR SUBROUTINE BIN2EB. -C ITST - DATA SET REF NUMBER OF TEMPORARY DISK FILE TO -C - WRITE ARGS ONTO -C IFF - 5 WORD FORMAT USED BY SUBROUTINE ENCODE TO FORM CON- -C - TOUR LABELS. -C -C OUTPUT ARGUMENT LIST: NONE -C -C SUBPROGRAMS CALLED: -C LIBRARY: -C COMMON - PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT -C - ADJ3/ILCOR,JDCOR -C -C REMARKS: THE VALUES OF FIRST HALF OF M ARGUMENT ARE: -C 0 MEANS LABEL ALL CONTOURS WITHIN LIMITS. -C 1 MEANS SKIP THE LABELING OF CONTOURS THAT ARE EQUAL TO VALUE -C FOUND IN FIRST HALF OF IUP ARGUEMENT. -C 2 MEANS SKIP THE LABELING OF CONTOURS THAT ARE LESS THAN OR EQUAL -C TO THE VALUE FOUND IN FIRST HALF OF IUP ARGUEMENT. -C TO THE VALUE FOUND IN FIRST HALF OF IUP ARGUEMENT. -C 3 MEANS SKIP THE LABELING OF CONTOURS THAT ARE GREATER THAN THE -C VALUE FOUND IN FIRST HALF OF IUP ARGUEMENT. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C ...PURPOSE...TO LABEL CONTOURS ALONG A CONSTANT J ROW -C ...FROM THE GIVEN POINT LOOKING FOR CONTOURS ALONG INCREASING -C ...I OVER IUP GRID INTERVALS... -CHDS COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON /ADJ3/ILCOR,JDCOR - DIMENSION Z(IMAX,JMAX) -CCRAYb - DIMENSION M(2) -CCRAYe -C -CHDS DIMENSION IFF(5) - CHARACTER*8 IFF(5) - DIMENSION ITEXT(3),JTEXT(3) - CHARACTER*12 CTEXT,HTEXT - CHARACTER*4 LPLMI -CHDS REAL*4 INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 - REAL INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 - EQUIVALENCE (CTEXT,ITEXT(1)) - EQUIVALENCE (HTEXT,JTEXT(1)) - DATA INDEF /1.0E307 / - DATA ITEXT/3*0/ - IF(ITST.EQ.0) GO TO 7 - KCON4=30 - KCON5=40 - ICLOSE=0 -C ...WHERE KCON4 AND 5 ARE MIN DISTANCE (IN DOTS) FROM BEGINNING -C ...OF ONE CONTOUR LABEL TO THE NEXT ON THE SAME J-ROW -C ...TO PREVENT OVERPLOTTING - 7 CONTINUE - KBEG=IX - KLIM=IX+IUP - IJFIX=JY - 10 Q=S*20.0 -C ...WHERE Q IS NO. OF TRIBYTES PER GRID INTERVAL - REM=1.0 - Q1=1.0/(2.0*Q*Q) - Q2=(Q+1.0)/2.0 - Q3=1.0/Q - N=10 - KLAST=0 -C ...TO SEARCH FOR A GOOD DATA PT. TO START FROM... - KSTART=KBEG - 15 DO 16 K=KBEG,KLIM - IDEF=Z(K,IJFIX) - IF(IDEF.NE.INDEF) GO TO 17 - KSTART=KSTART+1 - 16 CONTINUE - GO TO 500 - 17 L=Z(KSTART,IJFIX)+10000. - JCAL1=FLOAT(IJFIX-1)*Q*3.0+0.5 -C ...J(IN DOTS)=(GRID INT.)*(TRIBYTES/GRID INT.)*(3 DOTS/TRIBYTE) - JCAL1=JCAL1+2*JDCOR+5 -C ...WHERE JCAL1 IS THE J (IN DOTS) OF LOWER LEFT OF FIRST CHAR -C ...OF ANY CONTOUR LABEL FOR ALL LABELS ALONG FIXED J ROW.. - 20 DO 200 K=KSTART,KLIM - Q4=REM/2.0 - Q5=1.0-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) - KCON7=FLOAT(K-1)*Q*3.0 -C -C ...CHECK FOR IMBEDDED GRID -C - 25 KDEF1=Z(K,IJFIX) -CHDS KDEF2=Z(K+1,IJFIX) -CHDS KDEF3=Z(K-1,IJFIX) -CHDS KDEF4=Z(K+2,IJFIX) -Ccrayb - IF (K.EQ.IMAX) THEN - KDEF2=INDEF - ELSE - KDEF2=Z(K+1,IJFIX) - ENDIF - IF (K.EQ.1) THEN - KDEF3 = INDEF - ELSE - KDEF3=Z(K-1,IJFIX) - ENDIF - IF (K.GE.IMAX) THEN - KDEF4=INDEF - ELSE - KDEF4=Z(K+2,IJFIX) - ENDIF -Ccraye - YD2=0 - IF(KDEF1.EQ.INDEF) GO TO 31 - IF(KDEF2.EQ.INDEF) GO TO 31 - IF(KDEF3.EQ.INDEF) GO TO 31 - IF(KDEF4.EQ.INDEF) GO TO 31 - YD2=(Z(K+2,IJFIX)-Z(K+1,IJFIX)-Z(K,IJFIX)+Z(K-1,IJFIX))*Q1 - 31 IF(KDEF1.EQ.INDEF) GO TO 200 - IF(KDEF2.EQ.INDEF) GO TO 200 - YD1=(Z(K+1,IJFIX)-Z(K,IJFIX))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(K,IJFIX)+Q5*Q4*YD1+10000. -C -C ...BEGIN INNER LOOP - 35 DO 130 KK=1,IINC - MM=YVAL - IF((MM-L).EQ.0) GO TO 125 -C -C ...COMPUTE A LABEL - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - ICAL=KCON7+KCON1+ILCOR -C ...THIS IS I-VALUE IN DOTS FOR PUTLAB - HOLD = B * (XVAL + A) - ITEXT(1) = SIGN((ABS(HOLD) + 0.05),HOLD) - KPOSX=KCON4 - KAFOS=KCON5 - 50 IF((ICAL-KLAST).LT.KPOSX) GO TO 125 - IF((ICAL-KLAST).LT.KAFOS) GO TO 150 -CHDS IPRPUT=0 - IPRPUT(1)=0 - IPRPUT(2)=0 - ICLOSE=0 - GO TO 160 - 150 CONTINUE - IF(ICLOSE.EQ.0) GO TO 151 - GO TO 152 - 151 CONTINUE -CHDS IPRPUT=1 - IPRPUT(1)=0 - IPRPUT(2)=1 - ICLOSE=1 - GO TO 160 - 152 CONTINUE -CHDS IPRPUT=0 - IPRPUT(1)=0 - IPRPUT(2)=0 - ICLOSE=0 - 160 CONTINUE - KLAST=ICAL - 55 CONTINUE - 75 CONTINUE - INTG=ITEXT(1) -C NCHAR=M - NCHAR=M(2) -C -C ...FORMAT STRIP LABEL FROM CENTER POSITION -C - 90 CONTINUE - CALL BIN2EB(INTG,HTEXT,NCHAR,LPLMI(1:3)) - 95 CONTINUE - N=12 -C CALL ENCODE(ITEXT(1),N) -C WRITE(99,IFF) JTEXT(1) - WRITE(CTEXT(1:N),FMT=IFF) JTEXT(1) - PRINT *,' INTG=',INTG,' ITEX=',ITEXT,' I=',ICAL,' J=',JCAL1 - CALL PUTLAB(ICAL,JCAL1,PUTHGT,ITEXT,PUTANG,N,IPRPUT,ITAPUT) -C - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE -C ...WHICH ENDS INNER LOOP ON KK - 200 CONTINUE -C ...WHICH ENDS OUTER LOOP ON K - 500 RETURN - END diff --git a/util/sorc/faxmakr.fd/closet.f b/util/sorc/faxmakr.fd/closet.f deleted file mode 100755 index c6ef96a53f..0000000000 --- a/util/sorc/faxmakr.fd/closet.f +++ /dev/null @@ -1,243 +0,0 @@ - SUBROUTINE CLOSET(Z,IMAX,JMAX,S,A,B,M,JUP,IX,JY, - X LPLMI,ITST,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLOSET FINDS THE CENTER LOCATIONS FROM THE GIVEN -C PRGMMR: KRISHNA KUMAR ORG: NP12 DATE:1999-08-01 -C -C ABSTRACT: DOCUMENTATION WILL BE ADDED LATER. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-02-22 LIN CONVERT TO CFT-77 -C 96-07-22 LIN TURN OFF THE PRINT STATEMENT -C 96-11-30 YEN MODIFIED CLOSED AND GIVE NEW NAME OF CLOSET WHICH -C CAUSED FLOATING POINT EXCEPTION IN POPFAX, TO -C CHECK FOR OUT OF BOUND POINTS AND SET TO INDEF. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C ASSIGNED PROPER VALUE TO INDEFF USING RANGE FUNCTION -C FOR IBM RS/6000 FOR COMPILE OPTIONS -C xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL CLOSET( Z, IMAX, JMAX, S, A, B, M, JUP, IX, JY, -C LPLMI, ITST, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C ...PURPOSE...TO LABEL CONTOURS ABOVE A GIVEN CENTER POINT ALONG -C ... A FIXED I, INCREASING J VALUES, TO FIND ALL CONTOURS -C ... WITHIN JUP GRID INTERVALS OF THE GIVEN CENTER... -C ...THIS SUBR IS CALLED BY SUBROUTINE CLOSEC WHICH LOCATES CENTER. -C - COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON /ADJ1/ICOR,JCOR -C - DIMENSION Z(IMAX,JMAX) - CHARACTER*8 IFF(5) - DIMENSION ITEXT(3),JTEXT(3) -C - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - INTEGER M(2) - INTEGER JPRPUT(2) -C - REAL INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 -C - DATA ITEXT/3*0/ - DATA IDECP/'. '/ -C/// DATA INDEF/Z'7FFFFFFF'/ -C/// DATA IMSK1/Z'FF000000'/ -C/// DATA IMSK2/Z'FFFF0000'/ - DATA INDEF /1.0E307 / - DATA IMSK1/Z'FFFFFFFFFF000000'/ - DATA IMSK2/Z'FFFFFFFFFFFF0000'/ -C -C/// EQUIVALENCE(LTEXT,ITEXT(1)) -C/// EQUIVALENCE(MTEXT,JTEXT(1)) -C -Cdb$$$$$$$$ -C WRITE(6,671) S, M, JUP, IX, JY -C 671 FORMAT(' ===In CLOSET==S, M(1-2), JUP, IX, JY=',F7.2,5i4) -C WRITE(6,672) ((Z(I,J),J=1,2),i=1,61) -C 672 FORMAT (' CLOSET FIELD=',/,8(15f6.1,/)) -Cde$$$$ - KCON4=20 - KCON5=30 - ICLOSE=0 - IISFC=0 - IF(M(2).EQ.9) IISFC=1 - 7 KBEG=JY - KLIM=JY+JUP - IJFIX=IX - Q=S*20. - REM=1. - Q1=1./(2.*Q*Q) - Q2=(Q+1.)/2. - Q3=1./Q - N=10 - KLAST=0 - KSTART=KBEG - DO 16 K=KBEG,KLIM - IDEF=Z(IJFIX,K) -Cdb$$$$$$$$ -C WRITE(6,333) IJFIX,K, KBEG, KLIM, IDEF -C 333 FORMAT(' CLOSET-IJFIX,K=',2i3,' KBEG,KLIM=',2i3,'IDEF=',f14.3) -Cdbe$$$$ - IF(IDEF.NE.INDEF) GO TO 17 - KSTART=KSTART+1 - 16 CONTINUE - GO TO 500 - 17 L=Z(IJFIX,KSTART)+10000. - KCON6=(FLOAT(IJFIX-1)*Q*3.0)+0.5 - ICAL1=KCON6+ICOR -C ...THIS ICAL1 IS THE FIXED I VALUE IN DOTS... - DO 200 K=KSTART,KLIM - Q4=REM/2. - Q5=1.-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) - KCON7=(FLOAT(K-1)*Q*3.0)+0.5 -C -C CHECK FOR IMBEDDED GRID -C - KDEF1=Z(IJFIX,K) -CHDS KDEF2=Z(IJFIX,K+1) -CHDS KDEF3=Z(IJFIX,K-1) -CHDS KDEF4=Z(IJFIX,K+2) -Ccrayb - IF (K.EQ.JMAX) THEN - KDEF2=INDEF - ELSE - KDEF2=Z(IJFIX,K+1) - ENDIF - IF (K.EQ.1) THEN - KDEF3 = INDEF - ELSE - KDEF3=Z(IJFIX,K-1) - ENDIF - IF (K.GE.JMAX) THEN - KDEF4=INDEF - ELSE - KDEF4=Z(IJFIX,K+2) - ENDIF -Ccraye - YD2=0 -Cdb$$$$$$$$ -C WRITE(6,343) KDEF1,KDEF2,KDEF3,KDEF4,IJFIX,K -C 343 FORMAT(' CLOSET-KDEF1,2,3,4=',4f17.2,' IJFIX,k=',2i3) -Cdbe$$$$ - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF).OR.(KDEF3.EQ.INDEF).OR. - X(KDEF4.EQ.INDEF)) GO TO 31 -Cdb$$$$$$$$ -C write(6,344) KDEF1,KDEF2,KDEF3,KDEF4 -C 344 format(' NOT INDEF,KDEF1,2,3,4=',4(z16,2x)) -Cdbe$$$$ - YD2=(Z(IJFIX,K+2)-Z(IJFIX,K+1)-Z(IJFIX,K)+Z(IJFIX,K-1))*Q1 - 31 IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 200 - YD1=(Z(IJFIX,K+1)-Z(IJFIX,K))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(IJFIX,K)+Q5*Q4*YD1+10000. - DO 130 KK=1,IINC - MM=YVAL - IF((MM - L) .EQ. 0) GO TO 125 -C -C COMPUTE A LABEL -C - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - ICAL = KCON7 + KCON1 + JCOR -C ...THIS IS THE J - VALUE IN DOTS... - HOLD = B * (XVAL + A) - ITEXT(1) = SIGN((ABS(HOLD) + 0.05),HOLD) - KPOSX=KCON4 - KAFOS=KCON5 - IF((ICAL-KLAST).LT.KPOSX) GO TO 125 - IF((ICAL-KLAST).LT.KAFOS) GO TO 150 -C/// - JPRPUT(1)=IPRPUT(1) - JPRPUT(2)=IPRPUT(2) - ICLOSE=0 - GO TO 160 - 150 CONTINUE - IF(ICLOSE.EQ.0) GO TO 151 - GO TO 152 - 151 CONTINUE - JPRPUT(2)=1 - ICLOSE=1 - GO TO 160 - 152 CONTINUE -C/// JPRPUT=IPRPUT - JPRPUT(1)=IPRPUT(1) - JPRPUT(2)=IPRPUT(2) - ICLOSE=0 - 160 CONTINUE - KLAST=ICAL - INTG=ITEXT(1) - NCHAR=M(2) - IF(IISFC.EQ.1) GO TO 121 - GO TO 123 -C -C FORMAT PRECIP STRIP LABELS-SPECIAL CASE -C - 121 CONTINUE - NCHAR=3 -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - PRINT *,' CLOSET: INTG=',INTG,' NCH=',NCHAR,' MTEXT=',MTEXT - CALL GBYTES(MTEXT,JTEXT,0,32,0,4) -C/// - IPUU=IAND(JTEXT(1),IMSK1) - IPTH=IAND(ISHFT(JTEXT(1),8),IMSK2) - WRITE(LTEXT(1:4),FMT='(A1,A1,A2)')IPUU,IDECP,IPTH - MCHAR=4 - IF(INTG.GT.25) MCHAR=3 - CALL PUTLAB(ICAL1,ICAL,PUTHGT,LTEXT,PUTANG,MCHAR,JPRPUT,ITAPUT) - GO TO 125 -C -C FORMAT STRIP LABEL FROM CENTER POSITION -C - 123 CONTINUE - IF(NCHAR.EQ.9) NCHAR=3 -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - PRINT *,' CLOSET: INTG=',INTG,' NCH=',NCHAR,' MTEXT=',MTEXT - N=12 -C/// CALL GBYTES(MTEXT,JTEXT,0,32,0,4) -C/// WRITE(LTEXT,FMT=IFF)JTEXT(1) - WRITE(LTEXT,FMT=IFF)MTEXT -C PRINT *, ' IN CLOSET, IFF=', IFF - PRINT *, ' LTEXT=',LTEXT,' MTEXT=',MTEXT - PRINT *, ' ICAL1=',ICAL1,' ICAL=',ICAL - CALL PUTLAB(ICAL1,ICAL,PUTHGT,LTEXT,PUTANG,N,JPRPUT,ITAPUT) -C - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE - 200 CONTINUE - 500 RETURN - END diff --git a/util/sorc/faxmakr.fd/closex.f b/util/sorc/faxmakr.fd/closex.f deleted file mode 100755 index d363489118..0000000000 --- a/util/sorc/faxmakr.fd/closex.f +++ /dev/null @@ -1,132 +0,0 @@ - SUBROUTINE CLOSEX(Z,IMAX,JMAX,S,A,B,M,JUP,LOX, - X ITABMB,ITABFL,MXITR,LPLMI,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLOSEX DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: FINDS LOCATIONS OF ALL CENTERS IN THE GIVEN FIELD -C IN ORDER TO CALL S/R CLOSED WHICH, IN TURN, LABELS THE -C CONTOURS ABOVE THE CENTERS. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO INDEFF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL CLOSEX( Z, IMAX, JMAX, S, A, B, M, JUP, LOX, -C ITABMB, ITABFL, MXITR, LPLMI, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - CHARACTER*8 IFF(5) - REAL Z(IMAX,JMAX) - INTEGER ITABMB(MXITR) - INTEGER ITABFL(MXITR) -C - CHARACTER*4 LPLMI -C - REAL INDEF,KDEF1,KDEF2 -C - INTEGER M(2) -C - DATA INDEF /1.0E307 / -C -C INITIALIZE FOR CENTER SEARCH -C - IMIN=1 - JMIN=1 - ITST=1 - 10 ILOW=0 - IHIGH=0 - DO 100 J=JMIN,JMAX - DO 100 I=IMIN,IMAX -C -C TEST FOR BORDER VALUES. -C - IF(I.LE.IMIN+1.OR.I.GE.IMAX-1) GO TO 100 - IF(J.LE.JMIN+1.OR.(J+JUP).GE.JMAX-1) GO TO 100 -C -C TEST FOR UNDEFINED VALUES. -C - KDEF1=Z(I-1,J) - KDEF2=Z(I+1,J) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I-1,J-1) - KDEF2=Z(I-1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I+1,J-1) - KDEF2=Z(I+1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I,J+1) - KDEF2=Z(I,J-1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 -C -C TEST FOR LOW CENTER -C - IF(Z(I,J).GE.Z(I+1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I-1,J+1)) GO TO 30 - IF(Z(I,J).GE.Z(I+1,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I+1,J-1)) GO TO 30 -C -C FOUND LOW CENTER -C - ITYPE=1 - ILOW=ILOW+1 - GO TO 50 -C -C TEST FOR HIGH CENTER -C - 30 IF(Z(I,J).LE.Z(I+1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I-1,J+1)) GO TO 100 - IF(Z(I,J).LE.Z(I+1,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I+1,J-1)) GO TO 100 -C -C FOUND HIGH CENTER -C - ITYPE=2 - IHIGH=IHIGH+1 - 50 CONTINUE -C -C FOUND CENTER-GO GET CONTOUR LABEL -C - IFIX=I - JFIX=J - CALL CLOSEY(Z,IMAX,JMAX,S,A,B,M,JUP,IFIX,JFIX,LOX, - XITABMB,ITABFL,MXITR,LPLMI,IFF) - ITST=0 - 100 CONTINUE - 110 RETURN - END diff --git a/util/sorc/faxmakr.fd/closey.f b/util/sorc/faxmakr.fd/closey.f deleted file mode 100755 index 415bca942a..0000000000 --- a/util/sorc/faxmakr.fd/closey.f +++ /dev/null @@ -1,163 +0,0 @@ - SUBROUTINE CLOSEY(Z,IMAX,JMAX,S,A,B,M,JUP,IX,JY,LOX, - X ITABMB,ITABFL,MXITR,LPLMI,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLOSEY DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: LABELS CONTOURS ABOVE A GIVEN CENTER POINT ALONG -C A FIXED I AND INCREASING J VALUES. FINDS ALL CONTOURS -C WITHIN JUP GRID INTERVALS OF THE GIVEN CENTER. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-10-03 LUKE LIN CONVERT IT TO CFT-77. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C ASSIGNED PROPER VALUE TO INDEFF USING RANGE FUNCTION -C FOR IBM RS/6000 FOR COMPILE OPTIONS -C xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL CLOSEY( Z, IMAX, JMAX, S, A, B, M, JUP,IX,JY, LOX, -C ITABMB, ITABFL, MXITR, LPLMI, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON /ADJ1/ICOR,JCOR -C - REAL Z(IMAX,JMAX) - INTEGER ITABMB(MXITR) - INTEGER ITABFL(MXITR) - CHARACTER*8 IFF(5) - DIMENSION ITEXT(3),JTEXT(3) -C - INTEGER M(2) - -C - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI -C - REAL INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 -C - DATA INDEF /1.0E307 / -C - DATA ITEXT/3*0/ -C -C/// EQUIVALENCE(LTEXT,ITEXT(1)) -C/// EQUIVALENCE(MTEXT,JTEXT(1)) -C - KCON4=20 - 7 KBEG=JY - KLIM=JY+JUP - IJFIX=IX - Q=S*20. - REM=1. - Q1=1./(2.*Q*Q) - Q2=(Q+1.)/2. - Q3=1./Q - N=10 - KLAST=0 - KSTART=KBEG - DO 16 K=KBEG,KLIM - IDEF=Z(IJFIX,K) - IF(IDEF.NE.INDEF) GO TO 17 - KSTART=KSTART+1 - 16 CONTINUE - GO TO 500 - 17 L=Z(IJFIX,KSTART)+10000. - KCON6=FLOAT(IJFIX-1)*Q*3 - ICAL1=KCON6+ICOR -C ...THIS ICAL1 IS THE FIXED I VALUE IN DOTS... - DO 200 K=KSTART,KLIM - Q4=REM/2. - Q5=1.-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) - KCON7=FLOAT(K-1)*Q*3 -C -C CHECK FOR IMBEDDED GRID -C - KDEF1=Z(IJFIX,K) - KDEF2=Z(IJFIX,K+1) - KDEF3=Z(IJFIX,K-1) - KDEF4=Z(IJFIX,K+2) - YD2=0 - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF).OR.(KDEF3.EQ.INDEF).OR. - X(KDEF4.EQ.INDEF)) GO TO 31 - YD2=(Z(IJFIX,K+2)-Z(IJFIX,K+1)-Z(IJFIX,K)+Z(IJFIX,K-1))*Q1 - 31 IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 200 - YD1=(Z(IJFIX,K+1)-Z(IJFIX,K))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(IJFIX,K)+Q5*Q4*YD1+10000. - DO 130 KK=1,IINC - MM=YVAL - IF((MM - L) .EQ. 0) GO TO 125 -C -C COMPUTE A LABEL -C - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - ICAL = KCON7 + KCON1 + JCOR -C ...THIS IS THE J - VALUE IN DOTS... - HOLD = B * (XVAL + A) - ITEXT(1) = SIGN((ABS(HOLD) + 0.05),HOLD) - KPOSX=KCON4 - IF((ICAL-KLAST).LT.KPOSX) GO TO 125 - KLAST=ICAL - IF(LOX.EQ.1) GO TO 109 - 50 INTG=ITEXT(1) - NCHAR=M(2) -C -C FORMAT STRIP LABEL FROM CENTER POSITION -C - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - N=12 -C/// WRITE(LTEXT,FMT=IFF)JTEXT(1) - WRITE(LTEXT,FMT=IFF)MTEXT -C - PRINT *,' CLOSEy: INTG=',INTG,' NCH=',NCHAR,' LTEXT=',LTEXT - CALL PUTLAB(ICAL1,ICAL,PUTHGT,LTEXT,PUTANG,N,IPRPUT,ITAPUT) - GO TO 125 -C -C USE INDIRECT LABELS -C - 109 CONTINUE - DO 110 ITR=1,MXITR - ITSAVE=ITR - IF(ITABMB(ITR).EQ.ITEXT(1)) GO TO 112 - 110 CONTINUE - GO TO 125 - 112 KLAST=ICAL - ITEXT(1)=ITABFL(ITSAVE) - GO TO 50 - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE - 200 CONTINUE - 500 RETURN - END diff --git a/util/sorc/faxmakr.fd/clredg.f b/util/sorc/faxmakr.fd/clredg.f deleted file mode 100755 index e1795c022d..0000000000 --- a/util/sorc/faxmakr.fd/clredg.f +++ /dev/null @@ -1,128 +0,0 @@ - SUBROUTINE CLREDG(FLDA,XINDEF,CLRLOL,CLRUPR,MKEY,IBIG,JBIG,IRTN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLREDG PLACE INDEFINATES AROUND EDGES OF FIELD -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PLACE INDEFINATES AROUND THE EDGES OF FLDA. -C -C PROGRAM HISTORY LOG: -C 94-12-28 ORIGINAL AUTHOR HENRICHSEN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL CLREDG(FLDA,XINDEF,CLRLOL,CLRUPR,MKEY,IBIG,JBIG,IRTN) -C INPUT ARGUMENT LIST: -C FLDA - REAL*4 UNPACKED DATA FIELD OF SIZE(IBIG,JBIG) -C XINDEF - REAL*4 VALUE TO PLACE IN EDGES OF FLDA. -C CLRLOL - INTEGER*4 TWO WORD ARRAY THAT CONTAINS THE I,J -C - COORDINATES OF THE LOWER LEFT CORNER OF SUB FIELD. -C CLRUPR - INTEGER*4 TWO WORD ARRAY THAT CONTAINS THE I,J -C - COORDINATES OF THE UPPER RIGHT CORNER OF SUB FIELD. -C MKEY - INTEGER*4 VALUE TO USE TO MULTIPLY CLRLOL AND CLRUPR -C - BY TO OBTAIN SIZE OF SUB FIELD. -C IBIG - MAX SIZE I OF THE BIG FIELD. -C JBIG - MAX SIZE J OF THE BIG FIELD. -C -C OUTPUT ARGUMENT LIST: -C FLDA - UNPACKED DATA FIELD WITH INDEFINATES AROUND EDGES. -C IRTN - RETURN CONDITION. -C - = 0 FIELD CLEARED AROUND EDGES. -C - = 1 MKEY OUT OF BOUNDS, FIELD NOT CLEARED. -C -C REMARKS: NONE -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ - REAL FLDA(IBIG,JBIG) - REAL XINDEF -C - INTEGER CLRLOL(2) - INTEGER CLRUPR(2) - INTEGER MKEY -C - IF (MKEY .LE. 0 .OR. MKEY .GT. 2) THEN -C - WRITE(6,FMT='('' CLREDG: ERROR, MKEY'',I2,''IS OUT OF'', - 2 '' BOUNDS! WILL NOT CLEAR EDGES OF FIELD!'')')MKEY - IRTN = 1 -C - ELSE - IRTN = 0 -C -C ISML - SMALL SIZE I OF THE FIELD. -C JSML - SMALL SIZE J OF THE FIELD. -C ISIKP - SKIP I OF THE FIELD. -C JSIKP - SKIP J OF THE FIELD. -C -C - IF(MKEY.EQ.2)THEN -C -C SETING UP TO CLEAR EDGES FOR SUB CNTOR -C SINCE THE FIELD HAS BEEN FLIPPED UP SIDE DOWN THE -C THE JSKIP IS CACULATED FROM THE TOP RATHER THAN THE -C BOTTOM OF THE FIELD. -C - ISML = 2*(CLRUPR(1)-CLRLOL(1)+1) - JSML = 2*(CLRUPR(2)-CLRLOL(2)+1) - ISKIP = 2*CLRLOL(1) - JSKIP = 2*((JBIG+1)/2-CLRUPR(2)+1) - IADD = -4 - JADD = -4 -C - ELSE - ISML = CLRUPR(1)-CLRLOL(1)+1 - JSML = CLRUPR(2)-CLRLOL(2)+1 - ISKIP = CLRLOL(1) - JSKIP = CLRLOL(2) - IADD = 0 - JADD = 0 - ENDIF -C - WRITE(6,FMT='('' CLREDG: MKEY='',I2,'' ISML='',I4, - 1 '' JSML='',I4,'' ISKIP='',I4,'' JSKIP='',I4,'' IBIG='', - 2 I4,'' JBIG='',I4)') - 3 MKEY,ISML,JSML,ISKIP,JSKIP,IBIG,JBIG -C -C DO BOTTOM PART -C - DO J = 1 , JSKIP - DO I = 1 , IBIG - FLDA(I,J) = XINDEF - ENDDO - ENDDO -C -C DO UPPER PART -C - JSTART = JSKIP + JSML + JADD - IF (JSTART .LE. JBIG) THEN - DO J=JSTART, JBIG - DO I= 1 , IBIG - FLDA(I,J) = XINDEF - ENDDO - ENDDO - ENDIF -C -C DO LEFT-SIDE PORTION -C - DO I = 1, ISKIP - DO J = 1, JBIG - FLDA(I,J) = XINDEF - ENDDO - ENDDO -C -C DO RIGHT-SIDE PORTION -C - ISTART = ISKIP + ISML + IADD - IF (ISTART .LE. IBIG) THEN - DO I=ISTART, IBIG - DO J= 1 , JBIG - FLDA(I,J) = XINDEF - ENDDO - ENDDO - ENDIF - ENDIF - RETURN - END diff --git a/util/sorc/faxmakr.fd/comifid.f b/util/sorc/faxmakr.fd/comifid.f deleted file mode 100755 index 9ab7a341ce..0000000000 --- a/util/sorc/faxmakr.fd/comifid.f +++ /dev/null @@ -1,78 +0,0 @@ - SUBROUTINE COMIFID(IVARIN,JFID,IFAXFG,CIFID) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: COMIFID MAKE IFID -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: COMPOSITE IFID -C -C PROGRAM HISTORY LOG: -C 96-06-25 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL COMIFID(IVARIN,IFAXFG,CIFID) -C 1 IXSCAN, JFID,IRETN) -C INPUT ARGUMENT LIST: -C IVARIN - SUBSET NO FOR VARIAN MAP. -C JFID - TEXT TO PUT INTO IJID AT THE BEGENNING OF THE MAP. -C IFAXFG - GT O; FOR FAX CHARTS. -C -C OUTPUT ARGUMENT LIST: -C -C OUTPUT FILES: -C FT06F001 - MESSAGE FOR COMIFID -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - CHARACTER*48 JFID -C - CHARACTER*1 BLANK - CHARACTER*1 CHARV - CHARACTER*1 CHARB - INTEGER IVARNO - CHARACTER*12 CTEMP - CHARACTER*1 CIFID(48) - DATA MFF00 /Z'FFFF0000'/ - DATA M00FF /Z'0000FFFF'/ - DATA BLANK /' '/ - DATA CHARV /'V'/ - DATA CHARB /'B'/ -C -C------------------------------------------------------------------ -C -c -C PRINT *,' COMIFID: STARTING!' -C -C .... GET 48 CHAR CIFID MAP ID - DO 150 K=1,48 - CIFID(K)=BLANK - 150 CONTINUE - IF (IFAXFG .GT. 0) THEN - CIFID(4)=CHARB - ELSE - CIFID(4)=CHARV - ENDIF -C -C ... CONVERT VARIAN # INTO EBCDIC CHARACTERS -C - - CALL BIN2EB(IVARIN,CTEMP,4,'A999') - PRINT *,'IVARIAN NUMBER=',IVARIN - - DO 155 M=1,4 - CIFID(4+M)=CTEMP(M:M) - 155 CONTINUE -C - WRITE(6,FMT='('' COMIFID: JFID='',A)')JFID(1:44) - DO 160 N=9,48 - CIFID(N)=JFID(N:N) - 160 CONTINUE -C - PRINT *,' CIFID=', CIFID -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/compile_faxmakr_wcoss.sh b/util/sorc/faxmakr.fd/compile_faxmakr_wcoss.sh deleted file mode 100755 index 4a97888a0b..0000000000 --- a/util/sorc/faxmakr.fd/compile_faxmakr_wcoss.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec -make -f makefile.$target -make -f makefile.$target clean -mv faxmakr ../../exec diff --git a/util/sorc/faxmakr.fd/copyob.F b/util/sorc/faxmakr.fd/copyob.F deleted file mode 100755 index e99b32721c..0000000000 --- a/util/sorc/faxmakr.fd/copyob.F +++ /dev/null @@ -1,609 +0,0 @@ - SUBROUTINE COPYOB(LOBTAP,INBIN,ILVLT,KRUN1,IDATG,IOPTRA, - 1 KOUNT,IERROR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: COPYOB DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: DOCUMENTATION WILL BE ADDED LATER. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 98-06-03 FACEY Y2K CONVERSION; USE OF 4 DIGIT YEAR -C 2 DIGIT YEAR STILL USED TO GET OBS -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ADDED A BLOCK DATA TO RUN -C ON IBM RS/6000 SP SYSTEM. -C -C USAGE: CALL COPYOB( LOBTAP, INBIN, ILVLT, KRUN1, IDATG, IOPTRA, -C NOPTINS, KOUNT, IERROR ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C THIS SUBROUTINE WAS MODIFIED TO REMOVE ALL ASYNCHRONOUS I/O. -C - 5/29/86 (DKM) -C -C (1) LOBTAP ... DATA SET REF. NO. OF INPUT TAPE WHERE PLOTTED OBS -C ARE IN LABEL-ARRAY FORMAT LIKE TAPE55. -C (2) INBIN ...SCRATCH AREA FOR INPUT BUFFER OF 2048 WORDS. -C (3) ILVLT ... AN INDEX TO THE LEVEL DESIRED -C (4) KRUN1 ... AN INDEX TO THE RUN TYPE. -C (5) IDATG(4). GIVEN DATE TIME GROUP -C /YR/MO/DA/HR/ ONE WORD BYTE EACH. -C (6),(7) IOPTRA(2) ... ARRAY FOR ADDITIONAL OPTIONS... -C IOPTRA(1) NON ZERO IF BYPASSING DATE-TIME COMPARE -C IOPTRA(2) = NON-ZERO IF BYPASSING BACKRND COMPARE -C (8) KOUNT ... COUNT OF LABEL ARRAY ITEMS WHICH WERE COPIED -C (9) IERROR ..=0 FOR NORMAL END -C =1 GIVEN ARGUMENT OUT OF RANGE -C =2 READ ERROR BEFORE FINDING MATCHING DATA FIELD -C =3 ABNORMAL END TO INPUT FILE. NO DATA TRANSFERRED -C =4 LOOKED LIKE A NORMAL END BUT NO DATA TRANSFERRED -C =5ABNORMAL END AFTER SOME DATA WAS TRANSFERRED -C ...CAUTION...COPYOB NEITHER OPENS NOR CLOSES THE LBLTAP TAPE55, -C ... IT SIMPLY ADDS ONTO IT AND LEAVES IT OPEN AT RETURN, -C ... THEREBY PERMITTING THE MAIN PROGRAM TO ADD OTHER LABEL ARRAY -C ... ITEMS. -C * * * * * * * * * * * -C - COMMON /KPLOT/ LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C - INTEGER KROT_PRI(2),ICMD,IPT,JPT,NCHAR - REAL HEIGHT,ANGLE - CHARACTER*4 CTEXT -C -C ----------------------------------------------------------------- -C - INTEGER MAXFONT - PARAMETER (MAXFONT=63) -C - COMMON /PUTWHERE/ LBLTAP,IERPUT,LCKPT_PUT,LCKPRNQQ, - 1 IJPXL_GIVN(2),IJPXL_LBL(2),IJPXL_NEXCH(2), - 2 NCALLS_PUT,ICOUNT_FONT(MAXFONT) - -C - DIMENSION IDATG(4) - DIMENSION IDBUFF(128) - DIMENSION JDBUFF(64) - DIMENSION IOPTRA(2) - DIMENSION INBIN(2,1024) - DIMENSION INBUF(1024) - DIMENSION IBCD(2) - DIMENSION IHDTG(3),KHDTG(3) - DIMENSION KHMBS(2,29) - DIMENSION KHRUN(4,23) - DIMENSION NAMLVL(2) - DIMENSION NAMRUN(2) - DIMENSION NAMBKG(2) - DIMENSION KHIQSY(2) -C - INTEGER LEND -C - CHARACTER*8 MIBCD -C CHARACTER*1 LBYTE(8) -C - REAL*8 DBLWRD -C - LOGICAL LBKCHK,LDACHK -C - DATA KHMBS/4HSURF, 4HACE , 4H1000, 4HMB , - 1 4H850M, 4HB , 4H700M, 4HB , - 2 4H500M, 4HB , 4H400M, 4HB , - 3 4H300M, 4HB , 4H250M, 4HB , - 4 4H200M, 4HB , 4H150M, 4HB , - 5 4H100M, 4HB , 4H70MB, 4H , - 6 4H50MB, 4H , 4H30MB, 4H , - 7 4H20MB, 4H , 4H10MB, 4H , - 8 4H7MB , 4H , 4H5MB , 4H , - 9 4H3MB , 4H , 4H2MB , 4H , - A 4H1MB , 4H , 4H0.4M, 4HB , - B 4HTROP, 4HO , 4HSIGL, 4H , - C 4HFRZG, 4H LVL, 4HREL , 4HHUM , - D 4H IN, 4HDEX , 4HPREC, 4HIP-W, - E 4HSFC , 4HANAL/ -C ...WHERE KHMBS IS SEQUENCED ACCORDING TO ILVLT - DATA KHRUN/4HRADA,4HT ,4HNH40,4H04 ,4HOPNL,4H ,4HNH40,4H04 , - 1, 4HOVR4,4H8OPN,4HNH40,4H04 ,4HFINA,4HL ,4HNH40,4H04 , -C 2 4HLFM ,4H ,4HNH25,4H01 ,4HPFAX,4H ,4HNH40,4H053 , - 2 4HTRAJ,4HFAX ,4HNH25,4H01 ,4HPFAX,4H ,4HNH40,4H053 , - 3 4HBKUP,4HPFAX,4HNH40,4H05 ,4H1DOT,4HFAX ,4HNH20,4H02 , - 4 4H2DOT,4HFAX ,4HNH20,4H02 ,4HSIRS,4HPLOT,4HNH40,4H04 , - 5 4HTROP,4HIC1 ,4HMR40,4H02 ,4HTROP,4HIC2 ,4HMR40,4H02 , - 6 4HUS1P,4HLOT ,4HNH10,4H01 ,4HUABP,4HLOT ,4HNH40,4H04 , - 7 4HNHEM,4HI20 ,4HNH20,4H03 ,4HWIND,4HPLOT,4HPN26,4H01 , - 8 4HNHEM,4HI40 ,4HNH40,4H04 ,4HSHEM,4HI40 ,4HSH40,4H02 , - 9 4HUABP,4HLOT ,4HNH60,4H01 ,4HRAOB,4H ,4HNH25,4H01 , - X 4HSFC ,4HPLOT,4HNH20,4H05 ,4HGOES,4HPLOT,4HGH26,4H01 , - Y 4HGOES,4HPLOT,4HGH26,4H02 / -C ...WHERE KHRUN IS SEQUENCED ACCORDING TO KRUN1... -C - DATA KHIQSY/4HUABP,4HLOT / - DATA KHDTG/4HMM/D, 4HD/YY, 4H GGZ/ - DATA K000Z/Z'000000E9'/ - DATA IQSYL1/11/ - DATA IQSYL2/16/ -ckumar DATA LBLTAP/55/ - DATA LEND/8H LEND/ - DATA LMAX/1024/ - DATA MXMBS/29/ - DATA MXRUNS/23/ -C - DATA MSK0F /Z'00000000FFFFFFFF'/ -C - EQUIVALENCE(MIBCD,IBCD(1)) -#if defined (_LITTLE_ENDIAN) - LOGICAL FIRST_ENTRY - DATA FIRST_ENTRY/.TRUE./ - IF (FIRST_ENTRY) THEN - CALL SWAP_BYTES_IN_PLACE (LEND, 8_8, 1_8) - FIRST_ENTRY = .FALSE. - ENDIF -#endif -C -C ...STEP(1) ... INITIALIZATION ... - KOUNT = 0 - IERROR = 0 - NUMRED = 0 - NUMIDR = 0 - NUMTRN = 0 -C - LABXSV = LABIX - NOBFSV = NOBUF - LBKCHK = .TRUE. - IF(IOPTRA(2) .NE. 0) LBKCHK=.FALSE. -C ...FROM GIVEN ILVLT,KRUN1,IDATG GENERATE IDENTIFIERS FOR SEARCH - IF(ILVLT .LT. 1) GO TO 810 - IF(ILVLT .GT. MXMBS) GO TO 810 -C NAMLVL(1) = KHMBS(1,ILVLT) -C NAMLVL(2) = KHMBS(2,ILVLT) -#if defined (_LITTLE_ENDIAN) - NAMLVL(1) = ISHFT (IAND (KHMBS(1,ILVLT),MSK0F),32) - NAMLVL(2) = ISHFT (IAND (KHMBS(2,ILVLT),MSK0F),32) -#else - NAMLVL(1) = ISHFT(KHMBS(1,ILVLT),-32) - NAMLVL(2) = ISHFT(KHMBS(2,ILVLT),-32) -#endif -C - PRINT *,' ILVLT=',ILVLT - PRINT *,' NAME LVL=' - PRINT 119, NAMLVL(1),NAMLVL(2) -C - IF(KRUN1 .LT. 1) GO TO 820 - IF(KRUN1 .GT. MXRUNS) GO TO 820 -#if defined (_LITTLE_ENDIAN) - NAMRUN(1) = ISHFT (IAND (KHRUN(1,KRUN1),MSK0F),32) - NAMRUN(2) = ISHFT (IAND (KHRUN(2,KRUN1),MSK0F),32) - NAMBKG(1) = ISHFT (IAND (KHRUN(3,KRUN1),MSK0F),32) - NAMBKG(2) = ISHFT (IAND (KHRUN(4,KRUN1),MSK0F),32) -#else - NAMRUN(1) = ISHFT(KHRUN(1,KRUN1),-32) - NAMRUN(2) = ISHFT(KHRUN(2,KRUN1),-32) - NAMBKG(1) = ISHFT(KHRUN(3,KRUN1),-32) - NAMBKG(2) = ISHFT(KHRUN(4,KRUN1),-32) -#endif - IF(ILVLT .LT. IQSYL1) GO TO 155 - IF(ILVLT .GT. IQSYL2) GO TO 155 - IF(KRUN1 .NE. 4) GO TO 155 -C ...OTHERWISE, THIS IS IQSY UABPLOT DESIRED... - NAMRUN(1) = ISHFT(KHIQSY(1),-32) - NAMRUN(2) = ISHFT(KHIQSY(2),-32) - 155 CONTINUE -C NAMLVL(1) = KHMBS(1,ILVLT) -C NAMLVL(2) = KHMBS(2,ILVLT) -#if defined (_LITTLE_ENDIAN) - NAMLVL(1) = ISHFT( IAND(KHMBS(1,ILVLT),MSK0F),32) - NAMLVL(2) = ISHFT( IAND(KHMBS(2,ILVLT),MSK0F),32) -#else - NAMLVL(1) = ISHFT(KHMBS(1,ILVLT),-32) - NAMLVL(2) = ISHFT(KHMBS(2,ILVLT),-32) -#endif -C ...NOW NAMLVL HAS '850MB ', NAMRUN HAS '1DOTFAX', -C ... NAMBKG HAS 'NH2002 ', FOR EXAMPLE. -C ...I STILL NEED THE DATE/TIME... - DO 166 I=1,3 - IHDTG(I) = KHDTG(I) - 166 CONTINUE - NYR = IDATG(1) - NMO = IDATG(2) - NDA = IDATG(3) - NHR = IDATG(4) - LDACHK = .TRUE. - IF(IOPTRA(1) .EQ. 0) GO TO 170 -C ...OTHERWISE, IOPTRA(1) IS NON-ZERO FOR BYPASSING DATE COMPARISON - LDACHK = .FALSE. - GO TO 180 - 170 CONTINUE - CALL DAYOWK(NDA,NMO,NYR,IDAYWK,IHDAYW) - NYR = NYR - (NYR/100)*100 - IF(IDAYWK .NE. 0) GO TO 178 -C ...OTHERWISE, GIVEN DATE INFO OUT OF RANGE - PRINT 174, IDATG - 174 FORMAT(1H0, 10X, '***IMPOSSIBLE DATE GIVEN TO SUBR COPYOB IN IDATG - 1 = HEX ', Z8) -C ...CONTINUE WITHOUT DATE-CHECKING... - LDACHK = .FALSE. - GO TO 180 - 178 CONTINUE -C ...REFORMAT DATE/TIME TO EBCDIC CHARACTERS... - CALL BIN2EB(NMO,MIBCD,2,'L999') - IHDTG(1) = IBCD(1) - CALL BIN2EB(NDA,MIBCD,3,'L///') - IHOLDD = ISHFT(IBCD(1),-16) - IHDTG(1) = IOR(IHDTG(1),IHOLDD) - IHDTG(2) = ISHFT(IBCD(1),16) - CALL BIN2EB(NYR,MIBCD,3,'L///') - IHOLDY = ISHFT(IBCD(1),-8) - IHDTG(2) = IOR(IHDTG(2),IHOLDY) - CALL BIN2EB(NHR,MIBCD,3,'L ') - IHDTG(3) = IOR (IBCD(1),K000Z) - 180 CONTINUE - PRINT 184,(IHDTG(I),I=1,3),(NAMLVL(J),J=1,2), - 1 (NAMRUN(K),K=1,2), (NAMBKG(KK),KK=1,2) - 184 FORMAT(1H , 10X, 'REQUESTED COPY OF PLOTTED OBSERVATIONS FOR ', - 1 3A4, 4X, 2A4, 2A4, 8X, 2A4) -C * * * * * * * * * * * -C ...STEP(2) ... SEARCH THE LOBTAP FOR THE MATCHING FILE... - PRINT *,' LOBTAP=', LOBTAP -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (IHDTG, 8_8, 3_8) - CALL SWAP_BYTES_IN_PLACE (NAMLVL, 8_8, 2_8) - CALL SWAP_BYTES_IN_PLACE (NAMRUN, 8_8, 2_8) - CALL SWAP_BYTES_IN_PLACE (NAMBKG, 8_8, 2_8) -#endif - REWIND LOBTAP - 211 CONTINUE - NUMRED = NUMRED + 1 -C ...CHANGED FROM ASYNC READ 5/29/86 (DKM)... -C WRITE (*,*) 'FPDebug: 1: attempting to read 512 bytes' - READ(LOBTAP,ERR=920,END=910)JDBUFF -C ...WHICH ALSO POSITIONS LOBTAP TO DATA BINS - CALL GBYTES(JDBUFF,IDBUFF,0,32,0,128) -C DO I=1,128 -C IDBUFF(I) = IAND(MSK0F,IDBUFF(I)) -C ENDDO - 245 CONTINUE -C ...IT WAS A GOOD READ, BUT WAS IT A LOGICAL ENDOF FILE QQ - PRINT *, ' JDBUFF(1)=' - PRINT 119,JDBUFF(1),JDBUFF(2) - PRINT *, ' IDBUFF(1),(2)=' - PRINT 119,IDBUFF(1),IDBUFF(2) - PRINT 119,IDBUFF(3),IDBUFF(4) - 119 FORMAT(1H ,Z16,5X,Z16) - ITEMP = IAND(MSK0F, -7) -C IF(IDBUFF(1) .NE. -7) GO TO 250 - IF(IDBUFF(1) .NE. ITEMP) GO TO 250 - ITEMP = IAND(MSK0F, LEND) -C IF(IDBUFF(2) .EQ. LEND) GO TO 930 - IF(IDBUFF(2) .EQ. ITEMP) GO TO 930 -C ...WHICH IS EMPTY LOGICAL FILE OR DBL LOGICAL EOFS - 250 CONTINUE - ITEMP = IAND(MSK0F, -1) -C IF(IDBUFF(1) .NE. -1) GO TO 940 - IF(IDBUFF(1) .NE. ITEMP) GO TO 940 -C ...WHICH ERROR EXITS IF NOT ID RECORD FLAG -C ...OTHERWISE, ASSUME A GOOD IDREC IN ... - PRINT *, ' GET A IDREC' - NUMIDR = NUMIDR + 1 - PRINT *, ' NAMLVL=' - PRINT 119, NAMLVL(1),NAMLVL(2) - PRINT 119, IDBUFF(9),IDBUFF(10) - IF(IDBUFF(9) .NE. NAMLVL(1)) GO TO 280 - IF(IDBUFF(10) .NE. NAMLVL(2)) GO TO 280 - PRINT *, ' NOT GO TO 280-1' -C ...OTHERWISE, FOUND A MATCHING LEVEL. NEXT TEST RUN TYPE - PRINT *, ' NAMRUN=' - PRINT 119, NAMRUN(1),NAMRUN(2) - PRINT 119, IDBUFF(11),IDBUFF(12) - IF(IDBUFF(11) .NE. NAMRUN(1)) GO TO 280 - IF(IDBUFF(12) .NE. NAMRUN(2)) GO TO 280 - PRINT *, ' NOT GO TO 280-2' -C ...OTHERWISE, FOUND A MATCHING RUN TYPE... - IF(.NOT. LBKCHK) GO TO 260 - PRINT *, ' NAMBKG=' - PRINT 119, NAMBKG(1),NAMBKG(2) - PRINT 119, IDBUFF(15),IDBUFF(16) - IF(IDBUFF(15) .NE. NAMBKG(1)) GO TO 280 - IF(IDBUFF(16) .NE. NAMBKG(2)) GO TO 280 - PRINT *, ' NOT GO TO 280-3' -C ...OTHERWISE, BACKGROUND MATCHES... - 260 CONTINUE - IF(.NOT. LDACHK) GO TO 270 - PRINT *, ' IHDTGG=' - PRINT 119, IHDTG(1),IHDTG(2) - PRINT 119, IDBUFF(5),IDBUFF(6) - IF(IDBUFF(5) .NE. IHDTG(1)) GO TO 280 - IF(IDBUFF(6) .NE. IHDTG(2)) GO TO 280 - IF(IDBUFF(7) .NE. IHDTG(3)) GO TO 280 - PRINT *, ' NOT GO TO 280-4' -C ...OTHERWISE, FOUND MATCHING DATE-TIME GROUP - 270 CONTINUE - GO TO 300 -C * * * * * * * * * * * -C ...COMES HERE IF THIS IDBUFF DID NOT MATCH THE DESIRED ONE, -C ... SO MUST SPACE OVER THE DATA BINS OF THIS LOGICAL FILE... - 280 CONTINUE - NUMRED = NUMRED +1 -C WRITE (*,*) 'FPDebug: 2: attempting to read 8192 bytes' - READ(LOBTAP,ERR=920,END=910) INBUF - CALL GBYTES(INBUF,INBIN,0,32,0,2048) -C DO I=1,1024 -C INBIN(1,I) = IAND(MSK0F,INBIN(1,I)) -C INBIN(2,I) = IAND(MSK0F,INBIN(2,I)) -C ENDDO - 285 CONTINUE -C ...IT WAS A GOOD READ, BUT IS IT A LOGICAL END OF FILE QQ - PRINT *, ' INBUF(1,1)=' - PRINT 119,INBUF(1),INBUF(2) - PRINT *, ' INBIN(2,1)=' - PRINT 119,INBIN(1,1),INBIN(2,1) - PRINT 119,INBIN(1,2),INBIN(2,2) - ITEMP = IAND(MSK0F, -7) -C IF(INBIN(1,1) .NE. -7) GO TO 287 - PRINT 119,INBIN(1,1),INBIN(2,1) - IF(INBIN(1,1) .NE. ITEMP) GO TO 287 - PRINT *, ' IT IS A -7 RECORD' - ITEMP = IAND(MSK0F, LEND) - PRINT 119,INBIN(2,1),INBIN(2,2) - PRINT 119,LEND,ITEMP -C IF(INBIN(2,1) .EQ. LEND) GO TO 290 - IF(INBIN(2,1) .EQ. ITEMP) GO TO 290 -C ...IT WAS NOT A LOGICAL END OF FILE... - 287 CONTINUE - PRINT *, ' IT IS A GOOD RECORD' - ITEMP = IAND(MSK0F, -1) -C IF(INBIN(1,1) .EQ. -1) GO TO 940 - IF(INBIN(1,1) .EQ. ITEMP) GO TO 940 - PRINT *, ' IT IS A GOOD RECORD' -C ...WHICH IS ERROR EXIT. HIT ID REC WHEN IT SHUD BE DATA RECORD -C ...OTHERWISE, ASSUME IT WAS A DATA RECORD TO BE SKIPPED - GO TO 280 - 290 CONTINUE - PRINT *, ' IT IS A -7 RECORD' -C ...REACHED THE LOGICAL END OF FILE WHICH I WAS LOOKING FOR... - GO TO 211 -C -C * * * * * * * * * * * -C ...STEP(3) ... TO COPY THE INFO FROM THE MATCHING FILE - 300 CONTINUE - IF (KRUN1.EQ.5) THEN -C ... THIS IS FOR TRAJ 4-PANEL LINE ELEMENT TAPE 54 INPUT - PRINT *, ' RESET THE LABEL ARRAY' - NOBUF = 0 - LABIX = 0 - DO I = 1,LMAX - LABEL(1,I) = 0 - LABEL(2,I) = 0 - ENDDO -C - IPT = 1 - JPT = 0 - HEIGHT = 12.0 - ANGLE = 0.0 - KROT_PRI(1) = 0 - KROT_PRI(2) = 0 - CTEXT(1:1) = '?' - CTEXT(2:2) = CHAR(12) - CTEXT(3:3) = '$' - CTEXT(4:4) = CHAR(0) - NCHAR = 2 - ICMD = -2 - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, - X ICMD) -C - ENDIF -C -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (IDBUFF(3), 8_8, 14_8) -#endif - PRINT 310, (IDBUFF(I),I=3,16),NUMIDR,NUMRED -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (IDBUFF(3), 8_8, 14_8) -#endif - 310 FORMAT(1H , 10X, 'SUBR COPYOB FOUND MATCHING IDENTIFIER FOR ', - 1 14A4, /1H , 15X, 'AFTER SEARCHING THRU', I3, 2X, - 2 'LOGICAL FILES OF ', I5, 2X, 'PHYSICAL RECORDS.') - IF(LDACHK) GO TO 316 - PRINT 314 - 314 FORMAT(1H , 20X, 'DATE/TIME COMPARISON WAS BYPASSED') - 316 CONTINUE - IF(LBKCHK) GO TO 320 - PRINT 318 - 318 FORMAT(1H ,20X,'BACKGROUND COMPARISON CHECK WAS BYPASSED') -C - 320 CONTINUE -C ...TO READ AND TRANSFER LOBTAP DATA TO LABEL FILE... -C WRITE (*,*) 'FPDebug: 3: attempting to read 8192 bytes' - READ(LOBTAP,ERR=330,END=340)INBUF - CALL GBYTES(INBUF,INBIN,0,32,0,2048) -C DO I=1,1024 -C INBIN(1,I) = IAND(MSK0F,INBIN(1,I)) -C INBIN(2,I) = IAND(MSK0F,INBIN(2,I)) -C ENDDO - GO TO 360 - 330 CONTINUE -C ...COMES HERE IF PARITY ERROR WHILE READING DATA - IF(KOUNT .EQ. 0) GO TO 336 -C ...COMES HERE IF SOME INFO HAS ALREADY PASSED BEFORE ERROR - PRINT 333, LOBTAP,KOUNT - 333 FORMAT(1H , '***PARITY ERROR IN SUBR COPYOB WHILE READING FT', - 1 I2, 2X, '...INCOMPLETE OBSERV SET WITH ONLY ', I5, - 2 2X, 'ITEMS ***') - IERROR = 5 - GO TO 999 -C - 336 CONTINUE -C ...COMES HERE IF PARITY ERROR AND NO INFO WAS COPIED... - PRINT 339, LOBTAP - 339 FORMAT(1H , '***PARITY ERROR IN SUBR COPYOB WHILE READING FT',I2) - IERROR = 3 - GO TO 999 -C - 340 CONTINUE -C ...COMES HERE IF END OF INFO. IF SOME COPIED ASSUME NORMAL END - IF(KOUNT .NE. 0) GO TO 344 - PRINT 342, LOBTAP - 342 FORMAT(1H , '*** ERROR. END OF DATA INDICATION IN COPYOB WHILE REA - 1DING FT', I2, 2X, ' ... NO PLOTTED OBS WERE COPIED *** ') - IERROR = 4 - GO TO 999 - 344 CONTINUE - PRINT 348, NUMTRN,KOUNT - 348 FORMAT(1H , 20X, 'COMPLETED COPYING PLOTTED OBSERVATIONS AFTER TRA - 1NSFERRING ',I3, 2X, 'BINS TOTALLING ', I6, 2X, 'LABEL-ARRAY ITEMS' - 2 ) - GO TO 999 -C ...WHICH IS NORMAL EXIT ..... -C -C * * * * * * * * * * * - 360 CONTINUE -C ...COMES HERE IF GOOD READ OF DATA BIN... - PRINT *, ' 2 INBIN(1,1)=', INBIN(1,1) - PRINT *, ' 2 INBIN(2,1)=', INBIN(2,1) - PRINT 119,INBIN(1,1),INBIN(2,1) - ITEMP = IAND(MSK0F, -7) -C IF(INBIN(1,1) .NE. -7) GO TO 364 - IF(INBIN(1,1) .NE. ITEMP) GO TO 364 - ITEMP = IAND(MSK0F, LEND) -C IF(INBIN(2,1) .EQ. LEND) GO TO 340 - IF(INBIN(2,1) .EQ. ITEMP) GO TO 340 - 364 CONTINUE - ITEMP = IAND(MSK0F, -1) -C IF(INBIN(1,1) .NE. -1) GO TO 400 - IF(INBIN(1,1) .NE. ITEMP) GO TO 400 -C ...COMES HERE IF ID RECORD WAS READ BY MISTAKE - PRINT 368, LOBTAP - 368 FORMAT(1H , '*** ERROR IN SUBR COPYOB. READ AN ID RECORD INSTEAD - 1 OF DATA RECORD *** ') - GO TO 340 -C -C * * * * * * * * * * * -C ...STEP(4) ... TO TRANSFER ITEMS FROM THE GOOD DATA BIN... - 400 CONTINUE - NUMTRN = NUMTRN + 1 - DO 555 J = 1,LMAX - IF(INBIN(1,J) .NE. 0) GO TO 405 - IF(INBIN(2,J) .EQ. 0) GO TO 340 -C ...WHICH TESTED FOR INTERNAL END OF INFO... - 405 CONTINUE - IF(J .NE. 1) GO TO 410 - IF(NUMTRN .NE. 1) GO TO 410 -C ...OTHERWISE, IT,S THE FIRST WORD OF FIRST BIN WHICH IS INIT - GO TO 555 -C ...WHICH SKIPS THE TRANSFER OF THE CHAR INITIALIZER ITEM - 410 CONTINUE - LABIX = LABIX + 1 - IF(LABIX .LE. LMAX) GO TO 540 -C ...OTHERWISE, BUFFER OUT THE FULL LABEL BIN... - PRINT 500 - 500 FORMAT(1H , 'LABEL ARRAY FULL') - NOBUF = NOBUF + 1 -C ...CHANGED FROM ASYNC WRITE 5/29/86 (DKM)... -#if defined (_BIG_ENDIAN) - CALL SBYTES(INBUF,LABEL,0,32,0,2048) -#else - CALL SBYTESCCS(INBUF,LABEL,0,32,0,2048) -#endif -C WRITE(LBLTAP,ERR=503)LABEL - PRINT *,' WRITE ONE RECORD TO TAPE55' - WRITE(LBLTAP,ERR=503)INBUF - 505 CONTINUE - LABIX = 1 - DO 506 I = 1,LMAX - LABEL(1,I) = 0 - LABEL(2,I) = 0 - 506 CONTINUE - 540 CONTINUE - LABEL(1,LABIX) = INBIN(1,J) - LABEL(2,LABIX) = INBIN(2,J) - KOUNT = KOUNT + 1 - 555 CONTINUE -C ...WHEN IT FALLS THRU 555 LOOP, ONE INBIN IS DEPLETED... - GO TO 320 -C -C * * * * * * * * * * * -C ...ERROR EXITS .... - 503 CONTINUE - PRINT 504,LBLTAP,NOBUF,LABIX - 504 FORMAT(1H0, 10X, 'ERROR STOP IN COPYOB WHILE WRITING ON FT', - 1 I2, /1H , 15X, 'NOBUF = ', I3, 5X, 'LABIX = ', I5) - STOP 1816 -C ...CATASTROPHIC ERROR IF CAN,T WRITE ON TAPE55... - 810 CONTINUE - PRINT 812,ILVLT - 812 FORMAT(1H , '*** ERROR RETURN FROM COPYOB. GIVEN OUT-OF-RANGE ILV - 1LT = HEX ', Z8) - IERROR = 1 - GO TO 999 - 820 CONTINUE - PRINT 822,KRUN1 - 822 FORMAT(1H ,'*** ERROR RETURN FROM COPYOB. GIVEN ', - 1 'OUT-OF-RANGE KRUN1 = HEX ',Z8) - IERROR = 1 - GO TO 999 - 910 CONTINUE - PRINT 912, LOBTAP,NUMRED - 912 FORMAT(1H , '*** ERROR RETURN FROM COPYOB. END-OF-FILE WAS HIT WHI - 1LE SEARCHING FT', I2, 2X, 'FOR DESIRED PLOTTED OBS FILE ***', - 2 /1H , 20X, 'NUMBER OF RECORDS READ DURING SEARCH = ', I6) - IERROR = 2 - GO TO 999 - 920 CONTINUE - PRINT 922,LOBTAP,NUMRED - 922 FORMAT(1H , '*** ERROR RETURN FROM COPYOB. PARITY ERROR WHILE SEAR - 1CHING FT', I2, 2X,'FOR DESIRED PLOTTED OBSERVATION FILE***', - 2 /1H , 20X, 'NUMBER OF RECORDS READ DURING SEARCH = ', I6) - IERROR = 2 - GO TO 999 - 930 CONTINUE - 940 CONTINUE - PRINT 942, LOBTAP,NUMRED - 942 FORMAT(1H , '***ERROR RETURN FROM COPYOB. LOGICAL END OF TAPE OR - 1 LOST ON SEARCH OF FT', I2, /1H , 20X, 'NUMBER OF RECORDS READ DUR - 2ING SEARCH IS ', I6) - IERROR = 2 - GO TO 999 -C - 999 CONTINUE -C - REWIND LOBTAP - print*,'Leaving copyob ' - RETURN - END -ckumar -ckumar **************block data copyob_data -ckumar - BLOCK DATA COPYOB_DATA -C - INTEGER MAXFONT - PARAMETER (MAXFONT=63) - INTEGER LBLTAP -C - COMMON /PUTWHERE/ LBLTAP,IERPUT,LCKPT_PUT,LCKPRNQQ, - 1 IJPXL_GIVN(2),IJPXL_LBL(2),IJPXL_NEXCH(2), - 2 NCALLS_PUT,ICOUNT_FONT(MAXFONT) -C - DATA LBLTAP/55/ -C - END BLOCK DATA COPYOB_DATA diff --git a/util/sorc/faxmakr.fd/frmfaxt.f b/util/sorc/faxmakr.fd/frmfaxt.f deleted file mode 100755 index 9976ca4e61..0000000000 --- a/util/sorc/faxmakr.fd/frmfaxt.f +++ /dev/null @@ -1,296 +0,0 @@ - SUBROUTINE FRMFAXT(LGULF,INBYTE,LEVEL,LMEAN,INTEXT) -C -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FRMFAXT FORMS THE COMPLETED MAP TITLE. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GIVEN THE VARIOUS TIME TITLES IN LGULF ARRAY FORMED BY -C SUB GULFTL, COMPLETE THE FAX MAP TITLE PASSED IN INTEXT. -C RETURN COMPLETED MAP TITLE IN TITLE,AND TITLE BYTE COUNT IN -C NUMT. LOADS THE VALID TIME AT THE END OF JFID. -C PROGRAM HISTORY LOG: -C 96-05-31 ORIGINAL AUTHOR HENRICHSEN. -C 96-06-07 HENRICHSEN MODIFY TO FORM MEAN MAP TITLES. -C 96-06-21 HENRICHSEN MODIFY TO FORM A HIEGHT LINE FOR GULF -C TITLES MODIFY COMMON/LLABFX/ TO PASS TITLE HEIGHT "THEIGHT" -C HGTFLG. -C 96-06-27 HENRICHSEN MODIFY TO FILLER CHAR'S '#' IN THE -C IGLAB ARRAY IF NECESSARY. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL FRMFAXT(LGULF,INBYTE,LEVEL,LMEAN,INTEXT) -C -C INPUT ARGUMENT LIST: -C LGULF - CHARACTER*77 BYTE ARRAY THAT COTAINS THE VARIOUS TIME -C - LINES TO APPEND TO MAP TITLE. -C - BYTES 1 THRU 16 CONTAIN THE GULF TITLE, IE -C - HGT12 00Z02OPTIN . -C - BYTES 17 THRU 36 CONTAIN THE BASE TIME TITLE, IE -C - 12Z WED 01 MAR 1989 . -C - BYTES 37 THRU 61 CONTAIN THE VALID TIME TITLE, IE -C - VALID 00Z THU 02 MAR 1989 . -C - BYTES 62 THRU 77 CONTAIN MM/DD/HHZ YYYY USED -C - WITH AFOS PRODUCTS, IE -C - 03/01/12Z 1989 . -C INBYTE - CONTAINS THE NUMBER OF BYTES OF ASCII TEXT IN -C - INTEXT. -C LEVEL - INTEGER VALUE OF THE LEVEL OF THE MAP. -C LMEAN - LOGICAL WORD THAT IS = .TRUE. THEN FORM A MEAN MAP -C - TITLE. -C INTEXT - CHARCATER*80 TEXT STRING -C FROM COMMON/LABG & LLABFX / -C NUMG - CONTAINS THE NUMBER OF BYTES OF ASCII TEXT IN -C - GLAB ARRAY. - -C JFID - CHARACTER*48 ARRAY THAT CONTAINS THE DESCRIPTIVE -C - MAP TITLE FOR START OF THE FAX ID RECORD. THIS WILL -C - THE VALID TIME APPENDED WHEN RETURNED. -C JBYT - NUMBER OF BYTES OF ASCII TEXT PASSED IN JFID - -C -C OUTPUT ARGUMENT LIST: -C IN COMMON/LABG/ -C GLAB - CHARACTER*24 ARRAY THE CONTAINS THE COMPLETED GULF -C - LABEL. -C IN COMMON/LLABFX/ -C TITLE - CHARCATER*151 TITLE -C CONTAINS COMPETED MAP TITLE. -C NUMT - NUMBER OF BYTES IN COMPLETED MAP TITLE..... -C -C JFID - CHARACTER*48 ARRAY THAT CONTAINS THE COMPLETED -C - JFID TITLE . WILL HAVE THE FORM OF: -C - THE DESCRIPTIVE MAP TITLE THEN HHZ MMM DD YYYY. -C EXVALID - CHARACTER*32 ARRAY THAT CONTAINS THE VALID TIME -C - TITLE . WILL HAVE THE FORM OF: -C - VALID 00Z THU 05 OCT 1994 -C JBYT - NUMBER OF BYTES IN COMPLETED JFID TITLE. -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C -C REMARKS: -C -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB -C - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - COMMON /LLABFX/ TITPXX,TITPXY,HGTFLG,THEIGHT,NUMT,JBYT, - 1 TITLE,JFID,EXVALID -C - INTEGER TITPXX,TITPXY,HGTFLG,NUMT,JBYT - REAL THEIGHT - CHARACTER*152 TITLE - CHARACTER*48 JFID - CHARACTER*32 EXVALID - -C - CHARACTER*120 ITITLE - CHARACTER*80 INTEXT - CHARACTER*77 LGULF - CHARACTER*64 MEANTIT - - CHARACTER*48 WORKTIT - - CHARACTER*26 CENT - CHARACTER*24 IGLAB - CHARACTER*12 CHTEXT - CHARACTER*8 VALID -C - LOGICAL LLEVEL - LOGICAL LMEAN -C - DATA CENT /' (5-DAY MEAN CENTERED ON) '/ -C -C - DATA VALID /'VALID '/ -C -C WORK ON JFID. -C - IF(JBYT.GT.29)THEN - JBYT = 29 - ENDIF - NUMCHR = JBYT + 19 - IF(NUMCHR.GT.48)THEN - NUMCHR = 48 - ENDIF -C -C LOAD VALID TIME AT THE END OF JFID -C - JFID(JBYT+1:JBYT+19) = LGULF(43:61) - JBYT = NUMCHR -C - WRITE(6,FMT='('' FRMFAXT: JFID NOW HAS'',I3,'' BYTES '', - 1 ''AND IS:"'',A,''".'')')JBYT,JFID(1:JBYT) -C -C -C GET NUMBER OF BYTES IN INTEXT.............. -C - - KEND = INBYTE -C -C . . . FILL ITITLES WITH BLANKS............ -C - ITITLE = ' ' - WORKTIT(1:48) = ' ' -C - IF(LMEAN)THEN -C -C LOAD THE BASE AND CENTERED ON TIME INTO MEANTIT -C - MEANTIT(01:19) = LGULF(17:35) - MEANTIT(20:45) = CENT(1:26) - MEANTIT(46:64) = LGULF(43:61) - WRITE(6,FMT='('' FRMFAXT: MEANTIT='',A)')MEANTIT(1:64) - ELSE - ENDIF -C - WORKTIT(1:48) = ' ' -C -C LOAD THE VALID TIME INTO WORKTIT -C - WORKTIT(1:25) = LGULF(37:61) - NUMCHR = 25 -C -C -C - EXVALID(1:NUMCHR) = WORKTIT(1:NUMCHR) -C - WRITE(6,FMT='('' FRMFAXT: EXVALID='',/,'' '', - 1 A)')EXVALID(1:NUMCHR) -C -C NOW MOVE INTEXT INTO ITITLE. -C - ITITLE(1:KEND) = INTEXT(1:KEND) -C - NUMBYT = KEND + 1 -C - KEYLOC = NUMBYT - 8 -C -C CHECK TO SEE IF VALID IS WITHIN THE LAST 8 BYTES OF ITITLE. -C - DO I = KEYLOC,NUMBYT - IHERE = I - IIEND = I + 5 - IF(ITITLE(I:IIEND).EQ.VALID(1:6)) THEN - NUMBYT = IHERE + 6 - IBEGN = 43 - INBYTE = 19 - GOTO 60 - ENDIF - ENDDO -C -C I FELL THROUGH DID NOT FIND VALID IN ITITLE SO LOOK FOR 1ST -C NON BLANK AT END OF ITITLE. -C - IEND = NUMBYT - DO I = 1,5 - IF(ITITLE(IEND:IEND).NE.' ') THEN -C -C I FOUND FIRST NON BLANK AT END OF ITITLE ARRAY -C - NUMBYT = IEND + 1 - IHERE = IEND + 2 - GO TO 25 - ELSE - IEND = IEND - 1 - ENDIF - ENDDO - 25 CONTINUE - NUMBYT = NUMBYT + 1 - IBEGN = 37 - INBYTE = 25 - 60 CONTINUE -C -C -C MOVE BASE LINE INTO ITITLE -C - IF (GULPXX(2).EQ.-99 .AND. GULPXY(2).EQ.-99) THEN - ITITLE(NUMBYT:NUMBYT+4) = 'FROM ' - NUMBYT = NUMBYT + 5 - LEND1 = NUMBYT + 20 - 1 - ITITLE(NUMBYT:LEND1) = LGULF(17:36) - NUMBYT = NUMBYT + 20 - ITITLE(NUMBYT:NUMBYT) = ' ' - ENDIF -C - IF(LMEAN)THEN -C -C MOVE MEANTIT LINE INTO ITITLE -C - MAXBYT = NUMBYT + 64 - ITITLE(NUMBYT:MAXBYT) = MEANTIT(1:64) - NUMBYT = MAXBYT - ELSE -C -C MOVE VALID LINE INTO ITITLE -C - KEND1 = IBEGN + (INBYTE-1) - KEND2 = NUMBYT + (INBYTE-1) - ITITLE(NUMBYT:KEND2) = LGULF(IBEGN:KEND1) - NUMBYT = NUMBYT + INBYTE - 1 - ENDIF - NUMT = NUMBYT - TITLE(1:NUMT) = ITITLE(1:NUMT) - WRITE(6,FMT='('' FRMFAXT: TITLE='',A,/,'' NUMT='',I4)') - 1 TITLE(1:NUMT),NUMT -C -C LOAD THE GULF LABLE INTO IGLAB. -C - IGLAB(1:24) = ' ' - IGLAB(1:06) = LGULF(1:06) -C -C CHECK TO SEE IF A '#' SHOULD BE LOADED INTO IGLAB(6:6). -C - IF(LGULF(6:6).EQ.' ')IGLAB(6:6) = '#' - IGLAB(7:11) = LGULF(7:11) - IGLAB(13:17) = LGULF(12:16) - IF(LGULF(16:16).EQ.' ')IGLAB(17:17) = '#' - IF(LGULF(15:15).EQ.' ')IGLAB(16:16) = '#' - IF(LGULF(14:14).EQ.' ')IGLAB(15:15) = '#' - IF(LVFLG.GT.0)THEN - IF(LEVEL.GT.0)THEN - IF(LEVEL.GE.1000)THEN - NCHR = 4 - ELSE IF(LEVEL.GE.100)THEN - NCHR = 3 - ELSE - NCHR = 2 - ENDIF - CALL BIN2CH(LEVEL,CHTEXT,NCHR,'W999') - IF(NCHR.EQ.3)THEN - CHTEXT(4:4) = '#' - ELSE IF(NCHR.EQ.2)THEN - CHTEXT(3:4) = '##' - ELSE - ENDIF - IGLAB(18:21) = CHTEXT(1:4) - ELSE - IGLAB(18:21) = 'SFC ' - CHTEXT(1:4) = 'SFC ' - ENDIF - IGLAB(22:24) = 'YES' - WRITE(6,FMT='('' FRMFAXT: LEVEL='',I6,/,'' CHTEXT='',A)') - 1 LEVEL,CHTEXT(1:4) - - NUMG = 24 - ELSE - NUMG = 17 - ENDIF - GLAB(1:NUMG) = IGLAB(1:NUMG) - WRITE(6,FMT='('' FRMFAXT: GLAB ='',A)') - 1 GLAB(1:NUMG) -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/gentre.f b/util/sorc/faxmakr.fd/gentre.f deleted file mode 100755 index 81777fdd0f..0000000000 --- a/util/sorc/faxmakr.fd/gentre.f +++ /dev/null @@ -1,312 +0,0 @@ - SUBROUTINE GENTRE(Z,IMAX,JMAX,DOTSGI,A,B,M,ZLIM,ICEN1,LPLMI, - X IFLO,IFHI) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GENTRE PLOT CENTERS FOR CGRID MAPS. -C PRGMMR: KRISHNA KUMAR ORG: NP12 DATE:1999-08-01 -C -C ABSTRACT: PLOT CENTERS FOR CGRID MAPS. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-02-21 LIN CONVERT SUBROUTINE TO CFT-77 -C 96-09-12 LIN MODIFY FOR CGRID MAPS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C ASSIGNED PROPER VALUE TO INDEFF USING RANGE FUNCTION -C FOR IBM RS/6000 FOR COMPILE OPTIONS -C xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL GENTRE( Z, IMAX, JMAX, DOTSGI, A, B, M, ZLIM, ICEN1, -C LPLMI, IFLO, IFHI ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON/ADJ2/XIDID,YJDID -C - DIMENSION JTEXT(3) - DIMENSION Z(IMAX,JMAX) -C - CHARACTER*8 IFLO(5),IFHI(5) - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - INTEGER M(2) - INTEGER ITYPE(2) - CHARACTER*1 CDECP -C - REAL INDEF,KDEF1,KDEF2 -C -C/// DATA IDECP/4H. / -ckumar DATA IDECP/'. '/ - DATA CDECP/'.'/ -C/// DATA ITEXT/3*0/ - DATA XIRRS/870./ - DATA ITYPE/0,0/ -C/// DATA IMSK1/Z'FF000000'/ -C/// DATA IMSK2/Z'FFFF0000'/ -C/// DATA INDEF/Z'7FFFFFFF'/ - DATA IMSK1/Z'FFFFFFFFFF000000'/ - DATA IMSK2/Z'FFFFFFFFFFFF0000'/ - DATA INDEF /1.0E307 / -C -C/// EQUIVALENCE(LTEXT,ITEXT(1)) -C/// EQUIVALENCE(MTEXT,JTEXT(1)) -C -C (1),(2),(3)...Z(IMAX,JMAX) IS GIVEN GRIDPOINT SCALED DATA FIELD -C (4) ..... DOTSGI IS DOTS PER GRID INTERVAL -C WHERE EACH DOT IS 1/100TH INCH ON VARIAN -C NEGATIVE DOTSGI SIGNALS MERC SRN HEMI OPTION -C (5),(6) ...TRUE Z VALUE = (Z + A) * B -C WHERE A IS ADDITIVE AND B IS MULTIPLICATIVE CONST -C (7) ..... M = NO. OF CHARACTERS DESIRED WHEN TRUE Z VALUE IS -C CONVERTED TO EBCDIC FOR CENTRAL VALUE -C (8) ..... ZLIM = LOWER LIMIT TO TRUE Z VALUE -C LESS THAN WHICH WE WILL IGNORE CENTERS. -C (9) ..... ICEN1 IS OPTION SWITCH -C =1 NORMAL CENTER FORMATTED LABELS -C =2 BIG H AND L USING SUBROUTINE HILO -C =3 SAME AS =1 EXCEPT I IS DISPLACED TO RHS 2-PANEL -C =4 SAME AS =2 EXCEPT I IS DISPLACED TO RHS 2-PANEL -C (10)..... LPLMI IS FORMAT SELECTOR FOR SUBROUTINE BIN2EB -C FOR CONVERTING TRUE Z VALUE TO EBCDIC E.G., 'A99' -C (11)..... IFLO IS 5-WORD FORMAT STATEMENT FOR ENCODE OF LOW CENTR -C (12)..... IFHI IS 5-WORD FORMAT STATEMENT FOR ENCODE OF HI CENTER -C -C INITIALIZE FOR CENTER SEARCH -C - IMIN=1 - JMIN=1 - IISFC=0 - IF(M(2).EQ.9) IISFC=1 - IF(M(2).EQ.9) M(2)=3 - N=8 - ICOR = 0 - JCOR = 0 - IF(ICEN1 .LE. 0) GO TO 900 - IF(ICEN1 .GT. 4) GO TO 900 - GO TO(6,9,7,8),ICEN1 - 6 ICOR = SIGN((ABS(XIDID) + 0.5),XIDID) - JCOR = SIGN((ABS(YJDID) + 0.5),YJDID) - GO TO 9 - 7 ICOR = XIDID + XIRRS + 0.5 - JCOR = SIGN((ABS(YJDID) + 0.5),YJDID) - GO TO 9 - 8 ICOR = XIRRS + 0.5 - 9 CONTINUE - IRESET = 0 - SCALE = DOTSGI - IF(SCALE.LT.0) IRESET=1 - IF(SCALE.LT.0) SCALE=-SCALE - 10 ILOW=0 - IHIGH=0 - DO 100 J=JMIN,JMAX - DO 100 I=IMIN,IMAX -C -C TEST FOR BORDER VALUES. -C - IF(I.LE.IMIN+1.OR.I.GE.IMAX-1) GO TO 100 - IF(J.LE.JMIN+1.OR.J.GE.JMAX-1) GO TO 100 -C TEST FOR UNDEFINED VALUES. -C - IF(Z(I,J).EQ.INDEF) GO TO 100 - KDEF1=Z(I-1,J) - KDEF2=Z(I+1,J) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I-1,J-1) - KDEF2=Z(I-1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I+1,J-1) - KDEF2=Z(I+1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I,J+1) - KDEF2=Z(I,J-1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 -C -C TEST FOR LOW CENTER -C - IF(Z(I,J).GE.Z(I+1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I-1,J+1)) GO TO 30 - IF(Z(I,J).GE.Z(I+1,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I+1,J-1)) GO TO 30 -C -C FOUND LOW CENTER -C - ITYPE(2)=1 - ILOW=ILOW+1 - GO TO 50 -C -C TEST FOR HIGH CENTER -C - 30 IF(Z(I,J).LE.Z(I+1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I-1,J+1)) GO TO 100 - IF(Z(I,J).LE.Z(I+1,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I+1,J-1)) GO TO 100 -C -C FOUND HIGH CENTER -C - ITYPE(2)=2 - IHIGH=IHIGH+1 -C -C CALCULATE MAX/MIN POSITION USING STIRLING METHOD(9 POINTS) -C - 50 ANUMI=(Z(I+1,J)-Z(I-1,J)) - ADENMI=2.0*(Z(I+1,J)-2.0*Z(I,J)+Z(I-1,J)) - IF(ABS(ANUMI).GT.0.5*(ABS(ADENMI))) GO TO 115 - DELI=-ANUMI/ADENMI - XPOS=SCALE*((FLOAT(I)-1.0)+DELI) - ANUMJ=(Z(I,J+1)-Z(I,J-1)) - ADENMJ=2.0*(Z(I,J+1)-2.0*Z(I,J)+Z(I,J-1)) - IF(ABS(ANUMJ).GT.0.5*(ABS(ADENMJ))) GO TO 115 - DELJ=-ANUMJ/ADENMJ - YPOS=SCALE*((FLOAT(J)-1.0)+DELJ) -C -C ADJUST MAX/MIN DATA VALUE USING STIRLING INTERPOLATION -C - ZDELI=Z(I,J)+0.5*DELI*(Z(I+1,J)-Z(I-1,J))+0.5*DELI*DELI*(Z(I+1,J) - X-2.0*(Z(I,J))+Z(I-1,J)) - ZDELIU=Z(I,J+1)+0.5*DELI*(Z(I+1,J+1)-Z(I-1,J+1))+0.5*DELI*DELI* - X(Z(I+1,J+1)-2.0*Z(I,J+1)+Z(I-1,J+1)) - ZDELIL=Z(I,J-1)+0.5*DELI*(Z(I+1,J-1)-Z(I-1,J-1))+0.5*DELI*DELI* - X(Z(I+1,J-1)-2.0*Z(I,J-1)+Z(I-1,J-1)) - ZDELJ=ZDELI+0.5*DELJ*(ZDELIU-ZDELIL)+0.5*DELJ*DELJ*(ZDELIU-2.0* - XZDELI+ZDELIL) - GO TO 60 - 115 XPOS = SCALE * (FLOAT(I) - 1.0) - YPOS = SCALE * (FLOAT(J) - 1.0) - ZDELJ = Z(I,J) - GO TO 60 - 60 CONTINUE - JCAL = YPOS + 0.5 - ICAL = XPOS + 0.5 - JCAL = JCAL + JCOR - ICAL = ICAL + ICOR - TRUVAL = (ZDELJ + A ) * B - INTG = SIGN((ABS(TRUVAL) + 0.5),TRUVAL) - IF(FLOAT(INTG) .LT. ZLIM) GO TO 100 - IF(IISFC.EQ.1) GO TO 95 - NCHAR = M(2) - IF(ITYPE(2) .EQ. 2) GO TO 90 - IF(IRESET .EQ. 1 .AND. I .GE. 26) GO TO 91 -C -C ...FORMAT LOW CENTER... -C - 81 CONTINUE -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) -C/// -C/// CALL GBYTES(MTEXT,JTEXT,0,32,0,4) - N = 12 - WRITE(LTEXT,FMT=IFLO)MTEXT -C -C/// LTEXT(1:NCHAR) = MTEXT(1:NCHAR) -C/// LTEXT(NCHAR+1:NCHAR+1)= CHAR(0) -C PRINT *, ' IN CENTRE, IFLO=',IFLO -C PRINT *, ' LTEXT=', LTEXT,' MTEXT=', MTEXT - GO TO 96 - 90 CONTINUE - IF(IRESET .EQ. 1 .AND. I .GE. 26) GO TO 81 -C -C ...FORMAT HIGH CENTER... -C - 91 CONTINUE -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) -C PRINT *, ' CENTRE:INTG=',INTG,' NCH=',NCHAR,' MTEXT=',MTEXT -C/// -C/// CALL GBYTES(MTEXT,JTEXT,0,32,0,4) - N = 12 - WRITE(LTEXT,FMT=IFHI)MTEXT -C/// LTEXT(1:NCHAR) = MTEXT(1:NCHAR) -C/// LTEXT(NCHAR+1:NCHAR+1)= CHAR(0) -C PRINT *, ' In GENTRE, IFHI=',IFHI -C PRINT *, ' LTEXT=', LTEXT,' MTEXT=', MTEXT - GO TO 96 -C -C ... FORMAT PRECIP CENTER-SPECIAL CASE -C - 95 CONTINUE - NCHAR=3 -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) -C PRINT *, ' CENTRE:INTG=',INTG,' NCH=',NCHAR,' MTEXT=',MTEXT -C/// - CALL GBYTES(MTEXT,JTEXT,0,32,0,4) -C* IPUU=LAND(JTEXT(1),IMSK1) -C?? IPUU=IAND(JTEXT(1),IMSK1) -C* IPTH=LAND(SHFTL(JTEXT(1),8),IMSK2) -C??? IPTH=IAND(ISHFT(JTEXT(1),8),IMSK2) -C?? WRITE(LTEXT(1:4),FMT='(A1,A1,A2)')IPUU,IDECP,IPTH - IF (KEYIDX.EQ.19 .OR. KEYIDX.EQ.49) THEN -C IF(MTEXT(1:1).EQ.'0')THEN -C LTEXT(1:1) = '0' -C LTEXT(2:2) = CDECP(1:1) -C LTEXT(3:4) = MTEXT(2:3) -C MCHAR = 4 -C ELSE -C LTEXT(1:1) = MTEXT(1:1) -C LTEXT(2:2) = CDECP(1:1) -C LTEXT(3:4) = MTEXT(2:3) -C MCHAR = 4 -C ENDIF - LTEXT(1:1) = CDECP(1:1) - MCHAR = 4 - LTEXT(2:4) = MTEXT(1:3) -C PRINT *, 'PRECIP LTEXT=', LTEXT,' MTEXT=', MTEXT - IF (MTEXT(1:3).NE.'000') THEN - CALL SAVLAB(ICAL,JCAL,LTEXT(1:4),TRUVAL,MCHAR) - ENDIF - ELSE - LTEXT(1:1) = CDECP - LTEXT(2:4) = MTEXT(1:3) - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,4,IPRPUT,ITAPUT) - ENDIF - GO TO 100 - 96 CONTINUE - GO TO (97,99,97,99),ICEN1 - 97 CONTINUE - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,N,IPRPUT,ITAPUT) - GO TO 100 - 99 CONTINUE - CALL HILO(ICAL,JCAL,ITYPE,LTEXT) - GO TO 100 - 100 CONTINUE - RETURN - 900 CONTINUE - PRINT 911, ICEN1 - 911 FORMAT(1H , 'WARN -RETURN FROM CENTRE. GIVEN ARGUMENT OUT-OF-RANGE - X. ICEN1 =HEX', Z8) - RETURN - END diff --git a/util/sorc/faxmakr.fd/getcon.f b/util/sorc/faxmakr.fd/getcon.f deleted file mode 100755 index 4554167a03..0000000000 --- a/util/sorc/faxmakr.fd/getcon.f +++ /dev/null @@ -1,890 +0,0 @@ - SUBROUTINE GETCON(NUMBYT,INTEXT,NUMDGN,OUTDGN1, - 1 OUTDGN2,FAXFIL,GRIDT1,IFAXNO) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GETCON GET CONSTANTS FROM INPUT CONTROLS. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GET CONSTANTS FROM INPUT CONTROLS. -C -C PROGRAM HISTORY LOG: -C 89-11-24 ORIGINAL AUTHOR LUKE LIN -C 94-11-25 HENRICHSEN ADD TWO NEW INPUT ARGS WINTER AND NEWCON -C AND LOGIC TO USE THE NEW ARGUEMENTS. -C 94-12-21 LUKE LIN CONVERT IT TO CFT-77. -C 96-02-28 LUKE LIN MODIFY TO GET CONSTANTS FROM INPUT CONTROLS. -C 96-04-30 LUKE LIN MODIFY TO GET SHADING CONSTANTS. -C 96-06-03 HENRICHSEN MODIFY TO GET JFID TITLE. -C 96-06-05 LUKE LIN MODIFY TO GET CENTER, CENTER ABOVE, AND -C LABEL CONS. -C 96-06-07 HENRICHSEN MODIFY TO GET MEAN FLAG ADDED NEW COMMON -C /MEANCON/ MEANFG,LKMEAN,MEANTYP. -C 96-06-11 HENRICHSEN MODIFY FORMAT OF READ TO GET "RTC AND UPC". -C ADD LOGIC TO GET X/Y FOR AN ADDITIONAL GULF -C TITLLE. -C 96-06-14 LUKE LIN CHANGE DASH LOGIC -C 96-06-17 LUKE LIN MODIFY FOR PRECIP BECAUSE FLD2 COMES FROM DIFFERENT -C FORECAST HOUR. -C 96-06-20 LUKE LIN CHANGE TO READ IN GRID INTERVAL T1 AND UOR_DOT -C 96-06-20 HENRICHSEN MODIFY READ FORMAT OF TLOC CARD TO GET A LVFLG -C WHICH SIGNALS THAT THERE IS TO BE AN EXTRA -C LINE IN THE GULF TITLE THAT HAS THE LEVEL OF -C THE SURFACE. -C 96-06-24 HENRICHSEN MODIFY TO READ TLOB AND TLOD CARD INSTEAD OF -C TLOC CARD WHICH GETS THE TITLE HEIGHT AND -C HGTFLG. -C 96-06-24 LUKE LIN ADD CNTR OPTIONS -C 96-06-28 LUKE LIN ADD FAX CUT OPTION CARDS. -C 96-07-09 LUKE LIN ADD IPOLATE OPTIONS. -C 96-07-22 LUKE LIN TURN SOME PRINT STATEMENTS OFF -C 96-08-30 LUKE LIN ADD ONE CARD FOR CHANGING GRAB AND GRAB INDEX. -C 96-09-11 LUKE LIN FIX CENTER LABEL CARD#2. -C 96-09-19 LUKE LIN ADD SHADE INTERVEL OPTION. -C 96-10-07 LUKE LIN ADD CTRA OPTION FOR GFS. -C 97-01-21 LUKE LIN ADD COPY OBSERVATION OPTIONS -C 97-03-17 LUKE LIN ADD ADD CONTOUR RANGE AND FLD PLOT OPTIONS. -C 97-06-17 LUKE LIN ADD ADD POLE CLIP FLAG FOR TYPE 5 NAM MODEL. -C 1999-08-01 KRISHNA KUMAR MODIFY TO RUN ON IBM RS/6000 SP -C 99-09-27 Bill FACEY MODIFIED CODE FOR CASE WHERE KEYIDX GT 50, -C -C -C USAGE: CALL GETCON(NUMBYT,INTEXT,NUMDGN,OUTDGN1, -C FAXFIL,GRIDT1,IFAXNO) -C INPUT ARGUMENT LIST: -C IDFLD - 8-WORD ID -C -C OUTPUT ARGUMENT LIST: -C NUMBYT - NUMBER OF BYTES IN TITLE. -C INTEXT - THE MAP TITLE. -C NUMDGN - NUMBER OF DESIGN FILES TO BE USED -C OUTDGN1 - UNIT NUMBER OF DESIGN FILE 1 -C OUTDGN2 - UNIT NUMBER OF DESIGN FILE 2 -C FAXFILE - UNIT NUMBER OF FAX OUTPUT FILE -C GRIDT1 - GRID INTERVAL -C IFAXNO - VARIAN SUBSET NUMBER -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - COMMON /ICON/ UA1(50),UA2(50),UA3(50),UM1(50),UM2(50),UM3(50), - 1 KTYPE(50) - CHARACTER*4 KTYPE - REAL UA1,UA2,UA3,UM1,UM2,UM3 -C - COMMON /MEANCON/ MEANFG,LKMEAN,MEANTYP -C - CHARACTER*4 MEANTYP -C - INTEGER MEANFG - LOGICAL LKMEAN -C - COMMON / GRB1 / LUGRB, LUGRBIX, IFCSTHR - INTEGER LUGRB, LUGRBIX -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C ...KEY TYPE INDEX, CONSTANT, AND CONTOUR LINE VALUE -C - COMMON / DASH / LDOUBLE, DASHFG, DASHMK, IDASH, SHADNO, SHADMK - LOGICAL LDOUBLE - LOGICAL DASHFG - INTEGER DASHMK(2) - INTEGER SHADNO - INTEGER SHADMK(20) - INTEGER IDASH -C - COMMON / FLDCON / IDFLD(16),NUMFLD,NDEGNS -C - COMMON / BOUND / XMIN, YMIN, XMAX, YMAX, CUTWOW - INTEGER XMIN, YMIN, XMAX, YMAX - INTEGER CUTWOW(4) -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB -C - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - COMMON /LLABFX/ TITPXX,TITPXY,HGTFLG,THEIGHT,NUMT,JBYT, - 1 TITLE,JFID,EXVALID -C - INTEGER TITPXX,TITPXY,HGTFLG,NUMT,JBYT - REAL THEIGHT - CHARACTER*152 TITLE - CHARACTER*48 JFID - CHARACTER*32 EXVALID -C - COMMON /CENTR/ CENTFLAG,CENTFONT,CENTNC,CENTCEN,CENTB1RC, - 1 CENTXID,CENTYID,CENTXLIM,CENTFLO,CENTFHI, - 2 CENTFORM - LOGICAL CENTFLAG - REAL CENTFONT,CENTXID,CENTYID,CENTXLIM,CENTB1RC - CHARACTER*4 CENTFORM,CENTFLO,CENTFHI - INTEGER CENTNC,CENTCEN -C - COMMON /CENTV/ CENVFLAG,CENVFONT,CENVNC,CENVJUP, - 1 CENVICR,CENVJCR,CENVB1RC,CENVFORM,CENVIFF - LOGICAL CENVFLAG - REAL CENVFONT,CENVB1RC - CHARACTER*4 CENVFORM,CENVIFF - INTEGER CENVNC,CENVJUP,CENVICR,CENVJCR - COMMON /FIXLAB/ LABFLAG,LABFONT,LABNC,LABRTC,LABUPC, - 1 LABNLAB,LABIJFIX(7),LABB1RC,LABIFF,LABFORM - LOGICAL LABFLAG - CHARACTER*4 LABFORM,LABIFF - REAL LABFONT, LABB1RC - INTEGER LABNC,LABRTC,LABUPC,LABNLAB,LABIJFIX -C - COMMON /RANG/ RANGFG, ICBEG, ICEND - LOGICAL RANGFG - INTEGER ICBEG, ICEND -C - COMMON /PCLP/ PCLPFG - LOGICAL PCLPFG -C - COMMON /PLOT/ PLOTFG, IMAXP, JMAXP, I1BIG, J1BIG, IGPLOT(2), - 1 ISTART,JSTART - LOGICAL PLOTFG -C - INTEGER USRBYT -C - CHARACTER*96 USRNAM -C - LOGICAL LUFID -C - COMMON /DUCKNOAA/ DUCKX,DUCKY,DUCKFG - INTEGER DUCKX,DUCKY,DUCKFG - - -C - INTEGER NUMBYT - CHARACTER*80 INTEXT -C - COMMON /GRB2/ ALUGRB,ALUGRBIX,AFCSTHR,AKEYIDX,CALFLAG,GRB2FLAG - INTEGER ALUGRB - INTEGER ALUGRBIX - INTEGER AFCSTHR - INTEGER AKEYIDX - INTEGER CALFLAG - LOGICAL GRB2FLAG -C - COMMON /EXTIT/ ETITFONT,ETITPXX,ETITPXY,NOEXT,EXTRAT,FGEXTRAT - INTEGER ETITPXX,ETITPXY,NOEXT - REAL ETITFONT - CHARACTER*80 EXTRAT - LOGICAL FGEXTRAT -C -C .... THIS SET IS FOR UOR_DOT - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI - LOGICAL UORFG -C -C ... FOR CONTOR OPTIONS - COMMON /CNTROP/ NDVD, NDIV, NCNTRFILT, NCENTFILT,SHADIV - INTEGER SHADIV -C ... NDVD FOR INTERPOLATION, NDIV FOR DIVISION -C ... NCNTRFILT FOR CONTOUR FILTER, NCENTFILT FOR CENTER FILTER -C -C .......... FOR FAX CUT -C - COMMON /FAXICK/ ISCHED(8,50),INXISCHED - COMMON /FLFSRP/ INXLFSTRP,LSNUMBYT(20),LSINTEXT(20),LSTITPX(20), - 1 LSTITPY(20),LSDCKPX(20),LSDCKPY(20), - 2 LSDCKOPT(20),LSFONT(20) - CHARACTER*120 LSINTEXT - REAL LSFONT - COMMON /FRTSRP/ INXRTSTRP,RSNUMBYT(20),RSINTEXT(20),RSTITPX(20), - 1 RSTITPY(20),RSFONT(20),RSFCSTHR(20) - CHARACTER*120 RSINTEXT - INTEGER RSNUMBYT,RSTITPX,RSTITPY,RSFCSTHR - REAL RSFONT -C - COMMON /CPOB/ CPOBFG,ITAPOB,ILVLT,KRUN,IOPTRA(2) - LOGICAL CPOBFG -C - INTEGER NUMDGN,OUTDGN1,OUTDGN2,FAXFIL,IFAXNO - REAL GRIDT1 - CHARACTER*1 COMENT - CHARACTER*5 CTITLE - CHARACTER*5 COUTCL - CHARACTER*5 COPTION -C - CHARACTER*5 INPFLD - CHARACTER*5 IDS6W1 - CHARACTER*5 IDS6W2 -ckumar - character*5 JFIDTI -ckumar - CHARACTER*5 LINEAT - CHARACTER*5 CRANGE - CHARACTER*5 CPCLIP - CHARACTER*5 UAVUMV - CHARACTER*5 WINDOW - CHARACTER*5 ENDFLD - CHARACTER*5 ENDMAP - CHARACTER*5 TITLOC - CHARACTER*5 TITLOD - CHARACTER*5 TITLOB - CHARACTER*5 SHADE - CHARACTER*5 EXTLOC -C - CHARACTER*5 CENTLAB1 - CHARACTER*5 CENTLAB2 - CHARACTER*5 CENTABOV - CHARACTER*5 LABEL1 - CHARACTER*5 LABEL2 - CHARACTER*5 LABEL4 - CHARACTER*5 CGRB2IN - CHARACTER*5 CPROJ - CHARACTER*5 CCNTR - CHARACTER*5 CCTRA -C - CHARACTER*5 CVISCHED - CHARACTER*5 CSISCHED - CHARACTER*5 CLFSTRPTL - CHARACTER*5 CLFSTRPLC - CHARACTER*5 CRTSTRPTL - CHARACTER*5 CRTSTRPLC - CHARACTER*5 CIISCHED - CHARACTER*5 CCOPYOB - CHARACTER*5 CPLOT -C - CHARACTER*5 CGRAB -C - CHARACTER*80 CARD -C - DATA CTITLE /'TITL:'/ - - DATA COUTCL /'OUTC:'/ - DATA INPFLD /'INPF:'/ - DATA IDS6W1 /'IDS1:'/ - DATA IDS6W2 /'IDS2:'/ - DATA JFIDTI /'JFID:'/ - DATA LINEAT /'LINE:'/ - DATA CRANGE /'RANG:'/ - DATA CPCLIP /'PCLP:'/ - DATA UAVUMV /'UAMV:'/ - DATA WINDOW /'WWBD:'/ - DATA ENDFLD /'ENDF:'/ - DATA ENDMAP /'ENDM:'/ - DATA TITLOC /'TLOC:'/ - DATA EXTLOC /'XTIT:'/ - DATA TITLOB /'TLOB:'/ - DATA TITLOD /'TLOD:'/ - DATA SHADE /'SHAD:'/ - DATA COMENT /'!'/ -C - DATA CENTLAB1 /'CEN1:'/ - DATA CENTLAB2 /'CEN2:'/ - DATA CENTABOV /'CENV:'/ - DATA LABEL1 /'LAB1:'/ - DATA LABEL2 /'LAB2:'/ - DATA LABEL4 /'LAB4:'/ - DATA CGRB2IN /'GRB2:'/ - DATA CPROJ /'PROJ:'/ - DATA CCNTR /'CNTR:'/ - DATA CCTRA /'CTRA:'/ -C - DATA CVISCHED /'VICK:'/ - DATA CSISCHED /'SICK:'/ - DATA CLFSTRPTL /'LSTL:'/ - DATA CLFSTRPLC /'LSLC:'/ - DATA CRTSTRPTL /'RSTL:'/ - DATA CRTSTRPLC /'RSLC:'/ - DATA CIISCHED /'IICK:'/ - DATA CCOPYOB /'CPOB:'/ - DATA CPLOT /'PLOT:'/ -C - DATA CGRAB /'GRAB:'/ -C -C ------------ STARTS ---------------------------------- - print*,'***************In GETCON ' -C -C -C ZERO THE IDFLD ARRAY -C - DO J=1, 16 - IDFLD(J) = 0 - ENDDO -C - LDOUBLE = .FALSE. - DASHFG = .FALSE. - SHADNO = 0 - DO I=1,20 - SHADMK(I) = 0 - ENDDO -C - CENTFLAG = .FALSE. - CENVFLAG = .FALSE. - LABFLAG = .FALSE. -C - GRB2FLAG = .FALSE. - CALFLAG = -1 - THEIGHT = 11.00 - HGTFLG = 1 - SHADIV = 1 - CPOBFG = .FALSE. - RANGFG = .FALSE. - PCLPFG = .FALSE. - PLOTFG = .FALSE. - FGEXTRAT = .FALSE. -C - 100 CONTINUE -C -C .... READ ONE INPUT CARD -C - READ(15,FMT='(A)')CARD(1:80) -C WRITE(6,FMT='('' '',A)')CARD(1:80) -C - IF (CARD(1:1) .EQ. COMENT) GOTO 100 -C ... JUST A COMMENT CARD - COPTION = CARD(3:7) -C - IF (COPTION .EQ. ENDFLD .OR. COPTION .EQ. ENDMAP) RETURN -C -C - - IF (COPTION .EQ. CTITLE) THEN -C -C READ IN THE MAP TITLE -C -C - READ(CARD,FMT='(15X,I2,2X,A60)')NUMBYT,INTEXT(1:60) -C WRITE(6,FMT='('' GETCON: MAP TITLE HAS '',I2, -C 1 '' TITLE='',A)')NUMBYT,INTEXT(1:60) -C - ELSE IF (COPTION .EQ. 'JFID:') THEN -C -C READ IN THE JFID TITLE. -C - READ(CARD,FMT='(15X,I2,2X,A)')JBYT,JFID(1:48) -C WRITE(6,FMT='('' GETCON: JFID TITLE '',I2, -C 1 '' TITLE='',A)')JBYT,JFID(1:JBYT) -C - ELSE IF (COPTION .EQ. TITLOB) THEN -C -C GET THE X AND Y GRID COORDINATES FOR LOCATION OF MAP TITLE -C AND THE CHARACTER HEIGHT. -C - READ(CARD,FMT='(14X,I4,1X,I4,8X,I1,9X,F5.2)') - 1 TITPXX,TITPXY,HGTFLG,THEIGHT -C -C WRITE(6,FMT='('' GETCON: TITPXX=''I4,'' TITPXY=''I4, -C 1 '' HGTFLG='',I2,'' THEIGHT='',F5.2)') -C 2 TITPXX,TITPXY,HGTFLG,THEIGHT -C - ELSE IF (COPTION .EQ. TITLOC) THEN -C -C GET THE X AND Y GRID COORDINATES FOR LOCATION OF TITLES, -C DUCK AND LEVEL FLAG. -C - READ(CARD,FMT='(14X,I4,1X,I4,7X,I4,1X,I4,1X,I4,1X,I4, - 1 8X,I4,1X,I4,8X,I2,3X,I1)') - 2 TITPXX,TITPXY,GULPXX(1),GULPXY(1),GULPXX(2),GULPXY(2), - 3 DUCKX,DUCKY,DUCKFG,LVFLG -C -C WRITE(6,FMT='('' GETCON: TITPXX=''I4,'' TITPXY=''I4,/, -C 1 '' GULPXX(1)=''I4,'' GULPXY(1)='',I4,'' GULPXX(2)=''I4, -C 2 '' GULPXY(2)='',I4,/,'' DUCKX=''I4, -C 3 '' DUCKY=''I4,'' DUCKFG=''I2,'' LVFLG='',I2)') -C 4 TITPXX,TITPXY,GULPXX(1),GULPXY(1),GULPXX(2),GULPXY(2), -C 5 DUCKX,DUCKY,DUCKFG,LVFLG -C - ELSE IF (COPTION .EQ. EXTLOC) THEN -C -C GET THE LOCATION AND EXTRA TITLE, -C - READ(CARD,FMT='(13X,F4.1,5X,I4,1X,I4,6X,I2,2X,A)') - 1 ETITFONT,ETITPXX,ETITPXY,NOEXT,EXTRAT(1:38) - FGEXTRAT = .TRUE. -C - ELSE IF (COPTION .EQ. TITLOD) THEN -C -C GET THE X AND Y GRID COORDINATES FOR LOCATION OF GULF AND -C DUCK LABELS AND LEVEL FLAG. -C - READ(CARD,FMT='(14X,I4,1X,I4,1X,I4,1X,I4, - 1 8X,I4,1X,I4,8X,I2,3X,I1)') - 2 GULPXX(1),GULPXY(1),GULPXX(2),GULPXY(2), - 3 DUCKX,DUCKY,DUCKFG,LVFLG -C -C WRITE(6,FMT='('' GETCON: GULPXX(1)=''I4,'' GULPXY(1)='',I4, -C 1 '' GULPXX(2)=''I4,'' GULPXY(2)='',I4,/,'' DUCKX=''I4, -C 2 '' DUCKY=''I4,'' DUCKFG=''I2,'' LVFLG='',I2)') -C 3 GULPXX(1),GULPXY(1),GULPXX(2),GULPXY(2), -C 4 DUCKX,DUCKY,DUCKFG,LVFLG -C - ELSE IF (COPTION .EQ. COUTCL) THEN - READ(CARD,FMT='(15X,I2,9X,I2,9X,I2,8X,I2,4X,F8.3,12X,I4)') - 1 NUMDGN,OUTDGN1,OUTDGN2,FAXFIL,GRIDT1,IFAXNO -ckumar - print*,'In getcon : numdgn,outdgn1,outdgn2,faxfil,grdt1, - & ifaxno ', -ckumar - & NUMDGN,OUTDGN1,OUTDGN2,FAXFIL,GRIDT1,IFAXNO -C WRITE(6,FMT='('' GETCON: '',A,I2,A,I2,A,I2,A,I2,A, -C 1 F8.3,A,I4,A)')CARD(8:15), -C 2 NUMDGN,CARD(18:26),OUTDGN1,CARD(29:37),OUTDGN2, -C 3 CARD(40:46),FAXFIL,CARD(50:53),GRIDT1,CARD(62:73), -C 4 IFAXNO -C - ELSE IF (COPTION .EQ. INPFLD) THEN -C -C GET NUMFLD,AND THE CURRENT OUTPUT DESIGN,NEWMDI, -C MEAN FLAG AND MEAN TYPE . -C - MEANFG = 0 - MEANTYP(1:4) = ' ' - LKMEAN = .FALSE. - READ(CARD,FMT='(15X,I2,8X,I2,8X,I2,8X,I2,8X,A)') - 1 NUMFLD, NDEGNS, KEYIDX,MEANFG,MEANTYP(1:4) -C -C WRITE(6,FMT='('' GETCON: NUMFLD='',I2,'' NDEGNS='',I2, -C 1 '' KEYIDX='',I2,'' MEANFG='',I2,'' MEANTYP='',A)') -C 2 NUMFLD,NDEGNS,KEYIDX,MEANFG,MEANTYP(1:4) - IF(MEANFG.GE.1.AND.MEANFG.LE.9)THEN - LKMEAN = .TRUE. - WRITE(6,FMT='('' GETCON: THIS IS A '',A, - 1 '' MEAN FIELD. BECAUSE MEANFG='',I2)') - 2 MEANTYP(1:4),MEANFG - ENDIF -C - IF(KEYIDX.LE.50) THEN - UA1V = UA1(KEYIDX) - UA2V = UA2(KEYIDX) - UA3V = UA3(KEYIDX) - UM1V = UM1(KEYIDX) - UM2V = UM2(KEYIDX) - UM3V = UM3(KEYIDX) - ENDIF - -C WRITE(6,FMT='('' GETCON: UA1V='',F10.5,'' UA2V='',F5.2, -C 1 '' UA3V='',F5.2)')UA1V,UA2V,UA3V -C -C WRITE(6,FMT='('' GETCON: UM1V='',F10.5,'' UM2V='',F5.2, -C 1 '' UM3V='',F5.2)')UM1V,UM2V,UM3V -C -C - ELSE IF (COPTION .EQ. IDS6W1) THEN -C -C -C READ IN THE FIRST IDS -C - LSTRT = 1 - LEND = 6 - READ(CARD,FMT='(10X,6(Z8,3X))') - 1 (IDFLD(L),L=LSTRT,LEND) -C WRITE(6,FMT='('' GETCON:'',6(Z8,3X))') -C 1 (IDFLD(L),L=LSTRT,LEND) -C - ELSE IF (COPTION .EQ. IDS6W2) THEN -C -C -C READ IN THE SECOND IDS -C - LSTRT = 9 - LEND = 14 - READ(CARD,FMT='(10X,6(Z8,3X))') - 1 (IDFLD(L),L=LSTRT,LEND) -C WRITE(6,FMT='('' GETCON:'',6(Z8,3X))') -C 1 (IDFLD(L),L=LSTRT,LEND) -C -C - ELSE IF (COPTION .EQ. LINEAT) THEN -C -C READ IN THE LINE ATTRIBUTES -C - READ(CARD,FMT='(19X, I1,8X, I1, 10X, I2,1X,I2)') - 1 IDOUBLE,IDASHIN,DASHMK(1),DASHMK(2) - WRITE(6,FMT='('' GETCON: LINEAT='',4(I3))') - 1 IDOUBLE,IDASHIN,DASHMK(1),DASHMK(2) -C - IF (IDOUBLE .EQ. 1) THEN - LDOUBLE = .TRUE. - ELSE - LDOUBLE = .FALSE. - ENDIF -C - IF (IDASHIN .EQ. 1) THEN - DASHFG = .TRUE. - IDASH = 0 - ELSE - DASHFG = .FALSE. - ENDIF -C - IF (.NOT. DASHFG) THEN - DASHMK(1) = 0 - DASHMK(2) = 0 - ELSE IF (DASHMK(1) .LT. DASHMK(2)) THEN - ITEMP = DASHMK(1) - DASHMK(1) = DASHMK(2) - DASHMK(2) = ITEMP - ENDIF -C - ELSE IF (COPTION .EQ. UAVUMV) THEN -C -C READ UAV AND UMV CONSTANTS -C - READ(CARD,FMT='(8X,3(F7.2,1X),4X,3(F12.6,1X))') - 1 UA1V,UA2V,UA3V,UM1V,UM2V,UM3V -C - WRITE(6,FMT='('' GETCON: OVERWRITE UA1V='',F5.2, - 1 '' UA2V='',F5.2,'' UA3V='',F5.2)')UA1V,UA2V,UA3V -C - WRITE(6,FMT='('' GETCON: OVERWRITE UM1V='',F5.2, - 1 '' UM2V='',F5.2,'' UMV3='',F5.2)')UM1V,UM2V,UM3V -C - -C - ELSE IF (COPTION .EQ. WINDOW) THEN -C -C READ DATA CARDS TO GET BOUNDS OF THE FAX MAP.. -C - READ(CARD,FMT='(8X,4(I7,1X),4X,4(I7,1X))')XMIN,YMIN, - 1 XMAX,YMAX,CUTWOW(1),CUTWOW(2),CUTWOW(3),CUTWOW(4) -C -C WRITE(6,FMT='('' GETCON: WINDOW='',4(I7,1X))') -C 1 XMIN,YMIN,XMAX,YMAX - -C WRITE(6,FMT='('' GETCON: CUT WINDOW='',4(I7,1X))') -C 1 CUTWOW(1),CUTWOW(2),CUTWOW(3),CUTWOW(4) -C - ELSE IF (COPTION .EQ. SHADE) THEN -C -C READ IN THE SHADING ATTRIBUTES -C - READ(CARD,FMT='(15X, I1)')SHADNO - PRINT *, ' SHADNO=', SHADNO - IF (SHADNO .EQ. 1) THEN - READ(CARD,FMT='(25X, 1X,I2,1X,I2)') - 1 SHADMK(1),SHADMK(2) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 2) THEN - READ(CARD,FMT='(25X, 2(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,4) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 3) THEN - READ(CARD,FMT='(25X, 3(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,6) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 4) THEN - READ(CARD,FMT='(25X, 4(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,8) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 5) THEN - READ(CARD,FMT='(25X, 5(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,10) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 6) THEN - READ(CARD,FMT='(25X, 6(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,12) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 7) THEN - READ(CARD,FMT='(25X, 7(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,14) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 8) THEN - READ(CARD,FMT='(25X, 8(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,16) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 9) THEN - READ(CARD,FMT='(25X, 9(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,18) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ENDIF -C - ELSE IF (COPTION .EQ. CENTLAB1) THEN -C -C READ CENTER LABEL CONSTANTS 1 -C - READ(CARD,FMT='(13X,F4.1,4X,I1,5X,I1,7X,A4, - 1 6X,F5.1,5X,F5.1,6X,F7.1)') - 2 CENTFONT,CENTNC,CENTCEN,CENTFORM,CENTXID,CENTYID, - 3 CENTXLIM -C - WRITE(6,FMT='('' GETCON: OVERWRITE CENTER CONSTANTS 1-'', - 1 /,'' FONT='',F4.1,'' NC='',I1,'' CEN='',I1,'' FORM='', - 2 A4,'' XID='',F5.1,'' YID='',F5.1,'' XLIM='',F7.1)') - 3 CENTFONT,CENTNC,CENTCEN,CENTFORM,CENTXID,CENTYID, - 4 CENTXLIM - CENTFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. CENTLAB2) THEN -C -C READ CENTER LABEL CONSTANTS 2 -C - CENTB1RC = 1.0 - READ(CARD,FMT='(13X,A4,7X,A4, 8X,F4.1)') - 1 CENTFLO,CENTFHI,CENTB1RC -C - WRITE(6,FMT='('' GETCON: OVERWRITE CENTER CONSTANTS 2-'', - 1 /,'' FLO='',A4,'' FHI='',A4,'' CENT SCALE FACTOR='', - 2 F4.1)') CENTFLO,CENTFHI,CENTB1RC - CENTFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. CENTABOV) THEN -C -C READ CENTER LABEL ABOVE CONSTANTS -C - CENVB1RC = 1.0 - READ(CARD,FMT='(13X,F4.1,4X,I1,7X,A4,6X,I2,5X,I3, - 1 5X,I3,6X,A4,8X,F4.1)') - 2 CENVFONT,CENVNC,CENVFORM,CENVJUP,CENVICR,CENVJCR, - 3 CENVIFF,CENVB1RC -C - WRITE(6,FMT='('' GETCON: OVERWRITE CENTER ABOVE CONSTANT-'', - 1 /,'' FONT='',F4.1,'' NC='',I1,'' FORM='',A4,'' JUP='',I2, - 2 '' ICR='',I3,'' JCR='',I3,'' IFF='',A4,'' B1RC='',F4.1)') - 3 CENVFONT,CENVNC,CENVFORM,CENVJUP,CENVICR,CENVJCR, - 4 CENVIFF,CENVB1RC - CENVFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. LABEL1) THEN -C -C READ FIX COLUMN LABEL 1 CONSTANTS -C - LABB1RC = 1.0 - READ(CARD,FMT='(13X,F4.1,4X,I1,7X,A4, - 1 6X,I3,5X,I3,6X,A4,8X,F4.1)') - 2 LABFONT,LABNC,LABFORM,LABRTC,LABUPC,LABIFF,LABB1RC -C - WRITE(6,FMT='('' GETCON: OVERWRITE FIX LABEL1 CONSTANT-'', - 1 /,'' FONT='',F4.1,'' NC='',I1,'' FORM='',A4, - 2 '' RTC='',I3,'' UPC='',I3,'' IFF='',A4,'' B1_RC='',F4.1)') - 3 LABFONT,LABNC,LABFORM,LABRTC,LABUPC,LABIFF,LABB1RC - LABFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. LABEL2) THEN -C -C READ FIX COLUMN LABEL 1 CONSTANTS -C - READ(CARD,FMT='(13X,I1,4X,5(1X,I3))')LABNLAB, - 1 (LABIJFIX(I),I=1,5) -C - WRITE(6,FMT='('' GETCON: OVERWRITE FIX LABEL2 CONSTANT-'', - 1 /, '' NLAB='',I1,'' IJFIX='',5(1X,I3))')LABNLAB, - 2 (LABIJFIX(I),I=1,5) - LABFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. LABEL4) THEN -C -C READ FIX COLUMN LABEL 1 CONSTANTS -C - READ(CARD,FMT='(13X,I1,4X,7(1X,I4))')LABNLAB, - 1 (LABIJFIX(I),I=1,7) -C - WRITE(6,FMT='('' GETCON: OVERWRITE FIX LABEL2 CONSTANT-'', - 1 /, '' NLAB='',I1,'' IJFIX='',7(1X,I4))')LABNLAB, - 2 (LABIJFIX(I),I=1,7) - LABFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. CGRB2IN) THEN -C -C READ THE SECOND GRB AND GRB INDEX FILE UNITS -C ... FOR PRECIP ACCUMULATION CHARTS..... -C - READ(CARD,FMT='(26X,I2,9X,I2,9X,I3,8X,I2,9X,I2)') - 1 ALUGRB,ALUGRBIX,AFCSTHR,AKEYIDX,CALFLAG - WRITE(6,FMT='(/,'' GETCON: 2ND INPUT GRB FORECAST HOUR:'', - 1 I3,/,'' GETCON: 2ND INPUT GRIB FILE AND INDEX FILE;'', - 2 2(I4),/,'' GETCON: CACULATION FLAG='',I3)') - 2 AFCSTHR,ALUGRB,ALUGRBIX,CALFLAG - GRB2FLAG = .TRUE. -C - ELSE IF (COPTION .EQ. CPROJ) THEN -C -C READ THE PROJECTION CONSTANTS FOR MAPPING UOR TO DOT -C - READ (CARD,125)UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,IP,IPOPT - 125 FORMAT(12X,F6.2,5X,F6.2,5X,F6.2,5x,F6.2,7X,F8.2,4X,I1, - 1 7X,I1) - PRINT *, ' ' - WRITE(6,FMT='('' GETCON: OVERWRITE UOR_DOT CONSTANT-'', - 1 /,'' UXPO='',F6.2,'' UYPO='',F6.2,'' UXADJUS=='',F6.2, - 2 '' UYADJUS='',F6.2,'' UCU2GI='',F8.2,'' IP='',I2, - 3 '' IPOPT='',I2)') - 4 UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,IP,IPOPT - UORFG = .TRUE. - IF (UORFG) THEN - PRINT *, ' UORFG IS TRUE.' - ENDIF - UGRIDT1 = GRIDT1 - PRINT *,' UGRIDT1=',GRIDT1 -C - ELSE IF (COPTION .EQ. CCNTR) THEN -C -C READ THE CNTOR OPTIONS ONLY -C - READ(CARD,134)INDVD,INDIV - 134 FORMAT(13X,I1,6X,I1) - PRINT *,' INDVD=', INDVD - PRINT *,' INDIV=', INDIV - IF (INDVD.GT.0 .AND. INDVD.LT.3) NDVD = INDVD - IF (INDIV.GE.1 .AND. INDIV.LT.8) NDIV = INDIV - NCNTRFILT = 0 - NCENTFILT = 0 - SHADIV=1 - PRINT *,' NDVD=', NDVD - PRINT *,' NDIV=', NDIV - PRINT *,' NCNTRFILT=', NCNTRFILT - PRINT *,' NCENTFILT=', NCENTFILT - PRINT *,' SHADE INTERVAL=',SHADIV -C - ELSE IF (COPTION .EQ. CCTRA) THEN -C -C READ THE CNTOR OPTIONS AND FILTER OPTIONS -C - READ(CARD,135)INDVD,INDIV,INCNTRFILT,INCENTFILT,SHADIV - 135 FORMAT(13X,I1,6X,I1,10X,I1,10X,I1,8X,I1) - PRINT *,' INDVD=', INDVD - PRINT *,' INDIV=', INDIV - PRINT *,' INCNTRFILT=', INCNTRFILT - PRINT *,' INCENTFILT=', INCENTFILT - PRINT *,' SHADE INTERVAL=',SHADIV - IF (INDVD.GT.0 .AND. INDVD.LT.3) NDVD = INDVD - IF (INDIV.GE.1 .AND. INDIV.LT.8) NDIV = INDIV - IF (INCNTRFILT.GE.0 .AND. INCNTRFILT.LT.5) THEN - NCNTRFILT = INCNTRFILT - ENDIF - IF (INCENTFILT.GE.0 .AND. INCENTFILT.LT.5) THEN - NCENTFILT = INCENTFILT - ENDIF - IF (SHADIV.LE.0 .OR. SHADIV.GT.4) SHADIV=1 - PRINT *,' NDVD=', NDVD - PRINT *,' NDIV=', NDIV - PRINT *,' NCNTRFILT=', NCNTRFILT - PRINT *,' NCENTFILT=', NCENTFILT - PRINT *,' SHADE INTERVAL=',SHADIV -C - ELSE IF (COPTION .EQ. CVISCHED) THEN -C -C READ THE VARIAN ISCHED TO OVERWRITE THE DEFAULT -C - READ(CARD,FMT='(8X,4(I4,1X),2X,Z4,4X,Z4,1X,2(1X,I4))') - 1 (ISCHED(M,1),M=1,8) - - WRITE(6,FMT='('' GETCON: VARIAN ISCHED AS FOLLOWS-'', - 1 /,8X,4(I4,1X),2X,Z4,4X,Z4,2(1X,I4))') - 2 (ISCHED(M,1),M=1,8) - - ELSE IF (COPTION.EQ.CSISCHED .OR. COPTION.EQ.CIISCHED) THEN -C -C READ THE SUBSET & INSET ISCHEDS FOR FAX CUT. -C - INXISCHED = INXISCHED + 1 - READ(CARD,FMT='(8X,4(I4,1X),2X,Z4,4X,Z4,1X,2(1X,I4))') - 1 (ISCHED(M,INXISCHED),M=1,8) - - WRITE(6,FMT='('' GETCON: SUBSET/INSET ISCHED AS FOLLOWS-'', - 1 /,8X,4(I4,1X),2X,Z4,4X,Z4,2(1X,I4))') - 2 (ISCHED(M,INXISCHED),M=1,8) - print *, 'INXISCHED=',INXISCHED -C - ELSE IF (COPTION .EQ. CLFSTRPTL) THEN -C -C READ THE LEFT STRIP TITLE -C -C - INXLFSTRP = INXLFSTRP + 1 -C PRINT *,' INXLFSTRP=', INXLFSTRP - READ(CARD,FMT='(15X,I2,2X,A60)')LSNUMBYT(INXLFSTRP), - 1 LSINTEXT(INXLFSTRP)(1:60) -C WRITE(6,FMT='('' GETCON: LEFT STRIP TITLE HAS '',I2, -C 1 '' TITLE='',A)')LSNUMBYT(INXLFSTRP), -C 2 LSINTEXT(INXLFSTRP)(1:60) -C - ELSE IF (COPTION .EQ. CRTSTRPTL) THEN -C -C READ THE RIGHT STRIP TITLE -C -C - INXRTSTRP = INXRTSTRP + 1 -C PRINT *,' INXRTSTRP=', INXRTSTRP - READ(CARD,FMT='(15X,I2,2X,A60)')RSNUMBYT(INXRTSTRP), - 1 RSINTEXT(INXRTSTRP)(1:60) -C WRITE(6,FMT='('' GETCON: RIGHT STRIP TITLE HAS '',I2, -C 1 '' TITLE='',A)')RSNUMBYT(INXRTSTRP), -C 2 RSINTEXT(INXRTSTRP)(1:60) -C - ELSE IF (COPTION .EQ. CLFSTRPLC) THEN -C -C READ THE LEFT STRIP TITLE LOCATION -C - PRINT *,' INXLFSTRP=', INXLFSTRP - READ(CARD,FMT='(16X,I4,1X,I4,6X,F4.1,8X,I4,1X,I4,8X,I2)') - 1 LSTITPX(INXLFSTRP),LSTITPY(INXLFSTRP),LSFONT(INXLFSTRP), - 2 LSDCKPX(INXLFSTRP),LSDCKPY(INXLFSTRP),LSDCKOPT(INXLFSTRP) -C -C WRITE(6,FMT='('' GETCON: LEFT STRIP TITLE AS FOLLOWS-'', -C 1 /,16X,I4,1X,I4,6X,F4.1,8X,I4,1X,I4,8X,I2)') -C 2 LSTITPX(INXLFSTRP),LSTITPY(INXLFSTRP),LSFONT(INXLFSTRP), -C 3 LSDCKPX(INXLFSTRP),LSDCKPY(INXLFSTRP),LSDCKOPT(INXLFSTRP) -C - ELSE IF (COPTION .EQ. CRTSTRPLC) THEN -C -C READ THE RIGHT STRIP TITLE LOCATION -C -C PRINT *,' INXRTSTRP=', INXRTSTRP - READ(CARD,FMT='(16X,I4,1X,I4,6X,F4.1,8X,I4)') - 1 RSTITPX(INXRTSTRP),RSTITPY(INXRTSTRP),RSFONT(INXRTSTRP), - 2 RSFCSTHR(INXRTSTRP) -C -C WRITE(6,FMT='('' GETCON: RIGHT STRIP TITLE AS FOLLOWS-'', -C 1 /,16X,I4,1X,I4,6X,F4.1,8X,I4)') -C 2 RSTITPX(INXRTSTRP),RSTITPY(INXRTSTRP),RSFONT(INXRTSTRP), -C 3 RSFCSTHR(INXRTSTRP) -C - ELSE IF (COPTION .EQ. CGRAB) THEN -C -C READ THIS GRAB AND GRAB INDEX UNITS AND FORECAST -C - READ (CARD,105)LUGRB,LUGRBIX,IFCSTHR - 105 FORMAT(26X,I2,9X,I2,9X,I3) - PRINT *, ' ' - PRINT *, ' PROCESSING FORECAST HOUR2:',IFCSTHR - PRINT *, ' GRIB FILE AND INDEX FILE:',LUGRB,LUGRBIX -C - ELSE IF (COPTION .EQ. CCOPYOB) THEN -C -C COPY OBSERVATION FILE FROM TAPE 54 IF NECESSARY -C - READ (CARD,205)ITAPOB,ILVLT,KRUN,IOPTRA(1),IOPTRA(2) - 205 FORMAT(13X,I2,6X,I2,6X,I2,8X,I2,1X,I2) - PRINT *, ' GET COPYOB CONSTANTS:' - CPOBFG = .TRUE. -C - ELSE IF (COPTION .EQ. CRANGE) THEN -C -C READ IN THE CONTOUR RANGES -C - READ(CARD,FMT='(19X, I4,5X, I4)') - 1 ICBEG,ICEND - WRITE(6,FMT='('' GETCON: ICBEG ='',2(I4,1X))') - 1 ICBEG,ICEND - RANGFG = .TRUE. -C - ELSE IF (COPTION .EQ. CPCLIP) THEN -C -C READ IN THE CONTOUR POLE CLIP FLAG FOR TYPE 5 NAM MODEL -C - PCLPFG = .TRUE. -C - ELSE IF (COPTION .EQ. CPLOT ) THEN -C -C READ IN THE PLOT OPTION -C - READ(CARD,FMT='(14X,I4,3(7X,I4),8X,I2,1X,I2,7X,I2,1X,I2)') - 1 IMAXP,JMAXP,I1BIG, J1BIG,IGPLOT(1),IGPLOT(2),ISTART, - 2 JSTART - PLOTFG = .TRUE. -C - ELSE - PRINT *, ' GETCON: UNRECOGNIZED IDENTIFIER:',COPTION - ENDIF -C - GOTO 100 -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/getfld.F b/util/sorc/faxmakr.fd/getfld.F deleted file mode 100755 index 7a70f0ea8a..0000000000 --- a/util/sorc/faxmakr.fd/getfld.F +++ /dev/null @@ -1,185 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif - SUBROUTINE GETFLD(NUMFLD,LABEL,LUGRB,LUGRBIX,IEXIT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: GETFLD INVENTORY GRIB EDITION 1 FILE -C AUTHOR: KRISHNA KUMAR ORG: WP12 DATE: 1999-08-01 -C -C ABSTRACT: READ ONE DEGREE GRIB AND INDEX FILE ACCORDING TO INPUT -C 7-WORD ID. EXTRACT THE GRIB AND CONVERT IT 65*65 AND SMOOTH IT -C THEN STORE IT TO BUFFER AND GET A OFFICE 84 12-WORD ID. -C -C HISTORY LOG: -C 94-11-09 LUKE LIN -C 95-10-16 LUKE LIN MODIFY TO USE IW3GETV -C 96-07-05 LUKE LIN CHANGE UNPACK GRID BUFF SIZE FROM 163800 TO 16900 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C INPUT ARGUMENTS: -C LABEL - INTEGER*12 6-WORD OFFICE 84 ID -C NUMFLD - .EQ. 1 FOR ONE FIELD -C - .GT. 1 FOR 2 OR MORE FIELDS.SAVE PREVIOUS FIELD -C LUGRB - ONE DEGREE GRIB FILE UNIT -C LUGRBIX - ONE DEGREE GRIB INDEX FILE UNIT -C -C OUTPUT ARGEMENTS: -C IEXIT -- RETURN STATUS -C - =0, NORMAL; -C - SEE SUBROUTINE IW3GETV. -C BUFF - BUFFER(16900) CONTAINS GRID DATA -C BUFFV - SAVE OF PREVIOUS BUFFER(16900) CONTAINS GRID DATA -C -C USAGE: -C INPUT FILES: -C FT05F001 - CONTROL CARDS, ONE FOR EACH OUTPUT FILE -C -C OUTPUT FILES: -C FT06F001 - PRINT OUTPUT (STANDARD FORTRAN OUTPUT FILE) -C -C SUBPROGRAMS CALLED: -C UNIQUE: IW3GETV -C -C LIBRARY: -C SPECIAL - NONE -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C -C COMMON /ISPACE/SBFLD1(16900),SBFLD2(16900),IDREC(12),BUFF(16900), -C & BUFFV(16900),BUFFU(16900) -C - COMMON /ISPACE/SBFLD1(16900),SBFLD2(16900),IDREC(12),BUFF(16900), - & SAV1ST(16900),SAV2ND(16900) - REAL SBFLD1, SBFLD2, BUFF, SAV1ST, SAV2ND -C ... 12 ID WORDS UNPACKED FROM 84'S DATA FILE; BUFF CONTAINS -C UNPACKED DATA FOR THAT PARTICULAR FIELD; -C - INTEGER LABEL(12) -C -C THE HEADER CONSTANTS -C COMMON / HDCONS / ITAU,IGRID,IGCODE,ISCALE - COMMON/HDCONS/ITAU,IDUMMY(3) -C ..... ITAU COMES FROM SUBR RD1GRID.F - -C - CHARACTER * 132 TITLE - INTEGER MAXBUF - INTEGER LUGRBIX, LUGRB - CHARACTER*1 FCSTHR(8) - INTEGER LABEL1 - EQUIVALENCE (LABEL1,FCSTHR(1)) -C -C ... MAXBUF IS THE MAXIMUN BUFFER SIZE... - DATA MAXBUF /16900/ -ckumar - character*80 gribfile,gribixfile - character*2 clugrb,clugrbix -#if defined (__INTEL_COMPILER) - CHARACTER*6 envvar -#else - CHARACTER * 11 envvar -#endif -ckumar -C -C*********************************************************************** -C - IERR = 0 - IF (NUMFLD .EQ. 2) THEN -C ....SAVE PREVIOUS BUFFER IN BUFFV - DO 10 I=1,MAXBUF - SAV1ST(I) = BUFF(I) - 10 CONTINUE - ENDIF -c -c*** kumar opening grib & index files here -c - write(clugrb,fmt='(i2)')lugrb - write(clugrbix,fmt='(i2)')lugrbix - print*,'grib & index files unit #s ',clugrb,clugrbix -c -#if defined (__INTEL_COMPILER) - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lugrb -#else - envvar='XLFUNIT_ ' - write(envvar(9:10),fmt='(I2)') lugrb -#endif - call getenv(envvar,gribfile) - - call baopen(lugrb,gribfile,iret) - print*,'iret after baopen grib_file ',iret,gribfile - -#if defined (__INTEL_COMPILER) - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lugrbix -#else - envvar='XLFUNIT_ ' - write(envvar(9:10),fmt='(I2)') lugrbix -#endif - call getenv(envvar,gribixfile) - - call baopen(lugrbix,gribixfile,iret) - print*,'iret after baopen grib_index_file ',iret,gribixfile -c -c*** kumar -c -C - CALL IW3GETV(LUGRBIX, LUGRB, LABEL, BUFF, TITLE, IERR) -C - IF (IERR.GE.96 .AND. IERR.LE.99) THEN - PRINT *,'*IW3GETV ERROR = ',IERR - IERR = 1 - IEXIT = 1 - GO TO 999 - END IF -C -ckumar N = 1 -ckumar DO I=1,100 -ckumar WRITE(6,20)(BUFF(M),M=N, N+7) -ckumar 20 FORMAT(8(1X,F15.6)) -ckumar N=N+8 -ckumar ENDDO -c -C - print *,title(1:86) - print *,' ' -C -C - print *, 'GETFLDS: NUMFLD=', NUMFLD - IF (NUMFLD .EQ. 1) THEN - DO I=1, 12 - IDREC(I) = LABEL(I) - ENDDO - LABEL1 = LABEL(1) -#if defined (_LITTLE_ENDIAN) - ITAU = mova2i(FCSTHR(1)) -#else - ITAU = mova2i(FCSTHR(8)) -#endif - print *,' itau=', itau - ENDIF -C - PRINT *, 'GETFLDS: IDREC ' - WRITE(6,30)(IDREC(M),M=1,12) - 30 FORMAT (6(1X,Z16)) -c -c*** kumar closing grib & grib index files here -c - call baclose(lugrb,iret) - call baclose(lugrbix,iret) -c -c*** kumar -c - 999 CONTINUE -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/getgb1.F b/util/sorc/faxmakr.fd/getgb1.F deleted file mode 100755 index 921af54b7a..0000000000 --- a/util/sorc/faxmakr.fd/getgb1.F +++ /dev/null @@ -1,214 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif - SUBROUTINE GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS, - & GRIB,KF,K,KPDS,KGDS,LB,F,IRET) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: GETGB1 FINDS AND UNPACKS A GRIB MESSAGE -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 94-04-01 -C -C ABSTRACT: FIND AND UNPACK A GRIB MESSAGE. -C READ AN ASSOCIATED GRIB INDEX FILE (UNLESS IT ALREADY WAS READ). -C FIND IN THE INDEX FILE A REFERENCE TO THE GRIB MESSAGE REQUESTED. -C THE GRIB MESSAGE REQUEST SPECIFIES THE NUMBER OF MESSAGES TO SKIP -C AND THE UNPACKED PDS AND GDS PARAMETERS. (A REQUESTED PARAMETER -C OF -1 MEANS TO ALLOW ANY VALUE OF THIS PARAMETER TO BE FOUND.) -C IF THE REQUESTED GRIB MESSAGE IS FOUND, THEN IT IS READ FROM THE -C GRIB FILE AND UNPACKED. ITS MESSAGE NUMBER IS RETURNED ALONG WITH -C THE UNPACKED PDS AND GDS PARAMETERS, THE UNPACKED BITMAP (IF ANY), -C AND THE UNPACKED DATA. IF THE GRIB MESSAGE IS NOT FOUND, THEN THE -C RETURN CODE WILL BE NONZERO. -C -C PROGRAM HISTORY LOG: -C 94-04-01 IREDELL -C 95-05-10 R.E.JONES ADD ONE MORE PARAMETER TO GETGB AND -C CHANGE NAME TO GETGB1 -C -C USAGE: CALL GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS, -C & GRIB,KF,K,KPDS,KGDS,LB,F,IRET) -C INPUT ARGUMENTS: -C LUGB LOGICAL UNIT OF THE UNBLOCKED GRIB DATA FILE -C LUGI LOGICAL UNIT OF THE UNBLOCKED GRIB INDEX FILE -C JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK -C J INTEGER NUMBER OF MESSAGES TO SKIP -C (=0 TO SEARCH FROM BEGINNING) -C (<0 TO REOPEN INDEX FILE AND SEARCH FROM BEGINNING) -C JPDS INTEGER (25) PDS PARAMETERS FOR WHICH TO SEARCH -C (=-1 FOR WILDCARD) -C LOOK IN DOC BLOCK OF W3FI63 FOR ARRAY KPDS -C FOR LIST OF ORDER OF UNPACKED PDS VALUES. IN -C MOST CASES YOU ONLY NEED TO SET 4 OR 5 VALUES -C TO PICK UP RECORD. -C JGDS INTEGER (22) GDS PARAMETERS FOR WHICH TO SEARCH -C (ONLY SEARCHED IF JPDS(3)=255) -C (=-1 FOR WILDCARD) -C OUTPUT ARGUMENTS: -C GRIB GRIB DATA ARRAY BEFORE IT IS UNPACKED -C KF INTEGER NUMBER OF DATA POINTS UNPACKED -C K INTEGER MESSAGE NUMBER UNPACKED -C (CAN BE SAME AS J IN CALLING PROGRAM -C IN ORDER TO FACILITATE MULTIPLE SEARCHES) -C KPDS INTEGER (25) UNPACKED PDS PARAMETERS -C KGDS INTEGER (22) UNPACKED GDS PARAMETERS -C LB LOGICAL (KF) UNPACKED BITMAP IF PRESENT -C F REAL (KF) UNPACKED DATA -C IRET INTEGER RETURN CODE -C 0 ALL OK -C 96 ERROR READING INDEX FILE -C 97 ERROR READING GRIB FILE -C 98 NUMBER OF DATA POINTS GREATER THAN JF -C 99 REQUEST NOT FOUND -C OTHER W3FI63 GRIB UNPACKER RETURN CODE -C -C SUBPROGRAMS CALLED: -C BAREAD BYTE-ADDRESSABLE READ -C GBYTE UNPACK BYTES -C FI632 UNPACK PDS -C FI633 UNPACK GDS -C W3FI63 UNPACK GRIB -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY C916/256, J916/2048 -C -C$$$ -C - PARAMETER (MBUF=8192*128) - PARAMETER (LPDS=23,LGDS=22) -C - INTEGER JPDS(25),JGDS(*),KPDS(25),KGDS(*) - INTEGER IPDSP(LPDS),JPDSP(LPDS),IGDSP(LGDS) - INTEGER JGDSP(LGDS) - INTEGER KPTR(20) -C - LOGICAL LB(*) -C - REAL F(*) -C - CHARACTER CBUF(MBUF) - CHARACTER*81 CHEAD(2) - CHARACTER*1 CPDS(28) - CHARACTER*1 CGDS(42) - CHARACTER*1 GRIB(*) -C -C SAVE LUX,NSKP,NLEN,NNUM,CBUF - SAVE -C - DATA LUX/0/ -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C READ INDEX FILE - IF(J.LT.0.OR.LUGI.NE.LUX) THEN -C REWIND LUGI -C READ(LUGI,fmt='(2A81)',IOSTAT=IOS) CHEAD - CALL BAREAD(LUGI,0,162,ios,chead) - IF(IOS.EQ.162.AND.CHEAD(1)(42:47).EQ.'GB1IX1') THEN - LUX=0 - READ(CHEAD(2),'(8X,3I10,2X,A40)',IOSTAT=IOS) NSKP,NLEN,NNUM - IF(IOS.EQ.0) THEN - NBUF=NNUM*NLEN - IF(NBUF.GT.MBUF) THEN - PRINT *,'GETGB1: INCREASE BUFFER FROM ',MBUF,' TO ',NBUF - NNUM=MBUF/NLEN - NBUF=NNUM*NLEN - ENDIF - CALL BAREAD(LUGI,NSKP,NBUF,LBUF,CBUF) - IF(LBUF.EQ.NBUF) THEN - LUX=LUGI - J=MAX(J,0) - ENDIF - ENDIF - ENDIF - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C SEARCH FOR REQUEST - LGRIB=0 - KJ=J - K=J - KF=0 - IF(J.GE.0.AND.LUGI.EQ.LUX) THEN - LPDSP=0 - DO I=1,LPDS - IF(JPDS(I).NE.-1) THEN - LPDSP=LPDSP+1 - IPDSP(LPDSP)=I - JPDSP(LPDSP)=JPDS(I) - ENDIF - ENDDO - LGDSP=0 - IF(JPDS(3).EQ.255) THEN - DO I=1,LGDS - IF(JGDS(I).NE.-1) THEN - LGDSP=LGDSP+1 - IGDSP(LGDSP)=I - JGDSP(LGDSP)=JGDS(I) - ENDIF - ENDDO - ENDIF - IRET=99 - DOWHILE(LGRIB.EQ.0.AND.KJ.LT.NNUM) - KJ=KJ+1 - LT=0 - IF(LPDSP.GT.0) THEN - CPDS=CBUF((KJ-1)*NLEN+26:(KJ-1)*NLEN+53) - KPTR=0 -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_ON_COPY (ICOPY, CBUF((KJ-1)*NLEN+25+1), 8_8, 1_8) - CALL GBYTE (ICOPY,KPTR(3),0,3*8) -#else - CALL GBYTE(CBUF,KPTR(3),(KJ-1)*NLEN*8+25*8,3*8) -#endif - CALL FI632(CPDS,KPTR,KPDS,IRET) - DO I=1,LPDSP - IP=IPDSP(I) - LT=LT+ABS(JPDS(IP)-KPDS(IP)) - ENDDO - ENDIF - IF(LT.EQ.0.AND.LGDSP.GT.0) THEN - CGDS=CBUF((KJ-1)*NLEN+54:(KJ-1)*NLEN+95) - KPTR=0 - CALL FI633(CGDS,KPTR,KGDS,IRET) - DO I=1,LGDSP - IP=IGDSP(I) - LT=LT+ABS(JGDS(IP)-KGDS(IP)) - ENDDO - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C READ AND UNPACK GRIB DATA - IF(LT.EQ.0) THEN -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_ON_COPY (ICOPY, CBUF((KJ-1)*NLEN +1), 8_8, 1_8) - CALL GBYTE (ICOPY,LSKIP,0,4*8) - CALL SWAP_BYTES_ON_COPY (ICOPY, CBUF((KJ-1)*NLEN+20+1), 8_8, 1_8) - CALL GBYTE (ICOPY,LGRIB,0,4*8) -#else - CALL GBYTE(CBUF,LSKIP,(KJ-1)*NLEN*8,4*8) - CALL GBYTE(CBUF,LGRIB,(KJ-1)*NLEN*8+20*8,4*8) -#endif - CGDS=CBUF((KJ-1)*NLEN+54:(KJ-1)*NLEN+95) - KPTR=0 - CALL FI633(CGDS,KPTR,KGDS,IRET) -C BSM IF(LGRIB.LE.200+17*JF/8.AND.KGDS(2)*KGDS(3).LE.JF) THEN -C Change number of bits that can be handled to 25 - IF(LGRIB.LE.200+25*JF/8.AND.KGDS(2)*KGDS(3).LE.JF) THEN - CALL BAREAD(LUGB,LSKIP,LGRIB,LREAD,GRIB) - IF(LREAD.EQ.LGRIB) THEN - CALL W3FI63(GRIB,KPDS,KGDS,LB,F,KPTR,IRET) - IF(IRET.EQ.0) THEN - K=KJ - KF=KPTR(10) - ENDIF - ELSE - IRET=97 - ENDIF - ELSE - IRET=98 - ENDIF - ENDIF - ENDDO - ELSE - IRET=96 - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RETURN - END diff --git a/util/sorc/faxmakr.fd/getgrp.f b/util/sorc/faxmakr.fd/getgrp.f deleted file mode 100755 index 74d3eddd16..0000000000 --- a/util/sorc/faxmakr.fd/getgrp.f +++ /dev/null @@ -1,118 +0,0 @@ - SUBROUTINE GETGRP(GRPMAP,LUGRB,LUGRBIX,IFCSTHR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GETGRP GET GRPMAP FROM INPUT CONTROLS. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GET CONSTANTS FROM INPUT CONTROLS. -C -C PROGRAM HISTORY LOG: -C 96-03-01 ORIGINAL AUTHOR LUKE LIN -C 96-08-25 LUKE LIN MODIFY FOR READING IL CONSTANTS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL GETGRP(GRPMAP,LUGRB,LUGRBIX,IFCSTHR) -C OUTPUT ARGUMENT LIST: -C GRPMAP - NUMBER OF MAPS TO BE MADE IN THIS FORECAST GROUP -C LUGRB - GRIB FILE UNIT NUMBER FOR THIS FORECAST GROUP -C LUGRBIX - GRIB INDEX FILE UNIT NUMBER FOR THIS FORECAST GROUP -C IFCSTHR - FORECAST HOUR FOR THIS GROUP -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C - COMMON / ILCON / MAP(15) - INTEGER MAP -C - INTEGER GRPMAP - INTEGER LUGRB - INTEGER LUGRBIX - INTEGER IFCSTHR - CHARACTER*1 COMENT - CHARACTER*5 CGRPMP - CHARACTER*5 COPTION -C - CHARACTER*80 CARD -C - CHARACTER*5 CILCON1 - CHARACTER*5 CILCON2 - CHARACTER*5 CILCON3 - CHARACTER*5 CILCON4 - CHARACTER*6 BGNAME - CHARACTER*8 BG2NAME -C - LOGICAL FLAGGET -C - integer iacc - character*8 cacc - equivalence (iacc,cacc) -C - DATA CGRPMP /'GRPM:'/ - DATA COMENT /'!'/ -C - DATA CILCON1 /'ILC1:'/ - DATA CILCON2 /'ILC2:'/ - DATA CILCON3 /'ILC3:'/ - DATA CILCON4 /'ILC4:'/ - -C -C ------------ STARTS ---------------------------------- -C - FLAGGET = .FALSE. -C - 100 CONTINUE -C -C .... READ ONE INPUT CARD -C - READ(15,FMT='(A)')CARD(1:80) - WRITE(6,FMT='('' '',A)')CARD(1:80) -C IF ( CARD(1:1) .EQ. COMENT ) GOTO 100 -C ... IT IS A COMMENT CARD - COPTION = CARD(3:7) -C - IF (COPTION .EQ. CGRPMP) THEN -C -C READ THIS GROUP FORECAST MAPS -C - FLAGGET = .TRUE. -C - READ (CARD,105)GRPMAP,LUGRB,LUGRBIX,IFCSTHR - 105 FORMAT(15X,I2,9X,I2,9X,I2,9X,I3) - PRINT *, ' ' - PRINT *, ' PROCESSING FORECAST HOUR:',IFCSTHR - PRINT *, ' NO OF MAP OF THIS FCST HOUR:',GRPMAP - PRINT *, ' GRIB FILE AND INDEX FILE:',LUGRB,LUGRBIX -C - ELSE IF (COPTION .EQ. CILCON1) THEN - READ(CARD,FMT='(8X,A6,9(1X,I4))')BGNAME,(MAP(NN),NN=2,10) - CACC(1:6)=BGNAME - MAP(1) = IACC - PRINT *, ' BACKGROUND=',CACC - ELSE IF (COPTION .EQ. CILCON2) THEN - READ(CARD,FMT='(14X,5(1X,I4))')(MAP(NN),NN=11,15) - RETURN -C - ELSE IF (COPTION .EQ. CILCON3) THEN - READ(CARD,FMT='(8X,A8,1X,I4,2(2(1X,I6),2(1X,I4)))') - 1 BG2NAME,(MAP(NN),NN=2,10) - CACC=BG2NAME - MAP(1) = IACC - PRINT *, ' BACKGROUND=',CACC - ELSE IF (COPTION .EQ. CILCON4) THEN - READ(CARD,FMT='(14X,5(1X,I6))')(MAP(NN),NN=11,15) - RETURN - ELSE IF (CARD(1:1) .EQ. COMENT) THEN - IF (FLAGGET) RETURN - ELSE - PRINT *, ' ***FATAL ERROR: UNRECOGNIZE OPTION:',COPTION - ENDIF -C - GO TO 100 -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/getovl.f b/util/sorc/faxmakr.fd/getovl.f deleted file mode 100755 index 0a33a3dd94..0000000000 --- a/util/sorc/faxmakr.fd/getovl.f +++ /dev/null @@ -1,111 +0,0 @@ - SUBROUTINE GETOVL(MAXMAP,DGNSED,MAP) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GETOVL GET OVERALL MANDATORY INFORMATION IN -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GET CONSTANTS FROM INPUT CONTROLS. -C -C PROGRAM HISTORY LOG: -C 96-03-01 ORIGINAL AUTHOR LUKE LIN -C 96-04-30 LUKE LIN READ IL CONSTANTS IN. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL GETOVL(MAXMAP,MAP) -C OUTPUT ARGUMENT LIST: -C MAXMAP - NUMBER OF MAPS TO BE MADE IN THIS JOB -C DGNSED - UNIT NUMBER FOR DGN SEED FILE -C MAP - MAP(15) IL CONSTANTS -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON / LNATTR / LNWEIGHT, LNSTYLE, LNCOLOR - INTEGER LNWEIGHT - INTEGER LNSTYLE - INTEGER LNCOLOR -C - INTEGER MAXMAP - INTEGER DGNSED - INTEGER MAP(15) - CHARACTER*1 COMENT - CHARACTER*5 CMAXMP - CHARACTER*5 CILCON1 - CHARACTER*5 CILCON2 - CHARACTER*5 CILCON3 - CHARACTER*5 CILCON4 - CHARACTER*5 COPTION - CHARACTER*6 BGNAME - CHARACTER*8 BG2NAME -C - CHARACTER*80 CARD -C - integer iacc - character*8 cacc - equivalence (iacc,cacc) -C - DATA CMAXMP /'TOLM:'/ - DATA CILCON1 /'ILC1:'/ - DATA CILCON2 /'ILC2:'/ - DATA CILCON3 /'ILC3:'/ - DATA CILCON4 /'ILC4:'/ - DATA COMENT /'!'/ - DATA CACC /' '/ -C -C -C ------------ STARTS ---------------------------------- -C -C - LNWEIGHT = 0 - LNSTYLE = 0 - LNCOLOR = 1 -C -C - 100 CONTINUE -C -C .... READ ONE INPUT CARD -C - READ(15,FMT='(A)')CARD(1:80) - WRITE(6,FMT='('' '',A)')CARD(1:80) - IF ( CARD(1:1) .EQ. COMENT ) GOTO 100 -C ... IT IS A COMMENT CARD - COPTION = CARD(3:7) -C - IF (COPTION .EQ. CMAXMP) THEN -C -C READ THE TOTAL MAP -C - READ(CARD,FMT='(19X,I4,11X,I2)')MAXMAP,DGNSED -C - PRINT *,' TATOL MAPS =',MAXMAP,' DGNSED=',DGNSED -C - ELSE IF (COPTION .EQ. CILCON1) THEN - READ(CARD,FMT='(8X,A6,9(1X,I4))')BGNAME,(MAP(NN),NN=2,10) - CACC(1:6)=BGNAME - MAP(1) = IACC - PRINT *, ' BACKGROUND=',CACC - ELSE IF (COPTION .EQ. CILCON2) THEN - READ(CARD,FMT='(14X,5(1X,I4))')(MAP(NN),NN=11,15) - RETURN -C - ELSE IF (COPTION .EQ. CILCON3) THEN - READ(CARD,FMT='(8X,A8,1X,I4,2(2(1X,I6),2(1X,I4)))') - 1 BG2NAME,(MAP(NN),NN=2,10) - CACC=BG2NAME - MAP(1) = IACC - PRINT *, ' BACKGROUND=',CACC - ELSE IF (COPTION .EQ. CILCON4) THEN - READ(CARD,FMT='(14X,5(1X,I6))')(MAP(NN),NN=11,15) - RETURN - ELSE - PRINT *, ' ***FATAL ERROR: UNRECOGNIZE OPTION:',COPTION - ENDIF -C - GO TO 100 -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/grd2idgn.F b/util/sorc/faxmakr.fd/grd2idgn.F deleted file mode 100755 index 17921cdb95..0000000000 --- a/util/sorc/faxmakr.fd/grd2idgn.F +++ /dev/null @@ -1,932 +0,0 @@ - SUBROUTINE GRD2IDGN(DGNSED,KEYDAT, - 1 LUGRB,LUGRBIX,OUTDGN, - 2 INBYTE,INTEXT,GRIDT1, - 3 KDATE,IEXIT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GRD2IGN GENERATE AN INTERGRAPH DESIGN FORMAT FILE -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GENERATE AN INTERGRAPH DESIGN FORMATED INTERMEDIATE -C METAFILE THAT WILL BE MADE INTO TO AN AFOS UGF MAP OR A FAX MAP. -C -C -C PROGRAM HISTORY LOG: -C 94-05-26 ORGIONAL AUTHOR LUKE LIN -C 94-06-17 HENRICHSEN REORDER ARGS AND ADD NEW ARGS, DOCUMENT FOR -C PRODUCTION -C 94-06-22 HENRICHSEN ADD LOGIC FOR PRODUCING GULF TITLE WITH -C NEXT LINE LOGIC INBEDDED IN TEXT. -C 94-08-15 HENRICHSEN CORRECT AN ERROR THAT CAUSED THE CONTOR -C LABELS TO BE MISSING ON THE NORTH AMERICAN -C MAPS. -C 94-08-31 HENRICHSEN MODIFY TO ALOW GRID TYPE 05 LFM ANALYSIS -C 94-09-12 HENRICHSEN ALOW AND EXTRA TITLE LINE AFTER THE VALID -C PART OF THE TITLE LABEL. -C 94-09-20 HENRICHSEN CHANGED LOGIC TO OUTPUT MAP TITLE BEFORE -C CONTOUR LABELS. -C 94-09-28 HENRICHSEN ADDED NEW ARG JFID TO CALL TO FRMFAXT -C AND IN COMMOM /LLABFX/ -C 94-12-20 LUKE LIN CONVERT IT TO CFT-77. -C 95-01-18 LUKE LIN CHANGE Z3 FORMAT TO A1 FORMAT -C 95-02-14 HENRICHSEN ADDED IEXIT ARG TO SUB TWOFLD AND ADDED LOGIC -C TO MAKE VORTICITY FROM U AND V FIELDS. -C ADDED NEW VAR (XMESHL) TO COMMON /POLE/ -C CHANGED NAME OF COMMON/ISPACE/ TO /KSPACE/ -C AND RENAMED BUFFV TO SAV1ST -C AND BUFFU TO SAV2ND -C 96-02-01 LUKE LIN CHANGE TO CALL GETFLD/IW3GET -C 96-06-03 HENRICHSEN ADD PRINT STATEMENTS AROUND CALL TO GULFTL. -C ADD LOGIC TO USE JFID PASSED IN COMMON LLABFX. -C 96-06-07 HENRICHSEN ADD LOGIC TO BYPASS CALLS TO GULFTL AND -C FRMFAXT FRMFAXT ON 2ND OR 3RD CALL TO -C GRD2IDGN. ADDED LOGIC TO USE CENTERED ON -C TIME FOR 5 DAU MEAN MAPS. -C 96-06-17 LUKE LIN MODIFY FOR PRECIP BECAUSE FLD2 COMES FROM DIFFERENT -C FORECAST HOUR. -C 96-06-20 HENRICHSEN ADD LOGIC TO GET FIELD LEVEL FOR CERTAIN TYPE -C MAP SO THAT THE GULF TITLE WILL HAVE 4 LINES. -C 96-06-21 HENRICHSEN MODIFY COMMON /LLABFX/ TO PASS TITLE "THEIGHT" -C HGTFLG. -C 96-06-24 LUKE LIN ADD CNTR OPTIONS -C 96-07-01 LUKE LIN ADD FAX STRIP TITLES. -C 96-07-09 LUKE LIN CHANGE THE UNPACK GRID BUFF SIZE FROM 16380 TO 16900 -C AND CHANGE GFS FROM 65*65 TO 129*129 -C 96-08-12 LUKE LIN ADD SMOOTHER FOR CONTOUR LABELS AND CENTERS. -C 96-08-29 LUKE LIN MODIFY FOR NH2005 ON GFS GRID -C 96-09-11 LUKE LIN MODIFY FOR NH2005 ON NGM CGRID -C 96-01-03 LUKE LIN MODIFY FOR NH4006 AND ROTATE THE INPUT GRID. -C 96-05-29 LUKE LIN MODIFY FOR SFC PRESSURE CHANGE -C 97-07-11 LUKE LIN MODIFY FOR SETTING UNDEFINED ON GRID TYPE 5, TDL MOS -C THUNDERSTORM/SEVERE WX, AND TRAJECTORY 4-PANEL. -C 97-12-10 C. CARUSO WHERE CHECK IS DONE TO SEE IF KEYIDX = 11 (FOR WIND -C PLOT), ADDED CHECK TO SEE IF KEYIDX = 17 (NEW VALUE -C FOR SFC GEOSTROPHIC WIND). -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO XINDF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8 -C 99-09-27 BILL FACEY MODIFIED CODE FOR CASE WHERE KEYIDX GT 50. -C -C USAGE: CALL GRD2IDGN(DGNSED,KEYDAT, -C LUGRB,LUGRBIX,OUTDGN, -C 1 INBYTE,INTEXT,GRIDT1, -C 2 KDATE,IEXIT) -C INPUT ARGUMENT LIST: -C IDFLD - INTEGER*4 12 WORD ARRAY THAT CONTAINS THE IDS FOR -C - GETTING THE PACKED DATA FIELD(S). THE FIRST 6 WORDS -C - CONTAIN THE IDS FOR GETTING THE FIRST DATA FIELD. -C - WHILE WORDS 6-12 CONTAIN THE THE IDS FOR GETTING THE -C - 2ND DATA FIELD. -C DGNSED - INTEGER*4 UNIT NUMBER OF DESIGN SEED FILE. -C KEYDAT - INTEGER*4 NUMBER DESCRIBING DATA TYPE. -C LUGRB - UNIT NO POINTS TO ONE-DEGREE GRIB FILE -C LUGRBIX - UNIT NO POINTS TO ONE-DEGREE GRIB INDEX FILE. -C OUTDGN - INTEGER*4 UNIT NUMBER OF OUTPUT DESIGN FILE. -C INBYTE - INTEGER*4 NUMBER OF CHARACTERS IN MAP TITLE (INTEXT). -C INTEXT - CHARRACTER*80 CONTAINS MAP TITLE. -C GRIDT1 - REAL NUMBER DESCRIBING THE GRID INTERVAL. -C -C OUTPUT ARGUMENT LIST: -C KDATE - INTEGER*4 2 WORD ARRAY THAT HOLD THE BASE YEAR, MONTH, -C - DAY AND HOUR IN WORD 1 AND THE VALID YEAR, MONTH, DAY -C - AND HOUR IN WORD 2 BOTH ARE PACKED IN O.N. 84 FORMATED -C - ID WORDS. (FORMATED LIKE ID(7) WORD). -C IEXIT - EXIT STATUS -C -= 0 SUCCESSFUL RUN -C -= 1 ABEND FROM GETFLD/W3FK43, GRID FIELD NOT AVAILABLE -C -= 2 ABEND FROM CNTOR - LACK OF WORKING BIN FOR -C - INTEPOLATION. -C -= 3 ABEND FROM SUBR/SUBFLD -C -= 4 OUTPUT BUFFER IS FULL -C -= 5 FATAL ERR -- NOT ENOUGH WORKING BUFFER FOR OUT-DGN -C -= 6 UNABLE TO OPEN AN OUTPUT DESIGN FILE. -C -= 7 ERROR WHILE WRITING OUT ONTO AN OUTPUT DESIGN FILE. -C -= 8 ERROR OPENING INPUT DESIGN FILE -C -= 9 ERROR WHILE SCANING INPUT DESIGN FILE -C ......... FATAL ERROR ABOVE ............. -C -= 910, NONFATAL ERR -- INVALID OPEN TYPE FOR INDFPI -C -= 933, NONFATAL ERR -- ATTEMP TO ADD BAD ELEMENT TO DGN -C -C -C INPUT FILES: -C FTXXF001 - HOLDS A DESIGN SEED FILE. XX HAS VALUE OF DGNSED. -C -C OUTPUT FILES: -C OUTDGN - WILL CONTAIN THE DESIGN FORMATTED INTERMEDIATE -C - METAFILE THAT WILL BE CONVERTED INTO AFOS UGF -C - FORMAT BY THE NEXT SET OF SUBS. -C FT06F001 - CHECK OUT STATEMENTS AND ERROR MESSAGES -C -C -C REMARKS: -C IF PLOTFG = ' ', PLOT THE FIELD INSTEAD CONTOUR. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON / ILCON / MAP(15) - INTEGER MAP -C -C - integer iacc - character*8 cacc - equivalence (iacc,cacc) - character*6 bgname -C - COMMON / CLRFLD / CLRLAT,CLRLOL,CLRUPR,LCLEAR,ECLEAR,NCLEAR -C - COMMON / DGNBIN / VECBIN,MAXBIN,IMDEX,ITOTWD -C - COMMON /DGNTX/ ZLOWTXT,ZHGHTXT - INTEGER ZLOWTXT,ZHGHTXT -C ..... ZLOWTXT AND ZHGHTXT ARE INTEGERS TO BE STORE IN -C Z-COORDINATES FOR SPECIFYING TEXT STRINGS CHARACTERISTICS. -C LOW TWO DIGITS FOR CHARACTER FONTS, 100 OVER FOR BIG H/L, -C 1000 OVER FOR ERASE, 10000 OVER FOR REVERSE BLOCK, ...... -C - COMMON /ICON/ UA1(50),UA2(50),UA3(50),UM1(50),UM2(50),UM3(50), - 1 KTYPE(50) -C - COMMON /ISPACE/SBFLD1(16900),SBFLD2(16900),IDREC(12),BUFF(16900), - & SAV1ST(16900),SAV2ND(16900) - REAL SBFLD1, SBFLD2, BUFF, SAV1ST, SAV2ND - REAL SBFLDX(16900) - REAL SMOFLD(16900) -C -C -C ... 12 ID WORDS UNPACKED FROM 84'S DATA FILE; BUFF CONTAINS -C UNPACKED DATA FOR THAT PARTICULAR FIELD; -C -C - - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB -C - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - COMMON /LLABFX/ TITPXX,TITPXY,HGTFLG,THEIGHT,NUMT,JBYT, - 1 TITLE,JFID,EXVALID -C - INTEGER TITPXX,TITPXY,HGTFLG,NUMT,JBYT - REAL THEIGHT - CHARACTER*152 TITLE - CHARACTER*48 JFID - CHARACTER*32 EXVALID - - - COMMON /MEANCON/ MEANFG,LKMEAN,MEANTYP -C - - COMMON /MCON/ IADDB,IADDTAU,NUMTYP,NUMKEY, - 1 MTAU(18),MEAN(18),LMEAN,KDN,LDN -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C -C ...KEY TYPE INDEX, CONSTANT, AND CONTOUR LINE VALUE -C - COMMON /FLDCON/ IDFLD(16),NUMFLD,NDEGNS -C - COMMON /POLE/ XPOL,YPOL,GDTYPE -ckumar - COMMON /POLENEW/ XMESHL -ckumar -C -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ... GRID MESH LENGHT = XMESHL = 381.0 KLM -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C ...THE POLE POSITION IN GRID(53,57) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C -C - COMMON /THINN / NOTHIN,MIDIST,MINPTS -C -C ... NOTHIN: NO OF TIME TO BE THINNED; MIDIST: MIN. DISTANCE -C ... BETWEEN TWO PTS; MINPTS: MIN. PTS TO BE PROCESS. - COMMON /ID6WDS/ID8FLD(8),FLNAME,IOPEN - CHARACTER*8 FLNAME -C .... 6 ID WORDS TO GET DESIRED FIELD IN INVENTORY -C .... INPUT INVENTORY FILE NAME -C - COMMON/HDCONS/ITAU,IDUMMY(3) -C ..... ITAU COMES FROM SUBR RD1GRID.F -C -C - COMMON /GRB2/ ALUGRB,ALUGRBIX,AFCSTHR,AKEYIDX,CALFLAG,GRB2FLAG -C - INTEGER ALUGRB - INTEGER ALUGRBIX - INTEGER AFCSTHR - INTEGER AKEYIDX - INTEGER CALFLAG - LOGICAL GRB2FLAG -C .... FOR 2ND GRB UNIT NUMBER SUCH AS PRECIP FROM DIFFERENT FCST HOUR -C -C -C .... THIS SET IS FOR UOR_DOT - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI - LOGICAL UORFG -C -C ... FOR CONTOR OPTIONS - COMMON /CNTROP/ NDVD, NDIV, NCNTRFILT, NCENTFILT,SHADIV - INTEGER SHADIV -C ... NDVD FOR INTERPOLATION, NDIV FOR DIVISION -C ... NCNTRFILT FOR CONTOUR FILTER, NCENTFILT FOR CENTER FILTER - COMMON/LABARG/IPOS(500),JPOS(500),TEXT1(500), - X VAL(500),NCH(500),NSAVED - CHARACTER*4 TEXT1,TEXTIN -C -C - COMMON /PLOT/ PLOTFG, IMAXP, JMAXP, I1BIG, J1BIG, IGPLOT(2), - 1 ISTART, JSTART - LOGICAL PLOTFG -C -C - CHARACTER*80 INTEXT - CHARACTER*77 LGULF - CHARACTER*60 BLANKS - CHARACTER*60 ERRMSG - - CHARACTER*40 CELLIB -C - CHARACTER*20 VERSON - CHARACTER*12 CITIMES -ckumar - integer iitimes - equivalence (iitimes,citimes) -ckumar -C .... INPUT FILE NAME - CHARACTER*8 CHWORK - CHARACTER*8 CWORK - CHARACTER*4 CHTYPE - CHARACTER*4 KTYPE - CHARACTER*4 MEAN - CHARACTER*4 MEANTYP - -C - CHARACTER*1 NULL - CHARACTER*1 WBLANK - CHARACTER*1 WBARB - CHARACTER*1 WISOTA -C - INTEGER IBIGG, JBIGG, ILMAX, JLMAX - INTEGER CLRLOL(2) - INTEGER CLRUPR(2) - INTEGER DGNSED - INTEGER GDTYPE - INTEGER INBYTE - INTEGER IDFLDW(8) - INTEGER IDFLD1(12) - INTEGER IDFLD2(12) -C -C .... 6 ID WORDS TO GET DESIRED PACKED DATA FIELD. -C - COMMON /RANG/ RANGFG, ICBEG, ICEND - LOGICAL RANGFG - INTEGER ICBEG, ICEND -C -C - COMMON /PCLP/ PCLPFG - LOGICAL PCLPFG -C - INTEGER INTIME(2) - INTEGER ITIMES(3) - INTEGER IVLDNO - INTEGER JTIME - INTEGER KTIME - INTEGER JDATE - INTEGER KDATE(2) - REAL RINC(5) - INTEGER IDAT(8), JDAT(8) - INTEGER CTIME - CHARACTER*4 JCDAT, KCDAT - EQUIVALENCE (CTIME,KCDAT) - EQUIVALENCE (JDATE,JCDAT) - INTEGER NUMBYT - INTEGER OUTDGN - INTEGER SIGNAT -C - INTEGER FOMAT - INTEGER OPTYPE - INTEGER UNUSE1 - INTEGER UNUSE6 - INTEGER UNUSE8 - INTEGER VECBIN(409800) -C - REAL ALEVEL - REAL CLRLAT - REAL GRIDT1 - REAL WORKZ(324200) - REAL XINDF -C - LOGICAL HILOFG - LOGICAL ZS4TO1 -C - LOGICAL AFOS - LOGICAL ECLEAR - LOGICAL KDN - LOGICAL LCLEAR - LOGICAL NCLEAR - LOGICAL LDN - LOGICAL LMEAN - LOGICAL LKMEAN - LOGICAL NEWCON - LOGICAL PACKED - LOGICAL WORKL(648400) -C -C ... WORKZ AND WORKL ARE NEEDED BY CNTOR .... -C -C - CHARACTER*1 IFLAG - CHARACTER*1 IDPDSC(28) - INTEGER IDPDS(4) - EQUIVALENCE (IDPDSC(1),IDPDS(1)) - INTEGER IMODEL - INTEGER IDFLDP(4) -C -C - REAL DSCALE - REAL ANGLE - REAL DEFALT - LOGICAL LINEAR - LOGICAL LDEFQQ -C - DATA BLANKS - 1/' '/ -C /'123456789012345678901234567890123456789012345678901234567890'/ - DATA ERRMSG - 1/'NWS/GRD2IDGN - ONE INTERGRAPH DESIGN FILE UNABLE TO BE MADE'/ - DATA WBLANK /' '/ - DATA WBARB /'W'/ - DATA WISOTA /'I'/ - DATA XINDF / 1.0E307 / - - DATA MSKTRAJ /Z'00000000000000C0'/ -C - DATA MSK3 /Z'000000000000FFFF'/ - -C - DATA IZERO /Z'0000000000000000'/ - EQUIVALENCE (ALEVEL,KLEVEL) - EQUIVALENCE (CITIMES,INTIME) - EQUIVALENCE (JTIME,CWORK) - EQUIVALENCE (KTIME,CHWORK) - EQUIVALENCE (WORKZ(1),BUFF(1)) -C -C ... WHERE 409800 HALFWORDS = 400 VAX BLOCKS -C -C -C FILL TITLE WITH BLANKS. -C - TITLE = BLANKS//BLANKS//BLANKS -C -C??? DATA NULL /Z00/ - NULL = CHAR(00) -C - MAXBIN = 409800 - NINDX = 0 - ISTOP = 0 - MAPERR = 0 - MWHICH = 1 - IEXIT = 0 - T1 = GRIDT1 - ZLOWTXT = 0 - ZHGHTXT = 0 -C MINPTS = 10 - KEYIDX = KEYDAT - NSAVED = 0 - NCLEAR = .FALSE. -C -C UNLOAD THE 2 SETS OF ID WORDS FROM IDFLD ARRAY -C - DO I=1, 6 - IDFLDW(I) = IDFLD(I) - ENDDO - DO I=1, 6 - IDFLD1(I) = IDFLD(I) - IDFLD2(I) = IDFLD(8+I) - ENDDO - DO I=7, 12 - IDFLD1(I) = 0 - IDFLD2(I) = 0 - ENDDO -C - IMODEL = IAND(IDFLD1(6),MSK3) -C -C CALL GETCON -C -C - IF (GDTYPE.EQ.26) THEN - IBIGG = 53 - JBIGG = 45 - ILMAX = 53 - JLMAX = 45 - ICOR = 1 - JCOR = 1 - XPOL = 27.0 - YPOL = 49.0 - KEYCLR = 12 - XMESHL = 190.5 - ELSE IF (GDTYPE.EQ.05) THEN - IBIGG = 53 - JBIGG = 57 - ILMAX = 53 - JLMAX = 57 - ICOR = 1 - JCOR = 1 - XPOL = 27.0 - YPOL = 49.0 - KEYCLR = 12 - XMESHL = 190.5 - ELSE IF (GDTYPE.EQ.27 .OR. GDTYPE.EQ.28) THEN - IBIGG = 65 - JBIGG = 65 - ILMAX = 65 - JLMAX = 65 - ICOR = 1 - JCOR = 1 - XPOL = 33.0 - YPOL = 33.0 - KEYCLR = 14 - XMESHL = 381.0 -C - IF (UORFG .AND. UXPO.EQ.65 .AND. UYPO.EQ.65) THEN - IBIGG = 129 - JBIGG = 129 - ILMAX = 129 - JLMAX = 129 - ICOR = 1 - JCOR = 1 - XPOL = 65.0 - YPOL = 65.0 - KEYCLR = 14 - XMESHL = 190.5 - IF (MAP(5) .GT. 4000) THEN - KEYCLR = 1 - NCLEAR = .TRUE. - ENDIF - ENDIF - ELSE IF (GDTYPE.EQ.101) THEN - IBIGG = 113 - JBIGG = 91 - ILMAX = 113 - JLMAX = 91 - ICOR = 1 - JCOR = 1 - XPOL = 58.5 - YPOL = 92.5 - KEYCLR = 12 - XMESHL = 91.452 - ELSE IF (GDTYPE.EQ.104) THEN - IBIGG = 147 - JBIGG = 110 - ILMAX = 147 - JLMAX = 110 - ICOR = 1 - JCOR = 1 - XPOL = 75.5 - YPOL = 109.5 - KEYCLR = 12 - XMESHL = 90.75464 - ELSE - WRITE(6,FMT='('' GRD2IDGN: **** ERROR '',I2,'' IS'', - 1 '' UNKNOWN GRID TYPE:'')')GDTYPE - GO TO 800 - ENDIF -C ... INITIALIZE ADDITIVE AND MULTIPLICATIVE CONSTANTS - IFLDNO = 1 -C -C -C - CALL GETFLD(IFLDNO,IDFLD1,LUGRB,LUGRBIX,IEXIT) -C - IF (IEXIT .NE. 0) THEN - WRITE(6,FMT='('' GRD2IDGN: **** ERROR RETURN= '',I2, - 1 '' FROM GETFLD :'')')IEXIT - RETURN - ENDIF -C -C IF NEED GET SECOND DATA FIELD -C - IF (NUMFLD .EQ. 2) THEN - IFLDNO = 2 -C - IF (GRB2FLAG .AND. KEYIDX.EQ.AKEYIDX) THEN - CALL GETFLD(IFLDNO,IDFLD2,ALUGRB,ALUGRBIX,IEXIT) - ELSE - CALL GETFLD(IFLDNO,IDFLD2,LUGRB,LUGRBIX,IEXIT) -C .... FLD 2 FROM DIFFERENT FORECAST HOUR, SUCH AS PRECIP - ENDIF -C ...GET A REAL DATA FIELD FROM INVENTORY - IF (IEXIT .NE. 0) THEN - WRITE(6,FMT='('' GRD2IDGN: **** ERROR RETURN= '',I2, - 1 '' FROM GETFLD WITH :'')')IEXIT - RETURN - ENDIF - IF ( .NOT. PLOTFG ) THEN - CALL TWOFLD(BUFF,SAV1ST,SAV2ND,IBIGG,JBIGG,KEYIDX,IEXIT) - ENDIF - IF (IEXIT .NE. 0) THEN - WRITE(6,FMT='('' GRD2IDGN: **** ERROR RETURN= '',I2, - 1 '' FROM TWOFLD, WITH KEYIDX='',I3)')IEXIT,KEYIDX - RETURN - ENDIF - ENDIF -C - IF (IEXIT .NE. 0) RETURN - IF (KEYIDX.EQ.7 .OR. KEYIDX.EQ.30 .OR. KEYIDX.EQ.37 - 1 .OR. KEYIDX.EQ.19 .OR. KEYIDX.EQ.49) THEN - CALL PRECIP(BUFF,SAV1ST,IBIGG,JBIGG) - ELSE IF (KEYIDX .EQ. 44) THEN -C ... FOR VERTICAL WIND SHIED - CALL ABSVWS(BUFF,SAVIST,IBIGG,JBIGG) - ENDIF -C -C -C - IACC = MAP(1) - BGNAME = CACC(1:6) - PRINT *, ' GRD2IDGN: BGNAME =', BGNAME - IF (GDTYPE.EQ.27 .AND. BGNAME.EQ.'NH2005') THEN -C ...ROTATE FROM 80W TO 105W FOR NH2005 - ANGLE = -25.0 - DSCALE = 1.0 - LINEAR = .TRUE. - LDEFQQ = .FALSE. - CALL W3FT07(BUFF,IBIGG,JBIGG,XPOL,YPOL,XPOL,YPOL, - A DSCALE,ANGLE,LINEAR,LDEFQQ,DEFALT,SMOFLD,IBIGG,JBIGG) -C - CALL SUBFLD(SMOFLD,IBIGG,JBIGG,SBFLD1,ILMAX,JLMAX, - 1 ICOR,JCOR,UM1V,UA1V,UM2V,UA2V,IEXIT) - ELSE IF (GDTYPE.EQ.27 .AND. BGNAME.EQ.'NH4006') THEN -C ...ROTATE FROM 80W TO 105W FOR NH2005 - ANGLE = -25.0 - DSCALE = 1.0 - LINEAR = .TRUE. - LDEFQQ = .FALSE. - CALL W3FT07(BUFF,IBIGG,JBIGG,XPOL,YPOL,XPOL,YPOL, - A DSCALE,ANGLE,LINEAR,LDEFQQ,DEFALT,SMOFLD,IBIGG,JBIGG) -C - CALL SUBFLD(SMOFLD,IBIGG,JBIGG,SBFLD1,ILMAX,JLMAX, - 1 ICOR,JCOR,UM1V,UA1V,UM2V,UA2V,IEXIT) - ELSE IF (GDTYPE.EQ.05 .AND. BGNAME.EQ.'PN2601') THEN -C ...ROTATE FROM 105W TO 98W FOR NH2005 - ANGLE = 7.0 - DSCALE = 1.0 - LINEAR = .TRUE. - LDEFQQ = .FALSE. - CALL W3FT07(BUFF,IBIGG,JBIGG,XPOL,YPOL,XPOL,YPOL, - A DSCALE,ANGLE,LINEAR,LDEFQQ,DEFALT,SMOFLD,IBIGG,JBIGG) -C - CALL SUBFLD(SMOFLD,IBIGG,JBIGG,SBFLD1,ILMAX,JLMAX, - 1 ICOR,JCOR,UM1V,UA1V,UM2V,UA2V,IEXIT) - ELSE -C -C EXTRACT AND RECSALE A SUBGRID. -C - IF ( .NOT. PLOTFG ) THEN - PRINT *, ' GRD2IDGN: CALL SUBFLD' - CALL SUBFLD(BUFF,IBIGG,JBIGG,SBFLD1,ILMAX,JLMAX, - 1 ICOR,JCOR,UM1V,UA1V,UM2V,UA2V,IEXIT) - ENDIF - ENDIF -C - IF (IEXIT .NE. 0) THEN - IEXIT = 3 - RETURN - ENDIF -C -C NOW GET THE MAP TITLE READY - AFOS = .FALSE. - PACKED = .FALSE. - ITIMES(1) = ITAU - JTAU = ITAU - IF(LVFLG.GT.0)THEN -C -C GET DATA LEVEL FROM 2ND ID WORD -C - ILEVEL = IDREC(2) - WRITE(6,FMT='('' GRD2IDGN: LEVEL ID WORD='',Z17)')ILEVEL - CALL GBYTE(ILEVEL,KLEVEL,36,20) - LEVEL = KLEVEL/100 - WRITE(6,FMT='('' GRD2IDGN: LEVEL='',I6,'' KLEVEL='',I6, - 1 '' KLEVEL HX='',Z17)')LEVEL,KLEVEL,KLEVEL - ENDIF - KTIME = IDREC(7) - ITIMES(2) = IDREC(7) - ITIMES(3) = IDREC(8) -C - CTIME = IZERO - WRITE(6,FMT='('' GRD2IDGN: ITIMES='',3(Z17))')ITIMES -C1211 FORMAT(' KTIME,JDATE=', 3(2X,Z16)) -#if defined (_LITTLE_ENDIAN) - CALL SBYTESCCS(CTIME,KTIME,0,32,0,1) - CALL SWAP_BYTES_IN_PLACE (CTIME, 8_8, 1_8) -#else - CALL SBYTES(CTIME,KTIME,0,32,0,1) -#endif -C------------------------------------------------------- -C FOLLOWING WAS ADDED TO REPLACE CALL TO W3FS15 WITH CALL -C TO W3MOVDAT FOR Y2K COMPATABILITY. - IDAT=0 - JDAT=0 - RINC=0 - RINC(2)=JTAU - ICENT=1900 - IDAT(1)=mova2i(KCDAT(1:1)) - IF(IDAT(1) .LT. 96) ICENT=2000 - IDAT(1)=IDAT(1)+ICENT - IDAT(2)=mova2i(KCDAT(2:2)) - IDAT(3)=mova2i(KCDAT(3:3)) - IDAT(5)=mova2i(KCDAT(4:4)) -ckumar - print*,'In GRD2IDGN - before W3MOVDAT ' - print *, 'IDAT=', IDAT(1), IDAT(2), IDAT(3), IDAT(5) - print *, 'RINC=', RINC(1),RINC(2),RINC(3),RINC(4),RINC(5) -ckumar - CALL W3MOVDAT(RINC,IDAT,JDAT) - print *, 'JDAT=', JDAT(1), JDAT(2), JDAT(3), JDAT(5) - JDAT(1)=JDAT(1)-ICENT - JCDAT(1:1)=CHAR(JDAT(1)) - JCDAT(2:2)=CHAR(JDAT(2)) - JCDAT(3:3)=CHAR(JDAT(3)) - JCDAT(4:4)=CHAR(JDAT(5)) -C -C END OF CHANGES FOR W3MOVDAT -C----------------------------------------------------- - KDATE(1) = KTIME - KDATE(2) = JDATE -C - WRITE(6,FMT='('' GRD2IDGN: KDATE/JTAU='',3(Z17))')KDATE,JTAU - print *, 'keyidx=',keyidx - IF (KEYIDX .LT. 51) THEN - CHTYPE = KTYPE(KEYIDX) - ELSE - CHTYPE = ' ' - ENDIF -C -ckumar CALL SBYTES(CITIMES,ITIMES,0,32,0,3) -#if defined (_BIG_ENDIAN) - CALL SBYTES(IITIMES,ITIMES,0,32,0,3) -#else - CALL SBYTESCCS(IITIMES,ITIMES,0,32,0,3) -#endif - WRITE(6,FMT='('' GRD2IDGN: INTIME='',2(Z17))')INTIME -C -C CHECK TO SEE IF WE SHOULD BYPASS CALLS TO THESE SUBS -C - IF (NDEGNS .EQ. 1) THEN -C -C CHECK TO SEE IF THIS IS A MEAN FIELD -C - IF(LKMEAN) THEN - LMEAN = .FALSE. - DO KK=1,NUMTYP - IF(MEAN(KK).EQ.MEANTYP)THEN - LMEAN = .TRUE. - ITIMES(1) = MTAU(KK) -ckumar CALL SBYTES(CITIMES,ITIMES,0,32,0,3) -#if defined (_BIG_ENDIAN) - CALL SBYTES(IITIMES,ITIMES,0,32,0,3) -#else - CALL SBYTESCCS(IITIMES,ITIMES,0,32,0,3) -#endif - WRITE(6,FMT='('' GRD2IDGN: INTIME='',2(Z17))')INTIME -C - WRITE(6,FMT='('' GRD2IDGN: THIS IS A '',A,'' MEAN MAP.'', - 1 '' THE NEW TAU IS'',I4,'' ITIMES='',3(Z17))')MEANTYP, - 2 MTAU(KK),ITIMES - GOTO 10 -C - ENDIF - ENDDO - ENDIF - 10 CONTINUE -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (INTIME, 8_8, 2_8) -#endif - CALL GULFTL(CITIMES,CHTYPE,PACKED,AFOS,LGULF) -C - WRITE(6,FMT='('' GRD2IDGN: BEFORE CALL TO SUB FRMFAXT'', - 1 '' JFID='',A)')JFID(1:JBYT) - CALL FRMFAXT(LGULF,INBYTE,LEVEL,LMEAN,INTEXT) -C -C -C - WRITE(6,FMT='('' GRD2IDGN: TITLE='',A,/,'' HEX='', - 1 8(/,20A1))')TITLE(1:NUMT),(TITLE(IJ:IJ),IJ=1,NUMT) -C - WRITE(6,FMT='('' GRD2IDGN: GLAB='',A,/,'' HEX='', - 1 17A1)')GLAB(1:NUMG),(GLAB(IJ:IJ),IJ=1,NUMG) -C -C ....PUT TITLES ON THE MAP -C - CALL MTITLE(IDFLD1) -C -C ....PUT FAX STRIP TITLES -C - CALL STRPTITL(CITIMES,PACKED) -C - ENDIF -C - FOMAT = 0 - OPTYPE = 0 - CELLIB(1:1) = NULL - CALL INDFPI(UNUSE1,DGNSED,OPTYPE, CELLIB, FOMAT, - & UNUSE6, IEXIT, UNUSE8) -C ..... OPEN A DGN FILE ..... - IF (IEXIT .NE. 0 .AND. IEXIT .LE. 10) THEN - PRINT *,' FATAL ERROR FROM INDFPI=', IEXIT - RETURN - ENDIF -C INITIALIZATION - IMZ = (ILMAX-1)*NDIV + 1 - IML = 2*IMZ-1 -C - IF ( .NOT. PLOTFG ) THEN - CALL UPDOWN(SBFLD1,SBFLD2,ILMAX,JLMAX) -C ... UPSIDE DOWN THE GRID DATA FOR CNTOR - ENDIF -C - ITOT=ILMAX * JLMAX -ckumar - PRINT *, 'In GRD2IDGN: filter and contour' - PRINT *, 'GDTYPE, NCNTRFILT,NCENTFILT', - & GDTYPE, NCNTRFILT,NCENTFILT -ckumar - IF (GDTYPE.EQ.27 .OR. GDTYPE.EQ.28) THEN -C FILTER THE CONTOUR - IF ( NCNTRFILT .GT. 0) THEN - DO KL=1,NCNTRFILT - CALL W3FM08(SBFLD2,SBFLDX,ILMAX,JLMAX) - ENDDO - ENDIF -C FILTER THE CENTERS - PRINT *, 'GDTYPE, NCNTRFILT,NCENTFILT', - & GDTYPE, NCNTRFILT,NCENTFILT - IF ( NCENTFILT .GT. 0) THEN - DO KL=1,NCENTFILT - CALL W3FM08(SBFLD1,SBFLDX,ILMAX,JLMAX) - ENDDO - ENDIF - ELSE IF (KEYIDX.EQ.22) THEN -C FILTER THE CONTOUR FOR PRESSURE CHANGE - IF ( NCNTRFILT .GT. 0) THEN - DO KL=1,NCNTRFILT - CALL W3FM08(SBFLD2,SBFLD2,ILMAX,JLMAX) - ENDDO - ENDIF -C FILTER THE CENTERS - IF ( NCENTFILT .GT. 0) THEN - CALL W3FM08(SBFLD1,SBFLD1,ILMAX,JLMAX) - IF ( NCENTFILT .GT. 1) THEN - DO KL=1,NCENTFILT-1 - CALL W3FM08(SBFLD1,SBFLD1,ILMAX,JLMAX) - ENDDO - ENDIF - ENDIF - ENDIF -C -C - IF ( .NOT. PLOTFG ) THEN - print *, 'call cntor' - CALL CNTOR(SBFLD2,ILMAX,JLMAX,NDVD,NDIV,WORKZ, - & IMZ,WORKL,IML,SHADIV,KEYIDX,IEXIT) - ENDIF - IF (IEXIT .NE. 0 .AND. IEXIT .LE. 5) RETURN -C - IF (GDTYPE.EQ.27 .OR. GDTYPE.EQ.28) THEN - ISML = 46 - JSML = 51 - ISKP = 10 - JSKP = 8 - ICOR = 13 -C - IF (UORFG .AND. UXPO.EQ.65 .AND. UYPO.EQ.65) THEN - ISML = 91 - JSML = 101 - ISKP = 20 - JSKP = 16 - ICOR = 25 - ENDIF -C -C CHECK TO SEE IF THE FEILD NEEDS TO BE CLEARED -C - IF(LCLEAR)THEN - WRITE(6,FMT='('' GRD2IDGN: CLEAR FIELD OF SIZE'', - 1 2I6)')ILMAX,JLMAX - CALL CLEAR(CLRLAT,XINDF,SBFLD1, - 1 ILMAX,JLMAX,KEYCLR,IRTN) - PRINT *,' CALL CLEAR' - ELSE - WRITE(6,FMT='('' GRD2IDGN: INDEF FIELD OF SIZE'', - 1 2I6,'' ISML/JSML'',2I6,'' ISKP/JSKP='',2I6, - 2 '' ICOR='',I6)') - 3 ILMAX,JLMAX,ISML,JSML,ISKP,JSKP,ICOR - CALL INDEFF(SBFLD1,ILMAX,JLMAX,ISML,JSML, - 1 ISKP,JSKP,ICOR,XINDF) - PRINT *,' CALL INDEFF,XINDF=',XINDF - ENDIF - ELSE - IF(ECLEAR)THEN - WRITE(6,FMT='('' GRD2IDGN: CLEARING FIELD OF'', - 1 '' SIZE '',2I6,'' WITH CORNER POINTS '',4I4)') - 2 ILMAX,JLMAX,CLRLOL,CLRUPR - MKEY = 1 - CALL CLREDG(SBFLD1,XINDF,CLRLOL,CLRUPR,MKEY, - 1 ILMAX,JLMAX,IRTN) - ENDIF - ENDIF -C - DOTSGI = T1 - A1 = UA3V - B1 = UM3V -C -C FIND CONTOUR LABELS -C ABOVE CENTERS AND ALONG CONTOURS -C - IF ( .NOT. PLOTFG ) THEN -C - IF (PCLPFG.AND.GDTYPE.EQ.05) - 1 CALL XLABEL(SBFLD1,IBIGG,JBIGG,XINDF) -C ... FOR TYPE 5 TO CLIP POLE AREA - IF (RANGFG.AND.KEYIDX.EQ.46) - 1 CALL XLABEL(SBFLD1,IBIGG,JBIGG,XINDF) -C ... FOR TDL MOS THUNDERSTORM/SEVERE WX CHART - IF (IMODEL .EQ. MSKTRAJ) THEN - IF (KEYIDX.EQ.51.OR.KEYIDX.EQ.47 .OR. - 1 KEYIDX.EQ.48) THEN -C .... FOR TRAJECTORY 4-PANEL CHART - CALL XLABEL(SBFLD1,IBIGG,JBIGG,XINDF) - CALL TJLABEL(SBFLD1,IBIGG,JBIGG,DOTSGI,A1,B1, - 1 KEYIDX) - ENDIF - ELSE - CALL LABELCON(SBFLD1,IBIGG,JBIGG,DOTSGI,A1,B1, - 1 KDN,LDN,IEXIT) - ENDIF -C - IF (IEXIT .NE. 0 .AND. IEXIT .LE. 5) THEN - PRINT *,' FATAL ERROR FROM LBCENCON=', IEXIT - RETURN - ENDIF -C - ELSE -C FOR ISOTACHS TO PLOT WIND DIRECTIONS... - VA1V = UA1(KEYIDX) - VM1V = UM1(KEYIDX) - VA2V = UA2(KEYIDX) - VM2V = UM2(KEYIDX) - IMAX = IMAXP - JMAX = JMAXP -C - CALL SUBFLD( BUFF,IBIGG,JBIGG,SBFLD1, IMAX, - 1 JMAX,ICOR,JCOR, VM1V,VA1V,VM2V,VA2V,IEXIT) -C ....GET U-COMPONENT - IF (IEXIT .NE. 0) THEN - IEXIT = 3 - GO TO 800 - ENDIF -C - IF (KEYIDX.EQ.11.OR.KEYIDX.EQ.17) THEN - CALL SUBFLD(SAV1ST,IBIGG,JBIGG,SBFLD2, IMAX, - & JMAX,ICOR,JCOR,VM1V,VA1V,VM2V,VA2V,IEXIT) -C ....GET V-COMPONENT - CALL PTWNDX(SBFLD1,SBFLD2, IMAX, JMAX, - 1 I1BIG,J1BIG,IGPLOT,ISTART,JSTART,T1) - ELSE IF (KEYIDX.EQ.38) THEN - CALL PLTRH(SBFLD1,IMAX,JMAX, - 1 I1BIG,J1BIG,IGPLOT,ISTART,JSTART,T1) - ENDIF -C - IF (IEXIT .NE. 0) THEN - IEXIT = 3 - GO TO 800 - ENDIF -C - ENDIF -C -C -C WRITE AND CLOSE THE DESIGN FILE -C - CALL WRTDGN(OUTDGN, IEXIT) - IF (IEXIT .NE. 0 .AND. IEXIT .LE. 7) THEN - PRINT *,' FATAL ERROR FROM WRTDGN=', IEXIT - ELSE - RETURN - ENDIF - 800 CONTINUE -C - PRINT *,ERRMSG -C - 900 CONTINUE -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/gulftl.F b/util/sorc/faxmakr.fd/gulftl.F deleted file mode 100755 index 134af55d29..0000000000 --- a/util/sorc/faxmakr.fd/gulftl.F +++ /dev/null @@ -1,325 +0,0 @@ - SUBROUTINE GULFTL(CHWORK,CHTYPE,PACKED,AFOS,LGULF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GULFTL FORMS TEXT OF GULF TITLE AND OTHER TITLES -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 2001-11-21 -C -C ABSTRACT: FORMS THE TEXT OF THE GULF TITLE FOR VARIAN/FAX MAPS AND -C THE BASE AND VALID TIME TEXT FOR OTHER MAPS. ALL TEXT IS RETURNED -C IN LGULF ARRAY. FOR FURTHER DETAILS SEE OUTOUT ARGS. BELOW. -C -C PROGRAM HISTORY LOG: -C 89-02-08 ORIGINAL AUTHOR HENRICHSEN -C 95-01-04 LUKE LIN CONVERT IT CFT-77. -C 95-01-18 LUKE LIN GET ITAU FROM SUBROUTINE RD1GRIB -C 96-06-03 HENRICHSEN REMOVED THE 95-01-18 MODIFICATIONS AND -C CORRECTED AN ERROR IN CALL TO "GBYTES" IT -C SHOULD HAVE BEEN A CALL TO "GBYTE". -C 96-06-18 HENRICHSEN ADDED NAM48 TO MODTAB -C 96-08-21 HENRICHSEN ADDED CHANGED GENERATING MODEL # 77 FROM JMET -C TO SA126 WHICH SIGNIFIES 126 WAVE TRIANGULAR, -C 28 LAYER SPECTRAL MODEL FROM "AVIATION" RUN. -C 97-03-11 LIN MODIFY FOR NEGATIVE TAU TEST AND GFS D+/D- MAPS. -C 97-03-31 LIN CHANGE GFSBC TO GFS FOR IGEN .EQ. 76. -C 97-04-18 LIN FIX ECMWF D+3/D+8 MAP TITLES. -C 98-02-11 LILLY ADDED NAM32 TO MODTAB -C 98-06-03 FACEY REPLACE CALL TO W3FS15 WITH CALL TO W3MOVDAT -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C 2001-11-21 KRISHNA KUMAR CHANGED NAM32 TO NAM12 IN MODTAB -C TO REFLECT THE MODEL CHANGES FROM 32 KM -C TO 22 KM TO 12 KM -C -C USAGE: CALL GULFTL(CHWORK,CHTYPE,PACKED,AFOS,LGULF) -C INPUT ARGUMENT LIST: -C CHWORK - CHARACTER*12 WORD ARRAY THAT CONTAINS THREE -C - ID WORDS AFTER GETING A PACKED DATA FIELD. -C - CHWORK(1:4) HAS IDWORD(1). -C - CHWORK(5:8) HAS IDWORD(7). -C - CHWORK(9:12) HAS IDWORD(8). -C - IN ON 84 FORMAT. -C CHTYPE - CHARACTER*4 WORD THAT CONTAINS THE TYPE OF FIELD IN -C - HOLLERTH IE 'HGT ', 'TEMP', 'PRS ' -C PACKED - LOGICAL FLAG SET = .TRUE. ITIMES(1) IS A PACKED ID -C - WORD THEN THE TAU IS IN THE 4TH BYTE. IF = .FALSE. -C - THEN THE TAU IS IN ALL OF ITIMES(1). -C AFOS - LOGICAL FLAG SET = .TRUE. IF AFOS PRODUCT THEN -C - 16 EXTRA BYTES ARE ADDED AT THE END OF LGULF ARRAY -C - CONTAINING: MM/DD/HHZ YYYY WHICH ARE THE -C - BASE TIME OF THE AFOS GRAPHIC. -C -C OUTPUT ARGUMENT LIST: -C LGULF - CHARACTER*1 77 WORD ARRAY CONTAINING GULF TITLE. -C - BYTES 1 THRU 16 CONTAIN THE GULF TITLE, IE -C - HGT12 00Z05OPTIN . -C - BYTES 17 THRU 36 CONTAIN THE BASE TIME TITLE, IE -C - 12Z MON 03 JUN 1996 . -C - BYTES 37 THRU 61 CONTAIN THE VALID TIME TITLE, IE -C - VALID 00Z WED 05 JUN 1996 . -C - BYTES 62 THRU 77 CONTAIN MM/DD/HHZ YYYY USED -C - WITH AFOS PRODUCTS, IE -C - 06/03/12Z 1996 . -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C -C REMARKS: IF PACKED = .FALSE. THEN TAU IS IN ALL OF ITIMES(1). -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON/PACKRA/JTIME(2),IVLDHR,IVLDAY,IVLDMO,IVLDYR, - 1 IHOUR,IDAY,MONTH,IYR -C -C - COMMON /MEANCON/ MEANFG,LKMEAN,MEANTYP -C - CHARACTER*4 MEANTYP -C - INTEGER MEANFG - LOGICAL LKMEAN -C - CHARACTER*77 LGULF - CHARACTER*50 BLANKS - CHARACTER*28 VALID - CHARACTER*20 FROM - CHARACTER*16 ATIME - CHARACTER*12 CHWORK - CHARACTER*8 CHTEXT - CHARACTER*5 MISSG - CHARACTER*5 MODTAB(47) - CHARACTER*4 CHTYPE - CHARACTER*4 IHDAYW - CHARACTER*4 MONS (12) - CHARACTER*1 IZ - CHARACTER*4 LTIME,LDATE -C -C - INTEGER IYEAR, MONTH, IDAY - INTEGER JDAT(8), IDAT(8) - REAL RINC(5) - INTEGER KTIME - INTEGER MAXMOD - INTEGER MODNUM(47) -C - INTEGER IDT(8) - INTEGER MSKFF - INTEGER MSKTIME - DATA MSKTIME /Z'FFFFFFFF00000000'/ - INTEGER TIMEFG - DATA TIMEFG /Z'FFFF0000'/ -C - LOGICAL AFOS - LOGICAL PACKED -C - DATA BLANKS - 1 /' '/ -C '12345678901234567890123456789012345678901234567890' - DATA VALID /'VALID '/ - DATA FROM /' '/ -C '12345678901234567890' - DATA ATIME /' / / Z '/ -C '1234567890123456' - DATA MISSG /'GM '/ - DATA MODTAB - 1 /'BATRO','NOWAV','TRAJ ', - 2 'SCM ','HOUGH','SNOW ','NGM ', - 3 'GOI ','NOW ','SMG2C','SMG3C','TOVS ','LFM ', - 4 'NMSFC','NHSFC','ECMWF','FNOC ','AFGWC','CRGN ', - 5 'WRGN ','ERGN ','SMG4 ','ROI ','SMG4I','UKMET', - 6 'SCLR ','HCN ','SMT80','QLM ','SBLND','ISENA', - 7 'SFVSB','GMEXW','GAKWV','GFS ','SA126','SM126', - 8 'BCKUP','SMT62','SSI ','NAM80','NAM12','NAM30', - 9 'RUC80','ENSMB','PWAV ','NAM '/ - DATA MONS /'JAN ','FEB ','MAR ','APR ','MAY ', - 1 'JUN ','JUL ','AUG ','SEP ','OCT ', - 2 'NOV ','DEC '/ - DATA IZ /'Z'/ - DATA MAXMOD /47/ - DATA MODNUM /01,10,18,19,22,25,39,43,44,45,46,49,53, - 1 55,56,57,58,59,60,61,62,63,64,65,66,67, - 2 68,69,70,71,72,73,74,75,76,77,78,79,80, - 3 81,83,84,85,86,87,88,89/ -C - LGULF(1:50) = BLANKS(1:50) - LGULF(51:77) = BLANKS(1:27) - IF(PACKED) THEN - ITAU = mova2i(CHWORK(4:4)) !kumar - ELSE -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_ON_COPY (ISCRATCH, CHWORK, 8_8, 1_8) - CALL GBYTE(ISCRATCH,KTIME,0,32) -#else - CALL GBYTE(CHWORK,KTIME,0,32) -#endif - ITAU = KTIME - ENDIF - IF (ITAU .GE. TIMEFG) THEN -C ... TEST FOR NEGATIVE NUMBER - ITAU = IOR(ITAU,MSKTIME) - ENDIF -C - IF (MEANFG.EQ.9) THEN - LTIME(1:4) = CHWORK(5:8) - IDAT=0 - JDAT=0 - RINC=0 - RINC(2)=36 - ICENT=1900 - IDAT(1)=mova2i(LTIME(1:1)) - IF(IDAT(1) .LT. 96) ICENT=2000 - IDAT(1)=IDAT(1)+ICENT - IDAT(2)=mova2i(LTIME(2:2)) - IDAT(3)=mova2i(LTIME(3:3)) - IDAT(5)=mova2i(LTIME(4:4)) - CALL W3MOVDAT(RINC,IDAT,JDAT) - IYEAR = JDAT(1) - MONTH = JDAT(2) - IDAY = JDAT(3) - IHOUR = JDAT(5) - ELSE - IYEAR = mova2i(CHWORK(5:5)) - ICENT = 1900 - IF (IYEAR .LT. 96) ICENT=2000 - IYEAR = ICENT + IYEAR - MONTH = mova2i(CHWORK(6:6)) - IDAY = mova2i(CHWORK(7:7)) - IHOUR = mova2i(CHWORK(8:8)) - ENDIF - - IGEN = mova2i(CHWORK(10:10)) -C - IF (IGEN .EQ. 74) IGEN = 66 -C ..... FOR UKMET - IF (LKMEAN .AND. MEANFG.NE.9) THEN - REWIND 49 - READ(49,FMT='(6X,I4,2I2)') IYEAR, MONTH, IDAY -C print *,' idt=',(idt(i),i=1,8) - IHOUR = 0 - IF (MEANFG.EQ.2.OR.MEANFG.EQ.4) IHOUR = 12 - IGEN = 76 - IF (MEANFG.EQ.3.OR.MEANFG.EQ.4) IGEN = 71 - ENDIF - IF (LKMEAN .AND. MEANFG.EQ.9) IGEN = 76 - - PRINT *, ' IGEN=', IGEN - JTIME(1)= ITAU - PRINT *, 'ICENT=', ICENT - IYR = IYEAR -C - WRITE(6,FMT='('' GULFTL: CALLING UPDATR WITH: TAU ='',I4, - 1 '' HOUR='',I3,'' DAY='',I3,'' MONTH='',I3,'' YEAR='',I5)') - 2 JTIME(1),IHOUR,IDAY,MONTH,IYR -C - CALL UPDATR -C -C MOVE CHTYPE INTO LGULF -C - LGULF(1:3) = CHTYPE(1:3) -C - NUM = 2 - IF(ITAU.GE.100) NUM = 3 -C - CALL BIN2EB(ITAU,CHTEXT,NUM,'A999') -C -C MOVE TAU INTO LGULF -C - IEND = 4 + (NUM - 1) - LGULF(4:IEND) = CHTEXT(1:NUM) -C - CALL BIN2EB(IVLDHR,CHTEXT,2,'A999') -C - LGULF(7:8) = CHTEXT(1:2) -C -C MOVE VALID HR INTO LGULF -C - LGULF(9:9) = IZ - CALL BIN2EB(IVLDAY,CHTEXT,2,'A999') -C -C MOVE VALID DAY INTO LGULF -C - LGULF(10:11) = CHTEXT(1:2) -C - DO 40 J = 1,MAXMOD -C - IF(MODNUM(J).EQ.IGEN) THEN -C -C LOAD GENERATING MODEL NAME INTO LGULF -C - LGULF(12:16) = MODTAB(J)(1:5) - GO TO 70 - ELSE - ENDIF - 40 CONTINUE -C -C CLOUDN'T FIND GENNERATING MODEL IN MODTAB SO CONVERT MODEL -C NUMBER TO ASCII AND LOAD INTO MISSG -C - IF (IGEN.EQ.82) THEN - MISSG(1:3) = 'SSI' -C .... THIS QUICK FIX FOR FINAL 82 - ENDIF -C - CALL BIN2EB(IGEN,CHTEXT,2,'A999') - MISSG(4:5) = CHTEXT(1:2) -C - LGULF(12:16) = MISSG(1:5) -C -C -C - 70 CONTINUE -C - WRITE(6,FMT='('' LGULF='',A)') LGULF(1:16) -C -C NOW BUILD THE BASE TITLE LINE IE. 12Z MON 03 JUN 1996 -C - CALL DAYOWK(IDAY,MONTH,IYR,IDAYWK,IHDAYW) -C -C - CALL BIN2EB(IHOUR,CHTEXT,2,'A999') -C -C -C MOVE BASE HR INTO FROM -C - FROM(1:2) = CHTEXT(1:2) - FROM(3:3) = IZ - FROM(5:8) = IHDAYW(1:4) - CALL BIN2EB(IDAY,CHTEXT,2,'A999') - FROM(9:10) = CHTEXT(1:2) - FROM(12:15) = MONS(MONTH)(1:4) - CALL BIN2EB(IYR,CHTEXT,4,'A999') - FROM(16:19) = CHTEXT(1:4) -C - WRITE(6,FMT='('' FROM='',A)') FROM(1:20) - LGULF(17:36) = FROM(1:20) -C -C CONSTRUCT VALID TIME ARRAY IE. VALID 00Z THU 16 MAR 1989 -C - CALL DAYOWK(IVLDAY,IVLDMO,IVLDYR,IDAYWK,IHDAYW) - VALID(7:09) = LGULF(7:09) - VALID(11:13) = IHDAYW(1:4) - CALL BIN2EB(IVLDAY,CHTEXT,2,'A999') - VALID(15:16) = CHTEXT(1:2) - VALID(18:21) = MONS(IVLDMO)(1:4) - CALL BIN2EB(IVLDYR,CHTEXT,4,'A999') - VALID(22:25) = CHTEXT(1:4) - WRITE(6,FMT='('' VALID='',A)') VALID(1:28) - LGULF(37:64) = VALID(1:28) - IF(AFOS) THEN -C -C CONSTRUCT AFOS BASE TIME ARRAY IE. 03/15/00Z 1989 -C - CALL BIN2EB(MONTH,CHTEXT,2,'A999') - ATIME(1:2) = CHTEXT(1:2) - ATIME(4:5) = LGULF(25:26) - ATIME(7:9) = LGULF(17:19) - ATIME(13:16) = LGULF(32:35) - LGULF(62:77) = ATIME(1:16) - WRITE(6,FMT='('' ATIME FOR AFOS='',A)') LGULF(62:77) - ELSE - ENDIF - RETURN - END diff --git a/util/sorc/faxmakr.fd/indeff.f b/util/sorc/faxmakr.fd/indeff.f deleted file mode 100755 index ff7a3f274e..0000000000 --- a/util/sorc/faxmakr.fd/indeff.f +++ /dev/null @@ -1,152 +0,0 @@ - SUBROUTINE INDEFF(FLDA,IBIG,JBIG,ISML,JSML,ISKP,JSKP,IFAC,XINDEF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: INDEFF PLACE INDEFINATES IS THE CORNERS OF FIELD -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PLACE INDEFINATES IN THE DESIRED CORNERS OF THE FIELD TO -C ELIMINATE UNIMPORTANT CONTOURS ON THE FOUR CORNERS. -C -C PROGRAM HISTORY LOG: -C 79-07-03 ORIGINAL AUTHOR HENRICHSEN -C 89-11-27 HENRICHSEN ADD NEW DOCBLOCK -C 92-07-07 HNERICHSEN CONVERT TO FORTRAN 77 -C 94-05-16 LUKE LIN MODIFY TO FIT THE PROGRAM -C 94-12-22 LUKE LIN CONVERT IT TO CFT-77. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL INDEFF(FLDA,IBIG,JBIG,ISML,JSML,ISKP,JSKP,IFAC,XINDEF) -C INPUT ARGUMENT LIST: -C IBIG - MAX SIZE I OF THE FIELD. -C JBIG - MAX SIZE J OF THE FIELD. -C ISML - SMALL SIZE I OF THE FIELD. -C JSML - SMALL SIZE J OF THE FIELD. -C ISKP - SKIP I OF THE FIELD. -C JSKP - SKIP J OF THE FIELD. -C IFAC - IFAC IS THE NUMBER OF GRID UNITS TO COME IN FROM -C - EACH CORNER AS END POINTS OF TRIANGLE TO FILL WITH -C - INDEFFINATES............. -C -C OUTPUT ARGUMENT LIST: -C FLDA - UNPACKED DATA FIELD WITH INDEFINATES -C -C REMARKS: NONE -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - REAL FLDA(IBIG,JBIG) - REAL XINDEF -C -C -C . . . SET LIMITS OF LOOP TO DO LOWER LEFT CORNER ............ -C - PRINT 98, xindef - 98 format(1x,' in indef, xindef=', 2x, z16) -C - print *, 'xindef=', xindef - print *,' big/sml=', ibig,jbig,isml,jsml - print *,' skp/fax=', iskp,jskp,ifac - JSTART = JSKP + 1 - JEND = JSKP + IFAC + 1 - IEND = ISKP + IFAC + 1 - ISTART = ISKP + 1 -C - DO 40 J=JSTART,JEND - DO 30 I=ISTART,IEND - FLDA(I,J) = XINDEF - 30 CONTINUE - IEND = IEND -1 - 40 CONTINUE -C . . . DO LOWER RIGHT CORNER . . .. -C - ISTART = ISML + ISKP - IFAC - IEND = ISML + ISKP - DO 55 J=JSTART,JEND - DO 50 I=ISTART,IEND - FLDA(I,J) = XINDEF - 50 CONTINUE - ISTART = ISTART + 1 - 55 CONTINUE -C -C . . . DO UPPER LEFT CORNER . . . . -C - ISTART = 1 + ISKP - IEND = 1 + ISKP - JEND = JSML + JSKP - JSTART = JSML - IFAC + JSKP - DO 75 J=JSTART,JEND - DO 70 I=ISTART,IEND - FLDA(I,J) = XINDEF - 70 CONTINUE - IEND = IEND + 1 - 75 CONTINUE -C -C . . . DO UPPER RIGHT CORNER . . . . . . . . . . . ...... -C - ISTART = ISML + ISKP - IEND = ISML + ISKP - JEND = JSML + JSKP - JSTART = JSML - IFAC + JSKP - DO 90 J=JSTART,JEND - DO 80 I=ISTART,IEND - FLDA(I,J) = XINDEF - 80 CONTINUE - ISTART = ISTART - 1 - 90 CONTINUE -C -C...... DO BOTTOM PART -C - ISTART = 1 - IEND = IBIG - JSTART = 1 - JEND = JSKP - DO 110 J=JSTART, JEND - DO 100 I=ISTART, IEND - FLDA(I,J) = XINDEF - 100 CONTINUE - 110 CONTINUE -C -C...... DO UPPER PART -C - ISTART = 1 - IEND = IBIG - JSTART = JSKP + JSML + 1 - IF (JSTART .LE. JBIG) THEN - JEND = JBIG - DO 130 J=JSTART, JEND - DO 120 I=ISTART, IEND - FLDA(I,J) = XINDEF - 120 CONTINUE - 130 CONTINUE - ENDIF -C -C...... DO LEFT-SIDE PORTION -C - ISTART = 1 - IEND = ISKP - JSTART = 1 - JEND = JBIG - DO 150 I=ISTART, IEND - DO 140 J=ISTART, JEND - FLDA(I,J) = XINDEF - 140 CONTINUE - 150 CONTINUE -C -C...... DO RIGHT-SIDE PORTION -C - ISTART = ISKP + ISML + 1 - IF (ISTART .LE. IBIG) THEN - IEND = IBIG - JSTART = 1 - JEND = JBIG - DO 170 I=ISTART, IEND - DO 160 J=JSTART, JEND - FLDA(I,J) = XINDEF - 160 CONTINUE - 170 CONTINUE - ENDIF - RETURN - END diff --git a/util/sorc/faxmakr.fd/indfsea.f b/util/sorc/faxmakr.fd/indfsea.f deleted file mode 100755 index efcdf2e15a..0000000000 --- a/util/sorc/faxmakr.fd/indfsea.f +++ /dev/null @@ -1,178 +0,0 @@ - SUBROUTINE INDFSEA(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: INDFSEA TO INDEF THE OCEAN AREA BY A LAND-SEA FLD -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO INDEF THE OCEAN AREA BY A LAND-SEA FLD. -C -C PROGRAM HISTORY LOG: -C 97-04-22 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ADDED A BLOCK DATA. -C -C USAGE: CALL INDFSEA(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C INPUT ARGUMENTS: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C IBIG - I-DIMENSION OF BIGFLD. -C JBIG - J-DIMENSION OF BIGFLD. -C IDIM - I-DIMENSION OF THE ORIGINAL SMLFLD. -C JDIM - J-DIMENSION OF THE ORIGINAL SMLFLD. -C -C OUTPUT ARGUMENT LIST: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C - COMMON/SEA/ SAN(53,57) - INTEGER SAN -C INTEGER XAN(53,57) -C INTEGER ZAN(53,57) -C - INTEGER LAN(209,225) -C INTEGER LAN(31,21) -C - REAL FLDIN(IBIG,JBIG) - REAL XINDEF -C -C DATA ISKIP /15/ -C DATA JSKIP / 8/ -C DATA ISKIP /16/ -C DATA JSKIP / 7/ -C DATA XINDEF /-1.0E2465 / - DATA LAN - 1 /209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 2 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 3 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 4 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 5 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 6 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 7 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 8 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 9 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - A 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - B 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - x 160*0,7*1,42*0, 158*0,10*1,41*0, 157*0,12*1,40*0, - x 156*0,14*1,39*0, 156*0,14*1,39*0, 156*0,13*1,40*0, - x 156*0,12*1,41*0, 156*0,12*1,41*0, 156*0,12*1,41*0, !119 - x 71*0, 97*1,41*0, 71*0, 97*1,41*0, 71*0, 98*1,40*0, - x 71*0, 99*1,39*0, 71*0,100*1,38*0, 71*0,100*1,38*0, - x 71*0, 99*1,39*0, 71*0, 98*1,40*0, 70*0, 98*1,41*0, !128 - x 69*0, 99*1,41*0, 69*0, 98*1,42*0, 69*0, 98*1,42*0, - x 69*0, 97*1,43*0, 68*0, 98*1,43*0, 68*0, 97*1,44*0, - x 68*0, 97*1,44*0, 67*0, 99*1,43*0, 67*0, 99*1,43*0, !137 - x 67*0,100*1,42*0, 67*0,100*1,42*0, 67*0,101*1,41*0, - x 67*0,101*1,41*0, 67*0,101*1,41*0, 67*0,102*1,40*0, - x 67*0,102*1,40*0, 67*0,103*1,39*0, 67*0,103*1,39*0, !146 - x 67*0,102*1,40*0, 67*0,102*1,40*0, 67*0,101*1,41*0, - x 67*0,101*1,41*0, 67*0,100*1,42*0, 67*0,100*1,42*0, - x 68*0, 98*1,43*0, 68*0, 98*1,43*0, 69*0, 96*1,44*0, !155 - x 69*0, 96*1,44*0, 69*0, 95*1,45*0, 69*0, 95*1,45*0, - x 69*0, 94*1,46*0, 70*0, 93*1,46*0, 70*0, 94*1,45*0, - x 71*0, 93*1,45*0, 72*0, 93*1,44*0, 73*0, 92*1,44*0, !164 - x 73*0, 93*1,43*0, 74*0, 93*1,42*0, 74*0, 94*1,41*0, - x 75*0, 94*1,40*0, 76*0, 94*1,39*0, 77*0, 94*1,38*0, - x 78*0, 94*1,37*0, !171 - x 79*0, 94*1,36*0, 80*0, 68*1,13*0,12*1,36*0, - x 81*0, 66*1,14*0,12*1,36*0, 82*0, 64*1,15*0,11*1,36*0, - x 83*0, 63*1,16*0,11*1,36*0, 102*0,35*1,26*0,10*1,36*0, - x 102*0,31*1,31*0, 9*1,36*0, 102*0,30*1,32*0, 8*1,37*0, !179 - x 103*0,28*1,78*0, 104*0,26*1,79*0, 115*0,14*1,80*0, - x 116*0,13*1,80*0, 116*0,13*1,80*0, 117*0,12*1,80*0, !185 - x 117*0,12*1,80*0, 118*0,11*1,80*0, 118*0,11*1,80*0, - 2 209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 3 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 4 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 5 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 6 1*0/ ! This poor guy was left out ..... kumar -C - PRINT *, ' IDIM=', IDIM, ' JDIM=',JDIM - PRINT *, ' IBIG=', IBIG, ' JBIG=',JBIG -C - DO I=1, IBIG - DO J=1, JBIG - IF( LAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO -C -C DO J=1,225 -C PRINT *,' J=', J -C WRITE(*,140)(NINT(FLDIN(M,J)),M=1,209) -C ENDDO -C140 format( 5(1x,30(f1.0, 1x),/), 27(f1.0,1x),/) -C140 format( 5(40(1x, i1),/), 9( 1x,i1),/) -C -C -C DO I=1, 53 -C DO J=1, 57 -C XAN(I,J) = 0 -C SAN(I,J) = 0 -C ENDDO -C ENDDO -C -C DO I=1, 53 -C IK= (I-1)*4+1 -C DO J=1, 57 -C JK= (J-1)*4+1 -C INUM = 0 -C DO M= IK, IK+3 -C DO N=JK, JK+3 -C INUM=INUM+LAN(M,N) -C ENDDO -C ENDDO -C IF (INUM.GT.5) XAN(I,J)=1 -C ENDDO -C ENDDO -C -C -C CALL UPDOWN(XAN,ZAN,53,57) -C -C DO I=2,53 -C DO J=1,55 -C SAN(I,J) = ZAN(I-1, J+2) -C ENDDO -C ENDDO -C - DO J=1,57 - PRINT *,' J=', J - WRITE(*,150)(SAN(M,J),M=1,53) - ENDDO - 150 format( 3(10(1x, i1),3x),/, 2(10( 1x,i1),3x),3(1x,i1),/) -C - RETURN - END -ckumar -ckumar####################block data indfsea_data -ckumar - BLOCK DATA INDFSEA_DATA -C - COMMON/SEA/ SAN(53,57) - INTEGER SAN -C - DATA SAN / - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 29*0, 4*1, 8*0, 3*1, 9*0, 29*0, 4*1, 8*0, 3*1, 9*0, - X 28*0, 5*1, 7*0, 4*1, 9*0, 28*0, 5*1, 7*0, 4*1, 9*0, !10 - X 27*0, 7*1, 6*1, 4*1, 9*0, 21*0, 17*1, 3*0, 3*1, 9*0, - X 20*0,24*1, 9*0, 19*0, 24*1, 10*0, !14 - X 19*0,23*1, 11*0, 18*0, 24*1, 11*0, - X 18*0,24*1, 11*0, 18*0, 25*1, 10*0, !18 - X 18*0,25*1, 10*0, 18*0, 26*1, 9*0, - X 18*0,26*1, 9*0, 18*0, 26*1, 9*0, !22 - X 18*0,26*1, 9*0, 18*0, 25*1, 10*0, !24 - X 19*0,24*1, 10*0, 19*0, 24*1, 10*0, - X 19*0,25*1, 9*0, 40*0, 3*1, 10*0, !28 - X 40*0, 4*1, 9*0, 41*0, 2*1, 10*0, !30 - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0/ -C - END BLOCK DATA INDFSEA_DATA diff --git a/util/sorc/faxmakr.fd/indfslfm.f b/util/sorc/faxmakr.fd/indfslfm.f deleted file mode 100755 index 7facaf9239..0000000000 --- a/util/sorc/faxmakr.fd/indfslfm.f +++ /dev/null @@ -1,166 +0,0 @@ - SUBROUTINE INDFSLFM(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: INDFSLFM TO SET UNDEFINED ON POLE AREA FOR TYPE 5 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO SET UNDEFINED ON POLE AREA FOR TYPE 5 ACCORDING TO INPUT -C BIT MAP FROM GETGB. -C -C PROGRAM HISTORY LOG: -C 97-07-11 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C 1999-12-20 KRISHNA KUMAR KBMS VALUE SHOULD BE SET TO LOGICAL*1 -C -C USAGE: CALL INDFSLFM(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C INPUT ARGUMENTS: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C IBIG - I-DIMENSION OF BIGFLD. -C JBIG - J-DIMENSION OF BIGFLD. -C IDIM - I-DIMENSION OF THE ORIGINAL SMLFLD. -C JDIM - J-DIMENSION OF THE ORIGINAL SMLFLD. -C -C OUTPUT ARGUMENT LIST: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C - COMMON /BITM/ KBMS(66000) - LOGICAL*1 KBMS -C - COMMON/SEA/ SAN(53,57) - INTEGER SAN -C - INTEGER ZAN(3021) - INTEGER ZSAN(53,57) - EQUIVALENCE (ZAN(1),ZSAN(1,1)) -C - INTEGER LAN(209,225) -C - REAL FLDIN(IBIG,JBIG) - REAL XINDEF -C -C DATA LAN -C 1 /209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, -C 2 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, -C 3 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, -C 4 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, -C 1 209*1,209*1, -C 2 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 3 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 4 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 5 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 6 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 7 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 8 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 9 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C A 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 1 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 2 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 3 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 4 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 5 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 6 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 7 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 8 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 9 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C A 209*1,209*1,209*1/ -C -C DATA SAN / -C X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*1, 53*1, -C X 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, -C X 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, -C X 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, -C X 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, -C X 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1/ -C - PRINT *, ' IN SUBROUTINE - INDFSLFM FOR TYPE 5' - PRINT *, ' IDIM=', IDIM, ' JDIM=',JDIM - PRINT *, ' IBIG=', IBIG, ' JBIG=',JBIG -C - DO I=1, 3021 - IF (KBMS(I)) THEN - ZAN(I) = 1 - ELSE - ZAN(I) = 0 - ENDIF - ENDDO - print *, "ipgm indslfm, ichk=1" -C .... LOAD THE BIT MAP - DO I=1, 53 - DO J=1, 57 - SAN(I,J) = 0 - ENDDO - ENDDO - print *, "ipgm indslfm, ichk=2" -C ... INITIALIZE THE LABEL GRID - DO I=1, 53 - DO J=2, 57 - IF (ZSAN(I,J) .EQ. 1) SAN(I,J-1) = 1 - ENDDO - ENDDO - print *, "ipgm indslfm, ichk=3" -C .... SET THE BIT MAP ACCORDINGLY - DO I=1, IBIG - DO J=1, JBIG - LAN(I,J) = 1 - ENDDO - ENDDO - print *, "ipgm indslfm, ichk=4" -C ...... INITIALIZE THE CONTOUR GRID -C - DO I=1, 53 - DO J=1, 57 - IF (ZSAN(I,J) .EQ.0) THEN - IIS = 4 * (I -1) -6 - IF (IIS .LT. 1) IIS = 1 - IIE = 4 * I + 6 - IF (IIE .GT. 209) IIE = 209 - IJE = 228 - (4 * (J -1) +1)+5 - IF (IJE .GT. 225) IJE = 225 - IJS = 228 - (4 * J) -5 - IF (IJS .LT. 1) IJS = 1 -C PRINT *, ' UNDEFINE: I=', I,' J=',J -C PRINT *, ' IIS=', IIS,' IIE=',IIE, ' IJS=',IJS,' IJE=',IJE - DO IK= IIS, IIE - DO JL=IJS, IJE - LAN(IK,JL) = 0 - ENDDO - ENDDO - ENDIF - ENDDO - ENDDO - print *, "ipgm indslfm, ichk=5" -C .... LOAD THE BIT MAP - DO I=1, IBIG - DO J=1, JBIG - IF( LAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO - print *, "ipgm indslfm, ichk=5" -C .... SET UNDEFINED ON THE INPUT GRID ACCORDING TO BIT MAP -C DO J=1,225 -C PRINT *,' J=', J -C WRITE(*,140)(NINT(FLDIN(M,J)),M=1,209) -C ENDDO -C140 format( 5(1x,30(f1.0, 1x),/), 27(f1.0,1x),/) -C140 format( 5(40(1x, i1),/), 9( 1x,i1),/) -C -C -C DO J=1,57 -C PRINT *,' J=', J -C WRITE(*,150)(SAN(M,J),M=1,53) -C ENDDO - 150 format( 3(10(1x, i1),3x),/, 2(10( 1x,i1),3x),3(1x,i1),/) -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/indftraj.f b/util/sorc/faxmakr.fd/indftraj.f deleted file mode 100755 index 6a79fa08d9..0000000000 --- a/util/sorc/faxmakr.fd/indftraj.f +++ /dev/null @@ -1,145 +0,0 @@ - SUBROUTINE INDFTRAJ(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: INDFTRAJ TO INDEF THE OCEAN AREA BY A LAND-SEA FLD -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO INDEF THE OCEAN AREA BY A LAND-SEA FLD TRAJECTORY. -C -C PROGRAM HISTORY LOG: -C 97-06-16 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL INDFTRAJ(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C INPUT ARGUMENTS: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C IBIG - I-DIMENSION OF BIGFLD. -C JBIG - J-DIMENSION OF BIGFLD. -C IDIM - I-DIMENSION OF THE ORIGINAL SMLFLD. -C JDIM - J-DIMENSION OF THE ORIGINAL SMLFLD. -C -C OUTPUT ARGUMENT LIST: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C - COMMON/TRAJ4/ ZAN(53,57) - INTEGER ZAN - INTEGER TRAJLAN(53,57) - INTEGER TRAJ48(53,57) -C - INTEGER LAN(209,225) -C - REAL FLDIN(IBIG,JBIG) - REAL XINDEF -C - DATA LAN - 1 /209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 2 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 3 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 4 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 5 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 6 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 7 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 8 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 9 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - A 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 1 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 2 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 3 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 4 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 5 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 6 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 7 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 8 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 9 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - A 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 1 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 2 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 3 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 4 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 5 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 6 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 7 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 8 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 9 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - A 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 1 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 2 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 1 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 2 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 3 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 4 209*0,209*0,209*0,209*0,209*0,209*0,209*0/ -C - DATA TRAJLAN/ - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0/ -C - DATA TRAJ48 / - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, - X 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, - X 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, - X 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, - X 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0/ -C - PRINT *, ' IDIM=', IDIM, ' JDIM=',JDIM - PRINT *, ' IBIG=', IBIG, ' JBIG=',JBIG -C - DO I=1, IBIG - DO J=1, JBIG - IF( LAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO -C -C DO J=1,225 -C PRINT *,' J=', J -C WRITE(*,140)(NINT(FLDIN(M,J)),M=1,209) -C ENDDO -C140 format( 5(1x,30(f1.0, 1x),/), 27(f1.0,1x),/) -C140 format( 5(40(1x, i1),/), 9( 1x,i1),/) -C -C - IF (KEYIDX.EQ.48) THEN - DO J=1,57 - DO I =1,53 - ZAN(I,J) =TRAJ48(I,J) - ENDDO - ENDDO - ELSE - DO J=1,57 -C PRINT *,' J=', J -C WRITE(*,150)(ZAN(M,J),M=1,53) - DO I =1,53 - ZAN(I,J) =TRAJLAN(I,J) - ENDDO - ENDDO - ENDIF - 150 format( 3(10(1x, i1),3x),/, 2(10( 1x,i1),3x),3(1x,i1),/) -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/iw3getv.F b/util/sorc/faxmakr.fd/iw3getv.F deleted file mode 100755 index 8a840bc8ee..0000000000 --- a/util/sorc/faxmakr.fd/iw3getv.F +++ /dev/null @@ -1,1053 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif - SUBROUTINE IW3GETV(LUGRBIX, LUGRB, LABEL, FLD, MTITLE, IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: IW3GETV GET AND UNPACK CRAY GRIB FILES. -C AUTHOR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GET AND UNPACK CRAY GRIB FILES FROM AN OFFICE 84 6 WORD ID. -C PLEASE READ THE REMARKS BEFORE USING IT. -C -C HISTORY LOG: -C 95-10-04 LUKE LIN -C 95-10-31 LUKE LIN MODIFY FOR TESTING DIFFERENT GRID TYPE. -C 95-11-27 LUKE LIN ADD AN OPTION FOR NOT TEST FCST HOUR -- CAC 96H/C -C AND MODIFY TO READ RGL(NGM) MODEL. -C 96-01-30 LUKE LIN MODIFY TO CONVERT FROM 1 DEGREE TO 65*65 BY LINEAR. -C 96-02-14 LUKE LIN MODIFY FOR NGM BOUNDARY LAYER RH CHART. -C 96-02-23 LUKE LIN MODIFY FOR NGM SURFACE TO 500 MB LIFTED INDEX. -C 96-02-26 LUKE LIN MODIFY FOR AVMER OR AVPOLAR AND OUTPUT WILL BE -C EITHER 2.5 OR 5.0 DEGREE DEPENDING ON OPTION -C 96-03-07 LUKE LIN MODIFY FOR NGM SUPER C GRID. -C 96-03-29 LUKE LIN MODIFY FOR AVPOLAR 2.5 DEGREE TO GET NH. -C 96-04-25 LUKE LIN FIX A BUG FOR AVTYPE. -C 96-05-31 LUKE LIN MODIFY FOR TYPE 29 NH 2.5 AND TYPE 30 SH 2.5. -C 96-06-20 LUKE LIN CHANGE FOR NAM LIFTED INDEX -C 96-07-05 LUKE LIN ADD GFS 129*129 LOGIC. -C 96-07-09 LUKE LIN ADD IPOLATE OPTIONS. -C 96-10-01 LUKE LIN ADD TYPE 08, 116X44, AND TYPE 53, 117X51. -C 97-01-08 LUKE LIN ADD TYPE 05, 53X57. -C 97-01-15 LUKE LIN ADD FOR MODEL FINAL. -C 97-03-12 LUKE LIN ADD FOR ECMWF, TDL PROB. THUNER/SERVERE WX, -C GFS 6-10 DAY MEAN DN, UKMET -C 97-03-21 LUKE LIN ADD FOR GFS ANOMALY THICKNESS. -C 97-06-03 LUKE LIN MODIFY FOR NAM BOUNDARY LAYER FIELDS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. MODIFIED TO READ 700 MB UKMET -C REL HUM (RH) DATA. -C 1999-12-20 KRISHNA KUMAR KBMS VALUES SHOULD BE SET TO LOGICAL*1 -C -C INPUT ARGUMENTS: -C LUGRBIX - AN UNIT NUMBER POINTS TO ONE DEGREE GRIB INDEX FILE. -C LUGRB - AN UNIT NUMBER POINTS TO ONE DEGREE GRIB FILE. SEE -C REMARK. -C LABEL - 12 WORDS LABEL ON INPUT. WORDS 1-5 SHOULD CONTAIN -C LABEL ID OF DESIRED FIELD FLD. -C -C OUTPUT ARGEMENTS: -C FLD -- BUFF CONTAINS UNPACK FIELD. -C LABEL -- ON OUTPUT THE FULL 12 WORDS OF THE LABEL WILL CONTAIN -C APPROPRIATE VALUES. -C MTITL -- CHARACTER*132 MAP TITLE FROM INDEX FILE. -C (1:86) IS MAP TITLE, FOLLOWINGS ARE MAP ID. -C IERR -- RETURN STATUS -C IRETUR - RETURN CONDITION; -C 0 - ALL OK -C 1 - W3FP13/GRIB BLOCK 0 NOT CORRECT -C 2 - W3FP13/LENGTH OF PDS NOT CORRECT -C 3 - W3FP13/COULD NOT MATCH TYPE INDICATOR -C 4 - W3FP13/GRID TYPE NOT IN TABLES -C 5 - W3FP13/COULD NOT MATCH TYPE LEVEL -C 6 - W3FP13/COULD NOT INTERPRET ORIGINATOR OF CODE -C 7 - GRIB TYPE ERROR -- UNKNOWN GRIB TYPE. -C 10 - UNCOGNIZE DATA TYPE FROM LABEL -C 11 - W3FT32/ MAPIN NOT RECOGNIZED -C 12 - W3FT32/ MAPOUT NOT RECOGNIZED -C 13 - W3FT32/ PARTICULAR POLA MAPOUT NOT RECOGNIZED -C 14 - W3FT32/ PARTICULAR LOLA MAPOUT NOT RECOGNIZED -C 15 - W3FT32/ PARTICULAR LOLA MAPIN NOT RECOGNIZED -C 16 - W3FT32/ PARTICULAR POLA MAPOUT NOT RECOGNIZED -C 17 - W3FT32/ PARTICULAR LOLA MAPIN NOT RECOGNIZED -C 18 - W3FT32/ PARTICULAR LOLA MAPOUT NOT RECOGNIZED -C 96 - GETGB/ERROR READING INDEX FILE -C 97 - GETGB/ERROR READING GRIB FILE -C 98 - GETGB/NUMBER OF DATA POINTS GREATER THAN JF -C 99 - GETGB/REQUEST NOT FOUND -C -1 - GETGB/OTHER W3FI63 GRIB UNPACKER RETURN CODE -C 101 - W3FP11/NON-FATAL ERROR, MTITLE NOT CORRECT -C -C USAGE: -C INPUT FILES: -C UNIT LUGRBIX - INPUT ONE DEGREE GRIB INDEX FILE. SEE REMARK. -C UNIT LUGRB - INPUT ONE DEGREE GRIB FILE. SEE REMARK. -C -C OUTPUT FILES: -C FT06F001 - PRINT OUTPUT (STANDARD FORTRAN OUTPUT FILE) -C -C SUBPROGRAMS CALLED: -C UNIQUE: NONE -C -C LIBRARY: -C SPECIAL - NONE -C W3LIB - W3FP11 , W3FP13, GETGB , GBYTES , W3FM08 -C - W3FI63 , W3FT43V,W3FT32, SBYTESCCS -C -C REMARKS: -C ***** VERY IMPORTANT ****** -C 1. ONLY DEAL WITH INPUT DATA TYPE 08, 26, 27 , 29, 30, 53, 101, 104. -C OTHER DATA TYPE MAY HAVE FATAL ERROR RETURN AT PRESENT TIME. -C 2. CONCERNING NAM CHARTS, THE 6TH WORD ID SHOULD BE '00000127'. -C 3. CONCERNING GFS CHARTS, THE 6TH WORD ID SHOULD BE '0000084D'. -C 4. FOR NO FORECAST HOUR CHECKING SUCH AS CAC 96H/C, THE THIRD BYTE -C OF THE 6TH WORD ID SHOULD BE '96'. -C -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C -C .... THIS SET IS FOR UOR_DOT - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI - LOGICAL UORFG -C -C - PARAMETER (IPTS=65160,II=360,JJ=181,MM=361) - PARAMETER (IPTS2=10512,II2=144,JJ2=73) - PARAMETER (MXSIZE=66000) - PARAMETER (MXSIZ2=MXSIZE*2) - PARAMETER (IIK=289,JJK=145,NPTS=IIK*JJK) - PARAMETER (IJK=145,LJK=73,MPTS=IJK*LJK) -C - parameter(ji=360*181,ig27=27,jo27=65*65,jo27_129=129*129) - parameter(ig26=6) - parameter(ig28=28) - parameter(ig08=08,jo08=116*44) - parameter(ig53=53,jo53=117*51) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_27(jo27),rlon_27(jo27) - equivalence( rlat_27(1), rlat_03(1) ) - equivalence( rlon_27(1), rlon_03(1) ) - logical lo_27(jo27) - equivalence( lo_27(1), lo_03(1) ) -C - real rlat_27_129(jo27_129),rlon_27_129(jo27_129) - equivalence( rlat_27_129(1), rlat_03(1) ) - equivalence( rlon_27_129(1), rlon_03(1) ) - logical lo_27_129(jo27_129) - equivalence( lo_27_129(1), lo_03(1) ) -C - real rlat_08(jo08),rlon_08(jo08) - equivalence( rlat_08(1), rlat_03(1) ) - equivalence( rlon_08(1), rlon_03(1) ) - logical lo_08(jo08) - equivalence( lo_08(1), lo_03(1) ) -C - real rlat_53(jo53),rlon_53(jo53) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(jo53) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - COMMON /PDSCOM/ IFWPDS - INTEGER IFWPDS(27) - - INTEGER KGDSO(22) - CHARACTER GDSO(42) - INTEGER LENGDS - REAL DIF,SMLNO -C -C - INTEGER LUGI,LUGRBIX - INTEGER LUGB,LUGRB - INTEGER LABEL(12) - REAL FLD(*) - REAL B129(16900) - CHARACTER * 132 MTITLE - INTEGER IERR - INTEGER IRET - INTEGER ITAU -C - REAL C(MXSIZE) - COMMON /BITM/ KBMS(66000) - LOGICAL*1 KBMS -C - REAL CC(II,JJ) - REAL CC2(II2,JJ2) - REAL D(MXSIZE) - REAL DD(361,181) - REAL D2(MXSIZE) - REAL DD2(145,73) - REAL DD2N(145,37) - REAL DD2N1(5365) - REAL EE(4225) - REAL FF(4225) - REAL BLOLA(NPTS), CLOLA(MPTS) - REAL GG(73,37) - REAL GG2(2701) -C - INTEGER IGRIB(16500) - CHARACTER * 1 GRIB(MXSIZ2) -C - INTEGER IPDS(4) - INTEGER JPDS(4) - INTEGER JGDS(100) - INTEGER MPDS(25) - INTEGER KGDS(100) - INTEGER KPDS(25) - CHARACTER * 1 PDS(28) - CHARACTER * 1 PDSL(28) -C -C - CHARACTER*1 CTEMP(8) - INTEGER ITEMP - INTEGER NTEMP -C - INTEGER LIDREC(6) - CHARACTER*8 CGRIB - INTEGER IMODE -C - INTEGER LABELP(6) - CHARACTER*1 CLABELP(48) - EQUIVALENCE (LABELP(1),CLABELP(1)) -C - CHARACTER*1 IFLAG - CHARACTER*1 IDPDSC(28) - INTEGER*8 IDPDS(4) - INTEGER MODELNH - INTEGER SFCMEANRH - INTEGER MSK1, MSK2, MSK3, MSK4 - INTEGER MSK2F -C - INTEGER MSKNH, MSKNGM, MSK25, MSKFNL, MSKTRAJ - INTEGER TRAJVD - INTEGER ITYPE, IMODEL, FLAG - INTEGER CAC96HC - INTEGER GFS97HC - INTEGER GFS98TK - INTEGER BLRHHDS - INTEGER BLRHGRB - INTEGER MSKFFFF - INTEGER MSK0FFF - INTEGER LFTFLG - INTEGER AVPOLRV - INTEGER AVTYPE - INTEGER ETAMOD - INTEGER ETABOUND - INTEGER MSKECMWF - DATA MSKECMWF /Z'000000000000004B'/ - INTEGER MSKTHUND - DATA MSKTHUND /Z'00000000000000C1'/ - INTEGER MSKUK - DATA MSKUK /Z'000000000000004A'/ - INTEGER MSKUK1 - DATA MSKUK1 /Z'000000000000007D'/ -C -C MSKUK1 HAS BEEN SPECIFICALLY DEFINED TO PLOT 700 MB REL HUM -C WITH UK MET DATA -C - SAVE -C - EQUIVALENCE (C(1),CC(1,1),CC2(1,1)) - EQUIVALENCE (D(1),DD(1,1)) - EQUIVALENCE (D2(1),DD2(1,1)) - EQUIVALENCE (DD2N1(1),DD2N(1,1)) - EQUIVALENCE (GRIB(1),IGRIB(1)) - EQUIVALENCE (IPDS(1),PDS(1)) - EQUIVALENCE (JPDS(1),PDSL(1),IGRIB(2)) - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (IDPDSC(1),IDPDS(1)) - EQUIVALENCE (GG2(1),GG(1,1)) -C - DATA MODELNH /Z'00000000034E0000'/ - DATA SFCMEANRH /Z'0000000005809100'/ - DATA MSK1 /Z'00000000FFFFFF00'/ - DATA MSK2 /Z'00000000000000FF'/ - DATA MSK3 /Z'000000000000FFFF'/ - DATA MSK4 /Z'0000000000FF0000'/ - DATA MSKNH /Z'000000000000084D'/ - DATA MSKNGM /Z'0000000000000127'/ - DATA MSKTRAJ /Z'00000000000000C0'/ - DATA TRAJVD /Z'0290000000000000'/ - DATA MSKFNL /Z'0000000000000052'/ - DATA MSK25 /Z'0000000000000A87'/ - DATA CAC96HC /Z'0000000000960000'/ - DATA GFS97HC /Z'0000000000970000'/ - DATA GFS98TK /Z'0000000000980000'/ - DATA BLRHHDS /Z'346C006400000000'/ - DATA BLRHGRB /Z'346B265F00000000'/ - DATA MSKFFFF /Z'FFFFFFFF00000000'/ - DATA MSK0FFF /Z'00FFFFFF00000000'/ - DATA LFTFLG /Z'8365326400000000'/ - DATA AVPOLRV /Z'0000000000990000'/ - DATA ETAMOD /Z'0000000000800000'/ - DATA ETABOUND /Z'006C616400000000'/ - DATA AVTYPE / 130 / - DATA MSK2F /Z'FFFF000000000000'/ -C -C*********************************************************************** -C -C - IRET = 0 - IERR = 0 - LUGI = LUGRBIX - LUGB = LUGRB -C - WRITE(6,224)(LABEL(I),I=1,12) -C - ITYPE = IAND(LABEL(5),MSK2) - IFCSTHR = IAND(LABEL(1),MSK2) - PRINT *, ' ITYPE=', ITYPE - IMODEL = IAND(LABEL(6),MSK3) - FLAG = IAND(LABEL(6),MSK4) -C -C if (itype .eq. avtype) then -C print *, ' got a avpolrv or avmerv data type....' -C endif -C - IF (FLAG.EQ.AVPOLRV .OR. FLAG.EQ.ETAMOD) THEN - LABEL(6) = IAND(LABEL(6),MSK3) - ENDIF -C - IF (IMODEL .EQ. MSKNH) THEN - LABEL(7) = 0 - LABEL(8) = MODELNH - IF (FLAG .NE. 0) LABEL(6) = MSKNH - ELSE IF (IMODEL .EQ. MSKNGM) THEN - LABEL(6) = 0 - LABEL(7) = 0 - LABEL(8) = 39 - ELSE IF (IMODEL .EQ. MSKFNL) THEN - LABEL(6) = 0 - LABEL(7) = 0 - ELSE IF (IMODEL .EQ. MSK25) THEN - LABEL(7) = 0 - LABEL(8) = MODELNH - IF (FLAG .NE. 0) LABEL(6) = MSK25 - ENDIF -C -#if defined (_LITTLE_ENDIAN) - CALL SBYTESCCS(LABELP,LABEL,0,32,0,8) -#else - CALL SBYTES(LABELP,LABEL,0,32,0,8) -#endif -C ..... PACK 8-WORD ID TO 4-WORD CRAY ID - IFLAG = CHAR(128) -C .... 128 FOR GDS, 64 FOR BITMAP, 192 FOR BOTH - ICENT = 20 - ISCALE = 0 - CALL W3FP12(LABELP, IFLAG, IDPDSC, ICENT, ISCALE, IERR) -C .... CONVERT OFFICE 84' ID TO PDS ..... - IF (IERR .NE. 0) THEN - IF (IMODEL .EQ. MSKTRAJ) THEN - PRINT *, ' ** RETURN FROM W3FP12 =', IERR - PRINT *, ' PASS THIS TRAJETORY ID' - IERR = 0 - ELSE - PRINT *, ' **FATAL RETURN FROM W3FP12 =', IERR - WRITE(6,224)(LABEL(I),I=1,12) - WRITE(6,226)(LABELP(I),I=1,4) - WRITE(6,227)(IDPDS(I),I=1,4) - GO TO 999 - ENDIF - ENDIF -C - WRITE(6,224)(LABEL(I),I=1,12) - 224 FORMAT(1X,'LABEL=',/,2(1X,6(Z16,1X),/)) - WRITE(6,226)(LABELP(I),I=1,4) - 226 FORMAT(1X,'LABELP=',/,(1X,4(Z16,1X),/)) - WRITE(6,227)(IDPDS(I),I=1,4) - 227 FORMAT(1X,'IDPDS=',/,(1X,4(Z16,1X),/)) - IF (IMODEL .EQ. MSKNH) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(78) - IDPDSC(7) = CHAR(03) - IF (IFCSTHR.GT.168) IDPDSC(7)= CHAR(02) -#if defined (_LITTLE_ENDIAN) - ISCRATCH = IDPDS(2) - CALL SWAP_BYTES_IN_PLACE (ISCRATCH, 8_8, 1_8) - ITEMP = IAND (ISCRATCH, MSKFFFF) -#else - ITEMP = IAND(IDPDS(2),MSKFFFF) -#endif - IF (FLAG .EQ. CAC96HC) THEN - print *, ' **try to read cac blend grib' - IDPDSC(6) = CHAR(80) - IDPDSC(7) = CHAR(27) - IDPDSC(8) = CHAR(192) - IF (IDPDSC(9).EQ.CHAR(210).AND. - 1 IDPDSC(10).EQ.CHAR(100)) THEN - IDPDSC(9) = CHAR(27) - ENDIF - ELSE IF (FLAG .EQ. GFS97HC) THEN - print *, ' **try to read gfs blend grib' - IDPDSC(6) = CHAR(80) - IDPDSC(7) = CHAR(02) - IDPDSC(8) = CHAR(128) - IF (IDPDSC(9).EQ.CHAR(210).AND. - 1 IDPDSC(10).EQ.CHAR(100)) THEN - IDPDSC(9) = CHAR(27) - ENDIF - ELSE IF (FLAG .EQ. GFS98TK) THEN - print *, ' **try to read gfs THK ' - IDPDSC(6) = CHAR(80) - IDPDSC(7) = CHAR(03) - IDPDSC(8) = CHAR(128) - IF (IDPDSC(9).EQ.CHAR(210).AND. - 1 IDPDSC(10).EQ.CHAR(100)) THEN - IDPDSC(9) = CHAR(27) - ENDIF - ELSE IF (ITYPE.EQ.27 .AND. ITEMP.EQ.LFTFLG) THEN - PRINT *,' **GET GFS 500 LIFTED INDEX' - IDPDSC(10) = CHAR(01) - IDPDSC(11) = CHAR(00) - IDPDSC(12) = CHAR(00) - ENDIF - ELSE IF (IMODEL .EQ. MSK25) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(77) - IDPDSC(7) = CHAR(03) - IF (IFCSTHR.GT.168) IDPDSC(7)= CHAR(02) - ELSE IF (IMODEL .EQ. MSKNGM) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(39) - IDPDSC(7) = CHAR(06) - IF (ITYPE .EQ. 05) THEN - IDPDSC(7) = CHAR(05) - ENDIF - IF (ITYPE .EQ. 101) THEN - IDPDSC(7) = CHAR(101) - PRINT *, ' TRY TO GET A NGM C-GRID' - ENDIF - IF (ITYPE .EQ. 104) THEN - IDPDSC(7) = CHAR(104) - PRINT *, ' TRY TO GET A NGM SUPER C-GRID' - ENDIF -#if defined (_LITTLE_ENDIAN) - ISCRATCH = IDPDS(2) - CALL SWAP_BYTES_IN_PLACE (ISCRATCH, 8_8, 1_8) - ITEMP = IAND (ISCRATCH, MSKFFFF) -#else - ITEMP = IAND(IDPDS(2),MSKFFFF) -#endif - IF (ITEMP .EQ. BLRHHDS) THEN - PRINT *,' **GET NGM BOUNDARY LAYER RH' - ITEMP = BLRHGRB - IDPDSC(9) = CTEMP(1) - IDPDSC(10) = CTEMP(2) - IDPDSC(11) = CTEMP(3) - IDPDSC(12) = CTEMP(4) - ENDIF - IF (FLAG .EQ. ETAMOD) THEN -C ... FOR NAM BOUNDARY LAYER -#if defined (_LITTLE_ENDIAN) - ISCRATCH = IDPDS(2) - CALL SWAP_BYTES_IN_PLACE (ISCRATCH, 8_8, 1_8) - NTEMP = IAND (ISCRATCH, MSK0FFF) -#else - NTEMP = IAND(IDPDS(2),MSK0FFF) -#endif - IF (NTEMP .EQ. ETABOUND) THEN - PRINT *, ' ..GET A NAM BOUNDARY LAYER FIELD' - IDPDSC(10) = CHAR(116) - IDPDSC(11) = CHAR(30) - IDPDSC(12) = CHAR(0) - ENDIF - ENDIF -C - ELSE IF (IMODEL .EQ. MSKTRAJ) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(141) - IDPDSC(7) = CHAR(05) - IDATATP = IAND(LABELP(1),MSK2F) - IF (IDATATP .EQ. TRAJVD) THEN -C ... FOR THE VERTICAL REPLACEMENT - PRINT *,' FOR TRAJECTORY VERTICAL REPLACEMENT' - IDPDSC(9) = CHAR(183) - IDPDSC(10) = CHAR(100) - IDPDSC(11) = CHAR(02) - IDPDSC(12) = CHAR(188) - IDPDSC(20) = CHAR(24) - IDPDSC(19) = CLABELP(12) - IDPDSC(21) = CHAR(2) - ELSE IF (IDPDSC(9).EQ.CHAR(17)) THEN - IDPDSC(9)=CHAR(152) - IF (IDPDSC(11).EQ.CHAR(0).AND.IDPDSC(12).EQ.CHAR(0)) - 1 IDPDSC(10) = CHAR(01) -C ... FOR TRAJ DEW-PTS TEMP 700MB AND SFC - ELSE IF (IDPDSC(9).EQ.CHAR(11)) THEN - IDPDSC(9)=CHAR(148) - ELSE IF (IDPDSC(9).EQ.CHAR(133) - 1 .AND.IDPDSC(10).EQ.CHAR(101)) THEN -C ....for k index .... - PRINT *,' FOR TRAJECTORY INDEX' - IDPDSC(9) = CHAR(182) - IDPDSC(10) = CHAR(01) - IDPDSC(11) = CHAR(00) - IDPDSC(12) = CHAR(00) - ENDIF -C - ELSE IF (IMODEL .EQ. MSKFNL) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(82) - IDPDSC(7) = CHAR(03) - ELSE IF (IMODEL .EQ. MSKUK ) THEN -c print *, ' **try to read ukmet grid 500 MB RH' - IDPDSC(5) = CHAR(74) - IDPDSC(6) = CHAR(15) - IDPDSC(7) = CHAR(02) - IF (IDPDSC(9) .EQ. CHAR(52)) THEN -C ... THIS UKMET 500 MB RH - IF (IDPDSC(10) .EQ. CHAR(108)) IDPDSC(10)=CHAR(100) - IF (IDPDSC(11) .EQ. CHAR(33)) IDPDSC(11)=CHAR(1) - IF (IDPDSC(11) .EQ. CHAR(44)) IDPDSC(11)=CHAR(1) - IF (IDPDSC(12) .EQ. CHAR(100)) IDPDSC(12)=CHAR(244) - ENDIF - ELSE IF (IMODEL .EQ. MSKUK1 ) THEN - print *, ' **try to read ukmet grid 700 MB RH' - IDPDSC(5) = CHAR(74) - IDPDSC(6) = CHAR(15) - IDPDSC(7) = CHAR(02) - IF (IDPDSC(9) .EQ. CHAR(52)) THEN -C ... THIS UKMET 700 MB RH - IF (IDPDSC(10) .EQ. CHAR(108)) IDPDSC(10)=CHAR(100) - if(idpdsc(11).eq.char(33)) idpdsc(11)=char(2) - if(idpdsc(12).eq.char(100)) idpdsc(12)=char(188) - ENDIF - - ELSE IF (IMODEL .EQ. MSKECMWF ) THEN - print *, ' **try to read ecmwf grid' - IDPDSC(4) = CHAR(01) - IDPDSC(5) = CHAR(98) - IDPDSC(6) = CHAR(152) - IDPDSC(7) = CHAR(02) -C - ELSE IF (IMODEL .EQ. MSKTHUND) THEN - PRINT *,' GET NGM MOS THUNDER/SEVERE WX ID....' - IDPDSC(6) = CHAR(141) - IDPDSC(8) = CHAR(192) - IF (IDPDSC(9).EQ.CHAR(60)) THEN - IDPDSC(9) = CHAR(149) - ELSE IF (IDPDSC(9).EQ.CHAR(59)) THEN - IDPDSC(9) = CHAR(151) - ENDIF - IDPDSC(10) = CHAR(1) - IDPDSC(20) = CHAR( IAND(LABEL(3),MSK2)) -C - ELSE IF (ITYPE.EQ.8 .OR. ITYPE.EQ.53) THEN - PRINT *,' ****TRY TO GET A MERCTOR GRID.' - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(77) - IDPDSC(7) = CHAR(03) - IF (IFCSTHR.GT.168) IDPDSC(7)= CHAR(02) - ENDIF -C - IF ( IAND(LABEL(1),MSK1) .EQ. SFCMEANRH) THEN -C IDPDSC(7) = CHAR(202) - IF (IMODEL .NE. MSKNGM.AND.IMODEL.NE.MSKUK1) THEN - IDPDSC(11) = CHAR(44) - ENDIF -C print *, ' get a sfc-500 mean rh' - ENDIF -C .... MODIFY PDS TO POINT TO 1-DEGREE GRIB - DO I=1, 28 - PDS(I) = IDPDSC(I) - ENDDO -C - JREW = 0 - MPDS = -1 - MPDS(3) = mova2i(PDS(7)) - MPDS(5) = mova2i(PDS(9)) - MPDS(6) = mova2i(PDS(10)) - MPDS(7) = mova2i(PDS(11)) * 256 + mova2i(PDS(12)) - IF (IMODEL .EQ. MSKTRAJ) THEN - IDATATP = IAND(LABELP(1),MSK2F) -C PRINT *,' SET MPDS FOR TRAJVD=' - IF (IDATATP .EQ. TRAJVD) THEN -C PRINT *,' SET MPDS FOR TRAJVD' -C MPDS(14) = mova2i(PDS(19)) - MPDS(15) = mova2i(PDS(20)) -C MPDS(16) = mova2i(PDS(21)) - ENDIF - ELSE IF (FLAG.NE.CAC96HC .AND. FLAG.NE.GFS97HC) THEN - MPDS(14) = mova2i(PDS(19)) -C ..... FOR THE FORECAST HOUR CHECKING - ELSE IF (IMODEL .EQ. MSKTHUND) THEN -C MPDS(14) = mova2i(PDS(19)) - MPDS(15) = mova2i(PDS(20)) -C MPDS(16) = mova2i(PDS(21)) - ENDIF -C - IF (FLAG .EQ. AVPOLRV) THEN - IDPDSC(7) = CHAR(03) - MPDS(3) = 3 -C ..... FOR AVPOLARV - ENDIF -C -C READ I DEGREE GRIB FILE USING INDEX FILE -C -C print *,' mpds=' -C write (*,203)(mpds(k),k=1,25) -C 203 format( 5(5(1x,z16),/) ) -C print *,' jgds=' -C write (*,204)(jgds(k),k=1,100) -C 204 format( 20(5(1x,z16),/) ) -C -C - print *, ' Pds = ' - write(*, 12)(ipds(i),i=1,4) - 12 format( 2x, 4(z16,1x)) -C -C CALL GETGB1(LUGB,LUGI,MXSIZE,JREW,MPDS,JGDS, -C & GRIB,KBYTES,KREW,KPDS,KGDS,KBMS,C,IRET) -C - CALL GETGB1(LUGB,LUGI,ji,JREW,MPDS,JGDS, - & GRIB,KBYTES,KREW,KPDS,KGDSi,KBMS,CC,IRET) -C - IF (IRET .NE. 0) THEN - PRINT *,' **FATAL ERROR FROM GETGB.', IRET - IERR = IRET - GO TO 999 - ENDIF -C -C print *,'after getgb kpds = ',kpds - write(*, 16)(jpds(i),i=1,4) - 16 format( 2x, 4(z16,1x)) -C - IF (KPDS(16) .EQ. 0) THEN - ITAU = KPDS(14) - ELSE IF (KPDS(16) .EQ. 2) THEN - ITAU = KPDS(15) - ELSE IF (KPDS(16) .EQ. 3) THEN - ITAU = KPDS(15) - ELSE IF (KPDS(16) .EQ. 4) THEN - ITAU = KPDS(15) - ELSE IF (KPDS(16) .EQ. 10) THEN - ITAU = KPDS(14) - ELSE - PRINT *,' **ERROR - CAN NOT GET TAU. KPDS(16)=',KPDS(16) - ENDIF -C - print *,' ITAU=', itau - print *, ' Kds = ' - write(*, 14)(kpds(i),i=1,24) - 14 format( 6(2x, 4(z16,1x),/)) -C -C print *,'after getgb mpds = ',mpds -C PRINT *,'KBYTES = ',KBYTES -C PRINT *,'RECORD NO. OF GRIB RECORD IN INPUT FILE = ',KREW -C - 700 CONTINUE -C -C flip the grid so 1st point is S.pole at Greenwich -C - IF (KPDS(3) .EQ. 3) THEN - PRINT *, ' GET A ONE DEGREE GRIB' - DO N1=1,181 - DO M1=1,360 - DD(M1,181-N1+1) = CC(M1,N1) - ENDDO - ENDDO -C - DO N1 = 1, 181 - DD(361,N1) = DD(1,N1) - ENDDO -C - IF (ITYPE .EQ. AVTYPE) THEN -C print *, ' convert from one-degree to 5 degree ...' - LL1 = 0 - DO L1 = 1, 361, 5 - LL1 = LL1 + 1 - II1 = 0 - DO I1 = 1, 181, 5 - II1 = II1 + 1 - GG(LL1,II1) = DD(L1,I1) - ENDDO - ENDDO -C ... LOAD IT TO OUTPUT BUFFER - DO III=1,2701 - FLD(III) = GG2(III) - ENDDO -C - ELSE IF (FLAG .EQ. AVPOLRV) THEN -C .... CONVERT ONE DEGREE TO 2.5 DEGREE - CALL W3FT3X2P5(DD,BLOLA,CLOLA) -C DO NN=1, 5365 -C FLD(NN) = CLOLA(NN) -C ENDDO - DO NN=5221, 10585 - FLD(NN-5220) = CLOLA(NN) - ENDDO -C print *,' successfully get avpolar field from 1' -C .... FOR N.H. ONLY - ELSE IF (ITYPE .EQ. IG08) THEN -c define 116x44 grid - call makgds(ig08,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) ! kumar modified for ibm RS/6000 the call to exit -C kgdso(4)=-20826! fix w3fi71 error ! errexit(iret) is the ibm equiv of exit(iret) -C - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo08,1, - 1 ibi,kbms,cc,ko,rlat_08,rlon_08, - 2 ibo,lo_08,fld,iret) - if(iret.ne.0) call errexit(iret) -C - ELSE IF (ITYPE .EQ.26) THEN -c define 53x45 grid - PRINT *, ' CONVERT ONE-DEGREE TO LFM' - call makgds(ig26,kgdso,gdso,lengds,iret) - if(iret.ne.0) PRINT *,' IRET=',IRET -C - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 -C call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo,1, -C 1 ibi,kbms,cc,ko,rlat,rlon,ibo,lo,fld,iret) - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27,1, - 1 ibi,kbms,cc,ko,rlat_27,rlon_27, - 2 ibo,lo_27,fld,iret) - - if(iret.ne.0) PRINT *,' IRET=',IRET -C - ELSE IF (ITYPE .EQ. IG27) THEN -c define 65x65 grid - call makgds(ig27,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) - kgdso(4)=-20826! fix w3fi71 error -C - IF (UORFG .AND. UXPO.EQ.65 .AND. UYPO.EQ.65) THEN -C ... GET 129*129 - kgdso(2) = 129 - kgdso(3) = 129 - kgdso(8) = kgdso(8)/2 - kgdso(9) = kgdso(9)/2 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27_129,1, - 1 ibi,kbms,cc,ko,rlat_27_129,rlon_27_129, - 2 ibo,lo_27_129, fld,iret) - if(iret.ne.0) call errexit(iret) -C CALL W3FM08(b129,fld,129,129) - ELSE IF (.NOT. UORFG) THEN -C ... GET 65*65 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27,1, - 1 ibi,kbms,cc,ko,rlat_27,rlon_27, - 2 ibo,lo_27,fld,iret) - if(iret.ne.0) call errexit(iret) - ENDIF -C -C - ELSE IF (ITYPE .EQ. IG28) THEN -c define 65x65 grid - print *,'entering makgds :kgdso(7) = ',kgdso - - call makgds(ig28,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) - kgdso(4)=20826 ! fix w3fi71 error -C - IF (UORFG .AND. UXPO.EQ.65 .AND. UYPO.EQ.65) THEN -C ... GET 129*129 - kgdso(2) = 129 - kgdso(3) = 129 - kgdso(8) = kgdso(8)/2 - kgdso(9) = kgdso(9)/2 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27_129,1, - 1 ibi,kbms,cc,ko,rlat_27_129,rlon_27_129, - 2 ibo,lo_27_129, fld,iret) - if(iret.ne.0) call errexit(iret) -C CALL W3FM08(b129,fld,129,129) - ELSE IF (.NOT. UORFG) THEN -C ... GET 65*65 - print *,'kgdso=',kgdso - if (ig28 .eq. 28) kgdso(7)=100000 - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27,1, - 1 ibi,kbms,cc,ko,rlat_27,rlon_27, - 2 ibo,lo_27,fld,iret) - if(iret.ne.0) call errexit(iret) - ENDIF -C - ELSE IF (ITYPE .EQ.29) THEN -C .... CONVERT ONE DEGREE TO 2.5 DEGREE - CALL W3FT3X2P5(DD,BLOLA,CLOLA) - DO NN=5221, 10585 - FLD(NN-5220) = CLOLA(NN) - ENDDO - print *,' successfully get a nh 2.5 degree field.' -C .... FOR N.H. ONLY - ELSE IF (ITYPE .EQ.30) THEN -C .... CONVERT ONE DEGREE TO 2.5 DEGREE - CALL W3FT3X2P5(DD,BLOLA,CLOLA) - DO NN=1, 5365 - FLD(NN) = CLOLA(NN) - ENDDO - print *,' successfully get a sh 2.5 degree field.' -C .... FOR S.H. ONLY - ELSE IF (ITYPE .EQ. IG53) THEN -c define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) -C kgdso(4)=-20826! fix w3fi71 error -C - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo53,1, - 1 ibi,kbms,cc,ko,rlat_53,rlon_53, - 2 ibo,lo_53,fld,iret) - if(iret.ne.0) call errexit(iret) -C - ELSE - PRINT *, ' ** UNRECOGNIZED DATA TYPE -- ', ITYPE - IERR = 10 - GO TO 999 - ENDIF -C - ELSE IF (KPDS(3) .EQ. 2) THEN -C PRINT *, ' GET A 2.5 DEGREE GRIB' - DO N1=1,73 - DO M1=1,144 - DD2(M1,73-N1+1) = CC2(M1,N1) - ENDDO - ENDDO -C - DO N1 = 1, 73 - DD2(145,N1) = DD2(1,N1) - ENDDO -C - IF (ITYPE .EQ. AVTYPE) THEN -C print *, ' convert from 2.5-degree to 5 degree ...' - LL1 = 0 - DO L1 = 1, 145, 2 - LL1 = LL1 + 1 - II1 = 0 - DO I1 = 1, 73, 2 - II1 = II1 + 1 - GG(LL1,II1) = DD2(L1,I1) - ENDDO - ENDDO -C ... LOAD IT TO OUTPUT BUFFER - DO III=1,2701 - FLD(III) = GG2(III) - ENDDO - ELSE IF (FLAG .EQ. AVPOLRV) THEN - DO N1=37, 73 - DO M1=1,145 - DD2N(M1,N1-36) = DD2(M1,N1) - ENDDO - ENDDO -C .... LOAD NH 2.5 DEGREE - DO NN=1, 5365 - FLD(NN) = DD2N1(NN) - ENDDO -C print *,' successfully get avpolar field from 2.5.' - ELSE IF (ITYPE .EQ. 27) THEN - DO N1=37, 73 - DO M1=1,145 - DD2N(M1,N1-36) = DD2(M1,N1) - ENDDO - ENDDO -C ..... N.H. - CALL W3FT05V(DD2N,EE,1) -C .... convert 2.5 degree to office 84 65*65 -C CALL W3FM08(EE,FF,65,65) -C ... smoother..... - DO III=1,4225 - FLD(III) = EE(III) - ENDDO - ELSE IF (ITYPE.EQ.28) THEN - DO N1=1,37 - DO M1=1,145 - DD2N(M1,N1) = DD2(M1,N1) - ENDDO - ENDDO -C ..... S.H. - CALL W3FT05V(DD2N,EE,1) -C .... convert 2.5 degree to office 84 65*65 -C CALL W3FM08(EE,FF,65,65) -C ... smoother..... - DO III=1,4225 - FLD(III) = EE(III) - ENDDO - ELSE IF (ITYPE .EQ. 29) THEN - DO N1=37, 73 - DO M1=1,145 - DD2N(M1,N1-36) = DD2(M1,N1) - ENDDO - ENDDO -C .... LOAD NH 2.5 DEGREE - DO NN=1, 5365 - FLD(NN) = DD2N1(NN) - ENDDO - print *,' successfully get a nh 2.5 grid from 2.5.' - ELSE IF (ITYPE .EQ. 30) THEN - DO N1=1, 37 - DO M1=1,145 - DD2N(M1,N1) = DD2(M1,N1) - ENDDO - ENDDO -C .... LOAD SH 2.5 DEGREE - DO NN=1, 5365 - FLD(NN) = DD2N1(NN) - ENDDO - print *,' successfully get a sh 2.5 grid from 2.5.' - ELSE - PRINT *, ' ** UNRECOGNIZED DATA TYPE -- ', ITYPE - IERR = 10 - GO TO 999 - ENDIF -C - ELSE IF (KPDS(3) .EQ.08 .AND. ITYPE .EQ. 08) THEN - DO III=1, 5104 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.27 .AND. ITYPE .EQ. 27) THEN - DO III=1, 4225 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.28 .AND. ITYPE .EQ. 28) THEN - DO III=1, 4225 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 5 .AND. ITYPE .EQ. 5) THEN - DO III=1, 3021 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 6 .AND. ITYPE .EQ. 26) THEN - DO III=1, 2385 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 26 .AND. ITYPE .EQ. 26) THEN - DO III=1, 2385 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.29 .AND. ITYPE .EQ. 29) THEN - DO III=1, 5365 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.30 .AND. ITYPE .EQ. 30) THEN - DO III=1, 5365 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.53 .AND. ITYPE .EQ. 53) THEN - DO III=1, 5967 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 101 .AND. ITYPE .EQ. 101) THEN - DO III=1, 10283 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 104 .AND. ITYPE .EQ. 104) THEN - DO III=1, 16170 - FLD(III) = C(III) - ENDDO - ELSE - PRINT *,' GRID ID TYPE =', KPDS(3) - PRINT *,' **ABEND, CANNOT PROCESS THIS GRID TYPE**' - IERR = 7 - GO TO 999 - ENDIF -C -C write(*,810)(buff(i),i=1,1440) -C810 format( 180(8(f10.3,2x),/)) -C - IF (IMODEL .EQ. MSKTRAJ) THEN - PDSL(6) = CHAR(18) - IF (PDSL(9).EQ.CHAR(152)) THEN - PDSL(9)=CHAR(17) - ELSE IF (PDSL(9).EQ.CHAR(148)) THEN - PDSL(9)=CHAR(11) - ELSE IF (PDSL(9).EQ.CHAR(182)) THEN - PDSL(9)=CHAR(133) - PDSL(10)=CHAR(101) - PDSL(11)=CHAR(70) - PDSL(12)=CHAR(85) - ELSE IF (PDSL(9).EQ.CHAR(183)) THEN - PDSL(9)=CHAR(133) - ENDIF - CALL W3FP11 (IGRIB,JPDS,MTITLE,IRET) - IRET = 0 -C - ELSE IF (FLAG .EQ. GFS97HC .OR. FLAG.EQ.GFS98TK) THEN - PDSL(9)=CHAR(07) - PDSL(5)=CHAR(08) - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) - ELSE IF (IMODEL .EQ. MSKTHUND) THEN - PDSL(5)=CHAR(08) - PDSL(9)=CHAR(07) - PDSL(8) = CHAR(128) - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) -C - ELSE IF (IMODEL .EQ. MSKTRAJ) THEN - PDSL(9)=CHAR(11) - PDSL(5)=CHAR(08) - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) - ELSE - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) -C .... to get a map title - ENDIF - IF (IRET .NE. 0) THEN - PRINT *, ' ** NOT A FATAL ERROR FROM W3FP11 -- ', IRET - IERR = 101 - ENDIF -C -C print *,' ' -C print *,title(1:86) -C print *,' ' -C - CGRIB(1:1) = CHAR(71) - CGRIB(2:2) = CHAR(82) - CGRIB(3:3) = CHAR(73) - CGRIB(4:4) = CHAR(66) - CGRIB(5:5) = CHAR(0) - CGRIB(6:6) = CHAR(0) - CGRIB(7:7) = CHAR(0) - CGRIB(8:8) = CHAR(1) -C -C PDS(7) = CHAR(27) - IF (ITYPE.EQ.26) ITYPE=6 - GRIB(15) = CHAR(ITYPE) -C - CALL W3FP13(CGRIB,JPDS,LIDREC,IRET) - CALL W3FI69(JPDS, IFWPDS) - KCENT=IFWPDS(23) - - IF (IRET .NE. 0) THEN - PRINT *,' ERROR RETURN FROM W3FP13:', IRET - IERR = IRET - ELSE - CALL GBYTES(LIDREC,LABEL,0,32,0,12) - LABEL(1) = IOR(IAND(MSK1,LABEL(1)),ITAU) - write (*,224)(label(k),k=1,12) - ENDIF -C -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakr.fd/iw3getv.f.org b/util/sorc/faxmakr.fd/iw3getv.f.org deleted file mode 100755 index 20b05fabe0..0000000000 --- a/util/sorc/faxmakr.fd/iw3getv.f.org +++ /dev/null @@ -1,1028 +0,0 @@ - SUBROUTINE IW3GETV(LUGRBIX, LUGRB, LABEL, FLD, MTITLE, IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: IW3GETV GET AND UNPACK CRAY GRIB FILES. -C AUTHOR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GET AND UNPACK CRAY GRIB FILES FROM AN OFFICE 84 6 WORD ID. -C PLEASE READ THE REMARKS BEFORE USING IT. -C -C HISTORY LOG: -C 95-10-04 LUKE LIN -C 95-10-31 LUKE LIN MODIFY FOR TESTING DIFFERENT GRID TYPE. -C 95-11-27 LUKE LIN ADD AN OPTION FOR NOT TEST FCST HOUR -- CAC 96H/C -C AND MODIFY TO READ RGL(NGM) MODEL. -C 96-01-30 LUKE LIN MODIFY TO CONVERT FROM 1 DEGREE TO 65*65 BY LINEAR. -C 96-02-14 LUKE LIN MODIFY FOR NGM BOUNDARY LAYER RH CHART. -C 96-02-23 LUKE LIN MODIFY FOR NGM SURFACE TO 500 MB LIFTED INDEX. -C 96-02-26 LUKE LIN MODIFY FOR AVMER OR AVPOLAR AND OUTPUT WILL BE -C EITHER 2.5 OR 5.0 DEGREE DEPENDING ON OPTION -C 96-03-07 LUKE LIN MODIFY FOR NGM SUPER C GRID. -C 96-03-29 LUKE LIN MODIFY FOR AVPOLAR 2.5 DEGREE TO GET NH. -C 96-04-25 LUKE LIN FIX A BUG FOR AVTYPE. -C 96-05-31 LUKE LIN MODIFY FOR TYPE 29 NH 2.5 AND TYPE 30 SH 2.5. -C 96-06-20 LUKE LIN CHANGE FOR NAM LIFTED INDEX -C 96-07-05 LUKE LIN ADD GFS 129*129 LOGIC. -C 96-07-09 LUKE LIN ADD IPOLATE OPTIONS. -C 96-10-01 LUKE LIN ADD TYPE 08, 116X44, AND TYPE 53, 117X51. -C 97-01-08 LUKE LIN ADD TYPE 05, 53X57. -C 97-01-15 LUKE LIN ADD FOR MODEL FINAL. -C 97-03-12 LUKE LIN ADD FOR ECMWF, TDL PROB. THUNER/SERVERE WX, -C GFS 6-10 DAY MEAN DN, UKMET -C 97-03-21 LUKE LIN ADD FOR GFS ANOMALY THICKNESS. -C 97-06-03 LUKE LIN MODIFY FOR NAM BOUNDARY LAYER FIELDS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. MODIFIED TO READ 700 MB UKMET -C REL HUM (RH) DATA. -C 1999-12-20 KRISHNA KUMAR KBMS VALUES SHOULD BE SET TO LOGICAL*1 -C -C INPUT ARGUMENTS: -C LUGRBIX - AN UNIT NUMBER POINTS TO ONE DEGREE GRIB INDEX FILE. -C LUGRB - AN UNIT NUMBER POINTS TO ONE DEGREE GRIB FILE. SEE -C REMARK. -C LABEL - 12 WORDS LABEL ON INPUT. WORDS 1-5 SHOULD CONTAIN -C LABEL ID OF DESIRED FIELD FLD. -C -C OUTPUT ARGEMENTS: -C FLD -- BUFF CONTAINS UNPACK FIELD. -C LABEL -- ON OUTPUT THE FULL 12 WORDS OF THE LABEL WILL CONTAIN -C APPROPRIATE VALUES. -C MTITL -- CHARACTER*132 MAP TITLE FROM INDEX FILE. -C (1:86) IS MAP TITLE, FOLLOWINGS ARE MAP ID. -C IERR -- RETURN STATUS -C IRETUR - RETURN CONDITION; -C 0 - ALL OK -C 1 - W3FP13/GRIB BLOCK 0 NOT CORRECT -C 2 - W3FP13/LENGTH OF PDS NOT CORRECT -C 3 - W3FP13/COULD NOT MATCH TYPE INDICATOR -C 4 - W3FP13/GRID TYPE NOT IN TABLES -C 5 - W3FP13/COULD NOT MATCH TYPE LEVEL -C 6 - W3FP13/COULD NOT INTERPRET ORIGINATOR OF CODE -C 7 - GRIB TYPE ERROR -- UNKNOWN GRIB TYPE. -C 10 - UNCOGNIZE DATA TYPE FROM LABEL -C 11 - W3FT32/ MAPIN NOT RECOGNIZED -C 12 - W3FT32/ MAPOUT NOT RECOGNIZED -C 13 - W3FT32/ PARTICULAR POLA MAPOUT NOT RECOGNIZED -C 14 - W3FT32/ PARTICULAR LOLA MAPOUT NOT RECOGNIZED -C 15 - W3FT32/ PARTICULAR LOLA MAPIN NOT RECOGNIZED -C 16 - W3FT32/ PARTICULAR POLA MAPOUT NOT RECOGNIZED -C 17 - W3FT32/ PARTICULAR LOLA MAPIN NOT RECOGNIZED -C 18 - W3FT32/ PARTICULAR LOLA MAPOUT NOT RECOGNIZED -C 96 - GETGB/ERROR READING INDEX FILE -C 97 - GETGB/ERROR READING GRIB FILE -C 98 - GETGB/NUMBER OF DATA POINTS GREATER THAN JF -C 99 - GETGB/REQUEST NOT FOUND -C -1 - GETGB/OTHER W3FI63 GRIB UNPACKER RETURN CODE -C 101 - W3FP11/NON-FATAL ERROR, MTITLE NOT CORRECT -C -C USAGE: -C INPUT FILES: -C UNIT LUGRBIX - INPUT ONE DEGREE GRIB INDEX FILE. SEE REMARK. -C UNIT LUGRB - INPUT ONE DEGREE GRIB FILE. SEE REMARK. -C -C OUTPUT FILES: -C FT06F001 - PRINT OUTPUT (STANDARD FORTRAN OUTPUT FILE) -C -C SUBPROGRAMS CALLED: -C UNIQUE: NONE -C -C LIBRARY: -C SPECIAL - NONE -C W3LIB - W3FP11 , W3FP13, GETGB , GBYTES , W3FM08 -C - W3FI63 , W3FT43V,W3FT32, SBYTES -C -C REMARKS: -C ***** VERY IMPORTANT ****** -C 1. ONLY DEAL WITH INPUT DATA TYPE 08, 26, 27 , 29, 30, 53, 101, 104. -C OTHER DATA TYPE MAY HAVE FATAL ERROR RETURN AT PRESENT TIME. -C 2. CONCERNING NAM CHARTS, THE 6TH WORD ID SHOULD BE '00000127'. -C 3. CONCERNING GFS CHARTS, THE 6TH WORD ID SHOULD BE '0000084D'. -C 4. FOR NO FORECAST HOUR CHECKING SUCH AS CAC 96H/C, THE THIRD BYTE -C OF THE 6TH WORD ID SHOULD BE '96'. -C -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C -C .... THIS SET IS FOR UOR_DOT - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI - LOGICAL UORFG -C -C - PARAMETER (IPTS=65160,II=360,JJ=181,MM=361) - PARAMETER (IPTS2=10512,II2=144,JJ2=73) - PARAMETER (MXSIZE=66000) - PARAMETER (MXSIZ2=MXSIZE*2) - PARAMETER (IIK=289,JJK=145,NPTS=IIK*JJK) - PARAMETER (IJK=145,LJK=73,MPTS=IJK*LJK) -C - parameter(ji=360*181,ig27=27,jo27=65*65,jo27_129=129*129) - parameter(ig26=6) - parameter(ig28=28) - parameter(ig08=08,jo08=116*44) - parameter(ig53=53,jo53=117*51) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_27(jo27),rlon_27(jo27) - equivalence( rlat_27(1), rlat_03(1) ) - equivalence( rlon_27(1), rlon_03(1) ) - logical lo_27(jo27) - equivalence( lo_27(1), lo_03(1) ) -C - real rlat_27_129(jo27_129),rlon_27_129(jo27_129) - equivalence( rlat_27_129(1), rlat_03(1) ) - equivalence( rlon_27_129(1), rlon_03(1) ) - logical lo_27_129(jo27_129) - equivalence( lo_27_129(1), lo_03(1) ) -C - real rlat_08(jo08),rlon_08(jo08) - equivalence( rlat_08(1), rlat_03(1) ) - equivalence( rlon_08(1), rlon_03(1) ) - logical lo_08(jo08) - equivalence( lo_08(1), lo_03(1) ) -C - real rlat_53(jo53),rlon_53(jo53) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(jo53) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - COMMON /PDSCOM/ IFWPDS - INTEGER IFWPDS(27) - - INTEGER KGDSO(22) - CHARACTER GDSO(42) - INTEGER LENGDS - REAL DIF,SMLNO -C -C - INTEGER LUGI,LUGRBIX - INTEGER LUGB,LUGRB - INTEGER LABEL(12) - REAL FLD(*) - REAL B129(16900) - CHARACTER * 132 MTITLE - INTEGER IERR - INTEGER IRET - INTEGER ITAU -C - REAL C(MXSIZE) - COMMON /BITM/ KBMS(66000) - LOGICAL*1 KBMS -C - REAL CC(II,JJ) - REAL CC2(II2,JJ2) - REAL D(MXSIZE) - REAL DD(361,181) - REAL D2(MXSIZE) - REAL DD2(145,73) - REAL DD2N(145,37) - REAL DD2N1(5365) - REAL EE(4225) - REAL FF(4225) - REAL BLOLA(NPTS), CLOLA(MPTS) - REAL GG(73,37) - REAL GG2(2701) -C - INTEGER IGRIB(16500) - CHARACTER * 1 GRIB(MXSIZ2) -C - INTEGER IPDS(4) - INTEGER JPDS(4) - INTEGER JGDS(100) - INTEGER MPDS(25) - INTEGER KGDS(100) - INTEGER KPDS(25) - CHARACTER * 1 PDS(28) - CHARACTER * 1 PDSL(28) -C -C - CHARACTER*1 CTEMP(8) - INTEGER ITEMP - INTEGER NTEMP -C - INTEGER LIDREC(6) - CHARACTER*8 CGRIB - INTEGER IMODE -C - INTEGER LABELP(6) - CHARACTER*1 CLABELP(48) - EQUIVALENCE (LABELP(1),CLABELP(1)) -C - CHARACTER*1 IFLAG - CHARACTER*1 IDPDSC(28) - INTEGER*8 IDPDS(4) - INTEGER MODELNH - INTEGER SFCMEANRH - INTEGER MSK1, MSK2, MSK3, MSK4 - INTEGER MSK2F -C - INTEGER MSKNH, MSKNGM, MSK25, MSKFNL, MSKTRAJ - INTEGER TRAJVD - INTEGER ITYPE, IMODEL, FLAG - INTEGER CAC96HC - INTEGER GFS97HC - INTEGER GFS98TK - INTEGER BLRHHDS - INTEGER BLRHGRB - INTEGER MSKFFFF - INTEGER MSK0FFF - INTEGER LFTFLG - INTEGER AVPOLRV - INTEGER AVTYPE - INTEGER ETAMOD - INTEGER ETABOUND - INTEGER MSKECMWF - DATA MSKECMWF /Z'000000000000004B'/ - INTEGER MSKTHUND - DATA MSKTHUND /Z'00000000000000C1'/ - INTEGER MSKUK - DATA MSKUK /Z'000000000000004A'/ - INTEGER MSKUK1 - DATA MSKUK1 /Z'000000000000007D'/ -C -C MSKUK1 HAS BEEN SPECIFICALLY DEFINED TO PLOT 700 MB REL HUM -C WITH UK MET DATA -C - SAVE -C - EQUIVALENCE (C(1),CC(1,1),CC2(1,1)) - EQUIVALENCE (D(1),DD(1,1)) - EQUIVALENCE (D2(1),DD2(1,1)) - EQUIVALENCE (DD2N1(1),DD2N(1,1)) - EQUIVALENCE (GRIB(1),IGRIB(1)) - EQUIVALENCE (IPDS(1),PDS(1)) - EQUIVALENCE (JPDS(1),PDSL(1),IGRIB(2)) - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (IDPDSC(1),IDPDS(1)) - EQUIVALENCE (GG2(1),GG(1,1)) -C - DATA MODELNH /Z'00000000034E0000'/ - DATA SFCMEANRH /Z'0000000005809100'/ - DATA MSK1 /Z'00000000FFFFFF00'/ - DATA MSK2 /Z'00000000000000FF'/ - DATA MSK3 /Z'000000000000FFFF'/ - DATA MSK4 /Z'0000000000FF0000'/ - DATA MSKNH /Z'000000000000084D'/ - DATA MSKNGM /Z'0000000000000127'/ - DATA MSKTRAJ /Z'00000000000000C0'/ - DATA TRAJVD /Z'0290000000000000'/ - DATA MSKFNL /Z'0000000000000052'/ - DATA MSK25 /Z'0000000000000A87'/ - DATA CAC96HC /Z'0000000000960000'/ - DATA GFS97HC /Z'0000000000970000'/ - DATA GFS98TK /Z'0000000000980000'/ - DATA BLRHHDS /Z'346C006400000000'/ - DATA BLRHGRB /Z'346B265F00000000'/ - DATA MSKFFFF /Z'FFFFFFFF00000000'/ - DATA MSK0FFF /Z'00FFFFFF00000000'/ - DATA LFTFLG /Z'8365326400000000'/ - DATA AVPOLRV /Z'0000000000990000'/ - DATA ETAMOD /Z'0000000000800000'/ - DATA ETABOUND /Z'006C616400000000'/ - DATA AVTYPE / 130 / - DATA MSK2F /Z'FFFF000000000000'/ -C -C*********************************************************************** -C -C - IRET = 0 - IERR = 0 - LUGI = LUGRBIX - LUGB = LUGRB -C - WRITE(6,224)(LABEL(I),I=1,12) -C - ITYPE = IAND(LABEL(5),MSK2) - IFCSTHR = IAND(LABEL(1),MSK2) - PRINT *, ' ITYPE=', ITYPE - IMODEL = IAND(LABEL(6),MSK3) - FLAG = IAND(LABEL(6),MSK4) -C -C if (itype .eq. avtype) then -C print *, ' got a avpolrv or avmerv data type....' -C endif -C - IF (FLAG.EQ.AVPOLRV .OR. FLAG.EQ.ETAMOD) THEN - LABEL(6) = IAND(LABEL(6),MSK3) - ENDIF -C - IF (IMODEL .EQ. MSKNH) THEN - LABEL(7) = 0 - LABEL(8) = MODELNH - IF (FLAG .NE. 0) LABEL(6) = MSKNH - ELSE IF (IMODEL .EQ. MSKNGM) THEN - LABEL(6) = 0 - LABEL(7) = 0 - LABEL(8) = 39 - ELSE IF (IMODEL .EQ. MSKFNL) THEN - LABEL(6) = 0 - LABEL(7) = 0 - ELSE IF (IMODEL .EQ. MSK25) THEN - LABEL(7) = 0 - LABEL(8) = MODELNH - IF (FLAG .NE. 0) LABEL(6) = MSK25 - ENDIF -C - CALL SBYTES(LABELP,LABEL,0,32,0,8) -C ..... PACK 8-WORD ID TO 4-WORD CRAY ID - IFLAG = CHAR(128) -C .... 128 FOR GDS, 64 FOR BITMAP, 192 FOR BOTH - ICENT = 20 - ISCALE = 0 - CALL W3FP12(LABELP, IFLAG, IDPDSC, ICENT, ISCALE, IERR) -C .... CONVERT OFFICE 84' ID TO PDS ..... - IF (IERR .NE. 0) THEN - IF (IMODEL .EQ. MSKTRAJ) THEN - PRINT *, ' ** RETURN FROM W3FP12 =', IERR - PRINT *, ' PASS THIS TRAJETORY ID' - IERR = 0 - ELSE - PRINT *, ' **FATAL RETURN FROM W3FP12 =', IERR - WRITE(6,224)(LABEL(I),I=1,12) - WRITE(6,226)(LABELP(I),I=1,4) - WRITE(6,227)(IDPDS(I),I=1,4) - GO TO 999 - ENDIF - ENDIF -C - WRITE(6,224)(LABEL(I),I=1,12) - 224 FORMAT(1X,'LABEL=',/,2(1X,6(Z16,1X),/)) - WRITE(6,226)(LABELP(I),I=1,4) - 226 FORMAT(1X,'LABELP=',/,(1X,4(Z16,1X),/)) - WRITE(6,227)(IDPDS(I),I=1,4) - 227 FORMAT(1X,'IDPDS=',/,(1X,4(Z16,1X),/)) - IF (IMODEL .EQ. MSKNH) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(78) - IDPDSC(7) = CHAR(03) - IF (IFCSTHR.GT.168) IDPDSC(7)= CHAR(02) - ITEMP = IAND(IDPDS(2),MSKFFFF) - IF (FLAG .EQ. CAC96HC) THEN - print *, ' **try to read cac blend grib' - IDPDSC(6) = CHAR(80) - IDPDSC(7) = CHAR(27) - IDPDSC(8) = CHAR(192) - IF (IDPDSC(9).EQ.CHAR(210).AND. - 1 IDPDSC(10).EQ.CHAR(100)) THEN - IDPDSC(9) = CHAR(27) - ENDIF - ELSE IF (FLAG .EQ. GFS97HC) THEN - print *, ' **try to read gfs blend grib' - IDPDSC(6) = CHAR(80) - IDPDSC(7) = CHAR(02) - IDPDSC(8) = CHAR(128) - IF (IDPDSC(9).EQ.CHAR(210).AND. - 1 IDPDSC(10).EQ.CHAR(100)) THEN - IDPDSC(9) = CHAR(27) - ENDIF - ELSE IF (FLAG .EQ. GFS98TK) THEN - print *, ' **try to read gfs THK ' - IDPDSC(6) = CHAR(80) - IDPDSC(7) = CHAR(03) - IDPDSC(8) = CHAR(128) - IF (IDPDSC(9).EQ.CHAR(210).AND. - 1 IDPDSC(10).EQ.CHAR(100)) THEN - IDPDSC(9) = CHAR(27) - ENDIF - ELSE IF (ITYPE.EQ.27 .AND. ITEMP.EQ.LFTFLG) THEN - PRINT *,' **GET GFS 500 LIFTED INDEX' - IDPDSC(10) = CHAR(01) - IDPDSC(11) = CHAR(00) - IDPDSC(12) = CHAR(00) - ENDIF - ELSE IF (IMODEL .EQ. MSK25) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(77) - IDPDSC(7) = CHAR(03) - IF (IFCSTHR.GT.168) IDPDSC(7)= CHAR(02) - ELSE IF (IMODEL .EQ. MSKNGM) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(39) - IDPDSC(7) = CHAR(06) - IF (ITYPE .EQ. 05) THEN - IDPDSC(7) = CHAR(05) - ENDIF - IF (ITYPE .EQ. 101) THEN - IDPDSC(7) = CHAR(101) - PRINT *, ' TRY TO GET A NGM C-GRID' - ENDIF - IF (ITYPE .EQ. 104) THEN - IDPDSC(7) = CHAR(104) - PRINT *, ' TRY TO GET A NGM SUPER C-GRID' - ENDIF - ITEMP = IAND(IDPDS(2),MSKFFFF) - IF (ITEMP .EQ. BLRHHDS) THEN - PRINT *,' **GET NGM BOUNDARY LAYER RH' - ITEMP = BLRHGRB - IDPDSC(9) = CTEMP(1) - IDPDSC(10) = CTEMP(2) - IDPDSC(11) = CTEMP(3) - IDPDSC(12) = CTEMP(4) - ENDIF - IF (FLAG .EQ. ETAMOD) THEN -C ... FOR NAM BOUNDARY LAYER - NTEMP = IAND(IDPDS(2),MSK0FFF) - IF (NTEMP .EQ. ETABOUND) THEN - PRINT *, ' ..GET A NAM BOUNDARY LAYER FIELD' - IDPDSC(10) = CHAR(116) - IDPDSC(11) = CHAR(30) - IDPDSC(12) = CHAR(0) - ENDIF - ENDIF -C - ELSE IF (IMODEL .EQ. MSKTRAJ) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(141) - IDPDSC(7) = CHAR(05) - IDATATP = IAND(LABELP(1),MSK2F) - IF (IDATATP .EQ. TRAJVD) THEN -C ... FOR THE VERTICAL REPLACEMENT - PRINT *,' FOR TRAJECTORY VERTICAL REPLACEMENT' - IDPDSC(9) = CHAR(183) - IDPDSC(10) = CHAR(100) - IDPDSC(11) = CHAR(02) - IDPDSC(12) = CHAR(188) - IDPDSC(20) = CHAR(24) - IDPDSC(19) = CLABELP(12) - IDPDSC(21) = CHAR(2) - ELSE IF (IDPDSC(9).EQ.CHAR(17)) THEN - IDPDSC(9)=CHAR(152) - IF (IDPDSC(11).EQ.CHAR(0).AND.IDPDSC(12).EQ.CHAR(0)) - 1 IDPDSC(10) = CHAR(01) -C ... FOR TRAJ DEW-PTS TEMP 700MB AND SFC - ELSE IF (IDPDSC(9).EQ.CHAR(11)) THEN - IDPDSC(9)=CHAR(148) - ELSE IF (IDPDSC(9).EQ.CHAR(133) - 1 .AND.IDPDSC(10).EQ.CHAR(101)) THEN -C ....for k index .... - PRINT *,' FOR TRAJECTORY INDEX' - IDPDSC(9) = CHAR(182) - IDPDSC(10) = CHAR(01) - IDPDSC(11) = CHAR(00) - IDPDSC(12) = CHAR(00) - ENDIF -C - ELSE IF (IMODEL .EQ. MSKFNL) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(82) - IDPDSC(7) = CHAR(03) - ELSE IF (IMODEL .EQ. MSKUK ) THEN -c print *, ' **try to read ukmet grid 500 MB RH' - IDPDSC(5) = CHAR(74) - IDPDSC(6) = CHAR(15) - IDPDSC(7) = CHAR(02) - IF (IDPDSC(9) .EQ. CHAR(52)) THEN -C ... THIS UKMET 500 MB RH - IF (IDPDSC(10) .EQ. CHAR(108)) IDPDSC(10)=CHAR(100) - IF (IDPDSC(11) .EQ. CHAR(33)) IDPDSC(11)=CHAR(1) - IF (IDPDSC(11) .EQ. CHAR(44)) IDPDSC(11)=CHAR(1) - IF (IDPDSC(12) .EQ. CHAR(100)) IDPDSC(12)=CHAR(244) - ENDIF - ELSE IF (IMODEL .EQ. MSKUK1 ) THEN - print *, ' **try to read ukmet grid 700 MB RH' - IDPDSC(5) = CHAR(74) - IDPDSC(6) = CHAR(15) - IDPDSC(7) = CHAR(02) - IF (IDPDSC(9) .EQ. CHAR(52)) THEN -C ... THIS UKMET 700 MB RH - IF (IDPDSC(10) .EQ. CHAR(108)) IDPDSC(10)=CHAR(100) - if(idpdsc(11).eq.char(33)) idpdsc(11)=char(2) - if(idpdsc(12).eq.char(100)) idpdsc(12)=char(188) - ENDIF - - ELSE IF (IMODEL .EQ. MSKECMWF ) THEN - print *, ' **try to read ecmwf grid' - IDPDSC(4) = CHAR(01) - IDPDSC(5) = CHAR(98) - IDPDSC(6) = CHAR(152) - IDPDSC(7) = CHAR(02) -C - ELSE IF (IMODEL .EQ. MSKTHUND) THEN - PRINT *,' GET NGM MOS THUNDER/SEVERE WX ID....' - IDPDSC(6) = CHAR(141) - IDPDSC(8) = CHAR(192) - IF (IDPDSC(9).EQ.CHAR(60)) THEN - IDPDSC(9) = CHAR(149) - ELSE IF (IDPDSC(9).EQ.CHAR(59)) THEN - IDPDSC(9) = CHAR(151) - ENDIF - IDPDSC(10) = CHAR(1) - IDPDSC(20) = CHAR( IAND(LABEL(3),MSK2)) -C - ELSE IF (ITYPE.EQ.8 .OR. ITYPE.EQ.53) THEN - PRINT *,' ****TRY TO GET A MERCTOR GRID.' - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(77) - IDPDSC(7) = CHAR(03) - IF (IFCSTHR.GT.168) IDPDSC(7)= CHAR(02) - ENDIF -C - IF ( IAND(LABEL(1),MSK1) .EQ. SFCMEANRH) THEN -C IDPDSC(7) = CHAR(202) - IF (IMODEL .NE. MSKNGM.AND.IMODEL.NE.MSKUK1) THEN - IDPDSC(11) = CHAR(44) - ENDIF -C print *, ' get a sfc-500 mean rh' - ENDIF -C .... MODIFY PDS TO POINT TO 1-DEGREE GRIB - DO I=1, 28 - PDS(I) = IDPDSC(I) - ENDDO -C - JREW = 0 - MPDS = -1 - MPDS(3) = mova2i(PDS(7)) - MPDS(5) = mova2i(PDS(9)) - MPDS(6) = mova2i(PDS(10)) - MPDS(7) = mova2i(PDS(11)) * 256 + mova2i(PDS(12)) - IF (IMODEL .EQ. MSKTRAJ) THEN - IDATATP = IAND(LABELP(1),MSK2F) -C PRINT *,' SET MPDS FOR TRAJVD=' - IF (IDATATP .EQ. TRAJVD) THEN -C PRINT *,' SET MPDS FOR TRAJVD' -C MPDS(14) = mova2i(PDS(19)) - MPDS(15) = mova2i(PDS(20)) -C MPDS(16) = mova2i(PDS(21)) - ENDIF - ELSE IF (FLAG.NE.CAC96HC .AND. FLAG.NE.GFS97HC) THEN - MPDS(14) = mova2i(PDS(19)) -C ..... FOR THE FORECAST HOUR CHECKING - ELSE IF (IMODEL .EQ. MSKTHUND) THEN -C MPDS(14) = mova2i(PDS(19)) - MPDS(15) = mova2i(PDS(20)) -C MPDS(16) = mova2i(PDS(21)) - ENDIF -C - IF (FLAG .EQ. AVPOLRV) THEN - IDPDSC(7) = CHAR(03) - MPDS(3) = 3 -C ..... FOR AVPOLARV - ENDIF -C -C READ I DEGREE GRIB FILE USING INDEX FILE -C -C print *,' mpds=' -C write (*,203)(mpds(k),k=1,25) -C 203 format( 5(5(1x,z16),/) ) -C print *,' jgds=' -C write (*,204)(jgds(k),k=1,100) -C 204 format( 20(5(1x,z16),/) ) -C -C - print *, ' Pds = ' - write(*, 12)(ipds(i),i=1,4) - 12 format( 2x, 4(z16,1x)) -C -C CALL GETGB1(LUGB,LUGI,MXSIZE,JREW,MPDS,JGDS, -C & GRIB,KBYTES,KREW,KPDS,KGDS,KBMS,C,IRET) -C - CALL GETGB1(LUGB,LUGI,ji,JREW,MPDS,JGDS, - & GRIB,KBYTES,KREW,KPDS,KGDSi,KBMS,CC,IRET) -C -C - IF (IRET .NE. 0) THEN - PRINT *,' **FATAL ERROR FROM GETGB.', IRET - IERR = IRET - GO TO 999 - ENDIF -C -C print *,'after getgb kpds = ',kpds - print *, ' Jds = ' - write(*, 16)(jpds(i),i=1,4) - 16 format( 2x, 4(z16,1x)) -C - IF (KPDS(16) .EQ. 0) THEN - ITAU = KPDS(14) - ELSE IF (KPDS(16) .EQ. 2) THEN - ITAU = KPDS(15) - ELSE IF (KPDS(16) .EQ. 3) THEN - ITAU = KPDS(15) - ELSE IF (KPDS(16) .EQ. 4) THEN - ITAU = KPDS(15) - ELSE IF (KPDS(16) .EQ. 10) THEN - ITAU = KPDS(14) - ELSE - PRINT *,' **ERROR - CAN NOT GET TAU. KPDS(16)=',KPDS(16) - ENDIF -C - print *,' ITAU=', itau - print *, ' Kds = ' - write(*, 14)(kpds(i),i=1,24) - 14 format( 6(2x, 4(z16,1x),/)) -C -C print *,'after getgb mpds = ',mpds -C PRINT *,'KBYTES = ',KBYTES -C PRINT *,'RECORD NO. OF GRIB RECORD IN INPUT FILE = ',KREW -C - 700 CONTINUE -C -C flip the grid so 1st point is S.pole at Greenwich -C - IF (KPDS(3) .EQ. 3) THEN - PRINT *, ' GET A ONE DEGREE GRIB' - DO N1=1,181 - DO M1=1,360 - DD(M1,181-N1+1) = CC(M1,N1) - ENDDO - ENDDO -C - DO N1 = 1, 181 - DD(361,N1) = DD(1,N1) - ENDDO -C - IF (ITYPE .EQ. AVTYPE) THEN -C print *, ' convert from one-degree to 5 degree ...' - LL1 = 0 - DO L1 = 1, 361, 5 - LL1 = LL1 + 1 - II1 = 0 - DO I1 = 1, 181, 5 - II1 = II1 + 1 - GG(LL1,II1) = DD(L1,I1) - ENDDO - ENDDO -C ... LOAD IT TO OUTPUT BUFFER - DO III=1,2701 - FLD(III) = GG2(III) - ENDDO -C - ELSE IF (FLAG .EQ. AVPOLRV) THEN -C .... CONVERT ONE DEGREE TO 2.5 DEGREE - CALL W3FT3X2P5(DD,BLOLA,CLOLA) -C DO NN=1, 5365 -C FLD(NN) = CLOLA(NN) -C ENDDO - DO NN=5221, 10585 - FLD(NN-5220) = CLOLA(NN) - ENDDO -C print *,' successfully get avpolar field from 1' -C .... FOR N.H. ONLY - ELSE IF (ITYPE .EQ. IG08) THEN -c define 116x44 grid - call makgds(ig08,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) ! kumar modified for ibm RS/6000 the call to exit -C kgdso(4)=-20826! fix w3fi71 error ! errexit(iret) is the ibm equiv of exit(iret) -C - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo08,1, - 1 ibi,kbms,cc,ko,rlat_08,rlon_08, - 2 ibo,lo_08,fld,iret) - if(iret.ne.0) call errexit(iret) -C - ELSE IF (ITYPE .EQ.26) THEN -c define 53x45 grid - PRINT *, ' CONVERT ONE-DEGREE TO LFM' - call makgds(ig26,kgdso,gdso,lengds,iret) - if(iret.ne.0) PRINT *,' IRET=',IRET -C - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 -C call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo,1, -C 1 ibi,kbms,cc,ko,rlat,rlon,ibo,lo,fld,iret) - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27,1, - 1 ibi,kbms,cc,ko,rlat_27,rlon_27, - 2 ibo,lo_27,fld,iret) - - if(iret.ne.0) PRINT *,' IRET=',IRET -C - ELSE IF (ITYPE .EQ. IG27) THEN -c define 65x65 grid - call makgds(ig27,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) - kgdso(4)=-20826! fix w3fi71 error -C - IF (UORFG .AND. UXPO.EQ.65 .AND. UYPO.EQ.65) THEN -C ... GET 129*129 - kgdso(2) = 129 - kgdso(3) = 129 - kgdso(8) = kgdso(8)/2 - kgdso(9) = kgdso(9)/2 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27_129,1, - 1 ibi,kbms,cc,ko,rlat_27_129,rlon_27_129, - 2 ibo,lo_27_129, fld,iret) - if(iret.ne.0) call errexit(iret) -C CALL W3FM08(b129,fld,129,129) - ELSE IF (.NOT. UORFG) THEN -C ... GET 65*65 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27,1, - 1 ibi,kbms,cc,ko,rlat_27,rlon_27, - 2 ibo,lo_27,fld,iret) - if(iret.ne.0) call errexit(iret) - ENDIF -C -C - ELSE IF (ITYPE .EQ. IG28) THEN -c define 65x65 grid - call makgds(ig28,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) - kgdso(4)=20826 ! fix w3fi71 error -C - IF (UORFG .AND. UXPO.EQ.65 .AND. UYPO.EQ.65) THEN -C ... GET 129*129 - kgdso(2) = 129 - kgdso(3) = 129 - kgdso(8) = kgdso(8)/2 - kgdso(9) = kgdso(9)/2 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27_129,1, - 1 ibi,kbms,cc,ko,rlat_27_129,rlon_27_129, - 2 ibo,lo_27_129, fld,iret) - if(iret.ne.0) call errexit(iret) -C CALL W3FM08(b129,fld,129,129) - ELSE IF (.NOT. UORFG) THEN -C ... GET 65*65 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27,1, - 1 ibi,kbms,cc,ko,rlat_27,rlon_27, - 2 ibo,lo_27,fld,iret) - if(iret.ne.0) call errexit(iret) - ENDIF -C - ELSE IF (ITYPE .EQ.29) THEN -C .... CONVERT ONE DEGREE TO 2.5 DEGREE - CALL W3FT3X2P5(DD,BLOLA,CLOLA) - DO NN=5221, 10585 - FLD(NN-5220) = CLOLA(NN) - ENDDO - print *,' successfully get a nh 2.5 degree field.' -C .... FOR N.H. ONLY - ELSE IF (ITYPE .EQ.30) THEN -C .... CONVERT ONE DEGREE TO 2.5 DEGREE - CALL W3FT3X2P5(DD,BLOLA,CLOLA) - DO NN=1, 5365 - FLD(NN) = CLOLA(NN) - ENDDO - print *,' successfully get a sh 2.5 degree field.' -C .... FOR S.H. ONLY - ELSE IF (ITYPE .EQ. IG53) THEN -c define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) -C kgdso(4)=-20826! fix w3fi71 error -C - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo53,1, - 1 ibi,kbms,cc,ko,rlat_53,rlon_53, - 2 ibo,lo_53,fld,iret) - if(iret.ne.0) call errexit(iret) -C - ELSE - PRINT *, ' ** UNRECOGNIZED DATA TYPE -- ', ITYPE - IERR = 10 - GO TO 999 - ENDIF -C - ELSE IF (KPDS(3) .EQ. 2) THEN -C PRINT *, ' GET A 2.5 DEGREE GRIB' - DO N1=1,73 - DO M1=1,144 - DD2(M1,73-N1+1) = CC2(M1,N1) - ENDDO - ENDDO -C - DO N1 = 1, 73 - DD2(145,N1) = DD2(1,N1) - ENDDO -C - IF (ITYPE .EQ. AVTYPE) THEN -C print *, ' convert from 2.5-degree to 5 degree ...' - LL1 = 0 - DO L1 = 1, 145, 2 - LL1 = LL1 + 1 - II1 = 0 - DO I1 = 1, 73, 2 - II1 = II1 + 1 - GG(LL1,II1) = DD2(L1,I1) - ENDDO - ENDDO -C ... LOAD IT TO OUTPUT BUFFER - DO III=1,2701 - FLD(III) = GG2(III) - ENDDO - ELSE IF (FLAG .EQ. AVPOLRV) THEN - DO N1=37, 73 - DO M1=1,145 - DD2N(M1,N1-36) = DD2(M1,N1) - ENDDO - ENDDO -C .... LOAD NH 2.5 DEGREE - DO NN=1, 5365 - FLD(NN) = DD2N1(NN) - ENDDO -C print *,' successfully get avpolar field from 2.5.' - ELSE IF (ITYPE .EQ. 27) THEN - DO N1=37, 73 - DO M1=1,145 - DD2N(M1,N1-36) = DD2(M1,N1) - ENDDO - ENDDO -C ..... N.H. - CALL W3FT05V(DD2N,EE,1) -C .... convert 2.5 degree to office 84 65*65 -C CALL W3FM08(EE,FF,65,65) -C ... smoother..... - DO III=1,4225 - FLD(III) = EE(III) - ENDDO - ELSE IF (ITYPE.EQ.28) THEN - DO N1=1,37 - DO M1=1,145 - DD2N(M1,N1) = DD2(M1,N1) - ENDDO - ENDDO -C ..... S.H. - CALL W3FT05V(DD2N,EE,1) -C .... convert 2.5 degree to office 84 65*65 -C CALL W3FM08(EE,FF,65,65) -C ... smoother..... - DO III=1,4225 - FLD(III) = EE(III) - ENDDO - ELSE IF (ITYPE .EQ. 29) THEN - DO N1=37, 73 - DO M1=1,145 - DD2N(M1,N1-36) = DD2(M1,N1) - ENDDO - ENDDO -C .... LOAD NH 2.5 DEGREE - DO NN=1, 5365 - FLD(NN) = DD2N1(NN) - ENDDO - print *,' successfully get a nh 2.5 grid from 2.5.' - ELSE IF (ITYPE .EQ. 30) THEN - DO N1=1, 37 - DO M1=1,145 - DD2N(M1,N1) = DD2(M1,N1) - ENDDO - ENDDO -C .... LOAD SH 2.5 DEGREE - DO NN=1, 5365 - FLD(NN) = DD2N1(NN) - ENDDO - print *,' successfully get a sh 2.5 grid from 2.5.' - ELSE - PRINT *, ' ** UNRECOGNIZED DATA TYPE -- ', ITYPE - IERR = 10 - GO TO 999 - ENDIF -C - ELSE IF (KPDS(3) .EQ.08 .AND. ITYPE .EQ. 08) THEN - DO III=1, 5104 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.27 .AND. ITYPE .EQ. 27) THEN - DO III=1, 4225 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.28 .AND. ITYPE .EQ. 28) THEN - DO III=1, 4225 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 5 .AND. ITYPE .EQ. 5) THEN - DO III=1, 3021 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 6 .AND. ITYPE .EQ. 26) THEN - DO III=1, 2385 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 26 .AND. ITYPE .EQ. 26) THEN - DO III=1, 2385 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.29 .AND. ITYPE .EQ. 29) THEN - DO III=1, 5365 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.30 .AND. ITYPE .EQ. 30) THEN - DO III=1, 5365 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.53 .AND. ITYPE .EQ. 53) THEN - DO III=1, 5967 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 101 .AND. ITYPE .EQ. 101) THEN - DO III=1, 10283 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 104 .AND. ITYPE .EQ. 104) THEN - DO III=1, 16170 - FLD(III) = C(III) - ENDDO - ELSE - PRINT *,' GRID ID TYPE =', KPDS(3) - PRINT *,' **ABEND, CANNOT PROCESS THIS GRID TYPE**' - IERR = 7 - GO TO 999 - ENDIF -C -C write(*,810)(buff(i),i=1,1440) -C810 format( 180(8(f10.3,2x),/)) -C - IF (IMODEL .EQ. MSKTRAJ) THEN - PDSL(6) = CHAR(18) - IF (PDSL(9).EQ.CHAR(152)) THEN - PDSL(9)=CHAR(17) - ELSE IF (PDSL(9).EQ.CHAR(148)) THEN - PDSL(9)=CHAR(11) - ELSE IF (PDSL(9).EQ.CHAR(182)) THEN - PDSL(9)=CHAR(133) - PDSL(10)=CHAR(101) - PDSL(11)=CHAR(70) - PDSL(12)=CHAR(85) - ELSE IF (PDSL(9).EQ.CHAR(183)) THEN - PDSL(9)=CHAR(133) - ENDIF - CALL W3FP11 (IGRIB,JPDS,MTITLE,IRET) - IRET = 0 -C - ELSE IF (FLAG .EQ. GFS97HC .OR. FLAG.EQ.GFS98TK) THEN - PDSL(9)=CHAR(07) - PDSL(5)=CHAR(08) - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) - ELSE IF (IMODEL .EQ. MSKTHUND) THEN - PDSL(5)=CHAR(08) - PDSL(9)=CHAR(07) - PDSL(8) = CHAR(128) - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) -C - ELSE IF (IMODEL .EQ. MSKTRAJ) THEN - PDSL(9)=CHAR(11) - PDSL(5)=CHAR(08) - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) - ELSE - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) -C .... to get a map title - ENDIF - IF (IRET .NE. 0) THEN - PRINT *, ' ** NOT A FATAL ERROR FROM W3FP11 -- ', IRET - IERR = 101 - ENDIF -C -C print *,' ' -C print *,title(1:86) -C print *,' ' -C - CGRIB(1:1) = CHAR(71) - CGRIB(2:2) = CHAR(82) - CGRIB(3:3) = CHAR(73) - CGRIB(4:4) = CHAR(66) - CGRIB(5:5) = CHAR(0) - CGRIB(6:6) = CHAR(0) - CGRIB(7:7) = CHAR(0) - CGRIB(8:8) = CHAR(1) -C -C PDS(7) = CHAR(27) - IF (ITYPE.EQ.26) ITYPE=6 - GRIB(15) = CHAR(ITYPE) -C - CALL W3FP13(CGRIB,JPDS,LIDREC,IRET) - CALL W3FI69(JPDS, IFWPDS) - KCENT=IFWPDS(23) - - IF (IRET .NE. 0) THEN - PRINT *,' ERROR RETURN FROM W3FP13:', IRET - IERR = IRET - ELSE - CALL GBYTES(LIDREC,LABEL,0,32,0,12) - LABEL(1) = IOR(IAND(MSK1,LABEL(1)),ITAU) - print *,' label after =' - write (*,224)(label(k),k=1,12) - ENDIF -C -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakr.fd/labelcon.f b/util/sorc/faxmakr.fd/labelcon.f deleted file mode 100755 index a2c139f003..0000000000 --- a/util/sorc/faxmakr.fd/labelcon.f +++ /dev/null @@ -1,1244 +0,0 @@ - SUBROUTINE LABELCON(FLD1,IMAX,JMAX,DOTSGI,A,B,KDN,LDN,IRETUR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: LABELCON PUT CONTOUR LABELS. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: LABEL CENTERS BY CALLING CENTRE AND LABEL THE CONTOURS -C BY CALLING CLABEL AND CLOSEC. -C -C PROGRAM HISTORY LOG: -C 94-10-31 ORGIONAL AUTHOR HENRICHSEN -C 94-11-28 HENRICHSEN/ PUT LOGIC TO USE OFF SET LABELS FOR -C LIN CONTOR STRIP LABELS AND LABELS ABOVE -C CONTOURS. -C 94-12-19 HENRICHSEN CHANGE JUP TO 2 FOR BOUNDARY LAYER RH. -C 94-12-22 LUKE LIN CONVERT IT CFT-77. -C 96-02-22 LUKE LIN ADD THE LOGIC TO TRAJECTORY VERTICAL -C DISPLACEMENT AND K INDEX MAPS. -C 96-05-30 LUKE LIN MODIFY CONTOUR LABEL POSITION FOR NGM -C 96-06-12 LUKE LIN MODIFY CONTOUR LABEL LOGIC FOR CENTRE, CLOSEC, -C AND LABEL ROUTINES. -C 96-09-12 LUKE LIN MODIFY FOR CGRID PRECIP CHARTS. -C 96-10-03 LUKE LIN MODIFY FOR TROPOPAUSE PRESSURE. -C 96-11-04 LUKE LIN MODIFY FOR PFAX1 TEMPERATURE PLOTS. -C 97-02-18 LUKE LIN ADD KEYIDX 34 FOR HIGHT CHANGE WITHOUT CENTERS. -C 97-03-12 LUKE LIN MODIFY FOR PROB. THUNDERSTORMS/SEVERE WX CENTERS. -C 97-12-04 LUKE LIN MODIFY KEYIDX 39 FOR GEO REL VORTICITY. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL LABELCON(Z,IMAX,JMAX,DOTSGI,A,B,KDN,LDN,IRETUR) -C INPUT ARGUMENT LIST: -C FLD1 - A GIVEN GRIDPOINT SCALED DATA FIELD -C IMAX - I-DIMENSION OF GRIDPOINT DATA FIELD -C JMAX - J-DIMENSION OF GRIDPOINT DATA FIELD -C DOTSGI - IS DOTS PER GRID INTERVAL -C - WHERE EACH DOT IS 1/100TH INCH ON VARIAN -C - NEGATIVE DOTSGI SIGNALS MERC SRN HEMI OPTION -C A - IS ADDITIVE CONSTANT -C B - IS MULTIPLICATIVE CONSTANT -C - WHERE TRUE Z VALUE = (Z + A) * B -C KDN - LOGICAL*1 FLAG =.TRUE. IF THIS A KDN FIELD. -C LDN - LOGICAL*1 FLAG =.TRUE. IF THIS A DN FIELD. -C -C OUTPUT ARGUMENT LIST: -C IRETUR - RETURN CONDITIONS FROM SUBS CALLED. -C - = 0, NORMAL -C - = 1, KEYIDX ERROR -C -C -C OUTPUT FILES: -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB -C - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - INTEGER IMAX, JMAX - REAL FLD1(IMAX,JMAX) -C - COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT -C -C - COMMON /ADJ1/ICOR,JCOR - COMMON /ADJ2/ XIDID,YJDID - COMMON /ADJ3/ IRTCOR,IUPCOR -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,LEVEL -C -C - COMMON /POLE/ XPOL,YPOL,GDTYPE -C -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C ...THE POLE POSITION IN GRID(53,57) IS AT GRID(27,49). -C - COMMON /CENTR/ CENTFLAG,CENTFONT,CENTNC,CENTCEN,CENTB1RC, - 1 CENTXID,CENTYID,CENTXLIM,CENTFLO,CENTFHI, - 2 CENTFORM - LOGICAL CENTFLAG - REAL CENTFONT,CENTXID,CENTYID,CENTXLIM,CENTB1RC - CHARACTER*4 CENTFORM,CENTFLO,CENTFHI - INTEGER CENTNC,CENTCEN -C - COMMON /CENTV/ CENVFLAG,CENVFONT,CENVNC,CENVJUP, - 1 CENVICR,CENVJCR,CENVB1RC,CENVFORM,CENVIFF - LOGICAL CENVFLAG - REAL CENVFONT,CENVB1RC - CHARACTER*4 CENVFORM,CENVIFF - INTEGER CENVNC,CENVJUP,CENVICR,CENVJCR -C - COMMON /FIXLAB/ LABFLAG,LABFONT,LABNC,LABRTC,LABUPC, - 1 LABNLAB,LABIJFIX(7),LABB1RC,LABIFF,LABFORM - LOGICAL LABFLAG - CHARACTER*4 LABFORM,LABIFF - REAL LABFONT, LABB1RC - INTEGER LABNC,LABRTC,LABUPC,LABNLAB,LABIJFIX -C -C - CHARACTER*4 IFORM - CHARACTER*4 IFOR01 - CHARACTER*4 IFOR02 - CHARACTER*4 IFOREL - CHARACTER*4 IFOR06 -C - CHARACTER*4 FORMC - CHARACTER*4 FORMT - CHARACTER*4 FORMV - REAL FONTC - REAL FONTT - REAL FONTV -C - INTEGER GDTYPE - INTEGER ITABMB(7) - INTEGER ITABFL(7) -C - CHARACTER*8 IFF1(5) - CHARACTER*8 IFFX(5) - CHARACTER*8 IFFN(5) - CHARACTER*8 IFF2(5) - CHARACTER*8 IFF3(5) - CHARACTER*8 IFF4(5) - CHARACTER*8 IFF5(5) - CHARACTER*8 IFG2(5) - CHARACTER*8 IFFT(5) - CHARACTER*8 IFFS(5) -C - CHARACTER*8 IFLO(5) - CHARACTER*8 IFHI(5) - CHARACTER*8 IFFV(5) - CHARACTER*8 IFFC(5) -C - INTEGER CIFF1(5) - INTEGER CIFFX(5) - INTEGER CIFFN(5) - INTEGER CIFF2(5) - INTEGER CIFF3(5) - INTEGER CIFF4(5) - INTEGER CIFF5(5) - INTEGER CIFG2(5) - INTEGER CIFFT(5) - INTEGER CIFFS(5) -C - INTEGER IRTCRC,IUPCRC - INTEGER ICORV,JCORV - INTEGER NCT,NCV,NCC -C - EQUIVALENCE (IFF1(1),CIFF1(1)) - EQUIVALENCE (IFFX(1),CIFFX(1)) - EQUIVALENCE (IFFN(1),CIFFN(1)) - EQUIVALENCE (IFF2(1),CIFF2(1)) - EQUIVALENCE (IFF3(1),CIFF3(1)) - EQUIVALENCE (IFF4(1),CIFF4(1)) - EQUIVALENCE (IFF5(1),CIFF5(1)) - EQUIVALENCE (IFG2(1),CIFG2(1)) - EQUIVALENCE (IFFT(1),CIFFT(1)) - EQUIVALENCE (IFFS(1),CIFFS(1)) -C - INTEGER NLAB - INTEGER ICEN - INTEGER HJFIX(5) - INTEGER IIFIX(3) - INTEGER JJFIX(5) - INTEGER KJFIX(5) - INTEGER KKFIX(3) - INTEGER LJFIX(5) - INTEGER SLFIX(5) - INTEGER MJFIX(5) - INTEGER MMFIX(5) - INTEGER TMPFIX(5) - INTEGER IJFIXC(5) - INTEGER IJFIX - INTEGER KCFIX(12) - INTEGER MXITR -C - INTEGER M(2) -C - LOGICAL KDN - LOGICAL LDN -C - LOGICAL FGCENT - LOGICAL FGCENV - LOGICAL FGLABC -C - DATA IFOR01 /'A+-+'/ - DATA IFOR02 /'A999'/ - DATA IFOREL /'A..9'/ - DATA IFOR06 /'S999'/ -C DATA IFF1 /4H(A1,,4H1H$),0,0,0/ -C DATA IFF2 /4H(A2,,4H1H$),0,0,0/ -C DATA IFF3 /4H(A3,,4H1H$),0,0,0/ -C DATA IFF4 /4H(A4,,4H1H$),0,0,0/ -C DATA IFG2 /4H(A3,,4H2HK$,1H),0,0/ - DATA CIFF1 /8H(A1,1H$),0,0,0,0/ - DATA CIFFX /8H(2HX$,A1,1H),0,0,0/ - DATA CIFFN /8H(2HN$,A1,1H),0,0,0/ - DATA CIFF2 /8H(A2,1H$),0,0,0,0/ - DATA CIFF3 /8H(A3,1H$),0,0,0,0/ - DATA CIFF4 /8H(A4,1H$),0,0,0,0/ - DATA CIFF5 /8H(1HF,A3,,8H1H$) ,0,0,0/ - DATA CIFG2 /8H(A3,2HK$,8H) ,0,0,0/ - DATA CIFFT /8H(1HT,A2,,8H1H$) ,0,0,0/ - DATA CIFFS /8H(1HS,A2,,8H1H$) ,0,0,0/ -C - DATA HJFIX /-13,-21,-29,-37,-45/ - DATA IIFIX /-17,-29,-43/ - DATA JJFIX /-8,-16,-24,-32,-40/ - DATA KJFIX /-5,-13,-21,-29,-37/ - DATA SLFIX /-6,-14,-22,-30,-38/ - DATA KKFIX /-27,-32,-37/ - DATA LJFIX /-16,-24,-32,-40,-48/ - DATA MJFIX /-7,-15,-23,-31,-39/ - DATA MMFIX /-10,-18,-26,-34,-42/ -C - DATA ITABMB/400,350,300,250,200,150,100/ - DATA ITABFL/240,270,300,340,390,450,530/ - DATA MXITR /7/ -C DATA KCFIX/0,-4,-8,-12,-16,-20,-24,-28,-32,-36,-40,-44/ - DATA KCFIX/-1,-5,-9,-13,-17,-21,-25,-29,-33,-37,-41,-45/ -C -C SKIP KEYIDX 51 AND ABOVE -C - IF (KEYIDX.GT.51) THEN - PRINT *, ' INVALID KEYDIX = ', KEYIDX - IRETUR = 1 - ENDIF -C -C print *,' in subroutine lbelcon' - print *,' keyidx=', keyidx -C print *,' max=', imax, jmax -C - PUTHGT = 1.0 - PUTANG = 0.0 - FONTC = 1.0 - FONTT = 1.0 - FONTV = 1.0 - IPRPUT(1) = 0 - IPRPUT(2) = 0 - IRETUR = 0 - NLAB = 5 - FGCENT = .FALSE. - FGCENV = .FALSE. - FGLABC = .FALSE. - IRTCOR = 0 - IUPCOR = 0 - ICOR = 0 - JCOR = 0 - ICORV = 0 - JCORV = 0 - IRTCRC = 0 - IUPCRC = 0 - FORMC = 'A999' - FORMT = 'A999' - FORMV = 'A999' -C - A1 = A - B1 = B - XIDID = -5.0 - YJDID = -5.0 - S = DOTSGI / 60.0 - M(1) = 0 - M(2) = 3 - NCT = 3 - NCV = 3 - NCC = 3 -C -C CHECK TO SEE WHAT LIMIT VALUE SHOULD BE. -C - IF (KEYIDX.EQ.5 .OR. KEYIDX.EQ.12 .OR. - 1 KEYIDX.EQ.19 .OR. KEYIDX.EQ.35 .OR. - 2 KEYIDX.EQ.42 .OR. KEYIDX.EQ.46 .OR. - 3 KEYIDX.EQ.47 .OR. KEYIDX.EQ.48 .OR. - 4 KEYIDX.EQ.49) THEN -C CENTERS MIGHT BE NEGATIVE - XLIM = -500.0 - ELSE IF (KEYIDX.EQ.20 .OR. KEYIDX.EQ.21 .OR. - 1 KEYIDX.EQ.28 .OR. KEYIDX.EQ.29) THEN -C THIS IS A LIFTED INDEX FILED - XLIM = -100.0 - ELSE IF (KEYIDX.EQ.9 .OR. KEYIDX.EQ.10) THEN -C THIS IS A VORTICITY FIELD. - XLIM=-1.0 - ELSE IF (KEYIDX.EQ.39) THEN -C THIS IS A GEO REL. VORTICITY FIELD. - XLIM=-100.0 - ELSE - XLIM=1.0 - ENDIF -C -C CHECK FOR PRESSURE OR HEIGHT IF TRUE SET FLAG TO -C PUT ON THE BIG "H" & "L" CENTERS. -C - IF (KEYIDX.EQ.1 .OR. KEYIDX.EQ.18 .OR. KEYIDX.EQ.2 - 1 .OR. KEYIDX.EQ.15 .OR. KEYIDX.EQ.26 .OR. KEYIDX.EQ.24 - 2 .OR. KEYIDX.EQ.31 .OR. KEYIDX.EQ.32) THEN -C ....PUT BIG H AND L - ICEN = 2 -C print *,' icen =2' - ELSE - ICEN = 1 - ENDIF -C - IF (KEYIDX. EQ. 22)THEN -C -C THIS IS A PRESSURE OR HEIGHT CHANGE FIELD -C - NCT = 3 - XLIM = -100.0 - ICEN = 1 - FORMT = 'A+-+' -C -C FIND AND LABEL THE PRESSURE OR HEIGHT CHANGE CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFLO,IFHI) -C -C LABEL THE LINES ABOVE THE CENTERS -C - JUP=2 - NCV = 3 - ICORV = -15 - JCORV = -10 - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO - FORMV = 'A+-+' -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFFV) -C -C PUT PRESSURE OR HEIGHT CHANGE STRIP LABELS . -C - NCC = 3 - IRTCRC = -15 - IUPCRC = -10 - FGLABC = .TRUE. - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FORMC = 'A+-+' - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = KJFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX, -C 1 IFORM,IFFC) - ENDDO - ELSE IF (KEYIDX. EQ. 23)THEN -C -C THIS IS A HEIGHT CHANGE FIELD -C - PUTHGT=11.0 - NCT = 4 - XLIM = -500.0 - ICEN = 1 - FORMT = 'A+-+' -C -C FIND AND LABEL THE HEIGHT CHANGE CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF4(I) - IFHI(I) = IFF4(I) - ENDDO -C - ELSE IF (KEYIDX.EQ.1 .OR. KEYIDX.EQ.31 .OR. KEYIDX.EQ.26)THEN -C -C THIS IS A PRESSURE FILED. -C - NCT = 3 - FORMT = 'A999' -C -C -C FIND AND LABEL THE PRESSURE CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFLO,IFHI) -C -C -C LABEL THE ISO BARS ABOVE THE CENTERS -C -C THIS IS A MSL PRESSURE FIELD - FORMV = IFOR02 - NCV =2 - ICORV = -10 - JCORV = -10 - JUP=7 -C print *,' call glosec' - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF2(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFF2) -C -C PUT STIP LABELS ON THE VERTICAL DISPLACEMENTS LINES -C - FORMC = 'A999' - NCC = 2 - IRTCRC = -10 - IUPCRC = -10 - DO I=1,5 - IFFC(I) = IFF2(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = SLFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF4) - ENDDO -C - ELSE IF (KEYIDX.EQ.2 .OR. KEYIDX.EQ.32 .OR. KEYIDX.EQ.15) THEN -C -C THIS IS A HEIGHT FIELD. -C - IF(LDN)THEN -C print *,' ldn section' - NCT = 4 - FORMT = 'I+-+' - ICEN = 1 - XLIM = -500.0 -C -C FIND AND LABEL THE DN CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF3,IFF3) - ELSE IF(KDN)THEN -C print *,' kdn section' - NCT = 4 - FORMT = 'I+-9' - ICEN = 1 - XLIM = -4000.0 - B1 = B1*10.0 -C -C FIND AND LABEL THE "K" DN CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF3,IFF3) -C -C -C PUT STIP LABELS ON THE "K" DN LINES. -C - FORMC = 'I+-9' - IRTCRC = -15 - IUPCRC = -10 - NCC =4 - DO I=1,5 - IFFC(I) = IFF4(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = JJFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF4) - ENDDO - ELSE -C print *,' elsesection' - NCT = 3 - FORMT = IFOR02 - ICEN = 2 - XLIM = -1000.0 -C print *, ' contst=', a1,b1,s -C -C FIND AND LABEL THE CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF3,IFF3) -C -C -C PUT STIP LABELS ON THE CONTOURS. -C - NCC = 3 - FORMC = IFOR02 - IRTCRC = -15 - IUPCRC = -10 - FONTC = 15.0 - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = MJFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF3) - ENDDO - ENDIF - ELSE IF (KEYIDX.EQ.3 .OR. KEYIDX.EQ.33) THEN -C -C THIS IS A THICKNESS FIELD. -C - IRTCRC = -15 - IUPCRC = -10 - NCC = 3 - FORMC = IFOR02 -C -C PUT STIP LABELS ON THE CONTOURS. -C - FONTC = 15.0 - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = MMFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF3) - ENDDO -C - ELSE IF (KEYIDX. EQ. 34)THEN -C -C THIS IS A HEIGHT CHANGE FIELD WITHOUT CENTERS -C - JUP=2 - NCV = 3 - ICORV = -15 - JCORV = -10 - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO - FORMV = 'A+-+' -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFFV) -C -C PUT HEIGHT CHANGE STRIP LABELS . -C - NCC = 3 - IRTCRC = -15 - IUPCRC = -10 - FGLABC = .TRUE. - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FORMC = 'A+-+' - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = KJFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX, -C 1 IFORM,IFFC) - ENDDO -C - ELSE IF (KEYIDX .EQ. 47)THEN -C -C THIS IS A TRAJECTORY VERTICAL DISPLACEMENT FIELD -C - NCV = 4 - ICORV = -20 - JCORV = -10 - FORMV = 'A+-+' - JUP = 4 -C -C LABEL THE VERTICAL DISPLACEMENT LINES ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF4(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFF4) -C -C PUT STIP LABELS ON THE VERTICAL DISPLACEMENTS LINES -C - FORMC = 'A+-+' - NCC = 4 - DO I=1,5 - IFFC(I) = IFF4(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,3 - IJFIXC(K3) = IIFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF4) - ENDDO - ELSE IF (KEYIDX .EQ. 48)THEN -C -C THIS IS A TRAJECTORY VERTICAL K INDEX FIELD -C - NCV = 3 - ICORV = -15 - JCORV = -10 - FORMV = 'A+-+' - JUP = 4 -C -C LABEL THE K INDEX LINES ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFF3) -C -C -C PUT STIP LABELS ON THE K INDEX LINES -C - FORMC = 'A+-+' - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FGLABC = .TRUE. - NCC = 3 - DO K3 = 1,3 - IJFIXC(K3) = IIFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF3) - ENDDO -C - ELSE IF (KEYIDX.EQ.5 .OR. KEYIDX.EQ.35 - 1 .OR. KEYIDX.EQ.46) THEN -C -C THIS IS A TEMPERATURE FIELD. -C - IF (GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) THEN -C -C ... FOR PFAX1 ONLY .... -C -C OUTPUT DIAMOND CIRCLE TEMPERATURE PLOTS (PFAX ONLY) -C - IRTCOR=-15 - IUPCOR=-6 - A3=0.0 - B3=1.0 - M(2)=3 - IFORM=IFOR01 - PUTHGT=1.0 - PUTANG = 0.0 - PRINT *,' ***CALL TEMPLP ****' - CALL TEMPLP(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,IFORM,IFF3) - GULPXX(2) = -48 - GULPXY(2) = -48 - RETURN - ELSE IF (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48) THEN -C -C ... FOR PFAX1 ONLY .... -C -C OUTPUT DIAMOND BOX TEMPERATURE PLOTS (PFAX ONLY) -C - IRTCOR=-15 - IUPCOR=-6 - A3=0.0 - B3=1.0 - M(2)=3 - IFORM=IFOR01 - PUTHGT=1.0 - PUTANG = 0.0 - PRINT *,' ***CALL TEMPLN****' - CALL TEMPLN(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,IFORM,IFF3) - GULPXX(2) = -49 - GULPXY(2) = -49 - RETURN - ELSE -C -C - NLAB = 5 - IRTCRC = -15 - IUPCRC = -10 - IF (GDTYPE .EQ. 26 .OR. GDTYPE .EQ. 05) THEN -C .... LFM TYPE GRID .... - IF (KEYIDX .EQ. 46 ) THEN - NLAB = 3 - DO I=1, NLAB - TMPFIX(I) = IIFIX(I) - ENDDO - ELSE - DO I=1, NLAB - TMPFIX(I) = MMFIX(I) - ENDDO - ENDIF - ELSE IF (GDTYPE .EQ. 27 .OR. GDTYPE.EQ.28) THEN -C .... NH NMC STANDARD GRID .... - DO I=1, NLAB - TMPFIX(I) = LJFIX(I) - ENDDO - ENDIF -C - NCC = 3 - FORMC = IFOR01 -C -C PUT STIP LABELS ON THE CONTOURS. -C - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = TMPFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF3) - ENDDO -C - FORMV=IFOR01 - NCV =3 - JUP=3 - ICORV = -15 - JCORV = -10 -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFF3) - ENDIF -C - ELSE IF (KEYIDX.EQ.6 .OR. KEYIDX.EQ.25 .OR. - 1 KEYIDX.EQ.27 .OR. KEYIDX.EQ.36 .OR. - 2 KEYIDX.EQ.45 )THEN -C -C THIS IS A RELATIVE HUMIDITY FIELD. -C -C PRINT *, ' ****** RELATIVE HUMIDITY**********' - NCT = 3 - FONTC = 2.0 - IF (KEYIDX .EQ. 6 )THEN -C -C DO NOT LABEL THE CENTERS -C - ELSE -C -C FIND AND LABEL THE CENTERS -C - NCT = 3 - FORMC=IFOREL - XIDID = -5.0 - YJDID = -5.0 - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF3,IFF3) - ENDIF -C - IFORM=IFOR02 - NCT = 2 - JUP = 4 - IF (KEYIDX .EQ. 27)THEN -C -C THIS IS TH BOUNDARY RH SO SET JUP TO 2 GRID INTERVALS. -C - JUP=2 - ENDIF -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - IF (KEYIDX .EQ. 25) THEN -C -C PUT 1 DIGET NUMBERS ON THE LINES -C - FORMV=IFOREL - FONTV = 2.0 - IFORM=IFOR02 - NCV = 1 - ICORV = -5 - JCORV = -10 - B10TH = B1/10.0 - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF1(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B10TH,M,JUP, -C 1 IFORM,IFF1) - ELSE IF (KEYIDX .EQ. 36)THEN -C -C PUT 2 DIGET NUMBERS ON THE LINES -C - FONTV = 1.0 - NCV = 2 - ICORV = -10 - JCORV = -10 - FORMV=IFOREL - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF2(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFF2) - ELSE - FONTV = 1.0 - NCV = 2 - FGCENV = .TRUE. - FORMV=IFOREL - ICORV = -10 - JCORV = -10 - DO I=1,5 - IFFV(I) = IFF1(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFF1) - ENDIF -C - ELSE IF (KEYIDX.EQ.7 .OR. KEYIDX.EQ.37 .OR. KEYIDX.EQ.19 - 1 .OR. KEYIDX.EQ.49) THEN -C -C THIS IS A PRECIPITATION FIELD. -C -C -C FIND AND LABEL THE CENTERS -C - IF (KEYIDX.EQ.7 .OR. KEYIDX.EQ.37) THEN - FONTT = 2.0 - NCT = 9 - FORMT = 'A999' - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO - ELSE -C ...SPECIAL FOR CGRID PRCIP CHARTS - PUTHGT = 2.0 - M(2) = 9 - FORMT = 'A999' - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO - CALL GENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, - 1 FORMT,IFHI,IFLO) -C - ENDIF - ELSE IF (KEYIDX.EQ.9 .OR. KEYIDX.EQ.13)THEN -C -C THIS IS A VORTICITY FIELD. -C -C -C FIND AND LABEL THE CENTERS -C - NCT = 1 - FORMT = IFOR02 - XIDID = -5.0 - YJDID = -5.0 - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFFN(I) - IFHI(I) = IFFX(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFFN,IFFX) -C -C THIS IS A VORTICITY FIELD. -C - JUP=4 - NCV = 2 - ICORV = -10 - JCORV = -10 - FORMV = 'A999' -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF2(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFF2) -C -C - ELSE IF(KEYIDX.EQ.20 .OR. KEYIDX.EQ.21 .OR. - 2 KEYIDX.EQ.28 .OR. KEYIDX.EQ.29) THEN -C -C THIS IS A LIFTED INDEX FIELD. -C -C FIND AND LABEL THE CENTERS -C - NCT = 1 - FORMT = 'A+-+' - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFFN(I) - IFHI(I) = IFFX(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF3,IFF3) -C IF (IRETUR .EQ. 5) RETURN -C -C THIS IS A LIFTED INDEX FIELD, PUT LEADING + OR - -C IN FRONT OF THE CONTOUR NUMBERS. -C - JUP=2 - NCV = 3 - ICORV = -15 - JCORV = -10 - FORMV = 'A+-+' -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFF3) -C -C PUT STIP LABELS ON THE CONTOURS. -C - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - NCC = 3 - IRTCRC = -15 - IUPCRC = -10 - FGLABC = .TRUE. - FORMC = 'A+-+' - DO K3 = 1,NLAB - IJFIXC(K3) = MJFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX, -C 1 IFORM,IFF3) - ENDDO -C - ELSE IF (KEYIDX.EQ.10 .OR. KEYIDX.EQ.40) THEN -C -C THIS A WIND/ISOTACHS FIELD -C - NCV =3 - ICORV = -15 - JCORV = -10 - JUP=2 - FORMV=IFOR06 -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C -C PRINT *,' ISOTACHS CALL CLOSEC' - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFG2(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFG2) -C - ELSE IF (KEYIDX.EQ.12 .OR. KEYIDX.EQ.42) THEN -C -C THIS IS A VERTICAL VELOCITY FIELD -C -C PRINT *,' ****VERTICAL VELOCITY*****' - FONTT = 11.0 - NCT = 1 - XIDID = -5.0 - YJDID = -10.0 - FORMT=IFOR01 -C -C FIND AND LABEL THE CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF1(I) - IFHI(I) = IFF1(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF1,IFF1) -C IF (IRETUR .EQ. 5) RETURN -C -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - FONTV = 1.0 - JUP=2 - NCV = 2 - ICORV = -10 - JCORV = -10 - FORMV=IFOR01 - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF2(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFF2) -C - ELSE IF (KEYIDX.EQ.39)THEN -C -C THIS IS A GEO REL VORTICITY FIELD. -C -C -C FIND AND LABEL THE CENTERS -C - NCT = 1 - FORMT = IFOR02 - XIDID = -5.0 - YJDID = -5.0 - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFFN(I) - IFHI(I) = IFFX(I) - ENDDO -C - JUP=4 - NCV = 3 - ICORV = -15 - JCORV = -15 - FORMV = 'A+-+' -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO -C -C - ELSE IF (KEYIDX.EQ.43) THEN -C -C ... TROPOPAUSE PRESSURE -C -C FIND INDIRECT TROP. PRESSURE STRIP LABELS - PRINT *,' CALL LABELP ' -C - IRTCOR=-12 - IUPCOR=-5 - PUTHGT=2.0 - LOX=1 - IFORM=IFOR02 - M=3 - DO K3=2,12 - IJFIX=KCFIX(K3) - IFMAT = 5 - CALL CLABEP(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,LOX, - X ITABMB,ITABFL,MXITR,IFORM,IFF5) - ENDDO -C -C -C FIND INDIRECT TROP PRESSURE FROM CENTERS -C -C ICOR=-10 -C JCOR=-5 -C JUP=2 -C CALL CLOSEX(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,LOX, -C XITABMB,ITABFL,MXITR,IFORM,IFF5) - RETURN -C -C - ENDIF -C -C ... COME TO HERE TO PUT CENTER LABEL OUT -C - IF (CENTFLAG) THEN - PRINT *,' **** CENTER FLAG IS ON.*****' - PUTHGT = CENTFONT - M(2) = CENTNC - ICEN = CENTCEN - IFORM = CENTFORM - XLIM = CENTXLIM - XIDID = CENTXID - YJDID = CENTYID - B1 = B * CENTB1RC -C PRINT *,' CENTFLO=',CENTFLO -C PRINT *,' CENTFHI=',CENTFHI - IF (CENTFLO .EQ. 'IFF1') THEN - DO I=1,5 - IFLO(I) = IFF1(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFFN') THEN -C PRINT *,' GET A CENTER LO' - DO I=1,5 - IFLO(I) = IFFN(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFF2') THEN - DO I=1,5 - IFLO(I) = IFF2(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFF3') THEN - DO I=1,5 - IFLO(I) = IFF3(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFF4') THEN - DO I=1,5 - IFLO(I) = IFF4(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFFT') THEN - DO I=1,5 - IFLO(I) = IFFT(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFFS') THEN - DO I=1,5 - IFLO(I) = IFFS(I) - ENDDO - ENDIF -C - IF (CENTFHI .EQ. 'IFF1') THEN - DO I=1,5 - IFHI(I) = IFF1(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFFX') THEN -C PRINT *,' GET A CENTER HI' - DO I=1,5 - IFHI(I) = IFFX(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFF2') THEN - DO I=1,5 - IFHI(I) = IFF2(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFF3') THEN - DO I=1,5 - IFHI(I) = IFF3(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFF4') THEN - DO I=1,5 - IFHI(I) = IFF4(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFFT') THEN - DO I=1,5 - IFHI(I) = IFFT(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFFS') THEN - DO I=1,5 - IFHI(I) = IFFS(I) - ENDDO - ENDIF - CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, - 1 IFORM,IFLO,IFHI) - ELSE IF (FGCENT) THEN - PUTHGT = FONTT - IFORM = FORMT - M(2) = NCT - CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, - 1 IFORM,IFLO,IFHI) - ENDIF -C -C ... COME TO HERE TO PUT CENTER ABOVE LABEL OUT -C - IF (CENVFLAG) THEN - PRINT *,' **** CENTER ABOVE FLAG IS ON.*****' - PUTHGT = CENVFONT - M(2) = CENVNC - IFORM = CENVFORM - ICOR = CENVICR - JCOR = CENVJCR - B1 = B * CENVB1RC - JUP = CENVJUP - IFORM = CENVFORM -C - IF (CENVIFF .EQ. 'IFF1') THEN - DO I=1,5 - IFFV(I) = IFF1(I) - ENDDO - ELSE IF (CENVIFF .EQ. 'IFF2') THEN - DO I=1,5 - IFFV(I) = IFF2(I) - ENDDO - ELSE IF (CENVIFF .EQ. 'IFF3') THEN - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO - ELSE IF (CENVIFF .EQ. 'IFF4') THEN - DO I=1,5 - IFFV(I) = IFF4(I) - ENDDO - ENDIF -C - CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFFV) - ELSE IF (FGCENV) THEN - PUTHGT = FONTV - IFORM = FORMV - M(2) = NCV - ICOR = ICORV - JCOR = JCORV - CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFFV) - ENDIF -C -C ... COME TO HERE TO PUT FIX CONTOUR LABEL OUT -C - IF (LABFLAG) THEN - PRINT *,' **** LABEL FLAG IS ON.*****' - PUTHGT = LABFONT - M(2) = LABNC - IFORM = LABFORM - IRTCOR = LABRTC - IUPCOR = LABUPC - B1 = B * LABB1RC - IFORM = LABFORM -C - IF ( LABIFF .EQ. 'IFF1') THEN - DO I=1,5 - IFFC(I) = IFF1(I) - ENDDO - ELSE IF ( LABIFF .EQ. 'IFF2') THEN - DO I=1,5 - IFFC(I) = IFF2(I) - ENDDO - ELSE IF ( LABIFF .EQ. 'IFF3') THEN - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - ELSE IF ( LABIFF .EQ. 'IFF4') THEN - DO I=1,5 - IFFC(I) = IFF4(I) - ENDDO - ENDIF -C - print *,' labnlab=',labnlab - DO K3 = 1,LABNLAB - print *,' k3=',k3,' =',labijfix(k3) - IJFIX = LABIJFIX(K3) - CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX, - 1 IFORM,IFFC) - ENDDO - ELSE IF (FGLABC) THEN -C PRINT *, ' ****LABEL DEFAULT CONSTANTS****' - PUTHGT = FONTC - IFORM = FORMC - M(2) = NCC - IRTCOR = IRTCRC - IUPCOR = IUPCRC -C PRINT *,' COR=',IRTCOR,' ',IUPCOR - DO K3 = 1,NLAB - IJFIX = IJFIXC(K3) - CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX, - 1 IFORM,IFFC) - ENDDO - ENDIF -C - IF (KEYIDX.EQ.19 .OR. KEYIDX.EQ.49) THEN -C ... SPECIAL FOR CGRID PRECIP MAP - CALL THINLB - ENDIF -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/main.block.data.f b/util/sorc/faxmakr.fd/main.block.data.f deleted file mode 100755 index 63509a18f9..0000000000 --- a/util/sorc/faxmakr.fd/main.block.data.f +++ /dev/null @@ -1,24 +0,0 @@ -C -C SUBPROGRAM: MAIN.BLOCK.DATA BLOCK DATA FOR MAIN IN FAXMAKR90 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: THIS IS THE BLOCK DATA STATEMENT FOR MAIN IN FAXMAKR90 CODE -C -C PROGRAM HISTORY LOG: -C 1999-08-01 KRISHNA KUMAR -C -C USAGE: BLOCK DATA ISCHED -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C - BLOCK DATA ISCHED_DATA - COMMON /FAXICK/ ISCHED(8,50),INXISCHED -C - DATA ISCHED / 165, 0, 0, 1800, X'8000',X'D800',0,0, ! Initializing ISCHED - 1 392*0/ - DATA INXISCHED / 1 / -C - END BLOCK DATA ISCHED_DATA - diff --git a/util/sorc/faxmakr.fd/main.orig.F b/util/sorc/faxmakr.fd/main.orig.F deleted file mode 100755 index 6381e71ed3..0000000000 --- a/util/sorc/faxmakr.fd/main.orig.F +++ /dev/null @@ -1,1155 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: FAXMAKR90 -C PRGMMR: JUMAR ORG: NP12 DATE: 2001-11-29 -C -C ABSTRACT: MAKE VARIAN/FAX MAPS. -C -C PROGRAM HISTORY LOG: -C 95-05-05 ORIGIONAL AUTHOR LUKE LIN -C 95-08-15 LUKE LIN ADD LINE ATTRIBUTES -C 96-01-31 LUKE LIN MODIFY TO GENERTE MULTIPLE CHARTS -C 96-03-27 LUKE LIN ADD PRINT TITLE. -C 96-05-10 LUKE LIN POINT TO FONTLIB AND CNTRLIB -C 96-06-04 HENRICHSEN ADD LOGIC TO GET A USER TITLE FROM THE PARM. -C ADDED LOGIC TO CALL CONSOL. -C 96-06-21 LUKE LIN MODIFY FOR UOR_DOT. -C 96-06-24 HENRICHSEN MODIFY TO GET 5DAY MEAN TITLES, ALSO ADD AN EXTRA -C LINE TO GULF TITLE. MODIFY COMMON/LLABFX/ TO -C PASS TITLE HEIGHT "THEIGHT" AND HGTFLG. -C 96-06-25 LUKE LIN MODIFY FOR GENERATING MULTIPLE CHARTS. -C 96-06-26 HENRICHSEN MODIFY TO GET THE SUBSET NUMBERS OF THE MAPS MADE -C INTO A WORK ARRAY FOR CALL TO CONSOL. -C 96-06-27 LUKE LIN ADDED DAVIDS LOGIC TO MAKE FAX CUTS. -C 96-06-28 LUKE LIN ADDED OPTION CARDS AND LOGIC TO MAKE FAX CUTS. -C 96-07-23 LUKE LIN POINT TO THE PRODUCTION BACKGROUND LIBRARY. -C 96-10-01 LUKE LIN MODIFY FOR NGM CGRID MAPS. -C 96-10-18 LUKE LIN MODIFY FOR VMAPMAKR MAPS. -C 96-11-18 LUKE LIN MODIFY FOR GFSFAX1 CHARTS. -C 97-01-21 LUKE LIN MODIFY TO ADD TAPE 54 FOR PLOT OBSERVATIONS. -C 97-02-21 LUKE LIN ADD PROPER EXIT STATUS. -C 97-03-13 LUKE LIN MODIFY TO GENERATE UKMET, ECMWF, 6-10 DAY DN, -C CAC BLENDED, TDL TSTM/SVR AND HGT MEAN CHARTS. -C 97-03-21 LUKE LIN MODIFY TO GENERATE GFS ANOMALY THICKNESS, 250MB FDPLT, -C AND NAM/NGM BOUNDARY LAYER WIND/RH PLOTS. -C 97-04-02 LUKE LIN ADD OPTION FOR USER EXTRA TITLE. -C 97-04-18 LUKE LIN FIX ECMWF D+3/D+8 MAP TITLES. -C 97-05-06 LUKE LIN ADD LAND-SEA MASKING TO MOS TTM/SVR WX MAPS. -C 97-06-03 LUKE LIN MODIFY FOR 12 HOUR SFC PRESSURE CHANGE. -C 97-07-11 LUKE LIN MODIFY FOR SETTING UNDEFINED GRID ON THE POLE AREA -C FOR TYPE 5 AND MAKE TRAJECTORY 4-PANEL CHART. -C 97-08-28 LUKE LIN ADD STATISTIC REPORT AT THE END OF PROGRAM. -C 98-06-15 FACEY CONVERT TO F90 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO INDEFF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8. -C MODIFIED TO USE DIRECT ACCESS I/O ON -C FAX FILE FOR IBM SP AS A REQUIREMENT FOR -C OSO. USED LOCAL DIRECTORY FOR MAP BACKGROUND, -C HENCE EACH SCRIPT MUST COPY THE -C APPROPRIATE MAP BACKGROUND FILES FROM -C PRODUCTION DIRECTORY -C /nwprod/util/fix/graph_gphbg -C OR IN CHECK OUT USER MAY USE OWN LOCAL -C BACKGROUND DIRECTORY SUCH AS -C /nfsuser/g02/wx12ph/util/fix/graph_gphbg. -C Introduced a call to ENDMAP to put the -C end record on the fax output. ENDMAP writes -C the end record in direct access mode. -C -C 2001-11-21 KRISHNA KUMAR CHANGED THE MODEL TABLE TO REFLECT -C CHANGES IN RESOLUTION FROM NAM32 KM TO -C NAM12 KM IN THE FAX LABELLING PROGRAM -C GULFTL. -C USAGE: -C INPUT FILES: -C FT05F001 - PROGRAM CONTROL CARDS. -C FT12F001 - THE DESIGN SEED FILE. -C -C OUTPUT FILES: -C FT06F001 - CHECK OUT STATEMENTS AND ERROR MESSAGES -C FT51F001 - HOLDS THE DESIGN FORMATED INTERMEDIATE METAFILE. -C FT61F001 - HOLDS THE COMPLETED VARIAN/FAX MAPS. -C -C SUBPROGRAMS CALLED: -C UNIQUE: - CLEAR CNTOR CUDFPI DGNOPN DGNSCN -C - FCLIP FRMFAXT GETCON GETFLD -C - GLOSEC GRD2IDGN IJ2UOR INDEFF INDFPI -C - MTITLE MODEC3 MODEC5 MODEC8 NONVIS -C - LBCNCON LNDFPI LSDFPI LSDFPZ -C - PLTVEC PRECIP REROTA SWABYT TWOFLD TXDFPI -C - TYPE66 UNPKHD UPDOWN VARIAN VHILO VTHIN -C - WNDPLT WRTDGN -C LIBRARY: -C W3LIB - W3AI01 W3AS00 W3AS01 W3AS02 W3AS03 -C - W3AI35 W3AQ15 W3FK15 W3FK40 W3FQ02 W3FQ03 -C - W3FM01 -C - W3LOG W3TAGB W3TAGE W3AK19 W3AQ09 -C GRAPHICS - BIN2EB GULFTL CONSOL -C -C EXIT STATES: -C ISTOP= 0 - SUCCESSFUL RUN -C 2 - NO FAX MAPS MADE, CHECK MAP REGISTRATION CONSTANTS! -C = 3 - NO FAX MAPS PROCESSED, CHECK DATA CARDS AND PRINT -C -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER MAXIWORD - PARAMETER (MAXIWORD=64) - INTEGER MAXJSLINE - PARAMETER (MAXJSLINE=3040) - - INTEGER LMAX - PARAMETER (LMAX=1024) - - INTEGER LMAX2 - PARAMETER (LMAX2 = 2*LMAX) !... = 2048 - -C - COMMON / CLRFLD / CLRLAT,CLRLOL,CLRUPR,LCLEAR,ECLEAR,NCLEAR - LOGICAL ECLEAR - LOGICAL LCLEAR - LOGICAL NCLEAR - REAL CLRLAT -C - COMMON / FLDCON / IDFLD(16), NUMFLD, NDEGNS -C - COMMON / KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C -C - COMMON / ILCON / MAP(15) - INTEGER MAP - -C - COMMON /ICON/ UA1(50),UA2(50),UA3(50),UM1(50),UM2(50),UM3(50), - 1 KTYPE(50) - CHARACTER*4 KTYPE -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB - 1 - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - COMMON /LLABFX/ TITPXX,TITPXY,HGTFLG,THEIGHT,NUMT,JBYT, - 1 TITLE,JFID,EXVALID -C - INTEGER TITPXX,TITPXY,HGTFLG,NUMT,JBYT - REAL THEIGHT - CHARACTER*152 TITLE - CHARACTER*48 JFID - CHARACTER*1 CIFID(48) - CHARACTER*32 EXVALID - -C - COMMON /MCON/ IADDB,IADDTAU,NUMTYP,NUMKEY, - 1 MTAU(18),MEAN(18),LMEAN,KDN,LDN - INTEGER MTAU - LOGICAL LDN - LOGICAL KDN - LOGICAL LMEAN - CHARACTER*4 MEAN - CHARACTER*104 PARM -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C - COMMON /POLE/ XPOL,YPOL,GDTYPE -ckumar - COMMON /POLENEW/ XMESHL -ckumar -C -C -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ... GRID MESH LENGHT = XMESHL = 381.0 KLM -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C ...THE POLE POSITION IN GRID(53,57) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C - - INTEGER IMAGSIZ_WRDS - PARAMETER (IMAGSIZ_WRDS=MAXIWORD*MAXJSLINE) -C -ckumar - INTEGER IBITPLANE(IMAGSIZ_WRDS) -ckumar - INTEGER LBGUNIT -C ... LBGUNIT -- INPUT BACKGROUND UNIT; NTOTWD - INTEGER NTOTWDS -C ... TOTAL WORDS IN BACKGROUND FILE - INTEGER NOLINES -C ... NO OF SCAN LINES IN THE BCAKGROUND FILE - INTEGER NOWIDTH -C ... THE WIDTH OF THE BACKGROUND FILE IN WORDS - INTEGER NOPIXELS -C ... THE WIDTH OF THE BACKGROUND FILE IN PIXELS -C - COMMON /UUNAME/ USRBYT,LUNAM,USRNAM -C - INTEGER USRBYT - LOGICAL LUNAM - CHARACTER*96 USRNAM -C -C .... THIS SET IS FOR UOR_DOT - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL U - LOGICAL UORFG -C -C ... FOR CONTOR OPTIONS - COMMON /CNTROP/ NDVD, NDIV, NCNTRFILT, NCENTFILT,SHADIV - INTEGER SHADIV -C ... NDVD FOR INTERPOLATION, NDIV FOR DIVISION -C ... NCNTRFILT FOR CONTOUR FILTER, NCENTFILT FOR CENTER FILTER -C -C - COMMON /CPOB/ CPOBFG,ITAPOB,ILVLT,KRUN,IOPTRA(2) - LOGICAL CPOBFG -C - REAL GRIDT1 -C - CHARACTER*80 INTEXT -C - COMMON /MESSG/ NUMGOD,SUBNUMS,ERRMSG,EXTRATIT -C - INTEGER NUMGOOD,SUBNUMS(40) -C - CHARACTER*55 ERRMSG(05) - CHARACTER*95 EXTRATIT - - CHARACTER*55 ENDMSG -C - CHARACTER*40 BLANKS - CHARACTER*12 CLEAR - CHARACTER*8 BLANK8 -C - INTEGER FAXFIL - INTEGER BDATE - INTEGER CLRLOL(2) - INTEGER CLRUPR(2) - INTEGER DGNSED - INTEGER GDTYPE - INTEGER MAXMAP -C -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C - INTEGER IGRIDT - INTEGER KDATE(2) - INTEGER OUTDGN,OUTDGN1,OUTDGN2,OUTDGN3,OUTDGN4,NUMDGN - INTEGER IFAXNO - INTEGER KFLAG - INTEGER IFCBF(180) - CHARACTER*8 GRIDTP -C - COMMON / GRB1 / LUGRB, LUGRBIX, IFCSTHR - INTEGER LUGRB, LUGRBIX - INTEGER GRPWHICH - INTEGER GRPMAP -C - INTEGER KROT_PRI(2),ICMD,IPT,JPT,NCHAR - REAL HEIGHT,ANGLE - CHARACTER*4 CTEXT -C - INTEGER IWINDOW(30) - LOGICAL LEBCDIC - LOGICAL EXTRA - INTEGER IACC - CHARACTER*8 CACC - EQUIVALENCE (IACC,CACC) -C -C - CHARACTER*40 CPATHBGND - CHARACTER*1 NULL - INTEGER LUNBGD - PARAMETER (LUNBGD=41) !... INPUT UNIT FOR MAP-BGND -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - COMMON /ALT_LBL/ LBL_INCOREQ,LBL_EMPTYQ,LABEL_PKD(LMAX) - LOGICAL LBL_INCOREQ - LOGICAL LBL_EMPTYQ - INTEGER LABEL_PKD -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... FOR PLOTTED STRIP-TITLES IN IMAGE_STR(I,J) ... - INTEGER MAXIWORD_STR - PARAMETER (MAXIWORD_STR=27) !... 27 I*8 = 1728 PELS - - INTEGER MAXJSLINE_STR - PARAMETER (MAXJSLINE_STR=800) !... LIMIT STRIP TITLES - -ckumar COMMON /STITLES/ IMAGE_STR - INTEGER IMAGE_STR(MAXIWORD_STR,MAXJSLINE_STR) - - COMMON /STITLPLT/NRECSTART_STR, NITMPLTED_STR, - 1 MXJVAL_STR, MXJLABITM_STR - INTEGER NRECSTART_STR !... PTR IN LABEL FILE - INTEGER NITMPLTED_STR !... COUNT STRITM PLTED - INTEGER MXJVAL_STR !... MAXJ STR PLTED - INTEGER MXJLABITM_STR !... AND THAT LABL ITEM -C - INTEGER IL_STR(15) - INTEGER IWINDOW_STR(30) !... map const: STRIP TITLES - INTEGER IMAGSIZ_STR - INTEGER NPXLOUT_STR - INTEGER NROWSHOW_STR -C - LOGICAL LCHKSORTQQ - LOGICAL LANYTITLESQQ -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . Statisitcs about LABEL array via LOOK_LAB() . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - integer lmtmxmn - parameter (lmtmxmn=8) - - INTEGER LMTPRIOR - PARAMETER (LMTPRIOR=8) - - COMMON /STAT_LAB/NITEM_TOT,NITEM_TITLE,NPRIOR_LAB, - 1 MAXIJ_LAB,MINIJ_LAB - - INTEGER NITEM_TOT !... TOTAL COUNT OF LABEL-ARRAY ITEMS - INTEGER NITEM_TITLE - INTEGER NPRIOR_LAB(LMTPRIOR,2) - integer MAXIJ_LAB(LMTMXMN,2) - integer MINIJ_LAB(LMTMXMN,2) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . used by bufow512() and bf512_wr() . . . . . - - COMMON /ARBFOX6B/ LUNX6B,LUX6BOPNQ,NBUFX6B,IPTR_X6BF - INTEGER LUNX6B - LOGICAL LUX6BOPNQ - INTEGER NBUFX6B - INTEGER IPTR_X6BF -C . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER J_FR_MAX - PARAMETER (J_FR_MAX=4) - INTEGER IWRD_FR_MAX - PARAMETER (IWRD_FR_MAX=15) - INTEGER IPXL_FR_MAX - PARAMETER (IPXL_FR_MAX=16) - - INTEGER LUNEXT6B - PARAMETER (LUNEXT6B=80) -C -C .......... FOR FAX CUT -C - COMMON /FAXICK/ ISCHED(8,50),INXISCHED - COMMON /FLFSRP/ INXLFSTRP,LSNUMBYT(20),LSINTEXT(20),LSTITPX(20), - 1 LSTITPY(20),LSDCKPX(20),LSDCKPY(20), - 2 LSDCKOPT(20),LSFONT(20) - CHARACTER*120 LSINTEXT - REAL LSFONT - COMMON /FRTSRP/ INXRTSTRP,RSNUMBYT(20),RSINTEXT(20),RSTITPX(20), - 1 RSTITPY(20),RSFONT(20),RSFCSTHR(20) - CHARACTER*120 RSINTEXT - INTEGER RSNUMBYT,RSTITPX,RSTITPY,RSFCSTHR - REAL RSFONT -C - COMMON/IOUTFAX/IFAXOUT,NRECFAX ! ADDED FOR DIRECT ACCESS FOR FAX OUTPUT -C - INTEGER IFAXOUT,NRECFAX -C - CHARACTER*8 BGNAME - EQUIVALENCE (BGNAME,MAP(1)) -C -C ... OPTN BITS TO MATCH THOSE GIVEN IN MAP(2) ... - INTEGER K0008X - DATA K0008X / X'0008' / !... LEAVE OUTP OPEN AT EXIT - INTEGER K0010X - DATA K0010X / X'0010' / !... ADDING ONTO LEFT-OPEN OUTP - - INTEGER MYOPTNBITS -C -ckumar -ckumar used block data statements separately !!!! -ckumar DATA ISCHED / 165, 0, 0, 1800, X'8000',X'D800',0,0, -ckumar 1 392*0/ -ckumar - DATA BLANKS - 1 /' '/ -C /'123456789012345678901234567890123456789012345678901234567890'/ - DATA CLEAR /'CLEAR CLEARE'/ - DATA BLANK8 /' '/ - DATA KFLAG /Z'FFFFFC0000000000'/ -C - EQUIVALENCE (IGRIDT,GRIDTP) -C -C--------------------- PROGRAM STARTS ------------------------------- -C -C - SAVE - CALL W3TAGB('FAXMAKR90',2001,0333,0068,'NP12') - -C - PARM = ' ' - IERR = 0 - -CKUMAR CALL W3AS00(NC,PARM,iret) -c - IRET_RAS2 = 0 - IRET_REB = 0 - NC = 0 -C -C CHECK TO SEE IF THERE IS A USER NAME IN THE PARM FIELD. -C - LUNAM = .FALSE. - IF(NC.GT.5)THEN - WRITE(6,FMT='('' MAIN: PARM="'',A,''".'')')PARM(1:NC) - IF(PARM(1:5).EQ.'NAME=')THEN - USRBYT = NC - 5 - USRNAM(1:USRBYT) = PARM(6:NC) -C - WRITE(6,FMT='('' USER NAME HAS'',I3,'' BYTES AND IS:"'', - 1 A,''".'')')USRBYT,USRNAM(1:USRBYT) - LUNAM = .TRUE. - ELSE - WRITE(6,FMT='('' NO USER NAME IN PARM!'')') - ENDIF -C - ENDIF - NULL = CHAR(0) - NUMGOOD = 0 - EXTRA = .FALSE. - ISTOP = 0 - LUNX6B = LUNEXT6B - IEXIT = 0 -C - CALL GETOVL(MAXMAP,DGNSED,MAP) - print*,'In main after GETOVL ' -C ... READ THE OVERALL MANDATORY INFORMATION IN -C PRINT 85, (MAP(NN),NN=2,15) -C 85 FORMAT (1H , 14(1X, I6)) - -C -C START MAIN LOOP... -C - GRPMAP = 0 - GRPWHICH = 0 - MWHICH = 1 -C ... GRPMAP FOR THE NUMBER OF MAP OF EACH FCST HOUR -C ... MIWHICH IS THE INDEX FOR EACH GROUP OF FCST HOUR -C -C -ckumar - NRECFAX = 0 -ckumar -C - 100 CONTINUE -C -C ... STARTING NEXT MAP .... -C - KEXIT = 0 -C - IF (MWHICH .GT. MAXMAP) GO TO 900 -C ... IF FINISH ALL MAPS, EXIT TO THE MAIN LOOP ... -C - PRINT 110,MWHICH - 110 FORMAT(/,1H0,'*** THIS IS THE ',I4,' MAP.') -C -C - PRINT *,' GRPWHICH=',GRPWHICH, ' GRPMAP=',GRPMAP - IF (GRPWHICH .EQ. GRPMAP) THEN -C ...GET ANOTHER FORECAST GROUP INFORMATION - CALL GETGRP(GRPMAP,LUGRB,LUGRBIX,IFCSTHR) - GRPWHICH = 0 - ENDIF -C . . . . . CONSTANTS FOR THE STRIP-TITLE WINDOW . . . . . . - - IL_STR(1) = 0 !... NO MAP BGND FOR STRIP-TITLE REGION - IL_STR(2) = 0 - - IL_STR(3) = 72 !... 1800-(72)=1728pels =27 longwords - IL_STR(4) = 0 - IL_STR(5) = 1728 - IL_STR(6) = MAXJSLINE_STR !... = 800 scanline max - - IL_STR(7) = 72 - IL_STR(8) = 0 - IL_STR(9) = 1728 - IL_STR(10) = MAXJSLINE_STR - - IL_STR(11) = 0 - IL_STR(12) = 0 - IL_STR(13) = 0 - IL_STR(14) = -7399 !... delta-j to position titles - IL_STR(15) = 0 - - CALL CONSTA(IL_STR,IWINDOW_STR) - - IWINDOW_STR(21) = 1 !... flags this as strip-titles -C -C - CALL CONSTA(MAP,IWINDOW) -C . . . COMPUTE SCALE AND ADJUSTMENT CONSTANTS ... -C - NOLINES = IWINDOW(4) - NOWIDTH = IWINDOW(15) - NOPIXELS = IWINDOW(16) - NTOTWDS = NOWIDTH * NOLINES - -C - MYOPTNBITS = 0 - - IF(IAND(MAP(2),K0010X) .NE. 0) THEN -C ... IF ADDING-ON TO PREVIOUSLY LEFT-OPEN PRODUCT FILE, - MYOPTNBITS = IBSET(MYOPTNBITS,0) !... MULTI-PANEL - MYOPTNBITS = IBSET(MYOPTNBITS,1) !... ADDING ON TO EXISTG - ENDIF - IF(IAND(MAP(2),K0008X) .NE. 0) THEN -C ... IF LEAVING THE OUTPUT FILE OPEN AT EXIT, - MYOPTNBITS = IBSET(MYOPTNBITS,0) !... MULTI-PANEL - MYOPTNBITS = IBSET(MYOPTNBITS,2) !... LEAVE OPEN AT END - ENDIF - -C - IF((NOWIDTH .LE. 0) .OR. (NOLINES .LE. 0)) THEN - WRITE(ERRMSG(2)(1:55), - 1 FMT='(''NO FAX MAPS MADE, CHECK MAP REGISTRATION CONS'', - 2 ''TANTS!!!!:'')') -C 1 '123456789012345678901234567890123456789012345', -C 2 ''6789012345'')') - WRITE(6,FMT='(1H ,''CNTR::CONSTA: DIMENSIONS OF IMAGE= ('', - 1 I4,'','',I6,'') ... WHICH ARE WRONG ! ! !'', - 2 /1H ,'' GO CHECK THE MAP REGISTRATION CONSTANTS!'', - 3 /1H ,'' * * * * E R R O R S T O P * * * *'')') - A NOWIDTH,NOLINES - IEXIT= 2 - GO TO 999 - ENDIF -C - DO I = 1,NTOTWDS - IBITPLANE(I) = 0 - ENDDO -C - -C ... THE FOLLOWING STRIP-TITLE INITIALIZATION NEEDS TO HAVE -C ... SOME IF TESTS FOR FIRST PANEL OF MULTI-CALL-CNTR PRODUCT - DO J = 1,MAXJSLINE_STR - DO I = 1,MAXIWORD_STR - IMAGE_STR(I,J) = 0 - ENDDO - ENDDO -C - NRECSTART_STR = 0 !... PTR IN LABEL FILE - NITMPLTED_STR = 0 - MXJVAL_STR = 0 - MXJLABITM_STR = 0 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C INITIALIZE LABEL ARRAY -C - LABIX = 0 - NOBUF = 0 -C - IPT = 1 - JPT = 0 - HEIGHT = 1.0 - ANGLE = 0.0 - KROT_PRI(1) = 0 - KROT_PRI(2) = 0 - CTEXT(1:1) = '?' - CTEXT(2:2) = CHAR(1) - CTEXT(3:3) = '$' - CTEXT(4:4) = CHAR(0) - NCHAR = 2 - ICMD = -2 - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, - X ICMD) -C - INXRTSTRP = 0 - INXISCHED = 1 - INXLFSTRP = 0 - DO LL = 2, 50 - DO NN = 1, 8 - ISCHED(NN,LL) = 0 - ENDDO - ENDDO -C ... DEFAULT FOR MAPPING CONSTANTS - UGRIDT1 = 37.5 - UORFG = .FALSE. - UXPO = 33.0 - UYPO = 33.0 - UXADJUS = -9.0 - UYADJUS = -7.0 - UCU2GI = 3810.0 -C ... DEFAULT FOR CONTOUR OPTIONS AND FILTERS - NDVD = 2 - NDIV = 4 - NCNTRFILT = 0 - NCENTFILT = 0 -C - INTEXT = BLANKS//BLANKS -C - 200 CONTINUE -C -C -C INITIALIZE POINTERS -C - JEXIT = 0 - CALL GETCON(INBYTE,INTEXT,NUMDGN,OUTDGN1,OUTDGN2, - 1 FAXFIL,GRIDT1,IFAXNO) -ckumar - IFAXOUT = FAXFIL -ckumar -ckumar OPEN THE OUTPUT FAX FILE IN DIRECT ACCESS MODE -ckumar REQUIREMENT FOR OSO -ckumar - OPEN (IFAXOUT, ACCESS='DIRECT', RECL=1440 ) -ckumar - OUTDGN3 = 78 - OUTDGN4 = 79 -C - IF (NDEGNS .EQ. 1) THEN - OUTDGN = OUTDGN1 - IF (CPOBFG) THEN - CALL RDOBVT(IERROR) -C ..... READ OBSERVATION TAPE - PRINT 212,IERROR - 212 FORMAT(1H0,'ERROR RETURN FROM RDOBVT ',I5) - ENDIF -C -C LOAD THE BACKGROUND IN -C - CPATHBGND(1:40) = ' ' -ckumar -ckumar Map background files are copied to the working local directory. -ckumar User must copy the relevant map background files from -ckumar /nwprod/util/fix/graph_gphbg -ckumar to the running directory in the script. -ckumar - CPATHBGND(1:) = './' //NULL -ckumar - CALL GETBGND(LUNBGD,CPATHBGND,IWINDOW, - 1 IBITPLANE,IRET_BG) - IF (BGNAME(1:6) .EQ. 'SH4001') CALL SHPLOT -C .... PLOT SPECIAL STATION ON SH4001 BACKGROUND - IF (GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) CALL POLSTNEX - IF (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48) CALL POLSTNEX -C .... PLOT SPECIAL STATION ON NH4005 FOR PFAX1 - - ELSE IF (NDEGNS .EQ. 2) THEN - OUTDGN = OUTDGN2 - ELSE IF (NDEGNS .EQ. 3) THEN - OUTDGN = OUTDGN3 - ELSE IF (NDEGNS .EQ. 4) THEN - OUTDGN = OUTDGN4 - ELSE - PRINT *, ' THE OUTPUT DESIGN FILE IS WRONG--',NDEGNS - OUTDGN = OUTDGN1 - ENDIF -C -C GET AND CHECK GRID TYPE FOR A VALID ONE. -C - IGRIDT = IDFLD(5) -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (IGRIDT, 8_8, 1_8) -#endif - IGRIDP = mova2i(GRIDTP(8:8)) - GDTYPE = IGRIDP - IF (KEXIT .EQ. 0) THEN - IF (GDTYPE.EQ.26 .OR. GDTYPE.EQ.27 .OR. GDTYPE.EQ.05 .OR. - 1 GDTYPE.EQ.101 .OR. GDTYPE.EQ.104 .OR. GDTYPE.EQ.28) THEN - print *,' lugrb=',lugrb,' lugrbix=',lugrbix - print *,' GDTYPE=', GDTYPE - PRINT *, 'NCNTRFILT, NCENTFILT = ', NCNTRFILT, NCENTFILT - CALL GRD2IDGN(DGNSED,KEYIDX,LUGRB, - 1 LUGRBIX,OUTDGN,INBYTE,INTEXT,GRIDT1, - 2 KDATE,JEXIT) - IF (JEXIT.NE.0) THEN - IEXIT = JEXIT - KEXIT = JEXIT - PRINT *,' ' - PRINT *,'--------------------------------------------' - WRITE(6,FMT='('' FATAL ERROR RETURN FROM GRD2DGN ='', - 1 I4,/,'' WILL NOT MAKE AND FAX CHART FOR: '',/,A)') - 2 IEXIT,INTEXT(1:INBYTE) - PRINT *,'--------------------------------------------' - PRINT *,' ' - ENDIF - ELSE -C -C THIS WAS NOT A VALID GRID TYPE SO READ TO END OF -C THIS SET OF DATA CARDS -C - PRINT *,' ' - PRINT *,'--------------------------------------------' - WRITE(6,FMT='('' FATAL ERROR BAD GRID TYPE ='', - 1 I4,/,'' WILL NOT MAKE AND FAX CHART FOR '',/,A)') - 2 GDTYPE,INTEXT(1:INBYTE) - PRINT *,'--------------------------------------------' - PRINT *,' ' - KEXIT = 1 - IEXIT = 1 - ENDIF -C -C CLOSE THE DESIGN SEED FILE AND -C AND THE INTERMEDIATE DESIGN FILE. -C - CLOSE (UNIT=DGNSED) - CLOSE (UNIT=OUTDGN) - ENDIF -C - IF (NDEGNS .LT. NUMDGN ) GO TO 200 -C .... GO BACK TO GENERATE SECOND DESIGN FILE -C -C -C =============== COME HERE, ALL THE DESIGN FILE BEING GENERATED ======== -C WE NEED TO SCAN LINE ELEM AND LINE STRINGS FIRST -C THEN TEXT STRING AFTER ABOVE ITEMS FOR BOTH DESIGNS -C -C - IF (KEXIT .EQ. 0) THEN -C -C OPEN THE INTERMEDIATES DESIGN FILE 1 FOR CONVERTING -C - CALL DGNOPN(OUTDGN1,IRTN) - IF(IRTN.EQ.0)THEN -C print *, ' **** design 1 for line string *****' -C -C SUCCESS WITH OPENING THE INTERMEDIATE DESIGN FILE 1 . -C - IELETYP = 3 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line elems', irtn -C ...for line element.... - IELETYP = 4 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line string', irtn -C ... FOR LINE STRING - ELSE - PRINT *, ' ERROR WHILE TRY TO OPEN DGN FILE 1' - ENDIF - CLOSE (UNIT=OUTDGN1) - ENDIF -C - IF (NUMDGN .GT. 1 .AND. KEXIT .EQ. 0) THEN -C -C OPEN THE INTERMEDIATES DESIGN FILE 2 FOR CONVERTING -C - CALL DGNOPN(OUTDGN2,IRTN) - IF(IRTN.EQ.0)THEN -C -C SUCCESS WITH OPENING THE INTERMEDIATE DESIGN FILE 2 . -C -C print *, ' **** design 2 for line string *****' - IELETYP = 3 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line elems', irtn -C ...for line element.... - IELETYP = 4 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line string', irtn -C ... FOR LINE STRING - ELSE - PRINT *, ' ERROR WHILE TRY TO OPEN DGN FILE 2' - ENDIF - CLOSE (UNIT=OUTDGN2) - ENDIF -C - IF (NUMDGN .GT. 2 .AND. KEXIT .EQ. 0) THEN -C -C OPEN THE INTERMEDIATES DESIGN FILE 3 FOR CONVERTING -C - PRINT *, 'GULPXX(2) =', GULPXX(2) - PRINT *, 'GULPXY(2) =', GULPXY(2) -C - IF (GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) THEN -C -C .... FOR THE TEMPERATURE PLOT -PFAX1 WITH A CIRCLE - PRINT *,' ***NOT PLOT THE THIRD CONTOUR***' -C - ELSE IF (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48) THEN -C -C .... FOR THE TEMPERATURE PLOT -PFAX1 WITH A BOX - PRINT *,' ***NOT PLOT THE THIRD CONTOUR***' -C - ELSE - CALL DGNOPN(OUTDGN3,IRTN) - IF(IRTN.EQ.0)THEN -C -C SUCCESS WITH OPENING THE INTERMEDIATE DESIGN FILE 3 . -C -C print *, ' **** design 3 for line string *****' - IELETYP = 3 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line elems', irtn -C ...for line element.... - IELETYP = 4 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line string', irtn -C ... FOR LINE STRING - ELSE - PRINT *, ' ERROR WHILE TRY TO OPEN DGN FILE 3' - ENDIF - CLOSE (UNIT=OUTDGN3) - ENDIF - ENDIF -C - IF (NUMDGN .GT. 3 .AND. KEXIT .EQ. 0) THEN -C -C OPEN THE INTERMEDIATES DESIGN FILE 3 FOR CONVERTING -C - PRINT *, 'GULPXX(2) =', GULPXX(2) - PRINT *, 'GULPXY(2) =', GULPXY(2) -C - IF (GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) THEN -C -C .... FOR THE TEMPERATURE PLOT -PFAX1 WITH A CIRCLE - PRINT *,' ***NOT PLOT THE THIRD CONTOUR***' -C - ELSE IF (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48) THEN -C -C .... FOR THE TEMPERATURE PLOT -PFAX1 WITH A BOX - PRINT *,' ***NOT PLOT THE THIRD CONTOUR***' -C - ELSE - CALL DGNOPN(OUTDGN3,IRTN) - IF(IRTN.EQ.0)THEN -C -C SUCCESS WITH OPENING THE INTERMEDIATE DESIGN FILE 3 . -C -C print *, ' **** design 3 for line string *****' - IELETYP = 3 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line elems', irtn -C ...for line element.... - IELETYP = 4 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line string', irtn -C ... FOR LINE STRING - ELSE - PRINT *, ' ERROR WHILE TRY TO OPEN DGN FILE 3' - ENDIF - CLOSE (UNIT=OUTDGN3) - ENDIF - ENDIF -C -C -C CLOSE THE LABEL TAPE -C - ICMD = -7 - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, - X ICMD) - ICMD = 999 - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, - X ICMD) -C -C - IF (KEXIT .EQ. 0) THEN -C *** SORT THE LABEL TAPE -C . . . S T E P (1.) SORT THE LABEL-ARRAY DATA -C WHETHER IN-CORE OR OUT ON FILE FT55 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - -C *** *** *** -C ... THE LABEL LIST IS ON A SEQUENTIAL FILE ... -C -C ... TO SORT/MERGE THE EXTERNAL FILE-55 LABEL-ARRAY FILE, - REWIND 55 - CALL MERGES(LUNINP,IRET_MRG) - IF(IRET_MRG .NE. 0) THEN -C ... IN OLD VERSION, THAT USED TO STOP WITHIN MERGE - WRITE(6,FMT='(1H ,''MAIN::MERGES: SERIOUS ERROR ... '', - 1 ''RETURNED WITH CODE='', I5)') - A IRET_MRG - REWIND LUNINP - - ELSE - WRITE(6,FMT='(1H ,''AINR: normal return from merges '', - 1 ''with sorted LABEL-data on ITAPE='',I4)') - A LUNINP - ENDIF - -C ... TO GATHER STATISTICS ABOUT THE LABEL-ARRAY ITEMS ... - NITEM_TOT = 0 - NITEM_TITLE = 0 - LANYTITLESQQ = .FALSE. - do j = 1,2 - do i = 1,LMTPRIOR - NPRIOR_LAB(I,J) = 0 - ENDDO - ENDDO - do j = 1,2 - do i = 1,LMTMXMN - MAXIJ_LAB(I,J) = 0 - ENDDO - ENDDO - do j = 1,2 - do i = 1,LMTMXMN - MINIJ_LAB(I,J) = 0 - ENDDO - ENDDO - if(.NOT. LBL_EMPTYQ) THEN - LCHKSORTQQ = .TRUE. - - call look_lab(LUNINP, LCHKSORTQQ, IRET_look) -C ... which works for case of LBL_INCOREQ also, -C ... by querying COMMON /ALT_LBL/ ... - -C WRITE(6,FMT='(1H ,''MAIN::look_lab: RETURNED WITH TOTAL '', -C 1 '' SORTED ITEM COUNT='',I8, -C 2 /1h ,7X,''look_lab() RETURN-CODE ='',I4)') -C A NITEM_TOT,IRET_look - - IF(IRET_LOOK .NE. 0) THEN - WRITE(6,FMT='(1H ,''MAIN:... WARNING ...:LOOK_LAB FAILED '', - 1 ''WITH RETURN CODE='',I3)') - A IRET_LOOK - ELSE -C ... OTHERWISE, NORMAL return from LOOK_LAB ... - IF(NITEM_TITLE .LE. 0) THEN - LANYTITLESQQ = .FALSE. - ELSE - LANYTITLESQQ = .TRUE. - ENDIF - ENDIF - ENDIF -C -C -C *** CALL PRINT TITLE TO OUTPUT TAPE54 -C - LEBCDIC = .FALSE. - DO IPRIO = 1, 5 - LOOPRIOR = IPRIO - 1 - CALL PRTITLE(LUNINP,LOOPRIOR,IWINDOW,LEBCDIC, - 1 IBITPLANE,NOWIDTH,NOLINES,IRTN) -C PRINT *,' PRTITLE: RETN-CODE=', IRTN - - IF(LANYTITLESQQ) THEN - NRECSTART_STR = minij_lab(7,2) - ICOUNTSTRIP = NPRIOR_LAB(IPRIO,2) - IF(ICOUNTSTRIP .GT. 0) THEN -C WRITE(6,FMT='(1H ,''MAIN::PRTITLE: FOR LOOPRIOR='',I3, -C 1 ''; COUNT OF STRIP-TITLE ITEMS='',I5, -C 2 /1H ,'' SO WE MUST CALL PRTITLE(FOR STRIP TITLES)'', -C 3 /1h ,'' WHICH BEGIN IN RECORD NUMBER='',I5)') -C A LOOPRIOR,ICOUNTSTRIP,NRECSTART_STR - CALL PRTITLE(LUNINP,LOOPRIOR,IWINDOW_STR,LEBCDIC, - 1 IMAGE_STR,MAXIWORD_STR,MAXJSLINE_STR,IRTN) - PRINT *,' PRTITLE: RETN-CODE=', IRTN - -C ELSE -C WRITE(6,FMT='(1H ,''MAIN::PRTITLE: FOR LOOPRIOR='',I3, -C 1 ''; NO STRIP-TITLES TO PROCESS'')') -C A LOOPRIOR - ENDIF - ENDIF - ENDDO -C -C *** CONVERT IT TO NMC 6-BIT **** -C - IF (KEXIT .EQ. 0 .AND. IRTN .EQ. 0) THEN -C -C ... to convert image to Extended 6-bit format and output it ... -C ... checkout only to output pure-raster image files ... - PRINT *,' NTOTWDS=',NTOTWDS - PRINT *,' NOWIDTH=', NOWIDTH - PRINT *,' NOLINES=', NOLINES -C LUNRAS = 89 -C WRITE(LUNRAS,ERR=900) (IBITPLANE(I),I=1,NTOTWDS) -C????????????????????????????????????????????????? - imgtyp = 0 !... main body of map -C - CALL img2x6t(imgtyp,IBITPLANE,NTOTWDS,NOWIDTH,NOLINES, - 1 IWINDOW(IPXL_FR_MAX),NOLINES,iret_ras2) -C - if(iret_ras2 .NE. 0) then - write(6,FMT='(1h ,''main::img2x6t:(main) Failed with '', - 1 ''retn code='',I5)') - A iret_ras2 - - IRET_CNT = 4 - go to 800 - endif -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... WAS ANY STRIP TITLES WRITTEN TO IMAGE_STR ?? - IF(NITMPLTED_STR .GT. 0) THEN - - IMAGSIZ_STR = MAXIWORD_STR * MAXJSLINE_STR - NPXLOUT_STR = 1728 - NROWSHOW_STR = MAXJSLINE_STR !... = 800 - LNCOUNT_STR = 800 !... might be reduced by dataj - - imgtyp = 1 !... passing the strip-title image - CALL img2x6t(imgtyp,IMAGE_STR,IMAGSIZ_STR, maxiword_STR, - 1 lncount_STR, - 2 npxlout_STR, nrowshow_STR,iret_ras2) - - if(iret_ras2 .NE. 0) then - write(6,FMT='(1h ,''main::img2x6t:(strp-titles) Failed '', - 1 ''with retn code='',I5)') - A iret_ras2 - IRET_CNT = 5 - go to 800 - endif -C ELSE -C write(6,FMT='(1h ,''main: skipped img2x6t() for converting '', -C 1 ''strip-title image into X6B code'', -C 2 /1h ,7X,''because no title data was plotted'')') - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C ================================================================ - - ISCHED(1,1) = IFAXNO - IFAXFG = 0 - CALL COMIFID(IFAXNO,JFID,IFAXFG,CIFID) - PRINT *,' CIFID=',(CIFID(M),M=1,48) - MYOPTNBITS = IBSET(MYOPTNBITS,7) !... GIVEN IFID IS IN ASCII -ckumar - NUMRECFAX = NRECFAX - LUNIPK6 = IFAXOUT - - CALL REBLKFX4(LUNEXT6B,LUNIPK6,NUMRECFAX,ISCHED,CIFID, - 1 MYOPTNBITS, iret_reb) -ckumar -ckumar We decrement NRECFAX by 1 to eliminate zero filled record -ckumar - NRECFAX = NUMRECFAX-1 -ckumar -C -C write(6,FMT='(1h ,''main::reblkfx4: return code='',I6)') -C A iret_reb - - NUMGOOD = NUMGOOD + 1 - SUBNUMS(NUMGOOD) = IFAXNO - ENDIF - ENDIF -C - 800 CONTINUE - MWHICH = MWHICH + 1 - GRPWHICH = GRPWHICH + 1 - CLOSE(UNIT=55) -C - IF (IRET_RAS2 .NE. 0) IERR = IRET_RAS2 - IF (IRET_REB .NE. 0) IERR = IRET_REB -C - GO TO 100 -C - 900 CONTINUE -C -C ....FINISH ALL MAPS -C -ckumar -ckumar IFCBF(1) = KFLAG -ckumar WRITE(IFAXOUT)IFCBF -ckumar Writing the final record in direct access mode. -ckumar - CALL ENDMAP(IFAXOUT,NRECFAX) - CLOSE (IFAXOUT) -C -C .....WRITE END-OF-MAP AT THE END VARIAN FILE -C - IF(NUMGOOD.LE.0)THEN - WRITE(ERRMSG(3)(1:55), - 1 FMT='('' FATAL ERROR - NO FAX MAP HAS BEEN MADE. '', - 2 ''PLEASE CHECK:'')') -C 1 '123456789012345678901234567890123456789012345', -C 2 ''6789012345'')') - NUMGOOD = 0 - IEXIT = 3 - PRINT *,' ' - PRINT *,'-------------------------------------------------' - PRINT *,ERRMSG(3) - ELSE -C - WRITE(ERRMSG(1)(1:55), - 1 FMT='(''MADE'',I3,'' OF'',I3,'' FAX MAPS THE SUBSET '', - 2 ''NUMBERS ARE: '')')NUMGOOD,MAXMAP -C 1 '123456789012345678901234567890123456789012345', - PRINT *,' ' - PRINT *,'-------------------------------------------------' - WRITE(6,FMT='('' MAIN:'',A)')ERRMSG(1)(1:55) - IF(NUMGOOD.GE.1)THEN - EXTRA = .TRUE. - ELSE - EXTRA = .FALSE. - ENDIF - ENDIF -C - 999 CONTINUE -C -C - IF(IEXIT.EQ.0)THEN - ISTOP = 1 - ELSE - ISTOP = IEXIT - IERR = IEXIT - ENDIF -C - ENDMSG = ERRMSG(ISTOP) - CALL CONSOL(ENDMSG) -C - IF(EXTRA)THEN -C - NUMT = 0 - NUMT = NUMGOOD/10 - IREM = MOD(NUMGOOD,10) - IF(IREM.NE.0)THEN - NUMT = NUMT + 1 - ENDIF - ISRT = 1 - IF(NUMGOOD.LE.10)THEN - IEND = NUMGOOD - LEFT = 0 - JEND = NUMGOOD - ELSE - IEND = 10 - JEND = 10 - LEFT = NUMGOOD - 10 - ENDIF -C -C WRITE(6,FMT='('' MAIN: MAKING'',I2,'' EXTRA CONSOL '' -C 1 ''MESSAGES BECAUSE !'')')NUMT -C - DO KK = 1,NUMT - EXTRATIT = ' ' - WRITE(EXTRATIT(1:95),FMT='(''SUBN='',20(I4,1X))') - 1 (SUBNUMS(II),II=ISRT,IEND) -C - KLOC = JEND*5+5 -C - EXTRATIT(KLOC:KLOC) = ':' - WRITE(6,FMT='('' MAIN:'',A)')EXTRATIT(1:KLOC) - CALL CONSOL(EXTRATIT) -C -C CHECK TO SEE IF WE ARE FINISHED -C - IF(LEFT.EQ.0)THEN - ELSE - ISRT = IEND + 1 - IF(LEFT.LE.10)THEN - IEND = NUMGOOD - JEND = NUMGOOD - LEFT = 0 - ELSE - IEND = ISRT + 10 - LEFT = NUMGOOD - IEND - ENDIF - ENDIF - ENDDO - ENDIF -C - PRINT *,"-------------------------------------------------" -C - CALL W3TAGE('FAXMAKR90') -C CALL W3AS02 (ISTOP) - CALL ERREXIT(IERR) ! cray EXIT modified for IBM/SP - STOP - END diff --git a/util/sorc/faxmakr.fd/makefile b/util/sorc/faxmakr.fd/makefile deleted file mode 100755 index 541fcfeede..0000000000 --- a/util/sorc/faxmakr.fd/makefile +++ /dev/null @@ -1,26 +0,0 @@ -SHELL=/bin/sh -# -OBJS= main.orig.o main.block.data.o grd2idgn.o frmfaxt.o getcon.o \ - getfld.o absvor.o indeff.o getovl.o getgrp.o comifid.o \ - strptitl.o labelcon.o precip.o mtitle.o iw3getv.o shplot.o \ - subfld.o twofld.o unpkhd.o updown.o wndplt.o gulftl.o \ - clear.o clredg.o block.o uor_dot.o absvws.o \ - gentre.o thinlb.o savlab.o clabep.o closex.o closey.o \ - templn.o templp.o polstnex.o rdobvt.o copyob.o ptwndx.o \ - tuwndr.o pltrh.o indfsea.o xlabel.o indftraj.o \ - indfslfm.o tjlabel.o vbound.o closee.o closet.o - -FC = ifort - -LDFLAGS = -qopenmp - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} ${W3G_LIB8} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -FFLAGS = -D_LITTLE_ENDIAN -O -g -traceback -C -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -faxmakr: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) $(GPHLIBS) - -clean: - -rm -f $(OBJS) diff --git a/util/sorc/faxmakr.fd/makefile.theia b/util/sorc/faxmakr.fd/makefile.theia deleted file mode 100755 index 541fcfeede..0000000000 --- a/util/sorc/faxmakr.fd/makefile.theia +++ /dev/null @@ -1,26 +0,0 @@ -SHELL=/bin/sh -# -OBJS= main.orig.o main.block.data.o grd2idgn.o frmfaxt.o getcon.o \ - getfld.o absvor.o indeff.o getovl.o getgrp.o comifid.o \ - strptitl.o labelcon.o precip.o mtitle.o iw3getv.o shplot.o \ - subfld.o twofld.o unpkhd.o updown.o wndplt.o gulftl.o \ - clear.o clredg.o block.o uor_dot.o absvws.o \ - gentre.o thinlb.o savlab.o clabep.o closex.o closey.o \ - templn.o templp.o polstnex.o rdobvt.o copyob.o ptwndx.o \ - tuwndr.o pltrh.o indfsea.o xlabel.o indftraj.o \ - indfslfm.o tjlabel.o vbound.o closee.o closet.o - -FC = ifort - -LDFLAGS = -qopenmp - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} ${W3G_LIB8} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -FFLAGS = -D_LITTLE_ENDIAN -O -g -traceback -C -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -faxmakr: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) $(GPHLIBS) - -clean: - -rm -f $(OBJS) diff --git a/util/sorc/faxmakr.fd/makefile.wcoss_cray b/util/sorc/faxmakr.fd/makefile.wcoss_cray deleted file mode 100755 index 7b690227fc..0000000000 --- a/util/sorc/faxmakr.fd/makefile.wcoss_cray +++ /dev/null @@ -1,26 +0,0 @@ -SHELL=/bin/sh -# -OBJS= main.orig.o main.block.data.o grd2idgn.o frmfaxt.o getcon.o \ - getfld.o absvor.o indeff.o getovl.o getgrp.o comifid.o \ - strptitl.o labelcon.o precip.o mtitle.o iw3getv.o shplot.o \ - subfld.o twofld.o unpkhd.o updown.o wndplt.o gulftl.o \ - clear.o clredg.o block.o uor_dot.o absvws.o \ - gentre.o thinlb.o savlab.o clabep.o closex.o closey.o \ - templn.o templp.o polstnex.o rdobvt.o copyob.o ptwndx.o \ - tuwndr.o pltrh.o indfsea.o xlabel.o indftraj.o \ - indfslfm.o tjlabel.o vbound.o closee.o closet.o - -FC = ifort - -LDFLAGS = -openmp - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} ${W3G_LIB8} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -FFLAGS = -D_LITTLE_ENDIAN -O -g -traceback -C -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -faxmakr: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) $(GPHLIBS) - -clean: - -rm -f $(OBJS) diff --git a/util/sorc/faxmakr.fd/makefile.wcoss_dell_p3 b/util/sorc/faxmakr.fd/makefile.wcoss_dell_p3 deleted file mode 100755 index 541fcfeede..0000000000 --- a/util/sorc/faxmakr.fd/makefile.wcoss_dell_p3 +++ /dev/null @@ -1,26 +0,0 @@ -SHELL=/bin/sh -# -OBJS= main.orig.o main.block.data.o grd2idgn.o frmfaxt.o getcon.o \ - getfld.o absvor.o indeff.o getovl.o getgrp.o comifid.o \ - strptitl.o labelcon.o precip.o mtitle.o iw3getv.o shplot.o \ - subfld.o twofld.o unpkhd.o updown.o wndplt.o gulftl.o \ - clear.o clredg.o block.o uor_dot.o absvws.o \ - gentre.o thinlb.o savlab.o clabep.o closex.o closey.o \ - templn.o templp.o polstnex.o rdobvt.o copyob.o ptwndx.o \ - tuwndr.o pltrh.o indfsea.o xlabel.o indftraj.o \ - indfslfm.o tjlabel.o vbound.o closee.o closet.o - -FC = ifort - -LDFLAGS = -qopenmp - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} ${W3G_LIB8} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -FFLAGS = -D_LITTLE_ENDIAN -O -g -traceback -C -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -faxmakr: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) $(GPHLIBS) - -clean: - -rm -f $(OBJS) diff --git a/util/sorc/faxmakr.fd/mtitle.f b/util/sorc/faxmakr.fd/mtitle.f deleted file mode 100755 index bcff7218ca..0000000000 --- a/util/sorc/faxmakr.fd/mtitle.f +++ /dev/null @@ -1,451 +0,0 @@ - SUBROUTINE MTITLE(LABEL) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: MTITLE PUT TITLES IN THE DESIGN MAP FILE. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: STORES THE MAP TITLES IN THE DESIGN FILE. -C -C PROGRAM HISTORY LOG: -C 94-09-28 ORIGINAL AUTHOR HENRICHSEN -C 94-11-28 HENRICHSEN ADD NEW ARG TO DGNTXT -C 94-12-30 LUKE LIN CONVERT IT CFT-77 -C 96-04-29 LUKE LIN MODIFY FOR FAXMAKR. -C 96-06-07 HENRICHSEN MODIFY PUT ON A USER TITLE AS NEEDED. AND -C FIX GULF LABEL. -C 96-06-21 HENRICHSEN MODIFY PUT AN ADDITIONAL LINE ON THE -C GULF LABEL IF LLEVEL FLAG IS .TRUE. -C FIX GULF LABEL. ADDED LOGIC TO USE TITLE -C HEIGHT "THEIGHT" THAT WAS PASSED IN COMMON/ -C LLABFX/. -C 96-06-27 HENRICHSEN MODIFY TO FIX SPACING INBETWEEN THE GULF LABEL -C TEXT. -C 96-10-10 LUKE LIN FIX GULF LABELS FOR GFS AND CGRID -C 96-11-18 LUKE LIN ADD THE TROPOPAUSE GULF TITLE. -C 97-06-18 LUKE LIN MODIFY FOR TYPE 5 NAM GULF TITLE. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C -C USAGE: CALL MTITLE -C INPUT ARGUMENT LIST: -C LABEL - 12 WORDS LABEL ON INPUT. WORDS 1-5 SHOULD CONTAIN -C LABEL ID OF DESIRED FIELD FLD. -C -C FROM COMMON/LLABFX/ -C GULPXX - INTEGER X GRID COORDINATE OF GULF TITLE -C GULPXY - INTEGER Y GRID COORDINATE OF GULF TITLE -C TITPXX - INTEGER X GRID COORDINATE OF MAP TITLE -C TITPXY - INTEGER Y GRID COORDINATE OF MAP TITLE -C NUMG - INTEGER WORD THAT CONTAINS THE NUMBER OF BYTES IN -C - GLAB ARRAY. -C NUMT - INTEGER WORD THAT CONTAINS THE NUMBER OF BYTES IN -C - TITLE ARRAY. -C GLAB - CHARACTER*24 ARRAY CONTAINS THE GULF TITLE. -C TITLE - CHARACTER*152 ARRAY CONTAINS THE TITLE. -C JFID - CHARACTER*48 ARRAY CONTAINS THE JFID TITLE IN -C LLEVEL - LOGICAL FLAG THAT SIGNALS IF THE HEIGHT OF SURFACE -C - IS TO BE ADDED AS AN EXTRA LINE ON THE GULF TITLE. -C -C FROM COMMON/POLE/ -C XPOL - REAL*4 X LOCATION OF POLE -C YPOL - REAL*4 Y LOCATION OF POLE -C GDTYPE - INTEGER*4 GRID TYPE FLAG. -C -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C -ckumar - COMMON /DUCKNOAA/ DUCKX,DUCKY,DUCKFG -ckumar - INTEGER DUCKX,DUCKY,DUCKFG -C - COMMON /ILCON/ MAP(15) - INTEGER MAP -C - CHARACTER*8 BGNAME - EQUIVALENCE (BGNAME,MAP(1)) -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB -C - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - COMMON /LLABFX/ TITPXX,TITPXY,HGTFLG,THEIGHT,NUMT,JBYT, - 1 TITLE,JFID,EXVALID -C - INTEGER TITPXX,TITPXY,HGTFLG,NUMT,JBYT - REAL THEIGHT - CHARACTER*152 TITLE - CHARACTER*48 JFID - CHARACTER*32 EXVALID -C - COMMON /EXTIT/ ETITFONT,ETITPXX,ETITPXY,NOEXT,EXTRAT,FGEXTRAT - REAL ETITFONT - INTEGER ETITPXX,ETITPXY,NOEXT - CHARACTER*80 EXTRAT - LOGICAL FGEXTRAT -C -C - LOGICAL LLEVEL -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU, - 1 LINEP,IGRIDP,T1 - -C - COMMON /POLE/ XPOL,YPOL,GDTYPE -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C - - COMMON /UUNAME/ USRBYT,LUNAM,USRNAM -C - INTEGER USRBYT - LOGICAL LUNAM - CHARACTER*96 USRNAM -C - LOGICAL LBIG -C - CHARACTER*10 GULFLAB -C - REAL PUTHGT,PUTANG,THGT,GHGT,UHGT - INTEGER IPRPUT(2) -C - INTEGER GDTYPE - INTEGER NUMV -C - INTEGER LABEL(12) - INTEGER MSK2 - DATA MSK2 /Z'00000000000000FF'/ - DATA GULFLAB /' '/ -C - LBIG = .FALSE. -C -C CHECK TO SEE IF GRID TYPE IS 26, IF SO SET LBIG = .TRUE. -C TO ADJUST HEIGHT AND I/J FOR PART OF GULF TITLE. -C - IF (IGRIDP.EQ.26)LBIG = .TRUE. - IF (IGRIDP.EQ.05)LBIG = .TRUE. -C -C CHECK TO SEE IF LLEVEL SHOULD BE ON -C - IF(LVFLG.GT.0)THEN - LLEVEL = .TRUE. - WRITE(6,FMT='('' MTITLE: PUTING AN EXTRA LINE IN THE GULF'', - 1 '' TITLE. THE GULF TITLE WILL BE :'',A)')GLAB(1:21) - ELSE - WRITE(6,FMT='('' MTITLE: LVFLG='',I2,'' THE GULF'', - 1 '' TITLE. THE GULF TITLE WILL BE :'',A)')LVFLG,GLAB(1:17) - LLEVEL = .FALSE. - ENDIF -C - PUTHGT = 11.0 - PUTANG = 0.0 - IPRPUT(1) = 0 - IPRPUT(2) = 2 - ITAG = 0 -C -C PUT TITLE ON MAP -C - IF (TITPXX.GT.0 .AND. TITPXY.GT.0) THEN - IF(HGTFLG.NE.0)THEN - THGT = THEIGHT - ELSE - THGT = PUTHGT - ENDIF - IX = TITPXX - MAP(13) - IY = TITPXY - MAP(14) - CALL PUTLAB(IX,IY,THGT,TITLE,PUTANG,NUMT,IPRPUT,ITAG) - ENDIF -C -C PUT USR'S TITLE FROM PARM. -C - IF(LUNAM)THEN - IX = TITPXX - MAP(13) - IY = TITPXY + 45 - MAP(14) - NUM = USRBYT - UHGT = PUTHGT -C - WRITE(6,FMT='('' MTITLE: PUTING AN EXTRA TITLE ON THE MAP.'', - 1 '' THE TITLE HAS '',I2,'' BYTES AND IS: '',A)')USRBYT, - 2 USRNAM(1:USRBYT) - CALL PUTLAB(IX,IY,UHGT,USRNAM,PUTANG,NUM,IPRPUT,ITAG) - ENDIF -C -C .... PUT EXTRA TITLE FROM OPTION CARDS - IF (FGEXTRAT) THEN - IF(HGTFLG.NE.0)THEN - THGT = THEIGHT - ELSE - THGT = PUTHGT - ENDIF - IX = ETITPXX - MAP(13) - IY = ETITPXY - MAP(14) - THGT = ETITFONT - WRITE(6,FMT='('' ETITLE: PUTING AN EXTRA TITLE ON THE MAP.'', - 1 '' THE TITLE HAS '',I2,'' BYTES AND IS: '',A)')NOEXT, - 2 EXTRAT(1:NOEXT) - CALL PUTLAB(IX,IY,THGT,EXTRAT,PUTANG,NOEXT,IPRPUT,ITAG) - ENDIF -C -C PUT DUCK LABEL ON THE MAP -C - IF (DUCKX.GT.0 .AND.DUCKY.GT.0) THEN - IX = DUCKX - MAP(13) - IY = DUCKY - MAP(14) - KANG = 0 - KFLAG = DUCKFG - CALL DUCK(IX,IY,KANG,KFLAG) - ENDIF -C -C PUT GULF LABEL ON MAP -C - IF (GULPXX(1) .GT.0 .AND. GULPXY(1) .GT.0) THEN - IF (IGRIDP.EQ.101 .AND. BGNAME(1:6).EQ.'NH4006') THEN -C .... FOR NGM C-GRID ON NH4006 - GHGT = 19.0 - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +20 - GULFLAB(1:6) = GLAB(1:6) - NCHAR = 6 - IF (GLAB(1:3) .EQ. 'QPV') THEN -C ... FOR QPVV NGM GRID-C ... - GULFLAB(1:5)='QPVV/' - GULFLAB(6:7)=GLAB(4:5) - GULFLAB(8:8)='H' - NCHAR = 8 - ENDIF - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) -C ...SUCH AS QPV12.... - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +10 - GULFLAB(1:5) = GLAB(7:11) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(1) - MAP(13) - 5 - IY = GULPXY(1) - MAP(14) - GULFLAB(1:5) = GLAB(13:17) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(1) - MAP(13) + 15 - IY = GULPXY(1) - MAP(14) - GULFLAB(1:7) = ' GRID-C' - NCHAR = 7 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(1) - MAP(13) - 5 - IY = GULPXY(1) - MAP(14) - 10 - GULFLAB(1:10) = '12HR ACCUM' - NCHAR =10 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ELSE -C FOR OTHER REGULAR MAP'S GULF TITLES -C -C CHECK TO SEE IF LBIG IS ON, IF SO ADJUST HEIGHT AND I/J -C - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +30 -C - IF (LBIG) THEN -C ... TYPE 26 OR 05 SUCH AS NGM, NAM ... - GHGT = 11.0 - IX = IX - 15 - GULFLAB(1:6) = GLAB(1:6) - NCHAR = 6 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ELSE IF (IGRIDP.EQ.27 .OR. IGRIDP.EQ.28) THEN -C ... TYPE 27 SUCH AS GFS - GHGT = 1.0 - IF (GLAB(1:2) .EQ. 'RH') THEN - GULFLAB(1:6) = GLAB(1:6) - ELSE IF (GLAB(1:3) .EQ. 'VOR') THEN - GULFLAB(1:6) = GLAB(1:6) - ELSE IF (GLAB(1:2) .EQ. 'LI') THEN - GULFLAB(1:6) = GLAB(1:6) - GULFLAB(3:3) = ' ' - ELSE IF (GLAB(1:2) .EQ. 'TP') THEN - GULFLAB(1:6) = GLAB(1:6) - GULFLAB(3:3) = ' ' - ELSE IF (GLAB(1:3) .EQ. 'THK') THEN - GULFLAB(1:6) = GLAB(1:6) - ELSE IF (KEYIDX.EQ.41) THEN - GULFLAB(1:3)='TP ' - ELSE - GULFLAB(1:2) = GLAB(18:19) - GULFLAB(3:5) = GLAB(3:5) - GULFLAB(3:3) = ' ' - ENDIF - NCHAR = 5 -C - IFCSTHR = IAND(LABEL(1),MSK2) - PRINT *,' IFCSTHR =',IFCSTHR - IF (IFCSTHR .GE. 100) THEN - GULFLAB(3:6) = GLAB(3:6) - GULFLAB(3:3) = ' ' - NCHAR = 6 - ENDIF - PRINT *,' GFS-LABEL1=', GULFLAB,' --=',GLAB(1:6) - PRINT *,' GLAB(16:24)=',GLAB(16:24) - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ELSE IF (IGRIDP.EQ.101) THEN -C ... TYPE 101 SUCH AS NGM C-GRID - GHGT = 1.0 - GULFLAB(1:6) = GLAB(1:6) -C PRINT *,' NGM C-GRID: GLAB=',GLAB(1:6) - NCHAR = 6 - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +30 - IF (GLAB(1:3) .EQ. 'QPV') THEN -C ... FOR QPVV NGM GRID-C ... - GULFLAB(1:5)='QPVV/' - GULFLAB(6:7)=GLAB(4:5) - GULFLAB(8:8)='H' -C PRINT *,' NGM C-GRID: GULFLAB=',GULFLAB(1:8) - NCHAR = 8 - ENDIF - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF -C -C CHECK TO SEE IF LLEVEL IS ON, IF SO ADD A HEIGHT LABEL -C LINE TO THE GULF LABEL -C - IF (LLEVEL .AND. IGRIDP.EQ.26) THEN - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +50 - IX = IX - 15 - GHGT = 11.0 - GULFLAB(1:5) = GLAB(18:22) - NCHAR = 4 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF -C - IF (LLEVEL .AND. IGRIDP.EQ.05) THEN - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +50 - IX = IX - 15 - GHGT = 11.0 - GULFLAB(1:5) = GLAB(18:22) - NCHAR = 4 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF -C - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +15 - GHGT = 1.0 - GULFLAB(1:5) = GLAB(7:11) - NCHAR = 5 -C PRINT *,' GFS-LABEL3=', GULFLAB - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IF (IGRIDP .NE. 101) THEN - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) - GULFLAB(1:5) = GLAB(13:17) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) -C PRINT *,' GFS-LABEL4=', GULFLAB -C - ELSE -C ... FOR NGM C-GRID - IX = GULPXX(1) - MAP(13) -10 - IY = GULPXY(1) - MAP(14) - GULFLAB(1:5) = GLAB(13:17) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(1) - MAP(13) + 30 - IY = GULPXY(1) - MAP(14) - GULFLAB(1:6) = 'GRID-C' - NCHAR = 6 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(1) - MAP(13) - 10 - IY = GULPXY(1) - MAP(14) - 15 - GULFLAB(1:10) = '12HR ACCUM' - NCHAR =10 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF -C - ENDIF - ENDIF -C -C -C CHECK TO SEE IF A 2ND GULF LABEL IS TO BE PUT ON THE MAP. -C - IF (GULPXX(2) .GT.0 .AND. GULPXY(2) .GT.0) THEN - IX = GULPXX(2) - MAP(13) - IY = GULPXY(2) - MAP(14) +30 - GULFLAB(1:6) = GLAB(1:6) - NCHAR = 6 -C -C CHECK TO SEE IF LBIG IS ON, IF SO ADJUST HEIGHT AND I/J -C - IF (IGRIDP.EQ.101 .AND. BGNAME(1:6).EQ.'NH4006') GOTO 700 -C - IF (LBIG) THEN - GHGT = 11.0 - IX = IX - 15 - ELSE - GHGT = 1.0 - ENDIF -C - IF (GLAB(1:3).EQ.'QPV' .AND. IGRIDP.EQ.101) THEN -C ... FOR QPVV NGM GRID-C ... - GULFLAB(1:5)='QPVV/' - GULFLAB(6:7)=GLAB(4:5) - GULFLAB(8:8)='H' - NCHAR = 8 - ENDIF - - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) -C -C CHECK TO SEE IF LLEVEL IS ON, IF SO ADD A HEIGHT LABEL -C LINE TO THE GULF LABEL -C - IF (LLEVEL) THEN - IX = GULPXX(2) - MAP(13) - IY = GULPXY(2) - MAP(14) +50 - IX = IX - 15 - GHGT = 11.0 - GULFLAB(1:5) = GLAB(18:22) - NCHAR = 4 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF - IX = GULPXX(2) - MAP(13) - IY = GULPXY(2) - MAP(14) +15 - GHGT = 1.0 - GULFLAB(1:5) = GLAB(7:11) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) -C - 700 CONTINUE -C - GHGT = 1.0 - IF (IGRIDP .NE. 101) THEN - IX = GULPXX(2) - MAP(13) - IY = GULPXY(2) - MAP(14) - GULFLAB(1:5) = GLAB(13:17) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) -C - ELSE -C ... FOR NGM C-GRID - IX = GULPXX(2) - MAP(13) -10 - IY = GULPXY(2) - MAP(14) - GULFLAB(1:5) = GLAB(13:17) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(2) - MAP(13) + 30 - IY = GULPXY(2) - MAP(14) - GULFLAB(1:6) = 'GRID-C' - NCHAR = 6 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(2) - MAP(13) - 10 - IY = GULPXY(2) - MAP(14) - 15 - GULFLAB(1:10) = '12HR ACCUM' - NCHAR =10 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF - ENDIF -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/pltrh.f b/util/sorc/faxmakr.fd/pltrh.f deleted file mode 100755 index 89003e074a..0000000000 --- a/util/sorc/faxmakr.fd/pltrh.f +++ /dev/null @@ -1,125 +0,0 @@ - SUBROUTINE PLTRH(FLDA,IMAX,JMAX,I1BIG,J1BIG,IGPLOT, - 1 ISTART,JSTART,DOTSGI) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK *** -C -C SUBPROGRAM: PLTHR PLOTS THE RELATIVE HUMIDITY AT GRID POINTS. -C AUTHOR:KRISHNA KUMAR ORG:W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: CONVERTS UNPACKED SCALED GRID POINT RH TO INTEGER -C AND PLOTS THE VALUES AT GRID POINT LOCATIONS. -C -C PROGRAM HISTORY LOG: -C 85-05-31 PETER HENRICHSEN -C 93-04-28 LUKE LIN CONVERT TO FORTRAN-77 AND ADD DOC BLOCK. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO XINDEF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL PLTRH(FLDA,IMAX,JMAX,I1BIG,J1BIG,IGPLOT,DOTSGI) -C INPUT ARGUMENTS: -C FLDA = FIELD CONTAINING THE RH GRID POINT DATA. -C IMAX,JMAX = THE DIMENIONS OF FLDA. -C I1BIG,J1BIG = THE CORRECTIVE LOCATION FROM BIG GRID FIELD. -C DOTSGI = DOTS PER GRID INTERVAL WHICH IS FUNCTION OF BGND. -C IGPLOT = INTEGER*2 TWO WORD ARRAY THAT CONTAINS THE FOLLING: -C IGPLOT(1) KEY TO DETERMINE ADDATIVE CONSTANTS FOR GRID CORR. -C IGPLOT(2) COTAINS TO PLOTTING INGREMENT FOR PLOTTING. -C IF .LE. 1 PLOT EVEY GRID POINT. -C IF .EQ. 2 PLOT EVEY OTHER GRID POINT. -C IF .EQ. 3 PLOT EVEY THIRD GRID POINT. -C -C INPUT FILES: NONE -C -C -C OUTPUT ARGUMENTS: NONE -C -C OUTPUT FILES: NONE -C -C -C -C RETURN CONDITIONS:NONE. -C -C SUBPROGRAMS CALLED: -C UNIQUE : BIN2EB PUTLAB -C -C LIBRARY: NONE -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE : IBM -C$$$ -C -C - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C COMMON USED FOR PUTLAB. -C - REAL FLDA(IMAX,JMAX) - REAL XINDEF - DATA XINDEF /1.0E307 / -C - INTEGER IADD(3) - DATA IADD /4,12,0/ - CHARACTER*8 IBCDCH -C - INTEGER JADD(3) - DATA JADD /4,08,0/ -C - INTEGER IGPLOT(2) - INTEGER IPR(2) -C -C -C CORRECT FOR LOCATION ON BACKGROUND. -C - IPR(1) = 0 - IPR(2) = 1 - KK = IGPLOT(1) - MM = IGPLOT(2) - IF(KK.LT.1) KK = 1 - IF(KK.GT.3) KK = 3 - IF(MM.LT.1) MM = 1 -C - IGDCOR = I1BIG - IADD(KK) - JGDCOR = J1BIG - JADD(KK) -C - N = 1 - IF(MM.NE.1) N = MM -C -C WHICH WILL MAKE SURE THAT THE 1ST GRID POINT IS ALWAYS PLOTTED -C - DO 340 J= JSTART,JMAX -C - DO 330 I =ISTART,IMAX -C - NODD = MOD(N,MM) - IF(NODD.NE.0) GO TO 320 -C - IF(FLDA(I,J).EQ.XINDEF) GO TO 320 - IRH =FLDA(I,J) + 0.5 - IF(IRH.GT.99) IRH = 99 -C -C CONVERT IRH TO HOLLERTH. -C - CALL BIN2EB(IRH,IBCDCH,2,'A99') -C -C . . . NOW GET IDOT AND JDOT LOCATION FOR PLOTTING OF RH. -C - XI = I + IGDCOR - XJ = J + JGDCOR -C -C . . . CONVERT TO DOTS. -C - IDOT = DOTSGI*(XI - 1.0) + 0.5 - JDOT = DOTSGI*(XJ - 1.0) + 0.5 -C -C . . . NOW PLOT THE HR ON MAP................. -C - CALL PUTLAB(IDOT,JDOT,1.0,IBCDCH,0.0,2,IPR,0) -C - 320 CONTINUE - N = N + 1 - 330 CONTINUE - 340 CONTINUE - RETURN - END -C diff --git a/util/sorc/faxmakr.fd/polstnex.f b/util/sorc/faxmakr.fd/polstnex.f deleted file mode 100755 index 6e3927ad5b..0000000000 --- a/util/sorc/faxmakr.fd/polstnex.f +++ /dev/null @@ -1,441 +0,0 @@ - SUBROUTINE POLSTNEX -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: POLSTNEX LIST OF STN NAMES AND IDOT/JDOT LOCATIONS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: LIST OF STATION NAMES AND IDOT/JDOT LOCATIONS AND PLOT THEM -C ON THE NH4005 BACKGROUND FOR PFAX1 CHARTS. -C IN A FORMAT WHICH WOULD FACILITATE CALLING PUTLAB() -C -C PROGRAM HISTORY LOG: -C 88-04-18 BOB HOLLERN -C 96-10-31 SHIMOMURA -- CONVERTED FROM LABEL-ARRAY FORMAT TO -C AN EXPANDED FORMAT -C 96-11-05 LUKE LIN -- ADD THE PLOTTING LOGIC. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO INDEFF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8 -C ADDED A BLOCK DATA TO MAKE IT RUN ON -C IBM RS/6000 SP SYSTEM. -C -C USAGE: /POLSTN/ COMMON BLOCK NAME IN PROGRAM PEPFAX -C -C OUTPUT ARGUMENT LIST: -C COMMON /POLSTN/MAXNNAM,IJANDNAM -C INTEGER MAXNNAM -C DATA MAXNNAM /219/ -C INTEGER IJANDNAM(8,220) -C I J ROT PRI ARW FON NC -C IJANDNAM(1,J) = IDOT -C IJANDNAM(2,J) = JDOT -C IJANDNAM(3,J) = 2-BIT ROTATION CODE -C IJANDNAM(4,J) = 3-BIT PRIORITY -C IJANDNAM(5,J) = 1-BIT FLAG FOR EXPLICIT CHAR-SET MODE -C IJANDNAM(6,J) = CHARACTER-SET INDEX -C IJANDNAM(7,J) = COUNT OF CHARACTERS IN THE FOLLOWING WORD -C IJANDNAM(8,J) = TEXT WORD OF UP TO 8 CHARACTERS, LEFT-JUSTIFIED -C -C REMARKS: -C IN USERS SOURCE CODE INCLUDE: -C EXTERNAL POLSTNEX -C -C WHICH WILL FORCE THE LINKAGE-EDITOR TO LOOK FOR polstnex.o * -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C ... THE OLD ASM VERSION HAD THE LABEL-ARRAY FORMATTED DATA ... -C ... TITLE 'COMMON /POLSTN/LABSTN -- STN LOCATORS ' -C ... BUT THIS FORTRAN VERSION HAS THE ARGUMENTS FOR PUTLAB() INSTEAD - - - COMMON /POLSTN/MAXNNAM,IJANDNAM - INTEGER MAXNNAM - INTEGER IJANDNAM(8,220) - - INTEGER IGROUP01(8,20) - EQUIVALENCE (IJANDNAM(1,1),IGROUP01(1,1)) - INTEGER IGROUP02(8,20) - EQUIVALENCE (IJANDNAM(1,21),IGROUP02(1,1)) - INTEGER IGROUP03(8,20) - EQUIVALENCE (IJANDNAM(1,41),IGROUP03(1,1)) - INTEGER IGROUP04(8,20) - EQUIVALENCE (IJANDNAM(1,61),IGROUP04(1,1)) - INTEGER IGROUP05(8,20) - EQUIVALENCE (IJANDNAM(1,81),IGROUP05(1,1)) - INTEGER IGROUP06(8,20) - EQUIVALENCE (IJANDNAM(1,101),IGROUP06(1,1)) - INTEGER IGROUP07(8,20) - EQUIVALENCE (IJANDNAM(1,121),IGROUP07(1,1)) - INTEGER IGROUP08(8,20) - EQUIVALENCE (IJANDNAM(1,141),IGROUP08(1,1)) - INTEGER IGROUP09(8,20) - EQUIVALENCE (IJANDNAM(1,161),IGROUP09(1,1)) - INTEGER IGROUP10(8,20) - EQUIVALENCE (IJANDNAM(1,181),IGROUP10(1,1)) - INTEGER IGROUP11(8,20) - EQUIVALENCE (IJANDNAM(1,201),IGROUP11(1,1)) - -* I J ROT PRI ARW FON NC -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C EXTERNAL LOOKTLB - COMMON /LKTLBS/LMTSETNUM,LOOKT - INTEGER LOOKT(9,63) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - INTEGER IPUTL_ARG(8) - CHARACTER*8 CPUTL_ARG(8) - EQUIVALENCE (IPUTL_ARG(1),CPUTL_ARG(1)) -C - - INTEGER IDOTSTN - EQUIVALENCE (IPUTL_ARG(1),IDOTSTN) - INTEGER JDOTSTN - EQUIVALENCE (IPUTL_ARG(2),JDOTSTN) - INTEGER IROTSTN - EQUIVALENCE (IPUTL_ARG(3),IROTSTN) - INTEGER IPRIORSTN - EQUIVALENCE (IPUTL_ARG(4),IPRIORSTN) - INTEGER IEXPLICITMODE - EQUIVALENCE (IPUTL_ARG(5),IEXPLICITMODE) - INTEGER IFONTINDEX - EQUIVALENCE (IPUTL_ARG(6),IFONTINDEX) - INTEGER NCHSTN - EQUIVALENCE (IPUTL_ARG(7),NCHSTN) - CHARACTER*8 CNAMESTN - EQUIVALENCE (CPUTL_ARG(8),CNAMESTN) - - - INTEGER IROTPRISTN(2) - INTEGER IDELTA - INTEGER JDELTA - -C - IDELTA = 36 * 9 - JDELTA = 36 * 7 -C - MAXNNAM = 178 - DO JSTN = 1,MAXNNAM - DO I = 1,8 - IPUTL_ARG(I) = IJANDNAM(I,JSTN) - ENDDO - HEIGHT = FLOAT(IFONTINDEX) - ANGLE = 0.0 - IF(IEXPLICITMODE .NE. 0) THEN - ITAG = 0 - IF(IFONTINDEX .GT. 0 .AND. IFONTINDEX .LE. LMTSETNUM) THEN -C ... IFONTINDEX IS W/I RANGE ... - IF(LOOKT(3,IFONTINDEX) .LT. 0) THEN -C ... THIS IS A SIDEWAYS FONT ... - ANGLE = 90.0 - ELSE - ANGLE = 0.0 - ENDIF - ENDIF - ELSE - ITAG = 1 - ENDIF - - IROTPRISTN(1) = IROTSTN - IROTPRISTN(2) = IPRIORSTN - - NCHARS = NCHSTN - IF(CNAMESTN(NCHARS:NCHARS) .EQ. '$') THEN - NCHARS = NCHARS - 1 - ENDIF - IF(NCHARS .GT. 0) THEN - - IPOS = IDOTSTN + IDELTA - JPOS = JDOTSTN + JDELTA -C - CALL PUTLAB(IPOS,JPOS,HEIGHT,CNAMESTN(1:NCHARS), - 1 ANGLE,NCHARS,IROTPRISTN,ITAG) - - ENDIF - ENDDO -C - RETURN - END -ckumar -ckumar ##################block data polstnex_data -ckumar - BLOCK DATA POLSTNEX_DATA -C - COMMON /POLSTN/MAXNNAM,IJANDNAM - INTEGER MAXNNAM - INTEGER IJANDNAM(8,220) - - INTEGER IGROUP01(8,20) - EQUIVALENCE (IJANDNAM(1,1),IGROUP01(1,1)) - INTEGER IGROUP02(8,20) - EQUIVALENCE (IJANDNAM(1,21),IGROUP02(1,1)) - INTEGER IGROUP03(8,20) - EQUIVALENCE (IJANDNAM(1,41),IGROUP03(1,1)) - INTEGER IGROUP04(8,20) - EQUIVALENCE (IJANDNAM(1,61),IGROUP04(1,1)) - INTEGER IGROUP05(8,20) - EQUIVALENCE (IJANDNAM(1,81),IGROUP05(1,1)) - INTEGER IGROUP06(8,20) - EQUIVALENCE (IJANDNAM(1,101),IGROUP06(1,1)) - INTEGER IGROUP07(8,20) - EQUIVALENCE (IJANDNAM(1,121),IGROUP07(1,1)) - INTEGER IGROUP08(8,20) - EQUIVALENCE (IJANDNAM(1,141),IGROUP08(1,1)) - INTEGER IGROUP09(8,20) - EQUIVALENCE (IJANDNAM(1,161),IGROUP09(1,1)) - INTEGER IGROUP10(8,20) - EQUIVALENCE (IJANDNAM(1,181),IGROUP10(1,1)) - INTEGER IGROUP11(8,20) - EQUIVALENCE (IJANDNAM(1,201),IGROUP11(1,1)) -C - DATA MAXNNAM /178/ -C - DATA IGROUP01 / -* I J ROT PRI ARW FON NC - A 990, 658, 0, 0, 1, 4, 6, ")BGBW$", - 1 937, 698, 0, 0, 1, 4, 6, ")BGSF$", - 2 852, 766, 0, 0, 1, 4, 6, ")BGTL$", - 3 1043, 758, 0, 0, 1, 5, 6, ")BIKF$", - 4 1034, 779, 0, 0, 1, 5, 6, ")BIKR$", - 5 970, 557, 0, 0, 1, 4, 6, ")CYCA$", - 6 620, 586, 0, 0, 1, 4, 6, ")CYEG$", - 7 878, 639, 0, 0, 1, 4, 6, ")CYFB$", - 8 958, 449, 0, 0, 1, 4, 6, ")CYHZ$", - 9 893, 456, 0, 0, 1, 4, 6, ")CYQB$", - A 941, 431, 0, 0, 1, 4, 6, ")CYQI$", - 1 1007, 516, 0, 0, 1, 4, 6, ")CYQX$", - 2 787, 750, 0, 0, 1, 4, 6, ")CYRB$", - 3 876, 439, 0, 0, 1, 4, 6, ")CYUL$", - 4 540, 591, 0, 0, 1, 4, 6, ")CYVR$", - 5 705, 504, 0, 0, 1, 4, 6, ")CYWG$", - 6 750, 591, 0, 0, 1, 4, 6, ")CYYQ$", - 7 951, 545, 0, 0, 1, 4, 6, ")CYYR$", - 8 1025, 509, 0, 0, 1, 4, 6, ")CYYT$", - 9 829, 416, 0, 0, 1, 4, 6, ")CYYZ$" / - - DATA IGROUP02 / - A 533, 665, 0, 0, 1, 4, 6, ")CYZP$", - 1 1221, 860, 0, 0, 1, 5, 6, ")EBBR$", - 2 1232, 888, 0, 0, 1, 5, 6, ")EDDF$", - 3 1193, 898, 0, 0, 1, 5, 6, ")EDDH$", - 4 1254, 911, 0, 0, 1, 5, 6, ")EDDM$", - 5 1112, 975, 0, 0, 1, 5, 6, ")EFHK$", - 6 1188, 819, 0, 0, 1, 5, 6, ")EGCC$", - 7 1210, 827, 0, 0, 1, 5, 6, ")EGLL$", - 8 1162, 810, 0, 0, 1, 5, 6, ")EGPK$", - 9 1206, 863, 0, 0, 1, 5, 6, ")EHAM$", - A 1193, 775, 0, 0, 1, 5, 6, ")EICK$", - 1 1183, 775, 0, 0, 1, 5, 6, ")EINN$", - 2 1171, 914, 0, 0, 1, 5, 6, ")EKCH$", - 3 1049, 915, 0, 0, 1, 5, 6, ")ENBO$", - 4 1123, 904, 0, 0, 1, 5, 6, ")ENGM$", - 5 1136, 874, 0, 0, 1, 5, 6, ")ENZV$", - 6 1171, 917, 0, 0, 1, 5, 6, ")ESMM$", - 7 1126, 940, 0, 0, 1, 5, 6, ")ESSA$", - 8 1435, 608, 0, 0, 1, 5, 6, ")GCLP$", - 9 1592, 498, 0, 0, 1, 5, 6, ")GOOO$" / - - DATA IGROUP03 / - A 1525, 444, 0, 0, 1, 5, 6, ")GVAL$", - 1 914, 395, 0, 0, 1, 4, 6, ")KACK$", - 2 779, 296, 0, 0, 1, 4, 6, ")KATL$", - 3 904, 406, 0, 0, 1, 4, 6, ")KBOS$", - 4 616, 225, 0, 0, 1, 4, 6, ")KBRO$", - 5 622, 249, 0, 0, 1, 4, 6, ")KCRP$", - 6 649, 310, 0, 0, 1, 4, 6, ")KDAL$", - 7 604, 418, 0, 0, 1, 4, 6, ")KDEN$", - 8 797, 399, 0, 0, 1, 4, 6, ")KDTW$", - 9 599, 523, 0, 0, 1, 4, 6, ")KGTF$", - A 850, 360, 0, 0, 1, 4, 6, ")KIAD$", - 1 654, 270, 0, 0, 1, 4, 6, ")KIAH$", - 2 882, 383, 0, 0, 1, 4, 6, ")KJFK$", - 3 497, 429, 0, 0, 1, 4, 6, ")KLAS$", - 4 454, 427, 0, 0, 1, 4, 6, ")KLAX$", - 5 599, 255, 0, 0, 1, 4, 6, ")KLOI$", - 6 823, 191, 0, 0, 1, 4, 6, ")KMIA$", - 7 691, 379, 0, 0, 1, 4, 6, ")KMKC$", - 8 719, 442, 0, 0, 1, 4, 6, ")KMSP$", - 9 711, 258, 0, 0, 1, 4, 6, ")KMSY$" / - - DATA IGROUP04 / - A 651, 343, 0, 0, 1, 4, 6, ")KOKC$", - 1 757, 400, 0, 0, 1, 4, 6, ")KORD$", - 2 516, 558, 0, 0, 1, 4, 6, ")KPDX$", - 3 870, 373, 0, 0, 1, 4, 6, ")KPHL$", - 4 506, 383, 0, 0, 1, 4, 6, ")KPHX$", - 5 824, 378, 0, 0, 1, 4, 6, ")KPIT$", - 6 455, 407, 0, 0, 1, 4, 6, ")KSAN$", - 7 619, 275, 0, 0, 1, 4, 6, ")KSAT$", - 8 532, 572, 0, 0, 1, 4, 6, ")KSEA$", - 9 454, 488, 0, 0, 1, 4, 6, ")KSFO$", - A 554, 459, 0, 0, 1, 4, 6, ")KSLC$", - 1 729, 366, 0, 0, 1, 4, 6, ")KSTL$", - 2 796, 221, 0, 0, 1, 4, 6, ")KTPA$", - 3 1359, 1128, 0, 0, 1, 5, 6, ")LCNC$", - 4 1326, 829, 0, 0, 1, 5, 6, ")LECB$", - 5 1328, 776, 0, 0, 1, 5, 6, ")LEMD$", - 6 1358, 746, 0, 0, 1, 5, 6, ")LEZL$", - 7 1306, 858, 0, 0, 1, 5, 6, ")LFML$", - 8 1283, 811, 0, 0, 1, 5, 6, ")LFBD$", - 9 1274, 816, 0, 0, 1, 5, 6, ")LFBG$" / - - DATA IGROUP05 / - A 1243, 842, 0, 0, 1, 5, 6, ")LFPO$", - 1 1328, 1014, 0, 0, 1, 5, 6, ")LGWC$", - 2 1256, 968, 0, 0, 1, 5, 6, ")LHBP$", - 3 1282, 888, 0, 0, 1, 5, 6, ")LIMC$", - 4 1326, 918, 0, 0, 1, 5, 6, ")LIRF$", - 5 1336, 936, 0, 0, 1, 5, 6, ")LIRN$", - 6 1389, 1160, 0, 0, 1, 5, 6, ")LLLD$", - 7 1282, 575, 0, 0, 1, 5, 6, ")LPAZ$", - 8 1254, 573, 0, 0, 1, 5, 6, ")LPLA$", - 9 1333, 721, 0, 0, 1, 5, 6, ")LPPT$", - A 1277, 1029, 0, 0, 1, 5, 6, ")LRBS$", - 1 1274, 867, 0, 0, 1, 5, 6, ")LSGG$", - 2 1309, 1063, 0, 0, 1, 5, 6, ")LTBA$", - 3 1284, 982, 0, 0, 1, 5, 6, ")LYBE$", - 4 1000, 6, 0, 0, 1, 4, 6, ")MACC$", - 5 667, 42, 0, 0, 1, 4, 6, ")MGGT$", - 6 716, 26, 0, 0, 1, 4, 6, ")MHTG$", - 7 1022, 111, 0, 0, 1, 4, 6, ")MJSJ$", - 8 872, 80, 0, 0, 1, 4, 6, ")MKJP$", - 9 1085, 109, 0, 0, 1, 4, 6, ")MKPA$" / - - DATA IGROUP06 / - A 1139, 60, 0, 0, 1, 4, 6, ")MKPB$", - 1 1124, 12, 0, 0, 1, 4, 6, ")MKPP$", - 2 566, 145, 0, 0, 1, 4, 6, ")MMMX$", - 3 989, 300, 0, 0, 1, 4, 6, ")MXKF$", - 4 858, 182, 0, 0, 1, 4, 6, ")MYNN$", - 5 477, 851, 0, 0, 1, 4, 6, ")PACD$", - 6 441, 941, 0, 0, 1, 4, 6, ")PADK$", - 7 594, 801, 0, 0, 1, 4, 6, ")PAFA$", - 8 520, 823, 0, 0, 1, 4, 6, ")PAKN$", - 9 555, 797, 0, 0, 1, 4, 6, ")PANC$", - A 516, 798, 0, 0, 1, 4, 6, ")PANH$", - 1 462, 1000, 0, 0, 1, 4, 6, ")PASY$", - 2 202, 1525, 0, 0, 1, 4, 6, ")PGUM$", - 3 76, 736, 0, 0, 1, 4, 6, ")PHNL$", - 4 62, 692, 0, 0, 1, 4, 6, ")PHTO$", - 5 11, 1323, 0, 0, 1, 4, 6, ")PKMA$", - 6 159, 982, 0, 0, 1, 4, 6, ")PMDY$", - 7 94, 1212, 0, 0, 1, 4, 6, ")PWAK$", - 8 239, 1323, 0, 0, 1, 4, 6, ")PZMI$", - 9 563, 1561, 0, 0, 1, 4, 6, ")RCTP$" / - - DATA IGROUP07 / - A 351, 1436, 0, 0, 1, 4, 6, ")RJAW$", - 1 521, 1415, 0, 0, 1, 4, 6, ")RJFF$", - 2 485, 1375, 0, 0, 1, 4, 6, ")RJOO$", - 3 485, 1283, 0, 0, 1, 4, 6, ")RJSM$", - 4 456, 1340, 0, 0, 1, 4, 6, ")RJTT$", - 5 576, 1390, 0, 0, 1, 4, 6, ")RKSS$", - 6 501, 1516, 0, 0, 1, 4, 6, ")ROAH$", - 7 514, 1708, 0, 0, 1, 4, 6, ")RPMM$", - 8 1108, 1003, 0, 0, 1, 5, 6, ")ULLL$", - 9 1133, 1057, 0, 0, 1, 5, 6, ")UUWW$", - A 641, 1626, 0, 0, 1, 4, 6, ")VHHH$", - 1 817, 1775, 0, 0, 1, 4, 6, ")VTBD$", - 2 989, 447, 0, 0, 1, 4, 3, ")SA", - 3 913, 551, 0, 0, 1, 4, 3, ")KL", - 4 756, 474, 0, 0, 1, 4, 3, ")QT", - 5 531, 625, 0, 0, 1, 4, 3, ")ZT", - 6 495, 897, 0, 0, 1, 4, 2, ")K", - 7 1217, 783, 0, 0, 1, 4, 3, ")RR", - 8 1232, 810, 0, 0, 1, 5, 5, ")JEY$", - 9 1242, 792, 0, 0, 1, 5, 5, ")FRQ$" / - - DATA IGROUP08 / - A 1287, 752, 0, 0, 1, 5, 3, ")LG", - 1 1031, 705, 0, 0, 1, 5, 2, ")A", - 2 990, 600, 0, 0, 1, 4, 2, ")B", - 3 1091, 626, 0, 0, 1, 4, 2, ")C", - 4 1126, 525, 0, 0, 1, 4, 2, ")D", - 5 1136, 400, 0, 0, 1, 4, 2, ")E", - 6 1096, 747, 0, 0, 1, 4, 2, ")I", - 7 1154, 707, 0, 0, 1, 5, 2, ")J", - 8 1242, 694, 0, 0, 1, 5, 2, ")K", - 9 1060, 865, 0, 0, 1, 5, 2, ")M", - A 264, 572, 0, 0, 1, 5, 2, ")N", - 1 455, 723, 0, 0, 1, 4, 2, ")P", - 2 912, 355, 0, 0, 1, 4, 2, ")H", - 3 641, 863, 0, 0, 1, 4, 6, ")160W$", - 4 610, 771, 0, 0, 1, 4, 6, ")140W$", - 5 626, 657, 0, 0, 1, 4, 6, ")120W$", - 6 627, 551, 0, 0, 1, 4, 6, ")110W$", - 7 417, 896, 0, 0, 1, 4, 5, ")50N$", - 8 628, 896, 0, 0, 1, 4, 5, ")70N$", - 9 1022, 898, 0, 0, 1, 5, 5, ")70N$" / - - DATA IGROUP09 / - A 1278, 1160, 0, 0, 1, 5, 5, ")40E$", - 1 1339, 1085, 0, 0, 1, 5, 5, ")30E$", - 2 1295, 1128, 0, 0, 1, 5, 5, ")40N$", - 3 1376, 995, 0, 0, 1, 5, 5, ")20E$", - 4 1363, 587, 0, 0, 1, 5, 5, ")20W$", - 5 930, 308, 0, 0, 1, 4, 5, ")70W$", - 6 1157, 323, 0, 0, 1, 4, 5, ")50W$", - 7 1322, 305, 0, 0, 1, 4, 5, ")40W$", - 8 826, 487, 0, 0, 1, 4, 5, ")50N$", - 9 826, 595, 0, 0, 1, 4, 5, ")60N$", - A 826, 698, 0, 0, 1, 4, 5, ")70N$", - 1 826, 798, 0, 0, 1, 4, 5, ")80N$", - 2 826, 994, 0, 0, 1, 4, 5, ")80N$", - 3 278, 1356, 0, 0, 1, 4, 6, ")150E$", - 4 276, 1096, 0, 0, 1, 4, 6, ")170E$", - 5 635, 1056, 0, 0, 1, 4, 6, ")150E$", - 6 646, 1000, 0, 0, 1, 4, 6, ")160E$", - 7 640, 964, 0, 0, 1, 4, 6, ")170E$", - 8 673, 1066, 0, 0, 1, 4, 3, ")A1", - 9 675, 624, 0, 0, 1, 4, 3, ")A2" / - - DATA IGROUP10 / - A 261, 1069, 0, 0, 1, 4, 3, ")A3", - 1 261, 620, 0, 0, 1, 4, 3, ")A4", - 2 538, 1052, 0, 0, 1, 4, 3, ")B1", - 3 1394, 1056, 0, 0, 1, 4, 3, ")B2", - 4 537, 180, 0, 0, 1, 5, 3, ")B3", - 5 1386, 179, 0, 0, 1, 4, 3, ")B4", - 6 1200, 1058, 0, 0, 1, 4, 3, ")C1", - 7 1205, 1175, 0, 0, 1, 5, 3, ")C2", - 8 1394, 1056, 0, 0, 1, 5, 3, ")C3", - 9 1395, 1177, 0, 0, 1, 5, 3, ")C4", - A 542, 836, 0, 0, 1, 5, 3, ")D1", - 1 1393, 838, 0, 0, 1, 4, 3, ")D2", - 2 541, 284, 0, 0, 1, 5, 3, ")D3", - 3 1393, 288, 0, 0, 1, 4, 3, ")D4", - 4 673, 1397, 0, 0, 1, 4, 3, ")E1", - 5 676, 419, 0, 0, 1, 4, 3, ")E2", - 6 259, 1398, 0, 0, 1, 4, 3, ")E3", - 7 256, 418, 0, 0, 1, 4, 3, ")E4", - 8 622, 1000, 0, 0, 1, 4, 3, ")F1", - 9 622, 136, 0, 0, 1, 4, 3, ")F2" / - - DATA IGROUP11 / - A 118, 1002, 0, 0, 1, 4, 3, ")F3", - 1 1217, 957, 0, 0, 1, 4, 3, ")G1", - 2 1218, 93, 0, 0, 1, 5, 3, ")G2", - 3 731, 958, 0, 0, 1, 4, 3, ")G3", - 4 727, 93, 0, 0, 1, 4, 3, ")G4", - 5 568, 1061, 0, 0, 1, 4, 3, ")H1", - 6 1397, 1057, 0, 0, 1, 4, 3, ")H2", - 7 566, 45, 0, 0, 1, 5, 3, ")H3", - 8 1148, 10, 0, 0, 1, 4, 3, ")H4", - 9 241, 1160, 0, 0, 1, 4, 3, ")I1", - A 1065, 1172, 0, 0, 1, 4, 3, ")I2", - 1 246, 519, 0, 0, 1, 5, 3, ")I3", - 2 1067, 521, 0, 0, 1, 4, 3, ")I4", - 3 566, 1031, 0, 0, 1, 4, 3, ")J1", - 4 1394, 1030, 0, 0, 1, 4, 3, ")J2", - 5 1389, 808, 0, 0, 1, 5, 3, ")K1", - 6 1534, 811, 0, 0, 1, 5, 3, ")K2", - 7 1415, 375, 0, 0, 1, 5, 3, ")K3", - 8 1532, 393, 0, 0, 1, 4, 3, ")K4", - 9 8*0 / - - END BLOCK DATA POLSTNEX_DATA diff --git a/util/sorc/faxmakr.fd/precip.f b/util/sorc/faxmakr.fd/precip.f deleted file mode 100755 index b1176c84ef..0000000000 --- a/util/sorc/faxmakr.fd/precip.f +++ /dev/null @@ -1,57 +0,0 @@ - SUBROUTINE PRECIP(FLD,WRK,IMAX,JMAX) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PRECIP PERFORM SPECIAL PRECIP COMPUTATIONS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PREPARE PRECIPITATION FIELDS FOR CONTOURING BY PERFORMING -C SPECIAL TESTS FOR INTRODUCING A CLIFF PRIOR TO SMOOTHING. -C -C PROGRAM HISTORY LOG: -C 89-09-07 ORIGINAL AUTHOR GLORIA DENT -C 94-12-30 LUKE LIN CONVERT IT TO CFT-77 -C 96-06-18 LUKE LIN CHANGE CONSTANTS FOR CRAY. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL PRECIP(FLD,WRK,IMAX,JMAX) -C INPUT ARGUMENT LIST: -C FLD _ THE PRECIPITATION FIELD FOR CLIFFING AND SMOOTHING -C WRK _ THE WORKING FIELD FOR SMOOTHING USING W3FM08 -C IMAX,JMAX_ THE DIMENSIONS OF FLD AND WRKNG USING W3FM08 -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C FLD _ THE SMOOTHED PRECIPITATION FIELD -C -C ATTRIBUTES: -C LANGUAGE: f90 -C MACHINE: IBM -C -C$$$ -C - DIMENSION FLD(IMAX,JMAX) - DIMENSION WRK(IMAX,JMAX) - REAL CP001 - REAL CMP03 -C -C CONSTANTS FOR PRE-SMOOTHING PRECIP FIELD -C??? DATA CP001/0.0000254/ -C??? DATA CMP03/-0.000762/ - DATA CP001/0.0254/ - DATA CMP03/-0.762/ -C WHERE 0.0000254M = 0.001IN. WHERE -0.000762M = -0.03IN. -C -C PREPARE THE PRECIP FIELD FOR SMOOTHING BY FIRST INTRODUCING A CLIFF -C CHANGE INPUT PRECIP FIELD'S LOWER LIMIT AND SAVE UNFILTERED PRECIP -C - DO 50 J=1,JMAX - DO 50 I=1,IMAX -C CHANGE INPUT PRECIP FIELD'S LOWER LIMIT AND SAVE UNFILTERED PRECIP -C write(6,20)(fld(m,j),m=1,64) -C 20 format(8(8(1x,f8.4),/)) - IF(FLD(I,J) .LE. CP001) FLD(I,J) = CMP03 - 50 CONTINUE -C -C FILTER PRECIPITATION FIELD... -C CALL W3FM08(FLD,WRK,IMAX,JMAX) - END diff --git a/util/sorc/faxmakr.fd/ptwndx.f b/util/sorc/faxmakr.fd/ptwndx.f deleted file mode 100755 index 9eb3a289da..0000000000 --- a/util/sorc/faxmakr.fd/ptwndx.f +++ /dev/null @@ -1,248 +0,0 @@ - SUBROUTINE PTWNDX(FLD1,FLD2,IMAX,JMAX,I1BIG,J1BIG,IGPLOT, - 1 ISTART,JSTART,DOTSGI) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK *** -C -C SUBPROGRAM: PTWNDX FORMS WIND PLOTS FROM GRID POINT U/V DATA. -C AUTHOR: KRISHNA KUMAR ORG:W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: CONVERTS UNPACKED SCALED GRID POINT U'S AND V'S TO -C WIND DIRECTION AND SPEED AND PLOTS AS WIND SHAFT WITH BARBS FOR -C A FAX OR VARIAN CHART. -C -C PROGRAM HISTORY LOG: -C 85-05-06 PETER HENRICHSEN -C 93-04-28 LUKE LIN CONVERT TO FORTRAN-77 AND ADD DOC BLOCK. -C 97-03-13 LUKE LIN MODIFY FOR CFT USED. -c 97-12-05 CHRIS CARUSO ADD COMMON BLOCK MUTCON AND ADD SPECIAL -C CODE FOR GEOSTROPHIC WIND HANDLING. -C (ADD BITMAP TO SEE WHICH WINDS TO TURN -C OFF). -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL PTWNDX(FLD1,FLD2,IMAX,JMAX,I1BIG,J1BIG, -C IGPLOT,DOTSGI) -C INPUT ARGUMENTS: -C FLD1 = FIELD CONTAINING THE V GRID POINT DATA. -C FLD2 = FIELD CONTAINING THE U GRID POINT DATA. -C IMAX,JMAX = THE DIMENIONS OF FLD1 AND FLD2. -C VRTLON = VERTICAL LON OF GRID. FOR LFM VRTLON = 105.0 FOR PE -C VRTLON = 80.0. -C DOTSGI = DOTS PER GRID INTERVAL WHICH IS A FUNCTION OF BACKGROUND. -C IGPLOT = INTEGER*2 TWO WORD ARRAY THAT CONTAINS THE FOLLOWING: -C IGPLOT(1) CONTAINS THE KEY FOR DETERMINING THE KIEL FOR SUB TRULL. -C IGPLOT(2) CONTAINS THE PLOTTING INCREMENT OF THE WINDS IE. -C IF .LE.1 PLOT AT EVERY GRID POINT, -C IF = 2 PLOT AT EVERYOTHER GRID POINT, -C IF = 3 PLOT AT EVERY 3RD GRID POINT. -C -C INPUT FILES: NONE -C -C -C OUTPUT ARGUMENTS: NONE -C -C OUTPUT FILES: NONE -C -C -C -C RETURN CONDITIONS:NONE. -C -C SUBPROGRAMS CALLED: -C UNIQUE : TRULL TUWNDR WNDBRK WNDIRT -C -C LIBRARY: NONE -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C -C - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON/PRINT/LPRINT -C -C -C -C - REAL FLD1(IMAX,JMAX) - REAL FLD2(IMAX,JMAX) - REAL GU,GV,ANG,VRTLON,ALAT,ALON,T1 - REAL XI, XJ -C - INTEGER IADD(3) - INTEGER ISTR(3) - INTEGER JADD(3) - INTEGER JSTR(3) - CHARACTER*12 JTRUDR - INTEGER KIEL(3) -C - DATA IADD /4,12,0/ - DATA ISTR /3,1,1/ - DATA JADD /4,08,0/ - DATA JSTR /3,1,1/ - DATA KIEL /1,13,2/ -C - INTEGER IGPLOT(2) - INTEGER LANDSEA(53,42) -C - LOGICAL LPRINT -C -C - LPRINT = .FALSE. - VRTLON = 105.0 -C - T1 = DOTSGI - KK = IGPLOT(1) - IF(KK) 5,5,8 - 5 CONTINUE - KK = 2 - IF(T1.LT.54.) KK = 1 -C - 8 CONTINUE -C -C IF GEOSTROPHIC WIND, READ IN BITMAP. WILL BE USED TO SEE WHICH -C GRIDPOINTS WILL NOT HAVE WIND BARB PLOTTED (AT THESE GRID POINTS, -C GEOSTOPHIC WIND IS UNRELIABLE DUE TO LACK OF INPUT DATA). KEYIDX -C EQUALS 17 IS SFC GEOSTROPHIC WIND. -C - IF(KEYIDX.EQ.17) THEN - DO J = 42,1,-1 - READ(8,200,END=201) (LANDSEA(I,J),I=1,53) - 200 FORMAT(53I1) -c print 200,(landsea(i,j),i=1,53) - ENDDO - ENDIF - 201 CONTINUE -C -C -C LOOP THRU U, AND V FIELDS AND THEN CONVERT TO WIND DIR AND SPEED. -C -C -C ISTART = ISTR(KK) -C JSTART = JSTR(KK) - ICRMNT = 1 - JCRMNT = 1 -C? I1BIG = 4 -C? J1BIG = 4 - IF(I1BIG.EQ.0) I1BIG = 17 - IF(J1BIG.EQ.0) J1BIG = 10 - IGDCOR= I1BIG - IADD(KK) - JGDCOR= J1BIG - JADD(KK) - MM = IGPLOT(2) - IF(IGPLOT(2).LE.1) MM = 1 -C - PRINT 10, KK,KIEL(KK),IGDCOR,JGDCOR,MM - 10 FORMAT(' KK=',I2,' KIEL=',I2, - $ ' IGDCOR=',I2,' JGDCOR=',I2,' PLOTTING INCREMENT=',I2) - PRINT 20 ,JSTART,ISTART,JCRMNT,ICRMNT - 20 FORMAT(' JSTART=',I2,' ISTART=',I2,' JCRMNT=',I2,' ICRMNT=',I2) - PRINT *,' IMAX=', IMAX, ' JMAX=', JMAX -C - N = 1 - IF(MM.NE.1)N = MM -C WHICH WILL MAKE SURE THAT THE FIRST GRID POINT IS ALWAYS PLOTTED -C - DO 340 J= JSTART,JMAX,JCRMNT -C - DO 330 I =ISTART,IMAX,ICRMNT -C -C PLOT EVERY OTHER GRID POINT........................... -C - NODD = MOD(N,MM) -C - IF(NODD.NE.0) GO TO 320 -C -C CHECK BITMAP TO SEE IF IT'S A GRIDPOINT WHERE WE DON'T -C WANT TO PLOT A WIND BARB. ONLY DO THIS FOR SFC GEO -C WIND (KEYIDX = 17)... -C - IF(KEYIDX.EQ.17) THEN - IF(LANDSEA(I,J).EQ.2) GO TO 320 - ENDIF -C -C CORRECT GRID COORIDINATE TO PROPER BACKGROUND FOR CALL -C TO TRULL..... - XI = FLOAT(I + IGDCOR) - XJ = FLOAT(J + JGDCOR) -C -C CONVERT GRID LOCATION TO DOTS FOR CALL TO WNDBRK... -C -C??? JSTN = T1*(XJ-1.0) + 0.5 -C??/ ISTN = T1*(XI-1.0) + 0.5 - JSTN = NINT(T1*(XJ-1.0)) - ISTN = NINT(T1*(XI-1.0)) -C -C - GU=FLD2(I,J) - GV=FLD1(I,J) -C -C GU = U COMP OF WIND AT GRID POINT IN KTS. -C GV = V COMP OF WIND AT GRID POINT IN KTS. -C -C -C -C -C GET LON OF GRID POINT TO COMPUTE TRUE WIND DIRECTION -C - CALL TRULL(XI,XJ,ALAT,ALON,KIEL(KK)) -C -C GET WIND DIR AND SPEED -C - KEY = 0 - ANG = 0.0 -C - CALL TUWNDR(GU,GV,IDIR, - 1 ISPEED,ANG,VRTLON,ALON,ITRUDR,KEY) -C -C IDIR=GRID ORENTATED DIRECTION OF WIND TO NEAREST 10DEG,IF KEY =0 -C IDIR=GRID ORENTATED DIRECTION OF WIND TO NEAREST 1DEG,IF KEY= 1 -C ISPEED= WIND SPEED TO NEAREST KT. -C ITRUDR= TRUE WIND DIRECTION TO NEAREST 10 DEGS. -C VRTLON = VERTICAL LON OF GRID. FOR LFM VRTLON = 105.0 FOR PE -C VRTLON = 80.0. -C ANG = ANGLE OR DIFFERENCE BETWEEN THE VRTLONS' OF DIFFERENT -C GRIDS. TO ROTATE FROM LFM TO PE ANG = +25.0. -C -C -C -C * * * * * * * * * * * * * * * * * * -C -C -C - IF(ISPEED.LE.0) GO TO 320 -C - IF(ISPEED.GT.300) ISPEED = 300 - IF(IDIR .EQ.0.AND.KEY.EQ.0) IDIR = 36 - IF(IDIR .EQ.0.AND.KEY.EQ.1) IDIR = 360 - IDDGD = IDIR -C -C -C -C -C -C -C -C . . . . CONVERT TRUE WIND DIRECTION TO HOLLERTH................ -C - CALL BIN2EB(ITRUDR,JTRUDR,2,'A999') -C - IF(LPRINT)PRINT 305,ISPEED,IDDGD,GU,GV - 305 FORMAT(' ISPEED= ',I4,' IDDGD=',I4,' GU=',F6.2,' GV=',F6.2) -C -C - CALL WNDBRK(ISTN,JSTN,IDDGD,ISPEED,NWOK,0,IRR) - CALL WNDIRT(ISTN,JSTN,JTRUDR,IDDGD,ISPEED) -C - 320 CONTINUE - N = N + 1 -C -C - 330 CONTINUE - 340 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakr.fd/rdobvt.f b/util/sorc/faxmakr.fd/rdobvt.f deleted file mode 100755 index 635660c5d2..0000000000 --- a/util/sorc/faxmakr.fd/rdobvt.f +++ /dev/null @@ -1,113 +0,0 @@ - SUBROUTINE RDOBVT(IERROR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: RDOBVT READ OBSERVATION STATION FILE -C AUTHOR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: READ OBSERVATION STATION FILE -C -C HISTORY LOG: -C 97-01-22 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C INPUT ARGUMENTS: -C LABEL - INTEGER*12 6-WORD OFFICE 84 ID -C LUGRBIX - ONE DEGREE GRIB INDEX FILE UNIT -C -C OUTPUT ARGEMENTS: -C IERROR -- RETURN STATUS -C - =0, NORMAL; -C -C USAGE: -C -C OUTPUT FILES: -C FT06F001 - PRINT OUTPUT (STANDARD FORTRAN OUTPUT FILE) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C OPEN FILES AND OBTAIN LOCATER TABLES FOR VARIOUS RUNS -C -C KRUN1=1 RADAT FILES= ANL1 -C KRUN1=2 OPNL FILES= ANL,F00,F12,F24,F36,F48 -C KRUN1=3 OPNL OVER 48HR FILES= F60,F72,F84,F96 -C KRUN1=4 FINAL FILES=ANL ANL5 GF12 GF24 -C KRUN1=5 LFM FILES= FMANL,FM00,FM12,FM24 -C KRUN1=6 PFAX FILES F24 -C KRUN1=7 BACKUP PFAX FILES F36 -C KRUN1=8 PLOTFAX (1 DOT) FILES ANL1 -C KRUN1=9 PLOTFAX (2 DOT) FILES FMANL -C KRUN1=10 SIRSPLOT FILES= GF12 -C -C (7) IOPN= 0 OPNL RUN -C 1 CHECK OUT RUN -C 2 EXTRA PRINT RUN -C -C - COMMON /CPOB/ CPOBFG,ITAPOB,ILVLT,KRUN,IOPTRA(2) - LOGICAL CPOBFG -C - DIMENSION XTRA(2,1024) -C -C INTEGER LOBTAP -C DIMENSION IOPTRA(2) -C -C DIMENSION LVL(2,18) -C - INTEGER DATIM(8) - INTEGER IDATG(4) - INTEGER IYEAR, MONTH, IDAY, IHOUR -C -C DATA LOBTAP/54/ -C DATA IOPTRA/0,0/ - DATA NOPTNS/2/ -C -C DATA LVL/4HSFC ,0, 4H1000,Z00271081,4H850 ,Z014C0882, -C 1 4H700 ,Z01117082,4H500 ,Z00C35082,4H400 ,Z009C4082, -C 2 4H300 ,Z00753082,4H250 ,Z0061A882,4H200 ,Z004E2082, -C 3 4H150 ,Z003A9882,4H100 ,Z00271082,4H070 ,Z01117083, -C 4 4H050 ,Z00C35083,4H030 ,Z00753083,4H020 ,Z004E2083, -C 5 4H010 ,Z00271083,4HTROP,0, 4HSIGL,0/ -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IERROR = 0 -C .... FOLLOWING IS A SAMPLE -C ILVLT=3 -C .... for 850mb -C KRUN1 = 9 -C .... FOR 2DOT MAPS -C IOPTRA(1) = 1 -C .... by passing the time check -C IOPTRA(2) = 1 -C .... by passing the background check -C -C GET PLOTTED DATA FROM TAPE54 -C -C READ NCEP DATE FILE TO GET DATE/TIME -C - REWIND 49 - READ(49,FMT='(6X,I4,3I2)')IYEAR, MONTH, IDAY, IHOUR - - - PRINT *, 'RDOBVT: IYEAR, MONTH, IDAY, IHOUR = ', - 1 IYEAR, MONTH, IDAY, IHOUR -C - IDATG(1) = IYEAR - IDATG(2) = MONTH - IDATG(3) = IDAY - IDATG(4) = IHOUR -C - CALL COPYOB(ITAPOB,XTRA,ILVLT,KRUN,IDATG,IOPTRA,NOPTNS, - XKOUNT,IERROR) - PRINT 901,KOUNT,IERROR - 901 FORMAT(1H0,'LABEL ARRAY ITEMS-KOUNT= ',I5, - X' COPYOB RETURN-IERROR= ',I5,' GO ON ANYWAY') - 902 CONTINUE -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/runlog b/util/sorc/faxmakr.fd/runlog deleted file mode 100755 index 584611408b..0000000000 --- a/util/sorc/faxmakr.fd/runlog +++ /dev/null @@ -1 +0,0 @@ --bash: ./*.sh: No such file or directory diff --git a/util/sorc/faxmakr.fd/savlab.f b/util/sorc/faxmakr.fd/savlab.f deleted file mode 100755 index 0d796fff91..0000000000 --- a/util/sorc/faxmakr.fd/savlab.f +++ /dev/null @@ -1,66 +0,0 @@ - SUBROUTINE SAVLAB(IPOSI,JPOSJ,TEXTIN,VALUE,NCHAR) -C -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SAVLAB SAVE PUTLAB LABELS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TEMPORARILY SAVES THE ARGUMENTS TO SUBROUTINE DGNTXT -C IN CORE AS CALLED BY LABELING SUBROUTINES GENTRE,GLABEL, -C GLOSED, ETC. THE MAXIMUN NUMBER OF SETS OF LABELS IS -C THREE. THE MAXIMUN NUMBER OF LABELS PER SET IS FIVE -C HUNDRED. -C -C PROGRAM HISTORY LOG: -C 85-08-05 KEVIN HLYWIAK -C 88-04-19 GLORIA DENT PUT IN DOCUMENTATION BLOCK. -C 96-03-15 LUKE LIN CONVERT IT TO CFT-77 ONLY FOR AFOS -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL SAVLAB (IPT,JPT,HEIGHT,TEXTIN,VALUE,NCHAR,LC) -C INPUT ARGUMENT LIST: -C XPOSI - SAME ARGUMENT IN THE CALL TO PUTLAB -C YPOSJ - SAME ARGUMENT IN THE CALL TO PUTLAB -C TEXTIN - SAME ARGUMENT IN THE CALL TO PUTLAB -C VALUE - REAL TRUE VALUE OF LABEL -C NCHAR - SAME ARGUMENT IN THE CALL TO PUTLAB -C -C OUTPUT FILES: -C FT06F001 - PRINT MESSAGES OF PROGRESS OF EACH ENTRY -C -C REMARKS: -C TEMPORARILY SAVES ARGUMENTS TO DGNTXT IN CORE AS CALLED BY LABELING -C ROUTINES LIKE CENTRE, CLABEL, ETC. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON/LABARG/IPOS(500),JPOS(500),TEXT1(500), - X VAL(500),NCH(500),NSAVED - CHARACTER*4 TEXT1,TEXTIN - DATA MXLABS/500/ -C - LC = NSAVED + 1 - IF(LC .GT. MXLABS) GOTO 900 -C - IPOS(LC) = IPOSI - JPOS(LC) = JPOSJ - TEXT1(LC) = TEXTIN - VAL(LC) = VALUE -C SEARCH THROUGH TEXT STRING FOR $ SO I CAN PASS TRUE NCHAR - NC = NCHAR - IF(NC .LE. 0) NC = 4 - IF(NC .GT. 4) NC = 4 - 20 NCH(LC) = NC - NSAVED = LC - RETURN -C - 900 CONTINUE - PRINT *,' ***WARNIGN*** LABEL CAPACITY IS 500 ' - RETURN - END -C -C diff --git a/util/sorc/faxmakr.fd/shplot.f b/util/sorc/faxmakr.fd/shplot.f deleted file mode 100755 index a31d619085..0000000000 --- a/util/sorc/faxmakr.fd/shplot.f +++ /dev/null @@ -1,158 +0,0 @@ - SUBROUTINE SHPLOT -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SHPLOT PLOT SPECIAL LABELS ON S.H. WEFAX CUT -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PLOT SELECTED AIRPORT STATIONS AND LATITUDE/LONGITUDE -C LABELS ON THE SPECIAL SOUTHERN HEMISPHERE WEFAX CUT. -C -C PROGRAM HISTORY LOG: -C 89-07-24 ORIGINAL AUTHOR GLORIA R.DENT -C 96-10-17 LUKE LIN CONVERT IT TO CFT-77. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE CALL SHPLOT -C INPUT ARGUMENT LIST: -C NONE -C -C OUTPUT ARGUMENT LIST: -C NONE -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - REAL ARPTST(4,10) - REAL SHLALO(3,18) -ckumar - character*8 cshlalo(3,18) - equivalence (cshlalo,shlalo) -ckumar - INTEGER IRPTST(4,10) -ckumar - character*8 cirptst(4,10) - equivalence (cirptst,irptst) -ckumar - INTEGER ISTCIR(2) -ckumar - character*8 cistcir(2) - equivalence (cistcir,istcir) -ckumar - INTEGER ISTPLT - INTEGER NLALO -C -C NLALO IS THE NUMBER LAT/LONGS (2ND DIMENSION) OF SHLALO -C - INTEGER NSTA -C -C NSTA IS THE NUMBER STATIONS (2ND DIMENSION) OF ARPTST -C - DATA ARPTST - & /-33.383,70.783,4HSCEL,1.,-15.517,68.183,4HSLLP,0., -C* & /-33.383,70.783,'SCEL',1.,-15.517,68.183,'SLLP',0., -C 'SANTIAGO/INTL A.MERINO B ' L 'LAPAQZ/KENNEDY INTL (BOLIVIA)' - & -15.867,47.933,4HSBBR,1.,-22.817,43.250,4HSBGL,1., -C* & -15.867,47.933,'SBBR',1.,-22.817,43.250,'SBGL',1., -C 'BRASILIA/INTL DF ' L 'RIO DE JANEIRO/INTL (BRAZIL) ' - & -25.267,57.633,4HSGAS,0.,-34.567,58.417,4HSABE,1., -C* & -25.267,57.633,'SGAS',0.,-34.567,58.417,'SABE',1., -C 'ABUNCION/PRESIDENTE (PARAGUAY)' R 'BUENOS AIRES/AEROPARQUE CF ' - & -53.000,70.850,4HSCCI,1.,-23.433,70.450,4HSCFA,1., -C* & -53.000,70.850,'SCCI',1.,-23.433,70.450,'SCFA',1., -C 'PUNTA ARENAS/INTL (CHILE) ' L 'AUTOFAGASTA/INTL (CHILE) ' - & -41.433,73.100,4HSCTE,1.,-27.167,109.433,4HSCIP,1. -C* & -41.433,73.100,'SCTE',1.,-27.167,109.433,'SCIP',1. -C 'PUERTO MOTT/INTL (CHILE) ' L 'ISLA DE PASCUA/MATAVERI CHILE' - & / -C - DATA SHLALO - & /-12.00,110.00,4H11OW, -13.00,100.00,4H100W, - & -16.00, 90.00,4H 9OW, -19.00, 80.00,4H 80W, - & -15.00, 60.00,4H 6OW, -12.00, 50.00,4H 50W, - & -05.00, 40.00,4H 4OW, -25.00, 80.00,4H 80W, - & -20.00, 78.00,4H 20S, -20.00,105.00,4H 20S, - & -20.00, 64.00,4H 20S, -10.00, 45.00,4H 10S, - & -30.00, 78.00,4H 30S, -30.00, 45.00,4H 30S, - & -40.00, 78.00,4H 40S, -40.00, 45.00,4H 40S, - & -50.00, 78.00,4H 50S, -50.00, 45.00,4H 50S/ -C & /-12.00,110.00,'11OW', -13.00,100.00,'100W', -C & -16.00, 90.00,' 9OW', -19.00, 80.00,' 80W', -C & -15.00, 60.00,' 6OW', -12.00, 50.00,' 50W', -C & -05.00, 40.00,' 4OW', -25.00, 80.00,' 80W', -C & -20.00, 78.00,' 20S', -20.00,105.00,' 20S', -C & -20.00, 64.00,' 20S', -10.00, 45.00,' 10S', -C & -30.00, 78.00,' 30S', -30.00, 45.00,' 30S', -C & -40.00, 78.00,' 40S', -40.00, 45.00,' 40S', -C & -50.00, 78.00,' 50S', -50.00, 45.00,' 50S'/ -C -C - CHARACTER*1 LSTCIR(8) -C - EQUIVALENCE(IRPTST(1,1),ARPTST(1,1)) - EQUIVALENCE (LSTCIR(1),ISTPLT) -C - DATA ISTCIR /Z'0000005D00000000',Z'5D00000000000000'/ - DATA NLALO /18/ - DATA NSTA /10/ - DATA IDETAX /335/ - DATA IDETAY /263/ -C -C INITIALIZE CONSTANTS FOR SOUTHERN HEMISPHERE 65/65 POLAR GRID - XMESHL = -381.0 - ORIENT = 260.0 - XIPOLE = 24.0 - XJPOLE = 26.0 -C PLOT AIRPORT STATIONS - DO 100 I= 1,NSTA - ALAT = ARPTST(1,I) - ALONG = ARPTST(2,I) - CALL W3FB04(ALAT,ALONG,XMESHL,ORIENT,XI,XJ) -C CONVERT TO TRUE GRIDS - XI = XI + XIPOLE - XJ = XJ + XJPOLE -C CONVERT TO VARIAN DOT UNITS - IXI = (XI-1.0)*37.5 + 0.5 + IDETAX - JXJ = (XJ-1.0)*37.5 + 0.5 + IDETAY - IF(I .NE.2) GO TO 20 -C SET UP TO PLOT STATION (SLLP) BELOW STATION CIRCLE - CALL PUTLAB(IXI-5,JXJ-6,1.0,CISTCIR(2),0.0,1,0,0) ! modified by kumar - CALL PUTLAB(IXI-5,JXJ-18,1.0,CIRPTST(3,I),0.0,4,0,0) ! modified by kumar - GO TO 100 - 20 CONTINUE -C SET UP TO PLOT STATION LEFT OF STATION CIRCLE - IBEG = 1 - IADJ = -40 - ISTPLT = IRPTST(3,I) -C ISTPLT(2) = ISTCIR(2) - LSTCIR(5) = CHAR(41) - IF(ARPTST(4,I) .EQ. 1.) GO TO 30 -C SET UP TO PLOT STATION RIGHT OF STATION CIRCLE - IBEG = 4 - IADJ = 0 -C ISTPLT(1) = ISTCIR(1) - ISTPLT = IRPTST(3,I) - LSTCIR(4) = CHAR(41) - 30 CONTINUE - CALL PUTLAB(IXI-5+IADJ,JXJ-6,1.0,LSTCIR(IBEG),0.0,5,0,0) - 100 CONTINUE -C -C PLOT LATITUDE/LONGITUDE LABELS - DO 200 I= 1,NLALO - ALAT = SHLALO(1,I) - ALONG = SHLALO(2,I) - CALL W3FB04(ALAT,ALONG,XMESHL,ORIENT,XI,XJ) -C CONVERT TO TRUE GRIDS - XI = XI + XIPOLE - XJ = XJ + XJPOLE -C CONVERT TO VARIAN DOT UNITS - IXI = (XI-1.0)*37.5 + 0.5 + IDETAX - JXJ = (XJ-1.0)*37.5 + 0.5 + IDETAY - CALL PUTLAB(IXI-14,JXJ,4.0,CSHLALO(3,I),0.0,4,0,0) ! modified by kumar - 200 CONTINUE -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/strptitl.F b/util/sorc/faxmakr.fd/strptitl.F deleted file mode 100755 index 1707216e54..0000000000 --- a/util/sorc/faxmakr.fd/strptitl.F +++ /dev/null @@ -1,272 +0,0 @@ - SUBROUTINE STRPTITL(CHWORK,PACKED) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: COMIFID MAKE STRIP TITLES AND PUT THEM TO MAP -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: MAKE STRIP TITLES AND CALL PUTLAB TO PUT THEM TO TAPE 55. -C -C PROGRAM HISTORY LOG: -C 96-07-01 LUKE LIN -C 96-11-07 LUKE LIN ADD BASE TIME FOR PFAX1 FAX CHARTS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL STRPTITL -C INPUT ARGUMENT LIST: -C CHWORK - CHARACTER*12 WORD ARRAY THAT CONTAINS THREE -C - ID WORDS AFTER GETING A PACKED DATA FIELD. -C - CHWORK(1:4) HAS IDWORD(1). -C - CHWORK(5:8) HAS IDWORD(7). -C - CHWORK(9:12) HAS IDWORD(8). -C - IN ON 84 FORMAT. -C PACKED - LOGICAL FLAG SET = .TRUE. ITIMES(1) IS A PACKED ID -C - WORD THEN THE TAU IS IN THE 4TH BYTE. IF = .FALSE. -C - THEN THE TAU IS IN ALL OF ITIMES(1). -C -C OUTPUT ARGUMENT LIST: -C -C OUTPUT FILES: -C FT06F001 - MESSAGE FOR STRPTITL -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB - 1 - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C -C .......... FOR FAX CUT -C - COMMON /FAXICK/ ISCHED(8,50),INXISCHED - COMMON /FLFSRP/ INXLFSTRP,LSNUMBYT(20),LSINTEXT(20),LSTITPX(20), - 1 LSTITPY(20),LSDCKPX(20),LSDCKPY(20), - 2 LSDCKOPT(20),LSFONT(20) - CHARACTER*120 LSINTEXT - REAL LSFONT - COMMON /FRTSRP/ INXRTSTRP,RSNUMBYT(20),RSINTEXT(20),RSTITPX(20), - 1 RSTITPY(20),RSFONT(20),RSFCSTHR(20) - CHARACTER*120 RSINTEXT - INTEGER RSNUMBYT,RSTITPX,RSTITPY,RSFCSTHR - REAL RSFONT -C - COMMON/PACKRA/JTIME(2),IVLDHR,IVLDAY,IVLDMO,IVLDYR, - 1 IHOUR,IDAY,MONTH,IYR -C -C - INTEGER IPRPUT(2),ITAG - REAL PUTANG - INTEGER NUMT -C - CHARACTER*12 CHWORK -C - CHARACTER*28 VALID - CHARACTER*28 BASE - CHARACTER*4 MONS (12) - CHARACTER*1 IZ - CHARACTER*8 CHTEXT - INTEGER KTIME - LOGICAL PACKED - CHARACTER*4 IHDAYW -C - DATA VALID /'VALID '/ - DATA MONS /'JAN ','FEB ','MAR ','APR ','MAY ', - 1 'JUN ','JUL ','AUG ','SEP ','OCT ', - 2 'NOV ','DEC '/ - DATA IZ /'Z'/ - -C -C------------------------------------------------------------------ -C -C -C PRINT *,' STRPTITL STARTING!' -C PRINT *,' INXLFSTRP=', INXLFSTRP -C PRINT *,' INXRTSTRP=', INXRTSTRP -C - IF (INXLFSTRP .GT. 0) THEN -C PRINT *,' INXLFSTRP=', INXLFSTRP -C -C .... MAKE VALID TIME .... - IF(PACKED) THEN - ITAU = mova2i(CHWORK(4:4)) - ELSE -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_ON_COPY (ISCRATCH, CHWORK, 8_8, 1_8) - CALL GBYTE (ISCRATCH, KTIME, 0, 32) -#else - CALL GBYTE(CHWORK,KTIME,0,32) -#endif - ITAU = KTIME - ENDIF - IYEAR = mova2i(CHWORK(5:5)) - MONTH = mova2i(CHWORK(6:6)) - IDAY = mova2i(CHWORK(7:7)) - IHOUR = mova2i(CHWORK(8:8)) - IGEN = mova2i(CHWORK(10:10)) - JTIME(1)= ITAU - ICORYR = 1900 - IF(IYEAR.LT.96)ICORYR = 2000 - IYR = IYEAR + ICORYR -C - WRITE(6,FMT='('' STRPTITL: CALLING UPDATR WITH: TAU ='',I4, - 1 '' HOUR='',I3,'' DAY='',I3,'' MONTH='',I3,'' YEAR='',I5)') - 2 JTIME(1),IHOUR,IDAY,MONTH,IYR -C - CALL UPDATR -C -C CONSTRUCT VALID TIME ARRAY IE. VALID 00Z THU 16 MAR 1989 -C - CALL DAYOWK(IVLDAY,IVLDMO,IVLDYR,IDAYWK,IHDAYW) -C - CALL BIN2EB(IVLDHR,CHTEXT,2,'A999') -C - VALID(7:8) = CHTEXT(1:2) - VALID(9:9) = IZ - VALID(11:13) = IHDAYW(1:4) - CALL BIN2EB(IVLDAY,CHTEXT,2,'A999') - VALID(15:16) = CHTEXT(1:2) - VALID(18:21) = MONS(IVLDMO)(1:4) - CALL BIN2EB(IVLDYR,CHTEXT,4,'A999') - VALID(22:25) = CHTEXT(1:4) - WRITE(6,FMT='('' VALID='',A)') VALID(1:28) -C - PUTANG = 0.0 - IPRPUT(1) = 0 - IPRPUT(2) = 0 - ITAG = 0 - DO I = 1, INXLFSTRP - IF (LSTITPX(I).GT.0 .AND. LSTITPY(I).GT.0) THEN -C .... PUT LEFT STRIP TITLE - NUMT = LSNUMBYT(I) - IBEGIN = NUMT + 1 - ISTOP = IBEGIN + 25 - 1 - LSINTEXT(I)(IBEGIN:ISTOP) = VALID(1:25) -C ... ADD VALID TIME INTO LEFT STRIP TITLE - NUMT = NUMT + 25 - PUTHGT = LSFONT(I) - IX = LSTITPX(I) - IY = LSTITPY(I) -C PRINT *,' IX=',IX,' IY=',IY,' NUMT=',NUMT - IF ((GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) .OR. - $ (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48)) THEN - LSINTEXT(I)(NUMT+1:NUMT+10)=' BASED ON ' - NUMT = NUMT+11 - CALL BIN2EB(IHOUR,CHTEXT,2,'A999') - BASE(1:2)= CHTEXT(1:2) - BASE(3:3) = IZ - BASE(4:4) = '/' - CALL BIN2EB(IDAY,CHTEXT,2,'A999') - BASE(5:6)= CHTEXT(1:2) - BASE(7:7)= '.' - LSINTEXT(I)(NUMT:NUMT+6)=BASE(1:7) - NUMT = NUMT+7 - ENDIF - PRINT *,' LEFT STRIP TITLE=',LSINTEXT(I) -C - CALL PUTLAB(IX,IY,PUTHGT,LSINTEXT(I),PUTANG,NUMT, - 1 IPRPUT,ITAG) - ENDIF -C - IF (LSDCKPX(I).GT.0 .AND. LSDCKPY(I).GT.0) THEN -C ..... PUT DUCK IF ANY - IX = LSDCKPX(I) - IY = LSDCKPY(I) - KANG = 0 - KFLAG = LSDCKOPT(I) - CALL DUCK(IX,IY,KANG,KFLAG) - ENDIF - ENDDO - ENDIF -C - IF (INXRTSTRP .GT. 0) THEN -C PRINT *,' INXRTSTRP=', INXRTSTRP -C .... MAKE VALID TIME .... - IF(PACKED) THEN - ITAU = mova2i(CHWORK(4:4)) - ELSE - CALL GBYTE(CHWORK,KTIME,0,32) - ITAU = KTIME - ENDIF -C - PUTANG = 0.0 - IPRPUT(1) = 0 - IPRPUT(2) = 0 - ITAG = 0 - DO I = 1, INXRTSTRP -C - IF (RSFCSTHR(I) .NE. ITAU) THEN - ITAU = RSFCSTHR(I) -C ... REMAKE VALID TIME - IYEAR = mova2i(CHWORK(5:5)) - MONTH = mova2i(CHWORK(6:6)) - IDAY = mova2i(CHWORK(7:7)) - IHOUR = mova2i(CHWORK(8:8)) - IGEN = mova2i(CHWORK(10:10)) - JTIME(1)= ITAU - ICORYR = 1900 - IF(IYEAR.LT.96)ICORYR = 2000 - IYR = IYEAR + ICORYR -C - WRITE(6,FMT='('' GULFTL: CALLING UPDATR WITH: TAU ='',I4, - 1 '' HOUR='',I3,'' DAY='',I3,'' MONTH='',I3,'' YEAR='',I5)') - 2 JTIME(1),IHOUR,IDAY,MONTH,IYR -C - CALL UPDATR -C -C CONSTRUCT VALID TIME ARRAY IE. VALID 00Z THU 16 MAR 1989 -C - CALL DAYOWK(IVLDAY,IVLDMO,IVLDYR,IDAYWK,IHDAYW) -C - CALL BIN2EB(IVLDHR,CHTEXT,2,'A999') -C - VALID(7:8) = CHTEXT(1:2) - VALID(9:9) = IZ - VALID(11:13) = IHDAYW(1:4) - CALL BIN2EB(IVLDAY,CHTEXT,2,'A999') - VALID(15:16) = CHTEXT(1:2) - VALID(18:21) = MONS(IVLDMO)(1:4) - CALL BIN2EB(IVLDYR,CHTEXT,4,'A999') - VALID(22:25) = CHTEXT(1:4) - WRITE(6,FMT='('' VALID='',A)') VALID(1:28) -C - ENDIF - IF (RSTITPX(I).GT.0 .AND. RSTITPY(I).GT.0) THEN -C .... PUT RIGHT STRIP TITLE - NUMT = RSNUMBYT(I) - IBEGIN = NUMT + 1 - ISTOP = IBEGIN + 25 - 1 - RSINTEXT(I)(IBEGIN:ISTOP) = VALID(1:25) -C ... ADD VALID TIME INTO LEFT STRIP TITLE - NUMT = NUMT + 25 - PUTHGT = RSFONT(I) - IX = RSTITPX(I) - IY = RSTITPY(I) -C PRINT *,' IX=',IX,' IY=',IY,' NUMT=',NUMT - IF ((GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) .OR. - $ (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48)) THEN - LSINTEXT(I)(NUMT+1:NUMT+10)=' BASED ON ' - NUMT = NUMT+11 - CALL BIN2EB(IHOUR,CHTEXT,2,'A999') - BASE(1:2)= CHTEXT(1:2) - BASE(3:3) = IZ - BASE(4:4) = '/' - CALL BIN2EB(IDAY,CHTEXT,2,'A999') - BASE(5:6)= CHTEXT(1:2) - BASE(7:7)= '.' - LSINTEXT(I)(NUMT:NUMT+6)=BASE(1:7) - NUMT = NUMT+7 - ENDIF - PRINT *,' RIGHT STRIP TITLE=',RSINTEXT(I) - CALL PUTLAB(IX,IY,PUTHGT,RSINTEXT(I),PUTANG,NUMT, - 1 IPRPUT,ITAG) - ENDIF - ENDDO - ENDIF -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/subfld.f b/util/sorc/faxmakr.fd/subfld.f deleted file mode 100755 index 9a127766a3..0000000000 --- a/util/sorc/faxmakr.fd/subfld.f +++ /dev/null @@ -1,154 +0,0 @@ - SUBROUTINE SUBFLD(BIGFLD,IMXBIG,JMXBIG,SMLFLD,IMXSML,JMXSML, - 1 ICORNR,JCORNR,AMULT1,ADD1,AMULT2,ADD2,IEXIT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SUBFLD TO EXTRACT FROM THE GIVEN ARRAY OF GRID -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO EXTRACT FROM THE GIVEN 2-DIMENSIONAL ARRAY OF -C GRIDPOINT DATA A SMALLER ARRAY OF GRIDPOINT DATA AND, AT THE -C SAME TIME, TO RESCALE THE GRIDPOINT VALUES USING THE FOLLOWING -C FORMULA -- -C RESULT = (ORIGINAL*AMULT1 + ADD1)*AMULT2 + ADD2 -C -C PROGRAM HISTORY LOG: -C 82-05-13 DAVE S. -C 89-10-17 LUKE LIN ADD DOCBLOCK. -C 94-12-30 LUKE LIN CONVERT IT CFT-77. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL SUBFLD(BIGFLD,IMXBIG,JMXBIG,SMLFLD,IMXSML,JMXSML, -C ICORNR,JCORNR,AMULT1,ADD1,AMULT2,ADD2,IEXIT) -C INPUT ARGUMENTS: -C BIGFLD - REAL*4 BIGFLD(IMXBIG,JMXBIG) -C THE ORIGINAL 2-DIMENSIONAL ARRAY OF GRIDPOINT DATA. -C IMXBIG - I-DIMENSION OF BIGFLD. -C JMXBIG - J-DIMENSION OF BIGFLD. -C IMXSML - I-DIMENSION OF THE SUB-GRID SMLFLD. -C JMXSML - J-DIMENSION OF THE SUB-GRID SMLFLD. -C ICORNR - I-VALUE OF LOWER LEFT CORNER OF SUB-GRID -C IN GRID UNITS OF BIGFLD'S COORDINATE SYSTEM. -C JCORNR - J-VALUE OF LOWER LEFT CORNER OF SUB-GRID -C IN GRID UNITS OF BIGFLD'S COORDINATE SYSTEM. -C AMULT1 - MULTIPLICATIVE FACTOR USED TO RESCALE DATA. -C ADD1 - ADDITIVE FACTOR USED TO RESCALE DATA. -C THIS FIRST PAIR IS USUALLY USED TO CONVERT FROM -C UNITS OF THE DATA AS THEY WERE PACKED, INTO -C MORE COMMONLY USED METEOROLOGICAL UNITS. -C AMULT2 - MULTIPLICATIVE FACTOR USED TO RESCALE DATA. -C ADD2 - ADDITIVE FACTOR USED TO RESCALE DATA. -C THIS SECOND PAIR IS USUALLY USED TO PREPARE -C FOR CONTOURING WITH ONE UNIT CHANGE IN DATA PER -C DESIRED CONTOUR INTERVAL. -C -C OUTPUT ARGUMENT LIST: -C SMLFLD - REAL*4 SMLFLD(IMXSML,JMXSML) -C THE 2-DIMENSIONAL ARRAY FOR STORING THE RESULTING -C SUB-GRID-POINT DATA INTO. -C IEXIT - RETURN CONDITIONS. -C IEXIT = 0 FOR NORMAL EXIT -C IEXIT = NON-ZERO FOR ERROR RETURN. -C RETURN CONDITIONS: -C = 1 IF GIVEN IMXSML OR JMXSML IS .LE. 0 -C = 2 IF THE SUB-GRID LIES ENTIRELY OUTSIDE OF -C BIGFLD AREA. -C = 3 IF EITHER MULTIPLICATIVE FACTOR IS ZERO -C WHICH, IF USED, WOULD HAVE ZEROED OUT THE -C RESULTING ARRAY. -C = 4 IF GIVEN IMXBIG OR JMXBIG IS .LE. 0 -C -C -C REMARKS: IF THE RESULTING SMALL GRID EXTENDS BEYOND EDGE OF -C BIGFLD, THOSE OFF-GRID POINTS WILL BE FILLED WITH HEX 7FFFFFFF. -C THE TWO ARRAYS -- BIGFLD & SMLFLD -- CANNOT BE EQUIVALENCED. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C - INTEGER IMXBIG, JMXBIG, IMXSML,JMXSML -C - REAL BIGFLD(IMXBIG,JMXBIG) - REAL SMLFLD(IMXSML,JMXSML) -C - IEXIT = 0 - IF(JMXSML .LE. 0) GO TO 900 - IF(IMXSML .LE. 0) GO TO 900 -C - IF(IMXBIG .LE. 0) GO TO 933 - IF(JMXBIG .LE. 0) GO TO 933 -C - IF(AMULT1 .EQ. 0.0) GO TO 922 - IF(AMULT2 .EQ. 0.0) GO TO 922 -C - JSTRTS = 0 - ISTRTS = 0 - J1 = JCORNR - J2 = J1 + JMXSML - 1 -C ... WHAT IF J1 IS BELOW BOTTOM OF BIGFLD? - IF(J1 .GT. 0) GO TO 233 -C ... ELSE, FIRST ROW OF SUBSET GRID LIES SOMEWHERE -C ... BELOW BOTTOM OF BIGFLD - JSTRTS = IABS(J1) + 1 - J1 = 1 - 233 CONTINUE - IF(J1 .GT. JMXBIG) GO TO 911 - IF(J2 .GT. JMXBIG) J2 = JMXBIG - IF(J1 .GT. J2) GO TO 911 -C - I1 = ICORNR - I2 = I1 + IMXSML - 1 - IF(I1 .GT. 0) GO TO 236 -C ... ELSE, FIRST COLUMN OF SUBSET GRID LIES SOMEWHERE -C ... OUTSIDE OF LEFT EDGE OF BIGFLD. - ISTRTS = IABS(I1) + 1 - I1 = 1 - 236 CONTINUE - IF(I1 .GT. IMXBIG) GO TO 911 - IF(I2 .GT. IMXBIG) I2 = IMXBIG - IF(I1 .GT. I2) GO TO 911 -C - JS = JSTRTS - DO 366 JB = J1,J2 - JS = JS + 1 - IS = ISTRTS - DO 355 IB = I1,I2 - IS = IS + 1 - SMLFLD(IS,JS)=(BIGFLD(IB,JB)*AMULT1 + ADD1) * AMULT2 + ADD2 - 355 CONTINUE - 366 CONTINUE - GO TO 999 -C - 900 CONTINUE -C ... COMES HERE IF GIVEN IMXSML OR JMXSML IS .LE. 0 - IEXIT = 1 - PRINT *,'**ABEND IN SUBR SUBFLD. CONDITION=',IEXIT - GO TO 999 -C - 911 CONTINUE -C ... COMES HERE IF ICORNR OR JCORNR WAS GIVEN SUCH THAT -C ... THE SUBGRID IS POSITIONED ENTIRELY OUTSIDE OF BIGFLD. - IEXIT = 2 - PRINT *,'**ABEND IN SUBR SUBFLD. CONDITION=',IEXIT - GO TO 999 -C - 922 CONTINUE -C ... COMES HERE IF EITHER MULTIPLICATIVE FACTOR IS 0.0 -C ... WHICH WOULD RESULT IN A ZERO ARRAY - IEXIT = 3 - PRINT *,'**ABEND IN SUBR SUBFLD. CONDITION=',IEXIT - GO TO 999 -C - 933 CONTINUE -C ... COMES HERE IF IMXBIG OR JMXBIG WAS .LE. 0 - IEXIT = 4 - PRINT *,'**ABEND IN SUBR SUBFLD. CONDITION=',IEXIT - GO TO 999 -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakr.fd/templn.f b/util/sorc/faxmakr.fd/templn.f deleted file mode 100755 index 9223869466..0000000000 --- a/util/sorc/faxmakr.fd/templn.f +++ /dev/null @@ -1,153 +0,0 @@ - SUBROUTINE TEMPLN(Z,IMAX,JMAX,SCALE,A,B,M,LPLMI,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TEMPLN PUT A BOX AROUND THE TEMPERATURE. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PUT A BOX AROUND THE TEMPERATURE.. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-10-30 LIN CONVERT SUBROUTINE TO FORTRAN CFT77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL TEMPLN( Z, IMAX, JMAX, SCALE, A, B, M, LPLMI, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C ...GIVEN TEMPS IN Z(IMAX,JMAX) -C AND MULTIPLICATIVE AND ADDITIVE CONSTANTS -C ...TO READY FOR DIAMOND TEMPS GRIDPRINT IN LABEL ARRAY - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON/ADJ3/IRTCOR,IUPCOR -C - DIMENSION ITEXT(3),JTEXT(3) - CHARACTER*8 IFF(5) - DIMENSION Z(IMAX,JMAX) -C - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - CHARACTER*2 IBOX - INTEGER M(2) -C - REAL INDEF,IDEF - INTEGER IPRT(2) -C -C DATA JLOB/2/,JHIB/50/ -C DATA ILHS/2/,IRHS/46/ -C DATA ILHSB/4/,IRHSB/44/ - DATA JLOB/9/,JHIB/57/ - DATA ILHS/11/,IRHS/55/ - DATA ILHSB/13/,IRHSB/53/ - DATA INDEF /1.0E307 / - DATA ITEXT/3*0/ - DATA IBOX/')$'/ - DATA NN/2/ - DATA HT/10.0/ - DATA IPRT/0,1/ - DATA IKCIR/1/ - DATA JKCIR/-9/ -C ...WHERE IKCIR AND JKCIR IS DISPLACEMENT FROM PRINT TO BOX - DATA IDELTA / 0 / - DATA JDELTA / 0 / -C -C EQUIVALENCE(LTEXT,ITEXT(1)) -C EQUIVALENCE(MTEXT,JTEXT(1)) -C - INDENT = 0 -C ...WHERE INDENT IS ALTERNATING SWITCH FOR INDENTING A ROW OR NOT. - DO 450 J=JLOB,JHIB,2 - IF(INDENT) 430,434,430 - 430 INDENT=0 - IF(J.EQ.4+07.OR.J.EQ.48+07) GO TO 431 - IF(J.EQ.8+07.OR.J.EQ.44+07) GO TO 432 - IF(J.EQ.12+07.OR.J.EQ.40+07) GO TO 433 - I = ILHSB - I2 = IRHSB - GO TO 440 - 431 I=ILHSB+3*4 - I2=IRHSB-3*4 - GO TO 440 - 432 I=ILHSB+2*4 - I2=IRHSB-2*4 - GO TO 440 - 433 I=ILHSB+4 - I2=IRHSB-4 - GO TO 440 - 434 INDENT = 1 - IF(J.EQ.2+07.OR.J.EQ.50+07) GO TO 435 - IF(J.EQ.6+07.OR.J.EQ.46+07) GO TO 436 - IF(J.EQ.10+07.OR.J.EQ.42+07) GO TO 437 - I = ILHS - I2 = IRHS - GO TO 440 - 435 I=ILHS+3*4 - I2=IRHS-3*4 - GO TO 440 - 436 I=ILHS+2*4 - I2=IRHS-2*4 - GO TO 440 - 437 I=ILHS+4 - I2=IRHS-4 - GO TO 440 -C ...PERFORM OPERATION ON TEMP PT(I,J) - 440 CONTINUE - IDEF=Z(I,J) - IF(IDEF.EQ.INDEF) GO TO 445 - XJ=J-1 - JCAL=SCALE*XJ+0.5 - JCAL=JCAL+IUPCOR + JDELTA - JLLCIR=JCAL+JKCIR - XI=I-1 - ICAL=SCALE*XI+0.5 - ICAL=ICAL+IRTCOR + IDELTA - ILLCIR=ICAL+IKCIR - XVAL=Z(I,J) - HOLD=B*(XVAL+A) - ITEXT(1)=SIGN((ABS(HOLD)+0.05),HOLD) - INTG=ITEXT(1) - NCHAR=M(2) -C -C FORMAT TEMPERATURE VALUE -C - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - N=12 - WRITE(LTEXT,FMT=IFF)MTEXT -C WRITE(LTEXT,FMT=IFF)JTEXT(1) -C -C PUT TEMPERATURE IN LABEL ARRAY -C - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,N,IPRT,0) -C -C PUT BOX IN LABEL ARRAY -C - CALL PUTLAB(ILLCIR,JLLCIR,HT,IBOX,PUTANG,NN,IPRPUT,0) - 445 CONTINUE - I=I+4 - IF(I .LE. I2) GO TO 440 -C ...WHEN IT FALLS THRU HERE,THIS ROW IS FINISHED. GO NEXT J - 450 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakr.fd/templp.f b/util/sorc/faxmakr.fd/templp.f deleted file mode 100755 index 792f4ac62a..0000000000 --- a/util/sorc/faxmakr.fd/templp.f +++ /dev/null @@ -1,154 +0,0 @@ - SUBROUTINE TEMPLP(Z,IMAX,JMAX,SCALE,A,B,M,LPLMI,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TEMPLP PLOT TEMPERATURE -C PRGMMR: LUKE LIN ORG: W/NMC412 DATE: 96-10-30 -C -C ABSTRACT: PLOT TEMPERATURE. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-10-30 LUKE LIN CONVERT IT TO CFT-77. -C -C USAGE: CALL TEMPLP( Z, IMAX, JMAX, SCALE, A, B, M, LPLMI, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C ...GIVEN...TEMPS IN Z(IMAX,JMAX) -C AND MULTIPLICATIVE AND ADDITIVE CONSTANTS -C ...TO READY FOR DIAMOND TEMPS GRIDPRINT IN LABEL ARRAY - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON/ADJ3/IRTCOR,IUPCOR - COMMON/ITDL/IRMARK,ITSTHR -C - DIMENSION ITEXT(3),JTEXT(3) - CHARACTER*8 IFF(5) - DIMENSION Z(IMAX,JMAX) -C - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - CHARACTER*2 ICIRC - INTEGER M(2) -C - REAL INDEF,IDEF - INTEGER IPRT(2) -C -C DATA JLOB/2/,JHIB/50/ -C DATA ILHS/4/,IRHS/44/ -C DATA ILHSB/2/,IRHSB/46/ - DATA JLOB/9/,JHIB/57/ - DATA ILHS/13/,IRHS/53/ - DATA ILHSB/11/,IRHSB/55/ - DATA INDEF /1.0E307 / - DATA ITEXT/3*0/ - DATA ICIRC/'($'/ - DATA NN/2/ - DATA HT/10.0/ - DATA IPRT/0,1/ - DATA IKCIR/1/ - DATA JKCIR/-9/ -C ...WHERE IKCIR AND JKCIR IS DISPLACEMENT FROM PRINT TO CIRCLE - DATA IDELTA / 0 / - DATA JDELTA / 0 / -C -C -C EQUIVALENCE(LTEXT,ITEXT(1)) -C EQUIVALENCE(MTEXT,JTEXT(1)) -C - INDENT = 0 -C ...WHERE INDENT IS ALTERNATING SWITCH FOR INDENTING A ROW OR NOT. - DO 450 J=JLOB,JHIB,2 - IF(INDENT) 430,434,430 - 430 INDENT=0 - IF(J.EQ.4+7.OR.J.EQ.48+7) GO TO 431 - IF(J.EQ.8+7.OR.J.EQ.44+7) GO TO 432 - IF(J.EQ.12+7.OR.J.EQ.40+7) GO TO 433 - I = ILHSB - I2 = IRHSB - GO TO 440 - 431 I=ILHSB+3*4 - I2=IRHSB-3*4 - GO TO 440 - 432 I=ILHSB+2*4 - I2=IRHSB-2*4 - GO TO 440 - 433 I=ILHSB+4 - I2=IRHSB-4 - GO TO 440 - 434 INDENT = 1 - IF(J.EQ.2+7.OR.J.EQ.50+7) GO TO 435 - IF(J.EQ.6+7.OR.J.EQ.46+7) GO TO 436 - IF(J.EQ.10+7.OR.J.EQ.42+7) GO TO 437 - I = ILHS - I2 = IRHS - GO TO 440 - 435 I=ILHS+3*4 - I2=IRHS-3*4 - GO TO 440 - 436 I=ILHS+2*4 - I2=IRHS-2*4 - GO TO 440 - 437 I=ILHS+4 - I2=IRHS-4 - GO TO 440 -C ...PERFORM OPERATION ON TEMP PT(I,J) - 440 CONTINUE - IDEF=Z(I,J) - IF(IDEF.EQ.INDEF) GO TO 445 - XJ=J-1 - JCAL=SCALE*XJ+0.5 - JCAL=JCAL+IUPCOR + JDELTA - JLLCIR = JCAL + JKCIR - XI=I-1 - ICAL=SCALE*XI+0.5 - ICAL=ICAL+IRTCOR + IDELTA - ILLCIR = ICAL + IKCIR - XVAL=Z(I,J) - HOLD=B*(XVAL+A) - ITEXT(1)=SIGN((ABS(HOLD)+0.05),HOLD) - INTG=ITEXT(1) - NCHAR=M(2) -C -C FORMAT TEMPERATURE VALUE -C - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - N=12 -C WRITE(LTEXT,FMT=IFF)JTEXT(1) - WRITE(LTEXT,FMT=IFF)MTEXT -C -C PUT TEMPERATURE IN LABEL ARRAY -C - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,N,IPRT,0) -C -C PUT CIRCLE IN LABEL ARRAY -C - CALL PUTLAB(ILLCIR,JLLCIR,HT,ICIRC,PUTANG,NN,IPRPUT,0) - 445 CONTINUE - I = I + 4 - IF(I .LE. I2) GO TO 440 -C ...WHEN IT FALLS THRU HERE,THIS ROW IS FINISHED. GO NEXT J - 450 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakr.fd/thinlb.f b/util/sorc/faxmakr.fd/thinlb.f deleted file mode 100755 index 990eecfb1e..0000000000 --- a/util/sorc/faxmakr.fd/thinlb.f +++ /dev/null @@ -1,108 +0,0 @@ - SUBROUTINE THINLB -C -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: THINLB THIN PUTLAB LABELS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: SEARCHES THROUGH LABSET SETS OF LABELS ONE AT A TIME -C (AS WRITTEN BY SAVLAB),THINS OVERLAPPING LABELS WITH -C A VALUE COMPARISON TEST, AND CALLS DGNTXT FOR THE -C SURVIVING LABELS. -C -C PROGRAM HISTORY LOG: -C 85-08-05 KEVIN HLYWIAK -C 88-04-19 GLORIA DENT PUT IN DOCUMENTATION BLOCK. -C 96-03-15 LUKE LIN CONVERT TO CFT-77, ONLY FOR AFOS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL THINLB -C INPUT ARGUMENT LIST: -C IWID - INTEGER*4 IWID THE DOT WIDTH OF THE CHARACTER SET -C IHGT - INTEGER*4 IHGT THE DOT HIEGHT OF THE CHARACTER SET -C ISEP - OVERLAP CRITERIA IN DOT UNITS (COMPARISON TEST) -C IPLT - IPLT=0 NO THINNING OF THIS SET OF LABELS -C - IPLT=NONZERO THINNING OF THIS SET OF LABELS IS DONE -C -C OUTPUT FILES: -C FT06F001 - PRINT MESSAGES OF PROGRESS OF EACH ENTRY -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT -C - COMMON/LABARG/IPOS(500),JPOS(500),TEXT1(500), - X VAL(500),NCH(500),NSAVED - CHARACTER*4 TEXT1 - INTEGER IWID,IHGT,ISEP - CHARACTER*4 ITEXTC - INTEGER IDEL, JDEL -C -C INTEGER IDOT(500) -C INTEGER JDOT(500) -C - DATA IWID /12/ - DATA IHGT /14/ - DATA ISEP /25/ - DATA IPLT /1/ -C - DATA SCALE /18.0/ - DATA IDEL /-25/ - DATA JDEL /-7/ -C - PRINT 10,IWID,ISEP,IPLT,NSAVED - 10 FORMAT(' ENTERING SUBROUTINE THINLB DATED 9/12/96',/,' IWID=',I4, - X ' ISEP=',I4,' IPLT=',I2, - X ' NSAVED=',I4) -C -C DO 20 I=1, NSAVED -C IDOT(I) = XPOS(I)*SCALE + IDEL -C JDOT(I) = YPOS(I)*SCALE + JDEL -C 20 CONTINUE -C - NGO=0 - NLABS=NSAVED - L1MAX=NLABS-1 - DO 60 L1=1,L1MAX - IF(IPOS(L1).EQ.9999) GOTO 60 - L2MIN=L1+1 - DO 50 L2=L2MIN,NLABS - IF(IPOS(L2).EQ.9999) GOTO 50 - JB1=JPOS(L1)-ISEP/2 - JT2=JPOS(L2)+IHGT+ISEP/2 - IF(JB1.GE.JT2) GOTO 50 - JT1=JPOS(L1)+IHGT+ISEP/2 - JB2=JPOS(L2)-ISEP/2 - IF(JT1.LE.JB2) GOTO 50 - IL1=IPOS(L1)-ISEP/2 - IR2=IPOS(L2)+NCH(L2)*IWID+ISEP/2 - IF(IL1.GE.IR2) GOTO 50 - IR1=IPOS(L1)+NCH(L1)*IWID+ISEP/2 - IL2=IPOS(L2)-ISEP/2 - IF(IR1.LE.IL2) GOTO 50 -C FALL THRU MEANS L1 AND L2 OVERLAP, SO STRIKE ONE BY TESTING VALUE - IF(ABS(VAL(L1)).GE.ABS(VAL(L2))) IPOS(L2)=9999 - IF(ABS(VAL(L1)).LT.ABS(VAL(L2))) IPOS(L1)=9999 - IF(IPOS(L2).EQ.9999.OR.IPOS(L1).EQ.9999)NGO=NGO+1 - 50 CONTINUE - 60 CONTINUE -C - NSTAY=NLABS-NGO - PRINT 70,NSTAY,NLABS - 70 FORMAT(' ',I4,' OF',I4, 'LABELS SURVIVED.') - DO 89 IPUT=1,NLABS - IF(IPOS(IPUT).EQ.9999) GOTO 89 - ITEXTC=TEXT1(IPUT) - CALL PUTLAB(IPOS(IPUT),JPOS(IPUT),PUTHGT,ITEXTC,PUTANG,4, - 1 IPRPUT,ITAPUT) - 89 CONTINUE - RETURN - END -C -C diff --git a/util/sorc/faxmakr.fd/tjlabel.f b/util/sorc/faxmakr.fd/tjlabel.f deleted file mode 100755 index 8ba413d944..0000000000 --- a/util/sorc/faxmakr.fd/tjlabel.f +++ /dev/null @@ -1,167 +0,0 @@ - SUBROUTINE TJLABEL(FLDIN,IDIM,JDIM,DOTSGI,A1,B1,KEYIDX) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TJLABEL PLACE A SPECIAL LABEL AROUND THE BOUNDARY -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PLACE A SPECIAL LABEL AROUND THE BOUNDARY FOR TRAJECTORY 4-PANEL -C CHART. -C -C PROGRAM HISTORY LOG: -C 97-06-19 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL TJLABEL(FLDIN,IDIM,JDIM,DOTSGI,A1,B1) -C INPUT ARGUMENTS: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C IDIM - I-DIMENSION OF THE ORIGINAL SMLFLD. -C JDIM - J-DIMENSION OF THE ORIGINAL SMLFLD. -C -C OUTPUT ARGUMENT LIST: -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C - COMMON/PUTARG/PUTHGT,PUTANG,IPRIOR(2),ICMPUT - COMMON /ADJ1/ ICOR,JCOR - COMMON /ADJ3/ILCOR,JDCOR -C - INTEGER KEYIDX - REAL FLDIN(IDIM,JDIM) - REAL DOTSGI,A1,B1 - REAL FLDDUP(53,57) - REAL XINDEF - INTEGER IJV(4,150) - INTEGER ICHSIZ(2) - INTEGER INBTWN(2) - INTEGER ITBRES(4,200) - DATA KDIMRE/200/ -C - INTEGER M(2) -C - INTEGER LIJV - INTEGER KSVUNI - CHARACTER*4 IFORM, IFOR06, IFOR05, IFOR04 - CHARACTER*8 IFG(5) - CHARACTER*8 IFG2(5) - CHARACTER*8 IFG3(5) -C - DATA IFG2 /'(A2,1H$)',' ',' ',' ', - . ' '/ - DATA IFG3 /'(A3,1H$)',' ',' ',' ', - . ' '/ - DATA IFOR06 /'A999'/ - DATA IFOR05 /'A+- '/ - DATA IFOR04 /'S9-9'/ -C - DATA LIJV /150/ - DATA KSVUNI/45/ -C -C REWIND KSVUNI -C - PRINT *,' IN TJLABEL' -C - DO 2760 J = 1,JDIM - DO 2760 I = 1,IDIM - FLDDUP(I,J) = FLDIN(I,J) - 2760 CONTINUE -C -C ----------------------------------------------- -C ESTABLISH FLAGS FOR STRIP LABELS -C ----------------------------------------------- -C -C -C DO KJ=1,57 -C PRINT *,' J=', KJ -C WRITE(*,150)(FLDDUP(KM,KJ),KM=1,53) -C ENDDO -C150 format( 3(10(1x,f5.1),3x),/, 2(10( 1x,F5.1),3x),3(1x,F5.1),/) -C -C - DO 1500 IY = 1,150 - DO 1500 IX = 1,4 - IJV(IX,IY) = 0 - 1500 CONTINUE - CALL VBOUND(FLDDUP,IDIM,JDIM,IJV,LIJV) -C -C ----------------------------------------------- -C SETUP CONTOUR STRIP LABELS -C ----------------------------------------------- -C -C -C ... STRIP LABELS 2ND FIELD -C - DO 1560 III = 1,LIJV - DO 1570 I = 1,4 - IF(IJV(I,III).NE.0) GO TO 1552 - 1570 CONTINUE - GO TO 1581 - 1552 CONTINUE - JUP = IJV(4,III) - 1 ! VBOUND GIVES ONE MORE THAN LENGTH -c IF(JUP) 1560,1560,1554 - IF(JUP.LE.0) GO TO 1560 - - PRINT *,' LIJV=',III,' I=',I,' JUP=',JUP - 1554 CONTINUE - IXX = IJV(2,III) - JYY = IJV(3,III) - PRINT *,' IXX=', IXX, ' JYY=',JYY - PUTHGT = 1. - IPRIOR(1) = 0 - IPRIOR(2) = 0 - ICMPUT = 0 - ICOR = 15 - JCOR = 0 - ILCOR = 15 - JDCOR = 0 - M(1) = 0 - M(2) = 3 - IFORM = IFOR06 -C - IF (KEYIDX.EQ.47) THEN - IFORM = IFOR04 - PUTHGT = 15.0 - ELSE IF (KEYIDX.EQ.51) THEN - IFORM = IFOR04 - ENDIF -C - IF (KEYIDX.EQ.48) THEN - M(2)=2 - ICOR = 10 - ILCOR = 10 - DO I=1,5 - IFG(I) = IFG2(I) - ENDDO - ELSE - DO I=1,5 - IFG(I) = IFG3(I) - ENDDO - ENDIF -C - S = DOTSGI / 60.0 - IF(IJV(1,III).NE.1) THEN ! VERTICAL LABELS -c this call was using fld previously - PRINT *,' CALL CLOSET' - CALL CLOSET(FLDIN,IDIM,JDIM,S,A1,B1,M,JUP,IXX,JYY, - . IFORM,1,IFG) - ELSE ! HORIZONTAL LABELS -c this call was using fld previously - PRINT *,' CALL CLOSEE' - CALL CLOSEE(FLDIN,IDIM,JDIM,S,A1,B1,M,JUP,IXX,JYY, - . IFORM,1,IFG) - ENDIF - 1560 CONTINUE - 1581 CONTINUE -C - JUP = 3 - CALL CLOSEC(FLDIN,IDIM,JDIM,S,A1,B1,M,JUP,IFORM,IFG) -C - RETURN - END diff --git a/util/sorc/faxmakr.fd/tuwndr.f b/util/sorc/faxmakr.fd/tuwndr.f deleted file mode 100755 index 5350b14786..0000000000 --- a/util/sorc/faxmakr.fd/tuwndr.f +++ /dev/null @@ -1,69 +0,0 @@ - SUBROUTINE TUWNDR(GU,GV,IDIR,ISPEED,ANG,VRTLON,ALON,ITRUDR,KEY) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: TUWNDR RETURNS TWO WIND DIRECTIONS. -C AUTHOR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: RETURNS TWO WIND DIRECTIONS. -C -C PROGRAM HISTORY LOG: -C 80-03-12 PETER HENRICHSEN -C 93-04-28 LUKE LIN CONVERT TO FORTRAN-77 AND ADD DOC BLOCK. -C 97-03-13 LUKE LIN CONVERT TO CFT-77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL TUWNDR(GU,GV,IDIR,ISPEED,ANL,VRTLON,ALON,ITRUDR,KEY) -C INPUT ARGUMENTS: -C KEY - WIND DIRECTION RETURNED TO NEAREST TEN DEGREES, KEY=0 -C WIND DIRECTION RETURNED TO NEAREST ONE DEGREE, ELSE. -C GU,GV - THE GRID ORIENTED COMPONENTS OF THE WIND IN ANY -C DESIRED UNIT. -C ANG - ANGLE WIND DIR IS TO BE ROTATED TO CONVERT FROM ONE -C GRID TO ANOTHER ..IE. TO VONVERT WINDS FROM LFM GRID -C FOR DISPLAY ON STANDARD NMC GRID, ANG = +25.0. -C ALON - TRUELON OF WIND. -C VRTLON - VERTICAL LON OF BGRD MAP OR GRID, IE. LFM V. LON. 105. -C -C OUTPUT ARGUMENTS: -C ITRUDR - TRUE DIRECTION OF WIND -C ITRUDR - TRUE DIRECTION OF WIND TO NEAREST TEN DEGS. -C ISPEED - WIND SPEED RETURNED IN SAME UNITS GIVEN. -C -C REMARKS: NONE -C -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - REAL GU,GV,ANG,VRTLON,ALON - INTEGER IDIR,ISPEED,ITRUDR,KEY -C - ISPEED = SQRT(GU*GU+GV*GV)+0.5 -C ISPEED = NINT(SQRT(GU*GU+GV*GV)) - IF(GU .NE. 0.0 .OR. GV .NE. 0.0) GO TO 6 - IDIR = 0 - ITRUDR=99 - RETURN - 6 IDIR = 270.0 -57.29578*ATAN2(GV,GU)+ANG + 0.5 - TRUDR= (FLOAT(IDIR)+(VRTLON-ALON)) - IF(TRUDR.LT.0) TRUDR = TRUDR + 360.0 - ITRUDR = (TRUDR + 5.0)*0.1 - IF(ITRUDR.GT.36) ITRUDR=ITRUDR-36 - IF(KEY.NE.0)GO TO 9 - IDIR = (FLOAT(IDIR)+5.0)*0.1 - IF(IDIR .GT. 36) IDIR =IDIR -36 - 8 IF(ISPEED .EQ. 0) IDIR = 0 - IF(ISPEED .EQ. 0) ITRUDR =99 - IF(IDIR .EQ. 0 .AND.ISPEED .NE. 0) IDIR = 36 - IF(ITRUDR.EQ.0 .AND.ISPEED .NE. 0)ITRUDR=36 - RETURN - 9 IF(ISPEED .EQ. 0) IDIR = 0 - IF(IDIR .GT.360) IDIR =IDIR -360 - IF(ISPEED .EQ. 0) ITRUDR =99 - IF(IDIR .EQ. 0 .AND.ISPEED .NE. 0) IDIR = 360 - IF(ITRUDR.EQ.0 .AND.ISPEED .NE. 0)ITRUDR=36 - RETURN - END diff --git a/util/sorc/faxmakr.fd/twofld.f b/util/sorc/faxmakr.fd/twofld.f deleted file mode 100755 index f4e7512157..0000000000 --- a/util/sorc/faxmakr.fd/twofld.f +++ /dev/null @@ -1,175 +0,0 @@ - SUBROUTINE TWOFLD(FLDIN1,FLDIN2,FLDIN3,IMAX,JMAX,KEYIDX,IRTN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TWOFLD COMPUTE TWO INPUT GRIDPOINT DATA FIELDS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: COMPUTE TWO INPUT GRIDPOINT DATA FIELDS INTO ONE OUTPUT -C FIELD. -C -C PROGRAM HISTORY LOG: -C 89-06-12 LUKE LIN -C 89-09-01 GLORIA DENT ADD KEYIDX PARAMETER TO SUBTRACT PRECIPI- -C TATION FIELDS -C 89-11-14 LUKE LIN ADD KEYIDX PARAMETER FOR ISOTACHS -C 95-02-14 HENRICHSEN COMPLETE REWRITE AND ADDED LOGIC TO FORM -C VORTICITY FIELD FROM U & V FIELDS, -C ADD AN ERROR RETURN ARG (IRTN), -C ADD COMMON/POLE/ , ADD INLINE DOCUMENTATION. -C 95-02-15 LUKE LIN CONVERT IT TO CFT-77 -C 95-06-17 LUKE LIN MODIFY FOR PRECIP WITH DIFFERENT CAL. FORMULA. -C 97-02-18 LUKE LIN ADD KEYIDX 34 FOR HEIGHT CHANGE. -C 1999-08-01 KRISHNA KUMAR ADD POLENEW COMMON BLOCK - MODIFY THE CODE TO -C RUN ON IBM RS/6000 SP SYSTEM -C -C USAGE: CALL TWOFLD(FLDIN1,FLDIN2,FLDIN3,IMAX,JMAX,KEYIDX,IRTN)) -C INPUT ARGUMENT LIST: -C FLDIN1 - FIRST INPUT GRID DATA -C FLDIN2 - SECOND INPUT GRID DATA -C IMAX - I-DIMENSIONS OF GRIDS -C JMAX - J-DIMENSIONS OF GRIDS -C KEYIDX - KEY INDEX OF DATA TYPE (SEE BLOCK DATA) -C -C OUTPUT ARGUMENT LIST: -C FLDIN1 - OUTPUT ARRAY FLDIN1(IMAX,JMAX) CONTAINS RESULT. -C FLDIN3 - SAVE FOR FLDIN1 IF ISOTACHS -C IRTN - RETURN CONDITION. -C - = 0 GOOD RETURN -C - NE 0 ERROR RETURN FROM SUB ABSVOR DO NOT MAKE MAP. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON /POLE/ XPOL,YPOL,GDTYPE -ckumar - COMMON /POLENEW/ XMESHL -ckumar - COMMON /GRB2/ ALUGRB,ALUGRBIX,AFCSTHR,AKEYIDX,CALFLAG,GRB2FLAG - INTEGER ALUGRB - INTEGER ALUGRBIX - INTEGER AFCSTHR - INTEGER AKEYIDX - INTEGER CALFLAG - LOGICAL GRB2FLAG -C -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ... GRID MESH LENGHT = XMESHL = 381.0 KLM -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C ...THE POLE POSITION IN GRID(53,57) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C - REAL FLDIN1(IMAX,JMAX) - REAL FLDIN2(IMAX,JMAX) - REAL FLDIN3(IMAX,JMAX) - REAL WORK(65,6) - REAL TINY -C -C?? DATA TINY / 5.0E-7 / - DATA TINY / 5.0E-4 / - IRTN = 0 -C - IF (KEYIDX.EQ.10 .OR. KEYIDX.EQ.40) THEN -C -C CACULATE WIND SPEED FOR ISOTACH FILED. -C WHERE FLDIN2 CONTAINS THE U'S -C AND FLDIN1 CONTIANS THE V'S. -C - DO J= 1,JMAX - DO I =1,IMAX - GU = FLDIN2(I,J) - GV = FLDIN1(I,J) - FLDIN3(I,J) = FLDIN1(I,J) - SPEED = SQRT(GU*GU+GV*GV) - IF(SPEED.LE.0.0) SPEED = 0.0 - FLDIN1(I,J) = SPEED - ENDDO - ENDDO - ELSE IF (KEYIDX.EQ.3 .OR. KEYIDX.EQ.33) THEN -C -C CACULATE THICKNESS FROM TWO HEIGHT FIELDS. -C WHERE FLDIN1 HAS THE HEIGHER HEIGHT SUCH AS 500MB -C AND FLDIN2 CONTAINS THE LOWER HEIGHT SUCH AS 1000MB -C - DO J = 1,JMAX - DO I = 1,IMAX - FLDIN1(I,J) = FLDIN1(I,J)-FLDIN2(I,J) - ENDDO - ENDDO - ELSE IF (KEYIDX.EQ.18) THEN -C -C CACULATE BLEND AVERAGE -C - DO J = 1,JMAX - DO I = 1,IMAX - FLDIN1(I,J) = (FLDIN1(I,J)+FLDIN2(I,J))/2.0 - ENDDO - ENDDO - ELSE IF (KEYIDX.EQ.34 .OR.KEYIDX.EQ.23) THEN -C -C CACULATE HEIGHT CHANGE -C - DO J = 1,JMAX - DO I = 1,IMAX - FLDIN1(I,J) = FLDIN1(I,J)-FLDIN2(I,J) - ENDDO - ENDDO - ELSE IF (KEYIDX.EQ.7 .OR. KEYIDX.EQ.30 .OR. KEYIDX.EQ.37 - 1 .OR. KEYIDX.EQ.49 .OR. KEYIDX.EQ.19) THEN - -C ...DO SPECIAL PRECIPITATION TEST FOR VALUES LESS THAN .01 INCHES... -C WHERE FLDIN2 CONTAINS THE 12-HR ACCUM -C WHERE FLDIN1 IS THE ACCUM FOR FIRST 6-HR - IF (CALFLAG .LT. 0) THEN -C ... SUBTRACT 6 HR APCP FROM 12 HOUR FCST AND 6 HOUR FCST - DO J=1,JMAX - DO I=1,IMAX - DIFFER = FLDIN1(I,J) - FLDIN2(I,J) - IF (FLDIN1(I,J) .GE. TINY )THEN - IF (FLDIN2(I,J) .LT. TINY ) DIFFER = FLDIN1(I,J) - ELSE - DIFFER = 0.0 - ENDIF - IF ( DIFFER .LT. TINY ) DIFFER = 0.0 - FLDIN1(I,J) = DIFFER - ENDDO - ENDDO - ELSE -C .... PLUS 12 APCP FROM 12 FCST AND 24 FCST LIKE PRECIP - PRINT *,' PLUS TWO PRCIP FIELDS TOGETHER' - DO J=1,JMAX - DO I=1,IMAX - FLDIN1(I,J) = FLDIN2(I,J) + FLDIN1(I,J) - IF ( FLDIN1(I,J) .LT. TINY ) FLDIN1(I,J) = 0.0 - ENDDO - ENDDO - ENDIF - ELSE IF (KEYIDX.EQ.9) THEN -C -C FORMING THE VORTICITY FROM U & V FIELDS -C WHERE FLDIN2 CONTAINS THE U'S -C AND FLDIN1 CONTIANS THE V'S. -C - KSOUTH = 0 - CALL ABSVOR(KSOUTH,FLDIN2,FLDIN1,IMAX,JMAX,XMESHL,XPOL, - 1 YPOL,WORK,FLDIN3,IERROR) - IF (IERROR .EQ. 0 )THEN - DO J = 1,JMAX - DO I = 1,IMAX - FLDIN1(I,J) = FLDIN3(I,J) - ENDDO - ENDDO - WRITE(6,FMT='('' TWOFLD: SUB ABSVOR MADE A VORTICITY '', - 1 ''FIELD FROM U AND V FIELDS.'')') - IRTN = 0 - ELSE - WRITE(6,FMT='('' TWOFLD: ERROR RETURN FROM ABSVOR='',I3, - 1 '' WILL NOT MAKE MAP.'')')IERROR - IRTN = 1 - ENDIF - ENDIF - RETURN - END diff --git a/util/sorc/faxmakr.fd/unpkhd.f b/util/sorc/faxmakr.fd/unpkhd.f deleted file mode 100755 index 6959de9a4f..0000000000 --- a/util/sorc/faxmakr.fd/unpkhd.f +++ /dev/null @@ -1,25 +0,0 @@ - SUBROUTINE UNPKHD(ID12WD) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: UNPKHD DUMMY ROUTINE -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: DUMMY ROUTINE TO SATISIFY UNRESOLVED EXTERNAL. -C -C PROGRAM HISTORY LOG: -C 94-06-16 ORIGINAL AUTHOR HENRICHSEN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL UNPKHD(ID12WD) -C INPUT ARGUMENT LIST: -C IDREC - 12-WORD PACKED ID -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - INTEGER*8 ID12WD(6) - RETURN - END diff --git a/util/sorc/faxmakr.fd/uor_dot.f b/util/sorc/faxmakr.fd/uor_dot.f deleted file mode 100755 index d6a7c5f962..0000000000 --- a/util/sorc/faxmakr.fd/uor_dot.f +++ /dev/null @@ -1,120 +0,0 @@ - SUBROUTINE UOR_DOT(XUORS,YUORS,IDOT,JDOT,IUOPTN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: UOR_DOT CONVERT UORS COORDINATES -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO CONVERT COORDINATES (IN UORS) FROM THE INTERGRAPH'S -C NORAMPO MAP (M:100CM:1000) AT 1:10MILLION REDUCTION SCALE INTO -C IDOT,JDOT (IN PIXELS) ON 1:20M OR 1:40M SCALE. -C -C PROGRAM HISTORY LOG: -C 87-MM-DD SHIMOMURA; ORIGINAL AUTHOR. -C 89-03-30 R. CHEN; ADD OPTION FOR U.S BACKGROUND NH1302. -C 89-06-07 R. CHEN; ADD THIS DOC BLOCK. -C 90-11-27 R. CHEN; ADD AWIPS N. AMERICAN MAP BACKGROUND. (PNAM02). -C 94-02-10 SHIMOMURA; PORT TO INTERGRAPH UNIX WRKSTN; MOVED ARG -C "LISNHAWIP" FROM COMMON TO CALL SEQ. -C 95-06-28 L. LIN; MODIFY FOR CRAY. -C 95-06-30 L. LIN; ADD OPTION FOR NH4004. -C 96-06-20 L. LIN; ADD OPTION FOR NH4006. -C 96-11-05 L. LIN; ADD OPTION FOR NH4005. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL UOR_DOT(XUORS,YUORS,IDOT,JDOT,IUOPTN) -C INPUT ARGUMENT LIST: -C XUORS - REAL*4; X COORDINATES IN UORS. -C YUORS - REAL*4; Y COORDINATES IN UORS. -C IUOPTN - INTEGER*4; FOR MAP BACKGROUND OPTION SELECTION. -C =1 - NH1302; =2 - NH4006; =3 - NH2002; =4 - PNAM02. -C =5 - NH4004 -C -C OUTPUT ARGUMENT LIST: -C IDOT - INTEGER*4; COVERTED X COORDINATES IN PIXELS. -C JDOT - INTEGER*4; COVERTED Y COORDINATES IN PIXELS. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI - LOGICAL UORFG -C - REAL XUORS,YUORS - INTEGER IDOT,JDOT - INTEGER IUOPTN -C LOGICAL LISNHAWIP -C - REAL T1(8) - REAL XPO(8) - REAL YPO(8) - REAL XADJUS(8) - REAL YADJUS(8) - REAL CU2GI(8) -C - REAL XPOLE,YPOLE - REAL DOTSGI - REAL CUORGR - REAL ADJUSX - REAL ADJUSY -C ... ADJUSX, ADJUSY ARE THE DISPLACEMENT RELATIVE TO POLE. -C - DATA T1 / 54.0, 37.5, 37.5, 37.5, 37.5, 36.0, 28.846, - 1 30.0 / - DATA XPO / 17.0, 33.0, 27.0, 33.0, 33.0, 33.0, 27.0, - 1 27.0 / - DATA YPO / 46.0, 33.0, 46.0, 45.0, 33.0, 33.0, 49.0, - 1 49.0 / - DATA XADJUS / -1.0, -8.0, 0.0, 0.0, -9.0, -9.0,-12.0, - 1 -3.0 / - DATA YADJUS / -5.0, -0.0, 0.0, 0.0, -7.0, -7.0, -7.0, - 1 -3.0 / - DATA CU2GI / 1905.0, 3810.0, 1905.0, 1905.0, 3810.0, - 1 3810.0, 1905.0, 1905.0 / -C -C -C ... IUOPTN=1 FOR 43*31 LFM SUBSET W/ 105W VERTICAL. 1:13M - NH1302. -C ... IUOPTN=2 FOR 65*65 N.HEMI 1/40M W/ 105W VERTI. 1:40M - NH4006. -C ... IUOPTN=3 FOR 53*57 FULL LFM GRID W/ 105W VERTI. 1:20M - NH2002. -C ... IUOPTN=4 FOR 65*43 FULL LFM GRID W/ 105W VERTI. 1:20M - PNAM02. -C ... IUOPTN=5 FOR 65*65 N.HEMI 1/40M W/ 80W VERTI. 1:40M - NH4004. -C ... IUOPTN=6 FOR 65*65 N.HEMI 1/40M W/ 80W VERTI. 1:40M - NH4005. -C ... IUOPTN=7 FOR 53*57 FULL LFM GRID W/ 105W VERTI. 1:26M - PN2601. -C -C PRINT *, ' ',IUOPTN,' UXPO=',UXPO,' UYPO=', UYPO,' t1=',ugridt1 - IF (UORFG) THEN -C .... CONSTANTS FROM INPUT CARDS - CUORGR = UCU2GI - XPOLE = UXPO - YPOLE = UYPO - DOTSGI = UGRIDT1 - ADJUSX = UXADJUS - ADJUSY = UYADJUS - ELSE -C .... CONSTANTS FROM OPTION - ISS = IUOPTN - IF((ISS .LT. 1) .OR. (ISS .GT. 8)) ISS = 2 - CUORGR = CU2GI(ISS) - XPOLE = XPO(ISS) - YPOLE = YPO(ISS) - DOTSGI = T1(ISS) - ADJUSX = XADJUS(ISS) - ADJUSY = YADJUS(ISS) - ENDIF -C -C PRINT *, ' ADJUSX=', ADJUSX, ' ADJUSY=', ADJUSY -C print *,' xpol=',xpole,' ',ypole,' ', cuorgr - XGRID = XUORS / CUORGR - YGRID = YUORS / CUORGR - XLFMG = XGRID + XPOLE + ADJUSX - YLFMG = YGRID + YPOLE + ADJUSY - IDOT = ((XLFMG - 1.0) * DOTSGI) + 0.5 - JDOT = ((YLFMG - 1.0) * DOTSGI) + 0.5 -C - RETURN - END -C diff --git a/util/sorc/faxmakr.fd/updown.f b/util/sorc/faxmakr.fd/updown.f deleted file mode 100755 index ced7d8faec..0000000000 --- a/util/sorc/faxmakr.fd/updown.f +++ /dev/null @@ -1,38 +0,0 @@ - SUBROUTINE UPDOWN(FLDIN1,FLDIN2,IMAXI,JMAXI) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: UPDOWN TO UPSIDE DOWN THE GRID DATA -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO UPSIDE DOWN THE GRID DATA -C -C PROGRAM HISTORY LOG: -C 89-06-28 ORIGINAL AUTHOR LUKE LIN -C 95-01-03 LUKE LIN CONVERT IT CFT-77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL UPDOWN(FLDIN1,FLDIN2,IMAXI,JMAXI) -C INPUT ARGUMENT LIST: -C FLDIN1 - FLDIN1(IMAXI,JMAXI) INPUT GRID DATA -C I/JMAXI - DIMENSIONS OF SUBGRIDS -C -C OUTPUT ARGUMENT LIST: -C FLDIN2 - OUTPUT ARRAY FLDIN2(IMAXI,JMAXI) -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - REAL FLDIN1(IMAXI,JMAXI) - REAL FLDIN2(IMAXI,JMAXI) -C -C------------------------------------------------------------- -C -C ... UP-SIDE DOWN THE MAP FOR VARIAN - DO 376 J=1,JMAXI - DO 376 I=1,IMAXI - FLDIN2(I,J)=FLDIN1(I,JMAXI-J+1) - 376 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakr.fd/vbound.f b/util/sorc/faxmakr.fd/vbound.f deleted file mode 100755 index 67ee1420fa..0000000000 --- a/util/sorc/faxmakr.fd/vbound.f +++ /dev/null @@ -1,171 +0,0 @@ - SUBROUTINE VBOUND(FT,IFT,JFT,IJV,LIJV) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PGM-VBOUND CHECKING THE BOUNDARY POINTS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: FINDING THE BOUNDARY POINTS -C -C PROGRAM HISTORY LOG: -C 86-04-24 ORIG AUTHOR SCHNURR -C 90-03-15 LILLY ADD DOCBLOCK TO SUBROUTINE -C 93-06-01 GILBERT/LILLY FORTRAN 77 -C 96-07-18 YEN - CONVERT FROM HDS VS FORTRAN TO CRAY CFT-77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C ASSIGNED PROPER VALUE TO XINDEFF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8. -C -C USAGE: CALL VBOUND(FT,IFT,JFT,IJV,LIJV) -C INPUT ARGUMENT LIST: -C FT - THE GIVEN ARRAY WITH INDEFINITES -C - OUTSIDE THE BOUNDARIES -C IFT - THE I COORDINATE OF THE FIELD -C JFT - THE J COORDINATE OF THE FIELD -C IJV - THE DIMENSIONED 4XLIJV. WORD ONE CONTAINS -C - THE MARKER, WORD TWO THE I COMPONENT, -C - WORD THREE THE J COMPONENT, AND WORD -C - FOUR THE COUNT. THE MARKER IS 0 FOR J -C - VECTORS AND 1 FOR I VECTORS -C -C OUTPUT ARGUMENT LIST: -C LIJV - DATA SET REF NUMBER OF TEMPORARY DISK FILE TO -C - WRITE THE ARGS ONTO -C -C SUBPROGRAMS CALLED: -C LIBRARY: -C SPECIAL - -C W3LIB - -C GRAPHICS - -C -C EXIT STATES: -C COND = 0 SUCCESSFUL RUN -C =1001 IJV ARRAY TOO SHORT -C -C REMARKS: ADDITIONAL INFORMATION WILL BE PROVIDED AS PROGRAM -C BECOMES BETTER UNDERSTOOD -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C -C ...FT IS THE GIVEN ARRAY WITH INDEFINITES OUTSIDE THE BOUNDARIES -C ...IFT,JFT ARE THE DIMENSIONS OF FT -C ...IJV IS DIMENSIONED 4XLIJV. WORD ONE CONTAINS -C ...THE MARKER, WORD TWO THE I COMPONENT, WORD THREE THE J -C ...COMPONENT, AND WORD FOUR THE COUNT. THE MARKER IS 0 FOR J -C ...VECTORS AND 1 FOR I VECTORS. -C -C - DIMENSION FT(IFT,JFT) - DIMENSION IJV(4,LIJV) - REAL XINDEF - DATA XINDEF /1.0E307 / -C ...ZERO LOCATIONS OF IJV - DO 10 M=1,LIJV - DO 20 N=1,4 - IJV(N,M)=0 - 20 CONTINUE - 10 CONTINUE -C ...SCAN FT ARRAY FOR ALL BOUNDARY PTS AND FLAG THE POINT WITH 1 - DO 60 IP=1,IFT - DO 60 JP=1,JFT - IF(FT(IP,JP).EQ.XINDEF) GO TO 60 - IF((IP.EQ.1).OR.(IP.EQ.IFT)) GO TO 35 - IF((JP.EQ.1).OR.(JP.EQ.JFT)) GO TO 35 - GO TO 50 - 35 CONTINUE -C ...POINT IS ON THE BOUNDARY OF FT ARRAY AND NOT INDEFINITE - 40 FT(IP,JP)=1.0 -C ...POINT IS ON THE BOUNDARY NEXT TO AN INDEFINITE - GO TO 60 -C ...CHECK IF POINT IS A CORNER PT. OF AN ADJACENT SQUARE WHICH -C ...HAS AT LEAST ONE INDEFINITE CORNER PT. - 50 CONTINUE - IF(FT(IP-1,JP-1).EQ.XINDEF) GO TO 40 - IF(FT(IP-1,JP).EQ.XINDEF) GO TO 40 - IF(FT(IP-1,JP+1).EQ.XINDEF) GO TO 40 - IF(FT(IP,JP-1).EQ.XINDEF) GO TO 40 - IF(FT(IP,JP+1).EQ.XINDEF) GO TO 40 - IF(FT(IP+1,JP-1).EQ.XINDEF) GO TO 40 - IF(FT(IP+1,JP).EQ.XINDEF) GO TO 40 - IF(FT(IP+1,JP+1).EQ.XINDEF) GO TO 40 -C ...POINT IS IN THE INTERIOR - FT(IP,JP)=0 - 60 CONTINUE -C ...SCAN FIELD FOR J THEN I LINE SEGMENTS AND PUT IN IJV ARRAY - K=1 -C ...J-VECTOR SEARCH - MRK=0 - DO 100 IP=1,IFT - KNT=0 - ISAV=IP - DO 90 JP=1,JFT - IF(FT(IP,JP).EQ.XINDEF) GO TO 70 - IF(FT(IP,JP).NE.1.) GO TO 70 - IF(KNT.NE.0) GO TO 66 - JSAV=JP - KNT=KNT+1 - GO TO 90 - 66 CONTINUE - KNT=KNT+1 -C ...CHECK IF ADJACENT POINT IN NEXT ROW IS A BOUNDARY POINT - IF((IP.EQ.1).OR.(IP.EQ.IFT)) GO TO 90 - IF(FT(IP+1,JP).EQ.XINDEF) GO TO 90 - IF(FT(IP-1,JP).EQ.XINDEF) GO TO 90 - IF(FT(IP+1,JP).EQ.1.) GO TO 70 -C ...POINT TO THE RIGHT IS IN THE INTERIOR - GO TO 90 - 70 IF(KNT.GT.1) GO TO 80 - KNT=0 - GO TO 90 - 80 IF(K.GT.(LIJV-1)) GO TO 1000 - IJV(1,K)=MRK - IJV(2,K)=ISAV - IJV(3,K)=JSAV - IJV(4,K)=KNT - K=K+1 - KNT=0 - 90 CONTINUE - 100 CONTINUE -C ...I-VECTOR SEARCH - MRK=1 - DO 200 JP=1,JFT - KNT=0 - JSAV=JP - DO 190 IP=1,IFT - IF(FT(IP,JP).EQ.XINDEF) GO TO 170 - IF(FT(IP,JP).NE.1.) GO TO 170 - IF(KNT.NE.0) GO TO 166 - ISAV=IP - KNT=KNT+1 - GO TO 190 - 166 CONTINUE - KNT=KNT+1 -C ...CHECK IF ADJACENT POINT IN NEXT ROW IS A BOUNDARY POINT - IF((JP.EQ.1).OR.(JP.EQ.JFT)) GO TO 190 - IF(FT(IP,JP+1).EQ.XINDEF) GO TO 190 - IF(FT(IP,JP-1).EQ.XINDEF) GO TO 190 - IF(FT(IP,JP-1).NE.1.) GO TO 190 -C ...POINT BELOW IS ON BOUNDARY. STOP COUNT. - GO TO 170 - 170 IF(KNT.GT.1) GO TO 180 - KNT=0 - GO TO 190 - 180 IF(K.GT.(LIJV-1)) GO TO 1000 - IJV(1,K)=MRK - IJV(2,K)=ISAV - IJV(3,K)=JSAV - IJV(4,K)=KNT - K=K+1 - KNT=0 - 190 CONTINUE - 200 CONTINUE - RETURN - 1000 PRINT 1001 - 1001 FORMAT(5X,'IJV ARRAY TOO SHORT') - RETURN - END diff --git a/util/sorc/faxmakr.fd/wndplt.f b/util/sorc/faxmakr.fd/wndplt.f deleted file mode 100755 index 4f04661e81..0000000000 --- a/util/sorc/faxmakr.fd/wndplt.f +++ /dev/null @@ -1,97 +0,0 @@ - SUBROUTINE WNDPLT(GRIDU,GRIDV,IMAX,JMAX) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: WNDPLT PLOT WIND DIRECTIONS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PLOT WIND DIRECTIONS ON EVERY GRID POINT BY USING -C U & V COMPONENTS. -C -C PROGRAM HISTORY LOG: -C 90-11-05 ORIGINAL AUTHOR LUKE LIN -C 95-01-04 LUKE LIN CONVERT IT CFT-77. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL WNDPLT(GRIDU,GRIDV,IMAX,JMAX) -C INPUT ARGUMENT LIST: -C GRIDU - U COMPONENTS. -C GRIDV - V COMPONENTS. -C IMAX - SIZE OF ARRAY GRIDU/V AT I. -C JMAX - SIZE OF ARRAY GRIDU/V AT J. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - COMMON /ICON/ UA1(50),UA2(50),UA3(50),UM1(50),UM2(50),UM3(50), - 1 KTYPE(50) - CHARACTER*4 KTYPE - REAL UA1,UA2,UA3,UM1,UM2,UM3 - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C ...KEY TYPE INDEX, CONSTANT, AND CONTOUR LINE VALUE - REAL GRIDU(IMAX,JMAX) - REAL GRIDV(IMAX,JMAX) - REAL CNVRD -C - DATA CNVRD /.01745329/ -C - IPX = 0 - IPY = 0 - IENTRY = 1 - IDELTA = 0 - VA3V = UA3(40) - VM3V = UM3(40) -C .... INITIALIZATION - DO 500 J=2, JMAX-1 - NSKIP = MOD(J,2) - YY = (J-1) * T1 - DO 500 I=2, IMAX-1 - IF (IGRIDP .EQ. 26) THEN - NSKIP = NSKIP + 1 - IF (MOD(NSKIP,2).EQ.0) GO TO 500 - ENDIF - XX = (I-1) * T1 - IF (IPX.EQ.0 .OR. IPY.EQ.0) GO TO 500 - XU=GRIDU(I,J) - YV=GRIDV(I,J) - IF (YV.EQ.0.) GO TO 500 - IF (XU.GE.0.) THEN - ALPHA = 270. - ELSE - ALPHA = 90. - ENDIF -C - RADINS = ATAN2(ABS(YV),ABS(XU)) - WNDIR = RADINS / CNVRD - ASIGN = XU * YV - IF (ASIGN .GE. 0.0) THEN - IWNDIR = NINT(ALPHA - WNDIR) - ELSE - IWNDIR = NINT(ALPHA + WNDIR) - ENDIF - IF (IGRIDP .EQ. 27) THEN - IWNDIR = IWNDIR - 25 - ENDIF - IF (IWNDIR .GT. 360) THEN - IWNDIR = IWNDIR - 360 - ELSE IF (IWNDIR .LT. 0) THEN - IWNDIR = IWNDIR + 360 - ENDIF - KWNDIR = NINT(FLOAT(IWNDIR)/10.) -C - SPEED = SQRT(XU*XU+YV*YV) - SPEED = (SPEED + VA3V) * VM3V - IF(SPEED.LE.0.0) SPEED = 0.0 - KNOTS = NINT(SPEED) - IF (KNOTS.EQ.0) KWNDIR=0 -C ...REGARDLESS WIND DIRECTION IF WIND SPEED LESS THAN 1. -C PRINT *,' I,J,XU,YV,IWNDIR=',I,J,IPX,IPY,XU,YV,KNOTS,IWNDIR -C - IENTRY = IENTRY + 1 - 500 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakr.fd/xlabel.f b/util/sorc/faxmakr.fd/xlabel.f deleted file mode 100755 index d492eb70a4..0000000000 --- a/util/sorc/faxmakr.fd/xlabel.f +++ /dev/null @@ -1,87 +0,0 @@ - SUBROUTINE XLABEL(FLDIN,IDIM,JDIM,XINDEF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: XLABEL TO SET UNDEFINED ON THE GRID ACCORDINGLY. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO SET UNDEFINED ON THE GRID ACCORDINGLY FOR GENERATING LABELS. -C -C PROGRAM HISTORY LOG: -C 97-04-22 LUKE LIN -C 97-07-11 LUKE LIN MODIFIY FOR GRID TYPE5 AND TRAJECTORY 4-PANEL. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL XLABEL(FLDIN,IDIM,JDIM,XINDEF) -C INPUT ARGUMENTS: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C IDIM - I-DIMENSION OF THE ORIGINAL SMLFLD. -C JDIM - J-DIMENSION OF THE ORIGINAL SMLFLD. -C -C OUTPUT ARGUMENT LIST: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: CFT-77 -C MACHINE: CRAY -C -C$$$ -C -C * * * * * * * * * * * -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C - COMMON /PCLP/ PCLPFG - LOGICAL PCLPFG -C - COMMON/SEA/ SAN(53,57) - INTEGER SAN - COMMON/TRAJ4/ ZAN(53,57) - INTEGER ZAN -C - REAL FLDIN(IDIM,JDIM) - REAL XINDEF -C - PRINT *, ' IN SUBROUTINE XLABEL' - PRINT *, ' IDIM=', IDIM, ' JDIM=',JDIM -C -C IF (RANGFG.AND.KEYIDX.EQ.46) THEN - IF (KEYIDX.EQ.46) THEN - PRINT *, ' IN TDL MOS TSTM/SVR WX - SET UNDEFINED' - DO I=1, IDIM - DO J=1, JDIM - IF( SAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO - ELSE IF (IGRIDP.EQ.05 .AND. PCLPFG) THEN - PRINT *, ' IN TYPE 5 - SET UNDEFINED' - DO I=1, IDIM - DO J=1, JDIM - IF( SAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO - ELSE IF (KEYIDX.EQ.51.OR.KEYIDX.EQ.47.OR.KEYIDX.EQ.48) THEN - PRINT *, ' IN TRAJ4 SECTION' -C -C DO J=1,57 -C PRINT *,' J=', J -C WRITE(*,150)(FLDIN(M,J),M=1,53) -C ENDDO - 150 format( 3(10(1x,f5.1),3x),/, 2(10( 1x,F5.1),3x),3(1x,F5.1),/) -C - DO I=1, IDIM - DO J=1, JDIM - IF( ZAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO - ENDIF -C -C DO J=1,57 -C PRINT *,' J=', J -C WRITE(*,150)(FLDIN(M,J),M=1,53) -C ENDDO - RETURN - END diff --git a/util/sorc/faxmakrx.fd/absvor.f b/util/sorc/faxmakrx.fd/absvor.f deleted file mode 100755 index 9afb068902..0000000000 --- a/util/sorc/faxmakrx.fd/absvor.f +++ /dev/null @@ -1,351 +0,0 @@ - SUBROUTINE ABSVOR(KSOUTH,FLDU,FLDV,IMAX,JMAX,XMESHL,XIPOLE,XJPOLE, - 1 WORK,FABSVO,IERROR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C $ . . . -C SUBPROGRAM: ABSVOR ABSOLUTE VORTICITY FROM WINDS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GENERATES A FIELD OF ABSOLUTE VORTICITY FROM THE GIVEN WINDS -C ON A GRID WHICH OVERLAYS A POLAR STEREOGRAPHIC MAP PROJECTION -C TRUE AT 60N LATITUDE IF FOR A NORTHERN HEMISPHERIC MAP -C (TRUE AT 60S LATITUDE IF FOR A SOUTHERN HEMISPHERIC MAP). -C -C PROGRAM HISTORY LOG: -C 82-08-03 SHIMOMURA -C 88-10-06 LUKE LIN ADD NEW DOCBLOCK -C 95-02-15 LUKE LIN CONVERT IT CFT-77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 SP -C -C USAGE: CALL ABSVOR(KSOUTH,FLDU,FLDV,IMAX,JMAX,XMESHL,XIPOLE, -C XJPOLE,WORK,FABSVO,IERROR) -C INPUT ARGUMENT LIST: -C KSOUTH - SET KSOUTH=0 IF DATA IS FOR NORTHERN HEMISPHERIC MAP -C - SET KSOUTH=1 IF DATA IS FOR SOUTHERN HEMISPHERIC MAP -C FLDU - REAL*4 FLDU(IMAX,JMAX) -C - U-COMPONENT OF THE WIND IN METERS PER SEC. -C - U-COMPONENT IS GRID-ORIENTED COMPONENT IN X DIRECTION -C FLDV - REAL*4 FLDV(IMAX,JMAX) -C - V-COMPONENT OF THE WIND IN METERS PER SEC. -C - V-COMPONENT IS GRID-ORIENTED COMPONENT IN Y DIRECTION -C IMAX - I-DIMENSION OF THE GRID -C JMAX - J-DIMENSION OF THE GRID -C XMESHL - GRID INTERVAL (IN KILOMETERS) AT TRUE LATITUDE. -C XIPOLE - LOCATION OF POLE, I-COORDINATE OF POLE (REAL*4) -C XJPOLE - LOCATION OF POLE, J-COORDINATE OF POLE (REAL*4) -C WORK - REAL*4 WORK(IMAX,6) FOR TEMPORARY WORK SPACE -C -C OUTPUT ARGUMENT LIST: -C FABSVO - REAL*4 FABSVO(IMAX,JMAX) -C - FOR THE RESULTING ABSOULUTE VORTICITY VALUES -C IERROR - =0 IF NORMAL RETURN; -C - =1 ABNORMAL RETURN (IMAX/JMAX HAS INVALID VALUE); -C - =2 ABNORMAL RETURN (XMESHL IS ZERO OR NEGATIVE). -C -C REMARKS: THE EDGE POINTS IN THE RESULTING FIELD OF ABSOLUTE -C VORTICITY HAVE BEEN FILLED WITH VALUES IDENTICAL TO THE ADJACENT -C FIRST INTERIOR POINTS, SO DON'T USE THE BOUNDARY POINTS UNLESS YOU -C HAVE TO. -C CAUTION ... THE 65*65 FIELDS FROM THE SPECTRAL MODEL, AS OF THIS -C DATE, CONTAIN GARBAGE IN THE CORNERS BEYOND THE EQUATOR, SO IF -C YOU ARE USING THOSE FOR FLDU AND FLDV, THEN IGNORE THE RESULTING -C STRANGE VALUES IN THE CORNERS BEYOND THE EQUATOR. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C -C ... DERIVATION OF PROCEDURE ... -C ... IN THIS SUB WE WILL USE DIAGONAL DIFFERENCING -C ... WITH X-AXIS HEADING SOUTHEASTWARD ON GRID -C ... RELATIVE VORTICITY ZETA = DV/DX - DU/DY -C ... DX IS APPROXIMATED BY DISTANCE OF SQRT(2) GRID INTERVALS -C ... CONVERTED TO EARTH DISTANCE BY MEANS OF THE MAP FACTOR: -C ... MAPFACTOR = (1+SINLAT) / (1+SIN(60)) -C -C ... DX = SQRT(2) * XMESHL * MAPFACTOR -C ... THE MAP FACTOR USED FOR DX IS APPROXIMATED BY THE AVERAGE -C ... OF THE MAPFACTOR AT SOUTHEAST POINT AND NORTHWEST POINT -C -C ... AVG MAPFACTOR =(1/2)*(MAPFACTOR(SE) + MAPFACTOR(NW)) -C =(1/(2*(1+SIN60)))*(1+SINLAT(SE)+1+SINLAT(NW)) -C -C ... DX = (1.414*XMESHL/((2*(1+SIN60)))*(2+SINLAT(SE) + SINLAT(NW)) -C -C DV 2*(1+SIN60) V(SOUTHEAST) - V(NORTHWEST) -C -- = ------------ * ----------------------------------- -C DX 1.414*XMESHL 2 + SINLAT(SE) + SINLAT(NW) -C -C -C * * * * * * * * * * * -C - REAL FLDU(IMAX,JMAX) - REAL FLDV(IMAX,JMAX) - REAL FABSVO(IMAX,JMAX) - REAL WORK(IMAX,6) - REAL Y(4) -C ... WHERE Y(4) IS USED TO INTERPOLATE IN 4X4 -C - LOGICAL LSHEMI -C - DATA CNV2RD / 0.0174533 / - DATA OMEGA2 / 1.4584E-1 / -C ... WHERE 2 OMEGA SHUD BE 1.4584E-4 BUT I AM SCALING IT BY 1000. -C - DATA EARTHR / 6371.2 / -C ... WHERE EARTHR IS EARTH RADIUS IN KM ... -C - DATA KU / 1 / - DATA KV / 2 / - DATA KSIN / 3 / - DATA SICO45 / 0.7071068 / - DATA A1,A2,A3,A4 / -0.0625, 0.5625, 0.5625, -0.0625 / -C -1/16, 9/16, 9/16, -1/16 -C ... WHICH IS USED IN INTERPOLATING -C -C . . . S T A R T . . . -C - IERROR = 0 - LSHEMI = .FALSE. - IF(KSOUTH .NE. 0) LSHEMI = .TRUE. - IM2 = IMAX - 1 - IF(IM2 .LT. 2) GO TO 911 - JM2 = JMAX - 1 - IF(JM2 .LT. 2) GO TO 911 - IF(XMESHL .LE. 0.0) GO TO 922 -C -C ... INITIALIZE CONSTANT FOR DISTANCE FROM POLE TO EQUATOR -C ... IN GRID INTERVALS - RMAPKM = 1.8660254 * EARTHR - RMAPGI = RMAPKM / XMESHL - GISQD = RMAPGI * RMAPGI -C - EM = 1.0 + SIN(60.0*CNV2RD) - EMOVRD = 2.0*EM / (1.4142136*XMESHL) -C ... IN EMOVRD THE XMESHL IS IN KM, SO THE NUMBERS WILL BE -C ... TOO BIG BY A FACTOR OF 1000.0 -C -C ... THE WORK ARRAY WILL BE USED TO KEEP TWO ROWS OF DATA -C ... NEEDED FOR CALCULATING THE VORTICITY -C ... UPRIME, VPRIME, AND SINLAT FOR BOTH ROWS -C -C ... INITIALIZE THE FIRST ROW'S DATA ... - J = 1 - XJ = FLOAT(J) - XJPOLE - JCURR = 0 - DO 222 I = 1,IMAX - U = FLDU(I,J) - V = FLDV(I,J) - UPRIME = SICO45 * (U - V) - VPRIME = SICO45 * (U + V) - WORK(I,JCURR+KU) = UPRIME - WORK(I,JCURR+KV) = VPRIME - XI = FLOAT(I) - XIPOLE - RSQD = XI*XI + XJ*XJ - SINLAT = (GISQD - RSQD) / (GISQD + RSQD) - WORK(I,JCURR+KSIN) = SINLAT - 222 CONTINUE -C - JCURR = 3 - JABV = 0 - DO 277 JBIG = 1,JM2 - IF(JABV .EQ. 0) GO TO 233 -C ... ELSE, JABV MUST HAVE BEEN =3, SO RESET IT TO ZERO - JABV = 0 - JCURR = 3 - GO TO 244 - 233 CONTINUE -C ... JABV WAS = 0, SO CHG IT TO = 3 - JABV = 3 - JCURR = 0 - 244 CONTINUE - JB1 = JBIG + 1 - XJ = FLOAT(JB1) - XJPOLE - DO 255 I = 1,IMAX - U = FLDU(I,JB1) - V = FLDV(I,JB1) - UPRIME = SICO45 * (U - V) - VPRIME = SICO45 * (U+V) - WORK(I,JABV+KU) = UPRIME - WORK(I,JABV+KV) = VPRIME - XI = FLOAT(I) - XIPOLE - RSQD = XI * XI + XJ * XJ - SINLAT = (GISQD - RSQD) / (GISQD + RSQD) - WORK(I,JABV+KSIN) = SINLAT - 255 CONTINUE -C - DO 266 I = 1,IM2 - VSE = WORK(I+1,JCURR+KV) - VNW = WORK(I,JABV+KV) - USW = WORK(I,JCURR+KU) - UNE = WORK(I+1,JABV+KU) - DENOMV = 2.0 + WORK(I+1,JCURR+KSIN) + WORK(I,JABV+KSIN) - DVDX = (VSE - VNW) / DENOMV -C - DENOMU = 2.0 + WORK(I+1,JABV+KSIN) + WORK(I,JCURR+KSIN) - DUDY = (UNE - USW) / DENOMU -C - ZETA3 = EMOVRD * (DVDX - DUDY) -C ... WHICH IS THE SCALED RELATIVE VORTICITY AT OFFSET POINT -C ... (VALID AT MIDDLE OF GRID SQUARE) -C ... NEXT, GET CORIOLIS PARAMETER ALSO FOR OFFSET POINT ... - F3 = OMEGA2*0.25*(WORK(I,JCURR+KSIN) + WORK(I+1,JCURR+KSIN) + - 1 WORK(I,JABV+KSIN) + WORK(I+1,JABV+KSIN)) -C - IF(LSHEMI) F3 = -F3 -C - FABSVO(I,JBIG) = (ZETA3+F3) / 1000.0 -C ... THE OFFSET ABSOLUTE VORTICITY HAS BEEN STORED AT THE -C ... LOWER LEFT CORNER OF THE SQUARE WITHIN WHICH THE VALUE IS -C ... VALID FOR. - 266 CONTINUE - 277 CONTINUE -C -C ... TO GET THE OFFSET POINTS BACK TO GRIDPOINTS, AVERAGE -C ... THE 4 POINTS SURROUNDING A GRIDPOINT. -C ... GO BACKWARDS THROUGH THE GRID TO AVOID OVERWRITING -C ... A VALUE I NEED TO USE YET. - ICHK = 0 - JWKIN = 1 - JWKMID = 2 - JWKOUT = 3 -C ... USES 3 ROWS OF WORK ARRAY AS HOLDING TANK TO PREVENT OVERWRIT -C -C ... DO 1ST INTERIOR ROW ADJACENT TO TOP ROW FIRST -C ... BY AVGG 4 SURROUNDING POINTS AND STORE IN WORK(I,JWKIN) - JL = JMAX-2 - IMXM2 = IMAX - 2 - DO 411 IL = 1,IMXM2 - ALL = FABSVO(IL,JL) - ALR = FABSVO(IL+1,JL) - AUL = FABSVO(IL,JL+1) - AUR = FABSVO(IL+1,JL+1) -C - AVG = (ALL+ALR+AUL+AUR) / 4.0 - WORK(IL+1,JWKIN) = AVG - 411 CONTINUE -C ... THEN FILL BOTH ENDS OF THIS LINE W/ SAME VALUE AS 1ST INTERIOR - WORK(1,JWKIN) = WORK(2,JWKIN) - WORK(IMAX,JWKIN) = WORK(IMAX-1,JWKIN) -C ... WHICH FINISHED FIRST INTERIOR ROW ADJACENT TO TOP ROW -C -C ... NEXT, MAKE A DUPLICATE OF FIRST INTERIOR FOR TOP ROW -C ... AND SAVE TEMPORARILY IN WORK(I,JWKMID) - DO 422 I = 1,IMAX - WORK(I,JWKMID) = WORK(I,JWKIN) - 422 CONTINUE -C -C ... NOW WE ARE FAR ENOUGH INTO GRID TO HAVE 4X4 POINTS FOR -C ... 16-POINT INTERPOLATION ... - JMXM4 = JMAX - 4 - DO 477 JR = 1,JMXM4 - JLL = JMAX - JR - 3 -C ... TO GET POINT(ILL,JLL) TO POINT AT LOWER LEFT CORNER OF 4X4 -C -C ... TO RESET POINTERS OF FIRSTIN FIRST OUT STACK - JSAVIN = JWKIN - JWKIN = JWKOUT - JWKOUT = JWKMID - JWKMID = JSAVIN -C ... AT FIRST INTERIOR POINT ADJACENT TO LEFT AND RIGHT ENDS -C ... OF THIS LINE, USE 4-POINT AVERAGE - ALL = FABSVO(1,JLL+1) - ALR = FABSVO(2,JLL+1) - AUL = FABSVO(1,JLL+2) - AUR = FABSVO(2,JLL+2) -C - AVG = (ALL + ALR + AUL + AUR) / 4.0 - WORK(2,JWKIN) = AVG -C ... THEN PUT SAME VALUE IN EDGE POINT - WORK(1,JWKIN) = AVG -C -C ... SIMILARLY AT THE RIGHT END OF THIS ROW ... - ALL = FABSVO(IMAX-2,JLL+1) - ALR = FABSVO(IMAX-1,JLL+1) - AUL = FABSVO(IMAX-2,JLL+2) - AUR = FABSVO(IMAX-1,JLL+2) -C - AVG = (ALL + ALR + AUL + AUR) / 4.0 - WORK(IMAX-1,JWKIN) = AVG - WORK(IMAX,JWKIN) = AVG -C ... NEXT DO THE GOOD 4X4 INTERIOR POINTS OF THIS ROW - IMXM4 = IMAX - 4 - DO 444 ILL = 1,IMXM4 -C -C ... INTERPOLATE TO CENTER OF 4X4 ARRAY WHOSE LOWER-LEFT -C ... CORNER IS AT (ILL,JLL) - JTHIS = JLL - DO 440 JJ = 1,4 -C - Y(JJ) = A1*FABSVO(ILL,JTHIS) + A2*FABSVO(ILL+1,JTHIS) - 1 + A3*FABSVO(ILL+2,JTHIS) + A4*FABSVO(ILL+3,JTHIS) -C - JTHIS = JTHIS + 1 - 440 CONTINUE - RESULT = A1*Y(1) + A2*Y(2) + A3*Y(3) +A4*Y(4) - IDEST = ILL + 2 - WORK(IDEST,JWKIN) = RESULT - 444 CONTINUE -C ... WHICH FINISHED INTERPOLATING ONE ROW -C ... NEXT OVERWRITE FABSVO ONE ROW FROM WORK(I,JWKOUT) - JOVRWR = JLL + 4 - DO 455 I = 1,IMAX - FABSVO(I,JOVRWR) = WORK(I,JWKOUT) - 455 CONTINUE - 477 CONTINUE -C ... WHEN IT FALLS OUT OF 477 LOOP, -C ... I HAVE DONE DESTINATION ROW J=3 AND STORED IT IN -C ... WORK(I,JWKIN), AND I HAVE OVERWRITTEN FABSVO(I,5) -C ... WITH CONTENTS OF WORK(I,JWKOUT) -C -C ... SO WHAT IS LEFT IN HOLDING TANK? -C ... WORK(I,JWKMID) HAS JDESTINATION=4 -C ... WORK(I,JWKIN) HAS JDESTINATION=3 -C -C ... AND I STILL NEED TO DO FIRST INTERIOR ROW USING DATA -C ... IN FABSVO ROWS 1 AND 2 -C -C ... SO I CAN OVERWRITE ROWS 4 AND 3 - DO 511 I = 1,IMAX - FABSVO(I,4) = WORK(I,JWKMID) - 511 CONTINUE - DO 522 I = 1,IMAX - FABSVO(I,3) = WORK(I,JWKIN) - 522 CONTINUE -C ... NOW HOLDING TANK IN WORK ARRAY IS ALL CLEAR -C ... AND FIRST TWO ROWS OF FABSVO STILL HAS OFFSET DATA - JL = 1 - DO 533 IL=1,IMXM2 - ALL = FABSVO(IL,JL) - ALR = FABSVO(IL+1,JL) - AUL = FABSVO(IL,JL+1) - AUR = FABSVO(IL+1,JL+1) -C - AVG = (ALL+ALR+AUL+AUR) / 4.0 - WORK(IL+1,JWKOUT) = AVG - 533 CONTINUE - WORK(1,JWKOUT) = WORK(2,JWKOUT) - WORK(IMAX,JWKOUT) = WORK(IMAX-1,JWKOUT) -C ... WHICH COMEPLETES 1ST INTERIOR ROW SO OVERWRITE ROW2 - DO 544 I = 1,IMAX - FABSVO(I,2) = WORK(I,JWKOUT) - 544 CONTINUE -C ... FINALLY SET BOTTOM ROW IDENTICAL TO FIRST INTERIOR ROW - DO 555 I = 1,IMAX - FABSVO(I,1) = WORK(I,JWKOUT) - 555 CONTINUE - GO TO 999 -C - 911 CONTINUE - IERROR = 1 - GO TO 999 - 922 CONTINUE - IERROR = 2 - GO TO 999 -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakrx.fd/absvws.f b/util/sorc/faxmakrx.fd/absvws.f deleted file mode 100755 index e90b579ece..0000000000 --- a/util/sorc/faxmakrx.fd/absvws.f +++ /dev/null @@ -1,37 +0,0 @@ - SUBROUTINE ABSVWS(FLD,WRK,IMAX,JMAX) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: ABSVWS PERFORM SPECIAL ABSOLUTE VALUE FOR VWS. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PREPARE ABSOLUTE VALUE FIELD FOR VERTICAL WIND SHIELD. -C -C PROGRAM HISTORY LOG: -C 96-10-04 LUKE LIN ORIGINAL AUTHOR -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C -C USAGE: CALL ABSVWS(FLD,WRK,IMAX,JMAX) -C INPUT ARGUMENT LIST: -C FLD _ THE ABSVWSITATION FIELD FOR CLIFFING AND SMOOTHING -C WRK _ THE WORKING FIELD FOR SMOOTHING USING W3FM08 -C IMAX,JMAX_ THE DIMENSIONS OF FLD AND WRKNG USING W3FM08 -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C FLD _ THE ABSOLUTE VWS FIELD -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - DIMENSION FLD(IMAX,JMAX) - DIMENSION WRK(IMAX,JMAX) -C -C - DO 50 J=1,JMAX - DO 50 I=1,IMAX - FLD(I,J)= ABS(FLD(I,J)) - 50 CONTINUE -C - END diff --git a/util/sorc/faxmakrx.fd/block.f b/util/sorc/faxmakrx.fd/block.f deleted file mode 100755 index 506bc11ad6..0000000000 --- a/util/sorc/faxmakrx.fd/block.f +++ /dev/null @@ -1,195 +0,0 @@ - BLOCK DATA -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: BLOCKDAT INITIALIZE THE ARRAYS IN COMMON ICON. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: BLOCK DATA IS USED TO INITIALIZE THE CONSTANTS FOR UNPACKING -C AND SCALING THE GRID POINT DATA FIELDS FOR CONTOURING AND LABELING -C OF CONTOURS.SCALING THE GRID POINT FIELDS FOR CONTOURING AND -C -C PROGRAM HISTORY LOG: -C 94-09-19 ORIGINAL AUTHOR HENRICHSEN -C 94-09-23 HENRICHSEN ADDED PRESSURE CHANGE AND HEIGHT CHANGE -C 94-09-29 HENRICHSEN ADDED # 45 WHICH IS 50% RH. -C 94-10-03 HENRICHSEN RENAMED LIFTED INDEX 21 & 29 TO -C TO BEST LIFTED INDEX "LIB". WHERE -C THIS WAS ITEM # 17 IN PEPFAX. -C 94-10-04 HENRICHSEN ADDED TRAJECTORY TEMPS, VERTICAL DISPLACEMENT, -C AND KINDEX. -C 94-12-15 HENRICHSEN CORRECTED LIFTED INDEX "LIB" TO "LI4" AND -C THE PREVIOUS "LI4" TO "LI '. -C 95-02-14 HENRICHSEN REMOVE ITEM# 13 MAKE VORTICITY FROM U AND V -C FIELDS. -C 95-07-14 LUKE LIN ADD 0-9 VECTORS. -C 96-09-12 LUKE LIN ADD CGRID PRECIP CONSTANTS. -C 96-11-18 LUKE LIN OPEN 41 FOR TROPOPAUSE STREAM FUNCTION. -C 97-03-12 LUKE LIN OPEN 18 FOR BLENDED AVERAGE -C 97-12-04 LUKE LIN CHANGE 39 FOR SFC GEO REL VORTICITY -C 97-12-10 C. CARUSO CHANGE 17 FOR SFC GEO WIND -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C -C OUTPUT ARGUMENT LIST: -C COMMON - /ICON/ UA1(50),UA2(50),UA3(50),UM1(50), -C - UM2(50),UM3(50),KTYPE(50) -C -C REMARKS: THE "KTYPES" 26 AND ABOVE WILL PRODUCE MAPS WITH -C TWICE AS MANY CONTOURS. FOR EXAMPLE KTYPE(1) WILL PRODUCE A MAP -C WITH ISOBAR LINES EVERY FOUR MILLIBARS. -C WHERE AS KTYPE(26) WILL PRODUCE A MAP WITH ISOBAR LINES EVERY -C TWO MILLIBARS. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON /ICON/ UA1(50),UA2(50),UA3(50),UM1(50),UM2(50),UM3(50), - 1 KTYPE(50) - CHARACTER*4 KTYPE - REAL UA1,UA2,UA3,UM1,UM2,UM3 -C - COMMON /MCON/ IADDB,IADDTAU,NUMTYP,NUMKEY, - 1 MTAU(18),MEAN(18),LMEAN,KDN,LDN -C - INTEGER NUMTYP - INTEGER MTAU - CHARACTER*4 MEAN - LOGICAL LMEAN - LOGICAL KDN - LOGICAL LDN -C - DATA NUMTYP /13/ - DATA MTAU/ -54, 06, 78, 96, 108, 120, - 1 132, 144, 138, 168, 198, 216, - 2 324, 0, 0, 0, 0, 0/ - DATA MEAN/'D-3 ','D+0 ','D+3 ','D+3+','D+4 ','D+4+', - 1 'D+5 ','D+5+','D+6 ','D+6+','D+8 ','D+8+', - 2 'D+13',' ',' ',' ',' ',' '/ - DATA KTYPE/'PRS ','HGT ','THK ','HTC ','TMP ','RH ', - 1 'QP ','OZNE','VORT','ISO ','WPT ','VEV ', - 2 '....','SWND','WVHT','ICEG','WDVT','HGTB', - 3 'QPVV','LI ','LI4 ','PSC ','HTC ','MSLP', - 4 'RH ','SF ','BHR ','LI ','LI4 ','PWTR', - 5 'PRS ','HGT ','THK ','HTC ','TMP ','RH ', - 6 'PCP ','RHPT','VORT','ISOT','....','VEV ', - 7 'TPRS','TVWS','RH ','TTM ','TVD ','TKI ', - 8 'QPVV','VEV '/ -C . . . DATA FOR SCALING...... -C -C VALUES FOR KEYIDX FOLLOW: -C 1 = PESSURE, 2 = HEIGHT, 3 = THICKNESS, 4 = HEIGHT CHANGE, -C 4 = HEIGHT CHANGE WITH CENTERS AS BIG "H" AND BIG "L". -C 5 = TEMPERATURE, -C 6 = RELATIVE HUMIDITY NO CENTERS WITH LINES EVERY 20%. -C 7 = PRECIPITATION -C 8 = OZONE, 9 = VORTICITY, 10 = ISOTACHS, 11 = WIND PLOTS, -C 12 = VERT VEL, 13 = MAKE VORT, 14 = SEA SURFACE WIND SPEED. -C 15 = WAVE HEIGHTS,16 = SOLID ICE EDGE,17 = SFC GEOS WIND. -C 18 = BLENDED AVERAGE -C 19 = A PCP FOR BIG C GRID FOR 12 HOUR ACCUMULATION -C 20 = SFC TO 500 LIFTED INDEX, -C 21 = BEST LIFTED INDEX ALSO KNOWN AS THE 4-LAYER LIFTED INDEX. -C 22 = PRESSURE CHANGE -C 23 = HEIGHT CHANGE WITH CENTER AS 2 DIGET NUMBER WITH + OR - -C 24 = MSL PRESSURE ANL(VSLPANL) -C 25 = RELATIVE HUMILITY CENTERS WITH LINES EVERY 20% -C 26 = NGM SURFACE PRESSURE, -C 27 = BOUNDRY LAYER HUMIDITY CENTERS WITH LINES EVERY 10% -C 28 = SFC TO 500 LIFTED INDEX, -C 29 = BEST LIFTED INDEX ALSO KNOWN AS THE 4-LAYER LIFTED INDEX. -C 30 = PRICIP WATER -C 31 = PESSURE,32 = HIEGHT,33 = THICKNESS,34 = HEIGHT CHANGE, -C 35 = TEMPERATURE, -C 36 = RELATIVE HUMIDITY CENTERS WITH LINES EVERY 15% -C 37 = PRECIPITATION -C 38 = RH PLOT -C 39 = SFC GEO REL VORTICITY, -C 40 = ISOTACHS, -C 41 = TROPOPAUSE STREAM FUNCTION -C 42 = VERTICAL VELOCITY, -C 43 = TROPOPAUSE PRESSURE, -C 44 = TROPOPAUSE VWS, -C 45 = RELATIVE HUMIDITY CENTERS + THE 50% LINE -C 46 = TRJECTORY TEMPERATURE/DEPOINT TEMPERATURE. -C 47 = TRJECTORY NET VERTICAL DISPLACEMENT. -C 48 = TRJECTORY K INDEX. -C 49 = A PCP FOR BIG C GRID FOR 6 HOUR ACCUMULATION -C 50 = A VV FOR BIG C GRID -C -C . . . .ADDITIVE CONSTANTS NEW UNITS TO OLD UNITS. -C - DATA UA1/0.0 ,0.0 ,0.0 ,0.0 ,-273.16 , - 2 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 3 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 4 0.0 ,0.0 ,0.0 ,0.0 ,-273.16 , - 5 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 6 0.0 ,0.0 ,-273.16,0.0 ,0.0 , - 7 0.0 ,0.0 ,0.0 ,0.0 ,-273.16 , - 8 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 9 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - A -273.16 ,0.0 ,0.0 ,0.0 ,0.0 / -C . . . .MULTIPLICATIVE CONSTANTS NEW UNITS TO OLD UNITS. -C - DATA UM1/0.01 ,1.0 ,1.0 ,1.0 ,1.0 , - 2 1.0 ,.03937 ,1.5 ,1.0E5 ,1.94254 , - 3 1.94254,-10.0 ,1.0 ,1.94254,3.280833, - 4 1.0 ,1.94254,1.0 ,.03937 ,1.0 , - 5 1.0 ,0.01 ,0.1 , 1.0 ,1.0 , - 6 0.01 ,1.0 ,1.0 ,1.0 ,0.03937 , - 7 1.0 ,1.0 ,1.0 ,1.0 ,1.0 , - 8 1.0 ,39.37 ,1.0 ,1.0E5 ,1.94254 , - 9 9.434E-6 ,-1.0E3 ,0.01 ,592.084973,1.0 , - A 1.0 ,0.01 ,1.0 ,.03937,-1.0E1 / -C . . . .ADDITIVE CONSTANTS FOR CONTOURING. -C - DATA UA2/0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 2 6.5 ,.98 ,0.0 ,0.0 ,6.5 , - 3 0.0 ,0.0 ,0.0 ,-2.5 ,8.0 , - 4 0.0 ,0.0 ,0.0 ,0.98 ,0.0 , - 5 0.0 ,0.0 ,0.0 ,0.0 ,6.5 , - 6 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 7 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 8 0.0 ,.94 ,0.0 ,0.0 ,0.0 , - 9 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - A 0.0 ,0.0 ,0.0 ,0.96 ,0.0 / -C . . . .MULTIPLICATIVE CONSTANTS FOR CONTOURING. -C - DATA UM2/0.25 ,.008333,.016667,.016667,0.2 , - 2 0.05 ,2.0 ,0.5 ,0.5 ,0.05 , - 3 1.0 ,0.5 ,0.5 ,0.1 ,0.125 , - 4 0.5 ,1.0 ,0.01667,2.0 ,0.25 , - 5 0.25 ,0.25 ,.16667 ,.50 ,0.05 , - 6 0.25 ,0.1 ,.5 ,0.5 ,8.0 , - 7 0.50 ,.033334,.033334,.016667,0.4 , - 8 0.06667,4.0 ,1.0 ,0.5 ,0.10 , -C 9 0.50 ,1.0 ,.04 ,1.0 ,.02 , - 9 0.01 ,1.0 ,.02 ,0.5 ,.02 , - A 0.20 ,0.05 ,.25 ,4.0 ,.33334 / -C . . . .ADDITIVE CONSTANTS FOR CENTER FINDING/CONTOUR LABELING. -C - DATA UA3/0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 2 -6.5 ,-.98 ,0.0 ,0.0 ,-6.5 , - 3 0.0 ,0.0 ,0.0 ,2.5 ,-8.0 , - 4 0.0 ,0.0 ,0.0 ,-.98 ,0.0 , - 5 0.0 ,0.0 ,0.0 ,0.0 ,-6.5 , - 6 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 7 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - 8 0.0 ,-.94 ,0.0 ,0.0 ,0.0 , - 9 0.0 ,0.0 ,0.0 ,0.0 ,0.0 , - A 0.0 ,0.0 ,0.0 ,-.96 ,0.0 / -C . . . .MULTIPLICATIVE CONSTANTS FOR CENTER FINDING/CONTOUR LABELING. -C - DATA UM3/4.0 ,12.0 ,6.0 ,6.0 ,5.0 , - 2 20.0 ,50.0 ,20. ,2.0 ,20.0 , - 3 1.0 ,2.0 ,1.0 ,10.0 ,8.0 , - 4 2.0 ,1.0 ,6.0 ,50.0 , 4.0 , - 5 4.0 ,4.0 ,60.0 ,2.0 ,20.0 , - 6 4.0 ,10.0 ,2.0 ,2.0 ,12.5 , - 7 2.0 ,3.0 ,3.0 ,6.0 ,2.5 , - 8 15.0 ,25.0 ,10. ,2.0 ,10.0 , - 9 100.0 ,1.0 ,50.0 ,2.0 ,50.0 , - 6 5.0 ,20.0 ,4.0 ,25.0 ,3.0 / -C - END diff --git a/util/sorc/faxmakrx.fd/clabep.f b/util/sorc/faxmakrx.fd/clabep.f deleted file mode 100755 index efee9d3e77..0000000000 --- a/util/sorc/faxmakrx.fd/clabep.f +++ /dev/null @@ -1,209 +0,0 @@ - SUBROUTINE CLABEP(Z,IMAX,JMAX,S,A,B,M,IJFOX,LOX, - X ITABMB,ITABFL,MXITR,LPLMI,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLABEP DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: FINDS WITHIN A GIVEN RECTANGULAR ARRAY OF THE -C FORM Z(IMAX,JMAX) AND A FIXED I COLUMN OR J ROW (IJFIX) ALL OF -C THE CONTOUR LABELS THAT CUT THIS FIXED I COLUMN (NORTH/SOUTH -C LABELS) OR J ROW (EAST/WEST LABELS). WHENEVER IJFIX IS POSITIVE -C A FIXED J ROW IS DESIRED, WHENEVER IJFIX IS NEGATIVE A FIXED -C I COLUMN IS DESIRED. IN ADDITION BASED ON THE SCALE OF THE GRID -C (SCALE) THIS SUBROUTINE RESTRICTS THE NUMBER OF CONTOUR LABELS -C ALLOWED PER I OR J DISTANCE WHEN PREPARING THE LABELS FOR OUTPUT. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-10-03 LUKE LIN CONVERT IT CFT77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C ASSIGNED INDEFF VALUE FOR IBM USING RANGE -C FUNCTION FOR xlf qintsize=8 qrealsize=8 -C OPTIONS -C -C USAGE: CALL CLABEP( Z, IMAX, JMAX, S, A, B, M, IJFOX, LOX, -C ITABMB, ITABFL, MXITR, LPLMI, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON/ADJ3/IRTCOR,IUPCOR -C - INTEGER ITEXT(3),JTEXT(3) - CHARACTER*8 IFF(5) - REAL Z(IMAX,JMAX) - INTEGER ITABMB(MXITR),ITABFL(MXITR) -C - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - INTEGER M(2) -C - REAL INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 -C - DATA INDEF / 1.0E307 / -C - DATA ITEXT/0,0,0/ -C -C ...WHERE UP AND RIGHT ARE DIR REL TO LABEL NUMBERS VIEWED NATURALY -C/// EQUIVALENCE(LTEXT,ITEXT(1)) -C/// EQUIVALENCE(MTEXT,JTEXT(1)) -C - IJFIX=IJFOX - KCON4=20 - KCON5=30 - IMIN=1 - JMIN=1 - KBEG=IMIN+2 - KLIM=IMAX-2 - ITYPE=0 - IF(IJFIX.GE.0) GO TO 10 - IJFIX=-IJFIX - KBEG=JMIN+2 - KLIM=JMAX-4 - ITYPE=1 - 10 Q=S*20. - REM=1. - KCON6=(FLOAT(IJFIX-1)*Q*3.)+0.5 -C ...WHERE KCON6 IS TRUE LOCN (IN DOTS) OF THE PT ON FIXED COORD. - ICAL1 = KCON6 + IRTCOR -C ...THIS ICAL1 IS IDOTS FOR PUTNLAB FOR CONST I CASE, BUT NOT FOR J - Q1=1./(2.*Q*Q) - Q2=(Q+1.)/2. - Q3=1./Q - N=8 - KLAST=0 - KSTART=KBEG - IF(ITYPE.EQ.1) GO TO 15 - DO 11 K=KBEG,KLIM - IDEF=Z(K,IJFIX) - IF(IDEF.NE.INDEF) GO TO 12 - KSTART=KSTART+1 - 11 CONTINUE - GO TO 500 - 12 L=Z(KSTART,IJFIX) - GO TO 20 - 15 DO 16 K=KBEG,KLIM - IDEF=Z(IJFIX,K) - IF(IDEF.NE.INDEF) GO TO 17 - KSTART=KSTART+1 - 16 CONTINUE - GO TO 500 - 17 L=Z(IJFIX,KSTART)+10000. - 20 DO 200 K=KSTART,KLIM - Q4=REM/2. - Q5=1.-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) -C -C CHECK FOR IMBEDDED GRID -C - IF(ITYPE.EQ.1) GO TO 25 - KDEF1=Z(K,IJFIX) - KDEF2=Z(K+1,IJFIX) - KDEF3=Z(K-1,IJFIX) - KDEF4=Z(K+2,IJFIX) - YD2=0 - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF).OR.(KDEF3.EQ.INDEF).OR. - X(KDEF4.EQ.INDEF)) GO TO 21 - YD2=(Z(K+2,IJFIX)-Z(K+1,IJFIX)-Z(K,IJFIX)+Z(K-1,IJFIX))*Q1 - 21 IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 200 - YD1=(Z(K+1,IJFIX)-Z(K,IJFIX))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(K,IJFIX)+Q5*Q4*YD1 - GO TO 35 - 25 KDEF1=Z(IJFIX,K) - KDEF2=Z(IJFIX,K+1) - KDEF3=Z(IJFIX,K-1) - KDEF4=Z(IJFIX,K+2) - YD2=0 - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF).OR.(KDEF3.EQ.INDEF).OR. - X(KDEF4.EQ.INDEF)) GO TO 31 - YD2=(Z(IJFIX,K+2)-Z(IJFIX,K+1)-Z(IJFIX,K)+Z(IJFIX,K-1))*Q1 - 31 IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 200 - YD1=(Z(IJFIX,K+1)-Z(IJFIX,K))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(IJFIX,K)+Q5*Q4*YD1+10000. - 35 DO 130 KK=1,IINC - MM=YVAL - IF((MM-L).EQ.0) GO TO 125 -C -C COMPUTE A LABEL -C - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - KCON7 = FLOAT(K - 1) * Q * 3.0 - IF(ITYPE.EQ.1) GO TO 40 - JCAL = KCON6 + IRTCOR - ICAL = KCON7 + KCON1 + IUPCOR - ICAL1 = ICAL - GO TO 45 - 40 CONTINUE - JCAL = KCON7 + KCON1 + IUPCOR -C ...THIS JCAL IS JDOTS FOR PUTNLAB FOR CONST I CASE. - ICAL = JCAL - 45 CONTINUE - HOLD=B*(XVAL+A) - ITEXT(1)=SIGN((ABS(HOLD)+0.05),HOLD) - KPOSX = KCON4 -C PRINT *,' ICAL=',ICAL,' KLAST=',KLAST,' KPOSX=',KPOSX - IF(ABS(ICAL-KLAST).LT.KPOSX) GO TO 125 - KLAST=ICAL -C PRINT *,' LOX=',LOX - IF(LOX.EQ.1) GO TO 109 - 50 INTG=ITEXT(1) - NCHAR=M(2) -C -C FORMAT STRIP LABEL -C - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - N=12 -C??? WRITE(LTEXT,FMT=IFF)JTEXT(1) - WRITE(LTEXT,FMT=IFF)MTEXT -C - CALL PUTLAB(ICAL1,JCAL,PUTHGT,LTEXT,PUTANG,N,IPRPUT,ITAPUT) - GO TO 125 -C -C USE INDIRECT LABELS -C - 109 CONTINUE -C print *,' at 109, mxitr=',mxitr - DO 110 ITR=1,MXITR - ITSAVE=ITR -C PRINT *,' ITEXT(1)=',ITEXT(1),' ITABMB=',ITABMB(ITR) - IF(ITABMB(ITR).EQ.ITEXT(1)) GO TO 112 - 110 CONTINUE - GO TO 125 - 112 KLAST=ICAL - ITEXT(1)=ITABFL(ITSAVE) - GO TO 50 - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE - 200 CONTINUE - 500 RETURN - END diff --git a/util/sorc/faxmakrx.fd/clear.f b/util/sorc/faxmakrx.fd/clear.f deleted file mode 100755 index 0dbe96fe43..0000000000 --- a/util/sorc/faxmakrx.fd/clear.f +++ /dev/null @@ -1,84 +0,0 @@ - SUBROUTINE CLEAR(BLAT,XINDEF,FLD,IMAX,JMAX,KEY,IRTN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLEAR FILLS EDGES OF FIELD WITH INDEFINITES. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: FILLS THE AREA OUTSIDE OF THE GIVEN LATITUDE WITH -C INDEFINATES. -C -C PROGRAM HISTORY LOG: -C 89-11-29 ORIGINAL AUTHOR HENRICHSEN. -C 92-07-06 HENRICHSEN CONVERT TO FORTRAN 77. -C 94-10-11 HENRICHSEN PASS IN INDEF ARG. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL CLEAR(BLAT,XINDEF,FLD,IMAX,JMAX,KEY,IRTN) -C INPUT ARGUMENT LIST: -C BLAT - REAL*4 THE GIVEN MAXIMUM LATITUDE FOR WHICH -C INDEFINITES WILL BE INSERTED INTO DATA FIELD. -C XINDEF - REAL*4 THE GIVEN VALUE TO BE PUT IN FIELD. -C FLD - REAL*4 (IMAX,JMAX) ARRAY CONTAINING DATA FIELD. -C IMAX/JMAX- INTEGER*4 DIMENSIONS OF FLD. -C KEY - INTEGER*4 GRID KEY FLAG USED FOR SUB TRULL. -C -C OUTPUT ARGUMENT LIST: -C IRTN - RETURN CODE. -C - =0 EVERYTHING OK. -C - =1 KEY OUT OF RANGE (RANGE IS 1 TO 14). -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C - REAL ALAT - REAL ALONG - REAL BLAT - REAL FLD(IMAX,JMAX) - REAL XI - REAL XINDEF - REAL XJ -C -C CHECK VALUE OF KEY -C - IRTN = 0 - NUMPNT = 0 - PRINT *, ' KEYCLR = ',KEY - IF(KEY.GT.0.AND.KEY.LE.14) THEN -C - DO J=1,JMAX - XJ = J - DO I=1,IMAX - XI = I - CALL TRULL(XI,XJ,ALAT,ALONG,KEY) -C -C CHECK TO SEE IF ALAT IS LESS THAN OR EQ TO BLAT. -C IF TRUE LOAD AN INDEF AT THAT GRID POINT. -C - IF(ALAT.LE.BLAT) THEN -C - FLD(I,J) = XINDEF - NUMPNT = NUMPNT + 1 - ENDIF - ENDDO - ENDDO -C - WRITE(6,FMT='('' CLEAR; FILLED '',I4,'' POINTS OUT SIDE'', - 1 '' OF '',F5.2,'' WITH INDEFINITES USING GRID KEY='',I2)') - 2 NUMPNT,BLAT,KEY - ELSE -C -C KEY IS OUT OF RANGE. -C - WRITE(6,FMT='('' *** ERROR SUB CLEAR;'', - 1 '' GRID KEY VALUE '',I2,'' IS BAD.'')')KEY - IRNT = 1 - ENDIF - RETURN - END diff --git a/util/sorc/faxmakrx.fd/closee.f b/util/sorc/faxmakrx.fd/closee.f deleted file mode 100755 index 106bd42642..0000000000 --- a/util/sorc/faxmakrx.fd/closee.f +++ /dev/null @@ -1,238 +0,0 @@ - SUBROUTINE CLOSEE(Z,IMAX,JMAX,S,A,B,M,IUP,IX,JY,LPLMI,ITST,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLOSEE LABEL CONTOURS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO LABEL CONTOURS ALONG A CONSTANT JROW FROM THE GIVEN -C POINT LOOKING FOR CONTOURS ALONG INCREASING I OVER IUP GRID -C INTERVALS. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD UNKNOWN -C 90-03-15 LILLY ADD DOCBLOCK TO SUBROUTINE -C 93-06-01 GILBERT/LILLY CONVERTED TO FORTRAN 77 -C 96-11-30 YEN - CONVERT FROM HDS TO CRAY. CORRECT POTENTIAL -C PROBLEM WITH GETTING VALUES OUT OF BOUNDS AS -C HAD ENCOUNTERED IN CLOSED. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO INDEFF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL CLOSEE(Z,IMAX,JMAX,S,A,B,M,IUP,IX,JY,XLPLMIT,ITST,IFF) -C -C INPUT ARGUMENT LIST: -C Z - SCALED DATA ARRAY OF SIZE IMAX,JMAX IN WHICH TO FIND -C - CENTER VALUES. -C IMAX,JMAX- DIMENSIONS OF Z ARRAY. -C S - SCALE VALUE WHICH IS DOTS PER GRID INTERVAL/ 60.0. -C - IE 37.5/60.0 -C A - ADDATIVE VALUE FOR CONVERTING CONTOUR VALUE BACK -C - TO THE ORGINAL UNITS. -C B - MULTIPLICATIVE VALUE FOR CONVERTING CONTOUR VALUE -C - BACK TO THE ORGINAL UNITS. -C M - ARRAY DIMENSIONED 2: -C - FIRST WORD IS A FLAG AND HAS THE VALUE OF 0, 1, 2, 3. -C - IF NE TO 0 THEN FIRST HALF OF IUP CONTAINS THE VALUE -C - OF CONTOURS THAT WILL NOT BE LABELED. -C - 2ND WORD IS A NUMBER OF CHARACTERS IN CONTOUR LABEL. -C IUP - TWO HALF WORD ARRAY WHERE: -C - FIRST HALF IS 0 IF ALL CONTOURS WITHIN IUP UNITS ARE -C - TO BE LABELED. -C - IF NE TO 0 THEN FIRST HALF OF IUP CONTAINS THE VALUE -C - OR RANGE OF CONTOURS THAT WILL NOT BE LABELED. -C - 2ND HALF IS NUMBER OF GRID INTERVALS FROM CENTER TO -C - LABEL CONTOURS. -C IX,JY - I,J COORDINATES WITHIN Z ARRAY OF CENTER POINT. -C XLPLMT - FORMAT WORD FOR SUBROUTINE BIN2EB. -C ITST - DATA SET REF NUMBER OF TEMPORARY DISK FILE TO -C - WRITE ARGS ONTO -C IFF - 5 WORD FORMAT USED BY SUBROUTINE ENCODE TO FORM CON- -C - TOUR LABELS. -C -C OUTPUT ARGUMENT LIST: NONE -C -C SUBPROGRAMS CALLED: -C LIBRARY: -C COMMON - PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT -C - ADJ3/ILCOR,JDCOR -C -C REMARKS: THE VALUES OF FIRST HALF OF M ARGUMENT ARE: -C 0 MEANS LABEL ALL CONTOURS WITHIN LIMITS. -C 1 MEANS SKIP THE LABELING OF CONTOURS THAT ARE EQUAL TO VALUE -C FOUND IN FIRST HALF OF IUP ARGUEMENT. -C 2 MEANS SKIP THE LABELING OF CONTOURS THAT ARE LESS THAN OR EQUAL -C TO THE VALUE FOUND IN FIRST HALF OF IUP ARGUEMENT. -C TO THE VALUE FOUND IN FIRST HALF OF IUP ARGUEMENT. -C 3 MEANS SKIP THE LABELING OF CONTOURS THAT ARE GREATER THAN THE -C VALUE FOUND IN FIRST HALF OF IUP ARGUEMENT. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C ...PURPOSE...TO LABEL CONTOURS ALONG A CONSTANT J ROW -C ...FROM THE GIVEN POINT LOOKING FOR CONTOURS ALONG INCREASING -C ...I OVER IUP GRID INTERVALS... -CHDS COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON /ADJ3/ILCOR,JDCOR - DIMENSION Z(IMAX,JMAX) -CCRAYb - DIMENSION M(2) -CCRAYe -C -CHDS DIMENSION IFF(5) - CHARACTER*8 IFF(5) - DIMENSION ITEXT(3),JTEXT(3) - CHARACTER*12 CTEXT,HTEXT - CHARACTER*4 LPLMI -CHDS REAL*4 INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 - REAL INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 - EQUIVALENCE (CTEXT,ITEXT(1)) - EQUIVALENCE (HTEXT,JTEXT(1)) - DATA INDEF /1.0E307 / - DATA ITEXT/3*0/ - IF(ITST.EQ.0) GO TO 7 - KCON4=30 - KCON5=40 - ICLOSE=0 -C ...WHERE KCON4 AND 5 ARE MIN DISTANCE (IN DOTS) FROM BEGINNING -C ...OF ONE CONTOUR LABEL TO THE NEXT ON THE SAME J-ROW -C ...TO PREVENT OVERPLOTTING - 7 CONTINUE - KBEG=IX - KLIM=IX+IUP - IJFIX=JY - 10 Q=S*20.0 -C ...WHERE Q IS NO. OF TRIBYTES PER GRID INTERVAL - REM=1.0 - Q1=1.0/(2.0*Q*Q) - Q2=(Q+1.0)/2.0 - Q3=1.0/Q - N=10 - KLAST=0 -C ...TO SEARCH FOR A GOOD DATA PT. TO START FROM... - KSTART=KBEG - 15 DO 16 K=KBEG,KLIM - IDEF=Z(K,IJFIX) - IF(IDEF.NE.INDEF) GO TO 17 - KSTART=KSTART+1 - 16 CONTINUE - GO TO 500 - 17 L=Z(KSTART,IJFIX)+10000. - JCAL1=FLOAT(IJFIX-1)*Q*3.0+0.5 -C ...J(IN DOTS)=(GRID INT.)*(TRIBYTES/GRID INT.)*(3 DOTS/TRIBYTE) - JCAL1=JCAL1+2*JDCOR+5 -C ...WHERE JCAL1 IS THE J (IN DOTS) OF LOWER LEFT OF FIRST CHAR -C ...OF ANY CONTOUR LABEL FOR ALL LABELS ALONG FIXED J ROW.. - 20 DO 200 K=KSTART,KLIM - Q4=REM/2.0 - Q5=1.0-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) - KCON7=FLOAT(K-1)*Q*3.0 -C -C ...CHECK FOR IMBEDDED GRID -C - 25 KDEF1=Z(K,IJFIX) -CHDS KDEF2=Z(K+1,IJFIX) -CHDS KDEF3=Z(K-1,IJFIX) -CHDS KDEF4=Z(K+2,IJFIX) -Ccrayb - IF (K.EQ.IMAX) THEN - KDEF2=INDEF - ELSE - KDEF2=Z(K+1,IJFIX) - ENDIF - IF (K.EQ.1) THEN - KDEF3 = INDEF - ELSE - KDEF3=Z(K-1,IJFIX) - ENDIF - IF (K.GE.IMAX) THEN - KDEF4=INDEF - ELSE - KDEF4=Z(K+2,IJFIX) - ENDIF -Ccraye - YD2=0 - IF(KDEF1.EQ.INDEF) GO TO 31 - IF(KDEF2.EQ.INDEF) GO TO 31 - IF(KDEF3.EQ.INDEF) GO TO 31 - IF(KDEF4.EQ.INDEF) GO TO 31 - YD2=(Z(K+2,IJFIX)-Z(K+1,IJFIX)-Z(K,IJFIX)+Z(K-1,IJFIX))*Q1 - 31 IF(KDEF1.EQ.INDEF) GO TO 200 - IF(KDEF2.EQ.INDEF) GO TO 200 - YD1=(Z(K+1,IJFIX)-Z(K,IJFIX))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(K,IJFIX)+Q5*Q4*YD1+10000. -C -C ...BEGIN INNER LOOP - 35 DO 130 KK=1,IINC - MM=YVAL - IF((MM-L).EQ.0) GO TO 125 -C -C ...COMPUTE A LABEL - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - ICAL=KCON7+KCON1+ILCOR -C ...THIS IS I-VALUE IN DOTS FOR PUTLAB - HOLD = B * (XVAL + A) - ITEXT(1) = SIGN((ABS(HOLD) + 0.05),HOLD) - KPOSX=KCON4 - KAFOS=KCON5 - 50 IF((ICAL-KLAST).LT.KPOSX) GO TO 125 - IF((ICAL-KLAST).LT.KAFOS) GO TO 150 -CHDS IPRPUT=0 - IPRPUT(1)=0 - IPRPUT(2)=0 - ICLOSE=0 - GO TO 160 - 150 CONTINUE - IF(ICLOSE.EQ.0) GO TO 151 - GO TO 152 - 151 CONTINUE -CHDS IPRPUT=1 - IPRPUT(1)=0 - IPRPUT(2)=1 - ICLOSE=1 - GO TO 160 - 152 CONTINUE -CHDS IPRPUT=0 - IPRPUT(1)=0 - IPRPUT(2)=0 - ICLOSE=0 - 160 CONTINUE - KLAST=ICAL - 55 CONTINUE - 75 CONTINUE - INTG=ITEXT(1) -C NCHAR=M - NCHAR=M(2) -C -C ...FORMAT STRIP LABEL FROM CENTER POSITION -C - 90 CONTINUE - CALL BIN2EB(INTG,HTEXT,NCHAR,LPLMI(1:3)) - 95 CONTINUE - N=12 -C CALL ENCODE(ITEXT(1),N) -C WRITE(99,IFF) JTEXT(1) - WRITE(CTEXT(1:N),FMT=IFF) JTEXT(1) - PRINT *,' INTG=',INTG,' ITEX=',ITEXT,' I=',ICAL,' J=',JCAL1 - CALL PUTLAB(ICAL,JCAL1,PUTHGT,ITEXT,PUTANG,N,IPRPUT,ITAPUT) -C - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE -C ...WHICH ENDS INNER LOOP ON KK - 200 CONTINUE -C ...WHICH ENDS OUTER LOOP ON K - 500 RETURN - END diff --git a/util/sorc/faxmakrx.fd/closet.f b/util/sorc/faxmakrx.fd/closet.f deleted file mode 100755 index c6ef96a53f..0000000000 --- a/util/sorc/faxmakrx.fd/closet.f +++ /dev/null @@ -1,243 +0,0 @@ - SUBROUTINE CLOSET(Z,IMAX,JMAX,S,A,B,M,JUP,IX,JY, - X LPLMI,ITST,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLOSET FINDS THE CENTER LOCATIONS FROM THE GIVEN -C PRGMMR: KRISHNA KUMAR ORG: NP12 DATE:1999-08-01 -C -C ABSTRACT: DOCUMENTATION WILL BE ADDED LATER. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-02-22 LIN CONVERT TO CFT-77 -C 96-07-22 LIN TURN OFF THE PRINT STATEMENT -C 96-11-30 YEN MODIFIED CLOSED AND GIVE NEW NAME OF CLOSET WHICH -C CAUSED FLOATING POINT EXCEPTION IN POPFAX, TO -C CHECK FOR OUT OF BOUND POINTS AND SET TO INDEF. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C ASSIGNED PROPER VALUE TO INDEFF USING RANGE FUNCTION -C FOR IBM RS/6000 FOR COMPILE OPTIONS -C xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL CLOSET( Z, IMAX, JMAX, S, A, B, M, JUP, IX, JY, -C LPLMI, ITST, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C ...PURPOSE...TO LABEL CONTOURS ABOVE A GIVEN CENTER POINT ALONG -C ... A FIXED I, INCREASING J VALUES, TO FIND ALL CONTOURS -C ... WITHIN JUP GRID INTERVALS OF THE GIVEN CENTER... -C ...THIS SUBR IS CALLED BY SUBROUTINE CLOSEC WHICH LOCATES CENTER. -C - COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON /ADJ1/ICOR,JCOR -C - DIMENSION Z(IMAX,JMAX) - CHARACTER*8 IFF(5) - DIMENSION ITEXT(3),JTEXT(3) -C - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - INTEGER M(2) - INTEGER JPRPUT(2) -C - REAL INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 -C - DATA ITEXT/3*0/ - DATA IDECP/'. '/ -C/// DATA INDEF/Z'7FFFFFFF'/ -C/// DATA IMSK1/Z'FF000000'/ -C/// DATA IMSK2/Z'FFFF0000'/ - DATA INDEF /1.0E307 / - DATA IMSK1/Z'FFFFFFFFFF000000'/ - DATA IMSK2/Z'FFFFFFFFFFFF0000'/ -C -C/// EQUIVALENCE(LTEXT,ITEXT(1)) -C/// EQUIVALENCE(MTEXT,JTEXT(1)) -C -Cdb$$$$$$$$ -C WRITE(6,671) S, M, JUP, IX, JY -C 671 FORMAT(' ===In CLOSET==S, M(1-2), JUP, IX, JY=',F7.2,5i4) -C WRITE(6,672) ((Z(I,J),J=1,2),i=1,61) -C 672 FORMAT (' CLOSET FIELD=',/,8(15f6.1,/)) -Cde$$$$ - KCON4=20 - KCON5=30 - ICLOSE=0 - IISFC=0 - IF(M(2).EQ.9) IISFC=1 - 7 KBEG=JY - KLIM=JY+JUP - IJFIX=IX - Q=S*20. - REM=1. - Q1=1./(2.*Q*Q) - Q2=(Q+1.)/2. - Q3=1./Q - N=10 - KLAST=0 - KSTART=KBEG - DO 16 K=KBEG,KLIM - IDEF=Z(IJFIX,K) -Cdb$$$$$$$$ -C WRITE(6,333) IJFIX,K, KBEG, KLIM, IDEF -C 333 FORMAT(' CLOSET-IJFIX,K=',2i3,' KBEG,KLIM=',2i3,'IDEF=',f14.3) -Cdbe$$$$ - IF(IDEF.NE.INDEF) GO TO 17 - KSTART=KSTART+1 - 16 CONTINUE - GO TO 500 - 17 L=Z(IJFIX,KSTART)+10000. - KCON6=(FLOAT(IJFIX-1)*Q*3.0)+0.5 - ICAL1=KCON6+ICOR -C ...THIS ICAL1 IS THE FIXED I VALUE IN DOTS... - DO 200 K=KSTART,KLIM - Q4=REM/2. - Q5=1.-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) - KCON7=(FLOAT(K-1)*Q*3.0)+0.5 -C -C CHECK FOR IMBEDDED GRID -C - KDEF1=Z(IJFIX,K) -CHDS KDEF2=Z(IJFIX,K+1) -CHDS KDEF3=Z(IJFIX,K-1) -CHDS KDEF4=Z(IJFIX,K+2) -Ccrayb - IF (K.EQ.JMAX) THEN - KDEF2=INDEF - ELSE - KDEF2=Z(IJFIX,K+1) - ENDIF - IF (K.EQ.1) THEN - KDEF3 = INDEF - ELSE - KDEF3=Z(IJFIX,K-1) - ENDIF - IF (K.GE.JMAX) THEN - KDEF4=INDEF - ELSE - KDEF4=Z(IJFIX,K+2) - ENDIF -Ccraye - YD2=0 -Cdb$$$$$$$$ -C WRITE(6,343) KDEF1,KDEF2,KDEF3,KDEF4,IJFIX,K -C 343 FORMAT(' CLOSET-KDEF1,2,3,4=',4f17.2,' IJFIX,k=',2i3) -Cdbe$$$$ - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF).OR.(KDEF3.EQ.INDEF).OR. - X(KDEF4.EQ.INDEF)) GO TO 31 -Cdb$$$$$$$$ -C write(6,344) KDEF1,KDEF2,KDEF3,KDEF4 -C 344 format(' NOT INDEF,KDEF1,2,3,4=',4(z16,2x)) -Cdbe$$$$ - YD2=(Z(IJFIX,K+2)-Z(IJFIX,K+1)-Z(IJFIX,K)+Z(IJFIX,K-1))*Q1 - 31 IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 200 - YD1=(Z(IJFIX,K+1)-Z(IJFIX,K))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(IJFIX,K)+Q5*Q4*YD1+10000. - DO 130 KK=1,IINC - MM=YVAL - IF((MM - L) .EQ. 0) GO TO 125 -C -C COMPUTE A LABEL -C - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - ICAL = KCON7 + KCON1 + JCOR -C ...THIS IS THE J - VALUE IN DOTS... - HOLD = B * (XVAL + A) - ITEXT(1) = SIGN((ABS(HOLD) + 0.05),HOLD) - KPOSX=KCON4 - KAFOS=KCON5 - IF((ICAL-KLAST).LT.KPOSX) GO TO 125 - IF((ICAL-KLAST).LT.KAFOS) GO TO 150 -C/// - JPRPUT(1)=IPRPUT(1) - JPRPUT(2)=IPRPUT(2) - ICLOSE=0 - GO TO 160 - 150 CONTINUE - IF(ICLOSE.EQ.0) GO TO 151 - GO TO 152 - 151 CONTINUE - JPRPUT(2)=1 - ICLOSE=1 - GO TO 160 - 152 CONTINUE -C/// JPRPUT=IPRPUT - JPRPUT(1)=IPRPUT(1) - JPRPUT(2)=IPRPUT(2) - ICLOSE=0 - 160 CONTINUE - KLAST=ICAL - INTG=ITEXT(1) - NCHAR=M(2) - IF(IISFC.EQ.1) GO TO 121 - GO TO 123 -C -C FORMAT PRECIP STRIP LABELS-SPECIAL CASE -C - 121 CONTINUE - NCHAR=3 -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - PRINT *,' CLOSET: INTG=',INTG,' NCH=',NCHAR,' MTEXT=',MTEXT - CALL GBYTES(MTEXT,JTEXT,0,32,0,4) -C/// - IPUU=IAND(JTEXT(1),IMSK1) - IPTH=IAND(ISHFT(JTEXT(1),8),IMSK2) - WRITE(LTEXT(1:4),FMT='(A1,A1,A2)')IPUU,IDECP,IPTH - MCHAR=4 - IF(INTG.GT.25) MCHAR=3 - CALL PUTLAB(ICAL1,ICAL,PUTHGT,LTEXT,PUTANG,MCHAR,JPRPUT,ITAPUT) - GO TO 125 -C -C FORMAT STRIP LABEL FROM CENTER POSITION -C - 123 CONTINUE - IF(NCHAR.EQ.9) NCHAR=3 -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - PRINT *,' CLOSET: INTG=',INTG,' NCH=',NCHAR,' MTEXT=',MTEXT - N=12 -C/// CALL GBYTES(MTEXT,JTEXT,0,32,0,4) -C/// WRITE(LTEXT,FMT=IFF)JTEXT(1) - WRITE(LTEXT,FMT=IFF)MTEXT -C PRINT *, ' IN CLOSET, IFF=', IFF - PRINT *, ' LTEXT=',LTEXT,' MTEXT=',MTEXT - PRINT *, ' ICAL1=',ICAL1,' ICAL=',ICAL - CALL PUTLAB(ICAL1,ICAL,PUTHGT,LTEXT,PUTANG,N,JPRPUT,ITAPUT) -C - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE - 200 CONTINUE - 500 RETURN - END diff --git a/util/sorc/faxmakrx.fd/closex.f b/util/sorc/faxmakrx.fd/closex.f deleted file mode 100755 index d363489118..0000000000 --- a/util/sorc/faxmakrx.fd/closex.f +++ /dev/null @@ -1,132 +0,0 @@ - SUBROUTINE CLOSEX(Z,IMAX,JMAX,S,A,B,M,JUP,LOX, - X ITABMB,ITABFL,MXITR,LPLMI,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLOSEX DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: FINDS LOCATIONS OF ALL CENTERS IN THE GIVEN FIELD -C IN ORDER TO CALL S/R CLOSED WHICH, IN TURN, LABELS THE -C CONTOURS ABOVE THE CENTERS. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO INDEFF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL CLOSEX( Z, IMAX, JMAX, S, A, B, M, JUP, LOX, -C ITABMB, ITABFL, MXITR, LPLMI, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - CHARACTER*8 IFF(5) - REAL Z(IMAX,JMAX) - INTEGER ITABMB(MXITR) - INTEGER ITABFL(MXITR) -C - CHARACTER*4 LPLMI -C - REAL INDEF,KDEF1,KDEF2 -C - INTEGER M(2) -C - DATA INDEF /1.0E307 / -C -C INITIALIZE FOR CENTER SEARCH -C - IMIN=1 - JMIN=1 - ITST=1 - 10 ILOW=0 - IHIGH=0 - DO 100 J=JMIN,JMAX - DO 100 I=IMIN,IMAX -C -C TEST FOR BORDER VALUES. -C - IF(I.LE.IMIN+1.OR.I.GE.IMAX-1) GO TO 100 - IF(J.LE.JMIN+1.OR.(J+JUP).GE.JMAX-1) GO TO 100 -C -C TEST FOR UNDEFINED VALUES. -C - KDEF1=Z(I-1,J) - KDEF2=Z(I+1,J) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I-1,J-1) - KDEF2=Z(I-1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I+1,J-1) - KDEF2=Z(I+1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I,J+1) - KDEF2=Z(I,J-1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 -C -C TEST FOR LOW CENTER -C - IF(Z(I,J).GE.Z(I+1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I-1,J+1)) GO TO 30 - IF(Z(I,J).GE.Z(I+1,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I+1,J-1)) GO TO 30 -C -C FOUND LOW CENTER -C - ITYPE=1 - ILOW=ILOW+1 - GO TO 50 -C -C TEST FOR HIGH CENTER -C - 30 IF(Z(I,J).LE.Z(I+1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I-1,J+1)) GO TO 100 - IF(Z(I,J).LE.Z(I+1,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I+1,J-1)) GO TO 100 -C -C FOUND HIGH CENTER -C - ITYPE=2 - IHIGH=IHIGH+1 - 50 CONTINUE -C -C FOUND CENTER-GO GET CONTOUR LABEL -C - IFIX=I - JFIX=J - CALL CLOSEY(Z,IMAX,JMAX,S,A,B,M,JUP,IFIX,JFIX,LOX, - XITABMB,ITABFL,MXITR,LPLMI,IFF) - ITST=0 - 100 CONTINUE - 110 RETURN - END diff --git a/util/sorc/faxmakrx.fd/closey.f b/util/sorc/faxmakrx.fd/closey.f deleted file mode 100755 index 415bca942a..0000000000 --- a/util/sorc/faxmakrx.fd/closey.f +++ /dev/null @@ -1,163 +0,0 @@ - SUBROUTINE CLOSEY(Z,IMAX,JMAX,S,A,B,M,JUP,IX,JY,LOX, - X ITABMB,ITABFL,MXITR,LPLMI,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLOSEY DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: LABELS CONTOURS ABOVE A GIVEN CENTER POINT ALONG -C A FIXED I AND INCREASING J VALUES. FINDS ALL CONTOURS -C WITHIN JUP GRID INTERVALS OF THE GIVEN CENTER. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-10-03 LUKE LIN CONVERT IT TO CFT-77. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C ASSIGNED PROPER VALUE TO INDEFF USING RANGE FUNCTION -C FOR IBM RS/6000 FOR COMPILE OPTIONS -C xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL CLOSEY( Z, IMAX, JMAX, S, A, B, M, JUP,IX,JY, LOX, -C ITABMB, ITABFL, MXITR, LPLMI, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON /ADJ1/ICOR,JCOR -C - REAL Z(IMAX,JMAX) - INTEGER ITABMB(MXITR) - INTEGER ITABFL(MXITR) - CHARACTER*8 IFF(5) - DIMENSION ITEXT(3),JTEXT(3) -C - INTEGER M(2) - -C - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI -C - REAL INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 -C - DATA INDEF /1.0E307 / -C - DATA ITEXT/3*0/ -C -C/// EQUIVALENCE(LTEXT,ITEXT(1)) -C/// EQUIVALENCE(MTEXT,JTEXT(1)) -C - KCON4=20 - 7 KBEG=JY - KLIM=JY+JUP - IJFIX=IX - Q=S*20. - REM=1. - Q1=1./(2.*Q*Q) - Q2=(Q+1.)/2. - Q3=1./Q - N=10 - KLAST=0 - KSTART=KBEG - DO 16 K=KBEG,KLIM - IDEF=Z(IJFIX,K) - IF(IDEF.NE.INDEF) GO TO 17 - KSTART=KSTART+1 - 16 CONTINUE - GO TO 500 - 17 L=Z(IJFIX,KSTART)+10000. - KCON6=FLOAT(IJFIX-1)*Q*3 - ICAL1=KCON6+ICOR -C ...THIS ICAL1 IS THE FIXED I VALUE IN DOTS... - DO 200 K=KSTART,KLIM - Q4=REM/2. - Q5=1.-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) - KCON7=FLOAT(K-1)*Q*3 -C -C CHECK FOR IMBEDDED GRID -C - KDEF1=Z(IJFIX,K) - KDEF2=Z(IJFIX,K+1) - KDEF3=Z(IJFIX,K-1) - KDEF4=Z(IJFIX,K+2) - YD2=0 - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF).OR.(KDEF3.EQ.INDEF).OR. - X(KDEF4.EQ.INDEF)) GO TO 31 - YD2=(Z(IJFIX,K+2)-Z(IJFIX,K+1)-Z(IJFIX,K)+Z(IJFIX,K-1))*Q1 - 31 IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 200 - YD1=(Z(IJFIX,K+1)-Z(IJFIX,K))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(IJFIX,K)+Q5*Q4*YD1+10000. - DO 130 KK=1,IINC - MM=YVAL - IF((MM - L) .EQ. 0) GO TO 125 -C -C COMPUTE A LABEL -C - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - ICAL = KCON7 + KCON1 + JCOR -C ...THIS IS THE J - VALUE IN DOTS... - HOLD = B * (XVAL + A) - ITEXT(1) = SIGN((ABS(HOLD) + 0.05),HOLD) - KPOSX=KCON4 - IF((ICAL-KLAST).LT.KPOSX) GO TO 125 - KLAST=ICAL - IF(LOX.EQ.1) GO TO 109 - 50 INTG=ITEXT(1) - NCHAR=M(2) -C -C FORMAT STRIP LABEL FROM CENTER POSITION -C - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - N=12 -C/// WRITE(LTEXT,FMT=IFF)JTEXT(1) - WRITE(LTEXT,FMT=IFF)MTEXT -C - PRINT *,' CLOSEy: INTG=',INTG,' NCH=',NCHAR,' LTEXT=',LTEXT - CALL PUTLAB(ICAL1,ICAL,PUTHGT,LTEXT,PUTANG,N,IPRPUT,ITAPUT) - GO TO 125 -C -C USE INDIRECT LABELS -C - 109 CONTINUE - DO 110 ITR=1,MXITR - ITSAVE=ITR - IF(ITABMB(ITR).EQ.ITEXT(1)) GO TO 112 - 110 CONTINUE - GO TO 125 - 112 KLAST=ICAL - ITEXT(1)=ITABFL(ITSAVE) - GO TO 50 - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE - 200 CONTINUE - 500 RETURN - END diff --git a/util/sorc/faxmakrx.fd/clredg.f b/util/sorc/faxmakrx.fd/clredg.f deleted file mode 100755 index e1795c022d..0000000000 --- a/util/sorc/faxmakrx.fd/clredg.f +++ /dev/null @@ -1,128 +0,0 @@ - SUBROUTINE CLREDG(FLDA,XINDEF,CLRLOL,CLRUPR,MKEY,IBIG,JBIG,IRTN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLREDG PLACE INDEFINATES AROUND EDGES OF FIELD -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PLACE INDEFINATES AROUND THE EDGES OF FLDA. -C -C PROGRAM HISTORY LOG: -C 94-12-28 ORIGINAL AUTHOR HENRICHSEN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL CLREDG(FLDA,XINDEF,CLRLOL,CLRUPR,MKEY,IBIG,JBIG,IRTN) -C INPUT ARGUMENT LIST: -C FLDA - REAL*4 UNPACKED DATA FIELD OF SIZE(IBIG,JBIG) -C XINDEF - REAL*4 VALUE TO PLACE IN EDGES OF FLDA. -C CLRLOL - INTEGER*4 TWO WORD ARRAY THAT CONTAINS THE I,J -C - COORDINATES OF THE LOWER LEFT CORNER OF SUB FIELD. -C CLRUPR - INTEGER*4 TWO WORD ARRAY THAT CONTAINS THE I,J -C - COORDINATES OF THE UPPER RIGHT CORNER OF SUB FIELD. -C MKEY - INTEGER*4 VALUE TO USE TO MULTIPLY CLRLOL AND CLRUPR -C - BY TO OBTAIN SIZE OF SUB FIELD. -C IBIG - MAX SIZE I OF THE BIG FIELD. -C JBIG - MAX SIZE J OF THE BIG FIELD. -C -C OUTPUT ARGUMENT LIST: -C FLDA - UNPACKED DATA FIELD WITH INDEFINATES AROUND EDGES. -C IRTN - RETURN CONDITION. -C - = 0 FIELD CLEARED AROUND EDGES. -C - = 1 MKEY OUT OF BOUNDS, FIELD NOT CLEARED. -C -C REMARKS: NONE -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ - REAL FLDA(IBIG,JBIG) - REAL XINDEF -C - INTEGER CLRLOL(2) - INTEGER CLRUPR(2) - INTEGER MKEY -C - IF (MKEY .LE. 0 .OR. MKEY .GT. 2) THEN -C - WRITE(6,FMT='('' CLREDG: ERROR, MKEY'',I2,''IS OUT OF'', - 2 '' BOUNDS! WILL NOT CLEAR EDGES OF FIELD!'')')MKEY - IRTN = 1 -C - ELSE - IRTN = 0 -C -C ISML - SMALL SIZE I OF THE FIELD. -C JSML - SMALL SIZE J OF THE FIELD. -C ISIKP - SKIP I OF THE FIELD. -C JSIKP - SKIP J OF THE FIELD. -C -C - IF(MKEY.EQ.2)THEN -C -C SETING UP TO CLEAR EDGES FOR SUB CNTOR -C SINCE THE FIELD HAS BEEN FLIPPED UP SIDE DOWN THE -C THE JSKIP IS CACULATED FROM THE TOP RATHER THAN THE -C BOTTOM OF THE FIELD. -C - ISML = 2*(CLRUPR(1)-CLRLOL(1)+1) - JSML = 2*(CLRUPR(2)-CLRLOL(2)+1) - ISKIP = 2*CLRLOL(1) - JSKIP = 2*((JBIG+1)/2-CLRUPR(2)+1) - IADD = -4 - JADD = -4 -C - ELSE - ISML = CLRUPR(1)-CLRLOL(1)+1 - JSML = CLRUPR(2)-CLRLOL(2)+1 - ISKIP = CLRLOL(1) - JSKIP = CLRLOL(2) - IADD = 0 - JADD = 0 - ENDIF -C - WRITE(6,FMT='('' CLREDG: MKEY='',I2,'' ISML='',I4, - 1 '' JSML='',I4,'' ISKIP='',I4,'' JSKIP='',I4,'' IBIG='', - 2 I4,'' JBIG='',I4)') - 3 MKEY,ISML,JSML,ISKIP,JSKIP,IBIG,JBIG -C -C DO BOTTOM PART -C - DO J = 1 , JSKIP - DO I = 1 , IBIG - FLDA(I,J) = XINDEF - ENDDO - ENDDO -C -C DO UPPER PART -C - JSTART = JSKIP + JSML + JADD - IF (JSTART .LE. JBIG) THEN - DO J=JSTART, JBIG - DO I= 1 , IBIG - FLDA(I,J) = XINDEF - ENDDO - ENDDO - ENDIF -C -C DO LEFT-SIDE PORTION -C - DO I = 1, ISKIP - DO J = 1, JBIG - FLDA(I,J) = XINDEF - ENDDO - ENDDO -C -C DO RIGHT-SIDE PORTION -C - ISTART = ISKIP + ISML + IADD - IF (ISTART .LE. IBIG) THEN - DO I=ISTART, IBIG - DO J= 1 , JBIG - FLDA(I,J) = XINDEF - ENDDO - ENDDO - ENDIF - ENDIF - RETURN - END diff --git a/util/sorc/faxmakrx.fd/comifid.f b/util/sorc/faxmakrx.fd/comifid.f deleted file mode 100755 index 9ab7a341ce..0000000000 --- a/util/sorc/faxmakrx.fd/comifid.f +++ /dev/null @@ -1,78 +0,0 @@ - SUBROUTINE COMIFID(IVARIN,JFID,IFAXFG,CIFID) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: COMIFID MAKE IFID -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: COMPOSITE IFID -C -C PROGRAM HISTORY LOG: -C 96-06-25 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL COMIFID(IVARIN,IFAXFG,CIFID) -C 1 IXSCAN, JFID,IRETN) -C INPUT ARGUMENT LIST: -C IVARIN - SUBSET NO FOR VARIAN MAP. -C JFID - TEXT TO PUT INTO IJID AT THE BEGENNING OF THE MAP. -C IFAXFG - GT O; FOR FAX CHARTS. -C -C OUTPUT ARGUMENT LIST: -C -C OUTPUT FILES: -C FT06F001 - MESSAGE FOR COMIFID -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - CHARACTER*48 JFID -C - CHARACTER*1 BLANK - CHARACTER*1 CHARV - CHARACTER*1 CHARB - INTEGER IVARNO - CHARACTER*12 CTEMP - CHARACTER*1 CIFID(48) - DATA MFF00 /Z'FFFF0000'/ - DATA M00FF /Z'0000FFFF'/ - DATA BLANK /' '/ - DATA CHARV /'V'/ - DATA CHARB /'B'/ -C -C------------------------------------------------------------------ -C -c -C PRINT *,' COMIFID: STARTING!' -C -C .... GET 48 CHAR CIFID MAP ID - DO 150 K=1,48 - CIFID(K)=BLANK - 150 CONTINUE - IF (IFAXFG .GT. 0) THEN - CIFID(4)=CHARB - ELSE - CIFID(4)=CHARV - ENDIF -C -C ... CONVERT VARIAN # INTO EBCDIC CHARACTERS -C - - CALL BIN2EB(IVARIN,CTEMP,4,'A999') - PRINT *,'IVARIAN NUMBER=',IVARIN - - DO 155 M=1,4 - CIFID(4+M)=CTEMP(M:M) - 155 CONTINUE -C - WRITE(6,FMT='('' COMIFID: JFID='',A)')JFID(1:44) - DO 160 N=9,48 - CIFID(N)=JFID(N:N) - 160 CONTINUE -C - PRINT *,' CIFID=', CIFID -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/compile_faxmakrx_wcoss.sh b/util/sorc/faxmakrx.fd/compile_faxmakrx_wcoss.sh deleted file mode 100755 index dc8078236f..0000000000 --- a/util/sorc/faxmakrx.fd/compile_faxmakrx_wcoss.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec -make -f makefile.$target -make -f makefile.$target clean -mv faxmakrx ../../exec diff --git a/util/sorc/faxmakrx.fd/copyob.F b/util/sorc/faxmakrx.fd/copyob.F deleted file mode 100755 index e99b32721c..0000000000 --- a/util/sorc/faxmakrx.fd/copyob.F +++ /dev/null @@ -1,609 +0,0 @@ - SUBROUTINE COPYOB(LOBTAP,INBIN,ILVLT,KRUN1,IDATG,IOPTRA, - 1 KOUNT,IERROR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: COPYOB DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: DOCUMENTATION WILL BE ADDED LATER. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 98-06-03 FACEY Y2K CONVERSION; USE OF 4 DIGIT YEAR -C 2 DIGIT YEAR STILL USED TO GET OBS -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ADDED A BLOCK DATA TO RUN -C ON IBM RS/6000 SP SYSTEM. -C -C USAGE: CALL COPYOB( LOBTAP, INBIN, ILVLT, KRUN1, IDATG, IOPTRA, -C NOPTINS, KOUNT, IERROR ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C THIS SUBROUTINE WAS MODIFIED TO REMOVE ALL ASYNCHRONOUS I/O. -C - 5/29/86 (DKM) -C -C (1) LOBTAP ... DATA SET REF. NO. OF INPUT TAPE WHERE PLOTTED OBS -C ARE IN LABEL-ARRAY FORMAT LIKE TAPE55. -C (2) INBIN ...SCRATCH AREA FOR INPUT BUFFER OF 2048 WORDS. -C (3) ILVLT ... AN INDEX TO THE LEVEL DESIRED -C (4) KRUN1 ... AN INDEX TO THE RUN TYPE. -C (5) IDATG(4). GIVEN DATE TIME GROUP -C /YR/MO/DA/HR/ ONE WORD BYTE EACH. -C (6),(7) IOPTRA(2) ... ARRAY FOR ADDITIONAL OPTIONS... -C IOPTRA(1) NON ZERO IF BYPASSING DATE-TIME COMPARE -C IOPTRA(2) = NON-ZERO IF BYPASSING BACKRND COMPARE -C (8) KOUNT ... COUNT OF LABEL ARRAY ITEMS WHICH WERE COPIED -C (9) IERROR ..=0 FOR NORMAL END -C =1 GIVEN ARGUMENT OUT OF RANGE -C =2 READ ERROR BEFORE FINDING MATCHING DATA FIELD -C =3 ABNORMAL END TO INPUT FILE. NO DATA TRANSFERRED -C =4 LOOKED LIKE A NORMAL END BUT NO DATA TRANSFERRED -C =5ABNORMAL END AFTER SOME DATA WAS TRANSFERRED -C ...CAUTION...COPYOB NEITHER OPENS NOR CLOSES THE LBLTAP TAPE55, -C ... IT SIMPLY ADDS ONTO IT AND LEAVES IT OPEN AT RETURN, -C ... THEREBY PERMITTING THE MAIN PROGRAM TO ADD OTHER LABEL ARRAY -C ... ITEMS. -C * * * * * * * * * * * -C - COMMON /KPLOT/ LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C - INTEGER KROT_PRI(2),ICMD,IPT,JPT,NCHAR - REAL HEIGHT,ANGLE - CHARACTER*4 CTEXT -C -C ----------------------------------------------------------------- -C - INTEGER MAXFONT - PARAMETER (MAXFONT=63) -C - COMMON /PUTWHERE/ LBLTAP,IERPUT,LCKPT_PUT,LCKPRNQQ, - 1 IJPXL_GIVN(2),IJPXL_LBL(2),IJPXL_NEXCH(2), - 2 NCALLS_PUT,ICOUNT_FONT(MAXFONT) - -C - DIMENSION IDATG(4) - DIMENSION IDBUFF(128) - DIMENSION JDBUFF(64) - DIMENSION IOPTRA(2) - DIMENSION INBIN(2,1024) - DIMENSION INBUF(1024) - DIMENSION IBCD(2) - DIMENSION IHDTG(3),KHDTG(3) - DIMENSION KHMBS(2,29) - DIMENSION KHRUN(4,23) - DIMENSION NAMLVL(2) - DIMENSION NAMRUN(2) - DIMENSION NAMBKG(2) - DIMENSION KHIQSY(2) -C - INTEGER LEND -C - CHARACTER*8 MIBCD -C CHARACTER*1 LBYTE(8) -C - REAL*8 DBLWRD -C - LOGICAL LBKCHK,LDACHK -C - DATA KHMBS/4HSURF, 4HACE , 4H1000, 4HMB , - 1 4H850M, 4HB , 4H700M, 4HB , - 2 4H500M, 4HB , 4H400M, 4HB , - 3 4H300M, 4HB , 4H250M, 4HB , - 4 4H200M, 4HB , 4H150M, 4HB , - 5 4H100M, 4HB , 4H70MB, 4H , - 6 4H50MB, 4H , 4H30MB, 4H , - 7 4H20MB, 4H , 4H10MB, 4H , - 8 4H7MB , 4H , 4H5MB , 4H , - 9 4H3MB , 4H , 4H2MB , 4H , - A 4H1MB , 4H , 4H0.4M, 4HB , - B 4HTROP, 4HO , 4HSIGL, 4H , - C 4HFRZG, 4H LVL, 4HREL , 4HHUM , - D 4H IN, 4HDEX , 4HPREC, 4HIP-W, - E 4HSFC , 4HANAL/ -C ...WHERE KHMBS IS SEQUENCED ACCORDING TO ILVLT - DATA KHRUN/4HRADA,4HT ,4HNH40,4H04 ,4HOPNL,4H ,4HNH40,4H04 , - 1, 4HOVR4,4H8OPN,4HNH40,4H04 ,4HFINA,4HL ,4HNH40,4H04 , -C 2 4HLFM ,4H ,4HNH25,4H01 ,4HPFAX,4H ,4HNH40,4H053 , - 2 4HTRAJ,4HFAX ,4HNH25,4H01 ,4HPFAX,4H ,4HNH40,4H053 , - 3 4HBKUP,4HPFAX,4HNH40,4H05 ,4H1DOT,4HFAX ,4HNH20,4H02 , - 4 4H2DOT,4HFAX ,4HNH20,4H02 ,4HSIRS,4HPLOT,4HNH40,4H04 , - 5 4HTROP,4HIC1 ,4HMR40,4H02 ,4HTROP,4HIC2 ,4HMR40,4H02 , - 6 4HUS1P,4HLOT ,4HNH10,4H01 ,4HUABP,4HLOT ,4HNH40,4H04 , - 7 4HNHEM,4HI20 ,4HNH20,4H03 ,4HWIND,4HPLOT,4HPN26,4H01 , - 8 4HNHEM,4HI40 ,4HNH40,4H04 ,4HSHEM,4HI40 ,4HSH40,4H02 , - 9 4HUABP,4HLOT ,4HNH60,4H01 ,4HRAOB,4H ,4HNH25,4H01 , - X 4HSFC ,4HPLOT,4HNH20,4H05 ,4HGOES,4HPLOT,4HGH26,4H01 , - Y 4HGOES,4HPLOT,4HGH26,4H02 / -C ...WHERE KHRUN IS SEQUENCED ACCORDING TO KRUN1... -C - DATA KHIQSY/4HUABP,4HLOT / - DATA KHDTG/4HMM/D, 4HD/YY, 4H GGZ/ - DATA K000Z/Z'000000E9'/ - DATA IQSYL1/11/ - DATA IQSYL2/16/ -ckumar DATA LBLTAP/55/ - DATA LEND/8H LEND/ - DATA LMAX/1024/ - DATA MXMBS/29/ - DATA MXRUNS/23/ -C - DATA MSK0F /Z'00000000FFFFFFFF'/ -C - EQUIVALENCE(MIBCD,IBCD(1)) -#if defined (_LITTLE_ENDIAN) - LOGICAL FIRST_ENTRY - DATA FIRST_ENTRY/.TRUE./ - IF (FIRST_ENTRY) THEN - CALL SWAP_BYTES_IN_PLACE (LEND, 8_8, 1_8) - FIRST_ENTRY = .FALSE. - ENDIF -#endif -C -C ...STEP(1) ... INITIALIZATION ... - KOUNT = 0 - IERROR = 0 - NUMRED = 0 - NUMIDR = 0 - NUMTRN = 0 -C - LABXSV = LABIX - NOBFSV = NOBUF - LBKCHK = .TRUE. - IF(IOPTRA(2) .NE. 0) LBKCHK=.FALSE. -C ...FROM GIVEN ILVLT,KRUN1,IDATG GENERATE IDENTIFIERS FOR SEARCH - IF(ILVLT .LT. 1) GO TO 810 - IF(ILVLT .GT. MXMBS) GO TO 810 -C NAMLVL(1) = KHMBS(1,ILVLT) -C NAMLVL(2) = KHMBS(2,ILVLT) -#if defined (_LITTLE_ENDIAN) - NAMLVL(1) = ISHFT (IAND (KHMBS(1,ILVLT),MSK0F),32) - NAMLVL(2) = ISHFT (IAND (KHMBS(2,ILVLT),MSK0F),32) -#else - NAMLVL(1) = ISHFT(KHMBS(1,ILVLT),-32) - NAMLVL(2) = ISHFT(KHMBS(2,ILVLT),-32) -#endif -C - PRINT *,' ILVLT=',ILVLT - PRINT *,' NAME LVL=' - PRINT 119, NAMLVL(1),NAMLVL(2) -C - IF(KRUN1 .LT. 1) GO TO 820 - IF(KRUN1 .GT. MXRUNS) GO TO 820 -#if defined (_LITTLE_ENDIAN) - NAMRUN(1) = ISHFT (IAND (KHRUN(1,KRUN1),MSK0F),32) - NAMRUN(2) = ISHFT (IAND (KHRUN(2,KRUN1),MSK0F),32) - NAMBKG(1) = ISHFT (IAND (KHRUN(3,KRUN1),MSK0F),32) - NAMBKG(2) = ISHFT (IAND (KHRUN(4,KRUN1),MSK0F),32) -#else - NAMRUN(1) = ISHFT(KHRUN(1,KRUN1),-32) - NAMRUN(2) = ISHFT(KHRUN(2,KRUN1),-32) - NAMBKG(1) = ISHFT(KHRUN(3,KRUN1),-32) - NAMBKG(2) = ISHFT(KHRUN(4,KRUN1),-32) -#endif - IF(ILVLT .LT. IQSYL1) GO TO 155 - IF(ILVLT .GT. IQSYL2) GO TO 155 - IF(KRUN1 .NE. 4) GO TO 155 -C ...OTHERWISE, THIS IS IQSY UABPLOT DESIRED... - NAMRUN(1) = ISHFT(KHIQSY(1),-32) - NAMRUN(2) = ISHFT(KHIQSY(2),-32) - 155 CONTINUE -C NAMLVL(1) = KHMBS(1,ILVLT) -C NAMLVL(2) = KHMBS(2,ILVLT) -#if defined (_LITTLE_ENDIAN) - NAMLVL(1) = ISHFT( IAND(KHMBS(1,ILVLT),MSK0F),32) - NAMLVL(2) = ISHFT( IAND(KHMBS(2,ILVLT),MSK0F),32) -#else - NAMLVL(1) = ISHFT(KHMBS(1,ILVLT),-32) - NAMLVL(2) = ISHFT(KHMBS(2,ILVLT),-32) -#endif -C ...NOW NAMLVL HAS '850MB ', NAMRUN HAS '1DOTFAX', -C ... NAMBKG HAS 'NH2002 ', FOR EXAMPLE. -C ...I STILL NEED THE DATE/TIME... - DO 166 I=1,3 - IHDTG(I) = KHDTG(I) - 166 CONTINUE - NYR = IDATG(1) - NMO = IDATG(2) - NDA = IDATG(3) - NHR = IDATG(4) - LDACHK = .TRUE. - IF(IOPTRA(1) .EQ. 0) GO TO 170 -C ...OTHERWISE, IOPTRA(1) IS NON-ZERO FOR BYPASSING DATE COMPARISON - LDACHK = .FALSE. - GO TO 180 - 170 CONTINUE - CALL DAYOWK(NDA,NMO,NYR,IDAYWK,IHDAYW) - NYR = NYR - (NYR/100)*100 - IF(IDAYWK .NE. 0) GO TO 178 -C ...OTHERWISE, GIVEN DATE INFO OUT OF RANGE - PRINT 174, IDATG - 174 FORMAT(1H0, 10X, '***IMPOSSIBLE DATE GIVEN TO SUBR COPYOB IN IDATG - 1 = HEX ', Z8) -C ...CONTINUE WITHOUT DATE-CHECKING... - LDACHK = .FALSE. - GO TO 180 - 178 CONTINUE -C ...REFORMAT DATE/TIME TO EBCDIC CHARACTERS... - CALL BIN2EB(NMO,MIBCD,2,'L999') - IHDTG(1) = IBCD(1) - CALL BIN2EB(NDA,MIBCD,3,'L///') - IHOLDD = ISHFT(IBCD(1),-16) - IHDTG(1) = IOR(IHDTG(1),IHOLDD) - IHDTG(2) = ISHFT(IBCD(1),16) - CALL BIN2EB(NYR,MIBCD,3,'L///') - IHOLDY = ISHFT(IBCD(1),-8) - IHDTG(2) = IOR(IHDTG(2),IHOLDY) - CALL BIN2EB(NHR,MIBCD,3,'L ') - IHDTG(3) = IOR (IBCD(1),K000Z) - 180 CONTINUE - PRINT 184,(IHDTG(I),I=1,3),(NAMLVL(J),J=1,2), - 1 (NAMRUN(K),K=1,2), (NAMBKG(KK),KK=1,2) - 184 FORMAT(1H , 10X, 'REQUESTED COPY OF PLOTTED OBSERVATIONS FOR ', - 1 3A4, 4X, 2A4, 2A4, 8X, 2A4) -C * * * * * * * * * * * -C ...STEP(2) ... SEARCH THE LOBTAP FOR THE MATCHING FILE... - PRINT *,' LOBTAP=', LOBTAP -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (IHDTG, 8_8, 3_8) - CALL SWAP_BYTES_IN_PLACE (NAMLVL, 8_8, 2_8) - CALL SWAP_BYTES_IN_PLACE (NAMRUN, 8_8, 2_8) - CALL SWAP_BYTES_IN_PLACE (NAMBKG, 8_8, 2_8) -#endif - REWIND LOBTAP - 211 CONTINUE - NUMRED = NUMRED + 1 -C ...CHANGED FROM ASYNC READ 5/29/86 (DKM)... -C WRITE (*,*) 'FPDebug: 1: attempting to read 512 bytes' - READ(LOBTAP,ERR=920,END=910)JDBUFF -C ...WHICH ALSO POSITIONS LOBTAP TO DATA BINS - CALL GBYTES(JDBUFF,IDBUFF,0,32,0,128) -C DO I=1,128 -C IDBUFF(I) = IAND(MSK0F,IDBUFF(I)) -C ENDDO - 245 CONTINUE -C ...IT WAS A GOOD READ, BUT WAS IT A LOGICAL ENDOF FILE QQ - PRINT *, ' JDBUFF(1)=' - PRINT 119,JDBUFF(1),JDBUFF(2) - PRINT *, ' IDBUFF(1),(2)=' - PRINT 119,IDBUFF(1),IDBUFF(2) - PRINT 119,IDBUFF(3),IDBUFF(4) - 119 FORMAT(1H ,Z16,5X,Z16) - ITEMP = IAND(MSK0F, -7) -C IF(IDBUFF(1) .NE. -7) GO TO 250 - IF(IDBUFF(1) .NE. ITEMP) GO TO 250 - ITEMP = IAND(MSK0F, LEND) -C IF(IDBUFF(2) .EQ. LEND) GO TO 930 - IF(IDBUFF(2) .EQ. ITEMP) GO TO 930 -C ...WHICH IS EMPTY LOGICAL FILE OR DBL LOGICAL EOFS - 250 CONTINUE - ITEMP = IAND(MSK0F, -1) -C IF(IDBUFF(1) .NE. -1) GO TO 940 - IF(IDBUFF(1) .NE. ITEMP) GO TO 940 -C ...WHICH ERROR EXITS IF NOT ID RECORD FLAG -C ...OTHERWISE, ASSUME A GOOD IDREC IN ... - PRINT *, ' GET A IDREC' - NUMIDR = NUMIDR + 1 - PRINT *, ' NAMLVL=' - PRINT 119, NAMLVL(1),NAMLVL(2) - PRINT 119, IDBUFF(9),IDBUFF(10) - IF(IDBUFF(9) .NE. NAMLVL(1)) GO TO 280 - IF(IDBUFF(10) .NE. NAMLVL(2)) GO TO 280 - PRINT *, ' NOT GO TO 280-1' -C ...OTHERWISE, FOUND A MATCHING LEVEL. NEXT TEST RUN TYPE - PRINT *, ' NAMRUN=' - PRINT 119, NAMRUN(1),NAMRUN(2) - PRINT 119, IDBUFF(11),IDBUFF(12) - IF(IDBUFF(11) .NE. NAMRUN(1)) GO TO 280 - IF(IDBUFF(12) .NE. NAMRUN(2)) GO TO 280 - PRINT *, ' NOT GO TO 280-2' -C ...OTHERWISE, FOUND A MATCHING RUN TYPE... - IF(.NOT. LBKCHK) GO TO 260 - PRINT *, ' NAMBKG=' - PRINT 119, NAMBKG(1),NAMBKG(2) - PRINT 119, IDBUFF(15),IDBUFF(16) - IF(IDBUFF(15) .NE. NAMBKG(1)) GO TO 280 - IF(IDBUFF(16) .NE. NAMBKG(2)) GO TO 280 - PRINT *, ' NOT GO TO 280-3' -C ...OTHERWISE, BACKGROUND MATCHES... - 260 CONTINUE - IF(.NOT. LDACHK) GO TO 270 - PRINT *, ' IHDTGG=' - PRINT 119, IHDTG(1),IHDTG(2) - PRINT 119, IDBUFF(5),IDBUFF(6) - IF(IDBUFF(5) .NE. IHDTG(1)) GO TO 280 - IF(IDBUFF(6) .NE. IHDTG(2)) GO TO 280 - IF(IDBUFF(7) .NE. IHDTG(3)) GO TO 280 - PRINT *, ' NOT GO TO 280-4' -C ...OTHERWISE, FOUND MATCHING DATE-TIME GROUP - 270 CONTINUE - GO TO 300 -C * * * * * * * * * * * -C ...COMES HERE IF THIS IDBUFF DID NOT MATCH THE DESIRED ONE, -C ... SO MUST SPACE OVER THE DATA BINS OF THIS LOGICAL FILE... - 280 CONTINUE - NUMRED = NUMRED +1 -C WRITE (*,*) 'FPDebug: 2: attempting to read 8192 bytes' - READ(LOBTAP,ERR=920,END=910) INBUF - CALL GBYTES(INBUF,INBIN,0,32,0,2048) -C DO I=1,1024 -C INBIN(1,I) = IAND(MSK0F,INBIN(1,I)) -C INBIN(2,I) = IAND(MSK0F,INBIN(2,I)) -C ENDDO - 285 CONTINUE -C ...IT WAS A GOOD READ, BUT IS IT A LOGICAL END OF FILE QQ - PRINT *, ' INBUF(1,1)=' - PRINT 119,INBUF(1),INBUF(2) - PRINT *, ' INBIN(2,1)=' - PRINT 119,INBIN(1,1),INBIN(2,1) - PRINT 119,INBIN(1,2),INBIN(2,2) - ITEMP = IAND(MSK0F, -7) -C IF(INBIN(1,1) .NE. -7) GO TO 287 - PRINT 119,INBIN(1,1),INBIN(2,1) - IF(INBIN(1,1) .NE. ITEMP) GO TO 287 - PRINT *, ' IT IS A -7 RECORD' - ITEMP = IAND(MSK0F, LEND) - PRINT 119,INBIN(2,1),INBIN(2,2) - PRINT 119,LEND,ITEMP -C IF(INBIN(2,1) .EQ. LEND) GO TO 290 - IF(INBIN(2,1) .EQ. ITEMP) GO TO 290 -C ...IT WAS NOT A LOGICAL END OF FILE... - 287 CONTINUE - PRINT *, ' IT IS A GOOD RECORD' - ITEMP = IAND(MSK0F, -1) -C IF(INBIN(1,1) .EQ. -1) GO TO 940 - IF(INBIN(1,1) .EQ. ITEMP) GO TO 940 - PRINT *, ' IT IS A GOOD RECORD' -C ...WHICH IS ERROR EXIT. HIT ID REC WHEN IT SHUD BE DATA RECORD -C ...OTHERWISE, ASSUME IT WAS A DATA RECORD TO BE SKIPPED - GO TO 280 - 290 CONTINUE - PRINT *, ' IT IS A -7 RECORD' -C ...REACHED THE LOGICAL END OF FILE WHICH I WAS LOOKING FOR... - GO TO 211 -C -C * * * * * * * * * * * -C ...STEP(3) ... TO COPY THE INFO FROM THE MATCHING FILE - 300 CONTINUE - IF (KRUN1.EQ.5) THEN -C ... THIS IS FOR TRAJ 4-PANEL LINE ELEMENT TAPE 54 INPUT - PRINT *, ' RESET THE LABEL ARRAY' - NOBUF = 0 - LABIX = 0 - DO I = 1,LMAX - LABEL(1,I) = 0 - LABEL(2,I) = 0 - ENDDO -C - IPT = 1 - JPT = 0 - HEIGHT = 12.0 - ANGLE = 0.0 - KROT_PRI(1) = 0 - KROT_PRI(2) = 0 - CTEXT(1:1) = '?' - CTEXT(2:2) = CHAR(12) - CTEXT(3:3) = '$' - CTEXT(4:4) = CHAR(0) - NCHAR = 2 - ICMD = -2 - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, - X ICMD) -C - ENDIF -C -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (IDBUFF(3), 8_8, 14_8) -#endif - PRINT 310, (IDBUFF(I),I=3,16),NUMIDR,NUMRED -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (IDBUFF(3), 8_8, 14_8) -#endif - 310 FORMAT(1H , 10X, 'SUBR COPYOB FOUND MATCHING IDENTIFIER FOR ', - 1 14A4, /1H , 15X, 'AFTER SEARCHING THRU', I3, 2X, - 2 'LOGICAL FILES OF ', I5, 2X, 'PHYSICAL RECORDS.') - IF(LDACHK) GO TO 316 - PRINT 314 - 314 FORMAT(1H , 20X, 'DATE/TIME COMPARISON WAS BYPASSED') - 316 CONTINUE - IF(LBKCHK) GO TO 320 - PRINT 318 - 318 FORMAT(1H ,20X,'BACKGROUND COMPARISON CHECK WAS BYPASSED') -C - 320 CONTINUE -C ...TO READ AND TRANSFER LOBTAP DATA TO LABEL FILE... -C WRITE (*,*) 'FPDebug: 3: attempting to read 8192 bytes' - READ(LOBTAP,ERR=330,END=340)INBUF - CALL GBYTES(INBUF,INBIN,0,32,0,2048) -C DO I=1,1024 -C INBIN(1,I) = IAND(MSK0F,INBIN(1,I)) -C INBIN(2,I) = IAND(MSK0F,INBIN(2,I)) -C ENDDO - GO TO 360 - 330 CONTINUE -C ...COMES HERE IF PARITY ERROR WHILE READING DATA - IF(KOUNT .EQ. 0) GO TO 336 -C ...COMES HERE IF SOME INFO HAS ALREADY PASSED BEFORE ERROR - PRINT 333, LOBTAP,KOUNT - 333 FORMAT(1H , '***PARITY ERROR IN SUBR COPYOB WHILE READING FT', - 1 I2, 2X, '...INCOMPLETE OBSERV SET WITH ONLY ', I5, - 2 2X, 'ITEMS ***') - IERROR = 5 - GO TO 999 -C - 336 CONTINUE -C ...COMES HERE IF PARITY ERROR AND NO INFO WAS COPIED... - PRINT 339, LOBTAP - 339 FORMAT(1H , '***PARITY ERROR IN SUBR COPYOB WHILE READING FT',I2) - IERROR = 3 - GO TO 999 -C - 340 CONTINUE -C ...COMES HERE IF END OF INFO. IF SOME COPIED ASSUME NORMAL END - IF(KOUNT .NE. 0) GO TO 344 - PRINT 342, LOBTAP - 342 FORMAT(1H , '*** ERROR. END OF DATA INDICATION IN COPYOB WHILE REA - 1DING FT', I2, 2X, ' ... NO PLOTTED OBS WERE COPIED *** ') - IERROR = 4 - GO TO 999 - 344 CONTINUE - PRINT 348, NUMTRN,KOUNT - 348 FORMAT(1H , 20X, 'COMPLETED COPYING PLOTTED OBSERVATIONS AFTER TRA - 1NSFERRING ',I3, 2X, 'BINS TOTALLING ', I6, 2X, 'LABEL-ARRAY ITEMS' - 2 ) - GO TO 999 -C ...WHICH IS NORMAL EXIT ..... -C -C * * * * * * * * * * * - 360 CONTINUE -C ...COMES HERE IF GOOD READ OF DATA BIN... - PRINT *, ' 2 INBIN(1,1)=', INBIN(1,1) - PRINT *, ' 2 INBIN(2,1)=', INBIN(2,1) - PRINT 119,INBIN(1,1),INBIN(2,1) - ITEMP = IAND(MSK0F, -7) -C IF(INBIN(1,1) .NE. -7) GO TO 364 - IF(INBIN(1,1) .NE. ITEMP) GO TO 364 - ITEMP = IAND(MSK0F, LEND) -C IF(INBIN(2,1) .EQ. LEND) GO TO 340 - IF(INBIN(2,1) .EQ. ITEMP) GO TO 340 - 364 CONTINUE - ITEMP = IAND(MSK0F, -1) -C IF(INBIN(1,1) .NE. -1) GO TO 400 - IF(INBIN(1,1) .NE. ITEMP) GO TO 400 -C ...COMES HERE IF ID RECORD WAS READ BY MISTAKE - PRINT 368, LOBTAP - 368 FORMAT(1H , '*** ERROR IN SUBR COPYOB. READ AN ID RECORD INSTEAD - 1 OF DATA RECORD *** ') - GO TO 340 -C -C * * * * * * * * * * * -C ...STEP(4) ... TO TRANSFER ITEMS FROM THE GOOD DATA BIN... - 400 CONTINUE - NUMTRN = NUMTRN + 1 - DO 555 J = 1,LMAX - IF(INBIN(1,J) .NE. 0) GO TO 405 - IF(INBIN(2,J) .EQ. 0) GO TO 340 -C ...WHICH TESTED FOR INTERNAL END OF INFO... - 405 CONTINUE - IF(J .NE. 1) GO TO 410 - IF(NUMTRN .NE. 1) GO TO 410 -C ...OTHERWISE, IT,S THE FIRST WORD OF FIRST BIN WHICH IS INIT - GO TO 555 -C ...WHICH SKIPS THE TRANSFER OF THE CHAR INITIALIZER ITEM - 410 CONTINUE - LABIX = LABIX + 1 - IF(LABIX .LE. LMAX) GO TO 540 -C ...OTHERWISE, BUFFER OUT THE FULL LABEL BIN... - PRINT 500 - 500 FORMAT(1H , 'LABEL ARRAY FULL') - NOBUF = NOBUF + 1 -C ...CHANGED FROM ASYNC WRITE 5/29/86 (DKM)... -#if defined (_BIG_ENDIAN) - CALL SBYTES(INBUF,LABEL,0,32,0,2048) -#else - CALL SBYTESCCS(INBUF,LABEL,0,32,0,2048) -#endif -C WRITE(LBLTAP,ERR=503)LABEL - PRINT *,' WRITE ONE RECORD TO TAPE55' - WRITE(LBLTAP,ERR=503)INBUF - 505 CONTINUE - LABIX = 1 - DO 506 I = 1,LMAX - LABEL(1,I) = 0 - LABEL(2,I) = 0 - 506 CONTINUE - 540 CONTINUE - LABEL(1,LABIX) = INBIN(1,J) - LABEL(2,LABIX) = INBIN(2,J) - KOUNT = KOUNT + 1 - 555 CONTINUE -C ...WHEN IT FALLS THRU 555 LOOP, ONE INBIN IS DEPLETED... - GO TO 320 -C -C * * * * * * * * * * * -C ...ERROR EXITS .... - 503 CONTINUE - PRINT 504,LBLTAP,NOBUF,LABIX - 504 FORMAT(1H0, 10X, 'ERROR STOP IN COPYOB WHILE WRITING ON FT', - 1 I2, /1H , 15X, 'NOBUF = ', I3, 5X, 'LABIX = ', I5) - STOP 1816 -C ...CATASTROPHIC ERROR IF CAN,T WRITE ON TAPE55... - 810 CONTINUE - PRINT 812,ILVLT - 812 FORMAT(1H , '*** ERROR RETURN FROM COPYOB. GIVEN OUT-OF-RANGE ILV - 1LT = HEX ', Z8) - IERROR = 1 - GO TO 999 - 820 CONTINUE - PRINT 822,KRUN1 - 822 FORMAT(1H ,'*** ERROR RETURN FROM COPYOB. GIVEN ', - 1 'OUT-OF-RANGE KRUN1 = HEX ',Z8) - IERROR = 1 - GO TO 999 - 910 CONTINUE - PRINT 912, LOBTAP,NUMRED - 912 FORMAT(1H , '*** ERROR RETURN FROM COPYOB. END-OF-FILE WAS HIT WHI - 1LE SEARCHING FT', I2, 2X, 'FOR DESIRED PLOTTED OBS FILE ***', - 2 /1H , 20X, 'NUMBER OF RECORDS READ DURING SEARCH = ', I6) - IERROR = 2 - GO TO 999 - 920 CONTINUE - PRINT 922,LOBTAP,NUMRED - 922 FORMAT(1H , '*** ERROR RETURN FROM COPYOB. PARITY ERROR WHILE SEAR - 1CHING FT', I2, 2X,'FOR DESIRED PLOTTED OBSERVATION FILE***', - 2 /1H , 20X, 'NUMBER OF RECORDS READ DURING SEARCH = ', I6) - IERROR = 2 - GO TO 999 - 930 CONTINUE - 940 CONTINUE - PRINT 942, LOBTAP,NUMRED - 942 FORMAT(1H , '***ERROR RETURN FROM COPYOB. LOGICAL END OF TAPE OR - 1 LOST ON SEARCH OF FT', I2, /1H , 20X, 'NUMBER OF RECORDS READ DUR - 2ING SEARCH IS ', I6) - IERROR = 2 - GO TO 999 -C - 999 CONTINUE -C - REWIND LOBTAP - print*,'Leaving copyob ' - RETURN - END -ckumar -ckumar **************block data copyob_data -ckumar - BLOCK DATA COPYOB_DATA -C - INTEGER MAXFONT - PARAMETER (MAXFONT=63) - INTEGER LBLTAP -C - COMMON /PUTWHERE/ LBLTAP,IERPUT,LCKPT_PUT,LCKPRNQQ, - 1 IJPXL_GIVN(2),IJPXL_LBL(2),IJPXL_NEXCH(2), - 2 NCALLS_PUT,ICOUNT_FONT(MAXFONT) -C - DATA LBLTAP/55/ -C - END BLOCK DATA COPYOB_DATA diff --git a/util/sorc/faxmakrx.fd/frmfaxt.f b/util/sorc/faxmakrx.fd/frmfaxt.f deleted file mode 100755 index 9976ca4e61..0000000000 --- a/util/sorc/faxmakrx.fd/frmfaxt.f +++ /dev/null @@ -1,296 +0,0 @@ - SUBROUTINE FRMFAXT(LGULF,INBYTE,LEVEL,LMEAN,INTEXT) -C -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FRMFAXT FORMS THE COMPLETED MAP TITLE. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GIVEN THE VARIOUS TIME TITLES IN LGULF ARRAY FORMED BY -C SUB GULFTL, COMPLETE THE FAX MAP TITLE PASSED IN INTEXT. -C RETURN COMPLETED MAP TITLE IN TITLE,AND TITLE BYTE COUNT IN -C NUMT. LOADS THE VALID TIME AT THE END OF JFID. -C PROGRAM HISTORY LOG: -C 96-05-31 ORIGINAL AUTHOR HENRICHSEN. -C 96-06-07 HENRICHSEN MODIFY TO FORM MEAN MAP TITLES. -C 96-06-21 HENRICHSEN MODIFY TO FORM A HIEGHT LINE FOR GULF -C TITLES MODIFY COMMON/LLABFX/ TO PASS TITLE HEIGHT "THEIGHT" -C HGTFLG. -C 96-06-27 HENRICHSEN MODIFY TO FILLER CHAR'S '#' IN THE -C IGLAB ARRAY IF NECESSARY. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL FRMFAXT(LGULF,INBYTE,LEVEL,LMEAN,INTEXT) -C -C INPUT ARGUMENT LIST: -C LGULF - CHARACTER*77 BYTE ARRAY THAT COTAINS THE VARIOUS TIME -C - LINES TO APPEND TO MAP TITLE. -C - BYTES 1 THRU 16 CONTAIN THE GULF TITLE, IE -C - HGT12 00Z02OPTIN . -C - BYTES 17 THRU 36 CONTAIN THE BASE TIME TITLE, IE -C - 12Z WED 01 MAR 1989 . -C - BYTES 37 THRU 61 CONTAIN THE VALID TIME TITLE, IE -C - VALID 00Z THU 02 MAR 1989 . -C - BYTES 62 THRU 77 CONTAIN MM/DD/HHZ YYYY USED -C - WITH AFOS PRODUCTS, IE -C - 03/01/12Z 1989 . -C INBYTE - CONTAINS THE NUMBER OF BYTES OF ASCII TEXT IN -C - INTEXT. -C LEVEL - INTEGER VALUE OF THE LEVEL OF THE MAP. -C LMEAN - LOGICAL WORD THAT IS = .TRUE. THEN FORM A MEAN MAP -C - TITLE. -C INTEXT - CHARCATER*80 TEXT STRING -C FROM COMMON/LABG & LLABFX / -C NUMG - CONTAINS THE NUMBER OF BYTES OF ASCII TEXT IN -C - GLAB ARRAY. - -C JFID - CHARACTER*48 ARRAY THAT CONTAINS THE DESCRIPTIVE -C - MAP TITLE FOR START OF THE FAX ID RECORD. THIS WILL -C - THE VALID TIME APPENDED WHEN RETURNED. -C JBYT - NUMBER OF BYTES OF ASCII TEXT PASSED IN JFID - -C -C OUTPUT ARGUMENT LIST: -C IN COMMON/LABG/ -C GLAB - CHARACTER*24 ARRAY THE CONTAINS THE COMPLETED GULF -C - LABEL. -C IN COMMON/LLABFX/ -C TITLE - CHARCATER*151 TITLE -C CONTAINS COMPETED MAP TITLE. -C NUMT - NUMBER OF BYTES IN COMPLETED MAP TITLE..... -C -C JFID - CHARACTER*48 ARRAY THAT CONTAINS THE COMPLETED -C - JFID TITLE . WILL HAVE THE FORM OF: -C - THE DESCRIPTIVE MAP TITLE THEN HHZ MMM DD YYYY. -C EXVALID - CHARACTER*32 ARRAY THAT CONTAINS THE VALID TIME -C - TITLE . WILL HAVE THE FORM OF: -C - VALID 00Z THU 05 OCT 1994 -C JBYT - NUMBER OF BYTES IN COMPLETED JFID TITLE. -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C -C REMARKS: -C -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB -C - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - COMMON /LLABFX/ TITPXX,TITPXY,HGTFLG,THEIGHT,NUMT,JBYT, - 1 TITLE,JFID,EXVALID -C - INTEGER TITPXX,TITPXY,HGTFLG,NUMT,JBYT - REAL THEIGHT - CHARACTER*152 TITLE - CHARACTER*48 JFID - CHARACTER*32 EXVALID - -C - CHARACTER*120 ITITLE - CHARACTER*80 INTEXT - CHARACTER*77 LGULF - CHARACTER*64 MEANTIT - - CHARACTER*48 WORKTIT - - CHARACTER*26 CENT - CHARACTER*24 IGLAB - CHARACTER*12 CHTEXT - CHARACTER*8 VALID -C - LOGICAL LLEVEL - LOGICAL LMEAN -C - DATA CENT /' (5-DAY MEAN CENTERED ON) '/ -C -C - DATA VALID /'VALID '/ -C -C WORK ON JFID. -C - IF(JBYT.GT.29)THEN - JBYT = 29 - ENDIF - NUMCHR = JBYT + 19 - IF(NUMCHR.GT.48)THEN - NUMCHR = 48 - ENDIF -C -C LOAD VALID TIME AT THE END OF JFID -C - JFID(JBYT+1:JBYT+19) = LGULF(43:61) - JBYT = NUMCHR -C - WRITE(6,FMT='('' FRMFAXT: JFID NOW HAS'',I3,'' BYTES '', - 1 ''AND IS:"'',A,''".'')')JBYT,JFID(1:JBYT) -C -C -C GET NUMBER OF BYTES IN INTEXT.............. -C - - KEND = INBYTE -C -C . . . FILL ITITLES WITH BLANKS............ -C - ITITLE = ' ' - WORKTIT(1:48) = ' ' -C - IF(LMEAN)THEN -C -C LOAD THE BASE AND CENTERED ON TIME INTO MEANTIT -C - MEANTIT(01:19) = LGULF(17:35) - MEANTIT(20:45) = CENT(1:26) - MEANTIT(46:64) = LGULF(43:61) - WRITE(6,FMT='('' FRMFAXT: MEANTIT='',A)')MEANTIT(1:64) - ELSE - ENDIF -C - WORKTIT(1:48) = ' ' -C -C LOAD THE VALID TIME INTO WORKTIT -C - WORKTIT(1:25) = LGULF(37:61) - NUMCHR = 25 -C -C -C - EXVALID(1:NUMCHR) = WORKTIT(1:NUMCHR) -C - WRITE(6,FMT='('' FRMFAXT: EXVALID='',/,'' '', - 1 A)')EXVALID(1:NUMCHR) -C -C NOW MOVE INTEXT INTO ITITLE. -C - ITITLE(1:KEND) = INTEXT(1:KEND) -C - NUMBYT = KEND + 1 -C - KEYLOC = NUMBYT - 8 -C -C CHECK TO SEE IF VALID IS WITHIN THE LAST 8 BYTES OF ITITLE. -C - DO I = KEYLOC,NUMBYT - IHERE = I - IIEND = I + 5 - IF(ITITLE(I:IIEND).EQ.VALID(1:6)) THEN - NUMBYT = IHERE + 6 - IBEGN = 43 - INBYTE = 19 - GOTO 60 - ENDIF - ENDDO -C -C I FELL THROUGH DID NOT FIND VALID IN ITITLE SO LOOK FOR 1ST -C NON BLANK AT END OF ITITLE. -C - IEND = NUMBYT - DO I = 1,5 - IF(ITITLE(IEND:IEND).NE.' ') THEN -C -C I FOUND FIRST NON BLANK AT END OF ITITLE ARRAY -C - NUMBYT = IEND + 1 - IHERE = IEND + 2 - GO TO 25 - ELSE - IEND = IEND - 1 - ENDIF - ENDDO - 25 CONTINUE - NUMBYT = NUMBYT + 1 - IBEGN = 37 - INBYTE = 25 - 60 CONTINUE -C -C -C MOVE BASE LINE INTO ITITLE -C - IF (GULPXX(2).EQ.-99 .AND. GULPXY(2).EQ.-99) THEN - ITITLE(NUMBYT:NUMBYT+4) = 'FROM ' - NUMBYT = NUMBYT + 5 - LEND1 = NUMBYT + 20 - 1 - ITITLE(NUMBYT:LEND1) = LGULF(17:36) - NUMBYT = NUMBYT + 20 - ITITLE(NUMBYT:NUMBYT) = ' ' - ENDIF -C - IF(LMEAN)THEN -C -C MOVE MEANTIT LINE INTO ITITLE -C - MAXBYT = NUMBYT + 64 - ITITLE(NUMBYT:MAXBYT) = MEANTIT(1:64) - NUMBYT = MAXBYT - ELSE -C -C MOVE VALID LINE INTO ITITLE -C - KEND1 = IBEGN + (INBYTE-1) - KEND2 = NUMBYT + (INBYTE-1) - ITITLE(NUMBYT:KEND2) = LGULF(IBEGN:KEND1) - NUMBYT = NUMBYT + INBYTE - 1 - ENDIF - NUMT = NUMBYT - TITLE(1:NUMT) = ITITLE(1:NUMT) - WRITE(6,FMT='('' FRMFAXT: TITLE='',A,/,'' NUMT='',I4)') - 1 TITLE(1:NUMT),NUMT -C -C LOAD THE GULF LABLE INTO IGLAB. -C - IGLAB(1:24) = ' ' - IGLAB(1:06) = LGULF(1:06) -C -C CHECK TO SEE IF A '#' SHOULD BE LOADED INTO IGLAB(6:6). -C - IF(LGULF(6:6).EQ.' ')IGLAB(6:6) = '#' - IGLAB(7:11) = LGULF(7:11) - IGLAB(13:17) = LGULF(12:16) - IF(LGULF(16:16).EQ.' ')IGLAB(17:17) = '#' - IF(LGULF(15:15).EQ.' ')IGLAB(16:16) = '#' - IF(LGULF(14:14).EQ.' ')IGLAB(15:15) = '#' - IF(LVFLG.GT.0)THEN - IF(LEVEL.GT.0)THEN - IF(LEVEL.GE.1000)THEN - NCHR = 4 - ELSE IF(LEVEL.GE.100)THEN - NCHR = 3 - ELSE - NCHR = 2 - ENDIF - CALL BIN2CH(LEVEL,CHTEXT,NCHR,'W999') - IF(NCHR.EQ.3)THEN - CHTEXT(4:4) = '#' - ELSE IF(NCHR.EQ.2)THEN - CHTEXT(3:4) = '##' - ELSE - ENDIF - IGLAB(18:21) = CHTEXT(1:4) - ELSE - IGLAB(18:21) = 'SFC ' - CHTEXT(1:4) = 'SFC ' - ENDIF - IGLAB(22:24) = 'YES' - WRITE(6,FMT='('' FRMFAXT: LEVEL='',I6,/,'' CHTEXT='',A)') - 1 LEVEL,CHTEXT(1:4) - - NUMG = 24 - ELSE - NUMG = 17 - ENDIF - GLAB(1:NUMG) = IGLAB(1:NUMG) - WRITE(6,FMT='('' FRMFAXT: GLAB ='',A)') - 1 GLAB(1:NUMG) -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/gentre.f b/util/sorc/faxmakrx.fd/gentre.f deleted file mode 100755 index 81777fdd0f..0000000000 --- a/util/sorc/faxmakrx.fd/gentre.f +++ /dev/null @@ -1,312 +0,0 @@ - SUBROUTINE GENTRE(Z,IMAX,JMAX,DOTSGI,A,B,M,ZLIM,ICEN1,LPLMI, - X IFLO,IFHI) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GENTRE PLOT CENTERS FOR CGRID MAPS. -C PRGMMR: KRISHNA KUMAR ORG: NP12 DATE:1999-08-01 -C -C ABSTRACT: PLOT CENTERS FOR CGRID MAPS. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-02-21 LIN CONVERT SUBROUTINE TO CFT-77 -C 96-09-12 LIN MODIFY FOR CGRID MAPS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C ASSIGNED PROPER VALUE TO INDEFF USING RANGE FUNCTION -C FOR IBM RS/6000 FOR COMPILE OPTIONS -C xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL GENTRE( Z, IMAX, JMAX, DOTSGI, A, B, M, ZLIM, ICEN1, -C LPLMI, IFLO, IFHI ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON/ADJ2/XIDID,YJDID -C - DIMENSION JTEXT(3) - DIMENSION Z(IMAX,JMAX) -C - CHARACTER*8 IFLO(5),IFHI(5) - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - INTEGER M(2) - INTEGER ITYPE(2) - CHARACTER*1 CDECP -C - REAL INDEF,KDEF1,KDEF2 -C -C/// DATA IDECP/4H. / -ckumar DATA IDECP/'. '/ - DATA CDECP/'.'/ -C/// DATA ITEXT/3*0/ - DATA XIRRS/870./ - DATA ITYPE/0,0/ -C/// DATA IMSK1/Z'FF000000'/ -C/// DATA IMSK2/Z'FFFF0000'/ -C/// DATA INDEF/Z'7FFFFFFF'/ - DATA IMSK1/Z'FFFFFFFFFF000000'/ - DATA IMSK2/Z'FFFFFFFFFFFF0000'/ - DATA INDEF /1.0E307 / -C -C/// EQUIVALENCE(LTEXT,ITEXT(1)) -C/// EQUIVALENCE(MTEXT,JTEXT(1)) -C -C (1),(2),(3)...Z(IMAX,JMAX) IS GIVEN GRIDPOINT SCALED DATA FIELD -C (4) ..... DOTSGI IS DOTS PER GRID INTERVAL -C WHERE EACH DOT IS 1/100TH INCH ON VARIAN -C NEGATIVE DOTSGI SIGNALS MERC SRN HEMI OPTION -C (5),(6) ...TRUE Z VALUE = (Z + A) * B -C WHERE A IS ADDITIVE AND B IS MULTIPLICATIVE CONST -C (7) ..... M = NO. OF CHARACTERS DESIRED WHEN TRUE Z VALUE IS -C CONVERTED TO EBCDIC FOR CENTRAL VALUE -C (8) ..... ZLIM = LOWER LIMIT TO TRUE Z VALUE -C LESS THAN WHICH WE WILL IGNORE CENTERS. -C (9) ..... ICEN1 IS OPTION SWITCH -C =1 NORMAL CENTER FORMATTED LABELS -C =2 BIG H AND L USING SUBROUTINE HILO -C =3 SAME AS =1 EXCEPT I IS DISPLACED TO RHS 2-PANEL -C =4 SAME AS =2 EXCEPT I IS DISPLACED TO RHS 2-PANEL -C (10)..... LPLMI IS FORMAT SELECTOR FOR SUBROUTINE BIN2EB -C FOR CONVERTING TRUE Z VALUE TO EBCDIC E.G., 'A99' -C (11)..... IFLO IS 5-WORD FORMAT STATEMENT FOR ENCODE OF LOW CENTR -C (12)..... IFHI IS 5-WORD FORMAT STATEMENT FOR ENCODE OF HI CENTER -C -C INITIALIZE FOR CENTER SEARCH -C - IMIN=1 - JMIN=1 - IISFC=0 - IF(M(2).EQ.9) IISFC=1 - IF(M(2).EQ.9) M(2)=3 - N=8 - ICOR = 0 - JCOR = 0 - IF(ICEN1 .LE. 0) GO TO 900 - IF(ICEN1 .GT. 4) GO TO 900 - GO TO(6,9,7,8),ICEN1 - 6 ICOR = SIGN((ABS(XIDID) + 0.5),XIDID) - JCOR = SIGN((ABS(YJDID) + 0.5),YJDID) - GO TO 9 - 7 ICOR = XIDID + XIRRS + 0.5 - JCOR = SIGN((ABS(YJDID) + 0.5),YJDID) - GO TO 9 - 8 ICOR = XIRRS + 0.5 - 9 CONTINUE - IRESET = 0 - SCALE = DOTSGI - IF(SCALE.LT.0) IRESET=1 - IF(SCALE.LT.0) SCALE=-SCALE - 10 ILOW=0 - IHIGH=0 - DO 100 J=JMIN,JMAX - DO 100 I=IMIN,IMAX -C -C TEST FOR BORDER VALUES. -C - IF(I.LE.IMIN+1.OR.I.GE.IMAX-1) GO TO 100 - IF(J.LE.JMIN+1.OR.J.GE.JMAX-1) GO TO 100 -C TEST FOR UNDEFINED VALUES. -C - IF(Z(I,J).EQ.INDEF) GO TO 100 - KDEF1=Z(I-1,J) - KDEF2=Z(I+1,J) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I-1,J-1) - KDEF2=Z(I-1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I+1,J-1) - KDEF2=Z(I+1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I,J+1) - KDEF2=Z(I,J-1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 -C -C TEST FOR LOW CENTER -C - IF(Z(I,J).GE.Z(I+1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I-1,J+1)) GO TO 30 - IF(Z(I,J).GE.Z(I+1,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I+1,J-1)) GO TO 30 -C -C FOUND LOW CENTER -C - ITYPE(2)=1 - ILOW=ILOW+1 - GO TO 50 -C -C TEST FOR HIGH CENTER -C - 30 IF(Z(I,J).LE.Z(I+1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I-1,J+1)) GO TO 100 - IF(Z(I,J).LE.Z(I+1,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I+1,J-1)) GO TO 100 -C -C FOUND HIGH CENTER -C - ITYPE(2)=2 - IHIGH=IHIGH+1 -C -C CALCULATE MAX/MIN POSITION USING STIRLING METHOD(9 POINTS) -C - 50 ANUMI=(Z(I+1,J)-Z(I-1,J)) - ADENMI=2.0*(Z(I+1,J)-2.0*Z(I,J)+Z(I-1,J)) - IF(ABS(ANUMI).GT.0.5*(ABS(ADENMI))) GO TO 115 - DELI=-ANUMI/ADENMI - XPOS=SCALE*((FLOAT(I)-1.0)+DELI) - ANUMJ=(Z(I,J+1)-Z(I,J-1)) - ADENMJ=2.0*(Z(I,J+1)-2.0*Z(I,J)+Z(I,J-1)) - IF(ABS(ANUMJ).GT.0.5*(ABS(ADENMJ))) GO TO 115 - DELJ=-ANUMJ/ADENMJ - YPOS=SCALE*((FLOAT(J)-1.0)+DELJ) -C -C ADJUST MAX/MIN DATA VALUE USING STIRLING INTERPOLATION -C - ZDELI=Z(I,J)+0.5*DELI*(Z(I+1,J)-Z(I-1,J))+0.5*DELI*DELI*(Z(I+1,J) - X-2.0*(Z(I,J))+Z(I-1,J)) - ZDELIU=Z(I,J+1)+0.5*DELI*(Z(I+1,J+1)-Z(I-1,J+1))+0.5*DELI*DELI* - X(Z(I+1,J+1)-2.0*Z(I,J+1)+Z(I-1,J+1)) - ZDELIL=Z(I,J-1)+0.5*DELI*(Z(I+1,J-1)-Z(I-1,J-1))+0.5*DELI*DELI* - X(Z(I+1,J-1)-2.0*Z(I,J-1)+Z(I-1,J-1)) - ZDELJ=ZDELI+0.5*DELJ*(ZDELIU-ZDELIL)+0.5*DELJ*DELJ*(ZDELIU-2.0* - XZDELI+ZDELIL) - GO TO 60 - 115 XPOS = SCALE * (FLOAT(I) - 1.0) - YPOS = SCALE * (FLOAT(J) - 1.0) - ZDELJ = Z(I,J) - GO TO 60 - 60 CONTINUE - JCAL = YPOS + 0.5 - ICAL = XPOS + 0.5 - JCAL = JCAL + JCOR - ICAL = ICAL + ICOR - TRUVAL = (ZDELJ + A ) * B - INTG = SIGN((ABS(TRUVAL) + 0.5),TRUVAL) - IF(FLOAT(INTG) .LT. ZLIM) GO TO 100 - IF(IISFC.EQ.1) GO TO 95 - NCHAR = M(2) - IF(ITYPE(2) .EQ. 2) GO TO 90 - IF(IRESET .EQ. 1 .AND. I .GE. 26) GO TO 91 -C -C ...FORMAT LOW CENTER... -C - 81 CONTINUE -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) -C/// -C/// CALL GBYTES(MTEXT,JTEXT,0,32,0,4) - N = 12 - WRITE(LTEXT,FMT=IFLO)MTEXT -C -C/// LTEXT(1:NCHAR) = MTEXT(1:NCHAR) -C/// LTEXT(NCHAR+1:NCHAR+1)= CHAR(0) -C PRINT *, ' IN CENTRE, IFLO=',IFLO -C PRINT *, ' LTEXT=', LTEXT,' MTEXT=', MTEXT - GO TO 96 - 90 CONTINUE - IF(IRESET .EQ. 1 .AND. I .GE. 26) GO TO 81 -C -C ...FORMAT HIGH CENTER... -C - 91 CONTINUE -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) -C PRINT *, ' CENTRE:INTG=',INTG,' NCH=',NCHAR,' MTEXT=',MTEXT -C/// -C/// CALL GBYTES(MTEXT,JTEXT,0,32,0,4) - N = 12 - WRITE(LTEXT,FMT=IFHI)MTEXT -C/// LTEXT(1:NCHAR) = MTEXT(1:NCHAR) -C/// LTEXT(NCHAR+1:NCHAR+1)= CHAR(0) -C PRINT *, ' In GENTRE, IFHI=',IFHI -C PRINT *, ' LTEXT=', LTEXT,' MTEXT=', MTEXT - GO TO 96 -C -C ... FORMAT PRECIP CENTER-SPECIAL CASE -C - 95 CONTINUE - NCHAR=3 -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) -C PRINT *, ' CENTRE:INTG=',INTG,' NCH=',NCHAR,' MTEXT=',MTEXT -C/// - CALL GBYTES(MTEXT,JTEXT,0,32,0,4) -C* IPUU=LAND(JTEXT(1),IMSK1) -C?? IPUU=IAND(JTEXT(1),IMSK1) -C* IPTH=LAND(SHFTL(JTEXT(1),8),IMSK2) -C??? IPTH=IAND(ISHFT(JTEXT(1),8),IMSK2) -C?? WRITE(LTEXT(1:4),FMT='(A1,A1,A2)')IPUU,IDECP,IPTH - IF (KEYIDX.EQ.19 .OR. KEYIDX.EQ.49) THEN -C IF(MTEXT(1:1).EQ.'0')THEN -C LTEXT(1:1) = '0' -C LTEXT(2:2) = CDECP(1:1) -C LTEXT(3:4) = MTEXT(2:3) -C MCHAR = 4 -C ELSE -C LTEXT(1:1) = MTEXT(1:1) -C LTEXT(2:2) = CDECP(1:1) -C LTEXT(3:4) = MTEXT(2:3) -C MCHAR = 4 -C ENDIF - LTEXT(1:1) = CDECP(1:1) - MCHAR = 4 - LTEXT(2:4) = MTEXT(1:3) -C PRINT *, 'PRECIP LTEXT=', LTEXT,' MTEXT=', MTEXT - IF (MTEXT(1:3).NE.'000') THEN - CALL SAVLAB(ICAL,JCAL,LTEXT(1:4),TRUVAL,MCHAR) - ENDIF - ELSE - LTEXT(1:1) = CDECP - LTEXT(2:4) = MTEXT(1:3) - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,4,IPRPUT,ITAPUT) - ENDIF - GO TO 100 - 96 CONTINUE - GO TO (97,99,97,99),ICEN1 - 97 CONTINUE - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,N,IPRPUT,ITAPUT) - GO TO 100 - 99 CONTINUE - CALL HILO(ICAL,JCAL,ITYPE,LTEXT) - GO TO 100 - 100 CONTINUE - RETURN - 900 CONTINUE - PRINT 911, ICEN1 - 911 FORMAT(1H , 'WARN -RETURN FROM CENTRE. GIVEN ARGUMENT OUT-OF-RANGE - X. ICEN1 =HEX', Z8) - RETURN - END diff --git a/util/sorc/faxmakrx.fd/getcon.f b/util/sorc/faxmakrx.fd/getcon.f deleted file mode 100755 index 4554167a03..0000000000 --- a/util/sorc/faxmakrx.fd/getcon.f +++ /dev/null @@ -1,890 +0,0 @@ - SUBROUTINE GETCON(NUMBYT,INTEXT,NUMDGN,OUTDGN1, - 1 OUTDGN2,FAXFIL,GRIDT1,IFAXNO) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GETCON GET CONSTANTS FROM INPUT CONTROLS. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GET CONSTANTS FROM INPUT CONTROLS. -C -C PROGRAM HISTORY LOG: -C 89-11-24 ORIGINAL AUTHOR LUKE LIN -C 94-11-25 HENRICHSEN ADD TWO NEW INPUT ARGS WINTER AND NEWCON -C AND LOGIC TO USE THE NEW ARGUEMENTS. -C 94-12-21 LUKE LIN CONVERT IT TO CFT-77. -C 96-02-28 LUKE LIN MODIFY TO GET CONSTANTS FROM INPUT CONTROLS. -C 96-04-30 LUKE LIN MODIFY TO GET SHADING CONSTANTS. -C 96-06-03 HENRICHSEN MODIFY TO GET JFID TITLE. -C 96-06-05 LUKE LIN MODIFY TO GET CENTER, CENTER ABOVE, AND -C LABEL CONS. -C 96-06-07 HENRICHSEN MODIFY TO GET MEAN FLAG ADDED NEW COMMON -C /MEANCON/ MEANFG,LKMEAN,MEANTYP. -C 96-06-11 HENRICHSEN MODIFY FORMAT OF READ TO GET "RTC AND UPC". -C ADD LOGIC TO GET X/Y FOR AN ADDITIONAL GULF -C TITLLE. -C 96-06-14 LUKE LIN CHANGE DASH LOGIC -C 96-06-17 LUKE LIN MODIFY FOR PRECIP BECAUSE FLD2 COMES FROM DIFFERENT -C FORECAST HOUR. -C 96-06-20 LUKE LIN CHANGE TO READ IN GRID INTERVAL T1 AND UOR_DOT -C 96-06-20 HENRICHSEN MODIFY READ FORMAT OF TLOC CARD TO GET A LVFLG -C WHICH SIGNALS THAT THERE IS TO BE AN EXTRA -C LINE IN THE GULF TITLE THAT HAS THE LEVEL OF -C THE SURFACE. -C 96-06-24 HENRICHSEN MODIFY TO READ TLOB AND TLOD CARD INSTEAD OF -C TLOC CARD WHICH GETS THE TITLE HEIGHT AND -C HGTFLG. -C 96-06-24 LUKE LIN ADD CNTR OPTIONS -C 96-06-28 LUKE LIN ADD FAX CUT OPTION CARDS. -C 96-07-09 LUKE LIN ADD IPOLATE OPTIONS. -C 96-07-22 LUKE LIN TURN SOME PRINT STATEMENTS OFF -C 96-08-30 LUKE LIN ADD ONE CARD FOR CHANGING GRAB AND GRAB INDEX. -C 96-09-11 LUKE LIN FIX CENTER LABEL CARD#2. -C 96-09-19 LUKE LIN ADD SHADE INTERVEL OPTION. -C 96-10-07 LUKE LIN ADD CTRA OPTION FOR GFS. -C 97-01-21 LUKE LIN ADD COPY OBSERVATION OPTIONS -C 97-03-17 LUKE LIN ADD ADD CONTOUR RANGE AND FLD PLOT OPTIONS. -C 97-06-17 LUKE LIN ADD ADD POLE CLIP FLAG FOR TYPE 5 NAM MODEL. -C 1999-08-01 KRISHNA KUMAR MODIFY TO RUN ON IBM RS/6000 SP -C 99-09-27 Bill FACEY MODIFIED CODE FOR CASE WHERE KEYIDX GT 50, -C -C -C USAGE: CALL GETCON(NUMBYT,INTEXT,NUMDGN,OUTDGN1, -C FAXFIL,GRIDT1,IFAXNO) -C INPUT ARGUMENT LIST: -C IDFLD - 8-WORD ID -C -C OUTPUT ARGUMENT LIST: -C NUMBYT - NUMBER OF BYTES IN TITLE. -C INTEXT - THE MAP TITLE. -C NUMDGN - NUMBER OF DESIGN FILES TO BE USED -C OUTDGN1 - UNIT NUMBER OF DESIGN FILE 1 -C OUTDGN2 - UNIT NUMBER OF DESIGN FILE 2 -C FAXFILE - UNIT NUMBER OF FAX OUTPUT FILE -C GRIDT1 - GRID INTERVAL -C IFAXNO - VARIAN SUBSET NUMBER -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - COMMON /ICON/ UA1(50),UA2(50),UA3(50),UM1(50),UM2(50),UM3(50), - 1 KTYPE(50) - CHARACTER*4 KTYPE - REAL UA1,UA2,UA3,UM1,UM2,UM3 -C - COMMON /MEANCON/ MEANFG,LKMEAN,MEANTYP -C - CHARACTER*4 MEANTYP -C - INTEGER MEANFG - LOGICAL LKMEAN -C - COMMON / GRB1 / LUGRB, LUGRBIX, IFCSTHR - INTEGER LUGRB, LUGRBIX -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C ...KEY TYPE INDEX, CONSTANT, AND CONTOUR LINE VALUE -C - COMMON / DASH / LDOUBLE, DASHFG, DASHMK, IDASH, SHADNO, SHADMK - LOGICAL LDOUBLE - LOGICAL DASHFG - INTEGER DASHMK(2) - INTEGER SHADNO - INTEGER SHADMK(20) - INTEGER IDASH -C - COMMON / FLDCON / IDFLD(16),NUMFLD,NDEGNS -C - COMMON / BOUND / XMIN, YMIN, XMAX, YMAX, CUTWOW - INTEGER XMIN, YMIN, XMAX, YMAX - INTEGER CUTWOW(4) -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB -C - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - COMMON /LLABFX/ TITPXX,TITPXY,HGTFLG,THEIGHT,NUMT,JBYT, - 1 TITLE,JFID,EXVALID -C - INTEGER TITPXX,TITPXY,HGTFLG,NUMT,JBYT - REAL THEIGHT - CHARACTER*152 TITLE - CHARACTER*48 JFID - CHARACTER*32 EXVALID -C - COMMON /CENTR/ CENTFLAG,CENTFONT,CENTNC,CENTCEN,CENTB1RC, - 1 CENTXID,CENTYID,CENTXLIM,CENTFLO,CENTFHI, - 2 CENTFORM - LOGICAL CENTFLAG - REAL CENTFONT,CENTXID,CENTYID,CENTXLIM,CENTB1RC - CHARACTER*4 CENTFORM,CENTFLO,CENTFHI - INTEGER CENTNC,CENTCEN -C - COMMON /CENTV/ CENVFLAG,CENVFONT,CENVNC,CENVJUP, - 1 CENVICR,CENVJCR,CENVB1RC,CENVFORM,CENVIFF - LOGICAL CENVFLAG - REAL CENVFONT,CENVB1RC - CHARACTER*4 CENVFORM,CENVIFF - INTEGER CENVNC,CENVJUP,CENVICR,CENVJCR - COMMON /FIXLAB/ LABFLAG,LABFONT,LABNC,LABRTC,LABUPC, - 1 LABNLAB,LABIJFIX(7),LABB1RC,LABIFF,LABFORM - LOGICAL LABFLAG - CHARACTER*4 LABFORM,LABIFF - REAL LABFONT, LABB1RC - INTEGER LABNC,LABRTC,LABUPC,LABNLAB,LABIJFIX -C - COMMON /RANG/ RANGFG, ICBEG, ICEND - LOGICAL RANGFG - INTEGER ICBEG, ICEND -C - COMMON /PCLP/ PCLPFG - LOGICAL PCLPFG -C - COMMON /PLOT/ PLOTFG, IMAXP, JMAXP, I1BIG, J1BIG, IGPLOT(2), - 1 ISTART,JSTART - LOGICAL PLOTFG -C - INTEGER USRBYT -C - CHARACTER*96 USRNAM -C - LOGICAL LUFID -C - COMMON /DUCKNOAA/ DUCKX,DUCKY,DUCKFG - INTEGER DUCKX,DUCKY,DUCKFG - - -C - INTEGER NUMBYT - CHARACTER*80 INTEXT -C - COMMON /GRB2/ ALUGRB,ALUGRBIX,AFCSTHR,AKEYIDX,CALFLAG,GRB2FLAG - INTEGER ALUGRB - INTEGER ALUGRBIX - INTEGER AFCSTHR - INTEGER AKEYIDX - INTEGER CALFLAG - LOGICAL GRB2FLAG -C - COMMON /EXTIT/ ETITFONT,ETITPXX,ETITPXY,NOEXT,EXTRAT,FGEXTRAT - INTEGER ETITPXX,ETITPXY,NOEXT - REAL ETITFONT - CHARACTER*80 EXTRAT - LOGICAL FGEXTRAT -C -C .... THIS SET IS FOR UOR_DOT - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI - LOGICAL UORFG -C -C ... FOR CONTOR OPTIONS - COMMON /CNTROP/ NDVD, NDIV, NCNTRFILT, NCENTFILT,SHADIV - INTEGER SHADIV -C ... NDVD FOR INTERPOLATION, NDIV FOR DIVISION -C ... NCNTRFILT FOR CONTOUR FILTER, NCENTFILT FOR CENTER FILTER -C -C .......... FOR FAX CUT -C - COMMON /FAXICK/ ISCHED(8,50),INXISCHED - COMMON /FLFSRP/ INXLFSTRP,LSNUMBYT(20),LSINTEXT(20),LSTITPX(20), - 1 LSTITPY(20),LSDCKPX(20),LSDCKPY(20), - 2 LSDCKOPT(20),LSFONT(20) - CHARACTER*120 LSINTEXT - REAL LSFONT - COMMON /FRTSRP/ INXRTSTRP,RSNUMBYT(20),RSINTEXT(20),RSTITPX(20), - 1 RSTITPY(20),RSFONT(20),RSFCSTHR(20) - CHARACTER*120 RSINTEXT - INTEGER RSNUMBYT,RSTITPX,RSTITPY,RSFCSTHR - REAL RSFONT -C - COMMON /CPOB/ CPOBFG,ITAPOB,ILVLT,KRUN,IOPTRA(2) - LOGICAL CPOBFG -C - INTEGER NUMDGN,OUTDGN1,OUTDGN2,FAXFIL,IFAXNO - REAL GRIDT1 - CHARACTER*1 COMENT - CHARACTER*5 CTITLE - CHARACTER*5 COUTCL - CHARACTER*5 COPTION -C - CHARACTER*5 INPFLD - CHARACTER*5 IDS6W1 - CHARACTER*5 IDS6W2 -ckumar - character*5 JFIDTI -ckumar - CHARACTER*5 LINEAT - CHARACTER*5 CRANGE - CHARACTER*5 CPCLIP - CHARACTER*5 UAVUMV - CHARACTER*5 WINDOW - CHARACTER*5 ENDFLD - CHARACTER*5 ENDMAP - CHARACTER*5 TITLOC - CHARACTER*5 TITLOD - CHARACTER*5 TITLOB - CHARACTER*5 SHADE - CHARACTER*5 EXTLOC -C - CHARACTER*5 CENTLAB1 - CHARACTER*5 CENTLAB2 - CHARACTER*5 CENTABOV - CHARACTER*5 LABEL1 - CHARACTER*5 LABEL2 - CHARACTER*5 LABEL4 - CHARACTER*5 CGRB2IN - CHARACTER*5 CPROJ - CHARACTER*5 CCNTR - CHARACTER*5 CCTRA -C - CHARACTER*5 CVISCHED - CHARACTER*5 CSISCHED - CHARACTER*5 CLFSTRPTL - CHARACTER*5 CLFSTRPLC - CHARACTER*5 CRTSTRPTL - CHARACTER*5 CRTSTRPLC - CHARACTER*5 CIISCHED - CHARACTER*5 CCOPYOB - CHARACTER*5 CPLOT -C - CHARACTER*5 CGRAB -C - CHARACTER*80 CARD -C - DATA CTITLE /'TITL:'/ - - DATA COUTCL /'OUTC:'/ - DATA INPFLD /'INPF:'/ - DATA IDS6W1 /'IDS1:'/ - DATA IDS6W2 /'IDS2:'/ - DATA JFIDTI /'JFID:'/ - DATA LINEAT /'LINE:'/ - DATA CRANGE /'RANG:'/ - DATA CPCLIP /'PCLP:'/ - DATA UAVUMV /'UAMV:'/ - DATA WINDOW /'WWBD:'/ - DATA ENDFLD /'ENDF:'/ - DATA ENDMAP /'ENDM:'/ - DATA TITLOC /'TLOC:'/ - DATA EXTLOC /'XTIT:'/ - DATA TITLOB /'TLOB:'/ - DATA TITLOD /'TLOD:'/ - DATA SHADE /'SHAD:'/ - DATA COMENT /'!'/ -C - DATA CENTLAB1 /'CEN1:'/ - DATA CENTLAB2 /'CEN2:'/ - DATA CENTABOV /'CENV:'/ - DATA LABEL1 /'LAB1:'/ - DATA LABEL2 /'LAB2:'/ - DATA LABEL4 /'LAB4:'/ - DATA CGRB2IN /'GRB2:'/ - DATA CPROJ /'PROJ:'/ - DATA CCNTR /'CNTR:'/ - DATA CCTRA /'CTRA:'/ -C - DATA CVISCHED /'VICK:'/ - DATA CSISCHED /'SICK:'/ - DATA CLFSTRPTL /'LSTL:'/ - DATA CLFSTRPLC /'LSLC:'/ - DATA CRTSTRPTL /'RSTL:'/ - DATA CRTSTRPLC /'RSLC:'/ - DATA CIISCHED /'IICK:'/ - DATA CCOPYOB /'CPOB:'/ - DATA CPLOT /'PLOT:'/ -C - DATA CGRAB /'GRAB:'/ -C -C ------------ STARTS ---------------------------------- - print*,'***************In GETCON ' -C -C -C ZERO THE IDFLD ARRAY -C - DO J=1, 16 - IDFLD(J) = 0 - ENDDO -C - LDOUBLE = .FALSE. - DASHFG = .FALSE. - SHADNO = 0 - DO I=1,20 - SHADMK(I) = 0 - ENDDO -C - CENTFLAG = .FALSE. - CENVFLAG = .FALSE. - LABFLAG = .FALSE. -C - GRB2FLAG = .FALSE. - CALFLAG = -1 - THEIGHT = 11.00 - HGTFLG = 1 - SHADIV = 1 - CPOBFG = .FALSE. - RANGFG = .FALSE. - PCLPFG = .FALSE. - PLOTFG = .FALSE. - FGEXTRAT = .FALSE. -C - 100 CONTINUE -C -C .... READ ONE INPUT CARD -C - READ(15,FMT='(A)')CARD(1:80) -C WRITE(6,FMT='('' '',A)')CARD(1:80) -C - IF (CARD(1:1) .EQ. COMENT) GOTO 100 -C ... JUST A COMMENT CARD - COPTION = CARD(3:7) -C - IF (COPTION .EQ. ENDFLD .OR. COPTION .EQ. ENDMAP) RETURN -C -C - - IF (COPTION .EQ. CTITLE) THEN -C -C READ IN THE MAP TITLE -C -C - READ(CARD,FMT='(15X,I2,2X,A60)')NUMBYT,INTEXT(1:60) -C WRITE(6,FMT='('' GETCON: MAP TITLE HAS '',I2, -C 1 '' TITLE='',A)')NUMBYT,INTEXT(1:60) -C - ELSE IF (COPTION .EQ. 'JFID:') THEN -C -C READ IN THE JFID TITLE. -C - READ(CARD,FMT='(15X,I2,2X,A)')JBYT,JFID(1:48) -C WRITE(6,FMT='('' GETCON: JFID TITLE '',I2, -C 1 '' TITLE='',A)')JBYT,JFID(1:JBYT) -C - ELSE IF (COPTION .EQ. TITLOB) THEN -C -C GET THE X AND Y GRID COORDINATES FOR LOCATION OF MAP TITLE -C AND THE CHARACTER HEIGHT. -C - READ(CARD,FMT='(14X,I4,1X,I4,8X,I1,9X,F5.2)') - 1 TITPXX,TITPXY,HGTFLG,THEIGHT -C -C WRITE(6,FMT='('' GETCON: TITPXX=''I4,'' TITPXY=''I4, -C 1 '' HGTFLG='',I2,'' THEIGHT='',F5.2)') -C 2 TITPXX,TITPXY,HGTFLG,THEIGHT -C - ELSE IF (COPTION .EQ. TITLOC) THEN -C -C GET THE X AND Y GRID COORDINATES FOR LOCATION OF TITLES, -C DUCK AND LEVEL FLAG. -C - READ(CARD,FMT='(14X,I4,1X,I4,7X,I4,1X,I4,1X,I4,1X,I4, - 1 8X,I4,1X,I4,8X,I2,3X,I1)') - 2 TITPXX,TITPXY,GULPXX(1),GULPXY(1),GULPXX(2),GULPXY(2), - 3 DUCKX,DUCKY,DUCKFG,LVFLG -C -C WRITE(6,FMT='('' GETCON: TITPXX=''I4,'' TITPXY=''I4,/, -C 1 '' GULPXX(1)=''I4,'' GULPXY(1)='',I4,'' GULPXX(2)=''I4, -C 2 '' GULPXY(2)='',I4,/,'' DUCKX=''I4, -C 3 '' DUCKY=''I4,'' DUCKFG=''I2,'' LVFLG='',I2)') -C 4 TITPXX,TITPXY,GULPXX(1),GULPXY(1),GULPXX(2),GULPXY(2), -C 5 DUCKX,DUCKY,DUCKFG,LVFLG -C - ELSE IF (COPTION .EQ. EXTLOC) THEN -C -C GET THE LOCATION AND EXTRA TITLE, -C - READ(CARD,FMT='(13X,F4.1,5X,I4,1X,I4,6X,I2,2X,A)') - 1 ETITFONT,ETITPXX,ETITPXY,NOEXT,EXTRAT(1:38) - FGEXTRAT = .TRUE. -C - ELSE IF (COPTION .EQ. TITLOD) THEN -C -C GET THE X AND Y GRID COORDINATES FOR LOCATION OF GULF AND -C DUCK LABELS AND LEVEL FLAG. -C - READ(CARD,FMT='(14X,I4,1X,I4,1X,I4,1X,I4, - 1 8X,I4,1X,I4,8X,I2,3X,I1)') - 2 GULPXX(1),GULPXY(1),GULPXX(2),GULPXY(2), - 3 DUCKX,DUCKY,DUCKFG,LVFLG -C -C WRITE(6,FMT='('' GETCON: GULPXX(1)=''I4,'' GULPXY(1)='',I4, -C 1 '' GULPXX(2)=''I4,'' GULPXY(2)='',I4,/,'' DUCKX=''I4, -C 2 '' DUCKY=''I4,'' DUCKFG=''I2,'' LVFLG='',I2)') -C 3 GULPXX(1),GULPXY(1),GULPXX(2),GULPXY(2), -C 4 DUCKX,DUCKY,DUCKFG,LVFLG -C - ELSE IF (COPTION .EQ. COUTCL) THEN - READ(CARD,FMT='(15X,I2,9X,I2,9X,I2,8X,I2,4X,F8.3,12X,I4)') - 1 NUMDGN,OUTDGN1,OUTDGN2,FAXFIL,GRIDT1,IFAXNO -ckumar - print*,'In getcon : numdgn,outdgn1,outdgn2,faxfil,grdt1, - & ifaxno ', -ckumar - & NUMDGN,OUTDGN1,OUTDGN2,FAXFIL,GRIDT1,IFAXNO -C WRITE(6,FMT='('' GETCON: '',A,I2,A,I2,A,I2,A,I2,A, -C 1 F8.3,A,I4,A)')CARD(8:15), -C 2 NUMDGN,CARD(18:26),OUTDGN1,CARD(29:37),OUTDGN2, -C 3 CARD(40:46),FAXFIL,CARD(50:53),GRIDT1,CARD(62:73), -C 4 IFAXNO -C - ELSE IF (COPTION .EQ. INPFLD) THEN -C -C GET NUMFLD,AND THE CURRENT OUTPUT DESIGN,NEWMDI, -C MEAN FLAG AND MEAN TYPE . -C - MEANFG = 0 - MEANTYP(1:4) = ' ' - LKMEAN = .FALSE. - READ(CARD,FMT='(15X,I2,8X,I2,8X,I2,8X,I2,8X,A)') - 1 NUMFLD, NDEGNS, KEYIDX,MEANFG,MEANTYP(1:4) -C -C WRITE(6,FMT='('' GETCON: NUMFLD='',I2,'' NDEGNS='',I2, -C 1 '' KEYIDX='',I2,'' MEANFG='',I2,'' MEANTYP='',A)') -C 2 NUMFLD,NDEGNS,KEYIDX,MEANFG,MEANTYP(1:4) - IF(MEANFG.GE.1.AND.MEANFG.LE.9)THEN - LKMEAN = .TRUE. - WRITE(6,FMT='('' GETCON: THIS IS A '',A, - 1 '' MEAN FIELD. BECAUSE MEANFG='',I2)') - 2 MEANTYP(1:4),MEANFG - ENDIF -C - IF(KEYIDX.LE.50) THEN - UA1V = UA1(KEYIDX) - UA2V = UA2(KEYIDX) - UA3V = UA3(KEYIDX) - UM1V = UM1(KEYIDX) - UM2V = UM2(KEYIDX) - UM3V = UM3(KEYIDX) - ENDIF - -C WRITE(6,FMT='('' GETCON: UA1V='',F10.5,'' UA2V='',F5.2, -C 1 '' UA3V='',F5.2)')UA1V,UA2V,UA3V -C -C WRITE(6,FMT='('' GETCON: UM1V='',F10.5,'' UM2V='',F5.2, -C 1 '' UM3V='',F5.2)')UM1V,UM2V,UM3V -C -C - ELSE IF (COPTION .EQ. IDS6W1) THEN -C -C -C READ IN THE FIRST IDS -C - LSTRT = 1 - LEND = 6 - READ(CARD,FMT='(10X,6(Z8,3X))') - 1 (IDFLD(L),L=LSTRT,LEND) -C WRITE(6,FMT='('' GETCON:'',6(Z8,3X))') -C 1 (IDFLD(L),L=LSTRT,LEND) -C - ELSE IF (COPTION .EQ. IDS6W2) THEN -C -C -C READ IN THE SECOND IDS -C - LSTRT = 9 - LEND = 14 - READ(CARD,FMT='(10X,6(Z8,3X))') - 1 (IDFLD(L),L=LSTRT,LEND) -C WRITE(6,FMT='('' GETCON:'',6(Z8,3X))') -C 1 (IDFLD(L),L=LSTRT,LEND) -C -C - ELSE IF (COPTION .EQ. LINEAT) THEN -C -C READ IN THE LINE ATTRIBUTES -C - READ(CARD,FMT='(19X, I1,8X, I1, 10X, I2,1X,I2)') - 1 IDOUBLE,IDASHIN,DASHMK(1),DASHMK(2) - WRITE(6,FMT='('' GETCON: LINEAT='',4(I3))') - 1 IDOUBLE,IDASHIN,DASHMK(1),DASHMK(2) -C - IF (IDOUBLE .EQ. 1) THEN - LDOUBLE = .TRUE. - ELSE - LDOUBLE = .FALSE. - ENDIF -C - IF (IDASHIN .EQ. 1) THEN - DASHFG = .TRUE. - IDASH = 0 - ELSE - DASHFG = .FALSE. - ENDIF -C - IF (.NOT. DASHFG) THEN - DASHMK(1) = 0 - DASHMK(2) = 0 - ELSE IF (DASHMK(1) .LT. DASHMK(2)) THEN - ITEMP = DASHMK(1) - DASHMK(1) = DASHMK(2) - DASHMK(2) = ITEMP - ENDIF -C - ELSE IF (COPTION .EQ. UAVUMV) THEN -C -C READ UAV AND UMV CONSTANTS -C - READ(CARD,FMT='(8X,3(F7.2,1X),4X,3(F12.6,1X))') - 1 UA1V,UA2V,UA3V,UM1V,UM2V,UM3V -C - WRITE(6,FMT='('' GETCON: OVERWRITE UA1V='',F5.2, - 1 '' UA2V='',F5.2,'' UA3V='',F5.2)')UA1V,UA2V,UA3V -C - WRITE(6,FMT='('' GETCON: OVERWRITE UM1V='',F5.2, - 1 '' UM2V='',F5.2,'' UMV3='',F5.2)')UM1V,UM2V,UM3V -C - -C - ELSE IF (COPTION .EQ. WINDOW) THEN -C -C READ DATA CARDS TO GET BOUNDS OF THE FAX MAP.. -C - READ(CARD,FMT='(8X,4(I7,1X),4X,4(I7,1X))')XMIN,YMIN, - 1 XMAX,YMAX,CUTWOW(1),CUTWOW(2),CUTWOW(3),CUTWOW(4) -C -C WRITE(6,FMT='('' GETCON: WINDOW='',4(I7,1X))') -C 1 XMIN,YMIN,XMAX,YMAX - -C WRITE(6,FMT='('' GETCON: CUT WINDOW='',4(I7,1X))') -C 1 CUTWOW(1),CUTWOW(2),CUTWOW(3),CUTWOW(4) -C - ELSE IF (COPTION .EQ. SHADE) THEN -C -C READ IN THE SHADING ATTRIBUTES -C - READ(CARD,FMT='(15X, I1)')SHADNO - PRINT *, ' SHADNO=', SHADNO - IF (SHADNO .EQ. 1) THEN - READ(CARD,FMT='(25X, 1X,I2,1X,I2)') - 1 SHADMK(1),SHADMK(2) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 2) THEN - READ(CARD,FMT='(25X, 2(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,4) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 3) THEN - READ(CARD,FMT='(25X, 3(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,6) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 4) THEN - READ(CARD,FMT='(25X, 4(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,8) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 5) THEN - READ(CARD,FMT='(25X, 5(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,10) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 6) THEN - READ(CARD,FMT='(25X, 6(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,12) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 7) THEN - READ(CARD,FMT='(25X, 7(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,14) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 8) THEN - READ(CARD,FMT='(25X, 8(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,16) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ELSE IF (SHADNO .EQ. 9) THEN - READ(CARD,FMT='(25X, 9(1X,I2,1X,I2))') - 1 (SHADMK(L),L=1,18) - PRINT *,' SHADNO=',SHADNO,' ', SHADMK(1),' ',SHADMK(2) - ENDIF -C - ELSE IF (COPTION .EQ. CENTLAB1) THEN -C -C READ CENTER LABEL CONSTANTS 1 -C - READ(CARD,FMT='(13X,F4.1,4X,I1,5X,I1,7X,A4, - 1 6X,F5.1,5X,F5.1,6X,F7.1)') - 2 CENTFONT,CENTNC,CENTCEN,CENTFORM,CENTXID,CENTYID, - 3 CENTXLIM -C - WRITE(6,FMT='('' GETCON: OVERWRITE CENTER CONSTANTS 1-'', - 1 /,'' FONT='',F4.1,'' NC='',I1,'' CEN='',I1,'' FORM='', - 2 A4,'' XID='',F5.1,'' YID='',F5.1,'' XLIM='',F7.1)') - 3 CENTFONT,CENTNC,CENTCEN,CENTFORM,CENTXID,CENTYID, - 4 CENTXLIM - CENTFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. CENTLAB2) THEN -C -C READ CENTER LABEL CONSTANTS 2 -C - CENTB1RC = 1.0 - READ(CARD,FMT='(13X,A4,7X,A4, 8X,F4.1)') - 1 CENTFLO,CENTFHI,CENTB1RC -C - WRITE(6,FMT='('' GETCON: OVERWRITE CENTER CONSTANTS 2-'', - 1 /,'' FLO='',A4,'' FHI='',A4,'' CENT SCALE FACTOR='', - 2 F4.1)') CENTFLO,CENTFHI,CENTB1RC - CENTFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. CENTABOV) THEN -C -C READ CENTER LABEL ABOVE CONSTANTS -C - CENVB1RC = 1.0 - READ(CARD,FMT='(13X,F4.1,4X,I1,7X,A4,6X,I2,5X,I3, - 1 5X,I3,6X,A4,8X,F4.1)') - 2 CENVFONT,CENVNC,CENVFORM,CENVJUP,CENVICR,CENVJCR, - 3 CENVIFF,CENVB1RC -C - WRITE(6,FMT='('' GETCON: OVERWRITE CENTER ABOVE CONSTANT-'', - 1 /,'' FONT='',F4.1,'' NC='',I1,'' FORM='',A4,'' JUP='',I2, - 2 '' ICR='',I3,'' JCR='',I3,'' IFF='',A4,'' B1RC='',F4.1)') - 3 CENVFONT,CENVNC,CENVFORM,CENVJUP,CENVICR,CENVJCR, - 4 CENVIFF,CENVB1RC - CENVFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. LABEL1) THEN -C -C READ FIX COLUMN LABEL 1 CONSTANTS -C - LABB1RC = 1.0 - READ(CARD,FMT='(13X,F4.1,4X,I1,7X,A4, - 1 6X,I3,5X,I3,6X,A4,8X,F4.1)') - 2 LABFONT,LABNC,LABFORM,LABRTC,LABUPC,LABIFF,LABB1RC -C - WRITE(6,FMT='('' GETCON: OVERWRITE FIX LABEL1 CONSTANT-'', - 1 /,'' FONT='',F4.1,'' NC='',I1,'' FORM='',A4, - 2 '' RTC='',I3,'' UPC='',I3,'' IFF='',A4,'' B1_RC='',F4.1)') - 3 LABFONT,LABNC,LABFORM,LABRTC,LABUPC,LABIFF,LABB1RC - LABFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. LABEL2) THEN -C -C READ FIX COLUMN LABEL 1 CONSTANTS -C - READ(CARD,FMT='(13X,I1,4X,5(1X,I3))')LABNLAB, - 1 (LABIJFIX(I),I=1,5) -C - WRITE(6,FMT='('' GETCON: OVERWRITE FIX LABEL2 CONSTANT-'', - 1 /, '' NLAB='',I1,'' IJFIX='',5(1X,I3))')LABNLAB, - 2 (LABIJFIX(I),I=1,5) - LABFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. LABEL4) THEN -C -C READ FIX COLUMN LABEL 1 CONSTANTS -C - READ(CARD,FMT='(13X,I1,4X,7(1X,I4))')LABNLAB, - 1 (LABIJFIX(I),I=1,7) -C - WRITE(6,FMT='('' GETCON: OVERWRITE FIX LABEL2 CONSTANT-'', - 1 /, '' NLAB='',I1,'' IJFIX='',7(1X,I4))')LABNLAB, - 2 (LABIJFIX(I),I=1,7) - LABFLAG = .TRUE. -C - ELSE IF (COPTION .EQ. CGRB2IN) THEN -C -C READ THE SECOND GRB AND GRB INDEX FILE UNITS -C ... FOR PRECIP ACCUMULATION CHARTS..... -C - READ(CARD,FMT='(26X,I2,9X,I2,9X,I3,8X,I2,9X,I2)') - 1 ALUGRB,ALUGRBIX,AFCSTHR,AKEYIDX,CALFLAG - WRITE(6,FMT='(/,'' GETCON: 2ND INPUT GRB FORECAST HOUR:'', - 1 I3,/,'' GETCON: 2ND INPUT GRIB FILE AND INDEX FILE;'', - 2 2(I4),/,'' GETCON: CACULATION FLAG='',I3)') - 2 AFCSTHR,ALUGRB,ALUGRBIX,CALFLAG - GRB2FLAG = .TRUE. -C - ELSE IF (COPTION .EQ. CPROJ) THEN -C -C READ THE PROJECTION CONSTANTS FOR MAPPING UOR TO DOT -C - READ (CARD,125)UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,IP,IPOPT - 125 FORMAT(12X,F6.2,5X,F6.2,5X,F6.2,5x,F6.2,7X,F8.2,4X,I1, - 1 7X,I1) - PRINT *, ' ' - WRITE(6,FMT='('' GETCON: OVERWRITE UOR_DOT CONSTANT-'', - 1 /,'' UXPO='',F6.2,'' UYPO='',F6.2,'' UXADJUS=='',F6.2, - 2 '' UYADJUS='',F6.2,'' UCU2GI='',F8.2,'' IP='',I2, - 3 '' IPOPT='',I2)') - 4 UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,IP,IPOPT - UORFG = .TRUE. - IF (UORFG) THEN - PRINT *, ' UORFG IS TRUE.' - ENDIF - UGRIDT1 = GRIDT1 - PRINT *,' UGRIDT1=',GRIDT1 -C - ELSE IF (COPTION .EQ. CCNTR) THEN -C -C READ THE CNTOR OPTIONS ONLY -C - READ(CARD,134)INDVD,INDIV - 134 FORMAT(13X,I1,6X,I1) - PRINT *,' INDVD=', INDVD - PRINT *,' INDIV=', INDIV - IF (INDVD.GT.0 .AND. INDVD.LT.3) NDVD = INDVD - IF (INDIV.GE.1 .AND. INDIV.LT.8) NDIV = INDIV - NCNTRFILT = 0 - NCENTFILT = 0 - SHADIV=1 - PRINT *,' NDVD=', NDVD - PRINT *,' NDIV=', NDIV - PRINT *,' NCNTRFILT=', NCNTRFILT - PRINT *,' NCENTFILT=', NCENTFILT - PRINT *,' SHADE INTERVAL=',SHADIV -C - ELSE IF (COPTION .EQ. CCTRA) THEN -C -C READ THE CNTOR OPTIONS AND FILTER OPTIONS -C - READ(CARD,135)INDVD,INDIV,INCNTRFILT,INCENTFILT,SHADIV - 135 FORMAT(13X,I1,6X,I1,10X,I1,10X,I1,8X,I1) - PRINT *,' INDVD=', INDVD - PRINT *,' INDIV=', INDIV - PRINT *,' INCNTRFILT=', INCNTRFILT - PRINT *,' INCENTFILT=', INCENTFILT - PRINT *,' SHADE INTERVAL=',SHADIV - IF (INDVD.GT.0 .AND. INDVD.LT.3) NDVD = INDVD - IF (INDIV.GE.1 .AND. INDIV.LT.8) NDIV = INDIV - IF (INCNTRFILT.GE.0 .AND. INCNTRFILT.LT.5) THEN - NCNTRFILT = INCNTRFILT - ENDIF - IF (INCENTFILT.GE.0 .AND. INCENTFILT.LT.5) THEN - NCENTFILT = INCENTFILT - ENDIF - IF (SHADIV.LE.0 .OR. SHADIV.GT.4) SHADIV=1 - PRINT *,' NDVD=', NDVD - PRINT *,' NDIV=', NDIV - PRINT *,' NCNTRFILT=', NCNTRFILT - PRINT *,' NCENTFILT=', NCENTFILT - PRINT *,' SHADE INTERVAL=',SHADIV -C - ELSE IF (COPTION .EQ. CVISCHED) THEN -C -C READ THE VARIAN ISCHED TO OVERWRITE THE DEFAULT -C - READ(CARD,FMT='(8X,4(I4,1X),2X,Z4,4X,Z4,1X,2(1X,I4))') - 1 (ISCHED(M,1),M=1,8) - - WRITE(6,FMT='('' GETCON: VARIAN ISCHED AS FOLLOWS-'', - 1 /,8X,4(I4,1X),2X,Z4,4X,Z4,2(1X,I4))') - 2 (ISCHED(M,1),M=1,8) - - ELSE IF (COPTION.EQ.CSISCHED .OR. COPTION.EQ.CIISCHED) THEN -C -C READ THE SUBSET & INSET ISCHEDS FOR FAX CUT. -C - INXISCHED = INXISCHED + 1 - READ(CARD,FMT='(8X,4(I4,1X),2X,Z4,4X,Z4,1X,2(1X,I4))') - 1 (ISCHED(M,INXISCHED),M=1,8) - - WRITE(6,FMT='('' GETCON: SUBSET/INSET ISCHED AS FOLLOWS-'', - 1 /,8X,4(I4,1X),2X,Z4,4X,Z4,2(1X,I4))') - 2 (ISCHED(M,INXISCHED),M=1,8) - print *, 'INXISCHED=',INXISCHED -C - ELSE IF (COPTION .EQ. CLFSTRPTL) THEN -C -C READ THE LEFT STRIP TITLE -C -C - INXLFSTRP = INXLFSTRP + 1 -C PRINT *,' INXLFSTRP=', INXLFSTRP - READ(CARD,FMT='(15X,I2,2X,A60)')LSNUMBYT(INXLFSTRP), - 1 LSINTEXT(INXLFSTRP)(1:60) -C WRITE(6,FMT='('' GETCON: LEFT STRIP TITLE HAS '',I2, -C 1 '' TITLE='',A)')LSNUMBYT(INXLFSTRP), -C 2 LSINTEXT(INXLFSTRP)(1:60) -C - ELSE IF (COPTION .EQ. CRTSTRPTL) THEN -C -C READ THE RIGHT STRIP TITLE -C -C - INXRTSTRP = INXRTSTRP + 1 -C PRINT *,' INXRTSTRP=', INXRTSTRP - READ(CARD,FMT='(15X,I2,2X,A60)')RSNUMBYT(INXRTSTRP), - 1 RSINTEXT(INXRTSTRP)(1:60) -C WRITE(6,FMT='('' GETCON: RIGHT STRIP TITLE HAS '',I2, -C 1 '' TITLE='',A)')RSNUMBYT(INXRTSTRP), -C 2 RSINTEXT(INXRTSTRP)(1:60) -C - ELSE IF (COPTION .EQ. CLFSTRPLC) THEN -C -C READ THE LEFT STRIP TITLE LOCATION -C - PRINT *,' INXLFSTRP=', INXLFSTRP - READ(CARD,FMT='(16X,I4,1X,I4,6X,F4.1,8X,I4,1X,I4,8X,I2)') - 1 LSTITPX(INXLFSTRP),LSTITPY(INXLFSTRP),LSFONT(INXLFSTRP), - 2 LSDCKPX(INXLFSTRP),LSDCKPY(INXLFSTRP),LSDCKOPT(INXLFSTRP) -C -C WRITE(6,FMT='('' GETCON: LEFT STRIP TITLE AS FOLLOWS-'', -C 1 /,16X,I4,1X,I4,6X,F4.1,8X,I4,1X,I4,8X,I2)') -C 2 LSTITPX(INXLFSTRP),LSTITPY(INXLFSTRP),LSFONT(INXLFSTRP), -C 3 LSDCKPX(INXLFSTRP),LSDCKPY(INXLFSTRP),LSDCKOPT(INXLFSTRP) -C - ELSE IF (COPTION .EQ. CRTSTRPLC) THEN -C -C READ THE RIGHT STRIP TITLE LOCATION -C -C PRINT *,' INXRTSTRP=', INXRTSTRP - READ(CARD,FMT='(16X,I4,1X,I4,6X,F4.1,8X,I4)') - 1 RSTITPX(INXRTSTRP),RSTITPY(INXRTSTRP),RSFONT(INXRTSTRP), - 2 RSFCSTHR(INXRTSTRP) -C -C WRITE(6,FMT='('' GETCON: RIGHT STRIP TITLE AS FOLLOWS-'', -C 1 /,16X,I4,1X,I4,6X,F4.1,8X,I4)') -C 2 RSTITPX(INXRTSTRP),RSTITPY(INXRTSTRP),RSFONT(INXRTSTRP), -C 3 RSFCSTHR(INXRTSTRP) -C - ELSE IF (COPTION .EQ. CGRAB) THEN -C -C READ THIS GRAB AND GRAB INDEX UNITS AND FORECAST -C - READ (CARD,105)LUGRB,LUGRBIX,IFCSTHR - 105 FORMAT(26X,I2,9X,I2,9X,I3) - PRINT *, ' ' - PRINT *, ' PROCESSING FORECAST HOUR2:',IFCSTHR - PRINT *, ' GRIB FILE AND INDEX FILE:',LUGRB,LUGRBIX -C - ELSE IF (COPTION .EQ. CCOPYOB) THEN -C -C COPY OBSERVATION FILE FROM TAPE 54 IF NECESSARY -C - READ (CARD,205)ITAPOB,ILVLT,KRUN,IOPTRA(1),IOPTRA(2) - 205 FORMAT(13X,I2,6X,I2,6X,I2,8X,I2,1X,I2) - PRINT *, ' GET COPYOB CONSTANTS:' - CPOBFG = .TRUE. -C - ELSE IF (COPTION .EQ. CRANGE) THEN -C -C READ IN THE CONTOUR RANGES -C - READ(CARD,FMT='(19X, I4,5X, I4)') - 1 ICBEG,ICEND - WRITE(6,FMT='('' GETCON: ICBEG ='',2(I4,1X))') - 1 ICBEG,ICEND - RANGFG = .TRUE. -C - ELSE IF (COPTION .EQ. CPCLIP) THEN -C -C READ IN THE CONTOUR POLE CLIP FLAG FOR TYPE 5 NAM MODEL -C - PCLPFG = .TRUE. -C - ELSE IF (COPTION .EQ. CPLOT ) THEN -C -C READ IN THE PLOT OPTION -C - READ(CARD,FMT='(14X,I4,3(7X,I4),8X,I2,1X,I2,7X,I2,1X,I2)') - 1 IMAXP,JMAXP,I1BIG, J1BIG,IGPLOT(1),IGPLOT(2),ISTART, - 2 JSTART - PLOTFG = .TRUE. -C - ELSE - PRINT *, ' GETCON: UNRECOGNIZED IDENTIFIER:',COPTION - ENDIF -C - GOTO 100 -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/getfld.F b/util/sorc/faxmakrx.fd/getfld.F deleted file mode 100755 index 7a70f0ea8a..0000000000 --- a/util/sorc/faxmakrx.fd/getfld.F +++ /dev/null @@ -1,185 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif - SUBROUTINE GETFLD(NUMFLD,LABEL,LUGRB,LUGRBIX,IEXIT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: GETFLD INVENTORY GRIB EDITION 1 FILE -C AUTHOR: KRISHNA KUMAR ORG: WP12 DATE: 1999-08-01 -C -C ABSTRACT: READ ONE DEGREE GRIB AND INDEX FILE ACCORDING TO INPUT -C 7-WORD ID. EXTRACT THE GRIB AND CONVERT IT 65*65 AND SMOOTH IT -C THEN STORE IT TO BUFFER AND GET A OFFICE 84 12-WORD ID. -C -C HISTORY LOG: -C 94-11-09 LUKE LIN -C 95-10-16 LUKE LIN MODIFY TO USE IW3GETV -C 96-07-05 LUKE LIN CHANGE UNPACK GRID BUFF SIZE FROM 163800 TO 16900 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C INPUT ARGUMENTS: -C LABEL - INTEGER*12 6-WORD OFFICE 84 ID -C NUMFLD - .EQ. 1 FOR ONE FIELD -C - .GT. 1 FOR 2 OR MORE FIELDS.SAVE PREVIOUS FIELD -C LUGRB - ONE DEGREE GRIB FILE UNIT -C LUGRBIX - ONE DEGREE GRIB INDEX FILE UNIT -C -C OUTPUT ARGEMENTS: -C IEXIT -- RETURN STATUS -C - =0, NORMAL; -C - SEE SUBROUTINE IW3GETV. -C BUFF - BUFFER(16900) CONTAINS GRID DATA -C BUFFV - SAVE OF PREVIOUS BUFFER(16900) CONTAINS GRID DATA -C -C USAGE: -C INPUT FILES: -C FT05F001 - CONTROL CARDS, ONE FOR EACH OUTPUT FILE -C -C OUTPUT FILES: -C FT06F001 - PRINT OUTPUT (STANDARD FORTRAN OUTPUT FILE) -C -C SUBPROGRAMS CALLED: -C UNIQUE: IW3GETV -C -C LIBRARY: -C SPECIAL - NONE -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C -C COMMON /ISPACE/SBFLD1(16900),SBFLD2(16900),IDREC(12),BUFF(16900), -C & BUFFV(16900),BUFFU(16900) -C - COMMON /ISPACE/SBFLD1(16900),SBFLD2(16900),IDREC(12),BUFF(16900), - & SAV1ST(16900),SAV2ND(16900) - REAL SBFLD1, SBFLD2, BUFF, SAV1ST, SAV2ND -C ... 12 ID WORDS UNPACKED FROM 84'S DATA FILE; BUFF CONTAINS -C UNPACKED DATA FOR THAT PARTICULAR FIELD; -C - INTEGER LABEL(12) -C -C THE HEADER CONSTANTS -C COMMON / HDCONS / ITAU,IGRID,IGCODE,ISCALE - COMMON/HDCONS/ITAU,IDUMMY(3) -C ..... ITAU COMES FROM SUBR RD1GRID.F - -C - CHARACTER * 132 TITLE - INTEGER MAXBUF - INTEGER LUGRBIX, LUGRB - CHARACTER*1 FCSTHR(8) - INTEGER LABEL1 - EQUIVALENCE (LABEL1,FCSTHR(1)) -C -C ... MAXBUF IS THE MAXIMUN BUFFER SIZE... - DATA MAXBUF /16900/ -ckumar - character*80 gribfile,gribixfile - character*2 clugrb,clugrbix -#if defined (__INTEL_COMPILER) - CHARACTER*6 envvar -#else - CHARACTER * 11 envvar -#endif -ckumar -C -C*********************************************************************** -C - IERR = 0 - IF (NUMFLD .EQ. 2) THEN -C ....SAVE PREVIOUS BUFFER IN BUFFV - DO 10 I=1,MAXBUF - SAV1ST(I) = BUFF(I) - 10 CONTINUE - ENDIF -c -c*** kumar opening grib & index files here -c - write(clugrb,fmt='(i2)')lugrb - write(clugrbix,fmt='(i2)')lugrbix - print*,'grib & index files unit #s ',clugrb,clugrbix -c -#if defined (__INTEL_COMPILER) - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lugrb -#else - envvar='XLFUNIT_ ' - write(envvar(9:10),fmt='(I2)') lugrb -#endif - call getenv(envvar,gribfile) - - call baopen(lugrb,gribfile,iret) - print*,'iret after baopen grib_file ',iret,gribfile - -#if defined (__INTEL_COMPILER) - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lugrbix -#else - envvar='XLFUNIT_ ' - write(envvar(9:10),fmt='(I2)') lugrbix -#endif - call getenv(envvar,gribixfile) - - call baopen(lugrbix,gribixfile,iret) - print*,'iret after baopen grib_index_file ',iret,gribixfile -c -c*** kumar -c -C - CALL IW3GETV(LUGRBIX, LUGRB, LABEL, BUFF, TITLE, IERR) -C - IF (IERR.GE.96 .AND. IERR.LE.99) THEN - PRINT *,'*IW3GETV ERROR = ',IERR - IERR = 1 - IEXIT = 1 - GO TO 999 - END IF -C -ckumar N = 1 -ckumar DO I=1,100 -ckumar WRITE(6,20)(BUFF(M),M=N, N+7) -ckumar 20 FORMAT(8(1X,F15.6)) -ckumar N=N+8 -ckumar ENDDO -c -C - print *,title(1:86) - print *,' ' -C -C - print *, 'GETFLDS: NUMFLD=', NUMFLD - IF (NUMFLD .EQ. 1) THEN - DO I=1, 12 - IDREC(I) = LABEL(I) - ENDDO - LABEL1 = LABEL(1) -#if defined (_LITTLE_ENDIAN) - ITAU = mova2i(FCSTHR(1)) -#else - ITAU = mova2i(FCSTHR(8)) -#endif - print *,' itau=', itau - ENDIF -C - PRINT *, 'GETFLDS: IDREC ' - WRITE(6,30)(IDREC(M),M=1,12) - 30 FORMAT (6(1X,Z16)) -c -c*** kumar closing grib & grib index files here -c - call baclose(lugrb,iret) - call baclose(lugrbix,iret) -c -c*** kumar -c - 999 CONTINUE -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/getgrp.f b/util/sorc/faxmakrx.fd/getgrp.f deleted file mode 100755 index 74d3eddd16..0000000000 --- a/util/sorc/faxmakrx.fd/getgrp.f +++ /dev/null @@ -1,118 +0,0 @@ - SUBROUTINE GETGRP(GRPMAP,LUGRB,LUGRBIX,IFCSTHR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GETGRP GET GRPMAP FROM INPUT CONTROLS. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GET CONSTANTS FROM INPUT CONTROLS. -C -C PROGRAM HISTORY LOG: -C 96-03-01 ORIGINAL AUTHOR LUKE LIN -C 96-08-25 LUKE LIN MODIFY FOR READING IL CONSTANTS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL GETGRP(GRPMAP,LUGRB,LUGRBIX,IFCSTHR) -C OUTPUT ARGUMENT LIST: -C GRPMAP - NUMBER OF MAPS TO BE MADE IN THIS FORECAST GROUP -C LUGRB - GRIB FILE UNIT NUMBER FOR THIS FORECAST GROUP -C LUGRBIX - GRIB INDEX FILE UNIT NUMBER FOR THIS FORECAST GROUP -C IFCSTHR - FORECAST HOUR FOR THIS GROUP -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C - COMMON / ILCON / MAP(15) - INTEGER MAP -C - INTEGER GRPMAP - INTEGER LUGRB - INTEGER LUGRBIX - INTEGER IFCSTHR - CHARACTER*1 COMENT - CHARACTER*5 CGRPMP - CHARACTER*5 COPTION -C - CHARACTER*80 CARD -C - CHARACTER*5 CILCON1 - CHARACTER*5 CILCON2 - CHARACTER*5 CILCON3 - CHARACTER*5 CILCON4 - CHARACTER*6 BGNAME - CHARACTER*8 BG2NAME -C - LOGICAL FLAGGET -C - integer iacc - character*8 cacc - equivalence (iacc,cacc) -C - DATA CGRPMP /'GRPM:'/ - DATA COMENT /'!'/ -C - DATA CILCON1 /'ILC1:'/ - DATA CILCON2 /'ILC2:'/ - DATA CILCON3 /'ILC3:'/ - DATA CILCON4 /'ILC4:'/ - -C -C ------------ STARTS ---------------------------------- -C - FLAGGET = .FALSE. -C - 100 CONTINUE -C -C .... READ ONE INPUT CARD -C - READ(15,FMT='(A)')CARD(1:80) - WRITE(6,FMT='('' '',A)')CARD(1:80) -C IF ( CARD(1:1) .EQ. COMENT ) GOTO 100 -C ... IT IS A COMMENT CARD - COPTION = CARD(3:7) -C - IF (COPTION .EQ. CGRPMP) THEN -C -C READ THIS GROUP FORECAST MAPS -C - FLAGGET = .TRUE. -C - READ (CARD,105)GRPMAP,LUGRB,LUGRBIX,IFCSTHR - 105 FORMAT(15X,I2,9X,I2,9X,I2,9X,I3) - PRINT *, ' ' - PRINT *, ' PROCESSING FORECAST HOUR:',IFCSTHR - PRINT *, ' NO OF MAP OF THIS FCST HOUR:',GRPMAP - PRINT *, ' GRIB FILE AND INDEX FILE:',LUGRB,LUGRBIX -C - ELSE IF (COPTION .EQ. CILCON1) THEN - READ(CARD,FMT='(8X,A6,9(1X,I4))')BGNAME,(MAP(NN),NN=2,10) - CACC(1:6)=BGNAME - MAP(1) = IACC - PRINT *, ' BACKGROUND=',CACC - ELSE IF (COPTION .EQ. CILCON2) THEN - READ(CARD,FMT='(14X,5(1X,I4))')(MAP(NN),NN=11,15) - RETURN -C - ELSE IF (COPTION .EQ. CILCON3) THEN - READ(CARD,FMT='(8X,A8,1X,I4,2(2(1X,I6),2(1X,I4)))') - 1 BG2NAME,(MAP(NN),NN=2,10) - CACC=BG2NAME - MAP(1) = IACC - PRINT *, ' BACKGROUND=',CACC - ELSE IF (COPTION .EQ. CILCON4) THEN - READ(CARD,FMT='(14X,5(1X,I6))')(MAP(NN),NN=11,15) - RETURN - ELSE IF (CARD(1:1) .EQ. COMENT) THEN - IF (FLAGGET) RETURN - ELSE - PRINT *, ' ***FATAL ERROR: UNRECOGNIZE OPTION:',COPTION - ENDIF -C - GO TO 100 -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/getovl.f b/util/sorc/faxmakrx.fd/getovl.f deleted file mode 100755 index 0a33a3dd94..0000000000 --- a/util/sorc/faxmakrx.fd/getovl.f +++ /dev/null @@ -1,111 +0,0 @@ - SUBROUTINE GETOVL(MAXMAP,DGNSED,MAP) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GETOVL GET OVERALL MANDATORY INFORMATION IN -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GET CONSTANTS FROM INPUT CONTROLS. -C -C PROGRAM HISTORY LOG: -C 96-03-01 ORIGINAL AUTHOR LUKE LIN -C 96-04-30 LUKE LIN READ IL CONSTANTS IN. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL GETOVL(MAXMAP,MAP) -C OUTPUT ARGUMENT LIST: -C MAXMAP - NUMBER OF MAPS TO BE MADE IN THIS JOB -C DGNSED - UNIT NUMBER FOR DGN SEED FILE -C MAP - MAP(15) IL CONSTANTS -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON / LNATTR / LNWEIGHT, LNSTYLE, LNCOLOR - INTEGER LNWEIGHT - INTEGER LNSTYLE - INTEGER LNCOLOR -C - INTEGER MAXMAP - INTEGER DGNSED - INTEGER MAP(15) - CHARACTER*1 COMENT - CHARACTER*5 CMAXMP - CHARACTER*5 CILCON1 - CHARACTER*5 CILCON2 - CHARACTER*5 CILCON3 - CHARACTER*5 CILCON4 - CHARACTER*5 COPTION - CHARACTER*6 BGNAME - CHARACTER*8 BG2NAME -C - CHARACTER*80 CARD -C - integer iacc - character*8 cacc - equivalence (iacc,cacc) -C - DATA CMAXMP /'TOLM:'/ - DATA CILCON1 /'ILC1:'/ - DATA CILCON2 /'ILC2:'/ - DATA CILCON3 /'ILC3:'/ - DATA CILCON4 /'ILC4:'/ - DATA COMENT /'!'/ - DATA CACC /' '/ -C -C -C ------------ STARTS ---------------------------------- -C -C - LNWEIGHT = 0 - LNSTYLE = 0 - LNCOLOR = 1 -C -C - 100 CONTINUE -C -C .... READ ONE INPUT CARD -C - READ(15,FMT='(A)')CARD(1:80) - WRITE(6,FMT='('' '',A)')CARD(1:80) - IF ( CARD(1:1) .EQ. COMENT ) GOTO 100 -C ... IT IS A COMMENT CARD - COPTION = CARD(3:7) -C - IF (COPTION .EQ. CMAXMP) THEN -C -C READ THE TOTAL MAP -C - READ(CARD,FMT='(19X,I4,11X,I2)')MAXMAP,DGNSED -C - PRINT *,' TATOL MAPS =',MAXMAP,' DGNSED=',DGNSED -C - ELSE IF (COPTION .EQ. CILCON1) THEN - READ(CARD,FMT='(8X,A6,9(1X,I4))')BGNAME,(MAP(NN),NN=2,10) - CACC(1:6)=BGNAME - MAP(1) = IACC - PRINT *, ' BACKGROUND=',CACC - ELSE IF (COPTION .EQ. CILCON2) THEN - READ(CARD,FMT='(14X,5(1X,I4))')(MAP(NN),NN=11,15) - RETURN -C - ELSE IF (COPTION .EQ. CILCON3) THEN - READ(CARD,FMT='(8X,A8,1X,I4,2(2(1X,I6),2(1X,I4)))') - 1 BG2NAME,(MAP(NN),NN=2,10) - CACC=BG2NAME - MAP(1) = IACC - PRINT *, ' BACKGROUND=',CACC - ELSE IF (COPTION .EQ. CILCON4) THEN - READ(CARD,FMT='(14X,5(1X,I6))')(MAP(NN),NN=11,15) - RETURN - ELSE - PRINT *, ' ***FATAL ERROR: UNRECOGNIZE OPTION:',COPTION - ENDIF -C - GO TO 100 -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/grd2idgn.F b/util/sorc/faxmakrx.fd/grd2idgn.F deleted file mode 100755 index d6f485ba19..0000000000 --- a/util/sorc/faxmakrx.fd/grd2idgn.F +++ /dev/null @@ -1,949 +0,0 @@ - SUBROUTINE GRD2IDGN(DGNSED,KEYDAT, - 1 LUGRB,LUGRBIX,OUTDGN, - 2 INBYTE,INTEXT,GRIDT1, - 3 KDATE,IEXIT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GRD2IGN GENERATE AN INTERGRAPH DESIGN FORMAT FILE -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GENERATE AN INTERGRAPH DESIGN FORMATED INTERMEDIATE -C METAFILE THAT WILL BE MADE INTO TO AN AFOS UGF MAP OR A FAX MAP. -C -C -C PROGRAM HISTORY LOG: -C 94-05-26 ORGIONAL AUTHOR LUKE LIN -C 94-06-17 HENRICHSEN REORDER ARGS AND ADD NEW ARGS, DOCUMENT FOR -C PRODUCTION -C 94-06-22 HENRICHSEN ADD LOGIC FOR PRODUCING GULF TITLE WITH -C NEXT LINE LOGIC INBEDDED IN TEXT. -C 94-08-15 HENRICHSEN CORRECT AN ERROR THAT CAUSED THE CONTOR -C LABELS TO BE MISSING ON THE NORTH AMERICAN -C MAPS. -C 94-08-31 HENRICHSEN MODIFY TO ALOW GRID TYPE 05 LFM ANALYSIS -C 94-09-12 HENRICHSEN ALOW AND EXTRA TITLE LINE AFTER THE VALID -C PART OF THE TITLE LABEL. -C 94-09-20 HENRICHSEN CHANGED LOGIC TO OUTPUT MAP TITLE BEFORE -C CONTOUR LABELS. -C 94-09-28 HENRICHSEN ADDED NEW ARG JFID TO CALL TO FRMFAXT -C AND IN COMMOM /LLABFX/ -C 94-12-20 LUKE LIN CONVERT IT TO CFT-77. -C 95-01-18 LUKE LIN CHANGE Z3 FORMAT TO A1 FORMAT -C 95-02-14 HENRICHSEN ADDED IEXIT ARG TO SUB TWOFLD AND ADDED LOGIC -C TO MAKE VORTICITY FROM U AND V FIELDS. -C ADDED NEW VAR (XMESHL) TO COMMON /POLE/ -C CHANGED NAME OF COMMON/ISPACE/ TO /KSPACE/ -C AND RENAMED BUFFV TO SAV1ST -C AND BUFFU TO SAV2ND -C 96-02-01 LUKE LIN CHANGE TO CALL GETFLD/IW3GET -C 96-06-03 HENRICHSEN ADD PRINT STATEMENTS AROUND CALL TO GULFTL. -C ADD LOGIC TO USE JFID PASSED IN COMMON LLABFX. -C 96-06-07 HENRICHSEN ADD LOGIC TO BYPASS CALLS TO GULFTL AND -C FRMFAXT FRMFAXT ON 2ND OR 3RD CALL TO -C GRD2IDGN. ADDED LOGIC TO USE CENTERED ON -C TIME FOR 5 DAU MEAN MAPS. -C 96-06-17 LUKE LIN MODIFY FOR PRECIP BECAUSE FLD2 COMES FROM DIFFERENT -C FORECAST HOUR. -C 96-06-20 HENRICHSEN ADD LOGIC TO GET FIELD LEVEL FOR CERTAIN TYPE -C MAP SO THAT THE GULF TITLE WILL HAVE 4 LINES. -C 96-06-21 HENRICHSEN MODIFY COMMON /LLABFX/ TO PASS TITLE "THEIGHT" -C HGTFLG. -C 96-06-24 LUKE LIN ADD CNTR OPTIONS -C 96-07-01 LUKE LIN ADD FAX STRIP TITLES. -C 96-07-09 LUKE LIN CHANGE THE UNPACK GRID BUFF SIZE FROM 16380 TO 16900 -C AND CHANGE GFS FROM 65*65 TO 129*129 -C 96-08-12 LUKE LIN ADD SMOOTHER FOR CONTOUR LABELS AND CENTERS. -C 96-08-29 LUKE LIN MODIFY FOR NH2005 ON GFS GRID -C 96-09-11 LUKE LIN MODIFY FOR NH2005 ON NGM CGRID -C 96-01-03 LUKE LIN MODIFY FOR NH4006 AND ROTATE THE INPUT GRID. -C 96-05-29 LUKE LIN MODIFY FOR SFC PRESSURE CHANGE -C 97-07-11 LUKE LIN MODIFY FOR SETTING UNDEFINED ON GRID TYPE 5, TDL MOS -C THUNDERSTORM/SEVERE WX, AND TRAJECTORY 4-PANEL. -C 97-12-10 C. CARUSO WHERE CHECK IS DONE TO SEE IF KEYIDX = 11 (FOR WIND -C PLOT), ADDED CHECK TO SEE IF KEYIDX = 17 (NEW VALUE -C FOR SFC GEOSTROPHIC WIND). -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO XINDF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8 -C 99-09-27 BILL FACEY MODIFIED CODE FOR CASE WHERE KEYIDX GT 50. -C -C USAGE: CALL GRD2IDGN(DGNSED,KEYDAT, -C LUGRB,LUGRBIX,OUTDGN, -C 1 INBYTE,INTEXT,GRIDT1, -C 2 KDATE,IEXIT) -C INPUT ARGUMENT LIST: -C IDFLD - INTEGER*4 12 WORD ARRAY THAT CONTAINS THE IDS FOR -C - GETTING THE PACKED DATA FIELD(S). THE FIRST 6 WORDS -C - CONTAIN THE IDS FOR GETTING THE FIRST DATA FIELD. -C - WHILE WORDS 6-12 CONTAIN THE THE IDS FOR GETTING THE -C - 2ND DATA FIELD. -C DGNSED - INTEGER*4 UNIT NUMBER OF DESIGN SEED FILE. -C KEYDAT - INTEGER*4 NUMBER DESCRIBING DATA TYPE. -C LUGRB - UNIT NO POINTS TO ONE-DEGREE GRIB FILE -C LUGRBIX - UNIT NO POINTS TO ONE-DEGREE GRIB INDEX FILE. -C OUTDGN - INTEGER*4 UNIT NUMBER OF OUTPUT DESIGN FILE. -C INBYTE - INTEGER*4 NUMBER OF CHARACTERS IN MAP TITLE (INTEXT). -C INTEXT - CHARRACTER*80 CONTAINS MAP TITLE. -C GRIDT1 - REAL NUMBER DESCRIBING THE GRID INTERVAL. -C -C OUTPUT ARGUMENT LIST: -C KDATE - INTEGER*4 2 WORD ARRAY THAT HOLD THE BASE YEAR, MONTH, -C - DAY AND HOUR IN WORD 1 AND THE VALID YEAR, MONTH, DAY -C - AND HOUR IN WORD 2 BOTH ARE PACKED IN O.N. 84 FORMATED -C - ID WORDS. (FORMATED LIKE ID(7) WORD). -C IEXIT - EXIT STATUS -C -= 0 SUCCESSFUL RUN -C -= 1 ABEND FROM GETFLD/W3FK43, GRID FIELD NOT AVAILABLE -C -= 2 ABEND FROM CNTOR - LACK OF WORKING BIN FOR -C - INTEPOLATION. -C -= 3 ABEND FROM SUBR/SUBFLD -C -= 4 OUTPUT BUFFER IS FULL -C -= 5 FATAL ERR -- NOT ENOUGH WORKING BUFFER FOR OUT-DGN -C -= 6 UNABLE TO OPEN AN OUTPUT DESIGN FILE. -C -= 7 ERROR WHILE WRITING OUT ONTO AN OUTPUT DESIGN FILE. -C -= 8 ERROR OPENING INPUT DESIGN FILE -C -= 9 ERROR WHILE SCANING INPUT DESIGN FILE -C ......... FATAL ERROR ABOVE ............. -C -= 910, NONFATAL ERR -- INVALID OPEN TYPE FOR INDFPI -C -= 933, NONFATAL ERR -- ATTEMP TO ADD BAD ELEMENT TO DGN -C -C -C INPUT FILES: -C FTXXF001 - HOLDS A DESIGN SEED FILE. XX HAS VALUE OF DGNSED. -C -C OUTPUT FILES: -C OUTDGN - WILL CONTAIN THE DESIGN FORMATTED INTERMEDIATE -C - METAFILE THAT WILL BE CONVERTED INTO AFOS UGF -C - FORMAT BY THE NEXT SET OF SUBS. -C FT06F001 - CHECK OUT STATEMENTS AND ERROR MESSAGES -C -C -C REMARKS: -C IF PLOTFG = ' ', PLOT THE FIELD INSTEAD CONTOUR. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON / ILCON / MAP(15) - INTEGER MAP -C -C - integer iacc - character*8 cacc - equivalence (iacc,cacc) - character*6 bgname -C - COMMON / CLRFLD / CLRLAT,CLRLOL,CLRUPR,LCLEAR,ECLEAR,NCLEAR -C - COMMON / DGNBIN / VECBIN,MAXBIN,IMDEX,ITOTWD -C - COMMON /DGNTX/ ZLOWTXT,ZHGHTXT - INTEGER ZLOWTXT,ZHGHTXT -C ..... ZLOWTXT AND ZHGHTXT ARE INTEGERS TO BE STORE IN -C Z-COORDINATES FOR SPECIFYING TEXT STRINGS CHARACTERISTICS. -C LOW TWO DIGITS FOR CHARACTER FONTS, 100 OVER FOR BIG H/L, -C 1000 OVER FOR ERASE, 10000 OVER FOR REVERSE BLOCK, ...... -C - COMMON /ICON/ UA1(50),UA2(50),UA3(50),UM1(50),UM2(50),UM3(50), - 1 KTYPE(50) -C - COMMON /ISPACE/SBFLD1(16900),SBFLD2(16900),IDREC(12),BUFF(16900), - & SAV1ST(16900),SAV2ND(16900) - REAL SBFLD1, SBFLD2, BUFF, SAV1ST, SAV2ND - REAL SBFLDX(16900) - REAL SMOFLD(16900) -C -C -C ... 12 ID WORDS UNPACKED FROM 84'S DATA FILE; BUFF CONTAINS -C UNPACKED DATA FOR THAT PARTICULAR FIELD; -C -C - - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB -C - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - COMMON /LLABFX/ TITPXX,TITPXY,HGTFLG,THEIGHT,NUMT,JBYT, - 1 TITLE,JFID,EXVALID -C - INTEGER TITPXX,TITPXY,HGTFLG,NUMT,JBYT - REAL THEIGHT - CHARACTER*152 TITLE - CHARACTER*48 JFID - CHARACTER*32 EXVALID - - - COMMON /MEANCON/ MEANFG,LKMEAN,MEANTYP -C - - COMMON /MCON/ IADDB,IADDTAU,NUMTYP,NUMKEY, - 1 MTAU(18),MEAN(18),LMEAN,KDN,LDN -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C -C ...KEY TYPE INDEX, CONSTANT, AND CONTOUR LINE VALUE -C - COMMON /FLDCON/ IDFLD(16),NUMFLD,NDEGNS -C - COMMON /POLE/ XPOL,YPOL,GDTYPE -ckumar - COMMON /POLENEW/ XMESHL -ckumar -C -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ... GRID MESH LENGHT = XMESHL = 381.0 KLM -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C ...THE POLE POSITION IN GRID(53,57) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C -C - COMMON /THINN / NOTHIN,MIDIST,MINPTS -C -C ... NOTHIN: NO OF TIME TO BE THINNED; MIDIST: MIN. DISTANCE -C ... BETWEEN TWO PTS; MINPTS: MIN. PTS TO BE PROCESS. - COMMON /ID6WDS/ID8FLD(8),FLNAME,IOPEN - CHARACTER*8 FLNAME -C .... 6 ID WORDS TO GET DESIRED FIELD IN INVENTORY -C .... INPUT INVENTORY FILE NAME -C - COMMON/HDCONS/ITAU,IDUMMY(3) -C ..... ITAU COMES FROM SUBR RD1GRID.F -C -C - COMMON /GRB2/ ALUGRB,ALUGRBIX,AFCSTHR,AKEYIDX,CALFLAG,GRB2FLAG -C - INTEGER ALUGRB - INTEGER ALUGRBIX - INTEGER AFCSTHR - INTEGER AKEYIDX - INTEGER CALFLAG - LOGICAL GRB2FLAG -C .... FOR 2ND GRB UNIT NUMBER SUCH AS PRECIP FROM DIFFERENT FCST HOUR -C -C -C .... THIS SET IS FOR UOR_DOT - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI - LOGICAL UORFG -C -C ... FOR CONTOR OPTIONS - COMMON /CNTROP/ NDVD, NDIV, NCNTRFILT, NCENTFILT,SHADIV - INTEGER SHADIV -C ... NDVD FOR INTERPOLATION, NDIV FOR DIVISION -C ... NCNTRFILT FOR CONTOUR FILTER, NCENTFILT FOR CENTER FILTER - COMMON/LABARG/IPOS(500),JPOS(500),TEXT1(500), - X VAL(500),NCH(500),NSAVED - CHARACTER*4 TEXT1,TEXTIN -C -C - COMMON /PLOT/ PLOTFG, IMAXP, JMAXP, I1BIG, J1BIG, IGPLOT(2), - 1 ISTART, JSTART - LOGICAL PLOTFG -C -C - CHARACTER*80 INTEXT - CHARACTER*77 LGULF - CHARACTER*60 BLANKS - CHARACTER*60 ERRMSG - - CHARACTER*40 CELLIB -C - CHARACTER*20 VERSON - CHARACTER*12 CITIMES -ckumar - integer iitimes - equivalence (iitimes,citimes) -ckumar -C .... INPUT FILE NAME - CHARACTER*8 CHWORK - CHARACTER*8 CWORK - CHARACTER*4 CHTYPE - CHARACTER*4 KTYPE - CHARACTER*4 MEAN - CHARACTER*4 MEANTYP - -C - CHARACTER*1 NULL - CHARACTER*1 WBLANK - CHARACTER*1 WBARB - CHARACTER*1 WISOTA -C - INTEGER IBIGG, JBIGG, ILMAX, JLMAX - INTEGER CLRLOL(2) - INTEGER CLRUPR(2) - INTEGER DGNSED - INTEGER GDTYPE - INTEGER INBYTE - INTEGER IDFLDW(8) - INTEGER IDFLD1(12) - INTEGER IDFLD2(12) -C -C .... 6 ID WORDS TO GET DESIRED PACKED DATA FIELD. -C - COMMON /RANG/ RANGFG, ICBEG, ICEND - LOGICAL RANGFG - INTEGER ICBEG, ICEND -C -C - COMMON /PCLP/ PCLPFG - LOGICAL PCLPFG -C - INTEGER INTIME(2) - INTEGER ITIMES(3) - INTEGER IVLDNO - INTEGER JTIME - INTEGER KTIME - INTEGER JDATE - INTEGER KDATE(2) - REAL RINC(5) - INTEGER IDAT(8), JDAT(8) - INTEGER CTIME - CHARACTER*4 JCDAT, KCDAT - EQUIVALENCE (CTIME,KCDAT) - EQUIVALENCE (JDATE,JCDAT) - INTEGER NUMBYT - INTEGER OUTDGN - INTEGER SIGNAT -C - INTEGER FOMAT - INTEGER OPTYPE - INTEGER UNUSE1 - INTEGER UNUSE6 - INTEGER UNUSE8 - INTEGER VECBIN(409800) -C - REAL ALEVEL - REAL CLRLAT - REAL GRIDT1 - REAL WORKZ(324200) - REAL XINDF -C - LOGICAL HILOFG - LOGICAL ZS4TO1 -C - LOGICAL AFOS - LOGICAL ECLEAR - LOGICAL KDN - LOGICAL LCLEAR - LOGICAL NCLEAR - LOGICAL LDN - LOGICAL LMEAN - LOGICAL LKMEAN - LOGICAL NEWCON - LOGICAL PACKED - LOGICAL WORKL(648400) -C -C ... WORKZ AND WORKL ARE NEEDED BY CNTOR .... -C -C - CHARACTER*1 IFLAG - CHARACTER*1 IDPDSC(28) - INTEGER IDPDS(4) - EQUIVALENCE (IDPDSC(1),IDPDS(1)) - INTEGER IMODEL - INTEGER IDFLDP(4) -C -C - REAL DSCALE - REAL ANGLE - REAL DEFALT - LOGICAL LINEAR - LOGICAL LDEFQQ -C - DATA BLANKS - 1/' '/ -C /'123456789012345678901234567890123456789012345678901234567890'/ - DATA ERRMSG - 1/'NWS/GRD2IDGN - ONE INTERGRAPH DESIGN FILE UNABLE TO BE MADE'/ - DATA WBLANK /' '/ - DATA WBARB /'W'/ - DATA WISOTA /'I'/ - DATA XINDF / 1.0E307 / - - DATA MSKTRAJ /Z'00000000000000C0'/ -C - DATA MSK3 /Z'000000000000FFFF'/ - -C - DATA IZERO /Z'0000000000000000'/ - EQUIVALENCE (ALEVEL,KLEVEL) - EQUIVALENCE (CITIMES,INTIME) - EQUIVALENCE (JTIME,CWORK) - EQUIVALENCE (KTIME,CHWORK) - EQUIVALENCE (WORKZ(1),BUFF(1)) -C -C ... WHERE 409800 HALFWORDS = 400 VAX BLOCKS -C -C -C FILL TITLE WITH BLANKS. -C - TITLE = BLANKS//BLANKS//BLANKS -C -C??? DATA NULL /Z00/ - NULL = CHAR(00) -C - MAXBIN = 409800 - NINDX = 0 - ISTOP = 0 - MAPERR = 0 - MWHICH = 1 - IEXIT = 0 - T1 = GRIDT1 - ZLOWTXT = 0 - ZHGHTXT = 0 -C MINPTS = 10 - KEYIDX = KEYDAT - NSAVED = 0 - NCLEAR = .FALSE. -C -C UNLOAD THE 2 SETS OF ID WORDS FROM IDFLD ARRAY -C - DO I=1, 6 - IDFLDW(I) = IDFLD(I) - ENDDO - DO I=1, 6 - IDFLD1(I) = IDFLD(I) - IDFLD2(I) = IDFLD(8+I) - ENDDO - DO I=7, 12 - IDFLD1(I) = 0 - IDFLD2(I) = 0 - ENDDO -C - IMODEL = IAND(IDFLD1(6),MSK3) -C -C CALL GETCON -C -C - IF (GDTYPE.EQ.26) THEN - IBIGG = 53 - JBIGG = 45 - ILMAX = 53 - JLMAX = 45 - ICOR = 1 - JCOR = 1 - XPOL = 27.0 - YPOL = 49.0 - KEYCLR = 12 - XMESHL = 190.5 - ELSE IF (GDTYPE.EQ.05) THEN - IBIGG = 53 - JBIGG = 57 - ILMAX = 53 - JLMAX = 57 - ICOR = 1 - JCOR = 1 - XPOL = 27.0 - YPOL = 49.0 - KEYCLR = 12 - XMESHL = 190.5 - ELSE IF (GDTYPE.EQ.27 .OR. GDTYPE.EQ.28) THEN - IBIGG = 65 - JBIGG = 65 - ILMAX = 65 - JLMAX = 65 - ICOR = 1 - JCOR = 1 - XPOL = 33.0 - YPOL = 33.0 - KEYCLR = 14 - XMESHL = 381.0 -C - IF (UORFG .AND. UXPO.EQ.65 .AND. UYPO.EQ.65) THEN - IBIGG = 129 - JBIGG = 129 - ILMAX = 129 - JLMAX = 129 - ICOR = 1 - JCOR = 1 - XPOL = 65.0 - YPOL = 65.0 - KEYCLR = 14 - XMESHL = 190.5 - IF (MAP(5) .GT. 4000) THEN - KEYCLR = 1 - NCLEAR = .TRUE. - ENDIF - ENDIF - ELSE IF (GDTYPE.EQ.101) THEN - IBIGG = 113 - JBIGG = 91 - ILMAX = 113 - JLMAX = 91 - ICOR = 1 - JCOR = 1 - XPOL = 58.5 - YPOL = 92.5 - KEYCLR = 12 - XMESHL = 91.452 - ELSE IF (GDTYPE.EQ.104) THEN - IBIGG = 147 - JBIGG = 110 - ILMAX = 147 - JLMAX = 110 - ICOR = 1 - JCOR = 1 - XPOL = 75.5 - YPOL = 109.5 - KEYCLR = 12 - XMESHL = 90.75464 - ELSE - WRITE(6,FMT='('' GRD2IDGN: **** ERROR '',I2,'' IS'', - 1 '' UNKNOWN GRID TYPE:'')')GDTYPE - GO TO 800 - ENDIF -C ... INITIALIZE ADDITIVE AND MULTIPLICATIVE CONSTANTS - IFLDNO = 1 -C -C -C - CALL GETFLD(IFLDNO,IDFLD1,LUGRB,LUGRBIX,IEXIT) -C - IF (IEXIT .NE. 0) THEN - WRITE(6,FMT='('' GRD2IDGN: **** ERROR RETURN= '',I2, - 1 '' FROM GETFLD :'')')IEXIT - RETURN - ENDIF -C -C IF NEED GET SECOND DATA FIELD -C - IF (NUMFLD .EQ. 2) THEN - IFLDNO = 2 -C - IF (GRB2FLAG .AND. KEYIDX.EQ.AKEYIDX) THEN - CALL GETFLD(IFLDNO,IDFLD2,ALUGRB,ALUGRBIX,IEXIT) - ELSE - CALL GETFLD(IFLDNO,IDFLD2,LUGRB,LUGRBIX,IEXIT) -C .... FLD 2 FROM DIFFERENT FORECAST HOUR, SUCH AS PRECIP - ENDIF -C ...GET A REAL DATA FIELD FROM INVENTORY - IF (IEXIT .NE. 0) THEN - WRITE(6,FMT='('' GRD2IDGN: **** ERROR RETURN= '',I2, - 1 '' FROM GETFLD WITH :'')')IEXIT - RETURN - ENDIF - IF ( .NOT. PLOTFG ) THEN - CALL TWOFLD(BUFF,SAV1ST,SAV2ND,IBIGG,JBIGG,KEYIDX,IEXIT) - ENDIF - IF (IEXIT .NE. 0) THEN - WRITE(6,FMT='('' GRD2IDGN: **** ERROR RETURN= '',I2, - 1 '' FROM TWOFLD, WITH KEYIDX='',I3)')IEXIT,KEYIDX - RETURN - ENDIF - ENDIF -C - IF (IEXIT .NE. 0) RETURN - IF (KEYIDX.EQ.7 .OR. KEYIDX.EQ.30 .OR. KEYIDX.EQ.37 - 1 .OR. KEYIDX.EQ.19 .OR. KEYIDX.EQ.49) THEN - CALL PRECIP(BUFF,SAV1ST,IBIGG,JBIGG) - ELSE IF (KEYIDX .EQ. 44) THEN -C ... FOR VERTICAL WIND SHIED - CALL ABSVWS(BUFF,SAVIST,IBIGG,JBIGG) - ENDIF -C -C -C - IACC = MAP(1) - BGNAME = CACC(1:6) - PRINT *, ' GRD2IDGN: BGNAME =', BGNAME - IF (GDTYPE.EQ.27 .AND. BGNAME.EQ.'NH2005') THEN -C ...ROTATE FROM 80W TO 105W FOR NH2005 - ANGLE = -25.0 - DSCALE = 1.0 - LINEAR = .TRUE. - LDEFQQ = .FALSE. - CALL W3FT07(BUFF,IBIGG,JBIGG,XPOL,YPOL,XPOL,YPOL, - A DSCALE,ANGLE,LINEAR,LDEFQQ,DEFALT,SMOFLD,IBIGG,JBIGG) -C - CALL SUBFLD(SMOFLD,IBIGG,JBIGG,SBFLD1,ILMAX,JLMAX, - 1 ICOR,JCOR,UM1V,UA1V,UM2V,UA2V,IEXIT) - ELSE IF (GDTYPE.EQ.27 .AND. BGNAME.EQ.'NH4006') THEN -C ...ROTATE FROM 80W TO 105W FOR NH2005 - ANGLE = -25.0 - DSCALE = 1.0 - LINEAR = .TRUE. - LDEFQQ = .FALSE. - CALL W3FT07(BUFF,IBIGG,JBIGG,XPOL,YPOL,XPOL,YPOL, - A DSCALE,ANGLE,LINEAR,LDEFQQ,DEFALT,SMOFLD,IBIGG,JBIGG) -C - CALL SUBFLD(SMOFLD,IBIGG,JBIGG,SBFLD1,ILMAX,JLMAX, - 1 ICOR,JCOR,UM1V,UA1V,UM2V,UA2V,IEXIT) - ELSE IF (GDTYPE.EQ.05 .AND. BGNAME.EQ.'PN2601') THEN -C ...ROTATE FROM 105W TO 98W FOR NH2005 - ANGLE = 7.0 - DSCALE = 1.0 - LINEAR = .TRUE. - LDEFQQ = .FALSE. - CALL W3FT07(BUFF,IBIGG,JBIGG,XPOL,YPOL,XPOL,YPOL, - A DSCALE,ANGLE,LINEAR,LDEFQQ,DEFALT,SMOFLD,IBIGG,JBIGG) -C - CALL SUBFLD(SMOFLD,IBIGG,JBIGG,SBFLD1,ILMAX,JLMAX, - 1 ICOR,JCOR,UM1V,UA1V,UM2V,UA2V,IEXIT) - ELSE -C -C EXTRACT AND RECSALE A SUBGRID. -C - IF ( .NOT. PLOTFG ) THEN - PRINT *, ' GRD2IDGN: CALL SUBFLD' - CALL SUBFLD(BUFF,IBIGG,JBIGG,SBFLD1,ILMAX,JLMAX, - 1 ICOR,JCOR,UM1V,UA1V,UM2V,UA2V,IEXIT) - ENDIF - ENDIF -C - IF (IEXIT .NE. 0) THEN - IEXIT = 3 - RETURN - ENDIF -C -C NOW GET THE MAP TITLE READY - AFOS = .FALSE. - PACKED = .FALSE. - ITIMES(1) = ITAU - JTAU = ITAU - IF(LVFLG.GT.0)THEN -C -C GET DATA LEVEL FROM 2ND ID WORD -C - ILEVEL = IDREC(2) - WRITE(6,FMT='('' GRD2IDGN: LEVEL ID WORD='',Z17)')ILEVEL - CALL GBYTE(ILEVEL,KLEVEL,36,20) - LEVEL = KLEVEL/100 - WRITE(6,FMT='('' GRD2IDGN: LEVEL='',I6,'' KLEVEL='',I6, - 1 '' KLEVEL HX='',Z17)')LEVEL,KLEVEL,KLEVEL - ENDIF - KTIME = IDREC(7) - ITIMES(2) = IDREC(7) - ITIMES(3) = IDREC(8) -C - CTIME = IZERO - WRITE(6,FMT='('' GRD2IDGN: ITIMES='',3(Z17))')ITIMES -C1211 FORMAT(' KTIME,JDATE=', 3(2X,Z16)) -#if defined (_LITTLE_ENDIAN) - CALL SBYTESCCS(CTIME,KTIME,0,32,0,1) - CALL SWAP_BYTES_IN_PLACE (CTIME, 8_8, 1_8) -#else - CALL SBYTES(CTIME,KTIME,0,32,0,1) -#endif -C------------------------------------------------------- -C FOLLOWING WAS ADDED TO REPLACE CALL TO W3FS15 WITH CALL -C TO W3MOVDAT FOR Y2K COMPATABILITY. - IDAT=0 - JDAT=0 - RINC=0 - RINC(2)=JTAU - ICENT=1900 - IDAT(1)=mova2i(KCDAT(1:1)) - IF(IDAT(1) .LT. 96) ICENT=2000 - IDAT(1)=IDAT(1)+ICENT - IDAT(2)=mova2i(KCDAT(2:2)) - IDAT(3)=mova2i(KCDAT(3:3)) - IDAT(5)=mova2i(KCDAT(4:4)) -ckumar - print*,'In GRD2IDGN - before W3MOVDAT ' - print *, 'IDAT=', IDAT(1), IDAT(2), IDAT(3), IDAT(5) - print *, 'RINC=', RINC(1),RINC(2),RINC(3),RINC(4),RINC(5) -ckumar - CALL W3MOVDAT(RINC,IDAT,JDAT) - print *, 'JDAT=', JDAT(1), JDAT(2), JDAT(3), JDAT(5) - JDAT(1)=JDAT(1)-ICENT - JCDAT(1:1)=CHAR(JDAT(1)) - JCDAT(2:2)=CHAR(JDAT(2)) - JCDAT(3:3)=CHAR(JDAT(3)) - JCDAT(4:4)=CHAR(JDAT(5)) -C -C END OF CHANGES FOR W3MOVDAT -C----------------------------------------------------- - KDATE(1) = KTIME - KDATE(2) = JDATE -C - WRITE(6,FMT='('' GRD2IDGN: KDATE/JTAU='',3(Z17))')KDATE,JTAU - print *, 'keyidx=',keyidx - IF (KEYIDX .LT. 51) THEN - CHTYPE = KTYPE(KEYIDX) - ELSE - CHTYPE = ' ' - ENDIF -C -ckumar CALL SBYTES(CITIMES,ITIMES,0,32,0,3) -#if defined (_BIG_ENDIAN) - CALL SBYTES(IITIMES,ITIMES,0,32,0,3) -#else - CALL SBYTESCCS(IITIMES,ITIMES,0,32,0,3) -#endif - WRITE(6,FMT='('' GRD2IDGN: INTIME='',2(Z17))')INTIME -C -C CHECK TO SEE IF WE SHOULD BYPASS CALLS TO THESE SUBS -C - IF (NDEGNS .EQ. 1) THEN -C -C CHECK TO SEE IF THIS IS A MEAN FIELD -C - IF(LKMEAN) THEN - LMEAN = .FALSE. - DO KK=1,NUMTYP - IF(MEAN(KK).EQ.MEANTYP)THEN - LMEAN = .TRUE. - ITIMES(1) = MTAU(KK) -ckumar CALL SBYTES(CITIMES,ITIMES,0,32,0,3) -#if defined (_BIG_ENDIAN) - CALL SBYTES(IITIMES,ITIMES,0,32,0,3) -#else - CALL SBYTESCCS(IITIMES,ITIMES,0,32,0,3) -#endif - WRITE(6,FMT='('' GRD2IDGN: INTIME='',2(Z17))')INTIME -C - WRITE(6,FMT='('' GRD2IDGN: THIS IS A '',A,'' MEAN MAP.'', - 1 '' THE NEW TAU IS'',I4,'' ITIMES='',3(Z17))')MEANTYP, - 2 MTAU(KK),ITIMES - GOTO 10 -C - ENDIF - ENDDO - ENDIF - 10 CONTINUE -C - print*,'In grd2idgn before gulftl ******' - write(06,1111)citimes - 1111 format('citimes= ',Z24) - print*,'PACKED = ',packed -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (INTIME, 8_8, 2_8) -#endif - CALL GULFTL(CITIMES,CHTYPE,PACKED,AFOS,LGULF) - print*,'In grd2idgn after gulftl ******' - write(06,1111)citimes - print*,'PACKED = ',packed - -C - WRITE(6,FMT='('' GRD2IDGN: BEFORE CALL TO SUB FRMFAXT'', - 1 '' JFID='',A)')JFID(1:JBYT) - CALL FRMFAXT(LGULF,INBYTE,LEVEL,LMEAN,INTEXT) -C -C -C - WRITE(6,FMT='('' GRD2IDGN: TITLE='',A,/,'' HEX='', - 1 8(/,20A1))')TITLE(1:NUMT),(TITLE(IJ:IJ),IJ=1,NUMT) -C - WRITE(6,FMT='('' GRD2IDGN: GLAB='',A,/,'' HEX='', - 1 17A1)')GLAB(1:NUMG),(GLAB(IJ:IJ),IJ=1,NUMG) -C -C ....PUT TITLES ON THE MAP -C - CALL MTITLE(IDFLD1) -C -C ....PUT FAX STRIP TITLES -C - print*,'In grd2idgn before strptitl ******' - write(06,1111)citimes - print*,'PACKED = ',packed - - CALL STRPTITL(CITIMES,PACKED) - print*,'In grd2idgn after strptitl******' - write(06,1111)citimes - print*,'PACKED = ',packed - -C - ENDIF -C - FOMAT = 0 - OPTYPE = 0 - CELLIB(1:1) = NULL - CALL INDFPI(UNUSE1,DGNSED,OPTYPE, CELLIB, FOMAT, - & UNUSE6, IEXIT, UNUSE8) -C ..... OPEN A DGN FILE ..... - IF (IEXIT .NE. 0 .AND. IEXIT .LE. 10) THEN - PRINT *,' FATAL ERROR FROM INDFPI=', IEXIT - RETURN - ENDIF -C INITIALIZATION - IMZ = (ILMAX-1)*NDIV + 1 - IML = 2*IMZ-1 -C - IF ( .NOT. PLOTFG ) THEN - CALL UPDOWN(SBFLD1,SBFLD2,ILMAX,JLMAX) -C ... UPSIDE DOWN THE GRID DATA FOR CNTOR - ENDIF -C - ITOT=ILMAX * JLMAX -ckumar - PRINT *, 'In GRD2IDGN: filter and contour' - PRINT *, 'GDTYPE, NCNTRFILT,NCENTFILT', - & GDTYPE, NCNTRFILT,NCENTFILT -ckumar - IF (GDTYPE.EQ.27 .OR. GDTYPE.EQ.28) THEN -C FILTER THE CONTOUR - IF ( NCNTRFILT .GT. 0) THEN - DO KL=1,NCNTRFILT - CALL W3FM08(SBFLD2,SBFLDX,ILMAX,JLMAX) - ENDDO - ENDIF -C FILTER THE CENTERS - PRINT *, 'GDTYPE, NCNTRFILT,NCENTFILT', - & GDTYPE, NCNTRFILT,NCENTFILT - IF ( NCENTFILT .GT. 0) THEN - DO KL=1,NCENTFILT - CALL W3FM08(SBFLD1,SBFLDX,ILMAX,JLMAX) - ENDDO - ENDIF - ELSE IF (KEYIDX.EQ.22) THEN -C FILTER THE CONTOUR FOR PRESSURE CHANGE - IF ( NCNTRFILT .GT. 0) THEN - DO KL=1,NCNTRFILT - CALL W3FM08(SBFLD2,SBFLD2,ILMAX,JLMAX) - ENDDO - ENDIF -C FILTER THE CENTERS - IF ( NCENTFILT .GT. 0) THEN - CALL W3FM08(SBFLD1,SBFLD1,ILMAX,JLMAX) - IF ( NCENTFILT .GT. 1) THEN - DO KL=1,NCENTFILT-1 - CALL W3FM08(SBFLD1,SBFLD1,ILMAX,JLMAX) - ENDDO - ENDIF - ENDIF - ENDIF -C -C - IF ( .NOT. PLOTFG ) THEN - print *, 'call cntor' - CALL CNTOR(SBFLD2,ILMAX,JLMAX,NDVD,NDIV,WORKZ, - & IMZ,WORKL,IML,SHADIV,KEYIDX,IEXIT) - ENDIF - IF (IEXIT .NE. 0 .AND. IEXIT .LE. 5) RETURN -C - IF (GDTYPE.EQ.27 .OR. GDTYPE.EQ.28) THEN - ISML = 46 - JSML = 51 - ISKP = 10 - JSKP = 8 - ICOR = 13 -C - IF (UORFG .AND. UXPO.EQ.65 .AND. UYPO.EQ.65) THEN - ISML = 91 - JSML = 101 - ISKP = 20 - JSKP = 16 - ICOR = 25 - ENDIF -C -C CHECK TO SEE IF THE FEILD NEEDS TO BE CLEARED -C - IF(LCLEAR)THEN - WRITE(6,FMT='('' GRD2IDGN: CLEAR FIELD OF SIZE'', - 1 2I6)')ILMAX,JLMAX - CALL CLEAR(CLRLAT,XINDF,SBFLD1, - 1 ILMAX,JLMAX,KEYCLR,IRTN) - PRINT *,' CALL CLEAR' - ELSE - WRITE(6,FMT='('' GRD2IDGN: INDEF FIELD OF SIZE'', - 1 2I6,'' ISML/JSML'',2I6,'' ISKP/JSKP='',2I6, - 2 '' ICOR='',I6)') - 3 ILMAX,JLMAX,ISML,JSML,ISKP,JSKP,ICOR - CALL INDEFF(SBFLD1,ILMAX,JLMAX,ISML,JSML, - 1 ISKP,JSKP,ICOR,XINDF) - PRINT *,' CALL INDEFF,XINDF=',XINDF - ENDIF - ELSE - IF(ECLEAR)THEN - WRITE(6,FMT='('' GRD2IDGN: CLEARING FIELD OF'', - 1 '' SIZE '',2I6,'' WITH CORNER POINTS '',4I4)') - 2 ILMAX,JLMAX,CLRLOL,CLRUPR - MKEY = 1 - CALL CLREDG(SBFLD1,XINDF,CLRLOL,CLRUPR,MKEY, - 1 ILMAX,JLMAX,IRTN) - ENDIF - ENDIF -C - DOTSGI = T1 - A1 = UA3V - B1 = UM3V -C -C FIND CONTOUR LABELS -C ABOVE CENTERS AND ALONG CONTOURS -C - IF ( .NOT. PLOTFG ) THEN -C - IF (PCLPFG.AND.GDTYPE.EQ.05) - 1 CALL XLABEL(SBFLD1,IBIGG,JBIGG,XINDF) -C ... FOR TYPE 5 TO CLIP POLE AREA - IF (RANGFG.AND.KEYIDX.EQ.46) - 1 CALL XLABEL(SBFLD1,IBIGG,JBIGG,XINDF) -C ... FOR TDL MOS THUNDERSTORM/SEVERE WX CHART - IF (IMODEL .EQ. MSKTRAJ) THEN - IF (KEYIDX.EQ.51.OR.KEYIDX.EQ.47 .OR. - 1 KEYIDX.EQ.48) THEN -C .... FOR TRAJECTORY 4-PANEL CHART - CALL XLABEL(SBFLD1,IBIGG,JBIGG,XINDF) - CALL TJLABEL(SBFLD1,IBIGG,JBIGG,DOTSGI,A1,B1, - 1 KEYIDX) - ENDIF - ELSE - CALL LABELCON(SBFLD1,IBIGG,JBIGG,DOTSGI,A1,B1, - 1 KDN,LDN,IEXIT) - ENDIF -C - IF (IEXIT .NE. 0 .AND. IEXIT .LE. 5) THEN - PRINT *,' FATAL ERROR FROM LBCENCON=', IEXIT - RETURN - ENDIF -C - ELSE -C FOR ISOTACHS TO PLOT WIND DIRECTIONS... - VA1V = UA1(KEYIDX) - VM1V = UM1(KEYIDX) - VA2V = UA2(KEYIDX) - VM2V = UM2(KEYIDX) - IMAX = IMAXP - JMAX = JMAXP -C - CALL SUBFLD( BUFF,IBIGG,JBIGG,SBFLD1, IMAX, - 1 JMAX,ICOR,JCOR, VM1V,VA1V,VM2V,VA2V,IEXIT) -C ....GET U-COMPONENT - IF (IEXIT .NE. 0) THEN - IEXIT = 3 - GO TO 800 - ENDIF -C - IF (KEYIDX.EQ.11.OR.KEYIDX.EQ.17) THEN - CALL SUBFLD(SAV1ST,IBIGG,JBIGG,SBFLD2, IMAX, - & JMAX,ICOR,JCOR,VM1V,VA1V,VM2V,VA2V,IEXIT) -C ....GET V-COMPONENT - CALL PTWNDX(SBFLD1,SBFLD2, IMAX, JMAX, - 1 I1BIG,J1BIG,IGPLOT,ISTART,JSTART,T1) - ELSE IF (KEYIDX.EQ.38) THEN - CALL PLTRH(SBFLD1,IMAX,JMAX, - 1 I1BIG,J1BIG,IGPLOT,ISTART,JSTART,T1) - ENDIF -C - IF (IEXIT .NE. 0) THEN - IEXIT = 3 - GO TO 800 - ENDIF -C - ENDIF -C -C -C WRITE AND CLOSE THE DESIGN FILE -C - CALL WRTDGN(OUTDGN, IEXIT) - IF (IEXIT .NE. 0 .AND. IEXIT .LE. 7) THEN - PRINT *,' FATAL ERROR FROM WRTDGN=', IEXIT - ELSE - RETURN - ENDIF - 800 CONTINUE -C - PRINT *,ERRMSG -C - 900 CONTINUE -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/gulftl.F b/util/sorc/faxmakrx.fd/gulftl.F deleted file mode 100755 index 1de7298ce5..0000000000 --- a/util/sorc/faxmakrx.fd/gulftl.F +++ /dev/null @@ -1,337 +0,0 @@ - SUBROUTINE GULFTL(CHWORK,CHTYPE,PACKED,AFOS,LGULF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GULFTL FORMS TEXT OF GULF TITLE AND OTHER TITLES -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: FORMS THE TEXT OF THE GULF TITLE FOR VARIAN/FAX MAPS AND -C THE BASE AND VALID TIME TEXT FOR OTHER MAPS. ALL TEXT IS RETURNED -C IN LGULF ARRAY. FOR FURTHER DETAILS SEE OUTOUT ARGS. BELOW. -C -C PROGRAM HISTORY LOG: -C 89-02-08 ORIGINAL AUTHOR HENRICHSEN -C 95-01-04 LUKE LIN CONVERT IT CFT-77. -C 95-01-18 LUKE LIN GET ITAU FROM SUBROUTINE RD1GRIB -C 96-06-03 HENRICHSEN REMOVED THE 95-01-18 MODIFICATIONS AND -C CORRECTED AN ERROR IN CALL TO "GBYTES" IT -C SHOULD HAVE BEEN A CALL TO "GBYTE". -C 96-06-18 HENRICHSEN ADDED NAM48 TO MODTAB -C 96-08-21 HENRICHSEN ADDED CHANGED GENERATING MODEL # 77 FROM JMET -C TO SA126 WHICH SIGNIFIES 126 WAVE TRIANGULAR, -C 28 LAYER SPECTRAL MODEL FROM "AVIATION" RUN. -C 97-03-11 LIN MODIFY FOR NEGATIVE TAU TEST AND GFS D+/D- MAPS. -C 97-03-31 LIN CHANGE GFSBC TO GFS FOR IGEN .EQ. 76. -C 97-04-18 LIN FIX ECMWF D+3/D+8 MAP TITLES. -C 98-02-11 LILLY ADDED NAM32 TO MODTAB -C 98-06-03 FACEY REPLACE CALL TO W3FS15 WITH CALL TO W3MOVDAT -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL GULFTL(CHWORK,CHTYPE,PACKED,AFOS,LGULF) -C INPUT ARGUMENT LIST: -C CHWORK - CHARACTER*12 WORD ARRAY THAT CONTAINS THREE -C - ID WORDS AFTER GETING A PACKED DATA FIELD. -C - CHWORK(1:4) HAS IDWORD(1). -C - CHWORK(5:8) HAS IDWORD(7). -C - CHWORK(9:12) HAS IDWORD(8). -C - IN ON 84 FORMAT. -C CHTYPE - CHARACTER*4 WORD THAT CONTAINS THE TYPE OF FIELD IN -C - HOLLERTH IE 'HGT ', 'TEMP', 'PRS ' -C PACKED - LOGICAL FLAG SET = .TRUE. ITIMES(1) IS A PACKED ID -C - WORD THEN THE TAU IS IN THE 4TH BYTE. IF = .FALSE. -C - THEN THE TAU IS IN ALL OF ITIMES(1). -C AFOS - LOGICAL FLAG SET = .TRUE. IF AFOS PRODUCT THEN -C - 16 EXTRA BYTES ARE ADDED AT THE END OF LGULF ARRAY -C - CONTAINING: MM/DD/HHZ YYYY WHICH ARE THE -C - BASE TIME OF THE AFOS GRAPHIC. -C -C OUTPUT ARGUMENT LIST: -C LGULF - CHARACTER*1 77 WORD ARRAY CONTAINING GULF TITLE. -C - BYTES 1 THRU 16 CONTAIN THE GULF TITLE, IE -C - HGT12 00Z05OPTIN . -C - BYTES 17 THRU 36 CONTAIN THE BASE TIME TITLE, IE -C - 12Z MON 03 JUN 1996 . -C - BYTES 37 THRU 61 CONTAIN THE VALID TIME TITLE, IE -C - VALID 00Z WED 05 JUN 1996 . -C - BYTES 62 THRU 77 CONTAIN MM/DD/HHZ YYYY USED -C - WITH AFOS PRODUCTS, IE -C - 06/03/12Z 1996 . -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C -C REMARKS: IF PACKED = .FALSE. THEN TAU IS IN ALL OF ITIMES(1). -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON/PACKRA/JTIME(2),IVLDHR,IVLDAY,IVLDMO,IVLDYR, - 1 IHOUR,IDAY,MONTH,IYR -C -C - COMMON /MEANCON/ MEANFG,LKMEAN,MEANTYP -C - CHARACTER*4 MEANTYP -C - INTEGER MEANFG - LOGICAL LKMEAN -C - CHARACTER*77 LGULF - CHARACTER*50 BLANKS - CHARACTER*28 VALID - CHARACTER*20 FROM - CHARACTER*16 ATIME - CHARACTER*12 CHWORK - CHARACTER*8 CHTEXT - CHARACTER*5 MISSG - CHARACTER*5 MODTAB(47) - CHARACTER*4 CHTYPE - CHARACTER*4 IHDAYW - CHARACTER*4 MONS (12) - CHARACTER*1 IZ - CHARACTER*4 LTIME,LDATE -C -C - INTEGER IYEAR, MONTH, IDAY - INTEGER JDAT(8), IDAT(8) - REAL RINC(5) - INTEGER KTIME - INTEGER MAXMOD - INTEGER MODNUM(47) -C - INTEGER IDT(8) - INTEGER MSKFF - INTEGER MSKTIME - DATA MSKTIME /Z'FFFFFFFF00000000'/ - INTEGER TIMEFG - DATA TIMEFG /Z'FFFF0000'/ -C - LOGICAL AFOS - LOGICAL PACKED -C - DATA BLANKS - 1 /' '/ -C '12345678901234567890123456789012345678901234567890' - DATA VALID /'VALID '/ - DATA FROM /' '/ -C '12345678901234567890' - DATA ATIME /' / / Z '/ -C '1234567890123456' - DATA MISSG /'GM '/ - DATA MODTAB - 1 /'BATRO','NOWAV','TRAJ ', - 2 'SCM ','HOUGH','SNOW ','NGM ', - 3 'GOI ','NOW ','SMG2C','SMG3C','TOVS ','LFM ', - 4 'NMSFC','NHSFC','ECMWF','FNOC ','AFGWC','CRGN ', - 5 'WRGN ','ERGN ','SMG4 ','ROI ','SMG4I','UKMET', - 6 'SCLR ','HCN ','SMT80','QLM ','SBLND','ISENA', - 7 'SFVSB','GMEXW','GAKWV','GFS ','SA126','SM126', - 8 'BCKUP','SMT62','SSI ','NAM80','NAM32','NAM30', - 9 'RUC80','ENSMB','PWAV ','NAM '/ - DATA MONS /'JAN ','FEB ','MAR ','APR ','MAY ', - 1 'JUN ','JUL ','AUG ','SEP ','OCT ', - 2 'NOV ','DEC '/ - DATA IZ /'Z'/ - DATA MAXMOD /47/ - DATA MODNUM /01,10,18,19,22,25,39,43,44,45,46,49,53, - 1 55,56,57,58,59,60,61,62,63,64,65,66,67, - 2 68,69,70,71,72,73,74,75,76,77,78,79,80, - 3 81,83,84,85,86,87,88,89/ -C - print*,'In Gulftitle *******' - write(06,1111)chwork - 1111 format('chwork= ',Z24) - print*,'packed ',packed -C - LGULF(1:50) = BLANKS(1:50) - LGULF(51:77) = BLANKS(1:27) - IF(PACKED) THEN - ITAU = mova2i(CHWORK(4:4)) !kumar - ELSE -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_ON_COPY (ISCRATCH, CHWORK, 8_8, 1_8) - CALL GBYTE(ISCRATCH,KTIME,0,32) -#else - CALL GBYTE(CHWORK,KTIME,0,32) -#endif - ITAU = KTIME -C WRITE (0,*) 'FPDebug: ITAU =', ITAU - ENDIF -C WRITE (0,*) 'FPDebug: TIMEFG =', TIMEFG - IF (ITAU .GE. TIMEFG) THEN -C ... TEST FOR NEGATIVE NUMBER - ITAU = IOR(ITAU,MSKTIME) - ENDIF -C - print*,'In Gulftitl meanfg ',meanfg - IF (MEANFG.EQ.9) THEN - LTIME(1:4) = CHWORK(5:8) - IDAT=0 - JDAT=0 - RINC=0 - RINC(2)=36 - ICENT=1900 - IDAT(1)=mova2i(LTIME(1:1)) - IF(IDAT(1) .LT. 96) ICENT=2000 - IDAT(1)=IDAT(1)+ICENT - IDAT(2)=mova2i(LTIME(2:2)) - IDAT(3)=mova2i(LTIME(3:3)) - IDAT(5)=mova2i(LTIME(4:4)) - write(06,1112)ltime - 1112 format('ltime = ',Z4) - CALL W3MOVDAT(RINC,IDAT,JDAT) - IYEAR = JDAT(1) - MONTH = JDAT(2) - IDAY = JDAT(3) - IHOUR = JDAT(5) - ELSE - IYEAR = mova2i(CHWORK(5:5)) - ICENT = 1900 - IF (IYEAR .LT. 96) ICENT=2000 - IYEAR = ICENT + IYEAR - MONTH = mova2i(CHWORK(6:6)) - IDAY = mova2i(CHWORK(7:7)) - IHOUR = mova2i(CHWORK(8:8)) - ENDIF - - IGEN = mova2i(CHWORK(10:10)) -C - IF (IGEN .EQ. 74) IGEN = 66 -C ..... FOR UKMET - IF (LKMEAN .AND. MEANFG.NE.9) THEN - REWIND 49 - READ(49,FMT='(6X,I4,2I2)') IYEAR, MONTH, IDAY -C print *,' idt=',(idt(i),i=1,8) - IHOUR = 0 - IF (MEANFG.EQ.2.OR.MEANFG.EQ.4) IHOUR = 12 - IGEN = 76 - IF (MEANFG.EQ.3.OR.MEANFG.EQ.4) IGEN = 71 - ENDIF - IF (LKMEAN .AND. MEANFG.EQ.9) IGEN = 76 - - PRINT *, ' IGEN=', IGEN - JTIME(1)= ITAU - PRINT *, 'ICENT=', ICENT - IYR = IYEAR -C - WRITE(6,FMT='('' GULFTL: CALLING UPDATR WITH: TAU ='',I4, - 1 '' HOUR='',I3,'' DAY='',I3,'' MONTH='',I3,'' YEAR='',I5)') - 2 JTIME(1),IHOUR,IDAY,MONTH,IYR -C - CALL UPDATR -C -C MOVE CHTYPE INTO LGULF -C - LGULF(1:3) = CHTYPE(1:3) -C WRITE (0,*) 'FPDebug: LGULF(1:3) =', LGULF(1:3) -C - NUM = 2 - IF(ITAU.GE.100) NUM = 3 -C - CALL BIN2EB(ITAU,CHTEXT,NUM,'A999') -C -C MOVE TAU INTO LGULF -C - IEND = 4 + (NUM - 1) - LGULF(4:IEND) = CHTEXT(1:NUM) -C WRITE (0,*) 'FPDebug: LGULF(4:IEND) =', LGULF(4:IEND) -C - CALL BIN2EB(IVLDHR,CHTEXT,2,'A999') -C - LGULF(7:8) = CHTEXT(1:2) -C WRITE (0,*) 'FPDebug: LGULF(7:8) =', LGULF(7:8) -C -C MOVE VALID HR INTO LGULF -C - LGULF(9:9) = IZ - CALL BIN2EB(IVLDAY,CHTEXT,2,'A999') -C WRITE (0,*) 'FPDebug: LGULF(9:9) =', LGULF(9:9) -C -C MOVE VALID DAY INTO LGULF -C - LGULF(10:11) = CHTEXT(1:2) -C - DO 40 J = 1,MAXMOD -C - IF(MODNUM(J).EQ.IGEN) THEN -C -C LOAD GENERATING MODEL NAME INTO LGULF -C - LGULF(12:16) = MODTAB(J)(1:5) -C WRITE (0,*) 'FPDebug: LGULF(12:16) =', LGULF(12:16) - GO TO 70 - ELSE - ENDIF - 40 CONTINUE -C -C CLOUDN'T FIND GENNERATING MODEL IN MODTAB SO CONVERT MODEL -C NUMBER TO ASCII AND LOAD INTO MISSG -C - IF (IGEN.EQ.82) THEN - MISSG(1:3) = 'SSI' -C .... THIS QUICK FIX FOR FINAL 82 - ENDIF -C - CALL BIN2EB(IGEN,CHTEXT,2,'A999') - MISSG(4:5) = CHTEXT(1:2) -C - LGULF(12:16) = MISSG(1:5) -C -C -C - 70 CONTINUE -C - WRITE(6,FMT='('' LGULF='',A)') LGULF(1:16) -C -C NOW BUILD THE BASE TITLE LINE IE. 12Z MON 03 JUN 1996 -C - CALL DAYOWK(IDAY,MONTH,IYR,IDAYWK,IHDAYW) -C -C - CALL BIN2EB(IHOUR,CHTEXT,2,'A999') -C -C -C MOVE BASE HR INTO FROM -C - FROM(1:2) = CHTEXT(1:2) - FROM(3:3) = IZ - FROM(5:8) = IHDAYW(1:4) - CALL BIN2EB(IDAY,CHTEXT,2,'A999') - FROM(9:10) = CHTEXT(1:2) - FROM(12:15) = MONS(MONTH)(1:4) - CALL BIN2EB(IYR,CHTEXT,4,'A999') - FROM(16:19) = CHTEXT(1:4) -C - WRITE(6,FMT='('' FROM='',A)') FROM(1:20) - LGULF(17:36) = FROM(1:20) -C -C CONSTRUCT VALID TIME ARRAY IE. VALID 00Z THU 16 MAR 1989 -C - CALL DAYOWK(IVLDAY,IVLDMO,IVLDYR,IDAYWK,IHDAYW) - VALID(7:09) = LGULF(7:09) - VALID(11:13) = IHDAYW(1:4) - CALL BIN2EB(IVLDAY,CHTEXT,2,'A999') - VALID(15:16) = CHTEXT(1:2) - VALID(18:21) = MONS(IVLDMO)(1:4) - CALL BIN2EB(IVLDYR,CHTEXT,4,'A999') - VALID(22:25) = CHTEXT(1:4) - WRITE(6,FMT='('' VALID='',A)') VALID(1:28) - LGULF(37:64) = VALID(1:28) - IF(AFOS) THEN -C -C CONSTRUCT AFOS BASE TIME ARRAY IE. 03/15/00Z 1989 -C - CALL BIN2EB(MONTH,CHTEXT,2,'A999') - ATIME(1:2) = CHTEXT(1:2) - ATIME(4:5) = LGULF(25:26) - ATIME(7:9) = LGULF(17:19) - ATIME(13:16) = LGULF(32:35) - LGULF(62:77) = ATIME(1:16) - WRITE(6,FMT='('' ATIME FOR AFOS='',A)') LGULF(62:77) - ELSE - ENDIF - RETURN - END diff --git a/util/sorc/faxmakrx.fd/indeff.f b/util/sorc/faxmakrx.fd/indeff.f deleted file mode 100755 index ff7a3f274e..0000000000 --- a/util/sorc/faxmakrx.fd/indeff.f +++ /dev/null @@ -1,152 +0,0 @@ - SUBROUTINE INDEFF(FLDA,IBIG,JBIG,ISML,JSML,ISKP,JSKP,IFAC,XINDEF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: INDEFF PLACE INDEFINATES IS THE CORNERS OF FIELD -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PLACE INDEFINATES IN THE DESIRED CORNERS OF THE FIELD TO -C ELIMINATE UNIMPORTANT CONTOURS ON THE FOUR CORNERS. -C -C PROGRAM HISTORY LOG: -C 79-07-03 ORIGINAL AUTHOR HENRICHSEN -C 89-11-27 HENRICHSEN ADD NEW DOCBLOCK -C 92-07-07 HNERICHSEN CONVERT TO FORTRAN 77 -C 94-05-16 LUKE LIN MODIFY TO FIT THE PROGRAM -C 94-12-22 LUKE LIN CONVERT IT TO CFT-77. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL INDEFF(FLDA,IBIG,JBIG,ISML,JSML,ISKP,JSKP,IFAC,XINDEF) -C INPUT ARGUMENT LIST: -C IBIG - MAX SIZE I OF THE FIELD. -C JBIG - MAX SIZE J OF THE FIELD. -C ISML - SMALL SIZE I OF THE FIELD. -C JSML - SMALL SIZE J OF THE FIELD. -C ISKP - SKIP I OF THE FIELD. -C JSKP - SKIP J OF THE FIELD. -C IFAC - IFAC IS THE NUMBER OF GRID UNITS TO COME IN FROM -C - EACH CORNER AS END POINTS OF TRIANGLE TO FILL WITH -C - INDEFFINATES............. -C -C OUTPUT ARGUMENT LIST: -C FLDA - UNPACKED DATA FIELD WITH INDEFINATES -C -C REMARKS: NONE -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - REAL FLDA(IBIG,JBIG) - REAL XINDEF -C -C -C . . . SET LIMITS OF LOOP TO DO LOWER LEFT CORNER ............ -C - PRINT 98, xindef - 98 format(1x,' in indef, xindef=', 2x, z16) -C - print *, 'xindef=', xindef - print *,' big/sml=', ibig,jbig,isml,jsml - print *,' skp/fax=', iskp,jskp,ifac - JSTART = JSKP + 1 - JEND = JSKP + IFAC + 1 - IEND = ISKP + IFAC + 1 - ISTART = ISKP + 1 -C - DO 40 J=JSTART,JEND - DO 30 I=ISTART,IEND - FLDA(I,J) = XINDEF - 30 CONTINUE - IEND = IEND -1 - 40 CONTINUE -C . . . DO LOWER RIGHT CORNER . . .. -C - ISTART = ISML + ISKP - IFAC - IEND = ISML + ISKP - DO 55 J=JSTART,JEND - DO 50 I=ISTART,IEND - FLDA(I,J) = XINDEF - 50 CONTINUE - ISTART = ISTART + 1 - 55 CONTINUE -C -C . . . DO UPPER LEFT CORNER . . . . -C - ISTART = 1 + ISKP - IEND = 1 + ISKP - JEND = JSML + JSKP - JSTART = JSML - IFAC + JSKP - DO 75 J=JSTART,JEND - DO 70 I=ISTART,IEND - FLDA(I,J) = XINDEF - 70 CONTINUE - IEND = IEND + 1 - 75 CONTINUE -C -C . . . DO UPPER RIGHT CORNER . . . . . . . . . . . ...... -C - ISTART = ISML + ISKP - IEND = ISML + ISKP - JEND = JSML + JSKP - JSTART = JSML - IFAC + JSKP - DO 90 J=JSTART,JEND - DO 80 I=ISTART,IEND - FLDA(I,J) = XINDEF - 80 CONTINUE - ISTART = ISTART - 1 - 90 CONTINUE -C -C...... DO BOTTOM PART -C - ISTART = 1 - IEND = IBIG - JSTART = 1 - JEND = JSKP - DO 110 J=JSTART, JEND - DO 100 I=ISTART, IEND - FLDA(I,J) = XINDEF - 100 CONTINUE - 110 CONTINUE -C -C...... DO UPPER PART -C - ISTART = 1 - IEND = IBIG - JSTART = JSKP + JSML + 1 - IF (JSTART .LE. JBIG) THEN - JEND = JBIG - DO 130 J=JSTART, JEND - DO 120 I=ISTART, IEND - FLDA(I,J) = XINDEF - 120 CONTINUE - 130 CONTINUE - ENDIF -C -C...... DO LEFT-SIDE PORTION -C - ISTART = 1 - IEND = ISKP - JSTART = 1 - JEND = JBIG - DO 150 I=ISTART, IEND - DO 140 J=ISTART, JEND - FLDA(I,J) = XINDEF - 140 CONTINUE - 150 CONTINUE -C -C...... DO RIGHT-SIDE PORTION -C - ISTART = ISKP + ISML + 1 - IF (ISTART .LE. IBIG) THEN - IEND = IBIG - JSTART = 1 - JEND = JBIG - DO 170 I=ISTART, IEND - DO 160 J=JSTART, JEND - FLDA(I,J) = XINDEF - 160 CONTINUE - 170 CONTINUE - ENDIF - RETURN - END diff --git a/util/sorc/faxmakrx.fd/indfsea.f b/util/sorc/faxmakrx.fd/indfsea.f deleted file mode 100755 index efcdf2e15a..0000000000 --- a/util/sorc/faxmakrx.fd/indfsea.f +++ /dev/null @@ -1,178 +0,0 @@ - SUBROUTINE INDFSEA(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: INDFSEA TO INDEF THE OCEAN AREA BY A LAND-SEA FLD -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO INDEF THE OCEAN AREA BY A LAND-SEA FLD. -C -C PROGRAM HISTORY LOG: -C 97-04-22 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ADDED A BLOCK DATA. -C -C USAGE: CALL INDFSEA(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C INPUT ARGUMENTS: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C IBIG - I-DIMENSION OF BIGFLD. -C JBIG - J-DIMENSION OF BIGFLD. -C IDIM - I-DIMENSION OF THE ORIGINAL SMLFLD. -C JDIM - J-DIMENSION OF THE ORIGINAL SMLFLD. -C -C OUTPUT ARGUMENT LIST: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C - COMMON/SEA/ SAN(53,57) - INTEGER SAN -C INTEGER XAN(53,57) -C INTEGER ZAN(53,57) -C - INTEGER LAN(209,225) -C INTEGER LAN(31,21) -C - REAL FLDIN(IBIG,JBIG) - REAL XINDEF -C -C DATA ISKIP /15/ -C DATA JSKIP / 8/ -C DATA ISKIP /16/ -C DATA JSKIP / 7/ -C DATA XINDEF /-1.0E2465 / - DATA LAN - 1 /209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 2 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 3 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 4 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 5 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 6 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 7 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 8 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 9 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - A 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - B 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - x 160*0,7*1,42*0, 158*0,10*1,41*0, 157*0,12*1,40*0, - x 156*0,14*1,39*0, 156*0,14*1,39*0, 156*0,13*1,40*0, - x 156*0,12*1,41*0, 156*0,12*1,41*0, 156*0,12*1,41*0, !119 - x 71*0, 97*1,41*0, 71*0, 97*1,41*0, 71*0, 98*1,40*0, - x 71*0, 99*1,39*0, 71*0,100*1,38*0, 71*0,100*1,38*0, - x 71*0, 99*1,39*0, 71*0, 98*1,40*0, 70*0, 98*1,41*0, !128 - x 69*0, 99*1,41*0, 69*0, 98*1,42*0, 69*0, 98*1,42*0, - x 69*0, 97*1,43*0, 68*0, 98*1,43*0, 68*0, 97*1,44*0, - x 68*0, 97*1,44*0, 67*0, 99*1,43*0, 67*0, 99*1,43*0, !137 - x 67*0,100*1,42*0, 67*0,100*1,42*0, 67*0,101*1,41*0, - x 67*0,101*1,41*0, 67*0,101*1,41*0, 67*0,102*1,40*0, - x 67*0,102*1,40*0, 67*0,103*1,39*0, 67*0,103*1,39*0, !146 - x 67*0,102*1,40*0, 67*0,102*1,40*0, 67*0,101*1,41*0, - x 67*0,101*1,41*0, 67*0,100*1,42*0, 67*0,100*1,42*0, - x 68*0, 98*1,43*0, 68*0, 98*1,43*0, 69*0, 96*1,44*0, !155 - x 69*0, 96*1,44*0, 69*0, 95*1,45*0, 69*0, 95*1,45*0, - x 69*0, 94*1,46*0, 70*0, 93*1,46*0, 70*0, 94*1,45*0, - x 71*0, 93*1,45*0, 72*0, 93*1,44*0, 73*0, 92*1,44*0, !164 - x 73*0, 93*1,43*0, 74*0, 93*1,42*0, 74*0, 94*1,41*0, - x 75*0, 94*1,40*0, 76*0, 94*1,39*0, 77*0, 94*1,38*0, - x 78*0, 94*1,37*0, !171 - x 79*0, 94*1,36*0, 80*0, 68*1,13*0,12*1,36*0, - x 81*0, 66*1,14*0,12*1,36*0, 82*0, 64*1,15*0,11*1,36*0, - x 83*0, 63*1,16*0,11*1,36*0, 102*0,35*1,26*0,10*1,36*0, - x 102*0,31*1,31*0, 9*1,36*0, 102*0,30*1,32*0, 8*1,37*0, !179 - x 103*0,28*1,78*0, 104*0,26*1,79*0, 115*0,14*1,80*0, - x 116*0,13*1,80*0, 116*0,13*1,80*0, 117*0,12*1,80*0, !185 - x 117*0,12*1,80*0, 118*0,11*1,80*0, 118*0,11*1,80*0, - 2 209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 3 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 4 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 5 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 6 1*0/ ! This poor guy was left out ..... kumar -C - PRINT *, ' IDIM=', IDIM, ' JDIM=',JDIM - PRINT *, ' IBIG=', IBIG, ' JBIG=',JBIG -C - DO I=1, IBIG - DO J=1, JBIG - IF( LAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO -C -C DO J=1,225 -C PRINT *,' J=', J -C WRITE(*,140)(NINT(FLDIN(M,J)),M=1,209) -C ENDDO -C140 format( 5(1x,30(f1.0, 1x),/), 27(f1.0,1x),/) -C140 format( 5(40(1x, i1),/), 9( 1x,i1),/) -C -C -C DO I=1, 53 -C DO J=1, 57 -C XAN(I,J) = 0 -C SAN(I,J) = 0 -C ENDDO -C ENDDO -C -C DO I=1, 53 -C IK= (I-1)*4+1 -C DO J=1, 57 -C JK= (J-1)*4+1 -C INUM = 0 -C DO M= IK, IK+3 -C DO N=JK, JK+3 -C INUM=INUM+LAN(M,N) -C ENDDO -C ENDDO -C IF (INUM.GT.5) XAN(I,J)=1 -C ENDDO -C ENDDO -C -C -C CALL UPDOWN(XAN,ZAN,53,57) -C -C DO I=2,53 -C DO J=1,55 -C SAN(I,J) = ZAN(I-1, J+2) -C ENDDO -C ENDDO -C - DO J=1,57 - PRINT *,' J=', J - WRITE(*,150)(SAN(M,J),M=1,53) - ENDDO - 150 format( 3(10(1x, i1),3x),/, 2(10( 1x,i1),3x),3(1x,i1),/) -C - RETURN - END -ckumar -ckumar####################block data indfsea_data -ckumar - BLOCK DATA INDFSEA_DATA -C - COMMON/SEA/ SAN(53,57) - INTEGER SAN -C - DATA SAN / - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 29*0, 4*1, 8*0, 3*1, 9*0, 29*0, 4*1, 8*0, 3*1, 9*0, - X 28*0, 5*1, 7*0, 4*1, 9*0, 28*0, 5*1, 7*0, 4*1, 9*0, !10 - X 27*0, 7*1, 6*1, 4*1, 9*0, 21*0, 17*1, 3*0, 3*1, 9*0, - X 20*0,24*1, 9*0, 19*0, 24*1, 10*0, !14 - X 19*0,23*1, 11*0, 18*0, 24*1, 11*0, - X 18*0,24*1, 11*0, 18*0, 25*1, 10*0, !18 - X 18*0,25*1, 10*0, 18*0, 26*1, 9*0, - X 18*0,26*1, 9*0, 18*0, 26*1, 9*0, !22 - X 18*0,26*1, 9*0, 18*0, 25*1, 10*0, !24 - X 19*0,24*1, 10*0, 19*0, 24*1, 10*0, - X 19*0,25*1, 9*0, 40*0, 3*1, 10*0, !28 - X 40*0, 4*1, 9*0, 41*0, 2*1, 10*0, !30 - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0/ -C - END BLOCK DATA INDFSEA_DATA diff --git a/util/sorc/faxmakrx.fd/indfslfm.f b/util/sorc/faxmakrx.fd/indfslfm.f deleted file mode 100755 index 7facaf9239..0000000000 --- a/util/sorc/faxmakrx.fd/indfslfm.f +++ /dev/null @@ -1,166 +0,0 @@ - SUBROUTINE INDFSLFM(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: INDFSLFM TO SET UNDEFINED ON POLE AREA FOR TYPE 5 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO SET UNDEFINED ON POLE AREA FOR TYPE 5 ACCORDING TO INPUT -C BIT MAP FROM GETGB. -C -C PROGRAM HISTORY LOG: -C 97-07-11 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C 1999-12-20 KRISHNA KUMAR KBMS VALUE SHOULD BE SET TO LOGICAL*1 -C -C USAGE: CALL INDFSLFM(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C INPUT ARGUMENTS: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C IBIG - I-DIMENSION OF BIGFLD. -C JBIG - J-DIMENSION OF BIGFLD. -C IDIM - I-DIMENSION OF THE ORIGINAL SMLFLD. -C JDIM - J-DIMENSION OF THE ORIGINAL SMLFLD. -C -C OUTPUT ARGUMENT LIST: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C - COMMON /BITM/ KBMS(66000) - LOGICAL*1 KBMS -C - COMMON/SEA/ SAN(53,57) - INTEGER SAN -C - INTEGER ZAN(3021) - INTEGER ZSAN(53,57) - EQUIVALENCE (ZAN(1),ZSAN(1,1)) -C - INTEGER LAN(209,225) -C - REAL FLDIN(IBIG,JBIG) - REAL XINDEF -C -C DATA LAN -C 1 /209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, -C 2 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, -C 3 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, -C 4 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, -C 1 209*1,209*1, -C 2 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 3 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 4 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 5 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 6 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 7 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 8 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 9 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C A 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 1 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 2 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 3 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 4 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 5 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 6 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 7 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 8 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C 9 209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1,209*1, -C A 209*1,209*1,209*1/ -C -C DATA SAN / -C X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*1, 53*1, -C X 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, -C X 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, -C X 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, -C X 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, -C X 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1, 53*1/ -C - PRINT *, ' IN SUBROUTINE - INDFSLFM FOR TYPE 5' - PRINT *, ' IDIM=', IDIM, ' JDIM=',JDIM - PRINT *, ' IBIG=', IBIG, ' JBIG=',JBIG -C - DO I=1, 3021 - IF (KBMS(I)) THEN - ZAN(I) = 1 - ELSE - ZAN(I) = 0 - ENDIF - ENDDO - print *, "ipgm indslfm, ichk=1" -C .... LOAD THE BIT MAP - DO I=1, 53 - DO J=1, 57 - SAN(I,J) = 0 - ENDDO - ENDDO - print *, "ipgm indslfm, ichk=2" -C ... INITIALIZE THE LABEL GRID - DO I=1, 53 - DO J=2, 57 - IF (ZSAN(I,J) .EQ. 1) SAN(I,J-1) = 1 - ENDDO - ENDDO - print *, "ipgm indslfm, ichk=3" -C .... SET THE BIT MAP ACCORDINGLY - DO I=1, IBIG - DO J=1, JBIG - LAN(I,J) = 1 - ENDDO - ENDDO - print *, "ipgm indslfm, ichk=4" -C ...... INITIALIZE THE CONTOUR GRID -C - DO I=1, 53 - DO J=1, 57 - IF (ZSAN(I,J) .EQ.0) THEN - IIS = 4 * (I -1) -6 - IF (IIS .LT. 1) IIS = 1 - IIE = 4 * I + 6 - IF (IIE .GT. 209) IIE = 209 - IJE = 228 - (4 * (J -1) +1)+5 - IF (IJE .GT. 225) IJE = 225 - IJS = 228 - (4 * J) -5 - IF (IJS .LT. 1) IJS = 1 -C PRINT *, ' UNDEFINE: I=', I,' J=',J -C PRINT *, ' IIS=', IIS,' IIE=',IIE, ' IJS=',IJS,' IJE=',IJE - DO IK= IIS, IIE - DO JL=IJS, IJE - LAN(IK,JL) = 0 - ENDDO - ENDDO - ENDIF - ENDDO - ENDDO - print *, "ipgm indslfm, ichk=5" -C .... LOAD THE BIT MAP - DO I=1, IBIG - DO J=1, JBIG - IF( LAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO - print *, "ipgm indslfm, ichk=5" -C .... SET UNDEFINED ON THE INPUT GRID ACCORDING TO BIT MAP -C DO J=1,225 -C PRINT *,' J=', J -C WRITE(*,140)(NINT(FLDIN(M,J)),M=1,209) -C ENDDO -C140 format( 5(1x,30(f1.0, 1x),/), 27(f1.0,1x),/) -C140 format( 5(40(1x, i1),/), 9( 1x,i1),/) -C -C -C DO J=1,57 -C PRINT *,' J=', J -C WRITE(*,150)(SAN(M,J),M=1,53) -C ENDDO - 150 format( 3(10(1x, i1),3x),/, 2(10( 1x,i1),3x),3(1x,i1),/) -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/indftraj.f b/util/sorc/faxmakrx.fd/indftraj.f deleted file mode 100755 index 6a79fa08d9..0000000000 --- a/util/sorc/faxmakrx.fd/indftraj.f +++ /dev/null @@ -1,145 +0,0 @@ - SUBROUTINE INDFTRAJ(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: INDFTRAJ TO INDEF THE OCEAN AREA BY A LAND-SEA FLD -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO INDEF THE OCEAN AREA BY A LAND-SEA FLD TRAJECTORY. -C -C PROGRAM HISTORY LOG: -C 97-06-16 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL INDFTRAJ(FLDIN,IDIM,JDIM,NDIV,IBIG,JBIG,XINDEF) -C INPUT ARGUMENTS: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C IBIG - I-DIMENSION OF BIGFLD. -C JBIG - J-DIMENSION OF BIGFLD. -C IDIM - I-DIMENSION OF THE ORIGINAL SMLFLD. -C JDIM - J-DIMENSION OF THE ORIGINAL SMLFLD. -C -C OUTPUT ARGUMENT LIST: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C - COMMON/TRAJ4/ ZAN(53,57) - INTEGER ZAN - INTEGER TRAJLAN(53,57) - INTEGER TRAJ48(53,57) -C - INTEGER LAN(209,225) -C - REAL FLDIN(IBIG,JBIG) - REAL XINDEF -C - DATA LAN - 1 /209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 2 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 3 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 4 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 5 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 6 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 7 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 8 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 9 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - A 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 1 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 2 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 3 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 4 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 5 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 6 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 7 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 8 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 9 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - A 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 1 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 2 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 3 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 4 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 5 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 6 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 7 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 8 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 9 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - A 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 1 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 2 65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0,65*0,105*1,39*0, - 1 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 2 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 3 209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0,209*0, - 4 209*0,209*0,209*0,209*0,209*0,209*0,209*0/ -C - DATA TRAJLAN/ - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, 16*0,27*1,10*0, - X 16*0,27*1,10*0, 16*0,27*1,10*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0/ -C - DATA TRAJ48 / - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, - X 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, - X 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, - X 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, - X 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, 17*0,25*1,11*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, - X 53*0, 53*0, 53*0, 53*0, 53*0, 53*0, 53*0/ -C - PRINT *, ' IDIM=', IDIM, ' JDIM=',JDIM - PRINT *, ' IBIG=', IBIG, ' JBIG=',JBIG -C - DO I=1, IBIG - DO J=1, JBIG - IF( LAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO -C -C DO J=1,225 -C PRINT *,' J=', J -C WRITE(*,140)(NINT(FLDIN(M,J)),M=1,209) -C ENDDO -C140 format( 5(1x,30(f1.0, 1x),/), 27(f1.0,1x),/) -C140 format( 5(40(1x, i1),/), 9( 1x,i1),/) -C -C - IF (KEYIDX.EQ.48) THEN - DO J=1,57 - DO I =1,53 - ZAN(I,J) =TRAJ48(I,J) - ENDDO - ENDDO - ELSE - DO J=1,57 -C PRINT *,' J=', J -C WRITE(*,150)(ZAN(M,J),M=1,53) - DO I =1,53 - ZAN(I,J) =TRAJLAN(I,J) - ENDDO - ENDDO - ENDIF - 150 format( 3(10(1x, i1),3x),/, 2(10( 1x,i1),3x),3(1x,i1),/) -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/iw3getv.F b/util/sorc/faxmakrx.fd/iw3getv.F deleted file mode 100755 index 7f9df5bc7b..0000000000 --- a/util/sorc/faxmakrx.fd/iw3getv.F +++ /dev/null @@ -1,1057 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif - SUBROUTINE IW3GETV(LUGRBIX, LUGRB, LABEL, FLD, MTITLE, IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: IW3GETV GET AND UNPACK CRAY GRIB FILES. -C AUTHOR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: GET AND UNPACK CRAY GRIB FILES FROM AN OFFICE 84 6 WORD ID. -C PLEASE READ THE REMARKS BEFORE USING IT. -C -C HISTORY LOG: -C 95-10-04 LUKE LIN -C 95-10-31 LUKE LIN MODIFY FOR TESTING DIFFERENT GRID TYPE. -C 95-11-27 LUKE LIN ADD AN OPTION FOR NOT TEST FCST HOUR -- CAC 96H/C -C AND MODIFY TO READ RGL(NGM) MODEL. -C 96-01-30 LUKE LIN MODIFY TO CONVERT FROM 1 DEGREE TO 65*65 BY LINEAR. -C 96-02-14 LUKE LIN MODIFY FOR NGM BOUNDARY LAYER RH CHART. -C 96-02-23 LUKE LIN MODIFY FOR NGM SURFACE TO 500 MB LIFTED INDEX. -C 96-02-26 LUKE LIN MODIFY FOR AVMER OR AVPOLAR AND OUTPUT WILL BE -C EITHER 2.5 OR 5.0 DEGREE DEPENDING ON OPTION -C 96-03-07 LUKE LIN MODIFY FOR NGM SUPER C GRID. -C 96-03-29 LUKE LIN MODIFY FOR AVPOLAR 2.5 DEGREE TO GET NH. -C 96-04-25 LUKE LIN FIX A BUG FOR AVTYPE. -C 96-05-31 LUKE LIN MODIFY FOR TYPE 29 NH 2.5 AND TYPE 30 SH 2.5. -C 96-06-20 LUKE LIN CHANGE FOR NAM LIFTED INDEX -C 96-07-05 LUKE LIN ADD GFS 129*129 LOGIC. -C 96-07-09 LUKE LIN ADD IPOLATE OPTIONS. -C 96-10-01 LUKE LIN ADD TYPE 08, 116X44, AND TYPE 53, 117X51. -C 97-01-08 LUKE LIN ADD TYPE 05, 53X57. -C 97-01-15 LUKE LIN ADD FOR MODEL FINAL. -C 97-03-12 LUKE LIN ADD FOR ECMWF, TDL PROB. THUNER/SERVERE WX, -C GFS 6-10 DAY MEAN DN, UKMET -C 97-03-21 LUKE LIN ADD FOR GFS ANOMALY THICKNESS. -C 97-06-03 LUKE LIN MODIFY FOR NAM BOUNDARY LAYER FIELDS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. MODIFIED TO READ 700 MB UKMET -C REL HUM (RH) DATA. -C 1999-12-20 KRISHNA KUMAR KBMS VALUES SHOULD BE SET TO LOGICAL*1 -C -C INPUT ARGUMENTS: -C LUGRBIX - AN UNIT NUMBER POINTS TO ONE DEGREE GRIB INDEX FILE. -C LUGRB - AN UNIT NUMBER POINTS TO ONE DEGREE GRIB FILE. SEE -C REMARK. -C LABEL - 12 WORDS LABEL ON INPUT. WORDS 1-5 SHOULD CONTAIN -C LABEL ID OF DESIRED FIELD FLD. -C -C OUTPUT ARGEMENTS: -C FLD -- BUFF CONTAINS UNPACK FIELD. -C LABEL -- ON OUTPUT THE FULL 12 WORDS OF THE LABEL WILL CONTAIN -C APPROPRIATE VALUES. -C MTITL -- CHARACTER*132 MAP TITLE FROM INDEX FILE. -C (1:86) IS MAP TITLE, FOLLOWINGS ARE MAP ID. -C IERR -- RETURN STATUS -C IRETUR - RETURN CONDITION; -C 0 - ALL OK -C 1 - W3FP13/GRIB BLOCK 0 NOT CORRECT -C 2 - W3FP13/LENGTH OF PDS NOT CORRECT -C 3 - W3FP13/COULD NOT MATCH TYPE INDICATOR -C 4 - W3FP13/GRID TYPE NOT IN TABLES -C 5 - W3FP13/COULD NOT MATCH TYPE LEVEL -C 6 - W3FP13/COULD NOT INTERPRET ORIGINATOR OF CODE -C 7 - GRIB TYPE ERROR -- UNKNOWN GRIB TYPE. -C 10 - UNCOGNIZE DATA TYPE FROM LABEL -C 11 - W3FT32/ MAPIN NOT RECOGNIZED -C 12 - W3FT32/ MAPOUT NOT RECOGNIZED -C 13 - W3FT32/ PARTICULAR POLA MAPOUT NOT RECOGNIZED -C 14 - W3FT32/ PARTICULAR LOLA MAPOUT NOT RECOGNIZED -C 15 - W3FT32/ PARTICULAR LOLA MAPIN NOT RECOGNIZED -C 16 - W3FT32/ PARTICULAR POLA MAPOUT NOT RECOGNIZED -C 17 - W3FT32/ PARTICULAR LOLA MAPIN NOT RECOGNIZED -C 18 - W3FT32/ PARTICULAR LOLA MAPOUT NOT RECOGNIZED -C 96 - GETGB/ERROR READING INDEX FILE -C 97 - GETGB/ERROR READING GRIB FILE -C 98 - GETGB/NUMBER OF DATA POINTS GREATER THAN JF -C 99 - GETGB/REQUEST NOT FOUND -C -1 - GETGB/OTHER W3FI63 GRIB UNPACKER RETURN CODE -C 101 - W3FP11/NON-FATAL ERROR, MTITLE NOT CORRECT -C -C USAGE: -C INPUT FILES: -C UNIT LUGRBIX - INPUT ONE DEGREE GRIB INDEX FILE. SEE REMARK. -C UNIT LUGRB - INPUT ONE DEGREE GRIB FILE. SEE REMARK. -C -C OUTPUT FILES: -C FT06F001 - PRINT OUTPUT (STANDARD FORTRAN OUTPUT FILE) -C -C SUBPROGRAMS CALLED: -C UNIQUE: NONE -C -C LIBRARY: -C SPECIAL - NONE -C W3LIB - W3FP11 , W3FP13, GETGB , GBYTES , W3FM08 -C - W3FI63 , W3FT43V,W3FT32, SBYTES -C -C REMARKS: -C ***** VERY IMPORTANT ****** -C 1. ONLY DEAL WITH INPUT DATA TYPE 08, 26, 27 , 29, 30, 53, 101, 104. -C OTHER DATA TYPE MAY HAVE FATAL ERROR RETURN AT PRESENT TIME. -C 2. CONCERNING NAM CHARTS, THE 6TH WORD ID SHOULD BE '00000127'. -C 3. CONCERNING GFS CHARTS, THE 6TH WORD ID SHOULD BE '0000084D'. -C 4. FOR NO FORECAST HOUR CHECKING SUCH AS CAC 96H/C, THE THIRD BYTE -C OF THE 6TH WORD ID SHOULD BE '96'. -C -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C -C .... THIS SET IS FOR UOR_DOT - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI - LOGICAL UORFG -C -C - PARAMETER (IPTS=65160,II=360,JJ=181,MM=361) - PARAMETER (IPTS2=10512,II2=144,JJ2=73) - PARAMETER (MXSIZE=66000) - PARAMETER (MXSIZ2=MXSIZE*2) - PARAMETER (IIK=289,JJK=145,NPTS=IIK*JJK) - PARAMETER (IJK=145,LJK=73,MPTS=IJK*LJK) -C - parameter(ji=360*181,ig27=27,jo27=65*65,jo27_129=129*129) - parameter(ig26=6) - parameter(ig28=28) - parameter(ig08=08,jo08=116*44) - parameter(ig53=53,jo53=117*51) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_27(jo27),rlon_27(jo27) - equivalence( rlat_27(1), rlat_03(1) ) - equivalence( rlon_27(1), rlon_03(1) ) - logical lo_27(jo27) - equivalence( lo_27(1), lo_03(1) ) -C - real rlat_27_129(jo27_129),rlon_27_129(jo27_129) - equivalence( rlat_27_129(1), rlat_03(1) ) - equivalence( rlon_27_129(1), rlon_03(1) ) - logical lo_27_129(jo27_129) - equivalence( lo_27_129(1), lo_03(1) ) -C - real rlat_08(jo08),rlon_08(jo08) - equivalence( rlat_08(1), rlat_03(1) ) - equivalence( rlon_08(1), rlon_03(1) ) - logical lo_08(jo08) - equivalence( lo_08(1), lo_03(1) ) -C - real rlat_53(jo53),rlon_53(jo53) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(jo53) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - COMMON /PDSCOM/ IFWPDS - INTEGER IFWPDS(27) - - INTEGER KGDSO(22) - CHARACTER GDSO(42) - INTEGER LENGDS - REAL DIF,SMLNO -C -C - INTEGER LUGI,LUGRBIX - INTEGER LUGB,LUGRB - INTEGER LABEL(12) - REAL FLD(*) - REAL B129(16900) - CHARACTER * 132 MTITLE - INTEGER IERR - INTEGER IRET - INTEGER ITAU -C - REAL C(MXSIZE) - COMMON /BITM/ KBMS(66000) - LOGICAL*1 KBMS -C - REAL CC(II,JJ) - REAL CC2(II2,JJ2) - REAL D(MXSIZE) - REAL DD(361,181) - REAL D2(MXSIZE) - REAL DD2(145,73) - REAL DD2N(145,37) - REAL DD2N1(5365) - REAL EE(4225) - REAL FF(4225) - REAL BLOLA(NPTS), CLOLA(MPTS) - REAL GG(73,37) - REAL GG2(2701) -C - INTEGER IGRIB(16500) - CHARACTER * 1 GRIB(MXSIZ2) -C - INTEGER IPDS(4) - INTEGER JPDS(4) - INTEGER JGDS(100) - INTEGER MPDS(25) - INTEGER KGDS(100) - INTEGER KPDS(25) - CHARACTER * 1 PDS(28) - CHARACTER * 1 PDSL(28) -C -C - CHARACTER*1 CTEMP(8) - INTEGER ITEMP - INTEGER NTEMP -C - INTEGER LIDREC(6) - CHARACTER*8 CGRIB - INTEGER IMODE -C - INTEGER LABELP(6) - CHARACTER*1 CLABELP(48) - EQUIVALENCE (LABELP(1),CLABELP(1)) -C - CHARACTER*1 IFLAG - CHARACTER*1 IDPDSC(28) - INTEGER*8 IDPDS(4) - INTEGER MODELNH - INTEGER SFCMEANRH - INTEGER MSK1, MSK2, MSK3, MSK4 - INTEGER MSK2F -C - INTEGER MSKNH, MSKNGM, MSK25, MSKFNL, MSKTRAJ - INTEGER TRAJVD - INTEGER ITYPE, IMODEL, FLAG - INTEGER CAC96HC - INTEGER GFS97HC - INTEGER GFS98TK - INTEGER BLRHHDS - INTEGER BLRHGRB - INTEGER MSKFFFF - INTEGER MSK0FFF - INTEGER LFTFLG - INTEGER AVPOLRV - INTEGER AVTYPE - INTEGER ETAMOD - INTEGER ETABOUND - INTEGER MSKECMWF - DATA MSKECMWF /Z'000000000000004B'/ - INTEGER MSKTHUND - DATA MSKTHUND /Z'00000000000000C1'/ - INTEGER MSKUK - DATA MSKUK /Z'000000000000004A'/ - INTEGER MSKUK1 - DATA MSKUK1 /Z'000000000000007D'/ -C -C MSKUK1 HAS BEEN SPECIFICALLY DEFINED TO PLOT 700 MB REL HUM -C WITH UK MET DATA -C - SAVE -C - EQUIVALENCE (C(1),CC(1,1),CC2(1,1)) - EQUIVALENCE (D(1),DD(1,1)) - EQUIVALENCE (D2(1),DD2(1,1)) - EQUIVALENCE (DD2N1(1),DD2N(1,1)) - EQUIVALENCE (GRIB(1),IGRIB(1)) - EQUIVALENCE (IPDS(1),PDS(1)) - EQUIVALENCE (JPDS(1),PDSL(1),IGRIB(2)) - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (IDPDSC(1),IDPDS(1)) - EQUIVALENCE (GG2(1),GG(1,1)) -C - DATA MODELNH /Z'00000000034E0000'/ - DATA SFCMEANRH /Z'0000000005809100'/ - DATA MSK1 /Z'00000000FFFFFF00'/ - DATA MSK2 /Z'00000000000000FF'/ - DATA MSK3 /Z'000000000000FFFF'/ - DATA MSK4 /Z'0000000000FF0000'/ - DATA MSKNH /Z'000000000000084D'/ - DATA MSKNGM /Z'0000000000000127'/ - DATA MSKTRAJ /Z'00000000000000C0'/ - DATA TRAJVD /Z'0290000000000000'/ - DATA MSKFNL /Z'0000000000000052'/ - DATA MSK25 /Z'0000000000000A87'/ - DATA CAC96HC /Z'0000000000960000'/ - DATA GFS97HC /Z'0000000000970000'/ - DATA GFS98TK /Z'0000000000980000'/ - DATA BLRHHDS /Z'346C006400000000'/ - DATA BLRHGRB /Z'346B265F00000000'/ - DATA MSKFFFF /Z'FFFFFFFF00000000'/ - DATA MSK0FFF /Z'00FFFFFF00000000'/ - DATA LFTFLG /Z'8365326400000000'/ - DATA AVPOLRV /Z'0000000000990000'/ - DATA ETAMOD /Z'0000000000800000'/ - DATA ETABOUND /Z'006C616400000000'/ - DATA AVTYPE / 130 / - DATA MSK2F /Z'FFFF000000000000'/ -C -C*********************************************************************** -C -C - IRET = 0 - IERR = 0 - LUGI = LUGRBIX - LUGB = LUGRB -C - WRITE(6,224)(LABEL(I),I=1,12) -C - ITYPE = IAND(LABEL(5),MSK2) - IFCSTHR = IAND(LABEL(1),MSK2) - PRINT *, ' ITYPE=', ITYPE - IMODEL = IAND(LABEL(6),MSK3) - FLAG = IAND(LABEL(6),MSK4) -C -C if (itype .eq. avtype) then -C print *, ' got a avpolrv or avmerv data type....' -C endif -C - IF (FLAG.EQ.AVPOLRV .OR. FLAG.EQ.ETAMOD) THEN - LABEL(6) = IAND(LABEL(6),MSK3) - ENDIF -C - IF (IMODEL .EQ. MSKNH) THEN - LABEL(7) = 0 - LABEL(8) = MODELNH - IF (FLAG .NE. 0) LABEL(6) = MSKNH - ELSE IF (IMODEL .EQ. MSKNGM) THEN - LABEL(6) = 0 - LABEL(7) = 0 - LABEL(8) = 39 - ELSE IF (IMODEL .EQ. MSKFNL) THEN - LABEL(6) = 0 - LABEL(7) = 0 - ELSE IF (IMODEL .EQ. MSK25) THEN - LABEL(7) = 0 - LABEL(8) = MODELNH - IF (FLAG .NE. 0) LABEL(6) = MSK25 - ENDIF -C -#if defined (_LITTLE_ENDIAN) - CALL SBYTESCCS(LABELP,LABEL,0,32,0,8) -#else - CALL SBYTES(LABELP,LABEL,0,32,0,8) -#endif -C ..... PACK 8-WORD ID TO 4-WORD CRAY ID - IFLAG = CHAR(128) -C .... 128 FOR GDS, 64 FOR BITMAP, 192 FOR BOTH - ICENT = 20 - ISCALE = 0 - CALL W3FP12(LABELP, IFLAG, IDPDSC, ICENT, ISCALE, IERR) -C .... CONVERT OFFICE 84' ID TO PDS ..... - IF (IERR .NE. 0) THEN - IF (IMODEL .EQ. MSKTRAJ) THEN - PRINT *, ' ** RETURN FROM W3FP12 =', IERR - PRINT *, ' PASS THIS TRAJETORY ID' - IERR = 0 - ELSE - PRINT *, ' **FATAL RETURN FROM W3FP12 =', IERR - WRITE(6,224)(LABEL(I),I=1,12) - WRITE(6,226)(LABELP(I),I=1,4) - WRITE(6,227)(IDPDS(I),I=1,4) - GO TO 999 - ENDIF - ENDIF -C - WRITE(6,224)(LABEL(I),I=1,12) - 224 FORMAT(1X,'LABEL=',/,2(1X,6(Z16,1X),/)) - WRITE(6,226)(LABELP(I),I=1,4) - 226 FORMAT(1X,'LABELP=',/,(1X,4(Z16,1X),/)) - WRITE(6,227)(IDPDS(I),I=1,4) - 227 FORMAT(1X,'IDPDS=',/,(1X,4(Z16,1X),/)) - IF (IMODEL .EQ. MSKNH) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(78) - IDPDSC(7) = CHAR(03) - IF (IFCSTHR.GT.168) IDPDSC(7)= CHAR(02) -#if defined (_LITTLE_ENDIAN) - ISCRATCH = IDPDS(2) - CALL SWAP_BYTES_IN_PLACE (ISCRATCH, 8_8, 1_8) - ITEMP = IAND (ISCRATCH, MSKFFFF) -#else - ITEMP = IAND(IDPDS(2),MSKFFFF) -#endif - IF (FLAG .EQ. CAC96HC) THEN - print *, ' **try to read cac blend grib' - IDPDSC(6) = CHAR(80) - IDPDSC(7) = CHAR(27) - IDPDSC(8) = CHAR(192) - IF (IDPDSC(9).EQ.CHAR(210).AND. - 1 IDPDSC(10).EQ.CHAR(100)) THEN - IDPDSC(9) = CHAR(27) - ENDIF - ELSE IF (FLAG .EQ. GFS97HC) THEN - print *, ' **try to read gfs blend grib' - IDPDSC(6) = CHAR(80) - IDPDSC(7) = CHAR(02) - IDPDSC(8) = CHAR(128) - IF (IDPDSC(9).EQ.CHAR(210).AND. - 1 IDPDSC(10).EQ.CHAR(100)) THEN - IDPDSC(9) = CHAR(27) - ENDIF - ELSE IF (FLAG .EQ. GFS98TK) THEN - print *, ' **try to read gfs THK ' - IDPDSC(6) = CHAR(80) - IDPDSC(7) = CHAR(03) - IDPDSC(8) = CHAR(128) - IF (IDPDSC(9).EQ.CHAR(210).AND. - 1 IDPDSC(10).EQ.CHAR(100)) THEN - IDPDSC(9) = CHAR(27) - ENDIF - ELSE IF (ITYPE.EQ.27 .AND. ITEMP.EQ.LFTFLG) THEN - PRINT *,' **GET GFS 500 LIFTED INDEX' - IDPDSC(10) = CHAR(01) - IDPDSC(11) = CHAR(00) - IDPDSC(12) = CHAR(00) - ENDIF - ELSE IF (IMODEL .EQ. MSK25) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(77) - IDPDSC(7) = CHAR(03) - IF (IFCSTHR.GT.168) IDPDSC(7)= CHAR(02) - ELSE IF (IMODEL .EQ. MSKNGM) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(39) - IDPDSC(7) = CHAR(06) - IF (ITYPE .EQ. 05) THEN - IDPDSC(7) = CHAR(05) - ENDIF - IF (ITYPE .EQ. 101) THEN - IDPDSC(7) = CHAR(101) - PRINT *, ' TRY TO GET A NGM C-GRID' - ENDIF - IF (ITYPE .EQ. 104) THEN - IDPDSC(7) = CHAR(104) - PRINT *, ' TRY TO GET A NGM SUPER C-GRID' - ENDIF -#if defined (_LITTLE_ENDIAN) - ISCRATCH = IDPDS(2) - CALL SWAP_BYTES_IN_PLACE (ISCRATCH, 8_8, 1_8) - ITEMP = IAND (ISCRATCH, MSKFFFF) -#else - ITEMP = IAND(IDPDS(2),MSKFFFF) -#endif - IF (ITEMP .EQ. BLRHHDS) THEN - PRINT *,' **GET NGM BOUNDARY LAYER RH' - ITEMP = BLRHGRB - IDPDSC(9) = CTEMP(1) - IDPDSC(10) = CTEMP(2) - IDPDSC(11) = CTEMP(3) - IDPDSC(12) = CTEMP(4) - ENDIF - IF (FLAG .EQ. ETAMOD) THEN -C ... FOR NAM BOUNDARY LAYER -#if defined (_LITTLE_ENDIAN) - ISCRATCH = IDPDS(2) - CALL SWAP_BYTES_IN_PLACE (ISCRATCH, 8_8, 1_8) - NTEMP = IAND (ISCRATCH, MSK0FFF) -#else - NTEMP = IAND(IDPDS(2),MSK0FFF) -#endif - IF (NTEMP .EQ. ETABOUND) THEN - PRINT *, ' ..GET A NAM BOUNDARY LAYER FIELD' - IDPDSC(10) = CHAR(116) - IDPDSC(11) = CHAR(30) - IDPDSC(12) = CHAR(0) - ENDIF - ENDIF -C - ELSE IF (IMODEL .EQ. MSKTRAJ) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(141) - IDPDSC(7) = CHAR(05) - IDATATP = IAND(LABELP(1),MSK2F) - IF (IDATATP .EQ. TRAJVD) THEN -C ... FOR THE VERTICAL REPLACEMENT - PRINT *,' FOR TRAJECTORY VERTICAL REPLACEMENT' - IDPDSC(9) = CHAR(183) - IDPDSC(10) = CHAR(100) - IDPDSC(11) = CHAR(02) - IDPDSC(12) = CHAR(188) - IDPDSC(20) = CHAR(24) - IDPDSC(19) = CLABELP(12) - IDPDSC(21) = CHAR(2) - ELSE IF (IDPDSC(9).EQ.CHAR(17)) THEN - IDPDSC(9)=CHAR(152) - IF (IDPDSC(11).EQ.CHAR(0).AND.IDPDSC(12).EQ.CHAR(0)) - 1 IDPDSC(10) = CHAR(01) -C ... FOR TRAJ DEW-PTS TEMP 700MB AND SFC - ELSE IF (IDPDSC(9).EQ.CHAR(11)) THEN - IDPDSC(9)=CHAR(148) - ELSE IF (IDPDSC(9).EQ.CHAR(133) - 1 .AND.IDPDSC(10).EQ.CHAR(101)) THEN -C ....for k index .... - PRINT *,' FOR TRAJECTORY INDEX' - IDPDSC(9) = CHAR(182) - IDPDSC(10) = CHAR(01) - IDPDSC(11) = CHAR(00) - IDPDSC(12) = CHAR(00) - ENDIF -C - ELSE IF (IMODEL .EQ. MSKFNL) THEN - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(82) - IDPDSC(7) = CHAR(03) - ELSE IF (IMODEL .EQ. MSKUK ) THEN -c print *, ' **try to read ukmet grid 500 MB RH' - IDPDSC(5) = CHAR(74) - IDPDSC(6) = CHAR(15) - IDPDSC(7) = CHAR(02) - IF (IDPDSC(9) .EQ. CHAR(52)) THEN -C ... THIS UKMET 500 MB RH - IF (IDPDSC(10) .EQ. CHAR(108)) IDPDSC(10)=CHAR(100) - IF (IDPDSC(11) .EQ. CHAR(33)) IDPDSC(11)=CHAR(1) - IF (IDPDSC(11) .EQ. CHAR(44)) IDPDSC(11)=CHAR(1) - IF (IDPDSC(12) .EQ. CHAR(100)) IDPDSC(12)=CHAR(244) - ENDIF - ELSE IF (IMODEL .EQ. MSKUK1 ) THEN - print *, ' **try to read ukmet grid 700 MB RH' - IDPDSC(5) = CHAR(74) - IDPDSC(6) = CHAR(15) - IDPDSC(7) = CHAR(02) - IF (IDPDSC(9) .EQ. CHAR(52)) THEN -C ... THIS UKMET 700 MB RH - IF (IDPDSC(10) .EQ. CHAR(108)) IDPDSC(10)=CHAR(100) - if(idpdsc(11).eq.char(33)) idpdsc(11)=char(2) - if(idpdsc(12).eq.char(100)) idpdsc(12)=char(188) - ENDIF - - ELSE IF (IMODEL .EQ. MSKECMWF ) THEN - print *, ' **try to read ecmwf grid' - IDPDSC(4) = CHAR(01) - IDPDSC(5) = CHAR(98) - IDPDSC(6) = CHAR(152) - IDPDSC(7) = CHAR(02) - IF (IDPDSC(9) .EQ. CHAR(02)) THEN -C ... THIS ECMWF PRESSURE AT THE SURFACE - IDPDSC(10) = CHAR(01) - ENDIF -C - ELSE IF (IMODEL .EQ. MSKTHUND) THEN - PRINT *,' GET NGM MOS THUNDER/SEVERE WX ID....' - IDPDSC(6) = CHAR(141) - IDPDSC(8) = CHAR(192) - IF (IDPDSC(9).EQ.CHAR(60)) THEN - IDPDSC(9) = CHAR(149) - ELSE IF (IDPDSC(9).EQ.CHAR(59)) THEN - IDPDSC(9) = CHAR(151) - ENDIF - IDPDSC(10) = CHAR(1) - IDPDSC(20) = CHAR( IAND(LABEL(3),MSK2)) -C - ELSE IF (ITYPE.EQ.8 .OR. ITYPE.EQ.53) THEN - PRINT *,' ****TRY TO GET A MERCTOR GRID.' - IDPDSC(4) = CHAR(02) - IDPDSC(6) = CHAR(77) - IDPDSC(7) = CHAR(03) - IF (IFCSTHR.GT.168) IDPDSC(7)= CHAR(02) - ENDIF -C - IF ( IAND(LABEL(1),MSK1) .EQ. SFCMEANRH) THEN -C IDPDSC(7) = CHAR(202) - IF (IMODEL .NE. MSKNGM.AND.IMODEL.NE.MSKUK1) THEN - IDPDSC(11) = CHAR(44) - ENDIF -C print *, ' get a sfc-500 mean rh' - ENDIF -C .... MODIFY PDS TO POINT TO 1-DEGREE GRIB - DO I=1, 28 - PDS(I) = IDPDSC(I) - ENDDO -C - JREW = 0 - MPDS = -1 - MPDS(3) = mova2i(PDS(7)) - MPDS(5) = mova2i(PDS(9)) - MPDS(6) = mova2i(PDS(10)) - MPDS(7) = mova2i(PDS(11)) * 256 + mova2i(PDS(12)) - IF (IMODEL .EQ. MSKTRAJ) THEN - IDATATP = IAND(LABELP(1),MSK2F) -C PRINT *,' SET MPDS FOR TRAJVD=' - IF (IDATATP .EQ. TRAJVD) THEN -C PRINT *,' SET MPDS FOR TRAJVD' -C MPDS(14) = mova2i(PDS(19)) - MPDS(15) = mova2i(PDS(20)) -C MPDS(16) = mova2i(PDS(21)) - ENDIF - ELSE IF (FLAG.NE.CAC96HC .AND. FLAG.NE.GFS97HC) THEN - MPDS(14) = mova2i(PDS(19)) -C ..... FOR THE FORECAST HOUR CHECKING - ELSE IF (IMODEL .EQ. MSKTHUND) THEN -C MPDS(14) = mova2i(PDS(19)) - MPDS(15) = mova2i(PDS(20)) -C MPDS(16) = mova2i(PDS(21)) - ENDIF -C - IF (FLAG .EQ. AVPOLRV) THEN - IDPDSC(7) = CHAR(03) - MPDS(3) = 3 -C ..... FOR AVPOLARV - ENDIF -C -C READ I DEGREE GRIB FILE USING INDEX FILE -C -C print *,' mpds=' -C write (*,203)(mpds(k),k=1,25) -C 203 format( 5(5(1x,z16),/) ) -C print *,' jgds=' -C write (*,204)(jgds(k),k=1,100) -C 204 format( 20(5(1x,z16),/) ) -C -C - print *, ' Pds = ' - write(*, 12)(ipds(i),i=1,4) - 12 format( 2x, 4(z16,1x)) -C -C CALL GETGB1(LUGB,LUGI,MXSIZE,JREW,MPDS,JGDS, -C & GRIB,KBYTES,KREW,KPDS,KGDS,KBMS,C,IRET) -C - CALL GETGB1(LUGB,LUGI,ji,JREW,MPDS,JGDS, - & GRIB,KBYTES,KREW,KPDS,KGDSi,KBMS,CC,IRET) -C -C - IF (IRET .NE. 0) THEN - PRINT *,' **FATAL ERROR FROM GETGB.', IRET - IERR = IRET - GO TO 999 - ENDIF -C -C print *,'after getgb kpds = ',kpds - print *, ' Jds = ' - write(*, 16)(jpds(i),i=1,4) - 16 format( 2x, 4(z16,1x)) -C - IF (KPDS(16) .EQ. 0) THEN - ITAU = KPDS(14) - ELSE IF (KPDS(16) .EQ. 2) THEN - ITAU = KPDS(15) - ELSE IF (KPDS(16) .EQ. 3) THEN - ITAU = KPDS(15) - ELSE IF (KPDS(16) .EQ. 4) THEN - ITAU = KPDS(15) - ELSE IF (KPDS(16) .EQ. 10) THEN - ITAU = KPDS(14) - ELSE - PRINT *,' **ERROR - CAN NOT GET TAU. KPDS(16)=',KPDS(16) - ENDIF -C - print *,' ITAU=', itau - print *, ' Kds = ' - write(*, 14)(kpds(i),i=1,24) - 14 format( 6(2x, 4(z16,1x),/)) -C -C print *,'after getgb mpds = ',mpds -C PRINT *,'KBYTES = ',KBYTES -C PRINT *,'RECORD NO. OF GRIB RECORD IN INPUT FILE = ',KREW -C - 700 CONTINUE -C -C flip the grid so 1st point is S.pole at Greenwich -C - IF (KPDS(3) .EQ. 3) THEN - PRINT *, ' GET A ONE DEGREE GRIB' - DO N1=1,181 - DO M1=1,360 - DD(M1,181-N1+1) = CC(M1,N1) - ENDDO - ENDDO -C - DO N1 = 1, 181 - DD(361,N1) = DD(1,N1) - ENDDO -C - IF (ITYPE .EQ. AVTYPE) THEN -C print *, ' convert from one-degree to 5 degree ...' - LL1 = 0 - DO L1 = 1, 361, 5 - LL1 = LL1 + 1 - II1 = 0 - DO I1 = 1, 181, 5 - II1 = II1 + 1 - GG(LL1,II1) = DD(L1,I1) - ENDDO - ENDDO -C ... LOAD IT TO OUTPUT BUFFER - DO III=1,2701 - FLD(III) = GG2(III) - ENDDO -C - ELSE IF (FLAG .EQ. AVPOLRV) THEN -C .... CONVERT ONE DEGREE TO 2.5 DEGREE - CALL W3FT3X2P5(DD,BLOLA,CLOLA) -C DO NN=1, 5365 -C FLD(NN) = CLOLA(NN) -C ENDDO - DO NN=5221, 10585 - FLD(NN-5220) = CLOLA(NN) - ENDDO -C print *,' successfully get avpolar field from 1' -C .... FOR N.H. ONLY - ELSE IF (ITYPE .EQ. IG08) THEN -c define 116x44 grid - call makgds(ig08,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) ! kumar modified for ibm RS/6000 the call to exit -C kgdso(4)=-20826! fix w3fi71 error ! errexit(iret) is the ibm equiv of exit(iret) -C - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo08,1, - 1 ibi,kbms,cc,ko,rlat_08,rlon_08, - 2 ibo,lo_08,fld,iret) - if(iret.ne.0) call errexit(iret) -C - ELSE IF (ITYPE .EQ.26) THEN -c define 53x45 grid - PRINT *, ' CONVERT ONE-DEGREE TO LFM' - call makgds(ig26,kgdso,gdso,lengds,iret) - if(iret.ne.0) PRINT *,' IRET=',IRET -C - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 -C call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo,1, -C 1 ibi,kbms,cc,ko,rlat,rlon,ibo,lo,fld,iret) - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27,1, - 1 ibi,kbms,cc,ko,rlat_27,rlon_27, - 2 ibo,lo_27,fld,iret) - - if(iret.ne.0) PRINT *,' IRET=',IRET -C - ELSE IF (ITYPE .EQ. IG27) THEN -c define 65x65 grid - call makgds(ig27,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) - kgdso(4)=-20826! fix w3fi71 error -C - IF (UORFG .AND. UXPO.EQ.65 .AND. UYPO.EQ.65) THEN -C ... GET 129*129 - kgdso(2) = 129 - kgdso(3) = 129 - kgdso(8) = kgdso(8)/2 - kgdso(9) = kgdso(9)/2 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27_129,1, - 1 ibi,kbms,cc,ko,rlat_27_129,rlon_27_129, - 2 ibo,lo_27_129, fld,iret) - if(iret.ne.0) call errexit(iret) -C CALL W3FM08(b129,fld,129,129) - ELSE IF (.NOT. UORFG) THEN -C ... GET 65*65 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27,1, - 1 ibi,kbms,cc,ko,rlat_27,rlon_27, - 2 ibo,lo_27,fld,iret) - if(iret.ne.0) call errexit(iret) - ENDIF -C -C - ELSE IF (ITYPE .EQ. IG28) THEN -c define 65x65 grid - call makgds(ig28,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) - kgdso(4)=20826 ! fix w3fi71 error -C - IF (UORFG .AND. UXPO.EQ.65 .AND. UYPO.EQ.65) THEN -C ... GET 129*129 - kgdso(2) = 129 - kgdso(3) = 129 - kgdso(8) = kgdso(8)/2 - kgdso(9) = kgdso(9)/2 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27_129,1, - 1 ibi,kbms,cc,ko,rlat_27_129,rlon_27_129, - 2 ibo,lo_27_129, fld,iret) - if(iret.ne.0) call errexit(iret) -C CALL W3FM08(b129,fld,129,129) - ELSE IF (.NOT. UORFG) THEN -C ... GET 65*65 - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo27,1, - 1 ibi,kbms,cc,ko,rlat_27,rlon_27, - 2 ibo,lo_27,fld,iret) - if(iret.ne.0) call errexit(iret) - ENDIF -C - ELSE IF (ITYPE .EQ.29) THEN -C .... CONVERT ONE DEGREE TO 2.5 DEGREE - CALL W3FT3X2P5(DD,BLOLA,CLOLA) - DO NN=5221, 10585 - FLD(NN-5220) = CLOLA(NN) - ENDDO - print *,' successfully get a nh 2.5 degree field.' -C .... FOR N.H. ONLY - ELSE IF (ITYPE .EQ.30) THEN -C .... CONVERT ONE DEGREE TO 2.5 DEGREE - CALL W3FT3X2P5(DD,BLOLA,CLOLA) - DO NN=1, 5365 - FLD(NN) = CLOLA(NN) - ENDDO - print *,' successfully get a sh 2.5 degree field.' -C .... FOR S.H. ONLY - ELSE IF (ITYPE .EQ. IG53) THEN -c define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) call errexit(iret) -C kgdso(4)=-20826! fix w3fi71 error -C - print *,'kgdso=',kgdso - print *,'kgdsi=',kgdsi - ipopt=0 - ip = 0 - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo53,1, - 1 ibi,kbms,cc,ko,rlat_53,rlon_53, - 2 ibo,lo_53,fld,iret) - if(iret.ne.0) call errexit(iret) -C - ELSE - PRINT *, ' ** UNRECOGNIZED DATA TYPE -- ', ITYPE - IERR = 10 - GO TO 999 - ENDIF -C - ELSE IF (KPDS(3) .EQ. 2) THEN -C PRINT *, ' GET A 2.5 DEGREE GRIB' - DO N1=1,73 - DO M1=1,144 - DD2(M1,73-N1+1) = CC2(M1,N1) - ENDDO - ENDDO -C - DO N1 = 1, 73 - DD2(145,N1) = DD2(1,N1) - ENDDO -C - IF (ITYPE .EQ. AVTYPE) THEN -C print *, ' convert from 2.5-degree to 5 degree ...' - LL1 = 0 - DO L1 = 1, 145, 2 - LL1 = LL1 + 1 - II1 = 0 - DO I1 = 1, 73, 2 - II1 = II1 + 1 - GG(LL1,II1) = DD2(L1,I1) - ENDDO - ENDDO -C ... LOAD IT TO OUTPUT BUFFER - DO III=1,2701 - FLD(III) = GG2(III) - ENDDO - ELSE IF (FLAG .EQ. AVPOLRV) THEN - DO N1=37, 73 - DO M1=1,145 - DD2N(M1,N1-36) = DD2(M1,N1) - ENDDO - ENDDO -C .... LOAD NH 2.5 DEGREE - DO NN=1, 5365 - FLD(NN) = DD2N1(NN) - ENDDO -C print *,' successfully get avpolar field from 2.5.' - ELSE IF (ITYPE .EQ. 27) THEN - DO N1=37, 73 - DO M1=1,145 - DD2N(M1,N1-36) = DD2(M1,N1) - ENDDO - ENDDO -C ..... N.H. - CALL W3FT05V(DD2N,EE,1) -C .... convert 2.5 degree to office 84 65*65 -C CALL W3FM08(EE,FF,65,65) -C ... smoother..... - DO III=1,4225 - FLD(III) = EE(III) - ENDDO - ELSE IF (ITYPE.EQ.28) THEN - DO N1=1,37 - DO M1=1,145 - DD2N(M1,N1) = DD2(M1,N1) - ENDDO - ENDDO -C ..... S.H. - CALL W3FT05V(DD2N,EE,1) -C .... convert 2.5 degree to office 84 65*65 -C CALL W3FM08(EE,FF,65,65) -C ... smoother..... - DO III=1,4225 - FLD(III) = EE(III) - ENDDO - ELSE IF (ITYPE .EQ. 29) THEN - DO N1=37, 73 - DO M1=1,145 - DD2N(M1,N1-36) = DD2(M1,N1) - ENDDO - ENDDO -C .... LOAD NH 2.5 DEGREE - DO NN=1, 5365 - FLD(NN) = DD2N1(NN) - ENDDO - print *,' successfully get a nh 2.5 grid from 2.5.' - ELSE IF (ITYPE .EQ. 30) THEN - DO N1=1, 37 - DO M1=1,145 - DD2N(M1,N1) = DD2(M1,N1) - ENDDO - ENDDO -C .... LOAD SH 2.5 DEGREE - DO NN=1, 5365 - FLD(NN) = DD2N1(NN) - ENDDO - print *,' successfully get a sh 2.5 grid from 2.5.' - ELSE - PRINT *, ' ** UNRECOGNIZED DATA TYPE -- ', ITYPE - IERR = 10 - GO TO 999 - ENDIF -C - ELSE IF (KPDS(3) .EQ.08 .AND. ITYPE .EQ. 08) THEN - DO III=1, 5104 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.27 .AND. ITYPE .EQ. 27) THEN - DO III=1, 4225 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.28 .AND. ITYPE .EQ. 28) THEN - DO III=1, 4225 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 5 .AND. ITYPE .EQ. 5) THEN - DO III=1, 3021 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 6 .AND. ITYPE .EQ. 26) THEN - DO III=1, 2385 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 26 .AND. ITYPE .EQ. 26) THEN - DO III=1, 2385 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.29 .AND. ITYPE .EQ. 29) THEN - DO III=1, 5365 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.30 .AND. ITYPE .EQ. 30) THEN - DO III=1, 5365 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ.53 .AND. ITYPE .EQ. 53) THEN - DO III=1, 5967 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 101 .AND. ITYPE .EQ. 101) THEN - DO III=1, 10283 - FLD(III) = C(III) - ENDDO - ELSE IF (KPDS(3) .EQ. 104 .AND. ITYPE .EQ. 104) THEN - DO III=1, 16170 - FLD(III) = C(III) - ENDDO - ELSE - PRINT *,' GRID ID TYPE =', KPDS(3) - PRINT *,' **ABEND, CANNOT PROCESS THIS GRID TYPE**' - IERR = 7 - GO TO 999 - ENDIF -C -C write(*,810)(buff(i),i=1,1440) -C810 format( 180(8(f10.3,2x),/)) -C - IF (IMODEL .EQ. MSKTRAJ) THEN - PDSL(6) = CHAR(18) - IF (PDSL(9).EQ.CHAR(152)) THEN - PDSL(9)=CHAR(17) - ELSE IF (PDSL(9).EQ.CHAR(148)) THEN - PDSL(9)=CHAR(11) - ELSE IF (PDSL(9).EQ.CHAR(182)) THEN - PDSL(9)=CHAR(133) - PDSL(10)=CHAR(101) - PDSL(11)=CHAR(70) - PDSL(12)=CHAR(85) - ELSE IF (PDSL(9).EQ.CHAR(183)) THEN - PDSL(9)=CHAR(133) - ENDIF - CALL W3FP11 (IGRIB,JPDS,MTITLE,IRET) - IRET = 0 -C - ELSE IF (FLAG .EQ. GFS97HC .OR. FLAG.EQ.GFS98TK) THEN - PDSL(9)=CHAR(07) - PDSL(5)=CHAR(08) - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) - ELSE IF (IMODEL .EQ. MSKTHUND) THEN - PDSL(5)=CHAR(08) - PDSL(9)=CHAR(07) - PDSL(8) = CHAR(128) - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) -C - ELSE IF (IMODEL .EQ. MSKTRAJ) THEN - PDSL(9)=CHAR(11) - PDSL(5)=CHAR(08) - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) - ELSE - CALL W3FP11 (IGRIB,IGRIB(2),MTITLE,IRET) -C .... to get a map title - ENDIF - IF (IRET .NE. 0) THEN - PRINT *, ' ** NOT A FATAL ERROR FROM W3FP11 -- ', IRET - IERR = 101 - ENDIF -C -C print *,' ' -C print *,title(1:86) -C print *,' ' -C - CGRIB(1:1) = CHAR(71) - CGRIB(2:2) = CHAR(82) - CGRIB(3:3) = CHAR(73) - CGRIB(4:4) = CHAR(66) - CGRIB(5:5) = CHAR(0) - CGRIB(6:6) = CHAR(0) - CGRIB(7:7) = CHAR(0) - CGRIB(8:8) = CHAR(1) -C -C PDS(7) = CHAR(27) - IF (ITYPE.EQ.26) ITYPE=6 - GRIB(15) = CHAR(ITYPE) -C - CALL W3FP13(CGRIB,JPDS,LIDREC,IRET) - CALL W3FI69(JPDS, IFWPDS) - KCENT=IFWPDS(23) - - IF (IRET .NE. 0) THEN - PRINT *,' ERROR RETURN FROM W3FP13:', IRET - IERR = IRET - ELSE - CALL GBYTES(LIDREC,LABEL,0,32,0,12) - LABEL(1) = IOR(IAND(MSK1,LABEL(1)),ITAU) - print *,' label after =' - write (*,224)(label(k),k=1,12) - ENDIF -C -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakrx.fd/labelcon.f b/util/sorc/faxmakrx.fd/labelcon.f deleted file mode 100755 index a2c139f003..0000000000 --- a/util/sorc/faxmakrx.fd/labelcon.f +++ /dev/null @@ -1,1244 +0,0 @@ - SUBROUTINE LABELCON(FLD1,IMAX,JMAX,DOTSGI,A,B,KDN,LDN,IRETUR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: LABELCON PUT CONTOUR LABELS. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: LABEL CENTERS BY CALLING CENTRE AND LABEL THE CONTOURS -C BY CALLING CLABEL AND CLOSEC. -C -C PROGRAM HISTORY LOG: -C 94-10-31 ORGIONAL AUTHOR HENRICHSEN -C 94-11-28 HENRICHSEN/ PUT LOGIC TO USE OFF SET LABELS FOR -C LIN CONTOR STRIP LABELS AND LABELS ABOVE -C CONTOURS. -C 94-12-19 HENRICHSEN CHANGE JUP TO 2 FOR BOUNDARY LAYER RH. -C 94-12-22 LUKE LIN CONVERT IT CFT-77. -C 96-02-22 LUKE LIN ADD THE LOGIC TO TRAJECTORY VERTICAL -C DISPLACEMENT AND K INDEX MAPS. -C 96-05-30 LUKE LIN MODIFY CONTOUR LABEL POSITION FOR NGM -C 96-06-12 LUKE LIN MODIFY CONTOUR LABEL LOGIC FOR CENTRE, CLOSEC, -C AND LABEL ROUTINES. -C 96-09-12 LUKE LIN MODIFY FOR CGRID PRECIP CHARTS. -C 96-10-03 LUKE LIN MODIFY FOR TROPOPAUSE PRESSURE. -C 96-11-04 LUKE LIN MODIFY FOR PFAX1 TEMPERATURE PLOTS. -C 97-02-18 LUKE LIN ADD KEYIDX 34 FOR HIGHT CHANGE WITHOUT CENTERS. -C 97-03-12 LUKE LIN MODIFY FOR PROB. THUNDERSTORMS/SEVERE WX CENTERS. -C 97-12-04 LUKE LIN MODIFY KEYIDX 39 FOR GEO REL VORTICITY. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL LABELCON(Z,IMAX,JMAX,DOTSGI,A,B,KDN,LDN,IRETUR) -C INPUT ARGUMENT LIST: -C FLD1 - A GIVEN GRIDPOINT SCALED DATA FIELD -C IMAX - I-DIMENSION OF GRIDPOINT DATA FIELD -C JMAX - J-DIMENSION OF GRIDPOINT DATA FIELD -C DOTSGI - IS DOTS PER GRID INTERVAL -C - WHERE EACH DOT IS 1/100TH INCH ON VARIAN -C - NEGATIVE DOTSGI SIGNALS MERC SRN HEMI OPTION -C A - IS ADDITIVE CONSTANT -C B - IS MULTIPLICATIVE CONSTANT -C - WHERE TRUE Z VALUE = (Z + A) * B -C KDN - LOGICAL*1 FLAG =.TRUE. IF THIS A KDN FIELD. -C LDN - LOGICAL*1 FLAG =.TRUE. IF THIS A DN FIELD. -C -C OUTPUT ARGUMENT LIST: -C IRETUR - RETURN CONDITIONS FROM SUBS CALLED. -C - = 0, NORMAL -C - = 1, KEYIDX ERROR -C -C -C OUTPUT FILES: -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB -C - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - INTEGER IMAX, JMAX - REAL FLD1(IMAX,JMAX) -C - COMMON /PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT -C -C - COMMON /ADJ1/ICOR,JCOR - COMMON /ADJ2/ XIDID,YJDID - COMMON /ADJ3/ IRTCOR,IUPCOR -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,LEVEL -C -C - COMMON /POLE/ XPOL,YPOL,GDTYPE -C -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C ...THE POLE POSITION IN GRID(53,57) IS AT GRID(27,49). -C - COMMON /CENTR/ CENTFLAG,CENTFONT,CENTNC,CENTCEN,CENTB1RC, - 1 CENTXID,CENTYID,CENTXLIM,CENTFLO,CENTFHI, - 2 CENTFORM - LOGICAL CENTFLAG - REAL CENTFONT,CENTXID,CENTYID,CENTXLIM,CENTB1RC - CHARACTER*4 CENTFORM,CENTFLO,CENTFHI - INTEGER CENTNC,CENTCEN -C - COMMON /CENTV/ CENVFLAG,CENVFONT,CENVNC,CENVJUP, - 1 CENVICR,CENVJCR,CENVB1RC,CENVFORM,CENVIFF - LOGICAL CENVFLAG - REAL CENVFONT,CENVB1RC - CHARACTER*4 CENVFORM,CENVIFF - INTEGER CENVNC,CENVJUP,CENVICR,CENVJCR -C - COMMON /FIXLAB/ LABFLAG,LABFONT,LABNC,LABRTC,LABUPC, - 1 LABNLAB,LABIJFIX(7),LABB1RC,LABIFF,LABFORM - LOGICAL LABFLAG - CHARACTER*4 LABFORM,LABIFF - REAL LABFONT, LABB1RC - INTEGER LABNC,LABRTC,LABUPC,LABNLAB,LABIJFIX -C -C - CHARACTER*4 IFORM - CHARACTER*4 IFOR01 - CHARACTER*4 IFOR02 - CHARACTER*4 IFOREL - CHARACTER*4 IFOR06 -C - CHARACTER*4 FORMC - CHARACTER*4 FORMT - CHARACTER*4 FORMV - REAL FONTC - REAL FONTT - REAL FONTV -C - INTEGER GDTYPE - INTEGER ITABMB(7) - INTEGER ITABFL(7) -C - CHARACTER*8 IFF1(5) - CHARACTER*8 IFFX(5) - CHARACTER*8 IFFN(5) - CHARACTER*8 IFF2(5) - CHARACTER*8 IFF3(5) - CHARACTER*8 IFF4(5) - CHARACTER*8 IFF5(5) - CHARACTER*8 IFG2(5) - CHARACTER*8 IFFT(5) - CHARACTER*8 IFFS(5) -C - CHARACTER*8 IFLO(5) - CHARACTER*8 IFHI(5) - CHARACTER*8 IFFV(5) - CHARACTER*8 IFFC(5) -C - INTEGER CIFF1(5) - INTEGER CIFFX(5) - INTEGER CIFFN(5) - INTEGER CIFF2(5) - INTEGER CIFF3(5) - INTEGER CIFF4(5) - INTEGER CIFF5(5) - INTEGER CIFG2(5) - INTEGER CIFFT(5) - INTEGER CIFFS(5) -C - INTEGER IRTCRC,IUPCRC - INTEGER ICORV,JCORV - INTEGER NCT,NCV,NCC -C - EQUIVALENCE (IFF1(1),CIFF1(1)) - EQUIVALENCE (IFFX(1),CIFFX(1)) - EQUIVALENCE (IFFN(1),CIFFN(1)) - EQUIVALENCE (IFF2(1),CIFF2(1)) - EQUIVALENCE (IFF3(1),CIFF3(1)) - EQUIVALENCE (IFF4(1),CIFF4(1)) - EQUIVALENCE (IFF5(1),CIFF5(1)) - EQUIVALENCE (IFG2(1),CIFG2(1)) - EQUIVALENCE (IFFT(1),CIFFT(1)) - EQUIVALENCE (IFFS(1),CIFFS(1)) -C - INTEGER NLAB - INTEGER ICEN - INTEGER HJFIX(5) - INTEGER IIFIX(3) - INTEGER JJFIX(5) - INTEGER KJFIX(5) - INTEGER KKFIX(3) - INTEGER LJFIX(5) - INTEGER SLFIX(5) - INTEGER MJFIX(5) - INTEGER MMFIX(5) - INTEGER TMPFIX(5) - INTEGER IJFIXC(5) - INTEGER IJFIX - INTEGER KCFIX(12) - INTEGER MXITR -C - INTEGER M(2) -C - LOGICAL KDN - LOGICAL LDN -C - LOGICAL FGCENT - LOGICAL FGCENV - LOGICAL FGLABC -C - DATA IFOR01 /'A+-+'/ - DATA IFOR02 /'A999'/ - DATA IFOREL /'A..9'/ - DATA IFOR06 /'S999'/ -C DATA IFF1 /4H(A1,,4H1H$),0,0,0/ -C DATA IFF2 /4H(A2,,4H1H$),0,0,0/ -C DATA IFF3 /4H(A3,,4H1H$),0,0,0/ -C DATA IFF4 /4H(A4,,4H1H$),0,0,0/ -C DATA IFG2 /4H(A3,,4H2HK$,1H),0,0/ - DATA CIFF1 /8H(A1,1H$),0,0,0,0/ - DATA CIFFX /8H(2HX$,A1,1H),0,0,0/ - DATA CIFFN /8H(2HN$,A1,1H),0,0,0/ - DATA CIFF2 /8H(A2,1H$),0,0,0,0/ - DATA CIFF3 /8H(A3,1H$),0,0,0,0/ - DATA CIFF4 /8H(A4,1H$),0,0,0,0/ - DATA CIFF5 /8H(1HF,A3,,8H1H$) ,0,0,0/ - DATA CIFG2 /8H(A3,2HK$,8H) ,0,0,0/ - DATA CIFFT /8H(1HT,A2,,8H1H$) ,0,0,0/ - DATA CIFFS /8H(1HS,A2,,8H1H$) ,0,0,0/ -C - DATA HJFIX /-13,-21,-29,-37,-45/ - DATA IIFIX /-17,-29,-43/ - DATA JJFIX /-8,-16,-24,-32,-40/ - DATA KJFIX /-5,-13,-21,-29,-37/ - DATA SLFIX /-6,-14,-22,-30,-38/ - DATA KKFIX /-27,-32,-37/ - DATA LJFIX /-16,-24,-32,-40,-48/ - DATA MJFIX /-7,-15,-23,-31,-39/ - DATA MMFIX /-10,-18,-26,-34,-42/ -C - DATA ITABMB/400,350,300,250,200,150,100/ - DATA ITABFL/240,270,300,340,390,450,530/ - DATA MXITR /7/ -C DATA KCFIX/0,-4,-8,-12,-16,-20,-24,-28,-32,-36,-40,-44/ - DATA KCFIX/-1,-5,-9,-13,-17,-21,-25,-29,-33,-37,-41,-45/ -C -C SKIP KEYIDX 51 AND ABOVE -C - IF (KEYIDX.GT.51) THEN - PRINT *, ' INVALID KEYDIX = ', KEYIDX - IRETUR = 1 - ENDIF -C -C print *,' in subroutine lbelcon' - print *,' keyidx=', keyidx -C print *,' max=', imax, jmax -C - PUTHGT = 1.0 - PUTANG = 0.0 - FONTC = 1.0 - FONTT = 1.0 - FONTV = 1.0 - IPRPUT(1) = 0 - IPRPUT(2) = 0 - IRETUR = 0 - NLAB = 5 - FGCENT = .FALSE. - FGCENV = .FALSE. - FGLABC = .FALSE. - IRTCOR = 0 - IUPCOR = 0 - ICOR = 0 - JCOR = 0 - ICORV = 0 - JCORV = 0 - IRTCRC = 0 - IUPCRC = 0 - FORMC = 'A999' - FORMT = 'A999' - FORMV = 'A999' -C - A1 = A - B1 = B - XIDID = -5.0 - YJDID = -5.0 - S = DOTSGI / 60.0 - M(1) = 0 - M(2) = 3 - NCT = 3 - NCV = 3 - NCC = 3 -C -C CHECK TO SEE WHAT LIMIT VALUE SHOULD BE. -C - IF (KEYIDX.EQ.5 .OR. KEYIDX.EQ.12 .OR. - 1 KEYIDX.EQ.19 .OR. KEYIDX.EQ.35 .OR. - 2 KEYIDX.EQ.42 .OR. KEYIDX.EQ.46 .OR. - 3 KEYIDX.EQ.47 .OR. KEYIDX.EQ.48 .OR. - 4 KEYIDX.EQ.49) THEN -C CENTERS MIGHT BE NEGATIVE - XLIM = -500.0 - ELSE IF (KEYIDX.EQ.20 .OR. KEYIDX.EQ.21 .OR. - 1 KEYIDX.EQ.28 .OR. KEYIDX.EQ.29) THEN -C THIS IS A LIFTED INDEX FILED - XLIM = -100.0 - ELSE IF (KEYIDX.EQ.9 .OR. KEYIDX.EQ.10) THEN -C THIS IS A VORTICITY FIELD. - XLIM=-1.0 - ELSE IF (KEYIDX.EQ.39) THEN -C THIS IS A GEO REL. VORTICITY FIELD. - XLIM=-100.0 - ELSE - XLIM=1.0 - ENDIF -C -C CHECK FOR PRESSURE OR HEIGHT IF TRUE SET FLAG TO -C PUT ON THE BIG "H" & "L" CENTERS. -C - IF (KEYIDX.EQ.1 .OR. KEYIDX.EQ.18 .OR. KEYIDX.EQ.2 - 1 .OR. KEYIDX.EQ.15 .OR. KEYIDX.EQ.26 .OR. KEYIDX.EQ.24 - 2 .OR. KEYIDX.EQ.31 .OR. KEYIDX.EQ.32) THEN -C ....PUT BIG H AND L - ICEN = 2 -C print *,' icen =2' - ELSE - ICEN = 1 - ENDIF -C - IF (KEYIDX. EQ. 22)THEN -C -C THIS IS A PRESSURE OR HEIGHT CHANGE FIELD -C - NCT = 3 - XLIM = -100.0 - ICEN = 1 - FORMT = 'A+-+' -C -C FIND AND LABEL THE PRESSURE OR HEIGHT CHANGE CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFLO,IFHI) -C -C LABEL THE LINES ABOVE THE CENTERS -C - JUP=2 - NCV = 3 - ICORV = -15 - JCORV = -10 - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO - FORMV = 'A+-+' -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFFV) -C -C PUT PRESSURE OR HEIGHT CHANGE STRIP LABELS . -C - NCC = 3 - IRTCRC = -15 - IUPCRC = -10 - FGLABC = .TRUE. - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FORMC = 'A+-+' - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = KJFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX, -C 1 IFORM,IFFC) - ENDDO - ELSE IF (KEYIDX. EQ. 23)THEN -C -C THIS IS A HEIGHT CHANGE FIELD -C - PUTHGT=11.0 - NCT = 4 - XLIM = -500.0 - ICEN = 1 - FORMT = 'A+-+' -C -C FIND AND LABEL THE HEIGHT CHANGE CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF4(I) - IFHI(I) = IFF4(I) - ENDDO -C - ELSE IF (KEYIDX.EQ.1 .OR. KEYIDX.EQ.31 .OR. KEYIDX.EQ.26)THEN -C -C THIS IS A PRESSURE FILED. -C - NCT = 3 - FORMT = 'A999' -C -C -C FIND AND LABEL THE PRESSURE CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFLO,IFHI) -C -C -C LABEL THE ISO BARS ABOVE THE CENTERS -C -C THIS IS A MSL PRESSURE FIELD - FORMV = IFOR02 - NCV =2 - ICORV = -10 - JCORV = -10 - JUP=7 -C print *,' call glosec' - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF2(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFF2) -C -C PUT STIP LABELS ON THE VERTICAL DISPLACEMENTS LINES -C - FORMC = 'A999' - NCC = 2 - IRTCRC = -10 - IUPCRC = -10 - DO I=1,5 - IFFC(I) = IFF2(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = SLFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF4) - ENDDO -C - ELSE IF (KEYIDX.EQ.2 .OR. KEYIDX.EQ.32 .OR. KEYIDX.EQ.15) THEN -C -C THIS IS A HEIGHT FIELD. -C - IF(LDN)THEN -C print *,' ldn section' - NCT = 4 - FORMT = 'I+-+' - ICEN = 1 - XLIM = -500.0 -C -C FIND AND LABEL THE DN CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF3,IFF3) - ELSE IF(KDN)THEN -C print *,' kdn section' - NCT = 4 - FORMT = 'I+-9' - ICEN = 1 - XLIM = -4000.0 - B1 = B1*10.0 -C -C FIND AND LABEL THE "K" DN CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF3,IFF3) -C -C -C PUT STIP LABELS ON THE "K" DN LINES. -C - FORMC = 'I+-9' - IRTCRC = -15 - IUPCRC = -10 - NCC =4 - DO I=1,5 - IFFC(I) = IFF4(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = JJFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF4) - ENDDO - ELSE -C print *,' elsesection' - NCT = 3 - FORMT = IFOR02 - ICEN = 2 - XLIM = -1000.0 -C print *, ' contst=', a1,b1,s -C -C FIND AND LABEL THE CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF3,IFF3) -C -C -C PUT STIP LABELS ON THE CONTOURS. -C - NCC = 3 - FORMC = IFOR02 - IRTCRC = -15 - IUPCRC = -10 - FONTC = 15.0 - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = MJFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF3) - ENDDO - ENDIF - ELSE IF (KEYIDX.EQ.3 .OR. KEYIDX.EQ.33) THEN -C -C THIS IS A THICKNESS FIELD. -C - IRTCRC = -15 - IUPCRC = -10 - NCC = 3 - FORMC = IFOR02 -C -C PUT STIP LABELS ON THE CONTOURS. -C - FONTC = 15.0 - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = MMFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF3) - ENDDO -C - ELSE IF (KEYIDX. EQ. 34)THEN -C -C THIS IS A HEIGHT CHANGE FIELD WITHOUT CENTERS -C - JUP=2 - NCV = 3 - ICORV = -15 - JCORV = -10 - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO - FORMV = 'A+-+' -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFFV) -C -C PUT HEIGHT CHANGE STRIP LABELS . -C - NCC = 3 - IRTCRC = -15 - IUPCRC = -10 - FGLABC = .TRUE. - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FORMC = 'A+-+' - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = KJFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX, -C 1 IFORM,IFFC) - ENDDO -C - ELSE IF (KEYIDX .EQ. 47)THEN -C -C THIS IS A TRAJECTORY VERTICAL DISPLACEMENT FIELD -C - NCV = 4 - ICORV = -20 - JCORV = -10 - FORMV = 'A+-+' - JUP = 4 -C -C LABEL THE VERTICAL DISPLACEMENT LINES ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF4(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFF4) -C -C PUT STIP LABELS ON THE VERTICAL DISPLACEMENTS LINES -C - FORMC = 'A+-+' - NCC = 4 - DO I=1,5 - IFFC(I) = IFF4(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,3 - IJFIXC(K3) = IIFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF4) - ENDDO - ELSE IF (KEYIDX .EQ. 48)THEN -C -C THIS IS A TRAJECTORY VERTICAL K INDEX FIELD -C - NCV = 3 - ICORV = -15 - JCORV = -10 - FORMV = 'A+-+' - JUP = 4 -C -C LABEL THE K INDEX LINES ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFF3) -C -C -C PUT STIP LABELS ON THE K INDEX LINES -C - FORMC = 'A+-+' - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FGLABC = .TRUE. - NCC = 3 - DO K3 = 1,3 - IJFIXC(K3) = IIFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF3) - ENDDO -C - ELSE IF (KEYIDX.EQ.5 .OR. KEYIDX.EQ.35 - 1 .OR. KEYIDX.EQ.46) THEN -C -C THIS IS A TEMPERATURE FIELD. -C - IF (GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) THEN -C -C ... FOR PFAX1 ONLY .... -C -C OUTPUT DIAMOND CIRCLE TEMPERATURE PLOTS (PFAX ONLY) -C - IRTCOR=-15 - IUPCOR=-6 - A3=0.0 - B3=1.0 - M(2)=3 - IFORM=IFOR01 - PUTHGT=1.0 - PUTANG = 0.0 - PRINT *,' ***CALL TEMPLP ****' - CALL TEMPLP(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,IFORM,IFF3) - GULPXX(2) = -48 - GULPXY(2) = -48 - RETURN - ELSE IF (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48) THEN -C -C ... FOR PFAX1 ONLY .... -C -C OUTPUT DIAMOND BOX TEMPERATURE PLOTS (PFAX ONLY) -C - IRTCOR=-15 - IUPCOR=-6 - A3=0.0 - B3=1.0 - M(2)=3 - IFORM=IFOR01 - PUTHGT=1.0 - PUTANG = 0.0 - PRINT *,' ***CALL TEMPLN****' - CALL TEMPLN(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,IFORM,IFF3) - GULPXX(2) = -49 - GULPXY(2) = -49 - RETURN - ELSE -C -C - NLAB = 5 - IRTCRC = -15 - IUPCRC = -10 - IF (GDTYPE .EQ. 26 .OR. GDTYPE .EQ. 05) THEN -C .... LFM TYPE GRID .... - IF (KEYIDX .EQ. 46 ) THEN - NLAB = 3 - DO I=1, NLAB - TMPFIX(I) = IIFIX(I) - ENDDO - ELSE - DO I=1, NLAB - TMPFIX(I) = MMFIX(I) - ENDDO - ENDIF - ELSE IF (GDTYPE .EQ. 27 .OR. GDTYPE.EQ.28) THEN -C .... NH NMC STANDARD GRID .... - DO I=1, NLAB - TMPFIX(I) = LJFIX(I) - ENDDO - ENDIF -C - NCC = 3 - FORMC = IFOR01 -C -C PUT STIP LABELS ON THE CONTOURS. -C - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - FGLABC = .TRUE. - DO K3 = 1,NLAB - IJFIXC(K3) = TMPFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,IFORM,IFF3) - ENDDO -C - FORMV=IFOR01 - NCV =3 - JUP=3 - ICORV = -15 - JCORV = -10 -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFF3) - ENDIF -C - ELSE IF (KEYIDX.EQ.6 .OR. KEYIDX.EQ.25 .OR. - 1 KEYIDX.EQ.27 .OR. KEYIDX.EQ.36 .OR. - 2 KEYIDX.EQ.45 )THEN -C -C THIS IS A RELATIVE HUMIDITY FIELD. -C -C PRINT *, ' ****** RELATIVE HUMIDITY**********' - NCT = 3 - FONTC = 2.0 - IF (KEYIDX .EQ. 6 )THEN -C -C DO NOT LABEL THE CENTERS -C - ELSE -C -C FIND AND LABEL THE CENTERS -C - NCT = 3 - FORMC=IFOREL - XIDID = -5.0 - YJDID = -5.0 - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF3,IFF3) - ENDIF -C - IFORM=IFOR02 - NCT = 2 - JUP = 4 - IF (KEYIDX .EQ. 27)THEN -C -C THIS IS TH BOUNDARY RH SO SET JUP TO 2 GRID INTERVALS. -C - JUP=2 - ENDIF -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - IF (KEYIDX .EQ. 25) THEN -C -C PUT 1 DIGET NUMBERS ON THE LINES -C - FORMV=IFOREL - FONTV = 2.0 - IFORM=IFOR02 - NCV = 1 - ICORV = -5 - JCORV = -10 - B10TH = B1/10.0 - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF1(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B10TH,M,JUP, -C 1 IFORM,IFF1) - ELSE IF (KEYIDX .EQ. 36)THEN -C -C PUT 2 DIGET NUMBERS ON THE LINES -C - FONTV = 1.0 - NCV = 2 - ICORV = -10 - JCORV = -10 - FORMV=IFOREL - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF2(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFF2) - ELSE - FONTV = 1.0 - NCV = 2 - FGCENV = .TRUE. - FORMV=IFOREL - ICORV = -10 - JCORV = -10 - DO I=1,5 - IFFV(I) = IFF1(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFF1) - ENDIF -C - ELSE IF (KEYIDX.EQ.7 .OR. KEYIDX.EQ.37 .OR. KEYIDX.EQ.19 - 1 .OR. KEYIDX.EQ.49) THEN -C -C THIS IS A PRECIPITATION FIELD. -C -C -C FIND AND LABEL THE CENTERS -C - IF (KEYIDX.EQ.7 .OR. KEYIDX.EQ.37) THEN - FONTT = 2.0 - NCT = 9 - FORMT = 'A999' - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO - ELSE -C ...SPECIAL FOR CGRID PRCIP CHARTS - PUTHGT = 2.0 - M(2) = 9 - FORMT = 'A999' - DO I=1,5 - IFLO(I) = IFF3(I) - IFHI(I) = IFF3(I) - ENDDO - CALL GENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, - 1 FORMT,IFHI,IFLO) -C - ENDIF - ELSE IF (KEYIDX.EQ.9 .OR. KEYIDX.EQ.13)THEN -C -C THIS IS A VORTICITY FIELD. -C -C -C FIND AND LABEL THE CENTERS -C - NCT = 1 - FORMT = IFOR02 - XIDID = -5.0 - YJDID = -5.0 - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFFN(I) - IFHI(I) = IFFX(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFFN,IFFX) -C -C THIS IS A VORTICITY FIELD. -C - JUP=4 - NCV = 2 - ICORV = -10 - JCORV = -10 - FORMV = 'A999' -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF2(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFF2) -C -C - ELSE IF(KEYIDX.EQ.20 .OR. KEYIDX.EQ.21 .OR. - 2 KEYIDX.EQ.28 .OR. KEYIDX.EQ.29) THEN -C -C THIS IS A LIFTED INDEX FIELD. -C -C FIND AND LABEL THE CENTERS -C - NCT = 1 - FORMT = 'A+-+' - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFFN(I) - IFHI(I) = IFFX(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF3,IFF3) -C IF (IRETUR .EQ. 5) RETURN -C -C THIS IS A LIFTED INDEX FIELD, PUT LEADING + OR - -C IN FRONT OF THE CONTOUR NUMBERS. -C - JUP=2 - NCV = 3 - ICORV = -15 - JCORV = -10 - FORMV = 'A+-+' -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP, -C 1 IFORM,IFF3) -C -C PUT STIP LABELS ON THE CONTOURS. -C - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - NCC = 3 - IRTCRC = -15 - IUPCRC = -10 - FGLABC = .TRUE. - FORMC = 'A+-+' - DO K3 = 1,NLAB - IJFIXC(K3) = MJFIX(K3) -C CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX, -C 1 IFORM,IFF3) - ENDDO -C - ELSE IF (KEYIDX.EQ.10 .OR. KEYIDX.EQ.40) THEN -C -C THIS A WIND/ISOTACHS FIELD -C - NCV =3 - ICORV = -15 - JCORV = -10 - JUP=2 - FORMV=IFOR06 -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C -C PRINT *,' ISOTACHS CALL CLOSEC' - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFG2(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFG2) -C - ELSE IF (KEYIDX.EQ.12 .OR. KEYIDX.EQ.42) THEN -C -C THIS IS A VERTICAL VELOCITY FIELD -C -C PRINT *,' ****VERTICAL VELOCITY*****' - FONTT = 11.0 - NCT = 1 - XIDID = -5.0 - YJDID = -10.0 - FORMT=IFOR01 -C -C FIND AND LABEL THE CENTERS -C - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFF1(I) - IFHI(I) = IFF1(I) - ENDDO -C CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, -C 1 IFORM,IFF1,IFF1) -C IF (IRETUR .EQ. 5) RETURN -C -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - FONTV = 1.0 - JUP=2 - NCV = 2 - ICORV = -10 - JCORV = -10 - FORMV=IFOR01 - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF2(I) - ENDDO -C CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFF2) -C - ELSE IF (KEYIDX.EQ.39)THEN -C -C THIS IS A GEO REL VORTICITY FIELD. -C -C -C FIND AND LABEL THE CENTERS -C - NCT = 1 - FORMT = IFOR02 - XIDID = -5.0 - YJDID = -5.0 - FGCENT = .TRUE. - DO I=1,5 - IFLO(I) = IFFN(I) - IFHI(I) = IFFX(I) - ENDDO -C - JUP=4 - NCV = 3 - ICORV = -15 - JCORV = -15 - FORMV = 'A+-+' -C -C LABEL THE CONTOURS ABOVE THE CENTERS -C - FGCENV = .TRUE. - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO -C -C - ELSE IF (KEYIDX.EQ.43) THEN -C -C ... TROPOPAUSE PRESSURE -C -C FIND INDIRECT TROP. PRESSURE STRIP LABELS - PRINT *,' CALL LABELP ' -C - IRTCOR=-12 - IUPCOR=-5 - PUTHGT=2.0 - LOX=1 - IFORM=IFOR02 - M=3 - DO K3=2,12 - IJFIX=KCFIX(K3) - IFMAT = 5 - CALL CLABEP(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX,LOX, - X ITABMB,ITABFL,MXITR,IFORM,IFF5) - ENDDO -C -C -C FIND INDIRECT TROP PRESSURE FROM CENTERS -C -C ICOR=-10 -C JCOR=-5 -C JUP=2 -C CALL CLOSEX(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,LOX, -C XITABMB,ITABFL,MXITR,IFORM,IFF5) - RETURN -C -C - ENDIF -C -C ... COME TO HERE TO PUT CENTER LABEL OUT -C - IF (CENTFLAG) THEN - PRINT *,' **** CENTER FLAG IS ON.*****' - PUTHGT = CENTFONT - M(2) = CENTNC - ICEN = CENTCEN - IFORM = CENTFORM - XLIM = CENTXLIM - XIDID = CENTXID - YJDID = CENTYID - B1 = B * CENTB1RC -C PRINT *,' CENTFLO=',CENTFLO -C PRINT *,' CENTFHI=',CENTFHI - IF (CENTFLO .EQ. 'IFF1') THEN - DO I=1,5 - IFLO(I) = IFF1(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFFN') THEN -C PRINT *,' GET A CENTER LO' - DO I=1,5 - IFLO(I) = IFFN(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFF2') THEN - DO I=1,5 - IFLO(I) = IFF2(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFF3') THEN - DO I=1,5 - IFLO(I) = IFF3(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFF4') THEN - DO I=1,5 - IFLO(I) = IFF4(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFFT') THEN - DO I=1,5 - IFLO(I) = IFFT(I) - ENDDO - ELSE IF (CENTFLO .EQ. 'IFFS') THEN - DO I=1,5 - IFLO(I) = IFFS(I) - ENDDO - ENDIF -C - IF (CENTFHI .EQ. 'IFF1') THEN - DO I=1,5 - IFHI(I) = IFF1(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFFX') THEN -C PRINT *,' GET A CENTER HI' - DO I=1,5 - IFHI(I) = IFFX(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFF2') THEN - DO I=1,5 - IFHI(I) = IFF2(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFF3') THEN - DO I=1,5 - IFHI(I) = IFF3(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFF4') THEN - DO I=1,5 - IFHI(I) = IFF4(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFFT') THEN - DO I=1,5 - IFHI(I) = IFFT(I) - ENDDO - ELSE IF (CENTFHI .EQ. 'IFFS') THEN - DO I=1,5 - IFHI(I) = IFFS(I) - ENDDO - ENDIF - CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, - 1 IFORM,IFLO,IFHI) - ELSE IF (FGCENT) THEN - PUTHGT = FONTT - IFORM = FORMT - M(2) = NCT - CALL CENTRE(FLD1,IMAX,JMAX,DOTSGI,A1,B1,M,XLIM,ICEN, - 1 IFORM,IFLO,IFHI) - ENDIF -C -C ... COME TO HERE TO PUT CENTER ABOVE LABEL OUT -C - IF (CENVFLAG) THEN - PRINT *,' **** CENTER ABOVE FLAG IS ON.*****' - PUTHGT = CENVFONT - M(2) = CENVNC - IFORM = CENVFORM - ICOR = CENVICR - JCOR = CENVJCR - B1 = B * CENVB1RC - JUP = CENVJUP - IFORM = CENVFORM -C - IF (CENVIFF .EQ. 'IFF1') THEN - DO I=1,5 - IFFV(I) = IFF1(I) - ENDDO - ELSE IF (CENVIFF .EQ. 'IFF2') THEN - DO I=1,5 - IFFV(I) = IFF2(I) - ENDDO - ELSE IF (CENVIFF .EQ. 'IFF3') THEN - DO I=1,5 - IFFV(I) = IFF3(I) - ENDDO - ELSE IF (CENVIFF .EQ. 'IFF4') THEN - DO I=1,5 - IFFV(I) = IFF4(I) - ENDDO - ENDIF -C - CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFFV) - ELSE IF (FGCENV) THEN - PUTHGT = FONTV - IFORM = FORMV - M(2) = NCV - ICOR = ICORV - JCOR = JCORV - CALL CLOSEC(FLD1,IMAX,JMAX,S,A1,B1,M,JUP,IFORM,IFFV) - ENDIF -C -C ... COME TO HERE TO PUT FIX CONTOUR LABEL OUT -C - IF (LABFLAG) THEN - PRINT *,' **** LABEL FLAG IS ON.*****' - PUTHGT = LABFONT - M(2) = LABNC - IFORM = LABFORM - IRTCOR = LABRTC - IUPCOR = LABUPC - B1 = B * LABB1RC - IFORM = LABFORM -C - IF ( LABIFF .EQ. 'IFF1') THEN - DO I=1,5 - IFFC(I) = IFF1(I) - ENDDO - ELSE IF ( LABIFF .EQ. 'IFF2') THEN - DO I=1,5 - IFFC(I) = IFF2(I) - ENDDO - ELSE IF ( LABIFF .EQ. 'IFF3') THEN - DO I=1,5 - IFFC(I) = IFF3(I) - ENDDO - ELSE IF ( LABIFF .EQ. 'IFF4') THEN - DO I=1,5 - IFFC(I) = IFF4(I) - ENDDO - ENDIF -C - print *,' labnlab=',labnlab - DO K3 = 1,LABNLAB - print *,' k3=',k3,' =',labijfix(k3) - IJFIX = LABIJFIX(K3) - CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX, - 1 IFORM,IFFC) - ENDDO - ELSE IF (FGLABC) THEN -C PRINT *, ' ****LABEL DEFAULT CONSTANTS****' - PUTHGT = FONTC - IFORM = FORMC - M(2) = NCC - IRTCOR = IRTCRC - IUPCOR = IUPCRC -C PRINT *,' COR=',IRTCOR,' ',IUPCOR - DO K3 = 1,NLAB - IJFIX = IJFIXC(K3) - CALL CLABEL(FLD1,IMAX,JMAX,S,A1,B1,M,IJFIX, - 1 IFORM,IFFC) - ENDDO - ENDIF -C - IF (KEYIDX.EQ.19 .OR. KEYIDX.EQ.49) THEN -C ... SPECIAL FOR CGRID PRECIP MAP - CALL THINLB - ENDIF -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/main.block.data.f b/util/sorc/faxmakrx.fd/main.block.data.f deleted file mode 100755 index 63509a18f9..0000000000 --- a/util/sorc/faxmakrx.fd/main.block.data.f +++ /dev/null @@ -1,24 +0,0 @@ -C -C SUBPROGRAM: MAIN.BLOCK.DATA BLOCK DATA FOR MAIN IN FAXMAKR90 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: THIS IS THE BLOCK DATA STATEMENT FOR MAIN IN FAXMAKR90 CODE -C -C PROGRAM HISTORY LOG: -C 1999-08-01 KRISHNA KUMAR -C -C USAGE: BLOCK DATA ISCHED -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C - BLOCK DATA ISCHED_DATA - COMMON /FAXICK/ ISCHED(8,50),INXISCHED -C - DATA ISCHED / 165, 0, 0, 1800, X'8000',X'D800',0,0, ! Initializing ISCHED - 1 392*0/ - DATA INXISCHED / 1 / -C - END BLOCK DATA ISCHED_DATA - diff --git a/util/sorc/faxmakrx.fd/main.orig.F b/util/sorc/faxmakrx.fd/main.orig.F deleted file mode 100755 index 96750681de..0000000000 --- a/util/sorc/faxmakrx.fd/main.orig.F +++ /dev/null @@ -1,1151 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: FAXMAKRX -C PRGMMR: FACEY ORG: NP12 DATE: 2001-09-20 -C -C ABSTRACT: MAKE VARIAN/FAX MAPS. -C -C PROGRAM HISTORY LOG: -C 95-05-05 ORIGIONAL AUTHOR LUKE LIN -C 95-08-15 LUKE LIN ADD LINE ATTRIBUTES -C 96-01-31 LUKE LIN MODIFY TO GENERTE MULTIPLE CHARTS -C 96-03-27 LUKE LIN ADD PRINT TITLE. -C 96-05-10 LUKE LIN POINT TO FONTLIB AND CNTRLIB -C 96-06-04 HENRICHSEN ADD LOGIC TO GET A USER TITLE FROM THE PARM. -C ADDED LOGIC TO CALL CONSOL. -C 96-06-21 LUKE LIN MODIFY FOR UOR_DOT. -C 96-06-24 HENRICHSEN MODIFY TO GET 5DAY MEAN TITLES, ALSO ADD AN EXTRA -C LINE TO GULF TITLE. MODIFY COMMON/LLABFX/ TO -C PASS TITLE HEIGHT "THEIGHT" AND HGTFLG. -C 96-06-25 LUKE LIN MODIFY FOR GENERATING MULTIPLE CHARTS. -C 96-06-26 HENRICHSEN MODIFY TO GET THE SUBSET NUMBERS OF THE MAPS MADE -C INTO A WORK ARRAY FOR CALL TO CONSOL. -C 96-06-27 LUKE LIN ADDED DAVIDS LOGIC TO MAKE FAX CUTS. -C 96-06-28 LUKE LIN ADDED OPTION CARDS AND LOGIC TO MAKE FAX CUTS. -C 96-07-23 LUKE LIN POINT TO THE PRODUCTION BACKGROUND LIBRARY. -C 96-10-01 LUKE LIN MODIFY FOR NGM CGRID MAPS. -C 96-10-18 LUKE LIN MODIFY FOR VMAPMAKR MAPS. -C 96-11-18 LUKE LIN MODIFY FOR GFS PFAX1 CHARTS. -C 97-01-21 LUKE LIN MODIFY TO ADD TAPE 54 FOR PLOT OBSERVATIONS. -C 97-02-21 LUKE LIN ADD PROPER EXIT STATUS. -C 97-03-13 LUKE LIN MODIFY TO GENERATE UKMET, ECMWF, 6-10 DAY DN, -C CAC BLENDED, TDL TSTM/SVR AND HGT MEAN CHARTS. -C 97-03-21 LUKE LIN MODIFY TO GENERATE GFS ANOMALY THICKNESS, 250MB FDPLT, -C AND NAM/NGM BOUNDARY LAYER WIND/RH PLOTS. -C 97-04-02 LUKE LIN ADD OPTION FOR USER EXTRA TITLE. -C 97-04-18 LUKE LIN FIX ECMWF D+3/D+8 MAP TITLES. -C 97-05-06 LUKE LIN ADD LAND-SEA MASKING TO MOS TTM/SVR WX MAPS. -C 97-06-03 LUKE LIN MODIFY FOR 12 HOUR SFC PRESSURE CHANGE. -C 97-07-11 LUKE LIN MODIFY FOR SETTING UNDEFINED GRID ON THE POLE AREA -C FOR TYPE 5 AND MAKE TRAJECTORY 4-PANEL CHART. -C 97-08-28 LUKE LIN ADD STATISTIC REPORT AT THE END OF PROGRAM. -C 98-06-15 FACEY CONVERT TO F90 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO INDEFF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8. -C MODIFIED TO USE DIRECT ACCESS I/O ON -C FAX FILE FOR IBM SP AS A REQUIREMENT FOR -C OSO. USED LOCAL DIRECTORY FOR MAP BACKGROUND, -C HENCE EACH SCRIPT MUST COPY THE -C APPROPRIATE MAP BACKGROUND FILES FROM -C PRODUCTION DIRECTORY -C /nwprod/util/fix/graph_gphbg -C OR IN CHECK OUT USER MAY USE OWN LOCAL -C BACKGROUND DIRECTORY SUCH AS -C /nfsuser/g02/wx12ph/util/fix/graph_gphbg. -C Introduced a call to ENDMAP to put the -C end record on the fax output. ENDMAP writes -C the end record in direct access mode. -C 00-11-21 KRISHNA KUMAR New version of faxmakr to accomodate chnge in -C octet 10 of PDS for sfx prsr which was changed -C from 102 (MSL) to 01 (SFC). -C 01-08-06 BILL FACEY MODIFY VALID TIMES OF MEAN D-3,D+0,D+3,D+6, -C AND D+8 CHARTS. -C -C USAGE: -C INPUT FILES: -C FT05F001 - PROGRAM CONTROL CARDS. -C FT12F001 - THE DESIGN SEED FILE. -C -C OUTPUT FILES: -C FT06F001 - CHECK OUT STATEMENTS AND ERROR MESSAGES -C FT51F001 - HOLDS THE DESIGN FORMATED INTERMEDIATE METAFILE. -C FT61F001 - HOLDS THE COMPLETED VARIAN/FAX MAPS. -C -C SUBPROGRAMS CALLED: -C UNIQUE: - CLEAR CNTOR CUDFPI DGNOPN DGNSCN -C - FCLIP FRMFAXT GETCON GETFLD -C - GLOSEC GRD2IDGN IJ2UOR INDEFF INDFPI -C - MTITLE MODEC3 MODEC5 MODEC8 NONVIS -C - LBCNCON LNDFPI LSDFPI LSDFPZ -C - PLTVEC PRECIP REROTA SWABYT TWOFLD TXDFPI -C - TYPE66 UNPKHD UPDOWN VARIAN VHILO VTHIN -C - WNDPLT WRTDGN -C LIBRARY: -C W3LIB - W3AI01 W3AS00 W3AS01 W3AS02 W3AS03 -C - W3AI35 W3AQ15 W3FK15 W3FK40 W3FQ02 W3FQ03 -C - W3FM01 -C - W3LOG W3TAGB W3TAGE W3AK19 W3AQ09 -C GRAPHICS - BIN2EB GULFTL CONSOL -C -C EXIT STATES: -C ISTOP= 0 - SUCCESSFUL RUN -C 2 - NO FAX MAPS MADE, CHECK MAP REGISTRATION CONSTANTS! -C = 3 - NO FAX MAPS PROCESSED, CHECK DATA CARDS AND PRINT -C -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER MAXIWORD - PARAMETER (MAXIWORD=64) - INTEGER MAXJSLINE - PARAMETER (MAXJSLINE=3040) - - INTEGER LMAX - PARAMETER (LMAX=1024) - - INTEGER LMAX2 - PARAMETER (LMAX2 = 2*LMAX) !... = 2048 - -C - COMMON / CLRFLD / CLRLAT,CLRLOL,CLRUPR,LCLEAR,ECLEAR,NCLEAR - LOGICAL ECLEAR - LOGICAL LCLEAR - LOGICAL NCLEAR - REAL CLRLAT -C - COMMON / FLDCON / IDFLD(16), NUMFLD, NDEGNS -C - COMMON / KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C -C - COMMON / ILCON / MAP(15) - INTEGER MAP - -C - COMMON /ICON/ UA1(50),UA2(50),UA3(50),UM1(50),UM2(50),UM3(50), - 1 KTYPE(50) - CHARACTER*4 KTYPE -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB - 1 - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - COMMON /LLABFX/ TITPXX,TITPXY,HGTFLG,THEIGHT,NUMT,JBYT, - 1 TITLE,JFID,EXVALID -C - INTEGER TITPXX,TITPXY,HGTFLG,NUMT,JBYT - REAL THEIGHT - CHARACTER*152 TITLE - CHARACTER*48 JFID - CHARACTER*1 CIFID(48) - CHARACTER*32 EXVALID - -C - COMMON /MCON/ IADDB,IADDTAU,NUMTYP,NUMKEY, - 1 MTAU(18),MEAN(18),LMEAN,KDN,LDN - INTEGER MTAU - LOGICAL LDN - LOGICAL KDN - LOGICAL LMEAN - CHARACTER*4 MEAN - CHARACTER*104 PARM -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C - COMMON /POLE/ XPOL,YPOL,GDTYPE -ckumar - COMMON /POLENEW/ XMESHL -ckumar -C -C -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ... GRID MESH LENGHT = XMESHL = 381.0 KLM -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C ...THE POLE POSITION IN GRID(53,57) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C - - INTEGER IMAGSIZ_WRDS - PARAMETER (IMAGSIZ_WRDS=MAXIWORD*MAXJSLINE) -C -ckumar - INTEGER IBITPLANE(IMAGSIZ_WRDS) -ckumar - INTEGER LBGUNIT -C ... LBGUNIT -- INPUT BACKGROUND UNIT; NTOTWD - INTEGER NTOTWDS -C ... TOTAL WORDS IN BACKGROUND FILE - INTEGER NOLINES -C ... NO OF SCAN LINES IN THE BCAKGROUND FILE - INTEGER NOWIDTH -C ... THE WIDTH OF THE BACKGROUND FILE IN WORDS - INTEGER NOPIXELS -C ... THE WIDTH OF THE BACKGROUND FILE IN PIXELS -C - COMMON /UUNAME/ USRBYT,LUNAM,USRNAM -C - INTEGER USRBYT - LOGICAL LUNAM - CHARACTER*96 USRNAM -C -C .... THIS SET IS FOR UOR_DOT - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL U - LOGICAL UORFG -C -C ... FOR CONTOR OPTIONS - COMMON /CNTROP/ NDVD, NDIV, NCNTRFILT, NCENTFILT,SHADIV - INTEGER SHADIV -C ... NDVD FOR INTERPOLATION, NDIV FOR DIVISION -C ... NCNTRFILT FOR CONTOUR FILTER, NCENTFILT FOR CENTER FILTER -C -C - COMMON /CPOB/ CPOBFG,ITAPOB,ILVLT,KRUN,IOPTRA(2) - LOGICAL CPOBFG -C - REAL GRIDT1 -C - CHARACTER*80 INTEXT -C - COMMON /MESSG/ NUMGOD,SUBNUMS,ERRMSG,EXTRATIT -C - INTEGER NUMGOOD,SUBNUMS(40) -C - CHARACTER*55 ERRMSG(05) - CHARACTER*95 EXTRATIT - - CHARACTER*55 ENDMSG -C - CHARACTER*40 BLANKS - CHARACTER*12 CLEAR - CHARACTER*8 BLANK8 -C - INTEGER FAXFIL - INTEGER BDATE - INTEGER CLRLOL(2) - INTEGER CLRUPR(2) - INTEGER DGNSED - INTEGER GDTYPE - INTEGER MAXMAP -C -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C - INTEGER IGRIDT - INTEGER KDATE(2) - INTEGER OUTDGN,OUTDGN1,OUTDGN2,OUTDGN3,OUTDGN4,NUMDGN - INTEGER IFAXNO - INTEGER KFLAG - INTEGER IFCBF(180) - CHARACTER*8 GRIDTP -C - COMMON / GRB1 / LUGRB, LUGRBIX, IFCSTHR - INTEGER LUGRB, LUGRBIX - INTEGER GRPWHICH - INTEGER GRPMAP -C - INTEGER KROT_PRI(2),ICMD,IPT,JPT,NCHAR - REAL HEIGHT,ANGLE - CHARACTER*4 CTEXT -C - INTEGER IWINDOW(30) - LOGICAL LEBCDIC - LOGICAL EXTRA - INTEGER IACC - CHARACTER*8 CACC - EQUIVALENCE (IACC,CACC) -C -C - CHARACTER*40 CPATHBGND - CHARACTER*1 NULL - INTEGER LUNBGD - PARAMETER (LUNBGD=41) !... INPUT UNIT FOR MAP-BGND -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - COMMON /ALT_LBL/ LBL_INCOREQ,LBL_EMPTYQ,LABEL_PKD(LMAX) - LOGICAL LBL_INCOREQ - LOGICAL LBL_EMPTYQ - INTEGER LABEL_PKD -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... FOR PLOTTED STRIP-TITLES IN IMAGE_STR(I,J) ... - INTEGER MAXIWORD_STR - PARAMETER (MAXIWORD_STR=27) !... 27 I*8 = 1728 PELS - - INTEGER MAXJSLINE_STR - PARAMETER (MAXJSLINE_STR=800) !... LIMIT STRIP TITLES - -ckumar COMMON /STITLES/ IMAGE_STR - INTEGER IMAGE_STR(MAXIWORD_STR,MAXJSLINE_STR) - - COMMON /STITLPLT/NRECSTART_STR, NITMPLTED_STR, - 1 MXJVAL_STR, MXJLABITM_STR - INTEGER NRECSTART_STR !... PTR IN LABEL FILE - INTEGER NITMPLTED_STR !... COUNT STRITM PLTED - INTEGER MXJVAL_STR !... MAXJ STR PLTED - INTEGER MXJLABITM_STR !... AND THAT LABL ITEM -C - INTEGER IL_STR(15) - INTEGER IWINDOW_STR(30) !... map const: STRIP TITLES - INTEGER IMAGSIZ_STR - INTEGER NPXLOUT_STR - INTEGER NROWSHOW_STR -C - LOGICAL LCHKSORTQQ - LOGICAL LANYTITLESQQ -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . Statisitcs about LABEL array via LOOK_LAB() . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - integer lmtmxmn - parameter (lmtmxmn=8) - - INTEGER LMTPRIOR - PARAMETER (LMTPRIOR=8) - - COMMON /STAT_LAB/NITEM_TOT,NITEM_TITLE,NPRIOR_LAB, - 1 MAXIJ_LAB,MINIJ_LAB - - INTEGER NITEM_TOT !... TOTAL COUNT OF LABEL-ARRAY ITEMS - INTEGER NITEM_TITLE - INTEGER NPRIOR_LAB(LMTPRIOR,2) - integer MAXIJ_LAB(LMTMXMN,2) - integer MINIJ_LAB(LMTMXMN,2) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . used by bufow512() and bf512_wr() . . . . . - - COMMON /ARBFOX6B/ LUNX6B,LUX6BOPNQ,NBUFX6B,IPTR_X6BF - INTEGER LUNX6B - LOGICAL LUX6BOPNQ - INTEGER NBUFX6B - INTEGER IPTR_X6BF -C . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER J_FR_MAX - PARAMETER (J_FR_MAX=4) - INTEGER IWRD_FR_MAX - PARAMETER (IWRD_FR_MAX=15) - INTEGER IPXL_FR_MAX - PARAMETER (IPXL_FR_MAX=16) - - INTEGER LUNEXT6B - PARAMETER (LUNEXT6B=80) -C -C .......... FOR FAX CUT -C - COMMON /FAXICK/ ISCHED(8,50),INXISCHED - COMMON /FLFSRP/ INXLFSTRP,LSNUMBYT(20),LSINTEXT(20),LSTITPX(20), - 1 LSTITPY(20),LSDCKPX(20),LSDCKPY(20), - 2 LSDCKOPT(20),LSFONT(20) - CHARACTER*120 LSINTEXT - REAL LSFONT - COMMON /FRTSRP/ INXRTSTRP,RSNUMBYT(20),RSINTEXT(20),RSTITPX(20), - 1 RSTITPY(20),RSFONT(20),RSFCSTHR(20) - CHARACTER*120 RSINTEXT - INTEGER RSNUMBYT,RSTITPX,RSTITPY,RSFCSTHR - REAL RSFONT -C - COMMON/IOUTFAX/IFAXOUT,NRECFAX ! ADDED FOR DIRECT ACCESS FOR FAX OUTPUT -C - INTEGER IFAXOUT,NRECFAX -C - CHARACTER*8 BGNAME - EQUIVALENCE (BGNAME,MAP(1)) -C -C ... OPTN BITS TO MATCH THOSE GIVEN IN MAP(2) ... - INTEGER K0008X - DATA K0008X / X'0008' / !... LEAVE OUTP OPEN AT EXIT - INTEGER K0010X - DATA K0010X / X'0010' / !... ADDING ONTO LEFT-OPEN OUTP - - INTEGER MYOPTNBITS -C -ckumar -ckumar used block data statements separately !!!! -ckumar DATA ISCHED / 165, 0, 0, 1800, X'8000',X'D800',0,0, -ckumar 1 392*0/ -ckumar - DATA BLANKS - 1 /' '/ -C /'123456789012345678901234567890123456789012345678901234567890'/ - DATA CLEAR /'CLEAR CLEARE'/ - DATA BLANK8 /' '/ - DATA KFLAG /Z'FFFFFC0000000000'/ -C - EQUIVALENCE (IGRIDT,GRIDTP) -C -C--------------------- PROGRAM STARTS ------------------------------- -C -C - SAVE - CALL W3TAGB('FAXMAKRX',2001,0263,0080,'NP12') -C - PARM = ' ' - IERR = 0 - - CALL W3AS00(NC,PARM,iret) -C -C CHECK TO SEE IF THERE IS A USER NAME IN THE PARM FIELD. -C - LUNAM = .FALSE. - IF(NC.GT.5)THEN - WRITE(6,FMT='('' MAIN: PARM="'',A,''".'')')PARM(1:NC) - IF(PARM(1:5).EQ.'NAME=')THEN - USRBYT = NC - 5 - USRNAM(1:USRBYT) = PARM(6:NC) -C - WRITE(6,FMT='('' USER NAME HAS'',I3,'' BYTES AND IS:"'', - 1 A,''".'')')USRBYT,USRNAM(1:USRBYT) - LUNAM = .TRUE. - ELSE - WRITE(6,FMT='('' NO USER NAME IN PARM!'')') - ENDIF -C - ENDIF - NULL = CHAR(0) - NUMGOOD = 0 - EXTRA = .FALSE. - ISTOP = 0 - LUNX6B = LUNEXT6B - IEXIT = 0 -C - CALL GETOVL(MAXMAP,DGNSED,MAP) - print*,'In main after GETOVL ' -C ... READ THE OVERALL MANDATORY INFORMATION IN -C PRINT 85, (MAP(NN),NN=2,15) -C 85 FORMAT (1H , 14(1X, I6)) - -C -C START MAIN LOOP... -C - GRPMAP = 0 - GRPWHICH = 0 - MWHICH = 1 -C ... GRPMAP FOR THE NUMBER OF MAP OF EACH FCST HOUR -C ... MIWHICH IS THE INDEX FOR EACH GROUP OF FCST HOUR -C -C -ckumar - NRECFAX = 0 -ckumar -C - 100 CONTINUE -C -C ... STARTING NEXT MAP .... -C - KEXIT = 0 -C - IF (MWHICH .GT. MAXMAP) GO TO 900 -C ... IF FINISH ALL MAPS, EXIT TO THE MAIN LOOP ... -C - PRINT 110,MWHICH - 110 FORMAT(/,1H0,'*** THIS IS THE ',I4,' MAP.') -C -C - PRINT *,' GRPWHICH=',GRPWHICH, ' GRPMAP=',GRPMAP - IF (GRPWHICH .EQ. GRPMAP) THEN -C ...GET ANOTHER FORECAST GROUP INFORMATION - CALL GETGRP(GRPMAP,LUGRB,LUGRBIX,IFCSTHR) - GRPWHICH = 0 - ENDIF -C . . . . . CONSTANTS FOR THE STRIP-TITLE WINDOW . . . . . . - - IL_STR(1) = 0 !... NO MAP BGND FOR STRIP-TITLE REGION - IL_STR(2) = 0 - - IL_STR(3) = 72 !... 1800-(72)=1728pels =27 longwords - IL_STR(4) = 0 - IL_STR(5) = 1728 - IL_STR(6) = MAXJSLINE_STR !... = 800 scanline max - - IL_STR(7) = 72 - IL_STR(8) = 0 - IL_STR(9) = 1728 - IL_STR(10) = MAXJSLINE_STR - - IL_STR(11) = 0 - IL_STR(12) = 0 - IL_STR(13) = 0 - IL_STR(14) = -7399 !... delta-j to position titles - IL_STR(15) = 0 - - CALL CONSTA(IL_STR,IWINDOW_STR) - - IWINDOW_STR(21) = 1 !... flags this as strip-titles -C -C - CALL CONSTA(MAP,IWINDOW) -C . . . COMPUTE SCALE AND ADJUSTMENT CONSTANTS ... -C - NOLINES = IWINDOW(4) - NOWIDTH = IWINDOW(15) - NOPIXELS = IWINDOW(16) - NTOTWDS = NOWIDTH * NOLINES - -C - MYOPTNBITS = 0 - - IF(IAND(MAP(2),K0010X) .NE. 0) THEN -C ... IF ADDING-ON TO PREVIOUSLY LEFT-OPEN PRODUCT FILE, - MYOPTNBITS = IBSET(MYOPTNBITS,0) !... MULTI-PANEL - MYOPTNBITS = IBSET(MYOPTNBITS,1) !... ADDING ON TO EXISTG - ENDIF - IF(IAND(MAP(2),K0008X) .NE. 0) THEN -C ... IF LEAVING THE OUTPUT FILE OPEN AT EXIT, - MYOPTNBITS = IBSET(MYOPTNBITS,0) !... MULTI-PANEL - MYOPTNBITS = IBSET(MYOPTNBITS,2) !... LEAVE OPEN AT END - ENDIF - -C - IF((NOWIDTH .LE. 0) .OR. (NOLINES .LE. 0)) THEN - WRITE(ERRMSG(2)(1:55), - 1 FMT='(''NO FAX MAPS MADE, CHECK MAP REGISTRATION CONS'', - 2 ''TANTS!!!!:'')') -C 1 '123456789012345678901234567890123456789012345', -C 2 ''6789012345'')') - WRITE(6,FMT='(1H ,''CNTR::CONSTA: DIMENSIONS OF IMAGE= ('', - 1 I4,'','',I6,'') ... WHICH ARE WRONG ! ! !'', - 2 /1H ,'' GO CHECK THE MAP REGISTRATION CONSTANTS!'', - 3 /1H ,'' * * * * E R R O R S T O P * * * *'')') - A NOWIDTH,NOLINES - IEXIT= 2 - GO TO 999 - ENDIF -C - DO I = 1,NTOTWDS - IBITPLANE(I) = 0 - ENDDO -C - -C ... THE FOLLOWING STRIP-TITLE INITIALIZATION NEEDS TO HAVE -C ... SOME IF TESTS FOR FIRST PANEL OF MULTI-CALL-CNTR PRODUCT - DO J = 1,MAXJSLINE_STR - DO I = 1,MAXIWORD_STR - IMAGE_STR(I,J) = 0 - ENDDO - ENDDO -C - NRECSTART_STR = 0 !... PTR IN LABEL FILE - NITMPLTED_STR = 0 - MXJVAL_STR = 0 - MXJLABITM_STR = 0 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C INITIALIZE LABEL ARRAY -C - LABIX = 0 - NOBUF = 0 -C - IPT = 1 - JPT = 0 - HEIGHT = 1.0 - ANGLE = 0.0 - KROT_PRI(1) = 0 - KROT_PRI(2) = 0 - CTEXT(1:1) = '?' - CTEXT(2:2) = CHAR(1) - CTEXT(3:3) = '$' - CTEXT(4:4) = CHAR(0) - NCHAR = 2 - ICMD = -2 - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, - X ICMD) -C - INXRTSTRP = 0 - INXISCHED = 1 - INXLFSTRP = 0 - DO LL = 2, 50 - DO NN = 1, 8 - ISCHED(NN,LL) = 0 - ENDDO - ENDDO -C ... DEFAULT FOR MAPPING CONSTANTS - UGRIDT1 = 37.5 - UORFG = .FALSE. - UXPO = 33.0 - UYPO = 33.0 - UXADJUS = -9.0 - UYADJUS = -7.0 - UCU2GI = 3810.0 -C ... DEFAULT FOR CONTOUR OPTIONS AND FILTERS - NDVD = 2 - NDIV = 4 - NCNTRFILT = 0 - NCENTFILT = 0 -C - INTEXT = BLANKS//BLANKS -C - 200 CONTINUE -C -C -C INITIALIZE POINTERS -C - JEXIT = 0 - CALL GETCON(INBYTE,INTEXT,NUMDGN,OUTDGN1,OUTDGN2, - 1 FAXFIL,GRIDT1,IFAXNO) -ckumar - IFAXOUT = FAXFIL -ckumar -ckumar OPEN THE OUTPUT FAX FILE IN DIRECT ACCESS MODE -ckumar REQUIREMENT FOR OSO -ckumar - OPEN (IFAXOUT, ACCESS='DIRECT', RECL=1440 ) -ckumar - OUTDGN3 = 78 - OUTDGN4 = 79 -C - IF (NDEGNS .EQ. 1) THEN - OUTDGN = OUTDGN1 - IF (CPOBFG) THEN - CALL RDOBVT(IERROR) -C ..... READ OBSERVATION TAPE - PRINT 212,IERROR - 212 FORMAT(1H0,'ERROR RETURN FROM RDOBVT ',I5) - ENDIF -C -C LOAD THE BACKGROUND IN -C - CPATHBGND(1:40) = ' ' -ckumar -ckumar Map background files are copied to the working local directory. -ckumar User must copy the relevant map background files from -ckumar /nwprod/util/fix/graph_gphbg -ckumar to the running directory in the script. -ckumar - CPATHBGND(1:) = './' //NULL -ckumar - CALL GETBGND(LUNBGD,CPATHBGND,IWINDOW, - 1 IBITPLANE,IRET_BG) - IF (BGNAME(1:6) .EQ. 'SH4001') CALL SHPLOT -C .... PLOT SPECIAL STATION ON SH4001 BACKGROUND - IF (GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) CALL POLSTNEX - IF (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48) CALL POLSTNEX -C .... PLOT SPECIAL STATION ON NH4005 FOR PFAX1 - - ELSE IF (NDEGNS .EQ. 2) THEN - OUTDGN = OUTDGN2 - ELSE IF (NDEGNS .EQ. 3) THEN - OUTDGN = OUTDGN3 - ELSE IF (NDEGNS .EQ. 4) THEN - OUTDGN = OUTDGN4 - ELSE - PRINT *, ' THE OUTPUT DESIGN FILE IS WRONG--',NDEGNS - OUTDGN = OUTDGN1 - ENDIF -C -C GET AND CHECK GRID TYPE FOR A VALID ONE. -C - IGRIDT = IDFLD(5) -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (IGRIDT, 8_8, 1_8) -#endif - IGRIDP = mova2i(GRIDTP(8:8)) - GDTYPE = IGRIDP - IF (KEXIT .EQ. 0) THEN - IF (GDTYPE.EQ.26 .OR. GDTYPE.EQ.27 .OR. GDTYPE.EQ.05 .OR. - 1 GDTYPE.EQ.101 .OR. GDTYPE.EQ.104 .OR. GDTYPE.EQ.28) THEN - print *,' lugrb=',lugrb,' lugrbix=',lugrbix - print *,' GDTYPE=', GDTYPE - PRINT *, 'NCNTRFILT, NCENTFILT = ', NCNTRFILT, NCENTFILT - CALL GRD2IDGN(DGNSED,KEYIDX,LUGRB, - 1 LUGRBIX,OUTDGN,INBYTE,INTEXT,GRIDT1, - 2 KDATE,JEXIT) - IF (JEXIT.NE.0) THEN - IEXIT = JEXIT - KEXIT = JEXIT - PRINT *,' ' - PRINT *,'--------------------------------------------' - WRITE(6,FMT='('' FATAL ERROR RETURN FROM GRD2DGN ='', - 1 I4,/,'' WILL NOT MAKE AND FAX CHART FOR: '',/,A)') - 2 IEXIT,INTEXT(1:INBYTE) - PRINT *,'--------------------------------------------' - PRINT *,' ' - ENDIF - ELSE -C -C THIS WAS NOT A VALID GRID TYPE SO READ TO END OF -C THIS SET OF DATA CARDS -C - PRINT *,' ' - PRINT *,'--------------------------------------------' - WRITE(6,FMT='('' FATAL ERROR BAD GRID TYPE ='', - 1 I4,/,'' WILL NOT MAKE AND FAX CHART FOR '',/,A)') - 2 GDTYPE,INTEXT(1:INBYTE) - PRINT *,'--------------------------------------------' - PRINT *,' ' - KEXIT = 1 - IEXIT = 1 - ENDIF -C -C CLOSE THE DESIGN SEED FILE AND -C AND THE INTERMEDIATE DESIGN FILE. -C - CLOSE (UNIT=DGNSED) - CLOSE (UNIT=OUTDGN) - ENDIF -C - IF (NDEGNS .LT. NUMDGN ) GO TO 200 -C .... GO BACK TO GENERATE SECOND DESIGN FILE -C -C -C =============== COME HERE, ALL THE DESIGN FILE BEING GENERATED ======== -C WE NEED TO SCAN LINE ELEM AND LINE STRINGS FIRST -C THEN TEXT STRING AFTER ABOVE ITEMS FOR BOTH DESIGNS -C -C - IF (KEXIT .EQ. 0) THEN -C -C OPEN THE INTERMEDIATES DESIGN FILE 1 FOR CONVERTING -C - CALL DGNOPN(OUTDGN1,IRTN) - IF(IRTN.EQ.0)THEN -C print *, ' **** design 1 for line string *****' -C -C SUCCESS WITH OPENING THE INTERMEDIATE DESIGN FILE 1 . -C - IELETYP = 3 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line elems', irtn -C ...for line element.... - IELETYP = 4 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line string', irtn -C ... FOR LINE STRING - ELSE - PRINT *, ' ERROR WHILE TRY TO OPEN DGN FILE 1' - ENDIF - CLOSE (UNIT=OUTDGN1) - ENDIF -C - IF (NUMDGN .GT. 1 .AND. KEXIT .EQ. 0) THEN -C -C OPEN THE INTERMEDIATES DESIGN FILE 2 FOR CONVERTING -C - CALL DGNOPN(OUTDGN2,IRTN) - IF(IRTN.EQ.0)THEN -C -C SUCCESS WITH OPENING THE INTERMEDIATE DESIGN FILE 2 . -C -C print *, ' **** design 2 for line string *****' - IELETYP = 3 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line elems', irtn -C ...for line element.... - IELETYP = 4 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line string', irtn -C ... FOR LINE STRING - ELSE - PRINT *, ' ERROR WHILE TRY TO OPEN DGN FILE 2' - ENDIF - CLOSE (UNIT=OUTDGN2) - ENDIF -C - IF (NUMDGN .GT. 2 .AND. KEXIT .EQ. 0) THEN -C -C OPEN THE INTERMEDIATES DESIGN FILE 3 FOR CONVERTING -C - PRINT *, 'GULPXX(2) =', GULPXX(2) - PRINT *, 'GULPXY(2) =', GULPXY(2) -C - IF (GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) THEN -C -C .... FOR THE TEMPERATURE PLOT -PFAX1 WITH A CIRCLE - PRINT *,' ***NOT PLOT THE THIRD CONTOUR***' -C - ELSE IF (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48) THEN -C -C .... FOR THE TEMPERATURE PLOT -PFAX1 WITH A BOX - PRINT *,' ***NOT PLOT THE THIRD CONTOUR***' -C - ELSE - CALL DGNOPN(OUTDGN3,IRTN) - IF(IRTN.EQ.0)THEN -C -C SUCCESS WITH OPENING THE INTERMEDIATE DESIGN FILE 3 . -C -C print *, ' **** design 3 for line string *****' - IELETYP = 3 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line elems', irtn -C ...for line element.... - IELETYP = 4 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line string', irtn -C ... FOR LINE STRING - ELSE - PRINT *, ' ERROR WHILE TRY TO OPEN DGN FILE 3' - ENDIF - CLOSE (UNIT=OUTDGN3) - ENDIF - ENDIF -C - IF (NUMDGN .GT. 3 .AND. KEXIT .EQ. 0) THEN -C -C OPEN THE INTERMEDIATES DESIGN FILE 3 FOR CONVERTING -C - PRINT *, 'GULPXX(2) =', GULPXX(2) - PRINT *, 'GULPXY(2) =', GULPXY(2) -C - IF (GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) THEN -C -C .... FOR THE TEMPERATURE PLOT -PFAX1 WITH A CIRCLE - PRINT *,' ***NOT PLOT THE THIRD CONTOUR***' -C - ELSE IF (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48) THEN -C -C .... FOR THE TEMPERATURE PLOT -PFAX1 WITH A BOX - PRINT *,' ***NOT PLOT THE THIRD CONTOUR***' -C - ELSE - CALL DGNOPN(OUTDGN3,IRTN) - IF(IRTN.EQ.0)THEN -C -C SUCCESS WITH OPENING THE INTERMEDIATE DESIGN FILE 3 . -C -C print *, ' **** design 3 for line string *****' - IELETYP = 3 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line elems', irtn -C ...for line element.... - IELETYP = 4 - CALL DGNSCN(IELETYP,IBITPLANE,NOWIDTH,NOLINES,STATUS) -C print *,' after scanning line string', irtn -C ... FOR LINE STRING - ELSE - PRINT *, ' ERROR WHILE TRY TO OPEN DGN FILE 3' - ENDIF - CLOSE (UNIT=OUTDGN3) - ENDIF - ENDIF -C -C -C CLOSE THE LABEL TAPE -C - ICMD = -7 - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, - X ICMD) - ICMD = 999 - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, - X ICMD) -C -C - IF (KEXIT .EQ. 0) THEN -C *** SORT THE LABEL TAPE -C . . . S T E P (1.) SORT THE LABEL-ARRAY DATA -C WHETHER IN-CORE OR OUT ON FILE FT55 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - -C *** *** *** -C ... THE LABEL LIST IS ON A SEQUENTIAL FILE ... -C -C ... TO SORT/MERGE THE EXTERNAL FILE-55 LABEL-ARRAY FILE, - REWIND 55 - CALL MERGES(LUNINP,IRET_MRG) - IF(IRET_MRG .NE. 0) THEN -C ... IN OLD VERSION, THAT USED TO STOP WITHIN MERGE - WRITE(6,FMT='(1H ,''MAIN::MERGES: SERIOUS ERROR ... '', - 1 ''RETURNED WITH CODE='', I5)') - A IRET_MRG - REWIND LUNINP - - ELSE - WRITE(6,FMT='(1H ,''AINR: normal return from merges '', - 1 ''with sorted LABEL-data on ITAPE='',I4)') - A LUNINP - ENDIF - -C ... TO GATHER STATISTICS ABOUT THE LABEL-ARRAY ITEMS ... - NITEM_TOT = 0 - NITEM_TITLE = 0 - LANYTITLESQQ = .FALSE. - do j = 1,2 - do i = 1,LMTPRIOR - NPRIOR_LAB(I,J) = 0 - ENDDO - ENDDO - do j = 1,2 - do i = 1,LMTMXMN - MAXIJ_LAB(I,J) = 0 - ENDDO - ENDDO - do j = 1,2 - do i = 1,LMTMXMN - MINIJ_LAB(I,J) = 0 - ENDDO - ENDDO - if(.NOT. LBL_EMPTYQ) THEN - LCHKSORTQQ = .TRUE. - - call look_lab(LUNINP, LCHKSORTQQ, IRET_look) -C ... which works for case of LBL_INCOREQ also, -C ... by querying COMMON /ALT_LBL/ ... - -C WRITE(6,FMT='(1H ,''MAIN::look_lab: RETURNED WITH TOTAL '', -C 1 '' SORTED ITEM COUNT='',I8, -C 2 /1h ,7X,''look_lab() RETURN-CODE ='',I4)') -C A NITEM_TOT,IRET_look - - IF(IRET_LOOK .NE. 0) THEN - WRITE(6,FMT='(1H ,''MAIN:... WARNING ...:LOOK_LAB FAILED '', - 1 ''WITH RETURN CODE='',I3)') - A IRET_LOOK - ELSE -C ... OTHERWISE, NORMAL return from LOOK_LAB ... - IF(NITEM_TITLE .LE. 0) THEN - LANYTITLESQQ = .FALSE. - ELSE - LANYTITLESQQ = .TRUE. - ENDIF - ENDIF - ENDIF -C -C -C *** CALL PRINT TITLE TO OUTPUT TAPE54 -C - LEBCDIC = .FALSE. - DO IPRIO = 1, 5 - LOOPRIOR = IPRIO - 1 - CALL PRTITLE(LUNINP,LOOPRIOR,IWINDOW,LEBCDIC, - 1 IBITPLANE,NOWIDTH,NOLINES,IRTN) -C PRINT *,' PRTITLE: RETN-CODE=', IRTN - - IF(LANYTITLESQQ) THEN - NRECSTART_STR = minij_lab(7,2) - ICOUNTSTRIP = NPRIOR_LAB(IPRIO,2) - IF(ICOUNTSTRIP .GT. 0) THEN -C WRITE(6,FMT='(1H ,''MAIN::PRTITLE: FOR LOOPRIOR='',I3, -C 1 ''; COUNT OF STRIP-TITLE ITEMS='',I5, -C 2 /1H ,'' SO WE MUST CALL PRTITLE(FOR STRIP TITLES)'', -C 3 /1h ,'' WHICH BEGIN IN RECORD NUMBER='',I5)') -C A LOOPRIOR,ICOUNTSTRIP,NRECSTART_STR - CALL PRTITLE(LUNINP,LOOPRIOR,IWINDOW_STR,LEBCDIC, - 1 IMAGE_STR,MAXIWORD_STR,MAXJSLINE_STR,IRTN) - PRINT *,' PRTITLE: RETN-CODE=', IRTN - -C ELSE -C WRITE(6,FMT='(1H ,''MAIN::PRTITLE: FOR LOOPRIOR='',I3, -C 1 ''; NO STRIP-TITLES TO PROCESS'')') -C A LOOPRIOR - ENDIF - ENDIF - ENDDO -C -C *** CONVERT IT TO NMC 6-BIT **** -C - IF (KEXIT .EQ. 0 .AND. IRTN .EQ. 0) THEN -C -C ... to convert image to Extended 6-bit format and output it ... -C ... checkout only to output pure-raster image files ... - PRINT *,' NTOTWDS=',NTOTWDS - PRINT *,' NOWIDTH=', NOWIDTH - PRINT *,' NOLINES=', NOLINES -C LUNRAS = 89 -C WRITE(LUNRAS,ERR=900) (IBITPLANE(I),I=1,NTOTWDS) -C????????????????????????????????????????????????? - imgtyp = 0 !... main body of map -C - CALL img2x6t(imgtyp,IBITPLANE,NTOTWDS,NOWIDTH,NOLINES, - 1 IWINDOW(IPXL_FR_MAX),NOLINES,iret_ras2) -C - if(iret_ras2 .NE. 0) then - write(6,FMT='(1h ,''main::img2x6t:(main) Failed with '', - 1 ''retn code='',I5)') - A iret_ras2 - - IRET_CNT = 4 - go to 800 - endif -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... WAS ANY STRIP TITLES WRITTEN TO IMAGE_STR ?? - IF(NITMPLTED_STR .GT. 0) THEN - - IMAGSIZ_STR = MAXIWORD_STR * MAXJSLINE_STR - NPXLOUT_STR = 1728 - NROWSHOW_STR = MAXJSLINE_STR !... = 800 - LNCOUNT_STR = 800 !... might be reduced by dataj - - imgtyp = 1 !... passing the strip-title image - CALL img2x6t(imgtyp,IMAGE_STR,IMAGSIZ_STR, maxiword_STR, - 1 lncount_STR, - 2 npxlout_STR, nrowshow_STR,iret_ras2) - - if(iret_ras2 .NE. 0) then - write(6,FMT='(1h ,''main::img2x6t:(strp-titles) Failed '', - 1 ''with retn code='',I5)') - A iret_ras2 - IRET_CNT = 5 - go to 800 - endif -C ELSE -C write(6,FMT='(1h ,''main: skipped img2x6t() for converting '', -C 1 ''strip-title image into X6B code'', -C 2 /1h ,7X,''because no title data was plotted'')') - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C ================================================================ - - ISCHED(1,1) = IFAXNO - IFAXFG = 0 - CALL COMIFID(IFAXNO,JFID,IFAXFG,CIFID) - PRINT *,' CIFID=',(CIFID(M),M=1,48) - MYOPTNBITS = IBSET(MYOPTNBITS,7) !... GIVEN IFID IS IN ASCII -ckumar - NUMRECFAX = NRECFAX - LUNIPK6 = IFAXOUT - - CALL REBLKFX4(LUNEXT6B,LUNIPK6,NUMRECFAX,ISCHED,CIFID, - 1 MYOPTNBITS, iret_reb) -ckumar -ckumar We decrement NRECFAX by 1 to eliminate zero filled record -ckumar - NRECFAX = NUMRECFAX-1 -ckumar -C -C write(6,FMT='(1h ,''main::reblkfx4: return code='',I6)') -C A iret_reb - - NUMGOOD = NUMGOOD + 1 - SUBNUMS(NUMGOOD) = IFAXNO - ENDIF - ENDIF -C - 800 CONTINUE - MWHICH = MWHICH + 1 - GRPWHICH = GRPWHICH + 1 - CLOSE(UNIT=55) -C - IF (IRET_RAS2 .NE. 0) IERR = IRET_RAS2 - IF (IRET_REB .NE. 0) IERR = IRET_REB -C - GO TO 100 -C - 900 CONTINUE -C -C ....FINISH ALL MAPS -C -ckumar -ckumar IFCBF(1) = KFLAG -ckumar WRITE(IFAXOUT)IFCBF -ckumar Writing the final record in direct access mode. -ckumar - CALL ENDMAP(IFAXOUT,NRECFAX) - CLOSE (IFAXOUT) -C -C .....WRITE END-OF-MAP AT THE END VARIAN FILE -C - IF(NUMGOOD.LE.0)THEN - WRITE(ERRMSG(3)(1:55), - 1 FMT='('' FATAL ERROR - NO FAX MAP HAS BEEN MADE. '', - 2 ''PLEASE CHECK:'')') -C 1 '123456789012345678901234567890123456789012345', -C 2 ''6789012345'')') - NUMGOOD = 0 - IEXIT = 3 - PRINT *,' ' - PRINT *,'-------------------------------------------------' - PRINT *,ERRMSG(3) - ELSE -C - WRITE(ERRMSG(1)(1:55), - 1 FMT='(''MADE'',I3,'' OF'',I3,'' FAX MAPS THE SUBSET '', - 2 ''NUMBERS ARE: '')')NUMGOOD,MAXMAP -C 1 '123456789012345678901234567890123456789012345', - PRINT *,' ' - PRINT *,'-------------------------------------------------' - WRITE(6,FMT='('' MAIN:'',A)')ERRMSG(1)(1:55) - IF(NUMGOOD.GE.1)THEN - EXTRA = .TRUE. - ELSE - EXTRA = .FALSE. - ENDIF - ENDIF -C - 999 CONTINUE -C -C - IF(IEXIT.EQ.0)THEN - ISTOP = 1 - ELSE - ISTOP = IEXIT - IERR = IEXIT - ENDIF -C - ENDMSG = ERRMSG(ISTOP) - CALL CONSOL(ENDMSG) -C - IF(EXTRA)THEN -C - NUMT = 0 - NUMT = NUMGOOD/10 - IREM = MOD(NUMGOOD,10) - IF(IREM.NE.0)THEN - NUMT = NUMT + 1 - ENDIF - ISRT = 1 - IF(NUMGOOD.LE.10)THEN - IEND = NUMGOOD - LEFT = 0 - JEND = NUMGOOD - ELSE - IEND = 10 - JEND = 10 - LEFT = NUMGOOD - 10 - ENDIF -C -C WRITE(6,FMT='('' MAIN: MAKING'',I2,'' EXTRA CONSOL '' -C 1 ''MESSAGES BECAUSE !'')')NUMT -C - DO KK = 1,NUMT - EXTRATIT = ' ' - WRITE(EXTRATIT(1:95),FMT='(''SUBN='',20(I4,1X))') - 1 (SUBNUMS(II),II=ISRT,IEND) -C - KLOC = JEND*5+5 -C - EXTRATIT(KLOC:KLOC) = ':' - WRITE(6,FMT='('' MAIN:'',A)')EXTRATIT(1:KLOC) - CALL CONSOL(EXTRATIT) -C -C CHECK TO SEE IF WE ARE FINISHED -C - IF(LEFT.EQ.0)THEN - ELSE - ISRT = IEND + 1 - IF(LEFT.LE.10)THEN - IEND = NUMGOOD - JEND = NUMGOOD - LEFT = 0 - ELSE - IEND = ISRT + 10 - LEFT = NUMGOOD - IEND - ENDIF - ENDIF - ENDDO - ENDIF -C - PRINT *,"-------------------------------------------------" -C - CALL W3TAGE('FAXMAKRX') -C CALL W3AS02 (ISTOP) - CALL ERREXIT(IERR) ! cray EXIT modified for IBM/SP - STOP - END diff --git a/util/sorc/faxmakrx.fd/makefile b/util/sorc/faxmakrx.fd/makefile deleted file mode 100755 index 13372e055f..0000000000 --- a/util/sorc/faxmakrx.fd/makefile +++ /dev/null @@ -1,27 +0,0 @@ -SHELL=/bin/sh -# -OBJS = main.orig.o main.block.data.o \ - grd2idgn.o frmfaxt.o getcon.o \ - getfld.o absvor.o indeff.o getovl.o getgrp.o comifid.o \ - strptitl.o labelcon.o precip.o mtitle.o iw3getv.o shplot.o \ - subfld.o twofld.o unpkhd.o updown.o wndplt.o gulftl.o \ - clear.o clredg.o block.o uor_dot.o absvws.o \ - gentre.o thinlb.o savlab.o clabep.o closex.o closey.o \ - templn.o templp.o polstnex.o rdobvt.o copyob.o ptwndx.o \ - tuwndr.o pltrh.o indfsea.o xlabel.o indftraj.o \ - indfslfm.o tjlabel.o vbound.o closee.o closet.o - -FC = ifort - -FFLAGS = -D_LITTLE_ENDIAN -O -g -traceback -C -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -LDFLAGS = -qopenmp - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} ${W3G_LIB8} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -faxmakrx: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -clean: - /bin/rm -f $(OBJS) diff --git a/util/sorc/faxmakrx.fd/makefile.theia b/util/sorc/faxmakrx.fd/makefile.theia deleted file mode 100755 index 13372e055f..0000000000 --- a/util/sorc/faxmakrx.fd/makefile.theia +++ /dev/null @@ -1,27 +0,0 @@ -SHELL=/bin/sh -# -OBJS = main.orig.o main.block.data.o \ - grd2idgn.o frmfaxt.o getcon.o \ - getfld.o absvor.o indeff.o getovl.o getgrp.o comifid.o \ - strptitl.o labelcon.o precip.o mtitle.o iw3getv.o shplot.o \ - subfld.o twofld.o unpkhd.o updown.o wndplt.o gulftl.o \ - clear.o clredg.o block.o uor_dot.o absvws.o \ - gentre.o thinlb.o savlab.o clabep.o closex.o closey.o \ - templn.o templp.o polstnex.o rdobvt.o copyob.o ptwndx.o \ - tuwndr.o pltrh.o indfsea.o xlabel.o indftraj.o \ - indfslfm.o tjlabel.o vbound.o closee.o closet.o - -FC = ifort - -FFLAGS = -D_LITTLE_ENDIAN -O -g -traceback -C -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -LDFLAGS = -qopenmp - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} ${W3G_LIB8} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -faxmakrx: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -clean: - /bin/rm -f $(OBJS) diff --git a/util/sorc/faxmakrx.fd/makefile.wcoss_cray b/util/sorc/faxmakrx.fd/makefile.wcoss_cray deleted file mode 100755 index 9ce5369a6c..0000000000 --- a/util/sorc/faxmakrx.fd/makefile.wcoss_cray +++ /dev/null @@ -1,27 +0,0 @@ -SHELL=/bin/sh -# -OBJS = main.orig.o main.block.data.o \ - grd2idgn.o frmfaxt.o getcon.o \ - getfld.o absvor.o indeff.o getovl.o getgrp.o comifid.o \ - strptitl.o labelcon.o precip.o mtitle.o iw3getv.o shplot.o \ - subfld.o twofld.o unpkhd.o updown.o wndplt.o gulftl.o \ - clear.o clredg.o block.o uor_dot.o absvws.o \ - gentre.o thinlb.o savlab.o clabep.o closex.o closey.o \ - templn.o templp.o polstnex.o rdobvt.o copyob.o ptwndx.o \ - tuwndr.o pltrh.o indfsea.o xlabel.o indftraj.o \ - indfslfm.o tjlabel.o vbound.o closee.o closet.o - -FC = ifort - -FFLAGS = -D_LITTLE_ENDIAN -O -g -traceback -C -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -LDFLAGS = -openmp - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} ${W3G_LIB8} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -faxmakrx: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -clean: - /bin/rm -f $(OBJS) diff --git a/util/sorc/faxmakrx.fd/makefile.wcoss_dell_p3 b/util/sorc/faxmakrx.fd/makefile.wcoss_dell_p3 deleted file mode 100755 index 13372e055f..0000000000 --- a/util/sorc/faxmakrx.fd/makefile.wcoss_dell_p3 +++ /dev/null @@ -1,27 +0,0 @@ -SHELL=/bin/sh -# -OBJS = main.orig.o main.block.data.o \ - grd2idgn.o frmfaxt.o getcon.o \ - getfld.o absvor.o indeff.o getovl.o getgrp.o comifid.o \ - strptitl.o labelcon.o precip.o mtitle.o iw3getv.o shplot.o \ - subfld.o twofld.o unpkhd.o updown.o wndplt.o gulftl.o \ - clear.o clredg.o block.o uor_dot.o absvws.o \ - gentre.o thinlb.o savlab.o clabep.o closex.o closey.o \ - templn.o templp.o polstnex.o rdobvt.o copyob.o ptwndx.o \ - tuwndr.o pltrh.o indfsea.o xlabel.o indftraj.o \ - indfslfm.o tjlabel.o vbound.o closee.o closet.o - -FC = ifort - -FFLAGS = -D_LITTLE_ENDIAN -O -g -traceback -C -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -LDFLAGS = -qopenmp - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} ${W3G_LIB8} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -faxmakrx: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -clean: - /bin/rm -f $(OBJS) diff --git a/util/sorc/faxmakrx.fd/mtitle.f b/util/sorc/faxmakrx.fd/mtitle.f deleted file mode 100755 index bcff7218ca..0000000000 --- a/util/sorc/faxmakrx.fd/mtitle.f +++ /dev/null @@ -1,451 +0,0 @@ - SUBROUTINE MTITLE(LABEL) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: MTITLE PUT TITLES IN THE DESIGN MAP FILE. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: STORES THE MAP TITLES IN THE DESIGN FILE. -C -C PROGRAM HISTORY LOG: -C 94-09-28 ORIGINAL AUTHOR HENRICHSEN -C 94-11-28 HENRICHSEN ADD NEW ARG TO DGNTXT -C 94-12-30 LUKE LIN CONVERT IT CFT-77 -C 96-04-29 LUKE LIN MODIFY FOR FAXMAKR. -C 96-06-07 HENRICHSEN MODIFY PUT ON A USER TITLE AS NEEDED. AND -C FIX GULF LABEL. -C 96-06-21 HENRICHSEN MODIFY PUT AN ADDITIONAL LINE ON THE -C GULF LABEL IF LLEVEL FLAG IS .TRUE. -C FIX GULF LABEL. ADDED LOGIC TO USE TITLE -C HEIGHT "THEIGHT" THAT WAS PASSED IN COMMON/ -C LLABFX/. -C 96-06-27 HENRICHSEN MODIFY TO FIX SPACING INBETWEEN THE GULF LABEL -C TEXT. -C 96-10-10 LUKE LIN FIX GULF LABELS FOR GFS AND CGRID -C 96-11-18 LUKE LIN ADD THE TROPOPAUSE GULF TITLE. -C 97-06-18 LUKE LIN MODIFY FOR TYPE 5 NAM GULF TITLE. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C -C USAGE: CALL MTITLE -C INPUT ARGUMENT LIST: -C LABEL - 12 WORDS LABEL ON INPUT. WORDS 1-5 SHOULD CONTAIN -C LABEL ID OF DESIRED FIELD FLD. -C -C FROM COMMON/LLABFX/ -C GULPXX - INTEGER X GRID COORDINATE OF GULF TITLE -C GULPXY - INTEGER Y GRID COORDINATE OF GULF TITLE -C TITPXX - INTEGER X GRID COORDINATE OF MAP TITLE -C TITPXY - INTEGER Y GRID COORDINATE OF MAP TITLE -C NUMG - INTEGER WORD THAT CONTAINS THE NUMBER OF BYTES IN -C - GLAB ARRAY. -C NUMT - INTEGER WORD THAT CONTAINS THE NUMBER OF BYTES IN -C - TITLE ARRAY. -C GLAB - CHARACTER*24 ARRAY CONTAINS THE GULF TITLE. -C TITLE - CHARACTER*152 ARRAY CONTAINS THE TITLE. -C JFID - CHARACTER*48 ARRAY CONTAINS THE JFID TITLE IN -C LLEVEL - LOGICAL FLAG THAT SIGNALS IF THE HEIGHT OF SURFACE -C - IS TO BE ADDED AS AN EXTRA LINE ON THE GULF TITLE. -C -C FROM COMMON/POLE/ -C XPOL - REAL*4 X LOCATION OF POLE -C YPOL - REAL*4 Y LOCATION OF POLE -C GDTYPE - INTEGER*4 GRID TYPE FLAG. -C -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C -ckumar - COMMON /DUCKNOAA/ DUCKX,DUCKY,DUCKFG -ckumar - INTEGER DUCKX,DUCKY,DUCKFG -C - COMMON /ILCON/ MAP(15) - INTEGER MAP -C - CHARACTER*8 BGNAME - EQUIVALENCE (BGNAME,MAP(1)) -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB -C - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C - COMMON /LLABFX/ TITPXX,TITPXY,HGTFLG,THEIGHT,NUMT,JBYT, - 1 TITLE,JFID,EXVALID -C - INTEGER TITPXX,TITPXY,HGTFLG,NUMT,JBYT - REAL THEIGHT - CHARACTER*152 TITLE - CHARACTER*48 JFID - CHARACTER*32 EXVALID -C - COMMON /EXTIT/ ETITFONT,ETITPXX,ETITPXY,NOEXT,EXTRAT,FGEXTRAT - REAL ETITFONT - INTEGER ETITPXX,ETITPXY,NOEXT - CHARACTER*80 EXTRAT - LOGICAL FGEXTRAT -C -C - LOGICAL LLEVEL -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU, - 1 LINEP,IGRIDP,T1 - -C - COMMON /POLE/ XPOL,YPOL,GDTYPE -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C - - COMMON /UUNAME/ USRBYT,LUNAM,USRNAM -C - INTEGER USRBYT - LOGICAL LUNAM - CHARACTER*96 USRNAM -C - LOGICAL LBIG -C - CHARACTER*10 GULFLAB -C - REAL PUTHGT,PUTANG,THGT,GHGT,UHGT - INTEGER IPRPUT(2) -C - INTEGER GDTYPE - INTEGER NUMV -C - INTEGER LABEL(12) - INTEGER MSK2 - DATA MSK2 /Z'00000000000000FF'/ - DATA GULFLAB /' '/ -C - LBIG = .FALSE. -C -C CHECK TO SEE IF GRID TYPE IS 26, IF SO SET LBIG = .TRUE. -C TO ADJUST HEIGHT AND I/J FOR PART OF GULF TITLE. -C - IF (IGRIDP.EQ.26)LBIG = .TRUE. - IF (IGRIDP.EQ.05)LBIG = .TRUE. -C -C CHECK TO SEE IF LLEVEL SHOULD BE ON -C - IF(LVFLG.GT.0)THEN - LLEVEL = .TRUE. - WRITE(6,FMT='('' MTITLE: PUTING AN EXTRA LINE IN THE GULF'', - 1 '' TITLE. THE GULF TITLE WILL BE :'',A)')GLAB(1:21) - ELSE - WRITE(6,FMT='('' MTITLE: LVFLG='',I2,'' THE GULF'', - 1 '' TITLE. THE GULF TITLE WILL BE :'',A)')LVFLG,GLAB(1:17) - LLEVEL = .FALSE. - ENDIF -C - PUTHGT = 11.0 - PUTANG = 0.0 - IPRPUT(1) = 0 - IPRPUT(2) = 2 - ITAG = 0 -C -C PUT TITLE ON MAP -C - IF (TITPXX.GT.0 .AND. TITPXY.GT.0) THEN - IF(HGTFLG.NE.0)THEN - THGT = THEIGHT - ELSE - THGT = PUTHGT - ENDIF - IX = TITPXX - MAP(13) - IY = TITPXY - MAP(14) - CALL PUTLAB(IX,IY,THGT,TITLE,PUTANG,NUMT,IPRPUT,ITAG) - ENDIF -C -C PUT USR'S TITLE FROM PARM. -C - IF(LUNAM)THEN - IX = TITPXX - MAP(13) - IY = TITPXY + 45 - MAP(14) - NUM = USRBYT - UHGT = PUTHGT -C - WRITE(6,FMT='('' MTITLE: PUTING AN EXTRA TITLE ON THE MAP.'', - 1 '' THE TITLE HAS '',I2,'' BYTES AND IS: '',A)')USRBYT, - 2 USRNAM(1:USRBYT) - CALL PUTLAB(IX,IY,UHGT,USRNAM,PUTANG,NUM,IPRPUT,ITAG) - ENDIF -C -C .... PUT EXTRA TITLE FROM OPTION CARDS - IF (FGEXTRAT) THEN - IF(HGTFLG.NE.0)THEN - THGT = THEIGHT - ELSE - THGT = PUTHGT - ENDIF - IX = ETITPXX - MAP(13) - IY = ETITPXY - MAP(14) - THGT = ETITFONT - WRITE(6,FMT='('' ETITLE: PUTING AN EXTRA TITLE ON THE MAP.'', - 1 '' THE TITLE HAS '',I2,'' BYTES AND IS: '',A)')NOEXT, - 2 EXTRAT(1:NOEXT) - CALL PUTLAB(IX,IY,THGT,EXTRAT,PUTANG,NOEXT,IPRPUT,ITAG) - ENDIF -C -C PUT DUCK LABEL ON THE MAP -C - IF (DUCKX.GT.0 .AND.DUCKY.GT.0) THEN - IX = DUCKX - MAP(13) - IY = DUCKY - MAP(14) - KANG = 0 - KFLAG = DUCKFG - CALL DUCK(IX,IY,KANG,KFLAG) - ENDIF -C -C PUT GULF LABEL ON MAP -C - IF (GULPXX(1) .GT.0 .AND. GULPXY(1) .GT.0) THEN - IF (IGRIDP.EQ.101 .AND. BGNAME(1:6).EQ.'NH4006') THEN -C .... FOR NGM C-GRID ON NH4006 - GHGT = 19.0 - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +20 - GULFLAB(1:6) = GLAB(1:6) - NCHAR = 6 - IF (GLAB(1:3) .EQ. 'QPV') THEN -C ... FOR QPVV NGM GRID-C ... - GULFLAB(1:5)='QPVV/' - GULFLAB(6:7)=GLAB(4:5) - GULFLAB(8:8)='H' - NCHAR = 8 - ENDIF - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) -C ...SUCH AS QPV12.... - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +10 - GULFLAB(1:5) = GLAB(7:11) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(1) - MAP(13) - 5 - IY = GULPXY(1) - MAP(14) - GULFLAB(1:5) = GLAB(13:17) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(1) - MAP(13) + 15 - IY = GULPXY(1) - MAP(14) - GULFLAB(1:7) = ' GRID-C' - NCHAR = 7 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(1) - MAP(13) - 5 - IY = GULPXY(1) - MAP(14) - 10 - GULFLAB(1:10) = '12HR ACCUM' - NCHAR =10 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ELSE -C FOR OTHER REGULAR MAP'S GULF TITLES -C -C CHECK TO SEE IF LBIG IS ON, IF SO ADJUST HEIGHT AND I/J -C - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +30 -C - IF (LBIG) THEN -C ... TYPE 26 OR 05 SUCH AS NGM, NAM ... - GHGT = 11.0 - IX = IX - 15 - GULFLAB(1:6) = GLAB(1:6) - NCHAR = 6 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ELSE IF (IGRIDP.EQ.27 .OR. IGRIDP.EQ.28) THEN -C ... TYPE 27 SUCH AS GFS - GHGT = 1.0 - IF (GLAB(1:2) .EQ. 'RH') THEN - GULFLAB(1:6) = GLAB(1:6) - ELSE IF (GLAB(1:3) .EQ. 'VOR') THEN - GULFLAB(1:6) = GLAB(1:6) - ELSE IF (GLAB(1:2) .EQ. 'LI') THEN - GULFLAB(1:6) = GLAB(1:6) - GULFLAB(3:3) = ' ' - ELSE IF (GLAB(1:2) .EQ. 'TP') THEN - GULFLAB(1:6) = GLAB(1:6) - GULFLAB(3:3) = ' ' - ELSE IF (GLAB(1:3) .EQ. 'THK') THEN - GULFLAB(1:6) = GLAB(1:6) - ELSE IF (KEYIDX.EQ.41) THEN - GULFLAB(1:3)='TP ' - ELSE - GULFLAB(1:2) = GLAB(18:19) - GULFLAB(3:5) = GLAB(3:5) - GULFLAB(3:3) = ' ' - ENDIF - NCHAR = 5 -C - IFCSTHR = IAND(LABEL(1),MSK2) - PRINT *,' IFCSTHR =',IFCSTHR - IF (IFCSTHR .GE. 100) THEN - GULFLAB(3:6) = GLAB(3:6) - GULFLAB(3:3) = ' ' - NCHAR = 6 - ENDIF - PRINT *,' GFS-LABEL1=', GULFLAB,' --=',GLAB(1:6) - PRINT *,' GLAB(16:24)=',GLAB(16:24) - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ELSE IF (IGRIDP.EQ.101) THEN -C ... TYPE 101 SUCH AS NGM C-GRID - GHGT = 1.0 - GULFLAB(1:6) = GLAB(1:6) -C PRINT *,' NGM C-GRID: GLAB=',GLAB(1:6) - NCHAR = 6 - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +30 - IF (GLAB(1:3) .EQ. 'QPV') THEN -C ... FOR QPVV NGM GRID-C ... - GULFLAB(1:5)='QPVV/' - GULFLAB(6:7)=GLAB(4:5) - GULFLAB(8:8)='H' -C PRINT *,' NGM C-GRID: GULFLAB=',GULFLAB(1:8) - NCHAR = 8 - ENDIF - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF -C -C CHECK TO SEE IF LLEVEL IS ON, IF SO ADD A HEIGHT LABEL -C LINE TO THE GULF LABEL -C - IF (LLEVEL .AND. IGRIDP.EQ.26) THEN - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +50 - IX = IX - 15 - GHGT = 11.0 - GULFLAB(1:5) = GLAB(18:22) - NCHAR = 4 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF -C - IF (LLEVEL .AND. IGRIDP.EQ.05) THEN - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +50 - IX = IX - 15 - GHGT = 11.0 - GULFLAB(1:5) = GLAB(18:22) - NCHAR = 4 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF -C - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) +15 - GHGT = 1.0 - GULFLAB(1:5) = GLAB(7:11) - NCHAR = 5 -C PRINT *,' GFS-LABEL3=', GULFLAB - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IF (IGRIDP .NE. 101) THEN - IX = GULPXX(1) - MAP(13) - IY = GULPXY(1) - MAP(14) - GULFLAB(1:5) = GLAB(13:17) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) -C PRINT *,' GFS-LABEL4=', GULFLAB -C - ELSE -C ... FOR NGM C-GRID - IX = GULPXX(1) - MAP(13) -10 - IY = GULPXY(1) - MAP(14) - GULFLAB(1:5) = GLAB(13:17) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(1) - MAP(13) + 30 - IY = GULPXY(1) - MAP(14) - GULFLAB(1:6) = 'GRID-C' - NCHAR = 6 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(1) - MAP(13) - 10 - IY = GULPXY(1) - MAP(14) - 15 - GULFLAB(1:10) = '12HR ACCUM' - NCHAR =10 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF -C - ENDIF - ENDIF -C -C -C CHECK TO SEE IF A 2ND GULF LABEL IS TO BE PUT ON THE MAP. -C - IF (GULPXX(2) .GT.0 .AND. GULPXY(2) .GT.0) THEN - IX = GULPXX(2) - MAP(13) - IY = GULPXY(2) - MAP(14) +30 - GULFLAB(1:6) = GLAB(1:6) - NCHAR = 6 -C -C CHECK TO SEE IF LBIG IS ON, IF SO ADJUST HEIGHT AND I/J -C - IF (IGRIDP.EQ.101 .AND. BGNAME(1:6).EQ.'NH4006') GOTO 700 -C - IF (LBIG) THEN - GHGT = 11.0 - IX = IX - 15 - ELSE - GHGT = 1.0 - ENDIF -C - IF (GLAB(1:3).EQ.'QPV' .AND. IGRIDP.EQ.101) THEN -C ... FOR QPVV NGM GRID-C ... - GULFLAB(1:5)='QPVV/' - GULFLAB(6:7)=GLAB(4:5) - GULFLAB(8:8)='H' - NCHAR = 8 - ENDIF - - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) -C -C CHECK TO SEE IF LLEVEL IS ON, IF SO ADD A HEIGHT LABEL -C LINE TO THE GULF LABEL -C - IF (LLEVEL) THEN - IX = GULPXX(2) - MAP(13) - IY = GULPXY(2) - MAP(14) +50 - IX = IX - 15 - GHGT = 11.0 - GULFLAB(1:5) = GLAB(18:22) - NCHAR = 4 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF - IX = GULPXX(2) - MAP(13) - IY = GULPXY(2) - MAP(14) +15 - GHGT = 1.0 - GULFLAB(1:5) = GLAB(7:11) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) -C - 700 CONTINUE -C - GHGT = 1.0 - IF (IGRIDP .NE. 101) THEN - IX = GULPXX(2) - MAP(13) - IY = GULPXY(2) - MAP(14) - GULFLAB(1:5) = GLAB(13:17) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) -C - ELSE -C ... FOR NGM C-GRID - IX = GULPXX(2) - MAP(13) -10 - IY = GULPXY(2) - MAP(14) - GULFLAB(1:5) = GLAB(13:17) - NCHAR = 5 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(2) - MAP(13) + 30 - IY = GULPXY(2) - MAP(14) - GULFLAB(1:6) = 'GRID-C' - NCHAR = 6 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - IX = GULPXX(2) - MAP(13) - 10 - IY = GULPXY(2) - MAP(14) - 15 - GULFLAB(1:10) = '12HR ACCUM' - NCHAR =10 - CALL PUTLAB(IX,IY,GHGT,GULFLAB,PUTANG,NCHAR,IPRPUT,ITAG) - ENDIF - ENDIF -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/pltrh.f b/util/sorc/faxmakrx.fd/pltrh.f deleted file mode 100755 index 89003e074a..0000000000 --- a/util/sorc/faxmakrx.fd/pltrh.f +++ /dev/null @@ -1,125 +0,0 @@ - SUBROUTINE PLTRH(FLDA,IMAX,JMAX,I1BIG,J1BIG,IGPLOT, - 1 ISTART,JSTART,DOTSGI) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK *** -C -C SUBPROGRAM: PLTHR PLOTS THE RELATIVE HUMIDITY AT GRID POINTS. -C AUTHOR:KRISHNA KUMAR ORG:W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: CONVERTS UNPACKED SCALED GRID POINT RH TO INTEGER -C AND PLOTS THE VALUES AT GRID POINT LOCATIONS. -C -C PROGRAM HISTORY LOG: -C 85-05-31 PETER HENRICHSEN -C 93-04-28 LUKE LIN CONVERT TO FORTRAN-77 AND ADD DOC BLOCK. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO XINDEF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8 -C -C USAGE: CALL PLTRH(FLDA,IMAX,JMAX,I1BIG,J1BIG,IGPLOT,DOTSGI) -C INPUT ARGUMENTS: -C FLDA = FIELD CONTAINING THE RH GRID POINT DATA. -C IMAX,JMAX = THE DIMENIONS OF FLDA. -C I1BIG,J1BIG = THE CORRECTIVE LOCATION FROM BIG GRID FIELD. -C DOTSGI = DOTS PER GRID INTERVAL WHICH IS FUNCTION OF BGND. -C IGPLOT = INTEGER*2 TWO WORD ARRAY THAT CONTAINS THE FOLLING: -C IGPLOT(1) KEY TO DETERMINE ADDATIVE CONSTANTS FOR GRID CORR. -C IGPLOT(2) COTAINS TO PLOTTING INGREMENT FOR PLOTTING. -C IF .LE. 1 PLOT EVEY GRID POINT. -C IF .EQ. 2 PLOT EVEY OTHER GRID POINT. -C IF .EQ. 3 PLOT EVEY THIRD GRID POINT. -C -C INPUT FILES: NONE -C -C -C OUTPUT ARGUMENTS: NONE -C -C OUTPUT FILES: NONE -C -C -C -C RETURN CONDITIONS:NONE. -C -C SUBPROGRAMS CALLED: -C UNIQUE : BIN2EB PUTLAB -C -C LIBRARY: NONE -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE : IBM -C$$$ -C -C - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C COMMON USED FOR PUTLAB. -C - REAL FLDA(IMAX,JMAX) - REAL XINDEF - DATA XINDEF /1.0E307 / -C - INTEGER IADD(3) - DATA IADD /4,12,0/ - CHARACTER*8 IBCDCH -C - INTEGER JADD(3) - DATA JADD /4,08,0/ -C - INTEGER IGPLOT(2) - INTEGER IPR(2) -C -C -C CORRECT FOR LOCATION ON BACKGROUND. -C - IPR(1) = 0 - IPR(2) = 1 - KK = IGPLOT(1) - MM = IGPLOT(2) - IF(KK.LT.1) KK = 1 - IF(KK.GT.3) KK = 3 - IF(MM.LT.1) MM = 1 -C - IGDCOR = I1BIG - IADD(KK) - JGDCOR = J1BIG - JADD(KK) -C - N = 1 - IF(MM.NE.1) N = MM -C -C WHICH WILL MAKE SURE THAT THE 1ST GRID POINT IS ALWAYS PLOTTED -C - DO 340 J= JSTART,JMAX -C - DO 330 I =ISTART,IMAX -C - NODD = MOD(N,MM) - IF(NODD.NE.0) GO TO 320 -C - IF(FLDA(I,J).EQ.XINDEF) GO TO 320 - IRH =FLDA(I,J) + 0.5 - IF(IRH.GT.99) IRH = 99 -C -C CONVERT IRH TO HOLLERTH. -C - CALL BIN2EB(IRH,IBCDCH,2,'A99') -C -C . . . NOW GET IDOT AND JDOT LOCATION FOR PLOTTING OF RH. -C - XI = I + IGDCOR - XJ = J + JGDCOR -C -C . . . CONVERT TO DOTS. -C - IDOT = DOTSGI*(XI - 1.0) + 0.5 - JDOT = DOTSGI*(XJ - 1.0) + 0.5 -C -C . . . NOW PLOT THE HR ON MAP................. -C - CALL PUTLAB(IDOT,JDOT,1.0,IBCDCH,0.0,2,IPR,0) -C - 320 CONTINUE - N = N + 1 - 330 CONTINUE - 340 CONTINUE - RETURN - END -C diff --git a/util/sorc/faxmakrx.fd/polstnex.f b/util/sorc/faxmakrx.fd/polstnex.f deleted file mode 100755 index 6e3927ad5b..0000000000 --- a/util/sorc/faxmakrx.fd/polstnex.f +++ /dev/null @@ -1,441 +0,0 @@ - SUBROUTINE POLSTNEX -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: POLSTNEX LIST OF STN NAMES AND IDOT/JDOT LOCATIONS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: LIST OF STATION NAMES AND IDOT/JDOT LOCATIONS AND PLOT THEM -C ON THE NH4005 BACKGROUND FOR PFAX1 CHARTS. -C IN A FORMAT WHICH WOULD FACILITATE CALLING PUTLAB() -C -C PROGRAM HISTORY LOG: -C 88-04-18 BOB HOLLERN -C 96-10-31 SHIMOMURA -- CONVERTED FROM LABEL-ARRAY FORMAT TO -C AN EXPANDED FORMAT -C 96-11-05 LUKE LIN -- ADD THE PLOTTING LOGIC. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. ASSIGNED PROPER VALUE TO INDEFF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8 -C ADDED A BLOCK DATA TO MAKE IT RUN ON -C IBM RS/6000 SP SYSTEM. -C -C USAGE: /POLSTN/ COMMON BLOCK NAME IN PROGRAM PEPFAX -C -C OUTPUT ARGUMENT LIST: -C COMMON /POLSTN/MAXNNAM,IJANDNAM -C INTEGER MAXNNAM -C DATA MAXNNAM /219/ -C INTEGER IJANDNAM(8,220) -C I J ROT PRI ARW FON NC -C IJANDNAM(1,J) = IDOT -C IJANDNAM(2,J) = JDOT -C IJANDNAM(3,J) = 2-BIT ROTATION CODE -C IJANDNAM(4,J) = 3-BIT PRIORITY -C IJANDNAM(5,J) = 1-BIT FLAG FOR EXPLICIT CHAR-SET MODE -C IJANDNAM(6,J) = CHARACTER-SET INDEX -C IJANDNAM(7,J) = COUNT OF CHARACTERS IN THE FOLLOWING WORD -C IJANDNAM(8,J) = TEXT WORD OF UP TO 8 CHARACTERS, LEFT-JUSTIFIED -C -C REMARKS: -C IN USERS SOURCE CODE INCLUDE: -C EXTERNAL POLSTNEX -C -C WHICH WILL FORCE THE LINKAGE-EDITOR TO LOOK FOR polstnex.o * -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C ... THE OLD ASM VERSION HAD THE LABEL-ARRAY FORMATTED DATA ... -C ... TITLE 'COMMON /POLSTN/LABSTN -- STN LOCATORS ' -C ... BUT THIS FORTRAN VERSION HAS THE ARGUMENTS FOR PUTLAB() INSTEAD - - - COMMON /POLSTN/MAXNNAM,IJANDNAM - INTEGER MAXNNAM - INTEGER IJANDNAM(8,220) - - INTEGER IGROUP01(8,20) - EQUIVALENCE (IJANDNAM(1,1),IGROUP01(1,1)) - INTEGER IGROUP02(8,20) - EQUIVALENCE (IJANDNAM(1,21),IGROUP02(1,1)) - INTEGER IGROUP03(8,20) - EQUIVALENCE (IJANDNAM(1,41),IGROUP03(1,1)) - INTEGER IGROUP04(8,20) - EQUIVALENCE (IJANDNAM(1,61),IGROUP04(1,1)) - INTEGER IGROUP05(8,20) - EQUIVALENCE (IJANDNAM(1,81),IGROUP05(1,1)) - INTEGER IGROUP06(8,20) - EQUIVALENCE (IJANDNAM(1,101),IGROUP06(1,1)) - INTEGER IGROUP07(8,20) - EQUIVALENCE (IJANDNAM(1,121),IGROUP07(1,1)) - INTEGER IGROUP08(8,20) - EQUIVALENCE (IJANDNAM(1,141),IGROUP08(1,1)) - INTEGER IGROUP09(8,20) - EQUIVALENCE (IJANDNAM(1,161),IGROUP09(1,1)) - INTEGER IGROUP10(8,20) - EQUIVALENCE (IJANDNAM(1,181),IGROUP10(1,1)) - INTEGER IGROUP11(8,20) - EQUIVALENCE (IJANDNAM(1,201),IGROUP11(1,1)) - -* I J ROT PRI ARW FON NC -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C EXTERNAL LOOKTLB - COMMON /LKTLBS/LMTSETNUM,LOOKT - INTEGER LOOKT(9,63) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - INTEGER IPUTL_ARG(8) - CHARACTER*8 CPUTL_ARG(8) - EQUIVALENCE (IPUTL_ARG(1),CPUTL_ARG(1)) -C - - INTEGER IDOTSTN - EQUIVALENCE (IPUTL_ARG(1),IDOTSTN) - INTEGER JDOTSTN - EQUIVALENCE (IPUTL_ARG(2),JDOTSTN) - INTEGER IROTSTN - EQUIVALENCE (IPUTL_ARG(3),IROTSTN) - INTEGER IPRIORSTN - EQUIVALENCE (IPUTL_ARG(4),IPRIORSTN) - INTEGER IEXPLICITMODE - EQUIVALENCE (IPUTL_ARG(5),IEXPLICITMODE) - INTEGER IFONTINDEX - EQUIVALENCE (IPUTL_ARG(6),IFONTINDEX) - INTEGER NCHSTN - EQUIVALENCE (IPUTL_ARG(7),NCHSTN) - CHARACTER*8 CNAMESTN - EQUIVALENCE (CPUTL_ARG(8),CNAMESTN) - - - INTEGER IROTPRISTN(2) - INTEGER IDELTA - INTEGER JDELTA - -C - IDELTA = 36 * 9 - JDELTA = 36 * 7 -C - MAXNNAM = 178 - DO JSTN = 1,MAXNNAM - DO I = 1,8 - IPUTL_ARG(I) = IJANDNAM(I,JSTN) - ENDDO - HEIGHT = FLOAT(IFONTINDEX) - ANGLE = 0.0 - IF(IEXPLICITMODE .NE. 0) THEN - ITAG = 0 - IF(IFONTINDEX .GT. 0 .AND. IFONTINDEX .LE. LMTSETNUM) THEN -C ... IFONTINDEX IS W/I RANGE ... - IF(LOOKT(3,IFONTINDEX) .LT. 0) THEN -C ... THIS IS A SIDEWAYS FONT ... - ANGLE = 90.0 - ELSE - ANGLE = 0.0 - ENDIF - ENDIF - ELSE - ITAG = 1 - ENDIF - - IROTPRISTN(1) = IROTSTN - IROTPRISTN(2) = IPRIORSTN - - NCHARS = NCHSTN - IF(CNAMESTN(NCHARS:NCHARS) .EQ. '$') THEN - NCHARS = NCHARS - 1 - ENDIF - IF(NCHARS .GT. 0) THEN - - IPOS = IDOTSTN + IDELTA - JPOS = JDOTSTN + JDELTA -C - CALL PUTLAB(IPOS,JPOS,HEIGHT,CNAMESTN(1:NCHARS), - 1 ANGLE,NCHARS,IROTPRISTN,ITAG) - - ENDIF - ENDDO -C - RETURN - END -ckumar -ckumar ##################block data polstnex_data -ckumar - BLOCK DATA POLSTNEX_DATA -C - COMMON /POLSTN/MAXNNAM,IJANDNAM - INTEGER MAXNNAM - INTEGER IJANDNAM(8,220) - - INTEGER IGROUP01(8,20) - EQUIVALENCE (IJANDNAM(1,1),IGROUP01(1,1)) - INTEGER IGROUP02(8,20) - EQUIVALENCE (IJANDNAM(1,21),IGROUP02(1,1)) - INTEGER IGROUP03(8,20) - EQUIVALENCE (IJANDNAM(1,41),IGROUP03(1,1)) - INTEGER IGROUP04(8,20) - EQUIVALENCE (IJANDNAM(1,61),IGROUP04(1,1)) - INTEGER IGROUP05(8,20) - EQUIVALENCE (IJANDNAM(1,81),IGROUP05(1,1)) - INTEGER IGROUP06(8,20) - EQUIVALENCE (IJANDNAM(1,101),IGROUP06(1,1)) - INTEGER IGROUP07(8,20) - EQUIVALENCE (IJANDNAM(1,121),IGROUP07(1,1)) - INTEGER IGROUP08(8,20) - EQUIVALENCE (IJANDNAM(1,141),IGROUP08(1,1)) - INTEGER IGROUP09(8,20) - EQUIVALENCE (IJANDNAM(1,161),IGROUP09(1,1)) - INTEGER IGROUP10(8,20) - EQUIVALENCE (IJANDNAM(1,181),IGROUP10(1,1)) - INTEGER IGROUP11(8,20) - EQUIVALENCE (IJANDNAM(1,201),IGROUP11(1,1)) -C - DATA MAXNNAM /178/ -C - DATA IGROUP01 / -* I J ROT PRI ARW FON NC - A 990, 658, 0, 0, 1, 4, 6, ")BGBW$", - 1 937, 698, 0, 0, 1, 4, 6, ")BGSF$", - 2 852, 766, 0, 0, 1, 4, 6, ")BGTL$", - 3 1043, 758, 0, 0, 1, 5, 6, ")BIKF$", - 4 1034, 779, 0, 0, 1, 5, 6, ")BIKR$", - 5 970, 557, 0, 0, 1, 4, 6, ")CYCA$", - 6 620, 586, 0, 0, 1, 4, 6, ")CYEG$", - 7 878, 639, 0, 0, 1, 4, 6, ")CYFB$", - 8 958, 449, 0, 0, 1, 4, 6, ")CYHZ$", - 9 893, 456, 0, 0, 1, 4, 6, ")CYQB$", - A 941, 431, 0, 0, 1, 4, 6, ")CYQI$", - 1 1007, 516, 0, 0, 1, 4, 6, ")CYQX$", - 2 787, 750, 0, 0, 1, 4, 6, ")CYRB$", - 3 876, 439, 0, 0, 1, 4, 6, ")CYUL$", - 4 540, 591, 0, 0, 1, 4, 6, ")CYVR$", - 5 705, 504, 0, 0, 1, 4, 6, ")CYWG$", - 6 750, 591, 0, 0, 1, 4, 6, ")CYYQ$", - 7 951, 545, 0, 0, 1, 4, 6, ")CYYR$", - 8 1025, 509, 0, 0, 1, 4, 6, ")CYYT$", - 9 829, 416, 0, 0, 1, 4, 6, ")CYYZ$" / - - DATA IGROUP02 / - A 533, 665, 0, 0, 1, 4, 6, ")CYZP$", - 1 1221, 860, 0, 0, 1, 5, 6, ")EBBR$", - 2 1232, 888, 0, 0, 1, 5, 6, ")EDDF$", - 3 1193, 898, 0, 0, 1, 5, 6, ")EDDH$", - 4 1254, 911, 0, 0, 1, 5, 6, ")EDDM$", - 5 1112, 975, 0, 0, 1, 5, 6, ")EFHK$", - 6 1188, 819, 0, 0, 1, 5, 6, ")EGCC$", - 7 1210, 827, 0, 0, 1, 5, 6, ")EGLL$", - 8 1162, 810, 0, 0, 1, 5, 6, ")EGPK$", - 9 1206, 863, 0, 0, 1, 5, 6, ")EHAM$", - A 1193, 775, 0, 0, 1, 5, 6, ")EICK$", - 1 1183, 775, 0, 0, 1, 5, 6, ")EINN$", - 2 1171, 914, 0, 0, 1, 5, 6, ")EKCH$", - 3 1049, 915, 0, 0, 1, 5, 6, ")ENBO$", - 4 1123, 904, 0, 0, 1, 5, 6, ")ENGM$", - 5 1136, 874, 0, 0, 1, 5, 6, ")ENZV$", - 6 1171, 917, 0, 0, 1, 5, 6, ")ESMM$", - 7 1126, 940, 0, 0, 1, 5, 6, ")ESSA$", - 8 1435, 608, 0, 0, 1, 5, 6, ")GCLP$", - 9 1592, 498, 0, 0, 1, 5, 6, ")GOOO$" / - - DATA IGROUP03 / - A 1525, 444, 0, 0, 1, 5, 6, ")GVAL$", - 1 914, 395, 0, 0, 1, 4, 6, ")KACK$", - 2 779, 296, 0, 0, 1, 4, 6, ")KATL$", - 3 904, 406, 0, 0, 1, 4, 6, ")KBOS$", - 4 616, 225, 0, 0, 1, 4, 6, ")KBRO$", - 5 622, 249, 0, 0, 1, 4, 6, ")KCRP$", - 6 649, 310, 0, 0, 1, 4, 6, ")KDAL$", - 7 604, 418, 0, 0, 1, 4, 6, ")KDEN$", - 8 797, 399, 0, 0, 1, 4, 6, ")KDTW$", - 9 599, 523, 0, 0, 1, 4, 6, ")KGTF$", - A 850, 360, 0, 0, 1, 4, 6, ")KIAD$", - 1 654, 270, 0, 0, 1, 4, 6, ")KIAH$", - 2 882, 383, 0, 0, 1, 4, 6, ")KJFK$", - 3 497, 429, 0, 0, 1, 4, 6, ")KLAS$", - 4 454, 427, 0, 0, 1, 4, 6, ")KLAX$", - 5 599, 255, 0, 0, 1, 4, 6, ")KLOI$", - 6 823, 191, 0, 0, 1, 4, 6, ")KMIA$", - 7 691, 379, 0, 0, 1, 4, 6, ")KMKC$", - 8 719, 442, 0, 0, 1, 4, 6, ")KMSP$", - 9 711, 258, 0, 0, 1, 4, 6, ")KMSY$" / - - DATA IGROUP04 / - A 651, 343, 0, 0, 1, 4, 6, ")KOKC$", - 1 757, 400, 0, 0, 1, 4, 6, ")KORD$", - 2 516, 558, 0, 0, 1, 4, 6, ")KPDX$", - 3 870, 373, 0, 0, 1, 4, 6, ")KPHL$", - 4 506, 383, 0, 0, 1, 4, 6, ")KPHX$", - 5 824, 378, 0, 0, 1, 4, 6, ")KPIT$", - 6 455, 407, 0, 0, 1, 4, 6, ")KSAN$", - 7 619, 275, 0, 0, 1, 4, 6, ")KSAT$", - 8 532, 572, 0, 0, 1, 4, 6, ")KSEA$", - 9 454, 488, 0, 0, 1, 4, 6, ")KSFO$", - A 554, 459, 0, 0, 1, 4, 6, ")KSLC$", - 1 729, 366, 0, 0, 1, 4, 6, ")KSTL$", - 2 796, 221, 0, 0, 1, 4, 6, ")KTPA$", - 3 1359, 1128, 0, 0, 1, 5, 6, ")LCNC$", - 4 1326, 829, 0, 0, 1, 5, 6, ")LECB$", - 5 1328, 776, 0, 0, 1, 5, 6, ")LEMD$", - 6 1358, 746, 0, 0, 1, 5, 6, ")LEZL$", - 7 1306, 858, 0, 0, 1, 5, 6, ")LFML$", - 8 1283, 811, 0, 0, 1, 5, 6, ")LFBD$", - 9 1274, 816, 0, 0, 1, 5, 6, ")LFBG$" / - - DATA IGROUP05 / - A 1243, 842, 0, 0, 1, 5, 6, ")LFPO$", - 1 1328, 1014, 0, 0, 1, 5, 6, ")LGWC$", - 2 1256, 968, 0, 0, 1, 5, 6, ")LHBP$", - 3 1282, 888, 0, 0, 1, 5, 6, ")LIMC$", - 4 1326, 918, 0, 0, 1, 5, 6, ")LIRF$", - 5 1336, 936, 0, 0, 1, 5, 6, ")LIRN$", - 6 1389, 1160, 0, 0, 1, 5, 6, ")LLLD$", - 7 1282, 575, 0, 0, 1, 5, 6, ")LPAZ$", - 8 1254, 573, 0, 0, 1, 5, 6, ")LPLA$", - 9 1333, 721, 0, 0, 1, 5, 6, ")LPPT$", - A 1277, 1029, 0, 0, 1, 5, 6, ")LRBS$", - 1 1274, 867, 0, 0, 1, 5, 6, ")LSGG$", - 2 1309, 1063, 0, 0, 1, 5, 6, ")LTBA$", - 3 1284, 982, 0, 0, 1, 5, 6, ")LYBE$", - 4 1000, 6, 0, 0, 1, 4, 6, ")MACC$", - 5 667, 42, 0, 0, 1, 4, 6, ")MGGT$", - 6 716, 26, 0, 0, 1, 4, 6, ")MHTG$", - 7 1022, 111, 0, 0, 1, 4, 6, ")MJSJ$", - 8 872, 80, 0, 0, 1, 4, 6, ")MKJP$", - 9 1085, 109, 0, 0, 1, 4, 6, ")MKPA$" / - - DATA IGROUP06 / - A 1139, 60, 0, 0, 1, 4, 6, ")MKPB$", - 1 1124, 12, 0, 0, 1, 4, 6, ")MKPP$", - 2 566, 145, 0, 0, 1, 4, 6, ")MMMX$", - 3 989, 300, 0, 0, 1, 4, 6, ")MXKF$", - 4 858, 182, 0, 0, 1, 4, 6, ")MYNN$", - 5 477, 851, 0, 0, 1, 4, 6, ")PACD$", - 6 441, 941, 0, 0, 1, 4, 6, ")PADK$", - 7 594, 801, 0, 0, 1, 4, 6, ")PAFA$", - 8 520, 823, 0, 0, 1, 4, 6, ")PAKN$", - 9 555, 797, 0, 0, 1, 4, 6, ")PANC$", - A 516, 798, 0, 0, 1, 4, 6, ")PANH$", - 1 462, 1000, 0, 0, 1, 4, 6, ")PASY$", - 2 202, 1525, 0, 0, 1, 4, 6, ")PGUM$", - 3 76, 736, 0, 0, 1, 4, 6, ")PHNL$", - 4 62, 692, 0, 0, 1, 4, 6, ")PHTO$", - 5 11, 1323, 0, 0, 1, 4, 6, ")PKMA$", - 6 159, 982, 0, 0, 1, 4, 6, ")PMDY$", - 7 94, 1212, 0, 0, 1, 4, 6, ")PWAK$", - 8 239, 1323, 0, 0, 1, 4, 6, ")PZMI$", - 9 563, 1561, 0, 0, 1, 4, 6, ")RCTP$" / - - DATA IGROUP07 / - A 351, 1436, 0, 0, 1, 4, 6, ")RJAW$", - 1 521, 1415, 0, 0, 1, 4, 6, ")RJFF$", - 2 485, 1375, 0, 0, 1, 4, 6, ")RJOO$", - 3 485, 1283, 0, 0, 1, 4, 6, ")RJSM$", - 4 456, 1340, 0, 0, 1, 4, 6, ")RJTT$", - 5 576, 1390, 0, 0, 1, 4, 6, ")RKSS$", - 6 501, 1516, 0, 0, 1, 4, 6, ")ROAH$", - 7 514, 1708, 0, 0, 1, 4, 6, ")RPMM$", - 8 1108, 1003, 0, 0, 1, 5, 6, ")ULLL$", - 9 1133, 1057, 0, 0, 1, 5, 6, ")UUWW$", - A 641, 1626, 0, 0, 1, 4, 6, ")VHHH$", - 1 817, 1775, 0, 0, 1, 4, 6, ")VTBD$", - 2 989, 447, 0, 0, 1, 4, 3, ")SA", - 3 913, 551, 0, 0, 1, 4, 3, ")KL", - 4 756, 474, 0, 0, 1, 4, 3, ")QT", - 5 531, 625, 0, 0, 1, 4, 3, ")ZT", - 6 495, 897, 0, 0, 1, 4, 2, ")K", - 7 1217, 783, 0, 0, 1, 4, 3, ")RR", - 8 1232, 810, 0, 0, 1, 5, 5, ")JEY$", - 9 1242, 792, 0, 0, 1, 5, 5, ")FRQ$" / - - DATA IGROUP08 / - A 1287, 752, 0, 0, 1, 5, 3, ")LG", - 1 1031, 705, 0, 0, 1, 5, 2, ")A", - 2 990, 600, 0, 0, 1, 4, 2, ")B", - 3 1091, 626, 0, 0, 1, 4, 2, ")C", - 4 1126, 525, 0, 0, 1, 4, 2, ")D", - 5 1136, 400, 0, 0, 1, 4, 2, ")E", - 6 1096, 747, 0, 0, 1, 4, 2, ")I", - 7 1154, 707, 0, 0, 1, 5, 2, ")J", - 8 1242, 694, 0, 0, 1, 5, 2, ")K", - 9 1060, 865, 0, 0, 1, 5, 2, ")M", - A 264, 572, 0, 0, 1, 5, 2, ")N", - 1 455, 723, 0, 0, 1, 4, 2, ")P", - 2 912, 355, 0, 0, 1, 4, 2, ")H", - 3 641, 863, 0, 0, 1, 4, 6, ")160W$", - 4 610, 771, 0, 0, 1, 4, 6, ")140W$", - 5 626, 657, 0, 0, 1, 4, 6, ")120W$", - 6 627, 551, 0, 0, 1, 4, 6, ")110W$", - 7 417, 896, 0, 0, 1, 4, 5, ")50N$", - 8 628, 896, 0, 0, 1, 4, 5, ")70N$", - 9 1022, 898, 0, 0, 1, 5, 5, ")70N$" / - - DATA IGROUP09 / - A 1278, 1160, 0, 0, 1, 5, 5, ")40E$", - 1 1339, 1085, 0, 0, 1, 5, 5, ")30E$", - 2 1295, 1128, 0, 0, 1, 5, 5, ")40N$", - 3 1376, 995, 0, 0, 1, 5, 5, ")20E$", - 4 1363, 587, 0, 0, 1, 5, 5, ")20W$", - 5 930, 308, 0, 0, 1, 4, 5, ")70W$", - 6 1157, 323, 0, 0, 1, 4, 5, ")50W$", - 7 1322, 305, 0, 0, 1, 4, 5, ")40W$", - 8 826, 487, 0, 0, 1, 4, 5, ")50N$", - 9 826, 595, 0, 0, 1, 4, 5, ")60N$", - A 826, 698, 0, 0, 1, 4, 5, ")70N$", - 1 826, 798, 0, 0, 1, 4, 5, ")80N$", - 2 826, 994, 0, 0, 1, 4, 5, ")80N$", - 3 278, 1356, 0, 0, 1, 4, 6, ")150E$", - 4 276, 1096, 0, 0, 1, 4, 6, ")170E$", - 5 635, 1056, 0, 0, 1, 4, 6, ")150E$", - 6 646, 1000, 0, 0, 1, 4, 6, ")160E$", - 7 640, 964, 0, 0, 1, 4, 6, ")170E$", - 8 673, 1066, 0, 0, 1, 4, 3, ")A1", - 9 675, 624, 0, 0, 1, 4, 3, ")A2" / - - DATA IGROUP10 / - A 261, 1069, 0, 0, 1, 4, 3, ")A3", - 1 261, 620, 0, 0, 1, 4, 3, ")A4", - 2 538, 1052, 0, 0, 1, 4, 3, ")B1", - 3 1394, 1056, 0, 0, 1, 4, 3, ")B2", - 4 537, 180, 0, 0, 1, 5, 3, ")B3", - 5 1386, 179, 0, 0, 1, 4, 3, ")B4", - 6 1200, 1058, 0, 0, 1, 4, 3, ")C1", - 7 1205, 1175, 0, 0, 1, 5, 3, ")C2", - 8 1394, 1056, 0, 0, 1, 5, 3, ")C3", - 9 1395, 1177, 0, 0, 1, 5, 3, ")C4", - A 542, 836, 0, 0, 1, 5, 3, ")D1", - 1 1393, 838, 0, 0, 1, 4, 3, ")D2", - 2 541, 284, 0, 0, 1, 5, 3, ")D3", - 3 1393, 288, 0, 0, 1, 4, 3, ")D4", - 4 673, 1397, 0, 0, 1, 4, 3, ")E1", - 5 676, 419, 0, 0, 1, 4, 3, ")E2", - 6 259, 1398, 0, 0, 1, 4, 3, ")E3", - 7 256, 418, 0, 0, 1, 4, 3, ")E4", - 8 622, 1000, 0, 0, 1, 4, 3, ")F1", - 9 622, 136, 0, 0, 1, 4, 3, ")F2" / - - DATA IGROUP11 / - A 118, 1002, 0, 0, 1, 4, 3, ")F3", - 1 1217, 957, 0, 0, 1, 4, 3, ")G1", - 2 1218, 93, 0, 0, 1, 5, 3, ")G2", - 3 731, 958, 0, 0, 1, 4, 3, ")G3", - 4 727, 93, 0, 0, 1, 4, 3, ")G4", - 5 568, 1061, 0, 0, 1, 4, 3, ")H1", - 6 1397, 1057, 0, 0, 1, 4, 3, ")H2", - 7 566, 45, 0, 0, 1, 5, 3, ")H3", - 8 1148, 10, 0, 0, 1, 4, 3, ")H4", - 9 241, 1160, 0, 0, 1, 4, 3, ")I1", - A 1065, 1172, 0, 0, 1, 4, 3, ")I2", - 1 246, 519, 0, 0, 1, 5, 3, ")I3", - 2 1067, 521, 0, 0, 1, 4, 3, ")I4", - 3 566, 1031, 0, 0, 1, 4, 3, ")J1", - 4 1394, 1030, 0, 0, 1, 4, 3, ")J2", - 5 1389, 808, 0, 0, 1, 5, 3, ")K1", - 6 1534, 811, 0, 0, 1, 5, 3, ")K2", - 7 1415, 375, 0, 0, 1, 5, 3, ")K3", - 8 1532, 393, 0, 0, 1, 4, 3, ")K4", - 9 8*0 / - - END BLOCK DATA POLSTNEX_DATA diff --git a/util/sorc/faxmakrx.fd/precip.f b/util/sorc/faxmakrx.fd/precip.f deleted file mode 100755 index b1176c84ef..0000000000 --- a/util/sorc/faxmakrx.fd/precip.f +++ /dev/null @@ -1,57 +0,0 @@ - SUBROUTINE PRECIP(FLD,WRK,IMAX,JMAX) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PRECIP PERFORM SPECIAL PRECIP COMPUTATIONS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PREPARE PRECIPITATION FIELDS FOR CONTOURING BY PERFORMING -C SPECIAL TESTS FOR INTRODUCING A CLIFF PRIOR TO SMOOTHING. -C -C PROGRAM HISTORY LOG: -C 89-09-07 ORIGINAL AUTHOR GLORIA DENT -C 94-12-30 LUKE LIN CONVERT IT TO CFT-77 -C 96-06-18 LUKE LIN CHANGE CONSTANTS FOR CRAY. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL PRECIP(FLD,WRK,IMAX,JMAX) -C INPUT ARGUMENT LIST: -C FLD _ THE PRECIPITATION FIELD FOR CLIFFING AND SMOOTHING -C WRK _ THE WORKING FIELD FOR SMOOTHING USING W3FM08 -C IMAX,JMAX_ THE DIMENSIONS OF FLD AND WRKNG USING W3FM08 -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C FLD _ THE SMOOTHED PRECIPITATION FIELD -C -C ATTRIBUTES: -C LANGUAGE: f90 -C MACHINE: IBM -C -C$$$ -C - DIMENSION FLD(IMAX,JMAX) - DIMENSION WRK(IMAX,JMAX) - REAL CP001 - REAL CMP03 -C -C CONSTANTS FOR PRE-SMOOTHING PRECIP FIELD -C??? DATA CP001/0.0000254/ -C??? DATA CMP03/-0.000762/ - DATA CP001/0.0254/ - DATA CMP03/-0.762/ -C WHERE 0.0000254M = 0.001IN. WHERE -0.000762M = -0.03IN. -C -C PREPARE THE PRECIP FIELD FOR SMOOTHING BY FIRST INTRODUCING A CLIFF -C CHANGE INPUT PRECIP FIELD'S LOWER LIMIT AND SAVE UNFILTERED PRECIP -C - DO 50 J=1,JMAX - DO 50 I=1,IMAX -C CHANGE INPUT PRECIP FIELD'S LOWER LIMIT AND SAVE UNFILTERED PRECIP -C write(6,20)(fld(m,j),m=1,64) -C 20 format(8(8(1x,f8.4),/)) - IF(FLD(I,J) .LE. CP001) FLD(I,J) = CMP03 - 50 CONTINUE -C -C FILTER PRECIPITATION FIELD... -C CALL W3FM08(FLD,WRK,IMAX,JMAX) - END diff --git a/util/sorc/faxmakrx.fd/ptwndx.f b/util/sorc/faxmakrx.fd/ptwndx.f deleted file mode 100755 index 9eb3a289da..0000000000 --- a/util/sorc/faxmakrx.fd/ptwndx.f +++ /dev/null @@ -1,248 +0,0 @@ - SUBROUTINE PTWNDX(FLD1,FLD2,IMAX,JMAX,I1BIG,J1BIG,IGPLOT, - 1 ISTART,JSTART,DOTSGI) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK *** -C -C SUBPROGRAM: PTWNDX FORMS WIND PLOTS FROM GRID POINT U/V DATA. -C AUTHOR: KRISHNA KUMAR ORG:W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: CONVERTS UNPACKED SCALED GRID POINT U'S AND V'S TO -C WIND DIRECTION AND SPEED AND PLOTS AS WIND SHAFT WITH BARBS FOR -C A FAX OR VARIAN CHART. -C -C PROGRAM HISTORY LOG: -C 85-05-06 PETER HENRICHSEN -C 93-04-28 LUKE LIN CONVERT TO FORTRAN-77 AND ADD DOC BLOCK. -C 97-03-13 LUKE LIN MODIFY FOR CFT USED. -c 97-12-05 CHRIS CARUSO ADD COMMON BLOCK MUTCON AND ADD SPECIAL -C CODE FOR GEOSTROPHIC WIND HANDLING. -C (ADD BITMAP TO SEE WHICH WINDS TO TURN -C OFF). -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL PTWNDX(FLD1,FLD2,IMAX,JMAX,I1BIG,J1BIG, -C IGPLOT,DOTSGI) -C INPUT ARGUMENTS: -C FLD1 = FIELD CONTAINING THE V GRID POINT DATA. -C FLD2 = FIELD CONTAINING THE U GRID POINT DATA. -C IMAX,JMAX = THE DIMENIONS OF FLD1 AND FLD2. -C VRTLON = VERTICAL LON OF GRID. FOR LFM VRTLON = 105.0 FOR PE -C VRTLON = 80.0. -C DOTSGI = DOTS PER GRID INTERVAL WHICH IS A FUNCTION OF BACKGROUND. -C IGPLOT = INTEGER*2 TWO WORD ARRAY THAT CONTAINS THE FOLLOWING: -C IGPLOT(1) CONTAINS THE KEY FOR DETERMINING THE KIEL FOR SUB TRULL. -C IGPLOT(2) CONTAINS THE PLOTTING INCREMENT OF THE WINDS IE. -C IF .LE.1 PLOT AT EVERY GRID POINT, -C IF = 2 PLOT AT EVERYOTHER GRID POINT, -C IF = 3 PLOT AT EVERY 3RD GRID POINT. -C -C INPUT FILES: NONE -C -C -C OUTPUT ARGUMENTS: NONE -C -C OUTPUT FILES: NONE -C -C -C -C RETURN CONDITIONS:NONE. -C -C SUBPROGRAMS CALLED: -C UNIQUE : TRULL TUWNDR WNDBRK WNDIRT -C -C LIBRARY: NONE -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C -C - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON/PRINT/LPRINT -C -C -C -C - REAL FLD1(IMAX,JMAX) - REAL FLD2(IMAX,JMAX) - REAL GU,GV,ANG,VRTLON,ALAT,ALON,T1 - REAL XI, XJ -C - INTEGER IADD(3) - INTEGER ISTR(3) - INTEGER JADD(3) - INTEGER JSTR(3) - CHARACTER*12 JTRUDR - INTEGER KIEL(3) -C - DATA IADD /4,12,0/ - DATA ISTR /3,1,1/ - DATA JADD /4,08,0/ - DATA JSTR /3,1,1/ - DATA KIEL /1,13,2/ -C - INTEGER IGPLOT(2) - INTEGER LANDSEA(53,42) -C - LOGICAL LPRINT -C -C - LPRINT = .FALSE. - VRTLON = 105.0 -C - T1 = DOTSGI - KK = IGPLOT(1) - IF(KK) 5,5,8 - 5 CONTINUE - KK = 2 - IF(T1.LT.54.) KK = 1 -C - 8 CONTINUE -C -C IF GEOSTROPHIC WIND, READ IN BITMAP. WILL BE USED TO SEE WHICH -C GRIDPOINTS WILL NOT HAVE WIND BARB PLOTTED (AT THESE GRID POINTS, -C GEOSTOPHIC WIND IS UNRELIABLE DUE TO LACK OF INPUT DATA). KEYIDX -C EQUALS 17 IS SFC GEOSTROPHIC WIND. -C - IF(KEYIDX.EQ.17) THEN - DO J = 42,1,-1 - READ(8,200,END=201) (LANDSEA(I,J),I=1,53) - 200 FORMAT(53I1) -c print 200,(landsea(i,j),i=1,53) - ENDDO - ENDIF - 201 CONTINUE -C -C -C LOOP THRU U, AND V FIELDS AND THEN CONVERT TO WIND DIR AND SPEED. -C -C -C ISTART = ISTR(KK) -C JSTART = JSTR(KK) - ICRMNT = 1 - JCRMNT = 1 -C? I1BIG = 4 -C? J1BIG = 4 - IF(I1BIG.EQ.0) I1BIG = 17 - IF(J1BIG.EQ.0) J1BIG = 10 - IGDCOR= I1BIG - IADD(KK) - JGDCOR= J1BIG - JADD(KK) - MM = IGPLOT(2) - IF(IGPLOT(2).LE.1) MM = 1 -C - PRINT 10, KK,KIEL(KK),IGDCOR,JGDCOR,MM - 10 FORMAT(' KK=',I2,' KIEL=',I2, - $ ' IGDCOR=',I2,' JGDCOR=',I2,' PLOTTING INCREMENT=',I2) - PRINT 20 ,JSTART,ISTART,JCRMNT,ICRMNT - 20 FORMAT(' JSTART=',I2,' ISTART=',I2,' JCRMNT=',I2,' ICRMNT=',I2) - PRINT *,' IMAX=', IMAX, ' JMAX=', JMAX -C - N = 1 - IF(MM.NE.1)N = MM -C WHICH WILL MAKE SURE THAT THE FIRST GRID POINT IS ALWAYS PLOTTED -C - DO 340 J= JSTART,JMAX,JCRMNT -C - DO 330 I =ISTART,IMAX,ICRMNT -C -C PLOT EVERY OTHER GRID POINT........................... -C - NODD = MOD(N,MM) -C - IF(NODD.NE.0) GO TO 320 -C -C CHECK BITMAP TO SEE IF IT'S A GRIDPOINT WHERE WE DON'T -C WANT TO PLOT A WIND BARB. ONLY DO THIS FOR SFC GEO -C WIND (KEYIDX = 17)... -C - IF(KEYIDX.EQ.17) THEN - IF(LANDSEA(I,J).EQ.2) GO TO 320 - ENDIF -C -C CORRECT GRID COORIDINATE TO PROPER BACKGROUND FOR CALL -C TO TRULL..... - XI = FLOAT(I + IGDCOR) - XJ = FLOAT(J + JGDCOR) -C -C CONVERT GRID LOCATION TO DOTS FOR CALL TO WNDBRK... -C -C??? JSTN = T1*(XJ-1.0) + 0.5 -C??/ ISTN = T1*(XI-1.0) + 0.5 - JSTN = NINT(T1*(XJ-1.0)) - ISTN = NINT(T1*(XI-1.0)) -C -C - GU=FLD2(I,J) - GV=FLD1(I,J) -C -C GU = U COMP OF WIND AT GRID POINT IN KTS. -C GV = V COMP OF WIND AT GRID POINT IN KTS. -C -C -C -C -C GET LON OF GRID POINT TO COMPUTE TRUE WIND DIRECTION -C - CALL TRULL(XI,XJ,ALAT,ALON,KIEL(KK)) -C -C GET WIND DIR AND SPEED -C - KEY = 0 - ANG = 0.0 -C - CALL TUWNDR(GU,GV,IDIR, - 1 ISPEED,ANG,VRTLON,ALON,ITRUDR,KEY) -C -C IDIR=GRID ORENTATED DIRECTION OF WIND TO NEAREST 10DEG,IF KEY =0 -C IDIR=GRID ORENTATED DIRECTION OF WIND TO NEAREST 1DEG,IF KEY= 1 -C ISPEED= WIND SPEED TO NEAREST KT. -C ITRUDR= TRUE WIND DIRECTION TO NEAREST 10 DEGS. -C VRTLON = VERTICAL LON OF GRID. FOR LFM VRTLON = 105.0 FOR PE -C VRTLON = 80.0. -C ANG = ANGLE OR DIFFERENCE BETWEEN THE VRTLONS' OF DIFFERENT -C GRIDS. TO ROTATE FROM LFM TO PE ANG = +25.0. -C -C -C -C * * * * * * * * * * * * * * * * * * -C -C -C - IF(ISPEED.LE.0) GO TO 320 -C - IF(ISPEED.GT.300) ISPEED = 300 - IF(IDIR .EQ.0.AND.KEY.EQ.0) IDIR = 36 - IF(IDIR .EQ.0.AND.KEY.EQ.1) IDIR = 360 - IDDGD = IDIR -C -C -C -C -C -C -C -C . . . . CONVERT TRUE WIND DIRECTION TO HOLLERTH................ -C - CALL BIN2EB(ITRUDR,JTRUDR,2,'A999') -C - IF(LPRINT)PRINT 305,ISPEED,IDDGD,GU,GV - 305 FORMAT(' ISPEED= ',I4,' IDDGD=',I4,' GU=',F6.2,' GV=',F6.2) -C -C - CALL WNDBRK(ISTN,JSTN,IDDGD,ISPEED,NWOK,0,IRR) - CALL WNDIRT(ISTN,JSTN,JTRUDR,IDDGD,ISPEED) -C - 320 CONTINUE - N = N + 1 -C -C - 330 CONTINUE - 340 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakrx.fd/rdobvt.f b/util/sorc/faxmakrx.fd/rdobvt.f deleted file mode 100755 index 635660c5d2..0000000000 --- a/util/sorc/faxmakrx.fd/rdobvt.f +++ /dev/null @@ -1,113 +0,0 @@ - SUBROUTINE RDOBVT(IERROR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: RDOBVT READ OBSERVATION STATION FILE -C AUTHOR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: READ OBSERVATION STATION FILE -C -C HISTORY LOG: -C 97-01-22 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C INPUT ARGUMENTS: -C LABEL - INTEGER*12 6-WORD OFFICE 84 ID -C LUGRBIX - ONE DEGREE GRIB INDEX FILE UNIT -C -C OUTPUT ARGEMENTS: -C IERROR -- RETURN STATUS -C - =0, NORMAL; -C -C USAGE: -C -C OUTPUT FILES: -C FT06F001 - PRINT OUTPUT (STANDARD FORTRAN OUTPUT FILE) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C OPEN FILES AND OBTAIN LOCATER TABLES FOR VARIOUS RUNS -C -C KRUN1=1 RADAT FILES= ANL1 -C KRUN1=2 OPNL FILES= ANL,F00,F12,F24,F36,F48 -C KRUN1=3 OPNL OVER 48HR FILES= F60,F72,F84,F96 -C KRUN1=4 FINAL FILES=ANL ANL5 GF12 GF24 -C KRUN1=5 LFM FILES= FMANL,FM00,FM12,FM24 -C KRUN1=6 PFAX FILES F24 -C KRUN1=7 BACKUP PFAX FILES F36 -C KRUN1=8 PLOTFAX (1 DOT) FILES ANL1 -C KRUN1=9 PLOTFAX (2 DOT) FILES FMANL -C KRUN1=10 SIRSPLOT FILES= GF12 -C -C (7) IOPN= 0 OPNL RUN -C 1 CHECK OUT RUN -C 2 EXTRA PRINT RUN -C -C - COMMON /CPOB/ CPOBFG,ITAPOB,ILVLT,KRUN,IOPTRA(2) - LOGICAL CPOBFG -C - DIMENSION XTRA(2,1024) -C -C INTEGER LOBTAP -C DIMENSION IOPTRA(2) -C -C DIMENSION LVL(2,18) -C - INTEGER DATIM(8) - INTEGER IDATG(4) - INTEGER IYEAR, MONTH, IDAY, IHOUR -C -C DATA LOBTAP/54/ -C DATA IOPTRA/0,0/ - DATA NOPTNS/2/ -C -C DATA LVL/4HSFC ,0, 4H1000,Z00271081,4H850 ,Z014C0882, -C 1 4H700 ,Z01117082,4H500 ,Z00C35082,4H400 ,Z009C4082, -C 2 4H300 ,Z00753082,4H250 ,Z0061A882,4H200 ,Z004E2082, -C 3 4H150 ,Z003A9882,4H100 ,Z00271082,4H070 ,Z01117083, -C 4 4H050 ,Z00C35083,4H030 ,Z00753083,4H020 ,Z004E2083, -C 5 4H010 ,Z00271083,4HTROP,0, 4HSIGL,0/ -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IERROR = 0 -C .... FOLLOWING IS A SAMPLE -C ILVLT=3 -C .... for 850mb -C KRUN1 = 9 -C .... FOR 2DOT MAPS -C IOPTRA(1) = 1 -C .... by passing the time check -C IOPTRA(2) = 1 -C .... by passing the background check -C -C GET PLOTTED DATA FROM TAPE54 -C -C READ NCEP DATE FILE TO GET DATE/TIME -C - REWIND 49 - READ(49,FMT='(6X,I4,3I2)')IYEAR, MONTH, IDAY, IHOUR - - - PRINT *, 'RDOBVT: IYEAR, MONTH, IDAY, IHOUR = ', - 1 IYEAR, MONTH, IDAY, IHOUR -C - IDATG(1) = IYEAR - IDATG(2) = MONTH - IDATG(3) = IDAY - IDATG(4) = IHOUR -C - CALL COPYOB(ITAPOB,XTRA,ILVLT,KRUN,IDATG,IOPTRA,NOPTNS, - XKOUNT,IERROR) - PRINT 901,KOUNT,IERROR - 901 FORMAT(1H0,'LABEL ARRAY ITEMS-KOUNT= ',I5, - X' COPYOB RETURN-IERROR= ',I5,' GO ON ANYWAY') - 902 CONTINUE -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/savlab.f b/util/sorc/faxmakrx.fd/savlab.f deleted file mode 100755 index 0d796fff91..0000000000 --- a/util/sorc/faxmakrx.fd/savlab.f +++ /dev/null @@ -1,66 +0,0 @@ - SUBROUTINE SAVLAB(IPOSI,JPOSJ,TEXTIN,VALUE,NCHAR) -C -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SAVLAB SAVE PUTLAB LABELS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TEMPORARILY SAVES THE ARGUMENTS TO SUBROUTINE DGNTXT -C IN CORE AS CALLED BY LABELING SUBROUTINES GENTRE,GLABEL, -C GLOSED, ETC. THE MAXIMUN NUMBER OF SETS OF LABELS IS -C THREE. THE MAXIMUN NUMBER OF LABELS PER SET IS FIVE -C HUNDRED. -C -C PROGRAM HISTORY LOG: -C 85-08-05 KEVIN HLYWIAK -C 88-04-19 GLORIA DENT PUT IN DOCUMENTATION BLOCK. -C 96-03-15 LUKE LIN CONVERT IT TO CFT-77 ONLY FOR AFOS -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL SAVLAB (IPT,JPT,HEIGHT,TEXTIN,VALUE,NCHAR,LC) -C INPUT ARGUMENT LIST: -C XPOSI - SAME ARGUMENT IN THE CALL TO PUTLAB -C YPOSJ - SAME ARGUMENT IN THE CALL TO PUTLAB -C TEXTIN - SAME ARGUMENT IN THE CALL TO PUTLAB -C VALUE - REAL TRUE VALUE OF LABEL -C NCHAR - SAME ARGUMENT IN THE CALL TO PUTLAB -C -C OUTPUT FILES: -C FT06F001 - PRINT MESSAGES OF PROGRESS OF EACH ENTRY -C -C REMARKS: -C TEMPORARILY SAVES ARGUMENTS TO DGNTXT IN CORE AS CALLED BY LABELING -C ROUTINES LIKE CENTRE, CLABEL, ETC. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON/LABARG/IPOS(500),JPOS(500),TEXT1(500), - X VAL(500),NCH(500),NSAVED - CHARACTER*4 TEXT1,TEXTIN - DATA MXLABS/500/ -C - LC = NSAVED + 1 - IF(LC .GT. MXLABS) GOTO 900 -C - IPOS(LC) = IPOSI - JPOS(LC) = JPOSJ - TEXT1(LC) = TEXTIN - VAL(LC) = VALUE -C SEARCH THROUGH TEXT STRING FOR $ SO I CAN PASS TRUE NCHAR - NC = NCHAR - IF(NC .LE. 0) NC = 4 - IF(NC .GT. 4) NC = 4 - 20 NCH(LC) = NC - NSAVED = LC - RETURN -C - 900 CONTINUE - PRINT *,' ***WARNIGN*** LABEL CAPACITY IS 500 ' - RETURN - END -C -C diff --git a/util/sorc/faxmakrx.fd/shplot.f b/util/sorc/faxmakrx.fd/shplot.f deleted file mode 100755 index a31d619085..0000000000 --- a/util/sorc/faxmakrx.fd/shplot.f +++ /dev/null @@ -1,158 +0,0 @@ - SUBROUTINE SHPLOT -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SHPLOT PLOT SPECIAL LABELS ON S.H. WEFAX CUT -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PLOT SELECTED AIRPORT STATIONS AND LATITUDE/LONGITUDE -C LABELS ON THE SPECIAL SOUTHERN HEMISPHERE WEFAX CUT. -C -C PROGRAM HISTORY LOG: -C 89-07-24 ORIGINAL AUTHOR GLORIA R.DENT -C 96-10-17 LUKE LIN CONVERT IT TO CFT-77. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE CALL SHPLOT -C INPUT ARGUMENT LIST: -C NONE -C -C OUTPUT ARGUMENT LIST: -C NONE -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - REAL ARPTST(4,10) - REAL SHLALO(3,18) -ckumar - character*8 cshlalo(3,18) - equivalence (cshlalo,shlalo) -ckumar - INTEGER IRPTST(4,10) -ckumar - character*8 cirptst(4,10) - equivalence (cirptst,irptst) -ckumar - INTEGER ISTCIR(2) -ckumar - character*8 cistcir(2) - equivalence (cistcir,istcir) -ckumar - INTEGER ISTPLT - INTEGER NLALO -C -C NLALO IS THE NUMBER LAT/LONGS (2ND DIMENSION) OF SHLALO -C - INTEGER NSTA -C -C NSTA IS THE NUMBER STATIONS (2ND DIMENSION) OF ARPTST -C - DATA ARPTST - & /-33.383,70.783,4HSCEL,1.,-15.517,68.183,4HSLLP,0., -C* & /-33.383,70.783,'SCEL',1.,-15.517,68.183,'SLLP',0., -C 'SANTIAGO/INTL A.MERINO B ' L 'LAPAQZ/KENNEDY INTL (BOLIVIA)' - & -15.867,47.933,4HSBBR,1.,-22.817,43.250,4HSBGL,1., -C* & -15.867,47.933,'SBBR',1.,-22.817,43.250,'SBGL',1., -C 'BRASILIA/INTL DF ' L 'RIO DE JANEIRO/INTL (BRAZIL) ' - & -25.267,57.633,4HSGAS,0.,-34.567,58.417,4HSABE,1., -C* & -25.267,57.633,'SGAS',0.,-34.567,58.417,'SABE',1., -C 'ABUNCION/PRESIDENTE (PARAGUAY)' R 'BUENOS AIRES/AEROPARQUE CF ' - & -53.000,70.850,4HSCCI,1.,-23.433,70.450,4HSCFA,1., -C* & -53.000,70.850,'SCCI',1.,-23.433,70.450,'SCFA',1., -C 'PUNTA ARENAS/INTL (CHILE) ' L 'AUTOFAGASTA/INTL (CHILE) ' - & -41.433,73.100,4HSCTE,1.,-27.167,109.433,4HSCIP,1. -C* & -41.433,73.100,'SCTE',1.,-27.167,109.433,'SCIP',1. -C 'PUERTO MOTT/INTL (CHILE) ' L 'ISLA DE PASCUA/MATAVERI CHILE' - & / -C - DATA SHLALO - & /-12.00,110.00,4H11OW, -13.00,100.00,4H100W, - & -16.00, 90.00,4H 9OW, -19.00, 80.00,4H 80W, - & -15.00, 60.00,4H 6OW, -12.00, 50.00,4H 50W, - & -05.00, 40.00,4H 4OW, -25.00, 80.00,4H 80W, - & -20.00, 78.00,4H 20S, -20.00,105.00,4H 20S, - & -20.00, 64.00,4H 20S, -10.00, 45.00,4H 10S, - & -30.00, 78.00,4H 30S, -30.00, 45.00,4H 30S, - & -40.00, 78.00,4H 40S, -40.00, 45.00,4H 40S, - & -50.00, 78.00,4H 50S, -50.00, 45.00,4H 50S/ -C & /-12.00,110.00,'11OW', -13.00,100.00,'100W', -C & -16.00, 90.00,' 9OW', -19.00, 80.00,' 80W', -C & -15.00, 60.00,' 6OW', -12.00, 50.00,' 50W', -C & -05.00, 40.00,' 4OW', -25.00, 80.00,' 80W', -C & -20.00, 78.00,' 20S', -20.00,105.00,' 20S', -C & -20.00, 64.00,' 20S', -10.00, 45.00,' 10S', -C & -30.00, 78.00,' 30S', -30.00, 45.00,' 30S', -C & -40.00, 78.00,' 40S', -40.00, 45.00,' 40S', -C & -50.00, 78.00,' 50S', -50.00, 45.00,' 50S'/ -C -C - CHARACTER*1 LSTCIR(8) -C - EQUIVALENCE(IRPTST(1,1),ARPTST(1,1)) - EQUIVALENCE (LSTCIR(1),ISTPLT) -C - DATA ISTCIR /Z'0000005D00000000',Z'5D00000000000000'/ - DATA NLALO /18/ - DATA NSTA /10/ - DATA IDETAX /335/ - DATA IDETAY /263/ -C -C INITIALIZE CONSTANTS FOR SOUTHERN HEMISPHERE 65/65 POLAR GRID - XMESHL = -381.0 - ORIENT = 260.0 - XIPOLE = 24.0 - XJPOLE = 26.0 -C PLOT AIRPORT STATIONS - DO 100 I= 1,NSTA - ALAT = ARPTST(1,I) - ALONG = ARPTST(2,I) - CALL W3FB04(ALAT,ALONG,XMESHL,ORIENT,XI,XJ) -C CONVERT TO TRUE GRIDS - XI = XI + XIPOLE - XJ = XJ + XJPOLE -C CONVERT TO VARIAN DOT UNITS - IXI = (XI-1.0)*37.5 + 0.5 + IDETAX - JXJ = (XJ-1.0)*37.5 + 0.5 + IDETAY - IF(I .NE.2) GO TO 20 -C SET UP TO PLOT STATION (SLLP) BELOW STATION CIRCLE - CALL PUTLAB(IXI-5,JXJ-6,1.0,CISTCIR(2),0.0,1,0,0) ! modified by kumar - CALL PUTLAB(IXI-5,JXJ-18,1.0,CIRPTST(3,I),0.0,4,0,0) ! modified by kumar - GO TO 100 - 20 CONTINUE -C SET UP TO PLOT STATION LEFT OF STATION CIRCLE - IBEG = 1 - IADJ = -40 - ISTPLT = IRPTST(3,I) -C ISTPLT(2) = ISTCIR(2) - LSTCIR(5) = CHAR(41) - IF(ARPTST(4,I) .EQ. 1.) GO TO 30 -C SET UP TO PLOT STATION RIGHT OF STATION CIRCLE - IBEG = 4 - IADJ = 0 -C ISTPLT(1) = ISTCIR(1) - ISTPLT = IRPTST(3,I) - LSTCIR(4) = CHAR(41) - 30 CONTINUE - CALL PUTLAB(IXI-5+IADJ,JXJ-6,1.0,LSTCIR(IBEG),0.0,5,0,0) - 100 CONTINUE -C -C PLOT LATITUDE/LONGITUDE LABELS - DO 200 I= 1,NLALO - ALAT = SHLALO(1,I) - ALONG = SHLALO(2,I) - CALL W3FB04(ALAT,ALONG,XMESHL,ORIENT,XI,XJ) -C CONVERT TO TRUE GRIDS - XI = XI + XIPOLE - XJ = XJ + XJPOLE -C CONVERT TO VARIAN DOT UNITS - IXI = (XI-1.0)*37.5 + 0.5 + IDETAX - JXJ = (XJ-1.0)*37.5 + 0.5 + IDETAY - CALL PUTLAB(IXI-14,JXJ,4.0,CSHLALO(3,I),0.0,4,0,0) ! modified by kumar - 200 CONTINUE -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/strptitl.F b/util/sorc/faxmakrx.fd/strptitl.F deleted file mode 100755 index b3483571a9..0000000000 --- a/util/sorc/faxmakrx.fd/strptitl.F +++ /dev/null @@ -1,303 +0,0 @@ - SUBROUTINE STRPTITL(CHWORK,PACKED) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: COMIFID MAKE STRIP TITLES AND PUT THEM TO MAP -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: MAKE STRIP TITLES AND CALL PUTLAB TO PUT THEM TO TAPE 55. -C -C PROGRAM HISTORY LOG: -C 96-07-01 LUKE LIN -C 96-11-07 LUKE LIN ADD BASE TIME FOR PFAX1 FAX CHARTS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL STRPTITL -C INPUT ARGUMENT LIST: -C CHWORK - CHARACTER*12 WORD ARRAY THAT CONTAINS THREE -C - ID WORDS AFTER GETING A PACKED DATA FIELD. -C - CHWORK(1:4) HAS IDWORD(1). -C - CHWORK(5:8) HAS IDWORD(7). -C - CHWORK(9:12) HAS IDWORD(8). -C - IN ON 84 FORMAT. -C PACKED - LOGICAL FLAG SET = .TRUE. ITIMES(1) IS A PACKED ID -C - WORD THEN THE TAU IS IN THE 4TH BYTE. IF = .FALSE. -C - THEN THE TAU IS IN ALL OF ITIMES(1). -C -C OUTPUT ARGUMENT LIST: -C -C OUTPUT FILES: -C FT06F001 - MESSAGE FOR STRPTITL -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C -C - COMMON /LABG/ GULPXX(2),GULPXY(2),LVFLG,NUMG,GLAB - 1 - INTEGER GULPXX,GULPXY,LVFLG,NUMG - CHARACTER*24 GLAB -C -C Modified for GFS mean chart (Job 947) START **** -C - COMMON /MEANCON/ MEANFG,LKMEAN,MEANTYP -C - CHARACTER*4 MEANTYP -C - INTEGER MEANFG - LOGICAL LKMEAN -C -C Modified for GFS mean chart (Job 947) END ***** -C -C -C .......... FOR FAX CUT -C - COMMON /FAXICK/ ISCHED(8,50),INXISCHED - COMMON /FLFSRP/ INXLFSTRP,LSNUMBYT(20),LSINTEXT(20),LSTITPX(20), - 1 LSTITPY(20),LSDCKPX(20),LSDCKPY(20), - 2 LSDCKOPT(20),LSFONT(20) - CHARACTER*120 LSINTEXT - REAL LSFONT - COMMON /FRTSRP/ INXRTSTRP,RSNUMBYT(20),RSINTEXT(20),RSTITPX(20), - 1 RSTITPY(20),RSFONT(20),RSFCSTHR(20) - CHARACTER*120 RSINTEXT - INTEGER RSNUMBYT,RSTITPX,RSTITPY,RSFCSTHR - REAL RSFONT -C - COMMON/PACKRA/JTIME(2),IVLDHR,IVLDAY,IVLDMO,IVLDYR, - 1 IHOUR,IDAY,MONTH,IYR -C -C - INTEGER IPRPUT(2),ITAG - REAL PUTANG - INTEGER NUMT -C - CHARACTER*12 CHWORK -C - CHARACTER*28 VALID - CHARACTER*28 BASE - CHARACTER*4 MONS (12) - CHARACTER*1 IZ - CHARACTER*8 CHTEXT - INTEGER KTIME - LOGICAL PACKED - CHARACTER*4 IHDAYW -C - DATA VALID /'VALID '/ - DATA MONS /'JAN ','FEB ','MAR ','APR ','MAY ', - 1 'JUN ','JUL ','AUG ','SEP ','OCT ', - 2 'NOV ','DEC '/ - DATA IZ /'Z'/ - -C -C------------------------------------------------------------------ -C -C -C PRINT *,' STRPTITL STARTING!' -C PRINT *,' INXLFSTRP=', INXLFSTRP -C PRINT *,' INXRTSTRP=', INXRTSTRP -C - IF (INXLFSTRP .GT. 0) THEN -C PRINT *,' INXLFSTRP=', INXLFSTRP -C -C .... MAKE VALID TIME .... - print*,'In STRPTITL *******' - print*,'Before GBYTE' - write(06,1111)chwork - 1111 format('CHWORK = ',Z12) - IF(PACKED) THEN - ITAU = mova2i(CHWORK(4:4)) - ELSE -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_ON_COPY (ISCRATCH, CHWORK, 8_8, 1_8) - CALL GBYTE (ISCRATCH, KTIME, 0, 32) -#else - CALL GBYTE(CHWORK,KTIME,0,32) -#endif - ITAU = KTIME - ENDIF - print*,'After GBYTE ' - write(06,1111)chwork - IYEAR = mova2i(CHWORK(5:5)) - MONTH = mova2i(CHWORK(6:6)) - IDAY = mova2i(CHWORK(7:7)) - IHOUR = mova2i(CHWORK(8:8)) - IGEN = mova2i(CHWORK(10:10)) - JTIME(1)= ITAU - ICORYR = 1900 - IF(IYEAR.LT.96)ICORYR = 2000 - IYR = IYEAR + ICORYR -C -C Modified for GFS mean chart Job 947 Start ***** -C - - IF (LKMEAN .AND. MEANFG.NE.9) THEN - REWIND 49 - READ(49,FMT='(6X,I4,2I2)') IYEAR, MONTH, IDAY -C print *,' idt=',(idt(i),i=1,8) - IHOUR = 0 - IF (MEANFG.EQ.2.OR.MEANFG.EQ.4) IHOUR = 12 - ENDIF -C -C Modified for GFS mean chart Job 947 End ***** -C - WRITE(6,FMT='('' STRPTITL: CALLING UPDATR WITH: TAU ='',I4, - 1 '' HOUR='',I3,'' DAY='',I3,'' MONTH='',I3,'' YEAR='',I5)') - 2 JTIME(1),IHOUR,IDAY,MONTH,IYR -C - CALL UPDATR -C -C CONSTRUCT VALID TIME ARRAY IE. VALID 00Z THU 16 MAR 1989 -C - CALL DAYOWK(IVLDAY,IVLDMO,IVLDYR,IDAYWK,IHDAYW) -C - CALL BIN2EB(IVLDHR,CHTEXT,2,'A999') -C - VALID(7:8) = CHTEXT(1:2) - VALID(9:9) = IZ - VALID(11:13) = IHDAYW(1:4) - CALL BIN2EB(IVLDAY,CHTEXT,2,'A999') - VALID(15:16) = CHTEXT(1:2) - VALID(18:21) = MONS(IVLDMO)(1:4) - CALL BIN2EB(IVLDYR,CHTEXT,4,'A999') - VALID(22:25) = CHTEXT(1:4) - WRITE(6,FMT='('' VALID='',A)') VALID(1:28) -C - PUTANG = 0.0 - IPRPUT(1) = 0 - IPRPUT(2) = 0 - ITAG = 0 - DO I = 1, INXLFSTRP - IF (LSTITPX(I).GT.0 .AND. LSTITPY(I).GT.0) THEN -C .... PUT LEFT STRIP TITLE - NUMT = LSNUMBYT(I) - IBEGIN = NUMT + 1 - ISTOP = IBEGIN + 25 - 1 - LSINTEXT(I)(IBEGIN:ISTOP) = VALID(1:25) -C ... ADD VALID TIME INTO LEFT STRIP TITLE - NUMT = NUMT + 25 - PUTHGT = LSFONT(I) - IX = LSTITPX(I) - IY = LSTITPY(I) -C PRINT *,' IX=',IX,' IY=',IY,' NUMT=',NUMT - IF ((GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) .OR. - $ (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48)) THEN - LSINTEXT(I)(NUMT+1:NUMT+10)=' BASED ON ' - NUMT = NUMT+11 - CALL BIN2EB(IHOUR,CHTEXT,2,'A999') - BASE(1:2)= CHTEXT(1:2) - BASE(3:3) = IZ - BASE(4:4) = '/' - CALL BIN2EB(IDAY,CHTEXT,2,'A999') - BASE(5:6)= CHTEXT(1:2) - BASE(7:7)= '.' - LSINTEXT(I)(NUMT:NUMT+6)=BASE(1:7) - NUMT = NUMT+7 - ENDIF - PRINT *,' LEFT STRIP TITLE=',LSINTEXT(I) -C - CALL PUTLAB(IX,IY,PUTHGT,LSINTEXT(I),PUTANG,NUMT, - 1 IPRPUT,ITAG) - ENDIF -C - IF (LSDCKPX(I).GT.0 .AND. LSDCKPY(I).GT.0) THEN -C ..... PUT DUCK IF ANY - IX = LSDCKPX(I) - IY = LSDCKPY(I) - KANG = 0 - KFLAG = LSDCKOPT(I) - CALL DUCK(IX,IY,KANG,KFLAG) - ENDIF - ENDDO - ENDIF -C - IF (INXRTSTRP .GT. 0) THEN -C PRINT *,' INXRTSTRP=', INXRTSTRP -C .... MAKE VALID TIME .... - IF(PACKED) THEN - ITAU = mova2i(CHWORK(4:4)) - ELSE - CALL GBYTE(CHWORK,KTIME,0,32) - ITAU = KTIME - ENDIF -C - PUTANG = 0.0 - IPRPUT(1) = 0 - IPRPUT(2) = 0 - ITAG = 0 - DO I = 1, INXRTSTRP -C - IF (RSFCSTHR(I) .NE. ITAU) THEN - ITAU = RSFCSTHR(I) -C ... REMAKE VALID TIME - IYEAR = mova2i(CHWORK(5:5)) - MONTH = mova2i(CHWORK(6:6)) - IDAY = mova2i(CHWORK(7:7)) - IHOUR = mova2i(CHWORK(8:8)) - IGEN = mova2i(CHWORK(10:10)) - JTIME(1)= ITAU - ICORYR = 1900 - IF(IYEAR.LT.96)ICORYR = 2000 - IYR = IYEAR + ICORYR -C - WRITE(6,FMT='('' STRPTITL: CALLING UPDATR WITH: TAU ='',I4, - 1 '' HOUR='',I3,'' DAY='',I3,'' MONTH='',I3,'' YEAR='',I5)') - 2 JTIME(1),IHOUR,IDAY,MONTH,IYR -C - CALL UPDATR -C -C CONSTRUCT VALID TIME ARRAY IE. VALID 00Z THU 16 MAR 1989 -C - CALL DAYOWK(IVLDAY,IVLDMO,IVLDYR,IDAYWK,IHDAYW) -C - CALL BIN2EB(IVLDHR,CHTEXT,2,'A999') -C - VALID(7:8) = CHTEXT(1:2) - VALID(9:9) = IZ - VALID(11:13) = IHDAYW(1:4) - CALL BIN2EB(IVLDAY,CHTEXT,2,'A999') - VALID(15:16) = CHTEXT(1:2) - VALID(18:21) = MONS(IVLDMO)(1:4) - CALL BIN2EB(IVLDYR,CHTEXT,4,'A999') - VALID(22:25) = CHTEXT(1:4) - WRITE(6,FMT='('' VALID='',A)') VALID(1:28) -C - ENDIF - IF (RSTITPX(I).GT.0 .AND. RSTITPY(I).GT.0) THEN -C .... PUT RIGHT STRIP TITLE - NUMT = RSNUMBYT(I) - IBEGIN = NUMT + 1 - ISTOP = IBEGIN + 25 - 1 - RSINTEXT(I)(IBEGIN:ISTOP) = VALID(1:25) -C ... ADD VALID TIME INTO LEFT STRIP TITLE - NUMT = NUMT + 25 - PUTHGT = RSFONT(I) - IX = RSTITPX(I) - IY = RSTITPY(I) -C PRINT *,' IX=',IX,' IY=',IY,' NUMT=',NUMT - IF ((GULPXX(2).EQ.-49 .AND. GULPXY(2).EQ.-49) .OR. - $ (GULPXX(2).EQ.-48 .AND. GULPXY(2).EQ.-48)) THEN - LSINTEXT(I)(NUMT+1:NUMT+10)=' BASED ON ' - NUMT = NUMT+11 - CALL BIN2EB(IHOUR,CHTEXT,2,'A999') - BASE(1:2)= CHTEXT(1:2) - BASE(3:3) = IZ - BASE(4:4) = '/' - CALL BIN2EB(IDAY,CHTEXT,2,'A999') - BASE(5:6)= CHTEXT(1:2) - BASE(7:7)= '.' - LSINTEXT(I)(NUMT:NUMT+6)=BASE(1:7) - NUMT = NUMT+7 - ENDIF - PRINT *,' RIGHT STRIP TITLE=',RSINTEXT(I) - CALL PUTLAB(IX,IY,PUTHGT,RSINTEXT(I),PUTANG,NUMT, - 1 IPRPUT,ITAG) - ENDIF - ENDDO - ENDIF -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/subfld.f b/util/sorc/faxmakrx.fd/subfld.f deleted file mode 100755 index 9a127766a3..0000000000 --- a/util/sorc/faxmakrx.fd/subfld.f +++ /dev/null @@ -1,154 +0,0 @@ - SUBROUTINE SUBFLD(BIGFLD,IMXBIG,JMXBIG,SMLFLD,IMXSML,JMXSML, - 1 ICORNR,JCORNR,AMULT1,ADD1,AMULT2,ADD2,IEXIT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SUBFLD TO EXTRACT FROM THE GIVEN ARRAY OF GRID -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO EXTRACT FROM THE GIVEN 2-DIMENSIONAL ARRAY OF -C GRIDPOINT DATA A SMALLER ARRAY OF GRIDPOINT DATA AND, AT THE -C SAME TIME, TO RESCALE THE GRIDPOINT VALUES USING THE FOLLOWING -C FORMULA -- -C RESULT = (ORIGINAL*AMULT1 + ADD1)*AMULT2 + ADD2 -C -C PROGRAM HISTORY LOG: -C 82-05-13 DAVE S. -C 89-10-17 LUKE LIN ADD DOCBLOCK. -C 94-12-30 LUKE LIN CONVERT IT CFT-77. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL SUBFLD(BIGFLD,IMXBIG,JMXBIG,SMLFLD,IMXSML,JMXSML, -C ICORNR,JCORNR,AMULT1,ADD1,AMULT2,ADD2,IEXIT) -C INPUT ARGUMENTS: -C BIGFLD - REAL*4 BIGFLD(IMXBIG,JMXBIG) -C THE ORIGINAL 2-DIMENSIONAL ARRAY OF GRIDPOINT DATA. -C IMXBIG - I-DIMENSION OF BIGFLD. -C JMXBIG - J-DIMENSION OF BIGFLD. -C IMXSML - I-DIMENSION OF THE SUB-GRID SMLFLD. -C JMXSML - J-DIMENSION OF THE SUB-GRID SMLFLD. -C ICORNR - I-VALUE OF LOWER LEFT CORNER OF SUB-GRID -C IN GRID UNITS OF BIGFLD'S COORDINATE SYSTEM. -C JCORNR - J-VALUE OF LOWER LEFT CORNER OF SUB-GRID -C IN GRID UNITS OF BIGFLD'S COORDINATE SYSTEM. -C AMULT1 - MULTIPLICATIVE FACTOR USED TO RESCALE DATA. -C ADD1 - ADDITIVE FACTOR USED TO RESCALE DATA. -C THIS FIRST PAIR IS USUALLY USED TO CONVERT FROM -C UNITS OF THE DATA AS THEY WERE PACKED, INTO -C MORE COMMONLY USED METEOROLOGICAL UNITS. -C AMULT2 - MULTIPLICATIVE FACTOR USED TO RESCALE DATA. -C ADD2 - ADDITIVE FACTOR USED TO RESCALE DATA. -C THIS SECOND PAIR IS USUALLY USED TO PREPARE -C FOR CONTOURING WITH ONE UNIT CHANGE IN DATA PER -C DESIRED CONTOUR INTERVAL. -C -C OUTPUT ARGUMENT LIST: -C SMLFLD - REAL*4 SMLFLD(IMXSML,JMXSML) -C THE 2-DIMENSIONAL ARRAY FOR STORING THE RESULTING -C SUB-GRID-POINT DATA INTO. -C IEXIT - RETURN CONDITIONS. -C IEXIT = 0 FOR NORMAL EXIT -C IEXIT = NON-ZERO FOR ERROR RETURN. -C RETURN CONDITIONS: -C = 1 IF GIVEN IMXSML OR JMXSML IS .LE. 0 -C = 2 IF THE SUB-GRID LIES ENTIRELY OUTSIDE OF -C BIGFLD AREA. -C = 3 IF EITHER MULTIPLICATIVE FACTOR IS ZERO -C WHICH, IF USED, WOULD HAVE ZEROED OUT THE -C RESULTING ARRAY. -C = 4 IF GIVEN IMXBIG OR JMXBIG IS .LE. 0 -C -C -C REMARKS: IF THE RESULTING SMALL GRID EXTENDS BEYOND EDGE OF -C BIGFLD, THOSE OFF-GRID POINTS WILL BE FILLED WITH HEX 7FFFFFFF. -C THE TWO ARRAYS -- BIGFLD & SMLFLD -- CANNOT BE EQUIVALENCED. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C - INTEGER IMXBIG, JMXBIG, IMXSML,JMXSML -C - REAL BIGFLD(IMXBIG,JMXBIG) - REAL SMLFLD(IMXSML,JMXSML) -C - IEXIT = 0 - IF(JMXSML .LE. 0) GO TO 900 - IF(IMXSML .LE. 0) GO TO 900 -C - IF(IMXBIG .LE. 0) GO TO 933 - IF(JMXBIG .LE. 0) GO TO 933 -C - IF(AMULT1 .EQ. 0.0) GO TO 922 - IF(AMULT2 .EQ. 0.0) GO TO 922 -C - JSTRTS = 0 - ISTRTS = 0 - J1 = JCORNR - J2 = J1 + JMXSML - 1 -C ... WHAT IF J1 IS BELOW BOTTOM OF BIGFLD? - IF(J1 .GT. 0) GO TO 233 -C ... ELSE, FIRST ROW OF SUBSET GRID LIES SOMEWHERE -C ... BELOW BOTTOM OF BIGFLD - JSTRTS = IABS(J1) + 1 - J1 = 1 - 233 CONTINUE - IF(J1 .GT. JMXBIG) GO TO 911 - IF(J2 .GT. JMXBIG) J2 = JMXBIG - IF(J1 .GT. J2) GO TO 911 -C - I1 = ICORNR - I2 = I1 + IMXSML - 1 - IF(I1 .GT. 0) GO TO 236 -C ... ELSE, FIRST COLUMN OF SUBSET GRID LIES SOMEWHERE -C ... OUTSIDE OF LEFT EDGE OF BIGFLD. - ISTRTS = IABS(I1) + 1 - I1 = 1 - 236 CONTINUE - IF(I1 .GT. IMXBIG) GO TO 911 - IF(I2 .GT. IMXBIG) I2 = IMXBIG - IF(I1 .GT. I2) GO TO 911 -C - JS = JSTRTS - DO 366 JB = J1,J2 - JS = JS + 1 - IS = ISTRTS - DO 355 IB = I1,I2 - IS = IS + 1 - SMLFLD(IS,JS)=(BIGFLD(IB,JB)*AMULT1 + ADD1) * AMULT2 + ADD2 - 355 CONTINUE - 366 CONTINUE - GO TO 999 -C - 900 CONTINUE -C ... COMES HERE IF GIVEN IMXSML OR JMXSML IS .LE. 0 - IEXIT = 1 - PRINT *,'**ABEND IN SUBR SUBFLD. CONDITION=',IEXIT - GO TO 999 -C - 911 CONTINUE -C ... COMES HERE IF ICORNR OR JCORNR WAS GIVEN SUCH THAT -C ... THE SUBGRID IS POSITIONED ENTIRELY OUTSIDE OF BIGFLD. - IEXIT = 2 - PRINT *,'**ABEND IN SUBR SUBFLD. CONDITION=',IEXIT - GO TO 999 -C - 922 CONTINUE -C ... COMES HERE IF EITHER MULTIPLICATIVE FACTOR IS 0.0 -C ... WHICH WOULD RESULT IN A ZERO ARRAY - IEXIT = 3 - PRINT *,'**ABEND IN SUBR SUBFLD. CONDITION=',IEXIT - GO TO 999 -C - 933 CONTINUE -C ... COMES HERE IF IMXBIG OR JMXBIG WAS .LE. 0 - IEXIT = 4 - PRINT *,'**ABEND IN SUBR SUBFLD. CONDITION=',IEXIT - GO TO 999 -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakrx.fd/templn.f b/util/sorc/faxmakrx.fd/templn.f deleted file mode 100755 index 9223869466..0000000000 --- a/util/sorc/faxmakrx.fd/templn.f +++ /dev/null @@ -1,153 +0,0 @@ - SUBROUTINE TEMPLN(Z,IMAX,JMAX,SCALE,A,B,M,LPLMI,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TEMPLN PUT A BOX AROUND THE TEMPERATURE. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PUT A BOX AROUND THE TEMPERATURE.. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-10-30 LIN CONVERT SUBROUTINE TO FORTRAN CFT77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL TEMPLN( Z, IMAX, JMAX, SCALE, A, B, M, LPLMI, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C ...GIVEN TEMPS IN Z(IMAX,JMAX) -C AND MULTIPLICATIVE AND ADDITIVE CONSTANTS -C ...TO READY FOR DIAMOND TEMPS GRIDPRINT IN LABEL ARRAY - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON/ADJ3/IRTCOR,IUPCOR -C - DIMENSION ITEXT(3),JTEXT(3) - CHARACTER*8 IFF(5) - DIMENSION Z(IMAX,JMAX) -C - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - CHARACTER*2 IBOX - INTEGER M(2) -C - REAL INDEF,IDEF - INTEGER IPRT(2) -C -C DATA JLOB/2/,JHIB/50/ -C DATA ILHS/2/,IRHS/46/ -C DATA ILHSB/4/,IRHSB/44/ - DATA JLOB/9/,JHIB/57/ - DATA ILHS/11/,IRHS/55/ - DATA ILHSB/13/,IRHSB/53/ - DATA INDEF /1.0E307 / - DATA ITEXT/3*0/ - DATA IBOX/')$'/ - DATA NN/2/ - DATA HT/10.0/ - DATA IPRT/0,1/ - DATA IKCIR/1/ - DATA JKCIR/-9/ -C ...WHERE IKCIR AND JKCIR IS DISPLACEMENT FROM PRINT TO BOX - DATA IDELTA / 0 / - DATA JDELTA / 0 / -C -C EQUIVALENCE(LTEXT,ITEXT(1)) -C EQUIVALENCE(MTEXT,JTEXT(1)) -C - INDENT = 0 -C ...WHERE INDENT IS ALTERNATING SWITCH FOR INDENTING A ROW OR NOT. - DO 450 J=JLOB,JHIB,2 - IF(INDENT) 430,434,430 - 430 INDENT=0 - IF(J.EQ.4+07.OR.J.EQ.48+07) GO TO 431 - IF(J.EQ.8+07.OR.J.EQ.44+07) GO TO 432 - IF(J.EQ.12+07.OR.J.EQ.40+07) GO TO 433 - I = ILHSB - I2 = IRHSB - GO TO 440 - 431 I=ILHSB+3*4 - I2=IRHSB-3*4 - GO TO 440 - 432 I=ILHSB+2*4 - I2=IRHSB-2*4 - GO TO 440 - 433 I=ILHSB+4 - I2=IRHSB-4 - GO TO 440 - 434 INDENT = 1 - IF(J.EQ.2+07.OR.J.EQ.50+07) GO TO 435 - IF(J.EQ.6+07.OR.J.EQ.46+07) GO TO 436 - IF(J.EQ.10+07.OR.J.EQ.42+07) GO TO 437 - I = ILHS - I2 = IRHS - GO TO 440 - 435 I=ILHS+3*4 - I2=IRHS-3*4 - GO TO 440 - 436 I=ILHS+2*4 - I2=IRHS-2*4 - GO TO 440 - 437 I=ILHS+4 - I2=IRHS-4 - GO TO 440 -C ...PERFORM OPERATION ON TEMP PT(I,J) - 440 CONTINUE - IDEF=Z(I,J) - IF(IDEF.EQ.INDEF) GO TO 445 - XJ=J-1 - JCAL=SCALE*XJ+0.5 - JCAL=JCAL+IUPCOR + JDELTA - JLLCIR=JCAL+JKCIR - XI=I-1 - ICAL=SCALE*XI+0.5 - ICAL=ICAL+IRTCOR + IDELTA - ILLCIR=ICAL+IKCIR - XVAL=Z(I,J) - HOLD=B*(XVAL+A) - ITEXT(1)=SIGN((ABS(HOLD)+0.05),HOLD) - INTG=ITEXT(1) - NCHAR=M(2) -C -C FORMAT TEMPERATURE VALUE -C - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - N=12 - WRITE(LTEXT,FMT=IFF)MTEXT -C WRITE(LTEXT,FMT=IFF)JTEXT(1) -C -C PUT TEMPERATURE IN LABEL ARRAY -C - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,N,IPRT,0) -C -C PUT BOX IN LABEL ARRAY -C - CALL PUTLAB(ILLCIR,JLLCIR,HT,IBOX,PUTANG,NN,IPRPUT,0) - 445 CONTINUE - I=I+4 - IF(I .LE. I2) GO TO 440 -C ...WHEN IT FALLS THRU HERE,THIS ROW IS FINISHED. GO NEXT J - 450 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakrx.fd/templp.f b/util/sorc/faxmakrx.fd/templp.f deleted file mode 100755 index 792f4ac62a..0000000000 --- a/util/sorc/faxmakrx.fd/templp.f +++ /dev/null @@ -1,154 +0,0 @@ - SUBROUTINE TEMPLP(Z,IMAX,JMAX,SCALE,A,B,M,LPLMI,IFF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TEMPLP PLOT TEMPERATURE -C PRGMMR: LUKE LIN ORG: W/NMC412 DATE: 96-10-30 -C -C ABSTRACT: PLOT TEMPERATURE. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-10-30 LUKE LIN CONVERT IT TO CFT-77. -C -C USAGE: CALL TEMPLP( Z, IMAX, JMAX, SCALE, A, B, M, LPLMI, IFF ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C ...GIVEN...TEMPS IN Z(IMAX,JMAX) -C AND MULTIPLICATIVE AND ADDITIVE CONSTANTS -C ...TO READY FOR DIAMOND TEMPS GRIDPRINT IN LABEL ARRAY - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON/ADJ3/IRTCOR,IUPCOR - COMMON/ITDL/IRMARK,ITSTHR -C - DIMENSION ITEXT(3),JTEXT(3) - CHARACTER*8 IFF(5) - DIMENSION Z(IMAX,JMAX) -C - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - CHARACTER*2 ICIRC - INTEGER M(2) -C - REAL INDEF,IDEF - INTEGER IPRT(2) -C -C DATA JLOB/2/,JHIB/50/ -C DATA ILHS/4/,IRHS/44/ -C DATA ILHSB/2/,IRHSB/46/ - DATA JLOB/9/,JHIB/57/ - DATA ILHS/13/,IRHS/53/ - DATA ILHSB/11/,IRHSB/55/ - DATA INDEF /1.0E307 / - DATA ITEXT/3*0/ - DATA ICIRC/'($'/ - DATA NN/2/ - DATA HT/10.0/ - DATA IPRT/0,1/ - DATA IKCIR/1/ - DATA JKCIR/-9/ -C ...WHERE IKCIR AND JKCIR IS DISPLACEMENT FROM PRINT TO CIRCLE - DATA IDELTA / 0 / - DATA JDELTA / 0 / -C -C -C EQUIVALENCE(LTEXT,ITEXT(1)) -C EQUIVALENCE(MTEXT,JTEXT(1)) -C - INDENT = 0 -C ...WHERE INDENT IS ALTERNATING SWITCH FOR INDENTING A ROW OR NOT. - DO 450 J=JLOB,JHIB,2 - IF(INDENT) 430,434,430 - 430 INDENT=0 - IF(J.EQ.4+7.OR.J.EQ.48+7) GO TO 431 - IF(J.EQ.8+7.OR.J.EQ.44+7) GO TO 432 - IF(J.EQ.12+7.OR.J.EQ.40+7) GO TO 433 - I = ILHSB - I2 = IRHSB - GO TO 440 - 431 I=ILHSB+3*4 - I2=IRHSB-3*4 - GO TO 440 - 432 I=ILHSB+2*4 - I2=IRHSB-2*4 - GO TO 440 - 433 I=ILHSB+4 - I2=IRHSB-4 - GO TO 440 - 434 INDENT = 1 - IF(J.EQ.2+7.OR.J.EQ.50+7) GO TO 435 - IF(J.EQ.6+7.OR.J.EQ.46+7) GO TO 436 - IF(J.EQ.10+7.OR.J.EQ.42+7) GO TO 437 - I = ILHS - I2 = IRHS - GO TO 440 - 435 I=ILHS+3*4 - I2=IRHS-3*4 - GO TO 440 - 436 I=ILHS+2*4 - I2=IRHS-2*4 - GO TO 440 - 437 I=ILHS+4 - I2=IRHS-4 - GO TO 440 -C ...PERFORM OPERATION ON TEMP PT(I,J) - 440 CONTINUE - IDEF=Z(I,J) - IF(IDEF.EQ.INDEF) GO TO 445 - XJ=J-1 - JCAL=SCALE*XJ+0.5 - JCAL=JCAL+IUPCOR + JDELTA - JLLCIR = JCAL + JKCIR - XI=I-1 - ICAL=SCALE*XI+0.5 - ICAL=ICAL+IRTCOR + IDELTA - ILLCIR = ICAL + IKCIR - XVAL=Z(I,J) - HOLD=B*(XVAL+A) - ITEXT(1)=SIGN((ABS(HOLD)+0.05),HOLD) - INTG=ITEXT(1) - NCHAR=M(2) -C -C FORMAT TEMPERATURE VALUE -C - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - N=12 -C WRITE(LTEXT,FMT=IFF)JTEXT(1) - WRITE(LTEXT,FMT=IFF)MTEXT -C -C PUT TEMPERATURE IN LABEL ARRAY -C - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,N,IPRT,0) -C -C PUT CIRCLE IN LABEL ARRAY -C - CALL PUTLAB(ILLCIR,JLLCIR,HT,ICIRC,PUTANG,NN,IPRPUT,0) - 445 CONTINUE - I = I + 4 - IF(I .LE. I2) GO TO 440 -C ...WHEN IT FALLS THRU HERE,THIS ROW IS FINISHED. GO NEXT J - 450 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakrx.fd/thinlb.f b/util/sorc/faxmakrx.fd/thinlb.f deleted file mode 100755 index 990eecfb1e..0000000000 --- a/util/sorc/faxmakrx.fd/thinlb.f +++ /dev/null @@ -1,108 +0,0 @@ - SUBROUTINE THINLB -C -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: THINLB THIN PUTLAB LABELS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: SEARCHES THROUGH LABSET SETS OF LABELS ONE AT A TIME -C (AS WRITTEN BY SAVLAB),THINS OVERLAPPING LABELS WITH -C A VALUE COMPARISON TEST, AND CALLS DGNTXT FOR THE -C SURVIVING LABELS. -C -C PROGRAM HISTORY LOG: -C 85-08-05 KEVIN HLYWIAK -C 88-04-19 GLORIA DENT PUT IN DOCUMENTATION BLOCK. -C 96-03-15 LUKE LIN CONVERT TO CFT-77, ONLY FOR AFOS. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL THINLB -C INPUT ARGUMENT LIST: -C IWID - INTEGER*4 IWID THE DOT WIDTH OF THE CHARACTER SET -C IHGT - INTEGER*4 IHGT THE DOT HIEGHT OF THE CHARACTER SET -C ISEP - OVERLAP CRITERIA IN DOT UNITS (COMPARISON TEST) -C IPLT - IPLT=0 NO THINNING OF THIS SET OF LABELS -C - IPLT=NONZERO THINNING OF THIS SET OF LABELS IS DONE -C -C OUTPUT FILES: -C FT06F001 - PRINT MESSAGES OF PROGRESS OF EACH ENTRY -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT -C - COMMON/LABARG/IPOS(500),JPOS(500),TEXT1(500), - X VAL(500),NCH(500),NSAVED - CHARACTER*4 TEXT1 - INTEGER IWID,IHGT,ISEP - CHARACTER*4 ITEXTC - INTEGER IDEL, JDEL -C -C INTEGER IDOT(500) -C INTEGER JDOT(500) -C - DATA IWID /12/ - DATA IHGT /14/ - DATA ISEP /25/ - DATA IPLT /1/ -C - DATA SCALE /18.0/ - DATA IDEL /-25/ - DATA JDEL /-7/ -C - PRINT 10,IWID,ISEP,IPLT,NSAVED - 10 FORMAT(' ENTERING SUBROUTINE THINLB DATED 9/12/96',/,' IWID=',I4, - X ' ISEP=',I4,' IPLT=',I2, - X ' NSAVED=',I4) -C -C DO 20 I=1, NSAVED -C IDOT(I) = XPOS(I)*SCALE + IDEL -C JDOT(I) = YPOS(I)*SCALE + JDEL -C 20 CONTINUE -C - NGO=0 - NLABS=NSAVED - L1MAX=NLABS-1 - DO 60 L1=1,L1MAX - IF(IPOS(L1).EQ.9999) GOTO 60 - L2MIN=L1+1 - DO 50 L2=L2MIN,NLABS - IF(IPOS(L2).EQ.9999) GOTO 50 - JB1=JPOS(L1)-ISEP/2 - JT2=JPOS(L2)+IHGT+ISEP/2 - IF(JB1.GE.JT2) GOTO 50 - JT1=JPOS(L1)+IHGT+ISEP/2 - JB2=JPOS(L2)-ISEP/2 - IF(JT1.LE.JB2) GOTO 50 - IL1=IPOS(L1)-ISEP/2 - IR2=IPOS(L2)+NCH(L2)*IWID+ISEP/2 - IF(IL1.GE.IR2) GOTO 50 - IR1=IPOS(L1)+NCH(L1)*IWID+ISEP/2 - IL2=IPOS(L2)-ISEP/2 - IF(IR1.LE.IL2) GOTO 50 -C FALL THRU MEANS L1 AND L2 OVERLAP, SO STRIKE ONE BY TESTING VALUE - IF(ABS(VAL(L1)).GE.ABS(VAL(L2))) IPOS(L2)=9999 - IF(ABS(VAL(L1)).LT.ABS(VAL(L2))) IPOS(L1)=9999 - IF(IPOS(L2).EQ.9999.OR.IPOS(L1).EQ.9999)NGO=NGO+1 - 50 CONTINUE - 60 CONTINUE -C - NSTAY=NLABS-NGO - PRINT 70,NSTAY,NLABS - 70 FORMAT(' ',I4,' OF',I4, 'LABELS SURVIVED.') - DO 89 IPUT=1,NLABS - IF(IPOS(IPUT).EQ.9999) GOTO 89 - ITEXTC=TEXT1(IPUT) - CALL PUTLAB(IPOS(IPUT),JPOS(IPUT),PUTHGT,ITEXTC,PUTANG,4, - 1 IPRPUT,ITAPUT) - 89 CONTINUE - RETURN - END -C -C diff --git a/util/sorc/faxmakrx.fd/tjlabel.f b/util/sorc/faxmakrx.fd/tjlabel.f deleted file mode 100755 index 8ba413d944..0000000000 --- a/util/sorc/faxmakrx.fd/tjlabel.f +++ /dev/null @@ -1,167 +0,0 @@ - SUBROUTINE TJLABEL(FLDIN,IDIM,JDIM,DOTSGI,A1,B1,KEYIDX) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TJLABEL PLACE A SPECIAL LABEL AROUND THE BOUNDARY -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PLACE A SPECIAL LABEL AROUND THE BOUNDARY FOR TRAJECTORY 4-PANEL -C CHART. -C -C PROGRAM HISTORY LOG: -C 97-06-19 LUKE LIN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL TJLABEL(FLDIN,IDIM,JDIM,DOTSGI,A1,B1) -C INPUT ARGUMENTS: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C IDIM - I-DIMENSION OF THE ORIGINAL SMLFLD. -C JDIM - J-DIMENSION OF THE ORIGINAL SMLFLD. -C -C OUTPUT ARGUMENT LIST: -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C * * * * * * * * * * * -C - COMMON/PUTARG/PUTHGT,PUTANG,IPRIOR(2),ICMPUT - COMMON /ADJ1/ ICOR,JCOR - COMMON /ADJ3/ILCOR,JDCOR -C - INTEGER KEYIDX - REAL FLDIN(IDIM,JDIM) - REAL DOTSGI,A1,B1 - REAL FLDDUP(53,57) - REAL XINDEF - INTEGER IJV(4,150) - INTEGER ICHSIZ(2) - INTEGER INBTWN(2) - INTEGER ITBRES(4,200) - DATA KDIMRE/200/ -C - INTEGER M(2) -C - INTEGER LIJV - INTEGER KSVUNI - CHARACTER*4 IFORM, IFOR06, IFOR05, IFOR04 - CHARACTER*8 IFG(5) - CHARACTER*8 IFG2(5) - CHARACTER*8 IFG3(5) -C - DATA IFG2 /'(A2,1H$)',' ',' ',' ', - . ' '/ - DATA IFG3 /'(A3,1H$)',' ',' ',' ', - . ' '/ - DATA IFOR06 /'A999'/ - DATA IFOR05 /'A+- '/ - DATA IFOR04 /'S9-9'/ -C - DATA LIJV /150/ - DATA KSVUNI/45/ -C -C REWIND KSVUNI -C - PRINT *,' IN TJLABEL' -C - DO 2760 J = 1,JDIM - DO 2760 I = 1,IDIM - FLDDUP(I,J) = FLDIN(I,J) - 2760 CONTINUE -C -C ----------------------------------------------- -C ESTABLISH FLAGS FOR STRIP LABELS -C ----------------------------------------------- -C -C -C DO KJ=1,57 -C PRINT *,' J=', KJ -C WRITE(*,150)(FLDDUP(KM,KJ),KM=1,53) -C ENDDO -C150 format( 3(10(1x,f5.1),3x),/, 2(10( 1x,F5.1),3x),3(1x,F5.1),/) -C -C - DO 1500 IY = 1,150 - DO 1500 IX = 1,4 - IJV(IX,IY) = 0 - 1500 CONTINUE - CALL VBOUND(FLDDUP,IDIM,JDIM,IJV,LIJV) -C -C ----------------------------------------------- -C SETUP CONTOUR STRIP LABELS -C ----------------------------------------------- -C -C -C ... STRIP LABELS 2ND FIELD -C - DO 1560 III = 1,LIJV - DO 1570 I = 1,4 - IF(IJV(I,III).NE.0) GO TO 1552 - 1570 CONTINUE - GO TO 1581 - 1552 CONTINUE - JUP = IJV(4,III) - 1 ! VBOUND GIVES ONE MORE THAN LENGTH -c IF(JUP) 1560,1560,1554 - IF(JUP.LE.0) GO TO 1560 - - PRINT *,' LIJV=',III,' I=',I,' JUP=',JUP - 1554 CONTINUE - IXX = IJV(2,III) - JYY = IJV(3,III) - PRINT *,' IXX=', IXX, ' JYY=',JYY - PUTHGT = 1. - IPRIOR(1) = 0 - IPRIOR(2) = 0 - ICMPUT = 0 - ICOR = 15 - JCOR = 0 - ILCOR = 15 - JDCOR = 0 - M(1) = 0 - M(2) = 3 - IFORM = IFOR06 -C - IF (KEYIDX.EQ.47) THEN - IFORM = IFOR04 - PUTHGT = 15.0 - ELSE IF (KEYIDX.EQ.51) THEN - IFORM = IFOR04 - ENDIF -C - IF (KEYIDX.EQ.48) THEN - M(2)=2 - ICOR = 10 - ILCOR = 10 - DO I=1,5 - IFG(I) = IFG2(I) - ENDDO - ELSE - DO I=1,5 - IFG(I) = IFG3(I) - ENDDO - ENDIF -C - S = DOTSGI / 60.0 - IF(IJV(1,III).NE.1) THEN ! VERTICAL LABELS -c this call was using fld previously - PRINT *,' CALL CLOSET' - CALL CLOSET(FLDIN,IDIM,JDIM,S,A1,B1,M,JUP,IXX,JYY, - . IFORM,1,IFG) - ELSE ! HORIZONTAL LABELS -c this call was using fld previously - PRINT *,' CALL CLOSEE' - CALL CLOSEE(FLDIN,IDIM,JDIM,S,A1,B1,M,JUP,IXX,JYY, - . IFORM,1,IFG) - ENDIF - 1560 CONTINUE - 1581 CONTINUE -C - JUP = 3 - CALL CLOSEC(FLDIN,IDIM,JDIM,S,A1,B1,M,JUP,IFORM,IFG) -C - RETURN - END diff --git a/util/sorc/faxmakrx.fd/tuwndr.f b/util/sorc/faxmakrx.fd/tuwndr.f deleted file mode 100755 index 5350b14786..0000000000 --- a/util/sorc/faxmakrx.fd/tuwndr.f +++ /dev/null @@ -1,69 +0,0 @@ - SUBROUTINE TUWNDR(GU,GV,IDIR,ISPEED,ANG,VRTLON,ALON,ITRUDR,KEY) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: TUWNDR RETURNS TWO WIND DIRECTIONS. -C AUTHOR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: RETURNS TWO WIND DIRECTIONS. -C -C PROGRAM HISTORY LOG: -C 80-03-12 PETER HENRICHSEN -C 93-04-28 LUKE LIN CONVERT TO FORTRAN-77 AND ADD DOC BLOCK. -C 97-03-13 LUKE LIN CONVERT TO CFT-77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL TUWNDR(GU,GV,IDIR,ISPEED,ANL,VRTLON,ALON,ITRUDR,KEY) -C INPUT ARGUMENTS: -C KEY - WIND DIRECTION RETURNED TO NEAREST TEN DEGREES, KEY=0 -C WIND DIRECTION RETURNED TO NEAREST ONE DEGREE, ELSE. -C GU,GV - THE GRID ORIENTED COMPONENTS OF THE WIND IN ANY -C DESIRED UNIT. -C ANG - ANGLE WIND DIR IS TO BE ROTATED TO CONVERT FROM ONE -C GRID TO ANOTHER ..IE. TO VONVERT WINDS FROM LFM GRID -C FOR DISPLAY ON STANDARD NMC GRID, ANG = +25.0. -C ALON - TRUELON OF WIND. -C VRTLON - VERTICAL LON OF BGRD MAP OR GRID, IE. LFM V. LON. 105. -C -C OUTPUT ARGUMENTS: -C ITRUDR - TRUE DIRECTION OF WIND -C ITRUDR - TRUE DIRECTION OF WIND TO NEAREST TEN DEGS. -C ISPEED - WIND SPEED RETURNED IN SAME UNITS GIVEN. -C -C REMARKS: NONE -C -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - REAL GU,GV,ANG,VRTLON,ALON - INTEGER IDIR,ISPEED,ITRUDR,KEY -C - ISPEED = SQRT(GU*GU+GV*GV)+0.5 -C ISPEED = NINT(SQRT(GU*GU+GV*GV)) - IF(GU .NE. 0.0 .OR. GV .NE. 0.0) GO TO 6 - IDIR = 0 - ITRUDR=99 - RETURN - 6 IDIR = 270.0 -57.29578*ATAN2(GV,GU)+ANG + 0.5 - TRUDR= (FLOAT(IDIR)+(VRTLON-ALON)) - IF(TRUDR.LT.0) TRUDR = TRUDR + 360.0 - ITRUDR = (TRUDR + 5.0)*0.1 - IF(ITRUDR.GT.36) ITRUDR=ITRUDR-36 - IF(KEY.NE.0)GO TO 9 - IDIR = (FLOAT(IDIR)+5.0)*0.1 - IF(IDIR .GT. 36) IDIR =IDIR -36 - 8 IF(ISPEED .EQ. 0) IDIR = 0 - IF(ISPEED .EQ. 0) ITRUDR =99 - IF(IDIR .EQ. 0 .AND.ISPEED .NE. 0) IDIR = 36 - IF(ITRUDR.EQ.0 .AND.ISPEED .NE. 0)ITRUDR=36 - RETURN - 9 IF(ISPEED .EQ. 0) IDIR = 0 - IF(IDIR .GT.360) IDIR =IDIR -360 - IF(ISPEED .EQ. 0) ITRUDR =99 - IF(IDIR .EQ. 0 .AND.ISPEED .NE. 0) IDIR = 360 - IF(ITRUDR.EQ.0 .AND.ISPEED .NE. 0)ITRUDR=36 - RETURN - END diff --git a/util/sorc/faxmakrx.fd/twofld.f b/util/sorc/faxmakrx.fd/twofld.f deleted file mode 100755 index f4e7512157..0000000000 --- a/util/sorc/faxmakrx.fd/twofld.f +++ /dev/null @@ -1,175 +0,0 @@ - SUBROUTINE TWOFLD(FLDIN1,FLDIN2,FLDIN3,IMAX,JMAX,KEYIDX,IRTN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TWOFLD COMPUTE TWO INPUT GRIDPOINT DATA FIELDS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: COMPUTE TWO INPUT GRIDPOINT DATA FIELDS INTO ONE OUTPUT -C FIELD. -C -C PROGRAM HISTORY LOG: -C 89-06-12 LUKE LIN -C 89-09-01 GLORIA DENT ADD KEYIDX PARAMETER TO SUBTRACT PRECIPI- -C TATION FIELDS -C 89-11-14 LUKE LIN ADD KEYIDX PARAMETER FOR ISOTACHS -C 95-02-14 HENRICHSEN COMPLETE REWRITE AND ADDED LOGIC TO FORM -C VORTICITY FIELD FROM U & V FIELDS, -C ADD AN ERROR RETURN ARG (IRTN), -C ADD COMMON/POLE/ , ADD INLINE DOCUMENTATION. -C 95-02-15 LUKE LIN CONVERT IT TO CFT-77 -C 95-06-17 LUKE LIN MODIFY FOR PRECIP WITH DIFFERENT CAL. FORMULA. -C 97-02-18 LUKE LIN ADD KEYIDX 34 FOR HEIGHT CHANGE. -C 1999-08-01 KRISHNA KUMAR ADD POLENEW COMMON BLOCK - MODIFY THE CODE TO -C RUN ON IBM RS/6000 SP SYSTEM -C -C USAGE: CALL TWOFLD(FLDIN1,FLDIN2,FLDIN3,IMAX,JMAX,KEYIDX,IRTN)) -C INPUT ARGUMENT LIST: -C FLDIN1 - FIRST INPUT GRID DATA -C FLDIN2 - SECOND INPUT GRID DATA -C IMAX - I-DIMENSIONS OF GRIDS -C JMAX - J-DIMENSIONS OF GRIDS -C KEYIDX - KEY INDEX OF DATA TYPE (SEE BLOCK DATA) -C -C OUTPUT ARGUMENT LIST: -C FLDIN1 - OUTPUT ARRAY FLDIN1(IMAX,JMAX) CONTAINS RESULT. -C FLDIN3 - SAVE FOR FLDIN1 IF ISOTACHS -C IRTN - RETURN CONDITION. -C - = 0 GOOD RETURN -C - NE 0 ERROR RETURN FROM SUB ABSVOR DO NOT MAKE MAP. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON /POLE/ XPOL,YPOL,GDTYPE -ckumar - COMMON /POLENEW/ XMESHL -ckumar - COMMON /GRB2/ ALUGRB,ALUGRBIX,AFCSTHR,AKEYIDX,CALFLAG,GRB2FLAG - INTEGER ALUGRB - INTEGER ALUGRBIX - INTEGER AFCSTHR - INTEGER AKEYIDX - INTEGER CALFLAG - LOGICAL GRB2FLAG -C -C ...THE POLE POSITION IN GRID(65,65) IS AT GRID(33,33). -C ... GRID MESH LENGHT = XMESHL = 381.0 KLM -C ...THE POLE POSITION IN GRID(53,45) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C ...THE POLE POSITION IN GRID(53,57) IS AT GRID(27,49). -C ... GRID MESH LENGHT = XMESHL = 190.5 KLM -C - REAL FLDIN1(IMAX,JMAX) - REAL FLDIN2(IMAX,JMAX) - REAL FLDIN3(IMAX,JMAX) - REAL WORK(65,6) - REAL TINY -C -C?? DATA TINY / 5.0E-7 / - DATA TINY / 5.0E-4 / - IRTN = 0 -C - IF (KEYIDX.EQ.10 .OR. KEYIDX.EQ.40) THEN -C -C CACULATE WIND SPEED FOR ISOTACH FILED. -C WHERE FLDIN2 CONTAINS THE U'S -C AND FLDIN1 CONTIANS THE V'S. -C - DO J= 1,JMAX - DO I =1,IMAX - GU = FLDIN2(I,J) - GV = FLDIN1(I,J) - FLDIN3(I,J) = FLDIN1(I,J) - SPEED = SQRT(GU*GU+GV*GV) - IF(SPEED.LE.0.0) SPEED = 0.0 - FLDIN1(I,J) = SPEED - ENDDO - ENDDO - ELSE IF (KEYIDX.EQ.3 .OR. KEYIDX.EQ.33) THEN -C -C CACULATE THICKNESS FROM TWO HEIGHT FIELDS. -C WHERE FLDIN1 HAS THE HEIGHER HEIGHT SUCH AS 500MB -C AND FLDIN2 CONTAINS THE LOWER HEIGHT SUCH AS 1000MB -C - DO J = 1,JMAX - DO I = 1,IMAX - FLDIN1(I,J) = FLDIN1(I,J)-FLDIN2(I,J) - ENDDO - ENDDO - ELSE IF (KEYIDX.EQ.18) THEN -C -C CACULATE BLEND AVERAGE -C - DO J = 1,JMAX - DO I = 1,IMAX - FLDIN1(I,J) = (FLDIN1(I,J)+FLDIN2(I,J))/2.0 - ENDDO - ENDDO - ELSE IF (KEYIDX.EQ.34 .OR.KEYIDX.EQ.23) THEN -C -C CACULATE HEIGHT CHANGE -C - DO J = 1,JMAX - DO I = 1,IMAX - FLDIN1(I,J) = FLDIN1(I,J)-FLDIN2(I,J) - ENDDO - ENDDO - ELSE IF (KEYIDX.EQ.7 .OR. KEYIDX.EQ.30 .OR. KEYIDX.EQ.37 - 1 .OR. KEYIDX.EQ.49 .OR. KEYIDX.EQ.19) THEN - -C ...DO SPECIAL PRECIPITATION TEST FOR VALUES LESS THAN .01 INCHES... -C WHERE FLDIN2 CONTAINS THE 12-HR ACCUM -C WHERE FLDIN1 IS THE ACCUM FOR FIRST 6-HR - IF (CALFLAG .LT. 0) THEN -C ... SUBTRACT 6 HR APCP FROM 12 HOUR FCST AND 6 HOUR FCST - DO J=1,JMAX - DO I=1,IMAX - DIFFER = FLDIN1(I,J) - FLDIN2(I,J) - IF (FLDIN1(I,J) .GE. TINY )THEN - IF (FLDIN2(I,J) .LT. TINY ) DIFFER = FLDIN1(I,J) - ELSE - DIFFER = 0.0 - ENDIF - IF ( DIFFER .LT. TINY ) DIFFER = 0.0 - FLDIN1(I,J) = DIFFER - ENDDO - ENDDO - ELSE -C .... PLUS 12 APCP FROM 12 FCST AND 24 FCST LIKE PRECIP - PRINT *,' PLUS TWO PRCIP FIELDS TOGETHER' - DO J=1,JMAX - DO I=1,IMAX - FLDIN1(I,J) = FLDIN2(I,J) + FLDIN1(I,J) - IF ( FLDIN1(I,J) .LT. TINY ) FLDIN1(I,J) = 0.0 - ENDDO - ENDDO - ENDIF - ELSE IF (KEYIDX.EQ.9) THEN -C -C FORMING THE VORTICITY FROM U & V FIELDS -C WHERE FLDIN2 CONTAINS THE U'S -C AND FLDIN1 CONTIANS THE V'S. -C - KSOUTH = 0 - CALL ABSVOR(KSOUTH,FLDIN2,FLDIN1,IMAX,JMAX,XMESHL,XPOL, - 1 YPOL,WORK,FLDIN3,IERROR) - IF (IERROR .EQ. 0 )THEN - DO J = 1,JMAX - DO I = 1,IMAX - FLDIN1(I,J) = FLDIN3(I,J) - ENDDO - ENDDO - WRITE(6,FMT='('' TWOFLD: SUB ABSVOR MADE A VORTICITY '', - 1 ''FIELD FROM U AND V FIELDS.'')') - IRTN = 0 - ELSE - WRITE(6,FMT='('' TWOFLD: ERROR RETURN FROM ABSVOR='',I3, - 1 '' WILL NOT MAKE MAP.'')')IERROR - IRTN = 1 - ENDIF - ENDIF - RETURN - END diff --git a/util/sorc/faxmakrx.fd/unpkhd.f b/util/sorc/faxmakrx.fd/unpkhd.f deleted file mode 100755 index 6959de9a4f..0000000000 --- a/util/sorc/faxmakrx.fd/unpkhd.f +++ /dev/null @@ -1,25 +0,0 @@ - SUBROUTINE UNPKHD(ID12WD) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: UNPKHD DUMMY ROUTINE -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: DUMMY ROUTINE TO SATISIFY UNRESOLVED EXTERNAL. -C -C PROGRAM HISTORY LOG: -C 94-06-16 ORIGINAL AUTHOR HENRICHSEN -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL UNPKHD(ID12WD) -C INPUT ARGUMENT LIST: -C IDREC - 12-WORD PACKED ID -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - INTEGER*8 ID12WD(6) - RETURN - END diff --git a/util/sorc/faxmakrx.fd/uor_dot.f b/util/sorc/faxmakrx.fd/uor_dot.f deleted file mode 100755 index d6a7c5f962..0000000000 --- a/util/sorc/faxmakrx.fd/uor_dot.f +++ /dev/null @@ -1,120 +0,0 @@ - SUBROUTINE UOR_DOT(XUORS,YUORS,IDOT,JDOT,IUOPTN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: UOR_DOT CONVERT UORS COORDINATES -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO CONVERT COORDINATES (IN UORS) FROM THE INTERGRAPH'S -C NORAMPO MAP (M:100CM:1000) AT 1:10MILLION REDUCTION SCALE INTO -C IDOT,JDOT (IN PIXELS) ON 1:20M OR 1:40M SCALE. -C -C PROGRAM HISTORY LOG: -C 87-MM-DD SHIMOMURA; ORIGINAL AUTHOR. -C 89-03-30 R. CHEN; ADD OPTION FOR U.S BACKGROUND NH1302. -C 89-06-07 R. CHEN; ADD THIS DOC BLOCK. -C 90-11-27 R. CHEN; ADD AWIPS N. AMERICAN MAP BACKGROUND. (PNAM02). -C 94-02-10 SHIMOMURA; PORT TO INTERGRAPH UNIX WRKSTN; MOVED ARG -C "LISNHAWIP" FROM COMMON TO CALL SEQ. -C 95-06-28 L. LIN; MODIFY FOR CRAY. -C 95-06-30 L. LIN; ADD OPTION FOR NH4004. -C 96-06-20 L. LIN; ADD OPTION FOR NH4006. -C 96-11-05 L. LIN; ADD OPTION FOR NH4005. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL UOR_DOT(XUORS,YUORS,IDOT,JDOT,IUOPTN) -C INPUT ARGUMENT LIST: -C XUORS - REAL*4; X COORDINATES IN UORS. -C YUORS - REAL*4; Y COORDINATES IN UORS. -C IUOPTN - INTEGER*4; FOR MAP BACKGROUND OPTION SELECTION. -C =1 - NH1302; =2 - NH4006; =3 - NH2002; =4 - PNAM02. -C =5 - NH4004 -C -C OUTPUT ARGUMENT LIST: -C IDOT - INTEGER*4; COVERTED X COORDINATES IN PIXELS. -C JDOT - INTEGER*4; COVERTED Y COORDINATES IN PIXELS. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - COMMON /UOR2D/ UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI,UORFG, - 1 IP,IPOPT - REAL UGRIDT1,UXPO,UYPO,UXADJUS,UYADJUS,UCU2GI - LOGICAL UORFG -C - REAL XUORS,YUORS - INTEGER IDOT,JDOT - INTEGER IUOPTN -C LOGICAL LISNHAWIP -C - REAL T1(8) - REAL XPO(8) - REAL YPO(8) - REAL XADJUS(8) - REAL YADJUS(8) - REAL CU2GI(8) -C - REAL XPOLE,YPOLE - REAL DOTSGI - REAL CUORGR - REAL ADJUSX - REAL ADJUSY -C ... ADJUSX, ADJUSY ARE THE DISPLACEMENT RELATIVE TO POLE. -C - DATA T1 / 54.0, 37.5, 37.5, 37.5, 37.5, 36.0, 28.846, - 1 30.0 / - DATA XPO / 17.0, 33.0, 27.0, 33.0, 33.0, 33.0, 27.0, - 1 27.0 / - DATA YPO / 46.0, 33.0, 46.0, 45.0, 33.0, 33.0, 49.0, - 1 49.0 / - DATA XADJUS / -1.0, -8.0, 0.0, 0.0, -9.0, -9.0,-12.0, - 1 -3.0 / - DATA YADJUS / -5.0, -0.0, 0.0, 0.0, -7.0, -7.0, -7.0, - 1 -3.0 / - DATA CU2GI / 1905.0, 3810.0, 1905.0, 1905.0, 3810.0, - 1 3810.0, 1905.0, 1905.0 / -C -C -C ... IUOPTN=1 FOR 43*31 LFM SUBSET W/ 105W VERTICAL. 1:13M - NH1302. -C ... IUOPTN=2 FOR 65*65 N.HEMI 1/40M W/ 105W VERTI. 1:40M - NH4006. -C ... IUOPTN=3 FOR 53*57 FULL LFM GRID W/ 105W VERTI. 1:20M - NH2002. -C ... IUOPTN=4 FOR 65*43 FULL LFM GRID W/ 105W VERTI. 1:20M - PNAM02. -C ... IUOPTN=5 FOR 65*65 N.HEMI 1/40M W/ 80W VERTI. 1:40M - NH4004. -C ... IUOPTN=6 FOR 65*65 N.HEMI 1/40M W/ 80W VERTI. 1:40M - NH4005. -C ... IUOPTN=7 FOR 53*57 FULL LFM GRID W/ 105W VERTI. 1:26M - PN2601. -C -C PRINT *, ' ',IUOPTN,' UXPO=',UXPO,' UYPO=', UYPO,' t1=',ugridt1 - IF (UORFG) THEN -C .... CONSTANTS FROM INPUT CARDS - CUORGR = UCU2GI - XPOLE = UXPO - YPOLE = UYPO - DOTSGI = UGRIDT1 - ADJUSX = UXADJUS - ADJUSY = UYADJUS - ELSE -C .... CONSTANTS FROM OPTION - ISS = IUOPTN - IF((ISS .LT. 1) .OR. (ISS .GT. 8)) ISS = 2 - CUORGR = CU2GI(ISS) - XPOLE = XPO(ISS) - YPOLE = YPO(ISS) - DOTSGI = T1(ISS) - ADJUSX = XADJUS(ISS) - ADJUSY = YADJUS(ISS) - ENDIF -C -C PRINT *, ' ADJUSX=', ADJUSX, ' ADJUSY=', ADJUSY -C print *,' xpol=',xpole,' ',ypole,' ', cuorgr - XGRID = XUORS / CUORGR - YGRID = YUORS / CUORGR - XLFMG = XGRID + XPOLE + ADJUSX - YLFMG = YGRID + YPOLE + ADJUSY - IDOT = ((XLFMG - 1.0) * DOTSGI) + 0.5 - JDOT = ((YLFMG - 1.0) * DOTSGI) + 0.5 -C - RETURN - END -C diff --git a/util/sorc/faxmakrx.fd/updown.f b/util/sorc/faxmakrx.fd/updown.f deleted file mode 100755 index ced7d8faec..0000000000 --- a/util/sorc/faxmakrx.fd/updown.f +++ /dev/null @@ -1,38 +0,0 @@ - SUBROUTINE UPDOWN(FLDIN1,FLDIN2,IMAXI,JMAXI) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: UPDOWN TO UPSIDE DOWN THE GRID DATA -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO UPSIDE DOWN THE GRID DATA -C -C PROGRAM HISTORY LOG: -C 89-06-28 ORIGINAL AUTHOR LUKE LIN -C 95-01-03 LUKE LIN CONVERT IT CFT-77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C -C USAGE: CALL UPDOWN(FLDIN1,FLDIN2,IMAXI,JMAXI) -C INPUT ARGUMENT LIST: -C FLDIN1 - FLDIN1(IMAXI,JMAXI) INPUT GRID DATA -C I/JMAXI - DIMENSIONS OF SUBGRIDS -C -C OUTPUT ARGUMENT LIST: -C FLDIN2 - OUTPUT ARRAY FLDIN2(IMAXI,JMAXI) -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - REAL FLDIN1(IMAXI,JMAXI) - REAL FLDIN2(IMAXI,JMAXI) -C -C------------------------------------------------------------- -C -C ... UP-SIDE DOWN THE MAP FOR VARIAN - DO 376 J=1,JMAXI - DO 376 I=1,IMAXI - FLDIN2(I,J)=FLDIN1(I,JMAXI-J+1) - 376 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakrx.fd/vbound.f b/util/sorc/faxmakrx.fd/vbound.f deleted file mode 100755 index 67ee1420fa..0000000000 --- a/util/sorc/faxmakrx.fd/vbound.f +++ /dev/null @@ -1,171 +0,0 @@ - SUBROUTINE VBOUND(FT,IFT,JFT,IJV,LIJV) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PGM-VBOUND CHECKING THE BOUNDARY POINTS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: FINDING THE BOUNDARY POINTS -C -C PROGRAM HISTORY LOG: -C 86-04-24 ORIG AUTHOR SCHNURR -C 90-03-15 LILLY ADD DOCBLOCK TO SUBROUTINE -C 93-06-01 GILBERT/LILLY FORTRAN 77 -C 96-07-18 YEN - CONVERT FROM HDS VS FORTRAN TO CRAY CFT-77 -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000. -C ASSIGNED PROPER VALUE TO XINDEFF -C USING RANGE FUNCTION FOR IBM RS/6000 FOR -C COMPILE OPTIONS xlf -qintsize=8 -qrealsize=8. -C -C USAGE: CALL VBOUND(FT,IFT,JFT,IJV,LIJV) -C INPUT ARGUMENT LIST: -C FT - THE GIVEN ARRAY WITH INDEFINITES -C - OUTSIDE THE BOUNDARIES -C IFT - THE I COORDINATE OF THE FIELD -C JFT - THE J COORDINATE OF THE FIELD -C IJV - THE DIMENSIONED 4XLIJV. WORD ONE CONTAINS -C - THE MARKER, WORD TWO THE I COMPONENT, -C - WORD THREE THE J COMPONENT, AND WORD -C - FOUR THE COUNT. THE MARKER IS 0 FOR J -C - VECTORS AND 1 FOR I VECTORS -C -C OUTPUT ARGUMENT LIST: -C LIJV - DATA SET REF NUMBER OF TEMPORARY DISK FILE TO -C - WRITE THE ARGS ONTO -C -C SUBPROGRAMS CALLED: -C LIBRARY: -C SPECIAL - -C W3LIB - -C GRAPHICS - -C -C EXIT STATES: -C COND = 0 SUCCESSFUL RUN -C =1001 IJV ARRAY TOO SHORT -C -C REMARKS: ADDITIONAL INFORMATION WILL BE PROVIDED AS PROGRAM -C BECOMES BETTER UNDERSTOOD -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C -C ...FT IS THE GIVEN ARRAY WITH INDEFINITES OUTSIDE THE BOUNDARIES -C ...IFT,JFT ARE THE DIMENSIONS OF FT -C ...IJV IS DIMENSIONED 4XLIJV. WORD ONE CONTAINS -C ...THE MARKER, WORD TWO THE I COMPONENT, WORD THREE THE J -C ...COMPONENT, AND WORD FOUR THE COUNT. THE MARKER IS 0 FOR J -C ...VECTORS AND 1 FOR I VECTORS. -C -C - DIMENSION FT(IFT,JFT) - DIMENSION IJV(4,LIJV) - REAL XINDEF - DATA XINDEF /1.0E307 / -C ...ZERO LOCATIONS OF IJV - DO 10 M=1,LIJV - DO 20 N=1,4 - IJV(N,M)=0 - 20 CONTINUE - 10 CONTINUE -C ...SCAN FT ARRAY FOR ALL BOUNDARY PTS AND FLAG THE POINT WITH 1 - DO 60 IP=1,IFT - DO 60 JP=1,JFT - IF(FT(IP,JP).EQ.XINDEF) GO TO 60 - IF((IP.EQ.1).OR.(IP.EQ.IFT)) GO TO 35 - IF((JP.EQ.1).OR.(JP.EQ.JFT)) GO TO 35 - GO TO 50 - 35 CONTINUE -C ...POINT IS ON THE BOUNDARY OF FT ARRAY AND NOT INDEFINITE - 40 FT(IP,JP)=1.0 -C ...POINT IS ON THE BOUNDARY NEXT TO AN INDEFINITE - GO TO 60 -C ...CHECK IF POINT IS A CORNER PT. OF AN ADJACENT SQUARE WHICH -C ...HAS AT LEAST ONE INDEFINITE CORNER PT. - 50 CONTINUE - IF(FT(IP-1,JP-1).EQ.XINDEF) GO TO 40 - IF(FT(IP-1,JP).EQ.XINDEF) GO TO 40 - IF(FT(IP-1,JP+1).EQ.XINDEF) GO TO 40 - IF(FT(IP,JP-1).EQ.XINDEF) GO TO 40 - IF(FT(IP,JP+1).EQ.XINDEF) GO TO 40 - IF(FT(IP+1,JP-1).EQ.XINDEF) GO TO 40 - IF(FT(IP+1,JP).EQ.XINDEF) GO TO 40 - IF(FT(IP+1,JP+1).EQ.XINDEF) GO TO 40 -C ...POINT IS IN THE INTERIOR - FT(IP,JP)=0 - 60 CONTINUE -C ...SCAN FIELD FOR J THEN I LINE SEGMENTS AND PUT IN IJV ARRAY - K=1 -C ...J-VECTOR SEARCH - MRK=0 - DO 100 IP=1,IFT - KNT=0 - ISAV=IP - DO 90 JP=1,JFT - IF(FT(IP,JP).EQ.XINDEF) GO TO 70 - IF(FT(IP,JP).NE.1.) GO TO 70 - IF(KNT.NE.0) GO TO 66 - JSAV=JP - KNT=KNT+1 - GO TO 90 - 66 CONTINUE - KNT=KNT+1 -C ...CHECK IF ADJACENT POINT IN NEXT ROW IS A BOUNDARY POINT - IF((IP.EQ.1).OR.(IP.EQ.IFT)) GO TO 90 - IF(FT(IP+1,JP).EQ.XINDEF) GO TO 90 - IF(FT(IP-1,JP).EQ.XINDEF) GO TO 90 - IF(FT(IP+1,JP).EQ.1.) GO TO 70 -C ...POINT TO THE RIGHT IS IN THE INTERIOR - GO TO 90 - 70 IF(KNT.GT.1) GO TO 80 - KNT=0 - GO TO 90 - 80 IF(K.GT.(LIJV-1)) GO TO 1000 - IJV(1,K)=MRK - IJV(2,K)=ISAV - IJV(3,K)=JSAV - IJV(4,K)=KNT - K=K+1 - KNT=0 - 90 CONTINUE - 100 CONTINUE -C ...I-VECTOR SEARCH - MRK=1 - DO 200 JP=1,JFT - KNT=0 - JSAV=JP - DO 190 IP=1,IFT - IF(FT(IP,JP).EQ.XINDEF) GO TO 170 - IF(FT(IP,JP).NE.1.) GO TO 170 - IF(KNT.NE.0) GO TO 166 - ISAV=IP - KNT=KNT+1 - GO TO 190 - 166 CONTINUE - KNT=KNT+1 -C ...CHECK IF ADJACENT POINT IN NEXT ROW IS A BOUNDARY POINT - IF((JP.EQ.1).OR.(JP.EQ.JFT)) GO TO 190 - IF(FT(IP,JP+1).EQ.XINDEF) GO TO 190 - IF(FT(IP,JP-1).EQ.XINDEF) GO TO 190 - IF(FT(IP,JP-1).NE.1.) GO TO 190 -C ...POINT BELOW IS ON BOUNDARY. STOP COUNT. - GO TO 170 - 170 IF(KNT.GT.1) GO TO 180 - KNT=0 - GO TO 190 - 180 IF(K.GT.(LIJV-1)) GO TO 1000 - IJV(1,K)=MRK - IJV(2,K)=ISAV - IJV(3,K)=JSAV - IJV(4,K)=KNT - K=K+1 - KNT=0 - 190 CONTINUE - 200 CONTINUE - RETURN - 1000 PRINT 1001 - 1001 FORMAT(5X,'IJV ARRAY TOO SHORT') - RETURN - END diff --git a/util/sorc/faxmakrx.fd/wndplt.f b/util/sorc/faxmakrx.fd/wndplt.f deleted file mode 100755 index 4f04661e81..0000000000 --- a/util/sorc/faxmakrx.fd/wndplt.f +++ /dev/null @@ -1,97 +0,0 @@ - SUBROUTINE WNDPLT(GRIDU,GRIDV,IMAX,JMAX) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: WNDPLT PLOT WIND DIRECTIONS -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: PLOT WIND DIRECTIONS ON EVERY GRID POINT BY USING -C U & V COMPONENTS. -C -C PROGRAM HISTORY LOG: -C 90-11-05 ORIGINAL AUTHOR LUKE LIN -C 95-01-04 LUKE LIN CONVERT IT CFT-77. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL WNDPLT(GRIDU,GRIDV,IMAX,JMAX) -C INPUT ARGUMENT LIST: -C GRIDU - U COMPONENTS. -C GRIDV - V COMPONENTS. -C IMAX - SIZE OF ARRAY GRIDU/V AT I. -C JMAX - SIZE OF ARRAY GRIDU/V AT J. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C - COMMON /ICON/ UA1(50),UA2(50),UA3(50),UM1(50),UM2(50),UM3(50), - 1 KTYPE(50) - CHARACTER*4 KTYPE - REAL UA1,UA2,UA3,UM1,UM2,UM3 - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C ...KEY TYPE INDEX, CONSTANT, AND CONTOUR LINE VALUE - REAL GRIDU(IMAX,JMAX) - REAL GRIDV(IMAX,JMAX) - REAL CNVRD -C - DATA CNVRD /.01745329/ -C - IPX = 0 - IPY = 0 - IENTRY = 1 - IDELTA = 0 - VA3V = UA3(40) - VM3V = UM3(40) -C .... INITIALIZATION - DO 500 J=2, JMAX-1 - NSKIP = MOD(J,2) - YY = (J-1) * T1 - DO 500 I=2, IMAX-1 - IF (IGRIDP .EQ. 26) THEN - NSKIP = NSKIP + 1 - IF (MOD(NSKIP,2).EQ.0) GO TO 500 - ENDIF - XX = (I-1) * T1 - IF (IPX.EQ.0 .OR. IPY.EQ.0) GO TO 500 - XU=GRIDU(I,J) - YV=GRIDV(I,J) - IF (YV.EQ.0.) GO TO 500 - IF (XU.GE.0.) THEN - ALPHA = 270. - ELSE - ALPHA = 90. - ENDIF -C - RADINS = ATAN2(ABS(YV),ABS(XU)) - WNDIR = RADINS / CNVRD - ASIGN = XU * YV - IF (ASIGN .GE. 0.0) THEN - IWNDIR = NINT(ALPHA - WNDIR) - ELSE - IWNDIR = NINT(ALPHA + WNDIR) - ENDIF - IF (IGRIDP .EQ. 27) THEN - IWNDIR = IWNDIR - 25 - ENDIF - IF (IWNDIR .GT. 360) THEN - IWNDIR = IWNDIR - 360 - ELSE IF (IWNDIR .LT. 0) THEN - IWNDIR = IWNDIR + 360 - ENDIF - KWNDIR = NINT(FLOAT(IWNDIR)/10.) -C - SPEED = SQRT(XU*XU+YV*YV) - SPEED = (SPEED + VA3V) * VM3V - IF(SPEED.LE.0.0) SPEED = 0.0 - KNOTS = NINT(SPEED) - IF (KNOTS.EQ.0) KWNDIR=0 -C ...REGARDLESS WIND DIRECTION IF WIND SPEED LESS THAN 1. -C PRINT *,' I,J,XU,YV,IWNDIR=',I,J,IPX,IPY,XU,YV,KNOTS,IWNDIR -C - IENTRY = IENTRY + 1 - 500 CONTINUE - RETURN - END diff --git a/util/sorc/faxmakrx.fd/xlabel.f b/util/sorc/faxmakrx.fd/xlabel.f deleted file mode 100755 index d492eb70a4..0000000000 --- a/util/sorc/faxmakrx.fd/xlabel.f +++ /dev/null @@ -1,87 +0,0 @@ - SUBROUTINE XLABEL(FLDIN,IDIM,JDIM,XINDEF) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: XLABEL TO SET UNDEFINED ON THE GRID ACCORDINGLY. -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: TO SET UNDEFINED ON THE GRID ACCORDINGLY FOR GENERATING LABELS. -C -C PROGRAM HISTORY LOG: -C 97-04-22 LUKE LIN -C 97-07-11 LUKE LIN MODIFIY FOR GRID TYPE5 AND TRAJECTORY 4-PANEL. -C 1999-08-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM -C RS/6000. -C -C USAGE: CALL XLABEL(FLDIN,IDIM,JDIM,XINDEF) -C INPUT ARGUMENTS: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C IDIM - I-DIMENSION OF THE ORIGINAL SMLFLD. -C JDIM - J-DIMENSION OF THE ORIGINAL SMLFLD. -C -C OUTPUT ARGUMENT LIST: -C FLDIN - REAL*4 BIGFLD(IBIG,JBIG) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: CFT-77 -C MACHINE: CRAY -C -C$$$ -C -C * * * * * * * * * * * -C - COMMON /MUTCON/ KEYIDX,UA1V,UA2V,UA3V,UM1V,UM2V,UM3V,LINEVU,LINEP, - X IGRIDP,T1 -C - COMMON /PCLP/ PCLPFG - LOGICAL PCLPFG -C - COMMON/SEA/ SAN(53,57) - INTEGER SAN - COMMON/TRAJ4/ ZAN(53,57) - INTEGER ZAN -C - REAL FLDIN(IDIM,JDIM) - REAL XINDEF -C - PRINT *, ' IN SUBROUTINE XLABEL' - PRINT *, ' IDIM=', IDIM, ' JDIM=',JDIM -C -C IF (RANGFG.AND.KEYIDX.EQ.46) THEN - IF (KEYIDX.EQ.46) THEN - PRINT *, ' IN TDL MOS TSTM/SVR WX - SET UNDEFINED' - DO I=1, IDIM - DO J=1, JDIM - IF( SAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO - ELSE IF (IGRIDP.EQ.05 .AND. PCLPFG) THEN - PRINT *, ' IN TYPE 5 - SET UNDEFINED' - DO I=1, IDIM - DO J=1, JDIM - IF( SAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO - ELSE IF (KEYIDX.EQ.51.OR.KEYIDX.EQ.47.OR.KEYIDX.EQ.48) THEN - PRINT *, ' IN TRAJ4 SECTION' -C -C DO J=1,57 -C PRINT *,' J=', J -C WRITE(*,150)(FLDIN(M,J),M=1,53) -C ENDDO - 150 format( 3(10(1x,f5.1),3x),/, 2(10( 1x,F5.1),3x),3(1x,F5.1),/) -C - DO I=1, IDIM - DO J=1, JDIM - IF( ZAN(I,J).EQ.0) FLDIN(I,J) = XINDEF - ENDDO - ENDDO - ENDIF -C -C DO J=1,57 -C PRINT *,' J=', J -C WRITE(*,150)(FLDIN(M,J),M=1,53) -C ENDDO - RETURN - END diff --git a/util/sorc/fxcompoz.fd/MAPFILE b/util/sorc/fxcompoz.fd/MAPFILE deleted file mode 100755 index db5bb59eba..0000000000 --- a/util/sorc/fxcompoz.fd/MAPFILE +++ /dev/null @@ -1,3255 +0,0 @@ -Archive member included because of file (symbol) - -/gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - fxcompoz.o (bin2ch_) -/gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - fxcompoz.o (cdc2asc_) -/gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - fxcompoz.o (consol_) -/gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - fxcompozlib.o (xasc2asc_) -/gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - fxcompozlib.o (sbytesccs_) -/gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - fxcompoz.o (swap_bytes_in_place_) -/gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - fxcompozlib.o (mova2i_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - fxcompoz.o (errexit_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - fxcompozlib.o (gbytes_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - fxcompozlib.o (w3as00_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) (w3fi01_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) (w3locdat_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - fxcompoz.o (w3tagb_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - fxcompozlib.o (w3utcdat_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - fxcompozlib.o (xmovex_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) (summary_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) (iw3jdn_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) (w3doxdat_) -/gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) (w3fs26_) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifport.a(getenv.o) - /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) (getenv_) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) - fxcompoz.o (for_emit_diagnostic) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_endfile.o) - fxcompoz.o (for_endfile) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit.o) - /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) (for_exit) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit_handler.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) (for__exit_handler) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_getarg.o) - fxcompozlib.o (for_iargc) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) (for__l_excpt_info) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) (for_check_env_name) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_lub_mgt.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) (for__acquire_lun) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open.o) - fxcompoz.o (for_open) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_preconnected_units_init.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) (for__preconnected_units_create) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_put.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_endfile.o) (for__put_su) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rdir.o) - /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) (for_read_dir) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_reentrancy.o) - fxcompoz.o (for_set_reentrancy) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rewind.o) - fxcompoz.o (for_rewind) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rint_fmt.o) - /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) (for_read_int_fmt) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) (for_since_epoch_t) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_stop.o) - fxcompoz.o (for_stop_core) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_vm.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) (for__set_signal_ops_during_vm) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wdir.o) - fxcompoz.o (for_write_dir) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wint_fmt.o) - fxcompoz.o (for_write_int_fmt) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rewind.o) (for__finish_ufseq_write) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_fmt.o) - fxcompoz.o (for_write_seq_fmt) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_lis.o) - fxcompoz.o (for_write_seq_lis) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_date.o) - /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) (for_date_and_time) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_index.o) - fxcompozlib.o (for_f90_index) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_trim.o) - /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) (for_len_trim) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_f90str.o) - fxcompoz.o (for_cpystr) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) (tbk_stack_trace) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) (for__pthread_mutex_unlock_ptr) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open.o) (for__reopen_file) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio_wrap.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) (for__aio_pthread_self) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_int.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) (cvt_text_to_integer) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_f.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) (cvt_vax_f_to_ieee_single) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_d.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) (cvt_vax_d_to_ieee_double) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_g.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) (cvt_vax_g_to_ieee_double) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cray.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) (cvt_cray_to_ieee_double) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_short.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) (cvt_ibm_short_to_ieee_single) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_long.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) (cvt_ibm_long_to_ieee_double) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_double.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) (cvt_ieee_double_to_cray) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_single.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) (cvt_ieee_single_to_ibm_short) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) (for__close_default) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close_proc.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit_handler.o) (for__close_proc) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_default_io_sizes_env_init.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) (for__default_io_sizes_env_init) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_desc_item.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rdir.o) (for__desc_ret_item) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_comp.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rint_fmt.o) (for__format_compiler) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wint_fmt.o) (for__format_value) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_get.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) (for__get_s) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_index.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_index.o) (for_index) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_intrp_fmt.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rint_fmt.o) (for__interp_fmt) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_ldir_wfs.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_lis.o) (for__wfs_table) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_need_lf.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) (for__add_to_lf_table) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt__globals.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_double.o) (vax_c) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_int_to_text.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) (cvt_integer_to_text) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_data_to_text.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) (cvt_data_to_text) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_log_to_text.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) (cvt_boolean_to_text_ex) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_data.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) (cvt_text_to_data) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_log.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) (cvt_text_to_boolean) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_t.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) (cvt_ieee_t_to_text_ex) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_s.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) (cvt_ieee_s_to_text_ex) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_x.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) (cvt_ieee_x_to_text_ex) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_s.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_s.o) (cvtas_a_to_s) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_t.o) (cvtas_a_to_t) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_s_to_a.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_s.o) (cvtas_s_to_a) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_t_to_a.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_t.o) (cvtas_t_to_a) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_s.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_s.o) (cvtas__nan_s) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_t.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) (cvtas__nan_t) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_x.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_x.o) (cvtas_a_to_x) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_x_to_a.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_x.o) (cvtas_x_to_a) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_x.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_x.o) (cvtas__nan_x) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_globals.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) (cvtas_pten_word) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_53.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_s.o) (cvtas_pten_t) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_64.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) (cvtas_pten_64) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_128.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_s_to_a.o) (cvtas_pten_128) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(fetestexcept.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_stop.o) (fetestexcept) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_stub.o) - /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) (log) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_ct.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_stub.o) (log.L) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_gen.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_stub.o) (log.A) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_ct.o) (__libm_error_support) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrf.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) (matherrf) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrl.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) (matherrl) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherr.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) (matherr) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ints2q.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) (__jtoq) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(qcomp.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) (__neq) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fp2q.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) (__dtoq) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(q2fp.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) (__qtof) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_display.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) (tbk_string_stack_signal_impl) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_backtrace.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_display.o) (tbk_getPC) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(cpu_feature_disp.o) - /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) (__intel_cpu_features_init_x) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_memcmp.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_endfile.o) (_intel_fast_memcmp) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemcpy.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) (_intel_fast_memcpy) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemmove.o) - /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) (_intel_fast_memmove) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemset.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifport.a(getenv.o) (_intel_fast_memset) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(new_proc_init.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/for_main.o (__intel_new_feature_proc_init) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_addsubq.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) (__addq) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_divq.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) (__divq) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcpy.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifport.a(getenv.o) (__intel_sse2_strcpy) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncpy.o) - open99.o (__intel_sse2_strncpy) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strlen.o) - open99.o (__intel_sse2_strlen) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strchr.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) (__intel_sse2_strchr) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncmp.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) (__intel_sse2_strncmp) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcat.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) (__intel_sse2_strcat) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncat.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) (__intel_sse2_strncat) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memcpy_pp.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemcpy.o) (__intel_new_memcpy) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memset_pp.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemset.o) (__intel_new_memset) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memcpy.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemcpy.o) (__intel_ssse3_memcpy) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memcpy.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemcpy.o) (__intel_ssse3_rep_memcpy) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memmove.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemmove.o) (__intel_ssse3_memmove) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memmove.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemmove.o) (__intel_ssse3_rep_memmove) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(irc_msg_support.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_backtrace.o) (__libirc_get_msg) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_mem_ops.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memset_pp.o) (__libirc_largest_cache_size) -/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(proc_init_utils.o) - /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(new_proc_init.o) (__intel_proc_init_ftzdazule) -/usr/lib64/libc_nonshared.a(elf-init.oS) - /usr/lib/../lib64/crt1.o (__libc_csu_fini) - -Allocating common symbols -Common symbol size file - -MPI_Group_compare_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Allgatherv_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Sendrecv_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Reduce_scatter_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Testsome_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Type_vector_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Group_difference_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -profile 0x4 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Cancel_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Type_commit_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Waitall_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Group_range_incl_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -twall 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -cpu_comm 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -for__pthread_mutex_unlock_ptr - 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) -MPI_Rsend_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Reduce_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Type_hindexed_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Attr_delete_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Graph_map_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Waitsome_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Scan_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Probe_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Startall_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Start_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Group_size_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -for__pthread_mutex_lock_ptr - 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) -MPI_Type_ub_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Error_class_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Send_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Group_union_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_group_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Test_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Wtime_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Errhandler_get_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Irsend_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Bcast_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -ftxx 0x320 open99.o -MPI_Isend_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Ssend_init_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Abort_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Pack_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Request_free_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Op_create_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Errhandler_free_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -msglen 0x4 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Cart_rank_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -spac4img_ 0x18b840 fxcompoz.o -procid_0 0x4 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Cart_map_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Cart_shift_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Alltoall_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Address_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Group_intersection_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -thread_count_mutex 0x28 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) -for__pthread_mutex_init_ptr - 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) -MPI_Type_lb_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Errhandler_create_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Recv_init_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Graph_create_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Keyval_free_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Type_indexed_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Type_hvector_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_remote_group_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Type_struct_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Group_translate_ranks_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Gatherv_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Group_range_excl_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -final_wall 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Cart_coords_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -tbytes 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Get_count_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_remote_size_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Type_size_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Ibsend_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Group_excl_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Iprobe_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -proddesc_ 0x1ea08 fxcompoz.o -MPI_Dims_create_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -threads_in_flight_mutex - 0x28 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) -MPI_Recv_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -f_bytes 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -wall_comm 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Op_free_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_compare_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -tcpu 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Error_string_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_size_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Wtick_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_create_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Waitany_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Topo_test_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Graphdims_get_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Unpack_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Send_init_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Errhandler_set_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Bsend_init_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Gather_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Sendrecv_replace_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -trace_flag 0x4 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Irecv_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Cart_sub_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -for__l_argc 0x4 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) -MPI_Group_incl_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Cart_get_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Graph_neighbors_count_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_free_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Keyval_create_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Buffer_detach_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Intercomm_merge_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Issend_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Attr_put_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Graph_get_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Allreduce_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Type_extent_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Initialized_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_rank_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Bsend_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Type_contiguous_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Attr_get_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_test_inter_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Group_rank_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_dup_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Allgather_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -start_wall 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Cartdim_get_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Intercomm_create_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Rsend_init_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Buffer_attach_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Group_free_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Cart_create_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -mypid 0x4 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -tot_wall 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Scatter_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -message_catalog 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) -for__aio_lub_table 0x400 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) -MPI_Testany_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Scatterv_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Testall_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Test_cancelled_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Barrier_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Get_elements_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Comm_split_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Pack_size_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Ssend_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Wait_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Alltoallv_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Graph_neighbors_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Type_free_data 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -for__a_argv 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) -numtask 0x4 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) -MPI_Get_processor_name_data - 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - -Discarded input sections - - .note.GNU-stack - 0x0000000000000000 0x0 /usr/lib/../lib64/crt1.o - .note.GNU-stack - 0x0000000000000000 0x0 /usr/lib/../lib64/crti.o - .note.GNU-stack - 0x0000000000000000 0x0 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/for_main.o - .note.GNU-stack - 0x0000000000000000 0x0 fxcompoz.o - .note.GNU-stack - 0x0000000000000000 0x0 close99.o - .note.GNU-stack - 0x0000000000000000 0x0 fxcompozlib.o - .note.GNU-stack - 0x0000000000000000 0x0 open99.o - .note.GNU-stack - 0x0000000000000000 0x0 rd1byt99.o - .note.GNU-stack - 0x0000000000000000 0x0 reposi99.o - .note.GNU-stack - 0x0000000000000000 0x0 rewind99.o - .note.GNU-stack - 0x0000000000000000 0x0 wheren99.o - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - .note.GNU-stack - 0x0000000000000000 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifport.a(getenv.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_endfile.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit_handler.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_getarg.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_lub_mgt.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_preconnected_units_init.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_put.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rdir.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_reentrancy.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rewind.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rint_fmt.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_stop.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_vm.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wdir.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wint_fmt.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_fmt.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_lis.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_date.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_index.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_trim.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_f90str.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio_wrap.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_int.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_f.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_d.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_g.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cray.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_short.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_long.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_double.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_single.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close_proc.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_default_io_sizes_env_init.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_desc_item.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_comp.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_get.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_index.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_intrp_fmt.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_ldir_wfs.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_need_lf.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt__globals.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_int_to_text.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_data_to_text.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_log_to_text.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_data.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_log.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_t.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_s.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_x.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_s.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_s_to_a.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_t_to_a.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_s.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_t.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_x.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_x_to_a.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_x.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_globals.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_53.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_64.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_128.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(fetestexcept.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_stub.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_ct.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_gen.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrf.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrl.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherr.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ints2q.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(qcomp.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fp2q.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(q2fp.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_display.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_backtrace.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(cpu_feature_disp.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_memcmp.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemcpy.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemmove.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemset.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(new_proc_init.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_addsubq.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_divq.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcpy.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncpy.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strlen.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strchr.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncmp.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcat.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncat.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memcpy_pp.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memset_pp.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memcpy.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memcpy.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memmove.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memmove.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(irc_msg_support.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_mem_ops.o) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(proc_init_utils.o) - .note.GNU-stack - 0x0000000000000000 0x0 /usr/lib64/libc_nonshared.a(elf-init.oS) - .note.GNU-stack - 0x0000000000000000 0x0 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - .note.GNU-stack - 0x0000000000000000 0x0 /usr/lib/../lib64/crtn.o - -Memory Configuration - -Name Origin Length Attributes -*default* 0x0000000000000000 0xffffffffffffffff - -Linker script and memory map - -LOAD /usr/lib/../lib64/crt1.o -LOAD /usr/lib/../lib64/crti.o -LOAD /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o -LOAD /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/for_main.o -LOAD fxcompoz.o -LOAD close99.o -LOAD fxcompozlib.o -LOAD open99.o -LOAD rd1byt99.o -LOAD reposi99.o -LOAD rewind99.o -LOAD wheren99.o -LOAD /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a -LOAD /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a -LOAD /gpfs/hps/nco/ops/nwprod/lib/ip/v2.0.0/intel/libip_v2.0.0_8.a -LOAD /gpfs/hps/nco/ops/nwprod/lib/sp/v2.0.2/intel/libsp_v2.0.2_8.a -LOAD /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a -LOAD /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a -LOAD /gpfs/hps/nco/ops/nwprod/lib/bacio/v2.0.1/intel/libbacio_v2.0.1_8.a -LOAD /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifport.a -LOAD /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a -LOAD /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a -LOAD /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libsvml.a -LOAD /usr/lib/../lib64/libm.so -LOAD /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libipgo.a -LOAD /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a -LOAD /usr/lib/../lib64/libpthread.so -START GROUP -LOAD /lib64/libpthread.so.0 -LOAD /usr/lib64/libpthread_nonshared.a -END GROUP -LOAD /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libsvml.a -LOAD /usr/lib/../lib64/libdl.so -LOAD /usr/lib/../lib64/libc.so -START GROUP -LOAD /lib64/libc.so.6 -LOAD /usr/lib64/libc_nonshared.a -LOAD /lib64/ld-linux-x86-64.so.2 -END GROUP -LOAD /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2//libgcc.a -LOAD /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/../../../../lib64/libgcc_s.so -LOAD /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc_s.a -LOAD /usr/lib/../lib64/libdl.so -LOAD /usr/lib/../lib64/libc.so -START GROUP -LOAD /lib64/libc.so.6 -LOAD /usr/lib64/libc_nonshared.a -LOAD /lib64/ld-linux-x86-64.so.2 -END GROUP -LOAD /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o -LOAD /usr/lib/../lib64/crtn.o - 0x0000000000400000 PROVIDE (__executable_start, 0x400000) - 0x0000000000400238 . = (0x400000 + SIZEOF_HEADERS) - -.interp 0x0000000000400238 0x1c - *(.interp) - .interp 0x0000000000400238 0x1c /usr/lib/../lib64/crt1.o - -.note.ABI-tag 0x0000000000400254 0x20 - .note.ABI-tag 0x0000000000400254 0x20 /usr/lib/../lib64/crt1.o - -.note.SuSE 0x0000000000400274 0x18 - .note.SuSE 0x0000000000400274 0x18 /usr/lib/../lib64/crt1.o - -.note.gnu.build-id - 0x000000000040028c 0x24 - *(.note.gnu.build-id) - .note.gnu.build-id - 0x000000000040028c 0x24 /usr/lib/../lib64/crt1.o - -.hash 0x00000000004002b0 0x458 - *(.hash) - .hash 0x00000000004002b0 0x458 /usr/lib/../lib64/crt1.o - -.gnu.hash 0x0000000000400708 0x16c - *(.gnu.hash) - .gnu.hash 0x0000000000400708 0x16c /usr/lib/../lib64/crt1.o - -.dynsym 0x0000000000400878 0xd98 - *(.dynsym) - .dynsym 0x0000000000400878 0xd98 /usr/lib/../lib64/crt1.o - -.dynstr 0x0000000000401610 0x6b6 - *(.dynstr) - .dynstr 0x0000000000401610 0x6b6 /usr/lib/../lib64/crt1.o - -.gnu.version 0x0000000000401cc6 0x122 - *(.gnu.version) - .gnu.version 0x0000000000401cc6 0x122 /usr/lib/../lib64/crt1.o - -.gnu.version_d 0x0000000000401de8 0x0 - *(.gnu.version_d) - .gnu.version_d - 0x0000000000000000 0x0 /usr/lib/../lib64/crt1.o - -.gnu.version_r 0x0000000000401de8 0xa0 - *(.gnu.version_r) - .gnu.version_r - 0x0000000000401de8 0xa0 /usr/lib/../lib64/crt1.o - -.rela.dyn 0x0000000000401e88 0x438 - *(.rela.init) - *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) - .rela.text 0x0000000000000000 0x0 /usr/lib/../lib64/crt1.o - .rela.text.ssse3 - 0x0000000000000000 0x0 /usr/lib/../lib64/crt1.o - *(.rela.fini) - *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) - .rela.rodata 0x0000000000000000 0x0 /usr/lib/../lib64/crt1.o - *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) - .rela.data 0x0000000000000000 0x0 /usr/lib/../lib64/crt1.o - *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) - *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) - *(.rela.ctors) - *(.rela.dtors) - *(.rela.got) - .rela.got 0x0000000000401e88 0x3f0 /usr/lib/../lib64/crt1.o - *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) - .rela.bss 0x0000000000402278 0x48 /usr/lib/../lib64/crt1.o - *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) - *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) - *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) - *(.rela.ifunc) - -.rela.plt 0x00000000004022c0 0x930 - *(.rela.plt) - .rela.plt 0x00000000004022c0 0x930 /usr/lib/../lib64/crt1.o - 0x0000000000402bf0 PROVIDE (__rela_iplt_start, .) - *(.rela.iplt) - .rela.iplt 0x0000000000000000 0x0 /usr/lib/../lib64/crt1.o - 0x0000000000402bf0 PROVIDE (__rela_iplt_end, .) - -.init 0x0000000000402bf0 0x18 - *(SORT(.init)) - .init 0x0000000000402bf0 0x9 /usr/lib/../lib64/crti.o - 0x0000000000402bf0 _init - .init 0x0000000000402bf9 0x5 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - .init 0x0000000000402bfe 0x5 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - .init 0x0000000000402c03 0x5 /usr/lib/../lib64/crtn.o - -.plt 0x0000000000402c10 0x630 - *(.plt) - .plt 0x0000000000402c10 0x630 /usr/lib/../lib64/crt1.o - 0x0000000000402c20 getenv@@GLIBC_2.2.5 - 0x0000000000402c30 sigprocmask@@GLIBC_2.2.5 - 0x0000000000402c40 raise@@GLIBC_2.2.5 - 0x0000000000402c50 free@@GLIBC_2.2.5 - 0x0000000000402c60 localtime@@GLIBC_2.2.5 - 0x0000000000402c70 abort@@GLIBC_2.2.5 - 0x0000000000402c80 _Unwind_Backtrace@@GCC_3.3 - 0x0000000000402c90 __errno_location@@GLIBC_2.2.5 - 0x0000000000402ca0 unlink@@GLIBC_2.2.5 - 0x0000000000402cb0 strncpy@@GLIBC_2.2.5 - 0x0000000000402cc0 localtime_r@@GLIBC_2.2.5 - 0x0000000000402cd0 strcpy@@GLIBC_2.2.5 - 0x0000000000402ce0 puts@@GLIBC_2.2.5 - 0x0000000000402cf0 isatty@@GLIBC_2.2.5 - 0x0000000000402d00 sigaction@@GLIBC_2.2.5 - 0x0000000000402d10 fread@@GLIBC_2.2.5 - 0x0000000000402d20 vsnprintf@@GLIBC_2.2.5 - 0x0000000000402d30 readlink@@GLIBC_2.2.5 - 0x0000000000402d40 fcntl@@GLIBC_2.2.5 - 0x0000000000402d50 setenv@@GLIBC_2.2.5 - 0x0000000000402d60 _Unwind_GetRegionStart@@GCC_3.0 - 0x0000000000402d70 write@@GLIBC_2.2.5 - 0x0000000000402d80 getpid@@GLIBC_2.2.5 - 0x0000000000402d90 fclose@@GLIBC_2.2.5 - 0x0000000000402da0 __xstat64@@GLIBC_2.2.5 - 0x0000000000402db0 opendir@@GLIBC_2.2.5 - 0x0000000000402dc0 strlen@@GLIBC_2.2.5 - 0x0000000000402dd0 system@@GLIBC_2.2.5 - 0x0000000000402de0 strchr@@GLIBC_2.2.5 - 0x0000000000402df0 printf@@GLIBC_2.2.5 - 0x0000000000402e00 snprintf@@GLIBC_2.2.5 - 0x0000000000402e10 nanosleep@@GLIBC_2.2.5 - 0x0000000000402e20 strrchr@@GLIBC_2.2.5 - 0x0000000000402e30 uname@@GLIBC_2.2.5 - 0x0000000000402e40 siglongjmp@@GLIBC_2.2.5 - 0x0000000000402e50 gmtime_r@@GLIBC_2.2.5 - 0x0000000000402e60 dladdr@@GLIBC_2.2.5 - 0x0000000000402e70 gettimeofday@@GLIBC_2.2.5 - 0x0000000000402e80 fputs@@GLIBC_2.2.5 - 0x0000000000402e90 memset@@GLIBC_2.2.5 - 0x0000000000402ea0 getcwd@@GLIBC_2.2.5 - 0x0000000000402eb0 strncat@@GLIBC_2.2.5 - 0x0000000000402ec0 close@@GLIBC_2.2.5 - 0x0000000000402ed0 closedir@@GLIBC_2.2.5 - 0x0000000000402ee0 fputc@@GLIBC_2.2.5 - 0x0000000000402ef0 memchr@@GLIBC_2.2.5 - 0x0000000000402f00 read@@GLIBC_2.2.5 - 0x0000000000402f10 __libc_start_main@@GLIBC_2.2.5 - 0x0000000000402f20 memcmp@@GLIBC_2.2.5 - 0x0000000000402f30 mkstemp64@@GLIBC_2.2.5 - 0x0000000000402f40 fgets@@GLIBC_2.2.5 - 0x0000000000402f50 calloc@@GLIBC_2.2.5 - 0x0000000000402f60 memcpy@@GLIBC_2.2.5 - 0x0000000000402f70 __fxstat64@@GLIBC_2.2.5 - 0x0000000000402f80 strcmp@@GLIBC_2.2.5 - 0x0000000000402f90 signal@@GLIBC_2.2.5 - 0x0000000000402fa0 _Unwind_ForcedUnwind@@GCC_3.0 - 0x0000000000402fb0 fprintf@@GLIBC_2.2.5 - 0x0000000000402fc0 sigemptyset@@GLIBC_2.2.5 - 0x0000000000402fd0 ftell@@GLIBC_2.2.5 - 0x0000000000402fe0 feof@@GLIBC_2.2.5 - 0x0000000000402ff0 fopen64@@GLIBC_2.2.5 - 0x0000000000403000 freopen64@@GLIBC_2.2.5 - 0x0000000000403010 kill@@GLIBC_2.2.5 - 0x0000000000403020 __xpg_basename@@GLIBC_2.2.5 - 0x0000000000403030 fileno@@GLIBC_2.2.5 - 0x0000000000403040 _Unwind_GetIP@@GCC_3.0 - 0x0000000000403050 malloc@@GLIBC_2.2.5 - 0x0000000000403060 catopen@@GLIBC_2.2.5 - 0x0000000000403070 sscanf@@GLIBC_2.2.5 - 0x0000000000403080 fseek@@GLIBC_2.2.5 - 0x0000000000403090 ttyname@@GLIBC_2.2.5 - 0x00000000004030a0 realloc@@GLIBC_2.2.5 - 0x00000000004030b0 ftruncate64@@GLIBC_2.2.5 - 0x00000000004030c0 open64@@GLIBC_2.2.5 - 0x00000000004030d0 strftime@@GLIBC_2.2.5 - 0x00000000004030e0 memmove@@GLIBC_2.2.5 - 0x00000000004030f0 vsprintf@@GLIBC_2.2.5 - 0x0000000000403100 atol@@GLIBC_2.2.5 - 0x0000000000403110 times@@GLIBC_2.2.5 - 0x0000000000403120 access@@GLIBC_2.2.5 - 0x0000000000403130 fopen@@GLIBC_2.2.5 - 0x0000000000403140 getrusage@@GLIBC_2.2.5 - 0x0000000000403150 perror@@GLIBC_2.2.5 - 0x0000000000403160 sysconf@@GLIBC_2.2.5 - 0x0000000000403170 catclose@@GLIBC_2.2.5 - 0x0000000000403180 catgets@@GLIBC_2.2.5 - 0x0000000000403190 strcat@@GLIBC_2.2.5 - 0x00000000004031a0 sprintf@@GLIBC_2.2.5 - 0x00000000004031b0 exit@@GLIBC_2.2.5 - 0x00000000004031c0 lseek64@@GLIBC_2.2.5 - 0x00000000004031d0 posix_memalign@@GLIBC_2.2.5 - 0x00000000004031e0 strerror@@GLIBC_2.2.5 - 0x00000000004031f0 dlsym@@GLIBC_2.2.5 - 0x0000000000403200 __sigsetjmp@@GLIBC_2.2.5 - 0x0000000000403210 strstr@@GLIBC_2.2.5 - 0x0000000000403220 __ctype_tolower_loc@@GLIBC_2.3 - 0x0000000000403230 __ctype_b_loc@@GLIBC_2.3 - *(.iplt) - .iplt 0x0000000000000000 0x0 /usr/lib/../lib64/crt1.o - -.text 0x0000000000403240 0xb58e8 - *(.text.unlikely .text.*_unlikely) - .text.unlikely - 0x0000000000403240 0x0 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - .text.unlikely - 0x0000000000403240 0x0 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - *(.text.exit .text.exit.*) - *(.text.startup .text.startup.*) - *(.text.hot .text.hot.*) - *(.text .stub .text.* .gnu.linkonce.t.*) - .text 0x0000000000403240 0x2c /usr/lib/../lib64/crt1.o - 0x0000000000403240 _start - .text 0x000000000040326c 0x17 /usr/lib/../lib64/crti.o - *fill* 0x0000000000403283 0xd - .text 0x0000000000403290 0x116 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - *fill* 0x00000000004033a6 0xa - .text 0x00000000004033b0 0x40 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/for_main.o - 0x00000000004033b0 main - .text 0x00000000004033f0 0x5050 fxcompoz.o - 0x00000000004033f0 MAIN__ - .text 0x0000000000408440 0x50 close99.o - 0x0000000000408440 close99_ - .text 0x0000000000408490 0xf950 fxcompozlib.o - 0x0000000000408490 allargv_ - 0x0000000000408c10 atoi_ - 0x00000000004091e0 dcdlnx6b_ - 0x0000000000409c00 pk4_8bit_ - 0x000000000040a040 mv8_8bit_ - 0x000000000040a260 ekeyvals_ - 0x000000000040c910 egtnxtwd_ - 0x000000000040d8e0 lowrcase_ - 0x000000000040e190 findlink_ - 0x0000000000410440 isalpha_ - 0x00000000004106c0 mkpurhdr_ - 0x0000000000411250 plotpart_ - 0x00000000004144a0 scan1440_ - 0x0000000000414c90 vx6b_pur_ - 0x0000000000416af0 strpfnam_ - 0x0000000000417420 rec_dump_ - .text 0x0000000000417de0 0x1a0 open99.o - 0x0000000000417de0 open99_ - .text 0x0000000000417f80 0xa0 rd1byt99.o - 0x0000000000417f80 rd1byt99_ - .text 0x0000000000418020 0x80 reposi99.o - 0x0000000000418020 reposi99_ - .text 0x00000000004180a0 0x40 rewind99.o - 0x00000000004180a0 rewind99_ - .text 0x00000000004180e0 0x60 wheren99.o - 0x00000000004180e0 wheren99_ - .text 0x0000000000418140 0x8a0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - 0x0000000000418140 bin2ch_ - .text 0x00000000004189e0 0x250 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - 0x00000000004189e0 cdc2asc_ - .text 0x0000000000418c30 0x3ae0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - 0x0000000000418c30 consol_ - 0x000000000041bc90 setnam_ - .text 0x000000000041c710 0x390 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - 0x000000000041c710 xasc2asc_ - .text 0x000000000041caa0 0x990 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - 0x000000000041caa0 sbytesccs_ - .text 0x000000000041d430 0x250 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - 0x000000000041d430 swap_bytes_in_place_ - .text 0x000000000041d680 0xf0 /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - 0x000000000041d680 mova2i_ - .text 0x000000000041d770 0x20 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - 0x000000000041d770 errexit_ - .text 0x000000000041d790 0x340 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - 0x000000000041d790 gbytes_ - .text 0x000000000041dad0 0x580 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - 0x000000000041dad0 w3as00_ - 0x000000000041df30 notrail_ - 0x000000000041dfb0 lastch_ - .text 0x000000000041e050 0x10 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - 0x000000000041e050 w3fi01_ - .text 0x000000000041e060 0x90 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - 0x000000000041e060 w3locdat_ - .text 0x000000000041e0f0 0xb10 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - 0x000000000041e0f0 w3tagb_ - 0x000000000041e169 w3tage_ - .text 0x000000000041ec00 0x1b0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - 0x000000000041ec00 w3utcdat_ - .text 0x000000000041edb0 0xb0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - 0x000000000041edb0 xmovex_ - .text 0x000000000041ee60 0x11f0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - 0x000000000041ee60 bucket - 0x000000000041ee80 elapse - 0x000000000041efa0 cputim - 0x000000000041eff0 start_timer - 0x000000000041f1a0 end_timer - 0x000000000041f390 resource - 0x000000000041f6c0 print_timing - 0x000000000041fae0 summary_ - 0x000000000041ff10 start_ - .text 0x0000000000420050 0xe0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - 0x0000000000420050 iw3jdn_ - .text 0x0000000000420130 0x50 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - 0x0000000000420130 w3doxdat_ - .text 0x0000000000420180 0x1e0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - 0x0000000000420180 w3fs26_ - .text 0x0000000000420360 0x190 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifport.a(getenv.o) - 0x0000000000420360 getenv_ - .text 0x00000000004204f0 0x4a50 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) - 0x00000000004204f0 for__this_image_number_or_zero - 0x0000000000420540 for__io_return - 0x0000000000421140 for__issue_diagnostic - 0x0000000000421ae0 for__get_msg - 0x0000000000421de0 for_emit_diagnostic - 0x0000000000421f50 for__message_catalog_close - 0x00000000004226b0 for_errmsg - 0x0000000000422870 for__rtc_uninit_use - 0x0000000000422890 for__rtc_uninit_use_src - 0x00000000004228b0 TRACEBACKQQ - 0x0000000000422af0 tracebackqq_ - 0x0000000000422d30 for_perror_ - 0x0000000000423f20 for_gerror_ - 0x0000000000424cc0 for__establish_user_error_handler - 0x0000000000424d00 for__continue_traceback_ - 0x0000000000424e20 for__continue_traceback - .text 0x0000000000424f40 0x2830 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_endfile.o) - 0x0000000000424f40 for_endfile - 0x00000000004267e0 for_eof - .text 0x0000000000427770 0x20 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit.o) - 0x0000000000427770 for_exit - .text 0x0000000000427790 0x2f0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit_handler.o) - 0x0000000000427790 for__fpe_exit_handler - 0x0000000000427870 for__exit_handler - .text 0x0000000000427a80 0x5e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_getarg.o) - 0x0000000000427a80 for_nargs - 0x0000000000427a90 for_iargc - 0x0000000000427ab0 for_getarg - 0x0000000000427bc0 for_getarg_i2 - 0x0000000000427cd0 nargs_ - 0x0000000000427ce0 iargc_ - 0x0000000000427d00 iarg_ - 0x0000000000427d20 numarg_ - 0x0000000000427d40 getarg_ - 0x0000000000427e10 for_getcmd_arg - .text 0x0000000000428060 0x2a50 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) - 0x0000000000428060 for__process_start_time - 0x0000000000428080 for__signal_handler - 0x0000000000428fd0 for_enable_underflow - 0x0000000000428ff0 for_get_fpe_ - 0x00000000004291d0 for_set_fpe_ - 0x0000000000429550 for_fpe_service - 0x0000000000429900 for_get_fpe_counts_ - 0x0000000000429950 for_rtl_finish_ - 0x0000000000429970 dump_dfil_exception_info - 0x000000000042a850 for_rtl_init_ - .text 0x000000000042aab0 0x1120 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) - 0x000000000042aab0 for__adjust_buffer - 0x000000000042ad00 for__lower_bound_index - 0x000000000042ad50 for__cvt_foreign_read - 0x000000000042b2a0 for__cvt_foreign_write - 0x000000000042baa0 for__cvt_foreign_check - 0x000000000042bb20 for_check_env_name - .text 0x000000000042bbd0 0x2540 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_lub_mgt.o) - 0x000000000042bbd0 for__acquire_lun - 0x000000000042ca80 for__release_lun - 0x000000000042cda0 for__create_lub - 0x000000000042cf40 for__deallocate_lub - 0x000000000042da70 for__get_next_lub - 0x000000000042dee0 for__get_free_newunit - 0x000000000042e0b0 for__release_newunit - .text 0x000000000042e110 0x5ca0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open.o) - 0x000000000042e110 SetEndian - 0x000000000042e510 CheckStreamRecortType - 0x000000000042e9f0 CheckEndian - 0x000000000042ee50 for_open - 0x0000000000430170 for__update_reopen_keywords - 0x0000000000431140 for__set_foreign_bits - 0x0000000000432460 for__open_key - 0x0000000000432710 for__open_args - 0x0000000000432ed0 for__find_iomsg - 0x0000000000432f70 for__set_terminator_option - 0x0000000000433470 for__set_conversion_option - 0x0000000000433880 for__is_special_device - 0x0000000000433a30 for__open_default - .text 0x0000000000433db0 0x240 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_preconnected_units_init.o) - 0x0000000000433db0 for__preconnected_units_create - .text 0x0000000000433ff0 0x1ec0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_put.o) - 0x0000000000433ff0 for__put_su - 0x0000000000434670 for__write_output - 0x0000000000434a50 for__put_sf - 0x0000000000435b10 for__put_d - 0x0000000000435da0 for__flush_readahead - .text 0x0000000000435eb0 0x2d90 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rdir.o) - 0x0000000000435eb0 for_read_dir - 0x00000000004374c0 for_read_dir_xmit - .text 0x0000000000438c40 0x280 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_reentrancy.o) - 0x0000000000438c40 for_set_reentrancy - 0x0000000000438c60 for__reentrancy_cleanup - 0x0000000000438cf0 for__disable_asynch_deliv_private - 0x0000000000438d10 for__enable_asynch_deliv_private - 0x0000000000438d30 for__once_private - 0x0000000000438d80 for__reentrancy_init - .text 0x0000000000438ec0 0xe00 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rewind.o) - 0x0000000000438ec0 for_rewind - .text 0x0000000000439cc0 0x3580 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rint_fmt.o) - 0x0000000000439cc0 for_read_int_fmt - 0x000000000043ad70 for_read_int_fmt_xmit - .text 0x000000000043d240 0x870 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) - 0x000000000043d240 for_since_epoch - 0x000000000043d2e0 for_since_epoch_t - 0x000000000043d380 for_since_epoch_x - 0x000000000043d480 for_secnds - 0x000000000043d590 for_secnds_t - 0x000000000043d6a0 for_secnds_x - 0x000000000043d900 for_cpusec - 0x000000000043d990 for_cpusec_t - 0x000000000043da10 for_cpusec_x - .text 0x000000000043dab0 0x2b50 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_stop.o) - 0x000000000043dab0 for_abort - 0x000000000043e570 for_stop_core_impl - 0x000000000043f120 for_stop_core - 0x000000000043fc50 for_stop - .text 0x0000000000440600 0x1070 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_vm.o) - 0x0000000000440600 for__set_signal_ops_during_vm - 0x0000000000440640 for__get_vm - 0x0000000000440780 for__realloc_vm - 0x0000000000440870 for__free_vm - 0x00000000004408f0 for_allocate - 0x0000000000440c60 for_alloc_allocatable - 0x0000000000440fe0 for_deallocate - 0x0000000000441170 for_dealloc_allocatable - 0x0000000000441320 for_check_mult_overflow - 0x0000000000441440 for_check_mult_overflow64 - 0x00000000004415c0 for__spec_align_alloc - 0x0000000000441660 for__spec_align_free - .text 0x0000000000441670 0x3580 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wdir.o) - 0x0000000000441670 for_write_dir - 0x0000000000442c10 for_write_dir_xmit - .text 0x0000000000444bf0 0x39f0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wint_fmt.o) - 0x0000000000444bf0 for_write_int_fmt - 0x0000000000445d60 for_write_int_fmt_xmit - .text 0x00000000004485e0 0x6200 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq.o) - 0x00000000004485e0 for_write_seq - 0x0000000000449ce0 for_write_seq_xmit - 0x000000000044e380 for__finish_ufseq_write - .text 0x000000000044e7e0 0x4b60 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_fmt.o) - 0x000000000044e7e0 for_write_seq_fmt - 0x0000000000450590 for_write_seq_fmt_xmit - 0x0000000000453170 for__write_args - .text 0x0000000000453340 0x6b90 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_lis.o) - 0x0000000000453340 ensure_one_leading_blank_before_data - 0x0000000000453750 for_write_seq_lis - 0x0000000000455330 for_write_seq_lis_xmit - .text 0x0000000000459ed0 0x5f0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_date.o) - 0x0000000000459ed0 for_date_and_time - 0x000000000045a350 for_system_clock_count - 0x000000000045a440 for_system_clock_rate - 0x000000000045a480 for_system_clock_max - .text 0x000000000045a4c0 0xb10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_index.o) - 0x000000000045a4c0 for_index_back - 0x000000000045aa40 for_f90_index - .text 0x000000000045afd0 0x80 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_trim.o) - 0x000000000045afd0 for_len_trim - 0x000000000045aff0 for_trim - .text 0x000000000045b050 0xd30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_f90str.o) - 0x000000000045b050 for_cpystr - 0x000000000045b0d0 for_cpstr_gt - 0x000000000045b290 for_cpstr_lt - 0x000000000045b450 for_cpstr_eq - 0x000000000045b590 for_cpstr_ne - 0x000000000045b6d0 for_cpstr_ge - 0x000000000045b890 for_cpstr_le - 0x000000000045ba50 for_cpstr - 0x000000000045bbc0 for_concat - .text 0x000000000045bd80 0x1360 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) - 0x000000000045ce80 tbk_stack_trace - .text 0x000000000045d0e0 0x4f30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) - 0x000000000045d0e0 for__aio_acquire_lun_fname - 0x000000000045d3b0 for__aio_release - 0x000000000045d480 for__aio_acquire_lun - 0x000000000045dcf0 for__aio_release_lun - 0x000000000045e310 for__aio_destroy - 0x000000000045e7b0 for_asynchronous - 0x000000000045f7f0 for_waitid - 0x0000000000460690 for_wait - 0x00000000004613e0 for__aio_check_unit - 0x0000000000461620 for__aio_error_handling - 0x0000000000461e50 for__aio_init - .text 0x0000000000462010 0x5350 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) - 0x0000000000462010 fname_from_piped_fd - 0x0000000000462250 for__reopen_file - 0x0000000000462340 for__compute_filename - 0x0000000000464ad0 for__open_proc - 0x0000000000467350 for__decl_exit_hand - .text 0x0000000000467360 0xb0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio_wrap.o) - 0x0000000000467360 for__aio_pthread_self - 0x0000000000467370 for__aio_pthread_create - 0x0000000000467390 for__aio_pthread_cancel - 0x00000000004673a0 for__aio_pthread_detach - 0x00000000004673b0 for__aio_pthread_mutex_lock - 0x00000000004673c0 for__aio_pthread_mutex_unlock - 0x00000000004673d0 for__aio_pthread_cond_wait - 0x00000000004673e0 for__aio_pthread_cond_signal - 0x00000000004673f0 for__aio_pthread_mutex_init - 0x0000000000467400 for__aio_pthread_exit - .text 0x0000000000467410 0xad0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_int.o) - 0x0000000000467410 cvt_text_to_integer - 0x0000000000467730 cvt_text_to_unsigned - 0x0000000000467960 cvt_text_to_integer64 - 0x0000000000467c90 cvt_text_to_unsigned64 - .text 0x0000000000467ee0 0xd20 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_f.o) - 0x0000000000467ee0 cvt_vax_f_to_ieee_single_ - 0x0000000000468340 CVT_VAX_F_TO_IEEE_SINGLE - 0x00000000004687a0 cvt_vax_f_to_ieee_single - .text 0x0000000000468c00 0xf80 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_d.o) - 0x0000000000468c00 cvt_vax_d_to_ieee_double_ - 0x0000000000469130 CVT_VAX_D_TO_IEEE_DOUBLE - 0x0000000000469660 cvt_vax_d_to_ieee_double - .text 0x0000000000469b80 0xf20 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_g.o) - 0x0000000000469b80 cvt_vax_g_to_ieee_double_ - 0x000000000046a080 CVT_VAX_G_TO_IEEE_DOUBLE - 0x000000000046a580 cvt_vax_g_to_ieee_double - .text 0x000000000046aaa0 0x1f40 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cray.o) - 0x000000000046aaa0 cvt_cray_to_ieee_single_ - 0x000000000046af70 CVT_CRAY_TO_IEEE_SINGLE - 0x000000000046b440 cvt_cray_to_ieee_single - 0x000000000046b930 cvt_cray_to_ieee_double_ - 0x000000000046beb0 CVT_CRAY_TO_IEEE_DOUBLE - 0x000000000046c430 cvt_cray_to_ieee_double - .text 0x000000000046c9e0 0xd80 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_short.o) - 0x000000000046c9e0 cvt_ibm_short_to_ieee_single_ - 0x000000000046ce60 CVT_IBM_SHORT_TO_IEEE_SINGLE - 0x000000000046d2e0 cvt_ibm_short_to_ieee_single - .text 0x000000000046d760 0x1070 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_long.o) - 0x000000000046d760 cvt_ibm_long_to_ieee_double_ - 0x000000000046dcc0 CVT_IBM_LONG_TO_IEEE_DOUBLE - 0x000000000046e220 cvt_ibm_long_to_ieee_double - .text 0x000000000046e7d0 0x4080 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_double.o) - 0x000000000046e7d0 cvt_ieee_double_to_cray_ - 0x000000000046ec50 CVT_IEEE_DOUBLE_TO_CRAY - 0x000000000046f0d0 cvt_ieee_double_to_cray - 0x000000000046f550 cvt_ieee_double_to_ibm_long_ - 0x000000000046fa10 CVT_IEEE_DOUBLE_TO_IBM_LONG - 0x000000000046fed0 cvt_ieee_double_to_ibm_long - 0x00000000004703b0 cvt_ieee_double_to_vax_d_ - 0x0000000000470780 CVT_IEEE_DOUBLE_TO_VAX_D - 0x0000000000470b50 cvt_ieee_double_to_vax_d - 0x0000000000470f50 cvt_ieee_double_to_vax_g_ - 0x0000000000471320 CVT_IEEE_DOUBLE_TO_VAX_G - 0x00000000004716f0 cvt_ieee_double_to_vax_g - 0x0000000000471af0 cvt_ieee_double_to_vax_h_ - 0x0000000000471f60 CVT_IEEE_DOUBLE_TO_VAX_H - 0x00000000004723d0 cvt_ieee_double_to_vax_h - .text 0x0000000000472850 0x1fe0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_single.o) - 0x0000000000472850 cvt_ieee_single_to_cray_ - 0x0000000000472bf0 CVT_IEEE_SINGLE_TO_CRAY - 0x0000000000472f90 cvt_ieee_single_to_cray - 0x0000000000473350 cvt_ieee_single_to_ibm_short_ - 0x0000000000473740 CVT_IEEE_SINGLE_TO_IBM_SHORT - 0x0000000000473b30 cvt_ieee_single_to_ibm_short - 0x0000000000473f40 cvt_ieee_single_to_vax_f_ - 0x0000000000474240 CVT_IEEE_SINGLE_TO_VAX_F - 0x0000000000474540 cvt_ieee_single_to_vax_f - .text 0x0000000000474830 0x750 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close.o) - 0x0000000000474830 for_close - 0x0000000000474d30 for__close_args - 0x0000000000474e60 for__close_default - .text 0x0000000000474f80 0x6d0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close_proc.o) - 0x0000000000474f80 for__close_proc - .text 0x0000000000475650 0x220 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_default_io_sizes_env_init.o) - 0x0000000000475650 for__default_io_sizes_env_init - .text 0x0000000000475870 0xbd0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_desc_item.o) - 0x0000000000475870 for__desc_ret_item - 0x0000000000475b80 for__key_desc_ret_item - 0x0000000000475eb0 for__desc_test_item - 0x00000000004760d0 for__desc_zero_length_item - .text 0x0000000000476440 0x3320 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_comp.o) - 0x0000000000476440 for__format_compiler - .text 0x0000000000479760 0x1810 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) - 0x0000000000479760 for__format_value - 0x000000000047a4b0 for__cvt_value - .text 0x000000000047af70 0x2490 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_get.o) - 0x000000000047af70 for__get_s - 0x000000000047c340 for__read_input - 0x000000000047c460 for__get_d - 0x000000000047c810 for__get_su_fields - 0x000000000047d220 for__get_more_fields - .text 0x000000000047d400 0x180 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_index.o) - 0x000000000047d400 for_index - 0x000000000047d480 for_string_index - 0x000000000047d500 for_index_ssll - .text 0x000000000047d580 0xe80 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_intrp_fmt.o) - 0x000000000047d580 for__interp_fmt - .text 0x000000000047e400 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_ldir_wfs.o) - .text 0x000000000047e400 0x4e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_need_lf.o) - 0x000000000047e400 for__add_to_lf_table - 0x000000000047e860 for__rm_from_lf_table - .text 0x000000000047e8e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt__globals.o) - .text 0x000000000047e8e0 0x7d0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_int_to_text.o) - 0x000000000047e8e0 cvt_integer_to_text - 0x000000000047ead0 cvt_unsigned_to_text - 0x000000000047ecb0 cvt_integer64_to_text - 0x000000000047eec0 cvt_unsigned64_to_text - .text 0x000000000047f0b0 0x780 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_data_to_text.o) - 0x000000000047f0b0 cvt_data_to_text - 0x000000000047f470 cvt_data64_to_text - .text 0x000000000047f830 0x8d0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_log_to_text.o) - 0x000000000047f830 cvt_boolean_to_text - 0x000000000047fb30 cvt_boolean_to_text_ex - 0x000000000047fe30 cvt_boolean64_to_text - .text 0x0000000000480100 0x570 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_data.o) - 0x0000000000480100 cvt_text_to_data - 0x00000000004803e0 cvt_text_to_data64 - .text 0x0000000000480670 0x220 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_log.o) - 0x0000000000480670 cvt_text_to_boolean - 0x0000000000480780 cvt_text_to_boolean64 - .text 0x0000000000480890 0x2820 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_t.o) - 0x0000000000480890 cvt_ieee_t_to_text_ex - 0x0000000000481c00 cvt_ieee_t_to_text - 0x0000000000482f20 cvt_text_to_ieee_t_ex - .text 0x00000000004830b0 0x2760 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_s.o) - 0x00000000004830b0 cvt_ieee_s_to_text_ex - 0x00000000004843c0 cvt_ieee_s_to_text - 0x0000000000485680 cvt_text_to_ieee_s_ex - .text 0x0000000000485810 0x1610 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_x.o) - 0x0000000000485810 cvt_ieee_x_to_text - 0x0000000000485860 cvt_ieee_x_to_text_ex - 0x0000000000486c90 cvt_text_to_ieee_x_ex - .text 0x0000000000486e20 0x1660 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_s.o) - 0x0000000000486e20 cvtas_a_to_s - .text 0x0000000000488480 0x2bb0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) - 0x0000000000488480 cvtas_a_to_t - .text 0x000000000048b030 0x53f0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_s_to_a.o) - 0x000000000048b030 cvtas_s_to_a - .text 0x0000000000490420 0x5530 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_t_to_a.o) - 0x0000000000490420 cvtas_t_to_a - .text 0x0000000000495950 0xd0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_s.o) - 0x0000000000495950 cvtas__nan_s - .text 0x0000000000495a20 0xc0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_t.o) - 0x0000000000495a20 cvtas__nan_t - .text 0x0000000000495ae0 0x5270 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_x.o) - 0x0000000000495ae0 cvtas_a_to_x - .text 0x000000000049ad50 0x5750 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_x_to_a.o) - 0x000000000049ad50 cvtas_x_to_a - .text 0x00000000004a04a0 0xf0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_x.o) - 0x00000000004a04a0 cvtas__nan_x - .text 0x00000000004a0590 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_globals.o) - .text 0x00000000004a0590 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_53.o) - .text 0x00000000004a0590 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_64.o) - .text 0x00000000004a0590 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_128.o) - .text 0x00000000004a0590 0x30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(fetestexcept.o) - 0x00000000004a0590 fetestexcept - .text 0x00000000004a05c0 0x50 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_stub.o) - 0x00000000004a05c0 log - .text 0x00000000004a0610 0x270 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_ct.o) - 0x00000000004a0610 log.L - .text 0x00000000004a0880 0x280 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_gen.o) - 0x00000000004a0880 log.A - .text 0x00000000004a0b00 0x7f0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) - 0x00000000004a0d10 __libm_copy_value - 0x00000000004a0e60 __libm_error_support - 0x00000000004a1260 __libm_setusermatherrl - 0x00000000004a1290 __libm_setusermatherr - 0x00000000004a12c0 __libm_setusermatherrf - .text 0x00000000004a12f0 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrf.o) - 0x00000000004a12f0 matherrf - .text 0x00000000004a1300 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrl.o) - 0x00000000004a1300 matherrl - .text 0x00000000004a1310 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherr.o) - 0x00000000004a1310 matherr - .text 0x00000000004a1320 0x1e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ints2q.o) - 0x00000000004a1320 __ktoq - 0x00000000004a13b0 __jtoq - 0x00000000004a1460 __itoq - 0x00000000004a14c0 __utoq - .text 0x00000000004a1500 0x560 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(qcomp.o) - 0x00000000004a1500 __eqq - 0x00000000004a1580 __neq - 0x00000000004a1610 __leq - 0x00000000004a16f0 __ltq - 0x00000000004a17d0 __geq - 0x00000000004a18b0 __gtq - 0x00000000004a1990 __compareq - .text 0x00000000004a1a60 0x1d0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fp2q.o) - 0x00000000004a1a60 __dtoq - 0x00000000004a1b30 __ltoq - 0x00000000004a1ba0 __ftoq - .text 0x00000000004a1c30 0x7e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(q2fp.o) - 0x00000000004a1c30 __qtod - 0x00000000004a1f20 __qtol - 0x00000000004a2160 __qtof - .text 0x00000000004a2410 0x650 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_display.o) - 0x00000000004a2410 tbk_string_stack_signal - 0x00000000004a2476 tbk_string_stack_signal_impl - .text 0x00000000004a2a60 0x1640 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_backtrace.o) - 0x00000000004a2a60 tbk_getPC - 0x00000000004a2a70 tbk_getRetAddr - 0x00000000004a2a80 tbk_getFramePtr - 0x00000000004a2a90 tbk_getModuleName - 0x00000000004a2db0 tbk_get_pc_info - 0x00000000004a3970 tbk_geterrorstring - 0x00000000004a3b20 tbk_trace_stack - 0x00000000004a3b74 tbk_trace_stack_impl - .text 0x00000000004a40a0 0x460 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(cpu_feature_disp.o) - 0x00000000004a40a0 __intel_cpu_features_init_x - 0x00000000004a40c0 __intel_cpu_features_init - .text 0x00000000004a4500 0xe0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_memcmp.o) - 0x00000000004a4500 _intel_fast_memcmp - .text 0x00000000004a45e0 0xc0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemcpy.o) - 0x00000000004a45e0 _intel_fast_memcpy.A - 0x00000000004a45f0 _intel_fast_memcpy.J - 0x00000000004a4600 _intel_fast_memcpy.M - 0x00000000004a4610 _intel_fast_memcpy.P - 0x00000000004a4620 _intel_fast_memcpy - .text 0x00000000004a46a0 0x90 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemmove.o) - 0x00000000004a46a0 _intel_fast_memmove.A - 0x00000000004a46b0 _intel_fast_memmove.M - 0x00000000004a46c0 _intel_fast_memmove.P - 0x00000000004a46d0 _intel_fast_memmove - .text 0x00000000004a4730 0x60 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemset.o) - 0x00000000004a4730 _intel_fast_memset.A - 0x00000000004a4740 _intel_fast_memset.J - 0x00000000004a4750 _intel_fast_memset - .text 0x00000000004a4790 0x360 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(new_proc_init.o) - 0x00000000004a4790 __intel_new_feature_proc_init - .text 0x00000000004a4af0 0x3190 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_addsubq.o) - 0x00000000004a5e00 __addq - 0x00000000004a5eb0 __subq - .text 0x00000000004a7c80 0x1c00 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_divq.o) - 0x00000000004a7c80 __divq.L - 0x00000000004a8a60 __divq.A - 0x00000000004a9840 __divq - .text 0x00000000004a9880 0x130 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcpy.o) - 0x00000000004a9880 __intel_sse2_strcpy - .text 0x00000000004a99b0 0x190 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncpy.o) - 0x00000000004a99b0 __intel_sse2_strncpy - .text 0x00000000004a9b40 0x30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strlen.o) - 0x00000000004a9b40 __intel_sse2_strlen - .text 0x00000000004a9b70 0x40 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strchr.o) - 0x00000000004a9b70 __intel_sse2_strchr - .text 0x00000000004a9bb0 0x2e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncmp.o) - 0x00000000004a9bb0 __intel_sse2_strncmp - .text 0x00000000004a9e90 0x280 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcat.o) - 0x00000000004a9e90 __intel_sse2_strcat - .text 0x00000000004aa110 0x330 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncat.o) - 0x00000000004aa110 __intel_sse2_strncat - .text 0x00000000004aa440 0x17b0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memcpy_pp.o) - 0x00000000004aa440 __intel_memcpy - 0x00000000004aa440 __intel_new_memcpy - .text 0x00000000004abbf0 0x11e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memset_pp.o) - 0x00000000004abbf0 __intel_memset - 0x00000000004abbf0 __intel_new_memset - .text 0x00000000004acdd0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memcpy.o) - .text.ssse3 0x00000000004acdd0 0x29c5 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memcpy.o) - 0x00000000004acdd0 __intel_ssse3_memcpy - *fill* 0x00000000004af795 0x3 - .text 0x00000000004af798 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memcpy.o) - *fill* 0x00000000004af798 0x8 - .text.ssse3 0x00000000004af7a0 0x2ab6 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memcpy.o) - 0x00000000004af7a0 __intel_ssse3_rep_memcpy - *fill* 0x00000000004b2256 0x2 - .text 0x00000000004b2258 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memmove.o) - *fill* 0x00000000004b2258 0x8 - .text.ssse3 0x00000000004b2260 0x2b76 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memmove.o) - 0x00000000004b2260 __intel_ssse3_memmove - *fill* 0x00000000004b4dd6 0x2 - .text 0x00000000004b4dd8 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memmove.o) - *fill* 0x00000000004b4dd8 0x8 - .text.ssse3 0x00000000004b4de0 0x2af6 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memmove.o) - 0x00000000004b4de0 __intel_ssse3_rep_memmove - *fill* 0x00000000004b78d6 0xa - .text 0x00000000004b78e0 0x4e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(irc_msg_support.o) - 0x00000000004b78e0 __libirc_get_msg - 0x00000000004b7b10 __libirc_print - .text 0x00000000004b7dc0 0xbe0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_mem_ops.o) - 0x00000000004b7dc0 __cacheSize - .text 0x00000000004b89a0 0xb0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(proc_init_utils.o) - 0x00000000004b89a0 __intel_proc_init_ftzdazule - .text 0x00000000004b8a50 0x99 /usr/lib64/libc_nonshared.a(elf-init.oS) - 0x00000000004b8a50 __libc_csu_fini - 0x00000000004b8a60 __libc_csu_init - *fill* 0x00000000004b8ae9 0x7 - .text 0x00000000004b8af0 0x36 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - *fill* 0x00000000004b8b26 0x2 - .text 0x00000000004b8b28 0x0 /usr/lib/../lib64/crtn.o - *(.gnu.warning) - -.fini 0x00000000004b8b28 0x16 - *(SORT(.fini)) - .fini 0x00000000004b8b28 0x10 /usr/lib/../lib64/crti.o - 0x00000000004b8b28 _fini - .fini 0x00000000004b8b38 0x5 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - .fini 0x00000000004b8b3d 0x1 /usr/lib/../lib64/crtn.o - 0x00000000004b8b3e PROVIDE (__etext, .) - 0x00000000004b8b3e PROVIDE (_etext, .) - 0x00000000004b8b3e PROVIDE (etext, .) - -.rodata 0x00000000004b8b40 0x19fe0 - *(.rodata .rodata.* .gnu.linkonce.r.*) - .rodata.cst4 0x00000000004b8b40 0x4 /usr/lib/../lib64/crt1.o - 0x00000000004b8b40 _IO_stdin_used - *fill* 0x00000000004b8b44 0x1c - .rodata 0x00000000004b8b60 0xb20 fxcompoz.o - .rodata.str1.4 - 0x00000000004b9680 0x8d fxcompoz.o - 0xb4 (size before relaxing) - *fill* 0x00000000004b970d 0x13 - .rodata.str1.32 - 0x00000000004b9720 0x41 fxcompoz.o - 0x60 (size before relaxing) - *fill* 0x00000000004b9761 0x3 - .rodata.str1.4 - 0x00000000004b9764 0x43 close99.o - 0x44 (size before relaxing) - *fill* 0x00000000004b97a7 0x19 - .rodata 0x00000000004b97c0 0x26c0 fxcompozlib.o - .rodata.str1.4 - 0x00000000004bbe80 0x13 fxcompozlib.o - 0x60 (size before relaxing) - *fill* 0x00000000004bbe93 0x1 - .rodata.str1.4 - 0x00000000004bbe94 0x82 open99.o - 0x84 (size before relaxing) - *fill* 0x00000000004bbf16 0x2 - .rodata.str1.4 - 0x00000000004bbf18 0x3b rd1byt99.o - 0x3c (size before relaxing) - *fill* 0x00000000004bbf53 0x1 - .rodata.str1.4 - 0x00000000004bbf54 0x64 reposi99.o - .rodata.str1.4 - 0x00000000004bbfb8 0x29 rewind99.o - 0x2c (size before relaxing) - *fill* 0x00000000004bbfe1 0x3 - .rodata.str1.4 - 0x00000000004bbfe4 0x49 wheren99.o - 0x4c (size before relaxing) - *fill* 0x00000000004bc02d 0x13 - .rodata 0x00000000004bc040 0x260 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - .rodata.str1.4 - 0x00000000004bc2a0 0x1a /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - 0x74 (size before relaxing) - *fill* 0x00000000004bc2ba 0x6 - .rodata 0x00000000004bc2c0 0x160 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - .rodata 0x00000000004bc420 0x7c0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - .rodata.str1.4 - 0x00000000004bcbe0 0x22 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - 0x60 (size before relaxing) - *fill* 0x00000000004bcc02 0x1e - .rodata 0x00000000004bcc20 0x140 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - .rodata 0x00000000004bcd60 0x1c0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - .rodata.str1.32 - 0x00000000004bcf20 0x46 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - 0x60 (size before relaxing) - *fill* 0x00000000004bcf66 0xa - .rodata 0x00000000004bcf70 0x40 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - .rodata 0x00000000004bcfb0 0x1c /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - .rodata.str1.4 - 0x00000000004bcfcc 0x3 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - 0x14 (size before relaxing) - *fill* 0x00000000004bcfcf 0x1 - .rodata 0x00000000004bcfd0 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - .rodata 0x00000000004bcfd8 0x1a0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - .rodata 0x00000000004bd178 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - .rodata 0x00000000004bd180 0x18 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - .rodata.str1.4 - 0x00000000004bd198 0x2c2 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - 0x300 (size before relaxing) - *fill* 0x00000000004bd45a 0x6 - .rodata.str1.32 - 0x00000000004bd460 0x1df /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - 0x480 (size before relaxing) - *fill* 0x00000000004bd63f 0x1 - .rodata 0x00000000004bd640 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifport.a(getenv.o) - .rodata.str1.4 - 0x00000000004bd650 0x3c49 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) - 0x3cc4 (size before relaxing) - *fill* 0x00000000004c1299 0x7 - .rodata 0x00000000004c12a0 0x58 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) - *fill* 0x00000000004c12f8 0x8 - .rodata.str1.32 - 0x00000000004c1300 0x1644 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) - 0x1660 (size before relaxing) - .rodata.str1.4 - 0x00000000004c2944 0x16 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_endfile.o) - 0x18 (size before relaxing) - *fill* 0x00000000004c295a 0x6 - .rodata 0x00000000004c2960 0x90 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_endfile.o) - .rodata.str1.4 - 0x00000000004c29f0 0x13 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit_handler.o) - 0x14 (size before relaxing) - *fill* 0x00000000004c2a03 0xd - .rodata 0x00000000004c2a10 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_getarg.o) - .rodata.str1.4 - 0x00000000004c2a20 0xd0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) - .rodata 0x00000000004c2af0 0x160 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) - *fill* 0x00000000004c2c50 0x10 - .rodata.str1.32 - 0x00000000004c2c60 0x1ecd /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) - 0x1ee0 (size before relaxing) - *fill* 0x00000000004c4b2d 0x13 - .rodata 0x00000000004c4b40 0x3c0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) - .rodata.str1.4 - 0x00000000004c4f00 0x3 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) - 0x4 (size before relaxing) - *fill* 0x00000000004c4f03 0x5 - .rodata 0x00000000004c4f08 0x2d0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_lub_mgt.o) - .rodata.str1.4 - 0x00000000004c51d8 0xe /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_lub_mgt.o) - 0x10 (size before relaxing) - *fill* 0x00000000004c51e6 0x2 - .rodata.str1.4 - 0x00000000004c51e8 0x3bd /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open.o) - 0x3f0 (size before relaxing) - *fill* 0x00000000004c55a5 0x1b - .rodata 0x00000000004c55c0 0x1980 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open.o) - .rodata.str1.4 - 0x00000000004c6f40 0x7 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_preconnected_units_init.o) - 0x8 (size before relaxing) - *fill* 0x00000000004c6f47 0x1 - .rodata 0x00000000004c6f48 0x210 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_put.o) - .rodata.str1.4 - 0x00000000004c7158 0xa /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_put.o) - 0xc (size before relaxing) - *fill* 0x00000000004c7162 0x2 - .rodata.str1.4 - 0x00000000004c7164 0xb /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rdir.o) - 0x14 (size before relaxing) - *fill* 0x00000000004c716f 0x1 - .rodata 0x00000000004c7170 0x68 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rdir.o) - *fill* 0x00000000004c71d8 0x8 - .rodata 0x00000000004c71e0 0x80 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_reentrancy.o) - .rodata.str1.4 - 0x00000000004c7260 0xd /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rewind.o) - 0x18 (size before relaxing) - *fill* 0x00000000004c726d 0x3 - .rodata.str1.4 - 0x00000000004c7270 0x57 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rint_fmt.o) - 0x60 (size before relaxing) - *fill* 0x00000000004c72c7 0x9 - .rodata 0x00000000004c72d0 0x270 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rint_fmt.o) - .rodata 0x00000000004c7540 0x70 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) - .rodata.str1.4 - 0x00000000004c75b0 0xb /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_stop.o) - 0x14 (size before relaxing) - *fill* 0x00000000004c75bb 0x5 - .rodata 0x00000000004c75c0 0x200 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_stop.o) - .rodata.str1.4 - 0x00000000004c77c0 0xb /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wdir.o) - 0x14 (size before relaxing) - *fill* 0x00000000004c77cb 0x5 - .rodata 0x00000000004c77d0 0x68 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wdir.o) - .rodata.str1.4 - 0x00000000004c7838 0x4d /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wint_fmt.o) - 0x64 (size before relaxing) - *fill* 0x00000000004c7885 0xb - .rodata 0x00000000004c7890 0x220 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wint_fmt.o) - .rodata.str1.4 - 0x00000000004c7ab0 0xb /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq.o) - 0x14 (size before relaxing) - *fill* 0x00000000004c7abb 0x5 - .rodata 0x00000000004c7ac0 0x248 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq.o) - .rodata.str1.4 - 0x00000000004c7d08 0xf /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_fmt.o) - 0x24 (size before relaxing) - *fill* 0x00000000004c7d17 0x9 - .rodata 0x00000000004c7d20 0x2e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_fmt.o) - .rodata 0x00000000004c8000 0x4b0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_lis.o) - .rodata.str1.4 - 0x00000000004c84b0 0xf /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_lis.o) - 0x18 (size before relaxing) - *fill* 0x00000000004c84bf 0x1 - .rodata.str1.4 - 0x00000000004c84c0 0x25 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_date.o) - 0x28 (size before relaxing) - *fill* 0x00000000004c84e5 0x3 - .rodata 0x00000000004c84e8 0x98 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_f90str.o) - .rodata.str1.4 - 0x00000000004c8580 0xd /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_f90str.o) - 0x10 (size before relaxing) - *fill* 0x00000000004c858d 0x3 - .rodata.str1.4 - 0x00000000004c8590 0x1ef /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) - 0x1fc (size before relaxing) - *fill* 0x00000000004c877f 0x1 - .rodata.str1.32 - 0x00000000004c8780 0xb93 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) - 0xba0 (size before relaxing) - *fill* 0x00000000004c9313 0x1 - .rodata.str1.4 - 0x00000000004c9314 0xea /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) - 0x100 (size before relaxing) - *fill* 0x00000000004c93fe 0x2 - .rodata.str1.4 - 0x00000000004c9400 0xb0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) - 0x104 (size before relaxing) - .rodata 0x00000000004c94b0 0x310 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) - .rodata 0x00000000004c97c0 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_int.o) - .rodata 0x00000000004c97d0 0x198 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_f.o) - .rodata 0x00000000004c9968 0x198 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_d.o) - .rodata 0x00000000004c9b00 0x198 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_g.o) - .rodata 0x00000000004c9c98 0x330 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cray.o) - .rodata 0x00000000004c9fc8 0x198 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_short.o) - .rodata 0x00000000004ca160 0x198 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_long.o) - .rodata 0x00000000004ca2f8 0x7f8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_double.o) - .rodata 0x00000000004caaf0 0x4c8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_single.o) - .rodata.str1.4 - 0x0000000000000000 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close.o) - .rodata 0x00000000004cafb8 0x48 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close_proc.o) - .rodata.str1.4 - 0x00000000004cb000 0x66 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close_proc.o) - 0x68 (size before relaxing) - *fill* 0x00000000004cb066 0x2 - .rodata.str1.4 - 0x00000000004cb068 0x43 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_default_io_sizes_env_init.o) - 0x44 (size before relaxing) - *fill* 0x00000000004cb0ab 0x15 - .rodata 0x00000000004cb0c0 0x200 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_desc_item.o) - 0x00000000004cb220 for__dsc_itm_table - .rodata.str1.4 - 0x00000000004cb2c0 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_desc_item.o) - *fill* 0x00000000004cb2d0 0x10 - .rodata 0x00000000004cb2e0 0x3a0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_comp.o) - .rodata.str1.4 - 0x00000000004cb680 0xf /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_comp.o) - 0x10 (size before relaxing) - *fill* 0x00000000004cb68f 0x1 - .rodata 0x00000000004cb690 0x1100 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) - .rodata 0x00000000004cc790 0x48 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_get.o) - .rodata.str1.4 - 0x00000000004cc7d8 0xa /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_get.o) - 0xc (size before relaxing) - *fill* 0x00000000004cc7e2 0x1e - .rodata 0x00000000004cc800 0xbe0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_intrp_fmt.o) - 0x00000000004ccd80 for__oz_fmt_table - 0x00000000004ccde0 for__b_fmt_table - 0x00000000004cce80 for__fedg_fmt_table - 0x00000000004ccf60 for__coerce_data_types - 0x00000000004cd3c3 for__i_fmt_table - .rodata.str1.4 - 0x00000000004cd3e0 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_intrp_fmt.o) - *fill* 0x00000000004cd3f0 0x10 - .rodata 0x00000000004cd400 0x240 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_ldir_wfs.o) - 0x00000000004cd400 for__wfs_table - 0x00000000004cd520 for__wfs_msf_table - .rodata.str1.4 - 0x0000000000000000 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_need_lf.o) - .rodata 0x00000000004cd640 0x60 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_need_lf.o) - .rodata 0x00000000004cd6a0 0x1c0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt__globals.o) - 0x00000000004cd6a0 vax_c - 0x00000000004cd6e0 ieee_t - 0x00000000004cd750 ieee_s - 0x00000000004cd788 ibm_s - 0x00000000004cd7a4 ibm_l - 0x00000000004cd7dc cray - 0x00000000004cd814 int_c - .rodata 0x00000000004cd860 0x20 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_int_to_text.o) - .rodata.str1.4 - 0x00000000004cd880 0x11 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_int_to_text.o) - 0x14 (size before relaxing) - .rodata.str1.4 - 0x0000000000000000 0x14 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_data_to_text.o) - *fill* 0x00000000004cd891 0xf - .rodata 0x00000000004cd8a0 0x20 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_data_to_text.o) - .rodata 0x00000000004cd8c0 0x30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_log_to_text.o) - .rodata 0x00000000004cd8f0 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_t.o) - .rodata 0x00000000004cd900 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_s.o) - .rodata 0x00000000004cd910 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_x.o) - .rodata 0x00000000004cd920 0x150 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_s.o) - .rodata.str1.4 - 0x00000000004cda70 0xd /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_s.o) - 0x10 (size before relaxing) - *fill* 0x00000000004cda7d 0x3 - .rodata 0x00000000004cda80 0x150 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) - .rodata.str1.4 - 0x0000000000000000 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) - .rodata.str1.4 - 0x00000000004cdbd0 0x20 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_s_to_a.o) - 0x30 (size before relaxing) - .rodata 0x00000000004cdbf0 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_s_to_a.o) - .rodata.str1.4 - 0x0000000000000000 0x30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_t_to_a.o) - .rodata 0x00000000004cdc00 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_t_to_a.o) - .rodata 0x00000000004cdc10 0x138 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_x.o) - .rodata.str1.4 - 0x0000000000000000 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_x.o) - .rodata.str1.4 - 0x0000000000000000 0x30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_x_to_a.o) - *fill* 0x00000000004cdd48 0x8 - .rodata 0x00000000004cdd50 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_x_to_a.o) - .rodata 0x00000000004cdd60 0x180 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_globals.o) - 0x00000000004cdd60 cvtas_pten_word - 0x00000000004cde00 cvtas_globals_t - 0x00000000004cde60 cvtas_globals_x - 0x00000000004cdec0 cvtas_globals_s - .rodata 0x00000000004cdee0 0x4e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_53.o) - 0x00000000004cdee0 cvtas_pten_t - 0x00000000004ce1e0 cvtas_tiny_pten_t - 0x00000000004ce280 cvtas_tiny_pten_t_map - 0x00000000004ce2e0 cvtas_huge_pten_t - 0x00000000004ce360 cvtas_huge_pten_t_map - .rodata 0x00000000004ce3c0 0x5e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_64.o) - 0x00000000004ce3c0 cvtas_pten_64 - 0x00000000004ce6c0 cvtas_pten_64_bexp - 0x00000000004ce780 cvtas_tiny_pten_64 - 0x00000000004ce800 cvtas_tiny_pten_64_map - 0x00000000004ce880 cvtas_huge_pten_64 - 0x00000000004ce900 cvtas_huge_pten_64_map - 0x00000000004ce95a cvtas_tiny_pten_64_bexp - 0x00000000004ce978 cvtas_huge_pten_64_bexp - .rodata 0x00000000004ce9a0 0x520 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_128.o) - 0x00000000004ce9a0 cvtas_pten_128 - 0x00000000004ceb60 cvtas_tiny_tiny_pten_128 - 0x00000000004ceba0 cvtas_tiny_pten_128 - 0x00000000004cec40 cvtas_tiny_pten_128_map - 0x00000000004cece0 cvtas_huge_huge_pten_128 - 0x00000000004ced20 cvtas_huge_pten_128 - 0x00000000004cedc0 cvtas_huge_pten_128_map - 0x00000000004cee48 cvtas_pten_128_bexp - 0x00000000004cee7e cvtas_tiny_tiny_pten_128_bexp - 0x00000000004cee86 cvtas_tiny_pten_128_bexp - 0x00000000004cee9a cvtas_huge_huge_pten_128_bexp - 0x00000000004ceea2 cvtas_huge_pten_128_bexp - .rodata 0x00000000004ceec0 0x850 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_ct.o) - .rodata 0x00000000004cf710 0x850 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_gen.o) - .rodata.str1.4 - 0x00000000004cff60 0x45a /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) - 0x484 (size before relaxing) - *fill* 0x00000000004d03ba 0x6 - .rodata 0x00000000004d03c0 0x918 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) - .rodata 0x00000000004d0cd8 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(qcomp.o) - .rodata 0x00000000004d0ce0 0xc /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fp2q.o) - *fill* 0x00000000004d0cec 0x4 - .rodata 0x00000000004d0cf0 0x28 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(q2fp.o) - .rodata.str1.4 - 0x00000000004d0d18 0x113 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_display.o) - 0x118 (size before relaxing) - *fill* 0x00000000004d0e2b 0x15 - .rodata.str1.32 - 0x00000000004d0e40 0xa2 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_display.o) - 0xc0 (size before relaxing) - *fill* 0x00000000004d0ee2 0x2 - .rodata.str1.4 - 0x00000000004d0ee4 0x24 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_backtrace.o) - 0x3c (size before relaxing) - .rodata 0x00000000004d0f08 0x24 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_backtrace.o) - .rodata.str1.4 - 0x00000000004d0f2c 0x14b /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(new_proc_init.o) - 0x150 (size before relaxing) - *fill* 0x00000000004d1077 0x9 - .rodata 0x00000000004d1080 0xa0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_addsubq.o) - .rodata 0x00000000004d1120 0x90 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_divq.o) - .rodata.ssse3 0x00000000004d11b0 0x1c0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memcpy.o) - .rodata.ssse3 0x00000000004d1370 0x500 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memcpy.o) - .rodata.ssse3 0x00000000004d1870 0x1c0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memmove.o) - .rodata.ssse3 0x00000000004d1a30 0x500 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memmove.o) - .rodata.str1.4 - 0x00000000004d1f30 0x58c /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(irc_msg_support.o) - 0x5b0 (size before relaxing) - *fill* 0x00000000004d24bc 0x4 - .rodata.str1.32 - 0x00000000004d24c0 0x660 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(irc_msg_support.o) - -.trace 0x00000000004d2b20 0x2640 - .trace 0x00000000004d2b20 0x4c8 fxcompoz.o - .trace 0x00000000004d2fe8 0x50 close99.o - .trace 0x00000000004d3038 0x16f0 fxcompozlib.o - .trace 0x00000000004d4728 0x70 open99.o - .trace 0x00000000004d4798 0x60 rd1byt99.o - .trace 0x00000000004d47f8 0x58 reposi99.o - .trace 0x00000000004d4850 0x50 rewind99.o - .trace 0x00000000004d48a0 0x58 wheren99.o - .trace 0x00000000004d48f8 0x170 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - .trace 0x00000000004d4a68 0x68 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - .trace 0x00000000004d4ad0 0x438 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - .trace 0x00000000004d4f08 0x80 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - .trace 0x00000000004d4f88 0xe8 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - .trace 0x00000000004d5070 0xa8 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - .trace 0x00000000004d5118 0x48 /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - -.rodata1 - *(.rodata1) - -.eh_frame_hdr 0x00000000004d5160 0xde4 - *(.eh_frame_hdr) - .eh_frame_hdr 0x00000000004d5160 0xde4 /usr/lib/../lib64/crti.o - -.eh_frame 0x00000000004d5f48 0xe92c - *(.eh_frame) - .eh_frame 0x00000000004d5f48 0x40 /usr/lib/../lib64/crt1.o - .eh_frame 0x00000000004d5f88 0x20 /usr/lib/../lib64/crti.o - 0x38 (size before relaxing) - .eh_frame 0x00000000004d5fa8 0x38 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/for_main.o - 0x50 (size before relaxing) - .eh_frame 0x00000000004d5fe0 0x100 fxcompoz.o - .eh_frame 0x00000000004d60e0 0x30 close99.o - 0x48 (size before relaxing) - .eh_frame 0x00000000004d6110 0x4d0 fxcompozlib.o - 0x4e8 (size before relaxing) - .eh_frame 0x00000000004d65e0 0x90 open99.o - 0xa8 (size before relaxing) - .eh_frame 0x00000000004d6670 0x58 rd1byt99.o - 0x70 (size before relaxing) - .eh_frame 0x00000000004d66c8 0x38 reposi99.o - 0x50 (size before relaxing) - .eh_frame 0x00000000004d6700 0x28 rewind99.o - 0x40 (size before relaxing) - .eh_frame 0x00000000004d6728 0x38 wheren99.o - 0x50 (size before relaxing) - .eh_frame 0x00000000004d6760 0x48 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - 0x60 (size before relaxing) - .eh_frame 0x00000000004d67a8 0x48 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - 0x60 (size before relaxing) - .eh_frame 0x00000000004d67f0 0xd8 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - 0xf0 (size before relaxing) - .eh_frame 0x00000000004d68c8 0x48 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - 0x60 (size before relaxing) - .eh_frame 0x00000000004d6910 0x48 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - 0x60 (size before relaxing) - .eh_frame 0x00000000004d6958 0x40 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - 0x58 (size before relaxing) - .eh_frame 0x00000000004d6998 0x30 /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - 0x48 (size before relaxing) - .eh_frame 0x00000000004d69c8 0x20 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - 0x38 (size before relaxing) - .eh_frame 0x00000000004d69e8 0x68 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - 0x80 (size before relaxing) - .eh_frame 0x00000000004d6a50 0x170 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - 0x188 (size before relaxing) - .eh_frame 0x00000000004d6bc0 0x18 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004d6bd8 0x38 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - 0x50 (size before relaxing) - .eh_frame 0x00000000004d6c10 0xf0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - 0x108 (size before relaxing) - .eh_frame 0x00000000004d6d00 0x88 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - 0xa0 (size before relaxing) - .eh_frame 0x00000000004d6d88 0x18 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004d6da0 0x490 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - 0x4a8 (size before relaxing) - .eh_frame 0x00000000004d7230 0x18 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004d7248 0x40 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - 0x58 (size before relaxing) - .eh_frame 0x00000000004d7288 0x40 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - 0x58 (size before relaxing) - .eh_frame 0x00000000004d72c8 0x50 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifport.a(getenv.o) - 0x68 (size before relaxing) - .eh_frame 0x00000000004d7318 0x4d8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) - 0x4f0 (size before relaxing) - .eh_frame 0x00000000004d77f0 0x728 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_endfile.o) - 0x740 (size before relaxing) - .eh_frame 0x00000000004d7f18 0x28 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit.o) - 0x40 (size before relaxing) - .eh_frame 0x00000000004d7f40 0x60 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit_handler.o) - 0x78 (size before relaxing) - .eh_frame 0x00000000004d7fa0 0x1c0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_getarg.o) - 0x1d8 (size before relaxing) - .eh_frame 0x00000000004d8160 0x358 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) - 0x370 (size before relaxing) - .eh_frame 0x00000000004d84b8 0x1c0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) - 0x1d8 (size before relaxing) - .eh_frame 0x00000000004d8678 0x430 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_lub_mgt.o) - 0x448 (size before relaxing) - .eh_frame 0x00000000004d8aa8 0xa08 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open.o) - 0xa20 (size before relaxing) - .eh_frame 0x00000000004d94b0 0x30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_preconnected_units_init.o) - 0x48 (size before relaxing) - .eh_frame 0x00000000004d94e0 0x220 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_put.o) - 0x238 (size before relaxing) - .eh_frame 0x00000000004d9700 0x608 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rdir.o) - 0x620 (size before relaxing) - .eh_frame 0x00000000004d9d08 0x1d0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_reentrancy.o) - 0x1e8 (size before relaxing) - .eh_frame 0x00000000004d9ed8 0x2c8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rewind.o) - 0x2e0 (size before relaxing) - .eh_frame 0x00000000004da1a0 0x6e8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rint_fmt.o) - 0x700 (size before relaxing) - .eh_frame 0x00000000004da888 0x1e8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) - 0x200 (size before relaxing) - .eh_frame 0x00000000004daa70 0x238 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_stop.o) - 0x250 (size before relaxing) - .eh_frame 0x00000000004daca8 0x320 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_vm.o) - 0x338 (size before relaxing) - .eh_frame 0x00000000004dafc8 0x638 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wdir.o) - 0x650 (size before relaxing) - .eh_frame 0x00000000004db600 0x6e8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wint_fmt.o) - 0x700 (size before relaxing) - .eh_frame 0x00000000004dbce8 0x9e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq.o) - 0x9f8 (size before relaxing) - .eh_frame 0x00000000004dc6c8 0x9b0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_fmt.o) - 0x9c8 (size before relaxing) - .eh_frame 0x00000000004dd078 0xbe8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_lis.o) - 0xc00 (size before relaxing) - .eh_frame 0x00000000004ddc60 0xd0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_date.o) - 0xe8 (size before relaxing) - .eh_frame 0x00000000004ddd30 0xe0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_index.o) - 0xf8 (size before relaxing) - .eh_frame 0x00000000004dde10 0x58 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_trim.o) - 0x70 (size before relaxing) - .eh_frame 0x00000000004dde68 0x268 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_f90str.o) - 0x280 (size before relaxing) - .eh_frame 0x00000000004de0d0 0xa0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) - 0xb8 (size before relaxing) - .eh_frame 0x00000000004de170 0x758 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) - 0x770 (size before relaxing) - .eh_frame 0x00000000004de8c8 0x698 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) - 0x6b0 (size before relaxing) - .eh_frame 0x00000000004def60 0x180 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio_wrap.o) - 0x198 (size before relaxing) - .eh_frame 0x00000000004df0e0 0x290 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_int.o) - 0x2a8 (size before relaxing) - .eh_frame 0x00000000004df370 0xc8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_f.o) - 0xe0 (size before relaxing) - .eh_frame 0x00000000004df438 0xc8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_d.o) - 0xe0 (size before relaxing) - .eh_frame 0x00000000004df500 0xc8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_g.o) - 0xe0 (size before relaxing) - .eh_frame 0x00000000004df5c8 0x1e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cray.o) - 0x1f8 (size before relaxing) - .eh_frame 0x00000000004df7a8 0xe0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_short.o) - 0xf8 (size before relaxing) - .eh_frame 0x00000000004df888 0x108 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_long.o) - 0x120 (size before relaxing) - .eh_frame 0x00000000004df990 0x508 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_double.o) - 0x520 (size before relaxing) - .eh_frame 0x00000000004dfe98 0x2a8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_single.o) - 0x2c0 (size before relaxing) - .eh_frame 0x00000000004e0140 0x220 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close.o) - 0x238 (size before relaxing) - .eh_frame 0x00000000004e0360 0x70 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close_proc.o) - 0x88 (size before relaxing) - .eh_frame 0x00000000004e03d0 0x28 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_default_io_sizes_env_init.o) - 0x40 (size before relaxing) - .eh_frame 0x00000000004e03f8 0x1d8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_desc_item.o) - 0x1f0 (size before relaxing) - .eh_frame 0x00000000004e05d0 0x6a8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_comp.o) - 0x6c0 (size before relaxing) - .eh_frame 0x00000000004e0c78 0xf0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) - 0x108 (size before relaxing) - .eh_frame 0x00000000004e0d68 0x4c0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_get.o) - 0x4d8 (size before relaxing) - .eh_frame 0x00000000004e1228 0xa0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_index.o) - 0xb8 (size before relaxing) - .eh_frame 0x00000000004e12c8 0xe8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_intrp_fmt.o) - 0x100 (size before relaxing) - .eh_frame 0x00000000004e13b0 0xb0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_need_lf.o) - 0xc8 (size before relaxing) - .eh_frame 0x00000000004e1460 0x100 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_int_to_text.o) - 0x118 (size before relaxing) - .eh_frame 0x00000000004e1560 0x180 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_data_to_text.o) - 0x198 (size before relaxing) - .eh_frame 0x00000000004e16e0 0x140 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_log_to_text.o) - 0x158 (size before relaxing) - .eh_frame 0x00000000004e1820 0x150 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_data.o) - 0x168 (size before relaxing) - .eh_frame 0x00000000004e1970 0x90 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_log.o) - 0xa8 (size before relaxing) - .eh_frame 0x00000000004e1a00 0x2f8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_t.o) - 0x310 (size before relaxing) - .eh_frame 0x00000000004e1cf8 0x2f8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_s.o) - 0x310 (size before relaxing) - .eh_frame 0x00000000004e1ff0 0x2d8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_x.o) - 0x2f0 (size before relaxing) - .eh_frame 0x00000000004e22c8 0x90 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_s.o) - 0xa8 (size before relaxing) - .eh_frame 0x00000000004e2358 0x90 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) - 0xa8 (size before relaxing) - .eh_frame 0x00000000004e23e8 0x60 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_s_to_a.o) - 0x78 (size before relaxing) - .eh_frame 0x00000000004e2448 0x60 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_t_to_a.o) - 0x78 (size before relaxing) - .eh_frame 0x00000000004e24a8 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_s.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e24c0 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_t.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e24d8 0x90 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_x.o) - 0xa8 (size before relaxing) - .eh_frame 0x00000000004e2568 0x60 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_x_to_a.o) - 0x78 (size before relaxing) - .eh_frame 0x00000000004e25c8 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_x.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e25e0 0x20 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(fetestexcept.o) - 0x38 (size before relaxing) - .eh_frame 0x00000000004e2600 0x20 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_ct.o) - 0x38 (size before relaxing) - .eh_frame 0x00000000004e2620 0x20 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_gen.o) - 0x38 (size before relaxing) - .eh_frame 0x00000000004e2640 0xe8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) - 0x100 (size before relaxing) - .eh_frame 0x00000000004e2728 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrf.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e2740 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrl.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e2758 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherr.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e2770 0x60 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ints2q.o) - 0x78 (size before relaxing) - .eh_frame 0x00000000004e27d0 0xa8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(qcomp.o) - 0xc0 (size before relaxing) - .eh_frame 0x00000000004e2878 0x48 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fp2q.o) - 0x60 (size before relaxing) - .eh_frame 0x00000000004e28c0 0x88 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(q2fp.o) - 0xa0 (size before relaxing) - .eh_frame 0x00000000004e2948 0x1e8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_display.o) - 0x200 (size before relaxing) - .eh_frame 0x00000000004e2b30 0x470 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_backtrace.o) - 0x488 (size before relaxing) - .eh_frame 0x00000000004e2fa0 0x1a8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(cpu_feature_disp.o) - 0x1c0 (size before relaxing) - .eh_frame 0x00000000004e3148 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_memcmp.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e3160 0x60 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemcpy.o) - 0x78 (size before relaxing) - .eh_frame 0x00000000004e31c0 0x48 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemmove.o) - 0x60 (size before relaxing) - .eh_frame 0x00000000004e3208 0x30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemset.o) - 0x48 (size before relaxing) - .eh_frame 0x00000000004e3238 0x80 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(new_proc_init.o) - 0x98 (size before relaxing) - .eh_frame 0x00000000004e32b8 0xb30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_addsubq.o) - 0xb48 (size before relaxing) - .eh_frame 0x00000000004e3de8 0x570 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_divq.o) - 0x588 (size before relaxing) - .eh_frame 0x00000000004e4358 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcpy.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e4370 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncpy.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e4388 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strlen.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e43a0 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strchr.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e43b8 0xd8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncmp.o) - 0xf0 (size before relaxing) - .eh_frame 0x00000000004e4490 0x58 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcat.o) - 0x70 (size before relaxing) - .eh_frame 0x00000000004e44e8 0x68 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncat.o) - 0x80 (size before relaxing) - .eh_frame 0x00000000004e4550 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memcpy_pp.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e4568 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memset_pp.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e4580 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memcpy.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e4598 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memcpy.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e45b0 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memmove.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e45c8 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memmove.o) - 0x30 (size before relaxing) - .eh_frame 0x00000000004e45e0 0x108 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(irc_msg_support.o) - 0x120 (size before relaxing) - .eh_frame 0x00000000004e46e8 0xe0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_mem_ops.o) - 0xf8 (size before relaxing) - .eh_frame 0x00000000004e47c8 0x68 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(proc_init_utils.o) - 0x80 (size before relaxing) - .eh_frame 0x00000000004e4830 0x40 /usr/lib64/libc_nonshared.a(elf-init.oS) - 0x58 (size before relaxing) - .eh_frame 0x00000000004e4870 0x4 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - -.gcc_except_table - *(.gcc_except_table .gcc_except_table.*) - -.exception_ranges - *(.exception_ranges .exception_ranges*) - 0x00000000004e4874 . = (ALIGN (0x200000) - ((0x200000 - .) & 0x1fffff)) - 0x00000000006e57fc . = DATA_SEGMENT_ALIGN (0x200000, 0x1000) - -.eh_frame - *(.eh_frame) - -.gcc_except_table - *(.gcc_except_table .gcc_except_table.*) - -.exception_ranges - *(.exception_ranges .exception_ranges*) - -.tdata - *(.tdata .tdata.* .gnu.linkonce.td.*) - -.tbss - *(.tbss .tbss.* .gnu.linkonce.tb.*) - *(.tcommon) - -.preinit_array 0x00000000006e57fc 0x0 - 0x00000000006e57fc PROVIDE (__preinit_array_start, .) - *(.preinit_array) - 0x00000000006e57fc PROVIDE (__preinit_array_end, .) - -.init_array 0x00000000006e57fc 0x0 - 0x00000000006e57fc PROVIDE (__init_array_start, .) - *(SORT(.init_array.*)) - *(.init_array) - 0x00000000006e57fc PROVIDE (__init_array_end, .) - -.fini_array 0x00000000006e57fc 0x0 - 0x00000000006e57fc PROVIDE (__fini_array_start, .) - *(SORT(.fini_array.*)) - *(.fini_array) - 0x00000000006e57fc PROVIDE (__fini_array_end, .) - -.ctors 0x00000000006e5800 0x18 - *crtbegin.o(.ctors) - .ctors 0x00000000006e5800 0x8 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - *crtbegin?.o(.ctors) - *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) - .ctors 0x00000000006e5808 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_mem_ops.o) - *(SORT(.ctors.*)) - *(.ctors) - .ctors 0x00000000006e5810 0x8 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - -.dtors 0x00000000006e5818 0x10 - *crtbegin.o(.dtors) - .dtors 0x00000000006e5818 0x8 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - *crtbegin?.o(.dtors) - *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) - *(SORT(.dtors.*)) - *(.dtors) - .dtors 0x00000000006e5820 0x8 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - 0x00000000006e5820 __DTOR_END__ - -.jcr 0x00000000006e5828 0x8 - *(.jcr) - .jcr 0x00000000006e5828 0x0 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - .jcr 0x00000000006e5828 0x8 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - -.data.rel.ro 0x00000000006e5840 0x480 - *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) - .data.rel.ro.local - 0x00000000006e5840 0xa0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) - .data.rel.ro.local - 0x00000000006e58e0 0x3e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(irc_msg_support.o) - *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) - -.dynamic 0x00000000006e5cc0 0x1e0 - *(.dynamic) - .dynamic 0x00000000006e5cc0 0x1e0 /usr/lib/../lib64/crt1.o - 0x00000000006e5cc0 _DYNAMIC - -.got 0x00000000006e5ea0 0x158 - *(.got) - .got 0x00000000006e5ea0 0x158 /usr/lib/../lib64/crt1.o - *(.igot) - 0x00000000006e6fe8 . = DATA_SEGMENT_RELRO_END (., (SIZEOF (.got.plt) >= 0x18)?0x18:0x0) - -.got.plt 0x00000000006e6000 0x328 - *(.got.plt) - .got.plt 0x00000000006e6000 0x328 /usr/lib/../lib64/crt1.o - 0x00000000006e6000 _GLOBAL_OFFSET_TABLE_ - *(.igot.plt) - .igot.plt 0x0000000000000000 0x0 /usr/lib/../lib64/crt1.o - -.data 0x00000000006e6340 0x6a00 - *(.data .data.* .gnu.linkonce.d.*) - .data 0x00000000006e6340 0x4 /usr/lib/../lib64/crt1.o - 0x00000000006e6340 data_start - 0x00000000006e6340 __data_start - .data 0x00000000006e6344 0x0 /usr/lib/../lib64/crti.o - *fill* 0x00000000006e6344 0x4 - .data 0x00000000006e6348 0x8 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - 0x00000000006e6348 __dso_handle - .data 0x00000000006e6350 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/for_main.o - *fill* 0x00000000006e6350 0x10 - .data 0x00000000006e6360 0xd80 fxcompoz.o - .data 0x00000000006e70e0 0x0 close99.o - .data 0x00000000006e70e0 0x1d60 fxcompozlib.o - .data 0x00000000006e8e40 0x0 open99.o - .data 0x00000000006e8e40 0x0 rd1byt99.o - .data 0x00000000006e8e40 0x0 reposi99.o - .data 0x00000000006e8e40 0x0 rewind99.o - .data 0x00000000006e8e40 0x0 wheren99.o - .data 0x00000000006e8e40 0x8 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - *fill* 0x00000000006e8e48 0x18 - .data 0x00000000006e8e60 0x180 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - .data 0x00000000006e8fe0 0x700 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - .data 0x00000000006e96e0 0x4 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - *fill* 0x00000000006e96e4 0x4 - .data 0x00000000006e96e8 0x8 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - .data 0x00000000006e96f0 0x0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - .data 0x00000000006e96f0 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - .data 0x00000000006e96f0 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - .data 0x00000000006e96f0 0x8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - *fill* 0x00000000006e96f8 0x8 - .data 0x00000000006e9700 0x160 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - .data 0x00000000006e9860 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - .data 0x00000000006e9860 0x14 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - *fill* 0x00000000006e9874 0xc - .data 0x00000000006e9880 0x640 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - .data 0x00000000006e9ec0 0x14 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - .data 0x00000000006e9ed4 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - .data 0x00000000006e9ed4 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - .data 0x00000000006e9ed4 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - .data 0x00000000006e9ed4 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - .data 0x00000000006e9ed4 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - .data 0x00000000006e9ed4 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifport.a(getenv.o) - *fill* 0x00000000006e9ed4 0xc - .data 0x00000000006e9ee0 0x1e80 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) - .data 0x00000000006ebd60 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_endfile.o) - .data 0x00000000006ebd60 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit.o) - .data 0x00000000006ebd60 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit_handler.o) - .data 0x00000000006ebd60 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_getarg.o) - .data 0x00000000006ebd60 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) - 0x00000000006ebd60 for__segv_default_msg - 0x00000000006ebd68 for__l_current_arg - .data 0x00000000006ebd70 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) - .data 0x00000000006ebd70 0xc /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_lub_mgt.o) - .data 0x00000000006ebd7c 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open.o) - .data 0x00000000006ebd7c 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_preconnected_units_init.o) - .data 0x00000000006ebd7c 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_put.o) - .data 0x00000000006ebd7c 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rdir.o) - *fill* 0x00000000006ebd7c 0x4 - .data 0x00000000006ebd80 0x140 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_reentrancy.o) - 0x00000000006ebd80 for__static_threadstor_private - .data 0x00000000006ebec0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rewind.o) - .data 0x00000000006ebec0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rint_fmt.o) - .data 0x00000000006ebec0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) - .data 0x00000000006ebec0 0x80 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_stop.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_vm.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wdir.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wint_fmt.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_fmt.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_lis.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_date.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_index.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_trim.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_f90str.o) - .data 0x00000000006ebf40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) - .data 0x00000000006ebf40 0x4 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio_wrap.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_int.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_f.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_d.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_g.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cray.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_short.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_long.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_double.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_single.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close_proc.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_default_io_sizes_env_init.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_desc_item.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_comp.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_get.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_index.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_intrp_fmt.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_ldir_wfs.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_need_lf.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt__globals.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_int_to_text.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_data_to_text.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_log_to_text.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_data.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_log.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_t.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_s.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_x.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_s.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_s_to_a.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_t_to_a.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_s.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_t.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_x.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_x_to_a.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_x.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_globals.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_53.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_64.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_128.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(fetestexcept.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_stub.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_ct.o) - .data 0x00000000006ebf44 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_gen.o) - *fill* 0x00000000006ebf44 0x1c - .data 0x00000000006ebf60 0x3c0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) - 0x00000000006ec300 __libm_pmatherrf - 0x00000000006ec308 __libm_pmatherr - 0x00000000006ec310 __libm_pmatherrl - 0x00000000006ec31c _LIB_VERSIONIMF - .data 0x00000000006ec320 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrf.o) - .data 0x00000000006ec320 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrl.o) - .data 0x00000000006ec320 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherr.o) - .data 0x00000000006ec320 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ints2q.o) - .data 0x00000000006ec320 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(qcomp.o) - .data 0x00000000006ec320 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fp2q.o) - .data 0x00000000006ec320 0x28 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(q2fp.o) - .data 0x00000000006ec348 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_display.o) - .data 0x00000000006ec348 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_backtrace.o) - .data 0x00000000006ec348 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(cpu_feature_disp.o) - .data 0x00000000006ec348 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_memcmp.o) - .data 0x00000000006ec348 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemcpy.o) - .data 0x00000000006ec348 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemmove.o) - .data 0x00000000006ec348 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemset.o) - *fill* 0x00000000006ec348 0x18 - .data 0x00000000006ec360 0x160 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(new_proc_init.o) - .data 0x00000000006ec4c0 0x28 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_addsubq.o) - .data 0x00000000006ec4e8 0x30 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_divq.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcpy.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncpy.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strlen.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strchr.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncmp.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcat.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncat.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memcpy_pp.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memset_pp.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memcpy.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memcpy.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memmove.o) - .data 0x00000000006ec518 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memmove.o) - .data 0x00000000006ec518 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(irc_msg_support.o) - .data 0x00000000006ec520 0x820 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_mem_ops.o) - 0x00000000006ecd20 __libirc_largest_cache_size - 0x00000000006ecd24 __libirc_largest_cache_size_half - 0x00000000006ecd28 __libirc_data_cache_size - 0x00000000006ecd2c __libirc_data_cache_size_half - .data 0x00000000006ecd40 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(proc_init_utils.o) - .data 0x00000000006ecd40 0x0 /usr/lib64/libc_nonshared.a(elf-init.oS) - .data 0x00000000006ecd40 0x0 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - .data 0x00000000006ecd40 0x0 /usr/lib/../lib64/crtn.o - -.tm_clone_table - 0x00000000006ecd40 0x0 - .tm_clone_table - 0x00000000006ecd40 0x0 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - .tm_clone_table - 0x00000000006ecd40 0x0 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - -.data1 - *(.data1) - 0x00000000006ecd40 _edata = . - 0x00000000006ecd40 PROVIDE (edata, .) - 0x00000000006ecd40 . = . - 0x00000000006ecd40 __bss_start = . - -.bss 0x00000000006ecd40 0x1d7fc0 - *(.dynbss) - .dynbss 0x00000000006ecd40 0x18 /usr/lib/../lib64/crt1.o - 0x00000000006ecd40 stdout@@GLIBC_2.2.5 - 0x00000000006ecd48 stdin@@GLIBC_2.2.5 - 0x00000000006ecd50 stderr@@GLIBC_2.2.5 - *(.bss .bss.* .gnu.linkonce.b.*) - .bss 0x00000000006ecd58 0x0 /usr/lib/../lib64/crt1.o - .bss 0x00000000006ecd58 0x0 /usr/lib/../lib64/crti.o - .bss 0x00000000006ecd58 0x10 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - .bss 0x00000000006ecd68 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/for_main.o - *fill* 0x00000000006ecd68 0x18 - .bss 0x00000000006ecd80 0x5300 fxcompoz.o - .bss 0x00000000006f2080 0x0 close99.o - .bss 0x00000000006f2080 0x7560 fxcompozlib.o - .bss 0x00000000006f95e0 0x0 open99.o - .bss 0x00000000006f95e0 0x0 rd1byt99.o - .bss 0x00000000006f95e0 0x0 reposi99.o - .bss 0x00000000006f95e0 0x0 rewind99.o - .bss 0x00000000006f95e0 0x0 wheren99.o - .bss 0x00000000006f95e0 0x20 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - .bss 0x00000000006f9600 0x0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - .bss 0x00000000006f9600 0x300 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - .bss 0x00000000006f9900 0x0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - .bss 0x00000000006f9900 0x220 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - .bss 0x00000000006f9b20 0x0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - .bss 0x00000000006f9b20 0x10 /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - .bss 0x00000000006f9b30 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - *fill* 0x00000000006f9b30 0x10 - .bss 0x00000000006f9b40 0x220 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - .bss 0x00000000006f9d60 0x80 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - .bss 0x00000000006f9de0 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - .bss 0x00000000006f9de0 0x18 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - *fill* 0x00000000006f9df8 0x8 - .bss 0x00000000006f9e00 0xc0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - .bss 0x00000000006f9ec0 0x18 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - .bss 0x00000000006f9ed8 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - .bss 0x00000000006f9ed8 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - .bss 0x00000000006f9ed8 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - .bss 0x00000000006f9ed8 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - .bss 0x00000000006f9ed8 0x0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - .bss 0x00000000006f9ed8 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifport.a(getenv.o) - *fill* 0x00000000006f9ed8 0x8 - .bss 0x00000000006f9ee0 0x260 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) - 0x00000000006fa100 for__user_iomsg_buf - 0x00000000006fa108 for__user_iomsg_len - .bss 0x00000000006fa140 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_endfile.o) - .bss 0x00000000006fa140 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit.o) - .bss 0x00000000006fa140 0x4 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_exit_handler.o) - 0x00000000006fa140 for__l_exit_termination - .bss 0x00000000006fa144 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_getarg.o) - *fill* 0x00000000006fa144 0x4 - .bss 0x00000000006fa148 0x48 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) - 0x00000000006fa158 for__l_excpt_info - 0x00000000006fa164 for__l_fpe_mask - 0x00000000006fa168 for__l_undcnt - 0x00000000006fa16c for__l_ovfcnt - 0x00000000006fa170 for__l_div0cnt - 0x00000000006fa174 for__l_invcnt - 0x00000000006fa178 for__l_inecnt - 0x00000000006fa17c for__l_fmtrecl - 0x00000000006fa180 for__l_ufmtrecl - 0x00000000006fa184 for__l_blocksize - 0x00000000006fa188 for__l_buffercount - .bss 0x00000000006fa190 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_io_util.o) - *fill* 0x00000000006fa190 0x10 - .bss 0x00000000006fa1a0 0x2760 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_lub_mgt.o) - 0x00000000006fa1c0 for__lub_table - .bss 0x00000000006fc900 0x440 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open.o) - 0x00000000006fcd20 for__l_exit_hand_decl - .bss 0x00000000006fcd40 0x15e0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_preconnected_units_init.o) - .bss 0x00000000006fe320 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_put.o) - .bss 0x00000000006fe320 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rdir.o) - .bss 0x00000000006fe320 0x18 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_reentrancy.o) - 0x00000000006fe330 for__reentrancy_mode - 0x00000000006fe334 for__reentrancy_initialized - .bss 0x00000000006fe338 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rewind.o) - .bss 0x00000000006fe338 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_rint_fmt.o) - .bss 0x00000000006fe338 0x4 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_secnds.o) - .bss 0x00000000006fe33c 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_stop.o) - .bss 0x00000000006fe344 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_vm.o) - .bss 0x00000000006fe354 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wdir.o) - .bss 0x00000000006fe354 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wint_fmt.o) - .bss 0x00000000006fe354 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq.o) - .bss 0x00000000006fe354 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_fmt.o) - .bss 0x00000000006fe354 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_wseq_lis.o) - .bss 0x00000000006fe354 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_date.o) - .bss 0x00000000006fe354 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_index.o) - .bss 0x00000000006fe354 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_90_trim.o) - .bss 0x00000000006fe354 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_f90str.o) - .bss 0x00000000006fe354 0x4 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(tbk_traceback.o) - .bss 0x00000000006fe358 0xd8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) - 0x00000000006fe400 for__aio_global_mutex - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_open_proc.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio_wrap.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_int.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_f.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_d.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_vax_g.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cray.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_short.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ibm_long.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_double.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_ieee_single.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_close_proc.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_default_io_sizes_env_init.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_desc_item.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_comp.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_fmt_val.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_get.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_index.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_intrp_fmt.o) - .bss 0x00000000006fe430 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_ldir_wfs.o) - *fill* 0x00000000006fe430 0x10 - .bss 0x00000000006fe440 0x20a0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_need_lf.o) - 0x00000000006fe440 for__file_info_hash_table - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt__globals.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_int_to_text.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_data_to_text.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_log_to_text.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_data.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_text_to_log.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_t.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_s.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvt_cvtas_x.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_s.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_t.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_s_to_a.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_t_to_a.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_s.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_t.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_a_to_x.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_x_to_a.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_nan_x.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_globals.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_53.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_64.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(cvtas_pow_ten_128.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(fetestexcept.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_stub.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_ct.o) - .bss 0x00000000007004e0 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_gen.o) - .bss 0x00000000007004e0 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(libm_error.o) - .bss 0x00000000007004e8 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrf.o) - .bss 0x00000000007004e8 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherrl.o) - .bss 0x00000000007004e8 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(matherr.o) - .bss 0x00000000007004e8 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ints2q.o) - .bss 0x00000000007004e8 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(qcomp.o) - .bss 0x00000000007004e8 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fp2q.o) - .bss 0x00000000007004e8 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(q2fp.o) - .bss 0x00000000007004e8 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_display.o) - *fill* 0x00000000007004e8 0x18 - .bss 0x0000000000700500 0x180 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(tbk_backtrace.o) - 0x00000000007005a0 tbk__jmp_env - .bss 0x0000000000700680 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(cpu_feature_disp.o) - 0x0000000000700680 __intel_cpu_feature_indicator - 0x0000000000700688 __intel_cpu_feature_indicator_x - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_memcmp.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemcpy.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemmove.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemset.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(new_proc_init.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_addsubq.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_divq.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcpy.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncpy.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strlen.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strchr.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncmp.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strcat.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(sse2_strncat.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memcpy_pp.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_memset_pp.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memcpy.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memcpy.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_memmove.o) - .bss 0x0000000000700690 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(intel_ssse3_rep_memmove.o) - *fill* 0x0000000000700690 0x10 - .bss 0x00000000007006a0 0x420 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(irc_msg_support.o) - .bss 0x0000000000700ac0 0x60 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fast_mem_ops.o) - 0x0000000000700b04 __libirc_mem_ops_method - 0x0000000000700b08 __libirc_largest_cachelinesize - .bss 0x0000000000700b20 0x0 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(proc_init_utils.o) - .bss 0x0000000000700b20 0x0 /usr/lib64/libc_nonshared.a(elf-init.oS) - .bss 0x0000000000700b20 0x0 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - .bss 0x0000000000700b20 0x0 /usr/lib/../lib64/crtn.o - *(COMMON) - COMMON 0x0000000000700b20 0x1aa248 fxcompoz.o - 0x0000000000700b20 spac4img_ - 0x000000000088c360 proddesc_ - *fill* 0x00000000008aad68 0x18 - COMMON 0x00000000008aad80 0x320 open99.o - 0x00000000008aad80 ftxx - COMMON 0x00000000008ab0a0 0x197c0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - 0x00000000008ab0a0 MPI_Group_compare_data - 0x00000000008ab3e0 MPI_Allgatherv_data - 0x00000000008ab720 MPI_Sendrecv_data - 0x00000000008aba60 MPI_Reduce_scatter_data - 0x00000000008abda0 MPI_Testsome_data - 0x00000000008ac0e0 MPI_Type_vector_data - 0x00000000008ac420 MPI_Group_difference_data - 0x00000000008ac760 profile - 0x00000000008ac780 MPI_Cancel_data - 0x00000000008acac0 MPI_Type_commit_data - 0x00000000008ace00 MPI_Waitall_data - 0x00000000008ad140 MPI_Group_range_incl_data - 0x00000000008ad480 twall - 0x00000000008ad488 cpu_comm - 0x00000000008ad4a0 MPI_Rsend_data - 0x00000000008ad7e0 MPI_Reduce_data - 0x00000000008adb20 MPI_Type_hindexed_data - 0x00000000008ade60 MPI_Attr_delete_data - 0x00000000008ae1a0 MPI_Graph_map_data - 0x00000000008ae4e0 MPI_Waitsome_data - 0x00000000008ae820 MPI_Scan_data - 0x00000000008aeb60 MPI_Probe_data - 0x00000000008aeea0 MPI_Startall_data - 0x00000000008af1e0 MPI_Start_data - 0x00000000008af520 MPI_Group_size_data - 0x00000000008af860 MPI_Type_ub_data - 0x00000000008afba0 MPI_Error_class_data - 0x00000000008afee0 MPI_Send_data - 0x00000000008b0220 MPI_Group_union_data - 0x00000000008b0560 MPI_Comm_group_data - 0x00000000008b08a0 MPI_Test_data - 0x00000000008b0be0 MPI_Wtime_data - 0x00000000008b0f20 MPI_Errhandler_get_data - 0x00000000008b1260 MPI_Irsend_data - 0x00000000008b15a0 MPI_Bcast_data - 0x00000000008b18e0 MPI_Isend_data - 0x00000000008b1c20 MPI_Ssend_init_data - 0x00000000008b1f60 MPI_Abort_data - 0x00000000008b22a0 MPI_Pack_data - 0x00000000008b25e0 MPI_Request_free_data - 0x00000000008b2920 MPI_Op_create_data - 0x00000000008b2c60 MPI_Errhandler_free_data - 0x00000000008b2fa0 msglen - 0x00000000008b2fc0 MPI_Cart_rank_data - 0x00000000008b3300 procid_0 - 0x00000000008b3320 MPI_Cart_map_data - 0x00000000008b3660 MPI_Cart_shift_data - 0x00000000008b39a0 MPI_Alltoall_data - 0x00000000008b3ce0 MPI_Address_data - 0x00000000008b4020 MPI_Group_intersection_data - 0x00000000008b4360 MPI_Type_lb_data - 0x00000000008b46a0 MPI_Errhandler_create_data - 0x00000000008b49e0 MPI_Recv_init_data - 0x00000000008b4d20 MPI_Graph_create_data - 0x00000000008b5060 MPI_Keyval_free_data - 0x00000000008b53a0 MPI_Type_indexed_data - 0x00000000008b56e0 MPI_Type_hvector_data - 0x00000000008b5a20 MPI_Comm_remote_group_data - 0x00000000008b5d60 MPI_Type_struct_data - 0x00000000008b60a0 MPI_Group_translate_ranks_data - 0x00000000008b63e0 MPI_Gatherv_data - 0x00000000008b6720 MPI_Group_range_excl_data - 0x00000000008b6a60 final_wall - 0x00000000008b6a80 MPI_Cart_coords_data - 0x00000000008b6dc0 tbytes - 0x00000000008b6de0 MPI_Get_count_data - 0x00000000008b7120 MPI_Comm_remote_size_data - 0x00000000008b7460 MPI_Type_size_data - 0x00000000008b77a0 MPI_Ibsend_data - 0x00000000008b7ae0 MPI_Group_excl_data - 0x00000000008b7e20 MPI_Iprobe_data - 0x00000000008b8160 MPI_Dims_create_data - 0x00000000008b84a0 MPI_Recv_data - 0x00000000008b87e0 f_bytes - 0x00000000008b87e8 wall_comm - 0x00000000008b8800 MPI_Op_free_data - 0x00000000008b8b40 MPI_Comm_compare_data - 0x00000000008b8e80 tcpu - 0x00000000008b8ea0 MPI_Error_string_data - 0x00000000008b91e0 MPI_Comm_size_data - 0x00000000008b9520 MPI_Wtick_data - 0x00000000008b9860 MPI_Comm_create_data - 0x00000000008b9ba0 MPI_Waitany_data - 0x00000000008b9ee0 MPI_Topo_test_data - 0x00000000008ba220 MPI_Graphdims_get_data - 0x00000000008ba560 MPI_Unpack_data - 0x00000000008ba8a0 MPI_Send_init_data - 0x00000000008babe0 MPI_Errhandler_set_data - 0x00000000008baf20 MPI_Bsend_init_data - 0x00000000008bb260 MPI_Gather_data - 0x00000000008bb5a0 MPI_Sendrecv_replace_data - 0x00000000008bb8e0 trace_flag - 0x00000000008bb900 MPI_Irecv_data - 0x00000000008bbc40 MPI_Cart_sub_data - 0x00000000008bbf80 MPI_Group_incl_data - 0x00000000008bc2c0 MPI_Cart_get_data - 0x00000000008bc600 MPI_Graph_neighbors_count_data - 0x00000000008bc940 MPI_Comm_free_data - 0x00000000008bcc80 MPI_Keyval_create_data - 0x00000000008bcfc0 MPI_Buffer_detach_data - 0x00000000008bd300 MPI_Intercomm_merge_data - 0x00000000008bd640 MPI_Issend_data - 0x00000000008bd980 MPI_Attr_put_data - 0x00000000008bdcc0 MPI_Graph_get_data - 0x00000000008be000 MPI_Allreduce_data - 0x00000000008be340 MPI_Type_extent_data - 0x00000000008be680 MPI_Initialized_data - 0x00000000008be9c0 MPI_Comm_rank_data - 0x00000000008bed00 MPI_Bsend_data - 0x00000000008bf040 MPI_Type_contiguous_data - 0x00000000008bf380 MPI_Attr_get_data - 0x00000000008bf6c0 MPI_Comm_test_inter_data - 0x00000000008bfa00 MPI_Group_rank_data - 0x00000000008bfd40 MPI_Comm_dup_data - 0x00000000008c0080 MPI_Allgather_data - 0x00000000008c03c0 start_wall - 0x00000000008c03e0 MPI_Cartdim_get_data - 0x00000000008c0720 MPI_Intercomm_create_data - 0x00000000008c0a60 MPI_Rsend_init_data - 0x00000000008c0da0 MPI_Buffer_attach_data - 0x00000000008c10e0 MPI_Group_free_data - 0x00000000008c1420 MPI_Cart_create_data - 0x00000000008c1760 mypid - 0x00000000008c1768 tot_wall - 0x00000000008c1780 MPI_Scatter_data - 0x00000000008c1ac0 MPI_Testany_data - 0x00000000008c1e00 MPI_Scatterv_data - 0x00000000008c2140 MPI_Testall_data - 0x00000000008c2480 MPI_Test_cancelled_data - 0x00000000008c27c0 MPI_Barrier_data - 0x00000000008c2b00 MPI_Get_elements_data - 0x00000000008c2e40 MPI_Comm_split_data - 0x00000000008c3180 MPI_Pack_size_data - 0x00000000008c34c0 MPI_Ssend_data - 0x00000000008c3800 MPI_Wait_data - 0x00000000008c3b40 MPI_Alltoallv_data - 0x00000000008c3e80 MPI_Graph_neighbors_data - 0x00000000008c41c0 MPI_Type_free_data - 0x00000000008c4500 numtask - 0x00000000008c4520 MPI_Get_processor_name_data - COMMON 0x00000000008c4860 0x8 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_diags_intel.o) - 0x00000000008c4860 message_catalog - COMMON 0x00000000008c4868 0x10 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_init.o) - 0x00000000008c4868 for__l_argc - 0x00000000008c4870 for__a_argv - *fill* 0x00000000008c4878 0x8 - COMMON 0x00000000008c4880 0x480 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libifcore.a(for_aio.o) - 0x00000000008c4880 for__pthread_mutex_unlock_ptr - 0x00000000008c4888 for__pthread_mutex_lock_ptr - 0x00000000008c4890 thread_count_mutex - 0x00000000008c48b8 for__pthread_mutex_init_ptr - 0x00000000008c48c0 threads_in_flight_mutex - 0x00000000008c4900 for__aio_lub_table - 0x00000000008c4d00 . = ALIGN ((. != 0x0)?0x8:0x1) - -.lbss - *(.dynlbss) - *(.lbss .lbss.* .gnu.linkonce.lb.*) - *(LARGE_COMMON) - 0x00000000008c4d00 . = ALIGN (0x8) - -.lrodata - *(.lrodata .lrodata.* .gnu.linkonce.lr.*) - -.ldata 0x0000000000cc4d00 0x0 - *(.ldata .ldata.* .gnu.linkonce.l.*) - 0x0000000000cc4d00 . = ALIGN ((. != 0x0)?0x8:0x1) - 0x0000000000cc4d00 . = ALIGN (0x8) - 0x0000000000cc4d00 _end = . - 0x0000000000cc4d00 PROVIDE (end, .) - 0x0000000000cc4d00 . = DATA_SEGMENT_END (.) - -.stab - *(.stab) - -.stabstr - *(.stabstr) - -.stab.excl - *(.stab.excl) - -.stab.exclstr - *(.stab.exclstr) - -.stab.index - *(.stab.index) - -.stab.indexstr - *(.stab.indexstr) - -.comment 0x0000000000000000 0x73 - *(.comment) - .comment 0x0000000000000000 0x39 /usr/lib/../lib64/crt1.o - 0x3a (size before relaxing) - .comment 0x0000000000000000 0x3a /usr/lib/../lib64/crti.o - .comment 0x0000000000000039 0x26 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtbegin.o - 0x27 (size before relaxing) - .comment 0x000000000000005f 0x14 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/for_main.o - .comment 0x0000000000000000 0x14 fxcompoz.o - .comment 0x0000000000000000 0x14 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - .comment 0x0000000000000000 0x14 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - .comment 0x0000000000000000 0x14 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libimf.a(log_stub.o) - .comment 0x0000000000000000 0x14 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemcpy.o) - .comment 0x0000000000000000 0x14 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemmove.o) - .comment 0x0000000000000000 0x14 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(fastmemset.o) - .comment 0x0000000000000000 0x14 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_addsubq.o) - .comment 0x0000000000000000 0x14 /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64/libirc.a(ia32_divq.o) - .comment 0x0000000000000000 0x27 /opt/gcc/4.9.2/snos/lib/gcc/x86_64-suse-linux/4.9.2/crtend.o - .comment 0x0000000000000000 0x3a /usr/lib/../lib64/crtn.o - -.debug - *(.debug) - -.line - *(.line) - -.debug_srcinfo - *(.debug_srcinfo) - -.debug_sfnames - *(.debug_sfnames) - -.debug_aranges 0x0000000000000000 0x60 - *(.debug_aranges) - .debug_aranges - 0x0000000000000000 0x30 /usr/lib/../lib64/crt1.o - .debug_aranges - 0x0000000000000030 0x30 /usr/lib64/libc_nonshared.a(elf-init.oS) - -.debug_pubnames - 0x0000000000000000 0x5f - *(.debug_pubnames) - .debug_pubnames - 0x0000000000000000 0x25 /usr/lib/../lib64/crt1.o - .debug_pubnames - 0x0000000000000025 0x3a /usr/lib64/libc_nonshared.a(elf-init.oS) - -.debug_info 0x0000000000000000 0x9485 - *(.debug_info .gnu.linkonce.wi.*) - .debug_info 0x0000000000000000 0x102 /usr/lib/../lib64/crt1.o - .debug_info 0x0000000000000102 0x9c0 fxcompoz.o - .debug_info 0x0000000000000ac2 0x34e close99.o - .debug_info 0x0000000000000e10 0x332c fxcompozlib.o - .debug_info 0x000000000000413c 0x3b1 open99.o - .debug_info 0x00000000000044ed 0x3a3 rd1byt99.o - .debug_info 0x0000000000004890 0x38d reposi99.o - .debug_info 0x0000000000004c1d 0x359 rewind99.o - .debug_info 0x0000000000004f76 0x368 wheren99.o - .debug_info 0x00000000000052de 0x285 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - .debug_info 0x0000000000005563 0x156 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - .debug_info 0x00000000000056b9 0x982 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - .debug_info 0x000000000000603b 0x15d /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - .debug_info 0x0000000000006198 0x1b1 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - .debug_info 0x0000000000006349 0x433 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - .debug_info 0x000000000000677c 0xa9 /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - .debug_info 0x0000000000006825 0x73 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - .debug_info 0x0000000000006898 0x1a1 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - .debug_info 0x0000000000006a39 0x3e6 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - .debug_info 0x0000000000006e1f 0x60 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - .debug_info 0x0000000000006e7f 0xbc /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - .debug_info 0x0000000000006f3b 0x458 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - .debug_info 0x0000000000007393 0xec /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - .debug_info 0x000000000000747f 0xbf /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - .debug_info 0x000000000000753e 0x1bff /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - .debug_info 0x000000000000913d 0x8c /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - .debug_info 0x00000000000091c9 0xbf /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - .debug_info 0x0000000000009288 0xcd /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - .debug_info 0x0000000000009355 0x130 /usr/lib64/libc_nonshared.a(elf-init.oS) - -.debug_abbrev 0x0000000000000000 0x1736 - *(.debug_abbrev) - .debug_abbrev 0x0000000000000000 0x5f /usr/lib/../lib64/crt1.o - .debug_abbrev 0x000000000000005f 0xaa fxcompoz.o - .debug_abbrev 0x0000000000000109 0xe6 close99.o - .debug_abbrev 0x00000000000001ef 0x239 fxcompozlib.o - .debug_abbrev 0x0000000000000428 0xfe open99.o - .debug_abbrev 0x0000000000000526 0xf3 rd1byt99.o - .debug_abbrev 0x0000000000000619 0xe6 reposi99.o - .debug_abbrev 0x00000000000006ff 0xe6 rewind99.o - .debug_abbrev 0x00000000000007e5 0xe6 wheren99.o - .debug_abbrev 0x00000000000008cb 0xcf /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - .debug_abbrev 0x000000000000099a 0x97 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - .debug_abbrev 0x0000000000000a31 0x12b /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - .debug_abbrev 0x0000000000000b5c 0x92 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - .debug_abbrev 0x0000000000000bee 0x95 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - .debug_abbrev 0x0000000000000c83 0x102 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - .debug_abbrev 0x0000000000000d85 0x81 /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - .debug_abbrev 0x0000000000000e06 0x51 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - .debug_abbrev 0x0000000000000e57 0x95 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - .debug_abbrev 0x0000000000000eec 0x122 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - .debug_abbrev 0x000000000000100e 0x44 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - .debug_abbrev 0x0000000000001052 0x6e /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - .debug_abbrev 0x00000000000010c0 0xe2 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - .debug_abbrev 0x00000000000011a2 0x70 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - .debug_abbrev 0x0000000000001212 0x8a /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - .debug_abbrev 0x000000000000129c 0x2ac /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - .debug_abbrev 0x0000000000001548 0x53 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - .debug_abbrev 0x000000000000159b 0x67 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - .debug_abbrev 0x0000000000001602 0x60 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - .debug_abbrev 0x0000000000001662 0xd4 /usr/lib64/libc_nonshared.a(elf-init.oS) - -.debug_line 0x0000000000000000 0x5b9f - *(.debug_line) - .debug_line 0x0000000000000000 0x88 /usr/lib/../lib64/crt1.o - .debug_line 0x0000000000000088 0x729 fxcompoz.o - .debug_line 0x00000000000007b1 0xf8 close99.o - .debug_line 0x00000000000008a9 0x220c fxcompozlib.o - .debug_line 0x0000000000002ab5 0x12f open99.o - .debug_line 0x0000000000002be4 0x11e rd1byt99.o - .debug_line 0x0000000000002d02 0x111 reposi99.o - .debug_line 0x0000000000002e13 0xfc rewind99.o - .debug_line 0x0000000000002f0f 0x100 wheren99.o - .debug_line 0x000000000000300f 0x273 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - .debug_line 0x0000000000003282 0x9d /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - .debug_line 0x000000000000331f 0x709 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - .debug_line 0x0000000000003a28 0xbd /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - .debug_line 0x0000000000003ae5 0x14f /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - .debug_line 0x0000000000003c34 0x171 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - .debug_line 0x0000000000003da5 0x5e /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - .debug_line 0x0000000000003e03 0x52 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - .debug_line 0x0000000000003e55 0xed /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - .debug_line 0x0000000000003f42 0x1cf /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - .debug_line 0x0000000000004111 0x4e /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - .debug_line 0x000000000000415f 0x57 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - .debug_line 0x00000000000041b6 0x148 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - .debug_line 0x00000000000042fe 0xa1 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - .debug_line 0x000000000000439f 0x65 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - .debug_line 0x0000000000004404 0x157c /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - .debug_line 0x0000000000005980 0x99 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - .debug_line 0x0000000000005a19 0x5d /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - .debug_line 0x0000000000005a76 0x93 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - .debug_line 0x0000000000005b09 0x96 /usr/lib64/libc_nonshared.a(elf-init.oS) - -.debug_frame 0x0000000000000000 0x15b0 - *(.debug_frame) - .debug_frame 0x0000000000000000 0x100 fxcompoz.o - .debug_frame 0x0000000000000100 0x48 close99.o - .debug_frame 0x0000000000000148 0x4e8 fxcompozlib.o - .debug_frame 0x0000000000000630 0xa8 open99.o - .debug_frame 0x00000000000006d8 0x70 rd1byt99.o - .debug_frame 0x0000000000000748 0x50 reposi99.o - .debug_frame 0x0000000000000798 0x40 rewind99.o - .debug_frame 0x00000000000007d8 0x50 wheren99.o - .debug_frame 0x0000000000000828 0x60 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - .debug_frame 0x0000000000000888 0x60 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - .debug_frame 0x00000000000008e8 0xf0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - .debug_frame 0x00000000000009d8 0x60 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - .debug_frame 0x0000000000000a38 0x60 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - .debug_frame 0x0000000000000a98 0x58 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - .debug_frame 0x0000000000000af0 0x48 /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - .debug_frame 0x0000000000000b38 0x38 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - .debug_frame 0x0000000000000b70 0x80 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - .debug_frame 0x0000000000000bf0 0x188 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - .debug_frame 0x0000000000000d78 0x30 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - .debug_frame 0x0000000000000da8 0x50 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - .debug_frame 0x0000000000000df8 0x108 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - .debug_frame 0x0000000000000f00 0xa0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - .debug_frame 0x0000000000000fa0 0x30 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - .debug_frame 0x0000000000000fd0 0x4a8 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - .debug_frame 0x0000000000001478 0x30 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - .debug_frame 0x00000000000014a8 0x58 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - .debug_frame 0x0000000000001500 0x58 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - .debug_frame 0x0000000000001558 0x58 /usr/lib64/libc_nonshared.a(elf-init.oS) - -.debug_str 0x0000000000000000 0x3692 - *(.debug_str) - .debug_str 0x0000000000000000 0xab /usr/lib/../lib64/crt1.o - 0xd0 (size before relaxing) - .debug_str 0x00000000000000ab 0x5f0 fxcompoz.o - 0x60b (size before relaxing) - .debug_str 0x000000000000069b 0x264 close99.o - 0x2c8 (size before relaxing) - .debug_str 0x00000000000008ff 0xb28 fxcompozlib.o - 0xe3f (size before relaxing) - .debug_str 0x0000000000001427 0x41 open99.o - 0x2f5 (size before relaxing) - .debug_str 0x0000000000001468 0x2d rd1byt99.o - 0x2f8 (size before relaxing) - .debug_str 0x0000000000001495 0x27 reposi99.o - 0x2ef (size before relaxing) - .debug_str 0x00000000000014bc 0x1d rewind99.o - 0x2cf (size before relaxing) - .debug_str 0x00000000000014d9 0x1e wheren99.o - 0x2dc (size before relaxing) - .debug_str 0x00000000000014f7 0x211 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - 0x2ad (size before relaxing) - .debug_str 0x0000000000001708 0xaf /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - 0x216 (size before relaxing) - .debug_str 0x00000000000017b7 0x34f /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - 0x4d6 (size before relaxing) - .debug_str 0x0000000000001b06 0xa6 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - 0x217 (size before relaxing) - .debug_str 0x0000000000001bac 0x165 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - 0x1ea (size before relaxing) - .debug_str 0x0000000000001d11 0x8f /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - 0x2fe (size before relaxing) - .debug_str 0x0000000000001da0 0x39d /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - 0x41d (size before relaxing) - .debug_str 0x000000000000213d 0x320 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(errexit.o) - 0x3ab (size before relaxing) - .debug_str 0x000000000000245d 0x16 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - 0x402 (size before relaxing) - .debug_str 0x0000000000002473 0x9b /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - 0x4c3 (size before relaxing) - .debug_str 0x000000000000250e 0x10 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fi01.o) - 0x394 (size before relaxing) - .debug_str 0x000000000000251e 0x47 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3locdat.o) - 0x3d0 (size before relaxing) - .debug_str 0x0000000000002565 0x8d /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3tagb.o) - 0x416 (size before relaxing) - .debug_str 0x00000000000025f2 0x29 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3utcdat.o) - 0x3e5 (size before relaxing) - .debug_str 0x000000000000261b 0x49 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - 0x3cd (size before relaxing) - .debug_str 0x0000000000002664 0xfa1 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - 0x11fd (size before relaxing) - .debug_str 0x0000000000003605 0x10 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(iw3jdn.o) - 0x3a5 (size before relaxing) - .debug_str 0x0000000000003615 0x14 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3doxdat.o) - 0x3ac (size before relaxing) - .debug_str 0x0000000000003629 0x10 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3fs26.o) - 0x3ba (size before relaxing) - .debug_str 0x0000000000003639 0x59 /usr/lib64/libc_nonshared.a(elf-init.oS) - 0xe0 (size before relaxing) - -.debug_loc 0x0000000000000000 0xfe - *(.debug_loc) - .debug_loc 0x0000000000000000 0xfe /usr/lib64/libc_nonshared.a(elf-init.oS) - -.debug_macinfo - *(.debug_macinfo) - -.debug_weaknames - *(.debug_weaknames) - -.debug_funcnames - *(.debug_funcnames) - -.debug_typenames - *(.debug_typenames) - -.debug_varnames - *(.debug_varnames) - -.debug_pubtypes - *(.debug_pubtypes) - -.debug_ranges 0x0000000000000000 0x950 - *(.debug_ranges) - .debug_ranges 0x0000000000000000 0x590 fxcompozlib.o - .debug_ranges 0x0000000000000590 0x60 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - .debug_ranges 0x00000000000005f0 0x310 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) - .debug_ranges 0x0000000000000900 0x50 /usr/lib64/libc_nonshared.a(elf-init.oS) - -.debug_macro - *(.debug_macro) - -.gnu.attributes - *(.gnu.attributes) - -/DISCARD/ - *(.note.GNU-stack) - *(.gnu_debuglink) - *(.gnu.lto_*) -OUTPUT(fxcompoz elf64-x86-64) - -.debug_opt_report - 0x0000000000000000 0x1bc9 - .debug_opt_report - 0x0000000000000000 0x5be fxcompoz.o - .debug_opt_report - 0x00000000000005be 0xc02 fxcompozlib.o - .debug_opt_report - 0x00000000000011c0 0x1a2 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(bin2ch.o) - .debug_opt_report - 0x0000000000001362 0x92 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(cdc2asc.o) - .debug_opt_report - 0x00000000000013f4 0x1be /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(consol.o) - .debug_opt_report - 0x00000000000015b2 0x92 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libgph_v2.0.0_8.a(xasc2asc.o) - .debug_opt_report - 0x0000000000001644 0xb0 /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(sbytesccs.o) - .debug_opt_report - 0x00000000000016f4 0xce /gpfs/hps/emc/global/noscrub/Boi.Vuong/lib/graphics/v2.0.0/intel/libutil_v2.0.0.a(swap_bytes_in_place.o) - .debug_opt_report - 0x00000000000017c2 0xb1 /gpfs/hps/nco/ops/nwprod/lib/w3emc/v2.2.0/intel/libw3emc_v2.2.0_8.a(mova2i.o) - .debug_opt_report - 0x0000000000001873 0xb0 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(gbytes.o) - .debug_opt_report - 0x0000000000001923 0x128 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(w3as00.o) - .debug_opt_report - 0x0000000000001a4b 0xec /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(xmovex.o) - .debug_opt_report - 0x0000000000001b37 0x92 /gpfs/hps/nco/ops/nwprod/lib/w3nco/v2.0.6/intel/libw3nco_v2.0.6_8.a(summary.o) diff --git a/util/sorc/fxcompoz.fd/allargv.f b/util/sorc/fxcompoz.fd/allargv.f deleted file mode 100755 index 692c3ee9f5..0000000000 --- a/util/sorc/fxcompoz.fd/allargv.f +++ /dev/null @@ -1,243 +0,0 @@ - subroutine ALLARGV(narg_lmt,carg,narg_got,iret_args) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: ALLARGV GET ALL COMMAND-LINE ARGUMENTS -C PRGMMR: HENRICHSEN ORG: W/NP12 DATE: 1999-11-04 -C -C ABSTRACT: TO GET ALL COMMAND-LINE ARGUMENTS; RETURNING THEM -C AS NULL-TERMINATED STRINGS IN A CHARACTER*112 ARRAY. -C -C PROGRAM HISTORY LOG: -C 95-05-09 DAVID SHIMOMURA -C 95-05-09 SHIMOMURA: MADE ALLARGU() ... AN INTERGRAPH VERSION -C FROM CRAY VERSION; -C 95-05-23 SHIMOMURA: MADE ALLARGV() ... AN INTERGRAPH VERSION -C WITH LONGER LINES TO BE ABLE TO HANDLE -C THE PARM= ARG WITH ITS 100 CHAR EN-QUOTED TEXT -C 95-07-10 SHIMOMURA: MODIFYING ALLARGV() FOR THE CRAY -C 1999-11-04 HENRICHSEN: MODIFYING ALLARGV() FOR THE IBM, MADE THE -C FUNCTION iargc and nargsinline integer(4) -C -C -C -C USAGE: CALL ALLARGV(NARG_LMT, CARG, NARG_GOT, IRET_ARGS) -C 1 2 3 4 -C INPUT ARGUMENT LIST: -C (1.) NARG_LMT - LIMITING NO. OF ARGS EXPECTED; -C THE DIMENSION OF ARG2 -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C -C (2.) CARG() - CHARACTER*112 CARG(NARG_LMT) -C HERE ARE THE DESIRED ARGUMENTS -C AS NULL-TERMINATED CHAR STRINGS. -C -C (3.) NARG_GOT - COUNT OF ARGUMENTS WHICH WERE GOTTEN. -C -C (4.) IRET_ARGS - RETURN CODE -C = 0; NORMAL RETURN -C = -1; ABNORMAL EXIT. TOO MANY COMMAND-LINE ARGS -C FOR THE DIMENSION OF CARG ARRAY -C (NARG_LMT IS INADEQUATE) -C -C = POSITIVE NON-ZERO VALUE IS A WARNING: -C ONE OR MORE OF THE GIVEN ARGS WAS TOO LONG, -C SO I HAVE TRUNCATED THE TOO-LONG ONE(S); -C THE NTH BIT SET IS THE NTH ARGUMENT -C WHICH WAS TOO LONG. -C -C THE RETURN CODE=-1 (TOO MANY ARGS) HAS PRIORITY -C OVER THE POSITIVE NON-ZERO (ARG IS TOO LONG). -C -C OUTPUT FILES: -C FT06F001 - SOME CHECKOUT PRINTOUT -C -C REMARKS: -C CAUTION: THE USER MUST DEFINE THE CARG ARRAY AS -C CHARACTER*112 CARG() -C -C WARNING: THE SIZE OF EACH COMMAND-LINE ARGUMENT IS LIMITED TO -C A MAX OF 111-CHARACTERS; SO THAT ONE BYTE ADDED FOR THE -C TERMINATING NULL CHARACTER WOULD FILL THE CHARACTER*112 -C CARG() ITEM. -C -C WHEN THE USER WANTS THE CHAR COUNT OF ONE OF THE RETURNED -C CARG() CHARACTER STRINGS SHE COULD INDEX ON THE NULL TERMINATOR -C NCHARS = INDEX(CARG(IAR),NULLCHR) - 1 -C -C TO EMULATE THE IBM PARM FIELD, THE USER SHOULD KEY_IN ON THE -C COMMAND LINE: -C PARM='IN BETWEEN THE QUOTES IS THE PARMS' -C WHAT IS RETURNED FROM ALLARGV() FROM THE PARM= ENTRY IS -C ONE ARG WHICH STARTS WITH "PARM=" AND INCLUDES EVERYTHING -C WHICH WAS WITHIN THE SINGLE-QUOTE SIGNS, BUT THE QUOTE SIGNS -C THEMSELVES WILL DISAPPEAR; AND A NULL-TERMINATOR WILL BE ADDED. -C THE STARTING "PARM=" IS A KEY WORD FOR THE PARMS, AND SHOULD -C NOT BE USED TO START ANY OTHER ARGUMENT. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ -C - integer kbytpwrd - parameter (kbytpwrd=8) ! ... FOR THE CRAY - integer maxnbyt - parameter (maxnbyt=112) - integer maxnwrds - parameter (maxnwrds=maxnbyt/kbytpwrd) - integer lmt_txt - parameter (lmt_txt=maxnbyt-1) - -C ... call seq. args ... - integer narg_lmt - character*112 carg(narg_lmt) - integer narg_got - integer iret_args - -C -C ... FUNCTIONS ... - external lastch - integer lastch - external notrail - integer notrail -C ------------------------------------------------------------- - integer jwork(maxnwrds) - character*112 cwork - equivalence (jwork,cwork) - -C THESE MUST BE INTEGER(4) FOR FUNCTION CARG AND SUB GETARG. - - integer(4) nargsinline - integer(4) narguse - integer(4) iargc - integer(4) iar -C ------------------------------------------------------------- - - integer nchars - - LOGICAL LPARMQQ - logical LERROR - character*1 BKSLSH - character*1 KLF - character*1 NULLCHR - character*1 lonech - - -C . . . . . . . . S T A R T . . . . . . . . . . . . . . . . - - - NULLCHR = char(0) - KLF = char(10) - BKSLSH = CHAR(92) -C - LERROR = .FALSE. - LPARMQQ = .FALSE. - - iret_args = 0 - narg_got = 0 - do i = 1,narg_lmt - carg(i)(1:) = NULLCHR - enddo -C 15-Nov-1994/dss -C ... to demo command-line argument fetching 3-Oct-1994/dss -C -C - nargsinline = iargc() - - write(6,115) nargsinline - 115 format(1h ,'ALLARGV: count of args found in command line =', I3) - - if(nargsinline .gt. 0) then - narguse = nargsinline - if(narguse .gt. narg_lmt) then - narguse = narg_lmt - write(6,117)narguse,nargsinline - 117 format(1h ,'ALLARGV: WARNING... too many command-line args', - A ' * * * * * * * * *', - 1 /,1h ,' Proceeding with only',I3, - 2 ' args out of',I3) - LERROR = .true. - endif - - do iar = 1,narguse - LPARMQQ = .FALSE. - - cwork(1:) = ' ' - - call getarg(iar,cwork) - - narg_got = narg_got + 1 - nchars = lastch(cwork) - - if(nchars .le. 0) then - write(6,125)iar - 125 format(1h ,'ALLARGV:getarg() returned an empty arg for', - A ' no.',I3 ) - else -C ... SOME TEXT EXISTS IN THIS ARG ... -C ... DOES IT START WITH "PARM=" ??? - if((cwork(1:5) .EQ. 'PARM=') .OR. - 1 (cwork(1:5) .EQ. 'parm=') ) then - LPARMQQ = .TRUE. -C ... this arg is special case of PARM= -C ... which can include blanks, so cannot lastch() it ... - nchars = notrail(cwork) - endif -C ... iwdss = ((nchars-1)/kbytpwrd) + 1 -C ... where iwdss points to last word so I could hex dump -C ... that last word, to see if NULL is there -C ... There was no NULL; only blank fill. - IF(LPARMQQ) THEN -C ... FILTER OUT ANY BACKSLASH or LINE_FEED ... - ioutc = 0 - do inc = 1,nchars - if(ioutc .LT. lmt_txt) then - lonech = cwork(inc:inc) - if((lonech .EQ. BKSLSH) .OR. - 1 (lonech .EQ. KLF)) then - else - ioutc = ioutc + 1 - carg(iar)(ioutc:ioutc) = lonech - endif - else -C ... comes here if ioutc .GE. lmt_txt, -C ... so I cannot increment ioutc for this inc char -C ... so truncate the string at (1:ioutc) -C ... should a warning be return-coded??? - itba = iar - 1 - iret_args = ibset(iret_args,itba) - go to 155 - endif - enddo - 155 continue - nchars = ioutc - np1 = nchars+1 - carg(iar)(np1:np1) = NULLCHR - - else -C ... this is .not. a PARM field, - if(nchars .GT. lmt_txt) then -C ... truncate any string longer than 111 to 111 - nchars = lmt_txt -C ... should a warning be return-coded??? - itba = iar - 1 - iret_args = ibset(iret_args,itba) - endif - - carg(iar) = cwork(1:nchars)//NULLCHR - endif - - endif - enddo - endif - - IF(LERROR) THEN - iret_args = -1 -C ... WHICH OVERRIDES THE TOO-LONG ARG INDICATOR WITH -C ... TOO MANY ARGS INDICATOR, WHICH IS MORE SERIOUS ERROR - ENDIF - - return - end \ No newline at end of file diff --git a/util/sorc/fxcompoz.fd/close99.c b/util/sorc/fxcompoz.fd/close99.c deleted file mode 100755 index f26566d1b1..0000000000 --- a/util/sorc/fxcompoz.fd/close99.c +++ /dev/null @@ -1,45 +0,0 @@ -/* long long function close99.c */ -/* ... I*4 function close99(luni) ... */ -/* ... to close the file which was opened by open99 */ -/* ... a FORTRAN callable function */ -/* ... The long long returned by the function is a return code - return code = 0 for normal return - = 1 for failure due to bad value for luni */ -#include -/* ... #include ... */ -/* COMMON FILE PARAMETERS */ -/* ... FILE *ftxx[100] ; ...*/ -/* ========================================================== */ -#ifdef UNDERSCORE -long long close99_(luni) -#else -long long close99(luni) -#endif -long long *luni; -{ -/* COMMON FILE PARAMETERS */ - extern FILE *ftxx[100] ; - - FILE *file_pointer ; - long long icloretn; - long long iunit; - long long maxuni = 99; - - iunit = *luni ; -/* printf("\n close99 input unit value %ld\n", iunit); */ - if(iunit <= 0 || iunit > maxuni) - { - fprintf(stderr,"\n close99:failed on given invalid luni\n"); - icloretn = 1; - } - else - { - file_pointer = ftxx[iunit] ; - - fclose(file_pointer); - printf("\n close99:closed file %ld\n",iunit); - icloretn = 0; - } -/* printf("\n close99 return value %ld\n", icloretn); */ - return(icloretn); -} diff --git a/util/sorc/fxcompoz.fd/compile_fxcompoz_wcoss.sh b/util/sorc/fxcompoz.fd/compile_fxcompoz_wcoss.sh deleted file mode 100755 index b185ba3080..0000000000 --- a/util/sorc/fxcompoz.fd/compile_fxcompoz_wcoss.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec - -make -mv fxcompoz ../../exec -make clean diff --git a/util/sorc/fxcompoz.fd/fxcompoz.F b/util/sorc/fxcompoz.fd/fxcompoz.F deleted file mode 100755 index 0594725c09..0000000000 --- a/util/sorc/fxcompoz.fd/fxcompoz.F +++ /dev/null @@ -1,1088 +0,0 @@ - PROGRAM FXCOMPOZ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: FXCOMPOZ TO COMPOSE UP-TO-4 PARTS OF A FAX CHART -C PRGMMR: HENRICHSEN ORG: NP12 DATE: 1999-11-15 -C -C ABSTRACT: TO EMULATE WHAT CLIFF FRIDLIND DOES TO COMPOSE ONE FAX- -C TRANSMITTED CHART FROM UP-TO-FOUR COMPONENTS. FOR THE PURPOSE -C OF VERIFYING THAT OUR "ISCHED" CONSTANTS, WHICH ARE INCLUDED IN -C THE TRAILER RECORD OF NMC 6-BIT ENCODED FAX PRODUCTS, ARE CORRECT. -C -C PROGRAM HISTORY LOG: -C 96-08-22 ORIGINAL AUTHOR: DAVID SHIMOMURA -C 97-02-21 SHIMOMURA - MODIFIED TO DO DOUBLE SCALE OPTION -C 97-07-08 SHIMOMURA - renamed fxcompos.f to fxcompoz.f so that -C I could add another output unit for IFID -C which I need to pass to Program ncdpur6b -C 97-08-26 LIN FIX THE DOCBLOCK. -c 98-08-11 caruso removed CDIR$ INTEGER=64 from top of this -c code. upgrading to fortran 90 and making -c y2k-compliant. -C 1999-11-05 HENRICHSEN modified to run on the IBM SP MODIFY -C DEFINED THE FUNCTION iargc and -C nargsinline integer(4) IN SUB ALLARGV. -C ALSO MODIFIED ALL integer ARGS TO THE -C COMMENTED OUT COMMON /ARGBFINC/ ! -C 1999-11-15 HENRICHSEN modified TO USE DIRECT ACCESS IO ON UNIT 66. -C -C -C USAGE: -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C assign -R -C a direct access file outfinam1.pur u:66 -C assign -a outfinam2.crd -s text u:67 -C assign -a outfinam3.fid -s text u:68 -C -C fxcompoz.x infinam1.pk6 [infinam2.pk6 infinam3.pk6 infinam4.pk6] \ -C parm='ssno=1288' -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C (In order to display the results on the HP-LJ printer,) -C -C dispuras.x outfinam1.pur raster.pcl parm='lrecl=216,byskp=0,\ -C byshw=216,lnskp=0,lnshw=775,dotpi=200,swaby=0,hdrby=0,large=1' -C -C lpr -h -P dataman1 raster.pcl -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C INPUT FILES: -C infinam1.pk6 - input filename of the NMC 6-bit packed FAX map file -C Must have at least one source data file. -C [infinam2.pk6] - Other source-data files are optional, depending -C [infinam3.pk6] on how the components of the composite chart -C [infinam4.pk6] are distributed among the several files. -C -C -C OUTPUT FILES: -C outfinam1.pur - destination file for pure-raster, uncompressed, -C product containing the one composited chart. -C assign -a outfinam1.pur -s unblocked u:66 -C -C outfinam2.crd - output file containing one "card" of 72 characters -C containing, among other ASCII data, the width -C (which for this application is always 1728 pels -C in 27 I*8 integer words), and the height -C (the number of scanlines) of the pure-raster -C image contained in outfinam1.pur; -C This card is grouped into 8-character "words": -C word(5) = scanlines-count (in ASCII), -C right-justified in the word; -C word(6) = '00000027' = (in ASCII) which is -C the scanline width (in I*8 words) -C -C assign -a outfinam2.crd -s text u:67 -C -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C EXIT STATES: -C ISTOP= 0 - SUCCESSFUL RUN -C -C REMARKS: -C (Here is an example of contents of outfinam2.crd:) -C (1) (2) (3) (4) (5) (6) (7) -C PURERAST 00020925 00000000 ngmfax 00000775 00000027 00001728 -C 960822 -C (8) (9) -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C 27-Jun-1996/dss -C INPUT ARGUMENT LIST: -C parm - the one parm field for the Subset No. is required; -C since that Subset No. will point to the main -C subset of the composite chart which we will make; -C (the "1288" is an example of a subset number). -C -C -C ... copied ~/ig2/pcl/cry/fxdumpC.f -C into ~/ig2/ncod/chk/fxcompos.f -C ... in order to build, on that program base, a FAXCUT logic -C ... Purpose: to check the ISCHED and the strip-titles by -C ... emulating Cliff Fridlind -C ... to compose a FAX transmission from its component -C ... subsets and insets; -C -C 25-Jun-1996/dss -C ... copied ~/pcl/cry/vxdumpC.f into fxdumpC.f in order to make a -C ... FAX dumper which would work with 1440-byte records instead -C ... of the 512-byte records of vxdump -C -C ... mods for sys upgrade of 3-June-1996 5-June-1996/dss -C ... which killed all char args into ***99.c -C -C ... file dumper in the VAX-style of printout 19-Jul-1995/dss -C -C -C ............................................................... -C ... PLAN ... -C Modify this to not dump the records; with exceptions; -C more like the "scan" function; -C Scan up to 4 input FAX files; -C save the pointers found during scan in a database; -C save the IFIDs in a database; -C save the ISCHEDs in a database; -C Database structure: -C I*8 Product_outline(MAXITMDBA,LMTPRODTOT) -C -C I*8 IFID(6,LMTPRODTOT) -C I*8 ISCHED(180,LMTPRODTOT) -C C*112 CINPFINAM(MAXNFILS) -C I*8 KUNINP(MAXNFILS) / 31,32,33,34 / -C L LOPENU(MAXNFILS) -C -C MAXNFILS=4 -C MAXNPRODS=20 !... N PER INPUT FILE -C LMTPRODTOT = MAXNFILS*MAXNPRODS -C MAXITMDBA = 10 -c -C DO for as many as given input filenames(up to Max=4): -C ---------------------------------------- -C ... for every product (MAXPRODS=20) within the file ... -C (1.) File_seq. no. -C (2.) Product seq. no. within File Seq No. -C (3.) Rec. No. of Start-of-Map Block; -C (4.) Ptr to saved IFID; -C (5.) Rec. No. of Strip-Titles Block; -C (6.) Rec. No. of ISCHED Block; -C (7.) Ptr to saved ISCHED; -C (8.) FLAG whether this is last product in file, or not -C =0; not last product in file -C =Rec. No. of END-of-ALL-MAPS block -C = -1; Hit End-of-file instead of EOAM -C (9.) Derived No. of main-map blocks in this product -C (10.) Derived No. of Strip-title blocks in this product -C ---------------------------------------- -C repeat (1.) to (10.) as many times as necessary -C until End-of-all-maps block is found -C of until physical E-O-F -C ENDDO -C -C -C ... Dump the ISCHEDs as you are scanning the file -C -C ... After everything has been read in, then -C ... Analyze the ischeds; (look for obvious errors) -C ... look for linked items; -C ... print the linkages found; -C ... (do not try to do any more than that yet) -C -C ............................................................... -C ... FUNCTIONS ... - external lastch - integer lastch - external notrail - integer notrail - - integer open99 - external open99 - integer close99 - external close99 - integer rd1byt99 - external rd1byt99 - integer reposi99 - external reposi99 - integer rewind99 - external rewind99 - integer wheren99 - external wheren99 - -C -C . . . . . . . . . . . . . . . . . . . -C ============================================================== - integer LUNOUT !... output pure-raster file - parameter (LUNOUT=66) - INTEGER LUNSPEC !... header-like specs of pure - PARAMETER (LUNSPEC=67) - INTEGER LUNIFID - PARAMETER (LUNIFID=68) - - INTEGER MAXNFILS - PARAMETER (MAXNFILS=4) - - INTEGER MAXNPRODS - PARAMETER (MAXNPRODS=20) !... MAX PRODS PER FILE - - INTEGER LMTPRODTOT - PARAMETER (LMTPRODTOT=MAXNFILS*MAXNPRODS) !... 80 = 4*20 - - INTEGER MAXITMDBA - PARAMETER (MAXITMDBA=10) - - COMMON /PRODDESC/numprods,IFID(6,LMTPRODTOT), - 1 ISCHED(180,LMTPRODTOT), - 2 IPROD_DBA(MAXITMDBA,LMTPRODTOT) - -C ============================================================== - INTEGER IMAXWIDWRD - PARAMETER (IMAXWIDWRD=27) !...27*64 = 1728 PELS WIDE - INTEGER JMAXHGTLNS - PARAMETER (JMAXHGTLNS=7500) - - COMMON /SPAC4IMG/ NPELS_WID, NLNS_NEED, JLNADDCON, JLN_CURR, - 1 IMAGE(IMAXWIDWRD,JMAXHGTLNS) - -C ============================================================== -C - integer kbytpwrd - parameter (kbytpwrd=8) !... CRAY version - integer maxnwrds - parameter (maxnwrds=112/kbytpwrd) - integer narg_lmt - parameter (narg_lmt=10) - - integer krecsizbyt - parameter (krecsizbyt=1440) - integer krecsizwrd - parameter (krecsizwrd=krecsizbyt/kbytpwrd) - - - INTEGER MAXNREM - PARAMETER (MAXNREM=200) !... 200 LINES ALLOC FOR REMARKS - - -C -------------------------------------------- -C . . . CALL SEQ FOR SUBR FINDLINK() . . . . - INTEGER MAXPLTARG !... I-DIMEN OF IPLOTARG(I,4) - PARAMETER (MAXPLTARG=20) - - INTEGER MAXNPART - PARAMETER (MAXNPART=4) - - INTEGER ISSNO - integer npartfound - integer iplotarg(MAXPLTARG,MAXNPART) - INTEGER IRET_FND -C -------------------------------------------- -C . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . used by reader of input file . . . . . -C COMMON /ARGBFINC/ LUNINP,INISOPNQ,NBUFINP, -C 1 istartrec,nrecdo,jcushion, -C 2 cfinm_inp - - LOGICAL INISOPNQ - INTEGER LUNINP - integer NBUFINP - integer istartrec - integer nrecdo - integer jcushion - character*112 cfinm_inp -C . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . -C ... call seq. args for allargv(): - - integer jarg(maxnwrds,narg_lmt) - character*112 carg(narg_lmt) - equivalence (jarg,carg) - - integer narg_got - integer iret_args -C -C - integer nchars - character*1 NULLCHR - - -C . . . . . . keyvals() . . . . . . . . . . . . . . . . . . . - integer maxnkeys - parameter (maxnkeys=2) - - character*5 keyword(maxnkeys) - data keyword / 'ssno ','dumy ' / - - integer ixssno - data ixssno / 1 / - - integer ixdumy - data ixdumy / 2 / - - logical foundkey(maxnkeys) - integer numvalkey(maxnkeys) - - integer many_recs - data many_recs / 5999 / -C . . . . . . keyvals() . . . . . . . . . . . . . . . . . . . - - integer intarray(krecsizwrd) - character*1 c1array(krecsizbyt) - equivalence (intarray,c1array) - - integer i8dump(14) - character*112 c112dump - equivalence (i8dump(1),c112dump) - - integer itmpifid(6) - character*1 c1ifidisp(48) - equivalence (itmpifid(1),c1ifidisp(1)) - - character*1 c1ifidasc(48) - CHARACTER*48 C48IFIDASC - CHARACTER*53 MAPNAME - EQUIVALENCE (C48IFIDASC,C1IFIDASC) - - INTEGER NCHREMARK - INTEGER NUMREM - - INTEGER MSK4BITS - DATA MSK4BITS / X'000000000000000F' / - - INTEGER MSKFFFFF - DATA MSKFFFFF / X'FFFFF00000000000' / - - INTEGER KLANKS - DATA KLANKS / X'2020202020202020' / - - INTEGER KIND - INTEGER IXKIND - CHARACTER*7 CBLOKHDR(5) - DATA CBLOKHDR / 'START_M', - 2 'STITLES', - 3 'ISCHEDS', - 4 'END_ALL', - 5 'UNKNOWN' / - - INTEGER LOGREM(10,MAXNREM) - CHARACTER*80 CLOGREM(MAXNREM) - EQUIVALENCE (LOGREM(1,1),CLOGREM(1)) - - LOGICAL LDUMMYQ - INTEGER ISCHDUMMY(24) - DATA ISCHDUMMY / - 1 X'00A2000000400E10',X'8000310000000000', - 2 X'0E73001F0703079E',X'81516C00FFE21372', - 3 X'1372009500040019',X'0100D86C00010E74', - 4 X'0E74001F0703079E',X'41436C00079E1373', - 5 X'1373009702740019',X'0000D80000000000', - 6 X'0ECA000406090AF0',X'8100D800FFE20F26', - 7 X'0F26009904DF0019',X'0100D8000AF00F28', - 8 X'0F28009C019B0019',X'0000D80000000000', - 9 X'0E9A000406090AF0',X'8180D800FFE20EE4', - A X'0EE4009E05D70019',X'0100D8000AF00EE6', - B X'0EE600A1029C0019',X'0000D80000000000', - C 0,0 / - integer iret_key - integer iret_wher - integer iret_repo - integer iret_open - integer iret_clos - integer iret_rds - integer iret_rew - integer loc_EOF - - - integer jstartrec - integer ioffset - integer ibytoffset0 - integer nbytoffset9 - integer index_from - integer ivaltail - integer ivalrec2 - character*3 ciomode - integer numbyts - integer numbytsred - integer mrecno - integer ivalscan - logical lskip_prntq - LOGICAL LVARIANQ - logical lparmqq - - CHARACTER*112 CINPFINAM(MAXNFILS) - INTEGER KUNINP(MAXNFILS) - DATA KUNINP / 31, 32, 33, 34 / - LOGICAL LOPENU(MAXNFILS) - INTEGER NTOTINPFIL - - integer jextrema(2,MAXNPART) - integer jlowestln - integer jhightestln -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . for the output pure-raster file specs . . . . . - - INTEGER KDIMHED !... no. of I*8 words in header - parameter (KDIMHED=9) -C - INTEGER JHED1D(kdimhed) !... 9 longwrd = 72 byt - CHARACTER*8 CHED(kdimhed) - EQUIVALENCE (JHED1D,CHED) - CHARACTER*72 CHED1D - EQUIVALENCE (JHED1D(1),CHED1D) - - INTEGER NWDHED - INTEGER IRET_HDR - - integer lwr_or_upr - integer nchinpfn - integer nchstripped - integer iret_strp - character*16 cstrmapnam - character*8 c8mapnam - - integer ntotwrds - integer iacc - character*8 cacc - equivalence (iacc,cacc) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - integer istat - - CHARACTER*44 STRMSG - - SAVE - - CALL W3TAGB('FXCOMPOZ',1999,0319,0080,'NP12 ') - - WRITE(STRMSG(1:44), - 1 FMT='(''RUNNING FXCOMPOZ IBM VERSION 1999.319 1425L:'')') -C '12345678901234567890123456789012345678901234' -C 1234567890123456789 -C--------------------------------------------------------------- -C . . . S T A R T . . . -C--------------------------------------------------------------- - WRITE(6,FMT='('' MAIN: '',A)')STRMSG(1:44) - - CALL CONSOL(STRMSG) - -C - istat = 0 - LDUMMYQ = .FALSE. - - NULLCHR = char(0) - NUMREM = 0 - - lskip_prntq = .TRUE. - -C . . . . . . . . . . . . . . . . . . . . . . . . . -C ... insert logic of teskeyva.f here which will get PARM -C ... from command line - - call ekeyvals(maxnkeys,keyword,foundkey,numvalkey,iret_key) - - write(6,135)iret_key - 135 format(' fxcompoz::keyvals: returned w/ code=',I5) - if(iret_key .ne. 0) then - istat = 1 - go to 999 - endif -C - do ik = 1,maxnkeys - if(foundkey(ik)) then - - write(6,145)ik,keyword(ik)(1:lastch(keyword(ik))), - * numvalkey(ik) - 145 format(' fxcompoz:',I3,'... "',A,'" =',I9) - else -C ... failed to find a match for this keyword ... - write(6,155)keyword(ik)(1:lastch(keyword(ik))) - 155 format(' fxcompoz: did not find, in cparm, the', - * ' keyword= "',A,'"') - endif - enddo - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... the starting and ending records: -C ... default for starting output record number = 1; -C ... default for number of output records to scan = 5999; -C ... where output record is in krecsizbyt=1440 bytes; - - - istartrec = 1 - nrecdo = 5999 - lskip_prntq = .true. - INISOPNQ = .false. - - lvarianq = .false. - LDUMMYQ = .FALSE. - if (foundkey(ixssno)) then - issno = numvalkey(ixssno) - if(issno .LE. 0) then - write(6,162)issno - 162 format(' fxcompoz: Failed on given bad-valued SSNO=',I6) - istat = 2 - go to 999 - else - write(6,164)issno - 164 format(' fxcompoz: go with desired Subset No.=',I6) - endif - endif - - if (foundkey(ixdumy)) then - ivaldumy = numvalkey(ixdumy) - if(ivaldumy .LE. 0) then - LDUMMYQ = .FALSE. - else -C ... ivaldumy = positive, non-zero, like dumy=1; - LDUMMYQ = .TRUE. - endif - endif -C . . . . . . . . -C ... - write(6,179)LDUMMYQ - 179 format(/,' fxcompoz: from PARM,' - * /,' Over-write sched w/ dummy data?? = .',L1,'.', - * /,' . . . . . . . . . . . . . . . . . . . . . . . . .') - -C ---------------------------------------------------------------- - -C . . . . TO GET THE INPUT FILENAME . . . . . . . . . . . . . - NTOTINPFIL = 0 - - lparmqq = .false. - - DO I = 1,MAXNFILS - LOPENU(I) = .FALSE. - ENDDO - - DO I = 1,MAXNFILS - CINPFINAM(I)(1:112) = ' ' - ENDDO - - call allargv(narg_lmt,carg,narg_got,iret_args) - - write(6,215)narg_lmt,narg_got,iret_args - 215 format(' Main::allargv:narg_lmt=',I3,'; narg_got=',I3, - * '; return_code=',Z16.16) - if(narg_got .GT. 0) then - do iar = 1,narg_got - lparmqq = .false. - nchars = lastch(carg(iar)) -C - if(nchars .le. 0) then - write(6,225)iar - 225 format(' Main: Empty Arg(',I3,')' ) - iwdss = 1 - write(6,231)iwdss,jarg(iwdss,iar) - 231 format(' Main: jarg(',I3,') is last word = HEX',Z16.16) - else - write(6,235)nchars,iar - 235 format(' Main: nchars=',I3,'; in Arg(',I3,')' ) - write(6,237)carg(iar)(1:nchars) - 237 format(1X,A) - if(carg(iar)(1:5) .EQ. 'parm=') then - write(6,2372) - 2372 format(' Main: this Arg is PARM; not finame') - lparmqq = .true. - endif - - iwdss = ((nchars - 1) / kbytpwrd) + 1 -C ... where iwdss points to last word so I could hex dump -C ... that last word, to see if NULL is there - if(iwdss .GE. maxnwrds) then - write(6,231)iwdss,jarg(iwdss,iar) -C 231 ... format(' Main: jarg(',I3,') is last word = HEX',Z16.16) - else - write(6,2391)iwdss,jarg(iwdss,iar),jarg(iwdss+1,iar) - 2391 format(' Main: jarg(',I3,') is last word = HEX',Z16.16, - * 1X,Z16.16) - endif -C ... I tried to append a NULL terminator; -C ... Is there a NULL-terminator??? -C ... Yes there is, followed by blank fill. - -C ... expected to be the input filename for pure-ras - if(.NOT. lparmqq) then - if(ntotinpfil .LT. MAXNFILS) THEN - ntotinpfil = ntotinpfil + 1 - CINPFINAM(ntotinpfil)(1:112) = carg(iar)(1:112) - ENDIF - endif - endif - enddo - endif -C ---------------------------------------------------------------- -C ... initialize FAX-cut constants and arrays ... - numprods = 0 - NPRODWIFIL = 0 - do j = 1,LMTPRODTOT - DO I = 1,6 - IFID(I,J) = 0 - ENDDO - ENDDO - do j = 1,LMTPRODTOT - DO I = 1,180 - ISCHED(I,J) = 0 - ENDDO - ENDDO - do j = 1,LMTPRODTOT - DO I = 1,MAXITMDBA - IPROD_DBA(I,J) = 0 -C ... IFID(I,J) = 0 !... wrong!!!! 8-JUL-1997/DSS - ENDDO - ENDDO -C ---------------------------------------------------------------- -C ... OPEN THE INPUT FILE ... - IF(NTOTINPFIL .LE. 0) THEN - WRITE(6,FMT='('' fxcompoz: FAILED ON LACK OF INPUT '', - 1 ''FILENAME(S)'')') - ISTAT = 1 - GO TO 999 - ENDIF -C ... OTHERWISE, SOME INPUT FILENAME(S) WERE GIVEN, SO OPEN ... - - DO 888 NAM = 1,NTOTINPFIL - LUNINP = kuninp(NAM) - INISOPNQ = .false. - LOPENU(NAM) = .FALSE. - NPRODWIFIL = 0 - - cfinm_inp(1:112) = CINPFINAM(NAM)(1:112) -C ... SHOULD INQUIRE AS TO EXISTENCE OF THIS INPUT FILE ... - - ciomode(1:3) = ' ' - ciomode(1:3) = 'r'//NULLCHR//NULLCHR !... for READ_ONLY - c112dump(1:112) = cfinm_inp(1:112) - write(6,305)(i8dump(i),i=1,14) - 305 format(' tesopen: the filename in HEX is (see next lines)', - * /,4Z17.16,/,4Z17.16, - * /,4Z17.16,/,2Z17.16) - nchinpfn = lastch(cfinm_inp) - nchinpfn0 = nchinpfn + 1 !... includes NULL in count - write(6,3052)LUNINP,nchinpfn0,cfinm_inp(1:nchinpfn0), - * ciomode(1:3) - 3052 format(' tesopen: will call open99 w/ LUNINP=',I4, - * /,' finm(1:',I5,') =',A, - * /,' ciomode(1:3) = ',A) - - iret_open= open99(LUNINP,cfinm_inp(1:nchinpfn0),ciomode(1:2)) - - if(iret_open .NE. 0) then - istat = 30 - go to 8990 - else - INISOPNQ = .TRUE. - LOPENU(NAM) = .TRUE. - endif - -C ... ... -C ... do I need to assign -s unblocked ??? ... - -C ... Where is the End-of-File located? -C ... I will reposition to EOF, then ask where am I? - ioffset = 0 - index_from = 2 !... from EOF - - iret_repo = reposi99(LUNINP,ioffset,index_from) - - if(iret_repo .NE. 0) then - istat = 31 - go to 800 - endif - - iret_wher = wheren99(LUNINP, loc_EOF) - if(iret_wher .NE. 0) then - istat = 32 - go to 800 - endif - - write(6,315) loc_EOF - 315 format(' fxcompoz: Location of E-O-F (in bytes, ', - * 'rel to start) =',I7) - -C ... How many FAX blocks is that? - maxblocks = loc_EOF / krecsizbyt - if(mod(loc_EOF,krecsizbyt) .NE. 0) then - maxblocks = maxblocks + 1 - endif - write(6,317)maxblocks - 317 format(' which file-size will fit within', I6, - * ' FAX blocks') -C -C ... Now let us position input file ptr to equiv. of istartrec - iret_rew = rewind99(LUNINP) - jcushion = 0 - -C ... when it comes thru those istartrec cases, the input file -C ... is positioned for read - numbyts = krecsizbyt - NBUFINP = 0 - do ired = 1,nrecdo - do i = 1,krecsizwrd - intarray(i) = 0 - enddo - iret_rds = rd1byt99(LUNINP,numbyts,c1array,numbytsred) -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (INTARRAY, 8_8, NUMBYTSRED / 8_8) -#endif - if(iret_rds .NE. 0) then - if(iret_rds .EQ. -1)then - write(6,415)NBUFINP - 415 format(' fxcompoz: Hit End-of-File after reading',I7, - * ' records of 1440-bytes each') - go to 800 - else - write(6,425)iret_rds - 425 format(' fxcompoz::rd1byt99:error code=',I5) - istat = 36 - go to 800 - endif - endif - NBUFINP = NBUFINP + 1 - mrecno = NBUFINP + jcushion -C ... - if(.NOT. lskip_prntq) THEN - -C ... call rec_dump(mrecno,intarray,krecsizwrd) - - ENDIF - - IF(IAND(INTARRAY(1),MSKFFFFF) .EQ. MSKFFFFF) THEN -C ... THIS IS A SPECIALLY HEADED FAX BLOCK ... -C ... what kind of block header is this? - - KIND = ISHFT(INTARRAY(1),-40) !... RSHIFT 5 BYTES - KIND = IAND(KIND,MSK4BITS) - IXKIND = 5 !... FOR UNKNOWN - IF(KIND .EQ. 15) THEN !... == X'F' - IXKIND = 1 - ELSE IF(KIND .EQ. 14) THEN !... == X'E' - IXKIND = 2 - ELSE IF(KIND .EQ. 13) THEN !... == X'D' - IXKIND = 3 - ELSE IF(KIND .EQ. 12) THEN !... == X'C' - IXKIND = 4 - ENDIF - - IF(IXKIND .EQ. 1) THEN -C ... THIS RECORD IS START OF A PRODUCT ... - NUMPRODS = NUMPRODS + 1 - NPRODWIFIL = NPRODWIFIL + 1 - - IPROD_DBA(1,NUMPRODS) = LUNINP - IPROD_DBA(2,NUMPRODS) = NPRODWIFIL - IPROD_DBA(3,NUMPRODS) = MRECNO - IPROD_DBA(4,NUMPRODS) = NUMPRODS - JP = NUMPRODS - DO IP = 1,6 - IFID(IP,JP) = INTARRAY(IP) - ENDDO -C ... WHICH COPIED IFID INTO HOLDING TANK ... - - ELSE IF(IXKIND .EQ. 2) THEN -C ... THIS RECORD IS THE STRIP-TITLES BLOCK ... - IPROD_DBA(5,NUMPRODS) = MRECNO - - ELSE IF(IXKIND .EQ. 3) THEN -C ... THIS RECORD IS ISCHED BLOCK ... - JP = NUMPRODS - DO IP = 1,180 - ISCHED(IP,JP) = INTARRAY(IP) - ENDDO -C ... WHICH COPIED ISCHED INTO HOLDING TANK ... - isched(2,jp) = NUMPRODS -C ... hide the backward-link from isched to product-no. -C ... in the unused I*8 word(2) of ISCHED(,JP) - -C . . . . . . . . DUMMY DATA OVERWRITING REAL INPUT . . . - IF(LDUMMYQ) THEN - IF(JP .EQ. 1) THEN -C ... OVERWRITE THE ISCHED() WITH DUMMY DATA -C ... WITH MORE INTERESTING SETS ... - DO IP = 1,24 - ISCHED(IP+2,JP) = ISCHDUMMY(IP) - ENDDO - ENDIF - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - IPROD_DBA(6,NUMPRODS) = MRECNO - IPROD_DBA(7,NUMPRODS) = NUMPRODS - -C ... DUMP (PRINT) THIS ISCHED RECORD ... - call rec_dump(mrecno,intarray,krecsizwrd) - - ELSE IF(IXKIND .EQ. 4) THEN -C ... THIS RECORD IS END-OF-ALL-MAPS BLOCK ... - - IF ( NUMPRODS .EQ. 0 ) THEN - NUMPRODS = 1 - END IF - - print*,'In fxcompoz.F after END-OF-ALL-MAPS - & NUMPRODS = ',NUMPRODS - IPROD_DBA(8,NUMPRODS) = 1 - - ENDIF !... END OF IXKIND CASES ... - - IF(NUMREM .LT. MAXNREM) THEN - NUMREM = NUMREM + 1 - - DO I = 1,10 - LOGREM(I,NUMREM) = KLANKS - ENDDO - NCHREMARK = 56 + 6 - - write(clogrem(numrem)(1:nchremark),fmt='(Z17.16, - * '' ... FOUND '',A7,'' IN REC. NO. ='',I5, - * ''; U:'',I2)') - * INTARRAY(1),CBLOKHDR(IXKIND), MRECNO,LUNINP - ENDIF - ENDIF - ENDDO - - - 800 CONTINUE - - WRITE(6,815)NBUFINP,LUNINP - 815 FORMAT(' fxcompoz:after reading NBUFINP=',I7, - * '; U:',I3) - - IF(NUMREM .GT. 0) THEN - WRITE(6,825) - 825 FORMAT(' * * * * * S U M M A R Y * * * * * * * * * *') - DO LINE = 1,NUMREM - NCHRE = NOTRAIL(CLOGREM(LINE)) - WRITE(6,827)CLOGREM(LINE)(1:NCHRE) - 827 FORMAT(A) - enddo - WRITE(6,FMT='('' * * * * * * * * * * * * * * * * * * * '', - * ''* * * * *'')') - endif - 888 CONTINUE !... ENDDO ON INPUT FILES BY NAM = 1,NTOTINPFIL - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... ALL INPUT FILES HAVE BEEN SCANNED AND DATABASE ENTRIES MADE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - WRITE(6,FMT='('' UNIT PRDWI START PROD STRIP SCHED'', - * '' PROD ENDALL'')') - JPP = 0 - 890 CONTINUE - JPP = JPP + 1 - JP = IPROD_DBA(4,JPP) - IF(JP .GT. 0) THEN - WRITE(6,FMT='((12I6))') - * (IPROD_DBA(IP,JP),IP=1,MAXITMDBA) -C ... NO MORE ITEMS IN DATABASE ... - GO TO 890 !... LOOP BACK FOR NEXT DBA PROD ITEM - ENDIF - - CALL FINDLINK(ISSNO, npartfound, iplotarg, IRET_FND) - - IF(IRET_FND .NE. 0) THEN - - WRITE(6,FMT='('' fxcompoz::FINDLINK:FAILED TO FIND ALL '', - * ''PARTS FOR SSNO. ='',I6)') ISSNO - - ISTAT = 3 - GO TO 8990 - - ENDIF -C ... OTHERWISE, FINDLINK WAS SUCCESSFUL ... - -C ... OUTPUT THE IFID FOR EACH PART ... - - - rewind LUNIFID - write(6,FMT='('' fxcompoz: npartfound='',I3, - * ''; IFIDs for each part ...'')') - * npartfound - - do jp = 1,npartfound - jprodno = iplotarg(14,jp) - do i = 1,6 - itmpifid(i) = IFID(i,jprodno) - enddo -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (itmpifid, 8_8, 6_8) -#endif - call cdc2asc(48,c1ifidisp,c1ifidasc,iret_cdc) - -C MAKE MESSAGE FOR CONSOL. - - MAPNAME(01:07) = 'Faxmap ' - MAPNAME(08:52) = c48ifidasc(04:48) - iend = 53 - kend = 52 - do k = 1,iend - if(MAPNAME(kend:kend) .ne. ' ')then - ilastbyt = kend + 1 - MAPNAME(ilastbyt:ilastbyt) = ':' - goto 100 - else - kend = kend - 1 - endif - enddo - 100 continue - - write(6,FMT='('' FXCOMPOZ: ilastbyt='',i3,A)') - * ilastbyt,MAPNAME(01:ilastbyt) - CALL CONSOL(MAPNAME) - c48ifidasc(1:3) = 'FFF' - write(6,FMT='(1x,I3,''... prodno='',I4,'': '',A48)') - * jp,jprodno,c48ifidasc(1:48) - - - - write(LUNIFID,8948,ERR=920) C48IFIDASC(1:48) - 8948 format(A48) - enddo - ENDFILE LUNIFID - -C ... DETERMINE HOW MANY SCANLINES NEEDED FOR THIS COMPOSITE FAX - - do j = 1,MAXNPART - jextrema(1,j) = 0 - jextrema(2,j) = 0 - enddo - - do jpart = 1,npartfound - jextrema(1,jpart) = iplotarg(3,jpart) - if(iplotarg(13,jpart) .NE. 0) then -C ... doubling option ... so needs double the hgt - jextrema(2,jpart) = jextrema(1,jpart) + 2*iplotarg(6,jpart) - - else -C ... the usual not-doubled case, - jextrema(2,jpart) = jextrema(1,jpart) + iplotarg(6,jpart) - endif - enddo - - jlowestln = jextrema(1,1) - jhighestln = jextrema(2,1) - if(npartfound .GT. 1) then - do jj = 2,npartfound - if(jextrema(1,jj) .LT. jlowestln) then - jlowestln = jextrema(1,jj) - endif - if(jextrema(2,jj) .GT. jhighestln) then - jhighestln = jextrema(2,jj) - endif - enddo - endif -C ... what additive constant, when added to jlowestln-value, -C ... will yield a line subscript value of (1) ??? - jlnaddcon = 1 - jlowestln - nlns_need = jhighestln + jlnaddcon - 1 - jln_curr = 0 - npels_wid = 64*IMAXWIDWRD - - write(6,FMT='('' fxcompoz: preparing image space for'',I6, - * '' pels by '',I6,'' scanlines'', - * /,7X,''jlowestln='',I6,''; jhighestln='',I6, - * ''; jlnaddcon='',I6)') - * npels_wid, nlns_need, jlowestln, jhighestln, jlnaddcon - - do j = 1,nlns_need - do i = 1,IMAXWIDWRD - image(i,j) = 0 - enddo - enddo -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... to adapt the pure-raster file header logic -C ... to the fxcompoz environment, in which I want to -C ... write the header info to a separate file as text -C ... (all I really need is width, height) - - lwr_or_upr = 1 - nchinpfn = lastch(cinpfinam(1)) - call strpfnam(lwr_or_upr,cinpfinam(1)(1:nchinpfn),nchinpfn, - * cstrmapnam,nchstripped,iret_strp) - - c8mapnam(1:8) = ' ' - ncs = nchstripped - if((ncs .LE. 0) .OR.(iret_strp .NE. 0)) then - write(6,FMT='('' scn_x6bB::strpfnam: Failed to '', - * ''extract innermost filename;'', - * /,7X,''nchstripped='',I4,''; iret_strp='',I4)') - * nchstripped,iret_strp - c8mapnam = 'unknown ' - else if(ncs .GT. 8) then - ncs = 8 - c8mapnam(1:8) = cstrmapnam(1:8) - else - c8mapnam(1:) = cstrmapnam(1:ncs) - endif - - write(6,FMT='('' scn_x6bB: before mkpurhdr; c8mapnam= "'', - * A,''"'')') - * c8mapnam(1:8) - npxlpoutlin = 1728 - nwdpoutlin = npxlpoutlin / 64 - - call mkpurhdr(c8mapnam,nwdpoutlin,npxlpoutlin,CHED,KDIMHED, - * NWDHED,IRET_HDR) - - IF(IRET_HDR .NE. 0) THEN - WRITE(6,FMT='('' scn_x6bB::mkpurhdr: WARNING code ='',I4)') - * IRET_HDR - - endif -C ... where do I put the HEIGHT of product??? -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... At this point I should set the total word count -C ... in the HEADER RECORD. - - NTOTWRDS = nlns_need * nwdpoutlin - NCH = 8 - CALL BIN2CH(NTOTWRDS,CACC(1:8),NCH,'R999') - ched(2)(1:8) = cacc(1:8) - - NCH = 8 - CALL BIN2CH(nlns_need,CACC(1:8),NCH,'R999') - ched(5)(1:8) = cacc(1:8) !... count of scanlines in here - - write(6,FMT='('' fxcompoz: specs of pure-raster output:'', - * /,8(A8,1X), /,8(A8,1X))') - * (ched(i)(1:8),i=1,KDIMHED) - write(LUNSPEC,8955,ERR=910) CHED1D(1:72) - 8955 format(A) - -C OPEN THE OUT PUT RASTER FILE. - - OPEN (LUNOUT, ACCESS='DIRECT', RECL=216 ) - NRECRAS = 0 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - DO JPART = 1,NPARTFOUND - call vx6b_pur('init',iplotarg(1,jpart),MAXPLTARG,iret_pur) - - CALL PLOTPART(JPART,npartfound,IPLOTARG,IRET_PLP) - ENDDO - - do j = 1,nlns_need - NRECRAS = NRECRAS + 1 -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (image(1,j), 8_8, IMAXWIDWRD) -#endif - write(LUNOUT,REC=NRECRAS,err=900)(image(i,j),i=1,IMAXWIDWRD) - enddo - - 8990 CONTINUE -C ... COMES HERE TO CLOSE ANY OPEN INPUT FILES - DO IU = 1,MAXNFILS - IF(LOPENU(IU)) THEN - LUNINP = KUNINP(IU) - iret_clos = close99(LUNINP) - WRITE(6,FMT= '('' fxcompoz: after CLOSE99('',I3, - * '') retcode='',I7 )') - * LUNINP,iret_clos - ENDIF - ENDDO - GO TO 999 - - 900 continue - write(6,905)LUNOUT - 905 format(' fxcompoz:FAILED on WRITE PARITY ERROR on UNIT=',I3) - istat = 66 - go to 999 - 910 continue - write(6,915)LUNSPEC - 915 format(' fxcompoz:FAILED on WRITE PARITY ERROR on UNIT=',I3) - istat = 67 - go to 999 - 920 continue - write(6,925)LUNIFID - 925 format(' fxcompoz:FAILED on WRITE PARITY ERROR on UNIT=',I3) - istat = 68 - go to 999 - - 999 continue - CALL W3TAGE('FXCOMPOZ') - CALL ERREXIT(istat) - STOP - END diff --git a/util/sorc/fxcompoz.fd/fxcompozlib.F b/util/sorc/fxcompoz.fd/fxcompozlib.F deleted file mode 100755 index 7145f63a3a..0000000000 --- a/util/sorc/fxcompoz.fd/fxcompozlib.F +++ /dev/null @@ -1,3733 +0,0 @@ - subroutine ALLARGV(narg_lmt,carg,narg_got,iret_args) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: ALLARGV GET ALL COMMAND-LINE ARGUMENTS -C PRGMMR: HENRICHSEN ORG: W/NP12 DATE: 1999-11-05 -C -C ABSTRACT: TO GET ALL COMMAND-LINE ARGUMENTS; RETURNING THEM -C AS NULL-TERMINATED STRINGS IN A CHARACTER*112 ARRAY. -C -C PROGRAM HISTORY LOG: -C 95-05-09 DAVID SHIMOMURA -C 95-05-09 SHIMOMURA: MADE ALLARGU() ... AN INTERGRAPH VERSION -C FROM CRAY VERSION; -C 95-05-23 SHIMOMURA: MADE ALLARGV() ... AN INTERGRAPH VERSION -C WITH LONGER LINES TO BE ABLE TO HANDLE -C THE PARM= ARG WITH ITS 100 CHAR EN-QUOTED TEXT -C 95-07-10 SHIMOMURA: MODIFYING ALLARGV() FOR THE CRAY -C 1999-11-05 HENRICHSEN: MODIFYING ALLARGV() FOR THE IBM, MADE THE -C FUNCTION iargc and nargsinline integer(4) -C -C -C -C USAGE: CALL ALLARGV(NARG_LMT, CARG, NARG_GOT, IRET_ARGS) -C 1 2 3 4 -C INPUT ARGUMENT LIST: -C (1.) NARG_LMT - LIMITING NO. OF ARGS EXPECTED; -C THE DIMENSION OF ARG2 -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C -C (2.) CARG() - CHARACTER*112 CARG(NARG_LMT) -C HERE ARE THE DESIRED ARGUMENTS -C AS NULL-TERMINATED CHAR STRINGS. -C -C (3.) NARG_GOT - COUNT OF ARGUMENTS WHICH WERE GOTTEN. -C -C (4.) IRET_ARGS - RETURN CODE -C = 0; NORMAL RETURN -C = -1; ABNORMAL EXIT. TOO MANY COMMAND-LINE ARGS -C FOR THE DIMENSION OF CARG ARRAY -C (NARG_LMT IS INADEQUATE) -C -C = POSITIVE NON-ZERO VALUE IS A WARNING: -C ONE OR MORE OF THE GIVEN ARGS WAS TOO LONG, -C SO I HAVE TRUNCATED THE TOO-LONG ONE(S); -C THE NTH BIT SET IS THE NTH ARGUMENT -C WHICH WAS TOO LONG. -C -C THE RETURN CODE=-1 (TOO MANY ARGS) HAS PRIORITY -C OVER THE POSITIVE NON-ZERO (ARG IS TOO LONG). -C -C OUTPUT FILES: -C FT06F001 - SOME CHECKOUT PRINTOUT -C -C REMARKS: -C CAUTION: THE USER MUST DEFINE THE CARG ARRAY AS -C CHARACTER*112 CARG() -C -C WARNING: THE SIZE OF EACH COMMAND-LINE ARGUMENT IS LIMITED TO -C A MAX OF 111-CHARACTERS; SO THAT ONE BYTE ADDED FOR THE -C TERMINATING NULL CHARACTER WOULD FILL THE CHARACTER*112 -C CARG() ITEM. -C -C WHEN THE USER WANTS THE CHAR COUNT OF ONE OF THE RETURNED -C CARG() CHARACTER STRINGS SHE COULD INDEX ON THE NULL TERMINATOR -C NCHARS = INDEX(CARG(IAR),NULLCHR) - 1 -C -C TO EMULATE THE IBM PARM FIELD, THE USER SHOULD KEY_IN ON THE -C COMMAND LINE: -C PARM='IN BETWEEN THE QUOTES IS THE PARMS' -C WHAT IS RETURNED FROM ALLARGV() FROM THE PARM= ENTRY IS -C ONE ARG WHICH STARTS WITH "PARM=" AND INCLUDES EVERYTHING -C WHICH WAS WITHIN THE SINGLE-QUOTE SIGNS, BUT THE QUOTE SIGNS -C THEMSELVES WILL DISAPPEAR; AND A NULL-TERMINATOR WILL BE ADDED. -C THE STARTING "PARM=" IS A KEY WORD FOR THE PARMS, AND SHOULD -C NOT BE USED TO START ANY OTHER ARGUMENT. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ -C - integer kbytpwrd - parameter (kbytpwrd=8) ! ... FOR THE CRAY - integer maxnbyt - parameter (maxnbyt=112) - integer maxnwrds - parameter (maxnwrds=maxnbyt/kbytpwrd) - integer lmt_txt - parameter (lmt_txt=maxnbyt-1) - -C ... call seq. args ... - integer narg_lmt - character*112 carg(narg_lmt) - integer narg_got - integer iret_args - -C -C ... FUNCTIONS ... - external lastch - integer lastch - external notrail - integer notrail -C ------------------------------------------------------------- - integer jwork(maxnwrds) - character*112 cwork - equivalence (jwork,cwork) - -C THESE MUST BE INTEGER(4) FOR FUNCTION CARG AND SUB GETARG. - - integer(4) nargsinline - integer(4) narguse - integer(4) iargc - integer(4) iar -C ------------------------------------------------------------- - - integer nchars - - LOGICAL LPARMQQ - logical LERROR - character*1 BKSLSH - character*1 KLF - character*1 NULLCHR - character*1 lonech - - -C . . . . . . . . S T A R T . . . . . . . . . . . . . . . . - - - NULLCHR = char(0) - KLF = char(10) - BKSLSH = CHAR(92) -C - LERROR = .FALSE. - LPARMQQ = .FALSE. - - iret_args = 0 - narg_got = 0 - do i = 1,narg_lmt - carg(i)(1:) = NULLCHR - enddo -C 15-Nov-1994/dss -C ... to demo command-line argument fetching 3-Oct-1994/dss -C -C - nargsinline = iargc() - - write(6,115) nargsinline - 115 format(1h ,'ALLARGV: count of args found in command line =', I3) - - if(nargsinline .gt. 0) then - narguse = nargsinline - if(narguse .gt. narg_lmt) then - narguse = narg_lmt - write(6,117)narguse,nargsinline - 117 format(1h ,'ALLARGV: WARNING... too many command-line args', - A ' * * * * * * * * *', - 1 /,1h ,' Proceeding with only',I3, - 2 ' args out of',I3) - LERROR = .true. - endif - - do iar = 1,narguse - LPARMQQ = .FALSE. - - cwork(1:) = ' ' - - call getarg(iar,cwork) - - narg_got = narg_got + 1 - nchars = lastch(cwork) - - if(nchars .le. 0) then - write(6,125)iar - 125 format(1h ,'ALLARGV:getarg() returned an empty arg for', - A ' no.',I3 ) - else -C ... SOME TEXT EXISTS IN THIS ARG ... -C ... DOES IT START WITH "PARM=" ??? - if((cwork(1:5) .EQ. 'PARM=') .OR. - 1 (cwork(1:5) .EQ. 'parm=') ) then - LPARMQQ = .TRUE. -C ... this arg is special case of PARM= -C ... which can include blanks, so cannot lastch() it ... - nchars = notrail(cwork) - endif -C ... iwdss = ((nchars-1)/kbytpwrd) + 1 -C ... where iwdss points to last word so I could hex dump -C ... that last word, to see if NULL is there -C ... There was no NULL; only blank fill. - IF(LPARMQQ) THEN -C ... FILTER OUT ANY BACKSLASH or LINE_FEED ... - ioutc = 0 - do inc = 1,nchars - if(ioutc .LT. lmt_txt) then - lonech = cwork(inc:inc) - if((lonech .EQ. BKSLSH) .OR. - 1 (lonech .EQ. KLF)) then - else - ioutc = ioutc + 1 - carg(iar)(ioutc:ioutc) = lonech - endif - else -C ... comes here if ioutc .GE. lmt_txt, -C ... so I cannot increment ioutc for this inc char -C ... so truncate the string at (1:ioutc) -C ... should a warning be return-coded??? - itba = iar - 1 - iret_args = ibset(iret_args,itba) - go to 155 - endif - enddo - 155 continue - nchars = ioutc - np1 = nchars+1 - carg(iar)(np1:np1) = NULLCHR - - else -C ... this is .not. a PARM field, - if(nchars .GT. lmt_txt) then -C ... truncate any string longer than 111 to 111 - nchars = lmt_txt -C ... should a warning be return-coded??? - itba = iar - 1 - iret_args = ibset(iret_args,itba) - endif - - carg(iar) = cwork(1:nchars)//NULLCHR - endif - - endif - enddo - endif - - IF(LERROR) THEN - iret_args = -1 -C ... WHICH OVERRIDES THE TOO-LONG ARG INDICATOR WITH -C ... TOO MANY ARGS INDICATOR, WHICH IS MORE SERIOUS ERROR - ENDIF - - return - end - integer function atoi(string) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C FUNCTION: ATOI convert ascii string to integer -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-07-10 -C -C ABSTRACT: to convert ascii string to integer ... -C -C PROGRAM HISTORY LOG: -c 93-12-02 original author unknown -C 95-07-10 SHIMOMURA: MODIFYING ALLARGV() FOR THE CRAY -c 98-08-11 caruso removed CDIR$ INTEGER=64 from top of this code. -c upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: iret = atoi(string) -c -C INPUT ARGUMENT LIST: -c string - character string -c -c output argument list -c iret - integer representation of character 'string' -c -c remarks: -C CAUTION: FAILS WITH SYSTEM-F-INTOVF, integer overflow -C IF YOU FEED IT A TOO-LARGE-FOR 32-BIT-INTEGER NUMBER -C CAUTION: THE CALLING PROGRAM SHOULD DECLARE THIS FUNCTION -C WITH STATEMENT: integer ATOI -C Caution: 2-Dec-1993 -- this is failing, so I added -C D-line comments to debug -C Deleted the include of global.def -C Put isdigit logic in-line, replacing function -C Caution: Expects a NULL-terminated string. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ -C - character*(*) string -C - logical LISDIGIT -C ... I HAVE PUT LISDIGIT IN LINE INSTEAD OF FUNCTION ... - integer i - integer il - integer msign - integer lengivn - integer kchzero - character*1 chone - LOGICAL CHECKOUT - DATA CHECKOUT / .FALSE. / - character*1 nullchr - - save -C - nullchr = char(0) -C - atoi = 0 - locnull = 0 - limitscan = 0 - lengivn = len(string) - if(lengivn .le. 0) go to 999 - - IF(CHECKOUT) THEN - write(6,105)lengivn - 105 format(' atoi: entered with len(string)=',I5) - ENDIF - - limitscan = lengivn - locnull = index(string(1:lengivn),nullchr) - if(locnull .gt. 0 .and. locnull .le. lengivn) then - limitscan = locnull - 1 - endif - if(limitscan .le. 0) then - atoi = 0 - IF(CHECKOUT) THEN - write(6,125)limitscan,locnull - 125 format(' atoi: jumping out at 125, since limitscan=',I5, - * '; locnull=',I5) - ENDIF - go to 999 - endif - - IF(CHECKOUT) THEN - WRITE(6,205)limitscan - 205 FORMAT(' atoi: ready to scan with limitscan=',I5) - ENDIF - i = 1 -C ... to reposition pointer beyond leading blanks, - do ll = 1,LIMITSCAN - if(string(i:i) .ne. ' ') go to 222 -C ... otherwise, i-th char is leading blank, so incr - i = i + 1 - enddo - - if(i .gt. LIMITSCAN) go to 999 -C ... which tested for all blanks in given string - 222 continue -C ... otherwise, i is pointing at first non-blank char w/i string, - msign = 1 - if(string(i:i) .eq. '+' .or. string(i:i) .eq. '-') then - if(string(i:i) .eq. '-') msign = -1 - i = i + 1 - endif - if(i .gt. LIMITSCAN) go to 999 -C ... which tested for sign-only in given string. -C - kchzero = mova2i('0') - do il = i,LIMITSCAN - chone = string(il:il) - -c***what's LLE and LGE????? - LISDIGIT = (LGE(CHONE,'0') .AND. LLE(CHONE,'9')) - if(.not. LISDIGIT) THEN - IF(CHECKOUT) THEN - WRITE(6,315)il - 315 FORMAT(' atoi: jumping out on non-digit at il=',I5) - ENDIF - go to 333 -C ... which terminates scan on any non-digit character - ELSE - atoi = 10*atoi + (mova2i(chone) - kchzero) - ENDIF - enddo - 333 continue - atoi = msign * atoi - IF(CHECKOUT) THEN - WRITE(6,345)atoi - 345 FORMAT(' atoi: came thru 333 w/ atoi =',I9) - ENDIF - - 999 continue - return - end -c********************************************************************** - SUBROUTINE dcdlnx6b(lchkprntq,linecurr,nchs,LDUBL,nskpdib,npels, - 1 c1pure,kbytpur, iret_pel) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: dcdlnx6b data unpacker -C PRGMMR: HENRICHSEN ORG: W/NMC41 DATE: 1999-11-03 -C -C ABSTRACT: decode 6 bit logical input data. -C -C PROGRAM HISTORY LOG: -C 87-05-22 shimomura COPIED FROM DCD6 IN ORDER TO ADAPT IT TO READ JOHN SIMMONS' -c OUTPUT FILE INSTEAD OF BEDIENT'S MAP FILE. -C A PRIMITIVE VERSION OF BEDIENT'S DCD4 -C TO DECODE 6-BIT PACKED RASTER FORMAT MAP BGND. -C ONE SCANLINE PER CALL IS UNPACKED AND -C THE RESULT IS PUT INTO LMAPWK. -C 95-08-16 shimomura copied ~/vt240/dcdext6b.for into ~/cra/bg/count_pel.f -C to strip it down to simply count the pixels in one -C given complete scanline, which is encoded in NMC -C extended 6-bit code. -C Called from within CRAY package -- Main: look_x6b.f -- -C in which I wanted to determine the bounds of the map bgnd -C so that I could set dimensions for the Type-9. -C 95-08-21 shimomura copied count_pel.f into ~/car/bg/dcdlnx6b.f -C because I needed to build it up to a decoder -C of one scanline from x6b to pure_raster. -C Called from scn_x6bA() after it has extracted one -c scanline (in x6b code) from the buffered data. -C 97-02-20 shimomura copied ~/cra/bg/dcdlnx6b.f into ~/ncod/chk/dcdlnx6b.f -C because when used in fxcompos package it failed when -C called with LDUBL= .T.; it yielded a blank map cut. -C so I copied it into here so I could patch it without -C affecting its use in bg; -c 98-08-11 caruso removed CDIR$ INTEGER=64 from top of this code. -c upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C 1999-11-03 HENRICHSEN MDIFY TO RUN ON IBM SP. -C -C USAGE: CALL dcdlnx6b(lchkprntq,linecurr,nchs,LDUBL,nskpdib,npels, -C c1pure,kbytpur, iret_pel) -c -C INPUT ARGUMENT LIST: -C lchkprntq - logical to get checkout print -C linecurr - character*1 array containing one complete scanline -c in X6B -c nchs - array size of linecurr -C LDUBL - logical. to double every pixel on scanline -C nskpdib - integer. count of dibytes (4-pixel groups) to skip -C off of the FAX edge of the scanline. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C npels - total number of pels in this scanline -C c1pure - char*1 destination array allocated for the -C decoded-into-pure-uncompressed-pels -c kbytpur - array size of c1pure -C iret_pel - return code -C -C OUTPUT FILES: -C FT06F001 - SOME CHECKOUT PRINTOUT -C -C REMARKS: -C ... PROCEDURE USED TO UNPACK THE DATA: -C ... THE GIVEN DATA IS ENCODED IN 6-BIT LOGICAL GROUPS -C ... RIGHT-JUSTIFIED IN 8-BIT BYTES (NOT CONCATENATED). -C ... THE 6 BITS ARE FORMATTED: 'TTIIII' (IN BINARY) -C ... WHERE TT = TYPE OF DATA, -C ... IIII = DATA -C ... TT=00 FOR RUN OF ZEROS FOR WHICH IIII IS COUNT OF -C ... DIBYTES OF ZEROS. -C ... TT=01 FOR RUN OF ONES FOR WHICH IIII IS COUNT OF -C ... DIBYTES OF ONES. -C ... A SEQUENCE OF RUN COUNTS OF THE SAME TYPE -C ... IS INTERPRETED AS: -C ... TOTAL_COUNT= IIII(1ST) + 16*III(2ND) + 256*IIII(3RD) -C ... TT=10 FOR "AS_IS" FOR WHICH IIII IS THE 4 BITS OF -C RASTER DATA AS_IS. -C ... TT=11 FOR COMMAND OR SPECIAL SIGNAL -C FOR WHICH IIII=0000 MARKS END_OF_SCANLINE; -C AND IIII=0011 MARKS END_OF_THE_MAP. -C ... AS EACH 6-BITS IS EXTRACTED, IT IS INTERPRETED AND -C ... THE RESULTING UNPACKED SCANLINE DEVELOPS IN LMAPWK -C ... BUT IN AN INTERMEDIATE FORM IN WHICH EACH 8-BIT BYTE -C ... CONTAINS ONLY 4BITS OF DATA IN ITS LOW-ORDER HALF BYTE. -C ... HOWEVER, IF THE DOUBLE_SCALE OPTION HAD BEEN REQUESTED, -C ... THEN EACH 4-BITS OF DATA IS TRANSLATED INTO 8-BITS -C ... IN WHICH EACH ORIGINAL BIT IS REPLACED BY TWO BITS. -C -C ... WHEN ALL THE DATA FOR ONE SCANLINE HAS BEEN DECODED, -C ... IF NOT DOUBLING SCALE, THEN THE INTERMEDIATE -C ... FORM IS COMPRESSED TO ELIMINATE THE HIGH-ORDER 4BITS -C ... OF EVERY BYTE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ -C - logical lchkprntq - character*1 linecurr(nchs) !... one complete X6B scanline - LOGICAL LDUBL - INTEGER NSKPDIB - integer npels !... total number of pels in this scanline - character*1 c1pure(kbytpur) !... space for one pure scanln - integer iret_pel !... return code -C - - integer nbytspwrd -C ... parameter (nbytspwrd=4) !... for Intergraph - parameter (nbytspwrd=8) !... for CRAY - - integer lmtnpels - parameter (lmtnpels=4192) - integer lmtngrps - parameter (lmtngrps=lmtnpels/4) !... = 1048 di-bytes - integer iwrksz !... = 262 words(on Intergraph) - parameter (iwrksz= lmtngrps/nbytspwrd) -C - integer intmapwrk(iwrksz) - character*1 c1mapwrk(lmtngrps) - equivalence (intmapwrk,c1mapwrk) - -C ... call pk4_8bit(c1mapwrk,IOTBY, nskpdib, c1pure,kbytpur, -C ... nbytres, iret_pk4) - integer nbytres - integer iret_pk4 - - integer keom - data keom / X'33' / !... end-of-map - integer keos - data keos / X'30' / !... end-of-scanline - - INTEGER MSK6BT - DATA MSK6BT / X'3F' / - integer MSK4BT - DATA MSK4BT / X'0F' / -C - INTEGER LTTBLI(16) - DATA LTTBLI / X'00', X'03', X'0C', X'0F', - 1 X'30', X'33', X'3C', X'3F', - 2 X'C0', X'C3', X'CC', X'CF', - 3 X'F0', X'F3', X'FC', X'FF' / - INTEGER ITTPRE - INTEGER ITT - INTEGER IIII - INTEGER I6BIT - INTEGER IOTBY !... SUBSCRIPT PURE-RASTER LINE - - integer ntotpels - integer jonegrp - character*1 NULL - character*1 cblack - - - integer nwhiterun - integer nblackrun - INTEGER NRUNDIBY - logical whitey - LOGICAL RUNNING - integer lckpt - - SAVE -C ============================================================== - iret_pel = 0 - NULL = char(0) - lckpt = 100 - npels = 0 -C ... test given nchs for within bounds, - ngrps = nchs - if(ngrps .le. 0) then -C ... given zero data bytes, so count=0 ... - lckpt = 101 - go to 999 - else if(ngrps .GT. lmtngrps) then -C ... warning: scanline is too long for me; -C ... truncate! and proceed ... - iret_pel = 1 - ngrps = lmtngrps - endif - -C ... test the codes ... - ntotpels = 0 -C ... to zero out the pure-raster work array ... - do i = 1,iwrksz - intmapwrk(i) = 0 - enddo - - if(LDUBL) then - cblack = char(255) !... = X'FF' - else - cblack = char(15) !... = X'0F' - endif - - LSHFRC = 0 - NRUNDIBY = 0 - RUNNING = .FALSE. - IOTBY = 0 - ITT = 03 -C ... WHERE ITT IS INITIALIZED TO "COMMAND" TYPE -C ... WHICH WILL BE MOVED INTO ITTPRE (THE PRECEDING ITT) -C ... WHEN THE CURRENT ITT IS OBTAINED. - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - do ig = 1,ngrps - jonegrp = mova2i(linecurr(ig)) - if((jonegrp .GT. keom) .OR. - 1 (jonegrp .LT. 0)) then -C ... bad code here ... file is not good. ERROR STOP - iret_pel = -1 - lckpt = 211 - go to 999 - else if(jonegrp .EQ. keom) then -C ... end-of-map flag here; don't call me again - iret_pel = -2 - lckpt = 222 - go to 800 - else if(jonegrp .EQ. keos) then -C ... end-of-scanline flag here; - lckpt = 233 - go to 800 - else if(jonegrp .GT. keos) then -C ... by this case, there should be no other 30+ codes ... -C ... bad code here ... file is not good. ERROR STOP - iret_pel = -1 - lckpt = 244 - go to 999 - else -C ... otherwise, the TT-codes are [ 00, 01, or 02] ... -C - lckpt = 311 - ITTPRE = ITT -C ... WHICH SAVES THE TYPE OF THE PRECEDING ITEM ... - I6BIT = IAND(jonegrp,MSK6BT) - -c***replace shiftr (I think) with ishift??? - ITT = ISHFT(I6BIT,-4) -C ... WHICH ISOLATES THE TT BITS OF TTIIII ... - IIII = IAND(jonegrp,MSK4BT) - -C . . . . . . . . . . . . - IF(ITT .EQ. 00) THEN - lckpt = 322 -C ... COMES HERE IF TT = '00'BINARY -C ... WHICH IS COUNT OF RUN OF ZERO DIBYTES - IF(ITTPRE .NE. 00) LSHFRC = 0 -C ... OTHERWISE, THE ITEM IMMEDIATELY PRECEDING THIS ONE -C ... WAS ALSO A COUNT OF ZEROS ... -C - NRUNDIBY = IIII - IF(LSHFRC .GT. 8) LSHFRC = 0 -C ... WHICH LIMITS RUN COUNTS - -c***replace shiftl (I think) with ishft??? - NRUNDIBY = ISHFT(NRUNDIBY,LSHFRC) - LSHFRC = LSHFRC + 4 - IOTBY = IOTBY + NRUNDIBY -C ... FOR WHITES, SIMPLY MOVE PTR ALONG OUPUT BUFFER ... - ntotpels = ntotpels + 4*nrundiby -C . . . . . . GO TO 117 . . . . . . -C - ELSE IF(ITT .EQ. 01) THEN - lckpt = 333 -C ... COMES HERE IF TT = '01'BINARY, -C ... WHICH IS COUNT OF RUN_OF_BLACK DIBYTES - IF(ITTPRE .NE. 01) LSHFRC = 0 -C ... OTHERWISE, -C ... THE PRECEDING ITEM WAS ALSO A COUNT OF BLACKS -C - NRUNDIBY = IIII - IF(LSHFRC .GT. 8) LSHFRC = 0 -C ... WHICH LIMITS RUN COUNTS ... - - -c***replace shiftl (I think) with ishft??? - NRUNDIBY = ISHFT(NRUNDIBY,LSHFRC) - LSHFRC = LSHFRC + 4 - IF(IIII .LE. 0) THEN - lckpt = 344 - GO TO 118 - ENDIF -C - IF((IOTBY+NRUNDIBY) .GT. lmtngrps) THEN - lckpt = 355 -C ... THIS RUN OF BLACKS WILL OVERFLO WORK AREA -C ... SO TRUNCATE THE COUNT OF BLACKS TO FIT - NRUNDIBY = lmtngrps - IOTBY - IF(NRUNDIBY .LE. 0) GO TO 800 -C ... OTHERWISE, COUNT OF BLACKS EXISTS, - ENDIF -C - lckpt = 366 -C ... TO PUT COUNT=NRUNDIBY OF BLACKS TO WORK ARRAY, - do i = 1,nrundiby - iotby = iotby + 1 - c1mapwrk(iotby) = cblack - enddo - ntotpels = ntotpels + nrundiby -C . . . . . GO TO 117 . . . . . . . - ELSE IF(ITT .EQ. 02) THEN - lckpt = 411 -C ... COMES HERE FOR "AS_IS" DIBYTE IN IIII - IF(LDUBL) THEN - IIII = LTTBLI(IIII+1) -C ... WHICH DOUBLES THE 4-BIT PATTERN FOR DOUBLING SCALE - ENDIF -C ... NOW, PUT THE CURRENT AS_IS DIBYTE ... - IOTBY = IOTBY + 1 - c1mapwrk(IOTBY) = CHAR(IIII) - - LSHFRC = 0 -C ... ANY "AS_IS" WILL TERMINATE THE INCREMENTING OF -C ... THE FACTOR USED BY A PRECEDING RUN_COUNT SEQ. - NTOTPELS = NTOTPELS + 4 -C . . . . . GO TO 117 . . . . . . . - ENDIF -C -C ... 117 CONTINUE . . . . . . . . . . . - -C ... CHECK IOTBY FOR END OF OUTPUT BUFFER ... - IF(IOTBY .GE. lmtngrps) then - lckpt = 433 - GO TO 800 -C ... WHICH JUMPS TO CLEANUP WHEN FINISHED ONE OUTPUT LINE -C ... DUE TO OUTPUT BUFFER FILLED UP - endif -C ... OTHERWISE, -C ... IOTBY HAS NOT REACHED END OF THE OUTPUT BUFFER - - 118 CONTINUE - lckpt = 444 - endif - enddo - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 800 continue -C ... comes here to finish off ... - if(lchkprntq) then - write(6,805)lckpt - 805 format(' dcdlnx6b: arrived at 800 from lckpt=',I5) - endif - npels = ntotpels - if(kbytpur .LE. 0) then -C ... ERROR. Invalid value in kbytpur given in call dcdlnx6b - iret_pel = 2 - lckpt = 811 - go to 999 - else - if(LDUBL) then - call mv8_8bit(c1mapwrk,IOTBY,nskpdib, c1pure,kbytpur, - * nbytres, iret_mv8) - - if(lchkprntq) then - write(6,815)iret_mv8, nbytres - 815 format(' dcdlnx6b::mv8_8bit: return code=',I4, - * '; nbytres=',I5) - endif - else - - call pk4_8bit(c1mapwrk,IOTBY,nskpdib, c1pure,kbytpur, - * nbytres, iret_pk4) - - if(lchkprntq) then - write(6,825)iret_pk4, nbytres - 825 format(' dcdlnx6b::pk4_8bit: return code=',I4, - * '; nbytres=',I5) - endif - endif - -C ... assume that scn_x6bA() has initialized c1pure to zeros, -C ... so comment following out and check timing. -C ... to fill the rest of scanline beyond nbytres with zeros, -C ... nbyfill = kbytpur - nbytres -C ... if(nbyfill .GT. 0) then -C ... do ib = nbytres+1,kbytpur -C ... c1pure(ib) = NULL -C ... enddo -C ... endif - - endif - - go to 999 - 999 continue - return - end -c*********************************************************************** - subroutine egtnxtwd(line,lpstart,lpcurr,delims,ltr,word,ierror) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: EGTNXTWD get next word -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-07-20 -C -C ABSTRACT: to get word from given line starting at line(lp:lp). -C -C PROGRAM HISTORY LOG: -C 90-03-23 shimomura To get one word out of the given line, starting -C at line(lp:lp) ... -C (after eliminating leading blanks out of the -c word.) -C 91-07-02 shimomura copied char function getwordx to make it a -c subroutine -c 91-12-05 shimomura copied subr getwordy.for in order to make a -c version that does not stop for a blank terminator. -c You can activate the blank by including it in -c delims. -c 95-06-19 shimomura copied ~/tools/getwordnb.f (which was last compiled -c on Dec 2 1993) in order to adapt to called from -c prs_keqv() to NOT increment "lp", but return with -c "lpcurr" pointing to last location interrogated; -C and to prepare it for CRAY -C 95-07-20 shimomura Yet another version of gtnxtwrd() because I needed -c to skip over trailing blanks until I found either -c the non-blank terminator, or the last blank -C terminator before the start of the next word. -c 98-08-11 caruso removed CDIR$ INTEGER=64 from top of this code. -c upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: CALL EGTNXTWD(line,lpstart,lpcurr,delims,ltr,word,ierror) -c -C INPUT ARGUMENT LIST: -C LINE - given character string (NULL-terminated) -C from which the next word is to be extracted. -C lpstart - integer. Line-Pointer from which to scan for word -C User should initialize to =1, to start scan -C DELIMS - NULL-terminated char string of delimiters -C which are in addition to the default -C NEWLINE and NULL terminators. -c -c output argument list -c lpcurr - integer. -c ltr - char*1 -c word - char string -c ierr - return code -c -c remarks: -C egtnxtwd ... to get word from line at lp and increment lp -C A version of getword that tests for additional delimiters -C which are presented in the NULL-terminated string -C named "delims"; the basic version tests for NULL and -C NEWLINE delimiters. -C Added a test for a special end-of-line config of ",-" -C just before the NULL which terminates the line -C which we are using as a continuation signal. -C CAUTION: Usually you would want to first call with lp=1; -C do not call with lp=0. -C CAUTION: Given line must be NULL terminated to stop the scan. -C CAUTION: You must allocate one more byte for your word than -C the text you expect, since I will insert a -C NULL terminator. -C -C ... include '/usr2/shimomur/tools/global.def' -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ -C - logical lcheckout - parameter (lcheckout=.FALSE.) - - character*(*) line - integer lpstart - integer lpcurr - character*(*) delims - character*1 ltr - character*(*) word - integer ierror -C - integer MXLNLP - integer MAXDELIM - integer wp - integer wp1 - integer lenword - - integer LBYLTR - integer llone - - character*1 lonech - - integer lwherebl - logical found_term - logical found_nonblank - character*1 NULL - character*1 NEWLINE - character*1 BLANK -C - save -C - ierror = 0 - NULL = char(0) - NEWLINE = char(10) - BLANK = char(32) -C - lpcurr = lpstart - if(lpcurr .le. 0) lpcurr = 1 -C ... which resets lp to first char position if we forgot to -C ... initialize it. -C - ltr = NULL - lenword = len(word) - if(lenword .le. 0) go to 900 -C ... otherwise, results string "word" has a length ... -C ... initalize results to NULL ... - word = NULL -C -C . . . . To set maxdelim for limit of indexing thru delims . . . . - maxdelim = 0 - lendelims = len(delims) - if(lendelims .le. 0) go to 910 -C ... otherwise, arg delims was defined as a char string ... -C ... is it NULL terminated? - lwhere0 = index(delims,NULL) - if(lwhere0 .eq. 1) then -C ... NULL terminator is in first char position, so nothing in - maxdelim = 0 - - else if(lwhere0 .le. 0) then -C ... delims does not have a NULL terminator ... -C ... so, try to go with length of delims ... - maxdelim = lendelims - else -C ... the normal delimiters string, NULL terminated at lwhere0 - maxdelim = lwhere0 - 1 - endif -C -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . To set MXLNLP for limiting line scan . . . . . . . . -C - MXLNLP = 0 - lenline = len(line) - if(lenline .le. 0) go to 920 -C ... line was not defined as a character string ... -C ... otherwise, line has a length. Is it NULL terminated? - limlp = index(line(1:lenline),NULL) - if(limlp .eq. 1) then -C ... that means the NULL terminator is in first char position -C ... of the given line, so I can't do anything with this. - go to 930 - else if(limlp .le. 0) then -C ... there was no NULL terminator in the given line ... -C ... try to substitute a limit as a function of string length - MXLNLP = lenline - else -C ... the normal line string, NULL terminated at limlp - MXLNLP = limlp - 1 - endif -C ... leaves here with MXLNLP pointing to the last character -C ... to be examined in the given line. - if(lpcurr .gt. MXLNLP) go to 940 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - limcont = limlp - 2 -C - if(lcheckout) then - WRITE(6,115)lpcurr,lenword - 115 FORMAT(' egtnxtwd:CALLED W/LP=',I5,' WORD DIMENSIONED',I5) - endif - - do while(line(lpcurr:lpcurr) .eq. BLANK) -C ... to skip leading blanks - lpcurr = lpcurr + 1 - enddo - - if(line(lpcurr:lpcurr) .eq. NEWLINE) then - word = NEWLINE//NULL - ltr = NEWLINE - if(lcheckout) then - WRITE(6,165)lpcurr - 165 FORMAT(' egtnxtwd:Before finding word, hit NEWLINE ', - * 'at LP=', I4) - endif - go to 800 - endif -C ... otherwise, we can begin scanning for next WORD ... - wp = 1 -C ... do while(wp .ne. lenword .and. lpcurr .le. limlp) - FOUND_TERM = .FALSE. - DO WHILE (.NOT. FOUND_TERM) - IF(lpcurr .GT. MXLNLP) then -C ... we have reached the end-of-given-line ... -C ... simulate hitting a NULL terminator ... - if(lcheckout) then - write(6,225)lpcurr - 225 format(' egtnxtwd: reached end-of-line at LP=',I4, - * '; end like NULL') - endif - - found_term = .true. - ltr = NULL - go to 244 - endif -C - lonech = line(lpcurr:lpcurr) -C - if(lonech .eq. NULL) then -C ... THIS SHOULD NEVER COME THIS WAY, SINCE MXLNLP IS -C ... BEFORE THE NULL TERMINATOR - found_term = .true. - ltr = NULL -C ... else if(lonech .eq. BLANK) then -C ... this is usual way out on BLANK terminator found ... -C ... found_term = .true. -C ... ltr = BLANK - else if(lonech .eq. NEWLINE) then - found_term = .true. - ltr = NEWLINE - else if(lpcurr .eq. limcont - * .and. - * lpcurr+1 .le. len(line)) then - if (line(lpcurr:lpcurr+1) .eq. ',-') then - found_term = .true. - ltr = NEWLINE - end if - else -C ... test lonech for match against delims ... - if(maxdelim .gt. 0) then - do iter = 1,maxdelim - if(lonech .eq. delims(iter:iter)) then - found_term = .true. - ltr = delims(iter:iter) - go to 244 -C ... which jumped out of do upon delimiter_found - endif - enddo - endif -C ... this lonech does not match any of delims ... - endif -C - if(.not. found_term) then -C ... this lonech is not a delimiter, so stash it in word ... -C ... (unless results word space has been filled up, but -C ... we will throw away characters until -C ... terminator is found in the line) - IF(WP .LT. LENWORD) then - WORD(WP:WP) = lonech - wp = wp + 1 - endif - endif -C ... - 244 continue -C ... even for case of found_term, we will increment lp -C ... so that lp is pointing at beyond the terminator - lpcurr = lpcurr + 1 - enddo -C ... comes here only after delimiter has been found ... - if(lcheckout) then - LBYLTR = MOVA2I(LTR) - LPM1 = lpcurr - 1 - WRITE(6,246)LBYLTR,LPM1 - 246 FORMAT(' egtnxtwd:found delimiter =HEX ',Z2.2,' AT LP=',I3) - - llone = mova2i(lonech) - WRITE(6,255)lpcurr,wp,llone - 255 FORMAT(' egtnxtwd:fell thru enddo with lp=',I4, - * ' wp=',I4,' lonech=hex',Z2.2) - endif - - 300 continue - word(wp:wp) = NULL -C ... WHICH INSERTED A NULL TERMINATOR IN RESULTING WORD ... - if(lcheckout) then - IF(WP.GT.1) THEN - WP1= WP - 1 - LBYLTR = MOVA2I(LTR) - WRITE(6,345)WORD(1:WP1),LBYLTR - 345 FORMAT(' egtnxtwd:WORD="',A,'" ltr=hex ',Z2.2) - ENDIF - endif - - IF(LTR .NE. BLANK) GO TO 800 -C ... WHICH IS ALL FINISHED EXIT ... - -C ... OTHERWISE, THE TERMINATOR WAS BLANK, SO MOVE POINTER -C ... TO A HIGHER-PRIORITY TERMINATOR, OR -C ... TO THE LAST OF A STRING OF BLANKS BEFORE THE START OF -C ... THE NEXT WORD -C ================================================================ - FOUND_NONBLANK = .FALSE. - DO WHILE (.NOT. FOUND_NONBLANK) - IF(lpcurr .GT. MXLNLP) then -C ... we have reached the end-of-given-line ... -C ... simulate hitting a NULL terminator ... - if(lcheckout) then - write(6,425)lpcurr - 425 format(1h ,'egtnxtwd+: reached end-of-line at LP=',I4, - 1 '; end like NULL') - endif - - FOUND_NONBLANK = .true. - ltr = NULL - go to 444 - endif -C -C . . . . . . . . . . . . . . . . . . -C - lonech = line(lpcurr:lpcurr) -C - if(lonech .eq. NULL) then -C ... THIS SHOULD NEVER COME THIS WAY, SINCE MXLNLP IS -C ... BEFORE THE NULL TERMINATOR - FOUND_NONBLANK = .true. - ltr = NULL - - else if(lonech .eq. NEWLINE) then - FOUND_NONBLANK = .true. - ltr = NEWLINE - - else if(lpcurr .eq. limcont .and. - 1 line(lpcurr:lpcurr+1) .eq. ',-') then - FOUND_NONBLANK = .true. - ltr = NEWLINE - - else - if(lonech .eq. BLANK) then -C ... this is part of trailing blanks which I want to -C ... skip over - go to 444 - else -C ... this lonech is non-blank, so this lonech will -C ... terminate scan one way or another. - FOUND_NONBLANK = .true. -C ... test this non-blank lonech for match against delims - if(maxdelim .gt. 0) then - do iter = 1,maxdelim - if(lonech .eq. delims(iter:iter)) then - ltr = delims(iter:iter) - go to 444 -C ... which jumped out upon non-blank-delimiter -C ... found - endif - enddo - endif -C ... this non-blank lonech does not match any of delims -C ... So this lonech is start of next word, -C ... jump out without incrementing lpcurr - ltr = BLANK - go to 445 - endif - endif -C - 444 continue -C ... even for case of FOUND_NONBLANK terminator, we will -C ... increment lpcurr; so that lpcurr is pointing at beyond -C ... the terminator - lpcurr = lpcurr + 1 - enddo - - 445 continue -C ... comes here with lpcurr pointing beyond terminator ... -C ... and ltr containing the terminator-character - if(lcheckout) then - LBYLTR = MOVA2I(LTR) - LPM1 = lpcurr - 1 - WRITE(6,446)LBYLTR,LPM1 - 446 FORMAT(' egtnxtwd+:found delimiter =HEX ',Z2.2,' AT LP=', - * I3) - - llone = mova2i(lonech) - WRITE(6,455)lpcurr,wp,llone - 455 FORMAT(' egtnxtwd+:fell thru enddo with lpcurr=',I4, - * ' wp=',I4,' lonech=hex',Z2.2) - endif - go to 800 -C ================================================================ - - 800 CONTINUE - go to 999 - 900 continue - ierror = 1 - go to 999 - 910 continue - ierror = 2 - go to 999 - 920 continue - ierror = 3 - go to 999 - 930 continue - ierror = 4 - go to 999 - 940 continue -C ... called with LP pointing beyond the last character data in LINE - ierror = -1 - go to 999 -C - 999 continue - return - end -c************************************************************************ - subroutine ekeyvals(maxnkeys,keyword,foundkey,numvalkey,iret_key) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C subprogram: ekeyvals fetch and parse PARM -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-06-20 -C -C ABSTRACT: fetchs the PARM from the command_line; and -C parses the PARM to seek matches for the given keywords -C and returns the corresponding numeric value which follows -C the equal sign of each keyword. -C -C PROGRAM HISTORY LOG: -C 95-06-20 SHIMOMURA -c 98-08-11 caruso removed CDIR$ INTEGER=64 from top of this code. -c upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: call ekeyvals(maxnkeys,keyword,foundkey,numvalkey,iret_key) -c -C INPUT ARGUMENT LIST: -c maxnkeys - integer max number of keys -c keyword - char*5 'ssno ' or 'dumy ' -c -c output argument list -c foundkey - logical. true if keyword was found -c numvalkey - integer. subscript number(?) -c iret_key - return code -c -c remarks: -C ... A limited-use parser of PARM -C ... for use by the vxdump program -C -C ... to fetch the PARM from the command_line; and -C ... to parse the PARM to seek matches for the given keywords -C ... and return the corresponding numeric value which follows -C ... the equal sign of each keyword. -C ... some grammar rules for text found in PARM: -C ... (1.) keyword must be 5 characters or less; -C ... (2.) keyword must be followed by an equal sign; -C ... (3.) value is limited to a max of 5 digits; -C ... (4.) each set of [keyword // '=' // digits] is terminated -C ... by a comma; -C -C ... CALLS ON SUBROUTINES: W3AS00(), egtnxtwd(); -C ON FUNCTIONS: lowrcase(), LASTCH(), ATOI() -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ -C . . . . . . ekeyvals() . . . . . . . . . . . . . . . . . . . - integer maxnkeys - character*5 keyword(maxnkeys) - logical foundkey(maxnkeys) - integer numvalkey(maxnkeys) - integer iret_key -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - logical checkout - parameter (checkout=.FALSE.) - -C . . . . . . FUNCTIONS . . . . . . . . . . . . . . . . . . - - external lowrcase - character*6 lowrcase - - external lastch - integer lastch - - external atoi - integer atoi -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - integer lmtnkeys - parameter (lmtnkeys=12) - - integer maxnwrd - parameter (maxnwrd=2*lmtnkeys) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - integer iptr_val(lmtnkeys) - integer nchkey(lmtnkeys) - integer nch_key - - character*6 cword(maxnwrd) - character*1 cterm(maxnwrd) - - -C ... call w3as00(nchparm,cparm,iret_as00) . . . . . . - integer nchparm - character*101 cparm - integer iret_as00 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . - - integer lpstart - integer lpcurr - character*5 delims - character*1 ltr -C - character*6 compar - character*1 NULL -C -C . . . . . S T A R T . . . . . . . . . . . . . . . . . . . -C - NULL = char(0) - iret_key = 0 - if(maxnkeys .GT. lmtnkeys) then - write(6,105)maxnkeys,lmtnkeys - 105 format(' ekeyvals: Failed on too-large maxnkeys=',I9 - * /,' when compiled limit in here =',I9) - iret_key = 1 - go to 999 - endif - - -C ... fetch cline via w3as00() -C - call w3as00(nchparm,cparm,iret_as00) - if(iret_as00 .ne. 0) then - write(6,145)iret_as00 - 145 format(' ekeyvals::w3as00: FAILED with code=',I5) - iret_key = 2 - go to 999 - endif -C -C ... then, break the parm apart into cword() and each -C ... corresponding terminator in cterm() -C - nwrdfound = 0 - delims(1:) = ';,= '//NULL - lpstart = 1 - do iwrd = 1,maxnwrd - call egtnxtwd(cparm(1:nchparm),lpstart,lpcurr,delims, - * ltr,cword(iwrd),ierror) - if(ierror .ne. 0) then - write(6,235)ierror - 235 format(' ekeyvals::egtnxtwd() yielded return code=',I5) - go to 300 - endif - nwrdfound = nwrdfound + 1 - cterm(nwrdfound) = ltr - lpstart = lpcurr - enddo - - 300 continue - write(6,315)nwrdfound - 315 format(' ekeyvals: At 300 w/ nwrdfound=',I3) - if(nwrdfound .GT. 0) then - do iw = 1,nwrdfound - ltermin = mova2i(cterm(iw)) - write(6,325)iw,cword(iw)(1:lastch(cword(iw))),ltermin - 325 format(1x,I3,'. "',A,'"; terminator= X',Z2.2) - enddo - endif -C -C -C ... now let's try to use the data, which is why I wanted this -C ... parsing capability -C ... scan for like "head" -C - lckpt = 400 - if(checkout) then - write(6,405)LCKPT - endif - 405 format(' ekeyvals: LCKPT=',I5) - - do i = 1,maxnkeys - iptr_val(i) = 0 - numvalkey(i) = 0 - foundkey(i) = .false. - nchkey(i) = lastch(keyword(i)) - enddo - - lckpt = 410 - if(checkout) then - write(6,405)LCKPT - endif - - do iw = 1,nwrdfound - if(cterm(iw)(1:1) .eq. '=') then - compar(1:6) = ' ' - nch_word = lastch(cword(iw)) - if(nch_word .GT. 0) then - compar(1:) = lowrcase(cword(iw)) - do ik = 1,maxnkeys - nch_key = nchkey(ik) - if(nch_word .GE. nch_key) then -C ... we will compare only if comparand has enough ltrs -C ... at least as many letters as the keyword ... - if(compar(1:nch_key) .EQ. keyword(ik)(1:nch_key)) then -C ... found the keyword(ik) at cword(iw) ... - if(iw .LT. nwrdfound) then - iptr_val(ik) = iw + 1 - endif - endif - endif - enddo - endif - endif - enddo -C - lckpt = 420 - if(checkout) then - write(6,405)LCKPT - endif -C - do ik = 1,maxnkeys - nch_key = nchkey(ik) - if(iptr_val(ik) .NE. 0) then - iofval = iptr_val(ik) - nchval = lastch(cword(iofval)) - numvalkey(ik) = atoi(cword(iofval)) - foundkey(ik) = .TRUE. - - write(6,425)keyword(ik)(1:nch_key),cword(iofval)(1:nchval), - * numvalkey(ik) - 425 format(' ekeyvals: "',A,'" = "',A,'" =',I9) - else -C ... failed to find a match for this keyword ... - foundkey(ik) = .FALSE. - if(checkout) then - write(6,435)keyword(ik)(1:nch_key) - 435 format(' ekeyvals: did not find, in cparm, the ', - * 'keyword= "',A,'"') - endif - endif - enddo - - 999 continue - return - end -c******************************************************************* - SUBROUTINE FINDLINK(ISSNO, npartfound, iplotarg, IRET_FND) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C subprogram: findlink -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 97-07-08 -C -C ABSTRACT: finds the isched linked components of the fax entity -c which starts with subset no. = issno and returns the -c descriptions of the components (up to 4) including -c where to locate the start of the component in the -c input file(s). -C -C PROGRAM HISTORY LOG: -c 96-07-03 shimomura original author -C 97-07-08 SHIMOMURA iplotarg(14,JPAR) = JPRODNO -C (I think the 14th word is not used.) -c 98-08-11 caruso upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: call FINDLINK(ISSNO, npartfound, iplotarg, IRET_FND) -c -C INPUT ARGUMENT LIST: -c issno - integer subset no. -c -c output argument list -c npartfound - integer number of components found -c iplotarg - integer array. holds plotting info. -c iret_fnd - return code -c -c remarks: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ - - INTEGER MAXNFILS - PARAMETER (MAXNFILS=4) - - INTEGER MAXNPRODS - PARAMETER (MAXNPRODS=20) !... MAX PRODS PER FILE - - INTEGER LMTPRODTOT - PARAMETER (LMTPRODTOT=MAXNFILS*MAXNPRODS) !... 80 = 4*20 - - INTEGER MAXITMDBA - PARAMETER (MAXITMDBA=10) - - COMMON /PRODDESC/numprods,IFID(6,LMTPRODTOT), - 1 ISCHED(180,LMTPRODTOT), - 2 IPROD_DBA(MAXITMDBA,LMTPRODTOT) - -C ============================================================== - INTEGER MXIIPITEM !... EACH SCHED ITEM HAS 8 I*2 WORDS - PARAMETER (MXIIPITEM=8) - - INTEGER MXSCH !... MAX NO. SCHED ITEMS PERMITTED/BLOCK - PARAMETER (MXSCH=61) - - INTEGER MAXPLTARG !... I-DIMEN OF IPLOTARG(I,4) - PARAMETER (MAXPLTARG=20) - - INTEGER IIMAXPART - PARAMETER (IIMAXPART=10) - - INTEGER MAXNPART - PARAMETER (MAXNPART=4) - - integer isch4part(IIMAXPART,MAXNPART) - -C -------------------------------------------- - INTEGER ISSNO - integer npartfound - integer iplotarg(MAXPLTARG,MAXNPART) - INTEGER IRET_FND -C -------------------------------------------- - - INTEGER ITHIS_SSNO - INTEGER NEXT_SSNO - INTEGER ITEMWRD(2) - - INTEGER NOFFSET - DATA NOFFSET / 0 / - INTEGER KBITPGRP - DATA KBITPGRP / 16 / - INTEGER KPADBITS - DATA KPADBITS / 0 / - INTEGER NGRPS2DO - DATA NGRPS2DO / 8 / - INTEGER NEGSIGNI2 - DATA NEGSIGNI2 / X'FFFFFFFFFFFF8000' / - INTEGER NEGSIGNBYT - DATA NEGSIGNBYT / X'FFFFFFFFFFFFFF80' / - INTEGER MSKLOW16 - DATA MSKLOW16 / X'0000FFFF' / - INTEGER MSKLOWBYT - DATA MSKLOWBYT / X'00FF' / - - integer issno_seek - INTEGER ITEM_COUNT - INTEGER IIARRAY(8) - INTEGER J0VAL_DST - INTEGER INDENT_DST - INTEGER INDENT_SRC - INTEGER IWIDTH - INTEGER IHGT - logical lsubsetq - LOGICAL LOOPAGAIN - LOGICAL LDOUBLEQQ - LOGICAL LFRAMEQQ - - CHARACTER*7 CXXXSET - - SAVE - - IRET_FND = 0 - LOOPAGAIN = .FALSE. - npartfound = 0 - do j = 1,MAXNPART !... 4 part max of a FAX entity - do ii = 1,IIMAXPART - isch4part(ii,j) = 0 - enddo - enddo - - DO J = 1,MAXNPART !... 4 PARTS IS MAX - DO I = 1,MAXPLTARG - IPLOTARG(I,J) = 0 - ENDDO - ENDDO - - write(6,105)issno - 105 format(' findlink: was called to look in sched(s) for SSNO=', - * I6) - issno_seek = issno - - write(6,107) - 107 format(' SSNO/ FLAG/ WIDTHS/ ', - * ' NEXT', - * /,' INSNO BLOK BYTE LINES INDTHS INDNXT J0NXT', - * ' INSNO') - - LOOPAGAIN = .FALSE. - 222 CONTINUE !... LOOPS BACK TO HERE TO SCAN AGAIN - DO 377 JPR = 1,NUMPRODS -C ... SCAN ISCHED(1,JPR) LOOKING FOR SUBSET NO. == ISSNO - - ITEM_COUNT = 0 - DO NSCH = 2,MXSCH - ITEMPTR = 2*(NSCH-1) + 1 - ITEMWRD(1) = ISCHED(ITEMPTR,JPR) - ITEMWRD(2) = ISCHED(ITEMPTR+1,JPR) - IF(IOR(ITEMWRD(1),ITEMWRD(2)) .EQ. 0) THEN -C ... END OF SCHED OF THIS JPR BLOCK ... - WRITE(6,225)ITEM_COUNT,JPR - 225 FORMAT(' FINDLINK: FOUND TERMINATING ZERO AFTER ', - 1 'LOOKING AT ITEM-COUNT=',I4, - 2 /,' FROM PRODUCT NO.',I3) - GO TO 377 !... LOOP TO NEXT PRODUCT - ENDIF -C ... otherwise, this sched item is non-zero, so ... - item_count = item_count + 1 - - call gbytes(itemwrd,iiarray,NOFFSET,KBITPGRP,KPADBITS, - 1 NGRPS2DO) - - IF(BTEST(IIARRAY(7),15)) THEN !... IF(HI-ORDER BITON) - IIARRAY(7) = IOR(IIARRAY(7),NEGSIGNI2) - ENDIF - - WRITE(6,235)(IIARRAY(I),I=1,8) - 235 FORMAT(1x,4I7,' X:',Z4.4,' X:',Z4.4,2I7) - - ITHIS_SSNO = iiarray(1) -C ... (the following match test failed to find a match, ... -C ... until I SAVEd everything ...) - IF(ITHIS_SSNO .EQ. ISSNO_seek) THEN -C ... I HAVE FOUND THE SCHED ITEM FOR ISSNO. - npartfound = npartfound + 1 - -C ... SO save THIS found component of the FAX entity - do ii = 1,8 - isch4part(ii,npartfound) = iiarray(ii) - enddo - isch4part( 9,npartfound) = NSCH - isch4part(10,npartfound) = JPR - - NEXT_SSNO = iiarray(8) - write(6,245)NSCH,JPR - 245 format(' findlink: found matching SSNO at NSCH=',I4, - * '; in Product No.=',I3) - if(NEXT_SSNO .LE. 0) then - write(6,247) - 247 format(' which has no further link') - go to 400 !... ONLY NORMAL EXIT OUT OF LOOP 377 - - else - write(6,249)NEXT_SSNO - 249 format(' which links to NEXT_SSNO=',I6) - issno_seek = next_ssno - LOOPAGAIN = .FALSE. - ENDIF - ENDIF - ENDDO - 377 CONTINUE -C ... WHICH IS ENDDO BY JPR PRODUCT ... -C ... WHICH MEANS: FAILED TO FIND A MATCH FOR ISSNO_SEEK - IF(LOOPAGAIN) THEN -C ... ERROR STOP ... CANNOT FIND ONE OF THE COMPONENTS ... - WRITE(6,379)ISSNO,ISSNO_SEEK - 379 FORMAT(' FINDLINK: FAILED TO FIND ONE COMPONENT OF ', - 1 'THIS FAX ENTITY ...', - 2 /,7X,' WHICH STARTED WITH SSNO.=',I6, - 3 /,7X,'FAILED TO FIND SUBSET OR INSET NO.=',I6) - IRET_FND = 1 - GO TO 999 - ELSE -C ... FIRST HIT END OF LOOP, SO GO BACK TO THE BEGINNING -C ... AND SEARCH THRU ENTIRE SET ... - LOOPAGAIN = .TRUE. - GO TO 222 - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 400 continue -C ... summarize the components of the FAX entity ... - write(6,405)ISSNO,npartfound - 405 format(' findlink: For the FAX composite chart which begins', - 1 ' with Subset No.',I6, - 2 /,5X,'the number of components found=',I3) - - do jpar = 1,npartfound - JPRODNO = isch4part(10,jpar) - - if(BTEST(isch4part(5,jpar),15)) then - lsubsetq = .TRUE. - cxxxset(1:7) = 'SUBSET ' - else - lsubsetq = .FALSE. - cxxxset(1:7) = ' INSET ' - endif - - LDOUBLEQQ = .FALSE. - LFRAMEQQ = .FALSE. - if(lsubsetq)then - LDOUBLEQQ = BTEST(ISCH4PART(5,JPAR),9) - else -C ... this is an inset; .not. subset; - LDOUBLEQQ = BTEST(ISCH4PART(5,JPAR),10) - LFRAMEQQ = BTEST(ISCH4PART(5,JPAR),14) - endif - - IF(jpar .LE. 1) THEN - J0VAL_DST = 0 - INDENT_DST = 0 - ELSE - J0VAL_DST = ISCH4PART(7,JPAR-1) - INDENT_DST = IAND(ISCH4PART(6,JPAR-1),MSKLOWBYT) - INDENT_DST = 8*INDENT_DST - ENDIF - IWIDTH = IAND(ISHFT(ISCH4PART(6,JPAR),-8),MSKLOWBYT) - IWIDTH = 8*IWIDTH - IHGT = ISCH4PART(4,JPAR) - - INDENT_SRC = IAND(ISCH4PART(5,JPAR),MSKLOWBYT) - IF(BTEST(INDENT_SRC,7)) THEN - INDENT_SRC = IOR(INDENT_SRC,NEGSIGNBYT) - ENDIF - INDENT_SRC = 8*INDENT_SRC - - write(6,425)CXXXSET(1:7),isch4part(1,jpar),J0VAL_DST, - 1 INDENT_DST,IWIDTH,IHGT,IPROD_DBA(1,JPRODNO), - 2 IPROD_DBA(3,JPRODNO),ISCH4PART(2,JPAR), - 3 ISCH4PART(3,JPAR) - 425 FORMAT(/1x,A7,'NO.',I6,'; TO BE PLOTTED AT J=',I6, - 1 '; INDENT_DST=',I6, - 2 /,7X,'WIDTH,HGT= (',I6,',',I6,')', - 3 /,7X,'TO BE FETCHED FROM U:',I2, - 4 ' PROD-START REC=',I6, - 5 /,7X,'FROM WHICH POINT NREC-SKIP=',I6, - 6 '; NBYT-SKIP=',I6) -C ... IPLOTARG(1,) = 1; IF SUBSET -C = 0; IF INSET -C (2,) = 1288; the SUBSET OR INSET NUMBER - if(lsubsetq) then - iplotarg(1,JPAR) = 1 - else - iplotarg(1,JPAR) = 0 - endif - - iplotarg(2,JPAR) = isch4part(1,JPAR) !... ssno - iplotarg(3,JPAR) = J0VAL_DST - iplotarg(4,JPAR) = INDENT_DST - iplotarg(5,JPAR) = IWIDTH - iplotarg(6,JPAR) = IHGT - iplotarg(7,JPAR) = IPROD_DBA(1,JPRODNO) !... U:UNIT - iplotarg(8,JPAR) = IPROD_DBA(3,JPRODNO) !... FFFFFF-REC - iplotarg(9,JPAR) = ISCH4PART(2,JPAR) !... REC-SKIP - iplotarg(10,JPAR) = ISCH4PART(3,JPAR) !... BYT-SKIP - - iplotarg(11,JPAR) = INDENT_SRC - - iplotarg(12,JPAR) = 0 - IF(LFRAMEQQ) THEN - iplotarg(12,JPAR) = 1 - ENDIF - - iplotarg(13,JPAR) = 0 - IF(LDOUBLEQQ) THEN - iplotarg(13,JPAR) = 1 - ENDIF - - iplotarg(14,JPAR) = JPRODNO !... 8-Jul-1997/dss - enddo - - 999 continue - RETURN - END -c************************************************************************ - LOGICAL FUNCTION ISALPHA(C) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C FUNCTION: isalpha see if character is alpha or numeric -C PRGMMR: CARUSO ORG: W/NP12 DATE: 98-08-11 -C -C ABSTRACT: .TRUE. IF THE ONE CHARACTER IS ANY LETTER OR DIGIT ... -C -C PROGRAM HISTORY LOG: -c yy-mm-dd original author unknown -c 98-08-11 caruso upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: if(isalpha(c)) then... -c -C INPUT ARGUMENT LIST: -c c - character*1 -c -c output argument list: -c true if character is a letter or number, -c false if not. -c -c remarks: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ - CHARACTER*1 C - save - ISALPHA = ((LGE(C,'0') .AND. LLE(C,'9')) - 1 .OR. (LGE(C,'a') .AND. LLE(C,'z')) - 2 .OR. (LGE(C,'A') .AND. LLE(C,'Z'))) - RETURN - END -c************************************************************************ - CHARACTER*(*) FUNCTION LOWRCASE(STRING) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C FUNCTION: lowrcase convert char string to lowercase -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-07-10 -C -C ABSTRACT: CONVERT A CHARACTER STRING OR TO LOWRCASE -c EXCEPT WHERE ENCLOSED IN QUOTES; terminate scan on first -c BLANK or NULLCHR or on LEN(STRING) -c or on LEN(LOWRCASE); whichever is encountered first -C -C PROGRAM HISTORY LOG: -c yy-mm-dd original author unknown -c 98-08-11 caruso removed CDIR$ INTEGER=64 from top of this code. -c upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: cret = lowrcase(string) -c -C INPUT ARGUMENT LIST: -c string - char string to be converted to all lowercase -c -c output argument list: -c cret - char string in lowercase. -c -c remarks: -c -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ - - character*(*) string - external lastch - INTEGER lastch !...declares function - - integer i - INTEGER LIMITIN - INTEGER LIMITOUT - CHARACTER*1 NULLCHR - CHARACTER*1 QUOTE - - save - - NULLCHR = CHAR(0) - QUOTE = CHAR(39) - - i = 1 - LIMITOUT = LEN(LOWRCASE) - LIMITIN = lastch(STRING) - IF(LIMITIN .GT. LIMITOUT) THEN - LIMITIN = LIMITOUT - ENDIF - IF(LIMITIN .LE. 0) GO TO 555 - do while (i .le. LIMITIN) - if (string(i:i) .eq. QUOTE) then - LOWRCASE(i:i) = QUOTE - i = i + 1 - do while (string(i:i) .ne. QUOTE .and. i .le. LIMITIN) - LOWRCASE(i:i) = string(i:i) - i = i + 1 - enddo - LOWRCASE(i:i) = string(i:i) - if(string(i:i) .ne. NULLCHR) i = i + 1 - else - if(llt(string(i:i),'A') .or. lgt(string(i:i),'Z')) then - LOWRCASE(i:i) = string(i:i) - else ! this is a upper-case letter, so lower it ... - LOWRCASE(i:i) = char(mova2i('a') - mova2i('A') + - 1 mova2i(string(i:i))) - endif - i = i + 1 - endif - enddo - 555 CONTINUE - IF(I .LE. LIMITOUT) THEN - LOWRCASE(i:i) = NULLCHR - ENDIF - return - end -c**************************************************************** - subroutine mkpurhdr(c8mapnam,NWDOUT,NPELS,ched,kdimhed, - 1 nwdhed,iret_hdr) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C subprogram: mkpurhdr make header for pure raster file -C PRGMMR: caruso ORG: W/NMC41 DATE: 98-08-11 -C -C ABSTRACT: composes an initial header for the pure-raster file -C within the x6b_pur() package; -C the header follows the format used by ty9_pur() -C -C PROGRAM HISTORY LOG: -C 95-08-28 SHIMOMURA -c 98-08-11 caruso upgrading to fortran 90 and making y2k-compliant. -c adding docblock. removed call to s/r gmtdatim, -c which wasn't y2k-compliant, and replaced it with -c call to w3utcdat. -C -C USAGE: call mkpurhdr(c8mapnam,NWDOUT,NPELS,ched,kdimhed, -c nwdhed,iret_hdr) -c -C INPUT ARGUMENT LIST: -c c8mapnam - char*8 map name -c nwdout - integer number of words to output -c npels - integer number of pixels to output -c -c output argument list -c ched - char*8 header array -c kdimhed - integer number of array elements in ched -c nwdhed - integer number of words in header -c iret_hdr - return code -c -c remarks: -C This only composes; does not output the header; -C Only initializes; still lacks a few items which -C some other module fills in at completion of product. -C Calls int function lastch() and w3utcdat (system date/time -c in GMT). -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ - external lastch - integer lastch - - character*8 c8mapnam - INTEGER NWDOUT - INTEGER NPELS - CHARACTER*8 CHED(kdimhed) - integer iret_hdr - - integer idat(8) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ... FOLG FOR BIN2CH() ARGS: - INTEGER KCHBIN - DATA KCHBIN / 8 / - - CHARACTER*4 CPLMI - DATA CPLMI / 'R999' / - - INTEGER IACC - CHARACTER*8 CACC - EQUIVALENCE (IACC,CACC) - - integer maxwrdhed - data maxwrdhed / 8 / - - save - - iret_hdr = 0 - nwdhed = 0 - if(kdimhed .LT. maxwrdhed) then -C ... error: she didn't allocate enough space in destination - write(6,905)kdimhed,maxwrdhed - 905 format(' mkpurhdr: Failed due to insufficient space ', - 1 ' for resulting header in ched()', - 2 /,7X,'kdimhed=',I3,'; but needed ',I3) - - iret_hdr = -1 - go to 999 - - endif -C ... otherwise, CHED() has enough array to hold the items - lenched = len(ched(1)) - if(lenched .NE. 8) then -C ... error. Destination must be set for char strings of 8 -C ... characters per item. - write(6,145) - 145 format(' mkpurhdr: Failed on improperly defined ', - 1 'destination array for header;', - 2 /,7X,'I expected CHARACTER*8 CHED(8)') - iret_hdr = -2 - go to 999 - endif - - CHED(1)(1:8) = 'PURERAST' - CHED(2)(1:8) = '00000000' - CHED(3)(1:8) = '00000000' -C ... CHED(4)(1:8) = 'NH2007 ' - ched(4)(1:8) = ' ' - nch = lastch(c8mapnam(1:8)) - if(nch .LE. 0) then - ched(4)(1:8) = 'UNKNOWN ' - iret_hdr = 1 - ELSE - IF(NCH .GT. 8) THEN - NCH = 8 - iret_hdr = 2 - ENDIF - - ched(4)(1:nch) = c8mapnam(1:nch) - ENDIF - - CHED(5)(1:8) = '00000000' - - CALL BIN2CH(NWDOUT,CACC(1:8),KCHBIN,CPLMI(1:4)) - CHED(6)(1:8) = CACC(1:8) - -C ... NPELS = NBITSPWD*NWDOUT - CALL BIN2CH(NPELS,CACC(1:8),KCHBIN,CPLMI(1:4)) - CHED(7)(1:8) = CACC(1:8) - - call w3utcdat(idat) - iyr2d = mod(idat(1),100) - imon = idat(2) - iday = idat(3) - if(iyr2d.lt.1) then - ched(8)(1:2) = '00' - elseif(iyr2d.lt.10) then - ched(8)(1:1) = '0' - write(ched(8)(2:2),fmt='(i1)') iyr2d - else - write(ched(8)(1:2),fmt='(i2)') iyr2d - endif - if(imon.lt.10) then - ched(8)(3:3) = '0' - write(ched(8)(4:4),fmt='(i1)') imon - else - write(ched(8)(3:4),fmt='(i2)') imon - endif - if(iday.lt.10) then - ched(8)(5:5) = '0' - write(ched(8)(6:6),fmt='(i1)') iday - else - write(ched(8)(5:6),fmt='(i2)') iday - endif - ched(8)(7:8) = ' ' - -c CALL GMTDATIM(CYYMMDD,CZZZZ) -c CHED(8)(1:8) = CYYMMDD(1:6)//' ' - - nwdhed = 8 - DO JJ = 1,NWDHED - WRITE(6,374)JJ,ched(JJ)(1:8) - 374 FORMAT(' mkpurhdr:CHED(',I3,') = "',A,'"') - ENDDO - - 999 continue - return - end -c******************************************************************** - subroutine mv8_8bit (c1sorc,nbytin, nskpdib, c1dest,kbytout, - 1 nbytres,iret_mv8) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C subprogram: mv8_8bit move 8 bits into byte -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-07-10 -C -C ABSTRACT: To move bit into bytes, after considering array sizes -C and skip value; -C -C PROGRAM HISTORY LOG: -c 95-08-21 shimomura -c 97-02-20 shimomura Copied from ~/cra/bg/mv8_8bit.f -C into ~/ncod/chk/mv8_8bit.f because when -c referenced by dcdlnx6b() within fxcompos -C under the double-the-scale option, this -c returned with nothing. -C So I needed to add comments. -c 98-08-11 caruso removed CDIR$ INTEGER=64 from top of this code. -c upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: call mv8_8bit (c1sorc,nbytin, nskpdib, c1dest,kbytout, -c nbytres,iret_mv8) -c -C INPUT ARGUMENT LIST: -C c1sorc - char*1 array of size nbytin. 8-bits data per byte -c nbytin - integer size of array c1sorc -C nskpdib - number of c1sorc bytes (each containing -C a doubled-dibyte of data) to skip before stashing any; -c -c output argument list -C c1dest - char*1 array of size nbytres. 8 bits of data per byte -c kbytout - integer size of array c1dest -c nbytres - integer. same as kbytout! -C iret_mv8 - return code -C = 0; normal exit. -C = 1; Fatal Error, Recompile! -C You gave me no space in destination -C array. -C = -1; Warning: the skip constant moved ptr -C beyond any existing data in line -C = -2; Warning: the space in destination -C array is inadequate for the given -C data. Truncate and go, anyway. -c -c remarks: -C ... This will work with either INTEGER length. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ -C - character*1 c1sorc(nbytin) - integer nskpdib - character*1 c1dest(kbytout) - integer nbytres - integer iret_mv8 -C . . . . . . . . . . . . . . . . . . - - integer M1 - integer M2 - integer ndibstodo - integer idemax - - SAVE -C . . . . . S T A R T . . . . . . . . . . . . . . . . . . . - - iret_mv8 = 0 - nbytres = 0 - ide = 0 - - M1 = 1 - if(nskpdib .GT. 0) then - M1 = nskpdib + 1 - endif - - M2 = nbytin - if(M2 .LE. 0) then - nbytres = 0 - go to 999 - endif - if(M1 .GT. M2) then - iret_mv8 = -1 -C ... WARNING:the skip constant moved ptr beyond any existing -C ... data in line - nbytres = 0 - go to 999 - endif -C -C ... otherwise, (M1 .LE. M2), so go on ... -C ... - ndibstodo = M2 - M1 + 1 - idemax = ndibstodo - -C ... Did she allocate enough space for me in C1DEST(kbytout) ??? - if(kbytout .LE. 0) then - iret_mv8 = 1 -C ... Fatal Error, you gave me no space in destination array. - nbytres = 0 - go to 999 - else if(kbytout .LT. idemax) then - iret_mv8 = -2 -C ... Warning, the space for destination array is inadequate -C ... for the given data. Truncate and go, anyway. - ndibstodo = kbytout - endif -C ... - M2 = M1 + ndibstodo - 1 - idemax = ndibstodo - - ide = 0 - IF(M2 .GT. 0) THEN - do ic = M1,M2 - ide = ide + 1 - if(ide .GT. idemax) go to 366 - c1dest(ide) = c1sorc(ic) - enddo - ENDIF - 366 continue - - nbytres = ide -C - 999 continue - return - end -c************************************************************************ - subroutine pk4_8bit (c1sorc,nbytin, nskpdib, c1dest,kbytout, - 1 nbytres,iret_pk4) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C subprogram: pk4_8bit half-pack into bytes -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-07-10 -C -C ABSTRACT: To half-pack into bytes -C -C PROGRAM HISTORY LOG: -C 95-08-21 SHIMOMURA -c 98-08-11 caruso upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: call pk4_8bit (c1sorc,nbytin, nskpdib, c1dest,kbytout, -c nbytres,iret_pk4) -c -C INPUT ARGUMENT LIST: -C c1sorc - char*1 array of size nbytin. low order 4-bits per byte -c nbytin - integer size of array c1sorc -C nskpdib - number of c1sorc bytes (each containing -C a dibyte of data) to skip before stashing any; -c -c output argument list -C c1dest - char*1 array of size nbytres. 4+4 bits per byte -c kbytout - integer size of array c1dest -c nbytres - integer. same as kbytout! -C iret_pk4 - return code -C = 0; normal exit. -C = 1; Fatal Error, Recompile! -C You gave me no space in destination -C array. -C = -1; Warning: the skip constant moved ptr -C beyond any existing data in line -C = -2; Warning: the space in destination -C array is inadequate for the given -C data. Truncate and go, anyway. -c -c remarks: -C This will work with either INTEGER length. -C This is slow and safe version. I could make it go faster -C if I could assume given integer arrays; given zero filled; -C no bounds checking; etc. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ -C - character*1 c1sorc(nbytin) - integer nskpdib - character*1 c1dest(kbytout) - integer nbytres - integer iret_pk4 -C . . . . . . . . . . . . . . . . . . - - integer M1 - integer M2 - integer ndibstodo - integer idemax - integer iacc - integer mq - integer msk4bit - data msk4bit / X'0F' / - LOGICAL L1MORE - -C . . . . . S T A R T . . . . . . . . . . . . . . . . . . . - - iret_pk4 = 0 - nbytres = 0 - ide = 0 - - M1 = 1 - if(nskpdib .GT. 0) then - M1 = nskpdib + 1 - endif - - M2 = nbytin - if(M2 .LE. 0) then - nbytres = 0 - go to 999 - endif - if(M1 .GT. M2) then - iret_pk4 = -1 -C ... WARNING:the skip constant moved ptr beyond any existing -C ... data in line - nbytres = 0 - go to 999 - endif -C -C ... otherwise, (M1 .LE. M2), so go on ... -C ... - ndibstodo = M2 - M1 + 1 - idemax = ndibstodo / 2 - if(mod(ndibstodo,2) .NE. 0) then -C ... is odd-number of given bytes ... - idemax = idemax + 1 -C ... where idemax is required space in c1dest ... - endif -C ... Did she allocate enough space for me in C1DEST(kbytout) ??? - if(kbytout .LE. 0) then - iret_pk4 = 1 -C ... Fatal Error, you gave me no space in destination array. - nbytres = 0 - go to 999 - else if(kbytout .LT. idemax) then - iret_pk4 = -2 -C ... Warning, the space for destination array is inadequate -C ... for the given data. Truncate and go, anyway. - ndibstodo = 2 * kbytout - endif -C ... - L1MORE = .FALSE. - M2 = M1 + ndibstodo - 1 - idemax = ndibstodo / 2 - if(mod(ndibstodo,2) .NE. 0) then -C ... is odd-number of given bytes ... - idemax = idemax + 1 -C ... where idemax is required space in c1dest ... -C ... set to do one-less byte in big loop; to do the pairs first - L1MORE = .TRUE. - M2 = M2 - 1 - endif - - ide = 0 - IF(M2 .GT. 0) THEN - do ic = M1,M2,2 - iacc = mova2i(c1sorc(ic)) - iacc = ishft(iand(iacc,msk4bit),4) - mq = mova2i(c1sorc(ic+1)) - iacc = ior(iacc,iand(mq,msk4bit)) - ide = ide + 1 - c1dest(ide) = char(iacc) - enddo - ENDIF - - IF(L1MORE) THEN - IC = M2 + 1 - iacc = mova2i(c1sorc(ic)) - iacc = ishft(iand(iacc,msk4bit),4) - ide = ide + 1 - c1dest(ide) = char(iacc) - ENDIF - nbytres = ide -C - 999 continue - return - end -c********************************************************************** - SUBROUTINE PLOTPART(JPART,npartfound,IPLOTARG,IRET_PLP) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C subprogram: plotpart plot part of the fax chart -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-07-10 -C -C ABSTRACT: CALLED TO PLOT ONE COMPONENT OF THE COMPOSITE FAX CHART -C BY FETCHING FROM THE 6-BIT PACKED INPUT FILE -C DECODING; CLIPPING; PUTTING PURE-RASTERS INTO -C BITPLANE WORKSPACE. -C -C PROGRAM HISTORY LOG: -C 96-08-19 SHIMOMURA -c 98-08-11 caruso removed CDIR$ INTEGER=64 from top of this code. -c upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: call PLOTPART(JPART,npartfound,IPLOTARG,IRET_PLP) -c -C INPUT ARGUMENT LIST: -c jpart - integer number of component to be plotted -c npartfound - integer total number of components -c iplotarg - integer array of plotting info. -c -c output argument list -c iret_plp - return code -c -c remarks: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ -c - external rd1byt99 - integer rd1byt99 - external reposi99 - integer reposi99 - external rewind99 - integer rewind99 - external wheren99 - integer wheren99 - - integer kbytpwrd - parameter (kbytpwrd=8) !... CRAY version - integer krecsizbyt - parameter (krecsizbyt=1440) - integer krecsizwrd - parameter (krecsizwrd=krecsizbyt/kbytpwrd) - integer nbytsred -C -------------------------------------------- -C . . . CALL SEQ FOR SUBR PLOTPART() . . . . - INTEGER MAXPLTARG !... I-DIMEN OF IPLOTARG(I,4) - PARAMETER (MAXPLTARG=20) - - INTEGER MAXNPART - PARAMETER (MAXNPART=4) - - INTEGER JPART - integer npartfound - integer iplotarg(MAXPLTARG,MAXNPART) - INTEGER IRET_PLP - -C ... IPLOTARG(1,) = 1; IF SUBSET -C = 0; IF INSET -C (2,) = 1288; the SUBSET OR INSET NUMBER -C -------------------------------------------- - - integer intarray(krecsizwrd) - character*1 c1array(krecsizbyt) - equivalence (intarray,c1array) - - integer iret_rew - integer iret_pos - integer iret_rds - integer inrelrecno - integer numrec - integer nbufpart - integer icountEOL - integer nbyskip - integer lintot - LOGICAL LCHKPRT - LOGICAL LFIRSTQ - - INTEGER ISSNO - INTEGER J0VAL_DST - INTEGER INDENT_DST - INTEGER IWIDTH - INTEGER IHGT - integer LUNINP - INTEGER NREC_STARTOMAP - INTEGER NREC_SKIP - INTEGER NBYT_SKIP - INTEGER INDENT_SRC - LOGICAL LSUBSETQ - LOGICAL LFRAMEQQ - LOGICAL LDOUBLEQQ - CHARACTER*7 CXXXSET - - integer byte_offset - integer from_indx - data from_indx / 0 / !... from begin of file - - SAVE - - IRET_PLP = 0 - IF(JPART .LE. 0 .OR. JPART .GT. MAXNPART) THEN - WRITE(6,FMT='('' plotpart: FAILED ON BAD-VALUED JPART='', - * I8)') JPART - IRET_PLP = 1 - GO TO 999 - ENDIF - - IF(JPART .GT. NPARTFOUND) THEN - WRITE(6,FMT='('' plotpart: FAILED ON BAD-VALUED JPART='', - * I8,/,7X,''or BAD-VALUED TOTAL PARTS FOUND='',I8)') - * JPART,NPARTFOUND - IRET_PLP = 2 - GO TO 999 - ENDIF - - IF(iplotarg(1,JPART) .EQ. 0) THEN - LSUBSETQ = .FALSE. !... IS INSET; NOT SUBSET - cxxxset(1:7) = ' INSET ' - ELSE - LSUBSETQ = .TRUE. - cxxxset(1:7) = 'SUBSET ' - endif - - ISSNO = iplotarg(2,JPART) - J0VAL_DST = iplotarg(3,JPART) - INDENT_DST = iplotarg(4,JPART) - IWIDTH = iplotarg(5,JPART) - IHGT = iplotarg(6,JPART) - LUNINP = iplotarg(7,JPART) - NREC_STARTOMAP = iplotarg(8,JPART) - NREC_SKIP = iplotarg(9,JPART) - NBYT_SKIP = iplotarg(10,JPART) - - INDENT_SRC = iplotarg(11,JPART) - LFRAMEQQ = .FALSE. - IF (iplotarg(12,JPART) .NE. 0) THEN - LFRAMEQQ = .TRUE. - ENDIF - LDOUBLEQQ = .FALSE. - IF(iplotarg(13,JPART) .NE. 0) THEN - LDOUBLEQQ = .TRUE. - ENDIF - WRITE(6,415)JPART - 415 FORMAT(/,'plotpart: . . . P A R T -- ',I2,' . . .') - write(6,425)CXXXSET(1:7),ISSNO,J0VAL_DST, - 1 INDENT_DST,IWIDTH,IHGT,LUNINP, - 2 NREC_STARTOMAP,NREC_SKIP, - 3 NBYT_SKIP - - 425 FORMAT(1x,A7,'NO.',I6,'; TO BE PLOTTED AT J=',I6, - 1 '; INDENT_DST=',I6, - 2 /,7X,'WIDTH,HGT= (',I6,',',I6,')', - 3 /,7X,'TO BE FETCHED FROM U:',I2, - 4 ' PROD-START REC=',I6, - 5 /,7X,'FROM WHICH POINT NREC-SKIP=',I6, - 6 '; NBYT-SKIP=',I6) - - write(6,427)INDENT_SRC,LFRAMEQQ,LDOUBLEQQ - 427 format(7X,'INDENT_SRC=',I6,'; LFRAMEQQ= .',L1,'.; ', - 1 'LDOUBLEQQ= .',L1,'.') - - iret_rew = rewind99(LUNINP) - if(iret_rew .NE. 0) then - write(6,FMT='('' plotpart::rewind99: FAILED to '', - * ''rewind with code='',I4,/,7X,''LUNINP='',I3)') - * iret_rew,LUNINP - iret_plp = 4 - go to 999 - endif - - inrelrecno = nrec_startomap - 1 - if(inrelrecno .LT. 0) then - inrelrecno = 0 - endif - inrelrecno = inrelrecno + nrec_skip - - byte_offset = krecsizbyt * inrelrecno - - iret_pos = reposi99(LUNINP,byte_offset,from_indx) - if(iret_pos .NE. 0) then - write(6,FMT='('' plotpart::reposi99: FAILED to '', - * ''reposition with code='',I4, - * /,7X,''LUNINP='',I3)') - * iret_pos,LUNINP - iret_plp = 5 - go to 999 - endif - nbufpart = 0 - lintot = 0 - LFIRSTQ = .TRUE. - LCHKPRT = .TRUE. - 500 continue - if(lintot .GE. IHGT) then -C ... I have satisfied the IHGT no. of scanlines for this part - go to 555 - endif - - iret_rds = rd1byt99(LUNINP,krecsizbyt,c1array,nbytsred) -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (intarray, 8_8, nbytsred / 8_8) -#endif - if(iret_rds .NE. 0) then - write(6,FMT='('' plotpart::rdsbyt99: FAILED to read '', - * ''with code='',I4, - * /,7X,''LUNINP='',I3)') - * iret_rds,LUNINP - iret_plp = 5 - go to 999 - endif - nbufpart = nbufpart + 1 -C ... does rdsbyt99 automatically update pointer by recsiz? -C ... next, how to unpack .pak6 to .x6t ??? - if (nbufpart .EQ. 1) then - nbyskip = nbyt_skip - else - nbyskip = 0 - endif - numrec = inrelrecno + nbufpart - - CALL scan1440(INTARRAY,numrec,nbyskip,LFIRSTQ,LCHKPRT, - 1 icountEOL,iret_scn) - - lintot = lintot + icountEOL - if(iret_scn .LT. 0) then - write(6,525)iret_scn - 525 format(' plotpart::scan1440: terminated reading ', - 1 'with code=',I4) - go to 555 - endif -C ... pull one scanline out byte-by-byte until end-of-line - -C ... if bin is exhausted, then I must read another bin.pak6 - LCHKPRT = .FALSE. - GO TO 500 - - 555 continue -C ... comes here to clean up after reading scanlines loop - write(6,557)nbufpart,lintot,IHGT - 557 format(' plotpart: completed reading this part with ', - 1 'input buffer count=',I6, - 2 /,7X,'which contained total line count=',I6, - 3 /,7X,' the desired line count=',I6) - go to 999 - - 999 CONTINUE - return - end -c********************************************************************* - subroutine rec_dump(mrecno,idatarec,nwrdprec) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REC_DUMP RECORD-DUMPER IN HEX AND AS CHARACTERS -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-05-31 -C -C ABSTRACT: TO DUMP THE GIVEN RECORD IN HEXADECIMAL AND ALSO INTERPRETED -C AS ASCII CHARACTERS; WITH THE BYTE-LOCATION (IN HEX) OF THE STARTING -C WORD OF EACH PRINTED LINE OF THE DUMP. -C -C PROGRAM HISTORY LOG: -C 95-05-31 DAVID SHIMOMURA -c 98-08-11 caruso removed CDIR$ INTEGER=64 from top of this code. -c upgrading to fortran 90 and making y2k-compliant. -C -C USAGE: CALL REC_DUMP(MRECNO, IDATAREC, NWRDPREC) -C INPUT ARGUMENT LIST: -C MRECNO - INT RECORD NUMBER - -C THE FIRST REC IS NO. 1 (NOT ZERO); -C YOU MUST INCREMENT IT WHEN APPLICABLE. -C IDATAREC - INT DATA RECORD -C NWRDPREC - INT NUMBER OF WORDS PER RECORD -C -C OUTPUT FILES: -C FT06F001 - PRINTOUT -C THE ONLY OUTPUT IS THE DUMP TO THE PRINT FILE -C -C REMARKS: -C THIS IS LIMITED TO A DATA RECORD OF FULLWORDS -C WHERE FULLWORD ON THE CRAY IS 8-BYTES; -C -C THE HEX DUMP OF EACH FULLWORD IS PRINTED IN TWO PARTS -C WITH AN INTERVENING BLANK IN THE MIDDLE OF THE FULLWORD. -C -C CALLS ON XASC2ASC() IN ORDER TO INTERPRET BYTES AS ASCII -C CHARACTERS. -C -C ATTRIBUTES: -C LANGUAGE: CRAY FORTRAN 90 -C MACHINE: CRAY -C -C$$$ -C 30-May-1995/dss -C ... A version of fwd_dump for the CRAY; which is a hi-endian -C ... machine, so I don't need to reverse the word sequence -C ... of the printed HEX-dumped words; but I still like the VAX- -C ... style of HEX and character printed on the same line. -C -C - integer nwrdpline - parameter (nwrdpline=2) -C ... ... where nwrdpline is no. of data full_words (CRAY) -C ... per print line - integer niiwrdpline - parameter (niiwrdpline=2*nwrdpline) -C ... where niiwrdpline is no. of data half_words per print line -C - integer kbytpwrd - parameter (kbytpwrd=8) -C - integer mrecno - integer idatarec(nwrdprec) - - integer iprwd(nwrdpline) - - integer iprchwd(nwrdpline) - character*16 chprtln - equivalence (iprchwd,chprtln) - - character*16 chexwd(nwrdpline) - character*8 chexwdhaf(niiwrdpline) - equivalence (chexwd,chexwdhaf) - - integer nwords - integer nlines - integer nzeroln - integer iwrdaddr - integer ibytaddr - integer m1,m2 - integer iorsum - integer jpw - integer nbyskp - integer irecno - integer iacc - integer nwrds_remain - logical lpart_ln - logical last_line - - save -C . . . . . . . s t a r t . . . . . . . . . . . . . . . . . -C - nwords = nwrdprec - if(nwords .le. 0) then -C ... FATAL ERROR WHEN NUMBER OF WORDS PER RECORD IS .LE. 0 - write(6,125)MRECNO - WRITE(6,115)NWRDPREC - 115 format(/,' FWD_DUMP: ERROR. BAD VALUE WAS GIVEN FOR', - 1 ' NUMBER_OF_WORDS_PER_RECORD=',I9, - 2 /,'========================================', - 3 '=======================================') - GO TO 999 - endif - - irecno = mrecno - if(irecno .le. 0) then - irecno = 1 - endif - write(6,125)MRECNO - 125 format(/,' * * * * * * RECORD NO. =',I9, - 1 ' * * * * * * * * * * * * * * * * * * *') - nlines = nwords / nwrdpline - - lpart_ln = .false. - nwrds_remain = mod(nwords,nwrdpline) - if(nwrds_remain .NE. 0) then - nlines = nlines + 1 - lpart_ln = .true. - endif - - nzeroln = 0 - nbytpline = nwrdpline * kbytpwrd - ibytaddr = (irecno-1) * nwords * kbytpwrd - ibytaddr = ibytaddr - nbytpline - - last_line = .false. - do jprln = 1,nlines - if(jprln .eq. nlines) then - last_line = .true. - endif - - ibytaddr = ibytaddr + nbytpline - iwrdaddr = nwrdpline*(jprln-1) - m1 = iwrdaddr + 1 - m2 = m1 + nwrdpline - 1 - - if(last_line) then -C ... initialize line buffers for last line, in case partial - chprtln(1:) = ' ' - do i = 1,nwrdpline - iprwd(i) = 0 - enddo - if(m2 .GT. nwrdprec) then -C ... here is case of last partial line, -C .. do not let do reach beyond end of record ... - m2 = nwrdprec - endif - endif - - iorsum = 0 - ic = 0 - do ip = m1,m2 - ic = ic + 1 - iacc = idatarec(ip) - iprchwd(ic) = iacc - iorsum = ior(iorsum,iacc) - iprwd(ic) = iacc - enddo - - call xasc2asc(chprtln,chprtln,nchmoved,iret_asc) - - if(iorsum .eq. 0) then -C ... this print line is all zero, so - nzeroln = nzeroln + 1 - if(nzeroln .eq. 1) then -C ... on the first occurrence of a bundle of zero lines, pr - m2ii = niiwrdpline -C ... but what if this first zero line was actually the -C ... last and partial line ??? - if(last_line) then - if(lpart_ln) then - m2ii = 2*nwrds_remain - endif - endif - - do i = 1,m2ii - chexwdhaf(i)(1:8) = '00000000' - enddo - write(6,261) ibytaddr,(chexwdhaf(i),i=1,niiwrdpline) - 261 format(1X,Z8.8,':',4(1X,A8),' : ') - endif - else -C ... here is a not all-zeros line, -C ... if this non-zero line was preceded by more than -C ... one zero line, then I should print the count of -C ... zero lines that it skipped - if(nzeroln .gt. 1) then - nbyskp = nwrdpline*kbytpwrd*(nzeroln - 1) - write(6,262)nbyskp - 262 format(1h ,'(',Z8.8,')* is Count (in HEX) of zero bytes', - 1 ' not printed.') - endif - nzeroln = 0 -C -C ... then print the current non-zero line - do iwrd = 1,nwrdpline - write(chexwd(iwrd),2632) iprwd(iwrd) - 2632 format(Z16.16) - enddo - -C ... but what if this was last_line and it was a partial?? -C ... I would rather print blanks for the positions on the -C ... line which are not in the record bounds - if(last_line) then - if(lpart_ln) then - m1i = nwrds_remain + 1 - if(m1i .LE. nwrdpline) then - do iwrd = m1i,nwrdpline - chexwd(iwrd)(1:) = ' ' - enddo - endif - endif - endif - - write(6,263) ibytaddr,(chexwdhaf(i),i=1,niiwrdpline), - 1 chprtln(1:16) - 263 format(1X,Z8.8,':',4(1X,A8),' : "',A,'"') - endif - enddo -C ... what if running zero lines at end of a record? - if(nzeroln .GT. 1) then - nbyskp = nwrdpline*kbytpwrd*(nzeroln - 1) - -C ... but what if last line of zeros was a partial line? - if(lpart_ln) then - nbytxs = (nwrdpline - nwrds_remain)*kbytpwrd - nbyskp = nbyskp - nbytxs - endif -C ... - write(6,262)nbyskp - endif - nzeroln = 0 - 999 continue - return - end -c********************************************************************** - SUBROUTINE scan1440(inbuf,numrec,nbyt_skip,LFIRSTQ,LCHKPRT, - * icountEOL,jretn) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C subprogram: scan1440 -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-07-10 -C -C ABSTRACT: -C -C PROGRAM HISTORY LOG: -C 94-12-06 shimomura copied ~/ig2/vt240/rdsx6b_512.for -C in order to adapt to the CRAY environment -C 96-08-19 shimomura copied ~/ig2/cra/bg/rd6b1440.f in order to -C adapt to a limited application within -C checkout program fxcompos -C subr plotpart() -C in which a 6-bit packed raster input buffer -c has just been read into; and what is really -c desired is one scanline at a time to be -c extracted from that input buffer; -C But just for flow, simply count the scanlines -C In this application, we do not read input from -c within this; but maybe it should? -C This expects to be called only for good raster -c data buffer; not for ISCHED record; not for -c END-of-all maps -c 98-08-11 caruso upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: call scan1440(inbuf,numrec,nbyt_skip,LFIRSTQ,LCHKPRT, -c icountEOL,jretn) -c -C INPUT ARGUMENT LIST: -c inbuf - integer input buffer array -c numrec - integer number of records -c nbyt_skip - integer number of bytes to skip -c lfirstq - logical. if true, initialize array longlinwrk to zero -c lchkprt - logical. if true, checkout print is on. -c -c output argument list -c icounteol - integer number of scanlines -C jretn - return code = 0 for usual interior record -C = +1 for start-of-map flag encountered -C = -1 X'FFFFFD'-headed ISCHED record -c was found -C = -2 X'FFFFFC'-headed end-of-all-maps -c was found -c -c remarks: -C ... User will set LFIRSTQ=.TRUE. on the first call of a PART -C I will use that flag to initialize output X6B scanline -C ----------------------------------------------------------------- -C ... Subroutines called: -C GBYTES() -- a Russ Jones' W3LIB routine to unpack -C ----------------------------------------------------------------- -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ -C - INTEGER kbytin - parameter (kbytin = 1440) - INTEGER kwdinp - parameter (kwdinp = kbytin / 8) - - integer kgrpin - parameter (kgrpin = kbytin*8/6) -C ... where (kgrpin = kbytin*8/6) = 1920 groups per rec. -C - integer lmtnpels - parameter (lmtnpels=4224) !... used to be 4192 - integer lmtndibyt - parameter (lmtndibyt=lmtnpels/4) !... =1056 di-bytes -C - integer lmtpurbyt - parameter (lmtpurbyt=lmtnpels/8) !... =528 bytes - integer lmtpurwrd - parameter (lmtpurwrd=lmtpurbyt/8) !... =66 longwords - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER INBUF(kwdinp) - integer numrec - integer nbyt_skip - LOGICAL LFIRSTQ - LOGICAL LCHKPRT - integer icountEOL - INTEGER jjmapin(KGRPIN) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - integer noffset - integer ngrps2do -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . - integer longlinwrk(lmtndibyt) - INTEGER IDIBYT - character*1 linex6b(lmtndibyt) - - integer i8pure(lmtpurwrd) - character*1 c1pure(lmtpurbyt) !...dcdArg6 - equivalence (i8pure(1),c1pure(1)) -C - integer nchs !...dcdArg2 - logical ldubl !...dcdArg3 - integer nskpdib !...dcdArg4 - integer npels !...dcdArg5 - integer kbytpur !...dcdArg7 - integer iret_pel !...dcdArg8 - - INTEGER jretn -C - integer ifid(6) - character*48 cifid - integer mskrhs - data mskrhs / X'00000000FFFFFFFF' / - INTEGER KDOTSISP - DATA KDOTSISP / X'2F2F2F2F00000000' / - - integer lendmap - data lendmap / X'33' / - integer lendline - data lendline / X'30' / -C - integer lonecode -C - integer LCKPT - integer nrectemp -C - integer kbitpgrp - data kbitpgrp / 6 / - - integer kpadbits - data kpadbits / 0 / -C ... which are args to CGYTES() ... - integer kbitpx6b - data kbitpx6b / 8 / - integer noffsetx6b - data noffsetx6b / 0 / -C ... which are args to SBYTESCCS ... -C - integer msk6fs - integer kstart - integer kisched - integer kendall - - data msk6fs / X'FFFFFF0000000000' / - data kstart / X'FFFFFF0000000000' / - data kisched / X'FFFFFD0000000000' / - data kendall / X'FFFFFC0000000000' / -C - character*4 cmd_pur - - SAVE - -C ... I am changing return codes from what it used to be ... - jretn = 0 - icountEOL = 0 - ngrps2do = 0 - LCURRGRP = 0 - - IF(LFIRSTQ) THEN - idibyt = 0 - do i = 1,lmtndibyt - longlinwrk(i) = 0 - enddo - LFIRSTQ = .FALSE. - ENDIF - - if(nbyt_skip .LT. 0 .or. nbyt_skip .GT. kgrpin) then - write(6,105)NBYT_SKIP - 105 format(' scan1440: FAILED on bad value for NBYT_SKIP=',I9) - jretn = -3 - go to 999 - endif -C - 200 continue - - - if(iand(ieor(inbuf(1),kstart),msk6fs) .eq. 0) then -C ... found a start of map ... - - write(6,215)numrec - 215 format(' scan1440: found start-of-map at Rec. No. =',I7) -C ... try to decode the IFID zone in the first rec of map ... - do i = 1,6 - ifid(i) = inbuf(i) - enddo - ifid(1) = iand(ifid(1),mskrhs) - ifid(1) = ior(ifid(1),KDOTSISP) -C ... which overwrote the FFFFFF00 in the lhs, with dots -C ... convert ifid from CDC display code into ASCII; - - CIFID(1:) = ' ' - - write(6,217)cifid(1:48) - 217 format(' IFID="',A,'"') - -C ... On first record, of map -C ... spread it out, just like an interior record - noffset = 0 - ngrps2do = kgrpin -C ... where (kgrpin = kbytin*8/6) = 1920 groups per rec. -C - Call GBYTES(inbuf,jjmapin,noffset,kbitpgrp,kpadbits,ngrps2do) -C -C ... from here I will return w/ (jjmapin(i),i=1,ngrps2do) -C ... containing the extended 6-bit code from one record read - JRETN = 1 - go to 300 - - else if(iand(ieor(inbuf(1),kisched),msk6fs) .eq. 0) then -C ... found isched rec at end of map ... -C ... In this application, I should not be here; - write(6,225)numrec - 225 format(' scan1440: found ISCHED endmap at Rec. No. =',I7) - -C ... but user must not expect raster data returned - JRETN = -1 - go to 999 - - else if(iand(ieor(inbuf(1),kendall),msk6fs) .eq. 0) then -C ... found end of all maps ... - write(6,235)numrec - 235 format(' scan1440: found end-of-all-maps at Rec. No. =',I7) - jretn = -2 - go to 999 - - - else -C ... here is interior raster-data rec. with no header ... -C ... On interior records, - noffset = 0 - ngrps2do = kgrpin -C ... where (kgrpin = kbytin*8/6) = 1920 groups per rec. -C - Call GBYTES(inbuf,jjmapin,noffset,kbitpgrp,kpadbits,ngrps2do) -C -C ... from here I will return w/ (jjmapin(i),i=1,ngrps2do) -C ... containing the extended 6-bit code from one record read - go to 300 - - endif - go to 999 - - 300 continue -C ... count the End-of-scanlines in interval -C ... jjmapin(nbyt_skip+1,kgrpin) - icountEOL = 0 - m1 = nbyt_skip + 1 - m2 = m1 + 15 - if(m2 .GT. kgrpin) then - m2 = kgrpin - endif - IF(LCHKPRT) THEN - write(6,304)m1,kgrpin - 304 format(' scan1440: scan from jjmapin(',I6,') to (',I6,')') - write(6,305)(jjmapin(i),i=m1,m2) - 305 format(16Z4.2) - ENDIF - do iby = m1,kgrpin - lonecode = jjmapin(iby) - if(lonecode .EQ. lendmap) then - - write(6,315)iby,ngrps2do - 315 format(' scan1440: Found end-of-a-map flag at byte(',I5, - 1 ') of',I5) - write(6,335)icountEOL,numrec - JRETN = -5 - go to 999 - else if(lonecode .EQ. lendline) then - if(idibyt .LT. lmtndibyt) then - idibyt = idibyt + 1 - longlinwrk(idibyt) = lonecode - icountEOL = icountEOL + 1 - endif -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . when it hits end-of-scanline, then process line - cmd_pur(1:4) = 'conv' - call vx6b_pur(cmd_pur,longlinwrk,idibyt,iret_pur) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - idibyt = 0 - - else -C ... NOT A CONTROL DI-BYTE; ASSUME RLE CODE DATA, - if(idibyt .LT. lmtndibyt) then - idibyt = idibyt + 1 - longlinwrk(idibyt) = lonecode - endif - endif - enddo - 333 continue - IF(LCHKPRT) THEN - write(6,335)icountEOL,numrec - 335 format(' scan1440: end-of-scanlines count=',I6, - 1 '; in rec. no.',I6) - ENDIF - - go to 999 -C ... which returns to user -C ... who will call me again when she wants another input record -C ... unpacked - - -C ---------------------------------------------------------------- -C - 999 continue - RETURN - END -c********************************************************************** - subroutine strpfnam(lwr_or_upr,c1name,nc,cnamtxt,nchres,iretn) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C subprogram: strpfnam strip filename -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-07-10 -C -C ABSTRACT: filename stripper. used to extract the innermost name, -c without the extent name and without the pathname. -C -C PROGRAM HISTORY LOG: -c 95-08-29 shimomura -c 98-08-11 caruso upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: call strpfnam(lwr_or_upr,c1name,nc,cnamtxt,nchres,iretn) -c -C INPUT ARGUMENT LIST: -C lwr_or_upr - integer =0 for no change in Case; -C =1 change to Lower Case; -C =2 change to Upper Case ) -c c1name - char*1 name array -c nc - integer array size of c1name -c -c output argument list -c cnamtxt - char array with filename -c nchres - integer number of chars in resultant string -c iretn - return code -c = 0 for normal return -C = 1 if text string for results is undefined -C = 2 if nc dimension of given string is <=0 -C = 3 if given text is all blanks -C = 4 if given text is bad. NULL before any good. -C did you put anything into c1name? -C = 5 if I am lost. impossible. -C = 6 if given text has no good portion in it. -C did you end with a special character? -c -c remarks: -C ... copied ~/tools/stripfinam.f into ~/cra/bg/strpfnam.f -C ... in order to make a CRAY version. -C -C ... called from SIF cmd84A to strip the given filename of -C ... superfluous info and extract only the unqualified name. -C Hypotheses: SIF cmd84A wants the unqualified filename -C with no extent; no directory names; no leading nor -C trailing blanks; limited to 12 alphanumeric characters -C of which only the first 9 characters will actually be -C used. Note: only alphanumerics are allowed. No underbars. -C (Underbar permitted in CRAY version of 950829) -C Also, this subroutine will set the alphanumerics to upper- -C case. -C (Case change is an option in CRAY version of 950829. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ -C -C -C ... calls on logical function isalpha(c) - external isalpha - logical isalpha -C ... for logical function isalpha ... - -C - integer lwr_or_upr !...=1 lwr; =2 upr; else unchgd - character*1 c1name(nc) - character*(*) cnamtxt - integer iretn -C - logical lfoundext - character*1 chone -C - character*1 underbar - data underbar / '_' / - - character*1 NULL - - save -C - NULL = char(0) - - iretn = 0 - nchres = 0 - limres = len(cnamtxt) - if(limres .le. 0) then - iretn = 1 - go to 999 - endif -C - cnamtxt = NULL - limgivn = nc - if(limgivn .le. 0) then - iretn = 2 - go to 999 - endif -C -C ... scan given string for any leading blanks ... - - m1 = 1 - do i = 1,limgivn - chone = c1name(i) - if(chone .eq. NULL) go to 900 - if(chone .ne. ' ') go to 200 - -C ... which jumps out of this loop on very first non-blank char -C ... otherwise, this ith char is a leading blank, - - m1 = i + 1 - enddo - -C ... if it falls thru this do, then given string was all blanks - - iretn = 3 - go to 999 - -C ... otherwise, first non-blank char at c1name(m1) - - 200 continue - -C .. when it comes here, m1 points to first non-blank char in c1name -C ... so scan for other end of string that starts at c1name(m1) - - m2 = m1 - do i = m1,limgivn - chone = c1name(i) - if(chone .eq. NULL .or. chone .eq. ' ') go to 300 - -C ... normal end of string if NULL or blank terminated, -C ... m2 pointing at last good char before the terminator -C ... otherwise, this ith char is non-blank non-NULL - - m2 = i - enddo - -C ... if it falls thru this do, then given string fill out to -C ... limgivn with non-blank characters - - 300 continue - -C ... examine the string from c1name(m1) to (m2) for good stuff - - ncha = m2 - m1 + 1 - if(ncha .le. 0) go to 910 - -C ... logic error. cannot be -C -C ... look for extent_name behind the last period - - lfoundext = .false. - locstart = m2 - locterm = m2 + 1 - do ir = m2,m1,-1 - chone = c1name(ir) - if((isalpha(chone)) .OR. - 1 (chone .EQ. underbar)) then - -C ... good one ... - - locstart = ir - - else - -C ... here is the non-alphanumeric I was afraid I'd find - - if (.not. lfoundext) then - if (chone .eq. '.') then - lfoundext = .true. - locterm = ir - -C ... where locterm points at the '.' before the extent - - else - -C ... the special char is not a '.', so terminate scan - - locstart = ir + 1 - go to 400 - endif - else - -C ... comes here on a special char after I had already -C ... reset for extent name, so terminate scan - - locstart = ir + 1 - go to 400 - endif - endif - enddo - 400 continue - -C ... comes here with good stuff bounded by locstart:(locterm-1) - - locstop = locterm - 1 - ngood = locterm - locstart - if(ngood .le. 0) go to 920 - -C ... can i pass all the good stuff to results string? -C ... n2do is lesser of limres and ngood and 12 - - n2do = min(ngood,limres,12) - do i = 1,n2do - ll = locstart + i - 1 - chone = c1name(ll) - if(lwr_or_upr .EQ. 1) then - -C ... lower_case it ... - - if(llt(chone,'A') .or. lgt(chone,'Z')) then - cnamtxt(i:i) = chone - else - -C ... chone is an Upper_case ltr, so lower it, - - cnamtxt(i:i) = char(mova2i('a') - mova2i('A') + - 1 mova2i(chone)) - endif - else if(lwr_or_upr .EQ. 2) then - -C ... upper_case it ... - - if(lge(chone,'a') .and. lle(chone,'z')) then - cnamtxt(i:i) = char(mova2i('A') - mova2i('a') + - 1 mova2i(chone)) - else - cnamtxt(i:i) = chone - endif - else - -C ... leave _case unchanged ... - - cnamtxt(i:i) = chone - endif - enddo - nchres = n2do - if(n2do .lt. limres) then - cnamtxt(n2do+1:n2do+1) = NULL - -C ... which puts a NULL terminator if there is space ... - - endif - go to 999 -C - 900 continue - iretn = 4 - go to 999 - 910 continue - iretn = 5 - go to 999 - 920 continue - iretn = 6 - go to 999 -C - 999 continue - return - end -c********************************************************************** - subroutine vx6b_pur(cmd_pur,longlinwrk,ndimen,iret_pur) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C subprogram: vx6b_pur decode nmc 6-git rle code -C PRGMMR: SHIMOMURA ORG: W/NMC41 DATE: 95-07-10 -C -C ABSTRACT: decoder of one very-extended NMC 6-bit RLE code -C called from scan1440() which is within Program fxcompos -C -C PROGRAM HISTORY LOG: -c 96-08-21 shimomura -c 98-08-11 caruso removed CDIR$ INTEGER=64 from top of this code. -c upgrading to fortran 90 and making y2k-compliant. -c adding docblock. -C -C USAGE: call vx6b_pur(cmd_pur,longlinwrk,ndimen,iret_pur) -c -C INPUT ARGUMENT LIST: -c cmd_pur - char. if = 'init', initialize. if = 'conv', decode -c longlinwrk - integer array to be decoded -c ndimen - integer size of longlinwrk -c -c output argument list -c iret_pur - return code -c -c remarks: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -c -c$$$ -C - integer nbytpwrd - parameter (nbytpwrd=8) - - integer lmtnpels - parameter (lmtnpels=4224) !... used to be 4192 - integer lmtndibyt - parameter (lmtndibyt=lmtnpels/4) !... =1056 di-bytes -C - integer lmtpurbyt - parameter (lmtpurbyt=lmtnpels/8) !... =528 bytes - integer lmtpurwrd - parameter (lmtpurwrd=lmtpurbyt/8) !... =66 longwords -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - character*4 cmd_pur - integer longlinwrk(ndimen) - integer iret_pur -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C ============================================================== - INTEGER IMAXWIDWRD - PARAMETER (IMAXWIDWRD=27) !...27*64 = 1728 PELS WIDE - INTEGER JMAXHGTLNS - PARAMETER (JMAXHGTLNS=7500) - - COMMON /SPAC4IMG/ NPELS_WID, NLNS_NEED, JLNADDCON, JLN_CURR, - 1 IMAGE(IMAXWIDWRD,JMAXHGTLNS) - -C ============================================================== - INTEGER IMAXWIDBYT - PARAMETER (IMAXWIDBYT=8*IMAXWIDWRD) !... 8*27 = 216 BYT - integer i8purfax(IMAXWIDWRD) !... 27 wrd = 1728 pels - character*1 c1purfax(IMAXWIDBYT) !... 216 byt = 1728 pels - equivalence (i8purfax(1),c1purfax(1)) - - character*1 linex6b(lmtndibyt) - - integer i8pure(lmtpurwrd) - character*1 c1pure(lmtpurbyt) !...dcdArg6 - equivalence (i8pure(1),c1pure(1)) -C - integer keos - data keos / X'30' / - - integer kframe1 - data kframe1 / X'F000000000000000' / - - integer kpadbits - data kpadbits / 0 / - integer kbitpx6b - data kbitpx6b / 8 / - integer noffsetx6b - data noffsetx6b / 0 / -C ... which are args to SBYTESCCS ... -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . Args in call to dcdlnx6b() . . . . . . . . . . . -C ... character*1 linex6b(lmtndibyt) !... Arg1 - integer nchs !...dcdArg2 given data byte count -C in given linex6b() array - logical ldubl !...dcdArg3 - integer nskpdib !...dcdArg4 skip off of FAX edge - integer npeltot !...dcdArg5 result -C !...dcdArg6 is C1PURE for results - integer kbytpur !...dcdArg7 = 216 = given -C dimension of c*1 C1PURE() - integer iret_pel !...dcdArg8 resulting err_flag -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - LOGICAL LFRAMEQQ - integer linum_part - integer indent_src - integer iwidth_src - integer jhgt_src - integer itoss_src - - integer npxlperbyt - integer npxldo - integer npxldoing - integer nwdout - integer nritshfbyt - integer ibytdes - integer nbyt2mov - logical checkout - logical lchkprntq - character*1 cxff - - SAVE - - iret_pur = 0 - cxff = char(255) !... = X'FF' - - checkout = .TRUE. - if(cmd_pur(1:4) .EQ. 'init') then -C ... in this initialization call for this part, -C ... longlinwrk contins the iplotarg for this part - - - linum_part = 0 - j0val_dst = longlinwrk(3) - indent_dst = longlinwrk(4) - jhgt_src = longlinwrk(6) - indent_src = longlinwrk(11) - iwidth_src = longlinwrk(5) - - itoss_src = 1728 - indent_src - iwidth_src - if(itoss_src .LT. 0) then - itoss_src = 0 - endif -C ... where itoss_src is no. of pels to discard from the fax edge -C ... of the complete scanline, to get to the portion for keep - nskpdib = itoss_src / 4 !... in 4-bit groups - - ldubl = .false. - if(longlinwrk(13) .NE. 0) then - ldubl = .TRUE. - endif - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... the LDUBL option is resulting in blank map; -C ... so let us disable the doubling, just to see if it will flow - -C ... ldubl = .false. -C -C ... that mod was effective in producing the cut, undoubled, -C ... which was better than the blank subset it produces -C ... without that patch; -C ... But to let me debug the faulty ldubl, comment that patch -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - if(LDUBL) then - npxlperbyt = 4 !... only 4 original pels, expanded,/byt - else - npxlperbyt = 8 - endif - - npxldo = iwidth_src - - kbytpur = npxldo/npxlperbyt -C ... where npxlperbyt == 8; for usual case -C == 4; for LDUBLing case -C ... npxlperbyt is number of original pxls which go into -C ... a byte of fnl pure -C ... where kbytpur is the number of bytes of pure raster -C ... to be generated from the source width cut - - if(mod(npxldo,npxlperbyt) .NE. 0) then - kbytpur = kbytpur + 1 - endif - - npxldoing = npxldo - if(kbytpur .GT. lmtpurbyt) then -C ... character*1 c1pure(lmtpurbyt) !...dcdArg6 -C ... kbytpur is too big for dimension of C1pure(); so reset - kbytpur = lmtpurbyt - npxldoing = npxlperbyt * kbytpur - endif - - nwdout = kbytpur / nbytpwrd - if(mod(kbytpur,nbytpwrd) .NE. 0) then - nwdout = nwdout + 1 - endif - - write(6,FMT='(/,'' vx6b_pur: at INIT, pure-raster '', - 1 ''scanline-length in bytes in KBYTPUR='',I5, - 2 /,'' which will contain pixel '', - 3 ''count in NPXLDOING='',I6, - 4 /,'' output longwords per scanline='', - 5 I4)') - A kbytpur,npxldoing,nwdout - - - LFRAMEQQ = .FALSE. - if(longlinwrk(12) .NE. 0) then - LFRAMEQQ = .TRUE. - endif - - iwidsrcpxl = iwidth_src - if(LDUBL) then - iwidsrcpxl = 2*iwidsrcpxl - endif - nritshfbyt = (1728 - indent_dst - iwidsrcpxl)/8 - if(nritshfbyt .LT. 0) then - nritshfbyt = 0 - endif - - ibytdes = nritshfbyt + 1 -C ... where c1purfax(ibytdes) is pointing to the image byte -C ... from which to start storing the one resulting pure line -C ... where ibytdes=1 is the FAX edge byte. -C - nbyt2mov = kbytpur - if((ibytdes - 1 + nbyt2mov) .GT. IMAXWIDBYT) then - nbyt2mov = IMAXWIDBYT + 1 - ibytdes - endif - write(6,175)nbyt2mov,ibytdes,kbytpur,nritshfbyt,indent_dst, - 1 iwidth_src - 175 format(' vx6b_pur: at end of "init", nbyt2mov=',I5, - 1 '; ibytdes=',I5, - 2 /,7X,'kbytpur=',I5,'; nritshfbyt=',I5, - 3 'indent_dest=',I5,'; iwidth_src=',I5) - - go to 999 -C - endif - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... otherwise, case of decode the given one scanline -C ... from very-extended 6-bit into pure uncompressed; -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - linum_part = linum_part + 1 - if(linum_part .GT. jhgt_src) then -C ... accept no more data ... we have satisfied this part - iret_pur = 1 - go to 999 - endif - - if(mod((linum_part-1),100) .EQ. 0) then - lchkprntq = .true. - else - lchkprntq = .false. - endif - - do i = 1,lmtpurwrd - i8pure(i) = 0 - enddo - - if(ndimen .LE. 0) then -C ... no data given; assume blank scanline - go to 333 - else if(longlinwrk(1) .EQ. keos) then -C ... blank scanline - go to 333 - endif -C -C 1 2 3 4 -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (linex6b, 8_8, ndimen) -#endif - call SBYTESCCS(linex6b,longlinwrk,noffsetx6b,kbitpx6b, - 1 kpadbits,ndimen) -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (linex6b, 8_8, ndimen) - CALL SWAP_BYTES_IN_PLACE (longlinwrk, 8_8, ndimen) -#endif -C 5 6 - nchs = ndimen -C ... now one entire scanline in x6b format is in -C ... C*1 (linex6b(i),i=1,nchs) the way I am accustomed to -C - call dcdlnx6b(lchkprntq,linex6b,nchs,ldubl,nskpdib,npeltot, - 1 c1pure,kbytpur,iret_pel) - - if(lchkprntq) then - write(6,315)iret_pel,linum_part,NCHS,LDUBL,nskpdib,npeltot, - 1 KBYTPUR - 315 format(' vx6b_pur::dcdlnx6b: iret_pel=',I5, - 1 '; on part,s scanline no.=',I6, - 2 /,7X,'NCHS=',I6,'; LDUBL= .',L1,'. nskpdib=',I5, - 3 '; npeltot=',I6,'; KBYTPUR=',I6) - iorsum = 0 - do i = 1,27 - iorsum = ior(iorsum,i8pure(i)) - enddo - if(iorsum .eq. 0) then - write(6,317) - 317 format(7X,' . . . Resulting line is all zero . . . . .') - endif - ENDIF - - if(iret_pel .NE. 0) then - if(iret_pel .LT. 0) then -C ... serious error; so stop - write(6,FMT='('' vx6b_pur::dcdlnx6b: scanline no.'',I6, - 1 ''; FATAL ERROR code='',I4)') - A linum_part,iret_pel - - iret_pur = -9 - go to 999 - else -C ... warning from dcdlnx6b, - if(checkout) then - write(6,FMT='('' vx6b_pur::dcdlnx6b: scanline no.'',I6, - 1 ''; WARNING code='',I4)') - A linum_part,iret_pel - - endif - endif - endif - - 333 continue -C ... add FRAME here into c1pure ... - if(LFRAMEQQ) THEN - if((linum_part .LE. 4) .OR. - 1 (linum_part .GT. (jhgt_src - 4))) then - do ic = 1,kbytpur - c1pure(ic) = cxff - enddo - else -C ... this framed line is not near bottom or top of part - i8pure(1) = ior(i8pure(1),kframe1) - c1pure(kbytpur) = cxff - endif - endif -C ... other top and bottom sides coming later ... - -C ... how to position a real inset on half of the image line? - - do i = 1,IMAXWIDWRD - i8purfax(i) = 0 - enddo - - if(lchkprntq) then - write(6,535)nbyt2mov,ibytdes - 535 format(' vx6b_pur: moving ',I5,'-bytes from c1pure(1) to ', - 1 'c1purfax(',I5,')') - endif - - if((ibytdes - 1 + nbyt2mov) .GT. IMAXWIDBYT) then - nbyt2mov = IMAXWIDBYT + 1 - ibytdes - endif - if (ibytdes .LT. IMAXWIDBYT -1) then - call xmovex(c1purfax(ibytdes),c1pure(1),nbyt2mov) - endif - -C ... only for checkout of the bad doubling case to force full line -C ... call xmovex(c1purfax(1),c1pure(1),216) - -C ... ... how to put c1purfax into the image bitplane? - if(LDUBL) then - linumout = 2*linum_part - 1 - jln_curr = j0val_dst + linumout + jlnaddcon - 1 - do iw = 1,imaxwidwrd - image(iw,jln_curr) = ior(image(iw,jln_curr),i8purfax(iw)) - enddo - -C ... repeat that image line on the following line -C ... jln_curr = j0val_dst + (2*linum_part) + jlnaddcon - 1 - jln_curr = jln_curr + 1 - do iw = 1,imaxwidwrd - image(iw,jln_curr) = ior(image(iw,jln_curr),i8purfax(iw)) - enddo - - else -C ... for the usual un-doubled case, - jln_curr = j0val_dst + linum_part + jlnaddcon - 1 - do iw = 1,imaxwidwrd - image(iw,jln_curr) = ior(image(iw,jln_curr),i8purfax(iw)) - enddo - - endif -C - 999 continue - return - end diff --git a/util/sorc/fxcompoz.fd/fxcompozz b/util/sorc/fxcompoz.fd/fxcompozz deleted file mode 100755 index 80d616b13d..0000000000 Binary files a/util/sorc/fxcompoz.fd/fxcompozz and /dev/null differ diff --git a/util/sorc/fxcompoz.fd/makefile b/util/sorc/fxcompoz.fd/makefile deleted file mode 100755 index 29a44a10bb..0000000000 --- a/util/sorc/fxcompoz.fd/makefile +++ /dev/null @@ -1,31 +0,0 @@ -CC = icc -CFLAGS = -DUNDERSCORE -O -g -traceback - -FC = ifort -FFLAGS = -C -D_LITTLE_ENDIAN -fixed -O -g -traceback -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -OBJ = close99.o \ - fxcompozlib.o \ - open99.o \ - rd1byt99.o \ - reposi99.o \ - rewind99.o \ - wheren99.o - -LIBS = ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -fxcompoz: fxcompoz.o $(OBJ) - $(FC) -o $@ $(FFLAGS) fxcompoz.o $(OBJ) $(LIBS) - -clean: - /bin/rm -f *.o - -.c.o: - $(CC) -c $(CFLAGS) $< - -.F.o: - $(FC) -c $(FFLAGS) $< - -.f.o: - $(FC) -c $(FFLAGS) $< diff --git a/util/sorc/fxcompoz.fd/open99.c b/util/sorc/fxcompoz.fd/open99.c deleted file mode 100755 index 2b392ae608..0000000000 --- a/util/sorc/fxcompoz.fd/open99.c +++ /dev/null @@ -1,82 +0,0 @@ -/* long function open99.c */ -/* ... to open stream input file */ -/* ... for reading a word at a time */ -/* a FORTRAN callable function */ -/* The long which is returned is the return code */ -/* return code = 0 for normal successful open - = 1 for failure due to out-of-bounds luni - =-1 for failure from fopen() */ - -/* #include */ -#include -#include -#include - -/* ... #include ... */ -/* COMMON FILE PARAMETERS */ - FILE *ftxx[100] ; -/* ========================================================== */ -#ifdef UNDERSCORE -long long open99_(luni, cfinam, ciomode) -#else -long long open99(luni, cfinam, ciomode) -#endif -long long *luni; -char *cfinam; -char *ciomode; -{ -/* COMMON FILE PARAMETERS */ - extern FILE *ftxx[100] ; - - FILE *file_pointer ; - FILE *fopen(); - long long iopnretn; - long long iunit; - long long maxuni = 99; - - long namelen, - modelen; - - char *nstring, - *mstring; - - - namelen = strlen(cfinam); - nstring = malloc(namelen+1); - strncpy(nstring, cfinam, namelen); - nstring[namelen] = '\0'; - - modelen = strlen(ciomode); - mstring = malloc(modelen+1); - strncpy(mstring, ciomode, modelen); - mstring[modelen] = '\0'; - - - iunit = *luni ; -/* printf("\n open99 input unit value %ld\n", iunit); */ - if(iunit <= 0 || iunit > maxuni) - { - fprintf(stderr,"\n open99:failed on given invalid luni\n"); - iopnretn = 1; - } - else - { - - file_pointer = fopen(nstring,mstring); -/* ... file_pointer = fopen("/usr/home/shimomur/afsfcplt.dat","r"); */ - ftxx[iunit] = file_pointer ; - if (file_pointer == NULL) - { -perror("fopen() failed"); - fprintf(stderr,"\n open99:failed to open file %ld\n", iunit); - iopnretn = -1; - } - else - { - printf("\n open99:successfully opened file %ld\n", iunit); - iopnretn = 0; - } - } -/* printf("\n open return value %ld\n", iopnretn); */ - return(iopnretn); -} diff --git a/util/sorc/fxcompoz.fd/rd1byt99.c b/util/sorc/fxcompoz.fd/rd1byt99.c deleted file mode 100755 index 78225632ff..0000000000 --- a/util/sorc/fxcompoz.fd/rd1byt99.c +++ /dev/null @@ -1,76 +0,0 @@ -/* long long function rd1byt99.c 5-Jun-1996/dss */ -/* ... mods for CRAY4 system upgrade version 9.0.2 of 3-Jun-1996 */ -/* ... #include ... removed from CRAY version */ -/* long long function rd1byt99(luni,numbyts,c1array,nbytsred) - ... to read one or more words from file opened by open99 ... */ -/* ... The long long that is returned is a return code */ -/* ... return code = 0 if normal read - = 1 if bad value given for luni - = -1 if EOF - = -2 if ERR ... */ -/* #include */ -#include -#ifdef UNDERSCORE -long long rd1byt99_(luni,numbyts,c1array,nbytsred) -#else -long long rd1byt99(luni,numbyts,c1array,nbytsred) -#endif -long long *luni ; -long long *numbyts; -char *c1array; /* ... char c1array[]; ... */ -long long *nbytsred; -{ -/* COMMON FILE PARAMETERS */ - extern FILE *ftxx[100] ; - - - FILE *file_pointer ; - long long irdretn; -/* ... char* ptr; ... */ - static long long n_chars = 1; - long long n_items; - long long iretn; - long long i; - long long iunit; - long long maxuni = 99; - -/* . . . S T A R T . . . */ - - iunit = *luni ; -/* printf("\n rd1byt99 input unit value %ld\n", iunit); */ - if(iunit <= 0 || iunit > maxuni) - { - fprintf(stderr,"\n rd1byt99:failed on given invalid luni\n"); - *nbytsred = 0 ; - iretn = 1 ; - } - else - { - file_pointer = ftxx[iunit] ; - n_items = *numbyts; -/* ... ptr = (char*)c1array; ... */ -/* ... how to test for end-of-file on input? irdretn=0 */ - - irdretn = fread(c1array,n_chars,n_items,file_pointer); -/* ... irdretn = fread(ptr,n_chars,n_items,file_pointer); ... */ - - if(irdretn != 0) { /* ... then, good read ... */ - iretn = 0; /* ... normal retn = 0 */ - } /* ... endif on good read ... */ - else - { /* ... else, bad fread ... */ - if(feof(file_pointer)) - { /* ... then this is EOF ...*/ - iretn = -1; /* ... End Of File retn = -1 ... */ - } - else - { - perror("fread() failed"); - iretn = -2; - } - } - *nbytsred = irdretn; - } -/* printf("\n rd1byt99 return value %ld\n",iretn ); */ - return (iretn); -} diff --git a/util/sorc/fxcompoz.fd/reposi99.c b/util/sorc/fxcompoz.fd/reposi99.c deleted file mode 100755 index bc2dfe14e1..0000000000 --- a/util/sorc/fxcompoz.fd/reposi99.c +++ /dev/null @@ -1,65 +0,0 @@ -#include -/* ... #include ... */ -/* long long function reposi99(luni,byte_offset,from_indx) - ... to reposition the pointer within the file opened by open99... */ -/* ... The long long that is returned is a return code */ -/* ... return code = 0 if normal return - = 1 if bad value given for luni - = 2 if bad value given for from_indx - - ... from_indx is to tell me the base position from which to - to apply the byte_offset; - ... acceptable values for from_indx are 0,1, or 2: - from_indx=0 from beginning of file - =1 from current position in file - =2 from end of file - ... */ -#ifdef UNDERSCORE -long long reposi99_(luni,byte_offset,from_indx) -#else -long long reposi99(luni,byte_offset,from_indx) -#endif -long long *luni ; -long long *byte_offset; -long long *from_indx; -{ -/* COMMON FILE PARAMETERS */ - extern FILE *ftxx[100] ; - - - FILE *file_pointer ; - long long isekrtn; - long long offset; - long long indicator; - long long iretn; - long long iunit; - long long maxuni = 99; - -/* . . . S T A R T . . . */ - - offset = *byte_offset; - indicator = *from_indx; - iunit = *luni ; -/* printf("\n reposi99 input unit value %ld\n", iunit); */ - if(iunit <= 0 || iunit > maxuni) - { - fprintf(stderr,"\n reposi99:failed on given invalid luni\n"); - iretn = 1 ; - } - else if(indicator < 0 || indicator > 2) - { - fprintf(stderr,"\n reposi99:failed on"); - fprintf(stderr," given invalid from_indx=%lld.\n",indicator); - iretn = 2 ; - } - else - { - file_pointer = ftxx[iunit] ; - -/* ... how to test for bad result of seek? I won't test */ - isekrtn = fseek(file_pointer,offset,indicator); - iretn = 0; /* ... normal retn = 0 */ - } -/* printf("\n reposi99 return value %ld\n", iretn); */ - return (iretn); -} diff --git a/util/sorc/fxcompoz.fd/rewind99.c b/util/sorc/fxcompoz.fd/rewind99.c deleted file mode 100755 index 23027fb2ae..0000000000 --- a/util/sorc/fxcompoz.fd/rewind99.c +++ /dev/null @@ -1,45 +0,0 @@ -#include -/* ... #include ... */ -/* long long function rewind99(luni) - ... to rewind the file opened by open99 ... */ -/* ... The long long that is returned is a return code */ -/* ... return code = 0 if normal return - = 1 if bad value given for luni - ... */ -#ifdef UNDERSCORE -long long rewind99_(luni) -#else -long long rewind99(luni) -#endif -long long *luni ; -{ -/* COMMON FILE PARAMETERS */ - extern FILE *ftxx[100] ; - - - FILE *file_pointer ; - long long irewrtn; - long long iretn; - long long iunit; - long long maxuni = 99; - -/* . . . S T A R T . . . */ - - iunit = *luni ; -/* printf("\n rewinf99 input unit value %ld\n", iunit); */ - if(iunit <= 0 || iunit > maxuni) - - { - fprintf(stderr,"\n rewind99:failed on given invalid luni\n"); - iretn = 1 ; - } - else - { - file_pointer = ftxx[iunit] ; -/* ... how to test for good rewind? I will not test */ - irewrtn = fseek(file_pointer,0L,0); - iretn = 0; /* ... normal retn = 0 */ - } -/* printf("\n rewind99 return value %ld\n", iretn); */ - return (iretn); -} diff --git a/util/sorc/fxcompoz.fd/wheren99.c b/util/sorc/fxcompoz.fd/wheren99.c deleted file mode 100755 index f8ea4b9a9e..0000000000 --- a/util/sorc/fxcompoz.fd/wheren99.c +++ /dev/null @@ -1,49 +0,0 @@ -#include -/* ... #include ... removed fr CRAY version */ -/* long long function wheren99(luni,byte_offset) - ... to locate where_am_I in the file opened by open99... */ -/* ... The long long that is returned is a return code */ -/* ... return code = 0 if normal return - = 1 if bad value given for luni - - ... */ -#ifdef UNDERSCORE -long long wheren99_(luni,byte_offset) -#else -long long wheren99(luni,byte_offset) -#endif -long long *luni ; -long long *byte_offset; /* for resulting ptr in bytes */ -{ -/* COMMON FILE PARAMETERS */ - extern FILE *ftxx[100] ; - - - FILE *file_pointer ; - long long ibyt_ptr; - long long iretn; - long long iunit; - long long maxuni = 99; - -/* . . . S T A R T . . . */ - - ibyt_ptr = 0 ; - iunit = *luni ; -/* printf("\n wheren99 input unit value %ld\n", iunit); */ - if(iunit <= 0 || iunit > maxuni) - { - fprintf(stderr,"\n wheren99:failed on given invalid luni\n"); - iretn = 1 ; - } - else - { - file_pointer = ftxx[iunit] ; - -/* ... how to test for bad result of ftell? I won't test */ - ibyt_ptr = ftell(file_pointer); - iretn = 0; /* ... normal retn = 0 */ - } - *byte_offset = ibyt_ptr ; - printf("\n wheren99 return value %ld\n", iretn); - return (iretn); -} diff --git a/util/sorc/gendata.fd/addlab.f b/util/sorc/gendata.fd/addlab.f deleted file mode 100755 index 0271aba145..0000000000 --- a/util/sorc/gendata.fd/addlab.f +++ /dev/null @@ -1,172 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: ADDLAB CREATE AFOS LABELS -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 98-04-22 -C -C ABSTRACT: ADDLAB CREATES THE THREE HEADER LABELS THAT BEGIN -C THE AFOS SURFACE PLOTFILE. -C -C PROGRAM HISTORY LOG: -C -C 96-12-10 LARRY SAGER -C -C 98-04-22 BOB HOLLERN, MADE THE ROUTINE Y2K COMPLIANT -C -C USAGE: CALL ADDLAB (OAFOS, CDAT, CHEDA, XHED) -C -C INPUT ARGUMENT LIST: -C OAFOS - BLOCK OF PACKED OBSERVATIONAL DATA -C CDAT - DATE/TIME OF RUN -C CHEDA - DATE INFO -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C XHED - THE LABELS -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE ADDLAB (OAFOS, CDAT, CHEDA, XHED) -C - INTEGER ITM(8), JTM(8) -C - CHARACTER*1 OAFOS(*) - CHARACTER*1 OWORK(10) - CHARACTER*1 OLIN(100) - CHARACTER*1 OXLN(60) -C - CHARACTER*10 CDAT, CWORK -C - CHARACTER*8 CNMC - CHARACTER*8 CTEMP - CHARACTER*9 CBYT - CHARACTER*10 CHEDA -C - CHARACTER*4 FMON(12), WDAY(7), CDAY -C - CHARACTER*100 LINE - CHARACTER*60 XLINE - CHARACTER*100 XHED -C - EQUIVALENCE(OWORK,CWORK) - EQUIVALENCE(OWORK,IWORK) - EQUIVALENCE(OLIN,LINE) - EQUIVALENCE(OXLN,XLINE) -C - DATA LINE(1:17) /'1260,0074,00000Z,'/ - DATA FMON /'JAN ','FEB ','MAR ','APR ','MAY ','JUN ', - 1 'JUL ','AUG ','SEP ','OCT ','NOV ','DEC '/ - DATA IEND /Z'3B0D0A2020202020'/ - DATA ISEC /Z'5A2C202020202020'/ - DATA IOPN /Z'010040007F003000'/ - DATA CNMC /'NMCPLT00'/ - DATA IBYT /Z'1B10040000000000'/ - DATA IFIL /Z'C580202020202020'/ - DATA XLINE(11:46)/'A0010200020481536285014250097501688'/ - DATA LINE(46:70) /' N.AMER. SURFACE OBS.CRA '/ - DATA ICYC /0/ -C - DATA WDAY / 'SUN ', 'MON ', 'TUE ', 'WED ', 'THU ', 'FRI ', - A 'SAT '/ -C -C START WITH THE DATE. -C - CWORK = CDAT -C - READ(CWORK,100) IYR, IMT, IDY, IHR - 100 FORMAT ( I4, 3I2 ) -C - JTM(1) = IYR - JTM(2) = IMT - JTM(3) = IDY - JTM(4) = 0 - JTM(5) = IHR - JTM(6) = 0 - JTM(7) = 0 - JTM(8) = 0 -C -C GET INTEGER DAY OF WEEK - CALL W3DOXDAT( JTM, JDOW, JDOY, JDAY ) -C - CDAY = WDAY(JDOW) -C -C GET UTC DATE/TIME DATA - CALL W3UTCDAT( ITM ) -C - ITE = (100*ITM(5)) + ITM(6) - CALL BIN2CH(ITE,CTEMP,8,'A99') -C -C CREATE THE LABELS -C - IWORK = IOPN - call byteswap(iwork,8,1) -C - XHED(1:7) = CWORK(1:7) -C - XHED(8:15) = CNMC - XHED(14:16) = CHEDA(1:3) - IWORK = IBYT - call byteswap(iwork,8,1) -C - XHED(17:24) = CWORK(1:8) -C - IWORK = IFIL - call byteswap(iwork,8,1) -C - XLINE(1:2) = CWORK(1:2) - XLINE(3:10) = CNMC - XLINE(9:11) = CHEDA(1:3) -C - CWORK = CDAT -C - XLINE(46:47) = CWORK(9:10) -C - XLINE(48:49) = CWORK(7:8) -C - XLINE(50:51) = CWORK(5:6) -C - XLINE(52:53) = CWORK(3:4) -C - XLINE(54:57) = CTEMP(5:8) -C - IWORK = IEND - call byteswap(iwork,8,1) - XLINE(58:59) = CWORK(2:3) -C - CWORK = CDAT -C - LINE(18:19) = CWORK(9:10) -C - LINE(20:21) = 'Z ' - LINE(22:25) = CDAY(1:4) -C - LINE(26:27) = CWORK(7:8) -C - LINE(33:36) = CWORK(1:4) - LINE(28:28) = ' ' - LINE(29:32) = FMON(IMT) - LINE(37:37) = ' ' - CWORK(1:8) = CTEMP - LINE(38:39) = CWORK(5:6) - LINE(40:41) = CWORK(7:8) - LINE(42:42) = ' ' - LINE(43:45) = CHEDA(1:3) - - IWORK = IEND - call byteswap(iwork,8,1) - LINE(71:73) = CWORK(1:3) -C -C STORE THE LABELS INTO THE AFOS PRODUCT ARRAYs -C - DO J = 1,59 - OAFOS(J) = OXLN(J) - END DO - DO J = 1,73 - OAFOS(J+59) = OLIN(J) - END DO -C - RETURN - END diff --git a/util/sorc/gendata.fd/afzoom.f b/util/sorc/gendata.fd/afzoom.f deleted file mode 100755 index 01c3e6433a..0000000000 --- a/util/sorc/gendata.fd/afzoom.f +++ /dev/null @@ -1,188 +0,0 @@ - SUBROUTINE AFZOOM (NAME,KTTYP,PSOWDT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: AFZOOM SET ZOOM & TYPE FOR AN AFOS PLOTFILE STN -C PRGMMR:SHIMOMURA ORG: W/NP12 DATE: 96-08-06 -C -C ABSTRACT: THE GIVEN STATION-NAME IS MATCHED AGAINST A TABLE OF -C NAMES WITH CORRESPONDING ZOOM-THRESHOLDS, SO THAT IF A MATCH IS -C FOUND, THEN THAT ZOOM-THRESHOLD VALUE IS PUT INTO THE RESULTS: -C THE PSOWDT CHARACTER ARRAY. -C AND THE OBSERVATION TYPE IS FORMATTED FOR THE PSOWDT AND PUT IN -C THERE. THE PSOWDT IS A REQUIRED ELEMENT IN THE AFOS PLOTFILE -C DATA LINE. -C -C PROGRAM HISTORY LOG: -C 89-04-26 ORIGINAL AUTHOR HENRICHSEN -C 89-05-28 HENRICHSEN ADDED STATION 72233 TO ZOOM 0 LIST. -C 89-07-20 GLORIA DENT CHANGE THE AFOS ZOOM THRESHOLD OF 74732 -C (HOLLOMAN A.F. BASE,N.M.)FROM ZOOM 4-1 TO ZOOM 16-1. -C ADD THIS STATION TO ZOOM 3 LIST. -C 93-05-05 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-08-06 SHIMOMURA: RE-WRITE FOR THE CRAY; COMBINED 3 TABLES INTO 1 -C AND PUT INTO SORTED ORDER FOR FASTER SEARCH. -C -C -C USAGE: CALL AFZOOM(NAME,KTTYP,PSOWDT) -C INPUT ARGUMENT LIST: -C NAME - INTEGER WORD CONTAINING 5-DIGIT STATION NAME IN -C - HOLLERITH. IE '72308 '. WHICH IS CHARLSTON SC. -C KTTYP - INTEGER NUMBER FROM 1 THRU 13 WHICH INDICATES THE -C - TYPE OF REPORT. THIS IS USED TO SET THE LAST BYTE OF -C - PSOWDT. -C -C OUTPUT ARGUMENT LIST: -C PSOWDT - CHARACTER*1 PSOWDT(6) -- SIX-CHARACTER ARRAY -C DESTINED FOR ONE OF THE AFOS PLT FORMAT ELEMENTS -C - WHERE THE FIRST BYTE IS THE ZOOM-THRESHOLD VALUE. -C - AND WILL BE SET TO 0,1,2, OR 3. -C - BYTES 2 THRU 4 ARE 0. -C - BYTE 5 IS SET TO 1 FOR NH PLOT OPTION. -C - BYTE 6 IS REPORT TYPE. SEE REMARKS. -C DEFAULT PSOWDT = "10001A" -C ... 123456 ... -C WHERE DEFAULT ZOOM WHEN NO MATCHING STN NAME IN TABLE -C DEFAULT TYPE WHEN GIVEN INVALID KTTYP -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C -C REMARKS: REPORT TYPE CAN HAVE THE FOLLOWING VALUES; -C A = UPPER LAND, B = UPPER OCEAN, C = RECON., D = AIRCRAFT, -C G = UPPER BOGUS, E = SIRS, F = SAT WINDS. -C -C CALLS ON FUNCTION IJBSIRCH TO DO THE TABLE LOOK-UP -C -C AREA -C SCALE ZT -C 1:1 =0 TO DISPLAY AT ALL ZOOM LEVELS -C 4:1 =1 T0 DISPLAY AT 4:1 AND BELOW -C 9:1 =2 TO DISPLAY AT 9:1 AND BELOW -C 16:1 =3 TO DISPLAY AT 16:1 AND BELOW -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ -C -C INTEGER IJBSIRCH -C EXTERNAL IJBSIRCH !... DECLARE FUNCTION - - INTEGER MAXNSTNS - PARAMETER (MAXNSTNS=46) - INTEGER MAXTYPES - PARAMETER (MAXTYPES=13) - - INTEGER NAME !... ARG1: BLK+STN_NUM - INTEGER KTTYP !... ARG2: REPORT TYPE - CHARACTER*1 PSOWDT(6) !... ARG3: PSOWDT W/ P & D & T -C -C TWO STATIONS (72357 AND 72293) WERE ADDED TO ZOOM0 LIST(89/04/14). -C STATION (74732) WAS ADDED TO THE ZOOM3 LIST(89/07/20). - - - INTEGER STNZM(2,MAXNSTNS) - DATA STNZM / - 1 "04360 " ,3, "25399 " ,3, - 2 "70174 " ,3, "70273 " ,0, "70398 " ,0, - 3 "71043 " ,0, "71114 " ,2, "71801 " ,0, - 4 "71826 " ,0, "71913 " ,0, "71928 " ,2, - 5 "72201 " ,0, "72209 " ,3, "72221 " ,2, - 6 "72225 " ,3, "72228 " ,3, "72232 " ,0, - 7 "72233 " ,0, "72239 " ,2, "72250 " ,0, - 8 "72273 " ,3, "72290 " ,0, "72293 " ,0, - 9 "72295 " ,3, "72303 " ,3, "72304 " ,0, - A "72327 " ,0, "72353 " ,0, "72355 " ,3, - B "72357 " ,0, "72381 " ,3, "72385 " ,3, - C "72391 " ,3, "72402 " ,2, "72408 " ,3, - D "72476 " ,0, "72493 " ,0, "72606 " ,0, - E "72734 " ,0, "72764 " ,0, "72785 " ,0, - F "74732 " ,3, - G "76225 " ,0, - H "78016 " ,0, "78367 " ,0, - I "91021 " ,0 / -C - -C -C LTYPE IS IN ASCII WHERE 3*A'S,3*B'S, C,2*D'S, G, E,2*F'S -C - CHARACTER*1 LTYPE(MAXTYPES) - -C ... 1 2 3 4 5 6 7 8 9 - DATA LTYPE /'A','A','A','B','B','B','C','D','D', - 1 'G','E','F','F'/ -C ... 10 11 12 13 - - - CHARACTER*1 CON_PSOWDT(6) - DATA CON_PSOWDT /'0','0','0','0','1','A'/ -C ... 1 2 3 4 5 6 - CHARACTER*1 ZOOMS(4) - DATA ZOOMS /'0','1','2','3'/ - - CHARACTER*1 ZOOM1 - DATA ZOOM1 /'1'/ -C - INTEGER INDX -C - LOGICAL FOUNDNAME -C - INTEGER INTNAME - CHARACTER*8 C8NAME - EQUIVALENCE (INTNAME,C8NAME) - - CHARACTER*1 C1NAME(8) - EQUIVALENCE (INTNAME,C1NAME(1)) - -C - INTNAME = NAME !... I*8 W/I WHICH LEADING 5-BYTES GOOD - DO IC = 6,8 - C1NAME(IC) = ' ' !... BLANK OUT TRAILING 3 BYTES - ENDDO - -C ... INITALIZE PSOWDT ... -C - DO I = 1,6 - PSOWDT(I) = CON_PSOWDT(I) - ENDDO -C - IF((KTTYP .GT. 0) .AND. - 1 (KTTYP .LE. MAXTYPES)) THEN - PSOWDT(6) = LTYPE(KTTYP) - ENDIF -C -C -C THE DEFAULT ZOOM IS ZOOM1 SO LOAD ZOOM1 INTO 1ST BYTE OF PSOWDT. -C - PSOWDT(1) = ZOOM1 -C -C ... PERFORM TABLE LOOK-UP ON STN NAME ... -C ... IF MATCH FOUND, THEN USE THAT ZOOM INSTEAD OF DEFAULT - - FOUNDNAME = .FALSE. - DO K = 1,MAXNSTNS - IF (INTNAME .EQ. STNZM(1,K)) THEN - FOUNDNAME = .TRUE. - GO TO 10 - END IF - END DO - -C JSTNFOUND = ijbsirch(intname,stnzm,2,MAXNSTNS) - - 10 IF(FOUNDNAME) THEN - INDX = 1 + STNZM(2,K) - PSOWDT(1) = ZOOMS(INDX) - ENDIF - -C -C - 300 CONTINUE -C - IF(FOUNDNAME) THEN - WRITE(6,315) C8NAME(1:5),(PSOWDT(I),I=1,6) - 315 FORMAT(1H ,'AFZOOM: FOUND MATCHING STN =',A,'; PSOWDT=',6A1) - ENDIF -C - RETURN - END diff --git a/util/sorc/gendata.fd/bdsanam.f b/util/sorc/gendata.fd/bdsanam.f deleted file mode 100755 index d4144efe11..0000000000 --- a/util/sorc/gendata.fd/bdsanam.f +++ /dev/null @@ -1,1069 +0,0 @@ - BLOCK DATA BDSANAM -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: BDSANAM BLOCK DATA LIST OF STN IDENTS & AFOS ZOOM -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 1996-11-14 -C -C ABSTRACT: BLOCK DATA CONTAINING 3-CHAR STATION CALL LETTERS -C AND AFOS ZOOM ATTRIBUTES -C -C COMMON /SANAM/MAXNSAS,KSASTN(960) -- STATIONS,AFOS_ZOOM. -C -C THIS TABLE IS USED IN NASFCPLT FOR MAKING SURFACE MAPS -C -C PROGRAM HISTORY LOG: -C 80-04-21 ROBERT JIRSEK, ORIGINAL AUTHOR -C 96-11-14 SHIMOMURA -- CONVERTED FROM IBM ASSEMBLY LANGUAGE "DC" -C FORMAT INTO FORTRAN DATA STATEMENT FORMAT -C -C USAGE: -C EXTERNAL bdsanam -C COMMON /SANAM/ MAXNSAS,KSASTN(960) -C (LABELLED COMMON NAME IN CALLING PROGRAM) -C -C OUTPUT ARGUMENT LIST: -C -C COMMON /SANAM/MAXNSAS,KSASTN -C INTEGER MAXNSAS -C DATA MAXNSAS /911/ -C INTEGER KSASTN(960) - -C KSASTN(J) = 3-LETTER STATION IDENTIFIERS (ASCII), LEFT-JUSTIF -C 2-HEX DIGITS AFOS ATTRIBUTES (ASCII), RIGHT-JUSTIF -C IN THE SAME 8-BYTE WORD; -C BLANK FILL IN BETWEEN. -C -C REMARKS: -C CAUTION: I HAVE ADDED A DATA-COUNT AS THE FIRST WORD IN THE -C LABELLED COMMON AREA. - -C IN USERS SOURCE CODE INCLUDE: -C EXTERNAL bdsanam -C WHICH WILL FORCE THE LINKAGE-EDITOR TO LOOK FOR bdsanam.o - -C I HAVE SORTED THE LIST BY ASCII 3-LETTER STATION IDENTIFIERS -C CAUTION: THE DATA IS ALL IN ASCII IN THE CRAY VERSION. -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ -C - COMMON /SANAM/ MAXNSAS,KSASTN - INTEGER MAXNSAS - DATA MAXNSAS / 911 / -C - INTEGER KSASTN(960) - INTEGER IGROUP01(80) - INTEGER IGROUP02(80) - INTEGER IGROUP03(80) - INTEGER IGROUP04(80) - INTEGER IGROUP05(80) - INTEGER IGROUP06(80) - INTEGER IGROUP07(80) - INTEGER IGROUP08(80) - INTEGER IGROUP09(80) - INTEGER IGROUP10(80) - INTEGER IGROUP11(80) - INTEGER IGROUP12(80) - - EQUIVALENCE (KSASTN(001),IGROUP01(1)) - EQUIVALENCE (KSASTN(081),IGROUP02(1)) - EQUIVALENCE (KSASTN(161),IGROUP03(1)) - EQUIVALENCE (KSASTN(241),IGROUP04(1)) - EQUIVALENCE (KSASTN(321),IGROUP05(1)) - EQUIVALENCE (KSASTN(401),IGROUP06(1)) - EQUIVALENCE (KSASTN(481),IGROUP07(1)) - EQUIVALENCE (KSASTN(561),IGROUP08(1)) - EQUIVALENCE (KSASTN(641),IGROUP09(1)) - EQUIVALENCE (KSASTN(721),IGROUP10(1)) - EQUIVALENCE (KSASTN(801),IGROUP11(1)) - EQUIVALENCE (KSASTN(881),IGROUP12(1)) - -C NORTH AMERICA SFC PLOT HOURLY (SA) TABLE. -C - DATA IGROUP01 / - A "14V 02" , - 1 "3OI A4" , - 2 "3SE 24" , - 3 "4BK 52" , - 4 "4BL 04" , - 5 "4BQ 14" , - 6 "4BW 02" , - 7 "4DG 24" , - 8 "4DQ 02" , - 9 "4HV A4" , - B "4LJ 12" , - 1 "4LW 24" , - 2 "4MC 04" , - 3 "4OM 84" , - 4 "4SV 02" , - 5 "63S 02" , - 6 "ABE A4" , - 7 "ABI 04" , - 8 "ABQ 84" , - 9 "ABR 44" , - C "ABY 04" , - 1 "ACA 04" , - 2 "ACK 04" , - 3 "ACT 04" , - 4 "ACV 84" , - 5 "ACY 04" , - 6 "ADK 04" , - 7 "ADM 84" , - 8 "ADQ 04" , - 9 "AEX 02" , - D "AGN 02" , - 1 "AGR 02" , - 2 "AGS 84" , - 3 "AHN 14" , - 4 "AKN 44" , - 5 "AKO 14" , - 6 "ALB 04" , - 7 "ALO 44" , - 8 "ALS 04" , - 9 "AMA 04" , - E "AMG 54" , - 1 "ANC A4" , - 2 "ANI 04" , - 3 "ANN 14" , - 4 "AOO A4" , - 5 "APN 04" , - 6 "AQQ A4" , - 7 "ART 14" , - 8 "AST 24" , - 9 "ATL 84" , - F "ATY 14" , - 1 "AUG 14" , - 2 "AUS 84" , - 3 "AUW 44" , - 4 "AVL 54" , - 5 "AVP 02" , - 6 "AXN 04" , - 7 "BAD 02" , - 8 "BAL 02" , - 9 "BAM 44" , - G "BBW 14" , - 1 "BCE 24" , - 2 "BDL 04" , - 3 "BDR 06" , - 4 "BET 04" , - 5 "BFD 14" , - 6 "BFF 14" , - 7 "BFL 54" , - 8 "BGM 04" , - 9 "BGR 14" , - H "BGS 14" , - 1 "BHM 04" , - 2 "BID A4" , - 3 "BIE 14" , - 4 "BIG 04" , - 5 "BIH 94" , - 6 "BIL A4" , - 7 "BIS 94" , - 8 "BIX 92" , - 9 "BJI 94" / - - DATA IGROUP02 / - A "BKE 02" , - 1 "BKW 02" , - 2 "BLF 84" , - 3 "BLH 14" , - 4 "BLI 84" , - 5 "BLV 02" , - 6 "BNA 24" , - 7 "BOI 04" , - 8 "BOS 24" , - 9 "BPI 04" , - B "BPT 94" , - 1 "BRL A4" , - 2 "BRO 24" , - 3 "BRW A4" , - 4 "BSM 02" , - 5 "BTI 04" , - 6 "BTL 04" , - 7 "BTR 04" , - 8 "BTT 14" , - 9 "BTV 04" , - C "BUF A4" , - 1 "BVE 24" , - 2 "BWD 04" , - 3 "BWG 14" , - 4 "BYI 84" , - 5 "CAE 14" , - 6 "CAK 02" , - 7 "CAO 44" , - 8 "CAR 64" , - 9 "CBM 24" , - D "CDB 04" , - 1 "CDC 44" , - 2 "CDE 04" , - 3 "CDR 04" , - 4 "CDS 84" , - 5 "CDV 84" , - 6 "CEC 84" , - 7 "CEN 24" , - 8 "CGI 04" , - 9 "CHA 04" , - E "CHB 84" , - 1 "CHO 24" , - 2 "CHS 04" , - 3 "CJS 02" , - 4 "CLE 84" , - 5 "CLL 14" , - 6 "CLT 94" , - 7 "CME 04" , - 8 "CMH 94" , - 9 "CMX 54" , - F "CNK 54" , - 1 "CNU 04" , - 2 "CON 24" , - 3 "COT 04" , - 4 "COU 14" , - 5 "CPE 04" , - 6 "CPR 44" , - 7 "CRP A4" , - 8 "CRW 14" , - 9 "CSG 84" , - G "CSM 02" , - 1 "CSV 94" , - 2 "CTB 24" , - 3 "CTM 04" , - 4 "CUL 04" , - 5 "CUU 04" , - 6 "CVG 04" , - 7 "CVM 02" , - 8 "CVS 04" , - 9 "CWA 02" , - H "CXY 84" , - 1 "CYS A4" , - 2 "CZF 04" , - 3 "CZM 04" , - 4 "DAB 54" , - 5 "DAG 24" , - 6 "DAN 04" , - 7 "DAY 84" , - 8 "DBQ 24" , - 9 "DCA A4" / - - DATA IGROUP03 / - A "DDC 04" , - 1 "DEC 24" , - 2 "DEN 44" , - 3 "DFW 04" , - 4 "DGO 04" , - 5 "DHN 84" , - 6 "DHT 04" , - 7 "DIK 84" , - 8 "DLG 14" , - 9 "DLH 24" , - B "DLN 24" , - 1 "DLS A4" , - 2 "DMN 04" , - 3 "DOV 04" , - 4 "DPG 84" , - 5 "DRO 14" , - 6 "DRT 04" , - 7 "DSM 44" , - 8 "DTW 04" , - 9 "DUG A4" , - C "DUJ 82" , - 1 "DVL 44" , - 2 "DYR 54" , - 3 "DYS 02" , - 4 "E03 04" , - 5 "E74 14" , - 6 "EAU 94" , - 7 "ECG 24" , - 8 "EED 04" , - 9 "EFD 02" , - D "EGE 14" , - 1 "EHM 04" , - 2 "EKN 24" , - 3 "EKO A4" , - 4 "ELD 24" , - 5 "ELP 24" , - 6 "ELV 44" , - 7 "ELY 04" , - 8 "EMP 14" , - 9 "ENA 02" , - E "END 02" , - 1 "ENV 24" , - 2 "EPH 94" , - 3 "ERI 94" , - 4 "ESC 24" , - 5 "ESF 04" , - 6 "EUG 94" , - 7 "EVV 84" , - 8 "EVW 04" , - 9 "EYW 04" , - F "FAI 14" , - 1 "FAR 14" , - 2 "FAT 84" , - 3 "FCA 44" , - 4 "FCS 02" , - 5 "FFO 02" , - 6 "FHU 44" , - 7 "FIV 04" , - 8 "FLG 54" , - 9 "FLL 02" , - G "FLO 44" , - 1 "FMN A4" , - 2 "FMY 24" , - 3 "FNT 54" , - 4 "FOD A4" , - 5 "FRI 04" , - 6 "FSD 14" , - 7 "FSI 24" , - 8 "FSM 04" , - 9 "FSP 24" , - H "FWA 84" , - 1 "FWL 04" , - 2 "FYU 02" , - 3 "GAG 04" , - 4 "GAL 04" , - 5 "GCK 02" , - 6 "GCN 04" , - 7 "GDL 04" , - 8 "GDP 84" , - 9 "GEG 14" / - - DATA IGROUP04 / - A "GFK 04" , - 1 "GFL 02" , - 2 "GGW 04" , - 3 "GJT 04" , - 4 "GKN 14" , - 5 "GLD 84" , - 6 "GLH 02" , - 7 "GLS A4" , - 8 "GNG 64" , - 9 "GNT 02" , - B "GNV 84" , - 1 "GPT 94" , - 2 "GRB 24" , - 3 "GRI 04" , - 4 "GRK 06" , - 5 "GRR 02" , - 6 "GSG 02" , - 7 "GSO A4" , - 8 "GSP A4" , - 9 "GTF 14" , - C "GUC 02" , - 1 "GUP 04" , - 2 "GWO 84" , - 3 "GYM 04" , - 6 " 63 04" , - 4 " AR 84" , - 5 " AT 14" , - 6 " BR 44" , - 7 " IB 44" , - 8 " IF 02" , - 9 " LC 04" , - D " LN 84" , - 1 " MN 04" , - 2 " OB 94" , - 3 " OM 84" , - 4 " ON 04" , - 5 " OP 04" , - 6 " OT 04" , - 7 " QM 04" , - 8 " RO 84" , - 9 " SS 02" , - E " SV 94" , - 1 " TS 84" , - 2 " UF A4" , - 3 " UL A4" , - 4 " UT 44" , - 5 " VR 04" , - 7 "IAD 02" , - 8 "IAH A4" , - 9 "ICT A4" , - F "IDA 54" , - 1 "IKO 04" , - 2 "ILI 22" , - 3 "ILM 04" , - 4 "IMA 06" , - 5 "IND 04" , - 6 "INK A4" , - 7 "INL 84" , - 8 "INW 24" , - 9 "IPL 04" , - G "IPT 14" , - 1 "IRK 44" , - 2 "ISN 84" , - 3 "IWD 04" , - 4 "JAC 22" , - 5 "JAN 84" , - 6 "JAX 24" , - 7 "JBR 04" , - 8 "JCT 04" , - 9 "JFK 02" , - H "JLN A4" , - 1 "JMS 84" , - 2 "JNU 14" , - 3 "JNW 12" , - 4 "JST 02" , - 5 "JXN 02" , - 6 "K20 02" , - 7 "KPC 04" , - 8 "KTN 02" , - 9 "LAF 04" / - - DATA IGROUP05 / - A "LAP 04" , - 1 "LAR 44" , - 2 "LAS 04" , - 3 "LAX 14" , - 4 "LBB 04" , - 5 "LBF 84" , - 6 "LBL 04" , - 7 "LCH 94" , - 8 "LEB 64" , - 9 "LEO 04" , - B "LEX 14" , - 1 "LFK 04" , - 2 "LFT 94" , - 3 "LGA 04" , - 4 "LHX A4" , - 5 "LIC 04" , - 6 "LIT 54" , - 7 "LMM 04" , - 8 "LMT 64" , - 9 "LND 04" , - C "LNK 02" , - 1 "LOL 94" , - 2 "LOZ 24" , - 3 "LRD 04" , - 4 "LRF 12" , - 5 "LSE 14" , - 6 "LSF 02" , - 7 "LSV 04" , - 8 "LTS 12" , - 9 "LUK 02" , - D "LUR 02" , - 1 "LVM 84" , - 2 "LVS 24" , - 3 "LWS 14" , - 4 "LWT 24" , - 5 "LXV 04" , - 6 "LYH 06" , - 7 "MAF 94" , - 8 "MAM 22" , - 9 "MBS 62" , - E "MCB 04" , - 1 "MCG 54" , - 2 "MCI 44" , - 3 "MCK 24" , - 4 "MCN 04" , - 5 "MCO 04" , - 6 "MCW 14" , - 7 "MDH 14" , - 8 "MDO 84" , - 9 "MDW A2" , - F "MEI 14" , - 1 "MEM A4" , - 2 "MER 14" , - 3 "MEX 04" , - 4 "MFD 02" , - 5 "MFE 44" , - 6 "MFR 54" , - 7 "MGE 82" , - 8 "MGM 84" , - 9 "MGW 04" , - G "MHM 02" , - 1 "MHN 04" , - 2 "MHS 02" , - 3 "MIA 04" , - 4 "MIB 02" , - 5 "MID 04" , - 6 "MKC 02" , - 7 "MKE 24" , - 8 "MKG 14" , - 9 "MKL 24" , - H "MLC 84" , - 1 "MLD A4" , - 2 "MLF 54" , - 3 "MLI 44" , - 4 "MLM 04" , - 5 "MLS 04" , - 6 "MLT 44" , - 7 "MLU 04" , - 8 "MMT 02" , - 9 "MOB 54" / - - DATA IGROUP06 / - A "MOD 02" , - 1 "MOT 04" , - 2 "MQM 02" , - 3 "MQT 64" , - 4 "MRB 24" , - 5 "MRF 04" , - 6 "MRY 24" , - 7 "MSL 94" , - 8 "MSN 44" , - 9 "MSO 24" , - B "MSP 94" , - 1 "MSS 84" , - 2 "MSY 24" , - 3 "MTJ 04" , - 4 "MTT 04" , - 5 "MTY 04" , - 6 "MWH 02" , - 7 "MWN 12" , - 8 "MYR 24" , - 9 "MZL 04" , - C "MZT 04" , - 1 "NAO 02" , - 2 "NAU 04" , - 3 "NBC 56" , - 4 "NBG 02" , - 5 "NGP 02" , - 6 "NGU 22" , - 7 "NHZ 02" , - 8 "NID 04" , - 9 "NIP 02" , - D "NIR 04" , - 1 "NKT 04" , - 2 "NLC 02" , - 3 "NLD 24" , - 4 "NPA A4" , - 5 "NQA A2" , - 6 "NQI 02" , - 7 "NQX 02" , - 8 "NSI 04" , - 9 "NUC A4" , - E "NUW 02" , - 1 "O87 A4" , - 2 "OAK 04" , - 3 "OCS 94" , - 4 "OFF 02" , - 5 "OFK 84" , - 6 "OKC 14" , - 7 "OMA 24" , - 8 "OME 04" , - 9 "ONM 84" , - F "ONP 14" , - 1 "ORD A4" , - 2 "ORF 44" , - 3 "ORL 04" , - 4 "ORT 04" , - 5 "OSC 84" , - 6 "OTH 84" , - 7 "OTM 44" , - 8 "OTZ 04" , - 9 "OWY 84" , - G "OZR 02" , - 1 "P11 04" , - 2 "PAM 64" , - 3 "PBF A4" , - 4 "PBG 02" , - 5 "PBI 04" , - 6 "PDT 04" , - 7 "PDX 54" , - 8 "PFN 22" , - 9 "PHL 02" , - H "PHX 04" , - 1 "PIA 14" , - 2 "PIH 94" , - 3 "PIR 24" , - 4 "PIT 04" , - 5 "PKB A4" , - 6 "PKF 04" , - 7 "PLN 44" , - 8 "PNC 24" , - 9 "PNS A2" / - - DATA IGROUP07 / - A "POB 24" , - 1 "POE 94" , - 2 "POU 04" , - 3 "PPC 02" , - 4 "PPE 04" , - 5 "PRB 04" , - 6 "PRC 84" , - 7 "PRX 04" , - 8 "PSB 04" , - 9 "PSG 04" , - B "PSX A4" , - 1 "PTH 04" , - 2 "PUB 54" , - 3 "PUC 04" , - 4 "PUO A4" , - 5 "PVD 06" , - 6 "PVR 04" , - 7 "PWM 14" , - 8 "RAC 02" , - 9 "RAP 04" , - C "RBL 14" , - 1 "RCA 02" , - 2 "RDM 24" , - 3 "RDR 22" , - 4 "RDU 02" , - 5 "REE 02" , - 6 "REJ 24" , - 7 "REX 42" , - 8 "RFD 22" , - 9 "RHI 42" , - D "RIC 64" , - 1 "RKS 04" , - 2 "RMG 24" , - 3 "RNO 84" , - 4 "ROA 14" , - 5 "ROC 84" , - 6 "ROW 14" , - 7 "RSL 24" , - 8 "RST 84" , - 9 "RWF 84" , - E "RWI 04" , - 1 "RWL 04" , - 2 "S06 84" , - 3 "S80 A4" , - 4 "SAC 14" , - 5 "SAF 54" , - 6 "SAN A4" , - 7 "SAT 04" , - 8 "SAV 14" , - 9 "SAW 42" , - F "SBA A4" , - 1 "SBN 14" , - 2 "SBY 84" , - 3 "SCC 02" , - 4 "SCK 06" , - 5 "SDF 84" , - 6 "SEA 54" , - 7 "SFO 04" , - 8 "SGF 14" , - 9 "SGY 14" , - G "SHR 94" , - 1 "SHV 84" , - 2 "SIT 04" , - 3 "SJT 04" , - 4 "SKA 06" , - 5 "SKF 02" , - 6 "SKJ 04" , - 7 "SLC 94" , - 8 "SLE 94" , - 9 "SLN 02" , - H "SLP 04" , - 1 "SMN 44" , - 2 "SMP 64" , - 3 "SMX 24" , - 4 "SNP 02" , - 5 "SNS 84" , - 6 "SNY 04" , - 7 "SPI 06" , - 8 "SPS A4" , - 9 "SRL 04" / - - DATA IGROUP08 / - A "SRQ A4" , - 1 "SSI 24" , - 2 "SSR 02" , - 3 "STC 02" , - 4 "STL 04" , - 5 "SUX 84" , - 6 "SVE 24" , - 7 "SVW 04" , - 8 "SXT 56" , - 9 "SYR 14" , - B "SZL A4" , - 1 "TAD A4" , - 2 "TAL 84" , - 3 "TAM 14" , - 4 "TAP 04" , - 5 "TCC 04" , - 6 "TCG 04" , - 7 "TCL A4" , - 8 "TCN 04" , - 9 "TCS 04" , - C "TEP 04" , - 1 "TGZ 04" , - 2 "TIK 02" , - 3 "TKA 94" , - 4 "TLH 94" , - 5 "TMN 84" , - 6 "TNC 02" , - 7 "TOL A4" , - 8 "TOP 02" , - 9 "TPA 04" , - D "TPH 14" , - 1 "TPL 02" , - 2 "TRC 04" , - 3 "TRI 14" , - 4 "TRM 54" , - 5 "TUL 24" , - 6 "TUP 24" , - 7 "TUS 44" , - 8 "TVC 02" , - 9 "TVL 02" , - E "TXK 44" , - 1 "TYR 04" , - 2 "TYS 94" , - 3 "U24 14" , - 4 "U28 04" , - 5 "U31 04" , - 6 "U67 04" , - 7 "UCA 02" , - 8 "UCC 04" , - 9 "UIL 04" , - F "UIN A4" , - 1 "UKI 04" , - 2 "UMM 14" , - 3 "UNK 04" , - 4 "UTO 94" , - 5 "VAD 04" , - 6 "VAM 42" , - 7 "VCT 54" , - 8 "VER 14" , - 9 "VIH A4" , - G "VLA 02" , - 1 "VOK 44" , - 2 "VPS 54" , - 3 "VRB 24" , - 4 "VSA 04" , - 5 "VTN 04" , - 6 "VWS 94" , - 7 "WAL 06" , - 8 "WAR 04" , - 9 "WBA 44" , - H "WBD 02" , - 1 "WBF 44" , - 2 "WBH 54" , - 3 "WBJ 94" , - 4 "WBK 04" , - 5 "WBX 84" , - 6 "WCA 04" , - 7 "WCJ 84" , - 8 "WCL 14" , - 9 "WCP 84" / - - DATA IGROUP09 / - A "WCS 04" , - 1 "WDH 44" , - 2 "WDI 94" , - 3 "WDL 04" , - 4 "WDR 24" , - 5 "WDS 06" , - 6 "WDV 12" , - 7 "WEI 04" , - 8 "WEU 04" , - 9 "WEY 04" , - B "WFJ 04" , - 1 "WFL 04" , - 2 "WFM 14" , - 3 "WFN 04" , - 4 "WFQ 06" , - 7 "WFV 84" , - 5 "WGB 04" , - 6 "WGM 94" , - 8 "WGN 82" , - 9 "WGQ 24" , - C "WGS 04" , - 1 "WHJ 52" , - 2 "WHO 04" , - 3 "WHW 12" , - 4 "WJA 94" , - 5 "WJD 24" , - 6 "WJF 04" , - 7 "WKC 02" , - 8 "WKE 64" , - 9 "WKG 04" , - D "WKO 14" , - 1 "WKY 04" , - 2 "WLA 84" , - 3 "WLB 44" , - 4 "WLG 96" , - 5 "WLH 04" , - 6 "WLY 06" , - 7 "WMC 44" , - 8 "WMI 14" , - 9 "WMN 64" , - E "WMW 14" , - 1 "WNI 04" , - 2 "WOH 06" , - 3 "WOK 04" , - 4 "WOQ 14" , - 5 "WPC 02" , - 6 "WPN 14" , - 7 "WPO 04" , - 8 "WPZ 04" , - 9 "WRB 02" , - F "WRD 54" , - 1 "WRG 02" , - 2 "WRL 84" , - 3 "WRP 94" , - 4 "WSA 04" , - 5 "WSQ 02" , - 6 "WTC 24" , - 7 "WTI 06" , - 8 "WTL 04" , - 9 "WTQ 06" , - G "WTW 14" , - 1 "WUU 14" , - 2 "WUV 84" , - 3 "WUW 94" , - 4 "WUZ 44" , - 5 "WVA 54" , - 6 "WVM 64" , - 7 "WVT 04" , - 8 "WWE 04" , - 9 "WWO 04" , - H "WWQ 02" , - 1 "WXK 04" , - 2 "WXV 42" , - 3 "WYI 14" , - 4 "WYO 04" , - 5 "WZB 04" , - 6 "WZL 04" , - 7 "Y22 24" , - 8 "Y26 24" , - 9 "Y62 44" / - - DATA IGROUP10 / - A "YAB 04" , - 1 "YAE 14" , - 2 "YAK 04" , - 3 "YAM 12" , - 4 "YAW 14" , - 5 "YAY 04" , - 6 "YAZ A4" , - 7 "YBC 06" , - 8 "YBE 14" , - 9 "YBG 82" , - B "YBR 04" , - 1 "YBT 54" , - 2 "YBU 54" , - 3 "YCB 14" , - 4 "YCD 08" , - 5 "YCG 44" , - 6 "YCH 64" , - 7 "YCL 14" , - 8 "YCO 04" , - 9 "YCT 04" , - C "YCY 04" , - 1 "YDA 14" , - 2 "YDB 02" , - 3 "YDC 06" , - 4 "YDF 84" , - 5 "YDN 04" , - 6 "YEC 04" , - 7 "YED 04" , - 8 "YEG 08" , - 9 "YEN 04" , - D "YEO 04" , - 1 "YET 94" , - 2 "YEV 84" , - 3 "YFB 04" , - 4 "YFC 94" , - 5 "YFO 54" , - 6 "YFR 06" , - 7 "YFS 04" , - 8 "YGA 02" , - 9 "YGD 04" , - E "YGH 04" , - 1 "YGK 06" , - 2 "YGP 44" , - 3 "YGR 04" , - 4 "YGV 14" , - 5 "YGW 04" , - 6 "YGX 04" , - 7 "YGY 02" , - 8 "YHB 84" , - 9 "YHE 04" , - F "YHI 04" , - 1 "YHR 84" , - 2 "YHU 04" , - 3 "YHY 34" , - 4 "YIB 14" , - 5 "YJT 04" , - 6 "YKA 04" , - 7 "YKL 04" , - 8 "YKM A4" , - 9 "YKN 04" , - G "YLD 24" , - 1 "YLJ 24" , - 2 "YLT 04" , - 3 "YLW 02" , - 4 "YMA 04" , - 5 "YMD 04" , - 6 "YMJ 06" , - 7 "YMM 04" , - 8 "YMO 04" , - 9 "YMT 04" , - H "YNE 14" , - 1 "YNG 14" , - 2 "YNM 04" , - 3 "YOC 02" , - 4 "YOD 06" , - 5 "YOJ 04" , - 6 "YOW 06" , - 7 "YPA 84" , - 8 "YPE 14" , - 9 "YPG 02" / - - DATA IGROUP11 / - A "YPH 04" , - 1 "YPL 04" , - 2 "YPR 04" , - 3 "YPY 04" , - 4 "YQA 54" , - 5 "YQB 14" , - 6 "YQD 04" , - 7 "YQF 42" , - 8 "YQG 06" , - 9 "YQH 04" , - B "YQI A4" , - 1 "YQK 04" , - 2 "YQL 04" , - 3 "YQM A4" , - 4 "YQQ 06" , - 5 "YQR 44" , - 6 "YQT 24" , - 7 "YQU 04" , - 8 "YQV 06" , - 9 "YQW 04" , - C "YQX 14" , - 1 "YQY 54" , - 2 "YQZ 14" , - 3 "YRB 04" , - 4 "YRE 04" , - 5 "YRJ 04" , - 6 "YRL 14" , - 7 "YRM 04" , - 8 "YRN 14" , - 9 "YRQ 04" , - D "YRV 24" , - 1 "YSB 84" , - 2 "YSC 54" , - 3 "YSJ 06" , - 4 "YSM 04" , - 5 "YSU 06" , - 6 "YSY 04" , - 7 "YTE 04" , - 8 "YTH 04" , - 9 "YTR 84" , - E "YTS 04" , - 1 "YUB 04" , - 2 "YUK 84" , - 3 "YUL 04" , - 4 "YUM A4" , - 5 "YUN 04" , - 6 "YUQ 84" , - 7 "YUR 94" , - 8 "YUS 04" , - 9 "YUX 04" , - F "YUY 04" , - 1 "YVC 04" , - 2 "YVG 04" , - 3 "YVN 24" , - 4 "YVO 02" , - 5 "YVP 04" , - 6 "YVQ 04" , - 7 "YVR 54" , - 8 "YVV 04" , - 9 "YWA 14" , - G "YWG 84" , - 1 "YWK 04" , - 2 "YWL 24" , - 3 "YWR 44" , - 4 "YWY 04" , - 5 "YXC 24" , - 6 "YXD 02" , - 7 "YXE 24" , - 8 "YXH 14" , - 9 "YXJ 04" , - H "YXL 04" , - 1 "YXQ A4" , - 2 "YXR 24" , - 3 "YXS 14" , - 4 "YXT 24" , - 5 "YXU 24" , - 6 "YXX 06" , - 7 "YXY 04" , - 8 "YYB 14" , - 9 "YYC 24" / - - DATA IGROUP12 / - A "YYD 42" , - 1 "YYE 04" , - 2 "YYF 24" , - 3 "YYG 14" , - 4 "YYH 54" , - 5 "YYJ 06" , - 6 "YYL 04" , - 7 "YYN 84" , - 8 "YYQ 04" , - 9 "YYR 04" , - B "YYT 14" , - 1 "YYU 44" , - 2 "YYW 44" , - 3 "YYY 04" , - 4 "YYZ 24" , - 5 "YZD 06" , - 6 "YZE 04" , - 7 "YZF 04" , - 8 "YZH 14" , - 9 "YZP 84" , - C "YZS 04" , - 1 "YZT A4" , - 2 "YZU 14" , - 3 "YZV 84" , - 4 "YZW 04" , - 5 "YZX 84" , - 6 "YZY 04" , - 7 "ZST 14" , - 8 "ZUE 24" , - 9 "ZUM 24" , - D "ZZV 54" , !... LAST DATA 31 of 80 in 12th group -C ... BLANK FILL BEYOND LAST DATA TO DIMENSIONED SIZE - 1 " " , - 2 " " , - 3 " " , - 4 " " , - 5 " " , - 6 " " , - 7 " " , - 8 " " , - 9 " " , - E " " , - 1 " " , - 2 " " , - 3 " " , - 4 " " , - 5 " " , - 6 " " , - 7 " " , - 8 " " , - 9 " " , - F " " , - 1 " " , - 2 " " , - 3 " " , - 4 " " , - 5 " " , - 6 " " , - 7 " " , - 8 " " , - 9 " " , - G " " , - 1 " " , - 2 " " , - 3 " " , - 4 " " , - 5 " " , - 6 " " , - 7 " " , - 8 " " , - 9 " " , - H " " , - 1 " " , - 2 " " , - 3 " " , - 4 " " , - 5 " " , - 6 " " , - 7 " " , - 8 " " , - 9 " " / - END diff --git a/util/sorc/gendata.fd/bdsmnam.f b/util/sorc/gendata.fd/bdsmnam.f deleted file mode 100755 index 85ccaab466..0000000000 --- a/util/sorc/gendata.fd/bdsmnam.f +++ /dev/null @@ -1,1014 +0,0 @@ - BLOCK DATA BDSMNAM -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: BDSMNAM BLOCK DATA LIST OF STN IDENTS & AFOS ZOOM -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 1996-11-14 -C -C ABSTRACT: BLOCK DATA CONTAINING 5-DIGIT (BLOCK+STN) NUMBER AND -C AFOS ZOOM ATTRIBUTES -C -C COMMON /SMNAM/MAXNSMS,KSMSTN(960) -- STATIONS,AFOS_ZOOM. -C -C THIS TABLE IS USED IN NASFCPLT FOR MAKING SURFACE MAPS -C -C PROGRAM HISTORY LOG: -C 80-04-21 ROBERT JIRSEK, ORIGINAL AUTHOR -C 96-11-14 SHIMOMURA -- CONVERTED FROM IBM ASSEMBLY LANGUAGE "DC" -C FORMAT INTO FORTRAN DATA STATEMENT FORMAT -C -C USAGE: -C EXTERNAL BDSMNAM -C COMMON /SMNAM/ MAXNSMS,KSMSTN(960) -C (LABELLED COMMON NAME IN CALLING PROGRAM) -C -C OUTPUT ARGUMENT LIST: -C -C COMMON /SMNAM/MAXNSMS,KSMSTN -C INTEGER MAXNSMS -C DATA MAXNSMS /942/ -C INTEGER KSMSTN(960) -C -C KSMSTN(J) = 5-DIGIT STATION IDENTIFIERS (ASCII), LEFT-JUSTIFIED -C 2-HEX DIGIT AFOS ATTRIBUTES (ASCII), RIGHT-JUSTIFIED -C IN THE SAME 8-BYTE WORD -C BLANK FILL IN BETWEEN -C -C REMARKS: -C CAUTION: I HAVE ADDED A DATA-COUNT AS THE FIRST WORD IN THE -C LABELLED COMMON AREA. -C -C IN USERS SOURCE CODE INCLUDE: -C EXTERNAL BDSMNAM -C WHICH WILL FORCE THE LINKAGE-EDITOR TO LOOK FOR bdSMNAM.o -C -C I HAVE SORTED THE LIST BY ASCII 5-DIGIT STATION IDENTIFIERS -C -C CAUTION: THIS IS ALL IN ASCII IN THE CRAY VERSION. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - COMMON /SMNAM/ MAXNSMS,KSMSTN - INTEGER MAXNSMS - DATA MAXNSMS / 942 / - INTEGER KSMSTN(960) - - INTEGER IGROUP01(80) - INTEGER IGROUP02(80) - INTEGER IGROUP03(80) - INTEGER IGROUP04(80) - INTEGER IGROUP05(80) - INTEGER IGROUP06(80) - INTEGER IGROUP07(80) - INTEGER IGROUP08(80) - INTEGER IGROUP09(80) - INTEGER IGROUP10(80) - INTEGER IGROUP11(80) - INTEGER IGROUP12(80) - - EQUIVALENCE (KSMSTN(001),IGROUP01(1)) - EQUIVALENCE (KSMSTN(081),IGROUP02(1)) - EQUIVALENCE (KSMSTN(161),IGROUP03(1)) - EQUIVALENCE (KSMSTN(241),IGROUP04(1)) - EQUIVALENCE (KSMSTN(321),IGROUP05(1)) - EQUIVALENCE (KSMSTN(401),IGROUP06(1)) - EQUIVALENCE (KSMSTN(481),IGROUP07(1)) - EQUIVALENCE (KSMSTN(561),IGROUP08(1)) - EQUIVALENCE (KSMSTN(641),IGROUP09(1)) - EQUIVALENCE (KSMSTN(721),IGROUP10(1)) - EQUIVALENCE (KSMSTN(801),IGROUP11(1)) - EQUIVALENCE (KSMSTN(881),IGROUP12(1)) - -C NORTH AMERICA SFC PLOT SYNOPTIC (SM) TABLE. MAR 26, 77. -C - DATA IGROUP01 / - 1 "01001 01" , - 1 "01005 03" , - 1 "01010 03" , - 1 "01025 01" , - 1 "01028 01" , - 1 "01055 01" , - 1 "01061 05" , - 1 "01062 01" , - 1 "01098 05" , - 1 "01105 01" , - 1 "01115 03" , - 1 "01152 05" , - 1 "01205 01" , - 1 "01215 05" , - 1 "01228 05" , - 1 "01241 01" , - 1 "01262 05" , - 1 "01311 03" , - 1 "01384 01" , - 1 "01415 01" , - 1 "01427 05" , - 1 "01448 03" , - 1 "01482 05" , - 1 "01488 03" , - 1 "02050 05" , - 1 "02052 03" , - 1 "02054 03" , - 1 "02057 01" , - 1 "02062 03" , - 1 "02063 01" , - 1 "02066 01" , - 1 "02067 03" , - 1 "02069 03" , - 1 "02073 03" , - 1 "02075 05" , - 1 "02077 01" , - 1 "02084 01" , - 1 "02087 03" , - 1 "02090 03" , - 1 "02095 01" , - 1 "02098 03" , - 1 "02102 05" , - 1 "02105 03" , - 1 "02135 03" , - 1 "02150 05" , - 1 "02242 03" , - 1 "02807 03" , - 1 "02836 01" , - 1 "02897 05" , - 1 "02911 01" , - 1 "02929 01" , - 1 "02935 03" , - 1 "02942 05" , - 1 "02963 03" , - 1 "02974 01" , - 1 "02986 03" , - 1 "03005 01" , - 1 "03017 03" , - 1 "03026 01" , - 1 "03032 03" , - 1 "03068 05" , - 1 "03075 03" , - 1 "03091 01" , - 1 "03100 01" , - 1 "03135 03" , - 1 "03140 05" , - 1 "03160 05" , - 1 "03171 03" , - 1 "03204 01" , - 1 "03222 05" , - 1 "03245 03" , - 1 "03257 03" , - 1 "03302 03" , - 1 "03323 05" , - 1 "03334 03" , - 1 "03388 03" , - 1 "03396 01" , - 1 "03494 05" , - 1 "03497 03" , - 1 "03603 01" / - - DATA IGROUP02 / - 1 "03604 03" , - 1 "03628 03" , - 1 "03772 01" , - 1 "03776 03" , - 1 "03797 05" , - 1 "03804 01" , - 1 "03809 03" , - 1 "03839 03" , - 1 "03865 05" , - 1 "03915 05" , - 1 "03917 03" , - 1 "03952 03" , - 1 "03953 01" , - 1 "03955 03" , - 1 "03962 05" , - 1 "03965 03" , - 1 "03969 05" , - 1 "03976 01" , - 1 "03980 03" , - 1 "04005 01" , - 1 "04013 05" , - 1 "04018 01" , - 1 "04030 03" , - 1 "04048 05" , - 1 "04063 03" , - 1 "04077 01" , - 1 "04082 01" , - 1 "04097 03" , - 1 "04165 03" , - 1 "04175 01" , - 1 "04202 01" , - 1 "04210 01" , - 1 "04212 03" , - 1 "04218 01" , - 1 "04220 03" , - 1 "04230 01" , - 1 "04231 03" , - 1 "04235 05" , - 1 "04240 03" , - 1 "04250 01" , - 1 "04260 01" , - 1 "04270 05" , - 1 "04272 03" , - 1 "04320 01" , - 1 "04330 03" , - 1 "04338 01" , - 1 "04340 01" , - 1 "04350 01" , - 1 "04360 01" , - 1 "04365 03" , - 1 "04380 01" , - 1 "04390 01" , - 1 "06009 03" , - 1 "06011 01" , - 1 "06030 05" , - 1 "06052 01" , - 1 "06089 03" , - 1 "06119 05" , - 1 "06160 05" , - 1 "06180 01" , - 1 "06191 03" , - 1 "06220 01" , - 1 "06235 03" , - 1 "06240 05" , - 1 "06407 05" , - 1 "06447 03" , - 1 "06451 01" , - 1 "06476 05" , - 1 "06590 03" , - 1 "06610 01" , - 1 "06670 03" , - 1 "06700 05" , - 1 "06720 05" , - 1 "07005 03" , - 1 "07024 01" , - 1 "07070 05" , - 1 "07100 03" , - 1 "07110 01" , - 1 "07130 03" , - 1 "07149 01" / - - DATA IGROUP03 / - 1 "07150 03" , - 1 "07169 03" , - 1 "07180 03" , - 1 "07190 05" , - 1 "07207 03" , - 1 "07222 05" , - 1 "07240 01" , - 1 "07257 03" , - 1 "07265 05" , - 1 "07280 03" , - 1 "07335 03" , - 1 "07412 01" , - 1 "07460 01" , - 1 "07481 05" , - 1 "07486 03" , - 1 "07510 03" , - 1 "07535 05" , - 1 "07558 05" , - 1 "07602 01" , - 1 "07630 03" , - 1 "07647 03" , - 1 "07650 01" , - 1 "07690 03" , - 1 "07747 03" , - 1 "07761 01" , - 1 "08001 01" , - 1 "08002 03" , - 1 "08008 03" , - 1 "08011 05" , - 1 "08015 03" , - 1 "08023 05" , - 1 "08025 03" , - 1 "08027 05" , - 1 "08042 03" , - 1 "08045 05" , - 1 "08055 05" , - 1 "08075 01" , - 1 "08084 05" , - 1 "08140 05" , - 1 "08141 03" , - 1 "08160 01" , - 1 "08161 03" , - 1 "08180 05" , - 1 "08181 01" , - 1 "08202 05" , - 1 "08221 01" , - 1 "08227 03" , - 1 "08233 05" , - 1 "08261 05" , - 1 "08280 05" , - 1 "08284 01" , - 1 "08306 03" , - 1 "08314 01" , - 1 "08348 01" , - 1 "08360 01" , - 1 "08373 03" , - 1 "08391 01" , - 1 "08419 03" , - 1 "08449 05" , - 1 "08482 03" , - 1 "08487 01" , - 1 "08495 05" , - 1 "08503 01" , - 1 "08506 03" , - 1 "08509 01" , - 1 "08512 03" , - 1 "08515 01" , - 1 "08521 03" , - 1 "08524 01" , - 1 "08536 01" , - 1 "08538 01" , - 1 "08543 05" , - 1 "08545 01" , - 1 "08549 03" , - 1 "08554 03" , - 1 "08557 05" , - 1 "08562 05" , - 1 "08568 05" , - 1 "08571 03" , - 1 "08575 03" / - - DATA IGROUP04 / - 1 "08583 01" , - 1 "08589 01" , - 1 "08594 01" , - 1 "09162 03" , - 1 "09185 01" , - 1 "09385 03" , - 1 "09488 01" , - 1 "10002 03" , - 1 "10004 01" , - 1 "10129 03" , - 1 "10147 05" , - 1 "10320 03" , - 1 "10338 01" , - 1 "10384 01" , - 1 "10400 05" , - 1 "10513 03" , - 1 "10609 05" , - 1 "10637 01" , - 1 "10685 01" , - 1 "10687 03" , - 1 "10708 03" , - 1 "10763 03" , - 1 "10776 03" , - 1 "10852 03" , - 1 "10866 01" , - 1 "11010 05" , - 1 "11036 01" , - 1 "11120 01" , - 1 "11150 03" , - 1 "11231 01" , - 1 "11240 03" , - 1 "11518 05" , - 1 "11659 03" , - 1 "11723 03" , - 1 "11782 05" , - 1 "11934 01" , - 1 "12120 03" , - 1 "12150 01" , - 1 "12295 03" , - 1 "12330 05" , - 1 "12375 01" , - 1 "12495 05" , - 1 "12560 03" , - 1 "12772 05" , - 1 "12839 03" , - 1 "12860 01" , - 1 "12925 05" , - 1 "12942 03" , - 1 "12982 03" , - 1 "13014 03" , - 1 "13131 05" , - 1 "13209 03" , - 1 "13272 01" , - 1 "13333 01" , - 1 "13353 05" , - 1 "13388 05" , - 1 "13462 01" , - 1 "13586 03" , - 1 "15080 05" , - 1 "15120 01" , - 1 "15200 05" , - 1 "15310 05" , - 1 "15420 01" , - 1 "15421 03" , - 1 "15480 05" , - 1 "15614 01" , - 1 "15655 01" , - 1 "16044 05" , - 1 "16059 01" , - 1 "16080 03" , - 1 "16090 03" , - 1 "16105 01" , - 1 "16149 03" , - 1 "16158 01" , - 1 "16190 01" , - 1 "16230 03" , - 1 "16239 03" , - 1 "16242 01" , - 1 "16289 03" , - 1 "16310 01" / - - DATA IGROUP05 / - 1 "16320 01" , - 1 "16350 05" , - 1 "16400 03" , - 1 "16405 01" , - 1 "16460 05" , - 1 "16470 05" , - 1 "16520 05" , - 1 "16560 01" , - 1 "16597 01" , - 1 "16622 01" , - 1 "16641 05" , - 1 "16643 03" , - 1 "16682 01" , - 1 "16716 01" , - 1 "16749 01" , - 1 "17022 05" , - 1 "17030 01" , - 1 "17038 01" , - 1 "17050 03" , - 1 "17060 01" , - 1 "17082 03" , - 1 "17096 05" , - 1 "17112 01" , - 1 "17129 01" , - 1 "17200 01" , - 1 "17244 01" , - 1 "17292 03" , - 1 "17300 05" , - 1 "17330 05" , - 1 "17350 01" , - 1 "17601 03" , - 1 "17611 01" , - 1 "20026 01" , - 1 "20034 03" , - 1 "20046 01" , - 1 "20069 01" , - 1 "20087 01" , - 1 "20097 05" , - 1 "20274 01" , - 1 "20289 05" , - 1 "20353 01" , - 1 "20357 05" , - 1 "20388 01" , - 1 "20674 01" , - 1 "20744 01" , - 1 "20856 01" , - 1 "20864 03" , - 1 "20891 01" , - 1 "20943 05" , - 1 "20963 01" , - 1 "21301 03" , - 1 "21358 01" , - 1 "21405 03" , - 1 "21432 01" , - 1 "21504 01" , - 1 "21535 03" , - 1 "21541 05" , - 1 "21611 05" , - 1 "21613 03" , - 1 "21627 05" , - 1 "21636 03" , - 1 "21647 01" , - 1 "21711 03" , - 1 "21728 03" , - 1 "21733 03" , - 1 "21749 03" , - 1 "21802 01" , - 1 "21824 01" , - 1 "21835 03" , - 1 "21908 03" , - 1 "21931 01" , - 1 "21946 01" , - 1 "21955 03" , - 1 "21965 01" , - 1 "21982 01" , - 1 "22113 01" , - 1 "22127 03" , - 1 "22145 05" , - 1 "22165 01" , - 1 "22217 05" / - - DATA IGROUP06 / - 1 "22235 05" , - 1 "22271 03" , - 1 "22324 01" , - 1 "22408 05" , - 1 "22471 01" , - 1 "22522 01" , - 1 "22550 01" , - 1 "22602 05" , - 1 "22621 05" , - 1 "22641 05" , - 1 "22676 01" , - 1 "22802 01" , - 1 "22820 01" , - 1 "22845 01" , - 1 "22887 01" , - 1 "22892 05" , - 1 "22954 05" , - 1 "23022 01" , - 1 "23032 05" , - 1 "23058 05" , - 1 "23074 01" , - 1 "23105 05" , - 1 "23146 01" , - 1 "23179 05" , - 1 "23205 01" , - 1 "23274 01" , - 1 "23330 01" , - 1 "23331 03" , - 1 "23383 01" , - 1 "23405 05" , - 1 "23418 01" , - 1 "23465 05" , - 1 "23472 01" , - 1 "23499 05" , - 1 "23527 05" , - 1 "23552 01" , - 1 "23558 03" , - 1 "23589 01" , - 1 "23606 01" , - 1 "23631 01" , - 1 "23662 05" , - 1 "23678 01" , - 1 "23711 03" , - 1 "23724 01" , - 1 "23789 05" , - 1 "23804 01" , - 1 "23849 05" , - 1 "23884 01" , - 1 "23909 01" , - 1 "23914 03" , - 1 "23921 01" , - 1 "23933 01" , - 1 "23955 01" , - 1 "23966 01" , - 1 "23986 05" , - 1 "24105 01" , - 1 "24143 01" , - 1 "24190 01" , - 1 "24231 01" , - 1 "24266 01" , - 1 "24329 01" , - 1 "24343 01" , - 1 "24382 01" , - 1 "24396 03" , - 1 "24477 01" , - 1 "24488 03" , - 1 "24507 01" , - 1 "24557 01" , - 1 "24598 05" , - 1 "24629 01" , - 1 "24641 01" , - 1 "24688 01" , - 1 "24771 01" , - 1 "24817 01" , - 1 "24899 03" , - 1 "24908 01" , - 1 "24944 01" , - 1 "24959 01" , - 1 "24966 01" , - 1 "24988 03" / - - DATA IGROUP07 / - 1 "25034 03" , - 1 "25042 03" , - 1 "25051 01" , - 1 "25052 05" , - 1 "25062 03" , - 1 "25123 01" , - 1 "25138 05" , - 1 "25151 05" , - 1 "25173 01" , - 1 "25206 03" , - 1 "25248 01" , - 1 "25325 03" , - 1 "25356 05" , - 1 "25378 01" , - 1 "25392 03" , - 1 "25399 01" , - 1 "25400 03" , - 1 "25428 01" , - 1 "25503 01" , - 1 "25538 01" , - 1 "25551 01" , - 1 "25563 01" , - 1 "25594 01" , - 1 "25595 03" , - 1 "25621 05" , - 1 "25627 05" , - 1 "25656 03" , - 1 "25677 01" , - 1 "25703 01" , - 1 "25744 01" , - 1 "25767 01" , - 1 "25858 03" , - 1 "25913 01" , - 1 "25932 03" , - 1 "25954 01" , - 1 "25956 01" , - 1 "26038 03" , - 1 "26063 01" , - 1 "26115 01" , - 1 "26231 05" , - 1 "26258 01" , - 1 "26298 01" , - 1 "26422 01" , - 1 "26477 05" , - 1 "26544 05" , - 1 "26629 01" , - 1 "26666 05" , - 1 "26702 01" , - 1 "26781 01" , - 1 "26825 05" , - 1 "26850 01" , - 1 "26882 05" , - 1 "26941 05" , - 1 "26961 05" , - 1 "27037 01" , - 1 "27066 05" , - 1 "27196 01" , - 1 "27217 05" , - 1 "27242 05" , - 1 "27271 01" , - 1 "27331 05" , - 1 "27479 05" , - 1 "27532 05" , - 1 "27553 01" , - 1 "27595 01" , - 1 "27612 01" , - 1 "27707 01" , - 1 "27731 01" , - 1 "27758 05" , - 1 "27823 03" , - 1 "27947 01" , - 1 "27962 05" , - 1 "28097 01" , - 1 "28116 01" , - 1 "28144 01" , - 1 "28165 01" , - 1 "28383 01" , - 1 "28419 01" , - 1 "28428 03" , - 1 "28440 01" / - - DATA IGROUP08 / - 1 "28451 03" , - 1 "28465 03" , - 1 "28469 01" , - 1 "28698 01" , - 1 "28825 01" , - 1 "28900 01" , - 1 "28952 01" , - 1 "28978 01" , - 1 "29224 03" , - 1 "29231 01" , - 1 "29263 01" , - 1 "29282 01" , - 1 "29289 03" , - 1 "29574 01" , - 1 "29612 01" , - 1 "29634 01" , - 1 "29642 03" , - 1 "29649 01" , - 1 "29698 01" , - 1 "29869 01" , - 1 "29923 03" , - 1 "29925 01" , - 1 "30054 01" , - 1 "30117 01" , - 1 "30230 01" , - 1 "30246 03" , - 1 "30263 01" , - 1 "30385 01" , - 1 "30469 01" , - 1 "30521 01" , - 1 "30554 01" , - 1 "30638 01" , - 1 "30714 01" , - 1 "30757 03" , - 1 "30758 01" , - 1 "30766 01" , - 1 "30768 03" , - 1 "30781 01" , - 1 "30915 03" , - 1 "30935 01" , - 1 "30975 01" , - 1 "31054 01" , - 1 "31088 01" , - 1 "31123 01" , - 1 "31168 01" , - 1 "31199 01" , - 1 "31286 01" , - 1 "31329 01" , - 1 "31369 03" , - 1 "31371 01" , - 1 "31421 01" , - 1 "31474 01" , - 1 "31510 01" , - 1 "31561 01" , - 1 "31705 03" , - 1 "31707 01" , - 1 "31735 01" , - 1 "31754 03" , - 1 "31786 03" , - 1 "31866 01" , - 1 "31909 03" , - 1 "31959 01" , - 1 "31960 01" , - 1 "31993 05" , - 1 "32004 05" , - 1 "32010 03" , - 1 "32012 01" , - 1 "32027 05" , - 1 "32061 01" , - 1 "32069 03" , - 1 "32076 05" , - 1 "32098 03" , - 1 "32121 01" , - 1 "32150 05" , - 1 "32165 05" , - 1 "32186 01" , - 1 "32195 03" , - 1 "32207 01" , - 1 "32217 01" , - 1 "32252 01" / - - DATA IGROUP09 / - 1 "32287 03" , - 1 "32389 01" , - 1 "32408 03" , - 1 "32411 01" , - 1 "32509 01" , - 1 "32540 03" , - 1 "32564 01" , - 1 "32618 01" , - 1 "33008 05" , - 1 "33019 05" , - 1 "33036 01" , - 1 "33041 05" , - 1 "33261 05" , - 1 "33317 01" , - 1 "33345 01" , - 1 "33393 01" , - 1 "33429 03" , - 1 "33526 05" , - 1 "33631 01" , - 1 "33658 05" , - 1 "33711 01" , - 1 "33791 03" , - 1 "33815 01" , - 1 "33833 05" , - 1 "33869 05" , - 1 "33889 01" , - 1 "33945 01" , - 1 "33983 05" , - 1 "34009 01" , - 1 "34122 05" , - 1 "34172 01" , - 1 "34247 01" , - 1 "34300 01" , - 1 "34336 03" , - 1 "34363 05" , - 1 "34398 05" , - 1 "34519 05" , - 1 "34560 01" , - 1 "34579 05" , - 1 "34691 01" , - 1 "34731 01" , - 1 "34838 05" , - 1 "34866 05" , - 1 "34880 01" , - 1 "35108 01" , - 1 "35191 01" , - 1 "35229 01" , - 1 "35345 01" , - 1 "35361 03" , - 1 "35363 01" , - 1 "35394 01" , - 1 "35416 01" , - 1 "35671 03" , - 1 "35683 01" , - 1 "35700 01" , - 1 "35715 03" , - 1 "35729 01" , - 1 "35746 01" , - 1 "35763 01" , - 1 "35796 01" , - 1 "35884 01" , - 1 "35953 01" , - 1 "35969 03" , - 1 "35997 01" , - 1 "36001 01" , - 1 "36052 01" , - 1 "36096 01" , - 1 "36097 03" , - 1 "36126 01" , - 1 "36177 01" , - 1 "36213 01" , - 1 "36259 01" , - 1 "36498 01" , - 1 "36535 01" , - 1 "36729 01" , - 1 "36859 01" , - 1 "36870 01" , - 1 "37018 01" , - 1 "37057 01" , - 1 "37085 01" / - - DATA IGROUP10 / - 1 "37260 01" , - 1 "37390 01" , - 1 "37472 01" , - 1 "37651 01" , - 1 "37789 01" , - 1 "37860 01" , - 1 "37985 01" , - 1 "46689 05" , - 1 "46692 05" , - 1 "46696 01" , - 1 "46697 03" , - 1 "46736 01" , - 1 "46740 01" , - 1 "46743 03" , - 1 "46770 05" , - 1 "46810 01" , - 1 "47008 03" , - 1 "47014 01" , - 1 "47025 01" , - 1 "47035 01" , - 1 "47041 05" , - 1 "47058 01" , - 1 "47065 03" , - 1 "47105 01" , - 1 "47110 01" , - 1 "47112 03" , - 1 "47135 01" , - 1 "47138 03" , - 1 "47159 01" , - 1 "47161 03" , - 1 "47184 01" , - 1 "47401 01" , - 1 "47409 03" , - 1 "47412 01" , - 1 "47418 05" , - 1 "47420 01" , - 1 "47421 03" , - 1 "47425 05" , - 1 "47580 01" , - 1 "47582 05" , - 1 "47585 03" , - 1 "47590 01" , - 1 "47591 03" , - 1 "47598 05" , - 1 "47600 01" , - 1 "47602 03" , - 1 "47612 05" , - 1 "47634 05" , - 1 "47635 03" , - 1 "47636 01" , - 1 "47648 03" , - 1 "47662 01" , - 1 "47675 05" , - 1 "47677 03" , - 1 "47678 01" , - 1 "47740 01" , - 1 "47741 03" , - 1 "47743 05" , - 1 "47764 01" , - 1 "47777 05" , - 1 "47778 01" , - 1 "47808 05" , - 1 "47817 01" , - 1 "47819 03" , - 1 "47827 03" , - 1 "47837 01" , - 1 "47898 01" , - 1 "47899 03" , - 1 "47909 01" , - 1 "47918 01" , - 1 "47931 03" , - 1 "47936 01" , - 1 "47945 01" , - 1 "47971 01" , - 1 "60010 03" , - 1 "60015 01" , - 1 "60020 05" , - 1 "60030 05" , - 1 "60040 01" , - 1 "60096 01" / - - DATA IGROUP11/ - 1 "60101 01" , - 1 "60135 03" , - 1 "60155 03" , - 1 "60156 01" , - 1 "60230 03" , - 1 "60250 01" , - 1 "61415 01" , - 1 "61442 01" , - 1 "61600 01" , - 1 "61701 01" , - 1 "70026 01" , - 1 "70030 03" , - 1 "70045 05" , - 1 "70063 03" , - 1 "70086 01" , - 1 "70104 03" , - 1 "70121 01" , - 1 "70133 01" , - 1 "70173 03" , - 1 "70174 01" , - 1 "70200 01" , - 1 "70207 03" , - 1 "70219 01" , - 1 "70231 01" , - 1 "70261 01" , - 1 "70264 01" , - 1 "70271 01" , - 1 "70273 01" , - 1 "70291 01" , - 1 "70308 01" , - 1 "70316 01" , - 1 "70326 01" , - 1 "70333 01" , - 1 "70350 01" , - 1 "70361 01" , - 1 "70371 01" , - 1 "70381 03" , - 1 "70398 01" , - 1 "70414 01" , - 1 "70454 01" , - 1 "76225 01" , - 1 "76393 01" , - 1 "76458 01" , - 1 "76644 01" , - 1 "76679 01" , - 1 "76692 01" , - 1 "76723 01" , - 1 "78016 01" , - 1 "78073 01" , - 1 "78095 03" , - 1 "78103 01" , - 1 "78109 03" , - 1 "78118 01" , - 1 "78321 01" , - 1 "78325 01" , - 1 "78367 01" , - 1 "78384 01" , - 1 "78388 01" , - 1 "78439 01" , - 1 "78486 01" , - 1 "78526 01" , - 1 "78535 03" , - 1 "78583 01" , - 1 "78650 03" , - 1 "78663 01" , - 1 "78705 03" , - 1 "78706 01" , - 1 "78708 05" , - 1 "78720 01" , - 1 "78857 03" , - 1 "78862 01" , - 1 "78925 03" , - 1 "78946 01" , - 1 "78954 03" , - 1 "78970 01" , - 1 "78982 01" , - 1 "91066 01" , - 1 "91155 01" , - 1 "91161 03" , - 1 "91165 01" / - - DATA IGROUP12 / - 1 "91178 05" , - 1 "91182 03" , - 1 "91190 01" , - 1 "91191 03" , - 1 "91203 03" , - 1 "91212 01" , - 1 "91218 03" , - 1 "91222 01" , - 1 "91232 01" , - 1 "91245 01" , - 1 "91250 01" , - 1 "91275 01" , - 1 "91282 03" , - 1 "91285 01" , - 1 "91293 05" , - 1 "91317 03" , - 1 "91323 01" , - 1 "91334 01" , - 1 "91366 01" , - 1 "91408 01" , - 1 "91413 01" , - 1 "91487 01" , - 1 "91490 01" , -* blanks to fill out dimensioned array size - 1 57*" " / - END diff --git a/util/sorc/gendata.fd/chkfil.f b/util/sorc/gendata.fd/chkfil.f deleted file mode 100755 index b8eadbf253..0000000000 --- a/util/sorc/gendata.fd/chkfil.f +++ /dev/null @@ -1,62 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CHKFIL MAKE SURE THE FILE IS PRESENT -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-03-05 -C -C ABSTRACT: CHKFIL USES THE INQUIRE COMMAND TO SEE IF -C THE DATA FILE IS PRESENT -C -C PROGRAM HISTORY LOG: -C 97-03-05 LARRY SAGER -C -C USAGE: CALL CHKFIL (ITYP,CDATE,IRTC) -C INPUT ARGUMENT LIST: -C ITYP - TYPE FLAG (SYNOPTIC/METAR) -C CDATE - DATE OF FILE -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C IRTC - IRTC = 0 FILE PRESENT -C IRTC = 1 FILE ABSENT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE CHKFIL (ITYP,CDATE,IRTC) -C - CHARACTER*10 CDATE - CHARACTER*8 CSTAT(6) - CHARACTER*50 CNAME -C - LOGICAL AROUND -C - DATA CSTAT /'synop ','metar ','ships ','lcman ', - 1 'mbuoy ','dbuoy '/ -C - IRTC = 0 -C -C BUILD THE NAME OF THE INQUIRE FILE -C - CNAME = CSTAT(ITYP)(1:5) // '.' // CDATE -C -C INVOKE INQUIRE TO SEE IF THIS FILE EXISTS -C - INQUIRE(FILE=CNAME,EXIST=AROUND) - IF(.NOT. AROUND) IRTC = 1 - -C GEORGE VANDENBERGHE. 7/8/97 -C STOP HERE IF THERE IS NO SYNOPTIC DATA, OTHERWISE CONTINUE -C -C BOB HOLLERN. 9/16/99 -C WILL EXIT FROM THE SCRIPT gendata.sh IF NO SYNOPTIC DATA -C -CCC IF( ITYP .EQ. 1 .AND. IRTC .EQ. 1) THEN -CCC WRITE (102,*) 'NO SYNOP DATA. STOPPING HERE ' -CCC CALL ERREXIT(8) -CCC ENDIF - - RETURN - END diff --git a/util/sorc/gendata.fd/cldhgt.f b/util/sorc/gendata.fd/cldhgt.f deleted file mode 100755 index d3b212e462..0000000000 --- a/util/sorc/gendata.fd/cldhgt.f +++ /dev/null @@ -1,51 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLDHGT FORM THE GRAPHICS FORMAT. -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-09-27 -C -C ABSTRACT: CLDHGT INPUTS THE CLOUD HGT IN METERS AND RETURNS -C THE WMO CODE FIGURE -C -C PROGRAM HISTORY LOG: -C 96-09-27 LARRY SAGER -C -C USAGE: CALL CLDHGT (ARR, IN) -C INPUT ARGUMENT LIST: -C ARR - CLOUD HGT IN METERS -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C IN - WMO CLOUD HGT CODE FIGURE. -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE CLDHGT (ARR, IN) -C - IHGT = ARR - IN = 9 - IF (IHGT .LT. 50) THEN - IN = 0 - ELSE IF (IHGT .LT. 100) THEN - IN = 1 - ELSE IF (IHGT .LT. 200) THEN - IN = 2 - ELSE IF (IHGT .LT. 300) THEN - IN = 3 - ELSE IF (IHGT .LT. 600) THEN - IN = 4 - ELSE IF (IHGT .LT. 1000) THEN - IN = 5 - ELSE IF (IHGT .LT. 1500) THEN - IN = 6 - ELSE IF (IHGT .LT. 2000) THEN - IN = 7 - ELSE IF (IHGT .LT. 2500) THEN - IN = 8 - END IF -C - RETURN - END diff --git a/util/sorc/gendata.fd/clouds.f b/util/sorc/gendata.fd/clouds.f deleted file mode 100755 index 5739916a1b..0000000000 --- a/util/sorc/gendata.fd/clouds.f +++ /dev/null @@ -1,106 +0,0 @@ - SUBROUTINE CLOUDS(RRR, NRET, ARR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CLOUDS STORE THE CLOUD DATA -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-12-17 -C -C ABSTRACT: REDSFC STORES THE CLOUD GROUP DATA FROM BUFR TANKS -C INTO A USABLE FORM FOR THE AFOS PLOTFILE MAKER. -C -C PROGRAM HISTORY LOG: -C 96-12-17 LARRY SAGER -C -C USAGE: CALL CLOUDS (ARR, NRET, IRET) -C INPUT ARGUMENT LIST: -C RRR - BUFR CLOUD DATA -C NRET - PARAMETER RETURN CODE -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C ARR - ARRAY TO HOLD DATA FOR INPUT TO AFOS -C SURFACE PLOTFILE MAKER. -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ -C - REAL ARR (*) - REAL RRR (10,255) -C - DATA FMISS /9999999./ -C -C SEARCH FOR LOW MIDDLE AND HIGH CLOUD -C GROUPS (VSSO = 7,8,9) -C - J = 15 - DO JJ = 1,NRET - INDEX = NRET - JJ + 1 - RR = RRR(1,INDEX) - IF (RR .EQ. 7.) THEN - ARR(J) = RRR(2,INDEX) - ARR(J+1) = RRR(3,INDEX) - ARR(J+2) = RRR(4,INDEX) - END IF - IF (RR .EQ. 8.) THEN - ARR(J+3) = RRR(2,INDEX) - ARR(J+4) = RRR(3,INDEX) - ARR(J+5) = RRR(4,INDEX) - END IF - IF (RR .EQ. 9.) THEN - ARR(J+6) = RRR(2,INDEX) - ARR(J+7) = RRR(3,INDEX) - ARR(J+8) = RRR(4,INDEX) - END IF - IF (RR .EQ. 0.) THEN - IF(RRR(3,INDEX) .LT. 99990.) THEN - ARR(J+1) = RRR(3,INDEX) - END IF - IF(RRR(4,INDEX) .LT. 40. ) THEN - ITYP = RRR(4,INDEX) - ITY = ITYP / 10 - ILV = ITYP - ITY*10 - IF((ITY .GE. 1).AND.(ITY.LE.3)) THEN - IXX = (3 - ITY)*3 - IF(ILV .GT. 0) ARR(J+2+IXX) = ILV - END IF - END IF - END IF -C -C DECODE LOW MIDDLE HIGH CLOUDS -C (VSSO = 1,2,3) FROM METARS -C - IF((RR .GE. 1.) .AND. (RR .LE. 3.)) THEN - IN = 0 - IF(RRR(2,INDEX) .EQ. 8.) IN = 8 - IF(RRR(2,INDEX) .EQ. 11.) IN = 3 - IF(RRR(2,INDEX) .EQ. 12.) IN = 6 - IF(RRR(2,INDEX) .EQ. 13.) IN = 2 - IF(RRR(2,INDEX) .GT. 99990.) IN = 9 - K = 1 - IF (RRR(3,INDEX) .GT. 2000.) K = 4 - IF (RRR(3,INDEX) .GT. 5500.) K = 7 - IF (RRR(3,INDEX) .LT. 99990.) THEN - ARR(J+K) = RRR(3,INDEX) - ARR(J+K-1) = IN - END IF - IF (ARR(J-1) .GT. 99990.) THEN - ARR(J-1) = IN*12 - ELSE - IF (ARR(J-1) .LT. IN*12) ARR(J-1) = IN*12 - END IF - END IF - END DO -C -C SET WORK AREA TO MISSING -C - DO KK = 1,4 - DO JJ = 1,NRET - RRR(KK,JJ) = FMISS - END DO - END DO -C - RETURN - END diff --git a/util/sorc/gendata.fd/compile_gendata_wcoss.sh b/util/sorc/gendata.fd/compile_gendata_wcoss.sh deleted file mode 100755 index 642ac9c370..0000000000 --- a/util/sorc/gendata.fd/compile_gendata_wcoss.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec -make -mv gendata ../../exec -make clean diff --git a/util/sorc/gendata.fd/datafs.f b/util/sorc/gendata.fd/datafs.f deleted file mode 100755 index 2b64d79fe8..0000000000 --- a/util/sorc/gendata.fd/datafs.f +++ /dev/null @@ -1,69 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DATAFS FORM PLOTFILE ARRAY -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-12-10 -C -C ABSTRACT: DATAFS FORMS THE OUTPUT AFOS SURFACE PLOTFILE -C BLOCK AND WRITES WHEN FINISHED. -C -C PROGRAM HISTORY LOG: -C 96-12-10 LARRY SAGER -C -C USAGE: CALL DATAFS (IARR, OTABL, KSTN, IAUTO, IRTN ) -C INPUT ARGUMENT LIST: -C ARR - OBSERVATION IN UNPACKED GRAPHICAL FORMAT -C KSTN - POINTER TO NEXT LOCATION IN OTABL ARRAY -C IAUTO - AUTOMATIC/MANUAL STATION FLAG -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C OTABL - SURFACE OB STORAGE ARRAY -C IRTN - RETURN CODE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE DATAFS (IARR, OTABL, KSTN, IAUTO, IRTN ) -C -C THIS SUBROUTINE FORMS THE OUTPUT AFOS SURFACE -C PLOTFILE BLOCK. -C - CHARACTER*1 OLINE(100) - CHARACTER*1 OHED(100) - CHARACTER*1 OTABL(20000,150) -C - INTEGER IARR(*) -C -C BUILD THE AFOS PLOT FILE BLOCK. -C START BY BUILDING THE AFOS PLOTFILE HEADER -C - CALL HEAFOS(IARR, OHED, IAUTO, ILHD) - IF(IARR(13).GT.0) THEN - IA = IARR(13) - IB = IARR(14) - ILAT = IARR(1) - ILON = IARR(2) -C -C RETRIEVE THE DATA FROM THIS REPORT -C - CALL GETDAT (IARR(IB), OLINE, ILAT, ILON, ILNG) - IF (ILNG .GT. 0) THEN -C -C STORE THE AFOS PLOTFILE FORMAT -C - DO J = 1,ILHD - OTABL(KSTN,J) = OHED(J) - END DO - DO J = 1,ILNG - OTABL(KSTN,ILHD+J) = OLINE(J) - END DO -C PRINT 109,(OTABL(KSTN,KK),KK=1,70 ) - 109 FORMAT(70a1) - END IF - END IF -C - RETURN - END diff --git a/util/sorc/gendata.fd/filter.f b/util/sorc/gendata.fd/filter.f deleted file mode 100755 index f971b8b1cf..0000000000 --- a/util/sorc/gendata.fd/filter.f +++ /dev/null @@ -1,113 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FILTER FILTER THE STATIONS -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-01-07 -C -C ABSTRACT: FILTER THINS THE DATA -C -C PROGRAM HISTORY LOG: -C 97-01-07 LARRY SAGER -C -C USAGE: CALL FILTER (HDR, HDT, ARR, IPRIOR, ITYP, IRYN) -C INPUT ARGUMENT LIST: -C HDR - STATION HEADER INFORMATION -C HDT - STATION DATE INFORMATION -C ARR - STATION DATA -C ITYP - TYPE FLAG (SYNOPTIC/METAR) -C IJMIN - JULIAN MINUTE FOR RUN TIME -C IJREP - JULIAN MINUTE FOR REPORT OB TIME -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C IRYN - PRIORITY FROM TABLES -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE FILTER (HDR, HDT, ARR, IPRIOR, ITYP, - 1 IJMIN, IJREP, IRYN) -C -C THIS SUBROUTINE USES THE PRIORITY TABLES TO DO -C AN INITIAL THINNING OF THE DATA -C -C RETURN CODE IRET = 1 ACCEPT REPORT -C = 0 REJECT REPORT -C - CHARACTER*8 CSTAT -C - REAL ARR(*) - REAL HDR(*) - REAL HDT(*) -C - INTEGER IWGT(40) -C - LOGICAL LSWIT -C - EQUIVALENCE (CSTAT,RSTAT) - EQUIVALENCE (RSTAT,ISTAT) -C - DATA IWGT /8, 0, 4, 4, 1, 1, 7*0, 1, 1, - 1 2*0, 1, 2*0, 1, 2*0, 2, 2, 1, 3*0, - 2 7*1, 4*0/ -C - IRYN = 1 -C -C START BY ASSIGNING A BASIC STATION WEIGHT ACCORDING -C TO DATA TYPE -C - RSTAT = HDR(1) - LSWIT = .TRUE. - IF (ITYP .EQ. 1) THEN -C -C LKLNDNAM SEARCHES THE LAND TABLES TO FIND THE -C PRIORITY FOR THIS STATION -C - CALL LKLNDNAM(CSTAT, LSWIT, IPRIOR, IRET) - ELSE - IRET = 0 - IPRIOR = 20 - IF (ITYP .GT. 3) IPRIOR = 50 - END IF -C -C ADD WEIGHT TO THE BASIC PRIORITY FOR EACH DATA -C PARAMETER PRESENT -C - IF (IRET .NE. -1)THEN - IADD = 0 - DO K = 1,40 - IF (ARR(K) .LT. 999999.) IADD = IADD + IWGT(K) - END DO -C -C HANDLE THE PRESENT WEATHER SEPARATELY -C - IWW = ARR(12) - IF (IWW .LT. 99999) IADD = IADD + IWW/10 + 1 -C -C ADD THE EXTRA WEIGHT TO THE PRIORITY OF THIS -C STATION -C - IPRIOR = IPRIOR + IADD - END IF -C -C REDUCE THE PRIORITY BY 50% IF THIS REPORT IS MORE THAN -C 40 MINUTES OLD -C - IDIF = IJMIN - IJREP - IF(IDIF .LT. 0) IDIF = -IDIF - IF(IDIF .GT. 40) THEN - IPRIOR = IPRIOR/2 -C PRINT *,' HOUR OLD--PRIORITY REDUCED 50%' - END IF - -C -C SET THE RETURN FLAG TO 0 (REJECT) IF THE STATION HAS A -C VERY LOW PRIORITY -C -C IF (IPRIOR .LT. 5) IRYN = 0 -C -C COMPARE THE - RETURN - END diff --git a/util/sorc/gendata.fd/forsfc.f b/util/sorc/gendata.fd/forsfc.f deleted file mode 100755 index 3ec6dd9ac3..0000000000 --- a/util/sorc/gendata.fd/forsfc.f +++ /dev/null @@ -1,238 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FORSFC FORM THE GRAPHICS FORMAT. -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-09-17 -C -C ABSTRACT: FORSFC TAKES UNPACKED BUFR FORMAT AND CONVERTS IT -C INTO A SIMPLE FORMAT FOR USE IN GRAPHICS PROGRAMS. -C -C PROGRAM HISTORY LOG: -C 96-09-17 LARRY SAGER -C -C USAGE: CALL FORSFC (HDR, HDT, ARR, IARR, IRET1 ) -C INPUT ARGUMENT LIST: -C HDR - UNPACKED BUFR HEADING INFORMATION (ID, LAT/LON ...) -C HDT - UNPACKED BUFR DAT/TIME INFORMATION -C ARR - UNPACKED BUFR MANDATORY LEVEL DATA -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C IARR - OUTPUT IN GRAPHICS FORMAT. -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE FORSFC (HDR, HDT, ARR, IARR, IRET1 ) -C -C THIS SUBROUTINE CONVERTS THE BUFR DATA AND STORES INTO -C A FORMATED ARRAY. -C - REAL ARR(*) -C - CHARACTER*8 CTEMP -C - INTEGER IARR (*) - INTEGER IPWN (100) - DIMENSION HDR (*) - DIMENSION HDT (*) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA IMISS /999999/ - DATA KMISS /Z'20202020'/ - DATA IPWN /0,1,2,3,4,5,0,0,0,0,10,76,13,0,0,0,0,0,18,0, - 1 28,21,0,21,22,25,29,31,31,34,28,41,42,44,46,48, - 1 0,0,0,0,21,63,65,63,65,73,75,67,67,0,51,51,53,55, - 1 56,57,57,58,59,0,61,61,63,65,66,67,67,68,69,0, - 1 71,71,73,75,79,79,79,0,0,0,81,80,81,81,82,85,86,86, - 1 0,0,95,91,92,96,17,97,99,0,0,19/ -C -C----------------------------------------------------------------------| -C SET THE BUFR TYPE AND SUBTYPE-- FOR NOW ZEROES -C - IARR (9) = 0 - IARR (10)= 0 -C -C STATION ID -C - RTEMP = HDR (1) - IARR(11) = ITEMP - IARR(12) = KMISS - IARR(1) = NINT(HDR(2)*10.) - IARR(2) = NINT(HDR(3)*10.) - IARR(7) = NINT(HDR(4)) -C -C STORE THE HOUR OF THIS REPORT -C - RMINS = HDT(5)*1.6666666 - RHRMN = HDT(4)*100. + RMINS - IARR(4) = NINT(RHRMN) - IDX = 34 - IARR(13) = 1 - IARR(14) = IDX + 1 -C -C INITIALIZE THE DATA AREA TO MISSING -C - DO K = 1,40 - IARR(IDX + K) = IMISS - END DO -C -C STORE THE DATA INTO THE OUTPUT ARRAY. -C START WITH MEAN SEA LEVEL PRESSURE -C AND STATION PRESSURE -C - IARR(IDX+1) = NINT(ARR(1)*.1) - IARR(IDX+2) = NINT(ARR(2)*.1) -C -C WIND DIRECTION AND SPEED -C - IARR(IDX+3) = NINT(ARR(3)) - IF (ARR(4) .LT. 99999.) THEN - SPED = ARR(4)*1.94 - IARR(IDX+4) = NINT(SPED) - END IF -C -C TEMPERATURE, DEW POINT, MAX/MIN -C - IF (ARR(5).LT.99999.) THEN - TEMP = ARR(5) - 273.16 - IARR(IDX+5) = NINT(10*TEMP ) - END IF - IF (ARR(6).LT.99999.) THEN - TEMP = ARR(6) - 273.16 - IARR(IDX+6) = NINT(10*TEMP ) - END IF - IF (ARR(7).LT.99999.) THEN - TEMP = ARR(7) - 273.16 - IARR(IDX+7) = NINT(10*TEMP ) - END IF - IF (ARR(8).LT.99999.) THEN - TEMP = ARR(8) - 273.16 - IARR(IDX+8) = NINT(10*TEMP ) - END IF -C -C QUALITY MARKS -C - IARR(IDX+9) = NINT(ARR(9)) -C -C HORIZONTAL VISIBILITY -C - IF (ARR(11).LT.99999.) THEN - IF (ARR(11).LE.50.) THEN - IARR(IDX+11) = 90 - ELSE - IVIS = ARR(11)*.001 + 0.5 - IF (IVIS.GT.5.) IVIS = IVIS + 50. - IARR(IDX+11) = IVIS - END IF - END IF -C -C PRESENT AND PAST WEATHER -C - IARR(IDX+12) = NINT(ARR(12)) - IW = IARR(IDX+12) - IF((IW .GE. 100) .AND. (IW .LT. 500)) THEN - IW = IW - 99 - IF(IW .GT. 99) THEN - IARR(IDX+12) = 99999 - ELSE - IARR(IDX+12) = IPWN(IW) - END IF - END IF - IARR(IDX+13) = NINT(ARR(13)) -C -C FRACTION OF THE CELESTIAL DOME -C - IARR(IDX+14) = NINT(ARR(14)) -C -C FRACTION OF THE LOW,MIDDLE CELESTIAL DOME -C - IF(ARR(18) .LT. 99999.) IARR(IDX+15) = NINT(ARR(18)) - IF(ARR(15) .LT. 99999.) IARR(IDX+15) = NINT(ARR(15)) -C -C CLOUD TYPES LOW, MIDDLE HIGH AND CLOUD HGT -C - IARR(IDX+16) = ARR(17) - IARR(IDX+18) = ARR(20) - IARR(IDX+19) = ARR(23) -C -C CLOUD HGT CONVERSION -C - IHGT = 99999 - IF (ARR(22) .LT. 99999.) IHGT = NINT(ARR(22)) - IF (ARR(19) .LT. 99999.) IHGT = NINT(ARR(19)) - IF (ARR(16) .LT. 99999.) IHGT = NINT(ARR(16)) - IF (IHGT .LT. 99999) THEN - CALL CLDHGT(IHGT, IN) - IARR(IDX+17) = IN - END IF -C -C CHARACTERISTIC OF PRESSURE TENDENCY AND -C PRESSURE TENDENCY -C - IF (ARR(25).LT.99999.) THEN - IARR(IDX+20) = NINT(ARR(24)) - IARR(IDX+21) = NINT(ARR(25)*.1) - ELSE -C -C IF NO 3-HR PRESSURE TENDENCY, TRY FOR 24-HR -C PRESSURE TENDENCY -C - IF(ARR(40) .LT. 99999.) THEN - IARR(IDX+20) = 9 - IARR(IDX+21) = NINT(ARR(40)*.01) - END IF - END IF -C -C -C PRECIPITATION AMOUNT, SNOW DEPTH, 24-HR PRECIP -C # OF 6HR GROUPS -C - IARR(IDX+22) = NINT(10.*ARR(26)) - IARR(IDX+23) = NINT(ARR(27)) - IARR(IDX+24) = NINT(ARR(28)) -C -C ALTIMETER SETTING -- NOT REPORTED BY SHIPS -C - IARR(IDX+25) = NINT(ARR(29)) -C -C WAVE PERIOD AND HEIGHT -C - IARR(IDX+26) = NINT(ARR(30)) - IARR(IDX+27) = NINT(ARR(31)) -C -C IF WAVE GROUP IS NOT AVAILABLE USE THE -C WIND WAVE GROUP -C - IF((IARR(IDX+26) .GT. 99990) .AND. (IARR(IDX+27) .GT. 99990))THEN - IARR(IDX+26) = -NINT(ARR(32)) - IARR(IDX+27) = -NINT(ARR(33)) - END IF -C -C SWELL WAVE HEIGHT, PERIOD, AND DIRECTION -C - IARR(IDX+28) = NINT(ARR(34)) - IARR(IDX+29) = NINT(ARR(35)) - IARR(IDX+30) = NINT(ARR(36)) -C -C SEA SURFACE TEMPERATURE -C - IF (ARR(37).LT.99999.) THEN - TEMP = ARR(37) - 273.16 - IARR(IDX+31) = NINT(10*TEMP ) - END IF -C -C DIRECTION OF SHIP -C - IARR(IDX+32) = NINT(ARR(38)) -C -C SPEED OF SHIP -C - IARR(IDX+33) = NINT(ARR(39)) -C - RETURN - END diff --git a/util/sorc/gendata.fd/gendata.f b/util/sorc/gendata.fd/gendata.f deleted file mode 100755 index ebef19ce27..0000000000 --- a/util/sorc/gendata.fd/gendata.f +++ /dev/null @@ -1,265 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: GENDATA -C PRGMMR: HOLLERN ORG: NP12 DATE: 1999-09-20 -C -C ABSTRACT: GENDATA READS THE SURFACE SYNOPTIC, SURFACE SHIP, -C MOORED BUOYS, DRIFTING BUOYS AND CMAN OBSERVATIONS -C AND CREATES A FILTERED SURFACE AFOS PLOTFILE FOR -C USE IN MAKING THE TROPICAL MERCATOR SURFACE STRIP ON -C THE IBM SP. -C -C -C PROGRAM HISTORY LOG: -C 96-12-10 LARRY SAGER -C 97-07-08 GEORGE VANDENbERGHE. MADE ABSENT SYNOP DATA -C A FATAL ERROR. -C 98-04-24 BOB HOLLERN, MADE THE PROGRAM Y2K COMPLIANT -C 99-09-16 BOB HOLLERN, CONVERTED THE PROGRAM TO RUN ON THE -C IBM SP. THIS ENTAILED REPLACING SEQUENTIAL WITH -C DIRECT ACCESS I/O TO WRITE THE NHPLOT FILE -C RECORDS. THE PROGRAM WAS MODIFIED TO READ IN A -C 4-DIGIT YEAR IN THE PDY DATE VARIABLE. CHECKS -C WERE ADDED IN THE SUBROUTINE THNSTN TO PREVENT -C AN ARRAY SUBSCRIPT OF ZERO. -C 2013-02-20 KRISHNA KUMAR PORTED THIS CODE TO THE WCOSS -C -C USAGE: -C INPUT FILES: -C FORT.05 - DATE/TIME -C FORT.11 - SURFACE SYNOPTIC DATA FILE -C FORT.12 - METAR DATA -C FORT.13 - SFCSHP DATA FILE -C FORT.14 - CMAN DATA FILE -C FORT.15 - MOORED BUOY DATA FILE -C FORT.16 - DRIFTING BUOY DATA FILE -C FORT.17 - GRAPHICS PIL LIST -C -C OUTPUT FILES: (INCLUDING SCRATCH FILES) -C FORT.52 - SURFACE PLOTFILE -C -C SUBPROGRAMS CALLED: (LIST ALL CALLED FROM ANYWHERE IN CODES) -C UNIQUE: - GETDAT HEAFOS REDSFC AFZOOM DATAFS ADDLAB -C LKLNDNAM BDSANAM BDSMNAM CHKFIL FILTER -C IJAFOS OUTPLT THNSTN -C LIBRARY: -C COMMON - ORDERS -C W3LIB - W3UTCDAT -C GRAPHICS - BIN2CH TRUIJ GTAPIL DAYOWK -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -c COND = 8 - NO SYNOPTIC DATA. dON'T CONTINUE (GEORGE V) -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - PROGRAM GENDATA -C - CHARACTER*10 CDATE -C - CHARACTER*8 CWORK - CHARACTER*8 CSTN(20000) -C - CHARACTER*1 OTABL(20000,150) -CKUMAR CHARACTER*1 OHED(100) - CHARACTER*100 OHED - CHARACTER*1 OWORK(8) - CHARACTER*1 OEND(32) - CHARACTER*10 CHEDA - CHARACTER*4 PIL(12) - CHARACTER*1 OHEDR(133) -C - REAL ARR(300) - REAL RLIMS(4) -C - DIMENSION HDR(10), HDT(10) -C - INTEGER IARR(300) - INTEGER IOUTUN(6) - INTEGER ITABL(3,20000) - INTEGER ICNT(6) - INTEGER ISTT(20000) - INTEGER LL(6) -C - COMMON /IDTG/ IYMT(5) -C - EQUIVALENCE (CWORK,OWORK) - EQUIVALENCE (IWORK,OWORK) - EQUIVALENCE (RWORK,OWORK) -C - DATA IOUTUN /11,12,13,14,15,16/ - DATA ICNT /6*0/ - DATA KSTN /0/ - DATA IPOIN /133/ - DATA IAFS /52/ - DATA IUNIT /17/ - DATA RLIMS /90.,00.,00.,360./ - DATA PIL /'7007',11*' '/ - DATA JTOL /3000/ - DATA LL /6*999/ -C - CALL W3TAGB('GENDATA',1999,0263,0058,'NP12') -C - OPEN ( IAFS, ACCESS='DIRECT', RECL=1280 ) -C - IREC = 0 -C -C INITIALIZE OTABL TO BLANKS IN DO-LOOP RATHER THAN IN -C DATA STATEMENT TO PREVENT INSUFFICIENT MEMORY ERROR -C DURING COMPILE STEP -C - DO I = 1, 20000 - DO J = 1, 150 - OTABL(I,J) = ' ' - END DO - END DO -C -C GET THE DATE TIME TO PROCESS FROM THE SYSTEM -C - READ(5,102) CDATE - 102 FORMAT(A) -C - PRINT *,' SYSTEM RUN-TIME IS ',CDATE -C - READ(CDATE,103) IYR,IMT,IDY,ITME - 103 FORMAT ( I4, 3I2 ) -C - PRINT *,' YR MT DY TME ',IYR,IMT,IDY,ITME -C -C GET THE JULIAN DAY NUMBER -C - IJDN = IW3JDN(IYR,IMT,IDY) - PRINT *,' JULIAN DAY NUMBER IS ',IJDN - IJMIN = IJDN*1440 + ITME*60 - PRINT *,' IJMIN IS ',IJMIN - IYMT(4) = ITME -C -C READ IN THE GEOGRAPHIC LIMITS AND I J TOLERANCES -C IF PRESENT -C - READ(5,104,END=10,ERR=10) (LL(K),K=1,6) - 104 FORMAT(6I4) - - PRINT *,' READ IN LIMS/TOLS ',(LL(K),K=1,6) -C -C REPLACE THE HARD-WIRED VALUES IF NEW VALUES ARE READ IN -C - IF(LL(1) .NE. 999) RLIMS(1) = LL(1) - IF(LL(2) .NE. 999) RLIMS(2) = LL(2) - IF(LL(3) .NE. 999) RLIMS(3) = LL(3) - IF(LL(4) .NE. 999) RLIMS(4) = LL(4) - - PRINT *,' GEOGRAPHIC LIMITS: ',(RLIMS(K),K=1,4) -C -C START BY BUILDING THE 3 HEADER LABELS AND -C ADDING THEM TO THE OUTPUT BLOCK -C - 10 CALL GTAPIL(PIL, IUNIT, CHEDA, IRET1) - - CALL ADDLAB(OHEDR, CDATE, CHEDA, OHED) -C -C LOOP THROUGH THE DATA TYPES -C IUNO = 11 SYNOPTIC DATA -C = 12 METAR DATA -C = 13 SHIP DATA -C = 14 CMAN DATA -C = 15 MBUOY DATA -C = 16 DBUOY DATA -C - ITYP = 0 - - DO 20 I = 1,6 - IX = 0 - IRYN = 1 - ITYP = ITYP + 1 - IUNO = IOUTUN(I) - KNEXT = 1 - IRET = 0 - IRTN = 0 -C -C CHKFIL MAKES SURE THE INPUT FILES ARE PRESENT. -C IF NOT, THE FILE IS SKIPPED -C - CALL CHKFIL(ITYP,CDATE,IRCF) - IF(IRCF .EQ. 1) GOTO 20 - - DO WHILE (IRTN .GE. 0) -C -C RETRIEVE A REPORT FROM THE PACKED DATA -C - CALL REDSFC(RLIMS, IUNO, IX, HDR, HDT, ARR, - 1 IAUTO, ITYP, IJREP, IRET) - IX = 1 - IF (IRET .EQ. 0) THEN -C -C FILTER DROPS UNWANTED BLOCKS AND RETURNS A -C THINNING PRIORITY FOR ALL OTHER STATIONS -C IRYN = 1 ACCEPT STATION -C IRYN = 0 REJECT STATION -C - CALL FILTER(HDR, HDT, ARR, IPRIOR, ITYP, - 1 IJMIN, IJREP, IRYN) - IF (IRYN .EQ. 1) THEN -C -C FORM THE SORT TABLE ENTRY FOR THIS REPORT -C - CALL IJAFOS(HDR, ILOC, JLOC) -C IF (JLOC .LT. JTOL) THEN -C - KSTN = KSTN + 1 - ITABL (1,KSTN) = ILOC - ITABL (2,KSTN) = JLOC - ITABL (3,KSTN) = IPRIOR - RWORK = HDR(1) - CSTN(KSTN) = CWORK -C PRINT 109,KSTN,HDR(1),ILOC,JLOC,IPRIOR - 109 FORMAT(' #',i6,3X,A8,' I J ',2i6,' PRY ',i6) - ISTT (KSTN) = ITYP - ICNT(I) = ICNT(I) + 1 - IF(KSTN .GE. 20000) THEN - KSTN = 1 - END IF -C -C CONVERT TO GRAPHICS FORMAT -C - CALL FORSFC(HDR, HDT, ARR, IARR, IRET1) -C -C CONVERT THE DATA TO AFOS FORMAT AND -C STORE IN THE OUTPUT BLOCK -C - CALL DATAFS(IARR, OTABL, KSTN, IAUTO, IRTN) -C END IF - END IF - ELSE - IRTN = -1 - END IF - END DO - 20 CONTINUE -C -C THIN THE STATION LIST BY THE PRIORITY WEIGHT CALCULATED -C IN SUBROUTINE FILTER -C - DO K = 1,5 - PRINT *,' TYPE ',K,' STATIONS ',ICNT(K) - END DO - PRINT *,' # STATIONS IS ',KSTN -c do i=1,KSTN -c write(36,177)(ITABL(j,i),j=1,3) -c enddo - CALL THNSTN (LL, ITABL, KSTN, CSTN) -C -C OUTPUT THE NH SURFACE PLOT FILE. -C - CALL OUTPLT (IAFS, IREC, OHEDR, OTABL, ISTT, KSTN, ITABL) -C - PRINT *,' NH PLOTFILE MAKER END NORMALLY' - PRINT *,' ' -C - CALL W3TAGE('GENDATA') - STOP - END diff --git a/util/sorc/gendata.fd/getdat.f b/util/sorc/gendata.fd/getdat.f deleted file mode 100755 index d2db0bc6f2..0000000000 --- a/util/sorc/gendata.fd/getdat.f +++ /dev/null @@ -1,417 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GETDAT GET THE DATA -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-12-10 -C -C ABSTRACT: GETDAT EXTRACTS THE OBSERVATIONAL DATA FROM THE -C GRAPHICAL FORMATTED FILES AND STORES IT IN PLOTFILE -C FORMAT INTO THE AFOS SURFACE PLOTFILE. -C -C PROGRAM HISTORY LOG: -C 96-12-10 LARRY SAGER -C -C USAGE: CALL GETDAT (IARR, OLINE, ILAT, ILON, ILNG) -C INPUT ARGUMENT LIST: -C ARR - UNPACKED OBSERVATION IN GRAPHICS FORMAT -C ILAT - LATITUDE OF OBSERVATION -C ILON - LONGITUDE OF OBSERVATION -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C OLINE - AFOS SURFACE PLOTFILE ARRAY -C ILNG - LENGTH (IN WORDS) OF THE AFOS ARRAY -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - - SUBROUTINE GETDAT (IARR, OLINE, ILAT, ILON, ILNG) -C -C THIS SUBROUTINE EXTRACTS AND STORES THE DATA -C INTO THE AFOS PLOTFILE ARRAY. -C - CHARACTER*8 CWORK - CHARACTER*8 CTEMP -C - CHARACTER*1 OWORK(8) - CHARACTER*1 OLINE(*) - CHARACTER*1 OCT(3) -C - INTEGER IEND - INTEGER IARR(*) -C - EQUIVALENCE (CWORK,OWORK) - EQUIVALENCE (IWORK,OWORK) -C - DATA IEND /Z'3B0D0A0000000000'/ -C -C EXTRACT THE DATA NECESSARY FOR THE AFOS PLOT FILE. -C - ILNG = 1 - ILST = 0 -C -C FRACTION OF THE CELESTIAL DOME -C - OLINE(ILNG) = 'M' - IF(IARR(14) .LT. 99990) THEN - IFN = IARR(14) / 12 - CALL BIN2CH(IFN,CWORK,8,'A99') - OLINE(ILNG) = OWORK(8) - ILNG = ILNG + 1 - ILST = ILNG - ELSE - ILNG = ILNG + 1 - END IF - OLINE(ILNG) = ',' -C -C STORE THE WINDS -C - IF((IARR(3) .LT. 99990) .AND. (IARR(4) .LT. 99990)) THEN - IWIND = IARR(3)*100 - IWIND = IWIND + IARR(4) - CALL BIN2CH(IWIND,CWORK,8,'A99') - DO K = 1,5 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K+3) - END DO - ILST = ILNG + 1 - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C STORE THE MEAN SEA LEVEL PRESSURE -C - IF(IARR(1) .LT. 99990) THEN - CALL BIN2CH(IARR(1),CWORK,8,'A99') - DO K = 6,8 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILST = ILNG + 1 - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C TEMPERATURE IN CELSIUS -C - IF (IARR(5) .LT. 99990) THEN - RTMP = .1 * IARR(5) - ITMP = NINT(RTMP) - IF (ITMP .LT. 0) THEN - ILNG = ILNG + 1 - ITMP = -ITMP - OLINE(ILNG) = '-' - END IF - CALL BIN2CH(ITMP,CWORK,8,'A99') - IST =7 - IF(OWORK(7) .EQ. '0') IST = 8 - DO K = IST,8 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILST = ILNG + 1 - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C DEW POINT TEMPERATURE -C - IF (IARR(6) .LT. 99990) THEN - RTMP = .1 * IARR(6) - IAR = NINT(RTMP) - IF (IAR .LT. 0) THEN - ILNG = ILNG + 1 - IAR = -IAR - OLINE(ILNG) = '-' - END IF - CALL BIN2CH(IAR,CWORK,8,'A99') - IST = 7 - IF (OWORK(7) .EQ. '0') IST = 8 - DO K = IST,8 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILST = ILNG + 1 - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C PRESENT WEATHER -C - IF (IARR(12) .LT. 99990) THEN - CALL BIN2CH(IARR(12),CWORK,8,'A99') - DO K = 7,8 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILST = ILNG + 1 - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C HORIZONTAL VISIBILITY (REMOVE FROM N.HEMI) -C -C IF (IARR(11) .LE. 66) THEN -C CALL BIN2CH(IARR(11),CWORK,8,'A99') -C DO K = 7,8 -C ILNG = ILNG + 1 -C OLINE(ILNG) = OWORK(K) -C END DO -C ILST = ILNG + 1 -C END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C PRESSURE TENDENCY AND CHARACTERISTIC -C - IF (IARR(21) .LT. 99990) THEN - IAA = IARR(20) - IF(IAA .GT. 99990) THEN - IAA = 2 - IF(IARR(21) .LT. 0) IAA = 6 - IF(IARR(21) .EQ. 0) IAA = 4 - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = '+' - IF(IARR(21) .LT. 0) THEN - IARR(21) = -IARR(21) - OLINE(ILNG) = '-' - END IF - CALL BIN2CH(IARR(21),CWORK,8,'A99') - IST = 8 - IF(IARR(21) .GE. 10) IST =7 - IF(IARR(21) .GE. 100) IST = 6 - DO K = IST,8 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILNG = ILNG + 1 - OLINE(ILNG) = ',' - CALL BIN2CH(IAA,CWORK,8,'A99') - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(8) - ILNG = ILNG + 1 - OLINE(ILNG) = ',' - ILST = ILNG - ELSE - ILNG = ILNG + 1 - OLINE(ILNG) = ',' - ILNG = ILNG + 1 - OLINE(ILNG) = ',' - END IF -C -C CLOUD TYPES -C - OCT(1) = '/' - OCT(2) = '/' - OCT(3) = '/' - IHC = 0 - IF (IARR(16) .LT. 99990) THEN - CALL BIN2CH(IARR(16),CWORK,8,'A99') - IF(OWORK(8) .NE. '0') OCT(1) = OWORK(8) - IHC = 1 - ENDIF - IF (IARR(18) .LT. 99990) THEN - CALL BIN2CH(IARR(18),CWORK,8,'A99') - IF(OWORK(8) .NE. '0') OCT(2) = OWORK(8) - IHC = 1 - ENDIF - IF (IARR(19) .LT. 99990) THEN - CALL BIN2CH(IARR(19),CWORK,8,'A99') - IF(OWORK(8) .NE. '0') OCT(3) = OWORK(8) - IHC = 1 - ENDIF - IF (IHC .EQ. 1) THEN - DO K = 1,3 - ILNG = ILNG + 1 - OLINE(ILNG) = OCT(K) - END DO - ILST = ILNG + 1 - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C 6-HR PRECIP -C - IF (IARR(22) .LT. 99990) THEN - IF (IARR(22) .NE. 0) THEN - IF (IARR(22) .LT. 0) THEN - ILNG = ILNG + 1 - OLINE(ILNG) = 'T' - ILST = ILNG + 1 - ELSE - APR = IARR(22) - IPR = NINT(APR/2.54) - CALL BIN2CH(IPR,CWORK,8,'A99') - IF(IPR .GE. 100) THEN - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(6) - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = '.' - DO K =7,8 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILST = ILNG + 1 - END IF - END IF - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C LAT, LONG -C - CALL BIN2CH(ILAT,CWORK,8,'A99') - DO K = 6,8 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILNG = ILNG + 1 - OLINE(ILNG) = 'N' - IF(ILAT .LT. 0) OLINE(ILNG) = 'S' - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C - IF(ILON .GT. 1800) THEN - ILON = -(3600 - ILON) - END IF - CALL BIN2CH(ILON,CWORK,8,'A99') - DO K = 5,8 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILNG = ILNG + 1 - OLINE(ILNG) = 'W' - IF(ILON .LT. 0) OLINE(ILNG) = 'E' - ILNG = ILNG + 1 - OLINE(ILNG) = ',' - ILST = ILNG - ILNG = ILNG + 1 - OLINE(ILNG) = ',' - ILNG = ILNG + 1 - OLINE(ILNG) = ',' - ILNG = ILNG + 1 - OLINE(ILNG) = ',' - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C SHIP'S DIRECTION AND SPEED -C - IAD = 9 - IAS = 9 - IF (IARR(32) .LT. 99990) IAD = IARR(32) - IF (IARR(33) .LT. 99990) IAS = IARR(33) - IAR = IAD*10 + IAS - IF (IAR .LT. 99) THEN - CALL BIN2CH(IAR,CWORK,8,'A99') - DO K = 7,8 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILST = ILNG - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C WIND WAVE PERIOD AND HEIGHT -C - CTEMP = '1XXXX ' - IF (IARR(26) .LT. 0) THEN - CTEMP(1:1) = '2' - IARR(26) = -IARR(26) - END IF - IF (IARR(27) .LT. 0) THEN - CTEMP(1:1) = '2' - IARR(27) = -IARR(27) - END IF - IF (IARR(26) .LT. 99990) THEN - IAD = IARR(26) - CALL BIN2CH(IAD,CWORK,8,'A99') - CTEMP(2:3) = CWORK(7:8) - END IF - IF (IARR(27) .LT. 99990) THEN - IAS = IARR(27) - CALL BIN2CH(IAS,CWORK,8,'A99') - CTEMP(4:5) = CWORK(7:8) - END IF - IF (CTEMP(2:8) .NE. 'XXXX ') THEN - CWORK = CTEMP - DO K = 1,5 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILST = ILNG + 1 - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C SWELL WAVE DIRECTION PERIOD HEIGHT -C - CTEMP = 'XXXXXX ' - IF (IARR(28) .LT. 99990) THEN - IAD = IARR(28)*.1 - CALL BIN2CH(IAD,CWORK,8,'A99') - CTEMP(1:2) = CWORK(7:8) - END IF - IF (IARR(29) .LT. 99990) THEN - IAD = IARR(29) - CALL BIN2CH(IAD,CWORK,8,'A99') - CTEMP(3:4) = CWORK(7:8) - END IF - IF (IARR(30) .LT. 99990) THEN - IAD = IARR(30) - CALL BIN2CH(IAD,CWORK,8,'A99') - CTEMP(5:6) = CWORK(7:8) - END IF - IF (CTEMP .NE. 'XXXXXX ') THEN - CWORK = CTEMP - DO K = 1,6 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILST = ILNG + 1 - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' -C -C WATER TEMPERATURE -C - IF (IARR(31) .LT. 99990) THEN - RTMP = .1* IARR(31) - ITMP = NINT(RTMP) - IF (ITMP .LT. 0) THEN - ILNG = ILNG + 1 - ITMP = -ITMP - OLINE(ILNG) = '-' - END IF - CALL BIN2CH(ITMP,CWORK,8,'A99') - IST = 7 - IF (OWORK(6) .GT. '0') IST = 6 - DO K = IST,8 - ILNG = ILNG + 1 - OLINE(ILNG) = OWORK(K) - END DO - ILST = ILNG + 1 - END IF - ILNG = ILNG + 1 - OLINE(ILNG) = ',' - ILNG = ILST -C -C STORE THE END OF REPORT INDICATOR -C - IWORK = IEND - call byteswap(iwork,8,1) - DO K = 1,3 - OLINE(ILNG) = OWORK(K) - ILNG = ILNG + 1 - END DO - ILNG = ILNG - 1 -C - RETURN - END diff --git a/util/sorc/gendata.fd/heafos.f b/util/sorc/gendata.fd/heafos.f deleted file mode 100755 index df056f63d7..0000000000 --- a/util/sorc/gendata.fd/heafos.f +++ /dev/null @@ -1,134 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: HEAFOS FORM THE REPORT HEADING -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-12-10 -C -C ABSTRACT: HEAFOS FORMS THE HEADING IN AFOS FORMAT FOR EACH -C OBSERVATION -C -C PROGRAM HISTORY LOG: -C 96-12-10 LARRY SAGER -C -C USAGE: CALL HEAFOS (IARR, OHED, IAUTO, ILHD) -C INPUT ARGUMENT LIST: -C ARR - UNPACKED REPORT IN GRAPHICAL FORMAT -C IAUTO - AUTOMATIC/MANUAL STATION FLAG -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C OHED - HEADING ARRAY -C ILHD - LENGTH (IN WORDS) OF HEADING ARRAY -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE HEAFOS (IARR, OHED, IAUTO, ILHD) -C -C THIS SUBROUTINE FORMS THE HEADING FOR EACH -C REPORT IN THE AFOS SURFACE PLOTFILE -C - INTEGER IARR(*) -C - CHARACTER*8 CWORK -C - CHARACTER*1 OWORK(8) - CHARACTER*1 OHED(*) - CHARACTER*1 PSOWDT(6) -C - EQUIVALENCE (CWORK,OWORK) - EQUIVALENCE (IWORK,CWORK) -C - ILHD = 1 -C -C BEGIN BY GETTING THE I, J LOCATION FOR THIS -C REPORT. -C - ALAT = IARR(1)*.1 - ALONG = IARR(2)*.1 - KEIL = 7 - CALL TRUIJ(ALAT,ALONG,XI,XJ,KEIL) - XI = XI - 28.0 - XJ = XJ - 5.0 - IN = (XI - 1.)*37.5 + 0.5 - JN = (XJ - 1.)*37.5 + 0.5 -C PRINT 100,IARR(11),IN,JN - 100 FORMAT(' STATION ',A8,' i js are ',2i8) - IF(IN .LT. 0) THEN - OHED(ILHD) = '-' - ILHD = ILHD + 1 - IN = -IN - END IF - CALL BIN2CH(IN,CWORK,4,'A99') - IST = 4 - IF (IN .GE. 10) IST = 3 - IF (IN .GE. 100) IST = 2 - IF (IN .GE. 1000) IST = 1 - DO K = IST,4 - OHED(ILHD) = OWORK(K) - ILHD = ILHD + 1 - END DO - OHED(ILHD) = ',' - ILHD = ILHD + 1 - IF(JN .LT. 0) THEN - OHED(ILHD) = '-' - ILHD = ILHD + 1 - JN = -JN - END IF - CALL BIN2CH(JN,CWORK,4,'A99') - IST = 4 - IF (JN .GE. 10) IST = 3 - IF (JN .GE. 100) IST = 2 - IF (JN .GE. 1000) IST = 1 - DO K = IST,4 - OHED(ILHD) = OWORK(K) - ILHD = ILHD + 1 - END DO - OHED(ILHD) = ',' - ILHD = ILHD + 1 -C -C AFZOOM CREATES PSOWDT -C - KTTYP = 1 - CALL AFZOOM (IARR(11),KTTYP,PSOWDT) -C -C ADD FLAG FOR AUTOMATIC STATION -C - IF(IAUTO .EQ. 1) PSOWDT(6) = '7' -C -C ADD PSOWDT TO HEADER -C - DO K = 1,6 - OHED(ILHD) = PSOWDT(K) - ILHD = ILHD + 1 - END DO - OHED(ILHD) = ',' - ILHD = ILHD + 1 -C -C OBSERVATION TIME OF THIS REPORT -C - ITME = IARR(4) - CALL BIN2CH(ITME,CWORK,8,'A99') - DO K = 5,8 - OHED(ILHD) = OWORK(K) - ILHD = ILHD + 1 - END DO - OHED(ILHD) = ',' -C -C ADD THE STATION NAME -C - IWORK = IARR(11) - DO K = 1,6 - IF(OWORK(K) .NE. ' ') THEN - ILHD = ILHD + 1 - OHED(ILHD) = OWORK(K) - END IF - END DO -C - ILHD = ILHD + 1 - OHED(ILHD) = ',' -C - RETURN - END diff --git a/util/sorc/gendata.fd/ijafos.f b/util/sorc/gendata.fd/ijafos.f deleted file mode 100755 index b903159510..0000000000 --- a/util/sorc/gendata.fd/ijafos.f +++ /dev/null @@ -1,47 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: IJAFOS CALCULATE THE I J OF THIS REP -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-01-10 -C -C ABSTRACT: IJAFOS CALCULATES THE I J LOCATION OF THIS SURFACE -C OBSERVATION -C -C PROGRAM HISTORY LOG: -C 97-01-10 LARRY SAGER -C -C USAGE: CALL IJAFOS (HDR, ILOC, JLOC) -C INPUT ARGUMENT LIST: -C HDR - STATION LOCATION INFORMATION -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C ILOC - I LOCATION OF REPORT -C JLOC - J LOCATION OF REPORT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE IJAFOS (HDR, ILOC, JLOC) -C -C THIS SUBROUTINE CALCULATES THE I J LOCATION -C FOR THIS SURFACE LOCATION -C - REAL HDR(*) -C -C THE I, J LOCATION FOR THIS -C REPORT. -C - ALAT = HDR(2) - ALONG = HDR(3) - KEIL = 7 - CALL TRUIJ(ALAT,ALONG,XI,XJ,KEIL) - XI = XI - 28.0 - XJ = XJ - 5.0 - ILOC = (XI - 1.)*37.5 + 0.5 - JLOC = (XJ - 1.)*37.5 + 0.5 -C - RETURN - END diff --git a/util/sorc/gendata.fd/lklndnam.f b/util/sorc/gendata.fd/lklndnam.f deleted file mode 100755 index 7246739588..0000000000 --- a/util/sorc/gendata.fd/lklndnam.f +++ /dev/null @@ -1,331 +0,0 @@ - SUBROUTINE LKLNDNAM(CSTNID,LIS_SMQQ,IPRIORITY,IRET_LKN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: LKLNDNAM FIND PLOT PRIORITY -C AUTHOR: SHIMOMURA ORG: W/NP12 DATE: 96-11-18 -C -C ABSTRACT: CALLED FROM PRYNAM() IN ORDER TO FIND PLOT PRIORITY -C AND SKEW FOR ONE GIVEN SM- OR SA- LAND-STATION NAME -C FROM LOOK-UP TABLE. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ROBERT JIRSEK; ORIGINAL AUTHOR. -C 91-03-29 R. CHEN; ADD DOC BLOCK -C 96-11-18 SHIMOMURA; CONVERT TO CRAY & TO USE CRAY BLOCK DATA -C -C USAGE: CALL LKLNDNAM(CSTNID,LIS_SMQQ,IPRIORITY,IRET_LKN) -C INPUT ARGUMENT LIST: -C CSTNID - THE STATION IDENT IN TWO POSSIBLE FORMATS: -C C*5 CSTNID -- 5-DIGIT BLOCK+STN NUMBER (SM) -C C*3 CSTNID -- 3-LETTER STATION IDENTIFIER (SA) - -C LIS_SMQQ - LOGICAL SWITCH -C = .T. IF THE GIVEN CSTNID IS A 5-DIGIT BLOCK+STN NUMBER -C = .F. IF THE GIVEN CSTNID IS A 3-LETTER STN IDENT -C -C COMMON /IDTG/ int IYMDT(5) -C in which IYMDT(4) is synoptic hour as 2-digit integer -C COMMON /SMNAM/ MAXNSMS,KSMSTN(960) - LOOK-UP TABLE OF SM -C COMMON /SANAM/ MAXNSAS,KSASTN(960) - LOOK-UP TABLE OF SA -C -C OUTPUT ARGUMENT LIST: -C IPRIORITY - -C ISKMX - IN COMMON /ISKEW/ ISKMX -C USED BY SFCPLT.F BY TESTING THE 4 BITS IN ISKMX -C IRET_LKN - RETURN CODE -C = 0; NORMAL RETURN -C = -1; REJECTED THIS STATION DUE TO UNWANTED BLOCK NO. -C = -2; REJECTED THIS U.S. BLOCK NO. 72 OR 74 STATION -C DUE TO TIME BEING INTERMEDIATE HOUR; -C USING HOURLY OBS. -C = -3; REJECTED THIS STATION -C DUE TO NO MATCH FOUND IN TABLE -C = 1; FAILED. CSTNID LENGTH(TO LASTCH) .LT. 3 CHAR -C = 2; FAILED. CSTNID LENGTH(TO LASTCH) .GT. 5 CHAR -C = 3; FAILED. CSTNID BLK+STN NO. .LT. 5 DIGITS -C = 4; FAILED. CSTNID BLK+STN NO. WAS NOT 5-DIGITS -C = 5; FAILED. TABLE VALUE OF PRIORITY IS BAD -C = 6; FAILED WHILE DECODING TABLE VALUE ATTRIB IN HEX -C = 7; FAILED WHILE DECODING BLK NO. OUT OF CSTNID(1:2) -C -C -C OUTPUT FILES: -C FT06F001 - PRINT MESSAGES. -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C CHANGED SUBROUTINE NAME FROM "LNDNAM" TO "LKLNDNAM" -C BECAUSE I CHANGED THE CALL SEQUENCE ... -C THE OLD CALL SEQUENCE WAS: -C LNDNAM(I*4 IPRYA, !... RESULT1 -- PLOT PRIORITY -C I*4 STNID1, !... FIRST 4 CHARACTERS OF IDENT -C I*4 STNID2, !... 5TH CHARACTER OF IDENT -C I*4 ITD) !... =1 FOR SM; =2 FOR SA -C ... COMMON /ISKEW/ ISKMX !... RESULT2 -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ -C -C ... MEMBER NAME IS (RJ)NAMLND. -C -C ... COMMON /SMNAM/ SMSTN,IBKSM(951) -C ... COMMON /SANAM/ SASTN,IBKSA(919) - - - EXTERNAL LASTCH - INTEGER LASTCH !... INT FUNCTION LASTCH() - - EXTERNAL BDSMNAM - COMMON /SMNAM/ MAXNSMS,KSMSTN(960) - INTEGER MAXNSMS - - EXTERNAL BDSANAM - COMMON /SANAM/ MAXNSAS,KSASTN(960) - INTEGER MAXNSAS - - COMMON /IDTG/ IYMDT(5) !... IYMDT(4) IS AN INPUT ARG - COMMON /ISKEW/ ISKMX !... ISKMX IS AN OUTPUT ARG - -C . . . . . . . . . . . . . . . . . . . . . . . . -C USAGE: CALL LKLNDNAM(CSTNID,LIS_SMQQ,IPRIORITY,IRET_LKN) - CHARACTER*(*) CSTNID - LOGICAL LIS_SMQQ - INTEGER IPRIORITY - INTEGER IRET_LKN -C . . . . . . . . . . . . . . . . . . . . . . . . - - - LOGICAL LASTLP,LOFFRT,LOFFLW - - INTEGER NBLOCK(99) - DATA NBLOCK/3*0,04,3*0,08,61*0,70,71,72,00,74,00,76,00,78,00,80, - $ 19*0/ - - - DATA MSKNAME / X'FFFFFFFFFFFF0000' / !... 6-CH NAME - DATA MSKLOWHEX / Z'0000000F'/ - - - INTEGER IWGHT(10) - DATA IWGHT /88,50,52,80,32,26,22,20,00,00/ - - INTEGER ITEMTBL - CHARACTER*8 CITEMTBL - EQUIVALENCE (ITEMTBL,CITEMTBL) - - INTEGER NAMETBL - CHARACTER*8 CNAMETBL - EQUIVALENCE (NAMETBL,CNAMETBL) - - INTEGER NCHGIVNNAM - INTEGER NCHNAM - INTEGER INTBLOCKNUM - - INTEGER IHOUR - LOGICAL LINTERMEDQ - - INTEGER KZOOM - CHARACTER*8 CIDENT !... LOCAL FOR GIVEN STN ID - CHARACTER*2 CSM_SA - - - SAVE - - IRET_LKN = 0 - IPRIORITY = 70 - ISKMX = 0 - LENLIMIT = LEN(CSTNID) - IF(LENLIMIT .LT. 3) THEN - IRET_LKN = 1 - GO TO 999 - ENDIF - IF(LENLIMIT .GT. 8) THEN - LENLIMIT=8 - ENDIF - NCHGIVNNAM = LASTCH(CSTNID(1:LENLIMIT)) - IF(NCHGIVNNAM .LT. 3) THEN - IRET_LKN = 1 - GO TO 999 - ELSE IF(NCHGIVNNAM .GT. 5) THEN - IRET_LKN = 2 - GO TO 999 - ENDIF - - CIDENT(1:) = ' ' - CIDENT(1:NCHGIVNNAM) = CSTNID(1:NCHGIVNNAM) - - IF(LIS_SMQQ) THEN - CSM_SA(1:2) = 'SM' - NCHNAM = 5 - IF(NCHGIVNNAM .LT. NCHNAM) THEN - IRET_LKN = 3 - GO TO 999 - ENDIF - GO TO 300 - - ELSE - CSM_SA(1:2) = 'SA' - NCHNAM = 3 - GO TO 400 - ENDIF -C -C ----------------------------------------------------------------- -C ... COMES TO 300 IF (LIS_SMQQ) .................................. - 300 CONTINUE -C ... ...SM - SURFACE SYNOPTIC REPORT. -C ... ...STATION TYPE...BY BLOCK AND STATION NUMBER. - -C ... ...BLOCK AND STATION NUMBER CHECK... - DO IC = 1,5 - IF((CIDENT(IC:IC) .LT. '0') .OR. (CIDENT(IC:IC) .GT. '9'))THEN - WRITE(6,FMT='(1H ,''LKLNDNAM: BLOCK OR STATION NUMBER IS '', - 1 ''OUT-OF-RANGE.'', - 2 /1H ,'' BLOCK NUM ='',A2,'' STATION NUM ='',A3)') - A CIDENT(1:2),CIDENT(3:5) - IRET_LKN = 4 - GO TO 999 - ENDIF - ENDDO - - - IHOUR = IYMDT(4) - LINTERMEDQ = .FALSE. - IF(IHOUR .EQ. 3 .OR. IHOUR .EQ. 9 .OR. - 2 IHOUR .EQ. 15 .OR. IHOUR .EQ. 21) THEN - LINTERMEDQ = .TRUE. - ENDIF - -C ... TO CONVERT 2-DIGIT BLOCK NUMBER FROM ASCII TO BINARY INTEGER, - - READ( UNIT=CIDENT(1:2), FMT=325, ERR=920 ) INTBLOCKNUM - 325 FORMAT(I2) - -C IF(NBLOCK(INTBLOCKNUM) .EQ. 0) THEN -C IRET_LKN = -1 !... NOT WANTED BLOCK NUM IN THIS APP -C GO TO 999 -C ENDIF - -C ... IF INTERMEDIATE HOUR, SKIP UNITED STATES SI REPORTS. -C ... USE SA REPORTS INSTEAD. - IF((INTBLOCKNUM .EQ. 72 .OR. INTBLOCKNUM .EQ. 74) .AND. - 1 (LINTERMEDQ)) THEN - IRET_LKN = -2 !... NOT WANTED SI AT INTERMEDIATE TIME - GO TO 999 - ENDIF -C - -C ... ... - MXTBL =MAXNSMS - IPRIORITY =70 - GO TO 500 -C -C ----------------------------------------------------------------- -C ... COMES TO 400 IF(.NOT. LIS_SMQQ) ............................. - 400 CONTINUE -C ... ...SA - SURFACE HOURLY REPORT. -C ... ...THREE LETTERS ID . -C ... ID =ISHFT(IDSTN1,-8) - IPRIORITY =4 - MXTBL =MAXNSAS - GO TO 500 - -C ----------------------------------------------------------------- -C ... TO PERFORM A TABLE LOOK-UP FOR THE STATION NAME ... - - 500 CONTINUE -C ... ...TABLE AND INPUT STATION NAMES ARE IN INCREASING ORDER. - MIDPT =MXTBL/2 +1 - INCR =MIDPT - LASTLP =.FALSE. - LOFFRT =.FALSE. - LOFFLW =.FALSE. -C ... ...START OF BINARY SEARCH LOOP... - 200 CONTINUE - IF(INCR.LE.1) LASTLP =.TRUE. -C ... ...OTHERWISE, FINAL STEP IS NOT YET REACHED. - INCR =(INCR +1)/2 - IF(LOFFRT) GO TO 210 - IF(LOFFLW) GO TO 220 - MDIS =MIDPT - IF(LIS_SMQQ) THEN - ITEMTBL =KSMSTN(MDIS) - ELSE - ITEMTBL =KSASTN(MDIS) - ENDIF - NAMETBL =IAND(ITEMTBL,MSKNAME) -C ... IF(ID -ITBL) 210,240,220 - IF(CIDENT(1:NCHNAM) .LT. CNAMETBL(1:NCHNAM)) THEN - GO TO 210 - ELSE IF(CIDENT(1:NCHNAM) .EQ. CNAMETBL(1:NCHNAM)) THEN - GO TO 240 !... FOUND THE MATCH ... - ELSE IF(CIDENT(1:NCHNAM) .GT. CNAMETBL(1:NCHNAM)) THEN - GO TO 220 - ENDIF - - 210 CONTINUE - LOFFRT =.FALSE. -C ... ...GO TO LOWER HALF AND BISECT TABLE. - IF(LASTLP) GO TO 280 - MIDPT =MIDPT -INCR - IF(MIDPT.GT.0) GO TO 200 -C ... ...OTHERWISE, SEARCH FELL BELOW LOWER END OF TABLE... -C ... ...SET SWITCH LOFFLW AND LET IT JUMP BACK INTO TABLE - LOFFLW =.TRUE. - GO TO 200 - - 220 CONTINUE - LOFFLW =.FALSE. -C ... ...GO TO UPPER HALF AND BISECT TABLE. - IF(LASTLP) GO TO 280 - MIDPT =MIDPT +INCR - IF(MIDPT.LE.MXTBL) GO TO 200 -C ... ...OTHERWISE, SEARCH FELL BELOW LOWER END OF TABLE... -C ... ...SET SWITCH LOFFRT AND LET IT JUMP BACK INTO TABLE... - LOFFRT =.TRUE. - GO TO 200 - - 240 CONTINUE -C ... ...FOUND IT... - - READ( UNIT=CITEMTBL(7:8), FMT=245, ERR=910 ) KZOOM - 245 FORMAT(Z2) - - IPRIY =IAND(KZOOM,MSKLOWHEX) - ISKMX = ISHFT(KZOOM,-4) - - IF(IPRIY.LT.1 .OR. IPRIY.GT.8) THEN - PRINT 2700,CITEMTBL(1:8),IPRIY - 2700 FORMAT(' ','lklndnam: ERROR:FOUND STATION= "',A, - 1 '" CONTAINS BAD PRIORITY VALUE=',I4) - IRET_LKN = 5 - GO TO 999 - ENDIF - - IPRIORITY =IWGHT(IPRIY) - GO TO 999 - - -C ... ...COMES HERE IF NO SUCH ID FOUND IN TABLE. - 280 CONTINUE - IRET_LKN = -3 !... BINARY SEARCH FAILED TO FIND IN TBL - GO TO 999 - - 910 CONTINUE - WRITE(6,915)CSM_SA,CITEMTBL(1:8) - 915 FORMAT(1H ,'LKLNKNAM:ERROR WHILE DECODING AFOS ATTRIBUTE FROM', - 1 /1H ,A2,'-TABLE ITEM=',A8) - IRET_LKN = 6 - GO TO 999 - - 920 CONTINUE - WRITE(6,925)CSM_SA,CIDENT(1:5) - 925 FORMAT(1H ,'LKLNKNAM:ERROR WHILE DECODING BLOCK-NUMBER FROM', - 1 /1H ,A2,'-GIVEN BLK+STN NUMBER=',A5) - IRET_LKN = 7 - GO TO 999 - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/gendata.fd/makefile b/util/sorc/gendata.fd/makefile deleted file mode 100755 index eb8acefa8e..0000000000 --- a/util/sorc/gendata.fd/makefile +++ /dev/null @@ -1,31 +0,0 @@ -FC = ifort -FFLAGS = -O -g -traceback -C -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -OBJ = gendata.o \ - addlab.o \ - afzoom.o \ - bdsanam.o \ - bdsmnam.o \ - chkfil.o \ - cldhgt.o \ - clouds.o \ - datafs.o \ - filter.o \ - forsfc.o \ - getdat.o \ - heafos.o \ - ijafos.o \ - lklndnam.o \ - outplt.o \ - redsfc.o \ - thnstn.o - - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} ${BUFR_LIB8} - -gendata: $(OBJ) - $(FC) -z muldefs -o $@ $(FFLAGS) $(OBJ) $(LIBS) - -clean: - /bin/rm -f gendata *.o diff --git a/util/sorc/gendata.fd/outplt.f b/util/sorc/gendata.fd/outplt.f deleted file mode 100755 index 988c8d1cc1..0000000000 --- a/util/sorc/gendata.fd/outplt.f +++ /dev/null @@ -1,195 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: OUTPLT OUTPUT THE SURFACE PLOT FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-01-10 -C -C ABSTRACT: OUTPLT BUILDS THE OUTPUT PLOT FILE AND WRITES IT -C -C PROGRAM HISTORY LOG: -C 97-01-10 LARRY SAGER -C 2015-01-27 BOI VUONG Added If condition check to fix -C the array OAFOS has value 0 -C -C USAGE: CALL OUTPLT (IAFS, IREC, OHEDR, OTABL, KSTN, ITABL) -C INPUT ARGUMENT LIST: -C IAFS - OUTPUT UNIT NUMBER -C IREC - SPECIFIES THE NUMBER OF THE RECORD TO WRITE IN THE -C NHPLOT FILE -C OHEDR - PLOTFILE HEADING ARRAY -C OTABL - DATA ARRAY -C KSTN - NUMBER OF REPORTS TO OUTPUT -C ITABL - THIN/NOT THINNED INFORMATION -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE OUTPLT(IAFS, IREC, OHEDR, OTABL, ISTT, KSTN, ITABL) -C -C THIS ROUTINE OUTPUTS THE AFOS PLOTFILE -C - CHARACTER*8 CWORK -C - INTEGER ITABL(3,20000) - INTEGER ISTT(20000) -C - CHARACTER*1 OAFOS(1280) - CHARACTER*1280 AFOS - CHARACTER*1 OTABL(20000,150) - CHARACTER*1 OHEDR(133) - CHARACTER*1 OEOR - CHARACTER*1 OEOB - CHARACTER*1 OWORK(8) -C - EQUIVALENCE (CWORK,OWORK) - EQUIVALENCE (IWORK,OWORK) - EQUIVALENCE (AFOS,OAFOS(1)) -C - DATA OAFOS /1280*' '/ - DATA IPOIN /133/ - DATA IEND /Z'00454E44204F4620'/ - DATA IENE /Z'444154410D0AC500'/ - DATA IENF /Z'003205CE31830000'/ - DATA IEOA /Z'0D0A000000000000'/ -C -C OUTPUT THE AFOS SURFACE PLOT FILE. -C - DO K = 1,133 - OAFOS(K) = OHEDR(K) - END DO -C - IWORK = IEOA - call byteswap(IWORK,8,1) - ICNT = 0 -C - DO 10 K = 1,KSTN -C -C LOOP THROUGH THE STATIONS. START BY SEEING -C IF THIS STATION IS MARKED FOR THINNING -C - IF (ITABL(3,K) .LT. 0) THEN -C -C THIS STATION IS MARKED FOR THINNING. -C DROP THIS STATION IF IT IS A LAND STATION. -C IF IT IS A MARINE STATION, MOVE IT TO -C THE MARGIN OF THE CHART AND SAVE INTO -C THE PLOTFILE. -C - IF(ISTT(K) .LE. 2) GOTO 10 - ICNT = ICNT +1 -C -C CHANGE THE PSOWDT WORD TO 7 TO INDICATE -C MARGIN PLOTTING -C - ICOM = 0 - DO J = 1,150 - IF(OTABL(K,J) .EQ. ',') THEN - ICOM = ICOM + 1 - IF (ICOM .EQ. 2) THEN - OTABL(K,J+1) = '7' - GOTO 8 - END IF - END IF - END DO - END IF - 8 ISWT = 0 - J = 0 - DO WHILE (ISWT .EQ. 0) - J = J + 1 - IPOIN = IPOIN + 1 - IF ( IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF -C -C LOAD THE OUTPUT FILE -C - OAFOS(IPOIN) = OTABL(K,J) - IF (OTABL(K,J) .EQ. OWORK(2)) ISWT = 1 - IF (J .GE. 100) THEN -c OAFOS(IPOIN-2) = ';' -c OAFOS(IPOIN-1) = OWORK(2) - - IF (IPOIN .GT. 2) OAFOS(IPOIN-2) = ';' - IF (IPOIN .GT. 1) OAFOS(IPOIN-1) = OWORK(2) - - OAFOS(IPOIN) = OWORK(1) - ISWT = 1 - END IF - END DO - 10 CONTINUE -C -C ADD THE END LABEL -C - IWORK = IEND - call byteswap(iwork,8,1) - DO J = 1,8 - IPOIN = IPOIN + 1 - IF(IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF - OAFOS(IPOIN) = OWORK(J) - END DO - IWORK = IENE - call byteswap(iwork,8,1) - DO J = 1,8 - IPOIN = IPOIN + 1 - IF(IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF - OAFOS(IPOIN) = OWORK(J) - END DO - IWORK = IENF - call byteswap(iwork,8,1) - DO J = 1,7 - IPOIN = IPOIN + 1 - IF(IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF - OAFOS(IPOIN) = OWORK(J) - END DO - IF ( IPOIN .NE. 1 ) THEN - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - END IF -C - RETURN - END diff --git a/util/sorc/gendata.fd/outplt.f.mod b/util/sorc/gendata.fd/outplt.f.mod deleted file mode 100755 index ced7702732..0000000000 --- a/util/sorc/gendata.fd/outplt.f.mod +++ /dev/null @@ -1,191 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: OUTPLT OUTPUT THE SURFACE PLOT FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-01-10 -C -C ABSTRACT: OUTPLT BUILDS THE OUTPUT PLOT FILE AND WRITES IT -C -C PROGRAM HISTORY LOG: -C 97-01-10 LARRY SAGER -C -C USAGE: CALL OUTPLT (IAFS, IREC, OHEDR, OTABL, KSTN, ITABL) -C INPUT ARGUMENT LIST: -C IAFS - OUTPUT UNIT NUMBER -C IREC - SPECIFIES THE NUMBER OF THE RECORD TO WRITE IN THE -C NHPLOT FILE -C OHEDR - PLOTFILE HEADING ARRAY -C OTABL - DATA ARRAY -C KSTN - NUMBER OF REPORTS TO OUTPUT -C ITABL - THIN/NOT THINNED INFORMATION -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE OUTPLT(IAFS, IREC, OHEDR, OTABL, ISTT, KSTN, ITABL) -C -C THIS ROUTINE OUTPUTS THE AFOS PLOTFILE -C - CHARACTER*8 CWORK -C - INTEGER ITABL(3,20000) - INTEGER ISTT(20000) -C - CHARACTER*1 OAFOS(1280) -CKUMAR CHARACTER*1280 AFOS - CHARACTER*1 AFOS(1280) - CHARACTER*1 OTABL(20000,100) - CHARACTER*1 OHEDR(133) - CHARACTER*1 OEOR - CHARACTER*1 OEOB - CHARACTER*1 OWORK(8) -C - EQUIVALENCE (CWORK,OWORK) - EQUIVALENCE (IWORK,OWORK) -CKUMAR EQUIVALENCE (AFOS,OAFOS(1)) - EQUIVALENCE (AFOS(1),OAFOS(1)) -C - DATA OAFOS /1280*' '/ - DATA IPOIN /133/ - DATA IEND /Z'00454E44204F4620'/ - DATA IENE /Z'444154410D0AC500'/ - DATA IENF /Z'003205CE31830000'/ - DATA IEOA /Z'0D0A000000000000'/ -C -C OUTPUT THE AFOS SURFACE PLOT FILE. -C - DO K = 1,133 - OAFOS(K) = OHEDR(K) - END DO -C - IWORK = IEOA - ICNT = 0 -C - DO 10 K = 1,KSTN -C -C LOOP THROUGH THE STATIONS. START BY SEEING -C IF THIS STATION IS MARKED FOR THINNING -C - IF (ITABL(3,K) .LT. 0) THEN -C -C THIS STATION IS MARKED FOR THINNING. -C DROP THIS STATION IF IT IS A LAND STATION. -C IF IT IS A MARINE STATION, MOVE IT TO -C THE MARGIN OF THE CHART AND SAVE INTO -C THE PLOTFILE. -C - IF(ISTT(K) .LE. 2) GOTO 10 - ICNT = ICNT +1 -C -C CHANGE THE PSOWDT WORD TO 7 TO INDICATE -C MARGIN PLOTTING -C - ICOM = 0 - DO J = 1,100 - IF(OTABL(K,J) .EQ. ',') THEN - ICOM = ICOM + 1 - IF (ICOM .EQ. 2) THEN - OTABL(K,J+1) = '7' - GOTO 8 - END IF - END IF - END DO - END IF - 8 ISWT = 0 - J = 0 - DO WHILE (ISWT .EQ. 0) - J = J + 1 - IPOIN = IPOIN + 1 - IF ( IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF -C -C LOAD THE OUTPUT FILE -C - OAFOS(IPOIN) = OTABL(K,J) - IF (OTABL(K,J) .EQ. OWORK(2)) ISWT = 1 - IF (J .GE. 100) THEN - OAFOS(IPOIN-2) = ';' - OAFOS(IPOIN-1) = OWORK(2) - OAFOS(IPOIN) = OWORK(1) - ISWT = 1 - END IF - END DO - 10 CONTINUE -C -C ADD THE END LABEL -C - IWORK = IEND - DO J = 1,8 - IPOIN = IPOIN + 1 - IF(IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 -CKUMAR WRITE ( IAFS, REC=IREC ) AFOS - WRITE ( IAFS, REC=IREC ) (AFOS(N),N=1,1280) - - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF - OAFOS(IPOIN) = OWORK(J) - END DO - IWORK = IENE - DO J = 1,8 - IPOIN = IPOIN + 1 - IF(IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 -CKUMAR WRITE ( IAFS, REC=IREC ) AFOS - WRITE ( IAFS, REC=IREC ) (AFOS(N),N=1,1280) - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF - OAFOS(IPOIN) = OWORK(J) - END DO - IWORK = IENF - DO J = 1,7 - IPOIN = IPOIN + 1 - IF(IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 -CKUMAR WRITE ( IAFS, REC=IREC ) AFOS - WRITE ( IAFS, REC=IREC ) (AFOS(N),N=1,1280) - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF - OAFOS(IPOIN) = OWORK(J) - END DO - IF ( IPOIN .NE. 1 ) THEN - IREC = IREC + 1 -CKUMAR WRITE ( IAFS, REC=IREC ) AFOS - WRITE ( IAFS, REC=IREC ) (AFOS(N),N=1,1280) - END IF -C - RETURN - END diff --git a/util/sorc/gendata.fd/outplt.f_old b/util/sorc/gendata.fd/outplt.f_old deleted file mode 100755 index fdb68b2b2c..0000000000 --- a/util/sorc/gendata.fd/outplt.f_old +++ /dev/null @@ -1,189 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: OUTPLT OUTPUT THE SURFACE PLOT FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-01-10 -C -C ABSTRACT: OUTPLT BUILDS THE OUTPUT PLOT FILE AND WRITES IT -C -C PROGRAM HISTORY LOG: -C 97-01-10 LARRY SAGER -C -C USAGE: CALL OUTPLT (IAFS, IREC, OHEDR, OTABL, KSTN, ITABL) -C INPUT ARGUMENT LIST: -C IAFS - OUTPUT UNIT NUMBER -C IREC - SPECIFIES THE NUMBER OF THE RECORD TO WRITE IN THE -C NHPLOT FILE -C OHEDR - PLOTFILE HEADING ARRAY -C OTABL - DATA ARRAY -C KSTN - NUMBER OF REPORTS TO OUTPUT -C ITABL - THIN/NOT THINNED INFORMATION -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE OUTPLT(IAFS, IREC, OHEDR, OTABL, ISTT, KSTN, ITABL) -C -C THIS ROUTINE OUTPUTS THE AFOS PLOTFILE -C - CHARACTER*8 CWORK -C - INTEGER ITABL(3,20000) - INTEGER ISTT(20000) -C - CHARACTER*1 OAFOS(1280) - CHARACTER*1280 AFOS - CHARACTER*1 OTABL(20000,150) - CHARACTER*1 OHEDR(133) - CHARACTER*1 OEOR - CHARACTER*1 OEOB - CHARACTER*1 OWORK(8) -C - EQUIVALENCE (CWORK,OWORK) - EQUIVALENCE (IWORK,OWORK) - EQUIVALENCE (AFOS,OAFOS(1)) -C - DATA OAFOS /1280*' '/ - DATA IPOIN /133/ - DATA IEND /Z'00454E44204F4620'/ - DATA IENE /Z'444154410D0AC500'/ - DATA IENF /Z'003205CE31830000'/ - DATA IEOA /Z'0D0A000000000000'/ -C -C OUTPUT THE AFOS SURFACE PLOT FILE. -C - DO K = 1,133 - OAFOS(K) = OHEDR(K) - END DO -C - IWORK = IEOA - call byteswap(IWORK,8,1) - ICNT = 0 -C - DO 10 K = 1,KSTN -C -C LOOP THROUGH THE STATIONS. START BY SEEING -C IF THIS STATION IS MARKED FOR THINNING -C - IF (ITABL(3,K) .LT. 0) THEN -C -C THIS STATION IS MARKED FOR THINNING. -C DROP THIS STATION IF IT IS A LAND STATION. -C IF IT IS A MARINE STATION, MOVE IT TO -C THE MARGIN OF THE CHART AND SAVE INTO -C THE PLOTFILE. -C - IF(ISTT(K) .LE. 2) GOTO 10 - ICNT = ICNT +1 -C -C CHANGE THE PSOWDT WORD TO 7 TO INDICATE -C MARGIN PLOTTING -C - ICOM = 0 - DO J = 1,150 - IF(OTABL(K,J) .EQ. ',') THEN - ICOM = ICOM + 1 - IF (ICOM .EQ. 2) THEN - OTABL(K,J+1) = '7' - GOTO 8 - END IF - END IF - END DO - END IF - 8 ISWT = 0 - J = 0 - DO WHILE (ISWT .EQ. 0) - J = J + 1 - IPOIN = IPOIN + 1 - IF ( IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF -C -C LOAD THE OUTPUT FILE -C - OAFOS(IPOIN) = OTABL(K,J) - IF (OTABL(K,J) .EQ. OWORK(2)) ISWT = 1 - IF (J .GE. 100) THEN - OAFOS(IPOIN-2) = ';' - OAFOS(IPOIN-1) = OWORK(2) - OAFOS(IPOIN) = OWORK(1) - ISWT = 1 - END IF - END DO - 10 CONTINUE -C -C ADD THE END LABEL -C - IWORK = IEND - call byteswap(iwork,8,1) - DO J = 1,8 - IPOIN = IPOIN + 1 - IF(IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF - OAFOS(IPOIN) = OWORK(J) - END DO - IWORK = IENE - call byteswap(iwork,8,1) - DO J = 1,8 - IPOIN = IPOIN + 1 - IF(IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF - OAFOS(IPOIN) = OWORK(J) - END DO - IWORK = IENF - call byteswap(iwork,8,1) - DO J = 1,7 - IPOIN = IPOIN + 1 - IF(IPOIN .GT. 1280) THEN -C -C OUTPUT THE AFOS BLOCK -C - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - IPOIN = 1 - DO I = 1,1280 - OAFOS(I) = ' ' - END DO - END IF - OAFOS(IPOIN) = OWORK(J) - END DO - IF ( IPOIN .NE. 1 ) THEN - IREC = IREC + 1 - WRITE ( IAFS, REC=IREC ) AFOS - END IF -C - RETURN - END diff --git a/util/sorc/gendata.fd/redsfc.f b/util/sorc/gendata.fd/redsfc.f deleted file mode 100755 index 3c9ac89d59..0000000000 --- a/util/sorc/gendata.fd/redsfc.f +++ /dev/null @@ -1,277 +0,0 @@ - SUBROUTINE REDSFC(RLIMS, LUBFR, IX, HDR, HDT, ARR, - 1 IAUTO, ITYP, IJMIN, IRET) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDSFC READ THE DATA FROM THE IBM SP -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-09-17 -C -C ABSTRACT: REDSFC READS THE BUFR DATA FROM THE IBM SP TANKS AND -C STORES THE RESULTS INTO AN ARRAY. -C -C PROGRAM HISTORY LOG: -C 96-09-17 LARRY SAGER -C -C USAGE: CALL REDSFC (RLIMS, LUBFR, IX, HDR, HDT, ARR, -C IAUTO, ITYP, IRET) -C INPUT ARGUMENT LIST: -C RLIMS - GEOGRAPHIC LIMITS TO DUMP. -C LUBFR - DATA INPUT UNIT NUMBER -C IX - FIRST READ SWITCH -C IAUTO - MANUAL/AUTOMATIC STATION FLAG -C ITYP - TYPE OF DATA -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C HDR - ARRAY HOLDING STATION NAME AND LOCATION INFO -C HDT - ARRAY HOLDING STATION DATE/TIME -C ARR - OBSERVATIONAL DATA -C IJMIN - JULIAN MINUTE FOR THIS REPORT -C IRET - RETURN CODE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ -C - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CWORK -C - CHARACTER*40 STRING, CDATE - CHARACTER*40 CATAA, CATAB, CATAC, CATAD, CATAE - CHARACTER*40 CATAF, CATAG, CATAH, CATAI, CATAJ - CHARACTER*40 CATAK, CATAL - CHARACTER*5 CATA(48) -C - DIMENSION HDR (10) - DIMENSION HDT (10) -C - REAL ARR (*) - REAL RRR (10,255) - REAL RLIMS (4) -C - EQUIVALENCE (CWORK,RWORK) -C - DATA STRING /'RPID CLAT CLON SELV AUTO TOST '/ - DATA CDATE /'YEAR MNTH DAYS HOUR MINU '/ - DATA CATAA /'PMSL '/ - DATA CATAB /'WDIR WSPD '/ - DATA CATAC /'TMDB TMDP '/ - DATA CATAD /'HOVI '/ - DATA CATAE /'PRWE '/ - DATA CATAF /'TOCC '/ - DATA CATAG /'VSSO CLAM HOCB CLTP '/ - DATA CATAH /'CHPT 3HPC 24PC '/ - DATA CATAI /'TP06 TOSD TP24 '/ - DATA CATAJ /'POWV HOWV POWW HOWW '/ - DATA CATAK /'DOSW POSW HOSW '/ - DATA CATAL /'SST1 TDMP ASMP '/ - DATA CATA /'PMSL ','PRES ','WDIR ','WSPD ','TMDB ','TMDP ', - 1 'MXTM ','MITM ','QMRK ','QMR2 ','HOVI ','PRWE ', - 2 'PSW1 ','TOCC ','CLAM ','HOCB ','CTLO ','CAME ', - 2 'HOCB ','CTME ','CAHI ','HOCB ','CTHI ', - 3 'CHPT ','3HPC ','TP06 ','TOSD ','TP24 ','ALSE ', - 4 'POWV ','HOWV ','POWW ','HOWW ','DOSW ','POSW ', - 5 'HOSW ','SST1 ','TDMP ','ASMP ','24PC ', - 6 8*' '/ - - DATA FMISS /9999999./ - - SAVE -C -C----------------------------------------------------------------------| -C OPEN THE FILE | -C----------------------------------------------------------------------| - IRET = 0 - IF( IX .EQ. 0) THEN - IX = 1 - INOUT = 'IN' - LUNDX = LUBFR - CALL OPENBF( LUBFR, INOUT, LUNDX ) - CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF(IRET1 .NE. 0) GO TO 50 - ENDIF -C -C----------------------------------------------------------------------| -C -C READ THE BUFR DATA TANKS -C -C----------------------------------------------------------------------| -C - 20 CALL READSB (LUBFR,IRET2) - IF (IRET2 .LT. 0) THEN - CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF (IRET1 .LT. 0) GOTO 50 - GO TO 20 - END IF -C -C----------------------------------------------------------------------| -C UNPACK THE STATION INFORMATION FROM THE BUFR MESSAGE | -C----------------------------------------------------------------------| -C - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C PRINT 103,(HDR(KK),KK=1,6) - 103 FORMAT(' HDR IS ',A8,3f8.1,' AUTO/TOST =',2f9.1) -C -C CONVERT THE LONGITUDE TO WEST LONGITUDE -C - IF(HDR(3) .LT. 0.) THEN - HDR(3) = -HDR(3) - ELSE - HDR(3) = 360. - HDR(3) - END IF -C -C DROP ALL NON-US METAR REPORTS -C - IF(ITYP .EQ. 2) THEN - RWORK = HDR(1) - IF(CWORK(1:1) .NE. 'K') GOTO 20 - END IF -C -C----------------------------------------------------------------------| -C CHECK TO SEE IF THIS REPORT IS WITHIN THE AREA -C WANTED. IF NOT, GO GET THE NEXT REPORT -C----------------------------------------------------------------------| -C - IF((HDR(2) .GT. RLIMS(1)) .OR. (HDR(2) .LT. RLIMS(2))) - 1 GO TO 20 - IF((HDR(3) .LT. RLIMS(3)) .OR. (HDR(3) .GT. RLIMS(4))) - 1 GO TO 20 - -C PRINT 103,(HDR(KK),KK=1,6) -C -C SAVE THE AUOMATIC/MANUAL FLAG -C - IAUTO = 0 - IF(HDR(5) .LT. 99990.) IAUTO = 1 - IF(HDR(6) .EQ. 0) IAUTO = 1 -C -C----------------------------------------------------------------------| -C UNPACK NEEDED PARAMETERS FROM THIS REPORT -C----------------------------------------------------------------------| -C - CALL UFBINT (LUBFR, HDT, 10, 1, NRET, CDATE) -C PRINT 105,(HDT(KK),KK=1,5) - 105 FORMAT(' DATE/TIME OF THIS REPORT: ',5F8.0) -C -C GET THE JULIAN DAY NUMBER FOR THIS REPORT -C - IYR = HDT(1) - IMT = HDT(2) - IDY = HDT(3) - IJDN = IW3JDN(IYR, IMT, IDY) -C PRINT *,' JULIAN DAY NUMBER FOR THIS REPORT :',IJDN - IJMIN = IJDN*1440 + HDT(4)*60 + HDT(5) -C PRINT *,' JULIAN MINUTE FOR THIS REPORT ',IJMIN - DO KK = 1,16 - RRR(1,KK) = FMISS - END DO -C CALL UFBINT (LUBFR, RRR, 10,255 , NRRT1, 'RRSTG ') -C PRINT 104,(RRR(1,KK),KK=1,16) -C104 FORMAT(8A8) - DO K = 1,40 - ARR(K) = FMISS - END DO -C -C UNPACK THE MEAN SEA LEVEL PRESSURE -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAA) - IF(NRET .NE. 0) ARR(1) = RRR(1,1) -C -C UNPACK THE WINDS -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAB) - IF(NRET .NE. 0) THEN - ARR(3) = RRR(1,1) - ARR(4) = RRR(2,1) - END IF -C -C UNPACK THE TEMPERATURE AND DEW POINT TEMP -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAC) - IF(NRET .NE. 0) THEN - ARR(5) = RRR(1,1) - ARR(6) = RRR(2,1) - END IF -C -C UNPACK THE HORIZONTAL VISIBILITY -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAD) - IF(NRET .NE. 0) ARR(11) = RRR(1,1) -C -C UNPACK THE PRESENT WEATHER -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAE) - IF(NRET .NE. 0) ARR(12) = RRR(1,1) -C -C UNPACK THE TOTAL CLOUD COVER -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAF) - IF(NRET .NE. 0) ARR(14) = RRR(1,1) -C -C UNPACK THE CLOUD GROUPS -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAG) - IF (NRET .NE. 0) CALL CLOUDS(RRR, NRET, ARR) -C -C PRESSURE TENDENCY -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAH) - IF(NRET .NE. 0) THEN - ARR(24) = RRR(1,1) - ARR(25) = RRR(2,1) - ARR(40) = RRR(3,1) - END IF -C -C UNPACK PRECIPITATION GROUPS -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAI) - IF(NRET .NE. 0) THEN - ARR(26) = RRR(1,1) - ARR(27) = RRR(2,1) - ARR(28) = RRR(3,1) - END IF -C -C UNPACK WIND WAVE GROUPS -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAJ) - IF(NRET .NE. 0) THEN - ARR(30) = RRR(1,1) - ARR(31) = RRR(2,1)*2. - ARR(32) = RRR(3,1) - ARR(33) = RRR(4,1)*2. - END IF -C -C UNPACK SWELL WAVE GROUPS -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAK) - IF(NRET .NE. 0) THEN - ARR(34) = RRR(1,1) - ARR(35) = RRR(2,1) - ARR(36) = RRR(3,1)*2 - END IF -C -C UNPACK WATER TEMP, SHIP'S SPEED AND DIRECTION -C - CALL UFBINT (LUBFR, RRR, 10, 255, NRET, CATAL) - IF(NRET .NE. 0) THEN - ARR(37) = RRR(1,1) - ARR(38) = RRR(2,1) - ARR(39) = RRR(3,1) - END IF -C -C PRINT THE DATA READ IN -C - INUMP = 40 -C PRINT 102,HDR(1) - 102 FORMAT(/,' ',a8) -C PRINT 101,(CATA(KK),ARR(KK),KK=1,INUMP) - 101 FORMAT(6(a5,f8.1)) -C - RETURN - 50 IRET = -1 - RETURN -C - END diff --git a/util/sorc/gendata.fd/thnstn.f b/util/sorc/gendata.fd/thnstn.f deleted file mode 100755 index dbcb7447c7..0000000000 --- a/util/sorc/gendata.fd/thnstn.f +++ /dev/null @@ -1,272 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: THNSTN THIN THE STATION LIST -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-01-10 -C -C ABSTRACT: THNSTN SORTS THE DATA ACCORDING TO LOCATION AND -C THEN DROPS OVERLAPPING STATIONS ACCORDING TO THE -C PRIORITY -C -C PROGRAM HISTORY LOG: -C -C 97-01-10 LARRY SAGER -C -C USAGE: CALL THNSTN (ITABL, KSTN) -C INPUT ARGUMENT LIST: -C ITABL - STATION SORT TABLE -C KSTN - NUMBER OF STATIONS IN SORT TABLE -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C ITABL - STATION SORT TABLE UPDATTED BY THINNING -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ - SUBROUTINE THNSTN (LL, ITABL, KSTN, CSTN) -C -C THIS SUBROUTINE SORTS THE STATION TABLE BY LOCATION -C AND THEN THINS OVERLAPPING STATIONS -C -C - INTEGER ITABL(3,20000) - INTEGER ITN(20000) - INTEGER ITP(20000) - INTEGER ISORT(1,20000) - INTEGER IWORK(20000) - INTEGER IOVER(20000) - INTEGER IVR(50,20000) - INTEGER LL(6) - - CHARACTER*8 CSTN(20000) - - DATA IVR /1000000*0/ - DATA IOVER/20000*0/ - DATA ITOL /45/ - DATA JTOL /43/ -C - IMODE = 0 - IRECLTH = 1 - IKEYLTH = 8 - IRADSIZ = 1 -C -C REPLACE THE I AND J TOLERANCES IF NEW VALUES -C WERE READ IN -C - IF(LL(5) .NE. 999) ITOL = LL(5) - IF(LL(6) .NE. 999) JTOL = LL(6) - PRINT *,' I J TOLERANCES ARE ',ITOL,JTOL - - DO K =1,KSTN - ISORT(1,K) = ITABL(1,K) - END DO -C -C SORT THE REPORTS USING THE SORTER ORDERS -C - - CALL ORDERS ( IMODE, IWORK, ISORT, ITN, KSTN, IRECLTH, IKEYLTH, - 1 IRADSIZ ) - - DO K =1,KSTN - ISORT(1,K) = ITABL(3,K) - END DO - - CALL ORDERS ( IMODE, IWORK, ISORT, ITP, KSTN, IRECLTH, IKEYLTH, - 1 IRADSIZ ) - -C DO K = 1,KSTN -C ISORT(1,K) = ITN(K) -C END DO -C -C THIN OVERLAPPING STATIONS BY COMPARING PRIORITY NUMBERS -C - DO 20 KK = 1,KSTN-1 -C -C START BY SKIPPING THIS STATION IF IT HAS ALREADY BEEN -C THINNED. -C - IF(ITN(KK) .EQ. 0) GO TO 20 - K = ITN(KK) -C -C SET THE OVERLAP LIMITS FOR THIS STATION -C - IP = ITABL(1,K) + ITOL - JM = ITABL(2,K) - JTOL - JP = ITABL(2,K) + JTOL -C -C LOOP ON STATIONS WHICH OVERLAP IN THE I-DIRECTION -C - DO 10 JJ = KK+1,KSTN - IF(ITN(JJ) .EQ. 0) GO TO 10 - J = ITN(JJ) - IF(IP .LT. ITABL(1,J)) GO TO 20 -C -C SEE IF THESE STATIONS OVERLAP IN THE J-DIRECTION -C - JTAB = ITABL(2,J) - IF((JM .LE. JTAB) .AND. (JP .GE. JTAB))THEN -C -C THESE STATIONS OVERLAP: DROP THE STATION -C WITH THE LOWER PRIORITY NUMBER -C - IF(IOVER(K) .LT. 50) IOVER(K) = IOVER(K) + 1 - IF(IOVER(J) .LT. 50) IOVER(J) = IOVER(J) + 1 - IVR(IOVER(K),K) = J - IVR(IOVER(J),J) = K -C IF (ITABL(3,K) .LT. ITABL(3,J)) THEN -C ITN(KK) = 0 -C ITABL(3,K) = -1 -C GO TO 20 -C END IF -C -C ERASE THE STATION -C -C ITN(JJ) = 0 -C ITABL(3,J) = -1 - END IF - 10 CONTINUE - 20 CONTINUE -C -C PASS # 2 THIN OUT STATIONS WITH THE SAME -C PRIORITY AS OTHERS BUT MORE OVERLAPS -C -C DO K = 1,KSTN -C KK = ITP(KSTN - K + 1) -C PRINT 108,CSTN(KK),IOVER(KK),ITABL(3,KK) -C IF(IOVER(KK).GT.0) THEN -C DO J=1,IOVER(KK) -C JJ = IVR(J,KK) -C PRINT 107,CSTN(JJ),ITABL(3,JJ),IOVER(JJ) -C END DO -C END IF -C END DO -C PRINT *,'AAAAAAAAAAAAAAAAPASS = 2' -C - DO 50 KR = 1,KSTN - K = ITP(KSTN - KR + 1) - IF(ITABL(3,K) .EQ. -1) THEN -C PRINT *,CSTN(K),' PREVIOUSLY THINNED' - GOTO 50 - END IF - IF(IOVER(K).GT.0) THEN - DO 40 J = 1,IOVER(K) - KK = IVR(J,K) - IF(ITABL(3,KK) .EQ. -1) THEN -C PRINT *,' ',CSTN(KK),' Olap station peviously thinned' - GOTO 40 - END IF -C -C DROP STATION OF EQUAL PRIORITY BUT WITH -C MORE OVERLAPS -C - IF(ITABL(3,K).EQ.ITABL(3,KK)) THEN - IF(IOVER(K) .LT. IOVER(KK)) THEN - ITABL(3,KK) = -1 -C PRINT *,CSTN(KK),' =PRIOR THINNED' - ELSE - ITABL(3,K) = -1 -C PRINT *,CSTN(K),' =PRIOR LOOP THINNED' - GOTO 50 - END IF - END IF - 40 CONTINUE - END IF - 107 FORMAT(' OVERLAPPING STATION ',A8,i5,' has ', i3,' olaps,') - 108 FORMAT(' STATION ',A8,' olaps: ',i4,' PRIOR ',i4) - 50 CONTINUE -C -C PASS #3 THROUGH THE REPORTS: DROP OVERLAPPING STATIONS -C OF LOWER PRIORITY -C -C PRINT *,'XXXXXXXXXXX START PASS 3 ****' - DO 70 KR = 1,KSTN - K = ITP(KSTN - KR + 1) - IF(ITABL(3,K) .EQ. -1) THEN -C PRINT *,CSTN(K),' THINNED BEFOR PRIOR DROP' - GOTO 70 - END IF -C PRINT 108,CSTN(K),IOVER(K),ITABL(3,K) - IF(IOVER(K).GT.0) THEN - DO 60 J = 1,IOVER(K) - KK = IVR(J,K) - IF(ITABL(3,KK) .EQ. -1) THEN -C PRINT *,CSTN(KK),' OVERLAP ALREADY THINNED' - GOTO 60 - END IF -C PRINT 107,CSTN(KK),ITABL(3,KK),IOVER(KK) -C -C DROP STATION OF EQUAL PRIORITY BUT WITH -C MORE OVERLAPS -C - IF(ITABL(3,K) .GT. ITABL(3,KK)) THEN - ITABL(3,KK) = -1 -C PRINT *,CSTN(KK),' THINNED' - END IF - 60 CONTINUE - END IF - 70 CONTINUE - DO JA=1,20000 - IOVER(JA) = 0 - END DO - PRINT *, 'KSTN = ', KSTN - DO 90 KK = 1,KSTN-1 -C -C THIS LOOP DOES A FINAL THINNING CLEANUP -C - K = ITN(KK) - IF ( K .EQ. 0 ) GO TO 90 - IF(ITABL(3,K) .EQ. -1) GO TO 90 -C -C SET THE OVERLAP LIMITS FOR THIS STATION -C - IP = ITABL(1,K) + ITOL - JM = ITABL(2,K) - JTOL - JP = ITABL(2,K) + JTOL -C -C LOOP ON STATIONS WHICH OVERLAP IN THE I-DIRECTION -C - DO 80 JJ = KK+1,KSTN - J = ITN(JJ) - IF ( J .EQ. 0 ) GO TO 80 - IF(ITABL(3,J) .EQ. -1) GO TO 80 - IF(IP .LT. ITABL(1,J)) GO TO 90 -C -C SEE IF THESE STATIONS OVERLAP IN THE J-DIRECTION -C - JTAB = ITABL(2,J) - IF((JM .LE. JTAB) .AND. (JP .GE. JTAB))THEN -C -C THESE STATIONS OVERLAP: DROP THE STATION -C WITH THE LOWER PRIORITY NUMBER -C - IF (ITABL(3,K) .LT. ITABL(3,J)) THEN - ITN(KK) = 0 - ITABL(3,K) = -1 -C PRINT *,' DROPPING ',CSTN(K) - GO TO 90 - END IF -C -C ERASE THE STATION -C - ITN(JJ) = 0 - ITABL(3,J) = -1 -C PRINT *,' DRPPING ',CSTN(J) - END IF - 80 CONTINUE - 90 CONTINUE -C DO K = 1,KSTN -C KK = ITP(KSTN - K + 1) -C PRINT 108,CSTN(KK),IOVER(KK),ITABL(3,KK) -C IF(IOVER(KK).GT.0) THEN -C DO J=1,IOVER(KK) -C JJ = IVR(J,KK) -C PRINT 107,CSTN(JJ),ITABL(3,JJ),IOVER(JJ) -C END DO -C END IF -C END DO -C - RETURN - END diff --git a/util/sorc/mkgfsawps.fd/compile_mkgfsawps_wcoss.sh b/util/sorc/mkgfsawps.fd/compile_mkgfsawps_wcoss.sh index 103ed63e31..7051909c60 100755 --- a/util/sorc/mkgfsawps.fd/compile_mkgfsawps_wcoss.sh +++ b/util/sorc/mkgfsawps.fd/compile_mkgfsawps_wcoss.sh @@ -3,7 +3,7 @@ LMOD_EXACT_MATCH=no source ../../../sorc/machine-setup.sh > /dev/null 2>&1 cwd=`pwd` -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then +if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "hera" ] ; then echo " " echo " You are on WCOSS: $target " echo " " diff --git a/util/sorc/mkgfsawps.fd/makefile.theia b/util/sorc/mkgfsawps.fd/makefile.hera similarity index 100% rename from util/sorc/mkgfsawps.fd/makefile.theia rename to util/sorc/mkgfsawps.fd/makefile.hera diff --git a/util/sorc/overgridid.fd/compile_overgridid_wcoss.sh b/util/sorc/overgridid.fd/compile_overgridid_wcoss.sh index d9baf16d92..f6800a1943 100755 --- a/util/sorc/overgridid.fd/compile_overgridid_wcoss.sh +++ b/util/sorc/overgridid.fd/compile_overgridid_wcoss.sh @@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no source ../../../sorc/machine-setup.sh > /dev/null 2>&1 cwd=`pwd` -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then +if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "hera" ] ; then echo " " echo " You are on WCOSS: $target " echo " " diff --git a/util/sorc/plotvpap.fd/afpltf.f b/util/sorc/plotvpap.fd/afpltf.f deleted file mode 100755 index d4a347735b..0000000000 --- a/util/sorc/plotvpap.fd/afpltf.f +++ /dev/null @@ -1,303 +0,0 @@ - SUBROUTINE AFPLTF(LVLDES,IDUMPT,KADDZ,ITOUT,IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: AFPLTF FORMS THE AFOS PLOTFILE MAPS. -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-04 -C -C ABSTRACT: FORMS THE AFOS PLOTFILE FOR THE UPPER AIR 2 DOT RUN. -C -C PROGRAM HISTORY LOG: -C 89-04-28 ORIGINAL AUTHOR HENRICHSEN -C 93-06-04 LILLY CONVERT SUB. TO FORTRAN 77 -C -C USAGE: CALL AFPLTF(LVLDES,IDUMPT,KADDZ,ITOUT,IERR) -C INPUT ARGUMENT LIST: -C - LGEND TO PUT ON THE PLOTFILE MAPS. -C LVLDES - FLAG DENOTING MB LRVEL DESIRED FOR SUB B4PLOT. -C IDUMPT - INTEGER 2 WORD ARRAY CONTAINING THE DUMP TIME -C KADDZ - STANDARD HEIGHT TO BE ADDED TO D VALUE FOR SUB -C - B4PLOT. -C ITOUT - OPTION FLAG FOR SUB B4PLOT. -C COMMON /IAFOS /NUMAFS,NAMPIL(10),LVERSN,AFOS,SEND,CARD,MARG,PNCH -C - LVERSN 36 BYTE ARRAY THAT CONTAINS THE VERSION NAME. -C - AFOS A LOGICAL FLAG SET TO .TRUE. OR .FALSE. -C -C OUTPUT ARGUMENT LIST: -C IERR - ERROR RETURN -C - = 0 GOOD RETURN. -C - = 1 IF NO MATCH ON PIL LIST. -C - = 2 IF AN ERROR RETURNED FROM SUB AFORMT. -C -C OUTPUT ARGUMENT LIST: -C** COMMON /ISPACE / LBLOCK,ICNTOT ... (REPLACED) -C COMMON /IFORM/ LCNTOT,IBLOCK - -C COMMON / DATE / NYR,NMO,NDA,NHR -C COMMON /TIMES / NANJI(12) -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - LOGICAL W3AI24 - EXTERNAL W3AI24 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C** COMMON /ISPACE / LBLOCK,LCNTOT ... (REPLACED) ... - - INTEGER NWRDBLOKSZ - PARAMETER (NWRDBLOKSZ=2048) - INTEGER NBYTBLOKSZ - PARAMETER (NBYTBLOKSZ=8*NWRDBLOKSZ) !...=16384 - - COMMON /IFORM/ LCNTOT,IBLOCK - INTEGER LCNTOT - INTEGER IBLOCK(NWRDBLOKSZ) !... I*8(2048)=I*4(4096) - CHARACTER*1 C1BLOCK(NBYTBLOKSZ) - EQUIVALENCE (IBLOCK(1),C1BLOCK(1)) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - - COMMON /IAFOS / NUMAFS,NAMPIL,JVERSN,AFOS,SEND,CARD,MARG,PNCH - INTEGER NAMPIL(10) - INTEGER JVERSN(5) - CHARACTER*1 LVERSN(40) - EQUIVALENCE (JVERSN(1),LVERSN(1)) - LOGICAL AFOS - LOGICAL SEND - LOGICAL CARD - LOGICAL MARG - LOGICAL PNCH - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON / DATE / NYR,NMO,NDA,NHR - COMMON /TIMES / NANJI(12) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - CHARACTER*1 BLANK - DATA BLANK / ' ' / - CHARACTER*1 CZERO - DATA CZERO / '0' / - CHARACTER*1 LEND(3) - DATA LEND / 'E','N','D' / -C - INTEGER JPILNUM - CHARACTER*8 CPILNUM - INTEGER IDUMPT(2) - INTEGER ITIME(8) - - - INTEGER JSSN(2,8) - CHARACTER*8 CSSN(2,8) - EQUIVALENCE (JSSN(1,1),CSSN(1,1)) -C ... 00Z 12Z ... - DATA CSSN /' ',' ', - 2 '5140','5640', - 3 '5190','5690', - 4 '5240','5740', - 5 ' ',' ', - 6 '5340','5840', - 7 '5390','5890', - 8 '5440','5940' / - - CHARACTER*1 LEADER(56) - CHARACTER*8 MEADER(7) - DATA MEADER /'NMCPLT ', !...(1:8) - 2 ' 0010200', !...(9:16) - 3 '02048153', !...(17:24) - 4 '62850142', !...(25:32) - 5 '5+0975+1', !...(33:40) - 6 '688HHDDM', !...(41:48) - 7 'MYY ' / !...,Z4040400D/ - - INTEGER JHD1(2) - CHARACTER*1 CHD1(16) - EQUIVALENCE (JHD1(1),CHD1(1)) - DATA JHD1 / 0, X'0200000000000000' / -C ... CHARACTER*1 CHD1(10) /8*Z00,Z02,Z0/ ... - -C -C - - INTEGER KCONS - CHARACTER*1 CCONS(8) - EQUIVALENCE (KCONS,CCONS(1)) - DATA LCONS / X'C5800D0A00020000' / -C 1 2 3 4 5 6 7 8 - CHARACTER*1 HLEAD(2) !... /ZC5,Z80/ - CHARACTER*1 CARRET !... /Z0D/ - CHARACTER*1 LINFED !... /Z0A/ - CHARACTER*1 NULL !... /Z00/ - CHARACTER*1 STX !... /Z02/ - EQUIVALENCE (CCONS(1),HLEAD(1)) - EQUIVALENCE (CCONS(3),CARRET) - EQUIVALENCE (CCONS(4),LINFED) - EQUIVALENCE (CCONS(5),NULL) - EQUIVALENCE (CCONS(6),STX) - - CHARACTER*1 ICYCLE - CHARACTER*1 LPIL(3) - -C - SAVE -C -C . . . . s t a r t . . . . . . . . . . . . . . . . . . . . . -C - ICYCLE = NULL - MEADER(7)(8:8) = CARRET - - IFT50 = 50 - NPLOTF = 24 -C - IERR = 0 - L = 1 - IF(NHR .NE. 0) L = 2 -C ...OTHERWISE THIS IS A 12Z REQUEST... -C -C ... GET PIL FOR AFOS PRODUCT ... -C - PRINT *,' LVLDES =',LVLDES - ISUBNM = JSSN(L,LVLDES) - -C ... WHAT HAS GETPIL() ARGS BEEN CONVERTED TO FOR CRAY ??? - CALL gtapil(ISUBNM,IFT50,CHD1,IRTN) - - IERR = IRTN - IF(IRTN.NE.0)GO TO 500 -C - WRITE(6,FMT='(1H ,''afpltf: AFOS PIL FROM SUB gtapil=X'', - 1 2Z17.16)') - A JHD1(1),JHD1(2) - - NUMAFS = NUMAFS + 1 -C -C ...ASCII PIL NUMBER IS IN CHD1 ARRAY -C - CALL MOVCH(3,CHD1,1,LPIL,1) -C -C ...ASCII PIL NUMBER IN CHD1 ARRAY MOVED INTO C*1 LPIL -C - CPILNUM(1:8) = ' ' - - CALL MOVCH(3,CHD1,1,CPILNUM,1) -C - NAMPIL(NUMAFS) = JPILNUM -C -C -C NOW CLEAR C1BLOCK WITH BINARY ZEROS. -C - DO J=1,NWRDBLOKSZ - IBLOCK(J) = 0 - ENDDO -C - LCNTOT = 1 - CALL MOVCH(2,HLEAD,1,C1BLOCK,LCNTOT) - LCNTOT = LCNTOT + 2 -C -C OCTOBER 24, 1980 -C I HAVE JUST BEEN ADVISED BY DAN STAROSTA THAT THIS AFOS OUTPUT -C SHOULD CARRY A CREATE TIME, NOT THE BASE TIME, IN ITS -C COMMUNICATIONS HEADER. I MUST THEREFORE PASS A CLOCK TIME TO -C FORMAT IN CHD1. -C - CALL W3UTCDAT(ITIME) -C - IRMIN = ITIME(6) - IRELHR = ITIME(5) - CHD1(4) = CHAR(NMO) - CHD1(5) = CHAR(NDA) - CHD1(6) = CHAR(NHR + IRELHR) - CHD1(7) = CHAR(IRMIN) - CHD1(8) = CHAR(NYR) - CHD1(9) = CHAR(2) -C -C NANJI(1-2) HAVE YYMMDDHH IN HOLLERTH SO I NEED TO REORDER FOR -C AFOS TO : HHDDMMYY FOR AFOS PLT HEADER.(MEADER(44-51)) -C - KEY = 50 - DO 10 I = 1,7,2 - CALL MOVCH(2,NANJI,I,MEADER,KEY) - KEY = KEY - 2 - 10 CONTINUE -C -C CHECK TO SEE IF FIRST BYTE OF IDUMP IS A BLANK IF SO CHANGE TO -C A HOLLERTH '0'. -C - IF(W3AI24(IDUMPT,BLANK,1)) then - CALL MOVCH(1,CZERO,1,IDUMPT,1) - endif -C -C ... GET DUMP TIME FROM IDUMPT ARRAY HOWEVER..... -C ... IDUMPT(1-2) HAS HH+MM IN HOLLERTH SO I NEED TO REMOVE THE -C ... THE PLUS FOR AFOS PLT HEADER.(MEADER(52-55)) -C - WRITE(6,FMT='(1H ,''afpltf: AFOS DUMP TIME = '', 2A4)') - A IDUMPT - KEY = 52 - DO I = 1,4,3 - CALL MOVCH(2,IDUMPT,I,MEADER,KEY) - KEY = KEY + 2 - ENDDO -C -C ... CONVERT MEADER TO ASCII. -C -C?? CALL EB2ASC(56,MEADER(1),LEADER(1),IERR) -C -C ... PUT ASCII PILL NUMBER IM LEADER (7-9). -C - CALL MOVCH(3,LPIL,1,LEADER,7) -C - CALL MOVCH(56,LEADER,1,C1BLOCK,LCNTOT) -C - LCNTOT = LCNTOT + 56 - C1BLOCK(LCNTOT) = LINFED - LCNTOT = LCNTOT + 1 -C -C ... WRITE A PLOTFILE LEGEND -C - CALL APLGND(IDUMPT) - -C ... why is B4PLOT called from within an AFOS subr??? -C?? CALL B4PLOT(LVLDES,KADDZ,ITOUT,MARG,AFOS) -C -C ... PLACE A VERSION TITLE IN THE AFOS PLOTFILE FORMAT. -C ... LVERSN - LOGICAL 36 BYTE ARRAY THAT CONTAINS THE -C - VERSION TITLE FOR THE AFOS PLOT FILE MAP. -C - LVERSN(5) /'1600,145','0,00000Z', -C - ',WD412/D','KPH/9.D1', -C - ZF25E0D0A/ -C -C - CALL MOVCH(36,LVERSN,1,C1BLOCK,LCNTOT) -C - LCNTOT = LCNTOT + 36 - - CALL MOVCH(3,LEND,1,C1BLOCK,LCNTOT) - - LCNTOT = LCNTOT + 2 -C -C ... DUMP C1BLOCK ARRAY IF PNCH FLAG IS .TRUE. -C -C??? IF(PNCH) CALL PDUMP(C1BLOCK(1),C1BLOCK(LCNTOT),0) -C -C ... CHECK FOR PNCH FLAG TO SEE IF PLOT FILE IS TO BE WRITTEN TO -C ... FT28 AS WELL AS FT24. -C - IPUNCH = 0 - IF(PNCH) IPUNCH = 2 - - CALL MOVCH(3,LPIL,1,CHD1,1) - -C??? CALL AFORMT(CHD1,IPUNCH,KER) - - IERR = KER - 500 RETURN - END diff --git a/util/sorc/plotvpap.fd/afzoom.f b/util/sorc/plotvpap.fd/afzoom.f deleted file mode 100755 index aa06627bd2..0000000000 --- a/util/sorc/plotvpap.fd/afzoom.f +++ /dev/null @@ -1,184 +0,0 @@ - SUBROUTINE AFZOOM(NAME,KTTYP,PSOWDT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: AFZOOM SET ZOOM & TYPE FOR AN AFOS PLOTFILE STN -C PRGMMR:SHIMOMURA ORG: W/NP12 DATE: 96-08-06 -C -C ABSTRACT: THE GIVEN STATION-NAME IS MATCHED AGAINST A TABLE OF -C NAMES WITH CORRESPONDING ZOOM-THRESHOLDS, SO THAT IF A MATCH IS -C FOUND, THEN THAT ZOOM-THRESHOLD VALUE IS PUT INTO THE RESULTS: -C THE PSOWDT CHARACTER ARRAY. -C AND THE OBSERVATION TYPE IS FORMATTED FOR THE PSOWDT AND PUT IN -C THERE. THE PSOWDT IS A REQUIRED ELEMENT IN THE AFOS PLOTFILE -C DATA LINE. -C -C PROGRAM HISTORY LOG: -C 89-04-26 ORIGINAL AUTHOR HENRICHSEN -C 89-05-28 HENRICHSEN ADDED STATION 72233 TO ZOOM 0 LIST. -C 89-07-20 GLORIA DENT CHANGE THE AFOS ZOOM THRESHOLD OF 74732 -C (HOLLOMAN A.F. BASE,N.M.)FROM ZOOM 4-1 TO ZOOM 16-1. -C ADD THIS STATION TO ZOOM 3 LIST. -C 93-05-05 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-08-06 SHIMOMURA: RE-WRITE FOR THE CRAY; COMBINED 3 TABLES INTO 1 -C AND PUT INTO SORTED ORDER FOR FASTER SEARCH. -C -C -C USAGE: CALL AFZOOM(NAME,KTTYP,PSOWDT) -C INPUT ARGUMENT LIST: -C NAME - INTEGER WORD CONTAINING 5-DIGIT STATION NAME IN -C - HOLLERITH. IE '72308 '. WHICH IS CHARLSTON SC. -C KTTYP - INTEGER NUMBER FROM 1 THRU 13 WHICH INDICATES THE -C - TYPE OF REPORT. THIS IS USED TO SET THE LAST BYTE OF -C - PSOWDT. -C -C OUTPUT ARGUMENT LIST: -C PSOWDT - CHARACTER*1 PSOWDT(6) -- SIX-CHARACTER ARRAY -C DESTINED FOR ONE OF THE AFOS PLT FORMAT ELEMENTS -C - WHERE THE FIRST BYTE IS THE ZOOM-THRESHOLD VALUE. -C - AND WILL BE SET TO 0,1,2, OR 3. -C - BYTES 2 THRU 4 ARE 0. -C - BYTE 5 IS SET TO 1 FOR NH PLOT OPTION. -C - BYTE 6 IS REPORT TYPE. SEE REMARKS. -C DEFAULT PSOWDT = "10001A" -C ... 123456 ... -C WHERE DEFAULT ZOOM WHEN NO MATCHING STN NAME IN TABLE -C DEFAULT TYPE WHEN GIVEN INVALID KTTYP -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C -C REMARKS: REPORT TYPE CAN HAVE THE FOLLOWING VALUES; -C A = UPPER LAND, B = UPPER OCEAN, C = RECON., D = AIRCRAFT, -C G = UPPER BOGUS, E = SIRS, F = SAT WINDS. -C -C CALLS ON FUNCTION IJBSIRCH TO DO THE TABLE LOOK-UP -C -C AREA -C SCALE ZT -C 1:1 =0 TO DISPLAY AT ALL ZOOM LEVELS -C 4:1 =1 T0 DISPLAY AT 4:1 AND BELOW -C 9:1 =2 TO DISPLAY AT 9:1 AND BELOW -C 16:1 =3 TO DISPLAY AT 16:1 AND BELOW -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - INTEGER IJBSIRCH - EXTERNAL IJBSIRCH !... DECLARE FUNCTION - - INTEGER MAXNSTNS - PARAMETER (MAXNSTNS=46) - INTEGER MAXTYPES - PARAMETER (MAXTYPES=13) - - INTEGER NAME !... ARG1: BLK+STN_NUM - INTEGER KTTYP !... ARG2: REPORT TYPE - CHARACTER*1 PSOWDT(6) !... ARG3: PSOWDT W/ P & D & T -C -C TWO STATIONS (72357 AND 72293) WERE ADDED TO ZOOM0 LIST(89/04/14). -C STATION (74732) WAS ADDED TO THE ZOOM3 LIST(89/07/20). - - - INTEGER STNZM(2,MAXNSTNS) - DATA STNZM / - 1 '04360 ',3, '25399 ',3, - 2 '70174 ',3, '70273 ',0, '70398 ',0, - 3 '71043 ',0, '71114 ',2, '71801 ',0, - 4 '71826 ',0, '71913 ',0, '71928 ',2, - 5 '72201 ',0, '72209 ',3, '72221 ',2, - 6 '72225 ',3, '72228 ',3, '72232 ',0, - 7 '72233 ',0, '72239 ',2, '72250 ',0, - 8 '72273 ',3, '72290 ',0, '72293 ',0, - 9 '72295 ',3, '72303 ',3, '72304 ',0, - A '72327 ',0, '72353 ',0, '72355 ',3, - B '72357 ',0, '72381 ',3, '72385 ',3, - C '72391 ',3, '72402 ',2, '72408 ',3, - D '72476 ',0, '72493 ',0, '72606 ',0, - E '72734 ',0, '72764 ',0, '72785 ',0, - F '74732 ',3, - G '76225 ',0, - H '78016 ',0, '78367 ',0, - I '91021 ',0 / -C - -C -C LTYPE IS IN ASCII WHERE 3*A'S,3*B'S, C,2*D'S, G, E,2*F'S -C - CHARACTER*1 LTYPE(MAXTYPES) - -C ... 1 2 3 4 5 6 7 8 9 - DATA LTYPE /'A','A','A','B','B','B','C','D','D', - 1 'G','E','F','F'/ -C ... 10 11 12 13 - - - CHARACTER*1 CON_PSOWDT(6) - DATA CON_PSOWDT /'0','0','0','0','1','A'/ -C ... 1 2 3 4 5 6 - CHARACTER*1 ZOOMS(4) - DATA ZOOMS /'0','1','2','3'/ - - CHARACTER*1 ZOOM1 - DATA ZOOM1 /'1'/ -C - INTEGER INDX -C - LOGICAL FOUNDNAME -C - INTEGER INTNAME - CHARACTER*8 C8NAME - EQUIVALENCE (INTNAME,C8NAME) - - CHARACTER*1 C1NAME(8) - EQUIVALENCE (INTNAME,C1NAME(1)) - -C -C - INTNAME = NAME !... I*8 W/I WHICH LEADING 5-BYTES GOOD - call byteswap(INTNAME, 8, 1) - DO IC = 6,8 - C1NAME(IC) = ' ' !... BLANK OUT TRAILING 3 BYTES - ENDDO -C ... INITALIZE PSOWDT ... -C - DO I = 1,6 - PSOWDT(I) = CON_PSOWDT(I) - ENDDO -C - IF((KTTYP .GT. 0) .AND. - 1 (KTTYP .LE. MAXTYPES)) THEN - PSOWDT(6) = LTYPE(KTTYP) - ENDIF -C -C -C THE DEFAULT ZOOM IS ZOOM1 SO LOAD ZOOM1 INTO 1ST BYTE OF PSOWDT. -C - PSOWDT(1) = ZOOM1 -C -C ... PERFORM TABLE LOOK-UP ON STN NAME ... -C ... IF MATCH FOUND, THEN USE THAT ZOOM INSTEAD OF DEFAULT - - FOUNDNAME = .FALSE. - JSTNFOUND = ijbsirch(intname,stnzm,2,MAXNSTNS) - - IF(JSTNFOUND .GT. 0) THEN - - INDX = 1 + STNZM(2,JSTNFOUND) - PSOWDT(1) = ZOOMS(INDX) - FOUNDNAME = .TRUE. - ENDIF - -C -C - 300 CONTINUE -C - IF(FOUNDNAME) THEN - WRITE(6,315) C8NAME(1:5),(PSOWDT(I),I=1,6) - 315 FORMAT(1H ,'AFZOOM: FOUND MATCHING STN =',A,'; PSOWDT=',6A1) - ENDIF -C - RETURN - END diff --git a/util/sorc/plotvpap.fd/aplgnd.f b/util/sorc/plotvpap.fd/aplgnd.f deleted file mode 100755 index 31102864c4..0000000000 --- a/util/sorc/plotvpap.fd/aplgnd.f +++ /dev/null @@ -1,111 +0,0 @@ - SUBROUTINE APLGND(IDUMPT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: APLGND FORM AFOS LEGEND -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-06 -C -C ABSTRACT: FORM AND PLACES A LEGEND ON THE AFOS PLOTFILE FORMAT. -C -C PROGRAM HISTORY LOG: -C 89-05-10 ORIGINAL AUTHOR HENRICHSEN -C 93-05-06 LILLY CONVERT SUB. TO FORTRAN 77 -C -C USAGE: CALL APLGND(IDUMPT) -C -C INPUT ARGUMENT LIST: -C IDUMPT - INTEGER 2 WORD ARRAY THAT CONTAINS THE DUMP TIME -C - IN HOLLERTH. IE '10+40 ' -C COMMON - / DATE /NYR,NMO,NDA,NHR -C -C OUTPUT ARGUMENT LIST: -C** COMMON - / IFORM/LBLOCK,ICNTOT -C COMMON - / ISPACE/LBLOCK,ICNTOT -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON / DATE /NYR,NMO,NDA,NHR -C** COMMON / IFORM/LBLOCK,ICNTOT - COMMON / ISPACE/LBLOCK,ICNTOT -C - CHARACTER*12 IBCD -C -C CHARACTER*4 BLNKL1(06) -C DATA BLNKL1 /'1260',',190',',000','00Z,', -C 1 ' ',Z405E0D0A/ -C CHARACTER*4 BLNKL2(06) -C DATA BLNKL2 /'1260',',160',',000','00Z,', -C 1 ' ',Z405E0D0A/ - INTEGER YEAR - INTEGER ICNTOT - INTEGER IDUMPT(2) - CHARACTER*4 MONAM(12) - DATA MONAM /'JAN ','FEB ','MAR ','APR ', - 1 'MAY ','JUN ','JUL ','AUG ', - 2 'SEP ','OCT ','NOV ','DEC '/ - INTEGER NYR - INTEGER JBCD(3) - INTEGER NMO - INTEGER NDA - INTEGER NHR - INTEGER IDAYWK - CHARACTER*4 IHDAYW - CHARACTER*4 ILEGEN(12) - DATA ILEGEN /'1260',',220',',000','00Z,', - 1 'HHZ ','THU ','DD A','PR 1', - 2 '989 ','HH+M','M; ',' '/ -C - CHARACTER*1 LBLOCK(16384) - CHARACTER*1 LEGEND(48) - CHARACTER*1 LVERSN(40) -C - EQUIVALENCE(ILEGEN(1),LEGEND(1)) - EQUIVALENCE(JBCD(1),IBCD) -C -C FORM LEGEND FOR AFOS PLOT FILE. -C - ILEGEN(11)(3:3) = CHAR(13) - ILEGEN(11)(4:4) = CHAR(10) -C ..... 0D,0A -C - YEAR = NYR + 1900 - IF(YEAR .LT. 1950) YEAR = YEAR + 100 - CALL DAYOWK(NDA,NMO,YEAR,IDAYWK,IHDAYW) - CALL INT2CH(NHR,IBCD,2,'A999') - CALL MOVCH(2,JBCD(1),1,LEGEND,17) - CALL INT2CH(NDA,IBCD,2,'A999') - CALL MOVCH(2,JBCD(1),1,LEGEND,25) - CALL INT2CH(YEAR,IBCD,4,'A999') - CALL MOVCH(4,JBCD(1),1,LEGEND,32) - CALL MOVCH(4,IHDAYW,1,LEGEND,21) - CALL MOVCH(4,MONAM(NMO),1,LEGEND,28) - WRITE(6,2) IDUMPT - 2 FORMAT(' DUMP TIME=',2A4) - CALL MOVCH(5,IDUMPT,1,LEGEND,37) -C -C CONVERT LEGEND TO ASC AND LOAD INTO LBLOCK. -C -C??? CALL EB2ASC(44,LEGEND,LBLOCK(ICNTOT),IERR) - DO I = 1, 44 - LBLOCK(ICNTOT+I-1)=LEGEND(I) - ENDDO - ICNTOT = ICNTOT + 44 -C -C PLACE TWO BLANK LINES OF TEXT AFTER LEGEND TO SEE IF THIS -C FOOL THE PLOTING PROGRAM ON AFOS SO THE THE VERSION TITLE -C IS PLACED IN UPPER LEFT HAND CORNER OF CHART. -C -C?? CALL EB2ASC(24,BLNKL1,LBLOCK(ICNTOT),IERR) -C?? ICNTOT = ICNTOT + 24 -C?? CALL EB2ASC(24,BLNKL2,LBLOCK(ICNTOT),IERR) -C?? ICNTOT = ICNTOT + 24 - RETURN - END diff --git a/util/sorc/plotvpap.fd/asc2int.f b/util/sorc/plotvpap.fd/asc2int.f deleted file mode 100755 index e4be28b44f..0000000000 --- a/util/sorc/plotvpap.fd/asc2int.f +++ /dev/null @@ -1,71 +0,0 @@ - SUBROUTINE ASC2INT(NCHAR,C1ASCII,INTOUT,IERR) -C -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: ASC2INT TRANSLATE ASCII INTO INTEGER -C PRGMMR: LIN ORG: W/NP12 DATE: 97-01-30 -C -C ABSTRACT: TO TRANSLATE AN ASCII ARRAY INTO INTEGER -C (IN A CHARACTER*1 ARRAY). -C WHERE THE "EXTENDED" DISPLAY CODE IS INTEGER -C -C PROGRAM HISTORY LOG: -C 97-01-30 ORIGINAL AUTHOR: LUKE LIN -C -C USAGE: CALL ASC2INT(NCHAR,C1ASCII,INTOUT,IERR) -C INPUT ARGUMENT LIST: -C C*1 C1ASCII(NCHAR) - SOURCE CHARACTER*1 ARRAY IN ASCII -C -C OUTPUT ARGUMENT LIST: -C INTOUT : output integer -C IN EXTENDED DISPLAY CODE -C INT IERR - ERRFLAG -C = 0; NORMAL RETURN -C = 1; BAD VALUE GIVEN IN NCHAR -C -C OUTPUT FILES: -C FT06F001 - INCLUDE IF ANY PRINTOUT -C IF GIVEN VALUE OF NCHAR IS ZERO, THEN -C ERROR MESSAGE IS PRINTED -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C ... TO TRANSLATE TEXT FROM ASCII INTO CDC DISPLAY CODE -C ... BUT IN EXTENDED DISPLAY CODE OF 8-BITS PER CHAR. -C - CHARACTER*1 C1ASCII(NCHAR) - INTEGER INTOUT - INTEGER IERR -C -C -C -C . . . . S T A R T . . . . . . . . . . . . . . . . . . . . -C - IERR = 0 - INTOUT = 0 -C - NCH2DO = NCHAR - IF(NCH2DO .LE. 0) THEN - WRITE(6,FMT='(1H ,''ASC2INT: ERROR! YOU GAVE ME A'', - 1 '' BAD CHAR COUNT. NCHAR='',I8)')NCHAR - IERR = 1 - ELSE - DO LA = 1,NCH2DO - ITEMP = MOVA2I(C1ASCII(LA)) - MOVA2I('0') - IF ( ITEMP .LT. 0 .OR. ITEMP .GT. 9) THEN - IERR = 1 - WRITE(6,FMT='(1H ,''ASC2INT: ERROR! YOU GAVE ME A'', - 1 '' BAD CHAR-DIGIT. NCHAR='',I8)')LA - RETURN - ENDIF - - INTOUT = INTOUT*10 + ITEMP - ENDDO - ENDIF - RETURN - END diff --git a/util/sorc/plotvpap.fd/b4plotx.f b/util/sorc/plotvpap.fd/b4plotx.f deleted file mode 100755 index 1f89bb3166..0000000000 --- a/util/sorc/plotvpap.fd/b4plotx.f +++ /dev/null @@ -1,2129 +0,0 @@ - SUBROUTINE b4plotx(LWNDONLY,lvldes,idelta,itout,LMARGIN, - 1 AFOS,IERROR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: b4plotx DECODE DATA / FORM AFOS PLOTFILE -C PRGMMR: shimomura ORG: W/NP12 DATE: 97-03-10 -C -C ABSTRACT: GIVEN THE OBSERVATIONAL DATA PACKED INTO REAL*8 NDATA ARRAY -C THE TASKS ARE TO DECODE EACH OBS IN NDATA, INTERPRET THE DATA, -C POSITION THE STN ON THE MAP, DECIDE WHAT QUANTITIES ARE -C TO BE PLOTTED, REFORMAT DATA AND CALL ON SUBROUTINE PLTDAT -C TO PLOT THE OBS ACCORDING TO THE PLOTTING MODEL. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR: DAVID SHIMOMURA -C 88-07-22 GLORIA DENT CHANGE THE AFOS ZOOM THRESHOLD OF 72273 (FT. -C HUACHUCA) FROM ZOOM1 TO ZOOM 16. CHANGE THE AFOS ZOOM -C THRESHOLD OF 76458 (MAZATLAN,MX) FROM ZOOM 3 TO ZOOM 1 -C 88-08-11 GLORIA DENT MOVE THE PLOTTING PARAMETERS DOWN OF STATION -C 72273 (FT. HUACHUA) SO THAT THEY WILL NOT OVERPLOT -C STATION 72274 (TUCSON) ON THE VARIAN CHART. -C 89-04-26 HENRICHSEN ADDED ARG LMARGIN A LOGICAL WORD THAT IS -C SET = .TRUE. IF STATIONS ARE TO BE PLOTTED -C IN MARGIN TO AVOID OVER PLOTTING. -C CHANGED LAST ARG TO A LOGICAL WORD THAT IS -C SET = .TRUE. IF AFOS PLOTFILE IS TO BE MADE. -C CLEANED UP AND DOCUMENTED. ADDED NEW SUB -C AFZOOM. -C 89-06-09 LILLY MOVED THE PLOTTING PARAMETERS WEST OF STATION -C 72435 (PADUCAH) AND EAST OF STATION 72327 -C (NASHVILLE/BERRY) SO THAT THEY WILL NOT -C OVERPLOT ON THE VARIAN CHART. -C 89-06-12 LILLY MOVED THE PLOTTING PARAMETERS NORTH OF STATION -C 72429 (DAYTON) AND SOUTH OF STATION 72425 -C (HUNYINHYON) SO THAT THEY WILL NOT -C OVERPLOT ON THE VARIAN CHART. -C 89-06-21 LILLY NOT TO PLOT STATION CIRCLE/WIND BAR IF STATION -C 74671 (FORT CAMPBELL) OCCURRS. -C 89-07-21 LILLY NOT TO PLOT STATION CIRCLE/WIND BAR IF STATIONS -C 72269 (WHITE SANDS) OR 74734 (WHITE SANDS -C MISSILE) OCCURRS -C 89-09-13 LILLY ADDED LOGIC WHICH MAY TEST THE PLOTTING LOCATION -C OF 2 NEARBY STATIONS. NWS STATIONS -C OBSERVATION HAVE A HIGHER PRIORITY OVER -C MILITARY. HENCE, IF BOTH NWS AND MILITARY -C OBSERVATIONS ARE REPORTED, THE MILITARY -C OBSERVATIONS IS MOVED TO PREVENT OVERPLOTTING. -C OTHERWISE, THE MILITARY REMAINS. -C 89-11-06 LILLY ADD LOGIC WHICH PREVENTS SPECIFIED MILITARY -C UPPER AIR REPORTS FROM BEING PLOTTED AT -C THE TOP OF THE VARIAN PRODUCT DUE TO DATA -C OVERWRITING DATA RECEIVED FROM A NWS STATION. -C THIS LOGIC CONFIRMS WHETHER BOTH, ONLY ONE, -C OR NEITHER OBSERVATIONS ARE PRESENT. IF BOTH -C STATIONS REPORT, THE MILITARY OBSERVATION IS -C MOVED TO THE TOP TO THE VARIAN PRODUCT. IF -C THE NWS DOES NOT REPORT, THE MILITARY -C OBSERVATION IS PLOTTED NORMALLY. -C 90-04-23 LILLY ADD LOGIC WHICH WILL PREVENT REPEATING PREVIOUS -C OBSERVATION FOR LEVELS WHICH ARE MISSING. -C 93-05-08 LILLY CONVERT SUB. TO FORTRAN 77 -C 97-01-24 SHIMOMURA: Convert to run on CRAY; -C Changed call sequence to split items which -C had been hidden in half words: -C OLD ARG(1) LVLDET is now LWNDONLY,LVLDES; -C OLD ARG(3) ITOUCH is now IDELTA,ITOUT; -C Changed expected value in LWNDONLY -C which used to be integer = 1 or =2; -C changed to a logical LWNDONLY = .T. OR .F. -C Changed source of input data; -C Input OBS data includes 12-hr hgt chg, so I do -C not need RIDOBS array. -C Removed MOPTN (which was for extended IOPTN) -C because CRAY I*8 has enough room in same word. -C Extracted AFOS PLOTFILE generating and put -C that logic into subr GENAFPLT() -C Removed OLD ARG: KADDZ -- additive constant for -C converting D-value to actual Height is not -C necessary because I have the Height in data. -C -C 97-02-10 LUKE LIN: Added external plot-position adjustments. -C Re-activated sections of commented out code -C near the end; -C Commented out the AFOS Plotfile generator; -C -C 97-02-27 SHIMOMURA: Changed to plot only 2-digits when zero-valued -C temperature instead of 3 zeros; -C Corrected test for excessive hgt-chg values; -C Corrected to allow "LV" to plot in lower-right; -C -C 97-03-10 SHIMOMURA: Added ITOUT=14 for large shemi 1:20M map -C -C 97-04-17 SHIMOMURA: Changed 12-hr hgt-chg value to be decameters -C for all levels. -C -C USAGE: CALL b4plotx(LWNDONLY,lvldes,idelta,itout,LMARGIN,AFOS) -C -C INPUT ARGUMENT LIST: -C LWNDONLY - LOGICAL option: plotting model -C _ LWNDONLY = .T. FOR WIND-ONLY PLOTTING MODEL -C - LWNDONLY = .F. FOR MORE ELABORATE PLOTTING MODEL -C lvldes - THE LEVEL DESIRED (How indicated?) -C -C -C IDELTA - specifies the displacement (in pixels) to move the plot -C - to the right-hand panel of a 2-panel chart; -C - =0; For the more common case of single chart. -C -C ITOUT - CONTROLS SEVERAL OPTIONS ON MAP AND TYPE OF -C - PLOTTING. ACCEPTABLE VALUES [1 TO 14] -C -C LMARGIN - LOGICAL switch -C = .TRUE. IF PLOTTING in the margin IS -C - DESIRED FOR FAX CHART TO AVOID OVER PLOTTING. -C AFOS - LOGICAL switch -C = .TRUE. IF AFOS PLOTFILES ARE TO BE MADE FROM THIS DATA; -C = .FALSE. if no AFOS output; -C -C COMMON /ADJUST/ IXADJ,IYADJ -C -C OUTPUT ARGUMENT LIST: -C COMMON - /WLONG0/ WLONG0 -C COMMON - /JSPACE/IDREC(6),NDATA(3,4001) -C COMMON - / MTNS /NAMTMP(9) -C COMMON - / LEVEL/NLEVEL,LCNTR -C -C INPUT FILES: -C FT26F001 - A LIST OF STATIONS FOR POSSIBLE MARGIN PLOTTING AT TOP. -C ... WHEN 1-DOT/2-DOTS VARIAN/FAX CHARTS ARE GENERATED, -C ... THE PROGRAM CHECKS THE REPORTING STATION ACROSS NORTH -C ... AMERICA (STATIONS ID BETWEEN 70000 AND 75000) AGAINST -C ... A TABLE OF KNOWN OVERLAYING STATIONS(PLOTMLTY) -C ... WHICH IS READ IN FROM UNIT:26 -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C COMMON - /ISPACE/LBLOCK,ICNTOT -C -C REMARKS: -C Some of the confusion in this is a result of double-use of zones -C in the plotting model; -C the lower-left zone is for the dew-point depression; -C but in some cases it is used for wind direction in text; -C and in some cases it is used for observation time: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C ----------------------------------------------------------------- - - EXTERNAL LASTCH - INTEGER LASTCH !... INT FUNCTION - - INTEGER LUNOVRL !... U:CONSTANTS OVRLAPPING STNS - PARAMETER (LUNOVRL=26) - - -C ----------------------------------------------------------------- - INTEGER MAXOBS - PARAMETER (MAXOBS=20000) - INTEGER NDATASIZ - PARAMETER (NDATASIZ=MAXOBS+1) - INTEGER LMTWRDPOB - PARAMETER (LMTWRDPOB=10) - INTEGER LMTHFWPOB - PARAMETER (LMTHFWPOB=2*LMTWRDPOB) !... =(20) - - COMMON /OBSLVLDB/NOBSDB,LVLIX,IOBS2PK - INTEGER IOBS2PK(LMTWRDPOB,NDATASIZ) - - COMMON /ADJUST/ IXADJ,IYADJ - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... FOR UNPACKING THE RUNNING 32-BIT WORDS ... - - INTEGER IOBS2PKWORK(LMTWRDPOB) - - INTEGER LONELVL(LMTHFWPOB) - REAL FLONELVL(LMTHFWPOB) - INTEGER NOFFSET - DATA NOFFSET / 0 / - INTEGER NBITSGRP - DATA NBITSGRP / 32 / - INTEGER NPADBITS - DATA NPADBITS / 0 / - INTEGER NGRPS2DO - DATA NGRPS2DO / 20 / -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER KPTR_LAT - DATA KPTR_LAT / 1 / - INTEGER KPTR_LON - DATA KPTR_LON / 2 / - - INTEGER KPTR_ZZ - DATA KPTR_ZZ / 13 / - INTEGER KPTR_TT - DATA KPTR_TT / 14 / - INTEGER KPTR_TD - DATA KPTR_TD / 15 / - INTEGER KPTR_DDD - DATA KPTR_DDD / 16 / - INTEGER KPTR_FFF - DATA KPTR_FFF / 17 / - INTEGER KPTR_DZ - DATA KPTR_DZ / 18 / - integer kptr_qmark - data kptr_qmark / 19 / - integer kptr_bitwrd - data kptr_bitwrd / 20 / - - INTEGER NEGSIGNEXT - DATA NEGSIGNEXT / X'FFFFFFFF00000000' / - INTEGER MISGB12 - DATA MISGB12 / X'000000007FFFF000' / - INTEGER MISGB0 - DATA MISGB0 / X'000000000007FFFF' / - - REAL TT_T, DEW_T, TDEWDEPR -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /JSPACE/IDREC(6),NDATA - INTEGER NDATA(3,NDATASIZ) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - - - COMMON /WLONG0/ WLONG0 - COMMON / MTNS /NAMTMP(9) - - - COMMON / LKTLBS/TLIM,LOOKT - INTEGER LOOKT(9,63),TLIM - COMMON / LEVEL/NLEVEL,LCNTR -C -C . . . . . . . . C A L L S E Q U E N C E . . . . . . . . . -C USAGE: CALL b4plotx(LWNDONLY,lvldes,idelta,itout,LMARGIN,AFOS) - LOGICAL LWNDONLY - INTEGER LVLDES - INTEGER IDELTA - INTEGER ITOUT - LOGICAL LMARGIN - LOGICAL AFOS - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . CALL SEQUENCE FOR CALLING GENAFPLT() . . . . . . . . . -C -C USAGE: CALL GENAFPLT(ITOUT,LVLDES,C8NAME,KTTYP,IOPTN, -C ... 1 ALAT,ALONG,L,ND1_AF, -C ... 2 IHSSS_AF,IHZZ,IHTT,IHDEWPT,IHFFF,IRET_AFP) -C - -C ... INTEGER ITOUT -C ... INTEGER LVLDES -C ... CHARACTER*8 C8NAME - INTEGER KTTYP -C ... INTEGER IOPTN - REAL ALAT,ALONG - CHARACTER*1 L - INTEGER ND1_AF - CHARACTER*4 IHSSS_AF - CHARACTER*4 IHTT - CHARACTER*4 IHDEWPT !... IDEWPT(1:NDCHAR) - CHARACTER*4 IHFFF - CHARACTER*4 IHZZ - INTEGER IRET_AFP - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - character*4 ihdewdep - integer*8 intdd - equivalence (intdd,ihdewdep) - - character*4 ihzzz - character*4 ihtd - - REAL XI,XJ - REAL VSCALE - INTEGER JO - INTEGER JCORN - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - LOGICAL LNEGQ -C - LOGICAL BRNTST - LOGICAL LSWPLT - LOGICAL PLTDTA -C - -C ... EQUIVALENCE(IACC,INGLES(1)) -C ... EQUIVALENCE(MQ,INGLES(2)) - - integer iacc !... NOT equivalenced to - - INTEGER ijwrd !... adata(1,M) - INTEGER namwrd !... adata(2,M) - integer iptrwrd !... adata(3,M) -C - integer nbitwrd - character*1 c1nbitwrd(8) - equivalence (nbitwrd,c1nbitwrd(1)) - - INTEGER JFLAG(12,100) - INTEGER KFLAG(12,100) - INTEGER KAME(100) - CHARACTER*8 JAMSTN(100) - CHARACTER*8 KAMSTN(100) - INTEGER JIDDGD(12,100) - INTEGER KIDDGD(12,100) - - character*4 Jihdewdep(12,100) - character*4 Kihdewdep(12,100) - integer Jnorwndir(12,100) - integer Knorwndir(12,100) - character*4 JIHFFF(12,100) - character*4 KIHFFF(12,100) - character*4 JIHTT(12,100) - character*4 KIHTT(12,100) - character*4 JIHZZZ(12,100) - character*4 KIHZZZ(12,100) - - INTEGER JIO(12,100) - INTEGER KIO(12,100) - INTEGER JJOPTN(12,100) - INTEGER KKOPTN(12,100) - INTEGER KIOPTN(12,100) - INTEGER JJHT1(12,100) - INTEGER KJHT1(12,100) - INTEGER JJO(12,100) - INTEGER KJO(12,100) - INTEGER JKEIL(12,100) - INTEGER KKEIL(12,100) - -C ... FOLLOWING CONSTANTS INPUT FROM UNIT:LUNOVRL ... - CHARACTER*80 COMMENT_CARD - INTEGER NLIST_1 !... COUNT OF LIST-1 ITEMS - CHARACTER*6 OVRSTN(100) !... STN NAMES FROM LIST-1 - CHARACTER*7 ILATLON(100) !... FROM LIST-1 "12N456W" - - INTEGER NLIST_2 !... COUNT OF LIST-2 ITEMS - CHARACTER*6 NWSSTN(100) !... STN NAMES FROM LIST-2(LHS) - CHARACTER*7 JLATLON(100) - CHARACTER*6 MILSTN(100) !... STN NAMES FROM LIST-2(RHS) - CHARACTER*7 KLATLON(100) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - INTEGER KNDD(12,100) - INTEGER JNSSS(12,100) - INTEGER KNSSS(12,100) - - INTEGER NUNPAK(9) - - INTEGER LOOKA - INTEGER LOOKB - - INTEGER*8 NAMSTN - CHARACTER*8 C8NAMSTN - EQUIVALENCE (NAMSTN,C8NAMSTN) - -C . . . . . . . . SPECIAL STATIONS . . . - -C STATION FORT CAMPBELL - CHARACTER*8 CMPBLL - DATA CMPBLL / '74671 '/ - CHARACTER*8 BRNSVL - DATA BRNSVL / '72250 ' / - CHARACTER*8 STNDWN - DATA STNDWN / '72273 ' / -C STATION PADUCAH (72435) - CHARACTER*8 STNWST - DATA STNWST / '72435 ' / -C STATION NASHVILLE/BERRY (72327) - CHARACTER*8 STNEST - DATA STNEST / '72327 ' / -C STATION DAYTON (72429) - CHARACTER*8 STNNTH - DATA STNNTH / '72429 ' / -C STATION HUNTINGTON (72425) - CHARACTER*8 STNSTH - DATA STNSTH / '72425 ' / -C STATION WHITE SANDS - CHARACTER*8 WSNDS - DATA WSNDS / '72269 ' / -C STATION WHITE SANDS MISSILE - CHARACTER*8 WSNDM - data WSNDM / '74734 ' / - -C . . . . . . . . . . . . . . . . . . . . . - - INTEGER NAME - CHARACTER*8 C8NAME - EQUIVALENCE (NAME,C8NAME) - - INTEGER NAME_B - CHARACTER*8 C8NAME_B - EQUIVALENCE (NAME_B,C8NAME_B) - - INTEGER TEXT - INTEGER ICNT - INTEGER JCOUNT - INTEGER NLEVEL - INTEGER LCNTR -C -C - - - CHARACTER*1 LITBLK - DATA LITBLK / ' ' / - - CHARACTER*1 LITPND - DATA LITPND / '#' / - - - - CHARACTER*1 LIT0 - DATA LIT0 /'0'/ - CHARACTER*1 LIT8 - DATA LIT8 /'8'/ - CHARACTER*1 LITA - DATA LITA /'A'/ - CHARACTER*1 LITS - DATA LITS /'S'/ -C - integer kbar1 - CHARACTER*8 KBAR - DATA KBAR / '###### ' / - equivalence (kbar1,kbar) - - INTEGER NAMRC1 - CHARACTER*6 NAMRC - EQUIVALENCE (NAMRC1,NAMRC) - DATA NAMRC / '#R#### ' / - - INTEGER NAMBOG1 - CHARACTER*6 NAMBOG - EQUIVALENCE (NAMBOG1,NAMBOG) - DATA NAMBOG / '#B#### ' / - - INTEGER NAMCAR1 - CHARACTER*6 NAMCAR - EQUIVALENCE (NAMCAR1,NAMCAR) - DATA NAMCAR / '#A#### ' / - - INTEGER*8 NAMOV - - INTEGER NSPL - PARAMETER (NSPL=4) - - INTEGER*8 NAMSPL(NSPL) - DATA NAMSPL / X'3732343033200800', !... 72403 - 2 X'3732323636201000', !... 72262 - 3 X'3732323539201000', !... 72259 - 4 X'3730333631200800' / !... 70361 - - - CHARACTER*4 C4TL - DATA C4TL /'TL$ '/ -C - CHARACTER*4 C4NR - DATA C4NR /'NR$ '/ - - CHARACTER*4 C4MISF - DATA C4MISF /'M$ '/ - - CHARACTER*4 C4LVRB - DATA C4LVRB /'LV$ '/ -C - - INTEGER JBCD - CHARACTER*8 CBCD - EQUIVALENCE (JBCD,CBCD) - - -C - -C - DATA ITOPMX /90/ -C ...WHERE ITOPMX IS MAX N0. OF STNS PLOTTED AT TOP OF PAGE... - DATA KROWMX /30/ -C ...WHERE KROWMX IS MAX NO. OF STNS PER ROW AT TOP-OF-PAGE PLOT -C - DATA KBLK6 /Z'00200000'/ - DATA KBLK56 /Z'20200000'/ - - DATA MSK56 /Z'FFFF0000'/ - DATA MSKBYT6 /Z'00FF0000'/ - DATA MSKBYT5 /Z'FF000000'/ - - INTEGER MSKLHS - DATA MSKLHS / X'FFFFFFFF00000000' / - INTEGER MSKRHS - DATA MSKRHS / X'00000000FFFFFFFF' / - INTEGER MSKCH1TO5 - DATA MSKCH1TO5 / X'FFFFFFFFFF000000' / - - DATA IKDOT /46/ - DATA JKDOT /30/ - - DATA KSTRI /190/ -C ...CAUTION...KSTRI MUST CHANGE W/ INDENT VALUE OF VARIAN - - DATA KSTRJ /1875/ -C ...WHERE KSTRJ IS TOP OF REGULAR MAP BCKGRND AS IN IL(10) - - DATA LMXWND /27/ - - DATA KZBUT /Z'40'/ - DATA KTBUT /Z'20'/ - - DATA KWBIT /8/ - DATA KZBIT /4/ - DATA KTBIT /2/ - DATA KTDBIT /1/ -C ...ABOVE 4 BITS ARE FOR GRANPA FORMAT IIII BIT TEST... - - INTEGER NBITS !... VS. KWBIT, KZBIT, KTBIT, TTDBIT - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - -C ... FOLLOWING BITS ARE FOR IOPTN FOR S/R PLTDAT ... - integer jsouth - DATA JSOUTH / X'0000000100000000' / -C ...TO MOVE ALL PARAMETER SOUTH 4 DOTS EXCEPT STA CIRCLE/WIND BARB - integer kdown - DATA KDOWN / Z'80000000' / -C ...TO MOVE ALL PARAMETER DOWN 12 DOTS EXCEPT STA CIRCLE/WIND BARB - integer iwest - DATA IWEST / Z'40000000' / -C ...TO MOVE ALL PARAMETER WEST 4 DOTS EXCEPT STA CIRCLE/WIND BARB - integer ieast - DATA IEAST / Z'20000000' / -C ...TO MOVE ALL PARAMETER EAST 4 DOTS EXCEPT STA CIRCLE/WIND BARB - integer jnorth - DATA JNORTH / Z'10000000' / -C ...TO MOVE ALL PARAMETER NORTH 4 DOTS EXCEPT STA CIRCLE/WIND BARB - INTEGER KMVTR - DATA KMVTR / Z'08000000' / -C ...WHERE KMVTR: TO MOVE TT TO UPPER RIGHT OF STN CIRCLE - INTEGER KMEDW - DATA KMEDW / Z'04000000' / -C ...WHERE KMEDW IS MED-SMALL CHAR FOR HGT ON WINDS ALOFT CHART - INTEGER KMTMP - DATA KMTMP / Z'02000000' / -C ...TO PLOT 850 MB CALC TMP ABOVE REPORTED TMP -C ...TO MOVE BRACKETS CLOSER TO DATA ON SIRS PLOTTED CHART. - INTEGER KCLOS - DATA KCLOS / Z'01000000' / -C ...WHERE KCLOS MOVE BOGUS 'B' OR ACAR 'A' CLOSER TO STN CIRCLE... - INTEGER KANGB - DATA KANGB / Z'00800000' / -C ...WHERE KANGB IS TO SET ANGLE TO 90.0 FOR SIDEWAYS MODEL - INTEGER KSMNB - DATA KSMNB / Z'00400000' / -C ...WHERE KSMNB IS FOR SMALL CHARS IN STN NAME... - INTEGER KCLZB - DATA KCLZB / Z'00200000' / -C ...WHERE KCLZB IS A CALCULATED GEOPOTENTIAL HGT - INTEGER KCLTB - DATA KCLTB / Z'00100000' / -C ...WHERE KCLTB IS FOR A CALCULATED TEMPERATURE - INTEGER KMEDB - DATA KMEDB / Z'00080000' / -C ...WHERE KMEDB IS MEDIUM-SMALL CHAR FOR TEMP ON IQSY PLOT - INTEGER KMVWB - DATA KMVWB / Z'00040000' / -C ...FOR MOVING WIND BARBS FARTHER OUT THE STAFF TO PREVENT OVRPLOT - INTEGER KSMLB - DATA KSMLB / Z'00020000' / - INTEGER KMVNB - DATA KMVNB / Z'00010000' / - INTEGER KTALB - DATA KTALB / Z'00008000' / - INTEGER KSTRB - DATA KSTRB / Z'00004000' / - INTEGER KSQRB - DATA KSQRB / Z'00002000' / - INTEGER KMVDB - DATA KMVDB / Z'00001000' / - INTEGER KMVZB - DATA KMVZB / Z'00000800' / - INTEGER KDOVB - DATA KDOVB / Z'00000400' / -C ...WHERE KDOVB FOR WIND DIR DIGIT PLOTTED NR END OF STAFF - INTEGER KMVTB - DATA KMVTB / Z'00000200' / - integer ksmcb - data ksmcb / Z'00000100' / - INTEGER KVECB - DATA KVECB / Z'00000080' / - INTEGER KNAMB - DATA KNAMB / Z'00000040' / - INTEGER KZZZB - DATA KZZZB / Z'00000020' / - INTEGER KFFFB - DATA KFFFB / Z'00000010' / - INTEGER KDEWB - DATA KDEWB / Z'00000008' / - INTEGER KTTB - DATA KTTB / Z'00000004' / - INTEGER KOCB - DATA KOCB / Z'00000002' / - INTEGER KCIQB - DATA KCIQB / Z'00000001' / -C ...ABOVE BITS ARE FOR IOPTN FOR S/R PLTDAT - - - INTEGER MIOPTN - data MIOPTN / Z'00000081' / - - INTEGER ISCHRQ - INTEGER IMVWQ - INTEGER IANGLQ - integer IOPTN -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - character*4 khdry - DATA KHDRY / '#X$ ' / -C ...FOR DEWPT DEPRESS PLOT OF X INSTEAD OF 30 FOR DRY AIR - - - DATA KDOL1 /Z'00000024'/ - DATA KDOL2 /Z'00002400'/ - DATA INAMRC /X'5200002300000000'/ -C R # - - INTEGER MSKBST !... BLK+STN NAME MASK - DATA MSKBST / X'FFFFFFFFFFFF0000' / - INTEGER MSK6BITS - DATA MSK6BITS / X'0000003F' / - DATA MSKOFF/Z'0000000F'/ - DATA MSKPRI/Z'1F'/ - DATA MSKTYP/Z'3F'/ - DATA MSK8 /Z'FF'/ - DATA MSK12 /Z'FFF'/ - DATA MSK18 /Z'3FFFF'/ - DATA NO777 /Z'1FF'/ - DATA NO17 /Z'F'/ - DATA NO360 /Z'F0'/ - - INTEGER MASK !... LBIT=16 - DATA MASK / Z'00010000' / -C ... MASK IS A BIT IN THE NAMSTN LONGWORD TO SIGNAL THAT -C ...A CLOSED STATION CIRCLE IS DESIRED... - - DATA MSKBLK /Z'200000'/ - DATA NEGEXT /X'FFFFFFFFFFFFFFC0'/ -C ...WHICH IS USED FOR SIGN EXTENSION OF NEW TYPE... - DATA NEGEX2 /X'FFFFFFFFFFFFF000'/ - - DATA MSKFF /Z'FF000000'/ - INTEGER BLANK - - DATA BLANK /Z'40'/ - DATA MSKL8 /Z'FF000000'/ - DATA MRKR13 /Z'1000'/ - - DATA CNVFT /3.28083333/ - DATA CNVDFT /32.80833333/ - DATA TWO9 /512.0/ - DATA DISSAT /6.619/ - DATA SCALE /26.7858/ -C - INTEGER LBIT_TOSSED - DATA LBIT_TOSSED / 41 / - - INTEGER IPRIOR(2) !... for PUTLAB Arg - DATA IPRIOR / 0, 1 / -C - SAVE -C -C . . . . S T A R T . . . . . . . . . . . . . . . . . . . . . - IERROR = 0 - - LCNTR = 0 - PLTDTA=.FALSE. -C - IDEWQQ = 1 - IMVWQ = KMVWB - ITOPLQ = 0 -C ...ITOPLQ IS WHETHER TOP PLOTTING IS DESIRED... - ITOPI = 0 -C ...WHERE ITOPI INDEXES THE TOSSED OBS TO PLOT AT TOP OF PAGE... - ISCHRQ = 0 -C ... TO HOLD SMALL-CHAR OPTION BIT... - IANGLQ = 0 -C ...TO HOLD SIDEWAYS PLOTTING OPTION BIT ... -C - ICORN = 0 - JCORN = 0 -C ...TO DETERMINE KEIL AND VERTLN FROM GIVEN ITOUT... - IF(ITOUT .LT. 1) GO TO 910 - IF(ITOUT .GT. 14) GO TO 910 -C 1 2 3 4 5 6 7 8 9 10 11 12 13 -C ... GO TO (110,120,130,140,150,160,170,180,190,200,205,220,220),ITOUT - - IF(ITOUT .EQ. 1) THEN - KEIL = 1 - VERTLN = 105.0 - VSCALE = 37.5 - ICORN = 2 + IXADJ - JCORN = 2 + IYADJ - - ELSE IF(ITOUT .EQ. 2) THEN !... 2-DOT FROM LUKE - KEIL = 1 - VERTLN = 105.0 - VSCALE = 37.5 -C ... ICORN = 113 -C ... JCORN = 145 - ICORN = IXADJ - JCORN = IYADJ - - ELSE IF(ITOUT .EQ. 3) THEN -C ...COMES HERE FOR IQSY UAB PLOTTED NRN HEMI ... - KEIL = 2 -C ...FOR STD NMC OCTAGON... - VERTLN = 80.0 - VSCALE = 37.5 - IMVWQ = 0 -C ...DO NOT MOVE WIND BARBS OUT ON STAFF IF IQSY MAP... - ITOPLQ = 1 -C ...PLOT TOSSED STNS AT TOP OF PAGE - ISCHRQ = KSMLB - ICORN = IXADJ - JCORN = IYADJ - - ELSE IF(ITOUT .EQ. 4) THEN - KEIL = 15 - ICORN = 2 + IXADJ - JCORN = 2 + IYADJ - VERTLN = 105.0 - VSCALE = 37.5 - - ELSE IF(ITOUT .EQ. 5) THEN - KEIL = 3 -C ...FOR SRN HEMI... - VERTLN = 80.0 - VSCALE = 37.5 - ISCHRQ = KSMLB - ICORN = IXADJ - JCORN = IYADJ - - ELSE IF(ITOUT .EQ. 6) THEN -C ...COMES HERE FOR SIRS PLOTTED CHART - KEIL = 2 - VERTLN = 80.0 - VSCALE = 37.5 - ISCHRQ = KSMLB - ICORN = IXADJ - JCORN = IYADJ - - ELSE IF(ITOUT .EQ. 7) THEN -C ...COMES HERE FOR TROPIC PLOT ON MERC - KEIL = 6 - VERTLN = 0.0 - VSCALE = 30.0 - ISCHRQ = KSMLB - IMVWQ = 0 - IANGLQ = KANGB -C ... ICORN = 5 + 12 !... 97-02-20 -C ... JCORN = 32 - ICORN = IXADJ - JCORN = IYADJ - - ELSE IF(ITOUT .EQ. 8) THEN -C ...COMES HERE FOR NH PLOT ON LARGE 1/20M MAP. - KEIL = 7 - VERTLN = 105.0 - VSCALE = 37.5 - ICORN = 2 + IXADJ - JCORN = 2 + IYADJ - - ELSE IF(ITOUT .EQ. 9) THEN -C ...COMES HERE FOR WINDS ALOFT PLOT ON PN2601 ... - KEIL = 4 - VERTLN = 98.0 - VSCALE = 28.846154 - IMVWQ=0 - IF(LWNDONLY) THEN - IMVWQ = 0 - IF(LVLDES .EQ. LMXWND) GO TO 240 - IF(LVLDES .EQ. 25) GO TO 240 - PLTDTA=.TRUE. - ELSE - ISCHRQ=KSMLB - ENDIF - ICORN = IXADJ - JCORN = IYADJ - - ELSE IF(ITOUT .EQ. 10) THEN !... on Luke's NH 1:40M; krun=17 -C ...COMES HERE FOR GENERAL PLOTTING ON NH 1/40M BACKGROUND... - KEIL = 2 - VERTLN = 80.0 - VSCALE = 37.5 - ISCHRQ = KSMLB - ICORN = IXADJ - JCORN = IYADJ - - ELSE IF(ITOUT .EQ. 11) THEN -C ...COMES HERE FOR 1/60M PLOT... - KEIL = 14 - VERTLN = 80.0 - VSCALE = 25.0 - ICORN = IXADJ - JCORN = IYADJ - - ELSE IF((ITOUT .EQ. 12) .OR. (ITOUT .EQ. 13)) THEN -C ...COME HERE FOR PSEUDO-GOES IMAGE ON GH2601 OR GH2602. - KEIL = 6 -C ...THAT IS A DUMMY KEIL UNDER THESE OPTIONS. - VERTLN = 0.0 - VSCALE = 50.0 - ISCHRQ = KSMLB - IMVWQ = 0 - ICORN = IXADJ - JCORN = IYADJ - - ELSE IF(ITOUT .EQ. 14) THEN - KEIL = 16 !... for big 1:20M SHEMI SH2001 -C ...FOR SRN HEMI... - VERTLN = 260.0 - VSCALE = 37.5 - ISCHRQ = 0 - ICORN = IXADJ - JCORN = IYADJ - - ENDIF -C - 240 CONTINUE -C - IF(.NOT.LMARGIN) GOTO 241 -C ... A CONSTANTS LIST OF ALWAYS OVERLAPPING STATIONS ARE -C ... READ IN FROM FROM UNIT:LUNOVRL TO WHICH IS ASSIGNED -C ... THE CONSTANTS FILE: 'plotmlty.txt' -C ... CONTAINING BLK+STNNUMB NAME; AND LATLONS -C - REWIND LUNOVRL - lckpt = 700 - READ(LUNOVRL,700,ERR=920,END=930) COMMENT_CARD - 700 FORMAT(A) - WRITE(6,701)LUNOVRL - 701 FORMAT(1H ,'b4plotx: Started reading constant overlap station ', - 1 'list from UNIT=',I4) - WRITE(6,702)COMMENT_CARD(1:LASTCH(COMMENT_CARD)) - 702 FORMAT(A) - lckpt = 705 - READ(LUNOVRL,705,ERR=920,END=930) NLIST_1 - LCKPT = 705 -C PRINT *, ' b4plotx:at LCKPT=',LCKPT,' NLIST_1=',NLIST_1 - 705 FORMAT(1X,I3) - lckpt = 715 - DO 710 I=1,NLIST_1 - READ(LUNOVRL,715,ERR=920,END=930) OVRSTN(I), ILATLON(I) - 715 FORMAT(1X,A6,A7) - -C* WRITE(6,761) OVRSTN(I),ILATLON(I) -C*761 FORMAT(1X,'IPROB1=',1X,A6,1X,'ILATLON=',1X,A7) - 710 CONTINUE -C - lckpt = 721 - READ(LUNOVRL,700,ERR=920,END=930)COMMENT_CARD - lckpt = 725 - READ(LUNOVRL,725,err=920,end=930) NLIST_2 - 725 FORMAT(6X,I3) - LCKPT = 725 -C PRINT *, ' b4plotx:at LCKPT=',LCKPT,' NLIST_2=',NLIST_2 - - lckpt = 728 - DO 729 I=1,NLIST_2 - READ(LUNOVRL,728,ERR=920,END=930) NWSSTN(I), JLATLON(I), - 2 MILSTN(I), KLATLON(I) - 728 FORMAT(1X,A6,A7,1X,A6,A7) - -C* WRITE(6,762) NWSSTN(I),JLATLON(I) - 762 FORMAT(1X,'NWS=',1X,A6,1X,'JLATLON=',1X,A7) -C WRITE(6,763) MILSTN(I),KLATLON(I) - 763 FORMAT(1X,'MILSTN=',1X,A6,1X,'KLATLON=',1X,A7) - 729 CONTINUE -C -C KCNT - DEFINES THE CORRESPONDING LAT/LONG OF THE STATION WHICH -C WAS MOVED. -C - KCNT=0 - JCOUNT = 0 - ICNT = -1 - LCNTR = LCNTR + 1 - LCKPT = 739 - print *,' b4plotx:at LCKPT=',LCKPT,' lcntr0=',lcntr -C - DO 739 KK=1,100 - JFLAG(LCNTR,KK) = 0 - KFLAG(LCNTR,KK) = 0 - 739 CONTINUE -C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - 241 CONTINUE - DO 777 M = 1,NOBSDB -C ... fetch one obs from NDATA(,M) ... - ijwrd = NDATA(1,M) - namwrd = NDATA(2,M) - iptrwrd = ndata(3,M) - NAME = IAND(NAMWRD,MSKBST) -C print 1099,NAME - 1099 format(' NAME = ',A8) - IF(ijwrd .EQ. 0) then - write(6,FMT='(1H ,''b4plotx: Terminating scan thru data '', - 1 ''due to zero word at NDATA(1,'',I6,'')'', - 2 /1H ,7X,''NDATA(2,)= '',Z16,'' NDATA(3,)= '',Z16, - 3 /1H )') - A M,NAMWRD,IPTRWRD - GO TO 779 -C ...WHICH IS THE NORMAL EXIT ... - ENDIF - - JTHISREP = iand(iptrwrd,mskrhs) - DO I = 1,LMTWRDPOB - IOBS2PKWORK(I) = IOBS2PK(I,JTHISREP) - ENDDO - NAME_B = IAND(IOBS2PKWORK(6),MSKBST) - IF(NAME .NE. NAME_B) THEN - WRITE(6,243)C8NAME,M,iptrwrd,C8NAME_B - 243 FORMAT(1H ,'b4plotx: ERROR ... database pointer has been ', - 1 'corrupted for stn=',A6, - 2 /1h ,7X,'ADATA(3,',I6,')=hex',Z16, - 3 ' which points to stn=',A6) - IERROR = 10 - GO TO 999 - ENDIF - - CALL GBYTES(IOBS2PKWORK,LONELVL,NOFFSET,NBITSGRP,NPADBITS, - 1 NGRPS2DO) - - M2 = NGRPS2DO - 2 !... DO NOT EXT SIGN OF QUAL MRK - DO IHW = 1,M2 - IF(BTEST(LONELVL(IHW),31)) THEN - LONELVL(IHW) = IOR(NEGSIGNEXT,LONELVL(IHW)) - ENDIF - ENDDO - DO IHW = 1,NGRPS2DO - IF(IHW .EQ. 11 .OR. IHW .EQ. 12) THEN !... STN NAME - FLONELVL(IHW) = 0.0 - ELSE - FLONELVL(IHW) = FLOAT(LONELVL(IHW)) / 4096.0 - ENDIF - ENDDO -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ALAT = FLONELVL(1) - ALONG = FLONELVL(2) -C - IPRIOR = IAND(ijwrd,MSKPRI) - LSWPLT = .FALSE. - BRNTST = .FALSE. - - IF(BTEST(IJWRD,LBIT_TOSSED)) THEN -C ...THIS STN WAS TOSSED IN THINNING... - IF(ITOPLQ .EQ. 0) GO TO 777 - LSWPLT = .TRUE. -C ...THIS MARKS A TOSSED STN FOR PLOTTING AT TOP OF PAGE... - ENDIF - - KTTYP = ISHFT(ijwrd,-42) - KTTYP = IAND(KTTYP,MSKTYP) - LNEGQ = BTEST(KTTYP,5) - IF(LNEGQ) KTTYP = IOR(KTTYP,NEGEXT) -C ...WHICH SIGN-EXTENDED THOSE SFC OBS TYPES... - - IF(.NOT. LSWPLT) GO TO 260 -C ...OTHERWISE, THIS IS A TOSSED STN... - IF(KTTYP .LT. 1) GO TO 777 - IF(KTTYP .GT. 2) GO TO 777 -C ... OTHERWISE, KTTYP=1 OR =2 ONLY ... - IOFFTM = IAND(namwrd,MSKOFF) - IF(IOFFTM .NE. 5) GO TO 777 -C ...PLOT AT TOP OF PAGE TOSSED STNS WHICH ARE ONTIME,LANDOR FXDSHIP - ITOPI = ITOPI + 1 - IF(ITOPI .GT. ITOPMX) GO TO 777 - 260 CONTINUE - L = LIT0 - IOPTN = 0 - - IOPTN = IOR(IOPTN,ISCHRQ) -C ...WHICH SETS CHAR SIZE OF PRINT IN PLOTTING MODEL... - IOPTN = IOR(IOPTN,IMVWQ) - IOPTN = IOR(IOPTN,IANGLQ) -C -C ...TEST FOR BROWNSVILLE - IF(C8NAME(1:5) .EQ. BRNSVL(1:5)) BRNTST=.TRUE. -C ...TEST FOR SPECIAL STN BY NAME FOR MOVING SOME PLOTTED INFO - IF(LSWPLT) GO TO 290 -C ...WHICH BYPASSES TEST FOR SPECIAL STNS IF TOP OF PAGE PLOT... - - DO 270 I = 1,NSPL - NAMOV = NAMSPL(I) - NAMOV = IAND(NAMSPL(I),MSKBST) - NOTMSK = NOT(MSKBST) - MOVBIT = IAND(NAMSPL(I),NOTMSK) - IF(NAME .EQ. NAMOV) THEN - IOPTN = IOR(IOPTN,MOVBIT) - GO TO 290 !... JUMP OUT OF LOOP ON MATCH FOUND - ENDIF - 270 CONTINUE !... ENDDO ON LOOKING FOR A MATCH ON SPECIAL STN - GO TO 290 - - 290 CONTINUE -C ... CONVERT I AND J TO VARIAN DOT UNITS... -C ...THIN REFORMATTED IJWRD: /JJJ//JFR/III/IFR/other/ -C / 9 // 9 / 9 / 9 / 5 / -C ... OLD VERSION HAD /III/IFR/JJJ/JFR/ -C ... - jgjf = ishft(ijwrd,-23) - jgjf = iand(jgjf,msk18) - xj = float(jgjf) / two9 - JP = NINT((XJ - 1.0) * VSCALE) - JP = JP + JCORN - JO = JP - igif = ishft(ijwrd,-5) - igif = iand(igif,msk18) - xi = float(igif) / two9 - IP = nint((XI - 1.0) * VSCALE) - IP = IP + ICORN + IDELTA - IO = IP -C ... LCKPT = 290 -C ... PRINT *,' b4plotx:at LCKPT=',LCKPT,' IO=',IO,' JO=',JO -C ...NOW IO AND JO ARE IN VARIAN DOT UNITS... -C ... if I knew which itout is for the 2-dot, then I could patch -C -------------------------------------------------------------- - - IF(LSWPLT) THEN -C ...TO RECOMPUTE IO AND JO FOR TOP-OF-PAGE PLOT - JRELP = (ITOPI - 1) / KROWMX - IRELP = MOD((ITOPI - 1), KROWMX) - IO = KSTRI + IRELP * IKDOT - JO = (KSTRJ + JKDOT) + (JRELP * JKDOT) - ENDIF - - NBITS = IAND(lonelvl(kptr_bitwrd),MSK6BITS) !... OLD NBITS - - nbitwrd = ishft(lonelvl(kptr_bitwrd),-12) - MYDBBITS = MOVA2I(C1NBITWRD(8)) - NUBITS = mova2i(c1nbitwrd(7)) - NUBITS = 0 !... I HAVE NOT SET NUBITS YET -C ...WHERE NUBITS HAVE BEEN SET IF CALCULATED DATA ... - IF(NBITS .EQ. 0) GO TO 777 -C ...TO UNPACK THE OBSERVED QUANTITIES ... - - DO I = 1,9 - NUNPAK(I) = 0 - ENDDO - - IF(LONELVL(KPTR_DDD) .EQ. MISGB12) THEN - NUNPAK(1) = MISGB0 - ELSE - NUNPAK(1) = NINT(FLONELVL(KPTR_DDD)) !... WAS U; IS DDD - ENDIF - - IF(LONELVL(KPTR_FFF) .EQ. MISGB12) THEN - NUNPAK(2) = MISGB0 - ELSE - NUNPAK(2) = NINT(FLONELVL(KPTR_FFF)) !... WAS V; IS FFF - ENDIF - - IF(LONELVL(KPTR_ZZ) .EQ. MISGB12) THEN - NUNPAK(3) = MISGB0 - ELSE - NUNPAK(3) = NINT(FLONELVL(KPTR_ZZ)) !... WAS D-VAL; IS HGT - ENDIF - - NUNPAK(5) = MISGB0 !... initialize dewpoint to MISG - IF(LONELVL(KPTR_TT) .EQ. MISGB12) THEN - NUNPAK(4) = MISGB0 - ELSE - TT_T = FLONELVL(KPTR_TT) - NUNPAK(4) = NINT(TT_T) !... WAS 10*TT; IS TT - - IF(LONELVL(KPTR_TD) .NE. MISGB12) THEN - DEW_T = FLONELVL(KPTR_TD) - TDEWDEPR = TT_T - DEW_T - IF(TDEWDEPR .LT. 0.0) THEN - TDEWDEPR = 0.0 !... supersaturated - ELSE IF(TDEWDEPR .GE. 30.0)THEN - TDEWDEPR = 30.0 - ENDIF - NUNPAK(5) = NINT(TDEWDEPR) !... IS DEWPT DEPRESS - ENDIF - ENDIF - - IF(LONELVL(KPTR_DZ) .EQ. MISGB12) THEN - NUNPAK(9) = MISGB0 - ELSE - NUNPAK(9) = NINT(FLONELVL(KPTR_DZ)) !... IS 12-HR HGT CHG - ENDIF - - - -C ...INITIALIZE PLTDAT ARGS TO MISSING... - TT = 99.0 - NDD = 99 - IDDGD = 99 - - ND1_AF=999 -C ...FOR AFOS WIND DIRECTION - IHSSS_AF = '999 ' -C ...FOR AFOS WIND SPEED - - IHZZZ = KBAR(1:4) - ihdewdep = KBAR(1:4) - IOPTN = IOR(IOPTN,KCIQB) - L = LIT0 - IF(LVLDES.EQ.LMXWND) GO TO 333 - -C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -C ... TEMPERATURE SECTION ... - - ITEMP = IAND(NBITS,KTBIT) - IF(ITEMP .EQ. 0) GO TO 333 -C ...OTHERWISE, A TEMPERATURE WAS REPORTED... - IF((ITOUT .NE. 7) .AND. (ITOUT .NE. 12) .AND. (ITOUT .NE. 13)) - X GO TO 322 -C ...OTHERWISE, THIS IS TROP PLOT ON MERC OR A P-GOES PROJECTION. - IF(KTTYP .EQ. 12) GO TO 333 - IF(KTTYP .EQ. 13) GO TO 333 -C ...WHICH DISCARDS TEMPS OF SAT WIND ESTIMATES IF TROPIC - 322 CONTINUE -C PRINT *,' ITOUT KTTYP ARE ',ITOUT,KTTYP -C IF((ITOUT .EQ. 8) .AND. ((KTTYP.EQ.8) .OR. (KTTYP.EQ.9)))THEN -C GO TO 333 -C ...WHICH DISCARDS TEMPS OF A/C IF 1/20M, 300MB MAP... -C ENDIF - IOPTN = IOR(IOPTN,KTTB) -C ... TT = (FLOAT(NUNPAK(4))) / 10.0 - - - TT = FLONELVL(KPTR_TT) - - NTT = NINT(TT) - IF(ITOUT .NE. 3) GO TO 3335 -C ...OTHERWISE, THIS IS IQSY SO USE DIFFERENT LPLMI -C ... TO PRINT + SIGN BUT NO SIGN FOR NEGATIVE... - - CALL BIN2CH(NTT,CBCD,3,'A+##') - - IOPTN = IOR(IOPTN, KMEDB) - IHTT(1:) = ' ' - IHTT(1:3) = CBCD(1:3) - GO TO 333 - - 3335 CONTINUE - IF( (ITOUT .EQ. 5) .OR. (ITOUT .EQ. 10) ) IOPTN=IOR(IOPTN,KMEDB) - IF(.NOT.(PLTDTA)) GO TO 334 -C ...OTHERWISE TMPS WILL BE PLOTTED IN UPR RT FOR FAX WINDS ALOFT - - CALL BIN2CH(NTT,CBCD,3,'A#-#') - IHTT(1:) = ' ' - IHTT(1:3) = CBCD(1:3) - - ITEMP = IAND(NUBITS,KTBUT) - IF(ITEMP .NE. 0) IOPTN = IOR(IOPTN,KCLTB) - IOPTN=IOR(IOPTN,KMVTR) - - CALL BIN2CH(NTT,CBCD,3,'A+-#') - - NTT = JBCD - GO TO 333 - - 334 CONTINUE - - CALL BIN2CH(NTT,CBCD,3,'A#-#') - - IHTT(1:) = ' ' - IHTT(1:3) = CBCD(1:3) - - CALL BIN2CH(NTT,CBCD,3,'A+-+') - - NTT = JBCD - ITEMP = IAND(NUBITS,KTBUT) - IF(ITEMP .NE. 0) IOPTN = IOR(IOPTN,KCLTB) - IF((ITOUT .EQ. 7) .OR. (ITOUT .EQ. 12) .OR. (ITOUT .EQ. 13))THEN - IOPTN = IOR(IOPTN,KMEDB) - ENDIF - - 333 CONTINUE -C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -C ... WIND SECTION ... (ERROR IN SOME BAD WINDS THRU) - - IHFFF(1:4) = ' ' - ITEMP = IAND(NBITS,KWBIT) - IF(ITEMP .NE. 0) GO TO 336 -C ...OTHERWISE, WIND IS MISSING - - IF( (ITOUT .EQ. 9) .OR. (LVLDES .EQ. LMXWND) ) THEN - IHFFF = C4NR - IOPTN = IOR(IOPTN,KFFFB) - NSSS = 1 -C ...FAKE FOR PLTDAT TO PLOT NR FOR MAX WIND NOT REPORTED... - GO TO 351 - ENDIF - - IHFFF = C4MISF - IOPTN = IOR(IOPTN,KFFFB) - NSSS = 1 -C ...WHICH IS FAKE FOR PLTDAT TO ALLOW FFF PLOT OF M FOR MISSING - ND1_AF=999 -C ...WHICH WILL SKIP MSG WIND FOR AFOS - GO TO 351 - - 336 CONTINUE - IF( (ITOUT .EQ. 9) .OR. (LVLDES .EQ. LMXWND) ) THEN - ITEMP = IAND(NUBITS,KCLTB) - IF(ITEMP .NE. 0) THEN -C ... MAX WIND OF WINDS ALOFT CHART IS TERMINATING LEVEL... - IHFFF = C4TL - IOPTN = IOR(IOPTN,KFFFB) - NSSS = 1 -C ...FAKE FOR PLTDAT TO PLOT TL FOR TERMINATING LEVEL... - ENDIF - ENDIF - -C ... U = (FLOAT(NUNPAK(1))) / 4.0 -C ... V = (FLOAT(NUNPAK(2))) / 4.0 - -C ... CALL WNDR(U, V, NDD, NSSS) - -C ...WHICH RETURNS WITH NDD AN INTEGER IN TENS OF DEGREES... - - NSSS = NINT(FLONELVL(KPTR_FFF)) - call bin2ch(NSSS,CBCD,3,'A999') - ihsss_af = cbcd(1:3) - - NDD = NINT(FLONELVL(KPTR_DDD) / 10.0) - FD = NDD * 10.0 - - 340 CONTINUE - IF(NDD .GT. 36) then - NDD = NDD - 36 - GO TO 340 - endif - - IF(NDD .LE. 0) then - NDD = NDD + 36 - GO TO 340 - endif - -C ...NOW NDD IS IN RANGE BETWN 1 AND 36 - - IF(NSSS .LT. 3) THEN - ND1_AF=NDD -C ...SAVE DIRECTION FOR AFOS PLOT OF LGHT VRBL WIND - NDD = 99 -C ...FOR LIGHT VRBL WIND INCLUDING CALM - IHFFF = C4LVRB - IOPTN = IOR(IOPTN,KFFFB) - ENDIF - - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . CAUTION: THIS PARAGRAPH IS WRONG . . . . . . . . . - - CALL BIN2CH(NDD,CBCD,2,'A999') - ihdewdep(1:) = ' ' - ihdewdep = CBCD(1:2) -C PRINT *,' STORING DIR ',ihdewdep,' into dewdep ' - norwndir = intDD -C !... this seems wrong ????? -C ... Some option expecting wind dir printed in lower left? -C ... instead of dewpoint depression ???? - - CALL BIN2CH(NSSS,CBCD,3,'A999') - -C ... ... since some strange results from the following, -C ... ... let us try commenting it out. - -C ... IHFFF = CBCD(1:3)//'$' - -C ... I think the wrong AFOS hgt-chg = "000" came from here -C ... what is this for ????????????????????????? -C -C - IF(NSSS.LT.3) GO TO 346 -C ...SKIP THIS IF WIND IS CALM OR LIGHT AND VARIABLE -C ? ? ? ? ? ? ? ? ? ? ? ? - 346 CONTINUE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - IF(LSWPLT) GO TO 3349 -C PRINT *,' IDEWQQ is ',IDEWQQ,' ihdewdep is ',ihdewdep - IF(IDEWQQ) 349,348,349 -C ...IDEWQQ=0, SO PLOT THIS DIRECTION IN LOWER LEFT... - 348 CONTINUE -C ... on bad 70mb it did not come this way, since IDEWB was not set -C PRINT *,' KDEWB STORED IN IOPTN ' - IOPTN = IOR(IOPTN,KDEWB) - 349 CONTINUE -C PRINT *,' ITOUT IS ',ITOUT - IF(ITOUT .NE. 7) GO TO 3490 -C ...OTHERWISE, ITOUT = 7 WHICH IS TROPIC PLOT ON MERC - EQUTRI = 25.85 - DDDGR = FD - 90.0 - GO TO 3497 - - 3490 CONTINUE - IF((ITOUT .EQ. 12) .OR. (ITOUT .EQ. 13)) THEN -C ... THIS IS PSEUDO-GOES... - XI = (XI - 1.0) * 0.50 - XJ = (XJ - 1.0) * 0.50 - XI = XI - 10.0 - XJ = XJ - 10.0 -C -C ... MUST CONVERT FROM I/J TO CENTER DISPLACEMENT IN INCHES -C ... FOR GOESLL. -C -C ... CALL GOESLL(WLONG0,DISSAT,SCALE,XI,XJ,ALAT,ALONG,IERR) - -C ... IF(IERR .NE. 0) THEN -C ... PRINT 3491,IERR -C ... 3491 FORMAT(1H ,'IERR = ',I2,' RETURNED FROM GOESLL IN b4plotx.') -C ... ENDIF - - DDDGR = FD -C -C ...INITIALLY I WILL DO NOTHING SPECIAL FOR DRAWING WIND VECTORS -C ... ON MY PSEUDO-GOES BACKGROUND. -C - GO TO 3497 - ENDIF - -C ... CALL TRULL(XI,XJ,ALAT,ALONG,KEIL) - DDDGR = FD + (ALONG - VERTLN) - IF(ITOUT .EQ. 5) THEN - DDDGR = FD - (ALONG - VERTLN) - ENDIF - - 3497 CONTINUE - IF(NSSS.GE.3) ND1_AF=NDD -C ... OTHERWISE, WIND SPEED IS .LT. 3 - IF((NSSS.NE.0).OR.(ND1_AF.NE.36)) THEN - - call bin2ch(NSSS,CBCD,3,'A999') - ihsss_af = cbcd(1:3) - GO TO 3399 - ENDIF -C ...OTHERWISE WE HAVE CALM WIND - ND1_AF=0 - IHSSS_AF = '000 ' - -C ...RESET NSSS TO TRICK PLTDAT IN PLOTTING LV - NSSS=1 - 3399 CONTINUE - IF(NSSS.LT.3) GO TO 351 - IF(DDDGR .GT. 360.0) DDDGR = DDDGR - 360.0 - IF(DDDGR .LE. 0.0) DDDGR = DDDGR + 360.0 - IDDGD = (DDDGR + 5.0) / 10.0 - IF(IDDGD .EQ. 0) IDDGD = 36 - IF( (ITOUT .EQ. 7) .AND. (XI .GT. EQUTRI) ) IDDGD = -IDDGD - IF(ITOUT .EQ. 5) IDDGD = -IDDGD - IF(((ITOUT .EQ. 12) .OR. (ITOUT .EQ. 13)) .AND. (ALAT .LT. 0.0)) - X IDDGD = -IDDGD -C ...PLOT BROWNSVILLE WITH NO VECTOR FOR WINDS ALOFT(FAX) - IF(ITOUT.NE.9) GO TO 3351 - IF(.NOT.LWNDONLY) GO TO 3351 - IF(.NOT.(BRNTST)) GO TO 3351 - IOPTN=IOR(IOPTN,KFFFB) - IOPTN=IOR(IOPTN,KDEWB) - GO TO 3353 - 3351 CONTINUE - IOPTN = IOR(IOPTN,KVECB) - 3353 CONTINUE - IF(ITOUT .EQ. 8) IOPTN = IOR(IOPTN,KDOVB) - IF(ITOUT .EQ. 9) IOPTN=IOR(IOPTN,KDOVB) - GO TO 351 - 3349 CONTINUE -C ...COMES HERE FOR TOP PLOTTING WITH NO VECTOR... - IOPTN = IOR(IOPTN,KFFFB) - IOPTN = IOR(IOPTN,KDEWB) - GO TO 351 - - 351 CONTINUE -C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -C ... HEIGHT SECTION ... - LCKPT = 3511 - IF(PLTDTA) GO TO 361 - - ITEMP = IAND(NBITS,KZBIT) - IF(ITEMP .EQ. 0) THEN - LCKPT = 3513 -C ... the case of the corrupted NBITS ... -C ... NBITS was somehow getting the right-shifted bits from -C ... the preceding observation. Now fixed. - WRITE(6,3513) NBITS,lonelvl(kptr_bitwrd) - 3513 FORMAT(1H ,'b4plotx: at 3513, NBITS= HEX ',Z16, - 1 /1H ,' lonelvl(kptr_bitwrd)= HEX ',Z16 ) - GO TO 360 !... all skipped 300mb came thru here - ENDIF - - IF((ITOUT .EQ. 7) .OR. (ITOUT .EQ. 12) .OR. (ITOUT .EQ. 13)) THEN -C ... THIS IS TROPIC OR PSEUDO-GOES PLOT ... - IF(KTTYP .EQ. 11) THEN - LCKPT = 3515 - GO TO 360 !... IS SIRS, SO SKIP Z -C ...WHICH DISCARDS HGTS OF SIRS IF TROPIC - ENDIF - ENDIF - - IF(LONELVL(KPTR_ZZ) .EQ. MISGB12) THEN - LCKPT = 3517 - GO TO 360 - ENDIF -C ... OTHERWISE, REPORTED HGT IS NOT MISSING ... - - HHM = FLONELVL(KPTR_ZZ) !... GOT THE ZZZ HGT IN METERS - IZZ = NINT(HHM) - - -C ...TEST FOR SAT WIND EST TYPE AND TREAT PRESS-ALT LIKE A/C HGT -C ...TEST FOR A/C TYPE... - - IF((KTTYP .EQ. 8) .OR. (KTTYP .EQ. 9) .OR. !... A/C - 1 (KTTYP .EQ. 12) .OR. (KTTYP .EQ. 13)) THEN !... SAT WND -C ...THIS IS AIRCRAFT OR SAT WND. CONVERT HGT TO ALT IN FT - -C ... IF(LVLDES .LT. 4) THEN -C ...OTHERWISE, BLO 500MB SO GIVEN HGT IN METERS... - - IHTFT = NINT(HHM * CNVFT) - -C ... ELSE -C ... IHTFT = HHM * CNVDFT -C ... ENDIF - -C ...TO RND TO NEAREST THSD FT AND GET RESULTS IN HUNDREDS OF FT - IZZ = ((IHTFT + 500) / 1000) * 10 - IF(IZZ .GT. 0) THEN - IF(IZZ .GT. 990) THEN - LCKPT = 3541 - GO TO 360 - ENDIF -C ... THE USUAL GOOD ACFT WITHIN RANGE ... - LCKPT = 3543 - GO TO 355 - ELSE -C ... IZZ .LE. 0; SO ... - LCKPT = 3545 - GO TO 360 - ENDIF - - ENDIF !... END OF AIRCRAFT / SAT WIND ALTITUDES - - 3548 CONTINUE - - IF (LVLDES .GE. 4) THEN - IZZ = NINT(FLOAT(IZZ) / 10.) - ENDIF - - IZZ = MOD(IZZ,1000) !... CLIP TO 3-DIGITS - - 355 CONTINUE - CALL BIN2CH(IZZ,CBCD,4,'A*-9') - IHZZZ = CBCD(1:4) - - CALL BIN2CH(IZZ,CBCD,3,'A999') - IHZZ = CBCD(1:3) !... IHZZ IS FOR AFOS - - IOPTN = IOR(IOPTN,KZZZB) !... DID NOT DO THIS ON 300MB - - 360 CONTINUE -C ... WRITE(6,3605)LCKPT,C8NAME(1:5),LONELVL(KPTR_ZZ) -C 3605 FORMAT(1H ,'b4plotx: at 360, from LCKPT=',I5,'; NAM=',A5,2X,Z8) - - IF((ITOUT.EQ.9).AND.(.NOT. LWNDONLY)) IOPTN=IOR(IOPTN,KMEDW) - ITEMP = IAND(NUBITS,KZBUT) - IF(ITEMP .NE. 0) IOPTN=IOR(IOPTN,KCLZB) !... CALCULATED Z - GO TO 361 - - 361 CONTINUE -C ... WRITE(6,3609)LCKPT,C8NAME(1:5),LONELVL(KPTR_ZZ) -C . 3609 FORMAT(1H ,'b4plotx: at 361, from LCKPT=',I5,'; NAM=',A5,2X,Z8) - -C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -C ... DEWPOINT-TEMPERATURE SECTION ... -C ... (MANY PLTDAT PLOTS "87" FOR MISSING DEWPOINT) - lckpt = 3611 - IF(LVLDES.EQ.LMXWND) GO TO 366 - ITEMP = IAND(NBITS,KTDBIT) - lckpt = 3613 - IF(ITEMP .EQ. 0) GO TO 366 !...TD out on 70MB here -C ... BUT WHAT IS MISSING DEW-POINT CONDITION FLAG TO PLTDAT? -C ... BUT WHAT IS MISSING DEW-POINT CONDITION FLAG TO genafplt? - - IDEWPT = NUNPAK(5) !... GET DEWPOINT DEPRESSION - -C ...WHERE IDEWPT IS DEWPT DEPRESSION IN DEGREES - lckpt = 3615 - if(idewpt .eq. MISGB0) GO TO 366 - - IF(ITOUT .EQ. 3) GO TO 3610 - IF((ITOUT.EQ.8) .AND. ((KTTYP.EQ.8) .OR. (KTTYP.EQ.9))) GO TO 3615 - GO TO 3628 - - 3610 CONTINUE -C ...OTHERWISE, THIS IS IQSY... - IF(LSWPLT) GO TO 3627 -C ...DO OBS TIME PLOT. IDEWPT CONTAINS OBS TIME IN HRS. - namwrd = NDATA(2,M) - IOFFTM = IAND(namwrd,MSKOFF) - IF(IOFFTM .EQ. 5) GO TO 3624 - IF(IOFFTM .EQ. 6) GO TO 3624 -C ...OTHERWISE, THIS STN ID OFF TIME SO LEAVE OPEN CIRCLE, -C ... AND PRINT THE TIME... - GO TO 363 - 3624 CONTINUE -C ...COMES HERE IF OBS IS ON TIME... - IF(KTTYP .GT. 4) GO TO 363 -C ...OTHERWISE, LAND STN OR FIXED SHIP SO FILL CIRCLE AND SKIP PRNT - IOPTN = IOR(IOPTN,KOCB) - L = LIT8 - lckpt = 2626 - GO TO 366 - 3627 CONTINUE -C ...COMES HERE ONLY FOR STN PLOT AT TOP OF PAGE... - IOPTN = IOR(IOPTN,KOCB) - L = LIT8 - NAMSTN = NDATA(2,M) - IOPTN = IOR(IOPTN,KNAMB) - GO TO 422 - - 3615 CONTINUE -C ...DO OBS TIME PLOT... - GO TO 363 - - 3628 CONTINUE -C ...IF YOU WANT TO TEST FOR 500MB LEVEL, LVLDES=4 - IF(IDEWPT .GT. 5) GO TO 363 - IF(KEIL .EQ. 14) GO TO 363 -C ...USE FILLED STN CIRCLE FOR MOIST AIR REGIONS - IOPTN = IOR(IOPTN,KOCB) - L=LIT8 - 363 CONTINUE - lckpt = 363 - IF(PLTDTA) GO TO 366 - CALL BIN2CH(IDEWPT,CBCD,2,'W999') - IHTD = CBCD(1:2)//'$' - - IF(IDEWQQ .NE. 0) THEN - 364 CONTINUE - ihdewdep = IHTD -C ...WHICH PUTS DEW PT IN PLACE OF WIND DIR FOR PLOT IN LOW LEFT. - IF( (IDEWPT .NE. 30) .OR. (ITOUT .EQ. 11) ) GO TO 365 -C ...OTHERWISE, DEWPT DEPRESS=30 WHICH IS DRY AIR - ihdewdep = KHDRY - 365 CONTINUE -C ...on bad 70MB it never came this way to set the dewpoint option - IOPTN = IOR(IOPTN,KDEWB) - NDCHAR = 2 - IF(IDEWPT .LT. 10) NDCHAR = 1 - CALL BIN2CH(IDEWPT,CBCD,NDCHAR,'I999') - IHDEWPT(1:) = CBCD(1:NDCHAR)//'$' - ENDIF - lckpt = 365 - GO TO 366 - -C ... END OF DEWPOINT-TEMPERATURE SECTION ... -C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - - 366 CONTINUE -C WRITE(6,3661)LCKPT,C8NAME(1:5),LONELVL(KPTR_TD),ioptn,intDD - 3661 FORMAT(1H ,'b4plotx: at 366, from LCKPT=',I5,'; NAM=',A5,2X,Z8, - 1 /1h ,' IOTPN= HEX ',Z16,' intDD= HEX ',Z16) - IF(ITOUT.EQ.6) IOPTN=IOR(IOPTN,KSMLB) - NAMSTN = NDATA(2,M) -C print 1822 ,namstn - 1822 format(' after 366 ',A8) - IF(KEIL .NE. 14) GO TO 367 - -C ... IF(IAND(NAMSTN,MASK) .EQ. 0) GO TO 367 ... - IF(BTEST(NAMSTN,16)) THEN -C ... I HAVE A BIT FLAG IN THE STATION NAME TO SIGNAL THAT -C ... A CLOSED STATION CIRCLE IS DESIRED... - C8NAMSTN(6:6) = ' ' - IOPTN = IOR(IOPTN,KOCB) - L=LIT8 - ENDIF - - 367 CONTINUE -C ...IF PLOT OF NAMSTN IS DESIRED THEN .OR KNAMB INTO IOPTN HERE - IF(KTTYP .LT. 4) GO TO 374 - - IF(KTTYP .EQ. 4) GO TO 373 -C ...WHICH TEST FOR FIXED SHIPS - - IF(KTTYP .EQ. 7) GO TO 372 -C ...WHICH TESTS FOR RECCO... - - IF(KTTYP.EQ.10) GO TO 375 -C ...WHICH TESTS FOR BOGUS - - IF((KTTYP .EQ. 8) .OR. (KTTYP .EQ. 9)) GO TO 371 - IF(KTTYP .LT. 11) GO TO 370 - IF(KTTYP .GT. 13) GO TO 370 -C ...OTHERWISE, SATELLITE OBS... - L = LITS - IOPTN = IOR(IOPTN,KSTRB) -C ...WHICH SETS A STAR FOR STN CIRCLE... - IF(KTTYP .NE. 11) GO TO 370 -C ...OTHERWISE, THIS IS A SIRS-TYPE SATELLITE... - IF((ITOUT .EQ. 7) .OR. (ITOUT .EQ. 12) .OR. (ITOUT .EQ. 13)) - X GO TO 368 - IOPTN = IOR(IOPTN,KNAMB) - 368 CONTINUE - NOTMSK = NOT(KFFFB) - IOPTN = IAND(IOPTN,NOTMSK) -C ...WHICH ERASES THE WIND MISG FROM SIRS, SINCE ALWAYS MISG. - IF(ITOUT .GT. 2) IOPTN = IOR(IOPTN,KMVNB) - IOPTN = IOR(IOPTN,KSMNB) - 370 CONTINUE - GO TO 374 - 371 IOPTN = IOR(IOPTN,KSQRB) - L = LITA - IF(KTTYP .NE. 9) GO TO 3719 -C -C MARK ACAR DATA WITH A STATION NAME OF "A". -C -C "N" "A" -C ... DATA NACAR /ZD5000000,Z00C10000/ -C - IF((C8NAMSTN(1:1) .EQ. 'N') .AND. (C8NAMSTN(6:6) .EQ. 'A')) THEN -C ... ASSUME THIS TO BE AN ACAR REPORT ... -C - NAMSTN = NAMCAR1 - IOPTN = IOR(IOPTN,KCLOS) - IOPTN = IOR(IOPTN,KNAMB) - GO TO 374 - - ENDIF - - 3719 CONTINUE - IF((ITOUT .NE. 7) .OR. (LVLDES .NE. 9)) GO TO 374 -C ...FOR FGGE I AM PLOTTING COLBA AT 150 MB IN THE TROPICS. -C ...COLBA LOOK LIKE A/C FOR THAT PURPOSE AND I WANT TO PLOT -C ...THEIR IDENTIFYING NUMBERS... - IOPTN = IOR(IOPTN,KNAMB) - GO TO 374 - - 372 CONTINUE - L = LITA - IOPTN = IOR(IOPTN,KSQRB) - IF((ITOUT .NE. 1) .AND. (ITOUT .NE. 2)) THEN - NAMSTN = NAMRC1 -C print 1823,namstn - 1823 format(' at 372 ',A8) - ELSE -C ... WHAT IS THIS PARA DOING ? ? ? ? ? ? ? ? ? -C ITEMP = IAND(NAMSTN,MSKLHS) -C ITEMP = ISHFT(ITEMP,8) -C ITEMP = IOR(ITEMP,INAMRC) -C print *,' itout ',itout -C print 1824,namstn -C NAMSTN = IOR(ITEMP,IAND(NAMRC1,MSKRHS)) -C print 1824,namstn - 1824 format(' after 372 else namstn is ',a8) - - ENDIF - GO TO 373 - - 373 CONTINUE - IOPTN = IOR(IOPTN,KNAMB) - GO TO 374 - - 375 CONTINUE - NAMSTN=NAMBOG1 - IOPTN=IOR(IOPTN,KNAMB) - IOPTN=IOR(IOPTN,KCLOS) - GO TO 374 - - - - 374 CONTINUE -C ...SECTION FOLLOWING IS FOR 12HR HGT CHG INTO FFF SLOT. - IF(KTTYP .EQ. 1) GO TO 401 - IF(KTTYP .NE. 4) GO TO 422 - 401 CONTINUE -C ...COMES HERE IF LAND STATION OR FIXED SHIP... - ITEMP = IAND(IOPTN,KFFFB) - IF(ITEMP .EQ. 0) GO TO 4015 - IF(IHFFF(1:4) .EQ. C4LVRB) GO TO 422 -C ...OTHERWISE, WIND IS NOT LV, SO GO PUT HGT CHG IN FFF SLOT - 4015 CONTINUE -C -C ... IN CRAY VERSION, LARRY SAGER HAS INCLUDED THE 12-HR HGT CHG -C ... IN THE 6TH OBSERV QUANT, SO JUST FETCH FROM THERE - - IF(LONELVL(KPTR_DZ) .NE. MISGB12) THEN -C ... HGTCHGM = NINT(FLONELVL(KPTR_DZ)) !... IS 12-HR HGT CHG - HGTCHGM = FLONELVL(KPTR_DZ) !... IS 12-HR HGT CHG - -C ... if(lvldes .GE. 4) then -C ...CONVERT HGT CHG FROM METERS TO DECAMETERS for all levels - HGTCHGM = HGTCHGM / 10.0 -C ... endif - - ITECHG = NINT(HGTCHGM) - IF(iabs(itechg) .GT. 99) THEN - PRINT 419, LVLDES,C8NAMSTN(1:6),LONELVL(KPTR_DZ) - 419 FORMAT(1H , 'b4plotx:EXCESSIVE 12HR HGT CHG AT LVLDES=',I4, - 1 '; FOR STATION=',A6, - 2 '; BAD HGT-CHG VALUE= HEX',Z16) - GO TO 422 - ENDIF -C ... OTHERWISE, HGT CHG IS WITHIN ACCEPTABLE RANGE, SO - - CALL BIN2CH(ITECHG,CBCD,3,'L+-+') - - IHFFF(1:4) = CBCD(1:3)//'$' - - IOPTN = IOR(IOPTN,KFFFB) - IOPTN = IOR(IOPTN,KTALB) - GO TO 422 - ENDIF - GO TO 422 - - - - 422 CONTINUE -C ...SEARCH FOR 850 MB CALC TMPS FOR 9 STNS ABOVE 1200 METERS - IF(LVLDES.NE.2) GO TO 430 - - NAMI=IAND(NAMSTN,MSKCH1TO5) - DO 500 I=1,9 - ISAV=I - NAMJ=IAND(NAMTMP(I),MSKCH1TO5) - IF(NAMI.EQ.NAMJ) GO TO 510 - 500 CONTINUE - GO TO 430 - 510 CONTINUE - LCKPT = 515 - PRINT 515,LCKPT,C8NAMSTN(1:5) - 515 FORMAT(1X,'b4plotx: at LCKPT=',I5,'FOUND ELEVATED STATION ',A5) - - ITEMP = IAND(NAMTMP(ISAV),MRKR13) !... 001000 - IF(ITEMP .EQ. 0) GO TO 430 - NUNTMP=IAND(NAMTMP(ISAV),MSK12) !... 000FFF - LNEGQ=BTEST(NUNTMP,11) - IF(LNEGQ) NUNTMP=IOR(NUNTMP,NEGEX2) - TT=(FLOAT(NUNTMP))/10.0 - NTT=NINT(TT) - CALL BIN2CH(NTT,CBCD,3,'A#-#') - ITEMP = IAND(IOPTN,KTTB) - IF(ITEMP .EQ. 0) THEN - IOPTN=IOR(IOPTN,KTTB) - IOPTN=IOR(IOPTN,KCLTB) - IHTT(1:4) = CBCD(1:4) - GO TO 430 - ELSE -C ...OTHERWISE OBSERVED TMP ALREADY IN TEMPERATURE SLOT, SO PLOT -C ...CALCULATED TMP ABOVE IT - IOPTN=IOR(IOPTN,KMTMP) - JHT1=JBCD - GO TO 430 - ENDIF - - 430 CONTINUE - IF(.NOT.AFOS) GO TO 440 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ALAT = FLONELVL(KPTR_LAT) - ALONG = FLONELVL(KPTR_LON) -C ... In Luke Lin's FAX application, he will not use the AFOS option -C ... so he commented the following call -C -C ... otherwise, generate the AFOS PLTFILE entry for this one stn -C ... CALL GENAFPLT(ITOUT,LVLDES,C8NAME,KTTYP,IOPTN, -C ... 1 ALAT,ALONG,L,ND1_AF,IHSSS_AF, -C ... 2 IHZZ,IHTT,IHDEWPT,IHFFF,IRET_AFP) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - 440 CONTINUE -C -C CHECK TO SEE IF 1 DOT/2 DOT FLAG IS TURN ON. -C IF FLAG IS ON...SKIP CHECK FOR FT HUACHUCA -C IF FLAG IS OFF...CHECK FOR FT HUACHUCA -C - IF(LMARGIN) GOTO 442 -C -C CHECK FOR FT HUACHUCA FOR MOVING PARAMETERS DOWN - IF (C8NAME(1:5) .EQ. STNDWN(1:5)) THEN - IOPTN = IOR(IOPTN,KDOWN) - LCKPT = 440 - PRINT 441,LCKPT,C8NAME(1:5),IO,JO,ihdewdep(1:3),norwndir,IDDGD, - 1 IHFFF(1:3),NSSS,IHTT(1:3),JHT1, - 1 IHZZZ(1:3), IOPTN,KEIL - 441 FORMAT(1H ,'B4PLOTX:at LCKPT=',I5,' WILL CALL PLTDAT AT STA ',A5, - 1 ' WITH PARAMETERS= ',2I5, - 2 /1H ,A3,2I5,2X,A3,I5,2X,A3,I5,1X,A3,2X,Z10,2X,I5) - ENDIF - - 442 CONTINUE -C - IF(.NOT.LMARGIN) GOTO 445 -C -C ...WHEN 1-DOT/2-DOTS VARIAN/FAX CHARTS ARE GENERATED, THE -C FOLLOWING CHECKS THE REPORTING STATION ACROSS NORTH -C AMERICA (STATIONS ID BETWEEN 70000 AND 75000) AGAINST -C A TABLE OF KNOWN OVERLAYING STATIONS(PLOTMLTY). -C -C TEST TO DETERMINE IF ANY 2 NEARBY STATIONS SHOULD BE FURTHER -C EXAMINED. -C -C CHECKING TO SEE IF NWS IS PRESENT - DO 730 LK=1,NLIST_2 - IF(C8NAME(1:5) .EQ. NWSSTN(LK)(1:5)) THEN !... FOUND MATCH -C ... NWS STATIONS: - JAMSTN(LK) = C8NAMSTN - JIDDGD(LCNTR,LK) = IDDGD - Jihdewdep(LCNTR,LK) = ihdewdep - Jnorwndir(LCNTR,LK) = norwndir - JIHFFF(LCNTR,LK) = IHFFF - JIHTT(LCNTR,LK) = IHTT - JIHZZZ(LCNTR,LK) = IHZZZ - JIO(LCNTR,LK) = IO - JJOPTN(LCNTR,LK) = IOPTN - JJHT1(LCNTR,LK) = JHT1 - JJO(LCNTR,LK) = JO - JKEIL(LCNTR,LK) = KEIL - JNSSS(LCNTR,LK) = NSSS - JFLAG(LCNTR,LK) = 1 - GOTO 777 !... JUMP OUT OF THIS LOOP AFTER FOUND - - ENDIF - - 730 CONTINUE !... ENDDO ON LK=1,NLIST_2 -C -C CHECKING TO SEE IF MILITARY IS PRESENT - DO 732 LK=1,NLIST_2 - IF(C8NAME(1:5) .EQ. MILSTN(LK)(1:5)) GOTO 733 - GOTO 732 - 733 CONTINUE - -C ... 734 FORMAT(A4) -C MILITARY STATIONS: - IF(LK .GT. 100) GO TO 777 - KAME(LK) = NAME - KAMSTN(LK) = C8NAMSTN - KIDDGD(LCNTR,LK) = IDDGD - Kihdewdep(LCNTR,LK) = ihdewdep - Knorwndir(LCNTR,LK) = norwndir - KIHFFF(LCNTR,LK) = IHFFF - KIHTT(LCNTR,LK) = IHTT - KIHZZZ(LCNTR,LK) = IHZZZ - KIO(LCNTR,LK) = IO - KKOPTN(LCNTR,LK) = IOPTN - KIOPTN(LCNTR,LK) = MIOPTN - KJHT1(LCNTR,LK) = JHT1 - KJO(LCNTR,LK) = JO - KKEIL(LCNTR,LK) = KEIL - KNDD(LCNTR,LK) = NDD - KNSSS(LCNTR,LK) = NSSS - KFLAG(LCNTR,LK) = 1 - GOTO 777 - 732 CONTINUE -C - IDOTS = 0 - JDOTS = 0 - IERR = 0 -C - CALL MOVEID(IO,JO,NAME,IPROB,ICNT,NLIST_1,IDOTS,JDOTS,KCNT, - 1 JCOUNT,IERR) - - LCKPT = 732 - PRINT *, ' b4plotx::movid:at LCKPT=',LCKPT, - 1 ' IDOTS=',IDOTS,' JDOTS=',JDOTS,' IERR=',IERR - IF(IERR.EQ.0) GOTO 445 -C -C OTHERWISE...MOVE OVERLAYING STATION TO TOP OF PAGE -C NDD GIVES THE TRUE WIND DIRECTION...NORTH BEING TOP OF PAGE -C WHERE IDDGE GIVES TRUE WIND DIRECTION ACCORDING TO GRIDDED MAP -C -C print *,' PLTD 732 ihdewdep is ',ihdewdep -C CALL PLTDAT(IDOTS,JDOTS,ihdewdep,norwndir,NDD,IHFFF,NSSS,IHTT,JHT1, -C 1 IHZZZ,c8namstn,IOPTN,KEIL) - CALL PLTDAT(IDOTS,JDOTS,ihdewdep,NDD,IHFFF,NSSS,IHTT,JHT1, - 1 IHZZZ,c8namstn,IOPTN,KEIL,norwndir) -C -C* CALL PUTLAB(IDOTS-18,JDOTS-45,0.12,NAME,0.0,5,iprior,0) -C* CALL PUTLAB(IDOTS-30,JDOTS-60,0.12,ILAT(KCNT),0.0,3,iprior,0) -C* CALL PUTLAB(IDOTS,JDOTS-60,0.12,ILONG(KCNT),0.0,4,iprior,0) -C - IXX = IDOTS - 18 - JYY = JDOTS - 45 - CALL PUTLAB(IXX,JYY,0.12,C8NAME,0.0,5,iprior,0) - IXX = IDOTS - 30 - JYY = JDOTS - 60 - CALL PUTLAB(IXX,JYY,0.12,ILATLON(KCNT)(1:3),0.0,3,iprior,0) - IXX = IDOTS - JYY = JDOTS - 60 - CALL PUTLAB(IXX,JYY,0.12,ILATLON(KCNT)(4:7),0.0,4,iprior,0) -C -C IF FORT CAMPBELL (74671) OCCURRS, DO NOT PRINT STATION -C CIRCLE/WIND BAR...JUST MOVE ENTIRE DATA TO TOP OF VARIAN -C CHART. -C - IF(C8NAME(1:5) .EQ. CMPBLL(1:5)) GOTO 777 -C -C IF WHITE SANDS (72269) OCCURRS, DO NOT PRINT STATION -C CIRCLE/WIND BAR...JUST MOVE ENTIRE DATA TO TOP OF VARIAN -C CHART. -C - IF(C8NAME(1:5) .EQ. WSNDS(1:5)) GOTO 777 -C -C IF WHITE SANDS MISSILE (74734) OCCURRS, DO NOT PRINT STATION -C CIRCLE/WIND BAR...JUST MOVE ENTIRE DATA TO TOP OF VARIAN -C CHART. -C - IF(C8NAME .EQ. WSNDM(1:5)) GOTO 777 -C -C PLACING A NUMBER AND A CIRCLE IN THE LOCATION WHERE -C THE OVERWRITING STATION SHOULD HAVE BEEN SEEN. -C - LCKPT = 762 - PRINT *,'b4plotx:at LCKPT=',LCKPT,' IO=',IO,' JO=',JO -C print *,' PLTD 762 ihdewdep is ',ihdewdep -C CALL PLTDAT(IO,JO,ihdewdep,norwndir,IDDGD,IHFFF,NSSS,IHTT,JHT1, -C 1 IHZZZ,C8NAMSTN,MIOPTN,KEIL) - CALL PLTDAT(IO,JO,ihdewdep,IDDGD,IHFFF,NSSS,IHTT,JHT1, - 1 IHZZZ,C8NAMSTN,MIOPTN,KEIL,norwndir) -C -C PLACING THE STATION ID UNDER THE CILCLE - IXX = IO - 10 - JYY = JO - 15 -C* CALL PUTLAB(IO-10,JO-15,0.06,NAME,0.0,5,iprior,0) - CALL PUTLAB(IXX,JYY,0.06,C8NAME(1:5),0.0,5,iprior,0) -C - GOTO 777 - 445 CONTINUE -C -C CHECKING FOR PADUCAH...IF TRUE, MOVE PARAMETERS WESTWARD - IF (C8NAME(4:8) .EQ. STNWST(1:5)) THEN - IOPTN = IOR(IOPTN,IWEST) - ENDIF -C -C CHECKING FOR NASHVILL/BERRY..IF TRUE, MOVE PARAMETERS WESTWARD - IF (C8NAME(4:8) .EQ. STNEST(1:5)) THEN - IOPTN = IOR(IOPTN,IEAST) - ENDIF -C -C CHECKING FOR DAYTON...IF TRUE, MOVE PARAMETERS NORTHWARD - IF (C8NAME(4:8) .EQ. STNNTH(1:5)) THEN - ioptn = IOR(ioptn,jnorth) - ENDIF -C -C CHECKING FOR HUNTINGTON...IF TRUE, MOVE PARAMETERS SOUTHWARD - IF (C8NAME(4:8) .EQ. STNSTH(1:5)) THEN - ioptn = IOR(ioptn,jsouth) - ENDIF -C -C ... LCKPT = 768 -C ... PRINT *,'b4plotx:at LCKPT=',LCKPT,' IO=',IO,' JO=',JO -C print *,' PLTD 777 ihdewdep is ',ihdewdep, IOPTN -C print 104,norwndir - 104 FORMAT(' norwndir at 777 in b4plotx is ',a8) -C CALL PLTDAT(IO,JO,ihdewdep,norwndir,IDDGD,IHFFF,NSSS,IHTT,JHT1, -C 1 IHZZZ, C8NAMSTN,IOPTN,KEIL) - CALL PLTDAT(IO,JO,ihdewdep,IDDGD,IHFFF,NSSS,IHTT,JHT1, - 1 IHZZZ, C8NAMSTN,IOPTN,KEIL,norwndir) - GO TO 777 - 777 CONTINUE - 779 CONTINUE -C -C TEST TO DETERMINE WHERE THE 2 NEARBY STATIONS SHOULD BE PLOTTED -C USING K FOR INDEXING INSTEAD OF L WHICH IS PREVIOUSLY DEFINED LOGICAL -C * 1. G.R.D. (12/26/89)***** -C - IF(NLIST_2 .EQ. 0) THEN - WRITE(6,945) - 945 FORMAT(1X,'b4plotx: K = 0 JFLAG = 0 KFLAG = 0') - ENDIF - - IF(NLIST_2 .EQ. 0) GOTO 909 - - DO 782 K=1,NLIST_2 - WRITE(6,929) LCKPT,K, JFLAG(LCNTR,K), KFLAG(LCNTR,K) - 929 FORMAT(1X,'b4plotx:at LCKPT=',i5,'K =',1X,I6,3X, - 1 'JFLAG =',I6,3X,'KFLAG=',I6) - LCKPT = 782 -C PRINT *,'B4PLOTX:at LCKPT=',LCKPT,' LCNTR=',LCNTR,' K=',K -C* IF(JFLAG(LCNTR,K).EQ.0.AND.KFLAG(LCNTR,K).EQ.0) GOTO 782 - IF(JFLAG(LCNTR,K).EQ.0.AND.KFLAG(LCNTR,K).EQ.1) GOTO 783 - IF(JFLAG(LCNTR,K).EQ.1.AND.KFLAG(LCNTR,K).EQ.0) GOTO 784 - IF(JFLAG(LCNTR,K).EQ.1.AND.KFLAG(LCNTR,K).EQ.1) GOTO 785 -C - 783 CONTINUE - lckpt = 783 -C PRINT *,'b4plotx:at LCKPT=',LCKPT,' KIO()=',KIO(LCNTR,K), -C 1 ' KJO()=',KJO(LCNTR,K) -C print *,' PLTD 783 jihdewdep is ',kihdewdep(lcntr,k) -C CALL PLTDAT(KIO(LCNTR,K),KJO(LCNTR,K),Kihdewdep(LCNTR,K), -C 1 Knorwndir(LCNTR,K),KIDDGD(LCNTR,K),KIHFFF(LCNTR,K), -C 2 KNSSS(LCNTR,K),KIHTT(LCNTR,K),KJHT1(LCNTR,K), -C 3 KIHZZZ(LCNTR,K),KAMSTN(K),KKOPTN(LCNTR,K), -C 4 KKEIL(LCNTR,K)) - CALL PLTDAT(KIO(LCNTR,K),KJO(LCNTR,K),Kihdewdep(LCNTR,K), - 1 KIDDGD(LCNTR,K),KIHFFF(LCNTR,K), - 2 KNSSS(LCNTR,K),KIHTT(LCNTR,K),KJHT1(LCNTR,K), - 3 KIHZZZ(LCNTR,K),KAMSTN(K),KKOPTN(LCNTR,K), - 4 KKEIL(LCNTR,K),knorwndir(LCNTR,K)) -C - IXX = KIO(LCNTR,K) - 10 - JYY = KJO(LCNTR,K) - 20 -C** CALL PUTLAB(KIO(LCNTR,K)-10,KJO(LCNTR,K)-20,0.06,KAME(K), -C*** 1 0.0,5,iprior,0) - - CALL PUTLAB(IXX,JYY,0.06,KAME(K),0.0,5,iprior,0) -C - GOTO 782 -C - 784 CONTINUE -C -C print *,' PLTD 784 jihdewdep is ',kihdewdep(lcntr,k) -C CALL PLTDAT(JIO(LCNTR,K),JJO(LCNTR,K),Jihdewdep(LCNTR,K), -C 1 Jnorwndir(LCNTR,K),JIDDGD(LCNTR,K),JIHFFF(LCNTR,K), -C 2 JNSSS(LCNTR,K),JIHTT(LCNTR,K),JJHT1(LCNTR,K), -C 3 JIHZZZ(LCNTR,K),JAMSTN(K),JJOPTN(LCNTR,K), -C 4 JKEIL(LCNTR,K)) - CALL PLTDAT(JIO(LCNTR,K),JJO(LCNTR,K),Jihdewdep(LCNTR,K), - 1 JIDDGD(LCNTR,K),JIHFFF(LCNTR,K), - 2 JNSSS(LCNTR,K),JIHTT(LCNTR,K),JJHT1(LCNTR,K), - 3 JIHZZZ(LCNTR,K),JAMSTN(K),JJOPTN(LCNTR,K), - 4 JKEIL(LCNTR,K),jnorwndir(LCNTR,K)) -C - GOTO 782 -C - 785 CONTINUE -C - CALL MOVOBS(KIO(LCNTR,K),KJO(LCNTR,K),ICNT,KIDOTS,KJDOTS,JCOUNT) -C -C print *,' PLTD moveob kihdewdep is ',kihdewdep(lcntr,k) -C CALL PLTDAT(KIDOTS,KJDOTS,Kihdewdep(LCNTR,K),Knorwndir(LCNTR,K), -C 1 KNDD(LCNTR,K),KIHFFF(LCNTR,K), -C 2 KNSSS(LCNTR,K),KIHTT(LCNTR,K),KJHT1(LCNTR,K), -C 3 KIHZZZ(LCNTR,K),KAMSTN(K),KKOPTN(LCNTR,K), -C 4 KKEIL(LCNTR,K)) - CALL PLTDAT(KIDOTS,KJDOTS,Kihdewdep(LCNTR,K), - 1 KNDD(LCNTR,K),KIHFFF(LCNTR,K), - 2 KNSSS(LCNTR,K),KIHTT(LCNTR,K),KJHT1(LCNTR,K), - 3 KIHZZZ(LCNTR,K),KAMSTN(K),KKOPTN(LCNTR,K), - 4 KKEIL(LCNTR,K),knorwndir(LCNTR,K)) -C -C* CALL PUTLAB(KIDOTS-18,KJDOTS-45,0.12,KAME(K),0.0,5,iprior,0) -C* CALL PUTLAB(KIDOTS-30,KJDOTS-60,0.12,KLAT(K),0.0,3,iprior,0) -C* CALL PUTLAB(KIDOTS,KJDOTS-60,0.12,KLONG(K),0.0,4,iprior,0) -C - IXX = KIDOTS - 18 - JYY = KJDOTS - 45 - CALL PUTLAB(IXX,JYY,0.12,KAME(K),0.0,5,iprior,0) - IXX = KIDOTS - 30 - JYY = KJDOTS - 60 - CALL PUTLAB(IXX,JYY,0.12,KLATLON(K)(1:3),0.0,3,iprior,0) - IXX = KIDOTS - JYY = KJDOTS - 60 - CALL PUTLAB(IXX,JYY,0.12,KLATLON(K)(4:7),0.0,4,iprior,0) - -C ... PLACING A NUMBER AND A CIRCLE IN THE LOCATION WHERE -C ... THE OVERWRITING STATION SHOULD HAVE BEEN SEEN. -C -C print *,' PLTD pre786 kihdewdep is ',kihdewdep(lcntr,k) -C CALL PLTDAT(KIO(LCNTR,K),KJO(LCNTR,K),Kihdewdep(LCNTR,K), -C 1 Knorwndir(LCNTR,K),KIDDGD(LCNTR,K),KIHFFF(LCNTR,K), -C 2 KNSSS(LCNTR,K),KIHTT(LCNTR,K),KJHT1(LCNTR,K), -C 3 KIHZZZ(LCNTR,K),KAMSTN(K),KIOPTN(LCNTR,K), -C 4 KKEIL(LCNTR,K)) - CALL PLTDAT(KIO(LCNTR,K),KJO(LCNTR,K),Kihdewdep(LCNTR,K), - 1 KIDDGD(LCNTR,K),KIHFFF(LCNTR,K), - 2 KNSSS(LCNTR,K),KIHTT(LCNTR,K),KJHT1(LCNTR,K), - 3 KIHZZZ(LCNTR,K),KAMSTN(K),KIOPTN(LCNTR,K), - 4 KKEIL(LCNTR,K),knorwndir(LCNTR,K)) -C -C ... PLACING THE STATION ID UNDER THE CIRCLE - IXX = KIO(LCNTR,K) - 10 - JYY = KJO(LCNTR,K) - 15 -C** CALL PUTLAB(KIO(LCNTR,K)-10,KJO(LCNTR,K)-15,0.06,KAME(K), -C** 1 0.0,5,iprior,0) - CALL PUTLAB(IXX,JYY,0.06,KAME(K),0.0,5,iprior,0) -C - 786 CONTINUE -C print *,' PLTDAT 786 jihdewdep is ',jihdewdep(lcntr,k) -C CALL PLTDAT(JIO(LCNTR,K),JJO(LCNTR,K),Jihdewdep(LCNTR,K), -C 1 Jnorwndir(LCNTR,K),JIDDGD(LCNTR,K),JIHFFF(LCNTR,K), -C 2 JNSSS(LCNTR,K),JIHTT(LCNTR,K),JJHT1(LCNTR,K), -C 3 JIHZZZ(LCNTR,K),JAMSTN(K),JJOPTN(LCNTR,K), -C 4 JKEIL(LCNTR,K)) - CALL PLTDAT(JIO(LCNTR,K),JJO(LCNTR,K),Jihdewdep(LCNTR,K), - 1 JIDDGD(LCNTR,K),JIHFFF(LCNTR,K), - 2 JNSSS(LCNTR,K),JIHTT(LCNTR,K),JJHT1(LCNTR,K), - 3 JIHZZZ(LCNTR,K),JAMSTN(K),JJOPTN(LCNTR,K), - 4 JKEIL(LCNTR,K),jnorwndir(lcntr,k)) - 782 CONTINUE - 909 CONTINUE -C - go to 999 !... is this the normal return?? - -C ...ERROR RETURNS - 910 CONTINUE -C ...COMES TO 910 IF GIVEN ITOUT WAS OUT OF RANGE - PRINT 912, ITOUT - 912 FORMAT(1H , 'b4plotx:ERROR RETURN. GIVEN AN OUT-OF-RANGE ', - 1 'ITOUT = HEX', Z8) - IERROR = 1 - go to 999 - - 920 continue - write(6,925)LCKPT,LUNOVRL - 925 format(1h ,'b4plotx: READ-PARITY ERROR AT LCKPT=',I5, - 1 '; ON OVRL-CONS UNIT:',I4) - IERROR = 2 - GO TO 999 - - 930 continue - write(6,935)LCKPT,LUNOVRL - 935 format(1h ,'b4plotx: HIT END-OF-FILE AT LCKPT=',I5, - 1 '; ON OVRL-CONS UNIT:',I4) - IERROR = 3 - GO TO 999 - - - 999 continue - RETURN - END diff --git a/util/sorc/plotvpap.fd/ckparm.f b/util/sorc/plotvpap.fd/ckparm.f deleted file mode 100755 index f50c4930c9..0000000000 --- a/util/sorc/plotvpap.fd/ckparm.f +++ /dev/null @@ -1,127 +0,0 @@ - SUBROUTINE CKPARM(LPARM,NC,NUMFIL,FLAGS) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CKPARM CHECKS THE PARM ARRAY TO TURN ON FLAGS. -C PRGMMR: LIN ORG: W/NMC41 DATE: 97-01-29 -C -C ABSTRACT: SET THE FLAGS PASSED IN FROM PARM ARRAY FOR PROGRAM -C PLOTVPAP. -C -C PROGRAM HISTORY LOG: -C 89-04-14 ORIGINAL AUTHOR HENRICHSEN. -C 89-05-19 HENRICHSEN CORRECT ERROR IN WRITE STATEMENTS. -C 93-05-13 LILLY CONVERTED SUB. TO FORTRAN 77. -C 97-01-29 LIN CONVERTED SUB. TO CFT-77 -C -C USAGE: CALL CKPARM(LPARM,NC,NUMFIL,FLAGS) -C INPUT ARGUMENT LIST: -C LPARM - LOGICAL 100 BYTE ARRAY CONTAINING HOLLERITH -C FLAGS AND KEY WORDS. -C NC - INTEGER NUMBER OF BYTES OF HOLLERITH DATA IN LPARM. -C -C OUTPUT ARGUMENT LIST: -C NUMFIL - INTEGER WORD CONTAINS THE NUMBER OF FILES TO USE. -C FLAGS - LOGICAL 8 BYTE ARRAY SET TO TRUE OR FALSE -C -C RETURN CONDITIONS: -C NONE -C -C OUTPUT FILES: -C FT06F001 - PRINT FILE. -C -C -C SUBPROGRAMS CALLED: -C LIBRARY: -C W3LIB - W3AI24 -C -C REMARKS: THE LOGICAL FLAGS ARE: -C FLAGS(1) IS ACAR FLAG. -C FLAGS(2) IS MIDC FLAG. -C FLAGS(3) IS TSW1 FLAG. -C FLAGS(4) IS TSW2 FLAG. -C FLAGS(5) IS AFOS FLAG. -C FLAGS(6) IS SEND FLAG. -C FLAGS(7) IS CARD FLAG. -C FLAGS(8) IS MARGIN FLAG. -C FLAGS(9) IS PUNCH FILE FLAG. -C -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - CHARACTER*1 ICMA - DATA ICMA /','/ - CHARACTER*1 LEQU - DATA LEQU /'='/ - CHARACTER*1 LPARM(100) - CHARACTER*1 FPARM(2) - CHARACTER*1 L1BLNK - DATA L1BLNK /' '/ -C - CHARACTER*4 TFLAGS( 10) - DATA TFLAGS / 'ACAR','MIDC','TSW1','TSW2', - 1 'AFOS','SEND','CARD','MARG', - 2 'PNCH','NUMF'/ - CHARACTER*4 ON - DATA ON / 'ON '/ -C - LOGICAL W3AI24 -C - LOGICAL FLAGS(9) -C - NUMFIL = 0 - DO 1 I = 1,9 - FLAGS(I)= .FALSE. - 1 CONTINUE -C -C . . . CHECK TO SEE IF BYTE COUNT LESS THAN 5 IF SO LPARM EMPTY. -C - IF(NC.LE.5) GO TO 100 -C - WRITE(6,2) (LPARM(I),I = 1,NC) - 2 FORMAT(' ','LPARM=',100A1) -C - DO 40 NK = 1,10 - DO 20 NM = 1,NC - IF(W3AI24(LPARM(NM),TFLAGS(NK),4)) GO TO 5 - GO TO 20 - 5 CONTINUE - IF(W3AI24(LPARM(NM+4),LEQU,1)) GO TO 10 - GO TO 20 - 10 CONTINUE - NUM = NM + 5 - IF(NUM.GT.NC) GO TO 40 - IF(W3AI24(LPARM(NUM),ICMA,1)) GO TO 40 - IF(W3AI24(LPARM(NUM),L1BLNK,1)) GO TO 40 - IF(NK.EQ.10) GO TO 30 - IF(W3AI24(LPARM(NUM),ON,2)) FLAGS(NK) = .TRUE. - GO TO 40 - 20 CONTINUE - GO TO 40 -C - 30 CONTINUE -C -C THIS IS NUM FILES FLAG SO I MUST GET NUMBER OF FILES IN -C INTEGER -C -C???? CALL FFA2I(LPARM,NUM,2,1,NUMFIL,IERR) -C??? IF(IERR.NE.0) NUMFIL = 0 - FPARM(1) = LPARM(NUM) - FPARM(2) = LPARM(NUM+1) - CALL ASC2INT(2,FPARM,NUMFIL,IERR) - WRITE(6,35) NUMFIL - 35 FORMAT(' NUMFIL =',I2) -C - 40 CONTINUE - 100 CONTINUE - WRITE(6,102) (FLAGS(I),I = 1,9),NUMFIL - 102 FORMAT(' ACAR FLAG=',L1,' MIDC FLAG=',L1, - 1 ' TSW1 FLAG=',L1,' TSW2 FLAG=',L1, - 2 ' AFOS FLAG=',L1,' SEND FLAG=',L1, - 3 ' CARD FLAG=',L1,' MARG FLAG=',L1, - 4 ' PNCH FLAG=',L1,' NUMFIL=',I2) - RETURN - END diff --git a/util/sorc/plotvpap.fd/compile_plotvpap_wcoss.sh b/util/sorc/plotvpap.fd/compile_plotvpap_wcoss.sh deleted file mode 100755 index c6046803a7..0000000000 --- a/util/sorc/plotvpap.fd/compile_plotvpap_wcoss.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x -mkdir -p ../../exec -make -mv plotvpap ../../exec -make clean diff --git a/util/sorc/plotvpap.fd/cutstr.f b/util/sorc/plotvpap.fd/cutstr.f deleted file mode 100755 index edd5ebb5c4..0000000000 --- a/util/sorc/plotvpap.fd/cutstr.f +++ /dev/null @@ -1,48 +0,0 @@ - SUBROUTINE CUTSTR(ICARD,MXCH,ITH,NCHAR,ITABC, - 1 N,LIT,ISUBST,NXTCH,IEXIT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SEPCAR SEPARATE CHARACTER STRING -C PRGMMR: LIN ORG: W/NMC412 DATE: 97-01-29 -C -C ABSTRACT: CREATING SUBSTRINGS CHARACTERS FROM A 20-WORD ARRAY -C WITH CARD IMAGE CHARACTER STRING. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 88-07-25 GLORIA DENT PUT IN DOCUMENTATION BLOCK -C 89-04-18 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C 93-05-08 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-01-28 LIN CONVERT SUBROUTINE TO CFT-77 -C -C USAGE: CALL SEPCAR (ICARD,ITC,MXITM,NITEMS,NLCH,IHSTRL,NRCH, -C & IHSTRR,IERR) -C -C INPUT ARGUMENT LIST: -C ICARD - A 10-WORD (=80CHARS) ARRAY WITH CARD IMAGE -C - CHARACTER STRING TO BE SEAPARATED INTO SUBSTRINGS -C ITC - CARD COLUMN TO BEGIN THE SEPARATING -C MXITM - MAX NO. OF ITEMS EXPECTED ON THE CARD IMAGE -C - WHERE ITEMS ARE SEPARATED BY COMMAS OR BLANKS -C - AND MAY BE AN EXPRESSION CONTAINING AN '=' SIGN -C - AND THE STRING IS TERMINATED BY A SEMI-COLON. -C -C OUTPUT ARGUMENT LIST: -C NITEMS - NO. OF ITEMS FOUND -C NLCH - IS CHAR COUNT OF FOLLOWING SUBSTRING -C IHSTRL - CHAR SUBSTRING W/ MAX OF 12 CHARS -C NRCH - IS CHAR COUNT OF SUBSTRING FROM RHS OF '=' SIGN IF ANY -C IHSTRR - CHAR STRING FROM RHS OF EQUAL SIGN IF ANY -C IERR - = 0 IS NORMAL RETURN -C - = 1 IF SOME TROUBLE WAS ENCOUNTERED. -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - RETURN - END diff --git a/util/sorc/plotvpap.fd/dixie.f b/util/sorc/plotvpap.fd/dixie.f deleted file mode 100755 index 0ad73e1770..0000000000 --- a/util/sorc/plotvpap.fd/dixie.f +++ /dev/null @@ -1,147 +0,0 @@ - SUBROUTINE DIXIE (NDATA,ITM,JTM,IJTH,MSKJJ,NRITSHF, - 1 IDIXAD,IDIXCO,NDIX,iret_dix) -C 25-JUL-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DIXIE SETS DATA POINTERS FOR THINNING OBS DATA -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-09 -C -C ABSTRACT: GENERATES DATA POINTERS NEEDED BY SUBR THIK() TO -C EFFICIENTLY SCAN THE OBSERVATIONAL DATA FILE WHEN LOOKING FOR -C NEARBY STATIONS. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-17 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C 93-05-09 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-07-25 SHIMOMUR - CONVERT TO RUN ON CRAY; added Arg:return code -C -C USAGE: CALL DIXIE(NDATA,ITM,JTM,IJTH,MSKJJ,NRITSHF, -C IDIXAD,IDIXCO,NDIX,iret_dix) -C -C INPUT ARGUMENT LIST: -C NDATA(ITM,JTM) - THE ADP DATA ARRAY -C IJTH - POINTS TO THE LOCATION OF THE I, J WORD WITHIN -C - THE ITM DOUBLE WORDS REPRESENTING EACH DATA POINT -C MSKJJ - MASK FOR THE INTEGER-PORTION OF STN J-VALUE -C NRITSHF - NO. OF BITS TO SHIFT RIGHTWARD TO RIGHT-JUSTIFY -C THAT INTEGER-PORTION OF STN J-VALUE -C OUTPUT ARGUMENT LIST: -C IDIXAD - I = BOTTOM, J TOP POINTS TO THE FIRST OBSERVATION -C - IN THE I-TH, J-STRIP -C IDIXCO - THE TOTAL NUMBER OF OBSERVATION -C NDIX - DIMENSION ARRAY IE; IDIXCO(NDIX) -C iret_dix - return code -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C USAGE: CALL DIXIE(NDATA,ITM,JTM,IJTH,MSKJJ,NRITSHF, -C IDIXAD,IDIXCO,NDIX,iret_dix) -C ... GIVEN: - integer*8 NDATA(ITM,JTM) !...ARGS 1,2,3 - INTEGER IJTH !... ARG 4 - integer MSKJJ !... ARG 5 - INTEGER NRITSHF !... ARG 6 -C ... RESULTS: - integer IDIXAD(NDIX) !... ARG 7,9 - integer IDIXCO(NDIX) !... ARG 8,9 - INTEGER IRET_DIX !... ARG 10 - -C ...ARRAYS DIMENSIONED ONE MORE THAN MAX NO OF JROWS IN GRID, -C ... BECAUSE THE TOTAL NO OF OBS IS RETURNED IN IDIXCO(NDIX) -C ... WHERE VALUE OF NDIX = (MAXGRIDJ + 1) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - INTEGER IJWD - INTEGER IJADR - INTEGER JCURR - INTEGER LEFSHF - INTEGER MAXGRIDJ - INTEGER NOBSINSTRIP - LOGICAL LENDOFDATA - - - SAVE - - IRET_DIX = 0 - - DO I = 1,NDIX - IDIXAD(I) = 0 - IDIXCO(I) = 0 - enddo - - IF(NDIX .LT. 3) THEN - IRET_DIX = 2 - GO TO 999 - ENDIF - LEFSHF = -NRITSHF - MAXGRIDJ = NDIX - 1 - IJADR = 1 - LENDOFDATA = .FALSE. - NOBSINSTRIP = 0 - JCURR = 1 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ...LUPA... DO ITEM=1,JTM - ITEM = 1 - 307 CONTINUE - IJWD = NDATA(IJTH,ITEM) -C ... ... IF(IJWD) 311,309,311 ... - if(ijwd .EQ. 0) then - LENDOFDATA = .TRUE. -C ...NO MORE OBS... - GO TO 333 - endif -C ... otherwise, ijwd was non-zero, so - 311 CONTINUE - JSTN = IAND(IJWD,MSKJJ) - JSTN = ISHFT(JSTN,LEFSHF) - - 322 CONTINUE - IF(JCURR .LT. JSTN) GO TO 333 - - NOBSINSTRIP = NOBSINSTRIP + 1 -C ...WHICH INCREMENTS COUNT OF OBS W/I THIS J STRIP... - - ITEM = ITEM + 1 - IF(ITEM .LE. JTM) GO TO 307 - -C ...OTHERWISE, REACHED END OF FULL BIN, NO MORE OBS... - LENDOFDATA = .TRUE. - 333 CONTINUE - IDIXAD(JCURR) = IJADR -C ...WHERE IDIXAD HAS SUBSCRIPT FOR FIRST OBS W/I THIS ROW... - IJADR = IJADR + NOBSINSTRIP - - IDIXCO(JCURR) = NOBSINSTRIP -C ...WHERE IDIXCO HAS COUNT OF OBS IN THIS STRIP... - - NOBSINSTRIP = 0 - JCURR = JCURR + 1 - IF(JCURR .GT. MAXGRIDJ) GO TO 800 - - IF(LENDOFDATA) THEN - GO TO 333 - ELSE - GO TO 322 - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C ...THE ENDING... - 800 CONTINUE - IDIXCO(MAXGRIDJ + 1) = IJADR - 1 -C ...WHICH WOULD BE TOTAL NO OF OBS - IF(IJADR .LE. 1) THEN -C ... WARNING: TOTAL COUNT OF OBS IS ZERO ... - IRET_DIX = 1 - ENDIF - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/fillubin.f b/util/sorc/plotvpap.fd/fillubin.f deleted file mode 100755 index 0aecdd5860..0000000000 --- a/util/sorc/plotvpap.fd/fillubin.f +++ /dev/null @@ -1,139 +0,0 @@ - SUBROUTINE fillubin(LUNUPA,LCKPT,IRET_FIL) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: fillubin TO BUFFER-IN OBS DATA FROM UPA FILE -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 97-02-18 -C -C ABSTRACT: A LIMITED USE BUFFERIN-IN ROUTINE CALLED FROM RD_AIRC() -C TO REPLENISH THE INPUT BUFFER WHILE RD_AIRC() PULLS ONE AIRCRAFT -C REPORT AT A TIME FROM THE BUFFER. THIS READS ONE 512-LONGWORD -C BUFFER; THEN UNPACKS INTO 32-BITS PER WORD VIA GBYTES -C -C PROGRAM HISTORY LOG: -C 97-02-18 ORIGINAL AUTHOR -- DAVID SHIMOMURA -C -C USAGE: CALL fillubin(LUNUPA,LCKPT,IRET_FIL) -C INPUT ARGUMENT LIST: -C LUNUPA - UNIT NUMBER OF INPUT AIRCRAFT OBS FILE -C LCKPT - CHECKPOINT WITHIN THE CALLER; FOR REMARKS TO TELL -C WHERE I WAS CALLED FROM. -C -C OUTPUT ARGUMENT LIST: -C IRET_FIL - ERRFLAG -C = 0; NORMAL RETURN -C = -1; FAILED TO READ DUE TO PARITY ERROR -C = -2; FAILED TO READ DUE TO HITTING AN END-OF-FILE MARK -C -C -C ... READS IN THE NEXT BLOCK INTO BUFFER IN COMMON /RDUPABFS/ ... -C ... COMMON /RDUPABFS/ K8ENDREP, KNEXT, NBUFUPA, -C ... 1 LPREVEND, LPREVNXT, NBUFPREV,JUPABUF,I4UPABIN -C ... INTEGER K8ENDREP -C ... INTEGER KNEXT -C ... INTEGER NBUFUPA - -C ... INTEGER LPREVEND -C ... INTEGER LPREVNXT -C ... INTEGER NBUFPREV - -C ... INTEGER JUPABUF(512) -C ... CHARACTER*8 C8INPBUF (512) -C ... !... 512 longwords=4096 byte/blk -C ... EQUIVALENCE (JUPABUF(1),C8INPBUF(1)(1:1)) - -C ... INTEGER I4UPABIN(1024) -C -C INPUT FILES: -C LUNUPA - AIRCRAFT OBSERVATIONS FILE -C WHICH UNIT NO. LUNUPA HAS BEEN ASSIGNED TO; -C -C -C REMARKS: -C THIS FILLUBIN() IS A DOCUMENTED VERSION OF FILLUPBIN() WHICH IS -C REFERENCED BY RD_UUPA(). SINCE THESE TWO USE THE SAME COMMON AREA, -C YOU MUST ORGANIZE YOUR PROGRAM TO READ THE RAOB FILE TO ITS END -C BEFORE READING THE AIRCRAFT FILE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C 21-JAN-1997/DSS -C ... -C ... TO READ IN THE NEXT BLOCK - COMMON /RDUPABFS/ K8ENDREP, KNEXT, NBUFUPA, - 1 LPREVEND, LPREVNXT, NBUFPREV,JUPABUF,I4UPABIN - INTEGER K8ENDREP - INTEGER KNEXT - INTEGER NBUFUPA - - INTEGER LPREVEND - INTEGER LPREVNXT - INTEGER NBUFPREV - - INTEGER JUPABUF(512) - CHARACTER*8 C8INPBUF (512) !... 512 longwords=4096 byte/blk - EQUIVALENCE (JUPABUF(1),C8INPBUF(1)(1:1)) - - INTEGER I4UPABIN(1024) - -C ... TO UNPACK THE 64-BIT WORDS INTO 32-BIT WORDS, -C ... CALL GBYTES(JUPABUF,I4UPABIN,NOFFSET,NBITSGRP,NPADBITS,NGRPS2DO) - INTEGER NOFFSET - DATA NOFFSET / 0 / - INTEGER NBITSGRP - DATA NBITSGRP / 32 / - INTEGER NPADBITS - DATA NPADBITS / 0 / - INTEGER NGRPS2DO - DATA NGRPS2DO / 1024 / - - INTEGER NEGSIGNEXT - DATA NEGSIGNEXT / X'FFFFFFFF00000000' / -C - integer LUNUPA - INTEGER LCKPT - integer iret_fil -C -C -C - iret_fil = 0 - READ(LUNUPA,ERR=910,END=920) JUPABUF - NBUFUPA = NBUFUPA + 1 - -C WRITE(6,FMT='(1H ,''rd_airc::fillubin: was called at LCKPT='', -C 1 I5,''; after-read buffer count='',I5)') -C A LCKPT,NBUFUPA - - CALL GBYTES(JUPABUF,I4UPABIN,NOFFSET,NBITSGRP,NPADBITS, - 1 NGRPS2DO) - do ihw = 1,NGRPS2DO - IF(BTEST(I4UPABIN(IHW),31)) THEN !... HI-ORDER BIT - I4UPABIN(IHW) = IOR(NEGSIGNEXT,I4UPABIN(IHW)) - ENDIF - ENDDO - GO TO 999 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 910 CONTINUE - WRITE(6,915)LCKPT,LUNUPA,NBUFUPA - 915 FORMAT(1H ,'rd_airc::fillubin:AT LCKPT=',I5, - 1 'FAILED ON PARITY ERROR ', - 2 /1h ,7X,' WHILE READING FROM UNIT=',I3, - 2 /1H ,' COUNT OF INPUT BLOCKS READ BEFORE ERR =',I8) - IRET_fil = 1 - GO TO 999 - - 920 CONTINUE - WRITE(6,925)LCKPT,LUNUPA,NBUFUPA - 925 FORMAT(1H ,'rd_airc::fillubin:AT LCKPT=',I5, - 1 'FAILED ON PHYSICAL END-OF-FILE ', - 2 /1h ,7X,'WHILE READING FROM UNIT=',I3, - 2 /1H ,' COUNT OF INPUT BLOCKS READ BEFORE END =',I8) - IRET_FIL = 2 - GO TO 999 - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/genafplt.f b/util/sorc/plotvpap.fd/genafplt.f deleted file mode 100755 index e7495b99cc..0000000000 --- a/util/sorc/plotvpap.fd/genafplt.f +++ /dev/null @@ -1,462 +0,0 @@ - SUBROUTINE GENAFPLT(ITOUT,LVLDES,C8NAME,KTTYP,IOPTN, - 1 ALAT,ALONG,c1stncirc,ND1, - 2 IHFF,IHZZZ,ihtt,ihdewpt,ihhgtchg,IRET_AFP) -C 27-JAN-1997/DSS -C ... SPLIT GENAFPLT() FROM IN-LINE OF B4PLOTX() -C ... IN ORDER TO ISOLATE THE AFOS PRODUCT GENERATOR FROM THE FAX; -C ... THIS GENAFPLT() IS CALLED ONLY FROM B4PLOTX() -C -C ... TO FORMAT AN AFOS PLTFILE ENTRY FOR ONE REPORT: -C ... iiii,jjjj,PSOWDT,,72520,N,DDFFF,PPP,-TT,TD,,,+DZ; -C ... ------------------------------------------------------------- - EXTERNAL LASTCH - INTEGER LASTCH !... int function lastch - - COMMON /ISPACE/LBLOCK,ICNTOT - CHARACTER*1 LBLOCK(16384) -C -C USAGE: CALL GENAFPLT(ITOUT,LVLDES,C8NAME,KTTYP,IOPTN, -C ... 1 ALAT,ALONG,XI,XJ,VSCALE,JO,JCORN,L,ND1, -C ... 2 IHFF,IHZZZ,ihtt,ihdewpt,ihhgtchg,IRET_AFP) -C - INTEGER ITOUT - INTEGER LVLDES - CHARACTER*8 C8NAME - INTEGER KTTYP - INTEGER IOPTN - REAL ALAT,ALONG - REAL XI,XJ - CHARACTER*1 c1stncirc - INTEGER ND1 - CHARACTER*4 IHFF - CHARACTER*4 ihtt - CHARACTER*4 ihdewpt !... ihdewpt(1:NDCHAR) - CHARACTER*4 ihhgtchg - CHARACTER*4 IHZZZ - INTEGER IRET_AFP -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - INTEGER KZZZB - DATA KZZZB / Z'00000020' / - - INTEGER KFFFB - DATA KFFFB / Z'00000010' / - - INTEGER KDEWB - DATA KDEWB / Z'00000008' / - - INTEGER KTTB - DATA KTTB / Z'00000004' / -C ...ABOVE BITS ARE FOR IOPTN FOR S/R PLTDAT - -C ... CALLS SUBR TRUIJ() -C ... AFZOOM() -C ... ihhgtchg(4CHAR)(:C4MISF, :C4LVRB) -C ... ihhgtchg(3CHAR) ... WHICH IS HGT-CHANGE ??? WHY IS HGT CHG IN WIND? - - - CHARACTER*4 C4LVRB - DATA C4LVRB /'LV$ '/ - CHARACTER*4 C4MISF - DATA C4MISF /'M$ '/ - - CHARACTER*1 COMMA - DATA COMMA / ',' / - CHARACTER*1 SEMICO - DATA SEMICO / ';' / - - character*1 csomedef(8) - integer isomedef - equivalence (isomedef,csomedef(1)) -C 1 2 3 - data isomedef / X'000A0D0000000000' / - - CHARACTER*1 LNULL !... X'00' - equivalence (csomedef(1),LNULL) - CHARACTER*1 LINFED !... X'0A' - equivalence (csomedef(2),LINFED) - CHARACTER*1 CARRET !... X'0D' - equivalence (csomedef(3),CARRET) - - - CHARACTER*1 LITBLK - DATA LITBLK / ' ' / - - CHARACTER*1 LITPND - DATA LITPND / '#' / - - - CHARACTER*1 LIT0 - DATA LIT0 /'0'/ - CHARACTER*1 LIT8 - DATA LIT8 /'8'/ - CHARACTER*1 LITA - DATA LITA /'A'/ - CHARACTER*1 LITS - DATA LITS /'S'/ - - INTEGER MAXIDOTS - DATA MAXIDOTS / 2048 / - - INTEGER MAXJDOTS - DATA MAXJDOTS / 1536 / - - CHARACTER*1 PSOWDT(6) - - INTEGER JBCD - CHARACTER*8 CBCD - EQUIVALENCE (JBCD,CBCD) - - REAL VSCALE - INTEGER JO - INTEGER ICORN,JCORN - -C ... ------------------------------------------------------------- -C -C FORM THE ONE-STATION ENTRY FOR AFOS PLOTFILE. -C -C ... THIS AFOS GENERATOR ACCEPTS ONLY ITOUT=2; OR ITOUT=9; -C .. ALL OTHER ITOUT VALUES RETURN DOING NOTHING -C - IRET_AFP = 0 - - IF(ITOUT .EQ. 2) THEN - KEIL = 1 !... THE LFM GRID - VERTLN = 105.0 - - VSCALE = 37.5 - - KEIL_1 = 12 !... 53 X 57 LFM GRID - ICORN = 0 - JCORN = 0 -C - CALL TRUIJX(ALAT,ALONG,XI,XJ,KEIL_1,IRET_TIJ) - IF(IRET_TIJ .NE. 0) THEN - IRET_AFP = -2 - GO TO 999 - ENDIF - - IN = NINT((XI - 1.0) * VSCALE) - JN = nint((XJ - 4.0) * VSCALE) -C -C ...WHICH SUBTRACTED 3 GI IN JGRID TO COMPENSATE FOR THE -C ...DIFFERENCE BETWEEN 53 X 57 LFM BACKGROUND AND THAT USED -C ...BY AFOS... - IN = IN + ICORN - JN = JN + JCORN - - IF((IN .LE. 0) .OR. (IN .GE. MAXIDOTS)) THEN - IRET_AFP = 1 - GO TO 999 - ENDIF - - IF((JN .LE. 0) .OR. (JN .GE. MAXJDOTS)) THEN - IRET_AFP = 2 - GO TO 999 - ENDIF - - GO TO 499 - - ELSE IF(ITOUT .EQ. 9) THEN -C ...COMES HERE FOR WINDS ALOFT PLOT ON PN2601 ... - KEIL = 4 - VERTLN = 98.0 - VSCALE = 28.846154 -C ... BUT THOSE FOR ITOUT==9 ARE IGNORED; AND GO WITH KEIL1=7 -C ... - KEIL_1 = 7 !... LARGE NH 1:20M 105W FRONT 2/3 - ICORN = 0 - JCORN = 0 - -C ...TO GET I,J ON NORTH AMERICAN GRID - CALL TRUIJX(ALAT,ALONG,XI,XJ,KEIL_1,IRET_TIJ) - IF(IRET_TIJ .NE. 0) THEN - IRET_AFP = -2 - GO TO 999 - ENDIF - XI = XI - 28.0 - XJ = XJ - 5.0 - IN = nint((XI-1.0)*37.5) - JN = nint((XJ-1.0)*37.5) - IN = IN + ICORN - JN = JN + JCORN - IF((IN .LE. 0) .OR. (IN .GE. MAXIDOTS)) THEN - IRET_AFP = 1 - GO TO 999 - ENDIF - - IF((JN .LE. 0) .OR. (JN .GE. MAXJDOTS)) THEN - IRET_AFP = 2 - GO TO 999 - ENDIF -C - go to 499 - - ELSE -C ... YOU SHOULD NOT HAVE CALLED ME WITH OTHER ITOUT VALUES ... - IRET_AFP = -1 - GO TO 999 !... exit on all other ITOUT values - ENDIF -C - 499 CONTINUE - ICNTOB = ICNTOT - - - IF(IN .GE. 1000) THEN - NCHAR = 4 - ELSE IF(IN .GE. 100) THEN - NCHAR = 3 - ELSE IF(IN .GE. 10) THEN - NCHAR = 2 - ELSE - NCHAR = 1 - ENDIF - - CALL BIN2CH(IN,CBCD,NCHAR,'A999') -C ... MOVE CBCD(1:NCHAR) INTO LBLOCK(ICNTOT) ... - CALL XMOVEX(LBLOCK(ICNTOT),CBCD,NCHAR) -C ... CALL EB2ASC(NCHAR,JBCD,LBLOCK(ICNTOT),IERR) -C - ICNTOT = ICNTOT + NCHAR - LBLOCK(ICNTOT) = COMMA - ICNTOT = ICNTOT + 1 - -C . . . . . . . . . . . THAT FINISHED THE IDOT, - - IF(JN .GE. 1000) THEN - NCHAR = 4 - ELSE IF(JN .GE. 100) THEN - NCHAR = 3 - ELSE IF(JN .GE. 10) THEN - NCHAR = 2 - ELSE - NCHAR = 1 - ENDIF - - CALL BIN2CH(JN,CBCD,NCHAR,'A999') -C ... MOVE CBCD(1:NCHAR) INTO LBLOCK(ICNTOT) ... - CALL XMOVEX(LBLOCK(ICNTOT),CBCD,NCHAR) -C ... CALL EB2ASC(NCHAR,JBCD,LBLOCK(ICNTOT),IERR) -C - ICNTOT = ICNTOT + NCHAR - LBLOCK(ICNTOT) = COMMA - ICNTOT = ICNTOT + 1 -C -C . . . . . . . . . . . . . THAT FINISHED THE JDOT, -C ... ALL OF WHICH SETS THE STATION I/J IN PLACE ... -C -C ... CALL SUB AFZOOM TO GET PSOWDT ... -C - CALL AFZOOM(C8NAME,KTTYP,PSOWDT) -C -C ... PUT THE PSOWDT IN LBLOCK ... -C - CALL XMOVEX(LBLOCK(ICNTOT),PSOWDT,6) - - ICNTOT = ICNTOT + 6 - LBLOCK(ICNTOT) = COMMA - ICNTOT = ICNTOT + 1 -C -C . . . . . . . . . . THAT FINISHED THE PSOWDT, . . . . . . . . . -C - LBLOCK(ICNTOT) = COMMA - ICNTOT = ICNTOT + 1 -C -C ... THIS EXTRA COMMA IS FOR THE TIME PARAMETER WHICH I AM OMITTING. -C -C MAY 31, 1984... AT THE REQUEST OF THE NATIONAL CLIMATIC DATA -C CENTER, THE AFOS DATA REVIEW GROUP ASKED THAT ALL UPPER-AIR -C PLOTFILE DATA CARRY STATION NAMES OR IDENTIFIERS. -C -C ...SKIP STATION NAME IF OPTION WORD DOESN'T CALL FOR IT - call byteswap(C8NAME, 8, 1) - NCHAR = LASTCH(C8NAME(1:6)) - IF(NCHAR .GT. 0) THEN -C ... MOVE NCHAR OF C8NAME INTO LBLOCK(ICNTOT) ... - CALL XMOVEX(LBLOCK(ICNTOT),c8name,NCHAR) - - ICNTOT = ICNTOT + NCHAR - ENDIF -C - LBLOCK(ICNTOT) = COMMA - ICNTOT = ICNTOT + 1 -C -C . . . . . . . . . . . . . THAT FINISHED THE STATION NAME, . . . -C -C ...THE SOLID OR HOLLOW STATION SYMBOL IS PASSED VIA THE SKY COVER. -C ... MOVE 1 CHAR FROM c1stncirc INTO LBLOCK(ICNTOT) ... - CALL XMOVEX(LBLOCK(ICNTOT),c1stncirc,1) - - ICNTOT = ICNTOT + 1 -C - LBLOCK(ICNTOT) = COMMA - ICNTOT = ICNTOT + 1 -C -C . . . . . . . . . . . . . THAT FINISHED THE STATION CIRCLE, . . . -C - IF(ND1.EQ.999) GO TO 426 -C ...SKIP WIND IF IT IS MISSING - CALL BIN2CH(ND1,CBCD,2,'A999') -C ... MOVE 2 CHARS FROM JBCD INTO LBLOCK(ICNTOT) ... - CALL XMOVEX(LBLOCK(ICNTOT),CBCD,2) - -C ... CALL EB2ASC(2,JBCD,LBLOCK(ICNTOT),IERR) - ICNTOT = ICNTOT + 2 -C ... MOVE 3 CHARS FROM IHFF1 INTO LBLOCK(ICNTOT) ... - CALL XMOVEX(LBLOCK(ICNTOT),IHFF,3) - -C ... CALL EB2ASC(3,IHFF1,LBLOCK(ICNTOT),IERR) - ICNTOT = ICNTOT + 3 - 426 CONTINUE -C -C . . . . . . THAT FINISHED THE WIND (BUT NOT THE DELIMITING COMMA) -C - IF(ITOUT .EQ. 9) THEN - IF((LVLDES .EQ. 22) .OR. (LVLDES .EQ. 24)) THEN -C ...FOR LVLS 22 AND 24 OF WIND ALOFT END AFOS STRING AFTER WIND - GO TO 432 !... JUMP OUT TO CLEAN-UP - ENDIF - ENDIF -C - LBLOCK(ICNTOT) = COMMA - ICNTOT = ICNTOT + 1 -C -C . . . . . . . THAT PUT DELIMITER COMMA AFTER THE DDFFF WIND GROUP -C - ITEMP=IAND(IOPTN,KZZZB) - IF(ITEMP.EQ.0) GO TO 428 -C ...SKIP HEIGHT IF OPTION WORD DOESN'T CALL FOR IT -C ... MOVE 3 CHARS FROM IHZZZ INTO LBLOCK(ICNTOT) ... - CALL XMOVEX(LBLOCK(ICNTOT),IHZZZ,3) - - ICNTOT = ICNTOT + 3 -C . . . . . THAT FINISHED THE HEIGHT (BUT NOT THE DELIMITING COMMA) -C - 428 CONTINUE -C -C ... TERMINATE THE SATWND REPORTS FOLLOWING THIS HEIGHT. -C - IF((KTTYP .EQ. 12) .OR. (KTTYP .EQ. 13)) GO TO 432 -C -C ... OTHERWISE, - LBLOCK(ICNTOT) = COMMA - ICNTOT = ICNTOT + 1 -C -C . . . . . . . THAT PUT DELIMITER COMMA AFTER THE ZZZ HEIGHT GROUP -C - ITEMP=IAND(IOPTN,KTTB) - IF(ITEMP.EQ.0) GO TO 429 -C ...SKIP TEMP IF OPTION WORD DOESN'T CALL FOR IT -C ... MOVE 3 CHARS FROM ihtt INTO LBLOCK(ICNTOT) ... - CALL XMOVEX(LBLOCK(ICNTOT),ihtt,3) - - ICNTOT = ICNTOT + 3 -C . . . THAT FINISHED THE TEMPERATURE (BUT NOT THE DELIMITING COMMA) -C - 429 CONTINUE -C ... FOR WINDS ALOFT, END AFOS STRING HERE - IF(ITOUT .EQ. 9) GO TO 432 -C -C ... TERMINATE SIRSOBS HERE. - IF(KTTYP .EQ. 11) GO TO 432 -C - LBLOCK(ICNTOT) = COMMA - ICNTOT = ICNTOT + 1 -C -C . . . . THAT PUT DELIMITER COMMA AFTER THE TTT TEMPERATURE GROUP -C - ITEMP=IAND(IOPTN,KDEWB) - IF(ITEMP.EQ.0) GO TO 431 -C ...SKIP DEW-POINT DEPRESSION IF OPTION WORD DOESN'T CALL FOR IT. - NDCHAR = LASTCH(IHDEWPT(1:4)) - IF(NDCHAR .NE. 0) THEN - CALL XMOVEX(LBLOCK(ICNTOT),ihdewpt,NDCHAR) - - ICNTOT = ICNTOT + NDCHAR - ENDIF - 431 CONTINUE -C -C . . . THAT FINISHED THE DEWPOINT (BUT NOT THE DELIMITING COMMA) -C - ITEMP = IAND(IOPTN,KFFFB) - IF(ITEMP .EQ. 0) GO TO 432 -C ...SKIP THE 12-HR HT CHANGE IF THAT FIELD IS NOT ON IN IOPTN AND -C ...TERMINATE THIS REPORT... - IF((ihhgtchg(1:4) .EQ. C4MISF(1:4)) .OR. - 1 (ihhgtchg(1:4) .EQ. C4LVRB(1:4))) THEN - GOTO 432 -C ...WHICH ALSO SKIPS THIS PARAMETER IF IT REPORTS MISSING -C ...OR LIGHT AND VARIABLE WINDS... - ENDIF - -C ... OTHERWISE FOLLOW THE DEW-POINT DEPRESSION WITH A COMMA. - LBLOCK(ICNTOT) = COMMA - ICNTOT = ICNTOT + 1 -C ... AND ADD TWO COMMAS FOR NO PRESENT WEATHER OR VISIBILITY. - LBLOCK(ICNTOT) = COMMA - LBLOCK(ICNTOT+1) = COMMA - ICNTOT = ICNTOT + 2 - - CALL XMOVEX(LBLOCK(ICNTOT),ihhgtchg,3) - -C ... CALL EB2ASC(3,ihhgtchg,LBLOCK(ICNTOT),IERR) - ICNTOT = ICNTOT + 3 -C -C . . . THAT FINISHED THE HEIGHT CHG (BUT NOT THE DELIMITING COMMA) -C -C - 432 CONTINUE -C -C DELETE TRAILING COMMAS AND IMBEDDED SPACES OR ILLEGAL CHARACTERS. -C - DO 435 I=1,10 - ISAVE = I - IF(LBLOCK(ICNTOT-I) .EQ. COMMA) THEN - GO TO 436 - ENDIF - 435 CONTINUE - - 436 CONTINUE - IF(ISAVE .EQ. 1) GO TO 437 -C ...FOR THEN THERE ARE NO TRAILING COMMAS... - I = ISAVE - 1 -C ...AND I NOW DENOTES THE NUMBER OF TRAILING COMMAS...UP TO NINE... - ICNTOT = ICNTOT - I -C ...WHICH DISCARDS THOSE UNWANTED BEASTIES... - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 437 CONTINUE - IMAX = ICNTOT - 1 - DO 438 I=ICNTOB,IMAX - ISAVE = I - IF(LBLOCK(I) .EQ. LITBLK) GO TO 439 - IF(LBLOCK(I) .EQ. LNULL) GO TO 439 - IF(LBLOCK(I) .EQ. LITPND) GO TO 439 -C ...TEST FOR OTHER ILLEGAL OR UNWANTED CHARACTERS HERE... - 438 CONTINUE - GO TO 4399 - - 439 CONTINUE -C ...WITH THE BUGGER SPOTTED, REMOVE IT AND CLOSE UP RANKS... - JMAX = ICNTOT - 2 - DO 4391 J=ISAVE,JMAX - LBLOCK(J) = LBLOCK(J+1) - 4391 CONTINUE - ICNTOT = IMAX - GO TO 437 -C . . . . . . . . . . . . . . . . . . . . . . . - - 4399 CONTINUE -C - LBLOCK(ICNTOT) = SEMICO - ICNTOT = ICNTOT + 1 - LBLOCK(ICNTOT) = CARRET - ICNTOT = ICNTOT + 1 - LBLOCK(ICNTOT) = LINFED - ICNTOT = ICNTOT + 1 - go to 999 -C -C ... which is end of one report to AFOS PLTFILE in LBLOCK() ... - 999 continue - return - end diff --git a/util/sorc/plotvpap.fd/goesxy.f b/util/sorc/plotvpap.fd/goesxy.f deleted file mode 100755 index 19758addd0..0000000000 --- a/util/sorc/plotvpap.fd/goesxy.f +++ /dev/null @@ -1,127 +0,0 @@ - SUBROUTINE GOESXY(WLONG0,DISSAT,SCALE,ALAT,WLONG,X,Y,IEXIT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: GOESXY GOES I/J FROM LAT/LONG -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 1997-01-07 -C -C ABSTRACT: THE (X,Y)-COORDINATES ON A PSEUDO-SATELLITE IMAGE IS -C COMPUTED FROM A GIVEN LATITUDE/LONGITUDE. IT IS ASSUMED THAT -C THE SATELITE IS TRULY GEOSTATIONARY OVER THE EQUATOR. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR: DAVID SHIMOMURA -C 89-04-18 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C 93-05-06 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-01-07 SHIMOMURA - CONVERT TO RUN ON CRAY -C -C USAGE: CALL GOESXY (WLONG0,DISSAT,SCALE,ALAT,WLONG,X,Y,IEXIT) -C -C INPUT ARGUMENT LIST: -C WLONG0 - THE MERIDIAN OF THE SUBSATELLITE POINT IN DEGREES WEST. -C DISSAT - THE DISTANCE FROM THE EARTH'S CENTER TO THE SATELLITE. -C - DISSAT IS EXPRESSED IN UNITS OF EARTH RADII. THE -C - EARTH RADIUS IS ASSUMED TO BE 6371.2 KM. -C SCALE - THE MAP REDUCTION SCALE IN MILLIONS. (SCALE = 25 IS -C - FOR A 1:25M MAP.) -C ALAT - LATITUDE OF THE GIVEN POINT IN DEGREES. (NEGATIVE FOR -C - SOUTHERN HEMISPHERE.) -C WLONG - LONGITUDE OF THE POINT IN DEGREES WEST. -C -C OUTPUT ARGUMENT LIST: -C X - THE X-COORDINATE ON THE MAP, IN INCHES, FROM THE CENTER -C Y - THE Y-COORDINATE ON THE MAP, IN INCHES, FROM THE -C EQUATOR. -C IEXIT - = 0 FOR NORMAL RETURN. -C = 1 IF POINT WON'T SHOW ON MAP. -C = 2 IF GIVEN AN OUT-OF-RANGE ARGUMENT. -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - REAL CNVINM - DATA CNVINM / 39.37 / -C ...CNVINM CONVERTS METERS TO INCHES. - REAL CNVRD - DATA CNVRD / 0.0174533 / -C ...CNVRD CONVERTS DEGREES TO RADIANS. - REAL DISMIN - DATA DISMIN / 2.0 / -C ...GROSS LOWER LIMIT TEST ON GIVEN DISSAT. - REAL REKM3 - DATA REKM3 / 6.3712 / -C ...THE RADIUS OF THE EARTH IN THOUSANDS OF KM. -C - IEXIT = 0 - X = 0.0 - Y = 0.0 - R = REKM3 * CNVINM / SCALE - DSRAT = DISSAT - IF(DSRAT .LE. DISMIN) GO TO 900 - DS = DSRAT * REKM3 * CNVINM / SCALE - XXLIM0 = R * R / DS - ALATR = ALAT * CNVRD -C -C ... IF THE VISIBLE HEMISPHERE INCLUDES THE GREENWICH MERIDIAN, -C ... SINCE THE LONGITUDE IS IN DEGREES WEST WE MUST ACCOUNT FOR THE -C ... DISCONTINUITY THERE. -C - ALONG = WLONG - IF(WLONG0 .GT. 270.0) GO TO 100 - IF(WLONG0 .LT. 90.0) GO TO 200 - GO TO 300 -C - 100 CONTINUE - IF(ALONG .GT. (WLONG0 - 270.0)) GO TO 300 - ALONG = 360.0 + ALONG - GO TO 300 - 200 CONTINUE - IF(ALONG .LT. (WLONG0 + 270.0)) GO TO 300 - ALONG = ALONG - 360.0 - GO TO 300 -C - 300 CONTINUE - DLONG = WLONG0 - ALONG - IF(ABS(DLONG) .LE. 90.0) GO TO 400 -C ...OR ELSE THIS POINT IS IN THE INVISIBLE HEMISPHERE. - GO TO 911 - - 400 CONTINUE - DLONGR = DLONG * CNVRD - XX = R * COS(ALATR) * COS(DLONGR) - IF(XX .LT. XXLIM0) GO TO 911 - YY = R * COS(ALATR) * SIN(DLONGR) - ZZ = R * SIN(ALATR) -C -C ... NOW (XX,YY,ZZ) IS THE TRUE POSITION ON THE EARTH'S SURFACE, -C ... GIVEN ONLY THAT THE EARTH IS A TRUE SPHERE. -C -C ... WHERE IS (XX,YY,ZZ) PROJECTED ON THE IMAGE PLANE, -C ... THAT IMAGE PLANE BEING THE PLANE PASSING THROUGH THE CENTER -C ... OF THE EARTH AND WHICH IS ORTHOGONAL TO THE LINE JOINING THE -C ... CENTER OF THE EARTH AND THE SATELLITE? -C - C1 = DS / (DS - XX) - ZPRIME = C1 * ZZ - YPRIME = C1 * YY - Y = ZPRIME - X = YPRIME - GO TO 999 -C - 900 CONTINUE -C ... COME HERE IF THE GIVEN DISSAT WAS OUT-OF-RANGE. - IEXIT = 2 - GO TO 999 -C - 911 CONTINUE -C ... COME HERE IF THE POINT IS HIDDEN FROM THE VISIBLE FACE. - IEXIT = 1 - GO TO 999 -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/gtnxtwrd.f b/util/sorc/plotvpap.fd/gtnxtwrd.f deleted file mode 100755 index 19a5a76992..0000000000 --- a/util/sorc/plotvpap.fd/gtnxtwrd.f +++ /dev/null @@ -1,305 +0,0 @@ - subroutine gtnxtwrd(line,lpstart,lpcurr,delims,ltr,word,ierror) -C ... copied ~/tools/getwordnb.f 19-Jun-1995/dss -C ... (which was last compiled on Dec 2 1993) -C ... in order to adapt to called from prs_keqv() -C ... to NOT increment "lp", but return with "lpcurr" -C ... pointing to last location interrogated; -C ... and to prepare it for CRAY -C -C ... -C ... copied subr getwordy.for 5-Dec-1991/dss -C ... in order to make a version that does not stop for a -C ... blank terminator. You can activate the blank by -C ... including it in delims. -C -C 2-Jul-1991/dss -C ... copied char function getwordx to make it a subroutine -C 23-mar-1990/dss -C ... To get one word out of the given line, starting at -C ... line(lp:lp) ... -C ... (after eliminating leading blanks out of the word.) -C ... GIVEN: -C ... (1) C*(*) LINE ... given character string (NULL-terminated) -C ... from which the next word is to be extracted. -C ... (2) I*4 lpstart ... Line-Pointer from which to scan for word -C ... User should initialize to =1, to start scan -C ... (3) C*(*) DELIMS ... NULL-terminated string of delimiters -C which are in addition to the default -C NEWLINE and NULL terminators. -C ... (4) -C ... gtnxtwrd ... to get word from line at lp and increment lp -C ... A version of getword that tests for additional delimiters -C ... which are presented in the NULL-terminated string -C ... named "delims"; the basic version tests for NULL and -C ... NEWLINE delimiters. -C ... Added a test for a special end-of-line config of ",-" -C ... just before the NULL which terminates the line -C ... which we are using as a continuation signal. -C ... CAUTION: Usually you would want to first call with lp=1; -C ... do not call with lp=0. -C ... CAUTION: Given line must be NULL terminated to stop the scan. -C ... CAUTION: You must allocate one more byte for your word than -C the text you expect, since I will insert a -C NULL terminator. -C -C ----------------------------------------------------------- -C ... ierror =1; destination word is not defined as a char -C string; -C =2; delimiters DELIMS was not defined as a -C character string; -C =3; source line was not defined as a character -C string; -C =4; source line was empty ... first char in line -C was a NULL char; -C = -1; Terminated on line-pointer LPCURR beyond -C end of line; -C --------------------------------------------------------- -C ... include '/usr2/shimomur/tools/global.def' -C - - logical lcheckout - parameter (lcheckout=.FALSE.) -C parameter (lcheckout=.TRUE.) - - character*(*) line - integer lpstart - integer lpcurr - character*(*) delims - character*1 ltr - character*(*) word - integer ierror -C - integer MXLNLP - integer MAXDELIM - integer wp - integer wp1 - integer lenword - - integer LBYLTR - integer llone - - character*1 lonech - - logical found_term - character*1 NULL - character*1 NEWLINE - character*1 BLANK -C -C - ierror = 0 - NULL = char(0) - NEWLINE = char(10) - BLANK = char(32) -C - lpcurr = lpstart - if(lpcurr .le. 0) lpcurr = 1 -C ... which resets lp to first char position if she forgot to -C ... initialize it. -C - ltr = NULL - lenword = len(word) - if(lenword .le. 0) go to 900 -C ... otherwise, results string "word" has a length ... -C ... initalize results to NULL ... - word = NULL -C -C . . . . To set maxdelim for limit of indexing thru delims . . . . - maxdelim = 0 - lendelims = len(delims) - if(lendelims .le. 0) go to 910 -C ... otherwise, arg delims was defined as a char string ... -C ... is it NULL terminated? - lwhere0 = index(delims,NULL) - if(lwhere0 .eq. 1) then -C ... NULL terminator is in first char position, so nothing in - maxdelim = 0 - - else if(lwhere0 .le. 0) then -C ... delims does not have a NULL terminator ... -C ... so, try to go with length of delims ... - maxdelim = lendelims - else -C ... the normal delimiters string, NULL terminated at lwhere0 - maxdelim = lwhere0 - 1 - endif -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . To set MXLNLP for limiting line scan . . . . . . . . -C -C PRINT *,' LINE=',LINE - MXLNLP = 0 - lenline = len(line) -C PRINT *, 'LENLINE=',LENLINE - if(lenline .le. 0) go to 920 -C ... line was not defined as a character string ... -C ... otherwise, line has a length. Is it NULL terminated? - limlp = index(line(1:lenline),NULL) -C PRINT *,'LIMLP=',LIMLP - if(limlp .eq. 1) then -C ... that means the NULL terminator is in first char position -C ... of the given line, so I can't do anything with this. - go to 930 - else if(limlp .le. 0) then -C ... there was no NULL terminator in the given line ... -C ... try to substitute a limit as a function of string length - MXLNLP = lenline - else -C ... the normal line string, NULL terminated at limlp - MXLNLP = limlp - 1 - endif -C PRINT *,'MXLNLP=',MXLNLP -C ... leaves here with MXLNLP pointing to the last character -C ... to be examined in the given line. -C PRINT *,'LPCURR=',LPCURR - if(lpcurr .gt. MXLNLP) go to 940 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - limcont = limlp - 2 -C - if(lcheckout) then - WRITE(6,115)lpcurr,lenword - 115 FORMAT(1H ,'gtnxtwrd:CALLED W/LP=',I5,' WORD DIMENSIONED',I5) - endif - - do while(line(lpcurr:lpcurr) .eq. BLANK) -C ... to skip leading blanks - lpcurr = lpcurr + 1 - enddo - - if(line(lpcurr:lpcurr) .eq. NEWLINE) then - word = NEWLINE//NULL - ltr = NEWLINE - if(lcheckout) then - WRITE(6,165)lpcurr - 165 FORMAT(1H ,'gtnxtwrd:Before finding word, hit NEWLINE ', - 1 'at LP=', I4) - endif - go to 800 - endif -C ... otherwise, we can begin scanning for next WORD ... - wp = 1 -C ... do while(wp .ne. lenword .and. lpcurr .le. limlp) - FOUND_TERM = .FALSE. - DO WHILE (.NOT. FOUND_TERM) - IF(lpcurr .GT. MXLNLP) then -C ... we have reached the end-of-given-line ... -C ... simulate hitting a NULL terminator ... - if(lcheckout) then - write(6,225)lpcurr - 225 format(1h ,'gtnxtwrd: reached end-of-line at LP=',I4, - 1 '; end like NULL') - endif - - found_term = .true. - ltr = NULL -C PRINT *,' FOUND_TERM IS TRUE.' - go to 244 - endif -C - lonech = line(lpcurr:lpcurr) -C - if(lonech .eq. NULL) then -C ... THIS SHOULD NEVER COME THIS WAY, SINCE MXLNLP IS -C ... BEFORE THE NULL TERMINATOR - found_term = .true. - ltr = NULL -C ... else if(lonech .eq. BLANK) then -C ... this is usual way out on BLANK terminator found ... -C ... found_term = .true. -C ... ltr = BLANK - else if(lonech .eq. NEWLINE) then - found_term = .true. - ltr = NEWLINE - else if(lpcurr .eq. limcont .and. - 1 line(lpcurr:lpcurr+1) .eq. ',-') then - found_term = .true. - ltr = NEWLINE - else -C ... test lonech for match against delims ... - if(maxdelim .gt. 0) then - do iter = 1,maxdelim - if(lonech .eq. delims(iter:iter)) then - found_term = .true. - ltr = delims(iter:iter) - go to 244 -C ... which jumped out of do upon delimiter_found - endif - enddo - endif -C ... this lonech does not match any of delims ... - endif -C - if(.not. found_term) then -C ... this lonech is not a delimiter, so stash it in word ... -C ... (unless results word space has been filled up, but -C ... we will throw away characters until -C ... terminator is found in the line) - IF(WP .LT. LENWORD) then - WORD(WP:WP) = lonech - wp = wp + 1 - endif - endif -C ... - 244 continue -C ... even for case of found_term, we will increment lp -C ... so that lp is pointing at beyond the terminator - lpcurr = lpcurr + 1 -C PRINT *,' 244, LPCURR=',LPCURR,' =',line(lpcurr:lpcurr) - IF (line(lpcurr:lpcurr).EQ. '=') THEN - lpcurr = lpcurr - 1 - ENDIF - enddo -C ... comes here only after delimiter has been found ... -C PRINT *,' OUT OFF WHILE-DO' - if(lcheckout) then - LBYLTR = MOVA2I(LTR) - LPM1 = lpcurr - 1 - WRITE(6,246)LBYLTR,LPM1 - 246 FORMAT(1H ,'gtnxtwrd:found delimiter =HEX ',Z2.2,' AT LP=',I3) - - llone = mova2i(lonech) - WRITE(6,255)lpcurr,wp,llone - 255 FORMAT(1H ,'gtnxtwrd:fell thru enddo with lp=',I4, - 1 ' wp=',I4,' lonech=hex',Z2.2) - endif - - 300 continue - word(wp:wp) = NULL -C ... WHICH INSERTED A NULL TERMINATOR IN RESULTING WORD ... - if(lcheckout) then - IF(WP.GT.1) THEN - WP1= WP - 1 - LBYLTR = MOVA2I(LTR) - WRITE(6,345)WORD(1:WP1),LBYLTR - 345 FORMAT(1H ,'gtnxtwrd:WORD="',A,'" ltr=hex ',Z2.2) - ENDIF - endif - -C PRINT *,' CHECK-END' -C ... WHEN IT'S FINISHED THE LINE POINTER IS POINTING AT THE -C ... DELIMITER THAT PAUSED THIS SCAN; SO IF I WANT IT TO POINT -C ... BEYOND THE TERMINATOR ON NEXT CALL, THEN I HAVE TO INCR -C ... IF(LTR .EQ. NULL .OR. LTR .EQ. NEWLINE)GO TO 800 -C ... WHICH WILL NOT LET IT MOVE ALONG IF WE ARE AT END OF LINE -C ... OTHERWISE, -C ... lpcurr = lpcurr + 1 - 800 CONTINUE - go to 999 - 900 continue - ierror = 1 - go to 999 - 910 continue - ierror = 2 - go to 999 - 920 continue - ierror = 3 - go to 999 - 930 continue - ierror = 4 - go to 999 - 940 continue -C ... called with LP pointing beyond the last character data in LINE - ierror = -1 - go to 999 -C - 999 continue - return - end diff --git a/util/sorc/plotvpap.fd/hgtdif.f b/util/sorc/plotvpap.fd/hgtdif.f deleted file mode 100755 index a043f7626d..0000000000 --- a/util/sorc/plotvpap.fd/hgtdif.f +++ /dev/null @@ -1,59 +0,0 @@ - subroutine hgtdif(ihgtra1,ihgtra2,idifra,jdimen,ndifs,iret_dif) -C 12-AUG-1996/DSS - INTEGER IHGTRA1(2,JDIMEN) - INTEGER IHGTRA2(2,JDIMEN) - INTEGER IDIFRA(2,JDIMEN) - INTEGER NDIFS - INTEGER IRET_DIF - - INTEGER IJBSIRCH - EXTERNAL IJBSIRCH !... DEFINE INT FUNCTION - - INTEGER NAME - INTEGER NOBS1,NOBS2 - INTEGER IERR1,IERR2 - INTEGER IHGTVAL1 - - SAVE - - IRET_DIF = 0 - NDIFS = 0 - - CALL ISORT2D(IHGTRA1,JDIMEN,NOBS1,IERR1) - - IF(IERR1 .GT. 0) THEN - IRET_DIF = 1 - GO TO 999 - ENDIF - - CALL ISORT2D(IHGTRA2,JDIMEN,NOBS2,IERR2) - - IF(IERR2 .GT. 0) THEN - IRET_DIF = 2 - GO TO 999 - ENDIF - - NDIFS = 0 - DO JSTN = 1,NOBS1 - NAME = IHGTRA1(1,JSTN) - IHGTVAL1 = IHGTRA1(2,JSTN) - JPTR = IJBSIRCH(NAME,IHGTRA2,2,NOBS2) - IF(JPTR .GT. 0) THEN - NDIFS = NDIFS + 1 - IDIFRA(1,NDIFS) = NAME - IDIFRA(2,NDIFS) = IHGTVAL1 - IHGTRA2(2,JPTR) -C ... THIS IS INACCURATE AT THE UNIT POSITION ... -C ... GIVEN DATA SHOULD HOLD MORE ACCURACY IN ORDER TO -C ... GET ACCURACY AT THE UNIT LEVEL. - - ENDIF - ENDDO - - IF(NDIFS .LT. JDIMEN) THEN - IDIFRA(1,NDIFS+1) = 0 - IDIFRA(2,NDIFS+1) = 0 - ENDIF - - 999 continue - RETURN - END diff --git a/util/sorc/plotvpap.fd/idtitl.f b/util/sorc/plotvpap.fd/idtitl.f deleted file mode 100755 index a99405e1c9..0000000000 --- a/util/sorc/plotvpap.fd/idtitl.f +++ /dev/null @@ -1,84 +0,0 @@ - SUBROUTINE IDTITL -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: IDTITL PULL TITLE FROM IDRA ARRAY -C PRGMMR: LIN ORG: W/NMC412 DATE: 97-02-10 -C -C ABSTRACT: SQUEEZE A TITLE OUT OF IDRA BY COPYING THE -C SIGNIFICANT CONTENTS OF IT WITHOUT DISTURBING IDRA ITSELF. -C THE COMPRESSED COPY WILL BE PLACED ON THE MAP VIA PUTLAB. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 88-07-25 HENRICHSEN DOCUMENT. -C 93-05-11 LILLY CONVERT SUB. TO FORTRAN 77 -C 97-02-10 LIN CONVERT SUB. TO CFT-77 -C -C USAGE: CALL IDTITL -C -C OUTPUT ARGUMENT LIST: -C COMMON - /KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C -C - COMMON /KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON /ADJUST/ IXADJ, IYADJ -C -C - CHARACTER*1 LNDRA(140) - CHARACTER*8 CNDRA(18) - CHARACTER*1 LIDRA(140) - CHARACTER*1 OO - - INTEGER*8 IWORK(14) - INTEGER IPRIOR(2) -C - DATA OO /Z'00'/ - - EQUIVALENCE(IWORK(1),LIDRA(1)) - EQUIVALENCE(CNDRA,LNDRA) -C - IDOTS = 400 + IXADJ - JDOTS = 80 + IYADJ - HEIGHT = 1.0 - ANGLE = 0.0 - IPRIOR(1) = 0 - IPRIOR(2) = 2 - ITAG = 0 -C -C Remove extra spaces from the title -C - DO K = 1,14 - IWORK(K) = IDRA(K+2) - END DO - call byteswap(IWORK(1), 8, 14) - NCHAR = 0 - ISP = 0 - DO K = 1,112 - IF(LIDRA(K) .NE. OO) THEN - IF(LIDRA(K) .EQ. ' ') THEN - ISP = ISP + 1 - IF(ISP .EQ. 1) THEN - NCHAR = NCHAR + 1 - LNDRA(NCHAR) = ' ' - END IF - ELSE - NCHAR = NCHAR + 1 - LNDRA(NCHAR) = LIDRA(K) - ISP = 0 - END IF - END IF - END DO -C -C - CALL PUTLAB(IDOTS,JDOTS,HEIGHT,CNDRA,ANGLE,NCHAR,IPRIOR,ITAG) - PRINT *,' IDTITL TITLE: ',LNDRA -C - RETURN - END diff --git a/util/sorc/plotvpap.fd/ijbsirch.f b/util/sorc/plotvpap.fd/ijbsirch.f deleted file mode 100755 index 1fbae9823b..0000000000 --- a/util/sorc/plotvpap.fd/ijbsirch.f +++ /dev/null @@ -1,129 +0,0 @@ - INTEGER FUNCTION ijbsirch(NAME,TABLE,IDIMEN,MXTAB) -C 6-Aug-1996/dss -C ... copied ~/cntr/ijbsirch.for into ~/plop/ijbsirch.f -C ... in order to adapt to searching for a matching name -C ... in an I*8 table(IDIMEN,J) in which the match-sought -C ... is in TABLE(1,J); NAME in HOLLERITH, left-justified -C ... with blank fill; -C ... TABLE(1,J) must be in sorted order. -C 1-JUL-1988/DSS -C ... TO LOOK FOR MATCHING NAME IN TABLE WHICH MUST BE IN -C .. ascii sorted ORDER. -C ... TYPE integer -C ... RESULT IS THE VALUE OF THE POINTER TO THE MATCHING ENTRY -C ... IN THE GIVEN TABLE. IF NO MATCH, THEN ijbsirch VALUE = 0 -C ... IF ERROR-RETURN, THEN ijbsirch VALUE IS SET TO NEGATIVE -C - integer NAME - integer TABLE(IDIMEN,MXTAB) -C -C - integer klanks - data klanks / X'2020202020202020' / - integer kbinzero - data kbinzero / 0 / - - LOGICAL LASTLP - LOGICAL LOFFRT - LOGICAL LOFFLW -C -C - ijbsirch = 0 !... init result to "not-found" - MDIS = 0 - IF(MXTAB .LE. 0) GO TO 920 - IF(IDIMEN .LE. 0) GO TO 930 - - if(name .eq. klanks) go to 900 - if(name .eq. kbinzero) go to 910 -C -C IF(MXTAB .GE. 10) GO TO 300 -C ... WHICH WILL DO BINARY SEARCH ONLY IF TABLE IS .GE. 10 ITEMS -C ... OTHERWISE, DO SEQUENTIAL COMPARE ... - DO ITA = 1,MXTAB - IF(NAME .EQ. TABLE(1,ITA)) THEN - MDIS = ITA - GO TO 400 !... found match at TABLE(1,MDIS) - ENDIF - END DO - GO TO 900 !... failed to find a match -C -C - 300 CONTINUE -C ... COMES HERE TO DO BINARY SEARCH ON TABLE ... - IBEGIN = 1 - MIDPT = (MXTAB/2) + 1 - INCR = MIDPT - II = 0 - LASTLP = .FALSE. - LOFFRT = .FALSE. - LOFFLW = .FALSE. - 330 CONTINUE - II = II + 1 - IF(INCR .LE. 1) LASTLP = .TRUE. -C ... OTHERWISE, WE ARE NOT DOWN TO SINGLE STEP OF FINAL COMPARE - INCR = (INCR+1) / 2 - IF(LOFFRT) GO TO 333 - IF(LOFFLW) GO TO 344 - MDIS = IBEGIN + MIDPT - 1 - IF(NAME .LT. TABLE(1,MDIS)) THEN - GO TO 333 - ELSE IF(NAME .EQ. TABLE(1,MDIS)) THEN -C ... FOUND EXACT MATCH, SO JUMP TO "FOUND" - GO TO 400 - ELSE -C ... WAS .GT. ... - GO TO 344 - ENDIF - 333 CONTINUE - LOFFRT = .FALSE. -C ... GO TO LOWER HALF AND BISECT IT ... - IF(LASTLP) GO TO 388 - MIDPT = MIDPT - INCR - IF(MIDPT .GT. 0) GO TO 330 -C ... OTHERWISE, SEARCH FELL BELOW LOWER END OF TABLE ... -C ... SET SWITCH LOFFLW AND LET IT JUMP BACK INTO TABLE ... - LOFFLW = .TRUE. - GO TO 330 -C - 344 CONTINUE - LOFFLW = .FALSE. -C ... GO TO UPPER HALF AND BISECT ... - IF (LASTLP) GO TO 388 - MIDPT = MIDPT + INCR - IF(MIDPT .LE. MXTAB) GO TO 330 -C ... OTHERWISE, SEARCH FELL BEYOND END OF TABLE ... -C ... SET SWITCH LOFFRT AND LET IT JUMP BACK INTO TABLE - LOFFRT = .TRUE. - GO TO 330 -C - 388 CONTINUE -C ... COMES TO 388 IF NO MATCH FOUND IN TABLE ... - GO TO 900 - -C - 400 CONTINUE -C ... COMES HERE IF MATCH WAS FOUND AT MDIS ... - ijbsirch = MDIS - GO TO 999 -C - 900 CONTINUE - ijbsirch = 0 - GO TO 999 - - 910 continue -C ... comes here if name = binary zero ... - ijbsirch = -1 - go to 999 - - 920 CONTINUE -C ... COMES HERE IF BAD MXTAB ARG (J-DIMENSION OF TABLE) WAS GIVEN - ijbsirch = -2 - GO TO 999 - 930 CONTINUE -C ... COMES HERE IF BAD IDIMEN ARG (I-DIMENSION OF TABLE) WAS GIVEN - ijbsirch = -3 - GO TO 999 -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/inidra.f b/util/sorc/plotvpap.fd/inidra.f deleted file mode 100755 index c097ca87f9..0000000000 --- a/util/sorc/plotvpap.fd/inidra.f +++ /dev/null @@ -1,144 +0,0 @@ - SUBROUTINE INIDRA(IMAP,ILVLT,KHMBS,ITOUT,KRUN1) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: INIDRA IDRA(1-19) -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-12 -C -C ABSTRACT: ASSIGNING INFORMATION TO IDRA(1-19) IE; MAP -C BACKGROUND, DATE/TIME, ETC... -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-25 STEVE LILLY DOCUMENT -C 93-05-12 LILLY CONVERT SUB. TO FORTRAN 77 -C -C USAGE: CALL INIDRA(IMAP,ILVLT,KHMBS,ITOUT,KRUN1) -C -C INPUT ARGUMENT LIST: -C IMAP - INTEGER WORD NUMBER OF UPPER AIR LEVELS TO -C - PROCESS -C ILVLT - INTEGER 10 WORD ARRAY CONTAINING THE LIST -C - OF LEVELS(S) TO PROCESS -C KHMBS - TABLE LISTING VARIOUS MAP BACKGROUNDS -C KRUN1 - RUN OPTION READ IN FROM THE FIRST DATA CARD -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C ITOUT - INTEGER FLAG WITH RANGE FROM 1 THRU 13 , USED -C - TO DETERMINE TYPE OF MAP BACKGROUND DATA IS TO BE -C - DISPLAYED ON. ITOUT IS A FUNCTION OF KRUN AND IS -C - SET IN SUB KOPTN. -C COMMON /BOBIN / LOCT(256),IDTBL(1539) -C COMMON / DATE / NYR,NMO,NDA,NHR -C COMMON /KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON /BOBIN / LOCT(256),IDTBL(1539) - COMMON / DATE / NYR,NMO,NDA,NHR - COMMON /KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C - INTEGER JBCD(2) - CHARACTER*12 IBCD -C - INTEGER IDMAP(50) - DATA IDMAP - 1 /-1, 50, 8H B,8H ,8H MM/D, - 2 8H D/YY,8H 12Z,8H ,8H 100M,8H B , - 3 8H UABP,8H LOT ,8H ,8H , - 4 8H NH40,8H 04 , - 5 Z'0000000B',Z'00000004',Z'4A0C100C', 31*Z'00000000'/ -C - INTEGER IHDTG(3) - CHARACTER*4 KHIQSY(2) - DATA KHIQSY /'UABP','LOT ' / - CHARACTER*8 KHMBS(29) -C - CHARACTER*4 KHRUN(4,23) - DATA KHRUN - * /'RADA','T ','NH40','04 ','OPNL',' ','NH40','04 ' - 1, 'OVR4','8OPN','NH40','04 ','FINA','L ','NH40','04 ', - 2 'LFM ',' ','NH25','01 ','PFAX',' ','NH40','05 ', - 3 'BKUP','PFAX','NH40','05 ','1DOT','FAX ','NH20','02 ', - 4 '2DOT','FAX ','NH20','02 ','SIRS','PLOT','NH40','04 ', - 5 'TROP','IC1 ','MR40','02 ','TROP','IC2 ','MR40','02 ', - 6 'US1P','LOT ','NH10','01 ','UABP','LOT ','NH40','04 ', - 7 'NHEM','I20 ','NH20','03 ','WIND','PLOT','PN26','01 ', - 8 'NHEM','I40 ','NH40','04 ','SHEM','I40 ','SH40','02 ', - 9 'UABP','LOT ','NH60','01 ','RAOB',' ','NH25','01 ', - A 'SFC ','PLOT','NH20','05 ','GOES','PLOT','GH26','01 ', - B 'GOES','PLOT','GH26','02 '/ -C ...WHERE KHRUN IS SEQUENCED ACCORDING TO KRUN1... -C - INTEGER MAPNO(7) - DATA MAPNO /80,81,82,83,84,85,86/ -C - DATA K000Z /Z'0000005A'/ - INTEGER MSK00FF - DATA MSK00FF /Z'00000000FFFFFFFF'/ - - CHARACTER*2 CYR,CMO,CDY,CHR - INTEGER IDRX(10) - CHARACTER*8 CWORK - - EQUIVALENCE (CWORK,IWORK) - - 100 FORMAT(A4) -C - DO 211 I = 1,50 - IDRA(I) = IDMAP(I) - 211 CONTINUE -C - IDRA(2) = MAPNO(IMAP) - call byteswap(KHMBS(ILVLT), 8, 1) - CALL GBYTES(KHMBS(ILVLT),IDRA(9),0,32,0,2) - READ(KHRUN(1,KRUN1),100) IDRA(11) - READ(KHRUN(2,KRUN1),100) IDRA(12) - call byteswap(IDRA(11), 8, 2) - IDRA(11) = ISHFT(IDRA(11),-32) - IDRA(12) = ISHFT(IDRA(12),-32) - IF(ITOUT .NE. 3) GO TO 222 -C ...OTHERWISE, THIS IS IQSY RUN... - READ(KHIQSY(1),100) IDRA(11) - READ(KHIQSY(2),100) IDRA(12) - call byteswap(IDRA(11), 8, 2) - IDRA(11) = ISHFT(IDRA(11),-32) - IDRA(12) = ISHFT(IDRA(12),-32) - 222 CONTINUE - READ(KHRUN(3,KRUN1),100) IDRA(15) - READ(KHRUN(4,KRUN1),100) IDRA(16) - call byteswap(IDRA(15), 8, 2) - IDRA(15) = ISHFT(IDRA(15),-32) - IDRA(16) = ISHFT(IDRA(16),-32) -C ...WHICH IS THE MAP BKRND NAME - IDRA(17) = ILVLT - IDRA(18) = KRUN1 - IDRA(19) = IDTBL(3) -C - - CALL BIN2CH(NYR,CYR,2,'A99') - CALL BIN2CH(NMO,CMO,2,'A99') - CALL BIN2CH(NDA,CDY,2,'A99') - CALL BIN2CH(NHR,CHR,2,'A99') - - PRINT *,' YR MT DY HR ',CYR,CMO,CDY,CHR - - IWORK = 0 - CWORK(5:8) = CMO // '/' // CDY(1:1) - IDRA(5) = IWORK - CWORK(5:8) = CDY(2:2) // '/' // CYR - IDRA(6) = IWORK - CWORK(5:8) = ' ' // CHR // 'Z' - IDRA(7) = IWORK - call byteswap(IDRA(8),8, 9) - PRINT 300, (IDRA(IR),IR=3,19) - call byteswap(IDRA(3), 8, 14) - print *, (IDRA(IR),IR=3,19) - 300 FORMAT(1H0, 10X, 14A8, 2X,Z16, 2X, Z16, 2X, Z16) - RETURN - END diff --git a/util/sorc/plotvpap.fd/interp.f b/util/sorc/plotvpap.fd/interp.f deleted file mode 100755 index a9fe57f8b0..0000000000 --- a/util/sorc/plotvpap.fd/interp.f +++ /dev/null @@ -1,120 +0,0 @@ - SUBROUTINE INTERP (FLD,imax,jmax,RESULT,STI,STJ,KQUAD) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: INTERP INTERPOLATE IN GRID FIELD TO STN I/J -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 1997-01-07 -C -C ABSTRACT: INTERPOLATE WITHIN THE GIVEN GRIDPOINT FIELD TO THE -C I/J OF THE STATION AND RETURN WITH THE ONE INTERPOLATED VALUE -C IN RESULT. THE GIVEN KQUAD ARGUMENT TELLS ME THE CONFIGURATION -C OF THE GRIDPOINTS SURROUNDING THE STATION I/J; WHETHER IT IS AT -C THE BOUNDARY; WHETHER IT IS AT A SLANTING BOUNDARY. FROM THE -C KQUAD VALUE I WILL PERFORM BI-QUADRATIC INTERPOLATION FOR INTERIOR -C POINTS; OR BI-LINEAR INTERPOLATION AT FIRST INTERIOR POINT AT EDGE -C OF GRID WITH A 4-POINT SQUARE AVAILABLE; OR AVERAGE OF 3 POINTS -C AT SLANTING BOUNDARY. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR: BEDIENT -C 97-01-07 SHIMOMURA: CONVERT TO RUN ON CRAY -C -C USAGE: CALL INTERP (FLD,imax,jmax,RESULT,STI,STJ,KQUAD) -C INPUT ARGUMENT LIST: -C REAL FLD(IMAX,JMAX) - THE GIVEN 2-DIMENSIONAL GRIDPOINT FIELD -C WITHIN WHICH I WILL INTERPOLATE; -C REAL STI,STJ - THE LOCATION OF THE POINT (IN GRID UNITS) -C TO WHICH I WILL INTERPOLATE; -C INT KQUAD - THE CONFIGURATION OF GRIDPOINTS SURROUNDING -C THE GIVEN LOCATION -C ... =1: LL slanting edge 3-pts triangle ... -C ... =2: LR slanting edge 3-pts triangle ... -C ... =3: UR slanting edge 3-pts triangle ... -C ... =4: UL slanting edge 3-pts triangle ... -C ... =5: 4-pt square for 1st interior square at edge... -C ... =6: 16-pt (4pt x 4pt) square for well inside ... -C -C OUTPUT ARGUMENT LIST: -C REAL RESULT - WILL CONTAIN THE INTERPOLATED VALUE AT THE -C LOCATION SPECIFIED BY (STI,STJ) -C -C -C REMARKS: -C CAUTION: ACCEPTABLE VALUES OF KQUAD= [1,2,3,4,5,6] -C IF YOU GIVE ME A NOT-ACCEPTABLE VALUE, THEN -C I WILL DO-NOTHING RETURN; WITH RESULT=0.0 -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ - -C ... - real FLD(imax,jmax) - real RESULT - real STI,STJ - integer KQUAD - - integer I,J - real FI,FJ - real XDELI,XDELJ - real ERAS(4) - real DI - - RESULT = 0.0 - I=STI - J=STJ - FI=I - FJ=J - XDELI=STI-FI - XDELJ=STJ-FJ - - IF(KQUAD .LE. 0) GO TO 999 - IF(KQUAD .GT. 6) GO TO 999 - - GO TO (1,2,3,4,5,6),KQUAD - -C ... case_1: LL slanting edge 3-pts triangle ... - 1 DI=(FLD(I+1,J)+FLD(I+1,J+1)+FLD(I,J+1))/3. - GO TO 10 - -C ... case_2: LR slanting edge 3-pts triangle ... - 2 DI=(FLD(I,J)+FLD(I,J+1)+FLD(I+1,J+1))/3. - GO TO 10 - -C ... case_3: UR slanting edge 3-pts triangle ... - 3 DI=(FLD(I,J)+FLD(I+1,J)+FLD(I,J+1))/3. - GO TO 10 - -C ... case_4: UL slanting edge 3-pts triangle ... - 4 DI=(FLD(I,J)+FLD(I+1,J)+FLD(I+1,J+1))/3. - GO TO 10 - -C ... case_5: 4-pt square for 1st interior square at edge... - 5 ERAS(1)=FLD(I,J) - ERAS(4)=FLD(I,J+1) - ERAS(2)=ERAS(1)+(FLD(I+1,J)-ERAS(1))*XDELI - ERAS(3)=ERAS(4)+(FLD(I+1,J+1)-ERAS(4))*XDELI - DI=ERAS(2)+(ERAS(3)-ERAS(2))*XDELJ - GO TO 10 - -C ... case_6: 16-pt (4pt x 4pt) square for well inside ... - 6 XI2TM=XDELI*(XDELI-1.)*.25 - XJ2TM=XDELJ*(XDELJ-1.)*.25 - J1=J-1 - DO 40 K=1,4 - ERAS(K) = FLD(I,J1) + (FLD(I+1,J1)-FLD(I,J1))*XDELI + - 1 (FLD(I-1,J1)-FLD(I,J1)-FLD(I+1,J1)+FLD(I+2,J1))*XI2TM - J1=J1+1 - 40 continue - - DI = ERAS(2) + (ERAS(3)-ERAS(2))*XDELJ + - 1 (ERAS(1)-ERAS(2)-ERAS(3)+ERAS(4))*XJ2TM - - 10 continue - RESULT=DI - GO TO 999 - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/koptn.f b/util/sorc/plotvpap.fd/koptn.f deleted file mode 100755 index 2c0e48af84..0000000000 --- a/util/sorc/plotvpap.fd/koptn.f +++ /dev/null @@ -1,332 +0,0 @@ - SUBROUTINE KOPTN(KRUN,IOPTN,NOLVSR,LVLSAL,LDZDTQ,LDZNEW,ITOUT, - X WATPAP,IDUMPT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: KOPTN SELECT PLOT -C PRGMMR:LIN ORG: W/NMC412 DATE: 97-01-29 -C -C ABSTRACT: READS DATA FILES AS INDICATED BY THE SWITCHES SET -C IN /LFILES/. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-25 STEVE LILLY ADD DOCUMENTATION BLOCK -C 93-05-11 LILLY CONVERT SUB. TO FORTRAN 77 -C 97-01-29 LIN CONVERT SUB. TO CFT-77 -C -C USAGE: CALL KOPTN(KRUN,IOPTN,NOLVSR,LVLSAL,LDZDTQ,LDZNEW -C & ITOUT,WATPAP,IDUMPT) -C -C INPUT ARGUMENT LIST: -C KRUN - IS THE RUN OPTION READ IN FROM DATA CARDS. -C IOPTN - INTEGER FLAG READ IN FROM 1ST DATA CARD. -C NOLVSR - INTEGER WORD NUMBER OF UPPER AIR LEVELS TO PROCESS. -C LVLSAL - ARRAY OF ALL LEVELS REQUESTED -C LDZDTQ - LOGICAL FLAG = .TRUE. FOR MIDCYC, SET IN SUB KOPTN. -C - = .FALSE. IF NOT MIDCYC. -C LDZNEW - LOGICAL FLAG = .TRUE. FOR MIDCYC, SET IN SUB KOPTN. -C - = .FALSE. IF NOT MIDCYC. -C WATPAP - REAL*8 NAME OF FILE TO READ BY SUB READPA. -C -C OUTPUT ARGUMENT LIST: -C ITOUT - INTEGER FLAG WITH RANGE FROM 1 THRU 13 , USED -C - TO DETERMINE TYPE OF MAP BACKGROUND DATA IS TO BE -C - DISPLAYED ON. ITOUT IS A FUNCTION OF KRUN AND IS -C - SET IN SUB KOPTN. -C IDUMPT - INTEGER 2 WORD ARRAY CONTAINING THE DUMP TIME -C - IN HOLLERTH IE. '10+4','0 '. -C COMMON /LACAR / LACAR -C COMMON /LFILES/ L14,L15,L18,L19,L20,L22 -C COMMON /MIDCYC/ MIDCYC -C COMMON /TIMES / NANJI(12) -C COMMON /WLONG0/ WLONG0 -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON /LACAR / LACAR - COMMON /LFILES/ L14,L15,L18,L19,L20,L22 - COMMON /MIDCYC/ MIDCYC - COMMON /TIMES / NANJI(12) - COMMON /WLONG0/ WLONG0 -C - CHARACTER*8 GRANPA - CHARACTER*8 NEWPAP - CHARACTER*8 UABPAP - DATA GRANPA /'GRANPA '/ - DATA NEWPAP /'NEWPAP '/ - DATA UABPAP /'UABPAP '/ - CHARACTER*8 WATPAP -C -C - INTEGER IDUMPT(2) - INTEGER LVLSAL(10) - INTEGER NINES - DATA NINES /9999/ -C - LOGICAL LCKOUT -C - LOGICAL L14 - LOGICAL L15 - LOGICAL L18 - LOGICAL L19 - LOGICAL L20 - LOGICAL L22 - LOGICAL LACAR - LOGICAL LDZDTQ - LOGICAL LDZNEW - LOGICAL MIDCYC - LOGICAL TMCHK -C - DATA INFILE /0/ - DATA KACAR /20/ - DATA KADUPA /19/ - DATA KARCFT /14/ - DATA KSATWN /22/ - DATA KTIROS /15/ - DATA KUABOG /18/ -C - 150 FORMAT(A8) - LCKOUT = .FALSE. - TMCHK = .FALSE. -C - IF(KRUN .NE. 4) GO TO 500 -C ...FALL THROUGH FOR UAB PLOT ON NH PE OCTAGON. - 300 CONTINUE - ITOUT = 3 - WATPAP(1:8) = UABPAP(1:8) - RETURN -C - 500 CONTINUE - IF(KRUN .NE. 5) GO TO 800 -C ...FALL THROUGH FOR LFM-NA SECTION ON AFOS WITH 105W VERTICAL. - ITOUT = 4 - WATPAP(1:8) = GRANPA(1:8) - GO TO 2500 -C - 800 CONTINUE - IF(KRUN .NE. 8) GO TO 900 -C ...COME HERE FOR 1-DOT ON NA SECTION -- LOOKS JUST LIKE 2-DOT. - ITOUT = 1 - GO TO 910 -C - 900 CONTINUE - IF(KRUN .NE. 9) GO TO 1000 -C ...THIS IS THE 2-DOT. - ITOUT = 2 - IF(.NOT. LACAR) GO TO 910 - WATPAP(1:8) = GRANPA(1:8) - GO TO 2500 - 910 CONTINUE - IF(.NOT. MIDCYC) LDZDTQ = .TRUE. - IF(.NOT. MIDCYC) LDZNEW = .TRUE. - WATPAP(1:8) = NEWPAP(1:8) - IF(IOPTN .NE. 1) RETURN - WATPAP(1:8) = GRANPA(1:8) - GO TO 2500 -C - 1000 CONTINUE - IF(KRUN .NE. 10) GO TO 1100 -C ...INITIALIZE HERE FOR A TIROS PLOT. - ITOUT = 6 - WATPAP(1:8) = GRANPA(1:8) - GO TO 2500 -C - 1100 CONTINUE - IF(KRUN .NE. 11) GO TO 1500 -C ...FALL FOR TROPIC PLOT ON MERC. - ITOUT = 7 - WATPAP(1:8) = GRANPA(1:8) - GO TO 2500 -C - 1500 CONTINUE - IF(KRUN .NE. 15) GO TO 1700 -C ...INITIALIZE FOR 1:20M NH. - ITOUT = 8 - WATPAP(1:8) = GRANPA(1:8) - GO TO 2500 -C - 1700 CONTINUE - IF(KRUN .NE. 17) GO TO 1800 -C ...FALL FOR GENERALIZED NH 1:40M PLOT. - ITOUT = 10 - WATPAP(1:8) = GRANPA(1:8) - GO TO 2500 -C - 1800 CONTINUE - IF(KRUN .NE. 18) GO TO 1900 -C ...AND THIS IS FOR GENERALIZED 1:40M SH PLOT. - ITOUT = 5 - WATPAP(1:8) = GRANPA(1:8) - GO TO 2500 -C - 1900 CONTINUE - IF(KRUN .NE. 19) GO TO 2200 -C ...HERE I PLOT THE NH 1:60M. - ITOUT = 11 - WATPAP(1:8) = GRANPA(1:8) - LCKOUT = .TRUE. - GO TO 2500 -C - 2200 CONTINUE - IF(KRUN .NE. 22) GO TO 2300 -C ...THIS IS A PSEUDO-GOES WEST PROJECTION. - ITOUT = 12 - WLONG0 = 135.0 - WATPAP(1:8) = GRANPA(1:8) - GO TO 2500 -C - 2300 CONTINUE - IF(KRUN .NE. 23) GO TO 2400 -C ...THIS IS A PSEUDO-GOES EAST PROJECTION. - ITOUT = 13 - WLONG0 = 75.0 - WATPAP(1:8) = GRANPA(1:8) - GO TO 2500 -C - 2400 CONTINUE - IF((KRUN .GT. 0) .AND. (KRUN .LT. 24)) GO TO 300 -C ...DEFAULT TO 300 FOR A REASONABLE KRUN REQUEST. - PRINT 2450,KRUN - 2450 FORMAT(1H ,'KRUN = ',I4,' ... OUT OF RANGE.') - STOP 2100 -C - 2500 CONTINUE -C -C COME HERE TO READ DATA FILES AS INDICATED BY THE -C SWITCHES SET IN /LFILES/. -C -C FT19 ... ADPUPA -C - IF(.NOT. L19) GO TO 2600 - INFILE = KADUPA - IOPCLO = 2 - CALL RDAFIL(INFILE,NOLVSR,LVLSAL,KRUN, - 1 IOPCLO,LCKOUT,IOPENQ,IERROR) - IF(NANJI(5) .EQ. NINES .OR. NANJI(6) .EQ. NINES) GO TO 2600 - IDUMPT(1) = NANJI(5) - IDUMPT(2) = NANJI(6) - TMCHK = .TRUE. -C - 2600 CONTINUE -C -C FT14 ... AIRCFT -C - IF(.NOT. L14) GO TO 2700 - IF(INFILE .NE. 0) GO TO 2610 - IOPCLO = 2 - GO TO 2620 - 2610 CONTINUE - IOPCLO = 0 - 2620 CONTINUE - INFILE = KARCFT - CALL RDAFIL(INFILE,NOLVSR,LVLSAL,KRUN, - 1 IOPCLO,LCKOUT,IOPENQ,IERROR) - IF(IOPCLO .EQ. 0) GO TO 2700 - IF(TMCHK) GO TO 2700 - IF(NANJI(5) .EQ. NINES .OR. NANJI(6) .EQ. NINES) GO TO 2700 - IDUMPT(1) = NANJI(5) - IDUMPT(2) = NANJI(6) - TMCHK = .TRUE. -C - 2700 CONTINUE -C -C FT20 ... ACAR -C - IF(.NOT. L20) GO TO 2800 - IF(INFILE .NE. 0) GO TO 2710 - IOPCLO = 2 - GO TO 2720 - 2710 CONTINUE - IOPCLO = 0 - 2720 CONTINUE - INFILE = KACAR - CALL RDAFIL(INFILE,NOLVSR,LVLSAL,KRUN, - 1 IOPCLO,LCKOUT,IOPENQ,IERROR) - IF(IOPCLO .EQ. 0) GO TO 2800 - IF(TMCHK) GO TO 2800 - IF(NANJI(5) .EQ. NINES .OR. NANJI(6) .EQ. NINES) GO TO 2800 - IDUMPT(1) = NANJI(5) - IDUMPT(2) = NANJI(6) - TMCHK = .TRUE. -C - 2800 CONTINUE -C -C FT22 ... SATWND -C - IF(.NOT. L22) GO TO 2900 - IF(INFILE .NE. 0) GO TO 2810 - IOPCLO = 2 - GO TO 2820 - 2810 CONTINUE - IOPCLO = 0 - 2820 CONTINUE - INFILE = KSATWN - CALL RDAFIL(INFILE,NOLVSR,LVLSAL,KRUN, - 1 IOPCLO,LCKOUT,IOPENQ,IERROR) - IF(IOPCLO .EQ. 0) GO TO 2900 - IF(TMCHK) GO TO 2900 - IF(NANJI(5) .EQ. NINES .OR. NANJI(6) .EQ. NINES) GO TO 2900 - IDUMPT(1) = NANJI(5) - IDUMPT(2) = NANJI(6) - TMCHK = .TRUE. -C - 2900 CONTINUE -C -C FT15 ... TIROS -C - IF(.NOT. L15) GO TO 3000 - IF(INFILE .NE. 0) GO TO 2910 - IOPCLO = 2 - GO TO 2920 - 2910 CONTINUE - IOPCLO = 0 - 2920 CONTINUE - INFILE = KTIROS - CALL RDAFIL(INFILE,NOLVSR,LVLSAL,KRUN, - 1 IOPCLO,LCKOUT,IOPENQ,IERROR) - IF(IOPCLO .EQ. 0) GO TO 3000 - IF(TMCHK) GO TO 3000 - IF(NANJI(5) .EQ. NINES .OR. NANJI(6) .EQ. NINES) GO TO 3000 - IDUMPT(1) = NANJI(5) - IDUMPT(2) = NANJI(6) - TMCHK = .TRUE. -C - 3000 CONTINUE -C -C FT18 ... BOGUS -C - IF(.NOT. L18) GO TO 3100 - IF(INFILE .NE. 0) GO TO 3010 - IOPCLO = 3 - GO TO 3020 - 3010 CONTINUE - IOPCLO = 1 - 3020 CONTINUE - INFILE = KUABOG - CALL RDAFIL(INFILE,NOLVSR,LVLSAL,KRUN, - 1 IOPCLO,LCKOUT,IOPENQ,IERROR) - IF(IOPCLO .EQ. 1) GO TO 3100 - IF(TMCHK) GO TO 3100 - IF(NANJI(5) .EQ. NINES .OR. NANJI(6) .EQ. NINES) GO TO 3100 - IDUMPT(1) = NANJI(5) - IDUMPT(2) = NANJI(6) - TMCHK = .TRUE. -C - 3100 CONTINUE -C -C I MAY STILL NEED TO CLOSE GRANPA. -C - IF(IOPENQ .EQ. 0) GO TO 3200 - IOPCLO = 4 - CALL RDAFIL(INFILE,NOLVSR,LVLSAL,KRUN, - 1 IOPCLO,LCKOUT,IOPENQ,IERROR) -C - 3200 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/lgnd1d.f b/util/sorc/plotvpap.fd/lgnd1d.f deleted file mode 100755 index 3a49052c8b..0000000000 --- a/util/sorc/plotvpap.fd/lgnd1d.f +++ /dev/null @@ -1,59 +0,0 @@ - SUBROUTINE LGND1D -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: LGND1D PUT RUN TIME IN TITLE -C PRGMMR: LIN ORG: W/NMC412 DATE: 97-02-10 -C -C ABSTRACT: ADDS A SPECIAL LEGEND TO PLOTTED -C CHARTS IDENTIFYING THEIR TIME OF EXECUTION OR RUN TIME. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-21 HENRICHSEN ADD DOCUMENTATION BLOCK AND -C REPLACE ENCODE WITH FFI2A -C 93-05-05 LILLY CONVERT SUB. TO FORTRAN 77 -C 97-02-10 LIN CONVERT SUB. TO CFT 77 -C -C USAGE: CALL LGND1D -C -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON /ADJUST/ IXADJ, IYADJ -C - CHARACTER*4 TITLE(4) - DATA TITLE /'#CLO', 'CK T', 'IME ', '####'/ -C - INTEGER ITIME(8) -C - CHARACTER*1 ICYCLE - INTEGER IPRIOR(2) -C - NCYCLE = 0 - CALL W3UTCDAT(ITIME) -C - IHRPMM = ITIME(5) - IHRPMM = IHRPMM*100 + ITIME(6) -C CALL INT2CH(IHRPMM,TITLE(4),4,'L999') - CALL BIN2CH(IHRPMM,TITLE(4),4,'A999') -C - ANGLE = 0.0 - HEIGHT = 1.0 - IDOTS = 400 + IXADJ - IPRIOR(1) = 0 - IPRIOR(2) = 2 - ITAG = 0 - JDOTS = 65 + IYADJ - NCHAR = 16 -C - CALL PUTLAB(IDOTS,JDOTS,HEIGHT,TITLE(1),ANGLE,NCHAR,IPRIOR,ITAG) - PRINT *,' LGND1D TIME OF DAY FOR MAP TITLE is ',TITLE -C - RETURN - END diff --git a/util/sorc/plotvpap.fd/main.f b/util/sorc/plotvpap.fd/main.f deleted file mode 100755 index f07aa10836..0000000000 --- a/util/sorc/plotvpap.fd/main.f +++ /dev/null @@ -1,448 +0,0 @@ -C DATA SET PLOTVPAP AT LEVEL 002 AS OF 02/21/97 -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: PLOTVPAP -C PRGMMR: SAGER ORG: NP12 DATE: 2002-02-06 -C -C ABSTRACT: SELECTS UPPER AIR DATA FOR PLOTTING AND OUTPUTS IT TO -C FT55 WHICH IS THEN PASSED TO A CODE USING BEDIENT'S CONTOURING -C PACKAGE. DATA CAN BE PLOTTED AT VARIOUS SCALES AND UTILIZING A -C NUMBER OF INPUT FILES. OPTIONS ARE EXTERNALLY CONTROLLED AND -C WHILE SOME FLEXIBILITY EXISTS, WITHIN A GIVEN OPTION THE CODE -C ANTICIPATES THAT AN OPERATIONAL-TYPE PRODUCT IS DESIRED. -C WHEN THE AFOS PARAMENTER IS TURNED ON IN THE PARM FIELD AFOS -C PLOTFILE PRODUCTS ARE OUTPUT TO FT24F001. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN. -C 88-07-22 GLORIA DENT CHANGE THE AFOS ZOOM THRESHOLD OF 72273 (FT. -C HUACHUCA) FROM ZOOM 1 TO ZOOM 16. CHANGE THE AFOS ZOOM -C THRESHOLD OF 76458 (MAZATLAN,MX) FROM ZOOM 3 TO ZOOM 1 -C 88-07-27 GLORIA DENT CHANGE THE W3FK00-W3FK11 TO W3FK41-W3FK51.. -C 88-08-11 GLORIA DENT MOVE SOME OF THE PLOTTED DATA OF STATION -C 72273 (FT. HUACHUA) SO THAT IT WILL NOT OVERPLOT -C STATION 72274 (TUCSON) ON THE VARIAN CHART. -C 88-12-14 GLORIA DENT PUT IN LOGIC FOR ADPUPA FILE(FT19) TO ALLOW -C ONLY + OR - 2 HOURS OFFTIME FOR REPORTS OF TYPE 11,TYPE -C 21,TYPE 22, TYPE 23 -C 89-05-10 HENRICHSEN CLEAN UP PARM FIELD, ADD NEW SUBS., -C CLEAN UP AND DOCUMENT SOME OLD SUBS, -C ADD DUMP TIME TO TILE OF AFOS PLOTFILE MAPS. -C 89-05-23 HENRICHSEN FIX AN ERROR IN SUB CKPARM. -C 89-05-31 DENT CHANGE SUB AFORMT TO INCLUDE MINUTE IN -C IN AFOS COMMS HEADER ( 2-DOT PLOTFILE ONLY). -C 89-07-20 GLORIA DENT CHANGE THE AFOS ZOOM THRESHOLD OF 74732 -C (HOLLOMAN A.F. BASE,N.M.)FROM ZOOM 4-1 TO ZOOM 16-1. -C 89-07-20 STEVE LILLY ADD LAT/LONG FOR STATIONS WHICH ARE MOVED -C 89-07-21 STEVE LILLY ADD SUB TRUIJ TO PROGRAM -C 89-11-03 STEVE LILLY ADD SUB MOVOBS TO PROGRAM AND -C ADD LOGIC WHICH PREVENTS SPECIFIED MILITARY UPPER -C AIR REPORTS FROM BEING PLOTTED AT THE TOP OF THE -C VARIAN PRODUCT. -C 89-12-26 GLORIA DENT INITIALIZE RETURN EXIT BEFORE THE FIRST -C STATEMENT TO PREVENT FALSE PLOTTING OF NON-PIBAL -C REPORTS. -C 90-04-23 STEVE LILLY FIX AN ERROR IN SUB B4PLOT. ADD -C LOGIC WHICH WILL PREVENT REPEATING PREVIOUS OBS -C FOR LEVELS WHICH ARE MISSING. -C 90-09-16 RALPH JONES BYPASS TIME CHECK ON 21Z CANTON SOUNDING. -C 90-10-02 HENRICHSEN FIX AN ERROR IN SUB GETPIL. -C 90-11-02 HENRICHSEN LINK IN NEW W3FQ06 THAT WILL SAVE A COPY -C OF THE AFOS PLOT FILE FOR CONVERTING TO -C AWIPS FORMAT. -C ADD CONSOL MESSAGE INDICATING NUMBER AND -C NAMES OF AFOS PLOTFILE MAPS MADE. -C LINK IN NEW W3FQ06 THAT HAS NEW OPTIONS -C TO MAKE A COPY OF THE AFOS PLOTFILE PRIOR -C POSTING FOR TRANSMISSION AVAILABILITY. -C 93-05-10 LILLY CONVERTED SUB. TO FORTRAN 77. -C 95-07-12 LILLY MOVES THE LOCATION OF THE "DATA CUT OFF TIME" -C FROM THE YUCATAN TO THE LOWER LEFT HAND CORNER. THIS -C MOVE PREVENTS THE "DATA CUT OFF TIME" FROM OVER- -C WRITING STATION 76595 (CANCUM). -C 97-01-28 LIN CONVERTED TO CFT-77 -C 97-02-11 LIN FIX THE BUGS AND PLOT NH AND SH OBS. -C 97-02-21 LIN ADD TROPIC AREA PLOTS INTO THE CODE. -C 97-03-04 LIN ADD AIR CRAFT AND SAT. WIND INTO THE PLOTS. -C 97-03-36 LIN MODIFY TO PLOT 250MB PLOTTED DATA ON NH2003. -C 98-04-17 SAGER CONVERT TO F90. ADD Y2K SUBROUTINES. -C ADD TEMPS TO AIRCRAFT REPORTS ON 1:20 MILLION -C 99-07-25 SAGER CONVERT TO IBM SP -C -C USAGE: -C INPUT FILES: -C PARM - THE PARM DIRECTS THE PLOT OPTIONS. -C - SAMPLE PARM FIELD: -C - ('NUMF=XX,ACAR=ON,MIDC=ON,TSW1=ON,TSW2=ON,' -C - 'AFOS=ON,SEND=ON,CARD=ON,MARG=ON') -C - THE INDICATED FLAGS HAVE THESE MEANINGS: -C - NUMF=XX WHERE XX DEFINE A TWO-DIGET NUMBER USED TO -C - OVERRIDE THE OPERATIONAL CONVENTIONS SEE REMARKS. -C - ACAR=ON SIGNALS THE ACAR OPTION -C - MIDC=ON ACTIVATES THE MID-CYCLE OPTION -C - TSW1=ON TELLS RDSOLD TO BYPASS SOME DATE/TIME CHECKS. -C - TSW2=ON TELLS RDSOLD TO BYPASS SOME DATE/TIME CHECKS. -C - AFOS=ON MAKES THE AFOS PLOTFILE. -C - SEND=ON SENDS THE AFOS PLOTFILE. -C - CARD=ON TELLS W3FQ06 TO READ A DATA CARD -C - MARG=ON TURN ON MARGEN PLOTTING OF SOME SELECTED -C - STATIONS SO AS TO AVOID OVER PLOTTING. -C - THIS IS A FAX/VARION OPTION ONLY. -C FT05F001 - DATA CARDS, INPUT TO DETERMINE PLOTTING OPTION. -C - SEE REMARKS. -C FT42F001 - USUALLY AIRCFT DATA ...PARM VALUE TO FORCE PLOT IS 2. -C FT44F001 - USUALLY TIROS DATA ...PARM VALUE TO FORCE PLOT IS 8. -C FT18F001 - USUALLY BOGUS DATA ...PARM VALUE TO FORCE PLOT IS 16. -C FT41F001 - USUALLY ADPUPA DATA ...PARM VALUE TO FORCE PLOT IS 1. -C FT20F001 - USUALLY ACAR DATA ... PARM VALUE TO FORCE PLOT IS 32. -C FT43F001 - USUALLY SATWND DATA ... PARM VALUE TO FORCE PLOT IS 4. -C FT26F001 - A LIST OF STATIONS FOR POSSIBLE MARGIN PLOTTING AT TOP. -C FMANL - PROVIDES 1000MB HTS FOR TIROS PLOT ON LFM MAPS. -C ANL1 - PROVIDES 1000MB HTS FOR TIROS PLOT AT 1:40M OVER NH. -C ANL5 - PROVIDES 1000MB HTS FOR TIROS PLOT AT 1:40M OVER SH. -C GES - PROVIDES BACKUP 1000MB HTS FOR TIROS AT 1:40M OVER NH. -C NEWPAP - PROVIDES ADDITIONAL UPPER-AIR DATA (OPTION DEPENDENT). -C OLDPAP - 12-HR OLD NEWPAP ... USED TO COMPUTE HT CHANGES. -C FT50F001 - USED TO DETERMINE AFOS PIL NOS. FOR PLOTFILE OUTPUT. -C - THE ABOVE FILES WILL NOT ALL BE USED IN ANY GIVEN -C - EXECUTION OF THIS PROGRAM. -C -C -C OUTPUT FILES: -C FT06F001 - PRINT FILE. -C FT24F001 - HOLDS PLOTFILE OUTPUT FOR AFOS. -C FT28F001 - HOLDS A COPY OF PLOTFILE OUTPUT THAT WILL BE -C - CONVERTED TO AWIPS FORMAT BY ANOTHER JOB STEP. -C FT55F001 - HOLDS PLOTTED DATA PRINT FOR ASSIMILATION BY BEDIENT. -C GRANPA - TEMPORARY STORAGE AREA, SERVES AS INPUT FILE TOO. -C BACKUP - USED ALSO TO SEND THE AFOS PLOTFILE MAPS. -C -C SUBPROGRAMS CALLED: -C UNIQUE: - ACPROC AFPLTF AFORMT APLGND AFZOOM B4PLOT -C - CKPARM DATIT DEWPT DIXIE FRMSG1 GEOHGT -C - GLSYLO GOESXY IDTITL INIDRA INTERP -C - KIRK KNIT OPTIN LGNDID LKTBLS MAPLOP -C - MERCXY MFIELD MOVEID MOVOBS OPOINT -C - PACKOB PLTDAT PNANIJ PRESOR PUTLAB READPA -C - REDADP REPORT DRAFIL RDCAR1 RDCAR2 RDDATE -C - RDSIRS RDSOLD SETCAR SETFLG SETUP SKEIL -C - SORTEM TBOUND TEMPER TITLED TITLEJ TITLEN -C - TITLES WIND -C LIBRARY: -C COMMON - CONSOL FFA2I -C W3LIB - W3AI01 W3AI02 W3AI14 W3AI15 W3AI24 W3AI35 -C - W3AI39 W3AG09 W3AG15 W3AK19 W3AQ03 W3AQ09 -C - W3AQ13 W3AS00 W3AS02 W3AS03 W3FB00 W3FB02 -C - W3FB04 W3FK40 W3UTCDATW3FQO3 W3FQ06 W3FQ09 -C - W3FA15 W3FT01 W3TAGB W3TAGE -C GRAPHICS - DAYOWK DSHIFT EB2ASC ICALCU ISP2EB -C - MOVCH TRANSA TRUIJ TRULL UPDATR -C - WNDBRK INT2CH -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C = 1 - AFOS PLOTFILE DATA NOT SENT. -C = 2 - INPUT DATA CARDS COULD NOT BE DECIPHERED. -C -C REMARKS: NOTE BE SURE THAT IVERSN ARRAY IS UPDATED WHEN CODE IS -C UPDATED. -C INTEGER IVERSN(9) /'1600',',145','0,00','000Z', -C 1 ',WD4','12/D','KPH/','9.L0', -C 2 ZF25E0D0A/ -C THE NUMF=XX FLAGS ARE DESCRIBED BELOW: -C XX DEFINE A TWO-DIGIT NUMBER USED TO OVERRIDE THE OPERATIONAL -C CONVENTIONS REGARDING WHICH FILES ARE PLOTTED UNDER A GIVEN -C KRUN OPTION. IF THESE POSITIONS ARE '00' OR MISSING, -C KRUN ALONE WILL MAKE THIS DETERMINATION. OTHERWISE THESE -C NUMBERS ARE INTERPRETED THUSLY: -C 1 PLOT FT19 (ADPUPA) -C 2 PLOT FT14 (AIRCFT) -C 4 PLOT FT22 (SATWND) -C 8 PLOT FT15 (TIROS) -C 16 PLOT FT18 (BOGUS) -C 32 PLOT FT20 (ACAR) -C -C THESE VALUES ARE ADDITIVE. FOR EXAMPLE, 13 MEANS PLOT FT19, -C FT22, AND FT15. -C THIS PROGRAM HAS MANY OPTIONS, CONTROLLED BY DATA CARDS, EACH WITH -C A PRE-DETERMINED SET OF INPUT FILES FROM WHICH TO PLOT DATA. THE -C CODE ALSO RECOGNIZES THE ABOVE-INDICATED PARM VALUES (WHICH ARE -C ADDITIVE) AS PARTIAL OVERRIDES TO THOSE DATA CARDS. FOR EXAMPLE, -C THE 2-DOT OPTION WITH NO PARM VALUE SET WILL YIELD A PLOT OF FT14, -C FT19, AND FT22 DATA. IF ONE DESIRED TO PLOT TIROS DATA AS WELL, ONE -C SHOULD SET A PARM VALUE OF 15 (1+2+4+8). SETTING THE PARM SWITCH -C OVERRIDES THE FILE SELECTION BASED ON THE DATA CARDS, AND THIS -C SETTING PLOTS DATA FROM ALL FOUR DESIRED FILES. -C THIS PROGRAM DOES NOT BY ITSELF DISPLAY FAX DATA. IT -C MUST BE FOLLOWED BY A DISPLAY PROGRAM UTILIZING BEDIENT'S CNTR -C PACKAGE. THE COMMONLY USED FOLLOW-UP PROGRAM IS SCHNURR'S -C PEPFAX. -C MODIFIED JAN., 1984 TO ADD ACAR (FT20) FILE PLOTTING OPTION. -C MODIFIED DEC., 1984 TO ADD 2 MORE MANDITORY LEVELS FOR PLOTTING. -C 400 AND 150 MB CAN NOW BE PLOTTED--150MB WILL BE RUNNING -C OPERATIONALLY 1/9/85 IN THE 2-DOT PACKAGE. -C MODIFIED MAY 1986 TO RID CODE OF ASYNCHRONOUS I/O. -C MODIFIED JULY 1987 TO SET ZOOM THRESHOLD 4:1 AT STATION 72402 -C (WALLOPS ISLAND). SEE SUB B4PLOT. -C MODIFIED SEPTEMBER 1987 TO INCLUDE THE BLOCK DATA SUBPROGRAM -C TO INITIALIZE LABELED COMMON /LKTLBS/ THUS ELIMINATING THE -C NEED TO "EXPLICITLY" LINK EDIT WITH ANY CONTOUR(CNTR) PACKAGE. -C SEE SUB PUTLAB IN THIS SOURCE. G.R. DENT...09/09/87... -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM SP -C -C$$$ -C - COMMON /BOBIN / LOCT(256),IDTBL(1539) - COMMON /CHKOUT/ NITEM - COMMON /CIDOBS/ RIDOBS(200) - COMMON / DATE / NYR,NMO,NDA,NHR - COMMON /IAFOS /NUMAFS,NAMPIL(10),LVERSN,AFOS,SEND,CARD,MARG,PNCH -C* COMMON /ISPACE/ IDREC(6),NDATA(3,10001) - COMMON /JSPACE/ IDREC(6),NDATA(3,10001) - COMMON /KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON /LEVEL / NLEVEL,LCNTR - COMMON /PACKRA/ DBLPKD(6) - COMMON /ROBIN / LCT1(256),IDTB1(1539) - COMMON /SOBIN / LCT2(256),IDTB2(1539) - COMMON /TIMES / NANJI(12) - COMMON /TIMET / NANJK(2) -C COMMON / / SDATA(3,10001) -C - CHARACTER*8 AFSMSG(07) - DATA AFSMSG /'NWS,MADE', ' AND SEN', 'T XX OF ', - 1 'XX AFOS ', '2-DOT PL', 'OTFILE M', - 1 'APS: '/ - CHARACTER*8 AFSPIL(07) - DATA AFSPIL /'NWS,THEY', ' ARE ', ' ', - 1 ' ', ' ', ' ', - 1 ' :'/ - CHARACTER*8 DHMBS (29) - DATA DHMBS /'SURFACE ', '1000MB ', '850MB ', - 1 '700MB ', '500MB ', '400MB ', - 2 '300MB ', '250MB ', '200MB ', - 3 '150MB ', '100MB ', '70MB ', - 4 '50MB ', '30MB ', '20MB ', - 5 '10MB ', '7MB ', '5MB ', - 6 '3MB ', '2MB ', '1MB ', - 7 '0.4MB ', 'TROPO ', 'SIGL ', - 8 'FRZG LVL', 'REL HUM ', ' INDEX ', - 9 'PRECIP-W', 'SFC ANL '/ - CHARACTER*8 DHVRBL(3) - DATA DHVRBL /'KRUN ', 'NLVLS ', 'IOPTN ' / - CHARACTER*12 IBCD -C - CHARACTER*1 LA - DATA LA /'A'/ - CHARACTER*1 LPARM(100) - CHARACTER*100 NPARM - EQUIVALENCE (LPARM(1),NPARM) -C - REAL*8 DBLPKD - REAL*8 NDATA - REAL*8 RIDOBS - REAL*8 SDATA - REAL*8 WATPAP -C -C??? INTEGER JBCD(3) - INTEGER ILVLTS(10) - INTEGER IDUMPT(2) - INTEGER IVALRA(3) - INTEGER IVERSN(10) - DATA IVERSN /8H 1600,8H ,028,8H 0,10,8H 012Z, - 1 8H ,NP1,8H 12/J,8H LIN/,8H 0.L0, - 2 Z'F25E0D0A',Z'0000000000'/ - INTEGER KNAM(10) - INTEGER KNUMB(10) - INTEGER LBLTAP - DATA LBLTAP /55/ - INTEGER LVLSAL(10) - INTEGER MAXDFE - DATA MAXDFE /255/ - INTEGER MXMBS - DATA MXMBS /29/ - CHARACTER*12 NAME(10) - CHARACTER*12 NUMBS(10) - INTEGER NVRBLS - DATA NVRBLS /3/ -C - LOGICAL AFOS - LOGICAL CARD - LOGICAL FLAGS(9) - CHARACTER*1 LVERSN(40) - CHARACTER*1 CVERSN(40) - LOGICAL MARG - LOGICAL PNCH - LOGICAL SEND - LOGICAL LDZDTQ - LOGICAL LDZNEW -C -C??? EQUIVALENCE(JBCD(1),IBCD) -C - CALL W3TAGB('PLOTVPAP',2002,0037,0068,'NP12') - AFOS = .FALSE. - -C -C READ IN PARM FIELD FLAGS -C - CALL W3AS00(NF,NPARM,IERR) -C PRINT *,' NF=', NF -C - REWIND LBLTAP -C??? ENDFILE LBLTAP -C ...TO ENSURE THEY WON,T USE TAPE IF ABNORMAL END... - REWIND LBLTAP - NITEM = 0 -C - LDZDTQ = .FALSE. - LDZNEW = .FALSE. - CALL SBYTESCCS(CVERSN,IVERSN,0,32,0,10) -C -C READ THE CONTROLLING DATA CARDS. -C - CALL RDCAR1(NVRBLS,DHVRBL,IVALRA,IERR,KNAM,NAME,KNUMB,NUMBS) - IF(IERR .NE. 0) THEN - PRINT *, ' RDCAR1 FAILS. IERR=',IERR - GO TO 900 - ENDIF - KRUN = IVALRA(1) - NOLVSR = IVALRA(2) - IOPTN = IVALRA(3) -C - WRITE(6,100)KRUN,NOLVSR,IOPTN - 100 FORMAT(1X,/,10X,'AFTER RDCAR1 ... KRUN = ',I4,5X, - 1 'NOLVSR = ',I4,5X,'IOPTN = ',I4) -C - NLEVEL = NOLVSR - LCNTR = 0 -C - CALL RDCAR2(NOLVSR,DHMBS,MXMBS,ILVLTS,IERR,KNAM,NAME,KNUMB,NUMBS) - IF(IERR .NE. 0) THEN - PRINT *, ' RDCAR2 FAILS. IERR=',IERR - ENDIF - CALL RDCAR3(IERRS) - IF(IERR .NE. 0) THEN - PRINT *, ' RDCAR3 FAILS. IERR=',IERR - ENDIF - IF(NOLVSR .LT. 2) GO TO 160 - IMAX = NOLVSR - 1 - DO 150 I=1,IMAX - INNER = I + 1 - DO 150 J=INNER,NOLVSR - IF(ILVLTS(I) .LE. ILVLTS(J)) GO TO 150 - ITEM = ILVLTS(I) - ILVLTS(I) = ILVLTS(J) - ILVLTS(J) = ITEM - 150 CONTINUE -C -C THE ABOVE LOOP SORTS THE REQUESTED LEVELS INTO ASCENDING ORDER. -C - 160 CONTINUE - WRITE(6,200)(ILVLTS(I),I=1,NOLVSR) - 200 FORMAT(1H , 10X, 'ILVLTS ARE ...', 10I5) -C -C CHECK PARM FLAGS. -C - CALL CKPARM(LPARM,NF,NUMFIL,FLAGS) -C -C SET FLAGS IN COMMON BLOCKS. -C - CALL SETFLG(NUMFIL,KRUN,FLAGS) -C -C IF THIS IS AN AFOS RUN LOAD AFOS VERSION INTO COMMON. -C - IF(AFOS) CALL MOVCH(36,IVERSN,1,LVERSN,1) - DO 300 I=1,10 - LVLSAL(I) = 0 - 300 CONTINUE -C - DO 400 I=1,NOLVSR - IF(ILVLTS(I) .LE. 0) GO TO 400 - LVLSAL(I) = ILVLTS(I) - 1 - 400 CONTINUE -C - DO 500 I=1,200 - RIDOBS(I) = 0.0 - 500 CONTINUE -C - CALL KOPTN(KRUN,IOPTN,NOLVSR,LVLSAL,LDZDTQ,LDZNEW,ITOUT,WATPAP, - X IDUMPT) - PRINT *,' *** ITOUT=', ITOUT - PRINT *,' *** KRUN=',KRUN -C CALL W3FK40(WATPAP,LOCT,MAXDFE) -C ...WHICH OPENS THE INPUT OBS PAP FILE... -C?? CALL TESRDUUPA - CALL MAPLOP(NOLVSR,ILVLTS,WATPAP,ITOUT,LDZDTQ,LDZNEW,IOPTN,DHMBS, - X KRUN,IDUMPT,IERR) -C??? ENDFILE LBLTAP -C ...TO MARK THE PHYSICAL END OF FILE ON TAPE55 - GO TO 999 -C - 900 CONTINUE - PRINT 905 - 905 FORMAT(1H0, 10X, 'ERROR STOP IN PROGRAM PLOTVPAP. TROUBLE IS IN - 1 CONTROLLING DATA CARDS ON FT05F001') -C CALL CONSOL('NWS,TROUBLE READING DATA CARDS FOR PLOTVPAP:') - ISTOP = 2 - GO TO 2000 - 999 CONTINUE - ISTOP = 0 -C -C CHECK TO SEE IF AFOS PLOTFILE MAPS WERE MADE. -C - IF(.NOT. AFOS) GO TO 2000 -C -C CHECK TO SEE IF AFOS PLOTFILE IS TO BE SENT -C - IF(.NOT. SEND) GO TO 2000 - REWIND 24 -C -C CHECK TO SEE FLAGS TO SEND AFOS PLOTFILE ARE TO COME FROM CARD. -C - IF(.NOT. CARD) GO TO 1000 - NC = 80 - LPARM(5) = LA -C1000 CALL W3FQ06(LPARM,NC,1,KRTN) - KRTN = 0 - 1000 ISTOP = KRTN - IF(KRTN .NE. 0) GO TO 1500 -C -C GET AFSMSG READY -C -CB? CALL BIN2EB(NUMAFS,IBCD,2,'A99') - CALL INT2CH(NUMAFS,IBCD,2,'A999') - CALL MOVCH(2,IBCD,1,AFSMSG,19) -C -CB? CALL BIN2EB(NOLVSR,IBCD,2,'A99') - CALL INT2CH(NOLVSR,IBCD,2,'A999') - CALL MOVCH(2,IBCD,1,AFSMSG,25) -C -C GET AFSPIL READY -C - NBYTES = NUMAFS*4 -C - CALL MOVCH(NBYTES,NAMPIL,1,AFSPIL,14) -C -C CALL CONSOL(AFSMSG) -C CALL CONSOL(AFSPIL) - WRITE(6,1010)AFSMSG - 1010 FORMAT(1H ,7A8) - WRITE(6,1010)AFSPIL -C - GO TO 2000 - 1500 IF(KRTN .NE. 1) GO TO 1800 - 1600 CALL CONSOL('NWS,*** 2-DOT PLOTFILE NOT POSTED, COPY MADE ***:') - NBYTES = NUMAFS*4 - CALL MOVCH(NBYTES,NAMPIL,1,AFSPIL,14) -C CALL CONSOL(AFSPIL) -C - 1800 IF(KRTN .NE. 3) GO TO 2000 - 1900 CONTINUE -C1900 CALL CONSOL('NWS,*** 2-DOT PLOTFILE NOT POSTED, TEST ****:') - 2000 CONTINUE - CALL W3TAGE('PLOTVPAP') - CALL ERREXIT(ISTOP) - STOP - END diff --git a/util/sorc/plotvpap.fd/makefile b/util/sorc/plotvpap.fd/makefile deleted file mode 100755 index ea0037938d..0000000000 --- a/util/sorc/plotvpap.fd/makefile +++ /dev/null @@ -1,64 +0,0 @@ -SHELL=/bin/sh -# -SRCS= main.f afpltf.f afzoom.f aplgnd.f b4plotx.f \ - ckparm.f dixie.f genafplt.f goesxy.f hgtdif.f \ - ijbsirch.f interp.f koptn.f presort.f maplop.f \ - rd_uupa.f rdafil.f rdcar1.f rdcar2.f sepcar.f setflg.f\ - thin_upa.f wibound.f cutstr.f gtnxtwrd.f tesrduupa.f \ - truijx.f asc2int.f sortem.f mksorwrd.f inidra.f mercxy.f \ - titles.f titlen.f idtitl.f titleo.f titlej.f lgnd1d.f readupa.f \ - moveid.f movobs.f pltdat.f setkeil.f rdcar3.f titlhc.f \ - readair.f rd_airc.f fillubin.f setaltit.f tstbnd.f -OBJS= main.o afpltf.o afzoom.o aplgnd.o b4plotx.o \ - ckparm.o dixie.o genafplt.o goesxy.o hgtdif.o \ - ijbsirch.o interp.o koptn.o presort.o maplop.o \ - rd_uupa.o rdafil.o rdcar1.o rdcar2.o sepcar.o setflg.o\ - thin_upa.o wibound.o cutstr.o gtnxtwrd.o tesrduupa.o \ - truijx.o asc2int.o sortem.o mksorwrd.o inidra.o mercxy.o \ - titles.o titlen.o idtitl.o titleo.o titlej.o lgnd1d.o readupa.o \ - moveid.o movobs.o pltdat.o setkeil.o rdcar3.o titlhc.o \ - readair.o rd_airc.o fillubin.o setaltit.o tstbnd.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort -#LDFLAGS = -lessl - -LIBS = ${GPH_LIB8} ${GPHCNTR_LIB8} ${UTIL_LIB} \ - ${W3EMC_LIB8} ${W3NCO_LIB8} ${IP_LIB8} ${BACIO_LIB8} ${SP_LIB8} - -CMD = plotvpap - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -convert big_endian -assume byterecl - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -# $(CMD).prof: $(OBJS) -# $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/plotvpap.fd/maplop.f b/util/sorc/plotvpap.fd/maplop.f deleted file mode 100755 index 97e53e2a50..0000000000 --- a/util/sorc/plotvpap.fd/maplop.f +++ /dev/null @@ -1,473 +0,0 @@ - SUBROUTINE MAPLOP(NOLVSR,ILVLTS,WATPAP,ITOUT,LDZDTQ,LDZNEW,IOPTN, - 1 DHMBS,KRUN,IDUMPT,IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: MAPLOP EXECUTIVE FOR PLOTTING OBSERVATIONS -C PRGMMR: LIN ORG: W/NP12 DATE: 97-03-03 -C -C ABSTRACT: LOOPS THROUGH THE MB LEVELS (NOLVSR) AND CALLS VARIOUS -C SUB. TO GET AND PROCESS THE UPPER AIR DATA AS PLOTTED LABELS FOR -C OTHER GRAPHICS PROGRAMS. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-28 HENRICHSEN CLEAN UP AD DOCUMENT, ADD COMMON IAFOS. -C 90-10-31 HENRICHSEN ADD NEW WORD TO COMMON IAFOS, NUMAFS. -C 93-05-07 LILLY CONVERT SUB. TO FORTRAN 77 -C 97-01-31 SHIMOMURA - CONVERT TO CRAY -C 97-02-27 SHIMOMURA - MODS TO READ AIRCFT OBS -C 97-03-03 LIN - MODS TO DEAL WITH MID CYCLE MAPS -C -C USAGE: CALL MAPLOP (NOLVSR,ILVLTS,WATPAP,ITOUT,LDZDTQ,LDZNEW, -C 1 IOPTN,DHMBS,KRUN,IDUMPT,IERR) -C INPUT ARGUMENT LIST: -C NOLVSR - INTEGER WORD NUMBER OF UPPER AIR LEVELS TO PROCESS. -C ILVLTS - INTEGER 10 WORD ARRAY CONTAIN LIST OF LEVELS TO GET -C WATPAP - REAL*8 NAME OF FILE TO READ BY SUB READPA. -C ITOUT - INTEGER FLAG WITH RANGE FROM 1 THRU 13 , USED -C - TO DETERMINE TYPE OF MAP BACKGROUND DATA IS TO BE -C - DISPLAYED ON. ITOUT IS A FUNCTION OF KRUN AND IS -C - SET IN SUB KOPTN. -C LDZDTQ - LOGICAL FLAG = .TRUE. FOR MIDCYC, SET IN SUB KOPTN. -C - = .FALSE. IF NOT MIDCYC. -C LDZNEW - LOGICAL FLAG = .TRUE. FOR MIDCYC, SET IN SUB KOPTN. -C - = .FALSE. IF NOT MIDCYC. -C IOPTN - INTEGER FLAG READ IN FROM 1ST DATA CARD. -C DHMBS - REAL*8 29 WORD ARRAY OF NAMES OF MB LEVELS IN -C - HOLLERTH IE. 'SURFACE ','1000MB ','850MB ', ECT -C KRUN - INTEGER RUN OPTION FLAG READ IN FROM 1ST DATA CARD. -C IDUMPT - INTEGER 2 WORD ARRAY CONTAINING THE DATA DUMP TIME -C - IN HOLLERTH IE. '10+4','0 '. - -C COMMON - /IAFOS / NUMAFS,NAMPIL(10),LVERSN,AFOS,SEND,CARD,MARG -C - LVERSN 36 BYTE ARRAY CONTAINING THE AFOS VERSION -C - STRIP TITLE. -C - AFOS A LOGICAL FLAG SET TO .TRUE. OR .FALSE. -C -C OUTPUT ARGUMENT LIST: -C IERR - ERROR RETURN. -C NUMAFS - COUNTER RETURNED IN COMMON/IAFOS/ INDICATES THE NUMBER -C - AFOS PLOTFILE MAPS MADE. -C -C OUTPUT FILES: -C FT06F001 - PRINT FILE. -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - COMMON / DATE / NYR,NMO,NDA,NHR,CDUMP - CHARACTER*8 CDUMP - COMMON /IAFOS / NUMAFS,NAMPIL(10),LVERSN,AFOS,SEND,CARD,MARG - COMMON /TIMES / NANJI(12) - COMMON /KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) - - COMMON /MIDCYC/ MIDCYC - LOGICAL MIDCYC - -C ---------------------------------------------------------------- -C ---------------------------------------------------------------- - INTEGER MAXOBS - PARAMETER (MAXOBS=20000) - INTEGER NDATASIZ - PARAMETER (NDATASIZ=MAXOBS+1) - INTEGER LMTWRDPOB - PARAMETER (LMTWRDPOB=10) - INTEGER LMTHFWPOB - PARAMETER (LMTHFWPOB=2*LMTWRDPOB) !... =(20) - - COMMON /OBSLVLDB/NOBSDB,LVLIX,IOBS2PK - INTEGER IOBS2PK(LMTWRDPOB,NDATASIZ) - - - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - COMMON / / ISCRDATA - INTEGER ISCRDATA(3,NDATASIZ) - COMMON /JSPACE/IDREC,NDATA - INTEGER IDREC(6) - INTEGER NDATA(3,NDATASIZ) - - INTEGER NDIXMAX !... NO OF J-ROWS IN ANY GRID - PARAMETER (NDIXMAX=118) - INTEGER IDIXAD(NDIXMAX) - INTEGER IDIXCO(NDIXMAX) - - INTEGER NDIX - -C . . . . . . . . . . . . . . . . . . . . -C ... SORTEM ARGS ... - INTEGER ISKEY - DATA ISKEY / 1 / - INTEGER KEYML - DATA KEYML / 6 / - INTEGER KEYMH - DATA KEYMH / 41 / - INTEGER IRET_SOR -C . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . - integer mskJIJ - data mskJIJ / X'000001FFFFFFFFE0' / - INTEGER MSKJJJ - DATA MSKJJJ / X'000001FF00000000' / - INTEGER NRITSHF - DATA NRITSHF / 32 / -C . . . . . . . . . . . . . . . . . . . . - -C ---------------------------------------------------------------- -C ---------------------------------------------------------------- - CHARACTER*8 NEWPAP - DATA NEWPAP /'NEWPAP '/ - CHARACTER*8 WATPAP -C - CHARACTER*8 DHMBS(29) -C - INTEGER KSTDHT(21) - DATA KSTDHT - 1 /113,1457,3011,557,718,916,1036,1178,1362,1621, - 2 1849,2063,2389,2648,3105,3347,3578,3944,4245, - 3 4766,5472/ - - - INTEGER ILVLTS(10) - INTEGER IDUMPT(2) -C - INTEGER IFLG - DATA IFLG /0/ - INTEGER INIT - DATA INIT /Z'3F012B00'/ - INTEGER LIDOBS - DATA LIDOBS /200/ - INTEGER MAXDFE - DATA MAXDFE /255/ - INTEGER MSKJJ - DATA MSKJJ /Z'1FF'/ - INTEGER NDIM1 - DATA NDIM1 /4001/ -C - LOGICAL W3AI24 - LOGICAL AFOS - LOGICAL CARD - LOGICAL LDZDTQ - LOGICAL LDZNEW - CHARACTER*1 LVERSN(40) - LOGICAL MARG - LOGICAL LMARGIN - LOGICAL SEND -C - INTEGER KROT_PRI(2),ICMD,IPT,JPT,NCHAR - REAL HEIGHT,ANGLE - CHARACTER*4 CTEXT - CHARACTER*8 HEDER(50) - CHARACTER*8 HEDERAIR(50) - integer LUNUPA - LOGICAL LWNDONLY - CHARACTER*2 CHTEXT - LOGICAL LAIRCFTQQ - LOGICAL LSATWNDQQ - LOGICAL LADDONQQ - INTEGER IRET_AIR -C -C--------------------------------------------------------------------------- -C SET NUMAFS COUNTER TO ZERO -C - NUMAFS = 0 -C - IER = 0 - IERRA = 0 - - LUNUPA = 41 - LUNSAT = 43 - LUNACF = 42 - LUNTOS = 44 - LAIRCFTQQ = .TRUE. - LSATWNDQQ = .TRUE. - LADDONQQ = .TRUE. -C -C IF ( KRUN.EQ.8 .OR. KRUN.EQ.9) THEN -C PRINT *, ' THIS 1/2 DOT, ONLY PLOT UPAUPA.' -C LAIRCFTQQ = .FALSE. -C LSATWNDQQ = .FALSE. -C LADDONQQ = .FALSE. -C ENDIF -C - DO 1000 IMAP=1,NOLVSR - ILVLT = ILVLTS(IMAP) - LVLDES = ILVLT - 1 - - IF ( .NOT. MIDCYC) THEN - - call readupa(LUNUPA,LVLDES,KRUN,ITOUT,HEDER,IRET_RED) - - PRINT *, ' HEADER=',HEDER(3),' ',HEDER(4),' ',HEDER(5) - IF(IRET_RED .NE. 0) THEN - PRINT 100,IRET_RED - 100 FORMAT(1H ,'MAPLOP::READUPA: RETURN-CODE = ', I4) - IERR = 13 - GO TO 1000 - ENDIF - PRINT *, ' HEADER=',HEDER(3),' ',HEDER(4),' ',HEDER(5) - CHTEXT= HEDER(3)(1:2) - CALL ASC2INT(2,CHTEXT,NYR,IERR) - CHTEXT= HEDER(3)(3:4) - CALL ASC2INT(2,CHTEXT,NMO,IERR) - CHTEXT= HEDER(3)(5:6) - CALL ASC2INT(2,CHTEXT,NDA,IERR) - - CHTEXT= HEDER(3)(7:8) - CALL ASC2INT(2,CHTEXT,NHR,IERR) - CDUMP(1:4)=HEDER(4)(3:6) - PRINT *,' NYR=',NYR,' NMO=',NMO,' NDA=',NDA,' NHR=',NHR - PRINT *,' DUMP TIME IS ',CDUMP - ENDIF -C - IF(LAIRCFTQQ) THEN - CALL READAIR(LUNACF,LADDONQQ,LVLDES,KRUN,ITOUT,HEDERAIR, - 1 IRET_AIR) - IF(IRET_AIR .NE. 0) THEN - WRITE(6,FMT='(1H ,''maplop::readair: return code='',I5, - 1 '', NOBSDB='',I6)') - A IRET_AIR,NOBSDB - ENDIF - PRINT *, ' HEADER=',HEDERAIR(3),' ',HEDER(4),' ',HEDERAIR(5) - CHTEXT= HEDERAIR(3)(1:2) - CALL ASC2INT(2,CHTEXT,NYR,IERR) - CHTEXT= HEDERAIR(3)(3:4) - CALL ASC2INT(2,CHTEXT,NMO,IERR) - CHTEXT= HEDERAIR(3)(5:6) - CALL ASC2INT(2,CHTEXT,NDA,IERR) - - CHTEXT= HEDERAIR(3)(7:8) - CALL ASC2INT(2,CHTEXT,NHR,IERR) - PRINT *,' NYR=',NYR,' NMO=',NMO,' NDA=',NDA,' NHR=',NHR - ENDIF -C - IF(LSATWNDQQ) THEN - PRINT *, ' BEFOR SATWND' - LADDONQQ = .TRUE. - CALL READAIR(LUNSAT,LADDONQQ,LVLDES,KRUN,ITOUT,HEDERAIR, - 1 IRET_AIR) - IF(IRET_AIR .NE. 0) THEN - WRITE(6,FMT='(1H ,''maplop::readsat: return code='',I5, - 1 '', NOBSDB='',I6)') - A IRET_AIR,NOBSDB - ENDIF - ENDIF -C -C?? CALL READPA(WATPAP,LOCT,IDTBL,IDREC,NDATA,NDIM1,ITCT,LVLDES, -C?? 1 ITOUT,IERRA) -C ...THE CALL TO READPA WAS PUT BEFORE INITIALIZATION OF LABEL FILE -C ... TO GET DATE-TIME INFO INTO IDTBL AND GET GOOD READ OF PAP - IF( (IOPTN .NE. 1) .OR. (.NOT. LDZNEW) ) GO TO 300 -C?? IF(IMAP .EQ. 1) CALL W3FK40(NEWPAP,LCT1,MAXDFE) -C?? CALL RDSIRS(NEWPAP,LCT1,IDTB1,NDATA,NDIM1,ITCT,LVLDES,ITOUT,IERRA) -C?? PRINT 210,IERRA - 210 FORMAT(1H ,20X,'RETURNED FROM RDSIRS WITH IERRA= ',I4) - 300 CONTINUE - -C ...GET 50 WORD IDRA INITIALIZED FOR THIS MAP... - CALL INIDRA(IMAP,ILVLT,DHMBS,ITOUT,KRUN) - IMO = NMO - IDA = NDA - IYR = NYR - IHR = NHR - CALL PUTLAB(1,1,1.0,ITEMP,0.0,1,0,-1) -C ...WHICH ARE DUMMY ARGS EXCP FOR THE -1 WHICH TELLS -C ... PUTLAB TO PRINT THE ID RECORD ONTO TAPE55 - DO 310 J = 1,1024 - LABEL(1,J) = 0 - LABEL(2,J) = 0 - 310 CONTINUE -C -C ... INITIALIZE LABEL ARRAY ... -C - LABIX = 0 - NOBUF = 0 -C - IPT = 1 - JPT = 0 - HEIGHT = 1.0 - ANGLE = 0.0 - KROT_PRI(1) = 0 - KROT_PRI(2) = 0 - CTEXT(1:1) = '?' - CTEXT(2:2) = CHAR(1) - CTEXT(3:3) = '$' - CTEXT(4:4) = CHAR(0) - NCHAR = 2 - ICMD = -2 - - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, - X ICMD) -C -C ...WHICH INITITALIZES TO REGULAR CHAR SET... - IF(ITOUT .EQ. 6) CALL TITLEN(100,100,IERR0) -C ...PLACE TITLE ON SIRS PLOTTED CHART... - IF(ITOUT .NE. 7) GO TO 320 -C ...PLACE A TITLE ON THE MERCATOR CHARTS... - NANJI(5) = IDUMPT(1) - NANJI(6) = IDUMPT(2) - IONE=850 - ITWO=2200 - CALL TITLEO(IONE,ITWO,DHMBS(ILVLT),IERRR) - 320 CONTINUE -C -C ============================================================ -C ============================================================ - - DO J = 1,NDATASIZ - DO I = 1,3 - NDATA(I,J) = 0 - ENDDO - ENDDO - - lvldes = lvlix - 1 - - call mksorwrd(lvldes,itout,itct,iret_mks) - - write(6,815)ITCT,iret_mks - 815 format(1h ,'tesrduupa::mksorwrd: ITCT=',I8, - 1 '; return-code=',I4) - do JJ = 1,ITCT - iacc = iand(ndata(1,JJ),mskJIJ) - IF(IACC .EQ. 0) THEN - WRITE(6,817)jj - 817 FORMAT(1H ,'tesrduupa::mksorwrd: results terminated at ', - 1 I8,'th word with zero value') - go to 818 - endif - enddo - 818 continue - - call presort(KRUN) - - do JJ = 1,ITCT - iacc = iand(ndata(1,JJ),mskJIJ) - IF(IACC .EQ. 0) THEN - WRITE(6,819)jj - 819 FORMAT(1H ,'tesrduupa::presort: results terminated at ', - 1 I8,'th word with zero value') - go to 820 - endif - enddo - 820 continue - - - call sortem(NDATA,3,NDATASIZ,ISCRDATA,ISKEY,KEYML,KEYMH, - 1 IRET_SOR) - WRITE(6,825)iret_sor - 825 FORMAT(1H ,'tesrduupa::sortem: return-code=',I3) - IF(IRET_SOR .NE. 0) THEN - IERR = 11 - GO TO 1000 - ENDIF - - NDIX = 52 - IF(KRUN .EQ. 11) NDIX = 118 - IF(KRUN .EQ. 15) NDIX = 82 - IF(KRUN .EQ. 22) NDIX = 42 - IF(KRUN .EQ. 23) NDIX = 42 - - print *,' before dixie' - call dixie(NDATA,3,NDATASIZ,ISKEY,MSKJJJ,NRITSHF, - 1 IDIXAD,IDIXCO,NDIX,IRET_DIX) - WRITE(6,835) IRET_DIX - 835 FORMAT(1H ,'tesrduupa::dixie: RETURN-CODE=',I5) - - call thin_upa(NDATA,3,NDATASIZ,ISKEY,IDIXAD,IDIXCO,NDIX,ITOUT) - -C ============================================================ -C ============================================================= - IF( .NOT. LDZDTQ) GO TO 430 -C** CALL TITLEJ(1230,170) PLACE THE DATA CUT TIME OVER THE YUCATAN. - CALL TITLEJ(130,50) -C ...PLACE HGT CHANGE LEGEND -C IF (KRUN.EQ.8 .OR. KRUN.EQ.9) THEN -C CALL TITLHC(110,50,ILVLT) -C ENDIF - NPASS = 1 -C ...FIRST TIME THRU WORK WITH NEWPAP - IF((IMAP .GE. 2).OR.(.NOT. W3AI24(WATPAP,NEWPAP,8))) GO TO 410 -C ... DO 400 I=1,256 -C ... LCT1(I) = LOCT(I) -C ... 400 CONTINUE -C - IFLG = 2 - 410 CONTINUE - 430 CONTINUE -C - IF( (ITOUT .NE. 2) .OR. (.NOT.AFOS) ) GO TO 500 -C -C I WILL BYPASS THE AFOS PLOTFILE FORMATION UNLESS THIS IS A -C TWO-DOT RUN AND THE APPROPRIATE PARM SWITCH IS ON. -C - IF( (LVLDES .LT. 2) .OR. (LVLDES .GT. 8) ) GO TO 500 - IF(LVLDES .EQ. 5) GO TO 500 -C ...OTHERWISE PREPARE AFOS PLOTFILE HEADERS... - NHR = IHR - NDA = IDA - NMO = IMO - NYR = IYR - PRINT *,' NHR=', NHR -C -C??? CALL AFPLTF(LVLDES,IDUMPT,KADDZ,ITOUT,IER) -C -C CHECK RETURN CODE FROM AFOSPH. -C -C -C IER CAN HAVE 3 VALUES: = 0 EVERY THING OK -C = 1 COULD NOT FIND AFOS PIL NUMBER SO -C SUB B4PLOT WAS NOT CALLED IN AFPLTF. -C = 2 SUB AFORMT DID NOT WRITE AFOS -C = PLOTFILE. -C -C? WRITE(6,451) IER,LVLDES,ITOUT - 451 FORMAT(' RETURN SUB AFPLTF WITH IER=',I2,' FOR LEVEL ',I4, - X ' ITOUT=', I2) -C?? IF(IER .EQ. 1) GO TO 500 -C? PRINT *, ' ICHK BEFORE 500' -C? IF(IER.EQ.2)WRITE(6,454) LVLDES - 454 FORMAT(' ERROR RETURN FROM AFORMT. PLOTFILE NOT WRITTEN FOR', - X ' LEVEL ', I2) -C?? GO TO 600 - 500 CONTINUE - IF (MARG) THEN - LMARGIN = .TRUE. - PRINT *, ' LMARGIN IS TRUE.' - ELSE - LMARGIN = .FALSE. - PRINT *, ' LMARGIN IS FALSE.' - ENDIF - IDELTA = 0 - LWNDONLY = .FALSE. - CALL B4PLOTX(LWNDONLY,LVLDES,IDELTA,ITOUT,LMARGIN,AFOS,IERROR) - 600 CONTINUE -C - CALL IDTITL -C ...WHICH PRINTS SOME IDENTS ON THE MAP AS A TEST OF PRINTING - IF(ITOUT .EQ. 5) CALL TITLES -C ...WHICH LABELS SOME OF THE GEOGRAPHY IN THE SOUTHERN HEMISPHERE.. - IF(ITOUT .LE. 2) CALL LGND1D - IF(ITOUT .EQ. 7) CALL LGND1D - IF((ITOUT .EQ. 12) .OR. (ITOUT .EQ. 13)) CALL LGND1D -C -C WHICH WRITES A SPECIAL LEGEND ON 1- AND 2-DOT MAPS AS WELL AS -C ON TROPIC PLOTS ON MERC AND GOES. -C -C FOR CHECKOUT AND TESTING, PRINT THIS SPECIAL LEGEND -C REGARDLESS OF THE OPTION. -C - CALL PUTLAB(1,1,1.0,ITEMP,0.0,1,0,-7) -C ...WHICH FINISHED OFF THIS LOGICAL FILE ON TAPE55 - LCKPT = 1088 - WRITE(6,888) LCKPT - 888 FORMAT(' ARRIVED AT CHECKPOINT = ', I4) - PRINT 889 - 889 FORMAT(1H1) - 1000 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/mercxy.f b/util/sorc/plotvpap.fd/mercxy.f deleted file mode 100755 index b909998642..0000000000 --- a/util/sorc/plotvpap.fd/mercxy.f +++ /dev/null @@ -1,54 +0,0 @@ - SUBROUTINE MERCXY(TLAT,TLONG,TX,TY,IERR) -C 15-AUG-1996/DSS -C GIVEN...TLAT AND TLONG OF A POINT ( DEGREES WEST LONG FOR TLONG) -C TO FIND...X AND Y COORDINATES OF THE POINT ON THE TROPICAL GRID -C ... (117,44) WHERE PRIME MERIDIAN IS REPEATED... -C ...ROUNDED TO NEAREST 0.001 DECIMAL FRACTIONAL PART OF GRID INT -C ...RESTRICTION... GIVEN LATITUDE MUST BE BETWEEN -70.0 AND +70.0 -C ...AND GIVEN LONGITUDE MUST BE BETWEEN 0 AND 360.0 DEGREES WEST - - REAL CNVDR,PI,ERA,DJGI,EQUATJ - REAL GIS,PDEG,GIPDEG,TLONGE - REAL TORG - REAL DBLAT,DBLONG - REAL TLAT,TLONG,TX,TY - - DATA TLATMX / 70.0 / - DATA CNVDR / 0.017453292519943 / -C WHERE CNVDR CONVERTS DEGREES TO RADIANS - DATA PI / 3.1415926536 / - DATA EQUATJ / 19.0 / -C ...WHERE EQUATJ IS EQUATOR,S SUBSCRIPT FLOATED - DATA TORG / 0.0 / -C ...WHERE TORG IS DISPLACEMENT OF LHS OF TROPI FROM ZERO LINE - DATA GIS,PDEG/ 116.0, 360.0 / -C - GIPDEG = GIS / PDEG -C ...WHERE GIPDEG IS GRID INTERVALS PER DEGREE LONG - TX = 0.0 - TY = EQUATJ -C - DBLAT = TLAT - DBLONG = TLONG - IERR = 1 - IF(TLAT .GT. TLATMX) GO TO 900 - IERR = 2 - IF(TLAT .LT. (-TLATMX)) GO TO 900 - IERR = 3 - IF(TLONG .LT. 0.0) GO TO 900 - IERR = 4 - IF(TLONG .GT. 360.0) GO TO 900 -C ...OTHERWISE, GIVEN LAT/LONG IS WITHIN RANGE - IERR = 0 -C ... Y COORDINATE IS A FUNCTION OF LATITUDE ONLY - ERA = TAN((DBLAT * CNVDR / 2.0) + PI / 4.0) - DJGI = (GIS / (2.0 * PI)) * LOG(ERA) - TY = DJGI + EQUATJ -C ... X-COORDINATE IS A FUNCTION OF LONGITUDE ONLY - TLONGE = 360.0 - DBLONG - TX = (TLONGE * GIPDEG) + TORG + 1.0 - RETURN - 900 CONTINUE -C ...GIVEN LAT OR LONG IS OUT OF RANGE - RETURN - END diff --git a/util/sorc/plotvpap.fd/mksorwrd.f b/util/sorc/plotvpap.fd/mksorwrd.f deleted file mode 100755 index a1c8a1b354..0000000000 --- a/util/sorc/plotvpap.fd/mksorwrd.f +++ /dev/null @@ -1,543 +0,0 @@ - SUBROUTINE MKSORWRD(LVLDES,ITOUT,ITCT,IERRA) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: MKSORWRD TO FORM SORTKEY + THIN ARGS -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 97-03-03 -C -C ABSTRACT: GIVEN: OBSERVATIONS FOR ONE LEVEL IN COMMON /OBSLVLDB/ -C TASK ... TO FORM, IN AN ARRAY NAMED "NDATA()", THE SORT KEY -C (FOR SORTING BY GRID-J, AND SECONDARILY BY GRID-I WITHIN EACH J- -C GRID INTERVAL); AND ARGS NEEDED FOR SUBSEQUENT THINNING -C (WHICH IS WHY WE NEED TO SORT -- SO THAT THE THINNING WILL -C GO FASTER.) -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR: DAVID SHIMOMURA -C 89-04-27 STEVE LILLY ADD DOCUMENTATION BLOCK -C 93-05-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-01-30 SHIMOMURA -- CONVERT TO RUN ON CRAY; -C STRIPPED DOWN TO A RUDIMENTARY CODE. -C 97-02-25 SHIMOMURA -- RESTORE THE AIRCRAFT OBS WHICH HAD BEEN -C DELETED IN THE RUDIMENTARY CODE. -C 97-03-03 SHIMOMURA -- RESTORE SAT-WIND OBS WHICH HAD BEEN -C DELETED IN THE RUDIMENTARY CODE. -C -C USAGE: CALL MKSORWRD(LVLDES,ITOUT,ITCT,IERRA) -C -C INPUT ARGUMENT LIST: -C LVLDES - LEVEL DESIRED BY INDEX NUMBER -C ITOUT - INTEGER FLAG WITH RANGE FROM 1 THRU 14 , USED -C - TO DETERMINE TYPE OF MAP BACKGROUND DATA IS TO BE -C - DISPLAYED ON. ITOUT IS A FUNCTION OF KRUN AND IS -C - SET IN SUB KOPTN. - -C COMMON /OBSLVLDB/NOBSDB,LVLIX,IOBS2PK -C INTEGER IOBS2PK(LMTWRDPOB,NDATASIZ) -C -C OUTPUT ARGUMENT LIST: -C ITCT - NO. OF OBS PUT INTO NDATA FROM MRGPAP FILE -C IERRA - TO MARK ERROR RETURNS -C -C COMMON /JSPACE/IDREC,NDATA -C INTEGER IDREC(6) -C INTEGER NDATA(3,NDATASIZ) -C WHERE NDATA - BIG BIN FOR RESULTING DATA(3,NDATASIZ) -C AND NDATASIZ - J DIMENSION OF NDATA (NO. OF OBS IT CAN HOLD+1) - -C COMMON - / DATE /NYR,NMON,NDAY,NHR -C COMMON - / DAT1 /IHR1,IDA1,IMO1,IYR1 -C COMMON - /WLONG0/ WLONG0 -C -C REMARKS: -C THIS 97-01-30 VERSION IS STRIPPED DOWN TO GET SOMETHING TO FLOW; -C IT HAS LIMITED APPLICATIONS. -C THIS DETERMINES A LOCALLY USED KEIL-VALUE FROM THE GIVEN ITOUT -C AND USES THE LCL_KEIL AS ARG TO TRUIJX() TO DETERMINE I,J FROM -C LAT,LONG. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C ----------------------------------------------------------------- - INTEGER MAXOBS - PARAMETER (MAXOBS=20000) - INTEGER NDATASIZ - PARAMETER (NDATASIZ=MAXOBS+1) - INTEGER LMTWRDPOB - PARAMETER (LMTWRDPOB=10) - INTEGER LMTHFWPOB - PARAMETER (LMTHFWPOB=2*LMTWRDPOB) !... =(20) - - COMMON /OBSLVLDB/NOBSDB,LVLIX,IOBS2PK - INTEGER IOBS2PK(LMTWRDPOB,NDATASIZ) - - COMMON /JSPACE/IDREC,NDATA - INTEGER IDREC(6) - INTEGER NDATA(3,NDATASIZ) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - -C ================================================================= - COMMON / DATE /NYR,NMON,NDAY,NHR - COMMON / DAT1 /IHR1,IDA1,IMO1,IYR1 - COMMON /WLONG0/ WLONG0 -C - INTEGER*8 DBLPKD - INTEGER*8 DBLWDT - INTEGER*8 DBLWRD - INTEGER*8 IDEWRD - INTEGER*8 IUVDT - INTEGER*8 LLWRD - INTEGER*8 MRGPAP - - CHARACTER*8 NEWPAP - DATA NEWPAP /'NEWPAP '/ -C -C - LOGICAL LDEWAS,LDEWDO -C - LOGICAL LNEWPA -C -C - INTEGER IDX(6) - INTEGER IUPK(12) - INTEGER KBITRA(5) - DATA KBITRA /8,8,4,2,1/ - INTEGER LAGS(3) - INTEGER LMTM(5) - DATA LMTM /0300,0900,1500,1800,2100/ -C -C - DATA ABGMXI /109.0/ - DATA ABGMXJ / 81.0/ - - DATA DISSAT /6.619/ - DATA KTBIT /2/ - DATA KTBUT /Z'20'/ - DATA KTDBIT /1/ -C ... DATA KTDBUT /Z'10'/ - DATA KWBIT /8/ - DATA KWBUT /Z'80'/ - DATA KZBIT /4/ - DATA KZBUT /Z'40'/ - DATA LIMT1 /0450/ - DATA LIMT2 /1800/ - DATA LOLDTM /0000/ - DATA LSYNTM /1200/ -C - DATA MAXDFE /255/ -C ...WHERE MAXDFE IS USED IN FK00 AND FK01 FILE OPENERS... -C - DATA MAXFL /616/ -C ...WHERE MAXFL IS THE ITH DIMENSION (IN SINGLE WORDS) OF INDAT -C - DATA MDPMIS /Z'0000007F'/ - DATA MLAGS /Z'F000F000'/ - DATA MSKOFF /Z'0000000F'/ - DATA MSKTIM /Z'0000FFF0'/ - DATA MSK9 /Z'1FF'/ -C - DATA MSK9IN /Z'3FE00'/ -C ...WHERE MSK9IN IS OCT 777000 -C - DATA MSK18 /Z'3FFFF'/ -C -C ... DATA MXINBN /304/ -C ...WHERE MXINBN IS MAX NO. OF OBS IN ONE PAP RECORD -C ... 304 DOUBLE WORDS + 4 PRECEDING MAKES 308 DOUBLE WORDS -C - DATA NO17 /Z'F'/ - DATA NO360 /Z'F0'/ - DATA NO37 /Z'0000001F'/ - DATA NO3777 /Z'7FF'/ - DATA NO77 /Z'3F'/ - DATA NO7777 /Z'FFF'/ - DATA SCALE /26.7858/ - DATA TWOB9 /512.0/ - DATA XSHIFT /10.0/ - DATA YSHIFT /10.0/ -C - INTEGER I4WORK(LMTWRDPOB) !...(10) - INTEGER LONELVL(LMTHFWPOB) !...(20) - REAL FLONELVL(LMTHFWPOB) !...(20) -C ... TO UNPACK THE 64-BIT WORDS INTO 32-BIT WORDS, -C ... CALL GBYTES(JUPABUF,I4UPABIN,NOFFSET,NBITSGRP,NPADBITS,NGRPS2DO) - INTEGER NOFFSET - DATA NOFFSET / 0 / - INTEGER NBITSGRP - DATA NBITSGRP / 32 / - INTEGER NPADBITS - DATA NPADBITS / 0 / - INTEGER NGRPS2DO - - INTEGER NEGSIGNEXT - DATA NEGSIGNEXT / X'FFFFFFFF00000000' / - INTEGER MSK1TO6BY - DATA MSK1TO6BY / X'FFFFFFFFFFFF0000' / - INTEGER MSK12B - DATA MSK12B / X'0000000000000FFF' / - INTEGER IPKDTIME - REAL TIME_HRS - INTEGER IDWRD - INTEGER IACC - INTEGER MQ - INTEGER ITCT - INTEGER LCL_KEIL - REAL AIMIN,AIMAX - REAL AJMIN,AJMAX - REAL ALAT,ALONG -C - SAVE -C -C . . . S T A R T . . . . . . . . . . . . . . . . . . . . . . - - IERRA = 0 - ITCT = 0 - LNEWPA = .TRUE. - - AIMIN = 1.0 - AJMIN = 1.0 - AIMAX = 47.0 - AJMAX = 51.0 - - IF((ITOUT .LT. 1) .OR. (ITOUT .GT. 14)) THEN - GO TO 702 !... ERROR ON ITOUT OUT-OF-RANGE - ENDIF - GO TO 709 - - 702 CONTINUE - PRINT 704, ITOUT - 704 FORMAT(1H , 'MKSORWRD: FAILED!! GIVEN OUT-OF-RANGE ITOUT=', I8, - 1 /1H , 'UNABLE TO PROCESS ANY OBSERVATIONS' ) - IERRA = 1 - RETURN - - 709 CONTINUE - NPTYPS = 3 - LDEWDO = .FALSE. -C 1 2 3 4 5 6 7 8 9 10 11 12 13 -C ... GO TO (710,720,730,740,750,760,770,780,702,790,795,798,798),ITOUT - if(itout .eq. 1) then !...710 - LCL_KEIL = 1 -C ...FOR LFM ... - IF(LVLDES .GT. 8) GO TO 799 - IF(.NOT. LNEWPA) GO TO 799 - NPTYPS = 4 - LDEWDO = .TRUE. - GO TO 799 - - else if (itout .eq. 2) then !... 720 - LCL_KEIL = 1 -C ...FOR LFM .... - IF(LVLDES .GT.8) GO TO 799 - IF(.NOT. LNEWPA) GO TO 799 - NPTYPS = 4 - LDEWDO = .TRUE. - GO TO 799 - - else if (itout .eq. 3) then !... 730 -C ...IQSY ON N HEMI ... - LCL_KEIL = 2 - GO TO 799 - - else if (itout .eq. 4) then !... 740 - LCL_KEIL = 15 - AIMAX = 55.0 - AJMAX = 42.0 - GO TO 799 - - else if (itout .eq. 5) then !... 750 - LCL_KEIL = 3 - GO TO 799 - - else if (itout .eq. 6) then !... 760 - LCL_KEIL = 2 -C ...FOR SIRS PLOTTED CHART ... - GO TO 799 - - else if (itout .eq. 7) then !... 770 -C ...INTIIALIZE FOR TROPIC PLOT ON MERCATOR - LCL_KEIL = 6 - GO TO 799 - - else if (itout .eq. 8) then !... 780 -C ...INITIALIZE FOR LARGE 1/20M BACKGROUND. - LCL_KEIL = 7 - GO TO 799 - - else if (itout .eq. 9) then !... No ITOUT==9 - go to 702 !... ERROR - - else if (itout .eq. 10) then !... 790 -C ...INITIALIZE FOR GENERALIZED PLOT ON NH 1/40M BACKGROUND. - LCL_KEIL = 2 - GO TO 799 - - else if (itout .eq. 11) then !... 795 -C ...INITIALIZE FOR NH 1/60M BACKGROUND... - AIMAX = 65.0 - AJMAX = 65.0 - LCL_KEIL = 14 - GO TO 799 - - else if ((itout .eq. 12) .or. (itout .eq. 13)) then !...798 -C ...GOES-TYPE DISPLAY. - LCL_KEIL = 0 - GO TO 799 - - else if (itout .eq. 14) then -C ...INITIALIZE FOR PLOT ON SH 1/20M BACKGROUND. - LCL_KEIL = 16 - AIMAX = 109.0 - AJMAX = 144.0 - GO TO 799 - - else - GO TO 702 - endif - go to 799 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 799 CONTINUE - LVL = LVLDES -C ...BETTER CHECK FOR LVL W/I VALID RANGE... - IF((LVL .GT. 0) .AND. (LVL .LT. 22)) GO TO 810 -C ... OTHERWISE, BAD MB-LEVEL ... - PRINT 800,LVL - 800 FORMAT(1H ,'MKSORWRD: FAILED. OUT-OF-RANGE LVL =',I8, - X /1H ,'UNABLE TO INITIALIZE MAPPING CONSTANTS') - IERRA = 2 - RETURN -C - 810 CONTINUE - NDIM = NDATASIZ - 1 - -C ...IN THE CDC6600 THE IDREC WAS ALWAYS JUST BEFORE NDATA BIG BIN -C ... IN CORE AND THERE WAS SOMETHING ABOUT THE AJM SORTER WHICH -C ... LOOKED OFF THE FRONT END OF THE BIN, SO IDREC(1) WAS CHANGED -C ... HERE TO BE SURE THE SORTER SAW SOMETHING W/I RANGE... - - MDIM = NDIM + 1 - DO 55 MK = 1,MDIM - NDATA(1,MK) = 0 - NDATA(2,MK) = 0 - NDATA(3,MK) = 0 - 55 CONTINUE -C ...WHICH ZEROD THE BIG BIN -C ...INITIALIZE COUNTER FOR NDATA OBS COUNT - MK = 1 -C -C * * * * * * * * * * * -C - 82 CONTINUE -C ...TO PROCESS THIS BIN OF OBSERVATIONS ... - KRDL = NOBSDB -C ...WHERE KRDL HAS COUNT OF OBS CONTAINED IN THIS DATA BIN - IF(KRDL .LE. 0) GO TO 84 - IF(KRDL .GT. MAXOBS) GO TO 84 -C ...OTHERWISE, COUNT OF OBS WITHIN ONE BIN IS WITHIN RANGE... - GO TO 88 -C - 84 CONTINUE -C ...COMES TO 84 IF COUNT OF OBS IN BIN WAS ERRONEOUS... - PRINT 86, NOBSDB - 86 FORMAT(1H , 'MKSORWRD:*** ERROR RETURN=3 ***.' - 1 /1h , 'COMMON/OBSLVLDB/NOBSDB COUNTER HAS OUT-OF-RANGE ' - 2 'COUNT= ', I8) - IERRA = 3 - RETURN -C - 88 CONTINUE - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ...INITIALIZE COUNTER FOR NDATA OBS COUNT - MK = 1 - LUPEND = KRDL - DO 200 N = 1,LUPEND - IF(N .GE. NDIM) GO TO 500 - - DO I = 1,LMTWRDPOB - I4WORK(I) = IOBS2PK(I,N) !... GOT ONE STNS OBS FOR ONE LV - ENDDO - - NGRPS2DO = LMTHFWPOB - CALL GBYTES(I4WORK,LONELVL,NOFFSET,NBITSGRP,NPADBITS,NGRPS2DO) - - do ihw = 1,NGRPS2DO - IF(BTEST(LONELVL(IHW),31)) THEN !... HI-ORDER BIT - LONELVL(IHW) = IOR(NEGSIGNEXT,LONELVL(IHW)) - ENDIF - ENDDO - - DO IB = 1,NGRPS2DO - IF((IB .EQ. 11) .OR. (IB .EQ. 12)) THEN - FLONELVL(IB) = 0.0 - ELSE - FLONELVL(IB) = FLOAT(LONELVL(IB)) / 4096.0 - ENDIF - ENDDO - - IDWRD = IAND(I4WORK(6),MSK1TO6BY) !... NAME - IOFFTIME = 5 !... SET OFFTIME-CODE = 5 - IDWRD = IOR(IDWRD,IOFFTIME) - TIME_HRS = FLONELVL(4) - IPKDTIME = NINT(100.0*TIME_HRS) - IPKDTIME = IAND(IPKDTIME,MSK12B) - IPKDTIME = ISHFT(IPKDTIME,4) - IDWRD = IOR(IDWRD,IPKDTIME) !... /NAME/TIME/OFFTIME/ -C !... / 48 / 12 / 4 / - - ALAT = FLONELVL(1) - ALONG = FLONELVL(2) - IELEV = NINT(FLONELVL(7)) - IRS = 0 - ITYPE = ISHFT(LONELVL(9),-12) - - IF(ITOUT .EQ. 3) ITYPE=IAND(ITYPE,NO77) -C ...WHICH DID A SPECIAL ERASER OF TRASH IN HI-ORDER OF TYPE IF UAB - - IF(ITYPE .GT. NO77) GO TO 200 -C ...WHICH DISCARDS ALL SFC OBS... - - IF(.NOT. LNEWPA) GO TO 190 - -C ... IF((ITYPE .EQ. 41) .OR. (ITYPE .EQ. 45)) GO TO 200 -C ... TYPE 45 IS MY OWN DESIGNATION (IN ACPROC AND PRESOR) FOR ACARS. -C ...WHICH DISCARDS ALL AIRCRAFT. REMOVE THIS AFTER BETTER THINNING -C ... REMOVED ON 97-02-25 ... - -C ... IF(ITYPE .EQ. 62) GO TO 200 !... SAT winds -C ... IF(ITYPE .EQ. 63) GO TO 200 -C ...TEMPORARY PATCH TO ELIM. SATWINDS UNTIL ALTITUDE TESTED - - 190 CONTINUE - IF(ITYPE .NE. 61) GO TO 92 - IF(ITOUT .EQ. 1) GO TO 90 - IF(ITOUT .EQ. 2) GO TO 90 - GO TO 92 - - 90 CONTINUE -C ...TEST FOR SIRS ATTACHED TO REF LVL ON 1DOT AND 2DOT BFR USE - IF(IRS .NE. 0) GO TO 200 -C - 92 CONTINUE - ISHTYP = ISHFT(ITYPE,42) !... 10+32 = 42 - IF(ITOUT .EQ. 7) GO TO 130 - - IF((ITOUT .EQ. 12) .OR. (ITOUT .EQ. 13)) GO TO 140 - - IF(LCL_KEIL .EQ. 3) GO TO 100 -C ... otherwise, - IF(ALAT .LT. 0.0) THEN - GO TO 200 -C ... WHICH DISCARDED THIS SRN HEMISPHERE OBS ... - ELSE -C ... THIS IS A NORTHERN HEMI OBS ... - GO TO 120 - ENDIF - - 100 CONTINUE -C ...COMES HERE IF DOING SRN HEMISPHERE, SO SAVE SRN HEMI - if(ALAT .GT. 0.0) THEN - GO TO 200 -C ...WHICH DISCARDED ALL NRN HEMI. - ENDIF -C ... OTHERWISE, THIS IS A SOUTHERN HEMISPHERE OBS ... - GO TO 120 - -C . . . . . . . . . . . . . . . . . . . . . . . . - 120 CONTINUE - IF(LCL_KEIL .EQ. 7) GO TO 125 !... big NHemi - - CALL TRUIJX(ALAT,ALONG,XI,XJ,LCL_KEIL,IRET_TIJ) - IF(XI .LT. AIMIN) GO TO 200 - IF(XI .GT. AIMAX) GO TO 200 - IF(XJ .LT. AJMIN) GO TO 200 - IF(XJ .GT. AJMAX) GO TO 200 - GO TO 160 - - 125 CONTINUE - CALL TRUIJX(ALAT,ALONG,XI,XJ,LCL_KEIL,IRET_TIJ) - IF(XI .LT. AIMIN) GO TO 200 - IF(XI .GT. ABGMXI) GO TO 200 - IF(XJ .LT. AJMIN) GO TO 200 - IF(XJ .GT. ABGMXJ) GO TO 200 - GO TO 160 - - 130 CONTINUE -C ...COMES TO 130 FOR I/J ON MERC ... - CALL MERCXY(ALAT,ALONG,TX,TY,IERR) - IF(IERR .NE. 0) GO TO 200 - XI = 45.0 - TY - XJ = TX - IF(XI .LT. 1.0) GO TO 200 - IF(XI .GT. 44.0) GO TO 200 - GO TO 160 - - 140 CONTINUE -C ...COME HERE FOR I/J ON PSEUDO-GOES. - CALL GOESXY(WLONG0,DISSAT,SCALE,ALAT,ALONG,XI,XJ,IEXIT) - IF(IEXIT .EQ. 1) GO TO 200 -C - XI = XI + XSHIFT - XJ = XJ + YSHIFT - XI = XI * 2.0 + 1.0 - XJ = XJ * 2.0 + 1.0 -C -C THIS CONVERTS FROM INCHES TO GRID INTERVALS. -C - GO TO 160 - - 160 CONTINUE -C ...TO PACK IJ INTO WORD 1 OF THREE... - ISTN = NINT(XI*TWOB9) - ISTN = IAND(ISTN,MSK18) - MQ = ISHFT(ISTN,14) -C ...TO POSITION III.III LEFT-JUSTIFIED 18 BITS OF 32-BIT WORD - - JSTN = NINT(XJ*TWOB9) - JSTN = IAND(JSTN,MSK18) - J3 = IAND(JSTN,MSK9IN) !... J3 IS INTEGER PORTION OF J - J3 = ISHFT(J3,-9) !... RIGHT-JUSITFIED - J3 = ISHFT(J3,32) !... RT-JUST IN LHS 32 BITS - - JFR = IAND(JSTN,MSK9) - JFR = ISHFT(JFR,5) - - IACC = IOR(J3,ISHTYP) !... IACC IS HI-ORDER 32 STUFF - MQ = IOR(MQ,JFR) !... MQ IS LO-ORDER 32 STUFF - IACC = IOR(IACC,MQ) - - NDATA(1,MK) = IACC -C ...WHERE NDATA(1,MK) IS A DOUBLE WORD CONTAINING THE IJ -C ... /ZEROS/ITYPE/UNUSED/JJJ/ III/III/JJJ/ZEROS/ -C ... /16 /6 / 1 / 9 / 9 / 9 / 9 / 5 / -C ... WHERE SECOND III AND JJJ ARE FRACTIONAL BITS... - NDATA(2,MK) = IDWRD - NDATA(3,MK) = N - mk = mk + 1 -C * * * * * * * * * * * -C ... IF(ITOUT .NE. 3) GO TO 420 -C ...OTHERWISE, ITOUT = 3 WHICH IS IQSY WITH UABPAP DATA... - - 200 CONTINUE -C ... where 200 is ENDDO on N = 5,LUPEND . . . . . . . . . . . - - GO TO 600 - - 500 CONTINUE - PRINT 320,NDIM,LVL - 320 FORMAT(1H ,'INPUT OBSERV DATA WILL BE TRUNCATED AT ', I5,' OBS AT - 1LEVEL = ', I2) - - 600 CONTINUE - ITCT = MK - PRINT 340, ITCT - 340 FORMAT(1H , 8X, 'TOTAL OBSERVATIONS KEPT BY MKSORWRD FOR THIS ', - 1 ' LEVEL = ', I5) - - RETURN - END diff --git a/util/sorc/plotvpap.fd/movch.f b/util/sorc/plotvpap.fd/movch.f deleted file mode 100755 index 44d922b035..0000000000 --- a/util/sorc/plotvpap.fd/movch.f +++ /dev/null @@ -1,55 +0,0 @@ - subroutine movch(nchars,c1sorc,iofsrc,c1dest,iofdst) -C 18-Jul-1996/dss -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: MOVCH TO MOVE CHARS FROM C*1 ARRAY TO C*1 ARRAY -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 96-07-18 -C -C ABSTRACT: TO MOVE CHARACTERS FROM CHARACTER*1 SOURCE ARRAY TO -C CHARACTER*1 DESTINATION ARRAY. -C To move NCHARS-bytes; start fetching from c1sorc(iofsrc) -C ... and start storing at c1dest(iofdst). -C -C PROGRAM HISTORY LOG: -C 96-07-18 ORIGINAL AUTHOR: DAVID SHIMOMURA -C -C USAGE: CALL movch(nchars,c1sorc,iofsrc,c1dest,iofdst) -C INPUT ARGUMENT LIST: -C NCHARS - COUNT OF CHARACTERS TO MOVE -C C1SORC - SOURCE ARRAY: CHARACTER*1 C1SORC(*) -C IOFSRC - SUBSCRIPT WITHIN SOURCE TO START THE FETCHING FROM; -C C1SORC(IOFSRC) -C IOFDST - SUBSCRIPT WITHIN DESTINATION TO START STORING INTO; -C C1DEST(IOFDST) -C -C OUTPUT ARGUMENT LIST: -C C1DEST - DESTINATION ARRAY: CHARACTER*1 C1DEST(*) -C -C -C REMARKS: -C CAUTION: You must give me valid values of array subscripts. -C ... If you point beyond destination array, I will try to -C ... to write out of bounds, since I do not know your -C ... array sizes. -C -C ... the logic used herein: this is an envelope to call XMOVEX(); -C ... which is in W3LIB. -C ... This will permit me to keep the same call sequence -C ... as in my IBM movch() routine. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ - - integer nchars - character*1 c1sorc(*) - integer iofsrc - character*1 c1dest(*) - integer iofdst - - call xmovex(c1dest(iofdst),c1sorc(iofsrc),nchars) - - return - end diff --git a/util/sorc/plotvpap.fd/moveid.f b/util/sorc/plotvpap.fd/moveid.f deleted file mode 100755 index bfecf9dff0..0000000000 --- a/util/sorc/plotvpap.fd/moveid.f +++ /dev/null @@ -1,185 +0,0 @@ - SUBROUTINE MOVEID(IO,JO,NAME,IPROB,ICNT,NOB,IDOTS, - 1 JDOTS,KCNT,JCOUNT,IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: MOVEID CHECKING FOR OVERWRITING STATIONS -C PRGMMR: LIN ORG: W/NMC412 DATE: 97-01-31 -C -C ABSTRACT: EACH INDIVIUAL STATION IS COMPARED TO A LISTING -C WHICH IDENTIFIES THE STATIONS THAT ARE OVERWRITING. -C -C PROGRAM HISTORY LOG: -C 89-05-26 ORIGINAL AUTHOR STEVE LILLY -C 89-06-21 LILLY ADDED LOGIC TO PLACE TOP BAR -C 89-06-27 LILLY ADDED LOGIC TO WRITE MB LEVEL WITHIN -C BOX -C 89-07-13 LILLY TAKE OUT LOGIC TO DRAW THE BOTTOM LINE -C OF BOX. -C 89-07-14 LILLY LOGIC WAS ADDED TO INDENTIFY THE STATION -C THAT WAS MOVED..IE; ID, LAT/LONG -C 89-11-03 LILLY ADDED LOGIC WHICH INDICATES THE I AND J -C POSITIONS OF A STATION THAT WAS MOVED -C 89-12-26 DENT INITIALIZE RETURN EXIT BEFORE THE FIRST -C STATEMENT TO PREVENT FALSE PLOTTING OF NON-PIBAL -C REPORTS. -C 93-05-08 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-01-31 LIN CONVERT SUBROUTINE TO CFT 77 -C -C USAGE: CALL MOVEID(IO,JO,NAMSTN,IPROB,ICNT,NOB,IDOTS, -C JDOTS,KCNT,JCOUNT,IERR) -C -C INPUT ARGUMENT LIST: -C IO - VARIAN I POSITION OF THE STATION -C JO - VARIAN J POSITION OF THE STATION -C NAME - INTEGER 2 WORD ARRAY CONTAINING STATION NAME -C - IN HOLLERTH. IE; '72308 ' CHARLESTON SC -C IPROB - STATIONS WHICH ARE OVERWRITING OTHER REPORTS -C ICNT - COUNTER OF OVERWRITING STATIONS FOUND IN LIST -C NOB - NUMBER OF OVERWRITING STATIONS -C -C OUTPUT ARGUMENT LIST: -C IDOTS - THE I POSITION IN DOTS UNITON THE VARIAN -C JDOTS - THE J POSITION IN DOTS UNIT ON THE VARIAN -C KCNT - INDICATES THE COUNT OF THE STATION MOVED -C JCOUNT - THIS COUNT AIDS IN COMPUTING THE I AND J -C - POSITION OF A STATION THAT WAS MOVED -C IERR - 0 NO OVERLAPPING STATIONS WERE FOUND -C - 1 A OVERLAPPING STATIONS WAS FOUND -C COMMON /LKTLBS/TLIM,LOOKT -C COMMON /ISTART/ISTART -C COMMON /KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C -C REMARKS: FUTHER OVERWRITING STATIONS MAY BE ADDED TO IDTABLE -C (FT26F001...PLOTMLTY). -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON /LKTLBS/TLIM,LOOKT - INTEGER LOOKT(9,63),TLIM - COMMON /ISTART/ISTART - COMMON /KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C - CHARACTER*4 AAAAS(26) - DATA AAAAS /26*'AAAA'/ -C - CHARACTER*8 DHMBS(29) -C -C??? INTEGER ID1A /1H7/ - CHARACTER*6 IPROB(NOB) - CHARACTER*8 NAME - INTEGER ICNT - INTEGER JCOUNT - DATA J /0/ -C - LOGICAL W3AI24 -C -C INITIALIZE RETURN HERE FOR NON PIBAL REPORTS - IER1 = 0 -C??? IF(.NOT.W3AI24(NAME,ID1A,1)) GOTO 5 - IF(.NOT.W3AI24(NAME,'7',1)) GOTO 5 -C -C TAKING THE NUMBER OF OVERLAPPING STATIONS AND THEN -C COMPARING WITH THE OBSERVED. -C - DO 711 K=1,NOB -C??? IF(W3AI24(NAME,IPROB(1,K),5)) GOTO 15 - IF(W3AI24(NAME,IPROB(K),5)) GOTO 15 - 711 CONTINUE -C -C THE ID OF THE OBSERVE STATION(NAME) DID NOT MATCH WITH -C ANY OF THE TROUBLE STATIONS(IPROB). -C - IER1 = 0 -C - GOTO 5 -C -C IF A OVERWRITING STATION IS NOTED, THE I AND J POSITIONS -C ARE CHANGED TO AN I AND J POSITION AT THE LEFT SIDE OF THE -C UPPER LEFT HAND CORNER. -C -C - 15 KCNT= K - ICNT=ICNT + 2 - PRINT *,' MOVEID ICNT IS ',ICNT,' J IS ',J - IF(ICNT.NE.1) GOTO 20 -C -C J IS A DUMMY VARIABLE USED AS A COUNTER FOR NUMBER OF OVERLAYING -C STATIONS...BEGINNING WITH ZERO - J = 0 -C A BOUNDARY IS PLOTTED ABOVE THE 1-DOT/2-DOTS VARIANS CHARTS. -C - ANGLE = 0.0 - IPRIOR = 1 -C -C LEFT SIDE: - HGT = 17.0 - NUMCH = 8 - CALL PUTLAB(10,1885,HGT,AAAAS,ANGLE,NUMCH,IPRIOR,0) -C -C RIGHT SIDE: -C - HGT = 17.0 - NUMCH = 8 - CALL PUTLAB(1710,1885,HGT,AAAAS,ANGLE,NUMCH,IPRIOR,0) -C -C BOTTOM LINE: -C -C HGT = 16.0 -C NUMCH = 100 -C CALL PUTLAB(10,1885,HGT,AAAAS,ANGLE,NUMCH,IPRIOR,0) -C -C TOP LINE: -C - HGT = 16.0 - NUMCH = 100 - - CALL PUTLAB(10,2025,HGT,AAAAS,ANGLE,NUMCH,IPRIOR,0) -C -C IDENTIFYING THE LEVEL AT THE TOP OF THE MAP...HOPEFULLY -C REPRODUCTION WILL NOT DESTORY OVERLAY STATION DATA -C IDRA(9) AND IDRA(10) GIVE MB LEVEL. IDRA'S FOUND IN -C SUBROUTINE INIDRA WHICH IS CALL BY SUBROUTINE MAPLOP. -C IDRA(9) AND IDRA(10) IS PASSED BY COMMON KPLOT -C -C - HGT = 11.0 - NUMCH = 6 - ANGLE = 90. - CALL PUTLAB(25,2000,HGT,IDRA(9),ANGLE,NUMCH,IPRIOR,0) -C -C ISTART IS DEFINED BY LCARD IN SUBROUTINE RDCAR1(THE -C 4 WORD)AND PASSED BY COMMON ISTART. IF DOING A -C ONE DOT FAX...ISTART = 460 (INDENTING THE OVERLAPPING -C STATION 4 INCHES FROM THE EDGE OF THE MAP). TWO DOT -C REQUIRES ISTART = 460. -C - IDOTS = ISTART - JDOTS = 1965 -C -C THIS HELPS TO IDENTIFY THE STATION THAT MOVES..IE; ID, LAT/LONG - CALL PUTLAB(300,1920,0.12,'ID',0.0,2,1,0) - CALL PUTLAB(300,1905,0.12,'LAT/LONG',0.0,8,1,0) -C - IER1 = 1 - GOTO 5 - 20 CONTINUE -C -C INCREMENT J COUNTER - J = J + 1 - JCOUNT = J - IDOTS = (60*ICNT) - (40*J) + (ISTART - 60) - JDOTS = 1965 - IER1 = 1 - 5 CONTINUE -C - IERR = IER1 -C -C NOTE...IF A OVERWRITING STATION IS NOT NOTED, THE I AND J -C POSITIONS DOES NOT CHANGE. -C - RETURN - END diff --git a/util/sorc/plotvpap.fd/movobs.f b/util/sorc/plotvpap.fd/movobs.f deleted file mode 100755 index 76f55a26c6..0000000000 --- a/util/sorc/plotvpap.fd/movobs.f +++ /dev/null @@ -1,109 +0,0 @@ - SUBROUTINE MOVOBS(KIO,KJO,ICNT,KIDOTS,KJDOTS,JCOUNT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: MOVOBS CHECKING FOR OVERWRITING STATIONS -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-08 -C -C ABSTRACT: FINDING THE I AND J VALUES FOR PLOTTING THE DATA -C AT THE TOP OF THE VARIAN PRODUCT. -C -C PROGRAM HISTORY LOG: -C 89-11-03 ORIGINAL AUTHOR STEVE LILLY -C 93-05-08 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C -C USAGE: CALL MOVOBS(KIO,KJO,ICNT,KIDOTS,KJDOTS,JCOUNT) -C -C INPUT ARGUMENT LIST: -C KIO - VARIAN I POSITION OF THE STATION -C KJO - VARIAN J POSITION OF THE STATION -C ICNT - COUNTER OF PROBLEM STATION THAT REPORTED IN -C - SUB MOVEID -C -C OUTPUT ARGUMENT LIST: -C KIDOTS - THE I POSITION IN DOTS UNITON THE VARIAN -C KJDOTS - THE J POSITION IN DOTS UNIT ON THE VARIAN -C JCOUNT - THIS COUNT AIDS IN COMPUTING THE I AND J -C - POSITION OF A STATION THAT WAS MOVED -C COMMON /ISTART/ISTART -C COMMON /KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON /ISTART/ISTART - COMMON /KPLOT / LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C - CHARACTER*4 AAAAS(26) - DATA AAAAS /26*'AAAA'/ - INTEGER ICNT - INTEGER JCOUNT -C - ICNT=ICNT + 2 -C - IF(ICNT.NE.1) GOTO 15 -C -C A BOUNDARY IS PLOTTED ABOVE THE 1-DOT/2-DOTS VARIANS CHARTS. -C - ANGLE = 0.0 - IPRIOR = 1 -C -C LEFT SIDE: - HGT = 17.0 - NUMCH = 8 - CALL PUTLAB(10,1885,HGT,AAAAS,ANGLE,NUMCH,IPRIOR,0) -C -C RIGHT SIDE: -C - HGT = 17.0 - NUMCH = 8 - CALL PUTLAB(1710,1885,HGT,AAAAS,ANGLE,NUMCH,IPRIOR,0) -C -C BOTTOM LINE: -C -C HGT = 16.0 -C NUMCH = 100 -C CALL PUTLAB(10,1885,HGT,AAAAS,ANGLE,NUMCH,IPRIOR,0) -C -C TOP LINE: -C - HGT = 16.0 - NUMCH = 100 - CALL PUTLAB(10,2025,HGT,AAAAS,ANGLE,NUMCH,IPRIOR,0) -C -C IDENTIFYING THE LEVEL AT THE TOP OF THE MAP...HOPEFULLY -C REPRODUCTION WILL NOT DESTORY OVERLAY STATION DATA -C IDRA(9) AND IDRA(10) GIVE MB LEVEL. IDRA'S FOUND IN -C SUB INIDRA WHICH IS CALL BY SUBROUTINE MAPLOP. -C IDRA(9) AND IDRA(10) IS PASSED BY COMMON KPLOT -C -C - HGT = 11.0 - NUMCH = 6 - ANGLE = 90. - CALL PUTLAB(25,2000,HGT,IDRA(9),ANGLE,NUMCH,IPRIOR,0) -C -C ISTART IS DEFINED BY LCARD IN SUBROUTINE RDCAR1(THE -C 4 WORD)AND PASSED BY COMMON ISTART. IF DOING A -C ONE DOT FAX...ISTART = 460 (INDENTING THE OVERLAPPING -C STATION 4 INCHES FROM THE EDGE OF THE MAP). TWO DOT -C REQUIRES ISTART = 460. -C -C THIS HELPS TO IDENTIFY THE STATION THAT MOVES..IE; ID, LAT/LONG - CALL PUTLAB(300,1920,0.12,'ID',0.0,2,1,0) - CALL PUTLAB(300,1905,0.12,'LAT/LONG',0.0,8,1,0) -C - ICNT=ICNT+2 -C - 15 CONTINUE -C -C INCREMENT J COUNTER - J = JCOUNT + 1 - KIDOTS = (60*ICNT) - (40*J) + (ISTART - 60) - KJDOTS = 1965 - JCOUNT = J -C - RETURN - END diff --git a/util/sorc/plotvpap.fd/pltdat.f b/util/sorc/plotvpap.fd/pltdat.f deleted file mode 100755 index d2534c0316..0000000000 --- a/util/sorc/plotvpap.fd/pltdat.f +++ /dev/null @@ -1,631 +0,0 @@ - SUBROUTINE PLTDAT(IDOTS,JDOTS,ihdewdep,IDDGD,IHFFF,NSSS, - 1 IHTT,JHT1,IHZZZ,C8NAMSTN,IOPTN,KEIL,NORWNDIR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PLTDAT PLOT ONE STATION -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 97-02-27 -C -C ABSTRACT: GIVEN: DATA FOR ONE STATION READY TO BE PLOTTED; -C TASK: TO PLOT THE DATA ACCORDING TO THE SPECIFED PLOTTING MODEL -C VIA PUTLAB. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 88-08-11 GLORIA DENT MOVE THE PLOTTING PARAMETERS DOWN OF STATION -C 72273 (FT. HUACHUA) SO THAT THEY WILL NOT OVERPLOT -C STATION 72274 (TUCSON) ON THE VARIAN CHART. -C 89-05-01 STEVE LILLY UPDATED DOCUMENTATION BLOCK -C 89-06-09 LILLY MOVED THE PLOTTING PARAMETERS WEST OF STATION -C 72435 (PADUCAH) AND EAST OF STATION 72327 -C (NASHVILLE/BERRY) SO THAT THEY WILL NOT -C OVERPLOT ON THE VARIAN CHART. -C 89-06-12 LILLY MOVED THE PLOTTING PARAMETERS NORTH OF STATION -C 72429 (DAYTON) AND SOUTH OF STATION 72425 -C (HUNTINGTON) SO THAT THEY WILL NOT -C OVERPLOT ON THE VARIAN CHART. -C 89-06-21 LILLY MOVED THE PLOTTING PARAMETERS WEST AND NORTH -C OF STATION 72435 (PADUCAH) AND EAST AND -C SOUTH OF STATION 72327 (NASHVILLE/BERRY). -C 93-05-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-02-01 SHIMOMURA - CONVERT TO RUN ON CRAY; -C -C USAGE: CALL PLTDAT(IDOTS,JDOTS,ihdewdep,NORWNDIR,IDDGD,IHFFF,NSSS, -C IHTT,JHT1,IHZZZ,C8NAMSTN,IOPTN,KEIL) -C -C INPUT ARGUMENT LIST: -C IDOTS - VARIAN I POSITION OF THE STATION -C JDOTS - VARIAN J POSITION OF THE STATION -C ihdewdep - C*4 FOR LIGHT AND VRBL WIND INCLUDING CALM -C NORWNDIR - INT - THE TRUE NORTH-ORIENTED WIND DIRECTION -C as a left-justified 8-character txt string -C in the integer word; of which the high- -C order 2-characters will be used -C as Arg(3) in call to wndirdig(); - -C IDDGD - INT - THE GRID-ORIENTED WIND DIRECTION -C IHFFF - C*4 WIND SPEED OR 12HR HEIGHT CHANGE -C NSSS - INT - WIND SPEED -C IHTT - C*4 THE TEMPERATURE -C JHT1 - C*4 TEMPERATURE OBS FOR THE CALC TEMP ABOVE OTHER TT -C IHZZZ - C*4 GEOPOTENIAL HEIGHT -C C8NAMSTN - C*8 C8NAMSTN STATION ID IN HOLLERITH FOR -C - S/R PUTLAB ENTRY -C IOPTN - INT - BIT OPTIONS FOR THE DESIRED PLOTTING MODEL. SEE -C - THIS SOURCE FOR DETAILED BIT DECLARATION. -C KEIL - INT - GIVEN THE KRUN OPTION; KEIL SPECIFIED THE GRID -C -C OUTPUT ARGUMENT LIST: -C COMMON - /CHKOUT/ NITEM -C COMMON - /MRGARG/YDIS,DUMMY(3),XO,YO -C COMMON - /XZPLAX/ XZPLOT,YZPLOT,IORITY -C -C REMARKS: -C CALLS SUBR PUTLAB(); -C WNDBRK(); -C WNDIRT(); -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - EXTERNAL LASTCH - INTEGER LASTCH - - - COMMON /CHKOUT/ NITEM - COMMON /MRGARG/YDIS,DUMMY(3),XO,YO - COMMON /XZPLAX/ XZPLOT,YZPLOT,IORITY -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... USAGE: CALL PLTDAT(IDOTS,JDOTS,ihdewdep,NORWNDIR,IDDGD,IHFFF,NSSS, -C IHTT,JHT1,IHZZZ,C8NAMSTN,IOPTN,KEIL) - INTEGER IDOTS,JDOTS - CHARACTER*4 ihdewdep - CHARACTER*8 NORWNDIR - INTEGER NDD - CHARACTER*4 IHFFF - INTEGER NSSS - CHARACTER*4 IHTT - CHARACTER*4 JHT1 - CHARACTER*4 IHZZZ - CHARACTER*8 C8NAMSTN - INTEGER IOPTN - INTEGER KEIL - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER IPRIOR(2) - - DIMENSION IDEL(6),JDEL(6) - DIMENSION ISDEL(6),JSDEL(6) - DIMENSION IMDEL(6),JMDEL(6) - DIMENSION ISVDEL(6),JSVDEL(6) - DIMENSION IMVDEL(6),JMVDEL(6) - DATA IMDEL/-5,-35,-25,5,5,-15/ - DATA JMDEL/-4,2,-13,-13,2,-28/ - DATA ISDEL/-2,-23,-17,5,5,-11/ - DATA JSDEL/-4,1,-8,-8,1,-17/ - DATA ISVDEL/ -4, -9, 0, 0, -9, 9/ - DATA JSVDEL/ -2,-23,-17, 5, 5,-11/ - DATA IMVDEL/ -8,-14, 1, 1,-14, 16/ - DATA JMVDEL/ -5,-35,-25, 5, 5,-15/ - DATA IMEDLA /-26/ - DATA JMEDLA / 1/ - DATA IMEDLB /-11/ - DATA JMEDLB /-26/ - DATA ICTDEL,JCTDEL/1,-9/ -C ...POSITIONING TO BRACKET REL TO LL OF TEMP - DATA ICZDEL,JCZDEL/1,-9/ -C ...POSITIONING TO BRACKET REL TO LL OF ZZZ - DATA IDELTK/-19/ - DATA JDELTK/5/ -C ...FOR RELOCATING TT TO ABOVE STN CIRCLE INSTEAD OF UPR LEFT... - - INTEGER INTCIRCLES - CHARACTER*1 C1CIRCLES(8) - EQUIVALENCE (INTCIRCLES,C1CIRCLES(1)) - DATA INTCIRCLES / X'0000003E5C3C2928' / -C DATA INTCIRCLES / X'28293C5C3E000000' / -C 1 2 3 4 5 - CHARACTER*1 C1OPENCIR - EQUIVALENCE (C1CIRCLES(1),C1OPENCIR) - CHARACTER*1 C1CLOSCIR - EQUIVALENCE (C1CIRCLES(2),C1CLOSCIR) - CHARACTER*1 C1SQRCIR - EQUIVALENCE (C1CIRCLES(3),C1SQRCIR) - CHARACTER*1 C1STARCIR - EQUIVALENCE (C1CIRCLES(4),C1STARCIR) - CHARACTER*1 C1RTBRACK - EQUIVALENCE (C1CIRCLES(5),C1RTBRACK) - -C ... DATA IOPCIR/Z'4D000000'/ -C ... DATA ICLCIR/Z'5D000000'/ -C ... DATA ISQCIR/Z'4C000000'/ -C ...WHICH IS SQUARE STN CIRCLE FOR A/C ... -C ... DATA ISRCIR/Z'E0000000'/ -C ... DATA IBRACT/ '>$ ' / - -C ...FOR RIGHT BRACKET IN 10TH CHAR SET FOR CALCULATED TEMPS AND HGT -C - CHARACTER*1 C1STNCIRCLE - -C * * * * * * * * * * * - -C ...NOW COMES BITS FOR VARIOUS OPTIONS IN IOPTN..... -C - DATA JSOUTH / X'0000000100000000' / -C ...TO MOVE ALL PARAMETER SOUTH 4 DOTS EXCEPT STA CIRCLE/WIND BARB - DATA KDOWN /Z'80000000'/ -C ...TO MOVE ALL PARAMETERS DOWN 12 DOTS EXCEPT STA CIRCLE/WIND BARB - DATA IWEST /Z'40000000'/ -C ...TO MOVE ALL PARAMETER WEST 4 DOTS EXCEPT STA CIRCLE/WIND BARB - DATA IEAST /Z'20000000'/ -C ...TO MOVE ALL PARAMETER EAST 4 DOTS EXCEPT STA CIRCLE/WIND BARB - DATA JNORTH /Z'10000000'/ -C ...TO MOVE ALL PARAMETER NORTH 4 DOTS EXCEPT STA CIRCLE/WIND BARB - DATA KMVTR/Z'8000000'/ -C ...FOR MOVING TT TO UPPER RIGHT OF STN CIRCLE - DATA KMEDW/Z'4000000'/ -C ...FOR MED-SMALL CHAR FOR HGT ON WINDS ALOFT CHART - DATA KMTMP/Z'2000000'/ -C ...TO PLOT 850 MB CALC TMP ABOVE REPORTED TMP -C ...TO MOVE BRACKET CLOSER TO DATA ON SIRS PLOTTED CHART. - DATA KCLOS/Z'1000000'/ -C ...TO MOVE BOGUS 'B' CLOSER TO STN CIRCLE - DATA KANGB/Z'800000'/ -C ... TO SET ANGLE TO 90 DEGREES FOR SIDEWAYS PLOTTING - DATA KSMNB/Z'400000'/ -C ...FOR SMALL CHARS IN STN NAME ... - DATA KCLZB/Z'200000'/ -C ... FOR CALCULATED GEOPOTENTIAL HGT ... - DATA KCLTB/Z'100000'/ -C ... FOR CALCULATED TEMPERATURES ... - DATA KMEDB/Z'80000'/ -C ... FOR MEDIUM-SMALL CHAR FOR TEMP ON IQSY CHART -C DATA KMVWB/Z'40000'/ -C ... FOR MOVING WIND BARBS FARTHER OUT STAFF - DATA KSMLB/Z'20000'/ -C ... FOR TINY CHAR SET PRINTING AS ON IQSY CHART - DATA KMVNB/Z'10000'/ -C ... FOR MOVING NAME CLOSER TO STN CIRCLE... - DATA KTALB/Z'8000'/ -C ... FOR ITALICS ON 12HR HGT CHG PRINT IN FFF LOT - DATA KSTRB/Z'4000'/ -C ... FOR STAR IN PLACE OF STN CIRCLE... - DATA KSQRB/Z'2000'/ -C ... FOR SQUARE IN PLACE OF STN CIRCLE... - DATA KMVDB/Z'1000'/ -C ... FOR MOVING DD PRINT RIGHT AND LOWER... - DATA KMVZB/Z'800'/ -C ... FOR MOVING ZZZ UPWARD... - DATA KDOVB/Z'400'/ -C ... FOR WIND DIR DIGIT PLOTTED NEAR END OF WIND STAFF - DATA KMVTB/Z'200'/ -C ... FOR MOVING TT TO ABOVE THE STN CIRCLE... - DATA KSMCB/Z'100'/ -C ... FOR SMALL STN CIRCLE... - DATA KVECB/Z'80'/ -C ... FOR WIND VECTOR... - DATA KNAMB/Z'40'/ -C ... FOR STATION NAME... - DATA KZZZB/Z'20'/ -C ... FOR GEOPOTENTIAL HEIGHT ... - DATA KFFFB/Z'10'/ -C ... FOR WIND SPEED PRINT IN LOWER RIGHT... - DATA KDDB/Z'8'/ -C ... FOR WIND DIRECTION PRINT IN LOWER LEFT... - DATA KTTB/Z'4'/ -C ... FOR TEMPERATURE PRINT IN UPPER LEFT... - DATA KOCB/Z'2'/ -C ... FOR OPEN OR CLOSED STN CIRCLE... - DATA KCIQB/1/ -C ... FOR A STATION CIRCLE... -C * * * * * * * * * * * -C - DATA HGTIT/18.0/ - DATA HGTMEA /19.0/ - DATA HGTMEB /24.0/ -C - integer magddgd - - INTEGER IQUAD !... FOR WNDIRDIG() - LOGICAL LSRNHEMI - - integer i8acc - character*8 c8acc - equivalence (i8acc,c8acc) - - character*2 c2dir - - SAVE - -C * * * * * * * * * * * - IQUAD = 0 !... FOR WNDIRDIGIT UPRIGHT ON NHEMI - LSRNHEMI = .FALSE. !... NOT A SRN HEMI -C ...STEP(1) ... INITIALIZE ... -C ... NITEM = NITEM + 1 -C ... IF(MOD(NITEM,10) .NE. 0) GO TO 130 - write(6,122)IDOTS,JDOTS,IDDGD,IHFFF(1:3),NSSS, - 1 IHTT(1:3),IHZZZ(1:4),IOPTN,C8NAMSTN(1:6),KEIL - 122 FORMAT(1H ,'pltdat:'2I6, 2X, 2X,Z16, 2X, A3, 2X, I4, - 1 2X, A3, 2X, A4,2X,Z10,2X,A6,I6) - - 130 CONTINUE - HGT = 1.0 - HGTSML = 4.0 - ANGLE = 0.0 - IPRIOR(1) = 0 - IPRIOR(2) = 1 - IF((IAND(IOPTN,KANGB)) .EQ. 0) GO TO 140 -C ...OTHERWISE, INITIALIZE FOR SIDEWAYS PLOTTING MODEL - hgt = 3.0 !... 97-02-20 for Merc sideways regular - hgtsml = 5.0 !... 97-02-20 for Merc sideways small - ANGLE = 90.0 - JUPNAM = 0 - ISCDEL = ISVDEL(1) - JSCDEL = JSVDEL(1) - IMCDEL = IMVDEL(1) - JMCDEL = JMVDEL(1) - HGTMED = HGTMEB - - IMEDEL = IMEDLB - JMEDEL = JMEDLB - IF((IAND(IOPTN,KSMLB)) .EQ. 0) GO TO 134 -C ...OTHERWISE, INITIALIZE FOR SMALL SIDEWAYS PLOTTING MODEL - ZHGT = HGTSML - IUPNAM = -3 - DO 132 I = 1,6 - IDEL(I) = ISVDEL(I) - JDEL(I) = JSVDEL(I) - 132 CONTINUE - IUPNM1 = -4 - JUPNM1 = 2 - GO TO 149 - - 134 CONTINUE -C ...INITIALIZE FOR REGULAR SIDEWAYS PLOTTING MODEL - ZHGT = HGT - IUPNAM = -9 - DO 136 I = 1,6 - IDEL(I) = IMVDEL(I) - JDEL(I) = JMVDEL(I) - 136 CONTINUE - GO TO 149 - - 140 CONTINUE - IUPNAM = 0 - ISCDEL = ISDEL(1) - JSCDEL = JSDEL(1) - IMCDEL = IMDEL(1) - JMCDEL = JMDEL(1) - HGTMED = HGTMEA - IMEDEL = IMEDLA - JMEDEL = JMEDLA - IF(IAND(IOPTN,KSMLB) .EQ. 0) GO TO 145 -C ...COMES HERE TO INITIALIZE FOR SMALL CHAR SET... - ZHGT = HGTSML - JUPNAM = 3 - IUPNM1 = 2 - JUPNM1 = 4 - DO 143 I = 1,6 - IDEL(I) = ISDEL(I) - JDEL(I) = JSDEL(I) - 143 CONTINUE - GO TO 149 - - 145 CONTINUE -C ...COMES HERE TO INITIALIZE FOR MIDDLE-SIZED (REGULAR) CHAR SET.. - ZHGT = HGT - JUPNAM=15 - IUPNM1 = 2 - JUPNM1=11 - DO 147 I = 1,6 - IDEL(I) = IMDEL(I) - JDEL(I) = JMDEL(I) - 147 CONTINUE - 149 CONTINUE - IF(IAND(IOPTN,KCIQB) .EQ. 0) GO TO 200 -C ...TO PLOT THE STN CIRCLE... - IF(IAND(IOPTN,KSQRB) .EQ. 0) GO TO 153 - C1STNCIRCLE = C1SQRCIR - GO TO 158 - 153 CONTINUE - IF(IAND(IOPTN,KSTRB) .EQ. 0) GO TO 1532 -C ...TO TEST IF STAR IS DESIRED FOR STN CIRCLE... - C1STNCIRCLE = C1STARCIR - GO TO 158 - 1532 CONTINUE - IF(IAND(IOPTN,KOCB) .EQ. 0) GO TO 156 - C1STNCIRCLE = C1CLOSCIR - GO TO 158 - 156 C1STNCIRCLE = C1OPENCIR - 158 CONTINUE - IF(IAND(IOPTN,KSMCB) .EQ. 0) GO TO 162 - ICIR = IDOTS + ISCDEL - JCIR = JDOTS + JSCDEL - XHGT = HGTSML - GO TO 164 - 162 CONTINUE - ICIR = IDOTS + IMCDEL - JCIR = JDOTS + JMCDEL - XHGT = HGT - 164 CONTINUE -c -c Start by checking for the out of bounds error: -c - IF(IAND(IOPTN,KVECB) .EQ. 0) GO TO 175 - IF(NSSS) 173,175,173 - 173 CONTINUE - CALL TSTBND(IDOTS,JDOTS,IDDGD,NSSS,NWOK,IOPTN,IRET_WNB) - IF(IRET_WNB .GT. 0) THEN - print *,'TSTBND error # ',iret_wnb - print *,'Drop out-of-bounds station ',C8NAMSTN(1:5) - goto 800 - ENDIF - 175 CONTINUE - - CALL PUTLAB(ICIR,JCIR,XHGT,C1STNCIRCLE,ANGLE,1,IPRIOR,0) -C -C * * * * * * * * * * * -C ...STEP(2) ... PREPARE TEMPERATURE FOR PLOT IN UPR LEFT... - 200 CONTINUE - IF(IAND(IOPTN,KTTB) .EQ. 0) GO TO 300 - IF(IAND(IOPTN,KMVTB) .EQ. 0) GO TO 244 - IUL = IDOTS + IDELTK - JUL = JDOTS + JDELTK - IF(IAND(IOPTN,KSMCB) .EQ. 0) GO TO 246 - JUL = JUL - 2 - GO TO 246 - 244 CONTINUE - IF(IAND(IOPTN,KMVTR).EQ.0) GO TO 245 -C ...TO MOVE TMP TO UPR RT FOR FAX WINDS ALOFT CHART - IUL=IDOTS-10 - JUL=JDOTS+8 - GO TO 246 - 245 CONTINUE - IUL = IDOTS + IDEL(2) - JUL = JDOTS + JDEL(2) - 246 CONTINUE - THGT = ZHGT - IF(IAND(IOPTN,KMEDB) .EQ. 0) GO TO 255 -C ...COMES HERE TO CHG TO MEDIUM-SMALL CHAR SIZE... - THGT = HGTMED - IUL = IDOTS + IMEDEL - JUL = JDOTS + JMEDEL - 255 CONTINUE - IF(IAND(IOPTN,KDOWN) .NE. 0) JUL = JUL - 12 - IF(IAND(IOPTN,IWEST) .NE. 0) IUL = IUL - 4 - IF(IAND(IOPTN,IWEST) .NE. 0) JUL = JUL + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) IUL = IUL + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) JUL = JUL - 4 - IF(IAND(ioptn,jnorth) .NE. 0) JUL = JUL + 4 - IF(IAND(ioptn,jsouth) .NE. 0) JUL = JUL - 4 -C ... write(6,2554)thgt,IHTT(1:3),ANGLE -C ... 2554 format(1H ,'pltdat: thgt=',F6.2,' ihtt=',A3,' angle=',F6.0) - CALL PUTLAB(IUL,JUL,THGT,IHTT,ANGLE,3,IPRIOR,0) - IF(IAND(IOPTN,KCLTB) .EQ. 0) GO TO 266 -C ...WHICH TESTS FOR CALCULATED TEMPERATURE... - IULC = IUL + ICTDEL - JULC = JUL + JCTDEL -C ...MOVE OVERSIZED BRACKET ON SIRS PLOTTED CHART - IF(IAND(IOPTN,KSMLB).EQ.0) GO TO 263 - IULC = IULC - 13 - JULC = JULC - 4 - 263 CONTINUE - TCHGT = 10.0 - IF(IAND(IOPTN,KDOWN) .NE. 0) JULC = JULC - 12 - IF(IAND(IOPTN,IWEST) .NE. 0) IULC = IULC - 4 - IF(IAND(IOPTN,IWEST) .NE. 0) JULC = JULC + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) IULC = IULC + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) JULC = JULC - 4 - IF(IAND(ioptn,jnorth) .NE. 0) JULC = JULC + 4 - IF(IAND(ioptn,jsouth) .NE. 0) JULC = JULC - 4 - CALL PUTLAB(IULC,JULC,TCHGT,C1RTBRACK,ANGLE,1,IPRIOR,0) - 266 CONTINUE -C -C * * * * * * * * * * * -C ...STEP(3) ... TO PREPARE WIND DD FFF FOR PLOTTING... - 300 CONTINUE - KB = IAND(IOPTN,KDDB) -C PRINT *,' PLTDAT KB FLAG IS ',KB - IF(IAND(IOPTN,KDDB) .EQ. 0) GO TO 330 - ILL = IDOTS + IDEL(3) - JLL = JDOTS + JDEL(3) - IF(KEIL .NE. 14) GO TO 323 - ILL = IDOTS - 21 - JLL = JDOTS - 11 - ZHGTMP = ZHGT - ZHGT = HGTMED - 323 CONTINUE - IF(IAND(IOPTN,KMVDB) .EQ. 0) GO TO 325 -C ...MOVE DD PRINT TO AVOID OVERPLOTTING ANOTHER STN... - ILL = ILL + 10 - JLL = JLL - 6 - 325 CONTINUE - IF(IAND(IOPTN,KDOWN) .NE. 0) JLL = JLL - 12 - IF(IAND(IOPTN,IWEST) .NE. 0) ILL = ILL - 4 - IF(IAND(IOPTN,IWEST) .NE. 0) JLL = JLL + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) ILL = ILL + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) JLL = JLL - 4 - IF(IAND(ioptn,jnorth) .NE. 0) JLL = JLL + 4 - IF(IAND(ioptn,jsouth) .NE. 0) JLL = JLL - 4 - CALL PUTLAB(ILL,JLL,ZHGT,ihdewdep,ANGLE,2,IPRIOR,0) - IF(KEIL .EQ. 14) ZHGT = ZHGTMP - 330 CONTINUE - IF(IAND(IOPTN,KFFFB) .EQ. 0) GO TO 400 - IF(KEIL .EQ. 14) GO TO 400 - IF(IAND(IOPTN,KTALB) .EQ. 0) GO TO 3305 - ILR = IDOTS + IDEL(4) - JLR = JDOTS + JDEL(4) - 1 - IF(IAND(IOPTN,KDOWN) .NE. 0) JLR = JLR - 12 - IF(IAND(IOPTN,IWEST) .NE. 0) ILR = ILR - 4 - IF(IAND(IOPTN,IWEST) .NE. 0) JLR = JLR + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) ILR = ILR + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) JLR = JLR - 4 - IF(IAND(ioptn,jnorth) .NE. 0) JLR = JLR + 4 - IF(IAND(ioptn,jsouth) .NE. 0) JLR = JLR - 4 - CALL PUTLAB(ILR,JLR,HGTIT,IHFFF,ANGLE,3,IPRIOR,0) - GO TO 333 - 3305 CONTINUE - IF(NSSS) 331,333,331 - 331 CONTINUE - ILR = IDOTS + IDEL(4) - JLR = JDOTS + JDEL(4) - IF(IAND(IOPTN,KDOWN) .NE. 0) JLR = JLR - 12 - IF(IAND(IOPTN,IWEST) .NE. 0) ILR = ILR - 4 - IF(IAND(IOPTN,IWEST) .NE. 0) JLR = JLR + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) ILR = ILR + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) JLR = JLR - 4 - IF(IAND(ioptn,jnorth) .NE. 0) JLR = JLR + 4 - IF(IAND(ioptn,jsouth) .NE. 0) JLR = JLR - 4 - CALL PUTLAB(ILR,JLR,ZHGT,IHFFF,ANGLE,3,IPRIOR,0) - 333 CONTINUE -C -C * * * * * * * * * * * -C ...STEP(4) ... TO PREPARE HEIGHT FOR PRINTING IN UPR RIGHT -C ... GIVEN IHZZZ IN (A4) FORMAT... - 400 CONTINUE - IF(IAND(IOPTN,KZZZB) .EQ. 0) GO TO 500 - IUR = IDOTS + IDEL(5) - JUR = JDOTS + JDEL(5) - IF(IAND(IOPTN,KMVZB) .EQ. 0) GO TO 408 -C ... MOVE ZZZ PLOT UP 6 DOTS TO AVOID ANOTHER STN... - JUR = JUR + 6 - 408 CONTINUE - IF(IAND(IOPTN,KMEDW).EQ.0) GO TO 409 -C ...COMES HERE TO CHANGE TO MEDIUM-SMALL CHAR SIZE - ZHGT=HGTMED - 409 CONTINUE - IF(IAND(IOPTN,KDOWN) .NE. 0) JUR = JUR - 12 - IF(IAND(IOPTN,IWEST) .NE. 0) IUR = IUR - 4 - IF(IAND(IOPTN,IWEST) .NE. 0) JUR = JUR + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) IUR = IUR + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) JUR = JUR - 4 - IF(IAND(ioptn,jnorth) .NE. 0) JUR = JUR + 4 - IF(IAND(ioptn,jsouth) .NE. 0) JUR = JUR - 4 - CALL PUTLAB(IUR,JUR,ZHGT,IHZZZ,ANGLE,4,IPRIOR,0) - IF(IAND(IOPTN,KCLZB) .EQ. 0) GO TO 426 -C ...WHICH TESTS FOR CALCULATED HEIGHTS - IURC=IUR+ICZDEL - JURC=JUR+JCZDEL - IF(IAND(IOPTN,KMEDW).EQ.0) GO TO 422 -C ...MOVE OVERSIZE BRACKET ON WINDS ALOFT CHART - IURC=IURC-8 - JURC=JURC-2 - GO TO 423 - 422 CONTINUE - IF(IAND(IOPTN,KSMLB).EQ.0) GO TO 423 -C ...MOVE OVERSIZE BRACKET ON SIRS PLOTTED CHART - IURC = IURC - 13 - JURC = JURC - 4 - 423 CONTINUE - TCHGT = 10.0 - JPRIOR=2 - IF(IAND(IOPTN,KDOWN) .NE. 0) JURC = JURC - 12 - IF(IAND(IOPTN,IWEST) .NE. 0) IURC = IURC - 4 - IF(IAND(IOPTN,IWEST) .NE. 0) JURC = JURC + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) IURC = IURC + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) JURC = JURC - 4 - IF(IAND(ioptn,jnorth) .NE. 0) JURC = JURC + 4 - IF(IAND(ioptn,jsouth) .NE. 0) JURC = JURC - 4 - CALL PUTLAB(IURC,JURC,TCHGT,C1RTBRACK,ANGLE,1,JPRIOR,0) - 426 CONTINUE - GO TO 500 -C -C * * * * * * * * * * * -C ...STEP(5) ... TO PLOT STATION NAME... - 500 CONTINUE - IF(IAND(IOPTN,KNAMB) .EQ. 0) GO TO 600 - ILLL = IDOTS + IDEL(6) - JLLL = JDOTS + JDEL(6) - IF(IAND(IOPTN,KMVNB) .EQ. 0) GO TO 506 - JLLL = JLLL + JUPNAM - ILLL = ILLL + IUPNAM -C ...TO MOVE NAME UP TO JUST BELOW STN CIRCLE, ASSUMING NO DD NOR FF - GO TO 508 - 506 CONTINUE - IF(IAND(IOPTN,KCLOS).EQ.0) GO TO 508 - ILLL = ILLL + IUPNM1 - JLLL=JLLL+JUPNM1 -C ...TO MOVE UP BOGUS 'B' TO JUST BELOW STN CIRCLE - 508 CONTINUE - AMHGT = ZHGT - IF(IAND(IOPTN,KSMNB) .EQ. 0) GO TO 514 -C ...TO USE SMALL CHAR SET FOR NAME NO MATTER WHAT ZHGT WAS... - AMHGT = HGTSML - 514 CONTINUE - NCHAR = LASTCH(C8NAMSTN(1:6)) - CALL PUTLAB(ILLL,JLLL,AMHGT,C8NAMSTN,ANGLE,NCHAR,IPRIOR,0) -C -C * * * * * * * * * * * -C ...STEP(6) ... PLOT WIND VECTOR IN PROPER DIRECTION ON MAP... - 600 CONTINUE - IF(IAND(IOPTN,KVECB) .EQ. 0) GO TO 700 - IF(NSSS) 611,700,611 - 611 CONTINUE - CALL WNDBRK(IDOTS,JDOTS,IDDGD,NSSS,NWOK,IOPTN,IRET_WNB) - IF(IRET_WNB .EQ. 0) THEN - IF(NWOK .GT. 0) THEN - GO TO 622 - ELSE - PRINT 620 - 620 FORMAT(1H , 10X, '***ERROR FROM WNDBRK. UNABLE TO PLOT A WIND VEC - 1TOR * * * * *' ) - GO TO 700 - ENDIF - ELSE -C ... ERROR RETURN FROM WNDBRK ... - IF(IRET_WNB .LT. 0) THEN - WRITE(6,621)IRET_WNB,C8NAMSTN(1:6) - 621 FORMAT(1H ,'pltdat::wndbrk:FATAL ERROR ... RETURN CODE=',I4, - 1 ' FOR STN=',A6) - GO TO 800 - ELSE - WRITE(6,6214)IRET_WNB,C8NAMSTN(1:6) - 6214 FORMAT(1H ,'pltdat::wndbrk:WARNING ... RETURN CODE=',I4, - 1 ' FOR STN=',A6) - GO TO 700 - ENDIF - ENDIF - - 622 CONTINUE - IF(IAND(IOPTN,KDOVB) .EQ. 0) GO TO 700 - if(iddgd .LT. 0) then - lsrnhemi = .true. - else - lsrnhemi = .false. - endif - magddgd = iabs(iddgd) -C i8acc = norwndir - c2dir(1:2) = norwndir(1:2) -C PRINT *,' PLTDAT ENTERING WNDIRDIG c2dir is ',c2dir - CALL WNDIRDIG(IDOTS,JDOTS,c2dir,magddgd,NSSS,IQUAD,LSRNHEMI) -C -C * * * * * * * * * * * - 700 CONTINUE -C ...STEP(7)...PLOT CALCULATED TMP ABOVE OBSERVED TMP - IF(IAND(IOPTN,KMTMP).EQ.0) GO TO 800 - IUPL=IDOTS-35 - JUPL=JDOTS+17 - IF(IAND(IOPTN,KDOWN) .NE. 0) JUPL = JUPL - 12 - IF(IAND(IOPTN,IWEST) .NE. 0) IUPL = IUPL - 4 - IF(IAND(IOPTN,IWEST) .NE. 0) JUPL = JUPL + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) IUPL = IUPL + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) JUPL = JUPL - 4 - IF(IAND(ioptn,jnorth) .NE. 0) JUPL = JUPL + 4 - IF(IAND(ioptn,jsouth) .NE. 0) JUPL = JUPL - 4 - CALL PUTLAB(IUPL,JUPL,HGT,JHT1,ANGLE,3,IPRIOR,0) - IUPL=IUPL+1 - JUPL=JUPL-9 - IF(IAND(IOPTN,KDOWN) .NE. 0) JUPL = JUPL - 12 - IF(IAND(IOPTN,IWEST) .NE. 0) IUPL = IUPL - 4 - IF(IAND(IOPTN,IWEST) .NE. 0) JUPL = JUPL + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) IUPL = IUPL + 4 - IF(IAND(IOPTN,IEAST) .NE. 0) JUPL = JUPL - 4 - IF(IAND(ioptn,jnorth) .NE. 0) JUPL = JUPL + 4 - IF(IAND(ioptn,jsouth) .NE. 0) JUPL = JUPL - 4 - CALL PUTLAB(IUPL,JUPL,10.0,C1RTBRACK,ANGLE,1,IPRIOR,0) - 800 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/pnanji.f b/util/sorc/plotvpap.fd/pnanji.f deleted file mode 100755 index a1a3185302..0000000000 --- a/util/sorc/plotvpap.fd/pnanji.f +++ /dev/null @@ -1,148 +0,0 @@ - SUBROUTINE PNANJI(INFILE,IDWORD,IDATE,IYR,IMO,IDAY,ITIME,IYMDH) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PNANJI PACK NANJI ARRAY -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-05 -C -C ABSTRACT: THIS PROGRAM PACKS THE COMMON ARRAY NANJI, WHICH IS -C USED FOR A NUMBER OF PURPOSES DOWNSTREAM. IT HOLDS DATE/TIME -C INFORMATION, THE CURRENT FILE NAME, AND THE DUMP TIME, ALL -C CAREFULLY FORMATTED. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-25 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C 89-04-27 HENRICHSEN CLEAN UP CODE AND SIMPLIFY. -C 93-05-05 LILLY CONVERT SUB. TO FORTRAN 77 -C -C USAGE: CALL PNANJI(INFILE,IDWORD,IDATE,IYR,IMO,IDAY,ITIME,IYMDH) -C -C INPUT ARGUMENT LIST: -C INFILE - INPUT FILE NUMBER SUCH AS 19 FOR ADPUPA -C IDWORD - USE FOR FINDING THE DUMP TIME OF THIS FILE IN -C - HUNDREDTHS OF HOURS -C IDATE - INTEGER 8 WORD ARRAY THAT CONTAINS FILE NAME -C - AND DATE TIME INFORMATION OF INFILE. -C -C -C OUTPUT ARGUMENT LIST: -C IYR - YEAR -C IMO - MONTH -C IDAY - DAY -C ITIME - SYNOPTIC TIME -C IYMDH - DATE/TIME PACKED, 8 BITS EACH PART -C COMMON - /TIMES / NANJI(12) -C COMMON - /TIMET / NANJK(2) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON /TIMES / NANJI(12) - COMMON /TIMET / NANJK(2) -C - CHARACTER*12 IBCD - CHARACTER*4 BLANKS(12) /12*' '/ -C - CHARACTER*1 PLUS /'+'/ - CHARACTER*1 LGAC(4) -C - INTEGER JBCD(4) - INTEGER IDATE(8) - INTEGER ITEXT(2) - INTEGER MSKL2 /ZFFFF0000/ - INTEGER MSKR2 /Z0000FFFF/ -C -C - EQUIVALENCE(LGAC(1),IACC) - EQUIVALENCE(JBCD(1),IBCD) -C -C FILL NANJI WITH BLANKS. - CALL MOVCH(48,BLANKS,1,NANJI,1) -C -C UNPACK AND CONVERT DATE TO INTEGER STARTING WITH WORD 3 OF -C IDATE ARRAY. WHERE IDATE(3-4) CONTAIN YYMM DDHH IN HOLLERITH. -C - CALL FFA2I(IDATE,9,2,4,JBCD,IERR) - IYR = JBCD(1) - IMO = JBCD(2) - IDAY= JBCD(3) - IHR = JBCD(4) -C - ITIME = IHR * 100 - WRITE(6,20) ITIME,IYR,IMO,IDAY - 20 FORMAT(5X,'SYNOPTIC TIME IS ',I4,1HZ,' YEAR ',I2, - Z ' MONTH ',I2,' DAY ',I2) - LGAC(1) = CHAR(IYR) - LGAC(2) = CHAR(IMO) - LGAC(3) = CHAR(IDAY) - LGAC(4) = CHAR(IHR) - IYMDH = IACC -C -C WHICH PACKS DATE/TIME AS INTEGERS, 8-BITS FOR EACH PART. -C - CALL MOVCH(8,IDATE,9,NANJI,1) -C -C WHERE NANJI(1),(2) NOW CONTAIN DATE/TIME OF THIS FILE IN -C EBCDIC, YYMM DDZZ, 2A4. -C - CALL MOVCH(6,IDATE,1,NANJI,9) -C -C NOW NANJI(3),(4) HOLDS FILE NAME SUCH AS 'ADPU', 'PA '. -C - CALL FFA2I(IDATE,17,4,1,IDMPTM,IERR) -C -C IDMPTM HAS DUMP TIME OF THIS FILE IN HUNDREDTHS OF HOURS. -C -C -C FILL ITEXT WITH BLANKS. -C - CALL MOVCH(8,BLANKS,1,ITEXT,1) -C - IACC = IAND(IDWORD,MSKL2) - MQ = IAND(IDMPTM,MSKR2) - IDWORD = IOR(IACC,MQ) - IRELTM = IDMPTM - ITIME - IF(IRELTM .GE. 0) GO TO 500 -C -C FALL THROUGH IF SYNOPTIC TIME WAS GREATER THAN DUMP TIME. -C - IRELTM = 2400 + IRELTM - IF(IRELTM .GE. 0) GO TO 500 - WRITE(6,40) IDATE(1),IDATE(2),INFILE - 40 FORMAT(1H0, 5X, 'ERROR IN DUMP TIME OF FILE = ', A4, A2, 3X, - X 'ON FT', I2, /1H , 15X,'PROCEEDING WITH BLANKS IN DUMP TIME') - GO TO 600 -C - 500 CONTINUE - IRELHR = IRELTM / 100 - MINUTE = MOD(IRELTM,100) - MINUTE = (FLOAT(MINUTE) * 0.60) + 0.50 - NCHAR = 2 - CALL INT2CH(IRELHR,IBCD,NCHAR,'A999') - CALL MOVCH(2,IBCD,1,ITEXT,1) - CALL MOVCH(1,PLUS,1,ITEXT,3) - CALL INT2CH(MINUTE,IBCD,NCHAR,'A999') - CALL MOVCH(2,IBCD,1,ITEXT,4) - 600 CONTINUE - CALL MOVCH(8,ITEXT,1,NANJI,17) -C -C GIVING NANJI(5),(6) THE RELATIVE DUMP TIME IN 5 CHARACTERS, -C SUCH AS '10+2', '5 ' (A4,A1) -C - IF(INFILE.NE.19) GO TO 700 - NANJK(1)=NANJI(5) - NANJK(2)=NANJI(6) - 700 CONTINUE -C - NANJI(7) = IYMDH - NANJI(8) = 0 -C -C SO NANJI(7) HAS DATE/TIME PACKED, 8 BITS EACH PART. -C - RETURN - END diff --git a/util/sorc/plotvpap.fd/presort.f b/util/sorc/plotvpap.fd/presort.f deleted file mode 100755 index dd5ff12707..0000000000 --- a/util/sorc/plotvpap.fd/presort.f +++ /dev/null @@ -1,237 +0,0 @@ - SUBROUTINE PRESORT(KRUN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PRESORT PRE THINNER PROCESSOR -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 97-01-14 -C -C ABSTRACT: ASSIGNS A NEW OBS_TYPE AND A PRIORITY FOR -C FOR THINNING (SEE REMARKS FOR FURTHER DETAILS). -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR - SHIMOMURA -C 88-07-25 GLORIA DENT PUT IN DOCUMENTATION BLOCK -C 89-04-17 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C 93-05-06 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-01-14 SHIMOMURA - CONVERT FROM IBM FORTRAN TO CRAY FORTRAN -C - ADDED COMMENTS -C -C USAGE: CALL PRESORT (KRUN) -C -C INPUT ARGUMENT LIST: -C KRUN - THE RUN OPTION READ FROM DATA CARDS IN THE JCL -C NDATA(1,X)(IBIT 53:42) - GIVEN 12-BIT OBS TYPE -C NDATA(2,X)(IBIT 3:0) - GIVEN 4-BIT OFFTIME CODE -C NDATA(2,X)(IBIT 63:16) - GIVEN 6-CHARACTER STATION NAME -C WHERE NDATA ARRAY IS FOUND IN COMMON /JSPACE/ ... - -C OUTPUT ARGUMENT LIST: -C NDATA(1,X)(IBIT 47:42) - REPLACEMENT 6-BIT OBS TYPE -C NDATA(1,X)(IBIT 4:0) - PRIORITY FOR THINNING -C -C COMMON - /JSPACE/ IDREC(6), NDATA(3,4001) -C -C OUTPUT FILES: -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: THE OBSERVATION-TYPE, GIVEN IN 12 BITS PACKED -C IN BITS 11 THRU 22 (COUNTING FROM 1 AT HI-ORDER BIT POSITION) -C OF LONGWORD NDATA(1,X), IS REPLACED BY A NEW TYPE CONSISTING -C OF 6 BITS AND PACKED INTO BITS 17 THRU 22 OF THE SAME WORD. -C THE PRIORITY (WHICH IS DETERMINED FROM THE GIVEN TYPE AND THE -C GIVEN OFF-TIME CODE) IS PACKED RIGHT-JUSTIFIED 5 BITS IN -C LONGWORD NDATA(1,X). -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - INTEGER MAXOBS - PARAMETER (MAXOBS=20000) - INTEGER KSIZDATA - PARAMETER (KSIZDATA=MAXOBS+1) -C ...IF DIMENSION OF NDATA IS CHANGES, SO MUST MAXOBS BE CHANGED... - - COMMON /JSPACE/ IDREC(6), NDATA(3,KSIZDATA) -C - integer*8 NDATA -C - - - INTEGER ITTEST(21) - DATA ITTEST / 11, 12, 13, 21, 22, - 1 23, 31, 41, 42, 45, - 2 51, 61, 62, 63,511, - 3 512,513,521,522,523,551/ -C - INTEGER KTRA(21) - DATA KTRA / 1, 1, 1, 2, 3, - 1 3, 5, 8, 8, 7, - 2 4, 6,12,13, 1, - 3 1, 1, 2, 3, 3, 4/ -C - INTEGER NEWTYP(21) - DATA NEWTYP / 1, 2, 3, 4, 5, - 1 6, 7, 8, 8, 9, - 2 10,11,12,13,Z'3E', - 3 Z'3D',Z'3C',Z'3B',Z'3A',Z'39',Z'36'/ -C -C -C ...TABLE OF TYPES SEQUENTIALLY NUMBERED -C ...SFC TYPES ARE ONES COMPLEMENTS, DESIGNED TO FIT IN 6 BITS... - -C ...FOLLOWING ARE THE PRIORITIES... - - DATA KLAND / 1/ - DATA KSHIP / 1/ - DATA KPIBAL / 2/ - DATA KRECCO / 3/ - DATA KACARN / 4/ - DATA KACON / 5/ - DATA KACARF / 6/ - DATA KACOFF / 7/ - DATA KSIR / 8/ - DATA KBOGUS / 9/ - DATA KBLANK /10/ - DATA LBOG /11/ -C - DATA mskofftim /Z'0000000F'/ - - DATA MSKTYP /Z'00000FFF'/ -C ...WHERE MSKTYP ALLOWS 12-BIT ZONE FOR THE GIVEN OBS TYPE -C ... AFTER SHIFTING TO RIGHT-JUSTIFIED -C ... WHICH IS REPLACED HEREIN BY A 6-BIT OBS TYPE - - INTEGER MSKPRI - DATA MSKPRI / X'000000000000001F' / - INTEGER NOTPRI - DATA NOTPRI / X'FFFFFFFFFFFFFFE0' / - INTEGER NOTTYP - DATA NOTTYP / X'FFC003FFFFFFFFFF' / -C - integer*8 LONGWORD - - integer*8 LONGWRDB - CHARACTER*8 CLONGWRDB - EQUIVALENCE (LONGWRDB,CLONGWRDB) - - INTEGER IPRIVAL - - -C ... FOR LFM OPTION (KRUN = 5) BOOST THE PRIORITY OF TIROS DATA. -C - IF(KRUN .EQ. 5) KSIR = KPIBAL - - DO 1000 J = 1,MAXOBS - IF(NDATA(1,J) .EQ. 0) GO TO 1100 !... END ALL OBS - - LONGWORD = NDATA(1,J) - LONGWRDB = NDATA(2,J) - - ITYPE = ISHFT(LONGWORD,-42) - ITYPE = IAND(ITYPE,MSKTYP) -C ... WHERE ITYPE CONTAINS THE OLD, GIVEN, TYPE ... - - DO 72 II = 1,21 - IISV = II - IF(ITYPE .EQ. ITTEST(II)) GO TO 74 - 72 CONTINUE -C ... IF IT FALLS THRU, THEN NO MATCH FOUND FOR THIS TYPE ... - WRITE(6, 73) ITYPE,J,LONGWORD,CLONGWRDB(1:6) - 73 FORMAT(1H ,'presort:UNKNOWN TYPE OF OBS = HEX ', Z8, - 1 3X, 'IN NDATA(1,', I5, ') = HEX ',Z16, - 2 3X, 'FOR STATION = ', A6) - -C ...MARK THIS UNKNOWN AS NEWTYP BOGUS W/ ZERO PRIORITY - LONGWORD = IAND(LONGWORD,NOTTYP) !... ERASE TYPE ZONE - LTYPE = LBOG - LTYPE = ISHFT(LTYPE,42) - LONGWORD = IOR(LONGWORD,LTYPE) - - NDATA(1,J) = IAND(LONGWORD,NOTPRI) !... PRIORITY=0 - GO TO 1000 !... JUMP TO ENDDO TO DO NEXT STN - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 74 CONTINUE -C ... COMES HERE OUT OF INNER DO 72 WITH MATCH TYPE FOUND AT IISV - - KDSTYP = NEWTYP(IISV) - KDSTYP = ISHFT(KDSTYP,42) - LONGWORD = IAND(LONGWORD,NOTTYP) !... ERASE TYPE ZONE - LONGWORD = IOR(KDSTYP,LONGWORD) -C ...WHICH SUBSTITUTED THE SHORTER NEW TYPE IN THE LONGWORD ... -C ...NEXT... GET PRIORITY... = F(TYPE,OFFTIME) - - KTYPE = KTRA(IISV) -C ...WHERE KTYPE IS INDEX FOR LONG GO-TO ... - KOFFTM = IAND(NDATA(2,J),mskofftim) - - IPRIVAL = 0 - -C ... GO TO (101,102,102,104,105,106,107,108,120,120,120,112,104),KTYPE -C 1 2 3 4 5 6 7 8 9 10 11 12 13 -C ... GO TO 120 - - IF (KTYPE .EQ. 1) THEN - IF(KOFFTM .LE. 4) THEN - IPRIVAL = KBLANK - ELSE - IPRIVAL = KLAND - ENDIF - - ELSE IF((KTYPE .EQ. 2) .OR. (KTYPE .EQ. 3)) THEN - IPRIVAL = KSHIP - - ELSE IF((KTYPE .EQ. 4) .OR. (KTYPE .EQ. 13)) THEN - IPRIVAL = KBOGUS - - ELSE IF (KTYPE .EQ. 5) THEN - IPRIVAL = KRECCO - - ELSE IF (KTYPE .EQ. 6) THEN - IPRIVAL = KSIR - - ELSE IF (KTYPE .EQ. 7) THEN - IF(KOFFTM .LE. 4) THEN - IPRIVAL = KACARF - ELSE - IPRIVAL = KACARN - ENDIF - - ELSE IF (KTYPE .EQ. 8) THEN - IF(KOFFTM .LE. 4) THEN - IPRIVAL = KACOFF - ELSE - IPRIVAL = KACON - ENDIF - - ELSE IF((KTYPE .EQ. 9) .OR. - 1 (KTYPE .EQ. 10) .OR. - 2 (KTYPE .EQ. 11)) THEN - IPRIVAL = KBLANK - - ELSE IF (KTYPE .EQ. 12) THEN - IPRIVAL = KPIBAL -C - ELSE - IPRIVAL = KBLANK - ENDIF - - GO TO 200 - -C - 200 CONTINUE -C - IPRIVAL = IAND(IPRIVAL,MSKPRI) !... 4-BIT MSK FOR PRIOR - LONGWORD = IAND(LONGWORD,NOTPRI) - LONGWORD = IOR(LONGWORD,IPRIVAL) - NDATA(1,J) = LONGWORD -C - 1000 CONTINUE -C -C ... WHICH IS END OF DO LOOP ON EACH OBSERVATION. -C - 1100 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/putl_fm.f b/util/sorc/plotvpap.fd/putl_fm.f deleted file mode 100755 index fae8de6ab2..0000000000 --- a/util/sorc/plotvpap.fd/putl_fm.f +++ /dev/null @@ -1,246 +0,0 @@ - SUBROUTINE PUTL_FM(LMT_NCACC,NCINACC,LOWACCTEX,ICOMMAND, - A KFONT,KROTAT,IPRIOR,IRET700) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PUTL_FM PUTLAB SUBR TO FORMAT FOR LABEL-ARRAY -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-07-01 -C -C ABSTRACT: CALLED ONLY FROM PUTLAB() TO FORMAT ONE LABEL-ARRAY -C WORD-PAIR FROM THE GIVEN ACCUMULATED COMPONENTS. -C -C PROGRAM HISTORY LOG: -C 95-11-02 DAVID SHIMOMURA -C 1999-07-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO -C IBM RS/6000. -C -C USAGE: CALL PUTL_FM(LMT_NCACC,NCINACC,LOWACCTEX,ICOMMAND, -C KFONT,KROTAT,IPRIOR,IRET700) -C INPUT ARGUMENT LIST: -C LMT_NCACC - INT; LIMITING CAPACITY (NO. OF BYTES) IN LOWACCTEX -C NCINACC - INT; ACTUAL NO. OF DATA BYTES PASSED IN LOWACCTEX -C LOWACCTEX - INT; ACCUMULATOR FOR TEXT; SHIFTED IN FROM LOW-END -C ICOMMAND - INT; VALUE OF ICMD FROM PUTLAB CALL SEQ -C =0; THEN FORMAT LABEL(2,LABIX) WITH AN EXPLICIT -C CHAR-SET INDEX FOLLOWED BY TEXT; -C =1; THEN FORMAT LABEL(2,LABIX) WITH NO CHAR-SET INDEX -C -C KFONT - INT; FONT_INDEX -C KROTAT - INT; VALUE OF ROTATION FROM KROT_PRI(1) OF PUTLAB() -C IPRIOR - INT; VALUE OF PRIORITY FROM KGOT_PRI(2) OF PUTLAB() -C (SEE DOCBLOCK OF PUTLAB()) -C -C INPUT VIA COMMON: -C COMMON /PUTWHERE/ IERPUT,LCKPT_PUT,LCKPRNQQ, -C IJPXL_GIVN(2),IJPXL_LBL(2),IJPXL_NEXCH(2), -C NCALLS_PUT,ICOUNT_FONT(MAXFONT) -C -C LCKPT_PUT - INT; CHECKPOINT LOCATION IN PUTLAB() FROM WHICH CALLED -C LCKPRNQQ - LOGICAL; WHETHER TO PRINT CHECKOUT REMARKS -C IJPXL_LBL(2) - INT; CONTAINING (IWORD,JWORD) -- THE PIXEL -C LOCATION FOR THIS CURRENT LABEL-ARRAY ITEM; -C IJPXL_NEXCH(2) - INT; CONTAINING (NEWI,NEWJ) -- THE PIXEL -C LOCATION AFTER THIS LABEL-ARRAY ITEM IS -C PLOTTED; -C -C OUTPUT ARGUMENT LIST: -C IRET700 - RETURN CODE -C =0; NORMAL RETURN -C =1; FAILED FROM CALLING PUTL_WR() TO OUTPUT A BUFFER -C -C OUTPUT VIA COMMON: -C COMMON /KPLOT/ LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C -C LABEL(1,LABIX+1) <= J-,I-WORD (+ ARROW-UP BIT + PRIORITY) -C LABEL(2,LABIX+1) <= CHAR-SET-INDEX//TEXT//'$' (+ ROTATION) -C -C OUTPUT FILES: -C U:6 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C CALLS ON SUBR PUTL_WR() WHEN LABEL-ARRAY IS FULL -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C$$$ -C 23-OCT-1995/DSS -C ... ONLY CALLED FROM PUTLAB() -C ... USED TO BE AN ASSIGNED GOTO SUBR 700 (RETURNED THRU KAERU) -C ...TO FORMAT AND TRANSFER A PARTIALLY FULL ACC TO LABEL ARRAY.... -C ... THIS VERSION FOR 32-BITS IN LOWER HALF OF LONG WORDS -C ... GIVEN: IN LOWACCTEX IS ACCUMULATED TEXT SUBSTRING IN THE -C ... LOW-ORDER NCINACC-BYTES OF THE LONGWORD. -C - INTEGER LMAX - PARAMETER (LMAX = 1024) -C ... PARAMETER (LMAX = 64) ... FOR CHECKOUT ONLY FOR SMALLER BIN - INTEGER LMAX2 - PARAMETER (LMAX2=LMAX*2) - - COMMON /KPLOT/ LABEL(2,LMAX),LABIX,NOBUF,IDRA(50) -C - INTEGER MAXFONT - PARAMETER (MAXFONT=63) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - COMMON /PUTWHERE/ LBLTAP,IERPUT,LCKPT_PUT,LCKPRNQQ, - 1 IJPXL_GIVN(2),IJPXL_LBL(2),IJPXL_NEXCH(2), - 2 NCALLS_PUT,ICOUNT_FONT(MAXFONT) - - INTEGER LBLTAP - INTEGER IERPUT - INTEGER LCKPT_PUT - LOGICAL LCKPRNQQ - - INTEGER IWORD,JWORD - EQUIVALENCE (IJPXL_LBL(1),IWORD) - EQUIVALENCE (IJPXL_LBL(2),JWORD) - - INTEGER NEWI,NEWJ - EQUIVALENCE (IJPXL_NEXCH(1),NEWI) - EQUIVALENCE (IJPXL_NEXCH(2),NEWJ) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - - INTEGER LMT_NCACC - INTEGER NCINACC - INTEGER LOWACCTEX - INTEGER ICOMMAND - INTEGER KFONT - INTEGER KROTAT - - INTEGER IRET700 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C ... TO DEFINE THE IDOLLAR() CONSTANTS FOR "$" TERMINATOR -C ... POSITIONED AFTER N CHARACTERS WITHIN LABEL-ARRAY TXT INTEGER -C ... INTEGER IDOLL(4) -C ... DATA IDOLL / Z005B0000, Z00005B00, Z0000005B, 0/ - - INTEGER IDOLLAR(5) !... TERMINATING DOLLAR SIGN - DATA IDOLLAR / - 5 X'00240000', - 6 X'00002400', - 7 X'00000024', - 8 X'00000000', - 9 X'00000000' / - INTEGER MSKNM1CH - DATA MSKNM1CH / X'00FFFFFF' / - INTEGER MSKHIBYT - DATA MSKHIBYT / X'FF000000' / -C -C ... INTEGER IDOLLAR(9) !... TERMINATING DOLLAR SIGN -C ... DATA IDOLLAR / X'0024000000000000', -C ... 2 X'0000240000000000', -C ... 3 X'0000002400000000', -C ... 4 X'0000000024000000', -C ... 5 X'0000000000240000', -C ... 6 X'0000000000002400', -C ... 7 X'0000000000000024', -C ... 8 X'0000000000000000', -C ... 9 X'0000000000000000' / -C ... INTEGER MSKNM1CH -C ... DATA MSKNM1CH / X'00FFFFFFFFFFFFFF' / -C ... INTEGER MSKHIBYT -C ... DATA MSKHIBYT / X'FF00000000000000' / - - INTEGER MSK6BIT - DATA MSK6BIT / X'0000003F' / - INTEGER MSK2BIT - DATA MSK2BIT / X'00000003' / - INTEGER IARWUB - DATA IARWUB / X'00010000' / -C 12345678 - - INTEGER JACCTEX - INTEGER NCHIN - INTEGER IXFONT_HI - INTEGER JWORD_LHS - INTEGER LEFSHF - INTEGER IPRY13 - INTEGER IAPC - - INTEGER IAC3 - INTEGER IACC - INTEGER MQ - - LOGICAL LPACK_RAQ - LOGICAL LCLEAN_AFTQ - INTEGER IRET101 -C -C . . . . . S T A R T . . . . . . . . . . . . . . . . . . . - - 700 CONTINUE - IRET700 = 0 - NCHIN = NCINACC - IF(NCHIN .LE. 0) THEN -C ... JUMP OUT, DOING NOTHING, IF NOTHING IS GIVEN IN LOWACCTEX - GO TO 999 - ELSE IF(NCHIN .GT. LMT_NCACC) THEN - NCHIN = LMT_NCACC - ENDIF -C ... NOW THE CHAR COUNT (IN "NCHIN") = [1 TO LMT_NCACC] ... -C ... WHERE LMT_NCACC = 3 OR 4 - LSHFT = 8*(LMT_NCACC - NCHIN) - JACCTEX = LOWACCTEX - JACCTEX = ISHFT(JACCTEX,LSHFT) -C - LEFSHF = 16 - 3 - ipry13 = ishft(IPRIOR,LEFSHF) - - IF(ICOMMAND .EQ. 0) THEN -C ... LEAVE SPACE IN HIGH-ORDER BYTE FOR EXPLICIT -C ... CHAR_SET_INDEX_NUMBER PRECEDING THE TEXT DATA BYTES - JACCTEX = IOR(JACCTEX,IDOLLAR(NCHIN + 1)) - JACCTEX = IAND(JACCTEX,MSKNM1CH) - - IACC = IAND(KFONT,MSK6BIT) - MQ = IAND(KROTAT,MSK2BIT) - MQ = ISHFT(MQ,6) - IACC = IOR(MQ,IACC) - LEFSHF = 8*LMT_NCACC - IXFONT_HI = ISHFT(IACC,LEFSHF) - JACCTEX = IOR(IXFONT_HI,JACCTEX) - - - IAPC = IOR(IARWUB,IPRY13) !... INCLUDE ARROW-UP BIT - - ELSE -C ... ICOMMAND .EQ. 1; SO LEAVE NO SPACE FOR CHAR SET INDEX ... - JACCTEX = IOR(JACCTEX,IDOLLAR(NCHIN)) - IAPC = IPRY13 !... WITHOUT THE ARROW-UP BIT - ENDIF -C - IF(LABIX .GE. LMAX) THEN -C ... I CANNOT INCREMENT LABIX WITHOUT EXCEEDING LIMIT, SO -C ... BUFFER OUT FULL LABEL BIN... - LPACK_RAQ = .TRUE. - LCLEAN_AFTQ = .TRUE. - CALL PUTL_WR(LBLTAP,NOBUF,LABEL,LMAX2,LMAX, - 1 LPACK_RAQ,LCLEAN_AFTQ,IRET101) - - IF(IRET101 .NE. 0) THEN - IRET700 = 1 - GO TO 999 - ENDIF - LABIX = 0 -C ... - ENDIF -C - IF(LCKPRNQQ) THEN - WRITE(6,FMT='(1H ,''PUTL_FM:AT'',I5,''; LBL I,J=('', I7, - 1 '','',I7, - 2 ''); NEW I,J=('',I7,'','',I7,'')'')') - A LCKPT_PUT,IWORD,JWORD,NEWI,NEWJ - ENDIF - - LABIX = LABIX + 1 - JWORD_LHS = ISHFT(JWORD,17) - IAC3 = IOR(JWORD_LHS,IAPC) - LABEL(1,LABIX) = IOR(IAC3,IWORD) - LABEL(2,LABIX) = JACCTEX -C ... THERE WENT THE DATA INTO THE LABEL-ARRAY ! ! ! ! ! -C - 999 CONTINUE - RETURN - END - diff --git a/util/sorc/plotvpap.fd/putl_wr.f b/util/sorc/plotvpap.fd/putl_wr.f deleted file mode 100755 index 3d3c706dfe..0000000000 --- a/util/sorc/plotvpap.fd/putl_wr.f +++ /dev/null @@ -1,188 +0,0 @@ - SUBROUTINE PUTL_WR(LBLTAP,NOBUF,JARRAY,NWDGIVEN,NWDWRITE, - 1 LPACK_RAQ,LCLEAN_AFTQ,IRET101) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PUTL_WR PUTLAB SUBR TO OUTPUT THE GIVEN ARRAY -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-07-01 -C -C ABSTRACT: CALLED ONLY FROM PUTLAB() TO WRITE THE GIVEN ARRAY -C (IN "JARRAY") TO UNIT=LBLTAP. THIS WRITES SEQUENTIAL, UNFORMATTED -C RECORDS. AND WILL CLEAR THE CONTENTS OF "JARRAY" AFTERWARDS -C IF REQUESTED. THIS VERSION WILL PACK THE LOW-ORDER 32-BITS OF TWO -C ADJACENT "JARRAY" WORDS INTO EACH 64-BIT WORD OF AN OUTPUT BUFFER -C (IF REQUESTED) BEFORE WRITING OUT; AND THE NUMBER OF WORDS TO BE -C WRITTEN OUT IS SPECIFIED IN "NWDWRITE". -C -C PROGRAM HISTORY LOG: -C 95-11-02 DAVID SHIMOMURA -C 1999-07-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO -C IBM RS/6000 -C -C USAGE: CALL PUTL_WR(LBLTAP,NOBUF,JARRAY,NWDGIVEN,NWDWRITE, -C LPACK_RAQ,LCLEAN_AFTQ,IRET101) -C INPUT ARGUMENT LIST: (SEE DOCBLOCK OF PUTLAB()) -C LBLTAP - INT; OUTPUT FILE'S UNIT NUMBER (THE DSRN); -C NOBUF - INT; CURRENT COUNT OF RECORDS WRITTEN TO U:LBLTAP; -C JARRAY - INT; THE ARRAY TO BE PROCESSED AND WRITTEN TO U:LBLTAP; -C NWDGIVEN - INT; WORD COUNT OF DATA IN JARRAY; -C NWDWRITE - INT; OUTPUT RECORD SIZE (IN NO. OF WORDS); -C LPACK_RAQ - LOGICAL; -C = .TRUE. -- THEN, HALF-PACK THE GIVEN JARRAY DATA -C BEFORE OUTPUTTING IT; -C LCLEAN_AFTQ - LOGICAL; -C = .TRUE. -- THEN, ZERO THE JARRAY AFTER WRITING; -C -C -C OUTPUT ARGUMENT LIST: -C IRET101 - INT; RETURN CODE -C =0; NORMAL RETURN -C =1; ERROR RETURN FROM CALLING SUBR HAFPAKRA() -C =-1; ERROR WHEN TRYING TO WRITE A RECORD TO UNIT=LBLTAP -C -C OUTPUT FILES: -C U:6 - FOR PRINTOUT IF ERROR CONDITION -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C EVERY INSTANCE OF PUTLAB'S WRITING TO LBLTAP (WHETHER IT IS WRITING -C THE IDENTIFIER RECORD, OR THE FULL LABEL-ARRAY, OR THE PARTIAL -C LABEL-ARRAY AT THE END) HAS BEEN CHANNELED THROUGH THIS -C SUB-SUBROUTINE. THIS FACILITATES CHANGES TO THE I/O METHOD. -C -C CALLS ON SUBR HAFPAKRA() TO PACK THE LOW-ORDER 32-BITS OF EACH -C PAIR OF WORDS IN THE JARRAY INTO THE 64-BIT OUTPUT WORD. -C -C ... CAUTION: THIS DOES NOT ZERO "LABIX", SINCE THIS DOES NOT -C KNOW THAT IT IS WORKING WITH THE LABEL ARRAY -C ... CAUTION: THIS WILL WRITE THE NUMBER OF WORDS SPECIFIED -C IN "NWDWRITE" -C ... CAUTION: THE UPPER LIMIT OF VALUE OF "NWDWRITE" IS SET -C AT 2*LMAX; WHERE LMAX=1024; -C I DO NOT EXPECT PUTLAB TO TRY TO WRITE ANY RECORD -C LARGER THAN THAT. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C ... This version will use CRAY unformatted write to -s unblocked -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - - INTEGER NBYTPWRD - PARAMETER (NBYTPWRD=8) !... CRAY has 8-byte words - - INTEGER LMAX - PARAMETER (LMAX=1024) - - INTEGER LMAX2 - PARAMETER (LMAX2=LMAX*2) - - INTEGER CMAX2 !... For dimension of C*1 - PARAMETER (CMAX2=LMAX2*NBYTPWRD) - - INTEGER LBLTAP - INTEGER JARRAY(NWDGIVEN) - INTEGER NWDWRITE - LOGICAL LPACK_RAQ - LOGICAL LCLEAN_AFTQ - INTEGER IRET101 - - - INTEGER NUMBYTS - INTEGER NBYTSWRIT - INTEGER IRET_WRS - - INTEGER NWD_DEST - INTEGER IRET_HAF - - INTEGER JOUTBUF(LMAX2) - CHARACTER*1 COUTBUF(CMAX2) - EQUIVALENCE (JOUTBUF(1),COUTBUF(1)) - - 101 CONTINUE - IRET101 = 0 - - IF(NWDGIVEN .LE. 0) THEN - GO TO 999 -C ... WHICH EXITS WITH NOTHING DOING, IN CASE OF NO DATA GIVEN - ENDIF -C - IF(LPACK_RAQ) THEN -C ... YES, PACK THE DATA ... - - CALL HAFPAKRA(JARRAY,NWDGIVEN,JOUTBUF,LMAX2,NWD_DEST,IRET_HAF) - - IF(IRET_HAF .NE. 0) THEN - WRITE(6,FMT='(1H ,''PUTL_WR::HAFPAKRA FAILED. NWDGIVEN='',I6, - 1 ''; IRET_HAF='',I3)') - A NWDGIVEN,IRET_HAF - - IRET101 = 1 - GO TO 999 - ENDIF - -C ... DO I HAVE ENOUGH SPACE ALLOCATED IN JOUTBUF FOR NWDWRITE?? - IF(NWD_DEST .LT. NWDWRITE) THEN - M1 = NWD_DEST + 1 - DO I = M1,NWDWRITE - JOUTBUF(I) = 0 - ENDDO - ENDIF - GO TO 200 - - ELSE -C ... NO PACKING OF DATA WAS REQUESTED ... -C ... WAS THE GIVEN DATA COUNT LESS THAN NWDWRITE??? - IF(NWDGIVEN .LT. NWDWRITE) THEN - DO I = 1,NWDGIVEN - JOUTBUF(I) = JARRAY(I) - ENDDO - - M1 = NWDGIVEN + 1 - DO I = M1,NWDWRITE - JOUTBUF(I) = 0 - ENDDO - GO TO 200 - - ELSE -C ... (NWDGIVEN WAS .GE. NWDWRITE) ... -C ... SO I COULD WRITE DIRECTLY OUT OF THE JARRAY ... -C ... BUT, COPY INTO OUTPUT BUFFER, ANYWAY SO THAT -C ... THERE WILL BE ONLY ONE WRITE(LBLTAP, ... -C - DO I = 1,NWDWRITE - JOUTBUF(I) = JARRAY(I) - ENDDO - GO TO 200 - ENDIF - ENDIF -C - - 200 CONTINUE - - WRITE(LBLTAP,ERR=920) (JOUTBUF(J),J=1,NWDWRITE) - - NOBUF = NOBUF + 1 - - IF(LCLEAN_AFTQ) THEN - DO I = 1,NWDGIVEN - JARRAY(I) = 0 - ENDDO - ENDIF - GO TO 999 - -C - 920 CONTINUE - PRINT 925,LBLTAP,NOBUF - 925 FORMAT(1H ,'PUTL_WR:ERROR WRITING TAPE FT', I2, - 1 /1H , 15X,'NOBUF =', I3) - IRET101 = -1 - GO TO 999 - -C ... GO TO JYES,(622,711,915) -C ....END OF SUBROUTINE 101... - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/rd_airc.f b/util/sorc/plotvpap.fd/rd_airc.f deleted file mode 100755 index f92f635216..0000000000 --- a/util/sorc/plotvpap.fd/rd_airc.f +++ /dev/null @@ -1,552 +0,0 @@ - SUBROUTINE rd_airc (LUNAIR,LINITQ,cfil_hdr,LONELVL, IRET) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: rd_airc READ AN aircraft AND GET ONE LVL DATA -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 97-02-18 -C -C ABSTRACT: THIS rd_airc SUBROUTINE IS CALLED FROM WITHIN THE PLOTPAP -C PROGRAM TO READ AN aircraft OBSERVATION IN ORDER TO FETCH A SINGLE -C aircraft's OBSERVED QUANTITIES AT ITS REPORTING LEVEL. -C THE INPUT aircraft OBSERVATIONAL DATA FILE IS IN AN INTERMEDIATE -C FORMAT WHICH HAS BEEN CREATED BY LARRY SAGER FOR PLOTPAP INPUT. -C -C PROGRAM HISTORY LOG: -C 97-01-06 ORIGINAL AUTHOR: DAVID SHIMOMURA -C 97-02-13 SHIMOMURA CHANGED MAX NO. OF LEVELS ALLOWED TO =21 LVLS -C 97-02-18 SHIMOMURA - adapting rd_uupa to the task of reading -C aircraft observation; -C -C USAGE: CALL rd_airc (LUNAIR,LINITQ,cfil_hdr,LONELVL, IRET) -C INPUT ARGUMENT LIST: -C LUNAIR - INT UNIT NUMBER OF INPUT UPA FILE. -C -C LINITQ - LOGICAL SWITCH TO INDICATE THAT THIS IS FIRST CALL -C TO READ THIS FILE; SO I WILL INITIALIZE -C COUNTERS AND FETCH THE FILE HEADER BEFORE -C PROCEEDING INTO THE OBSERVATIONAL DATA FETCHING; -C I WILL RESET THIS SWITCH TO .FALSE. SO THAT -C I WILL NOT COME THROUGH THE INITIALIZATION -C SECTION AGAIN. -C -C -C -C OUTPUT ARGUMENT LIST: -C cfil_hdr(MAXWRDHDR) - C*8 CFIL_HDR(50) WHERE MAXWRDHDR=50; -C DESTINATION FOR UPA FILE HEADER -C -C LONELVL(MAXWRDLVL) - INT LONELVL(24) WHERE MAXWRDLVL=24; -C DESTINATION FOR OBSERVATIONAL DATA -C FOR ONE LEVEL; -C -C IRET - INTEGER RETURN CODE -C -C INPUT FILES: -C UPAUPA FILE OF OBSERVATIONS WHOSE UNIT NUMBER IS LUNAIR -C -C OUTPUT FILES: -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: -C THE PROGRAM LOGIC WAS DERIVED FROM LARRY SAGER'S LISTER. -C -C SEE: R. ALLARD (1973): "W3AI02 - ADP REPORT UNPACKER", -C especially APPENDIX A and APPENDIX C -C FOR THE SEQUENCE AND CONTENT OF DATA ITEMS IN THE INPUT FILE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C ... patched to permit higher levels ... 13-Feb-1997/dss -C -C 3-Feb-1997/dss -C -C To read one upper-air station's report, and extract one millibar -C level's observational data -C ... -C ... program logic: -C ... The ability to scan from one report to the next report depends -C ... on the pointer to the end-of-the-current-report; which pointer -C ... is found in "word"(3) of the preamble of every report; -C ... where "word" is the 32-bit word of legacy code. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C KNEXT = subscript into the 512 longword input buffer -C C8INPBUF(KNEXT); -C where KNEXT is whereami right now; -C Initial value is obtained from Cfil_hdr(5); -C which is expected to point to a longword -C containing "STR_REPO" ... for start-of-report; or -C else "ENDOFFIL" ... for logical end-of-file; -C which are the only two acceptable values here. -C -C When the "STR_REPO" has been found at C8INPBUF(KNEXT), -C then we increment KNEXT to look at the following -C longword. This very first longword after the -C "STR_REPO" contains the lat/lon. -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C K4ENDREP - The second longword after the "STR_REPO" contains -C the Observation Time in its low-order 32-bit word, -C and contains K4ENDREP in its hi-order 32-bit word. -C -C The value in this K4ENDREP is the pointer to the -C 32-bit word within a 32-bit I*4 word data input buffer -C which points to the end of this current report; -C I*4 BIN(K4ENDREP) == "END_" -C I*4 BIN(K4ENDREP+1) == "REPO" -C -C A pointer to the 64-bit longword within C8INPBUF() -C which points to the end of this current report -C could be derived from K4ENDREP: -C K8ENDREP = (K4ENDREP + 1) / 2 -C C8INPBUF(K8ENDREP) == "END_REPO" -C -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C Every call to this Subr rd_airc() will try to return one -C aircraft observation. How does it save the pointers from one -C call to the next? -C it seems to save KEND in arr(299); -C and KNEXT in arr(300); -C and initializes from arr(299),(300) at entry; -C This assumes that the caller leaves arr() unchanged -C between calls; This logic WAS changed. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - INTEGER LASTCH !... INTEGER FUNCTION LASTCH - EXTERNAL LASTCH - - INTEGER KPTR_IB !... WHERE IS POINTER (IB) ??? - DATA KPTR_IB / 14 / !... IN LONELVL(16) -C !... BUT I MOVED IT TO (14) - - INTEGER MAXWRDLVL - PARAMETER (MAXWRDLVL=24) - - integer MAXWRDHDR - PARAMETER (MAXWRDHDR=50) - - COMMON /RDUPABFS/ K8ENDREP, KNEXT, NBUFUPA, - 1 LPREVEND, LPREVNXT, NBUFPREV,JUPABUF,I4UPABIN - INTEGER LPREVEND - INTEGER LPREVNXT - INTEGER NBUFPREV - - INTEGER K8ENDREP - INTEGER KNEXT - INTEGER NBUFUPA - - INTEGER JUPABUF(512), JUPABUF2(512) - CHARACTER*8 C8INPBUF (512) !... 512 longwords=4096 byte/blk - EQUIVALENCE (JUPABUF2(1),C8INPBUF(1)(1:1)) - - INTEGER I4UPABIN(1024) - -C ... TO UNPACK THE 64-BIT WORDS INTO 32-BIT WORDS, -C ... CALL GBYTES(JUPABUF,I4UPABIN,NOFFSET,NBITSGRP,NPADBITS,NGRPS2DO) - INTEGER NOFFSET - DATA NOFFSET / 0 / - INTEGER NBITSGRP - DATA NBITSGRP / 32 / - INTEGER NPADBITS - DATA NPADBITS / 0 / - INTEGER NGRPS2DO - DATA NGRPS2DO / 1024 / - -C ... REAL*8 ARR(*) -C ... KEND = ARR(299) !... IFIX() ???? -C ... KNEXT = ARR(300) !... IFIX() ???? - - integer LUNAIR - LOGICAL LINITQ - CHARACTER*8 cfil_hdr(MAXWRDHDR) - INTEGER LONELVL(MAXWRDLVL) - INTEGER IRET - - CHARACTER*8 CFIL - - CHARACTER*8 CENDFILE - DATA CENDFILE /'ENDOFILE'/ -C -C - INTEGER MSKLHS - DATA MSKLHS / Z'FFFFFFFF00000000' / - INTEGER NEGSIGNEXT - DATA NEGSIGNEXT / X'FFFFFFFF00000000' / - - DATA KLIM /1024/ - DATA IOLDU /0/ -C -C ... FOLLOWING BITS ARE IN SAME POSITIONS AS IN OLD NBITS ... - integer LDZBIT !... OLD HAD ONLY 4 BITS - DATA LDZBIT / 4 / !... this is a new bit - INTEGER LWBIT - DATA LWBIT / 3 / - INTEGER LZBIT - DATA LZBIT / 2 / - INTEGER LTBIT - DATA LTBIT / 1 / - INTEGER LTDBIT - DATA LTDBIT / 0 / - INTEGER IIIIOLD -C - INTEGER ISOBSERVED - INTEGER LBIT - INTEGER MISSING - DATA MISSING / X'7FFFF000' / - INTEGER MSKOBSBITS - DATA MSKOBSBITS / X'0003F000' / !... 6 OBS QUAN - - integer name(2) - character*8 cname(2) - equivalence (name(1),cname(1)) - - character*8 cnamstn - CHARACTER*8 CNAMPREV - - INTEGER K4ENDREP - - integer isrc,kkstart,indexlvl,IB,millibarix,ntotlvls - - INTEGER ICOUNTAC - INTEGER MSKRHS - DATA MSKRHS / X'00000000FFFFFFFF' / - INTEGER IALT - REAL PRES - - INTEGER LCKPT - - SAVE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IRET = 0 - - LCKPT = 100 - -C ... K8ENDREP = ARR(299) -C ... KNEXT = ARR(300) -C ... ... THOSE HAVE BEEN SAVED IN COMMON /RDUPABFS/ - - DO I = 1,MAXWRDLVL - LONELVL(I) = 0 - ENDDO -C -C . . . . . . . . . FILE HEADER . . . . . . . . . . . . . . . -C - IF(LINITQ) THEN - LINITQ = .FALSE. !... RESET SO IT WILL NOT COME AGAIN - -C ... IF (LUNAIR. NE. IOLDU) THEN -C ... IOLDU = LUNAIR -C -C ... FIRST READ FOR THIS UPAUPA FILE. READ IN THE -C ... HEADER RECORD AND INITIALIZE -C -C . . . . . . . . . . . . . . . . . - LCKPT = 111 - ICOUNTAC = 0 - NBUFUPA = 0 - CNAMPREV(1:8) = ' ' - - REWIND LUNAIR - READ (LUNAIR,ERR=910,END=920) JUPABUF - JUPABUF2 = JUPABUF - call byteswap(JUPABUF2(1), 8, 512) - NBUFUPA = NBUFUPA + 1 - - CALL GBYTES(JUPABUF,I4UPABIN,NOFFSET,NBITSGRP,NPADBITS,NGRPS2DO) - do ihw = 1,NGRPS2DO - IF(BTEST(I4UPABIN(IHW),31)) THEN !... HI-ORDER BIT - I4UPABIN(IHW) = IOR(NEGSIGNEXT,I4UPABIN(IHW)) - ENDIF - ENDDO -C . . . . . . . . . . . . . . . . . -C -C ... STORE THE HEADER RECORD INTO THE cfil_hdr ARRAY -C - DO I = 1,MAXWRDHDR - CFIL_HDR(I)(1:) = ' ' - ENDDO - - DO K = 1,MAXWRDHDR - KSAVE = K - cfil_hdr(K) = C8INPBUF(K) - IF (cfil_hdr(K) .EQ. 'ENDBLOCK') GO TO 130 - END DO - - 130 CONTINUE - WRITE(6, 135) (cfil_hdr(KK),KK=1,KSAVE) - 135 FORMAT(1H ,'rd_airc: Header read is ...',/,8(8a8,/)) - - KNEXT = JUPABUF(5) - END IF !... ON PROCESSING THE FILE HEADER -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ... CHECK FOR THE END OF FILE -C - 140 CONTINUE - IF(C8INPBUF(KNEXT).EQ.CENDFILE) THEN - IRET = -1 - write(6,145) - 145 format(1H ,'rd_airc: Found NORMAL logical End-of-File') - GO TO 999 !... EXIT - END IF - - IF(C8INPBUF(KNEXT).NE.'STR_REPO') THEN - write(6,165) KNEXT - 165 format(1H ,'rd_airc: Failed to find "STR_REPO" AT ', - 1 'C8INPBUF(',I8,')') - PRINT *,' JOB STOPPING' - IRET = -1 - GO TO 999 !... ERROR EXIT - END IF - -C ... OTHERWISE, FOUND "STR_REPO" AT C8INPBUF(KNEXT) ... - KNEXT = KNEXT + 1 -C !... KNEXT AT 1ST LONGWORD BEYOND THE "STR_REPO" - -C ================================================================= - LCKPT = 200 -C ... J = 1 -C -C ... TO MOVE ONE LEVEL'S DATA OF ONE AIRCRAFT REPORT -C -C ... TO MOVE PREAMBLE OF FIRST 16 WORDS IN SEQUENCE ... - KKSTART = 2*KNEXT - 1 -C ... where KKSTART points to first "hafword" of preamble -C ... where hafword is unpacked 32-bit words - JJSRC = KKSTART - 1 - do i = 1,16 - jjsrc = JJSRC + 1 - IF(JJSRC .GT. KLIM) THEN -C ... REPLENISH THE I4UPABIN() ... - LCKPT = 210 - CALL fillubin(LUNAIR,LCKPT,IRET_FIL) - JUPABUF2 = JUPABUF - call byteswap(JUPABUF2(1), 8, 512) - - IF(IRET_FIL .NE. 0) THEN - IRET = IRET_FIL - GO TO 999 - ENDIF - - JJSRC = 1 - - KKSTART = KKSTART - KLIM -C ... because I refreshed the buffer during the preamble -C ... I need a decremented-by-1024 value of KKSTART, -C ... below the crease, -C ... to compute (ISRC) for the millibar lvl data -C ... in the following paragraph - - ENDIF - - lonelvl(i) = I4UPABIN(JJSRC) - -C ------------------------------------------------------ - - IF(I .EQ. 3) THEN !... WORD(3) IS END-REC PTR -C ... UPDATE THE END-RECORD POINTER ... - K4ENDREP = I4UPABIN(JJSRC)/4096 !... I*4 WORD(3) - IF (K4ENDREP .GT. KLIM) THEN !... K : 1024 - - WRITE(6,225)K4ENDREP,KLIM - 225 FORMAT(1H ,'rd_airc:BRIDGED END-REPORT POINTER ', - 1 '(K4ENDREP)= (',I8,')', - 2 /1H ,7X,'LIMITING BUFFER SIZE=',I6) - -C ... failed here on last report within record no. 3 -C ... in which K4ENDREP = 1025 -C ... Try to go on with end-ptr set for start of next rec -C ... without refilling buffer yet, - - K4ENDREP = MOD(K4ENDREP,KLIM) - -C ... write(6,235) -C ... 235 format(1h 'rd_airc: JOB STOPPING') -C ... IRET = -1 -C ... GO TO 999 !... ERROR EXIT - END IF - K8ENDREP = (K4ENDREP+1)/2 - ENDIF - enddo -C ... which completed the moving of 16-word preamble of acft -C ... but, since this is not RAOB, I do not need the raob -C ... pointers in (13) and (14); so if I overwrite those -C ... with category 6 pointers in (15) and (16), then the -C ... results should be same structure - LONELVL(13) = LONELVL(15) - LONELVL(14) = LONELVL(16) - -C ------------------------------------------------------------ - ICOUNTAC = ICOUNTAC + 1 - - IB = ishft(LONELVL(KPTR_IB),-12) - - IDEST = KPTR_IB - ISRC = KKSTART -1 + IB - 1 -C ... WHERE THE POINTER: IB IS THE RELATIVE I*4 WORD -C RELATIVE TO ZERO AT (KKSTART-1) -C ISRC IDEST -C ...I4UPABIN(KKSTART-1+IB) LONELVL(14+1) PRESS-ALT(METERS) -C (KKSTART-1+IB+1) (14+2) TEMPERATURE -C (KKSTART-1+IB+2) (14+3) DEWPOINT -C (KKSTART-1+IB+3) (14+4) WIND DIR -C (KKSTART-1+IB+4) (14+5) WIND SPEED -C (KKSTART-1+IB+5) (14+6) MARKERS -C (KKSTART-1+IB+6) (14+7) PRESSURE (MBS) -C (14+8) <== LBITS + IIII BITS - - ISOBSERVED = 0 - LBIT = 11 - DO ITEMOBS = 1,7 !... GET 7 OBS QUANTITIES FOR LVL - LBIT = LBIT + 1 - ISRC = ISRC + 1 - IF(ISRC .GT. KLIM) THEN - LCKPT = 250 - CALL fillubin(LUNAIR,LCKPT,IRET_FIL) - JUPABUF2 = JUPABUF - call byteswap(JUPABUF2(1), 8, 512) - - IF(IRET_FIL .NE. 0) THEN - IRET = IRET_FIL - GO TO 999 - ENDIF - - ISRC = ISRC - KLIM - ENDIF - - LONELVL(IDEST+ITEMOBS) = I4UPABIN(ISRC) -C ... is that isrc yieldin Operand range error? -C ... TO SET A BIT TO INDICATE THE PRESENCE OF OBSERVED QUAN - IF(I4UPABIN(ISRC) .NE. MISSING) THEN - ISOBSERVED = IBSET(ISOBSERVED,LBIT) - ENDIF - ENDDO - - ISOBSERVED = IAND(ISOBSERVED,MSKOBSBITS) -C ... add to this bit word what the old user expected ... - iiiiold = 0 - if(btest(isobserved,12)) then !... ZZZZ - IIIIOLD = ibset(iiiiold,LZBIT) - endif - if(btest(isobserved,13)) then !... TT - IIIIOLD = ibset(iiiiold,LTBIT) - endif - if(btest(isobserved,14)) then !... TD - IIIIOLD = ibset(iiiiold,LTDBIT) - endif - if((btest(isobserved,15)) .and. !... dd - 1 (btest(isobserved,16))) then !... fff - IIIIOLD = ibset(iiiiold,LWBIT) - endif - -C ... since I do not plot a DZ for acft obs, -C ... if(btest(isobserved,17)) then !... DZ -C ... IIIIOLD = ibset(iiiiold,LDZBIT) -C ... endif - - LONELVL(IDEST+8) = ior(ISOBSERVED,iiiiold) - - -C ... how can i move KNEXT to point to end of rec? - IF(LPREVEND .GT. K8ENDREP) THEN -C ... here is the case where this report spanned the end-of- -C ... input-buffer; - -C ... Has the record number been upped already? - IF(NBUFPREV .EQ. NBUFUPA) THEN -C ... NO, the record number has not been upped; so read - LCKPT = 420 - CALL fillubin(LUNAIR,LCKPT,IRET_FIL) - JUPABUF2 = JUPABUF - call byteswap(JUPABUF2(1), 8, 512) - - IF(IRET_FIL .NE. 0) THEN - IRET = IRET_FIL - GO TO 999 - ENDIF - endif - ENDIF - - - if(C8INPBUF(K8ENDREP) .NE. 'END_REPO') THEN -C ... failed here after reading the 2nd buffer full ... - WRITE(6,475)K8ENDREP,jupabuf(K8ENDREP),NBUFUPA - 475 FORMAT(1H ,'rd_airc: FAILED. I am lost in data file', - 1 /1h ,7X,'Expected end-report in C8INPBUF(',I6, - 2 ') = hex',Z16, - 3 /1h ,7X,'COUNT OF RECORDS READ=',I6) - IRET = 3 - GO TO 999 - else - name(1) = lonelvl(11) - name(2) = lonelvl(12) - cnamstn(1:4) = cname(1)(5:8) - cnamstn(5:8) = cname(2)(5:8) - -C ... IF(CNAMSTN(1:8) .NE. CNAMPREV(1:8)) THEN -C ... WRITE(6,478)cnamstn(1:6), K8ENDREP,NBUFUPA -C ... 478 FORMAT(1H ,'rd_airc: ' -C ... 1 'Found end-of-record ',A6,' in C8INPBUF(',I6, -C ... 2 ') in rec no =',I6) -C ... ENDIF - CNAMPREV(1:8) = CNAMSTN(1:8) - ENDIF - - KNEXT = K8ENDREP + 1 -C ----------------------------------------------------------- - IF(KNEXT .GT. 512) THEN - KNEXT = MOD(KNEXT,512) - ENDIF - IF(LPREVNXT .GT. KNEXT) THEN -C ... here is the case where this report spanned the end-of- -C ... input-buffer; -C ... Has the record number been upped already? - IF(NBUFPREV .EQ. NBUFUPA) THEN -C ... NO, the record number has not been upped; so read - - LCKPT = 480 - CALL fillubin(LUNAIR,LCKPT,IRET_FIL) - JUPABUF2 = JUPABUF - call byteswap(JUPABUF2(1), 8, 512) - - IF(IRET_FIL .NE. 0) THEN - IRET = IRET_FIL - GO TO 999 - ENDIF - endif - ENDIF - -C ----------------------------------------------------------- -C . . . S A V E . . . . . . . . . . . . . . . . . . . . - LPREVNXT = KNEXT !... PTR TO "STR_REPO" OF NEXT - LPREVEND = knext -1 !... PTR TO "END_REPO" OF THIS - NBUFPREV = NBUFUPA !... COUNT OF BUFFER IN OF NEXT - GO TO 999 - -C ... and where is K8ENDREP supposed to be left at? - -C ============================================================ - - 910 CONTINUE - WRITE(6,915)LCKPT,LUNAIR,NBUFUPA - 915 FORMAT(1H ,'rd_airc:AT LCKPT=',I5,'FAILED ON PARITY ERROR WHILE ', - 1 'READING FROM UNIT=',I3, - 2 /1H ,' COUNT OF INPUT BLOCKS READ BEFORE ERR =',I8) - IRET = 1 - GO TO 999 - - 920 CONTINUE - WRITE(6,925)LCKPT,LUNAIR,NBUFUPA - 925 FORMAT(1H ,'rd_airc:AT LCKPT=',I5,'FAILED ON PHYSICAL ', - 1 'END-OF-FILE WHILE READING FROM UNIT=',I3, - 2 /1H ,' COUNT OF INPUT BLOCKS READ BEFORE END =',I8) - IRET = 2 - GO TO 999 - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/rd_uupa.f b/util/sorc/plotvpap.fd/rd_uupa.f deleted file mode 100755 index bd51f8e576..0000000000 --- a/util/sorc/plotvpap.fd/rd_uupa.f +++ /dev/null @@ -1,611 +0,0 @@ - SUBROUTINE rd_uupa (LUNUPA,LINITQ,LVLIX,cfil_hdr,LONELVL, IRET) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: RD_UUPA READ AN UPR-AIR OBS AND GET ONE LVL DATA -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 97-02-13 -C -C ABSTRACT: THIS RD_UUPA SUBROUTINE IS CALLED FROM WITHIN THE PLOTPAP -C PROGRAM TO READ AN UPPER-AIR OBSERVATION IN ORDER TO FETCH A SINGLE -C STATION'S OBSERVED QUANTITIES AT ONE MILLIBAR LEVEL. -C THE INPUT UPPER-AIR OBSERVATIONAL DATA FILE IS IN AN INTERMEDIATE -C FORMAT WHICH HAS BEEN CREATED BY LARRY SAGER FOR PLOTPAP INPUT. -C -C PROGRAM HISTORY LOG: -C 97-01-06 ORIGINAL AUTHOR: DAVID SHIMOMURA -C 97-02-13 SHIMOMURA CHANGED MAX NO. OF LEVELS ALLOWED TO =21 LVLS -C 97-04-16 SHIMOMURA MODIFIED THE BUFFERIN PARAGRAPH WHICH SEEMED -C TO BE NOT WAITED FOR COMPLETION -C -C USAGE: CALL RD_UUPA (LUNUPA,LINITQ,LVLIX,cfil_hdr,LONELVL, IRET) -C INPUT ARGUMENT LIST: -C LUNUPA - INT UNIT NUMBER OF INPUT UPA FILE. -C -C LINITQ - LOGICAL SWITCH TO INDICATE THAT THIS IS FIRST CALL -C TO READ THIS FILE; SO I WILL INITIALIZE -C COUNTERS AND FETCH THE FILE HEADER BEFORE -C PROCEEDING INTO THE OBSERVATIONAL DATA FETCHING; -C I WILL RESET THIS SWITCH TO .FALSE. SO THAT -C I WILL NOT COME THROUGH THE INITIALIZATION -C SECTION AGAIN. -C -C LVLIX - INT INDEX TO THE LEVEL DESIRED; -C THIS INDEX MUST CORRESPOND TO THAT IN UPAUPA. -C -C -C OUTPUT ARGUMENT LIST: -C cfil_hdr(MAXWRDHDR) - C*8 CFIL_HDR(50) WHERE MAXWRDHDR=50; -C DESTINATION FOR UPA FILE HEADER -C -C LONELVL(MAXWRDLVL) - INT LONELVL(24) WHERE MAXWRDLVL=24; -C DESTINATION FOR OBSERVATIONAL DATA -C FOR ONE LEVEL; -C -C IRET - INTEGER RETURN CODE -C -C INPUT FILES: -C UPAUPA FILE OF OBSERVATIONS WHOSE UNIT NUMBER IS LUNUPA -C -C OUTPUT FILES: -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: -C THE PROGRAM LOGIC WAS DERIVED FROM LARRY SAGER'S LISTER. -C -C SEE: R. ALLARD (1973): "W3AI02 - ADP REPORT UNPACKER", -C especially APPENDIX A and APPENDIX C -C FOR THE SEQUENCE AND CONTENT OF DATA ITEMS IN THE INPUT FILE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C ... patched to permit higher levels ... 13-Feb-1997/dss -C -C 3-Feb-1997/dss -C -C To read one upper-air station's report, and extract one millibar -C level's observational data -C ... -C ... program logic: -C ... The ability to scan from one report to the next report depends -C ... on the pointer to the end-of-the-current-report; which pointer -C ... is found in "word"(3) of the preamble of every report; -C ... where "word" is the 32-bit word of legacy code. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C KNEXT = subscript into the 512 longword input buffer -C C8INPBUF(KNEXT); -C where KNEXT is whereami right now; -C Initial value is obtained from Cfil_hdr(5); -C which is expected to point to a longword -C containing "STR_REPO" ... for start-of-report; or -C else "ENDOFFIL" ... for logical end-of-file; -C which are the only two acceptable values here. -C -C When the "STR_REPO" has been found at C8INPBUF(KNEXT), -C then we increment KNEXT to look at the following -C longword. This very first longword after the -C "STR_REPO" contains the lat/lon. -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C K4ENDREP - The second longword after the "STR_REPO" contains -C the Observation Time in its low-order 32-bit word, -C and contains K4ENDREP in its hi-order 32-bit word. -C -C The value in this K4ENDREP is the pointer to the -C 32-bit word within a 32-bit I*4 word data input buffer -C which points to the end of this current report; -C I*4 BIN(K4ENDREP) == "END_" -C I*4 BIN(K4ENDREP+1) == "REPO" -C -C A pointer to the 64-bit longword within C8INPBUF() -C which points to the end of this current report -C could be derived from K4ENDREP: -C K8ENDREP = (K4ENDREP + 1) / 2 -C C8INPBUF(K8ENDREP) == "END_REPO" -C -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C Every call to this Subr rd_uupa() will try to return one -C station's report. How does it save the pointers from one -C call to the next? -C it seems to save KEND in arr(299); -C and KNEXT in arr(300); -C and initializes from arr(299),(300) at entry; -C This assumes that the caller leaves arr() unchanged -C between calls; This logic WAS changed. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - INTEGER MAXWRDLVL - PARAMETER (MAXWRDLVL=24) - - integer MAXWRDHDR - PARAMETER (MAXWRDHDR=50) - - COMMON /RDUPABFS/ K8ENDREP, KNEXT, NBUFUPA, - 1 LPREVEND, LPREVNXT, NBUFPREV,JUPABUF,I4UPABIN - INTEGER LPREVEND - INTEGER LPREVNXT - INTEGER NBUFPREV - - INTEGER K8ENDREP - INTEGER KNEXT - INTEGER NBUFUPA - - INTEGER JUPABUF(512), JUPABUF2(512) - CHARACTER*8 C8INPBUF (512) !... 512 longwords=4096 byte/blk - EQUIVALENCE (JUPABUF2(1),C8INPBUF(1)(1:1)) - - INTEGER I4UPABIN(1024) - -C ... TO UNPACK THE 64-BIT WORDS INTO 32-BIT WORDS, -C ... CALL GBYTES(JUPABUF,I4UPABIN,NOFFSET,NBITSGRP,NPADBITS,NGRPS2DO) - INTEGER NOFFSET - DATA NOFFSET / 0 / - INTEGER NBITSGRP - DATA NBITSGRP / 32 / - INTEGER NPADBITS - DATA NPADBITS / 0 / - INTEGER NGRPS2DO - DATA NGRPS2DO / 1024 / - -C ... REAL*8 ARR(*) -C ... KEND = ARR(299) !... IFIX() ???? -C ... KNEXT = ARR(300) !... IFIX() ???? - - integer LUNUPA - LOGICAL LINITQ - integer LVLIX - CHARACTER*8 cfil_hdr(MAXWRDHDR) - INTEGER LONELVL(MAXWRDLVL) - INTEGER IRET - - CHARACTER*8 CFIL - - CHARACTER*8 CENDFILE - DATA CENDFILE /'ENDOFILE'/ -C -C - INTEGER MSKLHS - DATA MSKLHS / Z'FFFFFFFF00000000' / - INTEGER NEGSIGNEXT - DATA NEGSIGNEXT / X'FFFFFFFF00000000' / - - DATA KLIM /1024/ - DATA IOLDU /0/ -C -C ... FOLLOWING BITS ARE IN SAME POSITIONS AS IN OLD NBITS ... - integer LDZBIT !... OLD HAD ONLY 4 BITS - DATA LDZBIT / 4 / !... this is a new bit - INTEGER LWBIT - DATA LWBIT / 3 / - INTEGER LZBIT - DATA LZBIT / 2 / - INTEGER LTBIT - DATA LTBIT / 1 / - INTEGER LTDBIT - DATA LTDBIT / 0 / - INTEGER IIIIOLD -C - INTEGER ISOBSERVED - INTEGER LBIT - INTEGER MISSING - DATA MISSING / X'7FFFF000' / - INTEGER MSKOBSBITS - DATA MSKOBSBITS / X'0003F000' / !... 6 OBS QUAN - - integer name(2) - character*8 cname(2) - equivalence (name(1),cname(1)) - - character*8 cnamstn - - INTEGER K4ENDREP - - integer isrc,kkstart,indexlvl,IB,millibarix,ntotlvls - - INTEGER LCKPT - - SAVE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IRET = 0 - - LCKPT = 100 - -C ... K8ENDREP = ARR(299) -C ... KNEXT = ARR(300) -C ... ... THOSE HAVE BEEN SAVED IN COMMON /RDUPABFS/ - - MILLIBARIX = LVLIX - IF((MILLIBARIX .LE. 0) .OR. - 1 (MILLIBARIX .GT. 21)) THEN !... BAD VALUE IN LVLIX - MILLIBARIX = 5 !... USE DEFAULT LVL AT 500MB - ENDIF - DO I = 1,MAXWRDLVL - LONELVL(I) = 0 - ENDDO -C -C . . . . . . . . . FILE HEADER . . . . . . . . . . . . . . . -C - IF(LINITQ) THEN - LINITQ = .FALSE. !... RESET SO IT WILL NOT COME AGAIN - -C ... IF (LUNUPA. NE. IOLDU) THEN -C ... IOLDU = LUNUPA -C -C ... FIRST READ FOR THIS UPAUPA FILE. READ IN THE -C ... HEADER RECORD AND INITIALIZE -C -C . . . . . . . . . . . . . . . . . - LCKPT = 111 - NBUFUPA = 0 - REWIND LUNUPA - READ (LUNUPA,ERR=910,END=920) JUPABUF - JUPABUF2 = JUPABUF - call byteswap(JUPABUF2(1), 8, 512) - NBUFUPA = NBUFUPA + 1 - - CALL GBYTES(JUPABUF,I4UPABIN,NOFFSET,NBITSGRP,NPADBITS,NGRPS2DO) - do ihw = 1,NGRPS2DO - IF(BTEST(I4UPABIN(IHW),31)) THEN !... HI-ORDER BIT - I4UPABIN(IHW) = IOR(NEGSIGNEXT,I4UPABIN(IHW)) - ENDIF - ENDDO -C . . . . . . . . . . . . . . . . . -C -C ... STORE THE HEADER RECORD INTO THE cfil_hdr ARRAY -C - DO I = 1,MAXWRDHDR - CFIL_HDR(I)(1:) = ' ' - ENDDO - - DO K = 1,MAXWRDHDR - KSAVE = K - cfil_hdr(K) = C8INPBUF(K) - IF (cfil_hdr(K) .EQ. 'ENDBLOCK') GO TO 130 - END DO - - 130 CONTINUE - WRITE(6, 135) (cfil_hdr(KK),KK=1,KSAVE) - 135 FORMAT(1H ,'rd_uupa: Header read is ...',/,8(8a8,/)) - - KNEXT = JUPABUF(5) - END IF !... ON PROCESSING THE FILE HEADER -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ... CHECK FOR THE END OF FILE -C - IF(C8INPBUF(KNEXT).EQ.CENDFILE) THEN - IRET = -1 - write(6,145) - 145 format(1H ,'rd_uupa: Found NORMAL logical End-of-File') - GO TO 999 !... EXIT - END IF - - IF(C8INPBUF(KNEXT).NE.'STR_REPO') THEN - write(6,165) KNEXT - 165 format(1H ,'rd_uupa: Failed to find "STR_REPO" AT ', - 1 'C8INPBUF(',I8,')') - PRINT *,' JOB STOPPING' - IRET = -1 - GO TO 999 !... ERROR EXIT - END IF - -C ... OTHERWISE, FOUND "STR_REPO" AT C8INPBUF(KNEXT) ... - KNEXT = KNEXT + 1 -C !... KNEXT AT 1ST LONGWORD BEYOND THE "STR_REPO" - -C ================================================================= - LCKPT = 200 -C ... J = 1 -C -C ... TO MOVE ONE LEVEL'S DATA OF ONE UPPER AIR REPORT -C -C ... TO MOVE PREAMBLE OF FIRST 14 WORDS IN SEQUENCE ... - KKSTART = 2*KNEXT - 1 -C ... where KKSTART points to first "hafword" of preamble -C ... where hafword is unpacked 32-bit words - JJSRC = KKSTART - 1 - do i = 1,14 - jjsrc = JJSRC + 1 - IF(JJSRC .GT. KLIM) THEN -C ... REPLENISH THE I4UPABIN() ... - LCKPT = 210 - CALL FILLUPBIN(LUNUPA,LCKPT,IRET_FIL) - JUPABUF2 = JUPABUF - call byteswap(JUPABUF2(1), 8, 512) - - IF(IRET_FIL .NE. 0) THEN - IRET = IRET_FIL - GO TO 999 - ENDIF - - JJSRC = 1 - - KKSTART = KKSTART - KLIM -C ... because I refreshed the buffer during the preamble -C ... I need a decremented-by-1024 value of KKSTART, -C ... below the crease, -C ... to compute (ISRC) for the millibar lvl data -C ... in the following paragraph - - ENDIF - - lonelvl(i) = I4UPABIN(JJSRC) - -C ------------------------------------------------------ - - IF(I .EQ. 3) THEN !... WORD(3) IS END-REC PTR -C ... UPDATE THE END-RECORD POINTER ... - K4ENDREP = I4UPABIN(JJSRC)/4096 !... I*4 WORD(3) - IF (K4ENDREP .GT. KLIM) THEN !... K : 1024 - - WRITE(6,225)K4ENDREP,KLIM - 225 FORMAT(1H ,'rd_uupa:BAD END-REPORT POINTER (K4ENDREP)=', - 1 ' (',I8,')', - 2 /1H ,7X,'LIMITING BUFFER SIZE=',I6) - -C ... failed here on last report within record no. 3 -C ... in which K4ENDREP = 1025 -C ... Try to go on with end-ptr set for start of next rec -C ... without refilling buffer yet, - - K4ENDREP = MOD(K4ENDREP,KLIM) - -C ... write(6,235) -C ... 235 format(1h 'rd_uupa: JOB STOPPING') -C ... IRET = -1 -C ... GO TO 999 !... ERROR EXIT - END IF - K8ENDREP = (K4ENDREP+1)/2 - ENDIF -C --------------------------------------------------------- - enddo - -C ... J = 15 - NTOTLVLS = ishft(LONELVL(13),-12) - IB = ishft(LONELVL(14),-12) - - IF(MILLIBARIX .LE. NTOTLVLS) THEN - INDEXLVL = (IB - 1) + 7*(MILLIBARIX-1) -C ... GET OBS(J) WHERE J=ARR(INDEXLVL+I),I=1,7) - IDEST = 15 - 1 - ISRC = (KKSTART - 1) + INDEXLVL - - ISOBSERVED = 0 - LBIT = 11 - DO ITEMOBS = 1,7 !... GET 7 OBS QUANTITIES FOR LVL - LBIT = LBIT + 1 - ISRC = ISRC + 1 - IF(ISRC .GT. KLIM) THEN - LCKPT = 250 - CALL FILLUPBIN(LUNUPA,LCKPT,IRET_FIL) - JUPABUF2 = JUPABUF - call byteswap(JUPABUF2(1), 8, 512) - - IF(IRET_FIL .NE. 0) THEN - IRET = IRET_FIL - GO TO 999 - ENDIF - - ISRC = ISRC - KLIM - ENDIF - - LONELVL(IDEST+ITEMOBS) = I4UPABIN(ISRC) -C ... is that isrc yieldin Operand range error? -C ... TO SET A BIT TO INDICATE THE PRESENCE OF OBSERVED QUAN - IF(I4UPABIN(ISRC) .NE. MISSING) THEN - ISOBSERVED = IBSET(ISOBSERVED,LBIT) - ENDIF - ENDDO - - ISOBSERVED = IAND(ISOBSERVED,MSKOBSBITS) -C ... add to this bit word what the old user expected ... - iiiiold = 0 - if(btest(isobserved,12)) then !... ZZZZ - IIIIOLD = ibset(iiiiold,LZBIT) - endif - if(btest(isobserved,13)) then !... TT - IIIIOLD = ibset(iiiiold,LTBIT) - endif - if(btest(isobserved,14)) then !... TD - IIIIOLD = ibset(iiiiold,LTDBIT) - endif - if((btest(isobserved,15)) .and. !... dd - 1 (btest(isobserved,16))) then !... fff - IIIIOLD = ibset(iiiiold,LWBIT) - endif - if(btest(isobserved,17)) then !... DZ - IIIIOLD = ibset(iiiiold,LDZBIT) - endif - - LONELVL(IDEST+8) = ior(ISOBSERVED,iiiiold) - - ENDIF - -C ... how can i move KNEXT to point to end of rec? - IRET_FIL = -9 - IF(LPREVEND .GT. K8ENDREP) THEN -C ... here is the case where this report spanned the end-of- -C ... input-buffer; - -C ... Has the record number been upped already? - IF(NBUFPREV .EQ. NBUFUPA) THEN -C ... NO, the record number has not been upped; so read - LCKPT = 420 - CALL FILLUPBIN(LUNUPA,LCKPT,IRET_FIL) - JUPABUF2 = JUPABUF - call byteswap(JUPABUF2(1), 8, 512) - - IF(IRET_FIL .NE. 0) THEN - IRET = IRET_FIL - GO TO 999 - ENDIF - endif - ENDIF - - IF(IRET_FIL .EQ. -9) THEN - GO TO 477 - endif - if(C8INPBUF(K8ENDREP) .NE. 'END_REPO') THEN -C ... failed here after reading the 2nd buffer full ... -C ... THIS "LOST IN DATA FILE" CONDITION IS WHAT I AM -C ... TRYING TO PATCH ... - WRITE(6,475)K8ENDREP,jupabuf(K8ENDREP),NBUFUPA - 475 FORMAT(1H ,'rd_uupa: FAILED. I am lost in data file', - 1 /1h ,7X,'Expected end-report in C8INPBUF(',I6, - 2 ') = hex',Z16, - 3 /1h ,7X,'COUNT OF RECORDS READ=',I6) - IRET = 3 - GO TO 999 - ENDIF - 477 CONTINUE - - name(1) = lonelvl(11) - name(2) = lonelvl(12) - cnamstn(1:4) = cname(1)(5:8) - cnamstn(5:8) = cname(2)(5:8) -C WRITE(6,478)cnamstn(1:6), K8ENDREP,NBUFUPA - 478 FORMAT(1H ,'rd_uupa: ' - 1 'Found end-of-record ',A6,' in C8INPBUF(',I6, - 2 ') in rec no =',I6) - KNEXT = K8ENDREP + 1 -C ----------------------------------------------------------- - IF(KNEXT .GT. 512) THEN - KNEXT = MOD(KNEXT,512) - ENDIF - - IRET_FIL = -9 - IF(LPREVNXT .GT. KNEXT) THEN -C ... here is the case where this report spanned the end-of- -C ... input-buffer; -C ... Has the record number been upped already? - IF(NBUFPREV .EQ. NBUFUPA) THEN -C ... NO, the record number has not been upped; so read - - LCKPT = 480 - CALL FILLUPBIN(LUNUPA,LCKPT,IRET_FIL) - JUPABUF2 = JUPABUF - call byteswap(JUPABUF2(1), 8, 512) - - IF(IRET_FIL .NE. 0) THEN - IRET = IRET_FIL - GO TO 999 - ENDIF - endif - - ENDIF - -C ----------------------------------------------------------- -C . . . S A V E . . . . . . . . . . . . . . . . . . . . - LPREVNXT = KNEXT !... PTR TO "STR_REPO" OF NEXT - LPREVEND = knext -1 !... PTR TO "END_REPO" OF THIS - NBUFPREV = NBUFUPA !... COUNT OF BUFFER IN OF NEXT - GO TO 999 - -C ... and where is K8ENDREP supposed to be left at? - -C --------------------------------------------------------------- - - - 910 CONTINUE - WRITE(6,915)LCKPT,LUNUPA,NBUFUPA - 915 FORMAT(1H ,'rd_uupa:AT LCKPT=',I5,'FAILED ON PARITY ERROR WHILE ', - 1 'READING FROM UNIT=',I3, - 2 /1H ,' COUNT OF INPUT BLOCKS READ BEFORE ERR =',I8) - IRET = 1 - GO TO 999 - - 920 CONTINUE - WRITE(6,925)LCKPT,LUNUPA,NBUFUPA - 925 FORMAT(1H ,'rd_uupa:AT LCKPT=',I5,'FAILED ON PHYSICAL ', - 1 'END-OF-FILE WHILE READING FROM UNIT=',I3, - 2 /1H ,' COUNT OF INPUT BLOCKS READ BEFORE END =',I8) - IRET = 2 - GO TO 999 - - 999 CONTINUE - RETURN - END - - SUBROUTINE FILLUPBIN(LUNUPA,LCKPT,IRET_FIL) -C 21-JAN-1997/DSS -C ... -C ... TO READ IN THE NEXT BLOCK - COMMON /RDUPABFS/ K8ENDREP, KNEXT, NBUFUPA, - 1 LPREVEND, LPREVNXT, NBUFPREV,JUPABUF,I4UPABIN - INTEGER K8ENDREP - INTEGER KNEXT - INTEGER NBUFUPA - - INTEGER LPREVEND - INTEGER LPREVNXT - INTEGER NBUFPREV - - INTEGER JUPABUF(512) - CHARACTER*8 C8INPBUF (512) !... 512 longwords=4096 byte/blk - EQUIVALENCE (JUPABUF(1),C8INPBUF(1)(1:1)) - - INTEGER I4UPABIN(1024) - -C ... TO UNPACK THE 64-BIT WORDS INTO 32-BIT WORDS, -C ... CALL GBYTES(JUPABUF,I4UPABIN,NOFFSET,NBITSGRP,NPADBITS,NGRPS2DO) - INTEGER NOFFSET - DATA NOFFSET / 0 / - INTEGER NBITSGRP - DATA NBITSGRP / 32 / - INTEGER NPADBITS - DATA NPADBITS / 0 / - INTEGER NGRPS2DO - DATA NGRPS2DO / 1024 / - - INTEGER NEGSIGNEXT - DATA NEGSIGNEXT / X'FFFFFFFF00000000' / -C - integer LUNUPA - INTEGER LCKPT - integer iret_fil -C -C -C - iret_fil = 0 - READ(LUNUPA,ERR=910,END=920) JUPABUF - NBUFUPA = NBUFUPA + 1 - -C WRITE(6,FMT='(1H ,''rd_uupa::fillupbin: was called at LCKPT='', -C 1 I5,''; after-read buffer count='',I5)') -C A LCKPT,NBUFUPA - - CALL GBYTES(JUPABUF,I4UPABIN,NOFFSET,NBITSGRP,NPADBITS, - 1 NGRPS2DO) - do ihw = 1,NGRPS2DO - IF(BTEST(I4UPABIN(IHW),31)) THEN !... HI-ORDER BIT - I4UPABIN(IHW) = IOR(NEGSIGNEXT,I4UPABIN(IHW)) - ENDIF - ENDDO - GO TO 999 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 910 CONTINUE - WRITE(6,915)LCKPT,LUNUPA,NBUFUPA - 915 FORMAT(1H ,'rd_uupa::fillupbin:AT LCKPT=',I5, - 1 'FAILED ON PARITY ERROR ', - 2 /1h ,7X,' WHILE READING FROM UNIT=',I3, - 2 /1H ,' COUNT OF INPUT BLOCKS READ BEFORE ERR =',I8) - IRET_fil = 1 - GO TO 999 - - 920 CONTINUE - WRITE(6,925)LCKPT,LUNUPA,NBUFUPA - 925 FORMAT(1H ,'rd_uupa::fillupbin:AT LCKPT=',I5, - 1 'FAILED ON PHYSICAL END-OF-FILE ', - 2 /1h ,7X,'WHILE READING FROM UNIT=',I3, - 2 /1H ,' COUNT OF INPUT BLOCKS READ BEFORE END =',I8) - IRET_FIL = 2 - GO TO 999 - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/rdafil.f b/util/sorc/plotvpap.fd/rdafil.f deleted file mode 100755 index a7567a2f2a..0000000000 --- a/util/sorc/plotvpap.fd/rdafil.f +++ /dev/null @@ -1,57 +0,0 @@ - SUBROUTINE RDAFIL(INFILE,NOLVSR,LVLSAL,KRUN,IOPCLO, - X LCKOUT,IOPENQ,IERROR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: RDAFIL READING THE DATA FIELD -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-11 -C -C ABSTRACT: PLACES DATA FIELD INTO TEMPORARY STORAGE, AND -C WRITES STRIP TITLE (IE; MAP BACKGROUND, DATE/TIME ETC). -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-25 STEVE LILLY DOCUMENT -C 93-05-11 LILLY CONVERT SUB. TO FORTRAN 77 -C -C USAGE: CALL RDAFIL(INFILE,NOLVSR,LVLSAL,KRUN,IOPCLO,LCKOUT, -C & IOPENQ,IERROR) -C -C INPUT ARGUMENT LIST: -C INFILE - INPUT FILE NUMBER SUCH AS 19 FOR ADPUPA -C NOLVSR - NO. OF MANDATORY LEVELS REQUESTED -C LVLSAL - ARRAY OF ALL LEVELS REQUESTED (BY INDEX NO.) -C KRUN - FOR SETTING OPTIONS BY RUN TYPE, SUCH AS =11 TROPIC -C LCKOUT - TRUE. IF CHECKOUT RUN FOR MORE PRINT. LOGICAL -C IOPENQ - INDICATES WHETHER GRANPA FILE IS OPEN -C -C OUTPUT ARGUMENT LIST: -C IOPCLO - TO OPEN/CLOSE GRANPA FILE -C - =1, CLOSE GRANPA AFTER PROCESSING THIS INP FILE -C - =2, OPEN GRANPA FILE THEN PROCESS THIS INP FILE -C - =4, CLOSE GRANPA IMMEDIATELY -C IERROR - =0, NORMAL EXIT -C - =1, RETURN FROM REDADP WITH ERROR -C COMMON /BOBIN / LOCT(256),IDTBL(1539) -C COMMON /TIMES / NANJI(12) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON /BOBIN / LOCT(256),IDTBL(1539) - COMMON /TIMES / NANJI(12) -C - CHARACTER*8 GRANPA - DATA GRANPA /'GRANPA '/ -C - INTEGER LVLSAL(11) - INTEGER MESSG(10) -C - LOGICAL LCKOUT -C - RETURN - END diff --git a/util/sorc/plotvpap.fd/rdcar1.f b/util/sorc/plotvpap.fd/rdcar1.f deleted file mode 100755 index e9541e0657..0000000000 --- a/util/sorc/plotvpap.fd/rdcar1.f +++ /dev/null @@ -1,257 +0,0 @@ - SUBROUTINE RDCAR1(NVRBLS,DHVRBL,IVALRA,IERR1, - 1 KNAM,NAME,KNUMB,NUMBS) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: RDCAR1 SPECIALIZED CARD READER '1' -C PRGMMR: LIN ORG: W/NMC412 DATE: 97-01-29 -C -C ABSTRACT: THIS SPECIALIZED CARD READER IS FOR READING CARD '1' -C FORMAT WHICH MUST HAVE A '1' IN CARD COLUMN 1, AND EACH VRBL -C ON THE CARD HAS AN '=' SIGN FOLLOWED BY A NUMERIC VALUE FOR -C THAT VRBL. AN EXCEPTION IS FOR THE VRBL NAMED KRUN WHICH IS -C DEFINED AS A CHARACTER STRING WHICH WILL BE MATCHED IN THE -C KHRUN TABLE AND THE VALUE RETURNED IS THE NUMERIC SUBSCRIPT. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 88-07-25 GLORIA DENT PUT IN DOCUMENTATION BLOCK -C 89-06-14 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C DEFINES THE STARTING LOCATION ON THE -C VARIAN FOR 1 AND 2 DOT FAX CHARTS. -C 97-01-29 LIN CONVERT SUB. TO CFT-77. -C -C USAGE: CALL RDCAR1(NVRBLS,DHVRBL,IVALRA,IERR1, -C & KNAM,NAME,KNUMB,NUMBS) -C -C INPUT ARGUMENT LIST: -C NVRBLS - NUMBER OF VRBLS ON THE CARD -C DHVRBL - VRBLS TO LOOK FOR ON THE CARD -C - MUST BE LEFT-JUSTIFIED IN REAL*8 WORDS -C -C OUTPUT ARGUMENT LIST: -C IVALRA - THE VALUES OF THE RHS OF '=' SIGN AS INTEGERS -C KNAM - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C NAME - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C KNUMB - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C NUMBS - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C IERR1 - = 0 IF NORMAL RETURN -C - = -1 IF IT ENCOUNTERED A '9' IN COLUMN 1 -C - = +1 IF ERROR EXIT -C COMMON/ISTART/ISTART -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON/ISTART/ISTART -C - CHARACTER*1 LCARD(80) - CHARACTER*80 JCARD - EQUIVALENCE (LCARD(1),JCARD) -C - CHARACTER*1 LIT1 - DATA LIT1 /'1'/ - CHARACTER*1 LIT9 - DATA LIT9 /'9'/ -C - CHARACTER*8 DBLWRD - CHARACTEr*8 DHVRBL(NVRBLS) -C - INTEGER ICARD(10) - INTEGER INGLES(2) - INTEGER IVALRA(NVRBLS) - INTEGER JCOT -C - INTEGER KKHRUN(23) - CHARACTER*8 KHRUN(23) - DATA KHRUN /'RADAT ', 'OPNL ', - 1 'OVR48OPN', 'FINAL ', - 2 'LFM ', 'PFAX ', - 3 'BKUPPFAX', '1DOTFAX ', - 4 '2DOTFAX ', 'SIRSPLOT', - 5 'TROPIC1 ', 'TROPIC2 ', - 6 'US1PLOT ', 'UABPLOT ', - 7 'NHEMI20 ', 'WINDPLOT', - 8 'NHEMI40 ', 'SHEMI40 ', - 9 'NHEMI60 ', 'NH2501 ', - A 'NH2005 ', 'GH2601 ', - B 'GH2602 '/ - INTEGER KNAM(NVRBLS) - INTEGER KNUMB(NVRBLS) - CHARACTER*8 KRUN - DATA KRUN /'KRUN '/ - CHARACTER*12 NAME(NVRBLS) - INTEGER CNAME(2) - INTEGER NFRMT(2) - CHARACTER*12 NUMBS(NVRBLS) - CHARACTER*4 CNUM -C - LOGICAL W3AI24 -C - EQUIVALENCE(ICARD(1),LCARD(1)) -C EQUIVALENCE(DBLWRD,INGLES) - EQUIVALENCE(KKHRUN(1),KHRUN(1)) -C - DATA MXRUNS /23/ - DATA KFINL /4/ - DATA KIQSY /14/ -C -C ...INITIALIZATION... -C - IERR1 = 0 -C PRINT *,' RDCAR1, NVRBLS=',NVRBLS - DO 110 I=1,NVRBLS - IVALRA(I) = 0 - 110 CONTINUE - MXITM = NVRBLS - READ(15, 122) LCARD - 122 FORMAT(80A1) - PRINT 124, LCARD - 124 FORMAT(1H , 80A1) -C -C ...SETTING THE STARTING LOCATION TO PLOT THE OVERLAPPING -C STATIONS (IF ANY) WHICH WILL BE MOVE ACCORDING TO -C SUB B4PLOT, MOVEID, AND PLTDAT FOR 1 AND 2 DOT -C FAX CHARTS. -C -C FOR A ONE DOT FAX CHART... - IF(W3AI24(LCARD(14),KHRUN(8),7)) ISTART = 460 -C -C FOR A TWO DOT FAX CHART... - IF(W3AI24(LCARD(14),KHRUN(9),7)) ISTART = 460 -C - PRINT 120, ISTART - 120 FORMAT(1X,'ISTART INITIALIZE IN RDCAR1=',1X,I4) -C - IF(LCARD(1) .EQ. LIT1) GO TO 135 - IF(LCARD(1) .NE. LIT9) GO TO 128 -C ...OTHERWISE, IT WAS A '9' CARD SO THERE IS NO MORE CARDS TO READ - IERR1 = -1 - GO TO 999 - 128 CONTINUE - PRINT 130 - 130 FORMAT(1H , 10X, '***ERROR RETURN FROM RDCAR1, CARD 1 DOES NOT HA - 1VE A 1 IN COL 1 * * * ') - IERR1 = 1 - GO TO 999 - 135 CONTINUE - PRINT *, ' GET A valid CARD' - ITH = 2 - CALL SEPCAR(JCARD,ITH,MXITM,ITEM,KNAM,NAME,KNUMB,NUMBS,IERR) - JCOT = ITEM - IF(IERR .EQ. 0) GO TO 200 - 137 CONTINUE - PRINT 138 - 138 FORMAT(1H , 10X, '***ERROR RETURN FROM SEPCAR WHEN CALLED BY RDCAR - 11. FORMAT ERROR ON CARD 1 * * * ') - IERR1 = 1 - GO TO 999 - 200 CONTINUE - IF(ITEM .LE. 0) GO TO 137 -C ...GIVEN VRBL NAMES ARE IN REAL*8 DHVRBL AND NVRBLS IS COUNT OF -C ... ITEMS IN DHVRBL -C ...THE FOUND VRBL NAMES ARE IN NAME(1,X),(2,X),(3,X) -C ... AND ITEM HAS NO. OF ITEMS FOUND - IF(ITEM .GE. NVRBLS) GO TO 266 - PRINT 262, ITEM,NVRBLS - 262 FORMAT(1H , 10X, '***ERROR RETURN FROM RDCAR1. ITEM COUNT OF FOUN - 1D VRBLS = ', I5, 2X, 'WHICH IS LESS THAN THE EXPECTED ', I5) - IERR1 = 1 - GO TO 999 - 266 CONTINUE - DO 477 IA = 1,NVRBLS -C PRINT *,'IA=',IA - DBLWRD = DHVRBL(IA)(1:8) -C PRINT *, 'DBLWRD=',DBLWRD -C PRINT *, 'DHVRBL(IA)=',DHVRBL(IA) -C?? CALL GBYTES(DBLWRD,INGLES,0,32,0,2) -C PRINT *,' JCOT=', JCOT - DO 311 IB = 1,JCOT - ISAVIB = IB -C print *,' name(IB)=',name(ib) -C?? CALL GBYTES(NAME(IB),CNAME,0,32,0,2) -C?? PRINT 317,INGLES(1),INGLES(2) -C?? PRINT 317,CNAME(1),CNAME(2) -C?? IF(INGLES(1) .NE. NAME(1,IB)) GO TO 311 -C?? IF(INGLES(2) .EQ. NAME(2,IB)) GO TO 320 -C?? IF(INGLES(1) .NE. CNAME(1)) GO TO 311 -C?? IF(INGLES(2) .EQ. CNAME(2)) GO TO 320 - if(dblwrd .eq.name(ib)(1:8)) then - go to 320 - else - go to 311 - endif - 311 CONTINUE -C ...IF IT FALLS THRU HERE, NO MATCH FOUND FOR THIS DESIRED VRBL -C PRINT 315, INGLES(1),INGLES(2) - 315 FORMAT(1H , 10X, '***ERROR RETURN FROM RDCAR1. REQUESTED VRBL NAM - 1 ED ...', 2A4, ' ... WAS NOT FOUND ON CARD1') - IERR1 = 1 -C PRINT 317,INGLES(1),INGLES(2) -C PRINT 317,CNAME(1),CNAME(2) - 317 FORMAT ( 1X,Z16,1X,Z16) - GO TO 999 - 320 CONTINUE -C ...COMES HERE WHEN MATCHING VRBL NAME WAS FOUND AT NAME(1,IB) -C??? IF(INGLES(1) .NE. JKRUN(1)) GO TO 350 -C??? IF(INGLES(2) .NE. JKRUN(2)) GO TO 350 - IF(DBLWRD .NE. KRUN) GO TO 350 -C ...OTHERWISE, THIS WAS KRUN = - DBLWRD(1:8) = NUMBS(ISAVIB)(1:8) -C??? INGLES(1) = NUMBS(1,ISAVIB) -C??? INGLES(2) = NUMBS(2,ISAVIB) -c CALL GBYTES(DBLWRD,INGLES,0,32,0,2) -C ...NOW INGLES SHUD CONTAIN '1DOTFAX ', OR SOMETHING LIKE THAT - DO 333 IC = 1,MXRUNS - IF(DBLWRD .NE. KHRUN(IC)) GO TO 333 -C ...FOUND MATCHING RUN TYPE IN KHRUN TABLE... - KRUN1 = IC - GO TO 340 - 333 CONTINUE -C ...IF IT FALLS THRU HERE, CAN,T FIND RUN TYPE... -c PRINT 336, INGLES(1),INGLES(2) - 336 FORMAT(1H , 10X, '***ERROR RETURN FROM RDCAR1. LOOK FOR MISSPELLE - 1D RUN TYPE ON CARD1 IN THE FOLLOWING STRING ... ', 2A4) - IERR1 = 1 - GO TO 999 - 340 CONTINUE -C ...FOUND KRUN1 ... - IF(KRUN1 .EQ. KIQSY) KRUN1 = KFINL -C ...WHICH CHGD KRUN1 TO AGREE W/ RGS USAGE - IVALRA(IA) = KRUN1 - GO TO 477 - 350 CONTINUE -C ...COMES HERE AFTER MATCHING VRBL NAME WAS FOUND AT NAME(1,IB) -C ... AND IT WAS NOT KRUN SO ASSUME IT IS NUMERIC AND DECODE - NCHAR = KNUMB(IB) - IF(NCHAR .LT. 1) GO TO 355 - IF(NCHAR .GT. 4) GO TO 355 -C ...CAUTION...ASSUMES ALL NUMERIC VALUES TAKE 4 CARD COLUMNS OR LES - GO TO 360 - 355 CONTINUE - PRINT 358, DHVRBL(IA) - 358 FORMAT(1H , 10X, '***ERROR RETURN FROM RDCAR1. NUMERIC VALUE OF V - 1RBL ...', A8, ' ... IS OUT OF RANGE') - IERR1 = 1 - GO TO 999 - 360 CONTINUE -C??/ NUM = NUMBS(1,IB) -C??/ CALL FFA2I(NUM,1,NCHAR,4,IRESLT,IERR) -C print *,'nchar=',nchar - CNUM(1:4) = NUMBS(IB)(1:4) -C PRINT *, ' CNUM=',CNUM - CALL ASC2INT(nchar,CNUM,IRESLT,IERR) -C PRINT *,' IRESLT=',IRESLT - IVALRA(IA) = IRESLT - GO TO 477 - 477 CONTINUE -C ...ALL REQUESTED VRBLS HAVE BEEN TRANSLATED... -C - GO TO 999 - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/rdcar2.f b/util/sorc/plotvpap.fd/rdcar2.f deleted file mode 100755 index f7193b5c31..0000000000 --- a/util/sorc/plotvpap.fd/rdcar2.f +++ /dev/null @@ -1,152 +0,0 @@ - SUBROUTINE RDCAR2(NVRBLS,DHMBS,MXMBS,IVALRA,IERR1, - 1 KNAM,NAME,KNUMB,NUMBS) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: RDCAR2 SPECIALIZED CARD READER '2' -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-06 -C -C ABSTRACT: THIS SPECIALIZED CARD READER IS FOR READING CARD '2' -C FORMAT WHICH MUST HAVE A '2' IN CARD COLUMN 1, FOLLOWED BY MB -C LEVEL ...NAMES, FOR EXAMPLE 850MB, 700MB, 500MB; -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 88-07-25 GLORIA DENT PUT IN DOCUMENTATION BLOCK -C 89-04-18 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C 93-05-06 LILLY CONVERT SUB. TO FORTRAN 77 -C -C USAGE: CALL RDCAR2(NVRBLS,DHMBS,MXMBS,IVALRA,IERR1, -C & KNAM,NAME,KNUMB,NUMBS) -C -C INPUT ARGUMENT LIST: -C NVRBLS - NO. OF LEVEL NAMES ON THE CARD -C DHMBS - LOOKUP TABLE FOR MATCHING THE FOUND NAME AGAINST. -C - CONTAINS MB NAMES IN REAL*8 ARRAY -C MXMBS - DIMENSION OF DHMBS TABLE -C -C OUTPUT ARGUMENT LIST: -C IVALRA - THE SUBSCRIPTS OF THE MATCHING ITEM IN DHMBS TABLE -C - IS RETURNED IN IVALRA,DIMENSIONED NVRBL -C KNAM - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C NAME - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C KNUMB - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C NUMBS - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C IERR1 - = 0 IF NORMAL RETURN -C - = -1 IF IT ENCOUNTERED A '9' IN COLUMN 1 -C - = +1 IF ERROR EXIT -C NVRBLS. SEE DIMENSION STATEMENT. -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - CHARACTER*1 LCARD(80) - CHARACTER*80 JCARD - EQUIVALENCE (LCARD(1),JCARD) - CHARACTER*1 LIT2 - DATA LIT2 /'2'/ - CHARACTER*1 LIT9 - DATA LIT9 /'9'/ -C - CHARACTER*8 DBLWRD - CHARACTER*8 DHMBS(MXMBS) -C -C INTEGER ICARD(10) - INTEGER INGLES(2) - INTEGER IVALRA(NVRBLS) - INTEGER KNAM(NVRBLS) - CHARACTER*12 NAME(NVRBLS) - INTEGER KNUMB(NVRBLS) - CHARACTER*12 NUMBS(NVRBLS) -C -C EQUIVALENCE(ICARD(1),LCARD(1)) -C EQUIVALENCE(DBLWRD,INGLES(1)) -C -C ...START... - IERR1 = 0 - IF(NVRBLS .GT. 0) GO TO 105 - PRINT 102,NVRBLS - 102 FORMAT(1H , 10X, 'GIVEN ARGUMENT FOR NO. OF VRBLS EXPECTED IS OUT - 1OF RANGE. NVRBLS = HEX', Z8) - GO TO 900 - 105 CONTINUE - DO 110 I = 1,NVRBLS - IVALRA(I) = 0 - 110 CONTINUE - MXITM = NVRBLS - READ (15,122)LCARD - 122 FORMAT(80A1) - PRINT 124,LCARD - 124 FORMAT(1H , 80A1) - IF(LCARD(1) .EQ. LIT2) GO TO 135 - IF(LCARD(1) .NE. LIT9) GO TO 128 -C ...OTHERWISE, IT WAS A '9' CARD, SO NO MORE CARDS TO READ - PRINT 126 - 126 FORMAT(1H , 10X, 'SUBR RDCAR2 READ A 9 CARD AND RETURNED WITHOUT D - 1OING ANYTHING') - IERR1 = -1 - GO TO 999 -C - 128 CONTINUE - PRINT 130 - 130 FORMAT(1H , 10X, 'CARD2 DOES NOT BEGIN WITH A 2 IN COLUMN1 ') - GO TO 900 -C - 135 CONTINUE - ITH = 2 - CALL SEPCAR(JCARD,ITH,MXITM,ITEM,KNAM,NAME,KNUMB,NUMBS,IERR) - IF(IERR .EQ. 0) GO TO 200 - 137 CONTINUE - PRINT 138 - 138 FORMAT(1H , 10X, 'SUB SEPCAR COMPLAINED ABOUT FORMAT OF CAR - 1D 2 WHEN CALLED BY RDCAR2' ) - GO TO 900 - 200 CONTINUE - IF(ITEM .LE. 0) GO TO 137 -C ...THE FOUND VRBL NAMES ARE IN NAME(1,X),(2,X),(3,X) -C ... AND ITEM HAS NO. OF ITEMS FOUND -C ... AND NVRBLS HAS NO. OF ITEMS EXPECTED. - IF(ITEM .GE. NVRBLS) GO TO 266 - PRINT 262, ITEM,NVRBLS - 262 FORMAT(1H , 10X, 'ITEM COUNT OF FOUND VRBLS = ', I5, 2X, - 1 'WHICH IS LESS THAN THE EXPECTED ', I5) - GO TO 900 - 266 CONTINUE -C ...WHAT I HAVE NOW IS '100MB', '70MB', ETC. -C ... WHAT I WANT IS A TABLE OF ILVLT - DO 377 IA = 1,NVRBLS - DBLWRD(1:8) = NAME(IA)(1:8) -C??? INGLES(1) = NAME(1,IA) -C??? INGLES(2) = NAME(2,IA) - CALL GBYTES(DBLWRD,INGLES,0,32,0,2) - DO 333 IB = 1,MXMBS - ILVLT = IB - IF(DBLWRD .EQ. DHMBS(IB)) GO TO 350 - 333 CONTINUE -C ...SINCE IT FELL THRU HERE WITHOUT FINDING A MATCH, ERROR -C ... BECAUSE EACH LEVEL NAME FOUND ON CARD SHOULD HAVE A MATCH -C ... IN THE DHMBS TABLE. - PRINT 342, INGLES(1), INGLES(2) - 342 FORMAT(1H , 10X, 'CANNOT FIND A MATCH IN THE DHMBS TABLE FOR A LEV - 1EL NAME FOUND ON CARD2 . LOOK FOR MISSPELLING IN ...',2A4) - GO TO 900 - 350 CONTINUE - IVALRA(IA) = ILVLT - 377 CONTINUE -C ...WHEN IT FALLS THRU HERE ILVLT HAS BEEN FOUND FOR EVERY MB LEV -C ... NAMED ON CARD2. -C ...MAYBE A SORT AND LOOK FOR DUPLICATES CAN BE INSERTED IN HERE - GO TO 999 - 900 CONTINUE - PRINT 905 - 905 FORMAT(1H , ' * * * * ERROR RETURN FROM SUB RDCAR2 WHILE ', - 1'READING CONTROLLING DATA CARD2 * * * * ') - IERR1 = 1 - GO TO 999 - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/rdcar2bp.f b/util/sorc/plotvpap.fd/rdcar2bp.f deleted file mode 100755 index f7193b5c31..0000000000 --- a/util/sorc/plotvpap.fd/rdcar2bp.f +++ /dev/null @@ -1,152 +0,0 @@ - SUBROUTINE RDCAR2(NVRBLS,DHMBS,MXMBS,IVALRA,IERR1, - 1 KNAM,NAME,KNUMB,NUMBS) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: RDCAR2 SPECIALIZED CARD READER '2' -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-06 -C -C ABSTRACT: THIS SPECIALIZED CARD READER IS FOR READING CARD '2' -C FORMAT WHICH MUST HAVE A '2' IN CARD COLUMN 1, FOLLOWED BY MB -C LEVEL ...NAMES, FOR EXAMPLE 850MB, 700MB, 500MB; -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 88-07-25 GLORIA DENT PUT IN DOCUMENTATION BLOCK -C 89-04-18 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C 93-05-06 LILLY CONVERT SUB. TO FORTRAN 77 -C -C USAGE: CALL RDCAR2(NVRBLS,DHMBS,MXMBS,IVALRA,IERR1, -C & KNAM,NAME,KNUMB,NUMBS) -C -C INPUT ARGUMENT LIST: -C NVRBLS - NO. OF LEVEL NAMES ON THE CARD -C DHMBS - LOOKUP TABLE FOR MATCHING THE FOUND NAME AGAINST. -C - CONTAINS MB NAMES IN REAL*8 ARRAY -C MXMBS - DIMENSION OF DHMBS TABLE -C -C OUTPUT ARGUMENT LIST: -C IVALRA - THE SUBSCRIPTS OF THE MATCHING ITEM IN DHMBS TABLE -C - IS RETURNED IN IVALRA,DIMENSIONED NVRBL -C KNAM - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C NAME - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C KNUMB - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C NUMBS - DEFINES AS SCRATCH ARRAY AS A FUNCTION OF NVRBLS -C IERR1 - = 0 IF NORMAL RETURN -C - = -1 IF IT ENCOUNTERED A '9' IN COLUMN 1 -C - = +1 IF ERROR EXIT -C NVRBLS. SEE DIMENSION STATEMENT. -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - CHARACTER*1 LCARD(80) - CHARACTER*80 JCARD - EQUIVALENCE (LCARD(1),JCARD) - CHARACTER*1 LIT2 - DATA LIT2 /'2'/ - CHARACTER*1 LIT9 - DATA LIT9 /'9'/ -C - CHARACTER*8 DBLWRD - CHARACTER*8 DHMBS(MXMBS) -C -C INTEGER ICARD(10) - INTEGER INGLES(2) - INTEGER IVALRA(NVRBLS) - INTEGER KNAM(NVRBLS) - CHARACTER*12 NAME(NVRBLS) - INTEGER KNUMB(NVRBLS) - CHARACTER*12 NUMBS(NVRBLS) -C -C EQUIVALENCE(ICARD(1),LCARD(1)) -C EQUIVALENCE(DBLWRD,INGLES(1)) -C -C ...START... - IERR1 = 0 - IF(NVRBLS .GT. 0) GO TO 105 - PRINT 102,NVRBLS - 102 FORMAT(1H , 10X, 'GIVEN ARGUMENT FOR NO. OF VRBLS EXPECTED IS OUT - 1OF RANGE. NVRBLS = HEX', Z8) - GO TO 900 - 105 CONTINUE - DO 110 I = 1,NVRBLS - IVALRA(I) = 0 - 110 CONTINUE - MXITM = NVRBLS - READ (15,122)LCARD - 122 FORMAT(80A1) - PRINT 124,LCARD - 124 FORMAT(1H , 80A1) - IF(LCARD(1) .EQ. LIT2) GO TO 135 - IF(LCARD(1) .NE. LIT9) GO TO 128 -C ...OTHERWISE, IT WAS A '9' CARD, SO NO MORE CARDS TO READ - PRINT 126 - 126 FORMAT(1H , 10X, 'SUBR RDCAR2 READ A 9 CARD AND RETURNED WITHOUT D - 1OING ANYTHING') - IERR1 = -1 - GO TO 999 -C - 128 CONTINUE - PRINT 130 - 130 FORMAT(1H , 10X, 'CARD2 DOES NOT BEGIN WITH A 2 IN COLUMN1 ') - GO TO 900 -C - 135 CONTINUE - ITH = 2 - CALL SEPCAR(JCARD,ITH,MXITM,ITEM,KNAM,NAME,KNUMB,NUMBS,IERR) - IF(IERR .EQ. 0) GO TO 200 - 137 CONTINUE - PRINT 138 - 138 FORMAT(1H , 10X, 'SUB SEPCAR COMPLAINED ABOUT FORMAT OF CAR - 1D 2 WHEN CALLED BY RDCAR2' ) - GO TO 900 - 200 CONTINUE - IF(ITEM .LE. 0) GO TO 137 -C ...THE FOUND VRBL NAMES ARE IN NAME(1,X),(2,X),(3,X) -C ... AND ITEM HAS NO. OF ITEMS FOUND -C ... AND NVRBLS HAS NO. OF ITEMS EXPECTED. - IF(ITEM .GE. NVRBLS) GO TO 266 - PRINT 262, ITEM,NVRBLS - 262 FORMAT(1H , 10X, 'ITEM COUNT OF FOUND VRBLS = ', I5, 2X, - 1 'WHICH IS LESS THAN THE EXPECTED ', I5) - GO TO 900 - 266 CONTINUE -C ...WHAT I HAVE NOW IS '100MB', '70MB', ETC. -C ... WHAT I WANT IS A TABLE OF ILVLT - DO 377 IA = 1,NVRBLS - DBLWRD(1:8) = NAME(IA)(1:8) -C??? INGLES(1) = NAME(1,IA) -C??? INGLES(2) = NAME(2,IA) - CALL GBYTES(DBLWRD,INGLES,0,32,0,2) - DO 333 IB = 1,MXMBS - ILVLT = IB - IF(DBLWRD .EQ. DHMBS(IB)) GO TO 350 - 333 CONTINUE -C ...SINCE IT FELL THRU HERE WITHOUT FINDING A MATCH, ERROR -C ... BECAUSE EACH LEVEL NAME FOUND ON CARD SHOULD HAVE A MATCH -C ... IN THE DHMBS TABLE. - PRINT 342, INGLES(1), INGLES(2) - 342 FORMAT(1H , 10X, 'CANNOT FIND A MATCH IN THE DHMBS TABLE FOR A LEV - 1EL NAME FOUND ON CARD2 . LOOK FOR MISSPELLING IN ...',2A4) - GO TO 900 - 350 CONTINUE - IVALRA(IA) = ILVLT - 377 CONTINUE -C ...WHEN IT FALLS THRU HERE ILVLT HAS BEEN FOUND FOR EVERY MB LEV -C ... NAMED ON CARD2. -C ...MAYBE A SORT AND LOOK FOR DUPLICATES CAN BE INSERTED IN HERE - GO TO 999 - 900 CONTINUE - PRINT 905 - 905 FORMAT(1H , ' * * * * ERROR RETURN FROM SUB RDCAR2 WHILE ', - 1'READING CONTROLLING DATA CARD2 * * * * ') - IERR1 = 1 - GO TO 999 - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/rdcar3.f b/util/sorc/plotvpap.fd/rdcar3.f deleted file mode 100755 index 68cb00cef2..0000000000 --- a/util/sorc/plotvpap.fd/rdcar3.f +++ /dev/null @@ -1,82 +0,0 @@ - SUBROUTINE RDCAR3(IERR1) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: RDCAR3 SPECIALIZED CARD READER '3' -C PRGMMR: LIN ORG: W/NMC412 DATE: 97-02-07 -C -C ABSTRACT: THIS SPECIALIZED CARD READER IS FOR READING CARD '3' -C FORMAT WHICH MUST HAVE A '3' IN CARD COLUMN 1, FOLLOWED BY -C LOCATION ADJUSTMENTS DELTAX AND DELTAY. -C -C PROGRAM HISTORY LOG: -C 97-02-07 ORIGINAL AUTHOR LUKE LIN -C -C USAGE: CALL RDCAR3(IERR1) -C -C INPUT ARGUMENT LIST: -C -C OUTPUT ARGUMENT LIST: -C IERR1 - = 0 IF NORMAL RETURN -C - = -1 IF IT ENCOUNTERED A '9' IN COLUMN 1 -C - = +1 IF ERROR EXIT -C NVRBLS. SEE DIMENSION STATEMENT. -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON /ADJUST/ IXADJ, IYADJ -C - CHARACTER*1 LCARD(80) - CHARACTER*80 JCARD - EQUIVALENCE (LCARD(1),JCARD) - CHARACTER*1 LIT3 - DATA LIT3 /'3'/ - CHARACTER*1 LIT9 - DATA LIT9 /'9'/ -C -C INTEGER ICARD(10) -C -C ...START... - PRINT *,' *** IN THE RECAR3' - IERR1 = 0 - IXADJ = 0 - IYADJ = 0 -C - READ (15,122)LCARD - 122 FORMAT(80A1) - PRINT 124,LCARD - 124 FORMAT(1H , 80A1) - IF(LCARD(1) .EQ. LIT3) GO TO 135 - IF(LCARD(1) .NE. LIT9) GO TO 128 -C ...OTHERWISE, IT WAS A '9' CARD, SO NO MORE CARDS TO READ - PRINT 126 - 126 FORMAT(1H , 10X, 'SUBR RDCAR3 READ A 9 CARD AND RETURNED WITHOUT D - 1OING ANYTHING') - IERR1 = -1 - GO TO 999 -C - 128 CONTINUE - PRINT 130 - 130 FORMAT(1H , 10X, 'CARD3 DOES NOT BEGIN WITH A 3 IN COLUMN1 ') - GO TO 900 -C - 135 CONTINUE - PRINT *,' READ CARD #3' - READ(JCARD,140)IXADJ,IYADJ - 140 FORMAT(11X,I6, 7X,I6) - PRINT *,' IXADJ=',IXADJ,' IYADJ=',IYADJ - GO TO 999 - 900 CONTINUE - PRINT 905 - 905 FORMAT(1H , ' * * * * ERROR RETURN FROM SUB RDCAR3 WHILE ', - 1'READING CONTROLLING DATA CARD2 * * * * ') - IERR1 = 1 - GO TO 999 - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/readair.f b/util/sorc/plotvpap.fd/readair.f deleted file mode 100755 index ce7c899314..0000000000 --- a/util/sorc/plotvpap.fd/readair.f +++ /dev/null @@ -1,584 +0,0 @@ - SUBROUTINE readair(LUNAIR,LADDONQQ,LVLDES,KRUN,ITOUT,HEDER, - 1 IRET_RDA) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: readair INITIALIZE OBS DATABASE & READ ACFT FILE -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 97-02-18 -C -C ABSTRACT: INITIALIZE OBS DATABASE AND READ ACFT FILE AND STORE INTO -C THE DATABASE IN COMMON. AN ADAPTATION OF READPA. CALLED FROM -C MAPLOP IN PLOTPAP. -C -C PROGRAM HISTORY LOG: -C 97-02-18 ORIGINAL AUTHOR -- DAVID SHIMOMURA -C ADAPTING READUPA() LOGIC TO READING ACFT FILE -C -C USAGE: CALL readair(LUNAIR,LADDONQQ,LVLDES,KRUN,ITOUT,HEDER, -C IRET_RDA) -C -C INPUT ARGUMENT LIST: -C LUNAIR - UNIT NUMBER OF INPUT ACFT FILE TO BE READ -C LADDONQQ - LOGICAL SWITCH -C = .T. IF YOU WISH TO ADD ONTO AN ALREADY INITIALIZED -C LOCAL OBSERVATIONS DATABASE; -C = .F. IF YOU WANT ME TO INITIALIZE THE LOCAL DATABASE -C BEFORE PUTTING ANY ACFT OBS IN THERE; -C -C LVLDES - LEVEL DESIRED BY INDEX NUMBER -C KRUN -C ITOUT - INTEGER FLAG WITH RANGE FROM 1 THRU 13 , USED -C - TO DETERMINE TYPE OF MAP BACKGROUND DATA IS TO BE -C - DISPLAYED ON. ITOUT IS A FUNCTION OF KRUN AND IS -C - SET IN SUB KOPTN. -C -C OUTPUT ARGUMENT LIST: -C HEDER - 50 WORD HEADER READ FROM LUNAIR WILL BE STORED HERE -C IRET_RDA - TO MARK ERROR RETURNS -C common /OBSLVLDB/ -C IOBS2PK - BIG BIN FOR RESULTING OBS (10,NDATASIZ) -C NDATASIZ - J DIMENSION OF IOBS2PK (NO. OF OBS IT CAN HOLD+1) -C NOBSDB - NO. OF OBS PUT INTO IOBS2PK FROM LUNAIR FILE - -C COMMON - / DATE /NYR,NMON,NDAY,NHR -C COMMON - / DAT1 /IHR1,IDA1,IMO1,IYR1 -C COMMON - /WLONG0/ WLONG0 -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C If this aircraft obs reader is used after readupa has put raobs -C into the local data base, then do I want to add onto an existing -C database??? Then can I assume that the database has already been -C initialized??? But is there any plotted chart of aircraft only? -C -C -C -C This is a test program to use the subroutine rd_airc -C to return one AIRCRAFT station at a time from the -C rd_airc data file -C -C Usage: -C CALL readair(LUNAIR,LVLDES,KRUN,ITOUT,HEDER,IRET_RDA) -C RESULTING DATA ARE PUT INTO COMMON -C -C CALLS rd_airc TO ACTUALLY READ THE DATA FILE: -C CALL rd_airc(LUNAIR,LINITQ, LVLIX, HEDER, LONELVL, IRET ) -C -C where the input parameters are, -C -C LUNAIR - Input file number -C LINITQ - LOGICAL SWITCH -C = .TRUE. ; TO COMMAND rd_airc TO REWIND -C THE INPUT FILE AND READ THE FILE HEADER -C BEFORE READING THE OBSERVATIONS; -C SUBR rd_airc WILL RESET THAT SWITCH TO =.F. -C SO THAT ON SUBSEQUENT CALLS TO GET THE -C NEXT REPORTS, IT WILL NOT INITIALIZE. -C -C LVLIX - MILLIBAR LEVEL BY INDEX NUMBER -C -C and the output parameters are, -C -C HEDER - The rd_airc file header record. -C LONELVL(18) - ONE LEVEL'S DATA IN BINARY -C -C IRET - Return code: 0 = report returned -C -1 = end of file -C - INTEGER MAXWRDLVL - PARAMETER (MAXWRDLVL=24) - INTEGER NWRDLVLPAK - PARAMETER (NWRDLVLPAK=MAXWRDLVL/2) - - INTEGER MAXWRDHDR - PARAMETER (MAXWRDHDR=50) -C ---------------------------------------------------------------- - INTEGER MAXOBS - PARAMETER (MAXOBS=20000) - INTEGER NDATASIZ - PARAMETER (NDATASIZ=MAXOBS+1) - INTEGER LMTWRDPOB - PARAMETER (LMTWRDPOB=10) - INTEGER LMTHFWPOB - PARAMETER (LMTHFWPOB=2*LMTWRDPOB) !... =(20) - - COMMON /OBSLVLDB/NOBSDB,LVLIX,IOBS2PK - INTEGER IOBS2PK(LMTWRDPOB,NDATASIZ) - - - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - COMMON / DATE /NYR,NMON,NDAY,NHR - COMMON / DAT1 /IHR1,IDA1,IMO1,IYR1 - COMMON /WLONG0/ WLONG0 -C - -C ----------------------------------------------------------------- -C Usage: -C CALL readair(LUNAIR,LADDONQQ,LVLDES,KRUN,ITOUT,HEDER,IRET_RDA) - integer LUNAIR - LOGICAL LADDONQQ - integer lvldes - INTEGER KRUN - INTEGER ITOUT - CHARACTER*8 HEDER(50) - integer IRET_RDA -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - - INTEGER IMAX - INTEGER JMAX -C - DATA ABGMXI /109.0/ - DATA ABGMXJ / 81.0/ - DATA AIMAX /47.0/ - DATA AIMIN /1.0/ - DATA AJMAX /51.0/ - DATA AJMIN /1.0/ - - REAL FLD(16000) !... BIG ENOUGH FOR ANY? - - logical LINITQ - INTEGER LVLIX - INTEGER LONELVL(MAXWRDLVL) - REAL FLONELVL(MAXWRDLVL) - - INTEGER IONELVLPAK(NWRDLVLPAK) - - - - CHARACTER*8 CHGTS(21) -C - DATA CHGTS /'1000 ',' 925 ',' 850 ',' 700 ', - 1 ' 500 ',' 400 ',' 300 ',' 250 ', - 1 ' 200 ',' 150 ',' 100 ',' 70 ', - 3 ' 50 ',' 30 ',' 20 ',' 10 ', - 4 ' 7 ',' 5 ',' 3 ',' 2 ', - 5 ' 1 ' / -C - INTEGER KEIL - INTEGER KLLGO2 - LOGICAL LINTERPQQ - REAL HGTM - LOGICAL LINBOUNDQQ - REAL ALAT - REAL ALONG - - real obtime - - integer namstn - character*8 cnamstn - equivalence (namstn,cnamstn) - -C ... ARGS FOR HALF-PACKING VIA SBYTES ... - INTEGER NOFFSET - DATA NOFFSET / 0 / - INTEGER KBITPGRP - DATA KBITPGRP / 32 / - INTEGER KPADBITS - DATA KPADBITS / 0 / - INTEGER NGRPS2DO -C . . . . . . . . . . . . . . . . . . . . - integer irec - integer nofflvl - integer noutsider - - real paltm - REAL ALTMLOW, ALTMHIGH - INTEGER IRET_ALT - - LOGICAL LNEWPA - LOGICAL LGRANP - LOGICAL LDEWDO - LOGICAL LCHKPRNTQ - LOGICAL LDOACFTQQ - - - SAVE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - IRET_RDA = 0 -C ... NOBSDB = 0 - LCHKPRNTQ = .FALSE. - LDOACFTQQ = .TRUE. - - NGRPS2DO = MAXWRDLVL - - NDIX = 52 - IF(KRUN .EQ. 11) NDIX = 118 - IF(KRUN .EQ. 15) NDIX = 82 - IF(KRUN .EQ. 20) NDIX = 144 - IF(KRUN .EQ. 22) NDIX = 42 - IF(KRUN .EQ. 23) NDIX = 42 - AJMAX = FLOAT(NDIX) -C -------------------------------------------------------------- -C ... to determine KEIL from ITOUT, -- (SHOULD BE A FUNCTION) - LNEWPA = .TRUE. - LGRANP = .FALSE. - - IF(ITOUT .LT. 1) GO TO 702 - IF(ITOUT .GT. 14) GO TO 702 - GO TO 709 - 702 CONTINUE - PRINT 704, ITOUT - 704 FORMAT(1H , 'ERROR RETURN FROM READPA. GIVEN OUT-OF-RANGE ITOUT = - 1HEX', Z8, 2X, 'UNABLE TO READ ANY OBSERVATIONS' ) - IRET_RDA = 1 - RETURN - - 709 CONTINUE - NPTYPS = 3 - LDEWDO = .FALSE. -C 1 2 3 4 5 6 7 8 9 10 11 12 13 -C ... GO TO (710,720,730,740,750,760,770,780,702,790,795,798,798),ITOUT - - if(itout .eq. 1) then - KEIL = 1 -C ...FOR LFM ... - IF(LVLDES .GT. 8) GO TO 799 - IF(.NOT. LNEWPA) GO TO 799 - NPTYPS = 4 - LDEWDO = .TRUE. - GO TO 799 - - else if(itout .eq. 2) then - KEIL = 1 -C ...FOR LFM .... - IF(LVLDES .GT.8) GO TO 799 - IF(.NOT. LNEWPA) GO TO 799 - NPTYPS = 4 - LDEWDO = .TRUE. - GO TO 799 - - else if(itout .eq. 3) then -C ...IQSY ON N HEMI ... - KEIL = 2 - GO TO 799 - - else if(itout .eq. 4) then - KEIL = 15 - AIMAX = 55.0 - AJMAX = 42.0 - GO TO 799 - - else if(itout .eq. 5) then - KEIL = 3 - GO TO 799 - - else if(itout .eq. 6) then - KEIL = 2 -C ...FOR SIRS PLOTTED CHART ... - GO TO 799 - - else if(itout .eq. 7) then -C ...INTIIALIZE FOR TROPIC PLOT ON MERCATOR - KEIL = 6 - GO TO 799 - - else if(itout .eq. 8) then !... big NHemi -C ...INITIALIZE FOR LARGE 1/20M BACKGROUND. - KEIL = 7 - aimax = 109 - ajmax = 81 - GO TO 799 - - else if(itout .eq. 9) then - go to 702 !... ERROR ... no ITOUT==9 ever - - else if(itout .eq. 10) then -C ...INITIALIZE FOR GENERALIZED PLOT ON NH 1/40M BACKGROUND. - KEIL = 2 - GO TO 799 - - else if(itout .eq. 11) then -C ...INITIALIZE FOR NH 1/60M BACKGROUND... - AIMAX = 65.0 - AJMAX = 65.0 - KEIL = 14 - GO TO 799 - - else if((itout .eq. 12) .or. (itout .eq. 13)) then -C ...GOES-TYPE DISPLAY. - KEIL = 0 - GO TO 799 - - else if(itout .eq. 14) then !... big srn hemi - aimax = 109 - ajmax = 144 - keil = 16 - go to 799 - - else - go to 702 - endif -C - 799 CONTINUE - -C ... boundary tester needs KLLGO2, - - CALL SETKEIL(KRUN,ITOUTLCL,KLLGO2) - - IF(KRUN .EQ. 5) THEN - AIMAX = 55.0 - AJMAX = 42.0 - ENDIF - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - LVL = LVLDES -C ...BETTER CHECK FOR LVL W/I VALID RANGE... - IF((LVL .GT. 0) .AND. (LVL .LT. 22)) GO TO 810 - PRINT 7992,LVL -7992 FORMAT(1H ,'ERROR RETURN FROM READPA. OUT-OF-RANGE LVL = HEX',Z8, - X2X,'UNABLE TO SET ID FOR LATER READ OF LUNAIR') -C - 810 CONTINUE - -C .. ZERO THE BIG BIN -C ...INITIALIZE COUNTER FOR BIG BIN OBS COUNT -C -C * * * * * * * * * * * - -C -------------------------------------------------------------- -C ... DEFINE FOR BOUNDARY-TESTER ... - DO I = 1,16000 - FLD(I) = 0.0 - ENDDO - -C ... KLLGO2 = 3 -C ... KRUN = 2 -C ... KEIL = 1 !... LFM GRID - LINTERPQQ = .FALSE. -C . . . . . . . . . . . . . . . . . . - LVLIX = LVLDES + 1 -C ... LVLIX = 3 !... GETS THE 850-MB DATA -C ... LVLIX = 5 !... GETS THE 500-MB DATA - call setaltit(LVLDES,KRUN,ALTMLOW,ALTMHIGH,IRET_ALT) - if(iret_alt .NE. 0) then - write(6,125)KRUN,LVLDES - 125 format(1h ,'readair::setaltit: Failed to set altitude bounds ', - 1 ' for KRUN=',I3,' LVLDES=',I3) - LDOACFTQQ = .FALSE. - ELSE - WRITE(6,127)ALTMLOW,ALTMHIGH - 127 FORMAT(1H ,'readair::setaltit: ALTMLOW=',F9.1,' ALTMHIGH=', - 1 F9.1) - ENDIF - - IF(.NOT. LDOACFTQQ) THEN - IRET_RDA = 13 - GO TO 999 - ENDIF - -C READ REPORT FROM THE AIRCFT FILE -C - PRINT *,' readair: ready to read ACFT via rd_airc()' - IRET = 0 -C .... LUNAIR = 41 - LINITQ = .TRUE. !... rd_airc WILL RESET TO .F. - IREC = 0 - nofflvl = 0 - noutsider = 0 - IX = 0 - - IF(LADDONQQ) THEN - write(6,175)NOBSDB,(iobs2pk(I,NOBSDB),I=1,LMTWRDPOB) - 175 format(1h ,'readair: will add ACFT obs onto a partially ', - 1 'filled database . . .', - 2 /1h ,'The dump of the last obs (',I6,') in database:', - 3 /1h ,(4Z17.16)) - - else -C ... TO INITIALIZE THE DATABASE TO ALL ZEROS, - WRITE(6,176) - 176 FORMAT(1H ,'readair: will zero the IOBS2PK database') - - do j = 1,NDATASIZ - do i = 1,LMTWRDPOB - IOBS2PK(I,J) = 0 - ENDDO - ENDDO - NOBSDB = 0 - ENDIF - - write(6,195)CHGTS(LVLIX)(1:6),LVLIX,KRUN,ITOUT,KEIL,AIMAX,AJMAX, - 1 KLLGO2,ALTMLOW,ALTMHIGH - 195 format(1h ,'readair: ready to start reading ACFT for ',A6, - 1 'MBS with LVLIX=',I4, - 2 /1H ,7X,'KRUN=',I5,'; ITOUT=',I5,'; KEIL=',I5, - 3 '; AIMAX,AJMAX= (',F9.3,',',F9.3,')', - 4 /1H ,7X,'KLLGO2=',I4,'; ALTMLOW=',F9.1,' ALTMHIGH=', - 1 F9.1) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 200 continue !... do until logical end of file ... -C -C READ AN AIRCRAFT REPORT FROM THE rd_airc DATA SET -C - CALL rd_airc(LUNAIR,LINITQ, HEDER, LONELVL, IRET) - if(iret .ne. 0) then - if(iret .EQ. -1) then !... normal LEOF found - go to 800 - else - IRET_RDA = iret - go to 999 - endif - endif - - - DO IOB = 1,MAXWRDLVL - IF((IOB .EQ. 11) .OR. (IOB .EQ. 12)) THEN - FLONELVL(IOB) = 0.0 - ELSE - FLONELVL(IOB) = FLOAT(LONELVL(IOB)) / 4096.0 - ENDIF - ENDDO - -C ... is it within altitude bounds ? - paltm = float(lonelvl(14+1)) / 4096.0 - if((paltm .LT. altmlow) .OR. - 1 (paltm .GT. altmhigh)) then - nofflvl = nofflvl + 1 - -C ... this seems to be tossing all A/C obs with this test -C ... because the press-alt was MISSING ... - IF(MOD(nofflvl,100) .EQ. 0) THEN -C ... PRINT A tossed REPORT EVERY ONCE IN A WHILE ... -C - - if(LCHKPRNTQ) THEN - write(6,1161)nofflvl,paltm,altmlow,altmhigh - 1161 format(1h ,'readair: following is off-level-tossed ', - 1 'aircft obs number=',I6, - 2 /1h ,7X,'where paltm=',F9.1,'; altmlow=',F9.1, - 3 'altmhigh=',F9.1) - WRITE(6,116)(LONELVL(I),I=1,MAXWRDLVL) -C ... 116 FORMAT((4Z17.16)) - ENDIF - - NAMSTN = IONELVLPAK(6) - IF(NAMSTN .EQ. 0) THEN - CNAMSTN(1:8) = ' ' - ENDIF - - obtime = FLONELVL(4) - - IF(LCHKPRNTQ) THEN - write(6,117) cnamstn(1:8),obtime,FLONELVL(1), - 1 FLONELVL(2), FLONELVL(7) -C ... 117 format(1h ,A8,2x,F7.2,'Z LAT=',F7.2,' LONG=',F8.2, -C ... 2 ' ELEV=',F6.0) - - write(6,118)CHGTS(LVLIX),(FLONELVL(I),I=15,21) -C ... 118 format(2X,A6,3X,F7.0,4X,F5.1, -C ... 1 4X,F5.1,2X,F6.0,4X,F5.0,4X,F6.0,2X,F8.0) - ENDIF - ENDIF - go to 200 !... acft not in lvl bounds; skip it - endif - -C - -C ... next perform a bndry test on this lat/lon ... - ALAT = FLONELVL(1) - ALONG = FLONELVL(2) - IMAX = NINT(AIMAX) - JMAX = NINT(AJMAX) - - call wibound(KRUN,KEIL,KLLGO2,LINTERPQQ,ALAT,ALONG, - 1 FLD,IMAX,JMAX,HGTM,LINBOUNDQQ) - -C ... IF OUT-OF-AREA-BOUNDS AIRCRAFT, THEN -C ... DO NOT DATABASE IT ... - IF(.NOT. LINBOUNDQQ) THEN - noutsider = noutsider + 1 - GO TO 200 !... skip this acrft obs - ENDIF - -C ... otherwise, we got a keeper AIRCRAFT report, so -C ... database it ... - IREC = IREC + 1 - - CALL SBYTESCCS(IONELVLPAK,LONELVL,NOFFSET,KBITPGRP,KPADBITS, - 1 NGRPS2DO) - - IF((LONELVL(14+8) .NE. 0) .AND. (LINBOUNDQQ)) THEN -C ... STASH INTO DATABASE ... - IF(NOBSDB .LT. MAXOBS) THEN - NOBSDB = NOBSDB + 1 -C ... TO SKIP THE 7TH WORD; STASH 1:6; 8:11 - IDEST = 0 - DO LW = 1,11 - IF(LW .NE. 7) THEN - IDEST = IDEST + 1 - IOBS2PK(IDEST,NOBSDB) = IONELVLPAK(LW) - ENDIF - ENDDO - ELSE - WRITE(6,FMT='(1H ,''readair: FAILED ON INADEQUATE'', - 1 '' SPACE ALLOCATED FOR DATABASE OF '', - 2 ''OBS BY LVL'', - 2 /1H ,7X,''NUMBER OF OBS LIMITED TO ='',I8)') - A MAXOBS - - IRET_RDA = 1 - GO TO 999 - ENDIF - ENDIF - - - IF(MOD(IREC,10) .EQ. 0) THEN -C ... PRINT A REPORT EVERY ONCE IN A WHILE ... -C - - if(LCHKPRNTQ) THEN - WRITE(6,116)(LONELVL(I),I=1,MAXWRDLVL) - 116 FORMAT((4Z17.16)) - ENDIF - - NAMSTN = IONELVLPAK(6) - IF(NAMSTN .EQ. 0) THEN - CNAMSTN(1:8) = ' ' - ENDIF - - obtime = FLONELVL(4) - - IF(LCHKPRNTQ) THEN - write(6,117) cnamstn(1:8),obtime,FLONELVL(1), - 1 FLONELVL(2), FLONELVL(7) - 117 format(1h ,A8,2x,F7.2,'Z LAT=',F7.2,' LONG=',F8.2, - 2 ' ELEV=',F6.0) - - WRITE(6,1172)(IONELVLPAK(I),I=1,NWRDLVLPAK) - 1172 FORMAT((4Z17.16)) - - write(6,118)CHGTS(LVLIX),(FLONELVL(I),I=15,21) - 118 format(2X,A6,3X,F7.0,4X,F5.1, - 1 4X,F5.1,2X,F6.0,4X,F5.0,4X,F6.0,2X,F8.0) - write(6,119)LINBOUNDQQ - 119 FORMAT(1H ,'wibound: LINBOUNDQQ= .',L1,'.', - 1 /1H ) - ENDIF - ENDIF - - go to 200 !... enddo by report - - 800 continue - WRITE(6,FMT='(1H ,''readair::rd_airc completed with '', - 1 '' tossed off-lvl acft reports='',I8, - 2 /1h ,7X,''tossed out-of-area-bounds acft reports='', - 3 I8, - 4 /1h ,7X,''Remaining aircraft report count='',I8, - 5 /1H ,7X,''STASHED-INTO-DATABASE COUNT ='',I8)') - A nofflvl,noutsider,IREC,NOBSDB - - - 999 continue - RETURN - END diff --git a/util/sorc/plotvpap.fd/readupa.f b/util/sorc/plotvpap.fd/readupa.f deleted file mode 100755 index 9b91c6daa6..0000000000 --- a/util/sorc/plotvpap.fd/readupa.f +++ /dev/null @@ -1,453 +0,0 @@ - SUBROUTINE READUPA(LUNUPA,LVLDES,KRUN,ITOUT,HEDER,IRET_RED) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: READUPA INITIALIZE OBS DATABASE AND READ UPA FILE -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 97-02-04 -C -C ABSTRACT: INITIALIZE OBS DATABASE AND READ UPA FILE AND STORE INTO -C THE DATABASE IN COMMON. AN ADAPTATION OF READPA. CALLED FROM -C MAPLOP IN PLOTPAP. -C -C PROGRAM HISTORY LOG: -C 97-01-31 ORIGINAL AUTHOR -- DAVID SHIMOMURA -C 97-02-04 SHIMOMURA -- ADDED CALL SETKEIL TO SET KLLGO2 -C 97-02-13 SHIMOMURA -- ADDED MORE LEVELS FOR STRATOSPHERIC LEVELS -C -C USAGE: CALL READUPA(LUNUPA,LVLDES,KRUN,ITOUT,HEDER,IRET_RED) -C -C INPUT ARGUMENT LIST: -C LUNUPA - UNIT NUMBER OF INPUT UPAUPA FILE TO BE READ -C LVLDES - LEVEL DESIRED BY INDEX NUMBER -C KRUN -C ITOUT - INTEGER FLAG WITH RANGE FROM 1 THRU 13 , USED -C - TO DETERMINE TYPE OF MAP BACKGROUND DATA IS TO BE -C - DISPLAYED ON. ITOUT IS A FUNCTION OF KRUN AND IS -C - SET IN SUB KOPTN. -C -C OUTPUT ARGUMENT LIST: -C HEDER - 50 WORD HEADER READ FROM LUNUPA WILL BE STORED HERE -C IRET_RED - TO MARK ERROR RETURNS -C common /OBSLVLDB/ -C IOBS2PK - BIG BIN FOR RESULTING OBS (10,NDATASIZ) -C NDATASIZ - J DIMENSION OF IOBS2PK (NO. OF OBS IT CAN HOLD+1) -C NOBSDB - NO. OF OBS PUT INTO IOBS2PK FROM LUNUPA FILE - -C COMMON - / DATE /NYR,NMON,NDAY,NHR -C COMMON - / DAT1 /IHR1,IDA1,IMO1,IYR1 -C COMMON - /WLONG0/ WLONG0 -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C 22-JAN-1997/dss -C ... copied tesrdupa into tesrduupa - -C 6-JAN-1996/DSS -C ... COPIED LARRY'S MAIN.F INTO tesrdupa -C -C This is a test program to use the subroutine rd_uupa -C to return one upper air station at a time from the -C rd_uupa data file -C -C Usage: -C CALL READUPA(LUNUPA,LVLDES,KRUN,ITOUT,HEDER,IRET_RED) -C RESULTING DATA ARE PUT INTO COMMON -C -C CALLS RD_UUPA TO ACTUALLY READ THE DATA FILE: -C CALL rd_uupa(LUNUPA,LINITQ, LVLIX, HEDER, LONELVL, IRET ) -C -C where the input parameters are, -C -C LUNUPA - Input file number -C LINITQ - LOGICAL SWITCH -C = .TRUE. ; TO COMMAND RD_UUPA TO REWIND -C THE INPUT FILE AND READ THE FILE HEADER -C BEFORE READING THE OBSERVATIONS; -C SUBR RD_UUPA WILL RESET THAT SWITCH TO =.F. -C SO THAT ON SUBSEQUENT CALLS TO GET THE -C NEXT REPORTS, IT WILL NOT INITIALIZE. -C -C LVLIX - MILLIBAR LEVEL BY INDEX NUMBER -C -C and the output parameters are, -C -C HEDER - The rd_uupa file header record. -C LONELVL(18) - ONE LEVEL'S DATA IN BINARY -C -C IRET - Return code: 0 = report returned -C -1 = end of file -C - INTEGER MAXWRDLVL - PARAMETER (MAXWRDLVL=24) - INTEGER NWRDLVLPAK - PARAMETER (NWRDLVLPAK=MAXWRDLVL/2) - - INTEGER MAXWRDHDR - PARAMETER (MAXWRDHDR=50) -C ---------------------------------------------------------------- - INTEGER MAXOBS - PARAMETER (MAXOBS=20000) - INTEGER NDATASIZ - PARAMETER (NDATASIZ=MAXOBS+1) - INTEGER LMTWRDPOB - PARAMETER (LMTWRDPOB=10) - INTEGER LMTHFWPOB - PARAMETER (LMTHFWPOB=2*LMTWRDPOB) !... =(20) - - COMMON /OBSLVLDB/NOBSDB,LVLIX,IOBS2PK - INTEGER IOBS2PK(LMTWRDPOB,NDATASIZ) - - - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - COMMON / DATE /NYR,NMON,NDAY,NHR - COMMON / DAT1 /IHR1,IDA1,IMO1,IYR1 - COMMON /WLONG0/ WLONG0 -C - -C ----------------------------------------------------------------- -C Usage: -C CALL READUPA(LUNUPA,LVLDES,KRUN,ITOUT,HEDER,IRET_RED) - integer LUNUPA - integer lvldes - INTEGER KRUN - INTEGER ITOUT - CHARACTER*8 HEDER(50) - integer IRET_RED -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - - INTEGER IMAX - INTEGER JMAX -C - DATA ABGMXI /109.0/ - DATA ABGMXJ / 81.0/ - DATA AIMAX /47.0/ - DATA AIMIN /1.0/ - DATA AJMAX /51.0/ - DATA AJMIN /1.0/ - - REAL FLD(6000) !... BIG ENOUGH FOR ANY? - - logical LINITQ - INTEGER LVLIX - INTEGER LONELVL(MAXWRDLVL) - REAL FLONELVL(MAXWRDLVL) - - INTEGER IONELVLPAK(NWRDLVLPAK) - - - - CHARACTER*8 CHGTS(21) -C - DATA CHGTS /'1000 ',' 925 ',' 850 ',' 700 ', - 1 ' 500 ',' 400 ',' 300 ',' 250 ', - 1 ' 200 ',' 150 ',' 100 ',' 70 ', - 3 ' 50 ',' 30 ',' 20 ',' 10 ', - 4 ' 7 ',' 5 ',' 3 ',' 2 ', - 5 ' 1 ' / -C - INTEGER KEIL - INTEGER KLLGO2 - LOGICAL LINTERPQQ - REAL HGTM - LOGICAL LINBOUNDQQ - REAL ALAT - REAL ALONG - - - integer namstn - character*8 cnamstn - equivalence (namstn,cnamstn) - -C ... ARGS FOR HALF-PACKING VIA SBYTES ... - INTEGER NOFFSET - DATA NOFFSET / 0 / - INTEGER KBITPGRP - DATA KBITPGRP / 32 / - INTEGER KPADBITS - DATA KPADBITS / 0 / - INTEGER NGRPS2DO -C . . . . . . . . . . . . . . . . . . . . - LOGICAL LNEWPA - LOGICAL LGRANP - LOGICAL LDEWDO - - - SAVE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - IRET_RED = 0 - NOBSDB = 0 - - - - NGRPS2DO = MAXWRDLVL - - NDIX = 52 - IF(KRUN .EQ. 11) NDIX = 118 - IF(KRUN .EQ. 15) NDIX = 82 - IF(KRUN .EQ. 22) NDIX = 42 - IF(KRUN .EQ. 23) NDIX = 42 - AJMAX = FLOAT(NDIX) -C -------------------------------------------------------------- -C ... to determine KEIL from ITOUT, -- (SHOULD BE A FUNCTION) - LNEWPA = .TRUE. - LGRANP = .FALSE. - - IF(ITOUT .LT. 1) GO TO 702 - IF(ITOUT .GT. 13) GO TO 702 - GO TO 709 - 702 CONTINUE - PRINT 704, ITOUT - 704 FORMAT(1H , 'ERROR RETURN FROM READPA. GIVEN OUT-OF-RANGE ITOUT = - 1HEX', Z8, 2X, 'UNABLE TO READ ANY OBSERVATIONS' ) - IRET_RED = 1 - RETURN - - 709 CONTINUE - NPTYPS = 3 - LDEWDO = .FALSE. - GO TO (710,720,730,740,750,760,770,780,702,790,795,798,798),ITOUT - 710 CONTINUE - KEIL = 1 -C ...FOR LFM ... - IF(LVLDES .GT. 8) GO TO 799 - IF(.NOT. LNEWPA) GO TO 799 - NPTYPS = 4 - LDEWDO = .TRUE. - GO TO 799 - - 720 CONTINUE - KEIL = 1 -C ...FOR LFM .... - IF(LVLDES .GT.8) GO TO 799 - IF(.NOT. LNEWPA) GO TO 799 - NPTYPS = 4 - LDEWDO = .TRUE. - GO TO 799 - - 730 CONTINUE -C ...IQSY ON N HEMI ... - KEIL = 2 - GO TO 799 - - 740 CONTINUE - KEIL = 15 - AIMAX = 55.0 - AJMAX = 42.0 - GO TO 799 - - 750 CONTINUE - KEIL = 3 - GO TO 799 - - 760 CONTINUE - KEIL = 2 -C ...FOR SIRS PLOTTED CHART ... - GO TO 799 - - 770 CONTINUE -C ...INTIIALIZE FOR TROPIC PLOT ON MERCATOR - KEIL = 6 - GO TO 799 - - 780 CONTINUE -C ...INITIALIZE FOR LARGE 1/20M BACKGROUND. - KEIL = 7 - GO TO 799 - - 790 CONTINUE -C ...INITIALIZE FOR GENERALIZED PLOT ON NH 1/40M BACKGROUND. - KEIL = 2 - GO TO 799 - - 795 CONTINUE -C ...INITIALIZE FOR NH 1/60M BACKGROUND... - AIMAX = 65.0 - AJMAX = 65.0 - KEIL = 14 - GO TO 799 - - 798 CONTINUE -C ...GOES-TYPE DISPLAY. - KEIL = 0 - GO TO 799 -C - 799 CONTINUE - -C ... boundary tester needs KLLGO2, - - CALL SETKEIL(KRUN,ITOUTLCL,KLLGO2) - - IF(KRUN .EQ. 5) THEN - AIMAX = 55.0 - AJMAX = 42.0 - ENDIF - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - LVL = LVLDES -C ...BETTER CHECK FOR LVL W/I VALID RANGE... - IF((LVL .GT. 0) .AND. (LVL .LT. 22)) GO TO 810 - PRINT 7992,LVL -7992 FORMAT(1H ,'ERROR RETURN FROM READPA. OUT-OF-RANGE LVL = HEX',Z8, - X2X,'UNABLE TO SET ID FOR LATER READ OF LUNUPA') -C - 810 CONTINUE - -C .. ZERO THE BIG BIN -C ...INITIALIZE COUNTER FOR BIG BIN OBS COUNT -C -C * * * * * * * * * * * - -C -------------------------------------------------------------- -C ... DEFINE FOR BOUNDARY-TESTER ... - DO I = 1,6000 - FLD(I) = 0.0 - ENDDO - -C ... KLLGO2 = 3 -C ... KRUN = 2 -C ... KEIL = 1 !... LFM GRID - LINTERPQQ = .FALSE. -C . . . . . . . . . . . . . . . . . . - LVLIX = LVLDES + 1 -C ... LVLIX = 3 !... GETS THE 850-MB DATA -C ... LVLIX = 5 !... GETS THE 500-MB DATA - -C READ A REPORT FROM THE rd_uupa FILE -C - PRINT *,' readupa: ready to read UPA via rd_uupa()' - IRET = 0 -C .... LUNUPA = 41 - LINITQ = .TRUE. !... RD_UUPA WILL RESET TO .F. - IREC = 0 - IX = 0 - -C ... TO INITIALIZE THE DATABASE TO ALL ZEROS, - do j = 1,NDATASIZ - do i = 1,LMTWRDPOB - IOBS2PK(I,J) = 0 - ENDDO - ENDDO - NOBSDB = 0 - - write(6,195)CHGTS(LVLIX)(1:6),LVLIX,KRUN,ITOUT,KEIL,AIMAX,AJMAX, - 1 KLLGO2 - 195 format(1h ,'readupa: ready to start reading UPA for ',A6, - 1 'MBS with LVLIX=',I4, - 2 /1H ,7X,'KRUN=',I5,'; ITOUT=',I5,'; KEIL=',I5, - 3 '; AIMAX,AJMAX= (',F9.3,',',F9.3,')', - 4 /1H ,7X,'KLLGO2=',I4) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 200 continue !... do until logical end of file ... -C -C READ AN UPPER AIR REPORT FROM THE rd_uupa DATA SET -C - CALL rd_uupa(LUNUPA,LINITQ,LVLIX, HEDER, LONELVL, IRET) - if(iret .ne. 0) then - if(iret .EQ. -1) then !... normal LEOF found - go to 800 - else - IRET_RED = iret - go to 999 - endif - endif - -C ... otherwise, got a report, so process it ... - IREC = IREC + 1 -C - DO IOB = 1,MAXWRDLVL - IF((IOB .EQ. 11) .OR. (IOB .EQ. 12)) THEN - FLONELVL(IOB) = 0.0 - ELSE - FLONELVL(IOB) = FLOAT(LONELVL(IOB)) / 4096.0 - ENDIF - ENDDO - -C ... next perform a bndry test on this lat/lon ... - ALAT = FLONELVL(1) - ALONG = FLONELVL(2) - IMAX = NINT(AIMAX) - JMAX = NINT(AJMAX) - - call wibound(KRUN,KEIL,KLLGO2,LINTERPQQ,ALAT,ALONG, - 1 FLD,IMAX,JMAX,HGTM,LINBOUNDQQ) - - CALL SBYTESCCS(IONELVLPAK,LONELVL,NOFFSET,KBITPGRP,KPADBITS, - 1 NGRPS2DO) - - IF((LONELVL(14+8) .NE. 0) .AND. (LINBOUNDQQ)) THEN -C ... STASH INTO DATABASE ... - IF(NOBSDB .LT. MAXOBS) THEN - NOBSDB = NOBSDB + 1 -C ... TO SKIP THE 7TH WORD; STASH 1:6; 8:11 - IDEST = 0 - DO LW = 1,11 - IF(LW .NE. 7) THEN - IDEST = IDEST + 1 - IOBS2PK(IDEST,NOBSDB) = IONELVLPAK(LW) - ENDIF - ENDDO - ELSE - WRITE(6,FMT='(1H ,''TESRDUUPA: FAILED ON INADEQUATE'', - 1 '' SPACE ALLOCATED FOR DATABASE OF '', - 2 ''OBS BY LVL'', - 2 /1H ,7X,''NUMBER OF OBS LIMITED TO ='',I8)') - A MAXOBS - - IRET_RED = 1 - GO TO 999 - ENDIF - ENDIF - - - IF(MOD(IREC,10) .EQ. 0) THEN -C ... PRINT A REPORT EVERY ONCE IN A WHILE ... -C - - -C ... WRITE(6,116)(LONELVL(I),I=1,MAXWRDLVL) -C ... 116 FORMAT((4Z17.16)) - - NAMSTN = IONELVLPAK(6) - IF(NAMSTN .EQ. 0) THEN - CNAMSTN(1:8) = ' ' - ENDIF -C write(6,117) cnamstn(1:8),FLONELVL(1),FLONELVL(2), -C 1 FLONELVL(7) - 117 format(1h ,A8,' LAT ',F7.2,' LONG ',F8.2,' ELEV ',F6.0) - - WRITE(6,1172)(IONELVLPAK(I),I=1,NWRDLVLPAK) - 1172 FORMAT((4Z17.16)) - -C write(6,118)CHGTS(LVLIX),(FLONELVL(I),I=15,21) - 118 format(2X,A6,3X,F7.0,4X,F5.1, - 1 4X,F5.1,2X,F6.0,4X,F5.0,4X,F6.0,2X,F8.0) -C write(6,119)LINBOUNDQQ - 119 FORMAT(1H ,'wibound: LINBOUNDQQ= .',L1,'.', - 1 /1H ) - ENDIF - - go to 200 !... enddo by report - - 800 continue - WRITE(6,FMT='(1H ,'' rd_uupa test completed with '',I8, - 1 '' reports;'', - 2 /1H ,7X,''STASHED-INTO-DATABASE COUNT ='',I8)') - A IREC,NOBSDB - - - - - 999 continue - RETURN - END diff --git a/util/sorc/plotvpap.fd/sepcar.f b/util/sorc/plotvpap.fd/sepcar.f deleted file mode 100755 index bdd8510986..0000000000 --- a/util/sorc/plotvpap.fd/sepcar.f +++ /dev/null @@ -1,241 +0,0 @@ - SUBROUTINE SEPCAR(c80card,ITC,MXITM,NITEMS, NLCH,c12strl, - 1 NRCH,c12strr, IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SEPCAR SEPARATE CHARACTER STRING -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-08 -C -C ABSTRACT: CREATING SUBSTRINGS CHARACTERS FROM A 20-WORD ARRAY -C WITH CARD IMAGE CHARACTER STRING. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 88-07-25 GLORIA DENT PUT IN DOCUMENTATION BLOCK -C 89-04-18 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C 93-05-08 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C -C USAGE: CALL SEPCAR (c80card,ITC,MXITM,NITEMS,NLCH,c12strl,NRCH, -C & c12strr,IERR) -C -C INPUT ARGUMENT LIST: -C c80card - A 20-WORD (=80CHARS) ARRAY WITH CARD IMAGE -C - CHARACTER STRING TO BE SEAPARATED INTO SUBSTRINGS -C ITC - CARD COLUMN TO BEGIN THE SEPARATING -C MXITM - MAX NO. OF ITEMS EXPECTED ON THE CARD IMAGE -C - WHERE ITEMS ARE SEPARATED BY COMMAS OR BLANKS -C - AND MAY BE AN EXPRESSION CONTAINING AN '=' SIGN -C - AND THE STRING IS TERMINATED BY A SEMI-COLON. -C -C OUTPUT ARGUMENT LIST: -C NITEMS - NO. OF ITEMS FOUND -C NLCH - IS CHAR COUNT OF FOLLOWING SUBSTRING -C c12strl - CHAR SUBSTRING W/ MAX OF 12 CHARS -C NRCH - IS CHAR COUNT OF SUBSTRING FROM RHS OF '=' SIGN IF ANY -C c12strr - CHAR STRING FROM RHS OF EQUAL SIGN IF ANY -C IERR - = 0 IS NORMAL RETURN -C - = 1 IF SOME TROUBLE WAS ENCOUNTERED. -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C -C - INTEGER NOTRAIL !... define int function NOTRAIL - EXTERNAL NOTRAIL - INTEGER LASTCH !... define int function LASTCH - EXTERNAL LASTCH - - character*(*) c80card !... Arg(1) - integer itc !...to start at c80card(itc:itc) - integer NITEMS !...Arg(4) count of items found - INTEGER NLCH(MXITM) !...Arg(5) Nch left of '=' - character*12 c12strl(MXITM) !...Arg(6) TXT left of '=' - - integer NRCH(MXITM) !...Arg(7) Nch right of '=' - character*12 c12strr(MXITM) !...Arg(8) TXT right of '=' - - integer IERR !...ARG(9) return code - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - character*12 c12subst -C - CHARACTER*1 LITEQU - data LITEQU / '=' / - CHARACTER*1 LITSC - data LITSC / ';' / - CHARACTER*1 LIT - character*1 NULL - character*5 delims -C -C ... INTEGER ITABC(64) /16*0,Z40000000,6*0,Z00005E00,2*0, -C ... 1 Z0000006B,4*0,Z00007E00,32*0/ -C ... ...WHERE ITABC HAS DELIMITERS BLANK,COMMA,SEMICOLON,EQUAL -C -C - LOGICAL DIVERT - LOGICAL LHSIN -C -C - IERR = 0 - NULL = CHAR(0) - DELIMS(1:5) = ' '//','//';'//'='//NULL - - ITH = ITC - NCHAR = 12 - MXCH = 80 - lencard = len(c80card) - if(lencard .LE. 0) then - write(6,FMT='(1h ,''sepcar: FAILURE. Given card image was '', - 1 ''not defined as a CHARACTER*80 variable.'')') - go to 900 - endif - IF(LENCARD .LT. MXCH) THEN - MXCH = LENCARD - ENDIF - LOCLASTCH = NOTRAIL(C80CARD(1:MXCH)) - IF(LOCLASTCH .LT. LENCARD) THEN - L1 = LOCLASTCH + 1 - C80CARD(L1:L1) = NULL - ENDIF - - DIVERT = .FALSE. -C ...WHERE DIVERT FLAGS '=' SIGN TO DIVERT NEXT GROUP TO NUMBS - - LHSIN = .FALSE. -C ...WHERE LHSIN FLAGS WHEN NAME ITEM IS IN - - ITEM = 0 -C ...INITIALIZE CARD INFO SAVE AREAS ... - DO 144 J = 1,MXITM - NLCH(J) = -1 - NRCH(J) = -1 - c12strl(J)(1:12) = ' ' - c12strr(J)(1:12) = ' ' - 144 CONTINUE - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ...START LOOPB WHICH SCANS FIELD BY FIELD THRU ONE CARD - 150 CONTINUE !... comes to here from bottom of loop - -C ... CALL CUTSTR(c80card,MXCH,ITH,NCHAR,delims -C ... 1 N,LIT,c12subst,NXTCH,IEXIT) - - CALL GTNXTWRD(C80CARD(1:LOCLASTCH),ITH,LPCURR,DELIMS,LIT, - 1 C12SUBST,IRET_GTN) - -C PRINT *, 'SEPCAR: IRET_GTN=',IRET_GTN -C - if(iret_gtn .NE. 0) then - IF((IRET_GTN .GT. 0) .AND. (IRET_GTN .LE. 3)) THEN -C ...COMES HERE IF FATAL ERROR IN CALL SEQ ARG - WRITE(6,164)iret_gtn - 164 FORMAT(1H ,'sepcar::gtnxtwrd: ERROR RETURN=',I3, - 1 /1h ,7X,'given arg is not defined as a character string') - GO TO 900 - ELSE IF(IRET_GTN .eq. 4) THEN -C ...COMES HERE IF GIVEN EMPTY SOURCE ... - WRITE(6,165)iret_gtn - 165 FORMAT(1H ,'sepcar::gtnxtwrd: ERROR RETURN=',I3, - 1 /1h ,7X,'The given card-image source was empty') - GO TO 900 - ELSE IF(IRET_GTN .eq. -1) THEN -C ...COMES HERE IF WE HAVE MOVED LPCURR BEYOND END OF DATA - WRITE(6,166)iret_gtn - 166 FORMAT(1H ,'sepcar::gtnxtwrd: RETURN CODE=',I3, - 1 /1h ,7X,'The current line-pointer is beyond end-of-line') - GO TO 240 !... to clean up like normal end - ELSE -C ... COMES HERE ON UNRECOGNIZED ERROR CONDITION - WRITE(6,167)iret_gtn - 167 FORMAT(1H ,'sepcar::gtnxtwrd: FAILED on ERROR=',I4) - go to 900 - endif - ENDIF - - NXTCH = LPCURR + 1 - N = LASTCH(C12SUBST) -C PRINT *, ' N=', N, ' LIT=',LIT -C PRINT *,' NXTCH=', NXTCH, ' mxtch=', mxch - IF((N .LE. 0) .AND. (LIT .EQ. LITEQU)) THEN -C ... HIT A DELIMITER FIRST AND VOID SUBSTRING -C PRINT *, ' DIVERT SET TO TRUE' - DIVERT = .TRUE. - GO TO 220 - ENDIF - - IF(LIT .EQ. NULL) THEN -C ... NO DELIMITER FOUND IN SUBSTRING - PRINT 174 - 174 FORMAT(1H ,'sepcar::gtnxtwrd: NO DELIMITER FOUND IN SUBSTRING') - GO TO 900 - endif - - - 180 CONTINUE !... comes here on IEXIT == 0; -C PRINT *, 'CHECK AT 180' -C PRINT *,' before ITEM =', ITEM, ' MXITM=', MXITM -C - IF(DIVERT) GO TO 190 - ITEM = ITEM + 1 -C PRINT *,' after ITEM =', ITEM, ' MXITM=', MXITM - IF(ITEM .GT. MXITM) GO TO 240 - - NLCH(ITEM) = N - c12strl(ITEM)(1:N) = c12subst(1:N) - - LHSIN = .TRUE. - IF(LIT .EQ. LITEQU) THEN -C ... THIS ENDED ON A '=' SIGN - DIVERT = .TRUE. - ENDIF - GO TO 220 - - 190 CONTINUE -C ...COMES HERE TO MOVE THE NUMBERS FROM THE RIGHT OF '=' SIGN - IF(LIT .NE. LITEQU) GO TO 198 -C ...OTHERWISE, ERROR SINCE PREVIOUS FIELD ALSO ENDED ON '=' - 192 CONTINUE - PRINT 194 - 194 FORMAT(1H ,'SEPCAR: FORMAT ERROR. GIVEN STRING HAD TWO = SIGNS', - 1 ' WITHIN LOGICAL ITEM') - GO TO 900 - - 198 CONTINUE - IF(.NOT. LHSIN) GO TO 192 - - NRCH(ITEM) = N - c12strr(ITEM)(1:N) = c12subst(1:N) - - LHSIN = .FALSE. - DIVERT = .FALSE. - GO TO 220 - 220 CONTINUE -C ...COMES HERE FOR END OF INFO OR END OF CARD TEST - IF(LIT .EQ. LITSC) GO TO 240 - IF(NXTCH .GT. MXCH) GO TO 240 - IF(NXTCH .GT. MXCH) GO TO 240 - ITH = NXTCH - GO TO 150 -C ...WHICH ENDS LOOPB ON ONE FIELD WITHIN A CARD -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 240 CONTINUE -C ...ONE CARD,S INFO HAS BEEN SEPARATED ... -C PRINT *, ' ITEM=', ITEM - IF(ITEM .LE. 0) GO TO 900 - IF(ITEM .GT. MXITM) THEN - ITEM=MXITM - ENDIF - NITEMS = ITEM - RETURN -C ...WHICH IS NORMAL EXIT -C - 900 CONTINUE - IERR = 1 - RETURN - END diff --git a/util/sorc/plotvpap.fd/setaltit.f b/util/sorc/plotvpap.fd/setaltit.f deleted file mode 100755 index 1eabee1e41..0000000000 --- a/util/sorc/plotvpap.fd/setaltit.f +++ /dev/null @@ -1,126 +0,0 @@ - SUBROUTINE setaltit(LVLDES,KRUN,ALTMLOW,ALTMHIGH,IRET_ALT) -C -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: setaltit GET ALTITUDE BOUNDS FOR ACFT FOR LVLDES -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 97-02-24 -C -C ABSTRACT: GET ALTITUDE BOUNDS (IN METERS) FOR AIRCRAFT REPORTS FOR USE -C ON THIS MAP LEVEL(LVLDES) AND FOR THIS MAP TYPE(KRUN) -C -C PROGRAM HISTORY LOG: -C 97-02-24 ORIGINAL AUTHOR -- DAVID SHIMOMURA -C 97-03-11 SHIMOMURA -- FOR KRUN == 15; THEN FOR 32KFt to 39KFT -C -C USAGE: CALL setaltit(LVLDES, KRUN, ALTMLOW, ALTMHIGH, IRET_ALT) -C -C INPUT ARGUMENT LIST: -C LVLDES - DESIRED MANDATORY LVL MAP -C KRUN - MAP TYPE AS A FUNCTION OF KRUN -C WHERE KRUN == 11, 22, 23 FOR TROPIC MAP LEVELS -C KRUN == 15; THEN FOR 32KFt to 39KFT -C ANY OTHER VALUE OF KRUN WILL TRY TO GET -C THE NORTH AMERICAN PLOTPAP LEVELS -C -C OUTPUT ARGUMENT LIST: -C ALTMLOW - ALT OF LOWER BOUND (IN METERS) -C ALTMHIGH - ALT OF UPPER BOUND (IN METERS) -C IRET_ALT - RETURN CODE -C = 0; NORMAL RETURN -C = 1; FAILED TO FIND A MATCH FOR GIVEN LVLDES -C IN TROPIC TABLE OF LEVELS; -C = 2; FAILED TO FIND A MATCH FOR GIVEN LVLDES -C IN NORTH AMERICAN TABLE OF LEVELS; -C -C REMARKS: -C TABLES USED IN HERE ARE DERIVED FROM SUBROUTINE SETUP() IN PLOTPAP -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C - INTEGER KALTA - PARAMETER (KALTA=8) -C ... WHERE KALTA IS NO. OF LEVELS IN ALTBLA -- NORTH AMERICAN -C - INTEGER KALTB - PARAMETER (KALTB=5) -C ... WHERE KALTB IS NO. OF LEVELS IN ALTBLB -- TROPIC -C -C ALTITUDE TABLE A IS FOR N. AMERICAN CHARTS. -C XLCP, ALT OF LOWER BOUND, ALT OF UPPER BOUND (IN KFT) -C - REAL ALTBLA(3,KALTA) - DATA ALTBLA / 9.0, 41.0, 53.0, !... 150MB - 1 8.0, 34.0, 41.0, !... 200MB - 2 7.0, 32.0, 38.0, !... 250MB - 3 6.0, 27.9, 34.0, !... 300MB - 4 5.0, 20.5, 26.0, !... 400MB - 5 4.0, 15.9, 20.0, !... 500MB - 6 3.0, 7.0, 12.0, !... 700MB - 7 2.0, 2.9, 7.0/ !... 850MB -C -C ALTITUDE TABLE B IS FOR TROPIC PLOT. -C - REAL ALTBLB(3,KALTB) - data ALTBLB / 9.0, 41.0, 99.0, !... 150MB - 1 7.0, 27.9, 41.0, !... 250MB - 2 4.0, 14.9, 21.0, !... 500MB - 3 3.0, 6.9, 12.0, !... 700MB - 4 2.0, 2.9, 6.9/ !... 850MB -C -C LEVEL 9, THE 150MB LEVEL, IS HERE INCLUDED FOR FGGE IN 1979. -C AT JIM MCDONNEL'S SUGGESTION I AM LETTING THAT MAP ACCEPT -C A/C OBSERVATIONS (OR OTHER TYPES - LIKE COLBA - THAT LOOK LIKE -C A/C) UP TO 99,000 FEET. -C - DATA CNVFTM /304.8/ -C -C - IRET_ALT = 0 -C -C ... INITIALIZE RESULTING ALTITUDE-BOUNDS - - ALTMLOW = 0.0 - ALTMHIGH = 0.0 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IF((KRUN .EQ. 11) .OR. (KRUN .EQ. 22) .OR. (KRUN .EQ. 23)) then -C ... LOOK FOR TROPIC MAP LEVEL. - DO J=1,KALTB - IF(LVLDES .EQ. NINT(ALTBLB(1,J))) THEN - ALTMLOW = ALTBLB(2,J) * CNVFTM - ALTMHIGH = ALTBLB(3,J) * CNVFTM - GO TO 999 - ENDIF - ENDDO - IRET_ALT = 1 !... FAILED TO FIND A MATCH - TROPIC - GO TO 999 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ELSE IF(KRUN .EQ. 15) THEN - -C ... ALTMLOW = 35.0 * CNVFTM -C ... ALTMHIGH = 35.0 * CNVFTM - ALTMLOW = 32.0 * CNVFTM - ALTMHIGH = 39.0 * CNVFTM - GO TO 999 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ELSE -C ... LOOK FOR NORTH AMERICAN MAP LEVEL. - DO J=1,KALTA - IF(LVLDES .EQ. NINT(ALTBLA(1,J))) THEN - ALTMLOW = ALTBLA(2,J) * CNVFTM - ALTMHIGH = ALTBLA(3,J) * CNVFTM - GO TO 999 - ENDIF - ENDDO - IRET_ALT = 2 !... FAILED TO FIND A MATCH NORTH AMER - GO TO 999 - ENDIF - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/setflg.f b/util/sorc/plotvpap.fd/setflg.f deleted file mode 100755 index 7a89e6f042..0000000000 --- a/util/sorc/plotvpap.fd/setflg.f +++ /dev/null @@ -1,234 +0,0 @@ - SUBROUTINE SETFLG(NUMFIL,KRUN,FLAGS) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SETFLG SET PLOTTING OPTIONS AND FILES TO USE. -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-04 -C -C ABSTRACT: SETS A NUMBER OF SWITCHES FOR MANY COMBINATIONS OF -C PLOTTING OPTIONS, BASED UPON NUMFIL,FLAGS AND KRUN -C -C PROGRAM HISTORY LOG: -C 89-04-24 ORIGIONAL AUTHOR HENRICHSEN -C 93-05-04 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C -C USAGE: CALL SETFLG(NUMFIL,KRUN,FLAGS) -C INPUT ARGUMENT LIST: -C NUMFIL - INTEGER COMPOSIT NUMBER OF FILES TO GET DATA FROM. -C - SEE REMARKS BELOW. -C KRUN - IS THE RUN OPTION READ IN FROM DATA CARDS. -C FLAGS - LOGICAL 9 BYTE ARRAY THAT HAVE BEEN SET TO -C - .TRUE. OR .FALSE. BY SUB CKPARM. -C - WHERE THE FLAGS ARE: -C - FLAGS(1) = ACAR -C - FLAGS(2) = MIDC -C - FLAGS(2) = IS1 -C - FLAGS(3) = IS2 -C - FLAGS(5) = AFOS -C - FLAGS(6) = SEND -C - FLAGS(7) = CARD -C - FLAGS(8) = MARG -C - FLAGS(9) = PNCH -C -C OUTPUT ARGUMENT LIST: -C COMMON - /SWT / IS1,IS2 -C COMMON - /LACAR / LACAR -C COMMON - /MIDCYC/ MIDCYC -C COMMON /IAFOS /NUMAFS,NAMPIL(10),LVERSN,AFOS,SEND,CARD,MARG,PNCH -C COMMON - /LFILES/ L14,L15,L18,L19,L20,L22 -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE -C -C REMARKS: NUMFIL DEFINES A TWO-DIGET NUMBER USED TO OVERRIDE THE -C HISTORICAL CONVENTIONS REGARDING WHICH FILES ARE PLOTTED UNDER -C ANY KRUN OPTION. IF NUMFIL IS 00 OR MISSING, THEN THEN -C ALONE WILL DETERMINE WHICH FILES ARE TO BE PLOTTED. -C OTHERWISE THE NUMBER HERE CAN BE INTERPRETED THUSLY -- -C 1 PLOT FT19 (ADPUPA) -C 2 PLOT FT14 (AIRCFT) -C 4 PLOT FT22 (SATWND) -C 8 PLOT FT15 (TIROS) -C 16 PLOT FT18 (BOGUS) -C 32 PLOT FT20 (ACAR) -C THESE VALUES ARE ADDITIVE. FOR EXAMPLE, 13 MEANS PLOT FT19, -C FT22, AND FT15. -C CURRENTLY THE FOLLOWING FLAGS ARE DEFINED: -C FLAGS(1) SIGNALS THE ACAR OPTION -C FLAGS(2) ACTIVATES THE MID-CYCLE OPTION -C FLAGS(3) AND FLAGS(4) TELLS RDSOLD TO BYPASS DATA/TIME -C BYPASS DATE/TIME CHECKING -C FLAGS(5) SIGNALS TO MAKE AFOS PLOTFILE MAPS. -C FLAGS(6) SIGNALS SEND THE PLOTFILE TO AFOS. -C FLAGS(7) SIGNALS READ CARDS TO GET FLAGS FOR SUB W3FQ06 -C FLAGS(8) SIGNALS THAT SOME STATIONS WILL BE PLOTTED IN -C MARGIN TO AVOID OVER PLOTTING. -C FLAGS(9) SIGNALS THAT AFOS PLOTFILE WILL BE WRITTEN TO -C FT28 IN CARD FORMAT 80 BYTE RECORDS. -C -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - COMMON /SWT / IS1,IS2 - COMMON /LACAR / LACAR - COMMON /MIDCYC/ MIDCYC - COMMON /IAFOS /NUMAFS,NAMPIL(10),LVERSN,AFOS,SEND,CARD,MARG,PNCH - COMMON /LFILES/ L14,L15,L18,L19,L20,L22 -C - INTEGER LFLDB - INTEGER MASK1 - INTEGER MASK2 - INTEGER MASK4 - INTEGER MASK8 - INTEGER MASK16 - INTEGER MASK32 -C - DATA MASK1 /Z'01'/ - DATA MASK2 /Z'02'/ - DATA MASK4 /Z'04'/ - DATA MASK8 /Z'08'/ - DATA MASK16 /Z'10'/ - DATA MASK32 /Z'20'/ -C - LOGICAL AFOS - LOGICAL CARD - LOGICAL FLAGS(9) - LOGICAL LACAR - CHARACTER*1 LVERSN(40) - LOGICAL L14 - LOGICAL L15 - LOGICAL L18 - LOGICAL L19 - LOGICAL L20 - LOGICAL L22 - LOGICAL MARG - LOGICAL MIDCYC - LOGICAL PNCH - LOGICAL SEND -C -C -C - NFLDB = NUMFIL - L14 = .FALSE. - L15 = .FALSE. - L18 = .FALSE. - L19 = .FALSE. - L20 = .FALSE. - L22 = .FALSE. - AFOS= .FALSE. - CARD= .FALSE. - MARG= .FALSE. - PNCH= .FALSE. - SEND= .FALSE. -C -C - LACAR = FLAGS(1) - MIDCYC = FLAGS(2) - IS1 = 0 - IS2 = 0 - IF(FLAGS(3))IS1 = 1 - IF(FLAGS(4))IS2 = 1 - AFOS = FLAGS(5) - SEND = FLAGS(6) - CARD = FLAGS(7) - MARG = FLAGS(8) - PNCH = FLAGS(9) -C - 10 IF(NFLDB .EQ. 0) GO TO 30 - LFLDB = NFLDB - ISWTCH = IAND(LFLDB,MASK1) - IF(ISWTCH .NE. 0) L19 = .TRUE. - ISWTCH = IAND(LFLDB,MASK2) - IF(ISWTCH .NE. 0) L14 = .TRUE. - ISWTCH = IAND(LFLDB,MASK4) - IF(ISWTCH .NE. 0) L22 = .TRUE. - ISWTCH = IAND(LFLDB,MASK8) - IF(ISWTCH .NE. 0) L15 = .TRUE. - ISWTCH = IAND(LFLDB,MASK16) - IF(ISWTCH .NE. 0) L18 = .TRUE. - ISWTCH = IAND(LFLDB,MASK32) - IF(ISWTCH .NE. 0) L20 = .TRUE. -C -C FALLING THROUGH HERE MEANS THAT SWITCHES HAVE BEEN DETERMINED FOR -C EACH FILE. -C - GO TO 160 -C - 30 CONTINUE -C -C ON THE OTHER HAND, IF THE FILES DESIRED ARE NOT SPECIFIED IN -C THE PARM FIELD, THEN KRUN CAN BE USED FOR THAT PURPOSE. -C - IF(KRUN .NE. 5) GO TO 80 -C -C PLOT FT 14, 15, 19, 20, AND 22 ON THE LFM OPTION. -C - NFLDB = 47 - GO TO 10 -C -C IN EFFECT, I AM JUST SETTING THE PARM SWITCHES HERE. -C - 80 CONTINUE - IF((KRUN .NE. 8) .AND. (KRUN .NE. 9)) GO TO 100 -C -C 1-DOT AND 2-DOT CHARTS GET AIRCFT, SATWND, ACAR, AND ADPUPA. -C - NFLDB = 39 - IF(MIDCYC) NFLDB = 47 - IF(LACAR) NFLDB = 34 -C -C MODIFICATIONS FOR SPECIAL PURPOSE CHARTS. -C - GO TO 10 -C - 100 CONTINUE - IF(KRUN .NE. 10) GO TO 110 -C -C FOR TIROS-PLOTTED CHART, ... -C - NFLDB = 9 - GO TO 10 -C - 110 CONTINUE - IF((KRUN .NE. 11) .AND. (KRUN .NE. 15)) GO TO 120 -C -C THE TROPICAL STRIP AND LARGE NH CHART BOTH TAKE ALL BUT BOGUS. -C - NFLDB = 47 - GO TO 10 -C - 120 CONTINUE - IF((KRUN .NE. 17) .AND. (KRUN .NE. 18)) GO TO 130 -C -C GENERALIZED NH AND SH PLOTTING GETS IT ALL. -C - NFLDB = 63 - GO TO 10 -C - 130 CONTINUE - IF(KRUN .NE. 19) GO TO 140 -C -C 1:60M NH CHART IS ADP DATA ONLY. -C - NFLDB = 1 - GO TO 10 -C - 140 CONTINUE - IF((KRUN .NE. 22) .AND. (KRUN .NE. 23)) GO TO 150 -C -C 1:26M GOES-TYPE CHARTS -- JUST LIKE TROPICAL OPTION. -C - NFLDB = 47 - GO TO 10 -C - 150 CONTINUE -C -C MY OVERALL DEFAULT HERE IS TO PLOT ALL BUT BOGUS. -C - NFLDB = 47 - GO TO 10 - 160 RETURN - END diff --git a/util/sorc/plotvpap.fd/setkeil.f b/util/sorc/plotvpap.fd/setkeil.f deleted file mode 100755 index c88c6c2a29..0000000000 --- a/util/sorc/plotvpap.fd/setkeil.f +++ /dev/null @@ -1,140 +0,0 @@ - SUBROUTINE setkeil(KRUN,KEIL,KLLGO2) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: setkeil DEFINE KEIL AND KLLGO2 FROM KRUN -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 97-02-04 -C -C ABSTRACT: KEIL IS DEFINED FOR TRUIJ AND TRULL; AND KLLGO2 -C FOR BOUNDARY TESTING REPORTS (BY SUBR WIBOUND) LATER ON. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-25 STEVE LILLY DOCUMENT -C 93-05-12 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-02-04 SHIMOMURA - CONVERT TO RUN ON CRAY -C 97-03-10 SHIMOMURA - ADD KRUN=20 OPTION FOR BIG SHEMI -C -C USAGE: CALL setkeil(KRUN,KEIL,KLLGO2) -C -C INPUT ARGUMENT LIST: -C KRUN - SETTING OPTIONS BY RUN TYPE -C KEIL - GIVEN THE KRUN OPTION; KEIL SPECIFIED THE GRID -C KLLGO2 - TO DETERMINE THE TYPE OF LAT/LONG TESTING; -C -C OUTPUT ARGUMENT LIST: -C KEIL - GIVEN THE KRUN OPTION; KEIL SPECIFIED THE GRID -C KLLGO2 - TO DETERMINE THE TYPE OF LAT/LONG TESTING; -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - IF(KRUN .EQ. 4) THEN -C ... STANDARD NH GRID ... FINAL. -C - KLLGO2 = 3 - KEIL = 2 - GO TO 999 -C - ELSE IF(KRUN .EQ. 5) THEN -C ... NA AFOS SECTION ... LFM. -C - KLLGO2 = 2 - KEIL = 15 - GO TO 999 -C - ELSE IF(KRUN .EQ. 8) THEN -C ... LFM GRID ... 1DOT. -C - KLLGO2 = 2 - KEIL = 1 - GO TO 999 -C - ELSE IF(KRUN .EQ. 9) THEN -C ... LFM GRID ... 2DOT. -C - KLLGO2 = 2 - KEIL = 1 - GO TO 999 -C - ELSE IF(KRUN .EQ. 10) THEN -C ... STANDARD NH GRID ... SIRSPLOT. -C - KLLGO2 = 3 - KEIL = 2 - GO TO 999 -C - ELSE IF(KRUN .EQ. 11) THEN -C ... TROPIC PLOT ON MR4001 ... TROPIC1. -C - KLLGO2 = 5 - KEIL = 0 - GO TO 999 -C - ELSE IF(KRUN .EQ. 15) THEN -C ... LARGE 1/20M NH ... NHEMI20. -C - KLLGO2 = 4 - KEIL = 7 - GO TO 999 -C - ELSE IF(KRUN .EQ. 17) THEN -C ... STANDARD NH GRID ... NHEMI40. -C - KLLGO2 = 3 - KEIL = 2 - GO TO 999 -C - ELSE IF(KRUN .eq. 18) THEN -C ... STANDARD SH GRID ... SHEMI40. -C - KLLGO2 = 6 - KEIL = 3 - GO TO 999 -C - ELSE IF(KRUN .eq. 19) THEN -C ... UAB 1/60M NH GRID ... NHEMI60. -C - KLLGO2 = 7 - KEIL = 14 - GO TO 999 -C - ELSE IF(KRUN .EQ. 20) THEN !... BIG SH2001 - KLLGO2 = 6 !... ???? TRYING SOMETHING - KEIL = 16 - GO TO 999 -C - ELSE IF(KRUN .eq. 22) THEN -C ... PSEUDO-GOES WEST ... GH2601 -C - KLLGO2 = 5 - KEIL = 0 -C ...JUST LIKE KRUN = 11. - GO TO 999 -C - ELSE IF(KRUN .eq. 23) THEN -C ... PSEUDO-GOES EAST ... GH2602 -C - KLLGO2 = 5 - KEIL = 0 -C ..LIKE KRUN = 11. - GO TO 999 -C - ELSE -C ...IF I HAVEN'T CAUGHT YET, SET TO BYPASS LAT/LON BOUNDARY TEST. -C - KLLGO2 = 1 - KEIL = 0 - PRINT 9000,KRUN - 9000 FORMAT(1H ,'setkeil: Failed to find an entry for KRUN = ',I2, - 1 /1h ,7X,'UNABLE TO DO I/J TESTING FOR THIS KRUN CATEGORY') - GO TO 999 - ENDIF - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/sortem.f b/util/sorc/plotvpap.fd/sortem.f deleted file mode 100755 index 40c8bd1176..0000000000 --- a/util/sorc/plotvpap.fd/sortem.f +++ /dev/null @@ -1,200 +0,0 @@ - SUBROUTINE SORTEM(ADATA,ITM,JTM,SDATA,ISKEY,ML,MH,IERR) -C 25-JUL-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SORTEM UPWARD RADIX SORT -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-08 -C -C ABSTRACT: REORDER THE ENTIRE ARRAY INTO SORTED ORDER -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 88-07-25 GLORIA DENT PUT IN DOCUMENTATION BLOCK -C 89-04-19 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C 93-05-08 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-07-25 SHIMOMURA -- CONVERT TO CRAY -C -C USAGE: CALL SORTEM (ADATA,ITM,JTM,SDATA,ISKEY,ML,MH,IERR) -C -C INPUT ARGUMENT LIST: -C ADATA(ITM,JTM) - INTEGER*8 ARRAY CONTAINING THE DATA TO -C BE SORTED -C ISKEY - TELLS WHICH OF THE ITM WORDS CONTAINS THE SORT KEY. -C ML - IS THE LO-ORDER BIT POSITION OF THE SORT KEY W/I WORD. -C MH - IS THE HI-ORDER BIT POSITION OF THE SORT KEY W/I THE -C - WORD (SEE REMARK) -C -C OUTPUT ARGUMENT LIST: -C SDATA - INTEGER*8, A SCRATCH AREA OF THE SAME DIMENSIONS AS -C - ADATA. SDATA MUST BE A LEAST (2,JTM) FOR SCRATCH -C - WORK -C IERR - = 0 FOR NORMAL EXIT -C - = 2 IF THERE IS A SORTEM PROBLEM -C -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: SORT KEY IN RANGE OF BITS (1) THRU (48), SO MAX MH IS -C 48...WHERE 1 IS THE RIGHT-MOST LOW-ORDER BIT POSITION. END OF -C DATA IN BIN IS FLAGGED BY AN ALL ZERO WORD (IN ADATA(ISKEY,J). -C NO OF OBS RESTRICTED TO 2**16 - 1. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ...USAGE: CALL SORTEM(ADATA,ITM,JTM,SDATA,ISKEY,ML,MH,IERR) - - INTEGER*8 ADATA(ITM,JTM) - INTEGER*8 SDATA(ITM,JTM) - INTEGER ISKEY - INTEGER ML - INTEGER MH - INTEGER IERR -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ... INTEGER*8 ISBIT / Z'8000000000000000' / - -C - INTEGER MSK48 - DATA MSK48 / X'0000FFFFFFFFFFFF' / - - INTEGER NOTMSK48 - DATA NOTMSK48 / X'FFFF000000000000' / - - INTEGER J1B48 - DATA J1B48 / X'0001000000000000' / - - DATA MSK16 /Z'0000FFFF'/ - - DATA MXMH /48/ -C - INTEGER*8 MB - INTEGER*8 ACC - -C . . . . . . . . S T A R T . . . . . . . . . . . . . . . . . - - IERR = 0 - IF((ML .LE. 0) .OR. (ML .GT. 64)) GO TO 900 - IF(MH .LT. ML) GO TO 900 - IF(MH .GT. MXMH) GO TO 930 - IF((ISKEY .LE. 0) .OR. (ISKEY .GT. ITM)) GO TO 910 - IF(ADATA(ISKEY,1) .EQ. 0) GO TO 920 -C -C ...STEP(1) ... TO FORM SORT WORD ARRAY IN SDATA(1,N) -C ... /J/SORT KEY/ /16/48/ - JS = 0 - DO 144 N = 1,JTM - NOBS = N - 1 - ACC = ADATA(ISKEY,N) - IF(ACC .EQ. 0) GO TO 146 - - acc = iand(acc,msk48) !... ERASE HI-ORDER 16 BITS - JS = JS + J1B48 !... JS++; POSITIONED AT 48 - IHOLD = IAND(JS,NOTMSK48) - ACC = IOR(IHOLD,ACC) - SDATA(1,N) = ACC - - 144 CONTINUE - NOBS = NOBS + 1 - 146 CONTINUE -C -C ...STEP (2) ... TO SORT THE SORT WORD ARRAY... -C -C ... CALL DSHIFT(ISBIT,MB,ML) ... - MB = 0 - ibit = ML - 1 !... ibit=0; sets low-order bit - if(ibit .LT. 0) then - ibit = 0 - endif - MB = ibset(MB,ibit) - - DO 244 M = ML,MH - NX = 0 - NY = 0 - DO 230 N = 1,NOBS - ACC = SDATA(1,N) - ACC = IAND(ACC,MB) - IF(ACC .EQ. 0) GO TO 226 -C ...COMES HERE IF BIT, SO HOLD IN TEMPO BUFFER, LET OTHERS PASS UP - NY = NY + 1 - SDATA(2,NY) = SDATA(1,N) - GO TO 230 - 226 CONTINUE -C ...COMES HERE IF NO BIT, MOVE UP TO SPACES VACATED BY BIT WORDS - NX = NX + 1 - IF(NX .EQ.N) GO TO 230 - SDATA(1,NX) = SDATA(1,N) - 230 CONTINUE - IF(NY .EQ. 0) GO TO 241 -C ...TO MOVE BIT-WORDS BACK INTO TAIL END OF ORIG BUFFER... - DO N = 1,NY - NX = NX + 1 - SDATA(1,NX) = SDATA(2,N) - enddo - 241 CONTINUE - - MB = ishft(MB,1) -C ... CALL DSHIFT(MB(1),MB(1),1) ... - - 244 CONTINUE -C -C ...STEP (3)... REORDER THE ENTIRE ARRAY INTO SORTED ORDER... -C - DO 322 N = 1,NOBS - ACC = SDATA(1,N) - JR = IAND((ISHFT(ACC,-48)),MSK16) - DO I = 1,ITM - SDATA(I,N) = ADATA(I,JR) - enddo - 322 CONTINUE - -C ...TRANSFER FROM SCRATCH ARRAY TO OVERWRITE GIVEN ARRAY... - DO N = 1,NOBS - DO I = 1,ITM - ADATA(I,N) = SDATA(I,N) - enddo - enddo - -C ...ALL FINISHED... - PRINT 246, NOBS - 246 FORMAT(1H0, 10X, 'COMPLETED SORTEM WITH NOBS = ', I5) -C - RETURN -C ...NORMAL END OF SUPER SORT... -C -C ...ERROR EXITS - 900 CONTINUE -C ...COMES TO 900 IF GIVEN ML OR MH INCORRECT... - PRINT 902, ML, MH - 902 FORMAT(1H ,'SORTEM ERROR...GIVEN ML OR MH INCORRECT', - X 5X, 'ML = HEX ', Z8, 5X, 'MH = HEX ', Z8, /1H0) - GO TO 990 - - 910 CONTINUE - PRINT 912, ISKEY,ITM - 912 FORMAT(1H ,'SORTEM ERROR...GIVEN ISKEY OR ITM INCORRECT', - X 5X, 'ISKEY = HEX ',Z8, 5X, 'ITM = HEX ', Z8, /1H0) - GO TO 990 - - 920 CONTINUE -C ...COMES TO 920 IF EMPTY DATA BIN WERE GIVEN... - PRINT 922 - 922 FORMAT(1H ,'SORTEM ERROR...EMPTY DATA BIN GIVEN', /1H0) - GO TO 990 - - 930 CONTINUE -C ...COMES TO 930 IF MH IS TOO BIG TO ALLOW ROOM FOR J - PRINT 932, MXMH - 932 FORMAT(1H ,'SORTEM ERROR ...GIVEN MH EXCEEDS', I4) - GO TO 900 - - 990 CONTINUE - IERR = 1 - RETURN - END diff --git a/util/sorc/plotvpap.fd/tesrduupa.f b/util/sorc/plotvpap.fd/tesrduupa.f deleted file mode 100755 index ca17332a71..0000000000 --- a/util/sorc/plotvpap.fd/tesrduupa.f +++ /dev/null @@ -1,343 +0,0 @@ - subroutine tesrduupa -C 22-JAN-1997/dss -C ... copied tesrdupa into tesrduupa - -C 6-JAN-1996/DSS -C ... COPIED LARRY'S MAIN.F INTO tesrdupa -C -C This is a test program to use the subroutine rd_uupa -C to return one upper air station at a time from the -C rd_uupa data file -C -C Usage: -C -C CALL rd_uupa(LUNUPA,LINITQ, LVLIX, HEDER, LONELVL, IRET ) -C -C where the input parameters are, -C -C LUNUPA - Input file number -C LINITQ - LOGICAL SWITCH -C = .TRUE. ; TO COMMAND RD_UUPA TO REWIND -C THE INPUT FILE AND READ THE FILE HEADER -C BEFORE READING THE OBSERVATIONS; -C SUBR RD_UUPA WILL RESET THAT SWITCH TO =.F. -C SO THAT ON SUBSEQUENT CALLS TO GET THE -C NEXT REPORTS, IT WILL NOT INITIALIZE. -C -C LVLIX - MILLIBAR LEVEL BY INDEX NUMBER -C -C and the output parameters are, -C -C HEDER - The rd_uupa file header record. -C LONELVL(18) - ONE LEVEL'S DATA IN BINARY -C -C IRET - Return code: 0 = report returned -C -1 = end of file -C - INTEGER MAXWRDLVL - PARAMETER (MAXWRDLVL=24) - INTEGER NWRDLVLPAK - PARAMETER (NWRDLVLPAK=MAXWRDLVL/2) - - INTEGER MAXWRDHDR - PARAMETER (MAXWRDHDR=50) - -C ----------------------------------------------------------------- - INTEGER MAXOBS - PARAMETER (MAXOBS=20000) - INTEGER NDATASIZ - PARAMETER (NDATASIZ=MAXOBS+1) - INTEGER LMTWRDPOB - PARAMETER (LMTWRDPOB=10) - INTEGER LMTHFWPOB - PARAMETER (LMTHFWPOB=2*LMTWRDPOB) !... =(20) - - COMMON /OBSLVLDB/NOBSDB,LVLIX,IOBS2PK - INTEGER IOBS2PK(LMTWRDPOB,NDATASIZ) - - COMMON /JSPACE/IDREC,NDATA - INTEGER IDREC(6) - INTEGER NDATA(3,NDATASIZ) - - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER IMAX - PARAMETER (IMAX=53) - INTEGER JMAX - PARAMETER (JMAX=57) - - REAL FLD(IMAX,JMAX) - - logical LINITQ - INTEGER LVLIX - INTEGER LONELVL(MAXWRDLVL) - REAL FLONELVL(MAXWRDLVL) - - INTEGER IONELVLPAK(NWRDLVLPAK) - - - CHARACTER*8 CHGTS(11) - CHARACTER*8 HEDER(MAXWRDHDR) -C -C -C - DATA CHGTS /'1000 ',' 925 ',' 850 ',' 700 ', - 1 ' 500 ',' 400 ',' 300 ',' 250 ', - 1 ' 200 ',' 150 ',' 100 '/ -C - INTEGER KRUN - INTEGER KEIL - INTEGER ITOUT - INTEGER KLLGO2 - LOGICAL LINTERPQQ - REAL HGTM - LOGICAL LINBOUNDQQ - REAL ALAT - REAL ALONG - - - integer namstn - character*8 cnamstn - equivalence (namstn,cnamstn) - -C ... ARGS FOR HALF-PACKING VIA SBYTES ... - INTEGER NOFFSET - DATA NOFFSET / 0 / - INTEGER KBITPGRP - DATA KBITPGRP / 32 / - INTEGER KPADBITS - DATA KPADBITS / 0 / - INTEGER NGRPS2DO -C . . . . . . . . . . . . . . . . . . . . - INTEGER ISCRDATA(3,NDATASIZ) - INTEGER ISKEY - DATA ISKEY / 1 / - INTEGER KEYML - DATA KEYML / 6 / - INTEGER KEYMH - DATA KEYMH / 41 / - INTEGER IRET_SOR -C . . . . . . . . . . . . . . . . . . . . - integer mskJIJ - data mskJIJ / X'000001FFFFFFFFE0' / - INTEGER MSKJJJ - DATA MSKJJJ / X'000001FF00000000' / - INTEGER NRITSHF - DATA NRITSHF / 32 / - - INTEGER NDIXMAX !... NO OF J-ROWS IN ANY GRID - PARAMETER (NDIXMAX=400) - INTEGER IDIXAD(NDIXMAX) - INTEGER IDIXCO(NDIXMAX) - - INTEGER NDIX - integer lvldes - - integer istat - - SAVE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - istat = 0 - NOBSDB = 0 - - ITOUT = 2 !... ITOUT SHOULD BE PASSED INTO THIS - - NGRPS2DO = MAXWRDLVL - -C ... DEFINE FOR BOUNDARY-TESTER ... - DO J = 1,JMAX - DO I = 1,IMAX - FLD(I,J) = 0.0 - ENDDO - ENDDO - - KLLGO2 = 3 - KRUN = 2 - KEIL = 1 !... LFM GRID - LINTERPQQ = .TRUE. -C . . . . . . . . . . . . . . . . . . - - DO 888 LVLOOP = 1,2 - LVLIX = 3 !... GET THE 850-MB DATA - IF(LVLOOP .EQ. 1) THEN - LVLIX = 3 - ELSE IF(LVLOOP .EQ. 2) THEN - LVLIX = 5 - ENDIF - -C READ A REPORT FROM THE rd_uupa FILE -C - PRINT *,' Beginning TEST rd_uupa program' - IRET = 0 - LUNUPA = 41 - LINITQ = .TRUE. !... RD_UUPA WILL RESET TO .F. - IREC = 0 - IX = 0 - -C ... TO INITIALIZE THE DATABASE TO ALL ZEROS, - do j = 1,NDATASIZ - do i = 1,LMTWRDPOB - IOBS2PK(I,J) = 0 - ENDDO - ENDDO - NOBSDB = 0 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 200 continue !... do until logical end of file ... -C -C READ AN UPPER AIR REPORT FROM THE rd_uupa DATA SET -C - CALL rd_uupa(LUNUPA,LINITQ,LVLIX, HEDER, LONELVL, IRET) - if(iret .ne. 0) then - if(iret .EQ. -1) then !... normal LEOF found - go to 800 - else - istat = iret - go to 999 - endif - endif - -C ... otherwise, got a report, so process it ... - IREC = IREC + 1 -C - DO IOB = 1,MAXWRDLVL - IF((IOB .EQ. 11) .OR. (IOB .EQ. 12)) THEN - FLONELVL(IOB) = 0.0 - ELSE - FLONELVL(IOB) = FLOAT(LONELVL(IOB)) / 4096.0 - ENDIF - ENDDO - -C ... next perform a bndry test on this lat/lon ... - ALAT = FLONELVL(1) - ALONG = FLONELVL(2) - - call wibound(KRUN,KEIL,KLLGO2,LINTERPQQ,ALAT,ALONG, - 1 FLD,IMAX,JMAX,HGTM,LINBOUNDQQ) - - print *, IONELVLPAK(2), LONELVL(2),NOFFSET,KBITPGRP, - 1 KPADBITS, NGRPS2DO - CALL SBYTESCCS(IONELVLPAK,LONELVL,NOFFSET,KBITPGRP,KPADBITS, - 1 NGRPS2DO) -c call byteswap(IONELVLPAK, 8, MAXWRDLVL) - - IF((LONELVL(14+8) .NE. 0) .AND. (LINBOUNDQQ)) THEN -C ... STASH INTO DATABASE ... - IF(NOBSDB .LT. MAXOBS) THEN - NOBSDB = NOBSDB + 1 -C ... TO SKIP THE 7TH WORD; STASH 1:6; 8:11 - IDEST = 0 - DO LW = 1,11 - IF(LW .NE. 7) THEN - IDEST = IDEST + 1 - IOBS2PK(IDEST,NOBSDB) = IONELVLPAK(LW) - ENDIF - ENDDO - ELSE - WRITE(6,FMT='(1H ,''TESRDUUPA: FAILED ON INADEQUATE'', - 1 '' SPACE ALLOCATED FOR DATABASE OF '', - 2 ''OBS BY LVL'', - 2 /1H ,7X,''NUMBER OF OBS LIMITED TO ='',I8)') - A MAXOBS - - ISTAT = 1 - GO TO 999 - ENDIF - ENDIF - - - IF(MOD(IREC,10) .EQ. 0) THEN -C ... PRINT A REPORT EVERY ONCE IN A WHILE ... -C - - -C ... WRITE(6,116)(LONELVL(I),I=1,MAXWRDLVL) -C ... 116 FORMAT((4Z17.16)) - - NAMSTN = IONELVLPAK(6) - IF(NAMSTN .EQ. 0) THEN - CNAMSTN(1:8) = ' ' - ENDIF - write(6,117) cnamstn(1:8),FLONELVL(1),FLONELVL(2), - 1 FLONELVL(7) - 117 format(1h ,A8,' LAT ',F7.2,' LONG ',F8.2,' ELEV ',F6.0) - - WRITE(6,1172)(IONELVLPAK(I),I=1,NWRDLVLPAK) - 1172 FORMAT((4Z17.16)) - - write(6,118)CHGTS(LVLIX),(FLONELVL(I),I=15,21) - 118 format(2X,A6,3X,F7.0,4X,F5.1, - 1 4X,F5.1,2X,F6.0,4X,F5.0,4X,F6.0,2X,F8.0) - write(6,119)LINBOUNDQQ - 119 FORMAT(1H ,'wibound: LINBOUNDQQ= .',L1,'.', - 1 /1H ) - ENDIF - - go to 200 !... enddo by report - - 800 continue - WRITE(6,FMT='(1H ,'' rd_uupa test completed with '',I8, - 1 '' reports;'', - 2 /1H ,7X,''STASHED-INTO-DATABASE COUNT ='',I8)') - A IREC,NOBSDB - - DO J = 1,NDATASIZ - DO I = 1,3 - NDATA(I,J) = 0 - ENDDO - ENDDO - - lvldes = lvlix - 1 - call mksorwrd(lvldes,itout,itct,iret_mks) - write(6,815)ITCT,iret_mks - 815 format(1h ,'tesrduupa::mksorwrd: ITCT=',I8, - 1 '; return-code=',I4) - do JJ = 1,ITCT - iacc = iand(ndata(1,JJ),mskJIJ) - IF(IACC .EQ. 0) THEN - WRITE(6,817)jj - 817 FORMAT(1H ,'tesrduupa::mksorwrd: results terminated at ', - 1 I8,'th word with zero value') - go to 818 - endif - enddo - 818 continue - - call presort(KRUN) - - do JJ = 1,ITCT - iacc = iand(ndata(1,JJ),mskJIJ) - IF(IACC .EQ. 0) THEN - WRITE(6,819)jj - 819 FORMAT(1H ,'tesrduupa::presort: results terminated at ', - 1 I8,'th word with zero value') - go to 820 - endif - enddo - - 820 continue - call sortem(NDATA,3,NDATASIZ,ISCRDATA,ISKEY,KEYML,KEYMH, - 1 IRET_SOR) - WRITE(6,825)iret_sor - 825 FORMAT(1H ,'tesrduupa::sortem: return-code=',I3) - IF(IRET_SOR .NE. 0) THEN - GO TO 999 - ENDIF - - NDIX = JMAX !... JUST A GUESS AT JROW MAX - call dixie(NDATA,3,NDATASIZ,ISKEY,MSKJJJ,NRITSHF, - 1 IDIXAD,IDIXCO,NDIX,IRET_DIX) - WRITE(6,835) IRET_DIX - 835 FORMAT(1H ,'tesrduupa::dixie: RETURN-CODE=',I5) - - call thin_upa(NDATA,3,NDATASIZ,ISKEY,IDIXAD,IDIXCO,NDIX,ITOUT) - - - 888 CONTINUE !... ENDDO ON LVLIX . . . . . . . . . . . . . - - 999 continue -C CALL EXIT(ISTAT) - return -C - END diff --git a/util/sorc/plotvpap.fd/thin_upa.f b/util/sorc/plotvpap.fd/thin_upa.f deleted file mode 100755 index ea4b33b181..0000000000 --- a/util/sorc/plotvpap.fd/thin_upa.f +++ /dev/null @@ -1,1110 +0,0 @@ - SUBROUTINE THIN_UPA(NDATA,ITM,JTM,IJTHK,IDIXAD,IDIXCO,NDIX,ITOUT) -C 13-JAN-1997/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: THIN_UPA THIN ADP DATA -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 1997-01-13 -C -C ABSTRACT: THINNING THE ADP DATA FIELD -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-05-01 STEVE LILLY ADD DOCUMENTATION BLOCK -C 93-05-03 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-01-13 SHIMOMURA: COPIED THIK (MY TEMP CRAY VERSION 25-JUL-1996) -C AND CHANGED NAME FROM THIK TO THIN_UPA; -C CHGD INTERNALLY USED I/J TO JJJjjjIIIiii -C -C -C USAGE: CALL THIN_UPA(NDATA,ITM,JTM,IJTHK,IDIXAD,IDIXCO,NDIX,ITOUT) -C -C INPUT ARGUMENT LIST: -C NDATA(ITM,JTM) - THE ADP DATA ARRAY TO BE THINNED -C WHERE (NDATA(I,J),I=1,ITM) CONTAINS ONE -C STATION'S OBSERVATIONAL DATA; -C THIS ARRAY MUST ALREADY BE IN SORTED ORDER; -C GIVEN: IN NDATA(1,J) ... -C //NOVRLP/TYP/TOSSED/JG//IG/IF/JF/PRIOR// -C // 16 6 1 9// 9 9 9 5 // -C ... (ZONES FOR NOVRLP, TOSSED ARE USED LOCALLY) -C GIVEN: IN NDATA(2,J) ... -C // /OFFTIME// -C // 4 // - -C IJTHK - I-SUBSCRIPT WITHIN ITM-WORDS WHEREIN THE DATA FOR -C LOCATION-OF-STATION (IN UNITS OF GRID I/J) -C CAN BE FOUND -C -C IDIXAD - I = BOTTOM, J TOP POINTS TO THE FIRST OBSERVATION -C - IN THE I-TH, J-STRIP (made by DIXIE) -C IDIXCO - THE TOTAL NUMBER OF OBSERVATION -C (made by DIXIE) -C NDIX - DIMENSION ARRAY IE; IDIXCO(NDIX) -C (made by DIXIE) -C -C ITOUT - INTEGER FLAG WITH RANGE FROM 1 THRU 13 , USED -C - TO DETERMINE TYPE OF MAP BACKGROUND DATA IS TO BE -C - DISPLAYED ON. ITOUT IS A FUNCTION OF KRUN AND IS -C - SET IN SUB KOPTN. - -C COMMON - /WLONG0/ WLONG0 -C AN ARGUMENT NEEDED ONLY FOR CALL GOESLL(WLONG0,...) -C IN SUB-SUBROUTINE PRTOSSED() -C -C OUTPUT ARGUMENT LIST: -C NDATA(ITM,JTM) - THE SAME ADP DATA ARRAY WITH FLAGS CHANGED -C TO INDICATE THOSE WHICH HAVE BEEN THINNED -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C - integer*8 NDATA(ITM,JTM) - INTEGER IDIXAD(NDIX) - INTEGER IDIXCO(NDIX) -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... caution: following work arrays dimensioned for ITM=3; so -C ... if your data base is bigger, then change sizes ... - integer*8 NDATX(3) - integer*8 NDATY(3) - -C ... I*2 NDPEA(12) ... -C ... I*2 NDPEB(12) -C -C ... EQUIVALENCE(NDATX(1),NDPEA(1),int4a(1)) -C ... EQUIVALENCE(NDATY(1),NDPEB(1),int4b(1)) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C - DATA CLOSE /10.0/ -C ...WHERE CLOSE IS IN DOTS OF INTERVAL BETWN STNS FOR TOO CLOSE... -C - DATA DOTSGI /37.5/ -C - DATA JOFT /2/ -C ...THE LONGWORD LOCATION (I*8 NDATX(JOFT) OR I*8 NDATY(JOFT)) -C ... WHOSE LOW-ORDER 4-BITS (SEE MSKOFT) CONTAINS THE OFF-TIME -C ... PARAMETER IN THE DATA ARRAY... -C -C - INTEGER KTOSSBIT - DATA KTOSSBIT / 41 / !... IBSET(NDATY(IJTH),KTOSSBIT) - - - DATA MSKII /Z'FF800000'/ - DATA MSKJI /Z'000001FF'/ - DATA MSKOFT /Z'0000000F'/ - DATA MSKPJI /Z'FFFFFFE0'/ - DATA MSKPR /Z'0000001F'/ - DATA MSKR14 /Z'00003FFF'/ - - INTEGER MSKTYP - DATA MSKTYP /X'0000FC0000000000'/ -C ... DATA MSKTYP /Z'0000FC00'/ - - DATA NOTJD /Z'FFFFFE00'/ - DATA NOTPR /Z'FFFFFFE0'/ - INTEGER NOTMSKI2HI - DATA NOTMSKI2HI / X'0000FFFF' / - - INTEGER NOTMSK_IGIFJF !... NOT(9+9+9 B5) - DATA NOTMSK_IGIFJF / X'FFFFFFFF0000001F' / - INTEGER MSK_JF !... 9 B5 - DATA MSK_JF / X'0000000000003FE0' / - - INTEGER MSK_IGIF !...1234567812345678... - DATA MSK_IGIF / X'00000000FFFFC000' / - - - INTEGER MSKLOCN - DATA MSKLOCN / X'000001FFFFFFFFE0'/ !... JI + PJI - - INTEGER MSK16B - DATA MSK16B / X'000000000000FFFF' / - INTEGER MSK32B - DATA MSK32B / X'00000000FFFFFFFF' / - INTEGER MSK48B - DATA MSK48B / X'0000FFFFFFFFFFFF' / -C - DATA SCALE / 1.953124E-3 / -C ...WHICH IS RECIPROCAL OF 512 TO SHIFT BINARY PT 9 BITS... - - INTEGER IACC - INTEGER LONGWRD - INTEGER IGIF_MOVD - INTEGER JG_MOVD - - integer nduptossd - integer ntottossd - integer jptr_enddata - INTEGER LCKPT - - INTEGER LOCN_A - INTEGER LOCN_B - - CHARACTER*5 CMD - LOGICAL LADVANCE - LOGICAL LTOSS1 - LOGICAL LOPNL -C - SAVE - -C . . . . . . S T A R T . . . . . . . . . . . . . . . . . . . -C - ntottossd = 0 - LOPNL = .TRUE. -C ...IF YOU WANT TO PRINT EVERY TOSSED STN, SET LOPNL TO FALSE... - LTOSS1 = .TRUE. - IKDOT = 34 - JKDOT = 20 -C... WHICH INITIALIZES BOUNDS OF PLOTTING MODEL TO IQSY SIZE.... - - 69 CONTINUE - -C ... GO TO (71,71,73,74,75,73,77,78,70,73,79,82,82),ITOUT -C ... ... 1 2 3 4 5 6 7 8 9 10 11 12 13 ... - -C . . . . . . . . . . . . . CASE ITOUT . . . . . . . . . . . . . - IF((ITOUT .EQ. 1) .OR. - 1 (ITOUT .EQ. 2)) THEN -C ... 71 CONTINUE - KEIL = 1 - IKDOT = 50 - JKDOT = 24 - LTOSS1 = .FALSE. - - ELSE IF((ITOUT .EQ. 3) .OR. - 1 (ITOUT .EQ. 6) .OR. - 2 (ITOUT .EQ. 10)) THEN -C ... 73 CONTINUE - KEIL = 2 - - ELSE IF(ITOUT .EQ. 4) THEN -C ... 74 CONTINUE - KEIL = 15 - IKDOT = 50 - JKDOT = 24 - LTOSS1 = .FALSE. - - ELSE IF(ITOUT .EQ. 5) THEN -C ... 75 CONTINUE - KEIL = 3 - - ELSE IF(ITOUT .EQ. 7) THEN -C ... 77 CONTINUE - KEIL = 6 - IKDOT = 20 - JKDOT = 34 - - ELSE IF(ITOUT .EQ. 8) THEN -C ... 78 CONTINUE - KEIL = 7 - IKDOT = 50 - JKDOT = 24 - - ELSE IF(ITOUT .EQ. 9) THEN - KEIL = 4 - - ELSE IF(ITOUT .EQ. 10) THEN - keil = 2 - - ELSE IF(ITOUT .EQ. 11) THEN -C ... 79 CONTINUE - KEIL = 14 - - ELSE IF((ITOUT .EQ. 12) .OR. - 1 (ITOUT .EQ. 13)) THEN -C ... 82 CONTINUE - DOTSGI = 50.0 - KEIL = 0 - - ELSE -C ... THIS VALUE OF ITOUT IS UNKNOWN ... -C ... IF(ITOUT .LT. 1) GOTO 66 -C ... IF(ITOUT .GT.13) GOTO 66 - -C WRITE(6,68) ITOUT - 68 FORMAT(1H ,/1H , 'THIN_UPA: ERRONEOUS ITOUT WAS GIVEN.', - 1 /1H ,7X,'GIVEN OUT-OF-RANGE ITOUT = HEX ',Z16.16, - 2 /1H ,7X,'... GOING ON... WITH DEFAULT KEIL=4 ') - -C ...WHICH WILL SET FOR PEATMOS 2-PANEL FOR UNKNOWN ITOUT -C ... 70 CONTINUE - KEIL = 4 - ENDIF - - GO TO 90 -C - 90 CONTINUE - IJTH = IJTHK -C -C ****************************************************************** -C -C PART ONE -C -C REFORMAT I AND J. -C -C ****************************************************************** -C - DO 137 JA=1,JTM -C ...FETCH ITM WORDS OF ONE DATA POINT... - jptr_enddata = JA - DO 132 I=1,ITM - IF(NDATA(IJTH,JA) .EQ. 0) then - write(6,131)IJTH,jptr_enddata,KEIL - 131 format(1H ,'thin_upa: PART-1 located terminating zero ', - 1 'word at NDATA(',I4,',',I6,')', - 2 /1H ,7X,'KEIL=',I4) - GO TO 139 !... JUMP OUT OF DO - endif - NDATX(I) = NDATA(I,JA) - 132 CONTINUE - - -C ...REFORMAT THE I/J WORD AND ZERO OVERLAP COUNT... - -C . . . . . . . . . . . . . . . . . - -C ... GIVEN: // ... /JG//IG/IF/JF/PRIOR// -C // 23 9// 9 9 9 5 //BITS -C ... REARRANGED: // ... /JG//JF/IG/IF/PRIOR// -C // 23 9// 9 9 9 5 //BITS - - LONGWRD = NDATX(IJTH) - IACC = IAND(LONGWRD,NOTMSK_IGIFJF) -C ... WHICH ERASED IGRID+IFRACT+KFRACT AND PRESERVED THE REST - - IGIF_MOVD = ISHFT(IAND(LONGWRD,MSK_IGIF),-9) - IACC = IOR(IACC,IGIF_MOVD) - - JF_MOVD = ISHFT(IAND(LONGWRD,MSK_JF),+18) -C ... JF_MOVD = ISHFT(IAND(LONGWORD,MSK_JF),+18) ... - IACC = IOR(IACC,JF_MOVD) - - IACC = IBCLR(IACC,KTOSSBIT) !... INIT TO NOT-TOSSED - -C ... ... NDPEA(1) = 0 !... zero hi-order 16bits for ovrlap count - NDATX(IJTH) = IAND(IACC,MSK48B) -C . . . . . . . . . . . . . . . . . - NDATA(IJTH,JA) = NDATX(IJTH) -C -C I/J PORTION OF THE DOUBLE WORD IS NOW JG||JF||IG||IF WHERE THERE -C ARE 9 BITS FOR INTEGER AND 9 BITS FOR FRACTION. -C - 137 CONTINUE -C ... ... WHERE 137 CONTINUE IS ENDDO ON JA=1,JTM -C - 139 CONTINUE -C -C------------------------------------------------ - lckpt = 139 -C ... I am looking for where the extraneous zero word is being put - DO JA=1,JTM - jofzero = JA - IF(NDATA(IJTH,JA) .EQ. 0) then - write(6,FMT='(1H ,''thin_upa: at LCKPT='',I5, - 1 '', found terminating zero word at NDATA('',I4, - 2 '','',I6,'')'')') - A LCKPT,IJTH,jofzero - GO TO 1393 !... JUMP OUT OF DO - ENDIF - ENDDO - 1393 CONTINUE -C------------------------------------------------ -C ****************************************************************** -C -C PART TWO -C -C TOSS DUPLICATE REPORTS (SAME I/J AND SAME PRIORITY). -C -C ****************************************************************** -C - nduptossd = 0 - DO 177 JA=1,JTM -C ...FETCH ITM WORDS OF STATION A... - DO I=1,ITM - NDATX(I) = NDATA(I,JA) - enddo -C - JB = JA + 1 - IF(NDATA(IJTH,JA) .EQ. 0) GO TO 180 !... ended toss-duplic - -C ...TEST WHETHER STATION A IS ALREADY TOSSED... - - - IF(BTEST(NDATX(IJTH),KTOSSBIT)) THEN - GO TO 177 !... MARKED AS "TOSSED", SO SKIP - ENDIF - - 144 CONTINUE -C ... FETCH PACKED I/J OF POINT A... - LOCN_A = IAND(NDATX(1),MSKLOCN) - - IF(JB .GE. JTM) GO TO 177 - -C ...FETCH ITM WORDS OF STN B... - DO 146 I=1,ITM - IF(NDATA(IJTH,JB) .EQ. 0) GO TO 177 - NDATY(I) = NDATA(I,JB) - 146 CONTINUE - -C ...GET PACKED I,J OF POINT B... - LOCN_B = IAND(NDATY(1),MSKLOCN) - - IF(LOCN_A .NE. LOCN_B) THEN - GO TO 177 !... NOT AT SAME LOCN, SO GO NEXT PT-A - ENDIF -C ... OTHERWISE, COMES HERE IF DUPLICATE I/J. ELIMINATE ONE... - - IPRIB = IAND(NDATY(IJTH),MSKPR) - - IF(IPRIA - IPRIB) 170,156,175 - 156 CONTINUE -C ...COMES HERE IF SAME I/J AND SAME PRIORITY... - IOFFTA = IAND(NDATX(JOFT),MSKOFT) - - IOFFTB = IAND(NDATY(JOFT),MSKOFT) - - IF(IOFFTA .GT. IOFFTB) GO TO 175 - - 170 CONTINUE -C ... COMES HERE IF(IPRIA .LT. IPRIB) ... . . . . . . . . . -C ...TOSS POINT B -- I.E., SET THE KTOSSBIT ... - - - NDATY(IJTH) = IBSET(NDATY(IJTH),KTOSSBIT) - NDATA(IJTH,JB) = NDATY(IJTH) - - nduptossd = nduptossd + 1 - ntottossd = ntottossd + 1 - - JSUB = JB - JCNT = 1 - CALL PRTOSSED(ITM,NDATY,NDATA,KEIL,JSUB,JCNT,JTM,IDIXAD, - 1 IDIXCO,ITOUT,LOPNL) - 171 CONTINUE - JB = JB + 1 - GO TO 144 - - 175 CONTINUE -C ... COMES HERE IF(IPRIA .GT. IPRIB) ... -C ... TOSS POINT A -- I.E., SET THE KTOSSBIT ... - - - NDATX(IJTH) = IBSET(NDATX(IJTH),KTOSSBIT) - NDATA(IJTH,JA) = NDATX(IJTH) - - nduptossd = nduptossd + 1 - ntottossd = ntottossd + 1 - - JCNT = 1 - JSUB = JA - CALL PRTOSSED(ITM,NDATY,NDATA,KEIL,JSUB,JCNT,JTM,IDIXAD, - 1 IDIXCO,ITOUT,LOPNL) - - 176 CONTINUE - 177 CONTINUE -C ... . . . . . WHERE 177 IS ENDDO ON JA=1,JTM . . . . . . - 180 CONTINUE -C -C DUPLICATES HAVE BEEN TOSSED. -C - WRITE(6,620)nduptossd,ntottossd - 620 FORMAT(1H ,'THIN_UPA: AT END OF STEP 1 -- TOSSED ',I5, - 1 ' DUPLICATES', - 2 /1H ,7X,'TOTAL OF TOSSED = ',I5) - -C------------------------------------------------ - lckpt = 180 -C ... I am looking for where the extraneous zero word is being put -C ... DO JA=1,JTM -C ... jofzero = JA -C ... IF(NDATA(IJTH,JA) .EQ. 0) then -C ... write(6,FMT='(1H ,''thin_upa: at LCKPT='',I5, -C ...1 '', found terminating zero word at NDATA('',I4, -C ...2 '','',I6,'')'')') -C ...A LCKPT,IJTH,jofzero -C ... GO TO 1803 !... JUMP OUT OF DO -C ... ENDIF -C ... ENDDO -C ... 1803 CONTINUE -C------------------------------------------------ - -C -C COUNT OVERLAPS AND TOSS ANY LOW QUALITY STATIONS OVERLAPPING A -C HIGHER QUALITY STATION. -C -C ...INITIALIZE CONSTANTS... - delgrdi = FLOAT(IKDOT) / DOTSGI - delgrdj = FLOAT(JKDOT) / DOTSGI - CLOSE2 = CLOSE / DOTSGI - CLOSE2 = CLOSE2 * CLOSE2 -C ...FOR TEST ON DISTANCE-SQUARED FOR NEARLY SAME LOCATION... - WRITE(6,635) CLOSE2 - 635 FORMAT(1X,5X, 'CLOSE2 ... DISTANCE LIMIT = ', E11.4) - MAXLAP = 0 -C ...FOR THE MAX OVERLAP FOUND FOR ANY POINT... - DO 280 JA=1,JTM - NOVRLP = 0 -C ...FETCH ITM WORDS OF POINT A... - DO 210 I=1,ITM - IF(NDATA(IJTH,JA) .EQ. 0) GO TO 290 - NDATX(I) = NDATA(I,JA) - 210 CONTINUE -C - IPRIA = IAND(NDATX(IJTH),MSKPR) - - IF(BTEST(NDATX(IJTH),KTOSSBIT)) THEN - GO TO 280 !... THIS PT_A IS MARKED "TOSSED"; SKIP - ENDIF - - - NDATX(IJTH) = IAND(NDATX(IJTH),MSK48B) !... NOVLP=0 - - NDATA(IJTH,JA) = NDATX(IJTH) - - CMD(1:5) = 'COUNT' - LADVANCE = .FALSE. - - CALL OVRLPUPA(CMD,delgrdi,delgrdj,NDATA,ITM,JTM,IJTH, - 1 JA,NDATX,NDATY,IPRIA, - 2 IDIXAD,IDIXCO,NDIX,CLOSE2,LOPNL, - 3 ITOUT,KEIL, - 4 NOVRLP,ntottossd,LADVANCE) - - IF(LADVANCE) GOTO 280 -C ... IF(CMD=='DECRE') GOTO 366 !... WARNING fr compiler -C ... CMD IS NOT CHANGED W/I OVERLAPS(); SO -C ... CMD WILL BE ='COUNT' HERE -C -C ...RETURN FROM SECTION 500 WHEN CMD == 'COUNT' ... - 266 CONTINUE -C ...STORE THE OVERLAP COUNT FOR POINT A... - - - NDATX(IJTH) = IAND(NDATX(IJTH),MSK48B) !... NOVLP=0 - MQ = ISHFT(IAND(NOVRLP,MSK16B),48) - NDATX(IJTH) = IOR(MQ,NDATX(IJTH)) !... NDPEA(1)=NOVRLP - - NDATA(IJTH,JA) = NDATX(IJTH) - IF(NOVRLP .GT. MAXLAP) MAXLAP = NOVRLP -C ...I HAVE FINISHED ONE POINT A. GO GET ANOTHER... - 280 CONTINUE -C ... WHERE 280 IS ENDDO ON JA=1,JTM . . . . . . . . . . . . . . -C - 290 CONTINUE - WRITE(6,600) MAXLAP,NTOTTOSSD - 600 FORMAT(1H ,'thin_upa:AT END OF PART 3 OF THINNER. ', - 1 'MAX OVERLAP COUNT=',I5, - 2 /1H ,7X,'TOTAL-TOSSED COUNT=',I5,/1H ) -C -C------------------------------------------------ - lckpt = 290 -C ... I am looking for where the extraneous zero word is being put -C ... DO JA=1,JTM -C ... jofzero = JA -C ... IF(NDATA(IJTH,JA) .EQ. 0) then -C ... write(6,FMT='(1H ,''thin_upa: at LCKPT='',I5, -C ...1 '', found terminating zero word at NDATA('',I4, -C ...2 '','',I6,'')'')') -C ...A LCKPT,IJTH,jofzero -C ... GO TO 2903 !... JUMP OUT OF DO -C ... ENDIF -C ... ENDDO -C ... 2903 CONTINUE -C------------------------------------------------ - -C CALL PDUMP(NDATA(1,1),NDATA(6,600),0) - -C ... TO THIN OVERLAPPING STATIONS... - KOVCRI = MAXLAP - 1 - IF(KOVCRI .GE. 0) GO TO 310 -C ...AT THIS POINT KOVCRI IS INITIALIZED... - KOVCRI = 0 - 310 CONTINUE - -C ... LOGIC ERROR WITHIN FOLLOWING LOOP IN WHICH A ZERO WORD IS -C ... BEING INTRODUCED IN NDATA(1,X) - - NTOSS = 0 - 311 CONTINUE !... top of loop on KOVCRI * * * * * * * -C ...INITIALIZE THE SKIP COUNT... - KIPS = 1 - 315 CONTINUE - NTOSD = 0 - J1 = KIPS - DO 380 JA=J1,JTM,KIPS -C ...FETCH ITM WORDS OF POINT A... - DO 317 I=1,ITM - IF(NDATA(IJTH,JA) .EQ. 0) GO TO 385 - NDATX(I) = NDATA(I,JA) - 317 CONTINUE - -C ...DO NOT THIN LAND STATIONS OF TYPE ONE... - - NTYPE = IAND(NDATX(IJTH),MSKTYP) - NTYPE = ISHFT(NTYPE,-42) - - IF(NTYPE .NE. 1) GO TO 320 - IF(.NOT. LTOSS1) GO TO 380 - 320 CONTINUE - IPRIA = IAND(NDATX(IJTH),MSKPR) - - IF(IPRIA) 322,380,322 - 322 CONTINUE -C ... ... NOVRLP = NDPEA(1) - NOVRLP = IAND(ISHFT(NDATX(IJTH),-48),MSK16B) -C ... CAN NOVRLP EVER BE NEGATIV-VALUED ???? - - IF(NOVRLP .EQ. 0) GO TO 380 - IF(NOVRLP .LE. KOVCRI) GO TO 380 -C -C COMES THIS WAY IF POINT A HAS MORE OVERLAPS THAN KOVCRI. -C -C TOSS POINT A BY setting ktossbit; AND zero ITS OVERLAP COUNT. - - - NDATX(IJTH) = IAND(NDATX(IJTH),MSK48B) !... NOVERLAPS=0 - NDATX(IJTH) = IBSET(NDATX(IJTH),KTOSSBIT) !... TOSSED - ntottossd = ntottossd + 1 - NDATA(IJTH,JA) = NDATX(IJTH) - - JSUB = JA - JCNT = 1 - CALL PRTOSSED(ITM,NDATY,NDATA,KEIL,JSUB,JCNT,JTM,IDIXAD, - 1 IDIXCO,ITOUT,LOPNL) - 328 CONTINUE - NTOSD = NTOSD + 1 -C -C SET CMD TO PERFORM REDUCE-OVERLAP-COUNT OF ALL STATIONS B WHICH -C OVERLAP STATION A. -C - CMD(1:5) = 'DECRE' - LADVANCE = .FALSE. - - CALL OVRLPUPA(CMD,delgrdi,delgrdj,NDATA,ITM,JTM,IJTH, - 1 JA,NDATX,NDATY,IPRIA, - 2 IDIXAD,IDIXCO,NDIX,CLOSE2,LOPNL, - 3 ITOUT,KEIL, - 4 NOVRLP,ntottossd,LADVANCE) - - - IF(LADVANCE) GOTO 380 -C ... IF(LADVANCE) GOTO 280 !... WARNING fr compiler -C ... ... IF(CMD== 'COUNT') GOTO 266 !... WARNING fr compiler -C ... CMD IS NOT CHANGED W/I OVRLPUPA(); SO CMD=='DECRE' HERE. -C -C ... SECTION 500 RETURNS TO 366 WHEN CMD = 'DECRE' AND -C ... AFTER DOING ALL POINTS B. -C - 366 CONTINUE - 380 CONTINUE -C ... WHERE 380 IS ENDDO ON JA=J1,JTM,KIPS . . . . . . . . . . . - -C - 385 CONTINUE - WRITE(6,665) KOVCRI,KIPS,NTOSD,ntottossd - 665 FORMAT(1h ,'thin_upa:THIN CYCLE WITH OVERLAP CRITERION=', I3, - 1 /1h ,7X,'SKIP CONSTANT=',I3,'; NO. OF OBS TOSSED=', I4, - 2 /1h ,7X,'total-tossed count=',I5,/1H ) -C------------------------------------------------ - lckpt = 385 -C ... I am looking for where the extraneous zero word is being put -C ... DO JA=1,JTM -C ... jofzero = JA -C ... IF(NDATA(IJTH,JA) .EQ. 0) then -C ... write(6,FMT='(1H ,''thin_upa: at LCKPT='',I5, -C ...1 '', found terminating zero word at NDATA('',I4, -C ...2 '','',I6,'')'')') -C ...A LCKPT,IJTH,jofzero -C ... GO TO 3853 !... JUMP OUT OF DO -C ... ENDIF -C ... ENDDO -C ... 3853 CONTINUE -C------------------------------------------------ - - NTOSS = NTOSS + NTOSD - KIPS = KIPS - 1 - IF(KIPS .GT. 0) GO TO 315 - IF(KOVCRI .LE. 0) GO TO 400 - KOVCRI = KOVCRI - 1 - GO TO 311 - 400 CONTINUE - WRITE(6,611) NTOSS,NTOTTOSSD - 611 FORMAT(1H ,'thin_upa:COUNT OF OBS TOSSED IN PART(4) =',I5, - 1 /1h ,7X,'AT END OF thin_upa, TOTAL-TOSSED COUNT=',I5,/1H ) -C -C------------------------------------------------ - lckpt = 400 -C ... I am looking for where the extraneous zero word is being put - DO JA=1,JTM - jofzero = JA - IF(NDATA(IJTH,JA) .EQ. 0) then - write(6,FMT='(1H ,''thin_upa: at LCKPT='',I5, - 1 '', found terminating zero word at NDATA('',I4, - 2 '','',I6,'')'')') - A LCKPT,IJTH,jofzero - GO TO 4003 !... JUMP OUT OF DO - ENDIF - ENDDO - 4003 CONTINUE -C------------------------------------------------ - RETURN - END - - SUBROUTINE OVRLPUPA(CMD,delgrdi,delgrdj,NDATA,ITM,JTM,IJTH, - 1 JA,NDATX,NDATY,IPRIA, - 2 IDIXAD,IDIXCO,NDIX,CLOSE2,LOPNL, - 3 ITOUT,KEIL, - 4 NOVRLP,ntottossd,LADVANCE) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: OVRLPUPA THIN ADP DATA -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-02 -C -C ABSTRACT: THINNING THE ADP DATA FIELD ... -C ONLY FOR ONE GIVEN STN-A, SCANS THE OBSERVATIONS ARRAY TO FIND ALL -C NEARBY STN-B'S; PERFORMS THE COUNTING-OVERLAPS/SCRUB-TOO-CLOSE -C FUNCTION OR THE DECREMENTING-OVERLAP-COUNTS-STN-B'S FUNCTION -C AS DETERMINED BY THE GIVEN SWITCH VALUE IN "CMD". THAT FUNCTION- -C CONTROLLING SWITCH IS READ-ONLY; NOT RESET WITHIN THIS SUBR. -C Called from thin_upa (loop 280) in 'COUNT' mode; -C Called from thin_upa (loop 380) in 'DECRE' mode. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-05-01 STEVE LILLY ADD DOCUMENTATION BLOCK -C 93-05-02 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-07-25 SHIMOMURA - CONVERT TO CRAY FORTRAN -C -C USAGE: CALL OVRLPUPA(CMD,delgrdi,delgrdj,NDATA,ITM,JTM,IJTH, -C 1 JA,NDATX,NDATY,IPRIA, -C 2 IDIXAD,IDIXCO,NDIX,CLOSE2,LOPNL, -C 3 ITOUT,KEIL, -C 4 NOVRLP,ntottossd,LADVANCE) -C -C INPUT ARGUMENT LIST: -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C USAGE: CALL OVRLPUPA(CMD,delgrdi,delgrdj,NDATA,ITM,JTM,IJTH, -C 1 JA,NDATX,NDATY,IPRIA, -C 2 IDIXAD,IDIXCO,NDIX,CLOSE2,LOPNL, -C 3 ITOUT,KEIL, -C 4 NOVRLP,ntottossd,LADVANCE) - CHARACTER*5 CMD - REAL DELGRDI,DELGRDJ - integer*8 NDATA(ITM,JTM) - INTEGER IJTH - - INTEGER JA - integer*8 NDATX(3) - integer*8 NDATY(3) - INTEGER IPRIA -C - INTEGER IDIXAD(NDIX) - INTEGER IDIXCO(NDIX) - REAL CLOSE2 - LOGICAL LOPNL - - INTEGER ITOUT - INTEGER KEIL - - INTEGER NOVRLP - INTEGER NTOTTOSSD - LOGICAL LADVANCE - -C -C - DATA MSKPR /Z'0000001F'/ - DATA MSKR18 /Z'0003FFFF'/ - DATA NOTPR /Z'FFFFFFE0'/ - - INTEGER NOTMSKI2HI - DATA NOTMSKI2HI / X'0000FFFF' / - - INTEGER MSK16B - DATA MSK16B / X'0000FFFF' / - INTEGER MSK32B - DATA MSK32B / X'FFFFFFFF' / - integer msk48b - data msk48b / X'0000FFFFFFFFFFFF' / -C - DATA SCALE /1.953124E-3/ -C ...WHICH IS RECIPROCAL OF 512 TO SHIFT BINARY PT 9 BITS... - - INTEGER KTOSSBIT - DATA KTOSSBIT / 41 / !... IBSET(NDATY(IJTH),KTOSSBIT) - - INTEGER III_IFR_A,JJJ_JFR_A - INTEGER III_IFR_B,JJJ_JFR_B - - INTEGER NJROWS - INTEGER JB - INTEGER JBPTR - - INTEGER IACC - CHARACTER*8 CACC - EQUIVALENCE (IACC,CACC) - - INTEGER MQ - CHARACTER*8 CMQ - EQUIVALENCE (MQ,CMQ) - - SAVE -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . S T A R T S U B 5 0 0 . . . . . . . . . . . . -C - NJROWS = NDIX - 1 - -C ... GET X,Y LOCATION OF STN-A ... - III_IFR_A = IAND((ISHFT(NDATX(1), -5)),MSKR18) - JJJ_JFR_A = IAND((ISHFT(NDATX(1),-23)),MSKR18) - - STNI = FLOAT(III_IFR_A) * SCALE - STNJ = FLOAT(JJJ_JFR_A) * SCALE - - AIRT = STNI + delgrdi - AILEF = STNI - delgrdi - AJHI = STNJ + delgrdj - AJLO = STNJ - delgrdj - JLOS = AJLO - JHIS = AJHI - - DO 560 JSTRIP=JLOS,JHIS - IF(JSTRIP .LT. 1) GO TO 560 - IF(JSTRIP .GE. NJROWS) GO TO 564 - NSTRIP = IDIXCO(JSTRIP) -C - IF(NSTRIP .EQ. 0) GO TO 560 - JB = IDIXAD(JSTRIP) - - DO 555 JBR=1,NSTRIP - JBPTR = JB + JBR - 1 - IF(JBPTR .EQ. JA) GO TO 555 - -C ...FETCH ITM WORDS OF POINT B... - DO 519 I=1,ITM - IF(NDATA(IJTH,JBPTR) .EQ. 0) GO TO 564 - NDATY(I) = NDATA(I,JBPTR) - 519 CONTINUE - - IF(BTEST(NDATY(IJTH),KTOSSBIT)) THEN - GO TO 555 !... THIS B WAS ALREADY TOSSED; SKIP - ENDIF - - IPRIB = IAND(NDATY(IJTH),MSKPR) - -C ... IF(IPRIB .EQ. 0) GO TO 550 !... JB++; NEXT B-STN -C ... ... WHICH WAS OLD WAY TO TEST FOR "TOSSED" - -C ... GET X,Y LOCATION OF STN-B ... - III_IFR_B = IAND((ISHFT(NDATY(1), -5)),MSKR18) - JJJ_JFR_B = IAND((ISHFT(NDATY(1),-23)),MSKR18) - - BSTNI = FLOAT(III_IFR_B) * SCALE - BSTNJ = FLOAT(JJJ_JFR_B) * SCALE - -C ...BOX TEST... WE ARE LOOKING FOR ALL B-STN'S WITHIN THE BOX - - IF(AILEF .GT. BSTNI) GO TO 555 !... JB++; NEXT STN - IF(AIRT .LT. BSTNI) GO TO 560 !... JUMP TO NEXT STRIP - IF(AJLO .GT. BSTNJ) GO TO 555 !... JB++; NEXT STN - IF(AJHI .LT. BSTNJ) GO TO 555 !... B-STN IS ABOVE BOX? -C ... OTHERWISE, WITHIN BOX ... SO CONTINUE ... -C -C ... CMD='COUNT'; ON FIRST CALL; FROM COUNTING-OVERLAPS SECTION -C ... ='DECRE'; ON 2ND CALL; TO DECREMENT OVERLAP-COUNTS -C OF STN-B'S NEAR THIS TOSSED STN-A -C - IF(CMD .EQ. 'DECRE') GO TO 570 !... JUMP TO DECR B-OVR - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... PERFORMS THIS PARA ONLY IF CMD='COUNT'; -C WHICH WAS CALL OVRLPUPA OUT OF COUNTING-OVERLAPS SECT - -C ...THE PART (3) LOGIC IS IN HERE AT 522 SECTION... -C ... ... IF(IPRIA - IPRIB) 533,538,534 ... - - IF(IPRIA .EQ. IPRIB) THEN -C ...EQUAL QUALITY STNS -- TEST FOR TOO CLOSE... - DI = BSTNI - STNI - DJ = BSTNJ - STNJ - DISTSQ = (DI * DI) + (DJ * DJ) - IF(DISTSQ .LE. CLOSE2) THEN - IACC = NDATX(2) - MQ = NDATY(2) - WRITE(6,630) DISTSQ, NDATX(1),CACC(1:6),NDATX(2), - 1 NDATY(1),CMQ(1:6),NDATY(2) - 630 FORMAT(1H ,'THIN_UPA::OVRLPUPA: SCRUBBED PT B FOR TOO ', - 1 'CLOSE; DISTSQ = ', E11.4, - 2 /1h ,' A= ', Z16,1X,A6,1X,Z4 - 3 '; B= ',Z16,1X,A6,1X,Z4) - GO TO 533 -C ...WHICH SCRUBS PT B FOR TOO-CLOSE STNS... - - ENDIF -C ... OTHERWISE, NOT TOO-CLOSE, SO ... - NOVRLP = NOVRLP + 1 - GO TO 555 !... JB++; - - ELSE IF(IPRIA .LT. IPRIB) THEN - GO TO 533 !... TO SCRUB PT-B - - ELSE -C ... IPRIA .GT. IPRIB, SO -C ... TOSS POINT_A, ADVANCING TO ANOTHER POINT A... - - - NDATX(IJTH) = IBSET(NDATX(IJTH),KTOSSBIT) !... TOSSED A - NDATA(IJTH,JA) = NDATX(IJTH) - NTOTTOSSD = NTOTTOSSD + 1 - - XI = STNI - XJ = STNJ - JSUB = JA - JCNT = 2 - CALL PRTOSSED(ITM,NDATY,NDATA,KEIL,JSUB,JCNT,JTM,IDIXAD, - 1 IDIXCO,ITOUT,LOPNL) - - LADVANCE = .TRUE. - GO TO 564 !... TO EXIT OUT OF OVRLPUPA - ENDIF -C . . . . . . . - - 533 CONTINUE -C ...SCRUB THIS B, THEN GO GET ANOTHER... - - - NDATY(IJTH) = IBSET(NDATY(IJTH),KTOSSBIT) !... TOSSED B - NDATA(IJTH,JBPTR) = NDATY(IJTH) - NTOTTOSSD = NTOTTOSSD + 1 - - XI = BSTNI - XJ = BSTNJ - JSUB = JBPTR - JCNT = 2 - CALL PRTOSSED(ITM,NDATY,NDATA,KEIL,JSUB,JCNT,JTM,IDIXAD, - 1 IDIXCO,ITOUT,LOPNL) - 536 CONTINUE - GO TO 555 !... JB++; - -C -C ... END OF CMD='COUNT' PARAGRAPH ... -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 570 CONTINUE -C ... COMES HERE ONLY ON CMD= 'DECRE' RUN ... -C ... FOR DECREMENTING-OVERLAPS-SPECIFIC PARAGRAPH -C -C ... POINT B IS WITHIN THE BOX ABOUT A... -C - - NLAPB = IAND(ISHFT(NDATY(IJTH),-48),MSK16B) -C ... CAN NLAPB EVER BE NEGATIVE-VALUED ???? - - IF(NLAPB .EQ. 0) GO TO 555 - -C ... ... NDPEB(1) = NDPEB(1) - 1 - NLAPB = NLAPB - 1 - - - NDATY(IJTH) = IAND(NDATY(IJTH),MSK48B) !... NDPEB(1)=0 - MQ = ISHFT(IAND(NLAPB,MSK16B),48) - NDATY(IJTH) = IOR(MQ,NDATY(IJTH)) !... NDPEB(1)=NLAPB - - NDATA(IJTH,JBPTR) = NDATY(IJTH) -C ...WHICH OVERSTORED THE OVERLAP COUNT DECREMENTED OF POINT B - GO TO 555 -C -C ... END OF DECREMENTING-OVRLAP-COUNT SPECIFIC PARA ... -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - 555 CONTINUE -C ... WHERE 555 IS ENDDO ON JBR=1,NSTRIP . . . . . . . . . -C -C ... WHEN IT FALLS THROUGH, ALL B POINTS IN THIS STRIP HAVE BEEN -C ... EXAMINED. -C - 560 CONTINUE -C ... WHERE 560 IS ENDDO ON JSTRIP=JLOS,JHIS . . . . . . . . . -C -C ... WHEN IT FALLS THROUGH 560, ALL STRIPS WITHIN RANGE OF POINT A -C ... ARE FINISHED. -C - 564 CONTINUE -C - RETURN - END - - SUBROUTINE PRTOSSED(ITM,NDATY,NDATA,KEIL,JSUB,JCNT,JTM,IDIXAD, - 1 IDIXCO,ITOUT,LOPNL) -C 23-JUL-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PRTOSSED THIN ADP DATA -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-05-07 -C -C ABSTRACT: THINNING THE ADP DATA FIELD -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-05-01 STEVE LILLY ADD DOCUMENTATION BLOCK -C 93-05-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-07-23 SHIMOMURA -- CONVERTING FROM IBM FORTRAN TO CRAY FORTRAN -C -C USAGE: CALL PRTOSSED(ITM,NDATY,NDATA,KEIL,JSUB,JCNT,JTM,IDIXAD, -C IDIXCO,ITOUT,LOPNL) -C -C INPUT ARGUMENT LIST: -C -C OUTPUT ARGUMENT LIST: -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - -C ----------------------------------------------------------------- - INTEGER MAXOBS - PARAMETER (MAXOBS=20000) - INTEGER NDATASIZ - PARAMETER (NDATASIZ=MAXOBS+1) - INTEGER LMTWRDPOB - PARAMETER (LMTWRDPOB=10) - INTEGER LMTHFWPOB - PARAMETER (LMTHFWPOB=2*LMTWRDPOB) !... =(20) - - COMMON /OBSLVLDB/NOBSDB,LVLIX,IOBS2PK - INTEGER IOBS2PK(LMTWRDPOB,NDATASIZ) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - - COMMON /WLONG0/ WLONG0 -C - integer*8 NDATA(ITM,JTM) - integer*8 NDATY(3) -C -C ... INTEGER int4b(6) -C - - INTEGER IACC - CHARACTER*8 CACC - EQUIVALENCE (IACC,CACC) - - LOGICAL LOPNL -C - DATA DISSAT /6.619/ - DATA DOTSGI /37.5/ - DATA GSCALE /26.7858/ -C -C - DATA MSKR18 /Z'0003FFFF'/ - - INTEGER MSK32B - DATA MSK32B / X'FFFFFFFF' / - INTEGER NEGSIGNEXT - DATA NEGSIGNEXT / X'FFFFFFFF00000000' / -C - DATA SCALE /1.953124E-3/ -C ...WHICH IS RECIPROCAL OF 512 TO SHIFT BINARY PT 9 BITS... -C - DATA XSHIFT /10.0/ - DATA YSHIFT /10.0/ -C - INTEGER INDADDR - INTEGER LATLON - INTEGER LAT,LON - REAL ALAT,ALONG - - INTEGER III_IFR_B,JJJ_JFR_B - LOGICAL LDONOTHING - - SAVE - - - LDONOTHING = .TRUE. - IF(LDONOTHING) THEN -C ... TRYING TO ISOLATE FAULT BY ELIMINATING POSSIBILITIES - RETURN - - ENDIF - -C ...FETCH ITM WORDS OF POINT B... -C - DO 701 I=1,ITM - NDATY(I) = NDATA(I,JSUB) - 701 CONTINUE - - indaddr = iand(ndaty(3),msk32b) - latlon = IOBS2PK(1,INDADDR) - LON = IAND(LATLON,MSK32B) - LAT = IAND(ISHFT(LATLON,-32),MSK32B) - IF(BTEST(LAT,31)) THEN - LAT = IOR(LAT,NEGSIGNEXT) - ENDIF - ALAT = FLOAT(LAT)/4096.0 - IF(BTEST(LON,31)) THEN - LON = IOR(LON,NEGSIGNEXT) - ENDIF - ALONG = FLOAT(LON)/4096.0 -C -C ... (NO BREAKOUT INTO 32-BIT GROUPS NECESSARY HERE) ... -C . . . . . . . . . . . . . . . . -C ... GET X,Y LOCATION OF STN-B ... - III_IFR_B = IAND((ISHFT(NDATY(1), -5)),MSKR18) - JJJ_JFR_B = IAND((ISHFT(NDATY(1),-23)),MSKR18) - - XI = FLOAT(III_IFR_B) * SCALE - XJ = FLOAT(JJJ_JFR_B) * SCALE - -C . . . . . . . . . . . . . . . . - 702 CONTINUE - IF(ITOUT .EQ. 7) THEN -C ... ITOUT = 7; WHICH IS TROPIC ON MERC... - GO TO 730 - ENDIF - - IF((ITOUT .NE. 12) .AND. (ITOUT .NE. 13)) THEN - - GO TO 730 - ENDIF -C ... OTHERWISE, ITOUT=12; OR ITOUT=13; GOES MAP ... - GO TO 730 - - - 730 CONTINUE - -C ... MOVE ITM WORDS INTO NDATY FOR PRINTING... - DO I=1,ITM - NDATY(I) = NDATA(I,JSUB) - ENDDO -C - - IF(.NOT. LOPNL) THEN - IACC = NDATY(2) - - WRITE(6,704) CACC(1:6),ALAT,ALONG,(NDATY(I),I=1,2) - 704 FORMAT(1X ,'TOSSED ', A6, 3X, F6.2, 3X, F7.2, - 1 2Z17.16) - - ENDIF -C - RETURN - END diff --git a/util/sorc/plotvpap.fd/titlej.f b/util/sorc/plotvpap.fd/titlej.f deleted file mode 100755 index b3af463bfc..0000000000 --- a/util/sorc/plotvpap.fd/titlej.f +++ /dev/null @@ -1,50 +0,0 @@ - SUBROUTINE TITLEJ(IPT,JPT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TITLEJ PUT CUT OFF TIME IN TITLE -C PRGMMR: LIN ORG: W/NMC412 DATE: 97-02-10 -C -C ABSTRACT: PLOTS DATA CUT OFF TIME OF ADPUPA ON 1-DOT AND 2-DOT -C N. AMERICAN CHARTS. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 88-07-25 GLORIA DENT PUT IN DOCUMENTATION BLOCK -C 89-05-01 STEVE LILLY UPDATE DOCUMENTATION BLOCK -C 93-05-03 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-02-10 LIN CONVERT SUBROUTINE TO CFT 77 -C -C USAGE: CALL TITLEJ(IPT,JPT) -C -C INPUT ARGUMENT LIST: -C IPT - THE I POSITION IN DOTS ON THE VARIAN -C JPT - THE J POSITION IN DOTS ON THE VARIAN -C -C OUTPUT ARGUMENT LIST: -C COMMON - /TIMET/NANJK(2) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - COMMON /ADJUST/ IXADJ, IYADJ -C - COMMON/TIMET/NANJK(2) -C ...COMMON TIMET IS COMMON TO MAIN(PLOTOB) AND REDADP - INTEGER IPRIOR(2) -C - XHT=1.0 - YHT=11.0 - IPRIOR(1)=0 - IPRIOR(2)=2 - IPT0 = IPT + IXADJ - JPT0 = JPT + IYADJ - IPT1=IPT0+130 -C CALL PUTLAB(IPT0,JPT0,XHT,'DATA CUT OFF ',0.0,13,IPRIOR,0) -C CALL PUTLAB(IPT1,JPT0,YHT,NANJK(1),0.0,5,IPRIOR,0) - RETURN - END diff --git a/util/sorc/plotvpap.fd/titlen.f b/util/sorc/plotvpap.fd/titlen.f deleted file mode 100755 index 2c1b3c3e90..0000000000 --- a/util/sorc/plotvpap.fd/titlen.f +++ /dev/null @@ -1,203 +0,0 @@ - SUBROUTINE TITLEN(IPT,JPT,IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TITLEN OUTPUTS LABEL FOR 1000-250MB THICKNESS. -C PRGMMR: LIN ORG: W/NMC412 DATE: 970-2-10 -C -C ABSTRACT: PLACES A DESCRIPTIVE TITLE ON THE 1000-250MB THICKNESS. -C UNPACKS THE TIMES OUT OF WORDS (1-2) OF NANJI AND BUILDS A TITLE -C FOR CALL TO PUTLAB. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-06 HENRICHSEN REPLACED ENCODE AND DECODE WITH FFA2I, -C FFI2A AND MOVCH. DOCUMENT CODE. -C 93-05-08 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-02-10 LIN CONVERT SUBROUTINE TO CFT 77 -C -C USAGE: CALL TITLEN(IPT,JPT,IERR) -C -C INPUT ARGUMENT LIST: -C IPT - I POSITION IN DOTS OF TITLE. -C JPT - J POSITION IN DOTS OF TITLE. -C COMMON - /TIMES/ NANJI(12) -C - CONTAINS YYMMDDHH IN WORDS (1-2) IN HOLLERTH. -C - CONTAINS DUMP TIME IN WORDS (5-6) IN HOLLERTH. -C -C OUTPUT ARGUMENT LIST: -C IERR - ERROR RETURN -C - =0 NORMAL RETURN -C - =1 ERROR FROM SUB DAYOWK, NO TITLE MADE. -C -C -C REMARKS: FUTHER DOCUMENTATION IS NEEDED. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ - COMMON /ADJUST/ IXADJ, IYADJ -C - COMMON /TIMES/ NANJI(12) - COMMON / DATE / NYR,NMO,NDA,NHR,CDUMP - CHARACTER*8 CDUMP - -C -C ...COMMON TIMES IS COMMON TO MAIN(PLOTOB) AND REDADP. -C - CHARACTER*8 CWORK - CHARACTER*4 LAB(7) - DATA LAB /' ',' ','HHZ ','THU ','06 A', - 1 'PR 1','989 '/ - CHARACTER*4 MONAM(12) - DATA MONAM /'JAN ','FEB ','MAR ','APR ','MAY ', - 1 'JUN ','JUL ','AUG ','SEP ','OCT ', - 2 'NOV ','DEC '/ - CHARACTER*4 IOPCIR -C??? DATA IOPCIR /Z'4D000000'/ -C DATA IOPCIR /Z'28000000'/ -C CHARACTER*4 ISRCIR -C??? DATA ISRCIR /Z'E0000000'/ -C DATA ISRCIR /Z'5C000000'/ - INTEGER IWORK(4) - CHARACTER*1 TEXT(8) - INTEGER ITEXT - EQUIVALENCE (TEXT(1),ITEXT) - INTEGER IPRIOR(2) - CHARACTER*4 IHDAYW -C -C * * * * * * * * * * * -C - IERR = 0 - IPRIOR(1) = 0 - IPRIOR(2) = 1 -C -C CONVERT TIMES TO INTEGER -C -C PRINT *,' ...IN TITLEN' -C PRINT 214, NANJI(1),NANJI(2) -C 214 FORMAT (1X, Z16,4X,Z16) -C PRINT 215, NANJI(1),NANJI(2) -C 215 FORMAT (1X, A8,12X,A8 ) -C ITEXT = NANJI(1) -C CALL ASC2INT(2,TEXT(5),IWORK(1),IERR) -C CALL ASC2INT(2,TEXT(7),IWORK(2),IERR) -C ITEXT = NANJI(2) -C CALL ASC2INT(2,TEXT(5),IWORK(3),IERR) -C CALL ASC2INT(2,TEXT(7),IWORK(4),IERR) -C CALL FFA2I(NANJI,1,2,4,IWORK,IERR) -C IYR = IWORK(1) + 1900 -C IF(IYR .LT. 1950) IYR = IYR + 100 -C IMO = IWORK(2) -C IDA = IWORK(3) -C IHR = IWORK(4) - IYR = NYR + 1900 - IF(IYR .LT. 1950) IYR = IYR + 100 - IMO = NMO - IDA = NDA - IHR = NHR - PRINT *, ' IYR=',IYR,' IMO=',IMO,' IDA=',IDA,' IHR=',IHR - - PRINT *, ' IYR=',IYR,' IMO=',IMO,' IDA=',IDA,' IHR=',IHR - CALL DAYOWK(IDA,IMO,IYR,IDAYWK,IHDAYW) - IF (IDAYWK.NE.0) GO TO 40 - IERR = 1 - GO TO 100 - 40 CONTINUE -C -C MOVE HOUR INTO BYTES 9-10 OF TITLE ARRAY -C - CALL INT2CH(IHR,CWORK,2,'L999') - LAB(3)(1:2) = CWORK(1:2) -C CALL MOVCH(2,CWORK,1,TITLE,9) -C -C MOVE DAY OF WEEK INTO BYTES 13-16 OF TITLE ARRAY -C - CALL MOVCH(4,IHDAYW,1,LAB,13) -C -C MOVE DAY OF MONTH INTO BYTES 17-18 OF TITLE ARRAY -C - CALL INT2CH(NDA,CWORK,4,'L999') - LAB(5)(1:2)=CWORK(3:4) -C CALL MOVCH(2,CWORK,1,TITLE,17) -C -C MOVE MONTH INTO BYTES 20-23 OF TITLE ARRAY -C - CALL MOVCH(4,MONAM(IMO),1,TITLE,20) -C -C CONVERT YEAR TO HOLLERTH -C -C?? CALL FFI2A(IWORK,1,4,1,IYR) - CALL INT2CH(IYR,TEXT,4,'L999') - CALL MOVCH(4,TEXT,1,LAB,24) -C -C -C MOVE YEAR INTO BYTES 24-27 OF TITLE ARRAY -C -C?? CALL MOVCH(4,IWORK,1,TITLE,24) -C CALL MOVCH(4,TEXT,1,TITLE,24) -C -C -C MOVE DUMP TIME INTO FIRST 8 BYTES OF LAB ARRAY -C -C CALL MOVCH(8,NANJ1,17,LAB,1) -C -C MOVE HOUR INTO BYTES 9-10 OF LAB ARRAY -C -C CALL MOVCH(2,NANJ1,7,LAB,9) -C -C MOVE DAY OF WEEK INTO BYTES 13-16 OF LAB ARRAY -C -CC CALL MOVCH(4,IHDAYW,1,LAB,13) -C -C MOVE DAY OF MONTH INTO BYTES 17-18 OF LAB ARRAY -C -C CALL MOVCH(2,NANJ1,5,LAB,17) -C -C MOVE MONTH INTO BYTES 20-23 OF LAB ARRAY -C -C CALL MOVCH(4,MONAM(IMO),1,LAB,20) -C -C CONVERT YEAR TO HOLLERTH -C -C?? CALL FFI2A(IWORK,1,4,1,IYR) -C CALL INT2CH(IYR,TEXT,4,'L999') -C -C MOVE YEAR INTO BYTES 24-27 OF LAB ARRAY -C -C???? CALL MOVCH(4,IWORK,1,LAB,24) -C CALL MOVCH(4,TEXT,1,LAB,24) - IPT0 = IPT + IXADJ - JPT0 = JPT + IYADJ - I = IPT + IXADJ - HEIGHT = 1.0 - CALL PUTLAB(IPT0,JPT0,HEIGHT,' SATELLITE RADIOSONDE', - 1 0.0,25,IPRIOR,1) - IPT1 = IPT0 + 12 - TEXT(1) = CHAR(92) - IPRIOR(1) = 0 - IPRIOR(2) = 2 -C .....char(92)= hex5c which is the 'star' - CALL PUTLAB(IPT1,JPT0,HEIGHT,TEXT,0.0,1,IPRIOR,1) - IPT2 = IPT1 + 120 - TEXT(1) = CHAR(40) -C .....char(40)= hex28 which is the 'open circle' - CALL PUTLAB(IPT2,JPT0,HEIGHT,IOPCIR,0.0,1,2,1) - IPT3 = I - IPT3 = IPT3 + 30 - JPT3 = JPT0 + 15 - IPRIOR(2) = 1 - CALL PUTLAB(IPT3,JPT3,HEIGHT,LAB(3),0.0,19,IPRIOR,1) - IPT4 = I - JPT4 = JPT0 + 15 - CALL PUTLAB(IPT4,JPT4,HEIGHT,'1000-250MB THICKNESS ',0.0,21, - 1 IPRIOR,1) - IPT5 = IPT4 + 210 - CALL PUTLAB(IPT5,JPT4,HEIGHT,LAB(1),0.0,8,IPRIOR,1) - IPT6 = I - JPT6 = JPT0 + 15 - CALL PUTLAB(IPT6,JPT6,HEIGHT,' NATIONAL WEATHER SERVICE',0.0,25, - 1 IPRIOR,1) -100 RETURN - END diff --git a/util/sorc/plotvpap.fd/titleo.f b/util/sorc/plotvpap.fd/titleo.f deleted file mode 100755 index e47c516cac..0000000000 --- a/util/sorc/plotvpap.fd/titleo.f +++ /dev/null @@ -1,232 +0,0 @@ - SUBROUTINE TITLEO(I,J,DHMBS,IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TITLEO PUTS TITLE ON TROPICAL ANALYSIS -C PRGMMR: LIN ORG: W/NMC412 DATE: 97-02-10 -C -C ABSTRACT: PLACES A DESCRIPTIVE TITLE ON THE TROPICAL ANALYSIS. -C UNPACKS THE TIMES OUT OF WORDS (1-2) OF NANJI AND BUILDS A TITLE -C FOR CALL TO PUTLAB. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-06 HENRICHSEN REPLACED ENCODE AND DECODE WITH FFA2I, -C FFI2A AND MOVCH. DOCUMENT CODE. -C 93-05-10 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-02-10 LIN CONVERT SUBROUTINE TO CFT 77 -C -C USAGE: CALL TITLEO(I,J,DHMBS,IERR) -C -C INPUT ARGUMENT LIST: -C I - I POSITION IN DOTS OF TITLE. -C J - J POSITION IN DOTS OF TITLE. -C DHMBS - REAL*8 WORD THAT CONTAINS THE MB LEVEL -C - DISCRIPTION. -C COMMON - /TIMES/ NANJI(12) -C - CONTAINS YYMMDDHH IN WORDS (1-2) IN HOLLERTH. -C - CONTAINS DUMP TIME IN WORDS (5-6) IN HOLLERTH. -C -C OUTPUT ARGUMENT LIST: -C IERR - ERROR RETURN -C - =0 NORMAL RETURN -C - =1 ERROR FROM SUB DAYOWK, NO TITLE MADE. -C -C -C REMARKS: -C THIS TITLER PLACES A DESCRIPTIVE TITLE ON THE TROPICAL ANALYSES. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: CRAY -C -C$$$ - COMMON /TIMES/ NANJI(12) - COMMON /ADJUST/ IXADJ, IYADJ - COMMON / DATE / NYR,NMO,NDA,NHR,CDUMP - CHARACTER*8 CDUMP - - CHARACTER*4 CSTOR -C -C -C ...COMMON TIMES IS COMMON TO MAIN(PLOTOB) AND REDADP. -C - CHARACTER*8 DHMBS -C - CHARACTER*4 AA(3) - DATA AA /3*'AAAA'/ - CHARACTER*4 TITLE(7) - DATA TITLE /' ',' ','HHZ ','THU ',' A', - 1 'PR 1','989 '/ - CHARACTER*4 MONAM(12) - DATA MONAM /'JAN ','FEB ','MAR ','APR ','MAY ', - 1 'JUN ','JUL ','AUG ','SEP ','OCT ', - 2 'NOV ','DEC '/ -C??? INTEGER IACCIR /Z4C000000/ -C??? INTEGER IOPCIR /Z4D000000/ -C??? INTEGER ISRCIR /ZE0000000/ - INTEGER IWORK(4) - INTEGER IPRIOR(2) - CHARACTER*1 TEXT(8) - CHARACTER*8 CWORK - CHARACTER*4 IHDAYW - INTEGER ITEXT - EQUIVALENCE (TEXT(1),ITEXT) -C -C * * * * * * * * * * * -C - IERR = 0 -C -C CONVERT TIMES TO INTEGER -C -C PRINT 214, NANJI(1),NANJI(2) - 214 FORMAT (1X, Z16,4X,Z16) -C PRINT 215, NANJI(1),NANJI(2) - 215 FORMAT (1X, A8,12X,A8 ) -C - ITEXT = NANJI(1) -c CALL ASC2INT(2,TEXT(5),IWORK(1),IERR) -c CALL ASC2INT(2,TEXT(7),IWORK(2),IERR) - ITEXT = NANJI(2) -c CALL ASC2INT(2,TEXT(5),IWORK(3),IERR) -c CALL ASC2INT(2,TEXT(7),IWORK(4),IERR) -C CALL FFA2I(NANJI,1,2,4,IWORK,IERR) - IYR = NYR + 1900 - IF(IYR .LT. 1950) IYR = IYR + 100 - IMO = NMO - IDA = NDA - IHR = NHR - PRINT *, ' IYR=',IYR,' IMO=',IMO,' IDA=',IDA,' IHR=',IHR - CALL DAYOWK(IDA,IMO,IYR,IDAYWK,IHDAYW) - IF (IDAYWK.NE.0) GO TO 40 - IERR = 1 - GO TO 100 - 40 CONTINUE -C -C MOVE DUMP TIME INTO FIRST 8 BYTES OF TITLE ARRAY -C -C CALL MOVCH(8,CDUMP,1 ,TITLE,1) -C -C MOVE HOUR INTO BYTES 9-10 OF TITLE ARRAY -C -C CALL INT2CH(IHR,CWORK,2,'L999') -C CALL MOVCH(2,CWORK,1,TITLE,9) - CALL BIN2CH(IHR,CSTOR,2,'A99') -C PRINT *,'TITLE ',TITLE - TITLE(3)(1:2) = CSTOR(1:2) -C PRINT *,'TITLE ',TITLE - -C -C MOVE DAY OF WEEK INTO BYTES 13-16 OF TITLE ARRAY -C - CALL MOVCH(4,IHDAYW,1,TITLE,13) -C -C MOVE DAY OF MONTH INTO BYTES 17-18 OF TITLE ARRAY -C -C CALL INT2CH(NDA,CWORK,4,'L999') - CALL BIN2CH(NDA,CWORK,2,'A99') - TITLE(5)(1:2)=CWORK(1:2) -C PRINT *,'TITLE ',TITLE -C CALL MOVCH(2,CWORK,1,TITLE,17) -C -C MOVE MONTH INTO BYTES 20-23 OF TITLE ARRAY -C - CALL MOVCH(4,MONAM(IMO),1,TITLE,20) -C -C CONVERT YEAR TO HOLLERTH -C -C?? CALL FFI2A(IWORK,1,4,1,IYR) -C CALL INT2CH(IYR,TEXT,4,'L999') - CALL BIN2CH(IYR,CWORK,4,'A99') -C -C -C MOVE YEAR INTO BYTES 24-27 OF TITLE ARRAY -C -C?? CALL MOVCH(4,IWORK,1,TITLE,24) - CALL MOVCH(4,CWORK,1,TITLE,24) - PRINT *,' TITLE ',TITLE -C - IXL = I + IXADJ - JXL = J + IYADJ - IBORD = IXL + 10 - JBORD = JXL - 2 - IPRIOR(1) = 0 - IPRIOR(2) = 2 - ITAG = 0 -C - HT = 3.0 - ANGLE = 90.0 - NCHAR = 6 - CALL PUTLAB(IXL,JXL,HT,DHMBS,ANGLE,NCHAR,IPRIOR,ITAG) -C - JXL = JXL + 60 - NCHAR = 9 - CALL PUTLAB(IXL,JXL,HT,'ANALYSIS ',ANGLE,NCHAR,IPRIOR,ITAG) - JXL = JXL + 90 - NCHAR = 5 - CALL PUTLAB(IXL,JXL,HT,TITLE(1),ANGLE,NCHAR,IPRIOR,ITAG) - IXL = IXL + 15 - JXL = JXL - 145 - NCHAR = 19 - CALL PUTLAB(IXL,JXL,HT,TITLE(3),ANGLE,NCHAR,IPRIOR,ITAG) - IXL = IXL + 15 - JXL = JXL + 29 - HT = 1.0 - NCHAR = 1 - TEXT(1) = CHAR(60) -C..... IT IS A SQUARE - CALL PUTLAB(IXL,JXL,HT, TEXT,0.0,NCHAR,IPRIOR,ITAG) - JXL = JXL + 12 - HT = 5.0 - NCHAR = 8 - CALL PUTLAB(IXL,JXL,HT,'AIRCRAFT',ANGLE,NCHAR,IPRIOR,ITAG) - JXL = JXL + 54 - HT = 1.0 - NCHAR = 1 - TEXT(1) = CHAR(92) -C..... IT IS A STAR - CALL PUTLAB(IXL,JXL,HT, TEXT,0.0,NCHAR,IPRIOR,ITAG) - JXL = JXL + 12 - HT = 5.0 - NCHAR = 9 - CALL PUTLAB(IXL,JXL,HT,'SATELLITE',ANGLE,NCHAR,IPRIOR,ITAG) - IXL = IXL + 11 - JXL = JXL - 48 - HT = 1.0 - NCHAR = 1 - TEXT(1) = CHAR(40) -C..... IT IS AN OPEN CIRCLE - CALL PUTLAB(IXL,JXL,HT, TEXT,0.0,NCHAR,IPRIOR,ITAG) - JXL = JXL + 12 - HT = 5.0 - NCHAR = 10 - CALL PUTLAB(IXL,JXL,HT,'RADIOSONDE',ANGLE,NCHAR,IPRIOR,ITAG) - IXL = IXL + 11 - JXL = JXL - 54 - NCHAR = 26 - CALL PUTLAB(IXL,JXL,HT,'WIND WITH NO STN CIRCLE IS', - X ANGLE,NCHAR,IPRIOR,ITAG) - IXL = IXL + 11 - JXL = JXL + 6 - NCHAR = 24 - CALL PUTLAB(IXL,JXL,HT,'ANALYZED GRIDPOINT VALUE', - X ANGLE,NCHAR,IPRIOR,ITAG) -C -C ...BORDER... -C - HT = 16.0 - ANGLE = 0.0 - NCHAR = 5 - IXL = IBORD - 27 - JXL = JBORD - 10 - CALL PUTLAB(IXL,JXL,HT,AA(1),ANGLE,NCHAR,IPRIOR,ITAG) - JXL = JXL + 220 - CALL PUTLAB(IXL,JXL,HT,AA(1),ANGLE,NCHAR,IPRIOR,ITAG) - HT = 17.0 - NCHAR = 11 - JXL = JBORD - 10 - CALL PUTLAB(IXL,JXL,HT,AA(1),ANGLE,NCHAR,IPRIOR,ITAG) - IXL = IXL + 95 - CALL PUTLAB(IXL,JXL,HT,AA(1),ANGLE,NCHAR,IPRIOR,ITAG) -C - 100 RETURN - END diff --git a/util/sorc/plotvpap.fd/titles.f b/util/sorc/plotvpap.fd/titles.f deleted file mode 100755 index 68770a82e4..0000000000 --- a/util/sorc/plotvpap.fd/titles.f +++ /dev/null @@ -1,60 +0,0 @@ - SUBROUTINE TITLES -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TITLES LABELS THE LAND MASSES ON S.H. 1/40MIL MP -C PRGMMR: LIN ORG: W/NMC412 DATE: 97-02-10 -C -C ABSTRACT: LABELS THE CONTINENTS FOR THE STANDARD 1/40 MILLIOM POLAR -C STEREOGRAPHIC PROJECTION OF THE S. HEMISPHERE. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-06 HENRICHSEN DOCUMENT -C 93-06-10 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-02-10 LIN CONVERT SUBROUTINE TO CFT 77 -C -C USAGE: CALL TITLES -C -C -C REMARKS: CALLS PUTLAB TO LABEL THE LAND MASSES IN S.H. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C -C THIS SUBROUTINE LABELS THE CONTINENTS FOR THE STANDARD -C 1 : 40M POLAR STEREOGRAPHIC PROJECTION OF THE S. HEMISPHERE. -C - COMMON /ADJUST/ IXADJ, IYADJ -C - INTEGER IPRIOR(2) -C - IPT = 340+IXADJ - JPT = 325+IYADJ - HEIGHT = 11.0 - ANGLE = 0.0 - NCHAR = 17 - IPRIOR(1) = 0 - IPRIOR(2) = 0 - ITAG = 0 - CALL PUTLAB(IPT,JPT,HEIGHT,'A#U#S#T#R#A#L#I#A',ANGLE,NCHAR, - X IPRIOR,ITAG) - IPT = 1100+IXADJ - JPT = 1700+IYADJ - NCHAR = 25 - CALL PUTLAB(IPT,JPT,HEIGHT,'S#O#U#T#H###A#M#E#R#I#C#A', - X ANGLE,NCHAR,IPRIOR,ITAG) - IPT = 1550+IXADJ - JPT = 755+IYADJ - NCHAR = 11 - CALL PUTLAB(IPT,JPT,HEIGHT,'A#F#R#I#C#A',ANGLE,NCHAR, - X IPRIOR,ITAG) - IPT = 750+IXADJ - JPT = 870+IYADJ - NCHAR = 19 - CALL PUTLAB(IPT,JPT,HEIGHT,'A#N#T#A#R#C#T#I#C#A',ANGLE, - X NCHAR,IPRIOR,ITAG) - RETURN - END diff --git a/util/sorc/plotvpap.fd/titlhc.f b/util/sorc/plotvpap.fd/titlhc.f deleted file mode 100755 index cf1d34728d..0000000000 --- a/util/sorc/plotvpap.fd/titlhc.f +++ /dev/null @@ -1,49 +0,0 @@ - SUBROUTINE TITLHC(IPT,JPT,ILVLT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TITLHC PUT HGT CHANGE LEGEND -C PRGMMR: LIN ORG: W/NMC412 DATE: 97-02-11 -C -C ABSTRACT: PLOTS HGT CHANGE LEGEND ON ALL THE MAPS -C -C PROGRAM HISTORY LOG: -C 97-02-10 ORIGINAL AUTHOR LUKE LIN -C -C USAGE: CALL TITLHC(IPT,JPT) -C -C INPUT ARGUMENT LIST: -C IPT - THE I POSITION IN DOTS ON THE VARIAN -C JPT - THE J POSITION IN DOTS ON THE VARIAN -C -C OUTPUT ARGUMENT LIST: -C COMMON - /TIMET/NANJK(2) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - COMMON /ADJUST/ IXADJ, IYADJ -C - COMMON/TIMET/NANJK(2) -C ...COMMON TIMET IS COMMON TO MAIN(PLOTOB) AND REDADP - INTEGER IPRIOR(2) - INTEGER ILVLT -C - XHT=1.0 - YHT=11.0 - IPRIOR(1)=0 - IPRIOR(2)=2 - IPT0 = IPT + IXADJ - JPT0 = JPT + IYADJ - IF (ILVLT.LT.5) THEN - CALL PUTLAB(IPT0,JPT0,XHT,'HGT CHANGE IN METERS',0.0,20,IPRIOR,0) - ELSE - CALL PUTLAB(IPT0,JPT0,XHT,'HGT CHANGE IN DECAMETERS',0.0, - 1 24,IPRIOR,0) - ENDIF - RETURN - END diff --git a/util/sorc/plotvpap.fd/truijx.f b/util/sorc/plotvpap.fd/truijx.f deleted file mode 100755 index 94012324e7..0000000000 --- a/util/sorc/plotvpap.fd/truijx.f +++ /dev/null @@ -1,162 +0,0 @@ - SUBROUTINE TRUIJX(ALAT,ALONG,XI,XJ,KEIL,IRET_TIJ) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TRUIJX COMPUTE I/J GRID COORDS FROM LAT/LONG -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 96-09-23 -C -C ABSTRACT: CONVERT A LOCATION FROM GIVEN LAT/LONG COORDINATES -C TO GRID I/J COORDINATES. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR(S)'S NAME(S) HERE -C 91-10-25 LILLY ADDED DOCBLOCK -C 96-09-23 SHIMOMURA: CONVERTED 91-10-23 VERSION TO CRAY -C SINCE I ADDED RETURN CODE TO CALL SEQUENCE, -C I CHANGED THE NAME OF THIS VERSION TO "TRUIJX" -C -C USAGE: CALL TRUIJX(ALAT, ALONG, XI, XJ, KEIL, IRET_TIJ) -C INPUT ARGUMENT LIST: -C ALAT - REAL LATITUDE IN DEGREES NORTH -C ALONG - REAL LONGITUDE IN DEGREES WEST (HOW IS EAST PUT?) -C KEIL - INT CODE FOR THE GRID BEING USED -C -C OUTPUT ARGUMENT LIST: -C XI - REAL GRID I-COORDINATE -C XJ - REAL GRID J-COORDINATE -C IRET_TIJ - RETURN CODE -C = 0; NORMAL RETURN -C =170; GIVEN ARG:KEIL IS OUT OF RANGE -C -C OUTPUT FILES: -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: -C CAUTION: 96-09-23/DSS -- I CHANGED CALL SEQUENCE TO ADD A RETURN -C CODE, SINCE THE OLD VERSION HAD A STOP. -C -C CAUTION: 96-09-23/DSS -- I HAND-COPIED MODS FROM A VERSION FOUND -C IN PLOT250V PACKAGE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C ...TO COMPUTE I/J FROM GIVEN LAT/LONG... -C ... ON THE GRID SPECIFIED BY KEIL... -C -C ...KEIL=1 FOR LFM GRID -C ...KEIL=2 FOR STD NMC GRID -C ...KEIL=3 FOR SRN HEMI 381KM GRID INT., 80W IS VERT. AT TOP, -C SRN HEMI LATS HAVE NEG. VALUES -C ...KEIL=4 (USED FOR PEATMOS POP) 190.5 KM GRID LENGTH, -C ...KEIL=5 FOR SFC US 1/10M ADDED 23 FEB 73 -C ...KEIL=6 FOR LARGER AREA SFC US 1/10M ADDED 12 JUNE 75 ... -C ...KEIL=7 FOR LARGE NH 1/20M 105W FRONT 2/3 20 OCT 1975 ... -C ...KEIL=8 FOR LARGE NH 1/20M BACK PANEL SIDEWAYS 20 OCT 75 ... -C ...KEIL=9 FOR 65*65 N.HEMI 1/40M W/ 105W VERTICAL ... JAN 16, 76 -C ...KEIL=10 FOR 47*51 N.HEMI 1/40M W/ 105W VERTICAL ... JAN 16, 76 -C ...KEIL=11 FOR 51*51 LFM SUBSET OF 1/40M W/ 105W VERTICAL 1/16/76 -C ...KEIL=12 FOR 53*57 FULL LFM GRID W/ 105W VERTICAL 7/22/76 -C ...KEIL=13 FOR 43*31 LFM SUBSET W/ 105W VERT 7/23/76 -C ...KEIL=14 FOR 65*65 STD NMC GRID NHEMI W/80W VERT 7/7/77 -C ...KEIL=15 FOR 55*42 NA AFOS W/105W VERTICAL MAR 16,1981 -C ...KEIL=16 FOR LARGE SH 1/20M W/ 60W VERTICAL APR 30, 1981 -C ...KEIL=17 FOR 87*71 NH 1/20M W/105W VERTICAL JUN 9, 1982 -C ...KEIL=18 FOR 48*44 NH 1/20M W/102.5W VERT (DLY WEA MAP) 9/26/82 - -C ...RE ASSUMES 6371.2 KM EARTH RADIUS ... - - INTEGER MXKEIL - PARAMETER (MXKEIL=18) -C ...WHERE KEIL IS MAX NO. OF GRIDS THIS S/R WORKS FOR - - REAL XIP(MXKEIL) - REAL XJP(MXKEIL) - REAL RE(MXKEIL) - REAL ADDLNG(MXKEIL) - -C ... KEIL =1 =2 =3 =4 -C ... LFM STD NMC SRN PEATMOS - DATA XIP / 24.0, 24.0, 24.0, 24.0, - X -35.0,-11.0,55.0,-15.0, - Y 33.0, 24.0,26.0, 27.0, 17.0, - Z 33.0, 27.0, 55.0, 40.0, 21.0 / - - DATA XJP / 46.0, 26.0, 26.0, 46.0, - X 2*47.0, 51.0, 55.0, - Y 33.0, 26.0,46.0, 49.0, 46.0, - Z 33.0, 46.0, 65.0, 73.0, 48.0 / - - DATA RE / 62.40866, 31.20433, 31.20433, 62.40866, - X 2*124.81733, 2*62.40866, - Y 2*31.20433, 3*62.40866, 31.20433, 2*62.40866, - Z 93.61299, 62.40866 / - - DATA ADDLNG / 75.0, 100.0, 80.0, 82.0, - X -15.0,-15.0,75.0,165.0, - Y 5*75.0, - Z 100.0, 75.0, 60.0, 75.0, 77.5 / - -C ... VERT MERIDIAN... 105W 80W 100E 98W ... -C ...KEIL=5 AND =6 HAVE VERT MERIDIAN AT 195 W ... -C ...KEIL=7 VERT MERID IS 105W, KEIL=8 VERT MERID IS 15W ... -C ...KEIL=9,10,11,12,13 HAVE VERT MERIDIAN AT 105W -C ...KEIL=14 80W VERT -C ...KEIL=15 105W VERTICAL -C ...KEIL=16 60W VERTICAL -C ...KEIL=17 105W VERTICAL -C ...KEIL=18 102.5W VERT - - - REAL CONVT - DATA CONVT /1.745329E-02/ - -C . . . . . . . . . . . - REAL ALAT - REAL ALONG - REAL XI - REAL XJ - INTEGER KEIL - INTEGER IRET_TIJ -C . . . . . . . . . . . - REAL XLAT - REAL WLONG - SAVE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - IRET_TIJ = 0 - XI = 0.0 - XJ = 0.0 - - KEY = KEIL - IF((KEY .LE. 0) .OR. (KEY .GT. MXKEIL)) THEN -C ...COMES HERE IF GIVEN KEIL WAS OUT OF ALLOWABLE RANGE - WRITE(6,FMT='(1H ,/1H ,''TRUIJX: ERROR. ARGUMENT "KEIL"'', - 1 '' OUT-OF-RANGE. KEIL= HEX '', Z8.8)') - A KEIL - IRET_TIJ = 170 - GO TO 999 - ENDIF - -C ...OTHERWISE, KEIL IS W/I RANGE - IF((KEY .EQ. 3) .OR. (KEY .EQ. 16)) THEN -C ...FALLS THRU TO HERE FOR SRN HEMI ONLY... - XLAT = -ALAT * CONVT - WLONG = 360.0 - ALONG - WLONG = (WLONG + ADDLNG(KEY)) * CONVT - - ELSE - XLAT = ALAT * CONVT - WLONG = (ALONG + ADDLNG(KEY)) * CONVT - - ENDIF - - R = (RE(KEY) * COS(XLAT)) / (1.0 + SIN(XLAT)) - XI = XIP(KEY) + R*SIN(WLONG) - XJ = XJP(KEY) + R*COS(WLONG) - GO TO 999 - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/tstbnd.f b/util/sorc/plotvpap.fd/tstbnd.f deleted file mode 100755 index 69a62b3a77..0000000000 --- a/util/sorc/plotvpap.fd/tstbnd.f +++ /dev/null @@ -1,599 +0,0 @@ - SUBROUTINE TSTBND( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,IRET_WNB) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: TSTBND MAKES SURE STATION IS ON MAP -C PRGMMR: LARRY SAGERAR ORG: NP12 DATE:2006-03-30 -C -C ABSTRACT: MAKES SURE STATION IS ON GRAPHIC. IF NOT, STATION IS -C FLAGGED BY A NON ZERO RETURN CODE AND IS DROPPED. -C -C PROGRAM HISTORY LOG: -C 2006-03-30 LARRY SAGER CONVERTED SUBROUTINE WNDBRK TO TSTBND -C -C USAGE: CALL TSTBND( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,IRET_WNB ) -C INPUT ARGUMENT LIST: -C ISTN - ICOORDINATE OF WIND PLOT IN DOTS. -C JSTN - JCOORDINATE OF WIND PLOT IN DOTS. -C KDDGD - WIND DIRECTION TO NEAREST 10 DEGREES. -C ISPEED - WIND SPEED IN KNOTS. -C IOPTN - FLAG TO DETERMINE IF TEMPERATURE AND DEW POINT -C - PLOTS ARE IN THE WAY OF PLOTTING WIND FLAGS. -C -C OUTPUT ARGUMENT LIST: -C NWOK - COUNTER OF NUMBER OF LABELS ADDED TO LABEL ARRAY. -C IRET_WNB - RETURN CODE -C = 0; NORMAL RETURN -C = -1; PARITY ERROR WHILE TRYING TO OUTPUT LABEL ARRAY; -C USER SHOULD ABORT ON THIS SERIOUS I/O ERROR. -C = -2; PUTL_WR::HAFPAKRA: FAILED TO HALF-PACK LABEL ARRAY -C SERIOUS ERROR. USER SHOULD ABORT. LOGIC ERR. -C -C = 1; TSTBND: WARNING ... BAD IDDGD -C = 2; TSTBND: WARNING ... BAD ISPEED -C = 3; TSTBND: WARNING ... BAD CUTOFF VALUE -C = 4; TSTBND: WARNING ... OUT-OF-RANGE FLAG COUNT -C = 5; TSTBND: WARNING ... LOCATION OFF MAP -C -C INPUT FILES: -C -C OUTPUT FILES: -C -C REMARKS: BLOCK DATA WNDCON IS USED BY THIS SUBR. -C CALLS SUBR PUTL_WR(), WHICH CALLS SUBR HAFPAKRA() -C CAUTION: CALL SEQ. CHANGE WITH ADDED IRET_WNB -C -C ATTRIBUTES: -C LANGUAGE: F90. -C MACHINE: IBM -C -C$$$ -C -C - - INTEGER LBLTAP - PARAMETER (LBLTAP=55) - - INTEGER LMAX - PARAMETER (LMAX=1024) - INTEGER LMAX2 - PARAMETER (LMAX2=2*LMAX) - - COMMON /KPLOT/ LABEL,LABIX,NOBUF,IDRA(50) - INTEGER LABEL(2,LMAX) - INTEGER JARRAY(LMAX2) - EQUIVALENCE (JARRAY(1),LABEL(1,1)) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - EXTERNAL WNDCON !... FOR COMMON /WINCON/ -C !... DEFINED IN BLOCK DATA WNDCON - COMMON /WINCON/ KWNDFL(5,36),KWNDDV(5,36),KWNDBA(10,9) - INTEGER KWNDFL - INTEGER KWNDDV - INTEGER KWNDBA - -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C USAGE: CALL WNDBRK( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,iret_wnb ) -C INPUT ARGUMENT LIST: - INTEGER ISTN,JSTN -C !... I-,J-COORDINATES OF WIND PLOT IN DOTS. - INTEGER KDDGD -C !... WIND DIRECTION TO NEAREST 10 DEGREES. - INTEGER ISPEED -C !... WIND SPEED IN KNOTS. - INTEGER IOPTN -C !... FLAG TO DETERMINE IF TEMPERATURE AND DEW- -C !... POINT PLOTS ARE IN THE WAY OF PLOTTING -C !... WIND FLAGS. -C -C OUTPUT ARGUMENT LIST: - INTEGER NWOK -C !... COUNTER OF NUMBER OF LABELS ADDED TO -C !... LABEL ARRAY. - INTEGER IRET_WNB -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C - INTEGER IARWUP -C ...WHICH IS 'ARROW-UP' CHAR FONT CHANGE BIT... - DATA IARWUP / X'00010000' / - - INTEGER IPRBA - DATA IPRBA / X'00006000' / -C ...FOR WIND BARBS/STAFF ... PRIORITY = 3, NO 'ARROW-UP' BIT... - - INTEGER IPRFL(2) - DATA IPRFL /X'00014000',X'00018000'/ -C ... WHERE IPRFL IS PRIORITY ASSIGNED TO WIND-FLAG FONT .... -C ... WHICH ARE 'ARROW UP' BIT AND PRIORITY = 2 AND 4 -C ... WHERE IPRFL ALSO INCLUDES ARROW-UP FOR WIND-FLAG FONT ... - - - INTEGER IRUBA - DATA IRUBA / X'01200000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=01 FOR ERASER UNDER FLAG - - INTEGER IRUBB - DATA IRUBB / X'14010000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=20 FOR ERASER UNDER BARB - - INTEGER IRUBC - DATA IRUBC / X'03200000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=03 FOR ERASER UNDER FLAG - - INTEGER IXXK - DATA IXXK / 5 / -C ...WHICH IS THE XXTH LOOK TABLE BEFORE THE WIND-FLAG FONTS - - INTEGER ICORN - DATA ICORN /0/ - - integer ICORNFLAG(2) - DATA ICORNFLAG / -1, 0 / -C ... WHERE ICORNFLAG(IHEMIS) MOVES NRN HEMI WIND-FLAG LEFTWARD -1 -C ... BUT SRN HEMI WIND-FLAG NEEDS NO ADJ - - INTEGER ILLIM - DATA ILLIM / 10 / - INTEGER IRLIM - DATA IRLIM / 4000 / - INTEGER JLLIM - DATA JLLIM / 1 / - INTEGER JTLIM - DATA JTLIM / 7020 / - -C ... TO CONVERT WIND DIRECTION INT DD INTO AN ASCII CHAR -C ... WHICH WILL GET THE CORRECT BIT-MAPPED CHARAC ... -C ... TO CONVERT A BINARY INT X'01' ==> 'A' -C X'1A' ==> 'Z' -C X'1B' ==> '0' -C X'24' ==> '9' - CHARACTER*1 CTTBL(36) -C ... 01 02 03 04 05 06 07 08 09 ... - DATA CTTBL / 'A','B','C','D','E','F','G','H','I', - 1 'J','K','L','M','N','O','P','Q','R', - 2 'S','T','U','V','W','X','Y','Z','0', - 3 '1','2','3','4','5','6','7','8','9' / -C ... 28 29 30 31 32 33 34 35 36 ... - - INTEGER KDOLR(4) - DATA KDOLR /X'00000000',X'00000000', - X X'00000000',X'00000000'/ -C ...WHICH IS NULL IN 4 BYTE POSITIONS... - - INTEGER KDEWPT - DATA KDEWPT / X'00000008' / -C ...DEW POINT PLOT INFO BIT... - INTEGER KTEMP - DATA KTEMP / X'00000004' / -C ...TEMP PLOT INFO BIT... - - INTEGER KDR220 - DATA KDR220 /22/ - INTEGER KDR260 - DATA KDR260 /26/ - INTEGER KDR300 - DATA KDR300 /30/ -C ...WIND DIR LIMITS OF WIND OVERPLOTTED BY DEW PT, TEMP... - - - INTEGER LGAPK(5,8) - DATA LGAPK / -7,-8,-11,-8,X'09410000', - 1 -9,-7,-11,-8,X'09420000', - 2 -10,-6,-11,-8,X'09430000', - 3 -11,-4,-11,-5,X'07440000', - 4 -11,-2,-11,-5,X'07450000', - 5 -11, 0,-11, 0,X'07460000', - 6 -11, 2,-11, 0,X'07470000', - 7 -10, 4,-11, 0,X'07480000'/ -C ...PENTAPACKED /IGAP,JGAP ORIGIN DISPLACEMENTS FOR OTHER WND PART/ -C ...DI,DJ TO LL FOR GAP FILLER LINE CHAR/LABEL TEXT FOR GAP FILLER/ - - - INTEGER ISDIF(4) - DATA ISDIF / 6, 12, 9, 12 / -C ... DISPLACEMENTS FOR REVERSED WIND FLAGS USED IN SOUTHERN -C ... HEMISPHERE IN ORDER BY FLAG TYPE ... - - INTEGER LSDI(36) - DATA LSDI / +2, +1, +1, +3, +5,+09, +7, +5, +5, - 1 +4, +5, +6,+12,+15,+18,+21,+20,+20, - 2 +20,+21,+18,+15,+14, +7, +6, +6, +5, - 3 +6, +8, +9, +6, +3, +1, +1, +3, +2 / -C -C ... FURTHER DISPLACEMENTS TO ADJUST SOUTHERN HEMISPHERE WIND FLAGS -C - - INTEGER MSK16B - DATA MSK16B / X'0000FFFF' / - - INTEGER MSKI - DATA MSKI / X'00001FFF' / -C ...WHERE MSKI ALLOWS 13 BITS ... - - INTEGER MSKJ - DATA MSKJ / X'00007FFF' / -C ...WHERE MSKJ ALLOWS FOR 15 BITS... - - INTEGER MXKUT - DATA MXKUT / 120 / -C - LOGICAL LPACK_RAQ - LOGICAL LCLEAN_AFTQ - - INTEGER IACC,MQ -C - INTEGER KUTOFF - - INTEGER LABWOK(2,15) - - INTEGER IJWRD_ERAB - INTEGER ITXTWRD_ERAB - -C -C--------------------------------------------------------------------- - SAVE -C - NWOK = 0 - IRET_WNB = 0 - -C ... SET NORTHERN HEMISPHERE FLAG = 1 - IHEMIS = 1 !... NORTHERN HEMISPHERE MODE - IDDGD = KDDGD -C ... IT IS ASSUMED THAT A ZERO OCCURS FOR WIND DIRECTION ONLY -C ... IN THE NORTHERN HEMISPHERE (I.E. IDDGD = +0) - IF ( IDDGD .EQ. 0 ) IDDGD = 36 - IF ( IDDGD .GE. 0 ) GO TO 100 - -C ... OTHERWISE, IDDGD .LT. 0; WHICH FLAGGED SOUTHERN HEMI MODE -C ... SET SOUTHERN HEMISPHERE FLAG = 2 - IHEMIS = 2 !... SOUTHERN HEMISPHERE MODE - IDDGD = IABS(IDDGD) -C ... SAVE FOR POSITIONING FLAGS - LDDSH = IDDGD -C ... IDDSH POINTS TO VECTOR WHICH WHEN REVERSED WILL BE THE -C ... SOUTHERN HEMISPHERE VECTOR FOR IDDGD ... - IDDSH = 36 - IDDGD - IF ( IDDSH .EQ. 0 ) IDDSH = 36 - 100 CONTINUE - IF(IDDGD .GT. 36) GO TO 911 - IF(ISPEED .LT. 0) GO TO 922 - IF(ISPEED .GT. 300) GO TO 922 -C ...STEP (1)... TO DETERMINE NO. OF FLAGS AND NO. OF BARBS...... - FFIVES = (FLOAT(ISPEED))/5.0 - IFIVES = FFIVES + 0.5 -C ...WHICH ROUNDS TO NEAREST 5-KNOT-UNIT AND FIXES - NFLAGS = IFIVES/10 - NBARBS = MOD(IFIVES,10) -C ...WHERE NO. OF BARBS RANGES FROM 0 TO 9 (FOR NONE TO 45K) -C ...STEP(1B) ... TEST FOR MOVING WIND VECTOR PLOT FOR OVERPLOT - IGAP = 0 - JGAP = 0 - IF(NBARBS .LE. 2) GO TO 177 -C -C ... IF WIND DIR LESS THAN 220 DEGREES, THEN SKIP TO 177 ... -C - IF(IDDGD .LT. KDR220) GO TO 177 -C -C ... IF WIND DIR LESS THAN 260 DEGREES, THEN SKIP TO 140 ... -C ... AND CHECK TO SEE IF THE DEW POINT PLOT FLAG IS SET. -C - IF(IDDGD .LT. KDR260) GO TO 140 -C -C ...IF WIND DIR LESS THAN 300 DEGREES, THEN SKIP TO 144 ... -C ... AND CHECK TO SEE IF THE TEMP PLOT FLAG IS SET. -C - IF(IDDGD .LT. KDR300) GO TO 144 - GO TO 177 - - 140 CONTINUE -C ... GET DEW POINT PLOT FLAG ... - IAC3 = IAND(IOPTN,KDEWPT) - IF(IAC3)150,177,150 - - 144 CONTINUE -C ... GET TEMP PLOT FLAG. - IAC4 = IAND(IOPTN,KTEMP) - IF(IAC4) 150,177,150 - 150 CONTINUE -C ...COMES HERE IF WIND BARBS MUST BE MOVED WESTWARD TO NOT OVERPLOT - LLX = IDDGD - KDR220 + 1 - IGAP = LGAPK(1,LLX) - JGAP = LGAPK(2,LLX) - ILL = LGAPK(3,LLX) + ISTN - JLL = LGAPK(4,LLX) + JSTN - ITEXT = LGAPK(5,LLX) - ILL = ILL + ICORN - - IF(ILL .LT. ILLIM) GO TO 955 - IF(ILL .GE. IRLIM) GO TO 955 - IF(JLL .LT. JLLIM) GO TO 955 - IF(JLL .GE. JTLIM) GO TO 955 - - JLL = IAND(JLL,MSKJ) - ILL = IAND(ILL,MSKI) - JLS = ISHFT(JLL,17) - IJLL = IOR(JLS,ILL) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR(IJLL,IPRFL(1)) - LABWOK(2,NWOK) = ITEXT - - 177 CONTINUE - -C ....STEP (2) ... TO GET CUT-OFF CONSTANT FOR BARBS... - NBONE = NBARBS + 1 - IF(IHEMIS .EQ. 2) IDDGD = IDDSH - IHOLD = MOD(IDDGD,9) - IHOLD = IHOLD + 1 - KUTOFF = KWNDBA(NBONE,IHOLD) - IF(KUTOFF .LT. 0) GO TO 933 - IF(KUTOFF .GT. MXKUT) GO TO 933 - IF(IHEMIS .EQ. 2) KUTOFF = -KUTOFF - IACC = IAND(IDDGD,MSK16B) - IACC = ISHFT(IACC,16) - MQ = IAND(KUTOFF,MSK16B) - IACC = IOR(IACC,MQ) - ITEXT = IACC -C ...STAFF INFO PACKED WITH DD IN FIRST 2 BYTES, KUTOFF RIGHT-JUSTIF - -C ...STEP (3)... TO POSITION STAFF WITH LOWER LEFT CORNER.... -C ...KWNDDV FORMAT ... ISTART,JSTART,KWIDTH,KHGT,MXV... - ISTART = KWNDDV(1,IDDGD) - JSTART = KWNDDV(2,IDDGD) - KWIDTH = KWNDDV(3,IDDGD) - IF ( IHEMIS .EQ. 2 ) ISTART = KWIDTH - ISTART - ILL = ISTN - KWIDTH + ISTART - ILL = ILL + IGAP + ICORN - IF(ILL .LT. ILLIM) GO TO 955 - IF(ILL .GE. IRLIM) GO TO 955 - - JLL = JSTN - JSTART + 1 - JLL = JLL + JGAP - IF(JLL .LT. JLLIM) GO TO 955 - IF(JLL .GE. JTLIM) GO TO 955 - - JLL = IAND(JLL,MSKJ) - ILL = IAND(ILL,MSKI) - JLS = ISHFT(JLL,17) - IJLL = IOR(JLS,ILL) -C NWOK = NWOK + 1 -C LABWOK(1,NWOK) = IOR(IJLL,IPRBA) !... there goes BARBS -C LABWOK(2,NWOK) = ITEXT - -C ... insert the eraser under the BARBs ... - IJWRD_ERAB = 0 - IJWRD_ERAB = IOR(IJLL,IARWUP) - ITXTWRD_ERAB = IRUBB -C NWOK = NWOK + 1 -C LABWOK(1,NWOK) = IJWRD_ERAB !... ERASER UNDER BARB -C LABWOK(2,NWOK) = ITXTWRD_ERAB -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IF(NFLAGS .LE. 0) GO TO 500 - -C ...OTHERWISE, WE HAVE SOME FLAGS TO POSITION... -C STEP (4)... TO GET FLAG INFO FOR PRTITL -C ...DI TO LL,DJ TO LL,DI TO NEXT FLAG, DJ TO NEXT, FLAG TYPE. - ITYPFL = KWNDFL(5,IDDGD) - ISDI = KWNDFL(1,IDDGD) - IF(IHEMIS .EQ. 2) THEN - ISDI = KWNDFL(1,LDDSH) - ISDIF(ITYPFL) + LSDI(LDDSH) - ENDIF - - ILLFL = ISTN + ISDI - ILLFL = ILLFL + IGAP + ICORN - ILLFL = ILLFL + ICORNFLAG(IHEMIS) - JLLFL = JSTN + KWNDFL(2,IDDGD) - JLLFL = JLLFL + JGAP - IF(ILLFL .LT. ILLIM) GO TO 955 - IF(ILLFL .GE. IRLIM) GO TO 955 - IF(JLLFL .LT. JLLIM) GO TO 955 - IF(JLLFL .GE. JTLIM) GO TO 955 - JLLFL = IAND( JLLFL,MSKJ) - ILLFL = IAND( ILLFL,MSKI) - JLS = ISHFT(JLLFL,17) - IJLFL = IOR(JLS,ILLFL) - IPOSN = IOR(IJLFL,IPRFL(IHEMIS)) - -C ...STEP (5)... TO GET TEXT FOR FLAG - ICLASS = IXXK + KWNDFL(5,IDDGD) -C ...WHERE ICLASS IS USED (R1) AFTER ARROW TO POINT TO TABLE IN PRT - -C ================================================================== - IACC = ISHFT(ICLASS,24) - - MQ = MOVA2I(CTTBL(IDDGD)) !... TRANSLATE DD-BINARY TO ASCII CHAR - IAC2 = ISHFT(MQ,16) !... MOVE TO 2ND BYTE FROM HI-END OF I*2 - IACC = IOR(IACC,IAC2) - ITEXT = IOR(IACC,KDOLR(3)) -C ================================================================== -C NWOK = NWOK + 1 -C LABWOK(1,NWOK) = IPOSN -C LABWOK(2,NWOK) = ITEXT - -C ...TO ERASE UNDER 50K FLAG - IAPCT = IRUBA - ILLER = ILLFL - JLLER = JLLFL - IJLER = IJLFL - -C ... GO TO (415,419,426,424),ITYPFL - IF(ITYPFL .EQ. 1) THEN - ILLER = ILLFL - 2 - IF(ILLER .LE. 0) THEN - ILLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - - ELSE IF(ITYPFL .EQ. 2) THEN - IAPCT = IRUBC - JLLER = JLLFL - 2 - IF(JLLER .LE. 0) THEN - JLLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - - ELSE IF(ITYPFL .EQ. 3) THEN - GO TO 426 - - ELSE IF(ITYPFL .EQ. 4) THEN - IAPCT = IRUBC - ENDIF - GO TO 426 - - 426 CONTINUE - IJLER = IOR(IJLER,IARWUP) -C NWOK = NWOK + 1 -C LABWOK(1,NWOK) = IJLER -C LABWOK(2,NWOK) = IAPCT - IF(NFLAGS .LE. 1) GO TO 500 - -C ...STEP (6) TO GET FLAGS FOR 100KT AND UP... - NEXDI = KWNDFL(3,IDDGD) - IF ( IHEMIS .EQ.2 ) NEXDI = -NEXDI - NEXDJ = KWNDFL(4,IDDGD) - MORE = NFLAGS - 1 - IF(MORE .GT. 5) GO TO 944 - DO 433 I=1,MORE - ILLFL = ILLFL + NEXDI - JLLFL = JLLFL + NEXDJ - IF(ILLFL .LT. ILLIM) GO TO 955 - IF(ILLFL .GE. IRLIM) GO TO 955 - IF(JLLFL .LT. JLLIM) GO TO 955 - IF(JLLFL .GE. JTLIM) GO TO 955 - - JLLFL = IAND(JLLFL,MSKJ) - ILLFL = IAND(ILLFL,MSKI) - JLS = ISHFT(JLLFL,17) - IJLFL = IOR(JLS,ILLFL) -C NWOK = NWOK + 1 -C LABWOK(1,NWOK) = IOR( IJLFL,IPRFL(IHEMIS) ) -C LABWOK(2,NWOK) = ITEXT - -C ...NOW FOR THE ERASER UNDER THAT FLAG... - ILLER = ILLER + NEXDI - IF(ILLER .LE. 0) THEN - ILLER = 1 - ENDIF - JLLER = JLLER + NEXDJ - IF(JLLER .LE. 0) THEN - JLLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) -C NWOK = NWOK + 1 -C LABWOK(1,NWOK) = IOR(IJLER,IARWUP) -C LABWOK(2,NWOK) = IAPCT - 433 CONTINUE -C ...WHEN IT FALLS OUT OF THIS LOOP, ALL FINISHED - GO TO 500 - - 500 CONTINUE -C ...COMES HERE TO TRANSFER FROM LABWOK TO LABEL AND OUTPUT IF NECES - IF((LABIX+NWOK) .LE. LMAX) THEN - DO ISS = 1,NWOK - LABIX = LABIX + 1 - LABEL(1,LABIX) = LABWOK(1,ISS) - LABEL(2,LABIX) = LABWOK(2,ISS) - ENDDO - GO TO 999 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ELSE -C ...OTHERWISE IT WILL EXCEED LABEL BUFFER, SO TEST EACH WORD. - DO 522 ISS = 1,NWOK - LABIX = LABIX + 1 - IF(LABIX .LE. LMAX) THEN - GO TO 520 - - ELSE -C ... OTHERWISE, BIN IS FULL, SO OUTPUT THE FULL BIN -C ... AND CLEAR THE BIN BEFORE PASSING THIS ISS-TH ITEM - WRITE(6,503) - 503 FORMAT(1H ,'WNDBRK: LABEL ARRAY FULL' ) - LCKPT = 503 - LPACK_RAQ = .TRUE. - LCLEAN_AFTQ = .TRUE. -C ... ZERO THE IN-CORE LABEL-ARRAY AFTER WRITING ... -C ... FOR CRAY VERSION, I MUST HALF-PACK BEFORE WRITING, - -C CALL PUTL_WR(LBLTAP,NOBUF,JARRAY,LMAX2,LMAX,LPACK_RAQ, -C 1 LCLEAN_AFTQ,IRET101) - - IF(IRET101 .NE. 0) THEN - IF(IRET101 .EQ. -1) THEN - GO TO 900 - ELSE - WRITE(6,FMT='('' WNDBRK::PUTL_WR::HAFPAKRA: '', - 1 ''FAILED WHEN HAF-PACKING LABEL ARRAY'')') - IRET_WNB = -2 - GO TO 966 - ENDIF - ENDIF -C - LABIX = 1 - ENDIF - - 520 CONTINUE -C ... TO MOVE THE ISS-TH ITEM FROM LABWOK INTO THE LABEL ARRAY -C LABEL(1,LABIX) = LABWOK(1,ISS) -C LABEL(2,LABIX) = LABWOK(2,ISS) - 522 CONTINUE - GO TO 999 - ENDIF - GO TO 999 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 900 CONTINUE -C ... PARITY ERROR ON WRITING LABEL TAPE55 ... - WRITE(6,905) LBLTAP,NOBUF,LABIX,LCKPT - 905 FORMAT(1H ,'WNDBRK:PARITY ERROR WRITING LABEL-TAPE',I2, - 1 /1H ,7X,'NOBUF=',I5,'; LABIX=',I5,'; LCKPT=', I3) - - IRET_WNB = -1 - GO TO 966 -C ... - - 911 CONTINUE - IRET_WNB = 1 - WRITE(6,913) IDDGD,ISTN,JSTN,ISPEED - 913 FORMAT(1H ,'WNDBRK ERROR 1...BAD IDDGD = Z ',Z8, 3X, - 1 'AT I/J = Z ', Z8,1H/, Z8, 3X, 'SPEED = Z ',Z8) - GO TO 966 - - 922 CONTINUE - IRET_WNB = 2 - WRITE(6,924) ISPEED, ISTN, JSTN, IDDGD - 924 FORMAT(1H ,'WNDBRK ERROR 2...BAD ISPEED = Z ', Z8, 3X, - 1 'AT I/J = Z ', Z8, 1H/, Z8, 3X, 'IDDGD = ', Z8) - GO TO 966 - - 933 CONTINUE - IRET_WNB = 3 - WRITE(6,935) KUTOFF,ISTN,JSTN,IDDGD,ISPEED - 935 FORMAT(1H ,'WNDBRK ERROR 3...BAD CUTOFF CONST FOR WND STAFF = - 1 Z ', Z8, 3X, 'AT I/J = Z ', Z8,1H/,Z8,3X, 'DIR/SPD = Z', Z8, - 2 1H/, Z8) - GO TO 966 - - 944 CONTINUE - IRET_WNB = 4 - WRITE(6,946) NFLAGS, ISTN,JSTN,IDDGD,ISPEED - 946 FORMAT(1H ,'WNDBRK ERROR 4...OUT-OF-RANGE FLAG COUNT = Z', - 1 Z8, 3X, 'AT I/J = Z ', Z8,1H/,Z8,3X,'DIR/SPD = Z ', Z8, - 2 1H/, Z8) - GO TO 966 - 955 CONTINUE -C COMES TO 955 IF I/J IS OUT OF RANGE OF MAP - IRET_WNB = 5 - WRITE(6,957) ISTN, JSTN, IDDGD, ISPEED - 957 FORMAT(1H ,'WNDBRK ERROR 5...LOCATION OFF MAP. ISTN = Z ', - 1 Z8, 3X, 'JSTN = Z ', Z8, 3X, 'DIR/SPD = Z ', Z8, 1H/, Z8) - GO TO 966 - 966 CONTINUE - NWOK = 0 - GO TO 999 - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/plotvpap.fd/wibound.f b/util/sorc/plotvpap.fd/wibound.f deleted file mode 100755 index 4698762883..0000000000 --- a/util/sorc/plotvpap.fd/wibound.f +++ /dev/null @@ -1,308 +0,0 @@ - SUBROUTINE WIBOUND(KRUN,KEIL,KLLGO2,LINTERPQQ,ALAT,ALONG, - 1 FLD,IMAX,JMAX,HGTM,LBOUND) -C . . . . -C SUBPROGRAM: WIBOUND PERFORM BOUNDARY-TEST ON ONE LAT/LON PT -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 1997-01-07 -C -C ABSTRACT: PERFORM BOUNDARY-TEST ON THE GIVEN ALAT,ALONG LOCATION -C TO DETERMINE WHETHER THIS OBSERVATION IS WITHIN BOUNDS OR NOT. -C ALSO INTERPOLATES WITHIN A HEIGHT FIELD (UNDER CERTAIN OPTIONS) -C AND RETURNS THE INTERPOLATED HEIGHT VALUE IN 'HGTM' -C (FOR USE IN CONVERTING A THICKNESS TO A HEIGHT) -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR UNKNOWN -C 89-04-27 STEVE LILLY ADD DOCUMENTATION BLOCK -C 93-05-04 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 97-01-07 SHIMOMURA - CONVERT TO RUN ON CRAY; -C - ADDED DOCUMENTATION AND COMMENTS; -C - REPLACED W3FB00, AND W3FB02, WITH W3FB04 CALL -C - CHANGED SUBR NAME FROM "TBOUND" TO "WIBOUND" -C BECAUSE I MADE MANY CHANGES TO CALL SEQUENCE -C - ADDED FLD(IMAX,JMAX) TO CALL SEQUENCE -C - ADDED EXPLICIT LOGICAL ARG4: LINTERPQQ -C TO PERFORM THE INTERPOLATION IN FLD() -C 97-03-11 SHIMOMURA - MODS FOR 1:20M NRN AND SRN HEMI FOR 250MB PLOT -C -C USAGE: CALL WIBOUND(KRUN,KEIL,KLLGO2,LINTERPQQ,ALAT,ALONG, -C FLD,IMAX,JMAX,HGTM,LBOUND) -C -C INPUT ARGUMENT LIST: -C KRUN - FOR SETTING OPTIONS BY RUN TYPE, SUCH AS =11 TROPIC -C KEIL - KEIL SPECIFIES THE GRID FOR CALL TO TRUIJX(,,,,KEIL,) -C KLLGO2 - PRIMARY FLOW CONTROLLER TO SELECT THE TYPE OF TESTING -C AND THE VALUES OF BOUNDARIES - -C =1; DO NOTHING AND RETURN IMMEDIATELY; - -C =2 OR =3; NH 1:40M OR N AMER 1:20M -C (1.0,1.0) (AIMAX,AJMAX) - -C =4; NH 1:20M (1.0,1.0) (109.0,81.0) - -C =5; TROPICAL MAPS OR GOES -- MR4001, GH2601, GH2602 -C (60S,0.) (60N,360.) - -C =6; SH 1:40M (1.0,1.0) (AIMAX,AJMAX) - -C =7; NH 1:60M (1.0,1.0) (65.0,65.0) - -C LINTERPQQ - = .TRUE. IF INTERPOLATION IN FLD(IMAX,JMAX) IS -C DESIRED -C -C ALAT - THE LATITUDE OF THE OBSERVATION -C ALONG - THE LATITUDE OF THE OBSERVATION -C -C FLD(IMAX,JMAX) - REAL FLD(IMAX,JMAX) -C - GIVEN HGT FIELD WITHIN WHICH I WILL INTERPOLATE -C - IN ORDER TO OBTAIN 'HGTM' -C -C COMMON - /WLONG0/ WLONG0 !... USED ONLY BY GOESXY() -C GOESXY() IS CALLED ONLY UNDER KLLGO2=5; -C WHEN KRUN==22, OR KRUN==23 -C -C OUTPUT ARGUMENT LIST: -C HGTM - THE INTERPOLATED VALUE, WITHIN FLD(IMAX,JMAX), -C TO THE LAT/LON POINT -C LBOUND - A TRUE/FALSE RESULT AS TO WHETHER THIS REPORT -C - PASSES OR FAILS THE BOUNDARY TEST -C -C -C REMARKS: -C SUBROUTINES CALLED: -C W3FB04(); LAT/LON TO GRIDI/GRIDJ -C W3FT01(); INTERP W/I FLD(57,57) -C TRUIJX(); LAT/LON TO GRIDI/GRIDJ -C GOESXY(); LAT/LON TO GRIDI/GRIDJ -C INTERP(); INTERP W/I FLD(65,65) -C -C THE CALL SEQUENCE WAS CHANGED TO INCLUDE THE FLD(IMAX,JMAX) -C IN ORDER TO AVOID THE COMMON /JSPACE/ DEPENDENCIES; -C -C ALSO I WILL USE THESE IMAX,JMAX VALUES FOR BOUNDARY TESTS -C FOR THOSE CASES OF KLLGO2 =2, =3, OR =6 -C WHERE THE OLD CODE REFERENCED -C ... COMMON /IJMAX/ AIMAX,AJMAX ... WHICH HAS BEEN DELETED -C -C THE CALL SEQUENCE WAS CHANGED TO INCLUDE THE LOGICAL SWITCH FOR ARG4 -C LOGICAL LINTERPQQ -- = .T. TO PERFORM INTERPOLATION IN FLD() -C = .F. TO NOT INTERPOLATE; -C WHERE THE OLD ARG4 WAS THE UNIT NO. OF INPUT OBS FILE -C WHICH WAS COMPARED AGAINST THE UNIT NO. OF SATELLITE DATA -C TO DETERMINE WHETHER TO LET IT GO TO THE INTERPOLATOR; -C THIS IS A SECONDARY CONTROL, SO IT IS QUERIED ONLY UNDER -C CERTAIN VALUES OF THE PRIMARY CONTROL: 'KLLGO2' = [2, 3, 4, 6] -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - - COMMON /WLONG0/ WLONG0 !... USED BY GOESXY() -C -C -C -C ... REAL FLD(65,65) -C ... EQUIVALENCE(BUFF(13),FLD(1,1)) -C -C ... REAL FLD1(57,57) -C ... EQUIVALENCE(BUFF(13),FLD1(1,1)) -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... USAGE:CALL WIBOUND(KRUN,KEIL,KLLGO2,LINTERPQQ,ALAT,ALONG, -C ... FLD,IMAX,JMAX, HGTM,LBOUND) - INTEGER KRUN !... RUN TYPE, E.G. KRUN=11 FOR TROPIC - INTEGER KEIL !... GRID TYPE - INTEGER KLLGO2 !... PRIMARY FLOW CONTROLLER - LOGICAL LINTERPQQ !... = .T. IF INTERPOLATING IN FLD() -C - REAL ALAT - REAL ALONG - REAL FLD(IMAX,JMAX) - - REAL HGTM - LOGICAL LBOUND - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - REAL DISSAT - DATA DISSAT / 6.619 / - REAL SCALE - DATA SCALE / 26.7858/ -C - REAL XMESHL - REAL ORIENT - INTEGER KQUAD - - SAVE - - AIMAX = FLOAT(IMAX) - AJMAX = FLOAT(JMAX) - HGTM = 0.0 - LBOUND = .TRUE. -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - IF(KLLGO2 .EQ. 1) THEN -C ... BYPASS BOUNDARY TESTS ... JUMP OUT; DO NOTHING - RETURN -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - ELSE IF((KLLGO2 .EQ. 2) .OR. (KLLGO2 .EQ. 3)) THEN -C ... NH 1:40M AND NA 1:20M ARE BOTH DONE HERE ... -C - IF(ALAT .LT. 0.0) GO TO 1000 - - CALL TRUIJX(ALAT,ALONG,XI,XJ,KEIL,IRET_TIJ) - IF(IRET_TIJ .NE. 0) GO TO 1000 - IF(XI .LT. 1.0) GO TO 1000 - IF(XI .GT. AIMAX) GO TO 1000 - IF(XJ .LT. 1.0) GO TO 1000 - IF(XJ .GT. AJMAX) GO TO 1000 - IF(.NOT. LINTERPQQ) RETURN - IF(KRUN .EQ. 9) THEN -C ... TREAT THE 2-DOT CASE HERE ... -C - CALL W3FB04(ALAT,ALONG,190.5,105.0,XII,XJJ) - - XII = XII + 29.0 - XJJ = XJJ + 49.0 - - CALL W3FT01(XII,XJJ,FLD,HGTM,IMAX,JMAX,0,0) - - RETURN - ENDIF - - IF(KRUN .EQ. 10) RETURN -C ... OTHERWISE, KRUN IS NOT 9 AND NOT 10 ... - GO TO 900 !... TO INTERPOLATE W/I FLD -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - ELSE IF(KLLGO2 .EQ. 4) THEN -C ... NH 1:20M DONE HERE ... -C - IF(ALAT .LT. 0.0) GO TO 1000 - CALL TRUIJX(ALAT,ALONG,XI,XJ,KEIL,IRET_TIJ) - IF(IRET_TIJ .NE. 0) GO TO 1000 - IF(XI .LT. 1.0) GO TO 1000 - IF(XI .GT. 109.0) GO TO 1000 - IF(XJ .LT. 1.0) GO TO 1000 - IF(XJ .GT. 81.0) GO TO 1000 - IF(LINTERPQQ) GO TO 900 !... TO INTERP IN FLD - RETURN -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - ELSE IF(KLLGO2 .EQ. 5) THEN -C ... TROPICAL PLOT HERE ON MR4001, GH2601, OR GH2602 ... -C - IF((KRUN .EQ. 22) .OR. (KRUN .EQ. 23)) GO TO 550 - IF(ALAT .LT. -60.0) GO TO 1000 - IF(ALAT .GT. 60.0) GO TO 1000 - IF(ALONG .LT. 0.0) GO TO 1000 - IF(ALONG .GT. 360.) GO TO 1000 - RETURN - - 550 CONTINUE -C ... DO PSEUDO-GOES HERE ... -C - CALL GOESXY(WLONG0,DISSAT,SCALE,ALAT,ALONG,XI,XJ,IEXIT) - IF(IEXIT .NE. 0) GO TO 1000 - - RETURN -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - ELSE IF(KLLGO2 .EQ. 6) THEN -C ... THIS IS A 1:40M PLOT IN THE SH ... -C - IF(ALAT .GT. 0.0) GO TO 1000 - CALL TRUIJX(ALAT,ALONG,XI,XJ,KEIL,IRET_TIJ) - IF(IRET_TIJ .NE. 0) GO TO 1000 - if(krun .eq. 20) then -C ... this is big srn hemi 1:20 M ... - IF(XI .LT. 1.0) GO TO 1000 - IF(XI .GT. 109.0) GO TO 1000 - IF(XJ .LT. 1.0) GO TO 1000 - IF(XJ .GT. 144.0) GO TO 1000 - else - IF(XI .LT. 1.0) GO TO 1000 - IF(XI .GT. AIMAX) GO TO 1000 - IF(XJ .LT. 1.0) GO TO 1000 - IF(XJ .GT. AJMAX) GO TO 1000 - ENDIF - IF(.NOT. LINTERPQQ) RETURN -C -C ... THE SH PE GRID ... -C - XMESHL = -381.0 !... NMC STD GRID LENGTH; NEG SIGN (SH) - ORIENT = 260.0 !... = 80W AT TOP OF SRN HEMI MAP - CALL W3FB04(ALAT,ALONG,XMESHL,ORIENT,XII,XJJ) - GO TO 910 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - ELSE IF(KLLGO2 .EQ. 7) THEN -C ... THIS IS A 1:60M NH PLOT ... -C - IF(ALAT .LT. 0.0) GO TO 1000 - CALL TRUIJX(ALAT,ALONG,XI,XJ,KEIL,IRET_TIJ) - IF(IRET_TIJ .NE. 0) GO TO 1000 - IF(XI .LT. 1.0) GO TO 1000 - IF(XJ .LT. 1.0) GO TO 1000 - IF(XI .GT. 65.0) GO TO 1000 - IF(XJ .GT. 65.0) GO TO 1000 - RETURN -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - ELSE -C -C ... ERROR. THE GIVEN KLLGO2 HAS INVALID NUMBER ... -C ... BYPASS BOUNDARY TEST. -C - WRITE(6, 2010) KLLGO2 - 2010 FORMAT(1H ,'WIBOUND: ERROR - Given BAD-VALED KLLGO2 = ',I4, - 1 /1H ,' ACCEPTABLE VALUES = [1 TO 7]') -C - RETURN - - ENDIF -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - 900 CONTINUE -C -C ... INTERPOLATE 1000MB HEIGHTS HERE ... -C ... BUT BEFORE INTERPOLATING, WHAT IS I/J ?? -C - xmeshl = 381.0 !... 381km = NMC std g.i. - orient = 80.0 !... 80W longitude is vertical meridian - CALL W3FB04(ALAT,ALONG,xmeshl,orient,XII,XJJ) - - 910 CONTINUE - XII = XII + 33.0 - XJJ = XJJ + 33.0 - KQUAD = 6 - IF( (XII .LE. 2.0) .OR. (XII .GE. 64.0)) KQUAD = 5 - IF( (XJJ .LE. 2.0) .OR. (XJJ .GE. 64.0)) KQUAD = 5 - - CALL INTERP(FLD,imax,jmax,HGTM,XII,XJJ,KQUAD) - - RETURN -C -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - 1000 CONTINUE -C ... THIS REPORT IS OUT-OF-BOUNDS FROM A BOUNDARY TEST ... - LBOUND = .FALSE. - RETURN -C -C . . . . . . . . . . . . . . . . . . . . . -C - END diff --git a/util/sorc/plotvpap.fd/wndbrk.f b/util/sorc/plotvpap.fd/wndbrk.f deleted file mode 100755 index 16f172787a..0000000000 --- a/util/sorc/plotvpap.fd/wndbrk.f +++ /dev/null @@ -1,614 +0,0 @@ - SUBROUTINE WNDBRK( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,IRET_WNB) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: WNDBRK PLOTS WIND DIR AND SPEED AS SHAFT & FLAG -C PRGMMR: KRISHNA KUMAR ORG: NP12 DATE:1999-07-01 -C -C ABSTRACT: PLOTS WIND DIRECTION AND SPEED ON A VARIAN OR FAX MAP AS -C ENTRIES IN THE LABEL FILE. -C ** N O T E : TO MAKE AN EXE LOAD MODULE, WNDBRK MUST BE COMPILE -C ** N O T E : WITH BLOCK DATA WNDCON -C ** (USED TO BE WINCON FOUND 'NMC.PROD.V77GRAPH.SOURCE') -C -C PROGRAM HISTORY LOG: -C 75-04-11 ORIGINAL AUTHOR DENT. -C 86-06-27 MILLER REMOVE ASYNCHRONOUS I/O. -C 86-07-15 MILLER MAKE SURE WIND DIRECTION IS NEVER 0. -C 89-02-21 HENRICHSEN CLEAN UP AND DOCUMENT. -C 90-10-03 HENRICHSEN CONVERT TO FORTRAN 77 -C 96-02-20 SHIMOMURA: CONVERT TO CRAY -C ADDED IRET_WNB RETURN CODE -C 96-10-24 SHIMOMURA: ADD ERASER UNDER BARBS -C 96-10-28 SHIMOMURA: ADJUSTING WIND-FLAG POSITIONING WITH ICORNFLAG -C 1999-07-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C -C USAGE: CALL WNDBRK( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,IRET_WNB ) -C INPUT ARGUMENT LIST: -C ISTN - ICOORDINATE OF WIND PLOT IN DOTS. -C JSTN - JCOORDINATE OF WIND PLOT IN DOTS. -C KDDGD - WIND DIRECTION TO NEAREST 10 DEGREES. -C ISPEED - WIND SPEED IN KNOTS. -C IOPTN - FLAG TO DETERMINE IF TEMPERATURE AND DEW POINT -C - PLOTS ARE IN THE WAY OF PLOTTING WIND FLAGS. -C -C OUTPUT ARGUMENT LIST: -C NWOK - COUNTER OF NUMBER OF LABELS ADDED TO LABEL ARRAY. -C IRET_WNB - RETURN CODE -C = 0; NORMAL RETURN -C = -1; PARITY ERROR WHILE TRYING TO OUTPUT LABEL ARRAY; -C USER SHOULD ABORT ON THIS SERIOUS I/O ERROR. -C = -2; PUTL_WR::HAFPAKRA: FAILED TO HALF-PACK LABEL ARRAY -C SERIOUS ERROR. USER SHOULD ABORT. LOGIC ERR. -C -C = 1; WNDBRK: WARNING ... BAD IDDGD -C = 2; WNDBRK: WARNING ... BAD ISPEED -C = 3; WNDBRK: WARNING ... BAD CUTOFF VALUE -C = 4; WNDBRK: WARNING ... OUT-OF-RANGE FLAG COUNT -C = 5; WNDBRK: WARNING ... LOCATION OFF MAP -C -C INPUT FILES: -C FT55F001 - LABEL FILE. -C -C OUTPUT FILES: -C FT06F001 - PRINT FILE. -C FT55F001 - LABEL FILE. -C -C REMARKS: BLOCK DATA WNDCON IS USED BY THIS SUBR. -C CALLS SUBR PUTL_WR(), WHICH CALLS SUBR HAFPAKRA() -C CAUTION: CALL SEQ. CHANGE WITH ADDED IRET_WNB -C -C ATTRIBUTES: -C LANGUAGE: F90. -C MACHINE: IBM -C -C$$$ -C -C - - INTEGER LBLTAP - PARAMETER (LBLTAP=55) - - INTEGER LMAX - PARAMETER (LMAX=1024) - INTEGER LMAX2 - PARAMETER (LMAX2=2*LMAX) - - COMMON /KPLOT/ LABEL,LABIX,NOBUF,IDRA(50) - INTEGER LABEL(2,LMAX) - INTEGER JARRAY(LMAX2) - EQUIVALENCE (JARRAY(1),LABEL(1,1)) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - EXTERNAL WNDCON !... FOR COMMON /WINCON/ -C !... DEFINED IN BLOCK DATA WNDCON - COMMON /WINCON/ KWNDFL(5,36),KWNDDV(5,36),KWNDBA(10,9) - INTEGER KWNDFL - INTEGER KWNDDV - INTEGER KWNDBA - -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C USAGE: CALL WNDBRK( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,iret_wnb ) -C INPUT ARGUMENT LIST: - INTEGER ISTN,JSTN -C !... I-,J-COORDINATES OF WIND PLOT IN DOTS. - INTEGER KDDGD -C !... WIND DIRECTION TO NEAREST 10 DEGREES. - INTEGER ISPEED -C !... WIND SPEED IN KNOTS. - INTEGER IOPTN -C !... FLAG TO DETERMINE IF TEMPERATURE AND DEW- -C !... POINT PLOTS ARE IN THE WAY OF PLOTTING -C !... WIND FLAGS. -C -C OUTPUT ARGUMENT LIST: - INTEGER NWOK -C !... COUNTER OF NUMBER OF LABELS ADDED TO -C !... LABEL ARRAY. - INTEGER IRET_WNB -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C - INTEGER IARWUP -C ...WHICH IS 'ARROW-UP' CHAR FONT CHANGE BIT... - DATA IARWUP / X'00010000' / - - INTEGER IPRBA - DATA IPRBA / X'00006000' / -C ...FOR WIND BARBS/STAFF ... PRIORITY = 3, NO 'ARROW-UP' BIT... - - INTEGER IPRFL(2) - DATA IPRFL /X'00014000',X'00018000'/ -C ... WHERE IPRFL IS PRIORITY ASSIGNED TO WIND-FLAG FONT .... -C ... WHICH ARE 'ARROW UP' BIT AND PRIORITY = 2 AND 4 -C ... WHERE IPRFL ALSO INCLUDES ARROW-UP FOR WIND-FLAG FONT ... - - - INTEGER IRUBA - DATA IRUBA / X'01200000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=01 FOR ERASER UNDER FLAG - - INTEGER IRUBB - DATA IRUBB / X'14010000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=20 FOR ERASER UNDER BARB - - INTEGER IRUBC - DATA IRUBC / X'03200000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=03 FOR ERASER UNDER FLAG - - INTEGER IXXK - DATA IXXK / 5 / -C ...WHICH IS THE XXTH LOOK TABLE BEFORE THE WIND-FLAG FONTS - - INTEGER ICORN - DATA ICORN /0/ - - integer ICORNFLAG(2) - DATA ICORNFLAG / -1, 0 / -C ... WHERE ICORNFLAG(IHEMIS) MOVES NRN HEMI WIND-FLAG LEFTWARD -1 -C ... BUT SRN HEMI WIND-FLAG NEEDS NO ADJ - - INTEGER ILLIM - DATA ILLIM / 10 / - INTEGER IRLIM - DATA IRLIM / 4000 / - INTEGER JLLIM - DATA JLLIM / 1 / - INTEGER JTLIM - DATA JTLIM / 7020 / - -C ... TO CONVERT WIND DIRECTION INT DD INTO AN ASCII CHAR -C ... WHICH WILL GET THE CORRECT BIT-MAPPED CHARAC ... -C ... TO CONVERT A BINARY INT X'01' ==> 'A' -C X'1A' ==> 'Z' -C X'1B' ==> '0' -C X'24' ==> '9' - CHARACTER*1 CTTBL(36) -C ... 01 02 03 04 05 06 07 08 09 ... - DATA CTTBL / 'A','B','C','D','E','F','G','H','I', - 1 'J','K','L','M','N','O','P','Q','R', - 2 'S','T','U','V','W','X','Y','Z','0', - 3 '1','2','3','4','5','6','7','8','9' / -C ... 28 29 30 31 32 33 34 35 36 ... - - INTEGER KDOLR(4) - DATA KDOLR /X'00000000',X'00000000', - X X'00000000',X'00000000'/ -C ...WHICH IS NULL IN 4 BYTE POSITIONS... - - INTEGER KDEWPT - DATA KDEWPT / X'00000008' / -C ...DEW POINT PLOT INFO BIT... - INTEGER KTEMP - DATA KTEMP / X'00000004' / -C ...TEMP PLOT INFO BIT... - - INTEGER KDR220 - DATA KDR220 /22/ - INTEGER KDR260 - DATA KDR260 /26/ - INTEGER KDR300 - DATA KDR300 /30/ -C ...WIND DIR LIMITS OF WIND OVERPLOTTED BY DEW PT, TEMP... - - - INTEGER LGAPK(5,8) - DATA LGAPK / -7,-8,-11,-8,X'09410000', - 1 -9,-7,-11,-8,X'09420000', - 2 -10,-6,-11,-8,X'09430000', - 3 -11,-4,-11,-5,X'07440000', - 4 -11,-2,-11,-5,X'07450000', - 5 -11, 0,-11, 0,X'07460000', - 6 -11, 2,-11, 0,X'07470000', - 7 -10, 4,-11, 0,X'07480000'/ -C ...PENTAPACKED /IGAP,JGAP ORIGIN DISPLACEMENTS FOR OTHER WND PART/ -C ...DI,DJ TO LL FOR GAP FILLER LINE CHAR/LABEL TEXT FOR GAP FILLER/ - - - INTEGER ISDIF(4) - DATA ISDIF / 6, 12, 9, 12 / -C ... DISPLACEMENTS FOR REVERSED WIND FLAGS USED IN SOUTHERN -C ... HEMISPHERE IN ORDER BY FLAG TYPE ... - - INTEGER LSDI(36) - DATA LSDI / +2, +1, +1, +3, +5,+09, +7, +5, +5, - 1 +4, +5, +6,+12,+15,+18,+21,+20,+20, - 2 +20,+21,+18,+15,+14, +7, +6, +6, +5, - 3 +6, +8, +9, +6, +3, +1, +1, +3, +2 / -C -C ... FURTHER DISPLACEMENTS TO ADJUST SOUTHERN HEMISPHERE WIND FLAGS -C - - INTEGER MSK16B - DATA MSK16B / X'0000FFFF' / - - INTEGER MSKI - DATA MSKI / X'00001FFF' / -C ...WHERE MSKI ALLOWS 13 BITS ... - - INTEGER MSKJ - DATA MSKJ / X'00007FFF' / -C ...WHERE MSKJ ALLOWS FOR 15 BITS... - - INTEGER MXKUT - DATA MXKUT / 120 / -C - LOGICAL LPACK_RAQ - LOGICAL LCLEAN_AFTQ - - INTEGER IACC,MQ -C - INTEGER KUTOFF - - INTEGER LABWOK(2,15) - - INTEGER IJWRD_ERAB - INTEGER ITXTWRD_ERAB - -C -C--------------------------------------------------------------------- - SAVE -C - NWOK = 0 - IRET_WNB = 0 - -C ... SET NORTHERN HEMISPHERE FLAG = 1 - IHEMIS = 1 !... NORTHERN HEMISPHERE MODE - IDDGD = KDDGD -C ... IT IS ASSUMED THAT A ZERO OCCURS FOR WIND DIRECTION ONLY -C ... IN THE NORTHERN HEMISPHERE (I.E. IDDGD = +0) - IF ( IDDGD .EQ. 0 ) IDDGD = 36 - IF ( IDDGD .GE. 0 ) GO TO 100 - -C ... OTHERWISE, IDDGD .LT. 0; WHICH FLAGGED SOUTHERN HEMI MODE -C ... SET SOUTHERN HEMISPHERE FLAG = 2 - IHEMIS = 2 !... SOUTHERN HEMISPHERE MODE - IDDGD = IABS(IDDGD) -C ... SAVE FOR POSITIONING FLAGS - LDDSH = IDDGD -C ... IDDSH POINTS TO VECTOR WHICH WHEN REVERSED WILL BE THE -C ... SOUTHERN HEMISPHERE VECTOR FOR IDDGD ... - IDDSH = 36 - IDDGD - IF ( IDDSH .EQ. 0 ) IDDSH = 36 - 100 CONTINUE - IF(IDDGD .GT. 36) GO TO 911 - IF(ISPEED .LT. 0) GO TO 922 - IF(ISPEED .GT. 300) GO TO 922 -C ...STEP (1)... TO DETERMINE NO. OF FLAGS AND NO. OF BARBS...... - FFIVES = (FLOAT(ISPEED))/5.0 - IFIVES = FFIVES + 0.5 -C ...WHICH ROUNDS TO NEAREST 5-KNOT-UNIT AND FIXES - NFLAGS = IFIVES/10 - NBARBS = MOD(IFIVES,10) -C ...WHERE NO. OF BARBS RANGES FROM 0 TO 9 (FOR NONE TO 45K) -C ...STEP(1B) ... TEST FOR MOVING WIND VECTOR PLOT FOR OVERPLOT - IGAP = 0 - JGAP = 0 - IF(NBARBS .LE. 2) GO TO 177 -C -C ... IF WIND DIR LESS THAN 220 DEGREES, THEN SKIP TO 177 ... -C - IF(IDDGD .LT. KDR220) GO TO 177 -C -C ... IF WIND DIR LESS THAN 260 DEGREES, THEN SKIP TO 140 ... -C ... AND CHECK TO SEE IF THE DEW POINT PLOT FLAG IS SET. -C - IF(IDDGD .LT. KDR260) GO TO 140 -C -C ...IF WIND DIR LESS THAN 300 DEGREES, THEN SKIP TO 144 ... -C ... AND CHECK TO SEE IF THE TEMP PLOT FLAG IS SET. -C - IF(IDDGD .LT. KDR300) GO TO 144 - GO TO 177 - - 140 CONTINUE -C ... GET DEW POINT PLOT FLAG ... - IAC3 = IAND(IOPTN,KDEWPT) - IF(IAC3)150,177,150 - - 144 CONTINUE -C ... GET TEMP PLOT FLAG. - IAC4 = IAND(IOPTN,KTEMP) - IF(IAC4) 150,177,150 - 150 CONTINUE -C ...COMES HERE IF WIND BARBS MUST BE MOVED WESTWARD TO NOT OVERPLOT - LLX = IDDGD - KDR220 + 1 - IGAP = LGAPK(1,LLX) - JGAP = LGAPK(2,LLX) - ILL = LGAPK(3,LLX) + ISTN - JLL = LGAPK(4,LLX) + JSTN - ITEXT = LGAPK(5,LLX) - ILL = ILL + ICORN - - IF(ILL .LT. ILLIM) GO TO 955 - IF(ILL .GE. IRLIM) GO TO 955 - IF(JLL .LT. JLLIM) GO TO 955 - IF(JLL .GE. JTLIM) GO TO 955 - - JLL = IAND(JLL,MSKJ) - ILL = IAND(ILL,MSKI) - JLS = ISHFT(JLL,17) - IJLL = IOR(JLS,ILL) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR(IJLL,IPRFL(1)) - LABWOK(2,NWOK) = ITEXT - - 177 CONTINUE - -C ....STEP (2) ... TO GET CUT-OFF CONSTANT FOR BARBS... - NBONE = NBARBS + 1 - IF(IHEMIS .EQ. 2) IDDGD = IDDSH - IHOLD = MOD(IDDGD,9) - IHOLD = IHOLD + 1 - KUTOFF = KWNDBA(NBONE,IHOLD) - IF(KUTOFF .LT. 0) GO TO 933 - IF(KUTOFF .GT. MXKUT) GO TO 933 - IF(IHEMIS .EQ. 2) KUTOFF = -KUTOFF - IACC = IAND(IDDGD,MSK16B) - IACC = ISHFT(IACC,16) - MQ = IAND(KUTOFF,MSK16B) - IACC = IOR(IACC,MQ) - ITEXT = IACC -C ...STAFF INFO PACKED WITH DD IN FIRST 2 BYTES, KUTOFF RIGHT-JUSTIF - -C ...STEP (3)... TO POSITION STAFF WITH LOWER LEFT CORNER.... -C ...KWNDDV FORMAT ... ISTART,JSTART,KWIDTH,KHGT,MXV... - ISTART = KWNDDV(1,IDDGD) - JSTART = KWNDDV(2,IDDGD) - KWIDTH = KWNDDV(3,IDDGD) - IF ( IHEMIS .EQ. 2 ) ISTART = KWIDTH - ISTART - ILL = ISTN - KWIDTH + ISTART - ILL = ILL + IGAP + ICORN - IF(ILL .LT. ILLIM) GO TO 955 - IF(ILL .GE. IRLIM) GO TO 955 - - JLL = JSTN - JSTART + 1 - JLL = JLL + JGAP - IF(JLL .LT. JLLIM) GO TO 955 - IF(JLL .GE. JTLIM) GO TO 955 - - JLL = IAND(JLL,MSKJ) - ILL = IAND(ILL,MSKI) - JLS = ISHFT(JLL,17) - IJLL = IOR(JLS,ILL) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR(IJLL,IPRBA) !... there goes BARBS - LABWOK(2,NWOK) = ITEXT - -C ... insert the eraser under the BARBs ... - IJWRD_ERAB = 0 - IJWRD_ERAB = IOR(IJLL,IARWUP) - ITXTWRD_ERAB = IRUBB - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IJWRD_ERAB !... ERASER UNDER BARB - LABWOK(2,NWOK) = ITXTWRD_ERAB -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IF(NFLAGS .LE. 0) GO TO 500 - -C ...OTHERWISE, WE HAVE SOME FLAGS TO POSITION... -C STEP (4)... TO GET FLAG INFO FOR PRTITL -C ...DI TO LL,DJ TO LL,DI TO NEXT FLAG, DJ TO NEXT, FLAG TYPE. - ITYPFL = KWNDFL(5,IDDGD) - ISDI = KWNDFL(1,IDDGD) - IF(IHEMIS .EQ. 2) THEN - ISDI = KWNDFL(1,LDDSH) - ISDIF(ITYPFL) + LSDI(LDDSH) - ENDIF - - ILLFL = ISTN + ISDI - ILLFL = ILLFL + IGAP + ICORN - ILLFL = ILLFL + ICORNFLAG(IHEMIS) - JLLFL = JSTN + KWNDFL(2,IDDGD) - JLLFL = JLLFL + JGAP - IF(ILLFL .LT. ILLIM) GO TO 955 - IF(ILLFL .GE. IRLIM) GO TO 955 - IF(JLLFL .LT. JLLIM) GO TO 955 - IF(JLLFL .GE. JTLIM) GO TO 955 - JLLFL = IAND( JLLFL,MSKJ) - ILLFL = IAND( ILLFL,MSKI) - JLS = ISHFT(JLLFL,17) - IJLFL = IOR(JLS,ILLFL) - IPOSN = IOR(IJLFL,IPRFL(IHEMIS)) - -C ...STEP (5)... TO GET TEXT FOR FLAG - ICLASS = IXXK + KWNDFL(5,IDDGD) -C ...WHERE ICLASS IS USED (R1) AFTER ARROW TO POINT TO TABLE IN PRT - -C ================================================================== - IACC = ISHFT(ICLASS,24) - - MQ = MOVA2I(CTTBL(IDDGD)) !... TRANSLATE DD-BINARY TO ASCII CHAR - IAC2 = ISHFT(MQ,16) !... MOVE TO 2ND BYTE FROM HI-END OF I*2 - IACC = IOR(IACC,IAC2) - ITEXT = IOR(IACC,KDOLR(3)) -C ================================================================== - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IPOSN - LABWOK(2,NWOK) = ITEXT - -C ...TO ERASE UNDER 50K FLAG - IAPCT = IRUBA - ILLER = ILLFL - JLLER = JLLFL - IJLER = IJLFL - -C ... GO TO (415,419,426,424),ITYPFL - IF(ITYPFL .EQ. 1) THEN - ILLER = ILLFL - 2 - IF(ILLER .LE. 0) THEN - ILLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - - ELSE IF(ITYPFL .EQ. 2) THEN - IAPCT = IRUBC - JLLER = JLLFL - 2 - IF(JLLER .LE. 0) THEN - JLLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - - ELSE IF(ITYPFL .EQ. 3) THEN - GO TO 426 - - ELSE IF(ITYPFL .EQ. 4) THEN - IAPCT = IRUBC - ENDIF - GO TO 426 - - 426 CONTINUE - IJLER = IOR(IJLER,IARWUP) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IJLER - LABWOK(2,NWOK) = IAPCT - IF(NFLAGS .LE. 1) GO TO 500 - -C ...STEP (6) TO GET FLAGS FOR 100KT AND UP... - NEXDI = KWNDFL(3,IDDGD) - IF ( IHEMIS .EQ.2 ) NEXDI = -NEXDI - NEXDJ = KWNDFL(4,IDDGD) - MORE = NFLAGS - 1 - IF(MORE .GT. 5) GO TO 944 - DO 433 I=1,MORE - ILLFL = ILLFL + NEXDI - JLLFL = JLLFL + NEXDJ - IF(ILLFL .LT. ILLIM) GO TO 955 - IF(ILLFL .GE. IRLIM) GO TO 955 - IF(JLLFL .LT. JLLIM) GO TO 955 - IF(JLLFL .GE. JTLIM) GO TO 955 - - JLLFL = IAND(JLLFL,MSKJ) - ILLFL = IAND(ILLFL,MSKI) - JLS = ISHFT(JLLFL,17) - IJLFL = IOR(JLS,ILLFL) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR( IJLFL,IPRFL(IHEMIS) ) - LABWOK(2,NWOK) = ITEXT - -C ...NOW FOR THE ERASER UNDER THAT FLAG... - ILLER = ILLER + NEXDI - IF(ILLER .LE. 0) THEN - ILLER = 1 - ENDIF - JLLER = JLLER + NEXDJ - IF(JLLER .LE. 0) THEN - JLLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR(IJLER,IARWUP) - LABWOK(2,NWOK) = IAPCT - 433 CONTINUE -C ...WHEN IT FALLS OUT OF THIS LOOP, ALL FINISHED - GO TO 500 - - 500 CONTINUE -C ...COMES HERE TO TRANSFER FROM LABWOK TO LABEL AND OUTPUT IF NECES - IF((LABIX+NWOK) .LE. LMAX) THEN - DO ISS = 1,NWOK - LABIX = LABIX + 1 - LABEL(1,LABIX) = LABWOK(1,ISS) - LABEL(2,LABIX) = LABWOK(2,ISS) - ENDDO - GO TO 999 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ELSE -C ...OTHERWISE IT WILL EXCEED LABEL BUFFER, SO TEST EACH WORD. - DO 522 ISS = 1,NWOK - LABIX = LABIX + 1 - IF(LABIX .LE. LMAX) THEN - GO TO 520 - - ELSE -C ... OTHERWISE, BIN IS FULL, SO OUTPUT THE FULL BIN -C ... AND CLEAR THE BIN BEFORE PASSING THIS ISS-TH ITEM - WRITE(6,503) - 503 FORMAT(1H ,'WNDBRK: LABEL ARRAY FULL' ) - LCKPT = 503 - LPACK_RAQ = .TRUE. - LCLEAN_AFTQ = .TRUE. -C ... ZERO THE IN-CORE LABEL-ARRAY AFTER WRITING ... -C ... FOR CRAY VERSION, I MUST HALF-PACK BEFORE WRITING, - - CALL PUTL_WR(LBLTAP,NOBUF,JARRAY,LMAX2,LMAX,LPACK_RAQ, - 1 LCLEAN_AFTQ,IRET101) - - IF(IRET101 .NE. 0) THEN - IF(IRET101 .EQ. -1) THEN - GO TO 900 - ELSE - WRITE(6,FMT='('' WNDBRK::PUTL_WR::HAFPAKRA: '', - 1 ''FAILED WHEN HAF-PACKING LABEL ARRAY'')') - IRET_WNB = -2 - GO TO 966 - ENDIF - ENDIF -C - LABIX = 1 - ENDIF - - 520 CONTINUE -C ... TO MOVE THE ISS-TH ITEM FROM LABWOK INTO THE LABEL ARRAY - LABEL(1,LABIX) = LABWOK(1,ISS) - LABEL(2,LABIX) = LABWOK(2,ISS) - 522 CONTINUE - GO TO 999 - ENDIF - GO TO 999 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 900 CONTINUE -C ... PARITY ERROR ON WRITING LABEL TAPE55 ... - WRITE(6,905) LBLTAP,NOBUF,LABIX,LCKPT - 905 FORMAT(1H ,'WNDBRK:PARITY ERROR WRITING LABEL-TAPE',I2, - 1 /1H ,7X,'NOBUF=',I5,'; LABIX=',I5,'; LCKPT=', I3) - - IRET_WNB = -1 - GO TO 966 -C ... - - 911 CONTINUE - IRET_WNB = 1 - WRITE(6,913) IDDGD,ISTN,JSTN,ISPEED - 913 FORMAT(1H ,'WNDBRK ERROR 1...BAD IDDGD = Z ',Z8, 3X, - 1 'AT I/J = Z ', Z8,1H/, Z8, 3X, 'SPEED = Z ',Z8) - GO TO 966 - - 922 CONTINUE - IRET_WNB = 2 - WRITE(6,924) ISPEED, ISTN, JSTN, IDDGD - 924 FORMAT(1H ,'WNDBRK ERROR 2...BAD ISPEED = Z ', Z8, 3X, - 1 'AT I/J = Z ', Z8, 1H/, Z8, 3X, 'IDDGD = ', Z8) - GO TO 966 - - 933 CONTINUE - IRET_WNB = 3 - WRITE(6,935) KUTOFF,ISTN,JSTN,IDDGD,ISPEED - 935 FORMAT(1H ,'WNDBRK ERROR 3...BAD CUTOFF CONST FOR WND STAFF = - 1 Z ', Z8, 3X, 'AT I/J = Z ', Z8,1H/,Z8,3X, 'DIR/SPD = Z', Z8, - 2 1H/, Z8) - GO TO 966 - - 944 CONTINUE - IRET_WNB = 4 - WRITE(6,946) NFLAGS, ISTN,JSTN,IDDGD,ISPEED - 946 FORMAT(1H ,'WNDBRK ERROR 4...OUT-OF-RANGE FLAG COUNT = Z', - 1 Z8, 3X, 'AT I/J = Z ', Z8,1H/,Z8,3X,'DIR/SPD = Z ', Z8, - 2 1H/, Z8) - GO TO 966 - 955 CONTINUE -C COMES TO 955 IF I/J IS OUT OF RANGE OF MAP - IRET_WNB = 5 - WRITE(6,957) ISTN, JSTN, IDDGD, ISPEED - 957 FORMAT(1H ,'WNDBRK ERROR 5...LOCATION OFF MAP. ISTN = Z ', - 1 Z8, 3X, 'JSTN = Z ', Z8, 3X, 'DIR/SPD = Z ', Z8, 1H/, Z8) - GO TO 966 - 966 CONTINUE - NWOK = 0 - GO TO 999 - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/ras2bit.fd/HEAP.RAS2BITY b/util/sorc/ras2bit.fd/HEAP.RAS2BITY deleted file mode 100755 index 5a6912950f..0000000000 --- a/util/sorc/ras2bit.fd/HEAP.RAS2BITY +++ /dev/null @@ -1 +0,0 @@ -HEAP=2500000+5000000 diff --git a/util/sorc/ras2bit.fd/compile_ras2bit_wcoss.sh b/util/sorc/ras2bit.fd/compile_ras2bit_wcoss.sh deleted file mode 100755 index 4121b285fe..0000000000 --- a/util/sorc/ras2bit.fd/compile_ras2bit_wcoss.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x -mkdir -p ../../exec -make -mv ras2bit ../../exec -make clean diff --git a/util/sorc/ras2bit.fd/makefile b/util/sorc/ras2bit.fd/makefile deleted file mode 100755 index 45ab5b409c..0000000000 --- a/util/sorc/ras2bit.fd/makefile +++ /dev/null @@ -1,26 +0,0 @@ -SHELL=/bin/sh -# -SRCS= ras2bit.f - -OBJS= ras2bit.o - -FC = ifort -LFLAGS = -LIBS = ${W3EMC_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} - -CMD = ras2bit - -FFLAGS = -O -assume byterecl - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - echo 'HEAP=2500000+5000000' >HEAP.RAS2BITY - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -clean: - -rm -f $(OBJS) - diff --git a/util/sorc/ras2bit.fd/ras2bit.f b/util/sorc/ras2bit.fd/ras2bit.f deleted file mode 100755 index 4f894c8c6c..0000000000 --- a/util/sorc/ras2bit.fd/ras2bit.f +++ /dev/null @@ -1,192 +0,0 @@ - PROGRAM RAS2BIT -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: GRAPH_RAS2BIT -C PRGMMR: KUMAR ORG: NP12 DATE: 2000-02-14 -C -C ABSTRACT: read generic pixel image with generic unspecified header -C and compress the pixels to bits. 0 is off while 1-255 are on -C -C PROGRAM HISTORY LOG: -C 96-11-18 George VandenBerghe first written -C 96-12-29 George VandenBerghe standardized documentation -C 99-01-21 Weidong Jiang converted to IBM RS6000 SP and tested -C 1999-12-20 Krishna Kumar modified to run for the IBM RS/6000 -C replaced PACK a CRAY specific routine -C with SBYTES in the W3LIB90. At the -C script level a header file -C "ras2bity.header" is cat-ed to -C the bitmap output on f59 in order to -C attach CNTR header to generic bitmap -C thereby eliminating the glue program -C HGLUE. -C -C USAGE: -C INPUT FILES: -C f11 - pixels with undefined and unused header -c fort.5 - standard input resolution information -c -C PARM - from fort.5 file size, pixels/scanline and #scanlines -C -C OUTPUT FILES: (INCLUDING SCRATCH FILES) -C f59 - bitmap output (sans any header) -C FT06F001 - a few lines -C -C SUBPROGRAMS CALLED: (LIST ALL CALLED FROM ANYWHERE IN CODES) -C UNIQUE: - SB -C LIBRARY: -C W3LIB -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C =NNNN - system errors only -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C Replaced CRAY specific pack routine with SBYTES from -C the W3LIB90 -C -C ATTRIBUTES: -C LANGUAGE: Fortran 90 -C MACHINE: IBM RS6000 SP -C -C$$$ -c -c CONVERT X WINDOW DUMP PIXELS TO RAW BITMAP. -c inverted bitmap is written (i.e bit rectangle is flipped -c on scanline axis ) -C ZERO PIXELS SET TO 'OFF', ALL OTHER VALUES SET TO 'ON' -c -C INPUT .. f11 (stream of bits) -c FORT.5 reads size of window dump and resolution. -c -c OUTPUT .. f59 -c -c PROGRAMMER George VandenBerghe 11/25/1996 -c -c HISTORY 11/25/1996 written -c LANGUAGE Cray fortran 77. -c - CALL W3TAGB('GRAPH_RAS2BIT',2000,0045,0093,'NP12') - - - print *, - 1 ' SPECIFY TOTAL XWD SIZE (BYTES), PIXELS/LINE AND SCANLINES' - read(5,101) itotal,ix,iy - 101 format(i10) - print *, - 1 ' TOTAL XWD SIZE (BYTES), PIXELS/LINE AND SCANLINES ARE' - 1,itotal,ix,iy - iwd=ix*iy/8 -c print 194,itotal,ix,iy,iwd - 194 format(4i10) - call sb(itotal,ix,iy,iwd) - print *,' WROTE ',iy,' SCANLINES',ix,' PIXELS/LINE to UNIT 9' - CALL W3TAGE('GRAPH_RAS2BIT') - stop - end - - subroutine sb(itotal,ix,iy,iwd) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PGM-NAME DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: YOUR NAME ORG: W/NMCXX DATE: YY-MM-DD -C -C ABSTRACT: START ABSTRACT HERE AND INDENT TO COLUMN 5 ON THE -C FOLLOWING LINES. SEE NMC HANDBOOK SECTION 3.1.1. FOR DETAILS -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR(S)'S NAME(S) HERE -C -C 96-12-17 George VandenBerghe -C 99-01-21 Weidong Jiang made it portable between ibm and cray -C 1999-12-20 Krishna Kumar replaced the CRAY specific PACK using -C sbytes of the w3lib90 -C -C YY-MM-DD MODIFIER1 DESCRIPTION OF CHANGE -C YY-MM-DD MODIFIER2 DESCRIPTION OF CHANGE -C -C USAGE: CALL PGM-NAME(INARG1, INARG2, WRKARG, OUTARG1, ... ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -c all arguments are input. THe subroutine packs the -c 8 bit pixel array "itotal" dimensioned ix,iy into -c a second array of length ix*iy/8 and writes this -c to fortran unit 59 -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -c An 8-bit integer array is added in the original -c code and explicit conversion from integer to -c character is made before writing to fort.59. -c This is necessary when testing this program on -c Cray. IBM compiler can handle implicit integer- -c character conversion, so the original code is ok -c when running on IBM RS6000 SP. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ - dimension ib(itotal) - dimension i5(ix,iy) - dimension in(ix/8,iy),ibytes(iwd) -c - character*1 i5, ib - character*1 ibytes - dimension ifull(ix,iy) -c -c equivalence (in,i5) -c -ckumar file name for unit 11 has not been defined -ckumar in the open statement -c - ierr=11 -c - open(11,access='direct',recl=itotal,status='old', - & err=999) - read(11,rec=1) ib -c - l=itotal - do 10,k=1,iy - do 10,j=1,ix - ifull(j,k)=0 - if( mova2i(ib(l)) .gt. 0) ifull(j,k)=1 - l=l-1 - 10 continue -c -c Used sbytes from w3lib instead of CRAY specific PACK -c - nbits = 1 -c -ckumar call pack(ibytes,1,ifull,ix*iy) ! CRAY specific -c - call sbytes(ibytes,ifull,0,nbits,0,ix*iy) ! From W3LIB90 -c -c -ckumar file name for unit 59 has not been defined -ckumar in the open statement -c - open(59,access='direct',recl=ix*iy/8) -c - call byteswap(ibytes,4,ix*iy/8) -c - write(59,rec=1) ibytes -c - return - 999 print*,'Unable to open file on unit # 11 ' - call errexit(ierr) - end - diff --git a/util/sorc/ras2bity.fd/HEAP.RAS2BITY b/util/sorc/ras2bity.fd/HEAP.RAS2BITY deleted file mode 100755 index 5a6912950f..0000000000 --- a/util/sorc/ras2bity.fd/HEAP.RAS2BITY +++ /dev/null @@ -1 +0,0 @@ -HEAP=2500000+5000000 diff --git a/util/sorc/ras2bity.fd/compile_ras2bity_wcoss.sh b/util/sorc/ras2bity.fd/compile_ras2bity_wcoss.sh deleted file mode 100755 index abbf0e13a2..0000000000 --- a/util/sorc/ras2bity.fd/compile_ras2bity_wcoss.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x -mkdir -p ../../exec -make -mv ras2bity ../../exec -make clean diff --git a/util/sorc/ras2bity.fd/makefile b/util/sorc/ras2bity.fd/makefile deleted file mode 100755 index d4f6d08353..0000000000 --- a/util/sorc/ras2bity.fd/makefile +++ /dev/null @@ -1,26 +0,0 @@ -SHELL=/bin/sh -# -SRCS= ras2bity.f - -OBJS= ras2bity.o - -FC = ifort -LFLAGS = -LIBS = ${W3EMC_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} - -CMD = ras2bity -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - echo 'HEAP=2500000+5000000' >HEAP.RAS2BITY - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) -clean: - -rm -f ras2bity *.o - diff --git a/util/sorc/ras2bity.fd/makefile_org b/util/sorc/ras2bity.fd/makefile_org deleted file mode 100755 index 38edfcc4e7..0000000000 --- a/util/sorc/ras2bity.fd/makefile_org +++ /dev/null @@ -1,27 +0,0 @@ -SHELL=/bin/sh -# -SRCS= ras2bity.f - -OBJS= ras2bity.o - -FC = ifort -LFLAGS = -LIBS = -L/nwprod/lib -lw3emc_4 -lw3nco_4 -lbacio_4 -CMD = ras2bity -PROFLIB = -lprof - -# -FFLAGS = -O -g -traceback -C -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - echo 'HEAP=2500000+5000000' >HEAP.RAS2BITY - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) -clean: - /bin/rm -f ras2bity *.o - diff --git a/util/sorc/ras2bity.fd/ras2bity.f b/util/sorc/ras2bity.fd/ras2bity.f deleted file mode 100755 index c04631097d..0000000000 --- a/util/sorc/ras2bity.fd/ras2bity.f +++ /dev/null @@ -1,182 +0,0 @@ - program RAS2BITY -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: GRAPH_RAS2BITY -C PRGMMR: KUMAR ORG: NP12 DATE: 2000-02-14 -C -C ABSTRACT: read generic pixel image with generic unspecified header -C and compress the pixels to bits. 0 is off while 1-255 are on -C -C PROGRAM HISTORY LOG: -C 96-11-18 George VandenBerghe first written as ras2bit -C 96-12-29 George VandenBerghe standardized documentation -c 97-04-30 George VandenBerghe added rotation logic and changed name -c 1999-01-04 Krishna Kumar modified to run for the IBM RS/6000 -c replaced PACK a CRAY specific routine -c with SBYTES in the W3LIB90. At the -c script level a header file -c "ras2bity.header" is cat-ed to -c the bitmap output on f59 in order to -c attach CNTR header to generic bitmap -c thereby eliminating the glue program -c HGLUE. -C -C USAGE: -C INPUT FILES: -C f11 - pixels with undefined and unused header -C (ncar graphics output - gmeta file) -c fort.5 - standard input resolution information -c -C PARM - from fort.5 file size, pixels/scanline and #scanlines -C -C OUTPUT FILES: (INCLUDING SCRATCH FILES) -C f59 - bitmap output (scans any header) -C FT06F001 - a few lines -C -C SUBPROGRAMS CALLED: (LIST ALL CALLED FROM ANYWHERE IN CODES) -C UNIQUE: - SB -C LIBRARY: -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C =NNNN - system errors only -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C Replaced CRAY specific pack routine with SBYTES from -C the W3LIB90 -C -C ATTRIBUTES: -C LANGUAGE: Fortran 90 -C MACHINE: IBM -C -C$$$ -C -C CONVERT X WINDOW DUMP PIXELS TO RAW BITMAP. -C inverted bitmap is written (i.e bit rectangle is flipped -C on scanline axis ) -C bit rectangle is first rotated 90 degrees counterclockwise (ras2bit -C ZERO PIXELS SET TO 'OFF', ALL OTHER VALUES SET TO 'ON' -C - CALL W3TAGB('GRAPH_RAS2BITY',2000,0045,0090,'NP12') - - print *, - 1 ' SPECIFY TOTAL XWD SIZE (BYTES), PIXELS/LINE AND SCANLINES' -c - read(5,101) itotal,ix,iy - 101 format(i10) - print *, - 1 ' TOTAL XWD SIZE (BYTES), PIXELS/LINE AND SCANLINES ARE' - 1,itotal,ix,iy - iwd=ix*iy/8 - print 194,itotal,ix,iy,iwd - 194 format(4i10) -c*** - call sb(itotal,ix,iy,iwd) -c*** - print *,' WROTE ',iy,' SCANLINES',ix,' PIXELS/LINE to UNIT 9' -c - CALL W3TAGE('GRAPH_RAS2BITY') -c - stop - end -C -C******************************************************************** -C - subroutine sb(itotal,ix,iy,iwd) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: PGM-NAME DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-01-04 -C -C ABSTRACT: START ABSTRACT HERE AND INDENT TO COLUMN 5 ON THE -C FOLLOWING LINES. SEE NMC HANDBOOK SECTION 3.1.1. FOR DETAILS -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR(S)'S NAME(S) HERE -c -c 96-12-17 George VandenBerghe -C 1999-01-04 Krishna Kumar Converted this code from CRAY to IBM -C RS/6000 -C -C YY-MM-DD MODIFIER1 DESCRIPTION OF CHANGE -C YY-MM-DD MODIFIER2 DESCRIPTION OF CHANGE -C -C USAGE: CALL PGM-NAME(INARG1, INARG2, WRKARG, OUTARG1, ... ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -c all arguments are input. THe subroutine packs the -c 8 bit pixel array "itotal" dimensioned ix,iy into -c a second array of length ix*iy/8 and writes this -c to fortran unit 59 -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -c - dimension ib(itotal) - dimension i5(ix,iy) - dimension in(ix/8,iy),ibytes(iwd) -c - character*1 i5, ib - character*1 ibytes -cc dimension ifull(ix,iy) - dimension ifull(iy,ix) -c -c equivalence (in,i5) -c -ckumar file name for unit 11 has not been defined -ckumar in the open statement -c - ierr=11 -c - open(11,access='direct',recl=itotal,status='old', - & err=999) - read(11,rec=1) ib -c - l=itotal - do 10,k=1,iy - do 10,j=1,ix - jj=ix+1-j - ifull(k,jj)=0 - if( mova2i(ib(l)) .gt. 0) ifull(k,jj)=1 - l=l-1 - 10 continue -c -c Used sbytes from w3lib instead of CRAY specific PACK -c - nbits = 1 -c -ckumar call pack(ibytes,1,ifull,ix*iy) ! CRAY specific -c - call sbytes(ibytes,ifull,0,nbits,0,ix*iy) ! From W3LIB90 -c -c -ckumar file name for unit 59 has not been defined -ckumar in the open statement -c - open(59,access='direct',recl=ix*iy/8) -c - call byteswap(ibytes,4,ix*iy/8) - write(59,rec=1) ibytes -c - return - 999 print*,'Unable to open file on unit # 11' - call errexit(ierr) - end diff --git a/util/sorc/rdbfmsua.fd/compile_rdbfmsua_wcoss.sh b/util/sorc/rdbfmsua.fd/compile_rdbfmsua_wcoss.sh index b4b53ee370..872434108d 100755 --- a/util/sorc/rdbfmsua.fd/compile_rdbfmsua_wcoss.sh +++ b/util/sorc/rdbfmsua.fd/compile_rdbfmsua_wcoss.sh @@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no source ../../../sorc/machine-setup.sh > /dev/null 2>&1 cwd=`pwd` -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then +if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "hera" ] ; then echo " " echo " You are on WCOSS: $target " echo " " diff --git a/util/sorc/rdbfmsua.fd/makefile.theia b/util/sorc/rdbfmsua.fd/makefile.hera similarity index 100% rename from util/sorc/rdbfmsua.fd/makefile.theia rename to util/sorc/rdbfmsua.fd/makefile.hera diff --git a/util/sorc/rdbfmsua.fd/rdbfmsua.f b/util/sorc/rdbfmsua.fd/rdbfmsua.f index 343c985fcb..c2d5088920 100755 --- a/util/sorc/rdbfmsua.fd/rdbfmsua.f +++ b/util/sorc/rdbfmsua.fd/rdbfmsua.f @@ -27,6 +27,7 @@ PROGRAM RDBFUA C 2012-02-15 B. Mabe -- Changed Program name and output file to reflect C change to output for sig and man data C 2016-10-18 B. Vuong -- Removed hardwire '/nwprod/dictionaries/' in CALL FL_TBOP +C 2020-01-15 B. Vuong -- Increased dimensional array r8lvl(6,200) C C USAGE: C INPUT FILES: @@ -74,7 +75,7 @@ PROGRAM RDBFUA PARAMETER ( GPMSNG = -9999.0 ) PARAMETER ( MAXSTN = 10000 ) - REAL*8 r8hdr ( 9, 1 ), r8lvl ( 6, 100 ), r8arr( 1, 1 ) + REAL*8 r8hdr ( 9, 1 ), r8lvl ( 6, 200 ), r8arr( 1, 1 ) REAL*8 r8tmp ( 6, 100 ), r8out ( 6, 300 ),swpbuf REAL*8 r8tmptot ( 6, 300 ) diff --git a/util/sorc/rdbfmsua.fd/rdbfmsua.f_org b/util/sorc/rdbfmsua.fd/rdbfmsua.f_org index 06bdc781c5..343c985fcb 100755 --- a/util/sorc/rdbfmsua.fd/rdbfmsua.f_org +++ b/util/sorc/rdbfmsua.fd/rdbfmsua.f_org @@ -26,10 +26,12 @@ C 2012-01-24 J. Cahoon -- Modified from original RDBFUA to include C significant and standard together in output C 2012-02-15 B. Mabe -- Changed Program name and output file to reflect C change to output for sig and man data +C 2016-10-18 B. Vuong -- Removed hardwire '/nwprod/dictionaries/' in CALL FL_TBOP C C USAGE: C INPUT FILES: C UNIT 40 - adpupa dumpfile (contains data from BUFR tank b002/xx001) +C C sonde.land.tbl C metar.tbl C @@ -88,7 +90,7 @@ C*---------------------------------------------------------------------- C*---------------------------------------------------------------------- C* Open and read the sonde land station table. C*---------------------------------------------------------------------- - CALL FL_TBOP ( '/nwprod/dictionaries/sonde.land.tbl', + CALL FL_TBOP ( 'sonde.land.tbl', + 'stns', iunltb, iertop ) IF ( iertop .ne. 0 ) THEN print*,' error opening sonde land station table' @@ -145,7 +147,7 @@ C*---------------------------------------------------------------------- C* Open the BUFR file. C*---------------------------------------------------------------------- - CALL OPENBF ( 40, 'IN', 40 ) + CALL OPENBF ( 40, 'IN', 40 ) C*---------------------------------------------------------------------- C* Read a BUFR subset from the BUFR file. diff --git a/util/sorc/redsat.fd/HEAP.RAS2BITY b/util/sorc/redsat.fd/HEAP.RAS2BITY deleted file mode 100755 index 5a6912950f..0000000000 --- a/util/sorc/redsat.fd/HEAP.RAS2BITY +++ /dev/null @@ -1 +0,0 @@ -HEAP=2500000+5000000 diff --git a/util/sorc/redsat.fd/compile_redsat_wcoss.sh b/util/sorc/redsat.fd/compile_redsat_wcoss.sh deleted file mode 100755 index c5c7c06a9f..0000000000 --- a/util/sorc/redsat.fd/compile_redsat_wcoss.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x -mkdir -p ../../exec -make -mv redsat ../../exec -make clean diff --git a/util/sorc/redsat.fd/makefile b/util/sorc/redsat.fd/makefile deleted file mode 100755 index 7a99be443e..0000000000 --- a/util/sorc/redsat.fd/makefile +++ /dev/null @@ -1,26 +0,0 @@ -SHELL=/bin/sh -# -SRCS= redsat.f - -OBJS= redsat.o - -FC = ifort -LDFLAGS = -LIBS= ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} ${BUFR_LIB8} - -CMD = redsat -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - echo 'HEAP=2500000+5000000' >HEAP.RAS2BITY - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -clean: - rm -f $(OBJS) *.mod diff --git a/util/sorc/redsat.fd/makefile_org b/util/sorc/redsat.fd/makefile_org deleted file mode 100755 index b8f6976b07..0000000000 --- a/util/sorc/redsat.fd/makefile_org +++ /dev/null @@ -1,26 +0,0 @@ -SHELL=/bin/sh -# -SRCS= redsat.f - -OBJS= redsat.o - -FC = ifort -LDFLAGS = -LIBS = -L/nwprod/lib -lw3emc_8 -lw3nco_8 -lbacio_8 -lbufr_8_64 -CMD = redsat -PROFLIB = -lprof - -# -FFLAGS = -O -g -traceback -C -integer-size 64 -real-size 64 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - echo 'HEAP=2500000+5000000' >HEAP.RAS2BITY - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -clean: - rm -f $(OBJS) *.mod diff --git a/util/sorc/redsat.fd/redsat.f b/util/sorc/redsat.fd/redsat.f deleted file mode 100755 index 9fb0fb6c8f..0000000000 --- a/util/sorc/redsat.fd/redsat.f +++ /dev/null @@ -1,223 +0,0 @@ - program REDSATW -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: REDSAT EXTRACTS LOW LEVEL SAT WINDS FROM BUFR -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1998-12-28 -C -C ABSTRACT: read avn prepbufr file, extract low level sat. -C winds and write latitude, longitude, wind, and -C pressure level to formatted output file for -C downstream use. -C -C PROGRAM HISTORY LOG: -C 97-06-01 George VandenBerghe. New program -C 98-07-23 Krishna Kumar converted to f90 with Y2K -C compliance -C 1998-12-28 Krishna Kumar modified to run on IBM-SP 6000 -C 2013-03-12 Krishna Kumar ported this code to WCOSS -C 2017-10-16 Boi Vuong removed wind missing data from -C upper air PREPBUFR file. -C -C USAGE: -C INPUT FILES: -C fort.11 - GFS prepbufr input. -C -C OUTPUT FILES: -C fort.78 - output formatted satellite winds -C -C SUBPROGRAMS CALLED -C UNIQUE - RSAT -C LIBRARY - OPENBF READMG READSB UFBINT (bufr library) -C W3LIB -W3LOG -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C =NNNN - system errors only -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C BUFR library requirement makes this Cray specific. -C This program was written to contain this cray specific -C code in a separate small module. The formatted output -C is easy to ingest on other machines. It would be logically -C simpler to run this as a subroutine within a code that needed -C sat winds but that would require that TRPSFCMV -C run on a machine with robust bufr libraries, TRPSFCMV -C is now more portable. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM, -C -C$$$ - character*11 envvar ! for ibm_sp_6000 - character*80 filei,fileo ! for ibm_sp_6000 -c - dimension ary(6) ,rlims(4) - data rlims/50.,-50.,-360.,360/ -c - CALL W3TAGB('REDSAT ',1998,0204,0081,'NP12 ') - -c -c****** added for ibm_sp_6000 -c - in_unit=11 - envvar='FORT ' - write(envvar(9:10),fmt='(I2)') in_unit - call getenv(envvar,filei) - call baopen(in_unit,filei,iret) -c - io_unit=78 - envvar='FORT ' - write(envvar(9:10),fmt='(I2)') io_unit - call getenv(envvar,fileo) - call baopen(io_unit,fileo,iret) -c -c****** -c - do 10,k=1,9999999 - call rsat(rlims,in_unit,ary,iret) - if(iret .ne. 0) go to 99 -c -c Removed wind missing data from upper air PREPBUFR file -c to prevent bad wind speed data in output satwinds file. - if (ary(3).gt.850. .and. abs(ary(5)).lt.500.0) - & write (io_unit,101) ary - 101 format('SATWND',6f10.4) - 10 continue - 99 continue -c - CALL W3TAGE('REDSAT ') -c - stop - end -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDSAT READ UPPER AIR BUFR FILE -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1998-12-28 -C -C ABSTRACT: REDSAT READS THE PREPBUFR OBSERVATIONAL FILE AND -C RETURNS A SINGLE SATWND REPORT IN ARRAY DATA -C -C PROGRAM HISTORY LOG: -C 97-06-03 LARRY SAGER -C 1998-12-28 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO -C IBM RS/6000 SP SYSTEM. -C 2013-03-12 KRISHNA KUMAR PORTED THIS CODE FROM IBM RS/6000 -C TO WCOSS SYSTEM -C -C USAGE: CALL REDSAT (RLIMS, IUNS, DATA, IRET) -C INPUT ARGUMENT LIST: -C RLIMS - LAT/LONG LIMITS TO DUMP -C IUNS - UNIT NUMBER OF PREPBUFR FILE -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C DATA - THE RETURNED SATWND REPORT. -C - LAT, LONG, PRESALT, WDIR, WSP, WQM -C IRET - FLAG: IRET=0 NORMAL RETURN -C IRET=-1 END OF FILE -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT55F001 - PREPBUFR UPPER AIR DATA FILE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ - SUBROUTINE RSAT(RLIMS, IUNS, DATA, IRET) -C -C REDUPA READS THE PREPBUFR FILE AND RETURNS AN UNPACKED -C SATWND REPORT. -C - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CTEMP - CHARACTER*40 CATH, STRING -C - DIMENSION HDR (10) -C - REAL CRR (5,255) - REAL RLIMS (4) - REAL DATA(6) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA STRING /'SID XOB YOB DHR ELV TYP SQN'/ - DATA CATH /'CAT=6 POB DDO FFO WQM'/ - DATA IX /0/ -C -C----------------------------------------------------------------------| -C OPEN THE CRAY BUFR TANK FILE | -C----------------------------------------------------------------------| -C - SAVE - IRET = 0 - IMASS = 0 - IWIND = 0 - LUBFR = IUNS - IF( IX .EQ. 0) THEN - IX = 1 - INOUT = 'IN' -ckumar - LUNDX = IUNS -ckumar - CALL OPENBF( LUBFR, INOUT, LUNDX ) - 10 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF(IRET1 .NE. 0) GOTO 50 - ITYP = 0 - IF(SUBSET .NE. 'SATWND' ) GOTO 10 - ENDIF -C -C----------------------------------------------------------------------| -C READ THE BUFR DATA TANKS -C----------------------------------------------------------------------| -C - 20 CALL READSB (LUBFR,IRET2) - IF (IRET2 .LT. 0) THEN - 22 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF (IRET1 .LT. 0) GOTO 50 - IF(SUBSET .EQ. 'SATWND' ) GOTO 20 - GOTO 22 - END IF -C -C----------------------------------------------------------------------| -C READ IN THE STATION INFORMATION | -C----------------------------------------------------------------------| -C - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C PRINT 119,HDR(1),HDR(6) - 119 FORMAT(' STATION ',A8,' subtype ',F10.1) -C -C MAKE SURE THIS STATION IS WITHIN THE LAT/LONG LIMITS -C - IF((HDR(3) .GT. RLIMS(1)) .OR. (HDR(3) .LT. RLIMS(2))) - 1 GOTO 20 - IF((HDR(2) .LT. RLIMS(3)) .OR. (HDR(2) .GT. RLIMS(4))) - 1 GOTO 20 -C -C----------------------------------------------------------------------| -C UNPACK THE BUFR REPORT -C----------------------------------------------------------------------| -C - IF((HDR(6) .GE. 240.) .AND. (HDR(6) .LE. 246.))THEN - CALL UFBINT (LUBFR, CRR, 5, 255, NRET2, CATH) -C PRINT *,'SATWNDS ',CRR(2,1),CRR(3,1) - DATA(1) = HDR(3) - DATA(2) = HDR(2) - DATA(3) = CRR(1,1) - DATA(4) = CRR(2,1) - DATA(5) = CRR(3,1) - DATA(6) = CRR(4,1) -C PRINT *,' DATA ',(DATA(KK),KK=1,6) - ELSE - GOTO 20 - END IF - RETURN -C - 50 IRET = -1 - - RETURN - END diff --git a/util/sorc/rsonde.fd/RSONDE.f b/util/sorc/rsonde.fd/RSONDE.f deleted file mode 100755 index 19c8f7a326..0000000000 --- a/util/sorc/rsonde.fd/RSONDE.f +++ /dev/null @@ -1,118 +0,0 @@ - program RSONDE -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: RSONDE -C PRGMMR: SAGER ORG: NP12 DATE: 1999-09-27 -C -C ABSTRACT: Generate formatted radiosonde -c report. Used downstream by WNDANLFV and -c also easily human readable for data debugging -c purposes. -C -C PROGRAM HISTORY LOG: -C 97-01-17 VandenBerghe first written -C 98-07-09 Sager Y2K testing and conversion to f90 compiler -C 99-09-10 Sager Conversion to IBM SP -C -C USAGE: -C INPUT FILES: -c fort.11 - bufr "prepbufr" file containing radiosonde -c reports -c assigned -Fcos fort.10 -c fort.5 (stdin) single word of text specifying "P" or "Z" -c directs program to extract pressure or geopotentia -c from fort.10. BUFRLIB bug prevents concurrent ext -c of both (grumble grumble!!) -C -C OUTPUT FILES: (INCLUDING SCRATCH FILES) -C -c fort.51 formatted sounding report -C -C SUBPROGRAMS CALLED: -C UNIQUE: - redupa -C LIBRARY: - UFBINT OPENBF READMG READSB -C COMMON - none -C W3LIB - W3TAG -c libraries are loaded with -l /nwprod/w3lib -l /nwprod/bufrlib/bu -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C =NNNN - system library return codes .. no user -c - return codes -C -C REMARKS: -C -C ATTRIBUTES: -C MACHINE: IBM SP -C -C$$$ - Character*8 sre,ere - character*1 cflag - common/stuff/pad(1000),hdr,pa2(1000),arr - common/dat/idate - dimension hdr(10) - character*80 chead - equivalence (chead,hdr) - dimension arr(10,255) - CALL W3TAGB('RSONDE',1999,0270,0060,'NP12') - - read(5,901) cflag - 901 format(a1) -C print *,' cflag is ',cflag - sre=' 70' - ere=' 78' - inum=1 - do 10,k=1,300000 - do l=1,10 - do m=1,255 - arr(l,m)=0 - end do - end do - do l=1,10 - hdr(l)=0 - end do - if(cflag .eq. 'P' )call redupap(sre,ere,hdr,arr,is,is2) -C PRINT *,' returning from redupap' - if(cflag .eq. 'Z') call redupaz(sre,ere,hdr,arr,is,is2) - if(cflag .ne. 'Z' .and. cflag .ne. 'P') then - print *,' ERROR IN SPECIFYING PRESSURE/Z CHOICE' - call errexit (240) - endif -c call redupa(sre,ere,hdr,arr,is,is2) -C print *,' is2 is ',is2 -C -C Test for end of file. If found, stop normally -C - if(is2 .ne. 0) THEN - stop 'redupa ' - CALL W3TAGE('RSONDE') - END IF - do 40,l=1,39 - do 40,j=1,10 - if(arr(j,l) .gt. 999999 .or. arr(j,l) .lt. -999999) - 1 arr(j,l)=-999999 - 40 continue - do 12,kl=1,39 - if(arr(9,kl) .gt. 2.0) then - arr(5,kl)=-999999 - arr(6,kl)=-999999 - endif - if(arr(8,kl) .gt. 2.0) arr(4,kl)=-999999 - if(arr(8,kl) .gt. 2.0) arr(3,kl)=-999999 - if(arr(1,kl) .le. 1200. .and. arr(1,kl) .ge. 0.) -cyy 1 print 102,chead(1:8),hdr(2),hdr(3),(arr(n,kl),n=1,10), - 1 Write(51,102)chead(1:8),hdr(2),hdr(3),(arr(n,kl),n=1,10), - 1 idate - if(arr(1,kl) .gt. 1200. .or. arr(1,kl) .lt. 0.) -cj 1 print 192,chead(1:8),hdr(2),hdr(3),(arr(n,kl),n=1,10), - 1 Write(51,192)chead(1:8),hdr(2),hdr(3),(arr(n,kl),n=1,10), - 1 idate - 12 continue - 102 format(a8,1x,f6.2,1x,f6.2,1x,10(f10.2,1x),i10,' SNDP') - 192 format(a8,1x,f6.2,1x,f6.2,1x,10(f10.2,1x),i10,' SNDZ') - 10 continue - 101 format(10f8.2) -C - CALL W3TAGE('RSONDE') - stop - end diff --git a/util/sorc/rsonde.fd/compile_rsonde_wcoss.sh b/util/sorc/rsonde.fd/compile_rsonde_wcoss.sh deleted file mode 100755 index e73ef6d214..0000000000 --- a/util/sorc/rsonde.fd/compile_rsonde_wcoss.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x -mkdir -p ../../exec -make -mv rsonde ../../exec -make clean diff --git a/util/sorc/rsonde.fd/makefile b/util/sorc/rsonde.fd/makefile deleted file mode 100755 index 6965a5d823..0000000000 --- a/util/sorc/rsonde.fd/makefile +++ /dev/null @@ -1,51 +0,0 @@ -SHELL=/bin/sh -# -SRCS= RSONDE.f redupap.f redupaz.f - -OBJS= RSONDE.o redupap.o redupaz.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# - -FC = ifort - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} ${BUFR_LIB8} - -CMD = rsonde - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED - -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -assume byterecl -convert big_endian \ - -assume noold_ldout_format - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) $(BUFR) - -# Make the profiled version of the command and call it a.out.prof -# -# $(CMD).prof: $(OBJS) -# $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/rsonde.fd/makefile_org b/util/sorc/rsonde.fd/makefile_org deleted file mode 100755 index 30d1c7f4b4..0000000000 --- a/util/sorc/rsonde.fd/makefile_org +++ /dev/null @@ -1,50 +0,0 @@ -SHELL=/bin/sh -# -SRCS= RSONDE.f redupap.f redupaz.f - -OBJS= RSONDE.o redupap.o redupaz.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# - -FC = ifort -LIBS = -L/nwprod/lib/graphics -lgphcntr_8 -lgphfont_8 -lgph_8 -lutil \ - -L/nwprod/lib -lw3emc_8 -lw3nco_8 -lip_8 -lsp_8 -lbacio_8 -lbufr_8_64 - -CMD = rsonde - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED - -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -assume byterecl -convert big_endian \ - -assume noold_ldout_format - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) $(BUFR) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/rsonde.fd/redupap.f b/util/sorc/rsonde.fd/redupap.f deleted file mode 100755 index 17b6e8df84..0000000000 --- a/util/sorc/rsonde.fd/redupap.f +++ /dev/null @@ -1,323 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDUPAP READ UPPER AIR BUFR FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: REDUPAP READS THE PREPBUFR OBSERVATIONAL FILE AND -C RETURNS A SINGLE STATION IN AN ARRAY. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -c 97-01-17 George Vandenberghe. Added mandatory Z level logic -c -C -C USAGE: CALL REDUPA (SRE, ERE, HDR, ARR, NRET1, IRET) -C INPUT ARGUMENT LIST: -C SRE - STARTING WMO BLOCK NUMBER TO DUMP -C ERE - ENDING WMO BLOCK NUMBER TO DUMP -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C HDR - HEADER RECORD FOR STATION. CONTAINS -C - ID, LONG, LAT, HOUR, ELEVATION AND TYPE. -C ARR - DATA ARRAY FOR MANDATORY LEVEL DATA -C HEIGHT, TEMPERATURE, DEW PT, WIND SPEED -C WIND DIRECTION AND Q-MARKS -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT55F001 - PREPBUFR UPPER AIR DATA FILE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY F90 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE REDUPAP( SRE, ERE, HDR, ARR, NRET1, IRET) -C -C REDUPA READS THE PREPBUFR FILE AND RETURNS AN UNPACKED -C BUFR REPORT. -C - common/dat/IDATE - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CTEMP - CHARACTER*8 SRE, ERE - CHARACTER*40 CATA, CATB, STRING - character*40 catc,catd,cate -C - DIMENSION HDR (10) -C - REAL ARR (10,255) - REAL BRR (6,255),BRR1(6,255),brr2(4,255) - REAL CRR (5,255),crr1(5,255) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA STRING /'SID XOB YOB DHR ELV TYP'/ -c DATA CATA /'CAT=1 POB ZOB ZQM TOB TQM TDO '/ -c DATA CATB /'CAT=1 POB DDO FFO WQM'/ - DATA CATA /'CAT=2 POB ZOB ZQM TOB TQM TDO '/ - DATA CATB /'CAT=2 POB DDO FFO WQM'/ - DATA CATC /'CAT=1 POB ZOB ZQM TOB TQM TDO '/ - DATA CATD /'CAT=1 POB DDO FFO WQM'/ - DATA CATE /'CAT=4 ZOB DDO FFO WQM '/ - DATA IX /0/ -c MUST SAVE LOCAL VARIABLES ACCROSS -c SUBROUTINE CALLS SEVERE BUG IN -c ORIGINAL REDUPA REPAIRED WITH FOLLOWING -c SAVE STATEMENT (George VandenBerghe 1/15/97) -c************** - SAVE -c*************** -C -C----------------------------------------------------------------------| -C 1. OPEN THE FILE | -C----------------------------------------------------------------------| -C OPENBF: Opens the file for reading. | -C INPUT: LUBFR: Specifies the logical unit containing the file | -C to be read from. | -C INOUT: Opens the file for reading when INOUT is set | -C to IN. | -C LUNDX: Specifies the logical unit containing the BUFR | -C tables. If the tables are contained | -C in the BUFR messages, LUNDX = LUBFR. | -C OUTPUT: NONE | -C----------------------------------------------------------------------| -C Let us upen a file of BUFR messages containing PIBAL, RADIOSONDE,| -C and DROPSONDE data for reading. Since the BUFR TEMPLATE for | -C this type of data is not contained within the BUFR message itself| -C itself, the BUFR message is on logical unit 10 while the BUFR | -C TEMPLATE for that data is on logical unit 20. | -C----------------------------------------------------------------------| -C - IRET = 0 - IMASS = 0 - IWIND = 0 - ITEMP=LUBFR - LUBFR = 11 - IF( IX .EQ. 0) THEN - IX = 1 - INMG = 0 - INOUT = 'IN' - LUNDX = 11 - CALL DATELEN(10) - CALL OPENBF( LUBFR, INOUT, LUNDX ) - ENDIF -C -C----------------------------------------------------------------------| -C -C READ THE BUFR DATA TANKS -C -C -C----------------------------------------------------------------------| -C 3. ADVANCE THE POINTER TO THE NEXT BUFR MESSAGE IN THE FILE | -C AND READ THE BUFR MESSAGE INTO AN INTERNAL BUFFER | -C----------------------------------------------------------------------| -C READMG: Advances the input message pointer to the next | -C BUFR message in the file and reads the message, | -C without change, into an internal buffer. | -C INPUT: LUBFR: Defined under OPENBF. | -C OUTPUT: SUBSET: Contains the table A mnemonic associated | -C with the type of data in the BUFR message. | -C IDATE: Contains the year, month, day, and hour | -C from Section 1 of the BUFR message. | -C IRET1: If IRET = 0, the read has been successful | -C If IRET = -1, and end-of-file has been read. | -C----------------------------------------------------------------------| -C Call READMG to advance the pointer to the next BUFR message | -C and read it. | -C----------------------------------------------------------------------| -C - 10 IF ( INMG .EQ. 0) THEN - CALL READMG( LUBFR, SUBSET, IDATE, IRET1) - IF (IRET1 .NE. 0) GO TO 50 - IF (SUBSET .NE. 'ADPUPA' ) GOTO 10 - INMG = 1 - END IF -C -C -C----------------------------------------------------------------------| -C 4. READ AND UNPACK THE BUFR MESSAGE | -C----------------------------------------------------------------------| -C READSB: Reads and unpacks the BUFR message placed in | -C the internal buffer by READMG into an indexed | -C and expanded internal buffer. | -C INPUT: LUBFR: Defined under OPENBF | -C OUTPUT: IRET2: Set to 0 (zero) when operation was | -C successful and data is available for | -C user access. Set to -1 when all | -C subsets have been processed, and | -C another call to READMG is required to | -C read the next BUFR message. | -C----------------------------------------------------------------------| -C INITIALIZE IRET2 TO 0 AND READ THIS UNPACKED BUFR MESSAGE | -C UNTIL SUBSETS HAVE BEEN READ. | -C----------------------------------------------------------------------| -C - 20 CALL READSB (LUBFR,IRET2) - IF (IRET2 .LT. 0) THEN - INMG = 0 - GO TO 10 - END IF -C -C----------------------------------------------------------------------| -C 5. ACCESS RELEVANT PARTS OF THE UNPACKED BUFR MESSAGE | -C----------------------------------------------------------------------| -C UFBINT: Transfers data values either (a) from the internal | -C buffer produced by READSB to the user, or (b) from | -C the user to an internal buffer for subsequent | -C writing out by WRITSB. When using UFBINT for | -C purpose (a), the following definitions apply: | -C INPUT: LUBFR: Defined under OPENBF. | -C I1: The maximum first dimension of ARR. This | -C dimension must be large enough to hold | -C the maximum number of parameters to be | -C accessed and placed into array ARR. | -C I2: The maximum second dimension of ARR. This | -C dimension must be large enough to hold | -C the maximum number of repetitions of the | -C set of parameters to be accessed and | -C placed into array ARR. | -C STR: String of mnemonics indicating which | -C parameters to be placed into array ARR. | -C Note that there cannot be more than I1 | -C mnemonics in STR. | -C OUTPUT: ARR: A two-dimensional array containing real | -C NRET: The number of sets of requested parameters | -C - those indicated by the mnemonics in | -C STR - that were retrieved by UFBINT and | -C placed into array ARR. | -C----------------------------------------------------------------------| -C 5c. THIRD, ACCESS THE WMO BLOCK AND STATION NUMBER FOR THIS | -C OBSERVATION. Note that the block number (mnemonic = | -C WMOB) is returned in ARR(1,1) and the station number | -C (mnemonic = WMOS) in ARR(2,1). They are combined into | -C one 5-digit number for printing. This case is like the | -C in 5a. | -C---------------------------------------------------------------------| -C - - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C -C PROCESS ONLY THOSE REPORTS REQUESTED -C - RTEMP = HDR (1) - call byteswap(ITEMP, 8, 1) - ITEMP = ISHFT(ITEMP,-48) - call byteswap(ITEMP, 8, 1) -c print * ,ctemp,sre -c1 IF((CTEMP .LT. SRE) .OR. (CTEMP .GT. ERE)) GO TO 20 -c print *,' a ',ctemp(1:1),' b ',ctemp(2:2),' c ',ctemp(3:3), -c 1 ' d ',ctemp(4:4),' e ',ctemp(5:5),' f ',ctemp(6:6),' g ', -c 1 ctemp(7:7),' h ',ctemp(8:8) - if(ctemp(7:7) .ne. '7') go to 20 -c print *,' no 20 ',ctemp,sre -c print *,' HEADER(5) ',hdr(5) -cc write(57,195) hdr(1) - 195 format(' HEADERR ',a9) -C---------------------------------------------------------------------| -C 5e. FIFTH, ACCESS THE PRESSURE (mnemonic - PRLC), | -C GEOPOTNETIAL (mnemonic = GP10 | -C TEMPERATATURE (mnemonic - TMDB), DEW POINT "(mnemonic = | -C TMDP), WIND DIRECTION (mnemonic = WDIR), WIND SPEED | -C (mnemonic = WSPD), and VERTICAL SOUNDING SIGNIFICANCE | -C (mnemonic - VSIG) for all pressure levels in this part. | -C Note that if the pressure is available, the geopotential | -C if given, will be in GP10. If the pressure is not | -C available, the geopotential , if given, will be in GP07. | -C This example is a combination of examples 5a. and 5b. | -C The result is that the full set of parameters - for the | -C first pressure level - will be in ARR(1,1) - ARR(8,1), | -C respectively, the second set - for the second pressure | -C level - in ARR(1,2) - ARR(8,2), respectively, and so on | -C until the NRETth set is in ARR(1,NRET) - ARR(8,NRET), | -C respectively. | -C---------------------------------------------------------------------| -C - nret2=0 - nret1=0 - nretz=0 -c nret1a=0 - IF (HDR(6) .EQ. 120.) THEN -c CALL UFBINT (LUBFR, BRR, 6, 255, NRET1, CATA) - CALL UFBINT (LUBFR, BRR1, 6, 255, NRET1A, CATC) - IMASS = 1 - END IF - IF (HDR(6) .eq. 220.) THEN -c CALL UFBINT (LUBFR, CRR, 5, 255, NRET2, CATB) - CALL UFBINT (LUBFR, CRR1, 5, 255, NRET2, CATD) -c CALL UFBINT (LUBFR, BRR2, 4, 255, NRETZ, CATE) -c if(NRETZ .ne. 0) then -c print *,' NONZERO GEOMETRIC RETURN ' -c do k=1,nretz -c print *,' Z DATA ',brr2(1,k),brr2(2,k),brr2(3,k) -c 1 ,brr2(4,k) -c end do -c else -C print *,' ZERO GEOMETRIC RETURN' -c endif - IWIND = 1 - END IF - IF ((IMASS .EQ. 0) .OR. (IWIND .EQ. 0)) GO TO 20 -C -C STORE THE PIECES OF THE REPORT INTO AN ARRAY -C -c DATA CATC /'CAT=1 POB ZOB ZQM TOB TQM TDO '/ -c DATA CATD /'CAT=1 POB DDO FFO WQM'/ -c DATA CATE /'CAT=4 ZOB DDO FFO WQM '/ -C write(102,187)nret2,nret1a - 187 format(' nrets ',2i10) - DO K=1,NRETZ - arr(1,k)=-7 - arr(2,k)=brr2(1,k) - arr(5,k)=brr2(2,k) - arr(6,k)=brr2(3,k) - arr(9,k)=brr2(4,k) - arr(10,k)=hdr(5) - END DO - DO K=NRETZ+1,NRETZ+NRET1A - km=(k-nretz) -c search for pressure level in CRR1 which matches -c brr1(1,km). Assumption that CRR1(1,km)=BRR1(1,km) -c is not valid!! - kms=0 - do 87,ks=nretz+1,nretz+nret1a - kmd=(ks-nretz) - if(crr1(1,kmd) .eq. brr1(1,km)) then - kms=kmd - go to 89 - endif - kms=0 - 87 continue - 89 continue - - ARR (1,K) = BRR1 (1,Km) - ARR (2,K) = BRR1 (2,Km) - ARR (3,K) = BRR1 (4,Km) - ARR (4,K) = BRR1 (6,Km) -cccc ARR (5,K) = CRR1 (2,Km) -cccc ARR (6,K) = CRR1 (3,Km) - ARR (7,K) = BRR1 (3,Km) - ARR (8,K) = BRR1 (5,Km) -cccc ARR (9,K) = CRR1 (4,Km) -c assign winds - if(kms .gt. 0) then - ARR (5,K) = CRR1 (2,Kms) - ARR (6,K) = CRR1 (3,Kms) - ARR (9,K) = CRR1 (4,Kms) - endif -C if(kms .gt. 0 .and. arr(1,k) .ne. crr1(1,kms)) -C 1 write(102,*) ' PDIFF ', cctemp,' ',k,arr(1,k),crr1(1,kms) -C write(102,*)NRETZ+NRET1A -c arr9 is wqm, arr8 is tqm and arr7 is zqm - arr(10,k)= hdr(5) - END DO - - RETURN -C - 50 IRET = -1 - RETURN -C - END diff --git a/util/sorc/rsonde.fd/redupaz.f b/util/sorc/rsonde.fd/redupaz.f deleted file mode 100755 index e7a78b1ceb..0000000000 --- a/util/sorc/rsonde.fd/redupaz.f +++ /dev/null @@ -1,299 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDUPAZ READ UPPER AIR BUFR FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: REDUPA READS THE PREPBUFR OBSERVATIONAL FILE AND -C RETURNS A SINGLE STATION IN AN ARRAY. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -c 97-01-17 George Vandenberghe. Added mandatory Z level logic -c -C -C USAGE: CALL REDUPA (SRE, ERE, HDR, ARR, NRET1, IRET) -C INPUT ARGUMENT LIST: -C SRE - STARTING WMO BLOCK NUMBER TO DUMP -C ERE - ENDING WMO BLOCK NUMBER TO DUMP -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C HDR - HEADER RECORD FOR STATION. CONTAINS -C - ID, LONG, LAT, HOUR, ELEVATION AND TYPE. -C ARR - DATA ARRAY FOR MANDATORY LEVEL DATA -C HEIGHT, TEMPERATURE, DEW PT, WIND SPEED -C WIND DIRECTION AND Q-MARKS -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT55F001 - PREPBUFR UPPER AIR DATA FILE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY F90 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE REDUPAZ( SRE, ERE, HDR, ARR, NRET1, IRET) -C -C REDUPA READS THE PREPBUFR FILE AND RETURNS AN UNPACKED -C BUFR REPORT. -C - common/dat/IDATE - COMMON/dateln/LENDAT - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CTEMP - CHARACTER*8 SRE, ERE - CHARACTER*40 CATA, CATB, STRING - character*40 catc,catd,cate -C - DIMENSION HDR (10) -C - REAL ARR (10,255) - REAL BRR (6,255),BRR1(6,255),brr2(4,255) - REAL CRR (5,255),crr1(5,255) - INTEGER ITEMP - REAL RTEMP -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA STRING /'SID XOB YOB DHR ELV TYP'/ -c DATA CATA /'CAT=1 POB ZOB ZQM TOB TQM TDO '/ -c DATA CATB /'CAT=1 POB DDO FFO WQM'/ - DATA CATA /'CAT=2 POB ZOB ZQM TOB TQM TDO '/ - DATA CATB /'CAT=2 POB DDO FFO WQM'/ - DATA CATC /'CAT=1 POB ZOB ZQM TOB TQM TDO '/ - DATA CATD /'CAT=1 POB DDO FFO WQM'/ - DATA CATE /'CAT=4 ZOB DDO FFO WQM '/ - DATA IX /0/ -c MUST SAVE LOCAL VARIABLES ACCROSS -c SUBROUTINE CALLS SEVERE BUG IN -c ORIGINAL REDUPA REPAIRED WITH FOLLOWING -c SAVE STATEMENT (George VandenBerghe 1/15/97) -c************** - SAVE -c*************** -C -C----------------------------------------------------------------------| -C 1. OPEN THE FILE | -C----------------------------------------------------------------------| -C OPENBF: Opens the file for reading. | -C INPUT: LUBFR: Specifies the logical unit containing the file | -C to be read from. | -C INOUT: Opens the file for reading when INOUT is set | -C to IN. | -C LUNDX: Specifies the logical unit containing the BUFR | -C tables. If the tables are contained | -C in the BUFR messages, LUNDX = LUBFR. | -C OUTPUT: NONE | -C----------------------------------------------------------------------| -C Let us upen a file of BUFR messages containing PIBAL, RADIOSONDE,| -C and DROPSONDE data for reading. Since the BUFR TEMPLATE for | -C this type of data is not contained within the BUFR message itself| -C itself, the BUFR message is on logical unit 10 while the BUFR | -C TEMPLATE for that data is on logical unit 20. | -C----------------------------------------------------------------------| -C - IRET = 0 - IMASS = 0 - IWIND = 0 - ITEMP=LUBFR - LUBFR = 11 - IF( IX .EQ. 0) THEN - IX = 1 - INMG = 0 - INOUT = 'IN' - LUNDX = 11 - CALL OPENBF( LUBFR, INOUT, LUNDX ) - ENDIF -C -C----------------------------------------------------------------------| -C -C READ THE BUFR DATA TANKS -C -C -C----------------------------------------------------------------------| -C 3. ADVANCE THE POINTER TO THE NEXT BUFR MESSAGE IN THE FILE | -C AND READ THE BUFR MESSAGE INTO AN INTERNAL BUFFER | -C----------------------------------------------------------------------| -C READMG: Advances the input message pointer to the next | -C BUFR message in the file and reads the message, | -C without change, into an internal buffer. | -C INPUT: LUBFR: Defined under OPENBF. | -C OUTPUT: SUBSET: Contains the table A mnemonic associated | -C with the type of data in the BUFR message. | -C IDATE: Contains the year, month, day, and hour | -C from Section 1 of the BUFR message. | -C IRET1: If IRET = 0, the read has been successful | -C If IRET = -1, and end-of-file has been read. | -C----------------------------------------------------------------------| -C Call READMG to advance the pointer to the next BUFR message | -C and read it. | -C----------------------------------------------------------------------| -C - 10 IF ( INMG .EQ. 0) THEN - LENDAT = 10 - CALL READMG( LUBFR, SUBSET, IDATE, IRET1) - IF (IRET1 .NE. 0) GO TO 50 - IF (SUBSET .NE. 'ADPUPA' ) GOTO 10 - INMG = 1 - END IF -C -C -C----------------------------------------------------------------------| -C 4. READ AND UNPACK THE BUFR MESSAGE | -C----------------------------------------------------------------------| -C READSB: Reads and unpacks the BUFR message placed in | -C the internal buffer by READMG into an indexed | -C and expanded internal buffer. | -C INPUT: LUBFR: Defined under OPENBF | -C OUTPUT: IRET2: Set to 0 (zero) when operation was | -C successful and data is available for | -C user access. Set to -1 when all | -C subsets have been processed, and | -C another call to READMG is required to | -C read the next BUFR message. | -C----------------------------------------------------------------------| -C INITIALIZE IRET2 TO 0 AND READ THIS UNPACKED BUFR MESSAGE | -C UNTIL SUBSETS HAVE BEEN READ. | -C----------------------------------------------------------------------| -C - 20 CALL READSB (LUBFR,IRET2) - IF (IRET2 .LT. 0) THEN - INMG = 0 - GO TO 10 - END IF -C -C----------------------------------------------------------------------| -C 5. ACCESS RELEVANT PARTS OF THE UNPACKED BUFR MESSAGE | -C----------------------------------------------------------------------| -C UFBINT: Transfers data values either (a) from the internal | -C buffer produced by READSB to the user, or (b) from | -C the user to an internal buffer for subsequent | -C writing out by WRITSB. When using UFBINT for | -C purpose (a), the following definitions apply: | -C INPUT: LUBFR: Defined under OPENBF. | -C I1: The maximum first dimension of ARR. This | -C dimension must be large enough to hold | -C the maximum number of parameters to be | -C accessed and placed into array ARR. | -C I2: The maximum second dimension of ARR. This | -C dimension must be large enough to hold | -C the maximum number of repetitions of the | -C set of parameters to be accessed and | -C placed into array ARR. | -C STR: String of mnemonics indicating which | -C parameters to be placed into array ARR. | -C Note that there cannot be more than I1 | -C mnemonics in STR. | -C OUTPUT: ARR: A two-dimensional array containing real | -C NRET: The number of sets of requested parameters | -C - those indicated by the mnemonics in | -C STR - that were retrieved by UFBINT and | -C placed into array ARR. | -C----------------------------------------------------------------------| -C 5c. THIRD, ACCESS THE WMO BLOCK AND STATION NUMBER FOR THIS | -C OBSERVATION. Note that the block number (mnemonic = | -C WMOB) is returned in ARR(1,1) and the station number | -C (mnemonic = WMOS) in ARR(2,1). They are combined into | -C one 5-digit number for printing. This case is like the | -C in 5a. | -C---------------------------------------------------------------------| -C - - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C -C PROCESS ONLY THOSE REPORTS REQUESTED -C - RTEMP = HDR (1) - call byteswap(ITEMP, 8, 1) - ITEMP = ISHFT(ITEMP,-48) - call byteswap(ITEMP, 8, 1) -c print * ,ctemp,sre -c1 IF((CTEMP .LT. SRE) .OR. (CTEMP .GT. ERE)) GO TO 20 -c print *,' a ',ctemp(1:1),' b ',ctemp(2:2),' c ',ctemp(3:3), -c 1 ' d ',ctemp(4:4),' e ',ctemp(5:5),' f ',ctemp(6:6),' g ', -c 1 ctemp(7:7),' h ',ctemp(8:8) - if(ctemp(7:7) .ne. '7') go to 20 -c print *,' no 20 ',ctemp,sre -c print *,' HEADER(5) ',hdr(5) -cc write(57,195) hdr(1) - 195 format(' HEADERR ',a9) -C---------------------------------------------------------------------| -C 5e. FIFTH, ACCESS THE PRESSURE (mnemonic - PRLC), | -C GEOPOTNETIAL (mnemonic = GP10 | -C TEMPERATATURE (mnemonic - TMDB), DEW POINT "(mnemonic = | -C TMDP), WIND DIRECTION (mnemonic = WDIR), WIND SPEED | -C (mnemonic = WSPD), and VERTICAL SOUNDING SIGNIFICANCE | -C (mnemonic - VSIG) for all pressure levels in this part. | -C Note that if the pressure is available, the geopotential | -C if given, will be in GP10. If the pressure is not | -C available, the geopotential , if given, will be in GP07. | -C This example is a combination of examples 5a. and 5b. | -C The result is that the full set of parameters - for the | -C first pressure level - will be in ARR(1,1) - ARR(8,1), | -C respectively, the second set - for the second pressure | -C level - in ARR(1,2) - ARR(8,2), respectively, and so on | -C until the NRETth set is in ARR(1,NRET) - ARR(8,NRET), | -C respectively. | -C---------------------------------------------------------------------| -C - nret1=0 -c nretz=0 - nret1a=0 - IF (HDR(6) .EQ. 120.) THEN -c CALL UFBINT (LUBFR, BRR, 6, 255, NRET1, CATA) -c CALL UFBINT (LUBFR, BRR1, 6, 255, NRET1A, CATC) - IMASS = 1 - END IF - IF (HDR(6) .eq. 220.) THEN -c CALL UFBINT (LUBFR, CRR, 5, 255, NRET2, CATB) -c CALL UFBINT (LUBFR, CRR1, 5, 255, NRET2, CATD) - CALL UFBINT (LUBFR, BRR2, 4, 255, NRETZ, CATE) -c if(NRETZ .ne. 0) then -c print *,' NONZERO GEOMETRIC RETURN ' -c do k=1,nretz -c print *,' Z DATA ',brr2(1,k),brr2(2,k),brr2(3,k) -c 1 ,brr2(4,k) -c end do -c else -C print *,' ZERO GEOMETRIC RETURN' -c endif - IWIND = 1 - END IF - IF ((IMASS .EQ. 0) .OR. (IWIND .EQ. 0)) GO TO 20 -C -C STORE THE PIECES OF THE REPORT INTO AN ARRAY -C -c DATA CATC /'CAT=1 POB ZOB ZQM TOB TQM TDO '/ -c DATA CATD /'CAT=1 POB DDO FFO WQM'/ -c DATA CATE /'CAT=4 ZOB DDO FFO WQM '/ - DO K=1,NRETZ - arr(1,k)=-7 - arr(2,k)=brr2(1,k) - arr(5,k)=brr2(2,k) - arr(6,k)=brr2(3,k) - arr(9,k)=brr2(4,k) - arr(10,k)=hdr(5) - END DO - DO K=NRETZ+1,NRETZ+NRET1A - km=(k-nretz) - ARR (1,K) = BRR1 (1,Km) - ARR (2,K) = BRR1 (2,Km) - ARR (3,K) = BRR1 (4,Km) - ARR (4,K) = BRR1 (6,Km) - ARR (5,K) = CRR1 (2,Km) - ARR (6,K) = CRR1 (3,Km) - ARR (7,K) = BRR1 (3,Km) - ARR (8,K) = BRR1 (5,Km) - ARR (9,K) = CRR1 (4,Km) -c arr9 is wqm, arr8 is tqm and arr7 is zqm - arr(10,k)= hdr(5) - END DO - RETURN -C - 50 IRET = -1 - RETURN -C - END diff --git a/util/sorc/rsondplt.fd/compile_rsondplt_wcoss.sh b/util/sorc/rsondplt.fd/compile_rsondplt_wcoss.sh deleted file mode 100755 index c285bc76a5..0000000000 --- a/util/sorc/rsondplt.fd/compile_rsondplt_wcoss.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec -make -mv rsondplt ../../exec -make clean diff --git a/util/sorc/rsondplt.fd/makefile b/util/sorc/rsondplt.fd/makefile deleted file mode 100755 index a264309b09..0000000000 --- a/util/sorc/rsondplt.fd/makefile +++ /dev/null @@ -1,22 +0,0 @@ -SHELL=/bin/sh -# -# makefile to make both rsondplt executables with -# one make -SRCS= rsondplt.f -OBJS= rsondplt.o -FC = ifort -LDFLAGS = -LIBS= ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} ${BUFR_LIB8} - -CMD= rsondplt - -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -assume byterecl -convert big_endian \ - -assume noold_ldout_format -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -clean: - rm -f $(OBJS) *.mod diff --git a/util/sorc/rsondplt.fd/rsondplt.f b/util/sorc/rsondplt.fd/rsondplt.f deleted file mode 100755 index 29d9362eb7..0000000000 --- a/util/sorc/rsondplt.fd/rsondplt.f +++ /dev/null @@ -1,728 +0,0 @@ - program RSONDPLT -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: RSONDPLT -C PRGMMR: CARUSO ORG: NP12 DATE: 2000-03-13 -C -C ABSTRACT: Generate formatted radiosonde -c report. Used downstream by WNDANLFV and -c also easily human readable for data debugging -c purposes. -C -C PROGRAM HISTORY LOG: -C 97-01-17 VandenBerghe first written -c 98-04-07 Caruso modified to dump tropopause level obs. if -c indicated and renamed program to -c rsondplt -c 98-05-05 caruso consolidated this program with s/r's -c redupap and redupaz. added a common -c block (/dateln/lendat) to both s/r's -c to tell bufr s/r readmg.f to return -c a 10 digit date (includes a 4 digit -c year). -c 99-06-07 caruso convert to ibm. -c -C USAGE: -C INPUT FILES: -c fort.10 - bufr "prepbufr" file containing radiosonde -c fort.5 - single word of text specifying "P", "T", or "Z" -c (stdin) directs program to extract pressure, tropopause -c pressure, or geopotential height -c from fort.10. BUFRLIB bug prevents -c concurrent ext of both (grumble grumble!!) -C -C OUTPUT FILES: (INCLUDING SCRATCH FILES) -c fort.51 - formatted sounding report -C -C SUBPROGRAMS CALLED: -C UNIQUE: - redupap redupaz -C LIBRARY: - UFBINT OPENBF READMG READSB -C COMMON - none -c w3lib - w3tagb w3tag3 -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C =NNNN - system library return codes .. no user -c - return codes -C -C REMARKS: -C -C ATTRIBUTES: -c language: fortran 90. -C MACHINE: ibm -C$$$ - common/dateln/ lendat - integer lendat - - Character*8 sre,ere - character*1 cflag - common/stuff/pad(1000),hdr,pa2(1000),arr - common/dat/idate - dimension hdr(10) - character*80 chead - equivalence (chead,hdr) - dimension arr(10,255) - integer(8) iexit - - save - - CALL W3TAGB('RSONDPLT',2000,0073,0077,'NP12') - - iexit = 0 - read(5,901) cflag - 901 format(a1) - print*,' cflag = ',cflag - sre = ' 70' - ere = ' 78' - inum = 1 - do k = 1,300000 - do l = 1,10 - do m = 1,255 - arr(l,m)=0 - enddo - enddo - do l = 1,10 - hdr(l) = 0 - enddo - - if(cflag .eq. 'P' .or. cflag .eq. 'T' ) - * call redupap(cflag,sre,ere,hdr,arr,is,is2) - - if(cflag .eq. 'Z') call redupaz(sre,ere,hdr,arr,is,is2) - - if(cflag .ne. 'Z'.and.cflag .ne. 'P'.and. - * cflag .ne. 'T') then - print *,' ERROR IN SPECIFYING PRESSURE/Z CHOICE' - iexit = 240 - call errexit (iexit) - endif - if(is2 .ne. 0) stop 'redupa ' -c -c save hdr(4) (dhr) into integer -c - ihdr4 = nint(hdr(4)) - - do l = 1,39 - do j = 1,10 - if(arr(j,l) .gt. 999999 .or. arr(j,l) .lt. -999999) - 1 arr(j,l) = -999999 - enddo - enddo - do 12 kl = 1,39 -c -c check wqm. if bad, set wind dir and spd to miss. -c - if(arr(9,kl) .gt. 2.0) then !wqm is bad - arr(5,kl) = -999999 - arr(6,kl) = -999999 - endif -c -c check all array elements. if all are 0, don't write out -c this report. -c - if(arr(1,kl).eq.0.0.and.arr(2,kl).eq.0.0.and. - * arr(3,kl).eq.0.0.and.arr(4,kl).eq.0.0.and. - * arr(5,kl).eq.0.0.and.arr(6,kl).eq.0.0.and. - * arr(7,kl).eq.0.0.and.arr(8,kl).eq.0.0.and. - * arr(9,kl).eq.0.0.and.arr(10,kl).eq.0.0) go to 12 -c -c check wind dir and spd. if both are 0, set them to miss. -c - if(arr(5,kl).eq.0.0.and.arr(6,kl).eq.0.0) then - arr(5,kl) = -999999 - arr(6,kl) = -999999 - endif -c -c check tqm. if bad, set air temp and dew pt to miss. -c idate is date read in from bufr message (has a 4 digit year). -c - if(arr(8,kl) .gt. 2.0) arr(4,kl) = -999999 !tqm is bad - if(arr(8,kl) .gt. 2.0) arr(3,kl) = -999999 - if(arr(1,kl) .le. 1200. .and. arr(1,kl) .ge. 0.) - 1 Write(51,102)chead(1:8),hdr(2),hdr(3),(arr(n,kl),n=1,10), - 1 idate,ihdr4 - 102 format(a8,1x,f6.2,1x,f6.2,1x,10(f10.2,1x),i10,i4,' SNDP') - if(arr(1,kl) .gt. 1200. .or. arr(1,kl) .lt. 0.) - 1 Write(51,192)chead(1:8),hdr(2),hdr(3),(arr(n,kl),n=1,10), - 1 idate,ihdr4 - 192 format(a8,1x,f6.2,1x,f6.2,1x,10(f10.2,1x),i10,i4,' SNDZ') - 12 continue - enddo - CALL W3TAGE('RSONDPLT') - call errexit(iexit) - CALL W3TAGE('RSONDPLT') - stop - end -c===================================================================== - SUBROUTINE REDUPAP( CFLAG, SRE, ERE, HDR, ARR, NRET1, IRET) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDUPAP READ UPPER AIR BUFR FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: REDUPAP READS THE PREPBUFR OBSERVATIONAL FILE AND -C RETURNS A SINGLE STATION IN AN ARRAY. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -c 97-01-17 George Vandenberghe. Added mandatory Z level logic -C 98-03-26 CHRIS CARUSO - CHANGED FROM WIND DIR/WIND SPD TO -C U AND V WINDS -C 98-03-30 CHRIS CARUSO - CHANGED BACK TO WIND DIR/SPD. -c 98-04-07 chris caruso - added cflag to input argument list -c to determine whether we're getting regular -c pressure obs or tropopause pressure obs. -c 98-05-05 chris caruso - added common/dateln/lendat to set -c length of idate returned by readmg. if lendat=8, -c 2 digit year is returned. if lendat=10, 4 digit -c year is returned. consolidated this s/r with -c redupaz.f and rsondplt.f into one file. -C -C USAGE: CALL REDUPAP(CFLAG, SRE, ERE, HDR, ARR, NRET1, IRET) -C INPUT ARGUMENT LIST: -C CFLAG - CHAR*1 FLAG INDICATING WHETHER TO GET REGULAR -C PRESSURE OBS OR TROPOPAUSE PRESS. OBS. -C SRE - STARTING WMO BLOCK NUMBER TO DUMP -C ERE - ENDING WMO BLOCK NUMBER TO DUMP -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C HDR - HEADER RECORD FOR STATION. CONTAINS -C - ID, LONG, LAT, HOUR, ELEVATION AND TYPE. -C ARR - DATA ARRAY FOR MANDATORY LEVEL DATA -C HEIGHT, TEMPERATURE, DEW PT, WIND SPEED -C WIND DIRECTION AND Q-MARKS -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C Fort.55 - PREPBUFR UPPER AIR DATA FILE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: ibm -C -C$$$ -C -C REDUPA READS THE PREPBUFR FILE AND RETURNS AN UNPACKED -C BUFR REPORT. -C - common/dat/ IDATE - common/dateln/ lendat - integer lendat - - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CTEMP - CHARACTER*8 SRE, ERE - CHARACTER*1 CFLAG - CHARACTER*40 STRING - character*40 CATA, CATB, catc, catd -C - DIMENSION HDR (10) -C - REAL ARR (10,255) - REAL BRR (6,255),BRR1(6,255),brr2(4,255) - REAL CRR (5,255),crr1(5,255) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA STRING /'SID XOB YOB DHR ELV TYP'/ - DATA CATA /'CAT=5 POB ZOB ZQM TOB TQM TDO '/ - DATA CATB /'CAT=5 POB DDO FFO WQM'/ - DATA CATC /'CAT=1 POB ZOB ZQM TOB TQM TDO '/ - DATA CATD /'CAT=1 POB DDO FFO WQM'/ - DATA IX /0/ -c -c MUST SAVE LOCAL VARIABLES ACCROSS -c SUBROUTINE CALLS. SEVERE BUG IN -c ORIGINAL REDUPA REPAIRED WITH FOLLOWING -c SAVE STATEMENT (George VandenBerghe 1/15/97) -c************** - SAVE -c*************** -C -C----------------------------------------------------------------------| -C 1. OPEN THE FILE | -C----------------------------------------------------------------------| -C OPENBF: Opens the file for reading. | -C INPUT: LUBFR: Specifies the logical unit containing the file | -C to be read from. | -C INOUT: Opens the file for reading when INOUT is set | -C to IN. | -C LUNDX: Specifies the logical unit containing the BUFR | -C tables. If the tables are contained | -C in the BUFR messages, LUNDX = LUBFR. | -C OUTPUT: NONE | -C----------------------------------------------------------------------| -C Let us upen a file of BUFR messages containing PIBAL, RADIOSONDE,| -C and DROPSONDE data for reading. Since the BUFR TEMPLATE for | -C this type of data is not contained within the BUFR message itself| -C itself, the BUFR message is on logical unit 10 while the BUFR | -C TEMPLATE for that data is on logical unit 20. | -C----------------------------------------------------------------------| - IRET = 0 - IMASS = 0 - IWIND = 0 - ITEMP = LUBFR - LUBFR = 10 - IF( IX .EQ. 0) THEN - IX = 1 - INMG = 0 - INOUT = 'IN' - LUNDX = 10 - CALL OPENBF( LUBFR, INOUT, LUNDX ) - ENDIF -C----------------------------------------------------------------------| -C -C READ THE BUFR DATA TANKS -C -C----------------------------------------------------------------------| -C 3. ADVANCE THE POINTER TO THE NEXT BUFR MESSAGE IN THE FILE | -C AND READ THE BUFR MESSAGE INTO AN INTERNAL BUFFER | -C----------------------------------------------------------------------| -C READMG: Advances the input message pointer to the next | -C BUFR message in the file and reads the message, | -C without change, into an internal buffer. | -C INPUT: LUBFR: Defined under OPENBF. | -C OUTPUT: SUBSET: Contains the table A mnemonic associated | -C with the type of data in the BUFR message. | -C IDATE: Contains the year, month, day, and hour | -C from Section 1 of the BUFR message. | -C IRET1: If IRET1 = 0, the read has been successful | -C If IRET1 = -1, and end-of-file has been read.| -C----------------------------------------------------------------------| -C Call READMG to advance the pointer to the next BUFR message | -C and read it. | -c -c set lendat = 10 here, since openbf calls s/r bfrini, which -c sets lendat = 8. -C----------------------------------------------------------------------| - 10 IF( INMG .EQ. 0) THEN - lendat = 10 - CALL READMG( LUBFR, SUBSET, IDATE, IRET1) - IF (IRET1 .NE. 0) GO TO 50 - IF (SUBSET .NE. 'ADPUPA' ) GO TO 10 - INMG = 1 - ENDIF -C----------------------------------------------------------------------| -C 4. READ AND UNPACK THE BUFR MESSAGE | -C----------------------------------------------------------------------| -C READSB: Reads and unpacks the BUFR message placed in | -C the internal buffer by READMG into an indexed | -C and expanded internal buffer. | -C INPUT: LUBFR: Defined under OPENBF | -C OUTPUT: IRET2: Set to 0 (zero) when operation was | -C successful and data is available for | -C user access. Set to -1 when all | -C subsets have been processed, and | -C another call to READMG is required to | -C read the next BUFR message. | -C----------------------------------------------------------------------| -C INITIALIZE IRET2 TO 0 AND READ THIS UNPACKED BUFR MESSAGE | -C UNTIL SUBSETS HAVE BEEN READ. | -C----------------------------------------------------------------------| - 20 CALL READSB (LUBFR,IRET2) - IF(IRET2 .LT. 0) THEN - INMG = 0 - GO TO 10 - ENDIF -C----------------------------------------------------------------------| -C 5. ACCESS RELEVANT PARTS OF THE UNPACKED BUFR MESSAGE | -C----------------------------------------------------------------------| -C UFBINT: Transfers data values either (a) from the internal | -C buffer produced by READSB to the user, or (b) from | -C the user to an internal buffer for subsequent | -C writing out by WRITSB. When using UFBINT for | -C purpose (a), the following definitions apply: | -C INPUT: LUBFR: Defined under OPENBF. | -C I1: The maximum first dimension of ARR. This | -C dimension must be large enough to hold | -C the maximum number of parameters to be | -C accessed and placed into array ARR. | -C I2: The maximum second dimension of ARR. This | -C dimension must be large enough to hold | -C the maximum number of repetitions of the | -C set of parameters to be accessed and | -C placed into array ARR. | -C STR: String of mnemonics indicating which | -C parameters to be placed into array ARR. | -C Note that there cannot be more than I1 | -C mnemonics in STR. | -C OUTPUT: ARR: A two-dimensional array containing real | -C NRET: The number of sets of requested parameters | -C - those indicated by the mnemonics in | -C STR - that were retrieved by UFBINT and | -C placed into array ARR. | -C----------------------------------------------------------------------| -C 5c. THIRD, ACCESS THE WMO BLOCK AND STATION NUMBER FOR THIS | -C OBSERVATION. Note that the block number (mnemonic = | -C WMOB) is returned in ARR(1,1) and the station number | -C (mnemonic = WMOS) in ARR(2,1). They are combined into | -C one 5-digit number for printing. This case is like the | -C in 5a. | -C---------------------------------------------------------------------| - - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C -C PROCESS ONLY THOSE REPORTS REQUESTED -C - RTEMP = HDR (1) - call byteswap(ITEMP, 8, 1) - ITEMP = ISHFT(ITEMP,-48) - call byteswap(ITEMP, 8, 1) - if(ctemp(7:7) .ne. '7') go to 20 -C---------------------------------------------------------------------| -C 5e. FIFTH, ACCESS THE PRESSURE (mnemonic - PRLC), | -C GEOPOTNETIAL (mnemonic = GP10 | -C TEMPERATATURE (mnemonic - TMDB), DEW POINT "(mnemonic = | -C TMDP), WIND DIRECTION (mnemonic = WDIR), WIND SPEED | -C (mnemonic = WSPD), and VERTICAL SOUNDING SIGNIFICANCE | -C (mnemonic - VSIG) for all pressure levels in this part. | -C Note that if the pressure is available, the geopotential | -C if given, will be in GP10. If the pressure is not | -C available, the geopotential , if given, will be in GP07. | -C This example is a combination of examples 5a. and 5b. | -C The result is that the full set of parameters - for the | -C first pressure level - will be in ARR(1,1) - ARR(8,1), | -C respectively, the second set - for the second pressure | -C level - in ARR(1,2) - ARR(8,2), respectively, and so on | -C until the NRETth set is in ARR(1,NRET) - ARR(8,NRET), | -C respectively. | -C---------------------------------------------------------------------| - nret2 = 0 - nret1 = 0 - nretz = 0 -c -c hdr(6) is type -c - IF(HDR(6) .EQ. 120.) THEN - IF(CFLAG.EQ.'P') THEN - CALL UFBINT (LUBFR, BRR1, 6, 255, NRET1A, CATC) - ELSE !TROPOPAUSE - CALL UFBINT (LUBFR, BRR1, 6, 255, NRET1A, CATA) -c print*,' nret1a = ',nret1a - ENDIF - IMASS = 1 - ENDIF - IF(HDR(6) .eq. 220.) THEN - IF(CFLAG.EQ.'P') THEN - CALL UFBINT (LUBFR, CRR1, 5, 255, NRET2, CATD) - ELSE !TROPOPAUSE - CALL UFBINT (LUBFR, CRR1, 5, 255, NRET2, CATB) -c print*,' nret2 = ',nret2 - ENDIF - IWIND = 1 - ENDIF -c print*,' imass = ',imass,' iwind = ',iwind - IF((IMASS .EQ. 0) .OR. (IWIND .EQ. 0)) GO TO 20 -C -C STORE THE PIECES OF THE REPORT INTO AN ARRAY -C - DO K = NRETZ + 1, NRETZ + NRET1A - km = (k - nretz) -c print*,' km = ',km -c print 968,crr1(1,km),brr1(1,km) -c 968 format(' crr1 = ',f10.2,' brr1 = ',f10.2) -c search for pressure level in CRR1 which matches -c brr1(1,km). Assumption that CRR1(1,km)=BRR1(1,km) -c is not valid!! - kms = 0 - do 87 ks = nretz + 1, nretz + nret1a - kmd = (ks - nretz) - if(crr1(1,kmd) .eq. brr1(1,km)) then - kms = kmd - go to 89 - endif - kms = 0 - 87 continue - 89 continue -c -c arr1 is pressure, arr2 is height, arr3 is temp., -c arr4 is dew point, arr7 is zqm and arr8 is tqm. -c - ARR (1,K) = BRR1 (1,Km) - ARR (2,K) = BRR1 (2,Km) - ARR (3,K) = BRR1 (4,Km) - ARR (4,K) = BRR1 (6,Km) - ARR (7,K) = BRR1 (3,Km) - ARR (8,K) = BRR1 (5,Km) -C -c assign winds -C - if(kms .gt. 0) then - ARR (5,K) = CRR1 (2,Kms) - ARR (6,K) = CRR1 (3,Kms) - ARR (9,K) = CRR1 (4,Kms) - endif - - arr(10,k) = hdr(5) -C -c arr5 is wind dir, arr6 is wind spd, -c arr9 is wqm, arr10 is elevation. -c -c print 988,arr(1,k),arr(2,k),arr(3,k),arr(4,k),arr(5,k) -c 988 format(' arr1 = ',f10.2,' arr2 = ',f10.2, -c * ' arr3 = ',f10.2,' arr4 = ',f10.2,' arr5 = ',f10.2) -c print 987,arr(6,k),arr(7,k),arr(8,k),arr(9,k),arr(10,k) -c 987 format(' arr6 = ',f10.2,' arr7 = ',f10.2, -c * ' arr8 = ',f10.2,' arr9 = ',f10.2,' arr10 = ',f10.2) - ENDDO - - RETURN -C - 50 IRET = -1 - RETURN - END -c===================================================================== - SUBROUTINE REDUPAZ( SRE, ERE, HDR, ARR, NRET1, IRET) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDUPAZ READ UPPER AIR BUFR FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: REDUPA READS THE PREPBUFR OBSERVATIONAL FILE AND -C RETURNS A SINGLE STATION IN AN ARRAY. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -c 97-01-17 George Vandenberghe. Added mandatory Z level logic -c 98-05-05 chris caruso - added common/dateln/lendat to set -c length of idate returned by readmg. if lendat=8, -c 2 digit year is returned. if lendat=10, 4 digit -c year is returned. consolidated this s/r with -c redupap.f and rsondplt.f into one file. -C -C USAGE: CALL REDUPA (SRE, ERE, HDR, ARR, NRET1, IRET) -C INPUT ARGUMENT LIST: -C SRE - STARTING WMO BLOCK NUMBER TO DUMP -C ERE - ENDING WMO BLOCK NUMBER TO DUMP -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C HDR - HEADER RECORD FOR STATION. CONTAINS -C - ID, LONG, LAT, HOUR, ELEVATION AND TYPE. -C ARR - DATA ARRAY FOR MANDATORY LEVEL DATA -C HEIGHT, TEMPERATURE, DEW PT, WIND SPEED -C WIND DIRECTION AND Q-MARKS -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C Fort.55 - PREPBUFR UPPER AIR DATA FILE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: ibm -C -C$$$ -C -C REDUPA READS THE PREPBUFR FILE AND RETURNS AN UNPACKED -C BUFR REPORT. -C - common/dat/ IDATE - common/dateln/ lendat - integer lendat - - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CTEMP - CHARACTER*8 SRE, ERE - CHARACTER*40 CATA, CATB, STRING - character*40 catc,catd,cate -C - DIMENSION HDR (10) -C - REAL ARR (10,255) - REAL BRR (6,255),BRR1(6,255),brr2(4,255) - REAL CRR (5,255),crr1(5,255) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA STRING /'SID XOB YOB DHR ELV TYP'/ - DATA CATE /'CAT=4 ZOB DDO FFO WQM '/ - DATA IX /0/ -c -c MUST SAVE LOCAL VARIABLES ACCROSS -c SUBROUTINE CALLS. SEVERE BUG IN -c ORIGINAL REDUPA REPAIRED WITH FOLLOWING -c SAVE STATEMENT (George VandenBerghe 1/15/97) -c************** - SAVE -c*************** -C -C----------------------------------------------------------------------| -C 1. OPEN THE FILE | -C----------------------------------------------------------------------| -C OPENBF: Opens the file for reading. | -C INPUT: LUBFR: Specifies the logical unit containing the file | -C to be read from. | -C INOUT: Opens the file for reading when INOUT is set | -C to IN. | -C LUNDX: Specifies the logical unit containing the BUFR | -C tables. If the tables are contained | -C in the BUFR messages, LUNDX = LUBFR. | -C OUTPUT: NONE | -C----------------------------------------------------------------------| -C Let us upen a file of BUFR messages containing PIBAL, RADIOSONDE,| -C and DROPSONDE data for reading. Since the BUFR TEMPLATE for | -C this type of data is not contained within the BUFR message itself| -C itself, the BUFR message is on logical unit 10 while the BUFR | -C TEMPLATE for that data is on logical unit 20. | -C----------------------------------------------------------------------| - IRET = 0 - IMASS = 0 - IWIND = 0 - ITEMP = LUBFR - LUBFR = 10 - IF( IX .EQ. 0) THEN - IX = 1 - INMG = 0 - INOUT = 'IN' - LUNDX = 10 - CALL OPENBF( LUBFR, INOUT, LUNDX ) - ENDIF -C----------------------------------------------------------------------| -C -C READ THE BUFR DATA TANKS -C -C -C----------------------------------------------------------------------| -C 3. ADVANCE THE POINTER TO THE NEXT BUFR MESSAGE IN THE FILE | -C AND READ THE BUFR MESSAGE INTO AN INTERNAL BUFFER | -C----------------------------------------------------------------------| -C READMG: Advances the input message pointer to the next | -C BUFR message in the file and reads the message, | -C without change, into an internal buffer. | -C INPUT: LUBFR: Defined under OPENBF. | -C OUTPUT: SUBSET: Contains the table A mnemonic associated | -C with the type of data in the BUFR message. | -C IDATE: Contains the year, month, day, and hour | -C from Section 1 of the BUFR message. | -C IRET1: If IRET = 0, the read has been successful | -C If IRET = -1, and end-of-file has been read. | -C----------------------------------------------------------------------| -C Call READMG to advance the pointer to the next BUFR message | -C and read it. | -c -c set lendat = 10 here, since openbf calls s/r bfrini, which -c sets lendat = 8. -C----------------------------------------------------------------------| - 10 IF( INMG .EQ. 0) THEN - lendat = 10 - CALL READMG( LUBFR, SUBSET, IDATE, IRET1) - IF (IRET1 .NE. 0) GO TO 50 - IF (SUBSET .NE. 'ADPUPA' ) GO TO 10 - INMG = 1 - ENDIF -C----------------------------------------------------------------------| -C 4. READ AND UNPACK THE BUFR MESSAGE | -C----------------------------------------------------------------------| -C READSB: Reads and unpacks the BUFR message placed in | -C the internal buffer by READMG into an indexed | -C and expanded internal buffer. | -C INPUT: LUBFR: Defined under OPENBF | -C OUTPUT: IRET2: Set to 0 (zero) when operation was | -C successful and data is available for | -C user access. Set to -1 when all | -C subsets have been processed, and | -C another call to READMG is required to | -C read the next BUFR message. | -C----------------------------------------------------------------------| -C INITIALIZE IRET2 TO 0 AND READ THIS UNPACKED BUFR MESSAGE | -C UNTIL SUBSETS HAVE BEEN READ. | -C----------------------------------------------------------------------| - 20 CALL READSB (LUBFR,IRET2) - IF(IRET2 .LT. 0) THEN - INMG = 0 - GO TO 10 - ENDIF -C----------------------------------------------------------------------| -C 5. ACCESS RELEVANT PARTS OF THE UNPACKED BUFR MESSAGE | -C----------------------------------------------------------------------| -C UFBINT: Transfers data values either (a) from the internal | -C buffer produced by READSB to the user, or (b) from | -C the user to an internal buffer for subsequent | -C writing out by WRITSB. When using UFBINT for | -C purpose (a), the following definitions apply: | -C INPUT: LUBFR: Defined under OPENBF. | -C I1: The maximum first dimension of ARR. This | -C dimension must be large enough to hold | -C the maximum number of parameters to be | -C accessed and placed into array ARR. | -C I2: The maximum second dimension of ARR. This | -C dimension must be large enough to hold | -C the maximum number of repetitions of the | -C set of parameters to be accessed and | -C placed into array ARR. | -C STR: String of mnemonics indicating which | -C parameters to be placed into array ARR. | -C Note that there cannot be more than I1 | -C mnemonics in STR. | -C OUTPUT: ARR: A two-dimensional array containing real | -C NRET: The number of sets of requested parameters | -C - those indicated by the mnemonics in | -C STR - that were retrieved by UFBINT and | -C placed into array ARR. | -C----------------------------------------------------------------------| -C 5c. THIRD, ACCESS THE WMO BLOCK AND STATION NUMBER FOR THIS | -C OBSERVATION. Note that the block number (mnemonic = | -C WMOB) is returned in ARR(1,1) and the station number | -C (mnemonic = WMOS) in ARR(2,1). They are combined into | -C one 5-digit number for printing. This case is like the | -C in 5a. | -C---------------------------------------------------------------------| - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C -C PROCESS ONLY THOSE REPORTS REQUESTED -C - RTEMP = HDR (1) - call byteswap(ITEMP, 8, 1) - ITEMP = ISHFT(ITEMP,-48) - call byteswap(ITEMP, 8, 1) - if(ctemp(7:7) .ne. '7') go to 20 -C---------------------------------------------------------------------| -C 5e. FIFTH, ACCESS THE PRESSURE (mnemonic - PRLC), | -C GEOPOTNETIAL (mnemonic = GP10 | -C TEMPERATATURE (mnemonic - TMDB), DEW POINT "(mnemonic = | -C TMDP), WIND DIRECTION (mnemonic = WDIR), WIND SPEED | -C (mnemonic = WSPD), and VERTICAL SOUNDING SIGNIFICANCE | -C (mnemonic - VSIG) for all pressure levels in this part. | -C Note that if the pressure is available, the geopotential | -C if given, will be in GP10. If the pressure is not | -C available, the geopotential , if given, will be in GP07. | -C This example is a combination of examples 5a. and 5b. | -C The result is that the full set of parameters - for the | -C first pressure level - will be in ARR(1,1) - ARR(8,1), | -C respectively, the second set - for the second pressure | -C level - in ARR(1,2) - ARR(8,2), respectively, and so on | -C until the NRETth set is in ARR(1,NRET) - ARR(8,NRET), | -C respectively. | -C---------------------------------------------------------------------| - nret1 = 0 - nret1a = 0 - IF(HDR(6) .EQ. 120.) THEN - IMASS = 1 - ENDIF - IF(HDR(6) .eq. 220.) THEN - CALL UFBINT (LUBFR, BRR2, 4, 255, NRETZ, CATE) - IWIND = 1 - ENDIF - IF((IMASS .EQ. 0) .OR. (IWIND .EQ. 0)) GO TO 20 -C -C STORE THE PIECES OF THE REPORT INTO AN ARRAY -C -c print*,' nretz = ',nretz - DO K = 1,NRETZ - arr(1,k) = -7 - arr(2,k) = brr2(1,k) - arr(5,k) = brr2(2,k) - arr(6,k) = brr2(3,k) - arr(9,k) = brr2(4,k) - arr(10,k) = hdr(5) - ENDDO - RETURN -C - 50 IRET = -1 - RETURN - END diff --git a/util/sorc/sixbitb.fd/AVTTLS.f b/util/sorc/sixbitb.fd/AVTTLS.f deleted file mode 100755 index fbacb9a11b..0000000000 --- a/util/sorc/sixbitb.fd/AVTTLS.f +++ /dev/null @@ -1,250 +0,0 @@ - SUBROUTINE AVTTLS(ISLOTA,ISLOTB,IPANA,INSET,IRLAB,JX2,INCR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: AVTTLS INPUT FIELD READER -C PRGMMR: KUMAR ORG: W/NP12 DATE: 1999-12-21 -C -C ABSTRACT: WRITES VARIAN TITLE, FRON AND REAR STRIP (FAX) TITLES -C FOR 1 AND 2 PANEL CHARTS...USES BASIC TITLE INFO GENERATED BY -C PREVIOUS CALL TO DOFRST...DESIGNED FOR INTERNATIONAL AVIATION -C PACKAGE PROGRAMS AVPOLAR AND AVMERC ONLY...MUST BE CALLED IN -C SLOT LOOP. -C -C PROGRAM HISTORY LOG: -C 84-08-?? KEVIN HLYWIAK -C 85-12-?? DOUG MILLER, MODIFIED ROUTINE TO ADD DUCK TO THE FAX AND -C VARIAN CHARTS. -C 91-02-21 LILLY MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77. ALSO, -C ADD THE ISCHEDS TO DO THE ATLANTIC AND PACIFIC -C FAX CUTS. -C 1999-11-08 CONVERTED FROM CRAY TO IBM SP/6000 -C -C USAGE: CALL AVTTLS(ISLOTA,ISLOTB,IPANA,INSET,IRLAB,JX2,INCR) -C INPUT ARGUMENT LIST: -C ISLOTA - FIRST 4 CHARACTER OF FAX/VARIAN SLOT NUMBER. -C ISLOTB - THE 5TH CHARACTER OF FAX/VARIAN SLOT NUMBER. -C IPANA - FIRST 4 CHARACTER OF PANEL PART OR REAL INSET PART -C INSET - THE INSET NUMBER. -C IRLAB - REAR LABEL INSET NUMBER. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C KEVIN HLYWIAK AUG 1984 -C DOUG MILLER DEC 1985-DUCK ADDED TO FAX AND VARIAN CHARTS -C WRITES VARIAN TITLE, FRONT AND REAR STRIP (FAX) TITLES FOR 1 AND 2 -C PANEL CHARTS...USES BASIC TITLE INFO GENERATED BY PREVIOUS CALL TO -C DOFRST...DESIGNED FOR INTERNATIONAL AVIATION PACKAGE PROGRAMS -C AVPOLAR AND AVMERC ONLY...MUST BE CALLED IN SLOT LOOP. -c -C 3/15/96 added character*8 equivalences to integer variables -c to pass character arguments to putlab -C - COMMON/TITLES/KTITLE(28),LPOLAR,LOWLEV - character*8 ctitle(28) - equivalence (ctitle,ktitle) -C - INTEGER K2TITL(16) - character*8 C2TITL(16) -c equivalence (c2titl,k2titl) -C - CHARACTER*64 B2TITL - CHARACTER*112 BTITLE - CHARACTER*1 NEWDAT(12) -C - INTEGER IBLANK - character*8 cblank - equivalence (cblank,iblank) - dimension kvv(2) - DATA IBLANK/4H / - INTEGER K2XTRA(2) - character*8 c2xtra(2) - equivalence (c2xtra,k2xtra) - DATA K2XTRA /4HFL ,4H VT / - INTEGER NEWLIN(7) - character*8 CEWLIN(7) - equivalence (CEWLIN,newlin) - character*28 cew28 - DATA NEWLIN /4HUNSI,4HGNED,4H TEM,4HPS A, - # 4HRE N,4HEGAT,4HIVE / -C - integer*8 mapv,mask8,ivar !modified by kumar - LOGICAL LPOLAR - LOGICAL LOWLEV -C - DATA MAPV/X'5600000000000000'/,MASK8/X'FF00000000000000'/ -c DATA MAPV/X'E500000000000000'/,MASK8/X'FF00000000000000'/ -c DATA MAPV/X'E5000000'/,MASK8/X'FF000000'/ - DATA BIG/15.3846/,SMALL/10.0/ -C -c EQUIVALENCE(K2TITL(6),NEWDAT(1)) - equivalence(b2titl(37:37),newdat(1)) - EQUIVALENCE(K2TITL(10),NEWDAT(1)) - EQUIVALENCE(B2TITL,c2TITL(1)(1:1)) -c EQUIVALENCE(BTITLE,cTITLE(1)(5:5)) -c EQUIVALENCE(B2TITL,K2TITL(1)) - EQUIVALENCE(BTITLE,KTITLE(1)) -C - IVAR=IAND(ISLOTA,MASK8) - print 9301,ivar,islota,mask8,mapv - 9301 format('LPUT ',4z20,' 1=iand(2,3)') - WRITE(BTITLE(1:5),FMT='(A4,A1)')ISLOTA,ISLOTB -C TEST IF VARIAN MAP...IF NOT, SKIP THIS SECTION. - IF(IVAR.NE.MAPV)GOTO 300 -Corig PRINT 200,(KTITLE(I),I=1,28) - WRITE(6,200) (KTITLE(I),I=1,28) - 200 FORMAT('0VARIAN TITLE=',28A4) - IXD=150 - IF(LPOLAR)IXD=700 - NCHAR=112 - IF(LOWLEV)NCHAR=76 - CALL lPUTLAB(IXD,20,11.0,BTITLE,0.0,NCHAR,0,0) - IDUCK=1860 - IF(LPOLAR)IDUCK=2410 - print 1954,iduck,20 - 1954 format(' CALLING DUCK FROM VARIAN ',2i9) - CALL DUCK(IDUCK,20,0,10) - RETURN -C -C COMES HERE IF NOT A VARIAN MAP -C - 300 IF(IPANA.EQ.IBLANK) GOTO 400 -Corig PRINT 350 - WRITE(6,350) - 350 FORMAT('0THIS IS AN INSET MAP---TITLE(S) ALREADY GENERATED') - RETURN - 400 LABELS=1 - IF(IRLAB.GT.0)LABELS=2 - IF(INSET.GT.0)GOTO 1000 -Corig PRINT 500,(KTITLE(I),I=1,28) - WRITE(6,500) (KTITLE(I),I=1,28) - 500 FORMAT('01-PANEL STRIP TITLE=',26A4,/,21X,2A4) - DO 900 I=1,LABELS - JX2=JX2+INCR - NCHAR=52 - IF(LOWLEV)NCHAR=16 -cc CALL lPUTLAB(700,20,11.0,BTITLE,0.0,112,0,0) - print 1974 - print 1974,btitle(1:60),btitle(61:112) -c 3/15/96 George Vandenberghe. Changed ktitle to ctitle in putlab callS -C CALL PUTLAB(50,JX2,11.0,BTITLE(1:60),0.0,60,0,0) - CALL lPUTLAB(50,JX2,11.0,BTITLE(1:60),0.0,60,0,0) -c CALL lPUTLAB(50,JX2,11.0,CTITLE(1),0.0,60,0,0) -c CALL PUTLAB(950,JX2,1.0,BTITLE(61:112),0.0,NCHAR,0,0) - CALL lPUTLAB(950,JX2,1.0,BTITLE(61:112),0.0,NCHAR,0,0) -c CALL lPUTLAB(950,JX2,1.0,CTITLE(16),0.0,NCHAR,0,0) - 1079 format(' AVTT PUTLAB above duck ',a120) - IXL=950+((NCHAR+1)*SMALL) - print 1964,ixl,jx2 - 1964 format(' CALLING DUCK FROM SINGLE ',2i9) - CALL DUCK(IXL,JX2,0,10) -Corig PRINT 850,JX2 - WRITE(6,850) JX2 - 850 FORMAT(' 1-PANEL STRIP TITLE WRITTEN AT J=',I5) - 900 CONTINUE - RETURN -C -C COMES HERE IF 2-PANEL FAX MAP -C - 1000 DO 1100 I=1,5 -c K2TITL(I)=KTITLE(I) - 1100 CONTINUE - b2titl(1:20)=btitle(1:20) - WRITE(B2TITL(21:28),FMT='(8HG VALID )') -c DO 1300 I=8,16 -c K2TITL(I)=KTITLE(I+3) -c 1300 CONTINUE - b2titl(29:64)=btitle(41:76) -Corig PRINT 1350,(K2TITL(I),I=1,16),(K2TITL(I),I=1,16) - WRITE(6,1350) (K2TITL(I),I=1,16),(K2TITL(I),I=1,16) - 1350 FORMAT('02-PANEL STRIP TITLE=',16A4,4X,9A4,/,21X,7A4) - DO 1400 IJ=8,10 - NEWDAT(IJ)=NEWDAT(IJ+2) - 1400 CONTINUE -Corig PRINT 1410 - WRITE(6,1410) - 1410 FORMAT(2X,'***** NOTE: 2-PANEL STRIP TITLE HAS BEEN CHANGED', - 1 ' SO ''VALID'' IS NOW ''VT'' AND THE YEAR ''1985'' NOW', - 2 ' IS ''85''.',/,2X,'(CHANGED DECEMBER 4, 1985)') -C -C WRITE THE 2-PANEL STRIP TITLE(S) -C - DO 1500 I=1,LABELS - print 1934,B2TITL,BTITLE(1:78) - IXL=20 - JX2=JX2+INCR - DO 1450 ISPAN=1,2 - print 1974,btitle(1:60),btitle(61:112) - 1974 format('kttl ',a60,a52) -ccc CALL lPUTLAB(50,JX2,11.0,BTITLE(1:60),0.0,60,0,0) - NCHAR=52 -ccc CALL lPUTLAB(950,JX2,1.0,BTITLE(61:112),0.0,NCHAR,0,0) -c 3/16/95 GWV Replaced K2TITL with c2titl in call below - IF(I.NE.1.OR.ISPAN.NE.2) - #CALL lPUTLAB(IXL,JX2,1.0,C2TITL(1)(1:5),0.0,5,0, - #0) - iXL=IXL+5*SMALL - CALL lPUTLAB(IXL,JX2,11.0,C2XTRA(1)(1:2),0.0,2,0,0) - IXL=IXL+2*BIG -c CALL lPUTLAB(IXL,JX2,11.0,C2TITL(3),0.0,13,0,0) - CALL lPUTLAB(IXL,JX2,11.0,B2TITL(9:21),0.0,13,0,0) - - IXL=IXL+13*BIG - CALL lPUTLAB(IXL,JX2,1.0,C2XTRA(2)(1:4),0.0,4,0,0) - IXL=IXL+4*SMALL - CALL lPUTLAB(IXL,JX2,11.0,B2TITL(29:45),0.0,17,0,0) -c CALL lPUTLAB(IXL,JX2,11.0,C2TITL(8),0.0,17,0,0) - IXL=IXL+17*BIG - CALL lPUTLAB(IXL,JX2,1.0,CBLANK,0.0,1,0,0) - IXL=IXL+1*SMALL - IF(ISPAN .EQ. 1)GO TO 1430 - CALL lPUTLAB(IXL,JX2,1.0,B2TITL(49:64),0.0,16,0,0) - 1934 format(' B2TITL is ',a64,/,'BTITLE IS ',a78) -c CALL lPUTLAB(IXL,JX2,1.0,C2TITL(13),0.0,16,0,0) - - GO TO 1450 - 1099 format(' below panel strip title ',i9) - 1430 CONTINUE - IF(I .EQ. 1)GO TO 1440 -c IF(.NOT.LOWLEV)CALL lPUTLAB(IXL,JX2,1.0,CEWLIN,0.0,28,0,0) -c pack 4 characters of each of 7 CEWLIN words into -c character string - write(cew28,1992)(CEWLIN(K),K=1,7) - print 1934,B2TITL,BTITLE(1:78) - 1992 format(7a4) - IF(.NOT.LOWLEV)CALL lPUTLAB(IXL,JX2,1.0,CEW28,0.0,28,0,0) - IF(LOWLEV)CALL lPUTLAB(IXL,JX2,1.0,B2TITL(49:64),0.0,16,0,0) -c IF(LOWLEV)CALL lPUTLAB(IXL,JX2,1.0,C2TITL(13),0.0,16,0,0) - IXL=894 - GO TO 1450 - 1440 CONTINUE - IXL=IXL+3*SMALL - print 1944,ixl,jx2 - 1944 format(' CALLING DUCK from dbl ',2i9) - CALL DUCK(IXL,JX2,0,10) - IXL=894 - 1450 CONTINUE -Corig PRINT 1470,JX2 - WRITE(6,1470) JX2 - 1470 FORMAT(' 2-PANEL STRIP TITLE WRITTEN AT J=',I5) - 1500 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb.fd/BLOCKDATA001.f b/util/sorc/sixbitb.fd/BLOCKDATA001.f deleted file mode 100755 index 4367de503d..0000000000 --- a/util/sorc/sixbitb.fd/BLOCKDATA001.f +++ /dev/null @@ -1,301 +0,0 @@ - BLOCK DATA -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: POLST2 WAFS LOCATION IDENTIFIER TABLE -C PRGMMR: LILLY ORG: W/NP12 DATE: 95-12-06 -C -C ABSTRACT: CONTAINS A LOOKUP TABLE OF 4-LETTER WORLD AREA FORECAST -C SYSTEM (WAFS) LOCATION IDENTIFIERS AND THEIR I AND J POLAR -C STEREOGRAPHIC PIXEL LOCATIONS. THE PROGRAM AVPOLARV USES THE -C TABLE TO PLOT IDENTIFIERS ON THE MAPS IT GENERATES. -C -C PROGRAM HISTORY LOG: -C 84-07-20 KEVIN HLYWIAK -C 88-03-16 BOB HOLLERN UPDATED TABLE. SOME OF THE IDS HAVE -C NEW 4-LETTER CODE LETTERS. -C 95-12-06 LILLY CONVERT FROM ASSEMBLE TO CF77. -C -C USAGE: POLST2 -C -C OUTPUT ARGUMENT LIST: -C (LABSTN) - THIS TABLE IS PASSED TO THE FORTRAN PROGRAM -C AVPOLAR THROUGH THE ARRAY LABSTN WHICH IS IN -C THE LABELED COMMON BLOCK POLST2 -C -C ATTRIBUTES: -C LANGUAGE: CF77 -C MACHINE: CRAY4 -C -C$$$ -C// TITLE 'COMMON /POLST2/LABSTN' - COMMON /POLST2/LABSTN(2,145) - common/counts/icount - data icount/0/ -C//POLST2 CSECT -C -C FIRST WORD HAS COUNT OF LABEL-ARRAY FORMATTED DOUBLE WORDS -C SECOND WORD IS FILLER TO KEEP DOUBLE WORD BOUNDARIES -C DC 1F'001',CL4'POLS' -C DC X'091D0618',X'015D5B00' )$ -C DC X'09350609',X'01C2C7E2',X'09350627',X'01C65B00' BGSF$ -C DC X'09E706C9',X'035DC2C9',X'0A2306C9',X'03D9D25B' )BIRK$ -C DC X'06BF068C',X'015DC3E8',X'06BF06AA',X'01D8E75B' )CYQX$ -C DC X'07B90382',X'015DC3E8',X'07B903A0',X'01E5D95B' )CYVR$ -C DC X'06970495',X'015D5B00' )$ -C DC X'06790486',X'01C3E8E6',X'067904A4',X'01C75B00' CYWG$ -C DC X'056F0564',X'015DC3E8',X'056F0582',X'01E8E95B' )CYYZ$ -C DC X'0AD30904',X'015D5B00' )$ -C DC X'0AB308F8',X'03C4C1C1',X'0AEF08F8',X'03C75B00' DAAG$ -C DC X'0A9B0A34',X'03C4C1C1',X'0AD70A34',X'03E35D5B' DAAT)$ -C DC X'0B8F0808',X'015D5B00' )$ -C DC X'0B6F0813',X'03C5C4C4',X'0BAB0813',X'03C65B00' EDDF$ -C DC X'0CB1073E',X'015D5B00' )$ -C DC X'0C910732',X'03C5C6C8',X'0CCD0732',X'03D25B00' EFHK$ -C DC X'0A7107E0',X'03C5C7D3',X'0AAD07E0',X'03D35D5B' EGLL)$ -C DC X'0BE707A2',X'015D5B00' )$ -C DC X'0BC70796',X'03C5D2C3',X'0C030796',X'03C85B00' EKCH$ -C DC X'07990956',X'03C7C3D3',X'07D50956',X'03D75D5B' GCLP)$ -C DC X'06290A5C',X'03C7D6D6',X'06650A5C',X'03E85D5B' GOOY)$ -C DC X'0EC3094B',X'015D5B00' )$ -C DC X'0EA3093F',X'03C8C5C3',X'0EDF093F',X'03C15B00' HECA$ -C DC X'0C1F095A',X'035DC8D3',X'0C5B095A',X'03D3E35B' )HLLT$ -C DC X'0FF10A7C',X'035DC8E2',X'102D0A7C',X'03E2E25B' )HSSS$ -C DC X'057903EE',X'015DD2C4',X'0579040C',X'01C5D55B' )KDEN$ -C DC X'04670390',X'015D5B00' )$ -C DC X'047F0381',X'01D2C5D3',X'047F039F',X'01D75B00' KELP$ -C DC X'050305BC',X'015DD2D1',X'050305DA',X'01C6D25B' )KJFK$ -C DC X'059702CC',X'01D2D3C1',X'059702EA',X'01E75D5B' KLAX)$ -C DC X'02850559',X'015DD2D4',X'02850577',X'01C9C15B' )KMIA$ -C DC X'0361049F',X'015D5B00' )$ -C DC X'03430490',X'01D2D4E2',X'034304AE',X'01E85B00' KMSY$ -C DC X'053D04EC',X'015D5B00' )$ -C DC X'055504DD',X'01D2D6D9',X'055504FB',X'01C45B00' KORD$ -C DC X'066102CA',X'01D2E2C6',X'066102E8',X'01D65D5B' KSFO)$ -C DC X'0A1B08A7',X'015D5B00' )$ -C DC X'09FB089B',X'03D3C5D4',X'0A37089B',X'03C45B00' LEMD$ -C DC X'0AFB0814',X'015D5B00' )$ -C DC X'0ADB081F',X'03D3C6D7',X'0B17081F',X'03C75B00' LFPG$ -C DC X'0D6108D5',X'035DD3C7',X'0D9D08D5',X'03C1E35B' )LGAT$ -C DC X'0BF308A4',X'015D5B00' )$ -C DC X'0BD30898',X'03D3C9D9',X'0C0F0898',X'03C65B00' LIRF$ -C DC X'096508AF',X'015D5B00' )$ -C DC X'094508BA',X'03D3D7D7',X'098108BA',X'03E35B00' LPPT$ -C DC X'0B8D0837',X'015D5B00' )$ -C DC X'0B6D082B',X'03D3E2E9',X'0BA9082B',X'03C85B00' LSZH$ -C DC X'017706A5',X'015DE3D1',X'017706C3',X'01E2D15B' )TJSJ$ -C DC X'00CF0768',X'015DE3C2',X'00CF0786',X'01D7C25B' )TBPB$ -C DC X'01E903AE',X'015D5B00' )$ -C DC X'01CB039F',X'01D4D4D4',X'01CB03BD',X'01E75B00' MMMX$ -C DC X'03EF066F',X'015DE3E7',X'03EF068D',X'01D2C65B' )TXKF$ -C DC X'124B0756',X'015D5B00' )$ -C DC X'12630747',X'81C2D2C1',X'12630765',X'81D65B00' BKAO$ -C DC X'119D08D2',X'015D5B00' )$ -C DC X'117D08C6',X'03D6C2C2',X'11B908C6',X'03C95B00' OBBI$ -C DC X'103509B1',X'03D6C5D1',X'107109B1',X'03D55D5B' OEJN)$ -C DC X'1053082D',X'03D6C9C9',X'108F082D',X'03C95D5B' OIII)$ -C DC X'10F908C0',X'015D5B00' )$ -C DC X'10D908CB',X'03D6D2C2',X'111508CB',X'03D25B00' OKBK$ -C DC X'138907E7',X'015D5B00' )$ -C DC X'13A107D8',X'81C3D2D7',X'13A107F6',X'81D65B00' CKPO$ -C DC X'0F3508E5',X'015D5B00' )$ -C DC X'0F1508F0',X'03D6E2C4',X'0F5108F0',X'03C95B00' OSDI$ -C DC X'0A67039B',X'015D5B00' )$ -C DC X'0A4703A8',X'C1C3D5C1',X'0A8303A8',X'C1D75B00' CNAP$ -C DC X'13DF0150',X'C15DD4E4',X'141B0150',X'C1C7D75B' )MUGP$ -C DC X'099B007C',X'015D5B00' )$ -C DC X'097B0089',X'C1D3D5C8',X'09B70089',X'C1D75B00' LNHP$ -C DC X'0FCF009B',X'015D5B00' )$ -C DC X'0FAF008E',X'C1D2C1E6',X'0FEB008E',X'C1D75B00' KAWP$ -C DC X'111302F2',X'C1C1C1D1',X'114F02F2',X'C1D95D5B' AAJR)$ -C DC X'163B032F',X'81D4D4D7',X'163B034D',X'81D95D5B' MMPR)$ -C DC X'0DC1075C',X'015D5B00' )$ -C DC X'0DA10750',X'03E4E4C5',X'0DDD0750',X'03C55B00' UUEE$ -C DC X'101105E4',X'81D5D5D5',X'10110602',X'81E45D5B' NNNU)$ -C DC X'11630710',X'015D5B00' )$ -C DC X'114B0701',X'81E3E3E3',X'114B071F',X'81E45B00' TTTU$ -C DC X'14ED07BF',X'815DC2C2',X'14ED07DD',X'81C1E55B' )BBAV$ -C DC X'15350659',X'815DC3C3',X'15350677',X'81C5E55B' )CCEV$ -C DC X'13AB0710',X'815DD7C4',X'13AB072E',X'81C9E55B' )PDIV$ -C DC X'152B0403',X'81C8C8C8',X'152B0421',X'81E55D5B' HHHV)$ -C DC X'171B0528',X'81C4C2E3',X'171B0546',X'81E55D5B' DBTV)$ -C DC X'12430466',X'015D5B00' )$ -C DC X'125B0457',X'81C1C1C2',X'125B0475',X'81E95B00' AABZ$ -C DC X'135F03DD',X'015D5B00' )$ -C DC X'134703CE',X'81E2E2E2',X'134703EC',X'81E95B00' SSSZ$ -CORIG DATA LABSTN, -CORIG* / 1F'144',CL4'POLS', -CWORK DATA LABSTN /X'00000000',X'00000000', - DATA LABSTN /001,0, - * X'091D0618',X'015D5B00', -C - * X'09350609',X'01C2C7E2',X'09350627',X'01C65B00', -C BGSF - * X'09E706C9',X'035DC2C9',X'0A2306C9',X'03D9D25B', -C BIRK - * X'06BF068C',X'015DC3E8',X'06BF06AA',X'01D8E75B', -C CYQX - * X'07B90382',X'015DC3E8',X'07B903A0',X'01E5D95B', -C CYVR - * X'06970495',X'015D5B00', -C - * X'06790486',X'01C3E8E6',X'067904A4',X'01C75B00', -C CYWG - * X'056F0564',X'015DC3E8',X'056F0582',X'01E8E95B', -C CYYZ - * X'0AD30904',X'015D5B00', -C - * X'0AB308F8',X'03C4C1C1',X'0AEF08F8',X'03C75B00', -C DAAG - * X'0A9B0A34',X'03C4C1C1',X'0AD70A34',X'03E35D5B', -C DAAT - * X'0B8F0808',X'015D5B00', -C - * X'0B6F0813',X'03C5C4C4',X'0BAB0813',X'03C65B00', -C EDDF - * X'0CB1073E',X'015D5B00', -C - * X'0C910732',X'03C5C6C8',X'0CCD0732',X'03D25B00', -C EFHK - * X'0A7107E0',X'03C5C7D3',X'0AAD07E0',X'03D35D5B', -C EGLL - * X'0BE707A2',X'015D5B00', -C - * X'0BC70796',X'03C5D2C3',X'0C030796',X'03C85B00', -C EKCH - * X'07990956',X'03C7C3D3',X'07D50956',X'03D75D5B', -C GCLP - * X'06290A5C',X'03C7D6D6',X'06650A5C',X'03E85D5B', -C GOOY - * X'0EC3094B',X'015D5B00', -C - * X'0EA3093F',X'03C8C5C3',X'0EDF093F',X'03C15B00', -C HECA - * X'0C1F095A',X'035DC8D3',X'0C5B095A',X'03D3E35B', -C HLLT - * X'0FF10A7C',X'035DC8E2',X'102D0A7C',X'03E2E25B', -C HSSS - * X'057903EE',X'015DD2C4',X'0579040C',X'01C5D55B', -C KDEN - * X'04670390',X'015D5B00', -C - * X'047F0381',X'01D2C5D3',X'047F039F',X'01D75B00', -C KELP - * X'050305BC',X'015DD2D1',X'050305DA',X'01C6D25B', -C KJFK - * X'059702CC',X'01D2D3C1',X'059702EA',X'01E75D5B', -C KLAX - * X'02850559',X'015DD2D4',X'02850577',X'01C9C15B', -C KMIA - * X'0361049F',X'015D5B00', -C - * X'03430490',X'01D2D4E2',X'034304AE',X'01E85B00', -C KMSY - * X'053D04EC',X'015D5B00', -C - * X'055504DD',X'01D2D6D9',X'055504FB',X'01C45B00', -C KORD - * X'066102CA',X'01D2E2C6',X'066102E8',X'01D65D5B', -C KSFO - * X'0A1B08A7',X'015D5B00', -C - * X'09FB089B',X'03D3C5D4',X'0A37089B',X'03C45B00', -C LEMD - * X'0AFB0814',X'015D5B00', -C - * X'0ADB081F',X'03D3C6D7',X'0B17081F',X'03C75B00', -C LFPG - * X'0D6108D5',X'035DD3C7',X'0D9D08D5',X'03C1E35B', -C LGAT - * X'0BF308A4',X'015D5B00', -C - * X'0BD30898',X'03D3C9D9',X'0C0F0898',X'03C65B00', -C LIRF - * X'096508AF',X'015D5B00', -C - * X'094508BA',X'03D3D7D7',X'098108BA',X'03E35B00', -C LPPT - * X'0B8D0837',X'015D5B00', -C - * X'0B6D082B',X'03D3E2E9',X'0BA9082B',X'03C85B00', -C LSZH - * X'017706A5',X'015DE3D1',X'017706C3',X'01E2D15B', -C TJSJ - * X'00CF0768',X'015DE3C2',X'00CF0786',X'01D7C25B', -C TBPB - * X'01E903AE',X'015D5B00', -C - * X'01CB039F',X'01D4D4D4',X'01CB03BD',X'01E75B00', -C MMMX - * X'03EF066F',X'015DE3E7',X'03EF068D',X'01D2C65B', -C TXKF - * X'124B0756',X'015D5B00', -C - * X'12630747',X'81C2D2C1',X'12630765',X'81D65B00', -C BKAO - * X'119D08D2',X'015D5B00', -C - * X'117D08C6',X'03D6C2C2',X'11B908C6',X'03C95B00', -C OBBI - * X'103509B1',X'03D6C5D1',X'107109B1',X'03D55D5B', -C OEJN - * X'1053082D',X'03D6C9C9',X'108F082D',X'03C95D5B', -C OIII - * X'10F908C0',X'015D5B00', -C - * X'10D908CB',X'03D6D2C2',X'111508CB',X'03D25B00', -C OKBK - * X'138907E7',X'015D5B00', -C - * X'13A107D8',X'81C3D2D7',X'13A107F6',X'81D65B00', -C CKPO - * X'0F3508E5',X'015D5B00', -C - * X'0F1508F0',X'03D6E2C4',X'0F5108F0',X'03C95B00', -C OSDI - * X'0A67039B',X'015D5B00', -C - * X'0A4703A8',X'C1C3D5C1',X'0A8303A8',X'C1D75B00', -C CNAP - * X'13DF0150',X'C15DD4E4',X'141B0150',X'C1C7D75B', -C MUGP - * X'099B007C',X'015D5B00', -C - * X'097B0089',X'C1D3D5C8',X'09B70089',X'C1D75B00', -C LNHP - * X'0FCF009B',X'015D5B00', -C - * X'0FAF008E',X'C1D2C1E6',X'0FEB008E',X'C1D75B00', -C KAWP - * X'111302F2',X'C1C1C1D1',X'114F02F2',X'C1D95D5B', -C AAJR - * X'163B032F',X'81D4D4D7',X'163B034D',X'81D95D5B', -C MMPR - * X'0DC1075C',X'015D5B00', -C - * X'0DA10750',X'03E4E4C5',X'0DDD0750',X'03C55B00', -C UUEE - * X'101105E4',X'81D5D5D5',X'10110602',X'81E45D5B', -C NNNU - * X'11630710',X'015D5B00', -C - * X'114B0701',X'81E3E3E3',X'114B071F',X'81E45B00', -C TTTU - * X'14ED07BF',X'815DC2C2',X'14ED07DD',X'81C1E55B', -C BBAV - * X'15350659',X'815DC3C3',X'15350677',X'81C5E55B', -C CCEV - * X'13AB0710',X'815DD7C4',X'13AB072E',X'81C9E55B', -C PDIV - * X'152B0403',X'81C8C8C8',X'152B0421',X'81E55D5B', -C HHHV - * X'171B0528',X'81C4C2E3',X'171B0546',X'81E55D5B', -C DBTV - * X'12430466',X'015D5B00', -C - * X'125B0457',X'81C1C1C2',X'125B0475',X'81E95B00', -C AABZ - * X'135F03DD',X'015D5B00', -C - * X'134703CE',X'81E2E2E2',X'134703EC',X'81E95B00'/ -C SSSZ - END diff --git a/util/sorc/sixbitb.fd/DOFRST.f b/util/sorc/sixbitb.fd/DOFRST.f deleted file mode 100755 index eb63a4b1db..0000000000 --- a/util/sorc/sixbitb.fd/DOFRST.f +++ /dev/null @@ -1,3 +0,0 @@ - SUBROUTINE DOFRST() - return - end diff --git a/util/sorc/sixbitb.fd/FAXSHD.f b/util/sorc/sixbitb.fd/FAXSHD.f deleted file mode 100755 index ec4a3339d8..0000000000 --- a/util/sorc/sixbitb.fd/FAXSHD.f +++ /dev/null @@ -1,308 +0,0 @@ - SUBROUTINE FAXSHD(IAREA,IA,JA,INDEX,INCR1,INCR,JLAST,NNN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FAXSHD INPUT FIELD READER -C PRGMMR: KUMAR ORG: W/NP12 DATE: 1999-12-21 -C -C ABSTRACT: READS THE FAX ISCHED. -C -C PROGRAM HISTORY LOG: -C ??-??-?? UNKNOWN -C 91-02-21 STEVE LILLY, MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77. ADD THE -C ATLANTIC AND PACIFIC FAX CUTS FOR LEVELS FL450, -C FL390, FL340, FL300, FL240, FL180. -C 1999-12-21 CONVERTED FROM CRAY TO IBM SP 6000 -C -C USAGE: CALL FAXSHD(IAREA,IA,JA,INDEX,INCR1,INCR,JLAST,NNN) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON/NSCHED/ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,60) -C - INTEGER IAREA(IA,JA) - INTEGER IISUB(11) - INTEGER ISUBA(3) - INTEGER ISUBB(3) -C - INTEGER ISCHED - character*8 csched(8,60) - equivalence (csched, ISCHED) -C - CHARACTER*1 JSCHED(16,60) -C - DATA IISUB/1H ,2HP1,2HP2,2HP3,2HP4,2HP5,2HP6,2HI1,2HI2,2HI3, - 1 2HB2/ - DATA ISUBA/3HP1A,3HP3A,3HP5A/ - DATA ISUBB/2HP1,2HP3,2HP5/ - DATA IBCHK/4H / - DATA ITBSE/7400/ - DATA MAPT7/X'E5000000'/ - DATA MASK2/X'FF000000'/ -C - EQUIVALENCE (ISCHED(1,1),JSCHED(1,1)) -C -C COMMON AREA VARIABLES /NSCHED/ -C -C WHERE ISLOTA,B= FAX SLOT NUMBER (CARD IMAGE FORMAT) -C WHERE IPANA,B= FAX PANEL INDICATOR (CARD IMAGE FORMAT) -C WHERE ISUB= FAX SUBSET NO. (CARD IMAGE FORMAT) -C WHERE IFLAB= FRONT LABEL INSET NO. (CARD IMAGE FORMAT) -C WHERE INSET= REAL INSET NO. (CARD IMAGE FORMAT) -C WHERE IRLAB= REAR LABEL INSET NO. (CARD IMAGE FORMAT) -C WHERE ISCHED= FAX/VARIAN SCHEDULE CONTROL -C -C CALL SEQUENCE VARIABLES -C IAREA= ARRAY FOR ALL FAX/VARIAN AREAS -C IA,JA= I,J INDEX FOR IAREA ARRAY -C INDEX= SPECIFIC IAREA INDEX TO BE USED FOR THIS CUT -C INCR1= OUTPUT SCAN LINE J FOR SPECIFIC AREA USED -C (NEEDED FOR LABEL ARRAY LINKAGE TO CNTR) -C -C -C INTERNAL SUBROUTINE VARIABLES -C -C WHERE IFAXT=0 VARIAN MAP -C "1 WHOLE FAX MAP(NO REAL INSET) -C =2 WHOLE FAX MAP(REAL INSET(S)) -C =3 LEFT PANEL MAP -C =4 RIGHT PANEL MAP -C =5 REAL INSET -C -C WHERE INUML=0 NO STRIP LABELS -C =1 FRONT LABEL ONLY OR FRONT OR REAR LABEL -C =2 FRONT AND REAR LABEL -C INITIALIZE FOR SPECIAL MAP TYPE - NNN=NNN+1 - IPANY=0 - IVARY=0 - IVAR=IAND(ISLOTA,MASK2) - IF(IVAR.EQ.MAPT7) IVARY=1 - IF((IPANA.NE.IISUB(8)).OR.(IPANA.NE.IISUB(9)).OR. - 1 (IPANA.NE.IISUB(10)).OR.(IPANA.NE.IBCHK)) IPANY=1 - IFAXT=0 - IF(IVARY.EQ.1) IFAXT=0 - IF((IPANA.EQ.IBCHK).AND.(INSET.LT.1).AND.(IVARY.EQ.0)) IFAXT=1 - IF((IPANA.EQ.IBCHK).AND.(INSET.GE.1).AND.(IVARY.EQ.0)) IFAXT=2 - IF((IPANA.EQ.IISUB(2)).OR.(IPANA.EQ.IISUB(4)).OR. - 1 (IPANA.EQ.IISUB(6))) IFAXT=3 - IF((IPANA.EQ.IISUB(3)).OR.(IPANA.EQ.IISUB(5)).OR. - 1 (IPANA.EQ.IISUB(7)).OR.(IPANA.EQ.IISUB(11))) IFAXT=4 - IF((IPANA.EQ.IISUB(8)).OR.(IPANA.EQ.IISUB(9)).OR. - 1 (IPANA.EQ.IISUB(10))) IFAXT=5 - INUML=0 - IF((IFLAB.LT.1).AND.(IRLAB.LT.1)) INUML=0 - IF((IFLAB.GE.1).AND.(IRLAB.LT.1)) INUML=1 - IF((IFLAB.GE.1).AND.(IRLAB.GE.1)) INUML=2 - IF(INCR1.NE.0) GO TO 15 - JLAST=ITBSE-INCR - 15 CONTINUE - ISCHED(1,NNN)=ISUB - ISCHED(2,NNN)=IAREA(1,INDEX) - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=IAREA(2,INDEX) -c TROUBLE (GWV!!) -c JSCHED(9,NNN)=CHAR(IAREA(3,INDEX)) -c print 1929,iarea(3,index),iarea(4,index),iarea(5,index) - 1929 format(' DISPL',3i20) - 1939 format(' DISPL2',3Z30) -c JSCHED(10,NNN)=CHAR(IAREA(4,INDEX)) -c JSCHED(11,NNN)=CHAR(IAREA(5,INDEX)) - csched(5,nnn)(7:7)=char(IAREA(3,INDEX)) - csched(5,nnn)(8:8)=CHAR(IAREA(4,INDEX)) - if(iarea(5,index).le.255) then - csched(6,nnn)(7:7)=CHAR(IAREA(5,INDEX)) - else - csched(6,nnn)(7:7)=char(216) - endif -c print 1939,NNN,isched(6,nnn),isched(7,nnn) - IF((IFAXT.EQ.0).OR.((IFAXT.EQ.1).AND.(INUML.EQ.0))) GO TO 1426 - GO TO 1427 -C -C FOUND VARIAN MAP OR WHOLE FAX MAP(NO REAL INSET) -C AND NO STRIP LABELS -C - 1426 CONTINUE -cc JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - call byteswap(isched(5,nnn),8,1) - call byteswap(isched(6,nnn),8,1) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 - 1427 CONTINUE - GO TO (1428,1428,1432,1434,1436),IFAXT -C -C FOUND WHOLE MAP (NO REAL INSET) OR -C FOUND WHOLE MAP (REAL INSET(S)) - 1428 CONTINUE - IF((IFAXT.EQ.2).AND.(INUML.EQ.0)) GO TO 1430 -C -C PREPARE FOR FRONT STRIP LABEL -C -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=-30 - ISCHED(8,NNN)=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - NNN=NNN+1 - ISCHED(1,NNN)=IFLAB - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - IFLW2=216 - IFLW3=1 - IF(IFAXT.EQ.2) GO TO 14292 - IF(INUML.EQ.2) GO TO 1429 -C -C FOUND WHOLE MAP FRONT LABEL ONLY -C -c JSCHED(11,NNN)=CHAR(IFLW2) - csched(6,nnn)(7:7)=char(iflw2) - ISCHED(5,NNN)=0 -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 -C -C FOUND FRONT AND REAR STRIP LABEL -C - 1429 CONTINUE - -c JSCHED(9,NNN)=CHAR(IFLW3) -c JSCHED(10,NNN)=CHAR(0) -c JSCHED(11,NNN)=CHAR(IFLW2) -c JSCHED(12,NNN)=CHAR(0) - csched(5,nnn)(7:7)=CHAR(IFLW3) - csched(5,nnn)(8:8)=char(0) - csched(6,nnn)(7:7)=char(IFLW2) - csched(6,nnn)(8:8)=char(0) - - ISCHED(7,NNN)=IAREA(2,INDEX) - ISCHED(8,NNN)=IRLAB - IWORK1=IRLAB - JLAST=JLAST+INCR - JXL=JLAST -14291 CONTINUE - NNN=NNN+1 - ISCHED(1,NNN)=IWORK1 - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - IRLW2=216 -c JSCHED(11,NNN)=CHAR(IRLW2) - csched(6,nnn)(7:7)=char(irlw2) - ISCHED(5,NNN)=0 -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 -C -C FOUND REAL INSET -C -14292 CONTINUE -c JSCHED(9,NNN)=CHAR(IFLW3) -c JSCHED(10,NNN)=CHAR(0) -c JSCHED(11,NNN)=CHAR(IFLW2) -c JSCHED(12,NNN)=CHAR(IAREA(6,INDEX)) - csched(5,nnn)(7:7)=CHAR(IFLW3) - csched(5,nnn)(8:8)=char(0) - csched(6,nnn)(7:7)=char(IFLW2) - csched(6,nnn)(8:8)=char(iarea(6,index)) - ISCHED(7,NNN)=IAREA(7,INDEX) - ISCHED(8,NNN)=INSET - GO TO 1450 -C -C FOUND WHOLE MAP (REAL INSET(S)) BUT NO STRIP LABELS -C - 1430 CONTINUE - GO TO 1450 -C -C FOUND LEFT PANEL MAP -C - 1432 CONTINUE -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=-30 - ISCHED(8,NNN)=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - NNN=NNN+1 - ISCHED(1,NNN)=IFLAB - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR -c JSCHED(9,NNN)=CHAR(1) -c JSCHED(10,NNN)=CHAR(0) -c JSCHED(11,NNN)=CHAR(216) -c JSCHED(12,NNN)=CHAR(IAREA(5,INDEX)) - csched(5,nnn)(7:7)=CHAR(1) - csched(5,nnn)(8:8)=char(0) - csched(6,nnn)(7:7)=char(216) - csched(6,nnn)(8:8)=char(iarea(5,index)) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=INSET - IWORK1=IRLAB - JLAST=JLAST+INCR - JXL=JLAST - GO TO 14291 -C -C FOUND RIGHT PANEL MAP -C - 1434 CONTINUE -c JSCHED(9,NNN)=CHAR(69) - - csched(5,nnn)(7:7)=CHAR(69) - IF(IPANA.EQ.IISUB(11)) JSCHED(9,NNN)=CHAR(65) - ISCHED(7,NNN)=IAREA(2,INDEX) -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(8,NNN)=IFLAB - GO TO 1450 -C -C FOUND REAL INSET -C - 1436 CONTINUE - KSCHED = MOVA2I(JSCHED(9,NNN)) - IF(IFLAB.GT.0)JSCHED(9,NNN)= CHAR(KSCHED+1) -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=IAREA(8,INDEX) - IF(IFLAB.GT.0)ISCHED(7,NNN)=IAREA(2,INDEX) - ISCHED(8,NNN)=IFLAB - IF(IFLAB.LT.1)GOTO 1450 - IWORK1=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - GO TO 14291 - 1450 CONTINUE -Corig PRINT 250,IFAXT,INUML,INDEX,INCR1 - WRITE(6,250) IFAXT,INUML,INDEX,INCR1 - 250 FORMAT('0TYPE MAP= ',I5,' TYPE LABELS ',I5,' AREA INDEX= ', - 1 I5,' LABEL ARRAY VALUE= ',I5) - RETURN - END diff --git a/util/sorc/sixbitb.fd/GETSXX.f b/util/sorc/sixbitb.fd/GETSXX.f deleted file mode 100755 index 0cfa75239b..0000000000 --- a/util/sorc/sixbitb.fd/GETSXX.f +++ /dev/null @@ -1,197 +0,0 @@ - SUBROUTINE GETSXX(ITAU,MBLVL,ITYPE,FLOLA,IDENT,IEXIT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: GETSXX GET A LOLA FIELD FROM SPECTRAL COEFFS -C PRGMMR: KUMAR ORG: NP/12 DATE: 1999-12-21 -C -C ABSTRACT: TO GET A 2.5 DEGREE LONGITUDE/LATITUDE GRIDPOINT DATA -C FIELD FROM SPECTRAL COEFFICIENTS USING W3FT59. THIS IS A LIMITED -C USE ROUTINE TO GET NORTHERN HEMI DATA OUT OF S24/S36 FILE. -C -C PROGRAM HISTORY LOG: -C 82-04-23 SHIMOMURA -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77 -C 1999-12-21 KRISHNA KUMAR CONVERTED FROM CRAY TO IBM SP 6000 -C -C -C USAGE: CALL GETSXX(ITAU, MBLVL, ITYPE, FLOLA, IDENT, IEXIT) -C INPUT ARGUMENTS: -C (1)ITAU ... FORECAST HOUR DESIRED -C ITAU=999 IS A SPECIAL SIGNAL TO CLOSE SXX FILE -C (2)MBLVL ... THE MILLIBAR LEVEL DESIRED -C (3)ITYPE ... TYPE OF DATA FIELD DESIRED, AS IN O.N.84 -C -C INPUT FILES: -C S24,S36 - CONTAINING SPECTRAL COEFFICIENTS FROM SELA'S MODEL -C - DSN=NWS.NMC.PROD.SXX.T00Z.OPRNL,DISP=SHR -C - ... OR, AT 12Z, -C - DSN=NWS.NMC.PROD.SXX.T12Z.OPRNL,DISP=SHR -C -C OUTPUT ARGUMENTS: -C (4)FLOLA ... REAL FLOLA(145,37) -C WHICH IS THE ARRAY FOR THE DESIRED FIELD. -C (5)IDENT ... INTEGER IDENT(12) -C WHICH IS ARRAY FOR IDENTIFIERS FOR FLOLA FIELD -C (6)IEXIT ... RETURN CODE -C IEXIT=0 FOR NORMAL RETURN -C IEXIT= NON-ZERO FOR ERROR RETURN -C -C SUBPROGRAMS CALLED: -C LIBRARY: -C W3LIB - W3FT59, W3FK49 -C -C RETURN CONDITIONS: -C IEXIT=1 DISK READ ERROR FROM W3FK43, CALLED BY W3FT59, -C - DATA FIELD ENTRY NOT IN TABLE -C IEXIT=2 DISK READ ERROR FROM W3FK43, CALLED BY W3FT59, -C - RETRIEVED DATA HAD WRONG ID. -C IEXIT=3 DISK READ ERROR FROM W3FK43, CALLED BY W3FT59, -C - DATA FIELD NOT ON DISK. -C IEXIT=4 ERROR FROM W3FT59, WRONG GRID TYPE IN 5TH WORD OF ID, -C - SHOULD HAVE BEEN HEX 1D OR HEX 1E. -C IEXIT=5 ERROR FROM GETSXX, -C - ARG(1) ITAU IS TOO BIG. (ITAU WAS .GT. 255) -C -C REMARKS: WHEN YOU FINISH READING IN ALL FIELDS YOU NEED, -C YOU SHOULD CLOSE OUT THE SXX FILE BY CALLING THIS SUBROUTINE -C WITH ITAU=999 -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE : IBM -C -C$$$ -C -C -C CHARACTER*8 FILNAM - INTEGER*8 FILNAM - INTEGER*8 LUGRB -C CHARACTER*8 FILE24 - INTEGER*8 FILE24 - DATA FILE24 /12/ - INTEGER*8 FILE18 - DATA FILE18 /13/ - INTEGER*8 FILE31 - DATA FILE31 /31/ - INTEGER*8 FILE32 - DATA FILE32 /32/ -C CHARACTER*8 FILE36 - INTEGER*8 FILE30 - DATA FILE30 /30/ - INTEGER*8 FILE33 - DATA FILE33 /33/ - INTEGER*8 FILE36 - DATA FILE36 /36/ - INTEGER*8 FILE34 - DATA FILE34 /34/ - CHARACTER*132 MTITLE -C - REAL FLOLA(145,37) -C - INTEGER IDENT(12) - INTEGER KDENT(12) -C -C DATA FILE24/'S24 '/ -ckumar DATA FILE36/'S36 '/ - DATA KDENT / X'00100818',X'0061A882',0,0,X'0000001D',X'00990A87', - 1 6*0 / - DATA KWD1 / X'00000800' / - DATA K82 / X'00000082' / - DATA MSKTAU / X'000000FF' / - DATA MSKLVL / X'000FFFFF' / -C - IEXIT = 0 - IF(ITAU .GT. 255) GO TO 700 - DO 155 I = 1,12 - IDENT(I) = KDENT(I) - 155 CONTINUE -C ... PUT TYPE AND TAU INTO IDENT(1) - IACC = ITYPE - IACC = ISHFT(IACC,20) - 1059 format('iacc shift ',i5,z20,z20,z20) - IWORD1 = IOR(IACC,KWD1) -c print 1059,itype,itype,iacc,iword1 - IACC = ITAU - IACC = IAND(IACC,MSKTAU) - IWORD1 = IOR(IWORD1,IACC) -c print 1059,itau,itau,iacc,iword1 - IDENT(1) = IWORD1 -C -C ... PUT LEVEL INTO IDENT(2) - IACC = MBLVL - IF(IACC .LE. 999) IACC = IACC*100 - IACC = IAND(IACC,MSKLVL) - IWORD2 = ISHFT(IACC,8) -c print 1069,mblvl,iacc,iacc,iword2 - IWORD2 = IOR(IWORD2,K82) -c print 1069,mblvl,iacc,iacc,iword2 - 1069 format(' ishift lev',i5,i5,z20,z20) - IDENT(2) = IWORD2 -C -Corig PRINT 180 - WRITE(6,180) - 180 FORMAT(' CHECK IDENTS IN GETSXX',/) - DO 250 I=1,12 - PRINT 200,IDENT(I),i -c WRITE(6,200) IDENT(I),i - 200 FORMAT(3X,' ident ',Z8,i3) - 250 CONTINUE -C IF(ITAU.EQ.18.OR.ITAU.EQ.24)FILNAM=FILE24 - IF(ITAU.EQ.18) THEN - FILNAM = FILE18 - LUGRB = FILE31 - ELSE - IF(ITAU.EQ.24) THEN - FILNAM = FILE24 - LUGRB = FILE32 - ENDIF - ENDIF -C IF(ITAU.EQ.30.OR.ITAU.EQ.36)FILNAM=FILE36 - IF(ITAU.EQ.30) THEN - FILNAM = FILE30 - LUGRB = FILE33 - ELSE - IF(ITAU.EQ.36) THEN - FILNAM = FILE36 - LUGRB = FILE34 - ENDIF - ENDIF - WRITE(6,169) - 169 FORMAT(1X,'BEFORE THE CALL IW3GET') -C CALL W3FT59(FILNAM,IDENT,FLOLA,IER) -C CALL IW3GET(LUGRBIX,LUGRB,LABEL,FLD,MTITLE,IERR) - WRITE(6,8765)FILNAM,LUGRB - 8765 FORMAT(1X,'NO. 1 FILNAM=',I4,2X,'LUGRB=',1X,I4) -Cwron CALL IW3GET(FILNAM,LUGRB,IDENT,FLOLA,MTITLE,IER) - CALL IW3GET(LUGRB,FILNAM,IDENT,FLOLA,MTITLE,IER) - ixudd=145 - iyudd=37 -c do 198 k=1,37 -ck 198 print 1019,MTITLE,k,FLOLA(1,k) - 1019 format(' IWGET CHK ',A132,1x,i4,f10.4) -c call qcn(flola,ixudd, iyudd) - WRITE(6,1346) IER - 1346 FORMAT(1X,'STEVE IER AFTER IW3GET IS',1X,I4) - IF(IER .NE. 0) GO TO 911 -C ... ELSE, GOT A FIELD IN FLOLA -C ... AND ID INCLUDING DATE IN IDENT - GO TO 999 - 700 CONTINUE -C ... COMES HERE IF ITAU .GT. 255 - IF(ITAU .NE. 999) GO TO 900 -C CALL W3FK49(FILNAM) - GO TO 999 - 900 CONTINUE -C ... COMES HERE IF ITAU IS OUT OF BOUNDS - IEXIT = 5 - GO TO 999 -C - 911 CONTINUE -C ... COMES HERE IF ERROR FROM W3FT59 - IEXIT = IER - GO TO 999 - 999 CONTINUE -C do 298 k=1,37 -c 298 print 1019,MTITLE,k,FLOLA(1,k) - RETURN - END diff --git a/util/sorc/sixbitb.fd/GULFTL.f b/util/sorc/sixbitb.fd/GULFTL.f deleted file mode 100755 index 1cb1fbb56b..0000000000 --- a/util/sorc/sixbitb.fd/GULFTL.f +++ /dev/null @@ -1,3 +0,0 @@ - subroutine GULFTL() - return - end diff --git a/util/sorc/sixbitb.fd/MERCIN.f b/util/sorc/sixbitb.fd/MERCIN.f deleted file mode 100755 index 2075fca3c6..0000000000 --- a/util/sorc/sixbitb.fd/MERCIN.f +++ /dev/null @@ -1,439 +0,0 @@ - SUBROUTINE MERCIN(ISWTCH,NUMF,MAPON,NSLOTS,ILVLI, - 1 IFLDI,ITAUI,ICODIN,INAMIN,IOUTIN,IINFA,IINFB) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: MERCIN INPUT FIELD READER -C PRGMMR: KUMAR ORG: W/NP12 DATE: 1999-09-20 -C -C ABSTRACT: BASIC MAP CONTROL. -C -C PROGRAM HISTORY LOG: -C ??-??-?? UNKNOWN -C 91-02-21 STEVE LILLY, MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77. -C 1999-09-25 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM SP/6000 -C -C USAGE: CALL MERCIN(ISWTCH,NUMF,MAPON,NSLOTS,ILVLI,IFLD1,ITAUI, -C ICODIN,INAMIN,IOUTIN, IINFA,IINFB) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - DIMENSION ILVLI(3),IFLDI(3),ITAUI(3),IOUTIN(2) - DIMENSION IIOUT(4,7) - DIMENSION IFILER(3,3) - DIMENSION ICODES(3,6) - DIMENSION ITAU(3,5) - DIMENSION IFLD(3,3) - DIMENSION ILVL(3,8) -C - DATA IBCHK/4H / -C DATA LU/8/ - DATA LU/18/ -C -C LEVEL CONTROL TABLE -C -C CHANGED NUMBER OF LEVELS ...... -C AND TOOK TROP OUT OF ILVL LIST ...... - DATA NLVLS/8/ - DATA ILVL/4H850 ,1H ,1,4H700 ,1H ,2,4H500 ,1H ,3,4H400 ,1H ,4, - 1 4H300 ,1H ,5,4H250 ,1H ,6,4H200 ,1H ,7, - 2 4H150 ,1H ,8/ -C -C FIELD CONTROL TABLE -C -C CHANGED # OF FIELDS ....... - DATA NFLDS/3/ - DATA IFLD/4HU ,1H ,1,4HV ,1H ,2,4HTEMP,1HS,3/ -C -C TAU CONTROL TABLE -C - DATA NTAUS/5/ - DATA ITAU/4H18HR,1H ,1,4H24HR,1H ,2,4H30HR,1H ,3,4H36HR,1H ,4, - 1 4H48HR,1H ,5/ -C -C OPERATIONAL RUN TYPE TABLE -C -C CHANGED # OF ICODES ....... - DATA NCODES/6/ - DATA ICODES/4HOPN0,1H9,1,4HOPN1,1H0,2,4HOPN2,1H6,3,4HOPN2,1H8,4, - 1 4HOPN2,1H5,5,4HOPN3,1H3,6/ -C -C FILE CONTROL TABLE -C - DATA NFILES/3/ - DATA IFILER/4HMERC,1HI,1,4H ,1H ,2,4HPOLA,1HR,3/ -C -C OUTPUT TYPE CONTROL TABLE -C - DATA NOUTS/7/ - DATA IIOUT/4HS-I ,1H ,1,1,4HS-I-,1HP,2,2,4HS-I-,1HT,3,3, - 1 4HS ,1H ,4,4,4HP-T-,1HW,5,5,4HP-V ,1H ,6,6, - 2 4HW-T ,1H ,7,7/ -C -C BASIC MAP CONTROLS (SET FOR EACH MAP) -C -C WHERE ICARD1= CARD CONTROL(BLANK-A1) -C WHERE LVL1A,LVL1B= 1ST LEVEL (A4,A1) -C WHERE IFLD1A,IFLD1B= 1ST FIELD TYPE (A4,A1) -C WHERE ITAU1A,ITAU1B= 1ST TAU PERIOD (A4,A1) -C WHERE LVL2A,LVL2B= 2ND LEVEL (A4,A1) -C WHERE IFLD2A,IFLD2B= 2ND FIELD TYPE (A4,A1) -C WHERE ITAU2A,ITAU2B= 2ND TAU PERIOD (A4,A1) -C WHERE LVL3A,LVL3B= 3RD LEVEL (A4,A1) -C WHERE IFLD3A,IFLD3B= 3RD FIELD TYPE (A4,A1) -C WHERE ITAU3A,ITAU3B= 3RD TAU PERIOD (A4,A1) -C WHERE ICODEA,ICODEB= OPERATIONAL CODE TYPE (A4,A1) -C WHERE IINFA,IINFB= INPUT FILE NAME (A4,A1) -C WHERE IOUTA,IOUTB= OUTPUT FIELD COMBINATION -C WHERE MAPON= MAP NUMBER (I4) -C WHERE NSLOTS= NUMBER OF MAP PARTS (I4) -C - 7025 CONTINUE - IF(ISWTCH.EQ.1) GO TO 7040 -C -C USE DATA CARD INPUT -C - 7030 CONTINUE -Corig READ 7200, ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2A, - READ (LU,7200) ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2 - 1 LVL2B,IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A,LVL3B,IFLD3A, - 2 IFLD3B,ITAU3A,ITAU3B,ICODEA,ICODEB,IINFA,IINFB,IOUTA, - 3 IOUTB,MAPON,NSLOTS - 7200 FORMAT(A1,10(A4,A1),3X,2(A4,A1),2I4) - GO TO 7045 -C -C USE DATA SET CONTROL FILE INPUT -C - 7040 CONTINUE - READ(LU,7200) ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B, - 2 LVL2A,LVL2B,IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A, - 3 LVL3B,IFLD3A,IFLD3B,ITAU3A,ITAU3B,ICODEA, - 4 ICODEB,IINFA,IINFB,IOUTA,IOUTB,MAPON,NSLOTS - 7045 CONTINUE - NUMF=3 - IF(LVL3A.EQ.IBCHK.AND.LVL3B.EQ.IBCHK) NUMF=2 - IF(LVL2A.EQ.IBCHK.AND.LVL2B.EQ.IBCHK.AND.LVL3A.EQ.IBCHK.AND. - 1LVL3B.EQ.IBCHK) NUMF=1 -Corig PRINT 7201,MAPON,NUMF - WRITE(6,7201) MAPON,NUMF - 7201 FORMAT(1H1,'MAP NUMBER= ',I3,' NUMBER OF INPUT FIELDS= ',I3) -Corig PRINT 7202,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2A,LVL2B, - WRITE(6,7202) LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2A,LVL2B, - 1 IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A,LVL3B,IFLD3A, - 2 IFLD3B,ITAU3A,ITAU3B - 7202 FORMAT(1H0,'DATA TYPES= ',9(A4,A1)) -Corig PRINT 7203,ICODEA,ICODEB,IINFA,IINFB,IOUTA,IOUTB,NSLOTS - WRITE(6,7203) ICODEA,ICODEB,IINFA,IINFB,IOUTA,IOUTB,NSLOTS - 7203 FORMAT(1H0,'OPERATIONAL CODE= ',A4,A1,' INPUT FILE= ',A4,A1, - X'OUTPUT COMB. TYPE= ',A4,A1,' NUMBER OF FAX VARIAN CUTS= ',I3) - DO 7210 IX=1,3 - ILVLI(IX)=0 - IFLDI(IX)=0 - ITAUI(IX)=0 - 7210 CONTINUE - ICODIN=0 - INAMIN=0 - DO 7211 IY=1,2 - IOUTIN(IY)=0 - 7211 CONTINUE -C -C CHECK FOR REASONABLE LEVEL REQUESTS -C -C CHECK LEVEL 1 -C - DO 7215 IK=1,NLVLS - IF(LVL1A.EQ.IBCHK.AND.LVL1B.EQ.IBCHK) GO TO 7205 - IF(LVL1A.NE.ILVL(1,IK)) GO TO 7215 - IF(LVL1B.NE.ILVL(2,IK)) GO TO 7215 - ILVLI(1)=ILVL(3,IK) - IP=ILVLI(1) -Corig PRINT 7204,IP - WRITE(6,7204) IP - 7204 FORMAT(1H0,'LEVEL 1 INDEX FOUND= ',I2) - GO TO 7220 -C7205 PRINT 7206 - 7205 CONTINUE - WRITE(6,7206) - 7206 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 1-WAS BLANK') - CALL W3TAGE('AVPOLARV') - STOP 207 - 7215 CONTINUE -Corig PRINT 7216 - WRITE(6,7216) - 7216 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 1') - CALL W3TAGE('AVPOLARV') - STOP 217 - 7220 CONTINUE -C -C CHECK LEVEL 2 -C - DO 7235 IK=1,NLVLS - IF(LVL2A.EQ.IBCHK.AND.LVL2B.EQ.IBCHK) GO TO 7240 - IF(LVL2A.NE.ILVL(1,IK)) GO TO 7235 - IF(LVL2B.NE.ILVL(2,IK)) GO TO 7235 - ILVLI(2)=ILVL(3,IK) - IP=ILVLI(2) -Corig PRINT 7234,IP - WRITE(6,7234) IP - 7234 FORMAT(1H0,'LEVEL 2 INDEX FOUND= ',I2) - GO TO 7240 - 7235 CONTINUE -Corig PRINT 7236 - WRITE(6,7236) - 7236 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 2') - CALL W3TAGE('AVPOLARV') - STOP 237 - 7240 CONTINUE -C -C CHECK LEVEL 3 -C - DO 7255 IK=1,NLVLS - IF(LVL3A.EQ.IBCHK.AND.LVL3B.EQ.IBCHK) GO TO 7260 - IF(LVL3A.NE.ILVL(1,IK)) GO TO 7255 - IF(LVL3B.NE.ILVL(2,IK)) GO TO 7255 - ILVLI(3)=ILVL(3,IK) - IP=ILVLI(3) -Corig PRINT 7254,IP - WRITE(6,7254) IP - 7254 FORMAT(1H0,'LEVEL 3 INDEX FOUND= ',I2) - GO TO 7260 - 7255 CONTINUE -Corig PRINT 7256 - WRITE(6,7256) - 7256 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 3') - CALL W3TAGE('AVPOLARV') - STOP 257 - 7260 CONTINUE -C -C CHECK FOR REASONABLE FIELD REQUESTS -C -C CHECK FIELD 1 -C - DO 7315 IK=1,NFLDS - IF(IFLD1A.EQ.IBCHK.AND.IFLD1B.EQ.IBCHK) GO TO 7305 - IF(IFLD1A.NE.IFLD(1,IK)) GO TO 7315 - IF(IFLD1B.NE.IFLD(2,IK)) GO TO 7315 - IFLDI(1)=IFLD(3,IK) - IP=IFLDI(1) -Corig PRINT 7314,IP - WRITE(6,7314) IP - 7314 FORMAT(1H0,'FIELD 1 INDEX FOUND= ',I2) - GO TO 7320 -C7305 PRINT 7306 - 7305 CONTINUE - WRITE(6,7306) - 7306 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 1-WAS BLANK') - CALL W3TAGE('AVPOLARV') - STOP 307 - 7315 CONTINUE -Corig PRINT 7316 - WRITE(6,7316) - 7316 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD1') - CALL W3TAGE('AVPOLARV') - STOP 317 - 7320 CONTINUE -C -C CHECK FIELD 2 -C - DO 7335 IK=1,NFLDS - IF(IFLD2A.EQ.IBCHK.AND.IFLD2B.EQ.IBCHK) GO TO 7340 - IF(IFLD2A.NE.IFLD(1,IK)) GO TO 7335 - IF(IFLD2B.NE.IFLD(2,IK)) GO TO 7335 - IFLDI(2)=IFLD(3,IK) - IP=IFLDI(2) -Corig PRINT 7334,IP - WRITE(6,7334) IP - 7334 FORMAT(1H0,'FIELD 2 INDEX FOUND= ',I2) - GO TO 7340 - 7335 CONTINUE -Corig PRINT 7336 - WRITE(6,7336) - 7336 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 2') - CALL W3TAGE('AVPOLARV') - STOP 337 - 7340 CONTINUE -C -C CHECK FIELD 3 -C - DO 7355 IK=1,NFLDS - IF(IFLD3A.EQ.IBCHK.AND.IFLD3B.EQ.IBCHK) GO TO 7360 - IF(IFLD3A.NE.IFLD(1,IK)) GO TO 7355 - IF(IFLD3B.NE.IFLD(2,IK)) GO TO 7355 - IFLDI(3)=IFLD(3,IK) - IP=IFLDI(3) -Corig PRINT 7354,IP - WRITE(6,7354) IP - 7354 FORMAT(1H0,'FIELD 3 INDEX FOUND= ',I2) - GO TO 7360 - 7355 CONTINUE -Corig PRINT 7356 - WRITE(6,7356) - 7356 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 3') - CALL W3TAGE('AVPOLARV') - STOP 357 - 7360 CONTINUE -C -C CHECK FOR REASONABLE TAU REQUESTS -C -C CHECK TAU 1 -C - DO 7415 IK=1,NTAUS - IF(ITAU1A.EQ.IBCHK.AND.ITAU1B.EQ.IBCHK) GO TO 7415 - IF(ITAU1A.NE.ITAU(1,IK)) GO TO 7415 - IF(ITAU1B.NE.ITAU(2,IK)) GO TO 7415 - ITAUI(1)=ITAU(3,IK) - IP=ITAUI(1) -Corig PRINT 7414,IP - WRITE(6,7414) IP - 7414 FORMAT(1H0,'TAU 1 INDEX FOUND= ',I2) - GO TO 7420 -C - 7415 CONTINUE -Corig PRINT 7416 - WRITE(6,7416) - 7416 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 1') - CALL W3TAGE('AVPOLARV') - STOP 417 - 7420 CONTINUE -C -C CHECK TAU 2 -C - DO 7435 IK=1,NTAUS - IF(ITAU2A.EQ.IBCHK.AND.ITAU2B.EQ.IBCHK) GO TO 7440 - IF(ITAU2A.NE.ITAU(1,IK)) GO TO 7435 - IF(ITAU2B.NE.ITAU(2,IK)) GO TO 7435 - ITAUI(2)=ITAU(3,IK) - IP=ITAUI(2) -Corig PRINT 7434,IP - WRITE(6,7434) IP - 7434 FORMAT(1H0,'TAU 2 INDEX FOUND= ',I2) - GO TO 7440 - 7435 CONTINUE -Corig PRINT 7436 - WRITE(6,7436) - 7436 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 2') - CALL W3TAGE('AVPOLARV') - STOP 437 - 7440 CONTINUE -C -C CHECK TAU 3 -C - DO 7455 IK=1,NTAUS - IF(ITAU3A.EQ.IBCHK.AND.ITAU3B.EQ.IBCHK) GO TO 7460 - IF(ITAU3A.NE.ITAU(1,IK)) GO TO 7455 - IF(ITAU3B.NE.ITAU(2,IK)) GO TO 7455 - ITAUI(3)=ITAU(3,IK) - IP=ITAUI(3) -Corig PRINT 7454,IP - WRITE(6,7454) IP - 7454 FORMAT(1H0,'TAU 3 INDEX FOUND= ',I2) - GO TO 7460 - 7455 CONTINUE -Corig PRINT 7456 - WRITE(6,7456) - 7456 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 3') - CALL W3TAGE('AVPOLARV') - STOP 457 - 7460 CONTINUE -C -C CHECK FOR REASONABLE OPERATIONAL CODE REQUESTS -C - DO 7515 IK=1,NCODES - IF(ICODEA.EQ.IBCHK.AND.ICODEB.EQ.IBCHK) GO TO 7505 - IF(ICODEA.NE.ICODES(1,IK)) GO TO 7515 - IF(ICODEB.NE.ICODES(2,IK)) GO TO 7515 - ICODIN=ICODES(3,IK) -Corig PRINT 7514,ICODIN - WRITE(6,7514) ICODIN - 7514 FORMAT(1H0,'CODE INDEX FOUND= ',I2) - GO TO 7520 -C7505 PRINT 7506 - 7505 CONTINUE - WRITE(6,7506) - 7506 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OPNL CODE-WAS BLANK') - CALL W3TAGE('AVPOLARV') - STOP 507 - 7515 CONTINUE -Corig PRINT 7516 - WRITE(6,7516) - 7516 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OPNL CODE') - CALL W3TAGE('AVPOLARV') - STOP 517 - 7520 CONTINUE -C -C CHECK FOR REASONABLE FILE REQUESTS -C - DO 7535 IK=1,NFILES - IF(IINFA.EQ.IBCHK.AND.IINFB.EQ.IBCHK) GO TO 7525 - IF(IINFA.NE.IFILER(1,IK)) GO TO 7535 - IF(IINFB.NE.IFILER(2,IK)) GO TO 7535 - INAMIN=IFILER(3,IK) -Corig PRINT 7524,INAMIN - WRITE(6,7524) INAMIN - 7524 FORMAT(1H0,'FILE INDEX FOUND= ',I2) - GO TO 7540 -C7525 PRINT 7526 - 7525 CONTINUE - WRITE(6,7526) - 7526 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FILE-WAS BLANK') - CALL W3TAGE('AVPOLARV') - STOP 527 - 7535 CONTINUE -Corig PRINT 7536 - WRITE(6,7536) - 7536 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FILE') - CALL W3TAGE('AVPOLARV') - STOP 537 - 7540 CONTINUE -C -C CHECK FOR REASONABLE OUTPUT REQUESTS -C - DO 7555 IK=1,NOUTS - IF(IOUTA.EQ.IBCHK.AND.IOUTB.EQ.IBCHK) GO TO 7545 - IF(IOUTA.NE.IIOUT(1,IK)) GO TO 7555 - IF(IOUTB.NE.IIOUT(2,IK)) GO TO 7555 - IOUTIN(1)=IIOUT(3,IK) - IOUTIN(2)=IIOUT(4,IK) - IP=IOUTIN(1) - IQ=IOUTIN(2) -Corig PRINT 7554,IP,IQ - WRITE(6,7554) IP,IQ - 7554 FORMAT(1H0,'OUTPUT TYPE INDEX FOUND= ',I2,'OUTPUT MAP SET FOUND - X= ',I2) - GO TO 7560 - 7545 CONTINUE -Corig PRINT 7546 - WRITE(6,7546) - 7546 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OUTPUT TYPE-WAS BLANK') - CALL W3TAGE('AVPOLARV') - STOP 547 - 7555 CONTINUE -Corig PRINT 7556 - WRITE(6,7556) - 7556 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OUTPUT TYPE') - CALL W3TAGE('AVPOLARV') - STOP 557 - 7560 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb.fd/NPOLUV.f b/util/sorc/sixbitb.fd/NPOLUV.f deleted file mode 100755 index 04ecbb9667..0000000000 --- a/util/sorc/sixbitb.fd/NPOLUV.f +++ /dev/null @@ -1,99 +0,0 @@ - SUBROUTINE NPOLUV(FULOLA,FVLOLA,IMAX,JMAX,IEXIT) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: NPOLUV CORRECT N. POLE ROW U-& V-COMPONENTS LOLA -C PRGMMR: KUMAR ORG: NP/12 DATE: 1999-12-21 -C -C ABSTRACT: CORRECTS NORTH POLE ROW OF U- & V-COMPONENTS OF WIND IN -C THE LONGITUDE/LATITUDE (LOLA) GRID FIELDS. AN AVERAGE WIND IS -C DETERMINED FROM THE ROW ADJACENT TO THE NORTH POLE ROW, THEN THAT -C AVERAGE WIND IS STORED IN THE POLE ROW AFTER ROTATION OF AXIS -C TO EACH MERIDIAN. -C -C PROGRAM HISTORY LOG: -C 82-04-23 SHIMOMURA -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77 -C 1999-12-21 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM SP -C -C USAGE: CALL NPOLUV(FULOLA, FVLOLA, IMAX, JMAX, IEXIT) -C INPUT ARGUMENTS: -C (1)FULOLA... REAL FULOLA(IMAX,JMAX) IS FIELD OF U-COMPONENTS -C ON LOLA GRID -C (2)FVLOLA... REAL FVLOLA(IMAX,JMAX) IS FIELD OF V-COMPONENTS -C ON LOLA GRID. -C (3)IMAX ... I-DIMENSION OF LOLA GRID -C IN WHICH X-AXIS PARALLELS EQUATOR WITH ORIGIN AT -C GREENWICH MERIDIAN AT I=1, WITH GREENWICH REPEATED -C AT I=IMAX -C (4)JMAX ... J-DIMENSION OF LOLA GRID -C IN WHICH J=1 IS AT EQUATOR, AND -C ROW J=JMAX IS AT NORTH POLE. -C -C OUTPUT ARGUMENTS: -C (5)IEXIT ... RETURN CODE -C -C RETURN CONDITIONS: -C IEXIT=0 IS NORMAL RETURN, -C IEXIT=1 IS ERROR RETURN DUE TO BAD VALUE GIVEN FOR IMAX/JMAX -C -C REMARKS: RESULTS WILL OVERSTORE J=JMAX ROW IN GIVEN FIELDS. -C THIS ROUTINE IS A CRUTCH TO BE USED TEMPORARILY -C UNTIL U & V FIELDS ON LOLA GRID ARE GENERATED WITH GOOD DATA -C IN POLE ROW. -C FOR AN EXAMPLE OF THIS SAME LOGIC SEE CRISSMAN'S SUBR POLUVN -C USED IN PROGRAM ATATRAN. -C SEE RUSS JONES, W3421, FOR STATUS OF LOLA GRID DATA. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE : IBM -C -C$$$ -C - DIMENSION FULOLA(IMAX,JMAX) - DIMENSION FVLOLA(IMAX,JMAX) -C - DATA CNV2RA / 0.0174533 / -C - IEXIT = 0 - IMAXM1 = IMAX - 1 - IF(IMAXM1 .LE. 0) GO TO 900 - JMAXM1 = JMAX - 1 - IF(JMAXM1 .LE. 0) GO TO 900 - DEGPGI = 360.0 / FLOAT(IMAXM1) -C ... WORK WITH WIND DATA FROM ONE ROW BELOW POLE ROW, -C ... ROTATING TO ONE ORIENTATION, THEN SUMMING THEM... - USUM = 0.0 - VSUM = 0.0 - DO 222 I = 1,IMAXM1 - ELONG = FLOAT(I-1) * DEGPGI - ELR = ELONG * CNV2RA - SINELR = SIN(ELR) - COSELR = COS(ELR) - USUM = USUM + FULOLA(I,JMAXM1)*COSELR - FVLOLA(I,JMAXM1)*SINELR - VSUM = VSUM + FULOLA(I,JMAXM1)*SINELR + FVLOLA(I,JMAXM1)*COSELR - 222 CONTINUE -C ... THEN, GET AVERAGE AT THAT STD MERIDIAN - UAVG = USUM / FLOAT(IMAXM1) - VAVG = VSUM / FLOAT(IMAXM1) -C ... THEN, ROTATE TO INDIVIDUAL MERIDIANS AND STASH IN POLE ROW - DO 333 I = 1,IMAXM1 - ELONG = FLOAT(I-1) * DEGPGI - ELR = ELONG * CNV2RA - SINELR = SIN(ELR) - COSELR = COS(ELR) - FULOLA(I,JMAX) = UAVG*COSELR + VAVG * SINELR - FVLOLA(I,JMAX) = -UAVG * SINELR + VAVG * COSELR - 333 CONTINUE - FULOLA(IMAX,JMAX) = FULOLA(1,JMAX) - FVLOLA(IMAX,JMAX) = FVLOLA(1,JMAX) -C ... WHICH FILLS THE REPEATED GREENWICH MERIDIAN NORTH POLE PT - GO TO 999 - 900 CONTINUE -C ... COMES HERE FOR ERROR EXIT. IMAX/JMAX OUT-OF-RANGE - IEXIT = 1 - GO TO 999 -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb.fd/PLTTLL.f b/util/sorc/sixbitb.fd/PLTTLL.f deleted file mode 100755 index bc24dde891..0000000000 --- a/util/sorc/sixbitb.fd/PLTTLL.f +++ /dev/null @@ -1,3 +0,0 @@ - SUBROUTINE PLTTLL() - return - end diff --git a/util/sorc/sixbitb.fd/PLTWLL.f b/util/sorc/sixbitb.fd/PLTWLL.f deleted file mode 100755 index adeb31b27a..0000000000 --- a/util/sorc/sixbitb.fd/PLTWLL.f +++ /dev/null @@ -1,3 +0,0 @@ - subroutine PLTWLL() - return - end diff --git a/util/sorc/sixbitb.fd/RNCNTL.f b/util/sorc/sixbitb.fd/RNCNTL.f deleted file mode 100755 index 28a63458a0..0000000000 --- a/util/sorc/sixbitb.fd/RNCNTL.f +++ /dev/null @@ -1,216 +0,0 @@ - SUBROUTINE RNCNTL(NMAPS,IDATC,IOPN,ISWTCH,KRUN1,ITOUT1,ICYC1, - 1 INOPN1,INOPN2,INOPNA,INOPNB) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: RNCNTL INPUT FIELD READER -C PRGMMR: KUMAR ORG: W/NP12 DATE: 1999-12-21 -C -C ABSTRACT: READS IN THE BASIC JOB RUN. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 91-02-21 STEVE LILLY, MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRTY SUBROUTINE TO FORTRAN 77. -C 1999-12-21 KUMAR CONVERTED THIS CODE FROM CRAY TO IBM SP -C -C USAGE: CALL RNCNTL(NMAPS,IDATC,IOPN,ISWTCH,KRUN1,ITOUT1,ICYCL1, -C INOPN1,INOPN2,INOPNA,INOPNB) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - DIMENSION LKRUN(3,4) - DIMENSION LICYL(2,2) - DIMENSION LITOUT(3,4) - DIMENSION ICODES(3,6) - DIMENSION JCODES(2,6) -C - DATA NKRUN/4/ -C ...RUN TYPE CONTROL TABLE -C - DATA LKRUN/4HOPNL,1H ,1,4HOPNL,1HB,2,4HCOUT,1HD,3,4HCOUT,1HT, - 1 4/ -C -C ...OUTPUT CYCLE CONTROL TABLE -C - DATA LICYL/3H00Z,1,3H12Z,2/ - DATA NITOUT/4/ -C -C ...OUTPUT TAU CONTROL TABLE -C - DATA LITOUT/4H1824,1HH,1,4H3036,1HH,2,4HALL ,1H ,3,4H2448,1HH,4 - 1 / - DATA NICYL/2/ - DATA NMAPM/100/ - DATA NOPCDS/6/ - DATA ICODES/4HOPN0,1H9,1,4HOPN1,1H0,2,4HOPN2,1H5,3,4HOPN2,1H6, - 1 4,4HOPN2,1H8,5,4HOPN3,1H3,6/ - DATA JCODES/4HJ080,1H4,4HJ082,1H4,4HJ087,1H4,4HJ999,1H8, - + 4HJ999,1H9,4HJ999,1H9/ -C ...THIS SUBROUTINE READS IN THE BASIC JOB RUN -C ...CONTROLS AND CHECKS THEM FOR PROPER CLASSIFICATIONS -C -C ...INPUT CONTROLS -C (1) KRUNA,KRUNB (A4,A1) -C WHERE KRUN=1 OPNL 18/24 OR 24/48 RUN -C 2 OPNL 30/36 RUN BACKUP -C 3 CHECKOUT RUN(DISK) -C 4 CHECKOUT RUN(TAPE) -C (2) ITOUTA,ITOUTB (A4,A1) -C WHERE ITOUT=1 OUTPUT 18/24 HR REGULAR -C 2 OUTPUT 30/36 HR BACKUP -C 3 ALL -C 4 OUTPUT 24/48 HR REGULAR -C (3) ICYCLA,ICYCLB (A4,A1) -C WHERE ICYCLE=1 00Z -C212 -C -C (4) NMAPS (I5) -C WHERE NMAPS=NO. OF MAPS TO BE PROCESSED -C -C (5) IDATC (I5) -C WHERE IDATC=0 NO DATE/TIME TEST -C 1 DATE/TIME TEST -C (6) IOPN (I5) -C WHERE IOPN=0 CHECKOUT RUN -C 1 OPERATIONAL RUN -C -C (7) INTAPE (I5) -C WHERE INTAPE=0 INPUT FROM DISK-OPERATIONAL -C 1 INPUT SPECTRAL FILES FROM TAPE -C -C (8) INOPNA,INOPNB (A4,A1) -C WHERE INOPN= OPERATIONAL JOB TYPE -C -C (9) ISWTCH=0 INPUT SCHEDULE CONTROLS FROM CARDS -C 1 INPUT SCHEDULE CONTROLS FORM DISK -C -C ...BASIC JOB RUN CONTROLS (SET FOR EACH JOB) -C -C -C -C?? READ 5500,KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS,IDATC, -C READ(5,550)KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS,IDATC, - READ(15,550)KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS,IDATC, - 1 IOPN,INTAPE,INOPNA,INOPNB,ISWTCH - 550 FORMAT(3(A4,A1),4I5,A4,A1,I5) -C5550 FORMAT(3(A4,A1),4I5,A4,A1,I5) -Corig PRINT 5509 - WRITE(6,5509) - 5509 FORMAT('1BASIC JOB RUN CONTROLS (SET FOR EACH JOB)') -Corig PRINT 5510, KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS - WRITE(6,5510) KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS - 5510 FORMAT('0OPERATIONAL RUN TYPE= ',A4,A1,' OUTPUT TAU= ',A4,A1,' - 1RUN CYCLE= ',A4,A1,' NUMBER OF MAPS= ',I5) -Corig PRINT 5511,IDATC,IOPN,INTAPE - WRITE(6,5511) IDATC,IOPN,INTAPE - 5511 FORMAT('0DATE CHECK= ',I5,' OPERATIONAL FLAG= ',I5,' INPUT TAP - 1E FLAG= ',I5) -Corig PRINT 5513,ISWTCH,INOPNA,INOPNB - WRITE(6,5513) ISWTCH,INOPNA,INOPNB - 5513 FORMAT('0INPUT SCHEDULE CONTROL SWITCH= ',I5,' OPNL JOB TYPE= ' - 1,A4,A1) - DO 5550 IK=1,NKRUN - IF((KRUNA.NE.LKRUN(1,IK)).OR.(KRUNB.NE.LKRUN(2,IK))) GO TO 5550 - KRUN1=LKRUN(3,IK) - GO TO 5553 - 5550 CONTINUE -Corig PRINT 5540 - WRITE(6,5540) - 5540 FORMAT('0ERROR ON CONTROL INPUT CARD FOR KRUN-FIX THEN RESTART') - CALL W3TAGE('AVPOLARV') - STOP 541 - 5553 CONTINUE - DO 5555 IK=1,NITOUT - IF((ITOUTA.NE.LITOUT(1,IK)).OR.(ITOUTB.NE.LITOUT(2,IK))) GO TO - 15555 - ITOUT1=LITOUT(3,IK) - GO TO 5560 - 5555 CONTINUE -Corig PRINT 5543 - WRITE(6,5543) - 5543 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ITOUT-FIX THEN RESTART') - CALL W3TAGE('AVPOLARV') - STOP 544 - 5560 CONTINUE - DO 5565 IK=1,NICYL - IF(ICYCLA.NE.LICYL(1,IK)) GO TO 5565 - ICYC1=LICYL(2,IK) - GO TO 5570 - 5565 CONTINUE -Corig PRINT 5545 - WRITE(6,5545) - 5545 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ICYCLE-FIX THEN RESTART') - CALL W3TAGE('AVPOLARV') - STOP 546 - 5570 CONTINUE - IF((NMAPS.LE.NMAPM).AND.(NMAPS.GT.0)) GO TO 5575 -Corig PRINT 5547 - WRITE(6,5547) - 5547 FORMAT('0ERROR ON CONTROL INPUT CARD FOR NMAPS-FIX THEN RESTART') - CALL W3TAGE('AVPOLARV') - STOP 552 - 5575 CONTINUE - IF((IDATC.EQ.0).OR.(IDATC.EQ.1)) GO TO 5620 - WRITE(6,5600) - 5600 FORMAT('0ERROR ON CONTROL INPUT CARD FOR IDATC-FIX THEN RESTART') - CALL W3TAGE('AVPOLARV') - STOP 601 - 5620 CONTINUE - IF((IOPN.EQ.0).OR.(IOPN.EQ.1)) GO TO 5630 -Corig PRINT5602 - WRITE(6,5602) - 5602 FORMAT('0ERROR ON CONTROL INPUT CARD FOR IOPN-FIX THEN RESTART') - CALL W3TAGE('AVPOLARV') - STOP 603 - 5630 CONTINUE - IF((INTAPE.GT.-1).AND.(INTAPE.LE.1)) GO TO 5640 -Corig PRINT 5604 - WRITE(6,5604) - 5604 FORMAT('0ERROR ON CONTROL INPUT CARD FOR INTAPE-FIX THEN RESTART') - CALL W3TAGE('AVPOLARV') - STOP 605 - 5640 CONTINUE - IF((ISWTCH.GT.-1).AND.(ISWTCH.LE.1)) GO TO 5650 -Corig PRINT 5606 - WRITE(6,5606) - 5606 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ISWTCH-FIX THEN RSTART') - CALL W3TAGE('AVPOLARV') - STOP 607 - 5650 CONTINUE - DO 5651 IK=1,NOPCDS - IF((INOPNA.NE.ICODES(1,IK)).OR.(INOPNB.NE.ICODES(2,IK))) GO TO - 15651 - INOP=ICODES(3,IK) - INOPN1=JCODES(1,INOP) - INOPN2=JCODES(2,INOP) - GO TO 5654 - 5651 CONTINUE -Corig PRINT 5652 - WRITE(6,5652) - 5652 FORMAT('0ERROR ON CONTROL INPUT CARD FOR INOPN-FIX THEN RESTART') - CALL W3TAGE('AVPOLARV') - STOP 653 - 5654 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb.fd/SLTCRD.f b/util/sorc/sixbitb.fd/SLTCRD.f deleted file mode 100755 index 9cd10815f4..0000000000 --- a/util/sorc/sixbitb.fd/SLTCRD.f +++ /dev/null @@ -1,198 +0,0 @@ - SUBROUTINE SLTCRD(ISWTCH,ISLOTA,ISLOTB,IPANA,IPANB,IRLAB,IREM3A, - 1 IREM3B,IREM3C,IREM4A,IREM4B,IAREA3,ISUB,IFLAB,INSET,IREM1A, - 1 IREM1B) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SLTCRD INPUT FIELD READER -C PRGMMR: KUMAR ORG: W/NP12 DATE: 1999-12-21 -C -C ABSTRACT: READS IN THE MAP SLOT CARDS AND CHECKS THEM FOR -C ACCEPTABLE ENTRIES. -C -C PROGRAM HISTORY LOG: -C ??-??-?? UNKNOWN -C 91-02-21 STEVE LILLY, MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77. -C 1999-12-21 KUMAR CONVERTED THIS CODE FORM CRAY TO IBM RS/6000 SP -C -C USAGE: CALL SLTCRD(ISWTCH,ISLOTA,ISLOTB,IPANA,IPANB,IRLAB,IREM3A, -C IREM3B,IREM3C,IREM4A,IREM4B,IAREA3,ISUB,IFLAB, -C INSET,IREM1A,IREM1B) -C INPUT ARGUMENT LIST: -C ISWTCH - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C ISLOTA - FIRST 4 CHARACTERS OF FAX/VARIAN SLOT NUMBER. -C ISLOTB - THE 5TH CHARACTER OF FAX/VARIAN SLOT NUMBER. -C IPANA - FIRST 4 CHARACTERS OF PANEL PART OR REAL INSET PART. -C IPANB - THE 5TH CHARACTER OF PANEL PART OR REAL INSET PART. -C IRLAB - REAR LABEL INSET NUMBER. -C IREM3A - FIRST 4 CHARACTERS OF PANEL 1 OR PANEL 3 OR -C - SUBSET TITLE. -C IREM3B - 5 - 8 CHARACTERS OF PANEL 1 OR PANEL 3 OR -C - SUBSET TITLE. -C IREM3C - 9 - 10 CHARACTERS OF PANEL 1 OR PANEL 3 OR -C - SUBSET TITLE. -C IREM4A - -C IREM4B - -C IAREA3 - -C ISUB - SUBSET NUMBER. -C IFLAB - FRONT LABEL INSET NUMBER. -C INSET - INSET NUMBER. -C IREM1A - FIRST 4 CHARACTERS OF PANEL 2 OR PANEL 4 TITLE. -C IREM1B - 5 - 8 CHARACTERS OF PANEL 2 OR PANEL 4 TITLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C -C ...THIS SUBROUTINE READS IN THE MAP SLOT CARDS AND CHECKS THEM -C ...FOR ACCEPTABLE ENTRIES -C - INTEGER IPANC(3,11) -C INCLUDE THE ATLANTIC AND PACIFIC FAX CUTS - INTEGER IAREA(3,9) -C - DATA IAREA/4HXX14,1H ,1,4HVFUL,1HL,2,4HXX15,1H ,3,4HPN28,1H ,4, - 1 4HNT22,1H ,5,4HNT23,1H ,6,4HPN29,1H ,7,4HATLN,1H ,8, - 2 4HPACF,1H ,9/ - DATA IPANC/4HP1 ,1H ,1,4HP2 ,1H ,2,4HP3 ,1H ,3,4HP4 ,1H ,4, - 1 4HP1A ,1H ,5,4HP2A ,1H ,6,4HP3A ,1H ,7,4HP4A ,1H ,8,4HI1 , - 2 1H ,9,4HI2 ,1H ,10,4HB2 ,1H ,11/ - DATA NPARTS/11/ - DATA IBCHK/4H / -Corig DATA JU/8/ - DATA JU/18/ -C THIS IS TO ADD THE ATLANTIC AND THE PACIFIC - DATA NAREAS /9/ -C MAKE THIS CHANGE FOR CHECK OUT -C CHECKOUT .... DATA IR1/200/ -C OPERATIONAL .... DATA IR1/130/ - DATA IR1/50/ -c DATA IR1/130/ - DATA IR2/5000/ - DATA IR3/80/ - DATA IR4/99/ -C -C ...BASIC FAX/VARIAN CONTROLS (EACH MAP SUB-SECTION) -C -C ICARD2 (A1)= CARD2 CONTROL -C ISLOTA,B (A4,A1)= FAX/VARIAN SLOT NO. -C IPANA,B (A4,A1)= PANEL PART OR REAL INSET PART -C IAREA1,2 (A4,A1)= FAX/VARIAN OUTPUT PIECE -C ISUB (I5)= SUBSET NO. -C IFLAB (I5)= FRONT LABEL INSET NO. -C INSET (I5)= INSET NO. -C IRLAB (I5)= REAR LABEL INSET NO. -C IREM1A,B,C (A4,A4,A2)= PANEL 2 OR PANEL4 TITLE -C IREM3A,B,C (A4,A4,A2)= PANEL 1 OR PANEL3 OR SUBSET TITLE -C - 8200 FORMAT(A1,3(A4,A1),4I5,2A4,A2,4A4,A2,4A4) - IF(ISWTCH.EQ.1) GO TO 8002 - READ (JU,8200) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ -C8200 FORMAT(A1,3(A4,A1),4I5,2A4,A2,4A4,A2,4A4) - GO TO 8003 - 8002 READ (JU,8200) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB - 1 ,IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 8003 CONTINUE -Corig PRINT 8202, ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB,IFLAB, - WRITE(6,8202) ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB,IFLAB, - 1 INSET - 8202 FORMAT('0SLOT NO.= ',A4,A1,' PANEL/INSET= ',A4,A1, - 2 'AREA= ',A4,A1,' SUBSET NO.=',I5,' FRONT LABEL INSET NO.=', - 2 I5,' INSET NO.=',I5) -C -C ...CHECK FOR REASONABLE PANEL PARTS/INSET PARTS -C - DO 8215 IK=1,NPARTS - IF((IPANA.EQ.IBCHK).AND.(IPANB.EQ.IBCHK)) GO TO 8220 - IF((IPANA.NE.IPANC(1,IK)).OR.(IPANB.NE.IPANC(2,IK))) GO TO 8215 - IPAN1=IPANC(3,IK) - GO TO 8220 - 8215 CONTINUE -Corig PRINT 8216 - WRITE(6,8216) - 8216 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IPAN-FIX THEN - 1RETRY') - CALL W3TAGE('AVPOLARV') - STOP 216 - 8220 CONTINUE -C -C ...CHECK FOR REASONABLE AREA REQUESTS -C - DO 8235 IK=1,NAREAS - IF((IAREA1.EQ.IBCHK).AND.(IAREA2.EQ.IBCHK)) GO TO 8225 - IF((IAREA1.NE.IAREA(1,IK)).OR.(IAREA2.NE.IAREA(2,IK))) GO TO 8235 - IAREA3=IAREA(3,IK) - GO TO 8240 -C8225 PRINT 8226 - 8225 CONTINUE - WRITE(6,8226) - 8226 FORMAT('0IAREA1,2 WAS BLANK-WILL CONTINUE') - GO TO 8240 - 8235 CONTINUE -Corig PRINT 8236 - WRITE(6,8236) - 8236 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IAREA1,2-FIX - 1THEN RETRY') - CALL W3TAGE('AVPOLARV') - STOP 236 - 8240 CONTINUE -C -C ...CHECK FOR REASONABLE SUBSET/INSET NUMBERS -C - IF(ISUB.LT.0) GO TO 8243 - IF(((ISUB.GE.IR1).AND.(ISUB.LE.IR2)).OR.((ISUB.GE.IR3).AND.(ISUB.L - 1E.IR4))) GO TO 8301 -Corig PRINT 8241, ISUB - WRITE(6,8241) ISUB - 8241 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR ISUB-FIX THEN - 1RETRY ',I4) - CALL W3TAGE('AVPOLARV') - STOP 241 - 8243 CONTINUE -Corig PRINT 8244 - WRITE(6,8244) - 8244 FORMAT('0SUBSET NUMBER IS BLANK-WILL CONTINUE') - 8301 CONTINUE - IF(IFLAB.LE.0) GO TO 8253 - IF(((IFLAB.GE.IR1).AND.(IFLAB.LE.IR2)).OR.((IFLAB.GE.IR3).AND.(IFL - 1AB.LE.IR4))) GO TO 8302 -Corig PRINT 8251 - WRITE(6,8251) - 8251 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IFLAB-FIX THEN - 1 RETRY') - CALL W3TAGE('AVPOLARV') - STOP 251 - 8253 CONTINUE - 8302 CONTINUE - IF(INSET.LE.0) GO TO 8263 - IF(((INSET.GE.IR1).AND.(INSET.LE.IR2)).OR.((INSET.GE.IR3).AND.(INS - 1ET.LE.IR4))) GO TO 8303 -Corig PRINT 8261 - WRITE(6,8261) - 8261 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR INSET-FIX THEN - 1 RETRY') - CALL W3TAGE('AVPOLARV') - STOP 261 - 8263 CONTINUE - 8303 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb.fd/WNDIRT.f b/util/sorc/sixbitb.fd/WNDIRT.f deleted file mode 100755 index f813be31b8..0000000000 --- a/util/sorc/sixbitb.fd/WNDIRT.f +++ /dev/null @@ -1,82 +0,0 @@ - SUBROUTINE WNDIRT(IDOTS,JDOTS,NDIR,IDDGD,NSSS) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: WNDIRT PLOT WIND DIRECTION NEAR END OF WIND STAF -C PRGMMR: KUMAR ORG: W/NP12 DATE: 1999-12-21 -C -C ABSTRACT: FIND THE POSITION OF LITTLE WIND DIRECTION DIGIT NEAR END -C OF WIND STAFF AND PLOTS THE 2ND DIGET OF NDIR AT THAT POSITION. -C -C PROGRAM HISTORY LOG: -C YY-0M-DD ORIGINAL AUTHOR(S)'S NAME(S) HERE -C 88-06-20 HENRICHSEN CONVERT TO FORTRAN 77 AND ADD DOCBLOCK. -C 1999-12-21 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM SP -C -C USAGE: CALL WNDIRT(IDOTS,JDOTS,NDIR,IDDGD,NSSS) -C INPUT ARGUMENT LIST: -C IDOTS - X COORIDNATE OF POINT IN DOTS. -C JDOTS - Y CORRIDNATE OF POINT IN DOTS. -C NDIR - TRUE WIND DIR IN TENS OF DEGREES (1 THRU 36, OR 99 -C - IF CALM WIND) IN CHARACTER FORMAT (A2). -C IDDGD - GRID ORIENTED WIND DIRECTION IN TENS OD DEGREES IN -C - INTEGER FORMAT (I2). -C NSSS - INTEGER WIND SPEED IN KTS (I3) (=0 IF .LT. 5KTS). -C -C OUTPUT ARGUMENT LIST:NONE -C -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C -C REMARKS: CALLS PUTLAB WHICH WRITES TO A COMMON LABEL ARRAY OR -C TAPE 55 (FT55F0001). -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90. -C MACHINE: IBM -C -C$$$ - REAL CONVTR - dimension kvv(2) - DATA CONVTR /0.174533/ -C ...CONVERTS TENS OF DEGREES TO RADIANS - REAL HYPKA - DATA HYPKA /31.0/ - REAL HYPKB - DATA HYPKB /37.0/ - REAL ADXLL - DATA ADXLL /-3.5/ - REAL ADYLL - DATA ADYLL /-5.0/ - character*8 ctext - equivalence (itext, ctext) -C ...WHICH ARE INCREMENTS FORM CENTER OF FIGURE TO LL CORNER -C - IF(NSSS.LE.0)GO TO 800 - HYPOT=HYPKA - IF(NSSS.GE.48) HYPOT=HYPKB - IDDA=45-IDDGD - IF(IDDA.GE.36) IDDA=IDDA-36 - DDA=IDDA+1 -C ...PLOTTED DIGIT TEN DEGREES AWAY FROM STAFF - DIRAD=DDA*CONVTR - DELX=HYPOT*COS(DIRAD) - DELY=HYPOT*SIN(DIRAD) - ILLDIG=FLOAT(IDOTS)+DELX+ADXLL+0.5 - IF(ILLDIG.LE.0) GO TO 810 - JLLDIG=FLOAT(JDOTS)+DELY+ADYLL+0.5 - IF(JLLDIG.LE.0) GO TO 810 -C ...THAT FINISHES POSITIONING OF DIGIT - ITEXT=ISHFT(NDIR,-8) - IPRIOR=1 - 1099 format(' putlab form gulftitl',i9) - CALL lPUTLAB(ILLDIG,JLLDIG,19.0,ITEXT,0.0,1,IPRIOR,0) -C ...WHICH IS NORMAL EXIT - GO TO 800 -C - 810 CONTINUE -C ...COMES TO 810 FOR NEG VALUED I OR J, SO OFF GRID-EXIT - WRITE(6,FMT='('' NEGATIVE VALUED I/J IN WNDIRT'',/)') - 800 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb.fd/WNDRNH.f b/util/sorc/sixbitb.fd/WNDRNH.f deleted file mode 100755 index bf96feb8c3..0000000000 --- a/util/sorc/sixbitb.fd/WNDRNH.f +++ /dev/null @@ -1,103 +0,0 @@ - SUBROUTINE WNDRNH(ULOLA,VLOLA,ALAT,WLONG,ORIENT, - 1 ISPEED,IDDTRU,IDDGRD) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: WNDRNH WIND DIRECTION/SPEED FROM U & V (LOLA) -C PRGMMR: KUMAR ORG: NP/12 DATE: 1999-12-21 -C -C ABSTRACT: USING THE GIVEN U- AND V-COMPONENTS OF THE WIND (EARTH- -C ORIENTED), THIS ROUTINE CALCULATES (A) THE WIND SPEED, -C (B) THE EARTH-ORIENTED WIND DIRECTION, AND (C) THE NORTHERN- -C HEMISPHERIC POLAR-STEREOGRAPHIC GRID-ORIENTED WIND DIRECTION. -C -C PROGRAM HISTORY LOG: -C 82-04-22 SHIMOMURA -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77 -C 1999-12-21 KRISHNA KUMAR CONVERTED THIS ROUTINE TO IBM SP. -C -C USAGE: CALL WNDRNH(ULOLA, VLOLA, ALAT, WLONG, ORIENT, -C ISPEED, IDDTRU, IDDGRD) -C -C INPUT ARGUMENTS: -C (1)ULOLA ... WEST-TO-EAST COMPONENT OF WIND -C AS FOUND, FOR EXAMPLE, IN THE U-COMPONENT DATA -C IN LONGITUDE/LATITUDE (LOLA) GRID. -C (2)VLOLA ... SOUTH-TO-NORTH COMPONENT OF WIND -C AS FOUND, FOR EXAMPLE, IN THE V-COMPONENT DATA -C IN LONGITUDE/LATITUDE (LOLA) GRID. -C (3)ALAT ... LOCATION OF THIS WIND DATA ON EARTH -C IN DEGREES NORTH LATITUDE -C (4)WLONG ... AND DEGREES WEST LONGITUDE. -C (5)ORIENT... ORIENTATION OF DESTINATION GRID FOR CALCULATING -C THE POLAR-STEREO GRID-ORIENTED WIND DIRECTION. -C ORIENT IS THE VERTICAL MERIDIAN OF POLAR -C STEREOGRAPHIC NORTHERN HEMISPHERIC GRID. -C ORIENT = 80.0 FOR NMC STD 65*65 GRID -C ORIENT =105.0 FOR NMC LFM GRID. -C -C OUTPUT ARGUMENTS: -C (6)ISPEED... WIND SPEED (I*4) IN SAME UNITS AS GIVEN COMPONENTS -C (7)IDDTRU... WIND DIRECTION (I*4), EARTH-ORIENTED, -C IN TENS OF DEGREES. -C (8)IDDGRD... WIND DIRECTION (I*4), N.HEMI. GRID ORIENTED, -C IN TENS OF DEGREES. -C -C REMARKS: WIND DIRECTION = 36 FOR NORTH WIND -C WIND DIRECTION = 00 FOR CALM WIND. -C IDDTRU AT NORTH POLE RETURNS WITH THE WIND DIRECTION AS THE -C MERIDIAN (WEST LONGITUDE) FROM WHICH THE WIND IS BLOWING -C TOWARD THE POLE. -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE : IBM -C -C$$$ -C - DATA CNV2RA / 0.0174533 / - DATA CNV2DE / 57.29578 / -C - UL = ULOLA - VL = VLOLA - SPEED = SQRT(UL*UL + VL*VL) - ISPEED = SPEED + SIGN(0.5,SPEED) - IF(ISPEED .GT. 0) GO TO 300 -C ... ELSE, CALM WIND HERE ... - IDDTRU = 0 - IDDGRD = 0 - GO TO 999 -C -C ... COMES HERE IF NOT CALM WIND - 300 CONTINUE - DIR = 270.0 - CNV2DE*ATAN2(VL,UL) -C ... WHERE DIR IS DIRECTION FROM WHICH WIND IS BLOWING -C ... IN USUAL EARTH-ORIENTED DIRECTION - IDDTRU = 0.1*DIR + SIGN(0.5,DIR) - IF(ALAT .LE. 89.0) GO TO 333 -C ... ELSE, SPECIAL HANDLING FOR POLE POINT -C ... ROTATE COORDINATE AXIS SO THE VECTOR IS FOR OBSERVER AT 180 - THETAR = (WLONG-180.0) * CNV2RA - ALFAR = ATAN2(VL,UL) - PHIR = ALFAR - THETAR - UPRIME = SPEED * COS(PHIR) - VPRIME = SPEED * SIN(PHIR) -C ... WHERE UPRIME,VPRIME IS FOR ROTATED TO 180.0 DEGREESMERIDIAN - DIRNP = 270.0 - CNV2DE*ATAN2(VPRIME,UPRIME) - IDDTRU = 0.1*DIRNP + SIGN(0.5,DIRNP) - GO TO 333 -C - 333 CONTINUE - IF(IDDTRU .GT. 36) IDDTRU = IDDTRU - 36 - IF(IDDTRU .LE. 0) IDDTRU=36+IDDTRU -C ... NORTH WIND WILL HAVE 36 ... NOT 00 -C -C ... NEXT, TO GET NMC PS STD NMC GRID ORIENTED DIRECTION ... - DDDGRD = DIR + (WLONG - ORIENT) - IDDGRD = 0.1*DDDGRD + SIGN(0.5,DDDGRD) - IF(IDDGRD .GT. 36) IDDGRD = IDDGRD - 36 - IF(IDDGRD .LE. 0) IDDGRD = 36+IDDGRD - GO TO 999 -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb.fd/cntr.fake.f b/util/sorc/sixbitb.fd/cntr.fake.f deleted file mode 100755 index 4b3d688f5e..0000000000 --- a/util/sorc/sixbitb.fd/cntr.fake.f +++ /dev/null @@ -1,1238 +0,0 @@ - SUBROUTINE CNTR(IRET_CNT, IMAGE, IMAGSIZ_WRDS, - 1 MAP, LABEL, ICHK, IFID, SCHED, INDEX, - 1 NFLDS, - 2 FLD1, DASH1, OFSET1, SHAD1, - 3 FLD2, DASH2, OFSET2, SHAD2, - 4 FLD3, DASH3, OFSET3, SHAD3, - 5 FLD4, DASH4, OFSET4, SHAD4) -C 30-OCT-1996/LLIN -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CNTR EXECUTIVE FOR BEDIENT'S GRAPHICS PACKAGE -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE:1999-09-08 -C -C ABSTRACT: SUBR CNTR() IS THE EXECUTIVE FOR THE BEDIENT GRAPHICS -C PACKAGE WHICH STANDS AT THE GATEWAY BETWEEN THE GRAPHICS -C APPLICATIONS PROGRAM (WHICH PREPARES GRIDPOINT DATA FIELDS AND -C THEIR DISPLAY SPECIFICATIONS, AND TEXT AND SYMBOL DATA INTO -C "LABEL-ARRAY" FORMAT); AND BEDIENT'S GRAPHIC PACKAGE WHICH INCLUDES -C THE FUNCTIONS WHICH FETCHES THE RASTER MAP-BACKGROUND AND -C INITIALIZES THE IMAGE WORKSPACE WITH THE MAP-BACKGROUND; CONTOURS -C THE GIVEN GRIDPOINT DATA FIELDS AND LAYS THE RESULTING CONTOURS INTO -C THE IMAGE BIT-PLANE; ACCEPTS THE "LABEL-ARRAY" FORMATTED TEXT- AND -C SYMBOL-DATA AND PLOTS THOSE INTO THE IMAGE BIT-PLANE; ENCODES THE -C IMAGE IN NMC 6-BIT PACKED RLE RASTER CODE; FORMATS THE RESULTING -C PRODUCT WITH THE STRUCTURE: (A)THE GIVEN HEADER ("IFID"); (B) THE -C MAIN SECTION OF RASTER GRAPHICS; (C) THE RASTER-FORMATTED FAX STRIP- -C TITLES; (D) THE FAX-CUT WINDOWING SPECIFICATIONS ("SCHED"); AND -C (E) THE PRODUCT TERMINATOR. -C -C THIS VERSION OF cntr ACCEPTS THE CALL SEQUENCE ARGUMENTS (WITH SOME -C CHANGES); AND REFORMATS THOSE ARGUMENTS IN ORDER -C TO ADAPT TO CALLING OUR OWN UNDERLYING REPLACEMENT FUNCTIONS. -C -C PROGRAM HISTORY LOG: -C ??-??-?? ORIGINAL AUTHOR - H. ART BEDIENT -C ??-??-?? GLORIA DENT -C ??-??-?? LUKE LIN -C 93-03-30 LUKE LIN: MODIFY THE 4-CHAR INTEGER TO ENHANCE CNTR -C 93-05-11 LILLY INSERTS TEMPLATE. -C 96-02-28 SHIMOMURA: CONVERT FROM IBM FORTRAN TO CRAY FORTRAN -C 96-03-04 SHIMOMURA: MAKING A NEW VERSION TO ADAPT THE OLD CALL -C SEQUENCE TO A REPLACED SET OF UNDERLYING -C FUNCTIONS. -C 96-06-18 SHIMOMURA: ADDING STRIP-TITLE AND ISCHED LOGIC -C 96-09-23 LUKE LIN: MODIFY THE SHADE OPTIONS. -C 96-10-30 LUKE LIN: INCREASE THE PRIORITY LOOPING FROM 3 TO 5 FOR WINDBARB. -C 97-02-03 LUKE LIN: LOAD IFID PROPERLY. -C 1999-07-01 KRISHNA KUMAR MODIFY TO RUN ON IBM RS/6000 -C 1999-08-20 HENRICHSEN MODIFY TO USE USE DIRECT ACCESS I/O ON -C FAX FILE FOR IBM SP. USE LOCAL DIRECTORY FOR -C MAP BACKGROUND, HENCE EACH SCRIPT MUST COPY -C THE APPROPRIATE MAP BACKGROUND FILES FROM -C PRODUCTION DIRECTORY -C /nwprod/util/fix/graph_gphbg -C OR IN CHECK OUT USER MAY USE OWN LOCAL -C BACKGROUND DIRECTORY SUCH AS -C /nfsuser/g02/wx12ph/util/fix/graph_gphbg -C USAGE: CALL CNTR(IRET_CNT,MAP,LABEL,ICHK,IFID,SCHED,INDEX,NFLDS, -C 1 FLD1,DASH1,OFSET1,SHAD1, -C 2 FLD2,DASH2,OFSET2,SHAD2, -C 3 FLD3,DASH3,OFSET3,SHAD3, -C 4 FLD4,DASH4,OFSET4,SHAD4) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C (0.) IRET_CNT - INTEGER RETURN_CODE -C -C (1.) MAP - INTEGER MAP(15) IS A LIST CONTAINING: -C MAP(1): BACKGROUND NAME IN 6 CHARACTERS, FOLLOWED BY -C TWO BYTES OF FILL -- NULL IS PREFERRED -C -C MAP(2): FLAGS IN TWO LOW-ORDER BYTES -C X'0001' = HASH THE BGND (TURN OFF EVERY OTHER PIXEL); -C X'0002' = DOUBLE THE SCALE OF THIS BGND; -C X'0004' = 2-PANEL ... TO PLACE A DUPLICATE OF A CUT -C OUT OF THE GIVEN MAP-BACKGROUND BESIDE -C THE FIRST; -C X'0008' = LEAVE PRODUCT OPEN AT END OF THIS CALL; -C X'0010' = ADD THIS PRODUCT ONTO AN OPEN PRODUCT FILE; -C X'0020' = CYCLIC PRODUCT; -C (SOME SIDEWAYS MERCATOR PRODUCTS CAN -C EXTEND BEYOND LAST SCANLINE BY CYCLING TO -C CONTINUE WITH THE FIRST SCANLINE. IF THE -C DESIRED PRODUCT AND ITS MERCATOR GRID -C DOES NOT END AT THE SAME MERIDIAN AS THE -C MAP BGND, THEN THIS OPTION WILL PERMIT -C THE GEOGRAPHY TO EXTEND CYCLICALLY.) -C X'0040' = AFOS OUTPUT REQUIRED. -C -C FOLLOWED BY THE MAP REGISTRATION CONSTANTS: -C MAP(3), (4), (5), (6): (FOR THE ENTIRE PRODUCT), -C I, J, WIDTH,LENGTH -C MAP(7), (8), (9), (10): (FOR THE MAP BACKGROUND), -C I, J, WIDTH,LENGTH -C MAP(11),(12): FOR CONTOUR-POSITION FINE-ADJUSTMENT -C DI, DJ -C MAP(13),(14): FOR TEXT- & SYMBOL-PLOT POSITION FINE-ADJUST -C DI, DJ -C MAP(15) = T1 -C T1 GRID-LENGTH IN FAX UNITS AS A REAL NUMBER -C -C ALL ORIGINS ARE MEASURED FROM THE BACKGROUND MAP -C IF ANY, AT A POINT 1800 UNITS TO THE LEFT OF THE FAX EDGE -C IN SCAN LINE UNITS. -C FINAL FAX START WILL BE AT RIGHT EDGE OF PRODUCT -C CONTOUR-ADJUST IS NORMALLY MEASURED FROM THE LOWER -C LEFT CORNER OF THE BACKGROUND. A LINE WITH HLL=P -C WILL HAVE ZERO ADJUST. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (2.) LABEL - INTEGER LABEL(2048) -C LABEL IS AN ARRAY CONTAINING 2 WORDS PER ENTRY OF THE FORM: -C VFD 15/J, 1/FLAG, 3/PRIORITY, 13/I -C VFD 32/4HLITERAL -C -C THE LITERAL STRING TERMINATES BY '$' IF LESS THAN 4; -C THE LABEL-ARRAY IS TERMINATED BY A PAIR OF ZERO WORDS. -C IF(J .GE. 7400) THEN -C THIS LABEL-ITEM IS PUT IN THE CHART-LABEL RECORD. - -C IF(IOR(LABEL(1),LABEL(2)) .EQ. 0) THEN -C THERE IS NO LABEL-ARRAY TEXT-DATA TO PROCESS; - -C IF(LABEL(1) .EQ. -1) THEN -C LABEL-ARRAY DATA IS OUT ON FILE 55; - -C ELSE -C LABEL-ARRAY IS FOUND IN LABELLED COMMON -C AND DOES NOT EXCEED 1024 ITEMS. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (3.) ICHK - INTEGER ICHK(3) -C ICHK(1) IS FOR THE RETURN CODE -C (SEE UNDER OUTPUT ARGUMENT LIST) -C -C ICHK(2) = WORK-SPACE ALLOCATED IN LABELLED COMMON /ISPACE/ -C THE LENGTH MUST BE AT LEAST 6*2048 IF MERGE IS USED -C THE LENGTH MUST BE AT LEAST -C 5219 + (8+NFLDS*5)*T + NFLDS*2*Q*T -C WHERE Q=INTF(T1/4.) + 1 -C T=(2*P)+1-ODD) - -C ICHK(3) = 0; FOR A NORMAL MAP -C = 1; FOR THE LAST MAP IN THE PRODUCTS FILE; SO CLOSE -C THE OUTPUT FILE WITH AN END-OF-ALL-MAPS FLAG. - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (4.) IFID - INTEGER*8 IFID(6) ... = 48-bytes -C IFID IS THE FRONT ID FOR THIS OUTPUT MAP PRODUCT -C IT CONTAINS 48 BYTES. THE FIRST THREE ARE REPLACED BY A -C FLAG. THE BYTE(4) = 'F' -- FOR FAX TRANMISSION; -C = 'V' -- FOR LOCAL "VARIAN" PLOTTER ONLY; -C = 'B' -- FOR BOTH OF THE ABOVE; -C THE REMAINDER IS DATE TIME AND PRODUCT TITLE INFORMATION -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (5.) SCHED - INTEGER SCHED(8,60) -C SCHED CONTROLS THE SUBSEQUENT FAX WINDOWING AND COMPOSITING -C BY OSO AFTER WE GENERATE THE PRODUCT AND SEND IT TO OSO. -C THE LIMITING NO. OF SCHEDULE ENTRIES PERMITTED = 59 ENTRIES -C SCHED IS AN ARRAY CONTAINING 8 I*2 WORDS PER ENTRY -C DEFINING FAX CUTS -C II1,II2,II3,II4, L5A,L5B,L6A,L6B, II7,II8 -C I2 I2 2X I2 I1 I1 I1 I1 I2 I2 - -C WHERE -C II1 IS MAP SUBSET/INSET NUMBER (IN BINARY); - -C II2 IS STARTING SCAN-LINE NUMBER (IN BINARY) -C (WHICH IS THE Y-ORIGIN OF THIS CUT); -C II3 IS RESERVED -C (II2 VALUE IS CONVERTED, BY CNTR, -C INTO RECORD NO. IN WORD II2 -C AND BYTE NO. IN WORD II3 ) - -C II4 IS THE COUNT OF SCANLINES IN THIS CUT -C (WHICH IS THE Y-DIMENSION OF THIS CUT); - -C L5A CONTAINS 8 FLAG BITS -C L5B IS INDENT-VALUE(IN BYTES) -C (WHICH IS THE X-ORIGIN OF THIS CUT); -C L6A IS COMPONENT WIDTH(IN BYTES) -C (WHICH IS THE X-DIMENSION OF THIS CUT); - -C ...SPECS FOR THE INSET TO FOLLOW THIS COMPONENT -C ... WITHIN THE COMPOSITE, (WHICH COMPONENT IS NOT -C ... NECESSARILY THE INSET DEFINITION WHICH COMES NEXT -C ... IN THIS ARRAY). -C L6B IS INDENT-VALUE(IN BYTES) TO X-POSITION -C (WITHIN THE COMPOSITE) THE FOLLOWING INSET - -C II7 IS SCANLINE TO Y-POSITION (WITHIN THE COMPOSITE) -C THE FOLLOWING INSET -C II8 IS INSET NUMBER OF THE FOLLOWING INSET TO BE -C COMPOSITED -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (6.) INDEX - INTEGER INDEX(2,3) -C INDEX SPECIFIES THE DIMENSIONS OF THE GRID TO BE CONTOURED -C THE FORM OF INDEX IS: -C E0= GRID COUNT -C E1= P = MAX VALUE OF HALF LINE LENGTH -C P IS THE SYMMETRY GRID LINE -C E2=0 IF ODD -C =1 IF EVEN; -C E3=RECTANGULAR FLAG -C E4,E5= THE LINE ORIGIN,THE HALF LINE LENGTH -C (ONLY ONE E4,E5 ENTRY IS REQUIRED IF RECTANGULAR) -C ETC - -C IF(E3.EQ.0 .OR. E3.EQ.1) THERE MUST BE A COMPLETE TABLE -C IF E3 IS 1 THE POLYGON IS DRAWN TO THE BNDRY -C IF E3 IS NEG THE RECT WILL BE DRAWN THE BNDRY -C IF ODD IS 0 ONE EXTRA ROW IS DONE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (7.) NFLDS - INTEGER NFLDS -C NFLDS IS THE NUMBER OF GRID FIELDS TO CONTOUR -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C FOUR WORD ENTRY PER GRIDPOINT DATA SET TO BE CONTOURED ... -C FLD, DASH, OFFSET, SHADE -C FLD IS THE LOC OF THE GRID ARRAY -C DASH IS THE DASH MASK /DASH WEIGHT IN HALF WORDS -C OFFSET IS WEIGHT/ OFFSET IN HALF WORDS -C WEIGHT IS 0 OR 2 FOR LINE WEIGHT -C IF WEIGHT IS NEGATIVE,NO NEGATIVE VALUED CONTOURS -C OFFSET MOVES THIS CONTOUR - SCAN UNITS TO RIGHT -C IF THE OFFSET IS LESS THAN 100 AND -C GREATER THAN ZERO, IT IS CONSIDERED TO BE THE -C MAXIMUM CONTOUR TO BE ALLOWED -C SHADE IS THE SHADE MASK /AND THE SHADE MATCH IN HALF WDS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (8.) FLD1 - REAL FLD1(*) --- 1ST GRIDPOINT FIELD -C (9.) DASH1 - INTEGER DASH1(2) --- DASHING SPECS -C (10.) OFSET1 - INTEGER OFSET1(2) --- LINE WEIGHT/ADJ X-POSIT -C (11.) SHAD1 - INTEGER SHAD1(20) --- SHADING SPECS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (8.) FLD2 - REAL FLD2(*) --- 2ND GRIDPOINT FIELD -C (9.) DASH2 - INTEGER DASH2(2) --- DASHING SPECS -C (20.) OFSET2 - INTEGER OFSET2(2) --- LINE WEIGHT/ADJ X-POSIT -C (22.) SHAD2 - INTEGER SHAD2(20) --- SHADING SPECS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (8.) FLD3 - REAL FLD3(*) --- 3RD GRIDPOINT FIELD -C (9.) DASH3 - INTEGER DASH3(2) --- DASHING SPECS -C (30.) OFSET3 - INTEGER OFSET3(2) --- LINE WEIGHT/ADJ X-POSIT -C (33.) SHAD3 - INTEGER SHAD3(20) --- SHADING SPECS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (8.) FLD4 - REAL FLD4(*) --- 4TH GRIDPOINT FIELD -C (9.) DASH4 - INTEGER DASH4(2) --- DASHING SPECS -C (40.) OFSET4 - INTEGER OFSET4(2) --- LINE WEIGHT/ADJ X-POSIT -C (44.) SHAD4 - INTEGER SHAD4(20) --- SHADING SPECS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C OUTPUT ARGUMENT LIST: -C (3.) ICHK - INTEGER ICHK(3) -C ICHK(1) IS FOR THE RETURN CODE: -C = -1 NORMAL -C = 0 OUTPUT TROUBLE -C = 1 BACKGROUND TROUBLE -C -C (BUT THIS RETURN CODE IS QUEER IN THAT IN ORDER TO -C ACTIVATE THIS RETURN CODE FUNCTION, THE USER MUST -C SET THIS: -C ICHK(1) = A NON-ZERO VALUE;) -C -C ICHK(2) = SPACE ALLOCATED (SEE INPUT ARGUMENT LIST) -C -C ICHK(3) = END-PRODUCT SPEC (SEE INPUT ARGUMENT LIST) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C INPUT FILES: -C FT02F001 - LIBRARY OF MAP-BACKGROUNDS IN RASTER-FORMAT -C DIRECT-ACCESS FILE FORMAT -C -C FT55F001 - "LABEL-ARRAY' FORMAT, EACH RECORD CONTAINS 1024 LABEL- -C ARRAY ITEMS OR 8192 BYTES PER RECORD. -C WORK FILES: -C FT60F001 - TEMPORARY WORK FILES FOR SORT/MERGING FT55F001 DATA -C FT61F001 - " -C FT62F001 - " -C FT63F001 - " -C -C OUTPUT FILES: -C FT0XF001 - NMC 6-BIT PACKED RLE RASTER FORMATTED MAPS DESTINED -C FOR FAX OR VARIAN. -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: -C SUBROUTINES CALLED by old CNTR: -C ISORT(), MERGE(), -C CONST(), -C INPUT(), OUTP(), -C CNTRI() -C ENDMAP() -C . . . . . . . . . . . -C SUBROUTINES CALLED by new CNTR: -C ISORT2D(), MERGES(), -C CONSTA(), GETBGND, PRTITLE -C . . . . . . . . . . . -C DATA SET CNTR AT LEVEL 004 AS OF 05/11/93 -C ...NO ASYNC I/O CLEANED ON MAY 27, 1986 (DKM)... -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C ******************************************************* -C -C -C THIS SUBROUTINE CONVERTS THE CALL SEQUENCE CONSTANTS -C INTERNAL CONSTANTS AND INITIALIZES THE FILES,THEN CNTRI() -C IS CALLED TO ALLOW FORTRAN TO COMPUTE THE ADDRESS CONSTANTS -C SORT AND MERGE THE LABEL LIST IF REQUIRED -C *** N O T E : TO MAKE A EXE LOAD MODULE CNTR MUST COMPILE WITH -C *** N O T E : CNTR7AS FROM 'NMC.PROD.V77GRAPH.SOURCE' - - - - INTEGER LMAX - PARAMETER (LMAX=1024) - - INTEGER LMAX2 - PARAMETER (LMAX2 = 2*LMAX) !... = 2048 - - INTEGER LUNBGD - PARAMETER (LUNBGD=11) !... INPUT UNIT FOR MAP-BGND - - INTEGER LUNRAS - PARAMETER (LUNRAS=71) - - INTEGER LUNRASST - PARAMETER (LUNRASST=72) !... CHECKOUT PURE-RASTER STRIPTITL UNIT - - INTEGER LUNEXT6B - PARAMETER (LUNEXT6B=80) - - INTEGER LUNIPK6 -ckumar PARAMETER (LUNIPK6=81) - -C ******************************************************* -C ... CALL CNTR(IRET_CNT, IMAGE, IMAGSIZ_WRDS, -C ... X MAP,LABEL,ICHK,IFID,SCHED,INDEX,NFLDS, -C ... X FLD1,DASH1,OFSET1,SHAD1, -C ... X FLD2,DASH2,OFSET2,SHAD2, -C ... X FLD3,DASH3,OFSET3,SHAD3, -C ... X FLD4,DASH4,OFSET4,SHAD4) -C ******************************************************* -C - INTEGER IRET_CNT - INTEGER IMAGE(IMAGSIZ_WRDS) - INTEGER MAP(15) - INTEGER LABEL(LMAX2) - INTEGER ICHK(3) - INTEGER IFID(6) !... I*8 ifid(6) == 48bytes - INTEGER SCHED(8,60) !... i*2 in low-order of i*8 - INTEGER INDEX(2,3) - INTEGER NFLDS - REAL FLD1(*) - INTEGER DASH1(2), OFSET1(2), SHAD1(20) - REAL FLD2(*) - INTEGER DASH2(2), OFSET2(2), SHAD2(20) - REAL FLD3(*) - INTEGER DASH3(2), OFSET3(2), SHAD3(20) - REAL FLD4(*) - INTEGER DASH4(2), OFSET4(2), SHAD4(20) - -C ******************************************************* - -C - COMMON /DCESS/ IV,IS - COMMON /IFS/ IAFOS(2),NNAFST - - - COMMON/IOUTFAX/IFAXOUT,NRECFAX - - INTEGER IFAXOUT - INTEGER NRECFAX -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - COMMON /ISPACE/IBUFF(LMAX2),IFIRST,L1728,JFLAG(2),JTABLE(3200), - 1 IVTABL(1200),IVSCAN(30), - X TWO,CIN(6),MPIN(480), - X MPWK(131,10),CADJ(14),CNS(9),ITBL(2,5),ID(4,4), - X PHASE - - INTEGER TWO - INTEGER CIN - INTEGER CADJ - - INTEGER BGND(3,80) - EQUIVALENCE (MPIN(1),BGND(1,1)) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /OBUFF/MOUT(7),IOUT(360),NOUT(360),ISCHED(2,80),ISTOP -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - COMMON /ALT_LBL/ LBL_INCOREQ,LBL_EMPTYQ,LABEL_PKD(LMAX) - LOGICAL LBL_INCOREQ - LOGICAL LBL_EMPTYQ - INTEGER LABEL_PKD -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... FOR PLOTTED STRIP-TITLES IN IMAGE_STR(I,J) ... - INTEGER MAXIWORD_STR - PARAMETER (MAXIWORD_STR=27) !... 27 I*8 = 1728 PELS - - INTEGER MAXJSLINE_STR - PARAMETER (MAXJSLINE_STR=800) !... LIMIT STRIP TITLES - - COMMON /STITLES/ IMAGE_STR - INTEGER IMAGE_STR(MAXIWORD_STR,MAXJSLINE_STR) - - COMMON /STITLPLT/NRECSTART_STR, NITMPLTED_STR, - 1 MXJVAL_STR, MXJLABITM_STR - INTEGER NRECSTART_STR !... PTR IN LABEL FILE - INTEGER NITMPLTED_STR !... COUNT STRITM PLTED - INTEGER MXJVAL_STR !... MAXJ STR PLTED - INTEGER MXJLABITM_STR !... AND THAT LABL ITEM - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . Statisitcs about LABEL array via LOOK_LAB() . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - integer lmtmxmn - parameter (lmtmxmn=8) - - INTEGER LMTPRIOR - PARAMETER (LMTPRIOR=8) - - COMMON /STAT_LAB/NITEM_TOT,NITEM_TITLE,NPRIOR_LAB, - 1 MAXIJ_LAB,MINIJ_LAB - - INTEGER NITEM_TOT !... TOTAL COUNT OF LABEL-ARRAY ITEMS - INTEGER NITEM_TITLE - INTEGER NPRIOR_LAB(LMTPRIOR,2) - integer MAXIJ_LAB(LMTMXMN,2) - integer MINIJ_LAB(LMTMXMN,2) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . used by bufow512() and bf512_wr() . . . . . - - COMMON /ARBFOX6B/ LUNX6B,LUX6BOPNQ,NBUFX6B,IPTR_X6BF - INTEGER LUNX6B - LOGICAL LUX6BOPNQ - INTEGER NBUFX6B - INTEGER IPTR_X6BF -C . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... INTEGER IWINDOW(30) -C ... IWINDOW(1) = (J_BG_SKP) !... NSKIP BG AT START -C ... IWINDOW(2) = (J_BG_ORG) !... J0 BG IN IMAGE WORK -C ... IWINDOW(4) = (J_FR_MAX) = 1876 !... ENTIRE IMAGE WORK-J -C ... IWINDOW(5) = (IPXL_BG_SKP) !... DISCARD PXL @ LN START -C ... IWINDOW(6) = IOPTNBITS AS GIVEN IN MAP(2) -C ... IWINDOW(7) = (IPXL_BG_ORG) !... I0 BG IN IMAGE WORK -C ... IWINDOW(15) = (IWRD_FR_MAX) = 27 !... ENTIRE IMAGE WORK-I -C ... IWINDOW(16) = (IPXL_FR_MAX) = 1728 !... MAX PXL IN RESULT -C ... IWINDOW(17) = MAPBGNAME = nh2500x -C ... IWINDOW(18) = (J_BG_SPA) !... SPACE FOR BG W/I FRAME -C ... IWINDOW(19) = (IPXL_BG_SPA) !... SPACE FOR BG W/I FRAME -C ... IWINDOW(20) = (IPXL_BG_CUT) !... PXLS TO USE FROM BG LN -C ... IWINDOW(21) = 0 FLAG FOR MAIN MAP; OR =1 FOR TITLE WINDOW - - INTEGER J_FR_MAX - PARAMETER (J_FR_MAX=4) - INTEGER IWRD_FR_MAX - PARAMETER (IWRD_FR_MAX=15) - INTEGER IPXL_FR_MAX - PARAMETER (IPXL_FR_MAX=16) - - INTEGER J_BG_SPA - PARAMETER (J_BG_SPA=18) - INTEGER IPXL_BG_SPA - PARAMETER (IPXL_BG_SPA=19) - - INTEGER J_BG_SKP - PARAMETER (J_BG_SKP=1) - INTEGER IPXL_BG_SKP - PARAMETER (IPXL_BG_SKP=5) - INTEGER IPXL_BG_CUT - PARAMETER (IPXL_BG_CUT=20) - - INTEGER J_BG_ORG - PARAMETER (J_BG_ORG=2) - INTEGER IPXL_BG_ORG - PARAMETER (IPXL_BG_ORG=7) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C - - INTEGER DFL - DATA DFL / X'FFFFFF00' / - - INTEGER EFL !... END-OF-ALL MAPS FLAG - DATA EFL / X'FFFFFC00' / -C - INTEGER ISTP - DATA ISTP / X'C5D5C440' / !... "END " IN BGND DIR -C - INTEGER MSK -ckumar DATA MSK / X'FF' / - DATA MSK / X'00000000000000FF' / - - INTEGER MSK1 - DATA MSK1 / X'FFFF0000' / -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER IRET_MRG - INTEGER JTM - INTEGER NLABITMSOR - INTEGER IRET_SR2 - - INTEGER IL_STR(15) - INTEGER IWINDOW_STR(30) !... map const: STRIP TITLES - INTEGER IWINDOW(30) - - INTEGER maxiword - INTEGER maxjsline - - LOGICAL LEBCDIC - LOGICAL LCHKSORTQQ - LOGICAL LANYTITLESQQ - - integer lncount_str - INTEGER IMGTYP - INTEGER IMAGSIZ_STR - INTEGER NPXLOUT_STR - INTEGER NROWSHOW_STR - -C ... OPTN BITS TO MATCH THOSE GIVEN IN MAP(2) ... - INTEGER K0008X - DATA K0008X / X'0008' / !... LEAVE OUTP OPEN AT EXIT - INTEGER K0010X - DATA K0010X / X'0010' / !... ADDING ONTO LEFT-OPEN OUTP - - INTEGER MYOPTNBITS - - INTEGER I8IFID(6) - CHARACTER*1 C1IFID(48) - EQUIVALENCE (I8IFID(1),C1IFID(1)) -C - CHARACTER*40 CPATHBGND - - CHARACTER*1 NULL - - INTEGER ITAPE - - SAVE -C -C . . . . . . S T A R T . . . . . . . . . . . . . . . . . . . . -C - IRET_CNT = 0 - NULL = CHAR(0) - LUNX6B = LUNEXT6B !... DSRN INTO COMMON /ARBFOX6B/ - WRITE(6,FMT='(1H ,''CNTR:ENTERED SUBR CNTR '', - 1 ''VERSION 3.2 DATED 20-AUG-1999'', - 2 /1H ,7X,''WITH OPTNS IN MAP(2)=HEX'',Z17.16)') - A MAP(2) - - - MYOPTNBITS = 0 - - MYOPTNBITS = IBSET(MYOPTNBITS,7) !... GIVEN IFID IS IN ASCII - - IF(IAND(MAP(2),K0010X) .NE. 0) THEN -C ... IF ADDING-ON TO PREVIOUSLY LEFT-OPEN PRODUCT FILE, - MYOPTNBITS = IBSET(MYOPTNBITS,0) !... MULTI-PANEL - MYOPTNBITS = IBSET(MYOPTNBITS,1) !... ADDING ON TO EXISTG - ENDIF - IF(IAND(MAP(2),K0008X) .NE. 0) THEN -C ... IF LEAVING THE OUTPUT FILE OPEN AT EXIT, - MYOPTNBITS = IBSET(MYOPTNBITS,0) !... MULTI-PANEL - MYOPTNBITS = IBSET(MYOPTNBITS,2) !... LEAVE OPEN AT END - ENDIF - - - LCKPT = 101 - PRINT 888, LCKPT - 888 FORMAT(1H , 'CNTR:ARRIVED AT CHECKPOINT = ', I4) -C - IF(ICHK(1) .NE. 0) THEN - ICHK(1) = -1 !... INITIALIZE RET CODE TO NORMAL - ENDIF - -C ================================================================= -C . . . S T E P (1.) SORT THE LABEL-ARRAY DATA -C WHETHER IN-CORE OR OUT ON FILE FT55 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - - LBL_INCOREQ = .TRUE. - LBL_EMPTYQ = .FALSE. - - DO J = 1,LMAX - LABEL_PKD(J) = 0 - ENDDO - - IF(IOR(LABEL(1),LABEL(2)) .EQ. 0) THEN -C ... EMPTY LABEL-ARRAY, SO SKIP TEXT/SYMBOL PROCESSING, - LBL_EMPTYQ = .TRUE. - GO TO 12 - ELSE IF(LABEL(1) .NE. -1) THEN -C ... USE IN-CORE LABEL-ARRAY ... - LBL_INCOREQ = .TRUE. - GO TO 10 - ENDIF -C ... OTHERWISE, LABEL(1) = -1; SO LABEL-DATA IS OUT THERE ON FT55, -C -C *** *** *** -C ... THE LABEL LIST IS ON A SEQUENTIAL FILE ... - LBL_INCOREQ = .FALSE. - -C ... TO SORT/MERGE THE EXTERNAL FILE-55 LABEL-ARRAY FILE, - - CALL MERGES(ITAPE,IRET_MRG) - - IF(IRET_MRG .NE. 0) THEN -C ... IN OLD VERSION, THAT USED TO STOP WITHIN MERGE - WRITE(6,FMT='(1H ,''CNTR::MERGES: SERIOUS ERROR ... '', - 1 ''RETURNED WITH CODE='', I5)') - A IRET_MRG - - LBL_EMPTYQ = .TRUE. - REWIND ITAPE - GO TO 12 - ELSE - WRITE(6,FMT='(1H ,''CNTR: normal return from merges '', - 1 ''with sorted LABEL-data on ITAPE='',I4)') - A ITAPE - ENDIF - GO TO 12 - - 10 CONTINUE -C ... TO SORT THE IN-CORE LABEL-ARRAY, -C ... (BUT THE IN-CORE LABEL ARRAY ON CRAY IS UNCOMPRESSED) - - JTM = LMAX - -C ... TO SORT, IN PLACE, THE 2-D LABEL ARRAY ... - - CALL ISORT2D(LABEL,JTM,NLABITMSOR,IRET_SR2) - - IF(IRET_SR2 .EQ. -1) THEN -C ... THIS SHOULD BE THE USUAL CASE OF ZERO-TERMINATOR FOUND -C ... IN THIS IN-CORE LABEL ARRAY, - WRITE(6,FMT='(1H ,''CNTR::ISORT2D: SORTED THE IN-CORE LABEL '', - 1 ''ARRAY AND FOUND THE ZERO-TERMINATOR '', - 2 /1H ,'' AFTER NITEMS_SORTED='',I6, - 3 ''; ISORT2D RETURN-CODE='',I4)') - A NLABITMSOR,IRET_SR2 - - ELSE IF(IRET_SR2 .EQ. 0) THEN -C ... UNEXPECTED RETURN TO HAVE SORTED AN IN-CORE LABEL ARRAY -C ... WITHOUT FINDING A ZERO-TERMINATOR. - WRITE(6,FMT='(1H ,''CNTR::ISORT2D: WARNING! IN-CORE LABEL-'', - 1 ''ARRAY DOES NOT HAVE A ZERO-TERMINATOR.'' - 3 /1H ,'' NITEMS_SORTED='',I6, - 4 ''; ISORT2D RETURN-CODE='',I4)') - A NLABITMSOR,IRET_SR2 - - ELSE IF(IRET_SR2 .EQ. 1) THEN -C ... SERIOUS ERROR IN SORT2D ... - WRITE(6,FMT='(1H ,''CNTR::ISORT2D: FAILED TO SORT IN-CORE '', - 1 ''LABEL ARRAY. BAD JTM SIZE='',I6, - 2 /1H ,'' NITEMS_SORTED='',I6, - 3 ''; RETURN CODE='',I4)') - A JTM,NLABITMSOR,IRET_SR2 - - LBL_EMPTYQ = .TRUE. - - ELSE IF(IRET_SR2 .EQ. 5) THEN -C ... EMPTY LABEL ARRAY ... - WRITE(6,FMT='(1H ,''CNTR::ISORT2D: GIVEN EMPTY IN-CORE '', - 1 ''LABEL ARRAY. RETURN CODE='',I4)') - A IRET_SR2 - - LBL_EMPTYQ = .TRUE. - - ELSE - - WRITE(6,FMT='(1H ,''CNTR::ISORT2D:ERROR. UNKNOWN RETURN-'', - 1 ''CODE='',I4, - 2 /1H ,'' NITEMS_SORTED='',I6)') - A IRET_SR2,NLABITMSOR - - LBL_EMPTYQ = .TRUE. - ENDIF - -C ... FOR THE CASE OF THE IN-CORE LABEL ARRAY, COMPRESS THE -C ... SORTED LABEL ARRAY - - IF(LBL_EMPTYQ) THEN - GO TO 12 - ENDIF - - IF(NLABITMSOR .LE. 0) THEN - LBL_EMPTYQ = .TRUE. - GO TO 12 - ENDIF - -C ... OTHERWISE, HALF-PACK LABEL ARRAY WITH DESTINATION= LABEL_PKD - CALL HAFPAKRA(LABEL,LMAX2,LABEL_PKD,LMAX,NWD_PKD,IRET_HAF) - - IF(IRET_HAF .NE. 0) THEN - WRITE(6,FMT='(1H ,''CNTR::HAFPAKRA: FAILED WITH ERROR-CODE='', - 1 I3, - 1 /1H ,'' BAD ARRAY SIZE. SRCSIZ='',I6, - 2 '' DESTSIZ='',I6)') - A LMAX2,LMAX - IRET_CNT = -1 - GO TO 999 !... ERROR RETURN - ENDIF - - IF(NLABITMSOR .GE. LMAX) THEN -C ... TO FORCE A ZERO-TERMINATOR INTO AN EXACTLY FULL LABEL ARRAY - LABEL_PKD(LMAX) = 0 - NLABITMSOR = LMAX - 1 - ENDIF -C ... NOW NLABITMSOR IS WITHIN RANGE, ERASE REMAINDER OF PACKED ARRA - M1 = NLABITMSOR + 1 - DO J = M1,LMAX - LABEL_PKD(J) = 0 - ENDDO - - GO TO 12 - 12 continue -C ... TO GATHER STATISTICS ABOUT THE LABEL-ARRAY ITEMS ... - NITEM_TOT = 0 - NITEM_TITLE = 0 - LANYTITLESQQ = .FALSE. - do j = 1,2 - do i = 1,LMTPRIOR - NPRIOR_LAB(I,J) = 0 - ENDDO - ENDDO - do j = 1,2 - do i = 1,LMTMXMN - MAXIJ_LAB(I,J) = 0 - ENDDO - ENDDO - do j = 1,2 - do i = 1,LMTMXMN - MINIJ_LAB(I,J) = 0 - ENDDO - ENDDO - - if(.NOT. LBL_EMPTYQ) THEN - LCHKSORTQQ = .TRUE. - - call look_lab(ITAPE, LCHKSORTQQ, IRET_look) -C ... which works for case of LBL_INCOREQ also, -C ... by querying COMMON /ALT_LBL/ ... - - WRITE(6,FMT='(1H ,''CNTR::look_lab: RETURNED WITH TOTAL '', - 1 '' SORTED ITEM COUNT='',I8, - 2 /1h ,7X,''look_lab() RETURN-CODE ='',I4)') - A NITEM_TOT,IRET_look - - IF(IRET_LOOK .NE. 0) THEN - WRITE(6,FMT='(1H ,''CNTR:... WARNING ...:LOOK_LAB FAILED '', - 1 ''WITH RETURN CODE='',I3)') - A IRET_LOOK - GO TO 122 !... TRY TO LET IT CONTINUE ANYWAY - ELSE -C ... OTHERWISE, NORMAL return from LOOK_LAB ... - IF(NITEM_TITLE .LE. 0) THEN - LANYTITLESQQ = .FALSE. - ELSE - LANYTITLESQQ = .TRUE. - ENDIF - ENDIF - ENDIF - GO TO 122 -C ================================================================= -C . . . S T E P (2.) COMPUTE SCALE AND ADJUSTMENT CONSTANTS ... -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 122 CONTINUE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . CONSTANTS FOR THE STRIP-TITLE WINDOW . . . . . . - IL_STR(1) = 0 !... NO MAP BGND FOR STRIP-TITLE REGION - IL_STR(2) = 0 - - IL_STR(3) = 72 !... 1800-(72)=1728pels =27 longwords - IL_STR(4) = 0 - IL_STR(5) = 1728 - IL_STR(6) = MAXJSLINE_STR !... = 800 scanline max - - IL_STR(7) = 72 - IL_STR(8) = 0 - IL_STR(9) = 1728 - IL_STR(10) = MAXJSLINE_STR - - IL_STR(11) = 0 - IL_STR(12) = 0 - IL_STR(13) = 0 - IL_STR(14) = -7399 !... delta-j to position titles - IL_STR(15) = 0 - - call consta(IL_STR,IWINDOW_STR) - - IWINDOW_STR(21) = 1 !... flags this as strip-titles - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - CALL CONSTA(MAP,IWINDOW) - - maxiword = iwindow(15) - maxjsline = iwindow(J_FR_MAX) - - IF((MAXIWORD .LE. 0) .OR. (MAXJSLINE .LE. 0)) THEN - WRITE(6,FMT='(1H ,''CNTR::CONSTA: DIMENSIONS OF IMAGE= ('', - 1 I4,'','',I6,'') ... WHICH ARE WRONG ! ! !'', - 2 /1H ,'' GO CHECK THE MAP REGISTRATION CONSTANTS!'', - 3 /1H ,'' * * * * E R R O R S T O P * * * *'')') - A MAXIWORD,MAXJSLINE - IRET_CNT = -2 - GO TO 999 - ENDIF - - IMGSIZNEED = MAXIWORD * MAXJSLINE -C ... ALLOCATED IS IMAGSIZ_WRDS - WRITE(6,FMT='(1H ,''CNTR::CONSTA: DIMENSIONS OF IMAGE= ('', - 1 I4,'','',I6,'')'', - 2 /1H ,'' WHICH IS'',I8,'' WORDS OF SPACE REQUIRED'', - 3 '' FOR THIS PRODUCT'', - 4 /1H ,'' ALLOCATED SIZE='',I8,'' WORDS'')') - A MAXIWORD,MAXJSLINE,IMGSIZNEED,IMAGSIZ_WRDS -C -C - IF(IMGSIZNEED .GT. IMAGSIZ_WRDS) THEN - WRITE(6,125) - 125 FORMAT(1H ,'CNTR: ALLOCATED SPACE FOR IMAGE IS INADEQUATE', - 1 /1H ,' * * * * * E R R O R S T O P * * * * * *') - IRET_CNT = -3 - GO TO 999 - ENDIF -C - DO I = 1,IMGSIZNEED - IMAGE(I) = 0 - ENDDO - -C ... THE FOLLOWING STRIP-TITLE INITIALIZATION NEEDS TO HAVE -C ... SOME IF TESTS FOR FIRST PANEL OF MULTI-CALL-CNTR PRODUCT - DO J = 1,MAXJSLINE_STR - DO I = 1,MAXIWORD_STR - IMAGE_STR(I,J) = 0 - ENDDO - ENDDO - - NRECSTART_STR = 0 !... PTR IN LABEL FILE - NITMPLTED_STR = 0 - MXJVAL_STR = 0 - MXJLABITM_STR = 0 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ================================================================= -C . . . S T E P (3.) ... FETCH MAP-BACKGROUND IF REQUESTED ... -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C *** *** *** -C ... FROM OTHER MAP() CONSTANTS, DETERMINE THE DESIRED PRODUCT -C ... SIZE, AND INITIALIZE THE IMAGE BITPLANE - - - IF(MAP(1) .EQ. 0) THEN -C ... NO MAP-BACKGROUND HAS BEEN REQUESTED ... - GO TO 13 - - ENDIF -C - -C ... GET MAP BGND NAME FROM MAP(1); get bgnd; lay it into image - - - cpathbgnd(1:40) = ' ' -c -ckumar Path of map background is set to current local directory -c on IBM SP - CPATHBGND(1:) = './' //NULL - print*,'In CNTR - map background dir', CPATHBGND(1:) - call getbgnd(LUNBGD,CPATHBGND,IWINDOW,IMAGE,IRET_BG) - - - GO TO 13 - -C ================================================================= -C . . . S T E P (4.) ... MOVE CONTOUR-FIELD POINTERS -C AND CONTOUR DISPLAY SPECS FROM CALL SEQUENCE -C INTO ID(4,4) (WHICH IS IN /ISPACE/) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 13 CONTINUE -C -C *** *** *** - IF(NFLDS .LE. 0) GO TO 15 -C ... OTHERWISE, WE HAVE SOME FLDS ... -C ... DO FLD1 ... - I=1 - ID(1,I) = LOC(FLD1) - ID(2,I) = DASH1(1) - ID(3,I) = OFSET1(1) - ID(4,I) = SHAD1(1) - IF(NFLDS .EQ. 1) THEN - GO TO 15 - ENDIF -C ... OTHERWISE, DO FLD2 ... - I=2 - ID(1,I)=LOC(FLD2) - ID(2,I) = DASH2(1) - ID(3,I) = OFSET2(1) - ID(4,I) = SHAD2(1) - IF(NFLDS .EQ. 2) THEN - GO TO 15 - ENDIF -C ... OTHERWISE, DO FLD3 ... - I=3 - ID(1,I)=LOC(FLD3) - ID(2,I) = DASH3(1) - ID(3,I) = OFSET3(1) - ID(4,I) = SHAD3(1) - IF(NFLDS .EQ. 3) THEN - GO TO 15 - ENDIF -C ... OTHERWISE, DO FLD4 ... - I=4 - ID(1,I)=LOC(FLD4) - ID(2,I) = DASH4(1) - ID(3,I) = OFSET4(1) - ID(4,I) = SHAD4(1) - IF(NFLDS .EQ. 4) GO TO 15 -C ... OTHERWISE, BAD VALUE IN NFLDS, - PRINT 1003 - 1003 FORMAT(1H ,'CNTR:FAILED. NFLDS VALUE TOO BIG IN CALL SEQUENCE') - PRINT *,' NO OF FLD=',NFLDS - STOP 30 - -C ================================================================= -C . . . S T E P (5.1) -C ... PREPARE MAINLINE GENERATOR FUNCTION FOR THIS MAP -C ... TEST FOR ADEQUATE SPACE ALLOCATED FOR CONTOURING NFLDS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 15 CONTINUE -C -C *** *** *** -C ... IQ = CADJ(14) -C ... N = 35 -C ... ISTOP = ICHK(2) -C ... ILNTH = (8 + NFLDS*5)*IP + NFLDS*(2*IQ*IP + N) -C ... L1728 = CADJ(10) -C ... IFIRST = 0 -C ... N = ILNTH + (LOC(PHASE)-LOC(IBUFF))/4 -C ... PRINT 1004,N -C ... 1004 FORMAT(1H ,'CNTR: WORDS REQUIRED IN ISPACE =',I6) -C ... IF(ICHK(2) .LT. N) THEN -C ... STOP 30 -C ... ENDIF - - GO TO 16 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . S T E P (5.2) -C ... PREPARE MAINLINE GENERATOR FUNCTION FOR THIS MAP -C ... PREPARE OUTPUT BUFFER FOR FIRST RECORD -C ... AND POINTERS FOR OUTPUT -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 16 CONTINUE -C -C *** *** *** - IF(IAND(MAP(2),16) .NE. 0) THEN -C ... IF ADDING-ON TO PREVIOUSLY LEFT-OPEN PRODUCT FILE, - - GO TO 30 - ENDIF -C ... OTHERWISE, INITIALIZE FOR NEW OUTPUT, - DO L=1,360 !... i*4 iout(360) == 1440-byte buffer - IOUT(L)=0 - ENDDO - - IOUT(1) = DFL !... START-OF-PRODUCT FLAG - - IF(IFID(1) .EQ. 0) GO TO 19 - IOUT(1)=IOR(IAND(MSK,IFID(1)),IOUT(1)) - LCKPT = 2137 - PRINT 888, LCKPT -ckumar DO L=2,12 - DO L=2,6 - IOUT(L)=IFID(L) - ENDDO - - 19 CONTINUE - MOUT(3) = 64 - MOUT(4) = 4 - MOUT(5) = 1439 - MOUT(6) = CADJ(12) - MOUT(7) = 0 - - GO TO 30 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . S T E P (5.3) ... CALL CNTRI() ... -C ... PASS CONTROL TO MAINLINE GENERATOR FUNCTION -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 30 CONTINUE -C -C *** *** *** - ML = IABS(INDEX(1,1)) + 2 - LCKPT = 2147 - PRINT 888, LCKPT - - PRINT *,'SHAD1=',SHAD1(1),' ',SHAD1(2),' ',SHAD1(3),' ',SHAD1(4) - PRINT *,'SHAD2=',SHAD2(1),' ',SHAD2(2),' ',SHAD2(3),' ',SHAD2(4) - CALL CNTRI(IRET_CNT, IMAGE, IMAGSIZ_WRDS, IWINDOW, - 1 MAP, LABEL, INDEX,NFLDS, - 2 FLD1, DASH1, OFSET1, SHAD1, - 3 FLD2, DASH2, OFSET2, SHAD2, - 4 FLD3, DASH3, OFSET3, SHAD3, - 5 FLD4, DASH4, OFSET4, SHAD4) -C . . . . - -C ... CALL CNTRI(PHASE,IP,IQ,ILNTH,ML,INDEX(1,1),NFLDS,SCHED, -C ... 1 LABEL,ITAPE) - -C ... IF(TWO .EQ. 6) THEN -C ... WAS ERROR RETURN FROM CNTRI, SO ... -C ... GO TO 50 -C ... ENDIF - -C ... IF(ICHK(3) .GT. 0) THEN -C ... THIS IS THE LAST MAP, SO MARK AS END-OF-ALL-MAPS, - -C ... CALL ENDMAP(IOUT(1)) - -C ... ENDIF - - LCKPT = 2149 - PRINT 888, LCKPT -C -C ... IF(IAND(CADJ(6),8) .NE. 0) THEN -C ... IS THIS A LEAVE-IT-OPEN CASE ??????? -C ... RETURN -C ... ENDIF - -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... To plot the LABEL-array data to the IMAGE plane ... -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - LEBCDIC = .FALSE. -C ... SCAN THRU THE ITAPE 3 TIMES TO GET PRIORITIES SEPARATELY - - DO IPRIO = 1,5 - LOOPRIOR = IPRIO - 1 - call prtitle(itape,LOOPRIOR,iwindow,LEBCDIC, - 1 IMAGE,MAXIWORD,MAXJSLINE, iret_plt) - - WRITE(6,435)IRET_PLT - 435 FORMAT(1H ,'CNTR::prtitle: RETN-CODE=',I6) - - IF(LANYTITLESQQ) THEN - NRECSTART_STR = minij_lab(7,2) - - ICOUNTSTRIP = NPRIOR_LAB(IPRIO,2) - IF(ICOUNTSTRIP .GT. 0) THEN - WRITE(6,FMT='(1H ,''CNTR::PRTITLE: FOR LOOPRIOR='',I3, - 1 ''; COUNT OF STRIP-TITLE ITEMS='',I5, - 2 /1H ,'' SO WE MUST CALL PRTITLE(FOR STRIP TITLES)'', - 3 /1h ,'' WHICH BEGIN IN RECORD NUMBER='',I5)') - A LOOPRIOR,ICOUNTSTRIP,NRECSTART_STR - - call prtitle(itape,LOOPRIOR,iwindow_STR,LEBCDIC, - 1 IMAGE_STR,MAXIWORD_STR,MAXJSLINE_STR,iret_plt) - - WRITE(6,435)IRET_PLT - - ELSE - WRITE(6,FMT='(1H ,''CNTR::PRTITLE: FOR LOOPRIOR='',I3, - 1 ''; NO STRIP-TITLES TO PROCESS'')') - A LOOPRIOR - ENDIF - ENDIF - ENDDO -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... To output the bitplane for checkout ... -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C REWIND LUNRAS - -C ... checkout only to output pure-raster image files ... - -C WRITE(LUNRAS,ERR=900) (IMAGE(I),I=1,IMGSIZNEED) - -C ... WAS ANY STRIP TITLES WRITTEN TO IMAGE_STR ?? -C IF(NITMPLTED_STR .GT. 0) THEN -C WRITE(6,525)NITMPLTED_STR,MXJVAL_STR,MXJLABITM_STR -C 525 FORMAT(1H ,'CNTR: STRIP-TITLE PLOTTED ITEM COUNT=',I7, -C 1 /1H ,7X,'MAX PLOTTED SCANLINE J-VALUE=',I7, -C 2 /1H ,7X,'FROM THE LABEL-ARRAY ITEM = HEX',Z17.16) - -C REWIND LUNRASST -C do jln = 1,MAXJSLINE_STR - -C WRITE(LUNRASST,ERR=907) (IMAGE_STR(I,JLN),I=1,MAXIWORD_STR) - -C ENDDO - -C ELSE -C WRITE(6,535)LUNRASST -C 535 FORMAT(1H ,'PLOT55AV: EMPTY STRIP-TITLES IMAGE; SO DID ', -C 1 'NOT OUTPUT ON UNIT=',I4) -C ENDIF - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... to convert image to Extended 6-bit format and output it ... - - imgtyp = 0 !... main body of map - CALL img2x6t(imgtyp,IMAGE,IMAGSIZ_WRDS, maxiword, MAXJSLINE, - 1 IWINDOW(IPXL_FR_MAX), MAXJSLINE, iret_ras2) - - if(iret_ras2 .NE. 0) then - write(6,FMT='(1h ,''cntr::img2x6t:(main) Failed with '', - 1 ''retn code='',I5)') - A iret_ras2 - - IRET_CNT = 4 - go to 999 - endif -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... WAS ANY STRIP TITLES WRITTEN TO IMAGE_STR ?? - IF(NITMPLTED_STR .GT. 0) THEN - - IMAGSIZ_STR = MAXIWORD_STR * MAXJSLINE_STR - NPXLOUT_STR = 1728 - NROWSHOW_STR = MAXJSLINE_STR !... = 800 - LNCOUNT_STR = 800 !... might be reduced by dataj - - imgtyp = 1 !... passing the strip-title image - CALL img2x6t(imgtyp,IMAGE_STR,IMAGSIZ_STR, maxiword_STR, - 1 lncount_STR, - 2 npxlout_STR, nrowshow_STR, iret_ras2) - - if(iret_ras2 .NE. 0) then - write(6,FMT='(1h ,''cntr::img2x6t:(strp-titles) Failed '', - 1 ''with retn code='',I5)') - A iret_ras2 - IRET_CNT = 5 - go to 999 - endif - else - write(6,FMT='(1h ,''cntr: skipped img2x6t() for converting '', - 1 ''strip-title image into X6B code'', - 2 /1h ,7X,''because no title data was plotted'')') - endif -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C ================================================================ - DO I = 1,6 - I8IFID(I) = IFID(I) - ENDDO - - LUNIPK6 = IFAXOUT - NUMRECFAX = NRECFAX - - - WRITE(6,FMT='(1H ,''CNTR: CALLING REBLKFX4: LUNIPK6='',I3, - 1 '' NUMRECFAX='',I4)')LUNIPK6,NUMRECFAX - - CALL REBLKFX4(LUNEXT6B,LUNIPK6,NUMRECFAX, - 1 SCHED,C1IFID,MYOPTNBITS,iret_reb) - -C PETER -C I MUST SUBTRACT 1 FROM NUMRECFAX TO POSITION TO PROPER RECORD. -C PETER - NRECFAX = NUMRECFAX - 1 - - WRITE(6,FMT='(1H ,''CNTR: REBLKFX4: RETURN CODE='',I6, - 1 '' NRECFAX='',I4,'' NUMRECFAX='',I4)') - 2 iret_reb,NRECFAX,NUMRECFAX - -C ================================================================ - - GO TO 999 - - -C ... ERROR IN OUTPUT FORMAT; RETRY - 50 CONTINUE -C ... DO 51 I = 2,360 -C ... IOUT(I)=0 -C ... 51 CONTINUE - -C ... IOUT(1) = EFL - -C ... CALL OUTP(IOUT(1),MOUT(1)) - -C ... ICHK(1) = 0 -C ... PRINT 1012 -C ... 1012 FORMAT(1H ,'CNTR:ERROR ... OUTPUT SYNCH ERROR. TRY AGAIN') -C ... GO TO 999 - - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 900 CONTINUE - WRITE(6,905)LUNRAS - 905 FORMAT(1H ,'CNTR: FAILED on write ERR on checkout raster ', - 1 'output UNIT=',I3) - iret_cnt = 6 - go to 999 - - 907 CONTINUE - WRITE(6,905)LUNRASST - iret_cnt = 6 - go to 999 - - 910 CONTINUE - WRITE(6,915)LUNBGD - 915 FORMAT(1H ,'CNTR: FAILED on read ERR on map background ', - 1 'HEADER record on UNIT=',I3) - iret_cnt = 7 - go to 999 - - 920 CONTINUE - WRITE(6,925)LUNBGD - 925 FORMAT(1H ,'CNTR: FAILED on read EOF on map background ', - 1 'HEADER record on UNIT=',I3) - iret_cnt = 8 - go to 999 - - 930 CONTINUE - WRITE(6,935)LUNBGD - 935 FORMAT(1H ,'CNTR: FAILED on read ERR on map background ', - 1 'data record on UNIT=',I3) - iret_cnt = 9 - go to 999 - - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb.fd/compile_sixbitb_wcoss.sh b/util/sorc/sixbitb.fd/compile_sixbitb_wcoss.sh deleted file mode 100755 index a72ce86357..0000000000 --- a/util/sorc/sixbitb.fd/compile_sixbitb_wcoss.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x -make -mv sixbitb ../../exec -make clean diff --git a/util/sorc/sixbitb.fd/getbgnd.fake.f b/util/sorc/sixbitb.fd/getbgnd.fake.f deleted file mode 100755 index cb4cb48746..0000000000 --- a/util/sorc/sixbitb.fd/getbgnd.fake.f +++ /dev/null @@ -1,457 +0,0 @@ - subroutine getbgnd(lunbgd,CPATHNAME,IWINDOW,IMAGE,IRET_BG) -C 6-MAR-1996/DSS -CC DIR$ INTEGER=64 -C ... subroutines/functions called: -C ... strpfnam() -C ... bgln_cut() -C ... atoi() !... function -C ... lastch() !... function -C ... itoa_ds() !... subroutine -C ... ASNFILE() !... CRAY ASSIGN subr -C -C Remarks: Krishna Kumar modified this code to run for IBM SP/RS 6000 -C This code reads the map background files in direct access -C mode. Relevant modifications have been done in all the -C read statements - 08/20/1999 - - integer lastch - external lastch - - integer (kind=8) atoi - external atoi - - INTEGER NOTRAIL - EXTERNAL NOTRAIL - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER LUNBGD - CHARACTER*(*) CPATHNAME - INTEGER IWINDOW(30) - INTEGER IMAGE(*) - INTEGER IRET_BG -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... INTEGER IWINDOW(30) -C ... IWINDOW(1) = (J_BG_SKP) !... NSKIP BG AT START -C ... IWINDOW(2) = (J_BG_ORG) !... J0 BG IN IMAGE WORK -C ... IWINDOW(4) = (J_FR_MAX) = 1876 !... ENTIRE IMAGE WORK-J -C ... IWINDOW(5) = (IPXL_BG_SKP) !... DISCARD PXL @ LN START -C ... IWINDOW(6) = IOPTNBITS -C ... IWINDOW(7) = (IPXL_BG_ORG) !... I0 BG IN IMAGE WORK -C ... IWINDOW(16) = (IPXL_FR_MAX) = 1728 !... MAX PXL IN RESULT -C ... IWINDOW(15) = (IWRD_FR_MAX) = 27 !... ENTIRE IMAGE WORK-I -C ... IWINDOW(17) = MAPBGNAME = nh2500x -C ... IWINDOW(18) = (J_BG_SPA) !... SPACE FOR BG W/I FRAME -C ... IWINDOW(19) = (IPXL_BG_SPA) !... SPACE FOR BG W/I FRAME -C ... IWINDOW(20) = (IPXL_BG_CUT) !... PXLS TO USE FROM BG LN - - INTEGER BGNAME - PARAMETER (BGNAME=17) - INTEGER OPTIONS - PARAMETER (OPTIONS=6) - INTEGER J_FR_MAX - PARAMETER (J_FR_MAX=4) - INTEGER IWRD_FR_MAX - PARAMETER (IWRD_FR_MAX=15) - INTEGER IPXL_FR_MAX - PARAMETER (IPXL_FR_MAX=16) - - INTEGER J_BG_SPA - PARAMETER (J_BG_SPA=18) - INTEGER IPXL_BG_SPA - PARAMETER (IPXL_BG_SPA=19) - - INTEGER J_BG_SKP - PARAMETER (J_BG_SKP=1) - INTEGER IPXL_BG_SKP - PARAMETER (IPXL_BG_SKP=5) - INTEGER IPXL_BG_CUT - PARAMETER (IPXL_BG_CUT=20) - - INTEGER J_BG_ORG - PARAMETER (J_BG_ORG=2) - INTEGER IPXL_BG_ORG - PARAMETER (IPXL_BG_ORG=7) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... IWINDOW(BGNAME) = MAPBGNAME = nh2500x -C ... IWINDOW(OPTIONS) = IOPTNBITS -C -C - INTEGER LUNRAS - PARAMETER (LUNRAS=71) !... CHECKOUT PURE-RASTER OUTPUT UNIT - - INTEGER NWRDRECSIZ - PARAMETER (NWRDRECSIZ=1024) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER NWRDPLIN_MXMX !... LONGEST LINE LENGTH OF ANY - PARAMETER (NWRDPLIN_MXMX=66) !... MAP (IN LONGWORDS) - - INTEGER INPLINBUF(NWRDPLIN_MXMX) - - INTEGER IHDR_BG(64) - - integer mapcon_pur(10) !... for derived from ihdr_bg - - integer lmt_nlines_lib - equivalence (mapcon_pur(5),lmt_nlines_lib) - integer lmt_nwrdplin_lib - equivalence (mapcon_pur(6),lmt_nwrdplin_lib) - integer LMT_NPXLPLIN_LIB - equivalence (mapcon_pur(7),lmt_npxlplin_lib) - - INTEGER NLINRED - INTEGER NLINUSED - INTEGER NLINSKPED - - CHARACTER*16 CBGNAME - character*80 cfullname - character*132 cassi - - integer i8acc - character*1 c1acc(8) - equivalence (i8acc,c1acc(1)) - character*8 c8acc - equivalence (i8acc,c8acc) - integer (kind=8) ifox - data ifox/z'ffffffffffffffff'/ - - integer idigits(2) - character*16 cdigits - equivalence (idigits(1),cdigits) - - INTEGER JOFDEST - INTEGER IOPTNBITS - INTEGER KCYCLBIT - DATA KCYCLBIT / X'0020' / - - - logical lmapbg_use - LOGICAL LBGEXIST - LOGICAL LCYCLICQ - logical LCKPRNTQ - - INTEGER IOSOPEN - INTEGER IORSUM - - integer lwr_or_upr - integer nc - integer iret_str - - character*1 NULL -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C ... INITIALIZE ... - - NULL = char(0) - IRET_BG = 0 - lmapbg_use = .false. - - IOPTNBITS = IWINDOW(OPTIONS) - LCYCLICQ = .FALSE. - IF(IAND(IOPTNBITS,KCYCLBIT) .NE. 0) THEN - LCYCLICQ = .TRUE. - ENDIF - -C ... INITIALIZE THE FRAMED SPACE ... - NTOTWRDS = IWINDOW(J_FR_MAX) * IWINDOW(IWRD_FR_MAX) - DO I = 1,NTOTWRDS - IMAGE(I) = 0 - ENDDO - -C ... GET MAP BGND NAME FROM IWINDOW(BGNAME), - i8acc = iwindow(BGNAME) - nc = 8 - do ir = 8,1,-1 - if((c1acc(ir) .eq. ' ') .or. - 1 (c1acc(ir) .eq. NULL)) then - nc = nc -1 - else -C ... is rightmost non-blank non-NULL char, so jump out - go to 220 - endif - enddo - 220 continue -C ... now given map-bgnd name is in c1acc(1):(nc) ... - if(nc .LE. 0) then - write(6,225) - 225 format(1h ,'getbgnd: given MAP-BGND NAME is NULL') -C ... so I cannot fetch a map bgnd. So, continue to initialize -C ... image plane, but skip the laying on of the map bgnd. - lmapbg_use = .false. - iret_bg = 1 - go to 999 ! ... jump arnd all the map-bgnd input - endif - -C ... to clean given map bgnd name, - - lwr_or_upr = 1 ! ... to force lower-case result - - call strpfnam(lwr_or_upr,c1acc,nc,cbgname,nchnam,iret_str) - if(iret_str .ne. 0) then - write(6,235)c8acc(1:nc),iret_str - 235 format(1h ,'strpfnam:FAILED to process map-bgnd name= "',A, - 1 '"', - 2 /1h ,' with return code=',I3) - lmapbg_use = .false. - iret_bg = 2 - go to 999 - endif - -C ... MAKE FULLY QUALIFIED MAP-BGND NAME FROM MAP(1) NAME.PUR -C ... PATH = /CODES/GRAPHICS/OK/BG/ - cfullname(1:) = cpathname(1:lastch(cpathname))// - 1 cbgname(1:nchnam)//'.pur'//NULL - write(6,245)cfullname(1:lastch(cfullname)) - 245 format(1h ,'getbgnd: map-bgnd filename = (see next line)', - 1 /1h ,'"',A,'"') - - -C ... TEST FOR THE EXISTENCE OF SUCH A BGND NAME ... - INQUIRE(FILE=CFULLNAME(1:LASTCH(CFULLNAME)),EXIST=LBGEXIST) - IF(.NOT. LBGEXIST) THEN - WRITE(6,265) - 265 FORMAT(1H ,'GETBGND: FAILED ON NON-EXISTENT MAP-BACKGROUND ', - 1 'FILE W/ NAME=', - 2 /1H ,' "',A,'"') - iret_bg = 3 - go to 999 - ENDIF - -C ------------------------------------------------------------- -C ... to compose an assign statement which will work like: -C ... "assign -a ../bg/nh4004.pur -s unblocked u:11" -C ... by composing: -C ... "assign -s unblocked f:fullyqualifiedname" - - cassi(1:) = ' ' - cassi(1:) = 'assign -s unblocked f:'// - 1 CFULLNAME(1:LASTCH(CFULLNAME))//NULL -ckumar WRITE(6,271)CASSI(1:NOTRAIL(CASSI)) -ckumar 271 FORMAT(1H ,'getbgnd:THE COMPOSED ASSIGN STMNT= (see next line)', -ckumar 1 /1H ,' "',A,'"') - -ckumar CALL ASSIGN(CASSI(1:NOTRAIL(CASSI))) - -C -------------------------------------------------------------- - IOSOPEN = 0 -C ... SINCE IT EXISTS, THEN OPEN IT FOR READING ... -ckumar OPEN(LUNBGD,FILE=CFULLNAME(1:LASTCH(CFULLNAME)), -ckumar 1 FORM='UNFORMATTED',STATUS='OLD', -ckumar 2 IOSTAT=IOSOPEN,ERR=900) - open (lunbgd,file=CFULLNAME(1:LASTCH(CFULLNAME)), - 1 form='unformatted',access='direct',recl=8) -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C -C ... FROM MAP CONSTANTS, DETERMINE HOW MANY MAP-BGND -C ... SCANLINES TO SKIP AT FRONT -C ... nskipln = 121 !... FOR AVPOLAR - nskipln = IWINDOW(J_BG_SKP) - - -C ... when trying for multi-panel app, I got invalid header -C .. on second panel; so try w/ rewind ... - -ckumar REWIND LUNBGD - -C ... READ BG HEADER INTO IHDR_BG FROM ~/bg/nh2500x.pur ... -ckumar READ(LUNBGD,ERR=910,END=920)(IHDR_BG(I),I=1,64) -ckumar - krec=1 - do krd=1,64 - READ(LUNBGD,ERR=910,rec=krd) IHDR_BG(krd) - krec=krec+1 - end do -ckumar -C ... from the header determine constants of this background -C ... in the original library file; such as, -C .... HOW MANY WORDS TO READ TO GET ONE SCANLINE - do i = 1,10 - mapcon_pur(i) = 0 - enddo - - idigits(1) = ihdr_bg(5) !... =ascii '00001876' - idigits(2) = 0 !... to put a NULL terminator - call byteswap(idigits(1), 8, 1) - lmt_nlines_lib = atoi(cdigits(1:9)) -C ... mapcon_pur(5) == lmt_nlines_lib - - idigits(1) = ihdr_bg(6) !... =ascii '00000027' - idigits(2) = 0 !... to put a NULL terminator - call byteswap(idigits(1), 8, 1) - lmt_nwrdplin_lib = atoi(cdigits(1:9)) -C ... mapcon_pur(6) == lmt_nwrdplin_lib - idigits(1) = ihdr_bg(7) !... =ascii '00001728' - idigits(2) = 0 !... to put a NULL terminator - call byteswap(idigits(1), 8, 1) - LMT_NPXLPLIN_LIB = atoi(cdigits(1:9)) -C ... mapcon_pur(7) == lmt_npxlplin_lib - - WRITE(6,325)LMT_NLINES_LIB, LMT_NWRDPLIN_LIB, LMT_NPXLPLIN_LIB - 325 FORMAT(1H ,'GETBGND: DIMENSIONS OF THIS MAP FROM LIBRARY ARE:', - 1 /1H ,' TOTAL COUNT OF SCANLINES =',I6, - 2 /1H ,' NO. OF LONG-WORDS PER LINE=',I6, - 3 /1H ,' NO. OF PIXELS PER LINE =',I6 ) - IF(LMT_NWRDPLIN_LIB .GT. NWRDPLIN_MXMX) THEN - WRITE(6,335)NWRDPLIN_MXMX,LMT_NWRDPLIN_LIB - 335 FORMAT(1H ,'GETBGND:FAILED ON ILLEGAL WIDTH OF MAP BGND ...', - 1 /1H ,' MAX POSSIBLE LINE LENGTH (IN WORDS) =',I8, - 2 /1H ,' THIS MAP,S LINE LENGTH (IN WORDS) =',I8) - IRET_BG = 4 - GO TO 999 - ENDIF - -C ... READ BG INTO IMAGE FROM ~/bg/nh2500x.pur ... - NLINRED = 0 - NLINSKPED = 0 - NLINUSED = 0 - JOFDEST = 0 - JOFSORC = 0 - IF(NSKIPLN .GT. 0) THEN -C ... READ NO OF SKIPPED BGND SCANLINES INTO VOID - do j = 1,nskipln - JOFSORC = JOFSORC + 1 -ckumar READ(LUNBGD,ERR=930,END=800) -ckumar 1 (INPLINBUF(I),I=1,LMT_NWRDPLIN_LIB) - krec=krec+LMT_NWRDPLIN_LIB - NLINRED = NLINRED + 1 - NLINSKPED = NLINSKPED + 1 - ENDDO - ENDIF -ckumar -C ... NOW BGND INPUT FILE POINTER IS AT THE FIRST SCANLINE TO USE - -C ... FROM OTHER MAP CONSTANTS, DETERMINE WHERE IN THE FRAME DO -C ... I POSITION THE FIRST USED MAP-BGND SCANLINE. - JOFDEST = IWINDOW(J_BG_ORG) - -C ... DO UNTIL REQUESTED SIZE OF BACKGROUND SPACE IS FILLED ... - DO 477 JBU = 1,IWINDOW(J_BG_SPA) - IF(JBU .LT. 5) THEN - LCKPRNTQ = .TRUE. - else - LCKPRNTQ = .FALSE. - ENDIF - JOFDEST = JOFDEST + 1 -C ... CHANGE THE FOLLOWING READ TO READ INTO A WORK SCANLINE - IF(JOFSORC .GE. LMT_NLINES_LIB)THEN -C ... EXHAUSTED EXISTING LINES OF MAP BGND FROM LIB ... -C ... I RAN OUT OF AVAILABLE BGND LINES BEFORE THE REQUEST -C ... WAS SATISFIED; - IF(LCYCLICQ) THEN -C ... IF THE BGND IS CYCLIC, THEN REPOSITION BGND FILE -C ... TO FIRST SCANLINE OF SOURCE AND KEEP ON READING ... -ckumar REWIND LUNBGD - krec=65 -C ... TO REPOSITION PAST THE HEADER RECORD ... -ckumar READ(LUNBGD,ERR=910,END=920)(IHDR_BG(I),I=1,64) -C ... DO NOT SKIP ANY REAL SCANLINE ON THIS RECYCLED - JOFSORC = 0 - ELSE -C ... HERE IS A CASE OF A NON-CYCLIC BACKGROUND AND -C ... WE HAVE EXHAUSTED THE DATA IN THE MAP-BGND, -C ... EVEN THOUGH THE DESIRED GEOGRAPHY DEST SPACE -C ... HAS NOT YET BEEN FILLED. -C ... SET A WARNING AND JUMP OUT -C ... HOW TO SET A WARNING??? IRET_BG = 2 - GO TO 999 - - ENDIF - ENDIF -C ------------------------------------------------------------- -C ... READ A SCANLINE WHICH IS TO BE USED, INTO A LONG LINE BUFFER -C ... WHICH IS BIG ENOUGH TO HOLD THE LONGEST SCANLINE OF ANY - JOFSORC = JOFSORC + 1 -ckumar READ(LUNBGD,ERR=930,END=800) -ckumar 1 (INPLINBUF(I),I=1,LMT_NWRDPLIN_LIB) -ckumar - do I=1,LMT_NWRDPLIN_LIB - READ(LUNBGD,ERR=910,rec=krec) INPLINBUF(I) - krec=krec+1 - end do - call byteswap(INPLINBUF, 8, LMT_NWRDPLIN_LIB) -ckumar - NLINRED = NLINRED + 1 -C -C ... NOW I HAVE ONE ORIGINAL BG SCANLINE -C ... IN (INPLINBUF(1),(LMT_NWRDPLIN_LIB) ... -C ... so, CUT / SHIFT TO FIT WITHIN FRAME -C ... and TRANSFER TO IMAGE PLANE ... - call bgln_cut(inplinbuf,image,jofdest,iwindow,mapcon_pur, - 1 LCKPRNTQ,iret_cut) -C -C . . . . . . . . . . . . . . . . . . . . . . . - NLINUSED = NLINUSED + 1 - 477 CONTINUE -C ... WHICH IS ENDDO -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - - 800 CONTINUE - - WRITE(6,805) NLINRED,NLINSKPED,NLINUSED - 805 FORMAT(1H ,'getbgnd: READ BACKGROUND. SCANLINES COUNTED=',I6, - 1 /1H ,' OF WHICH SKIPPED=',I6,'; USED=',I6) - -C ... for checkout only. ... the bgnd is not visible on image -C ... is there anything there? -C ... INITIALIZE THE FRAMED SPACE ... - iorsum = 0 - DO I = 1,NTOTWRDS - iorsum = ior(iorsum,image(i)) - ENDDO - if(iorsum .EQ. 0) then - write(6,815)NTOTWRDS - 815 format(1h ,' * * * * * * * W A R N I N G * * * * * * * *', - 1 /1H ,'getbgnd: At finish, there is no geography in ', - 2 'the image plane.', - 3 /1H ,' Word count of IMAGE space =',I8, - 3 /1H ,' * * * * * * * * * * * * * * * * * * * * * * * *') - endif - - - GO TO 999 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 900 CONTINUE - WRITE(6,905)LUNBGD,IOSOPEN - 905 FORMAT(1H ,'getbgnd: FAILED on OPENing map background ', - 1 'on UNIT=',I3, - 2 /1H ,' ERROR-CODE IOSTAT=',I8) - IRET_BG = 6 - go to 999 - - 910 CONTINUE - WRITE(6,915)LUNBGD - 915 FORMAT(1H ,'getbgnd: FAILED on read ERR on map background ', - 1 'HEADER record on UNIT=',I3) - IRET_BG = 7 - go to 999 - - 920 CONTINUE - WRITE(6,925)LUNBGD - 925 FORMAT(1H ,'getbgnd: FAILED on read EOF on map background ', - 1 'HEADER record on UNIT=',I3) - IRET_BG = 8 - go to 999 - - 930 CONTINUE - WRITE(6,935)LUNBGD - 935 FORMAT(1H ,'getbgnd: FAILED on read ERR on map background ', - 1 'data record on UNIT=',I3) - IRET_BG = 9 - go to 999 - - - 999 CONTINUE - CLOSE(LUNBGD) - RETURN - END - diff --git a/util/sorc/sixbitb.fd/ipak.f b/util/sorc/sixbitb.fd/ipak.f deleted file mode 100755 index 8ccb4850b1..0000000000 --- a/util/sorc/sixbitb.fd/ipak.f +++ /dev/null @@ -1,75 +0,0 @@ - subroutine ipak(cpak,isub) -C BUILD IPAK STRING FOR OSO. IPAK(1:4) is handled -C BY CALLER BUT FAX CUT NUMBER, CYCLE, DATE, DAY OF WEEK -C AND PRODUCT NAME MUST BE INSERTED HERE. THESE ARE -C calculated from knowledge of the subset number -c (passed in ISUB) and the date (stored in environment -c variable PDY) and the Forecast cycle (stored in environment -c variable CYCLE. These latter two -c are input with the GETENV fortran function. -c -c arguments -c CPAK (56 character ascii array to store IPAK string) -c ISUB subset number used for fax cuts and here -c used to infer the product name also , only CPAK is modified -c - common/packra/iras(10) - dimension cm(12) - character*3 cm - data cm/'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG', - 1 'SEP','OCT','NOV','DEC'/ - character*56 cpak - character*8 cdate - character*4 cycle - character*4 cwk - character*24 cprod -ckumar integer getenv - integer istat - cpak=' ' -c -ckumar ifound=getenv ('PDY',cdate,istat) -ckumar ifound=getenv('CYCLE',cycle,istat) -ckumar IBM replacement routine for GETENV -ckumar - call getenv('PDY',cdate) - call getenv('CYCLE',cycle) -c - print*,'In ipak ' - print*,'cdate in ipak ',cdate - print*,'PDY in ipak ',PDY - print*,'CYCLE in ipak ',CYCLE -c - read(cdate,102)iy,im,id - read(cycle(2:3),109)ih - iras(7)=ih - iras(8)=id - iras(9)=im - iras(10)=iy - iadd=0 - 102 format(i4,2i2) - if(isub .eq. 50 .or. isub .eq. 51) iadd=12 - iras(1)=iadd - call updatr - id=iras(4) - im=iras(5) - iy=iras(6) - ih=iras(3) -c - call dayowk(iras(4),iras(5),iras(6),idwk,cwk) - write(cpak(4:9),103)isub - if(isub .eq. 50) cprod='FAXPLOT ' - if(isub .eq. 51) cprod='FAXPLOT ' - if(isub .eq. 2927) cprod=' WINDS ALOFT 02+40 ' - if(isub .eq. 2977) cprod=' WINDS ALOFT 02+40 ' - if(isub .eq. 2929) cprod=' WINDS ALOFT 02+40 ' - if(isub .eq. 2979) cprod=' WINDS ALOFT 02+40 ' -cB 50 TIU 00Z 13 FEB FAXPLOT -cB 50 TUE 12Z 18 FEB 97 FDFAX UPPER WHNDS - 103 format('B',i5) - write(cycle(2:3),109)ih - 109 format(i2.2) - write(cpak(10:56),105)cwk,cycle(2:4),' ', - 1 id,' ',cm(im),' ',cprod - 105 format(1x,a4,a3,a1,i2,a1,a3,a1,a24) - return - end diff --git a/util/sorc/sixbitb.fd/lputlab.f b/util/sorc/sixbitb.fd/lputlab.f deleted file mode 100755 index 2dd0f67167..0000000000 --- a/util/sorc/sixbitb.fd/lputlab.f +++ /dev/null @@ -1,35 +0,0 @@ - SUBROUTINE lPUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KPRIORS,ITAG) - common/counts/icount -ckumar data icount/0/ - dimension kprior(2) - character*(*) ctext -c parse kprior -ckumar 1 line below added by kumar ! for ibmsp1 - icount = 0 - kprior(1)=0 - kprior(2)=0 - if (kpriors .eq. 0) then - kprior(1)=0 - kprior(2)=0 - else - kprior(2)=kpriors - kprior(1)=0 - endif - icount=icount+1 - print 901,ipt,jpt,height,ctext,angle,nchar,kprior,itaG - print 904,ctext,nchaR - 904 format('LPUTLAB TEXT',A132,i4) - 901 format - 1 ('LPUTLAB ARGS',i6,i6,f6.2,'>',a16,'<',f6.2,i3,i6,i6,i8) - if(icount .le. 1) then - print 902 - 902 format('LPUTLAB',/,'LPUTLAB HDRS IDOT JDOT',2x, - 1' HGT', 7x,'CHAR',7x,' ANG', - 1 ' NCH KP(1) KP(2) ITG ',/'LPUTLAB') - endif - if (icount .ge. 20)icount=0 -C call PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,8,KPRIOR,ITAG) - call PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KPRIOR,ITAG) - return - end - diff --git a/util/sorc/sixbitb.fd/main.f b/util/sorc/sixbitb.fd/main.f deleted file mode 100755 index 51c15925ce..0000000000 --- a/util/sorc/sixbitb.fd/main.f +++ /dev/null @@ -1,920 +0,0 @@ - program SIXBITB -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK *** -C -c MAIN PROGRAM: GRAPH_SIXBITB -C PRGMMR: KUMAR ORG: NP12 DATE: 2000-02-14 -C -C ABSTRACT: Packs raw bit image into 6 bit bedient format & -c adds NOAA DUCK. Image resolution is passed -c in a header in the bit image (read from fortran -c units 11 and 12) -C -C PROGRAM HISTORY LOG: -c 96-12-18 vandenberghe Program was originally avpolar -C 86-08-12 HLYWIAK -C 88-02-03 RUSSELL E. JONES CHANGE FORTXDAM-W3FK00 I/O PACKAGE -C TO VSAM-W3FK40, W3FT19 TO W3FT59 -C 88-02-03 HENRICHSEN PETER USE W3FQ06 REMOVE INLINE GRAPHIC -C SUBROUTINES. -C 91-03-15 LILLY ADD CALL TO GULFTL WHICH PROVIDES -C THE GENERATING MODEL. -C 95-05-05 LILLY CONVRT TO FORTRAN 77. ADD LOGIC -C FOR PRODUCING AN ATLANTIC AND A -C PACIFIC FAX CUT FOR FL450, FL390, -C FL340, FL300, FL240, AND FL180. -C 95-09-06 LILLY ADD SUBROUTINE DUCK IN ORDER TO -C DISPLAY NCEP INSTEAD OF NMC ON -C VARIOUS CHARTS. -C 96-12-18 vandenberghe removed graphics portion and -c left six bit packing logic. The -c ancestor of this program is avpolarv -c the only remaining graphics is -c a call to DUCK -c this program is expected to -c do all conversion of imported -c raster images to 6 bit graphics -c however fax image size is currently -c hardwired; a holdover from the -c cntr ancestery of avpolar; the -c hardwiring probably should be removed -c so master image size(s) can be -c specified in fort.5 -c -c 97-01-17 added capability to read multiple map -c images of varying resolution as -c suggested above. However the resolution -c information is stored in the map image -c and no fort.5 is needed (yet) -C -C 97-02-18 retrofitted capability to build -c IPAK field in product in response -c to OSO requirement. This only -c works for FDFAX and WNDANFTF -c products so far. All done in -c a call to ipak just before cntr call -c -c 1999-12-21 KRISHNA KUMAR Converted this code for IBM RS/6000 -c from CRAY. Program has been modified -c to write the Fax output in direct -c access mode. -C USAGE: -C USAGE: -c INPUT: -c fort.18 fax cut information -c fort.15 map naming information (ignored) -c mapback.pur map image (just read for map header) -c CNTR package will reopen this as unit -c 11 (see below) -c ./mapback.pur (unit 11) (hidden within cntr libraries) -c map background which for this -c program contains ALL of the graphics -c the name of the background is -c mapback.pur on the programs current -c working directory and it is specified -c in a data stattement -c (optional) -c ./image002 All of these are processed as fort.9 and -c ./image003 then reopened as fort.11 by CNTR package -c ./image004 CNTR usage of fort.11 is supposed to be -c ./image005 transparent to caller but unit 11 must -c .. not be open when CNTR is called. -c .. THIS REQUIREMENT IS MET BY THIS CODE!! -c ./imagennn -c OUTPUT: -c fort.81 6bit bedient file -c SCRATCH: -c fort.60, 61, 62, 63, 71, 72, 52, and 55 -c all are assigned on cray as -sunblocked -C -C SUBPROGRAMS CALLED: -C UNIQUE: ECHBAR GETSXX NPOLUV PLTTLL -C PLTWLL POLSTN -C RNCNTL MERCIN DOFRST AVTTLS SLTCRD -C FAXSHD WNDRNH IPAK -C -C LIBRARY: -C SPECIAL - CONSOL IAND IOR ISHFT -c SYSTEM - GETENV (in ipak only) -C W3LIB - W3AI24 W3AQ13 W3AQ09 W3AS00 -C - W3FQ06 -C W3FB04 W3FK40 W3FT59 W3FA11 W3FA13 -C W3FT08 W3FT09 W3FT10 W3FT11 W3FA12 W3FT12 -c found on /nwprod/w3lib on all three cray -C GRAPHIC - -C CNTR ISP2EB ZPLOT -C AFDMP AFNC AFST CHARAC CMSK CNTR -C CNTRI CONST DAYOWK DCD4 DSH ENDMAP -C ENDAFO HILO IFS INPUT INTRP IROT -C IRVR ISORT LKTLBS MERGE NCD8 OUTP -C PRTITL PUTLAB RAISE SCAN SHADE SNAP -C TRANSA UPDATR VECT WINCON WNDBRK WNDIRT -c found on /nwprod/gphlib/gphcntr -c /nwprod/gphlib/gphfont -c /nwprod/gphlib/gphlib -c on cray4 (exec works on all crays) -c -C -C EXIT STATES: 96 Bad GRIB index file; 99 bad GRIB file -C -C -C LANGUAGE: F90 -C MACHINE : IBM ) -C -c 12/18/96 New program requirements (ignore above) -c fort.8 fax cut information -c fort.5 map naming information (ignored) -c fort.11 (hidden within cntr libraries) -c map background which for this -c program contains ALL of the graphics -c the name of the background is -c mapback.pur on the programs current -c working directory and it is specified -c in a data statement -c -c a future version will allow multiple -c backgrounds for multiple images -C$$$ -C - COMMON/ISPACE/BUFF(5400),XTRA(8400) - COMMON/MFILE/LANL(256),IDANL(1539) - COMMON/PACKRA/JTAU(2),IUHR,ITAG,MONAT,JAHR,IHOUR,IDAY,IMONTH,IYR - COMMON/KPLOT/lABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON/ICNTR/IP1(2),IP2(2),IP3(2) - COMMON/ICNTR2/IP4(2),IP5(2),IP6(2) -C COMMON/MRGARG/YDIS,DUMMY(3),XO,YO - COMMON/MRGARG/YDIS,DUMMY(2),iret_zpl,XO,YO - COMMON/XZPLAX/XZPLOT,YZPLOT,IORITY - COMMON/POLST2/LABSTN(2,145) -ckumar dimension LABSTN(2,145) - COMMON/NSCHED/ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,60) - COMMON/TITLES/KTITLE(28),LPOLAR,LOWLEV - parameter(MAXIWORD=36,MAXJSLINE=5828) - PARAMETER (IMAGSIZ_WRDS=MAXIWORD*MAXJSLINE) - dimension IMAGE(IMAGSIZ_WRDS) - character*8 clabss(2,145) - equivalence (labstn,clabss) -ckumar - COMMON/IOUTFAX/IFAXOUT,NRECFAX ! ADDED FOR DIRECT ACCESS FOR FAX OUTPUT -C - INTEGER IFAXOUT,NRECFAX -ckumar - REAL d12(145*37),d22(145*37),d32(145*37),d42(145*37) -c - INTEGER d11(6) - INTEGER d13(2),d14(2),d15(20) - INTEGER d23(2),d24(2),d25(20) - INTEGER d33(2),d34(2),d35(20) - INTEGER d43(2),d44(2),d45(20) - -C - DIMENSION ICK(3) - INTEGER ichk(3) -C ADDED THIS............................... - DIMENSION ITAUI(3),IOUTIN(2), ILVLI(3), IFLDI(3) - DIMENSION ITAU(3),LVL(3),ITYPE(3) - DIMENSION MTAU(5),MLVL(8),KLVL(8),MTYPE(3) -C - DIMENSION IL(15) - DIMENSION INDEX(6) - DIMENSION INAM1(3) - character*8 cnam1(3),cnam2(3),cnam3(3) - character*12 cn12(3) - dIMENSION INAM2(3) - DIMENSION INAM3(3) - equivalence (cnam1,inam1),(cnam2,inam2),(cnam3,inam3) - DIMENSION IBCDT(2) - dIMENSION IBCD(80) - DIMENSION IFSRP(80) - DIMENSION IBCD1(3) - DIMENSION IBCD2(4) - DIMENSION IBCD3(5) - DIMENSION IBCD4(4) - DIMENSION IDESC(9) - DIMENSION IDDC(5) - DIMENSION IBCDZ(2) - DIMENSION ITITL3(4) - DIMENSION ITITL4(2) - DIMENSION IMONT(12) -ckumar DIMENSION IFID(14) - integer ifid(6) -ckumar character*1 cifid(56) - character*1 cifid(24) -ckumar character*56 cifid56 - character*24 cifid24 -ckumar equivalence (cifid56,cifid) - equivalence (cifid24,cifid) - equivalence (cifid,IFID) - INTEGER JFID(14) - character*4 cjpp(2,14) - character*1 cjfid(56) - equivalence (cjpp,jfid) - character*56 cjpp56 - equivalence (cjpp56,cjfid) - equivalence (cjfid,jfid) - DIMENSION KWNCTL(3,19) - DIMENSION KTTCTL(3,19) - DIMENSION FLD1(145,37) - DIMENSION FLD2(145,37) - DIMENSION IVLD(2) - INTEGER MESS1(11),MESS2(11),MESS3(10) -C THIS INCLUDES THE ATLANTIC HALF AND PACF HALF - DIMENSION IAREA(8,9) -C -C -C THIS IS A TEST TO SEE IF I CAN REPLACE CALL ENDMAP -C WHICH THE FOLLOWING SUBSTITUTION???? - INTEGER SFL - DATA SFL /X'FFFFFC00'/ -C -C - CHARACTER*44 IMESS2 - CHARACTER*40 IMESS3 - CHARACTER*56 KJFID - CHARACTER*1 LPARM(100), CPARM(100) - CHARACTER*1 LI - DATA LI /'I'/ - CHARACTER*4 NSTOP -C - INTEGER ITITL1 - INTEGER I00Z - INTEGER I12Z - INTEGER IDENT(12) - INTEGER IFULL - INTEGER J00Z - INTEGER J12Z - INTEGER LU -C - INTEGER IP1,IP2,IP3 - INTEGER IP4,IP5,IP6 - INTEGER IHAVL(2) -C - LOGICAL LPOLAR - LOGICAL LOWLEV - DATA IDENT/12*0/ -C -C.....FOLLOWING ARE THE CUT DEFINITIONS FOR ISCHED... -C 1=XX14,2=VFULL,3=XX15,4=PN28,5=NT22,6=NT23,7=PN29,8=ATLN,9=PACF -C STRT(SCANS),HEIGHT(S),FLAGS,INDENT(BYTES),WIDTH(B),FAXIND(B), -C STRT OF INSET(S),INSET NUMBER -C -C AND THIS.................................... -C - DATA MTAU /18,24,30,36,48/ - DATA MLVL /850,700,500,400,300,250,200,150/ - DATA KLVL /4H 850,4H 700,4H 500,4H 400,4H 300, - 1 4H 250,4H 200,4H 150/ - DATA MTYPE /48,49,16/ -C - DATA NUMTAU /5/ - DATA NUMFLD /3/ - DATA NUMLVL /8/ -C - DATA MESS1/4HNWS ,4H;@20,4H** ,4HAVPO,4HLAR ,4HCOMP,4HILED, - 1 4H 2/,4H18/8,4H8. *,4H* ;:/ - DATA MESS2/4HNWS ,4H;@20,4HPOLA,4HR AV,4HIATI,4HON M,4HAPXX, - 1 4HXX W,4HAS M,4HISSE,4HD ;:/ - DATA MESS3/4HNWS ,4H;@20,4H** X,4HX OF,4H XX ,4HMAPS,4H COM, - 1 4HPLET,4HED ,4H**;:/ - DATA IAREA/216,2000,129,41,216,0,0,0, - 2 1,3600,128,0,216,0,0,0, - 3 655,2096,129,130,216,0,0,0, - 4 790,1950,129,81,108,108,1,99, - 5 790,1950,064,67,108,0,0,0, - 6 55,1710,129,40,216,0,0,0, - 7 655,1435,129,130,216,0,0,0, - 8 100,2800,129,0,216,0,0,0, - 9 100,2800,129,-128,216,0,0,0/ - DATA ICK/0,13800,1/ - DATA MASK8/X'000000FF'/ -C DATA NU/1/ - DATA NU/61/ - DATA IDESC/4HUNSI,4HGNED,4H TEM,4HPERA,4HTURE, - X 4HS AR,4HE NE,4HGATI,4HVE. / - DATA KWNCTL / 00, 1, 2, 05, 1, 2, - 1 10, 1, 2, 15, 1, 2, - 2 20, 1, 2, 25, 1, 2, - 3 30, 1, 2, 35, 1, 2, - 4 40, 1, 2, 45, 1, 2, - 5 50, 1, 2, 55, 1, 4, - 6 60, 1, 4, 65, 1, 4, - 7 70, 1, 4, 75, 5, 8, - 8 80, 1,16, 85,29,36, - 9 90,73,73 / - DATA LBLTAP/55/ - DATA KTTCTL / 00, 1, 4, 05, 3, 4, - 1 10, 1, 4, 15, 3, 4, - 2 20, 1, 4, 25, 3, 4, - 3 30, 1, 4, 35, 3, 4, - 4 40, 1, 4, 45, 3, 4, - 5 50, 1, 4, 55, 3, 4, - 6 60, 1, 4, 65, 5, 8, - 7 70, 1, 8, 75, 5, 8, - 8 80, 1,16, 85,29,36, - 9 90,73,73 / -C ... WHERE KTTCTL HAS LAT/ M1 /M3 OF LOOP CONTROLS FOR TEMPERATURE - DATA INDEX/51,23,0,-47,0,23/ -C -C CONSTANTS FOR BACKGROUND NH2500 -C -c 12/29/96 GWV -c variables to handle multiple map backgrounds -c (one per image up to 99 images) -c file ./cnames(k).pur will be opened in the map loop -c the cfiles variable is a convenient way to handle -c the ./ prefix and the .pur suffix. - character*8 cl(15) - equivalence (cl,il) - character*8 cnames(100) - character*14 cfiles(100) -c variable to store resolution from map background -c (rather than hardwiring it) - character*80 chead -c end 12/29/96 insert - DATA IL(1),IL(2)/8HMAPBACK ,0 / -c DATA IL(3),IL(4),IL(5),IL(6)/-1080,120,2760,3000/ -c DATA IL(7),IL(8),IL(9),IL(10)/-1080,120,2760,3000/ - DATA IL(3),IL(4),IL(5),IL(6)/0,0,1792,2440/ - DATA IL(7),IL(8),IL(9),IL(10)/0,0,1792,2440/ - -C -C CONTOUR ADJUST -C - DATA IL(11),IL(12)/0,0/ -C -C LABELS ADJUST -C - DATA IL(13),IL(14)/0,0/ - DATA JFID/4H V,4HSSSS,4H CCZ,4H MM/,4HDD T,4HTHR ,4HLLLM, - X 4HB PO,4HLAR ,4HAVIA,4HTION,4H W/T,4H ,4H / - DATA INAM1/4HPROP,4HERTY,4H OF / - DATA INAM2/4HK. H,4HLYWI,4HAK / - DATA INAM3/4HBIN ,4HA4 W,4HWB / - DATA cn12/'PROPERTY OF ','K. HLYWIAK ','BIN A4 WWB '/ - DATA ITITL1/4H / - DATA ITITL3/4H HR,4H PRO,4HG VA,4HLID / - DATA I00Z/4H00Z / - DATA I06Z/4H06Z / - DATA I12Z/4H12Z / - DATA I18Z/4H18Z / - DATA IMONT/4HJAN ,4HFEB ,4HMAR ,4HAPR , - X 4HMAY ,4HJUN ,4HJUL ,4HAUG , - X 4HSEP ,4HOCT ,4HNOV ,4HDEC / - DATA J00Z/4H 00Z/ - DATA J12Z/4H 12Z/ - DATA ITITL4/4HBASE,4HD ON/ - DATA IDDC/4HNWS-,4HNCEP,4HWASH,4HINGT,4HON. / - DATA IDID/600/ - DATA IGIANT/15/ - DATA ISMALL/10/ - DATA IVLD/4H VAL,4HID / - DATA INCR/25/ -C DATA IONE/1/,LU/8/ - DATA IONE/1/ - DATA LU/18/ - DATA IBLANK/4H / -C IA IS DEFINITION , JA IS THE NUMBER OF CUTS - DATA IA/8/,JA/9/ - DATA KVAR/2/,IMAPER/0/ -C -C.......ADDED ON 5 JUNE 1986........... - DATA IDFAX/4H B/ - DATA IFFAX/4H F/ - DATA IVFAX/4H V/ - DATA IMASK3/X'FF000000'/ - DATA MAPT7/X'E5000000'/ -C - EQUIVALENCE (IFULL,IHAVL(1)) - EQUIVALENCE(T1,IL(15)) - EQUIVALENCE(FLD1(1,1),BUFF(1)) - EQUIVALENCE(FLD2(1,1),XTRA(1)) - EQUIVALENCE(IMESS2,MESS2(1)) - EQUIVALENCE(IMESS3,MESS3(1)) - EQUIVALENCE(KJFID,JFID(1)) - integer kvv(2) -C -C SET FLAG FOR POLAR MAP - character*3 cst6,cst68 - CALL W3TAGB('GRAPH_SIXBITB',2000,0045,0093,'NP12') - IEXIT=0 -ckumar - NRECFAX = 0 - IFAXOUT = 81 -ckumar -c OPEN THE OUT PUT FAX FILE. - - OPEN (IFAXOUT, ACCESS='DIRECT', RECL=1440 ) -c -ckumar - -c CODE ADDED TO CONVERT EBCDIC STATION ID SPECIFIED -C IN HEX DATA STATEMENTS, TO ASCII - do 7 k=1,14 - id=(K-1)*4 +1 - cjpp56(id:id+3)=cjpp(1,k) -c print 1777,cjpp(1,k),cjpp(2,k),cjpp56 -1777 format(' DISPLCODE ',2a8,' nx ',a56) -7 continue -c convert labstn -c do 10,k=2,145 -c cst68=clabss(2,k)(6:8) -c we don't need conversion on IBM machines. -c juh=ibm2cray(6,3,cst68,0,junc,1,cst6) -c 197 format(' LABSTN ',a3) -c clabss(2,k)(6:8)=cst6 -c 10 continue -C -c load filenames for map backgrounds - cfiles(1)='mapback.pur' - cnames(1)='MAPBACK ' - do 2,k=2,100 - write(cnames(k),1019)k - write(cfiles(k),1039)k - 1019 format('image',i3.3) - 1039 format('image',i3.3,'.pur') -c 1039 format('./image',i3.3,'.pur') - 2 continue - LPOLAR=.TRUE. -C -C INITIALIZE TAPE -C - REWIND NU -C CALL ERRMSG(9) - T1=60.0 -C??? CALL CONSOL(MESS1) -Corig PRINT(MESS1) - WRITE(6,3482) - 3482 FORMAT(1X,'BEFORE RNCNTL') - CALL RNCNTL(NMAPS,IDATC,IOPN,ISWTCH,KRUN1,ITOU1,ICYC1, - 1 INOPN1,INOPN2,INOPNA,INOPNB) - WRITE(6,3483) - 3483 FORMAT(1X,'AFTER RNCNTL') - IF(ISWTCH.EQ.0)GOTO 105 -C -C FALL THRU-SEARCH THROUGH PEPFAXA SCHEDULE FOR DESIRED -C RUN CARD ("1" CARD). -C - 2000 READ(LU,2005,ERR=2055,END=2060)ICARD3,IIRUN1,IIRUN2,IIJOB1, - 1IIJOB2,IICYC,NMAPS,KCODE1,KCODE2 - 2005 FORMAT(I1,2(A4,A1),A4,I5,3X,A4,A1) - IF(ICARD3.EQ.IONE)GOTO 2020 -Corig PRINT 2010,LU -C WRITE(6,2010)LU -C2010 FORMAT('0BAD RUN CARD FORMAT ON UNIT',I2) - CALL W3TAGE('GRAPH_SIXBITB') - STOP 2012 -C -C OTHERWISE, RUN CARD FORMAT FOUND AND OK. -C - 2020 IF(INOPNA.EQ.IIJOB1.AND.INOPNB.EQ.IIJOB2)GOTO 2090 -C -C FALL THRU-READ THROUGH UNWANTED PART OF SCHEDULE. -C -c*** - DO 2050 I=1,NMAPS - READ(LU,2030)NSLOTS - 2030 FORMAT(68X,I4) - DO 2050 J=1,NSLOTS - READ(LU,2040)I1 - 2040 FORMAT(A1) - 2050 CONTINUE -c*** - GOTO 2000 -C2055 PRINT 2057,LU - 2055 CONTINUE -C WRITE(6,2057) LU - 2057 FORMAT('0ERROR READING FILE',I2,'...PROGRAM STOPS') - CALL W3TAGE('GRAPH_SIXBITB') - STOP 2058 -C2060 PRINT 2062,LU - 2060 CONTINUE -C WRITE(6,2062)LU - 2062 FORMAT('0END OF FILE ON UNIT',I2,' WITHOUT FINDING OPERATIONAL JOB - 1TYPE') - CALL W3TAGE('GRAPH_SIXBITB') - STOP 2065 -C2090 PRINT 2092,LU,IIJOB1,IIJOB2 - 2090 CONTINUE - WRITE(6,2092) LU,IIJOB1,IIJOB2 - 2092 FORMAT('0OPERATIONAL JOB FORMAT FOUND ON UNIT',I2,'---',A4,A1) -C -C * * * * * * * * * * BASIC MAP LOOP* * * * * * * * * * * * * * * * -C - 105 CONTINUE -c -c*** - DO 1306 IMP=1,NMAPS - cl(1)=cnames(IMP) -ckumar -ckumar Reading the map background - Unit number is changed to -ckumar 12 from 9 -ckumar open(12,form='unformatted',file=cfiles(imp)) - open(12,form='unformatted',access='direct',recl=80, - 1 file=cfiles(imp)) -c*** - read(12,rec=1) chead - print*,'chead',chead - read(chead,101)nscan,ipixel - 101 format(36x,i4,6x,i2) - ipixel=ipixel*64 - il(6)=nscan - il(5)=ipixel+64 - print *,' MAP RESOLUTION WILL BE ',il(5),il(6) - il(9)=il(5) - il(10)=il(6) -c new VFULL cut modification 2/24/97 - iarea(2,2)=nscan -c end new VFULL cut mod - print *,' MAP RESOLUTION WILL BE ',il(5),il(6),' cut', iarea(2,1) -ckumar - close (12) -ckumar -C -C ZERO ISCHED ARRAY -C - DO 1300 I=1,8 - DO 1300 J=1,60 - ISCHED(I,J)=0 - 1300 CONTINUE -c*** -Corig PRINT 1302 - WRITE(6,1302) - 1302 FORMAT('0ISCHED ARRAY HAS BEEN INITIALIZED FOR NEXT MAP') -C INITIALIZE PUTLAB ARGUMENTS -C - PUTHGT=1.0 - PUTANG=0.0 - IPRPUT=0 - ITAPUT=0 -C -C INITIALIZE FOR ZPLOT -C - YDIS=0.0 - XZPLOT=1.0 - YZPLOT=1.0 - IORITY=2 -C -C INITIALIZE LABEL ARRAY -C - REWIND LBLTAP -C -C SETUP FOR REGULAR CHARACTERS -C - CALL ZPLOT(0.0,0.0,-3) -C -C -C INSERT ICOA STATIONS IN LABEL ARRAY -C - M2=LABSTN(1,1)+1 -ckumar - print*,'M2 in Main = ',M2 -c -c*** - DO 107 IZ=2,M2 - LABIX=LABIX+1 - LABEL(1,LABIX)=LABSTN(1,IZ) - LABEL(2,LABIX)=LABSTN(2,IZ) - 107 CONTINUE -c -c*** -C -C INSERT NAME ON MAP -C - IF(ISWTCH.EQ.1)GOTO 108 - IXL=1150 - IXL1=180 - JXL=250 - HT=11.0 - NCHAR=12 - IHAVL(1)=0 - IHAVL(2)=0 - ITAPUT=IFULL -c 3/15/96 George VandenBerghe changed INAM to CNAM characters in putlab -cj CALL PUTLAB(IXL,JXL,HT,CNAM1(1),0.0,NCHAR,0,ITAPUT) -C CALL PUTLAB(IXL1,JXL,HT,CNAM1(1),0.0,NCHAR,0,ITAPUT) -C JXL=JXL-35 -C CALL PUTLAB(IXL,JXL,HT,CNAM2(1),0.0,NCHAR,0,ITAPUT) -C CALL PUTLAB(IXL1,JXL,HT,CNAM2(1),0.0,NCHAR,0,ITAPUT) -C JXL=JXL-35 -C CALL PUTLAB(IXL,JXL,HT,CNAM3(1),0.0,NCHAR,0,ITAPUT) -C CALL PUTLAB(IXL1,JXL,HT,CNAM3(1),0.0,NCHAR,0,ITAPUT) -C -c 3/27/96 George V. Changed CNAM to CN12 in putlab calls -c and changed integer arg#9 in putlab to two word array - kvv(1)=0 - kvv(2)=0 - CALL PUTLAB(IXL,JXL,HT,CN12(1),0.0,NCHAR,kvv,ITAPUT) - CALL PUTLAB(IXL1,JXL,HT,CN12(1),0.0,NCHAR,kvv,ITAPUT) - JXL=JXL-35 - CALL PUTLAB(IXL,JXL,HT,CN12(2),0.0,NCHAR,kvv,ITAPUT) - CALL PUTLAB(IXL1,JXL,HT,CN12(2),0.0,NCHAR,kvv,ITAPUT) - JXL=JXL-35 - CALL PUTLAB(IXL,JXL,HT,CN12(3),0.0,NCHAR,kvv,ITAPUT) - CALL PUTLAB(IXL1,JXL,HT,CN12(3),0.0,NCHAR,kvv,ITAPUT) -C CALL MERCIN TO READ METEOROLOGICAL INFORMATION FOR THIS MAP -C - 108 CALL MERCIN(ISWTCH,NUMF,MAPON,NSLOTS,ILVLI, - 1 IFLDI,ITAUI,ICODIN,INAMIN,IOUTIN,IINFA,IINFB) -c*** - DO 100 I = 1,NUMFLD - DO 110 J = 1,NUMTAU - IF(ITAUI(I).EQ.J) ITAU(I) = MTAU(J) - 110 CONTINUE - 100 CONTINUE -c*** -c -c*** - DO 120 I = 1,NUMFLD - DO 130 J = 1,NUMLVL - IF(ILVLI(I).EQ.J) LVL(I) = MLVL(J) - 130 CONTINUE - 120 CONTINUE -c*** -c -c*** - DO 150 I = 1,NUMFLD - DO 151 J = 1,NUMFLD - IF(IFLDI(I).EQ.J) ITYPE(I) = MTYPE(J) - 151 CONTINUE - 150 CONTINUE -c*** -C READ IN TEMPERATURE FIELD -C -cc CALL GETSXX(ITAU(3),LVL(3),ITYPE(3),FLD2,IDENT,IEXIT) -C IF(IEXIT.NE.0) GO TO 350 -C -C PROCESS DATE -C - JTAU(1)=IAND(IDENT(1),MASK8) - IHOUR=IAND(IDENT(7),MASK8) - IDAY=IAND(ISHFT(IDENT(7),-8),MASK8) - IMONTH=IAND(ISHFT(IDENT(7),-16),MASK8) - IYR=ISHFT(IDENT(7),-24)+1900 -Corig PRINT 125,JTAU(1),IHOUR,IDAY,IMONTH,IYR - WRITE(6,125) JTAU(1),IHOUR,IDAY,IMONTH,IYR - 125 FORMAT(1H0,' TAU INCREMENTS= ',I3,' BASED ON IHOUR= ',I3, - X ' IDAY= ',I3,' IMONTH= ',I3,' IYR= ',I4) -C -C UPDATE -C -c CALL UPDATR -Corig PRINT 126,IUHR,ITAG,MONAT,JAHR - WRITE(6,126) IUHR,ITAG,MONAT,JAHR - 126 FORMAT(1H0,' UPDATE-IUHR= ',I3,' ITAG= ',I3, - X ' MONAT= ',I3,' JAHR= ',I4) -C - GO TO 400 -C -C ERROR GETTING TEMPERATURES -C - 350 CONTINUE -Corig PRINT 360,IEXIT - WRITE(6,360) IEXIT - 360 FORMAT(1H0,' ERROR GETTING TEMPERATURE-IEXIT= ',I3) - GOTO 670 -C -C START PROCESSING DATA -C - 400 CONTINUE -Corig PRINT 410 - WRITE(6,410) - 410 FORMAT(1H0,' DATA PROCESSING STARTED') -C -C PLOT TEMPERATURES -C -c*** - CALL DOFRST(LVL(1),IDENT) -c*** - print 1934,'AF DOFRS' - print 1934,(KTITLE(k),k=1,14) -1934 format('KTTL ',14a8) -C -C WHICH SET UP FOR TITLES AND PUT OUT 'GULF' LABELS -cc CALL PLTTLL(FLD2,KTTCTL,LVL(1)) -Corig PRINT 420 - WRITE(6,420) - 420 FORMAT(1H0,' PLOT OF TEMPERATURE COMPLETED ') -C -C READ IN U FIELD -C -cc CALL GETSXX(ITAU(1),LVL(1),ITYPE(1),FLD1,IDENT,IEXIT) - IF(IEXIT.NE.0) GO TO 600 -C -C READ IN V FIELD -C -cc CALL GETSXX(ITAU(2),LVL(2),ITYPE(2),FLD2,IDENT,IEXIT) - IF(IEXIT.NE.0) GO TO 650 - GO TO 700 -C -C ERROR GETTING U -C - 600 CONTINUE -Corig PRINT 610,IEXIT - WRITE(6,610) IEXIT - 610 FORMAT(1H0,' ERROR GETTING U-IEXIT= ',I3) - GOTO 670 -C -C ERROR GETTING V -C - 650 CONTINUE -Corig PRINT 660,IEXIT - WRITE(6,660) IEXIT - 660 FORMAT(1H0,' ERROR GETTING V-IEXIT= ',I3) -C670 PRINT 675,IMP - 670 CONTINUE - WRITE(6,675) IMP - 675 FORMAT('0SKIP MAP ',I2) -c -c*** - DO 690 IYUK=1,NSLOTS - IF(ISWTCH.EQ.1) GO TO 685 -Cori READ 680, ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - READ (LU,680) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 680 FORMAT(A1,3(A4,A1),4I5,2A4,A2,4A4,A2,4A4) - GO TO 690 - 685 READ (LU,680) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB - 1 ,IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 690 CONTINUE -c*** - WRITE(IMESS2(25:32),FMT='(2HAP,I4,2H W)')MAPON -Corig CALL CONSOL(MESS2) -C PRINT(MESS2) - GOTO 1306 -C -C PROCESS U,V S -C - 700 CONTINUE - IMAPER=IMAPER+1 - IOPTN=1 -c CALL PLTWLL(FLD1,FLD2,KWNCTL,KTTCTL,IOPTN) -Corig PRINT 750 - WRITE(6,750) - 750 FORMAT(1H0,' U AND V PROCESSED ') - INCR1=0 - NNN=0 - JX2=7375 -C -C - - - - - - - - - - -SLOT LOOP- - - - - - - - - - - - - - - - - - -C -c****** - DO 900 ISLT=1,NSLOTS -c*** - CALL SLTCRD(ISWTCH,ISLOTA,ISLOTB,IPANA,IPANB,IRLAB,IREM3A, - 1 IREM3B,IREM3C,IREM4A,IREM4B,IAREA3,ISUB,IFLAB,INSET,IREM1A, - 1 IREM1B) - IF(ISLT.EQ.1) ISLOT1=ISLOTA - IF(ISLT.EQ.1) ISUB1=ISUB - print 1934,'b avttl' - print 1934,(KTITLE(k),k=1,14) -c CALL AVTTLS(ISLOTA,ISLOTB,IPANA,INSET,IRLAB,JX2,INCR) -ckumar - idot=1030 - jdot=30 - kang=0 - kflag=7 - call duck (idot,jdot,kang,kflag) -ckumar - print 1934,' a avt' - print 1934,(KTITLE(k),k=1,14) - print 1934,'DUMMY ' - print 1934,'DUMMY ' -C fILL ISCHED ARRAY WITH INFORMATION FROM IAREA ARRAY - 895 CALL FAXSHD(IAREA,IA,JA,IAREA3,INCR1,INCR,JLAST,NNN) - IF(IAREA3.EQ.KVAR)GOTO 900 - INCR1=INCR1+INCR - IF(JX2.EQ.JLAST)GOTO 900 -Corig PRINT 897,JX2,JLAST - WRITE(6,897) JX2,JLAST - 897 FORMAT(' JX2=',I5,' JLAST=',I5) - 900 CONTINUE -C -C SETUP FOR 360 TYPEWRITER MESSAGE -C - IVAR=IAND(ISLOT1,IMASK3) - IF(NSLOTS.GT.1) GO TO 135 -C........SO NSLOTS=1, EITHER FAX OR VARIAN - IF(IVAR.NE.MAPT7) JFID(1)=IFFAX - IF(IVAR.EQ.MAPT7) JFID(1)=IVFAX - GO TO 145 - 135 IF(IVAR.NE.MAPT7) GO TO 140 - IF(ISUB1.EQ.99) GO TO 140 -C........TO ARRIVE HERE, IVAR=V AND ISUB1.NE.99, BOTH FAX AND VARIAN - JFID(1)=IDFAX - GO TO 145 - 140 CONTINUE - JFID(1)=IFFAX - GO TO 145 - 145 CONTINUE -C - WRITE(KJFID(5:28),FMT='(I4,1X,I2,2HZ ,I2,1H/,I2,1X,I2, - A2HHR,I4,1HM)') ISUB,IUHR,MONAT,ITAG,JTAU(1),LVL(1) -C -c print 10177,(cjfid(k),k=1,56) -10177 format(' CDC DISPLCODE ARG ',56a1) -c CALL ASC2ISP(56,KJFID,ciFID(1),IERR) -c CALL ASC2ISP(56,JFID(1),IFID(1),IERR) -cc cifid56=kjfid -c GWV 2/18/97 additional ipak code (single line) -ckumar call ipak(cifid56,isub) - call ipak(cifid24,isub) - ierr=0 - IF(IERR.EQ.0) GO TO 160 -Corig PRINT 155 - WRITE(6,155) - 155 FORMAT(1H0,' ERROR FORMAT FROM ASC2ISP ') - 160 CONTINUE -Corig PRINT 165,(JFID(I),I=1,14) - WRITE(6,165) (JFID(I),I=1,14) - 165 FORMAT(1H0,' 360 TYPEWRITER COMMENT= ',14A4) -C??? CALL PDUMP(ISCHED(1,1),ISCHED(8,50),0) -C -C OUTPUT MAP -C -C??? CALL PDUMP(LABEL(1,1),LABEL(2,LABIX),0) - ICNT=0 - IRTRY=2 - ICK(1)=-1 - ICK(3)=0 - LCKPT=100 -Corig PRINT 1210,LCKPT - WRITE(6,1210) LCKPT - 1210 FORMAT(1H ,10X,'ARRIVED AT CHECKPOINT=',I4) - CALL ZPLOT(0.0,0.0,999) - LABEL(1,1)=-1 -C -C??????? 1201 CALL CNTR(IL,LABEL,ICK,IFID,ISCHED,INDEX,ICNT) - rewind (55) -c print 9266,IMAGSIZ_WRDS,(il(kkk),kkk=1,15) - 9266 format(' TEMP SIZE',i14) - print 1939,isched - print 1939 - 1939 format(50(/,'isched ',8(Z16,1x))) -c -c*** - nflds=0 -c - call CNTR(ireg_cnt,IMAGE,IMAGSIZ_WRDS, - 1 il,LABEL,ichk,ifid,isched,d11, - 1 nflds, - 1 d12,d13,d14,d15, - 1 d22,d23,d24,d25, - 1 d32,d33,d34,d35, - 1 d42,d43,d44,d45) -c*** -C - 1201 CONTINUE - IF(ICK(1).EQ.-1) GO TO 1205 - IF(ICK(1).EQ.0) GO TO 1202 - IF(ICK(1).EQ.1) GO TO 706 - STOP 1206 - 1202 IRTRY=IRTRY-1 - IF(IRTRY.EQ.0) GO TO 707 - GO TO 1201 - 1205 CONTINUE - LCKPT=101 -Corig PRINT 1210,LCKPT - WRITE(6,1210) LCKPT - 1306 CONTINUE - print *, 'CALLING ENDMAP' - CALL ENDMAP(IFAXOUT,NRECFAX) - CLOSE (IFAXOUT) - LABEL(1,1) = SFL - ENDFILE NU -C -C CLOSE S24 FILE -C - CALL GETSXX(999,500,ITYPE,FLD2,IDENT,IEXIT) -C -C INTERFACE LOGIC -C -C - WRITE(6,770) IMAPER,NMAPS - 770 FORMAT(5X,I2,' OF ',I2,' MAPS COMPLETED - THANK YOU') - WRITE(IMESS3(9:20),FMT='(3H** ,I2,4H OF ,I2,1H )')IMAPER,NMAPS -C??? CALL CONSOL(MESS3) -Corig PRINT(MESS3) - GO TO 780 -C706 PRINT 761 - 706 CONTINUE - WRITE(6,761) - 761 FORMAT(1H0,'BAD BACKGROUND INPUT DISK') - ISTOP = 3050 - GO TO 9999 -C707 PRINT 765 - 707 CONTINUE - WRITE(6,765) - 765 FORMAT(1H0,'BAD OUTPUT TAPE') - ISTOP = 3060 - GO TO 9999 - 780 CONTINUE - IF(IMAPER.NE.NMAPS) ISTOP = 1 -9999 CONTINUE - CALL W3TAGE('GRAPH_SIXBITB') -C CALL W3AS02(ISTOP) -Corig WRITE(NSTOP,FMT='(I4)') ISTOP - STOP - END - diff --git a/util/sorc/sixbitb.fd/makefile b/util/sorc/sixbitb.fd/makefile deleted file mode 100755 index e223bd5b1f..0000000000 --- a/util/sorc/sixbitb.fd/makefile +++ /dev/null @@ -1,56 +0,0 @@ -# -### Author: Krishna Kumar 01/21/2000 -# -### -### CAVEATS: getbgnd.fake.f is the same version as getbgnd.f from the -### /nwprod/gphlib90/gphcntr.source. The getbgnd.f in the -### graphics library compiled with the -qnosave option -### (mandatory for threaded versions) had problems -### while linking with this code. The program ran successfully -### when linked without -qnosave option. The reasons are -### still to be investigated !!! -### -SHELL=/bin/sh - -SRCS= ipak.f cntr.fake.f putlab.f AVTTLS.f BLOCKDATA001.f DOFRST.f \ - FAXSHD.f GETSXX.f GULFTL.f MERCIN.f NPOLUV.f PLTTLL.f \ - PLTWLL.f RNCNTL.f SLTCRD.f WNDIRT.f WNDRNH.f \ - main.f lputlab.f getbgnd.fake.f - -OBJS= ipak.o cntr.fake.o putlab.o AVTTLS.o BLOCKDATA001.o DOFRST.o \ - FAXSHD.o GETSXX.o GULFTL.o MERCIN.o NPOLUV.o PLTTLL.o \ - PLTWLL.o RNCNTL.o SLTCRD.o WNDIRT.o WNDRNH.o \ - main.o lputlab.o getbgnd.fake.o - -FC = ifort - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -CMD = sixbitb - -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -assume byterecl -convert big_endian \ - -assume noold_ldout_format - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -# $(CMD).prof: $(OBJS) -# $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) -# - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/sixbitb.fd/putlab.f b/util/sorc/sixbitb.fd/putlab.f deleted file mode 100755 index 21004ed211..0000000000 --- a/util/sorc/sixbitb.fd/putlab.f +++ /dev/null @@ -1,3 +0,0 @@ - subroutine echbar(a) - return - end diff --git a/util/sorc/sixbitb2.fd/AVTTLS.f b/util/sorc/sixbitb2.fd/AVTTLS.f deleted file mode 100755 index ce9b41e591..0000000000 --- a/util/sorc/sixbitb2.fd/AVTTLS.f +++ /dev/null @@ -1,237 +0,0 @@ - SUBROUTINE AVTTLS(ISLOTA,ISLOTB,IPANA,INSET,IRLAB,JX2,INCR) -C $$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: AVTTLS INPUT FIELD READER -C PRGMMR: KUMAR ORG: W/NP12 DATE: 1999-11-08 -C -C ABSTRACT: WRITES VARIAN TITLE, FRON AND REAR STRIP (FAX) TITLES -C FOR 1 AND 2 PANEL CHARTS...USES BASIC TITLE INFO GENERATED BY -C PREVIOUS CALL TO DOFRST...DESIGNED FOR INTERNATIONAL AVIATION -C PACKAGE PROGRAMS AVPOLAR AND AVMERC ONLY...MUST BE CALLED IN -C SLOT LOOP. -C -C PROGRAM HISTORY LOG: -C 84-08-?? KEVIN HLYWIAK -C 85-12-?? DOUG MILLER, MODIFIED ROUTINE TO ADD DUCK TO THE FAX AND -C VARIAN CHARTS. -C 91-02-21 LILLY MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77. ALSO, -C ADD THE ISCHEDS TO DO THE ATLANTIC AND PACIFIC -C FAX CUTS. -C 1999-11-08 CONVERTED FROM CRAY TO IBM SP/6000 -C -C USAGE: CALL AVTTLS(ISLOTA,ISLOTB,IPANA,INSET,IRLAB,JX2,INCR) -C INPUT ARGUMENT LIST: -C ISLOTA - FIRST 4 CHARACTER OF FAX/VARIAN SLOT NUMBER. -C ISLOTB - THE 5TH CHARACTER OF FAX/VARIAN SLOT NUMBER. -C IPANA - FIRST 4 CHARACTER OF PANEL PART OR REAL INSET PART -C INSET - THE INSET NUMBER. -C IRLAB - REAR LABEL INSET NUMBER. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CF77 -C MACHINE: CRAY4 -C -C$$$ -C -C KEVIN HLYWIAK AUG 1984 -C DOUG MILLER DEC 1985-DUCK ADDED TO FAX AND VARIAN CHARTS -C WRITES VARIAN TITLE, FRONT AND REAR STRIP (FAX) TITLES FOR 1 AND 2 -C PANEL CHARTS...USES BASIC TITLE INFO GENERATED BY PREVIOUS CALL TO -C DOFRST...DESIGNED FOR INTERNATIONAL AVIATION PACKAGE PROGRAMS -C AVPOLAR AND AVMERC ONLY...MUST BE CALLED IN SLOT LOOP. -c -C 3/15/96 added character*8 equivalences to integer variables -c to pass character arguments to putlab -C - COMMON/TITLES/KTITLE(28),LPOLAR,LOWLEV - character*8 ctitle(28) - equivalence (ctitle,ktitle) -C - INTEGER K2TITL(16) - character*8 C2TITL(16) -C - CHARACTER*64 B2TITL - CHARACTER*112 BTITLE - CHARACTER*1 NEWDAT(12) -C - INTEGER IBLANK - character*8 cblank - equivalence (cblank,iblank) - dimension kvv(2) - DATA IBLANK/4H / - INTEGER K2XTRA(2) - character*8 c2xtra(2) - equivalence (c2xtra,k2xtra) - DATA K2XTRA /4HFL ,4H VT / - INTEGER NEWLIN(7) - character*8 CEWLIN(7) - equivalence (CEWLIN,newlin) - character*28 cew28 - DATA NEWLIN /4HUNSI,4HGNED,4H TEM,4HPS A, - # 4HRE N,4HEGAT,4HIVE / - integer*8 mapv,mask8,ivar !modified by kumar -C - LOGICAL LPOLAR - LOGICAL LOWLEV -C - DATA MAPV/X'5600000000000000'/ - DATA MASK8/X'FF00000000000000'/ - DATA BIG/15.3846/,SMALL/10.0/ -C - equivalence(b2titl(37:37),newdat(1)) - EQUIVALENCE(K2TITL(10),NEWDAT(1)) - EQUIVALENCE(B2TITL,c2TITL(1)(1:1)) - EQUIVALENCE(BTITLE,KTITLE(1)) -C - IVAR=IAND(ISLOTA,MASK8) - print 9301,ivar,islota,mask8,mapv - 9301 format('LPUT ',4z20,' 1=iand(2,3)') - WRITE(BTITLE(1:5),FMT='(A4,A1)')ISLOTA,ISLOTB -C TEST IF VARIAN MAP...IF NOT, SKIP THIS SECTION. - IF(IVAR.NE.MAPV)GOTO 300 -Corig PRINT 200,(KTITLE(I),I=1,28) - WRITE(6,200) (KTITLE(I),I=1,28) - 200 FORMAT('0VARIAN TITLE=',28A4) - IXD=150 - IF(LPOLAR)IXD=700 - NCHAR=112 - IF(LOWLEV)NCHAR=76 - CALL lPUTLAB(IXD,20,11.0,BTITLE,0.0,NCHAR,0,0) - IDUCK=1860 - IF(LPOLAR)IDUCK=2410 - print 1954,iduck,20 - 1954 format(' CALLING DUCK FROM VARIAN ',2i9) - CALL DUCK(IDUCK,20,0,10) - RETURN -C -C COMES HERE IF NOT A VARIAN MAP -C - 300 IF(IPANA.EQ.IBLANK) GOTO 400 -Corig PRINT 350 - WRITE(6,350) - 350 FORMAT('0THIS IS AN INSET MAP---TITLE(S) ALREADY GENERATED') - RETURN - 400 LABELS=1 - IF(IRLAB.GT.0)LABELS=2 - IF(INSET.GT.0)GOTO 1000 -Corig PRINT 500,(KTITLE(I),I=1,28) - WRITE(6,500) (KTITLE(I),I=1,28) - 500 FORMAT('01-PANEL STRIP TITLE=',26A4,/,21X,2A4) - DO 900 I=1,LABELS - JX2=JX2+INCR - NCHAR=52 - IF(LOWLEV)NCHAR=16 -cc CALL lPUTLAB(700,20,11.0,BTITLE,0.0,112,0,0) - print 1974 - print 1974,btitle(1:60),btitle(61:112) -c 3/15/96 George Vandenberghe. Changed ktitle to ctitle in putlab callS - CALL lPUTLAB(50,JX2,11.0,BTITLE(1:60),0.0,60,0,0) - CALL lPUTLAB(950,JX2,1.0,BTITLE(61:112),0.0,NCHAR,0,0) - 1079 format(' AVTT PUTLAB above duck ',a120) - IXL=950+((NCHAR+1)*SMALL) - print 1964,ixl,jx2 - 1964 format(' CALLING DUCK FROM SINGLE ',2i9) - CALL DUCK(IXL,JX2,0,10) -Corig PRINT 850,JX2 - WRITE(6,850) JX2 - 850 FORMAT(' 1-PANEL STRIP TITLE WRITTEN AT J=',I5) - 900 CONTINUE - RETURN -C -C COMES HERE IF 2-PANEL FAX MAP -C - 1000 DO 1100 I=1,5 -c K2TITL(I)=KTITLE(I) - 1100 CONTINUE - b2titl(1:20)=btitle(1:20) - WRITE(B2TITL(21:28),FMT='(8HG VALID )') -c DO 1300 I=8,16 -c K2TITL(I)=KTITLE(I+3) -c 1300 CONTINUE - b2titl(29:64)=btitle(41:76) -Corig PRINT 1350,(K2TITL(I),I=1,16),(K2TITL(I),I=1,16) - WRITE(6,1350) (K2TITL(I),I=1,16),(K2TITL(I),I=1,16) - 1350 FORMAT('02-PANEL STRIP TITLE=',16A4,4X,9A4,/,21X,7A4) - DO 1400 IJ=8,10 - NEWDAT(IJ)=NEWDAT(IJ+2) - 1400 CONTINUE -Corig PRINT 1410 - WRITE(6,1410) - 1410 FORMAT(2X,'***** NOTE: 2-PANEL STRIP TITLE HAS BEEN CHANGED', - 1 ' SO ','VALID',' IS NOW ','VT',' AND THE YEAR ','1985', - 2 ' NOW',' IS ','85','.',/,2X,'(CHANGED DECEMBER 4, 1985)') -C -C WRITE THE 2-PANEL STRIP TITLE(S) -C - DO 1500 I=1,LABELS - print 1934,B2TITL,BTITLE(1:78) - IXL=20 - JX2=JX2+INCR - DO 1450 ISPAN=1,2 - print 1974,btitle(1:60),btitle(61:112) - 1974 format('kttl ',a60,a52) - NCHAR=52 -c 3/16/95 GWV Replaced K2TITL with c2titl in call below - IF(I.NE.1.OR.ISPAN.NE.2) - #CALL lPUTLAB(IXL,JX2,1.0,C2TITL(1)(1:5),0.0,5,0, - #0) - iXL=IXL+5*SMALL - CALL lPUTLAB(IXL,JX2,11.0,C2XTRA(1)(1:2),0.0,2,0,0) - IXL=IXL+2*BIG - CALL lPUTLAB(IXL,JX2,11.0,B2TITL(9:21),0.0,13,0,0) - - IXL=IXL+13*BIG - CALL lPUTLAB(IXL,JX2,1.0,C2XTRA(2)(1:4),0.0,4,0,0) - IXL=IXL+4*SMALL - CALL lPUTLAB(IXL,JX2,11.0,B2TITL(29:45),0.0,17,0,0) - IXL=IXL+17*BIG - CALL lPUTLAB(IXL,JX2,1.0,CBLANK,0.0,1,0,0) - IXL=IXL+1*SMALL - IF(ISPAN .EQ. 1)GO TO 1430 - CALL lPUTLAB(IXL,JX2,1.0,B2TITL(49:64),0.0,16,0,0) - 1934 format(' B2TITL is ',a64,/,'BTITLE IS ',a78) -c CALL lPUTLAB(IXL,JX2,1.0,C2TITL(13),0.0,16,0,0) - - GO TO 1450 - 1099 format(' below panel strip title ',i9) - 1430 CONTINUE - IF(I .EQ. 1)GO TO 1440 -c IF(.NOT.LOWLEV)CALL lPUTLAB(IXL,JX2,1.0,CEWLIN,0.0,28,0,0) -c pack 4 characters of each of 7 CEWLIN words into -c character string - write(cew28,1992)(CEWLIN(K),K=1,7) - print 1934,B2TITL,BTITLE(1:78) - 1992 format(7a4) - IF(.NOT.LOWLEV)CALL lPUTLAB(IXL,JX2,1.0,CEW28,0.0,28,0,0) - IF(LOWLEV)CALL lPUTLAB(IXL,JX2,1.0,B2TITL(49:64),0.0,16,0,0) -c IF(LOWLEV)CALL lPUTLAB(IXL,JX2,1.0,C2TITL(13),0.0,16,0,0) - IXL=894 - GO TO 1450 - 1440 CONTINUE - IXL=IXL+3*SMALL - print 1944,ixl,jx2 - 1944 format(' CALLING DUCK from dbl ',2i9) - CALL DUCK(IXL,JX2,0,10) - IXL=894 - 1450 CONTINUE -Corig PRINT 1470,JX2 - WRITE(6,1470) JX2 - 1470 FORMAT(' 2-PANEL STRIP TITLE WRITTEN AT J=',I5) - 1500 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb2.fd/BLOCKDATA001.f b/util/sorc/sixbitb2.fd/BLOCKDATA001.f deleted file mode 100755 index 4367de503d..0000000000 --- a/util/sorc/sixbitb2.fd/BLOCKDATA001.f +++ /dev/null @@ -1,301 +0,0 @@ - BLOCK DATA -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: POLST2 WAFS LOCATION IDENTIFIER TABLE -C PRGMMR: LILLY ORG: W/NP12 DATE: 95-12-06 -C -C ABSTRACT: CONTAINS A LOOKUP TABLE OF 4-LETTER WORLD AREA FORECAST -C SYSTEM (WAFS) LOCATION IDENTIFIERS AND THEIR I AND J POLAR -C STEREOGRAPHIC PIXEL LOCATIONS. THE PROGRAM AVPOLARV USES THE -C TABLE TO PLOT IDENTIFIERS ON THE MAPS IT GENERATES. -C -C PROGRAM HISTORY LOG: -C 84-07-20 KEVIN HLYWIAK -C 88-03-16 BOB HOLLERN UPDATED TABLE. SOME OF THE IDS HAVE -C NEW 4-LETTER CODE LETTERS. -C 95-12-06 LILLY CONVERT FROM ASSEMBLE TO CF77. -C -C USAGE: POLST2 -C -C OUTPUT ARGUMENT LIST: -C (LABSTN) - THIS TABLE IS PASSED TO THE FORTRAN PROGRAM -C AVPOLAR THROUGH THE ARRAY LABSTN WHICH IS IN -C THE LABELED COMMON BLOCK POLST2 -C -C ATTRIBUTES: -C LANGUAGE: CF77 -C MACHINE: CRAY4 -C -C$$$ -C// TITLE 'COMMON /POLST2/LABSTN' - COMMON /POLST2/LABSTN(2,145) - common/counts/icount - data icount/0/ -C//POLST2 CSECT -C -C FIRST WORD HAS COUNT OF LABEL-ARRAY FORMATTED DOUBLE WORDS -C SECOND WORD IS FILLER TO KEEP DOUBLE WORD BOUNDARIES -C DC 1F'001',CL4'POLS' -C DC X'091D0618',X'015D5B00' )$ -C DC X'09350609',X'01C2C7E2',X'09350627',X'01C65B00' BGSF$ -C DC X'09E706C9',X'035DC2C9',X'0A2306C9',X'03D9D25B' )BIRK$ -C DC X'06BF068C',X'015DC3E8',X'06BF06AA',X'01D8E75B' )CYQX$ -C DC X'07B90382',X'015DC3E8',X'07B903A0',X'01E5D95B' )CYVR$ -C DC X'06970495',X'015D5B00' )$ -C DC X'06790486',X'01C3E8E6',X'067904A4',X'01C75B00' CYWG$ -C DC X'056F0564',X'015DC3E8',X'056F0582',X'01E8E95B' )CYYZ$ -C DC X'0AD30904',X'015D5B00' )$ -C DC X'0AB308F8',X'03C4C1C1',X'0AEF08F8',X'03C75B00' DAAG$ -C DC X'0A9B0A34',X'03C4C1C1',X'0AD70A34',X'03E35D5B' DAAT)$ -C DC X'0B8F0808',X'015D5B00' )$ -C DC X'0B6F0813',X'03C5C4C4',X'0BAB0813',X'03C65B00' EDDF$ -C DC X'0CB1073E',X'015D5B00' )$ -C DC X'0C910732',X'03C5C6C8',X'0CCD0732',X'03D25B00' EFHK$ -C DC X'0A7107E0',X'03C5C7D3',X'0AAD07E0',X'03D35D5B' EGLL)$ -C DC X'0BE707A2',X'015D5B00' )$ -C DC X'0BC70796',X'03C5D2C3',X'0C030796',X'03C85B00' EKCH$ -C DC X'07990956',X'03C7C3D3',X'07D50956',X'03D75D5B' GCLP)$ -C DC X'06290A5C',X'03C7D6D6',X'06650A5C',X'03E85D5B' GOOY)$ -C DC X'0EC3094B',X'015D5B00' )$ -C DC X'0EA3093F',X'03C8C5C3',X'0EDF093F',X'03C15B00' HECA$ -C DC X'0C1F095A',X'035DC8D3',X'0C5B095A',X'03D3E35B' )HLLT$ -C DC X'0FF10A7C',X'035DC8E2',X'102D0A7C',X'03E2E25B' )HSSS$ -C DC X'057903EE',X'015DD2C4',X'0579040C',X'01C5D55B' )KDEN$ -C DC X'04670390',X'015D5B00' )$ -C DC X'047F0381',X'01D2C5D3',X'047F039F',X'01D75B00' KELP$ -C DC X'050305BC',X'015DD2D1',X'050305DA',X'01C6D25B' )KJFK$ -C DC X'059702CC',X'01D2D3C1',X'059702EA',X'01E75D5B' KLAX)$ -C DC X'02850559',X'015DD2D4',X'02850577',X'01C9C15B' )KMIA$ -C DC X'0361049F',X'015D5B00' )$ -C DC X'03430490',X'01D2D4E2',X'034304AE',X'01E85B00' KMSY$ -C DC X'053D04EC',X'015D5B00' )$ -C DC X'055504DD',X'01D2D6D9',X'055504FB',X'01C45B00' KORD$ -C DC X'066102CA',X'01D2E2C6',X'066102E8',X'01D65D5B' KSFO)$ -C DC X'0A1B08A7',X'015D5B00' )$ -C DC X'09FB089B',X'03D3C5D4',X'0A37089B',X'03C45B00' LEMD$ -C DC X'0AFB0814',X'015D5B00' )$ -C DC X'0ADB081F',X'03D3C6D7',X'0B17081F',X'03C75B00' LFPG$ -C DC X'0D6108D5',X'035DD3C7',X'0D9D08D5',X'03C1E35B' )LGAT$ -C DC X'0BF308A4',X'015D5B00' )$ -C DC X'0BD30898',X'03D3C9D9',X'0C0F0898',X'03C65B00' LIRF$ -C DC X'096508AF',X'015D5B00' )$ -C DC X'094508BA',X'03D3D7D7',X'098108BA',X'03E35B00' LPPT$ -C DC X'0B8D0837',X'015D5B00' )$ -C DC X'0B6D082B',X'03D3E2E9',X'0BA9082B',X'03C85B00' LSZH$ -C DC X'017706A5',X'015DE3D1',X'017706C3',X'01E2D15B' )TJSJ$ -C DC X'00CF0768',X'015DE3C2',X'00CF0786',X'01D7C25B' )TBPB$ -C DC X'01E903AE',X'015D5B00' )$ -C DC X'01CB039F',X'01D4D4D4',X'01CB03BD',X'01E75B00' MMMX$ -C DC X'03EF066F',X'015DE3E7',X'03EF068D',X'01D2C65B' )TXKF$ -C DC X'124B0756',X'015D5B00' )$ -C DC X'12630747',X'81C2D2C1',X'12630765',X'81D65B00' BKAO$ -C DC X'119D08D2',X'015D5B00' )$ -C DC X'117D08C6',X'03D6C2C2',X'11B908C6',X'03C95B00' OBBI$ -C DC X'103509B1',X'03D6C5D1',X'107109B1',X'03D55D5B' OEJN)$ -C DC X'1053082D',X'03D6C9C9',X'108F082D',X'03C95D5B' OIII)$ -C DC X'10F908C0',X'015D5B00' )$ -C DC X'10D908CB',X'03D6D2C2',X'111508CB',X'03D25B00' OKBK$ -C DC X'138907E7',X'015D5B00' )$ -C DC X'13A107D8',X'81C3D2D7',X'13A107F6',X'81D65B00' CKPO$ -C DC X'0F3508E5',X'015D5B00' )$ -C DC X'0F1508F0',X'03D6E2C4',X'0F5108F0',X'03C95B00' OSDI$ -C DC X'0A67039B',X'015D5B00' )$ -C DC X'0A4703A8',X'C1C3D5C1',X'0A8303A8',X'C1D75B00' CNAP$ -C DC X'13DF0150',X'C15DD4E4',X'141B0150',X'C1C7D75B' )MUGP$ -C DC X'099B007C',X'015D5B00' )$ -C DC X'097B0089',X'C1D3D5C8',X'09B70089',X'C1D75B00' LNHP$ -C DC X'0FCF009B',X'015D5B00' )$ -C DC X'0FAF008E',X'C1D2C1E6',X'0FEB008E',X'C1D75B00' KAWP$ -C DC X'111302F2',X'C1C1C1D1',X'114F02F2',X'C1D95D5B' AAJR)$ -C DC X'163B032F',X'81D4D4D7',X'163B034D',X'81D95D5B' MMPR)$ -C DC X'0DC1075C',X'015D5B00' )$ -C DC X'0DA10750',X'03E4E4C5',X'0DDD0750',X'03C55B00' UUEE$ -C DC X'101105E4',X'81D5D5D5',X'10110602',X'81E45D5B' NNNU)$ -C DC X'11630710',X'015D5B00' )$ -C DC X'114B0701',X'81E3E3E3',X'114B071F',X'81E45B00' TTTU$ -C DC X'14ED07BF',X'815DC2C2',X'14ED07DD',X'81C1E55B' )BBAV$ -C DC X'15350659',X'815DC3C3',X'15350677',X'81C5E55B' )CCEV$ -C DC X'13AB0710',X'815DD7C4',X'13AB072E',X'81C9E55B' )PDIV$ -C DC X'152B0403',X'81C8C8C8',X'152B0421',X'81E55D5B' HHHV)$ -C DC X'171B0528',X'81C4C2E3',X'171B0546',X'81E55D5B' DBTV)$ -C DC X'12430466',X'015D5B00' )$ -C DC X'125B0457',X'81C1C1C2',X'125B0475',X'81E95B00' AABZ$ -C DC X'135F03DD',X'015D5B00' )$ -C DC X'134703CE',X'81E2E2E2',X'134703EC',X'81E95B00' SSSZ$ -CORIG DATA LABSTN, -CORIG* / 1F'144',CL4'POLS', -CWORK DATA LABSTN /X'00000000',X'00000000', - DATA LABSTN /001,0, - * X'091D0618',X'015D5B00', -C - * X'09350609',X'01C2C7E2',X'09350627',X'01C65B00', -C BGSF - * X'09E706C9',X'035DC2C9',X'0A2306C9',X'03D9D25B', -C BIRK - * X'06BF068C',X'015DC3E8',X'06BF06AA',X'01D8E75B', -C CYQX - * X'07B90382',X'015DC3E8',X'07B903A0',X'01E5D95B', -C CYVR - * X'06970495',X'015D5B00', -C - * X'06790486',X'01C3E8E6',X'067904A4',X'01C75B00', -C CYWG - * X'056F0564',X'015DC3E8',X'056F0582',X'01E8E95B', -C CYYZ - * X'0AD30904',X'015D5B00', -C - * X'0AB308F8',X'03C4C1C1',X'0AEF08F8',X'03C75B00', -C DAAG - * X'0A9B0A34',X'03C4C1C1',X'0AD70A34',X'03E35D5B', -C DAAT - * X'0B8F0808',X'015D5B00', -C - * X'0B6F0813',X'03C5C4C4',X'0BAB0813',X'03C65B00', -C EDDF - * X'0CB1073E',X'015D5B00', -C - * X'0C910732',X'03C5C6C8',X'0CCD0732',X'03D25B00', -C EFHK - * X'0A7107E0',X'03C5C7D3',X'0AAD07E0',X'03D35D5B', -C EGLL - * X'0BE707A2',X'015D5B00', -C - * X'0BC70796',X'03C5D2C3',X'0C030796',X'03C85B00', -C EKCH - * X'07990956',X'03C7C3D3',X'07D50956',X'03D75D5B', -C GCLP - * X'06290A5C',X'03C7D6D6',X'06650A5C',X'03E85D5B', -C GOOY - * X'0EC3094B',X'015D5B00', -C - * X'0EA3093F',X'03C8C5C3',X'0EDF093F',X'03C15B00', -C HECA - * X'0C1F095A',X'035DC8D3',X'0C5B095A',X'03D3E35B', -C HLLT - * X'0FF10A7C',X'035DC8E2',X'102D0A7C',X'03E2E25B', -C HSSS - * X'057903EE',X'015DD2C4',X'0579040C',X'01C5D55B', -C KDEN - * X'04670390',X'015D5B00', -C - * X'047F0381',X'01D2C5D3',X'047F039F',X'01D75B00', -C KELP - * X'050305BC',X'015DD2D1',X'050305DA',X'01C6D25B', -C KJFK - * X'059702CC',X'01D2D3C1',X'059702EA',X'01E75D5B', -C KLAX - * X'02850559',X'015DD2D4',X'02850577',X'01C9C15B', -C KMIA - * X'0361049F',X'015D5B00', -C - * X'03430490',X'01D2D4E2',X'034304AE',X'01E85B00', -C KMSY - * X'053D04EC',X'015D5B00', -C - * X'055504DD',X'01D2D6D9',X'055504FB',X'01C45B00', -C KORD - * X'066102CA',X'01D2E2C6',X'066102E8',X'01D65D5B', -C KSFO - * X'0A1B08A7',X'015D5B00', -C - * X'09FB089B',X'03D3C5D4',X'0A37089B',X'03C45B00', -C LEMD - * X'0AFB0814',X'015D5B00', -C - * X'0ADB081F',X'03D3C6D7',X'0B17081F',X'03C75B00', -C LFPG - * X'0D6108D5',X'035DD3C7',X'0D9D08D5',X'03C1E35B', -C LGAT - * X'0BF308A4',X'015D5B00', -C - * X'0BD30898',X'03D3C9D9',X'0C0F0898',X'03C65B00', -C LIRF - * X'096508AF',X'015D5B00', -C - * X'094508BA',X'03D3D7D7',X'098108BA',X'03E35B00', -C LPPT - * X'0B8D0837',X'015D5B00', -C - * X'0B6D082B',X'03D3E2E9',X'0BA9082B',X'03C85B00', -C LSZH - * X'017706A5',X'015DE3D1',X'017706C3',X'01E2D15B', -C TJSJ - * X'00CF0768',X'015DE3C2',X'00CF0786',X'01D7C25B', -C TBPB - * X'01E903AE',X'015D5B00', -C - * X'01CB039F',X'01D4D4D4',X'01CB03BD',X'01E75B00', -C MMMX - * X'03EF066F',X'015DE3E7',X'03EF068D',X'01D2C65B', -C TXKF - * X'124B0756',X'015D5B00', -C - * X'12630747',X'81C2D2C1',X'12630765',X'81D65B00', -C BKAO - * X'119D08D2',X'015D5B00', -C - * X'117D08C6',X'03D6C2C2',X'11B908C6',X'03C95B00', -C OBBI - * X'103509B1',X'03D6C5D1',X'107109B1',X'03D55D5B', -C OEJN - * X'1053082D',X'03D6C9C9',X'108F082D',X'03C95D5B', -C OIII - * X'10F908C0',X'015D5B00', -C - * X'10D908CB',X'03D6D2C2',X'111508CB',X'03D25B00', -C OKBK - * X'138907E7',X'015D5B00', -C - * X'13A107D8',X'81C3D2D7',X'13A107F6',X'81D65B00', -C CKPO - * X'0F3508E5',X'015D5B00', -C - * X'0F1508F0',X'03D6E2C4',X'0F5108F0',X'03C95B00', -C OSDI - * X'0A67039B',X'015D5B00', -C - * X'0A4703A8',X'C1C3D5C1',X'0A8303A8',X'C1D75B00', -C CNAP - * X'13DF0150',X'C15DD4E4',X'141B0150',X'C1C7D75B', -C MUGP - * X'099B007C',X'015D5B00', -C - * X'097B0089',X'C1D3D5C8',X'09B70089',X'C1D75B00', -C LNHP - * X'0FCF009B',X'015D5B00', -C - * X'0FAF008E',X'C1D2C1E6',X'0FEB008E',X'C1D75B00', -C KAWP - * X'111302F2',X'C1C1C1D1',X'114F02F2',X'C1D95D5B', -C AAJR - * X'163B032F',X'81D4D4D7',X'163B034D',X'81D95D5B', -C MMPR - * X'0DC1075C',X'015D5B00', -C - * X'0DA10750',X'03E4E4C5',X'0DDD0750',X'03C55B00', -C UUEE - * X'101105E4',X'81D5D5D5',X'10110602',X'81E45D5B', -C NNNU - * X'11630710',X'015D5B00', -C - * X'114B0701',X'81E3E3E3',X'114B071F',X'81E45B00', -C TTTU - * X'14ED07BF',X'815DC2C2',X'14ED07DD',X'81C1E55B', -C BBAV - * X'15350659',X'815DC3C3',X'15350677',X'81C5E55B', -C CCEV - * X'13AB0710',X'815DD7C4',X'13AB072E',X'81C9E55B', -C PDIV - * X'152B0403',X'81C8C8C8',X'152B0421',X'81E55D5B', -C HHHV - * X'171B0528',X'81C4C2E3',X'171B0546',X'81E55D5B', -C DBTV - * X'12430466',X'015D5B00', -C - * X'125B0457',X'81C1C1C2',X'125B0475',X'81E95B00', -C AABZ - * X'135F03DD',X'015D5B00', -C - * X'134703CE',X'81E2E2E2',X'134703EC',X'81E95B00'/ -C SSSZ - END diff --git a/util/sorc/sixbitb2.fd/DOFRST.f b/util/sorc/sixbitb2.fd/DOFRST.f deleted file mode 100755 index eb63a4b1db..0000000000 --- a/util/sorc/sixbitb2.fd/DOFRST.f +++ /dev/null @@ -1,3 +0,0 @@ - SUBROUTINE DOFRST() - return - end diff --git a/util/sorc/sixbitb2.fd/FAXSHD.f b/util/sorc/sixbitb2.fd/FAXSHD.f deleted file mode 100755 index ec4a3339d8..0000000000 --- a/util/sorc/sixbitb2.fd/FAXSHD.f +++ /dev/null @@ -1,308 +0,0 @@ - SUBROUTINE FAXSHD(IAREA,IA,JA,INDEX,INCR1,INCR,JLAST,NNN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FAXSHD INPUT FIELD READER -C PRGMMR: KUMAR ORG: W/NP12 DATE: 1999-12-21 -C -C ABSTRACT: READS THE FAX ISCHED. -C -C PROGRAM HISTORY LOG: -C ??-??-?? UNKNOWN -C 91-02-21 STEVE LILLY, MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77. ADD THE -C ATLANTIC AND PACIFIC FAX CUTS FOR LEVELS FL450, -C FL390, FL340, FL300, FL240, FL180. -C 1999-12-21 CONVERTED FROM CRAY TO IBM SP 6000 -C -C USAGE: CALL FAXSHD(IAREA,IA,JA,INDEX,INCR1,INCR,JLAST,NNN) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON/NSCHED/ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,60) -C - INTEGER IAREA(IA,JA) - INTEGER IISUB(11) - INTEGER ISUBA(3) - INTEGER ISUBB(3) -C - INTEGER ISCHED - character*8 csched(8,60) - equivalence (csched, ISCHED) -C - CHARACTER*1 JSCHED(16,60) -C - DATA IISUB/1H ,2HP1,2HP2,2HP3,2HP4,2HP5,2HP6,2HI1,2HI2,2HI3, - 1 2HB2/ - DATA ISUBA/3HP1A,3HP3A,3HP5A/ - DATA ISUBB/2HP1,2HP3,2HP5/ - DATA IBCHK/4H / - DATA ITBSE/7400/ - DATA MAPT7/X'E5000000'/ - DATA MASK2/X'FF000000'/ -C - EQUIVALENCE (ISCHED(1,1),JSCHED(1,1)) -C -C COMMON AREA VARIABLES /NSCHED/ -C -C WHERE ISLOTA,B= FAX SLOT NUMBER (CARD IMAGE FORMAT) -C WHERE IPANA,B= FAX PANEL INDICATOR (CARD IMAGE FORMAT) -C WHERE ISUB= FAX SUBSET NO. (CARD IMAGE FORMAT) -C WHERE IFLAB= FRONT LABEL INSET NO. (CARD IMAGE FORMAT) -C WHERE INSET= REAL INSET NO. (CARD IMAGE FORMAT) -C WHERE IRLAB= REAR LABEL INSET NO. (CARD IMAGE FORMAT) -C WHERE ISCHED= FAX/VARIAN SCHEDULE CONTROL -C -C CALL SEQUENCE VARIABLES -C IAREA= ARRAY FOR ALL FAX/VARIAN AREAS -C IA,JA= I,J INDEX FOR IAREA ARRAY -C INDEX= SPECIFIC IAREA INDEX TO BE USED FOR THIS CUT -C INCR1= OUTPUT SCAN LINE J FOR SPECIFIC AREA USED -C (NEEDED FOR LABEL ARRAY LINKAGE TO CNTR) -C -C -C INTERNAL SUBROUTINE VARIABLES -C -C WHERE IFAXT=0 VARIAN MAP -C "1 WHOLE FAX MAP(NO REAL INSET) -C =2 WHOLE FAX MAP(REAL INSET(S)) -C =3 LEFT PANEL MAP -C =4 RIGHT PANEL MAP -C =5 REAL INSET -C -C WHERE INUML=0 NO STRIP LABELS -C =1 FRONT LABEL ONLY OR FRONT OR REAR LABEL -C =2 FRONT AND REAR LABEL -C INITIALIZE FOR SPECIAL MAP TYPE - NNN=NNN+1 - IPANY=0 - IVARY=0 - IVAR=IAND(ISLOTA,MASK2) - IF(IVAR.EQ.MAPT7) IVARY=1 - IF((IPANA.NE.IISUB(8)).OR.(IPANA.NE.IISUB(9)).OR. - 1 (IPANA.NE.IISUB(10)).OR.(IPANA.NE.IBCHK)) IPANY=1 - IFAXT=0 - IF(IVARY.EQ.1) IFAXT=0 - IF((IPANA.EQ.IBCHK).AND.(INSET.LT.1).AND.(IVARY.EQ.0)) IFAXT=1 - IF((IPANA.EQ.IBCHK).AND.(INSET.GE.1).AND.(IVARY.EQ.0)) IFAXT=2 - IF((IPANA.EQ.IISUB(2)).OR.(IPANA.EQ.IISUB(4)).OR. - 1 (IPANA.EQ.IISUB(6))) IFAXT=3 - IF((IPANA.EQ.IISUB(3)).OR.(IPANA.EQ.IISUB(5)).OR. - 1 (IPANA.EQ.IISUB(7)).OR.(IPANA.EQ.IISUB(11))) IFAXT=4 - IF((IPANA.EQ.IISUB(8)).OR.(IPANA.EQ.IISUB(9)).OR. - 1 (IPANA.EQ.IISUB(10))) IFAXT=5 - INUML=0 - IF((IFLAB.LT.1).AND.(IRLAB.LT.1)) INUML=0 - IF((IFLAB.GE.1).AND.(IRLAB.LT.1)) INUML=1 - IF((IFLAB.GE.1).AND.(IRLAB.GE.1)) INUML=2 - IF(INCR1.NE.0) GO TO 15 - JLAST=ITBSE-INCR - 15 CONTINUE - ISCHED(1,NNN)=ISUB - ISCHED(2,NNN)=IAREA(1,INDEX) - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=IAREA(2,INDEX) -c TROUBLE (GWV!!) -c JSCHED(9,NNN)=CHAR(IAREA(3,INDEX)) -c print 1929,iarea(3,index),iarea(4,index),iarea(5,index) - 1929 format(' DISPL',3i20) - 1939 format(' DISPL2',3Z30) -c JSCHED(10,NNN)=CHAR(IAREA(4,INDEX)) -c JSCHED(11,NNN)=CHAR(IAREA(5,INDEX)) - csched(5,nnn)(7:7)=char(IAREA(3,INDEX)) - csched(5,nnn)(8:8)=CHAR(IAREA(4,INDEX)) - if(iarea(5,index).le.255) then - csched(6,nnn)(7:7)=CHAR(IAREA(5,INDEX)) - else - csched(6,nnn)(7:7)=char(216) - endif -c print 1939,NNN,isched(6,nnn),isched(7,nnn) - IF((IFAXT.EQ.0).OR.((IFAXT.EQ.1).AND.(INUML.EQ.0))) GO TO 1426 - GO TO 1427 -C -C FOUND VARIAN MAP OR WHOLE FAX MAP(NO REAL INSET) -C AND NO STRIP LABELS -C - 1426 CONTINUE -cc JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - call byteswap(isched(5,nnn),8,1) - call byteswap(isched(6,nnn),8,1) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 - 1427 CONTINUE - GO TO (1428,1428,1432,1434,1436),IFAXT -C -C FOUND WHOLE MAP (NO REAL INSET) OR -C FOUND WHOLE MAP (REAL INSET(S)) - 1428 CONTINUE - IF((IFAXT.EQ.2).AND.(INUML.EQ.0)) GO TO 1430 -C -C PREPARE FOR FRONT STRIP LABEL -C -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=-30 - ISCHED(8,NNN)=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - NNN=NNN+1 - ISCHED(1,NNN)=IFLAB - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - IFLW2=216 - IFLW3=1 - IF(IFAXT.EQ.2) GO TO 14292 - IF(INUML.EQ.2) GO TO 1429 -C -C FOUND WHOLE MAP FRONT LABEL ONLY -C -c JSCHED(11,NNN)=CHAR(IFLW2) - csched(6,nnn)(7:7)=char(iflw2) - ISCHED(5,NNN)=0 -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 -C -C FOUND FRONT AND REAR STRIP LABEL -C - 1429 CONTINUE - -c JSCHED(9,NNN)=CHAR(IFLW3) -c JSCHED(10,NNN)=CHAR(0) -c JSCHED(11,NNN)=CHAR(IFLW2) -c JSCHED(12,NNN)=CHAR(0) - csched(5,nnn)(7:7)=CHAR(IFLW3) - csched(5,nnn)(8:8)=char(0) - csched(6,nnn)(7:7)=char(IFLW2) - csched(6,nnn)(8:8)=char(0) - - ISCHED(7,NNN)=IAREA(2,INDEX) - ISCHED(8,NNN)=IRLAB - IWORK1=IRLAB - JLAST=JLAST+INCR - JXL=JLAST -14291 CONTINUE - NNN=NNN+1 - ISCHED(1,NNN)=IWORK1 - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - IRLW2=216 -c JSCHED(11,NNN)=CHAR(IRLW2) - csched(6,nnn)(7:7)=char(irlw2) - ISCHED(5,NNN)=0 -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 -C -C FOUND REAL INSET -C -14292 CONTINUE -c JSCHED(9,NNN)=CHAR(IFLW3) -c JSCHED(10,NNN)=CHAR(0) -c JSCHED(11,NNN)=CHAR(IFLW2) -c JSCHED(12,NNN)=CHAR(IAREA(6,INDEX)) - csched(5,nnn)(7:7)=CHAR(IFLW3) - csched(5,nnn)(8:8)=char(0) - csched(6,nnn)(7:7)=char(IFLW2) - csched(6,nnn)(8:8)=char(iarea(6,index)) - ISCHED(7,NNN)=IAREA(7,INDEX) - ISCHED(8,NNN)=INSET - GO TO 1450 -C -C FOUND WHOLE MAP (REAL INSET(S)) BUT NO STRIP LABELS -C - 1430 CONTINUE - GO TO 1450 -C -C FOUND LEFT PANEL MAP -C - 1432 CONTINUE -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=-30 - ISCHED(8,NNN)=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - NNN=NNN+1 - ISCHED(1,NNN)=IFLAB - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR -c JSCHED(9,NNN)=CHAR(1) -c JSCHED(10,NNN)=CHAR(0) -c JSCHED(11,NNN)=CHAR(216) -c JSCHED(12,NNN)=CHAR(IAREA(5,INDEX)) - csched(5,nnn)(7:7)=CHAR(1) - csched(5,nnn)(8:8)=char(0) - csched(6,nnn)(7:7)=char(216) - csched(6,nnn)(8:8)=char(iarea(5,index)) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=INSET - IWORK1=IRLAB - JLAST=JLAST+INCR - JXL=JLAST - GO TO 14291 -C -C FOUND RIGHT PANEL MAP -C - 1434 CONTINUE -c JSCHED(9,NNN)=CHAR(69) - - csched(5,nnn)(7:7)=CHAR(69) - IF(IPANA.EQ.IISUB(11)) JSCHED(9,NNN)=CHAR(65) - ISCHED(7,NNN)=IAREA(2,INDEX) -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(8,NNN)=IFLAB - GO TO 1450 -C -C FOUND REAL INSET -C - 1436 CONTINUE - KSCHED = MOVA2I(JSCHED(9,NNN)) - IF(IFLAB.GT.0)JSCHED(9,NNN)= CHAR(KSCHED+1) -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=IAREA(8,INDEX) - IF(IFLAB.GT.0)ISCHED(7,NNN)=IAREA(2,INDEX) - ISCHED(8,NNN)=IFLAB - IF(IFLAB.LT.1)GOTO 1450 - IWORK1=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - GO TO 14291 - 1450 CONTINUE -Corig PRINT 250,IFAXT,INUML,INDEX,INCR1 - WRITE(6,250) IFAXT,INUML,INDEX,INCR1 - 250 FORMAT('0TYPE MAP= ',I5,' TYPE LABELS ',I5,' AREA INDEX= ', - 1 I5,' LABEL ARRAY VALUE= ',I5) - RETURN - END diff --git a/util/sorc/sixbitb2.fd/FAXSHD.fmod b/util/sorc/sixbitb2.fd/FAXSHD.fmod deleted file mode 100755 index 2064cbc443..0000000000 --- a/util/sorc/sixbitb2.fd/FAXSHD.fmod +++ /dev/null @@ -1,322 +0,0 @@ - SUBROUTINE FAXSHD(IAREA,IA,JA,INDEX,INCR1,INCR,JLAST,NNN) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FAXSHD INPUT FIELD READER -C PRGMMR: KUMAR ORG: W/NP12 DATE: 1999-11-08 -C -C ABSTRACT: READS THE FAX ISCHED. -C -C PROGRAM HISTORY LOG: -C ??-??-?? UNKNOWN -C 91-02-21 STEVE LILLY, MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77. ADD THE -C ATLANTIC AND PACIFIC FAX CUTS FOR LEVELS FL450, -C FL390, FL340, FL300, FL240, FL180. -C 1999-11-08 CONVERTED FROM CRAY TO IBM SP 6000 -C -C USAGE: CALL FAXSHD(IAREA,IA,JA,INDEX,INCR1,INCR,JLAST,NNN) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ -C - COMMON/NSCHED/ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,60) -C - INTEGER IAREA(IA,JA) - INTEGER IISUB(11) - INTEGER ISUBA(3) - INTEGER ISUBB(3) -C - INTEGER ISCHED - character*8 csched(8,60) - equivalence (csched, ISCHED) -C - CHARACTER*1 JSCHED(16,60) -C - DATA IISUB/1H ,2HP1,2HP2,2HP3,2HP4,2HP5,2HP6,2HI1,2HI2,2HI3, - 1 2HB2/ - DATA ISUBA/3HP1A,3HP3A,3HP5A/ - DATA ISUBB/2HP1,2HP3,2HP5/ - DATA IBCHK/4H / - DATA ITBSE/7400/ - DATA MAPT7/X'E5000000'/ - DATA MASK2/X'FF000000'/ -C - EQUIVALENCE (ISCHED(1,1),JSCHED(1,1)) -C -C COMMON AREA VARIABLES /NSCHED/ -C -C WHERE ISLOTA,B= FAX SLOT NUMBER (CARD IMAGE FORMAT) -C WHERE IPANA,B= FAX PANEL INDICATOR (CARD IMAGE FORMAT) -C WHERE ISUB= FAX SUBSET NO. (CARD IMAGE FORMAT) -C WHERE IFLAB= FRONT LABEL INSET NO. (CARD IMAGE FORMAT) -C WHERE INSET= REAL INSET NO. (CARD IMAGE FORMAT) -C WHERE IRLAB= REAR LABEL INSET NO. (CARD IMAGE FORMAT) -C WHERE ISCHED= FAX/VARIAN SCHEDULE CONTROL -C -C CALL SEQUENCE VARIABLES -C IAREA= ARRAY FOR ALL FAX/VARIAN AREAS -C IA,JA= I,J INDEX FOR IAREA ARRAY -C INDEX= SPECIFIC IAREA INDEX TO BE USED FOR THIS CUT -C INCR1= OUTPUT SCAN LINE J FOR SPECIFIC AREA USED -C (NEEDED FOR LABEL ARRAY LINKAGE TO CNTR) -C -C -C INTERNAL SUBROUTINE VARIABLES -C -C WHERE IFAXT=0 VARIAN MAP -C "1 WHOLE FAX MAP(NO REAL INSET) -C =2 WHOLE FAX MAP(REAL INSET(S)) -C =3 LEFT PANEL MAP -C =4 RIGHT PANEL MAP -C =5 REAL INSET -C -C WHERE INUML=0 NO STRIP LABELS -C =1 FRONT LABEL ONLY OR FRONT OR REAR LABEL -C =2 FRONT AND REAR LABEL -C INITIALIZE FOR SPECIAL MAP TYPE - NNN=NNN+1 - IPANY=0 - IVARY=0 - IVAR=IAND(ISLOTA,MASK2) - IF(IVAR.EQ.MAPT7) IVARY=1 - IF((IPANA.NE.IISUB(8)).OR.(IPANA.NE.IISUB(9)).OR. - 1 (IPANA.NE.IISUB(10)).OR.(IPANA.NE.IBCHK)) IPANY=1 - IFAXT=0 - IF(IVARY.EQ.1) IFAXT=0 - IF((IPANA.EQ.IBCHK).AND.(INSET.LT.1).AND.(IVARY.EQ.0)) IFAXT=1 - IF((IPANA.EQ.IBCHK).AND.(INSET.GE.1).AND.(IVARY.EQ.0)) IFAXT=2 - IF((IPANA.EQ.IISUB(2)).OR.(IPANA.EQ.IISUB(4)).OR. - 1 (IPANA.EQ.IISUB(6))) IFAXT=3 - IF((IPANA.EQ.IISUB(3)).OR.(IPANA.EQ.IISUB(5)).OR. - 1 (IPANA.EQ.IISUB(7)).OR.(IPANA.EQ.IISUB(11))) IFAXT=4 - IF((IPANA.EQ.IISUB(8)).OR.(IPANA.EQ.IISUB(9)).OR. - 1 (IPANA.EQ.IISUB(10))) IFAXT=5 - INUML=0 - IF((IFLAB.LT.1).AND.(IRLAB.LT.1)) INUML=0 - IF((IFLAB.GE.1).AND.(IRLAB.LT.1)) INUML=1 - IF((IFLAB.GE.1).AND.(IRLAB.GE.1)) INUML=2 - IF(INCR1.NE.0) GO TO 15 - print *,' JLAST2 FAXSCHED 99999 ',jlast - JLAST=ITBSE-INCR - 15 CONTINUE - ISCHED(1,NNN)=ISUB - ISCHED(2,NNN)=IAREA(1,INDEX) - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=IAREA(2,INDEX) -c TROUBLE (GWV!!) -c JSCHED(9,NNN)=CHAR(IAREA(3,INDEX)) -c print 1929,iarea(3,index),iarea(4,index),iarea(5,index) - 1929 format(' DISPL',3i20) - 1939 format(' DISPL2',3Z30) -c JSCHED(10,NNN)=CHAR(IAREA(4,INDEX)) -c JSCHED(11,NNN)=CHAR(IAREA(5,INDEX)) - csched(5,nnn)(7:7)=char(IAREA(3,INDEX)) - csched(5,nnn)(8:8)=CHAR(IAREA(4,INDEX)) - if(iarea(5,index).le.255) then - csched(6,nnn)(7:7)=CHAR(IAREA(5,INDEX)) - else - csched(6,nnn)(7:7)=char(216) - endif -c print 1939,NNN,isched(6,nnn),isched(7,nnn) - IF((IFAXT.EQ.0).OR.((IFAXT.EQ.1).AND.(INUML.EQ.0))) GO TO 1426 - print *,'9999 FAXSHD GOING TO 1427 ' - GO TO 1427 -C -C FOUND VARIAN MAP OR WHOLE FAX MAP(NO REAL INSET) -C AND NO STRIP LABELS -C - 1426 CONTINUE - print *,'9999 FAXSHD GONE TO 1426 ' -cc JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - call byteswap(isched(5,nnn),8,1) - call byteswap(isched(6,nnn),8,1) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 - 1427 CONTINUE - print *,' 9999 FAXSCH ', IFAXT,inuml,incr1 -CKUMAR print 198,islota,islotb - print 198,islota -CKUMAR 198 format(' 9999 FAX IPAN ',a8,a8) - 198 format(' 9999 FAX IPAN ',a8) - GO TO (1428,1428,1432,1434,1436),IFAXT -C -C FOUND WHOLE MAP (NO REAL INSET) OR -C FOUND WHOLE MAP (REAL INSET(S)) - 1428 CONTINUE - IF((IFAXT.EQ.2).AND.(INUML.EQ.0)) GO TO 1430 -C -C PREPARE FOR FRONT STRIP LABEL -C -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=-30 - ISCHED(8,NNN)=IFLAB - print *,' FAXSCHED 9999 JLAST incr ',jlast,incr - JLAST=JLAST+INCR - JXL=JLAST - NNN=NNN+1 - ISCHED(1,NNN)=IFLAB - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - IFLW2=216 - IFLW3=1 - IF(IFAXT.EQ.2) GO TO 14292 - IF(INUML.EQ.2) GO TO 1429 -C -C FOUND WHOLE MAP FRONT LABEL ONLY -C -c JSCHED(11,NNN)=CHAR(IFLW2) - csched(6,nnn)(7:7)=char(iflw2) - ISCHED(5,NNN)=0 -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 -C -C FOUND FRONT AND REAR STRIP LABEL -C - 1429 CONTINUE - -c JSCHED(9,NNN)=CHAR(IFLW3) -c JSCHED(10,NNN)=CHAR(0) -c JSCHED(11,NNN)=CHAR(IFLW2) -c JSCHED(12,NNN)=CHAR(0) - csched(5,nnn)(7:7)=CHAR(IFLW3) - csched(5,nnn)(8:8)=char(0) - csched(6,nnn)(7:7)=char(IFLW2) - csched(6,nnn)(8:8)=char(0) - - ISCHED(7,NNN)=IAREA(2,INDEX) - ISCHED(8,NNN)=IRLAB - IWORK1=IRLAB - JLAST=JLAST+INCR - JXL=JLAST -14291 CONTINUE - NNN=NNN+1 - ISCHED(1,NNN)=IWORK1 - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - IRLW2=216 -c JSCHED(11,NNN)=CHAR(IRLW2) - csched(6,nnn)(7:7)=char(irlw2) - ISCHED(5,NNN)=0 -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 -C -C FOUND REAL INSET -C -14292 CONTINUE -c JSCHED(9,NNN)=CHAR(IFLW3) -c JSCHED(10,NNN)=CHAR(0) -c JSCHED(11,NNN)=CHAR(IFLW2) -c JSCHED(12,NNN)=CHAR(IAREA(6,INDEX)) - csched(5,nnn)(7:7)=CHAR(IFLW3) - csched(5,nnn)(8:8)=char(0) - csched(6,nnn)(7:7)=char(IFLW2) - csched(6,nnn)(8:8)=char(iarea(6,index)) - ISCHED(7,NNN)=IAREA(7,INDEX) - ISCHED(8,NNN)=INSET - GO TO 1450 -C -C FOUND WHOLE MAP (REAL INSET(S)) BUT NO STRIP LABELS -C - 1430 CONTINUE - GO TO 1450 -C -C FOUND LEFT PANEL MAP -C - 1432 CONTINUE -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=-30 - ISCHED(8,NNN)=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - NNN=NNN+1 - ISCHED(1,NNN)=IFLAB - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR -c JSCHED(9,NNN)=CHAR(1) -c JSCHED(10,NNN)=CHAR(0) -c JSCHED(11,NNN)=CHAR(216) -c JSCHED(12,NNN)=CHAR(IAREA(5,INDEX)) - csched(5,nnn)(7:7)=CHAR(1) - csched(5,nnn)(8:8)=char(0) - csched(6,nnn)(7:7)=char(216) - csched(6,nnn)(8:8)=char(iarea(5,index)) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=INSET - IWORK1=IRLAB - JLAST=JLAST+INCR - JXL=JLAST - GO TO 14291 -C -C FOUND RIGHT PANEL MAP -C - 1434 CONTINUE -c JSCHED(9,NNN)=CHAR(69) - - csched(5,nnn)(7:7)=CHAR(69) - IF(IPANA.EQ.IISUB(11)) JSCHED(9,NNN)=CHAR(65) - ISCHED(7,NNN)=IAREA(2,INDEX) -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(8,NNN)=IFLAB - GO TO 1450 -C -C FOUND REAL INSET -C - 1436 CONTINUE - KSCHED = MOVA2I(JSCHED(9,NNN)) - IF(IFLAB.GT.0)JSCHED(9,NNN)= CHAR(KSCHED+1) -c JSCHED(12,NNN)=CHAR(0) - csched(6,nnn)(8:8)=char(0) - ISCHED(7,NNN)=IAREA(8,INDEX) - IF(IFLAB.GT.0)ISCHED(7,NNN)=IAREA(2,INDEX) - ISCHED(8,NNN)=IFLAB - IF(IFLAB.LT.1)GOTO 1450 - IWORK1=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - GO TO 14291 - 1450 CONTINUE -Corig PRINT 250,IFAXT,INUML,INDEX,INCR1 - WRITE(6,250) IFAXT,INUML,INDEX,INCR1 - 250 FORMAT('0TYPE MAP= ',I5,' TYPE LABELS ',I5,' AREA INDEX= ', - 1 I5,' LABEL ARRAY VALUE= ',I5) -ckumar -ckumar print*,'In FAXSHD ' -ckumar print*,'ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,60)', -ckumar 1 ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED -ckumar - RETURN - END diff --git a/util/sorc/sixbitb2.fd/GETSXX.f b/util/sorc/sixbitb2.fd/GETSXX.f deleted file mode 100755 index 2823bbf0df..0000000000 --- a/util/sorc/sixbitb2.fd/GETSXX.f +++ /dev/null @@ -1,197 +0,0 @@ - SUBROUTINE GETSXX(ITAU,MBLVL,ITYPE,FLOLA,IDENT,IEXIT) -C $$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: GETSXX GET A LOLA FIELD FROM SPECTRAL COEFFS -C PRGMMR: KUMAR ORG: NP/12 DATE: 1999-11-08 -C -C ABSTRACT: TO GET A 2.5 DEGREE LONGITUDE/LATITUDE GRIDPOINT DATA -C FIELD FROM SPECTRAL COEFFICIENTS USING W3FT59. THIS IS A LIMITED -C USE ROUTINE TO GET NORTHERN HEMI DATA OUT OF S24/S36 FILE. -C -C PROGRAM HISTORY LOG: -C 82-04-23 SHIMOMURA -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77 -C 1999-11-08 KRISHNA KUMAR CONVERTED FROM CRAY TO IBM SP 6000 -C -C -C USAGE: CALL GETSXX(ITAU, MBLVL, ITYPE, FLOLA, IDENT, IEXIT) -C INPUT ARGUMENTS: -C (1)ITAU ... FORECAST HOUR DESIRED -C ITAU=999 IS A SPECIAL SIGNAL TO CLOSE SXX FILE -C (2)MBLVL ... THE MILLIBAR LEVEL DESIRED -C (3)ITYPE ... TYPE OF DATA FIELD DESIRED, AS IN O.N.84 -C -C INPUT FILES: -C S24,S36 - CONTAINING SPECTRAL COEFFICIENTS FROM SELA'S MODEL -C - DSN=NWS.NMC.PROD.SXX.T00Z.OPRNL,DISP=SHR -C - ... OR, AT 12Z, -C - DSN=NWS.NMC.PROD.SXX.T12Z.OPRNL,DISP=SHR -C -C OUTPUT ARGUMENTS: -C (4)FLOLA ... REAL FLOLA(145,37) -C WHICH IS THE ARRAY FOR THE DESIRED FIELD. -C (5)IDENT ... INTEGER IDENT(12) -C WHICH IS ARRAY FOR IDENTIFIERS FOR FLOLA FIELD -C (6)IEXIT ... RETURN CODE -C IEXIT=0 FOR NORMAL RETURN -C IEXIT= NON-ZERO FOR ERROR RETURN -C -C SUBPROGRAMS CALLED: -C LIBRARY: -C W3LIB - W3FT59, W3FK49 -C -C RETURN CONDITIONS: -C IEXIT=1 DISK READ ERROR FROM W3FK43, CALLED BY W3FT59, -C - DATA FIELD ENTRY NOT IN TABLE -C IEXIT=2 DISK READ ERROR FROM W3FK43, CALLED BY W3FT59, -C - RETRIEVED DATA HAD WRONG ID. -C IEXIT=3 DISK READ ERROR FROM W3FK43, CALLED BY W3FT59, -C - DATA FIELD NOT ON DISK. -C IEXIT=4 ERROR FROM W3FT59, WRONG GRID TYPE IN 5TH WORD OF ID, -C - SHOULD HAVE BEEN HEX 1D OR HEX 1E. -C IEXIT=5 ERROR FROM GETSXX, -C - ARG(1) ITAU IS TOO BIG. (ITAU WAS .GT. 255) -C -C REMARKS: WHEN YOU FINISH READING IN ALL FIELDS YOU NEED, -C YOU SHOULD CLOSE OUT THE SXX FILE BY CALLING THIS SUBROUTINE -C WITH ITAU=999 -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE : IBM SP/6000 -C -C$$$ -C -C -C CHARACTER*8 FILNAM - INTEGER*8 FILNAM - INTEGER*8 LUGRB -C CHARACTER*8 FILE24 - INTEGER*8 FILE24 - DATA FILE24 /12/ - INTEGER*8 FILE18 - DATA FILE18 /13/ - INTEGER*8 FILE31 - DATA FILE31 /31/ - INTEGER*8 FILE32 - DATA FILE32 /32/ -C CHARACTER*8 FILE36 - INTEGER*8 FILE30 - DATA FILE30 /30/ - INTEGER*8 FILE33 - DATA FILE33 /33/ - INTEGER*8 FILE36 - DATA FILE36 /36/ - INTEGER*8 FILE34 - DATA FILE34 /34/ - CHARACTER*132 MTITLE -C - REAL FLOLA(145,37) -C - INTEGER IDENT(12) - INTEGER KDENT(12) -C -C DATA FILE24/'S24 '/ -ckumar DATA FILE36/'S36 '/ - DATA KDENT / X'00100818',X'0061A882',0,0,X'0000001D',X'00990A87', - 1 6*0 / - DATA KWD1 / X'00000800' / - DATA K82 / X'00000082' / - DATA MSKTAU / X'000000FF' / - DATA MSKLVL / X'000FFFFF' / -C - IEXIT = 0 - IF(ITAU .GT. 255) GO TO 700 - DO 155 I = 1,12 - IDENT(I) = KDENT(I) - 155 CONTINUE -C ... PUT TYPE AND TAU INTO IDENT(1) - IACC = ITYPE - IACC = ISHFT(IACC,20) - 1059 format('iacc shift ',i5,z20,z20,z20) - IWORD1 = IOR(IACC,KWD1) -c print 1059,itype,itype,iacc,iword1 - IACC = ITAU - IACC = IAND(IACC,MSKTAU) - IWORD1 = IOR(IWORD1,IACC) -c print 1059,itau,itau,iacc,iword1 - IDENT(1) = IWORD1 -C -C ... PUT LEVEL INTO IDENT(2) - IACC = MBLVL - IF(IACC .LE. 999) IACC = IACC*100 - IACC = IAND(IACC,MSKLVL) - IWORD2 = ISHFT(IACC,8) -c print 1069,mblvl,iacc,iacc,iword2 - IWORD2 = IOR(IWORD2,K82) -c print 1069,mblvl,iacc,iacc,iword2 - 1069 format(' ishift lev',i5,i5,z20,z20) - IDENT(2) = IWORD2 -C -Corig PRINT 180 - WRITE(6,180) - 180 FORMAT(' CHECK IDENTS IN GETSXX',/) - DO 250 I=1,12 - PRINT 200,IDENT(I),i -c WRITE(6,200) IDENT(I),i - 200 FORMAT(3X,' ident ',Z8,i3) - 250 CONTINUE -C IF(ITAU.EQ.18.OR.ITAU.EQ.24)FILNAM=FILE24 - IF(ITAU.EQ.18) THEN - FILNAM = FILE18 - LUGRB = FILE31 - ELSE - IF(ITAU.EQ.24) THEN - FILNAM = FILE24 - LUGRB = FILE32 - ENDIF - ENDIF -C IF(ITAU.EQ.30.OR.ITAU.EQ.36)FILNAM=FILE36 - IF(ITAU.EQ.30) THEN - FILNAM = FILE30 - LUGRB = FILE33 - ELSE - IF(ITAU.EQ.36) THEN - FILNAM = FILE36 - LUGRB = FILE34 - ENDIF - ENDIF - WRITE(6,169) - 169 FORMAT(1X,'BEFORE THE CALL IW3GET') -C CALL W3FT59(FILNAM,IDENT,FLOLA,IER) -C CALL IW3GET(LUGRBIX,LUGRB,LABEL,FLD,MTITLE,IERR) - WRITE(6,8765)FILNAM,LUGRB - 8765 FORMAT(1X,'NO. 1 FILNAM=',I4,2X,'LUGRB=',1X,I4) -Cwron CALL IW3GET(FILNAM,LUGRB,IDENT,FLOLA,MTITLE,IER) - CALL IW3GET(LUGRB,FILNAM,IDENT,FLOLA,MTITLE,IER) - ixudd=145 - iyudd=37 -c do 198 k=1,37 -ck 198 print 1019,MTITLE,k,FLOLA(1,k) - 1019 format(' IWGET CHK ',A132,1x,i4,f10.4) -c call qcn(flola,ixudd, iyudd) - WRITE(6,1346) IER - 1346 FORMAT(1X,'STEVE IER AFTER IW3GET IS',1X,I4) - IF(IER .NE. 0) GO TO 911 -C ... ELSE, GOT A FIELD IN FLOLA -C ... AND ID INCLUDING DATE IN IDENT - GO TO 999 - 700 CONTINUE -C ... COMES HERE IF ITAU .GT. 255 - IF(ITAU .NE. 999) GO TO 900 -C CALL W3FK49(FILNAM) - GO TO 999 - 900 CONTINUE -C ... COMES HERE IF ITAU IS OUT OF BOUNDS - IEXIT = 5 - GO TO 999 -C - 911 CONTINUE -C ... COMES HERE IF ERROR FROM W3FT59 - IEXIT = IER - GO TO 999 - 999 CONTINUE -C do 298 k=1,37 -c 298 print 1019,MTITLE,k,FLOLA(1,k) - RETURN - END diff --git a/util/sorc/sixbitb2.fd/GULFTL.f b/util/sorc/sixbitb2.fd/GULFTL.f deleted file mode 100755 index 92fc907d88..0000000000 --- a/util/sorc/sixbitb2.fd/GULFTL.f +++ /dev/null @@ -1,93 +0,0 @@ - subroutine GULFTL() -c This routine searches fortran input unit 13 for -c formatted lines beginning with PUTLA or GULFT. -c PUTLA lines contain all of the arguments for -c calls to PUTLAB and enable titles (or any other -c characters) to be specified at execution time. -c The GULFT lines were implemented first, these -c allow short titles to be plotted in a fixed -c font with only coordinate information -c and are thus easier for the user who does -c not know much about putlab, to specify . -c Using GULFT lines is somewhat analagous to -c using the old GULFTL subroutine found in many -c MVS FAX plotting codes. Using PUTLA is a much -c more general way to plot character -c data at execution time. -c -c It is common and expected in many cases for -c PUTLA and GULFT lines to be absent from -c fortran unit 13, in that case the subroutine -c does nothing. If fortran unit 13 is not connected, -c the subroutine also does nothing. -c - common/pshift/ishiftx(50),ishifty(50),ishiftxx,ishiftyy - dimension kp(2) - character*80 cline - character*160 cline2 -c SEARCH UNIT 13 FOR ANY TITLES DESIRED -c generic putlab input search -c -c open(13,file='fort.13') -c -ckumar -ckumar Changed the Unit # to 13 from 4 -ckumar - do 5,k=1,999999 - read(13,104,end=599)cline2 - 104 format(a160) - if(cline2(1:5) .eq. 'PUTLA') then - read(cline2,103) - 1 ix,jx,font,angle,nchar,kp(1),kp(2),irt - 103 format(6x,2i5,2f5.1,1x,i3,i2,i2,i2) - ix=ix+ishiftxx - jx=jx+ishiftyy - call putlab - 1 (ix,jx,font,cline2(39:39+nchar),angle,nchar,kp,irt) - endif - 5 continue - 599 continue -ckumar - rewind(13) -ckumar -c end generic putlab search -c now search for specific short titles (easier to -c specify in input lines) - kp(1)=1 - kp(2)=0 - do 10,k=1,9999999 -ckumar - read(13,101,end=699)cline -ckumar - 101 format(a80) - if(cline(1:5) .eq. 'GULFT') then - read(cline,102)ix,jx - 102 format(6x,i5,i5) - ix=ix+ishiftxx - jx=jx+ishiftyy - call putlab(ix,jx,01.,cline(18:47),90.,30,kp,0) - print *,' GULFTL PLOT',ix,jx,cline(17:47) - endif - 10 continue - 699 continue -ckumar - rewind(13) -ckumar - do 15,k=1,9999999 -ckumar - read(13,101,end=799) cline -ckumar - if(cline(1:3).eq. 'BOX' )then - read(cline,107)ix,iy,il,jl - 107 format(4x,4i5) - ix=ix+ishiftxx - iy=iy+ishiftyy - call box(ix,iy,il,jl) - endif - 15 continue - 799 continue -ckumar - rewind (13) -ckumar - return - end diff --git a/util/sorc/sixbitb2.fd/MERCIN.f b/util/sorc/sixbitb2.fd/MERCIN.f deleted file mode 100755 index a43cf41599..0000000000 --- a/util/sorc/sixbitb2.fd/MERCIN.f +++ /dev/null @@ -1,439 +0,0 @@ - SUBROUTINE MERCIN(ISWTCH,NUMF,MAPON,NSLOTS,ILVLI, - 1 IFLDI,ITAUI,ICODIN,INAMIN,IOUTIN,IINFA,IINFB) -C $$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: MERCIN INPUT FIELD READER -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-09-25 -C -C ABSTRACT: BASIC MAP CONTROL. -C -C PROGRAM HISTORY LOG: -C ??-??-?? UNKNOWN -C 91-02-21 STEVE LILLY, MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77. -C 1999-09-25 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM SP/6000 -C -C USAGE: CALL MERCIN(ISWTCH,NUMF,MAPON,NSLOTS,ILVLI,IFLD1,ITAUI, -C ICODIN,INAMIN,IOUTIN, IINFA,IINFB) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C $$$ -C - DIMENSION ILVLI(3),IFLDI(3),ITAUI(3),IOUTIN(2) - DIMENSION IIOUT(4,7) - DIMENSION IFILER(3,3) - DIMENSION ICODES(3,6) - DIMENSION ITAU(3,5) - DIMENSION IFLD(3,3) - DIMENSION ILVL(3,8) -C - DATA IBCHK/4H / -C DATA LU/8/ - DATA LU/18/ -C -C LEVEL CONTROL TABLE -C -C CHANGED NUMBER OF LEVELS ...... -C AND TOOK TROP OUT OF ILVL LIST ...... - DATA NLVLS/8/ - DATA ILVL/4H850 ,1H ,1,4H700 ,1H ,2,4H500 ,1H ,3,4H400 ,1H ,4, - 1 4HSFC ,1H ,5,4H250 ,1H ,6,4H200 ,1H ,7, - 2 4H150 ,1H ,8/ -C -C FIELD CONTROL TABLE -C -C CHANGED # OF FIELDS ....... - DATA NFLDS/3/ - DATA IFLD/4HU ,1H ,1,4HV ,1H ,2,4HTEMP,1HS,3/ -C -C TAU CONTROL TABLE -C - DATA NTAUS/5/ - DATA ITAU/4H18HR,1H ,1,4H24HR,1H ,2,4H00HR,1H ,3,4H36HR,1H ,4, - 1 4H48HR,1H ,5/ -C -C OPERATIONAL RUN TYPE TABLE -C -C CHANGED # OF ICODES ....... - DATA NCODES/6/ - DATA ICODES/4HOPN0,1H9,1,4HOPN1,1H0,2,4HOPN2,1H6,3,4HOPN2,1H8,4, - 1 4HOPN2,1H5,5,4HOPN3,1H3,6/ -C -C FILE CONTROL TABLE -C - DATA NFILES/3/ - DATA IFILER/4HMERC,1HI,1,4H ,1H ,2,4HPOLA,1HR,3/ -C -C OUTPUT TYPE CONTROL TABLE -C - DATA NOUTS/7/ - DATA IIOUT/4HS-I ,1H ,1,1,4HS-I-,1HP,2,2,4HS-I-,1HT,3,3, - 1 4HS ,1H ,4,4,4HP-T-,1HW,5,5,4HP-V ,1H ,6,6, - 2 4HW-T ,1H ,7,7/ -C -C BASIC MAP CONTROLS (SET FOR EACH MAP) -C -C WHERE ICARD1= CARD CONTROL(BLANK-A1) -C WHERE LVL1A,LVL1B= 1ST LEVEL (A4,A1) -C WHERE IFLD1A,IFLD1B= 1ST FIELD TYPE (A4,A1) -C WHERE ITAU1A,ITAU1B= 1ST TAU PERIOD (A4,A1) -C WHERE LVL2A,LVL2B= 2ND LEVEL (A4,A1) -C WHERE IFLD2A,IFLD2B= 2ND FIELD TYPE (A4,A1) -C WHERE ITAU2A,ITAU2B= 2ND TAU PERIOD (A4,A1) -C WHERE LVL3A,LVL3B= 3RD LEVEL (A4,A1) -C WHERE IFLD3A,IFLD3B= 3RD FIELD TYPE (A4,A1) -C WHERE ITAU3A,ITAU3B= 3RD TAU PERIOD (A4,A1) -C WHERE ICODEA,ICODEB= OPERATIONAL CODE TYPE (A4,A1) -C WHERE IINFA,IINFB= INPUT FILE NAME (A4,A1) -C WHERE IOUTA,IOUTB= OUTPUT FIELD COMBINATION -C WHERE MAPON= MAP NUMBER (I4) -C WHERE NSLOTS= NUMBER OF MAP PARTS (I4) -C - 7025 CONTINUE - IF(ISWTCH.EQ.1) GO TO 7040 -C -C USE DATA CARD INPUT -C - 7030 CONTINUE -Corig READ 7200, ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2A, - READ (LU,7200) ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B, - 1 LVL2A,LVL2B,IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A,LVL3B,IFLD3A, - 2 IFLD3B,ITAU3A,ITAU3B,ICODEA,ICODEB,IINFA,IINFB,IOUTA, - 3 IOUTB,MAPON,NSLOTS - 7200 FORMAT(A1,10(A4,A1),3X,2(A4,A1),2I4) - GO TO 7045 -C -C USE DATA SET CONTROL FILE INPUT -C - 7040 CONTINUE - READ(LU,7200) ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B, - 2 LVL2A,LVL2B,IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A, - 3 LVL3B,IFLD3A,IFLD3B,ITAU3A,ITAU3B,ICODEA, - 4 ICODEB,IINFA,IINFB,IOUTA,IOUTB,MAPON,NSLOTS - 7045 CONTINUE - NUMF=3 - IF(LVL3A.EQ.IBCHK.AND.LVL3B.EQ.IBCHK) NUMF=2 - IF(LVL2A.EQ.IBCHK.AND.LVL2B.EQ.IBCHK.AND.LVL3A.EQ.IBCHK.AND. - 1LVL3B.EQ.IBCHK) NUMF=1 -Corig PRINT 7201,MAPON,NUMF - WRITE(6,7201) MAPON,NUMF - 7201 FORMAT(1H1,'MAP NUMBER= ',I3,' NUMBER OF INPUT FIELDS= ',I3) -Corig PRINT 7202,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2A,LVL2B, - WRITE(6,7202) LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2A,LVL2B, - 1 IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A,LVL3B,IFLD3A, - 2 IFLD3B,ITAU3A,ITAU3B - 7202 FORMAT(1H0,'DATA TYPES= ',9(A4,A1)) -Corig PRINT 7203,ICODEA,ICODEB,IINFA,IINFB,IOUTA,IOUTB,NSLOTS - WRITE(6,7203) ICODEA,ICODEB,IINFA,IINFB,IOUTA,IOUTB,NSLOTS - 7203 FORMAT(1H0,'OPERATIONAL CODE= ',A4,A1,' INPUT FILE= ',A4,A1, - X'OUTPUT COMB. TYPE= ',A4,A1,' NUMBER OF FAX VARIAN CUTS= ',I3) - DO 7210 IX=1,3 - ILVLI(IX)=0 - IFLDI(IX)=0 - ITAUI(IX)=0 - 7210 CONTINUE - ICODIN=0 - INAMIN=0 - DO 7211 IY=1,2 - IOUTIN(IY)=0 - 7211 CONTINUE -C -C CHECK FOR REASONABLE LEVEL REQUESTS -C -C CHECK LEVEL 1 -C - DO 7215 IK=1,NLVLS - IF(LVL1A.EQ.IBCHK.AND.LVL1B.EQ.IBCHK) GO TO 7205 - IF(LVL1A.NE.ILVL(1,IK)) GO TO 7215 - IF(LVL1B.NE.ILVL(2,IK)) GO TO 7215 - ILVLI(1)=ILVL(3,IK) - IP=ILVLI(1) -Corig PRINT 7204,IP - WRITE(6,7204) IP - 7204 FORMAT(1H0,'LEVEL 1 INDEX FOUND= ',I2) - GO TO 7220 -C7205 PRINT 7206 - 7205 CONTINUE - WRITE(6,7206) - 7206 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 1-WAS BLANK') - CALL W3TAGE('AVPOLARV') - STOP 207 - 7215 CONTINUE -Corig PRINT 7216 - WRITE(6,7216) - 7216 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 1') - CALL W3TAGE('AVPOLARV') - STOP 217 - 7220 CONTINUE -C -C CHECK LEVEL 2 -C - DO 7235 IK=1,NLVLS - IF(LVL2A.EQ.IBCHK.AND.LVL2B.EQ.IBCHK) GO TO 7240 - IF(LVL2A.NE.ILVL(1,IK)) GO TO 7235 - IF(LVL2B.NE.ILVL(2,IK)) GO TO 7235 - ILVLI(2)=ILVL(3,IK) - IP=ILVLI(2) -Corig PRINT 7234,IP - WRITE(6,7234) IP - 7234 FORMAT(1H0,'LEVEL 2 INDEX FOUND= ',I2) - GO TO 7240 - 7235 CONTINUE -Corig PRINT 7236 - WRITE(6,7236) - 7236 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 2') - CALL W3TAGE('AVPOLARV') - STOP 237 - 7240 CONTINUE -C -C CHECK LEVEL 3 -C - DO 7255 IK=1,NLVLS - IF(LVL3A.EQ.IBCHK.AND.LVL3B.EQ.IBCHK) GO TO 7260 - IF(LVL3A.NE.ILVL(1,IK)) GO TO 7255 - IF(LVL3B.NE.ILVL(2,IK)) GO TO 7255 - ILVLI(3)=ILVL(3,IK) - IP=ILVLI(3) -Corig PRINT 7254,IP - WRITE(6,7254) IP - 7254 FORMAT(1H0,'LEVEL 3 INDEX FOUND= ',I2) - GO TO 7260 - 7255 CONTINUE -Corig PRINT 7256 - WRITE(6,7256) - 7256 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 3') - CALL W3TAGE('AVPOLARV') - STOP 257 - 7260 CONTINUE -C -C CHECK FOR REASONABLE FIELD REQUESTS -C -C CHECK FIELD 1 -C - DO 7315 IK=1,NFLDS - IF(IFLD1A.EQ.IBCHK.AND.IFLD1B.EQ.IBCHK) GO TO 7305 - IF(IFLD1A.NE.IFLD(1,IK)) GO TO 7315 - IF(IFLD1B.NE.IFLD(2,IK)) GO TO 7315 - IFLDI(1)=IFLD(3,IK) - IP=IFLDI(1) -Corig PRINT 7314,IP - WRITE(6,7314) IP - 7314 FORMAT(1H0,'FIELD 1 INDEX FOUND= ',I2) - GO TO 7320 -C7305 PRINT 7306 - 7305 CONTINUE - WRITE(6,7306) - 7306 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 1-WAS BLANK') - CALL W3TAGE('AVPOLARV') - STOP 307 - 7315 CONTINUE -Corig PRINT 7316 - WRITE(6,7316) - 7316 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD1') - CALL W3TAGE('AVPOLARV') - STOP 317 - 7320 CONTINUE -C -C CHECK FIELD 2 -C - DO 7335 IK=1,NFLDS - IF(IFLD2A.EQ.IBCHK.AND.IFLD2B.EQ.IBCHK) GO TO 7340 - IF(IFLD2A.NE.IFLD(1,IK)) GO TO 7335 - IF(IFLD2B.NE.IFLD(2,IK)) GO TO 7335 - IFLDI(2)=IFLD(3,IK) - IP=IFLDI(2) -Corig PRINT 7334,IP - WRITE(6,7334) IP - 7334 FORMAT(1H0,'FIELD 2 INDEX FOUND= ',I2) - GO TO 7340 - 7335 CONTINUE -Corig PRINT 7336 - WRITE(6,7336) - 7336 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 2') - CALL W3TAGE('AVPOLARV') - STOP 337 - 7340 CONTINUE -C -C CHECK FIELD 3 -C - DO 7355 IK=1,NFLDS - IF(IFLD3A.EQ.IBCHK.AND.IFLD3B.EQ.IBCHK) GO TO 7360 - IF(IFLD3A.NE.IFLD(1,IK)) GO TO 7355 - IF(IFLD3B.NE.IFLD(2,IK)) GO TO 7355 - IFLDI(3)=IFLD(3,IK) - IP=IFLDI(3) -Corig PRINT 7354,IP - WRITE(6,7354) IP - 7354 FORMAT(1H0,'FIELD 3 INDEX FOUND= ',I2) - GO TO 7360 - 7355 CONTINUE -Corig PRINT 7356 - WRITE(6,7356) - 7356 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 3') - CALL W3TAGE('AVPOLARV') - STOP 357 - 7360 CONTINUE -C -C CHECK FOR REASONABLE TAU REQUESTS -C -C CHECK TAU 1 -C - DO 7415 IK=1,NTAUS - IF(ITAU1A.EQ.IBCHK.AND.ITAU1B.EQ.IBCHK) GO TO 7415 - IF(ITAU1A.NE.ITAU(1,IK)) GO TO 7415 - IF(ITAU1B.NE.ITAU(2,IK)) GO TO 7415 - ITAUI(1)=ITAU(3,IK) - IP=ITAUI(1) -Corig PRINT 7414,IP - WRITE(6,7414) IP - 7414 FORMAT(1H0,'TAU 1 INDEX FOUND= ',I2) - GO TO 7420 -C - 7415 CONTINUE -Corig PRINT 7416 - WRITE(6,7416) - 7416 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 1') - CALL W3TAGE('AVPOLARV') - STOP 417 - 7420 CONTINUE -C -C CHECK TAU 2 -C - DO 7435 IK=1,NTAUS - IF(ITAU2A.EQ.IBCHK.AND.ITAU2B.EQ.IBCHK) GO TO 7440 - IF(ITAU2A.NE.ITAU(1,IK)) GO TO 7435 - IF(ITAU2B.NE.ITAU(2,IK)) GO TO 7435 - ITAUI(2)=ITAU(3,IK) - IP=ITAUI(2) -Corig PRINT 7434,IP - WRITE(6,7434) IP - 7434 FORMAT(1H0,'TAU 2 INDEX FOUND= ',I2) - GO TO 7440 - 7435 CONTINUE -Corig PRINT 7436 - WRITE(6,7436) - 7436 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 2') - CALL W3TAGE('AVPOLARV') - STOP 437 - 7440 CONTINUE -C -C CHECK TAU 3 -C - DO 7455 IK=1,NTAUS - IF(ITAU3A.EQ.IBCHK.AND.ITAU3B.EQ.IBCHK) GO TO 7460 - IF(ITAU3A.NE.ITAU(1,IK)) GO TO 7455 - IF(ITAU3B.NE.ITAU(2,IK)) GO TO 7455 - ITAUI(3)=ITAU(3,IK) - IP=ITAUI(3) -Corig PRINT 7454,IP - WRITE(6,7454) IP - 7454 FORMAT(1H0,'TAU 3 INDEX FOUND= ',I2) - GO TO 7460 - 7455 CONTINUE -Corig PRINT 7456 - WRITE(6,7456) - 7456 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 3') - CALL W3TAGE('AVPOLARV') - STOP 457 - 7460 CONTINUE -C -C CHECK FOR REASONABLE OPERATIONAL CODE REQUESTS -C - DO 7515 IK=1,NCODES - IF(ICODEA.EQ.IBCHK.AND.ICODEB.EQ.IBCHK) GO TO 7505 - IF(ICODEA.NE.ICODES(1,IK)) GO TO 7515 - IF(ICODEB.NE.ICODES(2,IK)) GO TO 7515 - ICODIN=ICODES(3,IK) -Corig PRINT 7514,ICODIN - WRITE(6,7514) ICODIN - 7514 FORMAT(1H0,'CODE INDEX FOUND= ',I2) - GO TO 7520 -C7505 PRINT 7506 - 7505 CONTINUE - WRITE(6,7506) - 7506 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OPNL CODE-WAS BLANK') - CALL W3TAGE('AVPOLARV') - STOP 507 - 7515 CONTINUE -Corig PRINT 7516 - WRITE(6,7516) - 7516 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OPNL CODE') - CALL W3TAGE('AVPOLARV') - STOP 517 - 7520 CONTINUE -C -C CHECK FOR REASONABLE FILE REQUESTS -C - DO 7535 IK=1,NFILES - IF(IINFA.EQ.IBCHK.AND.IINFB.EQ.IBCHK) GO TO 7525 - IF(IINFA.NE.IFILER(1,IK)) GO TO 7535 - IF(IINFB.NE.IFILER(2,IK)) GO TO 7535 - INAMIN=IFILER(3,IK) -Corig PRINT 7524,INAMIN - WRITE(6,7524) INAMIN - 7524 FORMAT(1H0,'FILE INDEX FOUND= ',I2) - GO TO 7540 -C7525 PRINT 7526 - 7525 CONTINUE - WRITE(6,7526) - 7526 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FILE-WAS BLANK') - CALL W3TAGE('AVPOLARV') - STOP 527 - 7535 CONTINUE -Corig PRINT 7536 - WRITE(6,7536) - 7536 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FILE') - CALL W3TAGE('AVPOLARV') - STOP 537 - 7540 CONTINUE -C -C CHECK FOR REASONABLE OUTPUT REQUESTS -C - DO 7555 IK=1,NOUTS - IF(IOUTA.EQ.IBCHK.AND.IOUTB.EQ.IBCHK) GO TO 7545 - IF(IOUTA.NE.IIOUT(1,IK)) GO TO 7555 - IF(IOUTB.NE.IIOUT(2,IK)) GO TO 7555 - IOUTIN(1)=IIOUT(3,IK) - IOUTIN(2)=IIOUT(4,IK) - IP=IOUTIN(1) - IQ=IOUTIN(2) -Corig PRINT 7554,IP,IQ - WRITE(6,7554) IP,IQ - 7554 FORMAT(1H0,'OUTPUT TYPE INDEX FOUND= ',I2,'OUTPUT MAP SET FOUND - X= ',I2) - GO TO 7560 - 7545 CONTINUE -Corig PRINT 7546 - WRITE(6,7546) - 7546 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OUTPUT TYPE-WAS BLANK') - CALL W3TAGE('AVPOLARV') -CKUMAR STOP 547 - 7555 CONTINUE -Corig PRINT 7556 - WRITE(6,7556) - 7556 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OUTPUT TYPE') - CALL W3TAGE('AVPOLARV') - STOP 557 - 7560 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb2.fd/NPOLUV.f b/util/sorc/sixbitb2.fd/NPOLUV.f deleted file mode 100755 index 6875c3566d..0000000000 --- a/util/sorc/sixbitb2.fd/NPOLUV.f +++ /dev/null @@ -1,98 +0,0 @@ - SUBROUTINE NPOLUV(FULOLA,FVLOLA,IMAX,JMAX,IEXIT) -C $$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: NPOLUV CORRECT N. POLE ROW U-& V-COMPONENTS LOLA -C PRGMMR: LILLY ORG: NMC/412 DATE: 95-05-05 -C -C ABSTRACT: CORRECTS NORTH POLE ROW OF U- & V-COMPONENTS OF WIND IN -C THE LONGITUDE/LATITUDE (LOLA) GRID FIELDS. AN AVERAGE WIND IS -C DETERMINED FROM THE ROW ADJACENT TO THE NORTH POLE ROW, THEN THAT -C AVERAGE WIND IS STORED IN THE POLE ROW AFTER ROTATION OF AXIS -C TO EACH MERIDIAN. -C -C PROGRAM HISTORY LOG: -C 82-04-23 SHIMOMURA -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77 -C -C USAGE: CALL NPOLUV(FULOLA, FVLOLA, IMAX, JMAX, IEXIT) -C INPUT ARGUMENTS: -C (1)FULOLA... REAL FULOLA(IMAX,JMAX) IS FIELD OF U-COMPONENTS -C ON LOLA GRID -C (2)FVLOLA... REAL FVLOLA(IMAX,JMAX) IS FIELD OF V-COMPONENTS -C ON LOLA GRID. -C (3)IMAX ... I-DIMENSION OF LOLA GRID -C IN WHICH X-AXIS PARALLELS EQUATOR WITH ORIGIN AT -C GREENWICH MERIDIAN AT I=1, WITH GREENWICH REPEATED -C AT I=IMAX -C (4)JMAX ... J-DIMENSION OF LOLA GRID -C IN WHICH J=1 IS AT EQUATOR, AND -C ROW J=JMAX IS AT NORTH POLE. -C -C OUTPUT ARGUMENTS: -C (5)IEXIT ... RETURN CODE -C -C RETURN CONDITIONS: -C IEXIT=0 IS NORMAL RETURN, -C IEXIT=1 IS ERROR RETURN DUE TO BAD VALUE GIVEN FOR IMAX/JMAX -C -C REMARKS: RESULTS WILL OVERSTORE J=JMAX ROW IN GIVEN FIELDS. -C THIS ROUTINE IS A CRUTCH TO BE USED TEMPORARILY -C UNTIL U & V FIELDS ON LOLA GRID ARE GENERATED WITH GOOD DATA -C IN POLE ROW. -C FOR AN EXAMPLE OF THIS SAME LOGIC SEE CRISSMAN'S SUBR POLUVN -C USED IN PROGRAM ATATRAN. -C SEE RUSS JONES, W3421, FOR STATUS OF LOLA GRID DATA. -C -C ATTRIBUTES: -C LANGUAGE: CF77 -C MACHINE : CRAY4 -C -C $$$ -C - DIMENSION FULOLA(IMAX,JMAX) - DIMENSION FVLOLA(IMAX,JMAX) -C - DATA CNV2RA / 0.0174533 / -C - IEXIT = 0 - IMAXM1 = IMAX - 1 - IF(IMAXM1 .LE. 0) GO TO 900 - JMAXM1 = JMAX - 1 - IF(JMAXM1 .LE. 0) GO TO 900 - DEGPGI = 360.0 / FLOAT(IMAXM1) -C ... WORK WITH WIND DATA FROM ONE ROW BELOW POLE ROW, -C ... ROTATING TO ONE ORIENTATION, THEN SUMMING THEM... - USUM = 0.0 - VSUM = 0.0 - DO 222 I = 1,IMAXM1 - ELONG = FLOAT(I-1) * DEGPGI - ELR = ELONG * CNV2RA - SINELR = SIN(ELR) - COSELR = COS(ELR) - USUM = USUM + FULOLA(I,JMAXM1)*COSELR - FVLOLA(I,JMAXM1)*SINELR - VSUM = VSUM + FULOLA(I,JMAXM1)*SINELR + FVLOLA(I,JMAXM1)*COSELR - 222 CONTINUE -C ... THEN, GET AVERAGE AT THAT STD MERIDIAN - UAVG = USUM / FLOAT(IMAXM1) - VAVG = VSUM / FLOAT(IMAXM1) -C ... THEN, ROTATE TO INDIVIDUAL MERIDIANS AND STASH IN POLE ROW - DO 333 I = 1,IMAXM1 - ELONG = FLOAT(I-1) * DEGPGI - ELR = ELONG * CNV2RA - SINELR = SIN(ELR) - COSELR = COS(ELR) - FULOLA(I,JMAX) = UAVG*COSELR + VAVG * SINELR - FVLOLA(I,JMAX) = -UAVG * SINELR + VAVG * COSELR - 333 CONTINUE - FULOLA(IMAX,JMAX) = FULOLA(1,JMAX) - FVLOLA(IMAX,JMAX) = FVLOLA(1,JMAX) -C ... WHICH FILLS THE REPEATED GREENWICH MERIDIAN NORTH POLE PT - GO TO 999 - 900 CONTINUE -C ... COMES HERE FOR ERROR EXIT. IMAX/JMAX OUT-OF-RANGE - IEXIT = 1 - GO TO 999 -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb2.fd/PLTTLL.f b/util/sorc/sixbitb2.fd/PLTTLL.f deleted file mode 100755 index bc24dde891..0000000000 --- a/util/sorc/sixbitb2.fd/PLTTLL.f +++ /dev/null @@ -1,3 +0,0 @@ - SUBROUTINE PLTTLL() - return - end diff --git a/util/sorc/sixbitb2.fd/PLTWLL.f b/util/sorc/sixbitb2.fd/PLTWLL.f deleted file mode 100755 index adeb31b27a..0000000000 --- a/util/sorc/sixbitb2.fd/PLTWLL.f +++ /dev/null @@ -1,3 +0,0 @@ - subroutine PLTWLL() - return - end diff --git a/util/sorc/sixbitb2.fd/RNCNTL.f b/util/sorc/sixbitb2.fd/RNCNTL.f deleted file mode 100755 index 65705e986b..0000000000 --- a/util/sorc/sixbitb2.fd/RNCNTL.f +++ /dev/null @@ -1,218 +0,0 @@ - SUBROUTINE RNCNTL(NMAPS,IDATC,IOPN,ISWTCH,KRUN1,ITOUT1,ICYC1, - 1 INOPN1,INOPN2,INOPNA,INOPNB) -C $$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: RNCNTL INPUT FIELD READER -C PRGMMR: LILLY ORG: W/NMC412 DATE: 95-05-05 -C -C ABSTRACT: READS IN THE BASIC JOB RUN. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 91-02-21 STEVE LILLY, MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRTY SUBROUTINE TO FORTRAN 77. -C -C USAGE: CALL RNCNTL(NMAPS,IDATC,IOPN,ISWTCH,KRUN1,ITOUT1,ICYCL1, -C INOPN1,INOPN2,INOPNA,INOPNB) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CF77 -C MACHINE: CRAY4 -C -C$$$ -C - DIMENSION LKRUN(3,4) - DIMENSION LICYL(2,2) - DIMENSION LITOUT(3,4) - DIMENSION ICODES(3,6) - DIMENSION JCODES(2,6) -C - DATA NKRUN/4/ -C ...RUN TYPE CONTROL TABLE -C - DATA LKRUN/4HOPNL,1H ,1,4HOPNL,1HB,2,4HCOUT,1HD,3,4HCOUT,1HT, - 1 4/ -C -C ...OUTPUT CYCLE CONTROL TABLE -C - DATA LICYL/3H00Z,1,3H12Z,2/ - DATA NITOUT/4/ -C -C ...OUTPUT TAU CONTROL TABLE -C - DATA LITOUT/4H1824,1HH,1,4H3036,1HH,2,4HALL ,1H ,3,4H2448,1HH,4 - 1 / - DATA NICYL/2/ - DATA NMAPM/100/ - DATA NOPCDS/6/ - DATA ICODES/4HOPN0,1H9,1,4HOPN1,1H0,2,4HOPN2,1H5,3,4HOPN2,1H6, - 1 4,4HOPN2,1H8,5,4HOPN3,1H3,6/ - DATA JCODES/4HJ080,1H4,4HJ082,1H4,4HJ087,1H4,4HJ999,1H8, - + 4HJ999,1H9,4HJ999,1H9/ -C ...THIS SUBROUTINE READS IN THE BASIC JOB RUN -C ...CONTROLS AND CHECKS THEM FOR PROPER CLASSIFICATIONS -C -C ...INPUT CONTROLS -C (1) KRUNA,KRUNB (A4,A1) -C WHERE KRUN=1 OPNL 18/24 OR 24/48 RUN -C 2 OPNL 30/36 RUN BACKUP -C 3 CHECKOUT RUN(DISK) -C 4 CHECKOUT RUN(TAPE) -C (2) ITOUTA,ITOUTB (A4,A1) -C WHERE ITOUT=1 OUTPUT 18/24 HR REGULAR -C 2 OUTPUT 30/36 HR BACKUP -C 3 ALL -C 4 OUTPUT 24/48 HR REGULAR -C (3) ICYCLA,ICYCLB (A4,A1) -C WHERE ICYCLE=1 00Z -C212 -C -C (4) NMAPS (I5) -C WHERE NMAPS=NO. OF MAPS TO BE PROCESSED -C -C (5) IDATC (I5) -C WHERE IDATC=0 NO DATE/TIME TEST -C 1 DATE/TIME TEST -C (6) IOPN (I5) -C WHERE IOPN=0 CHECKOUT RUN -C 1 OPERATIONAL RUN -C -C (7) INTAPE (I5) -C WHERE INTAPE=0 INPUT FROM DISK-OPERATIONAL -C 1 INPUT SPECTRAL FILES FROM TAPE -C -C (8) INOPNA,INOPNB (A4,A1) -C WHERE INOPN= OPERATIONAL JOB TYPE -C -C (9) ISWTCH=0 INPUT SCHEDULE CONTROLS FROM CARDS -C 1 INPUT SCHEDULE CONTROLS FORM DISK -C -C ...BASIC JOB RUN CONTROLS (SET FOR EACH JOB) -C -C -C -C?? READ 5500,KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS,IDATC, -C READ(5,550)KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS,IDATC, -c -c open(15,file='sixbitb.generic.f15') -c - READ(15,550)KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS,IDATC, - 1 IOPN,INTAPE,INOPNA,INOPNB,ISWTCH - 550 FORMAT(3(A4,A1),4I5,A4,A1,I5) -C5550 FORMAT(3(A4,A1),4I5,A4,A1,I5) -Corig PRINT 5509 - WRITE(6,5509) - 5509 FORMAT('1BASIC JOB RUN CONTROLS (SET FOR EACH JOB)') -Corig PRINT 5510, KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS - WRITE(6,5510) KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS - 5510 FORMAT('0OPERATIONAL RUN TYPE= ',A4,A1,' OUTPUT TAU= ',A4,A1,' - 1RUN CYCLE= ',A4,A1,' NUMBER OF MAPS= ',I5) -Corig PRINT 5511,IDATC,IOPN,INTAPE - WRITE(6,5511) IDATC,IOPN,INTAPE - 5511 FORMAT('0DATE CHECK= ',I5,' OPERATIONAL FLAG= ',I5,' INPUT TAP - 1E FLAG= ',I5) -Corig PRINT 5513,ISWTCH,INOPNA,INOPNB - WRITE(6,5513) ISWTCH,INOPNA,INOPNB - 5513 FORMAT('0INPUT SCHEDULE CONTROL SWITCH= ',I5,' OPNL JOB TYPE= ' - 1,A4,A1) - DO 5550 IK=1,NKRUN - IF((KRUNA.NE.LKRUN(1,IK)).OR.(KRUNB.NE.LKRUN(2,IK))) GO TO 5550 - KRUN1=LKRUN(3,IK) - GO TO 5553 - 5550 CONTINUE -Corig PRINT 5540 - WRITE(6,5540) - 5540 FORMAT('0ERROR ON CONTROL INPUT CARD FOR KRUN-FIX THEN RESTART') - CALL W3TAGE('SIXBITB2') - STOP 541 - 5553 CONTINUE - DO 5555 IK=1,NITOUT - IF((ITOUTA.NE.LITOUT(1,IK)).OR.(ITOUTB.NE.LITOUT(2,IK))) GO TO - 15555 - ITOUT1=LITOUT(3,IK) - GO TO 5560 - 5555 CONTINUE -Corig PRINT 5543 - WRITE(6,5543) - 5543 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ITOUT-FIX THEN RESTART') - CALL W3TAGE('SIXBITB2') - STOP 544 - 5560 CONTINUE - DO 5565 IK=1,NICYL - IF(ICYCLA.NE.LICYL(1,IK)) GO TO 5565 - ICYC1=LICYL(2,IK) - GO TO 5570 - 5565 CONTINUE -Corig PRINT 5545 - WRITE(6,5545) - 5545 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ICYCLE-FIX THEN RESTART') - CALL W3TAGE('SIXBITB2') - STOP 546 - 5570 CONTINUE - IF((NMAPS.LE.NMAPM).AND.(NMAPS.GT.0)) GO TO 5575 -Corig PRINT 5547 - WRITE(6,5547) - 5547 FORMAT('0ERROR ON CONTROL INPUT CARD FOR NMAPS-FIX THEN RESTART') - CALL W3TAGE('SIXBITB2') - STOP 552 - 5575 CONTINUE - IF((IDATC.EQ.0).OR.(IDATC.EQ.1)) GO TO 5620 - WRITE(6,5600) - 5600 FORMAT('0ERROR ON CONTROL INPUT CARD FOR IDATC-FIX THEN RESTART') - CALL W3TAGE('SIXBITB2') - STOP 601 - 5620 CONTINUE - IF((IOPN.EQ.0).OR.(IOPN.EQ.1)) GO TO 5630 -Corig PRINT5602 - WRITE(6,5602) - 5602 FORMAT('0ERROR ON CONTROL INPUT CARD FOR IOPN-FIX THEN RESTART') - CALL W3TAGE('SIXBITB2') - STOP 603 - 5630 CONTINUE - IF((INTAPE.GT.-1).AND.(INTAPE.LE.1)) GO TO 5640 -Corig PRINT 5604 - WRITE(6,5604) - 5604 FORMAT('0ERROR ON CONTROL INPUT CARD FOR INTAPE-FIX THEN RESTART') - CALL W3TAGE('SIXBITB2') - STOP 605 - 5640 CONTINUE - IF((ISWTCH.GT.-1).AND.(ISWTCH.LE.1)) GO TO 5650 -Corig PRINT 5606 - WRITE(6,5606) - 5606 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ISWTCH-FIX THEN RSTART') - CALL W3TAGE('SIXBITB2') - STOP 607 - 5650 CONTINUE - DO 5651 IK=1,NOPCDS - IF((INOPNA.NE.ICODES(1,IK)).OR.(INOPNB.NE.ICODES(2,IK))) GO TO - 15651 - INOP=ICODES(3,IK) - INOPN1=JCODES(1,INOP) - INOPN2=JCODES(2,INOP) - GO TO 5654 - 5651 CONTINUE -Corig PRINT 5652 - WRITE(6,5652) - 5652 FORMAT('0ERROR ON CONTROL INPUT CARD FOR INOPN-FIX THEN RESTART') - CALL W3TAGE('SIXBITB2') - STOP 653 - 5654 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb2.fd/SLTCRD.f b/util/sorc/sixbitb2.fd/SLTCRD.f deleted file mode 100755 index 16056d3868..0000000000 --- a/util/sorc/sixbitb2.fd/SLTCRD.f +++ /dev/null @@ -1,213 +0,0 @@ - SUBROUTINE SLTCRD(ISWTCH,ISLOTA,ISLOTB,IPANA,IPANB,IRLAB,IREM3A, - 1 IREM3B,IREM3C,IREM4A,IREM4B,IAREA3,ISUB,IFLAB,INSET,IREM1A, - 1 IREM1B) -C $$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: SLTCRD INPUT FIELD READER -C PRGMMR: LILLY ORG: W/NMC421 DATE: 95-05-05 -C -C ABSTRACT: READS IN THE MAP SLOT CARDS AND CHECKS THEM FOR -C ACCEPTABLE ENTRIES. -C -C PROGRAM HISTORY LOG: -C ??-??-?? UNKNOWN -C 91-02-21 STEVE LILLY, MODIFIED ROUTINE AND ADDED DOC BLOCK. -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77. -C -C USAGE: CALL SLTCRD(ISWTCH,ISLOTA,ISLOTB,IPANA,IPANB,IRLAB,IREM3A, -C IREM3B,IREM3C,IREM4A,IREM4B,IAREA3,ISUB,IFLAB, -C INSET,IREM1A,IREM1B) -C INPUT ARGUMENT LIST: -C ISWTCH - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C ISLOTA - FIRST 4 CHARACTERS OF FAX/VARIAN SLOT NUMBER. -C ISLOTB - THE 5TH CHARACTER OF FAX/VARIAN SLOT NUMBER. -C IPANA - FIRST 4 CHARACTERS OF PANEL PART OR REAL INSET PART. -C IPANB - THE 5TH CHARACTER OF PANEL PART OR REAL INSET PART. -C IRLAB - REAR LABEL INSET NUMBER. -C IREM3A - FIRST 4 CHARACTERS OF PANEL 1 OR PANEL 3 OR -C - SUBSET TITLE. -C IREM3B - 5 - 8 CHARACTERS OF PANEL 1 OR PANEL 3 OR -C - SUBSET TITLE. -C IREM3C - 9 - 10 CHARACTERS OF PANEL 1 OR PANEL 3 OR -C - SUBSET TITLE. -C IREM4A - -C IREM4B - -C IAREA3 - -C ISUB - SUBSET NUMBER. -C IFLAB - FRONT LABEL INSET NUMBER. -C INSET - INSET NUMBER. -C IREM1A - FIRST 4 CHARACTERS OF PANEL 2 OR PANEL 4 TITLE. -C IREM1B - 5 - 8 CHARACTERS OF PANEL 2 OR PANEL 4 TITLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CF77 -C MACHINE: CRAY4 -C -C$$$ -C -C ...THIS SUBROUTINE READS IN THE MAP SLOT CARDS AND CHECKS THEM -C ...FOR ACCEPTABLE ENTRIES -C - INTEGER IPANC(3,11) -C INCLUDE THE ATLANTIC AND PACIFIC FAX CUTS - INTEGER IAREA(3,19) -C - DATA IAREA/4HXX14,1H ,1,4HVFUL,1HL,2,4HEAST,1H ,3,4HWEST,1H ,4, - 1 4HNT22,1H ,5,4HNT23,1H ,6,4HPN29,1H ,7,4HATLN,1H ,8, - 2 4HPACF,1H ,9,4HCUTA,1H ,10, - 3 4HCUTB,1H ,11, - 3 4HCUTC,1H ,12, - 3 4HCUTD,1H ,13, - 3 4HCUTE,1H ,14, - 3 4HCUTF,1H ,15, - 3 4HCUTG,1H ,16, - 3 4HCUTH,1H ,17, - 3 4HCUTI,1H ,18, - 3 4HCUTJ,1H ,19 - 4 / - common/st/cstrip,cstrip2 - character*80 cstrip,cstrip2 - DATA IPANC/4HP1 ,1H ,1,4HP2 ,1H ,2,4HP3 ,1H ,3,4HP4 ,1H ,4, - 1 4HP1A ,1H ,5,4HP2A ,1H ,6,4HP3A ,1H ,7,4HP4A ,1H ,8,4HI1 , - 2 1H ,9,4HI2 ,1H ,10,4HB2 ,1H ,11/ - DATA NPARTS/11/ - DATA IBCHK/4H / -Corig DATA JU/8/ - DATA JU/18/ -C THIS IS TO ADD THE ATLANTIC AND THE PACIFIC - DATA NAREAS /19/ -C MAKE THIS CHANGE FOR CHECK OUT -C CHECKOUT .... DATA IR1/200/ -C OPERATIONAL .... DATA IR1/130/ - DATA IR1/50/ -c DATA IR1/130/ - DATA IR2/5000/ - DATA IR3/80/ - DATA IR4/99/ -C -C ...BASIC FAX/VARIAN CONTROLS (EACH MAP SUB-SECTION) -C -C ICARD2 (A1)= CARD2 CONTROL -C ISLOTA,B (A4,A1)= FAX/VARIAN SLOT NO. -C IPANA,B (A4,A1)= PANEL PART OR REAL INSET PART -C IAREA1,2 (A4,A1)= FAX/VARIAN OUTPUT PIECE -C ISUB (I5)= SUBSET NO. -C IFLAB (I5)= FRONT LABEL INSET NO. -C INSET (I5)= INSET NO. -C IRLAB (I5)= REAR LABEL INSET NO. -C IREM1A,B,C (A4,A4,A2)= PANEL 2 OR PANEL4 TITLE -C IREM3A,B,C (A4,A4,A2)= PANEL 1 OR PANEL3 OR SUBSET TITLE -C - 8200 FORMAT(A1,3(A4,A1),4I5,2A4,A2,4A4,A2,4A4) - IF(ISWTCH.EQ.1) GO TO 8002 - READ (JU,8200) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ -C8200 FORMAT(A1,3(A4,A1),4I5,2A4,A2,4A4,A2,4A4) - GO TO 8003 - 8002 READ (JU,8200) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB - 1 ,IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 8003 CONTINUE -Corig PRINT 8202, ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB,IFLAB, - WRITE(6,8202) ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB,IFLAB, - 1 INSET - 8202 FORMAT('0SLOT NO.= ',A4,A1,' PANEL/INSET= ',A4,A1, - 2 'AREA= ',A4,A1,' SUBSET NO.=',I5,' FRONT LABEL INSET NO.=', - 2 I5,' INSET NO.=',I5) -C -C ...CHECK FOR REASONABLE PANEL PARTS/INSET PARTS -C - DO 8215 IK=1,NPARTS - IF((IPANA.EQ.IBCHK).AND.(IPANB.EQ.IBCHK)) GO TO 8220 - IF((IPANA.NE.IPANC(1,IK)).OR.(IPANB.NE.IPANC(2,IK))) GO TO 8215 - IPAN1=IPANC(3,IK) - GO TO 8220 - 8215 CONTINUE -Corig PRINT 8216 - WRITE(6,8216) - 8216 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IPAN-FIX THEN - 1RETRY') - CALL W3TAGE('SIXBITB2') - STOP 216 - 8220 CONTINUE -C -C ...CHECK FOR REASONABLE AREA REQUESTS -C - DO 8235 IK=1,NAREAS - IF((IAREA1.EQ.IBCHK).AND.(IAREA2.EQ.IBCHK)) GO TO 8225 - print 175,iarea1,iarea(1,ik),iarea2,iarea(2,ik),ik - 175 format(4a6,i9) - IF((IAREA1.NE.IAREA(1,IK)).OR.(IAREA2.NE.IAREA(2,IK))) GO TO 8235 - IAREA3=IAREA(3,IK) - GO TO 8240 -C8225 PRINT 8226 - 8225 CONTINUE - WRITE(6,8226) - 8226 FORMAT('0IAREA1,2 WAS BLANK-WILL CONTINUE') - GO TO 8240 - 8235 CONTINUE -Corig PRINT 8236 - WRITE(6,8236) - 8236 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IAREA1,2-FIX - 1THEN RETRY') - CALL W3TAGE('SIXBITB2') - STOP 236 - 8240 CONTINUE -C -C ...CHECK FOR REASONABLE SUBSET/INSET NUMBERS -C - IF(ISUB.LT.0) GO TO 8243 - IF(((ISUB.GE.IR1).AND.(ISUB.LE.IR2)).OR.((ISUB.GE.IR3).AND.(ISUB.L - 1E.IR4))) GO TO 8301 -Corig PRINT 8241, ISUB - WRITE(6,8241) ISUB - 8241 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR ISUB-FIX THEN - 1RETRY ',I4) - CALL W3TAGE('SIXBITB2') - STOP 241 - 8243 CONTINUE -Corig PRINT 8244 - WRITE(6,8244) - 8244 FORMAT('0SUBSET NUMBER IS BLANK-WILL CONTINUE') - 8301 CONTINUE - IF(IFLAB.LE.0) GO TO 8253 - IF(((IFLAB.GE.IR1).AND.(IFLAB.LE.IR2)).OR.((IFLAB.GE.IR3).AND.(IFL - 1AB.LE.IR4))) GO TO 8302 -Corig PRINT 8251 - WRITE(6,8251) - 8251 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IFLAB-FIX THEN - 1 RETRY') - CALL W3TAGE('SIXBITB2') - STOP 251 - 8253 CONTINUE - 8302 CONTINUE - IF(INSET.LE.0) GO TO 8263 - IF(((INSET.GE.IR1).AND.(INSET.LE.IR2)).OR.((INSET.GE.IR3).AND.(INS - 1ET.LE.IR4))) GO TO 8303 -Corig PRINT 8261 - WRITE(6,8261) - 8261 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR INSET-FIX THEN - 1 RETRY') - CALL W3TAGE('SIXBITB2') - STOP 261 - 8263 CONTINUE - 8303 CONTINUE - write(cstrip2(7:11),147)iarea1 - 147 format(a5) - RETURN - END diff --git a/util/sorc/sixbitb2.fd/WNDIRT.f b/util/sorc/sixbitb2.fd/WNDIRT.f deleted file mode 100755 index 47422696b9..0000000000 --- a/util/sorc/sixbitb2.fd/WNDIRT.f +++ /dev/null @@ -1,85 +0,0 @@ - SUBROUTINE WNDIRT(IDOTS,JDOTS,NDIR,IDDGD,NSSS) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: WNDIRT PLOT WIND DIRECTION NEAR END OF WIND STAF -C PRGMMR: HENRICHSEN ORG: W/NMC41 DATE: 88-06-20 -C -C ABSTRACT: FIND THE POSITION OF LITTLE WIND DIRECTION DIGIT NEAR END -C OF WIND STAFF AND PLOTS THE 2ND DIGET OF NDIR AT THAT POSITION. -C -C PROGRAM HISTORY LOG: -C YY-0M-DD ORIGINAL AUTHOR(S)'S NAME(S) HERE -C 88-06-20 HENRICHSEN CONVERT TO FORTRAN 77 AND ADD DOCBLOCK. -C -C USAGE: CALL WNDIRT(IDOTS,JDOTS,NDIR,IDDGD,NSSS) -C INPUT ARGUMENT LIST: -C IDOTS - X COORIDNATE OF POINT IN DOTS. -C JDOTS - Y CORRIDNATE OF POINT IN DOTS. -C NDIR - TRUE WIND DIR IN TENS OF DEGREES (1 THRU 36, OR 99 -C - IF CALM WIND) IN CHARACTER FORMAT (A2). -C IDDGD - GRID ORIENTED WIND DIRECTION IN TENS OD DEGREES IN -C - INTEGER FORMAT (I2). -C NSSS - INTEGER WIND SPEED IN KTS (I3) (=0 IF .LT. 5KTS). -C -C OUTPUT ARGUMENT LIST:NONE -C -C -C OUTPUT FILES: -C FT06F001 - STANDARD PRINT FILE. -C -C REMARKS: CALLS PUTLAB WHICH WRITES TO A COMMON LABEL ARRAY OR -C TAPE 55 (FT55F0001). -C -C ATTRIBUTES: -C LANGUAGE: MVS FORTRAN 77. -C MACHINE: NAS -C -C$$$ - REAL CONVTR - dimension kvv(2) - DATA CONVTR /0.174533/ -C ...CONVERTS TENS OF DEGREES TO RADIANS - REAL HYPKA - DATA HYPKA /31.0/ - REAL HYPKB - DATA HYPKB /37.0/ - REAL ADXLL - DATA ADXLL /-3.5/ - REAL ADYLL - DATA ADYLL /-5.0/ - character*8 ctext - equivalence (itext, ctext) -CKUMAR -CKUMAR Don't have to change ctext since it is not used -CKUMAR -C ...WHICH ARE INCREMENTS FORM CENTER OF FIGURE TO LL CORNER -C - IF(NSSS.LE.0)GO TO 800 - HYPOT=HYPKA - IF(NSSS.GE.48) HYPOT=HYPKB - IDDA=45-IDDGD - IF(IDDA.GE.36) IDDA=IDDA-36 - DDA=IDDA+1 -C ...PLOTTED DIGIT TEN DEGREES AWAY FROM STAFF - DIRAD=DDA*CONVTR - DELX=HYPOT*COS(DIRAD) - DELY=HYPOT*SIN(DIRAD) - ILLDIG=FLOAT(IDOTS)+DELX+ADXLL+0.5 - IF(ILLDIG.LE.0) GO TO 810 - JLLDIG=FLOAT(JDOTS)+DELY+ADYLL+0.5 - IF(JLLDIG.LE.0) GO TO 810 -C ...THAT FINISHES POSITIONING OF DIGIT - ITEXT=ISHFT(NDIR,-8) - print*,'In WNDIRT ITEXT = ',itext - IPRIOR=1 - 1099 format(' putlab form gulftitl',i9) - CALL lPUTLAB(ILLDIG,JLLDIG,19.0,ITEXT,0.0,1,IPRIOR,0) -C ...WHICH IS NORMAL EXIT - GO TO 800 -C - 810 CONTINUE -C ...COMES TO 810 FOR NEG VALUED I OR J, SO OFF GRID-EXIT - WRITE(6,FMT='('' NEGATIVE VALUED I/J IN WNDIRT'',/)') - 800 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb2.fd/WNDRNH.f b/util/sorc/sixbitb2.fd/WNDRNH.f deleted file mode 100755 index 9714b4cc7d..0000000000 --- a/util/sorc/sixbitb2.fd/WNDRNH.f +++ /dev/null @@ -1,102 +0,0 @@ - SUBROUTINE WNDRNH(ULOLA,VLOLA,ALAT,WLONG,ORIENT, - 1 ISPEED,IDDTRU,IDDGRD) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: WNDRNH WIND DIRECTION/SPEED FROM U & V (LOLA) -C PRGMMR: LILLY ORG: NMC/412 DATE: 95-05-05 -C -C ABSTRACT: USING THE GIVEN U- AND V-COMPONENTS OF THE WIND (EARTH- -C ORIENTED), THIS ROUTINE CALCULATES (A) THE WIND SPEED, -C (B) THE EARTH-ORIENTED WIND DIRECTION, AND (C) THE NORTHERN- -C HEMISPHERIC POLAR-STEREOGRAPHIC GRID-ORIENTED WIND DIRECTION. -C -C PROGRAM HISTORY LOG: -C 82-04-22 SHIMOMURA -C 95-05-05 LILLY CONVRT SUBROUTINE TO FORTRAN 77 -C -C USAGE: CALL WNDRNH(ULOLA, VLOLA, ALAT, WLONG, ORIENT, -C ISPEED, IDDTRU, IDDGRD) -C -C INPUT ARGUMENTS: -C (1)ULOLA ... WEST-TO-EAST COMPONENT OF WIND -C AS FOUND, FOR EXAMPLE, IN THE U-COMPONENT DATA -C IN LONGITUDE/LATITUDE (LOLA) GRID. -C (2)VLOLA ... SOUTH-TO-NORTH COMPONENT OF WIND -C AS FOUND, FOR EXAMPLE, IN THE V-COMPONENT DATA -C IN LONGITUDE/LATITUDE (LOLA) GRID. -C (3)ALAT ... LOCATION OF THIS WIND DATA ON EARTH -C IN DEGREES NORTH LATITUDE -C (4)WLONG ... AND DEGREES WEST LONGITUDE. -C (5)ORIENT... ORIENTATION OF DESTINATION GRID FOR CALCULATING -C THE POLAR-STEREO GRID-ORIENTED WIND DIRECTION. -C ORIENT IS THE VERTICAL MERIDIAN OF POLAR -C STEREOGRAPHIC NORTHERN HEMISPHERIC GRID. -C ORIENT = 80.0 FOR NMC STD 65*65 GRID -C ORIENT =105.0 FOR NMC LFM GRID. -C -C OUTPUT ARGUMENTS: -C (6)ISPEED... WIND SPEED (I*4) IN SAME UNITS AS GIVEN COMPONENTS -C (7)IDDTRU... WIND DIRECTION (I*4), EARTH-ORIENTED, -C IN TENS OF DEGREES. -C (8)IDDGRD... WIND DIRECTION (I*4), N.HEMI. GRID ORIENTED, -C IN TENS OF DEGREES. -C -C REMARKS: WIND DIRECTION = 36 FOR NORTH WIND -C WIND DIRECTION = 00 FOR CALM WIND. -C IDDTRU AT NORTH POLE RETURNS WITH THE WIND DIRECTION AS THE -C MERIDIAN (WEST LONGITUDE) FROM WHICH THE WIND IS BLOWING -C TOWARD THE POLE. -C -C ATTRIBUTES: -C LANGUAGE: CF77 -C MACHINE : CRAY4 -C -C$$$ -C - DATA CNV2RA / 0.0174533 / - DATA CNV2DE / 57.29578 / -C - UL = ULOLA - VL = VLOLA - SPEED = SQRT(UL*UL + VL*VL) - ISPEED = SPEED + SIGN(0.5,SPEED) - IF(ISPEED .GT. 0) GO TO 300 -C ... ELSE, CALM WIND HERE ... - IDDTRU = 0 - IDDGRD = 0 - GO TO 999 -C -C ... COMES HERE IF NOT CALM WIND - 300 CONTINUE - DIR = 270.0 - CNV2DE*ATAN2(VL,UL) -C ... WHERE DIR IS DIRECTION FROM WHICH WIND IS BLOWING -C ... IN USUAL EARTH-ORIENTED DIRECTION - IDDTRU = 0.1*DIR + SIGN(0.5,DIR) - IF(ALAT .LE. 89.0) GO TO 333 -C ... ELSE, SPECIAL HANDLING FOR POLE POINT -C ... ROTATE COORDINATE AXIS SO THE VECTOR IS FOR OBSERVER AT 180 - THETAR = (WLONG-180.0) * CNV2RA - ALFAR = ATAN2(VL,UL) - PHIR = ALFAR - THETAR - UPRIME = SPEED * COS(PHIR) - VPRIME = SPEED * SIN(PHIR) -C ... WHERE UPRIME,VPRIME IS FOR ROTATED TO 180.0 DEGREESMERIDIAN - DIRNP = 270.0 - CNV2DE*ATAN2(VPRIME,UPRIME) - IDDTRU = 0.1*DIRNP + SIGN(0.5,DIRNP) - GO TO 333 -C - 333 CONTINUE - IF(IDDTRU .GT. 36) IDDTRU = IDDTRU - 36 - IF(IDDTRU .LE. 0) IDDTRU=36+IDDTRU -C ... NORTH WIND WILL HAVE 36 ... NOT 00 -C -C ... NEXT, TO GET NMC PS STD NMC GRID ORIENTED DIRECTION ... - DDDGRD = DIR + (WLONG - ORIENT) - IDDGRD = 0.1*DDDGRD + SIGN(0.5,DDDGRD) - IF(IDDGRD .GT. 36) IDDGRD = IDDGRD - 36 - IF(IDDGRD .LE. 0) IDDGRD = 36+IDDGRD - GO TO 999 -C - 999 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb2.fd/box.f b/util/sorc/sixbitb2.fd/box.f deleted file mode 100755 index d3b6334733..0000000000 --- a/util/sorc/sixbitb2.fd/box.f +++ /dev/null @@ -1,25 +0,0 @@ - subroutine box(ix,iy,il,jl) -c draw a box with lower left corner at specified pixel location -c and upper right corner defined by side length(in characters, not -c pixels) - dimension kp(2) - character*1 cv -c call fonts2 - kp(1)=1 - kp(2)=0 - do 46,k=1,il - kp(1)=0 - cv=char(65) -c horizontal bars - call putlab(ix+20*(k-1),iy,16.,cv,90.0,1,kp,0) - call putlab(ix+20*(k-1),iy+(jl*20),16.,cv,90.0,1,kp,0) - 46 continue - do 47,k=1,jl - kp(1)=0 - cv=char(65) -c vertical bars - call putlab(ix,iy+20*(k-1),17.,cv,90.0,1,kp,0) - call putlab(ix+(il*20),iy+20*(k-1),17.,cv,90.0,1,kp,0) - 47 continue - return - end diff --git a/util/sorc/sixbitb2.fd/cntr.fake.f b/util/sorc/sixbitb2.fd/cntr.fake.f deleted file mode 100755 index 4b3d688f5e..0000000000 --- a/util/sorc/sixbitb2.fd/cntr.fake.f +++ /dev/null @@ -1,1238 +0,0 @@ - SUBROUTINE CNTR(IRET_CNT, IMAGE, IMAGSIZ_WRDS, - 1 MAP, LABEL, ICHK, IFID, SCHED, INDEX, - 1 NFLDS, - 2 FLD1, DASH1, OFSET1, SHAD1, - 3 FLD2, DASH2, OFSET2, SHAD2, - 4 FLD3, DASH3, OFSET3, SHAD3, - 5 FLD4, DASH4, OFSET4, SHAD4) -C 30-OCT-1996/LLIN -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CNTR EXECUTIVE FOR BEDIENT'S GRAPHICS PACKAGE -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE:1999-09-08 -C -C ABSTRACT: SUBR CNTR() IS THE EXECUTIVE FOR THE BEDIENT GRAPHICS -C PACKAGE WHICH STANDS AT THE GATEWAY BETWEEN THE GRAPHICS -C APPLICATIONS PROGRAM (WHICH PREPARES GRIDPOINT DATA FIELDS AND -C THEIR DISPLAY SPECIFICATIONS, AND TEXT AND SYMBOL DATA INTO -C "LABEL-ARRAY" FORMAT); AND BEDIENT'S GRAPHIC PACKAGE WHICH INCLUDES -C THE FUNCTIONS WHICH FETCHES THE RASTER MAP-BACKGROUND AND -C INITIALIZES THE IMAGE WORKSPACE WITH THE MAP-BACKGROUND; CONTOURS -C THE GIVEN GRIDPOINT DATA FIELDS AND LAYS THE RESULTING CONTOURS INTO -C THE IMAGE BIT-PLANE; ACCEPTS THE "LABEL-ARRAY" FORMATTED TEXT- AND -C SYMBOL-DATA AND PLOTS THOSE INTO THE IMAGE BIT-PLANE; ENCODES THE -C IMAGE IN NMC 6-BIT PACKED RLE RASTER CODE; FORMATS THE RESULTING -C PRODUCT WITH THE STRUCTURE: (A)THE GIVEN HEADER ("IFID"); (B) THE -C MAIN SECTION OF RASTER GRAPHICS; (C) THE RASTER-FORMATTED FAX STRIP- -C TITLES; (D) THE FAX-CUT WINDOWING SPECIFICATIONS ("SCHED"); AND -C (E) THE PRODUCT TERMINATOR. -C -C THIS VERSION OF cntr ACCEPTS THE CALL SEQUENCE ARGUMENTS (WITH SOME -C CHANGES); AND REFORMATS THOSE ARGUMENTS IN ORDER -C TO ADAPT TO CALLING OUR OWN UNDERLYING REPLACEMENT FUNCTIONS. -C -C PROGRAM HISTORY LOG: -C ??-??-?? ORIGINAL AUTHOR - H. ART BEDIENT -C ??-??-?? GLORIA DENT -C ??-??-?? LUKE LIN -C 93-03-30 LUKE LIN: MODIFY THE 4-CHAR INTEGER TO ENHANCE CNTR -C 93-05-11 LILLY INSERTS TEMPLATE. -C 96-02-28 SHIMOMURA: CONVERT FROM IBM FORTRAN TO CRAY FORTRAN -C 96-03-04 SHIMOMURA: MAKING A NEW VERSION TO ADAPT THE OLD CALL -C SEQUENCE TO A REPLACED SET OF UNDERLYING -C FUNCTIONS. -C 96-06-18 SHIMOMURA: ADDING STRIP-TITLE AND ISCHED LOGIC -C 96-09-23 LUKE LIN: MODIFY THE SHADE OPTIONS. -C 96-10-30 LUKE LIN: INCREASE THE PRIORITY LOOPING FROM 3 TO 5 FOR WINDBARB. -C 97-02-03 LUKE LIN: LOAD IFID PROPERLY. -C 1999-07-01 KRISHNA KUMAR MODIFY TO RUN ON IBM RS/6000 -C 1999-08-20 HENRICHSEN MODIFY TO USE USE DIRECT ACCESS I/O ON -C FAX FILE FOR IBM SP. USE LOCAL DIRECTORY FOR -C MAP BACKGROUND, HENCE EACH SCRIPT MUST COPY -C THE APPROPRIATE MAP BACKGROUND FILES FROM -C PRODUCTION DIRECTORY -C /nwprod/util/fix/graph_gphbg -C OR IN CHECK OUT USER MAY USE OWN LOCAL -C BACKGROUND DIRECTORY SUCH AS -C /nfsuser/g02/wx12ph/util/fix/graph_gphbg -C USAGE: CALL CNTR(IRET_CNT,MAP,LABEL,ICHK,IFID,SCHED,INDEX,NFLDS, -C 1 FLD1,DASH1,OFSET1,SHAD1, -C 2 FLD2,DASH2,OFSET2,SHAD2, -C 3 FLD3,DASH3,OFSET3,SHAD3, -C 4 FLD4,DASH4,OFSET4,SHAD4) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C (0.) IRET_CNT - INTEGER RETURN_CODE -C -C (1.) MAP - INTEGER MAP(15) IS A LIST CONTAINING: -C MAP(1): BACKGROUND NAME IN 6 CHARACTERS, FOLLOWED BY -C TWO BYTES OF FILL -- NULL IS PREFERRED -C -C MAP(2): FLAGS IN TWO LOW-ORDER BYTES -C X'0001' = HASH THE BGND (TURN OFF EVERY OTHER PIXEL); -C X'0002' = DOUBLE THE SCALE OF THIS BGND; -C X'0004' = 2-PANEL ... TO PLACE A DUPLICATE OF A CUT -C OUT OF THE GIVEN MAP-BACKGROUND BESIDE -C THE FIRST; -C X'0008' = LEAVE PRODUCT OPEN AT END OF THIS CALL; -C X'0010' = ADD THIS PRODUCT ONTO AN OPEN PRODUCT FILE; -C X'0020' = CYCLIC PRODUCT; -C (SOME SIDEWAYS MERCATOR PRODUCTS CAN -C EXTEND BEYOND LAST SCANLINE BY CYCLING TO -C CONTINUE WITH THE FIRST SCANLINE. IF THE -C DESIRED PRODUCT AND ITS MERCATOR GRID -C DOES NOT END AT THE SAME MERIDIAN AS THE -C MAP BGND, THEN THIS OPTION WILL PERMIT -C THE GEOGRAPHY TO EXTEND CYCLICALLY.) -C X'0040' = AFOS OUTPUT REQUIRED. -C -C FOLLOWED BY THE MAP REGISTRATION CONSTANTS: -C MAP(3), (4), (5), (6): (FOR THE ENTIRE PRODUCT), -C I, J, WIDTH,LENGTH -C MAP(7), (8), (9), (10): (FOR THE MAP BACKGROUND), -C I, J, WIDTH,LENGTH -C MAP(11),(12): FOR CONTOUR-POSITION FINE-ADJUSTMENT -C DI, DJ -C MAP(13),(14): FOR TEXT- & SYMBOL-PLOT POSITION FINE-ADJUST -C DI, DJ -C MAP(15) = T1 -C T1 GRID-LENGTH IN FAX UNITS AS A REAL NUMBER -C -C ALL ORIGINS ARE MEASURED FROM THE BACKGROUND MAP -C IF ANY, AT A POINT 1800 UNITS TO THE LEFT OF THE FAX EDGE -C IN SCAN LINE UNITS. -C FINAL FAX START WILL BE AT RIGHT EDGE OF PRODUCT -C CONTOUR-ADJUST IS NORMALLY MEASURED FROM THE LOWER -C LEFT CORNER OF THE BACKGROUND. A LINE WITH HLL=P -C WILL HAVE ZERO ADJUST. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (2.) LABEL - INTEGER LABEL(2048) -C LABEL IS AN ARRAY CONTAINING 2 WORDS PER ENTRY OF THE FORM: -C VFD 15/J, 1/FLAG, 3/PRIORITY, 13/I -C VFD 32/4HLITERAL -C -C THE LITERAL STRING TERMINATES BY '$' IF LESS THAN 4; -C THE LABEL-ARRAY IS TERMINATED BY A PAIR OF ZERO WORDS. -C IF(J .GE. 7400) THEN -C THIS LABEL-ITEM IS PUT IN THE CHART-LABEL RECORD. - -C IF(IOR(LABEL(1),LABEL(2)) .EQ. 0) THEN -C THERE IS NO LABEL-ARRAY TEXT-DATA TO PROCESS; - -C IF(LABEL(1) .EQ. -1) THEN -C LABEL-ARRAY DATA IS OUT ON FILE 55; - -C ELSE -C LABEL-ARRAY IS FOUND IN LABELLED COMMON -C AND DOES NOT EXCEED 1024 ITEMS. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (3.) ICHK - INTEGER ICHK(3) -C ICHK(1) IS FOR THE RETURN CODE -C (SEE UNDER OUTPUT ARGUMENT LIST) -C -C ICHK(2) = WORK-SPACE ALLOCATED IN LABELLED COMMON /ISPACE/ -C THE LENGTH MUST BE AT LEAST 6*2048 IF MERGE IS USED -C THE LENGTH MUST BE AT LEAST -C 5219 + (8+NFLDS*5)*T + NFLDS*2*Q*T -C WHERE Q=INTF(T1/4.) + 1 -C T=(2*P)+1-ODD) - -C ICHK(3) = 0; FOR A NORMAL MAP -C = 1; FOR THE LAST MAP IN THE PRODUCTS FILE; SO CLOSE -C THE OUTPUT FILE WITH AN END-OF-ALL-MAPS FLAG. - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (4.) IFID - INTEGER*8 IFID(6) ... = 48-bytes -C IFID IS THE FRONT ID FOR THIS OUTPUT MAP PRODUCT -C IT CONTAINS 48 BYTES. THE FIRST THREE ARE REPLACED BY A -C FLAG. THE BYTE(4) = 'F' -- FOR FAX TRANMISSION; -C = 'V' -- FOR LOCAL "VARIAN" PLOTTER ONLY; -C = 'B' -- FOR BOTH OF THE ABOVE; -C THE REMAINDER IS DATE TIME AND PRODUCT TITLE INFORMATION -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (5.) SCHED - INTEGER SCHED(8,60) -C SCHED CONTROLS THE SUBSEQUENT FAX WINDOWING AND COMPOSITING -C BY OSO AFTER WE GENERATE THE PRODUCT AND SEND IT TO OSO. -C THE LIMITING NO. OF SCHEDULE ENTRIES PERMITTED = 59 ENTRIES -C SCHED IS AN ARRAY CONTAINING 8 I*2 WORDS PER ENTRY -C DEFINING FAX CUTS -C II1,II2,II3,II4, L5A,L5B,L6A,L6B, II7,II8 -C I2 I2 2X I2 I1 I1 I1 I1 I2 I2 - -C WHERE -C II1 IS MAP SUBSET/INSET NUMBER (IN BINARY); - -C II2 IS STARTING SCAN-LINE NUMBER (IN BINARY) -C (WHICH IS THE Y-ORIGIN OF THIS CUT); -C II3 IS RESERVED -C (II2 VALUE IS CONVERTED, BY CNTR, -C INTO RECORD NO. IN WORD II2 -C AND BYTE NO. IN WORD II3 ) - -C II4 IS THE COUNT OF SCANLINES IN THIS CUT -C (WHICH IS THE Y-DIMENSION OF THIS CUT); - -C L5A CONTAINS 8 FLAG BITS -C L5B IS INDENT-VALUE(IN BYTES) -C (WHICH IS THE X-ORIGIN OF THIS CUT); -C L6A IS COMPONENT WIDTH(IN BYTES) -C (WHICH IS THE X-DIMENSION OF THIS CUT); - -C ...SPECS FOR THE INSET TO FOLLOW THIS COMPONENT -C ... WITHIN THE COMPOSITE, (WHICH COMPONENT IS NOT -C ... NECESSARILY THE INSET DEFINITION WHICH COMES NEXT -C ... IN THIS ARRAY). -C L6B IS INDENT-VALUE(IN BYTES) TO X-POSITION -C (WITHIN THE COMPOSITE) THE FOLLOWING INSET - -C II7 IS SCANLINE TO Y-POSITION (WITHIN THE COMPOSITE) -C THE FOLLOWING INSET -C II8 IS INSET NUMBER OF THE FOLLOWING INSET TO BE -C COMPOSITED -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (6.) INDEX - INTEGER INDEX(2,3) -C INDEX SPECIFIES THE DIMENSIONS OF THE GRID TO BE CONTOURED -C THE FORM OF INDEX IS: -C E0= GRID COUNT -C E1= P = MAX VALUE OF HALF LINE LENGTH -C P IS THE SYMMETRY GRID LINE -C E2=0 IF ODD -C =1 IF EVEN; -C E3=RECTANGULAR FLAG -C E4,E5= THE LINE ORIGIN,THE HALF LINE LENGTH -C (ONLY ONE E4,E5 ENTRY IS REQUIRED IF RECTANGULAR) -C ETC - -C IF(E3.EQ.0 .OR. E3.EQ.1) THERE MUST BE A COMPLETE TABLE -C IF E3 IS 1 THE POLYGON IS DRAWN TO THE BNDRY -C IF E3 IS NEG THE RECT WILL BE DRAWN THE BNDRY -C IF ODD IS 0 ONE EXTRA ROW IS DONE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (7.) NFLDS - INTEGER NFLDS -C NFLDS IS THE NUMBER OF GRID FIELDS TO CONTOUR -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C FOUR WORD ENTRY PER GRIDPOINT DATA SET TO BE CONTOURED ... -C FLD, DASH, OFFSET, SHADE -C FLD IS THE LOC OF THE GRID ARRAY -C DASH IS THE DASH MASK /DASH WEIGHT IN HALF WORDS -C OFFSET IS WEIGHT/ OFFSET IN HALF WORDS -C WEIGHT IS 0 OR 2 FOR LINE WEIGHT -C IF WEIGHT IS NEGATIVE,NO NEGATIVE VALUED CONTOURS -C OFFSET MOVES THIS CONTOUR - SCAN UNITS TO RIGHT -C IF THE OFFSET IS LESS THAN 100 AND -C GREATER THAN ZERO, IT IS CONSIDERED TO BE THE -C MAXIMUM CONTOUR TO BE ALLOWED -C SHADE IS THE SHADE MASK /AND THE SHADE MATCH IN HALF WDS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (8.) FLD1 - REAL FLD1(*) --- 1ST GRIDPOINT FIELD -C (9.) DASH1 - INTEGER DASH1(2) --- DASHING SPECS -C (10.) OFSET1 - INTEGER OFSET1(2) --- LINE WEIGHT/ADJ X-POSIT -C (11.) SHAD1 - INTEGER SHAD1(20) --- SHADING SPECS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (8.) FLD2 - REAL FLD2(*) --- 2ND GRIDPOINT FIELD -C (9.) DASH2 - INTEGER DASH2(2) --- DASHING SPECS -C (20.) OFSET2 - INTEGER OFSET2(2) --- LINE WEIGHT/ADJ X-POSIT -C (22.) SHAD2 - INTEGER SHAD2(20) --- SHADING SPECS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (8.) FLD3 - REAL FLD3(*) --- 3RD GRIDPOINT FIELD -C (9.) DASH3 - INTEGER DASH3(2) --- DASHING SPECS -C (30.) OFSET3 - INTEGER OFSET3(2) --- LINE WEIGHT/ADJ X-POSIT -C (33.) SHAD3 - INTEGER SHAD3(20) --- SHADING SPECS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C (8.) FLD4 - REAL FLD4(*) --- 4TH GRIDPOINT FIELD -C (9.) DASH4 - INTEGER DASH4(2) --- DASHING SPECS -C (40.) OFSET4 - INTEGER OFSET4(2) --- LINE WEIGHT/ADJ X-POSIT -C (44.) SHAD4 - INTEGER SHAD4(20) --- SHADING SPECS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C OUTPUT ARGUMENT LIST: -C (3.) ICHK - INTEGER ICHK(3) -C ICHK(1) IS FOR THE RETURN CODE: -C = -1 NORMAL -C = 0 OUTPUT TROUBLE -C = 1 BACKGROUND TROUBLE -C -C (BUT THIS RETURN CODE IS QUEER IN THAT IN ORDER TO -C ACTIVATE THIS RETURN CODE FUNCTION, THE USER MUST -C SET THIS: -C ICHK(1) = A NON-ZERO VALUE;) -C -C ICHK(2) = SPACE ALLOCATED (SEE INPUT ARGUMENT LIST) -C -C ICHK(3) = END-PRODUCT SPEC (SEE INPUT ARGUMENT LIST) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C INPUT FILES: -C FT02F001 - LIBRARY OF MAP-BACKGROUNDS IN RASTER-FORMAT -C DIRECT-ACCESS FILE FORMAT -C -C FT55F001 - "LABEL-ARRAY' FORMAT, EACH RECORD CONTAINS 1024 LABEL- -C ARRAY ITEMS OR 8192 BYTES PER RECORD. -C WORK FILES: -C FT60F001 - TEMPORARY WORK FILES FOR SORT/MERGING FT55F001 DATA -C FT61F001 - " -C FT62F001 - " -C FT63F001 - " -C -C OUTPUT FILES: -C FT0XF001 - NMC 6-BIT PACKED RLE RASTER FORMATTED MAPS DESTINED -C FOR FAX OR VARIAN. -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: -C SUBROUTINES CALLED by old CNTR: -C ISORT(), MERGE(), -C CONST(), -C INPUT(), OUTP(), -C CNTRI() -C ENDMAP() -C . . . . . . . . . . . -C SUBROUTINES CALLED by new CNTR: -C ISORT2D(), MERGES(), -C CONSTA(), GETBGND, PRTITLE -C . . . . . . . . . . . -C DATA SET CNTR AT LEVEL 004 AS OF 05/11/93 -C ...NO ASYNC I/O CLEANED ON MAY 27, 1986 (DKM)... -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C ******************************************************* -C -C -C THIS SUBROUTINE CONVERTS THE CALL SEQUENCE CONSTANTS -C INTERNAL CONSTANTS AND INITIALIZES THE FILES,THEN CNTRI() -C IS CALLED TO ALLOW FORTRAN TO COMPUTE THE ADDRESS CONSTANTS -C SORT AND MERGE THE LABEL LIST IF REQUIRED -C *** N O T E : TO MAKE A EXE LOAD MODULE CNTR MUST COMPILE WITH -C *** N O T E : CNTR7AS FROM 'NMC.PROD.V77GRAPH.SOURCE' - - - - INTEGER LMAX - PARAMETER (LMAX=1024) - - INTEGER LMAX2 - PARAMETER (LMAX2 = 2*LMAX) !... = 2048 - - INTEGER LUNBGD - PARAMETER (LUNBGD=11) !... INPUT UNIT FOR MAP-BGND - - INTEGER LUNRAS - PARAMETER (LUNRAS=71) - - INTEGER LUNRASST - PARAMETER (LUNRASST=72) !... CHECKOUT PURE-RASTER STRIPTITL UNIT - - INTEGER LUNEXT6B - PARAMETER (LUNEXT6B=80) - - INTEGER LUNIPK6 -ckumar PARAMETER (LUNIPK6=81) - -C ******************************************************* -C ... CALL CNTR(IRET_CNT, IMAGE, IMAGSIZ_WRDS, -C ... X MAP,LABEL,ICHK,IFID,SCHED,INDEX,NFLDS, -C ... X FLD1,DASH1,OFSET1,SHAD1, -C ... X FLD2,DASH2,OFSET2,SHAD2, -C ... X FLD3,DASH3,OFSET3,SHAD3, -C ... X FLD4,DASH4,OFSET4,SHAD4) -C ******************************************************* -C - INTEGER IRET_CNT - INTEGER IMAGE(IMAGSIZ_WRDS) - INTEGER MAP(15) - INTEGER LABEL(LMAX2) - INTEGER ICHK(3) - INTEGER IFID(6) !... I*8 ifid(6) == 48bytes - INTEGER SCHED(8,60) !... i*2 in low-order of i*8 - INTEGER INDEX(2,3) - INTEGER NFLDS - REAL FLD1(*) - INTEGER DASH1(2), OFSET1(2), SHAD1(20) - REAL FLD2(*) - INTEGER DASH2(2), OFSET2(2), SHAD2(20) - REAL FLD3(*) - INTEGER DASH3(2), OFSET3(2), SHAD3(20) - REAL FLD4(*) - INTEGER DASH4(2), OFSET4(2), SHAD4(20) - -C ******************************************************* - -C - COMMON /DCESS/ IV,IS - COMMON /IFS/ IAFOS(2),NNAFST - - - COMMON/IOUTFAX/IFAXOUT,NRECFAX - - INTEGER IFAXOUT - INTEGER NRECFAX -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - COMMON /ISPACE/IBUFF(LMAX2),IFIRST,L1728,JFLAG(2),JTABLE(3200), - 1 IVTABL(1200),IVSCAN(30), - X TWO,CIN(6),MPIN(480), - X MPWK(131,10),CADJ(14),CNS(9),ITBL(2,5),ID(4,4), - X PHASE - - INTEGER TWO - INTEGER CIN - INTEGER CADJ - - INTEGER BGND(3,80) - EQUIVALENCE (MPIN(1),BGND(1,1)) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /OBUFF/MOUT(7),IOUT(360),NOUT(360),ISCHED(2,80),ISTOP -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - COMMON /ALT_LBL/ LBL_INCOREQ,LBL_EMPTYQ,LABEL_PKD(LMAX) - LOGICAL LBL_INCOREQ - LOGICAL LBL_EMPTYQ - INTEGER LABEL_PKD -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... FOR PLOTTED STRIP-TITLES IN IMAGE_STR(I,J) ... - INTEGER MAXIWORD_STR - PARAMETER (MAXIWORD_STR=27) !... 27 I*8 = 1728 PELS - - INTEGER MAXJSLINE_STR - PARAMETER (MAXJSLINE_STR=800) !... LIMIT STRIP TITLES - - COMMON /STITLES/ IMAGE_STR - INTEGER IMAGE_STR(MAXIWORD_STR,MAXJSLINE_STR) - - COMMON /STITLPLT/NRECSTART_STR, NITMPLTED_STR, - 1 MXJVAL_STR, MXJLABITM_STR - INTEGER NRECSTART_STR !... PTR IN LABEL FILE - INTEGER NITMPLTED_STR !... COUNT STRITM PLTED - INTEGER MXJVAL_STR !... MAXJ STR PLTED - INTEGER MXJLABITM_STR !... AND THAT LABL ITEM - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . Statisitcs about LABEL array via LOOK_LAB() . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - integer lmtmxmn - parameter (lmtmxmn=8) - - INTEGER LMTPRIOR - PARAMETER (LMTPRIOR=8) - - COMMON /STAT_LAB/NITEM_TOT,NITEM_TITLE,NPRIOR_LAB, - 1 MAXIJ_LAB,MINIJ_LAB - - INTEGER NITEM_TOT !... TOTAL COUNT OF LABEL-ARRAY ITEMS - INTEGER NITEM_TITLE - INTEGER NPRIOR_LAB(LMTPRIOR,2) - integer MAXIJ_LAB(LMTMXMN,2) - integer MINIJ_LAB(LMTMXMN,2) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . used by bufow512() and bf512_wr() . . . . . - - COMMON /ARBFOX6B/ LUNX6B,LUX6BOPNQ,NBUFX6B,IPTR_X6BF - INTEGER LUNX6B - LOGICAL LUX6BOPNQ - INTEGER NBUFX6B - INTEGER IPTR_X6BF -C . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... INTEGER IWINDOW(30) -C ... IWINDOW(1) = (J_BG_SKP) !... NSKIP BG AT START -C ... IWINDOW(2) = (J_BG_ORG) !... J0 BG IN IMAGE WORK -C ... IWINDOW(4) = (J_FR_MAX) = 1876 !... ENTIRE IMAGE WORK-J -C ... IWINDOW(5) = (IPXL_BG_SKP) !... DISCARD PXL @ LN START -C ... IWINDOW(6) = IOPTNBITS AS GIVEN IN MAP(2) -C ... IWINDOW(7) = (IPXL_BG_ORG) !... I0 BG IN IMAGE WORK -C ... IWINDOW(15) = (IWRD_FR_MAX) = 27 !... ENTIRE IMAGE WORK-I -C ... IWINDOW(16) = (IPXL_FR_MAX) = 1728 !... MAX PXL IN RESULT -C ... IWINDOW(17) = MAPBGNAME = nh2500x -C ... IWINDOW(18) = (J_BG_SPA) !... SPACE FOR BG W/I FRAME -C ... IWINDOW(19) = (IPXL_BG_SPA) !... SPACE FOR BG W/I FRAME -C ... IWINDOW(20) = (IPXL_BG_CUT) !... PXLS TO USE FROM BG LN -C ... IWINDOW(21) = 0 FLAG FOR MAIN MAP; OR =1 FOR TITLE WINDOW - - INTEGER J_FR_MAX - PARAMETER (J_FR_MAX=4) - INTEGER IWRD_FR_MAX - PARAMETER (IWRD_FR_MAX=15) - INTEGER IPXL_FR_MAX - PARAMETER (IPXL_FR_MAX=16) - - INTEGER J_BG_SPA - PARAMETER (J_BG_SPA=18) - INTEGER IPXL_BG_SPA - PARAMETER (IPXL_BG_SPA=19) - - INTEGER J_BG_SKP - PARAMETER (J_BG_SKP=1) - INTEGER IPXL_BG_SKP - PARAMETER (IPXL_BG_SKP=5) - INTEGER IPXL_BG_CUT - PARAMETER (IPXL_BG_CUT=20) - - INTEGER J_BG_ORG - PARAMETER (J_BG_ORG=2) - INTEGER IPXL_BG_ORG - PARAMETER (IPXL_BG_ORG=7) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C - - INTEGER DFL - DATA DFL / X'FFFFFF00' / - - INTEGER EFL !... END-OF-ALL MAPS FLAG - DATA EFL / X'FFFFFC00' / -C - INTEGER ISTP - DATA ISTP / X'C5D5C440' / !... "END " IN BGND DIR -C - INTEGER MSK -ckumar DATA MSK / X'FF' / - DATA MSK / X'00000000000000FF' / - - INTEGER MSK1 - DATA MSK1 / X'FFFF0000' / -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER IRET_MRG - INTEGER JTM - INTEGER NLABITMSOR - INTEGER IRET_SR2 - - INTEGER IL_STR(15) - INTEGER IWINDOW_STR(30) !... map const: STRIP TITLES - INTEGER IWINDOW(30) - - INTEGER maxiword - INTEGER maxjsline - - LOGICAL LEBCDIC - LOGICAL LCHKSORTQQ - LOGICAL LANYTITLESQQ - - integer lncount_str - INTEGER IMGTYP - INTEGER IMAGSIZ_STR - INTEGER NPXLOUT_STR - INTEGER NROWSHOW_STR - -C ... OPTN BITS TO MATCH THOSE GIVEN IN MAP(2) ... - INTEGER K0008X - DATA K0008X / X'0008' / !... LEAVE OUTP OPEN AT EXIT - INTEGER K0010X - DATA K0010X / X'0010' / !... ADDING ONTO LEFT-OPEN OUTP - - INTEGER MYOPTNBITS - - INTEGER I8IFID(6) - CHARACTER*1 C1IFID(48) - EQUIVALENCE (I8IFID(1),C1IFID(1)) -C - CHARACTER*40 CPATHBGND - - CHARACTER*1 NULL - - INTEGER ITAPE - - SAVE -C -C . . . . . . S T A R T . . . . . . . . . . . . . . . . . . . . -C - IRET_CNT = 0 - NULL = CHAR(0) - LUNX6B = LUNEXT6B !... DSRN INTO COMMON /ARBFOX6B/ - WRITE(6,FMT='(1H ,''CNTR:ENTERED SUBR CNTR '', - 1 ''VERSION 3.2 DATED 20-AUG-1999'', - 2 /1H ,7X,''WITH OPTNS IN MAP(2)=HEX'',Z17.16)') - A MAP(2) - - - MYOPTNBITS = 0 - - MYOPTNBITS = IBSET(MYOPTNBITS,7) !... GIVEN IFID IS IN ASCII - - IF(IAND(MAP(2),K0010X) .NE. 0) THEN -C ... IF ADDING-ON TO PREVIOUSLY LEFT-OPEN PRODUCT FILE, - MYOPTNBITS = IBSET(MYOPTNBITS,0) !... MULTI-PANEL - MYOPTNBITS = IBSET(MYOPTNBITS,1) !... ADDING ON TO EXISTG - ENDIF - IF(IAND(MAP(2),K0008X) .NE. 0) THEN -C ... IF LEAVING THE OUTPUT FILE OPEN AT EXIT, - MYOPTNBITS = IBSET(MYOPTNBITS,0) !... MULTI-PANEL - MYOPTNBITS = IBSET(MYOPTNBITS,2) !... LEAVE OPEN AT END - ENDIF - - - LCKPT = 101 - PRINT 888, LCKPT - 888 FORMAT(1H , 'CNTR:ARRIVED AT CHECKPOINT = ', I4) -C - IF(ICHK(1) .NE. 0) THEN - ICHK(1) = -1 !... INITIALIZE RET CODE TO NORMAL - ENDIF - -C ================================================================= -C . . . S T E P (1.) SORT THE LABEL-ARRAY DATA -C WHETHER IN-CORE OR OUT ON FILE FT55 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - - LBL_INCOREQ = .TRUE. - LBL_EMPTYQ = .FALSE. - - DO J = 1,LMAX - LABEL_PKD(J) = 0 - ENDDO - - IF(IOR(LABEL(1),LABEL(2)) .EQ. 0) THEN -C ... EMPTY LABEL-ARRAY, SO SKIP TEXT/SYMBOL PROCESSING, - LBL_EMPTYQ = .TRUE. - GO TO 12 - ELSE IF(LABEL(1) .NE. -1) THEN -C ... USE IN-CORE LABEL-ARRAY ... - LBL_INCOREQ = .TRUE. - GO TO 10 - ENDIF -C ... OTHERWISE, LABEL(1) = -1; SO LABEL-DATA IS OUT THERE ON FT55, -C -C *** *** *** -C ... THE LABEL LIST IS ON A SEQUENTIAL FILE ... - LBL_INCOREQ = .FALSE. - -C ... TO SORT/MERGE THE EXTERNAL FILE-55 LABEL-ARRAY FILE, - - CALL MERGES(ITAPE,IRET_MRG) - - IF(IRET_MRG .NE. 0) THEN -C ... IN OLD VERSION, THAT USED TO STOP WITHIN MERGE - WRITE(6,FMT='(1H ,''CNTR::MERGES: SERIOUS ERROR ... '', - 1 ''RETURNED WITH CODE='', I5)') - A IRET_MRG - - LBL_EMPTYQ = .TRUE. - REWIND ITAPE - GO TO 12 - ELSE - WRITE(6,FMT='(1H ,''CNTR: normal return from merges '', - 1 ''with sorted LABEL-data on ITAPE='',I4)') - A ITAPE - ENDIF - GO TO 12 - - 10 CONTINUE -C ... TO SORT THE IN-CORE LABEL-ARRAY, -C ... (BUT THE IN-CORE LABEL ARRAY ON CRAY IS UNCOMPRESSED) - - JTM = LMAX - -C ... TO SORT, IN PLACE, THE 2-D LABEL ARRAY ... - - CALL ISORT2D(LABEL,JTM,NLABITMSOR,IRET_SR2) - - IF(IRET_SR2 .EQ. -1) THEN -C ... THIS SHOULD BE THE USUAL CASE OF ZERO-TERMINATOR FOUND -C ... IN THIS IN-CORE LABEL ARRAY, - WRITE(6,FMT='(1H ,''CNTR::ISORT2D: SORTED THE IN-CORE LABEL '', - 1 ''ARRAY AND FOUND THE ZERO-TERMINATOR '', - 2 /1H ,'' AFTER NITEMS_SORTED='',I6, - 3 ''; ISORT2D RETURN-CODE='',I4)') - A NLABITMSOR,IRET_SR2 - - ELSE IF(IRET_SR2 .EQ. 0) THEN -C ... UNEXPECTED RETURN TO HAVE SORTED AN IN-CORE LABEL ARRAY -C ... WITHOUT FINDING A ZERO-TERMINATOR. - WRITE(6,FMT='(1H ,''CNTR::ISORT2D: WARNING! IN-CORE LABEL-'', - 1 ''ARRAY DOES NOT HAVE A ZERO-TERMINATOR.'' - 3 /1H ,'' NITEMS_SORTED='',I6, - 4 ''; ISORT2D RETURN-CODE='',I4)') - A NLABITMSOR,IRET_SR2 - - ELSE IF(IRET_SR2 .EQ. 1) THEN -C ... SERIOUS ERROR IN SORT2D ... - WRITE(6,FMT='(1H ,''CNTR::ISORT2D: FAILED TO SORT IN-CORE '', - 1 ''LABEL ARRAY. BAD JTM SIZE='',I6, - 2 /1H ,'' NITEMS_SORTED='',I6, - 3 ''; RETURN CODE='',I4)') - A JTM,NLABITMSOR,IRET_SR2 - - LBL_EMPTYQ = .TRUE. - - ELSE IF(IRET_SR2 .EQ. 5) THEN -C ... EMPTY LABEL ARRAY ... - WRITE(6,FMT='(1H ,''CNTR::ISORT2D: GIVEN EMPTY IN-CORE '', - 1 ''LABEL ARRAY. RETURN CODE='',I4)') - A IRET_SR2 - - LBL_EMPTYQ = .TRUE. - - ELSE - - WRITE(6,FMT='(1H ,''CNTR::ISORT2D:ERROR. UNKNOWN RETURN-'', - 1 ''CODE='',I4, - 2 /1H ,'' NITEMS_SORTED='',I6)') - A IRET_SR2,NLABITMSOR - - LBL_EMPTYQ = .TRUE. - ENDIF - -C ... FOR THE CASE OF THE IN-CORE LABEL ARRAY, COMPRESS THE -C ... SORTED LABEL ARRAY - - IF(LBL_EMPTYQ) THEN - GO TO 12 - ENDIF - - IF(NLABITMSOR .LE. 0) THEN - LBL_EMPTYQ = .TRUE. - GO TO 12 - ENDIF - -C ... OTHERWISE, HALF-PACK LABEL ARRAY WITH DESTINATION= LABEL_PKD - CALL HAFPAKRA(LABEL,LMAX2,LABEL_PKD,LMAX,NWD_PKD,IRET_HAF) - - IF(IRET_HAF .NE. 0) THEN - WRITE(6,FMT='(1H ,''CNTR::HAFPAKRA: FAILED WITH ERROR-CODE='', - 1 I3, - 1 /1H ,'' BAD ARRAY SIZE. SRCSIZ='',I6, - 2 '' DESTSIZ='',I6)') - A LMAX2,LMAX - IRET_CNT = -1 - GO TO 999 !... ERROR RETURN - ENDIF - - IF(NLABITMSOR .GE. LMAX) THEN -C ... TO FORCE A ZERO-TERMINATOR INTO AN EXACTLY FULL LABEL ARRAY - LABEL_PKD(LMAX) = 0 - NLABITMSOR = LMAX - 1 - ENDIF -C ... NOW NLABITMSOR IS WITHIN RANGE, ERASE REMAINDER OF PACKED ARRA - M1 = NLABITMSOR + 1 - DO J = M1,LMAX - LABEL_PKD(J) = 0 - ENDDO - - GO TO 12 - 12 continue -C ... TO GATHER STATISTICS ABOUT THE LABEL-ARRAY ITEMS ... - NITEM_TOT = 0 - NITEM_TITLE = 0 - LANYTITLESQQ = .FALSE. - do j = 1,2 - do i = 1,LMTPRIOR - NPRIOR_LAB(I,J) = 0 - ENDDO - ENDDO - do j = 1,2 - do i = 1,LMTMXMN - MAXIJ_LAB(I,J) = 0 - ENDDO - ENDDO - do j = 1,2 - do i = 1,LMTMXMN - MINIJ_LAB(I,J) = 0 - ENDDO - ENDDO - - if(.NOT. LBL_EMPTYQ) THEN - LCHKSORTQQ = .TRUE. - - call look_lab(ITAPE, LCHKSORTQQ, IRET_look) -C ... which works for case of LBL_INCOREQ also, -C ... by querying COMMON /ALT_LBL/ ... - - WRITE(6,FMT='(1H ,''CNTR::look_lab: RETURNED WITH TOTAL '', - 1 '' SORTED ITEM COUNT='',I8, - 2 /1h ,7X,''look_lab() RETURN-CODE ='',I4)') - A NITEM_TOT,IRET_look - - IF(IRET_LOOK .NE. 0) THEN - WRITE(6,FMT='(1H ,''CNTR:... WARNING ...:LOOK_LAB FAILED '', - 1 ''WITH RETURN CODE='',I3)') - A IRET_LOOK - GO TO 122 !... TRY TO LET IT CONTINUE ANYWAY - ELSE -C ... OTHERWISE, NORMAL return from LOOK_LAB ... - IF(NITEM_TITLE .LE. 0) THEN - LANYTITLESQQ = .FALSE. - ELSE - LANYTITLESQQ = .TRUE. - ENDIF - ENDIF - ENDIF - GO TO 122 -C ================================================================= -C . . . S T E P (2.) COMPUTE SCALE AND ADJUSTMENT CONSTANTS ... -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 122 CONTINUE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . CONSTANTS FOR THE STRIP-TITLE WINDOW . . . . . . - IL_STR(1) = 0 !... NO MAP BGND FOR STRIP-TITLE REGION - IL_STR(2) = 0 - - IL_STR(3) = 72 !... 1800-(72)=1728pels =27 longwords - IL_STR(4) = 0 - IL_STR(5) = 1728 - IL_STR(6) = MAXJSLINE_STR !... = 800 scanline max - - IL_STR(7) = 72 - IL_STR(8) = 0 - IL_STR(9) = 1728 - IL_STR(10) = MAXJSLINE_STR - - IL_STR(11) = 0 - IL_STR(12) = 0 - IL_STR(13) = 0 - IL_STR(14) = -7399 !... delta-j to position titles - IL_STR(15) = 0 - - call consta(IL_STR,IWINDOW_STR) - - IWINDOW_STR(21) = 1 !... flags this as strip-titles - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - CALL CONSTA(MAP,IWINDOW) - - maxiword = iwindow(15) - maxjsline = iwindow(J_FR_MAX) - - IF((MAXIWORD .LE. 0) .OR. (MAXJSLINE .LE. 0)) THEN - WRITE(6,FMT='(1H ,''CNTR::CONSTA: DIMENSIONS OF IMAGE= ('', - 1 I4,'','',I6,'') ... WHICH ARE WRONG ! ! !'', - 2 /1H ,'' GO CHECK THE MAP REGISTRATION CONSTANTS!'', - 3 /1H ,'' * * * * E R R O R S T O P * * * *'')') - A MAXIWORD,MAXJSLINE - IRET_CNT = -2 - GO TO 999 - ENDIF - - IMGSIZNEED = MAXIWORD * MAXJSLINE -C ... ALLOCATED IS IMAGSIZ_WRDS - WRITE(6,FMT='(1H ,''CNTR::CONSTA: DIMENSIONS OF IMAGE= ('', - 1 I4,'','',I6,'')'', - 2 /1H ,'' WHICH IS'',I8,'' WORDS OF SPACE REQUIRED'', - 3 '' FOR THIS PRODUCT'', - 4 /1H ,'' ALLOCATED SIZE='',I8,'' WORDS'')') - A MAXIWORD,MAXJSLINE,IMGSIZNEED,IMAGSIZ_WRDS -C -C - IF(IMGSIZNEED .GT. IMAGSIZ_WRDS) THEN - WRITE(6,125) - 125 FORMAT(1H ,'CNTR: ALLOCATED SPACE FOR IMAGE IS INADEQUATE', - 1 /1H ,' * * * * * E R R O R S T O P * * * * * *') - IRET_CNT = -3 - GO TO 999 - ENDIF -C - DO I = 1,IMGSIZNEED - IMAGE(I) = 0 - ENDDO - -C ... THE FOLLOWING STRIP-TITLE INITIALIZATION NEEDS TO HAVE -C ... SOME IF TESTS FOR FIRST PANEL OF MULTI-CALL-CNTR PRODUCT - DO J = 1,MAXJSLINE_STR - DO I = 1,MAXIWORD_STR - IMAGE_STR(I,J) = 0 - ENDDO - ENDDO - - NRECSTART_STR = 0 !... PTR IN LABEL FILE - NITMPLTED_STR = 0 - MXJVAL_STR = 0 - MXJLABITM_STR = 0 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ================================================================= -C . . . S T E P (3.) ... FETCH MAP-BACKGROUND IF REQUESTED ... -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C *** *** *** -C ... FROM OTHER MAP() CONSTANTS, DETERMINE THE DESIRED PRODUCT -C ... SIZE, AND INITIALIZE THE IMAGE BITPLANE - - - IF(MAP(1) .EQ. 0) THEN -C ... NO MAP-BACKGROUND HAS BEEN REQUESTED ... - GO TO 13 - - ENDIF -C - -C ... GET MAP BGND NAME FROM MAP(1); get bgnd; lay it into image - - - cpathbgnd(1:40) = ' ' -c -ckumar Path of map background is set to current local directory -c on IBM SP - CPATHBGND(1:) = './' //NULL - print*,'In CNTR - map background dir', CPATHBGND(1:) - call getbgnd(LUNBGD,CPATHBGND,IWINDOW,IMAGE,IRET_BG) - - - GO TO 13 - -C ================================================================= -C . . . S T E P (4.) ... MOVE CONTOUR-FIELD POINTERS -C AND CONTOUR DISPLAY SPECS FROM CALL SEQUENCE -C INTO ID(4,4) (WHICH IS IN /ISPACE/) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 13 CONTINUE -C -C *** *** *** - IF(NFLDS .LE. 0) GO TO 15 -C ... OTHERWISE, WE HAVE SOME FLDS ... -C ... DO FLD1 ... - I=1 - ID(1,I) = LOC(FLD1) - ID(2,I) = DASH1(1) - ID(3,I) = OFSET1(1) - ID(4,I) = SHAD1(1) - IF(NFLDS .EQ. 1) THEN - GO TO 15 - ENDIF -C ... OTHERWISE, DO FLD2 ... - I=2 - ID(1,I)=LOC(FLD2) - ID(2,I) = DASH2(1) - ID(3,I) = OFSET2(1) - ID(4,I) = SHAD2(1) - IF(NFLDS .EQ. 2) THEN - GO TO 15 - ENDIF -C ... OTHERWISE, DO FLD3 ... - I=3 - ID(1,I)=LOC(FLD3) - ID(2,I) = DASH3(1) - ID(3,I) = OFSET3(1) - ID(4,I) = SHAD3(1) - IF(NFLDS .EQ. 3) THEN - GO TO 15 - ENDIF -C ... OTHERWISE, DO FLD4 ... - I=4 - ID(1,I)=LOC(FLD4) - ID(2,I) = DASH4(1) - ID(3,I) = OFSET4(1) - ID(4,I) = SHAD4(1) - IF(NFLDS .EQ. 4) GO TO 15 -C ... OTHERWISE, BAD VALUE IN NFLDS, - PRINT 1003 - 1003 FORMAT(1H ,'CNTR:FAILED. NFLDS VALUE TOO BIG IN CALL SEQUENCE') - PRINT *,' NO OF FLD=',NFLDS - STOP 30 - -C ================================================================= -C . . . S T E P (5.1) -C ... PREPARE MAINLINE GENERATOR FUNCTION FOR THIS MAP -C ... TEST FOR ADEQUATE SPACE ALLOCATED FOR CONTOURING NFLDS -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 15 CONTINUE -C -C *** *** *** -C ... IQ = CADJ(14) -C ... N = 35 -C ... ISTOP = ICHK(2) -C ... ILNTH = (8 + NFLDS*5)*IP + NFLDS*(2*IQ*IP + N) -C ... L1728 = CADJ(10) -C ... IFIRST = 0 -C ... N = ILNTH + (LOC(PHASE)-LOC(IBUFF))/4 -C ... PRINT 1004,N -C ... 1004 FORMAT(1H ,'CNTR: WORDS REQUIRED IN ISPACE =',I6) -C ... IF(ICHK(2) .LT. N) THEN -C ... STOP 30 -C ... ENDIF - - GO TO 16 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . S T E P (5.2) -C ... PREPARE MAINLINE GENERATOR FUNCTION FOR THIS MAP -C ... PREPARE OUTPUT BUFFER FOR FIRST RECORD -C ... AND POINTERS FOR OUTPUT -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 16 CONTINUE -C -C *** *** *** - IF(IAND(MAP(2),16) .NE. 0) THEN -C ... IF ADDING-ON TO PREVIOUSLY LEFT-OPEN PRODUCT FILE, - - GO TO 30 - ENDIF -C ... OTHERWISE, INITIALIZE FOR NEW OUTPUT, - DO L=1,360 !... i*4 iout(360) == 1440-byte buffer - IOUT(L)=0 - ENDDO - - IOUT(1) = DFL !... START-OF-PRODUCT FLAG - - IF(IFID(1) .EQ. 0) GO TO 19 - IOUT(1)=IOR(IAND(MSK,IFID(1)),IOUT(1)) - LCKPT = 2137 - PRINT 888, LCKPT -ckumar DO L=2,12 - DO L=2,6 - IOUT(L)=IFID(L) - ENDDO - - 19 CONTINUE - MOUT(3) = 64 - MOUT(4) = 4 - MOUT(5) = 1439 - MOUT(6) = CADJ(12) - MOUT(7) = 0 - - GO TO 30 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . S T E P (5.3) ... CALL CNTRI() ... -C ... PASS CONTROL TO MAINLINE GENERATOR FUNCTION -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 30 CONTINUE -C -C *** *** *** - ML = IABS(INDEX(1,1)) + 2 - LCKPT = 2147 - PRINT 888, LCKPT - - PRINT *,'SHAD1=',SHAD1(1),' ',SHAD1(2),' ',SHAD1(3),' ',SHAD1(4) - PRINT *,'SHAD2=',SHAD2(1),' ',SHAD2(2),' ',SHAD2(3),' ',SHAD2(4) - CALL CNTRI(IRET_CNT, IMAGE, IMAGSIZ_WRDS, IWINDOW, - 1 MAP, LABEL, INDEX,NFLDS, - 2 FLD1, DASH1, OFSET1, SHAD1, - 3 FLD2, DASH2, OFSET2, SHAD2, - 4 FLD3, DASH3, OFSET3, SHAD3, - 5 FLD4, DASH4, OFSET4, SHAD4) -C . . . . - -C ... CALL CNTRI(PHASE,IP,IQ,ILNTH,ML,INDEX(1,1),NFLDS,SCHED, -C ... 1 LABEL,ITAPE) - -C ... IF(TWO .EQ. 6) THEN -C ... WAS ERROR RETURN FROM CNTRI, SO ... -C ... GO TO 50 -C ... ENDIF - -C ... IF(ICHK(3) .GT. 0) THEN -C ... THIS IS THE LAST MAP, SO MARK AS END-OF-ALL-MAPS, - -C ... CALL ENDMAP(IOUT(1)) - -C ... ENDIF - - LCKPT = 2149 - PRINT 888, LCKPT -C -C ... IF(IAND(CADJ(6),8) .NE. 0) THEN -C ... IS THIS A LEAVE-IT-OPEN CASE ??????? -C ... RETURN -C ... ENDIF - -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... To plot the LABEL-array data to the IMAGE plane ... -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - LEBCDIC = .FALSE. -C ... SCAN THRU THE ITAPE 3 TIMES TO GET PRIORITIES SEPARATELY - - DO IPRIO = 1,5 - LOOPRIOR = IPRIO - 1 - call prtitle(itape,LOOPRIOR,iwindow,LEBCDIC, - 1 IMAGE,MAXIWORD,MAXJSLINE, iret_plt) - - WRITE(6,435)IRET_PLT - 435 FORMAT(1H ,'CNTR::prtitle: RETN-CODE=',I6) - - IF(LANYTITLESQQ) THEN - NRECSTART_STR = minij_lab(7,2) - - ICOUNTSTRIP = NPRIOR_LAB(IPRIO,2) - IF(ICOUNTSTRIP .GT. 0) THEN - WRITE(6,FMT='(1H ,''CNTR::PRTITLE: FOR LOOPRIOR='',I3, - 1 ''; COUNT OF STRIP-TITLE ITEMS='',I5, - 2 /1H ,'' SO WE MUST CALL PRTITLE(FOR STRIP TITLES)'', - 3 /1h ,'' WHICH BEGIN IN RECORD NUMBER='',I5)') - A LOOPRIOR,ICOUNTSTRIP,NRECSTART_STR - - call prtitle(itape,LOOPRIOR,iwindow_STR,LEBCDIC, - 1 IMAGE_STR,MAXIWORD_STR,MAXJSLINE_STR,iret_plt) - - WRITE(6,435)IRET_PLT - - ELSE - WRITE(6,FMT='(1H ,''CNTR::PRTITLE: FOR LOOPRIOR='',I3, - 1 ''; NO STRIP-TITLES TO PROCESS'')') - A LOOPRIOR - ENDIF - ENDIF - ENDDO -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... To output the bitplane for checkout ... -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C REWIND LUNRAS - -C ... checkout only to output pure-raster image files ... - -C WRITE(LUNRAS,ERR=900) (IMAGE(I),I=1,IMGSIZNEED) - -C ... WAS ANY STRIP TITLES WRITTEN TO IMAGE_STR ?? -C IF(NITMPLTED_STR .GT. 0) THEN -C WRITE(6,525)NITMPLTED_STR,MXJVAL_STR,MXJLABITM_STR -C 525 FORMAT(1H ,'CNTR: STRIP-TITLE PLOTTED ITEM COUNT=',I7, -C 1 /1H ,7X,'MAX PLOTTED SCANLINE J-VALUE=',I7, -C 2 /1H ,7X,'FROM THE LABEL-ARRAY ITEM = HEX',Z17.16) - -C REWIND LUNRASST -C do jln = 1,MAXJSLINE_STR - -C WRITE(LUNRASST,ERR=907) (IMAGE_STR(I,JLN),I=1,MAXIWORD_STR) - -C ENDDO - -C ELSE -C WRITE(6,535)LUNRASST -C 535 FORMAT(1H ,'PLOT55AV: EMPTY STRIP-TITLES IMAGE; SO DID ', -C 1 'NOT OUTPUT ON UNIT=',I4) -C ENDIF - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... to convert image to Extended 6-bit format and output it ... - - imgtyp = 0 !... main body of map - CALL img2x6t(imgtyp,IMAGE,IMAGSIZ_WRDS, maxiword, MAXJSLINE, - 1 IWINDOW(IPXL_FR_MAX), MAXJSLINE, iret_ras2) - - if(iret_ras2 .NE. 0) then - write(6,FMT='(1h ,''cntr::img2x6t:(main) Failed with '', - 1 ''retn code='',I5)') - A iret_ras2 - - IRET_CNT = 4 - go to 999 - endif -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... WAS ANY STRIP TITLES WRITTEN TO IMAGE_STR ?? - IF(NITMPLTED_STR .GT. 0) THEN - - IMAGSIZ_STR = MAXIWORD_STR * MAXJSLINE_STR - NPXLOUT_STR = 1728 - NROWSHOW_STR = MAXJSLINE_STR !... = 800 - LNCOUNT_STR = 800 !... might be reduced by dataj - - imgtyp = 1 !... passing the strip-title image - CALL img2x6t(imgtyp,IMAGE_STR,IMAGSIZ_STR, maxiword_STR, - 1 lncount_STR, - 2 npxlout_STR, nrowshow_STR, iret_ras2) - - if(iret_ras2 .NE. 0) then - write(6,FMT='(1h ,''cntr::img2x6t:(strp-titles) Failed '', - 1 ''with retn code='',I5)') - A iret_ras2 - IRET_CNT = 5 - go to 999 - endif - else - write(6,FMT='(1h ,''cntr: skipped img2x6t() for converting '', - 1 ''strip-title image into X6B code'', - 2 /1h ,7X,''because no title data was plotted'')') - endif -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C ================================================================ - DO I = 1,6 - I8IFID(I) = IFID(I) - ENDDO - - LUNIPK6 = IFAXOUT - NUMRECFAX = NRECFAX - - - WRITE(6,FMT='(1H ,''CNTR: CALLING REBLKFX4: LUNIPK6='',I3, - 1 '' NUMRECFAX='',I4)')LUNIPK6,NUMRECFAX - - CALL REBLKFX4(LUNEXT6B,LUNIPK6,NUMRECFAX, - 1 SCHED,C1IFID,MYOPTNBITS,iret_reb) - -C PETER -C I MUST SUBTRACT 1 FROM NUMRECFAX TO POSITION TO PROPER RECORD. -C PETER - NRECFAX = NUMRECFAX - 1 - - WRITE(6,FMT='(1H ,''CNTR: REBLKFX4: RETURN CODE='',I6, - 1 '' NRECFAX='',I4,'' NUMRECFAX='',I4)') - 2 iret_reb,NRECFAX,NUMRECFAX - -C ================================================================ - - GO TO 999 - - -C ... ERROR IN OUTPUT FORMAT; RETRY - 50 CONTINUE -C ... DO 51 I = 2,360 -C ... IOUT(I)=0 -C ... 51 CONTINUE - -C ... IOUT(1) = EFL - -C ... CALL OUTP(IOUT(1),MOUT(1)) - -C ... ICHK(1) = 0 -C ... PRINT 1012 -C ... 1012 FORMAT(1H ,'CNTR:ERROR ... OUTPUT SYNCH ERROR. TRY AGAIN') -C ... GO TO 999 - - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 900 CONTINUE - WRITE(6,905)LUNRAS - 905 FORMAT(1H ,'CNTR: FAILED on write ERR on checkout raster ', - 1 'output UNIT=',I3) - iret_cnt = 6 - go to 999 - - 907 CONTINUE - WRITE(6,905)LUNRASST - iret_cnt = 6 - go to 999 - - 910 CONTINUE - WRITE(6,915)LUNBGD - 915 FORMAT(1H ,'CNTR: FAILED on read ERR on map background ', - 1 'HEADER record on UNIT=',I3) - iret_cnt = 7 - go to 999 - - 920 CONTINUE - WRITE(6,925)LUNBGD - 925 FORMAT(1H ,'CNTR: FAILED on read EOF on map background ', - 1 'HEADER record on UNIT=',I3) - iret_cnt = 8 - go to 999 - - 930 CONTINUE - WRITE(6,935)LUNBGD - 935 FORMAT(1H ,'CNTR: FAILED on read ERR on map background ', - 1 'data record on UNIT=',I3) - iret_cnt = 9 - go to 999 - - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/sixbitb2.fd/compile_sixbitb2_wcoss.sh b/util/sorc/sixbitb2.fd/compile_sixbitb2_wcoss.sh deleted file mode 100755 index a91cd918eb..0000000000 --- a/util/sorc/sixbitb2.fd/compile_sixbitb2_wcoss.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec -make -mv sixbitb2 ../../exec -make clean diff --git a/util/sorc/sixbitb2.fd/fonts.f b/util/sorc/sixbitb2.fd/fonts.f deleted file mode 100755 index b8d7170b8f..0000000000 --- a/util/sorc/sixbitb2.fd/fonts.f +++ /dev/null @@ -1,22 +0,0 @@ - subroutine fonts - dimension kp(2) - character*1 cv - character*2 c2 - do 45,k=1,99 - cv=char(k) - do 42,ic=1,45 - ric=ic - kp(1)=1 - kp(2)=0 - write(c2,102)ic - call putlab(300+30*ic,010,15.,c2,90.0,2,kp,0) - call putlab(300+30*ic,3100,15.,c2,90.0,2,kp,0) - call putlab(300+30*ic,040+30*k,ric,cv,90.0,1,kp,0) - 42 continue - write(c2,102)k - 102 format(i2) - call putlab(250,040+30*k,15.,c2,90.0,2,kp,0) - call putlab(1700,040+30*k,15.,c2,90.0,2,kp,0) - 45 continue - return - end diff --git a/util/sorc/sixbitb2.fd/fonts2.f b/util/sorc/sixbitb2.fd/fonts2.f deleted file mode 100755 index cebc4b7126..0000000000 --- a/util/sorc/sixbitb2.fd/fonts2.f +++ /dev/null @@ -1,24 +0,0 @@ - subroutine fonts2 - dimension kp(2) - character*1 cv - character*2 c2 - do 45,k=1,99 - cv=char(k) - do 42,ic=1,4 - ric=ic - kp(1)=1 - kp(2)=3 - write(c2,102)ic - call putlab(300+30*ic,010,15.,c2,90.0,2,kp,0) - call putlab(300+30*ic,3100,15.,c2,90.0,2,kp,0) - ric=27. - kp(1)=ic-1 - call putlab(300+30*ic,040+30*k,ric,cv,0.0,1,kp,0) - 42 continue - write(c2,102)k - 102 format(i2) - call putlab(250,040+30*k,15.,c2,90.0,2,kp,0) - call putlab(1700,040+30*k,15.,c2,90.0,2,kp,0) - 45 continue - return - end diff --git a/util/sorc/sixbitb2.fd/getbgnd.fake.f b/util/sorc/sixbitb2.fd/getbgnd.fake.f deleted file mode 100755 index eeeae97aa2..0000000000 --- a/util/sorc/sixbitb2.fd/getbgnd.fake.f +++ /dev/null @@ -1,456 +0,0 @@ - subroutine getbgnd(lunbgd,CPATHNAME,IWINDOW,IMAGE,IRET_BG) -C 6-MAR-1996/DSS -C ... subroutines/functions called: -C ... strpfnam() -C ... bgln_cut() -C ... atoi() !... function -C ... lastch() !... function -C ... itoa_ds() !... subroutine -C ... ASNFILE() !... CRAY ASSIGN subr -C -C Remarks: Krishna Kumar modified this code to run for IBM SP/RS 6000 -C This code reads the map background files in direct access -C mode. Relevant modifications have been done in all the -C read statements - 08/20/1999 - - integer lastch - external lastch - - integer (kind=8) atoi - external atoi - - INTEGER NOTRAIL - EXTERNAL NOTRAIL - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER LUNBGD - CHARACTER*(*) CPATHNAME - INTEGER IWINDOW(30) - INTEGER IMAGE(*) - INTEGER IRET_BG -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... INTEGER IWINDOW(30) -C ... IWINDOW(1) = (J_BG_SKP) !... NSKIP BG AT START -C ... IWINDOW(2) = (J_BG_ORG) !... J0 BG IN IMAGE WORK -C ... IWINDOW(4) = (J_FR_MAX) = 1876 !... ENTIRE IMAGE WORK-J -C ... IWINDOW(5) = (IPXL_BG_SKP) !... DISCARD PXL @ LN START -C ... IWINDOW(6) = IOPTNBITS -C ... IWINDOW(7) = (IPXL_BG_ORG) !... I0 BG IN IMAGE WORK -C ... IWINDOW(16) = (IPXL_FR_MAX) = 1728 !... MAX PXL IN RESULT -C ... IWINDOW(15) = (IWRD_FR_MAX) = 27 !... ENTIRE IMAGE WORK-I -C ... IWINDOW(17) = MAPBGNAME = nh2500x -C ... IWINDOW(18) = (J_BG_SPA) !... SPACE FOR BG W/I FRAME -C ... IWINDOW(19) = (IPXL_BG_SPA) !... SPACE FOR BG W/I FRAME -C ... IWINDOW(20) = (IPXL_BG_CUT) !... PXLS TO USE FROM BG LN - - INTEGER BGNAME - PARAMETER (BGNAME=17) - INTEGER OPTIONS - PARAMETER (OPTIONS=6) - INTEGER J_FR_MAX - PARAMETER (J_FR_MAX=4) - INTEGER IWRD_FR_MAX - PARAMETER (IWRD_FR_MAX=15) - INTEGER IPXL_FR_MAX - PARAMETER (IPXL_FR_MAX=16) - - INTEGER J_BG_SPA - PARAMETER (J_BG_SPA=18) - INTEGER IPXL_BG_SPA - PARAMETER (IPXL_BG_SPA=19) - - INTEGER J_BG_SKP - PARAMETER (J_BG_SKP=1) - INTEGER IPXL_BG_SKP - PARAMETER (IPXL_BG_SKP=5) - INTEGER IPXL_BG_CUT - PARAMETER (IPXL_BG_CUT=20) - - INTEGER J_BG_ORG - PARAMETER (J_BG_ORG=2) - INTEGER IPXL_BG_ORG - PARAMETER (IPXL_BG_ORG=7) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... IWINDOW(BGNAME) = MAPBGNAME = nh2500x -C ... IWINDOW(OPTIONS) = IOPTNBITS -C -C - INTEGER LUNRAS - PARAMETER (LUNRAS=71) !... CHECKOUT PURE-RASTER OUTPUT UNIT - - INTEGER NWRDRECSIZ - PARAMETER (NWRDRECSIZ=1024) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - INTEGER NWRDPLIN_MXMX !... LONGEST LINE LENGTH OF ANY - PARAMETER (NWRDPLIN_MXMX=66) !... MAP (IN LONGWORDS) - - INTEGER INPLINBUF(NWRDPLIN_MXMX) - - INTEGER IHDR_BG(64) - - integer mapcon_pur(10) !... for derived from ihdr_bg - - integer lmt_nlines_lib - equivalence (mapcon_pur(5),lmt_nlines_lib) - integer lmt_nwrdplin_lib - equivalence (mapcon_pur(6),lmt_nwrdplin_lib) - integer LMT_NPXLPLIN_LIB - equivalence (mapcon_pur(7),lmt_npxlplin_lib) - - INTEGER NLINRED - INTEGER NLINUSED - INTEGER NLINSKPED - - CHARACTER*16 CBGNAME - character*80 cfullname - character*132 cassi - - integer i8acc - character*1 c1acc(8) - equivalence (i8acc,c1acc(1)) - character*8 c8acc - equivalence (i8acc,c8acc) - integer (kind=8) ifox - data ifox/z'ffffffffffffffff'/ - - integer idigits(2) - character*16 cdigits - equivalence (idigits(1),cdigits) - - INTEGER JOFDEST - INTEGER IOPTNBITS - INTEGER KCYCLBIT - DATA KCYCLBIT / X'0020' / - - - logical lmapbg_use - LOGICAL LBGEXIST - LOGICAL LCYCLICQ - logical LCKPRNTQ - - INTEGER IOSOPEN - INTEGER IORSUM - - integer lwr_or_upr - integer nc - integer iret_str - - character*1 NULL -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C ... INITIALIZE ... - - NULL = char(0) - IRET_BG = 0 - lmapbg_use = .false. - - IOPTNBITS = IWINDOW(OPTIONS) - LCYCLICQ = .FALSE. - IF(IAND(IOPTNBITS,KCYCLBIT) .NE. 0) THEN - LCYCLICQ = .TRUE. - ENDIF - -C ... INITIALIZE THE FRAMED SPACE ... - NTOTWRDS = IWINDOW(J_FR_MAX) * IWINDOW(IWRD_FR_MAX) - DO I = 1,NTOTWRDS - IMAGE(I) = 0 - ENDDO - -C ... GET MAP BGND NAME FROM IWINDOW(BGNAME), - i8acc = iwindow(BGNAME) - nc = 8 - do ir = 8,1,-1 - if((c1acc(ir) .eq. ' ') .or. - 1 (c1acc(ir) .eq. NULL)) then - nc = nc -1 - else -C ... is rightmost non-blank non-NULL char, so jump out - go to 220 - endif - enddo - 220 continue -C ... now given map-bgnd name is in c1acc(1):(nc) ... - if(nc .LE. 0) then - write(6,225) - 225 format(1h ,'getbgnd: given MAP-BGND NAME is NULL') -C ... so I cannot fetch a map bgnd. So, continue to initialize -C ... image plane, but skip the laying on of the map bgnd. - lmapbg_use = .false. - iret_bg = 1 - go to 999 ! ... jump arnd all the map-bgnd input - endif - -C ... to clean given map bgnd name, - - lwr_or_upr = 1 ! ... to force lower-case result - - call strpfnam(lwr_or_upr,c1acc,nc,cbgname,nchnam,iret_str) - if(iret_str .ne. 0) then - write(6,235)c8acc(1:nc),iret_str - 235 format(1h ,'strpfnam:FAILED to process map-bgnd name= "',A, - 1 '"', - 2 /1h ,' with return code=',I3) - lmapbg_use = .false. - iret_bg = 2 - go to 999 - endif - -C ... MAKE FULLY QUALIFIED MAP-BGND NAME FROM MAP(1) NAME.PUR -C ... PATH = /CODES/GRAPHICS/OK/BG/ - cfullname(1:) = cpathname(1:lastch(cpathname))// - 1 cbgname(1:nchnam)//'.pur'//NULL - write(6,245)cfullname(1:lastch(cfullname)) - 245 format(1h ,'getbgnd: map-bgnd filename = (see next line)', - 1 /1h ,'"',A,'"') - - -C ... TEST FOR THE EXISTENCE OF SUCH A BGND NAME ... - INQUIRE(FILE=CFULLNAME(1:LASTCH(CFULLNAME)),EXIST=LBGEXIST) - IF(.NOT. LBGEXIST) THEN - WRITE(6,265) - 265 FORMAT(1H ,'GETBGND: FAILED ON NON-EXISTENT MAP-BACKGROUND ', - 1 'FILE W/ NAME=', - 2 /1H ,' "',A,'"') - iret_bg = 3 - go to 999 - ENDIF - -C ------------------------------------------------------------- -C ... to compose an assign statement which will work like: -C ... "assign -a ../bg/nh4004.pur -s unblocked u:11" -C ... by composing: -C ... "assign -s unblocked f:fullyqualifiedname" - - cassi(1:) = ' ' - cassi(1:) = 'assign -s unblocked f:'// - 1 CFULLNAME(1:LASTCH(CFULLNAME))//NULL -ckumar WRITE(6,271)CASSI(1:NOTRAIL(CASSI)) -ckumar 271 FORMAT(1H ,'getbgnd:THE COMPOSED ASSIGN STMNT= (see next line)', -ckumar 1 /1H ,' "',A,'"') - -ckumar CALL ASSIGN(CASSI(1:NOTRAIL(CASSI))) - -C -------------------------------------------------------------- - IOSOPEN = 0 -C ... SINCE IT EXISTS, THEN OPEN IT FOR READING ... -ckumar OPEN(LUNBGD,FILE=CFULLNAME(1:LASTCH(CFULLNAME)), -ckumar 1 FORM='UNFORMATTED',STATUS='OLD', -ckumar 2 IOSTAT=IOSOPEN,ERR=900) - open (lunbgd,file=CFULLNAME(1:LASTCH(CFULLNAME)), - 1 form='unformatted',access='direct',recl=8) -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C -C ... FROM MAP CONSTANTS, DETERMINE HOW MANY MAP-BGND -C ... SCANLINES TO SKIP AT FRONT -C ... nskipln = 121 !... FOR AVPOLAR - nskipln = IWINDOW(J_BG_SKP) - - -C ... when trying for multi-panel app, I got invalid header -C .. on second panel; so try w/ rewind ... - -ckumar REWIND LUNBGD - -C ... READ BG HEADER INTO IHDR_BG FROM ~/bg/nh2500x.pur ... -ckumar READ(LUNBGD,ERR=910,END=920)(IHDR_BG(I),I=1,64) -ckumar - krec=1 - do krd=1,64 - READ(LUNBGD,ERR=910,rec=krd) IHDR_BG(krd) - krec=krec+1 - end do -ckumar -C ... from the header determine constants of this background -C ... in the original library file; such as, -C .... HOW MANY WORDS TO READ TO GET ONE SCANLINE - do i = 1,10 - mapcon_pur(i) = 0 - enddo - - idigits(1) = ihdr_bg(5) !... =ascii '00001876' - idigits(2) = 0 !... to put a NULL terminator - call byteswap(idigits(1), 8, 1) - lmt_nlines_lib = atoi(cdigits(1:9)) -C ... mapcon_pur(5) == lmt_nlines_lib - - idigits(1) = ihdr_bg(6) !... =ascii '00000027' - idigits(2) = 0 !... to put a NULL terminator - call byteswap(idigits(1), 8, 1) - lmt_nwrdplin_lib = atoi(cdigits(1:9)) -C ... mapcon_pur(6) == lmt_nwrdplin_lib - idigits(1) = ihdr_bg(7) !... =ascii '00001728' - idigits(2) = 0 !... to put a NULL terminator - call byteswap(idigits(1), 8, 1) - LMT_NPXLPLIN_LIB = atoi(cdigits(1:9)) -C ... mapcon_pur(7) == lmt_npxlplin_lib - - WRITE(6,325)LMT_NLINES_LIB, LMT_NWRDPLIN_LIB, LMT_NPXLPLIN_LIB - 325 FORMAT(1H ,'GETBGND: DIMENSIONS OF THIS MAP FROM LIBRARY ARE:', - 1 /1H ,' TOTAL COUNT OF SCANLINES =',I6, - 2 /1H ,' NO. OF LONG-WORDS PER LINE=',I6, - 3 /1H ,' NO. OF PIXELS PER LINE =',I6 ) - IF(LMT_NWRDPLIN_LIB .GT. NWRDPLIN_MXMX) THEN - WRITE(6,335)NWRDPLIN_MXMX,LMT_NWRDPLIN_LIB - 335 FORMAT(1H ,'GETBGND:FAILED ON ILLEGAL WIDTH OF MAP BGND ...', - 1 /1H ,' MAX POSSIBLE LINE LENGTH (IN WORDS) =',I8, - 2 /1H ,' THIS MAP,S LINE LENGTH (IN WORDS) =',I8) - IRET_BG = 4 - GO TO 999 - ENDIF - -C ... READ BG INTO IMAGE FROM ~/bg/nh2500x.pur ... - NLINRED = 0 - NLINSKPED = 0 - NLINUSED = 0 - JOFDEST = 0 - JOFSORC = 0 - IF(NSKIPLN .GT. 0) THEN -C ... READ NO OF SKIPPED BGND SCANLINES INTO VOID - do j = 1,nskipln - JOFSORC = JOFSORC + 1 -ckumar READ(LUNBGD,ERR=930,END=800) -ckumar 1 (INPLINBUF(I),I=1,LMT_NWRDPLIN_LIB) - krec=krec+LMT_NWRDPLIN_LIB - NLINRED = NLINRED + 1 - NLINSKPED = NLINSKPED + 1 - ENDDO - ENDIF -ckumar -C ... NOW BGND INPUT FILE POINTER IS AT THE FIRST SCANLINE TO USE - -C ... FROM OTHER MAP CONSTANTS, DETERMINE WHERE IN THE FRAME DO -C ... I POSITION THE FIRST USED MAP-BGND SCANLINE. - JOFDEST = IWINDOW(J_BG_ORG) - -C ... DO UNTIL REQUESTED SIZE OF BACKGROUND SPACE IS FILLED ... - DO 477 JBU = 1,IWINDOW(J_BG_SPA) - IF(JBU .LT. 5) THEN - LCKPRNTQ = .TRUE. - else - LCKPRNTQ = .FALSE. - ENDIF - JOFDEST = JOFDEST + 1 -C ... CHANGE THE FOLLOWING READ TO READ INTO A WORK SCANLINE - IF(JOFSORC .GE. LMT_NLINES_LIB)THEN -C ... EXHAUSTED EXISTING LINES OF MAP BGND FROM LIB ... -C ... I RAN OUT OF AVAILABLE BGND LINES BEFORE THE REQUEST -C ... WAS SATISFIED; - IF(LCYCLICQ) THEN -C ... IF THE BGND IS CYCLIC, THEN REPOSITION BGND FILE -C ... TO FIRST SCANLINE OF SOURCE AND KEEP ON READING ... -ckumar REWIND LUNBGD - krec=65 -C ... TO REPOSITION PAST THE HEADER RECORD ... -ckumar READ(LUNBGD,ERR=910,END=920)(IHDR_BG(I),I=1,64) -C ... DO NOT SKIP ANY REAL SCANLINE ON THIS RECYCLED - JOFSORC = 0 - ELSE -C ... HERE IS A CASE OF A NON-CYCLIC BACKGROUND AND -C ... WE HAVE EXHAUSTED THE DATA IN THE MAP-BGND, -C ... EVEN THOUGH THE DESIRED GEOGRAPHY DEST SPACE -C ... HAS NOT YET BEEN FILLED. -C ... SET A WARNING AND JUMP OUT -C ... HOW TO SET A WARNING??? IRET_BG = 2 - GO TO 999 - - ENDIF - ENDIF -C ------------------------------------------------------------- -C ... READ A SCANLINE WHICH IS TO BE USED, INTO A LONG LINE BUFFER -C ... WHICH IS BIG ENOUGH TO HOLD THE LONGEST SCANLINE OF ANY - JOFSORC = JOFSORC + 1 -ckumar READ(LUNBGD,ERR=930,END=800) -ckumar 1 (INPLINBUF(I),I=1,LMT_NWRDPLIN_LIB) -ckumar - do I=1,LMT_NWRDPLIN_LIB - READ(LUNBGD,ERR=910,rec=krec) INPLINBUF(I) - krec=krec+1 - end do - call byteswap(INPLINBUF, 8, LMT_NWRDPLIN_LIB) -ckumar - NLINRED = NLINRED + 1 -C -C ... NOW I HAVE ONE ORIGINAL BG SCANLINE -C ... IN (INPLINBUF(1),(LMT_NWRDPLIN_LIB) ... -C ... so, CUT / SHIFT TO FIT WITHIN FRAME -C ... and TRANSFER TO IMAGE PLANE ... - call bgln_cut(inplinbuf,image,jofdest,iwindow,mapcon_pur, - 1 LCKPRNTQ,iret_cut) -C -C . . . . . . . . . . . . . . . . . . . . . . . - NLINUSED = NLINUSED + 1 - 477 CONTINUE -C ... WHICH IS ENDDO -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - - 800 CONTINUE - - WRITE(6,805) NLINRED,NLINSKPED,NLINUSED - 805 FORMAT(1H ,'getbgnd: READ BACKGROUND. SCANLINES COUNTED=',I6, - 1 /1H ,' OF WHICH SKIPPED=',I6,'; USED=',I6) - -C ... for checkout only. ... the bgnd is not visible on image -C ... is there anything there? -C ... INITIALIZE THE FRAMED SPACE ... - iorsum = 0 - DO I = 1,NTOTWRDS - iorsum = ior(iorsum,image(i)) - ENDDO - if(iorsum .EQ. 0) then - write(6,815)NTOTWRDS - 815 format(1h ,' * * * * * * * W A R N I N G * * * * * * * *', - 1 /1H ,'getbgnd: At finish, there is no geography in ', - 2 'the image plane.', - 3 /1H ,' Word count of IMAGE space =',I8, - 3 /1H ,' * * * * * * * * * * * * * * * * * * * * * * * *') - endif - - - GO TO 999 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 900 CONTINUE - WRITE(6,905)LUNBGD,IOSOPEN - 905 FORMAT(1H ,'getbgnd: FAILED on OPENing map background ', - 1 'on UNIT=',I3, - 2 /1H ,' ERROR-CODE IOSTAT=',I8) - IRET_BG = 6 - go to 999 - - 910 CONTINUE - WRITE(6,915)LUNBGD - 915 FORMAT(1H ,'getbgnd: FAILED on read ERR on map background ', - 1 'HEADER record on UNIT=',I3) - IRET_BG = 7 - go to 999 - - 920 CONTINUE - WRITE(6,925)LUNBGD - 925 FORMAT(1H ,'getbgnd: FAILED on read EOF on map background ', - 1 'HEADER record on UNIT=',I3) - IRET_BG = 8 - go to 999 - - 930 CONTINUE - WRITE(6,935)LUNBGD - 935 FORMAT(1H ,'getbgnd: FAILED on read ERR on map background ', - 1 'data record on UNIT=',I3) - IRET_BG = 9 - go to 999 - - - 999 CONTINUE - CLOSE(LUNBGD) - RETURN - END - diff --git a/util/sorc/sixbitb2.fd/ipak.f b/util/sorc/sixbitb2.fd/ipak.f deleted file mode 100755 index b33b5f76a1..0000000000 --- a/util/sorc/sixbitb2.fd/ipak.f +++ /dev/null @@ -1,89 +0,0 @@ - subroutine ipak(cpak,isub) -C BUILD IPAK STRING FOR OSO. IPAK(1:4) is handled -C BY CALLER BUT FAX CUT NUMBER, CYCLE, DATE, DAY OF WEEK -C AND PRODUCT NAME MUST BE INSERTED HERE. THESE ARE -C calculated from knowledge of the subset number -c (passed in ISUB) and the date (stored in environment -c variable PDY) and the Forecast cycle (stored in environment -c variable CYCLE. These latter two -c are input with the GETENV fortran function. -c -c arguments -c CPAK (56 character ascii array to store IPAK string) -c ISUB subset number used for fax cuts and here -c used to infer the product name also , only CPAK is modified -c - common/packra/iras(10) - dimension cm(12) - character*3 cm - data cm/'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG', - 1 'SEP','OCT','NOV','DEC'/ - character*56 cpak - character*8 cdate - character*4 cycle - character*4 cwk - character*24 cprod - integer istat - cpak=' ' -c - call getenv("PDY",cdate) - call getenv("cycle",cycle) -c - print*,'In ipak ' - print*,'cdate in ipak ',cdate - print*,'cycle in ipak ',cycle -c - read(cdate,101)iy,im,id - read(cycle(2:3),102)ih - iras(7)=ih - iras(8)=id - iras(9)=im - iras(10)=iy - iadd=0 - 101 format(i4,2i2) - 102 format(i2) - print *,' date ',cdate - if(isub .eq. 50 .or. isub .eq. 51) iadd=12 - iras(1)=iadd - call updatr - id=iras(4) - im=iras(5) - iy=iras(6) - ih=iras(3) - print*,'id,im,iy,ih before dayowk ',id,im,iy,ih -ckumar if(iras(6) .gt. 50) iy=1900+iras(6) -ckumar if(iras(6) .le. 50) iy=2000+iras(6) -c -ckumar call dayowk(id,im,iy,idwk,cwk) - call dayowk(iras(4),iras(5),iras(6),idwk,cwk) -ckumar call dayowk(iras(4),iras(5),iy,idwk,cwk) -c special code for trpsfcmv - if(isub .eq. 3820) isub=2700 - if(isub .eq. 3675) isub=2701 - write(cpak(4:9),103)isub - if(isub .eq. 50) cprod='FAXPLOT ' - if(isub .eq. 51) cprod='FAXPLOT ' - if(isub .eq. 2927) cprod=' WINDS ALOFT 02+40 ' - if(isub .eq. 2977) cprod=' WINDS ALOFT 02+40 ' - if(isub .eq. 2929) cprod=' WINDS ALOFT 02+40 ' - if(isub .eq. 2979) cprod=' WINDS ALOFT 02+40 ' - if(isub .eq. 2700) cprod=' TROPICAL SFC ANAL ' - if(isub .eq. 2701) cprod=' TROPICAL SFC ANAL ' - if(isub .eq. 3658) cprod=' TROPICAL SFC ANAL ' - if(isub .eq. 3659) cprod=' TROPICAL SFC ANAL ' - if(isub .eq. 3670) cprod=' TROPICAL SFC ANAL ' - if(isub .eq. 3671) cprod=' TROPICAL SFC ANAL ' -cB 50 TIU 00Z 13 FEB FAXPLOT -cB 50 TUE 12Z 18 FEB 97 FDFAX UPPER WHNDS - 103 format('B',i4) - write(cycle(2:3),109)ih - 109 format(i2.2) - write(cpak(10:56),105)cwk,cycle(2:4),' ', - 1 id,' ',cm(im),' ',iy,' ',cprod -c 1 id,' ',cm(im),' ',cprod -c 1 id,' ',cm(im),' ',iy,' ',cprod - 105 format(1x,a4,a3,a1,i2,a1,a3,a1,i4,a1,a24) -c 105 format(1x,a4,a3,a1,i2,a1,a3,a1,i4,x,a24) - print * ,'cpak ',cpak - return - end diff --git a/util/sorc/sixbitb2.fd/lputlab.f b/util/sorc/sixbitb2.fd/lputlab.f deleted file mode 100755 index 41a590f906..0000000000 --- a/util/sorc/sixbitb2.fd/lputlab.f +++ /dev/null @@ -1,35 +0,0 @@ - SUBROUTINE lPUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KPRIORS,ITAG) - common/counts/icount -ckumar data icount/0/ - dimension kprior(2) - character*(*) ctext -c parse kprior -ckumar 1 line below added by kumar ! for ibmsp1 - icount = 0 - kprior(1)=0 - kprior(2)=0 - if (kpriors .eq. 0) then - kprior(1)=0 - kprior(2)=0 - else - kprior(2)=kpriors - kprior(1)=0 - endif - icount=icount+1 - print 901,ipt,jpt,height,ctext,angle,nchar,kprior,itaG - print 904,ctext,nchaR - 904 format('LPUTLAB TEXT',A132,i4) - 901 format - 1 ('LPUTLAB ARGS',i6,i6,f6.2, '>',a16,'<',f6.2,i3,i6,i6,i8) - if(icount .le. 1) then - print 902 - 902 format('LPUTLAB',/,'LPUTLAB HDRS IDOT JDOT',2x, - 1' HGT', 7x,'CHAR',7x,' ANG', - 1 ' NCH KP(1) KP(2) ITG ',/,'LPUTLAB') - endif - if (icount .ge. 20)icount=0 -C call PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,8,KPRIOR,ITAG) - call PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KPRIOR,ITAG) - return - end - diff --git a/util/sorc/sixbitb2.fd/main.f b/util/sorc/sixbitb2.fd/main.f deleted file mode 100755 index 4ab58d66b8..0000000000 --- a/util/sorc/sixbitb2.fd/main.f +++ /dev/null @@ -1,1018 +0,0 @@ -c $$$ MAIN PROGRAM DOCUMENTATION BLOCK *** -c -c MAIN PROGRAM: SIXBITB2 -C PRGMMR: KUMAR ORG: NP12 DATE: 2000-03-21 -c -c ABSTRACT: Packs raw bit image into 6 bit bedient format -c Adds NOAA DUCK. Image resolution is passed -c in a header in the bit image (read from fortran -c units 11 and 12) -c -c PROGRAM HISTORY LOG: -c 96-12-18 vandenberghe Program was originally avpolar -c 86-08-12 HLYWIAK -c 88-02-03 RUSSELL E. JONES CHANGE FORTXDAM-W3FK00 I/O PACKAGE -c TO VSAM-W3FK40, W3FT19 TO W3FT59 -c 88-02-03 HENRICHSEN PETER USE W3FQ06 REMOVE INLINE GRAPHIC -c SUBROUTINES. -c 91-03-15 LILLY ADD CALL TO GULFTL WHICH PROVIDES -c THE GENERATING MODEL. -c 95-05-05 LILLY CONVRT TO FORTRAN 77. ADD LOGIC -c FOR PRODUCING AN ATLANTIC AND A -c PACIFIC FAX CUT FOR FL450, FL390, -c FL340, FL300, FL240, AND FL180. -c 95-09-06 LILLY ADD SUBROUTINE DUCK IN ORDER TO -c DISPLAY NCEP INSTEAD OF NMC ON -c VARIOUS CHARTS. -c 96-12-18 vandenberghe removed graphics portion and -c left six bit packing logic. The -c ancestor of this program is avpolarv -c the only remaining graphics is -c a call to DUCK -c this program is expected to -c do all conversion of imported -c raster images to 6 bit graphics -c however fax image size is currently -c hardwired; a holdover from the -c cntr ancestery of avpolar; the -c hardwiring probably should be removed -c so master image size(s) can be -c specified in fort.5 ( now done just b -c -c 97-01-17 added capability to read multiple map -c images of varying resolution as -c suggested above. However the resolution -c information is stored in the map image -c and no fort.5 is needed (yet), the imag -c are read from unit 12. -C -C 97-02-18 retrofitted capability to build -c IPAK field in product in response -c to OSO requirement. This only -c works for FDFAX and WNDANFTF -c products so far. All done in -c a call to ipak just before cntr call -c -c 97-06-20 VANDENBERGHE EXTENSIVE enhancements. Added -c capability to modify fax cuts -c on the fly from fortran unit 4 input -c and also write various text and boxes -c to the map background. Also added -c new subroutine STAL to read station -c input from fortran unit 39 and -c subroutine STAPLT to plot each station. -c Added titling capability to GULFTL; -c this now also reads titles from unit 13. -c The strip title is read in the main pro -c all other titles are read in GULFTL. -c Added subroutine BOX to draw boxes. -c Added capability to shift all text plot -c by GULFTL, BOX, and STAPLOT, by a varyi -c number of x and y pixels; this -c allows the same station information to -c be used on a different background. -c Although this program is believed to -c be downward compatable with the old -c sixbitb code, that capability has -c not been tested so a part of the -c revisions is a name change to sixbitb2. -c -c 1999-09-08 KRISHNA KUMAR Converted this code for IBM RS/6000 -c from CRAY. Program has been modified -c to write the Fax output in direct -c access mode. -c USAGE: -c INPUT: -c fort.18 fax cut NAMES and subset numbers to use. -c (this is NOT overridden by unit 4 input below -c fort.15 map naming information (ignored) -c mapback.pur map image (just read for map header) -c CNTR package will reopen this as unit -c 11 (see below) -c ./mapback.pur (unit 11) (hidden within cntr libraries) -c map background which for this -c program contains ALL of the graphics -c the name of the background is -c mapback.pur on the programs current -c working directory and it is specified -c in a data stattement -c (optional) -c ./image002 All of these are processed as fort.9 and -c ./image003 then reopened as fort.11 by CNTR package -c ./image004 CNTR usage of fort.11 is supposed to be -c ./image005 transparent to caller but unit 11 must -c .. not be open when CNTR is called. -c .. THIS REQUIREMENT IS MET BY THIS CODE!! -c ./imagennn -c fort.39 station pixel coordinates and all data -c fort.13 optional run time titles, boxing instructions, -c text plotting instructions, map shifting -c instructions, and fax cutting instructions -c Fort.4 is scanned for each -c type of instruction and any such instructions. -c are processed. The instructions may appear in -c any order and may be mixed. -c Some types may not be present -c or the whole file may be empty, then the -c program just plots a single title and strip -c titles and passes the image through to OSO -c with default fax cutting information. -c fortran unit 18 above describes cut NAMES -c and subset numbers; fort.4 input specifies -c the DIMENSIONS of the cut(s), otherwise defaul -c are used -c -c OUTPUT: -c fort.81 6bit bedient file -c SCRATCH: -c fort.60, 61, 62, 63, 71, 72, 52, and 55 -c all are assigned on cray as -sunblocked -c -c SUBPROGRAMS CALLED: -c UNIQUE: ECHBAR GETSXX NPOLUV PLTTLL -c PLTWLL POLSTN -c RNCNTL MERCIN DOFRST AVTTLS SLTCRD -c FAXSHD WNDRNH IPAK STAL STAPLT GULFTL BOX -c -c LIBRARY: -c SPECIAL - CONSOL IAND IOR ISHFT -c SYSTEM - GETENV (in ipak only) -c W3LIB - W3AI24 W3AQ13 W3AQ09 W3AS00 -c - W3FQ06 -c W3FB04 W3FK40 W3FT59 W3FA11 W3FA13 -c W3FT08 W3FT09 W3FT10 W3FT11 W3FA12 W3FT12 -c found on /nwprod/w3lib on all three cray -c GRAPHIC - -c CNTR ISP2EB ZPLOT -c AFDMP AFNC AFST CHARAC CMSK CNTR -c CNTRI CONST DAYOWK DCD4 DSH ENDMAP -c ENDAFO HILO IFS INPUT INTRP IROT -c IRVR ISORT LKTLBS MERGE NCD8 OUTP -c PRTITL PUTLAB RAISE SCAN SHADE SNAP -c TRANSA UPDATR VECT WINCON WNDBRK WNDIRT -c found on /nwprod/gphlib/gphcntr -c /nwprod/gphlib/gphfont -c /nwprod/gphlib/gphlib -c on cray4 (exec works on all crays) -c -c -c EXIT STATES: 96 Bad GRIB index file; 99 bad GRIB file -c -c -c LANGUAGE: F90 -c MACHINE : IBM -c -c 12/18/96 New program requirements (ignore above) -c fort.8 fax cut information -c fort.5 map naming information (ignored) -c fort.11 (hidden within cntr libraries) -c map background which for this -c program contains ALL of the graphics -c the name of the background is -c mapback.pur on the programs current -c working directory and it is specified -c in a data statement -c -c a future version will allow multiple -c backgrounds for multiple images -c $$$ -c - COMMON/ISPACE/BUFF(5400),XTRA(8400) - COMMON/MFILE/LANL(256),IDANL(1539) - COMMON/PACKRA/JTAU(2),IUHR,ITAG,MONAT,JAHR,IHOUR,IDAY,IMONTH,IYR - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON/ICNTR/IP1(2),IP2(2),IP3(2) - COMMON/ICNTR2/IP4(2),IP5(2),IP6(2) - COMMON/MRGARG/YDIS,DUMMY(2),iret_zpl,XO,YO - COMMON/XZPLAX/XZPLOT,YZPLOT,IORITY - COMMON/POLST2/LABSTN(2,145) - COMMON/NSCHED/ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,60) - COMMON/TITLES/KTITLE(28),LPOLAR,LOWLEV - parameter(MAXIWORD=36,MAXJSLINE=5828) - PARAMETER (IMAGSIZ_WRDS=MAXIWORD*MAXJSLINE) - dimension IMAGE(IMAGSIZ_WRDS) - character*8 clabss(2,145) - character*80 cstrip,cstrip2 - common/st/cstrip,cstrip2 -ckumar - COMMON/IOUTFAX/IFAXOUT,NRECFAX ! ADDED FOR DIRECT ACCESS FOR FAX OUTPUT -C - INTEGER IFAXOUT,NRECFAX -ckumar - character*130 cline - dimension nshift(59) - integer ioutin(2) - data nshift/59*0/ -CCKUMAR Change - equivalence (labstn,clabss) -CCKUMAR Change -c -ckumar - REAL d12(145*37),d22(145*37),d32(145*37),d42(145*37) -c - INTEGER d11(6) - INTEGER d13(2),d14(2),d15(20) - INTEGER d23(2),d24(2),d25(20) - INTEGER d33(2),d34(2),d35(20) - INTEGER d43(2),d44(2),d45(20) -C - DIMENSION ICK(3) - INTEGER ichk(3) - -c ADDED THIS............................... - DIMENSION ITAUI(3),ILVLI(3), IFLDI(3) - DIMENSION ITAU(3),LVL(3),ITYPE(3) - DIMENSION MTAU(5),MLVL(8),KLVL(8),MTYPE(3) -c - DIMENSION IL(15) - DIMENSION INDEX(6) - DIMENSION INAM1(3) - character*8 cnam1(3),cnam2(3),cnam3(3) - character*12 cn12(3) - dIMENSION INAM2(3) - DIMENSION INAM3(3) - equivalence (cnam1,inam1),(cnam2,inam2),(cnam3,inam3) - DIMENSION IBCDT(2) - dIMENSION IBCD(80) - DIMENSION IFSRP(80) - DIMENSION IBCD1(3) - DIMENSION IBCD2(4) - DIMENSION IBCD3(5) - DIMENSION IBCD4(4) - DIMENSION IDESC(9) - DIMENSION IDDC(5) - DIMENSION IBCDZ(2) - DIMENSION ITITL3(4) - DIMENSION ITITL4(2) - DIMENSION IMONT(12) - DIMENSION IFID(14) - character*1 cifid(56) - character*56 cifid56 - equivalence (cifid56,cifid) -CCKUMAR Change - equivalence (cifid,IFID) -CCKUMAR Change - INTEGER JFID(14) - character*4 cjpp(2,14) - character*1 cjfid(56) -CCKUMAR Change - equivalence (cjpp,jfid) -CCKUMAR Change - character*56 cjpp56 - equivalence (cjpp56,cjfid) -CCKUMAR Change - equivalence (cjfid,jfid) -CCKUMAR Change - DIMENSION KWNCTL(3,19) - DIMENSION KTTCTL(3,19) - DIMENSION FLD1(145,37) - DIMENSION FLD2(145,37) - DIMENSION IVLD(2) - INTEGER MESS1(11),MESS2(11),MESS3(10) -c THIS INCLUDES THE ATLANTIC HALF AND PACF HALF - DIMENSION IAREA(8,19) - dimension ishiftx(50) - dimension ishifty(50) - common/pshift/ishiftx,ishifty,ishiftxx,ishiftyy -c data ishiftx,ishifty,ishiftxx,ishiftyy/102*0/ -c -c -c THIS IS A TEST TO SEE IF I CAN REPLACE CALL ENDMAP -c WHICH THE FOLLOWING SUBSTITUTION???? - INTEGER SFL - DATA SFL /X'FFFFFC00'/ -c -c - CHARACTER*44 IMESS2 - CHARACTER*40 IMESS3 - CHARACTER*56 KJFID - CHARACTER*1 LPARM(100) - CHARACTER*1 LI - DATA LI /'I'/ - CHARACTER*4 NSTOP -c - INTEGER ITITL1 - INTEGER I00Z - INTEGER I12Z - INTEGER IDENT(12) - INTEGER IFULL - INTEGER J00Z - INTEGER J12Z - INTEGER LU -c - INTEGER IP1,IP2,IP3 - INTEGER IP4,IP5,IP6 - INTEGER IHAVL(2) -c - LOGICAL LPOLAR - LOGICAL LOWLEV -c -c.....FOLLOWING ARE THE CUT DEFINITIONS FOR ISCHED... -c 1=XX14,2=VFULL,3=XX15,4=PN28,5=NT22,6=NT23,7=PN29,8=ATLN,9=PACF -c STRT(SCANS),HEIGHT(S),FLAGS,INDENT(BYTES),WIDTH(B),FAXIND(B), -c STRT OF INSET(S),INSET NUMBER -c -c AND THIS.................................... -c - DATA MTAU /18,24,30,36,48/ - DATA MLVL /850,700,500,400,300,250,200,150/ - DATA KLVL /4H 850,4H 700,4H 500,4H 400,4H 300, - 1 4H 250,4H 200,4H 150/ - DATA MTYPE /48,49,16/ -c - DATA NUMTAU /5/ - DATA NUMFLD /3/ - DATA NUMLVL /8/ -c - DATA MESS1/4HNWS ,4H;@20,4H** ,4HAVPO,4HLAR ,4HCOMP,4HILED, - 1 4H 2/,4H18/8,4H8. *,4H* ;:/ - DATA MESS2/4HNWS ,4H;@20,4HPOLA,4HR AV,4HIATI,4HON M,4HAPXX, - 1 4HXX W,4HAS M,4HISSE,4HD ;:/ - DATA MESS3/4HNWS ,4H;@20,4H** X,4HX OF,4H XX ,4HMAPS,4H COM, - 1 4HPLET,4HED ,4H**;:/ - DATA IAREA/216,2000,129,41,216,0,0,0, - 2 1,3600,128,00 ,216,0,0,0, - 3 0001,3500,128,0, 216,0,0,0, - 4 3450,3500,128,0 ,216,0,0,0, - 5 790,1950,064,67,108,0,0,0, - 6 55,1710,129,40,216,0,0,0, - 7 655,1435,129,130,216,0,0,0, - 8 100,2800,129,0,216,0,0,0, - 9 100,2800,129,-128,216,0,0,0, - a 1700,3500,128,00 ,216,0,0,0, - b 3500,3500,128,64 ,128,0,0,0, - c 0001,2700,128,64 ,128,0,0,0, - d 3400,2700,128,32 ,128,0,0,0, - e 1700,3500,128,32 ,128,0,0,0, - f 0001,2700,128,64 ,128,0,0,0, - g 0001,2700,128,64 ,128,0,0,0, - h 0001,2700,128,64 ,128,0,0,0, - i 0001,2700,128,64 ,128,0,0,0, - k 0001,2700,128,64 ,128,0,0,0/ - DATA ICK/0,13800,1/ - DATA MASK8/X'000000FF'/ - DATA NU/61/ - DATA IDESC/4HUNSI,4HGNED,4H TEM,4HPERA,4HTURE, - X 4HS AR,4HE NE,4HGATI,4HVE. / - DATA KWNCTL / 00, 1, 2, 05, 1, 2, - 1 10, 1, 2, 15, 1, 2, - 2 20, 1, 2, 25, 1, 2, - 3 30, 1, 2, 35, 1, 2, - 4 40, 1, 2, 45, 1, 2, - 5 50, 1, 2, 55, 1, 4, - 6 60, 1, 4, 65, 1, 4, - 7 70, 1, 4, 75, 5, 8, - 8 80, 1,16, 85,29,36, - 9 90,73,73 / - DATA LBLTAP/55/ - DATA KTTCTL / 00, 1, 4, 05, 3, 4, - 1 10, 1, 4, 15, 3, 4, - 2 20, 1, 4, 25, 3, 4, - 3 30, 1, 4, 35, 3, 4, - 4 40, 1, 4, 45, 3, 4, - 5 50, 1, 4, 55, 3, 4, - 6 60, 1, 4, 65, 5, 8, - 7 70, 1, 8, 75, 5, 8, - 8 80, 1,16, 85,29,36, - 9 90,73,73 / -c ... WHERE KTTCTL HAS LAT/ M1 /M3 OF LOOP CONTROLS FOR TEMPERATURE - DATA INDEX/51,23,0,-47,0,23/ -c -c CONSTANTS FOR BACKGROUND NH2500 -c -c 12/29/96 GWV -c variables to handle multiple map backgrounds -c (one per image up to 99 images) -c file ./cnames(k).pur will be opened in the map loop -c the cfiles variable is a convenient way to handle -c the ./ prefix and the .pur suffix. - character*8 cl(15) - equivalence (cl,il) - character*8 cnames(100) - character*14 cfiles(100) -c variable to store resolution from map background -c (rather than hardwiring it) - character*80 chead - DATA IL(1),IL(2)/8HMAPBACK ,0 / - DATA IL(3),IL(4),IL(5),IL(6)/0,0,1792,2440/ - DATA IL(7),IL(8),IL(9),IL(10)/0,0,1792,2440/ - -c -c CONTOUR ADJUST -c - DATA IL(11),IL(12)/0,0/ -c -c LABELS ADJUST -c - DATA IL(13),IL(14)/0,0/ - DATA JFID/4H V,4HSSSS,4H CCZ,4H MM/,4HDD T,4HTHR ,4HLLLM, - X 4HB PO,4HLAR ,4HAVIA,4HTION,4H W/T,4H ,4H / - DATA INAM1/4HPROP,4HERTY,4H OF / - DATA INAM2/4HK. H,4HLYWI,4HAK / - DATA INAM3/4HBIN ,4HA4 W,4HWB / - DATA cn12/'PROPERTY OF ','K. HLYWIAK ','BIN A4 WWB '/ - DATA ITITL1/4H / - DATA ITITL3/4H HR,4H PRO,4HG VA,4HLID / - DATA I00Z/4H00Z / - DATA I06Z/4H06Z / - DATA I12Z/4H12Z / - DATA I18Z/4H18Z / - DATA IMONT/4HJAN ,4HFEB ,4HMAR ,4HAPR , - X 4HMAY ,4HJUN ,4HJUL ,4HAUG , - X 4HSEP ,4HOCT ,4HNOV ,4HDEC / - DATA J00Z/4H 00Z/ - DATA J12Z/4H 12Z/ - DATA ITITL4/4HBASE,4HD ON/ - DATA IDDC/4HNWS-,4HNCEP,4HWASH,4HINGT,4HON. / - DATA IDID/600/ - DATA IGIANT/15/ - DATA ISMALL/10/ - DATA IVLD/4H VAL,4HID / - DATA INCR/25/ - DATA IONE/1/ - DATA LU/18/ - DATA IBLANK/4H / -c IA IS DEFINITION , JA IS THE NUMBER OF CUTS - DATA IA/8/,JA/19/ - DATA KVAR/2/,IMAPER/0/ -c -c.......ADDED ON 5 JUNE 1986........... - DATA IDFAX/4H B/ - DATA IFFAX/4H F/ - DATA IVFAX/4H V/ - DATA IMASK3/X'FF000000'/ - DATA MAPT7/X'E5000000'/ -c - EQUIVALENCE (IFULL,IHAVL(1)) - EQUIVALENCE(T1,IL(15)) - EQUIVALENCE(FLD1(1,1),BUFF(1)) - EQUIVALENCE(FLD2(1,1),XTRA(1)) -CCKUMAR Change - EQUIVALENCE(IMESS2,MESS2(1)) -CCKUMAR Change - EQUIVALENCE(IMESS3,MESS3(1)) -CCKUMAR Change - EQUIVALENCE(KJFID,JFID(1)) -CCKUMAR Change - integer kvv(2) -c -c SET FLAG FOR POLAR MAP - character*3 cst6,cst68 - CALL W3TAGB('SIXBITB2',2000,0081,0069,'NP12') -ckumar - IEXIT = 0 - JLAST = 0 - NRECFAX = 0 - IFAXOUT = 81 -ckumar -c OPEN THE OUT PUT FAX FILE. - - OPEN (IFAXOUT, ACCESS='DIRECT', RECL=1440 ) -c -ckumar -c GWV 5/1/97 -c look for run time iarea modifications, strip titles and -c map number specific pixel shifts -c (modify fax cuts) -c -ckumar -ckumar cstrip initialized with blanks -ckumar - cstrip(1:)=' ' -ckumar - do i=1,50 - ishiftx(i)=0 - ishifty(i)=0 - enddo - - ishiftxx=0 - ishiftyy=0 -c*** - do 4,k=1,999999 - - read(13,1380,end=49,err=49)cline - print *, cline - 1380 format(a130) - - if(cline(1:5) .eq. 'IAREA') then - read(cline,1382) kd,jd,ival - iarea(kd,jd)=ival - print *,' IAREA(k,j) MODIFIED K= ',kd, ' J= ',jd, - 1 ' NEW VALUE =',ival - 1382 format(6x,3i6) - endif - if(cline(1:5) .eq. 'STRIP') read(cline,186)cstrip - if(cline(1:5) .eq. 'SHIFT') - 1 read(cline,188)kmap,ishiftx(kmap),ishifty(kmap) - 188 format(6x,3i5) - 186 format(6x,a80) - 4 continue - 49 continue -ckumar - rewind (13) -ckumar -c end fax cut modification -c -c*** -c -c CODE ADDED TO CONVERT EBCDIC STATION ID SPECIFIED -c IN HEX DATA STATEMENTS, TO ASCII -c -c*** - do 7 k=1,14 - id=(K-1)*4 +1 - cjpp56(id:id+3)=cjpp(1,k) - print 1777,cjpp(1,k),cjpp(2,k),cjpp56 -1777 format(' DISPLCODE ',2a8,' nx ',a56) -7 continue -c -c*** -c convert labstn -c -c*** - do 10,k=2,145 - cst68=clabss(2,k)(6:8) - 197 format(' LABSTN ',a3) - 10 continue -c -c*** -c -c load filenames for map backgrounds - cfiles(1)='mapback.pur' - cnames(1)='MAPBACK ' -c -c*** - do 2,k=2,100 - write(cnames(k),1019)k - write(cfiles(k),1039)k - 1019 format('image',i3.3) - 1039 format('image',i3.3,'.pur') - 2 continue -ckumar - print*,'******cnames(2) ',cnames(2) - print*,'******cfiles(2) ',cfiles(2) -ckumar -c -c*** - LPOLAR=.TRUE. -C -C INITIALIZE TAPE -C - REWIND NU -C CALL ERRMSG(9) - T1=60.0 -C PRINT(MESS1) - WRITE(6,3482) - 3482 FORMAT(1X,'BEFORE RNCNTL') -c -c*** - CALL RNCNTL(NMAPS,IDATC,IOPN,ISWTCH,KRUN1,ITOU1,ICYC1, - 1 INOPN1,INOPN2,INOPNA,INOPNB) -c*** - WRITE(6,3483) - 3483 FORMAT(1X,'AFTER RNCNTL') - IF(ISWTCH.EQ.0)GOTO 105 -C -C FALL THRU-SEARCH THROUGH PEPFAXA SCHEDULE FOR DESIRED -C RUN CARD ("1" CARD). -C -c*** - 2000 READ(LU,2005,ERR=2055,END=2060)ICARD3,IIRUN1,IIRUN2,IIJOB1, - 1IIJOB2,IICYC,NMAPS,KCODE1,KCODE2 - 2005 FORMAT(I1,2(A4,A1),A4,I5,3X,A4,A1) - IF(ICARD3.EQ.IONE)GOTO 2020 -Corig PRINT 2010,LU -c WRITE(6,2010)LU -c2010 FORMAT('0BAD RUN CARD FORMAT ON UNIT',I2) -c*** - CALL W3TAGE('SIXBITB2') - STOP 2012 -c -c OTHERWISE, RUN CARD FORMAT FOUND AND OK. -c - 2020 IF(INOPNA.EQ.IIJOB1.AND.INOPNB.EQ.IIJOB2)GOTO 2090 -c -c FALL THRU-READ THROUGH UNWANTED PART OF SCHEDULE. -c -c*** - DO 2050 I=1,NMAPS - READ(LU,2030)NSLOTS - 2030 FORMAT(68X,I4) - DO 2050 J=1,NSLOTS - READ(LU,2040)I1 - 2040 FORMAT(A1) - 2050 CONTINUE -c*** - GOTO 2000 - 2055 CONTINUE -c WRITE(6,2057) LU - 2057 FORMAT('0ERROR READING FILE',I2,'...PROGRAM STOPS') - CALL W3TAGE('SIXBITB2') - STOP 2058 - 2060 CONTINUE -c WRITE(6,2062)LU - 2062 FORMAT('0END OF FILE ON UNIT',I2,' WITHOUT FINDING OPERATIONAL JOB - 1TYPE') - CALL W3TAGE('SIXBITB2') - STOP 2065 - 2090 CONTINUE - WRITE(6,2092) LU,IIJOB1,IIJOB2 - 2092 FORMAT('0OPERATIONAL JOB FORMAT FOUND ON UNIT',I2,'---',A4,A1) -c -c * * * * * * * * * * BASIC MAP LOOP* * * * * * * * * * * * * * * * -c - 105 CONTINUE -c -c*** - DO 1306 IMP=1,NMAPS - ishiftxx=ishiftx(IMP) - ishiftyy=ishifty(IMP) - cl(1)=cnames(IMP) - -ckumar -ckumar Reading the map background - Unit number is changed to -ckumar 12 from 9 - -ckumar open(12,form='unformatted',file=cfiles(imp)) - open(12,form='unformatted',access='direct',recl=80, - 1 file=cfiles(imp)) -c*** -ckumar - print*,'Reading Mapback # 1 ',nmaps - print*,'Mapback Name ##### ',cfiles(imp) -ckumar - read(12,rec=1) chead - print*,'chead',chead - read(chead,101)nscan,ipixel - 101 format(36x,i4,6x,i2) - ipixel=ipixel*64 - il(6)=nscan - il(5)=ipixel+64 - print *,' MAP RESOLUTION WILL BE ',il(5),il(6) - il(9)=il(5) - il(10)=il(6) -c new VFULL cut modification 2/24/97 - iarea(2,2)=nscan -c end new VFULL cut mod - print *,' MAP RESOLUTION WILL BE ',il(5),il(6),' cut', iarea(2,1) -ckumar - close (12) -ckumar -c*** -c ZERO ISCHED ARRAY -c*** - DO 1300 I=1,8 - DO 1300 J=1,60 - ISCHED(I,J)=0 - 1300 CONTINUE -c*** -corig PRINT 1302 - WRITE(6,1302) - 1302 FORMAT('0ISCHED ARRAY HAS BEEN INITIALIZED FOR NEXT MAP') -c INITIALIZE PUTLAB ARGUMENTS -c - PUTHGT=1.0 - PUTANG=0.0 - IPRPUT=0 - ITAPUT=0 -c -c INITIALIZE FOR ZPLOT -c - YDIS=0.0 - XZPLOT=1.0 - YZPLOT=1.0 - IORITY=2 -c -c INITIALIZE LABEL ARRAY -c - REWIND LBLTAP -c -c SETUP FOR REGULAR CHARACTERS -c - CALL ZPLOT(0.0,0.0,-3) -c -c -c INSERT ICOA STATIONS IN LABEL ARRAY -c - M2=LABSTN(1,1)+1 -c -c*** - DO 107 IZ=2,M2 - LABIX=LABIX+1 - LABEL(1,LABIX)=LABSTN(1,IZ) - LABEL(2,LABIX)=LABSTN(2,IZ) - 107 CONTINUE - print*,'LABEL ARRAY',((label(i,j),j=1,1024),i=1,2) -c -c*** -c -c INSERT NAME ON MAP -c - IF(ISWTCH.EQ.1)GOTO 108 - IXL=1150 - IXL1=180 - JXL=250 - HT=11.0 - NCHAR=12 - IHAVL(1)=0 - IHAVL(2)=0 - ITAPUT=IFULL -c - kvv(1)=0 - kvv(2)=0 - CALL PUTLAB(IXL,JXL,HT,CN12(1),0.0,NCHAR,kvv,ITAPUT) - CALL PUTLAB(IXL1,JXL,HT,CN12(1),0.0,NCHAR,kvv,ITAPUT) - JXL=JXL-35 - CALL PUTLAB(IXL,JXL,HT,CN12(2),0.0,NCHAR,kvv,ITAPUT) - CALL PUTLAB(IXL1,JXL,HT,CN12(2),0.0,NCHAR,kvv,ITAPUT) - JXL=JXL-35 - CALL PUTLAB(IXL,JXL,HT,CN12(3),0.0,NCHAR,kvv,ITAPUT) - CALL PUTLAB(IXL1,JXL,HT,CN12(3),0.0,NCHAR,kvv,ITAPUT) - 108 CALL MERCIN(ISWTCH,NUMF,MAPON,NSLOTS,ILVLI, - 1 IFLDI,ITAUI,ICODIN,INAMIN,IOUTIN,IINFA,IINFB) -c*** - DO 100 I = 1,NUMFLD - DO 110 J = 1,NUMTAU - IF(ITAUI(I).EQ.J) ITAU(I) = MTAU(J) - 110 CONTINUE - 100 CONTINUE -c*** -c -c*** - DO 120 I = 1,NUMFLD - DO 130 J = 1,NUMLVL - IF(ILVLI(I).EQ.J) LVL(I) = MLVL(J) - 130 CONTINUE - 120 CONTINUE -c*** -c -c*** - DO 150 I = 1,NUMFLD - DO 151 J = 1,NUMFLD - IF(IFLDI(I).EQ.J) ITYPE(I) = MTYPE(J) - 151 CONTINUE - 150 CONTINUE -c*** -c READ IN TEMPERATURE FIELD - IF(IEXIT.NE.0) GO TO 350 -c -c PROCESS DATE -c - JTAU(1)=IAND(IDENT(1),MASK8) - IHOUR=IAND(IDENT(7),MASK8) - IDAY=IAND(ISHFT(IDENT(7),-8),MASK8) - IMONTH=IAND(ISHFT(IDENT(7),-16),MASK8) - IYR=ISHFT(IDENT(7),-24)+1900 - WRITE(6,125) JTAU(1),IHOUR,IDAY,IMONTH,IYR - 125 FORMAT(1H0,' TAU INCREMENTS= ',I3,' BASED ON IHOUR= ',I3, - X ' IDAY= ',I3,' IMONTH= ',I3,' IYR= ',I4) -c -c UPDATE -c - WRITE(6,126) IUHR,ITAG,MONAT,JAHR - 126 FORMAT(1H0,' UPDATE-IUHR= ',I3,' ITAG= ',I3, - X ' MONAT= ',I3,' JAHR= ',I4) -c - GO TO 400 -c -c ERROR GETTING TEMPERATURES -c - 350 CONTINUE - WRITE(6,360) IEXIT - 360 FORMAT(1H0,' ERROR GETTING TEMPERATURE-IEXIT= ',I3) - GOTO 670 -c -c START PROCESSING DATA -c - 400 CONTINUE - WRITE(6,410) - 410 FORMAT(1H0,' DATA PROCESSING STARTED') -c -c PLOT TEMPERATURES -c -c*** - CALL DOFRST(LVL(1),IDENT) -c*** - print 1934,'AF DOFRS' - print 1934,(KTITLE(k),k=1,14) -1934 format('KTTL ',14a8) - WRITE(6,420) - 420 FORMAT(1H0,' PLOT OF TEMPERATURE COMPLETED ') -c -c READ IN U FIELD -c - IF(IEXIT.NE.0) GO TO 600 -c -c READ IN V FIELD -c - IF(IEXIT.NE.0) GO TO 650 - GO TO 700 -c -c ERROR GETTING U -c - 600 CONTINUE - WRITE(6,610) IEXIT - 610 FORMAT(1H0,' ERROR GETTING U-IEXIT= ',I3) - GOTO 670 -c -c ERROR GETTING V -c - 650 CONTINUE - WRITE(6,660) IEXIT - 660 FORMAT(1H0,' ERROR GETTING V-IEXIT= ',I3) - 670 CONTINUE - WRITE(6,675) IMP - 675 FORMAT('0SKIP MAP ',I2) -c -c*** - DO 690 IYUK=1,NSLOTS - IF(ISWTCH.EQ.1) GO TO 685 - READ (LU,680) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 680 FORMAT(A1,3(A4,A1),4I5,2A4,A2,4A4,A2,4A4) - GO TO 690 - 685 READ (LU,680) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB - 1 ,IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 690 CONTINUE -c*** - WRITE(IMESS2(25:32),FMT='(2HAP,I4,2H W)')MAPON - GOTO 1306 -c -c PROCESS U,V S -c - 700 CONTINUE - IMAPER=IMAPER+1 - IOPTN=1 -corig PRINT 750 - WRITE(6,750) - 750 FORMAT(1H0,' U AND V PROCESSED ') - INCR1=0 - NNN=0 - JX2=7375 -c -c - - - - - - - - - - -SLOT LOOP- - - - - - - - - - - - - - - - - - -c -c****** - DO 900 ISLT=1,NSLOTS -c*** - CALL SLTCRD(ISWTCH,ISLOTA,ISLOTB,IPANA,IPANB,IRLAB,IREM3A, - 1 IREM3B,IREM3C,IREM4A,IREM4B,IAREA3,ISUB,IFLAB,INSET,IREM1A, - 1 IREM1B) - - IF(ISLT.EQ.1) ISLOT1=ISLOTA - IF(ISLT.EQ.1) ISUB1=ISUB - print 1934,'b avttl' - print 1934,(KTITLE(k),k=1,14) - NCHAR=80 - write(cstrip2(1:5),147)islota,islotb - if(cstrip2(7:9) .eq. 'CUT') then - cstrip2(7:80)=cstrip(7:80) - else - cstrip2(12:80)=cstrip(6:74) - endif - 147 format(a4,a1) - stfont=11.0 - if(iarea(2,iarea3) .lt. 900) stfont=1.0 - print *,'STFONT',iarea3,iarea(2,iarea3),stfont - if(cstrip(1:15) .ne. ' ')then -ckumar - print*,'Before lPUTLAB in main ' -ckumar - CALL lPUTLAB(10,7400+25*(islt-1), - 1 stfont,cstrip2,0.0,NCHAR,kvv,ITAPUT) - if(stfont .eq. 1.0) call duck(600,7395+25*(islt-1),0,7) - if(stfont .eq. 11.0) call duck(1200,7395+25*(islt-1),0,7) -ckumar -c - endif - call duck (1030,30,0,7) - print 1934,' a avt' - print 1934,(KTITLE(k),k=1,14) - print 1934,'DUMMY ' - print 1934,'DUMMY ' -c fILL ISCHED ARRAY WITH INFORMATION FROM IAREA ARRAY -c*** - 895 CALL FAXSHD(IAREA,IA,JA,IAREA3,INCR1,INCR,JLAST,NNN) -c*** -c -c IF(IAREA3.EQ.KVAR)GOTO 900 - write(*,*)'Print the ((isched(8,60),j=1,60),i=1,8)' -c write(*,'(1x,8z16,1x)')((isched(i,j),j=1,60),i=1,8) - INCR1=INCR1+INCR - IF(JX2.EQ.JLAST)GOTO 900 - WRITE(6,897) JX2,JLAST - 897 FORMAT(' JX2=',I5,' JLAST=',I5) - 900 CONTINUE -c -c SETUP FOR 360 TYPEWRITER MESSAGE -c - IVAR=IAND(ISLOT1,IMASK3) - IF(NSLOTS.GT.1) GO TO 135 -c........SO NSLOTS=1, EITHER FAX OR VARIAN - IF(IVAR.NE.MAPT7) JFID(1)=IFFAX - IF(IVAR.EQ.MAPT7) JFID(1)=IVFAX - GO TO 145 - 135 IF(IVAR.NE.MAPT7) GO TO 140 - IF(ISUB1.EQ.99) GO TO 140 -c........TO ARRIVE HERE, IVAR=V AND ISUB1.NE.99, BOTH FAX AND VARIAN - JFID(1)=IDFAX - GO TO 145 - 140 CONTINUE - JFID(1)=IFFAX - GO TO 145 - 145 CONTINUE -c - WRITE(KJFID(5:28),FMT='(I4,1X,I2,2HZ ,I2,1H/,I2,1X,I2, - A2HHR,I4,1HM)') ISUB,IUHR,MONAT,ITAG,JTAU(1),LVL(1) -c - print 10177,(cjfid(k),k=1,56) -10177 format(' CDC DISPLCODE ARG ',56a1) - - call ipak(cifid56,isub) -c - ierr=0 - IF(IERR.EQ.0) GO TO 160 - WRITE(6,155) - 155 FORMAT(1H0,' ERROR FORMAT FROM ASC2ISP ') - 160 CONTINUE - WRITE(6,165) (JFID(I),I=1,14) - 165 FORMAT(1H0,' 360 TYPEWRITER COMMENT= ',14A4) -c -c OUTPUT MAP -c - ICNT=0 - IRTRY=2 - ICK(1)=-1 - ICK(3)=0 - LCKPT=100 - WRITE(6,1210) LCKPT - 1210 FORMAT(1H ,10X,'ARRIVED AT CHECKPOINT=',I4) - NCHAR=8 - ht=11. - call gulftl - call stal -c*** - CALL ZPLOT(0.0,0.0,999) - LABEL(1,1)=-1 - rewind (55) - print 9266,IMAGSIZ_WRDS,(il(kkk),kkk=1,15) - 9266 format(' TEMP SIZE',i30) - print 1939,isched - print 1939 - 1939 format(50(/,'isched ',8(Z16,1x))) - print*,'ifid = ',ifid - print*,'isched = ',isched -c -c*** - nflds =0 -c - call CNTR(ireg_cnt,IMAGE,IMAGSIZ_WRDS, - 1 il,LABEL,ichk,ifid,isched,d11, - 1 nflds, - 1 d12,d13,d14,d15, - 1 d22,d23,d24,d25, - 1 d32,d33,d34,d35, - 1 d42,d43,d44,d45) -c*** - 1201 CONTINUE - IF(ICK(1).EQ.-1) GO TO 1205 - IF(ICK(1).EQ.0) GO TO 1202 - IF(ICK(1).EQ.1) GO TO 706 - STOP 1206 - 1202 IRTRY=IRTRY-1 - IF(IRTRY.EQ.0) GO TO 707 - GO TO 1201 - 1205 CONTINUE - LCKPT=101 - WRITE(6,1210) LCKPT - 1306 CONTINUE - CALL ENDMAP(IFAXOUT,NRECFAX) - CLOSE (IFAXOUT) - LABEL(1,1) = SFL -c COMMENT OUT NU ENDIFL# -c ENDFILE NU -c - CALL GETSXX(999,500,ITYPE,FLD2,IDENT,IEXIT) -c -c INTERFACE LOGIC -c - 706 CONTINUE - WRITE(6,761) - 761 FORMAT(1H0,'BAD BACKGROUND INPUT DISK') - ISTOP = 3050 - GO TO 9999 - 707 CONTINUE - WRITE(6,765) - 765 FORMAT(1H0,'BAD OUTPUT TAPE') - ISTOP = 3060 - GO TO 9999 - 9999 CALL W3TAGE('SIXBITB2') -c - WRITE(6,770) IMAPER,NMAPS - 770 FORMAT(5X,I2,' OF ',I2,' MAPS COMPLETED - THANK YOU') - WRITE(IMESS3(9:20),FMT='(3H** ,I2,4H OF ,I2,1H )')IMAPER,NMAPS - STOP - END diff --git a/util/sorc/sixbitb2.fd/makefile b/util/sorc/sixbitb2.fd/makefile deleted file mode 100755 index 8eb1d68c6c..0000000000 --- a/util/sorc/sixbitb2.fd/makefile +++ /dev/null @@ -1,49 +0,0 @@ -SHELL=/bin/sh -# -SRCS= sta.f ipak.f cntr.fake.f AVTTLS.f \ - BLOCKDATA001.f DOFRST.f FAXSHD.f \ - GETSXX.f GULFTL.f MERCIN.f NPOLUV.f PLTTLL.f \ - PLTWLL.f RNCNTL.f SLTCRD.f WNDIRT.f WNDRNH.f \ - main.f lputlab.f wndbrk.f box.f fonts.f fonts2.f \ - getbgnd.fake.f putlab.f reblkfx4.F - -OBJS= sta.o ipak.o cntr.fake.o AVTTLS.o \ - BLOCKDATA001.o DOFRST.o FAXSHD.o \ - GETSXX.o GULFTL.o MERCIN.o NPOLUV.o PLTTLL.o \ - PLTWLL.o RNCNTL.o SLTCRD.o WNDIRT.o WNDRNH.o \ - main.o lputlab.o wndbrk.o box.o fonts.o fonts2.o \ - getbgnd.fake.o putlab.o reblkfx4.o - -FC = ifort -LDFLAGS = - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -CMD = sixbitb2 -PROFLIB = -lprof - -# -FFLAGS = -g -traceback -C -D_LITTLE_ENDIAN -i8 -r8 -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/sixbitb2.fd/putlab.f b/util/sorc/sixbitb2.fd/putlab.f deleted file mode 100755 index 21004ed211..0000000000 --- a/util/sorc/sixbitb2.fd/putlab.f +++ /dev/null @@ -1,3 +0,0 @@ - subroutine echbar(a) - return - end diff --git a/util/sorc/sixbitb2.fd/reblkfx4.F b/util/sorc/sixbitb2.fd/reblkfx4.F deleted file mode 100755 index 062b639bde..0000000000 --- a/util/sorc/sixbitb2.fd/reblkfx4.F +++ /dev/null @@ -1,1666 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif - SUBROUTINE REBLKFX4(LUNIX6T,LUNIPK6,NUMRECFAX, - 1 IISCHED,C1IFID,MYOPTNBITS,IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REBLKFX4 CONVERT RLE NMC EXT 6-BIT TO PACKED FORM -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-10-26 -C -C ABSTRACT: CONVERT A FILE CONTAINING ONE RUN-LENGTH ENCODED (RLE) -C RASTER PRODUCT IN NMC EXTENDED 6-BIT CODE INTO THE NMC PACKED -C 6-BIT FAX CODE, AND ADD ALL THE HEADERS AND TRAILERS REQUIRED -C IN THE FINAL NMC 6-BIT PACKED FAX PRODUCT FORMAT. -C -C PROGRAM HISTORY LOG: -C 85-12-02 ORIGINAL AUTHOR(S)'S NAME: DAVID SHIMOMURA -C -- TO REBLOCK FAX PRODUCT FROM GIVEN 512-BYTE -C RECORDS INTO 1440-BYTE BLOCKS. -C -C 86-03-06 SHIMOMURA -- MODIFIED TO WRITE COMMENTS TO UNIT=46 -C FOR RUNNING UNDER FXD.COM -C -C 86-03-07 SHIMOMURA -- COPIED FROM VAX VERSION:'REBLKFAX.FOR' -C TO MAKE A VERSION WHICH CALLS faxwrs3 TO INSERT -C DOUBLE-DLE'S AND OTHER RJE COMMS REQUIREMENTS -C FOR MOVING FROM VAX TO IBM MAINFRAME USING RJE LINE, -C AND BYPASS THE INTERMEDIATE FILE OF PURE NMC STD FAX. -C -C 86-04-29 SHIMOMURA -- modified to discard trailing blank lines -C before the end-of-map. -C -C 89-12-26 SHIMOMURA -- COPIED VAX VERSION OF [6,300]REBLKFX.FOR -C TO MAKE A CHECKOUT VERSION, STRIPPING OUT THE RJE -C TRANSMISSION MODS IN AN ATTEMPT TO MAKE PURE NMC -C 6-BIT PACKED 1440 BYTE RECORDS; -C -C 91-08-08 ART WICK - Modified to run on Intergraph Unix workstation. -C -C 93-05-26 SHIMOMURA -- Modified for new af77 compiler, which is a -C change from previous version of Green Hills compiler. -C -C 95-04-25 SHIMOMURA -- THE OPNL INTERGRAPH VERSION IS "REBLKFX2", -C SO I COPIED INTO "REBLKFX3" TO MAKE MODS WITHOUT -C AFFECTING OPNS. THESE MODS ARE FOR GENERATING MAP -C BACKGROUNDS WHICH HAVE DIFFERENCES IN THE "IFID"- -C HEADER. -C -C 96-04-30 SHIMOMURA -- REPROGRAM FROM INTERGRAPH TO CRAY -C 96-05-13 SHIMOMURA -- RENAMED TO REBLKFX4 BECAUSE I AM CHANGING -C THE INPUT RECORD SIZE FROM 512-BYTES TO 1920-BYTES -C 96-11-11 SHIMOMURA -- CORRECTING FOR ISCHED OF MULTI-PANELS -C -C 1999-07-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C 1999-07-20 HENRICHSEN MODIFY TO USE DIRECT ACCESS I/O ON FAX OUTPUT -C FILE FOR RUNNINGON THE IBM SP. -C 1999-10-26 KRISHNA KUMAR COMMENTED A STATEMENT (NBLOCKOUT=NBLOCKOUT+1) -C WHICH WAS INCREMENTED TWICE (TYPO ERROR) WHICH CAUSED HAVOC ON -C MANY FAX GRAPHICS PROGRAMS WITH SUBTITLES & SUBSETS -C -C USAGE: CALL REBLKFX4(LUNIX6T, LUNIPK6,NUMRECFAX, -C 1 IISCHED,C1IFID,MYOPTNBITS,IERR) -C -C INPUT ARGUMENT LIST: -C NUMRECFAX RECORD NUMBER IN OUTPUT FAX FILE TO BEGIN WRITTING. -C I*8 IISCHED(8,60) - CNTR,S FAX SCHED CONTROLS; -C C*1 C1IFID(48) - CNTR,S FAX HEADER ID; -C I*8 MYOPTNBITS - FOR OPTIONS -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C I*8 IERR - RETURN CODE -C = 0; NORMAL RETURN -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C I*8 LUNIX6T - DSRN OF INPUT FILE CONTAINING ONE PRODUCT -C IN NMC EXTENDED 6BIT CODE; -C -C OUTPUT FILES: -C I*8 LUNIPK6 - DSRN OF OUTPUT FILE IN NMC 6BIT PACKED RLE; -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C CALLS piksor() TO SORT ISCHED ITEMS -C CALLS PAK8TO6() TO CONCATENATE 6-BIT CODE. -C CALLS PADIFID() TO PAD THE IFID. -C calls sbytesccs() to quarter pack the iisched data -C -C ATTRIBUTES: -C LANGUAGE: IBM FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C 22-MAY-1996/DSS -C ... -C -C . . . . . . D E F I N E C O N S T A N T S . . . . . . . . . - INTEGER NBYTPWRD - PARAMETER (NBYTPWRD=8) !... CRAY 8-BYTE INT -C ... PARAMETER (NBYTPWRD=4) !... INTERGRAPH I*4 WRD - - INTEGER INRECL !... INPUT RECL IN BYTES - PARAMETER (INRECL=1920) - - INTEGER INRECLINT !... 64 I*8 WRDS =1920/8 - PARAMETER (INRECLINT=INRECL/NBYTPWRD) - - INTEGER INRECLINT2 !...128 I*8 WRDS =2*64 - PARAMETER (INRECLINT2=2*INRECLINT) - - INTEGER INRECLINTP1 !... 65 I*8 WRDS =1+64 - PARAMETER (INRECLINTP1=1+INRECLINT) - - - INTEGER NMCSTDRECL !... = 1440 BYTES - PARAMETER (NMCSTDRECL=1440) - - INTEGER MAXEXTBYT - PARAMETER (MAXEXTBYT=1920) -C ... WHERE 1920 BYTES IS CAPACITY OF C1SPRED ARRAY -C ... WHICH IS EQUIV TO 1440-BYTES IN COMPRESSED 6-BITS, BUT -C ... EXTENDED TO 8-BITS PER 6-BIT ITEM. - - INTEGER MAXEXTINT !...240 I*8 WRDS =1920/8 - PARAMETER (MAXEXTINT=MAXEXTBYT/NBYTPWRD) -C -C - INTEGER MXSCHED - PARAMETER (MXSCHED=60) -C ... MAX NO. OF SUBSETS/INSETS DEFINED IN GIVEN IISCHED ARRAY. -C ... BEDIENT USES 59 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /XSCHEDS/NTOTSCHED,NSCHED_CUT,NSCHED_TITL,JOFSCH, - 1 NUMPANEL,JSCHED2D,JLINSRTED - INTEGER NTOTSCHED - INTEGER NSCHED_CUT - INTEGER NSCHED_TITL - INTEGER JOFSCH - INTEGER NUMPANEL - INTEGER JSCHED2D(8,MXSCHED) - INTEGER JLINSRTED(2,MXSCHED) - -C ... SUBSET DEFS IN JSCHED2D WHOSE POINTERS REMAIN TO -C ... BE DEFINED = F(STARTING SCAN LINE) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C CALL SEQUENCE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C - INTEGER LUNIX6T !...Arg1: dsrn of input.x6t -C -C ... WHERE LUNIX6T IS DSRN OF LOGICAL UNIT WHERE INPUT FILE -C ... OF FAX.X6T RASTER DATA FORMATTED 6-BIT CODE IN 8-BIT -C ... BYTE IS TO BE READ IN FROM -C - INTEGER LUNIPK6 !...Arg2: dsrn of output.pk6 -C ... WHERE LUNIPK6 IS DSRN OF LOGICAL UNIT WHERE NMCSTDRECL-BYTE -C ... BLOCKED RECORD WILL BE OUTPUT. -C - INTEGER IISCHED(8,MXSCHED) !...Arg3: isched() -C ... WHERE IISCHED IS ACCEPTED AS ARG IN CALL SEQ -C ... AND IS IN THE SAME FORMAT AS IN CALL TO CNTR -C - CHARACTER*1 C1IFID(48) !...Arg4: IFID(48BYTES) -C - INTEGER MYOPTNBITS !...Arg5: option controls -C ... WHERE MYOPTNBITS ARE MY OWN OPTION BITS; -C ... DO NOT CONFUSE THESE WITH THE MAP(2) OPTION BITS -C - INTEGER IERR !...ARG6 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C - integer nsizdes - data nsizdes / 180 / !... 1440/8bytperword= 180 wrds - integer JSCHEDS(180) !... 1440/8bytesperword=180 wrds - CHARACTER*1 C1JSCHED(1440) - EQUIVALENCE (C1JSCHED(1),JSCHEDS(1)) - - integer noffset - integer nbitpgrp - integer nbitskip - integer ngrps2do - -C -C ... ... i was thinking to explicitly save what I need to -C ... ... preserve from one panel to next panel; -C ... ... but I cannot equivalence arrays in common - INTEGER INTSPRED(MAXEXTINT) - CHARACTER*1 C1SPRED(MAXEXTBYT) !... (1920) - EQUIVALENCE (INTSPRED(1),C1SPRED(1)) -C ... WHERE C1SPRED IS BIG ENOUGH FOR ONE OUTPUT FAX -C ... RECORD SPREAD OUT 6 BITS DATA PER 8-BIT BYTE. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - INTEGER JOUTBF(180) !... I*4 WAS (360) - CHARACTER*1 C1OUTBF(NMCSTDRECL) - EQUIVALENCE (C1OUTBF(1),JOUTBF(1)) -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . Input is 1920-byte rec of .X6T data . . . . . . . - -C - INTEGER inbufA(INRECLINT) -C -C - CHARACTER*1 CINBUF(INRECL) - EQUIVALENCE (inbufA(1),CINBUF(1)) -C - INTEGER KHEADER(8) !... 8*8 = 64 -C ... WHERE REBLKFX4 WILL COPY padded IFID HEADER INTO FROM INPUT -C - CHARACTER*1 LHEADER(64) - EQUIVALENCE (KHEADER(1),LHEADER(1)) -C -C - - INTEGER IACC - integer iword1 - - INTEGER MSKLHS - DATA MSKLHS / X'FFFFFFFF00000000' / - INTEGER MSKRHS - DATA MSKRHS / X'00000000FFFFFFFF' / - - INTEGER MSKHI3BYT - DATA MSKHI3BYT / X'FFFFFF0000000000' / - INTEGER MAPSTARTFLAG - DATA MAPSTARTFLAG / X'FFFFFF0000000000' / -C -C . . . . . . . . . . . . logical switches . . . . . . . . . -C . . . . . . . . . . . . derived from MYOPTNBITS . . . . . . . - - LOGICAL LENTIREQQ !... ALL-IN-1 OR IN PANELS - LOGICAL LADD_ONQQ !... AT ENTRY TO ADD-ONTO EXISTG - LOGICAL LEAVE_OPENQQ !... AT EXIT TO LEAVE PROD OPEN - LOGICAL LSKIPFFQQ !... AT ENTRY NOT TEST FOR FF's - LOGICAL LRASAT65QQ !... RASTER STARTS @(65) OR (49) - LOGICAL LID_CALSQQ - LOGICAL LID_PADDQQ - LOGICAL LIDIN_CDCQQ - LOGICAL LIDIN_EBCQQ - LOGICAL LIDIN_ASCQQ - LOGICAL LIDOUT_CDCQQ - LOGICAL LIDOUT_EBCQQ - LOGICAL LIDOUT_ASCQQ - logical LSCHED_EXTDQQ - -C . . . . . . . . . . . . logical switches . . . . . . . . . -C - LOGICAL LSTARTING_PROD -C -C - LOGICAL LSTRIPTITLQQ - LOGICAL LEOMAP - LOGICAL LEOFIL - LOGICAL LINEMT - LOGICAL MANYBLA -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - CHARACTER*1 CONEBYT - - CHARACTER*1 NULL -C - CHARACTER*1 KENDMAP -C ... DATA KENDMAP / '33'X / - CHARACTER*1 KENDLIN -C ... DATA KENDLIN / '30'X / -C -C ... FOR COMPARING INPUT RECORD-HEADERS IN EXTENDED 6-BIT FRMT: - integer KSTART_IFID - data KSTART_IFID / X'3F3F3F3F00000000' / -C ... WHICH IS START OF MAP W/ IFID BLOCK HEADER - integer KSTART_TITL - data KSTART_TITL / X'3F3F3F3E00000000' / -C ... WHICH IS START STRIP-TITLES BLOCK HEADER - integer KSTART_SCHED - data KSTART_SCHED / X'3F3F3F3D00000000' / -C ... WHICH IS THE START ISCHEDS BLOCK HEADER - integer KEND_ALLMAPS - data KEND_ALLMAPS / X'3F3F3F3C00000000' / -C ... WHICH IS THE END-OF-ALL-MAPS BLOCK HEADER - - INTEGER KENDALLPKD - DATA KENDALLPKD / X'FFFFFC0000000000' / -C - integer K2MANY - DATA K2MANY / 50 / -C ... where K2MANY is limiting no. of blank scan lines to -C ... permit at end of map before holding up and looking -C ... ahead to see if it is indeed the end. -C - INTEGER ISPR -C ... WHERE ISPR COUNTS BYTES PUT INTO C1SPRED - INTEGER ISPSAV - INTEGER NRECIN -C ... WHERE NRECIN COUNTS THE 1920-BYTE PHYSICAL RECORDS INPUT - INTEGER NSCANLN - INTEGER NBLOCKOUT -C ... WHERE NBLOCKOUT COUNTS BLOCKS THIS SUBROUTINE HAS -C ... FILLED UP - LOGICAL LSTARTEDQQ !... HAS OUTPUT MAP STARTED ?? -C ... FOR START OF MAP FOUND FLAG - INTEGER NBLSAV -C - CHARACTER*1 C1IFIDCDC(48) - - - SAVE -C -C * * * * * * * * * * -C -C . . . S T A R T . . . -C ... INITIALIZATION ... - IERR = 0 -C ... DEFINE BYTE CONSTANTS ... - - NULL = CHAR(0) - - KENDMAP = CHAR(51) !... = X'33' = END-OF-MAP - KENDLIN = CHAR(48) !... = X'30' = END-OF-A-LINE - - write(6,105)MYOPTNBITS - 105 format(1h ,'REBLKFX4: started version dated 20-Jul-1999;', - 1 ' MYOPTNBITS=hex ',Z16,/) - - IF((LUNIX6T .LE. 0) .OR. - 1 (LUNIX6T .GT. 99)) THEN - WRITE(6,115)LUNIX6T - 115 FORMAT(1H ,'REBLKFX4:FAILED ON BAD-VALUED INPUT DSRN ', - 1 'LUNIX6T =',I7) - IERR = 1 - GO TO 999 - ENDIF - - IF((LUNIPK6 .LE. 0) .OR. - 1 (LUNIPK6 .GT. 99)) THEN - WRITE(6,117)LUNIPK6 - 117 FORMAT(1H ,'REBLKFX4:FAILED ON BAD-VALUED OUTPUT DSRN ', - 1 'LUNIPK6 =',I7) - IERR = 2 - GO TO 999 - ENDIF - - REWIND LUNIX6T - -C ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... - - IF(BTEST(MYOPTNBITS,0)) THEN -C ... THERE IS A BIT AT THE (0) POSITION ... - LENTIREQQ = .FALSE. !... SO MUST DO SEVERAL PANELS - IF(BTEST(MYOPTNBITS,1)) THEN -C ... THERE IS A BIT AT THE (1) POSITION ... - LADD_ONQQ = .TRUE. !... ADD-ONTO EXISTING PRODUCT - ELSE -C ... THERE IS A ZERO AT THE (1) POSITION ... - LADD_ONQQ = .FALSE. !... SO INITIALIZE FOR NEW PROD - ENDIF - IF(BTEST(MYOPTNBITS,2)) THEN -C ... THERE IS A BIT AT THE (2) POSITION ... - LEAVE_OPENQQ = .TRUE. !... AT END LEAVE WITH PROD OPEN - ELSE -C ... THERE IS A ZERO AT THE (2) POSITION ... - LEAVE_OPENQQ = .FALSE. !... CLOSE AT END OF THIS PANEL - ENDIF - ELSE -C ... THERE IS A ZERO AT THE (0) POSITION ... - LENTIREQQ = .TRUE. !... COMPLETE ENTITY IN ONE - LADD_ONQQ = .FALSE. !... SO INITIALIZE AT START - LEAVE_OPENQQ = .FALSE. !... AND CLOSE AT END - ENDIF - - IF(BTEST(MYOPTNBITS,3)) THEN -C ... THERE IS A BIT AT THE (3) POSITION ... - LSKIPFFQQ = .FALSE. !... BIT3=1; TEST FOR FFFFFF - ELSE - LSKIPFFQQ = .TRUE. !... BIT3=0; DO NOT TEST FF - ENDIF - - IF(BTEST(MYOPTNBITS,4)) THEN -C ... THERE IS A BIT AT THE (4) POSITION ... - LRASAT65QQ = .FALSE. !...BIT4=1; RASTER STARTS @(49) - ELSE - LRASAT65QQ = .TRUE. !...BIT4=0; RASTER STARTS @(65) - ENDIF - - IF(BTEST(MYOPTNBITS,5)) THEN -C ... THERE IS A BIT AT THE (5) POSITION ... - LID_CALSQQ = .FALSE. !...BIT5=1; FETCH IFID FROM RECORD(1) - ELSE - LID_CALSQQ = .TRUE. !...BIT5=0; FETCH IFID FROM CALL SEQ - ENDIF - - IF(BTEST(MYOPTNBITS,6)) THEN -C ... THERE IS A BIT AT THE (6) POSITION ... - LID_PADDQQ = .FALSE. !...BIT6=1; IFID IS NOT PADDED - ELSE - LID_PADDQQ = .TRUE. !...BIT6=0; IFID IS PADDED - ENDIF - - - LIDIN_CDCQQ = .FALSE. - LIDIN_EBCQQ = .FALSE. - LIDIN_ASCQQ = .FALSE. - IF(BTEST(MYOPTNBITS,7)) THEN -C ... THERE IS A BIT AT THE (7) POSITION ... - LIDIN_CDCQQ = .FALSE. !...BIT7=1; INPUT IFID IS .NOT. CDC - IF(BTEST(MYOPTNBITS,8)) THEN -C ... THERE IS A BIT AT THE (8) POSITION & 1 AT (7) - LIDIN_EBCQQ = .TRUE. !...BIT8=1; INPUT IFID IS EBCDIC - ELSE -C ... THERE IS A ZERO AT THE (8) POSITION & 1 AT (7) - LIDIN_ASCQQ = .TRUE. - ENDIF - - ELSE -C ... THERE IS A ZERO AT THE (7) POSITION ... - LIDIN_CDCQQ = .TRUE. !...BIT7=0; INPUT IFID IS CDC DISP CODE - ENDIF - - - LIDOUT_CDCQQ = .FALSE. - LIDOUT_EBCQQ = .FALSE. - LIDOUT_ASCQQ = .FALSE. - IF(BTEST(MYOPTNBITS,9)) THEN -C ... THERE IS A BIT AT THE (9) POSITION ... - LIDOUT_CDCQQ = .FALSE. !...BIT9=1; OUTPUT IFID IS .NOT. CDC - IF(BTEST(MYOPTNBITS,10)) THEN -C ... THERE IS A BIT AT THE (10) POSITION & 1 AT (9) - LIDOUT_EBCQQ = .TRUE. !...BIT10=1; OUTPUT IFID IS EBCDIC - ELSE -C ... THERE IS A ZERO AT THE (10) POSITION & 1 AT (9) - LIDOUT_ASCQQ = .TRUE. - ENDIF - - ELSE -C ... THERE IS A ZERO AT THE (9) POSITION ... - LIDOUT_CDCQQ = .TRUE. !...BIT9=0; OUTPUT IFID IS CDC DISP - ENDIF - - - IF(BTEST(MYOPTNBITS,16)) THEN -C ... THERE IS A BIT AT THE (16) POSITION ... - LSCHED_EXTDQQ = .FALSE. !...BIT16=1; isched data is -C packed concatenated I*2 - ELSE - LSCHED_EXTDQQ = .TRUE. !...BIT17=0; isched data is -C I*2 extended into I*8 word - ENDIF - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... watch out for multi-panel calls in which I must add onto -C ... existing partial product instead of initializing ... - LEOMAP = .FALSE. - LEOFIL = .FALSE. - LSTARTEDQQ = .FALSE. -C ... FOR START OF MAP FOUND FLAG - LSTRIPTITLQQ = .FALSE. -C ... WHEN IN THE INNER LOOP PROCESSING EACH BYTE OF THE 6-BIT -C ... RLE ENCODED RASTER GRAPHCS, WHEN IN THE MAIN BODY OF -C ... THE MAP, LSTRIPTITLQQ == .F.; OTHERWISE, WHEN -C ... PROCESSING THE STRIP-TITLES, THEN LSTRIPTITLQQ == .T. - NRECIN = 0 -C ... WHERE NRECIN COUNTS THE 1920-BYTE PHYSICAL RECORDS INPUT - LSTARTING_PROD = .FALSE. - IF(.NOT. LADD_ONQQ) THEN !... initialize -C ... THIS IS EITHER AN ENTIRE PRODUCT IN ONE; OR -C ... THIS IS THE STARTING PANEL OF A MULTI-PANEL PRODUCT - LSTARTING_PROD = .TRUE. - NBLOCKOUT = 0 -C ... WHERE NBLOCKOUT COUNTS BLOCKS THIS SUBROUTINE HAS -C ... FILLED UP - NSCANLN = 0 -C - ISPR = 0 -C ... WHERE ISPR COUNTS BYTES PUT INTO C1SPRED - - JOFSCH = 2 -C ... WHERE POINTER INITIALIZED TO FIRST SCHED DATA IN JSCHED2D -C ... IS NOT =1 SINCE THAT'S WHERE THE FFFFFD WORD IS. - - NUMPANEL = 0 - - ELSE -C ... THIS IS AN ADD-ON PANEL OF A MULTI-PANEL PRODUCT ... - NUMPANEL = NUMPANEL + 1 - WRITE(6,FMT='(1H ,''reblkfx4: INITIALIZING FOR SECONDARY '', - 1 ''PANEL-'',I2,'' OF A MULTI-PANEL PRODUCT'', - 2 /1H ,7X,''TRANSLATED-SCHED-COUNTER, JOFSCH='',I8)') - A NUMPANEL,JOFSCH - ENDIF -C -C =============================================================== - IF(LSTARTING_PROD) THEN -C ... the ISCHED sorting and moving went into subr makfffd() - - call makfffd(iisched,LSCHED_EXTDQQ) - - ENDIF - -C =============================================================== -C -C - 200 CONTINUE - LCKPT = 200 - NRECIN = NRECIN + 1 - i = 1 - do i = 1,INRECLINT - inbufA(i) = 0 - enddo -C -C ... here comes first read of extended 6-bit file; -C ... expecting the start-of-map with IFIds ... - - READ(LUNIX6T,IOSTAT=IOERR,ERR=9405,END=900) inbufA -c write (*,*) 'test2', inbufA(1), NRECIN -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - - NRECIN = NRECIN + 1 - go to 9407 -C - 9405 continue - write (6,9406) ioerr,NRECIN - 9406 format(1h ,'REBLKFX4: reading LUNIX6T got IOSTAT error = ', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - 9407 continue -C -C -C ... WRITE(6,205) (inbufA(I),I=1,INRECLINT) - 205 FORMAT(1H ,8Z9.8) -C - IF(.NOT. LSKIPFFQQ) THEN -C ... SO TEST FOR START-OF-MAP FLAGS HERE ... -C ... THE FIRST RECORD MUST START WITH X'3F3F3F3F....' - iword1 = IAND(inbufA(1),MSKLHS) - - IF(iword1 .NE. KSTART_IFID) THEN -C ... ERROR: THIS FILE IS UNUSUAL. FIRST RECORD IS NOT MARKED -C ... WITH THE START-OF-MAP FLAG ... - GO TO 970 - ENDIF - ENDIF -C -C ... COMES HERE AFTER READING THE FIRST RECORD OF PASS(I) ... -C ... AND IF FIRST REC READ HAD STARTOFMAP FLAGS ... -C ... OR ELSE, IF TOLD TO SKIP THE LOOKING FOR STARTOFMAP FLAGS -C ... AND ASSUME THIS IS THE FIRST RECORD OF PASS(I) - IFR = 0 - LCKPT = 222 - - IF(LSTARTING_PROD) THEN - - DO I = 1,MAXEXTINT - INTSPRED(I) = 0 - ENDDO - ISPR = 64 !... TO ALLOW SPACE FOR IFID - - IF(.NOT. LID_CALSQQ) THEN -C ... TRY FOR IFID FROM RECORD 1 ... BUT ONLY IF STARTING PASS - IF(LID_PADDQQ) THEN -C ... EXTRACT THE 64-BYTE BYTE PADDED IFID HEADER ... - DO IK = 1,8 - KHEADER(IK) = inbufA(IK) - ENDDO -C - WRITE(6,225) (KHEADER(I),I=1,8) - 225 FORMAT(1H ,'KHEADER (padded) FROM INPUT FILE=', - 1 /1H , 6X,4Z17.16, - 2 /1H , 6X,4Z17.16 ) -C - ELSE -C ... IFID FROM RECORD 1 IS NOT PADDED ... -C ... EXTRACT THE 48-BYTE BYTE PADDED IFID HEADER ... - DO IK = 1,6 - KHEADER(IK) = inbufA(IK) - ENDDO -C - WRITE(6,2252) (KHEADER(I),I=1,6) - 2252 FORMAT(1H ,'KHEADER (NOT-padded) FROM INPUT FILE=', - 1 /1H , 6X,4Z17.16, - 2 /1H , 6X,2Z17.16 ) -C ... THEN I MUST PAD THIS 48-BYTE IFID ... -C ... CALL MAKIFID(C1IFID) ... removed - - ENDIF -C - ELSE -C ... COMES HERE IF I SHOULD OBTAIN IFID FROM CALL SEQ ARG -C ... is the given ifid in CDC display code???? - IF(LIDIN_ASCQQ) THEN -C ... TO CONVERT GIVEN IFID FROM ASCII TO CDC DISPLAY CODE, - NCHIFID = 48 - CALL ASC2CDC(NCHIFID,C1IFID,C1IFIDCDC,IRET_A2C) - - CALL PADIFID(C1IFIDCDC,LHEADER) - ELSE - - CALL PADIFID(C1IFID,LHEADER) - ENDIF -C - ENDIF -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (KHEADER, 8_8, 8_8) -#endif - KHEADER(1) = IAND(KHEADER(1),MSKRHS) - KHEADER(1) = IOR(KHEADER(1),KSTART_IFID) - DO I = 1,8 - INTSPRED(I) = KHEADER(I) - ENDDO - write(6,228)(INTSPRED(L),L=1,8) !... 8*8=64 - 228 format(1h ,'REBLKFX4: IFID in extended form in C1SPRED=', - 1 /1H , 6X,4Z17.16, - 2 /1H , 6X,4Z17.16 ) -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (INTSPRED, 8_8, 8_8) -#endif -C - ENDIF - - LINEMT = .TRUE. - MANYBLA = .FALSE. - NROWBLA = 0 - NRUNBLA = 0 -C - IF(LRASAT65QQ) THEN - IFR = 64 !... used to be 48 - ELSE - IFR = 48 - ENDIF - -C ... Since John Simmons' data has some leading blank -C ... scanlines before the Fax map, skip those before -C ... doing anything else. - NBEFORE = 0 - 230 CONTINUE -C ... we already have data in the work buffer CINBUF - LCKPT = 230 - - M1 = IFR + 1 - DO 244 ICC = M1,INRECL - CONEBYT = CINBUF(ICC) - IF(CONEBYT .EQ. KENDLIN) THEN - NBEFORE = NBEFORE + 1 - GO TO 244 - ENDIF - IF(CONEBYT .EQ. KENDMAP) GO TO 930 -C ... which was empty map ... -C ... OTHERWISE, HERE AT (ICC) IS VERY FIRST NON-BLANK -C ... SCANLINE ... - IFR = ICC - 1 -C ... but, can I have one starting EOLN??? - IF(NBEFORE .GT. 0) THEN - NBEFORE = NBEFORE - 1 - IFR = IFR - 1 - ENDIF - WRITE(6,241) NBEFORE - 241 FORMAT(1H ,'REBLKFX4:DISCARDED LEADING BLANK SCANS N=',I5) - GO TO 310 -C ... WHICH IS NORMAL WAY OUT OF THIS DISCARDING LOOP - 244 CONTINUE -C ... ENTIRE BUFFER WAS BLANK SCANLINES ... - do i = 1,INRECLINT - inbufA(i) = 0 - enddo -C - READ(LUNIX6T,IOSTAT=IOERR,ERR=246,END=940) inbufA -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - go to 248 -C - 246 continue - write (6,247) ioerr,NRECIN - 247 format(1h ,'REBLKFX4: at 246 read LUNIX6T got IOSTAT error= ', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - - 248 continue - - NRECIN = NRECIN + 1 - - IFR = 0 - GO TO 230 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . outermost DO on reading input record at a time . . . -C . . . . where input record is 1920-byte .X6T data -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 300 CONTINUE - LCKPT = 300 -C - 310 CONTINUE -C ... PROCESS JOHN SIMMONS' DATA HERE -C ... LOOK FOR END-OF-SCANLINE FOR RESETING IISCHED VRBLS -C ... LOOK FOR END-OF-MAP -C ... MOVE BYTES FROM CINBUF INTO C1SPRED - NBLSAV = NBLOCKOUT - ISPSAV = ISPR + 1 -C ... TO SAVE BYTE- AND BLOCK- POINTER TO START OF THE -C ... SCAN LINE TO COME. -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . Mid-level DO to move each byte, one byte at a time, -C . . . . from input buffer, CINBUF, to work buffer, C1SPRED; -C . . . . examining each byte for special flags -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - M1 = IFR + 1 - DO 377 IC = M1,INRECL - CONEBYT = CINBUF(IC) - IF(MANYBLA) GO TO 340 - IF(CONEBYT .EQ. KENDLIN) THEN - GO TO 315 - ELSE IF(CONEBYT .EQ. KENDMAP) THEN - LEOMAP = .TRUE. - GO TO 477 - ENDIF - LINEMT = .FALSE. - GO TO 320 -C - 315 CONTINUE -C ... COMES HERE ON END_OF_SCANLINE ... -C ... HERE TEST FOR SUCCESSIVE BLANK SCANLINES WAS ADDED - IF(LINEMT) THEN - NRUNBLA = NRUNBLA + 1 - IF(NRUNBLA .LE. K2MANY) GO TO 317 -C ... OTHERWISE, THIS RUN OF BLANKS EXCEEDS K2MANY LINES -C ... SO I WILL NOT OUTPUT ANY MORE UNTIL IT VERIFIES -C ... AS THE END OF MAP OR NOT - MANYBLA = .TRUE. - NROWBLA = 1 - GO TO 377 !... jump to end of DO; to get next byte - - ELSE -C ... THIS END-OF-LINE FOR A NON-BLANK SCANLINE - NRUNBLA = 0 - LINEMT = .TRUE. - ENDIF -C - 317 CONTINUE -C - IF(LSTRIPTITLQQ) THEN - IF((JOFSCH-1) .GT. NTOTSCHED) THEN - GO TO 319 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - ELSE -C ... .NOT. STRIP-TITLE, SO WITHIN MAIN PART OF MAP ... - IF((JOFSCH-1) .GT. NSCHED_CUT) THEN - GO TO 319 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - - ENDIF - - 319 CONTINUE -C - NSCANLN = NSCANLN + 1 - 320 CONTINUE -C ... COMES HERE TO STASH ONE BYTE INTO C1SPRED - IF((ISPR+1) .GT. MAXEXTBYT) THEN - LCKPT = 322 - -c write (*,*) 'test4' -c write (*,*) INTSPRED(1), NUMRECFAX, NBLOCKOUT - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 - - ENDIF -C - ISPR = ISPR + 1 - C1SPRED(ISPR) = CONEBYT -c if ( (NUMRECFAX. gt. 584) .and. (NUMRECFAX. lt. 587)) then -c write (*,*) 'test8', ISPR, CONEBYT -c end if - GO TO 377 -C - 340 CONTINUE -C ... COMES HERE IF MANYBLA IS .TRUE. MEANING WE HAVE -C ... HIT A BATCH OF BLANK SCAN LINES, WHICH MIGHT BE -C ... CLOSE TO THE END OF MAP. - IF(CONEBYT .EQ. KENDLIN) THEN - NROWBLA = NROWBLA + 1 - GO TO 377 - ENDIF -C - IF(CONEBYT .EQ. KENDMAP) GO TO 477 -C ... OTHERWISE, SHUCKS! IS NON-BLANK LINE AFTER SO MANY -C ... BLANKS. I WILL HAVE TO OUTPUT THOSE BLANKS WHICH I -C ... WAS MERELY COUNTING WITHOUT WRITING. - DO 366 IBL = 1,NROWBLA - IF(LSTRIPTITLQQ) THEN - IF((JOFSCH-1) .GT. NTOTSCHED) THEN - GO TO 344 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - ELSE -C ... .NOT. STRIP-TITLE, SO WITHIN MAIN PART OF MAP ... - IF((JOFSCH-1) .GT. NSCHED_CUT) THEN - GO TO 344 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - - ENDIF - - - 344 CONTINUE -C - NSCANLN = NSCANLN + 1 - IF((ISPR+1) .GT. MAXEXTBYT) THEN - LCKPT = 347 -c write (*,*) 'test41' -c write (*,*) INTSPRED(1), NUMRECFAX, NBLOCKOUT - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 - - ENDIF - ISPR = ISPR + 1 - C1SPRED(ISPR) = KENDLIN - 366 continue -C ... which is ENDDO on IBL on blank rows ... . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - MANYBLA = .FALSE. -C ... THEN RETURN TO NORMAL COURSE TO TRANSFER THE -C ... CURRENT NON-BLANK CONEBYT INTO C1SPRED - GO TO 320 -C - 377 CONTINUE -C . . . . enddo on ic byte at a time thru one input record . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ... WHEN IT FALLS OUT OF BOTTOM OF DO LOOP, -C ... I HAVE EXHAUSTED 1920-BYTE GIVEN-DATA ARRAY - IF(LEOFIL) GO TO 477 -C -C ... WHEN CINBUF EMPTIES, -C ... AND IF NOT E-O-F YET, THEN -C ... FETCH ANOTHER INPUT RECORD -C ------------------------------------------------ -C - READ(LUNIX6T,IOSTAT=IOERR,ERR=380,END=384) inbufA -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - -C ... ON GOOD RECORD READ, - NRECIN = NRECIN + 1 -C ... REINITIALIZE POINTERS FOR FRESH INPUT - IFR = 0 - GO TO 300 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... OTHERWISE, BAD READ, SO ... - 380 continue -C ... COMES TO 380 ON PARITY ERR ON READ JUST ABOVE ... - write (6,382) ioerr,NRECIN - 382 format(1h ,'REBLKFX4: AT 382 read LUNIX6T got IOSTAT error=', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - - 384 continue -C ... COMES TO 384 ON E-O-F ON READ JUST ABOVE ... - write (6,386) NRECIN - 386 format(1h ,'REBLKFX4: AT 386 read LUNIX6T, hit EOF ', - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - LEOFIL = .TRUE. - GO TO 477 -C -C - 477 CONTINUE -C ... COMES HERE OUT OF LOOP FOR NORMAL END OF PRODUCT -C ... WATCH OUT FOR ENDOFMAP-BYTE RECORD FOLLOWED BY STRIP TITLES; -C ... MUST DIFFERENTIATE BETWEEN ENDOFMAP AND ENDOFFILE - LEOMAP = .TRUE. - IF((ISPR+1) .GT. MAXEXTBYT) THEN - LCKPT = 478 -c write (*,*) 'test42' -c write (*,*) INTSPRED(1), NUMRECFAX, NBLOCKOUT - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 - - ENDIF -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IF(LEAVE_OPENQQ) THEN - WRITE(6,478)NBLOCKOUT,ISPR,NSCANLN - 478 FORMAT(1H ,'REBLKFX4: NOT-FINAL PANEL COMPLETED WITH ', - 1 'NBLOCKOUT=',I5,'; ISPR=',I6, - 2 /1H ,' NSCANLN=',I6, - 3 '; LEAVING WITH INCOMPLETE PRODUCT') - GO TO 999 !... JUMP TO EXIT . . . . . . . - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ISPR = ISPR + 1 - C1SPRED(ISPR) = KENDMAP -C -C ... OUTPUT THIS PARTIALLY FULL LAST DATA RECORD -C - LCKPT = 488 -C -c write (*,*) 'test43' -c write (*,*) INTSPRED(1), NUMRECFAX, NBLOCKOUT - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 -C - WRITE(6,479) NRECIN,NSCANLN,NBLOCKOUT - 479 FORMAT(1H ,'REBLKFX4:NORMAL ENDING OF FAX PRODUCT', - 1 /1H ,'WAS FOUND IN LRECORD NO.',I4, - 2 /1H ,'AT END TOTAL SCAN_LINES=',I6,' NBLOCKOUTS=',I4) -C - IF(MANYBLA) THEN - WRITE(6,485) NROWBLA - 485 FORMAT(1H ,'REBLKFX4:DISCARDED TRAILING BLANK SCANS N=',I6) - ENDIF - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... must process the strip titles, just like preceding graphic -C ... data, before going on to FFFFFD-headed record - IF(.NOT. LSTRIPTITLQQ) THEN - - IF(LEOFIL) GO TO 490 -C -C ... AND IF NOT E-O-F YET, THEN -C ... FETCH ANOTHER INPUT RECORD -C ... EXPECT THE STRIP TITLES HERE -C ... BUT ONLY IF THIS IS AN ENTIRE PRODUCT FILE -C ... OF IF THIS IS THE LAST PANEL OF A MULTI-PANEL PROD -C - IF(.NOT. LEAVE_OPENQQ) THEN - READ(LUNIX6T,IOSTAT=IOERR,ERR=4852,END=4855) inbufA -c write (*, *) 'test3', inbufA(1), INRECLINT -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - GO TO 488 !... was good read ... - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... OTHERWISE, BAD READ, SO ... - 4852 continue -C ... COMES TO 4852 ON PARITY ERR ON READ JUST ABOVE ... - write (6,4854) ioerr,NRECIN - 4854 format(1h ,'REBLKFX4: AT 4854 read LUNIX6T got IOSTAT error=', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - - 4855 continue -C ... COMES TO 4855 ON E-O-F ON READ JUST ABOVE ... - write (6,486) NRECIN - 486 format(1h ,'REBLKFX4: AT 486 read LUNIX6T, hit EOF ', - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - LEOFIL = .TRUE. - GO TO 490 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 488 CONTINUE -C ... ON GOOD RECORD READ, - NRECIN = NRECIN + 1 -C ... IS IT THE STRIP-TITLES WHICH I AM EXPECTING??? - CALL SWAP_BYTES_IN_PLACE (inbufA(1), 8_8, 1) - IWORD1 = IAND(inbufA(1),MSKLHS) - CALL SWAP_BYTES_IN_PLACE (inbufA(1), 8_8, 1) -c write (*, *) inbufA(1),MSKLHS -c write (*, *) 'test2', NRECIN, IWORD1, KSTART_TITL - IF(IWORD1 .EQ. KSTART_TITL) THEN -C ... YES! HERE IS THE START OF THE STRIP TITLES ... - LSTRIPTITLQQ = .TRUE. - NSCANLN = 7400 !... SO THAT CURRENT LN WILL MATCH SCHED -C ... REINITIALIZE POINTERS FOR FRESH INPUT TITLES - IFR = 4 !... ptr to source - DO I = 1,MAXEXTINT - INTSPRED(I) = 0 - ENDDO - intspred(1) = kstart_titl !... block header titles - CALL SWAP_BYTES_IN_PLACE (intspred(1), 8_8, 1) - ispr = 4 !... ptr to destination - GO TO 300 !... jump way back to do striptitl - - ELSE IF(IWORD1 .EQ. KSTART_SCHED) THEN - GO TO 490 - ELSE IF(IWORD1 .EQ. KEND_ALLMAPS) THEN - GO TO 490 - ENDIF - GO TO 490 - - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ... OUTPUT THE FFFFFD-HEADED JSCHEDS ARRAY HERE ... -C ... IF INTERGRAPH VERSION, SWAP THE BYTES FIRST -C ... ELSE IF CRAY VERSION, COMPRESS THE JSCHED2D ARRAY -C ... BY QUARTER-PACKING THE ARRAY - 490 CONTINUE - do i = 1,nsizdes - JSCHEDS(i) = 0 - enddo - noffset = 0 - nbitpgrp = 16 - nbitskip = 0 - ngrps2do = 8*(ntotsched + 1) - do i = 1,32 - do j = 1,8 - write (*,*) jsched2d(j,i), j,i - enddo - enddo -#if defined(_LITTLE_ENDIAN) - do i = 1, 60 - CALL SWAP_BYTES_IN_PLACE (jsched2d(5,i), 8_8, 1) - CALL SWAP_BYTES_IN_PLACE (jsched2d(6,i), 8_8, 1) - enddo -#endif - call sbytesccs(JSCHEDS,jsched2d,noffset,nbitpgrp,nbitskip, - 1 ngrps2do) -C - - NBLOCKOUT = NBLOCKOUT + 1 -C - NUMRECFAX = NUMRECFAX + 1 -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (JSCHEDS, 8_8, 180_8) -#endif -c write (*,*) 'test6' -c write (*,*) JSCHEDS(1), JSCHEDS(2), JSCHEDS(3), JSCHEDS(4) - WRITE(LUNIPK6, REC=NUMRECFAX,ERR=920 )C1JSCHED - -C write(LUNIPK6,ERR=920)JSCHEDS -C -C ... WHICH OUTPUT THE FFFFFD-ARRAY -C -C ... OUTPUT THE FFFFFC-HEADED END_OF_ALL_MAPS ARRAY HERE ... - DO I = 1,180 - JOUTBF(I) = 0 - ENDDO -C JOUTBF(1) = KENDALLPKD !... END-OF-ALL-MAPS IN FILE - LCKPT = 495 - NUMRECFAX = NUMRECFAX + 1 -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (JOUTBF, 8_8, 180_8) -#endif -c write (*,*) 'test5' - WRITE(LUNIPK6, REC=NUMRECFAX,ERR=920 )C1OUTBF - -C write(LUNIPK6,ERR=980)JOUTBF - -C - GO TO 999 -C -C * * * * * * * * * -C -C * * * * * * * * * -C - 900 CONTINUE -C ... COMES HERE IF END-OF-FILE ENCOUNTERED ON INPUT FILE - WRITE(6,905) LUNIX6T,LCKPT,NRECIN - 905 FORMAT(1H ,'REBLKFX4:HIT EOF ON FAX INPUT FILE DSRN=',I3, - 1 /1H ,' AFTER CHECKPOINT=', I5, - 2 ' ON LRECORD NO.', I4) - GO TO 980 -C -C - 920 CONTINUE -C ... COMES HERE IF WRITE PARITY ERROR ON WRITING TO -C ... UNIT = LUNIPK6 -C - WRITE(6,925) LUNIPK6,NBLOCKOUT - 925 FORMAT(1H ,'*** ERROR WHILE TRYING TO WRITE TO UNIT=', - 1 I3,/1H ,5X,'KBLOCK = ', I3) -C - GO TO 980 -C - 930 CONTINUE -C ... COMES HERE IF GIVEN AN ALL-BLANK MAP - WRITE(6,935) NBEFORE - 935 FORMAT(1H ,'REBLKFX4: GIVEN AN EMPTY MAP; NO FAX MAP.', - 1 /1H ,' BLANK SCAN_LINE COUNT =', I5) - IERR= 3 - GO TO 999 -C - 940 CONTINUE -C ... COMES HERE IF GIVEN EMPTY MAP, BADLY FORMATTED - WRITE(6,945) NBEFORE - 945 FORMAT(1H ,'REBLKFX4: GIVEN AN EMPTY MAP; NO FAX MAP.', - 1 /1H ,' BAD FORMAT. HIT PHYSICAL EOF. NBEFORE=',I5) - IERR = 4 - GO TO 999 -C - 966 CONTINUE -C ... COMES HERE IF SCANNED THRU FINAL REC W/O FINDING -C ... THE '33'X END... - WRITE(6,968) LUNIX6T,LCKPT,NRECIN - 968 FORMAT(1H ,'REBLKFX4:ERRONEOUS FORMAT IN FAXS FILE ON DSRN=', - A I3, - 1 /1H ,' NO HEX33 END-MARK FOUND IN FINAL REC NO.', - 2 I4) - GO TO 980 -C - 970 CONTINUE -C ... COMES HERE IF NO VALID 1ST FULLWORD ON FIRST RECORD - WRITE(6,975)inbufA(1) - 975 FORMAT(1H ,'REBLKFX4:** ERROR STOP. INVALID X6T FILE HEADER.', - 1 ' WORD(1)= X', Z17.16) -C - GO TO 980 -C - 980 CONTINUE -C - IERR = 1 - GO TO 999 - 999 CONTINUE - RETURN - END - SUBROUTINE REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) -C ... GIVEN: ONE FULL (USUALLY FULL) 1920-BYTE BIN -C ... (FULL, EXCEPT WHEN FLUSHING LAST DATA RECORD) -C ... TASK: COMPRESS INTO 1440-BYTES, THEN OUTPUT -C ... WHERE INTSPRED MUST EQUIVALENCED TO C1SPRED IN CALLER,S -C ... WHERE JOUTBF MUST EQUIVALENCED TO C1OUTBF IN CALLER,S - - INTEGER NBYTPWRD - PARAMETER (NBYTPWRD=8) !... CRAY 8-BYTE INT - - INTEGER NMCSTDRECL !... = 1440 BYTES - PARAMETER (NMCSTDRECL=1440) - - INTEGER MAXEXTBYT - PARAMETER (MAXEXTBYT=1920) - INTEGER MAXEXTINT !...240 I*8 WRDS =1920/8 - PARAMETER (MAXEXTINT=MAXEXTBYT/NBYTPWRD) - -C ... WHERE 1920 BYTES IS CAPACITY OF C1SPRED ARRAY -C ... WHICH IS EQUIV TO 1440-BYTES IN COMPRESSED 6-BITS -C ... EXTENDED TO 8-BITS PER 6-BIT ITEM. - - INTEGER LUNIPK6 - - INTEGER INTSPRED(MAXEXTINT) - CHARACTER*1 C1SPRED(MAXEXTBYT) -C ... where EQUIV (INTSPRED,C1SPRED) ... MUST BE IN CALLER,S - - INTEGER JOUTBF(180) !... I*4 WAS (360) - CHARACTER*1 C1OUTBF(NMCSTDRECL) -C ... WHERE JOUTBF MUST EQUIVALENCED TO C1OUTBF IN CALLER,S - - - INTEGER NBLOCKOUT - LOGICAL LSTARTEDQQ - INTEGER IRET600 - - CHARACTER*1 NULL - - SAVE - -C * * * * * * * * * - - IRET600 = 0 - NULL = CHAR(0) -C -C - 600 CONTINUE -C - IF(ISPR .LE. 0) GO TO 666 -C ... IF NOTHING WAS MOVED INTO C1SPRED, DON'T OUTPUT ANY -C ... WRITE(6,611) LCKPT - 611 FORMAT(1H ,'REBLKFX4 IS WRITING BLOCK AT CHECKPT=', I4) -C - IF(ISPR .LT. MAXEXTBYT) THEN -C ... ZERO REMAINDER OF BUFFER IF PARTIALLY FULL - MM1 = ISPR + 1 - DO I = MM1,MAXEXTBYT - C1SPRED(I) = NULL - ENDDO - ENDIF -C -C ... TO COMPRESS THE 6-BITS-IN-8-BITS INTO CONCATENATED -C ... 6-BITS, -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (INTSPRED, 8_8, MAXEXTINT) -#endif - CALL PAK8TO6(INTSPRED,JOUTBF) -C -C - NBLOCKOUT = NBLOCKOUT + 1 -C ... IF(NBLOCKOUT .LE. 1) THEN -C ... DUMP THE FIRST C1OUTBF TO SEE IF IT STARTS W/ FFFFFF -C ... WRITE(6,624)(JOUTBF(I),I=1,360) -C 624 FORMAT(1H ,'REBLKFX4: FIRST OUTPUT BUFFER CONTAINS ...', -C 1 /1H ,(8Z9.8)) -C ... ENDIF -C -C WHERE EACH FAX RECORD IS 1440 BYTES - - NUMRECFAX = NUMRECFAX + 1 -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (JOUTBF, 8_8, 180_8) -#endif -c write(*,*) 'test7' - WRITE(LUNIPK6, REC=NUMRECFAX,ERR=920 )C1OUTBF - -C WRITE(LUNIPK6,ERR=920)JOUTBF - -C - 666 CONTINUE -C - do i = 1,MAXEXTINT - intspred(i) = 0 - enddo - ISPR = 0 - GO TO 999 -C -C * * * * * * * * * -C - 920 CONTINUE -C ... COMES HERE IF WRITE PARITY ERROR ON WRITING TO -C ... UNIT = LUNIPK6 -C - WRITE(6,925) LUNIPK6,NBLOCKOUT - 925 FORMAT(1H ,'REBLK600: ERROR WHILE TRYING TO WRITE TO UNIT=', - 1 I3,/1H ,5X,'KBLOCK = ', I3) -C - GO TO 980 -C - 980 CONTINUE -C - IRET600 = 1 - GO TO 999 - - 999 CONTINUE - RETURN - END - - SUBROUTINE REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) -C ... CHANGED FROM ASSIGNED GOTO 700 TO SUBR ... 30-APR1996/DSS -C * * * * * * * * * -C - INTEGER MXSCHED - PARAMETER (MXSCHED=60) -C ... MAX NO. OF SUBSETS/INSETS DEFINED IN GIVEN IISCHED ARRAY. -C ... BEDIENT USES 59 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /XSCHEDS/NTOTSCHED,NSCHED_CUT,NSCHED_TITL,JOFSCH, - 1 NUMPANEL,JSCHED2D,JLINSRTED - INTEGER NTOTSCHED - INTEGER NSCHED_CUT - INTEGER NSCHED_TITL - INTEGER JOFSCH - INTEGER NUMPANEL - INTEGER JSCHED2D(8,MXSCHED) - INTEGER JLINSRTED(2,MXSCHED) - -C ... SUBSET DEFS IN JSCHED2D WHOSE POINTERS REMAIN TO -C ... BE DEFINED = F(STARTING SCAN LINE) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - INTEGER MAXEXTBYT - PARAMETER (MAXEXTBYT=1920) -C ... WHERE 1920 BYTES IS CAPACITY OF C1SPRED ARRAY -C ... WHICH IS EQUIV TO 1440-BYTES IN COMPRESSED 6-BITS -C ... EXTENDED TO 8-BITS PER 6-BIT ITEM. - - INTEGER NSCANLN,NBLSAV,ISPSAV,NBLOCKOUT,ISPR - - SAVE - - 700 CONTINUE -C ... COMES HERE ON END_OF_SCANLINE ... - JWHICH = JOFSCH - 1 - IF(JWHICH .GT. NTOTSCHED) THEN - GO TO 719 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ENDIF - -C ... WHAT ABOUT THE STRIP-TITLE VALUES UP THERE ABOVE 7400??? -C ... HOW ARE YOU EVER GOING TO MATCH AGAINS THOSE ??? -C ... BY RESETTING NSCANLN=7400 IN MAIN WHEN GOING BACK THRU -C ... THE STRIPTITLE RLE BLOCK - - -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - IF(NSCANLN .LT. JLINSRTED(1,JWHICH)) GO TO 717 -C ... OTHERWISE, CURRENT SCANLINE IS A MATCH OF THIS -C ... SCHED ENTRY'S STARTING SCANLINE ... -C ... SO PUT POINTERS IN PLACE OF STARTING SCAN LINE. - JPTR = JLINSRTED(2,JWHICH) - JSCHED2D(2,JPTR) = NBLSAV - IF(ISPSAV .GT. 0) THEN - JSCHED2D(3,JPTR) = ISPSAV - 1 - ELSE -C ... FAIL-SAFE TO PREVENT NEGATIVE-VALUED BYTE-POINTER ... - JSCHED2D(3,JPTR) = 0 - ENDIF -C ... WHERE BYTE POINTER DECREMENTED BECAUSE BEDIENT -C ... WANTS RELATIVE BYTE POINTER. - JOFSCH = JOFSCH + 1 - GO TO 700 -C ... WHICH GOES BACK TO SEE IF ANOTHER SCHED ENTRY -C ... EXISTS WITH SAME STARTING SCANLINE. -C - 717 CONTINUE -C ... COMES HERE ONLY IF SOME SCHED ENTRY REMAINS -C ... UNADDRESSED, AND IF THE CURRENT LINE DID NOT -C ... MATCH. -C ... SAVE POINTER TO THE START OF NEXT SCAN LINE. - NBLSAV = NBLOCKOUT - ISPSAV = ISPR + 2 - IF(ISPSAV .GT. MAXEXTBYT) THEN - ISPSAV = 1 - NBLSAV = NBLSAV + 1 - ENDIF -C - 719 CONTINUE - RETURN - END - - SUBROUTINE MAKFFFD(IISCHED,LSCHED_EXTDQQ) -C ... GIVEN: (1.)IISCHED ARRAY DEFINING EACH SUBSET AND REAL-INSET -C ... AND STRIP-TITLE-INSET IN THIS PRODUCT -C ... (2.)LSCHED_EXTDQQ -- LOGICAL SWITCH TO TELL ME -C WHICH OF TWO DATA FORMATS IS ISCHED IN: -C == .T.; EACH 16-BIT "WORD" IS IN THE LOW-ORDER -C 16-BITS OF EACH 64-BIT INTEGER; -C == .F.; THE 16-BIT "WORDS" ARE CONCATENATED -C ... RESULTS: INTO WORK ARRAYS AND COUNTERS IN /XSCHEDS/ -C -C ... WHAT DOES THIS DO? -C ... (A.) ZEROS THE JSCHED2D WORKSPACE FOR THE FFFFFD-HEADED -C ... ISCHED TRAILER-RECORD ARRAY; -C ... (B.) COPIES THE GIVEN IISCHED DATA INTO JSCHED2D -C ... WITH DATA STILL IN THE EXTENDED FORMAT; -C ... WHY EVEN COPY IT THEN??? BECAUSE I WILL CHANGE -C ... CONTENTS, AND I DO NOT WANT TO CHANGE THE GIVEN; -C ... (C.) CREATES AND SORTS A SORTKEY ARRAY: -C ... CONTAINING THE STARTING SCANLINE J-VALUE -C ... AND A POINTER INTO THE JSCHED2D-ARRAY -C (DOES NOT REARRANGE THE DATA WITHIN JSCHED2D.) -C ... -C ... -C ... THAT IS ALL IT DOES. IT IS NOT NOT NOT READY TO GO. -C ... THE STARTING SCANLINE NUMBER HAS NOT BEEN CONVERTED TO -C ... A POINTER BY BLOCK NUMBER AND BYTE NUMBER WITHIN BLOCK. -C ... SINCE THE CRAY DOES NOT HAVE INTEGER*2, THE RESULTING -C ... JSCHED2D ARRAY IS AN EXTENDED VERSION IN WHICH EACH -C ... VALUE IS IN THE LOW-ORDER 16-BITS OF EACH 64-BIT WORD; -C ... SO IT STILL NEEDS A CALL SBYTESCCS() TO PACK THE I*2 DATA - -C ... WHY DO THIS? -C ... SOMEWHERE ELSE IS THE LOGIC FOR CONVERTING THE SCANLINE -C ... NUMBER INTO A POINTER BY BLOCK NUMBER AND BYTE NUMBER. -C ... WHEN IT DOES THAT, IT WILL BE EASIER TO DO THAT IF THE -C ... SCANLINE NUMBERS ARE SORTED. -C ================================================================ -C ... SHOULD I SORT THE POINTERS ONLY AND LEAVE THE GIVEN -C ... ITEM SEQUNCE INTACT??? (Yes!) - -C ... DOES BEDIENT CHANGE THE ARRANGEMENT? (No!) -C ... SEE EXAMPLE SOMEWHERE!!!! (See "isched.doc") -C ... -C ... I looked at an FT01 file and the isched 8-iiword sets -C ... are not sorted; they are in their original given sequence -C ... so I should sort only the pointer array. So the logic -C ... in this subroutine must be changed. (1-May-1996/dss) -C -C ================================================================ -C ... I SPLIT THE ISCHED MILLING ARND INTO A SUBR. -C ... THE ISCHED DATA IS ESSENTIALLY 16-BIT I*2 WORD ORIENTED -C ... HOW CAN I DO THIS IN THE I*8 WORD OF CRAY? -C ... THE FFFFFD-HEADED TRAILER RECORD IS NOT 6-BIT PACKED; -C ... IT IS I*2 JSCHEDS(720) = 720 I*2 INTEGER VALUES -C ... IN SETS OF 8 I*2 INTEGERS PER LOGICAL MAP SUBSET; -C ... IF, ON THE CRAY, WE WORK IN A SPACE OF I*8 JSCHEDS(720) -C ... IN WHICH THE DATA IS IN THE LOW-ORDER 16-BITS OF EVERY -C ... LONGWORD, THEN ONLY AT THE VERY END, JUST BEFORE OUTPUT -C ... I COULD QUARTER-PACK IT. -C -C ... INITIALIZE FFFFFD-HEADED RECORD HERE -C ... SORT SUBSET_DEFINITIONS BY THEIR STARTING SCANLINE; -C ... COUNT THE NUMBER OF SUBSETS; -C ... INITIALIZE FLAGS. - - -C - INTEGER MXSCHED - PARAMETER (MXSCHED=60) -C ... MAX NO. OF SUBSETS/INSETS DEFINED IN GIVEN IISCHED ARRAY. -C ... BEDIENT USES 59 - - INTEGER LIMITSETS - PARAMETER (LIMITSETS=MXSCHED-2) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /XSCHEDS/NTOTSCHED,NSCHED_CUT,NSCHED_TITL,JOFSCH, - 1 NUMPANEL,JSCHED2D,JLINSRTED - INTEGER NTOTSCHED - INTEGER NSCHED_CUT - INTEGER NSCHED_TITL - INTEGER JOFSCH - INTEGER NUMPANEL - INTEGER JSCHED2D(8,MXSCHED) - INTEGER JLINSRTED(2,MXSCHED) - -C ... SUBSET DEFS IN JSCHED2D WHOSE POINTERS REMAIN TO -C ... BE DEFINED = F(STARTING SCAN LINE) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - INTEGER IISCHED(8,MXSCHED) -C ... WHERE IISCHED IS GIVEN AS ARG1 -C ... AND IS IN THE SAME FORMAT AS IN CALL TO CNTR - LOGICAL LSCHED_EXTDQQ !... ARG2 - - - INTEGER ISORKEY(MXSCHED) -C - INTEGER KIISCHED(8) -C ... WHERE KIISCHED IS A CANNED SUBSET DEF. IN CASE -C ... THE GIVEN IISCHED IS BAD - - DATA KIISCHED / 150, 0, 0,1200, X'8000',X'D800', 0,0 / -C ... WHERE DUMMY KIISCHED USES SUBSET NO. 150 (MY CHECKOUT) - - INTEGER I8HOLD(2) - CHARACTER*1 C1HOLD(16) - EQUIVALENCE (I8HOLD(1),C1HOLD(1)) - - INTEGER IPAIR(2) - INTEGER IIWRDEXT(8) - INTEGER MSKLHS - DATA MSKLHS / X'FFFFFFFF00000000' / - INTEGER MSKRHS - DATA MSKRHS / X'00000000FFFFFFFF' / - - INTEGER JLINE_VAL -C - SAVE -C -C . . . S T A R T . . . . . . . . . . . . . . . . . . . . . . -C - write(6,151)LSCHED_EXTDQQ - 151 format(1h ,'reblkfx4::makfffd: entered with LSCHED_EXTDQQ = .', - 1 L1,'.') - - NTOTSCHED = 0 - - DO J = 1,MXSCHED !... MXSCHED=60 - ISORKEY(J) = 0 - ENDDO - - DO J = 1,MXSCHED - JLINSRTED(1,MXSCHED) = 0 - JLINSRTED(2,MXSCHED) = 0 - ENDDO - -C -C ... INTEGER JSCHED2D(8,90) - DO J = 1,MXSCHED !... MXSCHED=60 - DO I = 1,8 - JSCHED2D(I,J) = 0 - ENDDO - ENDDO -C - JSCHED2D(1,1) = X'FFFF' - JSCHED2D(2,1) = X'FD00' -C - NTOTSCHED = 0 - IF(LSCHED_EXTDQQ)THEN -C ... M2 IS SET TO ENSURE THERE WILL BE A ZERO-VALUE WITHIN -C ... MXSCHED-SIZED ARRAYS BEYOND LAST NON-ZERO ITEM - M2 = MXSCHED - 2 - DO JJ = 1,M2 - IF((IISCHED(1,JJ) .EQ. 0) .AND. - 1 (IISCHED(2,JJ) .EQ. 0)) THEN - GO TO 154 - ENDIF - JSTARTLINE = IISCHED(2,JJ) - IF(JSTARTLINE .GE. 8200) THEN -C ... BEYOND FAX STRIP TITLES INTO AFOS ... -C ... AND I AM NOT DOING AFOS, SO JUMP OUT - GO TO 154 - ENDIF - -C ... OTHERWISE, THIS ITEM IS NOT THE END OF ISCHED YET - NTOTSCHED = NTOTSCHED + 1 - - DO II = 1,8 - JSCHED2D(II,JJ+1) = IISCHED(II,JJ) - ENDDO - - IACC = JSTARTLINE !... J-VAL OF STARTING SCANLN - IACC = ISHFT(IACC,32) !... SORT KEY IN HI-ORDER HAFWD - JPTR = JJ + 1 !... PTR INTO JSCHED2D ARRAY - ISORKEY(JJ) = IOR(IACC,JPTR) !... /SORTKEY/PTR/ - ENDDO - GO TO 154 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ELSE -C ... COMES HERE IF LSCHED_EXTDQQ == .F. -C ... DATA WITHIN IISCHED(8,J) IS REALLY CONCATENATED I*2 WORDS - NTOTSCHED = 0 - DO JJ = 1,15 !... 60/4SETS PER 8I*8 = 15 - DO II = 1,8,2 !... 2 I*8 INTS == 8 I*2 WORDS -C ... FETCH NEXT TWO I*8 WORDS OUT OF IISCHED() ARRAY ... - I8HOLD(1) = IISCHED(II,JJ) - I8HOLD(2) = IISCHED(II+1,JJ) - IACC = IAND(I8HOLD(1),MSKLHS) - IF(IACC .EQ. 0) THEN -C ... THIS IS THE LAST DATA ITEM TO TRANSFER ... - GO TO 154 - ENDIF - - IF((NTOTSCHED+1) .GT. LIMITSETS) THEN - GO TO 154 - ENDIF - - DO IDE = 1,8 - IBY1 = 2*(IDE-1) + 1 - IBY2 = IBY1 + 1 - IPAIR(1) = MOVA2I(C1HOLD(IBY1)) - IPAIR(1) = ISHFT(IPAIR(1),8) - IPAIR(2) = MOVA2I(C1HOLD(IBY2)) - IIWRDEXT(IDE) = IOR(IPAIR(1),IPAIR(2)) - ENDDO -C ... NOW NON-ZERO 8-WORD SET IN (IIWRDEXT(I),I=1,8) -C ... JUST LIKE A SET FROM EXTENDED IISCHED ... - JSTARTLINE = IIWRDEXT(2) - IF(JSTARTLINE .GE. 8200) THEN -C ... BEYOND FAX STRIP TITLES INTO AFOS ... -C ... AND I AM NOT DOING AFOS, SO JUMP OUT - GO TO 154 - ENDIF - -C ... OTHERWISE, THIS ITEM IS NOT THE END OF ISCHED YET - NTOTSCHED = NTOTSCHED + 1 - - DO II2 = 1,8 - JSCHED2D(II2,NTOTSCHED+1) = IIWRDEXT(II2) - ENDDO - - IACC = JSTARTLINE !... J-VAL OF STARTING SCANLN - IACC = ISHFT(IACC,32) !... SORT KEY IN HI-ORDER HAFWD - JPTR = NTOTSCHED + 1 !... PTR INTO JSCHED2D ARRAY - ISORKEY(NTOTSCHED) = IOR(IACC,JPTR) -C !... /SORTKEY/PTR/ - ENDDO - ENDDO - GO TO 154 - - ENDIF -C - 154 CONTINUE -C ... ALL SUBSET DEFINITIONS HAVE BEEN COPIED INTO JSCHED2D -C ... AND NTOTSCHED CONTAINS THE COUNT OF SUBSETS/INSETS. - - WRITE(6,157) NTOTSCHED - 157 FORMAT(1H ,'REBLKFX4:IN GIVEN IISCHED, NO. OF _SETS=',I3) -C - IF(NTOTSCHED .LE. 0) THEN -C ... BAD IISCHED WAS GIVEN; BUT LET'S TRY TO CONTINUE -C ... WITH A CANNED IISCHED FOUND IN KIISCHED - WRITE(6,159) - 159 FORMAT(1H ,'REBLKFX4:-W- BAD IISCHED. PROCEEDING ANYWAY.') - DO I = 1,8 - JSCHED2D(I,2) = KIISCHED(I) - ENDDO -C - JSCHED2D(1,3) = 0 - JSCHED2D(2,3) = 0 -C - JLINSRTED(1,1) = KIISCHED(2) !... JLINE VAL - JLINSRTED(2,1) = 2 !... PTR -C - NTOTSCHED = 1 - NSCHED_CUT = 1 - GO TO 177 - ENDIF -C -C ... IF ONLY ONE GOOD ITEM IN IISCHEDS HAS BEEN MOVED, THEN -C ... BYPASS THE SORT - IF(NTOTSCHED .LE. 1) THEN - JSCHED2D(1,3) = 0 - JSCHED2D(2,3) = 0 -C - JLINSRTED(1,1) = JSCHED2D(2,2) !... JLINE VAL - JLINSRTED(2,1) = 2 !... PTR -C - NTOTSCHED = 1 - NSCHED_CUT = 1 - GO TO 177 - ENDIF - -C ... OTHERWISE,TO SORT THE SUBSET DEFS BY STARTING SCAN LINE, - - CALL PIKSOR(ISORKEY,NTOTSCHED) - - WRITE(6,165) NTOTSCHED - 165 FORMAT(1H ,'REBLKFX4::MAKFFFD: DID PIKSOR. NTOTSCHED=',I4) -C - NSCHED_CUT = 0 - NSCHED_TITL = 0 - DO IS = 1,NTOTSCHED - IACC = ISORKEY(IS) - JPTR = IAND(IACC,MSKRHS) - JLINE_VAL = ISHFT(IACC,-32) - JLINSRTED(1,IS) = JLINE_VAL - JLINSRTED(2,IS) = JPTR !... PTR - IF(JLINE_VAL .LT. 7400) THEN - NSCHED_CUT = NSCHED_CUT + 1 - ELSE IF(JLINE_VAL .LT. 8200) THEN - NSCHED_TITL = NSCHED_TITL + 1 - ENDIF - ENDDO -C - 177 CONTINUE - WRITE(6,178)NTOTSCHED,NSCHED_CUT,NSCHED_TITL - 178 FORMAT(1H ,'REBLKFX4::MAKFFFD: EXITING WITH NTOTSCHED=',I4, - 1 /1H ,' NSCHED_CUT=',I4,'; NSCHED_TITL=',I4) - IF(NTOTSCHED .GT. 0) THEN - WRITE(6,1781) - 1781 FORMAT(1H ,' LINUM JOFSHD -- FROM JLINSRTED(1,J),(2,J):') - WRITE(6,1782)(JLINSRTED(1,J),JLINSRTED(2,J),J=1,NTOTSCHED) - 1782 FORMAT((2I6)) - WRITE(6,1783) - 1783 FORMAT(1H ,' ..... ..... . . . END OF JLINSRTED . . .') - ENDIF - - RETURN - END diff --git a/util/sorc/sixbitb2.fd/sta.f b/util/sorc/sixbitb2.fd/sta.f deleted file mode 100755 index f72ce52832..0000000000 --- a/util/sorc/sixbitb2.fd/sta.f +++ /dev/null @@ -1,216 +0,0 @@ - subroutine stal - common/pshift/ishiftx(50),ishifty(50),ishiftxx,ishiftyy - character*2 c2 - character*1 cv - character*9 cloc - dimension kp(2) -c call fonts - rewind(39) - print*,'Entered stal after rewind 39' - do 899,k=1,999999 - read(39,891,end=9899) - 1 ipx,ipy,item,idew,ipres,itend,idd,iss,icover,iwx, - 1 itrace,icloud,cloc - print*,'ipx,ipy,item,idew,ipres,itend,idd,iss,icover,iwx, - 1 itrace,icloud,cloc = ', - 2 ipx,ipy,item,idew,ipres,itend,idd,iss,icover,iwx, - 3 itrace,icloud,cloc - ipx=ipx+ishiftxx - ipy=ipy+ishiftyy - dew=idew - pres=ipres - temp=item - speed=iss - dir=idd - tend=itend - cover=icover - ht=11. - call staplt(ipx,ipy,ht,temp,dew,pres,tend,dir,speed,cover,iwx, - 1 itrace,icloud,cloc(3:7)) - 899 continue - 891 format(16x,9i5,3i5,a9) - 9899 continue -ckumar rewind (89) - rewind (39) - return - end - subroutine staplt - 1 (ix,iy,font,temp,dew,pres,tend,dir,speed,cover,iwx,itrace, - 1 icloud,cloc) - dimension ifont(0:99),icharr(0:99) - character*3 c3 - character*5 cloc -c ifont and icharr specify the font number and character -c for each WMO current weather number from 1 to 99. The -c weather number is the array index. For example if the current -c weather is 04, then the font number is 35, and the character -c is 'Z41' (integer 65) This is a "smoke" symbol - data ifont/ - 1 00,00,00,00,35,35,34,34,34,34, - 1 33,33,33,33,33,33,33,33,33,33, - 2 33,33,33,33,33,33,33,33,33, - 3 33,33,33,33,33,33,33,33,33,33,33, - 4 35,33,33,33,33,33,33,33,33,33, - 5 33,33,34,34,34,34,35,35,33,33, - 6 33,33,33,33,34,34,35,35,34,34, - 7 32,34,35,36,36,36,35,35,35,33, - 8 34,34,34,34,34,34,34,34,34,34, - 9 34,36,36,36,36,36,36,36,36,36/ - data icharr / - 1 00,00,00,00,65,66,65,66,67,04, - 1 48,65,66,68,69,70,71,72,73,74, - 2 75,76,77,78,79,80,81,82,83, - 3 84,85,85,85,85,85,86,87,88,89,89, - 4 71,48,49,50,51,52,53,54,48,48, - 5 55,56,68,69,71,70,73,74,57,57, - 6 45,47,43,41,72,73,75,76,74,74, - 7 72,75,77,68,68,69,78,78,78,44, - 8 80,81,82,83,84,85,86,87,88,89, - 9 89,71,72,73,74,75,76,77,78,79/ - character*3 ctemp,cdew,ctend - character*4 cdir,cpres - character*1 cv - dimension kp(2) - character*2 c2 - ix=ix+4+64 - c2='90' - kp(1)=0 - kp(2)=0 - print*,'temp,pres,dew,tend,cover,dir ',temp,pres,dew, - & tend,cover,dir - if ((temp .lt. -99) .or. (temp . gt. 999)) then - ctemp = " " - else - write(ctemp,101)ifix(temp) - end if - print*,'In sta.f ctemp & temp ',ctemp,temp - if ((pres .lt. -99) .or. (pres . gt. 999)) then - cpres = " " - else - write(cpres,1011)ifix(pres) - end if - print*,'In sta.f cpres & pres ',cpres,pres - if ((dew .lt. -99) .or. (dew . gt. 999)) then - cdew = " " - else - write(cdew,101)ifix(dew) - end if - print*,'In sta.f cdew & dew ',cdew,dew - if ((tend .lt. -99) .or. (tend . gt. 999)) then - ctend = " " - else - write(ctend,101)ifix(tend) - end if - print*,'In sta.f ctend & tend ',ctend,tend - itend=tend - icover=cover -c write(cdir,101) ifix(dir) -c print*,'In sta.f cdir & dir ',cdir,dir -c c2=cdir(1:2) - isp=speed - idir=dir - print*,'In sta.f isp & idir ',isp,idir - 101 format(i3) - 1011 format(i3.3) - font=1.0 - kp(1)=1 -c TEMPERATURE - kp(2)=2 - if(temp .gt. -9.) then - call PUTLAB (ix-12,iy-20,font,ctemp(2:3),90.0,2,kp,0) - else - call PUTLAB (ix-12,iy-30,font,ctemp,90.0,3,kp,0) - endif -c PRESSURE - call PUTLAB (ix-11,iy+14,font,cpres,90.0,3,kp,0) -c DEWPOINT - ixd=ix+17 - if(iwx .lt. 4 .or. iwx .gt. 99) ixd=ix+2 - if (dew .gt. -9.) then - call PUTLAB (ixd,iy-20,font,cdew(2:3),90.0,2,kp,0) - else - call PUTLAB (ixd,iy-30,font,cdew,90.0,3,kp,0) - endif - kp(2)=0 -c STATION NAME - call putlab(ixd+14,iy-30,4.0,cloc,90.0,5,kp,0) -c PRESSURE TENDANCY - if (itrace .ge. 0 .and. itrace .lt. 9) then - sfont=4. - call PUTLAB (ix+4,iy+16,font,ctend(2:3),90.0,2,kp,0) - else - if(itend .lt. 10 .and. itend .gt. -10) then - call PUTLAB (ix+4,iy+16,font,ctend(2:3),90.0,2,kp,0) - else - call PUTLAB (ix+4,iy+16,font,ctend(1:3),90.0,3,kp,0) - endif - endif -c CURRENT WEATHER DEPICTION - kp(1)=0 - cv=char(65) - if(iwx .gt. 0 .and. iwx .lt. 100) then - fnn=ifont(iwx) - cv=char(icharr(iwx)) - call putlab(ix,iy-18,fnn,cv,90.0,1,kp,0) - endif -c BAROGRAPH TRACE - if (itrace .lt. 9 .and. itrace .ge. 0) then - cv=char(64+itrace) - call putlab(ix+10,iy+34,31.,cv,90.0,1,kp,0) - endif -c LOW MIDDLE AND HIGH CLOUDS - if(icloud .gt. 0 .and. icloud .lt. 1000) then - write(c3,103)icloud - read(c3,1033)icl,icm,ich - 103 format(i3) - 1033 format(3i1) - cv=char(65+icl) - call putlab(ix+15,iy,28.,cv,90.0,1,kp,0) - cv=char(65+icm) - call putlab(ix-10,iy,29.,cv,90.0,1,kp,0) - cv=char(65+ich) - call putlab(ix-20,iy,30.,cv,90.0,1,kp,0) - endif -c WIND SPEED AND DIRECTION BARB. PLOT CIRCLE FOR ZERO SPEED -c plot staff on circle boundary rather than center. -c - d2r=3.1415927/180. - csize=6. - dir=idir - if(dir .lt. 0) dir=-dir - xd=csize*sin(dir*d2r) - yd=csize*cos(dir*d2r) - ixw=ix+xd+7 - iyw=iy+yd+7 - if(idir .gt. -361 .and. isp .ge.0 .and.isp .lt. 800) then - if(isp .gt. 0) - 1 CALL WNDBRK( ixw,iyw,idir/10,isp,nw,0,iret) -c 1 CALL WNDBRK( ix+6,iy+6,idir/10,isp,nw,0,iret) - cv=char(67) -c kp(1)=3 - kp(2)=4 - if(isp .eq. 0) call putlab(ix-2,iy-2,37.,cv,90.0,1,kp,0) - endif - kp(1)=0 - kp(2)=2 -c SKY COVER -c CV='M' - CV='K' - if(icover .eq. 1) CV='B' - if(icover .eq. 2) CV='C' - if(icover .eq. 3) CV='D' - if(icover .eq. 4) CV='E' - if(icover .eq. 5) CV='F' - if(icover .eq. 6) CV='G' - if(icover .eq. 7) CV='H' - if(icover .eq. 8) CV='I' - if(icover .eq. 9) CV='J' - if(icover .eq. 0) CV='A' -c other values of sky cover result in circle with inscribed M plotted -c to indicate missing sky cover. -c kp(2)=4 - call putlab(ix,iy,27.,cv,0.0,1,kp,0) - kp(2)=0 - kp(1)=1 - return - end diff --git a/util/sorc/sixbitb2.fd/sta.f.org b/util/sorc/sixbitb2.fd/sta.f.org deleted file mode 100755 index 53034b6a2b..0000000000 --- a/util/sorc/sixbitb2.fd/sta.f.org +++ /dev/null @@ -1,200 +0,0 @@ - subroutine stal - common/pshift/ishiftx(50),ishifty(50),ishiftxx,ishiftyy - character*2 c2 - character*1 cv - character*9 cloc - dimension kp(2) -c call fonts - rewind(39) - print*,'Entered stal after rewind 39' - do 899,k=1,999999 - read(39,891,end=9899) - 1 ipx,ipy,item,idew,ipres,itend,idd,iss,icover,iwx, - 1 itrace,icloud,cloc - print*,'ipx,ipy,item,idew,ipres,itend,idd,iss,icover,iwx, - 1 itrace,icloud,cloc = ', - 2 ipx,ipy,item,idew,ipres,itend,idd,iss,icover,iwx, - 3 itrace,icloud,cloc - ipx=ipx+ishiftxx - ipy=ipy+ishiftyy - dew=idew - pres=ipres - temp=item - speed=iss - dir=idd - tend=itend - cover=icover - ht=11. - call staplt(ipx,ipy,ht,temp,dew,pres,tend,dir,speed,cover,iwx, - 1 itrace,icloud,cloc(3:7)) - 899 continue - 891 format(16x,9i5,3i5,a9) - 9899 continue -ckumar rewind (89) - rewind (39) - return - end - subroutine staplt - 1 (ix,iy,font,temp,dew,pres,tend,dir,speed,cover,iwx,itrace, - 1 icloud,cloc) - dimension ifont(0:99),icharr(0:99) - character*3 c3 - character*5 cloc -c ifont and icharr specify the font number and character -c for each WMO current weather number from 1 to 99. The -c weather number is the array index. For example if the current -c weather is 04, then the font number is 35, and the character -c is 'Z41' (integer 65) This is a "smoke" symbol - data ifont/ - 1 00,00,00,00,35,35,34,34,34,34, - 1 33,33,33,33,33,33,33,33,33,33, - 2 33,33,33,33,33,33,33,33,33, - 3 33,33,33,33,33,33,33,33,33,33,33, - 4 35,33,33,33,33,33,33,33,33,33, - 5 33,33,34,34,34,34,35,35,33,33, - 6 33,33,33,33,34,34,35,35,34,34, - 7 32,34,35,36,36,36,35,35,35,33, - 8 34,34,34,34,34,34,34,34,34,34, - 9 34,36,36,36,36,36,36,36,36,36/ - data icharr / - 1 00,00,00,00,65,66,65,66,67,04, - 1 48,65,66,68,69,70,71,72,73,74, - 2 75,76,77,78,79,80,81,82,83, - 3 84,85,85,85,85,85,86,87,88,89,89, - 4 71,48,49,50,51,52,53,54,48,48, - 5 55,56,68,69,71,70,73,74,57,57, - 6 45,47,43,41,72,73,75,76,74,74, - 7 72,75,77,68,68,69,78,78,78,44, - 8 80,81,82,83,84,85,86,87,88,89, - 9 89,71,72,73,74,75,76,77,78,79/ - character*6 ctemp,cdew,ctend - character*4 cdir,cpres - character*1 cv - dimension kp(2) - character*2 c2 - ix=ix+4+64 - c2='90' - kp(1)=0 - kp(2)=0 - print*,'temp,pres,dew,tend,cover,dir ',temp,pres,dew, - & tend,cover,dir - if(temp .ne. -9999.0) write(ctemp,101)ifix(temp) - print*,'In sta.f ctemp & temp ',ctemp,temp - if(pres .ne. -9999.0) write(cpres,1011)ifix(pres) - print*,'In sta.f cpres & pres ',cpres,pres - if(dew .ne. -9999.0) write(cdew,101)ifix(dew) - print*,'In sta.f cdew & dew ',cdew,dew - if(tend .ne. -9999.0) write(ctend,101)ifix(tend) - print*,'In sta.f ctend & tend ',ctend,tend - itend=tend - icover=cover - if(dir .ne. -9999.0) write(cdir,'(i4)') ifix(dir) - print*,'In sta.f cdir & dir ',cdir,dir - c2=cdir(1:2) - isp=speed - idir=dir - print*,'In sta.f isp & idir ',isp,idir - 101 format(i3) - 1011 format(i3.3) - font=1.0 - kp(1)=1 -c TEMPERATURE - kp(2)=2 - if(temp .gt. -9.) then - call PUTLAB (ix-12,iy-20,font,ctemp(2:3),90.0,2,kp,0) - else - call PUTLAB (ix-12,iy-30,font,ctemp,90.0,3,kp,0) - endif -c PRESSURE - call PUTLAB (ix-11,iy+14,font,cpres,90.0,3,kp,0) -c DEWPOINT - ixd=ix+17 - if(iwx .lt. 4 .or. iwx .gt. 99) ixd=ix+2 - if (dew .gt. -9.) then - call PUTLAB (ixd,iy-20,font,cdew(2:3),90.0,2,kp,0) - else - call PUTLAB (ixd,iy-30,font,cdew,90.0,3,kp,0) - endif - kp(2)=0 -c STATION NAME - call putlab(ixd+14,iy-30,4.0,cloc,90.0,5,kp,0) -c PRESSURE TENDANCY - if (itrace .ge. 0 .and. itrace .lt. 9) then - sfont=4. - call PUTLAB (ix+4,iy+16,font,ctend(2:3),90.0,2,kp,0) - else - if(itend .lt. 10 .and. itend .gt. -10) then - call PUTLAB (ix+4,iy+16,font,ctend(2:3),90.0,2,kp,0) - else - call PUTLAB (ix+4,iy+16,font,ctend(1:3),90.0,3,kp,0) - endif - endif -c CURRENT WEATHER DEPICTION - kp(1)=0 - cv=char(65) - if(iwx .gt. 0 .and. iwx .lt. 100) then - fnn=ifont(iwx) - cv=char(icharr(iwx)) - call putlab(ix,iy-18,fnn,cv,90.0,1,kp,0) - endif -c BAROGRAPH TRACE - if (itrace .lt. 9 .and. itrace .ge. 0) then - cv=char(64+itrace) - call putlab(ix+10,iy+34,31.,cv,90.0,1,kp,0) - endif -c LOW MIDDLE AND HIGH CLOUDS - if(icloud .gt. 0 .and. icloud .lt. 1000) then - write(c3,103)icloud - read(c3,1033)icl,icm,ich - 103 format(i3) - 1033 format(3i1) - cv=char(65+icl) - call putlab(ix+15,iy,28.,cv,90.0,1,kp,0) - cv=char(65+icm) - call putlab(ix-10,iy,29.,cv,90.0,1,kp,0) - cv=char(65+ich) - call putlab(ix-20,iy,30.,cv,90.0,1,kp,0) - endif -c WIND SPEED AND DIRECTION BARB. PLOT CIRCLE FOR ZERO SPEED -c plot staff on circle boundary rather than center. -c - d2r=3.1415927/180. - csize=6. - dir=idir - if(dir .lt. 0) dir=-dir - xd=csize*sin(dir*d2r) - yd=csize*cos(dir*d2r) - ixw=ix+xd+7 - iyw=iy+yd+7 - if(idir .gt. -361 .and. isp .ge.0 .and.isp .lt. 800) then - if(isp .gt. 0) - 1 CALL WNDBRK( ixw,iyw,idir/10,isp,nw,0,iret) -c 1 CALL WNDBRK( ix+6,iy+6,idir/10,isp,nw,0,iret) - cv=char(67) -c kp(1)=3 - kp(2)=4 - if(isp .eq. 0) call putlab(ix-2,iy-2,37.,cv,90.0,1,kp,0) - endif - kp(1)=0 - kp(2)=2 -c SKY COVER -c CV='M' - CV='K' - if(icover .eq. 1) CV='B' - if(icover .eq. 2) CV='C' - if(icover .eq. 3) CV='D' - if(icover .eq. 4) CV='E' - if(icover .eq. 5) CV='F' - if(icover .eq. 6) CV='G' - if(icover .eq. 7) CV='H' - if(icover .eq. 8) CV='I' - if(icover .eq. 9) CV='J' - if(icover .eq. 0) CV='A' -c other values of sky cover result in circle with inscribed M plotted -c to indicate missing sky cover. -c kp(2)=4 - call putlab(ix,iy,27.,cv,0.0,1,kp,0) - kp(2)=0 - kp(1)=1 - return - end diff --git a/util/sorc/sixbitb2.fd/sym2imge.F b/util/sorc/sixbitb2.fd/sym2imge.F deleted file mode 100755 index 16b0613425..0000000000 --- a/util/sorc/sixbitb2.fd/sym2imge.F +++ /dev/null @@ -1,171 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif - - SUBROUTINE SYM2IMGE(IPL,JPL,IROTRA,NEWPXLHGT,NEWPXLWID,LERASE, - 1 IMAGE,MAXIWORD,MAXJSLINE,IRET_S2I) -C 24-OCT-1996/DSS -C ... CHANGED NAME FROM sym2imag() to sym2imge() BECAUSE I ADDED -C ... A RETURN CODE TO THE CALL-SEQUENCE. -C ... -C ... THIS IS LOOKING AT THE IMAGE WITH ORIGIN IN THE UPPER-LEFT -C ... AND WITH LOWEST VALUED SCANLINE AT THE TOP OF PAGE -C ... WITH PIXELS SWEEPING LEFT-TO-RIGHT STARTING AT THE FAX-EDGE -C ... AT THE LEFT EDGE; -C -C ... THE GIVEN POINT(IPL,JPL) IS THE PIXEL AT WHICH TO POSITION -C ... THE UPPER-LEFT CORNER OF THE SYMBOL (WHICH IS A SYMBOL'S -C ... ORIGIN -- WHICH IS THE LOWER-RIGHT CORNER OF THE LETTER -C ... IN THE REGULAR CHAR SET SINCE THE CHARAC DEFINITIONS ARE -C ... BIT-MAPPED UPSIDE-DOWN); -C -C ... THIS PERFORMS NO ADJUSTMENTS TO THE POSITION, SO YOU MUST -C ... DO ALL ADJUSTMENTS BEFORE YOU CALL ME. -C -C 19-MAR-1996/DSS -C ... MODIFIED TO ADD IMAGE TO CALL SEQ INSTEAD OF DEFINING -C ... AS COMMON BLOCK -C TO BE ABLE TO WORK WITH VARIOUS DIMENSIONS, -C MAYBE THE IMAGE SHOULD BE ONE-DIMENSIONED -C AND I SHOULD COMPUTE WHICH WORD BY KNOWING -C MAXIWORD,MAXJSLINE -C BUT FOR SIMPLE DEMO, KEEP IT SIMPLE -C -C 01-JUL-1999/VKK -C ... KRISHNA KUMAR MODIFIED THIS CODE FOR IBM RS/6000 -C COMPL & MASK ARE CRAY SPECIFIC FUNCTIONS - THE IBM -C EQUIVALENT FUNCTIONS HAVE BEEN ADDED IN THE GRAPHICS -C LIBRARY IN /nwprod/gphlib90/gphlib.source -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - INTEGER IMAGE(MAXIWORD,MAXJSLINE) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - integer kwrdszbyts -c GWV 1/20/99 made compl an i*8 function - integer (kind=8) compl - parameter (kwrdszbyts=8) !... CRAY long int - integer kwrdszbits - parameter (kwrdszbits=8*kwrdszbyts) !... CRAY 64-bit wrd - - INTEGER IPL,JPL - INTEGER IROTRA(NEWPXLHGT) - INTEGER NEWPXLWID - LOGICAL LERASE !... <= .T. erase under - INTEGER IRET_S2I - - LOGICAL LNEED2 - INTEGER IBGWORK(2) - INTEGER MSKLEFT - INTEGER MSKRIGHT - INTEGER NOTMSKLEFT - INTEGER NOTMSKRIGHT -CKUMAR - LOGICAL PRINTCAP1,PRINTCAP2 - DATA PRINTCAP1 /.TRUE./ - DATA PRINTCAP2 /.TRUE./ -CKUMAR - - - SAVE - - IRET_S2I = 0 - - IPLM1 = IPL - 1 - ITHWORD = IPLM1 / kwrdszbits !... [0,NWORDS] - ITHWORD = ITHWORD + 1 - ITHBITINWORD = MOD(IPLM1,kwrdszbits) !... BIT [0:63] - IF(ITHWORD .LT. 1) then - IRET_S2I = 1 - go to 999 - ELSE IF(ITHWORD .GT. MAXIWORD) THEN - IRET_S2I = 2 - GO TO 999 -C ... FOR KEEP IT SIMPLE STAGE, JUMP OUT IF OUT OF BOUNDS ... - ENDIF - - LNEED2 = .FALSE. - IF((ITHBITINWORD + NEWPXLWID) .GT. kwrdszbits) THEN -C ... WE WILL NEED ADJACENT WORD ON THE SAME SCANLINE ... - LNEED2 = .TRUE. - IF((ITHWORD + 1) .GT. MAXIWORD) THEN - IRET_S2I = 3 - GO TO 999 -C ... FOR KEEP IT SIMPLE STAGE, JUMP OUT IF AT EDGE ... - ENDIF - ENDIF - JCURR = JPL - 1 - DO LINSYM = 1,NEWPXLHGT - JCURR = JCURR + 1 - IBGWORK(1) = 0 - IBGWORK(2) = 0 - IF((JCURR .GT. 0) .AND. - 1 (JCURR .LE. MAXJSLINE)) THEN - IBGWORK(1) = IMAGE(ITHWORD,JCURR) - IF(LNEED2) THEN - IBGWORK(2) = IMAGE(ITHWORD+1,JCURR) - ENDIF -#if defined(_LITTLE_ENDIAN) -c CALL SWAP_BYTES_IN_PLACE (IBGWORK, 8_8, 2_8) -#endif - LINEDEF = IROTRA(LINSYM) - IRIGHT = 0 - MSKSYM = MASK(NEWPXLWID) - LINEDEF = IAND(LINEDEF,MSKSYM) - ILEFT = ISHFT(LINEDEF,-ITHBITINWORD) - MSKLEFT = ISHFT(MSKSYM,-ITHBITINWORD) - NBITOFF = (ITHBITINWORD + NEWPXLWID) - kwrdszbits - IF(NBITOFF .GT. 0) THEN - LEFSHIF = NEWPXLWID - NBITOFF - IF((LEFSHIF .GT. 0) .AND. - 1 (LEFSHIF .LT. NEWPXLWID)) THEN - IRIGHT = ISHFT(LINEDEF,LEFSHIF) - MSKRIGHT = ISHFT(MSKSYM,LEFSHIF) - ELSE - IRIGHT = 0 - MSKRIGHT = 0 - ENDIF - ENDIF - - IF(LERASE) THEN - NOTMSKLEFT = COMPL(MSKLEFT) - NOTMSKRIGHT = COMPL(MSKRIGHT) -c NOTMSKRIGHT = not(MSKRIGHT) -c NOTMSKLEFT = not(MSKLEFT ) - IBGWORK(1) = IAND(NOTMSKLEFT,IBGWORK(1)) - IBGWORK(2) = IAND(NOTMSKRIGHT,IBGWORK(2)) - ENDIF - - IBGWORK(1) = IOR(ILEFT,IBGWORK(1)) - IBGWORK(2) = IOR(IRIGHT,IBGWORK(2)) -#if defined(_LITTLE_ENDIAN) -c CALL SWAP_BYTES_IN_PLACE (IBGWORK, 8_8, 2_8) -#endif - write(92,'(2A,8(1x,I5),Z16.16)') - + 'in sym2imge: ipl, jpl, newpxlhgt, newpxlwid, maxiword, ', - + 'maxjsline, ithword, jcurr, ibgwork(1) = ', ipl, jpl, - + newpxlhgt, newpxlwid, maxiword, maxjsline, ithword, jcurr, - + ibgwork(1) - IMAGE(ITHWORD,JCURR) = IBGWORK(1) - IF(NBITOFF .GT. 0) THEN - write(92,'(2A,8(1x,I5),Z16.16)') - + 'in sym2imge: ipl, jpl, newpxlhgt, newpxlwid, maxiword, ', - + 'maxjsline, ithword+1, jcurr, ibgwork(2) = ', ipl, jpl, - + newpxlhgt, newpxlwid, maxiword, maxjsline, ithword+1, jcurr, - + ibgwork(2) - IMAGE(ITHWORD+1,JCURR) = IBGWORK(2) - ENDIF - ENDIF - ENDDO -CKUMAR CHECK THIS -CKUMAR -C IMAGE(MAXIWORD,MAXJSLINE) -c IF (PRINTCAP1) THEN -c write(92,*)'In SYM2IMGE image ' -c write(92,'(5(1X,Z16.16))') -c 1 ((IMAGE(i,j),j=1,MAXJSLINE),i=1,MAXIWORD) -c PRINTCAP1 = .FALSE. -c ENDIF - 999 CONTINUE - RETURN - END -C diff --git a/util/sorc/sixbitb2.fd/wndbrk.f b/util/sorc/sixbitb2.fd/wndbrk.f deleted file mode 100755 index 3785822630..0000000000 --- a/util/sorc/sixbitb2.fd/wndbrk.f +++ /dev/null @@ -1,616 +0,0 @@ - SUBROUTINE WNDBRK( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,IRET_WNB) -C $$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: WNDBRK PLOTS WIND DIR AND SPEED AS SHAFT & FLAG -C PRGMMR: SHIMOMURA ORG: NMC412 DATE:96-10-28 -C -C ABSTRACT: PLOTS WIND DIRECTION AND SPEED ON A VARIAN OR FAX MAP AS -C ENTRIES IN THE LABEL FILE. -C ** N O T E : TO MAKE AN EXE LOAD MODULE, WNDBRK MUST BE COMPILE -C ** N O T E : WITH BLOCK DATA WNDCON -C ** (USED TO BE WINCON FOUND 'NMC.PROD.V77GRAPH.SOURCE') -C -C PROGRAM HISTORY LOG: -C 75-04-11 ORIGINAL AUTHOR DENT. -C 86-06-27 MILLER REMOVE ASYNCHRONOUS I/O. -C 86-07-15 MILLER MAKE SURE WIND DIRECTION IS NEVER 0. -C 89-02-21 HENRICHSEN CLEAN UP AND DOCUMENT. -C 90-10-03 HENRICHSEN CONVERT TO FORTRAN 77 -C 96-02-20 SHIMOMURA: CONVERT TO CRAY -C ADDED IRET_WNB RETURN CODE -C 96-10-24 SHIMOMURA: ADD ERASER UNDER BARBS -C 96-10-28 SHIMOMURA: ADJUSTING WIND-FLAG POSITIONING WITH ICORNFLAG -C -C USAGE: CALL WNDBRK( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,IRET_WNB ) -C INPUT ARGUMENT LIST: -C ISTN - ICOORDINATE OF WIND PLOT IN DOTS. -C JSTN - JCOORDINATE OF WIND PLOT IN DOTS. -C KDDGD - WIND DIRECTION TO NEAREST 10 DEGREES. -C ISPEED - WIND SPEED IN KNOTS. -C IOPTN - FLAG TO DETERMINE IF TEMPERATURE AND DEW POINT -C - PLOTS ARE IN THE WAY OF PLOTTING WIND FLAGS. -C -C OUTPUT ARGUMENT LIST: -C NWOK - COUNTER OF NUMBER OF LABELS ADDED TO LABEL ARRAY. -C IRET_WNB - RETURN CODE -C = 0; NORMAL RETURN -C = -1; PARITY ERROR WHILE TRYING TO OUTPUT LABEL ARRAY; -C USER SHOULD ABORT ON THIS SERIOUS I/O ERROR. -C = -2; PUTL_WR::HAFPAKRA: FAILED TO HALF-PACK LABEL ARRAY -C SERIOUS ERROR. USER SHOULD ABORT. LOGIC ERR. -C -C = 1; WNDBRK: WARNING ... BAD IDDGD -C = 2; WNDBRK: WARNING ... BAD ISPEED -C = 3; WNDBRK: WARNING ... BAD CUTOFF VALUE -C = 4; WNDBRK: WARNING ... OUT-OF-RANGE FLAG COUNT -C = 5; WNDBRK: WARNING ... LOCATION OFF MAP -C -C INPUT FILES: -C FT55F001 - LABEL FILE. -C -C OUTPUT FILES: -C FT06F001 - PRINT FILE. -C FT55F001 - LABEL FILE. -C -C REMARKS: BLOCK DATA WNDCON IS USED BY THIS SUBR. -C CALLS SUBR PUTL_WR(), WHICH CALLS SUBR HAFPAKRA() -C CAUTION: CALL SEQ. CHANGE WITH ADDED IRET_WNB -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77. -C MACHINE: CRAY4 -C -C $$$ -C -C - - INTEGER LBLTAP - PARAMETER (LBLTAP=55) - - INTEGER LMAX - PARAMETER (LMAX=1024) - INTEGER LMAX2 - PARAMETER (LMAX2=2*LMAX) - - COMMON /KPLOT/ LABEL,LABIX,NOBUF,IDRA(50) - INTEGER LABEL(2,LMAX) - INTEGER JARRAY(LMAX2) - EQUIVALENCE (JARRAY(1),LABEL(1,1)) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - EXTERNAL WNDCON !... FOR COMMON /WINCON/ -C !... DEFINED IN BLOCK DATA WNDCON - COMMON /WINCON/ KWNDFL(5,36),KWNDDV(5,36),KWNDBA(10,9) - INTEGER KWNDFL - INTEGER KWNDDV - INTEGER KWNDBA - -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C USAGE: CALL WNDBRK( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,iret_wnb ) -C INPUT ARGUMENT LIST: - INTEGER ISTN,JSTN -C !... I-,J-COORDINATES OF WIND PLOT IN DOTS. - INTEGER KDDGD -C !... WIND DIRECTION TO NEAREST 10 DEGREES. - INTEGER ISPEED -C !... WIND SPEED IN KNOTS. - INTEGER IOPTN -C !... FLAG TO DETERMINE IF TEMPERATURE AND DEW- -C !... POINT PLOTS ARE IN THE WAY OF PLOTTING -C !... WIND FLAGS. -C -C OUTPUT ARGUMENT LIST: - INTEGER NWOK -C !... COUNTER OF NUMBER OF LABELS ADDED TO -C !... LABEL ARRAY. - INTEGER IRET_WNB -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C - INTEGER IARWUP -C ...WHICH IS 'ARROW-UP' CHAR FONT CHANGE BIT... - DATA IARWUP / X'00010000' / - - INTEGER IPRBA - DATA IPRBA / X'00006000' / -C ...FOR WIND BARBS/STAFF ... PRIORITY = 3, NO 'ARROW-UP' BIT... - - INTEGER IPRFL(2) - DATA IPRFL /X'00014000',X'00018000'/ -C ... WHERE IPRFL IS PRIORITY ASSIGNED TO WIND-FLAG FONT .... -C ... WHICH ARE 'ARROW UP' BIT AND PRIORITY = 2 AND 4 -C ... WHERE IPRFL ALSO INCLUDES ARROW-UP FOR WIND-FLAG FONT ... - - - INTEGER IRUBA - DATA IRUBA / X'01200000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=01 FOR ERASER UNDER FLAG - - INTEGER IRUBB - DATA IRUBB / X'14010000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=20 FOR ERASER UNDER BARB - - INTEGER IRUBC - DATA IRUBC / X'03200000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=03 FOR ERASER UNDER FLAG - - INTEGER IXXK - DATA IXXK / 5 / -C ...WHICH IS THE XXTH LOOK TABLE BEFORE THE WIND-FLAG FONTS - - INTEGER ICORN - DATA ICORN /0/ - - integer ICORNFLAG(2) - DATA ICORNFLAG / -1, 0 / -C ... WHERE ICORNFLAG(IHEMIS) MOVES NRN HEMI WIND-FLAG LEFTWARD -1 -C ... BUT SRN HEMI WIND-FLAG NEEDS NO ADJ - - INTEGER ILLIM - DATA ILLIM / 10 / - INTEGER IRLIM - DATA IRLIM / 4000 / - INTEGER JLLIM - DATA JLLIM / 1 / - INTEGER JTLIM - DATA JTLIM / 7020 / - -C ... TO CONVERT WIND DIRECTION INT DD INTO AN ASCII CHAR -C ... WHICH WILL GET THE CORRECT BIT-MAPPED CHARAC ... -C ... TO CONVERT A BINARY INT X'01' ==> 'A' -C X'1A' ==> 'Z' -C X'1B' ==> '0' -C X'24' ==> '9' - CHARACTER*1 CTTBL(36) -C ... 01 02 03 04 05 06 07 08 09 ... - DATA CTTBL / 'A','B','C','D','E','F','G','H','I', - 1 'J','K','L','M','N','O','P','Q','R', - 2 'S','T','U','V','W','X','Y','Z','0', - 3 '1','2','3','4','5','6','7','8','9' / -C ... 28 29 30 31 32 33 34 35 36 ... - - INTEGER KDOLR(4) - DATA KDOLR /X'00000000',X'00000000', - X X'00000000',X'00000000'/ -C ...WHICH IS NULL IN 4 BYTE POSITIONS... - - INTEGER KDEWPT - DATA KDEWPT / X'00000008' / -C ...DEW POINT PLOT INFO BIT... - INTEGER KTEMP - DATA KTEMP / X'00000004' / -C ...TEMP PLOT INFO BIT... - - INTEGER KDR220 - DATA KDR220 /22/ - INTEGER KDR260 - DATA KDR260 /26/ - INTEGER KDR300 - DATA KDR300 /30/ -C ...WIND DIR LIMITS OF WIND OVERPLOTTED BY DEW PT, TEMP... - - - INTEGER LGAPK(5,8) - DATA LGAPK / -7,-8,-11,-8,X'09410000', - 1 -9,-7,-11,-8,X'09420000', - 2 -10,-6,-11,-8,X'09430000', - 3 -11,-4,-11,-5,X'07440000', - 4 -11,-2,-11,-5,X'07450000', - 5 -11, 0,-11, 0,X'07460000', - 6 -11, 2,-11, 0,X'07470000', - 7 -10, 4,-11, 0,X'07480000'/ -C ...PENTAPACKED /IGAP,JGAP ORIGIN DISPLACEMENTS FOR OTHER WND PART/ -C ...DI,DJ TO LL FOR GAP FILLER LINE CHAR/LABEL TEXT FOR GAP FILLER/ - - - INTEGER ISDIF(4) - DATA ISDIF / 6, 12, 9, 12 / -C ... DISPLACEMENTS FOR REVERSED WIND FLAGS USED IN SOUTHERN -C ... HEMISPHERE IN ORDER BY FLAG TYPE ... - - INTEGER LSDI(36) - DATA LSDI / +2, +1, +1, +3, +5,+09, +7, +5, +5, - 1 +4, +5, +6,+12,+15,+18,+21,+20,+20, - 2 +20,+21,+18,+15,+14, +7, +6, +6, +5, - 3 +6, +8, +9, +6, +3, +1, +1, +3, +2 / -C -C ... FURTHER DISPLACEMENTS TO ADJUST SOUTHERN HEMISPHERE WIND FLAGS -C - - INTEGER MSK16B - DATA MSK16B / X'0000FFFF' / - - INTEGER MSKI - DATA MSKI / X'00001FFF' / -C ...WHERE MSKI ALLOWS 13 BITS ... - - INTEGER MSKJ - DATA MSKJ / X'00007FFF' / -C ...WHERE MSKJ ALLOWS FOR 15 BITS... - - INTEGER MXKUT - DATA MXKUT / 120 / -C - LOGICAL LPACK_RAQ - LOGICAL LCLEAN_AFTQ - - INTEGER IACC,MQ -C - INTEGER KUTOFF - - INTEGER LABWOK(2,15) - - INTEGER IJWRD_ERAB - INTEGER ITXTWRD_ERAB - -C -C--------------------------------------------------------------------- - SAVE -C - NWOK = 0 - IRET_WNB = 0 - -C ... SET NORTHERN HEMISPHERE FLAG = 1 - IHEMIS = 1 !... NORTHERN HEMISPHERE MODE - IDDGD = KDDGD -C ... IT IS ASSUMED THAT A ZERO OCCURS FOR WIND DIRECTION ONLY -C ... IN THE NORTHERN HEMISPHERE (I.E. IDDGD = +0) - IF ( IDDGD .EQ. 0 ) IDDGD = 36 - IF ( IDDGD .GE. 0 ) GO TO 100 - -C ... OTHERWISE, IDDGD .LT. 0; WHICH FLAGGED SOUTHERN HEMI MODE -C ... SET SOUTHERN HEMISPHERE FLAG = 2 - IHEMIS = 2 !... SOUTHERN HEMISPHERE MODE - IDDGD = IABS(IDDGD) -C ... SAVE FOR POSITIONING FLAGS - LDDSH = IDDGD -C ... IDDSH POINTS TO VECTOR WHICH WHEN REVERSED WILL BE THE -C ... SOUTHERN HEMISPHERE VECTOR FOR IDDGD ... - IDDSH = 36 - IDDGD - IF ( IDDSH .EQ. 0 ) IDDSH = 36 - 100 CONTINUE - IF(IDDGD .GT. 36) GO TO 911 - IF(ISPEED .LT. 0) GO TO 922 - IF(ISPEED .GT. 300) GO TO 922 -C ...STEP (1)... TO DETERMINE NO. OF FLAGS AND NO. OF BARBS...... - FFIVES = (FLOAT(ISPEED))/5.0 - IFIVES = FFIVES + 0.5 -C ...WHICH ROUNDS TO NEAREST 5-KNOT-UNIT AND FIXES - NFLAGS = IFIVES/10 - NBARBS = MOD(IFIVES,10) -C ...WHERE NO. OF BARBS RANGES FROM 0 TO 9 (FOR NONE TO 45K) -C ...STEP(1B) ... TEST FOR MOVING WIND VECTOR PLOT FOR OVERPLOT - IGAP = 0 - JGAP = 0 - IF(NBARBS .LE. 2) GO TO 177 -C -C ... IF WIND DIR LESS THAN 220 DEGREES, THEN SKIP TO 177 ... -C - IF(IDDGD .LT. KDR220) GO TO 177 -C -C ... IF WIND DIR LESS THAN 260 DEGREES, THEN SKIP TO 140 ... -C ... AND CHECK TO SEE IF THE DEW POINT PLOT FLAG IS SET. -C - IF(IDDGD .LT. KDR260) GO TO 140 -C -C ...IF WIND DIR LESS THAN 300 DEGREES, THEN SKIP TO 144 ... -C ... AND CHECK TO SEE IF THE TEMP PLOT FLAG IS SET. -C - IF(IDDGD .LT. KDR300) GO TO 144 - GO TO 177 - - 140 CONTINUE -C ... GET DEW POINT PLOT FLAG ... - IAC3 = IAND(IOPTN,KDEWPT) - IF(IAC3)150,177,150 - - 144 CONTINUE -C ... GET TEMP PLOT FLAG. - IAC4 = IAND(IOPTN,KTEMP) - IF(IAC4) 150,177,150 - 150 CONTINUE -C ...COMES HERE IF WIND BARBS MUST BE MOVED WESTWARD TO NOT OVERPLOT - LLX = IDDGD - KDR220 + 1 - IGAP = LGAPK(1,LLX) - JGAP = LGAPK(2,LLX) - ILL = LGAPK(3,LLX) + ISTN - JLL = LGAPK(4,LLX) + JSTN - ITEXT = LGAPK(5,LLX) - ILL = ILL + ICORN - - IF(ILL .LT. ILLIM) GO TO 955 - IF(ILL .GE. IRLIM) GO TO 955 - IF(JLL .LT. JLLIM) GO TO 955 - IF(JLL .GE. JTLIM) GO TO 955 - - JLL = IAND(JLL,MSKJ) - ILL = IAND(ILL,MSKI) - JLS = ISHFT(JLL,17) - IJLL = IOR(JLS,ILL) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR(IJLL,IPRFL(1)) - LABWOK(2,NWOK) = ITEXT - - 177 CONTINUE - -C ....STEP (2) ... TO GET CUT-OFF CONSTANT FOR BARBS... - NBONE = NBARBS + 1 - IF(IHEMIS .EQ. 2) IDDGD = IDDSH - IHOLD = MOD(IDDGD,9) - IHOLD = IHOLD + 1 - KUTOFF = KWNDBA(NBONE,IHOLD) - IF(KUTOFF .LT. 0) GO TO 933 - IF(KUTOFF .GT. MXKUT) GO TO 933 - IF(IHEMIS .EQ. 2) KUTOFF = -KUTOFF - IACC = IAND(IDDGD,MSK16B) - IACC = ISHFT(IACC,16) - MQ = IAND(KUTOFF,MSK16B) - IACC = IOR(IACC,MQ) - ITEXT = IACC -C ...STAFF INFO PACKED WITH DD IN FIRST 2 BYTES, KUTOFF RIGHT-JUSTIF - -C ...STEP (3)... TO POSITION STAFF WITH LOWER LEFT CORNER.... -C ...KWNDDV FORMAT ... ISTART,JSTART,KWIDTH,KHGT,MXV... - ISTART = KWNDDV(1,IDDGD) - JSTART = KWNDDV(2,IDDGD) - KWIDTH = KWNDDV(3,IDDGD) - IF ( IHEMIS .EQ. 2 ) ISTART = KWIDTH - ISTART - ILL = ISTN - KWIDTH + ISTART - ILL = ILL + IGAP + ICORN - IF(ILL .LT. ILLIM) GO TO 955 - IF(ILL .GE. IRLIM) GO TO 955 - - JLL = JSTN - JSTART + 1 - JLL = JLL + JGAP - IF(JLL .LT. JLLIM) GO TO 955 - IF(JLL .GE. JTLIM) GO TO 955 - - JLL = IAND(JLL,MSKJ) - ILL = IAND(ILL,MSKI) - JLS = ISHFT(JLL,17) - IJLL = IOR(JLS,ILL) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR(IJLL,IPRBA) !... there goes BARBS - LABWOK(2,NWOK) = ITEXT - -C ... insert the eraser under the BARBs ... - IJWRD_ERAB = 0 - IJWRD_ERAB = IOR(IJLL,IARWUP) - ITXTWRD_ERAB = IRUBB - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IJWRD_ERAB !... ERASER UNDER BARB -cc LABWOK(2,NWOK) = ITXTWRD_ERAB -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IF(NFLAGS .LE. 0) GO TO 500 - -C ...OTHERWISE, WE HAVE SOME FLAGS TO POSITION... -C STEP (4)... TO GET FLAG INFO FOR PRTITL -C ...DI TO LL,DJ TO LL,DI TO NEXT FLAG, DJ TO NEXT, FLAG TYPE. - ITYPFL = KWNDFL(5,IDDGD) - ISDI = KWNDFL(1,IDDGD) - IF(IHEMIS .EQ. 2) THEN - ISDI = KWNDFL(1,LDDSH) - ISDIF(ITYPFL) + LSDI(LDDSH) - ENDIF - - ILLFL = ISTN + ISDI - ILLFL = ILLFL + IGAP + ICORN - ILLFL = ILLFL + ICORNFLAG(IHEMIS) - JLLFL = JSTN + KWNDFL(2,IDDGD) - JLLFL = JLLFL + JGAP - IF(ILLFL .LT. ILLIM) GO TO 955 - IF(ILLFL .GE. IRLIM) GO TO 955 - IF(JLLFL .LT. JLLIM) GO TO 955 - IF(JLLFL .GE. JTLIM) GO TO 955 - JLLFL = IAND( JLLFL,MSKJ) - ILLFL = IAND( ILLFL,MSKI) - JLS = ISHFT(JLLFL,17) - IJLFL = IOR(JLS,ILLFL) - IPOSN = IOR(IJLFL,IPRFL(IHEMIS)) - -C ...STEP (5)... TO GET TEXT FOR FLAG - ICLASS = IXXK + KWNDFL(5,IDDGD) -C ...WHERE ICLASS IS USED (R1) AFTER ARROW TO POINT TO TABLE IN PRT - -C ================================================================== - IACC = ISHFT(ICLASS,24) - - MQ = MOVA2I(CTTBL(IDDGD)) !... TRANSLATE DD-BINARY TO ASCII CHAR - IAC2 = ISHFT(MQ,16) !... MOVE TO 2ND BYTE FROM HI-END OF I*2 - IACC = IOR(IACC,IAC2) - ITEXT = IOR(IACC,KDOLR(3)) -C ================================================================== - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IPOSN - LABWOK(2,NWOK) = ITEXT - -C ...TO ERASE UNDER 50K FLAG - IAPCT = IRUBA - ILLER = ILLFL - JLLER = JLLFL - IJLER = IJLFL - -C ... GO TO (415,419,426,424),ITYPFL - IF(ITYPFL .EQ. 1) THEN - ILLER = ILLFL - 2 - IF(ILLER .LE. 0) THEN - ILLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - - ELSE IF(ITYPFL .EQ. 2) THEN - IAPCT = IRUBC - JLLER = JLLFL - 2 - IF(JLLER .LE. 0) THEN - JLLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - - ELSE IF(ITYPFL .EQ. 3) THEN - GO TO 426 - - ELSE IF(ITYPFL .EQ. 4) THEN - IAPCT = IRUBC - ENDIF - GO TO 426 - - 426 CONTINUE - IJLER = IOR(IJLER,IARWUP) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IJLER - LABWOK(2,NWOK) = IAPCT - IF(NFLAGS .LE. 1) GO TO 500 - -C ...STEP (6) TO GET FLAGS FOR 100KT AND UP... - NEXDI = KWNDFL(3,IDDGD) - IF ( IHEMIS .EQ.2 ) NEXDI = -NEXDI - NEXDJ = KWNDFL(4,IDDGD) - MORE = NFLAGS - 1 - IF(MORE .GT. 5) GO TO 944 - DO 433 I=1,MORE - ILLFL = ILLFL + NEXDI - JLLFL = JLLFL + NEXDJ - IF(ILLFL .LT. ILLIM) GO TO 955 - IF(ILLFL .GE. IRLIM) GO TO 955 - IF(JLLFL .LT. JLLIM) GO TO 955 - IF(JLLFL .GE. JTLIM) GO TO 955 - - JLLFL = IAND(JLLFL,MSKJ) - ILLFL = IAND(ILLFL,MSKI) - JLS = ISHFT(JLLFL,17) - IJLFL = IOR(JLS,ILLFL) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR( IJLFL,IPRFL(IHEMIS) ) - LABWOK(2,NWOK) = ITEXT - -C ...NOW FOR THE ERASER UNDER THAT FLAG... - ILLER = ILLER + NEXDI - IF(ILLER .LE. 0) THEN - ILLER = 1 - ENDIF - JLLER = JLLER + NEXDJ - IF(JLLER .LE. 0) THEN - JLLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR(IJLER,IARWUP) - LABWOK(2,NWOK) = IAPCT - 433 CONTINUE -C ...WHEN IT FALLS OUT OF THIS LOOP, ALL FINISHED - GO TO 500 - - 500 CONTINUE -C ...COMES HERE TO TRANSFER FROM LABWOK TO LABEL AND OUTPUT IF NECES - IF((LABIX+NWOK) .LE. LMAX) THEN - DO ISS = 1,NWOK - LABIX = LABIX + 1 - LABEL(1,LABIX) = LABWOK(1,ISS) - LABEL(2,LABIX) = LABWOK(2,ISS) - ENDDO - GO TO 999 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ELSE -C ...OTHERWISE IT WILL EXCEED LABEL BUFFER, SO TEST EACH WORD. - DO 522 ISS = 1,NWOK - LABIX = LABIX + 1 -c write(*,*) 'test1', ISS, LABIX - IF(LABIX .LE. LMAX) THEN - GO TO 520 - - ELSE -C ... OTHERWISE, BIN IS FULL, SO OUTPUT THE FULL BIN -C ... AND CLEAR THE BIN BEFORE PASSING THIS ISS-TH ITEM - WRITE(6,503) - 503 FORMAT(1H ,'WNDBRK: LABEL ARRAY FULL' ) - LCKPT = 503 - LPACK_RAQ = .TRUE. - LCLEAN_AFTQ = .TRUE. -C ... ZERO THE IN-CORE LABEL-ARRAY AFTER WRITING ... -C ... FOR CRAY VERSION, I MUST HALF-PACK BEFORE WRITING, - print*,'In wndbrk.f JARRAY prior to PUTL_WR' - write(*,'(8I10)')JARRAY - CALL PUTL_WR(LBLTAP,NOBUF,JARRAY,LMAX2,LMAX,LPACK_RAQ, - 1 LCLEAN_AFTQ,IRET101) - IF(IRET101 .NE. 0) THEN - IF(IRET101 .EQ. -1) THEN - GO TO 900 - ELSE - WRITE(6,FMT='(1H ,''WNDBRK::PUTL_WR::HAFPAKRA: '', - 1 ''FAILED WHEN HAF-PACKING LABEL ARRAY'' - 2 )') - IRET_WNB = -2 - GO TO 966 - ENDIF - ENDIF -C - LABIX = 1 - ENDIF - - 520 CONTINUE -C ... TO MOVE THE ISS-TH ITEM FROM LABWOK INTO THE LABEL ARRAY - LABEL(1,LABIX) = LABWOK(1,ISS) - LABEL(2,LABIX) = LABWOK(2,ISS) - 522 CONTINUE - GO TO 999 - ENDIF - GO TO 999 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 900 CONTINUE -C ... PARITY ERROR ON WRITING LABEL TAPE55 ... - WRITE(6,905) LBLTAP,NOBUF,LABIX,LCKPT - 905 FORMAT(1H ,'WNDBRK:PARITY ERROR WRITING LABEL-TAPE',I2, - 1 /1H ,7X,'NOBUF=',I5,'; LABIX=',I5,'; LCKPT=', I3) - - IRET_WNB = -1 - GO TO 966 -C ... - - 911 CONTINUE - IRET_WNB = 1 - WRITE(6,913) IDDGD,ISTN,JSTN,ISPEED - 913 FORMAT(1H ,'WNDBRK ERROR 1...BAD IDDGD = Z ',Z16, 3X, - 1 'AT I/J = Z ', Z16,1H/, Z16, 3X, 'SPEED = Z ',Z16) - GO TO 966 - - 922 CONTINUE - IRET_WNB = 2 - WRITE(6,924) ISPEED, ISTN, JSTN, IDDGD - 924 FORMAT(1H ,'WNDBRK ERROR 2...BAD ISPEED = Z ', Z16, 3X, - 1 'AT I/J = Z ', Z16, 1H/, Z16, 3X, 'IDDGD = ', Z16) - GO TO 966 - - 933 CONTINUE - IRET_WNB = 3 - WRITE(6,935) KUTOFF,ISTN,JSTN,IDDGD,ISPEED - 935 FORMAT(1H ,'WNDBRK ERROR 3...BAD CUTOFF CONST FOR WND STAFF = - 1 Z ', Z16, 3X, 'AT I/J = Z ', Z16,1H/,Z16,3X, 'DIR/SPD = Z', Z16, - 2 1H/, Z16) - GO TO 966 - - 944 CONTINUE - IRET_WNB = 4 - WRITE(6,946) NFLAGS, ISTN,JSTN,IDDGD,ISPEED - 946 FORMAT(1H ,'WNDBRK ERROR 4...OUT-OF-RANGE FLAG COUNT = Z', - 1 Z16, 3X, 'AT I/J = Z ', Z16,1H/,Z16,3X,'DIR/SPD = Z ', Z16, - 2 1H/, Z16) - GO TO 966 - 955 CONTINUE -C COMES TO 955 IF I/J IS OUT OF RANGE OF MAP - IRET_WNB = 5 -c write(*,*) 'test1', LABIX - WRITE(6,957) ISTN, JSTN, IDDGD, ISPEED - 957 FORMAT(1H ,'WNDBRK ERROR 5...LOCATION OFF MAP. ISTN = Z ', - 1 Z16, 3X, 'JSTN = Z ', Z16, 3X, 'DIR/SPD = Z ', Z16, 1H/, Z16) - GO TO 966 - 966 CONTINUE - NWOK = 0 - GO TO 999 - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/terrain.fd/makefile.sh b/util/sorc/terrain.fd/makefile.sh index 1e8f4b3fb6..d1b5f5bc34 100755 --- a/util/sorc/terrain.fd/makefile.sh +++ b/util/sorc/terrain.fd/makefile.sh @@ -16,10 +16,6 @@ elif [ $machine = WCOSS_C ] ; then FFOPTS="-i4 -O3 -r8 -convert big_endian -fp-model precise -openmp" LIBS="${W3EMC_LIBd} ${W3NCO_LIBd} ${BACIO_LIB4} ${SP_LIBd}" LDOPTS="-openmp -mkl" -elif [ $machine = THEIA ] ; then - CF=ftn - FFOPTS="-i4 -O3 -r8 -convert big_endian -fp-model precise -openmp" - LIBS="${W3EMC_LIBd} ${W3NCO_LIBd} ${BACIO_LIB4} ${SP_LIBd}" fi f=mtnlm7_slm30g.f diff --git a/util/sorc/trpanl.fd/CLOSEF.f b/util/sorc/trpanl.fd/CLOSEF.f deleted file mode 100755 index 29a07e4daf..0000000000 --- a/util/sorc/trpanl.fd/CLOSEF.f +++ /dev/null @@ -1,177 +0,0 @@ - SUBROUTINE CLOSEF(Z,Z1,IMAX,JMAX,S,A,B,M,IX,JY,LPLMI,IFF, - 1 IUP,LOX,ITABMB,ITABFL,MXITR) -C 00217400 -C ...THIS SUBROUTINE FINDS ALL OF THE CONTOUR POSITIONS IN FIELD Z 00217500 -C ...ALONG THE FIXED JY STRIP AND THEN USES THE POSITIONS FOR EACH 00217600 -C ...TO FIND THE CORRESPONDING POSITION AND VALUE IN FIELD Z1, 00217700 -C ...THESE VALUES ARE FORMATTED AND STORED IN THE LIST ARRAY FOR 00217800 -C ...PROCESSING AT CNTR TIME. 00217900 -C 00218000 - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON/ADJ4/IRTCOR,IUPCOR - DIMENSION Z(IMAX,JMAX) - DIMENSION Z1(IMAX,JMAX) - DIMENSION IFF(5) - DIMENSION ITEXT(3),JTEXT(3) - character*8 citext(3),cjtext(3) - equivalence(citext,itext) - equivalence (cjtext,jtext) - DIMENSION ITABMB(MXITR),ITABFL(MXITR) - REAL IDEF,KDEF1,KDEF2,KDEF3,KDEF4,INDEF - DATA INDEF/Z'7FFFFFFFFFFFFFFF'/ - DATA ITEXT/3*0/ - DATA IKCIR/-10/ - DATA JKCIR/-2/ - DATA IBOX/2H)$/ - - character*8 cibox - equivalence(cibox,ibox) -C ...WHERE ITABMB CONTAINS THE MATCH VALUE AND ITABFL THE LABEL ITSF00219400 - print *,' 9999 ENTERING CLOSEF' - KCON4=20 - JMIN=1 - 6 KBEG=IX - KLIM=IX+IUP - IJFIX=JY - 10 Q=S*20. - REM=1. - KCON6=FLOAT(IJFIX-1)*Q*3.0 -C ...WHERE KCON6 IS TRUE LOCN (IN DOTS) OF THE PT ON FIXED COORD. 00220300 - JCAL1=KCON6+IUPCOR -C ...THIS JCAL1 IS IDOTS FOR PUTLAB FOR CONST J CASE, BUT NOT FOR I 00220500 - Q1=1./(2.*Q*Q) - Q2=(Q+1.)/2. - Q3=1./Q - N=10 - KLAST=0 - KSTART=KBEG - DO 11 K=KBEG,KLIM - IDEF=Z(K,IJFIX) - IF(IDEF.NE.INDEF) GO TO 12 - KSTART=KSTART+1 - 11 CONTINUE - GO TO 500 - 12 L=Z(KSTART,IJFIX)+10000. - 20 DO 200 K=KSTART,KLIM - Q4=REM/2. - Q5=1.-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) -C 00222500 -C ...CHECK FOR IMBEDDED GRID 00222600 -C 00222700 - KDEF1=Z(K,IJFIX) - KDEF2=Z(K+1,IJFIX) - KDEF3=Z(K-1,IJFIX) - KDEF4=Z(K+2,IJFIX) - YD2=0 - IF(KDEF1.EQ.INDEF) GO TO 21 - IF(KDEF2.EQ.INDEF) GO TO 21 - IF(KDEF3.EQ.INDEF) GO TO 21 - IF(KDEF4.EQ.INDEF) GO TO 21 - YD2=(Z(K+2,IJFIX)-Z(K+1,IJFIX)-Z(K,IJFIX)+Z(K-1,IJFIX))*Q1 - 21 IF(KDEF1.EQ.INDEF) GO TO 200 - IF(KDEF2.EQ.INDEF) GO TO 200 - YD1=(Z(K+1,IJFIX)-Z(K,IJFIX))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(K,IJFIX)+Q5*Q4*YD1+10000. - 35 DO 130 KK=1,IINC - MM=YVAL - IF((MM-L).EQ.0) GO TO 125 -C 00224500 -C ...COMPUTE A LABEL 00224600 -C 00224700 - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - KCON7=FLOAT(K-1)*Q*3.0 - ICAL=KCON7+KCON1+IRTCOR - ILLCIR=ICAL+IKCIR - JLLCIR=JCAL1+JKCIR -C 00225500 -C ...CALCULATE POSITION WHERE CONTOUR IN Z FIELD CUTS I GRID, WHERE 00225600 -C ...I CONTOUR CUT=I+IDELI 00225700 -C ...ADJUST FIELD Z1 VALUE USING STIRLING INTERPOLATION SOLVE FOR 00225800 -C ...DELI ONLY SINCE DELJ IS FIXED BECAUSE J IS FIXED ON AN INTEGRAL00225900 -C ...VALUE, THAT IS J=1,JMAX 00226000 -C 00226100 - XKK=KK - XIINC=IINC - DELI=XKK/XIINC - I=K - J=IJFIX - ZDELI=Z1(I,J)+0.5*DELI*(Z1(I+1,J)-Z1(I-1,J))+0.5*DELI*DELI* - 1(Z1(I+1,J)-2.0*(Z1(I,J))+Z1(I-1,J)) - HOLD=(ZDELI+A)*B - ITEXT(1)=SIGN((ABS(HOLD)+0.5),HOLD) - KPOSX=KCON4 - 50 IF((ICAL-KLAST).LT.KPOSX) GO TO 125 - IF(LOX.EQ.1) GO TO 109 -C ...WHICH BRANCHES TO INDIRECT LABELS IF LOX 00227400 - KLAST=ICAL - 55 CONTINUE - 75 CONTINUE - INTG=ITEXT(1) - NCHAR=M -C 00228000 -C ...FORMAT STRIP LABEL FROM CENTER POSITION 00228100 -C 00228200 - 90 CONTINUE -c CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,cJTEXT,NCHAR,LPLMI) - 95 CONTINUE - N=12 - CALL ENCODE(ITEXT(1),N) - WRITE(99,IFF) JTEXT(1) - HT=3.0 - ANGLE=90. - IPR=1 -c CALL PUTLAB(ICAL,JCAL1,HT,ITEXT,ANGLE,N,IPR,ITAPUT) - CALL lPUTLAB(ICAL,JCAL1,HT,cITEXT,ANGLE,N,IPR,ITAPUT) - HT=10.0 - ANGLE=0. - NCHAR=2 -c CALL PUTLAB(ILLCIR,JLLCIR,HT,IBOX,ANGLE,NCHAR,IPRPUT,ITAPUT) - CALL lPUTLAB(ILLCIR,JLLCIR,HT,cIBOX,ANGLE,NCHAR,IPRPUT,ITAPUT) - GO TO 125 -C 00229800 -C ...USE INDIRECT LABELS 00229900 -C 00230000 - 109 CONTINUE - DO 110 ITR=1,MXITR - ITSAVE=ITR - IF(ITABMB(ITR).EQ.ITEXT(1)) GO TO 112 - 110 CONTINUE - GO TO 125 - 112 KLAST=ICAL - ITEXT(1)=ITABFL(ITSAVE) - INTG=ITEXT(1) - NCHAR=M -C 00231100 -C ...FORMAT STRIP LABEL FROM CENTER POSITION 00231200 -C 00231300 - 114 CONTINUE - CALL BIN2EB(INTG,cJTEXT,NCHAR,LPLMI) - 115 CONTINUE - N=12 - CALL ENCODE(ITEXT(1),N) - WRITE(99,IFF)JTEXT(1) - HT=3.0 - ANGLE=90. - IPR=1 -c CALL PUTLAB(ICAL,JCAL1,HT,cITEXT,ANGLE,N,IPR,ITAPUT) - CALL lPUTLAB(ICAL,JCAL1,HT,ITEXT,ANGLE,N,IPR,ITAPUT) - HT=10.0 - ANGLE=0. - NCHAR=2 -c CALL PUTLAB(ILLCIR,JLLCIR,HT,IBOX,ANGLE,NCHAR,IPRPUT,ITAPUT) - CALL lPUTLAB(ILLCIR,JLLCIR,HT,cIBOX,ANGLE,NCHAR,IPRPUT,ITAPUT) - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE - 200 CONTINUE - 500 continue - print *,'EXITING CLOSEF 9999' - RETURN - END diff --git a/util/sorc/trpanl.fd/CLOSES.f b/util/sorc/trpanl.fd/CLOSES.f deleted file mode 100755 index 4cbdd42b5e..0000000000 --- a/util/sorc/trpanl.fd/CLOSES.f +++ /dev/null @@ -1,174 +0,0 @@ - SUBROUTINE CLOSES(Z,IMAX,JMAX,S,A,B,M,IUP,LPLMI,IFF,JSTPK, - 1 JSTPL,LOX,ITABMB,ITABFL,MXITR) -C 00200600 -C ...PURPOSE...A MERCATOR CENTER-FINDER WHICH CALLS SUBR CLOSET 00200700 -C ...AFTER FINDING EACH CENTER IN ORDER TO LABEL CONTOURS 00200800 -C ...IN THE VICINITY OF CENTERS. 00200900 -C ...IUP IS THE DISTANCE (IN GRID INTERVALS) FROM THE CENTER 00201000 -C ...WITHIN WHICH CONTOURS WILL BE LABELLED 00201100 -C ...WHERE LOX=1, SENDS THIS ON TO INDIRECT CONTOUR LABELS 00201200 -C ... LOX=0 MEANS TO PUT REGULAR CONTOUR LABELS ON. 00201300 -C 00201400 - REAL INDEF,KDEF1,KDEF2 - DIMENSION IFF(5) - DIMENSION Z(IMAX,JMAX) - DIMENSION ITABMB(MXITR),ITABFL(MXITR) - DIMENSION MARK4(4) - DIMENSION ZZ(9) - DIMENSION MARKS(50) -C ...WHERE MARKS ARRAY TO KEEP TRACK OF NEARBY CONTOUR LABELS 00202200 - DIMENSION JSTPK(30) -C ...WHERE JSTPK IS AN ARRAY OF J COORDINATES WHICH HAVE STRIP 00202400 -C ...LABELS ALREADY AND DO NOT NEED THESE LABELS. 00202500 -C ...FIRST ZERO ENDS JSTPK LOOK UP. 00202600 - DIMENSION JSTPL(30) -C ...WHERE JSTPL IS A CORRESPONDING ARRAY TO JSTPK GIVING THE 00202800 -C ...NUMBER OF GRID POINTS ON THIS LINE TO RESERVE. 00202900 - DATA INDEF/Z'7FFFFFFFFFFFFFFF'/ - DATA NSK/30/ -C ...WHERE NSK IS DIMENSION OF JSTPK ARRAY OF J ALREADY LABELLED 00203200 - DATA MARK4/Z'4',Z'8',Z'10',Z'20'/ - DATA NFEW/2/ -C 00203500 -C ...INITIALIZE FOR CENTER SEARCH 00203600 -C 00203700 - print *,'ENTERING CLOSES ' - IMIN=1 - JMIN=1 - ILOW=0 - IHIGH=0 - DO 11 I=IMIN,IMAX - MARKS(I)=0 - 11 CONTINUE -C ...TO TEST FOR STRIP LABELLED J ROWS IN FIRST FEW ROWS 00204500 - J=JMIN - DO 16 ILLE=1,NFEW - DO 12 ICK=1,NSK - ICKSV=ICK - IF(JSTPK(ICK).EQ.0) GO TO 15 - IF(J.EQ.JSTPK(ICK)) GO TO 13 - 12 CONTINUE - GO TO 15 -C ...COMES TO 13 IF MATCHING J FOUND 00205400 - 13 CONTINUE - IMAD=JSTPL(ICKSV) - IF(IMAD.LE.0) GO TO 15 - IF(IMAD.GT.IMAX) IMAD=IMAX - DO 14 IMA=IMIN,IMAD - MARKS(IMA)=LOR(MARKS(IMA),MARK4(ILLE)) - 14 CONTINUE - 15 J=J+1 - 16 CONTINUE -C 00206400 - DO 105 J=JMIN,JMAX - JP2=J+NFEW -C ...TEST FOR STRIP LABELS ALREADY ON JP2 ROW 00206700 - DO 20 ICK=1,NSK - ICKSV=ICK - IF(JSTPK(ICK).EQ.0) GO TO 27 - IF(JP2.EQ.JSTPK(ICK)) GO TO 22 - 20 CONTINUE - GO TO 27 - 22 CONTINUE - IMAD=JSTPL(ICKSV) - IF(IMAD.LE.0) GO TO 27 - IF(IMAD.GT.IMAX) IMAD=IMAX - DO 24 IMA=IMIN,IMAD - MARKS(IMA)=LOR(MARKS(IMA),MARK4(3)) - 24 CONTINUE - IF(IMAD.GE.IMAX) GO TO 101 -C ...WHICH SKIPS CENTERFINDING IN THIS J ROW BECAUSE OF STIP LABELS 00208200 - 27 CONTINUE - DO 100 I=IMIN,IMAX -C 00208500 -C ...TEST FOR BORDER VALUES 00208600 -C 00208700 - IF(I.LE.IMIN+1.OR.I.GE.IMAX-1) GO TO 100 - IF(J.LE.JMIN+1.OR.J.GE.JMAX-4) GO TO 100 -C 00209000 - ZZ(1)=Z(I,J) - ZZ(2)=Z(I+1,J) -C 00209300 -C ...TEST FOR UNDEFINED VALUES 00209400 -C 00209500 - KDEF1=ZZ(1) - KDEF2=ZZ(2) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - ZZ(3)=Z(I+1,J+1) - ZZ(4)=Z(I,J+1) - ZZ(5)=Z(I-1,J+1) - ZZ(6)=Z(I-1,J) - ZZ(7)=Z(I-1,J-1) - ZZ(8)=Z(I,J-1) - ZZ(9)=Z(I+1,J-1) -C 00210600 -C ...TEST FOR LOW CENTER 00210700 -C 00210800 - IF(ZZ(1).GE.ZZ(2)) GO TO 30 -C ...OTHERWISE TEST FOR LOW CENTER 00211000 - DO 29 IST=3,9 - KDEF1=ZZ(IST) - IF(KDEF1.EQ.INDEF) GO TO 100 - IF(IST.GE.6) GO TO 28 -C ...WAS .LT.6) 00211500 - IF(ZZ(1).GE.ZZ(IST)) GO TO 100 - GO TO 29 - 28 IF(ZZ(1).GT.ZZ(IST)) GO TO 100 - 29 CONTINUE -C ...WHEN IT FALLS THRU THIS LOOP, A LOW CENTER HAS BEEN FOUND 00212000 -C 00212100 -C ...FOUND LOW CENTER 00212200 -C 00212300 - ITYPE=1 - ILOW=ILOW+1 - GO TO 50 -C 00212700 -C ...TEST FOR HIGH CENTER 00212800 -C 00212900 - 30 CONTINUE - DO 33 IST=2,9 - KDEF1=ZZ(IST) - IF(KDEF1.EQ.INDEF) GO TO 100 - IF(IST.GE.6) GO TO 32 - IF(ZZ(1).LE.ZZ(IST)) GO TO 100 - GO TO 33 - 32 IF(ZZ(1).LT.ZZ(IST)) GO TO 100 - 33 CONTINUE -C 00213900 -C ...FOUND HIGH CENTER 00214000 -C 00214100 - ITYPE=2 - IHIGH=IHIGH+1 - 50 CONTINUE -C 00214500 -C ...FOUND CENTER-GO GET CONTOUR LABEL 00214600 -C 00214700 - IFIX=I - JFIX=J - I2=IFIX+IUP - DO 70 IMI=IFIX,I2 - IF(IMI.GT.IMAX) GO TO 72 - IF(MARKS(IMI).NE.0) GO TO 100 -C ...SKIPS CONTOUR LABELLING FOR THIS CENTER IF OTHERS TOO CLOSE 00215400 - 70 CONTINUE -C ...ALL CLEAR FOR CONTOUR LABELS, ENTER MARKS FOR THIS SET. 00215600 - 72 DO 74 IMI=IFIX,I2 - IF(IMI.GT.IMAX) GO TO 75 - MARKS(IMI)=LOR(MARKS(IMI),MARK4(1)) - 74 CONTINUE - 75 CONTINUE - print * ,' 9999 CLOSET FROM CLOSES' - CALL CLOSET(Z,IMAX,JMAX,S,A,B,M,IUP,IFIX,JFIX,LPLMI,IFF, - 1 LOX,ITABMB,ITABFL,MXITR) - print * ,' 9999 exiting CLOSET FROM CLOSES' - 100 CONTINUE - 101 DO 102 IMA=IMIN,IMAX -c MARKS(IMA)=SHFTR(MARKS(IMA),1) - MARKS(ima)=ishft(marks(ima),-1) - 187 format(3z20) - 102 CONTINUE -C ...WHICH PUSHES DOWN THE STACK OF MARKS OFF END 00216800 - 105 CONTINUE - print *, 'DONE WITH CLOSES 9999' - RETURN - END diff --git a/util/sorc/trpanl.fd/CLOSET.f b/util/sorc/trpanl.fd/CLOSET.f deleted file mode 100755 index fab46aad28..0000000000 --- a/util/sorc/trpanl.fd/CLOSET.f +++ /dev/null @@ -1,181 +0,0 @@ - SUBROUTINE CLOSET(Z,IMAX,JMAX,S,A,B,M,IUP,IX,JY,LPLMI,IFF,LOX, - 1 ITABMB,ITABFL,MXITR) -C 00326600 -C ...THIS SUBROUTINE FINDS THE NEAREST CONTOUR LABEL ABOVE A 00326700 -C ...FIXED I,J POSITION IN THE GIVEN ARRAY. THIS FIXED POSITION 00326800 -C ...IS THE GRID POINT USED TO FIND THE VALID CENTER IN THE GIVEN 00326900 -C ...ARRAY 00327000 -C 00327100 - character*3 lplmi - character*90 cifile - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON/ADJ5/IRTKOR,IUPKOR - DIMENSION Z(IMAX,JMAX) - DIMENSION ITABMB(MXITR),ITABFL(MXITR) -C ...WHERE ITABMB CONTAINS THE MATCH VALUE AND ITABFL THE LABEL ITSF00327600 - DIMENSION IFF(5) - character*40 ciff - dimension ifform(5) - equivalence (ciff,ifform) - DIMENSION ITEXT(3),JTEXT(3) - character*8 cjtext(3) - equivalence (cjtext,jtext) - character*8 ctext(3) - character*12 ctext12 - equivalence (ctext,itext) -cccc equivalence (ctext12,ctext) - REAL INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 - DATA INDEF/Z'7FFFFFFFFFFFFFFF'/ - DATA ITEXT/3*0/ - print *,' ENTERING CLOSET 9999' - print *,'S=',S - print *,'A=',a - print *,'b=',b - print *,'m=',m - print *,'iup=',iup - print *,'ix =',ix - print *,'iy =',jy - print *,'lox= =',lox - do 1,k=1,5 - 1 ifform(k)=iff(k) - KCON4=20 - JMIN=1 - KBEG=IX - KLIM=IX+IUP - IJFIX=JY - Q=S*20. - REM=1. - KCON6=FLOAT(IJFIX-1)*Q*3.0 -C ...WHERE KCON6 IS TRUE LOCN(IN DOTS) OF THE PT. ON FIXED COORD. 00329000 - JCAL1=KCON6+IUPKOR -C ...THIS JCAL1 IS IDOTS FOR PUTLAB FOR CONST J CASE, BUT NOT FOR I 00329200 - Q1=1./(2.*Q*Q) - Q2=(Q+1.)/2. - Q3=1./Q - N=10 - KLAST=0 - KSTART=KBEG - DO 11 K=KBEG,KLIM - IDEF=Z(K,IJFIX) - IF(IDEF.NE.INDEF) GO TO 12 - KSTART=KSTART+1 - 11 CONTINUE - GO TO 500 - 12 L=Z(KSTART,IJFIX)+10000. - DO 200 K=KSTART,KLIM - Q4=REM/2. - Q5=1.-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) -C 00331200 -C ...CHECK FOR IMBEDDED GRID 00331300 -C 00331400 - KDEF1=Z(K,IJFIX) - KDEF2=Z(K+1,IJFIX) - KDEF3=Z(K-1,IJFIX) - KDEF4=Z(K+2,IJFIX) - YD2=0 - IF(KDEF1.EQ.INDEF) GO TO 21 - IF(KDEF2.EQ.INDEF) GO TO 21 - IF(KDEF3.EQ.INDEF) GO TO 21 - IF(KDEF4.EQ.INDEF) GO TO 21 - YD2=(Z(K+2,IJFIX)-Z(K+1,IJFIX)-Z(K,IJFIX)+Z(K-1,IJFIX))*Q1 - 21 IF(KDEF1.EQ.INDEF) GO TO 200 - IF(KDEF2.EQ.INDEF) GO TO 200 - YD1=(Z(K+1,IJFIX)-Z(K,IJFIX))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(K,IJFIX)+Q5*Q4*YD1+10000. - DO 130 KK=1,IINC - MM=YVAL - IF((MM-L).EQ.0) GO TO 125 -C 00333200 -C ...COMPUTE A LABEL 00333300 -C 00333400 - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - KCON7=FLOAT(K-1)*Q*3.0 - ICAL=KCON7+KCON1+IRTKOR - HOLD=(XVAL+A)*B - ITEXT(1)=SIGN((ABS(HOLD)+0.5),HOLD) - KPOSX=KCON4 - IF((ICAL-KLAST).LT.KPOSX) GO TO 125 - IF(LOX.EQ.1) GO TO 109 - KLAST=ICAL - 55 CONTINUE - 75 CONTINUE - INTG=ITEXT(1) - NCHAR=M -C 00335000 -C ...FORMAT STRIP LABEL FROM CENTER POSITION 00335100 -C 00335200 - 90 CONTINUE -c CALL BIN2EB(INTG,CJTEXT,NCHAR,'I99') - CALL BIN2EB(INTG,CJTEXT,NCHAR,LPLMI) - 95 CONTINUE - N=12 -c CALL ENCODE(ITEXT(1),N) - write(cifile,1956) itext(1) - 1956 format(i3) - Print *,' 9999 CIFF',ciff - write(ctext12,ciff ) cifile -c ctext12(1:8)=ctext(1)(1:8) - WRITE(99,IFF) JTEXT(1) - print *, - 1 ' 9999 FROM CLOSET DIRECT LABEL nchar and INTG',nchar,cjtext - 1, intg - print 1999,' nchar, intg, cjtext, ctext12,itext', - 1 nchar,intg,cjtext,ctext12,itext - 1999 format(a50,i5,1x,i20,1x,' cjtext > ',3a9,'ctext12 --> ', - 1 a14,'itext --> ',3i4) - N=3 - if(intg .lt. 100) N=2 - narg=3-N+1 - print *,' NARG ',narg,' ',N,' ' ,ctext12(narg:3) - print * ,' NARG ',' one ',ctext12(1:1),' two ',ctext12(2:2), - 1 ' three ',ctext12(3:3),' four ',ctext12(4:4) - CALL lPUTLAB(ICAL,JCAL1,22.0 - 1,ctext12(narg:3),PUTANG,N,IPRPUT,ITAPUT) - N=12 -c CALL lPUTLAB(ICAL,JCAL1,PUTHGT,ctext12,PUTANG,N,IPRPUT,ITAPUT) -c CALL lPUTLAB(ICAL,JCAL1,PUTHGT,ITEXT,PUTANG,N,IPRPUT,ITAPUT) -c CALL PUTLAB(ICAL,JCAL1,PUTHGT,ITEXT,PUTANG,N,IPRPUT,ITAPUT) - GO TO 125 -C 00336100 -C ...USE INDIRECT LABELS 00336200 -C 00336300 - 109 CONTINUE - DO 110 ITR=1,MXITR - ITSAVE=ITR - IF(ITABMB(ITR).EQ.ITEXT(1)) GO TO 112 - 110 CONTINUE - GO TO 125 - 112 KLAST=ICAL - ITEXT(1)=ITABFL(ITSAVE) - INTG=ITEXT(1) - NCHAR=M -C 00337400 -C ...FORMAT STRIP LABEL FROM CENTER POSITION 00337500 -C 00337600 - 114 CONTINUE - CALL BIN2EB(INTG,cJTEXT,NCHAR,LPLMI) - stop 'bin2eb' - 115 CONTINUE - N=12 - CALL ENCODE(ITEXT(1),N) - ctext12(1:8)=ctext(1)(1:8) - WRITE(99,IFF)JTEXT(1) - print *, - 1 ' 9999 FROM CLOSET inDIRECT LABEL nchar and INTG',nchar,cjtext - CALL lPUTLAB(ICAL,JCAL1,PUTHGT,cTEXT12,PUTANG,N,IPRPUT,ITAPUT) -c CALL lPUTLAB(ICAL,JCAL1,PUTHGT,ITEXT,PUTANG,N,IPRPUT,ITAPUT) -c CALL PUTLAB(ICAL,JCAL1,PUTHGT,ITEXT,PUTANG,N,IPRPUT,ITAPUT) - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE - 200 CONTINUE - 500 continue - print *,' EXITING CLOSET 9999' - RETURN - END diff --git a/util/sorc/trpanl.fd/FAXSHD.f b/util/sorc/trpanl.fd/FAXSHD.f deleted file mode 100755 index 7280521b6c..0000000000 --- a/util/sorc/trpanl.fd/FAXSHD.f +++ /dev/null @@ -1,255 +0,0 @@ - SUBROUTINE FAXSHD(IAREA,IA,JA,INDEX,INCR1,INCR,JLAST,NNN) - COMMON/NSCHED/ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,50) - common/nsched2/jsched - DIMENSION IAREA(IA,JA) - DIMENSION IISUB(11) - DIMENSION ISUBA(3) - DIMENSION ISUBB(3) - INTEGER ISCHED - character*1 JSCHED(16,50) -c LOGICAL JSCHED(16,50) -c EQUIVALENCE (ISCHED(1,1),JSCHED(1,1)) - DATA IISUB/1H ,2HP1,2HP2,2HP3,2HP4,2HP5,2HP6,2HI1,2HI2,2HI3, - 1 2HB2/ - DATA ISUBA/3HP1A,3HP3A,3HP5A/ - DATA ISUBB/2HP1,2HP3,2HP5/ - DATA IBCHK/4H / - DATA ITBSE/7400/ - DATA MAPT7/Z'E5000000'/ - DATA MASK2/Z'FF000000'/ -C -C COMMON AREA VARIABLES /NSCHED/ -C -C WHERE ISLOTA,B= FAX SLOT NUMBER (CARD IMAGE FORMAT) -C WHERE IPANA,B= FAX PANEL INDICATOR (CARD IMAGE FORMAT) -C WHERE ISUB= FAX SUBSET NO. (CARD IMAGE FORMAT) -C WHERE IFLAB= FRONT LABEL INSET NO. (CARD IMAGE FORMAT) -C WHERE INSET= REAL INSET NO. (CARD IMAGE FORMAT) -C WHERE IRLAB= REAR LABEL INSET NO. (CARD IMAGE FORMAT) -C WHERE ISCHED= FAX/VARIAN SCHEDULE CONTROL -C -C CALL SEQUENCE VARIABLES -C IAREA= ARRAY FOR ALL FAX/VARIAN AREAS -C IA,JA= I,J INDEX FOR IAREA ARRAY -C INDEX= SPECIFIC IAREA INDEX TO BE USED FOR THIS CUT -C INCR1= OUTPUT SCAN LINE J FOR SPECIFIC AREA USED -C (NEEDED FOR LABEL ARRAY LINKAGE TO CNTR) -C -C -C INTERNAL SUBROUTINE VARIABLES -C -C WHERE IFAXT=0 VARIAN MAP -C "1 WHOLE FAX MAP(NO REAL INSET) -C =2 WHOLE FAX MAP(REAL INSET(S)) -C =3 LEFT PANEL MAP -C =4 RIGHT PANEL MAP -C =5 REAL INSET -C -C WHERE INUML=0 NO STRIP LABELS -C =1 FRONT LABEL ONLY OR FRONT OR REAR LABEL -C =2 FRONT AND REAR LABEL -C INITIALIZE FOR SPECIAL MAP TYPE - print *,' ENTERING FAXSCH' - NNN=NNN+1 - IPANY=0 - IVARY=0 - IVAR=LAND(ISLOTA,MASK2) - IF(IVAR.EQ.MAPT7) IVARY=1 - IF((IPANA.NE.IISUB(8)).OR.(IPANA.NE.IISUB(9)).OR. - 1 (IPANA.NE.IISUB(10)).OR.(IPANA.NE.IBCHK)) IPANY=1 - IFAXT=0 - IF(IVARY.EQ.1) IFAXT=0 - IF((IPANA.EQ.IBCHK).AND.(INSET.LT.1).AND.(IVARY.EQ.0)) IFAXT=1 - IF((IPANA.EQ.IBCHK).AND.(INSET.GE.1).AND.(IVARY.EQ.0)) IFAXT=2 - IF((IPANA.EQ.IISUB(2)).OR.(IPANA.EQ.IISUB(4)).OR. - 1 (IPANA.EQ.IISUB(6))) IFAXT=3 - IF((IPANA.EQ.IISUB(3)).OR.(IPANA.EQ.IISUB(5)).OR. - 1 (IPANA.EQ.IISUB(7)).OR.(IPANA.EQ.IISUB(11))) IFAXT=4 - IF((IPANA.EQ.IISUB(8)).OR.(IPANA.EQ.IISUB(9)).OR. - 1 (IPANA.EQ.IISUB(10))) IFAXT=5 - INUML=0 - IF((IFLAB.LT.1).AND.(IRLAB.LT.1)) INUML=0 - IF((IFLAB.GE.1).AND.(IRLAB.LT.1)) INUML=1 - IF((IFLAB.GE.1).AND.(IRLAB.GE.1)) INUML=2 - IF(INCR1.NE.0) GO TO 15 - JLAST=ITBSE-INCR - 15 CONTINUE - ISCHED(1,NNN)=ISUB - ISCHED(2,NNN)=IAREA(1,INDEX) - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=IAREA(2,INDEX) - JSCHED(9,NNN)=char(IAREA(3,INDEX) ) - call j2i(9,nnn) - JSCHED(10,NNN)=char(IAREA(4,INDEX) ) - JSCHED(11,NNN)=char(IAREA(5,INDEX) ) - call j2i(11,nnn) - call j2i(10,nnn) - IF((IFAXT.EQ.0).OR.((IFAXT.EQ.1).AND.(INUML.EQ.0))) GO TO 1426 - GO TO 1427 -C -C FOUND VARIAN MAP OR WHOLE FAX MAP(NO REAL INSET) -C AND NO STRIP LABELS -C - 1426 CONTINUE - print *, 'j2i call after 1426' - JSCHED(12,NNN)=char(0) - call j2i(12,nnn) - ISCHED(7,NNN)= 0 - ISCHED(8,NNN)=0 - GO TO 1450 - 1427 CONTINUE - GO TO (1428,1428,1432,1434,1436),IFAXT -C -C FOUND WHOLE MAP (NO REAL INSET) OR -C FOUND WHOLE MAP (REAL INSET(S)) - 1428 CONTINUE - IF((IFAXT.EQ.2).AND.(INUML.EQ.0)) GO TO 1430 -C -C PREPARE FOR FRONT STRIP LABEL -C - print *, 'j2i call 2 after front strip' - JSCHED(12,NNN)=char(0) - call j2i(12,nnn) - ISCHED(7,NNN)=-30 - ISCHED(8,NNN)=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - NNN=NNN+1 - ISCHED(1,NNN)=IFLAB - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - IFLW2=216 - IF(INUML.EQ.2) GO TO 1429 -C -C FOUND WHOLE MAP FRONT LABEL ONLY -C - JSCHED(11,NNN)=char(IFLW2) - call j2i(11,nnn) - ISCHED(5,NNN)=0 - JSCHED(12,NNN)=char(0 ) - print *, 'j2i call 3 ' - call j2i(12,nnn) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 -C -C FOUND FRONT AND REAR STRIP LABEL -C - 1429 CONTINUE - IFLW3=1 - IF(IFAXT.EQ.2) GO TO 14292 - JSCHED(9,NNN)=char(IFLW3 ) - JSCHED(10,NNN)=char(0) - JSCHED(11,NNN)=char(IFLW2) - JSCHED(12,NNN)=char(0 ) - print *, 'j2i call 4 ' - call j2i(10,nnn) - call j2i(11,nnn) - call j2i(12,nnn) - call j2i(9,nnn) - ISCHED(7,NNN)=IAREA(2,INDEX) - ISCHED(8,NNN)=IRLAB - IWORK1=IRLAB - JLAST=JLAST+INCR - JXL=JLAST -14291 CONTINUE - NNN=NNN+1 - ISCHED(1,NNN)=IWORK1 - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - IRLW2=216 - JSCHED(11,NNN)=char(IRLW2) - call j2i(11,nnn) - ISCHED(5,NNN)=0 - JSCHED(12,NNN)=char(0) - print *, 'j2i call 5 ' - call j2i(12,nnn) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 -C -C FOUND REAL INSET -C -14292 CONTINUE - JSCHED(9,NNN)=char(IFLW3) - JSCHED(10,NNN)=char(0) - JSCHED(11,NNN)=char(IFLW2) - JSCHED(12,NNN)=char(IAREA(6,INDEX) ) - print *, 'j2i call 6 ' - call j2i(10,nnn) - call j2i(11,nnn) - call j2i(12,nnn) - call j2i(9,nnn) - ISCHED(7,NNN)=IAREA(7,INDEX) - ISCHED(8,NNN)=INSET - GO TO 1450 -C -C FOUND WHOLE MAP (REAL INSET(S)) BUT NO STRIP LABELS -C - 1430 CONTINUE - GO TO 1450 -C -C FOUND LEFT PANEL MAP -C - 1432 CONTINUE - print *, 'j2i call 7 ' - JSCHED(12,NNN)=char(0) - call j2i(12,nnn) - ISCHED(7,NNN)=-30 - ISCHED(8,NNN)=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - NNN=NNN+1 - ISCHED(1,NNN)=IFLAB - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - JSCHED(9,NNN)=char(1) - JSCHED(10,NNN)=char(0) - JSCHED(11,NNN)=char(216 ) - JSCHED(12,NNN)=char(IAREA(5,INDEX) ) - print *, 'j2i call 8 ' - call j2i(10,nnn) - call j2i(11,nnn) - call j2i(12,nnn) - call j2i(9,nnn) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=INSET - IWORK1=IRLAB - JLAST=JLAST+INCR - JXL=JLAST - GO TO 14291 -C -C FOUND RIGHT PANEL MAP -C - 1434 CONTINUE - JSCHED(9,NNN)=char(69) - call j2i(9,nnn) - IF(IPANA.EQ.IISUB(11)) JSCHED(9,NNN)= char(65) - ISCHED(7,NNN)=IAREA(2,INDEX) - JSCHED(12,NNN)=char(0) - print *, 'j2i call 9 ' - call j2i(12,nnn) - ISCHED(8,NNN)=IFLAB - GO TO 1450 -C -C FOUND REAL INSET -C - 1436 CONTINUE - JSCHED(12,NNN)=char(0) - print *, 'j2i call a ' - call j2i(12,nnn) - ISCHED(7,NNN)=IAREA(8,INDEX) - ISCHED(8,NNN)=IFLAB - IWORK1=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - GO TO 14291 - 1450 CONTINUE - PRINT 250,IFAXT,INUML,INDEX,INCR1 - 250 FORMAT('0TYPE MAP= ',I5,' TYPE LABELS ',I5,' AREA INDEX= ', - 1 I5,' LABEL ARRAY VALUE= ',I5) - RETURN - END diff --git a/util/sorc/trpanl.fd/FLIPTR.f b/util/sorc/trpanl.fd/FLIPTR.f deleted file mode 100755 index bd440dc47b..0000000000 --- a/util/sorc/trpanl.fd/FLIPTR.f +++ /dev/null @@ -1,81 +0,0 @@ - SUBROUTINE FLIPTR(STFMX,STFMY,FLD1) -C ...GIVEN... STFMX(116,51) STREAMS (IN CM) 00364200 -C ... TASK... TO FLIP GRID ONTO ITS END 00364300 -C AND EXPAND GRID IN MERIDIONAL SENSE 00364400 -C ONE ON EACH SIDE OF GREENWICH MERIDIAN ... 00364500 -C AND TO CLIP THE GRID FROM 51 TO 48 IN LATITUDINAL 00364600 -C ...RESULTS... FLD1(48,119) READY FOR CNTR (HAVING BEEN SCALED) 00364700 -C 00364800 -C ...THE STFMY(51,117) IS USED AS SCRATCH ... 00364900 -C 00365000 -c DIMENSION STFMX(116,51) - dimension stfmx(117,51) - DIMENSION STFMY(51,117) - DIMENSION FLD1(48,119) -C 00365400 - LOGICAL LGCOL1 - DATA M2 / 48 / -C ... WHERE THE M2 OF 48 CUTS PART OF ROW OFF ... 00365700 - DATA CMTOM / 0.01 / - DATA STDHGT / 111.0 / - DATA CINTVL / 0.033333/ -C ...WHERE CONTOUR INTERVAL OF 30M IS 1/30 IS 0.033333 00366100 -C 00366200 - LGCOL1 = .TRUE. -C ... WHERE LGCOL1 FLAGS THE GREENWICH MERIDIAN FOUND IN COL1 00366400 -C ... WHEN YOU FIGURE OUT WHERE POTEX LEAVES THE GRID 00366500 -C ... WHETHER GREENWICH IS FIRST OR LAST COL 00366600 -C ... THEN YOU CAN GET RID OF ONE OF THESE BRANCHES ... 00366700 - IF(LGCOL1) GO TO 300 -C ... OTHERWISE, ASSUME GREENWICH WAS COL 116 00366900 - GO TO 400 -C 00367100 - 300 CONTINUE -C ... GREENWICH WAS ALREADY IN COL 1 ... 00367300 - DO 322 II = 1,116 - DO 311 JJ = 1,51 - JR = 51 + 1 - JJ - STFMY(JJ,II) = STFMX(II,JR) - 311 CONTINUE - 322 CONTINUE -C ... IN ORDER TO REPEAT GREENWICH AT 117 00368000 - II = 1 - K = 117 - DO 333 JJ = 1,51 - JR = 51 + 1 - JJ - STFMY(JJ,K) = STFMX(II,JR) - 333 CONTINUE - GO TO 440 -C 00368800 - 400 CONTINUE - K = 1 - II = 116 - DO 411 JJ = 1,51 - JR = 51 + 1 - JJ - STFMY(JJ,K) = STFMX(II,JR) - 411 CONTINUE - DO 419 II = 1,116 - K = II + 1 - DO 415 JJ = 1,51 - JR = 51 + 1 - JJ - STFMY(JJ,K) = STFMX(II,JR) - 415 CONTINUE - 419 CONTINUE - GO TO 440 -C 00370400 - 440 CONTINUE -C ... NOW STFMY(51,117) CONTAINS THE STREAM FUNCTION FIELD 00370600 -C ... STANDING ON ITS GREENWICH MERIDIAN END ... 00370700 -C 00370800 - JORIG = 115 -C ... WHERE JORIG POINTS TO ROW IN 117 ROW GRID 00371000 - DO 448 JDEST = 1,119 - JORIG = JORIG + 1 - IF(JORIG .GT. 116) JORIG = JORIG - 116 - DO 444 II = 1,M2 - FLD1(II,JDEST) = (STFMY(II,JORIG)*CMTOM + STDHGT) * CINTVL - 444 CONTINUE - 448 CONTINUE -C 00371800 - RETURN - END diff --git a/util/sorc/trpanl.fd/GETGES.f b/util/sorc/trpanl.fd/GETGES.f deleted file mode 100755 index 4dcd12d496..0000000000 --- a/util/sorc/trpanl.fd/GETGES.f +++ /dev/null @@ -1,16 +0,0 @@ - SUBROUTINE GETGES(IRET) - COMMON /STRPOT/ STRS(118,52) - DATA AVHGT / 111.0 / - DATA CMPERM / 100.0 / - DATA CSF / 1.0E+7 / -C ... WHERE CSF IS TO RESCALE THE GES FIELD STRS (IN CM) INTO 00372600 -C ... NUMBERS OF MAGNITUDE GENERATED BY POTEX IN STRS 00372700 -C ... IT SEEMS TO BE TAKEN OUT AT END BY REDUCX 00372800 -C 00372900 - IRET = 1 - DO 100 J = 1,52 - DO 100 I = 1,118 - STRS(I,J) = AVHGT * CMPERM * CSF - 100 CONTINUE - RETURN - END diff --git a/util/sorc/trpanl.fd/IDCHCK.f b/util/sorc/trpanl.fd/IDCHCK.f deleted file mode 100755 index c73d23dc9b..0000000000 --- a/util/sorc/trpanl.fd/IDCHCK.f +++ /dev/null @@ -1,65 +0,0 @@ - SUBROUTINE IDCHCK(NSLOTS,NSLOT,ISUBV,ISUB,VARFND,FAXFND,AFOFND) -C 00396400 -C THIS SUBROUTINE CHECKS THE SUBSET NUMBERS READ IN FROM A GRAPHICS 00396500 -C SCHEDULE FORMAT AND DETERMINES IF THE MAIN PROGRAM PRODUCES AN 00396600 -C AFOS, VARIAN, FAX, OR BOTH FAX/VARIAN MAPS. THIS INFORMATION IS 00396700 -C THEN PLACED INTO THE FOURTH BYTE OF IFID(1) WHICH IS EVENTUALLY 00396800 -C DISPLAYED ON IPAK. 00396900 -C 00397000 -C THIS VERSION IS DATED 06-18-86 00397100 -C 00397200 - COMMON/ILY/II,LL,IFID(14),JFID(14) -C 00397400 - LOGICAL FAXFND,VARFND,AFOFND -C 00397600 - DATA IBOTH/' B'/ - DATA IAFO/' X'/ - DATA IFAX/' F'/ - DATA IVAR/' V'/ - DATA ID/' '/ - DATA IBLANK/' '/ -C 00398300 - IF(NSLOTS .NE. 1)GO TO 1000 -C 00398500 -C IF ONLY A VARIAN MAP IS PRODUCED 00398600 -C 00398700 - IF(ISUBV .NE. 99)VARFND=.TRUE. - IF(NSLOTS.EQ.NSLOT)GO TO 3000 - GO TO 4000 -C 00399100 -C IF NOT ONLY A VARIAN MAP IS PRODUCED 00399200 -C 00399300 - 1000 IF(ISUBV .NE. ISUB)GO TO 2000 -C 00399500 -C THE SUBSET NUMBER GIVEN IS A VARIAN MAP 00399600 -C 00399700 - IF(ISUBV .NE. 99)VARFND=.TRUE. - IF(NSLOTS.EQ.NSLOT)GO TO 3000 - GO TO 4000 -C 00400100 -C THE SUBSET NUMBER GIVEN IS A FAX OR AN AFOS MAP 00400200 -C 00400300 - 2000 IF(ISUB .LT. 5000)FAXFND=.TRUE. - IF(ISUB .GE. 5000)AFOFND=.TRUE. - IF(NSLOTS.EQ.NSLOT)GO TO 3000 - GO TO 4000 -C 00400800 -C GO HERE IF ALL SUBSET NUMBERS IN RUN HAVE BEEN REVIEWED 00400900 -C 00401000 - 3000 IF(AFOFND)ID=IAFO - IF(FAXFND)ID=IFAX - IF(VARFND)ID=IVAR - IF((FAXFND).AND.(VARFND))ID=IBOTH -C 00401500 - IFID(1) = ID - AFOFND = .FALSE. - FAXFND = .FALSE. - VARFND = .FALSE. -C 00402000 - IF(ID .EQ. IBLANK)PRINT 100 - 100 FORMAT(3X,'>>>>> FOURTH BYTE OF IFID(1) IS BLANK <<<<<') -C 00402300 - 4000 CONTINUE -C 00402500 - RETURN - END diff --git a/util/sorc/trpanl.fd/ISOTAC.f b/util/sorc/trpanl.fd/ISOTAC.f deleted file mode 100755 index f1787ce2ff..0000000000 --- a/util/sorc/trpanl.fd/ISOTAC.f +++ /dev/null @@ -1,23 +0,0 @@ -C ...ANDREW COLLETTI 00142700 -C 00142800 -C ...APRIL 17,1981 00142900 -C 00143000 -C ...MAKE ISOTACHS FROM U'S AND V'S IN A VARIABLE LENGTH FIELD 00143100 -C ************************************************************** 00143200 - SUBROUTINE ISOTAC(U,V,K,L,T) -C ...U=INPUT U FIELD 00143400 -C ...V=INPUT V FIELD 00143500 -C ...K=1ST DIMENSION OF FIELD 00143600 -C ...L=2ND DIMENSION OF FIELD 00143700 -C ...T=OUTPUT FIELD WITH RESULTANT ISOTACHS 00143800 - REAL U(K,L) - REAL V(K,L) - REAL T(K,L) -C 00144200 - DO 10 J=1,L - DO 9 I=1,K - T(I,J) = ABS(SQRT((U(I,J)**2) + (V(I,J)**2))) - 9 CONTINUE - 10 CONTINUE - RETURN - END diff --git a/util/sorc/trpanl.fd/MAPX.f b/util/sorc/trpanl.fd/MAPX.f deleted file mode 100755 index e84095b73a..0000000000 --- a/util/sorc/trpanl.fd/MAPX.f +++ /dev/null @@ -1,45 +0,0 @@ - SUBROUTINE MAPX -C 00359700 -C ... TO COMPUTE IMAGE SCALE FOR MERCATOR MAP IN XM(I) 00359800 -C ... WHERE IMAGE SCALE IS COS(STDLAT) / COS(LAT) 00359900 -C 00360000 -C ... AND CORIOLIS PARAMETER IN F(I) 00360100 -C ... WHERE CORIOLIS PARAMETER = 2*OMEGA*SIN(LAT) 00360200 -C 00360300 -C ... FOR 117*51 MERCATOR GRID ... 00360400 - COMMON /FIXFLD/ XM(51),F(51) -C 00360600 - DATA OMEGA / 7.292116E-05 / -C ... WHERE OMEGA IS ANGULAR VELOCITY OF THE EARTH (IN RADIANS/SEC) 00360800 - DATA RADPDG / 0.01745329 / - DATA STDLAT / 22.5 / - DATA IEQUAT / 26 / - DATA IMAX / 51 / - DATA JMAXGI / 116 / -C 00361400 - DEGPGI = 360.0 / FLOAT(JMAXGI) - COSSTD = COS(STDLAT*RADPDG) - XM(IEQUAT) = COSSTD -C ... WHERE 26TH ITEM IS EQUATOR... 00361800 -C ... COS(STDLAT) / COS(0) 00361900 - F(IEQUAT) = 0.0 -C ... WHERE THE CORIOLIS PARAMETER IS ZERO AT THE EQUATOR ... 00362100 - M1 = IEQUAT + 1 - DO 10 I = M1,IMAX - XI = I - IEQUAT - XI = XI * 2.0 * DEGPGI - XI = EXP(XI*RADPDG) - SINLAT = (XI - 1.0) / (XI + 1.0) - COSLAT = SQRT(1.0 - SINLAT*SINLAT) - XM(I) = COSSTD / COSLAT - F(I) = 2.0 * OMEGA * SINLAT - 10 CONTINUE -C ... TO FILL IN THE SOUTHERN LATITUDES ... 00363200 - M2 = IEQUAT - 1 - DO 20 I = 1,M2 - K = IMAX+ 1 - I - F(I) = -F(K) - XM(I) = XM(K) - 20 CONTINUE - RETURN - END diff --git a/util/sorc/trpanl.fd/MERCIN.f b/util/sorc/trpanl.fd/MERCIN.f deleted file mode 100755 index 87b6e47e50..0000000000 --- a/util/sorc/trpanl.fd/MERCIN.f +++ /dev/null @@ -1,373 +0,0 @@ - SUBROUTINE MERCIN(ISWTCH,NUMF,MAPON,NSLOTS,ILVLI, - 1 IFLDI,ITAUI,ICODIN,INAMIN,IOUTIN,IINFA,IINFB) -C 00162200 - COMMON/ILY/ITAU1A,LVL1A,IFID(14),JFID(14) -C 00162400 - DIMENSION ILVLI(3),IFLDI(3),ITAUI(3),IOUTIN(2) - DATA IBCHK/4H / - DATA LU/8/ -C 00162800 -C LEVEL CONTROL TABLE 00162900 -C 00163000 - DIMENSION ILVL(3,9) - DATA NLVLS/9/ - DATA ILVL/4H700 ,1H ,1,4H500 ,1H ,2,4H150 ,1H ,3,4H300 ,1H ,4, - 1 4H200 ,1H ,5,4H250 ,1H ,6,4HTROP,1H ,7,4H1000,1H ,8, - 2 4H850 ,1H ,9/ -C 00163600 -C FIELD CONTROL TABLE 00163700 -C 00163800 - DIMENSION IFLD(3,8) - DATA NFLDS/8/ - DATA IFLD/4HSTRM,1H ,1,4HTEMP,1HS,2,4HU ,1H ,3,4HV ,1H ,4, - 1 4HITAC,1HH,5,4HTP P,1HR,6,4HW ,1H ,7,4HRH ,1H ,8/ -C 00164300 -C TAU CONTROL TABLE 00164400 -C 00164500 - DIMENSION ITAU(3,5) - DATA NTAUS/5/ - DATA ITAU/4H00HR,1H ,1,4H24HR,1H ,2,4H30HR,1H ,3,4H36HR,1H ,4, - 1 4H48HR,1H ,5/ -C 00165000 -C OPERATIONAL RUN TYPE TABLE 00165100 -C 00165200 - DIMENSION ICODES(3,5) - DATA NCODES/5/ - DATA ICODES/4HOPN0,1H9,1,4HOPN1,1H0,2,4HOPN2,1H6,3,4HOPN2,1H8,4, - 1 4HOPN2,1H5,5/ -C 00165700 -C FILE CONTROL TABLE 00165800 -C 00165900 - DIMENSION IFILER(3,2) - DATA NFILES/2/ - DATA IFILER/4HMERC,1HI,1,4H ,1H ,2/ -C 00166300 -C OUTPUT TYPE CONTROL TABLE 00166400 -C 00166500 - DIMENSION IIOUT(4,6) - DATA NOUTS/6/ - DATA IIOUT/4HS-I ,1H ,1,1,4HS-I-,1HP,2,2,4HS-I-,1HT,3,3, - 1 4HS ,1H ,4,4,4HP-T-,1HW,5,5,4HP-V ,1H ,6,6/ -C 00167000 -C BASIC MAP CONTROLS (SET FOR EACH MAP) 00167100 -C 00167200 -C WHERE ICARD1= CARD CONTROL(BLANK-A1) 00167300 -C WHERE LVL1A,LVL1B= 1ST LEVEL (A4,A1) 00167400 -C WHERE IFLD1A,IFLD1B= 1ST FIELD TYPE (A4,A1) 00167500 -C WHERE ITAU1A,ITAU1B= 1ST TAU PERIOD (A4,A1) 00167600 -C WHERE LVL2A,LVL2B= 2ND LEVEL (A4,A1) 00167700 -C WHERE IFLD2A,IFLD2B= 2ND FIELD TYPE (A4,A1) 00167800 -C WHERE ITAU2A,ITAU2B= 2ND TAU PERIOD (A4,A1) 00167900 -C WHERE LVL3A,LVL3B= 3RD LEVEL (A4,A1) 00168000 -C WHERE IFLD3A,IFLD3B= 3RD FIELD TYPE (A4,A1) 00168100 -C WHERE ITAU3A,ITAU3B= 3RD TAU PERIOD (A4,A1) 00168200 -C WHERE ICODEA,ICODEB= OPERATIONAL CODE TYPE (A4,A1) 00168300 -C WHERE IINFA,IINFB= INPUT FILE NAME (A4,A1) 00168400 -C WHERE IOUTA,IOUTB= OUTPUT FIELD COMBINATION 00168500 -C WHERE MAPON= MAP NUMBER (I4) 00168600 -C WHERE NSLOTS= NUMBER OF MAP PARTS (I4) 00168700 -C 00168800 - 7025 CONTINUE - IF(ISWTCH.EQ.1) GO TO 7040 -C 00169100 -C USE DATA CARD INPUT 00169200 -C 00169300 - 7030 CONTINUE - READ 7200, ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2A, - 1 LVL2B,IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A,LVL3B,IFLD3A, - 2 IFLD3B,ITAU3A,ITAU3B,ICODEA,ICODEB,IINFA,IINFB,IOUTA, - 3 IOUTB,MAPON,NSLOTS - 7200 FORMAT(A1,10(A4,A1),3X,2(A4,A1),2I4) - GO TO 7045 -C 00170100 -C USE DATA SET CONTROL FILE INPUT 00170200 -C 00170300 - 7040 CONTINUE - READ(LU,7200) ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B, - 2 LVL2A,LVL2B,IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A, - 3 LVL3B,IFLD3A,IFLD3B,ITAU3A,ITAU3B,ICODEA, - 4 ICODEB,IINFA,IINFB,IOUTA,IOUTB,MAPON,NSLOTS - 7045 CONTINUE - NUMF=3 - IF(LVL3A.EQ.IBCHK.AND.LVL3B.EQ.IBCHK) NUMF=2 - IF(LVL2A.EQ.IBCHK.AND.LVL2B.EQ.IBCHK.AND.LVL3A.EQ.IBCHK.AND. - 1LVL3B.EQ.IBCHK) NUMF=1 - PRINT 7201,MAPON,NUMF - 7201 FORMAT(1H1,'MAP NUMBER= ',I3,' NUMBER OF INPUT FIELDS= ',I3) - PRINT 7202,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2A,LVL2B, - 1 IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A,LVL3B,IFLD3A, - 2 IFLD3B,ITAU3A,ITAU3B - 7202 FORMAT(1H0,'DATA TYPES= ',9(A4,A1)) - PRINT 7203,ICODEA,ICODEB,IINFA,IINFB,IOUTA,IOUTB,NSLOTS - 7203 FORMAT(1H0,'OPERATIONAL CODE= ',A4,A1,' INPUT FILE= ',A4,A1, - X'OUTPUT COMB. TYPE= ',A4,A1,' NUMBER OF FAX VARIAN CUTS= ',I3) - DO 7210 IX=1,3 - ILVLI(IX)=0 - IFLDI(IX)=0 - ITAUI(IX)=0 - 7210 CONTINUE - ICODIN=0 - INAMIN=0 - DO 7211 IY=1,2 - IOUTIN(IY)=0 - 7211 CONTINUE -C 00173300 -C CHECK FOR REASONABLE LEVEL REQUESTS 00173400 -C 00173500 -C 00173600 -C CHECK LEVEL 1 00173700 -C 00173800 - DO 7215 IK=1,NLVLS - k=ik - IF(LVL1A.EQ.IBCHK.AND.LVL1B.EQ.IBCHK) GO TO 7205 - print 984,' 9999 slot check ',LVL1A,ILVL(1,k),LVL1B,ILVL(2,k) - 984 format(a15,1x,'>',a4,'< >',a4,'< >',a4,'< >',a4,'<') - IF(LVL1A.NE.ILVL(1,IK)) GO TO 7215 - IF(LVL1B.NE.ILVL(2,IK)) GO TO 7215 - ILVLI(1)=ILVL(3,IK) - IP=ILVLI(1) - PRINT 7204,IP - 7204 FORMAT(1H0,'LEVEL 1 INDEX FOUND= ',I2) - GO TO 7220 - 7205 PRINT 7206 - 7206 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 1-WAS BLANK') - CALL W3TAGE('GRAPH_TRPANL') - STOP 207 - 7215 CONTINUE - PRINT 7216 - 7216 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 1') - CALL W3TAGE('GRAPH_TRPANL') - STOP 217 - 7220 CONTINUE -C 00176000 -C CHECK LEVEL 2 00176100 -C 00176200 - DO 7235 IK=1,NLVLS - IF(LVL2A.EQ.IBCHK.AND.LVL2B.EQ.IBCHK) GO TO 7240 - IF(LVL2A.NE.ILVL(1,IK)) GO TO 7235 - IF(LVL2B.NE.ILVL(2,IK)) GO TO 7235 - ILVLI(2)=ILVL(3,IK) - IP=ILVLI(2) - PRINT 7234,IP - 7234 FORMAT(1H0,'LEVEL 2 INDEX FOUND= ',I2) - GO TO 7240 - 7235 CONTINUE - PRINT 7236 - 7236 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 2') - CALL W3TAGE('GRAPH_TRPANL') - STOP 237 - 7240 CONTINUE -C 00177900 -C CHECK LEVEL 3 00178000 -C 00178100 - DO 7255 IK=1,NLVLS - IF(LVL3A.EQ.IBCHK.AND.LVL3B.EQ.IBCHK) GO TO 7260 - IF(LVL3A.NE.ILVL(1,IK)) GO TO 7255 - IF(LVL3B.NE.ILVL(2,IK)) GO TO 7255 - ILVLI(3)=ILVL(3,IK) - IP=ILVLI(3) - PRINT 7254,IP - 7254 FORMAT(1H0,'LEVEL 3 INDEX FOUND= ',I2) - GO TO 7260 - 7255 CONTINUE - PRINT 7256 - 7256 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 3') - CALL W3TAGE('GRAPH_TRPANL') - STOP 257 - 7260 CONTINUE -C 00179800 -C CHECK FOR REASONABLE FIELD REQUESTS 00179900 -C 00180000 -C 00180100 -C CHECK FIELD 1 00180200 -C 00180300 - DO 7315 IK=1,NFLDS - print 73,' 9999 IFLD CHK',IFLD1a,IFLD(1,ik),IFLD1b,IFLD(2,ik) - 73 format(a20,2a4,x,a1,x,a1) - IF(IFLD1A.EQ.IBCHK.AND.IFLD1B.EQ.IBCHK) GO TO 7305 - IF(IFLD1A.NE.IFLD(1,IK)) GO TO 7315 - IF(IFLD1B.NE.IFLD(2,IK)) GO TO 7315 - IFLDI(1)=IFLD(3,IK) - IP=IFLDI(1) - PRINT 7314,IP - 7314 FORMAT(1H0,'FIELD 1 INDEX FOUND= ',I2) - GO TO 7320 - 7305 PRINT 7306 - 7306 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 1-WAS BLANK') - CALL W3TAGE('GRAPH_TRPANL') - STOP 307 - 7315 CONTINUE - PRINT 7316 - 7316 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD1') - CALL W3TAGE('GRAPH_TRPANL') - STOP 317 - 7320 CONTINUE -C 00182500 -C CHECK FIELD 2 00182600 -C 00182700 - DO 7335 IK=1,NFLDS - print 73,' 9999 IFLD CHK',IFLD2a,IFLD(1,ik),IFLD2b,IFLD(2,ik) - IF(IFLD2A.EQ.IBCHK.AND.IFLD2B.EQ.IBCHK) GO TO 7340 - IF(IFLD2A.NE.IFLD(1,IK)) GO TO 7335 - IF(IFLD2B.NE.IFLD(2,IK)) GO TO 7335 - IFLDI(2)=IFLD(3,IK) - IP=IFLDI(2) - PRINT 7334,IP - 7334 FORMAT(1H0,'FIELD 2 INDEX FOUND= ',I2) - GO TO 7340 - 7335 CONTINUE - PRINT 7336 - 7336 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 2') - CALL W3TAGE('GRAPH_TRPANL') - STOP 337 - 7340 CONTINUE -C 00184400 -C CHECK FIELD 3 00184500 -C 00184600 - DO 7355 IK=1,NFLDS - IF(IFLD3A.EQ.IBCHK.AND.IFLD3B.EQ.IBCHK) GO TO 7360 - IF(IFLD3A.NE.IFLD(1,IK)) GO TO 7355 - IF(IFLD3B.NE.IFLD(2,IK)) GO TO 7355 - IFLDI(3)=IFLD(3,IK) - IP=IFLDI(3) - PRINT 7354,IP - 7354 FORMAT(1H0,'FIELD 3 INDEX FOUND= ',I2) - GO TO 7360 - 7355 CONTINUE - PRINT 7356 - 7356 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 3') - CALL W3TAGE('GRAPH_TRPANL') - STOP 357 - 7360 CONTINUE -C 00186300 -C CHECK FOR REASONABLE TAU REQUESTS 00186400 -C 00186500 -C 00186600 -C CHECK TAU 1 00186700 -C 00186800 - DO 7415 IK=1,NTAUS - IF(ITAU1A.EQ.IBCHK.AND.ITAU1B.EQ.IBCHK) GO TO 7415 - IF(ITAU1A.NE.ITAU(1,IK)) GO TO 7415 - IF(ITAU1B.NE.ITAU(2,IK)) GO TO 7415 - ITAUI(1)=ITAU(3,IK) - IP=ITAUI(1) - PRINT 7414,IP - 7414 FORMAT(1H0,'TAU 1 INDEX FOUND= ',I2) - GO TO 7420 - 7405 PRINT 7406 - 7406 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 1-WAS BLANK') - CALL W3TAGE('GRAPH_TRPANL') - STOP 407 - 7415 CONTINUE - PRINT 7416 - 7416 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 1') - CALL W3TAGE('GRAPH_TRPANL') - STOP 417 - 7420 CONTINUE -C 00189000 -C CHECK TAU 2 00189100 -C 00189200 - DO 7435 IK=1,NTAUS - IF(ITAU2A.EQ.IBCHK.AND.ITAU2B.EQ.IBCHK) GO TO 7440 - IF(ITAU2A.NE.ITAU(1,IK)) GO TO 7435 - IF(ITAU2B.NE.ITAU(2,IK)) GO TO 7435 - ITAUI(2)=ITAU(3,IK) - IP=ITAUI(2) - PRINT 7434,IP - 7434 FORMAT(1H0,'TAU 2 INDEX FOUND= ',I2) - GO TO 7440 - 7435 CONTINUE - PRINT 7436 - 7436 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 2') - CALL W3TAGE('GRAPH_TRPANL') - STOP 437 - 7440 CONTINUE -C 00190900 -C CHECK TAU 3 00191000 -C 00191100 - DO 7455 IK=1,NTAUS - IF(ITAU3A.EQ.IBCHK.AND.ITAU3B.EQ.IBCHK) GO TO 7460 - IF(ITAU3A.NE.ITAU(1,IK)) GO TO 7455 - IF(ITAU3B.NE.ITAU(2,IK)) GO TO 7455 - ITAUI(3)=ITAU(3,IK) - IP=ITAUI(3) - PRINT 7454,IP - 7454 FORMAT(1H0,'TAU 3 INDEX FOUND= ',I2) - GO TO 7460 - 7455 CONTINUE - PRINT 7456 - 7456 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 3') - CALL W3TAGE('GRAPH_TRPANL') - STOP 457 - 7460 CONTINUE -C 00192800 -C CHECK FOR REASONABLE OPERATIONAL CODE REQUESTS 00192900 -C 00193000 - DO 7515 IK=1,NCODES - IF(ICODEA.EQ.IBCHK.AND.ICODEB.EQ.IBCHK) GO TO 7505 - IF(ICODEA.NE.ICODES(1,IK)) GO TO 7515 - IF(ICODEB.NE.ICODES(2,IK)) GO TO 7515 - ICODIN=ICODES(3,IK) - PRINT 7514,ICODIN - 7514 FORMAT(1H0,'CODE INDEX FOUND= ',I2) - GO TO 7520 - 7505 PRINT 7506 - 7506 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OPNL CODE-WAS BLANK') - CALL W3TAGE('GRAPH_TRPANL') - STOP 507 - 7515 CONTINUE - PRINT 7516 - 7516 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OPNL CODE') - CALL W3TAGE('GRAPH_TRPANL') - STOP 517 - 7520 CONTINUE -C 00195100 -C CHECK FOR REASONABLE FILE REQUESTS 00195200 -C 00195300 - DO 7535 IK=1,NFILES - IF(IINFA.EQ.IBCHK.AND.IINFB.EQ.IBCHK) GO TO 7525 - IF(IINFA.NE.IFILER(1,IK)) GO TO 7535 - IF(IINFB.NE.IFILER(2,IK)) GO TO 7535 - INAMIN=IFILER(3,IK) - PRINT 7524,INAMIN - 7524 FORMAT(1H0,'FILE INDEX FOUND= ',I2) - GO TO 7540 - 7525 PRINT 7526 - 7526 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FILE-WAS BLANK') - CALL W3TAGE('GRAPH_TRPANL') - STOP 527 - 7535 CONTINUE - PRINT 7536 - 7536 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FILE') - CALL W3TAGE('GRAPH_TRPANL') - STOP 537 - 7540 CONTINUE -C 00197400 -C CHECK FOR REASONABLE OUTPUT REQUESTS 00197500 -C 00197600 - DO 7555 IK=1,NOUTS - IF(IOUTA.EQ.IBCHK.AND.IOUTB.EQ.IBCHK) GO TO 7545 - IF(IOUTA.NE.IIOUT(1,IK)) GO TO 7555 - IF(IOUTB.NE.IIOUT(2,IK)) GO TO 7555 - IOUTIN(1)=IIOUT(3,IK) - IOUTIN(2)=IIOUT(4,IK) - IP=IOUTIN(1) - IQ=IOUTIN(2) - PRINT 7554,IP,IQ - 7554 FORMAT(1H0,'OUTPUT TYPE INDEX FOUND= ',I2,'OUTPUT MAP SET FOUND - X= ',I2) - GO TO 7560 - 7545 CONTINUE - PRINT 7546 - 7546 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OUTPUT TYPE-WAS BLANK') - CALL W3TAGE('GRAPH_TRPANL') - STOP 547 - 7555 CONTINUE - PRINT 7556 - 7556 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OUTPUT TYPE') - CALL W3TAGE('GRAPH_TRPANL') - STOP 557 - 7560 CONTINUE - print *,' 9999 ioutin' ,ioutin - RETURN - END diff --git a/util/sorc/trpanl.fd/POTEX.f b/util/sorc/trpanl.fd/POTEX.f deleted file mode 100755 index ab72bfae07..0000000000 --- a/util/sorc/trpanl.fd/POTEX.f +++ /dev/null @@ -1,108 +0,0 @@ - SUBROUTINE POTEX(ZETA) -C GIVEN... VORTICITY FIELD IN ZETA(118,52) 00381600 -C TASK... TO FORM A STREAM FUNCTION FIELD IN /STRPOT/STRS(118,52) 00381700 -C ... USING A RELAXATION PROCEDURE... 00381800 -C ...THEN CALLS ON SUBROUTINE REDUCX TO REFORMAT FOR OUTPUT... 00381900 -C ...WHERE ARE THESE POINTS OF THIS GRID QQQQQ 00382000 -C ...WHAT ARE THE UNITS OF GIVEN INFO QQQ 00382100 -C ...WHAT ARE UNITS OF RESULTING INFO QQ 00382200 - COMMON /STRPOT/ STRS(118,52) - DIMENSION ZETA(118,52) - DATA AVHGT / 111.0 / -C ...PROGRAM CONSTANTS ... 00382600 - RESMA1 = 0.3E+09 - N3 = 1000 - IM = 117 - JM = 51 - IM2 = IM + 1 - JM2 = JM + 1 -C 00383300 -C 00383400 -C 00383500 -C ...IF NO STREAM FIELD IS AVAILABLE, THEN SET FIELD TO AVERAGE 00383600 -C VALUE FOR EACH LEVEL (IN CM)... 00383700 -C 00383800 -C ... ASSUME STRS ARRAY HAS BEEN INITIALIZED TO A GES VALUE 00383900 -C ... BY THE MAIN PROGRAM OR BY SUBR GETGES ... 00384000 -C 00384100 -C 00384200 - X1 = 0.0 -C ...X1 IS MEAN VALUE OF ZETA1(ZETA ON THE EVEN ROWS) 00384400 - X2 = 0.0 -C ...X2 IS MEAN VALUE OF ZETA2(ZETA ON THE ODD ROWS) 00384600 - X3 = 1.0 -C ...X3 IS THE EVEN/ODD FLAG 00384800 - DO 222 J = 1,JM2 - DO 200 I = 2,IM - X3 = -X3 - IF(X3) 166,166,188 - 166 X1 = X1 - ZETA(I,J) - GO TO 200 - 188 X2 = X2 - ZETA(I,J) - 200 CONTINUE - X3 = - X3 - 222 CONTINUE -C ...FORM MEAN VALUE OF ZETA 00385900 - X1 = X1 / (58.0 * 52.0 ) - X2 = X2 / (52.0 * 58.0 ) - X3 = 1.0 -C 00386300 -C 00386400 -C 00386500 - DO 288 J = 1,JM2 - DO 277 I = 2,IM - X3 = -X3 -C ...SET ZETA MEAN=0 00386900 - IF(X3) 255,255,266 - 255 ZETA(I,J) = ZETA(I,J) + X1 - GO TO 277 - 266 ZETA(I,J) = ZETA(I,J) + X2 - 277 CONTINUE - X3 = -X3 - 288 CONTINUE - M1 = 1 - N = 0 - 311 CONTINUE - M = 0 - DO 488 J1 = 1,JM2 - IF(M1) 322,322,333 - 322 J = J1 - GO TO 344 - 333 J = JM2 + 1 - J1 - 344 CONTINUE - DO 477 I = 2,IM - IF(J - 1) 411,422,411 - 411 IF(J - JM2) 444,433,444 - 422 RES = STRS(I+1,J+1)+STRS(I-1,J+1)-STRS(I,J)*2.0-ZETA(I,J) - IF(ABS(RES) - RESMA1) 466,466,455 - 433 RES = STRS(I+1,J-1)+STRS(I-1,J-1)-STRS(I,J)*2.0-ZETA(I,J) - IF(ABS(RES) - RESMA1) 466,466,455 - 444 CONTINUE - RES = STRS(I+1,J+1)+STRS(I-1,J+1)+STRS(I-1,J-1)+ - XSTRS(I+1,J-1)-STRS(I,J)*4.0-ZETA(I,J) - IF(ABS(RES) - RESMA1) 466,466,455 - 455 M = M + 1 - 466 CONTINUE - 477 STRS(I,J) = STRS(I,J) + 0.45*RES - STRS(1,J) = STRS(IM,J) - STRS(IM2,J) = STRS(2,J) - 488 CONTINUE - M1 = -M1 - IF(M .EQ. 0) GO TO 611 - N = N + 1 - IF(N - N3) 311,522,522 - 522 CONTINUE - N2 = N - N4 = 0 - N1 = 0 - PRINT 544, N - 544 FORMAT(1H0, 10X, '***ERROR RETURN FROM POTEX. RELAXATION INCOMPLE - 1TE AFTER', I5, 3X, 'ITERATIONS. STREAM FIELD IS NO GOOD.') - RETURN - 611 CONTINUE - PRINT 633, N - 633 FORMAT(1H0, 10X, 'RELAXATION COMPLETED IN POTEX. USED', I5, - 1 2X, 'ITERATIONS TO GET STREAM FIELD') - CALL REDUCX - RETURN - END diff --git a/util/sorc/trpanl.fd/REDFLD.f b/util/sorc/trpanl.fd/REDFLD.f deleted file mode 100755 index 0352b5a98d..0000000000 --- a/util/sorc/trpanl.fd/REDFLD.f +++ /dev/null @@ -1,869 +0,0 @@ - SUBROUTINE REDFLD(ISWTCH,NUMF,ILVLI,IFLDI,ITAUI,IARR2,IERR) -C ...THIS SOUBROUTINE WILL FORM THE ID'S TO RETRIEVE THE PROPER -C ...FIELDS FROM MERC - COMMON/BOBINS/LMERC(256),IDMERC(1539) - common /get3com/ctitlE - Common/grbpds/kpds(25) - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON/PACKRA/IRAS(10) - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON/ADJ2/XIDID,YJDID - COMMON/FIXFLD/XIM(51),F(51) - COMMON/STRPOT/STFM(118,52) - COMMON/YUCK/FLD1(48,119),FLD2(48,119),FLD3(48,119), - & fld4(48,119) - COMMON/ADJ4/IRTCOR,IUPCOR - COMMON/ISPACE/UC(118,51),VC(118,51),ZETA(118,52) - COMMON/SHTST/ ISSH -C ...WHICH MAKES SPACE OF 18172 WORDS = 2*6018 +6136L 500 - DIMENSION IBUF1(2996) - DIMENSION U(117,51),V(117,51) - dimension vold(117,51) -c DIMENSION STFMX(116,51) - DIMENSION STFMX(117,51) - DIMENSION STFMY(51,117) - DIMENSION VSIDE(48,119) - DIMENSION ILVLI(3),IFLDI(3),ITAUI(3) - DIMENSION IINID(3,8) - DIMENSION ILVL(2,9) - DIMENSION IITAU(5) - DIMENSION IRUNTA(3) - DIMENSION ICONTA(3) - DIMENSION IDCHK1(3,8) - DIMENSION IDCHK(6) - DIMENSION NEWS1(12) - DIMENSION ITITLE(81) - character*132 ctitle - DIMENSION JTITL1(3),JTITL2(3),JTITL3(3),JTITL4(3),IARR2(3) - DIMENSION IFM(5) - DIMENSION KCFIX(5) - INTEGER KTL (99) - data ktl /99*' '/ - DIMENSION ITABMB(7),ITABFL(7) - DIMENSION CNST(4),DNST(4),CNST1(4),CNST2(4),CNST3(4) - DIMENSION KTBL(9),JTBL(9) - EQUIVALENCE (NEWS1(1),IBUF1(1)) - EQUIVALENCE (U(1,1),UC(1,1)) - EQUIVALENCE (STFMX(1,1),UC(1,1)) - EQUIVALENCE (V(1,1),VC(1,1)) - EQUIVALENCE (STFMY(1,1),VC(1,1)) - EQUIVALENCE (IBUF1(1),ZETA(1,1)) - REAL*8 MERCI - DATA MXREC2/255/ - DATA IMAX/48/ - DATA JMAX/119/ - DATA IRCSZ1/2996/ - DATA IDOTS/30/ -C - -C ...FIELD IDENT CONTOUR/LABEL CONSTANTS -C -C -C -C 1=STREAM(DUMMY) 2=TEMPERATURE 3=U 4=V 5=ISOTACH(DUMMY) -C 6=TROP PRESSURE 7=TROP TEMPERATURE 8=TROP VERT WIND SHEAR -C -C -C - DATA IINID/ -C ...STREAM(DUMMY) - 1 3*0, -C ...TEMPERATURE - 2 Z'01000800',Z'00C35082',53, -C ...U - 3 Z'03000800',Z'00C35082',53, -C ...V - 4 Z'03100800',Z'00C35082',53, -C ...ISOTACH(DUMMY) - 5 3*0, -C ...TROP PRESSURE - 6 Z'00808200',0,53, -C ...TROP TEMPERATURE - 7 Z'01008200',0,53, -C ...TROP VERT WIND SHEAR - 8 Z'03408200',0,53/ -C -C ...LEVEL CONTROL TABLE -C - DATA ILVL/ - 1 70000,Z'82', - 2 50000,Z'82', - 3 40000,Z'82', - 4 30000,Z'82', - 5 20000,Z'82', - 6 25000,Z'82', - 7 0,0, - 8 10000,Z'81', - 9 85000,Z'82'/ -C -C ...TAU PERIOD CONTROL TABLE -C - DATA IITAU/00,24,30,36,48/ - dimension iutau(2,5) - data iutau/12,22,13,23,14,24,15,25,16,26/ - DATA IDCHK1/24*0/ - DATA IDCHK/6*0/ - DATA LBLTAP/55/ - DATA MERCI/'TRPGRD '/ - DATA ITITLE/81*4H / - DATA MASKFF/Z'FF'/ - DATA JTITL1/4HE 10,4H00MB,2HWI/ - DATA JTITL2/4HE 50,4H0MB ,2HWI/ - DATA JTITL3/4HE 25,4H0MB ,2HWI/ - DATA JTITL4/4HE 85,4H0MB ,2HWI/ - DATA IFM/4H(A3,,4H1H$),3*0/ - DATA XLPLMI/3HS#-/ - DATA KCFIX/13,45,68,94,106/ - DATA ITABMB/400,350,300,250,200,150,100/ - DATA ITABFL/240,270,300,340,390,450,530/ - DATA DEF/Z'7FFFFFFF'/ - DATA CNST/0.,1.,10.,0./ - DATA CNST1 /0.,50.,50.,0./ - DATA CNST2 /0.,1., 5.,0./ - DATA CNST3 /0.,1., 1.,0./ - DATA DNST/ 273.,5.,10.,0./ - DATA KTBL/-1,51,117,117,117,1,1,0,51/ - DATA JTBL/-1,48,119,119,119,1,1,0,48/ - DATA KRECT/1/ - DATA KCONTR/12/ - data lun,luni /15,25/ - dimension ibar(9) - parameter (nlons=360,nlats=181) - dimension f3(nlons,nlats) - data ibar/700,500,400,300,200,250,0,1000,850/ - dimension iin(8) - data iin/35,11,33,34,32,39,52,136/ -c specify grib stream,T,U,V,dummy,W(pa/sec),RH,dummy -c new grib variables - dimension kkds(25,9),kgds(22) - dimension kds(25) - dimension jpds(25) - equivalence(jpds,kds) - character*4 ctextt - dimension krot_pri(2) -C -c************************* END OF SPECIFICATIONS *********** - - do 9,k=1,9 - do 9 kk=1,25 - 9 kkds(kk,k)=-1 -C****************************************************************** -C 8/20/81 -- CHANGES: ADD 2650,56009,60399 -C CHANGE 10750,10800,56010,60400 -C 8/21/81 -- CHANGES: ADD 60301 TO 60305 -C CHANGE 60000 FROM .2 TO 1.0 -C****************************************************************** -C -C ...GENERATE IDENT TO OBTAIN OUTPUT FIELD REQUESTS -C -c control vbls ITAUI,IFLDI,ILVLI -c control forecast time for each field, field number (type), and -c pressure surface of that field -c itaui(1)=1, -c -c ifldi(1)=3,ilvli(1)=8 -c transforms to fcsthour=itau(itaui(1))=18 -c fieldnumber=iinid(ifldi(1),1:3) (an algorithm extracts it -c from column 1 and then extracts other ON84 info from columns 2 -c and 3 (col.3 is map number) )) -c -c ilvli(1)=8 passes the pressure level information -c pressure level is in ilvl(ilvli(8),1) in pascals -c the second word of this row is used for ON84 logic -c and is not needed here. -C -C ...FIELD 1 -C - ISSH = 0 -c gwv 2/26/97 reverse SH wind barb directio - ISSH = 1 - ITAUA=ITAUI(1) - IRUNTA(1)=IITAU(ITAUA) -c irunta is the actual forecast time!! -c store this in kds(14) for grib extraction - IFLDA=IFLDI(1) - ICONTA(1)=IFLDA -c IFLDA defines the variable (u,v,t,etc.) we will extract - LVL11=ILVLI(1) -c logical pressure was changed to bytes 2:3 of -c ILVL(LVL11,1) divided by 100 -c now change this to ibar(lvl11) - izz=ibar(lvl11) - print *,'9999 FROM TITLE lvl11,ibar(lvl11)',lvl11,ibar(lvl11) -c this becomes KDS word 7 -c if izz is zero, set kds word 6 to integer seven -c (defining tropopause rather than 100 isobaric sfc) - IDALL=LOR(SHFTL(ILVL(1,LVL11),8),ILVL(2,LVL11)) -c now get field type iin(iflda) - ity=iin(iflda) - print *,'ity,iflda ,ifldi ', ity,iflda, 'ifldi array ',ifldi -c This becomes kds word 5. - kkds(5,1)=ity - kkds(7,1)=izz - if(izz .eq. 0) kkds(6,1)=7 - kkds(14,1)=irunta(1) - if(irunta(1) .eq. 00) then - lun=12 - luni=22 - endif - if(irunta(1) .eq. 48) then - lun=15 - luni=25 - endif -c IDCHK1(1,1)=LOR(IINID(1,IFLDA),IRUNTA(1)) -c IDCHK1(2,1)=IDALL -c IDCHK1(3,1)=IINID(3,IFLDA) -c IDCHK1(1,4)=LOR(IINID(1,3),IRUNTA(1)) -c IDCHK1(2,4)=IDALL -c IDCHK1(3,4)=IINID(3,3) -c IDCHK1(1,5)=LOR(IINID(1,4),IRUNTA(1)) -c IDCHK1(2,5)=IDALL -c IDCHK1(3,5)=IINID(3,4) -c IDCHK1(1,6)=LOR(IINID(1,2),IRUNTA(1)) -c IDCHK1(2,6)=IDALL -c IDCHK1(3,6)=IINID(3,2) -c IDCHK1(1,7)=LOR(IINID(1,7),IRUNTA(1)) -c IDCHK1(2,7)=IINID(2,7) -c IDCHK1(3,7)=IINID(3,7) -ccC -C ...FIELD 2 (IF NEEDED) -C - LVL22=ILVLI(2) -c - IF(LVL22.EQ.0) GO TO 27 - ITAUB=ITAUI(2) - IRUNTA(2)=IITAU(ITAUB) -c - IFLDB=IFLDI(2) - print *,' IFLDB,IFLDI(2) ',ifldb,ifldi(2) - ICONTA(2)=IFLDB - IDALL=LOR(SHFTL(ILVL(1,LVL22),8),ILVL(2,LVL22)) - IDCHK1(1,2)=LOR(IINID(1,IFLDB),IRUNTA(2)) - IDCHK1(2,2)=IDALL - IDCHK1(3,2)=IINID(3,IFLDB) - 27 CONTINUE - izz=ibar(lvl22) - ity=iin(ifldb) - kkds(7,2)=izz - if(izz .eq. 0) kkds(6,2)=7 - kkds(14,2)=irunta(2) - kkds(5,2)=ity - - print *,'ity,ifldb ,ifldi ', ity,ifldb, 'ifldi array ',ifldi -C -C ...FIELD 3 (IF NEEDED) - LVL33=ILVLI(3) - IF(LVL33.EQ.0) GO TO 28 - ITAUC=ITAUI(3) - IRUNTA(3)=IITAU(ITAUC) - IFLDC=IFLDI(3) - ICONTA(3)=IFLDC - IDALL=LOR(SHFTL(ILVL(1,LVL33),8),ILVL(2,LVL33)) - IDCHK1(1,3)=LOR(IINID(1,IFLDC),IRUNTA(3)) - IDCHK1(2,3)=IDALL - IDCHK1(3,3)=IINID(3,IFLDC) - IDCHK1(1,8) = IDCHK1(1,3) - IDCHK1(2,8) = 0 - IDCHK1(3,8) = IINID(3,IFLDC) - 28 CONTINUE - izz=ibar(lvl33) - ity=iin(ifldc) - kkds(7,3)=izz - if(izz .eq. 0) kkds(6,3)=7 - kkds(14,3)=irunta(3) - kkds(5,3)=ity - print *,'ity,ifldc ,ifldi ', ity,ifldc, 'ifldi array ',ifldi - print *, '9999 kkds ',kkds(5,1),kkds(5,2),kkds(5,3) -C -C****************************************************************** -C IF THIS MAP IS A TROP CHART, SET NUMF=1 TO PASS THRU LOOP ONCE -C AND AVOID INCORRECT ISOTACH AND ISOTHERM SEGMENTS AT 200 AND 300. -C****************************************************************** - IF (LVL11 .EQ. 7) NUMF = 1 - DO 1000 ISET=1,NUMF - GO TO(100,200,300),ISET -C -C ...ID ERROR MESSAGES FROM W3FK43 -C ...PRINT MESSAGE AND SKIP THIS MAP -C -C -C -C ...PROCESS INPUT DATA FOR WIND PLOT(EXCEPT FOR TROP MAP) -C ...PROCESS INPUT DATA FOR 1ST FIELD FOR CONTOURING STREAM FIELD -C ...EXCEPT FOR TROP LEVEL WHERE WE CONTOUR TROP PRESSURE. -C -C -C - 100 CONTINUE -C -C ...INITIALIZE LABEL ARRAY -C - REWIND LBLTAP - DO 130 L=1,1024 - LABEL(1,L)=0 - LABEL(2,L)=0 - 130 CONTINUE - LABIX=0 - NOBUF=0 -C -c gwv inserted initialization code -C INITIALIZE LABEL ARRAY -C - LABIX = 0 - NOBUF = 0 -cC - IPT = 1 - JPT = 0 - HEIGHT = 1.0 - ANGLE = 0.0 - KROT_PRI(1) = 0 - KROT_PRI(2) = 0 - CTEXTt(1:1) = '?' - CTEXTt(2:2) = CHAR(1) - CTEXTt(3:3) = '$' - CTEXTt(4:4) = CHAR(0) - NCHAR = 2 - ICMD = -2 - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXTt,ANGLE,NCHAR,KROT_PRI, - X ICMD) - -C -C ...PREPARE FOR PLOT OF WINDS (AVERAGE WHEN NEEDED) -C - IZSET=1 - IF(LVL11.EQ.8) IZSET=1 - IF(LVL11.EQ.2) IZSET=2 - IF(LVL11.EQ.6) IZSET=3 - IF(LVL11.EQ.7) IZSET=4 - IF(LVL11.EQ.9) IZSET=5 - kds(7)=ibar(lvl11) - print *,' 9999 set kds(7) ' , kds(7) - CALL RDOBVT(KDS(7),IERROR) - GO TO (140,150,160,170,1800),IZSET -C -C ...GET 1000 MB U FIELD IN ARRAY U - 140 CONTINUE - IARR2(1)=JTITL1(1) - IARR2(2)=JTITL1(2) - IARR2(3)=JTITL1(3) - IDCHK(1)=IDCHK1(1,4) - IDCHK(2)=IDCHK1(2,4) - IDCHK(5)=IDCHK1(3,4) - PRINT 51, (IDCHK(I),I=1,6) - 51 FORMAT('0MAP IDENTS REQUESTED ARE ',6(2X,Z8)) -c -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) -c replacement to w3fk43 follows - do 311,n=1,25 - 311 kds(n)=-1 - kds(7)=ibar(lvl11) - print *,' 9999 set kds(7) ' , kds(7) - 1 ,lvl11,ibar(lvl11) -c special for u - kds(5)=33 - kds(6)=100 -c kds(7)=1000 - if(lvl11 .eq. 8) kds(7)=1000 - print *,' 9999 kds7 in 1000 goto ',kds(7) - kds(14)=irunta(1) -C GETGB - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF(IERR.NE.0) GO TO 180 -c CALL W3FP02(NEWS1,ITITLE,1) - PRINT 120,(ITITLE(I),I=1,22) - 120 FORMAT(1H0,10X,'INPUT FIELD FOUND = ',22A4) -c CALL W3AI01(IBUF1,U,NEWS1) -C ...SET UP DATE FOR TITLE -C - print 1977,jpds - 1977 format(4z20) -c stop 'jpds' -c IRAS(1)=LAND(NEWS1(1),MASKFF) -c IRAS(7)=LAND(NEWS1(7),MASKFF) -c IRAS(8)=LAND(SHFTR(NEWS1(7),8),MASKFF) -c IRAS(9)=LAND(SHFTR(NEWS1(7),16),MASKFF) -c IRAS(10)=SHFTR(NEWS1(7),24) -c iras(7)=kpds(11) -c iras(8)=kpds(10) -c iras(9)=kpds(9) -c iras(10)=kpds(8) -c iras(1)=24 - CALL UPDATR - PRINT 125, IRAS(1),(IRAS(I),I=7,10) - 125 FORMAT('0TAU INCREMENT= ',I3,' BASED ON IHOUR= ',I3, - 1 ' IDAY= ',I3,' IMONTH= ',I3,' IYR= ',I5) -C -C ...GET 1000 MB V FIELD IN ARRAY V -C - IDCHK(1)=IDCHK1(1,5) - IDCHK(2)=IDCHK1(2,5) - IDCHK(5)=IDCHK1(3,5) - PRINT 51, (IDCHK(I),I=1,6) -c special for v - do 313,n=1,25 - 313 kds(n)=-1 - kds(7)=ibar(lvl11) - kds(5)=34 - kds(6)=100 -c kds(7)=1000 - if(lvl11 .eq. 8) kds(7)=1000 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,v) - call i3to53(f3,vold) - IF(IERR.NE.0) GO TO 180 -c CALL W3AI01(IBUF1,V,NEWS1) - GO TO 190 -C -C ...GET 500 MB U FIELD IN ARRAY U -C - 150 CONTINUE - IARR2(1)=JTITL2(1) - IARR2(2)=JTITL2(2) - IARR2(3)=JTITL2(3) - IDCHK(1)=IDCHK1(1,4) - IDCHK(2)=IDCHK1(2,4) - IDCHK(5)=IDCHK1(3,4) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=33 - kds(6)=100 - kds(7)=500 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF(IERR.NE.0) GO TO 180 - CALL W3FP02(NEWS1,ITITLE,1) - PRINT 120,(ITITLE(I),I=1,22) -c CALL W3AI01(IBUF1,U,NEWS1) -C ...SET UP DATE FOR TITLE -C -c IRAS(1)=LAND(NEWS1(1),MASKFF) -c IRAS(7)=LAND(NEWS1(7),MASKFF) -c IRAS(8)=LAND(SHFTR(NEWS1(7),8),MASKFF) -c IRAS(9)=LAND(SHFTR(NEWS1(7),16),MASKFF) -c IRAS(10)=SHFTR(NEWS1(7),24) -c CALL UPDATR - PRINT 125, IRAS(1),(IRAS(I),I=7,10) -C -C ...GET 500 MB V FIELD IN ARRAY V -C - IDCHK(1)=IDCHK1(1,5) - IDCHK(2)=IDCHK1(2,5) - IDCHK(5)=IDCHK1(3,5) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=34 - kds(6)=100 - kds(7)=500 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,v) - call i3to53(f3,vold) - IF(IERR.NE.0) GO TO 180 -c CALL W3AI01(IBUF1,V,NEWS1) - GO TO 190 -C -C ...GET 250 MB U FIELD IN ARRAY U -C - 160 CONTINUE - IARR2(1)=JTITL3(1) - IARR2(2)=JTITL3(2) - IARR2(3)=JTITL3(3) - IDCHK(1)=IDCHK1(1,4) - IDCHK(2)=IDCHK1(2,4) - IDCHK(5)=IDCHK1(3,4) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=33 - kds(6)=100 - kds(7)=250 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF(IERR.NE.0) GO TO 180 - CALL W3FP02(NEWS1,ITITLE,1) - PRINT 120,(ITITLE(I),I=1,22) -c CALL W3AI01(IBUF1,U,NEWS1) -C ...SET UP DATE FOR TITLE -C -c IRAS(1)=LAND(NEWS1(1),MASKFF) -c IRAS(7)=LAND(NEWS1(7),MASKFF) -C IRAS(8)=LAND(SHFTR(NEWS1(7),8),MASKFF) -c IRAS(9)=LAND(SHFTR(NEWS1(7),16),MASKFF) -c IRAS(10)=SHFTR(NEWS1(7),24) -c CALL UPDATR - PRINT 125, IRAS(1),(IRAS(I),I=7,10) -C -C ...GET 250 V FIELD IN ARRAY V -C - IDCHK(1)=IDCHK1(1,5) - IDCHK(2)=IDCHK1(2,5) - IDCHK(5)=IDCHK1(3,5) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=34 - kds(6)=100 - kds(7)=250 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,v) - call i3to53(f3,vold) - IF(IERR.NE.0) GO TO 180 -c CALL W3AI01(IBUF1,V,NEWS1) - GO TO 190 -C -C ...GET 850 MB U FIELD IN ARRAY U - 1800 CONTINUE - IARR2(1)=JTITL4(1) - IARR2(2)=JTITL4(2) - IARR2(3)=JTITL4(3) - IDCHK(1)=IDCHK1(1,4) - IDCHK(2)=IDCHK1(2,4) - IDCHK(5)=IDCHK1(3,4) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=33 - kds(6)=100 - kds(7)=850 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF(IERR.NE.0) GO TO 180 - CALL W3FP02(NEWS1,ITITLE,1) - PRINT 120,(ITITLE(I),I=1,22) -c CALL W3AI01(IBUF1,U,NEWS1) -C ...SET UP DATE FOR TITLE -C -c IRAS(1)=LAND(NEWS1(1),MASKFF) -c IRAS(7)=LAND(NEWS1(7),MASKFF) -c IRAS(8)=LAND(SHFTR(NEWS1(7),8),MASKFF) -c IRAS(9)=LAND(SHFTR(NEWS1(7),16),MASKFF) -c IRAS(10)=SHFTR(NEWS1(7),24) -c CALL UPDATR - PRINT 125, IRAS(1),(IRAS(I),I=7,10) -C -C ...GET 850 MB V FIELD IN ARRAY V -C - IDCHK(1)=IDCHK1(1,5) - IDCHK(2)=IDCHK1(2,5) - IDCHK(5)=IDCHK1(3,5) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=34 - kds(6)=100 - kds(7)=850 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,v) - call i3to53(f3,vold) - IF(IERR.NE.0) GO TO 180 -c CALL W3AI01(IBUF1,V,NEWS1) - GO TO 190 -C -C ...TROP LEVEL PLOTS NO WINDS -- SO GET OUT -C - 170 CONTINUE - GO TO 190 - 180 CONTINUE - PRINT 181 - 181 FORMAT('0ID ERROR W3FK43 FOR U/V FIELD-EXIT') - RETURN - 190 CONTINUE - iF(IZSET.NE.4) GO TO 195 -C -C ...GET TROPOPAUSE PRESSURE FIELD IN ARRAY V - IDCHK(1)=IDCHK1(1,1) - IDCHK(2)=IDCHK1(2,1) - IDCHK(5)=IDCHK1(3,1) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=01 - kds(6)=7 -c kds(7)= - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,v) - IF(IERR.EQ.0) GO TO 145 - PRINT 146 - 146 FORMAT('0ID ERROR W3FK43 FOR TROP PRES FIELD-EXIT') - RETURN - 145 CONTINUE -C CALL W3AI01(IBUF1,V,NEWS1) -C -c IRAS(1)=LAND(NEWS1(1),MASKFF) -c IRAS(7)=LAND(NEWS1(7),MASKFF) -c IRAS(8)=LAND(SHFTR(NEWS1(7),8),MASKFF) -C IRAS(9)=LAND(SHFTR(NEWS1(7),16),MASKFF) -c IRAS(10)=SHFTR(NEWS1(7),24) -c CALL UPDATR - PRINT 125, IRAS(1),(IRAS(I),I=7,10) - UM = .02 - UA =0.0 - B1=50.0 - A1=0.0 - JFLD=1 - CALL UVCLIP(U,V,VSIDE,FLD1,IMAX,JMAX,UM,UA,JFLD) -C ...TROP PRESS NOW IN FLD1 -C -C ...GET TROPOPAUSE TEMPERATURE FIELD IN ARRAY U. -C - IDCHK(1)=IDCHK1(1,7) - IDCHK(2)=IDCHK1(2,7) - IDCHK(5)=IDCHK1(3,7) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=11 - kds(6)=7 -c kds(7)= - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF(IERR.EQ.0) GO TO 148 - PRINT 147 - 147 FORMAT('0ID ERROR W3FK43 FOR TROP TEMP FIELD-EXIR') - RETURN - 148 CONTINUE -c CALL W3AI01(IBUF1,U,NEWS1) - UM=1.0 - UA=-273. - JFLD=1 - CALL UVCLIP(V,U,VSIDE,FLD2,IMAX,JMAX,UM,UA,JFLD) -C ...TROP TEMP NOW IN FLD2 -C -C****************************************************************** -C GET TROPOPAUSE VERTICAL WIND SHEAR FIELD IN ARRAY U . . . -C****************************************************************** - IDCHK(1) = IDCHK1(1,8) - IDCHK(2) = 0 - IDCHK(5) = IDCHK1(3,8) - PRINT 51,(IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=45 -c WARNING, THIS IS JUST U SHEAR - kds(6)=7 -c kds(7)= - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF (IERR .EQ. 0) GO TO 707 - PRINT 708 - 708 FORMAT('0ID ERROR W3FK43 FOR TROP VWS FIELD -- EXIT') - RETURN -C - 707 CONTINUE -c CALL W3AI01(IBUF1,U,NEWS1) - UM = 592. - UA = 0. - JFLD = 1 - CALL UVCLIP(V,U,VSIDE,FLD3,IMAX,JMAX,UM,UA,JFLD) -C -C . . . TROP VWS NOW IN FLD3 . . . -C -C -C ...FIND TROPPAUSE TEMPERATURE VALUES AND -C ...PLACE ON TROPOPAUSE PRESSURE CONTOUR STRIPS -C -C - DO 1430 IGOR=1,IMAX - DO 1430 JGOR=1,JMAX - INTEG=FLD2(IGOR,JGOR)+0.5 - IF(INTEG.EQ.99) FLD1(IGOR,JGOR)=DEF - 1430 CONTINUE - PUTHGT=1.0 - PUTANG=0.0 - IPRPUT=1 - ITAPUT=0 - M=3 - IFIX=2 - IUP=42 - LOX=0 - A2=0.0 - B2= 1.0 - S=.5 - IRTCOR=0 - IUPCOR=-50 - MXITR=7 - DO 149 ILAB=1,5 - JFIX=KCFIX(ILAB) - CALL CLOSEF(FLD1,FLD2,IMAX,JMAX,S,A2,B2,M,IFIX,JFIX,XLPLMI,IFM, - 1 IUP,LOX,ITABMB,ITABFL,MXITR) - 149 CONTINUE - DO 142 I=1,IMAX - DO 141 J=1,JMAX - FLD2(I,J) = FLD2(I,J) * .2 - 141 CONTINUE - 142 CONTINUE - GO TO 800 -C -C ...PROCESS INPUT DATA FOR 1ST FIELD FOR CONTOURING-STREAMS -C - 195 CONTINUE -C ...BUT FIRST WE MUST SCALE,TURN SIDEWAYS,AND CLIP U,V&PLOT WINDS - UM=1.9424 - UA=0.0 - JFLD=2 - CALL UVCLIP(U,V,FLD1,VSIDE,IMAX,JMAX,UM,UA,JFLD) -C ...NOW U SIDEWAYS IS IN FLD1(48,119) -C ...AND V SIDEWAYS IS IN VSIDE(48,119) -C ...IBUF1 STILL HAS PACKED V -C ...ORIGINAL U FIELD IS STILL INTACT -C -C ...NOW PLOT WINDS - CALL WNDPLO(FLD1,VSIDE,IMAX,JMAX) -c isotac call moved up here from position -c 30 lines down since fld1 is clobbered -c by streamfunction .. not good -c CALL ISOTAC(FLD1,VSIDE,48,119,FLD2) - CALL ISOTAC(FLD1,VSIDE,48,119,FLD2) - DO 1750 J=1,119 - DO 1750 I=1,48 - FLD2(I,J)=FLD2(I,J)*.05+6.5 - 1750 CONTINUE - -C -C ...TO RESTORE V -c CALL W3AI01(IBUF1,V,NEWS1) -c to restore v - do 389,k=1,51 - do 389 j=1,117 - 389 v(j,k)=vold(j,k) -c - DO 390 J=1,51 - DO 390 I=1,117 - V(I,J)=V(I,J)*1.9424 - 390 CONTINUE -C -C ...FORM STREAMS - print 1999,kds - 1999 format(5z20) -c CALL STR(ZETA,U,UC,V,VC) -c obtain 360x181 streamfunction on f3 -c from u and v fields in lun - call stream3(kds(7),kds(14),lun,luni,f3) -c -c streamfunction is now M**2/SEC**2. We need to convert to -c Z. The conversion factor is just f/g. The apparent -c assumption from old stremafunction source is that f -c is held constant at its 45 degree value -c - pi=3.1415927 - sin45=sqrt(2.)/2 - omega=2*pi/86400. - g=9.81 - fcoril=2*omega*sin45 - factor=fcoril/g -c downstream code has cgs logic and expects -c centimeters. adjust factor - factor=factor*100 -c divide by another two if level is 300 mbars or higher - if(kds(7) .lt. 301) factor=factor/2. - do j=1,nlats - do k=1,nlons - f3(k,j)=f3(k,j) * factor - end do - end do -c END CGS CONVERSION -c interpolate to type 53 mercator grid - call i3to53(f3,stfmx) -c draw equator bulls eye for location confirmation. -ccc stfmx(90,26)=50000. -C -C ...STFMX CONTAINS THE RESULTING STREAM FUNCTION FIELD -c CALL FLIPTR(STFMX,STFMY,FLD1) - CALL FLIPTR(STFMX,STFMY,FLD1) - if(kds(7) .eq. 1000) go to 800 -c IF(IZSET.EQ.1) GO TO 800 -C ...CUT CNTR INTERVAL IN HALF FOR EVERY LEVEL EXCEPT 1000 MB - - print *,'9999 cntr cutter at ', kds(7) - DO 165 J=1,119 - DO 165 I=1,48 - FLD1(I,J)=FLD1(I,J)*0.5 - 165 CONTINUE - GO TO 800 -C -C ...PROCESS INPUT DATA FOR 2ND FIELD FOR CONTOURING-ISOTACH -C - 200 CONTINUE -c CALL ISOTAC(FLD1,VSIDE,48,119,FLD2) -c DO 175 J=1,119 -c DO 175 I=1,48 -c FLD2(I,J)=FLD2(I,J)*.05+6.5 -c 175 CONTINUE - GO TO 800 -C -C ...PROCESS INPUT DATA FOR 3RD FIELD CONTOURING-ISOTHERMS -C - 300 CONTINUE - IDCHK(1)=IDCHK1(1,3) - IDCHK(2)=IDCHK1(2,3) - IDCHK(5)=IDCHK1(3,3) - PRINT 51, (IDCHK(I),I=1,6) - izz=ibar(lvl33) - ity=iin(ifldc) - kds(7)=izz - if(izz .eq. 0) kds(6)=7 - kds(14)=irunta(3) - kds(5)=ity -c GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - IF(IERR.EQ.0) GO TO 310 - PRINT 312, IERR - 312 FORMAT('0ID ERROR W3FK43 FOR TMPS--IERR = ',I4) - RETURN - 310 CONTINUE - CALL W3AI01(IBUF1,U,NEWS1) - UM=1.0 - UA=0.0 - JFLD=1 - CALL UVCLIP(V,U,VSIDE,FLD3,IMAX,JMAX,UM,UA,JFLD) - DO 750 IT=1,48 - DO 749 JT=1,119 - FLD3(IT,JT) = (FLD3(IT,JT) - 273.)/5. - 749 CONTINUE - 750 CONTINUE -C ...ISOTHERMS NOW IN FLD3 - 800 CONTINUE - 1000 CONTINUE - RETURN - END diff --git a/util/sorc/trpanl.fd/REDUCX.f b/util/sorc/trpanl.fd/REDUCX.f deleted file mode 100755 index 986c240d75..0000000000 --- a/util/sorc/trpanl.fd/REDUCX.f +++ /dev/null @@ -1,40 +0,0 @@ - SUBROUTINE REDUCX -C ...GIVEN ... STREAM FUNCTION FIELD PREPARED BY POTEX 00392400 -C ... IN /STRPOT/ STFM(118,52) 00392500 -C ...TASK ... TO SMOOTH, RESCALE, AND TRANSFER TO A SMALLER GRID 00392600 -C ... IN /ISPACE/ STFMX(116,51) 00392700 -C ... IN A FORM READY FOR MERC 00392800 -C ...WHAT ARE UNITS OF GIVEN FIELD... 00392900 -C ...WHAT ARE UNITS OF RESULTING FIELD QQQQQ 00393000 - COMMON /ISPACE/ STFMX(116,51),XTRA(12256) - COMMON /STRPOT/ STFM(118,52) - CFB = 3.14159 / 2.16E+04 - SSF = (980.0 * SQRT(2.0)) / CFB - DO 200 I = 2,117 - DO 200 J = 1,51 - VAL = STFM(I,J) + STFM(I+1,J) + STFM(I,J+1) + STFM(I+1,J+1) - IF(J .EQ. 1) GO TO 10 - IF(J .EQ. 51) GO TO 10 - IF(I .EQ. 117) GO TO 17 - STFMX(I,J)=(81.0*VAL - 9.0*(STFM(I,J-1)+STFM(I+1,J-1)+STFM(I+2,J) - 1 +STFM(I+2,J+1)+STFM(I+1,J+2)+STFM(I,J+2)+STFM(I-1,J+1) - 2 +STFM(I-1,J)) - 3 +STFM(I-1,J-1) + STFM(I+2,J-1) + STFM(I+2,J+2) - 4 +STFM(I-1,J+2)) / 256.0 - STFMX(I,J) = STFMX(I,J) / SSF - GO TO 200 - 10 IF(I .EQ. 117) GO TO 11 - STFMX(I,J) = VAL / (4.0 * SSF) - GO TO 200 - 11 STFMX(1,J) = VAL / (4.0 * SSF) - GO TO 200 - 17 CONTINUE - STFMX(1,J) = (81.0*VAL - 9.0*(STFM(I,J-1)+STFM(I+1,J-1)+STFM(3,J) - 1 +STFM(3,J+1)+STFM(I+1,J+2)+STFM(I,J+2)+STFM(I-1,J+1) - 2 +STFM(I-1,J)) - 3 +STFM(I-1,J-1)+STFM(3,J-1)+STFM(3,J+2) - 4 +STFM(I-1,J+2)) / 256.0 - STFMX(1,J) = STFMX(1,J) / SSF - 200 CONTINUE - RETURN - END diff --git a/util/sorc/trpanl.fd/RNCNTL.f b/util/sorc/trpanl.fd/RNCNTL.f deleted file mode 100755 index 26b35fb02b..0000000000 --- a/util/sorc/trpanl.fd/RNCNTL.f +++ /dev/null @@ -1,161 +0,0 @@ - SUBROUTINE RNCNTL(NMAPS,IDATC,IOPN,ISWTCH,KRUN1,ITOUT1,ICYC1, - 1 INOPN1,INOPN2,INOPNA,INOPNB) - DIMENSION LKRUN(3,4) - DIMENSION LICYL(2,2) - DIMENSION LITOUT(3,4) - DIMENSION ICODES(3,5) - DIMENSION JCODES(2,5) - DATA NKRUN/4/ -C ...RUN TYPE CONTROL TABLE 00145800 -C 00145900 - DATA LKRUN/4HOPNL,1H ,1,4HOPNL,1HB,2,4HCOUT,1HD,3,4HCOUT,1HT, - 1 4/ -C 00146200 -C ...OUTPUT CYCLE CONTROL TABLE 00146300 -C 00146400 - DATA LICYL/3H00Z,1,3H12Z,2/ - DATA NITOUT/4/ -C 00146700 -C ...OUTPUT TAU CONTROL TABLE 00146800 -C 00146900 - DATA LITOUT/4H1824,1HH,1,4H3036,1HH,2,4HALL ,1H ,3,4H2448,1HH,4 - 1 / - DATA NICYL/2/ - DATA NMAPM/100/ - DATA NOPCDS/5/ - DATA ICODES/4HOPN0,1H9,1,4HOPN1,1H0,2,4HOPN2,1H5,3,4HOPN2,1H6, - 1 4,4HOPN2,1H8,5/ - DATA JCODES/4HJ080,1H4,4HJ082,1H4,4HJ087,1H4,4HJ999,1H8, - + 4HJ999,1H9/ -C ...THIS SUBROUTINE READS IN THE BASIC JOB RUN 00147900 -C ...CONTROLS AND CHECKS THEM FOR PROPER CLASSIFICATIONS 00148000 -C 00148100 -C ...INPUT CONTROLS 00148200 -C (1) KRUNA,KRUNB (A4,A1) 00148300 -C WHERE KRUN=1 OPNL 18/24 OR 24/48 RUN 00148400 -C 2 OPNL 30/36 RUN BACKUP 00148500 -C 3 CHECKOUT RUN(DISK) 00148600 -C 4 CHECKOUT RUN(TAPE) 00148700 -C (2) ITOUTA,ITOUTB (A4,A1) 00148800 -C WHERE ITOUT=1 OUTPUT 18/24 HR REGULAR 00148900 -C 2 OUTPUT 30/36 HR BACKUP 00149000 -C 3 ALL 00149100 -C 4 OUTPUT 24/48 HR REGULAR 00149200 -C (3) ICYCLA,ICYCLB (A4,A1) 00149300 -C WHERE ICYCLE=1 00Z 00149400 -C212 00149500 -C 00149600 -C (4) NMAPS (I5) 00149700 -C WHERE NMAPS=NO. OF MAPS TO BE PROCESSED 00149800 -C 00149900 -C (5) IDATC (I5) 00150000 -C WHERE IDATC=0 NO DATE/TIME TEST 00150100 -C 1 DATE/TIME TEST 00150200 -C (6) IOPN (I5) 00150300 -C WHERE IOPN=0 CHECKOUT RUN 00150400 -C 1 OPERATIONAL RUN 00150500 -C 00150600 -C (7) INTAPE (I5) 00150700 -C WHERE INTAPE=0 INPUT FROM DISK-OPERATIONAL 00150800 -C 1 INPUT SPECTRAL FILES FROM TAPE 00150900 -C 00151000 -C (8) INOPNA,INOPNB (A4,A1) 00151100 -C WHERE INOPN= OPERATIONAL JOB TYPE 00151200 -C 00151300 -C (9) ISWTCH=0 INPUT SCHEDULE CONTROLS FROM CARDS 00151400 -C 1 INPUT SCHEDULE CONTROLS FORM DISK 00151500 -C 00151600 -C ...BASIC JOB RUN CONTROLS (SET FOR EACH JOB) 00151700 -C 00151800 -C 00151900 -C 00152000 - READ 5500,KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS,IDATC, - 1 IOPN,INTAPE,INOPNA,INOPNB,ISWTCH - 5500 FORMAT(3(A4,A1),4I5,A4,A1,I5) - PRINT 5509 - 5509 FORMAT('1BASIC JOB RUN CONTROLS (SET FOR EACH JOB)') - PRINT 5510, KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS - 5510 FORMAT('0OPERATIONAL RUN TYPE= ',A4,A1,' OUTPUT TAU= ',A4,A1,' - 1RUN CYCLE= ',A4,A1,' NUMBER OF MAPS= ',I5) - PRINT 5511,IDATC,IOPN,INTAPE - 5511 FORMAT('0DATE CHECK= ',I5,' OPERATIONAL FLAG= ',I5,' INPUT TAP - 1E FLAG= ',I5) - PRINT 5513,ISWTCH,INOPNA,INOPNB - 5513 FORMAT('0INPUT SCHEDULE CONTROL SWITCH= ',I5,' OPNL JOB TYPE= ' - 1,A4,A1) - DO 5550 IK=1,NKRUN - IF((KRUNA.NE.LKRUN(1,IK)).OR.(KRUNB.NE.LKRUN(2,IK))) GO TO 5550 - KRUN1=LKRUN(3,IK) - GO TO 5553 - 5550 CONTINUE - PRINT 5540 - 5540 FORMAT('0ERROR ON CONTROL INPUT CARD FOR KRUN-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 541 - 5553 CONTINUE - DO 5555 IK=1,NITOUT - IF((ITOUTA.NE.LITOUT(1,IK)).OR.(ITOUTB.NE.LITOUT(2,IK))) GO TO - 15555 - ITOUT1=LITOUT(3,IK) - GO TO 5560 - 5555 CONTINUE - PRINT 5543 - 5543 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ITOUT-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 544 - 5560 CONTINUE - DO 5565 IK=1,NICYL - IF(ICYCLA.NE.LICYL(1,IK)) GO TO 5565 - ICYC1=LICYL(2,IK) - GO TO 5570 - 5565 CONTINUE - PRINT 5545 - 5545 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ICYCLE-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 546 - 5570 CONTINUE - IF((NMAPS.LE.NMAPM).AND.(NMAPS.GT.0)) GO TO 5575 - PRINT 5547 - 5547 FORMAT('0ERROR ON CONTROL INPUT CARD FOR NMAPS-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 552 - 5575 CONTINUE - IF((IDATC.EQ.0).OR.(IDATC.EQ.1)) GO TO 5620 - PRINT 5600 - 5600 FORMAT('0ERROR ON CONTROL INPUT CARD FOR IDATC-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 601 - 5620 CONTINUE - IF((IOPN.EQ.0).OR.(IOPN.EQ.1)) GO TO 5630 - PRINT5602 - 5602 FORMAT('0ERROR ON CONTROL INPUT CARD FOR IOPN-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 603 - 5630 CONTINUE - IF((INTAPE.GT.-1).AND.(INTAPE.LE.1)) GO TO 5640 - PRINT 5604 - 5604 FORMAT('0ERROR ON CONTROL INPUT CARD FOR INTAPE-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 605 - 5640 CONTINUE - IF((ISWTCH.GT.-1).AND.(ISWTCH.LE.1)) GO TO 5650 - PRINT 5606 - 5606 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ISWTCH-FIX THEN RSTART') - CALL W3TAGE('TRPSFPRV') - STOP 607 - 5650 CONTINUE - DO 5651 IK=1,NOPCDS - IF((INOPNA.NE.ICODES(1,IK)).OR.(INOPNB.NE.ICODES(2,IK))) GO TO - 15651 - INOP=ICODES(3,IK) - INOPN1=JCODES(1,INOP) - INOPN2=JCODES(2,INOP) - GO TO 5654 - 5651 CONTINUE - PRINT 5652 - 5652 FORMAT('0ERROR ON CONTROL INPUT CARD FOR INOPN-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 653 - 5654 CONTINUE - RETURN - END diff --git a/util/sorc/trpanl.fd/SLTCRD.f b/util/sorc/trpanl.fd/SLTCRD.f deleted file mode 100755 index b5b76545a4..0000000000 --- a/util/sorc/trpanl.fd/SLTCRD.f +++ /dev/null @@ -1,130 +0,0 @@ - SUBROUTINE SLTCRD(ISWTCH,ISLOTA,ISLOTB,IPANA,IPANB,IRLAB,IREM3A, - 1 IREM3B,IREM3C,IREM4A,IREM4B,IAREA3,ISUB,IFLAB,INSET,IREM1A, - 1 IREM1B) -C ...THIS SUBROUTINE READS IN THE MAP SLOT CARDS AND CHECKS THEM 00255500 -C ...FOR ACCEPTABLE ENTRIES 00255600 - COMMON/WEFAX/ IAPT - DIMENSION IPANC(3,11) - DIMENSION IAREA(3,26) - DATA IAREA/4HCA14,1H ,1,4HCA13,1H ,2,4HCA13,1HI,3,4HNT11,1H ,4, - 1 4HNT11,1HA,5,4HNT11,1HB,6,4HPA13,1H ,7,4HPA14,1H ,8, - 2 4HUS10,1H ,9,4HNT18,1H ,10,4HNT18,1HI,11,4HUS12,1H ,12, - 3 4HVFUL,1HL,13,4HVPAR,1HT,14,4HPA13,1HA,15,4HPA19,1H ,16, - 4 4HAPT3,1H ,17,4HAPT4,1H ,18,4HUS10,1HA,19,4HCA19,1H ,20, - 5 4HCA19,1HI,21,4HAPT5,1H ,22,4HAPT6,1H ,23,4HAPT7,1H ,24, - 6 4HTEST,1H ,25,4HHONO,1H ,26/ - DATA IPANC/4HP1 ,1H ,1,4HP2 ,1H ,2,4HP3 ,1H ,3,4HP4 ,1H ,4, - 1 4HP1A ,1H ,5,4HP2A ,1H ,6,4HP3A ,1H ,7,4HP4A ,1H ,8,4HI1 , - 2 1H ,9,4HI2 ,1H ,10,4HB2 ,1H ,11/ - DATA NPARTS/11/ - DATA IBCHK/4H / - DATA JU/8/ - DATA NAREAS /26/ - DATA IR1/100/ - DATA IR2/5000/ - DATA IR3/80/ - DATA IR4/99/ -C 00257800 -C ...BASIC FAX/VARIAN CONTROLS (EACH MAP SUB-SECTION) 00257900 -C 00258000 -C ICARD2 (A1)= CARD2 CONTROL 00258100 -C ISLOTA,B (A4,A1)= FAX/VARIAN SLOT NO. 00258200 -C IPANA,B (A4,A1)= PANEL PART OR REAL INSET PART 00258300 -C IAREA1,2 (A4,A1)= FAX/VARIAN OUTPUT PIECE 00258400 -C ISUB (I5)= SUBSET NO. 00258500 -C IFLAB (I5)= FRONT LABEL INSET NO. 00258600 -C INSET (I5)= INSET NO. 00258700 -C IRLAB (I5)= REAR LABEL INSET NO. 00258800 -C IREM1A,B,C (A4,A4,A2)= PANEL 2 OR PANEL4 TITLE 00258900 -C IREM3A,B,C (A4,A4,A2)= PANEL 1 OR PANEL3 OR SUBSET TITLE 00259000 -C 00259100 - print 1098,(j,(iarea(k,j), k=1,3),j=1,26) - 1098 format(' 9999 iarea= in sltcrd ',i5,1x,3a5) - IAPT = 0 - IF(ISWTCH.EQ.1) GO TO 8002 - READ 8200, ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 8200 FORMAT(A1,3(A4,A1),4I5,2A4,A2,4A4,A2,4A4) - GO TO 8003 - 8002 READ (JU,8200) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB - 1 ,IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 8003 CONTINUE - PRINT 8202, ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB,IFLAB, - 1 INSET - 8202 FORMAT('0SLOT NO.= ',A4,A1,' PANEL/INSET= ',A4,A1, - 2 'AREA= ',A4,A1,' SUBSET NO.=',I5,' FRONT LABEL INSET NO.=', - 2 I5,' INSET NO.=',I5) -C 00260800 -C ...CHECK FOR REASONABLE PANEL PARTS/INSET PARTS 00260900 -C 00261000 - DO 8215 IK=1,NPARTS - IF((IPANA.EQ.IBCHK).AND.(IPANB.EQ.IBCHK)) GO TO 8220 - IF((IPANA.NE.IPANC(1,IK)).OR.(IPANB.NE.IPANC(2,IK))) GO TO 8215 - IPAN1=IPANC(3,IK) - GO TO 8220 - 8215 CONTINUE - PRINT 8216 - 8216 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IPAN-FIX THEN - 1RETRY') - CALL W3TAGE('GRAPH_TRPANL') - STOP 216 - 8220 CONTINUE -C 00262400 -C ...CHECK FOR REASONABLE AREA REQUESTS 00262500 -C 00262600 - DO 8235 IK=1,NAREAS - IF((IAREA1.EQ.IBCHK).AND.(IAREA2.EQ.IBCHK)) GO TO 8225 - IF((IAREA1.NE.IAREA(1,IK)).OR.(IAREA2.NE.IAREA(2,IK))) GO TO 8235 - IAREA3=IAREA(3,IK) - IF(IAREA3.EQ.17.OR.IAREA3.EQ.18.OR.(IAREA3.GE.22.AND.IAREA3.LE. - & 24)) IAPT = 1 - GO TO 8240 - 8225 PRINT 8226 - 8226 FORMAT('0IAREA1,2 WAS BLANK-WILL CONTINUE') - GO TO 8240 - 8235 CONTINUE - PRINT 8236 - 8236 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IAREA1,2-FIX - 1THEN RETRY') - CALL W3TAGE('GRAPH_TRPANL') - STOP 236 - 8240 CONTINUE -C 00264600 -C ...CHECK FOR REASONABLE SUBSET/INSET NUMBERS 00264700 -C 00264800 - IF(ISUB.LT.0) GO TO 8243 - IF(((ISUB.GE.IR1).AND.(ISUB.LE.IR2)).OR.((ISUB.GE.IR3).AND.(ISUB.L - 1E.IR4))) GO TO 8301 - PRINT 8241, ISUB - 8241 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR ISUB-FIX THEN - 1RETRY ',I4) - CALL W3TAGE('GRAPH_TRPANL') - STOP 241 - 8243 CONTINUE - PRINT 8244 - 8244 FORMAT('0SUBSET NUMBER IS BLANK-WILL CONTINUE') - 8301 CONTINUE - IF(IFLAB.LE.0) GO TO 8253 - IF(((IFLAB.GE.IR1).AND.(IFLAB.LE.IR2)).OR.((IFLAB.GE.IR3).AND.(IFL - 1AB.LE.IR4))) GO TO 8302 - PRINT 8251 - 8251 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IFLAB-FIX THEN - 1 RETRY') - CALL W3TAGE('GRAPH_TRPANL') - STOP 251 - 8253 CONTINUE - 8302 CONTINUE - IF(INSET.LE.0) GO TO 8263 - IF(((INSET.GE.IR1).AND.(INSET.LE.IR2)).OR.((INSET.GE.IR3).AND.(INS - 1ET.LE.IR4))) GO TO 8303 - PRINT 8261 - 8261 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR INSET-FIX THEN - 1 RETRY') - CALL W3TAGE('GRAPH_TRPANL') - STOP 261 - 8263 CONTINUE - 8303 CONTINUE - RETURN - END diff --git a/util/sorc/trpanl.fd/SPCHK.f b/util/sorc/trpanl.fd/SPCHK.f deleted file mode 100755 index a5d1b75284..0000000000 --- a/util/sorc/trpanl.fd/SPCHK.f +++ /dev/null @@ -1,108 +0,0 @@ - SUBROUTINE SPCHK(IXL,JXL,IAPT,IPANA,IPANY,IVARY) -C ROUTINE TO CHECK FOR 2 OR MORE CONSECUTIVE SPACES IN A TITLE STRING 00301500 -C ON A VARIAN/FAX PEPFAX CHART. IF CONSECUTIVE SPACES ARE FOUND, THE 00301600 -C REMAINDER OF THE TITLE IS MOVED TO THE LEFT. THE HOPE IS TO HAVE 00301700 -C ENOUGH SPACE TO FIT THE NOAA TEXT ID IN THE TITLE OF THE CHART 00301800 -C (RIGHT-JUSTIFIED) 7/25/85 DAVE HORN. 00301900 -C MODIFIED 7/26/85 SO DUCKLING IS PUT ON PANEL CHARTS APPROPRIATELY 00302000 -C MODIFIED 7/30/85 TO USE KEVIN'S DUCK24 ROUTINE TO FIT 24-DOT 00302100 -C DUCKLING IN TITLES ON ONE PANEL CHARTS AND IN 2 & 4 PANEL CHARTS 00302200 -C MODIFIED 7/31/85 TO JUST PUT ON 24-DOT DUCKLING ON WEFAX CHARTS 00302300 -C MODIFIED 8/07/85 TO INCLUDE TESTS FOR TITLE BEING TOO LONG TO FIT ON 00302400 -C 24-DOT DUCKLING BUT SHORT ENOUGH TO PUT ON TEXT ID. 00302500 -C AT THE REQUEST OF MR. HOWCROFT, MODIFIED MULTIPLE PANEL CHARTS ON 00302600 -C 8/23/85 TO CENTER NOAA TEXT ID ON THESE CHARTS--NO 24-DOT DUCKLING. 00302700 -C ********************************************************************* 00302800 -C THIS SUBROUTINE MODIFIED ON 10/16/85 TO WORK FOR MERCFAX 00302900 -C ********************************************************************* 00303000 - COMMON/CRUNCH/IBCD2(40) - CHARACTER*1 LBCD(200),LBLNK,LDL -c LOGICAL LBCD(200),LBLNK/' '/,LDL/'$'/ 00303200 - data lblnk,ldl/' ','$'/ - EQUIVALENCE (IBCD2(1),LBCD(1)) - DATA IPANC/'P1 '/,IPANB/'P3 '/ -C CHECK TO SEE IF WE HAVE A PANEL CHART TO DEAL WITH 00303500 - IF(IPANA.EQ.IPANC.OR.IPANA.EQ.IPANB) GO TO 30 - IF(IPANY.EQ.1) RETURN -C INITIALIZATION OF TITLE VARIABLES FOR ONE-PANEL AND WEFAX CHARTS 00303800 - MNDSTR = 140 - IF(IVARY.EQ.1) MNDSTR = 86 - IF(IAPT.EQ.1) MNDSTR = 83 - INDSTR = 130 - IF(IVARY.EQ.1) INDSTR = 80 - IF(IAPT.EQ.1) INDSTR = 77 - ITITLL = 1260 - IF(IVARY.NE.1) ITITLL = 1475 - ISTRL1 = 98 - IF(IVARY.EQ.1)ISTRL1 = 74 - ISTRL2 = 95 - IF(IVARY.EQ.1)ISTRL2 = 69 -C FIND THE CONSECUTIVE SPACES 00305100 - LBCD(INDSTR) = LDL - IB2 = 0 - 10 IB2 = IB2 + 1 - IF(LBCD(IB2).EQ.LDL) GO TO 20 - IF(LBCD(IB2).NE.LBLNK.OR.LBCD(IB2+1).NE.LBLNK) GO TO 10 -C MOVE TITLE OVER IF FIND 2 CONSECUTIVE BLANKS 00305700 - 13 DO 12 IB3 = IB2,MNDSTR - LBCD(IB3) = LBCD(IB3+1) - 12 CONTINUE -C WE MAY HAVE MORE CONSECUTIVE BLANKS LET'S GO BACK AND CHECK 00306100 - IF(LBCD(IB2).EQ.LBLNK.AND.LBCD(IB2+1).EQ.LBLNK) GO TO 13 - GO TO 10 -C 1200 IS LENGTH IN DOTS OF TITLE WITH 84 CHARACTERS (CHARACTER SET 11) 00306400 -C TO RIGHT JUSTIFY THE NOAA TEXT ID AND 24-DOT DUCKLING IN THE TITLE, 00306500 -C SUBTRACT 197 DOTS (WHICH IS THE LENGTH OF THE DUCKLING AND TEXT 00306600 -C TOGETHER), THEN ADD THE "I" PORTION OF THE ORIGIN OF THE TITLE SO 00306700 -C THE 24-DOT DUCKLING STARTS IN THE RIGHT PLACE. ONLY PUT 24-DOT 00306800 -C DUCKLING ON WEFAX CHARTS. 00306900 - 20 IF(IAPT .NE. 1) GO TO 25 -C ID ASSOCIATED WITH WEFAX TITLES 00307100 - WRITE(6,100)(LBCD(I),I=1,84) - IF(IB2 .LT. 70) GO TO 21 - WRITE(6,120) IB2 - 120 FORMAT(1X,'THE NUMBER OF CHARACTERS IN THE WEFAX TITLE IS',I3, - &' AND THAT"S TOO LONG TO FIT IN THE 30-DOT DUCKLING') - RETURN - 21 CALL DUCK(720,JXL,0,9) - WRITE(6,121) JXL - 121 FORMAT(1X,'30-DOT EMBLEM PUT ON WEFAX CHART AT I,J= 720',',',I4) - RETURN -C ID ASSOCIATED WITH ANY ONE-PANEL CHARTS 00308200 - 25 IF(IB2.LT.ISTRL1) GO TO 26 - WRITE(6,110) IB2 - 110 FORMAT(1X,'THE NUMBER OF CHARACTERS IN THE TITLE IS',I3,' AND - &THAT"S TOO LONG TO FIT IN THE DUCKLING AND/OR NOAA TEXT ID') - RETURN - 26 WRITE(6,100)(LBCD(I),I=1,84) - 100 FORMAT(1X,'TITLE WITHOUT EXCESS BLANKS: ',84A1) - IXT = ITITLL - 197 + IXL - IF(IB2.GT.ISTRL2) GO TO 27 - WRITE(6,101) IXT,JXL - 101 FORMAT(1X,'30-DOT DUCKLING AND NOAA TEXT ID PUT ON ONE-PANEL CHART - & AT I,J= ',I4,',',I4) -C PUT ON THE 24-DOT DUCKLING AND TEXT ID 00309500 - CALL DUCK(IXT,JXL,0,7) - RETURN -C THERE IS ONLY ROOM TO PUT ON NOAA TEXT ID ON ONE-PANEL CHART 00309800 - 27 IXT = IXT + 35 - WRITE(6,102) IXT,JXL - 102 FORMAT(1X,'TEXT ID PUT ON ONE-PANEL CHART AT I,J= ',I4,',',I4) - CALL DUCK(IXT,JXL,0,8) - RETURN -C TO GET THE 'I' LOCATION OF THE DUCKLING FOR PANEL CHARTS: 895 DOTS 00310400 -C WOULD BE A POSITION IN THE CENTER OF THE TWO PANELS, SUBTRACT 15 DOTS 00310500 -C TO OBTAIN THE 'I' ORIGIN OF THE DUCKLING. SUBTRACT 3 DOTS FROM JXL TO 00310600 -C VERTICALLY CHOP OFF THE DUCKLING NICELY. 00310700 -C NOTE, NO NEED TO SUBTRACT 3 DOTS FROM JXL SINCE HAVE 24-DOT DUCKLING. 00310800 -C ONLY PUTTING ON THE NOAA TEXT ID CENTERED ON THE CHART--NO 24-DOT 00310900 -C DUCKLING. SUBTRACT 120 DOTS TO CENTER NOAA TEXT ID. 00311000 - 30 IXT = 900 - 120 - IF(IPANA .EQ. IPANB) IPTYPE = 4 - IF(IPANA .EQ. IPANC) IPTYPE = 2 - WRITE(6,130) IPTYPE,JXL - 130 FORMAT(1X,'NOAA TEXT ID CENTERED BETWEEN PANELS ON A',I2,' PANEL - & CHART AT I,J= 780',',',I4) - CALL DUCK(IXT,JXL,0,8) - RETURN - END diff --git a/util/sorc/trpanl.fd/STR.f b/util/sorc/trpanl.fd/STR.f deleted file mode 100755 index 0a978aff06..0000000000 --- a/util/sorc/trpanl.fd/STR.f +++ /dev/null @@ -1,78 +0,0 @@ - SUBROUTINE STR(ZETA,U,UC,V,VC) -C 00373800 - COMMON/FIXFLD/XM(51),F(51) - DIMENSION ZETA(118,52),U(117,51),UC(118,51),V(117,51),VC(118,51) - DATA IMAX,JMAX / 117,51 / - IMAX2 = IMAX + 1 - IMAXM1 = IMAX - 1 -C ... SPREAD THE U COMPONENT FROM 117X51 TO 118X51 GRID 00374400 -C ... USING ZETA AS SCRATCH STORAGE DURING SPREADING U & V 00374500 -C ... UNDER THE ASSUMPTION THAT U MAY BE EQUIVALENCED TO UC 00374600 -C ... AND V MAY BE EQUIVALENCED TO VC ARRAY 00374700 -C 00374800 - DO 10 JM = 1,JMAX -C 00375000 -C 00375100 - DO 20 IM = 1,IMAX -C 00375300 - ZETA(IM,JM) = U(IM,JM) - 20 CONTINUE - ZETA(IMAX2,JM) = 0.0 - 10 CONTINUE - DO 55 JM = 1,JMAX - DO 50 IM = 1,IMAX2 - UC(IM,JM) = ZETA(IM,JM) - 50 CONTINUE - 55 CONTINUE -C 00376300 -C ...NOW SPREAD THE V COMPONENTS 00376400 - DO 30 JM = 1,JMAX -C 00376600 -C 00376700 - DO 40 IM = 1,IMAX -C 00376900 - ZETA(IM,JM) = V(IM,JM) - 40 CONTINUE - ZETA(IMAX2,JM) = 0.0 - 30 CONTINUE - DO 77 JM = 1,JMAX - DO 70 IM = 1,IMAX2 - VC(IM,JM) = ZETA(IM,JM) - 70 CONTINUE - 77 CONTINUE -C ...GRID DISTANCE ALONG THE DIAGONAL AT 22.5 DEG. 00377900 - C3 = 3.1854E07 * 1.414 -C ...CONVERT TO CM. 00378100 - CC = 51.4791 / 1.414 - KM = IMAX - LM = JMAX - KM2 = KM + 1 - LM2 = LM + 1 - DO 200 J = 1,JMAX - DO 150 I = 1,IMAXM1 - UU = (UC(I,J) - VC(I,J)) * CC - VV = (UC(I,J) + VC(I,J)) * CC - UC(I,J) = UU - VC(I,J) = VV - 150 CONTINUE - UC(IMAX,J) = UC(1,J) - UC(IMAX2,J) = UC(2,J) - VC(IMAX,J) = VC(1,J) - VC(IMAX2,J) = VC(2,J) - 200 CONTINUE -C ...CALCULATE FINITE DIFFERENCE VORTICITY FIELD... 00379900 -C ...ZETA IS THE VORTICITY OF THE U/V FIELD... 00380000 - DO 350 J = 2,LM - DO 350 I = 2,KM - ZETA(I,J)= C3*((VC(I,J-1)+UC(I-1,J-1))/XM(J-1)-(VC(I-1,J)+ - 1 UC(I,J)) / XM(J)) - 350 CONTINUE - X1 = C3 / XM(1) - X2 = C3 / XM(51) - DO 360 I = 2,KM - ZETA(I,1) = -X1 * (UC(I-1,1) + VC(I-1,1)) - ZETA(I,LM2) = X2 * (UC(I-1,LM) + VC(I,LM)) - 360 CONTINUE - CALL POTEX(ZETA) - RETURN - END diff --git a/util/sorc/trpanl.fd/TITLES.f b/util/sorc/trpanl.fd/TITLES.f deleted file mode 100755 index 97bdbc1b10..0000000000 --- a/util/sorc/trpanl.fd/TITLES.f +++ /dev/null @@ -1,480 +0,0 @@ - SUBROUTINE TITLES(ISLOTA,ISLOTB,IPANA,IOUTIN,ILVLI,IARR2,IRLAB, - 1 INCR,INCR1,MLAST,ITAUI,IVAR,JLAST,INOPN1,INOPN2,IREM3A, - 2 IREM3B,IREM1A,IREM1B, - 1 ifld1a,ifld1b) -C 00268900 -C ...THIS SUBROUTINE PREPARES VARIAN/FAX MAP TITLES 00269000 -C 00269100 - COMMON/PACKRA/IRAS(10) - character*3 net - integer getenv - common /get3com/ctitleg - character*20 cgulf(3) - Character*132 ctitleg - dimension kprior(2) - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON/CRUNCH/IBCD2(40) - character*4 cbcd2(40) - character*160 cbcd4 - equivalence (cBCD2,cbcd4) - character*8 cbcd22(25) - equivalence (cbcd22,ibcd2) - COMMON/WEFAX/ IAPT - DIMENSION IISUB(11) - DIMENSION IBCD(25),IBCD1(40) - character*8 cbcd1(40),cbcd(25) - equivalence (cbcd,ibcd),(cbcd1,ibcd1) - DIMENSION ILVL(4,9) - DIMENSION ITITLE(8,7) - character*8 CTITLE(8,7),clvl(4,9),cisub(11) - character*8 ctitl1(3),ctitl2(3),ctitl3(3),ctitl4(3), - 1 ctitl5(3),ctitl6(3),ctitl7(3) - DIMENSION IMONT(12) - DIMENSION ITITL1(3),ITITL2(3),ITITL3(3),ITITL4(3) - DIMENSION ITITL5(3),ITITL6(3),ITITL7(3) - DIMENSION IARR1(3),IARR2(3) - DIMENSION IOUTIN(2),ILVLI(3),ITAUI(3) - DIMENSION ITITSM(4) - character*8 ctitsm(4) - DIMENSION IHOUR(4) - DIMENSION ILEV(2,4) - INTEGER ISCHED(10) - character*8 cdayw -c +/4H ,4H ,4H ,4H ,4H ,4H ,4H ,4H ,3*4H ,00271100 -c data above was cut from data below. Appears to be MVS logic error - INTEGER IDESC(11,5) - character*8 cdesc(11,5) - DATA IDESC - +/4H ,4H ,4H ,4H ,4H ,4H ,4H ,4H ,3*4H , - + 4H ,4HSTRE,4HAMS ,4H/ IS,4HOTAC,4HHS /,4H TEM,4HPS ,3*4H , - + 4H ,4HSTRE,4HAMS ,4H ,4H ,4H ,4H ,4H ,3*4H , - + 4H ,4HPRES,4HSURE,4H / T,4HEMPS,4H / V,4HWS ,4H ,3*4H , - + 4H ,4HPRES,4HSURE,4H / V,4HORTI,4HCITY,4HW ,4H ,3*4H / - DATA IISUB/1H ,2HP1,2HP2,2HP3,2HP4,2HP5,2HP6,2HI1,2HI2,2HI3, - 1 2HB2/ - DATA ILVL/4H700 ,1,4H 7,4H00MB,4H500 ,2,4H 5,4H00MB, - 1 4H400 ,3,4H 4,4H00MB,4H300 ,4,4H 3,4H00MB, - 2 4H200 ,5,4H 2,4H00MB,4H250 ,6,4H 2,4H50MB, - 1 4HTROP,7,4HTROP,4H-VWS,4H1000,8,4H 10,4H00MB, - 1 4H850 ,9,4H 8,4H50MB/ -C DATA ITITLE/2*4H ,4H S,4HTREA,4HMS/I,4HSOTA,4HCHS ,4H ,00272400 -C 1 4H 200,4HMB S,4HTREA,4HMS/W,4HINDS,4H/TRO,4HP PR,4HES / 00272500 - DATA ITITLE - 1 /4H ,4H ,4H S,4HTREA,4HMS/I,4HSOTA,4HCHS ,4H , - 2 4H 200,4HMB S,4HTREA,4HMS/W,4HINDS,4H/TRO,4HP PR,4HES , - 3 4H ,4HMB S,4HTREA,4HMS/I,4HSOTA,4HCHS/,4HTEMP,4HS , - 4 4H ,4HMB S,4HTREA,4HMS ,4H ,4H ,4H ,4H , - 5 4H ,4H PRE,4HSSUR,4HE/TE,4HMPS/,4HVWS ,4H ,4H , - 6 4H ,4H ,4H ,4H ,4H ,4H ,4H ,4H , - 7 4H ,4H ,4H ,4H ,4H ,4H ,4H ,4H / - DATA IMONT/4H JAN,4H FEB,4H MAR,4H APR,4H MAY,4H JUN, - 1 4H JUL,4H AUG,4H SEP,4H OCT,4H NOV,4H DEC/ - DATA ITITL1/4H24HR,4H PRO,2HG / - DATA ITITL2/4HV.T.,4H ,2H / - DATA ITITL3/4H BA,4HSED ,2HON/ - DATA ITITL4/4HNWS-,4HNMC ,2HWA/ - DATA ITITL5/4HSHIN,4HGTON,2H. / - DATA ITITL6/4H ,4HTROP,2H. / - DATA ITITL7/4H 2,4H00MB,2H. / - DATA IGIANT/15/ - DATA IREGU/10/ - DATA IARR1/4HARRO,4HWS G,2HIV/ - DATA IARR3/4HNDS./ -c DATA ICIRC/Z'4CE05B00'/ - DATA ICIRC / 4H($ / - DATA IBOX/Z'7D4F5B00'/ - DATA IBCHK/4H / - DATA MAPT7/Z'5600000000000000'/ -c DATA MAPT7/Z'E5000000'/ - DATA MASK8/Z'FF00000000000000'/ - DATA MAPT13/Z'4000000000000000'/ - DATA ITITSM/4*8H / -c DATA ITITSM/4*4H / - DATA IHOUR/4H18HR,4H24HR,4H30HR,4H36HR/ - DATA ILEV/4H 700,4H600 ,4H 500,4H400 ,4H 300,4H250 ,4H 200, - 1 4H200 / - character*8 cblank - integer iblank - equivalence ( cblank,iblank ) - data cblank/' ' / - do 5,k=1,20 - iax=(k-1)*8+1 - 5 cbcd4(iax:iax+7)=cblank - continue - print *, ' ENTERING TITLE 9999' - print 1966,(iras(k),k=3,10) - 1966 format(4i8,' ',4i8) - do 10,k=1,25 - 10 ibcd(k)=iblank - call byteswap(ISLOTA, 8, 1) - IVAR=LAND(ISLOTA,MASK8) - print *,' 9999 TITLES ipana,ipany,ivar',ipana,ipany,ivar - print 955,'9999 spec titles ipana ipany ivar',ipana, - 1 ipany,ivar,islota,IVAR - call byteswap(ISLOTA, 8, 1) - 955 format(a50,1x,'ipana >',a12,1x,' pan >',i2, 1x,' ivar >',a9,2z20) - IF((IVAR.EQ.MAPT7).OR.(IVAR.EQ.MAPT13)) GO TO 1350 -c go to end of routine (1425) if next ifs are true - IF(IPANA.EQ.IISUB(3)) GO TO 1425 - IF(IPANA.EQ.IISUB(5)) GO TO 1425 - IF(IPANA.EQ.IISUB(7)) GO TO 1425 - IF(IPANA.EQ.IISUB(8)) GO TO 1425 - IF(IPANA.EQ.IISUB(9)) GO TO 1425 - IF(IPANA.EQ.IISUB(10)) GO TO 1425 - 1350 CONTINUE - IPANY=0 - IVARY=0 - IF((IVAR.EQ.MAPT7).OR.(IVAR.EQ.MAPT13)) IVARY=1 - IF((IVAR.EQ.MAPT7).OR.(IVAR.EQ.MAPT13)) - 1 print *,' 9999 MAPT7=IVARY' - IF(IPANA.NE.IBCHK) IPANY=1 - IUHR1=IRAS(3) - CALL W3AI15(IUHR1,IUHR1,1,2,1H-) - IDAY1=IRAS(4) - IMON=IRAS(5) - IYRR=IRAS(6) - CALL W3AI15(IDAY1,IDAY,1,2,1H-) -C -CADDED BY KUMAR BEGIN -C - IYRR = IYRR + 1900 - IF(IYRR.LT.1950) THEN - IYRR = IYRR + 100 - ENDIF -C -CADDED BY KUMAR END -C -c CALL DAYOWK(IDAY1,IMON,IYRR,IDAYB,IDAYW) - CALL DAYOWK(IDAY1,IMON,IYRR,IDAYB,cDAYW) - print *,'9999 dayowk ',iday1,imon,iyrr,idayb,cdayw - IOUT1=IOUTIN(1) - LVL11=ILVLI(1) - LVL1=ILVL(1,LVL11) - CALL ENCODE(IBCD(1),20) - WRITE(99,1405) ISLOTA,ISLOTB,IREM3A - 1405 FORMAT(1X,A4,A1,4X,A4,1X,5HFCST ) - IF(IOUT1.GE.2) GO TO 1360 - CALL ENCODE(IBCD(6),20) - WRITE(99,1400)ITITLE(1,IOUT1),LVL1,ITITLE(4,IOUT1),ITITLE(5,IOUT1) - 1400 FORMAT(2A4,4HMB S,2A4) - GO TO 1403 - 1360 CONTINUE - CALL ENCODE(IBCD(6),20) - WRITE(99,1401)LVL1,(ITITLE(I,IOUT1),I=2,5) - 1401 FORMAT( A4,4A4) - 1403 CONTINUE - CALL ENCODE(IBCD(11),48) - WRITE(99,1402)(ITITLE(I,IOUT1),I=6,8),IUHR1,IDAYW,IDAY1, - 1 IMONT(IMON),IYRR - 1402 FORMAT(3A4,5HVALID,1X,A2,2HZ ,A3,1X,I2,A4,3H ,I5,11X) - NCHAR=87 - NCHAR=67 - IF(IVARY.EQ.0) GO TO 1440 -C 00279900 -C ...PUT VARIAN MAP TITLE INTO LABEL ARRAY 00280000 -C 00280100 -C CALL ENCODE(IBCD(1),8) 00280200 -C WRITE(99,1407) INOPN1,INOPN2 00280300 -C1407 FORMAT(A4,A1,3X) 00280400 - IXL=30 - JXL=960 - HT=11.0 - print *,'before 1410 9999 print' - PRINT 1410, (IBCD(I),I=1,22) - DO 1500 IB2 = 1,25 - IBCD2(IB2) = IBCD(IB2) - write(cbcd2(ib2),1995)ibcd(ib2) -c cbcd22(ib2)=' ' -c cbcd22(1)='stuf' - 1995 format(a4) - 1500 CONTINUE - write(cbcd4(1:5),1901)islota,islotb - write(cbcd4(7:10),1903)iras(1),'HR' -c write (cbcd4(12:100),1711)ctitleg(11:14),ctitleg(20:21), -C 1 ctitleg(30:31),ctitleg(43:46) - write(cgulf(1),2711)iras(1),'HR',ctitleg(11:14),'MB' - write(cgulf(2),2712)iras(3),cdayw - ifound=getenv('net',net) -c write(cgulf(3),2713)iras(4),imont(iras(5)),iras(6),'GFS' - if (net .eq. 'fnl' ) then - write(cgulf(3),2713)iras(4),imont(iras(5)),iyrr,'FNL' - else - write(cgulf(3),2714) 'GFS',iras(4),imont(iras(5)),iyrr - endif - 2711 format(i2,a2,x,a4,a2) - 2712 format('VT ',i2.2,'Z',1x,a3) - 2713 format(i2.2,a4,' ',i5,1x,a3) - 2714 format(a3,1x,i2.2,a4,' ',i5) - if(iout1 .ne. 4) then - write (cbcd4(12:100),1711)ctitleg(11:14), - 1 iras(3),cdayw,iras(4),IMONT(iras(5)),iyrr - else - write (cbcd4(12:100),1714)ctitleg(11:14), - 1 iras(3),cdayw,iras(4),IMONT(iras(5)),iyrr - endif -1711 format(' OBS. ',a4,' STREAMS/ISOTACH ','VALID ',i2.2,'Z ', - 1 a3,1x,i2.2,' ',a4,' ',i5) -1714 format(' OBS. ',a4,' STREAMS ','VALID ',i2.2,'Z ', - 1 a3,1x,i2.2,' ',a4,' ',i5) - 1903 format(i2,a2) - 1901 format(a4,a1) - CALL SPCHK(IXL,0001,IAPT,IPANA,IPANY,IVARY) -c CALL SPCHK(IXL,JXL,IAPT,IPANA,IPANY,IVARY) - cbcd4(87:87) = 'X' -c CALL lPUTLAB(IXL,JXL,HT,cbcd4(1:nchar),0.0,NCHAR,1,0) - CALL lPUTLAB(IXL,0001,HT,cbcd4(1:nchar),0.0,NCHAR,1,0) - kprior(1)=1 - kprior(2)=1 - ht=1.0 - call putlab(600,2400,1.,cgulf(1),90.,20,kprior,0) - call putlab(620,2400,1.,cgulf(2),90.,20,kprior,0) - call putlab(640,2400,1.,cgulf(3),90.,20,kprior,0) - ht=11.0 -c CALL lPUTLAB(IXL,JXL,HT,IBCD2,0.0,NCHAR,1,0) -c CALL PUTLAB(IXL,JXL,HT,IBCD2,0.0,NCHAR,1,0) - 1410 FORMAT('0VARIAN TITLE= ',22A4) - CALL ENCODE(ITITSM(1),16) - WRITE(99,1408)IREM3A,LVL1,IUHR1,IMON,IDAY - 1408 FORMAT(A4,1H/,A3,A2,1HZ,I2,1H/,A2) - write(ctitsm(1),1956)ititsm(1),ititsm(2) - write(ctitsm(3),1956)ititsm(3),ititsm(4) - 1956 format(2a4) - print *,' 9999 ctitsm(1-4) ' ,ctitsm - CALL lPUTLAB(622,2543,3.0,ctitsm(1),90.0,8,1,0) - CALL lPUTLAB(635,2543,3.0,ctitsm(3),90.0,8,1,0) -c CALL PUTLAB(622,2543,3.0,ITITSM(1),90.0,8,1,0) -c CALL PUTLAB(635,2543,3.0,ITITSM(3),90.0,8,1,0) - GO TO 1425 -C 00282100 -C ...FAX MAP STRIP TITLES 00282200 -C 00282300 - 1440 CONTINUE -c build new (george vandenberghe) title - write(cbcd4(1:5),1901)islota,islotb - print 9988,'9999 ISLOTA AND B ',islota,islotb - 9988 format(a25,a4,a1) - write(cbcd4(7:10),1903)iras(1),'HR' -c write (cbcd4(12:100),1711)ctitleg(11:14),ctitleg(20:21), -C 1 ctitleg(30:31),ctitleg(43:46) - write (cbcd4(12:100),1711)ctitleg(11:14), - 1 iras(3),cdayw,iras(4),IMONT(iras(5)),iyrr - print *,' 9999 strip ',cbcd4(1:100) - NSTRIP=1 - IF(IRLAB.GE.1) NSTRIP=2 - DO 1449 IX=1,NSTRIP - IXL=31 - MLAST=MLAST+INCR - JXL=MLAST - HT=11.0 - IF(IPANY.EQ.1)HT=1.0 - NCHAR=6 - IBCD1(1)=IBCD(1) - IBCD1(2)=IBCD(2) - IF(IPANY.EQ.1) - 1 CALL lPUTLAB(IXL,JXL,HT,cbcd4(1:NCHAR),0.0,NCHAR,1,0) -c IF(IPANY.EQ.1)CALL lPUTLAB(IXL,JXL,HT,IBCD1(1),0.0,NCHAR,1,0) -c IF(IPANY.EQ.1)CALL PUTLAB(IXL,JXL,HT,IBCD1(1),0.0,NCHAR,1,0) - IF(IPANY.NE.1)IXL=IXL+NCHAR*IGIANT - IF(IPANY.EQ.1)IXL=IXL+NCHAR*IREGU - NCHAR=10 - IBCD1(3)=ILVL(3,LVL11) - IBCD1(4)=ILVL(4,LVL11) - IBCD1(5)=IBCHK - IF(IPANY.EQ.1) - 1 CALL lPUTLAB(IXL,JXL,HT,cbcd4(9:nchar+9-1),0.0,NCHAR,1,0) -c IF(IPANY.EQ.1)CALL PUTLAB(IXL,JXL,HT,IBCD1(3),0.0,NCHAR,1,0) - IF(IPANY.NE.1)IXL=IXL+NCHAR*IGIANT - IF(IPANY.EQ.1)IXL=IXL+NCHAR*IREGU - NCHAR=15 - IJHOUR=24 - IF(ITAUI(1).EQ.5) IJHOUR=48 - IF(ITAUI(1).EQ.3) IJHOUR=30 - IF(ITAUI(1).EQ.4) IJHOUR=36 - IF(ITAUI(1).EQ.1) IJHOUR=18 - CALL ENCODE(IBCD1(6),16) - WRITE(99,1452)IJHOUR,ITITL1(2),ITITL1(3),ITITL2(1) - 1452 FORMAT(I2,2HHR,A4,A2,A4,2X) - HT=1.0 - IF(IPANY.EQ.1) - 1 CALL lPUTLAB(IXL,JXL,HT,cbcd4(21:nchar+21-1),0.0,NCHAR,1,0) -c IF(IPANY.EQ.1)CALL PUTLAB(IXL,JXL,HT,IBCD1(6),0.0,NCHAR,1,0) - IXL=IXL+NCHAR*IREGU - NCHAR=18 - HT=11.0 - CALL ENCODE(IBCD1(10),20) - WRITE(99,1441)IUHR1,IDAYW,IDAY1,IMONT(IMON),IYRR - 1441 FORMAT(A2,2HZ ,A3,1X,I2,A4,1X,I5,3X) - IF(IPANY.EQ.1) - 1 CALL lPUTLAB(IXL,JXL,HT,cbcd4(37:nchar+37-1),0.0,NCHAR,1,0) -c IF(IPANY.EQ.1)CALL PUTLAB(IXL,JXL,HT,IBCD1(10),0.0,NCHAR,1,0) - IF(IPANY.NE.1)IXL=IXL+NCHAR*IGIANT - IF(IPANY.EQ.1)IXL=IXL+NCHAR*IREGU - IF(IPANY.EQ.1) GO TO 1445 -C 00286700 -C ...FOUND WHOLE MAP 00286800 -C 00286900 - NCHAR=40 - HT=1.0 - CALL W3AI15(IRAS(7),IUHR2,1,2,1H-) - CALL ENCODE(IBCD1(15),40) - WRITE(99,1443)ITITL3(1),ITITL3(2),IUHR2,IRAS(8),IBCHK, - 1 IBCHK,IBCHK,IBCHK - 1443 FORMAT(2A4,2HON,1X,A2,2HZ/,I2,3H. ,2A4,2H ,2A4,2H ) -C CALL PUTLAB(IXL,JXL,HT,IBCD1(57:nchar+57-1),0.0,NCHAR,1,0) 00287700 - IXL=IXL+NCHAR*IREGU - IF (IOUT1 .GT. 2) GO TO 1457 - NCHAR=24 - CALL ENCODE(IBCD1(25),24) - WRITE(99,1454)(IARR1(I),I=1,3),(IARR2(I),I=1,3),IARR3 - 1454 FORMAT(2(2A4,A2),A4) -C CALL PUTLAB(IXL,JXL,HT,IBCD1(25),0.0,NCHAR,1,0) 00288400 - DO 1456 I=31,35 - IBCD1(I)=IBCHK - 1456 CONTINUE - print *,' before IOUTIN 1424' - IF(IOUTIN(2).EQ.1) GO TO 1424 - print *,' after IOUTIN 1424' - IXL=IXL+NCHAR*IREGU - IXL1=IXL - NCHAR=20 - CALL ENCODE(IBCD1(31),20) - WRITE(99,1458)(ITITL6(I),I=1,3),(ITITL7(I),I=1,3) - 1458 FORMAT(2(2A4,A2)) -C CALL PUTLAB(IXL,JXL,HT,IBCD1(31),0.0,NCHAR,1,0) 00289500 - IXL=IXL1+IREGU - NCHAR=2 - HT=11.0 - print *,' 9999 cbox and ccir from titel ',cbox,ccirc - CALL lPUTLAB(IXL,JXL,HT,cbox,0.0,NCHAR,2,0) -c CALL PUTLAB(IXL,JXL,HT,IBOX,0.0,NCHAR,2,0) - IXL=IXL1+10*IREGU - CALL lPUTLAB(IXL,JXL,HT,ccirc,0.0,NCHAR,2,0) -c CALL PUTLAB(IXL,JXL,HT,ICIRC,0.0,NCHAR,2,0) - stop 'circle' - GO TO 1424 - 1457 CONTINUE - CALL ENCODE(IBCD1(25),44) - WRITE(99,1459) (IDESC(I,IOUT1),I=1,11) - 1459 FORMAT(11A4) -C CALL PUTLAB(IXL,JXL,HT,IBCD1(25),0.0,44,1,0) 00290700 - GO TO 1424 -C 00290900 -C ...FOUND PANEL MAP 00291000 -C ...GENERATE LEFT PANEL STRIP TITLE FOR LABEL ARRAY 00291100 -C 00291200 - 1445 CONTINUE - NCHAR=24 - HT=1.0 - CALL ENCODE(IBCD1(15),24) - WRITE(99,1454)(IARR1(I),I=1,3),(IARR2(I),I=1,3),IARR3 - print *, '9999 before 1445 putlab ' - stop 'after 1445' - CALL lPUTLAB(IXL,JXL,HT,cbcd4(57:nchar+57-1),0.0,NCHAR,1,0) -c CALL PUTLAB(IXL,JXL,HT,IBCD1(15),0.0,NCHAR,1,0) - IXL=IXL+NCHAR*IREGU -C 00292000 -C ...PRINT LEFT PANEL STRIP TITLE 00292100 -C 00292200 - PRINT 1446, (IBCD1(I),I=1,20) - 1446 FORMAT('0LEFT PANEL STRIP TITLE= ',20A4) -C 00292500 -C ...GENERATE RIGHT PANEL STRIP TITLE FOR LABEL ARRAY 00292600 -C 00292700 - NCHAR=10 - HT=11.0 - CALL ENCODE(IBCD1(21),12) - WRITE(99,1455)IREM1B - 1455 FORMAT(2X,A4,2HMB,4X) - CALL lPUTLAB(IXL,JXL,HT,cbcd4(81:nchar+81-1),0.0,NCHAR,1,0) -c CALL PUTLAB(IXL,JXL,HT,IBCD1(21),0.0,NCHAR,1,0) - IXL=IXL+NCHAR*IGIANT - NCHAR=15 - HT=1.0 - CALL ENCODE(IBCD1(24),16) - WRITE(99,1453)IREM1A,ITITL1(2),ITITL1(3),ITITL2(1) - 1453 FORMAT(2A4,A2,A4,2X) - CALL lPUTLAB(IXL,JXL,HT,cbcd4(93:nchar+93-1),0.0,NCHAR,1,0) -c CALL PUTLAB(IXL,JXL,HT,IBCD1(24),0.0,NCHAR,1,0) - IXL=IXL+NCHAR*IREGU - NCHAR=18 - HT=11.0 - IF(IX.NE.1) GO TO 472 -C ...SAVE OLD TAU 00294500 - IOLD=IRAS(1) - IRAS(1)=24 - IF(IREM1A.EQ.IHOUR(1)) IRAS(1)=18 - IF(IREM1A.EQ.IHOUR(3)) IRAS(1)=30 - IF(IREM1A.EQ.IHOUR(4)) IRAS(1)=36 - CALL UPDATR - JUHR1=IRAS(3) - CALL W3AI15(JUHR1,JUHR1,1,2,1H-) - JDAY1=IRAS(4) - JMON=IRAS(5) - JYRR=IRAS(6) - CALL W3AI15(JDAY1,JDAY,1,2,1H-) - CALL DAYOWK(JDAY1,JMON,JYRR,JDAYB,JDAYW) - print*,'9999 DAYOWK # 2 ',JDAY1,JMON,JYRR,JDAYB,JDAYW - 472 CONTINUE - CALL ENCODE(IBCD1(28),20) - WRITE(99,1441)JUHR1,JDAYW,JDAY1,IMONT(JMON),JYRR -c CALL PUTLAB(IXL,JXL,HT,IBCD1(28),0.0,NCHAR,1,0) - CALL lPUTLAB(IXL,JXL,HT,cbcd4(109:109+nchar-1 ),0.0,NCHAR,1,0) - IXL=IXL+NCHAR*IGIANT - IXL1=IXL - HT=1.0 - NCHAR=24 - CALL ENCODE(IBCD1(33),24) - JLEV=IBCHK - DO 462 JX=1,4 - IF(IREM1B.EQ.ILEV(1,JX)) JLEV=ILEV(2,JX) - 462 CONTINUE - CALL ENCODE(IBCD1(33),24) - WRITE(99,1462)(IARR1(I),I=1,3),JLEV,IARR3 - 1462 FORMAT(2A4,A2,2HE ,A3,5HMB WI,A4) -c CALL PUTLAB(IXL,JXL,HT,IBCD1(129:129+nchar-1),0.0,NCHAR,1,0) - CALL lPUTLAB(IXL,JXL,HT,cbcd4(129:129+nchar-1),0.0,NCHAR,1,0) -C ...REPLACE TAU WITH OLD VALUE 00297600 - IRAS(1)=IOLD - CALL UPDATR -C 00297900 -C ...PRINT RIGHT PANEL STRIP TITLE 00298000 -C 00298100 - PRINT 1447, (IBCD1(I),I=21,38) - 1447 FORMAT('0RIGHT PANEL STRIP TITLE= ',18A4) - GO TO 1449 -C 00298500 -C ...PRINT WHOLE MAP STRIP TITLE 00298600 -C 00298700 - 1424 CONTINUE - print *,' 9999 at 1424' - PRINT 1448,(IBCD1(I),I=1,24) - PRINT 1451,(IBCD1(I),I=25,35) - 1451 FORMAT('0WHOLE MAP STRIP TITLE CONTINUED= ',11A4) - 1448 FORMAT('0WHOLE MAP STRIP TITLE= ',24A4) - IXL = 35 - IF(IAPT .EQ. 1) IXL = 30 - HT = 11.0 - IF(IAPT .EQ. 1) HT = 1.0 - DO 1501 IB2 = 1,40 - IBCD2(IB2) = IBCD1(IB2) - 1501 CONTINUE -C -------- ONE PANEL FAX SECTION--------- 00300000 -C CRUNCH OUT SPACES IN FAX TITLES, PUT ON NOAA INFO & PRINT OUT RESULT 00300100 - CALL SPCHK(IXL,JXL,IAPT,IPANA,IPANY,IVARY) - PRINT 1510, (IBCD2(I),I=1,25) - 1510 FORMAT(1X,'IBCD2= ',25A4) -c CALL PUTLAB(IXL,JXL,HT,IBCD2(1),0.0,87,1,0) - CALL lPUTLAB(IXL,JXL,HT,cbcd4(1:87),0.0,87,1,0) -c CALL lPUTLAB(IXL,JXL,HT,cbcd4(1:47),0.0,47,1,0) -c CALL lPUTLAB(IXL,JXL,HT,cbcd4(1:47),0.0,47,0,0) -c CALL lPUTLAB(100,1000,HT,cbcd4(1:47),0.0,47,0,0) - print *,' EXITING TITLES 9999' - RETURN - 1449 CONTINUE - IXL = 40 -C PUT NOAA INFO CENTERED ON MULTIPLE PANEL CHARTS 00300900 - CALL SPCHK(IXL,JXL,IAPT,IPANA,IPANY,IVARY) - 1425 CONTINUE - print *,' EXITING TITLES 99992' - RETURN - END diff --git a/util/sorc/trpanl.fd/UVCLIP.f b/util/sorc/trpanl.fd/UVCLIP.f deleted file mode 100755 index d8ee9d4967..0000000000 --- a/util/sorc/trpanl.fd/UVCLIP.f +++ /dev/null @@ -1,44 +0,0 @@ - SUBROUTINE UVCLIP(U,V,A,B,IMAX,JMAX,UM,UA,JFLD) -C ...THIS SUBROUTINE WILL SCALE AND FLIP SIDEWAYS AND CLIP OFF2 FLDS00138400 - DIMENSION U(117,51),V(117,51) - DIMENSION A(IMAX,JMAX) - DIMENSION B(IMAX,JMAX) -C ...FIRST WE SCALE 00138800 - DO 195 I=1,117 - DO 195 J=1,51 - U(I,J)=U(I,J)*UM+UA - V(I,J)=V(I,J)*UM+UA - 195 CONTINUE -C ...FLIP V-FIELD SIDEWAYS AND CLIP AND MOVE INTO IMAX,JMAX ARRAY 00139400 - DO 320 I=1,117 - JNEW=I+1 - DO 310 J=1,IMAX - JR=51+1-J - A(J,JNEW)=V(I,JR) - 310 CONTINUE - 320 CONTINUE - DO 330 I=1,IMAX - A(I,1)=A(I,117) - A(I,119)=A(I,3) - 330 CONTINUE -C ...THEN OVERWRITE THE ORIGINAL V WITH FLIPPED V 00140600 - DO 350 J=1,JMAX - DO 340 I=1,IMAX - B(I,J)=A(I,J) - 340 CONTINUE - 350 CONTINUE - IF(JFLD.EQ.1) RETURN -C ...TO FLIP U FIELD SIDEWAYS AND CLIP INTO IMAX,JMAX ARRAY 00141300 - DO 370 I=1,117 - JNEW=I+1 - DO 360 J=1,IMAX - JR=51+1-J - A(J,JNEW)=U(I,JR) - 360 CONTINUE - 370 CONTINUE - DO 380 I=1,IMAX - A(I,1)=A(I,117) - A(I,119)=A(I,3) - 380 CONTINUE - RETURN - END diff --git a/util/sorc/trpanl.fd/WNDPLO.f b/util/sorc/trpanl.fd/WNDPLO.f deleted file mode 100755 index ab2b26fccc..0000000000 --- a/util/sorc/trpanl.fd/WNDPLO.f +++ /dev/null @@ -1,70 +0,0 @@ - SUBROUTINE WNDPLO(FLDU,FLDV,IMAX,JMAX) -C 00319800 -C ...GIVEN FLDU AND FLDV WIND COMPONENTS INKNOTS 00319900 -C ...TASK...GET WIND DIRECTION AND SPEED AND ENTER INTO LABEL ARRAY 00320000 -C ...IN A FORM WHICH WILL OBTAIN WIND STAFF AND BARBS 00320100 -C ...THESE GRIDPOINTS BEING IN A DIAMOND PATTERN. 00320200 -C 00320300 - COMMON/SHTST/ISSH -C ...ISSH = 1 IF ONE WISHES TO REVERSE WIND BARBS FOR SH WINDS. 00320500 - DIMENSION FLDU(IMAX,JMAX),FLDV(IMAX,JMAX) - DATA ICORN/0/ - DATA JCORN/-30/ - DATA IT/30/ - JLOB=3 - JHIB=JMAX-2 - ILHS=3 - IRHS=IMAX-1 - ILHSB=5 - IRHSB=IMAX-3 - IDEWAY=1 -C ...WHICH SETS IT FOR SIDEWAYS ORIENTATION FOR WIND DIR 00321700 - ADD=0. - XMPY=1.0 - INDENT=1 -C ...WHERE INDENT IS ALTERNATING SWITCH FOR INDENTINGA ROW OR NOT. 00322100 -C ...WHERE INDENT IS ALTERNATING SWITCH FOR INDENTING A ROW OR NOT. 00322200 - DO 450 J=JLOB,JHIB,2 - IF(INDENT)433,434,433 - 433 CONTINUE - INDENT=0 - I=ILHS - I2=IRHS - GO TO 440 - 434 CONTINUE - INDENT=1 - I=ILHSB - I2=IRHSB - GO TO 440 -C ...PERFORM OPERATION ON WIND PT(I,J) 00323500 - 440 CONTINUE - ISTN=IT*(I-1)+ICORN - JSTN=IT*(J-1)+JCORN - U=FLDU(I,J)*XMPY+ADD - V=FLDV(I,J)*XMPY+ADD - CALL WWNDR(U,V,IDDFF,IDD,IFFF) - IF(IDEWAY.NE.1) GO TO 633 -C ...IDEWAY WAS=1, SO CONVERT IDD FROM TRUE NORTH TO GRID ORIENTED 00324300 - IDD=IDD-9 - IF(IDD.LE.0) IDD=IDD+36 - 633 CONTINUE - IOPTN=0 - IF(ISSH .NE. 1) GO TO 442 - IF(I .GT. 25) IDD = -IDD - 442 CONTINUE -c gwv 2/26/97 SHIFT WIND BARBS 6 PIXELS SOUTH!! - istn=istn+6 -c end 2/26/97 fix - CALL WNDBRK(ISTN,JSTN,IDD,IFFF,NWOK,IOPTN,iret) - IF(NWOK.GT.0) GO TO 572 - PRINT 444,I,J - 444 FORMAT('0ABNORMAL EXIT FROM WNDBRK WHERE I= ',I4,' J=',I4, - 1 'THIS WIND PLOT SKIPPED') -C ...IS THERE ENOUGH SPACE FOR ALL PIECES OF WIND VECTOR QQ 00325600 - 572 CONTINUE - I=I+4 - IF(I.LE.I2) GO TO 440 -C ...WHEN IT FALLS THRU HERE, THIS ROW IS FINISHED, GO TO NEXT J. 00326000 - 450 CONTINUE - RETURN - END diff --git a/util/sorc/trpanl.fd/WWNDR.f b/util/sorc/trpanl.fd/WWNDR.f deleted file mode 100755 index 933d291dc1..0000000000 --- a/util/sorc/trpanl.fd/WWNDR.f +++ /dev/null @@ -1,36 +0,0 @@ - SUBROUTINE WWNDR(U,V,IDDFF,IDD,IFFF) - IF(V)14,10,14 - 10 CONTINUE - IF(U)12,13,11 - 11 CONTINUE - ND=27 - GO TO 15 - 12 CONTINUE - ND=9 - GO TO 15 - 13 CONTINUE - IDDFF=0 - IDD=0 - IFFF=0 - RETURN - 14 CONTINUE - TAN=U/V - ANGLE=ATAN(ABS(TAN)) - ND=(3.1416+SIGN(1.5708,U)-SIGN((1.5708-ANGLE),TAN))*5.72958+.5 - IF(ND.EQ.0) ND=36 - 15 CONTINUE - NV=SQRT(U*U+V*V)+0.5 - IFFF=NV - IDD=ND - IF(NV-200)18,17,17 - 17 CONTINUE - NV=199 - 18 CONTINUE - IF(NV-100)20,19,19 - 19 CONTINUE - NV=NV-100 - ND=ND+50 - 20 CONTINUE - IDDFF=ND*100+NV - RETURN - END diff --git a/util/sorc/trpanl.fd/centre.f b/util/sorc/trpanl.fd/centre.f deleted file mode 100755 index f5a020bce3..0000000000 --- a/util/sorc/trpanl.fd/centre.f +++ /dev/null @@ -1,289 +0,0 @@ - SUBROUTINE CENTRE(Z,IMAX,JMAX,DOTSGI,A,B,M,ZLIM,ICEN1,LPLMI, - X IFLO,IFHI) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CENTRE DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: NP12 DATE: 1999-07-01 -C -C ABSTRACT: DOCUMENTATION WILL BE ADDED LATER. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-02-21 LIN CONVERT SUBROUTINE TO CFT-77 -C 96-07-22 LIN TURN OFF PRINT STATEMENT -C 1999-07-01 KRISHNA KUMAR ASSIGNED THE RIGHT VALUE FOR INDEF -C (FROM THE RANGE FUNCTION) FOR IBM -C AND CONVERTED THIS CODE FROM CRAY -C TO IBM RS/6000 -C -C USAGE: CALL CENTRE( Z, IMAX, JMAX, DOTSGI, A, B, M, ZLIM, ICEN1, -C LPLMI, IFLO, IFHI ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON/ADJ2/XIDID,YJDID -C - DIMENSION JTEXT(3) - DIMENSION Z(IMAX,JMAX) -C - CHARACTER*8 IFLO(5),IFHI(5) - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - CHARACTER*4 IDECP - INTEGER M(2) - INTEGER ITYPE(2) - CHARACTER*1 CDECP -C - REAL INDEF,KDEF1,KDEF2 -C -C/// DATA IDECP/4H. / - DATA IDECP/'. '/ - DATA CDECP/'.'/ -C/// DATA ITEXT/3*0/ - DATA XIRRS/870./ - DATA ITYPE/0,0/ -C/// DATA IMSK1/Z'FF000000'/ -C/// DATA IMSK2/Z'FFFF0000'/ -C/// DATA INDEF/Z'7FFFFFFF'/ - DATA IMSK1/Z'FFFFFFFFFF000000'/ - DATA IMSK2/Z'FFFFFFFFFFFF0000'/ - DATA INDEF /1.0E307 / -C -C/// EQUIVALENCE(LTEXT,ITEXT(1)) -C/// EQUIVALENCE(MTEXT,JTEXT(1)) -C -C (1),(2),(3)...Z(IMAX,JMAX) IS GIVEN GRIDPOINT SCALED DATA FIELD -C (4) ..... DOTSGI IS DOTS PER GRID INTERVAL -C WHERE EACH DOT IS 1/100TH INCH ON VARIAN -C NEGATIVE DOTSGI SIGNALS MERC SRN HEMI OPTION -C (5),(6) ...TRUE Z VALUE = (Z + A) * B -C WHERE A IS ADDITIVE AND B IS MULTIPLICATIVE CONST -C (7) ..... M = NO. OF CHARACTERS DESIRED WHEN TRUE Z VALUE IS -C CONVERTED TO EBCDIC FOR CENTRAL VALUE -C (8) ..... ZLIM = LOWER LIMIT TO TRUE Z VALUE -C LESS THAN WHICH WE WILL IGNORE CENTERS. -C (9) ..... ICEN1 IS OPTION SWITCH -C =1 NORMAL CENTER FORMATTED LABELS -C =2 BIG H AND L USING SUBROUTINE HILO -C =3 SAME AS =1 EXCEPT I IS DISPLACED TO RHS 2-PANEL -C =4 SAME AS =2 EXCEPT I IS DISPLACED TO RHS 2-PANEL -C (10)..... LPLMI IS FORMAT SELECTOR FOR SUBROUTINE BIN2EB -C FOR CONVERTING TRUE Z VALUE TO EBCDIC E.G., 'A99' -C (11)..... IFLO IS 5-WORD FORMAT STATEMENT FOR ENCODE OF LOW CENTR -C (12)..... IFHI IS 5-WORD FORMAT STATEMENT FOR ENCODE OF HI CENTER -C -C INITIALIZE FOR CENTER SEARCH -C - IMIN=1 - JMIN=1 - IISFC=0 - IF(M(2).EQ.9) IISFC=1 - IF(M(2).EQ.9) M(2)=3 - N=8 - ICOR = 0 - JCOR = 0 - IF(ICEN1 .LE. 0) GO TO 900 - IF(ICEN1 .GT. 4) GO TO 900 - GO TO(6,9,7,8),ICEN1 - 6 ICOR = SIGN((ABS(XIDID) + 0.5),XIDID) - JCOR = SIGN((ABS(YJDID) + 0.5),YJDID) - GO TO 9 - 7 ICOR = XIDID + XIRRS + 0.5 - JCOR = SIGN((ABS(YJDID) + 0.5),YJDID) - GO TO 9 - 8 ICOR = XIRRS + 0.5 - 9 CONTINUE - IRESET = 0 - SCALE = DOTSGI - IF(SCALE.LT.0) IRESET=1 - IF(SCALE.LT.0) SCALE=-SCALE - 10 ILOW=0 - IHIGH=0 - DO 100 J=JMIN,JMAX - DO 100 I=IMIN,IMAX -C -C TEST FOR BORDER VALUES. -C - IF(I.LE.IMIN+1.OR.I.GE.IMAX-1) GO TO 100 - IF(J.LE.JMIN+1.OR.J.GE.JMAX-1) GO TO 100 -C TEST FOR UNDEFINED VALUES. -C - IF(Z(I,J).EQ.INDEF) GO TO 100 - KDEF1=Z(I-1,J) - KDEF2=Z(I+1,J) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I-1,J-1) - KDEF2=Z(I-1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I+1,J-1) - KDEF2=Z(I+1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I,J+1) - KDEF2=Z(I,J-1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 -C -C TEST FOR LOW CENTER -C - IF(Z(I,J).GE.Z(I+1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I-1,J+1)) GO TO 30 - IF(Z(I,J).GE.Z(I+1,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I+1,J-1)) GO TO 30 -C -C FOUND LOW CENTER -C - ITYPE(2)=1 - ILOW=ILOW+1 - GO TO 50 -C -C TEST FOR HIGH CENTER -C - 30 IF(Z(I,J).LE.Z(I+1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I-1,J+1)) GO TO 100 - IF(Z(I,J).LE.Z(I+1,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I+1,J-1)) GO TO 100 -C -C FOUND HIGH CENTER -C - ITYPE(2)=2 - IHIGH=IHIGH+1 -C -C CALCULATE MAX/MIN POSITION USING STIRLING METHOD(9 POINTS) -C - 50 ANUMI=(Z(I+1,J)-Z(I-1,J)) - ADENMI=2.0*(Z(I+1,J)-2.0*Z(I,J)+Z(I-1,J)) - IF(ABS(ANUMI).GT.0.5*(ABS(ADENMI))) GO TO 115 - DELI=-ANUMI/ADENMI - XPOS=SCALE*((FLOAT(I)-1.0)+DELI) - ANUMJ=(Z(I,J+1)-Z(I,J-1)) - ADENMJ=2.0*(Z(I,J+1)-2.0*Z(I,J)+Z(I,J-1)) - IF(ABS(ANUMJ).GT.0.5*(ABS(ADENMJ))) GO TO 115 - DELJ=-ANUMJ/ADENMJ - YPOS=SCALE*((FLOAT(J)-1.0)+DELJ) -C -C ADJUST MAX/MIN DATA VALUE USING STIRLING INTERPOLATION -C - ZDELI=Z(I,J)+0.5*DELI*(Z(I+1,J)-Z(I-1,J))+0.5*DELI*DELI*(Z(I+1,J) - X-2.0*(Z(I,J))+Z(I-1,J)) - ZDELIU=Z(I,J+1)+0.5*DELI*(Z(I+1,J+1)-Z(I-1,J+1))+0.5*DELI*DELI* - X(Z(I+1,J+1)-2.0*Z(I,J+1)+Z(I-1,J+1)) - ZDELIL=Z(I,J-1)+0.5*DELI*(Z(I+1,J-1)-Z(I-1,J-1))+0.5*DELI*DELI* - X(Z(I+1,J-1)-2.0*Z(I,J-1)+Z(I-1,J-1)) - ZDELJ=ZDELI+0.5*DELJ*(ZDELIU-ZDELIL)+0.5*DELJ*DELJ*(ZDELIU-2.0* - XZDELI+ZDELIL) - GO TO 60 - 115 XPOS = SCALE * (FLOAT(I) - 1.0) - YPOS = SCALE * (FLOAT(J) - 1.0) - ZDELJ = Z(I,J) - GO TO 60 - 60 CONTINUE - JCAL = YPOS + 0.5 - ICAL = XPOS + 0.5 - JCAL = JCAL + JCOR - ICAL = ICAL + ICOR - TRUVAL = (ZDELJ + A ) * B - INTG = SIGN((ABS(TRUVAL) + 0.5),TRUVAL) - IF(FLOAT(INTG) .LT. ZLIM) GO TO 100 - IF(IISFC.EQ.1) GO TO 95 - NCHAR = M(2) - IF(ITYPE(2) .EQ. 2) GO TO 90 - IF(IRESET .EQ. 1 .AND. I .GE. 26) GO TO 91 -C -C ...FORMAT LOW CENTER... -C - 81 CONTINUE -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - print *, INTG,MTEXT,NCHAR,LPLMI - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - PRINT *, ' CENTRE:INTG=',INTG,' NCH=',NCHAR,' MTEXT=',MTEXT -C/// -C/// CALL GBYTES(MTEXT,JTEXT,0,32,0,4) - N = 12 - WRITE(LTEXT,FMT=IFLO)MTEXT - print *, LTEXT - print *, IFLO -C -C/// LTEXT(1:NCHAR) = MTEXT(1:NCHAR) -C/// LTEXT(NCHAR+1:NCHAR+1)= CHAR(0) - GO TO 96 - 90 CONTINUE - IF(IRESET .EQ. 1 .AND. I .GE. 26) GO TO 81 -C -C ...FORMAT HIGH CENTER... -C - 91 CONTINUE -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) -C/// -C/// CALL GBYTES(MTEXT,JTEXT,0,32,0,4) - N = 12 - WRITE(LTEXT,FMT=IFHI)MTEXT -C/// LTEXT(1:NCHAR) = MTEXT(1:NCHAR) -C/// LTEXT(NCHAR+1:NCHAR+1)= CHAR(0) -C PRINT *, ' IN CENTRE, IFHI=',IFHI -C PRINT *, ' LTEXT=', LTEXT,' MTEXT=', MTEXT - GO TO 96 -C -C ... FORMAT PRECIP CENTER-SPECIAL CASE -C - 95 CONTINUE - NCHAR=3 -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) -C/// - CALL GBYTES(MTEXT,JTEXT,0,32,0,4) -C* IPUU=LAND(JTEXT(1),IMSK1) -C?? IPUU=IAND(JTEXT(1),IMSK1) -C* IPTH=LAND(SHFTL(JTEXT(1),8),IMSK2) -C??? IPTH=IAND(ISHFT(JTEXT(1),8),IMSK2) -C?? WRITE(LTEXT(1:4),FMT='(A1,A1,A2)')IPUU,IDECP,IPTH - LTEXT(1:1) = CDECP - LTEXT(2:4) = MTEXT(1:3) - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,4,IPRPUT,ITAPUT) - GO TO 100 - 96 CONTINUE - GO TO (97,99,97,99),ICEN1 - 97 CONTINUE - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,N,IPRPUT,ITAPUT) - GO TO 100 - 99 CONTINUE - CALL HILO(ICAL,JCAL,ITYPE,LTEXT) - GO TO 100 - 100 CONTINUE - RETURN - 900 CONTINUE - PRINT 911, ICEN1 - 911 FORMAT(1H , 'ERROR RETURN FROM CENTRE. GIVEN ARGUMENT OUT-OF-RANGE - X. ICEN1 =HEX', Z8) - RETURN - END diff --git a/util/sorc/trpanl.fd/compile_trpanl_wcoss.sh b/util/sorc/trpanl.fd/compile_trpanl_wcoss.sh deleted file mode 100755 index 51dd2fcce5..0000000000 --- a/util/sorc/trpanl.fd/compile_trpanl_wcoss.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec -make -mv trpanl ../../exec -make clean diff --git a/util/sorc/trpanl.fd/copyob.f b/util/sorc/trpanl.fd/copyob.f deleted file mode 100755 index b6594f7ec2..0000000000 --- a/util/sorc/trpanl.fd/copyob.f +++ /dev/null @@ -1,517 +0,0 @@ - SUBROUTINE COPYOB(LOBTAP,INBIN,ILVLT,KRUN1,IDATG,IOPTRA, - 1 KOUNT,IERROR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: COPYOB DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: LILLY ORG: W/NMC412 DATE: 93-04-07 -C -C ABSTRACT: DOCUMENTATION WILL BE ADDED LATER. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C -C USAGE: CALL COPYOB( LOBTAP, INBIN, ILVLT, KRUN1, IDATG, IOPTRA, -C NOPTINS, KOUNT, IERROR ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: NAS -C -C$$$ -C -C THIS SUBROUTINE WAS MODIFIED TO REMOVE ALL ASYNCHRONOUS I/O. -C - 5/29/86 (DKM) -C -C (1) LOBTAP ... DATA SET REF. NO. OF INPUT TAPE WHERE PLOTTED OBS -C ARE IN LABEL-ARRAY FORMAT LIKE TAPE55. -C (2) INBIN ...SCRATCH AREA FOR INPUT BUFFER OF 2048 WORDS. -C (3) ILVLT ... AN INDEX TO THE LEVEL DESIRED -C (4) KRUN1 ... AN INDEX TO THE RUN TYPE. -C (5) IDATG(4). GIVEN DATE TIME GROUP -C /YR/MO/DA/HR/ ONE WORD BYTE EACH. -C (6),(7) IOPTRA(2) ... ARRAY FOR ADDITIONAL OPTIONS... -C IOPTRA(1) NON ZERO IF BYPASSING DATE-TIME COMPARE -C IOPTRA(2) = NON-ZERO IF BYPASSING BACKRND COMPARE -C (8) KOUNT ... COUNT OF LABEL ARRAY ITEMS WHICH WERE COPIED -C (9) IERROR ..=0 FOR NORMAL END -C =1 GIVEN ARGUMENT OUT OF RANGE -C =2 READ ERROR BEFORE FINDING MATCHING DATA FIELD -C =3 ABNORMAL END TO INPUT FILE. NO DATA TRANSFERRED -C =4 LOOKED LIKE A NORMAL END BUT NO DATA TRANSFERRED -C =5ABNORMAL END AFTER SOME DATA WAS TRANSFERRED -C ...CAUTION...COPYOB NEITHER OPENS NOR CLOSES THE LBLTAP TAPE55, -C ... IT SIMPLY ADDS ONTO IT AND LEAVES IT OPEN AT RETURN, -C ... THEREBY PERMITTING THE MAIN PROGRAM TO ADD OTHER LABEL ARRAY -C ... ITEMS. -C * * * * * * * * * * * - COMMON /KPLOT/ LABEL(2,1024),LABIX,NOBUF,IDRA(50) -C - DIMENSION IDATG(4) - DIMENSION IDBUFF(128) - DIMENSION JDBUFF(64) - DIMENSION IOPTRA(2) - DIMENSION INBIN(2,1024) - DIMENSION INBUF(1024) - DIMENSION IBCD(2) - DIMENSION IHDTG(3),KHDTG(3) - DIMENSION KHMBS(2,29) - DIMENSION KHRUN(4,23) - DIMENSION NAMLVL(2) - DIMENSION NAMRUN(2) - DIMENSION NAMBKG(2) - DIMENSION KHIQSY(2) -C - INTEGER LEND -C - CHARACTER*8 MIBCD - CHARACTER*1 LBYTE(8) -C - REAL*8 DBLWRD -C - LOGICAL LBKCHK,LDACHK -C - DATA KHMBS/4HSURF,4HACE ,4H1000,4HMB , - 1 4H850M, 4HB , 4H700M, 4HB , - 2 4H500M, 4HB , 4H400M, 4HB , - 3 4H300M, 4HB , 4H250M, 4HB , - 4 4H200M, 4HB , 4H150M, 4HB , - 5 4H100M, 4HB , 4H70MB, 4H , - 6 4H50MB, 4H , 4H30MB, 4H , - 7 4H20MB, 4H , 4H10MB, 4H , - 8 4H7MB , 4H , 4H5MB , 4H , - 9 4H3MB , 4H , 4H2MB , 4H , - A 4H1MB , 4H , 4H0.4M, 4HB , - B 4HTROP, 4HO , 4HSIGL, 4H , - C 4HFRZG, 4H LVL, 4HREL , 4HHUM , - D 4H IN, 4HDEX , 4HPREC, 4HIP-W, - E 4HSFC , 4HANAL/ -C ...WHERE KHMBS IS SEQUENCED ACCORDING TO ILVLT - DATA KHRUN/4HRADA,4HT ,4HNH40,4H04 ,4HOPNL,4H ,4HNH40,4H04 - 1, 4HOVR4,4H8OPN,4HNH40,4H04 ,4HFINA,4HL ,4HNH40,4H04 , - 2 4HLFM ,4H ,4HNH25,4H01 ,4HPFAX,4H ,4HNH40,4H053 , - 3 4HBKUP,4HPFAX,4HNH40,4H05 ,4H1DOT,4HFAX ,4HNH20,4H02 , - 4 4H2DOT,4HFAX ,4HNH20,4H02 ,4HSIRS,4HPLOT,4HNH40,4H04 , - 5 4HTROP,4HIC1 ,4HMR40,4H02 ,4HTROP,4HIC2 ,4HMR40,4H02 , - 6 4HUS1P,4HLOT ,4HNH10,4H01 ,4HUABP,4HLOT ,4HNH40,4H04 , - 7 4HNHEM,4HI20 ,4HNH20,4H03 ,4HWIND,4HPLOT,4HPN26,4H01 , - 8 4HNHEM,4HI40 ,4HNH40,4H04 ,4HSHEM,4HI40 ,4HSH40,4H02 , - 9 4HUABP,4HLOT ,4HNH60,4H01 ,4HRAOB,4H ,4HNH25,4H01 , - X 4HSFC ,4HPLOT,4HNH20,4H05 ,4HGOES,4HPLOT,4HGH26,4H01 , - Y 4HGOES,4HPLOT,4HGH26,4H02 / -C ...WHERE KHRUN IS SEQUENCED ACCORDING TO KRUN1... -C - DATA KHIQSY/4HUABP,4HLOT / - DATA KHDTG/4HMM/D, 4HD/YY, 4H GGZ/ - DATA K000Z/Z'000000E9'/ - DATA IQSYL1/11/ - DATA IQSYL2/16/ - DATA LBLTAP/55/ -c DATA LEND/8H LEND/ - DATA LEND/8HDNEL / - DATA LMAX/1024/ - DATA MXMBS/29/ - DATA MXRUNS/23/ -C - DATA MSK0F /Z'00000000FFFFFFFF'/ -C - EQUIVALENCE(MIBCD,IBCD(1)) -C -C ...STEP(1) ... INITIALIZATION ... - KOUNT = 0 - IERROR = 0 - NUMRED = 0 - NUMIDR = 0 - NUMTRN = 0 -C - LABXSV = LABIX - NOBFSV = NOBUF - LBKCHK = .TRUE. - IF(IOPTRA(2) .NE. 0) LBKCHK=.FALSE. -C ...FROM GIVEN ILVLT,KRUN1,IDATG GENERATE IDENTIFIERS FOR SEARCH - IF(ILVLT .LT. 1) GO TO 810 - IF(ILVLT .GT. MXMBS) GO TO 810 -C NAMLVL(1) = KHMBS(1,ILVLT) -C NAMLVL(2) = KHMBS(2,ILVLT) - call byteswap(KHMBS(1,ILVLT), 8, 1) - call byteswap(KHMBS(2,ILVLT), 8, 1) - NAMLVL(1) = ISHFT(KHMBS(1,ILVLT),-32) - NAMLVL(2) = ISHFT(KHMBS(2,ILVLT),-32) - call byteswap(KHMBS(1,ILVLT), 8, 1) - call byteswap(KHMBS(2,ILVLT), 8, 1) -C - PRINT *,' ILVLT=',ILVLT - PRINT *,' NAME LVL=' - PRINT 119, NAMLVL(1),NAMLVL(2) -C - IF(KRUN1 .LT. 1) GO TO 820 - IF(KRUN1 .GT. MXRUNS) GO TO 820 - call byteswap(KHRUN(1,KRUN1), 8, 1) - call byteswap(KHRUN(2,KRUN1), 8, 1) - call byteswap(KHRUN(3,KRUN1), 8, 1) - call byteswap(KHRUN(4,KRUN1), 8, 1) - NAMRUN(1) = ISHFT(KHRUN(1,KRUN1),-32) - NAMRUN(2) = ISHFT(KHRUN(2,KRUN1),-32) - NAMBKG(1) = ISHFT(KHRUN(3,KRUN1),-32) - NAMBKG(2) = ISHFT(KHRUN(4,KRUN1),-32) - call byteswap(KHRUN(1,KRUN1), 8, 1) - call byteswap(KHRUN(2,KRUN1), 8, 1) - call byteswap(KHRUN(3,KRUN1), 8, 1) - call byteswap(KHRUN(4,KRUN1), 8, 1) - IF(ILVLT .LT. IQSYL1) GO TO 155 - IF(ILVLT .GT. IQSYL2) GO TO 155 - IF(KRUN1 .NE. 4) GO TO 155 -C ...OTHERWISE, THIS IS IQSY UABPLOT DESIRED... - call byteswap(KHIQSY(1), 8, 2) - NAMRUN(1) = ISHFT(KHIQSY(1),-32) - NAMRUN(2) = ISHFT(KHIQSY(2),-32) - call byteswap(KHIQSY(1), 8, 2) - 155 CONTINUE -C NAMLVL(1) = KHMBS(1,ILVLT) -C NAMLVL(2) = KHMBS(2,ILVLT) - call byteswap(KHMBS(1,ILVLT), 8, 1) - call byteswap(KHMBS(2,ILVLT), 8, 1) - NAMLVL(1) = ISHFT(KHMBS(1,ILVLT),-32) - NAMLVL(2) = ISHFT(KHMBS(2,ILVLT),-32) - call byteswap(KHMBS(1,ILVLT), 8, 1) - call byteswap(KHMBS(2,ILVLT), 8, 1) -C ...NOW NAMLVL HAS '850MB ', NAMRUN HAS '1DOTFAX', -C ... NAMBKG HAS 'NH2002 ', FOR EXAMPLE. -C ...I STILL NEED THE DATE/TIME... - DO 166 I=1,3 - IHDTG(I) = KHDTG(I) - 166 CONTINUE - NYR = IDATG(1) - NMO = IDATG(2) - NDA = IDATG(3) - NHR = IDATG(4) - LDACHK = .TRUE. - IF(IOPTRA(1) .EQ. 0) GO TO 170 -C ...OTHERWISE, IOPTRA(1) IS NON-ZERO FOR BYPASSING DATE COMPARISON - LDACHK = .FALSE. - GO TO 180 - 170 CONTINUE - CALL DAYOWK(NDA,NMO,NYR,IDAYWK,IHDAYW) - IF(IDAYWK .NE. 0) GO TO 178 -C ...OTHERWISE, GIVEN DATE INFO OUT OF RANGE - PRINT 174, IDATG - 174 FORMAT(1H0, 10X, '***IMPOSSIBLE DATE GIVEN TO SUBR COPYOB IN IDATG - 1 = HEX ', Z8) -C ...CONTINUE WITHOUT DATE-CHECKING... - LDACHK = .FALSE. - GO TO 180 - 178 CONTINUE -C ...REFORMAT DATE/TIME TO EBCDIC CHARACTERS... - CALL BIN2EB(NMO,MIBCD,2,'L999') - IHDTG(1) = IBCD(1) - CALL BIN2EB(NDA,MIBCD,3,'L///') - IHOLDD = ISHFT(IBCD(1),-16) - IHDTG(1) = IOR(IHDTG(1),IHOLDD) - IHDTG(2) = ISHFT(IBCD(1),16) - CALL BIN2EB(NYR,MIBCD,3,'L///') - IHOLDY = ISHFT(IBCD(1),-8) - IHDTG(2) = IOR(IHDTG(2),IHOLDY) - CALL BIN2EB(NHR,MIBCD,3,'L ') - IHDTG(3) = IOR (IBCD(1),K000Z) - 180 CONTINUE - PRINT 184,(IHDTG(I),I=1,3),(NAMLVL(J),J=1,2), - 1 (NAMRUN(K),K=1,2), (NAMBKG(KK),KK=1,2) - 184 FORMAT(1H , 10X, 'REQUESTED COPY OF PLOTTED OBSERVATIONS FOR ', - 1 3A4, 4X, 2A4, 2A4, 8X, 2A4) -C * * * * * * * * * * * -C ...STEP(2) ... SEARCH THE LOBTAP FOR THE MATCHING FILE... - PRINT *,' LOBTAP=', LOBTAP - REWIND LOBTAP - 211 CONTINUE - NUMRED = NUMRED + 1 -C ...CHANGED FROM ASYNC READ 5/29/86 (DKM)... - READ(LOBTAP,ERR=920,END=910)JDBUFF -C ...WHICH ALSO POSITIONS LOBTAP TO DATA BINS - CALL GBYTES(JDBUFF,IDBUFF,0,32,0,128) -C DO I=1,128 -C IDBUFF(I) = IAND(MSK0F,IDBUFF(I)) -C ENDDO - 245 CONTINUE -C ...IT WAS A GOOD READ, BUT WAS IT A LOGICAL ENDOF FILE QQ - PRINT *, ' JDBUFF(1)=' - PRINT 119,JDBUFF(1),JDBUFF(2) - PRINT *, ' IDBUFF(1),(2)=' - PRINT 119,IDBUFF(1),IDBUFF(2) - PRINT 119,IDBUFF(3),IDBUFF(4) - 119 FORMAT(1H ,Z16,5X,Z16) - ITEMP = IAND(MSK0F, -7) -C IF(IDBUFF(1) .NE. -7) GO TO 250 - IF(IDBUFF(1) .NE. ITEMP) GO TO 250 - ITEMP = IAND(MSK0F, LEND) -C IF(IDBUFF(2) .EQ. LEND) GO TO 930 - IF(IDBUFF(2) .EQ. ITEMP) GO TO 930 -C ...WHICH IS EMPTY LOGICAL FILE OR DBL LOGICAL EOFS - 250 CONTINUE - ITEMP = IAND(MSK0F, -1) -C IF(IDBUFF(1) .NE. -1) GO TO 940 - IF(IDBUFF(1) .NE. ITEMP) GO TO 940 -C ...WHICH ERROR EXITS IF NOT ID RECORD FLAG -C ...OTHERWISE, ASSUME A GOOD IDREC IN ... - PRINT *, ' GET A IDREC' - NUMIDR = NUMIDR + 1 - PRINT *, ' NAMLVL=' - PRINT 119, NAMLVL(1),NAMLVL(2) - PRINT 119, IDBUFF(9),IDBUFF(10) - IF(IDBUFF(9) .NE. NAMLVL(1)) GO TO 280 - IF(IDBUFF(10) .NE. NAMLVL(2)) GO TO 280 - PRINT *, ' NOT GO TO 280-1' -C ...OTHERWISE, FOUND A MATCHING LEVEL. NEXT TEST RUN TYPE - PRINT *, ' NAMRUN=' - PRINT 119, NAMRUN(1),NAMRUN(2) - PRINT 119, IDBUFF(11),IDBUFF(12) - IF(IDBUFF(11) .NE. NAMRUN(1)) GO TO 280 - IF(IDBUFF(12) .NE. NAMRUN(2)) GO TO 280 - PRINT *, ' NOT GO TO 280-2' -C ...OTHERWISE, FOUND A MATCHING RUN TYPE... - IF(.NOT. LBKCHK) GO TO 260 - PRINT *, ' NAMBKG=' - PRINT 119, NAMBKG(1),NAMBKG(2) - PRINT 119, IDBUFF(15),IDBUFF(16) - IF(IDBUFF(15) .NE. NAMBKG(1)) GO TO 280 - IF(IDBUFF(16) .NE. NAMBKG(2)) GO TO 280 - PRINT *, ' NOT GO TO 280-3' -C ...OTHERWISE, BACKGROUND MATCHES... - 260 CONTINUE - IF(.NOT. LDACHK) GO TO 270 - PRINT *, ' IHDTGG=' - PRINT 119, IHDTG(1),IHDTG(2) - PRINT 119, IDBUFF(5),IDBUFF(6) - IF(IDBUFF(5) .NE. IHDTG(1)) GO TO 280 - IF(IDBUFF(6) .NE. IHDTG(2)) GO TO 280 - IF(IDBUFF(7) .NE. IHDTG(3)) GO TO 280 - PRINT *, ' NOT GO TO 280-4' -C ...OTHERWISE, FOUND MATCHING DATE-TIME GROUP - 270 CONTINUE - GO TO 300 -C * * * * * * * * * * * -C ...COMES HERE IF THIS IDBUFF DID NOT MATCH THE DESIRED ONE, -C ... SO MUST SPACE OVER THE DATA BINS OF THIS LOGICAL FILE... - 280 CONTINUE - NUMRED = NUMRED +1 - READ(LOBTAP,ERR=920,END=910) INBUF - CALL GBYTES(INBUF,INBIN,0,32,0,2048) -C DO I=1,1024 -C INBIN(1,I) = IAND(MSK0F,INBIN(1,I)) -C INBIN(2,I) = IAND(MSK0F,INBIN(2,I)) -C ENDDO - 285 CONTINUE -C ...IT WAS A GOOD READ, BUT IS IT A LOGICAL END OF FILE QQ - PRINT *, ' INBUF(1,1)=' - PRINT 119,INBUF(1),INBUF(2) - PRINT *, ' INBIN(2,1)=' - PRINT 119,INBIN(1,1),INBIN(2,1) - PRINT 119,INBIN(1,2),INBIN(2,2) - ITEMP = IAND(MSK0F, -7) -C IF(INBIN(1,1) .NE. -7) GO TO 287 - PRINT 119,INBIN(1,1),INBIN(2,1) - IF(INBIN(1,1) .NE. ITEMP) GO TO 287 - PRINT *, ' IT IS A -7 RECORD' - ITEMP = IAND(MSK0F, LEND) - PRINT 119,INBIN(2,1),INBIN(2,2) - PRINT 119,LEND,ITEMP -C IF(INBIN(2,1) .EQ. LEND) GO TO 290 - IF(INBIN(2,1) .EQ. ITEMP) GO TO 290 -C ...IT WAS NOT A LOGICAL END OF FILE... - 287 CONTINUE - PRINT *, ' IT IS A GOOD RECORD' - ITEMP = IAND(MSK0F, -1) -C IF(INBIN(1,1) .EQ. -1) GO TO 940 - IF(INBIN(1,1) .EQ. ITEMP) GO TO 940 - PRINT *, ' IT IS A GOOD RECORD' -C ...WHICH IS ERROR EXIT. HIT ID REC WHEN IT SHUD BE DATA RECORD -C ...OTHERWISE, ASSUME IT WAS A DATA RECORD TO BE SKIPPED - GO TO 280 - 290 CONTINUE - PRINT *, ' IT IS A -7 RECORD' -C ...REACHED THE LOGICAL END OF FILE WHICH I WAS LOOKING FOR... - GO TO 211 -C -C * * * * * * * * * * * -C ...STEP(3) ... TO COPY THE INFO FROM THE MATCHING FILE - 300 CONTINUE - PRINT 310, (IDBUFF(I),I=3,16),NUMIDR,NUMRED - 310 FORMAT(1H , 10X, 'SUBR COPYOB FOUND MATCHING IDENTIFIER FOR ', - 1 14A4, /1H , 15X, 'AFTER SEARCHING THRU', I3, 2X, - 2 'LOGICAL FILES OF ', I5, 2X, 'PHYSICAL RECORDS.') - IF(LDACHK) GO TO 316 - PRINT 314 - 314 FORMAT(1H , 20X, 'DATE/TIME COMPARISON WAS BYPASSED') - 316 CONTINUE - IF(LBKCHK) GO TO 320 - PRINT 318 - 318 FORMAT(1H ,20X,'BACKGROUND COMPARISON CHECK WAS BYPASSED') -C - 320 CONTINUE -C ...TO READ AND TRANSFER LOBTAP DATA TO LABEL FILE... - READ(LOBTAP,ERR=330,END=340)INBUF - CALL GBYTES(INBUF,INBIN,0,32,0,2048) -C DO I=1,1024 -C INBIN(1,I) = IAND(MSK0F,INBIN(1,I)) -C INBIN(2,I) = IAND(MSK0F,INBIN(2,I)) -C ENDDO - GO TO 360 - 330 CONTINUE -C ...COMES HERE IF PARITY ERROR WHILE READING DATA - IF(KOUNT .EQ. 0) GO TO 336 -C ...COMES HERE IF SOME INFO HAS ALREADY PASSED BEFORE ERROR - PRINT 333, LOBTAP,KOUNT - 333 FORMAT(1H , '***PARITY ERROR IN SUBR COPYOB WHILE READING FT', - 1 I2, 2X, '...INCOMPLETE OBSERV SET WITH ONLY ', I5, - 2 2X, 'ITEMS ***') - IERROR = 5 - GO TO 999 -C - 336 CONTINUE -C ...COMES HERE IF PARITY ERROR AND NO INFO WAS COPIED... - PRINT 339, LOBTAP - 339 FORMAT(1H , '***PARITY ERROR IN SUBR COPYOB WHILE READING FT',I2) - IERROR = 3 - GO TO 999 -C - 340 CONTINUE -C ...COMES HERE IF END OF INFO. IF SOME COPIED ASSUME NORMAL END - IF(KOUNT .NE. 0) GO TO 344 - PRINT 342, LOBTAP - 342 FORMAT(1H , '*** ERROR. END OF DATA INDICATION IN COPYOB WHILE REA - 1DING FT', I2, 2X, ' ... NO PLOTTED OBS WERE COPIED *** ') - IERROR = 4 - GO TO 999 - 344 CONTINUE - PRINT 348, NUMTRN,KOUNT - 348 FORMAT(1H , 20X, 'COMPLETED COPYING PLOTTED OBSERVATIONS AFTER TRA - 1NSFERRING ',I3, 2X, 'BINS TOTALLING ', I6, 2X, 'LABEL-ARRAY ITEMS' - 2 ) - GO TO 999 -C ...WHICH IS NORMAL EXIT ..... -C -C * * * * * * * * * * * - 360 CONTINUE -C ...COMES HERE IF GOOD READ OF DATA BIN... - PRINT *, ' 2 INBIN(1,1)=', INBIN(1,1) - PRINT *, ' 2 INBIN(2,1)=', INBIN(2,1) - PRINT 119,INBIN(1,1),INBIN(2,1) - ITEMP = IAND(MSK0F, -7) -C IF(INBIN(1,1) .NE. -7) GO TO 364 - IF(INBIN(1,1) .NE. ITEMP) GO TO 364 - ITEMP = IAND(MSK0F, LEND) -C IF(INBIN(2,1) .EQ. LEND) GO TO 340 - IF(INBIN(2,1) .EQ. ITEMP) GO TO 340 - 364 CONTINUE - ITEMP = IAND(MSK0F, -1) -C IF(INBIN(1,1) .NE. -1) GO TO 400 - IF(INBIN(1,1) .NE. ITEMP) GO TO 400 -C ...COMES HERE IF ID RECORD WAS READ BY MISTAKE - PRINT 368, LOBTAP - 368 FORMAT(1H , '*** ERROR IN SUBR COPYOB. READ AN ID RECORD INSTEAD - 1 OF DATA RECORD *** ') - GO TO 340 -C -C * * * * * * * * * * * -C ...STEP(4) ... TO TRANSFER ITEMS FROM THE GOOD DATA BIN... - 400 CONTINUE - NUMTRN = NUMTRN + 1 - DO 555 J = 1,LMAX - IF(INBIN(1,J) .NE. 0) GO TO 405 - IF(INBIN(2,J) .EQ. 0) GO TO 340 -C ...WHICH TESTED FOR INTERNAL END OF INFO... - 405 CONTINUE - IF(J .NE. 1) GO TO 410 - IF(NUMTRN .NE. 1) GO TO 410 -C ...OTHERWISE, IT,S THE FIRST WORD OF FIRST BIN WHICH IS INIT - GO TO 555 -C ...WHICH SKIPS THE TRANSFER OF THE CHAR INITIALIZER ITEM - 410 CONTINUE - LABIX = LABIX + 1 - IF(LABIX .LE. LMAX) GO TO 540 -C ...OTHERWISE, BUFFER OUT THE FULL LABEL BIN... - PRINT 500 - 500 FORMAT(1H , 'LABEL ARRAY FULL') - NOBUF = NOBUF + 1 -C ...CHANGED FROM ASYNC WRITE 5/29/86 (DKM)... - CALL SBYTESCCS(INBUF,LABEL,0,32,0,2048) -C WRITE(LBLTAP,ERR=503)LABEL - PRINT *,' WRITE ONE RECORD TO TAPE55' - WRITE(LBLTAP,ERR=503)INBUF - 505 CONTINUE - LABIX = 1 - DO 506 I = 1,LMAX - LABEL(1,I) = 0 - LABEL(2,I) = 0 - 506 CONTINUE - 540 CONTINUE - LABEL(1,LABIX) = INBIN(1,J) - LABEL(2,LABIX) = INBIN(2,J) - KOUNT = KOUNT + 1 - 555 CONTINUE -C ...WHEN IT FALLS THRU 555 LOOP, ONE INBIN IS DEPLETED... - GO TO 320 -C -C * * * * * * * * * * * -C ...ERROR EXITS .... - 503 CONTINUE - PRINT 504,LBLTAP,NOBUF,LABIX - 504 FORMAT(1H0, 10X, 'ERROR STOP IN COPYOB WHILE WRITING ON FT', - 1 I2, /1H , 15X, 'NOBUF = ', I3, 5X, 'LABIX = ', I5) - STOP 1816 -C ...CATASTROPHIC ERROR IF CAN,T WRITE ON TAPE55... - 810 CONTINUE - PRINT 812,ILVLT - 812 FORMAT(1H , '*** ERROR RETURN FROM COPYOB. GIVEN OUT-OF-RANGE ILV - 1LT = HEX ', Z8) - IERROR = 1 - GO TO 999 - 820 CONTINUE - PRINT 822,KRUN1 - 822 FORMAT(1H ,'*** ERROR RETURN FROM COPYOB. GIVEN ', - 1 'OUT-OF-RANGE KRUN1 = HEX ',Z8) - IERROR = 1 - GO TO 999 - 910 CONTINUE - PRINT 912, LOBTAP,NUMRED - 912 FORMAT(1H , '*** ERROR RETURN FROM COPYOB. END-OF-FILE WAS HIT WHI - 1LE SEARCHING FT', I2, 2X, 'FOR DESIRED PLOTTED OBS FILE ***', - 2 /1H , 20X, 'NUMBER OF RECORDS READ DURING SEARCH = ', I6) - IERROR = 2 - GO TO 999 - 920 CONTINUE - PRINT 922,LOBTAP,NUMRED - 922 FORMAT(1H , '*** ERROR RETURN FROM COPYOB. PARITY ERROR WHILE SEAR - 1CHING FT', I2, 2X,'FOR DESIRED PLOTTED OBSERVATION FILE***', - 2 /1H , 20X, 'NUMBER OF RECORDS READ DURING SEARCH = ', I6) - IERROR = 2 - GO TO 999 - 930 CONTINUE - 940 CONTINUE - PRINT 942, LOBTAP,NUMRED - 942 FORMAT(1H , '***ERROR RETURN FROM COPYOB. LOGICAL END OF TAPE OR - 1 LOST ON SEARCH OF FT', I2, /1H , 20X, 'NUMBER OF RECORDS READ DUR - 2ING SEARCH IS ', I6) - IERROR = 2 - GO TO 999 -C - 999 CONTINUE - REWIND LOBTAP - RETURN - END diff --git a/util/sorc/trpanl.fd/encode.f b/util/sorc/trpanl.fd/encode.f deleted file mode 100755 index 030fae1547..0000000000 --- a/util/sorc/trpanl.fd/encode.f +++ /dev/null @@ -1,18 +0,0 @@ - subroutine encode(icv,iv) -c packs 1-4 byte integer into first four bytes of -c an integer variable AS ASCII!!. Replaces -c HDS encode function -c for this purpose -c WARNING. WHAT THIS CODE IS DOING IS NOT -c A GOOD IDEA, CALLER LOGIC SHOULD BE CHANGED. -c OR CALLER LOADED WITH SUCH LOGIC SHOULD BE -c REPLACED - character*8 cv - integer kv - equivalence (kv,cv) - write(cv(1:4),9) iv - 9 format(i4) - icv=kv - return - end - diff --git a/util/sorc/trpanl.fd/errmsg.f b/util/sorc/trpanl.fd/errmsg.f deleted file mode 100755 index eb4ce35826..0000000000 --- a/util/sorc/trpanl.fd/errmsg.f +++ /dev/null @@ -1,5 +0,0 @@ - subroutine errmsg(iv) - print 101,iv - 101 format(' ERRMSG CALLED WITH VALUE ',i9) - return - end diff --git a/util/sorc/trpanl.fd/get3.f b/util/sorc/trpanl.fd/get3.f deleted file mode 100755 index 462e2ce1cd..0000000000 --- a/util/sorc/trpanl.fd/get3.f +++ /dev/null @@ -1,71 +0,0 @@ - subroutine get3(lun,luni,jpds,array,c132) - common/grbpds/kpds - COMMON/PACKRA/IRAS(10) -c array is an NMC GRIB TYPE 3 field on output -c jpds is set in the CALLER!! except for fields 1-3 - dimension array(360,181) - dimension jpds(25),jgds(25) - dimension grib(360,181) - dimension kpds(25),kgds(25) - character*132 c132 - logical lb(360,181) -ckumar - character*11 envvar ! for ibm_sp_6000 - character*80 fileg,filegi ! for ibm_sp_6000 - character*2 clugrb,clugrbix -ckumar - jf=360*181 - jflag=-1 - kf=jf - jpds(2)=-1 - jpds(1)=7 - jpds(3)=3 - print 101,lun,luni - print 109,(jpds(ll),ll=1,25) - 109 format(5z17) -c -c*** kumar opening grib & index files here -c - write(clugrb,fmt='(i2)')lun - write(clugrbix,fmt='(i2)')luni - print*,'grib & index files unit #s ',clugrb,clugrbix -c - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lun - call getenv(envvar,fileg) - call baopen(lun,fileg,iret) -c - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') luni - call getenv(envvar,filegi) - call baopen(luni,filegi,iret) -c -c****** -c - call getgb1(lun,luni,jf,jflag,jpds,jgds, - 1 grib,kf,k,kpds,kgds,lb,array,ier) -c if ( ier .ne. 0) stop 99 - call w3fp11(grib,grib(2,1),c132,ierr) - print 106,k,c132 - 106 format(i6, 'LAB ',a132) - print 101,ier,k,kf - if(ier .ne.0 ) stop 9999 - print 102,(array(90,k),k=1,181) - 102 format(10f8.2) - 101 format(i9) -cj do 45,k=1,181 -c do 45,j=1,360 -c 45 if(j .gt. 70 .or. k .gt. 70) array(j,k)=array(70,70) -c SET IRAS VARIABLES - iras(1)=kpds(14) - iras(7)=kpds(11) - iras(8)=kpds(10) - iras(9)=kpds(9) - iras(10)=kpds(8) - call updatr -c iras(3)=iras(7) -c iras(4)=iras(8) -c iras(5)=iras(9) -c iras(6)=iras(10) - return - end diff --git a/util/sorc/trpanl.fd/getgb1.f b/util/sorc/trpanl.fd/getgb1.f deleted file mode 100755 index 0b4c3bc213..0000000000 --- a/util/sorc/trpanl.fd/getgb1.f +++ /dev/null @@ -1,221 +0,0 @@ - SUBROUTINE GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS, - & GRIB,KF,K,KPDS,KGDS,LB,F,IRET) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: GETGB1 FINDS AND UNPACKS A GRIB MESSAGE -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 94-04-01 -C -C ABSTRACT: FIND AND UNPACK A GRIB MESSAGE. -C READ AN ASSOCIATED GRIB INDEX FILE (UNLESS IT ALREADY WAS READ). -C FIND IN THE INDEX FILE A REFERENCE TO THE GRIB MESSAGE REQUESTED. -C THE GRIB MESSAGE REQUEST SPECIFIES THE NUMBER OF MESSAGES TO SKIP -C AND THE UNPACKED PDS AND GDS PARAMETERS. (A REQUESTED PARAMETER -C OF -1 MEANS TO ALLOW ANY VALUE OF THIS PARAMETER TO BE FOUND.) -C IF THE REQUESTED GRIB MESSAGE IS FOUND, THEN IT IS READ FROM THE -C GRIB FILE AND UNPACKED. ITS MESSAGE NUMBER IS RETURNED ALONG WITH -C THE UNPACKED PDS AND GDS PARAMETERS, THE UNPACKED BITMAP (IF ANY), -C AND THE UNPACKED DATA. IF THE GRIB MESSAGE IS NOT FOUND, THEN THE -C RETURN CODE WILL BE NONZERO. -C -C PROGRAM HISTORY LOG: -C 94-04-01 IREDELL -C 95-05-10 R.E.JONES ADD ONE MORE PARAMETER TO GETGB AND -C CHANGE NAME TO GETGB1 -C -C USAGE: CALL GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS, -C & GRIB,KF,K,KPDS,KGDS,LB,F,IRET) -C INPUT ARGUMENTS: -C LUGB LOGICAL UNIT OF THE UNBLOCKED GRIB DATA FILE -C LUGI LOGICAL UNIT OF THE UNBLOCKED GRIB INDEX FILE -C JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK -C J INTEGER NUMBER OF MESSAGES TO SKIP -C (=0 TO SEARCH FROM BEGINNING) -C (<0 TO REOPEN INDEX FILE AND SEARCH FROM BEGINNING) -C JPDS INTEGER (25) PDS PARAMETERS FOR WHICH TO SEARCH -C (=-1 FOR WILDCARD) -C LOOK IN DOC BLOCK OF W3FI63 FOR ARRAY KPDS -C FOR LIST OF ORDER OF UNPACKED PDS VALUES. IN -C MOST CASES YOU ONLY NEED TO SET 4 OR 5 VALUES -C TO PICK UP RECORD. -C JGDS INTEGER (22) GDS PARAMETERS FOR WHICH TO SEARCH -C (ONLY SEARCHED IF JPDS(3)=255) -C (=-1 FOR WILDCARD) -C OUTPUT ARGUMENTS: -C GRIB GRIB DATA ARRAY BEFORE IT IS UNPACKED -C KF INTEGER NUMBER OF DATA POINTS UNPACKED -C K INTEGER MESSAGE NUMBER UNPACKED -C (CAN BE SAME AS J IN CALLING PROGRAM -C IN ORDER TO FACILITATE MULTIPLE SEARCHES) -C KPDS INTEGER (25) UNPACKED PDS PARAMETERS -C KGDS INTEGER (22) UNPACKED GDS PARAMETERS -C LB LOGICAL (KF) UNPACKED BITMAP IF PRESENT -C F REAL (KF) UNPACKED DATA -C IRET INTEGER RETURN CODE -C 0 ALL OK -C 96 ERROR READING INDEX FILE -C 97 ERROR READING GRIB FILE -C 98 NUMBER OF DATA POINTS GREATER THAN JF -C 99 REQUEST NOT FOUND -C OTHER W3FI63 GRIB UNPACKER RETURN CODE -C -C SUBPROGRAMS CALLED: -C BAREAD BYTE-ADDRESSABLE READ -C GBYTE UNPACK BYTES -C FI632 UNPACK PDS -C FI633 UNPACK GDS -C W3FI63 UNPACK GRIB -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY C916/256, J916/2048 -C -C$$$ -C - PARAMETER (MBUF=8192*128) - PARAMETER (LPDS=23,LGDS=22) -C - INTEGER JPDS(25),JGDS(*),KPDS(25),KGDS(*) - INTEGER IPDSP(LPDS),JPDSP(LPDS),IGDSP(LGDS) - INTEGER JGDSP(LGDS) - INTEGER KPTR(20) -C - LOGICAL LB(*) -C - REAL F(*) -C - CHARACTER CBUF(MBUF) - CHARACTER*81 CHEAD(2) - CHARACTER*1 CPDS(28) - CHARACTER*1 CGDS(42) - CHARACTER*1 GRIB(*) - INTEGER IBUF(60) - EQUIVALENCE (IBUF(1), CBUF(1)) -C -C SAVE LUX,NSKP,NLEN,NNUM,CBUF - SAVE -C - DATA LUX/0/ - print *, LUGB,LUGI,JF,J,JPDS, - & KF,K,KPDS,IRET -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C READ INDEX FILE - IF(J.LT.0.OR.LUGI.NE.LUX) THEN -C REWIND LUGI -C READ(LUGI,fmt='(2A81)',IOSTAT=IOS) CHEAD - CALL BAREAD(LUGI,0,162,ios,chead) - print *, ios, CHEAD(1)(42:47) - IF(IOS.EQ.162.AND.CHEAD(1)(42:47).EQ.'GB1IX1') THEN - LUX=0 - READ(CHEAD(2),'(8X,3I10,2X,A40)',IOSTAT=IOS) NSKP,NLEN,NNUM - print *, IOS, NSKP,NLEN,NNUM - IF(IOS.EQ.0) THEN - NBUF=NNUM*NLEN - IF(NBUF.GT.MBUF) THEN - PRINT *,'GETGB1: INCREASE BUFFER FROM ',MBUF,' TO ',NBUF - NNUM=MBUF/NLEN - NBUF=NNUM*NLEN - ENDIF - CALL BAREAD(LUGI,NSKP,NBUF,LBUF,CBUF) -C call byteswap(CBUF, 8, LBUF/8) - print *, (ibuf(1), i=1, 20) - IF(LBUF.EQ.NBUF) THEN - LUX=LUGI - J=MAX(J,0) - ENDIF - ENDIF - ENDIF - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C SEARCH FOR REQUEST - LGRIB=0 - KJ=J - K=J - KF=0 - IF(J.GE.0.AND.LUGI.EQ.LUX) THEN - LPDSP=0 - DO I=1,LPDS - IF(JPDS(I).NE.-1) THEN - LPDSP=LPDSP+1 - IPDSP(LPDSP)=I - JPDSP(LPDSP)=JPDS(I) - ENDIF - ENDDO - LGDSP=0 - IF(JPDS(3).EQ.255) THEN - DO I=1,LGDS - IF(JGDS(I).NE.-1) THEN - LGDSP=LGDSP+1 - IGDSP(LGDSP)=I - JGDSP(LGDSP)=JGDS(I) - ENDIF - ENDDO - ENDIF - IRET=99 - DOWHILE(LGRIB.EQ.0.AND.KJ.LT.NNUM) - KJ=KJ+1 - LT=0 - IF(LPDSP.GT.0) THEN - CPDS=CBUF((KJ-1)*NLEN+26:(KJ-1)*NLEN+53) - KPTR=0 - call byteswap(CBUF, 8, LBUF/8) - CALL GBYTE(CBUF,KPTR(3),(KJ-1)*NLEN*8+25*8,3*8) - call byteswap(CBUF, 8, LBUF/8) -c print *, KPTR, KJ, LGRIB, NNUM, LT, LPDSP -c print *, CPDS - CALL FI632(CPDS,KPTR,KPDS,IRET) - print *, KPDS - DO I=1,LPDSP - IP=IPDSP(I) - LT=LT+ABS(JPDS(IP)-KPDS(IP)) - print *, i, ip, JPDS(IP), KPDS(IP) - ENDDO - ENDIF - IF(LT.EQ.0.AND.LGDSP.GT.0) THEN - CGDS=CBUF((KJ-1)*NLEN+54:(KJ-1)*NLEN+95) - KPTR=0 - CALL FI633(CGDS,KPTR,KGDS,IRET) - DO I=1,LGDSP - IP=IGDSP(I) - LT=LT+ABS(JGDS(IP)-KGDS(IP)) - print *, i, ip, JGDS(IP), KGDS(IP), LT - ENDDO - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C READ AND UNPACK GRIB DATA - print *, 'test', LT - IF(LT.EQ.0) THEN - call byteswap(CBUF, 8, LBUF/8) - CALL GBYTE(CBUF,LSKIP,(KJ-1)*NLEN*8,4*8) - CALL GBYTE(CBUF,LGRIB,(KJ-1)*NLEN*8+20*8,4*8) - call byteswap(CBUF, 8, LBUF/8) -c call byteswap(LSKIP, 8, 1) -c call byteswap(LGRIB, 8, 1) - CGDS=CBUF((KJ-1)*NLEN+54:(KJ-1)*NLEN+95) - KPTR=0 - print *, CGDS, LSKIP, LGRIB - CALL FI633(CGDS,KPTR,KGDS,IRET) -C BSM IF(LGRIB.LE.200+17*JF/8.AND.KGDS(2)*KGDS(3).LE.JF) THEN -C Change number of bits that can be handled to 25 - IF(LGRIB.LE.200+25*JF/8.AND.KGDS(2)*KGDS(3).LE.JF) THEN - CALL BAREAD(LUGB,LSKIP,LGRIB,LREAD,GRIB) - IF(LREAD.EQ.LGRIB) THEN - CALL W3FI63(GRIB,KPDS,KGDS,LB,F,KPTR,IRET) - IF(IRET.EQ.0) THEN - K=KJ - KF=KPTR(10) - ENDIF - ELSE - IRET=97 - ENDIF - ELSE - IRET=98 - ENDIF - ENDIF - print *, 'test', LGRIB, KJ, NNUM - ENDDO - ELSE - IRET=96 - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RETURN - END diff --git a/util/sorc/trpanl.fd/i3to53.f b/util/sorc/trpanl.fd/i3to53.f deleted file mode 100755 index bc309f7a3d..0000000000 --- a/util/sorc/trpanl.fd/i3to53.f +++ /dev/null @@ -1,49 +0,0 @@ - subroutine i3to53(F3,F53) -c code to interpolate fro 360x181 type 3 -c latlon grid to 117x51 type 53 mercator grid -c simple example of Mark Iredell's ploates -c routine - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) - dimension ipopt(2) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(jo53),rlon_53(jo53) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(jo53) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) stop 'makgd' -C -c ipopt=0 - ipopt(1)=1 - ipopt(2)=-1 - ip = 0 -c BICUBIC - ip=4 - - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo53,1, - 1 ibi,lo_06,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - print *, iret - if(iret.ne.0) stop 'ipol' - print * ,'IPOLATES RETURNING' - write(96) f53 - return - end diff --git a/util/sorc/trpanl.fd/isch.f b/util/sorc/trpanl.fd/isch.f deleted file mode 100755 index c488b9ce05..0000000000 --- a/util/sorc/trpanl.fd/isch.f +++ /dev/null @@ -1,27 +0,0 @@ - subroutine isch (jsched) - dimension isched(8,50) - dimension jsched(8,50),csched(8,50) - character*8 csched - equivalence (csched,isched ) - dimension ip(10) - do 5,k=1,50 - do 5 l=1,8 - 5 isched(l,k)=jsched(l,k) - do 10,k=1,15 - ip(1)=isched(1,k) - ip(2)=isched(2,k) - ip(3)=isched(3,k) - ip(4)=isched(4,k) - ip(5)=mova2i(csched(5,k)(7:7)) - ip(6)=mova2i(csched(5,k)(8:8)) - ip(7)=mova2i(csched(6,k)(7:7)) - ip(8)=mova2i(csched(6,k)(8:8)) - ip(9)=isched(7,k) - ip(10)=isched(8,k) - print 102,k,(ip(l),l=1,10) - 102 format(i6,' ischedd ',10i6) - 10 continue - return - end - - diff --git a/util/sorc/trpanl.fd/j2i.f b/util/sorc/trpanl.fd/j2i.f deleted file mode 100755 index 6b6ae32791..0000000000 --- a/util/sorc/trpanl.fd/j2i.f +++ /dev/null @@ -1,20 +0,0 @@ - subroutine j2i(m,n) - COMMON/NSCHED/ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,50) - common/nsched2/jsched - character*1 jsched(16,50) - character*8 c8(8,50) - equivalence(c8,isched) - madd=m/2 - mnew=madd*2 - if(mnew .eq. m) mnew2=madd - if(mnew .ne. m) mnew2=madd+1 - if(mnew .eq. m) ibb=8 - if(mnew .ne. m) ibb=7 - if (mnew .eq. m) c8(mnew2,n)(1:1)=jsched(m,n) - if (mnew .ne. m) c8(mnew2 ,n)(2:2)=jsched(m,n) - print *,' from j2i assigning jsched( ',m,n, - 1') to isched( ', mnew2,n, '), byte ',ibb,' with value', - 1 mova2i(jsched(m,n)) - return - end - diff --git a/util/sorc/trpanl.fd/land.f b/util/sorc/trpanl.fd/land.f deleted file mode 100755 index 39bf4a05ac..0000000000 --- a/util/sorc/trpanl.fd/land.f +++ /dev/null @@ -1,5 +0,0 @@ - function land(iv,iv2) - land=iand(iv,iv2) - return - end - diff --git a/util/sorc/trpanl.fd/lcntr.f b/util/sorc/trpanl.fd/lcntr.f deleted file mode 100755 index 4096f44d85..0000000000 --- a/util/sorc/trpanl.fd/lcntr.f +++ /dev/null @@ -1,54 +0,0 @@ - subroutine lcntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, - 1 il,label,ick,jfid,isched,index, - 1 nflds, - x FLD1,DASH1,DW1,SHAD, - x FLD2,DASH2,DW2,SHAD2, - x FLD3,DASH3,DW3,SHAD3, - x fld4,dash4,dw4,shad4) ! added by kumar - dimension fld1(*),image(*),il(15),isched(8,50) - 1 ,index(*) - dimension jfid(14) - dimension label(*) - dimension fld2(*),fld3(*),fld4(*),dw1(2),dw2(2),dw3(2),dw4(2), - 1 dash1(2), - 1 dash2(2), - 1 dash3(2),dash4(2),shad(20),shad2(20),shad3(20),shad4(20) - integer dash1,dash2,dash3,dash4,shad,shad2, - 1 shad3 ,shad4, - 1 dw1,dw2,dw3,dw4 - print *,' arg1 (iret_cnt) = ',iret_cnt - print *,' arg2 (image) is scratch space ' - print *,' arg3 (imagsize_wrds ) is ', imagsiz_wrds - print 104,' arg 4 (IL OR MAP), is ',il - 104 format(a20,2a9,2(/,5i16),/,2i16,z20) - print *,' arg5 (label) is ',label(1) - print *,' arg6, ick, ',ick - print 103,' arg 7 jfid(1-14) ',jfid - 103 format(a20,5(/,5z20)) - print 105,isched - print 106,isched - 106 format(' arg8 ISCHED',8(1x,z16)) - 105 format(' arg8 isched ',8(1x,z8)) - print *,'arg9 (index )' ,index(1) - 1 ,(index(kk),kk=2,6) - print *,' arg 10 (nflds ) ',nflds - do 77,k=1,20 - print 1077,' SHADES ',shad(k),shad2(k),shad3(k),k - 77 continue - 1077 format(a20,3i20,' k ',i4) - print 107,' args 11-14 (field dash dfw shad ) ', - 1 (fld1(k),k=1,10),dash1,dw1,shad - 107 format(a50,2(/,5f16.4),/,2z17,4x,2z17,4x,5(/,4z20),/) - print 107,' args 15-18 (field2 dash,dfw,shad ) ', - 1 (fld2(k),k=1,10),dash2,dw2,shad - print 107,' args 19-22 (field3,dash,dfw,shad ) ', - 1 (fld3(k),k=1,10),dash3,dw3,shad - call cntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, - 1 il,label,ick,jfid,isched,index, - 1 nflds, - x FLD1,DASH1,DW1,SHAD, - x FLD2,DASH2,DW2,SHAD2, - x FLD3,DASH3,DW3,SHAD3, - x fld4,dash4,dw4,shad4) - return - end diff --git a/util/sorc/trpanl.fd/lor.f b/util/sorc/trpanl.fd/lor.f deleted file mode 100755 index 401f420403..0000000000 --- a/util/sorc/trpanl.fd/lor.f +++ /dev/null @@ -1,5 +0,0 @@ - function lor(iv,iv2) - lor=ior(iv,iv2) - return - end - diff --git a/util/sorc/trpanl.fd/lputlab.f b/util/sorc/trpanl.fd/lputlab.f deleted file mode 100755 index b9d355a828..0000000000 --- a/util/sorc/trpanl.fd/lputlab.f +++ /dev/null @@ -1,22 +0,0 @@ - SUBROUTINE lPUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KPRIORS,ITAG) - dimension kprior(2) - character*(*) ctext -c parse kprior - kprior(1)=0 - kprior(2)=0 - if (kpriors .eq. 0) then - kprior(1)=0 - kprior(2)=0 - else - kprior(2)=kpriors - kprior(1)=0 - endif - 904 format('LPUTLAB TEXT',A132,i4) - 901 format - 1 ('LPUTLAB ARGS',i6,i6,f6.2, '>',a16,'<',f6.2,i3,i6,i6,i8) - print 901,ipt,jpt,height,ctext,angle,nchar,kprior,itaG - print 904,ctext,nchar - call PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KPRIOR,ITAG) - return - end - diff --git a/util/sorc/trpanl.fd/main.block.data.f b/util/sorc/trpanl.fd/main.block.data.f deleted file mode 100755 index fa0944dd8e..0000000000 --- a/util/sorc/trpanl.fd/main.block.data.f +++ /dev/null @@ -1,21 +0,0 @@ -C -C SUBPROGRAM: MAIN.BLOCK.DATA BLOCK DATA FOR MAIN IN FAXMAKR90 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: THIS IS THE BLOCK DATA STATEMENT FOR MAIN IN FAXMAKR90 CODE -C -C PROGRAM HISTORY LOG: -C 1999-08-01 KRISHNA KUMAR -C -C USAGE: BLOCK DATA ISCHED -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C - BLOCK DATA ISCHED_DATA - COMMON /NSCHED/ ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,50) - DATA ISCHED/4390,1,0,3600,Z'8000',Z'D800',0,0,392*0/ -C - END BLOCK DATA ISCHED_DATA -C diff --git a/util/sorc/trpanl.fd/main.f b/util/sorc/trpanl.fd/main.f deleted file mode 100755 index c49ce6a161..0000000000 --- a/util/sorc/trpanl.fd/main.f +++ /dev/null @@ -1,1201 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: GRAPH_TRPANL STREAM FUNCTION FORECASTS ON MERC -C PRGMMR: KUMAR ORG: NP12 DATE: 2000-02-15 -C -C ABSTRACT: READS INTERPOLATED SPECTRAL DATA PREPARED BY RUSS JONES -C IN A MERCATOR GRID(117X51). IT PRODUCES ANY NUMBER OF COMBINATIONS -C OF FIELDS AND LEVELS OUT TO 48 HOURS ON A MERCATOR BACKGROUND FOR -C FAX ONLY. -c Converted code is similar. However 117x51 interpolation -c is done on the fly by the Mark Iredell ipolates package. -c The input files are gfs 360x181 type 3 forecast GRIB files. -c Derived from front end and cray converted TRPSFPRV code. -c conversion removed capability to handle some combinations of -c fields (to save porting time) and added a few Z levels -c not used in trpsfprv ancestor but needed here. -c The only difference between the trpsfprv ancestor and this -c code is that the map label has been moved, the contour -c labels have been set to reverse video, and isotach shading -c has been added. -c -c **!!! IF THIS CODE IS CONVERTED AGAIN, IT IS VERY SIMILAR TO THE -c ** TRPSFPRV CONVERTED CODE AND ONE OR THE OTHeR SHOULD BE CONVERTED -c and then the few differences added to the not converted one. -c -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR(S)'S NAME(S) HERE -C 86-07-30 MILLER DESCRIPTION OF CHANGE -C 88-03-24 FARLEY REPLACED XDAM I/O WITH VSAM I/O -c 96-11-25 VandenBerghe Cray conversion of TRPSFPRV ancestor -c 97-01-14 VandenBerghe. Added reverse video contours, shading, and -c a moved map title. -c 97-02-26 VandenBerghe . Added plotvpap data ingest, -c new fax cuts to match old trpanl, new wndbrk -c routine that does not erase large graphics chunks, -c and moved wind barbs eight pixels south. New routines are -c rdobvt.f, and copyob.f for plotvpap. Also -c added GETENV calls from TITLES.f to write $net -c to the map rather than hardwiring gfs -c 97-11-07 VandenBerghe. Added end of all maps information -c to the sixbit bedient output file after users -c reported problems unpacking the last map in the file. -c 98-06-30 KRISHNA KUMAR. Modified the contour labelling in the -c fax products output from trpanl. The contours are now -c labelled every 10 grid points beginning in 5 and ending -c in 115 in the J - direction (longitude) -c 98-09-25 George Vandenberghe. Corrected bug where label -c array dimensioned 2048 in cntr was passed scalar -c -1 constant in calling list. This can lead to -c memory corruption. This bug was present in the -c original HDS code. Also removed pass through lcntr -c subroutine which prints the cntr arguments. -c also modified IAREA(*,*,1),IAREA(*,*,2) and IAREA(*,*,3) -c to create new hemispheric double size cuts, one -c for a large slice from 0E to 120W, and another for -c the small remainder from 120W to 0E. These -c are intended to print on 11x17 laser print paper -c at 300dpi and to be MANUALLY pasted together -c to replace the Intergraph plotting capability -c and the large plotters. IAREA(*,*,2) is not -c used yet and is free for other purposes. -c 2000-02-15 KRISHNA KUMAR Converted this code from CRAY to -c IBM RS/6000 SP system. -C USAGE: -C INPUT FILES: -c fort.12 GFS forecast file containing 360x181 GRIB type 3 u, -c and v grids -c fort.22 index to above -c fort.8 text file containing fax cuts and map titles -c fort.48 AWIPS input file needed for cntr. -c fort.11 (opened inside cntr) map background -c (path depends on implentation of CNTR package -c (current (PROD) cntr opens mr4002.pur on -c /nwprod/graph/fix/gphbg/ -c THIS PATH IS NOT CONFIGURABLE BY THE JOB OR CALLING PRO -c ; it is set in cntr.f in the CNTR library source code. -c SCRATCH: -c fort.55 Scratch files used internally -c by CNTR package. -c fort.60 -c fort.61 -c fort.62 -c fort.63 All of these are assigned -sunblocked on the crays -c fort.71 -c fort.72 -c fort.73 -c fort.52 -c -c OUTPUT: -c fort.81 The compressed bedient 6bit graphics product!! -c fort.6 standard output (probably too much) -c ALL FILES EXCEPT FORT.6, FORT.8, and stdin are assigned -su -c a simple stream of bits on the crays. -C SUBPROGRAMS CALLED: -C UNIQUE: CENTRE CLOSEF CLOSES CLOSET FAXSHD FLIPTR GETGES -C ISOTAC ISP2EB MAPX MERCIN POTEX REDFLD REDUCX RNCNTL -C SLTCRD SPCHK STR TITLES UVCLIP WNDPLO WWNDR -c get3,stream3,i3to53 -C LIBRARY: -C COMMON - CONSOL ENCODE DECODE ERRMSG -C W3LIB - W3AI01 W3AI15 W3AS00 W3FK40 W3FK43 W3FK41 W3AQ13 -C W3FM03 W3FP02 -C GRAPHICS - CNTR DUCK WNDBRK -c INTERPOLATION Ipolates -c SYSTEM GETENV -C -c ON the cray these libraries are in -c -c /nwprod/w3lib -c /nwprod/w3libs/iplib (ipolates ) -c /nwprod/w3libs/splib (spectral ipolates options ) -c /nwprod/gphlib/gphcntr (cntr package) -c /nwprod/gphlib/gphfont (cntr package) -c /nwprod/gphlib/gphlib (cntr package) -c -C EXIT STATES: -C COND = 0 SUCCESSFUL RUN -C = 18 DESIRED FIELD NOT IN DISK TABLE -C = 19 RETRIEVED DATA HAS WRONG ID -C = 74 BAD RUN CARD -c = 96 BAD GRIB INDEX FILE -c = 99 PROBLEM READING GRIB FILE (MAY ALSO BE INDEX PROBLEM) -C = 711 END OF FILE ON INPUT SCHEDULE FILE -C = 715 WRONG TIME -C = 761 BAD BACKGROUND INPUT DISK -C = 765 BAD OUTPUT FILE -C -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM RS/6000 SP -C -C$$$ -C -C ...TEST MERCIN - COMMON/BOBINS/LMERC(256),IDMERC(1539) - COMMON/XZPLAX/XZPLOT,YZPLOT,IORITY - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) - dimension labelf(2,1024) - COMMON/PACKRA/IRAS(10) - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON /NSCHED/ ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,50) - COMMON/ADJ2/XIDID,YJDID - COMMON/ADJ5/IRTKOR,IUPKOR - COMMON/FIXFLD/XIM(51),F(51) - COMMON /ISPACE/WORKS(18172) - COMMON/YUCK/FLD1(48,119),FLD2(48,119),FLD3(48,119), - & fld4(48,119) - COMMON/ILY/IT1A,LV1A,IFID(14),JFID(14) - character*56 cjfid,cifid - character*4 cvar4 - equivalence (cjfid,jfid),(cifid,ifid) - DIMENSION IL(15) - DIMENSION INDEX(6) - DIMENSION ICK(3) - DIMENSION ILVLI(3),IFLDI(3),ITAUI(3),IOUTIN(2) - DIMENSION NTAU (5) -ckumar DIMENSION MSG1(12) -ckumar DIMENSION MESS4(11) - character*4 msg1(12),mess4(11) - character*48 xmsg1 - character*44 xmess4 - equivalence (xmsg1, msg1) - equivalence (xmess4, mess4) -ckumar - DIMENSION IARR2(3) -c character*4 iarr2(3) -ckumar - DIMENSION LICYL(2) - DIMENSION IFLO(5),IFHI(5),IFF(5),IFC(5),IFG(5) - DIMENSION JSTPK(30),JSTPL(30),ITABMB(7),ITABFL(7),KSTPK(30), - 1 KSTPL(30) -ckumar DIMENSION ICFIX(6),JCFIX(10),KCFIX(6),LTHERM(4),LVWS(6),LFL(6) - DIMENSION ICFIX(12),JCFIX(12),KCFIX(12),LTHERM(12),LVWS(12), - 1 LFL(12) - DIMENSION IAREA(8,26) - INTEGER DASH1(2),DW1(2),SHAD(20),DASH2(2),DW2(2),DASH3(2),DW3(2) -ckumar - integer dash4(2),dw4(2),shad1(20),shad2(20),shad3(20),shad4(20) -ckumar -ckumar INTEGER ISCHED(8,50) - integer ihash - data ihash/Z'FFFFFFFFFFFF0000' / -ckumar REAL*8 MERCI - CHARACTER*8 MERCI -ckumar - DIMENSION ITITLE(17,8) - DIMENSION IPTITL(4) - INTEGER IHOUR(5) - INTEGER ITIM - INTEGER IHAVL(2) - INTEGER TITLE(17) - INTEGER ME (2) - data me /'4hBIN ','4hA3 '/ - INTEGER MON(12) -c LOGICAL LPARM(100) - character*1 lparm(100) -c LOGICAL LBLANK - character*1 lblank -c LOGICAL LEV(4) - character*1 lev(4) - LOGICAL PFAXMP,PVARMP,PAFOMP - EQUIVALENCE (IHAVL(1),KPRIOR) - EQUIVALENCE (T1,IL(15)) - EQUIVALENCE (LEV(1),LV1B) - DATA ITITLE/ - 1 '24 H','R 7','00 M','B ',7*' ',' V','ALID', - 2 4*' ', - 3 '24 H','R 5','00 M','B ST','REAM','S I','SOTA', - 4 'CHS ',' TEM','PERA','TURE','S V','ALID',4*' ', - 5 '24 H','R 4','00 M','B ',7*' ',' V','ALID', - 6 4*' ', - 7 '24 H','R 3','00 M','B ',7*' ',' V','ALID', - 8 4*' ', - 9 '24 H','R 2','00 M','B ',7*' ',' V','ALID', - X 4*' ', - 1 '24 H','R 2','50 M','B ST','REAM','S I','SOTA', - 2 'CHS ',' TEM','PERA','TURE','S V','ALID',4*' ', - 3 '24 H','R T','ROPO','PAUS','E PR','ESSU','RE T', - 4 'EMPS',' VER','T WN','D SH','R V','ALID',4*' ', - 5 '24 H','R 10','00 M','B ST','REAM','S ',5*' ', - 6 ' V','ALID',4*' '/ - DATA IMAX/48/,JMAX/119/ - DATA LBLTAP/55/ - DATA T1/30.0/ - DATA LEV/' ',' ',' ',' '/ - DATA LBLANK/' '/ - DATA IL(1),IL(2)/'MR4002',0/ - DATA IL(3),IL(4),IL(5),IL(6)/97,0,1440,3540/ -c DATA IL(3),IL(4),IL(5),IL(6)/97,0,1440,3840/ - DATA IL(7),IL(8),IL(9),IL(10)/97,0,1440,3540/ -c DATA IL(11),IL(12)/-60,-2/ -c DATA IL(11),IL(12)/30,298/ - DATA IL(11),IL(12)/00,0 / -c DATA IL(11),IL(12)/00,-302/ -c DATA IL(11),IL(12)/30,-2/ - DATA IL(13),IL(14)/-4,0/ -c DATA IL(13),IL(14)/4,0/ - DATA INDEX/119,26,1,48,-2,24/ -ckumar -ckumar used block data statements separately !!!! -ckumar DATA ISCHED/4390,1,0,3600,Z'8000',Z'D800',0,0,392*0/ - - DATA ICK/0,18172,0/ -ckumar DATA MSG1/4HNWS ,4H;@20,4H** ,4HTROP,4HICAL,4H PRG,4HCOMP, -ckumar 1 4HILED,4H 04/,4H20/8,4H1***,4H ;:/ - data xmsg1 / - & 'NWS ;@20TROPICAL PRG COMPILED 04 20_8 1*** ;:'/ -ckumar - DATA MASKFF/Z'FF'/ - DATA NU/1/ - DATA JU/8/ - DATA MERCI/'TRPGRD '/ - DATA MXREC2/255/ - DATA IHOUR/2H18,2H24,2H30,2H36,2H48/ - DATA NTAU /4H18 H,4H24 H,4H30 H,4H36 H,4H48 H/ - DATA MON/ 3HJAN,3HFEB,3HMAR,3HAPR,3HMAY,3HJUN, - 13HJUL,3HAUG,3HSEP,3HOCT,3HNOV,3HDEC/ -c LOGICAL LA/'A'/ - character*1 la - data la/'A'/ -ckumar DATA MESS4/4HNWS ,4H;@20,4H** ,4H 1,4H OF,4H 1,4H MA, -ckumar 1 4HPS C,4HOMPL,4HETED,4H**;:/ - data xmess4/ - & 'NWS ;@20 ** 1 OF 1 MAPS COMPLETED **;;'/ -ckumar - DATA ITBSE/7400/ - DATA INCR/30/ - DATA MXITR/7/ - DATA S/.5/ - DATA LICYL/3H00Z,3H12Z/ - DATA iXLPLMI/3HI+-/ - DATA iYLPLMI/3HS99/ - DATA iZLPLMI/3HS+-/ - character*3 xlplmi,ylplmi,zlplmi - equivalence(xlplmi,ixlplmi) - equivalence(ylplmi,iylplmi) - equivalence(zlplmi,izlplmi) - DATA IFLO/4H(1HC,4H,1H$,4H,A2),2*0/ - DATA IFHI/4H(1HA,4H,1H$,4H,A2),2*0/ -c DATA IFLO/4HCH1(,4H$H1,,4H)2A,,2*0/ -c DATA IFHI/4HAH1(,4H$H1,,4H)2A,,2*0/ - DATA IFF/4H(A3,,4H2HK$,4H,A2),2*0/ - DATA IFC/4H(1HF,4H,A3,,4H1H$),2*0/ - DATA IFG/4H(A3,,4H1H$),3*0/ -ckumar DATA JSTPK/36,68,72,80,100,114,24*0/ - DATA JSTPK/5,15,25,35,45,55,65,75,85,95,105,115,18*0/ -ckumar DATA JSTPL/44,44,44,44,44,44,24*0/ - DATA JSTPL/44,44,44,44,44,44,44,44,44,44,44,44,18*0/ - DATA ITABMB/400,350,300,250,200,150,100/ - DATA ITABFL/240,270,300,340,390,450,530/ -ckumar DATA KSTPK/28,48,58,76,90,108,24*0/ - DATA KSTPK/5,15,25,35,45,55,65,75,85,95,105,115,18*0/ -ckumar DATA KSTPL/6*44,24*0/ - DATA KSTPL/12*44,18*0/ -ckumar DATA ICFIX/36,68,72,80,100,114/ - DATA ICFIX/5,15,25,35,45,55,65,75,85,95,105,115/ -ckumar DATA JCFIX/38,52,60,66,70,82,90,98,106,112/ - DATA JCFIX/5,15,25,35,45,55,65,75,85,95,105,115/ -ckumar DATA KCFIX/28,48,58,76,90,108/ - DATA KCFIX/5,15,25,35,45,55,65,75,85,95,105,115/ -ckumar DATA LTHERM /9,32,60,86/ - DATA LTHERM/5,15,25,35,45,55,65,75,85,95,105,115/ -ckumar DATA LVWS /17,49,64,72,98,110/ - DATA LVWS /5,15,25,35,45,55,65,75,85,95,105,115/ -ckumar DATA LFL /21,36,53,76,102,114/ - DATA LFL /5,15,25,35,45,55,65,75,85,95,105,115/ - DATA MAPT7/Z'5600000000000000'/ -c DATA MAPT7/Z'E5000000'/ - DATA JA/26/ - DATA IA/8/ - DATA ITHOU/'1000'/ - DATA LV1B/' '/ - DATA IAREA/ - 1 2320,677,Z'83',68,108,0,0,0,2320,1172,Z'83',68,108,0,1172,0, - 2 1,126,Z'5',68,108,0,0,1299,2891,601,Z'83',70,108,0,601,0, - 3 2891,193,Z'45',178,23,0,0,589,1,126,Z'5',70,108,0,0,730, - 4 967,1083,Z'83',92,109,0,0,0,967,1083,Z'83',95,53,0,0,0, - 5 1934,1160,Z'83',75,108,0,0,0,3094,400,Z'83',73,108,0,400,0, - 6 1,126,Z'5',73,108,0,0,526,2308,775,Z'83',78,108,0,0,0, - 7 1,3600,Z'80',0,216,0,0,0,1,1800,Z'80',0,216,0,0,0, - 8 967,1083,Z'81',92,109,0,0,0,1015,386,Z'83',92,109,0,0,0, - 9 2027,772,Z'81',112,103,0,0,0,2652,772,Z'81',112,103,0,0,0, - 1 1934,890,Z'83',75,108,0,0,0,2272,1220,Z'83',68,108,0,1220,0, - 2 1,176,Z'5',68,108,0,0,1397,1,772,Z'81',112,103,0,0,0, - 3 670,772,Z'81',112,103,0,0,0,1347,772,Z'81',112,103,0,0,0, - 4 1,3485,Z'83',75,108,0,0,0,1158,1352,Z'83',Z'3C',Z'6C',0,0,0/ - DATA IBCHK/4H / - DATA IONE/1H1/ - DATA IPTITL/'MB S','TRM/','ITAC','H '/ -c -----------------new gwv cntr stuff - INTEGER MAXIWORD - PARAMETER (MAXIWORD=36) - - INTEGER MAXJSLINE - PARAMETER (MAXJSLINE=5828) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... ALLOCATE A BIG 1-D AREA for the image bitplane ... - - INTEGER IMAGSIZ_WRDS - PARAMETER (IMAGSIZ_WRDS=MAXIWORD*MAXJSLINE) - - COMMON /PICTURE/IMAGE - INTEGER IMAGE(IMAGSIZ_WRDS) - dimension krot_pri(2) - character*4 ctext -ckumar - COMMON/IOUTFAX/IFAXOUT,NRECFAX ! ADDED FOR DIRECT ACCESS FOR FAX OUTPUT -C - INTEGER IFAXOUT,NRECFAX -C -ckumar -c---------------------------------------------------------- end new gwv -C - do k=1,2 - do j=1,1024 - labelf(k,j)=0 - end do - end do - labelf(1,1)=-1 - do 1,k=1,100 -1 lparm(k)=' ' - IL(15)=30000 - do 47,k=1,20 - shad(k)=0 - shad2(k)=0 - shad3(k)=0 - 47 continue - shad2(1)=10 - shad2(2)=12 - CALL W3TAGB('GRAPH_TRPANL',2000,0053,0072,'NP12') -ckumar - NRECFAX = 0 - IFAXOUT = 81 -ckumar -c OPEN THE OUT PUT FAX FILE. - - OPEN (IFAXOUT, ACCESS='DIRECT', RECL=1440 ) -c -ckumar - CALL ERRMSG(9) - CALL CONSOL(MSG1) - REWIND NU -c fix iarea - do 3,k=1,8 - iarea(k,01)=iarea(k,26) - iarea(k,02)=iarea(k,26) - iarea(k,03)=iarea(k,26) - iarea(k,22)=iarea(k,26) - iarea(k,23)=iarea(k,26) - 3 iarea(k,24)=iarea(k,26) -c poke 1 for ystart, 2 for ysize, 4 for xstart (bytes) and 5 for xsi -c fix hono - iarea(2,26)=iarea(2,26)-197 - iarea(4,26)=iarea(4,26)+7 - iarea(5,26)=iarea(5,26)-2 -c fix EH - iarea(1,24)=1 - iarea(2,24)=1735 - iarea(4,24)=iarea(4,24)+16 -c fix WH - iarea(1,23)=1736 - iarea(2,23)=1735 - iarea(4,23)=iarea(4,23)+16 -c fix SJ - iarea(1,22)=2382 - iarea(2,22)=685 - iarea(4,22)=iarea(4,22)-13 -c fix VFULL - iarea(5,13)=166 - iarea(4,13)=35 - iarea(2,13)=3540 -c add 0E-120W 2/3 global cut (with overlap to 90W) - iarea(5,1)=216 - iarea(4,1)=01 - iarea(2,1)=2600 - iarea(1,1)=01 -c add 120W-0W 1/3 global cut ( not currently used) - iarea(5,2)=216 - iarea(4,2)=01 - iarea(2,2)=1600 - iarea(1,2)=2300 -c duplicate of above 4 lines for eastern cut (USED) - iarea(5,3)=216 - iarea(4,3)=01 - iarea(2,3)=1600 - iarea(1,3)=2300 -c do 2,kk=1,26 -c print (1023),kk,(iarea(j,kk),j=1,8) -c 1023 format(' 9999 iarea ',9i6) -c 2 continue -C -C ...INITIALIZE PUTLAB ARGUMENTS FOR CLABEL,CENTER CLOSED -C - PUTHGT=3.0 - PUTANG=90.0 - IPRPUT=0 - ITAPUT=0 - ISUBV=0 - PAFOMP=.FALSE. - PFAXMP=.FALSE. - PVARMP=.FALSE. -c ititialize label array -c XZPLOT=1.0 -c YZPLOT=1.0 -c IORITY=2 -c CALL ZPLOT(0.0,0.0,-3) -c now do it right!! -C -C INITIALIZE LABEL ARRAY -C -c LABIX = 0 -c NOBUF = 0 -cC -c IPT = 1 -c JPT = 0 -c HEIGHT = 1.0 -c ANGLE = 0.0 -c KROT_PRI(1) = 0 -c KROT_PRI(2) = 0 -c CTEXT(1:1) = '?' -c CTEXT(2:2) = CHAR(1) -c CTEXT(3:3) = '$' -c CTEXT(4:4) = CHAR(0) -c NCHAR = 2 -c ICMD = -2 -c CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, -c X ICMD) -c CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, -c X -7) -c do 18,k=1,9999 -c nchar=12 -c CALL PUTLAB(IPT,JPT+k, -c 1 HEIGHT,' now is the time',ANGLE,NCHAR,KROT_PRI, -c X ICMD) -c 18 continue -c stop 'putlab' -C -C -C ...INITIALIZE CONSTANTS - CALL MAPX -C ...WHERE MAPX FILLS /FIXFLD/ WITH LATITUDE DEPENDENT MERCATOR -C ...MAP CONSTANTS FOR EACH J ROW WHERE J=51 -C - CALL RNCNTL(NMAPS,IDATC,IOPN,ISWTCH,KRUN1,ITOUT1,ICYC1, - 1 INOPN1,INOPN2,INOPNA,INOPNB) -C ...INITIALIZE APPROPRIATE ID TABLES FOR INPUT FIELD DATA -C -c CALL W3FK40(MERCI,LMERC,MXREC2) -c CALL W3FK41(MERCI,IDMERC,MXREC2) - ICYCLT=IDMERC(3) - CALL GETGES(IRET) - PRINT 222,IRET - 222 FORMAT(1H0,10X,'CALLED GETGES TO NPREPARE GES STREAM FOR POTEX - 1AND RETURNED WITH IRET CODE = ',I2) - IF(ISWTCH.EQ.0) GO TO 7025 - 7000 CONTINUE - READ(JU,7050,END=7020)ICARD3,IIRUN1,IIRUN2,IIJOB1,IIJOB2,IICYC, - 1 NMAPS - 7050 FORMAT(A1,2(A4,A1),A4,I5) - IF(ICARD3.EQ.IONE) GO TO 7005 - PRINT 7003 - 7003 FORMAT(1H0,'BAD RUN CARD FORMAT ON TAPE8 FILE') - CALL W3TAGE('GRAPH_TRPANL') - STOP 74 -C -C ...FOUND CARD FORMAT ON TAPE8-RIGHT JOB-QQ - 7005 CONTINUE - IF(INOPNA.EQ.IIJOB1 .AND. INOPNB.EQ.IIJOB2) GO TO 7010 - DO 7006 IY=1,NMAPS - READ(JU,7200)ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B, - 2 LVL2A,LVL2B,IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A, - 3 LVL3B,IFLD3A,IFLD3B,ITAU3A,ITAU3B,ICODEA, - 3 ICODEB,IINFA,IINFB,IOUTA,IOUTB,MAPON,NSLOTS - 7200 FORMAT(A1,10(A4,A1),3X,2(A4,A1),2I4) - DO 7006 IX=1,NSLOTS - READ(JU,8200)ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ -c print 82000,' 9999 SLOT PRINT icard2,islota,islotb,ipana', -c 1 icard2,islota,islotb,ipana,ipanb,' ', ' ', 'a1,3(a4,a1)' -c print 82001,'9999 SLOT PRINT icard2',icard2 -c print 82001,'9999 SLOT PRINT islota ',islota -c print 82001,'9999 SLOT PRINT islotb ',islotb -c print 82001,'9999 SLOT PRINT ipana',ipana -c print 82001,'9999 SLOT PRINT ipanb ',ipanb -82001 format(a30,a5) - IF(IX .EQ. 1)ISUBV=ISUB - CALL IDCHCK(NSLOTS,IX,ISUBV,ISUB,PVARMP,PFAXMP,PAFOMP) - 7006 CONTINUE - GO TO 7000 - 7020 CONTINUE - PRINT 7007 - 7007 FORMAT(1H0,'END OF FILE ON TAPE8 BEFORE FINDING OPNL JOB TYPE') - CALL W3TAGE('GRAPH_TRPANL') - STOP 711 - 7010 CONTINUE - PRINT 7015,IIJOB1,IIJOB2 - 7015 FORMAT(1H0,'OPNL JOB FORMAT FOUND ON TAPE8= ',A4,A1) - 7025 CONTINUE - IMAPER=0 - DO 100 IT=1,NMAPS - CALL MERCIN(ISWTCH,NUMF,MAPON,NSLOTS,ILVLI, - 1 IFLDI,ITAUI,ICODIN,INAMIN,IOUTIN,IINFA,IINFB) - CALL REDFLD(ISWTCH,NUMF,ILVLI,IFLDI,ITAUI,IARR2,IERR) - IF(IERR.EQ.0) GO TO 93 - PRINT 95, MAPON,IERR - 95 FORMAT('0ID ERROR W3FK43-MAPON= ',I4,2X,I3,2X,'IERR=',I3) - PRINT 353 - 353 FORMAT(1H0,'MAP WAS SKIPPED') - DO 97 KK=1,NSLOTS - IF(ISWTCH.EQ.1) GO TO 99 - READ 8200, ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 8200 FORMAT(A1,3(A4,A1),4I5,2A4,A2,4A4,A2,4A4) -82000 FORMAT(a50,A1,3(A4,A1),a20,4I5,2A4,A2,4A4,A2,4A4) - IF(KK .EQ. 1)ISUBV=ISUB - CALL IDCHCK(NSLOTS,KK,ISUBV,ISUB,PVARMP,PFAXMP,PAFOMP) - GO TO 97 - 99 CONTINUE - READ(JU,8200) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - IF(KK .EQ. 1)ISUBV=ISUB - CALL IDCHCK(NSLOTS,KK,ISUBV,ISUB,PVARMP,PFAXMP,PAFOMP) - 97 CONTINUE - GO TO 100 - 93 CONTINUE - IMAPER=IMAPER+1 - INCR1=0 - NNN=0 - MLAST=ITBSE-INCR - DO 1340 J=1,50 - DO 1340 I=1,8 - ISCHED(I,J)=0 - 1340 CONTINUE - DO 1500 JK=1,NSLOTS - CALL SLTCRD(ISWTCH,ISLOTA,ISLOTB,IPANA,IPANB,IRLAB,IREM3A,IREM3B, - 1 IREM3C,IREM4A,IREM4B,IAREA3,ISUB,IFLAB,INSET,IREM1A,IREM1B) -C -C ...PUT IPAK INFORMATION INTO IFID(1) -C - IF(JK .EQ. 1)ISUBV=ISUB - CALL IDCHCK(NSLOTS,JK,ISUBV,ISUB,PVARMP,PFAXMP,PAFOMP) -c 2/11/97 gwv build ipak information in cjfid (part 1) - write(cvar4,144)ifid(1) - 144 format(a4) - read(cjfid(1:4),144) cvar4 -c end 2/11 mod 1 -C - CALL TITLES(ISLOTA,ISLOTB,IPANA,IOUTIN,ILVLI,IARR2,IRLAB,INCR, - 1 INCR1,MLAST,ITAUI,IVAR,JLAST,INOPN1,INOPN2,IREM3A,IREM3B,IREM1A - 1,IREM1B - 1, IFLD1A,IFLD1B) - CALL FAXSHD(IAREA,IA,JA,IAREA3,INCR1,INCR,JLAST,NNN) - IF(IVAR.EQ.MAPT7) GO TO 1500 - INCR1=INCR1+INCR - MLAST=JLAST - 1500 CONTINUE -C -C ...INSERT DUMMY STRIP -C - IF(IVAR.EQ.MAPT7) GO TO 1501 - JLAST=JLAST+INCR - JXL=JLAST - IXL=1 - NCHAR=4 - KTEXT=IBCHK -C CALL PUTLAB(IXL,JXL,1.0,KTEXT,0.0,NCHAR,0,0) - 1501 CONTINUE - IX=ILVLI(1) - JX=ITAUI(1) - DO 1505 I=1,17 - TITLE(I)=ITITLE(I,IX) - 1505 CONTINUE - ITIM=IHOUR(JX) - TITLE(1) = NTAU(JX) - CALL W3AI15(IRAS(3),IRHR,1,2,1H-) - CALL W3AI15(IRAS(4),IRDA,1,2,1H-) - IRMO=IRAS(5) - CALL W3AI15(IRAS(6),IRYR,1,2,1H-) - CALL ENCODE(TITLE(14),16) - WRITE(99,122)IRHR,MON(IRMO),IRDA,IRYR - 122 FORMAT(1X,A2,2HZ ,A3,1X,A2,3H 19,A2) -C CALL PUTLAB(5,1,11.0,TITLE(1),0.0,68,1,0) -C CALL PUTLAB(20,70,11.0,ME,0.0,6,1,0) -C -C ...CONSTRUCT IPAK TITLE -C - DO 1506 I7=2,14 - IFID(I7) = IBCHK - 1506 CONTINUE -C -C ...PREPARE BASE TIME FOR TYPEWRITER COMMENT -C - KMO = IRAS(9) - CALL W3AI15(IRAS(8),KDA,1,2,1H-) - CALL W3AI15(IRAS(7),KHR,1,2,1H-) - LV1B = LV1A - IF(LV1B .EQ. ITHOU)GO TO 1507 - LEV(4)=LEV(3) - LEV(3)=LEV(2) - LEV(2)=LEV(1) - LEV(1)=LBLANK - 1507 CALL ENCODE(IFID(3),36) - WRITE(99,1405)KMO,KDA,KHR,IT1A,LV1B,(IPTITL(I3),I3=1,4) - write(cifid(9:56),1405) - 1 KMO,KDA,KHR,IT1A,LV1B,(IPTITL(I3),I3=1,4) - 1405 FORMAT(I2,1H/,A2,1H/,A2,4HZ ,6A4) - PRINT 1409,(IFID(I9),I9=1,14) - 1409 FORMAT(1H0,'360 TYPEWRITER COMMENT= ',14A4) -C -c CALL EB2ISP(56,IFID(1),JFID(1),IERR) -c CALL ASC2ISP(56,IFID(1),JFID(1),IERR) -c CALL ASC2ISP(56,cifid,cjfid,IERR) - cjfid=cifid -C - PRINT 511 - 511 FORMAT('0SCHEDULE BIN FOLLOWS') -c CALL PDUMP(ISCHED(1,1),ISCHED(8,50),0) -C -C ...SETUP FOR MAP OUTPUT -C -C ...CONTOUR LABEL SUBROUTINES FOLLOW -C ...CLOSES CONTOURS LABELS FROM CENTER VALUES -C ...CLOSET CONTOURS LABELS FROM CONTOUR STRIP VALUES -C -C -C ...LOX IA A FLAG FOR DIRECT(=0)/INDIRECT(=1) CONTOUR LABEL VALUES -C -C ...ICK(1)=1 GOOD MAP -C ...ICK(1)=2 BAD OUTPUT TAPE -C ...ICK(1)=3 BAD BACKGROUND TAPE -C - IRTRY=3 - ICHOOS=IOUTIN(2) - print *,'ICHOOS 9999',ichoos - gO TO (1140,1110,1110,1120,1130,1130),ICHOOS -C -C -C ...STREAMS, ISOTACHS-ISOTHERMS- WITH PLOTTED WINDS -C -C ...IOUTIN(2)=3 -C ...WHERE FLD1=STREAMS -C ...WHERE FLD2=ISOTACHS -C ...WHERE FLD3=ISOTHERMS -C - 1110 CONTINUE - print *,' AFTER 1110 CONTINUE 9999' -C -C ...FIND STREAM CENTERS -C - ICEN1=1 - XLIM=-1. -c XS=-T1 - xs=30. - M=1 - XIDID=-5.0 - YJDID=-37.0 - A1=111.0 - B1=60.0 - PUTHGT=11.0 - IHAVL(1)=1 -C ROTATE CENTER LABELS 90 DEGREES - IHAVL(2)=1 - IPRPUT=KPRIOR - print *,'BEFORE CENTRE 9999' - CALL CENTRE(FLD1,IMAX,JMAX,XS,A1,B1,M,XLIM,ICEN1,XLPLMI,IFLO, - 1 IFHI) - print *,'AFTER CENTRE 9999' -C -C ...FIND ISOTACH CONTOUR LABELS FROM CENTERS -C - M=3 - LOX=0 - IUP=4 - IRTKOR=-6 - IUPKOR=-20 - A1=-6.5 - B1=20.0 - IPRPUT=2 - PUTHGT=3.0 - CALL CLOSES(FLD2,IMAX,JMAX,S,A1,B1,M,IUP,YLPLMI,IFF,JSTPK, - 1 JSTPL,LOX,ITABMB,ITABFL,MXITR) -C -C ...FIND ISOTACH CONTOUR LABELS FROM STRIPS -C - LOX=0 - IFIX=2 - IUP=42 - M=3 - PUTHGT=3.0 - IPRPUT=0 - IRTKOR=-6 - IUPKOR=-20 -ckumar DO 1111 ILAB=1,6 - DO 1111 ILAB=1,12 - JFIX=ICFIX(ILAB) - CALL CLOSET(FLD2,IMAX,JMAX,S,A1,B1,M,IUP,IFIX,JFIX,YLPLMI,IFF,LOX, - 1 ITABMB,ITABFL,MXITR) - 1111 CONTINUE -C -C ...FIND ISOTHERM CONTOUR LABELS FROM CENTERS -C - M=3 - LOX=0 - IUP=4 - IRTKOR=-1 - IUPKOR=-35 - A1=0.0 - B1=5.0 - IPRPUT=2 - PUTHGT=3.0 - CALL CLOSES(FLD3,IMAX,JMAX,S,A1,B1,M,IUP,ZLPLMI,IFG,KSTPK,KSTPL, - 1 LOX,ITABMB,ITABFL,MXITR) -C -C ...FIND ISOTHERM CONTOUR LABELS FROM STRIPS - LOX=0 - IFIX=2 - IUP=42 - M=3 - PUTHGT=3.0 - IPRPUT=0 - IRTKOR=-1 - IUPKOR=-35 -ckumar DO 1123 ILAB=1,6 - DO 1123 ILAB=1,12 - JFIX=KCFIX(ILAB) - CALL CLOSET(FLD3,IMAX,JMAX,S,A1,B1,M,IUP, - 1 IFIX,JFIX,ZLPLMI,IFG,LOX, - 1 ITABMB,ITABFL,MXITR) - 1123 CONTINUE -C -C ...SETUP FOR OUTPUT MAP-STREAMS/ISOTACHS/ISOTHERMS WITH -C ...PLOTTED WINDS -C - ICNT=3 - DW1(1)=2 - DW1(2)=0 -C ...FOR REGULAR LINES - DW2(1)=0 - DW2(2)=0 - DW3(1)=0 - DW3(2)=0 -C ...TO MAKE DOUBLE WEIGHT LINES - DASH1(1)=0 - DASH1(2)=0 - DASH3(1)=0 - DASH3(2)=0 -C ...NO DASHED LINES -cc SHAD(1)=0 -cc SHAD(2)=0 -C ...NO SHADING - DASH2(1)=7 - DASH2(2)=4 - DASH2(1)=20 - DASH2(2)=12 -c dash2(1)=ihash -c dash2(2)=ihash -C ...FOR DASHED LINES - GO TO 1400 -C -C -C -C ...STREAMS -WITH PLOTTED WINDS -C -C ...IOUTIN(2)=4 -C ...WHERE FLD1=STREAMS -C -C -C - 1120 CONTINUE - print *,' 9999 AFTER 1120 CONTINUE' -C -C ...FIND STREAM CENTERS -C - ICEN1=1 - XLIM=-1. - XS=-T1 - xs=-30 - M=1 - XIDID=-5.0 - YJDID=-37.0 - A1=111.0 - B1=30.0 - PUTHGT=11.0 - IHAVL(1) = 1 - IHAVL(2) = 1 - IPRPUT=KPRIOR - CALL CENTRE(FLD1,IMAX,JMAX,XS,A1,B1,M,XLIM,ICEN1,XLPLMI,IFLO, - 1 IFHI) -C -C ...SETUP FOR OUTPUT MAP-STREAMS WITH PLOTTED WINDS -C - WRITE(6,92) - 92 FORMAT( 10X,'***** PASSING THROUGH STREAMS-WINDS SECTION') - ICNT=1 - DW1(1)=2 - DW1(2)=0 -C ...FOR DOUBLE WEIGHT LINES - DASH1(1)=0 - DASH1(2)=0 -C ...NO DASHED LINES -c SHAD(1)=0 -c SHAD(2)=0 -C ...NO SHADING - GO TO 1200 -C ...TROPOPAUSE PRESSURE -C -C ...IOUTIN(2)=5 -C ...FLD1=TROPOPAUSE PRESSURE -C - 1130 CONTINUE - print *,' after 1130 continue 9999' -C -C ...FIND TROPOPAUSE PRESSURE CONTOUR LABELS FROM STRIPS -C ...USE INDIRECT FLIGHT LEVEL VALUES - LOX=1 - IFIX=2 - IUP=42 - M=3 - A3=0.0 - B3=50.0 - PUTHGT=3.0 - IPRPUT=0 - IRTKOR= 0 - IUPKOR=-50 -ckumar DO 1122 ILAB=1,6 - DO 1122 ILAB=1,12 - JFIX=LFL(ILAB) - CALL CLOSET(FLD1,IMAX,JMAX,S,A3,B3,M,IUP,IFIX,JFIX,YLPLMI,IFC,LOX, - 1 ITABMB,ITABFL,MXITR) - 1122 CONTINUE -C -C****************************************************************** -C FIND ISOTHERM CONTOUR LABELS FOR CENTERS -C****************************************************************** - M = 3 - LOX = 0 - IUP = 4 - IRTKOR = -1 - IUPKOR = -31 - A3 = 0.0 - B3 = 5.0 - IPRPUT = 2 - PUTHGT = 3.0 - CALL CLOSES(FLD2,IMAX,JMAX,S,A3,B3,M,IUP,ZLPLMI,IFG,KSTPK,ISTPL, - + LOX,ITABMB,ITABFL,MXITR) -C -C****************************************************************** -C FIND ISOTHERM CONTOUR LABELS FROM STRIPS -C****************************************************************** - IUPKOR = -45 - IRTKOR = 0 - IPRPUT = 0 - PUTHGT = 3.0 - IFIX = 2 - LOX = 0 - IUP = 42 - M = 3 -ckumar DO 800 ILAB=1,4 - DO 800 ILAB=1,12 - JFIX = LTHERM(ILAB) - CALL CLOSET(FLD2,IMAX,JMAX,S,A3,B3,M,IUP,IFIX,JFIX,ZLPLMI,IFG, - + LOX,ITABMB,ITABFL,MXITR) - 800 CONTINUE -C -C****************************************************************** -C FIND VWS CONTOUR LABELS IN STRIPS -C* *************************************************************** - IUPKOR = -40 - IRTKOR = -5 - PUTHGT = 3.0 - IFIX = 2 - IUP = 42 - LOX = 0 - A3 = 0.0 - B3 = 2.0 - M = 3 -ckumar DO 805 ILAB=1,6 - DO 805 ILAB=1,12 - JFIX = LVWS(ILAB) - CALL CLOSET(FLD3,IMAX,JMAX,S,A3,B3,M,IUP,IFIX,JFIX,ZLPLMI,IFG, - + LOX,ITABMB,ITABFL,MXITR) - 805 CONTINUE -C -C ...SETUP FOR OUTPUT MAP-TROP PRESSURE -C - ICNT=3 -C PRESSURE LINES: DW, NO DASH - DW1(1) = 2 - DW1(2) = 0 - DASH1(1)=0 - DASH1(2)=0 -C TEMP LINES: REGULAR, DASH - DW2(1) = 0 - DW2(2) = 0 - DASH2(1) = 0 - DASH2(2) = 0 -C VERTICAL WIND SHEAR: REGULAR, NO DASH - DASH3(1) = 7 - DASH3(2) = 4 - DW3(1) = 0 - DW3(2) = 0 -C NO SHADING -c SHAD(1) = 0 -c SHAD(2) = 0 - GO TO 1400 -C -C ...STREAMS, ISOTACHS- WITH PLOTTED WINDS -C -C ...IOUTIN(2)=1 -C ...WHERE FLD1=STREAMS -C ...WHERE FLD2=ISOTACHS -C - 1140 CONTINUE - print *,' AFTER 1140 continue 9999' -C -C ...FIND STREAM CENTERS -C - ICEN1=1 - XLIM=-1. - XS=-T1 - xs=-30.0 - M=1 - XIDID=-5.0 - YJDID=-37.0 - A1=111.0 - B1=60.0 - PUTHGT=11.0 - IHAVL(1)=1 -C ROTATE CENTER LABELS 90 DEGREES - IHAVL(2)=1 - IPRPUT=KPRIOR - print *,' BEFORE 1140 CENTRE CALL 9999 ' -c call ct53(fld1) -c call byteswap(IFLO(1), 8, 5) -c call byteswap(IFHI(1), 8, 5) - CALL CENTRE(FLD1,IMAX,JMAX,XS,A1,B1,M,XLIM,ICEN1,XLPLMI,IFLO, - 1 IFHI) - print *,' after 1140 CENTRE CALL 9999 ' -C -c stop 'CENTRE 1140' -C ...FIND ISOTACH CONTOUR LABELS FROM CENTERS -C - M=3 - LOX=0 - IUP=4 - IRTKOR=-6 - IUPKOR=-20 - A1=-6.5 - B1=20.0 - IPRPUT=2 - PUTHGT=3.0 - CALL CLOSES(FLD2,IMAX,JMAX,S,A1,B1,M,IUP,YLPLMI,IFF,JSTPK, - 1 JSTPL,LOX,ITABMB,ITABFL,MXITR) -C -C ...FIND ISOTACH CONTOUR LABELS FROM STRIPS -C - LOX=0 - IFIX=2 - IUP=42 - M=3 - PUTHGT=3.0 - IPRPUT=0 - IRTKOR=-6 - IUPKOR=-20 -ckumar DO 1141 ILAB=1,6 - DO 1141 ILAB=1,12 - JFIX=ICFIX(ILAB) -c call ct49 (fld2) -c call frame -c do kj=1,118 -c do ki=1,49 -c fld2(kj,ki)=fld2(ki,kj)*1.94 -c end do -c end do - CALL CLOSET(FLD2,IMAX,JMAX,S,A1,B1,M,IUP,IFIX,JFIX,YLPLMI,IFF,LOX, - 1 ITABMB,ITABFL,MXITR) -c do kj=1,118 -c do ki=1,49 -c fld2(kj,ki)=fld2(ki,kj)/1.94 -c end do -c end do - 1141 CONTINUE -C -C ...SETUP FOR OUTPUT MAP-STREAMS/ISOTACHS/ WITH -C ...PLOTTED WINDS -C - ICNT=2 - DW1(1)=0 - DW1(2)=0 -C ...FOR DOUBLE WT LINES - DW2(1)=0 - DW2(2)=0 - dw2(1)=2 - dw1(1)=0 -cccccccccccccccccc dw2(1)=2 -C ...TO MAKE REGULAR LINES - DASH1(1)=0 - DASH1(2)=0 -C ...NO DASHED LINES -c DASH2(1)=7 -c DASH2(2)=4 - DASH2(1)=10 - DASH2(2)=10 -C ...DASHED LINES -c SHAD(1)=0 -c SHAD(2)=0 -C ...NO SHADING - GO TO 1300 -C -C ...OUTPUT MAP-FLD1 -C - 1200 CONTINUE -c CALL PDUMP(LABEL(1,1),LABEL(2,LABIX),0) -C ...CLOSE OUT LABEL ARRAY AND WEF TAPE55 - CALL lPUTLAB(0,0,1.0,1HA,0.0,1,0,999) -c CALL PUTLAB(0,0,1.0,1HA,0.0,1,0,999) - ICK(3)=0 - IF(IT.EQ.NMAPS) ICK(3)=1 - 1201 CONTINUE - nflds=icnt -cc CALL CNTR(IL,-1,ICK,JFID,ISCHED,INDEX,ICNT,FLD1,DASH1,DW1,SHAD) -c call cntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, -c 1 map,LABEL,ichk,ifid,isched,index, -c 1 nflds, -c x FLD1,DASH1,DW1,SHAD) - print *,' from first cntr ',nflds - rewind (55) - call cntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, - 1 il,labelf,ick,jfid,isched,index, - 1 nflds, - x FLD1,DASH1,DW1,SHAD, - x fld2,dash2,dw2,shad2, ! added by kumar - x fld3,dash3,dw3,shad3, ! added by kumar - x fld4,dash4,dw4,shad4) ! added by kumar -ckumar - IF(ICK(1)-2) 100,1202,706 - 1202 IRTRY=IRTRY-1 - IF(IRTRY.EQ.0) GO TO 707 - GO TO 1201 -C -C ...OUTPUT MAP-FLD1/FLD2/FLD3 -C - 1400 CONTINUE -c CALL PDUMP(LABEL(1,1),LABEL(2,LABIX),0) -C ...CLOSE OUT LABEL ARRAY AND WEF TAPE55 -c CALL PUTLAB(0,0,1.0,1HA,0.0,1,0,999) - CALL lPUTLAB(0,0,1.0,1HA,0.0,1,0,999) - ICK(3)=0 - IF(IT.EQ.NMAPS) ICK(3)=1 - 1301 CONTINUE - nflds=icnt - rewind (55) - do kjj=1,50 - print 1079,(isched(jm,kjj),jm=1,8) - end do - 1079 format(5z17) -cc CALL CNTR(IL,-1,ICK,JFID,ISCHED,INDEX,ICNT,FLD1,DASH1,DW1,SHAD, -cc 1 FLD2,DASH2,DW2,SHAD,FLD3,DASH3,DW3,SHAD) - print *,' from second cntr ',nflds - call cntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, - 1 il,labelf,ick,jfid,isched,index, - 1 nflds, - x FLD1,DASH1,DW1,SHAD, - x FLD2,DASH2,DW2,SHAD2, - x FLD3,DASH3,DW3,SHAD3, - x fld4,dash4,dw4,shad) - IF(ICK(1)-2) 100,1302,706 - 1302 IRTRY=IRTRY-1 - IF(IRTRY.EQ.0) GO TO 707 - GO TO 1301 -C -C ...OUTPUT MAP-FLD1/FLD2 -C - 1300 CONTINUE -c CALL PDUMP(LABEL(1,1),LABEL(2,LABIX),0) -C ...CLOSE OUT LABEL ARRAY AND WEF TAPE55 - CALL lPUTLAB(0,0,1.0,1HA,0.0,1,0,999) -c CALL PUTLAB(0,0,1.0,1HA,0.0,1,0,999) - ICK(3)=0 - IF(IT.EQ.NMAPS) ICK(3)=1 - 1401 CONTINUE - nflds=icnt - rewind (55) - do kjj=1,50 - print 1077,(isched(jm,kjj),jm=1,8) - end do - call isch(isched) - -cc CALL CNTR(IL,-1,ICK,JFID,ISCHED,INDEX,ICNT,FLD1,DASH1,DW1,SHAD, -cc 1 FLD2,DASH2,DW2,SHAD) - print *,' from third cntr ',nflds - print *,'FLD 1 ',(FLD1(45,jjj),jjj=1,45) - print *,'FLD 2 ',(FLD2(45,jjj),jjj=1,45) -cj call ct49(fld1) -c c call frame -c call ct49(fld2) -c call frame - do 77,k=1,20 - print 1077,' SHADEb ',shad(k),shad2(k),shad3(k),k - 77 continue - 1077 format(a20,3i20,' k ',i4) - - call cntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, - 1 il,labelf,ick,jfid,isched,index, - 1 nflds, - x FLD1,DASH1,DW1,SHAD, - x FLD2,DASH2,DW2,SHAD2, - x FLD3,DASH3,DW3,SHAD3, ! added by kumar - x fld4,dash4,dw4,shad4) - do 177,k=1,20 - print 1077,' SHADE ',shad(k),shad2(k),shad3(k),k - 177 continue - IF(ICK(1)-2) 100,1402,706 - 1402 IRTRY=IRTRY-1 - IF(IRTRY.EQ.0) GO TO 707 - GO TO 1401 - 100 CONTINUE -C -C ... -C - NB=72 - LPARM(5)=LA -ckumar CALL W3FQ06(LPARM,NB,1,KRET) - PRINT 951,KRET - 951 FORMAT(10X,'RETURNED FROM W3AG02 WITH KRET=',I4//) - IF(KRET.LE.1) GO TO 96 - STOP 951 - 96 CONTINUE - CALL CONSOL('NWS,TROPICAL SURFACE ANALYSIS FAX ENDED:') - PRINT 750,IMAPER,NMAPS - 750 FORMAT(1H1,I3,' OF ',I3,' MAPS COMPLETED') -c gwv 11/7/97 END CNTR 6bit file PROPERLY!! -ckumar - CALL ENDMAP (IFAXOUT,NRECFAX) - CLOSE (IFAXOUT) -ckumar -c enc 11/7/97 insert - CALL ENCODE(MESS4(4),12) - WRITE(99,770)IMAPER,NMAPS - 770 FORMAT(I4,2X,2HOF,I4) - CALL CONSOL(MESS4) - CALL W3TAGE('GRAPH_TRPANL') - STOP 0 - - 706 CONTINUE - PRINT 761 - 761 FORMAT('1BAD BACKGROUND INPUT TAPE OR DISC ') - CALL W3TAGE('GRAPH_TRPANL') - STOP 761 - 707 CONTINUE - PRINT 765 - 765 FORMAT('1BAD OUTPUT TAPE') - CALL W3TAGE('GRAPH_TRPANL') - STOP 765 - END diff --git a/util/sorc/trpanl.fd/makefile b/util/sorc/trpanl.fd/makefile deleted file mode 100755 index 04b681910a..0000000000 --- a/util/sorc/trpanl.fd/makefile +++ /dev/null @@ -1,49 +0,0 @@ -SHELL=/bin/sh -# -SRCS= isch.f copyob.f rdobvt.f lcntr.f j2i.f lputlab.f get3.f shftl.f \ - stream3.f i3to53.f shftr.f errmsg.f land.f lor.f encode.f \ - CLOSEF.f CLOSES.f CLOSET.f FAXSHD.f FLIPTR.f GETGES.f IDCHCK.f \ - wndbrk.f ISOTAC.f MAPX.f MERCIN.f POTEX.f REDFLD.f REDUCX.f RNCNTL.f \ - SLTCRD.f SPCHK.f STR.f TITLES.f UVCLIP.f WNDPLO.f WWNDR.f main.f \ - main.block.data.f w3fp02_fake.f getgb1.f reblkfx4.F centre.f - -OBJS= isch.o copyob.o rdobvt.o lcntr.o j2i.o lputlab.o get3.o shftl.o \ - stream3.o i3to53.o shftr.o errmsg.o land.o lor.o encode.o \ - CLOSEF.o CLOSES.o CLOSET.o FAXSHD.o FLIPTR.o GETGES.o IDCHCK.o \ - wndbrk.o ISOTAC.o MAPX.o MERCIN.o POTEX.o REDFLD.o REDUCX.o RNCNTL.o \ - SLTCRD.o SPCHK.o STR.o TITLES.o UVCLIP.o WNDPLO.o WWNDR.o main.o \ - main.block.data.o w3fp02_fake.o getgb1.o reblkfx4.o centre.o - -FC = ifort - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} - -CMD = trpanl -# -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -qopenmp -assume byterecl -convert big_endian \ - -assume nobscc -assume noold_ldout_format -warn usage - -LDFLAGS = -qopenmp - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/trpanl.fd/rdobvt.f b/util/sorc/trpanl.fd/rdobvt.f deleted file mode 100755 index a1336c3ba1..0000000000 --- a/util/sorc/trpanl.fd/rdobvt.f +++ /dev/null @@ -1,151 +0,0 @@ - SUBROUTINE RDOBVT(JLVT,IERROR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: RDOBVT READ OBSERVATION STATION FILE -C AUTHOR: LUKE LIN ORG: WD41 DATE: 97-01-22 -C -C ABSTRACT: READ OBSERVATION STATION FILE -C -C HISTORY LOG: -C 97-01-22 LUKE LIN -C -C INPUT ARGUMENTS: -C LABEL - INTEGER*12 6-WORD OFFICE 84 ID -C LUGRBIX - ONE DEGREE GRIB INDEX FILE UNIT -C -C OUTPUT ARGEMENTS: -C IERROR -- RETURN STATUS -C - =0, NORMAL; -C -C USAGE: -C -C OUTPUT FILES: -C FT06F001 - PRINT OUTPUT (STANDARD FORTRAN OUTPUT FILE) -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: CFT-77 -C MACHINE: CRAY -C -C$$$ -C -C OPEN FILES AND OBTAIN LOCATER TABLES FOR VARIOUS RUNS -C -C KRUN1=1 RADAT FILES= ANL1 -C KRUN1=2 OPNL FILES= ANL,F00,F12,F24,F36,F48 -C KRUN1=3 OPNL OVER 48HR FILES= F60,F72,F84,F96 -C KRUN1=4 FINAL FILES=ANL ANL5 GF12 GF24 -C KRUN1=5 LFM FILES= FMANL,FM00,FM12,FM24 -C KRUN1=6 PFAX FILES F24 -C KRUN1=7 BACKUP PFAX FILES F36 -C KRUN1=8 PLOTFAX (1 DOT) FILES ANL1 -C KRUN1=9 PLOTFAX (2 DOT) FILES FMANL -C KRUN1=10 SIRSPLOT FILES= GF12 -C -C (7) IOPN= 0 OPNL RUN -C 1 CHECK OUT RUN -C 2 EXTRA PRINT RUN -C -C - COMMON /CPOB/ CPOBFG,ITAPOB,ILVLT,KRUN,IOPTRA(2) - LOGICAL CPOBFG -C - DIMENSION XTRA(2,1024) -C -C INTEGER LOBTAP -C DIMENSION IOPTRA(2) -C -C DIMENSION LVL(2,18) -C - INTEGER DATIM(8) - INTEGER IDATG(4) - INTEGER JLVT -C -C DATA LOBTAP/54/ -C DATA IOPTRA/0,0/ - DATA NOPTNS/2/ -C -C DATA LVL/4HSFC ,0, 4H1000,Z00271081,4H850 ,Z014C0882, -C 1 4H700 ,Z01117082,4H500 ,Z00C35082,4H400 ,Z009C4082, -C 2 4H300 ,Z00753082,4H250 ,Z0061A882,4H200 ,Z004E2082, -C 3 4H150 ,Z003A9882,4H100 ,Z00271082,4H070 ,Z01117083, -C 4 4H050 ,Z00C35083,4H030 ,Z00753083,4H020 ,Z004E2083, -C 5 4H010 ,Z00271083,4HTROP,0, 4HSIGL,0/ -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IERROR = 0 -C .... FOLLOWING IS A SAMPLE - IF (JLVT.EQ.1000) THEN - ILVLT=2 - ELSE IF (JLVT.EQ. 850) THEN - ILVLT=3 - ELSE IF (JLVT.EQ. 700) THEN - ILVLT=4 - ELSE IF (JLVT.EQ. 500) THEN - ILVLT=5 - ELSE IF (JLVT.EQ. 400) THEN - ILVLT=6 - ELSE IF (JLVT.EQ. 300) THEN - ILVLT=7 - ELSE IF (JLVT.EQ. 250) THEN - ILVLT=8 - ELSE IF (JLVT.EQ. 200) THEN - ILVLT=9 - ELSE IF (JLVT.EQ. 150) THEN - ILVLT=10 - ELSE IF (JLVT.EQ. 100) THEN - ILVLT=11 - ENDIF -C - ITAPOB = 54 - KRUN = 11 -C .... FOR TROPIC 1 - IOPTRA(1) = 1 -C .... by passing the time check - IOPTRA(2) = 1 -C .... by passing the background check -C -C GET PLOTTED DATA FROM TAPE54 -C -CADDED BY KUMAR BEGIN -C - CALL W3LOCDAT(DATIM) -C - IYEAR = DATIM(1) -C KDAYR = DATIM(3) - MONTH = DATIM(2) - IDAY = DATIM(3) - IHOUR = DATIM(5) -C -CADDED BY KUMAR END -C - IF (IHOUR .LE. 11) THEN - IHOUR = 0 - ELSE - IHOUR = 12 - ENDIF -C -C - IDATG(1) = IYEAR - IDATG(2) = MONTH - IDATG(3) = IDAY - IDATG(4) = IHOUR -C -CADDED BY KUMAR BEGIN -C - PRINT*, 'IYEAR,MONTH,IDAY,IHOUR ', IYEAR,MONTH,IDAY,IHOUR -C -CADDED BY KUMAR END -C - PRINT *, ' ILVLT=',ILVLT - PRINT *, ' KRUN=',KRUN - CALL COPYOB(ITAPOB,XTRA,ILVLT,KRUN,IDATG,IOPTRA,NOPTNS, - XKOUNT,IERROR) - PRINT 901,KOUNT,IERROR - 901 FORMAT(1H0,'LABEL ARRAY ITEMS-KOUNT= ',I5, - X' COPYOB RETURN-IERROR= ',I5,' GO ON ANYWAY') - 902 CONTINUE -C - RETURN - END diff --git a/util/sorc/trpanl.fd/reblkfx4.F b/util/sorc/trpanl.fd/reblkfx4.F deleted file mode 100755 index a855315357..0000000000 --- a/util/sorc/trpanl.fd/reblkfx4.F +++ /dev/null @@ -1,1637 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif - SUBROUTINE REBLKFX4(LUNIX6T,LUNIPK6,NUMRECFAX, - 1 IISCHED,C1IFID,MYOPTNBITS,IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REBLKFX4 CONVERT RLE NMC EXT 6-BIT TO PACKED FORM -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-10-26 -C -C ABSTRACT: CONVERT A FILE CONTAINING ONE RUN-LENGTH ENCODED (RLE) -C RASTER PRODUCT IN NMC EXTENDED 6-BIT CODE INTO THE NMC PACKED -C 6-BIT FAX CODE, AND ADD ALL THE HEADERS AND TRAILERS REQUIRED -C IN THE FINAL NMC 6-BIT PACKED FAX PRODUCT FORMAT. -C -C PROGRAM HISTORY LOG: -C 85-12-02 ORIGINAL AUTHOR(S)'S NAME: DAVID SHIMOMURA -C -- TO REBLOCK FAX PRODUCT FROM GIVEN 512-BYTE -C RECORDS INTO 1440-BYTE BLOCKS. -C -C 86-03-06 SHIMOMURA -- MODIFIED TO WRITE COMMENTS TO UNIT=46 -C FOR RUNNING UNDER FXD.COM -C -C 86-03-07 SHIMOMURA -- COPIED FROM VAX VERSION:'REBLKFAX.FOR' -C TO MAKE A VERSION WHICH CALLS faxwrs3 TO INSERT -C DOUBLE-DLE'S AND OTHER RJE COMMS REQUIREMENTS -C FOR MOVING FROM VAX TO IBM MAINFRAME USING RJE LINE, -C AND BYPASS THE INTERMEDIATE FILE OF PURE NMC STD FAX. -C -C 86-04-29 SHIMOMURA -- modified to discard trailing blank lines -C before the end-of-map. -C -C 89-12-26 SHIMOMURA -- COPIED VAX VERSION OF [6,300]REBLKFX.FOR -C TO MAKE A CHECKOUT VERSION, STRIPPING OUT THE RJE -C TRANSMISSION MODS IN AN ATTEMPT TO MAKE PURE NMC -C 6-BIT PACKED 1440 BYTE RECORDS; -C -C 91-08-08 ART WICK - Modified to run on Intergraph Unix workstation. -C -C 93-05-26 SHIMOMURA -- Modified for new af77 compiler, which is a -C change from previous version of Green Hills compiler. -C -C 95-04-25 SHIMOMURA -- THE OPNL INTERGRAPH VERSION IS "REBLKFX2", -C SO I COPIED INTO "REBLKFX3" TO MAKE MODS WITHOUT -C AFFECTING OPNS. THESE MODS ARE FOR GENERATING MAP -C BACKGROUNDS WHICH HAVE DIFFERENCES IN THE "IFID"- -C HEADER. -C -C 96-04-30 SHIMOMURA -- REPROGRAM FROM INTERGRAPH TO CRAY -C 96-05-13 SHIMOMURA -- RENAMED TO REBLKFX4 BECAUSE I AM CHANGING -C THE INPUT RECORD SIZE FROM 512-BYTES TO 1920-BYTES -C 96-11-11 SHIMOMURA -- CORRECTING FOR ISCHED OF MULTI-PANELS -C -C 1999-07-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C 1999-07-20 HENRICHSEN MODIFY TO USE DIRECT ACCESS I/O ON FAX OUTPUT -C FILE FOR RUNNINGON THE IBM SP. -C 1999-10-26 KRISHNA KUMAR COMMENTED A STATEMENT (NBLOCKOUT=NBLOCKOUT+1) -C WHICH WAS INCREMENTED TWICE (TYPO ERROR) WHICH CAUSED HAVOC ON -C MANY FAX GRAPHICS PROGRAMS WITH SUBTITLES & SUBSETS -C -C USAGE: CALL REBLKFX4(LUNIX6T, LUNIPK6,NUMRECFAX, -C 1 IISCHED,C1IFID,MYOPTNBITS,IERR) -C -C INPUT ARGUMENT LIST: -C NUMRECFAX RECORD NUMBER IN OUTPUT FAX FILE TO BEGIN WRITTING. -C I*8 IISCHED(8,60) - CNTR,S FAX SCHED CONTROLS; -C C*1 C1IFID(48) - CNTR,S FAX HEADER ID; -C I*8 MYOPTNBITS - FOR OPTIONS -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C I*8 IERR - RETURN CODE -C = 0; NORMAL RETURN -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C I*8 LUNIX6T - DSRN OF INPUT FILE CONTAINING ONE PRODUCT -C IN NMC EXTENDED 6BIT CODE; -C -C OUTPUT FILES: -C I*8 LUNIPK6 - DSRN OF OUTPUT FILE IN NMC 6BIT PACKED RLE; -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C CALLS piksor() TO SORT ISCHED ITEMS -C CALLS PAK8TO6() TO CONCATENATE 6-BIT CODE. -C CALLS PADIFID() TO PAD THE IFID. -C calls sbytesccs() to quarter pack the iisched data -C -C ATTRIBUTES: -C LANGUAGE: IBM FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C 22-MAY-1996/DSS -C ... -C -C . . . . . . D E F I N E C O N S T A N T S . . . . . . . . . - INTEGER NBYTPWRD - PARAMETER (NBYTPWRD=8) !... CRAY 8-BYTE INT -C ... PARAMETER (NBYTPWRD=4) !... INTERGRAPH I*4 WRD - - INTEGER INRECL !... INPUT RECL IN BYTES - PARAMETER (INRECL=1920) - - INTEGER INRECLINT !... 64 I*8 WRDS =1920/8 - PARAMETER (INRECLINT=INRECL/NBYTPWRD) - - INTEGER INRECLINT2 !...128 I*8 WRDS =2*64 - PARAMETER (INRECLINT2=2*INRECLINT) - - INTEGER INRECLINTP1 !... 65 I*8 WRDS =1+64 - PARAMETER (INRECLINTP1=1+INRECLINT) - - - INTEGER NMCSTDRECL !... = 1440 BYTES - PARAMETER (NMCSTDRECL=1440) - - INTEGER MAXEXTBYT - PARAMETER (MAXEXTBYT=1920) -C ... WHERE 1920 BYTES IS CAPACITY OF C1SPRED ARRAY -C ... WHICH IS EQUIV TO 1440-BYTES IN COMPRESSED 6-BITS, BUT -C ... EXTENDED TO 8-BITS PER 6-BIT ITEM. - - INTEGER MAXEXTINT !...240 I*8 WRDS =1920/8 - PARAMETER (MAXEXTINT=MAXEXTBYT/NBYTPWRD) -C -C - INTEGER MXSCHED - PARAMETER (MXSCHED=60) -C ... MAX NO. OF SUBSETS/INSETS DEFINED IN GIVEN IISCHED ARRAY. -C ... BEDIENT USES 59 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /XSCHEDS/NTOTSCHED,NSCHED_CUT,NSCHED_TITL,JOFSCH, - 1 NUMPANEL,JSCHED2D,JLINSRTED - INTEGER NTOTSCHED - INTEGER NSCHED_CUT - INTEGER NSCHED_TITL - INTEGER JOFSCH - INTEGER NUMPANEL - INTEGER JSCHED2D(8,MXSCHED) - INTEGER JLINSRTED(2,MXSCHED) - -C ... SUBSET DEFS IN JSCHED2D WHOSE POINTERS REMAIN TO -C ... BE DEFINED = F(STARTING SCAN LINE) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C CALL SEQUENCE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C - INTEGER LUNIX6T !...Arg1: dsrn of input.x6t -C -C ... WHERE LUNIX6T IS DSRN OF LOGICAL UNIT WHERE INPUT FILE -C ... OF FAX.X6T RASTER DATA FORMATTED 6-BIT CODE IN 8-BIT -C ... BYTE IS TO BE READ IN FROM -C - INTEGER LUNIPK6 !...Arg2: dsrn of output.pk6 -C ... WHERE LUNIPK6 IS DSRN OF LOGICAL UNIT WHERE NMCSTDRECL-BYTE -C ... BLOCKED RECORD WILL BE OUTPUT. -C - INTEGER IISCHED(8,MXSCHED) !...Arg3: isched() -C ... WHERE IISCHED IS ACCEPTED AS ARG IN CALL SEQ -C ... AND IS IN THE SAME FORMAT AS IN CALL TO CNTR -C - CHARACTER*1 C1IFID(48) !...Arg4: IFID(48BYTES) -C - INTEGER MYOPTNBITS !...Arg5: option controls -C ... WHERE MYOPTNBITS ARE MY OWN OPTION BITS; -C ... DO NOT CONFUSE THESE WITH THE MAP(2) OPTION BITS -C - INTEGER IERR !...ARG6 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C - integer nsizdes - data nsizdes / 180 / !... 1440/8bytperword= 180 wrds - integer JSCHEDS(180) !... 1440/8bytesperword=180 wrds - CHARACTER*1 C1JSCHED(1440) - EQUIVALENCE (C1JSCHED(1),JSCHEDS(1)) - - integer noffset - integer nbitpgrp - integer nbitskip - integer ngrps2do - -C -C ... ... i was thinking to explicitly save what I need to -C ... ... preserve from one panel to next panel; -C ... ... but I cannot equivalence arrays in common - INTEGER INTSPRED(MAXEXTINT) - CHARACTER*1 C1SPRED(MAXEXTBYT) !... (1920) - EQUIVALENCE (INTSPRED(1),C1SPRED(1)) -C ... WHERE C1SPRED IS BIG ENOUGH FOR ONE OUTPUT FAX -C ... RECORD SPREAD OUT 6 BITS DATA PER 8-BIT BYTE. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - INTEGER JOUTBF(180) !... I*4 WAS (360) - CHARACTER*1 C1OUTBF(NMCSTDRECL) - EQUIVALENCE (C1OUTBF(1),JOUTBF(1)) -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . Input is 1920-byte rec of .X6T data . . . . . . . - -C - INTEGER inbufA(INRECLINT) -C -C - CHARACTER*1 CINBUF(INRECL) - EQUIVALENCE (inbufA(1),CINBUF(1)) -C - INTEGER KHEADER(8) !... 8*8 = 64 -C ... WHERE REBLKFX4 WILL COPY padded IFID HEADER INTO FROM INPUT -C - CHARACTER*1 LHEADER(64) - EQUIVALENCE (KHEADER(1),LHEADER(1)) -C -C - - INTEGER IACC - integer iword1 - - INTEGER MSKLHS - DATA MSKLHS / X'FFFFFFFF00000000' / - INTEGER MSKRHS - DATA MSKRHS / X'00000000FFFFFFFF' / - - INTEGER MSKHI3BYT - DATA MSKHI3BYT / X'FFFFFF0000000000' / - INTEGER MAPSTARTFLAG - DATA MAPSTARTFLAG / X'FFFFFF0000000000' / -C -C . . . . . . . . . . . . logical switches . . . . . . . . . -C . . . . . . . . . . . . derived from MYOPTNBITS . . . . . . . - - LOGICAL LENTIREQQ !... ALL-IN-1 OR IN PANELS - LOGICAL LADD_ONQQ !... AT ENTRY TO ADD-ONTO EXISTG - LOGICAL LEAVE_OPENQQ !... AT EXIT TO LEAVE PROD OPEN - LOGICAL LSKIPFFQQ !... AT ENTRY NOT TEST FOR FF's - LOGICAL LRASAT65QQ !... RASTER STARTS @(65) OR (49) - LOGICAL LID_CALSQQ - LOGICAL LID_PADDQQ - LOGICAL LIDIN_CDCQQ - LOGICAL LIDIN_EBCQQ - LOGICAL LIDIN_ASCQQ - LOGICAL LIDOUT_CDCQQ - LOGICAL LIDOUT_EBCQQ - LOGICAL LIDOUT_ASCQQ - logical LSCHED_EXTDQQ - -C . . . . . . . . . . . . logical switches . . . . . . . . . -C - LOGICAL LSTARTING_PROD -C -C - LOGICAL LSTRIPTITLQQ - LOGICAL LEOMAP - LOGICAL LEOFIL - LOGICAL LINEMT - LOGICAL MANYBLA -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - CHARACTER*1 CONEBYT - - CHARACTER*1 NULL -C - CHARACTER*1 KENDMAP -C ... DATA KENDMAP / '33'X / - CHARACTER*1 KENDLIN -C ... DATA KENDLIN / '30'X / -C -C ... FOR COMPARING INPUT RECORD-HEADERS IN EXTENDED 6-BIT FRMT: - integer KSTART_IFID - data KSTART_IFID / X'3F3F3F3F00000000' / -C ... WHICH IS START OF MAP W/ IFID BLOCK HEADER - integer KSTART_TITL - data KSTART_TITL / X'3F3F3F3E00000000' / -C ... WHICH IS START STRIP-TITLES BLOCK HEADER - integer KSTART_SCHED - data KSTART_SCHED / X'3F3F3F3D00000000' / -C ... WHICH IS THE START ISCHEDS BLOCK HEADER - integer KEND_ALLMAPS - data KEND_ALLMAPS / X'3F3F3F3C00000000' / -C ... WHICH IS THE END-OF-ALL-MAPS BLOCK HEADER - - INTEGER KENDALLPKD - DATA KENDALLPKD / X'FFFFFC0000000000' / -C - integer K2MANY - DATA K2MANY / 50 / -C ... where K2MANY is limiting no. of blank scan lines to -C ... permit at end of map before holding up and looking -C ... ahead to see if it is indeed the end. -C - INTEGER ISPR -C ... WHERE ISPR COUNTS BYTES PUT INTO C1SPRED - INTEGER ISPSAV - INTEGER NRECIN -C ... WHERE NRECIN COUNTS THE 1920-BYTE PHYSICAL RECORDS INPUT - INTEGER NSCANLN - INTEGER NBLOCKOUT -C ... WHERE NBLOCKOUT COUNTS BLOCKS THIS SUBROUTINE HAS -C ... FILLED UP - LOGICAL LSTARTEDQQ !... HAS OUTPUT MAP STARTED ?? -C ... FOR START OF MAP FOUND FLAG - INTEGER NBLSAV -C - CHARACTER*1 C1IFIDCDC(48) - - - SAVE -C -C * * * * * * * * * * -C -C . . . S T A R T . . . -C ... INITIALIZATION ... - IERR = 0 -C ... DEFINE BYTE CONSTANTS ... - - NULL = CHAR(0) - - KENDMAP = CHAR(51) !... = X'33' = END-OF-MAP - KENDLIN = CHAR(48) !... = X'30' = END-OF-A-LINE - - write(6,105)MYOPTNBITS - 105 format(1h ,'REBLKFX4: started version dated 20-Jul-1999;', - 1 ' MYOPTNBITS=hex ',Z16,/) - - IF((LUNIX6T .LE. 0) .OR. - 1 (LUNIX6T .GT. 99)) THEN - WRITE(6,115)LUNIX6T - 115 FORMAT(1H ,'REBLKFX4:FAILED ON BAD-VALUED INPUT DSRN ', - 1 'LUNIX6T =',I7) - IERR = 1 - GO TO 999 - ENDIF - - IF((LUNIPK6 .LE. 0) .OR. - 1 (LUNIPK6 .GT. 99)) THEN - WRITE(6,117)LUNIPK6 - 117 FORMAT(1H ,'REBLKFX4:FAILED ON BAD-VALUED OUTPUT DSRN ', - 1 'LUNIPK6 =',I7) - IERR = 2 - GO TO 999 - ENDIF - - REWIND LUNIX6T - -C ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... - - IF(BTEST(MYOPTNBITS,0)) THEN -C ... THERE IS A BIT AT THE (0) POSITION ... - LENTIREQQ = .FALSE. !... SO MUST DO SEVERAL PANELS - IF(BTEST(MYOPTNBITS,1)) THEN -C ... THERE IS A BIT AT THE (1) POSITION ... - LADD_ONQQ = .TRUE. !... ADD-ONTO EXISTING PRODUCT - ELSE -C ... THERE IS A ZERO AT THE (1) POSITION ... - LADD_ONQQ = .FALSE. !... SO INITIALIZE FOR NEW PROD - ENDIF - IF(BTEST(MYOPTNBITS,2)) THEN -C ... THERE IS A BIT AT THE (2) POSITION ... - LEAVE_OPENQQ = .TRUE. !... AT END LEAVE WITH PROD OPEN - ELSE -C ... THERE IS A ZERO AT THE (2) POSITION ... - LEAVE_OPENQQ = .FALSE. !... CLOSE AT END OF THIS PANEL - ENDIF - ELSE -C ... THERE IS A ZERO AT THE (0) POSITION ... - LENTIREQQ = .TRUE. !... COMPLETE ENTITY IN ONE - LADD_ONQQ = .FALSE. !... SO INITIALIZE AT START - LEAVE_OPENQQ = .FALSE. !... AND CLOSE AT END - ENDIF - - IF(BTEST(MYOPTNBITS,3)) THEN -C ... THERE IS A BIT AT THE (3) POSITION ... - LSKIPFFQQ = .FALSE. !... BIT3=1; TEST FOR FFFFFF - ELSE - LSKIPFFQQ = .TRUE. !... BIT3=0; DO NOT TEST FF - ENDIF - - IF(BTEST(MYOPTNBITS,4)) THEN -C ... THERE IS A BIT AT THE (4) POSITION ... - LRASAT65QQ = .FALSE. !...BIT4=1; RASTER STARTS @(49) - ELSE - LRASAT65QQ = .TRUE. !...BIT4=0; RASTER STARTS @(65) - ENDIF - - IF(BTEST(MYOPTNBITS,5)) THEN -C ... THERE IS A BIT AT THE (5) POSITION ... - LID_CALSQQ = .FALSE. !...BIT5=1; FETCH IFID FROM RECORD(1) - ELSE - LID_CALSQQ = .TRUE. !...BIT5=0; FETCH IFID FROM CALL SEQ - ENDIF - - IF(BTEST(MYOPTNBITS,6)) THEN -C ... THERE IS A BIT AT THE (6) POSITION ... - LID_PADDQQ = .FALSE. !...BIT6=1; IFID IS NOT PADDED - ELSE - LID_PADDQQ = .TRUE. !...BIT6=0; IFID IS PADDED - ENDIF - - - LIDIN_CDCQQ = .FALSE. - LIDIN_EBCQQ = .FALSE. - LIDIN_ASCQQ = .FALSE. - IF(BTEST(MYOPTNBITS,7)) THEN -C ... THERE IS A BIT AT THE (7) POSITION ... - LIDIN_CDCQQ = .FALSE. !...BIT7=1; INPUT IFID IS .NOT. CDC - IF(BTEST(MYOPTNBITS,8)) THEN -C ... THERE IS A BIT AT THE (8) POSITION & 1 AT (7) - LIDIN_EBCQQ = .TRUE. !...BIT8=1; INPUT IFID IS EBCDIC - ELSE -C ... THERE IS A ZERO AT THE (8) POSITION & 1 AT (7) - LIDIN_ASCQQ = .TRUE. - ENDIF - - ELSE -C ... THERE IS A ZERO AT THE (7) POSITION ... - LIDIN_CDCQQ = .TRUE. !...BIT7=0; INPUT IFID IS CDC DISP CODE - ENDIF - - - LIDOUT_CDCQQ = .FALSE. - LIDOUT_EBCQQ = .FALSE. - LIDOUT_ASCQQ = .FALSE. - IF(BTEST(MYOPTNBITS,9)) THEN -C ... THERE IS A BIT AT THE (9) POSITION ... - LIDOUT_CDCQQ = .FALSE. !...BIT9=1; OUTPUT IFID IS .NOT. CDC - IF(BTEST(MYOPTNBITS,10)) THEN -C ... THERE IS A BIT AT THE (10) POSITION & 1 AT (9) - LIDOUT_EBCQQ = .TRUE. !...BIT10=1; OUTPUT IFID IS EBCDIC - ELSE -C ... THERE IS A ZERO AT THE (10) POSITION & 1 AT (9) - LIDOUT_ASCQQ = .TRUE. - ENDIF - - ELSE -C ... THERE IS A ZERO AT THE (9) POSITION ... - LIDOUT_CDCQQ = .TRUE. !...BIT9=0; OUTPUT IFID IS CDC DISP - ENDIF - - - IF(BTEST(MYOPTNBITS,16)) THEN -C ... THERE IS A BIT AT THE (16) POSITION ... - LSCHED_EXTDQQ = .FALSE. !...BIT16=1; isched data is -C packed concatenated I*2 - ELSE - LSCHED_EXTDQQ = .TRUE. !...BIT17=0; isched data is -C I*2 extended into I*8 word - ENDIF - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... watch out for multi-panel calls in which I must add onto -C ... existing partial product instead of initializing ... - LEOMAP = .FALSE. - LEOFIL = .FALSE. - LSTARTEDQQ = .FALSE. -C ... FOR START OF MAP FOUND FLAG - LSTRIPTITLQQ = .FALSE. -C ... WHEN IN THE INNER LOOP PROCESSING EACH BYTE OF THE 6-BIT -C ... RLE ENCODED RASTER GRAPHCS, WHEN IN THE MAIN BODY OF -C ... THE MAP, LSTRIPTITLQQ == .F.; OTHERWISE, WHEN -C ... PROCESSING THE STRIP-TITLES, THEN LSTRIPTITLQQ == .T. - NRECIN = 0 -C ... WHERE NRECIN COUNTS THE 1920-BYTE PHYSICAL RECORDS INPUT - LSTARTING_PROD = .FALSE. - IF(.NOT. LADD_ONQQ) THEN !... initialize -C ... THIS IS EITHER AN ENTIRE PRODUCT IN ONE; OR -C ... THIS IS THE STARTING PANEL OF A MULTI-PANEL PRODUCT - LSTARTING_PROD = .TRUE. - NBLOCKOUT = 0 -C ... WHERE NBLOCKOUT COUNTS BLOCKS THIS SUBROUTINE HAS -C ... FILLED UP - NSCANLN = 0 -C - ISPR = 0 -C ... WHERE ISPR COUNTS BYTES PUT INTO C1SPRED - - JOFSCH = 2 -C ... WHERE POINTER INITIALIZED TO FIRST SCHED DATA IN JSCHED2D -C ... IS NOT =1 SINCE THAT'S WHERE THE FFFFFD WORD IS. - - NUMPANEL = 0 - - ELSE -C ... THIS IS AN ADD-ON PANEL OF A MULTI-PANEL PRODUCT ... - NUMPANEL = NUMPANEL + 1 - WRITE(6,FMT='(1H ,''reblkfx4: INITIALIZING FOR SECONDARY '', - 1 ''PANEL-'',I2,'' OF A MULTI-PANEL PRODUCT'', - 2 /1H ,7X,''TRANSLATED-SCHED-COUNTER, JOFSCH='',I8)') - A NUMPANEL,JOFSCH - ENDIF -C -C =============================================================== - IF(LSTARTING_PROD) THEN -C ... the ISCHED sorting and moving went into subr makfffd() - - call makfffd(iisched,LSCHED_EXTDQQ) - - ENDIF - -C =============================================================== -C -C - 200 CONTINUE - LCKPT = 200 - NRECIN = NRECIN + 1 - i = 1 - do i = 1,INRECLINT - inbufA(i) = 0 - enddo -C -C ... here comes first read of extended 6-bit file; -C ... expecting the start-of-map with IFIds ... - - READ(LUNIX6T,IOSTAT=IOERR,ERR=9405,END=900) inbufA -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - NRECIN = NRECIN + 1 - go to 9407 -C - 9405 continue - write (6,9406) ioerr,NRECIN - 9406 format(1h ,'REBLKFX4: reading LUNIX6T got IOSTAT error = ', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - 9407 continue -C -C -C ... WRITE(6,205) (inbufA(I),I=1,INRECLINT) - 205 FORMAT(1H ,8Z9.8) -C - IF(.NOT. LSKIPFFQQ) THEN -C ... SO TEST FOR START-OF-MAP FLAGS HERE ... -C ... THE FIRST RECORD MUST START WITH X'3F3F3F3F....' - iword1 = IAND(inbufA(1),MSKLHS) - - IF(iword1 .NE. KSTART_IFID) THEN -C ... ERROR: THIS FILE IS UNUSUAL. FIRST RECORD IS NOT MARKED -C ... WITH THE START-OF-MAP FLAG ... - GO TO 970 - ENDIF - ENDIF -C -C ... COMES HERE AFTER READING THE FIRST RECORD OF PASS(I) ... -C ... AND IF FIRST REC READ HAD STARTOFMAP FLAGS ... -C ... OR ELSE, IF TOLD TO SKIP THE LOOKING FOR STARTOFMAP FLAGS -C ... AND ASSUME THIS IS THE FIRST RECORD OF PASS(I) - IFR = 0 - LCKPT = 222 - - IF(LSTARTING_PROD) THEN - - DO I = 1,MAXEXTINT - INTSPRED(I) = 0 - ENDDO - ISPR = 64 !... TO ALLOW SPACE FOR IFID - - IF(.NOT. LID_CALSQQ) THEN -C ... TRY FOR IFID FROM RECORD 1 ... BUT ONLY IF STARTING PASS - IF(LID_PADDQQ) THEN -C ... EXTRACT THE 64-BYTE BYTE PADDED IFID HEADER ... - DO IK = 1,8 - KHEADER(IK) = inbufA(IK) - ENDDO -C - WRITE(6,225) (KHEADER(I),I=1,8) - 225 FORMAT(1H ,'KHEADER (padded) FROM INPUT FILE=', - 1 /1H , 6X,4Z17.16, - 2 /1H , 6X,4Z17.16 ) -C - ELSE -C ... IFID FROM RECORD 1 IS NOT PADDED ... -C ... EXTRACT THE 48-BYTE BYTE PADDED IFID HEADER ... - DO IK = 1,6 - KHEADER(IK) = inbufA(IK) - ENDDO -C - WRITE(6,2252) (KHEADER(I),I=1,6) - 2252 FORMAT(1H ,'KHEADER (NOT-padded) FROM INPUT FILE=', - 1 /1H , 6X,4Z17.16, - 2 /1H , 6X,2Z17.16 ) -C ... THEN I MUST PAD THIS 48-BYTE IFID ... -C ... CALL MAKIFID(C1IFID) ... removed - - ENDIF -C - ELSE -C ... COMES HERE IF I SHOULD OBTAIN IFID FROM CALL SEQ ARG -C ... is the given ifid in CDC display code???? - IF(LIDIN_ASCQQ) THEN -C ... TO CONVERT GIVEN IFID FROM ASCII TO CDC DISPLAY CODE, - NCHIFID = 48 - CALL ASC2CDC(NCHIFID,C1IFID,C1IFIDCDC,IRET_A2C) - - CALL PADIFID(C1IFIDCDC,LHEADER) - ELSE - - CALL PADIFID(C1IFID,LHEADER) - ENDIF -C - ENDIF -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (KHEADER, 8_8, 8_8) -#endif - KHEADER(1) = IAND(KHEADER(1),MSKRHS) - KHEADER(1) = IOR(KHEADER(1),KSTART_IFID) - DO I = 1,8 - INTSPRED(I) = KHEADER(I) - ENDDO - write(6,228)(INTSPRED(L),L=1,8) !... 8*8=64 - 228 format(1h ,'REBLKFX4: IFID in extended form in C1SPRED=', - 1 /1H , 6X,4Z17.16, - 2 /1H , 6X,4Z17.16 ) -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (INTSPRED, 8_8, 8_8) -#endif -C - ENDIF - - LINEMT = .TRUE. - MANYBLA = .FALSE. - NROWBLA = 0 - NRUNBLA = 0 -C - IF(LRASAT65QQ) THEN - IFR = 64 !... used to be 48 - ELSE - IFR = 48 - ENDIF - -C ... Since John Simmons' data has some leading blank -C ... scanlines before the Fax map, skip those before -C ... doing anything else. - NBEFORE = 0 - 230 CONTINUE -C ... we already have data in the work buffer CINBUF - LCKPT = 230 - - M1 = IFR + 1 - DO 244 ICC = M1,INRECL - CONEBYT = CINBUF(ICC) - IF(CONEBYT .EQ. KENDLIN) THEN - NBEFORE = NBEFORE + 1 - GO TO 244 - ENDIF - IF(CONEBYT .EQ. KENDMAP) GO TO 930 -C ... which was empty map ... -C ... OTHERWISE, HERE AT (ICC) IS VERY FIRST NON-BLANK -C ... SCANLINE ... - IFR = ICC - 1 -C ... but, can I have one starting EOLN??? - IF(NBEFORE .GT. 0) THEN - NBEFORE = NBEFORE - 1 - IFR = IFR - 1 - ENDIF - WRITE(6,241) NBEFORE - 241 FORMAT(1H ,'REBLKFX4:DISCARDED LEADING BLANK SCANS N=',I5) - GO TO 310 -C ... WHICH IS NORMAL WAY OUT OF THIS DISCARDING LOOP - 244 CONTINUE -C ... ENTIRE BUFFER WAS BLANK SCANLINES ... - do i = 1,INRECLINT - inbufA(i) = 0 - enddo -C - READ(LUNIX6T,IOSTAT=IOERR,ERR=246,END=940) inbufA -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - go to 248 -C - 246 continue - write (6,247) ioerr,NRECIN - 247 format(1h ,'REBLKFX4: at 246 read LUNIX6T got IOSTAT error= ', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - - 248 continue - - NRECIN = NRECIN + 1 - - IFR = 0 - GO TO 230 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . outermost DO on reading input record at a time . . . -C . . . . where input record is 1920-byte .X6T data -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 300 CONTINUE - LCKPT = 300 -C - 310 CONTINUE -C ... PROCESS JOHN SIMMONS' DATA HERE -C ... LOOK FOR END-OF-SCANLINE FOR RESETING IISCHED VRBLS -C ... LOOK FOR END-OF-MAP -C ... MOVE BYTES FROM CINBUF INTO C1SPRED - NBLSAV = NBLOCKOUT - ISPSAV = ISPR + 1 -C ... TO SAVE BYTE- AND BLOCK- POINTER TO START OF THE -C ... SCAN LINE TO COME. -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . Mid-level DO to move each byte, one byte at a time, -C . . . . from input buffer, CINBUF, to work buffer, C1SPRED; -C . . . . examining each byte for special flags -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - M1 = IFR + 1 - DO 377 IC = M1,INRECL - CONEBYT = CINBUF(IC) - IF(MANYBLA) GO TO 340 - IF(CONEBYT .EQ. KENDLIN) THEN - GO TO 315 - ELSE IF(CONEBYT .EQ. KENDMAP) THEN - LEOMAP = .TRUE. - GO TO 477 - ENDIF - LINEMT = .FALSE. - GO TO 320 -C - 315 CONTINUE -C ... COMES HERE ON END_OF_SCANLINE ... -C ... HERE TEST FOR SUCCESSIVE BLANK SCANLINES WAS ADDED - IF(LINEMT) THEN - NRUNBLA = NRUNBLA + 1 - IF(NRUNBLA .LE. K2MANY) GO TO 317 -C ... OTHERWISE, THIS RUN OF BLANKS EXCEEDS K2MANY LINES -C ... SO I WILL NOT OUTPUT ANY MORE UNTIL IT VERIFIES -C ... AS THE END OF MAP OR NOT - MANYBLA = .TRUE. - NROWBLA = 1 - GO TO 377 !... jump to end of DO; to get next byte - - ELSE -C ... THIS END-OF-LINE FOR A NON-BLANK SCANLINE - NRUNBLA = 0 - LINEMT = .TRUE. - ENDIF -C - 317 CONTINUE -C - IF(LSTRIPTITLQQ) THEN - IF((JOFSCH-1) .GT. NTOTSCHED) THEN - GO TO 319 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - ELSE -C ... .NOT. STRIP-TITLE, SO WITHIN MAIN PART OF MAP ... - IF((JOFSCH-1) .GT. NSCHED_CUT) THEN - GO TO 319 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - - ENDIF - - 319 CONTINUE -C - NSCANLN = NSCANLN + 1 - 320 CONTINUE -C ... COMES HERE TO STASH ONE BYTE INTO C1SPRED - IF((ISPR+1) .GT. MAXEXTBYT) THEN - LCKPT = 322 - - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 - - ENDIF -C - ISPR = ISPR + 1 - C1SPRED(ISPR) = CONEBYT - GO TO 377 -C - 340 CONTINUE -C ... COMES HERE IF MANYBLA IS .TRUE. MEANING WE HAVE -C ... HIT A BATCH OF BLANK SCAN LINES, WHICH MIGHT BE -C ... CLOSE TO THE END OF MAP. - IF(CONEBYT .EQ. KENDLIN) THEN - NROWBLA = NROWBLA + 1 - GO TO 377 - ENDIF -C - IF(CONEBYT .EQ. KENDMAP) GO TO 477 -C ... OTHERWISE, SHUCKS! IS NON-BLANK LINE AFTER SO MANY -C ... BLANKS. I WILL HAVE TO OUTPUT THOSE BLANKS WHICH I -C ... WAS MERELY COUNTING WITHOUT WRITING. - DO 366 IBL = 1,NROWBLA - IF(LSTRIPTITLQQ) THEN - IF((JOFSCH-1) .GT. NTOTSCHED) THEN - GO TO 344 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - ELSE -C ... .NOT. STRIP-TITLE, SO WITHIN MAIN PART OF MAP ... - IF((JOFSCH-1) .GT. NSCHED_CUT) THEN - GO TO 344 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - - ENDIF - - - 344 CONTINUE -C - NSCANLN = NSCANLN + 1 - IF((ISPR+1) .GT. MAXEXTBYT) THEN - LCKPT = 347 - - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 - - ENDIF - ISPR = ISPR + 1 - C1SPRED(ISPR) = KENDLIN - 366 continue -C ... which is ENDDO on IBL on blank rows ... . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - MANYBLA = .FALSE. -C ... THEN RETURN TO NORMAL COURSE TO TRANSFER THE -C ... CURRENT NON-BLANK CONEBYT INTO C1SPRED - GO TO 320 -C - 377 CONTINUE -C . . . . enddo on ic byte at a time thru one input record . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ... WHEN IT FALLS OUT OF BOTTOM OF DO LOOP, -C ... I HAVE EXHAUSTED 1920-BYTE GIVEN-DATA ARRAY - IF(LEOFIL) GO TO 477 -C -C ... WHEN CINBUF EMPTIES, -C ... AND IF NOT E-O-F YET, THEN -C ... FETCH ANOTHER INPUT RECORD -C ------------------------------------------------ -C - READ(LUNIX6T,IOSTAT=IOERR,ERR=380,END=384) inbufA -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - -C ... ON GOOD RECORD READ, - NRECIN = NRECIN + 1 -C ... REINITIALIZE POINTERS FOR FRESH INPUT - IFR = 0 - GO TO 300 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... OTHERWISE, BAD READ, SO ... - 380 continue -C ... COMES TO 380 ON PARITY ERR ON READ JUST ABOVE ... - write (6,382) ioerr,NRECIN - 382 format(1h ,'REBLKFX4: AT 382 read LUNIX6T got IOSTAT error=', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - - 384 continue -C ... COMES TO 384 ON E-O-F ON READ JUST ABOVE ... - write (6,386) NRECIN - 386 format(1h ,'REBLKFX4: AT 386 read LUNIX6T, hit EOF ', - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - LEOFIL = .TRUE. - GO TO 477 -C -C - 477 CONTINUE -C ... COMES HERE OUT OF LOOP FOR NORMAL END OF PRODUCT -C ... WATCH OUT FOR ENDOFMAP-BYTE RECORD FOLLOWED BY STRIP TITLES; -C ... MUST DIFFERENTIATE BETWEEN ENDOFMAP AND ENDOFFILE - LEOMAP = .TRUE. - IF((ISPR+1) .GT. MAXEXTBYT) THEN - LCKPT = 478 - - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 - - ENDIF -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IF(LEAVE_OPENQQ) THEN - WRITE(6,478)NBLOCKOUT,ISPR,NSCANLN - 478 FORMAT(1H ,'REBLKFX4: NOT-FINAL PANEL COMPLETED WITH ', - 1 'NBLOCKOUT=',I5,'; ISPR=',I6, - 2 /1H ,' NSCANLN=',I6, - 3 '; LEAVING WITH INCOMPLETE PRODUCT') - GO TO 999 !... JUMP TO EXIT . . . . . . . - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ISPR = ISPR + 1 - C1SPRED(ISPR) = KENDMAP -C -C ... OUTPUT THIS PARTIALLY FULL LAST DATA RECORD -C - LCKPT = 488 -C - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 -C - WRITE(6,479) NRECIN,NSCANLN,NBLOCKOUT - 479 FORMAT(1H ,'REBLKFX4:NORMAL ENDING OF FAX PRODUCT', - 1 /1H ,'WAS FOUND IN LRECORD NO.',I4, - 2 /1H ,'AT END TOTAL SCAN_LINES=',I6,' NBLOCKOUTS=',I4) -C - IF(MANYBLA) THEN - WRITE(6,485) NROWBLA - 485 FORMAT(1H ,'REBLKFX4:DISCARDED TRAILING BLANK SCANS N=',I6) - ENDIF - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... must process the strip titles, just like preceding graphic -C ... data, before going on to FFFFFD-headed record - IF(.NOT. LSTRIPTITLQQ) THEN - - IF(LEOFIL) GO TO 490 -C -C ... AND IF NOT E-O-F YET, THEN -C ... FETCH ANOTHER INPUT RECORD -C ... EXPECT THE STRIP TITLES HERE -C ... BUT ONLY IF THIS IS AN ENTIRE PRODUCT FILE -C ... OF IF THIS IS THE LAST PANEL OF A MULTI-PANEL PROD -C - IF(.NOT. LEAVE_OPENQQ) THEN - READ(LUNIX6T,IOSTAT=IOERR,ERR=4852,END=4855) inbufA -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - GO TO 488 !... was good read ... - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... OTHERWISE, BAD READ, SO ... - 4852 continue -C ... COMES TO 4852 ON PARITY ERR ON READ JUST ABOVE ... - write (6,4854) ioerr,NRECIN - 4854 format(1h ,'REBLKFX4: AT 4854 read LUNIX6T got IOSTAT error=', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - - 4855 continue -C ... COMES TO 4855 ON E-O-F ON READ JUST ABOVE ... - write (6,486) NRECIN - 486 format(1h ,'REBLKFX4: AT 486 read LUNIX6T, hit EOF ', - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - LEOFIL = .TRUE. - GO TO 490 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 488 CONTINUE -C ... ON GOOD RECORD READ, - NRECIN = NRECIN + 1 -C ... IS IT THE STRIP-TITLES WHICH I AM EXPECTING??? - call byteswap(inbufA(1), 8, 1) - IWORD1 = IAND(inbufA(1),MSKLHS) - call byteswap(inbufA(1), 8, 1) - IF(IWORD1 .EQ. KSTART_TITL) THEN -C ... YES! HERE IS THE START OF THE STRIP TITLES ... - LSTRIPTITLQQ = .TRUE. - NSCANLN = 7400 !... SO THAT CURRENT LN WILL MATCH SCHED -C ... REINITIALIZE POINTERS FOR FRESH INPUT TITLES - IFR = 4 !... ptr to source - DO I = 1,MAXEXTINT - INTSPRED(I) = 0 - ENDDO - intspred(1) = kstart_titl !... block header titles - call byteswap(intspred(1), 8, 1) - ispr = 4 !... ptr to destination - GO TO 300 !... jump way back to do striptitl - - ELSE IF(IWORD1 .EQ. KSTART_SCHED) THEN - GO TO 490 - ELSE IF(IWORD1 .EQ. KEND_ALLMAPS) THEN - GO TO 490 - ENDIF - GO TO 490 - - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ... OUTPUT THE FFFFFD-HEADED JSCHEDS ARRAY HERE ... -C ... IF INTERGRAPH VERSION, SWAP THE BYTES FIRST -C ... ELSE IF CRAY VERSION, COMPRESS THE JSCHED2D ARRAY -C ... BY QUARTER-PACKING THE ARRAY - 490 CONTINUE - do i = 1,nsizdes - JSCHEDS(i) = 0 - enddo - noffset = 0 - nbitpgrp = 16 - nbitskip = 0 - ngrps2do = 8*(ntotsched + 1) - call sbytesccs(JSCHEDS,jsched2d,noffset,nbitpgrp,nbitskip, - 1 ngrps2do) -C - - NBLOCKOUT = NBLOCKOUT + 1 -C - NUMRECFAX = NUMRECFAX + 1 -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (JSCHEDS, 8_8, 180_8) -#endif - WRITE(LUNIPK6, REC=NUMRECFAX,ERR=920 )C1JSCHED - -C write(LUNIPK6,ERR=920)JSCHEDS -C -C ... WHICH OUTPUT THE FFFFFD-ARRAY -C -C ... OUTPUT THE FFFFFC-HEADED END_OF_ALL_MAPS ARRAY HERE ... - DO I = 1,180 - JOUTBF(I) = 0 - ENDDO -C JOUTBF(1) = KENDALLPKD !... END-OF-ALL-MAPS IN FILE - LCKPT = 495 - NUMRECFAX = NUMRECFAX + 1 -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (JOUTBF, 8_8, 180_8) -#endif - WRITE(LUNIPK6, REC=NUMRECFAX,ERR=920 )C1OUTBF - -C write(LUNIPK6,ERR=980)JOUTBF - -C - GO TO 999 -C -C * * * * * * * * * -C -C * * * * * * * * * -C - 900 CONTINUE -C ... COMES HERE IF END-OF-FILE ENCOUNTERED ON INPUT FILE - WRITE(6,905) LUNIX6T,LCKPT,NRECIN - 905 FORMAT(1H ,'REBLKFX4:HIT EOF ON FAX INPUT FILE DSRN=',I3, - 1 /1H ,' AFTER CHECKPOINT=', I5, - 2 ' ON LRECORD NO.', I4) - GO TO 980 -C -C - 920 CONTINUE -C ... COMES HERE IF WRITE PARITY ERROR ON WRITING TO -C ... UNIT = LUNIPK6 -C - WRITE(6,925) LUNIPK6,NBLOCKOUT - 925 FORMAT(1H ,'*** ERROR WHILE TRYING TO WRITE TO UNIT=', - 1 I3,/1H ,5X,'KBLOCK = ', I3) -C - GO TO 980 -C - 930 CONTINUE -C ... COMES HERE IF GIVEN AN ALL-BLANK MAP - WRITE(6,935) NBEFORE - 935 FORMAT(1H ,'REBLKFX4: GIVEN AN EMPTY MAP; NO FAX MAP.', - 1 /1H ,' BLANK SCAN_LINE COUNT =', I5) - IERR= 3 - GO TO 999 -C - 940 CONTINUE -C ... COMES HERE IF GIVEN EMPTY MAP, BADLY FORMATTED - WRITE(6,945) NBEFORE - 945 FORMAT(1H ,'REBLKFX4: GIVEN AN EMPTY MAP; NO FAX MAP.', - 1 /1H ,' BAD FORMAT. HIT PHYSICAL EOF. NBEFORE=',I5) - IERR = 4 - GO TO 999 -C - 966 CONTINUE -C ... COMES HERE IF SCANNED THRU FINAL REC W/O FINDING -C ... THE '33'X END... - WRITE(6,968) LUNIX6T,LCKPT,NRECIN - 968 FORMAT(1H ,'REBLKFX4:ERRONEOUS FORMAT IN FAXS FILE ON DSRN=', - A I3, - 1 /1H ,' NO HEX33 END-MARK FOUND IN FINAL REC NO.', - 2 I4) - GO TO 980 -C - 970 CONTINUE -C ... COMES HERE IF NO VALID 1ST FULLWORD ON FIRST RECORD - WRITE(6,975)inbufA(1) - 975 FORMAT(1H ,'REBLKFX4:** ERROR STOP. INVALID X6T FILE HEADER.', - 1 ' WORD(1)= X', Z17.16) -C - GO TO 980 -C - 980 CONTINUE -C - IERR = 1 - GO TO 999 - 999 CONTINUE - RETURN - END - SUBROUTINE REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) -C ... GIVEN: ONE FULL (USUALLY FULL) 1920-BYTE BIN -C ... (FULL, EXCEPT WHEN FLUSHING LAST DATA RECORD) -C ... TASK: COMPRESS INTO 1440-BYTES, THEN OUTPUT -C ... WHERE INTSPRED MUST EQUIVALENCED TO C1SPRED IN CALLER,S -C ... WHERE JOUTBF MUST EQUIVALENCED TO C1OUTBF IN CALLER,S - - INTEGER NBYTPWRD - PARAMETER (NBYTPWRD=8) !... CRAY 8-BYTE INT - - INTEGER NMCSTDRECL !... = 1440 BYTES - PARAMETER (NMCSTDRECL=1440) - - INTEGER MAXEXTBYT - PARAMETER (MAXEXTBYT=1920) - INTEGER MAXEXTINT !...240 I*8 WRDS =1920/8 - PARAMETER (MAXEXTINT=MAXEXTBYT/NBYTPWRD) - -C ... WHERE 1920 BYTES IS CAPACITY OF C1SPRED ARRAY -C ... WHICH IS EQUIV TO 1440-BYTES IN COMPRESSED 6-BITS -C ... EXTENDED TO 8-BITS PER 6-BIT ITEM. - - INTEGER LUNIPK6 - - INTEGER INTSPRED(MAXEXTINT) - CHARACTER*1 C1SPRED(MAXEXTBYT) -C ... where EQUIV (INTSPRED,C1SPRED) ... MUST BE IN CALLER,S - - INTEGER JOUTBF(180) !... I*4 WAS (360) - CHARACTER*1 C1OUTBF(NMCSTDRECL) -C ... WHERE JOUTBF MUST EQUIVALENCED TO C1OUTBF IN CALLER,S - - - INTEGER NBLOCKOUT - LOGICAL LSTARTEDQQ - INTEGER IRET600 - - CHARACTER*1 NULL - - SAVE - -C * * * * * * * * * - - IRET600 = 0 - NULL = CHAR(0) -C -C - 600 CONTINUE -C - IF(ISPR .LE. 0) GO TO 666 -C ... IF NOTHING WAS MOVED INTO C1SPRED, DON'T OUTPUT ANY -C ... WRITE(6,611) LCKPT - 611 FORMAT(1H ,'REBLKFX4 IS WRITING BLOCK AT CHECKPT=', I4) -C - IF(ISPR .LT. MAXEXTBYT) THEN -C ... ZERO REMAINDER OF BUFFER IF PARTIALLY FULL - MM1 = ISPR + 1 - DO I = MM1,MAXEXTBYT - C1SPRED(I) = NULL - ENDDO - ENDIF -C -C ... TO COMPRESS THE 6-BITS-IN-8-BITS INTO CONCATENATED -C ... 6-BITS, -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (INTSPRED, 8_8, MAXEXTINT) -#endif - CALL PAK8TO6(INTSPRED,JOUTBF) -C -C - NBLOCKOUT = NBLOCKOUT + 1 -C ... IF(NBLOCKOUT .LE. 1) THEN -C ... DUMP THE FIRST C1OUTBF TO SEE IF IT STARTS W/ FFFFFF -C ... WRITE(6,624)(JOUTBF(I),I=1,360) -C 624 FORMAT(1H ,'REBLKFX4: FIRST OUTPUT BUFFER CONTAINS ...', -C 1 /1H ,(8Z9.8)) -C ... ENDIF -C -C WHERE EACH FAX RECORD IS 1440 BYTES - - NUMRECFAX = NUMRECFAX + 1 -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (JOUTBF, 8_8, 180_8) -#endif - WRITE(LUNIPK6, REC=NUMRECFAX,ERR=920 )C1OUTBF - -C WRITE(LUNIPK6,ERR=920)JOUTBF - -C - 666 CONTINUE -C - do i = 1,MAXEXTINT - intspred(i) = 0 - enddo - ISPR = 0 - GO TO 999 -C -C * * * * * * * * * -C - 920 CONTINUE -C ... COMES HERE IF WRITE PARITY ERROR ON WRITING TO -C ... UNIT = LUNIPK6 -C - WRITE(6,925) LUNIPK6,NBLOCKOUT - 925 FORMAT(1H ,'REBLK600: ERROR WHILE TRYING TO WRITE TO UNIT=', - 1 I3,/1H ,5X,'KBLOCK = ', I3) -C - GO TO 980 -C - 980 CONTINUE -C - IRET600 = 1 - GO TO 999 - - 999 CONTINUE - RETURN - END - - SUBROUTINE REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) -C ... CHANGED FROM ASSIGNED GOTO 700 TO SUBR ... 30-APR1996/DSS -C * * * * * * * * * -C - INTEGER MXSCHED - PARAMETER (MXSCHED=60) -C ... MAX NO. OF SUBSETS/INSETS DEFINED IN GIVEN IISCHED ARRAY. -C ... BEDIENT USES 59 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /XSCHEDS/NTOTSCHED,NSCHED_CUT,NSCHED_TITL,JOFSCH, - 1 NUMPANEL,JSCHED2D,JLINSRTED - INTEGER NTOTSCHED - INTEGER NSCHED_CUT - INTEGER NSCHED_TITL - INTEGER JOFSCH - INTEGER NUMPANEL - INTEGER JSCHED2D(8,MXSCHED) - INTEGER JLINSRTED(2,MXSCHED) - -C ... SUBSET DEFS IN JSCHED2D WHOSE POINTERS REMAIN TO -C ... BE DEFINED = F(STARTING SCAN LINE) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - INTEGER MAXEXTBYT - PARAMETER (MAXEXTBYT=1920) -C ... WHERE 1920 BYTES IS CAPACITY OF C1SPRED ARRAY -C ... WHICH IS EQUIV TO 1440-BYTES IN COMPRESSED 6-BITS -C ... EXTENDED TO 8-BITS PER 6-BIT ITEM. - - INTEGER NSCANLN,NBLSAV,ISPSAV,NBLOCKOUT,ISPR - - SAVE - - 700 CONTINUE -C ... COMES HERE ON END_OF_SCANLINE ... - JWHICH = JOFSCH - 1 - IF(JWHICH .GT. NTOTSCHED) THEN - GO TO 719 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ENDIF - -C ... WHAT ABOUT THE STRIP-TITLE VALUES UP THERE ABOVE 7400??? -C ... HOW ARE YOU EVER GOING TO MATCH AGAINS THOSE ??? -C ... BY RESETTING NSCANLN=7400 IN MAIN WHEN GOING BACK THRU -C ... THE STRIPTITLE RLE BLOCK - - -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - IF(NSCANLN .LT. JLINSRTED(1,JWHICH)) GO TO 717 -C ... OTHERWISE, CURRENT SCANLINE IS A MATCH OF THIS -C ... SCHED ENTRY'S STARTING SCANLINE ... -C ... SO PUT POINTERS IN PLACE OF STARTING SCAN LINE. - JPTR = JLINSRTED(2,JWHICH) - JSCHED2D(2,JPTR) = NBLSAV - IF(ISPSAV .GT. 0) THEN - JSCHED2D(3,JPTR) = ISPSAV - 1 - ELSE -C ... FAIL-SAFE TO PREVENT NEGATIVE-VALUED BYTE-POINTER ... - JSCHED2D(3,JPTR) = 0 - ENDIF -C ... WHERE BYTE POINTER DECREMENTED BECAUSE BEDIENT -C ... WANTS RELATIVE BYTE POINTER. - JOFSCH = JOFSCH + 1 - GO TO 700 -C ... WHICH GOES BACK TO SEE IF ANOTHER SCHED ENTRY -C ... EXISTS WITH SAME STARTING SCANLINE. -C - 717 CONTINUE -C ... COMES HERE ONLY IF SOME SCHED ENTRY REMAINS -C ... UNADDRESSED, AND IF THE CURRENT LINE DID NOT -C ... MATCH. -C ... SAVE POINTER TO THE START OF NEXT SCAN LINE. - NBLSAV = NBLOCKOUT - ISPSAV = ISPR + 2 - IF(ISPSAV .GT. MAXEXTBYT) THEN - ISPSAV = 1 - NBLSAV = NBLSAV + 1 - ENDIF -C - 719 CONTINUE - RETURN - END - - SUBROUTINE MAKFFFD(IISCHED,LSCHED_EXTDQQ) -C ... GIVEN: (1.)IISCHED ARRAY DEFINING EACH SUBSET AND REAL-INSET -C ... AND STRIP-TITLE-INSET IN THIS PRODUCT -C ... (2.)LSCHED_EXTDQQ -- LOGICAL SWITCH TO TELL ME -C WHICH OF TWO DATA FORMATS IS ISCHED IN: -C == .T.; EACH 16-BIT "WORD" IS IN THE LOW-ORDER -C 16-BITS OF EACH 64-BIT INTEGER; -C == .F.; THE 16-BIT "WORDS" ARE CONCATENATED -C ... RESULTS: INTO WORK ARRAYS AND COUNTERS IN /XSCHEDS/ -C -C ... WHAT DOES THIS DO? -C ... (A.) ZEROS THE JSCHED2D WORKSPACE FOR THE FFFFFD-HEADED -C ... ISCHED TRAILER-RECORD ARRAY; -C ... (B.) COPIES THE GIVEN IISCHED DATA INTO JSCHED2D -C ... WITH DATA STILL IN THE EXTENDED FORMAT; -C ... WHY EVEN COPY IT THEN??? BECAUSE I WILL CHANGE -C ... CONTENTS, AND I DO NOT WANT TO CHANGE THE GIVEN; -C ... (C.) CREATES AND SORTS A SORTKEY ARRAY: -C ... CONTAINING THE STARTING SCANLINE J-VALUE -C ... AND A POINTER INTO THE JSCHED2D-ARRAY -C (DOES NOT REARRANGE THE DATA WITHIN JSCHED2D.) -C ... -C ... -C ... THAT IS ALL IT DOES. IT IS NOT NOT NOT READY TO GO. -C ... THE STARTING SCANLINE NUMBER HAS NOT BEEN CONVERTED TO -C ... A POINTER BY BLOCK NUMBER AND BYTE NUMBER WITHIN BLOCK. -C ... SINCE THE CRAY DOES NOT HAVE INTEGER*2, THE RESULTING -C ... JSCHED2D ARRAY IS AN EXTENDED VERSION IN WHICH EACH -C ... VALUE IS IN THE LOW-ORDER 16-BITS OF EACH 64-BIT WORD; -C ... SO IT STILL NEEDS A CALL SBYTESCCS() TO PACK THE I*2 DATA - -C ... WHY DO THIS? -C ... SOMEWHERE ELSE IS THE LOGIC FOR CONVERTING THE SCANLINE -C ... NUMBER INTO A POINTER BY BLOCK NUMBER AND BYTE NUMBER. -C ... WHEN IT DOES THAT, IT WILL BE EASIER TO DO THAT IF THE -C ... SCANLINE NUMBERS ARE SORTED. -C ================================================================ -C ... SHOULD I SORT THE POINTERS ONLY AND LEAVE THE GIVEN -C ... ITEM SEQUNCE INTACT??? (Yes!) - -C ... DOES BEDIENT CHANGE THE ARRANGEMENT? (No!) -C ... SEE EXAMPLE SOMEWHERE!!!! (See "isched.doc") -C ... -C ... I looked at an FT01 file and the isched 8-iiword sets -C ... are not sorted; they are in their original given sequence -C ... so I should sort only the pointer array. So the logic -C ... in this subroutine must be changed. (1-May-1996/dss) -C -C ================================================================ -C ... I SPLIT THE ISCHED MILLING ARND INTO A SUBR. -C ... THE ISCHED DATA IS ESSENTIALLY 16-BIT I*2 WORD ORIENTED -C ... HOW CAN I DO THIS IN THE I*8 WORD OF CRAY? -C ... THE FFFFFD-HEADED TRAILER RECORD IS NOT 6-BIT PACKED; -C ... IT IS I*2 JSCHEDS(720) = 720 I*2 INTEGER VALUES -C ... IN SETS OF 8 I*2 INTEGERS PER LOGICAL MAP SUBSET; -C ... IF, ON THE CRAY, WE WORK IN A SPACE OF I*8 JSCHEDS(720) -C ... IN WHICH THE DATA IS IN THE LOW-ORDER 16-BITS OF EVERY -C ... LONGWORD, THEN ONLY AT THE VERY END, JUST BEFORE OUTPUT -C ... I COULD QUARTER-PACK IT. -C -C ... INITIALIZE FFFFFD-HEADED RECORD HERE -C ... SORT SUBSET_DEFINITIONS BY THEIR STARTING SCANLINE; -C ... COUNT THE NUMBER OF SUBSETS; -C ... INITIALIZE FLAGS. - - -C - INTEGER MXSCHED - PARAMETER (MXSCHED=60) -C ... MAX NO. OF SUBSETS/INSETS DEFINED IN GIVEN IISCHED ARRAY. -C ... BEDIENT USES 59 - - INTEGER LIMITSETS - PARAMETER (LIMITSETS=MXSCHED-2) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /XSCHEDS/NTOTSCHED,NSCHED_CUT,NSCHED_TITL,JOFSCH, - 1 NUMPANEL,JSCHED2D,JLINSRTED - INTEGER NTOTSCHED - INTEGER NSCHED_CUT - INTEGER NSCHED_TITL - INTEGER JOFSCH - INTEGER NUMPANEL - INTEGER JSCHED2D(8,MXSCHED) - INTEGER JLINSRTED(2,MXSCHED) - -C ... SUBSET DEFS IN JSCHED2D WHOSE POINTERS REMAIN TO -C ... BE DEFINED = F(STARTING SCAN LINE) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - INTEGER IISCHED(8,MXSCHED) -C ... WHERE IISCHED IS GIVEN AS ARG1 -C ... AND IS IN THE SAME FORMAT AS IN CALL TO CNTR - LOGICAL LSCHED_EXTDQQ !... ARG2 - - - INTEGER ISORKEY(MXSCHED) -C - INTEGER KIISCHED(8) -C ... WHERE KIISCHED IS A CANNED SUBSET DEF. IN CASE -C ... THE GIVEN IISCHED IS BAD - - DATA KIISCHED / 150, 0, 0,1200, X'8000',X'D800', 0,0 / -C ... WHERE DUMMY KIISCHED USES SUBSET NO. 150 (MY CHECKOUT) - - INTEGER I8HOLD(2) - CHARACTER*1 C1HOLD(16) - EQUIVALENCE (I8HOLD(1),C1HOLD(1)) - - INTEGER IPAIR(2) - INTEGER IIWRDEXT(8) - INTEGER MSKLHS - DATA MSKLHS / X'FFFFFFFF00000000' / - INTEGER MSKRHS - DATA MSKRHS / X'00000000FFFFFFFF' / - - INTEGER JLINE_VAL -C - SAVE -C -C . . . S T A R T . . . . . . . . . . . . . . . . . . . . . . -C - write(6,151)LSCHED_EXTDQQ - 151 format(1h ,'reblkfx4::makfffd: entered with LSCHED_EXTDQQ = .', - 1 L1,'.') - - NTOTSCHED = 0 - - DO J = 1,MXSCHED !... MXSCHED=60 - ISORKEY(J) = 0 - ENDDO - - DO J = 1,MXSCHED - JLINSRTED(1,MXSCHED) = 0 - JLINSRTED(2,MXSCHED) = 0 - ENDDO - -C -C ... INTEGER JSCHED2D(8,90) - DO J = 1,MXSCHED !... MXSCHED=60 - DO I = 1,8 - JSCHED2D(I,J) = 0 - ENDDO - ENDDO -C - JSCHED2D(1,1) = X'FFFF' - JSCHED2D(2,1) = X'FD00' -C - NTOTSCHED = 0 - IF(LSCHED_EXTDQQ)THEN -C ... M2 IS SET TO ENSURE THERE WILL BE A ZERO-VALUE WITHIN -C ... MXSCHED-SIZED ARRAYS BEYOND LAST NON-ZERO ITEM - M2 = MXSCHED - 2 - DO JJ = 1,M2 - IF((IISCHED(1,JJ) .EQ. 0) .AND. - 1 (IISCHED(2,JJ) .EQ. 0)) THEN - GO TO 154 - ENDIF - JSTARTLINE = IISCHED(2,JJ) - IF(JSTARTLINE .GE. 8200) THEN -C ... BEYOND FAX STRIP TITLES INTO AFOS ... -C ... AND I AM NOT DOING AFOS, SO JUMP OUT - GO TO 154 - ENDIF - -C ... OTHERWISE, THIS ITEM IS NOT THE END OF ISCHED YET - NTOTSCHED = NTOTSCHED + 1 - - DO II = 1,8 - JSCHED2D(II,JJ+1) = IISCHED(II,JJ) - ENDDO - - IACC = JSTARTLINE !... J-VAL OF STARTING SCANLN - IACC = ISHFT(IACC,32) !... SORT KEY IN HI-ORDER HAFWD - JPTR = JJ + 1 !... PTR INTO JSCHED2D ARRAY - ISORKEY(JJ) = IOR(IACC,JPTR) !... /SORTKEY/PTR/ - ENDDO - GO TO 154 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ELSE -C ... COMES HERE IF LSCHED_EXTDQQ == .F. -C ... DATA WITHIN IISCHED(8,J) IS REALLY CONCATENATED I*2 WORDS - NTOTSCHED = 0 - DO JJ = 1,15 !... 60/4SETS PER 8I*8 = 15 - DO II = 1,8,2 !... 2 I*8 INTS == 8 I*2 WORDS -C ... FETCH NEXT TWO I*8 WORDS OUT OF IISCHED() ARRAY ... - I8HOLD(1) = IISCHED(II,JJ) - I8HOLD(2) = IISCHED(II+1,JJ) - IACC = IAND(I8HOLD(1),MSKLHS) - IF(IACC .EQ. 0) THEN -C ... THIS IS THE LAST DATA ITEM TO TRANSFER ... - GO TO 154 - ENDIF - - IF((NTOTSCHED+1) .GT. LIMITSETS) THEN - GO TO 154 - ENDIF - - DO IDE = 1,8 - IBY1 = 2*(IDE-1) + 1 - IBY2 = IBY1 + 1 - IPAIR(1) = MOVA2I(C1HOLD(IBY1)) - IPAIR(1) = ISHFT(IPAIR(1),8) - IPAIR(2) = MOVA2I(C1HOLD(IBY2)) - IIWRDEXT(IDE) = IOR(IPAIR(1),IPAIR(2)) - ENDDO -C ... NOW NON-ZERO 8-WORD SET IN (IIWRDEXT(I),I=1,8) -C ... JUST LIKE A SET FROM EXTENDED IISCHED ... - JSTARTLINE = IIWRDEXT(2) - IF(JSTARTLINE .GE. 8200) THEN -C ... BEYOND FAX STRIP TITLES INTO AFOS ... -C ... AND I AM NOT DOING AFOS, SO JUMP OUT - GO TO 154 - ENDIF - -C ... OTHERWISE, THIS ITEM IS NOT THE END OF ISCHED YET - NTOTSCHED = NTOTSCHED + 1 - - DO II2 = 1,8 - JSCHED2D(II2,NTOTSCHED+1) = IIWRDEXT(II2) - ENDDO - - IACC = JSTARTLINE !... J-VAL OF STARTING SCANLN - IACC = ISHFT(IACC,32) !... SORT KEY IN HI-ORDER HAFWD - JPTR = NTOTSCHED + 1 !... PTR INTO JSCHED2D ARRAY - ISORKEY(NTOTSCHED) = IOR(IACC,JPTR) -C !... /SORTKEY/PTR/ - ENDDO - ENDDO - GO TO 154 - - ENDIF -C - 154 CONTINUE -C ... ALL SUBSET DEFINITIONS HAVE BEEN COPIED INTO JSCHED2D -C ... AND NTOTSCHED CONTAINS THE COUNT OF SUBSETS/INSETS. - - WRITE(6,157) NTOTSCHED - 157 FORMAT(1H ,'REBLKFX4:IN GIVEN IISCHED, NO. OF _SETS=',I3) -C - IF(NTOTSCHED .LE. 0) THEN -C ... BAD IISCHED WAS GIVEN; BUT LET'S TRY TO CONTINUE -C ... WITH A CANNED IISCHED FOUND IN KIISCHED - WRITE(6,159) - 159 FORMAT(1H ,'REBLKFX4:-W- BAD IISCHED. PROCEEDING ANYWAY.') - DO I = 1,8 - JSCHED2D(I,2) = KIISCHED(I) - ENDDO -C - JSCHED2D(1,3) = 0 - JSCHED2D(2,3) = 0 -C - JLINSRTED(1,1) = KIISCHED(2) !... JLINE VAL - JLINSRTED(2,1) = 2 !... PTR -C - NTOTSCHED = 1 - NSCHED_CUT = 1 - GO TO 177 - ENDIF -C -C ... IF ONLY ONE GOOD ITEM IN IISCHEDS HAS BEEN MOVED, THEN -C ... BYPASS THE SORT - IF(NTOTSCHED .LE. 1) THEN - JSCHED2D(1,3) = 0 - JSCHED2D(2,3) = 0 -C - JLINSRTED(1,1) = JSCHED2D(2,2) !... JLINE VAL - JLINSRTED(2,1) = 2 !... PTR -C - NTOTSCHED = 1 - NSCHED_CUT = 1 - GO TO 177 - ENDIF - -C ... OTHERWISE,TO SORT THE SUBSET DEFS BY STARTING SCAN LINE, - - CALL PIKSOR(ISORKEY,NTOTSCHED) - - WRITE(6,165) NTOTSCHED - 165 FORMAT(1H ,'REBLKFX4::MAKFFFD: DID PIKSOR. NTOTSCHED=',I4) -C - NSCHED_CUT = 0 - NSCHED_TITL = 0 - DO IS = 1,NTOTSCHED - IACC = ISORKEY(IS) - JPTR = IAND(IACC,MSKRHS) - JLINE_VAL = ISHFT(IACC,-32) - JLINSRTED(1,IS) = JLINE_VAL - JLINSRTED(2,IS) = JPTR !... PTR - IF(JLINE_VAL .LT. 7400) THEN - NSCHED_CUT = NSCHED_CUT + 1 - ELSE IF(JLINE_VAL .LT. 8200) THEN - NSCHED_TITL = NSCHED_TITL + 1 - ENDIF - ENDDO -C - 177 CONTINUE - WRITE(6,178)NTOTSCHED,NSCHED_CUT,NSCHED_TITL - 178 FORMAT(1H ,'REBLKFX4::MAKFFFD: EXITING WITH NTOTSCHED=',I4, - 1 /1H ,' NSCHED_CUT=',I4,'; NSCHED_TITL=',I4) - IF(NTOTSCHED .GT. 0) THEN - WRITE(6,1781) - 1781 FORMAT(1H ,' LINUM JOFSHD -- FROM JLINSRTED(1,J),(2,J):') - WRITE(6,1782)(JLINSRTED(1,J),JLINSRTED(2,J),J=1,NTOTSCHED) - 1782 FORMAT((2I6)) - WRITE(6,1783) - 1783 FORMAT(1H ,' ..... ..... . . . END OF JLINSRTED . . .') - ENDIF - - RETURN - END diff --git a/util/sorc/trpanl.fd/shftl.f b/util/sorc/trpanl.fd/shftl.f deleted file mode 100755 index 46e3dbeec2..0000000000 --- a/util/sorc/trpanl.fd/shftl.f +++ /dev/null @@ -1,4 +0,0 @@ - integer function SHFTL(iv,ish) - SHFTL=ISHFT(iv,ish) - return - end diff --git a/util/sorc/trpanl.fd/shftr.f b/util/sorc/trpanl.fd/shftr.f deleted file mode 100755 index 45c32cf6bf..0000000000 --- a/util/sorc/trpanl.fd/shftr.f +++ /dev/null @@ -1,7 +0,0 @@ - integer function SHFTR(iv,ish) - print 194,iv,ish,-ish - 194 format('SHFTR CALLED WITH ',3z20) - ir=-ish - SHFTR=ISHFT(iv,-ir) - return - end diff --git a/util/sorc/trpanl.fd/stream3.f b/util/sorc/trpanl.fd/stream3.f deleted file mode 100755 index 0d27bd9b8b..0000000000 --- a/util/sorc/trpanl.fd/stream3.f +++ /dev/null @@ -1,67 +0,0 @@ - SUBROUTINE stream3(mbars,itime,lupgb,lupgi,F3) -c subroutine to accept pressure level (mbars), -c grib unit number (lupgb), and grib index unit -c number (lupgi) and read u, and v wind fields, -c at mbars, and calculate stream function. Stream -c function is stored in F3 and returned to caller. -c The Grib fields on lupgb MUST be grib type 3 (360x181) -c fields. These are output automatically by the NCEP -c GFS forecast model - parameter(im=360,jm=181,km=16) - dimension F3(im,jm) - dimension iprs(km) - integer kpds(100), kgds(100) - integer jpds(100), jgds(100) - logical lbms(im*jm), luv, ldz, lps - real u(im,jm), v(im,jm), psi(im,jm),chi(im,jm) - data iromb/0/,maxwv/126/,idrti/0/,imaxi/360/,jmaxi/181/ - data idrto/0/,imaxo/360/,jmaxo/181/,kmax/1/ - data iprime/0/,iskipi/0/,jskipi/0/,kspipi/0/ - data iskipo/0/,jskipo/0/,kspipo/0/,jcpu/0/ - luv = .FALSE. - ldz = .FALSE. - lps = .TRUE. - ijm = im * jm - fim = im - lskip=-1 - k=0 - do jj = 1, 100 - jpds(jj) = -1 - enddo - do jj = 1, 20 - jgds(jj) = -1 - enddo - jpds(5) = 33 - jpds(6) = 100 - jpds(7) = mbars - jpds(14)=itime - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,u,iret) - if(iret.ne.0) then - print *, ' iret =', iret - print *, ' k =', k - endif - jpds(5) = 34 - jpds(6) = 100 - jpds(7) = mbars - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,v,iret) - if(iret.ne.0) then - print *, ' iret =', iret - print *, ' k =', k - endif - call SPTRUNV(IROMB,MAXWV,IDRTI,IMAXI,JMAXI, - & IDRTO,IMAXO,JMAXO,KMAX, - & IPRIME,ISKIPI,JSKIPI,KSKIPI, - & ISKIPO,JSKIPO,KSKIPO,JCPU,U,V, - & LUV,GRIDUO,GRIDVO,LDZ,GRIDDO,GRIDZO, - & LPS,chi,psi) - print 109,k - 109 format(' K is ',i9) - do j=1,jm - do k=1,im - f3(k,j)=psi(k,j) - end do - end do - return - end diff --git a/util/sorc/trpanl.fd/w3fp02_fake.f b/util/sorc/trpanl.fd/w3fp02_fake.f deleted file mode 100755 index ae67a53b76..0000000000 --- a/util/sorc/trpanl.fd/w3fp02_fake.f +++ /dev/null @@ -1,1110 +0,0 @@ - SUBROUTINE W3FP02(ID,KTITLE,N) -C 15-MAY-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: W3FP02 NMC TITLING PROGRAM -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 96-05-17 -C -C ABSTRACT: GENERATES A TITLE FROM THE GIVEN DATA-FIELD IDENTIFIER -C FORMULATED ACCORDING TO NMC O.N. 84. THE RESULTING TITLE USES -C SPACE UP TO 328 CHARACTERS (41 I*8 WORDS). -C -C PROGRAM HISTORY LOG: -C YR-MO-DA ORIGINAL AUTHOR(S)'S NAME: ?? -C 83-10-12 S. COBBS -- ADDED SUBR VALUE (RENAMED TO FP02_VAL) -C 85-01-25 D. MILLER -- ADDED SUBR TCHECK (RENAMED TO DT_UNITS) -C YR-MO-DA S. COBBS -- MODIFIED TO RUN ON HDS-9040 -C 95-01-31 ???? -- LAST MODIFIED OPNL VERSION -C 96-05-17 SHIMOMURA -- MODIFIED TO RUN ON CRAY -C USAGE: CALL W3FP02 (ID, KTITLE, N) -C -C INPUT ARGUMENT LIST: -C 'ID' - INTEGER*8 12-WORD FIELD-IDENTIFIER DESCRIBING THE DATA -C (IN THIS CRAY VERSION THE 32-BIT DATA WORDS ARE -C POSITIONED IN THE LOW-ORDER HALF OF THE CRAY -C 64-BIT INTEGERS.) -C ' N' - INTEGER*8 NUMBER OF LINES OF OUTPUT DESIRED -C = 1 FIRST LINE (11 I*8 WORDS): THE PLAIN ENGLISH -C TITLE; -C (88-BYTE LINE-1 STARTS AT KTITLE(1)); -C -C = 2 FIRST LINE PLUS SECOND LINE; -C SECOND LINE (16 I*8 WORDS): DECIMAL VALUES -C OF THE PARAMETERS; -C (128-BYTE LINE-2 STARTS AT KTITLE(12)); -C -C = 3 FIRST LINE + SECOND LINE + THIRD LINE -C THIRD LINE (14 I*8 WORDS): HEXADECIMAL DUMP -C OF THE 12 WORD FIELD IDENTIFIER; -C (112-BYTE LINE-3 STARTS AT KTITLE(55)); -C NOTE: THERE ARE NO LINE DELIMITERS TO SEPARATE -C THE LINES. -C OUTPUT ARGUMENT LIST: -C 'KTITLE' - INTEGER*8 KTITLE(41) -C ARRAY TO CONTAIN THE RESULTING TITLE IN ASCII -C -C REMARKS: -C SEE NMC OFFICE NOTE 84 FOR DATA FIELD IDENTIFIER SPECS -C -C SUBPROGRAMS CALLED: -C UNIQUE: FP02_LN1,FP02_LN2,FP02_LN3,FP02_VAL,DT_UNITS -C -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C - integer ID(12) - integer KTITLE(41) !... 41 CRAY I*8 == 82 IBM I*4 -C ... integer KTITLE(82) - - INTEGER KLANKS - CHARACTER*8 CLANKS - EQUIVALENCE (KLANKS,CLANKS) - DATA CLANKS / ' ' / -C ...12345678... -C - SAVE -C - - DO I = 1,11 - KTITLE(I) = KLANKS - ENDDO - - CALL FP02_LN1(ID,KTITLE) - - IF(N .GT. 1) GO TO 10 - RETURN -C - 10 CONTINUE - - DO I = 12,27 - KTITLE(I) = KLANKS - ENDDO - - CALL FP02_LN2(ID,KTITLE) - - IF(N.GT.2) GO TO 20 - RETURN -C - 20 CONTINUE - - DO I = 28,41 - KTITLE(I) = KLANKS - ENDDO - - CALL FP02_LN3(ID,KTITLE) - - RETURN - END - - SUBROUTINE FP02_LN1(ID,JTITLE) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: FP02_LN1 CREATES THE FIRST LINE OF TITLE -C AUTHOR: COBBS,S ORG: W/NMC42 DATE: 85-01-25 -C -C ABSTRACT: CREATES THE FIRST LINE OF THE TITLE FROM THE -C ID WORDS. -C -C -C USAGE: CALL FP02_LN1 (ID,JTITLE) -C -C -C - - - - - - - - - I N P U T V A R I A B L E S - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C ID ID WORDS ARGUMENT -C -C -C - - - - - - - - - O U T P U T V A R I A B L E S - - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C JTITLE TITLE ARRAY ARGUMENT -C -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C -C . . . . . . . . . . . . . - INTEGER ID(12) - INTEGER JTITLE(41) -C . . . . . . . . . . . . . - INTEGER DTIME_CODE - INTEGER JKEEP(15) - - INTEGER KTITLE(41) - CHARACTER*328 CTITLE - EQUIVALENCE (KTITLE(1),CTITLE) - - integer MASK(8) -C - DATA MASK(1)/ X'0000000F' / - DATA MASK(2)/ X'000000FF' / - DATA MASK(3)/ X'00000FFF' / - DATA MASK(4)/ X'0000FFFF' / - DATA MASK(5)/ X'000FFFFF' / - DATA MASK(6)/ X'00FFFFFF' / - DATA MASK(7)/ X'0FFFFFFF' / - DATA MASK(8)/ X'FFFFFFFF' / - - - INTEGER TEMPR - CHARACTER*1 ISTORE(8) - EQUIVALENCE (TEMPR,ISTORE(1)) - - INTEGER C1,C2,E1,E2,S1,S2,Q,M,G -C - CHARACTER*8 INUM1 - CHARACTER*8 INUM2 - CHARACTER*8 KWRITE(3) - character*6 QWRITE -C - CHARACTER*1 LTEMP(7) - CHARACTER*1 MTEMP(7) - - INTEGER NSHIFT - INTEGER NMASK - INTEGER NID -C -C -C IDWORDS: MASK CONTROL -C -C . . . . . . . . . . . . . . . . . . . - INTEGER SHFMSK(15) - - DATA SHFMSK( 1)/X'00020100'/ - DATA SHFMSK( 2)/X'08020700'/ - DATA SHFMSK( 3)/X'10020700'/ - DATA SHFMSK( 4)/X'18020700'/ - DATA SHFMSK( 5)/X'08050200'/ - DATA SHFMSK( 6)/X'00020200'/ - DATA SHFMSK( 7)/X'08050400'/ - DATA SHFMSK( 8)/X'00020400'/ - DATA SHFMSK( 9)/X'1C010300'/ - DATA SHFMSK(10)/X'08030100'/ - DATA SHFMSK(11)/X'08030300'/ - DATA SHFMSK(12)/X'14030100'/ - DATA SHFMSK(13)/X'00020700'/ - DATA SHFMSK(14)/X'10020800'/ -C -C . . . . . . . . . . . . . . . . . . . -C MONTH TABLE. -C - CHARACTER*4 CMONTH(12) - DATA CMONTH( 1)/ ' JAN'/ - DATA CMONTH( 2)/ ' FEB'/ - DATA CMONTH( 3)/ ' MAR'/ - DATA CMONTH( 4)/ ' APR'/ - DATA CMONTH( 5)/ ' MAY'/ - DATA CMONTH( 6)/ ' JUN'/ - DATA CMONTH( 7)/ ' JUL'/ - DATA CMONTH( 8)/ ' AUG'/ - DATA CMONTH( 9)/ ' SEP'/ - DATA CMONTH(10)/ ' OCT'/ - DATA CMONTH(11)/ ' NOV'/ - DATA CMONTH(12)/ ' DEC'/ -C -C . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . -C REFERENCE TABLE FOR SNAME. -C - INTEGER S_CODE(17) - DATA S_CODE(1)/1/ - DATA S_CODE(2)/2/ - DATA S_CODE(3)/6/ - DATA S_CODE(4)/7/ - DATA S_CODE(5)/8/ - DATA S_CODE(6)/16/ - DATA S_CODE(7)/19/ - DATA S_CODE(8)/128/ - DATA S_CODE(9)/129/ - DATA S_CODE(10)/130/ - DATA S_CODE(11)/144/ - DATA S_CODE(12)/145/ - DATA S_CODE(13)/146/ - DATA S_CODE(14)/147/ - DATA S_CODE(15)/148/ - DATA S_CODE(16)/131/ - DATA S_CODE(17)/132/ -C -C . . . . . . . . . . . . . . . . . . . -C SNAME TABLE. - character*4 SNAME(18) -C - DATA SNAME( 1)/ ' GPM'/ - DATA SNAME( 2)/ ' PA '/ - DATA SNAME( 3)/ ' M '/ - DATA SNAME( 4)/ ' M '/ - DATA SNAME( 5)/ ' MB '/ - DATA SNAME( 6)/ ' DEG'/ - DATA SNAME( 7)/ ' POT'/ - DATA SNAME( 8)/ ' MSL'/ - DATA SNAME( 9)/ ' SFC'/ - DATA SNAME(10)/ ' TRO'/ - DATA SNAME(11)/ ' BDY'/ - DATA SNAME(12)/ ' TRS'/ - DATA SNAME(13)/ ' STS'/ - DATA SNAME(14)/ ' QCP'/ - DATA SNAME(15)/ ' SIG'/ - DATA SNAME(16)/ 'MWSL'/ - DATA SNAME(17)/ 'PLYR'/ - DATA SNAME(18)/ ' '/ -C -C . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . -C REFERENCE TABLE FOR QNAME. - INTEGER Q_CODE(108) -C - DATA Q_CODE( 1)/ 1/ - DATA Q_CODE( 2)/ 2/ - DATA Q_CODE( 3)/ 6/ - DATA Q_CODE( 4)/ 8/ - DATA Q_CODE( 5)/ 16/ - DATA Q_CODE( 6)/ 17/ - DATA Q_CODE( 7)/ 18/ - DATA Q_CODE( 8)/ 19/ - DATA Q_CODE( 9)/ 20/ - DATA Q_CODE(10)/ 21/ - DATA Q_CODE(11)/ 40/ - DATA Q_CODE(12)/ 41/ - DATA Q_CODE(13)/ 42/ - DATA Q_CODE(14)/ 43/ - DATA Q_CODE(15)/ 44/ - DATA Q_CODE(16)/ 48/ - DATA Q_CODE(17)/ 49/ - DATA Q_CODE(18)/ 50/ - DATA Q_CODE(19)/ 51/ - DATA Q_CODE(20)/ 52/ - DATA Q_CODE(21)/ 53/ - DATA Q_CODE(22)/ 54/ - DATA Q_CODE(23)/ 55/ - DATA Q_CODE(24)/ 56/ - DATA Q_CODE(25)/ 57/ - DATA Q_CODE(26)/ 58/ - DATA Q_CODE(27)/ 59/ - DATA Q_CODE(28)/ 60/ - DATA Q_CODE(29)/ 72/ - DATA Q_CODE(30)/ 73/ - DATA Q_CODE(31)/ 74/ - DATA Q_CODE(32)/ 80/ - DATA Q_CODE(33)/ 81/ - DATA Q_CODE(34)/ 88/ - DATA Q_CODE(35)/ 89/ - DATA Q_CODE(36)/ 90/ - DATA Q_CODE(37)/ 91/ - DATA Q_CODE(38)/ 92/ - DATA Q_CODE(39)/ 93/ - DATA Q_CODE(40)/ 94/ - DATA Q_CODE(41)/ 95/ - DATA Q_CODE(42)/ 96/ - DATA Q_CODE(43)/112/ - DATA Q_CODE(44)/113/ - DATA Q_CODE(45)/114/ - DATA Q_CODE(46)/115/ - DATA Q_CODE(47)/120/ - DATA Q_CODE(48)/121/ - DATA Q_CODE(49)/160/ - DATA Q_CODE(50)/161/ - DATA Q_CODE(51)/162/ - DATA Q_CODE(52)/163/ - DATA Q_CODE(53)/164/ - DATA Q_CODE(54)/165/ - DATA Q_CODE(55)/166/ - DATA Q_CODE(56)/167/ - DATA Q_CODE(57)/168/ - DATA Q_CODE(58)/169/ - DATA Q_CODE(59)/170/ - DATA Q_CODE(60)/171/ - DATA Q_CODE(61)/176/ - DATA Q_CODE(62)/177/ - DATA Q_CODE(63)/178/ - DATA Q_CODE(64)/184/ - DATA Q_CODE(65)/185/ - DATA Q_CODE(66)/186/ - DATA Q_CODE(67)/187/ - DATA Q_CODE(68)/188/ - DATA Q_CODE(69)/384/ - DATA Q_CODE(70)/385/ - DATA Q_CODE(71)/386/ - DATA Q_CODE(72)/387/ - DATA Q_CODE(73)/388/ - DATA Q_CODE(74)/389/ - DATA Q_CODE(75)/390/ - DATA Q_CODE(76)/391/ - DATA Q_CODE(77)/ 97/ - DATA Q_CODE(78)/ 98/ - DATA Q_CODE(79)/ 99/ - DATA Q_CODE(80)/100/ - DATA Q_CODE(81)/101/ - DATA Q_CODE(82)/102/ - DATA Q_CODE(83)/103/ - DATA Q_CODE(84)/148/ - DATA Q_CODE(85)/172/ - DATA Q_CODE(86)/200/ - DATA Q_CODE(87)/201/ - DATA Q_CODE(88)/202/ - DATA Q_CODE(89)/203/ - DATA Q_CODE(90)/392/ - DATA Q_CODE(91)/ 7/ - DATA Q_CODE(92)/ 61/ - DATA Q_CODE(93)/104/ - DATA Q_CODE(94)/173/ - DATA Q_CODE(95)/174/ - DATA Q_CODE(96)/175/ - DATA Q_CODE(97)/304/ - DATA Q_CODE(98)/305/ - DATA Q_CODE(99)/400/ - DATA Q_CODE(100)/401/ - DATA Q_CODE(101)/402/ - DATA Q_CODE(102)/403/ - DATA Q_CODE(103)/404/ - DATA Q_CODE(104)/405/ - DATA Q_CODE(105)/ 9/ - DATA Q_CODE(106)/105/ - DATA Q_CODE(107)/116/ - DATA Q_CODE(108)/106/ -C -C . . . . . . . . . . . . . . . . . . . -C QNAME TABLE: - character*6 QNAME(108) -C - DATA QNAME( 1)/ ' HGT '/ - DATA QNAME( 2)/ ' P ALT'/ - DATA QNAME( 3)/ ' DIST '/ - DATA QNAME( 4)/ ' PRES '/ - DATA QNAME( 5)/ ' TMP '/ - DATA QNAME( 6)/ ' DPT '/ - DATA QNAME( 7)/ ' DEPR '/ - DATA QNAME( 8)/ ' POT '/ - DATA QNAME( 9)/ ' T MAX'/ - DATA QNAME(10)/ ' T MIN'/ - DATA QNAME(11)/ ' V VEL'/ - DATA QNAME(12)/ ' NETVD'/ - DATA QNAME(13)/ ' DZDT '/ - DATA QNAME(14)/ ' OROW '/ - DATA QNAME(15)/ ' FRCVV'/ - DATA QNAME(16)/ ' U GRD'/ - DATA QNAME(17)/ ' V GRD'/ - DATA QNAME(18)/ ' WIND '/ - DATA QNAME(19)/ ' T WND'/ - DATA QNAME(20)/ ' VW SH'/ - DATA QNAME(21)/ ' U DIV'/ - DATA QNAME(22)/ ' V DIV'/ - DATA QNAME(23)/ ' WDIR '/ - DATA QNAME(24)/ ' WWND '/ - DATA QNAME(25)/ ' SWND '/ - DATA QNAME(26)/ ' RATS '/ - DATA QNAME(27)/ ' VECW '/ - DATA QNAME(28)/ ' SFAC '/ - DATA QNAME(29)/ ' ABS V'/ - DATA QNAME(30)/ ' REL V'/ - DATA QNAME(31)/ ' DIV '/ - DATA QNAME(32)/ ' STRM '/ - DATA QNAME(33)/ ' V POT'/ - DATA QNAME(34)/ ' R H '/ - DATA QNAME(35)/ ' P WAT'/ - DATA QNAME(36)/ ' A PCP'/ - DATA QNAME(37)/ ' P O P'/ - DATA QNAME(38)/ ' P O Z'/ - DATA QNAME(39)/ ' SNO D'/ - DATA QNAME(40)/ ' ACPCP'/ - DATA QNAME(41)/ ' SPF H'/ - DATA QNAME(42)/ ' L H2O'/ - DATA QNAME(43)/ ' LFT X'/ - DATA QNAME(44)/ ' TOTOS'/ - DATA QNAME(45)/ ' K X '/ - DATA QNAME(46)/ ' C INS'/ - DATA QNAME(47)/ ' L WAV'/ - DATA QNAME(48)/ ' S WAV'/ - DATA QNAME(49)/ ' DRAG '/ - DATA QNAME(50)/ ' LAND '/ - DATA QNAME(51)/ ' KFACT'/ - DATA QNAME(52)/ ' 10TSL'/ - DATA QNAME(53)/ ' 7TSL '/ - DATA QNAME(54)/ ' RCPOP'/ - DATA QNAME(55)/ ' RCMT '/ - DATA QNAME(56)/ ' RCMP '/ - DATA QNAME(57)/ ' ORTHP'/ - DATA QNAME(58)/ ' ALBDO'/ - DATA QNAME(59)/ ' ENFLX'/ - DATA QNAME(60)/ ' HEATR'/ - DATA QNAME(61)/ ' LAT '/ - DATA QNAME(62)/ ' LON '/ - DATA QNAME(63)/ ' RADIC'/ - DATA QNAME(64)/ ' PROB '/ - DATA QNAME(65)/ ' CPROB'/ - DATA QNAME(66)/ ' USTAR'/ - DATA QNAME(67)/ ' TSTAR'/ - DATA QNAME(68)/ ' MIXHT'/ - DATA QNAME(69)/ ' WTMP '/ - DATA QNAME(70)/ ' WVHGT'/ - DATA QNAME(71)/ ' SWELL'/ - DATA QNAME(72)/ ' WVSWL'/ - DATA QNAME(73)/ ' WVPER'/ - DATA QNAME(74)/ ' WVDIR'/ - DATA QNAME(75)/ ' SWPER'/ - DATA QNAME(76)/ ' SWDIR'/ - DATA QNAME(77)/ ' RRATE'/ - DATA QNAME(78)/ ' TSTM '/ - DATA QNAME(79)/ ' CSVR '/ - DATA QNAME(80)/ ' CTDR '/ - DATA QNAME(81)/ ' MIXR '/ - DATA QNAME(82)/ ' PSVR '/ - DATA QNAME(83)/ ' MCONV'/ - DATA QNAME(84)/ ' SIG '/ - DATA QNAME(85)/ ' ENRGY'/ - DATA QNAME(86)/ ' RDNCE'/ - DATA QNAME(87)/ ' BRTMP'/ - DATA QNAME(88)/ ' TCOZ '/ - DATA QNAME(89)/ ' OZMR '/ - DATA QNAME(90)/ ' ICSEA'/ - DATA QNAME(91)/ ' DEPTH'/ - DATA QNAME(92)/ ' GUST '/ - DATA QNAME(93)/ ' VAPP '/ - DATA QNAME(94)/ ' TOTHF'/ - DATA QNAME(95)/ ' SEHF '/ - DATA QNAME(96)/ ' SORAD'/ - DATA QNAME(97)/ ' UOGRD'/ - DATA QNAME(98)/ ' VOGRD'/ - DATA QNAME(99)/ ' HTSGW'/ - DATA QNAME(100)/ ' PERPW'/ - DATA QNAME(101)/ ' DIRPW'/ - DATA QNAME(102)/ ' PERSW'/ - DATA QNAME(103)/ ' DIRSW'/ - DATA QNAME(104)/ ' WCAPS'/ - DATA QNAME(105)/ ' PTEND'/ - DATA QNAME(106)/ ' NCPCP'/ - DATA QNAME(107)/ ' HIFTX'/ - DATA QNAME(108)/ ' ICEAC'/ -C -C . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . -C REFERENCE TABLE FOR G (GENERATING PROGRAM NAME) -C - INTEGER KK(3) - - DATA KK(1)/57/ - DATA KK(2)/58/ - DATA KK(3)/59/ -C -C . . . . . . . . . . . . . . . . . . . -C G TABLE (GENERATING PROGRAM NAME): -C - CHARACTER*8 KNAME(9) - - DATA KNAME / ' ECMWF', - 2 ' READING', - 3 ', UK. ', - 4 ' FNOC', - 5 ' MONTERE', - 6 'Y, CA. ', - 7 ' AFGWC ', - 8 'OFFUTT A', - 9 'FB, NB. ' / -C -C . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . - CHARACTER*8 KNAME1(3) - DATA KNAME1 / ' WMC N', - 2 'CEP WASH', - 3 'INGTON ' / -C -C . . . . . . . . . . . . . . . . . . . - character*6 QNAME1 - DATA QNAME1 / ' THCK ' / -C - logical lcheckout -C - SAVE -C . . . . S T A R T . . . . . . . . . . . . . . . . . . . -C - lcheckout = .FALSE. - -C 1. UNPACK ID WORDS. -C - DO 1 N=1,14 - TEMPR = SHFMSK(N) - NSHIFT = 0 - NSHIFT = MOVA2I(ISTORE(5)) !... CRAY -C ... JSTORE(4) = ISTORE(1) - NMASK = 0 - NMASK = MOVA2I(ISTORE(6)) !... CRAY -C ... KSTORE(4) = ISTORE(2) - NID = 0 - NID = MOVA2I(ISTORE(7)) !... CRAY -C ... LSTORE(4) = ISTORE(3) - JKEEP(N)=IAND(MASK(NMASK),ISHFT(ID(NID),-NSHIFT)) - 1 CONTINUE -C - C1 = JKEEP(5) - C2 = JKEEP(7) - E1 = JKEEP(6) - E2 = JKEEP(8) - S1 = JKEEP(10) - S2 = JKEEP(11) - Q = JKEEP(12) - M = JKEEP(9) - G = JKEEP(14) -C - IF(E1 .GT. 128) THEN - E1 = -(JKEEP(6)-128) - ENDIF - IF(E2 .GT. 128) THEN - E2 = -(JKEEP(8)-128) - ENDIF -C - if(lcheckout)then - WRITE(6,505)(JKEEP(I),I=1,14),E1,E2 - 505 FORMAT(1H ,'LINE-1: THE JKEEP ARRAY FOLLOWS ...', - 1 /1H ,' (1) (2) (3) (4) (C1)', - 2 ' (E1) (C2) (E2)', - 3 /1H ,8Z9.8, /1H ,8Z9.8, - 4 /1H ,' (M) (S1) (S2) (Q) (13)', - 5 ' (G) (E1B) (E2B)') - endif -C -C 2. FIND WHICH SURFACE IS INDICATED BY THE ID WORDS -C AS BEING THE FIRST SURFACE. -C - DO 2 I=1,17 - K1 = I - IF(S1 .EQ. S_CODE(I))GO TO 4 - 2 CONTINUE - K1=18 - GO TO 4 - - 4 CONTINUE -C -C 3. BEGIN PROCESSING OF A ONE-SURFACE TITLE -C - IF(M .NE. 0)GO TO 200 -C - K2=K1 - - CALL FP02_VAL(S1,C1,E1,INUM1) - - WRITE(CTITLE(1:20),107) INUM1(1:7) - 107 FORMAT(13X,A) - - GO TO 73 -C -C 4. FIND WHICH SURFACE IS INDICATED BY THE ID WORDS -C AS BEING THE SECOND SURFACE. -C - 200 DO 22 I=1,17 - IF(S2 .EQ. S_CODE(I))GO TO 33 - 22 CONTINUE - K2=18 - GO TO 44 - 33 K2=I - 44 CONTINUE -C -C -C 5. BEGIN PROCESSING OF A TWO-SURFACE TITLE -C - CALL FP02_VAL(S1,C1,E1,INUM1) - CALL FP02_VAL(S2,C2,E2,INUM2) - WRITE(CTITLE(1:20),103) INUM1(1:7),SNAME(K1)(1:4),INUM2(1:7) - 103 FORMAT(' ',A,A,' ',A) -C -C 6. FIND WHICH PARAMETER (Q) IS INDICATED BY THE ID WORDS. -C - 73 CONTINUE - DO 300 N=1,108 - IF(Q .EQ. Q_CODE(N))GO TO 310 - 300 CONTINUE -C ... fell thru without finding a matching Q_CODE ... - WRITE(6,108) Q - 108 FORMAT(' Q IS AN ILLEGAL NUMBER. Q IS ',I3) - GO TO 1000 - - 310 QWRITE(1:6) = QNAME(N)(1:6) -C - IF(Q .EQ. 1 .AND. M .EQ. 1 .AND. S1 .EQ. 8) then - QWRITE(1:6) = QNAME1(1:6) - endif -C -C 7. SET DATE/TIME FIELDS. -C -C A. SET DTIME_CODE FOR HRS,HALF DAYS OR DAYS -C FROM F1 AND F2 - - CALL DT_UNITS(ID, DTIME_CODE) -C - IF (DTIME_CODE .EQ. 0) then - GO TO 76 - ELSE IF (DTIME_CODE .EQ. 1) then - JKEEP(1) = JKEEP(1) * 12 - GO TO 76 - ELSE IF (DTIME_CODE .EQ. 2) then - JKEEP(1) = JKEEP(1) * 24 - go to 76 - ELSE - GO TO 76 - endif -C - 76 continue - IHUN = JKEEP(1)/100 - irmndr = mod(jkeep(1),100) - iten = irmndr/10 - iunit = mod(irmndr,10) - - IFST = JKEEP(13)/10 - isec = mod(jkeep(13),10) -C -C 8. SET GENERATING PROGRAM NAME. -C - DO 80 K=1,3 - IF (G .EQ. KK(K)) THEN -C ... this is one of the other met centers ... - DO L=1,3 - KWRITE(L) = KNAME( 3*(K-1) + L) - ENDDO - GO TO 100 - endif - 80 CONTINUE -C - DO 99 L=1,3 - KWRITE(L) = KNAME1(L) !... wmc nmc washington - 99 CONTINUE - GO TO 100 -C -C 9. ASSEMBLE THE REMAINDER OF THE TITLE LINE -C VIA INTERNAL WRITE STATEMENT INTO CTITLE(21:88) -C - 100 CONTINUE - WRITE(CTITLE(21:88),105) SNAME(K2)(1:4),QWRITE(1:6), - A IHUN,ITEN,IUNIT, IFST,ISEC, - B JKEEP(2),CMONTH(JKEEP(3)),JKEEP(4),(KWRITE(L),L=1,3) - 105 FORMAT(A4,1X,A6,' FOR ',3I1,' HRS AFTER ',2I1,'Z ',I2,A4,1X,I2, - 1 3A8) -C - if(lcheckout) then - write(6,535)ctitle(1:63),ctitle(64:88) - 535 format(1h ,'at completion of LINE-1, CTITLE(1:88) contains ...', - 1 /1h ,'"',A,'"', /1h ,'"',A,'"') - endif - -C - 1000 CONTINUE -C -C 10. REASSIGN KTITLE FOR OUTPUT. -C - DO 1001 K = 1,11 !... 11 I*8 == 22 I*4 - JTITLE(K) = KTITLE(K) - 1001 CONTINUE -C - RETURN - END - - SUBROUTINE FP02_VAL(S,C,E,C8NUM) -C 15-MAY-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: FP02_VAL CREATES VALUE OF SURFACE FROM IDS -C AUTHOR: COBBS,S. ORG: W/NMC42 DATE: 83-10-12 -C -C ABSTRACT: CONVERTS THE NUMERICAL VALUE FOR THE SURFACE INTO -C A TEXT STRING TO BE USED IN THE FIRST LINE OF THE TITLE. -C -C USAGE: CALL FP02_VAL(S,C,E,C8NUM) -C -C -C - - - - - - - - - I N P U T V A R I A B L E S - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C -C S INTEGER NUMBER OF SURFACE ARGUMENT -C C,E NUMERICAL VALUE OF THE SURFACE ARGUMENT -C SURFACE = S * 10 ** E -C -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C -C - - - - - - - - - O U T P U T V A R I A B L E S - - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C -C C8NUM VALUE OF THE SURFACE FOR THE TITLE ARGUMENT -C CHARACTER*8 C8NUM -C -C -C ATTRIBUTES: -C LANGUAGE: CRAY FORTRAN -C -C$$$ -C -C ... 960515 SHIMOMURA -- IN MODIFYING FOR CRAY, I CHANGED THE ARG4 -C FROM REAL*8 TO CHARACTER*8, SINCE IT WAS -C FOR AN 8-CHAR STRING; -C ALSO RENAMED FROM "VALUE" TO "FP02_VAL" -C . . . . . . . . . . . . . . . . . . . . . . . . . -C ... USAGE: CALL FP02_VAL(S,C,E,C8NUM) - integer S - integer C - integer E - CHARACTER*8 C8NUM !... RESULT - -C . . . . . . . . . . . . . . . . . . . . . . . . . - CHARACTER*8 JZEROS - DATA JZEROS/ ' 0.0000 ' / - - CHARACTER*8 KLANKS - DATA KLANKS/ ' ' / -C -C - CHARACTER*7 LTEMP - CHARACTER*1 POINT - DATA POINT/'.'/ -C - integer*8 INUM - CHARACTER*8 CNUM - EQUIVALENCE (INUM,CNUM) -C -C -C - C8NUM = KLANKS - - IF (S .GE. 128 .AND. S .LE. 132) THEN - C8NUM = KLANKS - GO TO 150 - ENDIF - -C ... OTHERWISE, !... (S .LT.128) .OR. (S .GT. 132) ... - IF(C .EQ. 0) THEN - C8NUM = JZEROS - GO TO 150 - ELSE -C ... C IS NON-ZERO ... - WRITE (LTEMP(1:7),101) C - 101 FORMAT(I6,1H ) - J = E+6 - K = J+1 - CNUM(1:J) = LTEMP(1:J) - CNUM(K:K) = POINT - CNUM(K+1:8) = LTEMP(K:7) - C8NUM(1:8) = CNUM(1:8) - GO TO 150 - ENDIF -C - 150 CONTINUE - RETURN - END - - SUBROUTINE FP02_LN2(ID,JTITLE) -C 15-MAY-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: FP02_LN2 CREATES THE SECOND LINE OF TITLE -C AUTHOR: ORG: W/NMC42 DATE: 83-10-25 -C -C ABSTRACT: CREATES THE SECOND LINE OF THE TITLE FROM THE -C ID WORDS. -C -C USAGE: CALL FP02_LN2(ID,JTITLE) -C -C -C - - - - - - - - - I N P U T V A R I A B L E S - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C ID ID WORDS ARGUMENT -C -C - - - - - - - - - O U T P U T V A R I A B L E S - - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C JTITLE TITLE ARRAY ARGUMENT -C -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C -C ATTRIBUTES: -C LANGUAGE: IBM VS FORTRAN -C SOURCE STATEMENTS: 50 CORE SIZE: 2300 -C -C$$$ -C -C -ckumar integer (kind=8) ibm2cray -ckumar external ibm2cray - -C - INTEGER ID(12) - INTEGER JTITLE(41) - - INTEGER KTITLE(41) - CHARACTER*328 CTITLE - EQUIVALENCE (KTITLE(1),CTITLE) -C - integer MASK(8) -C - DATA MASK(1)/ X'0000000F' / - DATA MASK(2)/ X'000000FF' / - DATA MASK(3)/ X'00000FFF' / - DATA MASK(4)/ X'0000FFFF' / - DATA MASK(5)/ X'000FFFFF' / - DATA MASK(6)/ X'00FFFFFF' / - DATA MASK(7)/ X'0FFFFFFF' / - DATA MASK(8)/ X'FFFFFFFF' / - -C - INTEGER TEMPR - CHARACTER*1 ISTORE(8) - EQUIVALENCE (TEMPR,ISTORE(1)) -C - DATA NEG / X'FFFFFFFFFFFF0000' / -C -C IDWORDS: MASK CONTROL (INTEGER ) -C - INTEGER IKEEP(17) - INTEGER SHFMSK(17) - DATA SHFMSK( 1)/X'1C010300'/ - DATA SHFMSK( 2)/X'1C010200'/ - DATA SHFMSK( 3)/X'1C010400'/ - DATA SHFMSK( 4)/X'00020100'/ - DATA SHFMSK( 5)/X'00020300'/ - DATA SHFMSK( 6)/X'18020500'/ - DATA SHFMSK( 7)/X'10020500'/ - DATA SHFMSK( 8)/X'08020500'/ - DATA SHFMSK( 9)/X'00020500'/ - DATA SHFMSK(10)/X'18080600'/ - DATA SHFMSK(11)/X'18020800'/ - DATA SHFMSK(12)/X'10020800'/ - DATA SHFMSK(13)/X'00040800'/ - DATA SHFMSK(14)/X'10040900'/ - DATA SHFMSK(15)/X'00040900'/ - DATA SHFMSK(16)/X'00080A00'/ - DATA SHFMSK(17)/X'00040B00'/ - - real crayreal - integer loneibm - integer nbitoffset - data nbitoffset / 32 / - integer nitems - data nitems / 1 / - logical lcheckout -C - save - - lcheckout = .FALSE. - -C UNPACK ID WORDS. -C - DO 1 N=1,17 - TEMPR=SHFMSK(N) -C - NSHIFT = 0 - nshift = mova2i(istore(5)) -C - NMASK = 0 - nmask = mova2i(istore(6)) -C - NID = 0 - nid = mova2i(istore(7)) -C - IKEEP(N)=IAND(MASK(NMASK),ISHFT(ID(NID),-NSHIFT)) - 1 CONTINUE -C -C CONVERT 16 BIT SIGNED INTEGER INTO FULLWORD INTEGER -C - IF (BTEST(IKEEP(17),15)) THEN - IKEEP(17) = IOR(IKEEP(17),NEG) - ENDIF -C -C ... the A= reference value in ikeep(16) is, I think, -C ... in IBM REAL*4 format right-justified in longword; -C ... so convert it into CRAY REAL - crayreal = 0.0 - loneibm = IKEEP(16) - -ckumar iret = ibm2cray(2,nitems,loneibm,nbitoffset,crayreal) -C type=2; for IBM REAL*4 - -ckumar if(iret .LT. 0) then -ckumar write(6,315)iret -ckumar 315 format(1h ,'FP02_LN2::ibm2cray FAILED with return code=',I8) -C ... TO LET IT GO ON ANYWAY, - crayreal = 0.0 -ckumar endif -ckumar if (lcheckout) then -ckumar write(6,325)loneibm, crayreal -ckumar 325 format(1h ,'FP02_LN2::ibm2cray: R*4 ibm = HEX',Z17.16, -ckumar 1 /1h ,' R*8 cray = DEC',E13.5) -ckumar endif - -C ASSEMBLE THE SECOND LINE OF THE TITLE -C - - WRITE(CTITLE(89:216),101)(IKEEP(I),I=1,15),crayreal,ikeep(17) - 101 FORMAT(' M=',I1,' T=',I1,' N=',I2,' F1=',I3,' F2=',I3,' CD=',I3,' - 1CM=',I3,' KS=',I3,' K=',I3,' UN=',I5,' R= ',I3,' G=',I3,' J=',I5,' - 2 B=',I5,' Z=',I5,' A=',E15.8,' N=',I5,' ') -C -C REASSIGN THE SECOND LINE OF THE TITLE TO THE OUTPUT ARRAY -C -C ... DO 1001 K = 23,54 - DO 1001 K = 12,27 - JTITLE(K) = KTITLE(K) - 1001 CONTINUE -C - RETURN - END - SUBROUTINE FP02_LN3(ID,JTITLE) -C 15-MAY-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: FP02_LN3 CREATES THE THIRD LINE OF TITLE -C AUTHOR: ORG: W/NMC42 DATE: 25 OCT 83 -C -C ABSTRACT: CREATES THE THIRD LINE OF THE TITLE FROM THE -C ID WORDS. -C -C USAGE: CALL FP02_LN3 (ID,JTITLE) -C -C -C - - - - - - - - - I N P U T V A R I A B L E S - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C ID ID WORDS ARGUMENT -C -C - - - - - - - - - O U T P U T V A R I A B L E S - - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C JTITLE TITLE ARRAY ARGUMENT -C -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - DIMENSION ID(12) - DIMENSION JTITLE(41) - - DIMENSION KTITLE(41) - CHARACTER*328 CTITLE - EQUIVALENCE (KTITLE(1),CTITLE) -C -C ... ASSEMBLE THE THIRD LINE OF THE TITLE. -C - WRITE(CTITLE(217:324),1)(ID(I),I=1,12) - 1 FORMAT(12Z9.8) -C -C ... REASSIGN THE THIRD LINE OF THE TITLE TO AN OUTPUT ARRAY. -C -C ... DO 1001 K = 55,81 - DO 1001 K = 28,41 - JTITLE(K) = KTITLE(K) - 1001 CONTINUE -C - RETURN - END - SUBROUTINE DT_UNITS(ID, DTIME_CODE) -C 15-MAY-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: DT_UNITS SET DELTA TIME CODE FROM ID -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 96-05-17 -C -C ABSTRACT: DETERMINES DELTA-TIME UNITS OF THE FORECAST -C WHETHER IN HOURS, HALF-DAYS, OR FULL-DAYS; -C ONLY CALLED FROM W3FP02(). -C -C PROGRAM HISTORY LOG: -C 85-01-25 ORIGINAL AUTHOR: D. MILLER -C 96-05-17 SHIMOMURA -- CHANGED NAME FROM "TCHECK" TO "DT_UNITS" -C AND REPROGRAMMED FOR CRAY -C -C USAGE: CALL DT_UNITS (ID, DTIME_CODE) -C INPUT ARGUMENT LIST: -C ID - INTEGER*8 ID(12): OFFICE NOTE 84 IDENTIFIER -C -C OUTPUT ARGUMENT LIST: -C DTIME_CODE - INTEGER*8 DTIME_CODE -C =0; IN HOURS -C =1; IN HALF-DAY UNITS -C =2; IN FULL-DAY UNITS -C -C OUTPUT FILES: -C FT06F001 - FOR COMMENT IF ERRONEOUS DATA -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - INTEGER ID(12) - INTEGER DTIME_CODE - - integer MASK(8) -C - DATA MASK(1)/ X'0000000F' / - DATA MASK(2)/ X'000000FF' / - DATA MASK(3)/ X'00000FFF' / - DATA MASK(4)/ X'0000FFFF' / - DATA MASK(5)/ X'000FFFFF' / - DATA MASK(6)/ X'00FFFFFF' / - DATA MASK(7)/ X'0FFFFFFF' / - DATA MASK(8)/ X'FFFFFFFF' / -C - INTEGER ISTORE(3,2) - DATA ISTORE / 28, 1, 2, - 2 28, 1, 4 / -C ... NSHIFT, NMASK, NID ... - - INTEGER TKEEP(2) -C -C UNPACK "T" AND "N". -C - DO 1 N=1,2 - NSHIFT = ISTORE(1,N) - NMASK = ISTORE(2,N) - NID = ISTORE(3,N) - TKEEP(N)=IAND(MASK(NMASK),ISHFT(ID(NID),-NSHIFT)) - 1 CONTINUE -C - IF ((TKEEP(1) .EQ. 6) .OR. (TKEEP(1) .EQ. 7)) THEN - DTIME_CODE = 1 - GO TO 120 - - ELSE IF (TKEEP(1) .EQ. 10) THEN - DTIME_CODE = 2 - IF (TKEEP(2) .EQ. 15) THEN - WRITE(6,111) -111 FORMAT(1H ,'DT_UNITS: "T" AND "N" INDICATE CONFLICTING ', - A /1H ,' TIME INTERVAL VALUES(CODE OPTS FOR "T").') - - GO TO 120 - ENDIF - GO TO 120 - - ELSE IF (TKEEP(2) .EQ. 15) THEN - DTIME_CODE = 1 - GO TO 120 - - ELSE - DTIME_CODE = 0 - GO TO 120 - ENDIF -C -120 RETURN - END diff --git a/util/sorc/trpanl.fd/wndbrk.f b/util/sorc/trpanl.fd/wndbrk.f deleted file mode 100755 index ed8d240066..0000000000 --- a/util/sorc/trpanl.fd/wndbrk.f +++ /dev/null @@ -1,614 +0,0 @@ - SUBROUTINE WNDBRK( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,IRET_WNB) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: WNDBRK PLOTS WIND DIR AND SPEED AS SHAFT & FLAG -C PRGMMR: SHIMOMURA ORG: NMC412 DATE:96-10-28 -C -C ABSTRACT: PLOTS WIND DIRECTION AND SPEED ON A VARIAN OR FAX MAP AS -C ENTRIES IN THE LABEL FILE. -C ** N O T E : TO MAKE AN EXE LOAD MODULE, WNDBRK MUST BE COMPILE -C ** N O T E : WITH BLOCK DATA WNDCON -C ** (USED TO BE WINCON FOUND 'NMC.PROD.V77GRAPH.SOURCE') -C -C PROGRAM HISTORY LOG: -C 75-04-11 ORIGINAL AUTHOR DENT. -C 86-06-27 MILLER REMOVE ASYNCHRONOUS I/O. -C 86-07-15 MILLER MAKE SURE WIND DIRECTION IS NEVER 0. -C 89-02-21 HENRICHSEN CLEAN UP AND DOCUMENT. -C 90-10-03 HENRICHSEN CONVERT TO FORTRAN 77 -C 96-02-20 SHIMOMURA: CONVERT TO CRAY -C ADDED IRET_WNB RETURN CODE -C 96-10-24 SHIMOMURA: ADD ERASER UNDER BARBS -C 96-10-28 SHIMOMURA: ADJUSTING WIND-FLAG POSITIONING WITH ICORNFLAG -C -C USAGE: CALL WNDBRK( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,IRET_WNB ) -C INPUT ARGUMENT LIST: -C ISTN - ICOORDINATE OF WIND PLOT IN DOTS. -C JSTN - JCOORDINATE OF WIND PLOT IN DOTS. -C KDDGD - WIND DIRECTION TO NEAREST 10 DEGREES. -C ISPEED - WIND SPEED IN KNOTS. -C IOPTN - FLAG TO DETERMINE IF TEMPERATURE AND DEW POINT -C - PLOTS ARE IN THE WAY OF PLOTTING WIND FLAGS. -C -C OUTPUT ARGUMENT LIST: -C NWOK - COUNTER OF NUMBER OF LABELS ADDED TO LABEL ARRAY. -C IRET_WNB - RETURN CODE -C = 0; NORMAL RETURN -C = -1; PARITY ERROR WHILE TRYING TO OUTPUT LABEL ARRAY; -C USER SHOULD ABORT ON THIS SERIOUS I/O ERROR. -C = -2; PUTL_WR::HAFPAKRA: FAILED TO HALF-PACK LABEL ARRAY -C SERIOUS ERROR. USER SHOULD ABORT. LOGIC ERR. -C -C = 1; WNDBRK: WARNING ... BAD IDDGD -C = 2; WNDBRK: WARNING ... BAD ISPEED -C = 3; WNDBRK: WARNING ... BAD CUTOFF VALUE -C = 4; WNDBRK: WARNING ... OUT-OF-RANGE FLAG COUNT -C = 5; WNDBRK: WARNING ... LOCATION OFF MAP -C -C INPUT FILES: -C FT55F001 - LABEL FILE. -C -C OUTPUT FILES: -C FT06F001 - PRINT FILE. -C FT55F001 - LABEL FILE. -C -C REMARKS: BLOCK DATA WNDCON IS USED BY THIS SUBR. -C CALLS SUBR PUTL_WR(), WHICH CALLS SUBR HAFPAKRA() -C CAUTION: CALL SEQ. CHANGE WITH ADDED IRET_WNB -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77. -C MACHINE: CRAY4 -C -C$$$ -C -C - - INTEGER LBLTAP - PARAMETER (LBLTAP=55) - - INTEGER LMAX - PARAMETER (LMAX=1024) - INTEGER LMAX2 - PARAMETER (LMAX2=2*LMAX) - - COMMON /KPLOT/ LABEL,LABIX,NOBUF,IDRA(50) - INTEGER LABEL(2,LMAX) - INTEGER JARRAY(LMAX2) - EQUIVALENCE (JARRAY(1),LABEL(1,1)) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - EXTERNAL WNDCON !... FOR COMMON /WINCON/ -C !... DEFINED IN BLOCK DATA WNDCON - COMMON /WINCON/ KWNDFL(5,36),KWNDDV(5,36),KWNDBA(10,9) - INTEGER KWNDFL - INTEGER KWNDDV - INTEGER KWNDBA - -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C USAGE: CALL WNDBRK( ISTN,JSTN,KDDGD,ISPEED,NWOK,IOPTN,iret_wnb ) -C INPUT ARGUMENT LIST: - INTEGER ISTN,JSTN -C !... I-,J-COORDINATES OF WIND PLOT IN DOTS. - INTEGER KDDGD -C !... WIND DIRECTION TO NEAREST 10 DEGREES. - INTEGER ISPEED -C !... WIND SPEED IN KNOTS. - INTEGER IOPTN -C !... FLAG TO DETERMINE IF TEMPERATURE AND DEW- -C !... POINT PLOTS ARE IN THE WAY OF PLOTTING -C !... WIND FLAGS. -C -C OUTPUT ARGUMENT LIST: - INTEGER NWOK -C !... COUNTER OF NUMBER OF LABELS ADDED TO -C !... LABEL ARRAY. - INTEGER IRET_WNB -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -C - INTEGER IARWUP -C ...WHICH IS 'ARROW-UP' CHAR FONT CHANGE BIT... - DATA IARWUP / X'00010000' / - - INTEGER IPRBA - DATA IPRBA / X'00006000' / -C ...FOR WIND BARBS/STAFF ... PRIORITY = 3, NO 'ARROW-UP' BIT... - - INTEGER IPRFL(2) - DATA IPRFL /X'00014000',X'00018000'/ -C ... WHERE IPRFL IS PRIORITY ASSIGNED TO WIND-FLAG FONT .... -C ... WHICH ARE 'ARROW UP' BIT AND PRIORITY = 2 AND 4 -C ... WHERE IPRFL ALSO INCLUDES ARROW-UP FOR WIND-FLAG FONT ... - - - INTEGER IRUBA - DATA IRUBA / X'01200000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=01 FOR ERASER UNDER FLAG - - INTEGER IRUBB - DATA IRUBB / X'14010000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=20 FOR ERASER UNDER BARB - - INTEGER IRUBC - DATA IRUBC / X'03200000' / -C ...WHICH IS TEXT WORD FOR BLANK FROM FONT=03 FOR ERASER UNDER FLAG - - INTEGER IXXK - DATA IXXK / 5 / -C ...WHICH IS THE XXTH LOOK TABLE BEFORE THE WIND-FLAG FONTS - - INTEGER ICORN - DATA ICORN /0/ - - integer ICORNFLAG(2) - DATA ICORNFLAG / -1, 0 / -C ... WHERE ICORNFLAG(IHEMIS) MOVES NRN HEMI WIND-FLAG LEFTWARD -1 -C ... BUT SRN HEMI WIND-FLAG NEEDS NO ADJ - - INTEGER ILLIM - DATA ILLIM / 10 / - INTEGER IRLIM - DATA IRLIM / 4000 / - INTEGER JLLIM - DATA JLLIM / 1 / - INTEGER JTLIM - DATA JTLIM / 7020 / - -C ... TO CONVERT WIND DIRECTION INT DD INTO AN ASCII CHAR -C ... WHICH WILL GET THE CORRECT BIT-MAPPED CHARAC ... -C ... TO CONVERT A BINARY INT X'01' ==> 'A' -C X'1A' ==> 'Z' -C X'1B' ==> '0' -C X'24' ==> '9' - CHARACTER*1 CTTBL(36) -C ... 01 02 03 04 05 06 07 08 09 ... - DATA CTTBL / 'A','B','C','D','E','F','G','H','I', - 1 'J','K','L','M','N','O','P','Q','R', - 2 'S','T','U','V','W','X','Y','Z','0', - 3 '1','2','3','4','5','6','7','8','9' / -C ... 28 29 30 31 32 33 34 35 36 ... - - INTEGER KDOLR(4) - DATA KDOLR /X'00000000',X'00000000', - X X'00000000',X'00000000'/ -C ...WHICH IS NULL IN 4 BYTE POSITIONS... - - INTEGER KDEWPT - DATA KDEWPT / X'00000008' / -C ...DEW POINT PLOT INFO BIT... - INTEGER KTEMP - DATA KTEMP / X'00000004' / -C ...TEMP PLOT INFO BIT... - - INTEGER KDR220 - DATA KDR220 /22/ - INTEGER KDR260 - DATA KDR260 /26/ - INTEGER KDR300 - DATA KDR300 /30/ -C ...WIND DIR LIMITS OF WIND OVERPLOTTED BY DEW PT, TEMP... - - - INTEGER LGAPK(5,8) - DATA LGAPK / -7,-8,-11,-8,X'09410000', - 1 -9,-7,-11,-8,X'09420000', - 2 -10,-6,-11,-8,X'09430000', - 3 -11,-4,-11,-5,X'07440000', - 4 -11,-2,-11,-5,X'07450000', - 5 -11, 0,-11, 0,X'07460000', - 6 -11, 2,-11, 0,X'07470000', - 7 -10, 4,-11, 0,X'07480000'/ -C ...PENTAPACKED /IGAP,JGAP ORIGIN DISPLACEMENTS FOR OTHER WND PART/ -C ...DI,DJ TO LL FOR GAP FILLER LINE CHAR/LABEL TEXT FOR GAP FILLER/ - - - INTEGER ISDIF(4) - DATA ISDIF / 6, 12, 9, 12 / -C ... DISPLACEMENTS FOR REVERSED WIND FLAGS USED IN SOUTHERN -C ... HEMISPHERE IN ORDER BY FLAG TYPE ... - - INTEGER LSDI(36) - DATA LSDI / +2, +1, +1, +3, +5,+09, +7, +5, +5, - 1 +4, +5, +6,+12,+15,+18,+21,+20,+20, - 2 +20,+21,+18,+15,+14, +7, +6, +6, +5, - 3 +6, +8, +9, +6, +3, +1, +1, +3, +2 / -C -C ... FURTHER DISPLACEMENTS TO ADJUST SOUTHERN HEMISPHERE WIND FLAGS -C - - INTEGER MSK16B - DATA MSK16B / X'0000FFFF' / - - INTEGER MSKI - DATA MSKI / X'00001FFF' / -C ...WHERE MSKI ALLOWS 13 BITS ... - - INTEGER MSKJ - DATA MSKJ / X'00007FFF' / -C ...WHERE MSKJ ALLOWS FOR 15 BITS... - - INTEGER MXKUT - DATA MXKUT / 120 / -C - LOGICAL LPACK_RAQ - LOGICAL LCLEAN_AFTQ - - INTEGER IACC,MQ -C - INTEGER KUTOFF - - INTEGER LABWOK(2,15) - - INTEGER IJWRD_ERAB - INTEGER ITXTWRD_ERAB - -C -C--------------------------------------------------------------------- - SAVE -C - NWOK = 0 - IRET_WNB = 0 - -C ... SET NORTHERN HEMISPHERE FLAG = 1 - IHEMIS = 1 !... NORTHERN HEMISPHERE MODE - IDDGD = KDDGD -C ... IT IS ASSUMED THAT A ZERO OCCURS FOR WIND DIRECTION ONLY -C ... IN THE NORTHERN HEMISPHERE (I.E. IDDGD = +0) - IF ( IDDGD .EQ. 0 ) IDDGD = 36 - IF ( IDDGD .GE. 0 ) GO TO 100 - -C ... OTHERWISE, IDDGD .LT. 0; WHICH FLAGGED SOUTHERN HEMI MODE -C ... SET SOUTHERN HEMISPHERE FLAG = 2 - IHEMIS = 2 !... SOUTHERN HEMISPHERE MODE - IDDGD = IABS(IDDGD) -C ... SAVE FOR POSITIONING FLAGS - LDDSH = IDDGD -C ... IDDSH POINTS TO VECTOR WHICH WHEN REVERSED WILL BE THE -C ... SOUTHERN HEMISPHERE VECTOR FOR IDDGD ... - IDDSH = 36 - IDDGD - IF ( IDDSH .EQ. 0 ) IDDSH = 36 - 100 CONTINUE - IF(IDDGD .GT. 36) GO TO 911 - IF(ISPEED .LT. 0) GO TO 922 - IF(ISPEED .GT. 300) GO TO 922 -C ...STEP (1)... TO DETERMINE NO. OF FLAGS AND NO. OF BARBS...... - FFIVES = (FLOAT(ISPEED))/5.0 - IFIVES = FFIVES + 0.5 -C ...WHICH ROUNDS TO NEAREST 5-KNOT-UNIT AND FIXES - NFLAGS = IFIVES/10 - NBARBS = MOD(IFIVES,10) -C ...WHERE NO. OF BARBS RANGES FROM 0 TO 9 (FOR NONE TO 45K) -C ...STEP(1B) ... TEST FOR MOVING WIND VECTOR PLOT FOR OVERPLOT - IGAP = 0 - JGAP = 0 - IF(NBARBS .LE. 2) GO TO 177 -C -C ... IF WIND DIR LESS THAN 220 DEGREES, THEN SKIP TO 177 ... -C - IF(IDDGD .LT. KDR220) GO TO 177 -C -C ... IF WIND DIR LESS THAN 260 DEGREES, THEN SKIP TO 140 ... -C ... AND CHECK TO SEE IF THE DEW POINT PLOT FLAG IS SET. -C - IF(IDDGD .LT. KDR260) GO TO 140 -C -C ...IF WIND DIR LESS THAN 300 DEGREES, THEN SKIP TO 144 ... -C ... AND CHECK TO SEE IF THE TEMP PLOT FLAG IS SET. -C - IF(IDDGD .LT. KDR300) GO TO 144 - GO TO 177 - - 140 CONTINUE -C ... GET DEW POINT PLOT FLAG ... - IAC3 = IAND(IOPTN,KDEWPT) - IF(IAC3)150,177,150 - - 144 CONTINUE -C ... GET TEMP PLOT FLAG. - IAC4 = IAND(IOPTN,KTEMP) - IF(IAC4) 150,177,150 - 150 CONTINUE -C ...COMES HERE IF WIND BARBS MUST BE MOVED WESTWARD TO NOT OVERPLOT - LLX = IDDGD - KDR220 + 1 - IGAP = LGAPK(1,LLX) - JGAP = LGAPK(2,LLX) - ILL = LGAPK(3,LLX) + ISTN - JLL = LGAPK(4,LLX) + JSTN - ITEXT = LGAPK(5,LLX) - ILL = ILL + ICORN - - IF(ILL .LT. ILLIM) GO TO 955 - IF(ILL .GE. IRLIM) GO TO 955 - IF(JLL .LT. JLLIM) GO TO 955 - IF(JLL .GE. JTLIM) GO TO 955 - - JLL = IAND(JLL,MSKJ) - ILL = IAND(ILL,MSKI) - JLS = ISHFT(JLL,17) - IJLL = IOR(JLS,ILL) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR(IJLL,IPRFL(1)) - LABWOK(2,NWOK) = ITEXT - - 177 CONTINUE - -C ....STEP (2) ... TO GET CUT-OFF CONSTANT FOR BARBS... - NBONE = NBARBS + 1 - IF(IHEMIS .EQ. 2) IDDGD = IDDSH - IHOLD = MOD(IDDGD,9) - IHOLD = IHOLD + 1 - KUTOFF = KWNDBA(NBONE,IHOLD) - IF(KUTOFF .LT. 0) GO TO 933 - IF(KUTOFF .GT. MXKUT) GO TO 933 - IF(IHEMIS .EQ. 2) KUTOFF = -KUTOFF - IACC = IAND(IDDGD,MSK16B) - IACC = ISHFT(IACC,16) - MQ = IAND(KUTOFF,MSK16B) - IACC = IOR(IACC,MQ) - ITEXT = IACC -C ...STAFF INFO PACKED WITH DD IN FIRST 2 BYTES, KUTOFF RIGHT-JUSTIF - -C ...STEP (3)... TO POSITION STAFF WITH LOWER LEFT CORNER.... -C ...KWNDDV FORMAT ... ISTART,JSTART,KWIDTH,KHGT,MXV... - ISTART = KWNDDV(1,IDDGD) - JSTART = KWNDDV(2,IDDGD) - KWIDTH = KWNDDV(3,IDDGD) - IF ( IHEMIS .EQ. 2 ) ISTART = KWIDTH - ISTART - ILL = ISTN - KWIDTH + ISTART - ILL = ILL + IGAP + ICORN - IF(ILL .LT. ILLIM) GO TO 955 - IF(ILL .GE. IRLIM) GO TO 955 - - JLL = JSTN - JSTART + 1 - JLL = JLL + JGAP - IF(JLL .LT. JLLIM) GO TO 955 - IF(JLL .GE. JTLIM) GO TO 955 - - JLL = IAND(JLL,MSKJ) - ILL = IAND(ILL,MSKI) - JLS = ISHFT(JLL,17) - IJLL = IOR(JLS,ILL) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR(IJLL,IPRBA) !... there goes BARBS - LABWOK(2,NWOK) = ITEXT - -C ... insert the eraser under the BARBs ... - IJWRD_ERAB = 0 - IJWRD_ERAB = IOR(IJLL,IARWUP) - ITXTWRD_ERAB = IRUBB - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IJWRD_ERAB !... ERASER UNDER BARB -cc LABWOK(2,NWOK) = ITXTWRD_ERAB -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IF(NFLAGS .LE. 0) GO TO 500 - -C ...OTHERWISE, WE HAVE SOME FLAGS TO POSITION... -C STEP (4)... TO GET FLAG INFO FOR PRTITL -C ...DI TO LL,DJ TO LL,DI TO NEXT FLAG, DJ TO NEXT, FLAG TYPE. - ITYPFL = KWNDFL(5,IDDGD) - ISDI = KWNDFL(1,IDDGD) - IF(IHEMIS .EQ. 2) THEN - ISDI = KWNDFL(1,LDDSH) - ISDIF(ITYPFL) + LSDI(LDDSH) - ENDIF - - ILLFL = ISTN + ISDI - ILLFL = ILLFL + IGAP + ICORN - ILLFL = ILLFL + ICORNFLAG(IHEMIS) - JLLFL = JSTN + KWNDFL(2,IDDGD) - JLLFL = JLLFL + JGAP - IF(ILLFL .LT. ILLIM) GO TO 955 - IF(ILLFL .GE. IRLIM) GO TO 955 - IF(JLLFL .LT. JLLIM) GO TO 955 - IF(JLLFL .GE. JTLIM) GO TO 955 - JLLFL = IAND( JLLFL,MSKJ) - ILLFL = IAND( ILLFL,MSKI) - JLS = ISHFT(JLLFL,17) - IJLFL = IOR(JLS,ILLFL) - IPOSN = IOR(IJLFL,IPRFL(IHEMIS)) - -C ...STEP (5)... TO GET TEXT FOR FLAG - ICLASS = IXXK + KWNDFL(5,IDDGD) -C ...WHERE ICLASS IS USED (R1) AFTER ARROW TO POINT TO TABLE IN PRT - -C ================================================================== - IACC = ISHFT(ICLASS,24) - - MQ = MOVA2I(CTTBL(IDDGD)) !... TRANSLATE DD-BINARY TO ASCII CHAR - IAC2 = ISHFT(MQ,16) !... MOVE TO 2ND BYTE FROM HI-END OF I*2 - IACC = IOR(IACC,IAC2) - ITEXT = IOR(IACC,KDOLR(3)) -C ================================================================== - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IPOSN - LABWOK(2,NWOK) = ITEXT - -C ...TO ERASE UNDER 50K FLAG - IAPCT = IRUBA - ILLER = ILLFL - JLLER = JLLFL - IJLER = IJLFL - -C ... GO TO (415,419,426,424),ITYPFL - IF(ITYPFL .EQ. 1) THEN - ILLER = ILLFL - 2 - IF(ILLER .LE. 0) THEN - ILLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - - ELSE IF(ITYPFL .EQ. 2) THEN - IAPCT = IRUBC - JLLER = JLLFL - 2 - IF(JLLER .LE. 0) THEN - JLLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - - ELSE IF(ITYPFL .EQ. 3) THEN - GO TO 426 - - ELSE IF(ITYPFL .EQ. 4) THEN - IAPCT = IRUBC - ENDIF - GO TO 426 - - 426 CONTINUE - IJLER = IOR(IJLER,IARWUP) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IJLER - LABWOK(2,NWOK) = IAPCT - IF(NFLAGS .LE. 1) GO TO 500 - -C ...STEP (6) TO GET FLAGS FOR 100KT AND UP... - NEXDI = KWNDFL(3,IDDGD) - IF ( IHEMIS .EQ.2 ) NEXDI = -NEXDI - NEXDJ = KWNDFL(4,IDDGD) - MORE = NFLAGS - 1 - IF(MORE .GT. 5) GO TO 944 - DO 433 I=1,MORE - ILLFL = ILLFL + NEXDI - JLLFL = JLLFL + NEXDJ - IF(ILLFL .LT. ILLIM) GO TO 955 - IF(ILLFL .GE. IRLIM) GO TO 955 - IF(JLLFL .LT. JLLIM) GO TO 955 - IF(JLLFL .GE. JTLIM) GO TO 955 - - JLLFL = IAND(JLLFL,MSKJ) - ILLFL = IAND(ILLFL,MSKI) - JLS = ISHFT(JLLFL,17) - IJLFL = IOR(JLS,ILLFL) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR( IJLFL,IPRFL(IHEMIS) ) - LABWOK(2,NWOK) = ITEXT - -C ...NOW FOR THE ERASER UNDER THAT FLAG... - ILLER = ILLER + NEXDI - IF(ILLER .LE. 0) THEN - ILLER = 1 - ENDIF - JLLER = JLLER + NEXDJ - IF(JLLER .LE. 0) THEN - JLLER = 1 - ENDIF - JLS = ISHFT(JLLER,17) - IJLER = IOR(JLS,ILLER) - NWOK = NWOK + 1 - LABWOK(1,NWOK) = IOR(IJLER,IARWUP) - LABWOK(2,NWOK) = IAPCT - 433 CONTINUE -C ...WHEN IT FALLS OUT OF THIS LOOP, ALL FINISHED - GO TO 500 - - 500 CONTINUE -C ...COMES HERE TO TRANSFER FROM LABWOK TO LABEL AND OUTPUT IF NECES - IF((LABIX+NWOK) .LE. LMAX) THEN - DO ISS = 1,NWOK - LABIX = LABIX + 1 - LABEL(1,LABIX) = LABWOK(1,ISS) - LABEL(2,LABIX) = LABWOK(2,ISS) - ENDDO - GO TO 999 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ELSE -C ...OTHERWISE IT WILL EXCEED LABEL BUFFER, SO TEST EACH WORD. - DO 522 ISS = 1,NWOK - LABIX = LABIX + 1 - IF(LABIX .LE. LMAX) THEN - GO TO 520 - - ELSE -C ... OTHERWISE, BIN IS FULL, SO OUTPUT THE FULL BIN -C ... AND CLEAR THE BIN BEFORE PASSING THIS ISS-TH ITEM - WRITE(6,503) - 503 FORMAT(1H ,'WNDBRK: LABEL ARRAY FULL' ) - LCKPT = 503 - LPACK_RAQ = .TRUE. - LCLEAN_AFTQ = .TRUE. -C ... ZERO THE IN-CORE LABEL-ARRAY AFTER WRITING ... -C ... FOR CRAY VERSION, I MUST HALF-PACK BEFORE WRITING, - - CALL PUTL_WR(LBLTAP,NOBUF,JARRAY,LMAX2,LMAX,LPACK_RAQ, - 1 LCLEAN_AFTQ,IRET101) - - IF(IRET101 .NE. 0) THEN - IF(IRET101 .EQ. -1) THEN - GO TO 900 - ELSE - WRITE(6,FMT='(1H ,''WNDBRK::PUTL_WR::HAFPAKRA: '', - 1 ''FAILED WHEN HAF-PACKING LABEL ARRAY'' - 2 )') - IRET_WNB = -2 - GO TO 966 - ENDIF - ENDIF -C - LABIX = 1 - ENDIF - - 520 CONTINUE -C ... TO MOVE THE ISS-TH ITEM FROM LABWOK INTO THE LABEL ARRAY - LABEL(1,LABIX) = LABWOK(1,ISS) - LABEL(2,LABIX) = LABWOK(2,ISS) - 522 CONTINUE - GO TO 999 - ENDIF - GO TO 999 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 900 CONTINUE -C ... PARITY ERROR ON WRITING LABEL TAPE55 ... - WRITE(6,905) LBLTAP,NOBUF,LABIX,LCKPT - 905 FORMAT(1H ,'WNDBRK:PARITY ERROR WRITING LABEL-TAPE',I2, - 1 /1H ,7X,'NOBUF=',I5,'; LABIX=',I5,'; LCKPT=', I3) - - IRET_WNB = -1 - GO TO 966 -C ... - - 911 CONTINUE - IRET_WNB = 1 - WRITE(6,913) IDDGD,ISTN,JSTN,ISPEED - 913 FORMAT(1H ,'WNDBRK ERROR 1...BAD IDDGD = Z ',Z8, 3X, - 1 'AT I/J = Z ', Z8,1H/, Z8, 3X, 'SPEED = Z ',Z8) - GO TO 966 - - 922 CONTINUE - IRET_WNB = 2 - WRITE(6,924) ISPEED, ISTN, JSTN, IDDGD - 924 FORMAT(1H ,'WNDBRK ERROR 2...BAD ISPEED = Z ', Z8, 3X, - 1 'AT I/J = Z ', Z8, 1H/, Z8, 3X, 'IDDGD = ', Z8) - GO TO 966 - - 933 CONTINUE - IRET_WNB = 3 - WRITE(6,935) KUTOFF,ISTN,JSTN,IDDGD,ISPEED - 935 FORMAT(1H ,'WNDBRK ERROR 3...BAD CUTOFF CONST FOR WND STAFF = - 1 Z ', Z8, 3X, 'AT I/J = Z ', Z8,1H/,Z8,3X, 'DIR/SPD = Z', Z8, - 2 1H/, Z8) - GO TO 966 - - 944 CONTINUE - IRET_WNB = 4 - WRITE(6,946) NFLAGS, ISTN,JSTN,IDDGD,ISPEED - 946 FORMAT(1H ,'WNDBRK ERROR 4...OUT-OF-RANGE FLAG COUNT = Z', - 1 Z8, 3X, 'AT I/J = Z ', Z8,1H/,Z8,3X,'DIR/SPD = Z ', Z8, - 2 1H/, Z8) - GO TO 966 - 955 CONTINUE -C COMES TO 955 IF I/J IS OUT OF RANGE OF MAP - IRET_WNB = 5 - WRITE(6,957) ISTN, JSTN, IDDGD, ISPEED - 957 FORMAT(1H ,'WNDBRK ERROR 5...LOCATION OFF MAP. ISTN = Z ', - 1 Z8, 3X, 'JSTN = Z ', Z8, 3X, 'DIR/SPD = Z ', Z8, 1H/, Z8) - GO TO 966 - 966 CONTINUE - NWOK = 0 - GO TO 999 - - 999 CONTINUE - RETURN - END diff --git a/util/sorc/trpsfcmv.fd/compile_trpsfcmv_wcoss.sh b/util/sorc/trpsfcmv.fd/compile_trpsfcmv_wcoss.sh deleted file mode 100755 index 23474483ea..0000000000 --- a/util/sorc/trpsfcmv.fd/compile_trpsfcmv_wcoss.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec -make -mv trpsfcmv ../../exec -make clean diff --git a/util/sorc/trpsfcmv.fd/gdas_trpsfcmv.f b/util/sorc/trpsfcmv.fd/gdas_trpsfcmv.f deleted file mode 100755 index 4679e7a7a5..0000000000 --- a/util/sorc/trpsfcmv.fd/gdas_trpsfcmv.f +++ /dev/null @@ -1,1852 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: TRPSFCMV -C PRGMMR: KEYSER ORG: NP22 DATE: 2001-02-09 -C -C ABSTRACT: -C Plots the following in the tropical strip: analyzed wind -C barbs and temperatures at several hundred locations, contours of -C 1000 mb analyzed streamfunction, gridded winds, station plots -C and tropical cyclone positions. It uses NCAR graphics to -C produce a metafile which is rasterized in subsequent program -C executions. It also generates titles and hurricane bulletin -C text (if needed) for processing by the Bedient packer. The -C gross job flow is gendata --> redsat --> trpsfcmv ---> -C ictrans ----> ras2bity ----> sixbit2 (bedient packer) ---> and -C out the door to OSO, NCDC, TPC and FAX. Input is current GLOBAL -C SPECTRAL MODEL ANALYSIS winds in GRIB on type 3 (1x1) grids and -C also station coordinates and observed parameters (temp, dewpoint, -C pressure, tendancy, windspeed, and direction for plotting by -C NOAA graphics (with superior fonts) downstream. The station -C coordinate file is an AFOS PLOTFILE with all linefeeds (Z'0d') -C removed by subroutine afosread. The station coordinates are -C converted to pixel values for downstream use by the bedient -C packer. -C -C PROGRAM HISTORY LOG: -C 1996-12-18 George VandenBerghe Original ancestor code -C 1996-12-31 George VandenBerghe Documented -C 1997-01-30 George VandenBerghe Made grib errors fatal. (stop 17) -C 1997-04-30 George VandenBerghe Removed grid station -C interpolation, NCAR station plotting, changed to -C mercator plot of single streamfunction, added -C streamfunction generator, grid plot, lat/lon -C labels, contouring capability, AFOS plotfile -C read capability, and code to write putlab input -C for downstream use by a new station plotter in -C the bedient packer. Also changed name. -C 1998-08-10 Dennis Keyser Modified format for reading -C tcvitals records to prevent the ocassional -C failures that were occurring when previous -C program QCTROPCY writes a 'C' into character 65 -C of the record. This (climatology indicator) is -C a rare occurrence (format not changed if maxwind -C happens to be > 99 m/s (not sure this is even -C possible). -C 1999-01-25 Krishna Kumar Modified the code to run on IBM -C RS/6000 SP system. -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. -C 2013-03-12 Krishna Kumar Ported this code from IBM RS/6000 SP system -C to INTEL WCOSS system -C -C USAGE: -C INPUT FILES: -C unit 11 - GFS 00 hour GRIB forecast file containing grib type -C - 3 u, and v grids -C unit 12 - Grib index to above -C unit 31 - optional quality controlled hurricane text bulletins -C ( in $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -C and $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL) -C unit 38 - Satellite low level wind observations -C unit 43 - AFOS station plotfile with linefeeds -C unit 44 - AFOS station plotfile (sans linefeeds) -C (see output file list) -C -C OUTPUT FILES: -C gmeta - implicitly opened as fortran unit 2 by ncar -C package -C unit 06 - standard output print -C unit 74 - text file containing tropical cyclone bulletin info -C unit 87 - AFOS station plotfile sans linefeeds to be -C read later in this program as unit 44 -C unit 88 Map title for downstream use by bedient packer -C unit 89 putlab argument file used by bedient packer. -C -C -C SUBPROGRAMS CALLED: -C UNIQUE: - closen openn get3 qcnt afosread -C - l2p cg mpr fill ccpllb -C - color sfill stream3 ridctlm afix -C - satread redsat dayowk i3to53 i53to3 -C - i3to8 hbull -C LIBRARY: -C NCAR GRAPHICS: -C - mappos wmsetr wmseti wmgetr maptra -C - pcseti plccmq plchmq wmbarb gslwsc -C - gsclip mapsti mapstc maproj mapset -C - mapdrw cpseti cpsetr gopks gopwk -C - gacwk gdawk gclwk gclks setusv -C - mapros dpseti frame gsln stream3 -C - sfnorm sfsetr hlsrgb gclwk gclks -C - gsfaci gscr gfa gsclip gsfais -C - cprect cppkcl plchhq cpcldr cplbdr -C - gdawk -C W3LIB - getgb w3fp11 getgb1 errexit w3tagb -C - w3tage putgb -C IPLIB - ipolates makgds -C SPLIB - sptrunv -C BACIO - baopen baclos -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C 179 - Grib error on input or index file (unwise to -C continue -C =NNNN - system only -C -C REMARKS: IBM NCAR graphics are in /usrx/local/ncar401 -C CAVEAT requires ncar graphics version 4.0 or above -C as of this writing -C setenv NCARG_ROOT /usr/local/ncar4.0 -C setenv PATH "$PATH":/usr/local/ncar4.0/bin -C (or the bourne/korn analogs) -C handles this; only the first setenv is required -C but the other will likely be -C needed by ictrans downstream -C -C The latitude to pixel coordinate converter -C assumes a 6912x6912 domain and that -C a 6912x1728 slice will be cut horizontally -C out of the domain downstream. The slice -C is then supposed to be rotated 90 degrees -C counterclockwise so that the long axis becomes -C the y axis maximizing fax paper use. This code -C cannot detect if these assumptions are -C in fact met downstream, if not, stations -C will be plotted in incorrect locations. -C The algorithm is however NOT sensitive to -C map projection. -C -C ATTRIBUTES: -C LANGUAGE: Fortran 90 -C MACHINE: IBM -C -C$$$ - - PROGRAM TRPSFCMV - - parameter(nsta=124) - character*3 cmonth(12) - data cmonth/'JAN','FEB','MAR','APR','MAY','JUN','JUL', - 1 'AUG','SEP','OCT','NOV','DEC'/ - dimension f3(360,181) - character*4 ctemp,cday - character*3 cdir - character*80 ctext - character*80 ctext2,ctext3 - character*4 cda - COMMON/PACKRA/IRAS(10) - common/oth/u(70,40),v(70,40),rlats(nsta),rlons(nsta), - 1 up(nsta),vp(nsta),tp(nsta) -c paraMETER (RMNLON=-0.,RMXLON=359., - paraMETER (RMNLON=-0.,RMXLON=359., - 1 RMNLAT=-60.,RMXLAT=60.) - dimension kds(25) - dimension rl(2),rl2(2),rl3(2),rl4(2) - data rl,rl2,rl3,rl4/rmnlat,0.,rmxlat,0., - 1rmnlon,0.,rmxlon,0./ - dimension grid(360,181) - dimension g2(360,121),z2(360,121) - dimension u2(360,121), v2(360,121) - dimension f53(117,51) - character*40 ctit - dimension ifeet(8) - character*132 mtitle -c - character*11 envvar ! for ibm_sp_6000 - character*80 fileg,filegi ! for ibm_sp_6000 -c - CALL W3TAGB('TRPSFCMV',2001,0038,0059,'NP22') - 6 continue -c -c****** added for ibm_sp_6000 -c - lun=11 - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lun - call getenv(envvar,fileg) - call baopenr(lun,fileg,iret) -c - luni=12 - write(envvar(5:6),fmt='(I2)') luni - call getenv(envvar,filegi) - call baopenr(luni,filegi,iret) -c -c****** -c - call openn -c - do 777 imap=1,1 - if(imap .gt. 1) then - lun=13 - luni=14 - endif - do 1 k=1,25 - 1 kds(k)=-1 - ix=360 - iy=121 -c do 1000 ,ll=1,1,-1 - call mappos (0.0,1.0,0.0,1.0) -C get streamfunction - call stream3(1000,-1,11,12,grid) - pi=3.1415927 - sin45=sqrt(2.)/2 - omega=2*pi/86400. - g=9.81 - fcoril=2*omega*sin45 - factor=fcoril/g - factor=factor/10. -C** CONVERT TO METERS - do k=1,360 - do j=1,121 - g2(k,j)=grid(k+0,152-j ) * factor - end do - end do -c** -c get temperature (fossil code) -c** get u for wind barbs - kds(5)=33 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - u2(k,j)=grid(k+0,152-j ) * 1.93 - end do - end do -c** -c** get v for wind barbs - kds(5)=34 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - v2(k,j)=grid(k+0,152-j )*1.93 - end do - end do -c** - call cpseti('CIS',3) - call gslwsc(2.0) - call qcnt (g2,ix,iy,rl,rl2,rl3,rl4,mtitle) - call hbull - call cpseti('CIS',3) - call gsln(0) - call cg( g2,ix,iy,1) - call cpseti('CIS',5) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - irr=1 - flat=40. - flon=270. - do 14,k=1,120,5 - call gslwsc (1.0) - do 14,l=1,360,5 - if (irr .eq. 1) then - irr=2 - else - irr=1 - endif - if(irr .eq. 1) then - if(l.eq.1)then - l2=l - k2=k - else - l2=l-1 - k2=k - endif - else - if(l.eq.1)then - l2=l - k2=k - else - l2=l-1 -c k2=k+1 - k2=k - endif - endif - flon=l2 - flat=k2-61. - call maptra(flat,flon,uu,vv) - iflat=flat+5. - if(iflat .lt. 0) then - write(ctemp,1087)-iflat - 1087 format(i2,x,'S') - else - write(ctemp,1088) iflat - 1088 format(i2,x,'N') - endif -c call plchmq( uuf,vvf,ctemp,1.,0.,0.) - call gslwsc(1.0) -c write(102,*) flat,flon,uu,vv,u2(l2,k2),v2(l2,k2) - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - print*,'l2,k2 in Main TRPSFCMV = ',l2,k2 - call wmbarb(uu,vv,-u2(l2,k2),-V2(L2,K2)) - 14 continue - do 15,lat=-60,60,30 - do 15 lon=27,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 15 continue - do 16,lat=-33,60,30 - do 16 lon=0,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - 1089 format(i3,'E') - 1091 format(i3,'W') - else - write(ctemp,1091)(360-lon) - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 16 continue - write(ctext,193)'TROPICAL SURFACE ANALYSIS VALID' - call DAYOWK(IRAS(8),IRAS(9),IRAS(10),idayy,cday) -c USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) - write(ctext2,194)iras(7),cday,cmonth(iras(9)),iras(8),iras(10) - write(88,1961)ctext,ctext2 - write(ctext3,196)'STREAM FUNCTION AND GRID WINDS' - write(79,1962)ctext2 - 1962 format(a30) - 196 format(a30) - 1961 format('STRIP ',' ',2a30) - 194 format(i2,'Z',x,a4,x,a3,x,i2,x,i4) - 193 format(a25,x,i2,'Z' ,i2,'/',i2,'/',i4) - call maptra(28.,230.,uu,vv) - call maptra(-12.,230.,uu2,vv2) - call maptra(-32.,270.,uu3,vv3) - call maptra(-32.,320.,uu4,vv4) - call maptra(-32.,80.,uu5,vv5) - call gslwsc(4.0) - call gslwsc(1.0) - do 17,lat=-37,60,10 - do 17 lon=0,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - else - write(ctemp,1091)(360-lon) - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 17 continue - do 18,lat=-60,60,10 - do 18 lon=2,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 18 continue - do 19,lon=1,360,1 - do 19,lat=-60,60,1 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) -c call plchlq(uu,vv,'.',1.,0.,0.) - 19 continue - call gsln(4) -c call cg(z2,ix,iy,2) - call gsln(1) - call frame - 777 continue - call baclose(11,iret) - call baclose(12,iret) - call closen - CALL W3TAGE('TRPSFCMV') - stop - end -c -c************************************************************** -c - subroutine mpr(flat,flon) - call maptra(flat,flon,u,v) - print 101,flat,flon,u,v - 101 format('lat lon ' , 4f15.5) - return - end -c -c************************************************************** -c - subroutine qcnt(grid,ix,iy,rl,rl2,rl3,rl4,mtitle) - character*132 mtitle - integer (kind=8) ibb1,ibb2 - common/staa/ibitz - Data ibb1/Z'F0F0F0F0F0f0ffff'/ - data ibb2/Z'F0F0F0F0F0f0aa55'/ - dimension grid(ix,iy) - dimension rl(2),rl2(2),rl3(2),rl4(2) - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) -c dimension RLAT1(2), RLAT2(2), RLON1(2), RLON2(2) - dimension grid2 (ix,iy) - common/icc/icount - common/ctrxxx/junk1,jink2,iflag - iflag=0 - Rmnlon=rl3(1) - rmxlon=rl4(1) - rmnlat=rl(1) - rmxlat=rl2(1) - icount = 0 !modified for ibmsp - do 1 k=1,ix - do 1 j=1,iy -c grid2(k,(iy+1-j))=(grid(k,j)) - grid2(k,j)=grid(k,j) -c grid2(k,j)=(grid(k,j)-273)*1.8 +32 -c z(k,j)=k+j**2 - 1 continue - CALL GSCLIP (0) -C -C Draw Lat/Lon lines at 10 degree intervals. -C Draw political & continental outlines. -C - CALL MAPSTI ('GR - GRID',90) - CALL MAPSTC ('OU - OUTLINE DATASET','CO') -C -C Draw a Satellite view over the United States -C - CALL MAPROJ ('ME - SATELLITE-VIEW',00.,-180.,00.) -c CALL MAPROJ ('CE - SATELLITE-VIEW',0.,0.,00.) -c CALL MAPSET ('MA',RLAT1,RLON1,RLAT2,RLON2) -c call mapset('MA',rlatmin,rlonmin,rlatmax,rlonmax) -C -C Don't draw a square around the globe -C - CALL MAPSTI ('PE - PERIMETER FLAG', 0) -C -C Draw map. -C -c call gslwsc(4.0) -c HEAVY HEAVY - call setusv('LW',4000) - CALL MAPDRW -c read synoptic data from AFOS PLOTFILE - call afosread -c read satellite winds directly from bufr input on unit 10 -c call satread - call setusv('LW', 1000) - CALL MAPSTI ('GR - GRID',10) - CALL MAPSTC ('OU - OUTLINE DATASET','PS') - CALL MAPDRW - - CALL CPSETI ('SET - DO SET-CALL FLAG',0) - CALL CPSETR ('DPV - DASH PATTERN VECTOR SIZE',.0010) - call DPSETI('PCF',0) -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - - CALL CPSETI ('MAP - MAPPING FLAG',1) - call cpsetr('XC1',rmnlon) - call cpsetr('XCM',rmxlon) - call cpsetr('YC1',rmnlat) - call cpsetr('YCN',rmxlat) - ibitz=ibb1 -c call cg(grid2,ix,iy) - ibitz=ibb2 -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C -c CALL GDAWK (1) -c CALL GCLWK (1) -c CALL GCLKS -c CALL W3TAGE('TRPSFCMV') -c STOP -c hunt for centers - do 2 k=5,ix-4 - do 2 j=5,iy-4 - lat=-61+j - lon=k-1 - gradck=2.2 - fmin=grid2(k,j) - fmax=grid2(k,j) - do 4 kk=k-4,k+4 - do 4 jj=j-4,j+4 - if(grid2(kk,jj) .lt. fmin) fmin=grid2(kk,jj) - if(grid2(kk,jj) .gt. fmax) fmax=grid2(kk,jj) -c 1 grid2(k,j) .lt. grid2(k+1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k-1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j+1)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j-1)-gradck .and. -c 2 grid2(k,j) .lt. grid2(k+2,j) .and. -c 2 grid2(k,j) .lt. grid2(k-2,j) .and. -c 2 grid2(k,j) .lt. grid2(k,j+2) .and. -c 2 grid2(k,j) .lt. grid2(k,j-2) -c 3 ) then - 4 continue - if( (fmax-fmin) .lt. gradck) go to 2 - if (fmin .eq. grid2(k,j) .or. fmax .eq. grid2(k,j)) then - flat=lat - flon=lon - call maptra(flat,flon,uu,vv) - if (flat .gt. 0.) then - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - else - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - endif - endif - 2 continue - call satread - return - END -c -c************************************************************** -c - SUBROUTINE FILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) - - DIMENSION XWRK(*),YWRK(*),IAREA(*),IGRP(*) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .GT. 0) THEN -cC -C If the area is defined by 3 or more points, fill it -C - CALL GSFACI(IAREA3+2) - CALL GFA(NWRK,XWRK,YWRK) - ENDIF - -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine cg(zreg,ix,iy,ifld) -C - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) - - real ZREG(ix,iy) - - EXTERNAL COLOR -C -C Call Conpack color fill routine - do k=1,ix -ckumar print *,' zreg',(zreg(k,j),j=1,iy,5) - end do -C - CALL CCPLLB(ZREG,ix,iy,COLOR,IWKID,ifld) -C - - RETURN - END -c -c************************************************************** -c - SUBROUTINE CCPLLB(ZREG,MREG,NREG,COLOR,IWKID,ifld) - common/staa/ibitz - common/windz/u2(360,121),v2(360,121) - common/oth/u(70,40),v(70,40),rlats(65),rlons(65),up(65),vp(65) - PARAMETER (LRWK=50000,LIWK=50000,LMAP=900000,NWRK=50000,NOGRPS=6) - REAL ZREG(MREG,NREG),RWRK(LRWK), XWRK(NWRK), YWRK(NWRK) - INTEGER MREG,NREG,IWRK(LIWK) - INTEGER MAP(LMAP),IAREA(NOGRPS),IGRP(NOGRPS) - integer ibts(16,300) - DATA IBTS / 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, - 1 1600*0, - 1 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 2 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, - 3 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, - 4 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 5 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, - 6 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 7 160*0, 2928*0 / ! modified for ibmsp - EXTERNAL FILL -c data ibitz/Z'F0F0F0F0F0F03333'/ - external sfill - EXTERNAL CPDRPL - EXTERNAL COLOR -C -C Set fill style to solid and turn off clipping -C - CALL GSFAIS(1) - CALL GSCLIP(0) -C -C Set up label box options -C -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - NOCL=300 - CALL CPSETI('LLP - LINE LABEL POSITIONING FLAG',4) -c CALL CPSETI('LLB - LINE LABEL BOX FLAG',4) - CALL CPSETI('LLB - LINE LABEL BOX FLAG',3) - CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',3) -c CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',4) - CALL CPSETI('ILB - INFORMATIONAL LABEL BOX FLAG',0) - CALL CPSETI('LBC - LABEL BOX COLOR INDEX',1) -c call cpseti('CIS',6) -cc call cpseti('LIS',1) - call cpseti('LIS',100) - call cpseti('LLP',2) - CALL CPSETR ('ORV - OUT-OF-RANGE VALUE',1.E12) - call cpsetr('RC1',0.15) - call cpsetr('LLS',0.00002) - call cpsetr('RC2',0.15) - call cpsetr('LLW',0.00001) -c call cpsetr('HLW',0.001) -c call cpsetr('HLS',0.002) - call cpsetr('HLW',0.0000001) - call cpsetr('HLS',0.0000002) - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - CALL CPPKCL (ZREG, RWRK, IWRK) - CALL CPGETI('NCL - NUMBER OF CONTOUR LEVELS',NCL) - DO 111 I=1,NCL - CALL CPSETI('PAI - PARAMETER ARRAY INDEX',I) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('AIA - AREA IDENTIFIER ABOVE',0) - CALL CPSETI('AIB - AREA IDENTIFIER BELOW',0) - 111 CONTINUE - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('NCL - NUMBER OF CONTOUR LEVELS',NCL+2) - CALL CPSETI ('PAI',ncl+1) - call cpsetr('CLV',0.0) - call cpseti('AIB',5) - call cpseti('AIA',0) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - if(zreg(50,50) .lt. 500) then -c CALL CPSETI ('PAI',ncl+2) -c call cpsetr('CLV',15.0) -c call cpseti('AIB',0) -c call cpseti('AIA',6) - endif -c call cpsetr('CLV',55.0) -c call cpseti('AIB',6) -c call cpseti('AIA',0) - DO 11 I=1,ncl - ivarv=ibitz - print 198,ivarv - 198 format(z16) -c CALL CPSETI('PAI - PARAMETER ARRAY INDEX',i) -c CALL CPSETI('CLD - CONTOUR LINE DASH PATTERN', -c + ivarv) - 11 continue - CALL COLOR(NCL+1,IWKID) - call PCSETI('CC',0) - - -C -C Draw Perimeter -C -c CALL CPBACK(ZREG, RWRK, IWRK) - call gslwsc(1.0) -C -C Initialize Areas -C -cc CALL ARINAM(MAP, LMAP) -C -C Add label boxes to area map -C -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(1) -c cc CALL CPLBAM(ZREG, RWRK, IWRK, MAP) -C -C Draw Labels -C - call gsln(0) -c CALL CPLBDR(ZREG, RWRK, IWRK) -C -C Add contours to area map -C -c CALL CPCLAM(ZREG, RWRK, IWRK, MAP) - call gslwsc(3.0) -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(4) - call cpcldr(zreg,rwrk,iwrk,map,cpdrpl) -c NEW LINE - call gslwsc(2.0) - call cplbdr(zreg,rwrk,iwrk) - -c call cpcldm(zreg,rwrk,iwrk,map,cpdrpl) -c call gsln (1) -C -C Fill contours -C -c CALL ARSCAM(MAP, XWRK, YWRK, NWRK, IAREA, IGRP, NOGRPS, SFILL) - 99 continue - CALL WMSETR('WBS',0.004) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - RETURN - END -c -c************************************************************** -c - SUBROUTINE COLOR (N,IWKID) -C -C BACKGROUND COLOR -C -C -C BLACK -C - CALL GSCR(IWKID,0,0.,0.,0.) -C -C First foreground color is white -C - CALL GSCR(IWKID,1,1.,1.,1.) -C -C Second foreground color is gray -C - CALL GSCR(IWKID,2,0.5,0.5,0.5) -C -C Choose other foreground colors spaced equally around the spectrum -C - ICNT=0 - HUES=360./N -C -C REDLN is intended to be the line between red and violet values -C - REDLN=36.0 - LAP=INT(REDLN/HUES) - DO 10, I=1,N - XHUE=I*HUES - CALL HLSRGB(XHUE,60.,75.,RED,GREEN,BLUE) -C -C Sort colors so that the redest is first, and violetest is last -C - IF (XHUE.LE.REDLN) THEN - CALL GSCR(IWKID,(N+2)-(LAP-I),RED,GREEN,BLUE) - ICNT=ICNT+1 - ELSE - CALL GSCR(IWKID,I-ICNT+2,RED,GREEN,BLUE) - ENDIF - 10 CONTINUE - - RETURN - END -c -c************************************************************** -c - SUBROUTINE SFILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) -C - REAL XWRK(*),YWRK(*),ISCR(5000) - INTEGER IAREA(*),IGRP(*),RSCR(5000) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .eq. 5) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 0.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF - IF (IAREA3 .eq. 6) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 90.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine i3to53(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i53to3(F53,F3) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - logical log3(360,181) - equivalence (lo_03,log3) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - - do k=1,360 - log3(k,1)=.FALSE. - log3(k,181)=.FALSE. - end do - ibi=0 -cc define 360x181 grid - call makgds(53,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(3,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,jo53,ji2,1, - 1 ibi,lo_03,F53,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F3,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i3to8(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(116,44) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(8,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine closen -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C - CALL GDAWK (1) - CALL GCLWK (1) - CALL GCLKS - return - end -c -c************************************************************** -c - subroutine openn -C OPEN GKS, OPEN WORKSTATION OF TYPE 1, ACTIVATE WORKSTATION -C - CALL GOPKS (6,IDUM) - CALL GOPWK (1, 2, 1) - CALL GACWK (1) - return - end -c -c************************************************************** -c - Subroutine get3(lun,luni,jpds,a2,c132) -CKUMAR common/grbpds/kpds - COMMON/PACKRA/IRAS(10) -c array is an NMC GRIB TYPE 3 field on output -c jpds is set in the CALLER!! except for fields 1-3 - dimension array(360,181),a2(360,181) - dimension jpds(25),jgds(25) - dimension grib(360,181) - dimension kpds(25),kgds(25) - character*132 c132 - logical lb(360,181) - jf=360*181 -CKUMAR jflag=-1 - jflag=0 - kf=jf -c jpds(2)=77 - jpds(1)=7 -c jpds(3)=104 - jpds(3)=3 - print 101,lun,luni - print 109,(jpds(ll),ll=1,25) - 109 format(5z17) - print*,'kpds = ',kpds(1:20) - print*,'jpds = ',jpds(1:20) -CKUMAR call getgb1(lun,luni,jf,jflag,jpds,jgds, -CKUMAR 1 grib,kf,k,kpds,kgds,lb,array,ier) - call getgb(lun,luni,jf,jflag,jpds,jgds, - 1 kf,k,kpds,kgds,lb,array,ier) - print*,'kpds = ',kpds(1:20) - print*,'ier after getgb ',ier -c if ( ier .ne. 0) then -c CALL W3TAGE('TRPSFCMV') -c call errexit(99) -c endif - call w3fp11(grib,grib(2,1),c132,ierr) - print 106,k,c132 - 106 format(i6, 'LAB ',a132) - print 101,ier,k,kf - if(ier .ne.0 ) then - CALL W3TAGE('TRPSFCMV') - call errexit(9999) - endif - print 102,(array(90,k),k=1,181) - 102 format(10f8.2) - 101 format(i9) -cj do 45,k=1,181 -c do 45,j=1,360 -c 45 if(j .gt. 70 .or. k .gt. 70) array(j,k)=array(70,70) -c SET IRAS VARIABLES - iras(1)=kpds(14) - iras(7)=kpds(11) - iras(8)=kpds(10) - iras(9)=kpds(9) -C This should generate the proper 4-digit year no matter what!! - mcen=max(0,kpds(21)-1) - iras(10)=mcen*100+kpds(8) - if(iras(10) .le. 20) then - iras(10)=iras(10)+2000 - else if(iras(10).le.99) then - iras(10)=iras(10)+1900 - end if -c iras(3)=iras(7) -c iras(4)=iras(8) -c iras(5)=iras(9) -c iras(6)=iras(10) -c flip type 3 grid - do k=1,181 - do j=1,360 -c a2(j,182-k)=array(j,k) - a2(j,k)=array(j,k) - end do - end do - return - end -c -c************************************************************** -c - Subroutine stream3(mbars,itime,lupgb,lupgi,F3) -c -c George VandenBerghe 11/17/96 -c -c subroutine to accept pressure level (mbars), -c grib unit number (lupgb), and grib index unit -c number (lupgi) and read u, and v wind fields, -c at mbars, and calculate stream function. Stream -c function is stored in F3 and returned to caller. -c The Grib fields on lupgb MUST be grib type 3 (360x181) -c fields. These are output automatically by the NCEP -c GFS forecast model. -c These stream functions are dimensionally correct -c m**2/sec streamfunctions -c 11/17/96 add on !! -c logic added to handle tropopause level. Passing -c in pressure as 7 mbars tells code to wildcard -c pressure and take tropopause level values - parameter(im=360,jm=181,km=16) - dimension F3(im,jm) - dimension iprs(km) - integer kpds(100), kgds(100) - integer jpds(100), jgds(100) - logical lbms(im*jm), luv, ldz, lps - real u(im,jm), v(im,jm), psi(im,jm),chi(im,jm) - data iromb/0/,maxwv/126/,idrti/0/,imaxi/360/,jmaxi/181/ - data idrto/0/,imaxo/360/,jmaxo/181/,kmax/1/ - data iprime/0/,iskipi/0/,jskipi/0/,kspipi/0/ - data iskipo/0/,jskipo/0/,kspipo/0/,jcpu/0/ -c --- coordinate testing code - x1=50 - y1=60 - x2=180 - y2=60 - x3=180 - y3=120 - - luv = .False. - ldz = .False. - lps = .True. - ijm = im * jm - fim = im - lskip=-1 - k=0 - do jj = 1, 100 - jpds(jj) = -1 - enddo - do jj = 1, 20 - jgds(jj) = -1 - enddo - jpds(5) = 33 - jpds(6) = 100 - jpds(7) =mbars - jpds(14)=itime -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,u,iret) -c print *,' KPDS AFTER U' -c print 189,kpds - if(iret.ne.0) then - print *, ' iret =', iret - print *, ' k =', k - print *, kpds - endif - jpds(5) = 34 - jpds(6) = 100 - jpds(7) = mbars -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,v,iret) - if(iret.ne.0) then - print *, ' iret =', iret - print *, ' k =', k - print *, kpds - endif - call SPTRUNV(IROMB,MAXWV,IDRTI,IMAXI,JMAXI, - & IDRTO,IMAXO,JMAXO,KMAX, - & IPRIME,ISKIPI,JSKIPI,KSKIPI, - & ISKIPO,JSKIPO,KSKIPO,JCPU,U,V, - & LUV,GRIDUO,GRIDVO,LDZ,GRIDDO,GRIDZO, - & LPS,chi,psi) - print 109,k - 109 format(' K is ',i9) -c - do j=1,jm - do k=1,im - f3(k,j)=psi(k,j) - end do - end do - kpds(5)=35 -c print *,' KPDS to be put' -c print 189,kpds - 189 format(5Z20) -c WRITE THE STREAMFUNCTIONS TO UNIT 51!! -c call putgb(51,ijm,kpds,kgds,lbms,f3,iret) -c end write - if(iret .ne. 0) print *, - 1 ' WARNING PUT OF STREAMFUNCTION FAILED return code ', iret, - 1 ' from putgb ' - print *,' FEW STREAMS',psi(50,50),psi(100,100) - 990 continue - return - end -c -c************************************************************** -c - subroutine afosread -c field 4 time (4 digits) -c field 5 name ( 5 digits) -c field 6 sky cover i A aircraft S sat M missing -c7 field 7 wind ddfff -c field 8 pressure (mb*10. significant digits) -c field 9,10 temp and dew -c 11 present weather (code or text) -c 12 visibility -c 13 pressure change -c 14 barograoh trace (code table 12) -c 15 low/middle/high cloud -c 16 precip -c 17 remarks -c lat lon are 18 and 19 -c 20 ship course and speed - dimension points(100000,2) - character*160 cline - character*160 cout - integer icom(20) - character*8 ccom(20),cf -c - do nn=1,2 - do mm=1,100000 - points(mm,nn)=0 - enddo - enddo -c - call ridctlm - do k=1,20 - ccom(k)=' ' - end do -c - open(44,file='afosplot') -c -c do jjj=1,2 -c read(44,101)cline -c enddo -c - do 10000 kkk=1,100000 - 101 format(a160) - read(44,101,end=999,err=997) cline - write(85,101) cline -c print 101,cline -c find the commas - idx=1 - is=1 - cf=' ' - ico=0 - do 10,k=1,160 - if(cline(k:k) .eq. ',' .or.cline(k:k).eq.';') then - ico=ico+1 - print*,'ico = in AFOSREAD ',ico -c - if(ico.ge.40) then - print *,' MORE THAN 40 COMMAS in line in AFOSREAD',kkk - go to 10000 - endif -c - print*,'ico before icom array in AFOSREAD = ',ico -ckumar - if(ico.le.20) then - icom(ico)=k - ccom(ico)=cf - cf=' ' - idx=1 - endif -ckumar - if(cline(k:k) .eq. ';') go to 19 - else - cf(idx:idx)=cline(k:k) - idx=idx+1 -c - if(idx .gt. 8) then - print *,' MORE THAN 8 blanks between commas in line ',kkk - go to 10000 - endif -c - endif - 10 continue - 19 continue - do k=1,20 - if(ccom(k) .eq. ' ') ccom(k)='-9999 ' - end do - do k=1,5 - if(ccom(15)(k:k).eq.'/') ccom(15)(k:k)='0' - end do - if(ccom(6)(8:8).eq. 'M') ccom(6)='-9999 ' - if(ccom(6)(1:1).eq. 'M') ccom(6)='-9999 ' - if (kkk .lt. 5) print 129,ccom - 119 format(i3,a3,20i3) - read(ccom(7),179)id,isp - 179 format(i3,i2) - read(ccom(9),149)itemp - read(ccom(6),149) icover - read(ccom(11),149) iwx - if(iwx .gt.99 .or. iwx .lt.0) iwx=-9999 - print *,' ICOVERC',icover - read(ccom(10),149)idew - read(ccom(18),159)ilat - read(ccom(15),149)icloud - if(icloud .gt. 0) print *,' ICLUD',icloud - read(ccom(19),169)ilon - read(ccom(8),149) ipres - read(ccom(14),149)itrace - read(ccom(13),149) itend - if (ccom(18)(4:4) .eq. 'S') ilat=-ilat - if(ccom(19)(5:5) .eq.'W') ilon=-ilon+3600. - flat=(ilat+0.5)/10. - flon=(ilon+0.5)/10. - call maptra(flat,flon,uu,vv) - if(id.eq.-99)id=-999 - dir=id - theta=(90-dir)*3.1415927/180. - u=cos(theta)*isp - v=sin(theta)*isp - dir=dir-90. - if(dir .le. 0) dir=dir+360 - if(flat .lt. 0) dir=-dir - id=dir - ilat=flat - ilon=floN - points(kkk,1)=400. - points(kkk,2)=400. - do 39,l=1,kkk-1 - xd=(points(l,1)-ilat)*2.0 - yd=points(l,2)-ilon - sargg=xd**2 + yd**2 -c write(102,*)' square root ',kkk,sargg - if(sargg .lt. 0.) then - write(102,*)' negative square root potential ',kkk,sargg - go to 10000 - endif -c - dist=sqrt(xd**2 + yd**2) -c dist=sqrt( (points(l,1)-ilat)**2 + (points(l,2)-ilon)**2) - if (dist .lt. 3.9) go to 10000 - if(ccom(3)(1:1) .eq. '7') go to 10000 -c if (dist .lt. 0.5) go to 10000 - 39 continue - points(kkk,1)=ilat - points(kkk,2)=ilon - 149 format(i8) - 159 format(i3) - 169 format(i4) - print *,'STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - if(iwx .gt. 0) - 1 print *, - 1 'WX STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - call l2p(flat,flon,iprx,ipry) - if(iprx .lt. -9999. .or. iprx .gt. 9999 .or. - 1 ipry .lt. -9999 . .or. ipry .gt. 9999) - 1 go to 10000 - write(89,105)'STATION PLOT', - 1 iprx,ipry,itemp,idew,ipres,itend,id,isp,icover,iwx,itrace,icloud - 1 ,ccom(5) - 1 ,ccom(18),ccom(19) -c 1 iprx,ipry,itemp,idew,ipres,itend,id,isp -c 1 iprx,ipry,itemp,idew,ilon,ilat,id,isp,icover,ccom(5) - 105 format(a16,12i5,x,3a9) - 139 format(96x,2i8) - 129 format(20a8) -10000 continue - print *,'WARNING, INPUT AFOS PLOTFILE NOT EXHAUSTED' - 997 continue -c print *,' ENDED DATA WITH ERROR' - 999 continue - return - end -c -c************************************************************** -c - subroutine l2p(flat,flon,iprx,ipry) - call maptra(flat,flon,uu,vv) - fx=cufx(uu) - fy=cufy(vv) - px=6912*fx -c1 py=-6912*(fy-.625555555) - py=-6912*(fy-.575555555) - iprx=py - ipry=px - print *,'L2P ', 'flat,flon,px,py,iprx,ipry', - 1 flat,flon,px,py,iprx,ipry - return - end -c -c************************************************************** -c - subroutine ridctlm -c remove all ctlm characters from fort.43 and write to fort.87 - dimension jstat(100) -c is=stat('fort.43',jstat) -c lnn=jstat(8) - read(5,101)lnn - 101 format(i10) - print*,'file size of fort.43 ',lnn - call afix(lnn) - return - end -c -c************************************************************** -c - subroutine afix(lnn) - character*1 bytes(lnn) - integer (kind=8) ip - data ip/Z'0D'/ ! CTRL-M - character*1 c1(8) - equivalence(c1,ip) -ckumar - open(43,file='NHPLOT',access='direct',recl=1280) -c - na=1 ; nb=1280 -c - nrec=lnn/1280 - print*,'In afix lnn & nrec : ',lnn,nrec -c - do ir=1,nrec - read(43,rec=ir)bytes(na:nb) - na=na+1280 - nb=nb+1280 -ckumar print*,'In afix ir, na & nb ',ir,na,nb - enddo -c - do 10,k=1,lnn - if(bytes(k) .eq. c1(8)) bytes(k)=' ' - 10 continue -c - write(87) bytes - close(87) - return - end -c -c************************************************************** -c - -C DATA SET DAYOWK AT LEVEL 001 AS OF 04/16/93 - SUBROUTINE DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DAYOWK FIND NUMERICAL DAY OF WEEK. -C PRGMMR: HENRICHSEN ORG: NMC41 DATE:93-05-11 -C -C ABSTRACT: GIVEN DAY MONTH AND YEAR AS INTEGERS RETURN DAY OF WEEK AS -C AND INTEGER NUMBER AND AS FOUR CHARACTER HOLLERTH TEXT. -C -C PROGRAM HISTORY LOG: -C 84-MM-DD WICK -C 85-MM-DD HENRICHSEN REMOVE OLD KEY PUNCH CHARACTERS AND CLEAN UP. -C 87-12-10 HENRICHSEN CONVERT TO VS FORTAN 77. -C -C USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C INPUT ARGUMENT LIST: -C IDAY - INTEGER TWO DIGET DAY OF MONTH( 1 THRU 31 ). -C IMONTH - INTEGER TWO DIGET MONTH OF YEAR( 1 THRU 12). -C IYEAR - INTEGER TWO OR FOUR DIGET YEAR. -C IYEAR SHOULD BE THE COMPLETE FOUR DIGIT YEAR. -C IF ONLY LAST 2 DIGITS OF YEAR ARE GIVEN, -C ASSUMES 20TH CENTURY... -C -C OUTPUT ARGUMENT LIST: -C IDAYWK - INTEGER NUMBER OF DAY OF WEEK ( 1 THRU 7 ). -C IHDAYW - CHARACTER*4 WORD CONTAINING THE THE THREE LETTER -C - DAY OF THE WEEK LEFT JUSTIFED IN THE WORD. -C - IE 'MON ', .... 'FRI ', .... 'SUN '. -C ERRFLAG - ERROR OF OUT OF RANGE ARGUEMENT IS INDICATED BY THE -C - RESULTING IDAYWK = 0, AND IHDAYW = BLANKS. -C -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C FT06F001 - ERROR PRINT WHEN ARGUEMENTS OUT OF RANGE. -C -C REMARKS: NONE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ - CHARACTER*4 IHDAYW - CHARACTER*4 ITEXT(2) - CHARACTER*4 KHDAY(7) - CHARACTER*4 KLANK - CHARACTER*4 NHDAY(2) - CHARACTER*4 NHMON(2) - CHARACTER*4 NHYR(2) -C - INTEGER KCEN(5) - INTEGER KDAYS(12) - INTEGER MONTAB(12) -C - DATA KHDAY /'SUN ','MON','TUE ', - 1 'WED ','THU ','FRI ','SAT '/ - DATA KLANK /' '/ - DATA NHDAY /'DAY ',' '/ - DATA NHMON /'MONT','H '/ - DATA NHYR /'YEAR',' '/ -C - DATA KCEN /4,2,0,6,4/ - DATA KDAYS /31,29,31,30,31,30,31,31,30,31,30,31/ - DATA MONTAB /1, 4, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6/ -C - IDAYWK = 0 - IHDAYW = KLANK - ISFEB = 0 - IDA = IDAY - IMO = IMONTH - IYR = IYEAR - IF(IMO) 911,911,122 - 122 IF(IMO .GT. 12) GO TO 911 - IF(IDA) 922,922,133 - 133 IF(IDA .GT. KDAYS(IMO)) GO TO 922 - ICENT = IYR / 100 - IYR2 = IYR - 100 * ICENT - IF(ICENT) 933,140,144 - 140 CONTINUE -C ...IF ONLY LAST 2 DIGITS OF YR WERE GIVEN, ASSUME ITS 1900 + - ICENT = 19 - IYR = IYR + 1900 - 144 CONTINUE - ICENTX = ICENT - 16 - IF(ICENTX) 933,933,155 - 155 IF(ICENTX .GT. 5) GO TO 933 -C ...THE GIVEN DATE INFO IS W/I RANGE... - ISUM = KCEN(ICENTX) + IYR2 +IYR2/4 + MONTAB(IMO) + IDA - IF(IMO - 2) 222,211,611 -C ...OTHERWISE, THIS IS JAN OR FEB, SO CHECK FOR LEAP YR... - 211 ISFEB = 1 - 222 CONTINUE - IF(MOD(IYR,4)) 533,511,533 -C ...MOST LIKELY A LEAP YR. TEST FOR CENTURY YR... - 511 CONTINUE - IF(IYR2)522,515,522 - 515 CONTINUE - IF(MOD(IYR,400))533,522,533 -C ...COMES TO 522 IF LEAP YR CORRECTION IS NEEDED... - 522 CONTINUE - ISUM = ISUM - 1 - GO TO 611 - 533 CONTINUE -C ...COMES TO 533 IF NOT A LEAP YR, SO IF FEB, MUST RETEST IDA... - IF(ISFEB)544,611,544 - 544 CONTINUE -C ...THIS IS FEB OF A NON-LEAP YR. - IF (IDA .GE. KDAYS(2)) GO TO 922 - GO TO 611 - 611 CONTINUE - IDAW = MOD(ISUM,7) - IF(IDAW) 644,633,644 - 633 CONTINUE - IDAW = 7 - GO TO 644 - 644 CONTINUE - IDAYWK = IDAW - IHDAYW = KHDAY(IDAW) - RETURN -C - 911 CONTINUE -C ...COMES HERE IF GIVEN MONTH OUT-OF-RANGE... - ITEXT(1) = NHMON(1) - ITEXT(2) = NHMON(2) - GO TO 955 - 922 CONTINUE -C ...COMES HERE IF GIVEN DAY OUT-OF-RANGE - ITEXT(1) = NHDAY(1) - ITEXT(2) = NHDAY(2) - GO TO 955 - 933 CONTINUE -C ...COMES HERE IF GIVEN YR OUT OF RANGE - ITEXT(1) = NHYR(1) - ITEXT(2) = NHYR(2) - GO TO 955 - 955 CONTINUE - PRINT 956, ITEXT(1),ITEXT(2),IDAY,IMONTH,IYEAR - 956 FORMAT(1H0,10X,'ERROR EXIT FROM DAYOWK. GIVEN ', A4, A1, 1X, - X 'OUT-OF-RANGE', /1H0,15X,'IDAY = Z', Z8, 4X,'IMONTH = Z', - X Z8, 4X, 'IYEAR = Z', Z8) - RETURN - END -c -c************************************************************** -c - subroutine satread -c READS SATELLITE WIND DATA AND DRAWS WIND BARBS -c ON ANY NCAR GRAPHICS PLOTTING FRAME WITH LATLON -c FRAME MAPPING DEFINED (general for weather plots) - dimension ary(6) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - do 10,k=1,9999999 - read(38,101,end=99)ary - 101 format(6x,6f10.4) - flat=ary(1) - flon=ary(2) - dir=ary(4) - speed=ary(5) - qcm=ary(6) - u=speed*sin(dir*3.1415927/180.) - v=speed*cos(dir*3.1415927/180.) - call maptra(flat,flon,uu,vv) -c print *,'calling wmbarb',uu,vv,u,v - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - call wmbarb(uu,vv,u,v) - call plchhq(uu,vv,':F19:c',1.5,0.,0.) -c call plchhq(uu,vv,':F22:C',9.5,0.,0.) - 10 continue - 99 continue - return - end -c -c************************************************************** -c - subroutine hbull -c reads quality controlled hurricane bulletins from either: -c $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -c $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL -c and writes putlab call information and box drawing -c information for use downstream by bedient packing -c and drawing program sixbitb2. Input is fortran -c unit 31 and output is fortran unit 74. - -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. - - - COMMON/PACKRA/IRAS(10) - - character*10 names(16) - character*128 clines(100) - character*128 cline - character*128 dumy2k - character*10 cname - character*13 cdate - character*2 c2 - character*80 cout,cnull - - print *, ' ' - print *, ' ===> ENTERING SUBROUTINE HBULL' - print *, ' ' - - write(c2,'(i2.2)') iras(7) - - cnull='NO TROPICAL CYCLONE ACTIVITY REPORTED' - icount=0 - icounta=0 - klines=0 - names='xxxxxxxxxx' - - do k=1,100 - read(31,fmt='(a128)',end=9) cline - -C AT THIS POINT WE DO NOT KNOW IF A 2-DIGIT YEAR BEGINS IN COLUMN 20 -C OF THE RECORD (OLD NON-Y2K COMPLIANT FORM) OR IF A 4-DIGIT YEAR -C BEGINS IN COLUMN 20 (NEW Y2K COMPLIANT FORM) - TEST ON LOCATION OF -C LATITUDE N/S INDICATOR TO FIND OUT ... - - if(cline(35:35).eq.'N' .or. - . cline(35:35).eq.'S') then - -C ... THIS RECORD STILL CONTAINS THE OLD 2-DIGIT FORM OF THE YEAR - -C ... THIS PROGRAM WILL CONVERT THE RECORD TO A 4-DIGIT YEAR USING THE -C "WINDOWING" TECHNIQUE SINCE SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 2-digit year "',cline(20:21),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - DUMY2K(1:19) = cline(1:19) - IF(cline(20:21).GT.'20') THEN - DUMY2K(20:21) = '19' - ELSE - DUMY2K(20:21) = '20' - ENDIF - DUMY2K(22:128) = cline(20:126) - cline = DUMY2K - PRINT *, ' ' - PRINT *, '==> 2-digit year converted to 4-digit year "', - . cline(20:23),'" via windowing technique' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - ELSE IF(cline(37:37).eq.'N' .OR. - . cline(37:37).eq.'S') THEN - -C ... THIS RECORD CONTAINS THE NEW 4-DIGIT FORM OF THE YEAR -C ... NO CONVERSION NECESSARY SINCE THIS SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 4-digit year "',cline(20:23),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - PRINT *, '==> No conversion necessary' - PRINT *, ' ' - ELSE - PRINT *, ' ' - PRINT *, '***** Cannot determine if this record contains ', - . 'a 2-digit year or a 4-digit year - skip it and try ', - . 'reading the next record' - PRINT *, ' ' - CYCLE - END IF - - clines(k)=cline - klines=k - enddo - - 9 continue - - LOOP1: do k=klines,1,-1 - cline=clines(k) - print *, ' ' - print *, 'Look at record: ',cline - print *, ' ' - - LOOP1n1: do j=1,16 - -c look for same name and time - - if(cline(29:30) .ne. c2) then - print *, ' ' - print *, 'Do not process this record because its hour ', - . '(=',cline(29:30),') is different than the ', - . 'cycle hour (=',c2,')' - print *, ' ' - cycle LOOP1 - endif - if(cline(6:6) .eq. '8' .or. cline(6:6) .eq. '9') then - print *, ' ' - print *, 'Do not process this record because it is a ', - . 'test storm, storm id =',cline(6:7) - print *, ' ' - cycle LOOP1 - endif - if(names(j) .eq. cline(10:19) .and. - . names(j) .ne. 'NAMELESS' ) then - print *, ' ' - print *, 'Do not process this record because it has a', - . ' name that has already been processed (name=', - . cline(10:19),')' - print *, ' ' - cycle LOOP1 - endif - print *, ' ' - print *, 'NAMES ',cline(10:19),names(j) - print *, ' ' - enddo LOOP1n1 - - LOOP1n2: do j=1,16 - -c assign new name - - print *, ' ' - print *, 'threeloop' - print *, ' ' - if(names(j) .eq. 'xxxxxxxxxx' ) then - names(j)=cline(10:19) - cname=cline(10:19) - cdate=cline(20:32) - -c - On rare occasions, upstream program QCTROPCY can stamp a 'C' into -c character 67 - this had resulted in a failure in this program -c (note 104 format). Change by Keyser (08/10/1998) uses 9104 format -c if mwind < 100 . - - if(cline(67:67).eq.'1') then - read(cline,104)latd,lond,idir,isp,icp,mwind - 104 format(33x,i3,2x,i4,x,i4,i4,x,i4,10x,i3) - else - read(cline,9104)latd,lond,idir,isp,icp,mwind -9104 format(33x,i3,2x,i4,x,i4,i4,x,i4,11x,i2) - end if - flat=latd/10. - flon=lond/10. - fdir=idir - fsp=isp/10. - central_pressure=icp - - write(cout,105) cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - ic=530+10*j - iatl=0 - ipac=0 - if(lond -latd .lt. 800) iatl =1 - if(lond-latd .gt. 720 .and. latd .lt. 150) ipac=1 - if(lond-latd .gt. 800 ) ipac=1 - -c test for atlantic or Pacific storm - - if(iatl .eq. 1) then - icounta=icounta+1 - ic=icounta*20+620 -ccccc ic=icounta*20+520 - write(74,114) 'PUTLA ',ic, - . '6420 01.0 90.0 038 1 0 0 ',cout(1:80) - endif - if(ipac .eq. 1) then - icount=icount+1 - ic=icount*20+520 - write(74,114) 'PUTLA ',ic, - . '4201 01.0 90.0 038 1 0 0 ',cout(1:80) - endif -ccccc write(74,114) 'PUTLA ',ic,'4201 04.0 90.0 080 1 0 0 ', -ccccc. cout(1:80) - 114 format(a6,i5,a27,a80) - print 105, cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - 105 format(a10,x,a13,x,f4.1,a1,x,f5.1,a1,x,a3,f6.0,x,a3,f5.1, - . a5,x,f6.1,' MB',i3,'M/SEC' ) - if(cline(37:37).eq. 'S') flat=-flat - if(cline(43:43).eq. 'W') flon=360-flon - call maptra(flat,flon,uu,vv) - if ((mwind*2.24) .gt. 38) then - call plchhq(uu,vv,':F35:m',7.5,0.,0.) - else - call plchhq(uu,vv,':F30:TD',2.0,0.,0.) - call plchhq(uu,vv,':F37:S',6.0,0.,0.) - endif - if((mwind*2.24) .gt. 74.) then - -c close hurricane symbol with black fill - - call plchhq(uu,vv-0.005,':F37:Z',4.5,0.,0.) - endif - call gslwsc(3.0) - call plchmq(uu+0.02,vv-0.055,cname,2.5,0.,0.) - call gslwsc(1.0) - exit LOOP1n2 - endif - enddo LOOP1n2 - enddo LOOP1 -ccccc isizea=(icounta+1)/2 +2 - isize=(icount+1)/2 +2 - isize=icount+2 - isizea=icounta+2 - if(isize .eq. 2) then - write(74,114)'PUTLA ',540,'4201 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isize=isize+1 - print *, cnull(1:80) - endif - if(isizea .eq. 2) then - write(74,114)'PUTLA ',640,'6420 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isizea=isizea+1 - print *, cnull(1:80) - endif - write(74,115)'BOX ',510,4190,isize,25 - write(74,115)'BOX ',610,6401,isizea,25 - 115 format(a4,2i5,i5,i5) - - print *, ' ' - print *, ' ===> LEAVING SUBROUTINE HBULL' - print *, ' ' - - return - - end - -c************************************************************** - diff --git a/util/sorc/trpsfcmv.fd/getgb1.f b/util/sorc/trpsfcmv.fd/getgb1.f deleted file mode 100755 index 706e8813c8..0000000000 --- a/util/sorc/trpsfcmv.fd/getgb1.f +++ /dev/null @@ -1,222 +0,0 @@ - SUBROUTINE GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS, - & GRIB,KF,K,KPDS,KGDS,LB,F,IRET) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: GETGB1 FINDS AND UNPACKS A GRIB MESSAGE -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 94-04-01 -C -C ABSTRACT: FIND AND UNPACK A GRIB MESSAGE. -C READ AN ASSOCIATED GRIB INDEX FILE (UNLESS IT ALREADY WAS READ). -C FIND IN THE INDEX FILE A REFERENCE TO THE GRIB MESSAGE REQUESTED. -C THE GRIB MESSAGE REQUEST SPECIFIES THE NUMBER OF MESSAGES TO SKIP -C AND THE UNPACKED PDS AND GDS PARAMETERS. (A REQUESTED PARAMETER -C OF -1 MEANS TO ALLOW ANY VALUE OF THIS PARAMETER TO BE FOUND.) -C IF THE REQUESTED GRIB MESSAGE IS FOUND, THEN IT IS READ FROM THE -C GRIB FILE AND UNPACKED. ITS MESSAGE NUMBER IS RETURNED ALONG WITH -C THE UNPACKED PDS AND GDS PARAMETERS, THE UNPACKED BITMAP (IF ANY), -C AND THE UNPACKED DATA. IF THE GRIB MESSAGE IS NOT FOUND, THEN THE -C RETURN CODE WILL BE NONZERO. -C -C PROGRAM HISTORY LOG: -C 94-04-01 IREDELL -C 95-05-10 R.E.JONES ADD ONE MORE PARAMETER TO GETGB AND -C CHANGE NAME TO GETGB1 -C -C USAGE: CALL GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS, -C & GRIB,KF,K,KPDS,KGDS,LB,F,IRET) -C INPUT ARGUMENTS: -C LUGB LOGICAL UNIT OF THE UNBLOCKED GRIB DATA FILE -C LUGI LOGICAL UNIT OF THE UNBLOCKED GRIB INDEX FILE -C JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK -C J INTEGER NUMBER OF MESSAGES TO SKIP -C (=0 TO SEARCH FROM BEGINNING) -C (<0 TO REOPEN INDEX FILE AND SEARCH FROM BEGINNING) -C JPDS INTEGER (25) PDS PARAMETERS FOR WHICH TO SEARCH -C (=-1 FOR WILDCARD) -C LOOK IN DOC BLOCK OF W3FI63 FOR ARRAY KPDS -C FOR LIST OF ORDER OF UNPACKED PDS VALUES. IN -C MOST CASES YOU ONLY NEED TO SET 4 OR 5 VALUES -C TO PICK UP RECORD. -C JGDS INTEGER (22) GDS PARAMETERS FOR WHICH TO SEARCH -C (ONLY SEARCHED IF JPDS(3)=255) -C (=-1 FOR WILDCARD) -C OUTPUT ARGUMENTS: -C GRIB GRIB DATA ARRAY BEFORE IT IS UNPACKED -C KF INTEGER NUMBER OF DATA POINTS UNPACKED -C K INTEGER MESSAGE NUMBER UNPACKED -C (CAN BE SAME AS J IN CALLING PROGRAM -C IN ORDER TO FACILITATE MULTIPLE SEARCHES) -C KPDS INTEGER (25) UNPACKED PDS PARAMETERS -C KGDS INTEGER (22) UNPACKED GDS PARAMETERS -C LB LOGICAL (KF) UNPACKED BITMAP IF PRESENT -C F REAL (KF) UNPACKED DATA -C IRET INTEGER RETURN CODE -C 0 ALL OK -C 96 ERROR READING INDEX FILE -C 97 ERROR READING GRIB FILE -C 98 NUMBER OF DATA POINTS GREATER THAN JF -C 99 REQUEST NOT FOUND -C OTHER W3FI63 GRIB UNPACKER RETURN CODE -C -C SUBPROGRAMS CALLED: -C BAREAD BYTE-ADDRESSABLE READ -C GBYTE UNPACK BYTES -C FI632 UNPACK PDS -C FI633 UNPACK GDS -C W3FI63 UNPACK GRIB -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY C916/256, J916/2048 -C -C$$$ -C - PARAMETER (MBUF=8192*128) - PARAMETER (LPDS=23,LGDS=22) -C - INTEGER JPDS(25),JGDS(*),KPDS(25),KGDS(*) - INTEGER IPDSP(LPDS),JPDSP(LPDS),IGDSP(LGDS) - INTEGER JGDSP(LGDS) - INTEGER KPTR(20) -C - LOGICAL LB(*) -C - REAL F(*) -C - CHARACTER CBUF(MBUF) - CHARACTER*81 CHEAD(2) - CHARACTER*1 CPDS(28) - CHARACTER*1 CGDS(42) - CHARACTER*1 GRIB(*) - INTEGER IBUF(60) - EQUIVALENCE (IBUF(1), CBUF(1)) -C -C SAVE LUX,NSKP,NLEN,NNUM,CBUF - SAVE -C - DATA LUX/0/ - print *, LUGB,LUGI,JF,J,JPDS, - & KF,K,KPDS,IRET -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C READ INDEX FILE - IF(J.LT.0.OR.LUGI.NE.LUX) THEN -C REWIND LUGI -C READ(LUGI,fmt='(2A81)',IOSTAT=IOS) CHEAD - CALL BAREAD(LUGI,0,162,ios,chead) - print *, ios, CHEAD(1)(42:47) - IF(IOS.EQ.162.AND.CHEAD(1)(42:47).EQ.'GB1IX1') THEN - LUX=0 - READ(CHEAD(2),'(8X,3I10,2X,A40)',IOSTAT=IOS) NSKP,NLEN,NNUM - print *, IOS, NSKP,NLEN,NNUM - IF(IOS.EQ.0) THEN - NBUF=NNUM*NLEN - IF(NBUF.GT.MBUF) THEN - PRINT *,'GETGB1: INCREASE BUFFER FROM ',MBUF,' TO ',NBUF - NNUM=MBUF/NLEN - NBUF=NNUM*NLEN - ENDIF - CALL BAREAD(LUGI,NSKP,NBUF,LBUF,CBUF) -C call byteswap(CBUF, 8, LBUF/8) - print *, (ibuf(1), i=1, 20) - IF(LBUF.EQ.NBUF) THEN - LUX=LUGI - J=MAX(J,0) - ENDIF - ENDIF - ENDIF - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C SEARCH FOR REQUEST - LGRIB=0 - KJ=J - K=J - KF=0 - IF(J.GE.0.AND.LUGI.EQ.LUX) THEN - LPDSP=0 - DO I=1,LPDS - IF(JPDS(I).NE.-1) THEN - LPDSP=LPDSP+1 - IPDSP(LPDSP)=I - JPDSP(LPDSP)=JPDS(I) - ENDIF - ENDDO - LGDSP=0 - IF(JPDS(3).EQ.255) THEN - DO I=1,LGDS - IF(JGDS(I).NE.-1) THEN - LGDSP=LGDSP+1 - IGDSP(LGDSP)=I - JGDSP(LGDSP)=JGDS(I) - ENDIF - ENDDO - ENDIF - IRET=99 - DOWHILE(LGRIB.EQ.0.AND.KJ.LT.NNUM) - KJ=KJ+1 - LT=0 - IF(LPDSP.GT.0) THEN - CPDS=CBUF((KJ-1)*NLEN+26:(KJ-1)*NLEN+53) - KPTR=0 - call byteswap(CBUF, 4, LBUF/4) - print *,KJ, NLEN, IBUF - CALL GBYTE(CBUF,KPTR(3),(KJ-1)*NLEN*8+25*8,3*8) - call byteswap(CBUF, 4, LBUF/4) - print *, KPTR, KJ, LGRIB, NNUM, LT, LPDSP - print *, CPDS - CALL FI632(CPDS,KPTR,KPDS,IRET) - print *, KPDS - DO I=1,LPDSP - IP=IPDSP(I) - LT=LT+ABS(JPDS(IP)-KPDS(IP)) - print *, i, ip, JPDS(IP), KPDS(IP) - ENDDO - ENDIF - IF(LT.EQ.0.AND.LGDSP.GT.0) THEN - CGDS=CBUF((KJ-1)*NLEN+54:(KJ-1)*NLEN+95) - KPTR=0 - CALL FI633(CGDS,KPTR,KGDS,IRET) - DO I=1,LGDSP - IP=IGDSP(I) - LT=LT+ABS(JGDS(IP)-KGDS(IP)) - print *, i, ip, JGDS(IP), KGDS(IP), LT - ENDDO - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C READ AND UNPACK GRIB DATA - print *, 'test', LT - IF(LT.EQ.0) THEN - call byteswap(CBUF, 4, LBUF/4) - CALL GBYTE(CBUF,LSKIP,(KJ-1)*NLEN*8,4*8) - CALL GBYTE(CBUF,LGRIB,(KJ-1)*NLEN*8+20*8,4*8) - call byteswap(CBUF, 4, LBUF/4) -c call byteswap(LSKIP, 8, 1) -c call byteswap(LGRIB, 8, 1) - CGDS=CBUF((KJ-1)*NLEN+54:(KJ-1)*NLEN+95) - KPTR=0 - print *, CGDS, LSKIP, LGRIB - CALL FI633(CGDS,KPTR,KGDS,IRET) -C BSM IF(LGRIB.LE.200+17*JF/8.AND.KGDS(2)*KGDS(3).LE.JF) THEN -C Change number of bits that can be handled to 25 - IF(LGRIB.LE.200+25*JF/8.AND.KGDS(2)*KGDS(3).LE.JF) THEN - CALL BAREAD(LUGB,LSKIP,LGRIB,LREAD,GRIB) - IF(LREAD.EQ.LGRIB) THEN - CALL W3FI63(GRIB,KPDS,KGDS,LB,F,KPTR,IRET) - IF(IRET.EQ.0) THEN - K=KJ - KF=KPTR(10) - ENDIF - ELSE - IRET=97 - ENDIF - ELSE - IRET=98 - ENDIF - ENDIF - print *, 'test', LGRIB, KJ, NNUM - ENDDO - ELSE - IRET=96 - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RETURN - END diff --git a/util/sorc/trpsfcmv.fd/makefile b/util/sorc/trpsfcmv.fd/makefile deleted file mode 100755 index 4eba68b9c3..0000000000 --- a/util/sorc/trpsfcmv.fd/makefile +++ /dev/null @@ -1,30 +0,0 @@ -SHELL=/bin/sh -# -SRCS= trpsfcmv.f getgb1.f - -OBJS= trpsfcmv.o getgb1.o - -FC = ifort -# XLIBS=/usr/lib64 - -LDFLAGS = -L${NCARG_LIB} \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS= ${IP_LIB4} ${SP_LIB4} ${W3EMC_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${BUFR_LIB8} - -CMD = trpsfcmv -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -qopenmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) - -clean: - -rm -f $(OBJS) diff --git a/util/sorc/trpsfcmv.fd/makefile.theia b/util/sorc/trpsfcmv.fd/makefile.theia deleted file mode 100755 index 4eba68b9c3..0000000000 --- a/util/sorc/trpsfcmv.fd/makefile.theia +++ /dev/null @@ -1,30 +0,0 @@ -SHELL=/bin/sh -# -SRCS= trpsfcmv.f getgb1.f - -OBJS= trpsfcmv.o getgb1.o - -FC = ifort -# XLIBS=/usr/lib64 - -LDFLAGS = -L${NCARG_LIB} \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS= ${IP_LIB4} ${SP_LIB4} ${W3EMC_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${BUFR_LIB8} - -CMD = trpsfcmv -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -qopenmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) - -clean: - -rm -f $(OBJS) diff --git a/util/sorc/trpsfcmv.fd/makefile.wcoss_cray b/util/sorc/trpsfcmv.fd/makefile.wcoss_cray deleted file mode 100755 index 18cbb20d4b..0000000000 --- a/util/sorc/trpsfcmv.fd/makefile.wcoss_cray +++ /dev/null @@ -1,30 +0,0 @@ -SHELL=/bin/sh -# -SRCS= trpsfcmv.f getgb1.f - -OBJS= trpsfcmv.o getgb1.o - -FC = ifort -XLIBS=/usr/lib64 - -LDFLAGS = -L${NCARG_LIB} -L${XLIBS} \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS= ${IP_LIB4} ${SP_LIB4} ${W3EMC_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${BUFR_LIB8} - -CMD = trpsfcmv -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -qopenmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) - -clean: - -rm -f $(OBJS) diff --git a/util/sorc/trpsfcmv.fd/makefile.wcoss_dell_p3 b/util/sorc/trpsfcmv.fd/makefile.wcoss_dell_p3 deleted file mode 100755 index 4eba68b9c3..0000000000 --- a/util/sorc/trpsfcmv.fd/makefile.wcoss_dell_p3 +++ /dev/null @@ -1,30 +0,0 @@ -SHELL=/bin/sh -# -SRCS= trpsfcmv.f getgb1.f - -OBJS= trpsfcmv.o getgb1.o - -FC = ifort -# XLIBS=/usr/lib64 - -LDFLAGS = -L${NCARG_LIB} \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS= ${IP_LIB4} ${SP_LIB4} ${W3EMC_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${BUFR_LIB8} - -CMD = trpsfcmv -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -qopenmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) - -clean: - -rm -f $(OBJS) diff --git a/util/sorc/trpsfcmv.fd/trpsfcmv.f b/util/sorc/trpsfcmv.fd/trpsfcmv.f deleted file mode 100755 index b2b20d742b..0000000000 --- a/util/sorc/trpsfcmv.fd/trpsfcmv.f +++ /dev/null @@ -1,1962 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: TRPSFCMV -C PRGMMR: KEYSER ORG: NP22 DATE: 2001-02-09 -C -C ABSTRACT: -C Plots the following in the tropical strip: analyzed wind -C barbs and temperatures at several hundred locations, contours of -C 1000 mb analyzed streamfunction, gridded winds, station plots -C and tropical cyclone positions. It uses NCAR graphics to -C produce a metafile which is rasterized in subsequent program -C executions. It also generates titles and hurricane bulletin -C text (if needed) for processing by the Bedient packer. The -C gross job flow is gendata --> redsat --> trpsfcmv ---> -C ictrans ----> ras2bity ----> sixbit2 (bedient packer) ---> and -C out the door to OSO, NCDC, TPC and FAX. Input is current GLOBAL -C SPECTRAL MODEL ANALYSIS winds in GRIB on type 3 (1x1) grids and -C also station coordinates and observed parameters (temp, dewpoint, -C pressure, tendancy, windspeed, and direction for plotting by -C NOAA graphics (with superior fonts) downstream. The station -C coordinate file is an AFOS PLOTFILE with all linefeeds (Z'0d') -C removed by subroutine afosread. The station coordinates are -C converted to pixel values for downstream use by the bedient -C packer. -C -C PROGRAM HISTORY LOG: -C 1996-12-18 George VandenBerghe Original ancestor code -C 1996-12-31 George VandenBerghe Documented -C 1997-01-30 George VandenBerghe Made grib errors fatal. (stop 17) -C 1997-04-30 George VandenBerghe Removed grid station -C interpolation, NCAR station plotting, changed to -C mercator plot of single streamfunction, added -C streamfunction generator, grid plot, lat/lon -C labels, contouring capability, AFOS plotfile -C read capability, and code to write putlab input -C for downstream use by a new station plotter in -C the bedient packer. Also changed name. -C 1998-08-10 Dennis Keyser Modified format for reading -C tcvitals records to prevent the ocassional -C failures that were occurring when previous -C program QCTROPCY writes a 'C' into character 65 -C of the record. This (climatology indicator) is -C a rare occurrence (format not changed if maxwind -C happens to be > 99 m/s (not sure this is even -C possible). -C 1999-01-25 Krishna Kumar Modified the code to run on IBM -C RS/6000 SP system. -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. -C 2017-10-17 Boi Vuong Added IOSTAT control specifier in formatted -C read statements for checking bad winds data -C -C USAGE: -C INPUT FILES: -C unit 11 - GFS 00 hour GRIB forecast file containing grib type -C - 3 u, and v grids -C unit 12 - Grib index to above -C unit 31 - optional quality controlled hurricane text bulletins -C ( in $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -C and $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL) -C unit 38 - Satellite low level wind observations -C unit 43 - AFOS station plotfile with linefeeds -C unit 44 - AFOS station plotfile (sans linefeeds) -C (see output file list) -C -C OUTPUT FILES: -C gmeta - implicitly opened as fortran unit 2 by ncar -C package -C unit 06 - standard output print -C unit 74 - text file containing tropical cyclone bulletin info -C unit 87 - AFOS station plotfile sans linefeeds to be -C read later in this program as unit 44 -C unit 88 Map title for downstream use by bedient packer -C unit 89 putlab argument file used by bedient packer. -C -C -C SUBPROGRAMS CALLED: -C UNIQUE: - closen openn get3 qcnt afosread -C - l2p cg mpr fill ccpllb -C - color sfill stream3 ridctlm afix -C - satread redsat dayowk i3to53 i53to3 -C - i3to8 hbull -C LIBRARY: -C NCAR GRAPHICS: -C - mappos wmsetr wmseti wmgetr maptra -C - pcseti plccmq plchmq wmbarb gslwsc -C - gsclip mapsti mapstc maproj mapset -C - mapdrw cpseti cpsetr gopks gopwk -C - gacwk gdawk gclwk gclks setusv -C - mapros dpseti frame gsln stream3 -C - sfnorm sfsetr hlsrgb gclwk gclks -C - gsfaci gscr gfa gsclip gsfais -C - cprect cppkcl plchhq cpcldr cplbdr -C - gdawk -C W3LIB - getgb w3fp11 getgb1 errexit w3tagb -C - w3tage putgb -C IPLIB - ipolates makgds -C SPLIB - sptrunv -C BACIO - baopen baclos -C BUFRLIB - openbf readmg readsb ufbint -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C 179 - Grib error on input or index file (unwise to -C continue -C =NNNN - system only -C -C REMARKS: IBM NCAR graphics are in /usrx/local/ncar401 -C CAVEAT requires ncar graphics version 4.0 or above -C as of this writing -C setenv NCARG_ROOT /usr/local/ncar4.0 -C setenv PATH "$PATH":/usr/local/ncar4.0/bin -C (or the bourne/korn analogs) -C handles this; only the first setenv is required -C but the other will likely be -C needed by ictrans downstream -C -C The latitude to pixel coordinate converter -C assumes a 6912x6912 domain and that -C a 6912x1728 slice will be cut horizontally -C out of the domain downstream. The slice -C is then supposed to be rotated 90 degrees -C counterclockwise so that the long axis becomes -C the y axis maximizing fax paper use. This code -C cannot detect if these assumptions are -C in fact met downstream, if not, stations -C will be plotted in incorrect locations. -C The algorithm is however NOT sensitive to -C map projection. -C -C ATTRIBUTES: -C LANGUAGE: Fortran 90 -C MACHINE: IBM -C -C$$$ - - PROGRAM TRPSFCMV - - parameter(nsta=124) - character*3 cmonth(12) - data cmonth/'JAN','FEB','MAR','APR','MAY','JUN','JUL', - 1 'AUG','SEP','OCT','NOV','DEC'/ - dimension f3(360,181) - character*4 ctemp,cday - character*3 cdir - character*80 ctext - character*80 ctext2,ctext3 - character*4 cda - COMMON/PACKRA/IRAS(10) - common/oth/u(70,40),v(70,40),rlats(nsta),rlons(nsta), - 1 up(nsta),vp(nsta),tp(nsta) -c paraMETER (RMNLON=-0.,RMXLON=359., - paraMETER (RMNLON=-0.,RMXLON=359., - 1 RMNLAT=-60.,RMXLAT=60.) - dimension kds(25) - dimension rl(2),rl2(2),rl3(2),rl4(2) - data rl,rl2,rl3,rl4/rmnlat,0.,rmxlat,0., - 1rmnlon,0.,rmxlon,0./ - dimension grid(360,181) - dimension g2(360,121),z2(360,121) - dimension u2(360,121), v2(360,121) - dimension f53(117,51) - character*40 ctit - dimension ifeet(8) - character*132 mtitle -c - character*11 envvar ! for ibm_sp_6000 - character*80 fileg,filegi ! for ibm_sp_6000 -c - CALL W3TAGB('TRPSFCMV',2001,0038,0059,'NP22') - 6 continue -c -c****** added for ibm_sp_6000 -c - lun=11 - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lun - call getenv(envvar,fileg) - call baopen(lun,fileg,iret) -c - luni=12 - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') luni - call getenv(envvar,filegi) - call baopen(luni,filegi,iret) -c -c****** -c - call openn -c - do 777 imap=1,1 - if(imap .gt. 1) then - lun=13 - luni=14 - endif - do 1 k=1,25 - 1 kds(k)=-1 - ix=360 - iy=121 -c do 1000 ,ll=1,1,-1 - call mappos (0.0,1.0,0.0,1.0) -C get streamfunction - call stream3(1000,-1,11,12,grid) - pi=3.1415927 - sin45=sqrt(2.)/2 - omega=2*pi/86400. - g=9.81 - fcoril=2*omega*sin45 - factor=fcoril/g - factor=factor/10. -C** CONVERT TO METERS - do k=1,360 - do j=1,121 - g2(k,j)=grid(k+0,152-j ) * factor - end do - end do -c** -c get temperature (fossil code) -c** get u for wind barbs - kds(5)=33 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - u2(k,j)=grid(k+0,152-j ) * 1.93 - end do - end do -c** -c** get v for wind barbs - kds(5)=34 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - v2(k,j)=grid(k+0,152-j )*1.93 - end do - end do -c** - call cpseti('CIS',3) - call gslwsc(2.0) - call qcnt (g2,ix,iy,rl,rl2,rl3,rl4,mtitle) - call hbull - call cpseti('CIS',3) - call gsln(0) - call cg( g2,ix,iy,1) - call cpseti('CIS',5) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - irr=1 - flat=40. - flon=270. - do 14,k=1,120,5 - call gslwsc (1.0) - do 14,l=1,360,5 - if (irr .eq. 1) then - irr=2 - else - irr=1 - endif - if(irr .eq. 1) then - l2=l-1 - k2=k - else - l2=l-1 -c k2=k+1 - k2=k - endif - flon=l2 - flat=k2-61. - call maptra(flat,flon,uu,vv) - iflat=flat+5. - if(iflat .lt. 0) then - write(ctemp,1087)-iflat - 1087 format(i2,x,'S') - else - write(ctemp,1088) iflat - 1088 format(i2,x,'N') - endif -c call plchmq( uuf,vvf,ctemp,1.,0.,0.) - call gslwsc(1.0) -c write(102,*) flat,flon,uu,vv,u2(l2,k2),v2(l2,k2) - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - if (l2 .eq. 0) l2 = 1 - call wmbarb(uu,vv,-u2(l2,k2),-V2(L2,K2)) - 14 continue - do 15,lat=-60,60,30 - do 15 lon=27,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 15 continue - do 16,lat=-33,60,30 - do 16 lon=0,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - 1089 format(i3,'E') - 1091 format(i3,'W') - else - write(ctemp,1091)(360-lon) - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 16 continue - write(ctext,193)'TROPICAL SURFACE ANALYSIS VALID' - call DAYOWK(IRAS(8),IRAS(9),IRAS(10),idayy,cday) -c USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) - write(ctext2,194)iras(7),cday,cmonth(iras(9)),iras(8),iras(10) - write(88,1961)ctext,ctext2 - write(ctext3,196)'STREAM FUNCTION AND GRID WINDS' - write(79,1962)ctext2 - 1962 format(a30) - 196 format(a30) - 1961 format('STRIP ',' ',2a30) - 194 format(i2,'Z',x,a4,x,a3,x,i2,x,i4) - 193 format(a25,x,i2,'Z' ,i2,'/',i2,'/',i4) - call maptra(28.,230.,uu,vv) - call maptra(-12.,230.,uu2,vv2) - call maptra(-32.,270.,uu3,vv3) - call maptra(-32.,320.,uu4,vv4) - call maptra(-32.,80.,uu5,vv5) - call gslwsc(4.0) - call gslwsc(1.0) - do 17,lat=-37,60,10 - do 17 lon=0,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - else - write(ctemp,1091)(360-lon) - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 17 continue - do 18,lat=-60,60,10 - do 18 lon=2,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 18 continue - do 19,lon=1,360,1 - do 19,lat=-60,60,1 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) -c call plchlq(uu,vv,'.',1.,0.,0.) - 19 continue - call gsln(4) -c call cg(z2,ix,iy,2) - call gsln(1) - call frame - 777 continue - call baclose(11,iret) - call baclose(12,iret) - call closen - CALL W3TAGE('TRPSFCMV') - stop - end -c -c************************************************************** -c - subroutine mpr(flat,flon) - call maptra(flat,flon,u,v) - print 101,flat,flon,u,v - 101 format('lat lon ' , 4f15.5) - return - end -c -c************************************************************** -c - subroutine qcnt(grid,ix,iy,rl,rl2,rl3,rl4,mtitle) - character*132 mtitle - integer (kind=8) ibb1,ibb2 - common/staa/ibitz - Data ibb1/Z'F0F0F0F0F0f0ffff'/ - data ibb2/Z'F0F0F0F0F0f0aa55'/ - dimension grid(ix,iy) - dimension rl(2),rl2(2),rl3(2),rl4(2) - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) -c dimension RLAT1(2), RLAT2(2), RLON1(2), RLON2(2) - dimension grid2 (ix,iy) - common/icc/icount - common/ctrxxx/junk1,jink2,iflag - iflag=0 - Rmnlon=rl3(1) - rmxlon=rl4(1) - rmnlat=rl(1) - rmxlat=rl2(1) - icount = 0 !modified for ibmsp - do 1 k=1,ix - do 1 j=1,iy -c grid2(k,(iy+1-j))=(grid(k,j)) - grid2(k,j)=grid(k,j) -c grid2(k,j)=(grid(k,j)-273)*1.8 +32 -c z(k,j)=k+j**2 - 1 continue - CALL GSCLIP (0) -C -C Draw Lat/Lon lines at 10 degree intervals. -C Draw political & continental outlines. -C - CALL MAPSTI ('GR - GRID',90) - CALL MAPSTC ('OU - OUTLINE DATASET','CO') -C -C Draw a Satellite view over the United States -C - CALL MAPROJ ('ME - SATELLITE-VIEW',00.,-180.,00.) -c CALL MAPROJ ('CE - SATELLITE-VIEW',0.,0.,00.) -c CALL MAPSET ('MA',RLAT1,RLON1,RLAT2,RLON2) -c call mapset('MA',rlatmin,rlonmin,rlatmax,rlonmax) -C -C Don't draw a square around the globe -C - CALL MAPSTI ('PE - PERIMETER FLAG', 0) -C -C Draw map. -C -c call gslwsc(4.0) -c HEAVY HEAVY - call setusv('LW',4000) - CALL MAPDRW -c read synoptic data from AFOS PLOTFILE - call afosread -c read satellite winds directly from bufr input on unit 10 -c call satread - call setusv('LW', 1000) - CALL MAPSTI ('GR - GRID',10) - CALL MAPSTC ('OU - OUTLINE DATASET','PS') - CALL MAPDRW - - CALL CPSETI ('SET - DO SET-CALL FLAG',0) - CALL CPSETR ('DPV - DASH PATTERN VECTOR SIZE',.0010) - call DPSETI('PCF',0) -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - - CALL CPSETI ('MAP - MAPPING FLAG',1) - call cpsetr('XC1',rmnlon) - call cpsetr('XCM',rmxlon) - call cpsetr('YC1',rmnlat) - call cpsetr('YCN',rmxlat) - ibitz=ibb1 -c call cg(grid2,ix,iy) - ibitz=ibb2 -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C -c CALL GDAWK (1) -c CALL GCLWK (1) -c CALL GCLKS -c CALL W3TAGE('TRPSFCMV') -c STOP -c hunt for centers - do 2 k=5,ix-4 - do 2 j=5,iy-4 - lat=-61+j - lon=k-1 - gradck=2.2 - fmin=grid2(k,j) - fmax=grid2(k,j) - do 4 kk=k-4,k+4 - do 4 jj=j-4,j+4 - if(grid2(kk,jj) .lt. fmin) fmin=grid2(kk,jj) - if(grid2(kk,jj) .gt. fmax) fmax=grid2(kk,jj) -c 1 grid2(k,j) .lt. grid2(k+1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k-1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j+1)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j-1)-gradck .and. -c 2 grid2(k,j) .lt. grid2(k+2,j) .and. -c 2 grid2(k,j) .lt. grid2(k-2,j) .and. -c 2 grid2(k,j) .lt. grid2(k,j+2) .and. -c 2 grid2(k,j) .lt. grid2(k,j-2) -c 3 ) then - 4 continue - if( (fmax-fmin) .lt. gradck) go to 2 - if (fmin .eq. grid2(k,j) .or. fmax .eq. grid2(k,j)) then - flat=lat - flon=lon - call maptra(flat,flon,uu,vv) - if (flat .gt. 0.) then - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - else - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - endif - endif - 2 continue - call satread - return - END -c -c************************************************************** -c - SUBROUTINE FILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) - - DIMENSION XWRK(*),YWRK(*),IAREA(*),IGRP(*) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .GT. 0) THEN -cC -C If the area is defined by 3 or more points, fill it -C - CALL GSFACI(IAREA3+2) - CALL GFA(NWRK,XWRK,YWRK) - ENDIF - -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine cg(zreg,ix,iy,ifld) -C - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) - - real ZREG(ix,iy) - - EXTERNAL COLOR -C -C Call Conpack color fill routine - do k=1,ix -ckumar print *,' zreg',(zreg(k,j),j=1,iy,5) - end do -C - CALL CCPLLB(ZREG,ix,iy,COLOR,IWKID,ifld) -C - - RETURN - END -c -c************************************************************** -c - SUBROUTINE CCPLLB(ZREG,MREG,NREG,COLOR,IWKID,ifld) - common/staa/ibitz - common/windz/u2(360,121),v2(360,121) - common/oth/u(70,40),v(70,40),rlats(65),rlons(65),up(65),vp(65) - PARAMETER (LRWK=50000,LIWK=50000,LMAP=900000,NWRK=50000,NOGRPS=6) - REAL ZREG(MREG,NREG),RWRK(LRWK), XWRK(NWRK), YWRK(NWRK) - INTEGER MREG,NREG,IWRK(LIWK) - INTEGER MAP(LMAP),IAREA(NOGRPS),IGRP(NOGRPS) - integer ibts(16,300) - DATA IBTS / 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, - 1 1600*0, - 1 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 2 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, - 3 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, - 4 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 5 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, - 6 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 7 160*0, 2928*0 / ! modified for ibmsp - EXTERNAL FILL -c data ibitz/Z'F0F0F0F0F0F03333'/ - external sfill - EXTERNAL CPDRPL - EXTERNAL COLOR -C -C Set fill style to solid and turn off clipping -C - CALL GSFAIS(1) - CALL GSCLIP(0) -C -C Set up label box options -C -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - NOCL=300 - CALL CPSETI('LLP - LINE LABEL POSITIONING FLAG',4) -c CALL CPSETI('LLB - LINE LABEL BOX FLAG',4) - CALL CPSETI('LLB - LINE LABEL BOX FLAG',3) - CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',3) -c CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',4) - CALL CPSETI('ILB - INFORMATIONAL LABEL BOX FLAG',0) - CALL CPSETI('LBC - LABEL BOX COLOR INDEX',1) -c call cpseti('CIS',6) -cc call cpseti('LIS',1) - call cpseti('LIS',100) - call cpseti('LLP',2) - CALL CPSETR ('ORV - OUT-OF-RANGE VALUE',1.E12) - call cpsetr('RC1',0.15) - call cpsetr('LLS',0.00002) - call cpsetr('RC2',0.15) - call cpsetr('LLW',0.00001) -c call cpsetr('HLW',0.001) -c call cpsetr('HLS',0.002) - call cpsetr('HLW',0.0000001) - call cpsetr('HLS',0.0000002) - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - CALL CPPKCL (ZREG, RWRK, IWRK) - CALL CPGETI('NCL - NUMBER OF CONTOUR LEVELS',NCL) - DO 111 I=1,NCL - CALL CPSETI('PAI - PARAMETER ARRAY INDEX',I) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('AIA - AREA IDENTIFIER ABOVE',0) - CALL CPSETI('AIB - AREA IDENTIFIER BELOW',0) - 111 CONTINUE - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('NCL - NUMBER OF CONTOUR LEVELS',NCL+2) - CALL CPSETI ('PAI',ncl+1) - call cpsetr('CLV',0.0) - call cpseti('AIB',5) - call cpseti('AIA',0) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - if(zreg(50,50) .lt. 500) then -c CALL CPSETI ('PAI',ncl+2) -c call cpsetr('CLV',15.0) -c call cpseti('AIB',0) -c call cpseti('AIA',6) - endif -c call cpsetr('CLV',55.0) -c call cpseti('AIB',6) -c call cpseti('AIA',0) - DO 11 I=1,ncl - ivarv=ibitz - print 198,ivarv - 198 format(z16) -c CALL CPSETI('PAI - PARAMETER ARRAY INDEX',i) -c CALL CPSETI('CLD - CONTOUR LINE DASH PATTERN', -c + ivarv) - 11 continue - CALL COLOR(NCL+1,IWKID) - call PCSETI('CC',0) - - -C -C Draw Perimeter -C -c CALL CPBACK(ZREG, RWRK, IWRK) - call gslwsc(1.0) -C -C Initialize Areas -C -cc CALL ARINAM(MAP, LMAP) -C -C Add label boxes to area map -C -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(1) -c cc CALL CPLBAM(ZREG, RWRK, IWRK, MAP) -C -C Draw Labels -C - call gsln(0) -c CALL CPLBDR(ZREG, RWRK, IWRK) -C -C Add contours to area map -C -c CALL CPCLAM(ZREG, RWRK, IWRK, MAP) - call gslwsc(3.0) -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(4) - call cpcldr(zreg,rwrk,iwrk,map,cpdrpl) -c NEW LINE - call gslwsc(2.0) - call cplbdr(zreg,rwrk,iwrk) - -c call cpcldm(zreg,rwrk,iwrk,map,cpdrpl) -c call gsln (1) -C -C Fill contours -C -c CALL ARSCAM(MAP, XWRK, YWRK, NWRK, IAREA, IGRP, NOGRPS, SFILL) - 99 continue - CALL WMSETR('WBS',0.004) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - RETURN - END -c -c************************************************************** -c - SUBROUTINE COLOR (N,IWKID) -C -C BACKGROUND COLOR -C -C -C BLACK -C - CALL GSCR(IWKID,0,0.,0.,0.) -C -C First foreground color is white -C - CALL GSCR(IWKID,1,1.,1.,1.) -C -C Second foreground color is gray -C - CALL GSCR(IWKID,2,0.5,0.5,0.5) -C -C Choose other foreground colors spaced equally around the spectrum -C - ICNT=0 - HUES=360./N -C -C REDLN is intended to be the line between red and violet values -C - REDLN=36.0 - LAP=INT(REDLN/HUES) - DO 10, I=1,N - XHUE=I*HUES - CALL HLSRGB(XHUE,60.,75.,RED,GREEN,BLUE) -C -C Sort colors so that the redest is first, and violetest is last -C - IF (XHUE.LE.REDLN) THEN - CALL GSCR(IWKID,(N+2)-(LAP-I),RED,GREEN,BLUE) - ICNT=ICNT+1 - ELSE - CALL GSCR(IWKID,I-ICNT+2,RED,GREEN,BLUE) - ENDIF - 10 CONTINUE - - RETURN - END -c -c************************************************************** -c - SUBROUTINE SFILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) -C - REAL XWRK(*),YWRK(*),ISCR(5000) - INTEGER IAREA(*),IGRP(*),RSCR(5000) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .eq. 5) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 0.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF - IF (IAREA3 .eq. 6) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 90.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine i3to53(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i53to3(F53,F3) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - logical log3(360,181) - equivalence (lo_03,log3) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - - do k=1,360 - log3(k,1)=.FALSE. - log3(k,181)=.FALSE. - end do - ibi=0 -cc define 360x181 grid - call makgds(53,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(3,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,jo53,ji2,1, - 1 ibi,lo_03,F53,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F3,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i3to8(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(116,44) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(8,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine closen -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C - CALL GDAWK (1) - CALL GCLWK (1) - CALL GCLKS - return - end -c -c************************************************************** -c - subroutine openn -C OPEN GKS, OPEN WORKSTATION OF TYPE 1, ACTIVATE WORKSTATION -C - CALL GOPKS (6,IDUM) - CALL GOPWK (1, 2, 1) - CALL GACWK (1) - return - end -c -c************************************************************** -c - Subroutine get3(lun,luni,jpds,a2,c132) - common/grbpds/kpds - COMMON/PACKRA/IRAS(10) -c array is an NMC GRIB TYPE 3 field on output -c jpds is set in the CALLER!! except for fields 1-3 - dimension array(360,181),a2(360,181) - dimension jpds(25),jgds(25) - dimension grib(360,181) - dimension kpds(25),kgds(25) - character*132 c132 - logical lb(360,181) - jf=360*181 - jflag=-1 - kf=jf - do i = 1, 25 - kpds(i) = 0 - kgds(i) = 0 - end do - k = 0 - ier = 0 -c jpds(2)=77 - jpds(1)=7 -c jpds(3)=104 - jpds(3)=3 - print 101,lun,luni - print 109,(jpds(ll),ll=1,25) - 109 format(5z17) - call getgb1(lun,luni,jf,jflag,jpds,jgds, - 1 grib,kf,k,kpds,kgds,lb,array,ier) -c if ( ier .ne. 0) then -c CALL W3TAGE('TRPSFCMV') -c call errexit(99) -c endif - call w3fp11(grib,grib(2,1),c132,ierr) - print 106,k,c132 - 106 format(i6, 'LAB ',a132) - print 101,ier,k,kf - if(ier .ne.0 ) then - CALL W3TAGE('TRPSFCMV') - call errexit(9999) - endif - print 102,(array(90,k),k=1,181) - 102 format(10f8.2) - 101 format(i9) -cj do 45,k=1,181 -c do 45,j=1,360 -c 45 if(j .gt. 70 .or. k .gt. 70) array(j,k)=array(70,70) -c SET IRAS VARIABLES - iras(1)=kpds(14) - iras(7)=kpds(11) - iras(8)=kpds(10) - iras(9)=kpds(9) -C This should generate the proper 4-digit year no matter what!! - mcen=max(0,kpds(21)-1) - iras(10)=mcen*100+kpds(8) - if(iras(10) .le. 20) then - iras(10)=iras(10)+2000 - else if(iras(10).le.99) then - iras(10)=iras(10)+1900 - end if -c iras(3)=iras(7) -c iras(4)=iras(8) -c iras(5)=iras(9) -c iras(6)=iras(10) -c flip type 3 grid - do k=1,181 - do j=1,360 -c a2(j,182-k)=array(j,k) - a2(j,k)=array(j,k) - end do - end do - return - end -c -c************************************************************** -c - Subroutine stream3(mbars,itime,lupgb,lupgi,F3) -c -c George VandenBerghe 11/17/96 -c -c subroutine to accept pressure level (mbars), -c grib unit number (lupgb), and grib index unit -c number (lupgi) and read u, and v wind fields, -c at mbars, and calculate stream function. Stream -c function is stored in F3 and returned to caller. -c The Grib fields on lupgb MUST be grib type 3 (360x181) -c fields. These are output automatically by the NCEP -c GFS forecast model. -c These stream functions are dimensionally correct -c m**2/sec streamfunctions -c 11/17/96 add on !! -c logic added to handle tropopause level. Passing -c in pressure as 7 mbars tells code to wildcard -c pressure and take tropopause level values - parameter(im=360,jm=181,km=16) - dimension F3(im,jm) - dimension iprs(km) - integer kpds(100), kgds(100) - integer jpds(100), jgds(100) - logical lbms(im*jm), luv, ldz, lps - real u(im,jm), v(im,jm), psi(im,jm),chi(im,jm) - data iromb/0/,maxwv/126/,idrti/0/,imaxi/360/,jmaxi/181/ - data idrto/0/,imaxo/360/,jmaxo/181/,kmax/1/ - data iprime/0/,iskipi/0/,jskipi/0/,kspipi/0/ - data iskipo/0/,jskipo/0/,kspipo/0/,jcpu/0/ -c --- coordinate testing code - x1=50 - y1=60 - x2=180 - y2=60 - x3=180 - y3=120 - - luv = .False. - ldz = .False. - lps = .True. - ijm = im * jm - fim = im - lskip=-1 - k=0 - do jj = 1, 100 - jpds(jj) = -1 - enddo - do jj = 1, 20 - jgds(jj) = -1 - enddo - jpds(5) = 33 - jpds(6) = 100 - jpds(7) =mbars - jpds(14)=itime -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,u,iret) -c print *,' KPDS AFTER U' -c print 189,kpds - if(iret.ne.0) then - endif - jpds(5) = 34 - jpds(6) = 100 - jpds(7) = mbars -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,v,iret) - if(iret.ne.0) then - endif - call SPTRUNV(IROMB,MAXWV,IDRTI,IMAXI,JMAXI, - & IDRTO,IMAXO,JMAXO,KMAX, - & IPRIME,ISKIPI,JSKIPI,KSKIPI, - & ISKIPO,JSKIPO,KSKIPO,JCPU,U,V, - & LUV,GRIDUO,GRIDVO,LDZ,GRIDDO,GRIDZO, - & LPS,chi,psi) - print 109,k - 109 format(' K is ',i9) -c - do j=1,jm - do k=1,im - f3(k,j)=psi(k,j) - end do - end do - kpds(5)=35 -c print *,' KPDS to be put' -c print 189,kpds - 189 format(5Z20) -c WRITE THE STREAMFUNCTIONS TO UNIT 51!! -c call putgb(51,ijm,kpds,kgds,lbms,f3,iret) -c end write - if(iret .ne. 0) print *, - 1 ' WARNING PUT OF STREAMFUNCTION FAILED return code ', iret, - 1 ' from putgb ' - print *,' FEW STREAMS',psi(50,50),psi(100,100) - 990 continue - return - end -c -c************************************************************** -c - subroutine afosread -c field 4 time (4 digits) -c field 5 name ( 5 digits) -c field 6 sky cover i A aircraft S sat M missing -c7 field 7 wind ddfff -c field 8 pressure (mb*10. significant digits) -c field 9,10 temp and dew -c 11 present weather (code or text) -c 12 visibility -c 13 pressure change -c 14 barograoh trace (code table 12) -c 15 low/middle/high cloud -c 16 precip -c 17 remarks -c lat lon are 18 and 19 -c 20 ship course and speed - dimension points(100000,2) - character*160 cline - character*160 cout - integer icom(40) - character*8 ccom(40),cf -c - do nn=1,2 - do mm=1,100000 - points(mm,nn)=0 - enddo - enddo -c - call ridctlm - do k=1,20 - ccom(k)=' ' - end do -c - open(44,file='afosplot') -c -c do jjj=1,2 -c read(44,101)cline -c enddo -c - do 10000 kkk=1,100000 - 101 format(a160) - read(44,101,end=999,err=997) cline - write(85,101) cline -c print 101,cline -c find the commas - idx=1 - is=1 - cf=' ' - ico=0 - do 10,k=1,160 - if(cline(k:k) .eq. ',' .or.cline(k:k).eq.';') then - ico=ico+1 -c - if(ico.ge.40) then - print *,' MORE THAN 40 COMMAS in line ',kkk - go to 10000 - endif -c - icom(ico)=k - ccom(ico)=cf - cf=' ' - idx=1 - if(cline(k:k) .eq. ';') go to 19 - else - cf(idx:idx)=cline(k:k) - idx=idx+1 -c - if(idx .gt. 8) then - print *,' MORE THAN 8 blanks between commas in line ',kkk - go to 10000 - endif -c - endif - 10 continue - 19 continue - do k=1,20 - if(ccom(k) .eq. ' ') ccom(k)='-9999 ' - end do - do k=1,5 - if(ccom(15)(k:k).eq.'/') ccom(15)(k:k)='0' - end do - if(ccom(6)(8:8).eq. 'M') ccom(6)='-9999 ' - if(ccom(6)(1:1).eq. 'M') ccom(6)='-9999 ' - if (kkk .lt. 5) print 129,ccom - 119 format(i3,a3,20i3) - read(ccom(7),179)id,isp - 179 format(i3,i2) - read(ccom(9),149)itemp - read(ccom(6),149) icover - read(ccom(11),149) iwx - if(iwx .gt.99 .or. iwx .lt.0) iwx=-9999 - print *,' ICOVERC',icover - read(ccom(10),149)idew - read(ccom(18),159)ilat - read(ccom(15),149)icloud - if(icloud .gt. 0) print *,' ICLUD',icloud - read(ccom(19),169)ilon - read(ccom(8),149) ipres - read(ccom(14),149)itrace - read(ccom(13),149) itend - if (ccom(18)(4:4) .eq. 'S') ilat=-ilat - if(ccom(19)(5:5) .eq.'W') ilon=-ilon+3600. - flat=(ilat+0.5)/10. - flon=(ilon+0.5)/10. - call maptra(flat,flon,uu,vv) - if(id.eq.-99)id=-999 - dir=id - theta=(90-dir)*3.1415927/180. - u=cos(theta)*isp - v=sin(theta)*isp - dir=dir-90. - if(dir .le. 0) dir=dir+360 - if(flat .lt. 0) dir=-dir - id=dir - ilat=flat - ilon=floN - points(kkk,1)=400. - points(kkk,2)=400. - do 39,l=1,kkk-1 - xd=(points(l,1)-ilat)*2.0 - yd=points(l,2)-ilon - sargg=xd**2 + yd**2 -c write(102,*)' square root ',kkk,sargg - if(sargg .lt. 0.) then - write(102,*)' negative square root potential ',kkk,sargg - go to 10000 - endif -c - dist=sqrt(xd**2 + yd**2) -c dist=sqrt( (points(l,1)-ilat)**2 + (points(l,2)-ilon)**2) - if (dist .lt. 3.9) go to 10000 - if(ccom(3)(1:1) .eq. '7') go to 10000 -c if (dist .lt. 0.5) go to 10000 - 39 continue - points(kkk,1)=ilat - points(kkk,2)=ilon - 149 format(i8) - 159 format(i3) - 169 format(i4) - print *,'STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - if(iwx .gt. 0) - 1 print *, - 1 'WX STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - call l2p(flat,flon,iprx,ipry) - if(iprx .lt. -9999. .or. iprx .gt. 9999 .or. - 1 ipry .lt. -9999 . .or. ipry .gt. 9999) - 1 go to 10000 - write(89,105)'STATION PLOT', - 1 iprx,ipry,itemp,idew,ipres,itend,id,isp,icover,iwx,itrace,icloud - 1 ,ccom(5) - 1 ,ccom(18),ccom(19) -c 1 iprx,ipry,itemp,idew,ipres,itend,id,isp -c 1 iprx,ipry,itemp,idew,ilon,ilat,id,isp,icover,ccom(5) - 105 format(a16,12i5,x,3a9) - 139 format(96x,2i8) - 129 format(20a8) -10000 continue - print *,'WARNING, INPUT AFOS PLOTFILE NOT EXHAUSTED' - 997 continue -c print *,' ENDED DATA WITH ERROR' - 999 continue - return - end -c -c************************************************************** -c - subroutine l2p(flat,flon,iprx,ipry) - call maptra(flat,flon,uu,vv) - fx=cufx(uu) - fy=cufy(vv) - px=6912*fx -c1 py=-6912*(fy-.625555555) - py=-6912*(fy-.575555555) - iprx=py - ipry=px - print *,'L2P ', 'flat,flon,px,py,iprx,ipry', - 1 flat,flon,px,py,iprx,ipry - return - end -c -c************************************************************** -c - subroutine ridctlm -c remove all ctlm characters from fort.43 and write to fort.87 - dimension jstat(100) -c is=stat('fort.43',jstat) -c lnn=jstat(8) - read(5,101)lnn - 101 format(i10) - print*,'file size of fort.43 ',lnn - call afix(lnn) - return - end -c -c************************************************************** -c - subroutine afix(lnn) - character*1 bytes(lnn) - integer (kind=8) ip - data ip/Z'0D'/ ! CTRL-M - character*1 c1(8) - equivalence(c1,ip) -ckumar - open(43,file='NHPLOT',access='direct',recl=1280) -c - na=1 ; nb=1280 -c - nrec=lnn/1280 - print*,'In afix lnn & nrec : ',lnn,nrec -c - do ir=1,nrec - read(43,rec=ir)bytes(na:nb) - na=na+1280 - nb=nb+1280 -ckumar print*,'In afix ir, na & nb ',ir,na,nb - enddo -c - do 10,k=1,lnn - if(bytes(k) .eq. c1(8)) bytes(k)=' ' - 10 continue -c - write(87) bytes - close(87) - return - end -c -c************************************************************** -c - -C DATA SET DAYOWK AT LEVEL 001 AS OF 04/16/93 - SUBROUTINE DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DAYOWK FIND NUMERICAL DAY OF WEEK. -C PRGMMR: HENRICHSEN ORG: NMC41 DATE:93-05-11 -C -C ABSTRACT: GIVEN DAY MONTH AND YEAR AS INTEGERS RETURN DAY OF WEEK AS -C AND INTEGER NUMBER AND AS FOUR CHARACTER HOLLERTH TEXT. -C -C PROGRAM HISTORY LOG: -C 84-MM-DD WICK -C 85-MM-DD HENRICHSEN REMOVE OLD KEY PUNCH CHARACTERS AND CLEAN UP. -C 87-12-10 HENRICHSEN CONVERT TO VS FORTAN 77. -C -C USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C INPUT ARGUMENT LIST: -C IDAY - INTEGER TWO DIGET DAY OF MONTH( 1 THRU 31 ). -C IMONTH - INTEGER TWO DIGET MONTH OF YEAR( 1 THRU 12). -C IYEAR - INTEGER TWO OR FOUR DIGET YEAR. -C IYEAR SHOULD BE THE COMPLETE FOUR DIGIT YEAR. -C IF ONLY LAST 2 DIGITS OF YEAR ARE GIVEN, -C ASSUMES 20TH CENTURY... -C -C OUTPUT ARGUMENT LIST: -C IDAYWK - INTEGER NUMBER OF DAY OF WEEK ( 1 THRU 7 ). -C IHDAYW - CHARACTER*4 WORD CONTAINING THE THE THREE LETTER -C - DAY OF THE WEEK LEFT JUSTIFED IN THE WORD. -C - IE 'MON ', .... 'FRI ', .... 'SUN '. -C ERRFLAG - ERROR OF OUT OF RANGE ARGUEMENT IS INDICATED BY THE -C - RESULTING IDAYWK = 0, AND IHDAYW = BLANKS. -C -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C FT06F001 - ERROR PRINT WHEN ARGUEMENTS OUT OF RANGE. -C -C REMARKS: NONE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ - CHARACTER*4 IHDAYW - CHARACTER*4 ITEXT(2) - CHARACTER*4 KHDAY(7) - CHARACTER*4 KLANK - CHARACTER*4 NHDAY(2) - CHARACTER*4 NHMON(2) - CHARACTER*4 NHYR(2) -C - INTEGER KCEN(5) - INTEGER KDAYS(12) - INTEGER MONTAB(12) -C - DATA KHDAY /'SUN ','MON','TUE ', - 1 'WED ','THU ','FRI ','SAT '/ - DATA KLANK /' '/ - DATA NHDAY /'DAY ',' '/ - DATA NHMON /'MONT','H '/ - DATA NHYR /'YEAR',' '/ -C - DATA KCEN /4,2,0,6,4/ - DATA KDAYS /31,29,31,30,31,30,31,31,30,31,30,31/ - DATA MONTAB /1, 4, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6/ -C - IDAYWK = 0 - IHDAYW = KLANK - ISFEB = 0 - IDA = IDAY - IMO = IMONTH - IYR = IYEAR - IF(IMO) 911,911,122 - 122 IF(IMO .GT. 12) GO TO 911 - IF(IDA) 922,922,133 - 133 IF(IDA .GT. KDAYS(IMO)) GO TO 922 - ICENT = IYR / 100 - IYR2 = IYR - 100 * ICENT - IF(ICENT) 933,140,144 - 140 CONTINUE -C ...IF ONLY LAST 2 DIGITS OF YR WERE GIVEN, ASSUME ITS 1900 + - ICENT = 19 - IYR = IYR + 1900 - 144 CONTINUE - ICENTX = ICENT - 16 - IF(ICENTX) 933,933,155 - 155 IF(ICENTX .GT. 5) GO TO 933 -C ...THE GIVEN DATE INFO IS W/I RANGE... - ISUM = KCEN(ICENTX) + IYR2 +IYR2/4 + MONTAB(IMO) + IDA - IF(IMO - 2) 222,211,611 -C ...OTHERWISE, THIS IS JAN OR FEB, SO CHECK FOR LEAP YR... - 211 ISFEB = 1 - 222 CONTINUE - IF(MOD(IYR,4)) 533,511,533 -C ...MOST LIKELY A LEAP YR. TEST FOR CENTURY YR... - 511 CONTINUE - IF(IYR2)522,515,522 - 515 CONTINUE - IF(MOD(IYR,400))533,522,533 -C ...COMES TO 522 IF LEAP YR CORRECTION IS NEEDED... - 522 CONTINUE - ISUM = ISUM - 1 - GO TO 611 - 533 CONTINUE -C ...COMES TO 533 IF NOT A LEAP YR, SO IF FEB, MUST RETEST IDA... - IF(ISFEB)544,611,544 - 544 CONTINUE -C ...THIS IS FEB OF A NON-LEAP YR. - IF (IDA .GE. KDAYS(2)) GO TO 922 - GO TO 611 - 611 CONTINUE - IDAW = MOD(ISUM,7) - IF(IDAW) 644,633,644 - 633 CONTINUE - IDAW = 7 - GO TO 644 - 644 CONTINUE - IDAYWK = IDAW - IHDAYW = KHDAY(IDAW) - RETURN -C - 911 CONTINUE -C ...COMES HERE IF GIVEN MONTH OUT-OF-RANGE... - ITEXT(1) = NHMON(1) - ITEXT(2) = NHMON(2) - GO TO 955 - 922 CONTINUE -C ...COMES HERE IF GIVEN DAY OUT-OF-RANGE - ITEXT(1) = NHDAY(1) - ITEXT(2) = NHDAY(2) - GO TO 955 - 933 CONTINUE -C ...COMES HERE IF GIVEN YR OUT OF RANGE - ITEXT(1) = NHYR(1) - ITEXT(2) = NHYR(2) - GO TO 955 - 955 CONTINUE - PRINT 956, ITEXT(1),ITEXT(2),IDAY,IMONTH,IYEAR - 956 FORMAT(1H0,10X,'ERROR EXIT FROM DAYOWK. GIVEN ', A4, A1, 1X, - X 'OUT-OF-RANGE', /1H0,15X,'IDAY = Z', Z8, 4X,'IMONTH = Z', - X Z8, 4X, 'IYEAR = Z', Z8) - RETURN - END -c -c************************************************************** -c - subroutine satread -c READS SATELLITE WIND DATA AND DRAWS WIND BARBS -c ON ANY NCAR GRAPHICS PLOTTING FRAME WITH LATLON -c FRAME MAPPING DEFINED (general for weather plots) - dimension ary(6) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - do 10,k=1,9999999 - read(38,101,IOSTAT=ios,end=99)ary - 101 format(6x,6f10.4) - if(ios.ne.0)then - print*,'skipping bad record in unit 38' !if worth printing - go to 10 - endif - flat=ary(1) - flon=ary(2) - dir=ary(4) - speed=ary(5) - qcm=ary(6) - u=speed*sin(dir*3.1415927/180.) - v=speed*cos(dir*3.1415927/180.) - call maptra(flat,flon,uu,vv) -c print *,'calling wmbarb',uu,vv,u,v - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - call wmbarb(uu,vv,u,v) - call plchhq(uu,vv,':F19:c',1.5,0.,0.) -c call plchhq(uu,vv,':F22:C',9.5,0.,0.) - 10 continue - 99 continue - return - end -c -c************************************************************** -c -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDSAT READ UPPER AIR BUFR FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-06-03 -C -C ABSTRACT: REDSAT READS THE PREPBUFR OBSERVATIONAL FILE AND -C RETURNS A SINGLE SATWND REPORT IN ARRAY DATA -C -C PROGRAM HISTORY LOG: -C 97-06-03 LARRY SAGER -C -C USAGE: CALL REDSAT (RLIMS, IUNS, DATA, IRET) -C INPUT ARGUMENT LIST: -C RLIMS - LAT/LONG LIMITS TO DUMP -C IUNS - UNIT NUMBER OF PREPBUFR FILE -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C DATA - THE RETURNED SATWND REPORT. -C - LAT, LONG, PRESALT, WDIR, WSP, WQM -C IRET - FLAG: IRET=0 NORMAL RETURN -C IRET=-1 END OF FILE -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT55F001 - PREPBUFR UPPER AIR DATA FILE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ - SUBROUTINE REDSAT(RLIMS, IUNS, DATA, IRET) -C -C REDUPA READS THE PREPBUFR FILE AND RETURNS AN UNPACKED -C SATWND REPORT. -C - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CTEMP - CHARACTER*40 CATH, STRING -C - DIMENSION HDR (10) -C - REAL CRR (5,255) - REAL RLIMS (4) - REAL DATA(6) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA STRING /'SID XOB YOB DHR ELV TYP SQN'/ - DATA CATH /'CAT=6 POB DDO FFO WQM'/ - DATA IX /0/ -C -C----------------------------------------------------------------------| -C OPEN THE IBM-SP BUFR TANK FILE | -C----------------------------------------------------------------------| -C - SAVE - IRET = 0 - IMASS = 0 - IWIND = 0 - LUBFR = IUNS - IF( IX .EQ. 0) THEN - IX = 1 - INOUT = 'IN' - LUNDX = 10 - CALL OPENBF( LUBFR, INOUT, LUNDX ) - 10 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF(IRET1 .NE. 0) GOTO 50 - ITYP = 0 - IF(SUBSET .NE. 'SATWND' ) GOTO 10 - ENDIF -C -C----------------------------------------------------------------------| -C READ THE BUFR DATA TANKS -C----------------------------------------------------------------------| -C - 20 CALL READSB (LUBFR,IRET2) - IF (IRET2 .LT. 0) THEN - 22 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF (IRET1 .LT. 0) GOTO 50 - IF(SUBSET .EQ. 'SATWND' ) GOTO 20 - GOTO 22 - END IF -C -C----------------------------------------------------------------------| -C READ IN THE STATION INFORMATION | -C----------------------------------------------------------------------| -C - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C PRINT 119,HDR(1),HDR(6) - 119 FORMAT(' STATION ',A8,' subtype ',F10.1) -C -C MAKE SURE THIS STATION IS WITHIN THE LAT/LONG LIMITS -C - IF((HDR(3) .GT. RLIMS(1)) .OR. (HDR(3) .LT. RLIMS(2))) - 1 GOTO 20 - IF((HDR(2) .LT. RLIMS(3)) .OR. (HDR(2) .GT. RLIMS(4))) - 1 GOTO 20 -C -C----------------------------------------------------------------------| -C UNPACK THE BUFR REPORT -C----------------------------------------------------------------------| -C - IF((HDR(6) .GE. 240.) .AND. (HDR(6) .LE. 246.))THEN - CALL UFBINT (LUBFR, CRR, 5, 255, NRET2, CATH) -C PRINT *,'SATWNDS ',CRR(2,1),CRR(3,1) - DATA(1) = HDR(3) - DATA(2) = HDR(2) - DATA(3) = CRR(1,1) - DATA(4) = CRR(2,1) - DATA(5) = CRR(3,1) - DATA(6) = CRR(4,1) -C PRINT *,' DATA ',(DATA(KK),KK=1,6) - ELSE - GOTO 20 - END IF - RETURN -C - 50 IRET = -1 - RETURN - END -c -c************************************************************** -c - subroutine hbull -c reads quality controlled hurricane bulletins from either: -c $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -c $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL -c and writes putlab call information and box drawing -c information for use downstream by bedient packing -c and drawing program sixbitb2. Input is fortran -c unit 31 and output is fortran unit 74. - -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. - - - COMMON/PACKRA/IRAS(10) - - character*10 names(16) - character*128 clines(100) - character*128 cline - character*128 dumy2k - character*10 cname - character*13 cdate - character*2 c2 - character*80 cout,cnull - - print *, ' ' - print *, ' ===> ENTERING SUBROUTINE HBULL' - print *, ' ' - - write(c2,'(i2.2)') iras(7) - - cnull='NO TROPICAL CYCLONE ACTIVITY REPORTED' - icount=0 - icounta=0 - klines=0 - names='xxxxxxxxxx' - - do k=1,100 - read(31,fmt='(a128)',end=9) cline - -C AT THIS POINT WE DO NOT KNOW IF A 2-DIGIT YEAR BEGINS IN COLUMN 20 -C OF THE RECORD (OLD NON-Y2K COMPLIANT FORM) OR IF A 4-DIGIT YEAR -C BEGINS IN COLUMN 20 (NEW Y2K COMPLIANT FORM) - TEST ON LOCATION OF -C LATITUDE N/S INDICATOR TO FIND OUT ... - - if(cline(35:35).eq.'N' .or. - . cline(35:35).eq.'S') then - -C ... THIS RECORD STILL CONTAINS THE OLD 2-DIGIT FORM OF THE YEAR - -C ... THIS PROGRAM WILL CONVERT THE RECORD TO A 4-DIGIT YEAR USING THE -C "WINDOWING" TECHNIQUE SINCE SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 2-digit year "',cline(20:21),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - DUMY2K(1:19) = cline(1:19) - IF(cline(20:21).GT.'20') THEN - DUMY2K(20:21) = '19' - ELSE - DUMY2K(20:21) = '20' - ENDIF - DUMY2K(22:128) = cline(20:126) - cline = DUMY2K - PRINT *, ' ' - PRINT *, '==> 2-digit year converted to 4-digit year "', - . cline(20:23),'" via windowing technique' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - ELSE IF(cline(37:37).eq.'N' .OR. - . cline(37:37).eq.'S') THEN - -C ... THIS RECORD CONTAINS THE NEW 4-DIGIT FORM OF THE YEAR -C ... NO CONVERSION NECESSARY SINCE THIS SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 4-digit year "',cline(20:23),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - PRINT *, '==> No conversion necessary' - PRINT *, ' ' - ELSE - PRINT *, ' ' - PRINT *, '***** Cannot determine if this record contains ', - . 'a 2-digit year or a 4-digit year - skip it and try ', - . 'reading the next record' - PRINT *, ' ' - CYCLE - END IF - - clines(k)=cline - klines=k - enddo - - 9 continue - - LOOP1: do k=klines,1,-1 - cline=clines(k) - print *, ' ' - print *, 'Look at record: ',cline - print *, ' ' - - LOOP1n1: do j=1,16 - -c look for same name and time - - if(cline(29:30) .ne. c2) then - print *, ' ' - print *, 'Do not process this record because its hour ', - . '(=',cline(29:30),') is different than the ', - . 'cycle hour (=',c2,')' - print *, ' ' - cycle LOOP1 - endif - if(cline(6:6) .eq. '8' .or. cline(6:6) .eq. '9') then - print *, ' ' - print *, 'Do not process this record because it is a ', - . 'test storm, storm id =',cline(6:7) - print *, ' ' - cycle LOOP1 - endif - if(names(j) .eq. cline(10:19) .and. - . names(j) .ne. 'NAMELESS' ) then - print *, ' ' - print *, 'Do not process this record because it has a', - . ' name that has already been processed (name=', - . cline(10:19),')' - print *, ' ' - cycle LOOP1 - endif - print *, ' ' - print *, 'NAMES ',cline(10:19),names(j) - print *, ' ' - enddo LOOP1n1 - - LOOP1n2: do j=1,16 - -c assign new name - - print *, ' ' - print *, 'threeloop' - print *, ' ' - if(names(j) .eq. 'xxxxxxxxxx' ) then - names(j)=cline(10:19) - cname=cline(10:19) - cdate=cline(20:32) - -c - On rare occasions, upstream program QCTROPCY can stamp a 'C' into -c character 67 - this had resulted in a failure in this program -c (note 104 format). Change by Keyser (08/10/1998) uses 9104 format -c if mwind < 100 . - - if(cline(67:67).eq.'1') then - read(cline,104)latd,lond,idir,isp,icp,mwind - 104 format(33x,i3,2x,i4,x,i4,i4,x,i4,10x,i3) - else - read(cline,9104)latd,lond,idir,isp,icp,mwind -9104 format(33x,i3,2x,i4,x,i4,i4,x,i4,11x,i2) - end if - flat=latd/10. - flon=lond/10. - fdir=idir - fsp=isp/10. - central_pressure=icp - - write(cout,105) cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - ic=530+10*j - iatl=0 - ipac=0 - if(lond -latd .lt. 800) iatl =1 - if(lond-latd .gt. 720 .and. latd .lt. 150) ipac=1 - if(lond-latd .gt. 800 ) ipac=1 - -c test for atlantic or Pacific storm - - if(iatl .eq. 1) then - icounta=icounta+1 - ic=icounta*20+620 -ccccc ic=icounta*20+520 - write(74,114) 'PUTLA ',ic, - . '6420 01.0 90.0 038 1 0 0 ',cout(1:80) - endif - if(ipac .eq. 1) then - icount=icount+1 - ic=icount*20+520 - write(74,114) 'PUTLA ',ic, - . '4201 01.0 90.0 038 1 0 0 ',cout(1:80) - endif -ccccc write(74,114) 'PUTLA ',ic,'4201 04.0 90.0 080 1 0 0 ', -ccccc. cout(1:80) - 114 format(a6,i5,a27,a80) - print 105, cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - 105 format(a10,x,a13,x,f4.1,a1,x,f5.1,a1,x,a3,f6.0,x,a3,f5.1, - . a5,x,f6.1,' MB',i3,'M/SEC' ) - if(cline(37:37).eq. 'S') flat=-flat - if(cline(43:43).eq. 'W') flon=360-flon - call maptra(flat,flon,uu,vv) - if ((mwind*2.24) .gt. 38) then - call plchhq(uu,vv,':F35:m',7.5,0.,0.) - else - call plchhq(uu,vv,':F30:TD',2.0,0.,0.) - call plchhq(uu,vv,':F37:S',6.0,0.,0.) - endif - if((mwind*2.24) .gt. 74.) then - -c close hurricane symbol with black fill - - call plchhq(uu,vv-0.005,':F37:Z',4.5,0.,0.) - endif - call gslwsc(3.0) - call plchmq(uu+0.02,vv-0.055,cname,2.5,0.,0.) - call gslwsc(1.0) - exit LOOP1n2 - endif - enddo LOOP1n2 - enddo LOOP1 -ccccc isizea=(icounta+1)/2 +2 - isize=(icount+1)/2 +2 - isize=icount+2 - isizea=icounta+2 - if(isize .eq. 2) then - write(74,114)'PUTLA ',540,'4201 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isize=isize+1 - print *, cnull(1:80) - endif - if(isizea .eq. 2) then - write(74,114)'PUTLA ',640,'6420 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isizea=isizea+1 - print *, cnull(1:80) - endif - write(74,115)'BOX ',510,4190,isize,25 - write(74,115)'BOX ',610,6401,isizea,25 - 115 format(a4,2i5,i5,i5) - - print *, ' ' - print *, ' ===> LEAVING SUBROUTINE HBULL' - print *, ' ' - - return - - end - -c************************************************************** - diff --git a/util/sorc/trpsfcmv.fd/trpsfcmv.f_save b/util/sorc/trpsfcmv.fd/trpsfcmv.f_save deleted file mode 100755 index b2b20d742b..0000000000 --- a/util/sorc/trpsfcmv.fd/trpsfcmv.f_save +++ /dev/null @@ -1,1962 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C -C MAIN PROGRAM: TRPSFCMV -C PRGMMR: KEYSER ORG: NP22 DATE: 2001-02-09 -C -C ABSTRACT: -C Plots the following in the tropical strip: analyzed wind -C barbs and temperatures at several hundred locations, contours of -C 1000 mb analyzed streamfunction, gridded winds, station plots -C and tropical cyclone positions. It uses NCAR graphics to -C produce a metafile which is rasterized in subsequent program -C executions. It also generates titles and hurricane bulletin -C text (if needed) for processing by the Bedient packer. The -C gross job flow is gendata --> redsat --> trpsfcmv ---> -C ictrans ----> ras2bity ----> sixbit2 (bedient packer) ---> and -C out the door to OSO, NCDC, TPC and FAX. Input is current GLOBAL -C SPECTRAL MODEL ANALYSIS winds in GRIB on type 3 (1x1) grids and -C also station coordinates and observed parameters (temp, dewpoint, -C pressure, tendancy, windspeed, and direction for plotting by -C NOAA graphics (with superior fonts) downstream. The station -C coordinate file is an AFOS PLOTFILE with all linefeeds (Z'0d') -C removed by subroutine afosread. The station coordinates are -C converted to pixel values for downstream use by the bedient -C packer. -C -C PROGRAM HISTORY LOG: -C 1996-12-18 George VandenBerghe Original ancestor code -C 1996-12-31 George VandenBerghe Documented -C 1997-01-30 George VandenBerghe Made grib errors fatal. (stop 17) -C 1997-04-30 George VandenBerghe Removed grid station -C interpolation, NCAR station plotting, changed to -C mercator plot of single streamfunction, added -C streamfunction generator, grid plot, lat/lon -C labels, contouring capability, AFOS plotfile -C read capability, and code to write putlab input -C for downstream use by a new station plotter in -C the bedient packer. Also changed name. -C 1998-08-10 Dennis Keyser Modified format for reading -C tcvitals records to prevent the ocassional -C failures that were occurring when previous -C program QCTROPCY writes a 'C' into character 65 -C of the record. This (climatology indicator) is -C a rare occurrence (format not changed if maxwind -C happens to be > 99 m/s (not sure this is even -C possible). -C 1999-01-25 Krishna Kumar Modified the code to run on IBM -C RS/6000 SP system. -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. -C 2017-10-17 Boi Vuong Added IOSTAT control specifier in formatted -C read statements for checking bad winds data -C -C USAGE: -C INPUT FILES: -C unit 11 - GFS 00 hour GRIB forecast file containing grib type -C - 3 u, and v grids -C unit 12 - Grib index to above -C unit 31 - optional quality controlled hurricane text bulletins -C ( in $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -C and $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL) -C unit 38 - Satellite low level wind observations -C unit 43 - AFOS station plotfile with linefeeds -C unit 44 - AFOS station plotfile (sans linefeeds) -C (see output file list) -C -C OUTPUT FILES: -C gmeta - implicitly opened as fortran unit 2 by ncar -C package -C unit 06 - standard output print -C unit 74 - text file containing tropical cyclone bulletin info -C unit 87 - AFOS station plotfile sans linefeeds to be -C read later in this program as unit 44 -C unit 88 Map title for downstream use by bedient packer -C unit 89 putlab argument file used by bedient packer. -C -C -C SUBPROGRAMS CALLED: -C UNIQUE: - closen openn get3 qcnt afosread -C - l2p cg mpr fill ccpllb -C - color sfill stream3 ridctlm afix -C - satread redsat dayowk i3to53 i53to3 -C - i3to8 hbull -C LIBRARY: -C NCAR GRAPHICS: -C - mappos wmsetr wmseti wmgetr maptra -C - pcseti plccmq plchmq wmbarb gslwsc -C - gsclip mapsti mapstc maproj mapset -C - mapdrw cpseti cpsetr gopks gopwk -C - gacwk gdawk gclwk gclks setusv -C - mapros dpseti frame gsln stream3 -C - sfnorm sfsetr hlsrgb gclwk gclks -C - gsfaci gscr gfa gsclip gsfais -C - cprect cppkcl plchhq cpcldr cplbdr -C - gdawk -C W3LIB - getgb w3fp11 getgb1 errexit w3tagb -C - w3tage putgb -C IPLIB - ipolates makgds -C SPLIB - sptrunv -C BACIO - baopen baclos -C BUFRLIB - openbf readmg readsb ufbint -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C 179 - Grib error on input or index file (unwise to -C continue -C =NNNN - system only -C -C REMARKS: IBM NCAR graphics are in /usrx/local/ncar401 -C CAVEAT requires ncar graphics version 4.0 or above -C as of this writing -C setenv NCARG_ROOT /usr/local/ncar4.0 -C setenv PATH "$PATH":/usr/local/ncar4.0/bin -C (or the bourne/korn analogs) -C handles this; only the first setenv is required -C but the other will likely be -C needed by ictrans downstream -C -C The latitude to pixel coordinate converter -C assumes a 6912x6912 domain and that -C a 6912x1728 slice will be cut horizontally -C out of the domain downstream. The slice -C is then supposed to be rotated 90 degrees -C counterclockwise so that the long axis becomes -C the y axis maximizing fax paper use. This code -C cannot detect if these assumptions are -C in fact met downstream, if not, stations -C will be plotted in incorrect locations. -C The algorithm is however NOT sensitive to -C map projection. -C -C ATTRIBUTES: -C LANGUAGE: Fortran 90 -C MACHINE: IBM -C -C$$$ - - PROGRAM TRPSFCMV - - parameter(nsta=124) - character*3 cmonth(12) - data cmonth/'JAN','FEB','MAR','APR','MAY','JUN','JUL', - 1 'AUG','SEP','OCT','NOV','DEC'/ - dimension f3(360,181) - character*4 ctemp,cday - character*3 cdir - character*80 ctext - character*80 ctext2,ctext3 - character*4 cda - COMMON/PACKRA/IRAS(10) - common/oth/u(70,40),v(70,40),rlats(nsta),rlons(nsta), - 1 up(nsta),vp(nsta),tp(nsta) -c paraMETER (RMNLON=-0.,RMXLON=359., - paraMETER (RMNLON=-0.,RMXLON=359., - 1 RMNLAT=-60.,RMXLAT=60.) - dimension kds(25) - dimension rl(2),rl2(2),rl3(2),rl4(2) - data rl,rl2,rl3,rl4/rmnlat,0.,rmxlat,0., - 1rmnlon,0.,rmxlon,0./ - dimension grid(360,181) - dimension g2(360,121),z2(360,121) - dimension u2(360,121), v2(360,121) - dimension f53(117,51) - character*40 ctit - dimension ifeet(8) - character*132 mtitle -c - character*11 envvar ! for ibm_sp_6000 - character*80 fileg,filegi ! for ibm_sp_6000 -c - CALL W3TAGB('TRPSFCMV',2001,0038,0059,'NP22') - 6 continue -c -c****** added for ibm_sp_6000 -c - lun=11 - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lun - call getenv(envvar,fileg) - call baopen(lun,fileg,iret) -c - luni=12 - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') luni - call getenv(envvar,filegi) - call baopen(luni,filegi,iret) -c -c****** -c - call openn -c - do 777 imap=1,1 - if(imap .gt. 1) then - lun=13 - luni=14 - endif - do 1 k=1,25 - 1 kds(k)=-1 - ix=360 - iy=121 -c do 1000 ,ll=1,1,-1 - call mappos (0.0,1.0,0.0,1.0) -C get streamfunction - call stream3(1000,-1,11,12,grid) - pi=3.1415927 - sin45=sqrt(2.)/2 - omega=2*pi/86400. - g=9.81 - fcoril=2*omega*sin45 - factor=fcoril/g - factor=factor/10. -C** CONVERT TO METERS - do k=1,360 - do j=1,121 - g2(k,j)=grid(k+0,152-j ) * factor - end do - end do -c** -c get temperature (fossil code) -c** get u for wind barbs - kds(5)=33 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - u2(k,j)=grid(k+0,152-j ) * 1.93 - end do - end do -c** -c** get v for wind barbs - kds(5)=34 - kds(6)=100 - kds(7)=1000 - call get3(lun,luni,kds,grid,mtitle) - do k=1,360 - do j=1,121 - v2(k,j)=grid(k+0,152-j )*1.93 - end do - end do -c** - call cpseti('CIS',3) - call gslwsc(2.0) - call qcnt (g2,ix,iy,rl,rl2,rl3,rl4,mtitle) - call hbull - call cpseti('CIS',3) - call gsln(0) - call cg( g2,ix,iy,1) - call cpseti('CIS',5) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - irr=1 - flat=40. - flon=270. - do 14,k=1,120,5 - call gslwsc (1.0) - do 14,l=1,360,5 - if (irr .eq. 1) then - irr=2 - else - irr=1 - endif - if(irr .eq. 1) then - l2=l-1 - k2=k - else - l2=l-1 -c k2=k+1 - k2=k - endif - flon=l2 - flat=k2-61. - call maptra(flat,flon,uu,vv) - iflat=flat+5. - if(iflat .lt. 0) then - write(ctemp,1087)-iflat - 1087 format(i2,x,'S') - else - write(ctemp,1088) iflat - 1088 format(i2,x,'N') - endif -c call plchmq( uuf,vvf,ctemp,1.,0.,0.) - call gslwsc(1.0) -c write(102,*) flat,flon,uu,vv,u2(l2,k2),v2(l2,k2) - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - if (l2 .eq. 0) l2 = 1 - call wmbarb(uu,vv,-u2(l2,k2),-V2(L2,K2)) - 14 continue - do 15,lat=-60,60,30 - do 15 lon=27,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 15 continue - do 16,lat=-33,60,30 - do 16 lon=0,360,30 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - 1089 format(i3,'E') - 1091 format(i3,'W') - else - write(ctemp,1091)(360-lon) - endif - call gslwsc(4.0) - call plchmq( uu,vv,ctemp,4.,0.,0.) - call gslwsc(1.0) - 16 continue - write(ctext,193)'TROPICAL SURFACE ANALYSIS VALID' - call DAYOWK(IRAS(8),IRAS(9),IRAS(10),idayy,cday) -c USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) - write(ctext2,194)iras(7),cday,cmonth(iras(9)),iras(8),iras(10) - write(88,1961)ctext,ctext2 - write(ctext3,196)'STREAM FUNCTION AND GRID WINDS' - write(79,1962)ctext2 - 1962 format(a30) - 196 format(a30) - 1961 format('STRIP ',' ',2a30) - 194 format(i2,'Z',x,a4,x,a3,x,i2,x,i4) - 193 format(a25,x,i2,'Z' ,i2,'/',i2,'/',i4) - call maptra(28.,230.,uu,vv) - call maptra(-12.,230.,uu2,vv2) - call maptra(-32.,270.,uu3,vv3) - call maptra(-32.,320.,uu4,vv4) - call maptra(-32.,80.,uu5,vv5) - call gslwsc(4.0) - call gslwsc(1.0) - do 17,lat=-37,60,10 - do 17 lon=0,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if( lon .lt. 180) then - write(ctemp,1089)lon - else - write(ctemp,1091)(360-lon) - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 17 continue - do 18,lat=-60,60,10 - do 18 lon=2,360,10 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) - if(lat .lt. 0) then - write(ctemp,1087)-lat - else - write(ctemp,1088) lat - endif - call plchmq( uu,vv,ctemp,1.,0.,0.) - call gslwsc(1.0) - 18 continue - do 19,lon=1,360,1 - do 19,lat=-60,60,1 - flon=lon - flat=lat - call maptra(flat,flon,uu,vv) -c call plchlq(uu,vv,'.',1.,0.,0.) - 19 continue - call gsln(4) -c call cg(z2,ix,iy,2) - call gsln(1) - call frame - 777 continue - call baclose(11,iret) - call baclose(12,iret) - call closen - CALL W3TAGE('TRPSFCMV') - stop - end -c -c************************************************************** -c - subroutine mpr(flat,flon) - call maptra(flat,flon,u,v) - print 101,flat,flon,u,v - 101 format('lat lon ' , 4f15.5) - return - end -c -c************************************************************** -c - subroutine qcnt(grid,ix,iy,rl,rl2,rl3,rl4,mtitle) - character*132 mtitle - integer (kind=8) ibb1,ibb2 - common/staa/ibitz - Data ibb1/Z'F0F0F0F0F0f0ffff'/ - data ibb2/Z'F0F0F0F0F0f0aa55'/ - dimension grid(ix,iy) - dimension rl(2),rl2(2),rl3(2),rl4(2) - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) -c dimension RLAT1(2), RLAT2(2), RLON1(2), RLON2(2) - dimension grid2 (ix,iy) - common/icc/icount - common/ctrxxx/junk1,jink2,iflag - iflag=0 - Rmnlon=rl3(1) - rmxlon=rl4(1) - rmnlat=rl(1) - rmxlat=rl2(1) - icount = 0 !modified for ibmsp - do 1 k=1,ix - do 1 j=1,iy -c grid2(k,(iy+1-j))=(grid(k,j)) - grid2(k,j)=grid(k,j) -c grid2(k,j)=(grid(k,j)-273)*1.8 +32 -c z(k,j)=k+j**2 - 1 continue - CALL GSCLIP (0) -C -C Draw Lat/Lon lines at 10 degree intervals. -C Draw political & continental outlines. -C - CALL MAPSTI ('GR - GRID',90) - CALL MAPSTC ('OU - OUTLINE DATASET','CO') -C -C Draw a Satellite view over the United States -C - CALL MAPROJ ('ME - SATELLITE-VIEW',00.,-180.,00.) -c CALL MAPROJ ('CE - SATELLITE-VIEW',0.,0.,00.) -c CALL MAPSET ('MA',RLAT1,RLON1,RLAT2,RLON2) -c call mapset('MA',rlatmin,rlonmin,rlatmax,rlonmax) -C -C Don't draw a square around the globe -C - CALL MAPSTI ('PE - PERIMETER FLAG', 0) -C -C Draw map. -C -c call gslwsc(4.0) -c HEAVY HEAVY - call setusv('LW',4000) - CALL MAPDRW -c read synoptic data from AFOS PLOTFILE - call afosread -c read satellite winds directly from bufr input on unit 10 -c call satread - call setusv('LW', 1000) - CALL MAPSTI ('GR - GRID',10) - CALL MAPSTC ('OU - OUTLINE DATASET','PS') - CALL MAPDRW - - CALL CPSETI ('SET - DO SET-CALL FLAG',0) - CALL CPSETR ('DPV - DASH PATTERN VECTOR SIZE',.0010) - call DPSETI('PCF',0) -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - - CALL CPSETI ('MAP - MAPPING FLAG',1) - call cpsetr('XC1',rmnlon) - call cpsetr('XCM',rmxlon) - call cpsetr('YC1',rmnlat) - call cpsetr('YCN',rmxlat) - ibitz=ibb1 -c call cg(grid2,ix,iy) - ibitz=ibb2 -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C -c CALL GDAWK (1) -c CALL GCLWK (1) -c CALL GCLKS -c CALL W3TAGE('TRPSFCMV') -c STOP -c hunt for centers - do 2 k=5,ix-4 - do 2 j=5,iy-4 - lat=-61+j - lon=k-1 - gradck=2.2 - fmin=grid2(k,j) - fmax=grid2(k,j) - do 4 kk=k-4,k+4 - do 4 jj=j-4,j+4 - if(grid2(kk,jj) .lt. fmin) fmin=grid2(kk,jj) - if(grid2(kk,jj) .gt. fmax) fmax=grid2(kk,jj) -c 1 grid2(k,j) .lt. grid2(k+1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k-1,j)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j+1)-gradck .and. -c 1 grid2(k,j) .lt. grid2(k,j-1)-gradck .and. -c 2 grid2(k,j) .lt. grid2(k+2,j) .and. -c 2 grid2(k,j) .lt. grid2(k-2,j) .and. -c 2 grid2(k,j) .lt. grid2(k,j+2) .and. -c 2 grid2(k,j) .lt. grid2(k,j-2) -c 3 ) then - 4 continue - if( (fmax-fmin) .lt. gradck) go to 2 - if (fmin .eq. grid2(k,j) .or. fmax .eq. grid2(k,j)) then - flat=lat - flon=lon - call maptra(flat,flon,uu,vv) - if (flat .gt. 0.) then - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - else - if (fmin .eq. grid2(k,j)) call plchhq(uu,vv,':F22:A',3.5,0.,0.) - if (fmax .eq. grid2(k,j)) call plchhq(uu,vv,':F22:C',3.5,0.,0.) - endif - endif - 2 continue - call satread - return - END -c -c************************************************************** -c - SUBROUTINE FILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) - - DIMENSION XWRK(*),YWRK(*),IAREA(*),IGRP(*) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .GT. 0) THEN -cC -C If the area is defined by 3 or more points, fill it -C - CALL GSFACI(IAREA3+2) - CALL GFA(NWRK,XWRK,YWRK) - ENDIF - -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine cg(zreg,ix,iy,ifld) -C - PARAMETER (IERRF=6, LUNIT=2, IWTYPE=1, IWKID=1) - - real ZREG(ix,iy) - - EXTERNAL COLOR -C -C Call Conpack color fill routine - do k=1,ix -ckumar print *,' zreg',(zreg(k,j),j=1,iy,5) - end do -C - CALL CCPLLB(ZREG,ix,iy,COLOR,IWKID,ifld) -C - - RETURN - END -c -c************************************************************** -c - SUBROUTINE CCPLLB(ZREG,MREG,NREG,COLOR,IWKID,ifld) - common/staa/ibitz - common/windz/u2(360,121),v2(360,121) - common/oth/u(70,40),v(70,40),rlats(65),rlons(65),up(65),vp(65) - PARAMETER (LRWK=50000,LIWK=50000,LMAP=900000,NWRK=50000,NOGRPS=6) - REAL ZREG(MREG,NREG),RWRK(LRWK), XWRK(NWRK), YWRK(NWRK) - INTEGER MREG,NREG,IWRK(LIWK) - INTEGER MAP(LMAP),IAREA(NOGRPS),IGRP(NOGRPS) - integer ibts(16,300) - DATA IBTS / 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, - 1 1600*0, - 1 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 2 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, - 3 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, - 4 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 5 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, - 6 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 7 160*0, 2928*0 / ! modified for ibmsp - EXTERNAL FILL -c data ibitz/Z'F0F0F0F0F0F03333'/ - external sfill - EXTERNAL CPDRPL - EXTERNAL COLOR -C -C Set fill style to solid and turn off clipping -C - CALL GSFAIS(1) - CALL GSCLIP(0) -C -C Set up label box options -C -c CALL CPSETI('CLS - CONTOUR LEVEL SELECTION FLAG',-30) - NOCL=300 - CALL CPSETI('LLP - LINE LABEL POSITIONING FLAG',4) -c CALL CPSETI('LLB - LINE LABEL BOX FLAG',4) - CALL CPSETI('LLB - LINE LABEL BOX FLAG',3) - CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',3) -c CALL CPSETI('HLB - HIGH/LOW LABEL BOX FLAG',4) - CALL CPSETI('ILB - INFORMATIONAL LABEL BOX FLAG',0) - CALL CPSETI('LBC - LABEL BOX COLOR INDEX',1) -c call cpseti('CIS',6) -cc call cpseti('LIS',1) - call cpseti('LIS',100) - call cpseti('LLP',2) - CALL CPSETR ('ORV - OUT-OF-RANGE VALUE',1.E12) - call cpsetr('RC1',0.15) - call cpsetr('LLS',0.00002) - call cpsetr('RC2',0.15) - call cpsetr('LLW',0.00001) -c call cpsetr('HLW',0.001) -c call cpsetr('HLS',0.002) - call cpsetr('HLW',0.0000001) - call cpsetr('HLS',0.0000002) - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - call cpsetc('HLT','A''C') - -C -C Initialize Conpack - -C - CALL CPRECT(ZREG, MREG, MREG, NREG, RWRK, LRWK, IWRK, LIWK) -C -C Set up color table -C - CALL CPPKCL (ZREG, RWRK, IWRK) - CALL CPGETI('NCL - NUMBER OF CONTOUR LEVELS',NCL) - DO 111 I=1,NCL - CALL CPSETI('PAI - PARAMETER ARRAY INDEX',I) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('AIA - AREA IDENTIFIER ABOVE',0) - CALL CPSETI('AIB - AREA IDENTIFIER BELOW',0) - 111 CONTINUE - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - CALL CPSETI('NCL - NUMBER OF CONTOUR LEVELS',NCL+2) - CALL CPSETI ('PAI',ncl+1) - call cpsetr('CLV',0.0) - call cpseti('AIB',5) - call cpseti('AIA',0) - CALL CPSETI('CLU - CONTOUR LEVEL USE FLAG',3) - if(zreg(50,50) .lt. 500) then -c CALL CPSETI ('PAI',ncl+2) -c call cpsetr('CLV',15.0) -c call cpseti('AIB',0) -c call cpseti('AIA',6) - endif -c call cpsetr('CLV',55.0) -c call cpseti('AIB',6) -c call cpseti('AIA',0) - DO 11 I=1,ncl - ivarv=ibitz - print 198,ivarv - 198 format(z16) -c CALL CPSETI('PAI - PARAMETER ARRAY INDEX',i) -c CALL CPSETI('CLD - CONTOUR LINE DASH PATTERN', -c + ivarv) - 11 continue - CALL COLOR(NCL+1,IWKID) - call PCSETI('CC',0) - - -C -C Draw Perimeter -C -c CALL CPBACK(ZREG, RWRK, IWRK) - call gslwsc(1.0) -C -C Initialize Areas -C -cc CALL ARINAM(MAP, LMAP) -C -C Add label boxes to area map -C -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(1) -c cc CALL CPLBAM(ZREG, RWRK, IWRK, MAP) -C -C Draw Labels -C - call gsln(0) -c CALL CPLBDR(ZREG, RWRK, IWRK) -C -C Add contours to area map -C -c CALL CPCLAM(ZREG, RWRK, IWRK, MAP) - call gslwsc(3.0) -c if(zreg(50,50) .lt. 50.) - if(ifld .eq. 2) - 1 call gsln(4) - call cpcldr(zreg,rwrk,iwrk,map,cpdrpl) -c NEW LINE - call gslwsc(2.0) - call cplbdr(zreg,rwrk,iwrk) - -c call cpcldm(zreg,rwrk,iwrk,map,cpdrpl) -c call gsln (1) -C -C Fill contours -C -c CALL ARSCAM(MAP, XWRK, YWRK, NWRK, IAREA, IGRP, NOGRPS, SFILL) - 99 continue - CALL WMSETR('WBS',0.004) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - RETURN - END -c -c************************************************************** -c - SUBROUTINE COLOR (N,IWKID) -C -C BACKGROUND COLOR -C -C -C BLACK -C - CALL GSCR(IWKID,0,0.,0.,0.) -C -C First foreground color is white -C - CALL GSCR(IWKID,1,1.,1.,1.) -C -C Second foreground color is gray -C - CALL GSCR(IWKID,2,0.5,0.5,0.5) -C -C Choose other foreground colors spaced equally around the spectrum -C - ICNT=0 - HUES=360./N -C -C REDLN is intended to be the line between red and violet values -C - REDLN=36.0 - LAP=INT(REDLN/HUES) - DO 10, I=1,N - XHUE=I*HUES - CALL HLSRGB(XHUE,60.,75.,RED,GREEN,BLUE) -C -C Sort colors so that the redest is first, and violetest is last -C - IF (XHUE.LE.REDLN) THEN - CALL GSCR(IWKID,(N+2)-(LAP-I),RED,GREEN,BLUE) - ICNT=ICNT+1 - ELSE - CALL GSCR(IWKID,I-ICNT+2,RED,GREEN,BLUE) - ENDIF - 10 CONTINUE - - RETURN - END -c -c************************************************************** -c - SUBROUTINE SFILL (XWRK,YWRK,NWRK,IAREA,IGRP,NGRPS) -C - REAL XWRK(*),YWRK(*),ISCR(5000) - INTEGER IAREA(*),IGRP(*),RSCR(5000) - - DO 10, I=1,NGRPS - IF (IGRP(I).EQ.3) IAREA3=IAREA(I) - 10 CONTINUE - - IF (IAREA3 .eq. 5) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 0.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF - IF (IAREA3 .eq. 6) THEN -C -C If the area is defined by 3 or more points, fill it -C - CALL SFSETR('SPACING',.006) - CALL SFSETR('AN', 90.) - CALL SFNORM(XWRK,YWRK,NWRK,RSCR,5000,ISCR,5000) - ENDIF -C -C Otherwise, do nothing -C - RETURN - END -c -c************************************************************** -c - subroutine i3to53(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i53to3(F53,F3) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - logical log3(360,181) - equivalence (lo_03,log3) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - - do k=1,360 - log3(k,1)=.FALSE. - log3(k,181)=.FALSE. - end do - ibi=0 -cc define 360x181 grid - call makgds(53,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(3,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,jo53,ji2,1, - 1 ibi,lo_03,F53,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F3,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine i3to8(F3,F53) - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(116,44) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(ji),rlon_53(ji) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(ji) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(8,kgdso,gdso,lengds,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'makgd' - endif -C - ipopt=0 - ip = 0 - ji2=ji - call ipolates(ip,ipopt,kgdsi,kgdso,ji,ji2,1, - 1 ibi,lo_03,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - if(iret.ne.0) then - CALL W3TAGE('TRPSFCMV') - stop 'ipol' - endif - return - end -c -c************************************************************** -c - subroutine closen -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C - CALL GDAWK (1) - CALL GCLWK (1) - CALL GCLKS - return - end -c -c************************************************************** -c - subroutine openn -C OPEN GKS, OPEN WORKSTATION OF TYPE 1, ACTIVATE WORKSTATION -C - CALL GOPKS (6,IDUM) - CALL GOPWK (1, 2, 1) - CALL GACWK (1) - return - end -c -c************************************************************** -c - Subroutine get3(lun,luni,jpds,a2,c132) - common/grbpds/kpds - COMMON/PACKRA/IRAS(10) -c array is an NMC GRIB TYPE 3 field on output -c jpds is set in the CALLER!! except for fields 1-3 - dimension array(360,181),a2(360,181) - dimension jpds(25),jgds(25) - dimension grib(360,181) - dimension kpds(25),kgds(25) - character*132 c132 - logical lb(360,181) - jf=360*181 - jflag=-1 - kf=jf - do i = 1, 25 - kpds(i) = 0 - kgds(i) = 0 - end do - k = 0 - ier = 0 -c jpds(2)=77 - jpds(1)=7 -c jpds(3)=104 - jpds(3)=3 - print 101,lun,luni - print 109,(jpds(ll),ll=1,25) - 109 format(5z17) - call getgb1(lun,luni,jf,jflag,jpds,jgds, - 1 grib,kf,k,kpds,kgds,lb,array,ier) -c if ( ier .ne. 0) then -c CALL W3TAGE('TRPSFCMV') -c call errexit(99) -c endif - call w3fp11(grib,grib(2,1),c132,ierr) - print 106,k,c132 - 106 format(i6, 'LAB ',a132) - print 101,ier,k,kf - if(ier .ne.0 ) then - CALL W3TAGE('TRPSFCMV') - call errexit(9999) - endif - print 102,(array(90,k),k=1,181) - 102 format(10f8.2) - 101 format(i9) -cj do 45,k=1,181 -c do 45,j=1,360 -c 45 if(j .gt. 70 .or. k .gt. 70) array(j,k)=array(70,70) -c SET IRAS VARIABLES - iras(1)=kpds(14) - iras(7)=kpds(11) - iras(8)=kpds(10) - iras(9)=kpds(9) -C This should generate the proper 4-digit year no matter what!! - mcen=max(0,kpds(21)-1) - iras(10)=mcen*100+kpds(8) - if(iras(10) .le. 20) then - iras(10)=iras(10)+2000 - else if(iras(10).le.99) then - iras(10)=iras(10)+1900 - end if -c iras(3)=iras(7) -c iras(4)=iras(8) -c iras(5)=iras(9) -c iras(6)=iras(10) -c flip type 3 grid - do k=1,181 - do j=1,360 -c a2(j,182-k)=array(j,k) - a2(j,k)=array(j,k) - end do - end do - return - end -c -c************************************************************** -c - Subroutine stream3(mbars,itime,lupgb,lupgi,F3) -c -c George VandenBerghe 11/17/96 -c -c subroutine to accept pressure level (mbars), -c grib unit number (lupgb), and grib index unit -c number (lupgi) and read u, and v wind fields, -c at mbars, and calculate stream function. Stream -c function is stored in F3 and returned to caller. -c The Grib fields on lupgb MUST be grib type 3 (360x181) -c fields. These are output automatically by the NCEP -c GFS forecast model. -c These stream functions are dimensionally correct -c m**2/sec streamfunctions -c 11/17/96 add on !! -c logic added to handle tropopause level. Passing -c in pressure as 7 mbars tells code to wildcard -c pressure and take tropopause level values - parameter(im=360,jm=181,km=16) - dimension F3(im,jm) - dimension iprs(km) - integer kpds(100), kgds(100) - integer jpds(100), jgds(100) - logical lbms(im*jm), luv, ldz, lps - real u(im,jm), v(im,jm), psi(im,jm),chi(im,jm) - data iromb/0/,maxwv/126/,idrti/0/,imaxi/360/,jmaxi/181/ - data idrto/0/,imaxo/360/,jmaxo/181/,kmax/1/ - data iprime/0/,iskipi/0/,jskipi/0/,kspipi/0/ - data iskipo/0/,jskipo/0/,kspipo/0/,jcpu/0/ -c --- coordinate testing code - x1=50 - y1=60 - x2=180 - y2=60 - x3=180 - y3=120 - - luv = .False. - ldz = .False. - lps = .True. - ijm = im * jm - fim = im - lskip=-1 - k=0 - do jj = 1, 100 - jpds(jj) = -1 - enddo - do jj = 1, 20 - jgds(jj) = -1 - enddo - jpds(5) = 33 - jpds(6) = 100 - jpds(7) =mbars - jpds(14)=itime -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,u,iret) -c print *,' KPDS AFTER U' -c print 189,kpds - if(iret.ne.0) then - endif - jpds(5) = 34 - jpds(6) = 100 - jpds(7) = mbars -c special code for troposphere. If mbars is set -c to seven, ignore pressure level and take tropopause -c values - if(mbars .eq. 7) then - jpds(6)=7 - jpds(7)=-1 - endif -c end special trop code - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,v,iret) - if(iret.ne.0) then - endif - call SPTRUNV(IROMB,MAXWV,IDRTI,IMAXI,JMAXI, - & IDRTO,IMAXO,JMAXO,KMAX, - & IPRIME,ISKIPI,JSKIPI,KSKIPI, - & ISKIPO,JSKIPO,KSKIPO,JCPU,U,V, - & LUV,GRIDUO,GRIDVO,LDZ,GRIDDO,GRIDZO, - & LPS,chi,psi) - print 109,k - 109 format(' K is ',i9) -c - do j=1,jm - do k=1,im - f3(k,j)=psi(k,j) - end do - end do - kpds(5)=35 -c print *,' KPDS to be put' -c print 189,kpds - 189 format(5Z20) -c WRITE THE STREAMFUNCTIONS TO UNIT 51!! -c call putgb(51,ijm,kpds,kgds,lbms,f3,iret) -c end write - if(iret .ne. 0) print *, - 1 ' WARNING PUT OF STREAMFUNCTION FAILED return code ', iret, - 1 ' from putgb ' - print *,' FEW STREAMS',psi(50,50),psi(100,100) - 990 continue - return - end -c -c************************************************************** -c - subroutine afosread -c field 4 time (4 digits) -c field 5 name ( 5 digits) -c field 6 sky cover i A aircraft S sat M missing -c7 field 7 wind ddfff -c field 8 pressure (mb*10. significant digits) -c field 9,10 temp and dew -c 11 present weather (code or text) -c 12 visibility -c 13 pressure change -c 14 barograoh trace (code table 12) -c 15 low/middle/high cloud -c 16 precip -c 17 remarks -c lat lon are 18 and 19 -c 20 ship course and speed - dimension points(100000,2) - character*160 cline - character*160 cout - integer icom(40) - character*8 ccom(40),cf -c - do nn=1,2 - do mm=1,100000 - points(mm,nn)=0 - enddo - enddo -c - call ridctlm - do k=1,20 - ccom(k)=' ' - end do -c - open(44,file='afosplot') -c -c do jjj=1,2 -c read(44,101)cline -c enddo -c - do 10000 kkk=1,100000 - 101 format(a160) - read(44,101,end=999,err=997) cline - write(85,101) cline -c print 101,cline -c find the commas - idx=1 - is=1 - cf=' ' - ico=0 - do 10,k=1,160 - if(cline(k:k) .eq. ',' .or.cline(k:k).eq.';') then - ico=ico+1 -c - if(ico.ge.40) then - print *,' MORE THAN 40 COMMAS in line ',kkk - go to 10000 - endif -c - icom(ico)=k - ccom(ico)=cf - cf=' ' - idx=1 - if(cline(k:k) .eq. ';') go to 19 - else - cf(idx:idx)=cline(k:k) - idx=idx+1 -c - if(idx .gt. 8) then - print *,' MORE THAN 8 blanks between commas in line ',kkk - go to 10000 - endif -c - endif - 10 continue - 19 continue - do k=1,20 - if(ccom(k) .eq. ' ') ccom(k)='-9999 ' - end do - do k=1,5 - if(ccom(15)(k:k).eq.'/') ccom(15)(k:k)='0' - end do - if(ccom(6)(8:8).eq. 'M') ccom(6)='-9999 ' - if(ccom(6)(1:1).eq. 'M') ccom(6)='-9999 ' - if (kkk .lt. 5) print 129,ccom - 119 format(i3,a3,20i3) - read(ccom(7),179)id,isp - 179 format(i3,i2) - read(ccom(9),149)itemp - read(ccom(6),149) icover - read(ccom(11),149) iwx - if(iwx .gt.99 .or. iwx .lt.0) iwx=-9999 - print *,' ICOVERC',icover - read(ccom(10),149)idew - read(ccom(18),159)ilat - read(ccom(15),149)icloud - if(icloud .gt. 0) print *,' ICLUD',icloud - read(ccom(19),169)ilon - read(ccom(8),149) ipres - read(ccom(14),149)itrace - read(ccom(13),149) itend - if (ccom(18)(4:4) .eq. 'S') ilat=-ilat - if(ccom(19)(5:5) .eq.'W') ilon=-ilon+3600. - flat=(ilat+0.5)/10. - flon=(ilon+0.5)/10. - call maptra(flat,flon,uu,vv) - if(id.eq.-99)id=-999 - dir=id - theta=(90-dir)*3.1415927/180. - u=cos(theta)*isp - v=sin(theta)*isp - dir=dir-90. - if(dir .le. 0) dir=dir+360 - if(flat .lt. 0) dir=-dir - id=dir - ilat=flat - ilon=floN - points(kkk,1)=400. - points(kkk,2)=400. - do 39,l=1,kkk-1 - xd=(points(l,1)-ilat)*2.0 - yd=points(l,2)-ilon - sargg=xd**2 + yd**2 -c write(102,*)' square root ',kkk,sargg - if(sargg .lt. 0.) then - write(102,*)' negative square root potential ',kkk,sargg - go to 10000 - endif -c - dist=sqrt(xd**2 + yd**2) -c dist=sqrt( (points(l,1)-ilat)**2 + (points(l,2)-ilon)**2) - if (dist .lt. 3.9) go to 10000 - if(ccom(3)(1:1) .eq. '7') go to 10000 -c if (dist .lt. 0.5) go to 10000 - 39 continue - points(kkk,1)=ilat - points(kkk,2)=ilon - 149 format(i8) - 159 format(i3) - 169 format(i4) - print *,'STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - if(iwx .gt. 0) - 1 print *, - 1 'WX STATION TEMPS ',itemp,idew,' WIND ',id,isp,ilat,ilon,iwx - call l2p(flat,flon,iprx,ipry) - if(iprx .lt. -9999. .or. iprx .gt. 9999 .or. - 1 ipry .lt. -9999 . .or. ipry .gt. 9999) - 1 go to 10000 - write(89,105)'STATION PLOT', - 1 iprx,ipry,itemp,idew,ipres,itend,id,isp,icover,iwx,itrace,icloud - 1 ,ccom(5) - 1 ,ccom(18),ccom(19) -c 1 iprx,ipry,itemp,idew,ipres,itend,id,isp -c 1 iprx,ipry,itemp,idew,ilon,ilat,id,isp,icover,ccom(5) - 105 format(a16,12i5,x,3a9) - 139 format(96x,2i8) - 129 format(20a8) -10000 continue - print *,'WARNING, INPUT AFOS PLOTFILE NOT EXHAUSTED' - 997 continue -c print *,' ENDED DATA WITH ERROR' - 999 continue - return - end -c -c************************************************************** -c - subroutine l2p(flat,flon,iprx,ipry) - call maptra(flat,flon,uu,vv) - fx=cufx(uu) - fy=cufy(vv) - px=6912*fx -c1 py=-6912*(fy-.625555555) - py=-6912*(fy-.575555555) - iprx=py - ipry=px - print *,'L2P ', 'flat,flon,px,py,iprx,ipry', - 1 flat,flon,px,py,iprx,ipry - return - end -c -c************************************************************** -c - subroutine ridctlm -c remove all ctlm characters from fort.43 and write to fort.87 - dimension jstat(100) -c is=stat('fort.43',jstat) -c lnn=jstat(8) - read(5,101)lnn - 101 format(i10) - print*,'file size of fort.43 ',lnn - call afix(lnn) - return - end -c -c************************************************************** -c - subroutine afix(lnn) - character*1 bytes(lnn) - integer (kind=8) ip - data ip/Z'0D'/ ! CTRL-M - character*1 c1(8) - equivalence(c1,ip) -ckumar - open(43,file='NHPLOT',access='direct',recl=1280) -c - na=1 ; nb=1280 -c - nrec=lnn/1280 - print*,'In afix lnn & nrec : ',lnn,nrec -c - do ir=1,nrec - read(43,rec=ir)bytes(na:nb) - na=na+1280 - nb=nb+1280 -ckumar print*,'In afix ir, na & nb ',ir,na,nb - enddo -c - do 10,k=1,lnn - if(bytes(k) .eq. c1(8)) bytes(k)=' ' - 10 continue -c - write(87) bytes - close(87) - return - end -c -c************************************************************** -c - -C DATA SET DAYOWK AT LEVEL 001 AS OF 04/16/93 - SUBROUTINE DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DAYOWK FIND NUMERICAL DAY OF WEEK. -C PRGMMR: HENRICHSEN ORG: NMC41 DATE:93-05-11 -C -C ABSTRACT: GIVEN DAY MONTH AND YEAR AS INTEGERS RETURN DAY OF WEEK AS -C AND INTEGER NUMBER AND AS FOUR CHARACTER HOLLERTH TEXT. -C -C PROGRAM HISTORY LOG: -C 84-MM-DD WICK -C 85-MM-DD HENRICHSEN REMOVE OLD KEY PUNCH CHARACTERS AND CLEAN UP. -C 87-12-10 HENRICHSEN CONVERT TO VS FORTAN 77. -C -C USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C INPUT ARGUMENT LIST: -C IDAY - INTEGER TWO DIGET DAY OF MONTH( 1 THRU 31 ). -C IMONTH - INTEGER TWO DIGET MONTH OF YEAR( 1 THRU 12). -C IYEAR - INTEGER TWO OR FOUR DIGET YEAR. -C IYEAR SHOULD BE THE COMPLETE FOUR DIGIT YEAR. -C IF ONLY LAST 2 DIGITS OF YEAR ARE GIVEN, -C ASSUMES 20TH CENTURY... -C -C OUTPUT ARGUMENT LIST: -C IDAYWK - INTEGER NUMBER OF DAY OF WEEK ( 1 THRU 7 ). -C IHDAYW - CHARACTER*4 WORD CONTAINING THE THE THREE LETTER -C - DAY OF THE WEEK LEFT JUSTIFED IN THE WORD. -C - IE 'MON ', .... 'FRI ', .... 'SUN '. -C ERRFLAG - ERROR OF OUT OF RANGE ARGUEMENT IS INDICATED BY THE -C - RESULTING IDAYWK = 0, AND IHDAYW = BLANKS. -C -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C FT06F001 - ERROR PRINT WHEN ARGUEMENTS OUT OF RANGE. -C -C REMARKS: NONE. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ - CHARACTER*4 IHDAYW - CHARACTER*4 ITEXT(2) - CHARACTER*4 KHDAY(7) - CHARACTER*4 KLANK - CHARACTER*4 NHDAY(2) - CHARACTER*4 NHMON(2) - CHARACTER*4 NHYR(2) -C - INTEGER KCEN(5) - INTEGER KDAYS(12) - INTEGER MONTAB(12) -C - DATA KHDAY /'SUN ','MON','TUE ', - 1 'WED ','THU ','FRI ','SAT '/ - DATA KLANK /' '/ - DATA NHDAY /'DAY ',' '/ - DATA NHMON /'MONT','H '/ - DATA NHYR /'YEAR',' '/ -C - DATA KCEN /4,2,0,6,4/ - DATA KDAYS /31,29,31,30,31,30,31,31,30,31,30,31/ - DATA MONTAB /1, 4, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6/ -C - IDAYWK = 0 - IHDAYW = KLANK - ISFEB = 0 - IDA = IDAY - IMO = IMONTH - IYR = IYEAR - IF(IMO) 911,911,122 - 122 IF(IMO .GT. 12) GO TO 911 - IF(IDA) 922,922,133 - 133 IF(IDA .GT. KDAYS(IMO)) GO TO 922 - ICENT = IYR / 100 - IYR2 = IYR - 100 * ICENT - IF(ICENT) 933,140,144 - 140 CONTINUE -C ...IF ONLY LAST 2 DIGITS OF YR WERE GIVEN, ASSUME ITS 1900 + - ICENT = 19 - IYR = IYR + 1900 - 144 CONTINUE - ICENTX = ICENT - 16 - IF(ICENTX) 933,933,155 - 155 IF(ICENTX .GT. 5) GO TO 933 -C ...THE GIVEN DATE INFO IS W/I RANGE... - ISUM = KCEN(ICENTX) + IYR2 +IYR2/4 + MONTAB(IMO) + IDA - IF(IMO - 2) 222,211,611 -C ...OTHERWISE, THIS IS JAN OR FEB, SO CHECK FOR LEAP YR... - 211 ISFEB = 1 - 222 CONTINUE - IF(MOD(IYR,4)) 533,511,533 -C ...MOST LIKELY A LEAP YR. TEST FOR CENTURY YR... - 511 CONTINUE - IF(IYR2)522,515,522 - 515 CONTINUE - IF(MOD(IYR,400))533,522,533 -C ...COMES TO 522 IF LEAP YR CORRECTION IS NEEDED... - 522 CONTINUE - ISUM = ISUM - 1 - GO TO 611 - 533 CONTINUE -C ...COMES TO 533 IF NOT A LEAP YR, SO IF FEB, MUST RETEST IDA... - IF(ISFEB)544,611,544 - 544 CONTINUE -C ...THIS IS FEB OF A NON-LEAP YR. - IF (IDA .GE. KDAYS(2)) GO TO 922 - GO TO 611 - 611 CONTINUE - IDAW = MOD(ISUM,7) - IF(IDAW) 644,633,644 - 633 CONTINUE - IDAW = 7 - GO TO 644 - 644 CONTINUE - IDAYWK = IDAW - IHDAYW = KHDAY(IDAW) - RETURN -C - 911 CONTINUE -C ...COMES HERE IF GIVEN MONTH OUT-OF-RANGE... - ITEXT(1) = NHMON(1) - ITEXT(2) = NHMON(2) - GO TO 955 - 922 CONTINUE -C ...COMES HERE IF GIVEN DAY OUT-OF-RANGE - ITEXT(1) = NHDAY(1) - ITEXT(2) = NHDAY(2) - GO TO 955 - 933 CONTINUE -C ...COMES HERE IF GIVEN YR OUT OF RANGE - ITEXT(1) = NHYR(1) - ITEXT(2) = NHYR(2) - GO TO 955 - 955 CONTINUE - PRINT 956, ITEXT(1),ITEXT(2),IDAY,IMONTH,IYEAR - 956 FORMAT(1H0,10X,'ERROR EXIT FROM DAYOWK. GIVEN ', A4, A1, 1X, - X 'OUT-OF-RANGE', /1H0,15X,'IDAY = Z', Z8, 4X,'IMONTH = Z', - X Z8, 4X, 'IYEAR = Z', Z8) - RETURN - END -c -c************************************************************** -c - subroutine satread -c READS SATELLITE WIND DATA AND DRAWS WIND BARBS -c ON ANY NCAR GRAPHICS PLOTTING FRAME WITH LATLON -c FRAME MAPPING DEFINED (general for weather plots) - dimension ary(6) - CALL WMSETR('WBS',0.003) - CALL WMSETR('WBD',0.17) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - do 10,k=1,9999999 - read(38,101,IOSTAT=ios,end=99)ary - 101 format(6x,6f10.4) - if(ios.ne.0)then - print*,'skipping bad record in unit 38' !if worth printing - go to 10 - endif - flat=ary(1) - flon=ary(2) - dir=ary(4) - speed=ary(5) - qcm=ary(6) - u=speed*sin(dir*3.1415927/180.) - v=speed*cos(dir*3.1415927/180.) - call maptra(flat,flon,uu,vv) -c print *,'calling wmbarb',uu,vv,u,v - call WMSETR('WBA',70.) - if(flat .lt. 0.) call WMSETR('WBA',-70.) - call wmbarb(uu,vv,u,v) - call plchhq(uu,vv,':F19:c',1.5,0.,0.) -c call plchhq(uu,vv,':F22:C',9.5,0.,0.) - 10 continue - 99 continue - return - end -c -c************************************************************** -c -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDSAT READ UPPER AIR BUFR FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 97-06-03 -C -C ABSTRACT: REDSAT READS THE PREPBUFR OBSERVATIONAL FILE AND -C RETURNS A SINGLE SATWND REPORT IN ARRAY DATA -C -C PROGRAM HISTORY LOG: -C 97-06-03 LARRY SAGER -C -C USAGE: CALL REDSAT (RLIMS, IUNS, DATA, IRET) -C INPUT ARGUMENT LIST: -C RLIMS - LAT/LONG LIMITS TO DUMP -C IUNS - UNIT NUMBER OF PREPBUFR FILE -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C DATA - THE RETURNED SATWND REPORT. -C - LAT, LONG, PRESALT, WDIR, WSP, WQM -C IRET - FLAG: IRET=0 NORMAL RETURN -C IRET=-1 END OF FILE -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT55F001 - PREPBUFR UPPER AIR DATA FILE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM-SP -C -C$$$ - SUBROUTINE REDSAT(RLIMS, IUNS, DATA, IRET) -C -C REDUPA READS THE PREPBUFR FILE AND RETURNS AN UNPACKED -C SATWND REPORT. -C - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CTEMP - CHARACTER*40 CATH, STRING -C - DIMENSION HDR (10) -C - REAL CRR (5,255) - REAL RLIMS (4) - REAL DATA(6) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA STRING /'SID XOB YOB DHR ELV TYP SQN'/ - DATA CATH /'CAT=6 POB DDO FFO WQM'/ - DATA IX /0/ -C -C----------------------------------------------------------------------| -C OPEN THE IBM-SP BUFR TANK FILE | -C----------------------------------------------------------------------| -C - SAVE - IRET = 0 - IMASS = 0 - IWIND = 0 - LUBFR = IUNS - IF( IX .EQ. 0) THEN - IX = 1 - INOUT = 'IN' - LUNDX = 10 - CALL OPENBF( LUBFR, INOUT, LUNDX ) - 10 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF(IRET1 .NE. 0) GOTO 50 - ITYP = 0 - IF(SUBSET .NE. 'SATWND' ) GOTO 10 - ENDIF -C -C----------------------------------------------------------------------| -C READ THE BUFR DATA TANKS -C----------------------------------------------------------------------| -C - 20 CALL READSB (LUBFR,IRET2) - IF (IRET2 .LT. 0) THEN - 22 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) - IF (IRET1 .LT. 0) GOTO 50 - IF(SUBSET .EQ. 'SATWND' ) GOTO 20 - GOTO 22 - END IF -C -C----------------------------------------------------------------------| -C READ IN THE STATION INFORMATION | -C----------------------------------------------------------------------| -C - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C PRINT 119,HDR(1),HDR(6) - 119 FORMAT(' STATION ',A8,' subtype ',F10.1) -C -C MAKE SURE THIS STATION IS WITHIN THE LAT/LONG LIMITS -C - IF((HDR(3) .GT. RLIMS(1)) .OR. (HDR(3) .LT. RLIMS(2))) - 1 GOTO 20 - IF((HDR(2) .LT. RLIMS(3)) .OR. (HDR(2) .GT. RLIMS(4))) - 1 GOTO 20 -C -C----------------------------------------------------------------------| -C UNPACK THE BUFR REPORT -C----------------------------------------------------------------------| -C - IF((HDR(6) .GE. 240.) .AND. (HDR(6) .LE. 246.))THEN - CALL UFBINT (LUBFR, CRR, 5, 255, NRET2, CATH) -C PRINT *,'SATWNDS ',CRR(2,1),CRR(3,1) - DATA(1) = HDR(3) - DATA(2) = HDR(2) - DATA(3) = CRR(1,1) - DATA(4) = CRR(2,1) - DATA(5) = CRR(3,1) - DATA(6) = CRR(4,1) -C PRINT *,' DATA ',(DATA(KK),KK=1,6) - ELSE - GOTO 20 - END IF - RETURN -C - 50 IRET = -1 - RETURN - END -c -c************************************************************** -c - subroutine hbull -c reads quality controlled hurricane bulletins from either: -c $COMIN/gblav.$cycle.syndata.tcvitals.tm00 for GFS -c $COMIN/gdas1.$cycle.syndata.tcvitals.tm00 for FNL -c and writes putlab call information and box drawing -c information for use downstream by bedient packing -c and drawing program sixbitb2. Input is fortran -c unit 31 and output is fortran unit 74. - -C 2001-02-09 Dennis Keyser Updated subroutine HBULL to handle -C tcvitals records with 4-digit year (and to still -C work properly for bulletins with a 4-digit -C year), this had not been working properly since -C late 1999 when 4-digit years were written to the -C tcvitals file (always stamped out "NO TROPICAL -C CYCLONE ACTIVITY REPORTED"); also changed HBULL -C to recognize expanded test storm id range (now -C 80-99, was 90-99) implemented by TPC. - - - COMMON/PACKRA/IRAS(10) - - character*10 names(16) - character*128 clines(100) - character*128 cline - character*128 dumy2k - character*10 cname - character*13 cdate - character*2 c2 - character*80 cout,cnull - - print *, ' ' - print *, ' ===> ENTERING SUBROUTINE HBULL' - print *, ' ' - - write(c2,'(i2.2)') iras(7) - - cnull='NO TROPICAL CYCLONE ACTIVITY REPORTED' - icount=0 - icounta=0 - klines=0 - names='xxxxxxxxxx' - - do k=1,100 - read(31,fmt='(a128)',end=9) cline - -C AT THIS POINT WE DO NOT KNOW IF A 2-DIGIT YEAR BEGINS IN COLUMN 20 -C OF THE RECORD (OLD NON-Y2K COMPLIANT FORM) OR IF A 4-DIGIT YEAR -C BEGINS IN COLUMN 20 (NEW Y2K COMPLIANT FORM) - TEST ON LOCATION OF -C LATITUDE N/S INDICATOR TO FIND OUT ... - - if(cline(35:35).eq.'N' .or. - . cline(35:35).eq.'S') then - -C ... THIS RECORD STILL CONTAINS THE OLD 2-DIGIT FORM OF THE YEAR - -C ... THIS PROGRAM WILL CONVERT THE RECORD TO A 4-DIGIT YEAR USING THE -C "WINDOWING" TECHNIQUE SINCE SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 2-digit year "',cline(20:21),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - DUMY2K(1:19) = cline(1:19) - IF(cline(20:21).GT.'20') THEN - DUMY2K(20:21) = '19' - ELSE - DUMY2K(20:21) = '20' - ENDIF - DUMY2K(22:128) = cline(20:126) - cline = DUMY2K - PRINT *, ' ' - PRINT *, '==> 2-digit year converted to 4-digit year "', - . cline(20:23),'" via windowing technique' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - ELSE IF(cline(37:37).eq.'N' .OR. - . cline(37:37).eq.'S') THEN - -C ... THIS RECORD CONTAINS THE NEW 4-DIGIT FORM OF THE YEAR -C ... NO CONVERSION NECESSARY SINCE THIS SUBSEQUENT LOGIC EXPECTS THIS - - PRINT *, ' ' - PRINT *, '==> Read in RECORD from tcvitals file -- ', - . 'contains a 4-digit year "',cline(20:23),'"' - PRINT *, ' ' - PRINT *, 'From unit 31; cline: ',cline - PRINT *, ' ' - PRINT *, '==> No conversion necessary' - PRINT *, ' ' - ELSE - PRINT *, ' ' - PRINT *, '***** Cannot determine if this record contains ', - . 'a 2-digit year or a 4-digit year - skip it and try ', - . 'reading the next record' - PRINT *, ' ' - CYCLE - END IF - - clines(k)=cline - klines=k - enddo - - 9 continue - - LOOP1: do k=klines,1,-1 - cline=clines(k) - print *, ' ' - print *, 'Look at record: ',cline - print *, ' ' - - LOOP1n1: do j=1,16 - -c look for same name and time - - if(cline(29:30) .ne. c2) then - print *, ' ' - print *, 'Do not process this record because its hour ', - . '(=',cline(29:30),') is different than the ', - . 'cycle hour (=',c2,')' - print *, ' ' - cycle LOOP1 - endif - if(cline(6:6) .eq. '8' .or. cline(6:6) .eq. '9') then - print *, ' ' - print *, 'Do not process this record because it is a ', - . 'test storm, storm id =',cline(6:7) - print *, ' ' - cycle LOOP1 - endif - if(names(j) .eq. cline(10:19) .and. - . names(j) .ne. 'NAMELESS' ) then - print *, ' ' - print *, 'Do not process this record because it has a', - . ' name that has already been processed (name=', - . cline(10:19),')' - print *, ' ' - cycle LOOP1 - endif - print *, ' ' - print *, 'NAMES ',cline(10:19),names(j) - print *, ' ' - enddo LOOP1n1 - - LOOP1n2: do j=1,16 - -c assign new name - - print *, ' ' - print *, 'threeloop' - print *, ' ' - if(names(j) .eq. 'xxxxxxxxxx' ) then - names(j)=cline(10:19) - cname=cline(10:19) - cdate=cline(20:32) - -c - On rare occasions, upstream program QCTROPCY can stamp a 'C' into -c character 67 - this had resulted in a failure in this program -c (note 104 format). Change by Keyser (08/10/1998) uses 9104 format -c if mwind < 100 . - - if(cline(67:67).eq.'1') then - read(cline,104)latd,lond,idir,isp,icp,mwind - 104 format(33x,i3,2x,i4,x,i4,i4,x,i4,10x,i3) - else - read(cline,9104)latd,lond,idir,isp,icp,mwind -9104 format(33x,i3,2x,i4,x,i4,i4,x,i4,11x,i2) - end if - flat=latd/10. - flon=lond/10. - fdir=idir - fsp=isp/10. - central_pressure=icp - - write(cout,105) cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - ic=530+10*j - iatl=0 - ipac=0 - if(lond -latd .lt. 800) iatl =1 - if(lond-latd .gt. 720 .and. latd .lt. 150) ipac=1 - if(lond-latd .gt. 800 ) ipac=1 - -c test for atlantic or Pacific storm - - if(iatl .eq. 1) then - icounta=icounta+1 - ic=icounta*20+620 -ccccc ic=icounta*20+520 - write(74,114) 'PUTLA ',ic, - . '6420 01.0 90.0 038 1 0 0 ',cout(1:80) - endif - if(ipac .eq. 1) then - icount=icount+1 - ic=icount*20+520 - write(74,114) 'PUTLA ',ic, - . '4201 01.0 90.0 038 1 0 0 ',cout(1:80) - endif -ccccc write(74,114) 'PUTLA ',ic,'4201 04.0 90.0 080 1 0 0 ', -ccccc. cout(1:80) - 114 format(a6,i5,a27,a80) - print 105, cname,cdate,flat,cline(37:37),flon, - . cline(43:43),'MV ',fdir,'AT',fsp,'M/SEC', - . central_pressure,mwind - 105 format(a10,x,a13,x,f4.1,a1,x,f5.1,a1,x,a3,f6.0,x,a3,f5.1, - . a5,x,f6.1,' MB',i3,'M/SEC' ) - if(cline(37:37).eq. 'S') flat=-flat - if(cline(43:43).eq. 'W') flon=360-flon - call maptra(flat,flon,uu,vv) - if ((mwind*2.24) .gt. 38) then - call plchhq(uu,vv,':F35:m',7.5,0.,0.) - else - call plchhq(uu,vv,':F30:TD',2.0,0.,0.) - call plchhq(uu,vv,':F37:S',6.0,0.,0.) - endif - if((mwind*2.24) .gt. 74.) then - -c close hurricane symbol with black fill - - call plchhq(uu,vv-0.005,':F37:Z',4.5,0.,0.) - endif - call gslwsc(3.0) - call plchmq(uu+0.02,vv-0.055,cname,2.5,0.,0.) - call gslwsc(1.0) - exit LOOP1n2 - endif - enddo LOOP1n2 - enddo LOOP1 -ccccc isizea=(icounta+1)/2 +2 - isize=(icount+1)/2 +2 - isize=icount+2 - isizea=icounta+2 - if(isize .eq. 2) then - write(74,114)'PUTLA ',540,'4201 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isize=isize+1 - print *, cnull(1:80) - endif - if(isizea .eq. 2) then - write(74,114)'PUTLA ',640,'6420 01.0 90.0 060 1 0 0 ', - . cnull(1:80) - isizea=isizea+1 - print *, cnull(1:80) - endif - write(74,115)'BOX ',510,4190,isize,25 - write(74,115)'BOX ',610,6401,isizea,25 - 115 format(a4,2i5,i5,i5) - - print *, ' ' - print *, ' ===> LEAVING SUBROUTINE HBULL' - print *, ' ' - - return - - end - -c************************************************************** - diff --git a/util/sorc/trpsfprv.fd/CLOSEF.f b/util/sorc/trpsfprv.fd/CLOSEF.f deleted file mode 100755 index 29a07e4daf..0000000000 --- a/util/sorc/trpsfprv.fd/CLOSEF.f +++ /dev/null @@ -1,177 +0,0 @@ - SUBROUTINE CLOSEF(Z,Z1,IMAX,JMAX,S,A,B,M,IX,JY,LPLMI,IFF, - 1 IUP,LOX,ITABMB,ITABFL,MXITR) -C 00217400 -C ...THIS SUBROUTINE FINDS ALL OF THE CONTOUR POSITIONS IN FIELD Z 00217500 -C ...ALONG THE FIXED JY STRIP AND THEN USES THE POSITIONS FOR EACH 00217600 -C ...TO FIND THE CORRESPONDING POSITION AND VALUE IN FIELD Z1, 00217700 -C ...THESE VALUES ARE FORMATTED AND STORED IN THE LIST ARRAY FOR 00217800 -C ...PROCESSING AT CNTR TIME. 00217900 -C 00218000 - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON/ADJ4/IRTCOR,IUPCOR - DIMENSION Z(IMAX,JMAX) - DIMENSION Z1(IMAX,JMAX) - DIMENSION IFF(5) - DIMENSION ITEXT(3),JTEXT(3) - character*8 citext(3),cjtext(3) - equivalence(citext,itext) - equivalence (cjtext,jtext) - DIMENSION ITABMB(MXITR),ITABFL(MXITR) - REAL IDEF,KDEF1,KDEF2,KDEF3,KDEF4,INDEF - DATA INDEF/Z'7FFFFFFFFFFFFFFF'/ - DATA ITEXT/3*0/ - DATA IKCIR/-10/ - DATA JKCIR/-2/ - DATA IBOX/2H)$/ - - character*8 cibox - equivalence(cibox,ibox) -C ...WHERE ITABMB CONTAINS THE MATCH VALUE AND ITABFL THE LABEL ITSF00219400 - print *,' 9999 ENTERING CLOSEF' - KCON4=20 - JMIN=1 - 6 KBEG=IX - KLIM=IX+IUP - IJFIX=JY - 10 Q=S*20. - REM=1. - KCON6=FLOAT(IJFIX-1)*Q*3.0 -C ...WHERE KCON6 IS TRUE LOCN (IN DOTS) OF THE PT ON FIXED COORD. 00220300 - JCAL1=KCON6+IUPCOR -C ...THIS JCAL1 IS IDOTS FOR PUTLAB FOR CONST J CASE, BUT NOT FOR I 00220500 - Q1=1./(2.*Q*Q) - Q2=(Q+1.)/2. - Q3=1./Q - N=10 - KLAST=0 - KSTART=KBEG - DO 11 K=KBEG,KLIM - IDEF=Z(K,IJFIX) - IF(IDEF.NE.INDEF) GO TO 12 - KSTART=KSTART+1 - 11 CONTINUE - GO TO 500 - 12 L=Z(KSTART,IJFIX)+10000. - 20 DO 200 K=KSTART,KLIM - Q4=REM/2. - Q5=1.-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) -C 00222500 -C ...CHECK FOR IMBEDDED GRID 00222600 -C 00222700 - KDEF1=Z(K,IJFIX) - KDEF2=Z(K+1,IJFIX) - KDEF3=Z(K-1,IJFIX) - KDEF4=Z(K+2,IJFIX) - YD2=0 - IF(KDEF1.EQ.INDEF) GO TO 21 - IF(KDEF2.EQ.INDEF) GO TO 21 - IF(KDEF3.EQ.INDEF) GO TO 21 - IF(KDEF4.EQ.INDEF) GO TO 21 - YD2=(Z(K+2,IJFIX)-Z(K+1,IJFIX)-Z(K,IJFIX)+Z(K-1,IJFIX))*Q1 - 21 IF(KDEF1.EQ.INDEF) GO TO 200 - IF(KDEF2.EQ.INDEF) GO TO 200 - YD1=(Z(K+1,IJFIX)-Z(K,IJFIX))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(K,IJFIX)+Q5*Q4*YD1+10000. - 35 DO 130 KK=1,IINC - MM=YVAL - IF((MM-L).EQ.0) GO TO 125 -C 00224500 -C ...COMPUTE A LABEL 00224600 -C 00224700 - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - KCON7=FLOAT(K-1)*Q*3.0 - ICAL=KCON7+KCON1+IRTCOR - ILLCIR=ICAL+IKCIR - JLLCIR=JCAL1+JKCIR -C 00225500 -C ...CALCULATE POSITION WHERE CONTOUR IN Z FIELD CUTS I GRID, WHERE 00225600 -C ...I CONTOUR CUT=I+IDELI 00225700 -C ...ADJUST FIELD Z1 VALUE USING STIRLING INTERPOLATION SOLVE FOR 00225800 -C ...DELI ONLY SINCE DELJ IS FIXED BECAUSE J IS FIXED ON AN INTEGRAL00225900 -C ...VALUE, THAT IS J=1,JMAX 00226000 -C 00226100 - XKK=KK - XIINC=IINC - DELI=XKK/XIINC - I=K - J=IJFIX - ZDELI=Z1(I,J)+0.5*DELI*(Z1(I+1,J)-Z1(I-1,J))+0.5*DELI*DELI* - 1(Z1(I+1,J)-2.0*(Z1(I,J))+Z1(I-1,J)) - HOLD=(ZDELI+A)*B - ITEXT(1)=SIGN((ABS(HOLD)+0.5),HOLD) - KPOSX=KCON4 - 50 IF((ICAL-KLAST).LT.KPOSX) GO TO 125 - IF(LOX.EQ.1) GO TO 109 -C ...WHICH BRANCHES TO INDIRECT LABELS IF LOX 00227400 - KLAST=ICAL - 55 CONTINUE - 75 CONTINUE - INTG=ITEXT(1) - NCHAR=M -C 00228000 -C ...FORMAT STRIP LABEL FROM CENTER POSITION 00228100 -C 00228200 - 90 CONTINUE -c CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,cJTEXT,NCHAR,LPLMI) - 95 CONTINUE - N=12 - CALL ENCODE(ITEXT(1),N) - WRITE(99,IFF) JTEXT(1) - HT=3.0 - ANGLE=90. - IPR=1 -c CALL PUTLAB(ICAL,JCAL1,HT,ITEXT,ANGLE,N,IPR,ITAPUT) - CALL lPUTLAB(ICAL,JCAL1,HT,cITEXT,ANGLE,N,IPR,ITAPUT) - HT=10.0 - ANGLE=0. - NCHAR=2 -c CALL PUTLAB(ILLCIR,JLLCIR,HT,IBOX,ANGLE,NCHAR,IPRPUT,ITAPUT) - CALL lPUTLAB(ILLCIR,JLLCIR,HT,cIBOX,ANGLE,NCHAR,IPRPUT,ITAPUT) - GO TO 125 -C 00229800 -C ...USE INDIRECT LABELS 00229900 -C 00230000 - 109 CONTINUE - DO 110 ITR=1,MXITR - ITSAVE=ITR - IF(ITABMB(ITR).EQ.ITEXT(1)) GO TO 112 - 110 CONTINUE - GO TO 125 - 112 KLAST=ICAL - ITEXT(1)=ITABFL(ITSAVE) - INTG=ITEXT(1) - NCHAR=M -C 00231100 -C ...FORMAT STRIP LABEL FROM CENTER POSITION 00231200 -C 00231300 - 114 CONTINUE - CALL BIN2EB(INTG,cJTEXT,NCHAR,LPLMI) - 115 CONTINUE - N=12 - CALL ENCODE(ITEXT(1),N) - WRITE(99,IFF)JTEXT(1) - HT=3.0 - ANGLE=90. - IPR=1 -c CALL PUTLAB(ICAL,JCAL1,HT,cITEXT,ANGLE,N,IPR,ITAPUT) - CALL lPUTLAB(ICAL,JCAL1,HT,ITEXT,ANGLE,N,IPR,ITAPUT) - HT=10.0 - ANGLE=0. - NCHAR=2 -c CALL PUTLAB(ILLCIR,JLLCIR,HT,IBOX,ANGLE,NCHAR,IPRPUT,ITAPUT) - CALL lPUTLAB(ILLCIR,JLLCIR,HT,cIBOX,ANGLE,NCHAR,IPRPUT,ITAPUT) - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE - 200 CONTINUE - 500 continue - print *,'EXITING CLOSEF 9999' - RETURN - END diff --git a/util/sorc/trpsfprv.fd/CLOSES.f b/util/sorc/trpsfprv.fd/CLOSES.f deleted file mode 100755 index 4cbdd42b5e..0000000000 --- a/util/sorc/trpsfprv.fd/CLOSES.f +++ /dev/null @@ -1,174 +0,0 @@ - SUBROUTINE CLOSES(Z,IMAX,JMAX,S,A,B,M,IUP,LPLMI,IFF,JSTPK, - 1 JSTPL,LOX,ITABMB,ITABFL,MXITR) -C 00200600 -C ...PURPOSE...A MERCATOR CENTER-FINDER WHICH CALLS SUBR CLOSET 00200700 -C ...AFTER FINDING EACH CENTER IN ORDER TO LABEL CONTOURS 00200800 -C ...IN THE VICINITY OF CENTERS. 00200900 -C ...IUP IS THE DISTANCE (IN GRID INTERVALS) FROM THE CENTER 00201000 -C ...WITHIN WHICH CONTOURS WILL BE LABELLED 00201100 -C ...WHERE LOX=1, SENDS THIS ON TO INDIRECT CONTOUR LABELS 00201200 -C ... LOX=0 MEANS TO PUT REGULAR CONTOUR LABELS ON. 00201300 -C 00201400 - REAL INDEF,KDEF1,KDEF2 - DIMENSION IFF(5) - DIMENSION Z(IMAX,JMAX) - DIMENSION ITABMB(MXITR),ITABFL(MXITR) - DIMENSION MARK4(4) - DIMENSION ZZ(9) - DIMENSION MARKS(50) -C ...WHERE MARKS ARRAY TO KEEP TRACK OF NEARBY CONTOUR LABELS 00202200 - DIMENSION JSTPK(30) -C ...WHERE JSTPK IS AN ARRAY OF J COORDINATES WHICH HAVE STRIP 00202400 -C ...LABELS ALREADY AND DO NOT NEED THESE LABELS. 00202500 -C ...FIRST ZERO ENDS JSTPK LOOK UP. 00202600 - DIMENSION JSTPL(30) -C ...WHERE JSTPL IS A CORRESPONDING ARRAY TO JSTPK GIVING THE 00202800 -C ...NUMBER OF GRID POINTS ON THIS LINE TO RESERVE. 00202900 - DATA INDEF/Z'7FFFFFFFFFFFFFFF'/ - DATA NSK/30/ -C ...WHERE NSK IS DIMENSION OF JSTPK ARRAY OF J ALREADY LABELLED 00203200 - DATA MARK4/Z'4',Z'8',Z'10',Z'20'/ - DATA NFEW/2/ -C 00203500 -C ...INITIALIZE FOR CENTER SEARCH 00203600 -C 00203700 - print *,'ENTERING CLOSES ' - IMIN=1 - JMIN=1 - ILOW=0 - IHIGH=0 - DO 11 I=IMIN,IMAX - MARKS(I)=0 - 11 CONTINUE -C ...TO TEST FOR STRIP LABELLED J ROWS IN FIRST FEW ROWS 00204500 - J=JMIN - DO 16 ILLE=1,NFEW - DO 12 ICK=1,NSK - ICKSV=ICK - IF(JSTPK(ICK).EQ.0) GO TO 15 - IF(J.EQ.JSTPK(ICK)) GO TO 13 - 12 CONTINUE - GO TO 15 -C ...COMES TO 13 IF MATCHING J FOUND 00205400 - 13 CONTINUE - IMAD=JSTPL(ICKSV) - IF(IMAD.LE.0) GO TO 15 - IF(IMAD.GT.IMAX) IMAD=IMAX - DO 14 IMA=IMIN,IMAD - MARKS(IMA)=LOR(MARKS(IMA),MARK4(ILLE)) - 14 CONTINUE - 15 J=J+1 - 16 CONTINUE -C 00206400 - DO 105 J=JMIN,JMAX - JP2=J+NFEW -C ...TEST FOR STRIP LABELS ALREADY ON JP2 ROW 00206700 - DO 20 ICK=1,NSK - ICKSV=ICK - IF(JSTPK(ICK).EQ.0) GO TO 27 - IF(JP2.EQ.JSTPK(ICK)) GO TO 22 - 20 CONTINUE - GO TO 27 - 22 CONTINUE - IMAD=JSTPL(ICKSV) - IF(IMAD.LE.0) GO TO 27 - IF(IMAD.GT.IMAX) IMAD=IMAX - DO 24 IMA=IMIN,IMAD - MARKS(IMA)=LOR(MARKS(IMA),MARK4(3)) - 24 CONTINUE - IF(IMAD.GE.IMAX) GO TO 101 -C ...WHICH SKIPS CENTERFINDING IN THIS J ROW BECAUSE OF STIP LABELS 00208200 - 27 CONTINUE - DO 100 I=IMIN,IMAX -C 00208500 -C ...TEST FOR BORDER VALUES 00208600 -C 00208700 - IF(I.LE.IMIN+1.OR.I.GE.IMAX-1) GO TO 100 - IF(J.LE.JMIN+1.OR.J.GE.JMAX-4) GO TO 100 -C 00209000 - ZZ(1)=Z(I,J) - ZZ(2)=Z(I+1,J) -C 00209300 -C ...TEST FOR UNDEFINED VALUES 00209400 -C 00209500 - KDEF1=ZZ(1) - KDEF2=ZZ(2) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - ZZ(3)=Z(I+1,J+1) - ZZ(4)=Z(I,J+1) - ZZ(5)=Z(I-1,J+1) - ZZ(6)=Z(I-1,J) - ZZ(7)=Z(I-1,J-1) - ZZ(8)=Z(I,J-1) - ZZ(9)=Z(I+1,J-1) -C 00210600 -C ...TEST FOR LOW CENTER 00210700 -C 00210800 - IF(ZZ(1).GE.ZZ(2)) GO TO 30 -C ...OTHERWISE TEST FOR LOW CENTER 00211000 - DO 29 IST=3,9 - KDEF1=ZZ(IST) - IF(KDEF1.EQ.INDEF) GO TO 100 - IF(IST.GE.6) GO TO 28 -C ...WAS .LT.6) 00211500 - IF(ZZ(1).GE.ZZ(IST)) GO TO 100 - GO TO 29 - 28 IF(ZZ(1).GT.ZZ(IST)) GO TO 100 - 29 CONTINUE -C ...WHEN IT FALLS THRU THIS LOOP, A LOW CENTER HAS BEEN FOUND 00212000 -C 00212100 -C ...FOUND LOW CENTER 00212200 -C 00212300 - ITYPE=1 - ILOW=ILOW+1 - GO TO 50 -C 00212700 -C ...TEST FOR HIGH CENTER 00212800 -C 00212900 - 30 CONTINUE - DO 33 IST=2,9 - KDEF1=ZZ(IST) - IF(KDEF1.EQ.INDEF) GO TO 100 - IF(IST.GE.6) GO TO 32 - IF(ZZ(1).LE.ZZ(IST)) GO TO 100 - GO TO 33 - 32 IF(ZZ(1).LT.ZZ(IST)) GO TO 100 - 33 CONTINUE -C 00213900 -C ...FOUND HIGH CENTER 00214000 -C 00214100 - ITYPE=2 - IHIGH=IHIGH+1 - 50 CONTINUE -C 00214500 -C ...FOUND CENTER-GO GET CONTOUR LABEL 00214600 -C 00214700 - IFIX=I - JFIX=J - I2=IFIX+IUP - DO 70 IMI=IFIX,I2 - IF(IMI.GT.IMAX) GO TO 72 - IF(MARKS(IMI).NE.0) GO TO 100 -C ...SKIPS CONTOUR LABELLING FOR THIS CENTER IF OTHERS TOO CLOSE 00215400 - 70 CONTINUE -C ...ALL CLEAR FOR CONTOUR LABELS, ENTER MARKS FOR THIS SET. 00215600 - 72 DO 74 IMI=IFIX,I2 - IF(IMI.GT.IMAX) GO TO 75 - MARKS(IMI)=LOR(MARKS(IMI),MARK4(1)) - 74 CONTINUE - 75 CONTINUE - print * ,' 9999 CLOSET FROM CLOSES' - CALL CLOSET(Z,IMAX,JMAX,S,A,B,M,IUP,IFIX,JFIX,LPLMI,IFF, - 1 LOX,ITABMB,ITABFL,MXITR) - print * ,' 9999 exiting CLOSET FROM CLOSES' - 100 CONTINUE - 101 DO 102 IMA=IMIN,IMAX -c MARKS(IMA)=SHFTR(MARKS(IMA),1) - MARKS(ima)=ishft(marks(ima),-1) - 187 format(3z20) - 102 CONTINUE -C ...WHICH PUSHES DOWN THE STACK OF MARKS OFF END 00216800 - 105 CONTINUE - print *, 'DONE WITH CLOSES 9999' - RETURN - END diff --git a/util/sorc/trpsfprv.fd/CLOSET.f b/util/sorc/trpsfprv.fd/CLOSET.f deleted file mode 100755 index e065c73716..0000000000 --- a/util/sorc/trpsfprv.fd/CLOSET.f +++ /dev/null @@ -1,170 +0,0 @@ - SUBROUTINE CLOSET(Z,IMAX,JMAX,S,A,B,M,IUP,IX,JY,LPLMI,IFF,LOX, - 1 ITABMB,ITABFL,MXITR) -C 00326600 -C ...THIS SUBROUTINE FINDS THE NEAREST CONTOUR LABEL ABOVE A 00326700 -C ...FIXED I,J POSITION IN THE GIVEN ARRAY. THIS FIXED POSITION 00326800 -C ...IS THE GRID POINT USED TO FIND THE VALID CENTER IN THE GIVEN 00326900 -C ...ARRAY 00327000 -C 00327100 - character*3 lplmi - character*90 cifile - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON/ADJ5/IRTKOR,IUPKOR - DIMENSION Z(IMAX,JMAX) - DIMENSION ITABMB(MXITR),ITABFL(MXITR) -C ...WHERE ITABMB CONTAINS THE MATCH VALUE AND ITABFL THE LABEL ITSF00327600 - DIMENSION IFF(5) - character*40 ciff - dimension ifform(5) - equivalence (ciff,ifform) - DIMENSION ITEXT(3),JTEXT(3) - character*8 cjtext(3) - equivalence (cjtext,jtext) - character*8 ctext(3) - character*12 ctext12 - equivalence (ctext,itext) -cccc equivalence (ctext12,ctext) - REAL INDEF,IDEF,KDEF1,KDEF2,KDEF3,KDEF4 - DATA INDEF/Z'7FFFFFFFFFFFFFFF'/ - DATA ITEXT/3*0/ - print *,'S=',S - print *,'A=',a - print *,'b=',b - print *,'m=',m - print *,'iup=',iup - print *,'ix =',ix - print *,'iy =',iy - print *,'lox= =',lox - do 1,k=1,5 - 1 ifform(k)=iff(k) - KCON4=20 - JMIN=1 - KBEG=IX - KLIM=IX+IUP - IJFIX=JY - Q=S*20. - REM=1. - KCON6=FLOAT(IJFIX-1)*Q*3.0 -C ...WHERE KCON6 IS TRUE LOCN(IN DOTS) OF THE PT. ON FIXED COORD. 00329000 - JCAL1=KCON6+IUPKOR -C ...THIS JCAL1 IS IDOTS FOR PUTLAB FOR CONST J CASE, BUT NOT FOR I 00329200 - Q1=1./(2.*Q*Q) - Q2=(Q+1.)/2. - Q3=1./Q - N=10 - KLAST=0 - KSTART=KBEG - DO 11 K=KBEG,KLIM - IDEF=Z(K,IJFIX) - IF(IDEF.NE.INDEF) GO TO 12 - KSTART=KSTART+1 - 11 CONTINUE - GO TO 500 - 12 L=Z(KSTART,IJFIX)+10000. - DO 200 K=KSTART,KLIM - Q4=REM/2. - Q5=1.-REM - X=Q-Q5 - IINC=X - REM=X-FLOAT(IINC) -C 00331200 -C ...CHECK FOR IMBEDDED GRID 00331300 -C 00331400 - KDEF1=Z(K,IJFIX) - KDEF2=Z(K+1,IJFIX) - KDEF3=Z(K-1,IJFIX) - KDEF4=Z(K+2,IJFIX) - YD2=0 - IF(KDEF1.EQ.INDEF) GO TO 21 - IF(KDEF2.EQ.INDEF) GO TO 21 - IF(KDEF3.EQ.INDEF) GO TO 21 - IF(KDEF4.EQ.INDEF) GO TO 21 - YD2=(Z(K+2,IJFIX)-Z(K+1,IJFIX)-Z(K,IJFIX)+Z(K-1,IJFIX))*Q1 - 21 IF(KDEF1.EQ.INDEF) GO TO 200 - IF(KDEF2.EQ.INDEF) GO TO 200 - YD1=(Z(K+1,IJFIX)-Z(K,IJFIX))*Q3-(Q2*YD2)+Q5*YD2 - YVAL=Z(K,IJFIX)+Q5*Q4*YD1+10000. - DO 130 KK=1,IINC - MM=YVAL - IF((MM-L).EQ.0) GO TO 125 -C 00333200 -C ...COMPUTE A LABEL 00333300 -C 00333400 - XVAL=MM-10000 - IF((IABS(MM)-IABS(L)).LT.0) XVAL=L-10000 - KCON1=(KK-1)*3 - KCON7=FLOAT(K-1)*Q*3.0 - ICAL=KCON7+KCON1+IRTKOR - HOLD=(XVAL+A)*B - ITEXT(1)=SIGN((ABS(HOLD)+0.5),HOLD) - KPOSX=KCON4 - IF((ICAL-KLAST).LT.KPOSX) GO TO 125 - IF(LOX.EQ.1) GO TO 109 - KLAST=ICAL - 55 CONTINUE - 75 CONTINUE - INTG=ITEXT(1) - NCHAR=M -C 00335000 -C ...FORMAT STRIP LABEL FROM CENTER POSITION 00335100 -C 00335200 - 90 CONTINUE -c CALL BIN2EB(INTG,CJTEXT,NCHAR,'I99') - CALL BIN2EB(INTG,CJTEXT,NCHAR,LPLMI) - 95 CONTINUE - N=12 -c CALL ENCODE(ITEXT(1),N) - write(cifile,1956) itext(1) - 1956 format(i3) - Print *,' 9999 CIFF',ciff - write(ctext12,ciff ) cifile -c ctext12(1:8)=ctext(1)(1:8) - WRITE(99,IFF) JTEXT(1) - print *, - 1 ' 9999 FROM CLOSET DIRECT LABEL nchar and INTG',nchar,cjtext - 1, intg - print 1999,' nchar, intg, cjtext, ctext12,itext', - 1 nchar,intg,cjtext,ctext12,itext - 1999 format(a50,i5,1x,i20,1x,' cjtext > ',3a9,'ctext12 --> ', - 1 a14,'itext --> ',3i4) - CALL lPUTLAB(ICAL,JCAL1,PUTHGT,ctext12,PUTANG,N,IPRPUT,ITAPUT) -c CALL lPUTLAB(ICAL,JCAL1,PUTHGT,ITEXT,PUTANG,N,IPRPUT,ITAPUT) -c CALL PUTLAB(ICAL,JCAL1,PUTHGT,ITEXT,PUTANG,N,IPRPUT,ITAPUT) - GO TO 125 -C 00336100 -C ...USE INDIRECT LABELS 00336200 -C 00336300 - 109 CONTINUE - DO 110 ITR=1,MXITR - ITSAVE=ITR - IF(ITABMB(ITR).EQ.ITEXT(1)) GO TO 112 - 110 CONTINUE - GO TO 125 - 112 KLAST=ICAL - ITEXT(1)=ITABFL(ITSAVE) - INTG=ITEXT(1) - NCHAR=M -C 00337400 -C ...FORMAT STRIP LABEL FROM CENTER POSITION 00337500 -C 00337600 - 114 CONTINUE - CALL BIN2EB(INTG,cJTEXT,NCHAR,LPLMI) - stop 'bin2eb' - 115 CONTINUE - N=12 - CALL ENCODE(ITEXT(1),N) - ctext12(1:8)=ctext(1)(1:8) - WRITE(99,IFF)JTEXT(1) - print *, - 1 ' 9999 FROM CLOSET inDIRECT LABEL nchar and INTG',nchar,cjtext - CALL lPUTLAB(ICAL,JCAL1,PUTHGT,cTEXT12,PUTANG,N,IPRPUT,ITAPUT) -c CALL lPUTLAB(ICAL,JCAL1,PUTHGT,ITEXT,PUTANG,N,IPRPUT,ITAPUT) -c CALL PUTLAB(ICAL,JCAL1,PUTHGT,ITEXT,PUTANG,N,IPRPUT,ITAPUT) - 125 L=MM - YD1=YD1+YD2 - YVAL=YVAL+YD1 - 130 CONTINUE - 200 CONTINUE - 500 continue - RETURN - END diff --git a/util/sorc/trpsfprv.fd/FAXSHD.f b/util/sorc/trpsfprv.fd/FAXSHD.f deleted file mode 100755 index 7280521b6c..0000000000 --- a/util/sorc/trpsfprv.fd/FAXSHD.f +++ /dev/null @@ -1,255 +0,0 @@ - SUBROUTINE FAXSHD(IAREA,IA,JA,INDEX,INCR1,INCR,JLAST,NNN) - COMMON/NSCHED/ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,50) - common/nsched2/jsched - DIMENSION IAREA(IA,JA) - DIMENSION IISUB(11) - DIMENSION ISUBA(3) - DIMENSION ISUBB(3) - INTEGER ISCHED - character*1 JSCHED(16,50) -c LOGICAL JSCHED(16,50) -c EQUIVALENCE (ISCHED(1,1),JSCHED(1,1)) - DATA IISUB/1H ,2HP1,2HP2,2HP3,2HP4,2HP5,2HP6,2HI1,2HI2,2HI3, - 1 2HB2/ - DATA ISUBA/3HP1A,3HP3A,3HP5A/ - DATA ISUBB/2HP1,2HP3,2HP5/ - DATA IBCHK/4H / - DATA ITBSE/7400/ - DATA MAPT7/Z'E5000000'/ - DATA MASK2/Z'FF000000'/ -C -C COMMON AREA VARIABLES /NSCHED/ -C -C WHERE ISLOTA,B= FAX SLOT NUMBER (CARD IMAGE FORMAT) -C WHERE IPANA,B= FAX PANEL INDICATOR (CARD IMAGE FORMAT) -C WHERE ISUB= FAX SUBSET NO. (CARD IMAGE FORMAT) -C WHERE IFLAB= FRONT LABEL INSET NO. (CARD IMAGE FORMAT) -C WHERE INSET= REAL INSET NO. (CARD IMAGE FORMAT) -C WHERE IRLAB= REAR LABEL INSET NO. (CARD IMAGE FORMAT) -C WHERE ISCHED= FAX/VARIAN SCHEDULE CONTROL -C -C CALL SEQUENCE VARIABLES -C IAREA= ARRAY FOR ALL FAX/VARIAN AREAS -C IA,JA= I,J INDEX FOR IAREA ARRAY -C INDEX= SPECIFIC IAREA INDEX TO BE USED FOR THIS CUT -C INCR1= OUTPUT SCAN LINE J FOR SPECIFIC AREA USED -C (NEEDED FOR LABEL ARRAY LINKAGE TO CNTR) -C -C -C INTERNAL SUBROUTINE VARIABLES -C -C WHERE IFAXT=0 VARIAN MAP -C "1 WHOLE FAX MAP(NO REAL INSET) -C =2 WHOLE FAX MAP(REAL INSET(S)) -C =3 LEFT PANEL MAP -C =4 RIGHT PANEL MAP -C =5 REAL INSET -C -C WHERE INUML=0 NO STRIP LABELS -C =1 FRONT LABEL ONLY OR FRONT OR REAR LABEL -C =2 FRONT AND REAR LABEL -C INITIALIZE FOR SPECIAL MAP TYPE - print *,' ENTERING FAXSCH' - NNN=NNN+1 - IPANY=0 - IVARY=0 - IVAR=LAND(ISLOTA,MASK2) - IF(IVAR.EQ.MAPT7) IVARY=1 - IF((IPANA.NE.IISUB(8)).OR.(IPANA.NE.IISUB(9)).OR. - 1 (IPANA.NE.IISUB(10)).OR.(IPANA.NE.IBCHK)) IPANY=1 - IFAXT=0 - IF(IVARY.EQ.1) IFAXT=0 - IF((IPANA.EQ.IBCHK).AND.(INSET.LT.1).AND.(IVARY.EQ.0)) IFAXT=1 - IF((IPANA.EQ.IBCHK).AND.(INSET.GE.1).AND.(IVARY.EQ.0)) IFAXT=2 - IF((IPANA.EQ.IISUB(2)).OR.(IPANA.EQ.IISUB(4)).OR. - 1 (IPANA.EQ.IISUB(6))) IFAXT=3 - IF((IPANA.EQ.IISUB(3)).OR.(IPANA.EQ.IISUB(5)).OR. - 1 (IPANA.EQ.IISUB(7)).OR.(IPANA.EQ.IISUB(11))) IFAXT=4 - IF((IPANA.EQ.IISUB(8)).OR.(IPANA.EQ.IISUB(9)).OR. - 1 (IPANA.EQ.IISUB(10))) IFAXT=5 - INUML=0 - IF((IFLAB.LT.1).AND.(IRLAB.LT.1)) INUML=0 - IF((IFLAB.GE.1).AND.(IRLAB.LT.1)) INUML=1 - IF((IFLAB.GE.1).AND.(IRLAB.GE.1)) INUML=2 - IF(INCR1.NE.0) GO TO 15 - JLAST=ITBSE-INCR - 15 CONTINUE - ISCHED(1,NNN)=ISUB - ISCHED(2,NNN)=IAREA(1,INDEX) - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=IAREA(2,INDEX) - JSCHED(9,NNN)=char(IAREA(3,INDEX) ) - call j2i(9,nnn) - JSCHED(10,NNN)=char(IAREA(4,INDEX) ) - JSCHED(11,NNN)=char(IAREA(5,INDEX) ) - call j2i(11,nnn) - call j2i(10,nnn) - IF((IFAXT.EQ.0).OR.((IFAXT.EQ.1).AND.(INUML.EQ.0))) GO TO 1426 - GO TO 1427 -C -C FOUND VARIAN MAP OR WHOLE FAX MAP(NO REAL INSET) -C AND NO STRIP LABELS -C - 1426 CONTINUE - print *, 'j2i call after 1426' - JSCHED(12,NNN)=char(0) - call j2i(12,nnn) - ISCHED(7,NNN)= 0 - ISCHED(8,NNN)=0 - GO TO 1450 - 1427 CONTINUE - GO TO (1428,1428,1432,1434,1436),IFAXT -C -C FOUND WHOLE MAP (NO REAL INSET) OR -C FOUND WHOLE MAP (REAL INSET(S)) - 1428 CONTINUE - IF((IFAXT.EQ.2).AND.(INUML.EQ.0)) GO TO 1430 -C -C PREPARE FOR FRONT STRIP LABEL -C - print *, 'j2i call 2 after front strip' - JSCHED(12,NNN)=char(0) - call j2i(12,nnn) - ISCHED(7,NNN)=-30 - ISCHED(8,NNN)=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - NNN=NNN+1 - ISCHED(1,NNN)=IFLAB - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - IFLW2=216 - IF(INUML.EQ.2) GO TO 1429 -C -C FOUND WHOLE MAP FRONT LABEL ONLY -C - JSCHED(11,NNN)=char(IFLW2) - call j2i(11,nnn) - ISCHED(5,NNN)=0 - JSCHED(12,NNN)=char(0 ) - print *, 'j2i call 3 ' - call j2i(12,nnn) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 -C -C FOUND FRONT AND REAR STRIP LABEL -C - 1429 CONTINUE - IFLW3=1 - IF(IFAXT.EQ.2) GO TO 14292 - JSCHED(9,NNN)=char(IFLW3 ) - JSCHED(10,NNN)=char(0) - JSCHED(11,NNN)=char(IFLW2) - JSCHED(12,NNN)=char(0 ) - print *, 'j2i call 4 ' - call j2i(10,nnn) - call j2i(11,nnn) - call j2i(12,nnn) - call j2i(9,nnn) - ISCHED(7,NNN)=IAREA(2,INDEX) - ISCHED(8,NNN)=IRLAB - IWORK1=IRLAB - JLAST=JLAST+INCR - JXL=JLAST -14291 CONTINUE - NNN=NNN+1 - ISCHED(1,NNN)=IWORK1 - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - IRLW2=216 - JSCHED(11,NNN)=char(IRLW2) - call j2i(11,nnn) - ISCHED(5,NNN)=0 - JSCHED(12,NNN)=char(0) - print *, 'j2i call 5 ' - call j2i(12,nnn) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=0 - GO TO 1450 -C -C FOUND REAL INSET -C -14292 CONTINUE - JSCHED(9,NNN)=char(IFLW3) - JSCHED(10,NNN)=char(0) - JSCHED(11,NNN)=char(IFLW2) - JSCHED(12,NNN)=char(IAREA(6,INDEX) ) - print *, 'j2i call 6 ' - call j2i(10,nnn) - call j2i(11,nnn) - call j2i(12,nnn) - call j2i(9,nnn) - ISCHED(7,NNN)=IAREA(7,INDEX) - ISCHED(8,NNN)=INSET - GO TO 1450 -C -C FOUND WHOLE MAP (REAL INSET(S)) BUT NO STRIP LABELS -C - 1430 CONTINUE - GO TO 1450 -C -C FOUND LEFT PANEL MAP -C - 1432 CONTINUE - print *, 'j2i call 7 ' - JSCHED(12,NNN)=char(0) - call j2i(12,nnn) - ISCHED(7,NNN)=-30 - ISCHED(8,NNN)=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - NNN=NNN+1 - ISCHED(1,NNN)=IFLAB - ISCHED(2,NNN)=JXL - ISCHED(3,NNN)=0 - ISCHED(4,NNN)=INCR - JSCHED(9,NNN)=char(1) - JSCHED(10,NNN)=char(0) - JSCHED(11,NNN)=char(216 ) - JSCHED(12,NNN)=char(IAREA(5,INDEX) ) - print *, 'j2i call 8 ' - call j2i(10,nnn) - call j2i(11,nnn) - call j2i(12,nnn) - call j2i(9,nnn) - ISCHED(7,NNN)=0 - ISCHED(8,NNN)=INSET - IWORK1=IRLAB - JLAST=JLAST+INCR - JXL=JLAST - GO TO 14291 -C -C FOUND RIGHT PANEL MAP -C - 1434 CONTINUE - JSCHED(9,NNN)=char(69) - call j2i(9,nnn) - IF(IPANA.EQ.IISUB(11)) JSCHED(9,NNN)= char(65) - ISCHED(7,NNN)=IAREA(2,INDEX) - JSCHED(12,NNN)=char(0) - print *, 'j2i call 9 ' - call j2i(12,nnn) - ISCHED(8,NNN)=IFLAB - GO TO 1450 -C -C FOUND REAL INSET -C - 1436 CONTINUE - JSCHED(12,NNN)=char(0) - print *, 'j2i call a ' - call j2i(12,nnn) - ISCHED(7,NNN)=IAREA(8,INDEX) - ISCHED(8,NNN)=IFLAB - IWORK1=IFLAB - JLAST=JLAST+INCR - JXL=JLAST - GO TO 14291 - 1450 CONTINUE - PRINT 250,IFAXT,INUML,INDEX,INCR1 - 250 FORMAT('0TYPE MAP= ',I5,' TYPE LABELS ',I5,' AREA INDEX= ', - 1 I5,' LABEL ARRAY VALUE= ',I5) - RETURN - END diff --git a/util/sorc/trpsfprv.fd/FLIPTR.f b/util/sorc/trpsfprv.fd/FLIPTR.f deleted file mode 100755 index bd440dc47b..0000000000 --- a/util/sorc/trpsfprv.fd/FLIPTR.f +++ /dev/null @@ -1,81 +0,0 @@ - SUBROUTINE FLIPTR(STFMX,STFMY,FLD1) -C ...GIVEN... STFMX(116,51) STREAMS (IN CM) 00364200 -C ... TASK... TO FLIP GRID ONTO ITS END 00364300 -C AND EXPAND GRID IN MERIDIONAL SENSE 00364400 -C ONE ON EACH SIDE OF GREENWICH MERIDIAN ... 00364500 -C AND TO CLIP THE GRID FROM 51 TO 48 IN LATITUDINAL 00364600 -C ...RESULTS... FLD1(48,119) READY FOR CNTR (HAVING BEEN SCALED) 00364700 -C 00364800 -C ...THE STFMY(51,117) IS USED AS SCRATCH ... 00364900 -C 00365000 -c DIMENSION STFMX(116,51) - dimension stfmx(117,51) - DIMENSION STFMY(51,117) - DIMENSION FLD1(48,119) -C 00365400 - LOGICAL LGCOL1 - DATA M2 / 48 / -C ... WHERE THE M2 OF 48 CUTS PART OF ROW OFF ... 00365700 - DATA CMTOM / 0.01 / - DATA STDHGT / 111.0 / - DATA CINTVL / 0.033333/ -C ...WHERE CONTOUR INTERVAL OF 30M IS 1/30 IS 0.033333 00366100 -C 00366200 - LGCOL1 = .TRUE. -C ... WHERE LGCOL1 FLAGS THE GREENWICH MERIDIAN FOUND IN COL1 00366400 -C ... WHEN YOU FIGURE OUT WHERE POTEX LEAVES THE GRID 00366500 -C ... WHETHER GREENWICH IS FIRST OR LAST COL 00366600 -C ... THEN YOU CAN GET RID OF ONE OF THESE BRANCHES ... 00366700 - IF(LGCOL1) GO TO 300 -C ... OTHERWISE, ASSUME GREENWICH WAS COL 116 00366900 - GO TO 400 -C 00367100 - 300 CONTINUE -C ... GREENWICH WAS ALREADY IN COL 1 ... 00367300 - DO 322 II = 1,116 - DO 311 JJ = 1,51 - JR = 51 + 1 - JJ - STFMY(JJ,II) = STFMX(II,JR) - 311 CONTINUE - 322 CONTINUE -C ... IN ORDER TO REPEAT GREENWICH AT 117 00368000 - II = 1 - K = 117 - DO 333 JJ = 1,51 - JR = 51 + 1 - JJ - STFMY(JJ,K) = STFMX(II,JR) - 333 CONTINUE - GO TO 440 -C 00368800 - 400 CONTINUE - K = 1 - II = 116 - DO 411 JJ = 1,51 - JR = 51 + 1 - JJ - STFMY(JJ,K) = STFMX(II,JR) - 411 CONTINUE - DO 419 II = 1,116 - K = II + 1 - DO 415 JJ = 1,51 - JR = 51 + 1 - JJ - STFMY(JJ,K) = STFMX(II,JR) - 415 CONTINUE - 419 CONTINUE - GO TO 440 -C 00370400 - 440 CONTINUE -C ... NOW STFMY(51,117) CONTAINS THE STREAM FUNCTION FIELD 00370600 -C ... STANDING ON ITS GREENWICH MERIDIAN END ... 00370700 -C 00370800 - JORIG = 115 -C ... WHERE JORIG POINTS TO ROW IN 117 ROW GRID 00371000 - DO 448 JDEST = 1,119 - JORIG = JORIG + 1 - IF(JORIG .GT. 116) JORIG = JORIG - 116 - DO 444 II = 1,M2 - FLD1(II,JDEST) = (STFMY(II,JORIG)*CMTOM + STDHGT) * CINTVL - 444 CONTINUE - 448 CONTINUE -C 00371800 - RETURN - END diff --git a/util/sorc/trpsfprv.fd/GETGES.f b/util/sorc/trpsfprv.fd/GETGES.f deleted file mode 100755 index 4dcd12d496..0000000000 --- a/util/sorc/trpsfprv.fd/GETGES.f +++ /dev/null @@ -1,16 +0,0 @@ - SUBROUTINE GETGES(IRET) - COMMON /STRPOT/ STRS(118,52) - DATA AVHGT / 111.0 / - DATA CMPERM / 100.0 / - DATA CSF / 1.0E+7 / -C ... WHERE CSF IS TO RESCALE THE GES FIELD STRS (IN CM) INTO 00372600 -C ... NUMBERS OF MAGNITUDE GENERATED BY POTEX IN STRS 00372700 -C ... IT SEEMS TO BE TAKEN OUT AT END BY REDUCX 00372800 -C 00372900 - IRET = 1 - DO 100 J = 1,52 - DO 100 I = 1,118 - STRS(I,J) = AVHGT * CMPERM * CSF - 100 CONTINUE - RETURN - END diff --git a/util/sorc/trpsfprv.fd/IDCHCK.f b/util/sorc/trpsfprv.fd/IDCHCK.f deleted file mode 100755 index c73d23dc9b..0000000000 --- a/util/sorc/trpsfprv.fd/IDCHCK.f +++ /dev/null @@ -1,65 +0,0 @@ - SUBROUTINE IDCHCK(NSLOTS,NSLOT,ISUBV,ISUB,VARFND,FAXFND,AFOFND) -C 00396400 -C THIS SUBROUTINE CHECKS THE SUBSET NUMBERS READ IN FROM A GRAPHICS 00396500 -C SCHEDULE FORMAT AND DETERMINES IF THE MAIN PROGRAM PRODUCES AN 00396600 -C AFOS, VARIAN, FAX, OR BOTH FAX/VARIAN MAPS. THIS INFORMATION IS 00396700 -C THEN PLACED INTO THE FOURTH BYTE OF IFID(1) WHICH IS EVENTUALLY 00396800 -C DISPLAYED ON IPAK. 00396900 -C 00397000 -C THIS VERSION IS DATED 06-18-86 00397100 -C 00397200 - COMMON/ILY/II,LL,IFID(14),JFID(14) -C 00397400 - LOGICAL FAXFND,VARFND,AFOFND -C 00397600 - DATA IBOTH/' B'/ - DATA IAFO/' X'/ - DATA IFAX/' F'/ - DATA IVAR/' V'/ - DATA ID/' '/ - DATA IBLANK/' '/ -C 00398300 - IF(NSLOTS .NE. 1)GO TO 1000 -C 00398500 -C IF ONLY A VARIAN MAP IS PRODUCED 00398600 -C 00398700 - IF(ISUBV .NE. 99)VARFND=.TRUE. - IF(NSLOTS.EQ.NSLOT)GO TO 3000 - GO TO 4000 -C 00399100 -C IF NOT ONLY A VARIAN MAP IS PRODUCED 00399200 -C 00399300 - 1000 IF(ISUBV .NE. ISUB)GO TO 2000 -C 00399500 -C THE SUBSET NUMBER GIVEN IS A VARIAN MAP 00399600 -C 00399700 - IF(ISUBV .NE. 99)VARFND=.TRUE. - IF(NSLOTS.EQ.NSLOT)GO TO 3000 - GO TO 4000 -C 00400100 -C THE SUBSET NUMBER GIVEN IS A FAX OR AN AFOS MAP 00400200 -C 00400300 - 2000 IF(ISUB .LT. 5000)FAXFND=.TRUE. - IF(ISUB .GE. 5000)AFOFND=.TRUE. - IF(NSLOTS.EQ.NSLOT)GO TO 3000 - GO TO 4000 -C 00400800 -C GO HERE IF ALL SUBSET NUMBERS IN RUN HAVE BEEN REVIEWED 00400900 -C 00401000 - 3000 IF(AFOFND)ID=IAFO - IF(FAXFND)ID=IFAX - IF(VARFND)ID=IVAR - IF((FAXFND).AND.(VARFND))ID=IBOTH -C 00401500 - IFID(1) = ID - AFOFND = .FALSE. - FAXFND = .FALSE. - VARFND = .FALSE. -C 00402000 - IF(ID .EQ. IBLANK)PRINT 100 - 100 FORMAT(3X,'>>>>> FOURTH BYTE OF IFID(1) IS BLANK <<<<<') -C 00402300 - 4000 CONTINUE -C 00402500 - RETURN - END diff --git a/util/sorc/trpsfprv.fd/ISOTAC.f b/util/sorc/trpsfprv.fd/ISOTAC.f deleted file mode 100755 index f1787ce2ff..0000000000 --- a/util/sorc/trpsfprv.fd/ISOTAC.f +++ /dev/null @@ -1,23 +0,0 @@ -C ...ANDREW COLLETTI 00142700 -C 00142800 -C ...APRIL 17,1981 00142900 -C 00143000 -C ...MAKE ISOTACHS FROM U'S AND V'S IN A VARIABLE LENGTH FIELD 00143100 -C ************************************************************** 00143200 - SUBROUTINE ISOTAC(U,V,K,L,T) -C ...U=INPUT U FIELD 00143400 -C ...V=INPUT V FIELD 00143500 -C ...K=1ST DIMENSION OF FIELD 00143600 -C ...L=2ND DIMENSION OF FIELD 00143700 -C ...T=OUTPUT FIELD WITH RESULTANT ISOTACHS 00143800 - REAL U(K,L) - REAL V(K,L) - REAL T(K,L) -C 00144200 - DO 10 J=1,L - DO 9 I=1,K - T(I,J) = ABS(SQRT((U(I,J)**2) + (V(I,J)**2))) - 9 CONTINUE - 10 CONTINUE - RETURN - END diff --git a/util/sorc/trpsfprv.fd/MAPX.f b/util/sorc/trpsfprv.fd/MAPX.f deleted file mode 100755 index e84095b73a..0000000000 --- a/util/sorc/trpsfprv.fd/MAPX.f +++ /dev/null @@ -1,45 +0,0 @@ - SUBROUTINE MAPX -C 00359700 -C ... TO COMPUTE IMAGE SCALE FOR MERCATOR MAP IN XM(I) 00359800 -C ... WHERE IMAGE SCALE IS COS(STDLAT) / COS(LAT) 00359900 -C 00360000 -C ... AND CORIOLIS PARAMETER IN F(I) 00360100 -C ... WHERE CORIOLIS PARAMETER = 2*OMEGA*SIN(LAT) 00360200 -C 00360300 -C ... FOR 117*51 MERCATOR GRID ... 00360400 - COMMON /FIXFLD/ XM(51),F(51) -C 00360600 - DATA OMEGA / 7.292116E-05 / -C ... WHERE OMEGA IS ANGULAR VELOCITY OF THE EARTH (IN RADIANS/SEC) 00360800 - DATA RADPDG / 0.01745329 / - DATA STDLAT / 22.5 / - DATA IEQUAT / 26 / - DATA IMAX / 51 / - DATA JMAXGI / 116 / -C 00361400 - DEGPGI = 360.0 / FLOAT(JMAXGI) - COSSTD = COS(STDLAT*RADPDG) - XM(IEQUAT) = COSSTD -C ... WHERE 26TH ITEM IS EQUATOR... 00361800 -C ... COS(STDLAT) / COS(0) 00361900 - F(IEQUAT) = 0.0 -C ... WHERE THE CORIOLIS PARAMETER IS ZERO AT THE EQUATOR ... 00362100 - M1 = IEQUAT + 1 - DO 10 I = M1,IMAX - XI = I - IEQUAT - XI = XI * 2.0 * DEGPGI - XI = EXP(XI*RADPDG) - SINLAT = (XI - 1.0) / (XI + 1.0) - COSLAT = SQRT(1.0 - SINLAT*SINLAT) - XM(I) = COSSTD / COSLAT - F(I) = 2.0 * OMEGA * SINLAT - 10 CONTINUE -C ... TO FILL IN THE SOUTHERN LATITUDES ... 00363200 - M2 = IEQUAT - 1 - DO 20 I = 1,M2 - K = IMAX+ 1 - I - F(I) = -F(K) - XM(I) = XM(K) - 20 CONTINUE - RETURN - END diff --git a/util/sorc/trpsfprv.fd/MERCIN.f b/util/sorc/trpsfprv.fd/MERCIN.f deleted file mode 100755 index 7b78456f9c..0000000000 --- a/util/sorc/trpsfprv.fd/MERCIN.f +++ /dev/null @@ -1,367 +0,0 @@ - SUBROUTINE MERCIN(ISWTCH,NUMF,MAPON,NSLOTS,ILVLI, - 1 IFLDI,ITAUI,ICODIN,INAMIN,IOUTIN,IINFA,IINFB) -C 00162200 - COMMON/ILY/ITAU1A,LVL1A,IFID(14),JFID(14) -C 00162400 - DIMENSION ILVLI(3),IFLDI(3),ITAUI(3),IOUTIN(2) - DATA IBCHK/4H / - DATA LU/8/ -C 00162800 -C LEVEL CONTROL TABLE 00162900 -C 00163000 - DIMENSION ILVL(3,9) - DATA NLVLS/9/ - DATA ILVL/4H700 ,1H ,1,4H500 ,1H ,2,4H400 ,1H ,3,4H300 ,1H ,4, - 1 4H200 ,1H ,5,4H250 ,1H ,6,4HTROP,1H ,7,4H1000,1H ,8, - 2 4H850 ,1H ,9/ -C 00163600 -C FIELD CONTROL TABLE 00163700 -C 00163800 - DIMENSION IFLD(3,8) - DATA NFLDS/8/ - DATA IFLD/4HSTRM,1H ,1,4HTEMP,1HS,2,4HU ,1H ,3,4HV ,1H ,4, - 1 4HITAC,1HH,5,4HTP P,1HR,6,4HTP T,1HT,7,4HTP W,1HS,8/ -C 00164300 -C TAU CONTROL TABLE 00164400 -C 00164500 - DIMENSION ITAU(3,5) - DATA NTAUS/5/ - DATA ITAU/4H18HR,1H ,1,4H24HR,1H ,2,4H30HR,1H ,3,4H36HR,1H ,4, - 1 4H48HR,1H ,5/ -C 00165000 -C OPERATIONAL RUN TYPE TABLE 00165100 -C 00165200 - DIMENSION ICODES(3,5) - DATA NCODES/5/ - DATA ICODES/4HOPN0,1H9,1,4HOPN1,1H0,2,4HOPN2,1H6,3,4HOPN2,1H8,4, - 1 4HOPN2,1H5,5/ -C 00165700 -C FILE CONTROL TABLE 00165800 -C 00165900 - DIMENSION IFILER(3,2) - DATA NFILES/2/ - DATA IFILER/4HMERC,1HI,1,4H ,1H ,2/ -C 00166300 -C OUTPUT TYPE CONTROL TABLE 00166400 -C 00166500 - DIMENSION IIOUT(4,6) - DATA NOUTS/6/ - DATA IIOUT/4HS-I ,1H ,1,1,4HS-I-,1HP,2,2,4HS-I-,1HT,3,3, - 1 4HS ,1H ,4,4,4HP-T-,1HW,5,5,4HP-V ,1H ,6,6/ -C 00167000 -C BASIC MAP CONTROLS (SET FOR EACH MAP) 00167100 -C 00167200 -C WHERE ICARD1= CARD CONTROL(BLANK-A1) 00167300 -C WHERE LVL1A,LVL1B= 1ST LEVEL (A4,A1) 00167400 -C WHERE IFLD1A,IFLD1B= 1ST FIELD TYPE (A4,A1) 00167500 -C WHERE ITAU1A,ITAU1B= 1ST TAU PERIOD (A4,A1) 00167600 -C WHERE LVL2A,LVL2B= 2ND LEVEL (A4,A1) 00167700 -C WHERE IFLD2A,IFLD2B= 2ND FIELD TYPE (A4,A1) 00167800 -C WHERE ITAU2A,ITAU2B= 2ND TAU PERIOD (A4,A1) 00167900 -C WHERE LVL3A,LVL3B= 3RD LEVEL (A4,A1) 00168000 -C WHERE IFLD3A,IFLD3B= 3RD FIELD TYPE (A4,A1) 00168100 -C WHERE ITAU3A,ITAU3B= 3RD TAU PERIOD (A4,A1) 00168200 -C WHERE ICODEA,ICODEB= OPERATIONAL CODE TYPE (A4,A1) 00168300 -C WHERE IINFA,IINFB= INPUT FILE NAME (A4,A1) 00168400 -C WHERE IOUTA,IOUTB= OUTPUT FIELD COMBINATION 00168500 -C WHERE MAPON= MAP NUMBER (I4) 00168600 -C WHERE NSLOTS= NUMBER OF MAP PARTS (I4) 00168700 -C 00168800 - 7025 CONTINUE - IF(ISWTCH.EQ.1) GO TO 7040 -C 00169100 -C USE DATA CARD INPUT 00169200 -C 00169300 - 7030 CONTINUE - READ 7200, ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2A, - 1 LVL2B,IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A,LVL3B,IFLD3A, - 2 IFLD3B,ITAU3A,ITAU3B,ICODEA,ICODEB,IINFA,IINFB,IOUTA, - 3 IOUTB,MAPON,NSLOTS - 7200 FORMAT(A1,10(A4,A1),3X,2(A4,A1),2I4) - GO TO 7045 -C 00170100 -C USE DATA SET CONTROL FILE INPUT 00170200 -C 00170300 - 7040 CONTINUE - READ(LU,7200) ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B, - 2 LVL2A,LVL2B,IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A, - 3 LVL3B,IFLD3A,IFLD3B,ITAU3A,ITAU3B,ICODEA, - 4 ICODEB,IINFA,IINFB,IOUTA,IOUTB,MAPON,NSLOTS - 7045 CONTINUE - NUMF=3 - IF(LVL3A.EQ.IBCHK.AND.LVL3B.EQ.IBCHK) NUMF=2 - IF(LVL2A.EQ.IBCHK.AND.LVL2B.EQ.IBCHK.AND.LVL3A.EQ.IBCHK.AND. - 1LVL3B.EQ.IBCHK) NUMF=1 - PRINT 7201,MAPON,NUMF - 7201 FORMAT(1H1,'MAP NUMBER= ',I3,' NUMBER OF INPUT FIELDS= ',I3) - PRINT 7202,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B,LVL2A,LVL2B, - 1 IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A,LVL3B,IFLD3A, - 2 IFLD3B,ITAU3A,ITAU3B - 7202 FORMAT(1H0,'DATA TYPES= ',9(A4,A1)) - PRINT 7203,ICODEA,ICODEB,IINFA,IINFB,IOUTA,IOUTB,NSLOTS - 7203 FORMAT(1H0,'OPERATIONAL CODE= ',A4,A1,' INPUT FILE= ',A4,A1, - X'OUTPUT COMB. TYPE= ',A4,A1,' NUMBER OF FAX VARIAN CUTS= ',I3) - DO 7210 IX=1,3 - ILVLI(IX)=0 - IFLDI(IX)=0 - ITAUI(IX)=0 - 7210 CONTINUE - ICODIN=0 - INAMIN=0 - DO 7211 IY=1,2 - IOUTIN(IY)=0 - 7211 CONTINUE -C 00173300 -C CHECK FOR REASONABLE LEVEL REQUESTS 00173400 -C 00173500 -C 00173600 -C CHECK LEVEL 1 00173700 -C 00173800 - DO 7215 IK=1,NLVLS - IF(LVL1A.EQ.IBCHK.AND.LVL1B.EQ.IBCHK) GO TO 7205 - IF(LVL1A.NE.ILVL(1,IK)) GO TO 7215 - IF(LVL1B.NE.ILVL(2,IK)) GO TO 7215 - ILVLI(1)=ILVL(3,IK) - IP=ILVLI(1) - PRINT 7204,IP - 7204 FORMAT(1H0,'LEVEL 1 INDEX FOUND= ',I2) - GO TO 7220 - 7205 PRINT 7206 - 7206 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 1-WAS BLANK') - CALL W3TAGE('TRPSFPRV') - STOP 207 - 7215 CONTINUE - PRINT 7216 - 7216 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 1') - CALL W3TAGE('TRPSFPRV') - STOP 217 - 7220 CONTINUE -C 00176000 -C CHECK LEVEL 2 00176100 -C 00176200 - DO 7235 IK=1,NLVLS - IF(LVL2A.EQ.IBCHK.AND.LVL2B.EQ.IBCHK) GO TO 7240 - IF(LVL2A.NE.ILVL(1,IK)) GO TO 7235 - IF(LVL2B.NE.ILVL(2,IK)) GO TO 7235 - ILVLI(2)=ILVL(3,IK) - IP=ILVLI(2) - PRINT 7234,IP - 7234 FORMAT(1H0,'LEVEL 2 INDEX FOUND= ',I2) - GO TO 7240 - 7235 CONTINUE - PRINT 7236 - 7236 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 2') - CALL W3TAGE('TRPSFPRV') - STOP 237 - 7240 CONTINUE -C 00177900 -C CHECK LEVEL 3 00178000 -C 00178100 - DO 7255 IK=1,NLVLS - IF(LVL3A.EQ.IBCHK.AND.LVL3B.EQ.IBCHK) GO TO 7260 - IF(LVL3A.NE.ILVL(1,IK)) GO TO 7255 - IF(LVL3B.NE.ILVL(2,IK)) GO TO 7255 - ILVLI(3)=ILVL(3,IK) - IP=ILVLI(3) - PRINT 7254,IP - 7254 FORMAT(1H0,'LEVEL 3 INDEX FOUND= ',I2) - GO TO 7260 - 7255 CONTINUE - PRINT 7256 - 7256 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR LEVEL 3') - CALL W3TAGE('TRPSFPRV') - STOP 257 - 7260 CONTINUE -C 00179800 -C CHECK FOR REASONABLE FIELD REQUESTS 00179900 -C 00180000 -C 00180100 -C CHECK FIELD 1 00180200 -C 00180300 - DO 7315 IK=1,NFLDS - IF(IFLD1A.EQ.IBCHK.AND.IFLD1B.EQ.IBCHK) GO TO 7305 - IF(IFLD1A.NE.IFLD(1,IK)) GO TO 7315 - IF(IFLD1B.NE.IFLD(2,IK)) GO TO 7315 - IFLDI(1)=IFLD(3,IK) - IP=IFLDI(1) - PRINT 7314,IP - 7314 FORMAT(1H0,'FIELD 1 INDEX FOUND= ',I2) - GO TO 7320 - 7305 PRINT 7306 - 7306 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 1-WAS BLANK') - CALL W3TAGE('TRPSFPRV') - STOP 307 - 7315 CONTINUE - PRINT 7316 - 7316 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD1') - CALL W3TAGE('TRPSFPRV') - STOP 317 - 7320 CONTINUE -C 00182500 -C CHECK FIELD 2 00182600 -C 00182700 - DO 7335 IK=1,NFLDS - IF(IFLD2A.EQ.IBCHK.AND.IFLD2B.EQ.IBCHK) GO TO 7340 - IF(IFLD2A.NE.IFLD(1,IK)) GO TO 7335 - IF(IFLD2B.NE.IFLD(2,IK)) GO TO 7335 - IFLDI(2)=IFLD(3,IK) - IP=IFLDI(2) - PRINT 7334,IP - 7334 FORMAT(1H0,'FIELD 2 INDEX FOUND= ',I2) - GO TO 7340 - 7335 CONTINUE - PRINT 7336 - 7336 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 2') - CALL W3TAGE('TRPSFPRV') - STOP 337 - 7340 CONTINUE -C 00184400 -C CHECK FIELD 3 00184500 -C 00184600 - DO 7355 IK=1,NFLDS - IF(IFLD3A.EQ.IBCHK.AND.IFLD3B.EQ.IBCHK) GO TO 7360 - IF(IFLD3A.NE.IFLD(1,IK)) GO TO 7355 - IF(IFLD3B.NE.IFLD(2,IK)) GO TO 7355 - IFLDI(3)=IFLD(3,IK) - IP=IFLDI(3) - PRINT 7354,IP - 7354 FORMAT(1H0,'FIELD 3 INDEX FOUND= ',I2) - GO TO 7360 - 7355 CONTINUE - PRINT 7356 - 7356 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FIELD 3') - CALL W3TAGE('TRPSFPRV') - STOP 357 - 7360 CONTINUE -C 00186300 -C CHECK FOR REASONABLE TAU REQUESTS 00186400 -C 00186500 -C 00186600 -C CHECK TAU 1 00186700 -C 00186800 - DO 7415 IK=1,NTAUS - IF(ITAU1A.EQ.IBCHK.AND.ITAU1B.EQ.IBCHK) GO TO 7415 - IF(ITAU1A.NE.ITAU(1,IK)) GO TO 7415 - IF(ITAU1B.NE.ITAU(2,IK)) GO TO 7415 - ITAUI(1)=ITAU(3,IK) - IP=ITAUI(1) - PRINT 7414,IP - 7414 FORMAT(1H0,'TAU 1 INDEX FOUND= ',I2) - GO TO 7420 - 7405 PRINT 7406 - 7406 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 1-WAS BLANK') - CALL W3TAGE('TRPSFPRV') - STOP 407 - 7415 CONTINUE - PRINT 7416 - 7416 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 1') - CALL W3TAGE('TRPSFPRV') - STOP 417 - 7420 CONTINUE -C 00189000 -C CHECK TAU 2 00189100 -C 00189200 - DO 7435 IK=1,NTAUS - IF(ITAU2A.EQ.IBCHK.AND.ITAU2B.EQ.IBCHK) GO TO 7440 - IF(ITAU2A.NE.ITAU(1,IK)) GO TO 7435 - IF(ITAU2B.NE.ITAU(2,IK)) GO TO 7435 - ITAUI(2)=ITAU(3,IK) - IP=ITAUI(2) - PRINT 7434,IP - 7434 FORMAT(1H0,'TAU 2 INDEX FOUND= ',I2) - GO TO 7440 - 7435 CONTINUE - PRINT 7436 - 7436 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 2') - CALL W3TAGE('TRPSFPRV') - STOP 437 - 7440 CONTINUE -C 00190900 -C CHECK TAU 3 00191000 -C 00191100 - DO 7455 IK=1,NTAUS - IF(ITAU3A.EQ.IBCHK.AND.ITAU3B.EQ.IBCHK) GO TO 7460 - IF(ITAU3A.NE.ITAU(1,IK)) GO TO 7455 - IF(ITAU3B.NE.ITAU(2,IK)) GO TO 7455 - ITAUI(3)=ITAU(3,IK) - IP=ITAUI(3) - PRINT 7454,IP - 7454 FORMAT(1H0,'TAU 3 INDEX FOUND= ',I2) - GO TO 7460 - 7455 CONTINUE - PRINT 7456 - 7456 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR ITAU 3') - CALL W3TAGE('TRPSFPRV') - STOP 457 - 7460 CONTINUE -C 00192800 -C CHECK FOR REASONABLE OPERATIONAL CODE REQUESTS 00192900 -C 00193000 - DO 7515 IK=1,NCODES - IF(ICODEA.EQ.IBCHK.AND.ICODEB.EQ.IBCHK) GO TO 7505 - IF(ICODEA.NE.ICODES(1,IK)) GO TO 7515 - IF(ICODEB.NE.ICODES(2,IK)) GO TO 7515 - ICODIN=ICODES(3,IK) - PRINT 7514,ICODIN - 7514 FORMAT(1H0,'CODE INDEX FOUND= ',I2) - GO TO 7520 - 7505 PRINT 7506 - 7506 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OPNL CODE-WAS BLANK') - CALL W3TAGE('TRPSFPRV') - STOP 507 - 7515 CONTINUE - PRINT 7516 - 7516 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OPNL CODE') - CALL W3TAGE('TRPSFPRV') - STOP 517 - 7520 CONTINUE -C 00195100 -C CHECK FOR REASONABLE FILE REQUESTS 00195200 -C 00195300 - DO 7535 IK=1,NFILES - IF(IINFA.EQ.IBCHK.AND.IINFB.EQ.IBCHK) GO TO 7525 - IF(IINFA.NE.IFILER(1,IK)) GO TO 7535 - IF(IINFB.NE.IFILER(2,IK)) GO TO 7535 - INAMIN=IFILER(3,IK) - PRINT 7524,INAMIN - 7524 FORMAT(1H0,'FILE INDEX FOUND= ',I2) - GO TO 7540 - 7525 PRINT 7526 - 7526 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FILE-WAS BLANK') - CALL W3TAGE('TRPSFPRV') - STOP 527 - 7535 CONTINUE - PRINT 7536 - 7536 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR FILE') - CALL W3TAGE('TRPSFPRV') - STOP 537 - 7540 CONTINUE -C 00197400 -C CHECK FOR REASONABLE OUTPUT REQUESTS 00197500 -C 00197600 - DO 7555 IK=1,NOUTS - IF(IOUTA.EQ.IBCHK.AND.IOUTB.EQ.IBCHK) GO TO 7545 - IF(IOUTA.NE.IIOUT(1,IK)) GO TO 7555 - IF(IOUTB.NE.IIOUT(2,IK)) GO TO 7555 - IOUTIN(1)=IIOUT(3,IK) - IOUTIN(2)=IIOUT(4,IK) - IP=IOUTIN(1) - IQ=IOUTIN(2) - PRINT 7554,IP,IQ - 7554 FORMAT(1H0,'OUTPUT TYPE INDEX FOUND= ',I2,'OUTPUT MAP SET FOUND - X= ',I2) - GO TO 7560 - 7545 CONTINUE - PRINT 7546 - 7546 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OUTPUT TYPE-WAS BLANK') - CALL W3TAGE('TRPSFPRV') - STOP 547 - 7555 CONTINUE - PRINT 7556 - 7556 FORMAT(1H0,'ERROR ON MAP CONTROL INPUT FOR OUTPUT TYPE') - CALL W3TAGE('TRPSFPRV') - STOP 557 - 7560 CONTINUE - print *,' 9999 ioutin' ,ioutin - RETURN - eND diff --git a/util/sorc/trpsfprv.fd/POTEX.f b/util/sorc/trpsfprv.fd/POTEX.f deleted file mode 100755 index ab72bfae07..0000000000 --- a/util/sorc/trpsfprv.fd/POTEX.f +++ /dev/null @@ -1,108 +0,0 @@ - SUBROUTINE POTEX(ZETA) -C GIVEN... VORTICITY FIELD IN ZETA(118,52) 00381600 -C TASK... TO FORM A STREAM FUNCTION FIELD IN /STRPOT/STRS(118,52) 00381700 -C ... USING A RELAXATION PROCEDURE... 00381800 -C ...THEN CALLS ON SUBROUTINE REDUCX TO REFORMAT FOR OUTPUT... 00381900 -C ...WHERE ARE THESE POINTS OF THIS GRID QQQQQ 00382000 -C ...WHAT ARE THE UNITS OF GIVEN INFO QQQ 00382100 -C ...WHAT ARE UNITS OF RESULTING INFO QQ 00382200 - COMMON /STRPOT/ STRS(118,52) - DIMENSION ZETA(118,52) - DATA AVHGT / 111.0 / -C ...PROGRAM CONSTANTS ... 00382600 - RESMA1 = 0.3E+09 - N3 = 1000 - IM = 117 - JM = 51 - IM2 = IM + 1 - JM2 = JM + 1 -C 00383300 -C 00383400 -C 00383500 -C ...IF NO STREAM FIELD IS AVAILABLE, THEN SET FIELD TO AVERAGE 00383600 -C VALUE FOR EACH LEVEL (IN CM)... 00383700 -C 00383800 -C ... ASSUME STRS ARRAY HAS BEEN INITIALIZED TO A GES VALUE 00383900 -C ... BY THE MAIN PROGRAM OR BY SUBR GETGES ... 00384000 -C 00384100 -C 00384200 - X1 = 0.0 -C ...X1 IS MEAN VALUE OF ZETA1(ZETA ON THE EVEN ROWS) 00384400 - X2 = 0.0 -C ...X2 IS MEAN VALUE OF ZETA2(ZETA ON THE ODD ROWS) 00384600 - X3 = 1.0 -C ...X3 IS THE EVEN/ODD FLAG 00384800 - DO 222 J = 1,JM2 - DO 200 I = 2,IM - X3 = -X3 - IF(X3) 166,166,188 - 166 X1 = X1 - ZETA(I,J) - GO TO 200 - 188 X2 = X2 - ZETA(I,J) - 200 CONTINUE - X3 = - X3 - 222 CONTINUE -C ...FORM MEAN VALUE OF ZETA 00385900 - X1 = X1 / (58.0 * 52.0 ) - X2 = X2 / (52.0 * 58.0 ) - X3 = 1.0 -C 00386300 -C 00386400 -C 00386500 - DO 288 J = 1,JM2 - DO 277 I = 2,IM - X3 = -X3 -C ...SET ZETA MEAN=0 00386900 - IF(X3) 255,255,266 - 255 ZETA(I,J) = ZETA(I,J) + X1 - GO TO 277 - 266 ZETA(I,J) = ZETA(I,J) + X2 - 277 CONTINUE - X3 = -X3 - 288 CONTINUE - M1 = 1 - N = 0 - 311 CONTINUE - M = 0 - DO 488 J1 = 1,JM2 - IF(M1) 322,322,333 - 322 J = J1 - GO TO 344 - 333 J = JM2 + 1 - J1 - 344 CONTINUE - DO 477 I = 2,IM - IF(J - 1) 411,422,411 - 411 IF(J - JM2) 444,433,444 - 422 RES = STRS(I+1,J+1)+STRS(I-1,J+1)-STRS(I,J)*2.0-ZETA(I,J) - IF(ABS(RES) - RESMA1) 466,466,455 - 433 RES = STRS(I+1,J-1)+STRS(I-1,J-1)-STRS(I,J)*2.0-ZETA(I,J) - IF(ABS(RES) - RESMA1) 466,466,455 - 444 CONTINUE - RES = STRS(I+1,J+1)+STRS(I-1,J+1)+STRS(I-1,J-1)+ - XSTRS(I+1,J-1)-STRS(I,J)*4.0-ZETA(I,J) - IF(ABS(RES) - RESMA1) 466,466,455 - 455 M = M + 1 - 466 CONTINUE - 477 STRS(I,J) = STRS(I,J) + 0.45*RES - STRS(1,J) = STRS(IM,J) - STRS(IM2,J) = STRS(2,J) - 488 CONTINUE - M1 = -M1 - IF(M .EQ. 0) GO TO 611 - N = N + 1 - IF(N - N3) 311,522,522 - 522 CONTINUE - N2 = N - N4 = 0 - N1 = 0 - PRINT 544, N - 544 FORMAT(1H0, 10X, '***ERROR RETURN FROM POTEX. RELAXATION INCOMPLE - 1TE AFTER', I5, 3X, 'ITERATIONS. STREAM FIELD IS NO GOOD.') - RETURN - 611 CONTINUE - PRINT 633, N - 633 FORMAT(1H0, 10X, 'RELAXATION COMPLETED IN POTEX. USED', I5, - 1 2X, 'ITERATIONS TO GET STREAM FIELD') - CALL REDUCX - RETURN - END diff --git a/util/sorc/trpsfprv.fd/REDFLD.f b/util/sorc/trpsfprv.fd/REDFLD.f deleted file mode 100755 index a986545501..0000000000 --- a/util/sorc/trpsfprv.fd/REDFLD.f +++ /dev/null @@ -1,859 +0,0 @@ - SUBROUTINE REDFLD(ISWTCH,NUMF,ILVLI,IFLDI,ITAUI,IARR2,IERR) -C ...THIS SOUBROUTINE WILL FORM THE ID'S TO RETRIEVE THE PROPER -C ...FIELDS FROM MERC - COMMON/BOBINS/LMERC(256),IDMERC(1539) - common /get3com/ctitlE - Common/grbpds/kpds(25) - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON/PACKRA/IRAS(10) - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON/ADJ2/XIDID,YJDID - COMMON/FIXFLD/XIM(51),F(51) - COMMON/STRPOT/STFM(118,52) - COMMON/YUCK/FLD1(48,119),FLD2(48,119),FLD3(48,119), - & fld4(48,119) - COMMON/ADJ4/IRTCOR,IUPCOR - COMMON/ISPACE/UC(118,51),VC(118,51),ZETA(118,52) - COMMON/SHTST/ ISSH -C ...WHICH MAKES SPACE OF 18172 WORDS = 2*6018 +6136L 500 - DIMENSION IBUF1(2996) - DIMENSION U(117,51),V(117,51) - dimension vold(117,51) -c DIMENSION STFMX(116,51) - DIMENSION STFMX(117,51) - DIMENSION STFMY(51,117) - DIMENSION VSIDE(48,119) - DIMENSION ILVLI(3),IFLDI(3),ITAUI(3) - DIMENSION IINID(3,8) - DIMENSION ILVL(2,9) - DIMENSION IITAU(5) - DIMENSION IRUNTA(3) - DIMENSION ICONTA(3) - DIMENSION IDCHK1(3,8) - DIMENSION IDCHK(6) - DIMENSION NEWS1(12) - DIMENSION ITITLE(81) - character*132 ctitle - DIMENSION JTITL1(3),JTITL2(3),JTITL3(3),JTITL4(3),IARR2(3) - DIMENSION IFM(5) - DIMENSION KCFIX(5) - INTEGER KTL (99) - data ktl /99*' '/ - DIMENSION ITABMB(7),ITABFL(7) - DIMENSION CNST(4),DNST(4),CNST1(4),CNST2(4),CNST3(4) - DIMENSION KTBL(9),JTBL(9) - EQUIVALENCE (NEWS1(1),IBUF1(1)) - EQUIVALENCE (U(1,1),UC(1,1)) - EQUIVALENCE (STFMX(1,1),UC(1,1)) - EQUIVALENCE (V(1,1),VC(1,1)) - EQUIVALENCE (STFMY(1,1),VC(1,1)) - EQUIVALENCE (IBUF1(1),ZETA(1,1)) - REAL*8 MERCI - DATA MXREC2/255/ - DATA IMAX/48/ - DATA JMAX/119/ - DATA IRCSZ1/2996/ - DATA IDOTS/30/ -C - -C ...FIELD IDENT CONTOUR/LABEL CONSTANTS -C -C -C -C 1=STREAM(DUMMY) 2=TEMPERATURE 3=U 4=V 5=ISOTACH(DUMMY) -C 6=TROP PRESSURE 7=TROP TEMPERATURE 8=TROP VERT WIND SHEAR -C -C -C - DATA IINID/ -C ...STREAM(DUMMY) - 1 3*0, -C ...TEMPERATURE - 2 Z'01000800',Z'00C35082',53, -C ...U - 3 Z'03000800',Z'00C35082',53, -C ...V - 4 Z'03100800',Z'00C35082',53, -C ...ISOTACH(DUMMY) - 5 3*0, -C ...TROP PRESSURE - 6 Z'00808200',0,53, -C ...TROP TEMPERATURE - 7 Z'01008200',0,53, -C ...TROP VERT WIND SHEAR - 8 Z'03408200',0,53/ -C -C ...LEVEL CONTROL TABLE -C - DATA ILVL/ - 1 70000,Z'82', - 2 50000,Z'82', - 3 40000,Z'82', - 4 30000,Z'82', - 5 20000,Z'82', - 6 25000,Z'82', - 7 0,0, - 8 10000,Z'81', - 9 85000,Z'82'/ -C -C ...TAU PERIOD CONTROL TABLE -C - DATA IITAU/18,24,30,36,48/ - dimension iutau(2,5) - data iutau/12,22,13,23,14,24,15,25,16,26/ - DATA IDCHK1/24*0/ - DATA IDCHK/6*0/ - DATA LBLTAP/55/ - DATA MERCI/'TRPGRD '/ - DATA ITITLE/81*4H / - DATA MASKFF/Z'FF'/ - DATA JTITL1/4HE 10,4H00MB,2HWI/ - DATA JTITL2/4HE 50,4H0MB ,2HWI/ - DATA JTITL3/4HE 25,4H0MB ,2HWI/ - DATA JTITL4/4HE 85,4H0MB ,2HWI/ - DATA IFM/4H(A3,,4H1H$),3*0/ - DATA XLPLMI/3HS#-/ - DATA KCFIX/13,45,68,94,106/ - DATA ITABMB/400,350,300,250,200,150,100/ - DATA ITABFL/240,270,300,340,390,450,530/ - DATA DEF/Z'7FFFFFFF'/ - DATA CNST/0.,1.,10.,0./ - DATA CNST1 /0.,50.,50.,0./ - DATA CNST2 /0.,1., 5.,0./ - DATA CNST3 /0.,1., 1.,0./ - DATA DNST/ 273.,5.,10.,0./ - DATA KTBL/-1,51,117,117,117,1,1,0,51/ - DATA JTBL/-1,48,119,119,119,1,1,0,48/ - DATA KRECT/1/ - DATA KCONTR/12/ - data lun,luni /15,25/ - dimension ibar(9) - parameter (nlons=360,nlats=181) - dimension f3(nlons,nlats) - data ibar/700,500,400,300,200,250,0,1000,850/ - dimension iin(8) - data iin/35,11,33,34,0,1,11,136/ -c new grib variables - dimension kkds(25,9),kgds(22) - dimension kds(25) - dimension jpds(25) - equivalence(jpds,kds) - character*4 ctextt - dimension krot_pri(2) - INTEGER IERR -C -c************************* END OF SPECIFICATIONS *********** - IERR=0 - do 9,k=1,9 - do 9 kk=1,25 - 9 kkds(kk,k)=-1 -C****************************************************************** -C 8/20/81 -- CHANGES: ADD 2650,56009,60399 -C CHANGE 10750,10800,56010,60400 -C 8/21/81 -- CHANGES: ADD 60301 TO 60305 -C CHANGE 60000 FROM .2 TO 1.0 -C****************************************************************** -C -C ...GENERATE IDENT TO OBTAIN OUTPUT FIELD REQUESTS -C -c control vbls ITAUI,IFLDI,ILVLI -c control forecast time for each field, field number (type), and -c pressure surface of that field -c itaui(1)=1, -c -c ifldi(1)=3,ilvli(1)=8 -c transforms to fcsthour=itau(itaui(1))=18 -c fieldnumber=iinid(ifldi(1),1:3) (an algorithm extracts it -c from column 1 and then extracts other ON84 info from columns 2 -c and 3 (col.3 is map number) )) -c -c ilvli(1)=8 passes the pressure level information -c pressure level is in ilvl(ilvli(8),1) in pascals -c the second word of this row is used for ON84 logic -c and is not needed here. -C -C ...FIELD 1 -C - ISSH = 0 - ITAUA=ITAUI(1) - IRUNTA(1)=IITAU(ITAUA) -c irunta is the actual forecast time!! -c store this in kds(14) for grib extraction - IFLDA=IFLDI(1) - ICONTA(1)=IFLDA -c IFLDA defines the variable (u,v,t,etc.) we will extract - LVL11=ILVLI(1) -c logical pressure was changed to bytes 2:3 of -c ILVL(LVL11,1) divided by 100 -c now change this to ibar(lvl11) - izz=ibar(lvl11) - print *,'9999 FROM TITLE lvl11,ibar(lvl11)',lvl11,ibar(lvl11) -c this becomes KDS word 7 -c if izz is zero, set kds word 6 to integer seven -c (defining tropopause rather than 100 isobaric sfc) - IDALL=LOR(SHFTL(ILVL(1,LVL11),8),ILVL(2,LVL11)) -c now get field type iin(iflda) - ity=iin(iflda) -c This becomes kds word 5. - kkds(5,1)=ity - kkds(7,1)=izz - if(izz .eq. 0) kkds(6,1)=7 - kkds(14,1)=irunta(1) - if(irunta(1) .eq. 24) then - lun=12 - luni=22 - endif - if(irunta(1) .eq. 48) then - lun=15 - luni=25 - endif -c IDCHK1(1,1)=LOR(IINID(1,IFLDA),IRUNTA(1)) -c IDCHK1(2,1)=IDALL -c IDCHK1(3,1)=IINID(3,IFLDA) -c IDCHK1(1,4)=LOR(IINID(1,3),IRUNTA(1)) -c IDCHK1(2,4)=IDALL -c IDCHK1(3,4)=IINID(3,3) -c IDCHK1(1,5)=LOR(IINID(1,4),IRUNTA(1)) -c IDCHK1(2,5)=IDALL -c IDCHK1(3,5)=IINID(3,4) -c IDCHK1(1,6)=LOR(IINID(1,2),IRUNTA(1)) -c IDCHK1(2,6)=IDALL -c IDCHK1(3,6)=IINID(3,2) -c IDCHK1(1,7)=LOR(IINID(1,7),IRUNTA(1)) -c IDCHK1(2,7)=IINID(2,7) -c IDCHK1(3,7)=IINID(3,7) -ccC -C ...FIELD 2 (IF NEEDED) -C - LVL22=ILVLI(2) -c - IF(LVL22.EQ.0) GO TO 27 - ITAUB=ITAUI(2) - IRUNTA(2)=IITAU(ITAUB) -c - IFLDB=IFLDI(2) - ICONTA(2)=IFLDB - IDALL=LOR(SHFTL(ILVL(1,LVL22),8),ILVL(2,LVL22)) - IDCHK1(1,2)=LOR(IINID(1,IFLDB),IRUNTA(2)) - IDCHK1(2,2)=IDALL - IDCHK1(3,2)=IINID(3,IFLDB) - 27 CONTINUE - izz=ibar(lvl22) - ity=iin(ifldb) - kkds(7,2)=izz - if(izz .eq. 0) kkds(6,2)=7 - kkds(14,2)=irunta(2) - kkds(5,2)=ity - -C -C ...FIELD 3 (IF NEEDED) - LVL33=ILVLI(3) - IF(LVL33.EQ.0) GO TO 28 - ITAUC=ITAUI(3) - IRUNTA(3)=IITAU(ITAUC) - IFLDC=IFLDI(3) - ICONTA(3)=IFLDC - IDALL=LOR(SHFTL(ILVL(1,LVL33),8),ILVL(2,LVL33)) - IDCHK1(1,3)=LOR(IINID(1,IFLDC),IRUNTA(3)) - IDCHK1(2,3)=IDALL - IDCHK1(3,3)=IINID(3,IFLDC) - IDCHK1(1,8) = IDCHK1(1,3) - IDCHK1(2,8) = 0 - IDCHK1(3,8) = IINID(3,IFLDC) - 28 CONTINUE - izz=ibar(lvl33) - ity=iin(ifldc) - kkds(7,3)=izz - if(izz .eq. 0) kkds(6,3)=7 - kkds(14,3)=irunta(3) - kkds(5,3)=ity -C -C****************************************************************** -C IF THIS MAP IS A TROP CHART, SET NUMF=1 TO PASS THRU LOOP ONCE -C AND AVOID INCORRECT ISOTACH AND ISOTHERM SEGMENTS AT 200 AND 300. -C****************************************************************** - IF (LVL11 .EQ. 7) NUMF = 1 - DO 1000 ISET=1,NUMF - GO TO(100,200,300),ISET -C -C ...ID ERROR MESSAGES FROM W3FK43 -C ...PRINT MESSAGE AND SKIP THIS MAP -C -C -C -C ...PROCESS INPUT DATA FOR WIND PLOT(EXCEPT FOR TROP MAP) -C ...PROCESS INPUT DATA FOR 1ST FIELD FOR CONTOURING STREAM FIELD -C ...EXCEPT FOR TROP LEVEL WHERE WE CONTOUR TROP PRESSURE. -C -C -C - 100 CONTINUE -C -C ...INITIALIZE LABEL ARRAY -C - REWIND LBLTAP - DO 130 L=1,1024 - LABEL(1,L)=0 - LABEL(2,L)=0 - 130 CONTINUE - LABIX=0 - NOBUF=0 -C -c gwv inserted initialization code -C INITIALIZE LABEL ARRAY -C - LABIX = 0 - NOBUF = 0 -cC - IPT = 1 - JPT = 0 - HEIGHT = 1.0 - ANGLE = 0.0 - KROT_PRI(1) = 0 - KROT_PRI(2) = 0 - CTEXTt(1:1) = '?' - CTEXTt(2:2) = CHAR(1) - CTEXTt(3:3) = '$' - CTEXTt(4:4) = CHAR(0) - NCHAR = 2 - ICMD = -2 - CALL PUTLAB(IPT,JPT,HEIGHT,CTEXTt,ANGLE,NCHAR,KROT_PRI, - X ICMD) - -C -C ...PREPARE FOR PLOT OF WINDS (AVERAGE WHEN NEEDED) -C - IZSET=1 - IF(LVL11.EQ.8) IZSET=1 - IF(LVL11.EQ.2) IZSET=2 - IF(LVL11.EQ.6) IZSET=3 - IF(LVL11.EQ.7) IZSET=4 - IF(LVL11.EQ.9) IZSET=5 - kds(7)=ibar(lvl11) - print *,' 9999 set kds(7) ' , kds(7) - GO TO (140,150,160,170,1800),IZSET -C -C ...GET 1000 MB U FIELD IN ARRAY U - 140 CONTINUE - IARR2(1)=JTITL1(1) - IARR2(2)=JTITL1(2) - IARR2(3)=JTITL1(3) - IDCHK(1)=IDCHK1(1,4) - IDCHK(2)=IDCHK1(2,4) - IDCHK(5)=IDCHK1(3,4) - PRINT 51, (IDCHK(I),I=1,6) - 51 FORMAT('0MAP IDENTS REQUESTED ARE ',6(2X,Z8)) -c -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) -c replacement to w3fk43 follows - do 311,n=1,25 - 311 kds(n)=-1 - kds(7)=ibar(lvl11) - print *,' 9999 set kds(7) ' , kds(7) - 1 ,lvl11,ibar(lvl11) -c special for u - kds(5)=33 - kds(6)=100 -c kds(7)=1000 - if(lvl11 .eq. 8) kds(7)=1000 - print *,' 9999 kds7 in 1000 goto ',kds(7) - kds(14)=irunta(1) -C GETGB - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF(IERR.NE.0) GO TO 180 -c CALL W3FP02(NEWS1,ITITLE,1) - PRINT 120,(ITITLE(I),I=1,22) - 120 FORMAT(1H0,10X,'INPUT FIELD FOUND = ',22A4) -c CALL W3AI01(IBUF1,U,NEWS1) -C ...SET UP DATE FOR TITLE -C - print 1977,jpds - 1977 format(4z20) -c stop 'jpds' -c IRAS(1)=LAND(NEWS1(1),MASKFF) -c IRAS(7)=LAND(NEWS1(7),MASKFF) -c IRAS(8)=LAND(SHFTR(NEWS1(7),8),MASKFF) -c IRAS(9)=LAND(SHFTR(NEWS1(7),16),MASKFF) -c IRAS(10)=SHFTR(NEWS1(7),24) -c iras(7)=kpds(11) -c iras(8)=kpds(10) -c iras(9)=kpds(9) -c iras(10)=kpds(8) -c iras(1)=24 - CALL UPDATR - PRINT 125, IRAS(1),(IRAS(I),I=7,10) - 125 FORMAT('0TAU INCREMENT= ',I3,' BASED ON IHOUR= ',I3, - 1 ' IDAY= ',I3,' IMONTH= ',I3,' IYR= ',I5) -C -C ...GET 1000 MB V FIELD IN ARRAY V -C - IDCHK(1)=IDCHK1(1,5) - IDCHK(2)=IDCHK1(2,5) - IDCHK(5)=IDCHK1(3,5) - PRINT 51, (IDCHK(I),I=1,6) -c special for v - do 313,n=1,25 - 313 kds(n)=-1 - kds(7)=ibar(lvl11) - kds(5)=34 - kds(6)=100 -c kds(7)=1000 - if(lvl11 .eq. 8) kds(7)=1000 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,v) - call i3to53(f3,vold) - IF(IERR.NE.0) GO TO 180 -c CALL W3AI01(IBUF1,V,NEWS1) - GO TO 190 -C -C ...GET 500 MB U FIELD IN ARRAY U -C - 150 CONTINUE - IARR2(1)=JTITL2(1) - IARR2(2)=JTITL2(2) - IARR2(3)=JTITL2(3) - IDCHK(1)=IDCHK1(1,4) - IDCHK(2)=IDCHK1(2,4) - IDCHK(5)=IDCHK1(3,4) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=33 - kds(6)=100 - kds(7)=500 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF(IERR.NE.0) GO TO 180 - CALL W3FP02(NEWS1,ITITLE,1) - PRINT 120,(ITITLE(I),I=1,22) -c CALL W3AI01(IBUF1,U,NEWS1) -C ...SET UP DATE FOR TITLE -C -c IRAS(1)=LAND(NEWS1(1),MASKFF) -c IRAS(7)=LAND(NEWS1(7),MASKFF) -c IRAS(8)=LAND(SHFTR(NEWS1(7),8),MASKFF) -c IRAS(9)=LAND(SHFTR(NEWS1(7),16),MASKFF) -c IRAS(10)=SHFTR(NEWS1(7),24) -c CALL UPDATR - PRINT 125, IRAS(1),(IRAS(I),I=7,10) -C -C ...GET 500 MB V FIELD IN ARRAY V -C - IDCHK(1)=IDCHK1(1,5) - IDCHK(2)=IDCHK1(2,5) - IDCHK(5)=IDCHK1(3,5) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=34 - kds(6)=100 - kds(7)=500 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,v) - call i3to53(f3,vold) - IF(IERR.NE.0) GO TO 180 -c CALL W3AI01(IBUF1,V,NEWS1) - GO TO 190 -C -C ...GET 250 MB U FIELD IN ARRAY U -C - 160 CONTINUE - IARR2(1)=JTITL3(1) - IARR2(2)=JTITL3(2) - IARR2(3)=JTITL3(3) - IDCHK(1)=IDCHK1(1,4) - IDCHK(2)=IDCHK1(2,4) - IDCHK(5)=IDCHK1(3,4) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=33 - kds(6)=100 - kds(7)=250 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF(IERR.NE.0) GO TO 180 - CALL W3FP02(NEWS1,ITITLE,1) - PRINT 120,(ITITLE(I),I=1,22) -c CALL W3AI01(IBUF1,U,NEWS1) -C ...SET UP DATE FOR TITLE -C -c IRAS(1)=LAND(NEWS1(1),MASKFF) -c IRAS(7)=LAND(NEWS1(7),MASKFF) -C IRAS(8)=LAND(SHFTR(NEWS1(7),8),MASKFF) -c IRAS(9)=LAND(SHFTR(NEWS1(7),16),MASKFF) -c IRAS(10)=SHFTR(NEWS1(7),24) -c CALL UPDATR - PRINT 125, IRAS(1),(IRAS(I),I=7,10) -C -C ...GET 250 V FIELD IN ARRAY V -C - IDCHK(1)=IDCHK1(1,5) - IDCHK(2)=IDCHK1(2,5) - IDCHK(5)=IDCHK1(3,5) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=34 - kds(6)=100 - kds(7)=250 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,v) - call i3to53(f3,vold) - IF(IERR.NE.0) GO TO 180 -c CALL W3AI01(IBUF1,V,NEWS1) - GO TO 190 -C -C ...GET 850 MB U FIELD IN ARRAY U - 1800 CONTINUE - IARR2(1)=JTITL4(1) - IARR2(2)=JTITL4(2) - IARR2(3)=JTITL4(3) - IDCHK(1)=IDCHK1(1,4) - IDCHK(2)=IDCHK1(2,4) - IDCHK(5)=IDCHK1(3,4) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=33 - kds(6)=100 - kds(7)=850 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF(IERR.NE.0) GO TO 180 - CALL W3FP02(NEWS1,ITITLE,1) - PRINT 120,(ITITLE(I),I=1,22) -c CALL W3AI01(IBUF1,U,NEWS1) -C ...SET UP DATE FOR TITLE -C -c IRAS(1)=LAND(NEWS1(1),MASKFF) -c IRAS(7)=LAND(NEWS1(7),MASKFF) -c IRAS(8)=LAND(SHFTR(NEWS1(7),8),MASKFF) -c IRAS(9)=LAND(SHFTR(NEWS1(7),16),MASKFF) -c IRAS(10)=SHFTR(NEWS1(7),24) -c CALL UPDATR - PRINT 125, IRAS(1),(IRAS(I),I=7,10) -C -C ...GET 850 MB V FIELD IN ARRAY V -C - IDCHK(1)=IDCHK1(1,5) - IDCHK(2)=IDCHK1(2,5) - IDCHK(5)=IDCHK1(3,5) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=34 - kds(6)=100 - kds(7)=850 - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,v) - call i3to53(f3,vold) - IF(IERR.NE.0) GO TO 180 -c CALL W3AI01(IBUF1,V,NEWS1) - GO TO 190 -C -C ...TROP LEVEL PLOTS NO WINDS -- SO GET OUT -C - 170 CONTINUE - GO TO 190 - 180 CONTINUE - PRINT 181 - 181 FORMAT('0ID ERROR W3FK43 FOR U/V FIELD-EXIT') - RETURN - 190 CONTINUE - iF(IZSET.NE.4) GO TO 195 -C -C ...GET TROPOPAUSE PRESSURE FIELD IN ARRAY V - IDCHK(1)=IDCHK1(1,1) - IDCHK(2)=IDCHK1(2,1) - IDCHK(5)=IDCHK1(3,1) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=01 - kds(6)=7 -c kds(7)= - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,v) - IF(IERR.EQ.0) GO TO 145 - PRINT 146 - 146 FORMAT('0ID ERROR W3FK43 FOR TROP PRES FIELD-EXIT') - RETURN - 145 CONTINUE -C CALL W3AI01(IBUF1,V,NEWS1) -C -c IRAS(1)=LAND(NEWS1(1),MASKFF) -c IRAS(7)=LAND(NEWS1(7),MASKFF) -c IRAS(8)=LAND(SHFTR(NEWS1(7),8),MASKFF) -C IRAS(9)=LAND(SHFTR(NEWS1(7),16),MASKFF) -c IRAS(10)=SHFTR(NEWS1(7),24) -c CALL UPDATR - PRINT 125, IRAS(1),(IRAS(I),I=7,10) - UM = .02 - UA =0.0 - B1=50.0 - A1=0.0 - JFLD=1 - CALL UVCLIP(U,V,VSIDE,FLD1,IMAX,JMAX,UM,UA,JFLD) -C ...TROP PRESS NOW IN FLD1 -C -C ...GET TROPOPAUSE TEMPERATURE FIELD IN ARRAY U. -C - IDCHK(1)=IDCHK1(1,7) - IDCHK(2)=IDCHK1(2,7) - IDCHK(5)=IDCHK1(3,7) - PRINT 51, (IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=11 - kds(6)=7 -c kds(7)= - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF(IERR.EQ.0) GO TO 148 - PRINT 147 - 147 FORMAT('0ID ERROR W3FK43 FOR TROP TEMP FIELD-EXIR') - RETURN - 148 CONTINUE -c CALL W3AI01(IBUF1,U,NEWS1) - UM=1.0 - UA=-273. - JFLD=1 - CALL UVCLIP(V,U,VSIDE,FLD2,IMAX,JMAX,UM,UA,JFLD) -C ...TROP TEMP NOW IN FLD2 -C -C****************************************************************** -C GET TROPOPAUSE VERTICAL WIND SHEAR FIELD IN ARRAY U . . . -C****************************************************************** - IDCHK(1) = IDCHK1(1,8) - IDCHK(2) = 0 - IDCHK(5) = IDCHK1(3,8) - PRINT 51,(IDCHK(I),I=1,6) - do n=1,25 - kds(n)=-1 - end do - kds(5)=45 -c WARNING, THIS IS JUST U SHEAR - kds(6)=7 -c kds(7)= - kds(14)=irunta(1) -C GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - call get3(lun,luni,jpds,f3,ctitle) - call i3to53(f3,u) - IF (IERR .EQ. 0) GO TO 707 - PRINT 708 - 708 FORMAT('0ID ERROR W3FK43 FOR TROP VWS FIELD -- EXIT') - RETURN -C - 707 CONTINUE -c CALL W3AI01(IBUF1,U,NEWS1) - UM = 592. - UA = 0. - JFLD = 1 - CALL UVCLIP(V,U,VSIDE,FLD3,IMAX,JMAX,UM,UA,JFLD) -C -C . . . TROP VWS NOW IN FLD3 . . . -C -C -C ...FIND TROPPAUSE TEMPERATURE VALUES AND -C ...PLACE ON TROPOPAUSE PRESSURE CONTOUR STRIPS -C -C - DO 1430 IGOR=1,IMAX - DO 1430 JGOR=1,JMAX - INTEG=FLD2(IGOR,JGOR)+0.5 - IF(INTEG.EQ.99) FLD1(IGOR,JGOR)=DEF - 1430 CONTINUE - PUTHGT=1.0 - PUTANG=0.0 - IPRPUT=1 - ITAPUT=0 - M=3 - IFIX=2 - IUP=42 - LOX=0 - A2=0.0 - B2= 1.0 - S=.5 - IRTCOR=0 - IUPCOR=-50 - MXITR=7 - DO 149 ILAB=1,5 - JFIX=KCFIX(ILAB) - CALL CLOSEF(FLD1,FLD2,IMAX,JMAX,S,A2,B2,M,IFIX,JFIX,XLPLMI,IFM, - 1 IUP,LOX,ITABMB,ITABFL,MXITR) - 149 CONTINUE - DO 142 I=1,IMAX - DO 141 J=1,JMAX - FLD2(I,J) = FLD2(I,J) * .2 - 141 CONTINUE - 142 CONTINUE - GO TO 800 -C -C ...PROCESS INPUT DATA FOR 1ST FIELD FOR CONTOURING-STREAMS -C - 195 CONTINUE -C ...BUT FIRST WE MUST SCALE,TURN SIDEWAYS,AND CLIP U,V&PLOT WINDS - UM=1.9424 - UA=0.0 - JFLD=2 - CALL UVCLIP(U,V,FLD1,VSIDE,IMAX,JMAX,UM,UA,JFLD) -C ...NOW U SIDEWAYS IS IN FLD1(48,119) -C ...AND V SIDEWAYS IS IN VSIDE(48,119) -C ...IBUF1 STILL HAS PACKED V -C ...ORIGINAL U FIELD IS STILL INTACT -C -C ...NOW PLOT WINDS - CALL WNDPLO(FLD1,VSIDE,IMAX,JMAX) -c isotac call moved up here from position -c 30 lines down since fld1 is clobbered -c by streamfunction .. not good -c CALL ISOTAC(FLD1,VSIDE,48,119,FLD2) - CALL ISOTAC(FLD1,VSIDE,48,119,FLD2) - DO 1750 J=1,119 - DO 1750 I=1,48 - FLD2(I,J)=FLD2(I,J)*.05+6.5 - 1750 CONTINUE - -C -C ...TO RESTORE V -c CALL W3AI01(IBUF1,V,NEWS1) -c to restore v - do 389,k=1,51 - do 389 j=1,117 - 389 v(j,k)=vold(j,k) -c - DO 390 J=1,51 - DO 390 I=1,117 - V(I,J)=V(I,J)*1.9424 - 390 CONTINUE -C -C ...FORM STREAMS - print 1999,kds - 1999 format(5z20) -c CALL STR(ZETA,U,UC,V,VC) -c obtain 360x181 streamfunction on f3 -c from u and v fields in lun - call stream3(kds(7),kds(14),lun,luni,f3) -c -c streamfunction is now M**2/SEC**2. We need to convert to -c Z. The conversion factor is just f/g. The apparent -c assumption from old stremafunction source is that f -c is held constant at its 45 degree value -c - pi=3.1415927 - sin45=sqrt(2.)/2 - omega=2*pi/86400. - g=9.81 - fcoril=2*omega*sin45 - factor=fcoril/g -c downstream code has cgs logic and expects -c centimeters. adjust factor - factor=factor*100 - do j=1,nlats - do k=1,nlons - f3(k,j)=f3(k,j) * factor - end do - end do -c END CGS CONVERSION -c interpolate to type 53 mercator grid - call i3to53(f3,stfmx) -c draw equator bulls eye for location confirmation. -ccc stfmx(90,26)=50000. -C -C ...STFMX CONTAINS THE RESULTING STREAM FUNCTION FIELD -c CALL FLIPTR(STFMX,STFMY,FLD1) - CALL FLIPTR(STFMX,STFMY,FLD1) - if(kds(7) .eq. 1000) go to 800 -c IF(IZSET.EQ.1) GO TO 800 -C ...CUT CNTR INTERVAL IN HALF FOR EVERY LEVEL EXCEPT 1000 MB - - print *,'9999 cntr cutter at ', kds(7) - DO 165 J=1,119 - DO 165 I=1,48 - FLD1(I,J)=FLD1(I,J)*0.5 - 165 CONTINUE - GO TO 800 -C -C ...PROCESS INPUT DATA FOR 2ND FIELD FOR CONTOURING-ISOTACH -C - 200 CONTINUE -c CALL ISOTAC(FLD1,VSIDE,48,119,FLD2) -c DO 175 J=1,119 -c DO 175 I=1,48 -c FLD2(I,J)=FLD2(I,J)*.05+6.5 -c 175 CONTINUE - GO TO 800 -C -C ...PROCESS INPUT DATA FOR 3RD FIELD CONTOURING-ISOTHERMS -C - 300 CONTINUE - IDCHK(1)=IDCHK1(1,3) - IDCHK(2)=IDCHK1(2,3) - IDCHK(5)=IDCHK1(3,3) - PRINT 51, (IDCHK(I),I=1,6) - izz=ibar(lvl33) - ity=iin(ifldc) - kds(7)=izz - if(izz .eq. 0) kds(6)=7 - kds(14)=irunta(3) - kds(5)=ity -c GETGB -c CALL W3FK43(MERCI,IDMERC,IDCHK,IBUF1,MXREC2,IRCSZ1,IERR) - IF(IERR.EQ.0) GO TO 310 - PRINT 312, IERR - 312 FORMAT('0ID ERROR W3FK43 FOR TMPS--IERR = ',I4) - RETURN - 310 CONTINUE - CALL W3AI01(IBUF1,U,NEWS1) - UM=1.0 - UA=0.0 - JFLD=1 - CALL UVCLIP(V,U,VSIDE,FLD3,IMAX,JMAX,UM,UA,JFLD) - DO 750 IT=1,48 - DO 749 JT=1,119 - FLD3(IT,JT) = (FLD3(IT,JT) - 273.)/5. - 749 CONTINUE - 750 CONTINUE -C ...ISOTHERMS NOW IN FLD3 - 800 CONTINUE - 1000 CONTINUE - RETURN - END diff --git a/util/sorc/trpsfprv.fd/REDUCX.f b/util/sorc/trpsfprv.fd/REDUCX.f deleted file mode 100755 index 986c240d75..0000000000 --- a/util/sorc/trpsfprv.fd/REDUCX.f +++ /dev/null @@ -1,40 +0,0 @@ - SUBROUTINE REDUCX -C ...GIVEN ... STREAM FUNCTION FIELD PREPARED BY POTEX 00392400 -C ... IN /STRPOT/ STFM(118,52) 00392500 -C ...TASK ... TO SMOOTH, RESCALE, AND TRANSFER TO A SMALLER GRID 00392600 -C ... IN /ISPACE/ STFMX(116,51) 00392700 -C ... IN A FORM READY FOR MERC 00392800 -C ...WHAT ARE UNITS OF GIVEN FIELD... 00392900 -C ...WHAT ARE UNITS OF RESULTING FIELD QQQQQ 00393000 - COMMON /ISPACE/ STFMX(116,51),XTRA(12256) - COMMON /STRPOT/ STFM(118,52) - CFB = 3.14159 / 2.16E+04 - SSF = (980.0 * SQRT(2.0)) / CFB - DO 200 I = 2,117 - DO 200 J = 1,51 - VAL = STFM(I,J) + STFM(I+1,J) + STFM(I,J+1) + STFM(I+1,J+1) - IF(J .EQ. 1) GO TO 10 - IF(J .EQ. 51) GO TO 10 - IF(I .EQ. 117) GO TO 17 - STFMX(I,J)=(81.0*VAL - 9.0*(STFM(I,J-1)+STFM(I+1,J-1)+STFM(I+2,J) - 1 +STFM(I+2,J+1)+STFM(I+1,J+2)+STFM(I,J+2)+STFM(I-1,J+1) - 2 +STFM(I-1,J)) - 3 +STFM(I-1,J-1) + STFM(I+2,J-1) + STFM(I+2,J+2) - 4 +STFM(I-1,J+2)) / 256.0 - STFMX(I,J) = STFMX(I,J) / SSF - GO TO 200 - 10 IF(I .EQ. 117) GO TO 11 - STFMX(I,J) = VAL / (4.0 * SSF) - GO TO 200 - 11 STFMX(1,J) = VAL / (4.0 * SSF) - GO TO 200 - 17 CONTINUE - STFMX(1,J) = (81.0*VAL - 9.0*(STFM(I,J-1)+STFM(I+1,J-1)+STFM(3,J) - 1 +STFM(3,J+1)+STFM(I+1,J+2)+STFM(I,J+2)+STFM(I-1,J+1) - 2 +STFM(I-1,J)) - 3 +STFM(I-1,J-1)+STFM(3,J-1)+STFM(3,J+2) - 4 +STFM(I-1,J+2)) / 256.0 - STFMX(1,J) = STFMX(1,J) / SSF - 200 CONTINUE - RETURN - END diff --git a/util/sorc/trpsfprv.fd/RNCNTL.f b/util/sorc/trpsfprv.fd/RNCNTL.f deleted file mode 100755 index 26b35fb02b..0000000000 --- a/util/sorc/trpsfprv.fd/RNCNTL.f +++ /dev/null @@ -1,161 +0,0 @@ - SUBROUTINE RNCNTL(NMAPS,IDATC,IOPN,ISWTCH,KRUN1,ITOUT1,ICYC1, - 1 INOPN1,INOPN2,INOPNA,INOPNB) - DIMENSION LKRUN(3,4) - DIMENSION LICYL(2,2) - DIMENSION LITOUT(3,4) - DIMENSION ICODES(3,5) - DIMENSION JCODES(2,5) - DATA NKRUN/4/ -C ...RUN TYPE CONTROL TABLE 00145800 -C 00145900 - DATA LKRUN/4HOPNL,1H ,1,4HOPNL,1HB,2,4HCOUT,1HD,3,4HCOUT,1HT, - 1 4/ -C 00146200 -C ...OUTPUT CYCLE CONTROL TABLE 00146300 -C 00146400 - DATA LICYL/3H00Z,1,3H12Z,2/ - DATA NITOUT/4/ -C 00146700 -C ...OUTPUT TAU CONTROL TABLE 00146800 -C 00146900 - DATA LITOUT/4H1824,1HH,1,4H3036,1HH,2,4HALL ,1H ,3,4H2448,1HH,4 - 1 / - DATA NICYL/2/ - DATA NMAPM/100/ - DATA NOPCDS/5/ - DATA ICODES/4HOPN0,1H9,1,4HOPN1,1H0,2,4HOPN2,1H5,3,4HOPN2,1H6, - 1 4,4HOPN2,1H8,5/ - DATA JCODES/4HJ080,1H4,4HJ082,1H4,4HJ087,1H4,4HJ999,1H8, - + 4HJ999,1H9/ -C ...THIS SUBROUTINE READS IN THE BASIC JOB RUN 00147900 -C ...CONTROLS AND CHECKS THEM FOR PROPER CLASSIFICATIONS 00148000 -C 00148100 -C ...INPUT CONTROLS 00148200 -C (1) KRUNA,KRUNB (A4,A1) 00148300 -C WHERE KRUN=1 OPNL 18/24 OR 24/48 RUN 00148400 -C 2 OPNL 30/36 RUN BACKUP 00148500 -C 3 CHECKOUT RUN(DISK) 00148600 -C 4 CHECKOUT RUN(TAPE) 00148700 -C (2) ITOUTA,ITOUTB (A4,A1) 00148800 -C WHERE ITOUT=1 OUTPUT 18/24 HR REGULAR 00148900 -C 2 OUTPUT 30/36 HR BACKUP 00149000 -C 3 ALL 00149100 -C 4 OUTPUT 24/48 HR REGULAR 00149200 -C (3) ICYCLA,ICYCLB (A4,A1) 00149300 -C WHERE ICYCLE=1 00Z 00149400 -C212 00149500 -C 00149600 -C (4) NMAPS (I5) 00149700 -C WHERE NMAPS=NO. OF MAPS TO BE PROCESSED 00149800 -C 00149900 -C (5) IDATC (I5) 00150000 -C WHERE IDATC=0 NO DATE/TIME TEST 00150100 -C 1 DATE/TIME TEST 00150200 -C (6) IOPN (I5) 00150300 -C WHERE IOPN=0 CHECKOUT RUN 00150400 -C 1 OPERATIONAL RUN 00150500 -C 00150600 -C (7) INTAPE (I5) 00150700 -C WHERE INTAPE=0 INPUT FROM DISK-OPERATIONAL 00150800 -C 1 INPUT SPECTRAL FILES FROM TAPE 00150900 -C 00151000 -C (8) INOPNA,INOPNB (A4,A1) 00151100 -C WHERE INOPN= OPERATIONAL JOB TYPE 00151200 -C 00151300 -C (9) ISWTCH=0 INPUT SCHEDULE CONTROLS FROM CARDS 00151400 -C 1 INPUT SCHEDULE CONTROLS FORM DISK 00151500 -C 00151600 -C ...BASIC JOB RUN CONTROLS (SET FOR EACH JOB) 00151700 -C 00151800 -C 00151900 -C 00152000 - READ 5500,KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS,IDATC, - 1 IOPN,INTAPE,INOPNA,INOPNB,ISWTCH - 5500 FORMAT(3(A4,A1),4I5,A4,A1,I5) - PRINT 5509 - 5509 FORMAT('1BASIC JOB RUN CONTROLS (SET FOR EACH JOB)') - PRINT 5510, KRUNA,KRUNB,ITOUTA,ITOUTB,ICYCLA,ICYCLB,NMAPS - 5510 FORMAT('0OPERATIONAL RUN TYPE= ',A4,A1,' OUTPUT TAU= ',A4,A1,' - 1RUN CYCLE= ',A4,A1,' NUMBER OF MAPS= ',I5) - PRINT 5511,IDATC,IOPN,INTAPE - 5511 FORMAT('0DATE CHECK= ',I5,' OPERATIONAL FLAG= ',I5,' INPUT TAP - 1E FLAG= ',I5) - PRINT 5513,ISWTCH,INOPNA,INOPNB - 5513 FORMAT('0INPUT SCHEDULE CONTROL SWITCH= ',I5,' OPNL JOB TYPE= ' - 1,A4,A1) - DO 5550 IK=1,NKRUN - IF((KRUNA.NE.LKRUN(1,IK)).OR.(KRUNB.NE.LKRUN(2,IK))) GO TO 5550 - KRUN1=LKRUN(3,IK) - GO TO 5553 - 5550 CONTINUE - PRINT 5540 - 5540 FORMAT('0ERROR ON CONTROL INPUT CARD FOR KRUN-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 541 - 5553 CONTINUE - DO 5555 IK=1,NITOUT - IF((ITOUTA.NE.LITOUT(1,IK)).OR.(ITOUTB.NE.LITOUT(2,IK))) GO TO - 15555 - ITOUT1=LITOUT(3,IK) - GO TO 5560 - 5555 CONTINUE - PRINT 5543 - 5543 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ITOUT-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 544 - 5560 CONTINUE - DO 5565 IK=1,NICYL - IF(ICYCLA.NE.LICYL(1,IK)) GO TO 5565 - ICYC1=LICYL(2,IK) - GO TO 5570 - 5565 CONTINUE - PRINT 5545 - 5545 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ICYCLE-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 546 - 5570 CONTINUE - IF((NMAPS.LE.NMAPM).AND.(NMAPS.GT.0)) GO TO 5575 - PRINT 5547 - 5547 FORMAT('0ERROR ON CONTROL INPUT CARD FOR NMAPS-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 552 - 5575 CONTINUE - IF((IDATC.EQ.0).OR.(IDATC.EQ.1)) GO TO 5620 - PRINT 5600 - 5600 FORMAT('0ERROR ON CONTROL INPUT CARD FOR IDATC-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 601 - 5620 CONTINUE - IF((IOPN.EQ.0).OR.(IOPN.EQ.1)) GO TO 5630 - PRINT5602 - 5602 FORMAT('0ERROR ON CONTROL INPUT CARD FOR IOPN-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 603 - 5630 CONTINUE - IF((INTAPE.GT.-1).AND.(INTAPE.LE.1)) GO TO 5640 - PRINT 5604 - 5604 FORMAT('0ERROR ON CONTROL INPUT CARD FOR INTAPE-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 605 - 5640 CONTINUE - IF((ISWTCH.GT.-1).AND.(ISWTCH.LE.1)) GO TO 5650 - PRINT 5606 - 5606 FORMAT('0ERROR ON CONTROL INPUT CARD FOR ISWTCH-FIX THEN RSTART') - CALL W3TAGE('TRPSFPRV') - STOP 607 - 5650 CONTINUE - DO 5651 IK=1,NOPCDS - IF((INOPNA.NE.ICODES(1,IK)).OR.(INOPNB.NE.ICODES(2,IK))) GO TO - 15651 - INOP=ICODES(3,IK) - INOPN1=JCODES(1,INOP) - INOPN2=JCODES(2,INOP) - GO TO 5654 - 5651 CONTINUE - PRINT 5652 - 5652 FORMAT('0ERROR ON CONTROL INPUT CARD FOR INOPN-FIX THEN RESTART') - CALL W3TAGE('TRPSFPRV') - STOP 653 - 5654 CONTINUE - RETURN - END diff --git a/util/sorc/trpsfprv.fd/SLTCRD.f b/util/sorc/trpsfprv.fd/SLTCRD.f deleted file mode 100755 index 2d1e9a56f2..0000000000 --- a/util/sorc/trpsfprv.fd/SLTCRD.f +++ /dev/null @@ -1,128 +0,0 @@ - SUBROUTINE SLTCRD(ISWTCH,ISLOTA,ISLOTB,IPANA,IPANB,IRLAB,IREM3A, - 1 IREM3B,IREM3C,IREM4A,IREM4B,IAREA3,ISUB,IFLAB,INSET,IREM1A, - 1 IREM1B) -C ...THIS SUBROUTINE READS IN THE MAP SLOT CARDS AND CHECKS THEM 00255500 -C ...FOR ACCEPTABLE ENTRIES 00255600 - COMMON/WEFAX/ IAPT - DIMENSION IPANC(3,11) - DIMENSION IAREA(3,26) - DATA IAREA/4HCA14,1H ,1,4HCA13,1H ,2,4HCA13,1HI,3,4HNT11,1H ,4, - 1 4HNT11,1HA,5,4HNT11,1HB,6,4HPA13,1H ,7,4HPA14,1H ,8, - 2 4HUS10,1H ,9,4HNT18,1H ,10,4HNT18,1HI,11,4HUS12,1H ,12, - 3 4HVFUL,1HL,13,4HVPAR,1HT,14,4HPA13,1HA,15,4HPA19,1H ,16, - 4 4HAPT3,1H ,17,4HAPT4,1H ,18,4HUS10,1HA,19,4HCA19,1H ,20, - 5 4HCA19,1HI,21,4HAPT5,1H ,22,4HAPT6,1H ,23,4HAPT7,1H ,24, - 6 4HTEST,1H ,25,4HHONO,1H ,26/ - DATA IPANC/4HP1 ,1H ,1,4HP2 ,1H ,2,4HP3 ,1H ,3,4HP4 ,1H ,4, - 1 4HP1A ,1H ,5,4HP2A ,1H ,6,4HP3A ,1H ,7,4HP4A ,1H ,8,4HI1 , - 2 1H ,9,4HI2 ,1H ,10,4HB2 ,1H ,11/ - DATA NPARTS/11/ - DATA IBCHK/4H / - DATA JU/8/ - DATA NAREAS /26/ - DATA IR1/100/ - DATA IR2/5000/ - DATA IR3/80/ - DATA IR4/99/ -C 00257800 -C ...BASIC FAX/VARIAN CONTROLS (EACH MAP SUB-SECTION) 00257900 -C 00258000 -C ICARD2 (A1)= CARD2 CONTROL 00258100 -C ISLOTA,B (A4,A1)= FAX/VARIAN SLOT NO. 00258200 -C IPANA,B (A4,A1)= PANEL PART OR REAL INSET PART 00258300 -C IAREA1,2 (A4,A1)= FAX/VARIAN OUTPUT PIECE 00258400 -C ISUB (I5)= SUBSET NO. 00258500 -C IFLAB (I5)= FRONT LABEL INSET NO. 00258600 -C INSET (I5)= INSET NO. 00258700 -C IRLAB (I5)= REAR LABEL INSET NO. 00258800 -C IREM1A,B,C (A4,A4,A2)= PANEL 2 OR PANEL4 TITLE 00258900 -C IREM3A,B,C (A4,A4,A2)= PANEL 1 OR PANEL3 OR SUBSET TITLE 00259000 -C 00259100 - IAPT = 0 - IF(ISWTCH.EQ.1) GO TO 8002 - READ 8200, ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 8200 FORMAT(A1,3(A4,A1),4I5,2A4,A2,4A4,A2,4A4) - GO TO 8003 - 8002 READ (JU,8200) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB - 1 ,IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 8003 CONTINUE - PRINT 8202, ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB,IFLAB, - 1 INSET - 8202 FORMAT('0SLOT NO.= ',A4,A1,' PANEL/INSET= ',A4,A1, - 2 'AREA= ',A4,A1,' SUBSET NO.=',I5,' FRONT LABEL INSET NO.=', - 2 I5,' INSET NO.=',I5) -C 00260800 -C ...CHECK FOR REASONABLE PANEL PARTS/INSET PARTS 00260900 -C 00261000 - DO 8215 IK=1,NPARTS - IF((IPANA.EQ.IBCHK).AND.(IPANB.EQ.IBCHK)) GO TO 8220 - IF((IPANA.NE.IPANC(1,IK)).OR.(IPANB.NE.IPANC(2,IK))) GO TO 8215 - IPAN1=IPANC(3,IK) - GO TO 8220 - 8215 CONTINUE - PRINT 8216 - 8216 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IPAN-FIX THEN - 1RETRY') - CALL W3TAGE('GRAPH_TRPSFPRV') - STOP 216 - 8220 CONTINUE -C 00262400 -C ...CHECK FOR REASONABLE AREA REQUESTS 00262500 -C 00262600 - DO 8235 IK=1,NAREAS - IF((IAREA1.EQ.IBCHK).AND.(IAREA2.EQ.IBCHK)) GO TO 8225 - IF((IAREA1.NE.IAREA(1,IK)).OR.(IAREA2.NE.IAREA(2,IK))) GO TO 8235 - IAREA3=IAREA(3,IK) - IF(IAREA3.EQ.17.OR.IAREA3.EQ.18.OR.(IAREA3.GE.22.AND.IAREA3.LE. - & 24)) IAPT = 1 - GO TO 8240 - 8225 PRINT 8226 - 8226 FORMAT('0IAREA1,2 WAS BLANK-WILL CONTINUE') - GO TO 8240 - 8235 CONTINUE - PRINT 8236 - 8236 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IAREA1,2-FIX - 1THEN RETRY') - CALL W3TAGE('GRAPH_TRPSFPRV') - STOP 236 - 8240 CONTINUE -C 00264600 -C ...CHECK FOR REASONABLE SUBSET/INSET NUMBERS 00264700 -C 00264800 - IF(ISUB.LT.0) GO TO 8243 - IF(((ISUB.GE.IR1).AND.(ISUB.LE.IR2)).OR.((ISUB.GE.IR3).AND.(ISUB.L - 1E.IR4))) GO TO 8301 - PRINT 8241, ISUB - 8241 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR ISUB-FIX THEN - 1RETRY ',I4) - CALL W3TAGE('GRAPH_TRPSFPRV') - STOP 241 - 8243 CONTINUE - PRINT 8244 - 8244 FORMAT('0SUBSET NUMBER IS BLANK-WILL CONTINUE') - 8301 CONTINUE - IF(IFLAB.LE.0) GO TO 8253 - IF(((IFLAB.GE.IR1).AND.(IFLAB.LE.IR2)).OR.((IFLAB.GE.IR3).AND.(IFL - 1AB.LE.IR4))) GO TO 8302 - PRINT 8251 - 8251 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR IFLAB-FIX THEN - 1 RETRY') - CALL W3TAGE('GRAPH_TRPSFPRV') - STOP 251 - 8253 CONTINUE - 8302 CONTINUE - IF(INSET.LE.0) GO TO 8263 - IF(((INSET.GE.IR1).AND.(INSET.LE.IR2)).OR.((INSET.GE.IR3).AND.(INS - 1ET.LE.IR4))) GO TO 8303 - PRINT 8261 - 8261 FORMAT('0ERROR ON FAX/VARIAN CONTROL INPUT CARD FOR INSET-FIX THEN - 1 RETRY') - CALL W3TAGE('GRAPH_TRPSFPRV') - STOP 261 - 8263 CONTINUE - 8303 CONTINUE - RETURN - END diff --git a/util/sorc/trpsfprv.fd/SPCHK.f b/util/sorc/trpsfprv.fd/SPCHK.f deleted file mode 100755 index a5d1b75284..0000000000 --- a/util/sorc/trpsfprv.fd/SPCHK.f +++ /dev/null @@ -1,108 +0,0 @@ - SUBROUTINE SPCHK(IXL,JXL,IAPT,IPANA,IPANY,IVARY) -C ROUTINE TO CHECK FOR 2 OR MORE CONSECUTIVE SPACES IN A TITLE STRING 00301500 -C ON A VARIAN/FAX PEPFAX CHART. IF CONSECUTIVE SPACES ARE FOUND, THE 00301600 -C REMAINDER OF THE TITLE IS MOVED TO THE LEFT. THE HOPE IS TO HAVE 00301700 -C ENOUGH SPACE TO FIT THE NOAA TEXT ID IN THE TITLE OF THE CHART 00301800 -C (RIGHT-JUSTIFIED) 7/25/85 DAVE HORN. 00301900 -C MODIFIED 7/26/85 SO DUCKLING IS PUT ON PANEL CHARTS APPROPRIATELY 00302000 -C MODIFIED 7/30/85 TO USE KEVIN'S DUCK24 ROUTINE TO FIT 24-DOT 00302100 -C DUCKLING IN TITLES ON ONE PANEL CHARTS AND IN 2 & 4 PANEL CHARTS 00302200 -C MODIFIED 7/31/85 TO JUST PUT ON 24-DOT DUCKLING ON WEFAX CHARTS 00302300 -C MODIFIED 8/07/85 TO INCLUDE TESTS FOR TITLE BEING TOO LONG TO FIT ON 00302400 -C 24-DOT DUCKLING BUT SHORT ENOUGH TO PUT ON TEXT ID. 00302500 -C AT THE REQUEST OF MR. HOWCROFT, MODIFIED MULTIPLE PANEL CHARTS ON 00302600 -C 8/23/85 TO CENTER NOAA TEXT ID ON THESE CHARTS--NO 24-DOT DUCKLING. 00302700 -C ********************************************************************* 00302800 -C THIS SUBROUTINE MODIFIED ON 10/16/85 TO WORK FOR MERCFAX 00302900 -C ********************************************************************* 00303000 - COMMON/CRUNCH/IBCD2(40) - CHARACTER*1 LBCD(200),LBLNK,LDL -c LOGICAL LBCD(200),LBLNK/' '/,LDL/'$'/ 00303200 - data lblnk,ldl/' ','$'/ - EQUIVALENCE (IBCD2(1),LBCD(1)) - DATA IPANC/'P1 '/,IPANB/'P3 '/ -C CHECK TO SEE IF WE HAVE A PANEL CHART TO DEAL WITH 00303500 - IF(IPANA.EQ.IPANC.OR.IPANA.EQ.IPANB) GO TO 30 - IF(IPANY.EQ.1) RETURN -C INITIALIZATION OF TITLE VARIABLES FOR ONE-PANEL AND WEFAX CHARTS 00303800 - MNDSTR = 140 - IF(IVARY.EQ.1) MNDSTR = 86 - IF(IAPT.EQ.1) MNDSTR = 83 - INDSTR = 130 - IF(IVARY.EQ.1) INDSTR = 80 - IF(IAPT.EQ.1) INDSTR = 77 - ITITLL = 1260 - IF(IVARY.NE.1) ITITLL = 1475 - ISTRL1 = 98 - IF(IVARY.EQ.1)ISTRL1 = 74 - ISTRL2 = 95 - IF(IVARY.EQ.1)ISTRL2 = 69 -C FIND THE CONSECUTIVE SPACES 00305100 - LBCD(INDSTR) = LDL - IB2 = 0 - 10 IB2 = IB2 + 1 - IF(LBCD(IB2).EQ.LDL) GO TO 20 - IF(LBCD(IB2).NE.LBLNK.OR.LBCD(IB2+1).NE.LBLNK) GO TO 10 -C MOVE TITLE OVER IF FIND 2 CONSECUTIVE BLANKS 00305700 - 13 DO 12 IB3 = IB2,MNDSTR - LBCD(IB3) = LBCD(IB3+1) - 12 CONTINUE -C WE MAY HAVE MORE CONSECUTIVE BLANKS LET'S GO BACK AND CHECK 00306100 - IF(LBCD(IB2).EQ.LBLNK.AND.LBCD(IB2+1).EQ.LBLNK) GO TO 13 - GO TO 10 -C 1200 IS LENGTH IN DOTS OF TITLE WITH 84 CHARACTERS (CHARACTER SET 11) 00306400 -C TO RIGHT JUSTIFY THE NOAA TEXT ID AND 24-DOT DUCKLING IN THE TITLE, 00306500 -C SUBTRACT 197 DOTS (WHICH IS THE LENGTH OF THE DUCKLING AND TEXT 00306600 -C TOGETHER), THEN ADD THE "I" PORTION OF THE ORIGIN OF THE TITLE SO 00306700 -C THE 24-DOT DUCKLING STARTS IN THE RIGHT PLACE. ONLY PUT 24-DOT 00306800 -C DUCKLING ON WEFAX CHARTS. 00306900 - 20 IF(IAPT .NE. 1) GO TO 25 -C ID ASSOCIATED WITH WEFAX TITLES 00307100 - WRITE(6,100)(LBCD(I),I=1,84) - IF(IB2 .LT. 70) GO TO 21 - WRITE(6,120) IB2 - 120 FORMAT(1X,'THE NUMBER OF CHARACTERS IN THE WEFAX TITLE IS',I3, - &' AND THAT"S TOO LONG TO FIT IN THE 30-DOT DUCKLING') - RETURN - 21 CALL DUCK(720,JXL,0,9) - WRITE(6,121) JXL - 121 FORMAT(1X,'30-DOT EMBLEM PUT ON WEFAX CHART AT I,J= 720',',',I4) - RETURN -C ID ASSOCIATED WITH ANY ONE-PANEL CHARTS 00308200 - 25 IF(IB2.LT.ISTRL1) GO TO 26 - WRITE(6,110) IB2 - 110 FORMAT(1X,'THE NUMBER OF CHARACTERS IN THE TITLE IS',I3,' AND - &THAT"S TOO LONG TO FIT IN THE DUCKLING AND/OR NOAA TEXT ID') - RETURN - 26 WRITE(6,100)(LBCD(I),I=1,84) - 100 FORMAT(1X,'TITLE WITHOUT EXCESS BLANKS: ',84A1) - IXT = ITITLL - 197 + IXL - IF(IB2.GT.ISTRL2) GO TO 27 - WRITE(6,101) IXT,JXL - 101 FORMAT(1X,'30-DOT DUCKLING AND NOAA TEXT ID PUT ON ONE-PANEL CHART - & AT I,J= ',I4,',',I4) -C PUT ON THE 24-DOT DUCKLING AND TEXT ID 00309500 - CALL DUCK(IXT,JXL,0,7) - RETURN -C THERE IS ONLY ROOM TO PUT ON NOAA TEXT ID ON ONE-PANEL CHART 00309800 - 27 IXT = IXT + 35 - WRITE(6,102) IXT,JXL - 102 FORMAT(1X,'TEXT ID PUT ON ONE-PANEL CHART AT I,J= ',I4,',',I4) - CALL DUCK(IXT,JXL,0,8) - RETURN -C TO GET THE 'I' LOCATION OF THE DUCKLING FOR PANEL CHARTS: 895 DOTS 00310400 -C WOULD BE A POSITION IN THE CENTER OF THE TWO PANELS, SUBTRACT 15 DOTS 00310500 -C TO OBTAIN THE 'I' ORIGIN OF THE DUCKLING. SUBTRACT 3 DOTS FROM JXL TO 00310600 -C VERTICALLY CHOP OFF THE DUCKLING NICELY. 00310700 -C NOTE, NO NEED TO SUBTRACT 3 DOTS FROM JXL SINCE HAVE 24-DOT DUCKLING. 00310800 -C ONLY PUTTING ON THE NOAA TEXT ID CENTERED ON THE CHART--NO 24-DOT 00310900 -C DUCKLING. SUBTRACT 120 DOTS TO CENTER NOAA TEXT ID. 00311000 - 30 IXT = 900 - 120 - IF(IPANA .EQ. IPANB) IPTYPE = 4 - IF(IPANA .EQ. IPANC) IPTYPE = 2 - WRITE(6,130) IPTYPE,JXL - 130 FORMAT(1X,'NOAA TEXT ID CENTERED BETWEEN PANELS ON A',I2,' PANEL - & CHART AT I,J= 780',',',I4) - CALL DUCK(IXT,JXL,0,8) - RETURN - END diff --git a/util/sorc/trpsfprv.fd/STR.f b/util/sorc/trpsfprv.fd/STR.f deleted file mode 100755 index 0a978aff06..0000000000 --- a/util/sorc/trpsfprv.fd/STR.f +++ /dev/null @@ -1,78 +0,0 @@ - SUBROUTINE STR(ZETA,U,UC,V,VC) -C 00373800 - COMMON/FIXFLD/XM(51),F(51) - DIMENSION ZETA(118,52),U(117,51),UC(118,51),V(117,51),VC(118,51) - DATA IMAX,JMAX / 117,51 / - IMAX2 = IMAX + 1 - IMAXM1 = IMAX - 1 -C ... SPREAD THE U COMPONENT FROM 117X51 TO 118X51 GRID 00374400 -C ... USING ZETA AS SCRATCH STORAGE DURING SPREADING U & V 00374500 -C ... UNDER THE ASSUMPTION THAT U MAY BE EQUIVALENCED TO UC 00374600 -C ... AND V MAY BE EQUIVALENCED TO VC ARRAY 00374700 -C 00374800 - DO 10 JM = 1,JMAX -C 00375000 -C 00375100 - DO 20 IM = 1,IMAX -C 00375300 - ZETA(IM,JM) = U(IM,JM) - 20 CONTINUE - ZETA(IMAX2,JM) = 0.0 - 10 CONTINUE - DO 55 JM = 1,JMAX - DO 50 IM = 1,IMAX2 - UC(IM,JM) = ZETA(IM,JM) - 50 CONTINUE - 55 CONTINUE -C 00376300 -C ...NOW SPREAD THE V COMPONENTS 00376400 - DO 30 JM = 1,JMAX -C 00376600 -C 00376700 - DO 40 IM = 1,IMAX -C 00376900 - ZETA(IM,JM) = V(IM,JM) - 40 CONTINUE - ZETA(IMAX2,JM) = 0.0 - 30 CONTINUE - DO 77 JM = 1,JMAX - DO 70 IM = 1,IMAX2 - VC(IM,JM) = ZETA(IM,JM) - 70 CONTINUE - 77 CONTINUE -C ...GRID DISTANCE ALONG THE DIAGONAL AT 22.5 DEG. 00377900 - C3 = 3.1854E07 * 1.414 -C ...CONVERT TO CM. 00378100 - CC = 51.4791 / 1.414 - KM = IMAX - LM = JMAX - KM2 = KM + 1 - LM2 = LM + 1 - DO 200 J = 1,JMAX - DO 150 I = 1,IMAXM1 - UU = (UC(I,J) - VC(I,J)) * CC - VV = (UC(I,J) + VC(I,J)) * CC - UC(I,J) = UU - VC(I,J) = VV - 150 CONTINUE - UC(IMAX,J) = UC(1,J) - UC(IMAX2,J) = UC(2,J) - VC(IMAX,J) = VC(1,J) - VC(IMAX2,J) = VC(2,J) - 200 CONTINUE -C ...CALCULATE FINITE DIFFERENCE VORTICITY FIELD... 00379900 -C ...ZETA IS THE VORTICITY OF THE U/V FIELD... 00380000 - DO 350 J = 2,LM - DO 350 I = 2,KM - ZETA(I,J)= C3*((VC(I,J-1)+UC(I-1,J-1))/XM(J-1)-(VC(I-1,J)+ - 1 UC(I,J)) / XM(J)) - 350 CONTINUE - X1 = C3 / XM(1) - X2 = C3 / XM(51) - DO 360 I = 2,KM - ZETA(I,1) = -X1 * (UC(I-1,1) + VC(I-1,1)) - ZETA(I,LM2) = X2 * (UC(I-1,LM) + VC(I,LM)) - 360 CONTINUE - CALL POTEX(ZETA) - RETURN - END diff --git a/util/sorc/trpsfprv.fd/TITLES.f b/util/sorc/trpsfprv.fd/TITLES.f deleted file mode 100755 index f537278864..0000000000 --- a/util/sorc/trpsfprv.fd/TITLES.f +++ /dev/null @@ -1,470 +0,0 @@ - SUBROUTINE TITLES(ISLOTA,ISLOTB,IPANA,IOUTIN,ILVLI,IARR2,IRLAB, - 1 INCR,INCR1,MLAST,ITAUI,IVAR,JLAST,INOPN1,INOPN2,IREM3A, - 2 IREM3B,IREM1A,IREM1B, - 1 ifld1a,ifld1b) -C 00268900 -C ...THIS SUBROUTINE PREPARES VARIAN/FAX MAP TITLES 00269000 -C 00269100 - COMMON/PACKRA/IRAS(10) - common /get3com/ctitleg - character*20 cgulf(3) - Character*132 ctitleg - dimension kprior(2) - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON/CRUNCH/IBCD2(40) - character*4 cbcd2(40) - character*160 cbcd4 - equivalence (cBCD2,cbcd4) - character*8 cbcd22(25) - equivalence (cbcd22,ibcd2) - COMMON/WEFAX/ IAPT - DIMENSION IISUB(11) - DIMENSION IBCD(25),IBCD1(40) - character*8 cbcd1(40),cbcd(25) - equivalence (cbcd,ibcd),(cbcd1,ibcd1) - DIMENSION ILVL(4,9) - DIMENSION ITITLE(8,7) - character*8 CTITLE(8,7),clvl(4,9),cisub(11) - character*8 ctitl1(3),ctitl2(3),ctitl3(3),ctitl4(3), - 1 ctitl5(3),ctitl6(3),ctitl7(3) - DIMENSION IMONT(12) - DIMENSION ITITL1(3),ITITL2(3),ITITL3(3),ITITL4(3) - DIMENSION ITITL5(3),ITITL6(3),ITITL7(3) - DIMENSION IARR1(3),IARR2(3) - DIMENSION IOUTIN(2),ILVLI(3),ITAUI(3) - DIMENSION ITITSM(4) - character*8 ctitsm(4) - DIMENSION IHOUR(4) - DIMENSION ILEV(2,4) - INTEGER ISCHED(10) - character*8 cdayw -c +/4H ,4H ,4H ,4H ,4H ,4H ,4H ,4H ,3*4H ,00271100 -c data above was cut from data below. Appears to be MVS logic error - INTEGER IDESC(11,5) - character*8 cdesc(11,5) - DATA IDESC - +/4H ,4H ,4H ,4H ,4H ,4H ,4H ,4H ,3*4H , - + 4H ,4HSTRE,4HAMS ,4H/ IS,4HOTAC,4HHS /,4H TEM,4HPS ,3*4H , - + 4H ,4HSTRE,4HAMS ,4H ,4H ,4H ,4H ,4H ,3*4H , - + 4H ,4HPRES,4HSURE,4H / T,4HEMPS,4H / V,4HWS ,4H ,3*4H , - + 4H ,4HPRES,4HSURE,4H / V,4HORTI,4HCITY,4HW ,4H ,3*4H / - DATA IISUB/1H ,2HP1,2HP2,2HP3,2HP4,2HP5,2HP6,2HI1,2HI2,2HI3, - 1 2HB2/ - DATA ILVL/4H700 ,1,4H 7,4H00MB,4H500 ,2,4H 5,4H00MB, - 1 4H400 ,3,4H 4,4H00MB,4H300 ,4,4H 3,4H00MB, - 2 4H200 ,5,4H 2,4H00MB,4H250 ,6,4H 2,4H50MB, - 1 4HTROP,7,4HTROP,4H-VWS,4H1000,8,4H 10,4H00MB, - 1 4H850 ,9,4H 8,4H50MB/ -C DATA ITITLE/2*4H ,4H S,4HTREA,4HMS/I,4HSOTA,4HCHS ,4H ,00272400 -C 1 4H 200,4HMB S,4HTREA,4HMS/W,4HINDS,4H/TRO,4HP PR,4HES / 00272500 - DATA ITITLE - 1 /4H ,4H ,4H S,4HTREA,4HMS/I,4HSOTA,4HCHS ,4H , - 2 4H 200,4HMB S,4HTREA,4HMS/W,4HINDS,4H/TRO,4HP PR,4HES , - 3 4H ,4HMB S,4HTREA,4HMS/I,4HSOTA,4HCHS/,4HTEMP,4HS , - 4 4H ,4HMB S,4HTREA,4HMS ,4H ,4H ,4H ,4H , - 5 4H ,4H PRE,4HSSUR,4HE/TE,4HMPS/,4HVWS ,4H ,4H , - 6 4H ,4H ,4H ,4H ,4H ,4H ,4H ,4H , - 7 4H ,4H ,4H ,4H ,4H ,4H ,4H ,4H / - DATA IMONT/4H JAN,4H FEB,4H MAR,4H APR,4H MAY,4H JUN, - 1 4H JUL,4H AUG,4H SEP,4H OCT,4H NOV,4H DEC/ - DATA ITITL1/4H24HR,4H PRO,2HG / - DATA ITITL2/4HV.T.,4H ,2H / - DATA ITITL3/4H BA,4HSED ,2HON/ - DATA ITITL4/4HNWS-,4HNMC ,2HWA/ - DATA ITITL5/4HSHIN,4HGTON,2H. / - DATA ITITL6/4H ,4HTROP,2H. / - DATA ITITL7/4H 2,4H00MB,2H. / - DATA IGIANT/15/ - DATA IREGU/10/ - DATA IARR1/4HARRO,4HWS G,2HIV/ - DATA IARR3/4HNDS./ -c DATA ICIRC/Z'4CE05B00'/ - DATA ICIRC / 4H($ / - DATA IBOX/Z'7D4F5B00'/ - DATA IBCHK/4H / - DATA MAPT7/Z'5600000000000000'/ -c DATA MAPT7/Z'E5000000'/ - DATA MASK8/Z'FF00000000000000'/ - DATA MAPT13/Z'4000000000000000'/ - DATA ITITSM/4*8H / -c DATA ITITSM/4*4H / - DATA IHOUR/4H18HR,4H24HR,4H30HR,4H36HR/ - DATA ILEV/4H 700,4H600 ,4H 500,4H400 ,4H 300,4H250 ,4H 200, - 1 4H200 / - character*8 cblank - integer iblank - equivalence ( cblank,iblank ) - data cblank/' ' / - do 5,k=1,20 - iax=(k-1)*8+1 - 5 cbcd4(iax:iax+7)=cblank - continue - print *, ' ENTERING TITLE 9999' - print 1966,(iras(k),k=3,10) - 1966 format(4i8,' ',4i8) - do 10,k=1,25 - 10 ibcd(k)=iblank - ipany = 0 - call byteswap(ISLOTA, 8, 1) - IVAR=LAND(ISLOTA,MASK8) - print *,' 9999 TITLES ipana,ipany,ivar',ipana,ipany,ivar - print 955,'9999 spec titles ipana ipany ivar',ipana, - 1 ipany,ivar,islota,IVAR - call byteswap(ISLOTA, 8, 1) - 955 format(a50,1x,'ipana >',a12,1x,' pan >',i2, 1x,' ivar >',a9,2z20) - IF((IVAR.EQ.MAPT7).OR.(IVAR.EQ.MAPT13)) GO TO 1350 -c go to end of routine (1425) if next ifs are true - IF(IPANA.EQ.IISUB(3)) GO TO 1425 - IF(IPANA.EQ.IISUB(5)) GO TO 1425 - IF(IPANA.EQ.IISUB(7)) GO TO 1425 - IF(IPANA.EQ.IISUB(8)) GO TO 1425 - IF(IPANA.EQ.IISUB(9)) GO TO 1425 - IF(IPANA.EQ.IISUB(10)) GO TO 1425 - 1350 CONTINUE - IPANY=0 - IVARY=0 - IF((IVAR.EQ.MAPT7).OR.(IVAR.EQ.MAPT13)) IVARY=1 - IF((IVAR.EQ.MAPT7).OR.(IVAR.EQ.MAPT13)) - 1 print *,' 9999 MAPT7=IVARY' - IF(IPANA.NE.IBCHK) IPANY=1 - IUHR1=IRAS(3) - CALL W3AI15(IUHR1,IUHR1,1,2,1H-) - IDAY1=IRAS(4) - IMON=IRAS(5) - IYRR=IRAS(6) - CALL W3AI15(IDAY1,IDAY,1,2,1H-) -C -CADDED BY KUMAR BEGIN -C - IYRR = IYRR + 1900 - IF(IYRR.LT.1950) THEN - IYRR = IYRR + 100 - ENDIF -C -CADDED BY KUMAR END -C -c CALL DAYOWK(IDAY1,IMON,IYRR,IDAYB,IDAYW) - CALL DAYOWK(IDAY1,IMON,IYRR,IDAYB,cDAYW) - print *,'9999 dayowk ',iday1,imon,iyrr,idayb,cdayw - IOUT1=IOUTIN(1) - LVL11=ILVLI(1) - LVL1=ILVL(1,LVL11) - CALL ENCODE(IBCD(1),20) - WRITE(99,1405) ISLOTA,ISLOTB,IREM3A - 1405 FORMAT(1X,A4,A1,4X,A4,1X,5HFCST ) - IF(IOUT1.GE.2) GO TO 1360 - CALL ENCODE(IBCD(6),20) - WRITE(99,1400)ITITLE(1,IOUT1),LVL1,ITITLE(4,IOUT1),ITITLE(5,IOUT1) - 1400 FORMAT(2A4,4HMB S,2A4) - GO TO 1403 - 1360 CONTINUE - CALL ENCODE(IBCD(6),20) - WRITE(99,1401)LVL1,(ITITLE(I,IOUT1),I=2,5) - 1401 FORMAT( A4,4A4) - 1403 CONTINUE - CALL ENCODE(IBCD(11),48) - WRITE(99,1402)(ITITLE(I,IOUT1),I=6,8),IUHR1,IDAYW,IDAY1, - 1 IMONT(IMON),IYRR - 1402 FORMAT(3A4,5HVALID,1X,A2,2HZ ,A3,1X,I2,A4,3H ,I5,11X) - NCHAR=87 - NCHAR=67 - IF(IVARY.EQ.0) GO TO 1440 -C 00279900 -C ...PUT VARIAN MAP TITLE INTO LABEL ARRAY 00280000 -C 00280100 -C CALL ENCODE(IBCD(1),8) 00280200 -C WRITE(99,1407) INOPN1,INOPN2 00280300 -C1407 FORMAT(A4,A1,3X) 00280400 - IXL=30 - JXL=960 - HT=11.0 - print *,'before 1410 9999 print' - PRINT 1410, (IBCD(I),I=1,22) - DO 1500 IB2 = 1,25 - IBCD2(IB2) = IBCD(IB2) - write(cbcd2(ib2),1995)ibcd(ib2) -c cbcd22(ib2)=' ' -c cbcd22(1)='stuf' - 1995 format(a4) - 1500 CONTINUE - write(cbcd4(1:5),1901)islota,islotb - write(cbcd4(7:10),1903)iras(1),'HR' -c write (cbcd4(12:100),1711)ctitleg(11:14),ctitleg(20:21), -C 1 ctitleg(30:31),ctitleg(43:46) - write(cgulf(1),2711)iras(1),'HR',ctitleg(11:14),'MB' - write(cgulf(2),2712)iras(3),cdayw - write(cgulf(3),2713)iras(4),imont(iras(5)),iyrr,'AVN' - 2711 format(i2,a2,x,a4,a2) - 2712 format('VT ',i2.2,'Z',1x,a3) - 2713 format(i2.2,a4,' ',i5,1x,a3) - if(iout1 .ne. 4) then - write (cbcd4(12:100),1711)ctitleg(11:14), - 1 iras(3),cdayw,iras(4),IMONT(iras(5)),iyrr - else - write (cbcd4(12:100),1714)ctitleg(11:14), - 1 iras(3),cdayw,iras(4),IMONT(iras(5)),iyrr - endif -1711 format(' FCST ',a4,' STREAMS/ISOTACH ','VALID ',i2.2,'Z ', - 1 a3,1x,i2.2,' ',a4,' ',i5) -1714 format(' FCST ',a4,' STREAMS ','VALID ',i2.2,'Z ', - 1 a3,1x,i2.2,' ',a4,' ',i5) - 1903 format(i2,a2) - 1901 format(a4,a1) - CALL SPCHK(IXL,JXL,IAPT,IPANA,IPANY,IVARY) - cbcd4(87:87) = 'X' - CALL lPUTLAB(IXL,JXL,HT,cbcd4(1:nchar),0.0,NCHAR,1,0) - kprior(1)=1 - kprior(2)=1 - ht=1.0 - call putlab(600,2400,1.,cgulf(1),90.,20,kprior,0) - call putlab(620,2400,1.,cgulf(2),90.,20,kprior,0) - call putlab(640,2400,1.,cgulf(3),90.,20,kprior,0) - ht=11.0 -c CALL lPUTLAB(IXL,JXL,HT,IBCD2,0.0,NCHAR,1,0) -c CALL PUTLAB(IXL,JXL,HT,IBCD2,0.0,NCHAR,1,0) - 1410 FORMAT('0VARIAN TITLE= ',22A4) - CALL ENCODE(ITITSM(1),16) - WRITE(99,1408)IREM3A,LVL1,IUHR1,IMON,IDAY - 1408 FORMAT(A4,1H/,A3,A2,1HZ,I2,1H/,A2) - write(ctitsm(1),1956)ititsm(1),ititsm(2) - write(ctitsm(3),1956)ititsm(3),ititsm(4) - 1956 format(2a4) - print *,' 9999 ctitsm(1-4) ' ,ctitsm - CALL lPUTLAB(622,2543,3.0,ctitsm(1),90.0,8,1,0) - CALL lPUTLAB(635,2543,3.0,ctitsm(3),90.0,8,1,0) -c CALL PUTLAB(622,2543,3.0,ITITSM(1),90.0,8,1,0) -c CALL PUTLAB(635,2543,3.0,ITITSM(3),90.0,8,1,0) - GO TO 1425 -C 00282100 -C ...FAX MAP STRIP TITLES 00282200 -C 00282300 - 1440 CONTINUE -c build new (george vandenberghe) title - write(cbcd4(1:5),1901)islota,islotb - print 9988,'9999 ISLOTA AND B ',islota,islotb - 9988 format(a25,a4,a1) - write(cbcd4(7:10),1903)iras(1),'HR' -c write (cbcd4(12:100),1711)ctitleg(11:14),ctitleg(20:21), -C 1 ctitleg(30:31),ctitleg(43:46) - write (cbcd4(12:100),1711)ctitleg(11:14), - 1 iras(3),cdayw,iras(4),IMONT(iras(5)),iyrr - print *,' 9999 strip ',cbcd4(1:100) - NSTRIP=1 - IF(IRLAB.GE.1) NSTRIP=2 - DO 1449 IX=1,NSTRIP - IXL=31 - MLAST=MLAST+INCR - JXL=MLAST - HT=11.0 - IF(IPANY.EQ.1)HT=1.0 - NCHAR=6 - IBCD1(1)=IBCD(1) - IBCD1(2)=IBCD(2) - IF(IPANY.EQ.1) - 1 CALL lPUTLAB(IXL,JXL,HT,cbcd4(1:NCHAR),0.0,NCHAR,1,0) -c IF(IPANY.EQ.1)CALL lPUTLAB(IXL,JXL,HT,IBCD1(1),0.0,NCHAR,1,0) -c IF(IPANY.EQ.1)CALL PUTLAB(IXL,JXL,HT,IBCD1(1),0.0,NCHAR,1,0) - IF(IPANY.NE.1)IXL=IXL+NCHAR*IGIANT - IF(IPANY.EQ.1)IXL=IXL+NCHAR*IREGU - NCHAR=10 - IBCD1(3)=ILVL(3,LVL11) - IBCD1(4)=ILVL(4,LVL11) - IBCD1(5)=IBCHK - IF(IPANY.EQ.1) - 1 CALL lPUTLAB(IXL,JXL,HT,cbcd4(9:nchar+9-1),0.0,NCHAR,1,0) -c IF(IPANY.EQ.1)CALL PUTLAB(IXL,JXL,HT,IBCD1(3),0.0,NCHAR,1,0) - IF(IPANY.NE.1)IXL=IXL+NCHAR*IGIANT - IF(IPANY.EQ.1)IXL=IXL+NCHAR*IREGU - NCHAR=15 - IJHOUR=24 - IF(ITAUI(1).EQ.5) IJHOUR=48 - IF(ITAUI(1).EQ.3) IJHOUR=30 - IF(ITAUI(1).EQ.4) IJHOUR=36 - IF(ITAUI(1).EQ.1) IJHOUR=18 - CALL ENCODE(IBCD1(6),16) - WRITE(99,1452)IJHOUR,ITITL1(2),ITITL1(3),ITITL2(1) - 1452 FORMAT(I2,2HHR,A4,A2,A4,2X) - HT=1.0 - IF(IPANY.EQ.1) - 1 CALL lPUTLAB(IXL,JXL,HT,cbcd4(21:nchar+21-1),0.0,NCHAR,1,0) -c IF(IPANY.EQ.1)CALL PUTLAB(IXL,JXL,HT,IBCD1(6),0.0,NCHAR,1,0) - IXL=IXL+NCHAR*IREGU - NCHAR=18 - HT=11.0 - CALL ENCODE(IBCD1(10),20) - WRITE(99,1441)IUHR1,IDAYW,IDAY1,IMONT(IMON),IYRR - 1441 FORMAT(A2,2HZ ,A3,1X,I2,A4,1X,I5,3X) - IF(IPANY.EQ.1) - 1 CALL lPUTLAB(IXL,JXL,HT,cbcd4(37:nchar+37-1),0.0,NCHAR,1,0) -c IF(IPANY.EQ.1)CALL PUTLAB(IXL,JXL,HT,IBCD1(10),0.0,NCHAR,1,0) - IF(IPANY.NE.1)IXL=IXL+NCHAR*IGIANT - IF(IPANY.EQ.1)IXL=IXL+NCHAR*IREGU - IF(IPANY.EQ.1) GO TO 1445 -C 00286700 -C ...FOUND WHOLE MAP 00286800 -C 00286900 - NCHAR=40 - HT=1.0 - CALL W3AI15(IRAS(7),IUHR2,1,2,1H-) - CALL ENCODE(IBCD1(15),40) - WRITE(99,1443)ITITL3(1),ITITL3(2),IUHR2,IRAS(8),IBCHK, - 1 IBCHK,IBCHK,IBCHK - 1443 FORMAT(2A4,2HON,1X,A2,2HZ/,I2,3H. ,2A4,2H ,2A4,2H ) -C CALL PUTLAB(IXL,JXL,HT,IBCD1(57:nchar+57-1),0.0,NCHAR,1,0) 00287700 - IXL=IXL+NCHAR*IREGU - IF (IOUT1 .GT. 2) GO TO 1457 - NCHAR=24 - CALL ENCODE(IBCD1(25),24) - WRITE(99,1454)(IARR1(I),I=1,3),(IARR2(I),I=1,3),IARR3 - 1454 FORMAT(2(2A4,A2),A4) -C CALL PUTLAB(IXL,JXL,HT,IBCD1(25),0.0,NCHAR,1,0) 00288400 - DO 1456 I=31,35 - IBCD1(I)=IBCHK - 1456 CONTINUE - print *,' before IOUTIN 1424' - IF(IOUTIN(2).EQ.1) GO TO 1424 - print *,' after IOUTIN 1424' - IXL=IXL+NCHAR*IREGU - IXL1=IXL - NCHAR=20 - CALL ENCODE(IBCD1(31),20) - WRITE(99,1458)(ITITL6(I),I=1,3),(ITITL7(I),I=1,3) - 1458 FORMAT(2(2A4,A2)) -C CALL PUTLAB(IXL,JXL,HT,IBCD1(31),0.0,NCHAR,1,0) 00289500 - IXL=IXL1+IREGU - NCHAR=2 - HT=11.0 - print *,' 9999 cbox and ccir from titel ',cbox,ccirc - CALL lPUTLAB(IXL,JXL,HT,cbox,0.0,NCHAR,2,0) -c CALL PUTLAB(IXL,JXL,HT,IBOX,0.0,NCHAR,2,0) - IXL=IXL1+10*IREGU - CALL lPUTLAB(IXL,JXL,HT,ccirc,0.0,NCHAR,2,0) -c CALL PUTLAB(IXL,JXL,HT,ICIRC,0.0,NCHAR,2,0) - stop 'circle' - GO TO 1424 - 1457 CONTINUE - CALL ENCODE(IBCD1(25),44) - WRITE(99,1459) (IDESC(I,IOUT1),I=1,11) - 1459 FORMAT(11A4) -C CALL PUTLAB(IXL,JXL,HT,IBCD1(25),0.0,44,1,0) 00290700 - GO TO 1424 -C 00290900 -C ...FOUND PANEL MAP 00291000 -C ...GENERATE LEFT PANEL STRIP TITLE FOR LABEL ARRAY 00291100 -C 00291200 - 1445 CONTINUE - NCHAR=24 - HT=1.0 - CALL ENCODE(IBCD1(15),24) - WRITE(99,1454)(IARR1(I),I=1,3),(IARR2(I),I=1,3),IARR3 - print *, '9999 before 1445 putlab ' - stop 'after 1445' - CALL lPUTLAB(IXL,JXL,HT,cbcd4(57:nchar+57-1),0.0,NCHAR,1,0) -c CALL PUTLAB(IXL,JXL,HT,IBCD1(15),0.0,NCHAR,1,0) - IXL=IXL+NCHAR*IREGU -C 00292000 -C ...PRINT LEFT PANEL STRIP TITLE 00292100 -C 00292200 - PRINT 1446, (IBCD1(I),I=1,20) - 1446 FORMAT('0LEFT PANEL STRIP TITLE= ',20A4) -C 00292500 -C ...GENERATE RIGHT PANEL STRIP TITLE FOR LABEL ARRAY 00292600 -C 00292700 - NCHAR=10 - HT=11.0 - CALL ENCODE(IBCD1(21),12) - WRITE(99,1455)IREM1B - 1455 FORMAT(2X,A4,2HMB,4X) - CALL lPUTLAB(IXL,JXL,HT,cbcd4(81:nchar+81-1),0.0,NCHAR,1,0) -c CALL PUTLAB(IXL,JXL,HT,IBCD1(21),0.0,NCHAR,1,0) - IXL=IXL+NCHAR*IGIANT - NCHAR=15 - HT=1.0 - CALL ENCODE(IBCD1(24),16) - WRITE(99,1453)IREM1A,ITITL1(2),ITITL1(3),ITITL2(1) - 1453 FORMAT(2A4,A2,A4,2X) - CALL lPUTLAB(IXL,JXL,HT,cbcd4(93:nchar+93-1),0.0,NCHAR,1,0) -c CALL PUTLAB(IXL,JXL,HT,IBCD1(24),0.0,NCHAR,1,0) - IXL=IXL+NCHAR*IREGU - NCHAR=18 - HT=11.0 - IF(IX.NE.1) GO TO 472 -C ...SAVE OLD TAU 00294500 - IOLD=IRAS(1) - IRAS(1)=24 - IF(IREM1A.EQ.IHOUR(1)) IRAS(1)=18 - IF(IREM1A.EQ.IHOUR(3)) IRAS(1)=30 - IF(IREM1A.EQ.IHOUR(4)) IRAS(1)=36 - CALL UPDATR - JUHR1=IRAS(3) - CALL W3AI15(JUHR1,JUHR1,1,2,1H-) - JDAY1=IRAS(4) - JMON=IRAS(5) - JYRR=IRAS(6) - CALL W3AI15(JDAY1,JDAY,1,2,1H-) - CALL DAYOWK(JDAY1,JMON,JYRR,JDAYB,JDAYW) - print*,'9999 DAYOWK # 2 ',JDAY1,JMON,JYRR,JDAYB,JDAYW - 472 CONTINUE - CALL ENCODE(IBCD1(28),20) - WRITE(99,1441)JUHR1,JDAYW,JDAY1,IMONT(JMON),JYRR -c CALL PUTLAB(IXL,JXL,HT,IBCD1(28),0.0,NCHAR,1,0) - CALL lPUTLAB(IXL,JXL,HT,cbcd4(109:109+nchar-1 ),0.0,NCHAR,1,0) - IXL=IXL+NCHAR*IGIANT - IXL1=IXL - HT=1.0 - NCHAR=24 - CALL ENCODE(IBCD1(33),24) - JLEV=IBCHK - DO 462 JX=1,4 - IF(IREM1B.EQ.ILEV(1,JX)) JLEV=ILEV(2,JX) - 462 CONTINUE - CALL ENCODE(IBCD1(33),24) - WRITE(99,1462)(IARR1(I),I=1,3),JLEV,IARR3 - 1462 FORMAT(2A4,A2,2HE ,A3,5HMB WI,A4) -c CALL PUTLAB(IXL,JXL,HT,IBCD1(129:129+nchar-1),0.0,NCHAR,1,0) - CALL lPUTLAB(IXL,JXL,HT,cbcd4(129:129+nchar-1),0.0,NCHAR,1,0) -C ...REPLACE TAU WITH OLD VALUE 00297600 - IRAS(1)=IOLD - CALL UPDATR -C 00297900 -C ...PRINT RIGHT PANEL STRIP TITLE 00298000 -C 00298100 - PRINT 1447, (IBCD1(I),I=21,38) - 1447 FORMAT('0RIGHT PANEL STRIP TITLE= ',18A4) - GO TO 1449 -C 00298500 -C ...PRINT WHOLE MAP STRIP TITLE 00298600 -C 00298700 - 1424 CONTINUE - print *,' 9999 at 1424' - PRINT 1448,(IBCD1(I),I=1,24) - PRINT 1451,(IBCD1(I),I=25,35) - 1451 FORMAT('0WHOLE MAP STRIP TITLE CONTINUED= ',11A4) - 1448 FORMAT('0WHOLE MAP STRIP TITLE= ',24A4) - IXL = 35 - IF(IAPT .EQ. 1) IXL = 30 - HT = 11.0 - IF(IAPT .EQ. 1) HT = 1.0 - DO 1501 IB2 = 1,40 - IBCD2(IB2) = IBCD1(IB2) - 1501 CONTINUE -C -------- ONE PANEL FAX SECTION--------- 00300000 -C CRUNCH OUT SPACES IN FAX TITLES, PUT ON NOAA INFO & PRINT OUT RESULT 00300100 - CALL SPCHK(IXL,JXL,IAPT,IPANA,IPANY,IVARY) - PRINT 1510, (IBCD2(I),I=1,25) - 1510 FORMAT(1X,'IBCD2= ',25A4) -c CALL PUTLAB(IXL,JXL,HT,IBCD2(1),0.0,87,1,0) - CALL lPUTLAB(IXL,JXL,HT,cbcd4(1:87),0.0,87,1,0) -c CALL lPUTLAB(IXL,JXL,HT,cbcd4(1:47),0.0,47,1,0) -c CALL lPUTLAB(IXL,JXL,HT,cbcd4(1:47),0.0,47,0,0) -c CALL lPUTLAB(100,1000,HT,cbcd4(1:47),0.0,47,0,0) - print *,' EXITING TITLES 9999' - RETURN - 1449 CONTINUE - IXL = 40 -C PUT NOAA INFO CENTERED ON MULTIPLE PANEL CHARTS 00300900 - CALL SPCHK(IXL,JXL,IAPT,IPANA,IPANY,IVARY) - 1425 CONTINUE - print *,' EXITING TITLES 99992' - RETURN - END diff --git a/util/sorc/trpsfprv.fd/UVCLIP.f b/util/sorc/trpsfprv.fd/UVCLIP.f deleted file mode 100755 index d8ee9d4967..0000000000 --- a/util/sorc/trpsfprv.fd/UVCLIP.f +++ /dev/null @@ -1,44 +0,0 @@ - SUBROUTINE UVCLIP(U,V,A,B,IMAX,JMAX,UM,UA,JFLD) -C ...THIS SUBROUTINE WILL SCALE AND FLIP SIDEWAYS AND CLIP OFF2 FLDS00138400 - DIMENSION U(117,51),V(117,51) - DIMENSION A(IMAX,JMAX) - DIMENSION B(IMAX,JMAX) -C ...FIRST WE SCALE 00138800 - DO 195 I=1,117 - DO 195 J=1,51 - U(I,J)=U(I,J)*UM+UA - V(I,J)=V(I,J)*UM+UA - 195 CONTINUE -C ...FLIP V-FIELD SIDEWAYS AND CLIP AND MOVE INTO IMAX,JMAX ARRAY 00139400 - DO 320 I=1,117 - JNEW=I+1 - DO 310 J=1,IMAX - JR=51+1-J - A(J,JNEW)=V(I,JR) - 310 CONTINUE - 320 CONTINUE - DO 330 I=1,IMAX - A(I,1)=A(I,117) - A(I,119)=A(I,3) - 330 CONTINUE -C ...THEN OVERWRITE THE ORIGINAL V WITH FLIPPED V 00140600 - DO 350 J=1,JMAX - DO 340 I=1,IMAX - B(I,J)=A(I,J) - 340 CONTINUE - 350 CONTINUE - IF(JFLD.EQ.1) RETURN -C ...TO FLIP U FIELD SIDEWAYS AND CLIP INTO IMAX,JMAX ARRAY 00141300 - DO 370 I=1,117 - JNEW=I+1 - DO 360 J=1,IMAX - JR=51+1-J - A(J,JNEW)=U(I,JR) - 360 CONTINUE - 370 CONTINUE - DO 380 I=1,IMAX - A(I,1)=A(I,117) - A(I,119)=A(I,3) - 380 CONTINUE - RETURN - END diff --git a/util/sorc/trpsfprv.fd/WNDPLO.f b/util/sorc/trpsfprv.fd/WNDPLO.f deleted file mode 100755 index 8155a66a85..0000000000 --- a/util/sorc/trpsfprv.fd/WNDPLO.f +++ /dev/null @@ -1,68 +0,0 @@ - SUBROUTINE WNDPLO(FLDU,FLDV,IMAX,JMAX) -C 00319800 -C ...GIVEN FLDU AND FLDV WIND COMPONENTS INKNOTS 00319900 -C ...TASK...GET WIND DIRECTION AND SPEED AND ENTER INTO LABEL ARRAY 00320000 -C ...IN A FORM WHICH WILL OBTAIN WIND STAFF AND BARBS 00320100 -C ...THESE GRIDPOINTS BEING IN A DIAMOND PATTERN. 00320200 -C 00320300 - COMMON/SHTST/ISSH -C ...ISSH = 1 IF ONE WISHES TO REVERSE WIND BARBS FOR SH WINDS. 00320500 - DIMENSION FLDU(IMAX,JMAX),FLDV(IMAX,JMAX) - DATA ICORN/0/ - DATA JCORN/-30/ - DATA IT/30/ - JLOB=3 - JHIB=JMAX-2 - ILHS=3 - IRHS=IMAX-1 - ILHSB=5 - IRHSB=IMAX-3 - IDEWAY=1 -C ...WHICH SETS IT FOR SIDEWAYS ORIENTATION FOR WIND DIR 00321700 - ADD=0. - XMPY=1.0 - INDENT=1 -C ...WHERE INDENT IS ALTERNATING SWITCH FOR INDENTINGA ROW OR NOT. 00322100 -C ...WHERE INDENT IS ALTERNATING SWITCH FOR INDENTING A ROW OR NOT. 00322200 - DO 450 J=JLOB,JHIB,2 - IF(INDENT)433,434,433 - 433 CONTINUE - INDENT=0 - I=ILHS - I2=IRHS - GO TO 440 - 434 CONTINUE - INDENT=1 - I=ILHSB - I2=IRHSB - GO TO 440 -C ...PERFORM OPERATION ON WIND PT(I,J) 00323500 - 440 CONTINUE - ISTN=IT*(I-1)+ICORN - JSTN=IT*(J-1)+JCORN - U=FLDU(I,J)*XMPY+ADD - V=FLDV(I,J)*XMPY+ADD - CALL WWNDR(U,V,IDDFF,IDD,IFFF) - IF(IDEWAY.NE.1) GO TO 633 -C ...IDEWAY WAS=1, SO CONVERT IDD FROM TRUE NORTH TO GRID ORIENTED 00324300 - IDD=IDD-9 - IF(IDD.LE.0) IDD=IDD+36 - 633 CONTINUE - IOPTN=0 - IF(ISSH .NE. 1) GO TO 442 - IF(I .GT. 25) IDD = -IDD - 442 CONTINUE - CALL WNDBRK(ISTN,JSTN,IDD,IFFF,NWOK,IOPTN,iret) -c stop 'WNDBR' - IF(NWOK.GT.0) GO TO 572 - PRINT 444,I,J - 444 FORMAT('0ABNORMAL EXIT FROM WNDBRK WHERE I= ',I4,' J=',I4, - 1 'THIS WIND PLOT SKIPPED') -C ...IS THERE ENOUGH SPACE FOR ALL PIECES OF WIND VECTOR QQ 00325600 - 572 CONTINUE - I=I+4 - IF(I.LE.I2) GO TO 440 -C ...WHEN IT FALLS THRU HERE, THIS ROW IS FINISHED, GO TO NEXT J. 00326000 - 450 CONTINUE - RETURN - END diff --git a/util/sorc/trpsfprv.fd/WWNDR.f b/util/sorc/trpsfprv.fd/WWNDR.f deleted file mode 100755 index 933d291dc1..0000000000 --- a/util/sorc/trpsfprv.fd/WWNDR.f +++ /dev/null @@ -1,36 +0,0 @@ - SUBROUTINE WWNDR(U,V,IDDFF,IDD,IFFF) - IF(V)14,10,14 - 10 CONTINUE - IF(U)12,13,11 - 11 CONTINUE - ND=27 - GO TO 15 - 12 CONTINUE - ND=9 - GO TO 15 - 13 CONTINUE - IDDFF=0 - IDD=0 - IFFF=0 - RETURN - 14 CONTINUE - TAN=U/V - ANGLE=ATAN(ABS(TAN)) - ND=(3.1416+SIGN(1.5708,U)-SIGN((1.5708-ANGLE),TAN))*5.72958+.5 - IF(ND.EQ.0) ND=36 - 15 CONTINUE - NV=SQRT(U*U+V*V)+0.5 - IFFF=NV - IDD=ND - IF(NV-200)18,17,17 - 17 CONTINUE - NV=199 - 18 CONTINUE - IF(NV-100)20,19,19 - 19 CONTINUE - NV=NV-100 - ND=ND+50 - 20 CONTINUE - IDDFF=ND*100+NV - RETURN - END diff --git a/util/sorc/trpsfprv.fd/centre.f b/util/sorc/trpsfprv.fd/centre.f deleted file mode 100755 index f5a020bce3..0000000000 --- a/util/sorc/trpsfprv.fd/centre.f +++ /dev/null @@ -1,289 +0,0 @@ - SUBROUTINE CENTRE(Z,IMAX,JMAX,DOTSGI,A,B,M,ZLIM,ICEN1,LPLMI, - X IFLO,IFHI) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CENTRE DESCRIPTIVE TITLE NOT PAST COL 70 -C PRGMMR: KRISHNA KUMAR ORG: NP12 DATE: 1999-07-01 -C -C ABSTRACT: DOCUMENTATION WILL BE ADDED LATER. -C -C PROGRAM HISTORY LOG: -C ??-??-?? DICK SCHURR -C 93-04-07 LILLY CONVERT SUBROUTINE TO FORTRAN 77 -C 96-02-21 LIN CONVERT SUBROUTINE TO CFT-77 -C 96-07-22 LIN TURN OFF PRINT STATEMENT -C 1999-07-01 KRISHNA KUMAR ASSIGNED THE RIGHT VALUE FOR INDEF -C (FROM THE RANGE FUNCTION) FOR IBM -C AND CONVERTED THIS CODE FROM CRAY -C TO IBM RS/6000 -C -C USAGE: CALL CENTRE( Z, IMAX, JMAX, DOTSGI, A, B, M, ZLIM, ICEN1, -C LPLMI, IFLO, IFHI ) -C INPUT ARGUMENT LIST: -C INARG1 - GENERIC DESCRIPTION, INCLUDING CONTENT, UNITS, -C INARG2 - TYPE. EXPLAIN FUNCTION IF CONTROL VARIABLE. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C WRKARG - GENERIC DESCRIPTION, ETC., AS ABOVE. -C OUTARG1 - EXPLAIN COMPLETELY IF ERROR RETURN -C ERRFLAG - EVEN IF MANY LINES ARE NEEDED -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C DDNAME1 - GENERIC NAME & CONTENT -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C DDNAME2 - GENERIC NAME & CONTENT AS ABOVE -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C -C$$$ - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT(2),ITAPUT - COMMON/ADJ2/XIDID,YJDID -C - DIMENSION JTEXT(3) - DIMENSION Z(IMAX,JMAX) -C - CHARACTER*8 IFLO(5),IFHI(5) - CHARACTER*12 LTEXT - CHARACTER*12 MTEXT - CHARACTER*4 LPLMI - CHARACTER*4 IDECP - INTEGER M(2) - INTEGER ITYPE(2) - CHARACTER*1 CDECP -C - REAL INDEF,KDEF1,KDEF2 -C -C/// DATA IDECP/4H. / - DATA IDECP/'. '/ - DATA CDECP/'.'/ -C/// DATA ITEXT/3*0/ - DATA XIRRS/870./ - DATA ITYPE/0,0/ -C/// DATA IMSK1/Z'FF000000'/ -C/// DATA IMSK2/Z'FFFF0000'/ -C/// DATA INDEF/Z'7FFFFFFF'/ - DATA IMSK1/Z'FFFFFFFFFF000000'/ - DATA IMSK2/Z'FFFFFFFFFFFF0000'/ - DATA INDEF /1.0E307 / -C -C/// EQUIVALENCE(LTEXT,ITEXT(1)) -C/// EQUIVALENCE(MTEXT,JTEXT(1)) -C -C (1),(2),(3)...Z(IMAX,JMAX) IS GIVEN GRIDPOINT SCALED DATA FIELD -C (4) ..... DOTSGI IS DOTS PER GRID INTERVAL -C WHERE EACH DOT IS 1/100TH INCH ON VARIAN -C NEGATIVE DOTSGI SIGNALS MERC SRN HEMI OPTION -C (5),(6) ...TRUE Z VALUE = (Z + A) * B -C WHERE A IS ADDITIVE AND B IS MULTIPLICATIVE CONST -C (7) ..... M = NO. OF CHARACTERS DESIRED WHEN TRUE Z VALUE IS -C CONVERTED TO EBCDIC FOR CENTRAL VALUE -C (8) ..... ZLIM = LOWER LIMIT TO TRUE Z VALUE -C LESS THAN WHICH WE WILL IGNORE CENTERS. -C (9) ..... ICEN1 IS OPTION SWITCH -C =1 NORMAL CENTER FORMATTED LABELS -C =2 BIG H AND L USING SUBROUTINE HILO -C =3 SAME AS =1 EXCEPT I IS DISPLACED TO RHS 2-PANEL -C =4 SAME AS =2 EXCEPT I IS DISPLACED TO RHS 2-PANEL -C (10)..... LPLMI IS FORMAT SELECTOR FOR SUBROUTINE BIN2EB -C FOR CONVERTING TRUE Z VALUE TO EBCDIC E.G., 'A99' -C (11)..... IFLO IS 5-WORD FORMAT STATEMENT FOR ENCODE OF LOW CENTR -C (12)..... IFHI IS 5-WORD FORMAT STATEMENT FOR ENCODE OF HI CENTER -C -C INITIALIZE FOR CENTER SEARCH -C - IMIN=1 - JMIN=1 - IISFC=0 - IF(M(2).EQ.9) IISFC=1 - IF(M(2).EQ.9) M(2)=3 - N=8 - ICOR = 0 - JCOR = 0 - IF(ICEN1 .LE. 0) GO TO 900 - IF(ICEN1 .GT. 4) GO TO 900 - GO TO(6,9,7,8),ICEN1 - 6 ICOR = SIGN((ABS(XIDID) + 0.5),XIDID) - JCOR = SIGN((ABS(YJDID) + 0.5),YJDID) - GO TO 9 - 7 ICOR = XIDID + XIRRS + 0.5 - JCOR = SIGN((ABS(YJDID) + 0.5),YJDID) - GO TO 9 - 8 ICOR = XIRRS + 0.5 - 9 CONTINUE - IRESET = 0 - SCALE = DOTSGI - IF(SCALE.LT.0) IRESET=1 - IF(SCALE.LT.0) SCALE=-SCALE - 10 ILOW=0 - IHIGH=0 - DO 100 J=JMIN,JMAX - DO 100 I=IMIN,IMAX -C -C TEST FOR BORDER VALUES. -C - IF(I.LE.IMIN+1.OR.I.GE.IMAX-1) GO TO 100 - IF(J.LE.JMIN+1.OR.J.GE.JMAX-1) GO TO 100 -C TEST FOR UNDEFINED VALUES. -C - IF(Z(I,J).EQ.INDEF) GO TO 100 - KDEF1=Z(I-1,J) - KDEF2=Z(I+1,J) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I-1,J-1) - KDEF2=Z(I-1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I+1,J-1) - KDEF2=Z(I+1,J+1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 - KDEF1=Z(I,J+1) - KDEF2=Z(I,J-1) - IF((KDEF1.EQ.INDEF).OR.(KDEF2.EQ.INDEF)) GO TO 100 -C -C TEST FOR LOW CENTER -C - IF(Z(I,J).GE.Z(I+1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J)) GO TO 30 - IF(Z(I,J).GE.Z(I-1,J+1)) GO TO 30 - IF(Z(I,J).GE.Z(I+1,J+1)) GO TO 30 - IF(Z(I,J).GT.Z(I-1,J-1)) GO TO 30 - IF(Z(I,J).GT.Z(I+1,J-1)) GO TO 30 -C -C FOUND LOW CENTER -C - ITYPE(2)=1 - ILOW=ILOW+1 - GO TO 50 -C -C TEST FOR HIGH CENTER -C - 30 IF(Z(I,J).LE.Z(I+1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J)) GO TO 100 - IF(Z(I,J).LE.Z(I-1,J+1)) GO TO 100 - IF(Z(I,J).LE.Z(I+1,J+1)) GO TO 100 - IF(Z(I,J).LT.Z(I-1,J-1)) GO TO 100 - IF(Z(I,J).LT.Z(I+1,J-1)) GO TO 100 -C -C FOUND HIGH CENTER -C - ITYPE(2)=2 - IHIGH=IHIGH+1 -C -C CALCULATE MAX/MIN POSITION USING STIRLING METHOD(9 POINTS) -C - 50 ANUMI=(Z(I+1,J)-Z(I-1,J)) - ADENMI=2.0*(Z(I+1,J)-2.0*Z(I,J)+Z(I-1,J)) - IF(ABS(ANUMI).GT.0.5*(ABS(ADENMI))) GO TO 115 - DELI=-ANUMI/ADENMI - XPOS=SCALE*((FLOAT(I)-1.0)+DELI) - ANUMJ=(Z(I,J+1)-Z(I,J-1)) - ADENMJ=2.0*(Z(I,J+1)-2.0*Z(I,J)+Z(I,J-1)) - IF(ABS(ANUMJ).GT.0.5*(ABS(ADENMJ))) GO TO 115 - DELJ=-ANUMJ/ADENMJ - YPOS=SCALE*((FLOAT(J)-1.0)+DELJ) -C -C ADJUST MAX/MIN DATA VALUE USING STIRLING INTERPOLATION -C - ZDELI=Z(I,J)+0.5*DELI*(Z(I+1,J)-Z(I-1,J))+0.5*DELI*DELI*(Z(I+1,J) - X-2.0*(Z(I,J))+Z(I-1,J)) - ZDELIU=Z(I,J+1)+0.5*DELI*(Z(I+1,J+1)-Z(I-1,J+1))+0.5*DELI*DELI* - X(Z(I+1,J+1)-2.0*Z(I,J+1)+Z(I-1,J+1)) - ZDELIL=Z(I,J-1)+0.5*DELI*(Z(I+1,J-1)-Z(I-1,J-1))+0.5*DELI*DELI* - X(Z(I+1,J-1)-2.0*Z(I,J-1)+Z(I-1,J-1)) - ZDELJ=ZDELI+0.5*DELJ*(ZDELIU-ZDELIL)+0.5*DELJ*DELJ*(ZDELIU-2.0* - XZDELI+ZDELIL) - GO TO 60 - 115 XPOS = SCALE * (FLOAT(I) - 1.0) - YPOS = SCALE * (FLOAT(J) - 1.0) - ZDELJ = Z(I,J) - GO TO 60 - 60 CONTINUE - JCAL = YPOS + 0.5 - ICAL = XPOS + 0.5 - JCAL = JCAL + JCOR - ICAL = ICAL + ICOR - TRUVAL = (ZDELJ + A ) * B - INTG = SIGN((ABS(TRUVAL) + 0.5),TRUVAL) - IF(FLOAT(INTG) .LT. ZLIM) GO TO 100 - IF(IISFC.EQ.1) GO TO 95 - NCHAR = M(2) - IF(ITYPE(2) .EQ. 2) GO TO 90 - IF(IRESET .EQ. 1 .AND. I .GE. 26) GO TO 91 -C -C ...FORMAT LOW CENTER... -C - 81 CONTINUE -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - print *, INTG,MTEXT,NCHAR,LPLMI - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) - PRINT *, ' CENTRE:INTG=',INTG,' NCH=',NCHAR,' MTEXT=',MTEXT -C/// -C/// CALL GBYTES(MTEXT,JTEXT,0,32,0,4) - N = 12 - WRITE(LTEXT,FMT=IFLO)MTEXT - print *, LTEXT - print *, IFLO -C -C/// LTEXT(1:NCHAR) = MTEXT(1:NCHAR) -C/// LTEXT(NCHAR+1:NCHAR+1)= CHAR(0) - GO TO 96 - 90 CONTINUE - IF(IRESET .EQ. 1 .AND. I .GE. 26) GO TO 81 -C -C ...FORMAT HIGH CENTER... -C - 91 CONTINUE -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) -C/// -C/// CALL GBYTES(MTEXT,JTEXT,0,32,0,4) - N = 12 - WRITE(LTEXT,FMT=IFHI)MTEXT -C/// LTEXT(1:NCHAR) = MTEXT(1:NCHAR) -C/// LTEXT(NCHAR+1:NCHAR+1)= CHAR(0) -C PRINT *, ' IN CENTRE, IFHI=',IFHI -C PRINT *, ' LTEXT=', LTEXT,' MTEXT=', MTEXT - GO TO 96 -C -C ... FORMAT PRECIP CENTER-SPECIAL CASE -C - 95 CONTINUE - NCHAR=3 -C* CALL BIN2EB(INTG,JTEXT,NCHAR,LPLMI) - CALL BIN2EB(INTG,MTEXT,NCHAR,LPLMI) -C/// - CALL GBYTES(MTEXT,JTEXT,0,32,0,4) -C* IPUU=LAND(JTEXT(1),IMSK1) -C?? IPUU=IAND(JTEXT(1),IMSK1) -C* IPTH=LAND(SHFTL(JTEXT(1),8),IMSK2) -C??? IPTH=IAND(ISHFT(JTEXT(1),8),IMSK2) -C?? WRITE(LTEXT(1:4),FMT='(A1,A1,A2)')IPUU,IDECP,IPTH - LTEXT(1:1) = CDECP - LTEXT(2:4) = MTEXT(1:3) - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,4,IPRPUT,ITAPUT) - GO TO 100 - 96 CONTINUE - GO TO (97,99,97,99),ICEN1 - 97 CONTINUE - CALL PUTLAB(ICAL,JCAL,PUTHGT,LTEXT,PUTANG,N,IPRPUT,ITAPUT) - GO TO 100 - 99 CONTINUE - CALL HILO(ICAL,JCAL,ITYPE,LTEXT) - GO TO 100 - 100 CONTINUE - RETURN - 900 CONTINUE - PRINT 911, ICEN1 - 911 FORMAT(1H , 'ERROR RETURN FROM CENTRE. GIVEN ARGUMENT OUT-OF-RANGE - X. ICEN1 =HEX', Z8) - RETURN - END diff --git a/util/sorc/trpsfprv.fd/compile_trpsfprv_wcoss.sh b/util/sorc/trpsfprv.fd/compile_trpsfprv_wcoss.sh deleted file mode 100755 index c09de7ca10..0000000000 --- a/util/sorc/trpsfprv.fd/compile_trpsfprv_wcoss.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec -make -f makefile.$target -make -f makefile.$target clean -mv trpsfprv ../../exec diff --git a/util/sorc/trpsfprv.fd/encode.f b/util/sorc/trpsfprv.fd/encode.f deleted file mode 100755 index 030fae1547..0000000000 --- a/util/sorc/trpsfprv.fd/encode.f +++ /dev/null @@ -1,18 +0,0 @@ - subroutine encode(icv,iv) -c packs 1-4 byte integer into first four bytes of -c an integer variable AS ASCII!!. Replaces -c HDS encode function -c for this purpose -c WARNING. WHAT THIS CODE IS DOING IS NOT -c A GOOD IDEA, CALLER LOGIC SHOULD BE CHANGED. -c OR CALLER LOADED WITH SUCH LOGIC SHOULD BE -c REPLACED - character*8 cv - integer kv - equivalence (kv,cv) - write(cv(1:4),9) iv - 9 format(i4) - icv=kv - return - end - diff --git a/util/sorc/trpsfprv.fd/errmsg.f b/util/sorc/trpsfprv.fd/errmsg.f deleted file mode 100755 index eb4ce35826..0000000000 --- a/util/sorc/trpsfprv.fd/errmsg.f +++ /dev/null @@ -1,5 +0,0 @@ - subroutine errmsg(iv) - print 101,iv - 101 format(' ERRMSG CALLED WITH VALUE ',i9) - return - end diff --git a/util/sorc/trpsfprv.fd/get3.f b/util/sorc/trpsfprv.fd/get3.f deleted file mode 100755 index e63de9696f..0000000000 --- a/util/sorc/trpsfprv.fd/get3.f +++ /dev/null @@ -1,71 +0,0 @@ - subroutine get3(lun,luni,jpds,array,c132) - common/grbpds/kpds - COMMON/PACKRA/IRAS(10) -c array is an NMC GRIB TYPE 3 field on output -c jpds is set in the CALLER!! except for fields 1-3 - dimension array(360,181) - dimension jpds(25),jgds(25) - dimension grib(360,181) - dimension kpds(25),kgds(25) - character*132 c132 - logical lb(360,181) -ckumar - character*11 envvar ! for ibm_sp_6000 - character*80 fileg,filegi ! for ibm_sp_6000 - character*2 clugrb,clugrbix -ckumar - jf=360*181 - jflag=-1 - kf=jf - jpds(2)=96 - jpds(1)=7 - jpds(3)=3 - print 101,lun,luni - print 109,(jpds(ll),ll=1,25) - 109 format(5z17) -c -c*** kumar opening grib & index files here -c - write(clugrb,fmt='(i2)')lun - write(clugrbix,fmt='(i2)')luni - print*,'grib & index files unit #s ',clugrb,clugrbix -c - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') lun - call getenv(envvar,fileg) - call baopen(lun,fileg,iret) -c - envvar='FORT ' - write(envvar(5:6),fmt='(I2)') luni - call getenv(envvar,filegi) - call baopen(luni,filegi,iret) -c -c****** -c - call getgb1(lun,luni,jf,jflag,jpds,jgds, - 1 grib,kf,k,kpds,kgds,lb,array,ier) -c if ( ier .ne. 0) stop 99 - call w3fp11(grib,grib(2,1),c132,ierr) - print 106,k,c132 - 106 format(i6, 'LAB ',a132) - print 101,ier,k,kf - if(ier .ne.0 ) stop 9999 - print 102,(array(90,k),k=1,181) - 102 format(10f8.2) - 101 format(i9) -cj do 45,k=1,181 -c do 45,j=1,360 -c 45 if(j .gt. 70 .or. k .gt. 70) array(j,k)=array(70,70) -c SET IRAS VARIABLES - iras(1)=kpds(14) - iras(7)=kpds(11) - iras(8)=kpds(10) - iras(9)=kpds(9) - iras(10)=kpds(8) - call updatr -c iras(3)=iras(7) -c iras(4)=iras(8) -c iras(5)=iras(9) -c iras(6)=iras(10) - return - end diff --git a/util/sorc/trpsfprv.fd/getgb1.f b/util/sorc/trpsfprv.fd/getgb1.f deleted file mode 100755 index da5e9018c4..0000000000 --- a/util/sorc/trpsfprv.fd/getgb1.f +++ /dev/null @@ -1,214 +0,0 @@ - SUBROUTINE GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS, - & GRIB,KF,K,KPDS,KGDS,LB,F,IRET) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: GETGB1 FINDS AND UNPACKS A GRIB MESSAGE -C PRGMMR: IREDELL ORG: W/NMC23 DATE: 94-04-01 -C -C ABSTRACT: FIND AND UNPACK A GRIB MESSAGE. -C READ AN ASSOCIATED GRIB INDEX FILE (UNLESS IT ALREADY WAS READ). -C FIND IN THE INDEX FILE A REFERENCE TO THE GRIB MESSAGE REQUESTED. -C THE GRIB MESSAGE REQUEST SPECIFIES THE NUMBER OF MESSAGES TO SKIP -C AND THE UNPACKED PDS AND GDS PARAMETERS. (A REQUESTED PARAMETER -C OF -1 MEANS TO ALLOW ANY VALUE OF THIS PARAMETER TO BE FOUND.) -C IF THE REQUESTED GRIB MESSAGE IS FOUND, THEN IT IS READ FROM THE -C GRIB FILE AND UNPACKED. ITS MESSAGE NUMBER IS RETURNED ALONG WITH -C THE UNPACKED PDS AND GDS PARAMETERS, THE UNPACKED BITMAP (IF ANY), -C AND THE UNPACKED DATA. IF THE GRIB MESSAGE IS NOT FOUND, THEN THE -C RETURN CODE WILL BE NONZERO. -C -C PROGRAM HISTORY LOG: -C 94-04-01 IREDELL -C 95-05-10 R.E.JONES ADD ONE MORE PARAMETER TO GETGB AND -C CHANGE NAME TO GETGB1 -C -C USAGE: CALL GETGB1(LUGB,LUGI,JF,J,JPDS,JGDS, -C & GRIB,KF,K,KPDS,KGDS,LB,F,IRET) -C INPUT ARGUMENTS: -C LUGB LOGICAL UNIT OF THE UNBLOCKED GRIB DATA FILE -C LUGI LOGICAL UNIT OF THE UNBLOCKED GRIB INDEX FILE -C JF INTEGER MAXIMUM NUMBER OF DATA POINTS TO UNPACK -C J INTEGER NUMBER OF MESSAGES TO SKIP -C (=0 TO SEARCH FROM BEGINNING) -C (<0 TO REOPEN INDEX FILE AND SEARCH FROM BEGINNING) -C JPDS INTEGER (25) PDS PARAMETERS FOR WHICH TO SEARCH -C (=-1 FOR WILDCARD) -C LOOK IN DOC BLOCK OF W3FI63 FOR ARRAY KPDS -C FOR LIST OF ORDER OF UNPACKED PDS VALUES. IN -C MOST CASES YOU ONLY NEED TO SET 4 OR 5 VALUES -C TO PICK UP RECORD. -C JGDS INTEGER (22) GDS PARAMETERS FOR WHICH TO SEARCH -C (ONLY SEARCHED IF JPDS(3)=255) -C (=-1 FOR WILDCARD) -C OUTPUT ARGUMENTS: -C GRIB GRIB DATA ARRAY BEFORE IT IS UNPACKED -C KF INTEGER NUMBER OF DATA POINTS UNPACKED -C K INTEGER MESSAGE NUMBER UNPACKED -C (CAN BE SAME AS J IN CALLING PROGRAM -C IN ORDER TO FACILITATE MULTIPLE SEARCHES) -C KPDS INTEGER (25) UNPACKED PDS PARAMETERS -C KGDS INTEGER (22) UNPACKED GDS PARAMETERS -C LB LOGICAL (KF) UNPACKED BITMAP IF PRESENT -C F REAL (KF) UNPACKED DATA -C IRET INTEGER RETURN CODE -C 0 ALL OK -C 96 ERROR READING INDEX FILE -C 97 ERROR READING GRIB FILE -C 98 NUMBER OF DATA POINTS GREATER THAN JF -C 99 REQUEST NOT FOUND -C OTHER W3FI63 GRIB UNPACKER RETURN CODE -C -C SUBPROGRAMS CALLED: -C BAREAD BYTE-ADDRESSABLE READ -C GBYTE UNPACK BYTES -C FI632 UNPACK PDS -C FI633 UNPACK GDS -C W3FI63 UNPACK GRIB -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY C916/256, J916/2048 -C -C$$$ -C - PARAMETER (MBUF=8192*128) - PARAMETER (LPDS=23,LGDS=22) -C - INTEGER JPDS(25),JGDS(*),KPDS(25),KGDS(*) - INTEGER IPDSP(LPDS),JPDSP(LPDS),IGDSP(LGDS) - INTEGER JGDSP(LGDS) - INTEGER KPTR(20) -C - LOGICAL LB(*) -C - REAL F(*) -C - CHARACTER CBUF(MBUF) - CHARACTER*81 CHEAD(2) - CHARACTER*1 CPDS(28) - CHARACTER*1 CGDS(42) - CHARACTER*1 GRIB(*) - INTEGER IBUF(60) - EQUIVALENCE (IBUF(1), CBUF(1)) -C -C SAVE LUX,NSKP,NLEN,NNUM,CBUF - SAVE -C - DATA LUX/0/ - print *, LUGB,LUGI,JF,J,JPDS, - & KF,K,KPDS,IRET -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C READ INDEX FILE - IF(J.LT.0.OR.LUGI.NE.LUX) THEN -C REWIND LUGI -C READ(LUGI,fmt='(2A81)',IOSTAT=IOS) CHEAD - CALL BAREAD(LUGI,0,162,ios,chead) - IF(IOS.EQ.162.AND.CHEAD(1)(42:47).EQ.'GB1IX1') THEN - LUX=0 - READ(CHEAD(2),'(8X,3I10,2X,A40)',IOSTAT=IOS) NSKP,NLEN,NNUM - IF(IOS.EQ.0) THEN - NBUF=NNUM*NLEN - IF(NBUF.GT.MBUF) THEN - PRINT *,'GETGB1: INCREASE BUFFER FROM ',MBUF,' TO ',NBUF - NNUM=MBUF/NLEN - NBUF=NNUM*NLEN - ENDIF - CALL BAREAD(LUGI,NSKP,NBUF,LBUF,CBUF) -C call byteswap(CBUF, 8, LBUF/8) - IF(LBUF.EQ.NBUF) THEN - LUX=LUGI - J=MAX(J,0) - ENDIF - ENDIF - ENDIF - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C SEARCH FOR REQUEST - LGRIB=0 - KJ=J - K=J - KF=0 - IF(J.GE.0.AND.LUGI.EQ.LUX) THEN - LPDSP=0 - DO I=1,LPDS - IF(JPDS(I).NE.-1) THEN - LPDSP=LPDSP+1 - IPDSP(LPDSP)=I - JPDSP(LPDSP)=JPDS(I) - ENDIF - ENDDO - LGDSP=0 - IF(JPDS(3).EQ.255) THEN - DO I=1,LGDS - IF(JGDS(I).NE.-1) THEN - LGDSP=LGDSP+1 - IGDSP(LGDSP)=I - JGDSP(LGDSP)=JGDS(I) - ENDIF - ENDDO - ENDIF - IRET=99 - DOWHILE(LGRIB.EQ.0.AND.KJ.LT.NNUM) - KJ=KJ+1 - LT=0 - IF(LPDSP.GT.0) THEN - CPDS=CBUF((KJ-1)*NLEN+26:(KJ-1)*NLEN+53) - KPTR=0 - call byteswap(CBUF, 8, LBUF/8) - CALL GBYTE(CBUF,KPTR(3),(KJ-1)*NLEN*8+25*8,3*8) - call byteswap(CBUF, 8, LBUF/8) -c print *, KPTR, KJ, LGRIB, NNUM, LT, LPDSP -c print *, CPDS - CALL FI632(CPDS,KPTR,KPDS,IRET) - DO I=1,LPDSP - IP=IPDSP(I) - LT=LT+ABS(JPDS(IP)-KPDS(IP)) - ENDDO - ENDIF - IF(LT.EQ.0.AND.LGDSP.GT.0) THEN - CGDS=CBUF((KJ-1)*NLEN+54:(KJ-1)*NLEN+95) - KPTR=0 - CALL FI633(CGDS,KPTR,KGDS,IRET) - DO I=1,LGDSP - IP=IGDSP(I) - LT=LT+ABS(JGDS(IP)-KGDS(IP)) - print *, i, ip, JGDS(IP), KGDS(IP), LT - ENDDO - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C READ AND UNPACK GRIB DATA - IF(LT.EQ.0) THEN - call byteswap(CBUF, 8, LBUF/8) - CALL GBYTE(CBUF,LSKIP,(KJ-1)*NLEN*8,4*8) - CALL GBYTE(CBUF,LGRIB,(KJ-1)*NLEN*8+20*8,4*8) - call byteswap(CBUF, 8, LBUF/8) -c call byteswap(LSKIP, 8, 1) -c call byteswap(LGRIB, 8, 1) - CGDS=CBUF((KJ-1)*NLEN+54:(KJ-1)*NLEN+95) - KPTR=0 - print *, CGDS, LSKIP, LGRIB - CALL FI633(CGDS,KPTR,KGDS,IRET) -C BSM IF(LGRIB.LE.200+17*JF/8.AND.KGDS(2)*KGDS(3).LE.JF) THEN -C Change number of bits that can be handled to 25 - IF(LGRIB.LE.200+25*JF/8.AND.KGDS(2)*KGDS(3).LE.JF) THEN - CALL BAREAD(LUGB,LSKIP,LGRIB,LREAD,GRIB) - IF(LREAD.EQ.LGRIB) THEN - CALL W3FI63(GRIB,KPDS,KGDS,LB,F,KPTR,IRET) - IF(IRET.EQ.0) THEN - K=KJ - KF=KPTR(10) - ENDIF - ELSE - IRET=97 - ENDIF - ELSE - IRET=98 - ENDIF - ENDIF - ENDDO - ELSE - IRET=96 - ENDIF -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RETURN - END diff --git a/util/sorc/trpsfprv.fd/i3to53.f b/util/sorc/trpsfprv.fd/i3to53.f deleted file mode 100755 index bc309f7a3d..0000000000 --- a/util/sorc/trpsfprv.fd/i3to53.f +++ /dev/null @@ -1,49 +0,0 @@ - subroutine i3to53(F3,F53) -c code to interpolate fro 360x181 type 3 -c latlon grid to 117x51 type 53 mercator grid -c simple example of Mark Iredell's ploates -c routine - parameter(ji=360*181) - parameter(ig53=53,jo53=117*51) - dimension F3(ji),F53(jo53) - dimension ipopt(2) -C - real rlat_03(ji),rlon_03(ji) - logical lo_03(ji) -C - real rlat_53(jo53),rlon_53(jo53) - equivalence( rlat_53(1), rlat_03(1) ) - equivalence( rlon_53(1), rlon_03(1) ) - logical lo_53(jo53) - equivalence( lo_53(1), lo_03(1) ) -C - integer ibi,ibo - integer kgdsi(22) -C -C - INTEGER KGDSO(22) - CHARACTER GDSO(42),gdsi(42) - INTEGER LENGDS - ibi=0 -cc define 360x181 grid - call makgds(3,kgdsi,gdsi,lengds,iret) -cc define 117x51 grid - call makgds(ig53,kgdso,gdso,lengds,iret) - if(iret.ne.0) stop 'makgd' -C -c ipopt=0 - ipopt(1)=1 - ipopt(2)=-1 - ip = 0 -c BICUBIC - ip=4 - - call ipolates(ip,ipopt,kgdsi,kgdso,ji,jo53,1, - 1 ibi,lo_06,F3,ko,rlat_53,rlon_53, - 2 ibo,lo_53,F53,iret) - print *, iret - if(iret.ne.0) stop 'ipol' - print * ,'IPOLATES RETURNING' - write(96) f53 - return - end diff --git a/util/sorc/trpsfprv.fd/j2i.f b/util/sorc/trpsfprv.fd/j2i.f deleted file mode 100755 index 6b6ae32791..0000000000 --- a/util/sorc/trpsfprv.fd/j2i.f +++ /dev/null @@ -1,20 +0,0 @@ - subroutine j2i(m,n) - COMMON/NSCHED/ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,50) - common/nsched2/jsched - character*1 jsched(16,50) - character*8 c8(8,50) - equivalence(c8,isched) - madd=m/2 - mnew=madd*2 - if(mnew .eq. m) mnew2=madd - if(mnew .ne. m) mnew2=madd+1 - if(mnew .eq. m) ibb=8 - if(mnew .ne. m) ibb=7 - if (mnew .eq. m) c8(mnew2,n)(1:1)=jsched(m,n) - if (mnew .ne. m) c8(mnew2 ,n)(2:2)=jsched(m,n) - print *,' from j2i assigning jsched( ',m,n, - 1') to isched( ', mnew2,n, '), byte ',ibb,' with value', - 1 mova2i(jsched(m,n)) - return - end - diff --git a/util/sorc/trpsfprv.fd/land.f b/util/sorc/trpsfprv.fd/land.f deleted file mode 100755 index 39bf4a05ac..0000000000 --- a/util/sorc/trpsfprv.fd/land.f +++ /dev/null @@ -1,5 +0,0 @@ - function land(iv,iv2) - land=iand(iv,iv2) - return - end - diff --git a/util/sorc/trpsfprv.fd/lcntr.f b/util/sorc/trpsfprv.fd/lcntr.f deleted file mode 100755 index 15affcfc38..0000000000 --- a/util/sorc/trpsfprv.fd/lcntr.f +++ /dev/null @@ -1,54 +0,0 @@ - subroutine lcntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, - 1 il,label,ick,jfid,isched,index, - 1 nflds, - x FLD1,DASH1,DW1,SHAD, - x FLD2,DASH2,DW2,SHAD2, - x FLD3,DASH3,DW3,SHAD3, - x fld4,dash4,dw4,shad4) ! added by kumar - dimension fld1(*),image(*),il(15),isched(8,50) - 1 ,index(*) - dimension jfid(14) - dimension label(*) - dimension fld2(*),fld3(*),fld4(*),dw1(2),dw2(2),dw3(2),dw4(2), - 1 dash1(2), - 1 dash2(2), - 1 dash3(2),dash4(2),shad(2),shad2(2),shad3(2),shad4(2) - integer dash1,dash2,dash3,dash4,shad,shad2,shad3,shad4, - 1 dw1,dw2,dw3,dw4 - print *,' arg1 (iret_cnt) = ',iret_cnt - print *,' arg2 (image) is scratch space ' - print *,' arg3 (imagsize_wrds ) is ', imagsiz_wrds - print 104,' arg 4 (IL OR MAP), is ',il - 104 format(a20,2a9,2(/,5i16),/,2i16,z20) - print *,' arg5 (label) is ',label(1) - print *,' arg6, ick, ',ick - print 103,' arg 7 jfid(1-14) ',jfid - 103 format(a20,5(/,5z20)) - print 105,isched - print 106,isched - 106 format(' arg8 ISCHED',8(1x,z16)) - 105 format(' arg8 isched ',8(1x,z8)) - print *,'arg9 (index )' ,index(1) - 1 ,(index(kk),kk=2,6) - print *,' arg 10 (nflds ) ',nflds - print 107,' args 11-14 (field dash dfw shad ) ', - 1 (fld1(k),k=1,10),dash1,dw1,shad - 107 format(a50,2(/,5f16.4),/,2z17,4x,2z17,4x,2z17,/) - print 107,' args 15-18 (field2 dash,dfw,shad ) ', - 1 (fld2(k),k=1,10),dash2,dw2,shad - print 107,' args 19-22 (field3,dash,dfw,shad ) ', - 1 (fld3(k),k=1,10),dash3,dw3,shad -c do k=1,48*119 -c fld1(k)=fld1(k)/10. -c if (nflds .ge. 2) fld2(k)=fld2(k)/1. -c if (nflds .ge. 3) fld3(k)=fld3(k)/1. -c end do - call cntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, - 1 il,label,ick,jfid,isched,index, - 1 nflds, - x FLD1,DASH1,DW1,SHAD, - x FLD2,DASH2,DW2,SHAD2, - x FLD3,DASH3,DW3,SHAD3, - x fld4,dash4,dw4,shad4) - return - end diff --git a/util/sorc/trpsfprv.fd/lor.f b/util/sorc/trpsfprv.fd/lor.f deleted file mode 100755 index 401f420403..0000000000 --- a/util/sorc/trpsfprv.fd/lor.f +++ /dev/null @@ -1,5 +0,0 @@ - function lor(iv,iv2) - lor=ior(iv,iv2) - return - end - diff --git a/util/sorc/trpsfprv.fd/lputlab.f b/util/sorc/trpsfprv.fd/lputlab.f deleted file mode 100755 index ea24d80ce8..0000000000 --- a/util/sorc/trpsfprv.fd/lputlab.f +++ /dev/null @@ -1,22 +0,0 @@ - SUBROUTINE lPUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KPRIORS,ITAG) - dimension kprior(2) - character*(*) ctext -c parse kprior - kprior(1)=0 - kprior(2)=0 - if (kpriors .eq. 0) then - kprior(1)=0 - kprior(2)=0 - else - kprior(2)=kpriors - kprior(1)=0 - endif - 904 format('LPUTLAB TEXT',A132,i4) - 901 format - 1 ('LPUTLAB ARGS',i6,i6,f6.2, '>',a16,'<',f6.2,i3,i6,i6,i8) - print 901,ipt,jpt,height,ctext,angle,nchar,kprior,itaG - print 904,ctext,nchar - call PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KPRIOR,ITAG) - return - end - diff --git a/util/sorc/trpsfprv.fd/main.block.data.f b/util/sorc/trpsfprv.fd/main.block.data.f deleted file mode 100755 index fa0944dd8e..0000000000 --- a/util/sorc/trpsfprv.fd/main.block.data.f +++ /dev/null @@ -1,21 +0,0 @@ -C -C SUBPROGRAM: MAIN.BLOCK.DATA BLOCK DATA FOR MAIN IN FAXMAKR90 -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-08-01 -C -C ABSTRACT: THIS IS THE BLOCK DATA STATEMENT FOR MAIN IN FAXMAKR90 CODE -C -C PROGRAM HISTORY LOG: -C 1999-08-01 KRISHNA KUMAR -C -C USAGE: BLOCK DATA ISCHED -C -C ATTRIBUTES: -C LANGUAGE: F90 -C MACHINE: IBM -C - BLOCK DATA ISCHED_DATA - COMMON /NSCHED/ ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,50) - DATA ISCHED/4390,1,0,3600,Z'8000',Z'D800',0,0,392*0/ -C - END BLOCK DATA ISCHED_DATA -C diff --git a/util/sorc/trpsfprv.fd/main.f b/util/sorc/trpsfprv.fd/main.f deleted file mode 100755 index 40ea77b595..0000000000 --- a/util/sorc/trpsfprv.fd/main.f +++ /dev/null @@ -1,1050 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: GRAPH_TRPSFPRV -C PRGMMR: KUMAR ORG: NP12 DATE: 2000-02-16 -C ABSTRACT: READS INTERPOLATED SPECTRAL DATA PREPARED BY RUSS JONES -C IN A MERCATOR GRID(117X51). IT PRODUCES ANY NUMBER OF COMBINATIONS -C OF FIELDS AND LEVELS OUT TO 48 HOURS ON A MERCATOR BACKGROUND FOR -C FAX ONLY. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR(S)'S NAME(S) HERE -C 86-07-30 MILLER DESCRIPTION OF CHANGE -C 88-03-24 FARLEY REPLACED XDAM I/O WITH VSAM I/O -C 98-06-30 KRISHNA KUMAR. Modified the contour labelling in the -C fax products output from trpanl. The contours are now -C labelled every 10 grid points beginning in 5 and ending -C in 115 in the J - direction (longitude) -C 2000-02-04 KRISHNA KUMAR Converted this code from CRAY to IBM RS/6000 -C SP system. -C -C USAGE: -C INPUT FILES: -C TRPGRD - FORECAST DATA FIELDS FILE -C FT02F001 - GRAPHICS BACKGROUND FILE -C FT05F001 - INTERFACE CONTROL CARD -C FT08F001 - MAP SCHEDULE CONTRO FILE -C -C OUTPUT FILES: -C FT01F001 - GRAPHICS OUTPUT MAPS (VARIAN,FAX) -C FT06F001 - ALL PRINT OUTPUT, CHECKPOINTS, ETC. -C FT09F001 - ALL DUMPS, ERROR MESSAGES. -C -C SUBPROGRAMS CALLED: -C UNIQUE: CENTRE CLOSEF CLOSES CLOSET FAXSHD FLIPTR GETGES -C ISOTAC ISP2EB MAPX MERCIN POTEX REDFLD REDUCX RNCNTL -C SLTCRD SPCHK STR TITLES UVCLIP WNDPLO WWNDR -C LIBRARY: -C COMMON - CONSOL ENCODE DECODE ERRMSG -C W3LIB - W3AI01 W3AI15 W3AS00 W3FK40 W3FK43 W3FK41 W3AQ13 -C W3FM03 W3FP02 -C GRAPHICS - CNTR DUCK WNDBRK -C -C EXIT STATES: -C COND = 0 SUCCESSFUL RUN -C = 18 DESIRED FIELD NOT IN DISK TABLE -C = 19 RETRIEVED DATA HAS WRONG ID -C = 74 BAD RUN CARD -C = 711 END OF FILE ON INPUT SCHEDULE FILE -C = 715 WRONG TIME -C = 761 BAD BACKGROUND INPUT DISK -C = 765 BAD OUTPUT FILE -C -C REMARKS: 24 AND 48 HR 1000MB STREAMS WITH PLOTTED WIND BARBS AT -C THE 12Z CYCLE ARE THE ONLY TWO CHARTS NOW PRODUCED OPERATIONALLY. -C DUCKLING ADDED DECEMBER 4, 1985. -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 90 -C MACHINE: IBM RS/6000 SP -C -C$$$ -C -C ...TEST MERCIN - COMMON/BOBINS/LMERC(256),IDMERC(1539) - COMMON/XZPLAX/XZPLOT,YZPLOT,IORITY - COMMON/KPLOT/LABEL(2,1024),LABIX,NOBUF,IDRA(50) - COMMON/PACKRA/IRAS(10) - COMMON/PUTARG/PUTHGT,PUTANG,IPRPUT,ITAPUT - COMMON /NSCHED/ ISLOTA,IPANA,ISUB,IFLAB,INSET,IRLAB,ISCHED(8,50) - COMMON/ADJ2/XIDID,YJDID - COMMON/ADJ5/IRTKOR,IUPKOR - COMMON/FIXFLD/XIM(51),F(51) - COMMON /ISPACE/WORKS(18172) - COMMON/YUCK/FLD1(48,119),FLD2(48,119),FLD3(48,119), - & fld4(48,119) - COMMON/ILY/IT1A,LV1A,IFID(14),JFID(14) - character*56 cjfid,cifid - equivalence (cjfid,jfid),(cifid,ifid) - character*4 cvar4 - DIMENSION IL(15) - DIMENSION INDEX(6) - DIMENSION ICK(3) - DIMENSION ILVLI(3),IFLDI(3),ITAUI(3),IOUTIN(2) - DIMENSION NTAU (5) -ckumar DIMENSION MSG1(12) -ckumar DIMENSION MESS4(11) - character*4 msg1(12),mess4(11) - character*48 xmsg1 - character*44 xmess4 - equivalence (xmsg1, msg1) - equivalence (xmess4, mess4) -ckumar - DIMENSION IARR2(3) -c character*4 iarr2(3) -ckumar - DIMENSION LICYL(2) - DIMENSION IFLO(5),IFHI(5),IFF(5),IFC(5),IFG(5) - DIMENSION JSTPK(30),JSTPL(30),ITABMB(7),ITABFL(7),KSTPK(30), - 1 KSTPL(30) -ckumar DIMENSION ICFIX(6),JCFIX(10),KCFIX(6),LTHERM(4),LVWS(6),LFL(6) - DIMENSION ICFIX(12),JCFIX(12),KCFIX(12),LTHERM(12),LVWS(12), - 1 LFL(12) - DIMENSION IAREA(8,26) - INTEGER DASH1(2),DW1(2),SHAD(2),DASH2(2),DW2(2),DASH3(2),DW3(2) -ckumar - integer dash4(2),dw4(2),shad1(2),shad2(2),shad3(2),shad4(2) -ckumar -ckumar INTEGER ISCHED(8,50) - integer ihash - data ihash/Z'FFFFFFFFFFFF0000' / -ckumar REAL*8 MERCI - CHARACTER*8 MERCI -ckumar - DIMENSION ITITLE(17,8) - DIMENSION IPTITL(4) - INTEGER IHOUR(5) - INTEGER ITIM - INTEGER IHAVL(2) - INTEGER TITLE(17) - INTEGER ME (2) - data me /'4hBIN ','4hA3 '/ - INTEGER MON(12) -c LOGICAL LPARM(100) - character*1 lparm(100) -c LOGICAL LBLANK - character*1 lblank -c LOGICAL LEV(4) - character*1 lev(4) - LOGICAL PFAXMP,PVARMP,PAFOMP - EQUIVALENCE (IHAVL(1),KPRIOR) - EQUIVALENCE (T1,IL(15)) - EQUIVALENCE (LEV(1),LV1B) - DATA ITITLE/ - 1 '24 H','R 7','00 M','B ',7*' ',' V','ALID', - 2 4*' ', - 3 '24 H','R 5','00 M','B ST','REAM','S I','SOTA', - 4 'CHS ',' TEM','PERA','TURE','S V','ALID',4*' ', - 5 '24 H','R 4','00 M','B ',7*' ',' V','ALID', - 6 4*' ', - 7 '24 H','R 3','00 M','B ',7*' ',' V','ALID', - 8 4*' ', - 9 '24 H','R 2','00 M','B ',7*' ',' V','ALID', - X 4*' ', - 1 '24 H','R 2','50 M','B ST','REAM','S I','SOTA', - 2 'CHS ',' TEM','PERA','TURE','S V','ALID',4*' ', - 3 '24 H','R T','ROPO','PAUS','E PR','ESSU','RE T', - 4 'EMPS',' VER','T WN','D SH','R V','ALID',4*' ', - 5 '24 H','R 10','00 M','B ST','REAM','S ',5*' ', - 6 ' V','ALID',4*' '/ - DATA IMAX/48/,JMAX/119/ - DATA LBLTAP/55/ - DATA T1/30.0/ - DATA LEV/' ',' ',' ',' '/ - DATA LBLANK/' '/ - DATA IL(1),IL(2)/'MR4002',0/ - DATA IL(3),IL(4),IL(5),IL(6)/97,0,1440,3540/ -c DATA IL(3),IL(4),IL(5),IL(6)/97,0,1440,3840/ - DATA IL(7),IL(8),IL(9),IL(10)/97,0,1440,3540/ -c DATA IL(11),IL(12)/-60,-2/ -c DATA IL(11),IL(12)/30,298/ - DATA IL(11),IL(12)/00,0 / -c DATA IL(11),IL(12)/00,-302/ -c DATA IL(11),IL(12)/30,-2/ - DATA IL(13),IL(14)/-4,0/ - DATA INDEX/119,26,1,48,-2,24/ -ckumar -ckumar used block data statements separately !!!! -ckumar DATA ISCHED/4390,1,0,3600,Z'8000',Z'D800',0,0,392*0/ - - DATA ICK/0,18172,0/ -ckumar DATA MSG1/4HNWS ,4H;@20,4H** ,4HTROP,4HICAL,4H PRG,4HCOMP, -ckumar 1 4HILED,4H 04/,4H20/8,4H1***,4H ;:/ - data xmsg1 / - & 'NWS ;@20TROPICAL PRG COMPILED 04 20_8 1*** ;:'/ -ckumar - DATA MASKFF/Z'FF'/ - DATA NU/1/ - DATA JU/8/ - DATA MERCI/'TRPGRD '/ - DATA MXREC2/255/ - DATA IHOUR/2H18,2H24,2H30,2H36,2H48/ - DATA NTAU /4H18 H,4H24 H,4H30 H,4H36 H,4H48 H/ - DATA MON/ 3HJAN,3HFEB,3HMAR,3HAPR,3HMAY,3HJUN, - 13HJUL,3HAUG,3HSEP,3HOCT,3HNOV,3HDEC/ -c LOGICAL LA/'A'/ - character*1 la - data la/'A'/ -ckumar DATA MESS4/4HNWS ,4H;@20,4H** ,4H 1,4H OF,4H 1,4H MA, -ckumar 1 4HPS C,4HOMPL,4HETED,4H**;:/ - data xmess4/ - & 'NWS ;@20 ** 1 OF 1 MAPS COMPLETED **;;'/ -ckumar - DATA ITBSE/7400/ - DATA INCR/30/ - DATA MXITR/7/ - DATA S/.5/ - DATA LICYL/3H00Z,3H12Z/ - DATA iXLPLMI/3HI+-/ - DATA iYLPLMI/3HS99/ - DATA iZLPLMI/3HS+-/ - character*3 xlplmi,ylplmi,zlplmi - equivalence(xlplmi,ixlplmi) - equivalence(ylplmi,iylplmi) - equivalence(zlplmi,izlplmi) - DATA IFLO/4H(1HC,4H,1H$,4H,A2),2*0/ - DATA IFHI/4H(1HA,4H,1H$,4H,A2),2*0/ - DATA IFF/4H(A3,,4H2HK$,4H,A2),2*0/ - DATA IFC/4H(1HF,4H,A3,,4H1H$),2*0/ - DATA IFG/4H(A3,,4H1H$),3*0/ -ckumar DATA JSTPK/36,68,72,80,100,114,24*0/ - DATA JSTPK/5,15,25,35,45,55,65,75,85,95,105,115,18*0/ -ckumar DATA JSTPL/44,44,44,44,44,44,24*0/ - DATA JSTPL/44,44,44,44,44,44,44,44,44,44,44,44,18*0/ - DATA ITABMB/400,350,300,250,200,150,100/ - DATA ITABFL/240,270,300,340,390,450,530/ -ckumar DATA KSTPK/28,48,58,76,90,108,24*0/ - DATA KSTPK/5,15,25,35,45,55,65,75,85,95,105,115,18*0/ -ckumar DATA KSTPL/6*44,24*0/ - DATA KSTPL/12*44,18*0/ -ckumar DATA ICFIX/36,68,72,80,100,114/ - DATA ICFIX/5,15,25,35,45,55,65,75,85,95,105,115/ -ckumar DATA JCFIX/38,52,60,66,70,82,90,98,106,112/ - DATA JCFIX/5,15,25,35,45,55,65,75,85,95,105,115/ -ckumar DATA KCFIX/28,48,58,76,90,108/ - DATA KCFIX/5,15,25,35,45,55,65,75,85,95,105,115/ -ckumar DATA LTHERM /9,32,60,86/ - DATA LTHERM/5,15,25,35,45,55,65,75,85,95,105,115/ -ckumar DATA LVWS /17,49,64,72,98,110/ - DATA LVWS /5,15,25,35,45,55,65,75,85,95,105,115/ -ckumar DATA LFL /21,36,53,76,102,114/ - DATA LFL /5,15,25,35,45,55,65,75,85,95,105,115/ - DATA MAPT7/Z'5600000000000000'/ -c DATA MAPT7/Z'E5000000'/ - DATA JA/26/ - DATA IA/8/ - DATA ITHOU/'1000'/ - DATA LV1B/' '/ - DATA IAREA/ - 1 2320,677,Z'83',68,108,0,0,0,2320,1172,Z'83',68,108,0,1172,0, - 2 1,126,Z'5',68,108,0,0,1299,2891,601,Z'83',70,108,0,601,0, - 3 2891,193,Z'45',178,23,0,0,589,1,126,Z'5',70,108,0,0,730, - 4 967,1083,Z'83',92,109,0,0,0,967,1083,Z'83',95,53,0,0,0, - 5 1934,1160,Z'83',75,108,0,0,0,3094,400,Z'83',73,108,0,400,0, - 6 1,126,Z'5',73,108,0,0,526,2308,775,Z'83',78,108,0,0,0, - 7 1,3600,Z'80',0,216,0,0,0,1,1800,Z'80',0,216,0,0,0, - 8 967,1083,Z'81',92,109,0,0,0,1015,386,Z'83',92,109,0,0,0, - 9 2027,772,Z'81',112,103,0,0,0,2652,772,Z'81',112,103,0,0,0, - 1 1934,890,Z'83',75,108,0,0,0,2272,1220,Z'83',68,108,0,1220,0, - 2 1,176,Z'5',68,108,0,0,1397,1,772,Z'81',112,103,0,0,0, - 3 670,772,Z'81',112,103,0,0,0,1347,772,Z'81',112,103,0,0,0, - 4 1,3485,Z'83',75,108,0,0,0,1158,1352,Z'83',Z'3C',Z'6C',0,0,0/ - DATA IBCHK/4H / - DATA IONE/1H1/ - DATA IPTITL/'MB S','TRM/','ITAC','H '/ -c -----------------new gwv cntr stuff - INTEGER MAXIWORD - PARAMETER (MAXIWORD=36) - - INTEGER MAXJSLINE - PARAMETER (MAXJSLINE=5828) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... ALLOCATE A BIG 1-D AREA for the image bitplane ... - - INTEGER IMAGSIZ_WRDS - PARAMETER (IMAGSIZ_WRDS=MAXIWORD*MAXJSLINE) - - COMMON /PICTURE/IMAGE - INTEGER IMAGE(IMAGSIZ_WRDS) - dimension krot_pri(2) - character*4 ctext -ckumar - COMMON/IOUTFAX/IFAXOUT,NRECFAX ! ADDED FOR DIRECT ACCESS FOR FAX OUTPUT -C - INTEGER IFAXOUT,NRECFAX -C -c---------------------------------------------------------- end new gwv -C - IL(15)=30000 - CALL W3TAGB('GRAPH_TRPSFPRV',2000,0047,0074,'NP12') -ckumar - NRECFAX = 0 - IFAXOUT = 81 -ckumar -c OPEN THE OUT PUT FAX FILE. - - OPEN (IFAXOUT, ACCESS='DIRECT', RECL=1440 ) -c -ckumar - CALL ERRMSG(9) - CALL CONSOL(MSG1) - REWIND NU -C -C ...INITIALIZE PUTLAB ARGUMENTS FOR CLABEL,CENTER CLOSED -C - PUTHGT=3.0 - PUTANG=90.0 - IPRPUT=0 - ITAPUT=0 - ISUBV=0 - PAFOMP=.FALSE. - PFAXMP=.FALSE. - PVARMP=.FALSE. -c ititialize label array -c XZPLOT=1.0 -c YZPLOT=1.0 -c IORITY=2 -c CALL ZPLOT(0.0,0.0,-3) -c now do it right!! -C -C INITIALIZE LABEL ARRAY -C -c LABIX = 0 -c NOBUF = 0 -cC -c IPT = 1 -c JPT = 0 -c HEIGHT = 1.0 -c ANGLE = 0.0 -c KROT_PRI(1) = 0 -c KROT_PRI(2) = 0 -c CTEXT(1:1) = '?' -c CTEXT(2:2) = CHAR(1) -c CTEXT(3:3) = '$' -c CTEXT(4:4) = CHAR(0) -c NCHAR = 2 -c ICMD = -2 -c CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, -c X ICMD) -c CALL PUTLAB(IPT,JPT,HEIGHT,CTEXT,ANGLE,NCHAR,KROT_PRI, -c X -7) -c do 18,k=1,9999 -c nchar=12 -c CALL PUTLAB(IPT,JPT+k, -c 1 HEIGHT,' now is the time',ANGLE,NCHAR,KROT_PRI, -c X ICMD) -c 18 continue -c stop 'putlab' -C -C -C ...INITIALIZE CONSTANTS - CALL MAPX -C ...WHERE MAPX FILLS /FIXFLD/ WITH LATITUDE DEPENDENT MERCATOR -C ...MAP CONSTANTS FOR EACH J ROW WHERE J=51 -C - CALL RNCNTL(NMAPS,IDATC,IOPN,ISWTCH,KRUN1,ITOUT1,ICYC1, - 1 INOPN1,INOPN2,INOPNA,INOPNB) -C ...INITIALIZE APPROPRIATE ID TABLES FOR INPUT FIELD DATA -C -c CALL W3FK40(MERCI,LMERC,MXREC2) -c CALL W3FK41(MERCI,IDMERC,MXREC2) - ICYCLT=IDMERC(3) - CALL GETGES(IRET) - PRINT 222,IRET - 222 FORMAT(1H0,10X,'CALLED GETGES TO NPREPARE GES STREAM FOR POTEX - 1AND RETURNED WITH IRET CODE = ',I2) - IF(ISWTCH.EQ.0) GO TO 7025 - 7000 CONTINUE - READ(JU,7050,END=7020)ICARD3,IIRUN1,IIRUN2,IIJOB1,IIJOB2,IICYC, - 1 NMAPS - 7050 FORMAT(A1,2(A4,A1),A4,I5) - IF(ICARD3.EQ.IONE) GO TO 7005 - PRINT 7003 - 7003 FORMAT(1H0,'BAD RUN CARD FORMAT ON TAPE8 FILE') - CALL W3TAGE('GRAPH_TRPSFPRV') - STOP 74 -C -C ...FOUND CARD FORMAT ON TAPE8-RIGHT JOB-QQ - 7005 CONTINUE - IF(INOPNA.EQ.IIJOB1 .AND. INOPNB.EQ.IIJOB2) GO TO 7010 - DO 7006 IY=1,NMAPS - READ(JU,7200)ICARD1,LVL1A,LVL1B,IFLD1A,IFLD1B,ITAU1A,ITAU1B, - 2 LVL2A,LVL2B,IFLD2A,IFLD2B,ITAU2A,ITAU2B,LVL3A, - 3 LVL3B,IFLD3A,IFLD3B,ITAU3A,ITAU3B,ICODEA, - 3 ICODEB,IINFA,IINFB,IOUTA,IOUTB,MAPON,NSLOTS - 7200 FORMAT(A1,10(A4,A1),3X,2(A4,A1),2I4) - DO 7006 IX=1,NSLOTS - READ(JU,8200)ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ -c print 82000,' 9999 SLOT PRINT icard2,islota,islotb,ipana', -c 1 icard2,islota,islotb,ipana,ipanb,' ', ' ', 'a1,3(a4,a1)' -c print 82001,'9999 SLOT PRINT icard2',icard2 -c print 82001,'9999 SLOT PRINT islota ',islota -c print 82001,'9999 SLOT PRINT islotb ',islotb -c print 82001,'9999 SLOT PRINT ipana',ipana -c print 82001,'9999 SLOT PRINT ipanb ',ipanb -82001 format(a30,a5) - IF(IX .EQ. 1)ISUBV=ISUB - CALL IDCHCK(NSLOTS,IX,ISUBV,ISUB,PVARMP,PFAXMP,PAFOMP) - 7006 CONTINUE - GO TO 7000 - 7020 CONTINUE - PRINT 7007 - 7007 FORMAT(1H0,'END OF FILE ON TAPE8 BEFORE FINDING OPNL JOB TYPE') - CALL W3TAGE('GRAPH_TRPSFPRV') - STOP 711 - 7010 CONTINUE - PRINT 7015,IIJOB1,IIJOB2 - 7015 FORMAT(1H0,'OPNL JOB FORMAT FOUND ON TAPE8= ',A4,A1) - 7025 CONTINUE - IMAPER=0 - DO 100 IT=1,NMAPS - CALL MERCIN(ISWTCH,NUMF,MAPON,NSLOTS,ILVLI, - 1 IFLDI,ITAUI,ICODIN,INAMIN,IOUTIN,IINFA,IINFB) - CALL REDFLD(ISWTCH,NUMF,ILVLI,IFLDI,ITAUI,IARR2,IERR) - IF(IERR.EQ.0) GO TO 93 - PRINT 95, MAPON,IERR - 95 FORMAT('0ID ERROR W3FK43-MAPON= ',I4,2X,I3,2X,'IERR=',I3) - PRINT 353 - 353 FORMAT(1H0,'MAP WAS SKIPPED') - DO 97 KK=1,NSLOTS - IF(ISWTCH.EQ.1) GO TO 99 - READ 8200, ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - 8200 FORMAT(A1,3(A4,A1),4I5,2A4,A2,4A4,A2,4A4) -82000 FORMAT(a50,A1,3(A4,A1),a20,4I5,2A4,A2,4A4,A2,4A4) - IF(KK .EQ. 1)ISUBV=ISUB - CALL IDCHCK(NSLOTS,KK,ISUBV,ISUB,PVARMP,PFAXMP,PAFOMP) - GO TO 97 - 99 CONTINUE - READ(JU,8200) ICARD2,ISLOTA,ISLOTB,IPANA,IPANB,IAREA1,IAREA2,ISUB, - 1 IFLAB,INSET,IRLAB,IREM1A,IREM1B,IREM1C,IREM2A,IREM2B, - 2 IREM3A,IREM3B,IREM3C,IREM4A,IREM4B,IMANOP,IMANOQ - IF(KK .EQ. 1)ISUBV=ISUB - CALL IDCHCK(NSLOTS,KK,ISUBV,ISUB,PVARMP,PFAXMP,PAFOMP) - 97 CONTINUE - GO TO 100 - 93 CONTINUE - IMAPER=IMAPER+1 - INCR1=0 - NNN=0 - MLAST=ITBSE-INCR - DO 1340 J=1,50 - DO 1340 I=1,8 - ISCHED(I,J)=0 - 1340 CONTINUE - DO 1500 JK=1,NSLOTS - CALL SLTCRD(ISWTCH,ISLOTA,ISLOTB,IPANA,IPANB,IRLAB,IREM3A,IREM3B, - 1 IREM3C,IREM4A,IREM4B,IAREA3,ISUB,IFLAB,INSET,IREM1A,IREM1B) -C -C ...PUT IPAK INFORMATION INTO IFID(1) -C - IF(JK .EQ. 1)ISUBV=ISUB - CALL IDCHCK(NSLOTS,JK,ISUBV,ISUB,PVARMP,PFAXMP,PAFOMP) -c 2/11/97 gwv build ipak information in cjfid (part 1) - write(cvar4,144)ifid(1) - 144 format(a4) - write(cjfid(1:4),144) cvar4 -c end 2/11 mod 1 -C - CALL TITLES(ISLOTA,ISLOTB,IPANA,IOUTIN,ILVLI,IARR2,IRLAB,INCR, - 1 INCR1,MLAST,ITAUI,IVAR,JLAST,INOPN1,INOPN2,IREM3A,IREM3B,IREM1A - 1,IREM1B - 1, IFLD1A,IFLD1B) - CALL FAXSHD(IAREA,IA,JA,IAREA3,INCR1,INCR,JLAST,NNN) - IF(IVAR.EQ.MAPT7) GO TO 1500 - INCR1=INCR1+INCR - MLAST=JLAST - 1500 CONTINUE -C -C ...INSERT DUMMY STRIP -C - IF(IVAR.EQ.MAPT7) GO TO 1501 - JLAST=JLAST+INCR - JXL=JLAST - IXL=1 - NCHAR=4 - KTEXT=IBCHK -C CALL PUTLAB(IXL,JXL,1.0,KTEXT,0.0,NCHAR,0,0) - 1501 CONTINUE - IX=ILVLI(1) - JX=ITAUI(1) - DO 1505 I=1,17 - TITLE(I)=ITITLE(I,IX) - 1505 CONTINUE - ITIM=IHOUR(JX) - TITLE(1) = NTAU(JX) - CALL W3AI15(IRAS(3),IRHR,1,2,1H-) - CALL W3AI15(IRAS(4),IRDA,1,2,1H-) - IRMO=IRAS(5) - CALL W3AI15(IRAS(6),IRYR,1,2,1H-) - CALL ENCODE(TITLE(14),16) - WRITE(99,122)IRHR,MON(IRMO),IRDA,IRYR - 122 FORMAT(1X,A2,2HZ ,A3,1X,A2,3H 19,A2) -C CALL PUTLAB(5,1,11.0,TITLE(1),0.0,68,1,0) -C CALL PUTLAB(20,70,11.0,ME,0.0,6,1,0) -C -C ...CONSTRUCT IPAK TITLE -C - DO 1506 I7=2,14 - IFID(I7) = IBCHK - 1506 CONTINUE -C -C ...PREPARE BASE TIME FOR TYPEWRITER COMMENT -C - KMO = IRAS(9) - CALL W3AI15(IRAS(8),KDA,1,2,1H-) - CALL W3AI15(IRAS(7),KHR,1,2,1H-) - LV1B = LV1A - IF(LV1B .EQ. ITHOU)GO TO 1507 - LEV(4)=LEV(3) - LEV(3)=LEV(2) - LEV(2)=LEV(1) - LEV(1)=LBLANK - 1507 CALL ENCODE(IFID(3),36) - WRITE(99,1405)KMO,KDA,KHR,IT1A,LV1B,(IPTITL(I3),I3=1,4) - 1405 FORMAT(I2,1H/,A2,1H/,A2,4HZ ,6A4) -c gwv 2/11/97 build ipak title (part 2) - write(cjfid(9:56),1405) - 1 KMO,KDA,KHR,IT1A,LV1B,(IPTITL(I3),I3=1,4) -c end 2/11 mod part 2 - PRINT 1409,(IFID(I9),I9=1,14) - 1409 FORMAT(1H0,'360 TYPEWRITER COMMENT= ',14A4) -C -c CALL EB2ISP(56,IFID(1),JFID(1),IERR) -c CALL ASC2ISP(56,IFID(1),JFID(1),IERR) -c gwv 2/11/97 commented out conversion below since it's now done -c in cntr package -c CALL ASC2ISP(56,cifid,cjfid,IERR) -C - PRINT 511 - 511 FORMAT('0SCHEDULE BIN FOLLOWS') -c CALL PDUMP(ISCHED(1,1),ISCHED(8,50),0) -C -C ...SETUP FOR MAP OUTPUT -C -C ...CONTOUR LABEL SUBROUTINES FOLLOW -C ...CLOSES CONTOURS LABELS FROM CENTER VALUES -C ...CLOSET CONTOURS LABELS FROM CONTOUR STRIP VALUES -C -C -C ...LOX IA A FLAG FOR DIRECT(=0)/INDIRECT(=1) CONTOUR LABEL VALUES -C -C ...ICK(1)=1 GOOD MAP -C ...ICK(1)=2 BAD OUTPUT TAPE -C ...ICK(1)=3 BAD BACKGROUND TAPE -C - IRTRY=3 - ICHOOS=IOUTIN(2) - print *,'ICHOOS 9999',ichoos - gO TO (1140,1110,1110,1120,1130,1130),ICHOOS -C -C -C ...STREAMS, ISOTACHS-ISOTHERMS- WITH PLOTTED WINDS -C -C ...IOUTIN(2)=3 -C ...WHERE FLD1=STREAMS -C ...WHERE FLD2=ISOTACHS -C ...WHERE FLD3=ISOTHERMS -C - 1110 CONTINUE - print *,' AFTER 1110 CONTINUE 9999' -C -C ...FIND STREAM CENTERS -C - ICEN1=1 - XLIM=-1. -c XS=-T1 - xs=30. - M=1 - XIDID=-5.0 - YJDID=-37.0 - A1=111.0 - B1=60.0 - PUTHGT=11.0 - IHAVL(1)=1 -C ROTATE CENTER LABELS 90 DEGREES - IHAVL(2)=1 - IPRPUT=KPRIOR - print *,'BEFORE CENTRE 9999' - CALL CENTRE(FLD1,IMAX,JMAX,XS,A1,B1,M,XLIM,ICEN1,XLPLMI,IFLO, - 1 IFHI) - print *,'AFTER CENTRE 9999' -C -C ...FIND ISOTACH CONTOUR LABELS FROM CENTERS -C - M=3 - LOX=0 - IUP=4 - IRTKOR=-6 - IUPKOR=-20 - A1=-6.5 - B1=20.0 - IPRPUT=2 - PUTHGT=3.0 - CALL CLOSES(FLD2,IMAX,JMAX,S,A1,B1,M,IUP,YLPLMI,IFF,JSTPK, - 1 JSTPL,LOX,ITABMB,ITABFL,MXITR) -C -C ...FIND ISOTACH CONTOUR LABELS FROM STRIPS -C - LOX=0 - IFIX=2 - IUP=42 - M=3 - PUTHGT=3.0 - IPRPUT=0 - IRTKOR=-6 - IUPKOR=-20 -ckumar DO 1111 ILAB=1,6 - DO 1111 ILAB=1,12 - JFIX=ICFIX(ILAB) - CALL CLOSET(FLD2,IMAX,JMAX,S,A1,B1,M,IUP,IFIX,JFIX,YLPLMI,IFF,LOX, - 1 ITABMB,ITABFL,MXITR) - 1111 CONTINUE -C -C ...FIND ISOTHERM CONTOUR LABELS FROM CENTERS -C - M=3 - LOX=0 - IUP=4 - IRTKOR=-1 - IUPKOR=-35 - A1=0.0 - B1=5.0 - IPRPUT=2 - PUTHGT=3.0 - CALL CLOSES(FLD3,IMAX,JMAX,S,A1,B1,M,IUP,ZLPLMI,IFG,KSTPK,KSTPL, - 1 LOX,ITABMB,ITABFL,MXITR) -C -C ...FIND ISOTHERM CONTOUR LABELS FROM STRIPS - LOX=0 - IFIX=2 - IUP=42 - M=3 - PUTHGT=3.0 - IPRPUT=0 - IRTKOR=-1 - IUPKOR=-35 -ckumar DO 1123 ILAB=1,6 - DO 1123 ILAB=1,12 - JFIX=KCFIX(ILAB) - CALL CLOSET(FLD3,IMAX,JMAX,S,A1,B1,M,IUP, - 1 IFIX,JFIX,ZLPLMI,IFG,LOX, - 1 ITABMB,ITABFL,MXITR) - 1123 CONTINUE -C -C ...SETUP FOR OUTPUT MAP-STREAMS/ISOTACHS/ISOTHERMS WITH -C ...PLOTTED WINDS -C - ICNT=3 - DW1(1)=2 - DW1(2)=0 -C ...FOR REGULAR LINES - DW2(1)=0 - DW2(2)=0 - DW3(1)=0 - DW3(2)=0 -C ...TO MAKE DOUBLE WEIGHT LINES - DASH1(1)=0 - DASH1(2)=0 - DASH3(1)=0 - DASH3(2)=0 -C ...NO DASHED LINES - SHAD(1)=0 - SHAD(2)=0 -C ...NO SHADING - DASH2(1)=7 - DASH2(2)=4 - DASH2(1)=20 - DASH2(2)=12 -c dash2(1)=ihash -c dash2(2)=ihash -C ...FOR DASHED LINES - GO TO 1400 -C -C -C -C ...STREAMS -WITH PLOTTED WINDS -C -C ...IOUTIN(2)=4 -C ...WHERE FLD1=STREAMS -C -C -C - 1120 CONTINUE - print *,' 9999 AFTER 1120 CONTINUE' -C -C ...FIND STREAM CENTERS -C - ICEN1=1 - XLIM=-1. - XS=-T1 - xs=-30 - M=1 - XIDID=-5.0 - YJDID=-37.0 - A1=111.0 - B1=30.0 - PUTHGT=11.0 - IHAVL(1) = 1 - IHAVL(2) = 1 - IPRPUT=KPRIOR - CALL CENTRE(FLD1,IMAX,JMAX,XS,A1,B1,M,XLIM,ICEN1,XLPLMI,IFLO, - 1 IFHI) -C -C ...SETUP FOR OUTPUT MAP-STREAMS WITH PLOTTED WINDS -C - WRITE(6,92) - 92 FORMAT( 10X,'***** PASSING THROUGH STREAMS-WINDS SECTION') - ICNT=1 - DW1(1)=2 - DW1(2)=0 -C ...FOR DOUBLE WEIGHT LINES - DASH1(1)=0 - DASH1(2)=0 -C ...NO DASHED LINES - SHAD(1)=0 - SHAD(2)=0 -C ...NO SHADING - GO TO 1200 -C ...TROPOPAUSE PRESSURE -C -C ...IOUTIN(2)=5 -C ...FLD1=TROPOPAUSE PRESSURE -C - 1130 CONTINUE - print *,' after 1130 continue 9999' -C -C ...FIND TROPOPAUSE PRESSURE CONTOUR LABELS FROM STRIPS -C ...USE INDIRECT FLIGHT LEVEL VALUES - LOX=1 - IFIX=2 - IUP=42 - M=3 - A3=0.0 - B3=50.0 - PUTHGT=3.0 - IPRPUT=0 - IRTKOR= 0 - IUPKOR=-50 -ckumar DO 1122 ILAB=1,6 - DO 1122 ILAB=1,12 - JFIX=LFL(ILAB) - CALL CLOSET(FLD1,IMAX,JMAX,S,A3,B3,M,IUP,IFIX,JFIX,YLPLMI,IFC,LOX, - 1 ITABMB,ITABFL,MXITR) - 1122 CONTINUE -C -C****************************************************************** -C FIND ISOTHERM CONTOUR LABELS FOR CENTERS -C****************************************************************** - M = 3 - LOX = 0 - IUP = 4 - IRTKOR = -1 - IUPKOR = -31 - A3 = 0.0 - B3 = 5.0 - IPRPUT = 2 - PUTHGT = 3.0 - CALL CLOSES(FLD2,IMAX,JMAX,S,A3,B3,M,IUP,ZLPLMI,IFG,KSTPK,ISTPL, - + LOX,ITABMB,ITABFL,MXITR) -C -C****************************************************************** -C FIND ISOTHERM CONTOUR LABELS FROM STRIPS -C****************************************************************** - IUPKOR = -45 - IRTKOR = 0 - IPRPUT = 0 - PUTHGT = 3.0 - IFIX = 2 - LOX = 0 - IUP = 42 - M = 3 -ckumar DO 800 ILAB=1,4 - DO 800 ILAB=1,12 - JFIX = LTHERM(ILAB) - CALL CLOSET(FLD2,IMAX,JMAX,S,A3,B3,M,IUP,IFIX,JFIX,ZLPLMI,IFG, - + LOX,ITABMB,ITABFL,MXITR) - 800 CONTINUE -C -C****************************************************************** -C FIND VWS CONTOUR LABELS IN STRIPS -C* *************************************************************** - IUPKOR = -40 - IRTKOR = -5 - PUTHGT = 3.0 - IFIX = 2 - IUP = 42 - LOX = 0 - A3 = 0.0 - B3 = 2.0 - M = 3 -ckumar DO 805 ILAB=1,6 - DO 805 ILAB=1,12 - JFIX = LVWS(ILAB) - CALL CLOSET(FLD3,IMAX,JMAX,S,A3,B3,M,IUP,IFIX,JFIX,ZLPLMI,IFG, - + LOX,ITABMB,ITABFL,MXITR) - 805 CONTINUE -C -C ...SETUP FOR OUTPUT MAP-TROP PRESSURE -C - ICNT=3 -C PRESSURE LINES: DW, NO DASH - DW1(1) = 2 - DW1(2) = 0 - DASH1(1)=0 - DASH1(2)=0 -C TEMP LINES: REGULAR, DASH - DW2(1) = 0 - DW2(2) = 0 - DASH2(1) = 0 - DASH2(2) = 0 -C VERTICAL WIND SHEAR: REGULAR, NO DASH - DASH3(1) = 7 - DASH3(2) = 4 - DW3(1) = 0 - DW3(2) = 0 -C NO SHADING - SHAD(1) = 0 - SHAD(2) = 0 - GO TO 1400 -C -C ...STREAMS, ISOTACHS- WITH PLOTTED WINDS -C -C ...IOUTIN(2)=1 -C ...WHERE FLD1=STREAMS -C ...WHERE FLD2=ISOTACHS -C - 1140 CONTINUE - print *,' AFTER 1140 continue 9999' -C -C ...FIND STREAM CENTERS -C - ICEN1=1 - XLIM=-1. - XS=-T1 - xs=-30.0 - M=1 - XIDID=-5.0 - YJDID=-37.0 - A1=111.0 - B1=60.0 - PUTHGT=11.0 - IHAVL(1)=1 -C ROTATE CENTER LABELS 90 DEGREES - IHAVL(2)=1 - IPRPUT=KPRIOR - print *,' BEFORE 1140 CENTRE CALL 9999 ' -c call ct53(fld1) - CALL CENTRE(FLD1,IMAX,JMAX,XS,A1,B1,M,XLIM,ICEN1,XLPLMI,IFLO, - 1 IFHI) - print *,' after 1140 CENTRE CALL 9999 ' -C -c stop 'CENTRE 1140' -C ...FIND ISOTACH CONTOUR LABELS FROM CENTERS -C - M=3 - LOX=0 - IUP=4 - IRTKOR=-6 - IUPKOR=-20 - A1=-6.5 - B1=20.0 - IPRPUT=2 - PUTHGT=3.0 - CALL CLOSES(FLD2,IMAX,JMAX,S,A1,B1,M,IUP,YLPLMI,IFF,JSTPK, - 1 JSTPL,LOX,ITABMB,ITABFL,MXITR) -C -C ...FIND ISOTACH CONTOUR LABELS FROM STRIPS -C - LOX=0 - IFIX=2 - IUP=42 - M=3 - PUTHGT=3.0 - IPRPUT=0 - IRTKOR=-6 - IUPKOR=-20 -ckumar DO 1141 ILAB=1,6 - DO 1141 ILAB=1,12 - JFIX=ICFIX(ILAB) -c call ct49 (fld2) -c call frame -c do kj=1,118 -c do ki=1,49 -c fld2(kj,ki)=fld2(ki,kj)*1.94 -c end do -c end do - CALL CLOSET(FLD2,IMAX,JMAX,S,A1,B1,M,IUP,IFIX,JFIX,YLPLMI,IFF,LOX, - 1 ITABMB,ITABFL,MXITR) -c do kj=1,118 -c do ki=1,49 -c fld2(kj,ki)=fld2(ki,kj)/1.94 -c end do -c end do - 1141 CONTINUE -C -C ...SETUP FOR OUTPUT MAP-STREAMS/ISOTACHS/ WITH -C ...PLOTTED WINDS -C - ICNT=2 - DW1(1)=2 - DW1(2)=0 -C ...FOR DOUBLE WT LINES - DW2(1)=0 - DW2(2)=0 - dw2(1)=2 - dw1(1)=0 -cccccccccccccccccc dw2(1)=2 -C ...TO MAKE REGULAR LINES - DASH1(1)=0 - DASH1(2)=0 -C ...NO DASHED LINES -c DASH2(1)=7 -c DASH2(2)=4 - DASH2(1)=20 - DASH2(2)=14 -C ...DASHED LINES - SHAD(1)=0 - SHAD(2)=0 -C ...NO SHADING - GO TO 1300 -C -C ...OUTPUT MAP-FLD1 -C - 1200 CONTINUE -c CALL PDUMP(LABEL(1,1),LABEL(2,LABIX),0) -C ...CLOSE OUT LABEL ARRAY AND WEF TAPE55 - CALL lPUTLAB(0,0,1.0,1HA,0.0,1,0,999) -c CALL PUTLAB(0,0,1.0,1HA,0.0,1,0,999) - ICK(3)=0 - IF(IT.EQ.NMAPS) ICK(3)=1 - 1201 CONTINUE - nflds=icnt -cc CALL CNTR(IL,-1,ICK,JFID,ISCHED,INDEX,ICNT,FLD1,DASH1,DW1,SHAD) -c call cntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, -c 1 map,LABEL,ichk,ifid,isched,index, -c 1 nflds, -c x FLD1,DASH1,DW1,SHAD) - print *,' from first cntr ',nflds - rewind (55) -ckumar - print*,'In Main before CNTR' -ckumar - call cntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, - 1 il,-1,ick,jfid,isched,index, - 1 nflds, - x FLD1,DASH1,DW1,SHAD, - x fld2,dash2,dw2,shad2, ! added by kumar - x fld3,dash3,dw3,shad3, ! added by kumar - x fld4,dash4,dw4,shad4) ! added by kumar -ckumar - IF(ICK(1)-2) 100,1202,706 - 1202 IRTRY=IRTRY-1 - IF(IRTRY.EQ.0) GO TO 707 - GO TO 1201 -C -C ...OUTPUT MAP-FLD1/FLD2/FLD3 -C - 1400 CONTINUE -c CALL PDUMP(LABEL(1,1),LABEL(2,LABIX),0) -C ...CLOSE OUT LABEL ARRAY AND WEF TAPE55 -c CALL PUTLAB(0,0,1.0,1HA,0.0,1,0,999) - CALL lPUTLAB(0,0,1.0,1HA,0.0,1,0,999) - ICK(3)=0 - IF(IT.EQ.NMAPS) ICK(3)=1 - 1301 CONTINUE - nflds=icnt - rewind (55) - do kjj=1,50 - print 1077,(isched(jm,kjj),jm=1,8) - end do - 1077 format(5z17) -cc CALL CNTR(IL,-1,ICK,JFID,ISCHED,INDEX,ICNT,FLD1,DASH1,DW1,SHAD, -cc 1 FLD2,DASH2,DW2,SHAD,FLD3,DASH3,DW3,SHAD) - print *,' from second cntr ',nflds - call lcntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, - 1 il,-1,ick,jfid,isched,index, - 1 nflds, - x FLD1,DASH1,DW1,SHAD, - x FLD2,DASH2,DW2,SHAD, - x FLD3,DASH3,DW3,SHAD, - x fld4,dash4,dw4,shad) - IF(ICK(1)-2) 100,1302,706 - 1302 IRTRY=IRTRY-1 - IF(IRTRY.EQ.0) GO TO 707 - GO TO 1301 -C -C ...OUTPUT MAP-FLD1/FLD2 -C - 1300 CONTINUE -c CALL PDUMP(LABEL(1,1),LABEL(2,LABIX),0) -C ...CLOSE OUT LABEL ARRAY AND WEF TAPE55 - CALL lPUTLAB(0,0,1.0,1HA,0.0,1,0,999) -c CALL PUTLAB(0,0,1.0,1HA,0.0,1,0,999) - ICK(3)=0 - IF(IT.EQ.NMAPS) ICK(3)=1 - 1401 CONTINUE - nflds=icnt - rewind (55) - do kjj=1,50 - print 1077,(isched(jm,kjj),jm=1,8) - end do - -cc CALL CNTR(IL,-1,ICK,JFID,ISCHED,INDEX,ICNT,FLD1,DASH1,DW1,SHAD, -cc 1 FLD2,DASH2,DW2,SHAD) - print *,' from third cntr ',nflds - print *,'FLD 1 ',(FLD1(45,jjj),jjj=1,45) - print *,'FLD 2 ',(FLD2(45,jjj),jjj=1,45) -cj call ct49(fld1) -c c call frame -c call ct49(fld2) -c call frame - call lcntr(iret_cnt, IMAGE, IMAGSIZ_WRDS, - 1 il,-1,ick,jfid,isched,index, - 1 nflds, - x FLD2,DASH2,DW1,SHAD, - x FLD1,DASH1,DW2,SHAD, - x FLD3,DASH3,DW3,SHAD, ! added by kumar - x fld4,dash4,dw4,shad) - - IF(ICK(1)-2) 100,1402,706 - 1402 IRTRY=IRTRY-1 - IF(IRTRY.EQ.0) GO TO 707 - GO TO 1401 - 100 CONTINUE -C -C ... -C - 96 CONTINUE - CALL CONSOL('NWS,TROPICAL SURFACE ANALYSIS FAX ENDED:') - PRINT 750,IMAPER,NMAPS - 750 FORMAT(1H1,I3,' OF ',I3,' MAPS COMPLETED') -c gwv 2/25/97 END CNTR 6bit file PROPERLY!! -ckumar - CALL ENDMAP (IFAXOUT,NRECFAX) - CLOSE (IFAXOUT) -ckumar -c end 2/25 insert - CALL ENCODE(MESS4(4),12) - WRITE(99,770)IMAPER,NMAPS - 770 FORMAT(I4,2X,2HOF,I4) - CALL CONSOL(MESS4) - CALL W3TAGE('GRAPH_TRPSFPRV') - STOP 0 - - 706 CONTINUE - PRINT 761 - 761 FORMAT('1BAD BACKGROUND INPUT TAPE OR DISC ') - CALL W3TAGE('GRAPH_TRPSFPRV') - STOP 761 - 707 CONTINUE - PRINT 765 - 765 FORMAT('1BAD OUTPUT TAPE') - CALL W3TAGE('GRAPH_TRPSFPRV') - STOP 765 - END - diff --git a/util/sorc/trpsfprv.fd/makefile b/util/sorc/trpsfprv.fd/makefile deleted file mode 100755 index cf2bce031a..0000000000 --- a/util/sorc/trpsfprv.fd/makefile +++ /dev/null @@ -1,49 +0,0 @@ -SHELL=/bin/sh -# -SRCS= lcntr.f j2i.f lputlab.f get3.f shftl.f stream3.f i3to53.o shftr.f \ - errmsg.f land.f lor.f encode.f CLOSEF.f CLOSES.f CLOSET.f FAXSHD.f \ - FLIPTR.f GETGES.f IDCHCK.f ISOTAC.f MAPX.f MERCIN.f POTEX.f REDFLD.f \ - REDUCX.f RNCNTL.f SLTCRD.f SPCHK.f STR.f TITLES.f UVCLIP.f WNDPLO.f \ - WWNDR.f w3fp02_fake.f main.f main.block.data.f getgb1.f centre.f \ - reblkfx4.F - -OBJS= lcntr.o j2i.o lputlab.o get3.o shftl.o stream3.o i3to53.o shftr.o \ - errmsg.o land.o lor.o encode.o CLOSEF.o CLOSES.o CLOSET.o FAXSHD.o \ - FLIPTR.o GETGES.o IDCHCK.o ISOTAC.o MAPX.o MERCIN.o POTEX.o REDFLD.o \ - REDUCX.o RNCNTL.o SLTCRD.o SPCHK.o STR.o TITLES.o UVCLIP.o WNDPLO.o \ - WWNDR.o w3fp02_fake.o main.o main.block.data.o getgb1.o centre.o \ - reblkfx4.o - -FC = ifort -# -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} ${BUFR_LIB8} - -CMD = trpsfprv -# -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -qopenmp -assume byterecl -convert big_endian \ - -assume nobscc -assume noold_ldout_format -warn usage - -LDFLAGS = -qopenmp - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/trpsfprv.fd/makefile.theia b/util/sorc/trpsfprv.fd/makefile.theia deleted file mode 100755 index cf2bce031a..0000000000 --- a/util/sorc/trpsfprv.fd/makefile.theia +++ /dev/null @@ -1,49 +0,0 @@ -SHELL=/bin/sh -# -SRCS= lcntr.f j2i.f lputlab.f get3.f shftl.f stream3.f i3to53.o shftr.f \ - errmsg.f land.f lor.f encode.f CLOSEF.f CLOSES.f CLOSET.f FAXSHD.f \ - FLIPTR.f GETGES.f IDCHCK.f ISOTAC.f MAPX.f MERCIN.f POTEX.f REDFLD.f \ - REDUCX.f RNCNTL.f SLTCRD.f SPCHK.f STR.f TITLES.f UVCLIP.f WNDPLO.f \ - WWNDR.f w3fp02_fake.f main.f main.block.data.f getgb1.f centre.f \ - reblkfx4.F - -OBJS= lcntr.o j2i.o lputlab.o get3.o shftl.o stream3.o i3to53.o shftr.o \ - errmsg.o land.o lor.o encode.o CLOSEF.o CLOSES.o CLOSET.o FAXSHD.o \ - FLIPTR.o GETGES.o IDCHCK.o ISOTAC.o MAPX.o MERCIN.o POTEX.o REDFLD.o \ - REDUCX.o RNCNTL.o SLTCRD.o SPCHK.o STR.o TITLES.o UVCLIP.o WNDPLO.o \ - WWNDR.o w3fp02_fake.o main.o main.block.data.o getgb1.o centre.o \ - reblkfx4.o - -FC = ifort -# -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} ${BUFR_LIB8} - -CMD = trpsfprv -# -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -qopenmp -assume byterecl -convert big_endian \ - -assume nobscc -assume noold_ldout_format -warn usage - -LDFLAGS = -qopenmp - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/trpsfprv.fd/makefile.wcoss_cray b/util/sorc/trpsfprv.fd/makefile.wcoss_cray deleted file mode 100755 index dc96b1d1b1..0000000000 --- a/util/sorc/trpsfprv.fd/makefile.wcoss_cray +++ /dev/null @@ -1,49 +0,0 @@ -SHELL=/bin/sh -# -SRCS= lcntr.f j2i.f lputlab.f get3.f shftl.f stream3.f i3to53.o shftr.f \ - errmsg.f land.f lor.f encode.f CLOSEF.f CLOSES.f CLOSET.f FAXSHD.f \ - FLIPTR.f GETGES.f IDCHCK.f ISOTAC.f MAPX.f MERCIN.f POTEX.f REDFLD.f \ - REDUCX.f RNCNTL.f SLTCRD.f SPCHK.f STR.f TITLES.f UVCLIP.f WNDPLO.f \ - WWNDR.f w3fp02_fake.f main.f main.block.data.f getgb1.f centre.f \ - reblkfx4.F - -OBJS= lcntr.o j2i.o lputlab.o get3.o shftl.o stream3.o i3to53.o shftr.o \ - errmsg.o land.o lor.o encode.o CLOSEF.o CLOSES.o CLOSET.o FAXSHD.o \ - FLIPTR.o GETGES.o IDCHCK.o ISOTAC.o MAPX.o MERCIN.o POTEX.o REDFLD.o \ - REDUCX.o RNCNTL.o SLTCRD.o SPCHK.o STR.o TITLES.o UVCLIP.o WNDPLO.o \ - WWNDR.o w3fp02_fake.o main.o main.block.data.o getgb1.o centre.o \ - reblkfx4.o - -FC = ifort -# -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} ${BUFR_LIB8} - -CMD = trpsfprv -# -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -qopenmp -assume byterecl -convert big_endian \ - -assume nobscc -assume noold_ldout_format -warn usage - -LDFLAGS = -openmp - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/trpsfprv.fd/makefile.wcoss_dell_p3 b/util/sorc/trpsfprv.fd/makefile.wcoss_dell_p3 deleted file mode 100755 index cf2bce031a..0000000000 --- a/util/sorc/trpsfprv.fd/makefile.wcoss_dell_p3 +++ /dev/null @@ -1,49 +0,0 @@ -SHELL=/bin/sh -# -SRCS= lcntr.f j2i.f lputlab.f get3.f shftl.f stream3.f i3to53.o shftr.f \ - errmsg.f land.f lor.f encode.f CLOSEF.f CLOSES.f CLOSET.f FAXSHD.f \ - FLIPTR.f GETGES.f IDCHCK.f ISOTAC.f MAPX.f MERCIN.f POTEX.f REDFLD.f \ - REDUCX.f RNCNTL.f SLTCRD.f SPCHK.f STR.f TITLES.f UVCLIP.f WNDPLO.f \ - WWNDR.f w3fp02_fake.f main.f main.block.data.f getgb1.f centre.f \ - reblkfx4.F - -OBJS= lcntr.o j2i.o lputlab.o get3.o shftl.o stream3.o i3to53.o shftr.o \ - errmsg.o land.o lor.o encode.o CLOSEF.o CLOSES.o CLOSET.o FAXSHD.o \ - FLIPTR.o GETGES.o IDCHCK.o ISOTAC.o MAPX.o MERCIN.o POTEX.o REDFLD.o \ - REDUCX.o RNCNTL.o SLTCRD.o SPCHK.o STR.o TITLES.o UVCLIP.o WNDPLO.o \ - WWNDR.o w3fp02_fake.o main.o main.block.data.o getgb1.o centre.o \ - reblkfx4.o - -FC = ifort -# -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} ${BUFR_LIB8} - -CMD = trpsfprv -# -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -qopenmp -assume byterecl -convert big_endian \ - -assume nobscc -assume noold_ldout_format -warn usage - -LDFLAGS = -qopenmp - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -$(CMD).prof: $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/trpsfprv.fd/reblkfx4.F b/util/sorc/trpsfprv.fd/reblkfx4.F deleted file mode 100755 index 2774a084f7..0000000000 --- a/util/sorc/trpsfprv.fd/reblkfx4.F +++ /dev/null @@ -1,1649 +0,0 @@ -#if !defined (_BIG_ENDIAN) && !defined (_LITTLE_ENDIAN) -#error 'Neither _BIG_ENDIAN nor _LITTLE_ENDIAN is defined.' -#endif - SUBROUTINE REBLKFX4(LUNIX6T,LUNIPK6,NUMRECFAX, - 1 IISCHED,C1IFID,MYOPTNBITS,IERR) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REBLKFX4 CONVERT RLE NMC EXT 6-BIT TO PACKED FORM -C PRGMMR: KRISHNA KUMAR ORG: W/NP12 DATE: 1999-10-26 -C -C ABSTRACT: CONVERT A FILE CONTAINING ONE RUN-LENGTH ENCODED (RLE) -C RASTER PRODUCT IN NMC EXTENDED 6-BIT CODE INTO THE NMC PACKED -C 6-BIT FAX CODE, AND ADD ALL THE HEADERS AND TRAILERS REQUIRED -C IN THE FINAL NMC 6-BIT PACKED FAX PRODUCT FORMAT. -C -C PROGRAM HISTORY LOG: -C 85-12-02 ORIGINAL AUTHOR(S)'S NAME: DAVID SHIMOMURA -C -- TO REBLOCK FAX PRODUCT FROM GIVEN 512-BYTE -C RECORDS INTO 1440-BYTE BLOCKS. -C -C 86-03-06 SHIMOMURA -- MODIFIED TO WRITE COMMENTS TO UNIT=46 -C FOR RUNNING UNDER FXD.COM -C -C 86-03-07 SHIMOMURA -- COPIED FROM VAX VERSION:'REBLKFAX.FOR' -C TO MAKE A VERSION WHICH CALLS faxwrs3 TO INSERT -C DOUBLE-DLE'S AND OTHER RJE COMMS REQUIREMENTS -C FOR MOVING FROM VAX TO IBM MAINFRAME USING RJE LINE, -C AND BYPASS THE INTERMEDIATE FILE OF PURE NMC STD FAX. -C -C 86-04-29 SHIMOMURA -- modified to discard trailing blank lines -C before the end-of-map. -C -C 89-12-26 SHIMOMURA -- COPIED VAX VERSION OF [6,300]REBLKFX.FOR -C TO MAKE A CHECKOUT VERSION, STRIPPING OUT THE RJE -C TRANSMISSION MODS IN AN ATTEMPT TO MAKE PURE NMC -C 6-BIT PACKED 1440 BYTE RECORDS; -C -C 91-08-08 ART WICK - Modified to run on Intergraph Unix workstation. -C -C 93-05-26 SHIMOMURA -- Modified for new af77 compiler, which is a -C change from previous version of Green Hills compiler. -C -C 95-04-25 SHIMOMURA -- THE OPNL INTERGRAPH VERSION IS "REBLKFX2", -C SO I COPIED INTO "REBLKFX3" TO MAKE MODS WITHOUT -C AFFECTING OPNS. THESE MODS ARE FOR GENERATING MAP -C BACKGROUNDS WHICH HAVE DIFFERENCES IN THE "IFID"- -C HEADER. -C -C 96-04-30 SHIMOMURA -- REPROGRAM FROM INTERGRAPH TO CRAY -C 96-05-13 SHIMOMURA -- RENAMED TO REBLKFX4 BECAUSE I AM CHANGING -C THE INPUT RECORD SIZE FROM 512-BYTES TO 1920-BYTES -C 96-11-11 SHIMOMURA -- CORRECTING FOR ISCHED OF MULTI-PANELS -C -C 1999-07-01 KRISHNA KUMAR CONVERTED THIS CODE FROM CRAY TO IBM RS/6000 -C 1999-07-20 HENRICHSEN MODIFY TO USE DIRECT ACCESS I/O ON FAX OUTPUT -C FILE FOR RUNNINGON THE IBM SP. -C 1999-10-26 KRISHNA KUMAR COMMENTED A STATEMENT (NBLOCKOUT=NBLOCKOUT+1) -C WHICH WAS INCREMENTED TWICE (TYPO ERROR) WHICH CAUSED HAVOC ON -C MANY FAX GRAPHICS PROGRAMS WITH SUBTITLES & SUBSETS -C -C USAGE: CALL REBLKFX4(LUNIX6T, LUNIPK6,NUMRECFAX, -C 1 IISCHED,C1IFID,MYOPTNBITS,IERR) -C -C INPUT ARGUMENT LIST: -C NUMRECFAX RECORD NUMBER IN OUTPUT FAX FILE TO BEGIN WRITTING. -C I*8 IISCHED(8,60) - CNTR,S FAX SCHED CONTROLS; -C C*1 C1IFID(48) - CNTR,S FAX HEADER ID; -C I*8 MYOPTNBITS - FOR OPTIONS -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C I*8 IERR - RETURN CODE -C = 0; NORMAL RETURN -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C I*8 LUNIX6T - DSRN OF INPUT FILE CONTAINING ONE PRODUCT -C IN NMC EXTENDED 6BIT CODE; -C -C OUTPUT FILES: -C I*8 LUNIPK6 - DSRN OF OUTPUT FILE IN NMC 6BIT PACKED RLE; -C FT06F001 - INCLUDE IF ANY PRINTOUT -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C CALLS piksor() TO SORT ISCHED ITEMS -C CALLS PAK8TO6() TO CONCATENATE 6-BIT CODE. -C CALLS PADIFID() TO PAD THE IFID. -C calls sbytesccs() to quarter pack the iisched data -C -C ATTRIBUTES: -C LANGUAGE: IBM FORTRAN 90 -C MACHINE: IBM -C -C$$$ -C -C 22-MAY-1996/DSS -C ... -C -C . . . . . . D E F I N E C O N S T A N T S . . . . . . . . . - INTEGER NBYTPWRD - PARAMETER (NBYTPWRD=8) !... CRAY 8-BYTE INT -C ... PARAMETER (NBYTPWRD=4) !... INTERGRAPH I*4 WRD - - INTEGER INRECL !... INPUT RECL IN BYTES - PARAMETER (INRECL=1920) - - INTEGER INRECLINT !... 64 I*8 WRDS =1920/8 - PARAMETER (INRECLINT=INRECL/NBYTPWRD) - - INTEGER INRECLINT2 !...128 I*8 WRDS =2*64 - PARAMETER (INRECLINT2=2*INRECLINT) - - INTEGER INRECLINTP1 !... 65 I*8 WRDS =1+64 - PARAMETER (INRECLINTP1=1+INRECLINT) - - - INTEGER NMCSTDRECL !... = 1440 BYTES - PARAMETER (NMCSTDRECL=1440) - - INTEGER MAXEXTBYT - PARAMETER (MAXEXTBYT=1920) -C ... WHERE 1920 BYTES IS CAPACITY OF C1SPRED ARRAY -C ... WHICH IS EQUIV TO 1440-BYTES IN COMPRESSED 6-BITS, BUT -C ... EXTENDED TO 8-BITS PER 6-BIT ITEM. - - INTEGER MAXEXTINT !...240 I*8 WRDS =1920/8 - PARAMETER (MAXEXTINT=MAXEXTBYT/NBYTPWRD) -C -C - INTEGER MXSCHED - PARAMETER (MXSCHED=60) -C ... MAX NO. OF SUBSETS/INSETS DEFINED IN GIVEN IISCHED ARRAY. -C ... BEDIENT USES 59 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /XSCHEDS/NTOTSCHED,NSCHED_CUT,NSCHED_TITL,JOFSCH, - 1 NUMPANEL,JSCHED2D,JLINSRTED - INTEGER NTOTSCHED - INTEGER NSCHED_CUT - INTEGER NSCHED_TITL - INTEGER JOFSCH - INTEGER NUMPANEL - INTEGER JSCHED2D(8,MXSCHED) - INTEGER JLINSRTED(2,MXSCHED) - -C ... SUBSET DEFS IN JSCHED2D WHOSE POINTERS REMAIN TO -C ... BE DEFINED = F(STARTING SCAN LINE) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C CALL SEQUENCE -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C - INTEGER LUNIX6T !...Arg1: dsrn of input.x6t -C -C ... WHERE LUNIX6T IS DSRN OF LOGICAL UNIT WHERE INPUT FILE -C ... OF FAX.X6T RASTER DATA FORMATTED 6-BIT CODE IN 8-BIT -C ... BYTE IS TO BE READ IN FROM -C - INTEGER LUNIPK6 !...Arg2: dsrn of output.pk6 -C ... WHERE LUNIPK6 IS DSRN OF LOGICAL UNIT WHERE NMCSTDRECL-BYTE -C ... BLOCKED RECORD WILL BE OUTPUT. -C - INTEGER IISCHED(8,MXSCHED) !...Arg3: isched() -C ... WHERE IISCHED IS ACCEPTED AS ARG IN CALL SEQ -C ... AND IS IN THE SAME FORMAT AS IN CALL TO CNTR -C - CHARACTER*1 C1IFID(48) !...Arg4: IFID(48BYTES) -C - INTEGER MYOPTNBITS !...Arg5: option controls -C ... WHERE MYOPTNBITS ARE MY OWN OPTION BITS; -C ... DO NOT CONFUSE THESE WITH THE MAP(2) OPTION BITS -C - INTEGER IERR !...ARG6 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C - integer nsizdes - data nsizdes / 180 / !... 1440/8bytperword= 180 wrds - integer JSCHEDS(180) !... 1440/8bytesperword=180 wrds - CHARACTER*1 C1JSCHED(1440) - EQUIVALENCE (C1JSCHED(1),JSCHEDS(1)) - - integer noffset - integer nbitpgrp - integer nbitskip - integer ngrps2do - -C -C ... ... i was thinking to explicitly save what I need to -C ... ... preserve from one panel to next panel; -C ... ... but I cannot equivalence arrays in common - INTEGER INTSPRED(MAXEXTINT) - CHARACTER*1 C1SPRED(MAXEXTBYT) !... (1920) - EQUIVALENCE (INTSPRED(1),C1SPRED(1)) -C ... WHERE C1SPRED IS BIG ENOUGH FOR ONE OUTPUT FAX -C ... RECORD SPREAD OUT 6 BITS DATA PER 8-BIT BYTE. -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - INTEGER JOUTBF(180) !... I*4 WAS (360) - CHARACTER*1 C1OUTBF(NMCSTDRECL) - EQUIVALENCE (C1OUTBF(1),JOUTBF(1)) -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . Input is 1920-byte rec of .X6T data . . . . . . . - -C - INTEGER inbufA(INRECLINT) -C -C - CHARACTER*1 CINBUF(INRECL) - EQUIVALENCE (inbufA(1),CINBUF(1)) -C - INTEGER KHEADER(8) !... 8*8 = 64 -C ... WHERE REBLKFX4 WILL COPY padded IFID HEADER INTO FROM INPUT -C - CHARACTER*1 LHEADER(64) - EQUIVALENCE (KHEADER(1),LHEADER(1)) -C -C - - INTEGER IACC - integer iword1 - - INTEGER MSKLHS - DATA MSKLHS / X'FFFFFFFF00000000' / - INTEGER MSKRHS - DATA MSKRHS / X'00000000FFFFFFFF' / - - INTEGER MSKHI3BYT - DATA MSKHI3BYT / X'FFFFFF0000000000' / - INTEGER MAPSTARTFLAG - DATA MAPSTARTFLAG / X'FFFFFF0000000000' / -C -C . . . . . . . . . . . . logical switches . . . . . . . . . -C . . . . . . . . . . . . derived from MYOPTNBITS . . . . . . . - - LOGICAL LENTIREQQ !... ALL-IN-1 OR IN PANELS - LOGICAL LADD_ONQQ !... AT ENTRY TO ADD-ONTO EXISTG - LOGICAL LEAVE_OPENQQ !... AT EXIT TO LEAVE PROD OPEN - LOGICAL LSKIPFFQQ !... AT ENTRY NOT TEST FOR FF's - LOGICAL LRASAT65QQ !... RASTER STARTS @(65) OR (49) - LOGICAL LID_CALSQQ - LOGICAL LID_PADDQQ - LOGICAL LIDIN_CDCQQ - LOGICAL LIDIN_EBCQQ - LOGICAL LIDIN_ASCQQ - LOGICAL LIDOUT_CDCQQ - LOGICAL LIDOUT_EBCQQ - LOGICAL LIDOUT_ASCQQ - logical LSCHED_EXTDQQ - -C . . . . . . . . . . . . logical switches . . . . . . . . . -C - LOGICAL LSTARTING_PROD -C -C - LOGICAL LSTRIPTITLQQ - LOGICAL LEOMAP - LOGICAL LEOFIL - LOGICAL LINEMT - LOGICAL MANYBLA -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - CHARACTER*1 CONEBYT - - CHARACTER*1 NULL -C - CHARACTER*1 KENDMAP -C ... DATA KENDMAP / '33'X / - CHARACTER*1 KENDLIN -C ... DATA KENDLIN / '30'X / -C -C ... FOR COMPARING INPUT RECORD-HEADERS IN EXTENDED 6-BIT FRMT: - integer KSTART_IFID - data KSTART_IFID / X'3F3F3F3F00000000' / -C ... WHICH IS START OF MAP W/ IFID BLOCK HEADER - integer KSTART_TITL - data KSTART_TITL / X'3F3F3F3E00000000' / -C ... WHICH IS START STRIP-TITLES BLOCK HEADER - integer KSTART_SCHED - data KSTART_SCHED / X'3F3F3F3D00000000' / -C ... WHICH IS THE START ISCHEDS BLOCK HEADER - integer KEND_ALLMAPS - data KEND_ALLMAPS / X'3F3F3F3C00000000' / -C ... WHICH IS THE END-OF-ALL-MAPS BLOCK HEADER - - INTEGER KENDALLPKD - DATA KENDALLPKD / X'FFFFFC0000000000' / -C - integer K2MANY - DATA K2MANY / 50 / -C ... where K2MANY is limiting no. of blank scan lines to -C ... permit at end of map before holding up and looking -C ... ahead to see if it is indeed the end. -C - INTEGER ISPR -C ... WHERE ISPR COUNTS BYTES PUT INTO C1SPRED - INTEGER ISPSAV - INTEGER NRECIN -C ... WHERE NRECIN COUNTS THE 1920-BYTE PHYSICAL RECORDS INPUT - INTEGER NSCANLN - INTEGER NBLOCKOUT -C ... WHERE NBLOCKOUT COUNTS BLOCKS THIS SUBROUTINE HAS -C ... FILLED UP - LOGICAL LSTARTEDQQ !... HAS OUTPUT MAP STARTED ?? -C ... FOR START OF MAP FOUND FLAG - INTEGER NBLSAV -C - CHARACTER*1 C1IFIDCDC(48) - - - SAVE - print *, 't4', IISCHED -C -C * * * * * * * * * * -C -C . . . S T A R T . . . -C ... INITIALIZATION ... - IERR = 0 -C ... DEFINE BYTE CONSTANTS ... - - NULL = CHAR(0) - - KENDMAP = CHAR(51) !... = X'33' = END-OF-MAP - KENDLIN = CHAR(48) !... = X'30' = END-OF-A-LINE - - write(6,105)MYOPTNBITS - 105 format(1h ,'REBLKFX4: started version dated 20-Jul-1999;', - 1 ' MYOPTNBITS=hex ',Z16,/) - - IF((LUNIX6T .LE. 0) .OR. - 1 (LUNIX6T .GT. 99)) THEN - WRITE(6,115)LUNIX6T - 115 FORMAT(1H ,'REBLKFX4:FAILED ON BAD-VALUED INPUT DSRN ', - 1 'LUNIX6T =',I7) - IERR = 1 - GO TO 999 - ENDIF - - IF((LUNIPK6 .LE. 0) .OR. - 1 (LUNIPK6 .GT. 99)) THEN - WRITE(6,117)LUNIPK6 - 117 FORMAT(1H ,'REBLKFX4:FAILED ON BAD-VALUED OUTPUT DSRN ', - 1 'LUNIPK6 =',I7) - IERR = 2 - GO TO 999 - ENDIF - - REWIND LUNIX6T - -C ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... - - IF(BTEST(MYOPTNBITS,0)) THEN -C ... THERE IS A BIT AT THE (0) POSITION ... - LENTIREQQ = .FALSE. !... SO MUST DO SEVERAL PANELS - IF(BTEST(MYOPTNBITS,1)) THEN -C ... THERE IS A BIT AT THE (1) POSITION ... - LADD_ONQQ = .TRUE. !... ADD-ONTO EXISTING PRODUCT - ELSE -C ... THERE IS A ZERO AT THE (1) POSITION ... - LADD_ONQQ = .FALSE. !... SO INITIALIZE FOR NEW PROD - ENDIF - IF(BTEST(MYOPTNBITS,2)) THEN -C ... THERE IS A BIT AT THE (2) POSITION ... - LEAVE_OPENQQ = .TRUE. !... AT END LEAVE WITH PROD OPEN - ELSE -C ... THERE IS A ZERO AT THE (2) POSITION ... - LEAVE_OPENQQ = .FALSE. !... CLOSE AT END OF THIS PANEL - ENDIF - ELSE -C ... THERE IS A ZERO AT THE (0) POSITION ... - LENTIREQQ = .TRUE. !... COMPLETE ENTITY IN ONE - LADD_ONQQ = .FALSE. !... SO INITIALIZE AT START - LEAVE_OPENQQ = .FALSE. !... AND CLOSE AT END - ENDIF - - IF(BTEST(MYOPTNBITS,3)) THEN -C ... THERE IS A BIT AT THE (3) POSITION ... - LSKIPFFQQ = .FALSE. !... BIT3=1; TEST FOR FFFFFF - ELSE - LSKIPFFQQ = .TRUE. !... BIT3=0; DO NOT TEST FF - ENDIF - - IF(BTEST(MYOPTNBITS,4)) THEN -C ... THERE IS A BIT AT THE (4) POSITION ... - LRASAT65QQ = .FALSE. !...BIT4=1; RASTER STARTS @(49) - ELSE - LRASAT65QQ = .TRUE. !...BIT4=0; RASTER STARTS @(65) - ENDIF - - IF(BTEST(MYOPTNBITS,5)) THEN -C ... THERE IS A BIT AT THE (5) POSITION ... - LID_CALSQQ = .FALSE. !...BIT5=1; FETCH IFID FROM RECORD(1) - ELSE - LID_CALSQQ = .TRUE. !...BIT5=0; FETCH IFID FROM CALL SEQ - ENDIF - - IF(BTEST(MYOPTNBITS,6)) THEN -C ... THERE IS A BIT AT THE (6) POSITION ... - LID_PADDQQ = .FALSE. !...BIT6=1; IFID IS NOT PADDED - ELSE - LID_PADDQQ = .TRUE. !...BIT6=0; IFID IS PADDED - ENDIF - - - LIDIN_CDCQQ = .FALSE. - LIDIN_EBCQQ = .FALSE. - LIDIN_ASCQQ = .FALSE. - IF(BTEST(MYOPTNBITS,7)) THEN -C ... THERE IS A BIT AT THE (7) POSITION ... - LIDIN_CDCQQ = .FALSE. !...BIT7=1; INPUT IFID IS .NOT. CDC - IF(BTEST(MYOPTNBITS,8)) THEN -C ... THERE IS A BIT AT THE (8) POSITION & 1 AT (7) - LIDIN_EBCQQ = .TRUE. !...BIT8=1; INPUT IFID IS EBCDIC - ELSE -C ... THERE IS A ZERO AT THE (8) POSITION & 1 AT (7) - LIDIN_ASCQQ = .TRUE. - ENDIF - - ELSE -C ... THERE IS A ZERO AT THE (7) POSITION ... - LIDIN_CDCQQ = .TRUE. !...BIT7=0; INPUT IFID IS CDC DISP CODE - ENDIF - - - LIDOUT_CDCQQ = .FALSE. - LIDOUT_EBCQQ = .FALSE. - LIDOUT_ASCQQ = .FALSE. - IF(BTEST(MYOPTNBITS,9)) THEN -C ... THERE IS A BIT AT THE (9) POSITION ... - LIDOUT_CDCQQ = .FALSE. !...BIT9=1; OUTPUT IFID IS .NOT. CDC - IF(BTEST(MYOPTNBITS,10)) THEN -C ... THERE IS A BIT AT THE (10) POSITION & 1 AT (9) - LIDOUT_EBCQQ = .TRUE. !...BIT10=1; OUTPUT IFID IS EBCDIC - ELSE -C ... THERE IS A ZERO AT THE (10) POSITION & 1 AT (9) - LIDOUT_ASCQQ = .TRUE. - ENDIF - - ELSE -C ... THERE IS A ZERO AT THE (9) POSITION ... - LIDOUT_CDCQQ = .TRUE. !...BIT9=0; OUTPUT IFID IS CDC DISP - ENDIF - - - IF(BTEST(MYOPTNBITS,16)) THEN -C ... THERE IS A BIT AT THE (16) POSITION ... - LSCHED_EXTDQQ = .FALSE. !...BIT16=1; isched data is -C packed concatenated I*2 - ELSE - LSCHED_EXTDQQ = .TRUE. !...BIT17=0; isched data is -C I*2 extended into I*8 word - ENDIF - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... watch out for multi-panel calls in which I must add onto -C ... existing partial product instead of initializing ... - LEOMAP = .FALSE. - LEOFIL = .FALSE. - LSTARTEDQQ = .FALSE. -C ... FOR START OF MAP FOUND FLAG - LSTRIPTITLQQ = .FALSE. -C ... WHEN IN THE INNER LOOP PROCESSING EACH BYTE OF THE 6-BIT -C ... RLE ENCODED RASTER GRAPHCS, WHEN IN THE MAIN BODY OF -C ... THE MAP, LSTRIPTITLQQ == .F.; OTHERWISE, WHEN -C ... PROCESSING THE STRIP-TITLES, THEN LSTRIPTITLQQ == .T. - NRECIN = 0 -C ... WHERE NRECIN COUNTS THE 1920-BYTE PHYSICAL RECORDS INPUT - LSTARTING_PROD = .FALSE. - IF(.NOT. LADD_ONQQ) THEN !... initialize -C ... THIS IS EITHER AN ENTIRE PRODUCT IN ONE; OR -C ... THIS IS THE STARTING PANEL OF A MULTI-PANEL PRODUCT - LSTARTING_PROD = .TRUE. - NBLOCKOUT = 0 -C ... WHERE NBLOCKOUT COUNTS BLOCKS THIS SUBROUTINE HAS -C ... FILLED UP - NSCANLN = 0 -C - ISPR = 0 -C ... WHERE ISPR COUNTS BYTES PUT INTO C1SPRED - - JOFSCH = 2 -C ... WHERE POINTER INITIALIZED TO FIRST SCHED DATA IN JSCHED2D -C ... IS NOT =1 SINCE THAT'S WHERE THE FFFFFD WORD IS. - - NUMPANEL = 0 - - ELSE -C ... THIS IS AN ADD-ON PANEL OF A MULTI-PANEL PRODUCT ... - NUMPANEL = NUMPANEL + 1 - WRITE(6,FMT='(1H ,''reblkfx4: INITIALIZING FOR SECONDARY '', - 1 ''PANEL-'',I2,'' OF A MULTI-PANEL PRODUCT'', - 2 /1H ,7X,''TRANSLATED-SCHED-COUNTER, JOFSCH='',I8)') - A NUMPANEL,JOFSCH - ENDIF -C -C =============================================================== - IF(LSTARTING_PROD) THEN -C ... the ISCHED sorting and moving went into subr makfffd() - - call makfffd(iisched,LSCHED_EXTDQQ) - - ENDIF - -C =============================================================== -C -C - 200 CONTINUE - LCKPT = 200 - NRECIN = NRECIN + 1 - i = 1 - do i = 1,INRECLINT - inbufA(i) = 0 - enddo -C -C ... here comes first read of extended 6-bit file; -C ... expecting the start-of-map with IFIds ... - - READ(LUNIX6T,IOSTAT=IOERR,ERR=9405,END=900) inbufA -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - NRECIN = NRECIN + 1 - go to 9407 -C - 9405 continue - write (6,9406) ioerr,NRECIN - 9406 format(1h ,'REBLKFX4: reading LUNIX6T got IOSTAT error = ', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - 9407 continue -C -C -C ... WRITE(6,205) (inbufA(I),I=1,INRECLINT) - 205 FORMAT(1H ,8Z9.8) -C - IF(.NOT. LSKIPFFQQ) THEN -C ... SO TEST FOR START-OF-MAP FLAGS HERE ... -C ... THE FIRST RECORD MUST START WITH X'3F3F3F3F....' - iword1 = IAND(inbufA(1),MSKLHS) - - IF(iword1 .NE. KSTART_IFID) THEN -C ... ERROR: THIS FILE IS UNUSUAL. FIRST RECORD IS NOT MARKED -C ... WITH THE START-OF-MAP FLAG ... - GO TO 970 - ENDIF - ENDIF -C -C ... COMES HERE AFTER READING THE FIRST RECORD OF PASS(I) ... -C ... AND IF FIRST REC READ HAD STARTOFMAP FLAGS ... -C ... OR ELSE, IF TOLD TO SKIP THE LOOKING FOR STARTOFMAP FLAGS -C ... AND ASSUME THIS IS THE FIRST RECORD OF PASS(I) - IFR = 0 - LCKPT = 222 - - IF(LSTARTING_PROD) THEN - - DO I = 1,MAXEXTINT - INTSPRED(I) = 0 - ENDDO - ISPR = 64 !... TO ALLOW SPACE FOR IFID - - IF(.NOT. LID_CALSQQ) THEN -C ... TRY FOR IFID FROM RECORD 1 ... BUT ONLY IF STARTING PASS - IF(LID_PADDQQ) THEN -C ... EXTRACT THE 64-BYTE BYTE PADDED IFID HEADER ... - DO IK = 1,8 - KHEADER(IK) = inbufA(IK) - ENDDO -C - WRITE(6,225) (KHEADER(I),I=1,8) - 225 FORMAT(1H ,'KHEADER (padded) FROM INPUT FILE=', - 1 /1H , 6X,4Z17.16, - 2 /1H , 6X,4Z17.16 ) -C - ELSE -C ... IFID FROM RECORD 1 IS NOT PADDED ... -C ... EXTRACT THE 48-BYTE BYTE PADDED IFID HEADER ... - DO IK = 1,6 - KHEADER(IK) = inbufA(IK) - ENDDO -C - WRITE(6,2252) (KHEADER(I),I=1,6) - 2252 FORMAT(1H ,'KHEADER (NOT-padded) FROM INPUT FILE=', - 1 /1H , 6X,4Z17.16, - 2 /1H , 6X,2Z17.16 ) -C ... THEN I MUST PAD THIS 48-BYTE IFID ... -C ... CALL MAKIFID(C1IFID) ... removed - - ENDIF -C - ELSE -C ... COMES HERE IF I SHOULD OBTAIN IFID FROM CALL SEQ ARG -C ... is the given ifid in CDC display code???? - IF(LIDIN_ASCQQ) THEN -C ... TO CONVERT GIVEN IFID FROM ASCII TO CDC DISPLAY CODE, - NCHIFID = 48 - CALL ASC2CDC(NCHIFID,C1IFID,C1IFIDCDC,IRET_A2C) - - CALL PADIFID(C1IFIDCDC,LHEADER) - ELSE - - CALL PADIFID(C1IFID,LHEADER) - ENDIF -C - ENDIF -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (KHEADER, 8_8, 8_8) -#endif - KHEADER(1) = IAND(KHEADER(1),MSKRHS) - KHEADER(1) = IOR(KHEADER(1),KSTART_IFID) - DO I = 1,8 - INTSPRED(I) = KHEADER(I) - ENDDO - write(6,228)(INTSPRED(L),L=1,8) !... 8*8=64 - 228 format(1h ,'REBLKFX4: IFID in extended form in C1SPRED=', - 1 /1H , 6X,4Z17.16, - 2 /1H , 6X,4Z17.16 ) -#if defined (_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (INTSPRED, 8_8, 8_8) -#endif -C - ENDIF - - LINEMT = .TRUE. - MANYBLA = .FALSE. - NROWBLA = 0 - NRUNBLA = 0 -C - IF(LRASAT65QQ) THEN - IFR = 64 !... used to be 48 - ELSE - IFR = 48 - ENDIF - -C ... Since John Simmons' data has some leading blank -C ... scanlines before the Fax map, skip those before -C ... doing anything else. - NBEFORE = 0 - 230 CONTINUE -C ... we already have data in the work buffer CINBUF - LCKPT = 230 - - M1 = IFR + 1 - DO 244 ICC = M1,INRECL - CONEBYT = CINBUF(ICC) - IF(CONEBYT .EQ. KENDLIN) THEN - NBEFORE = NBEFORE + 1 - GO TO 244 - ENDIF - IF(CONEBYT .EQ. KENDMAP) GO TO 930 -C ... which was empty map ... -C ... OTHERWISE, HERE AT (ICC) IS VERY FIRST NON-BLANK -C ... SCANLINE ... - IFR = ICC - 1 -C ... but, can I have one starting EOLN??? - IF(NBEFORE .GT. 0) THEN - NBEFORE = NBEFORE - 1 - IFR = IFR - 1 - ENDIF - WRITE(6,241) NBEFORE - 241 FORMAT(1H ,'REBLKFX4:DISCARDED LEADING BLANK SCANS N=',I5) - GO TO 310 -C ... WHICH IS NORMAL WAY OUT OF THIS DISCARDING LOOP - 244 CONTINUE -C ... ENTIRE BUFFER WAS BLANK SCANLINES ... - do i = 1,INRECLINT - inbufA(i) = 0 - enddo -C - READ(LUNIX6T,IOSTAT=IOERR,ERR=246,END=940) inbufA -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - go to 248 -C - 246 continue - write (6,247) ioerr,NRECIN - 247 format(1h ,'REBLKFX4: at 246 read LUNIX6T got IOSTAT error= ', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - - 248 continue - - NRECIN = NRECIN + 1 - - IFR = 0 - GO TO 230 -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . outermost DO on reading input record at a time . . . -C . . . . where input record is 1920-byte .X6T data -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - 300 CONTINUE - LCKPT = 300 -C - 310 CONTINUE -C ... PROCESS JOHN SIMMONS' DATA HERE -C ... LOOK FOR END-OF-SCANLINE FOR RESETING IISCHED VRBLS -C ... LOOK FOR END-OF-MAP -C ... MOVE BYTES FROM CINBUF INTO C1SPRED - NBLSAV = NBLOCKOUT - ISPSAV = ISPR + 1 -C ... TO SAVE BYTE- AND BLOCK- POINTER TO START OF THE -C ... SCAN LINE TO COME. -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . Mid-level DO to move each byte, one byte at a time, -C . . . . from input buffer, CINBUF, to work buffer, C1SPRED; -C . . . . examining each byte for special flags -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - M1 = IFR + 1 - DO 377 IC = M1,INRECL - CONEBYT = CINBUF(IC) - IF(MANYBLA) GO TO 340 - IF(CONEBYT .EQ. KENDLIN) THEN - GO TO 315 - ELSE IF(CONEBYT .EQ. KENDMAP) THEN - LEOMAP = .TRUE. - GO TO 477 - ENDIF - LINEMT = .FALSE. - GO TO 320 -C - 315 CONTINUE -C ... COMES HERE ON END_OF_SCANLINE ... -C ... HERE TEST FOR SUCCESSIVE BLANK SCANLINES WAS ADDED - IF(LINEMT) THEN - NRUNBLA = NRUNBLA + 1 - IF(NRUNBLA .LE. K2MANY) GO TO 317 -C ... OTHERWISE, THIS RUN OF BLANKS EXCEEDS K2MANY LINES -C ... SO I WILL NOT OUTPUT ANY MORE UNTIL IT VERIFIES -C ... AS THE END OF MAP OR NOT - MANYBLA = .TRUE. - NROWBLA = 1 - GO TO 377 !... jump to end of DO; to get next byte - - ELSE -C ... THIS END-OF-LINE FOR A NON-BLANK SCANLINE - NRUNBLA = 0 - LINEMT = .TRUE. - ENDIF -C - 317 CONTINUE -C - IF(LSTRIPTITLQQ) THEN - IF((JOFSCH-1) .GT. NTOTSCHED) THEN - GO TO 319 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - ELSE -C ... .NOT. STRIP-TITLE, SO WITHIN MAIN PART OF MAP ... - IF((JOFSCH-1) .GT. NSCHED_CUT) THEN - GO TO 319 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - - ENDIF - - 319 CONTINUE -C - NSCANLN = NSCANLN + 1 - 320 CONTINUE -C ... COMES HERE TO STASH ONE BYTE INTO C1SPRED - IF((ISPR+1) .GT. MAXEXTBYT) THEN - LCKPT = 322 - - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 - - ENDIF -C - ISPR = ISPR + 1 - C1SPRED(ISPR) = CONEBYT - GO TO 377 -C - 340 CONTINUE -C ... COMES HERE IF MANYBLA IS .TRUE. MEANING WE HAVE -C ... HIT A BATCH OF BLANK SCAN LINES, WHICH MIGHT BE -C ... CLOSE TO THE END OF MAP. - IF(CONEBYT .EQ. KENDLIN) THEN - NROWBLA = NROWBLA + 1 - GO TO 377 - ENDIF -C - IF(CONEBYT .EQ. KENDMAP) GO TO 477 -C ... OTHERWISE, SHUCKS! IS NON-BLANK LINE AFTER SO MANY -C ... BLANKS. I WILL HAVE TO OUTPUT THOSE BLANKS WHICH I -C ... WAS MERELY COUNTING WITHOUT WRITING. - DO 366 IBL = 1,NROWBLA - IF(LSTRIPTITLQQ) THEN - IF((JOFSCH-1) .GT. NTOTSCHED) THEN - GO TO 344 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - ELSE -C ... .NOT. STRIP-TITLE, SO WITHIN MAIN PART OF MAP ... - IF((JOFSCH-1) .GT. NSCHED_CUT) THEN - GO TO 344 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ELSE -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - - CALL REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) - ENDIF - - ENDIF - - - 344 CONTINUE -C - NSCANLN = NSCANLN + 1 - IF((ISPR+1) .GT. MAXEXTBYT) THEN - LCKPT = 347 - - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 - - ENDIF - ISPR = ISPR + 1 - C1SPRED(ISPR) = KENDLIN - 366 continue -C ... which is ENDDO on IBL on blank rows ... . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . -C - MANYBLA = .FALSE. -C ... THEN RETURN TO NORMAL COURSE TO TRANSFER THE -C ... CURRENT NON-BLANK CONEBYT INTO C1SPRED - GO TO 320 -C - 377 CONTINUE -C . . . . enddo on ic byte at a time thru one input record . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ... WHEN IT FALLS OUT OF BOTTOM OF DO LOOP, -C ... I HAVE EXHAUSTED 1920-BYTE GIVEN-DATA ARRAY - IF(LEOFIL) GO TO 477 -C -C ... WHEN CINBUF EMPTIES, -C ... AND IF NOT E-O-F YET, THEN -C ... FETCH ANOTHER INPUT RECORD -C ------------------------------------------------ -C - READ(LUNIX6T,IOSTAT=IOERR,ERR=380,END=384) inbufA -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - -C ... ON GOOD RECORD READ, - NRECIN = NRECIN + 1 -C ... REINITIALIZE POINTERS FOR FRESH INPUT - IFR = 0 - GO TO 300 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... OTHERWISE, BAD READ, SO ... - 380 continue -C ... COMES TO 380 ON PARITY ERR ON READ JUST ABOVE ... - write (6,382) ioerr,NRECIN - 382 format(1h ,'REBLKFX4: AT 382 read LUNIX6T got IOSTAT error=', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - - 384 continue -C ... COMES TO 384 ON E-O-F ON READ JUST ABOVE ... - write (6,386) NRECIN - 386 format(1h ,'REBLKFX4: AT 386 read LUNIX6T, hit EOF ', - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - LEOFIL = .TRUE. - GO TO 477 -C -C - 477 CONTINUE -C ... COMES HERE OUT OF LOOP FOR NORMAL END OF PRODUCT -C ... WATCH OUT FOR ENDOFMAP-BYTE RECORD FOLLOWED BY STRIP TITLES; -C ... MUST DIFFERENTIATE BETWEEN ENDOFMAP AND ENDOFFILE - LEOMAP = .TRUE. - IF((ISPR+1) .GT. MAXEXTBYT) THEN - LCKPT = 478 - - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 - - ENDIF -C -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - IF(LEAVE_OPENQQ) THEN - WRITE(6,478)NBLOCKOUT,ISPR,NSCANLN - 478 FORMAT(1H ,'REBLKFX4: NOT-FINAL PANEL COMPLETED WITH ', - 1 'NBLOCKOUT=',I5,'; ISPR=',I6, - 2 /1H ,' NSCANLN=',I6, - 3 '; LEAVING WITH INCOMPLETE PRODUCT') - GO TO 999 !... JUMP TO EXIT . . . . . . . - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ISPR = ISPR + 1 - C1SPRED(ISPR) = KENDMAP -C -C ... OUTPUT THIS PARTIALLY FULL LAST DATA RECORD -C - LCKPT = 488 -C - CALL REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) - IF(IRET600 .NE. 0) GO TO 980 -C - WRITE(6,479) NRECIN,NSCANLN,NBLOCKOUT - 479 FORMAT(1H ,'REBLKFX4:NORMAL ENDING OF FAX PRODUCT', - 1 /1H ,'WAS FOUND IN LRECORD NO.',I4, - 2 /1H ,'AT END TOTAL SCAN_LINES=',I6,' NBLOCKOUTS=',I4) -C - IF(MANYBLA) THEN - WRITE(6,485) NROWBLA - 485 FORMAT(1H ,'REBLKFX4:DISCARDED TRAILING BLANK SCANS N=',I6) - ENDIF - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... must process the strip titles, just like preceding graphic -C ... data, before going on to FFFFFD-headed record - IF(.NOT. LSTRIPTITLQQ) THEN - - IF(LEOFIL) GO TO 490 -C -C ... AND IF NOT E-O-F YET, THEN -C ... FETCH ANOTHER INPUT RECORD -C ... EXPECT THE STRIP TITLES HERE -C ... BUT ONLY IF THIS IS AN ENTIRE PRODUCT FILE -C ... OF IF THIS IS THE LAST PANEL OF A MULTI-PANEL PROD -C - IF(.NOT. LEAVE_OPENQQ) THEN - READ(LUNIX6T,IOSTAT=IOERR,ERR=4852,END=4855) inbufA -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (inbufA, 8_8, INRECLINT) -#endif - GO TO 488 !... was good read ... - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C ... OTHERWISE, BAD READ, SO ... - 4852 continue -C ... COMES TO 4852 ON PARITY ERR ON READ JUST ABOVE ... - write (6,4854) ioerr,NRECIN - 4854 format(1h ,'REBLKFX4: AT 4854 read LUNIX6T got IOSTAT error=', - 1 i4, - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - go to 980 - - 4855 continue -C ... COMES TO 4855 ON E-O-F ON READ JUST ABOVE ... - write (6,486) NRECIN - 486 format(1h ,'REBLKFX4: AT 486 read LUNIX6T, hit EOF ', - 2 /1H ,' AFTER READING NRECIN=',I4,' RECORDS') - LEOFIL = .TRUE. - GO TO 490 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - 488 CONTINUE -C ... ON GOOD RECORD READ, - NRECIN = NRECIN + 1 -C ... IS IT THE STRIP-TITLES WHICH I AM EXPECTING??? - call byteswap(inbufA(1), 8, 1) - IWORD1 = IAND(inbufA(1),MSKLHS) - call byteswap(inbufA(1), 8, 1) - print *, IWORD1, KSTART_TITL, inbufA(1), MSKLHS - IF(IWORD1 .EQ. KSTART_TITL) THEN -C ... YES! HERE IS THE START OF THE STRIP TITLES ... - LSTRIPTITLQQ = .TRUE. - NSCANLN = 7400 !... SO THAT CURRENT LN WILL MATCH SCHED -C ... REINITIALIZE POINTERS FOR FRESH INPUT TITLES - IFR = 4 !... ptr to source - DO I = 1,MAXEXTINT - INTSPRED(I) = 0 - ENDDO - intspred(1) = kstart_titl !... block header titles - call byteswap(intspred(1), 8, 1) - ispr = 4 !... ptr to destination - GO TO 300 !... jump way back to do striptitl - - ELSE IF(IWORD1 .EQ. KSTART_SCHED) THEN - GO TO 490 - ELSE IF(IWORD1 .EQ. KEND_ALLMAPS) THEN - GO TO 490 - ENDIF - GO TO 490 - - ENDIF -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C -C ... OUTPUT THE FFFFFD-HEADED JSCHEDS ARRAY HERE ... -C ... IF INTERGRAPH VERSION, SWAP THE BYTES FIRST -C ... ELSE IF CRAY VERSION, COMPRESS THE JSCHED2D ARRAY -C ... BY QUARTER-PACKING THE ARRAY - 490 CONTINUE - do i = 1,nsizdes - JSCHEDS(i) = 0 - enddo - noffset = 0 - nbitpgrp = 16 - nbitskip = 0 - ngrps2do = 8*(ntotsched + 1) - print *, nsizdes, ngrps2do - print *,jsched2d(2,1), jsched2d(3,1),jsched2d(4,1),jsched2d(5,1) - print *,jsched2d(6,1), jsched2d(7,1),jsched2d(8,1),jsched2d(9,1) - print *,jsched2d(1,1), jsched2d(10,1),jsched2d(11,1) - print *, jsched2d,noffset,nbitpgrp,nbitskip - call sbytesccs(JSCHEDS,jsched2d,noffset,nbitpgrp,nbitskip, - 1 ngrps2do) -C - - NBLOCKOUT = NBLOCKOUT + 1 -C - NUMRECFAX = NUMRECFAX + 1 - print *, JSCHEDS(1), JSCHEDS(2), JSCHEDS(3), JSCHEDS(4) -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (JSCHEDS, 8_8, 180_8) -#endif - print *, JSCHEDS(1), JSCHEDS(2), JSCHEDS(3), JSCHEDS(4) - print *, 't1', NBLOCKOUT, NUMRECFAX - WRITE(LUNIPK6, REC=NUMRECFAX,ERR=920 )C1JSCHED - -C write(LUNIPK6,ERR=920)JSCHEDS -C -C ... WHICH OUTPUT THE FFFFFD-ARRAY -C -C ... OUTPUT THE FFFFFC-HEADED END_OF_ALL_MAPS ARRAY HERE ... - DO I = 1,180 - JOUTBF(I) = 0 - ENDDO -C JOUTBF(1) = KENDALLPKD !... END-OF-ALL-MAPS IN FILE - LCKPT = 495 - NUMRECFAX = NUMRECFAX + 1 -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (JOUTBF, 8_8, 180_8) -#endif - print *, 't2', NBLOCKOUT, NUMRECFAX - WRITE(LUNIPK6, REC=NUMRECFAX,ERR=920 )C1OUTBF - -C write(LUNIPK6,ERR=980)JOUTBF - -C - GO TO 999 -C -C * * * * * * * * * -C -C * * * * * * * * * -C - 900 CONTINUE -C ... COMES HERE IF END-OF-FILE ENCOUNTERED ON INPUT FILE - WRITE(6,905) LUNIX6T,LCKPT,NRECIN - 905 FORMAT(1H ,'REBLKFX4:HIT EOF ON FAX INPUT FILE DSRN=',I3, - 1 /1H ,' AFTER CHECKPOINT=', I5, - 2 ' ON LRECORD NO.', I4) - GO TO 980 -C -C - 920 CONTINUE -C ... COMES HERE IF WRITE PARITY ERROR ON WRITING TO -C ... UNIT = LUNIPK6 -C - WRITE(6,925) LUNIPK6,NBLOCKOUT - 925 FORMAT(1H ,'*** ERROR WHILE TRYING TO WRITE TO UNIT=', - 1 I3,/1H ,5X,'KBLOCK = ', I3) -C - GO TO 980 -C - 930 CONTINUE -C ... COMES HERE IF GIVEN AN ALL-BLANK MAP - WRITE(6,935) NBEFORE - 935 FORMAT(1H ,'REBLKFX4: GIVEN AN EMPTY MAP; NO FAX MAP.', - 1 /1H ,' BLANK SCAN_LINE COUNT =', I5) - IERR= 3 - GO TO 999 -C - 940 CONTINUE -C ... COMES HERE IF GIVEN EMPTY MAP, BADLY FORMATTED - WRITE(6,945) NBEFORE - 945 FORMAT(1H ,'REBLKFX4: GIVEN AN EMPTY MAP; NO FAX MAP.', - 1 /1H ,' BAD FORMAT. HIT PHYSICAL EOF. NBEFORE=',I5) - IERR = 4 - GO TO 999 -C - 966 CONTINUE -C ... COMES HERE IF SCANNED THRU FINAL REC W/O FINDING -C ... THE '33'X END... - WRITE(6,968) LUNIX6T,LCKPT,NRECIN - 968 FORMAT(1H ,'REBLKFX4:ERRONEOUS FORMAT IN FAXS FILE ON DSRN=', - A I3, - 1 /1H ,' NO HEX33 END-MARK FOUND IN FINAL REC NO.', - 2 I4) - GO TO 980 -C - 970 CONTINUE -C ... COMES HERE IF NO VALID 1ST FULLWORD ON FIRST RECORD - WRITE(6,975)inbufA(1) - 975 FORMAT(1H ,'REBLKFX4:** ERROR STOP. INVALID X6T FILE HEADER.', - 1 ' WORD(1)= X', Z17.16) -C - GO TO 980 -C - 980 CONTINUE -C - IERR = 1 - GO TO 999 - 999 CONTINUE - RETURN - END - SUBROUTINE REBLK600(LUNIPK6,NUMRECFAX,INTSPRED,C1SPRED,ISPR, - 1 C1OUTBF,JOUTBF,NBLOCKOUT,LSTARTEDQQ,IRET600) -C ... GIVEN: ONE FULL (USUALLY FULL) 1920-BYTE BIN -C ... (FULL, EXCEPT WHEN FLUSHING LAST DATA RECORD) -C ... TASK: COMPRESS INTO 1440-BYTES, THEN OUTPUT -C ... WHERE INTSPRED MUST EQUIVALENCED TO C1SPRED IN CALLER,S -C ... WHERE JOUTBF MUST EQUIVALENCED TO C1OUTBF IN CALLER,S - - INTEGER NBYTPWRD - PARAMETER (NBYTPWRD=8) !... CRAY 8-BYTE INT - - INTEGER NMCSTDRECL !... = 1440 BYTES - PARAMETER (NMCSTDRECL=1440) - - INTEGER MAXEXTBYT - PARAMETER (MAXEXTBYT=1920) - INTEGER MAXEXTINT !...240 I*8 WRDS =1920/8 - PARAMETER (MAXEXTINT=MAXEXTBYT/NBYTPWRD) - -C ... WHERE 1920 BYTES IS CAPACITY OF C1SPRED ARRAY -C ... WHICH IS EQUIV TO 1440-BYTES IN COMPRESSED 6-BITS -C ... EXTENDED TO 8-BITS PER 6-BIT ITEM. - - INTEGER LUNIPK6 - - INTEGER INTSPRED(MAXEXTINT) - CHARACTER*1 C1SPRED(MAXEXTBYT) -C ... where EQUIV (INTSPRED,C1SPRED) ... MUST BE IN CALLER,S - - INTEGER JOUTBF(180) !... I*4 WAS (360) - CHARACTER*1 C1OUTBF(NMCSTDRECL) -C ... WHERE JOUTBF MUST EQUIVALENCED TO C1OUTBF IN CALLER,S - - - INTEGER NBLOCKOUT - LOGICAL LSTARTEDQQ - INTEGER IRET600 - - CHARACTER*1 NULL - - SAVE - -C * * * * * * * * * - - IRET600 = 0 - NULL = CHAR(0) -C -C - 600 CONTINUE -C - IF(ISPR .LE. 0) GO TO 666 -C ... IF NOTHING WAS MOVED INTO C1SPRED, DON'T OUTPUT ANY -C ... WRITE(6,611) LCKPT - 611 FORMAT(1H ,'REBLKFX4 IS WRITING BLOCK AT CHECKPT=', I4) -C - IF(ISPR .LT. MAXEXTBYT) THEN -C ... ZERO REMAINDER OF BUFFER IF PARTIALLY FULL - MM1 = ISPR + 1 - DO I = MM1,MAXEXTBYT - C1SPRED(I) = NULL - ENDDO - ENDIF -C -C ... TO COMPRESS THE 6-BITS-IN-8-BITS INTO CONCATENATED -C ... 6-BITS, -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (INTSPRED, 8_8, MAXEXTINT) -#endif - CALL PAK8TO6(INTSPRED,JOUTBF) -C -C - NBLOCKOUT = NBLOCKOUT + 1 -C ... IF(NBLOCKOUT .LE. 1) THEN -C ... DUMP THE FIRST C1OUTBF TO SEE IF IT STARTS W/ FFFFFF -C ... WRITE(6,624)(JOUTBF(I),I=1,360) -C 624 FORMAT(1H ,'REBLKFX4: FIRST OUTPUT BUFFER CONTAINS ...', -C 1 /1H ,(8Z9.8)) -C ... ENDIF -C -C WHERE EACH FAX RECORD IS 1440 BYTES - - NUMRECFAX = NUMRECFAX + 1 -#if defined(_LITTLE_ENDIAN) - CALL SWAP_BYTES_IN_PLACE (JOUTBF, 8_8, 180_8) -#endif - print *, 't3', NBLOCKOUT, NUMRECFAX - WRITE(LUNIPK6, REC=NUMRECFAX,ERR=920 )C1OUTBF - -C WRITE(LUNIPK6,ERR=920)JOUTBF - -C - 666 CONTINUE -C - do i = 1,MAXEXTINT - intspred(i) = 0 - enddo - ISPR = 0 - GO TO 999 -C -C * * * * * * * * * -C - 920 CONTINUE -C ... COMES HERE IF WRITE PARITY ERROR ON WRITING TO -C ... UNIT = LUNIPK6 -C - WRITE(6,925) LUNIPK6,NBLOCKOUT - 925 FORMAT(1H ,'REBLK600: ERROR WHILE TRYING TO WRITE TO UNIT=', - 1 I3,/1H ,5X,'KBLOCK = ', I3) -C - GO TO 980 -C - 980 CONTINUE -C - IRET600 = 1 - GO TO 999 - - 999 CONTINUE - RETURN - END - - SUBROUTINE REBLK700(NSCANLN,NBLSAV,ISPSAV, - 1 NBLOCKOUT,ISPR) -C ... CHANGED FROM ASSIGNED GOTO 700 TO SUBR ... 30-APR1996/DSS -C * * * * * * * * * -C - INTEGER MXSCHED - PARAMETER (MXSCHED=60) -C ... MAX NO. OF SUBSETS/INSETS DEFINED IN GIVEN IISCHED ARRAY. -C ... BEDIENT USES 59 -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /XSCHEDS/NTOTSCHED,NSCHED_CUT,NSCHED_TITL,JOFSCH, - 1 NUMPANEL,JSCHED2D,JLINSRTED - INTEGER NTOTSCHED - INTEGER NSCHED_CUT - INTEGER NSCHED_TITL - INTEGER JOFSCH - INTEGER NUMPANEL - INTEGER JSCHED2D(8,MXSCHED) - INTEGER JLINSRTED(2,MXSCHED) - -C ... SUBSET DEFS IN JSCHED2D WHOSE POINTERS REMAIN TO -C ... BE DEFINED = F(STARTING SCAN LINE) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - INTEGER MAXEXTBYT - PARAMETER (MAXEXTBYT=1920) -C ... WHERE 1920 BYTES IS CAPACITY OF C1SPRED ARRAY -C ... WHICH IS EQUIV TO 1440-BYTES IN COMPRESSED 6-BITS -C ... EXTENDED TO 8-BITS PER 6-BIT ITEM. - - INTEGER NSCANLN,NBLSAV,ISPSAV,NBLOCKOUT,ISPR - - SAVE - - 700 CONTINUE -C ... COMES HERE ON END_OF_SCANLINE ... - JWHICH = JOFSCH - 1 - IF(JWHICH .GT. NTOTSCHED) THEN - GO TO 719 -C ... WHICH TESTED FOR END-OF-SCHED ENTRIES ... - ENDIF - -C ... WHAT ABOUT THE STRIP-TITLE VALUES UP THERE ABOVE 7400??? -C ... HOW ARE YOU EVER GOING TO MATCH AGAINS THOSE ??? -C ... BY RESETTING NSCANLN=7400 IN MAIN WHEN GOING BACK THRU -C ... THE STRIPTITLE RLE BLOCK - - -C ... OTHERWISE, A SCHED ENTRY STILL REMAINS UNADDRESSED - IF(NSCANLN .LT. JLINSRTED(1,JWHICH)) GO TO 717 -C ... OTHERWISE, CURRENT SCANLINE IS A MATCH OF THIS -C ... SCHED ENTRY'S STARTING SCANLINE ... -C ... SO PUT POINTERS IN PLACE OF STARTING SCAN LINE. - JPTR = JLINSRTED(2,JWHICH) - JSCHED2D(2,JPTR) = NBLSAV - IF(ISPSAV .GT. 0) THEN - JSCHED2D(3,JPTR) = ISPSAV - 1 - ELSE -C ... FAIL-SAFE TO PREVENT NEGATIVE-VALUED BYTE-POINTER ... - JSCHED2D(3,JPTR) = 0 - ENDIF -C ... WHERE BYTE POINTER DECREMENTED BECAUSE BEDIENT -C ... WANTS RELATIVE BYTE POINTER. - JOFSCH = JOFSCH + 1 - GO TO 700 -C ... WHICH GOES BACK TO SEE IF ANOTHER SCHED ENTRY -C ... EXISTS WITH SAME STARTING SCANLINE. -C - 717 CONTINUE -C ... COMES HERE ONLY IF SOME SCHED ENTRY REMAINS -C ... UNADDRESSED, AND IF THE CURRENT LINE DID NOT -C ... MATCH. -C ... SAVE POINTER TO THE START OF NEXT SCAN LINE. - NBLSAV = NBLOCKOUT - ISPSAV = ISPR + 2 - IF(ISPSAV .GT. MAXEXTBYT) THEN - ISPSAV = 1 - NBLSAV = NBLSAV + 1 - ENDIF -C - 719 CONTINUE - RETURN - END - - SUBROUTINE MAKFFFD(IISCHED,LSCHED_EXTDQQ) -C ... GIVEN: (1.)IISCHED ARRAY DEFINING EACH SUBSET AND REAL-INSET -C ... AND STRIP-TITLE-INSET IN THIS PRODUCT -C ... (2.)LSCHED_EXTDQQ -- LOGICAL SWITCH TO TELL ME -C WHICH OF TWO DATA FORMATS IS ISCHED IN: -C == .T.; EACH 16-BIT "WORD" IS IN THE LOW-ORDER -C 16-BITS OF EACH 64-BIT INTEGER; -C == .F.; THE 16-BIT "WORDS" ARE CONCATENATED -C ... RESULTS: INTO WORK ARRAYS AND COUNTERS IN /XSCHEDS/ -C -C ... WHAT DOES THIS DO? -C ... (A.) ZEROS THE JSCHED2D WORKSPACE FOR THE FFFFFD-HEADED -C ... ISCHED TRAILER-RECORD ARRAY; -C ... (B.) COPIES THE GIVEN IISCHED DATA INTO JSCHED2D -C ... WITH DATA STILL IN THE EXTENDED FORMAT; -C ... WHY EVEN COPY IT THEN??? BECAUSE I WILL CHANGE -C ... CONTENTS, AND I DO NOT WANT TO CHANGE THE GIVEN; -C ... (C.) CREATES AND SORTS A SORTKEY ARRAY: -C ... CONTAINING THE STARTING SCANLINE J-VALUE -C ... AND A POINTER INTO THE JSCHED2D-ARRAY -C (DOES NOT REARRANGE THE DATA WITHIN JSCHED2D.) -C ... -C ... -C ... THAT IS ALL IT DOES. IT IS NOT NOT NOT READY TO GO. -C ... THE STARTING SCANLINE NUMBER HAS NOT BEEN CONVERTED TO -C ... A POINTER BY BLOCK NUMBER AND BYTE NUMBER WITHIN BLOCK. -C ... SINCE THE CRAY DOES NOT HAVE INTEGER*2, THE RESULTING -C ... JSCHED2D ARRAY IS AN EXTENDED VERSION IN WHICH EACH -C ... VALUE IS IN THE LOW-ORDER 16-BITS OF EACH 64-BIT WORD; -C ... SO IT STILL NEEDS A CALL SBYTESCCS() TO PACK THE I*2 DATA - -C ... WHY DO THIS? -C ... SOMEWHERE ELSE IS THE LOGIC FOR CONVERTING THE SCANLINE -C ... NUMBER INTO A POINTER BY BLOCK NUMBER AND BYTE NUMBER. -C ... WHEN IT DOES THAT, IT WILL BE EASIER TO DO THAT IF THE -C ... SCANLINE NUMBERS ARE SORTED. -C ================================================================ -C ... SHOULD I SORT THE POINTERS ONLY AND LEAVE THE GIVEN -C ... ITEM SEQUNCE INTACT??? (Yes!) - -C ... DOES BEDIENT CHANGE THE ARRANGEMENT? (No!) -C ... SEE EXAMPLE SOMEWHERE!!!! (See "isched.doc") -C ... -C ... I looked at an FT01 file and the isched 8-iiword sets -C ... are not sorted; they are in their original given sequence -C ... so I should sort only the pointer array. So the logic -C ... in this subroutine must be changed. (1-May-1996/dss) -C -C ================================================================ -C ... I SPLIT THE ISCHED MILLING ARND INTO A SUBR. -C ... THE ISCHED DATA IS ESSENTIALLY 16-BIT I*2 WORD ORIENTED -C ... HOW CAN I DO THIS IN THE I*8 WORD OF CRAY? -C ... THE FFFFFD-HEADED TRAILER RECORD IS NOT 6-BIT PACKED; -C ... IT IS I*2 JSCHEDS(720) = 720 I*2 INTEGER VALUES -C ... IN SETS OF 8 I*2 INTEGERS PER LOGICAL MAP SUBSET; -C ... IF, ON THE CRAY, WE WORK IN A SPACE OF I*8 JSCHEDS(720) -C ... IN WHICH THE DATA IS IN THE LOW-ORDER 16-BITS OF EVERY -C ... LONGWORD, THEN ONLY AT THE VERY END, JUST BEFORE OUTPUT -C ... I COULD QUARTER-PACK IT. -C -C ... INITIALIZE FFFFFD-HEADED RECORD HERE -C ... SORT SUBSET_DEFINITIONS BY THEIR STARTING SCANLINE; -C ... COUNT THE NUMBER OF SUBSETS; -C ... INITIALIZE FLAGS. - - -C - INTEGER MXSCHED - PARAMETER (MXSCHED=60) -C ... MAX NO. OF SUBSETS/INSETS DEFINED IN GIVEN IISCHED ARRAY. -C ... BEDIENT USES 59 - - INTEGER LIMITSETS - PARAMETER (LIMITSETS=MXSCHED-2) -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - COMMON /XSCHEDS/NTOTSCHED,NSCHED_CUT,NSCHED_TITL,JOFSCH, - 1 NUMPANEL,JSCHED2D,JLINSRTED - INTEGER NTOTSCHED - INTEGER NSCHED_CUT - INTEGER NSCHED_TITL - INTEGER JOFSCH - INTEGER NUMPANEL - INTEGER JSCHED2D(8,MXSCHED) - INTEGER JLINSRTED(2,MXSCHED) - -C ... SUBSET DEFS IN JSCHED2D WHOSE POINTERS REMAIN TO -C ... BE DEFINED = F(STARTING SCAN LINE) - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - - INTEGER IISCHED(8,MXSCHED) -C ... WHERE IISCHED IS GIVEN AS ARG1 -C ... AND IS IN THE SAME FORMAT AS IN CALL TO CNTR - LOGICAL LSCHED_EXTDQQ !... ARG2 - - - INTEGER ISORKEY(MXSCHED) -C - INTEGER KIISCHED(8) -C ... WHERE KIISCHED IS A CANNED SUBSET DEF. IN CASE -C ... THE GIVEN IISCHED IS BAD - - DATA KIISCHED / 150, 0, 0,1200, X'8000',X'D800', 0,0 / -C ... WHERE DUMMY KIISCHED USES SUBSET NO. 150 (MY CHECKOUT) - - INTEGER I8HOLD(2) - CHARACTER*1 C1HOLD(16) - EQUIVALENCE (I8HOLD(1),C1HOLD(1)) - - INTEGER IPAIR(2) - INTEGER IIWRDEXT(8) - INTEGER MSKLHS - DATA MSKLHS / X'FFFFFFFF00000000' / - INTEGER MSKRHS - DATA MSKRHS / X'00000000FFFFFFFF' / - - INTEGER JLINE_VAL -C - SAVE -C -C . . . S T A R T . . . . . . . . . . . . . . . . . . . . . . -C - write(6,151)LSCHED_EXTDQQ - 151 format(1h ,'reblkfx4::makfffd: entered with LSCHED_EXTDQQ = .', - 1 L1,'.') - - NTOTSCHED = 0 - - DO J = 1,MXSCHED !... MXSCHED=60 - ISORKEY(J) = 0 - ENDDO - - DO J = 1,MXSCHED - JLINSRTED(1,MXSCHED) = 0 - JLINSRTED(2,MXSCHED) = 0 - ENDDO - -C -C ... INTEGER JSCHED2D(8,90) - DO J = 1,MXSCHED !... MXSCHED=60 - DO I = 1,8 - JSCHED2D(I,J) = 0 - ENDDO - ENDDO -C - JSCHED2D(1,1) = X'FFFF' - JSCHED2D(2,1) = X'FD00' -C - NTOTSCHED = 0 - IF(LSCHED_EXTDQQ)THEN -C ... M2 IS SET TO ENSURE THERE WILL BE A ZERO-VALUE WITHIN -C ... MXSCHED-SIZED ARRAYS BEYOND LAST NON-ZERO ITEM - M2 = MXSCHED - 2 - DO JJ = 1,M2 - IF((IISCHED(1,JJ) .EQ. 0) .AND. - 1 (IISCHED(2,JJ) .EQ. 0)) THEN - GO TO 154 - ENDIF - JSTARTLINE = IISCHED(2,JJ) - IF(JSTARTLINE .GE. 8200) THEN -C ... BEYOND FAX STRIP TITLES INTO AFOS ... -C ... AND I AM NOT DOING AFOS, SO JUMP OUT - GO TO 154 - ENDIF - -C ... OTHERWISE, THIS ITEM IS NOT THE END OF ISCHED YET - NTOTSCHED = NTOTSCHED + 1 - - DO II = 1,8 - JSCHED2D(II,JJ+1) = IISCHED(II,JJ) - ENDDO - - IACC = JSTARTLINE !... J-VAL OF STARTING SCANLN - IACC = ISHFT(IACC,32) !... SORT KEY IN HI-ORDER HAFWD - JPTR = JJ + 1 !... PTR INTO JSCHED2D ARRAY - ISORKEY(JJ) = IOR(IACC,JPTR) !... /SORTKEY/PTR/ - ENDDO - GO TO 154 - -C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - ELSE -C ... COMES HERE IF LSCHED_EXTDQQ == .F. -C ... DATA WITHIN IISCHED(8,J) IS REALLY CONCATENATED I*2 WORDS - NTOTSCHED = 0 - DO JJ = 1,15 !... 60/4SETS PER 8I*8 = 15 - DO II = 1,8,2 !... 2 I*8 INTS == 8 I*2 WORDS -C ... FETCH NEXT TWO I*8 WORDS OUT OF IISCHED() ARRAY ... - I8HOLD(1) = IISCHED(II,JJ) - I8HOLD(2) = IISCHED(II+1,JJ) - IACC = IAND(I8HOLD(1),MSKLHS) - IF(IACC .EQ. 0) THEN -C ... THIS IS THE LAST DATA ITEM TO TRANSFER ... - GO TO 154 - ENDIF - - IF((NTOTSCHED+1) .GT. LIMITSETS) THEN - GO TO 154 - ENDIF - - DO IDE = 1,8 - IBY1 = 2*(IDE-1) + 1 - IBY2 = IBY1 + 1 - IPAIR(1) = MOVA2I(C1HOLD(IBY1)) - IPAIR(1) = ISHFT(IPAIR(1),8) - IPAIR(2) = MOVA2I(C1HOLD(IBY2)) - IIWRDEXT(IDE) = IOR(IPAIR(1),IPAIR(2)) - ENDDO -C ... NOW NON-ZERO 8-WORD SET IN (IIWRDEXT(I),I=1,8) -C ... JUST LIKE A SET FROM EXTENDED IISCHED ... - JSTARTLINE = IIWRDEXT(2) - IF(JSTARTLINE .GE. 8200) THEN -C ... BEYOND FAX STRIP TITLES INTO AFOS ... -C ... AND I AM NOT DOING AFOS, SO JUMP OUT - GO TO 154 - ENDIF - -C ... OTHERWISE, THIS ITEM IS NOT THE END OF ISCHED YET - NTOTSCHED = NTOTSCHED + 1 - - DO II2 = 1,8 - JSCHED2D(II2,NTOTSCHED+1) = IIWRDEXT(II2) - ENDDO - - IACC = JSTARTLINE !... J-VAL OF STARTING SCANLN - IACC = ISHFT(IACC,32) !... SORT KEY IN HI-ORDER HAFWD - JPTR = NTOTSCHED + 1 !... PTR INTO JSCHED2D ARRAY - ISORKEY(NTOTSCHED) = IOR(IACC,JPTR) -C !... /SORTKEY/PTR/ - ENDDO - ENDDO - GO TO 154 - - ENDIF -C - 154 CONTINUE -C ... ALL SUBSET DEFINITIONS HAVE BEEN COPIED INTO JSCHED2D -C ... AND NTOTSCHED CONTAINS THE COUNT OF SUBSETS/INSETS. - - WRITE(6,157) NTOTSCHED - 157 FORMAT(1H ,'REBLKFX4:IN GIVEN IISCHED, NO. OF _SETS=',I3) -C - IF(NTOTSCHED .LE. 0) THEN -C ... BAD IISCHED WAS GIVEN; BUT LET'S TRY TO CONTINUE -C ... WITH A CANNED IISCHED FOUND IN KIISCHED - WRITE(6,159) - 159 FORMAT(1H ,'REBLKFX4:-W- BAD IISCHED. PROCEEDING ANYWAY.') - DO I = 1,8 - JSCHED2D(I,2) = KIISCHED(I) - ENDDO -C - JSCHED2D(1,3) = 0 - JSCHED2D(2,3) = 0 -C - JLINSRTED(1,1) = KIISCHED(2) !... JLINE VAL - JLINSRTED(2,1) = 2 !... PTR -C - NTOTSCHED = 1 - NSCHED_CUT = 1 - GO TO 177 - ENDIF -C -C ... IF ONLY ONE GOOD ITEM IN IISCHEDS HAS BEEN MOVED, THEN -C ... BYPASS THE SORT - IF(NTOTSCHED .LE. 1) THEN - JSCHED2D(1,3) = 0 - JSCHED2D(2,3) = 0 -C - JLINSRTED(1,1) = JSCHED2D(2,2) !... JLINE VAL - JLINSRTED(2,1) = 2 !... PTR -C - NTOTSCHED = 1 - NSCHED_CUT = 1 - GO TO 177 - ENDIF - -C ... OTHERWISE,TO SORT THE SUBSET DEFS BY STARTING SCAN LINE, - - CALL PIKSOR(ISORKEY,NTOTSCHED) - - WRITE(6,165) NTOTSCHED - 165 FORMAT(1H ,'REBLKFX4::MAKFFFD: DID PIKSOR. NTOTSCHED=',I4) -C - NSCHED_CUT = 0 - NSCHED_TITL = 0 - DO IS = 1,NTOTSCHED - IACC = ISORKEY(IS) - JPTR = IAND(IACC,MSKRHS) - JLINE_VAL = ISHFT(IACC,-32) - JLINSRTED(1,IS) = JLINE_VAL - JLINSRTED(2,IS) = JPTR !... PTR - IF(JLINE_VAL .LT. 7400) THEN - NSCHED_CUT = NSCHED_CUT + 1 - ELSE IF(JLINE_VAL .LT. 8200) THEN - NSCHED_TITL = NSCHED_TITL + 1 - ENDIF - ENDDO -C - 177 CONTINUE - WRITE(6,178)NTOTSCHED,NSCHED_CUT,NSCHED_TITL - 178 FORMAT(1H ,'REBLKFX4::MAKFFFD: EXITING WITH NTOTSCHED=',I4, - 1 /1H ,' NSCHED_CUT=',I4,'; NSCHED_TITL=',I4) - IF(NTOTSCHED .GT. 0) THEN - WRITE(6,1781) - 1781 FORMAT(1H ,' LINUM JOFSHD -- FROM JLINSRTED(1,J),(2,J):') - WRITE(6,1782)(JLINSRTED(1,J),JLINSRTED(2,J),J=1,NTOTSCHED) - 1782 FORMAT((2I6)) - WRITE(6,1783) - 1783 FORMAT(1H ,' ..... ..... . . . END OF JLINSRTED . . .') - ENDIF - - RETURN - END diff --git a/util/sorc/trpsfprv.fd/shftl.f b/util/sorc/trpsfprv.fd/shftl.f deleted file mode 100755 index 46e3dbeec2..0000000000 --- a/util/sorc/trpsfprv.fd/shftl.f +++ /dev/null @@ -1,4 +0,0 @@ - integer function SHFTL(iv,ish) - SHFTL=ISHFT(iv,ish) - return - end diff --git a/util/sorc/trpsfprv.fd/shftr.f b/util/sorc/trpsfprv.fd/shftr.f deleted file mode 100755 index 45c32cf6bf..0000000000 --- a/util/sorc/trpsfprv.fd/shftr.f +++ /dev/null @@ -1,7 +0,0 @@ - integer function SHFTR(iv,ish) - print 194,iv,ish,-ish - 194 format('SHFTR CALLED WITH ',3z20) - ir=-ish - SHFTR=ISHFT(iv,-ir) - return - end diff --git a/util/sorc/trpsfprv.fd/stream3.f b/util/sorc/trpsfprv.fd/stream3.f deleted file mode 100755 index 08bf7d5e37..0000000000 --- a/util/sorc/trpsfprv.fd/stream3.f +++ /dev/null @@ -1,67 +0,0 @@ - SUBROUTINE stream3(mbars,itime,lupgb,lupgi,F3) -c subroutine to accept pressure level (mbars), -c grib unit number (lupgb), and grib index unit -c number (lupgi) and read u, and v wind fields, -c at mbars, and calculate stream function. Stream -c function is stored in F3 and returned to caller. -c The Grib fields on lupgb MUST be grib type 3 (360x181) -c fields. These are output automatically by the NCEP -c AVN forecast model - parameter(im=360,jm=181,km=16) - dimension F3(im,jm) - dimension iprs(km) - integer kpds(100), kgds(100) - integer jpds(100), jgds(100) - logical lbms(im*jm), luv, ldz, lps - real u(im,jm), v(im,jm), psi(im,jm),chi(im,jm) - data iromb/0/,maxwv/126/,idrti/0/,imaxi/360/,jmaxi/181/ - data idrto/0/,imaxo/360/,jmaxo/181/,kmax/1/ - data iprime/0/,iskipi/0/,jskipi/0/,kspipi/0/ - data iskipo/0/,jskipo/0/,kspipo/0/,jcpu/0/ - luv = .FALSE. - ldz = .FALSE. - lps = .TRUE. - ijm = im * jm - fim = im - lskip=-1 - k=0 - do jj = 1, 100 - jpds(jj) = -1 - enddo - do jj = 1, 20 - jgds(jj) = -1 - enddo - jpds(5) = 33 - jpds(6) = 100 - jpds(7) = mbars - jpds(14)=itime - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,u,iret) - if(iret.ne.0) then - print *, ' iret =', iret - print *, ' k =', k - endif - jpds(5) = 34 - jpds(6) = 100 - jpds(7) = mbars - call getgb(lupgb,lupgi,ijm,-1,jpds,jgds,ndata, - & lskip,kpds,kgds,lbms,v,iret) - if(iret.ne.0) then - print *, ' iret =', iret - print *, ' k =', k - endif - call SPTRUNV(IROMB,MAXWV,IDRTI,IMAXI,JMAXI, - & IDRTO,IMAXO,JMAXO,KMAX, - & IPRIME,ISKIPI,JSKIPI,KSKIPI, - & ISKIPO,JSKIPO,KSKIPO,JCPU,U,V, - & LUV,GRIDUO,GRIDVO,LDZ,GRIDDO,GRIDZO, - & LPS,chi,psi) - print 109,k - 109 format(' K is ',i9) - do j=1,jm - do k=1,im - f3(k,j)=psi(k,j) - end do - end do - return - end diff --git a/util/sorc/trpsfprv.fd/w3fp02_fake.f b/util/sorc/trpsfprv.fd/w3fp02_fake.f deleted file mode 100755 index ae67a53b76..0000000000 --- a/util/sorc/trpsfprv.fd/w3fp02_fake.f +++ /dev/null @@ -1,1110 +0,0 @@ - SUBROUTINE W3FP02(ID,KTITLE,N) -C 15-MAY-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: W3FP02 NMC TITLING PROGRAM -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 96-05-17 -C -C ABSTRACT: GENERATES A TITLE FROM THE GIVEN DATA-FIELD IDENTIFIER -C FORMULATED ACCORDING TO NMC O.N. 84. THE RESULTING TITLE USES -C SPACE UP TO 328 CHARACTERS (41 I*8 WORDS). -C -C PROGRAM HISTORY LOG: -C YR-MO-DA ORIGINAL AUTHOR(S)'S NAME: ?? -C 83-10-12 S. COBBS -- ADDED SUBR VALUE (RENAMED TO FP02_VAL) -C 85-01-25 D. MILLER -- ADDED SUBR TCHECK (RENAMED TO DT_UNITS) -C YR-MO-DA S. COBBS -- MODIFIED TO RUN ON HDS-9040 -C 95-01-31 ???? -- LAST MODIFIED OPNL VERSION -C 96-05-17 SHIMOMURA -- MODIFIED TO RUN ON CRAY -C USAGE: CALL W3FP02 (ID, KTITLE, N) -C -C INPUT ARGUMENT LIST: -C 'ID' - INTEGER*8 12-WORD FIELD-IDENTIFIER DESCRIBING THE DATA -C (IN THIS CRAY VERSION THE 32-BIT DATA WORDS ARE -C POSITIONED IN THE LOW-ORDER HALF OF THE CRAY -C 64-BIT INTEGERS.) -C ' N' - INTEGER*8 NUMBER OF LINES OF OUTPUT DESIRED -C = 1 FIRST LINE (11 I*8 WORDS): THE PLAIN ENGLISH -C TITLE; -C (88-BYTE LINE-1 STARTS AT KTITLE(1)); -C -C = 2 FIRST LINE PLUS SECOND LINE; -C SECOND LINE (16 I*8 WORDS): DECIMAL VALUES -C OF THE PARAMETERS; -C (128-BYTE LINE-2 STARTS AT KTITLE(12)); -C -C = 3 FIRST LINE + SECOND LINE + THIRD LINE -C THIRD LINE (14 I*8 WORDS): HEXADECIMAL DUMP -C OF THE 12 WORD FIELD IDENTIFIER; -C (112-BYTE LINE-3 STARTS AT KTITLE(55)); -C NOTE: THERE ARE NO LINE DELIMITERS TO SEPARATE -C THE LINES. -C OUTPUT ARGUMENT LIST: -C 'KTITLE' - INTEGER*8 KTITLE(41) -C ARRAY TO CONTAIN THE RESULTING TITLE IN ASCII -C -C REMARKS: -C SEE NMC OFFICE NOTE 84 FOR DATA FIELD IDENTIFIER SPECS -C -C SUBPROGRAMS CALLED: -C UNIQUE: FP02_LN1,FP02_LN2,FP02_LN3,FP02_VAL,DT_UNITS -C -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C - integer ID(12) - integer KTITLE(41) !... 41 CRAY I*8 == 82 IBM I*4 -C ... integer KTITLE(82) - - INTEGER KLANKS - CHARACTER*8 CLANKS - EQUIVALENCE (KLANKS,CLANKS) - DATA CLANKS / ' ' / -C ...12345678... -C - SAVE -C - - DO I = 1,11 - KTITLE(I) = KLANKS - ENDDO - - CALL FP02_LN1(ID,KTITLE) - - IF(N .GT. 1) GO TO 10 - RETURN -C - 10 CONTINUE - - DO I = 12,27 - KTITLE(I) = KLANKS - ENDDO - - CALL FP02_LN2(ID,KTITLE) - - IF(N.GT.2) GO TO 20 - RETURN -C - 20 CONTINUE - - DO I = 28,41 - KTITLE(I) = KLANKS - ENDDO - - CALL FP02_LN3(ID,KTITLE) - - RETURN - END - - SUBROUTINE FP02_LN1(ID,JTITLE) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: FP02_LN1 CREATES THE FIRST LINE OF TITLE -C AUTHOR: COBBS,S ORG: W/NMC42 DATE: 85-01-25 -C -C ABSTRACT: CREATES THE FIRST LINE OF THE TITLE FROM THE -C ID WORDS. -C -C -C USAGE: CALL FP02_LN1 (ID,JTITLE) -C -C -C - - - - - - - - - I N P U T V A R I A B L E S - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C ID ID WORDS ARGUMENT -C -C -C - - - - - - - - - O U T P U T V A R I A B L E S - - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C JTITLE TITLE ARRAY ARGUMENT -C -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C -C -C . . . . . . . . . . . . . - INTEGER ID(12) - INTEGER JTITLE(41) -C . . . . . . . . . . . . . - INTEGER DTIME_CODE - INTEGER JKEEP(15) - - INTEGER KTITLE(41) - CHARACTER*328 CTITLE - EQUIVALENCE (KTITLE(1),CTITLE) - - integer MASK(8) -C - DATA MASK(1)/ X'0000000F' / - DATA MASK(2)/ X'000000FF' / - DATA MASK(3)/ X'00000FFF' / - DATA MASK(4)/ X'0000FFFF' / - DATA MASK(5)/ X'000FFFFF' / - DATA MASK(6)/ X'00FFFFFF' / - DATA MASK(7)/ X'0FFFFFFF' / - DATA MASK(8)/ X'FFFFFFFF' / - - - INTEGER TEMPR - CHARACTER*1 ISTORE(8) - EQUIVALENCE (TEMPR,ISTORE(1)) - - INTEGER C1,C2,E1,E2,S1,S2,Q,M,G -C - CHARACTER*8 INUM1 - CHARACTER*8 INUM2 - CHARACTER*8 KWRITE(3) - character*6 QWRITE -C - CHARACTER*1 LTEMP(7) - CHARACTER*1 MTEMP(7) - - INTEGER NSHIFT - INTEGER NMASK - INTEGER NID -C -C -C IDWORDS: MASK CONTROL -C -C . . . . . . . . . . . . . . . . . . . - INTEGER SHFMSK(15) - - DATA SHFMSK( 1)/X'00020100'/ - DATA SHFMSK( 2)/X'08020700'/ - DATA SHFMSK( 3)/X'10020700'/ - DATA SHFMSK( 4)/X'18020700'/ - DATA SHFMSK( 5)/X'08050200'/ - DATA SHFMSK( 6)/X'00020200'/ - DATA SHFMSK( 7)/X'08050400'/ - DATA SHFMSK( 8)/X'00020400'/ - DATA SHFMSK( 9)/X'1C010300'/ - DATA SHFMSK(10)/X'08030100'/ - DATA SHFMSK(11)/X'08030300'/ - DATA SHFMSK(12)/X'14030100'/ - DATA SHFMSK(13)/X'00020700'/ - DATA SHFMSK(14)/X'10020800'/ -C -C . . . . . . . . . . . . . . . . . . . -C MONTH TABLE. -C - CHARACTER*4 CMONTH(12) - DATA CMONTH( 1)/ ' JAN'/ - DATA CMONTH( 2)/ ' FEB'/ - DATA CMONTH( 3)/ ' MAR'/ - DATA CMONTH( 4)/ ' APR'/ - DATA CMONTH( 5)/ ' MAY'/ - DATA CMONTH( 6)/ ' JUN'/ - DATA CMONTH( 7)/ ' JUL'/ - DATA CMONTH( 8)/ ' AUG'/ - DATA CMONTH( 9)/ ' SEP'/ - DATA CMONTH(10)/ ' OCT'/ - DATA CMONTH(11)/ ' NOV'/ - DATA CMONTH(12)/ ' DEC'/ -C -C . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . -C REFERENCE TABLE FOR SNAME. -C - INTEGER S_CODE(17) - DATA S_CODE(1)/1/ - DATA S_CODE(2)/2/ - DATA S_CODE(3)/6/ - DATA S_CODE(4)/7/ - DATA S_CODE(5)/8/ - DATA S_CODE(6)/16/ - DATA S_CODE(7)/19/ - DATA S_CODE(8)/128/ - DATA S_CODE(9)/129/ - DATA S_CODE(10)/130/ - DATA S_CODE(11)/144/ - DATA S_CODE(12)/145/ - DATA S_CODE(13)/146/ - DATA S_CODE(14)/147/ - DATA S_CODE(15)/148/ - DATA S_CODE(16)/131/ - DATA S_CODE(17)/132/ -C -C . . . . . . . . . . . . . . . . . . . -C SNAME TABLE. - character*4 SNAME(18) -C - DATA SNAME( 1)/ ' GPM'/ - DATA SNAME( 2)/ ' PA '/ - DATA SNAME( 3)/ ' M '/ - DATA SNAME( 4)/ ' M '/ - DATA SNAME( 5)/ ' MB '/ - DATA SNAME( 6)/ ' DEG'/ - DATA SNAME( 7)/ ' POT'/ - DATA SNAME( 8)/ ' MSL'/ - DATA SNAME( 9)/ ' SFC'/ - DATA SNAME(10)/ ' TRO'/ - DATA SNAME(11)/ ' BDY'/ - DATA SNAME(12)/ ' TRS'/ - DATA SNAME(13)/ ' STS'/ - DATA SNAME(14)/ ' QCP'/ - DATA SNAME(15)/ ' SIG'/ - DATA SNAME(16)/ 'MWSL'/ - DATA SNAME(17)/ 'PLYR'/ - DATA SNAME(18)/ ' '/ -C -C . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . -C REFERENCE TABLE FOR QNAME. - INTEGER Q_CODE(108) -C - DATA Q_CODE( 1)/ 1/ - DATA Q_CODE( 2)/ 2/ - DATA Q_CODE( 3)/ 6/ - DATA Q_CODE( 4)/ 8/ - DATA Q_CODE( 5)/ 16/ - DATA Q_CODE( 6)/ 17/ - DATA Q_CODE( 7)/ 18/ - DATA Q_CODE( 8)/ 19/ - DATA Q_CODE( 9)/ 20/ - DATA Q_CODE(10)/ 21/ - DATA Q_CODE(11)/ 40/ - DATA Q_CODE(12)/ 41/ - DATA Q_CODE(13)/ 42/ - DATA Q_CODE(14)/ 43/ - DATA Q_CODE(15)/ 44/ - DATA Q_CODE(16)/ 48/ - DATA Q_CODE(17)/ 49/ - DATA Q_CODE(18)/ 50/ - DATA Q_CODE(19)/ 51/ - DATA Q_CODE(20)/ 52/ - DATA Q_CODE(21)/ 53/ - DATA Q_CODE(22)/ 54/ - DATA Q_CODE(23)/ 55/ - DATA Q_CODE(24)/ 56/ - DATA Q_CODE(25)/ 57/ - DATA Q_CODE(26)/ 58/ - DATA Q_CODE(27)/ 59/ - DATA Q_CODE(28)/ 60/ - DATA Q_CODE(29)/ 72/ - DATA Q_CODE(30)/ 73/ - DATA Q_CODE(31)/ 74/ - DATA Q_CODE(32)/ 80/ - DATA Q_CODE(33)/ 81/ - DATA Q_CODE(34)/ 88/ - DATA Q_CODE(35)/ 89/ - DATA Q_CODE(36)/ 90/ - DATA Q_CODE(37)/ 91/ - DATA Q_CODE(38)/ 92/ - DATA Q_CODE(39)/ 93/ - DATA Q_CODE(40)/ 94/ - DATA Q_CODE(41)/ 95/ - DATA Q_CODE(42)/ 96/ - DATA Q_CODE(43)/112/ - DATA Q_CODE(44)/113/ - DATA Q_CODE(45)/114/ - DATA Q_CODE(46)/115/ - DATA Q_CODE(47)/120/ - DATA Q_CODE(48)/121/ - DATA Q_CODE(49)/160/ - DATA Q_CODE(50)/161/ - DATA Q_CODE(51)/162/ - DATA Q_CODE(52)/163/ - DATA Q_CODE(53)/164/ - DATA Q_CODE(54)/165/ - DATA Q_CODE(55)/166/ - DATA Q_CODE(56)/167/ - DATA Q_CODE(57)/168/ - DATA Q_CODE(58)/169/ - DATA Q_CODE(59)/170/ - DATA Q_CODE(60)/171/ - DATA Q_CODE(61)/176/ - DATA Q_CODE(62)/177/ - DATA Q_CODE(63)/178/ - DATA Q_CODE(64)/184/ - DATA Q_CODE(65)/185/ - DATA Q_CODE(66)/186/ - DATA Q_CODE(67)/187/ - DATA Q_CODE(68)/188/ - DATA Q_CODE(69)/384/ - DATA Q_CODE(70)/385/ - DATA Q_CODE(71)/386/ - DATA Q_CODE(72)/387/ - DATA Q_CODE(73)/388/ - DATA Q_CODE(74)/389/ - DATA Q_CODE(75)/390/ - DATA Q_CODE(76)/391/ - DATA Q_CODE(77)/ 97/ - DATA Q_CODE(78)/ 98/ - DATA Q_CODE(79)/ 99/ - DATA Q_CODE(80)/100/ - DATA Q_CODE(81)/101/ - DATA Q_CODE(82)/102/ - DATA Q_CODE(83)/103/ - DATA Q_CODE(84)/148/ - DATA Q_CODE(85)/172/ - DATA Q_CODE(86)/200/ - DATA Q_CODE(87)/201/ - DATA Q_CODE(88)/202/ - DATA Q_CODE(89)/203/ - DATA Q_CODE(90)/392/ - DATA Q_CODE(91)/ 7/ - DATA Q_CODE(92)/ 61/ - DATA Q_CODE(93)/104/ - DATA Q_CODE(94)/173/ - DATA Q_CODE(95)/174/ - DATA Q_CODE(96)/175/ - DATA Q_CODE(97)/304/ - DATA Q_CODE(98)/305/ - DATA Q_CODE(99)/400/ - DATA Q_CODE(100)/401/ - DATA Q_CODE(101)/402/ - DATA Q_CODE(102)/403/ - DATA Q_CODE(103)/404/ - DATA Q_CODE(104)/405/ - DATA Q_CODE(105)/ 9/ - DATA Q_CODE(106)/105/ - DATA Q_CODE(107)/116/ - DATA Q_CODE(108)/106/ -C -C . . . . . . . . . . . . . . . . . . . -C QNAME TABLE: - character*6 QNAME(108) -C - DATA QNAME( 1)/ ' HGT '/ - DATA QNAME( 2)/ ' P ALT'/ - DATA QNAME( 3)/ ' DIST '/ - DATA QNAME( 4)/ ' PRES '/ - DATA QNAME( 5)/ ' TMP '/ - DATA QNAME( 6)/ ' DPT '/ - DATA QNAME( 7)/ ' DEPR '/ - DATA QNAME( 8)/ ' POT '/ - DATA QNAME( 9)/ ' T MAX'/ - DATA QNAME(10)/ ' T MIN'/ - DATA QNAME(11)/ ' V VEL'/ - DATA QNAME(12)/ ' NETVD'/ - DATA QNAME(13)/ ' DZDT '/ - DATA QNAME(14)/ ' OROW '/ - DATA QNAME(15)/ ' FRCVV'/ - DATA QNAME(16)/ ' U GRD'/ - DATA QNAME(17)/ ' V GRD'/ - DATA QNAME(18)/ ' WIND '/ - DATA QNAME(19)/ ' T WND'/ - DATA QNAME(20)/ ' VW SH'/ - DATA QNAME(21)/ ' U DIV'/ - DATA QNAME(22)/ ' V DIV'/ - DATA QNAME(23)/ ' WDIR '/ - DATA QNAME(24)/ ' WWND '/ - DATA QNAME(25)/ ' SWND '/ - DATA QNAME(26)/ ' RATS '/ - DATA QNAME(27)/ ' VECW '/ - DATA QNAME(28)/ ' SFAC '/ - DATA QNAME(29)/ ' ABS V'/ - DATA QNAME(30)/ ' REL V'/ - DATA QNAME(31)/ ' DIV '/ - DATA QNAME(32)/ ' STRM '/ - DATA QNAME(33)/ ' V POT'/ - DATA QNAME(34)/ ' R H '/ - DATA QNAME(35)/ ' P WAT'/ - DATA QNAME(36)/ ' A PCP'/ - DATA QNAME(37)/ ' P O P'/ - DATA QNAME(38)/ ' P O Z'/ - DATA QNAME(39)/ ' SNO D'/ - DATA QNAME(40)/ ' ACPCP'/ - DATA QNAME(41)/ ' SPF H'/ - DATA QNAME(42)/ ' L H2O'/ - DATA QNAME(43)/ ' LFT X'/ - DATA QNAME(44)/ ' TOTOS'/ - DATA QNAME(45)/ ' K X '/ - DATA QNAME(46)/ ' C INS'/ - DATA QNAME(47)/ ' L WAV'/ - DATA QNAME(48)/ ' S WAV'/ - DATA QNAME(49)/ ' DRAG '/ - DATA QNAME(50)/ ' LAND '/ - DATA QNAME(51)/ ' KFACT'/ - DATA QNAME(52)/ ' 10TSL'/ - DATA QNAME(53)/ ' 7TSL '/ - DATA QNAME(54)/ ' RCPOP'/ - DATA QNAME(55)/ ' RCMT '/ - DATA QNAME(56)/ ' RCMP '/ - DATA QNAME(57)/ ' ORTHP'/ - DATA QNAME(58)/ ' ALBDO'/ - DATA QNAME(59)/ ' ENFLX'/ - DATA QNAME(60)/ ' HEATR'/ - DATA QNAME(61)/ ' LAT '/ - DATA QNAME(62)/ ' LON '/ - DATA QNAME(63)/ ' RADIC'/ - DATA QNAME(64)/ ' PROB '/ - DATA QNAME(65)/ ' CPROB'/ - DATA QNAME(66)/ ' USTAR'/ - DATA QNAME(67)/ ' TSTAR'/ - DATA QNAME(68)/ ' MIXHT'/ - DATA QNAME(69)/ ' WTMP '/ - DATA QNAME(70)/ ' WVHGT'/ - DATA QNAME(71)/ ' SWELL'/ - DATA QNAME(72)/ ' WVSWL'/ - DATA QNAME(73)/ ' WVPER'/ - DATA QNAME(74)/ ' WVDIR'/ - DATA QNAME(75)/ ' SWPER'/ - DATA QNAME(76)/ ' SWDIR'/ - DATA QNAME(77)/ ' RRATE'/ - DATA QNAME(78)/ ' TSTM '/ - DATA QNAME(79)/ ' CSVR '/ - DATA QNAME(80)/ ' CTDR '/ - DATA QNAME(81)/ ' MIXR '/ - DATA QNAME(82)/ ' PSVR '/ - DATA QNAME(83)/ ' MCONV'/ - DATA QNAME(84)/ ' SIG '/ - DATA QNAME(85)/ ' ENRGY'/ - DATA QNAME(86)/ ' RDNCE'/ - DATA QNAME(87)/ ' BRTMP'/ - DATA QNAME(88)/ ' TCOZ '/ - DATA QNAME(89)/ ' OZMR '/ - DATA QNAME(90)/ ' ICSEA'/ - DATA QNAME(91)/ ' DEPTH'/ - DATA QNAME(92)/ ' GUST '/ - DATA QNAME(93)/ ' VAPP '/ - DATA QNAME(94)/ ' TOTHF'/ - DATA QNAME(95)/ ' SEHF '/ - DATA QNAME(96)/ ' SORAD'/ - DATA QNAME(97)/ ' UOGRD'/ - DATA QNAME(98)/ ' VOGRD'/ - DATA QNAME(99)/ ' HTSGW'/ - DATA QNAME(100)/ ' PERPW'/ - DATA QNAME(101)/ ' DIRPW'/ - DATA QNAME(102)/ ' PERSW'/ - DATA QNAME(103)/ ' DIRSW'/ - DATA QNAME(104)/ ' WCAPS'/ - DATA QNAME(105)/ ' PTEND'/ - DATA QNAME(106)/ ' NCPCP'/ - DATA QNAME(107)/ ' HIFTX'/ - DATA QNAME(108)/ ' ICEAC'/ -C -C . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . -C REFERENCE TABLE FOR G (GENERATING PROGRAM NAME) -C - INTEGER KK(3) - - DATA KK(1)/57/ - DATA KK(2)/58/ - DATA KK(3)/59/ -C -C . . . . . . . . . . . . . . . . . . . -C G TABLE (GENERATING PROGRAM NAME): -C - CHARACTER*8 KNAME(9) - - DATA KNAME / ' ECMWF', - 2 ' READING', - 3 ', UK. ', - 4 ' FNOC', - 5 ' MONTERE', - 6 'Y, CA. ', - 7 ' AFGWC ', - 8 'OFFUTT A', - 9 'FB, NB. ' / -C -C . . . . . . . . . . . . . . . . . . . -C . . . . . . . . . . . . . . . . . . . - CHARACTER*8 KNAME1(3) - DATA KNAME1 / ' WMC N', - 2 'CEP WASH', - 3 'INGTON ' / -C -C . . . . . . . . . . . . . . . . . . . - character*6 QNAME1 - DATA QNAME1 / ' THCK ' / -C - logical lcheckout -C - SAVE -C . . . . S T A R T . . . . . . . . . . . . . . . . . . . -C - lcheckout = .FALSE. - -C 1. UNPACK ID WORDS. -C - DO 1 N=1,14 - TEMPR = SHFMSK(N) - NSHIFT = 0 - NSHIFT = MOVA2I(ISTORE(5)) !... CRAY -C ... JSTORE(4) = ISTORE(1) - NMASK = 0 - NMASK = MOVA2I(ISTORE(6)) !... CRAY -C ... KSTORE(4) = ISTORE(2) - NID = 0 - NID = MOVA2I(ISTORE(7)) !... CRAY -C ... LSTORE(4) = ISTORE(3) - JKEEP(N)=IAND(MASK(NMASK),ISHFT(ID(NID),-NSHIFT)) - 1 CONTINUE -C - C1 = JKEEP(5) - C2 = JKEEP(7) - E1 = JKEEP(6) - E2 = JKEEP(8) - S1 = JKEEP(10) - S2 = JKEEP(11) - Q = JKEEP(12) - M = JKEEP(9) - G = JKEEP(14) -C - IF(E1 .GT. 128) THEN - E1 = -(JKEEP(6)-128) - ENDIF - IF(E2 .GT. 128) THEN - E2 = -(JKEEP(8)-128) - ENDIF -C - if(lcheckout)then - WRITE(6,505)(JKEEP(I),I=1,14),E1,E2 - 505 FORMAT(1H ,'LINE-1: THE JKEEP ARRAY FOLLOWS ...', - 1 /1H ,' (1) (2) (3) (4) (C1)', - 2 ' (E1) (C2) (E2)', - 3 /1H ,8Z9.8, /1H ,8Z9.8, - 4 /1H ,' (M) (S1) (S2) (Q) (13)', - 5 ' (G) (E1B) (E2B)') - endif -C -C 2. FIND WHICH SURFACE IS INDICATED BY THE ID WORDS -C AS BEING THE FIRST SURFACE. -C - DO 2 I=1,17 - K1 = I - IF(S1 .EQ. S_CODE(I))GO TO 4 - 2 CONTINUE - K1=18 - GO TO 4 - - 4 CONTINUE -C -C 3. BEGIN PROCESSING OF A ONE-SURFACE TITLE -C - IF(M .NE. 0)GO TO 200 -C - K2=K1 - - CALL FP02_VAL(S1,C1,E1,INUM1) - - WRITE(CTITLE(1:20),107) INUM1(1:7) - 107 FORMAT(13X,A) - - GO TO 73 -C -C 4. FIND WHICH SURFACE IS INDICATED BY THE ID WORDS -C AS BEING THE SECOND SURFACE. -C - 200 DO 22 I=1,17 - IF(S2 .EQ. S_CODE(I))GO TO 33 - 22 CONTINUE - K2=18 - GO TO 44 - 33 K2=I - 44 CONTINUE -C -C -C 5. BEGIN PROCESSING OF A TWO-SURFACE TITLE -C - CALL FP02_VAL(S1,C1,E1,INUM1) - CALL FP02_VAL(S2,C2,E2,INUM2) - WRITE(CTITLE(1:20),103) INUM1(1:7),SNAME(K1)(1:4),INUM2(1:7) - 103 FORMAT(' ',A,A,' ',A) -C -C 6. FIND WHICH PARAMETER (Q) IS INDICATED BY THE ID WORDS. -C - 73 CONTINUE - DO 300 N=1,108 - IF(Q .EQ. Q_CODE(N))GO TO 310 - 300 CONTINUE -C ... fell thru without finding a matching Q_CODE ... - WRITE(6,108) Q - 108 FORMAT(' Q IS AN ILLEGAL NUMBER. Q IS ',I3) - GO TO 1000 - - 310 QWRITE(1:6) = QNAME(N)(1:6) -C - IF(Q .EQ. 1 .AND. M .EQ. 1 .AND. S1 .EQ. 8) then - QWRITE(1:6) = QNAME1(1:6) - endif -C -C 7. SET DATE/TIME FIELDS. -C -C A. SET DTIME_CODE FOR HRS,HALF DAYS OR DAYS -C FROM F1 AND F2 - - CALL DT_UNITS(ID, DTIME_CODE) -C - IF (DTIME_CODE .EQ. 0) then - GO TO 76 - ELSE IF (DTIME_CODE .EQ. 1) then - JKEEP(1) = JKEEP(1) * 12 - GO TO 76 - ELSE IF (DTIME_CODE .EQ. 2) then - JKEEP(1) = JKEEP(1) * 24 - go to 76 - ELSE - GO TO 76 - endif -C - 76 continue - IHUN = JKEEP(1)/100 - irmndr = mod(jkeep(1),100) - iten = irmndr/10 - iunit = mod(irmndr,10) - - IFST = JKEEP(13)/10 - isec = mod(jkeep(13),10) -C -C 8. SET GENERATING PROGRAM NAME. -C - DO 80 K=1,3 - IF (G .EQ. KK(K)) THEN -C ... this is one of the other met centers ... - DO L=1,3 - KWRITE(L) = KNAME( 3*(K-1) + L) - ENDDO - GO TO 100 - endif - 80 CONTINUE -C - DO 99 L=1,3 - KWRITE(L) = KNAME1(L) !... wmc nmc washington - 99 CONTINUE - GO TO 100 -C -C 9. ASSEMBLE THE REMAINDER OF THE TITLE LINE -C VIA INTERNAL WRITE STATEMENT INTO CTITLE(21:88) -C - 100 CONTINUE - WRITE(CTITLE(21:88),105) SNAME(K2)(1:4),QWRITE(1:6), - A IHUN,ITEN,IUNIT, IFST,ISEC, - B JKEEP(2),CMONTH(JKEEP(3)),JKEEP(4),(KWRITE(L),L=1,3) - 105 FORMAT(A4,1X,A6,' FOR ',3I1,' HRS AFTER ',2I1,'Z ',I2,A4,1X,I2, - 1 3A8) -C - if(lcheckout) then - write(6,535)ctitle(1:63),ctitle(64:88) - 535 format(1h ,'at completion of LINE-1, CTITLE(1:88) contains ...', - 1 /1h ,'"',A,'"', /1h ,'"',A,'"') - endif - -C - 1000 CONTINUE -C -C 10. REASSIGN KTITLE FOR OUTPUT. -C - DO 1001 K = 1,11 !... 11 I*8 == 22 I*4 - JTITLE(K) = KTITLE(K) - 1001 CONTINUE -C - RETURN - END - - SUBROUTINE FP02_VAL(S,C,E,C8NUM) -C 15-MAY-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: FP02_VAL CREATES VALUE OF SURFACE FROM IDS -C AUTHOR: COBBS,S. ORG: W/NMC42 DATE: 83-10-12 -C -C ABSTRACT: CONVERTS THE NUMERICAL VALUE FOR THE SURFACE INTO -C A TEXT STRING TO BE USED IN THE FIRST LINE OF THE TITLE. -C -C USAGE: CALL FP02_VAL(S,C,E,C8NUM) -C -C -C - - - - - - - - - I N P U T V A R I A B L E S - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C -C S INTEGER NUMBER OF SURFACE ARGUMENT -C C,E NUMERICAL VALUE OF THE SURFACE ARGUMENT -C SURFACE = S * 10 ** E -C -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C -C - - - - - - - - - O U T P U T V A R I A B L E S - - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C -C C8NUM VALUE OF THE SURFACE FOR THE TITLE ARGUMENT -C CHARACTER*8 C8NUM -C -C -C ATTRIBUTES: -C LANGUAGE: CRAY FORTRAN -C -C$$$ -C -C ... 960515 SHIMOMURA -- IN MODIFYING FOR CRAY, I CHANGED THE ARG4 -C FROM REAL*8 TO CHARACTER*8, SINCE IT WAS -C FOR AN 8-CHAR STRING; -C ALSO RENAMED FROM "VALUE" TO "FP02_VAL" -C . . . . . . . . . . . . . . . . . . . . . . . . . -C ... USAGE: CALL FP02_VAL(S,C,E,C8NUM) - integer S - integer C - integer E - CHARACTER*8 C8NUM !... RESULT - -C . . . . . . . . . . . . . . . . . . . . . . . . . - CHARACTER*8 JZEROS - DATA JZEROS/ ' 0.0000 ' / - - CHARACTER*8 KLANKS - DATA KLANKS/ ' ' / -C -C - CHARACTER*7 LTEMP - CHARACTER*1 POINT - DATA POINT/'.'/ -C - integer*8 INUM - CHARACTER*8 CNUM - EQUIVALENCE (INUM,CNUM) -C -C -C - C8NUM = KLANKS - - IF (S .GE. 128 .AND. S .LE. 132) THEN - C8NUM = KLANKS - GO TO 150 - ENDIF - -C ... OTHERWISE, !... (S .LT.128) .OR. (S .GT. 132) ... - IF(C .EQ. 0) THEN - C8NUM = JZEROS - GO TO 150 - ELSE -C ... C IS NON-ZERO ... - WRITE (LTEMP(1:7),101) C - 101 FORMAT(I6,1H ) - J = E+6 - K = J+1 - CNUM(1:J) = LTEMP(1:J) - CNUM(K:K) = POINT - CNUM(K+1:8) = LTEMP(K:7) - C8NUM(1:8) = CNUM(1:8) - GO TO 150 - ENDIF -C - 150 CONTINUE - RETURN - END - - SUBROUTINE FP02_LN2(ID,JTITLE) -C 15-MAY-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: FP02_LN2 CREATES THE SECOND LINE OF TITLE -C AUTHOR: ORG: W/NMC42 DATE: 83-10-25 -C -C ABSTRACT: CREATES THE SECOND LINE OF THE TITLE FROM THE -C ID WORDS. -C -C USAGE: CALL FP02_LN2(ID,JTITLE) -C -C -C - - - - - - - - - I N P U T V A R I A B L E S - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C ID ID WORDS ARGUMENT -C -C - - - - - - - - - O U T P U T V A R I A B L E S - - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C JTITLE TITLE ARRAY ARGUMENT -C -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C -C ATTRIBUTES: -C LANGUAGE: IBM VS FORTRAN -C SOURCE STATEMENTS: 50 CORE SIZE: 2300 -C -C$$$ -C -C -ckumar integer (kind=8) ibm2cray -ckumar external ibm2cray - -C - INTEGER ID(12) - INTEGER JTITLE(41) - - INTEGER KTITLE(41) - CHARACTER*328 CTITLE - EQUIVALENCE (KTITLE(1),CTITLE) -C - integer MASK(8) -C - DATA MASK(1)/ X'0000000F' / - DATA MASK(2)/ X'000000FF' / - DATA MASK(3)/ X'00000FFF' / - DATA MASK(4)/ X'0000FFFF' / - DATA MASK(5)/ X'000FFFFF' / - DATA MASK(6)/ X'00FFFFFF' / - DATA MASK(7)/ X'0FFFFFFF' / - DATA MASK(8)/ X'FFFFFFFF' / - -C - INTEGER TEMPR - CHARACTER*1 ISTORE(8) - EQUIVALENCE (TEMPR,ISTORE(1)) -C - DATA NEG / X'FFFFFFFFFFFF0000' / -C -C IDWORDS: MASK CONTROL (INTEGER ) -C - INTEGER IKEEP(17) - INTEGER SHFMSK(17) - DATA SHFMSK( 1)/X'1C010300'/ - DATA SHFMSK( 2)/X'1C010200'/ - DATA SHFMSK( 3)/X'1C010400'/ - DATA SHFMSK( 4)/X'00020100'/ - DATA SHFMSK( 5)/X'00020300'/ - DATA SHFMSK( 6)/X'18020500'/ - DATA SHFMSK( 7)/X'10020500'/ - DATA SHFMSK( 8)/X'08020500'/ - DATA SHFMSK( 9)/X'00020500'/ - DATA SHFMSK(10)/X'18080600'/ - DATA SHFMSK(11)/X'18020800'/ - DATA SHFMSK(12)/X'10020800'/ - DATA SHFMSK(13)/X'00040800'/ - DATA SHFMSK(14)/X'10040900'/ - DATA SHFMSK(15)/X'00040900'/ - DATA SHFMSK(16)/X'00080A00'/ - DATA SHFMSK(17)/X'00040B00'/ - - real crayreal - integer loneibm - integer nbitoffset - data nbitoffset / 32 / - integer nitems - data nitems / 1 / - logical lcheckout -C - save - - lcheckout = .FALSE. - -C UNPACK ID WORDS. -C - DO 1 N=1,17 - TEMPR=SHFMSK(N) -C - NSHIFT = 0 - nshift = mova2i(istore(5)) -C - NMASK = 0 - nmask = mova2i(istore(6)) -C - NID = 0 - nid = mova2i(istore(7)) -C - IKEEP(N)=IAND(MASK(NMASK),ISHFT(ID(NID),-NSHIFT)) - 1 CONTINUE -C -C CONVERT 16 BIT SIGNED INTEGER INTO FULLWORD INTEGER -C - IF (BTEST(IKEEP(17),15)) THEN - IKEEP(17) = IOR(IKEEP(17),NEG) - ENDIF -C -C ... the A= reference value in ikeep(16) is, I think, -C ... in IBM REAL*4 format right-justified in longword; -C ... so convert it into CRAY REAL - crayreal = 0.0 - loneibm = IKEEP(16) - -ckumar iret = ibm2cray(2,nitems,loneibm,nbitoffset,crayreal) -C type=2; for IBM REAL*4 - -ckumar if(iret .LT. 0) then -ckumar write(6,315)iret -ckumar 315 format(1h ,'FP02_LN2::ibm2cray FAILED with return code=',I8) -C ... TO LET IT GO ON ANYWAY, - crayreal = 0.0 -ckumar endif -ckumar if (lcheckout) then -ckumar write(6,325)loneibm, crayreal -ckumar 325 format(1h ,'FP02_LN2::ibm2cray: R*4 ibm = HEX',Z17.16, -ckumar 1 /1h ,' R*8 cray = DEC',E13.5) -ckumar endif - -C ASSEMBLE THE SECOND LINE OF THE TITLE -C - - WRITE(CTITLE(89:216),101)(IKEEP(I),I=1,15),crayreal,ikeep(17) - 101 FORMAT(' M=',I1,' T=',I1,' N=',I2,' F1=',I3,' F2=',I3,' CD=',I3,' - 1CM=',I3,' KS=',I3,' K=',I3,' UN=',I5,' R= ',I3,' G=',I3,' J=',I5,' - 2 B=',I5,' Z=',I5,' A=',E15.8,' N=',I5,' ') -C -C REASSIGN THE SECOND LINE OF THE TITLE TO THE OUTPUT ARRAY -C -C ... DO 1001 K = 23,54 - DO 1001 K = 12,27 - JTITLE(K) = KTITLE(K) - 1001 CONTINUE -C - RETURN - END - SUBROUTINE FP02_LN3(ID,JTITLE) -C 15-MAY-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: FP02_LN3 CREATES THE THIRD LINE OF TITLE -C AUTHOR: ORG: W/NMC42 DATE: 25 OCT 83 -C -C ABSTRACT: CREATES THE THIRD LINE OF THE TITLE FROM THE -C ID WORDS. -C -C USAGE: CALL FP02_LN3 (ID,JTITLE) -C -C -C - - - - - - - - - I N P U T V A R I A B L E S - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C ID ID WORDS ARGUMENT -C -C - - - - - - - - - O U T P U T V A R I A B L E S - - - - - - - - - - -C -C NAMES MEANING/CONTENT/PURPOSE/UNITS/TYPE INTERFACE -C ----- ---------------------------------- --------- -C JTITLE TITLE ARRAY ARGUMENT -C -C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - DIMENSION ID(12) - DIMENSION JTITLE(41) - - DIMENSION KTITLE(41) - CHARACTER*328 CTITLE - EQUIVALENCE (KTITLE(1),CTITLE) -C -C ... ASSEMBLE THE THIRD LINE OF THE TITLE. -C - WRITE(CTITLE(217:324),1)(ID(I),I=1,12) - 1 FORMAT(12Z9.8) -C -C ... REASSIGN THE THIRD LINE OF THE TITLE TO AN OUTPUT ARRAY. -C -C ... DO 1001 K = 55,81 - DO 1001 K = 28,41 - JTITLE(K) = KTITLE(K) - 1001 CONTINUE -C - RETURN - END - SUBROUTINE DT_UNITS(ID, DTIME_CODE) -C 15-MAY-1996/DSS -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C -C SUBPROGRAM: DT_UNITS SET DELTA TIME CODE FROM ID -C PRGMMR: SHIMOMURA ORG: W/NP12 DATE: 96-05-17 -C -C ABSTRACT: DETERMINES DELTA-TIME UNITS OF THE FORECAST -C WHETHER IN HOURS, HALF-DAYS, OR FULL-DAYS; -C ONLY CALLED FROM W3FP02(). -C -C PROGRAM HISTORY LOG: -C 85-01-25 ORIGINAL AUTHOR: D. MILLER -C 96-05-17 SHIMOMURA -- CHANGED NAME FROM "TCHECK" TO "DT_UNITS" -C AND REPROGRAMMED FOR CRAY -C -C USAGE: CALL DT_UNITS (ID, DTIME_CODE) -C INPUT ARGUMENT LIST: -C ID - INTEGER*8 ID(12): OFFICE NOTE 84 IDENTIFIER -C -C OUTPUT ARGUMENT LIST: -C DTIME_CODE - INTEGER*8 DTIME_CODE -C =0; IN HOURS -C =1; IN HALF-DAY UNITS -C =2; IN FULL-DAY UNITS -C -C OUTPUT FILES: -C FT06F001 - FOR COMMENT IF ERRONEOUS DATA -C -C REMARKS: -C -C ATTRIBUTES: -C LANGUAGE: FORTRAN 77 -C MACHINE: CRAY -C -C$$$ -C - INTEGER ID(12) - INTEGER DTIME_CODE - - integer MASK(8) -C - DATA MASK(1)/ X'0000000F' / - DATA MASK(2)/ X'000000FF' / - DATA MASK(3)/ X'00000FFF' / - DATA MASK(4)/ X'0000FFFF' / - DATA MASK(5)/ X'000FFFFF' / - DATA MASK(6)/ X'00FFFFFF' / - DATA MASK(7)/ X'0FFFFFFF' / - DATA MASK(8)/ X'FFFFFFFF' / -C - INTEGER ISTORE(3,2) - DATA ISTORE / 28, 1, 2, - 2 28, 1, 4 / -C ... NSHIFT, NMASK, NID ... - - INTEGER TKEEP(2) -C -C UNPACK "T" AND "N". -C - DO 1 N=1,2 - NSHIFT = ISTORE(1,N) - NMASK = ISTORE(2,N) - NID = ISTORE(3,N) - TKEEP(N)=IAND(MASK(NMASK),ISHFT(ID(NID),-NSHIFT)) - 1 CONTINUE -C - IF ((TKEEP(1) .EQ. 6) .OR. (TKEEP(1) .EQ. 7)) THEN - DTIME_CODE = 1 - GO TO 120 - - ELSE IF (TKEEP(1) .EQ. 10) THEN - DTIME_CODE = 2 - IF (TKEEP(2) .EQ. 15) THEN - WRITE(6,111) -111 FORMAT(1H ,'DT_UNITS: "T" AND "N" INDICATE CONFLICTING ', - A /1H ,' TIME INTERVAL VALUES(CODE OPTS FOR "T").') - - GO TO 120 - ENDIF - GO TO 120 - - ELSE IF (TKEEP(2) .EQ. 15) THEN - DTIME_CODE = 1 - GO TO 120 - - ELSE - DTIME_CODE = 0 - GO TO 120 - ENDIF -C -120 RETURN - END diff --git a/util/sorc/upaprep.fd/brdhgt.f b/util/sorc/upaprep.fd/brdhgt.f deleted file mode 100755 index 79257b9fe5..0000000000 --- a/util/sorc/upaprep.fd/brdhgt.f +++ /dev/null @@ -1,151 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: BRDHGT FORM THE GRAPHICS FORMAT. -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: BRDHGT RETURNS A REPORT THAT SPANNED TWO RECORDS -C OF THE SIMPLE GRAPHICS OBSERVATIONAL FORMAT. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -C -C USAGE: CALL FORUPA (KNEXT, KEND, COUT, IUNO, RHGTS, IREP, -C ARR, IRET) -C INPUT ARGUMENT LIST: -C KNEXT - POINTER TO STARTING LOCATION OF THIS REPORT -C KEND - POINTER TO ENDING LOCATION OF THIS REPORT -C COUT - MANDATORY LEVEL DATA -C IUNO - OBSERVATIONAL DATA FILE UNIT NUMBER -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C RHGTS - MANDATORY LEVEL HEIGHT DATA -C IREP - NUMBER OF REPORTS IN RHGTS -C IRET - RETURN CODE 0 = NORMAL RETURN -C 10 = END OF FILE ENCOUNTERED -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE BRDHGT(KNEXT, KEND, COUT, IUNO, RHGTS, IREP, - 1 ARR, IRET) -C -C This subroutine returns a UPAUPA report that spanned two -C records. -C - CHARACTER*8 COUT (512) - CHARACTER*8 CAR - CHARACTER*8 AID -C - REAL*8 ARR(300) - REAL*8 RHGTS(800,23) -C -C - DATA IMASK /Z'FFFFFFFF00000000'/ -C - EQUIVALENCE (CAR,RAR) - EQUIVALENCE (CAR,IAR) -C - IRET = 0 - IOK = 1 - IF((KNEXT+5).LT.512) THEN - AID = COUT(KNEXT+5) - IOK = 0 - END IF - PROCESS = 0 - J = 1 - PRINT *,' KNEXT, KEND ARE ',KNEXT,KEND - IF(KNEXT .LT. 513) THEN - DO K = KNEXT,512 - CAR = COUT(K) - call byteswap(CAR, 8, 1) - IAR1 = ISHFT(IAR,-32) - IA = ISHFT(IAR1,-28) - IF (IA .GT. 0) IAR1=IAR1+IMASK - IAR2 = ISHFT(ISHFT(IAR,32),-32) - IF (J .EQ. 11) THEN - IAR = IAR1 - ARR(J) = RAR - IAR = IAR2 - ARR(J+1) = RAR - J = J + 2 - ELSE - IA = ISHFT(IAR2,-28) - IF (IA .GT. 0) IAR2 = IAR2+IMASK - FAR = IAR1 - FAR = FAR/4096. - FAR2 = IAR2 - FAR2 = FAR2/4096. - ARR(J) = FAR - ARR(J+1) = FAR2 - J = J + 2 - END IF - END DO - END IF - READ (IUNO) COUT - IF (COUT(1).eq.'ENDOFILE') THEN - IRET = 10 - RETURN - END IF - IF (KEND .EQ. 0) THEN - IA = 512 - KNEXT - IF(KNEXT .EQ. 513) IA = 1 - CAR = COUT(IA+1) - call byteswap(CAR, 8, 1) - KEND = ISHFT(IAR,-32)/8192 - END IF - IF(KEND .LT. 0) THEN - KEND = 0 - GOTO 22 - END IF - DO K = 1,KEND - CAR = COUT(K) - call byteswap(CAR, 8, 1) - IAR1 = ISHFT(IAR,-32) - IA = ISHFT(IAR1,-28) - IF (IA .GT. 0) IAR1=IAR1+IMASK - IAR2 = ISHFT(ISHFT(IAR,32),-32) - IF (J .EQ. 11) THEN - IAR = IAR1 - ARR(J) = RAR - IAR = IAR2 - ARR(J+1) = RAR - J = J + 2 - ELSE - IA = ISHFT(IAR2,-28) - IF (IA .GT. 0) IAR2 = IAR2+IMASK - FAR = IAR1 - FAR = FAR/4096. - FAR2 = IAR2 - FAR2 = FAR2/4096. - ARR(J) = FAR - ARR(J+1) = FAR2 - J = J + 2 - END IF - END DO - 22 IF ( IOK .EQ. 1 ) AID = COUT (512-KNEXT) - IA = ARR(13) - IB = ARR(14) - IF ((IA .GT. 0) .AND. (IREP .LT. 200)) THEN - IREP=IREP+1 - CAR = AID - RHGTS(IREP,1) = RAR - RHGTS(IREP,2) = ARR(4) - IND = IB - DO K = 1,IA - RHGTS(IREP,K+2) = ARR(IND) - IND = IND + 7 - END DO - ENDIF - IA = KEND + 1 - IF(COUT(IA).NE.'END_REPO') THEN - PRINT 119,IA,COUT(IA) - 119 FORMAT(' END_REPO NOT FOUND AT WORD ',i5,' INSTEAD',A8 ) - END IF - KNEXT = IA + 1 -C - RETURN - END diff --git a/util/sorc/upaprep.fd/compile_upaprep_wcoss.sh b/util/sorc/upaprep.fd/compile_upaprep_wcoss.sh deleted file mode 100755 index b492dc681e..0000000000 --- a/util/sorc/upaprep.fd/compile_upaprep_wcoss.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec -make -mv upaprep ../../exec -make clean diff --git a/util/sorc/upaprep.fd/conaft.f b/util/sorc/upaprep.fd/conaft.f deleted file mode 100755 index 6df0a51121..0000000000 --- a/util/sorc/upaprep.fd/conaft.f +++ /dev/null @@ -1,121 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CONAFT READ AIRCRAFT CONTROL CARDS -C PRGMMR: LARRY SAGER ORG: W/NMCXX DATE: 96-08-27 -C -C ABSTRACT: CONAFT READS THE PROGRAM CONTROL CARD FILE FOR THE -C REGION TO DUMP, PARAMETERS TO PROCESS AND MANDATORY -C LEVELS TO PROCESS. -C -C PROGRAM HISTORY LOG: -C 96-08-16 LARRY SAGER -C -C USAGE: CALL CONAFT (COUT, RIMS, IRET) -C INPUT ARGUMENT LIST: -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C COUT - ARRAY TO HOLD FILE HEADER -C RIMS - GEOGRAPHIC AREA TO DUMP -C IRET - RETRUN CODE -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT22F001 - CONTROL CARD FILE -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE CONAFT (COUT, RIMS, IRET) -C -C This subroutine reads the control cards and forms the -C header record for AIRCFT data -C - CHARACTER*8 COUT (512) - CHARACTER*8 CBUFR(50) - CHARACTER*8 CLVLS(15) - CHARACTER*8 CSHD, CEHD, CEBF, CSLV - CHARACTER*8 CELV, CENB, CSTR, CSUA, CSAR - CHARACTER*8 CFLN - CHARACTER*8 CTEMP -C - REAL*8 RIMS (4) -C - EQUIVALENCE (CTEMP,ITEMP) -C - DATA INP /22/ - DATA CSHD /'STR_HEAD'/ - DATA CEHD /'END_HEAD'/ - DATA CSUA /'STR_BUFR'/ - DATA CSAR /'STR_ARCF'/ - DATA CEBF /'END_BUFR'/ - DATA CSLV /'STR_LVLS'/ - DATA CELV /'END_LVLS'/ - DATA CENB /'ENDBLOCK'/ - DATA CSTR /'STR_REPO'/ -C -C READ IN THE FIRST CONTROL CARD: FILE TYPE -C - RIMS (1) = 0. - RIMS (2) = 0. - RIMS (3) = 0. - RIMS (4) = 0. - IRET = 0 - READ(INP,100,END=80) CFLN - 100 FORMAT(A8) - COUT(1) = CSHD - COUT(2) = CFLN - COUT(3) = '99999999' - COUT(4) = '99999999' - COUT(5) = '99999999' - COUT(6) = CEHD - COUT(7) = CSUA - IPAR = 1 - K = 0 -C -C READ IN THE SECOND C.C.: LAT/LON AREA TO PROCESS -C 1- MOST N LAT 2- MOST S LAT 3- MOST W LON 4- MOST E LON -C - IND = 8 - READ(INP,104,END=80) RIMS - 104 FORMAT(4F6.0) - PRINT *,' LIMITS: ',RIMS - DO WHILE (K .EQ. 0) - READ(INP,100) CBUFR(IPAR) - IF (CBUFR(IPAR) .EQ. '********') THEN - K = 1 - IPAR = IPAR - 1 - ELSE - IND = IND + 1 - COUT (IND) = CBUFR(IPAR) - IPAR = IPAR + 1 - END IF - END DO - IF ( IPAR .EQ. 0 ) THEN - PRINT *,' NO BUFR PARAMETERS FOUND-JOB STOPPED' - IRET = -1 - RETURN - END IF - IND = IND + 1 - COUT (IND) = CEBF - IND = IND + 1 - COUT (IND) = CENB - IND = IND + 1 -C -C STORE THE START OF DATA POINTER -C - ITEMP = IND - COUT (5) = CTEMP - RETURN -C -C ERROR -- END OF FILE ENCOUNTERED WHERE DATA CARD -C SHOULD HAVE BEEN. -C - 80 PRINT *,' ERROR READING CONTROL CARDS' - IRET = -1 - RETURN - END diff --git a/util/sorc/upaprep.fd/consat.f b/util/sorc/upaprep.fd/consat.f deleted file mode 100755 index 0532deebdc..0000000000 --- a/util/sorc/upaprep.fd/consat.f +++ /dev/null @@ -1,152 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CONSAT READ PROGRAM CONTROL CARDS -C PRGMMR: LARRY SAGER ORG: W/NMCXX DATE: 96-08-27 -C -C ABSTRACT: CONTRL READS THE PROGRAM CONTROL CARD FILE FOR THE -C REGION TO DUMP, PARAMETERS TO PROCESS AND MANDATORY -C LEVELS TO PROCESS. -C -C PROGRAM HISTORY LOG: -C 96-08-16 LARRY SAGER -C -C USAGE: CALL CONTRL (COUT, RLIMS, IRET) -C INPUT ARGUMENT LIST: -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C COUT - ARRAY TO HOLD FILE HEADER -C RLIMS - LIMITS OF DATA -C IRET - SWITCH IRET = 0 DO TIROS -C IRET = 1 DELETE TIROS -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FTR24F001 - CONTROL CARD FILE -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE CONSAT (COUT, RLIMS, IRET) -C -C This subroutine reads the control cards and forms the -C header record for UPAUPA -C - CHARACTER*8 COUT (512) - CHARACTER*8 SRE,ERE - CHARACTER*8 CBUFR(50) - CHARACTER*8 CLVLS(25) - CHARACTER*8 CSHD, CEHD, CEBF, CSLV, CSBF - CHARACTER*8 CELV, CENB, CSTR - CHARACTER*8 CFLN - CHARACTER*8 CTEMP - CHARACTER*2 CTIR -C - REAL*8 RLIMS(4) -C - EQUIVALENCE (CTEMP,ITEMP) -C - DATA INP /24/ - DATA CSHD /'STR_HEAD'/ - DATA CEHD /'END_HEAD'/ - DATA CSBF /'STR_BUFR'/ - DATA CEBF /'END_BUFR'/ - DATA CSLV /'STR_LVLS'/ - DATA CELV /'END_LVLS'/ - DATA CENB /'ENDBLOCK'/ - DATA CSTR /'STR_REPO'/ -C -C READ IN THE FIRST CONTROL CARD: FILE TYPE -C - IRET = 0 - READ(INP,100,END=80) CFLN,CTIR - 100 FORMAT(A8,15X,A2) - IF (CTIR .NE. 'ON') IRET = 1 - COUT(1) = CSHD - COUT(2) = CFLN - COUT(3) = '99999999' - COUT(4) = '99999999' - COUT(5) = '99999999' - COUT(6) = CEHD - COUT(7) = CSBF -C -C READ IN THE SECOND C.C.: REGION TO PROCESS -C - READ(INP,102,ERR=33,END=80) SRE, ERE, RLIMS - 102 FORMAT(2A8,4F5.0) - 33 ISWR = 0 - CTEMP = SRE - ITEMP = ISHFT(ISHFT(ITEMP,48),-48) - SRE = CTEMP - CTEMP = ERE - ITEMP = ISHFT(ISHFT(ITEMP,48),-48) - ERE = CTEMP - PRINT *,'SRE ERE ',SRE,ERE - PRINT *,' RLIMS ',RLIMS(1),RLIMS(2),RLIMS(3),RLIMS(4) -C -C READ IN THE BUFR PARAMETERS TO PROCESS -C - K = 0 - IPAR = 1 - DO WHILE (K .EQ. 0) - READ(INP,100) CBUFR(IPAR) - IF (CBUFR(IPAR) .EQ. '********') THEN - K = 1 - IPAR = IPAR - 1 - ELSE - COUT (7+IPAR) = CBUFR(IPAR) - IPAR = IPAR + 1 - END IF - END DO - IF ( IPAR .EQ. 0 ) THEN - PRINT *,' NO BUFR PARAMETERS FOUND-JOB STOPPED' - IRET = -1 - RETURN - END IF - IND = 8 + IPAR - COUT (IND) = CEBF - IND = IND + 1 - COUT (IND) = CSLV -C -C READ IN THE LEVELS TO PROCESS -C - K = 0 - ILVL = 1 - DO WHILE (K .EQ. 0) - READ(INP,100) CLVLS(ILVL) - IF (CLVLS(ILVL) .EQ. '********') THEN - K = 1 - ILVL = ILVL - 1 - ELSE - COUT(IND+ILVL) = CLVLS(ILVL) - ILVL = ILVL + 1 - END IF - END DO - IF ( ILVL .EQ. 0 ) THEN - PRINT *,' NO LVLS FOUND-JOB STOPPED' - IRET = -1 - RETURN - END IF - IND = IND + ILVL + 1 - COUT (IND) = CELV - IND = IND + 1 - COUT (IND) = CENB - IND = IND + 1 -C -C STORE THE START OF DATA POINTER -C - ITEMP = IND - COUT (5) = CTEMP - RETURN -C -C ERROR -- END OF FILE ENCOUNTERED WHERE DATA CARD -C SHOULD HAVE BEEN. -C - 80 PRINT *,' ERROR READING CONTROL CARDS' - IRET = -1 - RETURN - END diff --git a/util/sorc/upaprep.fd/contrl.f b/util/sorc/upaprep.fd/contrl.f deleted file mode 100755 index be9e8576f4..0000000000 --- a/util/sorc/upaprep.fd/contrl.f +++ /dev/null @@ -1,161 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CONTRL READ PROGRAM CONTROL CARDS -C PRGMMR: LARRY SAGER ORG: W/NMCXX DATE: 96-08-27 -C -C ABSTRACT: CONTRL READS THE PROGRAM CONTROL CARD FILE FOR THE -C REGION TO DUMP, PARAMETERS TO PROCESS AND MANDATORY -C LEVELS TO PROCESS. -C -C PROGRAM HISTORY LOG: -C 96-08-16 LARRY SAGER -C -C USAGE: CALL CONTRL (COUT, SRE, ERE, ISWR, ICHG, IRET) -C INPUT ARGUMENT LIST: -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C COUT - ARRAY TO HOLD FILE HEADER -C SRE - STARTING REGION TO DUMP -C ERE - ENDING REGION TO DUMP -C ISWR - THINNING SWITCH 0 = BLOCK ID , 1= LATLONG -C ICHG - HEIGHT CHANGE SWITCH: ICHG = 0 NO HGT CHGS -C ICHG = 1 DO HGT CHGS -C IRET - RETURN CODE -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT09F001 - CONTROL CARD FILE -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE CONTRL (COUT, SRE, ERE, RLIMS, ISWR, - 1 ICHG, IRET) -C -C This subroutine reads the control cards and forms the -C header record for UPAUPA -C - CHARACTER*8 COUT (512) - CHARACTER*8 SRE, ERE - CHARACTER*8 CBUFR(50) - CHARACTER*8 CLVLS(25) - CHARACTER*8 CSHD, CEHD, CEBF, CSLV, CSBF - CHARACTER*8 CELV, CENB, CSTR - CHARACTER*8 CFLN - CHARACTER*8 CTEMP - CHARACTER*2 CHG -C - REAL*8 RLIMS(4) -C - EQUIVALENCE (CTEMP,ITEMP) -C - DATA INP /09/ - DATA CSHD /'STR_HEAD'/ - DATA CEHD /'END_HEAD'/ - DATA CSBF /'STR_BUFR'/ - DATA CEBF /'END_BUFR'/ - DATA CSLV /'STR_LVLS'/ - DATA CELV /'END_LVLS'/ - DATA CENB /'ENDBLOCK'/ - DATA CSTR /'STR_REPO'/ -C -C READ IN THE FIRST CONTROL CARD: FILE TYPE -C - IRET = 0 - print *,' about to read control card *1' - READ(INP,'(A8,15X,A2)') CFLN,CHG - print *,' cfln chg is ',CFLN,CHG -C - ICHG = 0 - IF(CHG .EQ. 'ON') ICHG = 1 - COUT(1) = CSHD - COUT(2) = CFLN - COUT(3) = '99999999' - COUT(4) = '99999999' - COUT(5) = '99999999' - COUT(6) = CEHD - COUT(7) = CSBF -C -C READ IN THE SECOND C.C.: REGION TO PROCESS -C - READ(INP,102,ERR=33,END=80) SRE, ERE, RLIMS - 102 FORMAT(2A8,4F5.0) - 33 ISWR = 0 - IF(SRE(1:1) .EQ. '1') ISWR = 1 - PRINT *,ISWR,' SWITCH' - CTEMP = SRE - ITEMP = ISHFT(ISHFT(ITEMP,48),-48) - SRE = CTEMP - CTEMP = ERE - ITEMP = ISHFT(ISHFT(ITEMP,48),-48) - ERE = CTEMP - PRINT *,'SRE ERE ',SRE,ERE - PRINT *,' RLIMS ',RLIMS(1),RLIMS(2),RLIMS(3),RLIMS(4) -C -C READ IN THE BUFR PARAMETERS TO PROCESS -C - K = 0 - IPAR = 1 - DO WHILE (K .EQ. 0) - READ(INP,'(A8)') CBUFR(IPAR) - IF (CBUFR(IPAR) .EQ. '********') THEN - K = 1 - IPAR = IPAR - 1 - ELSE - COUT (7+IPAR) = CBUFR(IPAR) - IPAR = IPAR + 1 - END IF - END DO - IF ( IPAR .EQ. 0 ) THEN - PRINT *,' NO BUFR PARAMETERS FOUND-JOB STOPPED' - IRET = -1 - RETURN - END IF - IND = 8 + IPAR - COUT (IND) = CEBF - IND = IND + 1 - COUT (IND) = CSLV -C -C READ IN THE LEVELS TO PROCESS -C - K = 0 - ILVL = 1 - DO WHILE (K .EQ. 0) - READ(INP,'(A8)') CLVLS(ILVL) - IF (CLVLS(ILVL) .EQ. '********') THEN - K = 1 - ILVL = ILVL - 1 - ELSE - COUT(IND+ILVL) = CLVLS(ILVL) - ILVL = ILVL + 1 - END IF - END DO - IF ( ILVL .EQ. 0 ) THEN - PRINT *,' NO LVLS FOUND-JOB STOPPED' - IRET = -1 - RETURN - END IF - IND = IND + ILVL + 1 - COUT (IND) = CELV - IND = IND + 1 - COUT (IND) = CENB - IND = IND + 1 -C -C STORE THE START OF DATA POINTER -C - ITEMP = IND - COUT (5) = CTEMP - RETURN -C -C ERROR -- END OF FILE ENCOUNTERED WHERE DATA CARD -C SHOULD HAVE BEEN. -C - 80 PRINT *,' ERROR READING CONTROL CARDS' - IRET = -1 - RETURN - END diff --git a/util/sorc/upaprep.fd/conwnd.f b/util/sorc/upaprep.fd/conwnd.f deleted file mode 100755 index bdb4e7f11c..0000000000 --- a/util/sorc/upaprep.fd/conwnd.f +++ /dev/null @@ -1,121 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: CONWND READ SATWND CONTROL CARDS -C PRGMMR: LARRY SAGER ORG: W/NMCXX DATE: 96-08-27 -C -C ABSTRACT: CONWND READS THE PROGRAM CONTROL CARD FILE FOR THE -C REGION TO DUMP, PARAMETERS TO PROCESS AND MANDATORY -C LEVELS TO PROCESS. -C -C PROGRAM HISTORY LOG: -C 96-08-16 LARRY SAGER -C -C USAGE: CALL CONWND (COUT, RIMS, IRET) -C INPUT ARGUMENT LIST: -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C COUT - ARRAY TO HOLD FILE HEADER -C RIMS - GEOGRAPHIC AREA TO DUMP -C IRET - RETRUN CODE -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT22F001 - CONTROL CARD FILE -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE CONWND (COUT, RIMS, IRET) -C -C This subroutine reads the control cards and forms the -C header record for SATWND data -C - CHARACTER*8 COUT (512) - CHARACTER*8 CBUFR(50) - CHARACTER*8 CLVLS(25) - CHARACTER*8 CSHD, CEHD, CEBF, CSLV - CHARACTER*8 CELV, CENB, CSTR, CSUA, CSAR - CHARACTER*8 CFLN - CHARACTER*8 CTEMP -C - REAL*8 RIMS (4) -C - EQUIVALENCE (CTEMP,ITEMP) -C - DATA INP /23/ - DATA CSHD /'STR_HEAD'/ - DATA CEHD /'END_HEAD'/ - DATA CSUA /'STR_BUFR'/ - DATA CSAR /'STR_ARCF'/ - DATA CEBF /'END_BUFR'/ - DATA CSLV /'STR_LVLS'/ - DATA CELV /'END_LVLS'/ - DATA CENB /'ENDBLOCK'/ - DATA CSTR /'STR_REPO'/ -C -C READ IN THE FIRST CONTROL CARD: FILE TYPE -C - RIMS (1) = 0. - RIMS (2) = 0. - RIMS (3) = 0. - RIMS (4) = 0. - IRET = 0 - READ(INP,100,END=80) CFLN - 100 FORMAT(A8) - COUT(1) = CSHD - COUT(2) = CFLN - COUT(3) = '99999999' - COUT(4) = '99999999' - COUT(5) = '99999999' - COUT(6) = CEHD - COUT(7) = CSUA - IPAR = 1 - K = 0 -C -C READ IN THE SECOND C.C.: LAT/LON AREA TO PROCESS -C 1- MOST N LAT 2- MOST S LAT 3- MOST W LON 4- MOST E LON -C - IND = 8 - READ(INP,104,END=80) RIMS - 104 FORMAT(4F6.0) - PRINT *,' LIMITS: ',RIMS - DO WHILE (K .EQ. 0) - READ(INP,100) CBUFR(IPAR) - IF (CBUFR(IPAR) .EQ. '********') THEN - K = 1 - IPAR = IPAR - 1 - ELSE - IND = IND + 1 - COUT (IND) = CBUFR(IPAR) - IPAR = IPAR + 1 - END IF - END DO - IF ( IPAR .EQ. 0 ) THEN - PRINT *,' NO BUFR PARAMETERS FOUND-JOB STOPPED' - IRET = -1 - RETURN - END IF - IND = IND + 1 - COUT (IND) = CEBF - IND = IND + 1 - COUT (IND) = CENB - IND = IND + 1 -C -C STORE THE START OF DATA POINTER -C - ITEMP = IND - COUT (5) = CTEMP - RETURN -C -C ERROR -- END OF FILE ENCOUNTERED WHERE DATA CARD -C SHOULD HAVE BEEN. -C - 80 PRINT *,' ERROR READING CONTROL CARDS' - IRET = -1 - RETURN - END diff --git a/util/sorc/upaprep.fd/dosbyt.f b/util/sorc/upaprep.fd/dosbyt.f deleted file mode 100755 index d5fc76d66e..0000000000 --- a/util/sorc/upaprep.fd/dosbyt.f +++ /dev/null @@ -1,157 +0,0 @@ - -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DOSBYT PACK AND WRITE A BLOCK -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: DOSBYT PACKS A REPORT INTO THE OUTPUT BLOCK -C USING SBYTES. WHEN THE BLOCK IS FULL, IT OUTPUTS IT. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -C -C USAGE: CALL DOSBYT(IARR,KRET,IUNO,COUT,KNEXT,IREPTS,IENT) -C INPUT ARGUMENT LIST: -C IARR - REPORT -C KRET - 12HR OLD MANDATORY LEVEL DATA -C IUNO - OUTPUT UNIT NUMBER -C COUT - OUTPUT BLOCK -C KNEXT - POINTER TO NEXT LOCATION -C IENT - SWITCH IENT=1 NORMAL -C IENT=2 END; OUTPUT LAST BLOCK -C . . . . -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C IREPTS - NUMBER OF REPORTS -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ -C - SUBROUTINE DOSBYT(IARR, KRET, IUNO, COUT, KNEXT, IREPTS, IENT) -C - CHARACTER*8 COUT (512) - CHARACTER*8 CEND, CSTR, CBLK, CENDFL - INTEGER NEXT5 - -C - INTEGER*8 IARR (300) -C -C DATA CEND /'END_REPO'/ -C DATA CSTR /'STR_REPO'/ - DATA CEND /'OPER_DNE'/ - DATA CSTR /'OPER_RTS'/ - DATA CBLK /' '/ -C DATA CENDFL /'ENDOFILE'/ - DATA CENDFL /'ELIFODNE'/ - DATA KLIM /512/ - DATA SHFTL /4096/ - -C -C THIS SUBROUTINE USES SBYTES TO FORM THE OUTPUT. -C THE BLOCK IS WRITTEN WHEN FULL. -C -C IF IENT = 1 - LOAD REPORT INTO BLOCK -C IENT = 2 - END CONDITION. WRITE LAST BLOCK. -C - IF (IENT .EQ. 1) THEN - IREPTS = IREPTS + 1 - INEXT = KNEXT + KRET/2 - COUT(KNEXT) = CSTR - IARR(3) = (INEXT*2 + 1)*SHFTL - KNEXT = KNEXT + 1 -C PRINT 100,IARR(11),IARR(12),INEXT - 100 FORMAT(' STATION ',a8,a8,' INEXT IS ',i8) - IF (INEXT .GE. KLIM) THEN - INEXT = INEXT - KLIM - IARR(3) = (INEXT*2 + 1)*SHFTL - IST = 2*(KLIM - KNEXT + 1) - CALL SBYTESCCS(COUT(KNEXT), IARR, 0, 32, 0, IST) - NEXT5 = KNEXT + 5 - call byteswap(COUT(NEXT5), 8, 1) - if (COUT(2)(1:6) .EQ. "UPAUPA" ) THEN - call byteswap(COUT(1), 8, 39) - call byteswap(COUT(5), 8, 1) - end if - if (COUT(2)(1:6) .EQ. "AIRCFT" ) THEN - call byteswap(COUT(1), 8, 17) - call byteswap(COUT(5), 8, 1) - end if - if (COUT(2)(1:6) .EQ. "SATWND" ) THEN - call byteswap(COUT(1), 8, 17) - call byteswap(COUT(5), 8, 1) - end if - call byteswap(COUT(1), 8, 512) - WRITE(IUNO) COUT - if (NEXT5 . gt. KLIM) THEN - NEXT5 = MOD( NEXT5, KLIM) - end if - KRET = KRET - IST - DO KK = 1,KLIM - COUT(KK) = CBLK - END DO - KNEXT = 1 - IF (KRET .NE. 0) THEN - CALL SBYTESCCS(COUT, IARR(IST+1), 0, 32, 0, KRET) - call byteswap(COUT(NEXT5), 8, 1) - KNEXT = KRET/2 + 1 - END IF - COUT(KNEXT) = CEND - KNEXT = KNEXT + 1 - ELSE - CALL SBYTESCCS(COUT(KNEXT), IARR, 0, 32, 0, KRET) - NEXT5 = KNEXT + 5 - call byteswap(COUT(NEXT5), 8, 1) - KNEXT = KNEXT + KRET/2 - IF (KNEXT .GT. KLIM) THEN - call byteswap(COUT(1), 8, 512) - WRITE(IUNO) COUT - KNEXT = 1 - DO KK = 1,KLIM - COUT(KK) = CBLK - END DO - END IF - COUT(KNEXT) = CEND - KNEXT = KNEXT + 1 - IF (KNEXT .GT. KLIM) THEN - call byteswap(COUT(1), 8, 512) - WRITE(IUNO) COUT - KNEXT = 1 - DO KK = 1,KLIM - COUT(KK) = CBLK - END DO - END IF - END IF - ELSE -C -C OUTPUT THE LAST BLOCK OF DATA -C - IF (KNEXT.NE.1) THEN - COUT(KNEXT) = CENDFL - do i = 1, 512 - if (COUT(i) .EQ. CSTR) then -C call byteswap(COUT(i+6), 8, 1) - end if - end do - call byteswap(COUT(1), 8, 512) - WRITE (IUNO) COUT - ELSE -C -C OUTPUT AN END-OF-FILE RECORD, FOR THE CASE -C WHEN THERE IS NO DATA IN THE LAST BLOCK EXCEPT -C THE END OF FILE INDICATOR -C - COUT(1) = CENDFL - DO K=1,KLIM - COUT(K) = CBLK - END DO - call byteswap(COUT(1), 8, 512) - WRITE(IUNO) COUT - END IF - END IF - RETURN -C - END diff --git a/util/sorc/upaprep.fd/dosbyt.f.final b/util/sorc/upaprep.fd/dosbyt.f.final deleted file mode 100755 index 3ab106679f..0000000000 --- a/util/sorc/upaprep.fd/dosbyt.f.final +++ /dev/null @@ -1,184 +0,0 @@ - -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DOSBYT PACK AND WRITE A BLOCK -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: DOSBYT PACKS A REPORT INTO THE OUTPUT BLOCK -C USING SBYTES. WHEN THE BLOCK IS FULL, IT OUTPUTS IT. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -C -C USAGE: CALL DOSBYT(IARR,KRET,IUNO,COUT,KNEXT,IREPTS,IENT) -C INPUT ARGUMENT LIST: -C IARR - REPORT -C KRET - 12HR OLD MANDATORY LEVEL DATA -C IUNO - OUTPUT UNIT NUMBER -C COUT - OUTPUT BLOCK -C KNEXT - POINTER TO NEXT LOCATION -C IENT - SWITCH IENT=1 NORMAL -C IENT=2 END; OUTPUT LAST BLOCK -C . . . . -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C IREPTS - NUMBER OF REPORTS -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ -C - SUBROUTINE DOSBYT(IARR, KRET, IUNO, COUT, KNEXT, IREPTS, IENT) -C - CHARACTER*8 COUT (512) - CHARACTER*8 CEND, CSTR, CBLK, CENDFL - byte ib - CHARACTER*1 cb - EQUIVALENCE (ib , cb) - -C - INTEGER*8 IARR (300) -C - DATA CEND /'END_REPO'/ - DATA CSTR /'STR_REPO'/ - DATA CBLK /' '/ - DATA CENDFL /'ENDOFILE'/ - DATA KLIM /512/ - DATA SHFTL /4096/ - LOGICAL FIRST_ENTRY - -C -C THIS SUBROUTINE USES SBYTES TO FORM THE OUTPUT. -C THE BLOCK IS WRITTEN WHEN FULL. -C -C IF IENT = 1 - LOAD REPORT INTO BLOCK -C IENT = 2 - END CONDITION. WRITE LAST BLOCK. -C - IF (IENT .EQ. 1) THEN - IREPTS = IREPTS + 1 - INEXT = KNEXT + KRET/2 - COUT(KNEXT) = CSTR - IARR(3) = (INEXT*2 + 1)*SHFTL - KNEXT = KNEXT + 1 -C PRINT 100,IARR(11),IARR(12),INEXT - 100 FORMAT(' STATION ',a8,a8,' INEXT IS ',i8) - IF (INEXT .GE. KLIM) THEN - INEXT = INEXT - KLIM - IARR(3) = (INEXT*2 + 1)*SHFTL - IST = 2*(KLIM - KNEXT + 1) - CALL SBYTESCCS(COUT(KNEXT), IARR, 0, 32, 0, IST) - do i = 1, 512 - if (COUT(i) .EQ. "END_REPO") then - call byteswap(COUT(i), 8, 1) - end if - if (COUT(i) .EQ. "STR_REPO") then - call byteswap(COUT(i+6), 8, 1) - call byteswap(COUT(i), 8, 1) - end if - end do - if (COUT(1) .EQ. "STR_HEAD" ) THEN - call byteswap(COUT(1), 8, 39) - call byteswap(COUT(5), 8, 1) - end if - - call byteswap(COUT(1), 8, 512) - - do j =1, 512 - do i =1, 8 - cb = COUT(j)(i:i) -C print *, 'test1', i, j, ib, KNEXT - end do - end do - - WRITE(IUNO) COUT - KRET = KRET - IST - DO KK = 1,KLIM - COUT(KK) = CBLK - END DO - KNEXT = 1 - IF (KRET .NE. 0) THEN - CALL SBYTESCCS(COUT, IARR(IST+1), 0, 32, 0, KRET) - KNEXT = KRET/2 + 1 - END IF - COUT(KNEXT) = CEND - KNEXT = KNEXT + 1 - ELSE - CALL SBYTESCCS(COUT(KNEXT), IARR, 0, 32, 0, KRET) - KNEXT = KNEXT + KRET/2 - IF (KNEXT .GT. KLIM) THEN - do i =1, 8 - cb = COUT(KNEXT-KRET/2)(i:i) - print *, 'test2', i, ib, KNEXT - end do - call byteswap(COUT(1), 8, 512) - WRITE(IUNO) COUT - KNEXT = 1 - DO KK = 1,KLIM - COUT(KK) = CBLK - END DO - END IF - COUT(KNEXT) = CEND - KNEXT = KNEXT + 1 - IF (KNEXT .GT. KLIM) THEN - do i =1, 8 - cb = COUT(KNEXT-1)(i:i) - print *, 'test3', i, ib, KNEXT - end do -C call byteswap(COUT(1), 8, 512) - WRITE(IUNO) COUT - KNEXT = 1 - DO KK = 1,KLIM - COUT(KK) = CBLK - END DO - END IF - END IF - ELSE -C -C OUTPUT THE LAST BLOCK OF DATA -C - IF (KNEXT.NE.1) THEN - COUT(KNEXT) = CENDFL - do i = 1, 512 - if (COUT(i) .EQ. "END_REPO") then - call byteswap(COUT(i), 8, 1) - end if - if (COUT(i) .EQ. "ENDOFILE") then - call byteswap(COUT(i), 8, 1) - end if - if (COUT(i) .EQ. "STR_REPO") then - call byteswap(COUT(i+6), 8, 1) - call byteswap(COUT(i), 8, 1) - end if - end do - - do i =1, 8 - cb = COUT(KNEXT)(i:i) - print *, 'test4', i, ib, KNEXT - end do - call byteswap(COUT(1), 8, 512) - WRITE (IUNO) COUT - ELSE -C -C OUTPUT AN END-OF-FILE RECORD, FOR THE CASE -C WHEN THERE IS NO DATA IN THE LAST BLOCK EXCEPT -C THE END OF FILE INDICATOR -C - COUT(1) = CENDFL - DO K=1,KLIM - COUT(K) = CBLK - END DO - do i =1, 8 - cb = COUT(1)(i:i) - print *, 'test5', i, ib, KNEXT - end do - call byteswap(COUT(1), 8, 512) - call byteswap(COUT(5), 8, 1) - WRITE(IUNO) COUT - END IF - END IF - RETURN -C - END diff --git a/util/sorc/upaprep.fd/fndhgt.f b/util/sorc/upaprep.fd/fndhgt.f deleted file mode 100755 index 50bfe8ae1b..0000000000 --- a/util/sorc/upaprep.fd/fndhgt.f +++ /dev/null @@ -1,81 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FNDHGT FIND THE 12HR OLD HEIGHTS -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: FNDHGT FINDS A STATION IN A LIST OF 12HR OLD -C MANDATORY LEVEL OBSERVATIONS. THE DATA IS RETURNED FOR -C EACH MANDATORY LEVEL. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -C -C USAGE: CALL FNDHGT (HDR, RHGTS, IREP, RLVLS, IRET) -C INPUT ARGUMENT LIST: -C HDR - UNPACKED BUFR HEADING INFORMATION (ID, LAT/LON ...) -C RHGTS - 12HR OLD MANDATORY LEVEL DATA -C IREP - NUMBER OF STATIONS IN RHGTS -C . . . . -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C RLVLS - 12HR OLD MANDATORY LEVEL DATA -C IRET - RETURN CODE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE FNDHGT(HDR, RHGTS, IREP, RLVLS, IRET) -C -C This subroutine finds a station in the array of 12HR -C old mandatory height data. The found station is -C returned. -C - REAL*8 RHGTS(800,23) - REAL*8 RLVLS(23) -C - DIMENSION HDR(10) - CHARACTER*8 CAR - REAL*8 RAR - EQUIVALENCE (CAR,RAR) -C -C START BY SETTING THE LEVEL ARRAY TO ZERO -C - DATA IX /0/ - IF (IX .EQ. 0) THEN - PRINT *,' I HAVE HGTS FOR:' - IX = 1 -C PRINT 102,(RHGTS(K,1),K=1,IREP) - 102 FORMAT(10A8) - 103 FORMAT(A8) - END IF - DO K = 2,23 - RLVLS(K) = 99999. - END DO - RLVLS(1) = HDR(1) -C -C LOCATE THE STATION TO PROCESS -C - IRET = 0 -C PRINT 100,HDR(1) - 100 FORMAT(' SEARCH FOR STATION ',A8) - DO K = 1,IREP - RAR = RHGTS(K,1) - IF (HDR(1) .EQ. RHGTS(K,1)) THEN -C PRINT *,' STATION FOUND' - DO J = 2,23 - RLVLS(J) = RHGTS(K,J) - END DO - RETURN - END IF - END DO -C -C STATION NOT FOUND -- RETURN IRET = -1 -C - IRET = -1 - RETURN -C - END - diff --git a/util/sorc/upaprep.fd/foraft.f b/util/sorc/upaprep.fd/foraft.f deleted file mode 100755 index df1d82ef99..0000000000 --- a/util/sorc/upaprep.fd/foraft.f +++ /dev/null @@ -1,132 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FORAFT FORM THE GRAPHICS FORMAT. -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-09-10 -C -C ABSTRACT: FORUPA TAKES UNPACKED BUFR FORMAT AND CONVERTS IT -C INTO A SIMPLE FORMAT FOR USE IN GRAPHICS PROGRAMS. -C -C PROGRAM HISTORY LOG: -C 96-09-10 LARRY SAGER -C -C USAGE: CALL FORUPA (HDR, ARR, IARR, KRET, IRETT1) -C INPUT ARGUMENT LIST: -C HDR - UNPACKED BUFR HEADING INFORMATION (ID, LAT/LON ...) -C ARR - UNPACKED BUFR MANDATORY LEVEL DATA -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C IARR - OUTPUT IN GRAPHICS FORMAT. -C KRET - POINTER TO STARTING LOCATION OF NEXT REPORT -C IRET1 - RETURN CODE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE FORAFT (HDR, ARR, IARR, KRET, IRET1) -C -C THIS SUBROUTINE CONVERTS THE BUFR DATA AND STORES INTO -C A FORMATED ARRAY. -C - REAL*8 ARR(10,255) -C - CHARACTER*8 CTEMP -C - INTEGER*8 IARR (300) - DIMENSION HDR (10) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA SHFL12/4096./ - DATA IMISS /Z'7FFFF000'/ - DATA KMISS /Z'20202020'/ -C -C----------------------------------------------------------------------| -C START BY SETTING BUFR TYPE AND SUBTYPE | -C----------------------------------------------------------------------| -C - IRET1 = 0 - IARR (9) = 41*SHFL12 - IARR (10)= 0 - RTEMP = HDR (1) - IARR(11) = ISHFT(ITEMP,-32) - IARR(12) = ISHFT(ISHFT(ITEMP,32),-32 ) - IARR(1)=NINT(HDR(3)*SHFL12) - IARR(2)=NINT((360.0-HDR(2))*SHFL12) - IARR(7)=NINT(HDR(5)*SHFL12) - IARR(8)=NINT(HDR(6)*SHFL12) -C -C STORE THE HOUR OF THIS REPORT -C - IARR(4) = NINT(HDR(8)*SHFL12) - J = 0 - IDX = 35 - IARR(15) = 2 * SHFL12 - IARR(16) = IDX*SHFL12 - J = 1 -C -C START WITH PRESSURE ALTITUDE -C - IF (ARR(6,J).LT.99999.) THEN - IARR(IDX)=NINT(ARR(6,J)*SHFL12 ) - ELSE - IARR(IDX) = IMISS - END IF -C -C PRESSURE... -C - IF (ARR(1,J) .LT. 99999.) THEN - IARR(IDX+6) = NINT(ARR(1,J)*SHFL12) - ELSE - IARR(IDX+6) = IMISS - END IF -C -C TEMPERATURE AND DEW POINT -C - IF (ARR(2,J).LT.99999.) THEN - IARR(IDX+1)=NINT(ARR(2,J)*SHFL12) - ELSE - IARR(IDX+1)=IMISS - END IF - IF (ARR(3,J).LT.99999.) THEN - IARR(IDX+2)=NINT(ARR(3,J)*SHFL12) - ELSE - IARR(IDX+2)=IMISS - END IF -C -C STORE WIND SPEED AND DIRECTION -C - IF (ARR(4,J).LT.99999.) THEN - IARR(IDX+3) = NINT(ARR(4,J) * SHFL12) - ELSE - IARR(IDX+3) = IMISS - END IF - IF (ARR(5,J).LT.99999.) THEN - SPED = ARR(5,J) - IARR(IDX+4) = NINT(SPED*SHFL12) - ELSE - IARR(IDX+4) = IMISS - END IF -C -C QUALITY MARKS -C - IF (ARR(7,J).LT.99999.) THEN - IARR(IDX+5)=NINT(ARR(7,J)*SHFL12) - ELSE - IARR(IDX+5)=IMISS - END IF -C -C UPDATE THE POINTER TO THE END OF THE REPORT -C - IDX = IDX + 8 -C -C LOAD THE POINTER TO THE END OF THIS REPORT -C - KRET = IDX -C - RETURN - END diff --git a/util/sorc/upaprep.fd/forsat.f b/util/sorc/upaprep.fd/forsat.f deleted file mode 100755 index ab2e130a19..0000000000 --- a/util/sorc/upaprep.fd/forsat.f +++ /dev/null @@ -1,159 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FORSAT FORM THE GRAPHICS FORMAT. -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: FORSAT TAKES UNPACKED BUFR FORMAT AND CONVERTS IT -C INTO A SIMPLE FORMAT FOR USE IN GRAPHICS PROGRAMS. -C -C PROGRAM HISTORY LOG: -C 97-02-15 LARRY SAGER -C -C USAGE: CALL FORSATT (HDR, ARR, NRET, IARR, KRET, IRET1) -C INPUT ARGUMENT LIST: -C HDR - UNPACKED BUFR HEADING INFORMATION (ID, LAT/LON ...) -C ARR - UNPACKED BUFR MANDATORY LEVEL DATA -C NRET - NUMBER OF LEVELS IN THE BUFR REPORT. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C IARR - OUTPUT IN GRAPHICS FORMAT. -C KRET - POINTER TO STARTING LOCATION OF NEXT REPORT -C IRET1 - RETURN CODE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE FORSAT (HDR, ARR, NRET, IARR, KRET, IRET1) -C -C THIS SUBROUTINE CONVERTS THE BUFR DATA AND STORES INTO -C A FORMATED ARRAY. -C - REAL*8 ARR(10,255) -C - CHARACTER*8 CTEMP -C - INTEGER*8 IARR (300) - INTEGER*8 ILEV (21) - DIMENSION HDR (10) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA SHFL12/4096./ - DATA IMISS /Z'7FFFF000'/ - DATA KMISS /Z'20202020'/ - DATA ILEV / 1000, 925, 850, 700, 500, 400, 300, 250, 200, - 1 150, 100, 70, 50, 30, 20, 10, 7, 5, 3, 2, 1 / -C -C----------------------------------------------------------------------| -C START BY SETTING DATA TYPE -C----------------------------------------------------------------------| -C - IRET1 = 0 - IARR (9) = 11*SHFL12 - IARR (10)= 0 - RTEMP = HDR (1) - IARR(11) = ISHFT(ITEMP,-32) - IARR(12) = ISHFT(ISHFT(ITEMP,32),-32 ) - IARR(1)=NINT(HDR(3)*SHFL12) - IARR(2)=NINT((360.0-HDR(2))*SHFL12) - IARR(7)=NINT(HDR(5)*SHFL12) - IARR(8)=NINT(HDR(6)*SHFL12) -C -C STORE THE HOUR OF THIS REPORT -C - IDR = NINT(HDR(8)*SHFL12) - IARR(4) = IDR - J = 0 - IDX = 35 - IARR(14) = IDX*SHFL12 - NLEV = 0 -C -C SET THE OUTPUT ARRAY MISSING -C - DO KK = 35,235 - IARR(KK) = IMISS - END DO - DO WHILE (J .LT. NRET) - J = J + 1 -C -C MANDATORY LEVEL DATA BELOW 100. MB -C - IF (ARR(1,J) .GT. 00. ) THEN - IPLV = NINT(ARR(1,J)) - DO K = 1,21 - IF(IPLV .EQ. ILEV(K)) THEN - IDX = 35 + (K-1)*7 - NLEV = K - 1 - GOTO 10 - END IF - END DO - GO TO 20 -C -C START WITH HEIGHTS AND 12HR HGT DIFFERENCES -C - 10 IF (ARR(2,J).LT.99999.) THEN - IARR(IDX)=NINT(ARR(2,J)*SHFL12) - IARR(IDX+5) = IMISS - ELSE - IARR(IDX) = IMISS - IARR(IDX+5) = IMISS - END IF -C -C TEMPERATURE AND DEW POINT -C - IF (ARR(3,J).LT.99999.) THEN - IARR(IDX+1)=NINT(ARR(3,J)*SHFL12) - ELSE - IARR(IDX+1)=IMISS - END IF - IF (ARR(4,J).LT.99999.) THEN - IARR(IDX+2)=NINT(ARR(4,J)*SHFL12) - ELSE - IARR(IDX+2)=IMISS - END IF -C -C STORE WIND SPEED AND DIRECTION -C -C IF (ARR(5,J).LT.99999.) THEN -C IARR(IDX+3) = NINT(ARR(5,J) * SHFL12) -C ELSE -C IARR(IDX+3) = IMISS -C END IF -C IF (ARR(6,J).LT.99999.) THEN -C SPED = ARR(6,J) -C IARR(IDX+4) = NINT(SPED*SHFL12) -C ELSE -C IARR(IDX+4) = IMISS -C END IF -C -C QUALITY MARKS -C - IA = 9 - IB = 99 - IC = 99 - IF((ARR(7,J) .LT. 100.) .AND. (ARR(7,J) .GE. 0.)) - 1 IA = ARR(7,J) - IF((ARR(8,J) .LT. 100.) .AND. (ARR(8,J) .GE. 0.)) - 1 IB = ARR(8,J) - IF((ARR(9,J) .LT. 100.) .AND. (ARR(9,J) .GE. 0.)) - 1 IC = ARR(9,J) - IARR(IDX+6) = (IA*10000 + IB*100 + IC)*SHFL12 -C PRINT *,' MARKS ',IARR(IDX+6) -C - 20 NLEV = NLEV + 1 - IDX = IDX + 7 - END IF - END DO -C -C STORE THE NUMBER OF LEVELS IN THIS REPORT -C - KRET = IDX - IARR(13) = NLEV * SHFL12 -C - RETURN - END diff --git a/util/sorc/upaprep.fd/forupa.f b/util/sorc/upaprep.fd/forupa.f deleted file mode 100755 index 665b88c509..0000000000 --- a/util/sorc/upaprep.fd/forupa.f +++ /dev/null @@ -1,165 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FORUPA FORM THE GRAPHICS FORMAT. -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: FORUPA TAKES UNPACKED BUFR FORMAT AND CONVERTS IT -C INTO A SIMPLE FORMAT FOR USE IN GRAPHICS PROGRAMS. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -C -C USAGE: CALL FORUPA (HDR, ARR, NRET, IARR, KRET, RLVLS, IRETT1) -C INPUT ARGUMENT LIST: -C HDR - UNPACKED BUFR HEADING INFORMATION (ID, LAT/LON ...) -C ARR - UNPACKED BUFR MANDATORY LEVEL DATA -C NRET - NUMBER OF LEVELS IN THE BUFR REPORT. -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C IARR - OUTPUT IN GRAPHICS FORMAT. -C KRET - POINTER TO STARTING LOCATION OF NEXT REPORT -C IRET1 - RETURN CODE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE FORUPA (HDR, ARR, NRET, IARR, KRET, - 1 RLVLS, IFLAG, IRET1) -C -C THIS SUBROUTINE CONVERTS THE BUFR DATA AND STORES INTO -C A FORMATED ARRAY. -C - REAL*8 ARR(10,255) - REAL*8 RLVLS(23) -C - CHARACTER*8 CTEMP -C - INTEGER*8 IARR (300) - INTEGER*8 ILEV (21) - DIMENSION HDR (10) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA SHFL12/4096./ - DATA IMISS /Z'7FFFF000'/ - DATA KMISS /Z'20202020'/ - DATA ILEV / 1000, 925, 850, 700, 500, 400, 300, 250, 200, - 1 150, 100, 70, 50, 30, 20, 10, 7, 5, 3, 2, 1 / -C -C----------------------------------------------------------------------| -C START BY SETTING DATA TYPE -C----------------------------------------------------------------------| -C - IRET1 = 0 - IARR (9) = 11*SHFL12 - IF(IFLAG .EQ. 1) IARR(9) = 31*SHFL12 - IARR (10)= 0 - RTEMP = HDR (1) - IARR(11) = ISHFT(ITEMP,-32) - IARR(12) = ISHFT(ISHFT(ITEMP,32),-32 ) - IARR(1)=NINT(HDR(3)*SHFL12) - IARR(2)=NINT((360.0-HDR(2))*SHFL12) - IARR(7)=NINT(HDR(5)*SHFL12) - IARR(8)=NINT(HDR(6)*SHFL12) -C -C STORE THE HOUR OF THIS REPORT -C - IDR = NINT(HDR(8) - HDR(4)) - IF(IDR .LT. 0) IDR = 24 + IDR - IARR(4) = IDR*SHFL12 - J = 0 - IDX = 35 - MIDX = IDX - IARR(14) = IDX*SHFL12 - NLEV = 0 - MLEV = 0 - DO WHILE (J .LT. NRET) - J = J + 1 -C -C MANDATORY LEVEL DATA BELOW 100. MB -C - IF (ARR(1,J) .GT. 00. ) THEN - IPLV = NINT(ARR(1,J)) - DO K = 1,21 - IF(IPLV .EQ. ILEV(K)) THEN - IDX = 35 + (K-1)*7 - NLEV = K - 1 - GOTO 10 - END IF - END DO - GO TO 30 -C -C START WITH HEIGHTS AND 12HR HGT DIFFERENCES -C - 10 IF (ARR(2,J).LT.99999.) THEN - IARR(IDX)=NINT(ARR(2,J)*SHFL12) - IF (RLVLS(NLEV+3) .LT. 99999.0) THEN - RDIF = ARR(2,J) - RLVLS(NLEV+3) - IARR(IDX+5) = NINT(RDIF*SHFL12) - ELSE - IARR(IDX+5) = IMISS - END IF - ELSE - IARR(IDX) = IMISS - IARR(IDX+5) = IMISS - END IF -C -C TEMPERATURE AND DEW POINT -C - IF (ARR(3,J).LT.99999.) THEN - IARR(IDX+1)=NINT(ARR(3,J)*SHFL12) - ELSE - IARR(IDX+1)=IMISS - END IF - IF (ARR(4,J).LT.99999.) THEN - IARR(IDX+2)=NINT(ARR(4,J)*SHFL12) - ELSE - IARR(IDX+2)=IMISS - END IF -C -C STORE WIND SPEED AND DIRECTION -C - IF (ARR(5,J).LT.99999.) THEN - IARR(IDX+3) = NINT(ARR(5,J) * SHFL12) - ELSE - IARR(IDX+3) = IMISS - END IF - IF (ARR(6,J).LT.99999.) THEN - SPED = ARR(6,J) - IARR(IDX+4) = NINT(SPED*SHFL12) - ELSE - IARR(IDX+4) = IMISS - END IF -C -C QUALITY MARKS -C - IA = 9 - IB = 99 - IC = 99 - IF (ARR(7,J) .LT. 1000.) IA = ARR(7,J) - IF (ARR(8,J) .LT. 1000.) IB = ARR(8,J) - IF (ARR(9,J) .LT. 1000.) IC = ARR(9,J) - - IARR(IDX+6) = (IA*10000 + IB*100 + IC)*SHFL12 -C PRINT *,' MARKS ',IARR(IDX+6) -C - NLEV = NLEV + 1 - IF(NLEV .GT. MLEV) MLEV = NLEV - IDX = IDX + 7 - IF(IDX .GT. MIDX) MIDX = IDX - 30 CONTINUE - END IF - END DO -C -C STORE THE NUMBER OF LEVELS IN THIS REPORT -C - KRET = MIDX - IARR(13) = MLEV * SHFL12 -C - RETURN - END diff --git a/util/sorc/upaprep.fd/forwnd.f b/util/sorc/upaprep.fd/forwnd.f deleted file mode 100755 index e98d260734..0000000000 --- a/util/sorc/upaprep.fd/forwnd.f +++ /dev/null @@ -1,132 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: FORWND FORM THE GRAPHICS FORMAT. -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-09-10 -C -C ABSTRACT: FORWND TAKES UNPACKED BUFR FORMAT AND CONVERTS IT -C INTO A SIMPLE FORMAT FOR USE IN GRAPHICS PROGRAMS. -C -C PROGRAM HISTORY LOG: -C 96-09-10 LARRY SAGER -C -C USAGE: CALL FORWND (HDR, ARR, IARR, KRET, IRETT1) -C INPUT ARGUMENT LIST: -C HDR - UNPACKED BUFR HEADING INFORMATION (ID, LAT/LON ...) -C ARR - UNPACKED BUFR MANDATORY LEVEL DATA -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C IARR - OUTPUT IN GRAPHICS FORMAT. -C KRET - POINTER TO STARTING LOCATION OF NEXT REPORT -C IRET1 - RETURN CODE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE FORWND (HDR, ARR, IARR, KRET, IRET1) -C -C THIS SUBROUTINE CONVERTS THE BUFR DATA AND STORES INTO -C A FORMATED ARRAY. -C - REAL*8 ARR(10,255) -C - CHARACTER*8 CTEMP -C - INTEGER*8 IARR (300) - DIMENSION HDR (10) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA SHFL12/4096./ - DATA IMISS /Z'7FFFF000'/ - DATA KMISS /Z'20202020'/ -C -C----------------------------------------------------------------------| -C START BY SETTING BUFR TYPE AND SUBTYPE | -C----------------------------------------------------------------------| -C - IRET1 = 0 - IARR (9) = 62*SHFL12 - IARR (10)= 0 - RTEMP = HDR (1) - IARR(11) = ISHFT(ITEMP,-32) - IARR(12) = ISHFT(ISHFT(ITEMP,32),-32 ) - IARR(1)=NINT(HDR(3)*SHFL12) - IARR(2)=NINT((360.0-HDR(2))*SHFL12) - IARR(7)=NINT(HDR(5)*SHFL12) - IARR(8)=NINT(HDR(6)*SHFL12) -C -C STORE THE HOUR OF THIS REPORT -C - IARR(4) = NINT(HDR(8)*SHFL12) - J = 0 - IDX = 35 - IARR(15) = 2 * SHFL12 - IARR(16) = IDX*SHFL12 - J = 1 -C -C START WITH PRESSURE ALTITUDE -C - IF (ARR(6,J).LT.99999.) THEN - IARR(IDX)=NINT(ARR(6,J)*SHFL12 ) - ELSE - IARR(IDX) = IMISS - END IF -C -C PRESSURE... -C - IF (ARR(1,J) .LT. 99999.) THEN - IARR(IDX+6) = NINT(ARR(1,J)*SHFL12) - ELSE - IARR(IDX+6) = IMISS - END IF -C -C TEMPERATURE AND DEW POINT -C - IF (ARR(2,J).LT.99999.) THEN - IARR(IDX+1)=NINT(ARR(2,J)*SHFL12) - ELSE - IARR(IDX+1)=IMISS - END IF - IF (ARR(3,J).LT.99999.) THEN - IARR(IDX+2)=NINT(ARR(3,J)*SHFL12) - ELSE - IARR(IDX+2)=IMISS - END IF -C -C STORE WIND SPEED AND DIRECTION -C - IF (ARR(4,J).LT.99999.) THEN - IARR(IDX+3) = NINT(ARR(4,J) * SHFL12) - ELSE - IARR(IDX+3) = IMISS - END IF - IF (ARR(5,J).LT.99999.) THEN - SPED = ARR(5,J) - IARR(IDX+4) = NINT(SPED*SHFL12) - ELSE - IARR(IDX+4) = IMISS - END IF -C -C QUALITY MARKS -C - IF (ARR(7,J).LT.99999.) THEN - IARR(IDX+5)=NINT(ARR(7,J)*SHFL12) - ELSE - IARR(IDX+5)=IMISS - END IF -C -C UPDATE THE POINTER TO THE END OF THE REPORT -C - IDX = IDX + 8 -C -C LOAD THE POINTER TO THE END OF THIS REPORT -C - KRET = IDX -C - RETURN - END diff --git a/util/sorc/upaprep.fd/makefile b/util/sorc/upaprep.fd/makefile deleted file mode 100755 index 132e014963..0000000000 --- a/util/sorc/upaprep.fd/makefile +++ /dev/null @@ -1,55 +0,0 @@ -SHELL=/bin/sh -# - -SRCS= upaupa.f forupa.f redupa.f redhgt.f fndhgt.f brdhgt.f \ - conaft.f contrl.f dosbyt.f foraft.f conwnd.f forwnd.f \ - consat.f forsat.f - -OBJS= upaupa.o forupa.o redupa.o redhgt.o fndhgt.o brdhgt.o \ - conaft.o contrl.o dosbyt.o foraft.o conwnd.o forwnd.o \ - consat.o forsat.o - -# Tunable parameters -# -# FC Name of the fortran compiling system to use -# LDFLAGS Flags to the loader -# LIBS List of libraries -# CMD Name of the executable -# PROFLIB Library needed for profiling -# -FC = ifort - -LIBS = ${GPHCNTR_LIB8} ${GPHFONT_LIB8} ${GPH_LIB8} ${UTIL_LIB} \ - ${IP_LIB8} ${SP_LIB8} ${W3EMC_LIB8} ${W3NCO_LIB8} ${BACIO_LIB8} ${BUFR_LIB8} - -CMD = upaprep - -FFLAGS = -D_LITTLE_ENDIAN -g -i8 -r8 -assume byterecl -convert big_endian \ - -assume noold_ldout_format - -# To perform the default compilation, use the first line -# To compile with flowtracing turned on, use the second line -# To compile giving profile additonal information, use the third line -# WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -# Make the profiled version of the command and call it a.out.prof -# -# $(CMD).prof: $(OBJS) -# $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) - -clean: - -rm -f $(OBJS) - -clobber: clean - -rm -f $(CMD) $(CMD).prof - -void: clobber - -rm -f $(SRCS) makefile diff --git a/util/sorc/upaprep.fd/redhgt.f b/util/sorc/upaprep.fd/redhgt.f deleted file mode 100755 index 78ed7effbf..0000000000 --- a/util/sorc/upaprep.fd/redhgt.f +++ /dev/null @@ -1,161 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDHGT READ 12HR OLD HEIGHTS -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: REDHGT READS THE 12-HR OLD UPPER AIR FILE -C AND EXTRACTS THE HEIGHT DATA FOR USE IN THE 12HR HEIGHT -C CHANGE CALCULATION. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -C -C USAGE: CALL REDHGT (COUT, ARR, RHGTS IREP, IRET) -C INPUT ARGUMENT LIST: -C COUT - ARRAY SPACE TO HOLD 12HR OLD UPPER AIR DATA -C ARR - ARRAY SPACE TO HOLD UPPER AIR REPORT -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C RHGTS - 12HR OLD MANDATORY LEVEL HEIGHT DATA -C IREP - NUMBER OF REPORTS RETURNED -C IRET - RETURN CODE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - - SUBROUTINE REDHGT(COUT, ARR, RHGTS, IREP, IRET) -C -C This subroutine reads the 12HR old upper air file in -C graphics format and returns the mandatory height data -C in an array. -C - CHARACTER*8 COUT (512) - CHARACTER*8 CAR - CHARACTER*8 CSTA -C - INTEGER*8 IHAF(512) -C - REAL*8 RHGTS(800,23) - REAL*8 ARR (300) - REAL*8 RAR -C - DATA KLIM /800/ - DATA IMASK /Z'FFFFFFFF00000000'/ - DATA IUNO /11/ -C - EQUIVALENCE (CAR,IAR) - EQUIVALENCE (CAR,RAR) -C - KNEXT = 1 -C -C READ THE UPAUPA DATA AND RETURN THE HGTS -C - ITOT = 0 - NOTEOF = 0 - IREC = 0 - DO WHILE (NOTEOF.EQ.0) - READ (IUNO,END=20) COUT - IREC = IREC +1 - IF ( IREC .EQ. 1 ) THEN - CAR = COUT(5) - call byteswap(CAR, 8, 1) - KNEXT = IAR - 1 - KNEXT = KNEXT + 1 - END IF - NEXREP = 0 - DO WHILE (NEXREP.EQ.0) - IF(COUT(KNEXT).EQ.'STR_REPO') THEN - KNEXT = KNEXT + 1 - IF (KNEXT .GT. 512) THEN - KNEXT = 1 - READ(IUNO) COUT - END IF - ELSE IF(COUT(KNEXT) .EQ. 'ENDOFILE') THEN - IRET = 10 - RETURN - ELSE - PRINT *,' STR_REPO NOT FOUND REDHGT' - RETURN - END IF - IF(KNEXT .LT. 512) THEN - CAR = COUT(KNEXT+1) - call byteswap(CAR, 8, 1) - KEND = ISHFT(IAR,-32)/4096 - IF(KEND .EQ. 1) KEND = -2 - KEND = KEND/2 - ELSE - KEND = 0 - END IF - IF(KEND.LT.KNEXT) THEN - CALL BRDHGT(KNEXT, KEND, COUT, IUNO, RHGTS, - 1 IREP, ARR, IREB) - IF(IREB.EQ.10) THEN - NOTEOF = 1 - NEXREP = 1 - ENDIF - ELSE - J = 1 - ITOT = ITOT + 1 - DO K = KNEXT,KEND - CAR = COUT(K) - call byteswap(CAR, 8, 1) - IAR1 = ISHFT(IAR,-32) - IA = ISHFT(IAR1,-28) - IF (IA .GT. 0) IAR1=IAR1+IMASK - IAR2 = ISHFT(ISHFT(IAR,32),-32) - IA = ISHFT(IAR2,-28) - IF (IA .GT. 0) IAR2 = IAR2+IMASK - FAR = IAR1 - FAR = (FAR/4096.) - FAR2 = IAR2 - FAR2 = (FAR2/4096.) - ARR(J) = FAR - ARR(J+1) = FAR2 - J = J + 2 - END DO - CSTA = COUT(KNEXT+5) - IA = ARR(13) - IB = ARR(14) - IE = KEND + 1 - IF(IE.GT.512) THEN - IE = 1 - READ(IUNO) COUT - END IF - IF(COUT(IE).EQ.'END_REPO') THEN - KNEXT = IE + 1 - IF(KNEXT .GT. 512) THEN - KNEXT = 1 - READ(IUNO) COUT - END IF - ELSE - PRINT *,' END REPO NOT FOUND REDHGT' - RETURN - END IF -C -C STORE THE HEIGHT -C - IF ((IA .GT. 0) .AND. (IREP .LT. KLIM)) THEN - IREP = IREP + 1 - CAR = CSTA - RHGTS(IREP,1) = RAR - RHGTS(IREP,2) = ARR(4) - IND = IB - DO K = 1,IA - RHGTS(IREP,K+2) = ARR(IND) - IND = IND + 7 - END DO - END IF - END IF - END DO - END DO -C - RETURN -C - 20 PRINT *,' NO FILE FOUND' - END - diff --git a/util/sorc/upaprep.fd/redupa.f b/util/sorc/upaprep.fd/redupa.f deleted file mode 100755 index 3339c12b92..0000000000 --- a/util/sorc/upaprep.fd/redupa.f +++ /dev/null @@ -1,453 +0,0 @@ -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: REDUPA READ UPPER AIR BUFR FILE -C PRGMMR: LARRY SAGER ORG: W/NMC41 DATE: 96-08-27 -C -C ABSTRACT: REDUPA READS THE PREPBUFR OBSERVATIONAL FILE AND -C RETURNS A SINGLE STATION IN AN ARRAY. -C -C PROGRAM HISTORY LOG: -C 96-08-27 LARRY SAGER -C -C USAGE: CALL REDUPA (SRE, ERE, RLIMS,ISWR,HDR, ARR, -C ITYP, NRET1, IRET) -C INPUT ARGUMENT LIST: -C SRE - STARTING WMO BLOCK NUMBER TO DUMP -C ERE - ENDING WMO BLOCK NUMBER TO DUMP -C RLIMS - LAT/LONG LIMITS TO DUMP -C ISWR - BLOCK/ LATLONG THINING SWITCH -C -C OUTPUT ARGUMENT LIST: (INCLUDING WORK ARRAYS) -C HDR - HEADER RECORD FOR STATION. CONTAINS -C - ID, LONG, LAT, HOUR, ELEVATION AND TYPE. -C ARR - DATA ARRAY FOR MANDATORY LEVEL DATA -C HEIGHT, TEMPERATURE, DEW PT, WIND SPEED -C WIND DIRECTION AND Q-MARKS -C ITYP - TYPE OF DATA ITYP=1 ADPUPA -C ITYP=2 AIRCFT AIRCAR -C -C INPUT FILES: (DELETE IF NO INPUT FILES IN SUBPROGRAM) -C FT55F001 - PREPBUFR UPPER AIR DATA FILE -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ - SUBROUTINE REDUPA( SRE, ERE, RLIMS, ISWR, HDR, ARR, - 1 ITYP, NRET1, ITIR, IFLG , IRET) -C -C REDUPA READS THE PREPBUFR FILE AND RETURNS AN UNPACKED -C BUFR REPORT. -C - CHARACTER*8 INOUT - CHARACTER*8 SUBSET - CHARACTER*8 CTEMP - CHARACTER*8 SRE, ERE - CHARACTER*40 CATA, CATB, STRING, CTEM - CHARACTER*40 CATC, CATD, CATG, CATH -C - DIMENSION HDR (10) - DIMENSION RHDR (10) - DIMENSION HDA (10) -C - REAL ARR (10,255) - REAL BRR (6,255) - REAL CRR (5,255) - REAL DRR (6,255) - REAL TRR (4,255,20) - REAL RLIMS (4) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) - EQUIVALENCE (C651,R651) -C - DATA STRING /'SID XOB YOB DHR ELV TYP SQN'/ - DATA CTEM /'CAT=1 TOB TQM TPC POB '/ - DATA CATA /'CAT=1 POB ZOB ZQM TOB TQM TDO '/ - DATA CATB /'CAT=1 POB DDO FFO WQM '/ - DATA CATC /'CAT=5 POB DDO FFO WQM '/ - DATA CATD /'CAT=5 POB ZOB ZQM TOB TQM TDO '/ - DATA CATG /'CAT=6 POB ZOB ZQM TOB TQM TDO '/ - DATA CATH /'CAT=6 POB DDO FFO WQM'/ - DATA IX /0/ - DATA RMISS /9999999./ - DATA KSTA /0/ - DATA IK /0/ - DATA C651 /'74651 '/ -C -C----------------------------------------------------------------------| -C OPEN THE CRAY BUFR TANK FILE | -C----------------------------------------------------------------------| -C - SAVE - IRET = 0 - IMASS = 0 - IWIND = 0 - LUBFR = 10 - IF( IX .EQ. 0) THEN - IX = 1 - INOUT = 'IN' - LUNDX = 10 -C PRINT *,'about to open bufr file' - CALL OPENBF( LUBFR, INOUT, LUNDX ) - 10 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) -C PRINT *,' SUBSET',SUBSET,' RET ',IRET1 - IF(IRET1 .NE. 0) GOTO 50 - ITYP = 0 - IF(SUBSET .EQ. 'ADPUPA' ) ITYP = 1 - IF(SUBSET .EQ. 'AIRCFT' ) ITYP = 2 - IF(SUBSET .EQ. 'AIRCAR' ) ITYP = 2 - IF(SUBSET .EQ. 'SATWND' ) ITYP = 3 - IF(ITYP .EQ. 0) GOTO 10 - ENDIF - IF(IK .EQ. 1) THEN - IK = 0 - GOTO 28 - END IF -C -C----------------------------------------------------------------------| -C READ THE BUFR DATA TANKS -C----------------------------------------------------------------------| -C - 20 CALL READSB (LUBFR,IRET2) - IF (IRET2 .LT. 0) THEN - 22 CALL READMG(LUBFR, SUBSET, IDATE, IRET1) -C PRINT *,' SUBSET',SUBSET,' RET ',IRET1 - IF (IRET1 .LT. 0) GOTO 50 - ITYP = 0 - IF(SUBSET .EQ. 'ADPUPA' ) THEN - ITYP = 1 - GOTO 20 - END IF - IF(SUBSET .EQ. 'AIRCFT' ) THEN - ITYP = 2 - GOTO 20 - END IF - IF(SUBSET .EQ. 'AIRCAR' ) THEN - ITYP = 2 - GOTO 20 - END IF - IF(SUBSET .EQ. 'SATWND' ) THEN - ITYP = 3 - GOTO 20 - END IF - IF(ITYP .EQ. 0) GOTO 22 - END IF -C -C----------------------------------------------------------------------| -C READ IN THE STATION INFORMATION | -C----------------------------------------------------------------------| -C - 28 LUBFA = LUBFR - CALL UFBINT (LUBFR, HDR, 10, 1, NRET, STRING) -C IF(ITYP .EQ. 3) PRINT 119,ITYP,HDR(1),HDR(6) - 119 FORMAT(' FOUND TYPE ',i3,' STATION ',A8,' subtype ',F10.1) -C -C----------------------------------------------------------------------| -C PROCESS AN UPPER AIR RADIOSONDE REPORT. START BY -C MAKING SURE THIS REPORT IS THE CORRECT TYPE AND THAT -C IT'S WITHIN THE AREA TO PROCESS. IF NOT, GO READ -C THE NEXT REPORT -C----------------------------------------------------------------------| -C - IF (ITYP .EQ. 1) THEN - IF ((HDR(6) .NE. 120.) .AND. (HDR(6) .NE. 220.) .AND. - 1 (HDR(6) .NE. 132.) .AND. (HDR(6) .NE. 232.)) GOTO 20 - IF((HDR(6) .EQ. 132.) .OR. (HDR(6) .EQ. 232.)) IFLG = 1 - IF(ISWR .EQ. 0) THEN - RTEMP = HDR (1) - ITEMP = ISHFT(ITEMP,-48) - IF((CTEMP .LT. SRE) .OR. (CTEMP .GT. ERE)) GO TO 20 - END IF -C -C MAKE SURE THIS STATION IS WITHIN THE LAT/LONG LIMITS -C - IF(ISWR .EQ. 1) THEN - IF((HDR(3) .GT. RLIMS(1)) .OR. (HDR(3) .LT. RLIMS(2))) - 1 GOTO 20 - IF((HDR(2) .LT. RLIMS(3)) .OR. (HDR(2) .GT. RLIMS(4))) - 1 GOTO 20 - END IF -C PRINT 100,HDR(1),HDR(2),HDR(3),HDR(4),HDR(6),HDR(7) - IF(HDR(1) .EQ. R651) GOTO 20 - IK = 0 - IF((IMASS .EQ. 1) .AND. (IWIND .EQ. 0)) THEN - IF(RHDR(1) .NE. HDR(1)) THEN -C PRINT 109,HDR(1),RHDR(1),HDR(2),HDR(3),HDR(4),HDR(6),HDR(7) - 109 FORMAT(' MISM ',a8,' OLD ',a8, ' LL ',2f10.1,' HR ',f6.0, - 1 ' typ ',f6.0,' SEQ ',f10.0) - IK = 1 - DO K = 1,10 - HDR(K) = RHDR(K) - END DO - GO TO 40 - END IF - END IF - DO K = 1,10 - RHDR(K) = HDR(K) - END DO - KSTA = KSTA + 1 -C -C----------------------------------------------------------------------| -C UNPACK THE BUFR REPORT -C----------------------------------------------------------------------| -C - IF (HDR(6) .LT. 200.) THEN - CALL UFBINT (LUBFR, BRR, 6, 255, NRET1, CATA) - IMSQ = NINT(HDR(7)) - IMASS = 1 -C -C GET THE OBSERVED TEMPERATURES BY FLIPPING BACK -C THROUGH THE EVENTS -C - CALL UFBEVN(LUBFR, TRR, 4, 255, 20, IRAT, CTEM) - DO 7 K = 1,IRAT - DO M = 1,20 - IF(NINT(TRR(3,K,M)) .EQ. 1) THEN - BRR(4,K) = TRR(1,K,M) - GOTO 7 - END IF - END DO - 7 CONTINUE -C -C SAVE THE TROPOPAUSE IF IT OCCURS AT A MANDATORY -C LEVEL -C - CALL UFBINT (LUBFR, DRR, 6, 255, NRET3, CATD) - ITROP = 0 - IF(NRET3 .GT. 0) THEN -C DO K = 1,NRET3 -C PRINT *,' TROP ',(DRR(KK,K),KK=1,6) -C END DO - IREM = NINT(DRR(1,1)) - ICOM = IREM/10 - ICOM = ICOM*10 - IF(IREM .EQ. ICOM) THEN - ITROP = 1 - NRET1 = NRET1 + 1 - BRR(1,NRET1) = DRR(1,1) - BRR(2,NRET1) = DRR(2,1) - BRR(3,NRET1) = DRR(3,1) - BRR(4,NRET1) = DRR(4,1) - BRR(5,NRET1) = DRR(5,1) - BRR(6,NRET1) = DRR(6,1) -C -C RETRIEVE THE TROP WINDS -C - CALL UFBINT (LUBFR, DRR, 6, 255, NRET3, CATC) - END IF - ENDIF -C DO K = 1,NRET1 -C PRINT *,' PRES ',(BRR(KK,K),KK=1,6) -C END DO - GOTO 20 - END IF - IF (HDR(6) .GT. 200.) THEN - CALL UFBINT (LUBFR, CRR, 5, 255, NRET2, CATB) - IWSQ = NINT(HDR(7)) -C -C RETRIEVE THE TROP WINDS -C - IF(ITROP .EQ. 1) THEN - CALL UFBINT (LUBFR, DRR, 6, 255, NRET3, CATC) - NRET2 = NRET2 + 1 - CRR(1,NRET2) = DRR(1,1) - CRR(2,NRET2) = DRR(2,1) - CRR(3,NRET2) = DRR(3,1) - CRR(4,NRET2) = DRR(4,1) - END IF -C DO K = 1,NRET2 -C PRINT *,' WINDS ',(CRR(KK,K),KK=1,4) -C END DO - IWIND = 1 - END IF - IF ((IMASS .EQ. 0) .OR. (IWIND .EQ. 0)) GO TO 20 -C -C STORE THE PIECES OF THE REPORT INTO AN ARRAY -C - 40 DO K=1,NRET1 - ARR (1,K) = BRR (1,K) - ARR (2,K) = BRR (2,K) - ARR (3,K) = BRR (4,K) - ARR (4,K) = BRR (6,K) - ARR (7,K) = BRR (3,K) - ARR (8,K) = BRR (5,K) - IF(IMSQ .NE. IWSQ) THEN -C PRINT *,' SEQ #s DO NOT MATCH DROP WINDS' - GOTO 32 - END IF - DO J = 1,NRET2 - IF(BRR(1,K) .EQ. CRR(1,J)) THEN - ARR (5,K) = CRR (2,J) - ARR (6,K) = CRR (3,J) - ARR (9,K) = CRR (4,J) - GOTO 32 - END IF - END DO - 32 IF (ARR(7,K) .LT. 0.0) ARR(7,K) = 99. - IF (ARR(8,K) .LT. 0.0) ARR(8,K) = 99. - IF (ARR(9,K) .LT. 0.0) ARR(9,K) = 99. - IF (ARR(7,K) .GT. 1000.) ARR(7,K) = 99. - IF (ARR(8,K) .GT. 1000.) ARR(8,K) = 99. - IF (ARR(9,K) .GT. 1000.) ARR(9,K) = 99. -C PRINT *,' PRES ',ARR(1,K),' TMP ',ARR(3,K) - END DO - IMASS = 0 - IWIND = 0 -C -C SET THE WORK AREA TO MISSING AND RETURN -C - DO K = 1,NRET1 - BRR(1,K) = RMISS - BRR(2,K) = RMISS - BRR(4,K) = RMISS - BRR(6,K) = RMISS - CRR(2,K) = RMISS - CRR(3,K) = RMISS - BRR(3,K) = RMISS - BRR(5,K) = RMISS - CRR(4,K) = RMISS - END DO - RETURN - END IF - IF(ITYP .EQ. 2) THEN -C -C UNPACK AND STORE THE AIRCRAFT DATA -C -C----------------------------------------------------------------------| -C GET THE RELEVANT PARTS OF THE UNPACKED BUFR MESSAGE | -C----------------------------------------------------------------------| - IF(HDR(4) .GT. 3.0) GOTO 20 - IF(HDR(4) .LT. -3.0) GOTO 20 - IFLAG = 0 -C PRINT 100,HDR(1),HDR(2),HDR(3),HDR(4),HDR(6) - IF((HDR(3) .GT. RLIMS(1)) .OR. (HDR(3) .LT. RLIMS(2))) - 1 GOTO 20 - IF((HDR(2) .LT. RLIMS(3)) .OR. (HDR(2) .GT. RLIMS(4))) - 1 GOTO 20 -C PRINT 100,HDR(1),HDR(2),HDR(3),HDR(4),HDR(6) - 100 FORMAT(a8,' LL ',2f10.1,' HR ',f6.0,' typ ',f6.0,' SEQ ',f10.0) -C -C READ FROM THE BUFR TANKS -C -C HEIGHTS -C - ARR(6,1) = HDR(5) - IF ((HDR(6) .EQ. 130.) .OR. (HDR(6) .EQ. 131.) .OR. - 1 (HDR(6) .EQ. 133.)) THEN - CALL UFBINT (LUBFR, BRR, 6, 255, NRET1, CATG) - IMASS = 1 - ARR (1,1) = BRR(1,1) - ARR (2,1) = BRR(4,1) - ARR (3,1) = BRR(6,1) - ARR (6,1) = BRR(2,1) - ARR (7,1) = 0. - IF(BRR(3,1) .LT. 99.) ARR(7,1) = BRR(3,1)*10000. - IF(BRR(5,1) .LT. 99.) - 1 ARR(7,1) = ARR(7,1) + BRR(5,1)*100. - GOTO 20 - END IF -C -C WINDS -C - IF ((HDR(6) .EQ. 230.) .OR. (HDR(6) .EQ. 231.) .OR. - 1 (HDR(6) .EQ. 233.)) THEN - CALL UFBINT (LUBFR, CRR, 5, 255, NRET2, CATH) - ARR (1,1) = CRR (1,1) - ARR (4,1) = CRR (2,1) - ARR (5,1) = CRR (3,1) - IF(CRR(4,1) .LT. 99.) - 1 ARR(7,1) = ARR(7,1) + CRR(4,1) - IWIND = 1 - END IF - IF((IWIND.EQ.0) .AND. (IMASS .EQ. 0)) GOTO 20 - END IF -C -C READ THE SATWND DATA -C - IF (ITYP .EQ. 3) THEN -C -C MAKE SURE THIS STATION IS WITHIN THE LAT/LONG LIMITS -C - IF((HDR(3) .GT. RLIMS(1)) .OR. (HDR(3) .LT. RLIMS(2))) - 1 GOTO 20 - IF((HDR(2) .LT. RLIMS(3)) .OR. (HDR(2) .GT. RLIMS(4))) - 1 GOTO 20 -C -C----------------------------------------------------------------------| -C UNPACK THE BUFR REPORT -C----------------------------------------------------------------------| -C - ARR(6,1) = HDR(5) - IF((HDR(6) .EQ. 144.) .OR. (HDR(6) .EQ. 140.))THEN - CALL UFBINT (LUBFR, BRR, 6, 255, NRET1, CATG) - IMASS = 1 -C PRINT 298,BRR(1,1),BRR(2,1) - 298 FORMAT(' SAT MASS ',2f8.0) - ARR (1,1) = BRR(1,1) - ARR (2,1) = BRR(4,1) - ARR (3,1) = BRR(6,1) - ARR (6,1) = BRR(2,1) - ARR (7,1) = 0. - IF(BRR(3,1) .LT. 99.) ARR(7,1) = BRR(3,1)*10000. - IF(BRR(5,1) .LT. 99.) - 1 ARR(7,1) = ARR(7,1) + BRR(5,1)*100. - GOTO 20 - END IF - IF((HDR(6) .eq. 245.) .OR. (HDR(6) .EQ. 253.) .OR. - 1 (HDR(6). eq. 243.) .or. (HDR(6) .EQ. 246.)) THEN - CALL UFBINT (LUBFR, CRR, 5, 255, NRET2, CATH) -C PRINT 299,CRR(2,1),CRR(3,1) - 299 FORMAT(' SAT WINDS ',2f8.0) - ARR (1,1) = CRR (1,1) - ARR (4,1) = CRR (2,1) - ARR (5,1) = CRR (3,1) - IF(CRR(4,1) .LT. 99.) - 1 ARR(7,1) = ARR(7,1) + CRR(4,1) - IWIND = 1 - END IF - IF(IWIND.EQ.0) GOTO 20 - END IF -C -C PROCESS THE TIROS DATA -C -C IF(ITYP .EQ. 4) THEN -C -C MAKE SURE THIS STATION IS WITHIN THE LAT/LONG LIMITS -C -C IF((HDR(3) .GT. RLIMS(1)) .OR. (HDR(3) .LT. RLIMS(2))) -C 1 GOTO 20 -C IF((HDR(2) .LT. RLIMS(3)) .OR. (HDR(2) .GT. RLIMS(4))) -C 1 GOTO 20 -C -C----------------------------------------------------------------------| -C UNPACK THE BUFR REPORT -C----------------------------------------------------------------------| -C -C IF((HDR(6) .EQ. 171.) .OR. (HDR(6) .EQ. 172.) .OR. -C 1 (HDR(6) .EQ. 173.)) THEN -C CALL UFBINT (LUBFR, BRR, 6, 255, NRET1, CATA) -C DO K=1,NRET1 -C ARR (1,K) = BRR (1,K) -C ARR (2,K) = BRR (2,K) -C ARR (3,K) = BRR (4,K) -C ARR (4,K) = BRR (6,K) -C ARR (7,K) = BRR (3,K) -C ARR (8,K) = BRR (5,K) -C IF (ARR(7,K) .LT. 0.0) ARR(7,K) = 99. -C IF (ARR(8,K) .LT. 0.0) ARR(8,K) = 99. -C IF (ARR(7,K) .GT. 1000.) ARR(7,K) = 99. -C IF (ARR(8,K) .GT. 1000.) ARR(8,K) = 99. -C ARR(9,K) = 99. -C END DO -C END IF -C END IF - RETURN -C - 50 IRET = -1 - - RETURN - END diff --git a/util/sorc/upaprep.fd/upaupa.f b/util/sorc/upaprep.fd/upaupa.f deleted file mode 100755 index 9fd1d3a8d1..0000000000 --- a/util/sorc/upaprep.fd/upaupa.f +++ /dev/null @@ -1,234 +0,0 @@ -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: GRAPH_UPAUPA -C PRGMMR: SAGER ORG: NP12 DATE: 2000-01-18 -C -C ABSTRACT: UPAUPA READS IN OBSERVATIONAL RADIOSONDE UPPER AIR -C REPORTS AND REFORMATS THE MANDATORY LEVEL DATA INTO A SIMPLE -C FLAT FILE FORMAT FOR INPUT INTO GRAPHICS CODES -C -C PROGRAM HISTORY LOG: -C 99-07-27 LARRY SAGER CONVERTED TO THE IBM SP -C 96-08-27 LARRY SAGER -C -C USAGE: -C INPUT FILES: -C FT10F001 - PREPBUFR UPPER AIR DATA FILE -C FT11F001 - 12HR OLD UPPER AIR DATA FILE(GRAPHICS FORMAT) -C -C OUTPUT FILES: (INCLUDING SCRATCH FILES) -C FT55F001 - MANDATORY UPPER AIR DATA IN GRAPHICS FORMAT -C -C SUBPROGRAMS CALLED: (LIST ALL CALLED FROM ANYWHERE IN CODES) -C UNIQUE: - REDHGT BRDHGT CONTRL CONAFT REDUPA FNDHGT -C FORUPA -C LIBRARY: -C COMMON - OPENBF UFBINT READSB READMG SBYTES -C W3LIB - W3UTCDAT -C GRAPHICS - BIN2CH -C -C EXIT STATES: -C COND = 0 - SUCCESSFUL RUN -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CRAY CFT77 FORTRAN -C MACHINE: CRAY4 -C -C$$$ -C - CHARACTER*8 COUT (512) - CHARACTER*8 CTUT (512) - CHARACTER*8 CAFT (512) - CHARACTER*8 CWND (512) - CHARACTER*8 SRE, ERE - CHARACTER*8 CTEMP, CDATE - CHARACTER*40 ENDMSG -C - INTEGER*8 IARR (300) - INTEGER*8 ITME (8) - DIMENSION HDR (10) -C - REAL ARR (10,255) - REAL*8 RHGTS (800,23) - REAL*8 RLVLS(23) - REAL*8 RLIMS(4) - REAL*8 RLIMA(4) -C - EQUIVALENCE (CTEMP,ITEMP) - EQUIVALENCE (RTEMP,ITEMP) -C - DATA RHGTS /18400*99999./ - DATA IREP /0/ - DATA IUNU /55/ - DATA IUNA /56/ - DATA IUNW /57/ - DATA IUNS /58/ - DATA IMISS /Z'7FFFF000'/ - DATA FZER /-.1/ - DATA FMAX /24./ -C - CALL W3TAGB('GRAPH_UPAUPA',2000,0018,0082,'NP12') -C -C CONTRL READS IN THE CONTROL CARDS AND FORMS THE HEADER -C RECORD FOR UPAUPA -C - CALL CONTRL (COUT, SRE, ERE, RLIMS, ISWR, ICHG, IRET) - PRINT *,' IBM SP VERSION JULY 24, 1999' -C PRINT *,' LIMITS: ',RLIMS(1),RLIMS(2),RLIMS(3),RLIMS(4) - IF (IRET .NE. 0) THEN - PRINT *,' CONTROL CARDS ARE BAD--JOB STOPPED',IRET - STOP - END IF - CALL CONAFT (CAFT, RLIMA, IRET) -C PRINT 106,(CAFT(KKK),KKK=1,20) - 106 FORMAT(' AIRCR ',8a8,/,12a8) - IF (IRET .NE. 0) THEN - PRINT *,' CONAFT CARDS ARE BAD-JOB STOPPED',IRET - STOP - END IF - CALL CONWND (CWND, RLIMA, IRET) - PRINT 107,(CWND(KKK),KKK=1,20) - 107 FORMAT(' SATW ',8a8,/,12a8) - IF (IRET .NE. 0) THEN - PRINT *,' CONWND CARDS ARE BAD-JOB STOPPED',IRET - STOP - END IF -C -C GET THE 12-HR OLD HEIGHTS -C - print *,'ichg is ',ichg - IF(ICHG .EQ. 1) THEN - CALL REDHGT (CTUT, IARR, RHGTS, IREP, IREH) - END IF -C -C SET THE INITIAL VARIABLES -C - CTEMP = COUT(5) - KNEXT = ITEMP - CTEMP = CAFT(5) - KNAXT = ITEMP - CTEMP = CWND(5) - KNWXT = ITEMP - KNSXT = ITEMP - READ(5,100) CDATE - 100 FORMAT(2x,A8) - PRINT *,' date read is ',CDATE - COUT(3) = CDATE - CAFT(3) = CDATE - CWND(3) = CDATE - READ(CDATE(7:8),101) IHR - 101 FORMAT(I2) -C -C READ THE CLOCK TO SET THE TIME -C - CALL W3UTCDAT(ITME) - RTM = ITME(6) - ITM = ITME(5) + RTM*1.66667 - CALL BIN2CH(ITM,CTEMP,4,'A99') -C PRINT *,' TIME FROM UTC is ',CTEMP - COUT(4) = CTEMP - CAFT(4) = CTEMP - CWND(4) = CTEMP - IRET = 0 - IREPTS = 0 - IRAFT = 0 - IRWFT = 0 - IRSFT = 0 -C -C READ AND PROCESS THE UPPER AIR FILE IN BUFR -C - ISTOP = 1 - DO WHILE (IRET .EQ. 0) - DO K = 1,300 - ARR(K,1) = 99999. - END DO - IFLAG = 0 - CALL REDUPA (SRE, ERE, RLIMS, ISWR, HDR, ARR, - 1 ITYP, NRET1, ITIR, IFLAG, IRET) - IF (IRET .EQ. 0) THEN - IF(ITYP .EQ. 1) THEN -C -C UPPER AIR RADIOSONDE PROCESSING -C - IST = 1 - DO K = 1,300 - IARR(K) = IMISS - END DO -C -C FIND THE 12HR OLD DATA FOR THIS STATION -C - DO I = 1,23 - RLVLS(I) = 99999. - END DO - HDR(8) = IHR - IF(ICHG .EQ. 1) THEN - CALL FNDHGT (HDR, RHGTS, IREP, RLVLS, IREH) - END IF - KRET = 0 - CALL FORUPA (HDR, ARR, NRET1, IARR, KRET, - 1 RLVLS, IFLAG, IRET1) - IF (KRET .GT. 40 ) CALL DOSBYT (IARR, KRET, - 1 IUNU, COUT, KNEXT, IREPTS, ISTOP) - END IF - IF(ITYP .EQ. 2) THEN - DO K = 1,300 - IARR(K) = 0 - END DO -C -C FORMAT THE AIRCRAFT DATA -C - KRET = 0 - HDR(8) = IHR + HDR(4) - IF(HDR(8) .LT. FZER) HDR(8) = FMAX + HDR(8) - IF(HDR(8) .GT. FMAX) HDR(8) = HDR(8) - FMAX - CALL FORAFT(HDR, ARR, IARR, KRET, IRET1) - IF (KRET .GT. 40 ) CALL DOSBYT (IARR, KRET, - 1 IUNA, CAFT, KNAXT, IRAFT, ISTOP) - END IF - IF(ITYP .EQ. 3) THEN - DO K = 1,300 - IARR(K) = IMISS - END DO -C -C FORMAT THE SATWND DATA -C - KRET = 0 - HDR(8) = IHR + HDR(4) - IF(HDR(8) .LT. FZER) HDR(8) = FMAX + HDR(8) - IF(HDR(8) .GT. FMAX) HDR(8) = HDR(8) - FMAX - CALL FORWND(HDR, ARR, IARR, KRET, IRET1) - IF (KRET .GT. 40 ) CALL DOSBYT (IARR, KRET, - 1 IUNW, CWND, KNWXT, IRWFT, ISTOP) - END IF - END IF - END DO -C -C DONE. OUTPUT LAST BLOCK AND ISSUE CONSOLE MSGS -C - ISTOP = 2 - CALL DOSBYT (IARR, KRET, IUNU, COUT, KNEXT, IREPTS, ISTOP) - CALL DOSBYT (IARR, KRET, IUNA, CAFT, KNAXT, IRAFT , ISTOP) - CALL DOSBYT (IARR, KRET, IUNW, CWND, KNWXT, IRWFT , ISTOP) -C -C----------------------------------------------------------------------| -C THE END-OF-FILE. | -C----------------------------------------------------------------------| -C - PRINT *,' ' - PRINT *,' TOTAL RADIOSONDE REPORTS: ',IREPTS - PRINT *,' TOTAL AIRCRAFT REPORTS : ',IRAFT - PRINT *,' TOTAL SATWIND REPORTS : ',IRWFT - PRINT *,' ' - CALL BIN2CH (IREPTS,CTEMP,4,'A99') - ENDMSG = ' UPAPREP WRITES '//CTEMP//' REPORTS:' -C CALL CONSOL(ENDMSG) - PRINT *, ' ' - PRINT *, ' NORMAL END OF JOB EXECUTED' - ENDMSG = 'UPAPREP' - ISTOP = 0 - CALL W3TAGE('GRAPH_UPAUPA') -C - STOP - END diff --git a/util/sorc/webtitle.fd/compile_webtitle_wcoss.sh b/util/sorc/webtitle.fd/compile_webtitle_wcoss.sh index 6101d84f5d..3d83adb2e2 100755 --- a/util/sorc/webtitle.fd/compile_webtitle_wcoss.sh +++ b/util/sorc/webtitle.fd/compile_webtitle_wcoss.sh @@ -10,7 +10,7 @@ LMOD_EXACT_MATCH=no source ../../../sorc/machine-setup.sh > /dev/null 2>&1 cwd=`pwd` -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then +if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "hera" ] ; then echo " " echo " You are on WCOSS: $target " echo " " diff --git a/util/sorc/webtitle.fd/webtitle.f b/util/sorc/webtitle.fd/webtitle.f index f22993a877..b4bfdfa0b0 100755 --- a/util/sorc/webtitle.fd/webtitle.f +++ b/util/sorc/webtitle.fd/webtitle.f @@ -61,7 +61,7 @@ C READ(5,102) block 102 FORMAT(a14) - READ(block,100) tb1(1), tb1(2), tb2(1), tb2(2), tb2(3), tb2(4) + READ(block,100) tb1(1), tb1(2), tb2(1), tb2(2), tb2(3) 100 FORMAT(2a4,4a2) read(tb1(1),*) jtau diff --git a/util/sorc/wndanftf.fd/compile_wndanftf_wcoss.sh b/util/sorc/wndanftf.fd/compile_wndanftf_wcoss.sh deleted file mode 100755 index 252745f295..0000000000 --- a/util/sorc/wndanftf.fd/compile_wndanftf_wcoss.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -###################################################################### -# -# Build executable : GFS utilities -# -###################################################################### - -LMOD_EXACT_MATCH=no -source ../../../sorc/machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -if [ "$target" = "wcoss_dell_p3" ] || [ "$target" = "wcoss_cray" ] || [ "$target" = "theia" ] ; then - echo " " - echo " You are on WCOSS: $target " - echo " " -elif [ "$target" = "wcoss" ] ; then - echo " " - echo " " - echo " You are on WCOSS: $target " - echo " You do not need to build GFS utilities for GFS V15.0.0 " - echo " " - echo " " - exit -else - echo " " - echo " Your machine is $target is not recognized as a WCOSS machine." - echo " The script $0 can not continue. Aborting!" - echo " " - exit -fi -echo " " - -# Load required modules -source ../../modulefiles/gfs_util.${target} -module list - -set -x - -mkdir -p ../../exec -make -mv wndanftf ../../exec -make clean diff --git a/util/sorc/wndanftf.fd/graph_wndanftf.f b/util/sorc/wndanftf.fd/graph_wndanftf.f deleted file mode 100755 index 6f81dd6ed1..0000000000 --- a/util/sorc/wndanftf.fd/graph_wndanftf.f +++ /dev/null @@ -1,636 +0,0 @@ - program WNDANFTF -C$$$ MAIN PROGRAM DOCUMENTATION BLOCK -C . . . . -C MAIN PROGRAM: GRAPH_WNDANFTF -C PRGMMR: FACEY ORG: NP12 DATE: 2000-02-01 -C -C ABSTRACT: This program plots wind barbs and temperatures at -C several U.S. cities. It uses NCAR graphics to produce cgm a -C metafile which is rasterized in other job steps. -C -C PROGRAM HISTORY LOG: -C 96-12-18 VandenBerghe Original code -c 97-01-17 VandenBerghe added geometic levels and subordinated -c map background (dots) and this documentation. -C 98-08-05 Kumar Converted to F90 and Y2K compliancy -C 00-01-27 Facey Converted to to run on IBM SP -C -C USAGE: -c INPUT FILES: -c fort.20 formatted station file -c OUTPUT FILES: -c gmeta (implicitly fortran unit 2 ) used by ncar -c graphics -c CAVEAT: requires ncar graphics version 4.0 or above -c as of this writing -c setenv NCARG_ROOT /usr/local/ncar4.0 -c setenv PATH "$PATH":/usr/local/ncar4.0/bin -c (or the bourne/korn analogs) -c handles this; only the first setenv is required -c but the other will likely be -c needed by ictrans downstream -c -c The quality of the formatted report -c numbers determines the quality of the -c plotted numbers. Problems -c with the data are overwhelmingly likely -c to be upstream redupa or in the original -c input file, this program just plots -c what it is fed. -c -C SUBPROGRAMS CALLED: -C UNIQUE: - ROUTINES THAT ACCOMPANY SOURCE FOR COMPILE -c - closen,openn,qcnt, -c - updatr, -c - dayowk (these last two are to avoid search of -c graphics libraries at load time) -c -C LIBRARY: -C COMMON - NCAR UTILITIES (mappos,WMSETR,WMSETI,WMGETR, -c - maptra,pcseti,plccmq,plchmq,wmbarb,gslwsc, -c - gsclip,mapsti,mapstc,maproj,mapset,mapdrw, -c - cpseti,cpsetr,gopks,gopwk,gacwk,gdawk,gclwk, -c - gclks.) -c - all are brought in by /usr/local/ncar4.0/ -c - ncargf77 command used for ncar builds -c - ncar 4.0 or higher required (available on -c - all three crays and newest workstations also) -c -C W3LIB - W3TAGB/E -C -c MACHINE: IBM SP -c -c LANGUAGE: IBM fortran 90. -c -c REMARKS: -c The gross job flow is -c redupa --> -c WNDALFTF---> ictrans ----> ras2bit ----> bedient.pack ---> -c and out the door to OSO. -c -c input is prepda soundings preformatted upstream -c into ascii. Each line corresponds to one -c level at one station and contains wind speed,direction, -c temperature, dewpoint, and geopotential height along -c with station name, longitude, and latitude and -c some quality flags. Both standard pressure -c and standard geopotential levels are supplied. -c Upstream redupa checks the quality -c flags and marks nonstandard quality as missing. Missing data -c is denoted with -999999. -c -c The output product is a four panel fax chart containing -c second standard level (lower left), 14000 foot (lower right) -c 400mb (24000 foot)(upper left) and 250mb (34000 foot) plots -c (upper right). Only wind information is plotted at the -c lower two levels. -c -C$$$ - character*3 cmonth(12) - data cmonth/'JAN','FEB','MAR','APR','MAY','JUN','JUL', - 1 'AUG','SEP','OCT','NOV','DEC'/ - parameter(nsta=1240) - character*4 ctemp,cdew,cgpm - character*3 cdir - character*4 cda - character*8 csta - COMMON/PACKRA/IRAS(10) - common/oth/u(70,40),v(70,40),rlats(nsta),rlons(nsta), - 1 up(nsta),vp(nsta),tp(nsta) - dimension kds(25) - parameter (rmnlon=231.,rmxlon=300.,rmnlat=21.,rmxlat=50.) - dimension rl(2),rl2(2),rl3(2),rl4(2) - data rl,rl2,rl3,rl4/rmnlat,0.,rmxlat,0., - 1rmnlon,0.,rmxlon,0./ - dimension g2(70,40) - dimension llv(8) - character*40 ctit - dimension state(10) - data llv/-07,400,177,177,-07,250,177,177/ - dimension ifeet(8) - data ifeet/6000,18000,30000,39000,9000,24000,34000,99999/ - dimension boxes(4,8) - data boxes/0.0, 0.5, 0.0, 0.24, - 2 0.0, 0.5, 0.25, 0.49, - 3 0.0, 0.5, 0.50, 0.74, - 4 0.0, 0.5, 0.74, 0.99, - 5 0.38, 0.83, 0.00, 0.24, - 6 0.38, 0.83, 0.25, 0.49, - 7 0.38, 0.83, 0.50, 0.74, - 8 0.38, 0.83, 0.75, 0.99/ - character*132 mtitle - character*160 cline - CALL W3TAGB('GRAPH_WNDANFTF',2000,0032,0096,'NP12') - ix=70 - iy=30 - tx = 0.0 - ty = 0.0 - dpx = 0.0 - dpy = 0.0 - do i =1, 70 - do j =1, 40 - g2(i,j) = 0.0 - end do - end do - mtitle = " " - call openn - do 1000 ,ll=8,1,-1 -c skip top boxes with goto below - if(ll .ne. 1 .and. ll .ne. 2 .and. ll .ne. 5 .and. - 1 ll .ne. 6) go to 1000 -c bottom two boxes are standard height level -c top two boxes are standard pressure level - call mappos (boxes(1,ll),boxes(2,ll),boxes(3,ll),boxes(4,ll)) - iras(1)=00 -c draw the map - call qcnt (g2,ix,iy,rl,rl2,rl3,rl4,mtitle) - 191 format('NO95 ',i2,'HR UPPER WIND PROG D169' ) -c read date from a station file - rewind (20) - read(20,161)cline - 161 format(a160) - read(cline,401)iras(6),iras(5),iras(4),iras(3) - rewind (20) - 401 format(135x,i2,i2,i2,i2) - print *, iras(6),iras(5),iras(4),iras(3) - iyear=iras(6) - if(iyear .gt. 50) iyear=iyear+1900 - if(iyear .le. 50) iyear=iyear+2000 - call dayowk(iras(4),iras(5),iyear,iday,cda,ist) - call WMSETR('WBD barb size',0.11) - CALL WMSETI('WBF circle on or off',1) - call WMSETR('WBC circle size ',0.1) - call WMSETR('WBA angle ',60.0) - call pcseti('CD ',1) - call pcseti('FN ',25) -c Coordinates for map titles - call maptra(27.,-87.,tx,ty) -c Coordinates for product title - call maptra(27.,-118.,dpx,dpy) -c call plchmq( tx,ty,ctit,03.,0.,0.) - write(ctit,195)llv(ll) - 195 format(i5,'MB WINDS AND TEMPS ') - if(ll .eq. 1) ctit=' 2D STANDARD LVL ABOVE SFC' - if(ll .eq. 5) ctit='14000 FT. (600MB) WINDS' - if(ll .eq. 2) ctit=' 24000 FT. (400MB) ' - if(ll .eq. 6) ctit=' 34000 FT. (250MB) ' - call gslwsc(2.) - call plchmq( tx+0.010,ty-0.008,ctit,04.,0.,0.) - if(ll .eq. 1) then - call plchmq(dpx,dpy,' WINDS ALOFT OBS.',4.0,0.,0.) - if(iras(3) .eq. 12) - 1 call plchmq(dpx,dpy-0.010,'N106.. D142.. ',4.0,0.,0.) - if(iras(3) .ne. 12) - 1 call plchmq(dpx,dpy-0.010,'N106.. D031.. ',4.0,0.,0.) - call plchmq(dpx,dpy-0.018,'DATA CUTOFF 2+40 ',3.4,0.,0.) - endif - call gslwsc(1.) - write(ctit,197)iras(3),cda,cmonth(iras(5)),iras(4),iyear - 197 format(' OBS. ',1x,i2.2,'Z',1x,a3,1x,a3,1x,i2,1x,i4) - call plchmq( tx,ty-0.016,ctit,03.,0.,0.) - if (ll .ne. 1 .and. ll .ne. 5) then - ctit='GFS PREPBUFR WINDS AND TEMPS' - else - ctit=' GFS PREPBUFR WINDS ' - endif - call plchmq(tx,ty-0.024,ctit,03.,0.,0.) - CALL WMSETR('WBS',0.013) - CALL WMSETI('COL',1) - CALL WMGETR('WBS',WSLEN) - do 500,irec=1,999999 - read(20,161,end=999) cline - read(cline,301) csta,slon,slat,(state(kk),kk=1,10) -c slon=360.-slon - 301 format(a8,1x,f6.2,1x,f6.2,1x,10(f10.2,1x)) - if (abs (state(1) - llv(ll)) .gt. 1.) go to 500 -c special code for ll=1 -c using station elevation compute "second standard level" -c which is the second integral thousand feet above -c the surface. Then plot variables at that level - if(ll .eq. 1) then - elev=state(10)*100/(2.54*12) - pelev=state(2)*100/(2.54*12) - ielv=elev/1000. +2 - stdlev_2=ielv*1000 - if(abs(pelev-stdlev_2) .gt. 100) go to 500 - endif - if(ll .eq. 5) then - pelev=state(2)*100/(2.54*12) - if(abs(pelev-14000. ) .gt. 100) go to 500 - endif -c - do 12,k=1,1 - call maptra(slat,slon,uu,vv) -c print *, ' COORDS',slon,slat,uu,vv -c now rotate winds in map projection space -c rotation angle is zero at longitude 110 - phi=(110. + slon-360. ) *3.1415927/180. - phi=phi*0.7 - dir=state(5) -c note speed is in knots!!! not meters/second - speed=state(6) - dirr=dir*3.1415927/180. - ru=-sin(dirr)*speed - rv=-cos(dirr)*speed - up(k)=ru - vp(k)=rv -c rotate winds to match map projection - uprime=ru*cos(phi)-rv*sin(phi) - vprime =ru*sin(phi)+rv*cos(phi) -c call wmbarb(uu,vv,-uprime,-vprime) - if( ll .ne. 1 .and. ll .ne. 5) then - dewpoint=state(4) - temps=state(3) - if(dewpoint .lt. -9999) dewpoint=-9999 - if(temps .lt. -9999) temps=-9999 -c - if(temps .lt. -9998. .or. dewpoint .lt. -9998 - 1 .or. (temps-dewpoint) .lt. 5.) then -c - call plchhq(uu,vv,':F37:Z',2.5,0.,0.) - else - call plchhq(uu,vv,':F37:R',2.5,0.,0.) - endif -c - else - call plchhq(uu,vv,':F37:R',2.5,0.,0.) - endif - write(ctemp,193) ifix(state(3)) - if (state(2) .lt. 5790 .and. state(2) .gt. 5780) - 1 print *,' CTEMP',' ',csta,ctemp,state(3),ifix(state(3)) - if (state(4). gt. -9999) then - write(cdew,193) ifix(state(4)) - write(cgpm,193) ifix(state(2)/10.) - end if - if(state(4) .lt. -9999) cdew=' M ' - if(state(2) .lt. -9999) cgpm=' M ' - if(state(3) .lt. -9999) ctemp=' M ' -c if(speed .gt. 500. .or. speed .lt. 0. .or. -c 1 dir .lt. -999 .or. dir .gt. 999) go to 500 -c WIND BARB ERASE STUFF - call GSLWSC(4.) - CALL WMSETI('COL',0) - if(speed .gt. 500. .or. speed .lt. 0. .or. - 1 dir .lt. -999 .or. dir .gt. 999) go to 591 - call wmbarb(uu,vv,-uprime,-vprime) - 591 continue -c end wind barb erase - call GSLWSC(1.) - CALL WMSETI('COL',1) -c end stuff - if(speed .gt. 500. .or. speed .lt. 0. .or. - 1 dir .lt. -999 .or. dir .gt. 999) go to 592 - call wmbarb(uu,vv,-uprime,-vprime) - 592 continue - 193 format(i4 ) - rad=0.0139 -c - theta=90-dir - idir=dir - if(idir .lt. 0) idir=idir+360 - write(cdir,196)idir - 196 format(i3) - rad=0.0139 -c calculate write position for direction number -c Rotate ten plus phi degrees - theta=theta+10. +phi*180./3.1415927 - di=rad*(cos(theta*3.1415927/180.)) - dj=rad*(sin(theta*3.1415927/180.)) - if( vp(k) .lt. 0) djj=-rad/3. - if( vp(k) .ge. 0) djj=rad/3. - call gslwsc(2.0) -cc call plchmq( uu,vv+djj,ctemp,4.0,0.,0.) - call gslwsc(1.0) -c call plchhq( uu-di/3.,vv-dj/3.,ctemp,4.0,0.,0.) - if(speed .gt. 500. .or. speed .lt. 0. .or. - 1 dir .lt. -999 .or. dir .gt. 999) go to 593 - call plchmq(uu+di,vv+dj,cdir(2:2),2.4,0.,0.) - 593 continue - theta=theta-65. +phi*180./3.1415927 - di=rad*(cos(theta*3.1415927/180.)) - dj=rad*(sin(theta*3.1415927/180.)) - center=1.0 - if(vprime .lt. 0) center=0.0 - call gslwsc(2.0) - if( ll .ne. 1 .and. ll .ne. 5) then - call plchmq( uu+rad/6.,vv+rad/3.0,ctemp,3.2,0.,0.) - endif -c call plchmq( uu-rad/2.,vv-rad/6.,cdew,2.5,0.,0.) - call gslwsc(1.0) -c call plchmq( uu+rad/3.,vv+rad/10.,cgpm,3.2,0.,0.) -c call plchmq( uu+di/3.5,vv+dj/2.5,ctemp,3.2,0.,center) - call gslwsc(1.0) - 12 continue - 500 continue - 999 continue - 1000 continue - call closen - CALL W3TAGE('GRAPH_WNDANFTF') - stop - end - subroutine qcnt(grid,ix,iy,rl,rl2,rl3,rl4,mtitle) - character*132 mtitle - dimension grid(ix,iy) - dimension rl(2),rl2(2),rl3(2),rl4(2) - common/icc/icount - common/ctrxxx/rmnlat,rmxlat,iflag - iflag=0 - Rmnlon=rl3(1) - rmxlon=rl4(1) - rmnlat=rl(1) - rmxlat=rl2(1) - icount=0 - CALL GSCLIP (0) -C Draw political & continental outlines. - CALL MAPSTI ('GR - GRID',10) - CALL MAPSTC ('OU - OUTLINE DATASET','PS') -C -c draw polar stereo grid - CALL MAPROJ ('ST - STEREOGRAPHIC ',40.,-110.,00.) - - rlatmin=rl(1)+3 - rlonmin=rl3(1)+5 - rlonmax=rl4(1)-5 - rlatmax=rl2(1)-3 - call mapset('co',rlatmin,rlonmin,rlatmax,rlonmax) - CALL MAPSTI ('PE - PERIMETER FLAG', 0) -C Draw map. -c dot the map - call MPSETI('DO',1) - call MPSETI('DD',4) - CALL MAPDRW - CALL CPSETI ('SET - DO SET-CALL FLAG',0) - CALL CPSETI ('MAP - MAPPING FLAG',1) - return - END - subroutine openn -C OPEN GKS, OPEN WORKSTATION OF TYPE 1, ACTIVATE WORKSTATION -C - CALL GOPKS (6,IDUM) - CALL GOPWK (1, 2, 1) - CALL GACWK (1) - return - end - subroutine closen -C DEACTIVATE AND CLOSE WORKSTATION, CLOSE GKS. -C - CALL GDAWK (1) - CALL GCLWK (1) - CALL GCLKS - return - end -C NOAA UTILITIES!! (saves having to load cntr libraries) - SUBROUTINE UPDATR -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: UPDATR UPDATE OR BACK DATE A DATE/TIME. -C PRGMMR: LUKE LIN ORG: NMC41 DATE:95-10-06 -C -C ABSTRACT: UPDATE OR BACKDATE A DATE TIME PASSED IN VIA COMMON -C PACKRA. -C -C PROGRAM HISTORY LOG: -C YY-MM-DD ORIGINAL AUTHOR ???? -C 88-10-11 HENRICHSEN ADD DOC BLOCK AND CONVERT TO MVS FORTRAN 77. -C 95-10-06 LUKE LIN CONVERT IT CFT-77. -C -C USAGE: CALL UPDATR -C INPUT ARGUMENT LIST: -C COMMON _ /PACKRA/JTIME(2),IVLDHR,IVLDAY,IVLDMO,IVLDYR, -C IHOUR,IDAY,IMONTH,IYR -C - JTIME(1) IS NUMBER OF HOURS TO UPDATE -C - (IF JTIME IS NEGATIVE IT WILL BACKDATE) -C - THE ORIGINAL DATE/TIME IS GIVEN IN -C - IHOUR,IDAY,IMONTH,IYR. -C -C OUTPUT ARGUMENT LIST: -C COMMON _ /PACKRA/JTIME(2),IVLDHR,IVLDAY,IVLDMO,IVLDYR, -C IHOUR,IDAY,IMONTH,IYR -C - THE UPDATED DATE/TIME IS RETURNED IN -C - IVLDHR,IVLDAY,IVLDMO,IVLDYR. -C -C REMARKS: LIST CAVEATS, OTHER HELPFUL HINTS OR INFORMATION -C -C ATTRIBUTES: -C LANGUAGE: CFT77 -C MACHINE: CRAY -C -C$$$ -C - COMMON /PACKRA/JTIME(2),IVLDHR,IVLDAY,IVLDMO,IVLDYR, - 1 IHOUR,IDAY,IMONTH,IYR -C - INTEGER ITABYR(13) - INTEGER LPTB(13) - INTEGER NOLPTB(13) -C - DATA LPTB /0,744,1440,2184,2904,3648,4368,5112, - 1 5856,6576,7320,8040,8784/ - DATA NOLPTB /0,744,1416,2160,2880,3624,4344,5088, - 1 5832,6552,7296,8016,8760/ -C - ASSIGN 211 TO KABUL - IVLDYR = IYR - GO TO 500 -C ...WHERE 500 IS SUBROUTINE TO INITIALIZE ITABYR -C ...AND RETURN THRU KABUL - 211 IHRYR = IHOUR + 24*(IDAY - 1) + ITABYR(IMONTH) - IHRYR2 = IHRYR + JTIME(1) -C ...TO TEST FOR BACKDATED INTO PREVIOUS YEAR... - 213 IF(IHRYR2 .LT. 0) GO TO 400 - DO 215 M=2,13 - IF(IHRYR2 .LT. ITABYR(M)) GO TO 222 - 215 CONTINUE -C ...IF IT FALLS THRU LOOP TO HERE, IT IS INTO NEXT YEAR... - IVLDYR = IVLDYR + 1 - IHRYR2 = IHRYR2 - ITABYR(13) - ASSIGN 219 TO KABUL - GO TO 500 - 219 GO TO 213 - 222 IVLDMO = M - 1 - IHRMO = IHRYR2 - ITABYR(IVLDMO) - NODAYS = IHRMO/24 - IVLDAY = NODAYS + 1 - IVLDHR = IHRMO - NODAYS*24 - GO TO 666 -C ...ALL FINISHED. RETURN TO CALLING PROGRAM....................... -C ...COMES TO 400 IF NEG TOTAL HRS. BACK UP INTO PREVIOUS YEAR - 400 IVLDYR = IVLDYR - 1 - ASSIGN 411 TO KABUL - GO TO 500 -C ...WHICH IS CALL TO INITIALIZE ITABYR AND RETURN THRU KABUL - 411 IHRYR2 = ITABYR(13) + IHRYR2 - GO TO 213 -C -C ...SUBROUTINE INITYR... -C ...CALLED BY GO TO 500 AFTER ASSIGNING RETURN NO. TO KABUL... -C ...ITABYR HAS MONTHLY ACCUMULATING TOTAL HRS REL TO BEGIN OF YR. -C ...DEPENDS ON WHETHER IVLDYR IS LEAP YEAR OR NOT. - 500 IQUOT = IVLDYR/4 - IRMNDR = IVLDYR - 4*IQUOT - IF(IRMNDR .NE. 0) GO TO 511 -C ...WAS MODULO 4, SO MOST LIKELY A LEAP YEAR, - IQUOT = IVLDYR/100 - IRMNDR = IVLDYR - 100*IQUOT - IF(IRMNDR .NE. 0) GO TO 522 -C ...COMES THIS WAY IF A CENTURY YEAR... - IQUOT = IVLDYR/400 - IRMNDR = IVLDYR - 400*IQUOT - IF(IRMNDR .EQ. 0) GO TO 522 -C ...COMES TO 511 IF NOT A LEAP YEAR... - 511 DO 513 I = 1,13 - ITABYR(I) = NOLPTB(I) - 513 CONTINUE - GO TO 533 -C ...COMES TO 522 IF LEAP YEAR - 522 DO 525 I = 1,13 - ITABYR(I) = LPTB(I) - 525 CONTINUE - 533 GO TO KABUL,(211,219,411) -C ...WHICH RETURNS TO SECTION FROM WHICH CALLED..................... - 666 CONTINUE - RETURN - END -C DATA SET DAYOWK AT LEVEL 001 AS OF 04/16/93 - SUBROUTINE DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C$$$ SUBPROGRAM DOCUMENTATION BLOCK -C . . . . -C SUBPROGRAM: DAYOWK FIND NUMERICAL DAY OF WEEK. -C PRGMMR: HENRICHSEN ORG: NMC41 DATE:93-05-11 -C -C ABSTRACT: GIVEN DAY MONTH AND YEAR AS INTEGERS RETURN DAY OF WEEK AS -C AND INTEGER NUMBER AND AS FOUR CHARACTER HOLLERTH TEXT. -C -C PROGRAM HISTORY LOG: -C 84-MM-DD WICK -C 85-MM-DD HENRICHSEN REMOVE OLD KEY PUNCH CHARACTERS AND CLEAN UP. -C 87-12-10 HENRICHSEN CONVERT TO VS FORTAN 77. -C -C USAGE: CALL DAYOWK(IDAY,IMONTH,IYEAR,IDAYWK,IHDAYW) -C INPUT ARGUMENT LIST: -C IDAY - INTEGER TWO DIGET DAY OF MONTH( 1 THRU 31 ). -C IMONTH - INTEGER TWO DIGET MONTH OF YEAR( 1 THRU 12). -C IYEAR - INTEGER TWO OR FOUR DIGET YEAR. -C IYEAR SHOULD BE THE COMPLETE FOUR DIGIT YEAR. -C IF ONLY LAST 2 DIGITS OF YEAR ARE GIVEN, -C ASSUMES 20TH CENTURY... -C -C OUTPUT ARGUMENT LIST: -C IDAYWK - INTEGER NUMBER OF DAY OF WEEK ( 1 THRU 7 ). -C IHDAYW - CHARACTER*4 WORD CONTAINING THE THE THREE LETTER -C - DAY OF THE WEEK LEFT JUSTIFED IN THE WORD. -C - IE 'MON ', .... 'FRI ', .... 'SUN '. -C ERRFLAG - ERROR OF OUT OF RANGE ARGUEMENT IS INDICATED BY THE -C - RESULTING IDAYWK = 0, AND IHDAYW = BLANKS. -C -C -C OUTPUT FILES: (DELETE IF NO OUTPUT FILES IN SUBPROGRAM) -C FT06F001 - ERROR PRINT WHEN ARGUEMENTS OUT OF RANGE. -C -C REMARKS: NONE. -C -C ATTRIBUTES: -C LANGUAGE: VS FORTRAN 77 WITH EXTENDED LOGIC. -C MACHINE: NAS -C -C$$$ - CHARACTER*4 IHDAYW - CHARACTER*4 ITEXT(2) - CHARACTER*4 KHDAY(7) - CHARACTER*4 KLANK - CHARACTER*4 NHDAY(2) - CHARACTER*4 NHMON(2) - CHARACTER*4 NHYR(2) -C - INTEGER KCEN(5) - INTEGER KDAYS(12) - INTEGER MONTAB(12) -C - DATA KHDAY /'SUN ','MON','TUE ', - 1 'WED ','THU ','FRI ','SAT '/ - DATA KLANK /' '/ - DATA NHDAY /'DAY ',' '/ - DATA NHMON /'MONT','H '/ - DATA NHYR /'YEAR',' '/ -C - DATA KCEN /4,2,0,6,4/ - DATA KDAYS /31,29,31,30,31,30,31,31,30,31,30,31/ - DATA MONTAB /1, 4, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6/ -C - IDAYWK = 0 - IHDAYW = KLANK - ISFEB = 0 - IDA = IDAY - IMO = IMONTH - IYR = IYEAR - IF(IMO) 911,911,122 - 122 IF(IMO .GT. 12) GO TO 911 - IF(IDA) 922,922,133 - 133 IF(IDA .GT. KDAYS(IMO)) GO TO 922 - ICENT = IYR / 100 - IYR2 = IYR - 100 * ICENT - IF(ICENT) 933,140,144 - 140 CONTINUE -C ...IF ONLY LAST 2 DIGITS OF YR WERE GIVEN, ASSUME ITS 1900 + - ICENT = 19 - IYR = IYR + 1900 - 144 CONTINUE - ICENTX = ICENT - 16 - IF(ICENTX) 933,933,155 - 155 IF(ICENTX .GT. 5) GO TO 933 -C ...THE GIVEN DATE INFO IS W/I RANGE... - ISUM = KCEN(ICENTX) + IYR2 +IYR2/4 + MONTAB(IMO) + IDA - IF(IMO - 2) 222,211,611 -C ...OTHERWISE, THIS IS JAN OR FEB, SO CHECK FOR LEAP YR... - 211 ISFEB = 1 - 222 CONTINUE - IF(MOD(IYR,4)) 533,511,533 -C ...MOST LIKELY A LEAP YR. TEST FOR CENTURY YR... - 511 CONTINUE - IF(IYR2)522,515,522 - 515 CONTINUE - IF(MOD(IYR,400))533,522,533 -C ...COMES TO 522 IF LEAP YR CORRECTION IS NEEDED... - 522 CONTINUE - ISUM = ISUM - 1 - GO TO 611 - 533 CONTINUE -C ...COMES TO 533 IF NOT A LEAP YR, SO IF FEB, MUST RETEST IDA... - IF(ISFEB)544,611,544 - 544 CONTINUE -C ...THIS IS FEB OF A NON-LEAP YR. - IF (IDA .GE. KDAYS(2)) GO TO 922 - GO TO 611 - 611 CONTINUE - IDAW = MOD(ISUM,7) - IF(IDAW) 644,633,644 - 633 CONTINUE - IDAW = 7 - GO TO 644 - 644 CONTINUE - IDAYWK = IDAW - IHDAYW = KHDAY(IDAW) - RETURN -C - 911 CONTINUE -C ...COMES HERE IF GIVEN MONTH OUT-OF-RANGE... - ITEXT(1) = NHMON(1) - ITEXT(2) = NHMON(2) - GO TO 955 - 922 CONTINUE -C ...COMES HERE IF GIVEN DAY OUT-OF-RANGE - ITEXT(1) = NHDAY(1) - ITEXT(2) = NHDAY(2) - GO TO 955 - 933 CONTINUE -C ...COMES HERE IF GIVEN YR OUT OF RANGE - ITEXT(1) = NHYR(1) - ITEXT(2) = NHYR(2) - GO TO 955 - 955 CONTINUE - PRINT 956, ITEXT(1),ITEXT(2),IDAY,IMONTH,IYEAR - 956 FORMAT(1H0,10X,'ERROR EXIT FROM DAYOWK. GIVEN ', A4, A1, 1X, - X 'OUT-OF-RANGE', /1H0,15X,'IDAY = Z', Z8, 4X,'IMONTH = Z', - X Z8, 4X, 'IYEAR = Z', Z8) - RETURN - END diff --git a/util/sorc/wndanftf.fd/makefile b/util/sorc/wndanftf.fd/makefile deleted file mode 100755 index 9b076c762a..0000000000 --- a/util/sorc/wndanftf.fd/makefile +++ /dev/null @@ -1,31 +0,0 @@ -SHELL=/bin/sh -# -SRCS= graph_wndanftf.f - -OBJS=graph_wndanftf.o - -FC = ifort - -XLIBS=/usr/lib64 - -LDFLAGS = -L${NCARG_LIB} -L${XLIBS} \ - -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lcairo -lfontconfig -lpixman-1 \ - -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran - -LIBS= ${IP_LIB4} ${SP_LIB4} ${W3EMC_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} - -CMD = wndanftf -PROFLIB = -lprof - -FFLAGS = -O -g -traceback -C -qopenmp -assume byterecl -convert big_endian -assume nobscc -assume noold_ldout_format -warn usage - -# Lines from here on down should not need to be changed. They are the -# actual rules which make uses to build a.out. -# -all: $(CMD) - -$(CMD): $(OBJS) - $(FC) -o $(@) $(OBJS) $(LIBS) $(LDFLAGS) $(FFLAGS) -clean: - /bin/rm -f wndanftf *.o - diff --git a/util/ush/convert6bit.sh b/util/ush/convert6bit.sh deleted file mode 100755 index 72596c4ed8..0000000000 --- a/util/ush/convert6bit.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/ksh - -set -x - - cd $DATA - -# convert6bit.sh -# -# Convert fax graphics to another format. Start by -# getting the conversion parameters -# from the fax.tbl -# -# History: -# Oct 2005 L. Sager New script -# Feb 2016 SPA - convert into util_shared module -# - if [ $toc != "WAF" ] - then -# grep $KEYW $FIXshared/convertfax.tbl | read keyword width height FMAT WMO ORIG HEADER ROTATE - grep $KEYW $UTILgfs/fix/convertfax.tbl | read keyword width height FMAT WMO ORIG HEADER ROTATE - else - echo "DO not used convertfax.tbl" - fi - - echo keyword is $keyword - echo width is $width - echo height is $height - echo FMAT is $FMAT - echo WMO is $WMO - echo ORIG is $ORIG - echo HEADER is $HEADER - echo ROTATE is $ROTATE - - -# extract a pure raster graphic using fxcompoz -# - - ras=ras.out - INFILEcrd=crd.out - parmsg="ssno="$subnn - - export FORT66="$ras" - export FORT67="$INFILEcrd" # out card - -# $FXCOMPOZ $INFILE parm=$parmsg > /dev/null - $UTILgfs/exec/fxcompoz $INFILE parm=$parmsg > /dev/null - -# -# Use Image Magick to convert the Raster to another -# format -# -# module show imagemagick-intel-sandybridge/6.8.3 on CRAY -# export PATH=$PATH:/usrx/local/prod/imagemagick/6.8.3/intel/sandybridge/bin:. -# export LIBPATH="$LIBPATH":/usrx/local/prod/imagemagick/6.8.3/intel/sandybridge/lib -# export DELEGATE_PATH=/usrx/local/prod/imagemagick/6.8.3/intel/sandybridge/share/ImageMagick-6 - -# module show imagemagick/6.9.9-25 on DELL - export PATH=$PATH:/usrx/local/dev/packages/ImageMagick/6.9.9-25/bin:. - export LIBPATH="$LIBPATH":/usrx/local/dev/packages/ImageMagick/6.9.9-25/lib - export DELEGATE_PATH=/usrx/local/dev/packages/ImageMagick/6.9.9-25/share/ImageMagick-6 - - echo P4 > header - echo # NCEPtest >> header - echo $width ' ' $height >> header - cat header $ras > image - - rotat="" - if [ $ROTATE != "NO" ] - then - rotat="-rotate $ROTATE" - fi - - echo rotat is $rotat - - convert $rotat PBM:image $FMAT:$outname - -# -# Add the ntc heading: -# - -if [ $HEADER = "YES" ] -then - INPATH=$DATA/$outname - SUB=DFAX1064 -# make_NTC_file.pl $WMO $ORIG $PDYHH $SUB $INPATH $OUTPATH - $UTILgfs/ush/make_NTC_file.pl $WMO $ORIG $PDYHH $SUB $INPATH $OUTPATH -fi diff --git a/util/ush/make_ntc_file.pl b/util/ush/make_ntcfile.pl similarity index 100% rename from util/ush/make_ntc_file.pl rename to util/ush/make_ntcfile.pl diff --git a/util/ush/mk_graphics.sh b/util/ush/mk_graphics.sh deleted file mode 100755 index 93e203c9d9..0000000000 --- a/util/ush/mk_graphics.sh +++ /dev/null @@ -1,98 +0,0 @@ -set +x -################################################# -#---------------------------------------------------------------- -# Name : mk_graphics.sh -# Author : Steve Lilly -# Purpose : This script first extracts the pure raster graphich by using -# fxcompoz, and then uses ImageMagick to converts the raster format -# to either GIF format or NTC (T4 format with a WMO HEADR). -# History : -# OCT 2005 - first implementation -#---------------------------------------------------------------- - - set -x -if [ "$gif" = 'YES' ] -then - export INFILE=$FAXOUT - export subnn=$submn - export PDYHH=$PDY${cyc} - export outname=${name}.${jobn}.gif - export KEYW=$Keyword - -# convert6bit.sh - $UTILgfs/ush/convert6bit.sh - - if test "$SENDCOM" = 'YES' - then - cp ${outname} ${COMOUT} - if test "$SENDDBN" = 'YES' - then - $DBNROOT/bin/dbn_alert MODEL NCDCGIF ${job} ${COMOUT}/$outname - fi - fi -fi - -if [ "$prt" = 'YES' -a "$PRINT_FAX_CHARTS" = 'YES' ] -then - export INFILE=$FAXOUT - export subnn=$submn - export PDYHH=$PDY${cyc} - export outname=pcl.${submn}_${name}.${jobn} - export KEYW=$Keyword - - convert6bit.sh - - if test "$SENDCOM" = 'YES' - then - cp ${outname} ${COMOUTwmo} - if test "$SENDDBN" = 'YES' - then - lpr -P ${lprt} ${COMOUTwmo}/${outname} - fi - fi -fi - -if [ "$toc" = 'YES' ] -then - export INFILE=$FAXOUT - export subnn=$submn - export PDYHH=$PDY${cyc} - export OUTPATH=${name}.${jobn}.ntc - export outname=${name}.${jobn}.fax - export KEYW=$Keyword - -# convert6bit.sh - $UTILgfs/ush/convert6bit.sh - - if test "$SENDCOM" = 'YES' - then - cp ${OUTPATH} ${COMOUTwmo} - if test "$SENDDBN" = 'YES' - then - $DBNROOT/bin/dbn_alert GRIB_LOW HRLY FAX ${COMOUTwmo}/$OUTPATH - fi - fi -fi - -if [ "$toc" = 'WAF' ] -then - export INFILE=$FAXOUT - export subnn=$submn - export PDYHH=$PDY${cyc} - export OUTPATH=${name}.${jobn}.ntc - export outname=${name}.${jobn}.fax - export KEYW=$Keyword - -# convert6bit.sh - $UTILgfs/ush/convert6bit.sh - - if test "$SENDCOM" = 'YES' - then - cp ${OUTPATH} ${COMOUTwmo} - if test "$SENDDBN" = 'YES' - then - $DBNROOT/bin/dbn_alert GRIB_LOW HRLY FAX ${COMOUTwmo}/$OUTPATH - fi - fi - -fi diff --git a/util/ush/mkfaxb.sh b/util/ush/mkfaxb.sh deleted file mode 100755 index 2d0d135e22..0000000000 --- a/util/ush/mkfaxb.sh +++ /dev/null @@ -1,194 +0,0 @@ -# UTILITY SCRIPT NAME : mkfaxb.sh -# AUTHOR : Steve Lilly -# -# ABSTRACT : This utility script produces FAX CHARTS -# -# *Note: This utility expects a parm fild for -# the label on the map. If you don't -# have a parm fild, the calling script -# will input NONE. -# -# INPUT: 4 arguments are input to this script. -# 1st argument - hour1 - Fcst hour of 1st grib file -# 2nd argument - faxparm - parameter input. -# 3rd argument - out - fax chart file -# 4th argument - sendkey for snd2forgntbl.sh. -# 5th argument - [optional] old plot vpap tape55, -# -echo "History: AUG 1999 - Modified for IBM SP" -# History: AUG 2005 Lilly - remove snd2forgn and change 6bit -# format to T4. -# - -set +x -hour_list=$1 -faxparm=$2 -out=$3 -sendkey=$4 -num=$# - -if test $num -eq 4 -o $num -eq 5 -then - echo " Appropriate number of arguments were passed" - set -x - if [ -z "$DATA" ] - then - export DATA=`pwd` - cd $DATA - setpdy.sh - . PDY - fi - export do_label=${do_label:-NO} -else - echo "" - echo "Usage: mkfaxb.sh "hour_list" faxparm outputname sendkey [plottape55]" - echo "" - exit 16 -fi - -if test "$do_label" = "YES" -then - read parm < parm - newparm="PARM='$parm'" - echo "newparm = $newparm" -else - unset newparm -fi - -set +x -echo "########################################################" -echo "# Begin making the VARIAN FAX CHART $out maps" -echo "########################################################" -set -x - -msg="Enter Make FAX GRAPHICS utility." -postmsg "$jlogfile" "$msg" - -############################## -# Process FAX Chart -############################## -# cp $FIXshared/graph_gphbg/nh4004.pur nh4004.pur -cp $UTILgfs/fix/graph_gphbg/nh4004.pur nh4004.pur - -#cp $FIXshared/graph_gphbg/nh2005.pur nh2005.pur -cp $UTILgfs/fix/graph_gphbg/nh2005.pur nh2005.pur - -# cp $FIXshared/graph_gphbg/nh4006.pur nh4006.pur -cp $UTILgfs/fix/graph_gphbg/nh4006.pur nh4006.pur - -# cp $FIXshared/graph_gphbg/nh2007.pur nh2007.pur -cp $UTILgfs/fix/graph_gphbg/nh2007.pur nh2007.pur - -# cp $FIXshared/graph_gphbg/nh4005.pur nh4005.pur -cp $UTILgfs/fix/graph_gphbg/nh4005.pur nh4005.pur - -# cp $FIXshared/graph_gphbg/sh4001.pur sh4001.pur -cp $UTILgfs/fix/graph_gphbg/sh4001.pur sh4001.pur - -if test $sendkey = 'fax.brknel' -o $sendkey = 'fax.bcmrfmp1' -then -# export pgm=$FAXMAKRX - export pgm=$UTILgfs/exec/faxmakrx -else -# export pgm=$FAXMAKR - export pgm=$UTILgfs/exec/faxmakr -fi -prep_step - -echo sendkey=$sendkey -echo pgm=$pgm -# read any -############################## -# Copy Input Field to $DATA -############################## -pgbunit=11 -pgbiunit=31 - -for i in $hour_list -do - echo $i - case $i in - [0-9][0-9]|[0-9][0-9][0-9])case $NET in - gfs|mrf)grbext=pgrbf0${i} - grbiext=pgrbif0${i} - grb2ext=pgrb2.1p00.f0${i} - ;; - nam) if [ "$CGRID" = "YES" ] ; then - grbext=grb_fm${i}.tm00 - grbiext=grb_fmi${i} - else - grbext=grb5fm${i}.tm00 - grbiext=grb5fmi${i} - fi - ;; - *)grbext=pgrbf0${i} - grbiext=pgrbif0${i} - ;; - esac - ;; - anl)grbext=pgrbanl - grbiext=pgrbianl - grb2ext=pgrb2.1p00.anl - ;; - D+3)grbext=D+3.z500.grib - grbiext=D+3.z500.gribi - ;; - *)grbext=$i - grbiext=${i}i - ;; - esac - - if test ! -f $grbext - then - cp $COMIN/${RUN}.${cycle}.$grb2ext . - $CNVGRIB -g21 ${RUN}.${cycle}.$grb2ext $grbext - fi - - if test ! -f $grbiext - then - $GRBINDEX $grbext $grbiext - fi - - eval export FORT${pgbunit}="$grbext" - eval export FORT${pgbiunit}="$grbiext" - - pgbunit=`expr $pgbunit + 1` - pgbiunit=`expr $pgbiunit + 1` - if [ $pgbunit -eq 15 ] ; then - pgbunit=`expr $pgbunit + 1` - pgbiunit=`expr $pgbiunit + 1` - fi -done - -# export FORT15="$PARMshared/$faxparm" -export FORT15="$UTILgfs/parm/$faxparm" - -# export FORT48="$FIXshared/graph_awpseed" -export FORT48="$UTILgfs/fix/graph_awpseed" - -export FORT49="ncepdate" -if test $num -eq 5 -then - export FORT54="$5" -fi -export FORT55="label55" -export FORT60="label60" -export FORT61="label61" -export FORT62="label62" -export FORT63="label63" -export FORT71="$out" # fax chart file -export FORT76="outdgn1" # output design file -export FORT77="outdgn2" # output design file -export FORT78="outdgn3" # output design file -export FORT79="outdgn4" # output design file -export FORT80="faxext8" # temp output file -export FORT89="pureras" - -startmsg -$pgm $newparm >> $pgmout 2> errfile -export err=$?; err_chk - -msg="mkfax ${hour} hour completed normally" -postmsg "$jlogfile" "$msg" - -exit diff --git a/util/ush/mkwindalftf.sh b/util/ush/mkwindalftf.sh deleted file mode 100755 index 5cbea1d41e..0000000000 --- a/util/ush/mkwindalftf.sh +++ /dev/null @@ -1,177 +0,0 @@ -#!/bin/ksh -# UTILITY SCRIPT NAME : mkwindalftf.sh -# AUTHOR : Mary Jacobs -# -# ABSTRACT : NOW PRODUCE UPPER AIR WIND PLOTS -# -# SCRIPT TO RUN WNDANFTF HDS REPLACEMENT -# The script runs a bufr extraction -# program to extract soundings from -# an gfs PREPBUFR file and -# write them as a FORMATTED HUMAN -# READABLE REPORT. (rsonde.x). It -# then runs an NCAR graphics program to -# plot wind barbs and temperatures -# (wndanftf.x). -# This generates a cgm metafile which -# is rasterized (raster2bit.x), -# prefixed with a CNTR standard header -# (glue.head.x), and packed to -# the NOAA bedient sixbit format -# demanded by OSO. (sixbitb.x) -# Author: George VandenBerghe Cray Research. -# HISTORY: 1/23/97 first written. -# HISTORY: 9/12/05 Remove snd2forgn -# HISTORY: 10/05/05 Converted fax graphics to T4 -# format and stopped writing to -# the status file. -# -set -x - -########################################################### -# Extract significant Height observations -########################################################### -cp $COMIN/gfs.${cycle}.prepbufr gfs.${cycle}.prepbufr - export err=$? - if [[ $err -ne 0 ]] ; then - echo " File .${cycle}.prepbufr gfs.${cycle}.prepbufr does not exist." - exit $err - fi - -export pgm=rsonde -. prep_step - -export FORT11=gfs.${cycle}.prepbufr -export FORT51=f51Z - -startmsg -# $RSONDE < $PARMshared/graph_rsonde.ft05.Z >> $pgmout 2> errfile -${UTILgfs}/exec/rsonde < ${UTILgfs}/parm/graph_rsonde.ft05.Z >> $pgmout 2> errfile -export err=$?;err_chk - -########################################################### -# Extract significant pressure observations -########################################################### - -export pgm=rsonde -. prep_step - -export FORT11=gfs.${cycle}.prepbufr -export FORT51=f51P - -startmsg -# $RSONDE <$PARMshared/graph_rsonde.ft05.P >> $pgmout 2>errfile -${UTILgfs}/exec/rsonde < ${UTILgfs}/parm/graph_rsonde.ft05.P >> $pgmout 2> errfile -export err=$?;err_chk - -########################################################### -# cat the oservation files together -########################################################### - -cat f51Z f51P >formatted.soundings - -########################################################### -# draw ncar graphics map -########################################################### - -export pgm=wndanftf -. prep_step - -export FORT20=formatted.soundings - -startmsg -# $WNDANFTF >> $pgmout 2> errfile -${UTILgfs}/exec/wndanftf >> $pgmout 2> errfile -export err=$?;err_chk - -########################################################### -# rasterize the map -########################################################### - -ictrans -d xwd -fdn 2 -resolution 1728x2440 -e 'zoom 0.08 0.0 0.79 1.0' -e 'plot 1' gmeta >f8 -########################################################### -# pack 8 bit pixels into one bit bits -########################################################### - -export pgm=ras2bit -. prep_step - -export FORT11=f8 -export FORT59=f59 - -fssize=`cat f8 | wc -c ` -echo $fssize >fin -echo 1728 >>fin -echo 2440 >>fin - -startmsg - -# $RAS2BIT > $pgmout 2> errfile -${UTILgfs}/exec/ras2bit > $pgmout 2> errfile -export err=$?;err_chk -########################################################### -# Glue the header onto the image file by getting rid of HGLUE -########################################################### - -# cat $FIXshared/graph_wndanftf.header f59 > mapback.pur -cat ${UTILgfs}/fix/graph_wndanftf.header f59 > mapback.pur -cp mapback.pur image002.pur -cp mapback.pur image001.pur - -########################################################### -# now we have bit image background field (in mapback.pur) which -# actually contains the ENTIRE MAP and we -# merely need "cntr" to do the six bit bedient -# packing. -# A second image, (duplicate but for alternative -# disposition with a different subset number ) -# is in image002.pur. -########################################################### - -export pgm=sixbitb -. prep_step - -jobn=${jobn:-$job} -FAXOUT=bkwndalf.${cyc} - -export FORT11="mapback.pur" -export FORT12="mapback.pur" -# export FORT15=$FIXshared/graph_sixbitb.generic.f15 -export FORT15=${UTILgfs}/fix/graph_sixbitb.generic.f15 -# export FORT18=$FIXshared/graph_sixbitb.wndanftf.$cycle -export FORT18=${UTILgfs}/fix/graph_sixbitb.wndanftf.$cycle -export FORT52=x6b -export FORT55=putlab.55 -export FORT60=f60 -export FORT61=f61 -export FORT62=f62 -export FORT63=f63 -export FORT71=ras -export FORT72=rs2 -# the 6 bit output is assigned here -export FORT81="bkwndalf.${cyc}" -rm fort.80 - -startmsg -# $SIXBITB >> $pgmout 2> errfile -${UTILgfs}/exec/sixbitb >> $pgmout 2> errfile - -export err=$?;err_chk - - for KEYW in WNDAFT WNDAFT_g - do - -# grep $KEYW $FIXshared/identifyfax.tbl | read Keyword sub00 sub06 sub12 sub18 gif toc prt lprt name - grep $KEYW ${UTILgfs}/fix/identifyfax.tbl | read Keyword sub00 sub06 sub12 sub18 gif toc prt lprt name - - if [ ${cyc} = '00' ]; then submn=$sub00; fi - if [ ${cyc} = '12' ]; then submn=$sub12; fi - - echo $FAXOUT $submn $name $Keyword $gif $toc $prt $jobn $lprt - export FAXOUT submn name Keyword gif toc prt jobn lprt -# mk_graphics.sh - ${UTILgfs}/ush/mk_graphics.sh - - done - -exit diff --git a/util/ush/trpsfprv.sh b/util/ush/trpsfprv.sh deleted file mode 100755 index 6bea368018..0000000000 --- a/util/ush/trpsfprv.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/bin/sh - -##################################################################### -# Script trpsfprv.sh generates the TRPSFPRV product for the GFS -# -# History: OCT 2004 Julia Zhu First implementation of this script -# History: SEPT 2005 Steve Lilly remove snd2forgn -# HISTORY Oct. 2005 - Converted fax graphics to T4 format and -# stopped writing to the stat file. -##################################################################### - -cd $DATA - -model=${model:-gfs} -set +x - -echo "######################################" -echo " Execute TRPSFPRV" -echo "######################################" -set -x - -################################### -# Copy Grib files -################################### - -cp ${COMIN}/gfs.$cycle.pgrb2.1p00.f024 . -export err=$? -if [[ $err -ne 0 ]] ; then - echo " File gfs.$cycle.pgrb2.1p00.f024 does not exist." - exit $err -fi - -cp ${COMIN}/gfs.$cycle.pgrb2.1p00.f048 . -export err=$? -if [[ $err -ne 0 ]] ; then - echo " File gfs.$cycle.pgrb2.1p00.f048 does not exist." - exit $err -fi -$CNVGRIB -g21 gfs.$cycle.pgrb2.1p00.f024 pgrbf24 -export err=$? -if [[ $err -ne 0 ]] ; then - echo " CNVGRIB failed to convert GRIB2 to GRIB1 " - exit $err -fi -$GRBINDEX pgrbf24 pgrbif24 -err1=$? - -$CNVGRIB -g21 gfs.$cycle.pgrb2.1p00.f048 pgrbf48 -export err=$? -if [[ $err -ne 0 ]] ; then - echo " CNVGRIB failed to convert GRIB2 to GRIB1 " - exit $err -fi -$GRBINDEX pgrbf48 pgrbif48 -err2=$? - -tot=`expr $err1 + $err2` -if test "$tot" -ne 0 -then - msg="File not yet available in com" - postmsg "$jlogfile" "$msg" - err_exit -fi - -# cp $PARMshared/graph_trpsfprv_ft08.$cycle trpsfprv_ft08.$cycle -cp ${UTILgfs}/parm/graph_trpsfprv_ft08.$cycle trpsfprv_ft08.$cycle - -# cp $PARMshared/graph_trpsfprv_ft05.$cycle trpsfprv_ft05.$cycle -cp ${UTILgfs}/parm/graph_trpsfprv_ft05.$cycle trpsfprv_ft05.$cycle - -# cp $FIXshared/graph_awpseed awpseed -cp ${UTILgfs}/fix/graph_awpseed awpseed - -# cp ${FIXshared}/graph_gphbg/mr4002.pur mr4002.pur -cp ${UTILgfs}/fix/graph_gphbg/mr4002.pur mr4002.pur - -export pgm=trpsfprv;. prep_step - -export FORT8="trpsfprv_ft08.$cycle" -export FORT11="mr4002.pur" -export FORT12="pgrbf24" -export FORT22="pgrbif24" -export FORT15="pgrbf48" -export FORT25="pgrbif48" -export FORT55="f55" -export FORT60="f60" -export FORT61="f61" -export FORT62="f62" -export FORT63="f63" -export FORT71="ras" -export FORT72="rs2" -export FORT52="x6b" -export FORT48="awpseed" -export FORT81="trpsfprv.faxx.${model}_${cyc}" - -msg="$pgm start" -postmsg "$jlogfile" "$msg" - -# $TRPSFPRV < trpsfprv_ft05.$cycle >> $pgmout 2> errfile -${UTILgfs}/exec/trpsfprv < trpsfprv_ft05.$cycle >> $pgmout 2> errfile -export err=$? -if [[ $err -ne 0 ]] ; then - echo " File ${UTILgfs}/exec/trpsfprv does not exist." - exit $err -fi - -echo "Leaving trpsfprv.sh" -exit